{"version":3,"file":"isotherm-analysis.js","sources":["../node_modules/common-spectrum/src/AnalysesManager.js","../node_modules/is-any-array/src/index.js","../node_modules/ml-array-max/lib-es6/index.js","../node_modules/ml-array-min/lib-es6/index.js","../node_modules/median-quickselect/lib/median-quickselect.min.js","../node_modules/ml-array-median/lib-es6/index.js","../node_modules/ml-spectra-processing/src/x/xAdd.js","../node_modules/ml-spectra-processing/src/x/xMultiply.js","../node_modules/ml-spectra-processing/src/x/xDivide.js","../node_modules/ml-spectra-processing/src/x/xIsMonotone.js","../node_modules/d3-array/build/d3-array.js","../node_modules/ml-spectra-processing/src/x/xSubtract.js","../node_modules/ml-array-sum/lib-es6/index.js","../node_modules/ml-array-normed/lib-es6/index.js","../node_modules/ml-array-rescale/lib-es6/index.js","../node_modules/ml-array-sequential-fill/lib-es6/index.js","../node_modules/ml-zones/src/normalize.js","../node_modules/ml-zones/src/invert.js","../node_modules/ml-zones/src/zonesWithPoints.js","../node_modules/ml-array-xy-equally-spaced/src/integral.js","../node_modules/ml-array-xy-equally-spaced/src/equallySpacedSmooth.js","../node_modules/ml-array-xy-equally-spaced/src/equallySpacedSlot.js","../node_modules/ml-array-xy-equally-spaced/src/index.js","../node_modules/ml-array-xy-filter-x/src/getZones.js","../node_modules/ml-array-xy-filter-x/src/index.js","../node_modules/ml-matrix/src/inspect.js","../node_modules/ml-matrix/src/mathOperations.js","../node_modules/ml-matrix/src/util.js","../node_modules/ml-matrix/src/stat.js","../node_modules/ml-matrix/src/matrix.js","../node_modules/ml-matrix/src/views/base.js","../node_modules/ml-matrix/src/views/transpose.js","../node_modules/ml-matrix/src/wrap/WrapperMatrix2D.js","../node_modules/ml-matrix/src/dc/lu.js","../node_modules/ml-matrix/src/dc/util.js","../node_modules/ml-matrix/src/dc/qr.js","../node_modules/ml-matrix/src/dc/svd.js","../node_modules/ml-matrix/src/decompositions.js","../node_modules/ml-pad-array/src/index.js","../node_modules/ml-savitzky-golay/src/index.js","../node_modules/ml-regression-base/node_modules/is-any-array/src/index.js","../node_modules/ml-regression-base/src/maybeToPrecision.js","../node_modules/ml-regression-base/src/checkArrayLength.js","../node_modules/ml-regression-base/src/index.js","../node_modules/ml-regression-polynomial/src/index.js","../node_modules/ml-baseline-correction-regression/src/index.js","../node_modules/ml-stat/array.js","../node_modules/common-spectrum/src/util/getNormalizedSpectrum.js","../node_modules/js-quantities/build/quantities.js","../node_modules/common-spectrum/src/util/convertUnit.js","../node_modules/common-spectrum/src/util/getConvertedVariable.js","../node_modules/common-spectrum/src/util/getXYSpectrum.js","../node_modules/common-spectrum/src/Analysis.js","../node_modules/jcampconverter/src/complexChromatogram.js","../node_modules/jcampconverter/src/convertToFloatArray.js","../node_modules/jcampconverter/src/parse/fastParseXYData.js","../node_modules/jcampconverter/src/parse/parsePeakTable.js","../node_modules/jcampconverter/src/parse/parseXYA.js","../node_modules/jcampconverter/src/2d/convertTo3DZ.js","../node_modules/jcampconverter/src/2d/generateContourLines.js","../node_modules/jcampconverter/src/2d/add2D.js","../node_modules/ml-fft/src/fftlib.js","../node_modules/nmr-processing/src/constants/gyromagneticRatio.js","../node_modules/jcampconverter/src/postProcessingNMR.js","../node_modules/jcampconverter/src/profiling.js","../node_modules/jcampconverter/src/simpleChromatogram.js","../node_modules/jcampconverter/src/postProcessing.js","../node_modules/jcampconverter/src/prepareNtuplesDatatable.js","../node_modules/jcampconverter/src/prepareSpectrum.js","../node_modules/jcampconverter/src/convert.js","../node_modules/common-spectrum/src/from/fromJcamp.js","../node_modules/common-spectrum/src/jsgraph/addStyle.js","../node_modules/common-spectrum/src/jsgraph/colors.js","../node_modules/common-spectrum/src/jsgraph/getJSGraph.js","../node_modules/common-spectrum/src/jsgraph/getNormalizationAnnotations.js","../node_modules/convert-to-jcamp/src/creatorNtuples.js","../node_modules/convert-to-jcamp/src/fromJSON.js","../node_modules/convert-to-jcamp/src/fromVariables.js","../node_modules/common-spectrum/src/to/toJcamps.js","../node_modules/common-spectrum/src/to/toJcamp.js","../node_modules/ml-array-mean/lib-es6/index.js","../src/from/utils.js","../src/from/fromIGA.js","../src/from/fromMicrometricsTXT.js","../node_modules/papaparse/papaparse.min.js","../src/from/constants.js","../src/from/fromMicrometricsCSV.js","../node_modules/xlsx/dist/cpexcel.js","../node_modules/xlsx/jszip.js","../node_modules/xlsx/xlsx.js","../src/from/fromBelsorp.js"],"sourcesContent":["export class AnalysesManager {\n  constructor() {\n    this.analyses = [];\n  }\n\n  addAnalysis(analysis) {\n    let index = this.getAnalysisIndex(analysis.id);\n    if (index === undefined) {\n      this.analyses.push(analysis);\n    } else {\n      this.analyses[index] = analysis;\n    }\n  }\n\n  getAnalyses(options = {}) {\n    const { ids } = options;\n    let analyses = [];\n    for (const analysis of this.analyses) {\n      if (!ids || ids.includes(analysis.id)) {\n        analyses.push(analysis);\n      }\n    }\n    return analyses;\n  }\n\n  removeAllAnalyses() {\n    this.analyses.splice(0);\n  }\n\n  /**\n   * Remove the analysis from the AnalysesManager for the specified id\n   * @param {string} id\n   */\n  removeAnalysis(id) {\n    let index = this.getAnalysisIndex(id);\n    if (index === undefined) return undefined;\n    return this.analyses.splice(index, 1);\n  }\n\n  /**\n   * Returns the index of the analysis in the analyses array\n   * @param {string} id\n   * @returns {number}\n   */\n  getAnalysisIndex(id) {\n    if (!id) return undefined;\n    for (let i = 0; i < this.analyses.length; i++) {\n      let analysis = this.analyses[i];\n      if (analysis.id === id) return i;\n    }\n    return undefined;\n  }\n\n  /**\n   * Checks if the ID of an analysis exists in the AnalysesManager\n   * @param {string} id\n   */\n  includes(id) {\n    return !isNaN(this.getAnalysisIndex(id));\n  }\n}\n","const toString = Object.prototype.toString;\n\nexport default function isAnyArray(object) {\n  return toString.call(object).endsWith('Array]');\n}\n","import isArray from 'is-any-array';\n\nfunction max(input) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n  if (!isArray(input)) {\n    throw new TypeError('input must be an array');\n  }\n\n  if (input.length === 0) {\n    throw new TypeError('input must not be empty');\n  }\n\n  var _options$fromIndex = options.fromIndex,\n      fromIndex = _options$fromIndex === void 0 ? 0 : _options$fromIndex,\n      _options$toIndex = options.toIndex,\n      toIndex = _options$toIndex === void 0 ? input.length : _options$toIndex;\n\n  if (fromIndex < 0 || fromIndex >= input.length || !Number.isInteger(fromIndex)) {\n    throw new Error('fromIndex must be a positive integer smaller than length');\n  }\n\n  if (toIndex <= fromIndex || toIndex > input.length || !Number.isInteger(toIndex)) {\n    throw new Error('toIndex must be an integer greater than fromIndex and at most equal to length');\n  }\n\n  var maxValue = input[fromIndex];\n\n  for (var i = fromIndex + 1; i < toIndex; i++) {\n    if (input[i] > maxValue) maxValue = input[i];\n  }\n\n  return maxValue;\n}\n\nexport default max;\n","import isArray from 'is-any-array';\n\nfunction min(input) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n  if (!isArray(input)) {\n    throw new TypeError('input must be an array');\n  }\n\n  if (input.length === 0) {\n    throw new TypeError('input must not be empty');\n  }\n\n  var _options$fromIndex = options.fromIndex,\n      fromIndex = _options$fromIndex === void 0 ? 0 : _options$fromIndex,\n      _options$toIndex = options.toIndex,\n      toIndex = _options$toIndex === void 0 ? input.length : _options$toIndex;\n\n  if (fromIndex < 0 || fromIndex >= input.length || !Number.isInteger(fromIndex)) {\n    throw new Error('fromIndex must be a positive integer smaller than length');\n  }\n\n  if (toIndex <= fromIndex || toIndex > input.length || !Number.isInteger(toIndex)) {\n    throw new Error('toIndex must be an integer greater than fromIndex and at most equal to length');\n  }\n\n  var minValue = input[fromIndex];\n\n  for (var i = fromIndex + 1; i < toIndex; i++) {\n    if (input[i] < minValue) minValue = input[i];\n  }\n\n  return minValue;\n}\n\nexport default min;\n","(function(){function a(d){for(var e=0,f=d.length-1,g=void 0,h=void 0,i=void 0,j=c(e,f);!0;){if(f<=e)return d[j];if(f==e+1)return d[e]>d[f]&&b(d,e,f),d[j];for(g=c(e,f),d[g]>d[f]&&b(d,g,f),d[e]>d[f]&&b(d,e,f),d[g]>d[e]&&b(d,g,e),b(d,g,e+1),h=e+1,i=f;!0;){do h++;while(d[e]>d[h]);do i--;while(d[i]>d[e]);if(i<h)break;b(d,h,i)}b(d,e,i),i<=j&&(e=h),i>=j&&(f=i-1)}}var b=function b(d,e,f){var _ref;return _ref=[d[f],d[e]],d[e]=_ref[0],d[f]=_ref[1],_ref},c=function c(d,e){return~~((d+e)/2)};'undefined'!=typeof module&&module.exports?module.exports=a:window.median=a})();\n","import isArray from 'is-any-array';\nimport quickSelectMedian from 'median-quickselect';\n\nfunction median(input) {\n  if (!isArray(input)) {\n    throw new TypeError('input must be an array');\n  }\n\n  if (input.length === 0) {\n    throw new TypeError('input must not be empty');\n  }\n\n  return quickSelectMedian(input.slice());\n}\n\nexport default median;\n","/**\r\n\r\n/**\r\n * This function xAdd the first array by the second array or a constant value to each element of the first array\r\n * @param {Array<Number>} array1 - the array that will be rotated\r\n * @param {Array|Number} array2\r\n * @return {Array}\r\n */\r\nexport function xAdd(array1, array2) {\r\n  let isConstant = false;\r\n  let constant;\r\n  if (Array.isArray(array2)) {\r\n    if (array1.length !== array2.length) {\r\n      throw new Error('sub: size of array1 and array2 must be identical');\r\n    }\r\n  } else {\r\n    isConstant = true;\r\n    constant = Number(array2);\r\n  }\r\n\r\n  let array3 = new Array(array1.length);\r\n  if (isConstant) {\r\n    for (let i = 0; i < array1.length; i++) {\r\n      array3[i] = array1[i] + constant;\r\n    }\r\n  } else {\r\n    for (let i = 0; i < array1.length; i++) {\r\n      array3[i] = array1[i] + array2[i];\r\n    }\r\n  }\r\n\r\n  return array3;\r\n}\r\n","/**\r\n\r\n/**\r\n * This function xMultiply the first array by the second array or a constant value to each element of the first array\r\n * @param {Array} array1 - the array that will be rotated\r\n * @param {Array|Number} array2\r\n * @return {Float64Array}\r\n */\r\nexport function xMultiply(array1, array2) {\r\n  let isConstant = false;\r\n  let constant;\r\n  if (Array.isArray(array2)) {\r\n    if (array1.length !== array2.length) {\r\n      throw new Error('sub: size of array1 and array2 must be identical');\r\n    }\r\n  } else {\r\n    isConstant = true;\r\n    constant = Number(array2);\r\n  }\r\n\r\n  let array3 = new Float64Array(array1.length);\r\n  if (isConstant) {\r\n    for (let i = 0; i < array1.length; i++) {\r\n      array3[i] = array1[i] * constant;\r\n    }\r\n  } else {\r\n    for (let i = 0; i < array1.length; i++) {\r\n      array3[i] = array1[i] * array2[i];\r\n    }\r\n  }\r\n\r\n  return array3;\r\n}\r\n","/**\r\n\r\n/**\r\n * This function divide the first array by the second array or a constant value to each element of the first array\r\n * @param {Array<Number>} array1 - the array that will be rotated\r\n * @param {Array<Number>|Number} array2\r\n * @return {Array}\r\n */\r\nexport function xDivide(array1, array2) {\r\n  let isConstant = false;\r\n  let constant;\r\n  if (Array.isArray(array2)) {\r\n    if (array1.length !== array2.length) {\r\n      throw new Error('sub: size of array1 and array2 must be identical');\r\n    }\r\n  } else {\r\n    isConstant = true;\r\n    constant = Number(array2);\r\n  }\r\n\r\n  let array3 = new Array(array1.length);\r\n  if (isConstant) {\r\n    for (let i = 0; i < array1.length; i++) {\r\n      array3[i] = array1[i] / constant;\r\n    }\r\n  } else {\r\n    for (let i = 0; i < array1.length; i++) {\r\n      array3[i] = array1[i] / array2[i];\r\n    }\r\n  }\r\n\r\n  return array3;\r\n}\r\n","/**\r\n * Returns true if x is monotone\r\n * @param {Array} array\r\n * @return {boolean}\r\n */\r\nexport function xIsMonotone(array) {\r\n  if (array.length < 3) return true;\r\n  if (array[0] < array[1]) {\r\n    for (let i = 0; i < array.length - 1; i++) {\r\n      if (array[i] >= array[i + 1]) return false;\r\n    }\r\n  } else {\r\n    for (let i = 0; i < array.length - 1; i++) {\r\n      if (array[i] <= array[i + 1]) return false;\r\n    }\r\n  }\r\n  return true;\r\n}\r\n","(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n  typeof define === 'function' && define.amd ? define(['exports'], factory) :\n  (factory((global.d3_array = {})));\n}(this, function (exports) { 'use strict';\n\n  function ascending(a, b) {\n    return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n  }\n\n  function bisector(compare) {\n    if (compare.length === 1) compare = ascendingComparator(compare);\n    return {\n      left: function(a, x, lo, hi) {\n        if (lo == null) lo = 0;\n        if (hi == null) hi = a.length;\n        while (lo < hi) {\n          var mid = lo + hi >>> 1;\n          if (compare(a[mid], x) < 0) lo = mid + 1;\n          else hi = mid;\n        }\n        return lo;\n      },\n      right: function(a, x, lo, hi) {\n        if (lo == null) lo = 0;\n        if (hi == null) hi = a.length;\n        while (lo < hi) {\n          var mid = lo + hi >>> 1;\n          if (compare(a[mid], x) > 0) hi = mid;\n          else lo = mid + 1;\n        }\n        return lo;\n      }\n    };\n  }\n\n  function ascendingComparator(f) {\n    return function(d, x) {\n      return ascending(f(d), x);\n    };\n  }\n\n  var ascendingBisect = bisector(ascending);\n  var bisectRight = ascendingBisect.right;\n  var bisectLeft = ascendingBisect.left;\n\n  function descending(a, b) {\n    return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n  }\n\n  function number$1(x) {\n    return x === null ? NaN : +x;\n  }\n\n  function variance(array, f) {\n    var n = array.length,\n        m = 0,\n        a,\n        d,\n        s = 0,\n        i = -1,\n        j = 0;\n\n    if (f == null) {\n      while (++i < n) {\n        if (!isNaN(a = number$1(array[i]))) {\n          d = a - m;\n          m += d / ++j;\n          s += d * (a - m);\n        }\n      }\n    }\n\n    else {\n      while (++i < n) {\n        if (!isNaN(a = number$1(f(array[i], i, array)))) {\n          d = a - m;\n          m += d / ++j;\n          s += d * (a - m);\n        }\n      }\n    }\n\n    if (j > 1) return s / (j - 1);\n  }\n\n  function deviation(array, f) {\n    var v = variance(array, f);\n    return v ? Math.sqrt(v) : v;\n  }\n\n  function extent(array, f) {\n    var i = -1,\n        n = array.length,\n        a,\n        b,\n        c;\n\n    if (f == null) {\n      while (++i < n) if ((b = array[i]) != null && b >= b) { a = c = b; break; }\n      while (++i < n) if ((b = array[i]) != null) {\n        if (a > b) a = b;\n        if (c < b) c = b;\n      }\n    }\n\n    else {\n      while (++i < n) if ((b = f(array[i], i, array)) != null && b >= b) { a = c = b; break; }\n      while (++i < n) if ((b = f(array[i], i, array)) != null) {\n        if (a > b) a = b;\n        if (c < b) c = b;\n      }\n    }\n\n    return [a, c];\n  }\n\n  function constant(x) {\n    return function() {\n      return x;\n    };\n  }\n\n  function identity(x) {\n    return x;\n  }\n\n  function range(start, stop, step) {\n    start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n    var i = -1,\n        n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n        range = new Array(n);\n\n    while (++i < n) {\n      range[i] = start + i * step;\n    }\n\n    return range;\n  }\n\n  var e10 = Math.sqrt(50);\n  var e5 = Math.sqrt(10);\n  var e2 = Math.sqrt(2);\n  function ticks(start, stop, count) {\n    var step = tickStep(start, stop, count);\n    return range(\n      Math.ceil(start / step) * step,\n      Math.floor(stop / step) * step + step / 2, // inclusive\n      step\n    );\n  }\n\n  function tickStep(start, stop, count) {\n    var step0 = Math.abs(stop - start) / Math.max(0, count),\n        step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n        error = step0 / step1;\n    if (error >= e10) step1 *= 10;\n    else if (error >= e5) step1 *= 5;\n    else if (error >= e2) step1 *= 2;\n    return stop < start ? -step1 : step1;\n  }\n\n  function sturges(values) {\n    return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n  }\n\n  function number(x) {\n    return +x;\n  }\n\n  function histogram() {\n    var value = identity,\n        domain = extent,\n        threshold = sturges;\n\n    function histogram(data) {\n      var i,\n          n = data.length,\n          x,\n          values = new Array(n);\n\n      // Coerce values to numbers.\n      for (i = 0; i < n; ++i) {\n        values[i] = +value(data[i], i, data);\n      }\n\n      var xz = domain(values),\n          x0 = +xz[0],\n          x1 = +xz[1],\n          tz = threshold(values, x0, x1);\n\n      // Convert number of thresholds into uniform thresholds.\n      if (!Array.isArray(tz)) tz = ticks(x0, x1, +tz);\n\n      // Coerce thresholds to numbers, ignoring any outside the domain.\n      var m = tz.length;\n      for (i = 0; i < m; ++i) tz[i] = +tz[i];\n      while (tz[0] <= x0) tz.shift(), --m;\n      while (tz[m - 1] >= x1) tz.pop(), --m;\n\n      var bins = new Array(m + 1),\n          bin;\n\n      // Initialize bins.\n      for (i = 0; i <= m; ++i) {\n        bin = bins[i] = [];\n        bin.x0 = i > 0 ? tz[i - 1] : x0;\n        bin.x1 = i < m ? tz[i] : x1;\n      }\n\n      // Assign data to bins by value, ignoring any outside the domain.\n      for (i = 0; i < n; ++i) {\n        x = values[i];\n        if (x0 <= x && x <= x1) {\n          bins[bisectRight(tz, x, 0, m)].push(data[i]);\n        }\n      }\n\n      return bins;\n    }\n\n    histogram.value = function(_) {\n      return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), histogram) : value;\n    };\n\n    histogram.domain = function(_) {\n      return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), histogram) : domain;\n    };\n\n    histogram.thresholds = function(_) {\n      if (!arguments.length) return threshold;\n      threshold = typeof _ === \"function\" ? _\n          : Array.isArray(_) ? constant(Array.prototype.map.call(_, number))\n          : constant(+_);\n      return histogram;\n    };\n\n    return histogram;\n  }\n\n  function quantile(array, p, f) {\n    if (f == null) f = number$1;\n    if (!(n = array.length)) return;\n    if ((p = +p) <= 0 || n < 2) return +f(array[0], 0, array);\n    if (p >= 1) return +f(array[n - 1], n - 1, array);\n    var n,\n        h = (n - 1) * p,\n        i = Math.floor(h),\n        a = +f(array[i], i, array),\n        b = +f(array[i + 1], i + 1, array);\n    return a + (b - a) * (h - i);\n  }\n\n  function freedmanDiaconis(values, min, max) {\n    values.sort(ascending);\n    return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3)));\n  }\n\n  function scott(values, min, max) {\n    return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));\n  }\n\n  function max(array, f) {\n    var i = -1,\n        n = array.length,\n        a,\n        b;\n\n    if (f == null) {\n      while (++i < n) if ((b = array[i]) != null && b >= b) { a = b; break; }\n      while (++i < n) if ((b = array[i]) != null && b > a) a = b;\n    }\n\n    else {\n      while (++i < n) if ((b = f(array[i], i, array)) != null && b >= b) { a = b; break; }\n      while (++i < n) if ((b = f(array[i], i, array)) != null && b > a) a = b;\n    }\n\n    return a;\n  }\n\n  function mean(array, f) {\n    var s = 0,\n        n = array.length,\n        a,\n        i = -1,\n        j = n;\n\n    if (f == null) {\n      while (++i < n) if (!isNaN(a = number$1(array[i]))) s += a; else --j;\n    }\n\n    else {\n      while (++i < n) if (!isNaN(a = number$1(f(array[i], i, array)))) s += a; else --j;\n    }\n\n    if (j) return s / j;\n  }\n\n  function median(array, f) {\n    var numbers = [],\n        n = array.length,\n        a,\n        i = -1;\n\n    if (f == null) {\n      while (++i < n) if (!isNaN(a = number$1(array[i]))) numbers.push(a);\n    }\n\n    else {\n      while (++i < n) if (!isNaN(a = number$1(f(array[i], i, array)))) numbers.push(a);\n    }\n\n    return quantile(numbers.sort(ascending), 0.5);\n  }\n\n  function merge(arrays) {\n    var n = arrays.length,\n        m,\n        i = -1,\n        j = 0,\n        merged,\n        array;\n\n    while (++i < n) j += arrays[i].length;\n    merged = new Array(j);\n\n    while (--n >= 0) {\n      array = arrays[n];\n      m = array.length;\n      while (--m >= 0) {\n        merged[--j] = array[m];\n      }\n    }\n\n    return merged;\n  }\n\n  function min(array, f) {\n    var i = -1,\n        n = array.length,\n        a,\n        b;\n\n    if (f == null) {\n      while (++i < n) if ((b = array[i]) != null && b >= b) { a = b; break; }\n      while (++i < n) if ((b = array[i]) != null && a > b) a = b;\n    }\n\n    else {\n      while (++i < n) if ((b = f(array[i], i, array)) != null && b >= b) { a = b; break; }\n      while (++i < n) if ((b = f(array[i], i, array)) != null && a > b) a = b;\n    }\n\n    return a;\n  }\n\n  function pairs(array) {\n    var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);\n    while (i < n) pairs[i] = [p, p = array[++i]];\n    return pairs;\n  }\n\n  function permute(array, indexes) {\n    var i = indexes.length, permutes = new Array(i);\n    while (i--) permutes[i] = array[indexes[i]];\n    return permutes;\n  }\n\n  function scan(array, compare) {\n    if (!(n = array.length)) return;\n    var i = 0,\n        n,\n        j = 0,\n        xi,\n        xj = array[j];\n\n    if (!compare) compare = ascending;\n\n    while (++i < n) if (compare(xi = array[i], xj) < 0 || compare(xj, xj) !== 0) xj = xi, j = i;\n\n    if (compare(xj, xj) === 0) return j;\n  }\n\n  function shuffle(array, i0, i1) {\n    var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),\n        t,\n        i;\n\n    while (m) {\n      i = Math.random() * m-- | 0;\n      t = array[m + i0];\n      array[m + i0] = array[i + i0];\n      array[i + i0] = t;\n    }\n\n    return array;\n  }\n\n  function sum(array, f) {\n    var s = 0,\n        n = array.length,\n        a,\n        i = -1;\n\n    if (f == null) {\n      while (++i < n) if (a = +array[i]) s += a; // Note: zero and null are equivalent.\n    }\n\n    else {\n      while (++i < n) if (a = +f(array[i], i, array)) s += a;\n    }\n\n    return s;\n  }\n\n  function transpose(matrix) {\n    if (!(n = matrix.length)) return [];\n    for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {\n      for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n        row[j] = matrix[j][i];\n      }\n    }\n    return transpose;\n  }\n\n  function length(d) {\n    return d.length;\n  }\n\n  function zip() {\n    return transpose(arguments);\n  }\n\n  var version = \"0.7.1\";\n\n  exports.version = version;\n  exports.bisect = bisectRight;\n  exports.bisectRight = bisectRight;\n  exports.bisectLeft = bisectLeft;\n  exports.ascending = ascending;\n  exports.bisector = bisector;\n  exports.descending = descending;\n  exports.deviation = deviation;\n  exports.extent = extent;\n  exports.histogram = histogram;\n  exports.thresholdFreedmanDiaconis = freedmanDiaconis;\n  exports.thresholdScott = scott;\n  exports.thresholdSturges = sturges;\n  exports.max = max;\n  exports.mean = mean;\n  exports.median = median;\n  exports.merge = merge;\n  exports.min = min;\n  exports.pairs = pairs;\n  exports.permute = permute;\n  exports.quantile = quantile;\n  exports.range = range;\n  exports.scan = scan;\n  exports.shuffle = shuffle;\n  exports.sum = sum;\n  exports.ticks = ticks;\n  exports.tickStep = tickStep;\n  exports.transpose = transpose;\n  exports.variance = variance;\n  exports.zip = zip;\n\n}));","/**\r\n * This function xSubtract the first array by the second array or a constant value from each element of the first array\r\n * @param {Array} array1 - the array that will be rotated\r\n * @param {Array|Number} array2\r\n * @return {Array}\r\n */\r\nexport function xSubtract(array1, array2) {\r\n  let isConstant = false;\r\n  let constant;\r\n  if (Array.isArray(array2)) {\r\n    if (array1.length !== array2.length) {\r\n      throw new Error('sub: size of array1 and array2 must be identical');\r\n    }\r\n  } else {\r\n    isConstant = true;\r\n    constant = Number(array2);\r\n  }\r\n\r\n  let array3 = new Array(array1.length);\r\n  if (isConstant) {\r\n    for (let i = 0; i < array1.length; i++) {\r\n      array3[i] = array1[i] - constant;\r\n    }\r\n  } else {\r\n    for (let i = 0; i < array1.length; i++) {\r\n      array3[i] = array1[i] - array2[i];\r\n    }\r\n  }\r\n\r\n  return array3;\r\n}\r\n","import isArray from 'is-any-array';\n\nfunction sum(input) {\n  if (!isArray(input)) {\n    throw new TypeError('input must be an array');\n  }\n\n  if (input.length === 0) {\n    throw new TypeError('input must not be empty');\n  }\n\n  var sumValue = 0;\n\n  for (var i = 0; i < input.length; i++) {\n    sumValue += input[i];\n  }\n\n  return sumValue;\n}\n\nexport default sum;\n","import isArray from 'is-any-array';\nimport max from 'ml-array-max';\nimport sum from 'ml-array-sum';\n\nfunction norm(input) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var _options$algorithm = options.algorithm,\n      algorithm = _options$algorithm === void 0 ? 'absolute' : _options$algorithm,\n      _options$sumValue = options.sumValue,\n      sumValue = _options$sumValue === void 0 ? 1 : _options$sumValue,\n      _options$maxValue = options.maxValue,\n      maxValue = _options$maxValue === void 0 ? 1 : _options$maxValue;\n\n  if (!isArray(input)) {\n    throw new Error('input must be an array');\n  }\n\n  var output;\n\n  if (options.output !== undefined) {\n    if (!isArray(options.output)) {\n      throw new TypeError('output option must be an array if specified');\n    }\n\n    output = options.output;\n  } else {\n    output = new Array(input.length);\n  }\n\n  if (input.length === 0) {\n    throw new Error('input must not be empty');\n  }\n\n  switch (algorithm.toLowerCase()) {\n    case 'absolute':\n      {\n        var absoluteSumValue = absoluteSum(input) / sumValue;\n        if (absoluteSumValue === 0) return input.slice(0);\n\n        for (var i = 0; i < input.length; i++) {\n          output[i] = input[i] / absoluteSumValue;\n        }\n\n        return output;\n      }\n\n    case 'max':\n      {\n        var currentMaxValue = max(input);\n        if (currentMaxValue === 0) return input.slice(0);\n        var factor = maxValue / currentMaxValue;\n\n        for (var _i = 0; _i < input.length; _i++) {\n          output[_i] = input[_i] * factor;\n        }\n\n        return output;\n      }\n\n    case 'sum':\n      {\n        var sumFactor = sum(input) / sumValue;\n        if (sumFactor === 0) return input.slice(0);\n\n        for (var _i2 = 0; _i2 < input.length; _i2++) {\n          output[_i2] = input[_i2] / sumFactor;\n        }\n\n        return output;\n      }\n\n    default:\n      throw new Error(\"norm: unknown algorithm: \".concat(algorithm));\n  }\n}\n\nfunction absoluteSum(input) {\n  var sumValue = 0;\n\n  for (var i = 0; i < input.length; i++) {\n    sumValue += Math.abs(input[i]);\n  }\n\n  return sumValue;\n}\n\nexport default norm;\n","import isArray from 'is-any-array';\nimport max from 'ml-array-max';\nimport min from 'ml-array-min';\n\nfunction rescale(input) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n  if (!isArray(input)) {\n    throw new TypeError('input must be an array');\n  } else if (input.length === 0) {\n    throw new TypeError('input must not be empty');\n  }\n\n  var output;\n\n  if (options.output !== undefined) {\n    if (!isArray(options.output)) {\n      throw new TypeError('output option must be an array if specified');\n    }\n\n    output = options.output;\n  } else {\n    output = new Array(input.length);\n  }\n\n  var currentMin = min(input);\n  var currentMax = max(input);\n\n  if (currentMin === currentMax) {\n    throw new RangeError('minimum and maximum input values are equal. Cannot rescale a constant array');\n  }\n\n  var _options$min = options.min,\n      minValue = _options$min === void 0 ? options.autoMinMax ? currentMin : 0 : _options$min,\n      _options$max = options.max,\n      maxValue = _options$max === void 0 ? options.autoMinMax ? currentMax : 1 : _options$max;\n\n  if (minValue >= maxValue) {\n    throw new RangeError('min option must be smaller than max option');\n  }\n\n  var factor = (maxValue - minValue) / (currentMax - currentMin);\n\n  for (var i = 0; i < input.length; i++) {\n    output[i] = (input[i] - currentMin) * factor + minValue;\n  }\n\n  return output;\n}\n\nexport default rescale;\n","import isArray from 'is-any-array';\n\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function (obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function (obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\n/**\r\n * Fill an array with sequential numbers\r\n * @param {Array<number>} [input] - optional destination array (if not provided a new array will be created)\r\n * @param {object} [options={}]\r\n * @param {number} [options.from=0] - first value in the array\r\n * @param {number} [options.to=10] - last value in the array\r\n * @param {number} [options.size=input.length] - size of the array (if not provided calculated from step)\r\n * @param {number} [options.step] - if not provided calculated from size\r\n * @return {Array<number>}\r\n */\n\nfunction sequentialFill() {\n  var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n  if (_typeof(input) === 'object' && !isArray(input)) {\n    options = input;\n    input = [];\n  }\n\n  if (!isArray(input)) {\n    throw new TypeError('input must be an array');\n  }\n\n  var _options = options,\n      _options$from = _options.from,\n      from = _options$from === void 0 ? 0 : _options$from,\n      _options$to = _options.to,\n      to = _options$to === void 0 ? 10 : _options$to,\n      _options$size = _options.size,\n      size = _options$size === void 0 ? input.length : _options$size,\n      step = _options.step;\n\n  if (size !== 0 && step) {\n    throw new Error('step is defined by the array size');\n  }\n\n  if (!size) {\n    if (step) {\n      size = Math.floor((to - from) / step) + 1;\n    } else {\n      size = to - from + 1;\n    }\n  }\n\n  if (!step && size) {\n    step = (to - from) / (size - 1);\n  }\n\n  if (Array.isArray(input)) {\n    // only works with normal array\n    input.length = 0;\n\n    for (var i = 0; i < size; i++) {\n      input.push(from);\n      from += step;\n    }\n  } else {\n    if (input.length !== size) {\n      throw new Error('sequentialFill typed array must have the correct length');\n    }\n\n    for (var _i = 0; _i < size; _i++) {\n      input[_i] = from;\n      from += step;\n    }\n  }\n\n  return input;\n}\n\nexport default sequentialFill;\n","/**\n * Normalize an array of zones:\n * - ensure than from < to\n * - merge overlapping zones\n *\n * The method will always check if from if lower than to and will swap if required.\n * @param {Array} [zones=[]]\n * @param {object} [options={}]\n * @param {number} [options.from=Number.NEGATIVE_INFINITY] Specify min value of a zone\n * @param {number} [options.to=Number.POSITIVE_INFINITY] Specify max value of a zone\n */\n\nexport function normalize(zones = [], options = {}) {\n  if (zones.length === 0) return [];\n  let {\n    from = Number.NEGATIVE_INFINITY,\n    to = Number.POSITIVE_INFINITY,\n  } = options;\n  if (from > to) [from, to] = [to, from];\n\n  zones = JSON.parse(JSON.stringify(zones)).map((zone) =>\n    zone.from > zone.to ? { from: zone.to, to: zone.from } : zone,\n  );\n  zones = zones.sort((a, b) => {\n    if (a.from !== b.from) return a.from - b.from;\n    return a.to - b.to;\n  });\n\n  zones.forEach((zone) => {\n    if (from > zone.from) zone.from = from;\n    if (to < zone.to) zone.to = to;\n  });\n\n  zones = zones.filter((zone) => zone.from <= zone.to);\n  if (zones.length === 0) return [];\n\n  let currentZone = zones[0];\n  let result = [currentZone];\n  for (let i = 1; i < zones.length; i++) {\n    let zone = zones[i];\n    if (zone.from <= currentZone.to) {\n      currentZone.to = zone.to;\n    } else {\n      currentZone = zone;\n      result.push(currentZone);\n    }\n  }\n  return result;\n}\n","import { normalize } from './normalize';\n\n/**\n * Convert an array of exclusions and keep only from / to\n *\n * The method will always check if from if lower than to and will swap if required.\n * @param {Array} [exclusions=[]]\n * @param {object} [options={}]\n * @param {number} [options.from=Number.NEGATIVE_INFINITY] Specify min value of zones (after inversion)\n * @param {number} [options.to=Number.POSITIVE_INFINITY] Specify max value of zones (after inversion)\n */\n\nexport function invert(exclusions = [], options = {}) {\n  let {\n    from = Number.NEGATIVE_INFINITY,\n    to = Number.POSITIVE_INFINITY,\n  } = options;\n  if (from > to) [from, to] = [to, from];\n\n  exclusions = normalize(exclusions, { from, to });\n  if (exclusions.length === 0) return [{ from, to }];\n\n  let zones = [];\n  for (let i = 0; i < exclusions.length; i++) {\n    let exclusion = exclusions[i];\n    let nextExclusion = exclusions[i + 1];\n    if (i === 0) {\n      if (exclusion.from > from) {\n        zones.push({ from, to: exclusion.from });\n      }\n    }\n    if (i === exclusions.length - 1) {\n      if (exclusion.to < to) {\n        zones.push({ from: exclusion.to, to });\n      }\n    } else {\n      zones.push({ from: exclusion.to, to: nextExclusion.from });\n    }\n  }\n\n  return zones;\n}\n","import { normalize } from './normalize';\n\n/**\n * Add the number of points per zone to reach a specified total\n * @param {Array} [zones=[]]\n * @param {number} [numberOfPoints] Total number of points to distribute between zones\n * @param {object} [options={}]\n * @param {number} [options.from=Number.NEGATIVE_INFINITY] Specify min value of a zone\n * @param {number} [options.to=Number.POSITIVE_INFINITY] Specify max value of a zone\n */\n\nexport function zonesWithPoints(zones, numberOfPoints, options = {}) {\n  if (zones.length === 0) return zones;\n  zones = normalize(zones, options);\n\n  const totalSize = zones.reduce((previous, current) => {\n    return previous + (current.to - current.from);\n  }, 0);\n\n  let unitsPerPoint = totalSize / numberOfPoints;\n  let currentTotal = 0;\n  for (let i = 0; i < zones.length - 1; i++) {\n    let zone = zones[i];\n    zone.numberOfPoints = Math.min(\n      Math.round((zone.to - zone.from) / unitsPerPoint),\n      numberOfPoints - currentTotal,\n    );\n    currentTotal += zone.numberOfPoints;\n  }\n\n  zones[zones.length - 1].numberOfPoints = numberOfPoints - currentTotal;\n\n  return zones;\n}\n","/**\n * Function that calculates the integral of the line between two\n * x-coordinates, given the slope and intercept of the line.\n * @param {number} x0\n * @param {number} x1\n * @param {number} slope\n * @param {number} intercept\n * @return {number} integral value.\n */\nexport default function integral(x0, x1, slope, intercept) {\n  return (\n    0.5 * slope * x1 * x1 +\n    intercept * x1 -\n    (0.5 * slope * x0 * x0 + intercept * x0)\n  );\n}\n","import integral from './integral';\n\n/**\n * function that retrieves the getEquallySpacedData with the variant \"smooth\"\n *\n * @param {Array<number>} x\n * @param {Array<number>} y\n * @param {number} from - Initial point\n * @param {number} to - Final point\n * @param {number} numberOfPoints\n * @return {Array} - Array of y's equally spaced with the variant \"smooth\"\n */\nexport default function equallySpacedSmooth(x, y, from, to, numberOfPoints) {\n  let xLength = x.length;\n\n  let step = (to - from) / (numberOfPoints - 1);\n  let halfStep = step / 2;\n\n  let output = new Array(numberOfPoints);\n\n  let initialOriginalStep = x[1] - x[0];\n  let lastOriginalStep = x[xLength - 1] - x[xLength - 2];\n\n  // Init main variables\n  let min = from - halfStep;\n  let max = from + halfStep;\n\n  let previousX = Number.MIN_VALUE;\n  let previousY = 0;\n  let nextX = x[0] - initialOriginalStep;\n  let nextY = 0;\n\n  let currentValue = 0;\n  let slope = 0;\n  let intercept = 0;\n  let sumAtMin = 0;\n  let sumAtMax = 0;\n\n  let i = 0; // index of input\n  let j = 0; // index of output\n\n  function getSlope(x0, y0, x1, y1) {\n    return (y1 - y0) / (x1 - x0);\n  }\n\n  let add = 0;\n  main: while (true) {\n    if (previousX <= min && min <= nextX) {\n      add = integral(0, min - previousX, slope, previousY);\n      sumAtMin = currentValue + add;\n    }\n\n    while (nextX - max >= 0) {\n      // no overlap with original point, just consume current value\n      add = integral(0, max - previousX, slope, previousY);\n      sumAtMax = currentValue + add;\n\n      output[j++] = (sumAtMax - sumAtMin) / step;\n\n      if (j === numberOfPoints) {\n        break main;\n      }\n\n      min = max;\n      max += step;\n      sumAtMin = sumAtMax;\n    }\n\n    currentValue += integral(previousX, nextX, slope, intercept);\n\n    previousX = nextX;\n    previousY = nextY;\n\n    if (i < xLength) {\n      nextX = x[i];\n      nextY = y[i];\n      i++;\n    } else if (i === xLength) {\n      nextX += lastOriginalStep;\n      nextY = 0;\n    }\n\n    slope = getSlope(previousX, previousY, nextX, nextY);\n    intercept = -slope * previousX + previousY;\n  }\n\n  return output;\n}\n","/**\n * function that retrieves the getEquallySpacedData with the variant \"slot\"\n *\n * @param {Array<number>} x\n * @param {Array<number>} y\n * @param {number} from - Initial point\n * @param {number} to - Final point\n * @param {number} numberOfPoints\n * @return {Array} - Array of y's equally spaced with the variant \"slot\"\n */\nexport default function equallySpacedSlot(x, y, from, to, numberOfPoints) {\n  let xLength = x.length;\n\n  let step = (to - from) / (numberOfPoints - 1);\n  let halfStep = step / 2;\n  let lastStep = x[x.length - 1] - x[x.length - 2];\n\n  let start = from - halfStep;\n  let output = new Array(numberOfPoints);\n\n  // Init main variables\n  let min = start;\n  let max = start + step;\n\n  let previousX = -Number.MAX_VALUE;\n  let previousY = 0;\n  let nextX = x[0];\n  let nextY = y[0];\n  let frontOutsideSpectra = 0;\n  let backOutsideSpectra = true;\n\n  let currentValue = 0;\n\n  // for slot algorithm\n  let currentPoints = 0;\n\n  let i = 1; // index of input\n  let j = 0; // index of output\n\n  main: while (true) {\n    if (previousX >= nextX) throw new Error('x must be an increasing serie');\n    while (previousX - max > 0) {\n      // no overlap with original point, just consume current value\n      if (backOutsideSpectra) {\n        currentPoints++;\n        backOutsideSpectra = false;\n      }\n\n      output[j] = currentPoints <= 0 ? 0 : currentValue / currentPoints;\n      j++;\n\n      if (j === numberOfPoints) {\n        break main;\n      }\n\n      min = max;\n      max += step;\n      currentValue = 0;\n      currentPoints = 0;\n    }\n\n    if (previousX > min) {\n      currentValue += previousY;\n      currentPoints++;\n    }\n\n    if (previousX === -Number.MAX_VALUE || frontOutsideSpectra > 1) {\n      currentPoints--;\n    }\n\n    previousX = nextX;\n    previousY = nextY;\n\n    if (i < xLength) {\n      nextX = x[i];\n      nextY = y[i];\n      i++;\n    } else {\n      nextX += lastStep;\n      nextY = 0;\n      frontOutsideSpectra++;\n    }\n  }\n\n  return output;\n}\n","import sequentialFill from 'ml-array-sequential-fill';\nimport { zonesWithPoints, invert } from 'ml-zones';\n\nimport equallySpacedSmooth from './equallySpacedSmooth';\nimport equallySpacedSlot from './equallySpacedSlot';\n\n/**\n * Function that returns a Number array of equally spaced numberOfPoints\n * containing a representation of intensities of the spectra arguments x\n * and y.\n *\n * The options parameter contains an object in the following form:\n * from: starting point\n * to: last point\n * numberOfPoints: number of points between from and to\n * variant: \"slot\" or \"smooth\" - smooth is the default option\n *\n * The slot variant consist that each point in the new array is calculated\n * averaging the existing points between the slot that belongs to the current\n * value. The smooth variant is the same but takes the integral of the range\n * of the slot and divide by the step size between two points in the new array.\n *\n * If exclusions zone are present, zones are ignored !\n * @param {object} [arrayXY={}] - object containing 2 properties x and y (both an array)\n * @param {object} [options={}]\n * @param {number} [options.from=x[0]]\n * @param {number} [options.to=x[x.length-1]]\n * @param {string} [options.variant='smooth']\n * @param {number} [options.numberOfPoints=100]\n * @param {Array} [options.exclusions=[]] array of from / to that should be skipped for the generation of the points\n * @param {Array} [options.zones=[]] array of from / to that should be kept\n * @return {object<x: Array, y:Array>} new object with x / y array with the equally spaced data.\n */\n\nexport default function equallySpaced(arrayXY = {}, options = {}) {\n  let { x, y } = arrayXY;\n  let xLength = x.length;\n  let reverse = false;\n  if (x.length > 1 && x[0] > x[1]) {\n    x = x.slice().reverse();\n    y = y.slice().reverse();\n    reverse = true;\n  }\n\n  let {\n    from = x[0],\n    to = x[xLength - 1],\n    variant = 'smooth',\n    numberOfPoints = 100,\n    exclusions = [],\n    zones = [],\n  } = options;\n\n  if (xLength !== y.length) {\n    throw new RangeError(\"the x and y vector doesn't have the same size.\");\n  }\n\n  if (typeof from !== 'number' || isNaN(from)) {\n    throw new RangeError(\"'from' option must be a number\");\n  }\n\n  if (typeof to !== 'number' || isNaN(to)) {\n    throw new RangeError(\"'to' option must be a number\");\n  }\n\n  if (typeof numberOfPoints !== 'number' || isNaN(numberOfPoints)) {\n    throw new RangeError(\"'numberOfPoints' option must be a number\");\n  }\n\n  if (numberOfPoints < 2) {\n    throw new RangeError(\"'numberOfPoints' option must be greater than 1\");\n  }\n\n  if (zones.length === 0) {\n    zones = invert(exclusions, { from, to });\n  }\n\n  zones = zonesWithPoints(zones, numberOfPoints, { from, to });\n\n  let xResult = [];\n  let yResult = [];\n  for (let zone of zones) {\n    let zoneResult = processZone(\n      x,\n      y,\n      zone.from,\n      zone.to,\n      zone.numberOfPoints,\n      variant,\n      reverse,\n    );\n\n    xResult = xResult.concat(zoneResult.x);\n    yResult = yResult.concat(zoneResult.y);\n  }\n  if (reverse) {\n    if (from < to) {\n      return { x: xResult.reverse(), y: yResult.reverse() };\n    } else {\n      return { x: xResult, y: yResult };\n    }\n  } else {\n    if (from < to) {\n      return { x: xResult, y: yResult };\n    } else {\n      return { x: xResult.reverse(), y: yResult.reverse() };\n    }\n  }\n}\n\nfunction processZone(x, y, from, to, numberOfPoints, variant) {\n  if (numberOfPoints < 1) {\n    throw new RangeError('the number of points must be at least 1');\n  }\n\n  let output =\n    variant === 'slot'\n      ? equallySpacedSlot(x, y, from, to, numberOfPoints)\n      : equallySpacedSmooth(x, y, from, to, numberOfPoints);\n\n  return {\n    x: sequentialFill({\n      from,\n      to,\n      size: numberOfPoints,\n    }),\n    y: output,\n  };\n}\n","export default function getZones(from, to, exclusions = []) {\n  if (from > to) {\n    [from, to] = [to, from];\n  }\n\n  // in exclusions from and to have to be defined\n  exclusions = exclusions.filter(\n    (exclusion) => exclusion.from !== undefined && exclusion.to !== undefined\n  );\n\n  exclusions = JSON.parse(JSON.stringify(exclusions));\n  // we ensure that from before to\n  exclusions.forEach((exclusion) => {\n    if (exclusion.from > exclusion.to) {\n      [exclusion.to, exclusion.from] = [exclusion.from, exclusion.to];\n    }\n  });\n\n  exclusions.sort((a, b) => a.from - b.from);\n\n  // we will rework the exclusions in order to remove overlap and outside range (from / to)\n  exclusions.forEach((exclusion) => {\n    if (exclusion.from < from) exclusion.from = from;\n    if (exclusion.to > to) exclusion.to = to;\n  });\n  for (let i = 0; i < exclusions.length - 1; i++) {\n    if (exclusions[i].to > exclusions[i + 1].from) {\n      exclusions[i].to = exclusions[i + 1].from;\n    }\n  }\n  exclusions = exclusions.filter((exclusion) => exclusion.from < exclusion.to);\n\n  if (!exclusions || exclusions.length === 0) {\n    return [{ from, to }];\n  }\n\n  let zones = [];\n  let currentFrom = from;\n  for (let exclusion of exclusions) {\n    if (currentFrom < exclusion.from) {\n      zones.push({\n        from: currentFrom,\n        to: exclusion.from\n      });\n    }\n\n    currentFrom = exclusion.to;\n  }\n  if (currentFrom < to) {\n    zones.push({\n      from: currentFrom,\n      to: to\n    });\n  }\n\n  return zones;\n}\n","import getZones from './getZones';\n\n/**\n * Filter an array x/y based on various criteria\n * x points are expected to be sorted\n *\n * @param {object} points\n * @param {object} [options={}]\n * @param {array} [options.from]\n * @param {array} [options.to]\n * @param {array} [options.exclusions=[]]\n * @return {{x: Array<number>, y: Array<number>}}\n */\n\nexport default function filterX(points, options = {}) {\n  const { x, y } = points;\n  const { from = x[0], to = x[x.length - 1], exclusions = [] } = options;\n\n  let zones = getZones(from, to, exclusions);\n\n\n  let currentZoneIndex = 0;\n  let newX = [];\n  let newY = [];\n  let position = 0;\n  while (position < x.length) {\n    if (\n      x[position] <= zones[currentZoneIndex].to &&\n      x[position] >= zones[currentZoneIndex].from\n    ) {\n      newX.push(x[position]);\n      newY.push(y[position]);\n    } else {\n      if (x[position] > zones[currentZoneIndex].to) {\n        currentZoneIndex++;\n        if (!zones[currentZoneIndex]) break;\n      }\n    }\n    position++;\n  }\n\n  return {\n    x: newX,\n    y: newY\n  };\n}\n","const indent = ' '.repeat(2);\nconst indentData = ' '.repeat(4);\n\nexport function inspectMatrix() {\n  return inspectMatrixWithOptions(this);\n}\n\nexport function inspectMatrixWithOptions(matrix, options = {}) {\n  const { maxRows = 15, maxColumns = 10, maxNumSize = 8 } = options;\n  return `${matrix.constructor.name} {\n${indent}[\n${indentData}${inspectData(matrix, maxRows, maxColumns, maxNumSize)}\n${indent}]\n${indent}rows: ${matrix.rows}\n${indent}columns: ${matrix.columns}\n}`;\n}\n\nfunction inspectData(matrix, maxRows, maxColumns, maxNumSize) {\n  const { rows, columns } = matrix;\n  const maxI = Math.min(rows, maxRows);\n  const maxJ = Math.min(columns, maxColumns);\n  const result = [];\n  for (let i = 0; i < maxI; i++) {\n    let line = [];\n    for (let j = 0; j < maxJ; j++) {\n      line.push(formatNumber(matrix.get(i, j), maxNumSize));\n    }\n    result.push(`${line.join(' ')}`);\n  }\n  if (maxJ !== columns) {\n    result[result.length - 1] += ` ... ${columns - maxColumns} more columns`;\n  }\n  if (maxI !== rows) {\n    result.push(`... ${rows - maxRows} more rows`);\n  }\n  return result.join(`\\n${indentData}`);\n}\n\nfunction formatNumber(num, maxNumSize) {\n  const numStr = String(num);\n  if (numStr.length <= maxNumSize) {\n    return numStr.padEnd(maxNumSize, ' ');\n  }\n  const precise = num.toPrecision(maxNumSize - 2);\n  if (precise.length <= maxNumSize) {\n    return precise;\n  }\n  const exponential = num.toExponential(maxNumSize - 2);\n  const eIndex = exponential.indexOf('e');\n  const e = exponential.slice(eIndex);\n  return exponential.slice(0, maxNumSize - e.length) + e;\n}\n","export function installMathOperations(AbstractMatrix, Matrix) {\r\n  AbstractMatrix.prototype.add = function add(value) {\r\n    if (typeof value === 'number') return this.addS(value);\r\n    return this.addM(value);\r\n  };\r\n\r\n  AbstractMatrix.prototype.addS = function addS(value) {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) + value);\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.prototype.addM = function addM(matrix) {\r\n    matrix = Matrix.checkMatrix(matrix);\r\n    if (this.rows !== matrix.rows ||\r\n      this.columns !== matrix.columns) {\r\n      throw new RangeError('Matrices dimensions must be equal');\r\n    }\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) + matrix.get(i, j));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.add = function add(matrix, value) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.add(value);\r\n  };\r\n\r\n  AbstractMatrix.prototype.sub = function sub(value) {\r\n    if (typeof value === 'number') return this.subS(value);\r\n    return this.subM(value);\r\n  };\r\n\r\n  AbstractMatrix.prototype.subS = function subS(value) {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) - value);\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.prototype.subM = function subM(matrix) {\r\n    matrix = Matrix.checkMatrix(matrix);\r\n    if (this.rows !== matrix.rows ||\r\n      this.columns !== matrix.columns) {\r\n      throw new RangeError('Matrices dimensions must be equal');\r\n    }\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) - matrix.get(i, j));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.sub = function sub(matrix, value) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.sub(value);\r\n  };\r\n  AbstractMatrix.prototype.subtract = AbstractMatrix.prototype.sub;\r\n  AbstractMatrix.prototype.subtractS = AbstractMatrix.prototype.subS;\r\n  AbstractMatrix.prototype.subtractM = AbstractMatrix.prototype.subM;\r\n  AbstractMatrix.subtract = AbstractMatrix.sub;\r\n\r\n  AbstractMatrix.prototype.mul = function mul(value) {\r\n    if (typeof value === 'number') return this.mulS(value);\r\n    return this.mulM(value);\r\n  };\r\n\r\n  AbstractMatrix.prototype.mulS = function mulS(value) {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) * value);\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.prototype.mulM = function mulM(matrix) {\r\n    matrix = Matrix.checkMatrix(matrix);\r\n    if (this.rows !== matrix.rows ||\r\n      this.columns !== matrix.columns) {\r\n      throw new RangeError('Matrices dimensions must be equal');\r\n    }\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) * matrix.get(i, j));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.mul = function mul(matrix, value) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.mul(value);\r\n  };\r\n  AbstractMatrix.prototype.multiply = AbstractMatrix.prototype.mul;\r\n  AbstractMatrix.prototype.multiplyS = AbstractMatrix.prototype.mulS;\r\n  AbstractMatrix.prototype.multiplyM = AbstractMatrix.prototype.mulM;\r\n  AbstractMatrix.multiply = AbstractMatrix.mul;\r\n\r\n  AbstractMatrix.prototype.div = function div(value) {\r\n    if (typeof value === 'number') return this.divS(value);\r\n    return this.divM(value);\r\n  };\r\n\r\n  AbstractMatrix.prototype.divS = function divS(value) {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) / value);\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.prototype.divM = function divM(matrix) {\r\n    matrix = Matrix.checkMatrix(matrix);\r\n    if (this.rows !== matrix.rows ||\r\n      this.columns !== matrix.columns) {\r\n      throw new RangeError('Matrices dimensions must be equal');\r\n    }\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) / matrix.get(i, j));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.div = function div(matrix, value) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.div(value);\r\n  };\r\n  AbstractMatrix.prototype.divide = AbstractMatrix.prototype.div;\r\n  AbstractMatrix.prototype.divideS = AbstractMatrix.prototype.divS;\r\n  AbstractMatrix.prototype.divideM = AbstractMatrix.prototype.divM;\r\n  AbstractMatrix.divide = AbstractMatrix.div;\r\n\r\n  AbstractMatrix.prototype.mod = function mod(value) {\r\n    if (typeof value === 'number') return this.modS(value);\r\n    return this.modM(value);\r\n  };\r\n\r\n  AbstractMatrix.prototype.modS = function modS(value) {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) % value);\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.prototype.modM = function modM(matrix) {\r\n    matrix = Matrix.checkMatrix(matrix);\r\n    if (this.rows !== matrix.rows ||\r\n      this.columns !== matrix.columns) {\r\n      throw new RangeError('Matrices dimensions must be equal');\r\n    }\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) % matrix.get(i, j));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.mod = function mod(matrix, value) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.mod(value);\r\n  };\r\n  AbstractMatrix.prototype.modulus = AbstractMatrix.prototype.mod;\r\n  AbstractMatrix.prototype.modulusS = AbstractMatrix.prototype.modS;\r\n  AbstractMatrix.prototype.modulusM = AbstractMatrix.prototype.modM;\r\n  AbstractMatrix.modulus = AbstractMatrix.mod;\r\n\r\n  AbstractMatrix.prototype.and = function and(value) {\r\n    if (typeof value === 'number') return this.andS(value);\r\n    return this.andM(value);\r\n  };\r\n\r\n  AbstractMatrix.prototype.andS = function andS(value) {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) & value);\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.prototype.andM = function andM(matrix) {\r\n    matrix = Matrix.checkMatrix(matrix);\r\n    if (this.rows !== matrix.rows ||\r\n      this.columns !== matrix.columns) {\r\n      throw new RangeError('Matrices dimensions must be equal');\r\n    }\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) & matrix.get(i, j));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.and = function and(matrix, value) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.and(value);\r\n  };\r\n\r\n  AbstractMatrix.prototype.or = function or(value) {\r\n    if (typeof value === 'number') return this.orS(value);\r\n    return this.orM(value);\r\n  };\r\n\r\n  AbstractMatrix.prototype.orS = function orS(value) {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) | value);\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.prototype.orM = function orM(matrix) {\r\n    matrix = Matrix.checkMatrix(matrix);\r\n    if (this.rows !== matrix.rows ||\r\n      this.columns !== matrix.columns) {\r\n      throw new RangeError('Matrices dimensions must be equal');\r\n    }\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) | matrix.get(i, j));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.or = function or(matrix, value) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.or(value);\r\n  };\r\n\r\n  AbstractMatrix.prototype.xor = function xor(value) {\r\n    if (typeof value === 'number') return this.xorS(value);\r\n    return this.xorM(value);\r\n  };\r\n\r\n  AbstractMatrix.prototype.xorS = function xorS(value) {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) ^ value);\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.prototype.xorM = function xorM(matrix) {\r\n    matrix = Matrix.checkMatrix(matrix);\r\n    if (this.rows !== matrix.rows ||\r\n      this.columns !== matrix.columns) {\r\n      throw new RangeError('Matrices dimensions must be equal');\r\n    }\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) ^ matrix.get(i, j));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.xor = function xor(matrix, value) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.xor(value);\r\n  };\r\n\r\n  AbstractMatrix.prototype.leftShift = function leftShift(value) {\r\n    if (typeof value === 'number') return this.leftShiftS(value);\r\n    return this.leftShiftM(value);\r\n  };\r\n\r\n  AbstractMatrix.prototype.leftShiftS = function leftShiftS(value) {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) << value);\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.prototype.leftShiftM = function leftShiftM(matrix) {\r\n    matrix = Matrix.checkMatrix(matrix);\r\n    if (this.rows !== matrix.rows ||\r\n      this.columns !== matrix.columns) {\r\n      throw new RangeError('Matrices dimensions must be equal');\r\n    }\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) << matrix.get(i, j));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.leftShift = function leftShift(matrix, value) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.leftShift(value);\r\n  };\r\n\r\n  AbstractMatrix.prototype.signPropagatingRightShift = function signPropagatingRightShift(value) {\r\n    if (typeof value === 'number') return this.signPropagatingRightShiftS(value);\r\n    return this.signPropagatingRightShiftM(value);\r\n  };\r\n\r\n  AbstractMatrix.prototype.signPropagatingRightShiftS = function signPropagatingRightShiftS(value) {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) >> value);\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.prototype.signPropagatingRightShiftM = function signPropagatingRightShiftM(matrix) {\r\n    matrix = Matrix.checkMatrix(matrix);\r\n    if (this.rows !== matrix.rows ||\r\n      this.columns !== matrix.columns) {\r\n      throw new RangeError('Matrices dimensions must be equal');\r\n    }\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) >> matrix.get(i, j));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.signPropagatingRightShift = function signPropagatingRightShift(matrix, value) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.signPropagatingRightShift(value);\r\n  };\r\n\r\n  AbstractMatrix.prototype.rightShift = function rightShift(value) {\r\n    if (typeof value === 'number') return this.rightShiftS(value);\r\n    return this.rightShiftM(value);\r\n  };\r\n\r\n  AbstractMatrix.prototype.rightShiftS = function rightShiftS(value) {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) >>> value);\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.prototype.rightShiftM = function rightShiftM(matrix) {\r\n    matrix = Matrix.checkMatrix(matrix);\r\n    if (this.rows !== matrix.rows ||\r\n      this.columns !== matrix.columns) {\r\n      throw new RangeError('Matrices dimensions must be equal');\r\n    }\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, this.get(i, j) >>> matrix.get(i, j));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.rightShift = function rightShift(matrix, value) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.rightShift(value);\r\n  };\r\n  AbstractMatrix.prototype.zeroFillRightShift = AbstractMatrix.prototype.rightShift;\r\n  AbstractMatrix.prototype.zeroFillRightShiftS = AbstractMatrix.prototype.rightShiftS;\r\n  AbstractMatrix.prototype.zeroFillRightShiftM = AbstractMatrix.prototype.rightShiftM;\r\n  AbstractMatrix.zeroFillRightShift = AbstractMatrix.rightShift;\r\n\r\n  AbstractMatrix.prototype.not = function not() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, ~(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.not = function not(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.not();\r\n  };\r\n\r\n  AbstractMatrix.prototype.abs = function abs() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.abs(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.abs = function abs(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.abs();\r\n  };\r\n\r\n  AbstractMatrix.prototype.acos = function acos() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.acos(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.acos = function acos(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.acos();\r\n  };\r\n\r\n  AbstractMatrix.prototype.acosh = function acosh() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.acosh(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.acosh = function acosh(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.acosh();\r\n  };\r\n\r\n  AbstractMatrix.prototype.asin = function asin() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.asin(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.asin = function asin(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.asin();\r\n  };\r\n\r\n  AbstractMatrix.prototype.asinh = function asinh() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.asinh(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.asinh = function asinh(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.asinh();\r\n  };\r\n\r\n  AbstractMatrix.prototype.atan = function atan() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.atan(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.atan = function atan(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.atan();\r\n  };\r\n\r\n  AbstractMatrix.prototype.atanh = function atanh() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.atanh(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.atanh = function atanh(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.atanh();\r\n  };\r\n\r\n  AbstractMatrix.prototype.cbrt = function cbrt() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.cbrt(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.cbrt = function cbrt(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.cbrt();\r\n  };\r\n\r\n  AbstractMatrix.prototype.ceil = function ceil() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.ceil(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.ceil = function ceil(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.ceil();\r\n  };\r\n\r\n  AbstractMatrix.prototype.clz32 = function clz32() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.clz32(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.clz32 = function clz32(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.clz32();\r\n  };\r\n\r\n  AbstractMatrix.prototype.cos = function cos() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.cos(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.cos = function cos(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.cos();\r\n  };\r\n\r\n  AbstractMatrix.prototype.cosh = function cosh() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.cosh(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.cosh = function cosh(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.cosh();\r\n  };\r\n\r\n  AbstractMatrix.prototype.exp = function exp() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.exp(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.exp = function exp(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.exp();\r\n  };\r\n\r\n  AbstractMatrix.prototype.expm1 = function expm1() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.expm1(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.expm1 = function expm1(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.expm1();\r\n  };\r\n\r\n  AbstractMatrix.prototype.floor = function floor() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.floor(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.floor = function floor(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.floor();\r\n  };\r\n\r\n  AbstractMatrix.prototype.fround = function fround() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.fround(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.fround = function fround(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.fround();\r\n  };\r\n\r\n  AbstractMatrix.prototype.log = function log() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.log(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.log = function log(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.log();\r\n  };\r\n\r\n  AbstractMatrix.prototype.log1p = function log1p() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.log1p(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.log1p = function log1p(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.log1p();\r\n  };\r\n\r\n  AbstractMatrix.prototype.log10 = function log10() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.log10(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.log10 = function log10(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.log10();\r\n  };\r\n\r\n  AbstractMatrix.prototype.log2 = function log2() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.log2(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.log2 = function log2(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.log2();\r\n  };\r\n\r\n  AbstractMatrix.prototype.round = function round() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.round(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.round = function round(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.round();\r\n  };\r\n\r\n  AbstractMatrix.prototype.sign = function sign() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.sign(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.sign = function sign(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.sign();\r\n  };\r\n\r\n  AbstractMatrix.prototype.sin = function sin() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.sin(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.sin = function sin(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.sin();\r\n  };\r\n\r\n  AbstractMatrix.prototype.sinh = function sinh() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.sinh(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.sinh = function sinh(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.sinh();\r\n  };\r\n\r\n  AbstractMatrix.prototype.sqrt = function sqrt() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.sqrt(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.sqrt = function sqrt(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.sqrt();\r\n  };\r\n\r\n  AbstractMatrix.prototype.tan = function tan() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.tan(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.tan = function tan(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.tan();\r\n  };\r\n\r\n  AbstractMatrix.prototype.tanh = function tanh() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.tanh(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.tanh = function tanh(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.tanh();\r\n  };\r\n\r\n  AbstractMatrix.prototype.trunc = function trunc() {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.trunc(this.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.trunc = function trunc(matrix) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.trunc();\r\n  };\r\n\r\n  AbstractMatrix.pow = function pow(matrix, arg0) {\r\n    const newMatrix = new Matrix(matrix);\r\n    return newMatrix.pow(arg0);\r\n  };\r\n\r\n  AbstractMatrix.prototype.pow = function pow(value) {\r\n    if (typeof value === 'number') return this.powS(value);\r\n    return this.powM(value);\r\n  };\r\n\r\n  AbstractMatrix.prototype.powS = function powS(value) {\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.pow(this.get(i, j), value));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n\r\n  AbstractMatrix.prototype.powM = function powM(matrix) {\r\n    matrix = Matrix.checkMatrix(matrix);\r\n    if (this.rows !== matrix.rows ||\r\n      this.columns !== matrix.columns) {\r\n      throw new RangeError('Matrices dimensions must be equal');\r\n    }\r\n    for (let i = 0; i < this.rows; i++) {\r\n      for (let j = 0; j < this.columns; j++) {\r\n        this.set(i, j, Math.pow(this.get(i, j), matrix.get(i, j)));\r\n      }\r\n    }\r\n    return this;\r\n  };\r\n}\r\n","/**\n * @private\n * Check that a row index is not out of bounds\n * @param {Matrix} matrix\n * @param {number} index\n * @param {boolean} [outer]\n */\nexport function checkRowIndex(matrix, index, outer) {\n  let max = outer ? matrix.rows : matrix.rows - 1;\n  if (index < 0 || index > max) {\n    throw new RangeError('Row index out of range');\n  }\n}\n\n/**\n * @private\n * Check that a column index is not out of bounds\n * @param {Matrix} matrix\n * @param {number} index\n * @param {boolean} [outer]\n */\nexport function checkColumnIndex(matrix, index, outer) {\n  let max = outer ? matrix.columns : matrix.columns - 1;\n  if (index < 0 || index > max) {\n    throw new RangeError('Column index out of range');\n  }\n}\n\n/**\n * @private\n * Check that the provided vector is an array with the right length\n * @param {Matrix} matrix\n * @param {Array|Matrix} vector\n * @return {Array}\n * @throws {RangeError}\n */\nexport function checkRowVector(matrix, vector) {\n  if (vector.to1DArray) {\n    vector = vector.to1DArray();\n  }\n  if (vector.length !== matrix.columns) {\n    throw new RangeError(\n      'vector size must be the same as the number of columns',\n    );\n  }\n  return vector;\n}\n\n/**\n * @private\n * Check that the provided vector is an array with the right length\n * @param {Matrix} matrix\n * @param {Array|Matrix} vector\n * @return {Array}\n * @throws {RangeError}\n */\nexport function checkColumnVector(matrix, vector) {\n  if (vector.to1DArray) {\n    vector = vector.to1DArray();\n  }\n  if (vector.length !== matrix.rows) {\n    throw new RangeError('vector size must be the same as the number of rows');\n  }\n  return vector;\n}\n\nexport function checkIndices(matrix, rowIndices, columnIndices) {\n  return {\n    row: checkRowIndices(matrix, rowIndices),\n    column: checkColumnIndices(matrix, columnIndices),\n  };\n}\n\nexport function checkRowIndices(matrix, rowIndices) {\n  if (typeof rowIndices !== 'object') {\n    throw new TypeError('unexpected type for row indices');\n  }\n\n  let rowOut = rowIndices.some((r) => {\n    return r < 0 || r >= matrix.rows;\n  });\n\n  if (rowOut) {\n    throw new RangeError('row indices are out of range');\n  }\n\n  if (!Array.isArray(rowIndices)) rowIndices = Array.from(rowIndices);\n\n  return rowIndices;\n}\n\nexport function checkColumnIndices(matrix, columnIndices) {\n  if (typeof columnIndices !== 'object') {\n    throw new TypeError('unexpected type for column indices');\n  }\n\n  let columnOut = columnIndices.some((c) => {\n    return c < 0 || c >= matrix.columns;\n  });\n\n  if (columnOut) {\n    throw new RangeError('column indices are out of range');\n  }\n  if (!Array.isArray(columnIndices)) columnIndices = Array.from(columnIndices);\n\n  return columnIndices;\n}\n\nexport function checkRange(matrix, startRow, endRow, startColumn, endColumn) {\n  if (arguments.length !== 5) {\n    throw new RangeError('expected 4 arguments');\n  }\n  checkNumber('startRow', startRow);\n  checkNumber('endRow', endRow);\n  checkNumber('startColumn', startColumn);\n  checkNumber('endColumn', endColumn);\n  if (\n    startRow > endRow ||\n    startColumn > endColumn ||\n    startRow < 0 ||\n    startRow >= matrix.rows ||\n    endRow < 0 ||\n    endRow >= matrix.rows ||\n    startColumn < 0 ||\n    startColumn >= matrix.columns ||\n    endColumn < 0 ||\n    endColumn >= matrix.columns\n  ) {\n    throw new RangeError('Submatrix indices are out of range');\n  }\n}\n\nexport function newArray(length, value = 0) {\n  let array = [];\n  for (let i = 0; i < length; i++) {\n    array.push(value);\n  }\n  return array;\n}\n\nfunction checkNumber(name, value) {\n  if (typeof value !== 'number') {\n    throw new TypeError(`${name} must be a number`);\n  }\n}\n","import { newArray } from './util';\n\nexport function sumByRow(matrix) {\n  let sum = newArray(matrix.rows);\n  for (let i = 0; i < matrix.rows; ++i) {\n    for (let j = 0; j < matrix.columns; ++j) {\n      sum[i] += matrix.get(i, j);\n    }\n  }\n  return sum;\n}\n\nexport function sumByColumn(matrix) {\n  let sum = newArray(matrix.columns);\n  for (let i = 0; i < matrix.rows; ++i) {\n    for (let j = 0; j < matrix.columns; ++j) {\n      sum[j] += matrix.get(i, j);\n    }\n  }\n  return sum;\n}\n\nexport function sumAll(matrix) {\n  let v = 0;\n  for (let i = 0; i < matrix.rows; i++) {\n    for (let j = 0; j < matrix.columns; j++) {\n      v += matrix.get(i, j);\n    }\n  }\n  return v;\n}\n\nexport function productByRow(matrix) {\n  let sum = newArray(matrix.rows, 1);\n  for (let i = 0; i < matrix.rows; ++i) {\n    for (let j = 0; j < matrix.columns; ++j) {\n      sum[i] *= matrix.get(i, j);\n    }\n  }\n  return sum;\n}\n\nexport function productByColumn(matrix) {\n  let sum = newArray(matrix.columns, 1);\n  for (let i = 0; i < matrix.rows; ++i) {\n    for (let j = 0; j < matrix.columns; ++j) {\n      sum[j] *= matrix.get(i, j);\n    }\n  }\n  return sum;\n}\n\nexport function productAll(matrix) {\n  let v = 1;\n  for (let i = 0; i < matrix.rows; i++) {\n    for (let j = 0; j < matrix.columns; j++) {\n      v *= matrix.get(i, j);\n    }\n  }\n  return v;\n}\n\nexport function varianceByRow(matrix, unbiased, mean) {\n  const rows = matrix.rows;\n  const cols = matrix.columns;\n  const variance = [];\n\n  for (let i = 0; i < rows; i++) {\n    let sum1 = 0;\n    let sum2 = 0;\n    let x = 0;\n    for (let j = 0; j < cols; j++) {\n      x = matrix.get(i, j) - mean[i];\n      sum1 += x;\n      sum2 += x * x;\n    }\n    if (unbiased) {\n      variance.push((sum2 - (sum1 * sum1) / cols) / (cols - 1));\n    } else {\n      variance.push((sum2 - (sum1 * sum1) / cols) / cols);\n    }\n  }\n  return variance;\n}\n\nexport function varianceByColumn(matrix, unbiased, mean) {\n  const rows = matrix.rows;\n  const cols = matrix.columns;\n  const variance = [];\n\n  for (let j = 0; j < cols; j++) {\n    let sum1 = 0;\n    let sum2 = 0;\n    let x = 0;\n    for (let i = 0; i < rows; i++) {\n      x = matrix.get(i, j) - mean[j];\n      sum1 += x;\n      sum2 += x * x;\n    }\n    if (unbiased) {\n      variance.push((sum2 - (sum1 * sum1) / rows) / (rows - 1));\n    } else {\n      variance.push((sum2 - (sum1 * sum1) / rows) / rows);\n    }\n  }\n  return variance;\n}\n\nexport function varianceAll(matrix, unbiased, mean) {\n  const rows = matrix.rows;\n  const cols = matrix.columns;\n  const size = rows * cols;\n\n  let sum1 = 0;\n  let sum2 = 0;\n  let x = 0;\n  for (let i = 0; i < rows; i++) {\n    for (let j = 0; j < cols; j++) {\n      x = matrix.get(i, j) - mean;\n      sum1 += x;\n      sum2 += x * x;\n    }\n  }\n  if (unbiased) {\n    return (sum2 - (sum1 * sum1) / size) / (size - 1);\n  } else {\n    return (sum2 - (sum1 * sum1) / size) / size;\n  }\n}\n\nexport function centerByRow(matrix, mean) {\n  for (let i = 0; i < matrix.rows; i++) {\n    for (let j = 0; j < matrix.columns; j++) {\n      matrix.set(i, j, matrix.get(i, j) - mean[i]);\n    }\n  }\n}\n\nexport function centerByColumn(matrix, mean) {\n  for (let i = 0; i < matrix.rows; i++) {\n    for (let j = 0; j < matrix.columns; j++) {\n      matrix.set(i, j, matrix.get(i, j) - mean[j]);\n    }\n  }\n}\n\nexport function centerAll(matrix, mean) {\n  for (let i = 0; i < matrix.rows; i++) {\n    for (let j = 0; j < matrix.columns; j++) {\n      matrix.set(i, j, matrix.get(i, j) - mean);\n    }\n  }\n}\n\nexport function getScaleByRow(matrix) {\n  const scale = [];\n  for (let i = 0; i < matrix.rows; i++) {\n    let sum = 0;\n    for (let j = 0; j < matrix.columns; j++) {\n      sum += Math.pow(matrix.get(i, j), 2) / (matrix.columns - 1);\n    }\n    scale.push(Math.sqrt(sum));\n  }\n  return scale;\n}\n\nexport function scaleByRow(matrix, scale) {\n  for (let i = 0; i < matrix.rows; i++) {\n    for (let j = 0; j < matrix.columns; j++) {\n      matrix.set(i, j, matrix.get(i, j) / scale[i]);\n    }\n  }\n}\n\nexport function getScaleByColumn(matrix) {\n  const scale = [];\n  for (let j = 0; j < matrix.columns; j++) {\n    let sum = 0;\n    for (let i = 0; i < matrix.rows; i++) {\n      sum += Math.pow(matrix.get(i, j), 2) / (matrix.rows - 1);\n    }\n    scale.push(Math.sqrt(sum));\n  }\n  return scale;\n}\n\nexport function scaleByColumn(matrix, scale) {\n  for (let i = 0; i < matrix.rows; i++) {\n    for (let j = 0; j < matrix.columns; j++) {\n      matrix.set(i, j, matrix.get(i, j) / scale[j]);\n    }\n  }\n}\n\nexport function getScaleAll(matrix) {\n  const divider = matrix.size - 1;\n  let sum = 0;\n  for (let j = 0; j < matrix.columns; j++) {\n    for (let i = 0; i < matrix.rows; i++) {\n      sum += Math.pow(matrix.get(i, j), 2) / divider;\n    }\n  }\n  return Math.sqrt(sum);\n}\n\nexport function scaleAll(matrix, scale) {\n  for (let i = 0; i < matrix.rows; i++) {\n    for (let j = 0; j < matrix.columns; j++) {\n      matrix.set(i, j, matrix.get(i, j) / scale);\n    }\n  }\n}\n","import rescale from 'ml-array-rescale';\n\nimport { inspectMatrix, inspectMatrixWithOptions } from './inspect';\nimport { installMathOperations } from './mathOperations';\nimport {\n  sumByRow,\n  sumByColumn,\n  sumAll,\n  productByRow,\n  productByColumn,\n  productAll,\n  varianceByRow,\n  varianceByColumn,\n  varianceAll,\n  centerByRow,\n  centerByColumn,\n  centerAll,\n  scaleByRow,\n  scaleByColumn,\n  scaleAll,\n  getScaleByRow,\n  getScaleByColumn,\n  getScaleAll,\n} from './stat';\nimport {\n  checkRowVector,\n  checkRowIndex,\n  checkColumnIndex,\n  checkColumnVector,\n  checkRange,\n  checkIndices,\n} from './util';\n\nexport class AbstractMatrix {\n  static from1DArray(newRows, newColumns, newData) {\n    let length = newRows * newColumns;\n    if (length !== newData.length) {\n      throw new RangeError('data length does not match given dimensions');\n    }\n    let newMatrix = new Matrix(newRows, newColumns);\n    for (let row = 0; row < newRows; row++) {\n      for (let column = 0; column < newColumns; column++) {\n        newMatrix.set(row, column, newData[row * newColumns + column]);\n      }\n    }\n    return newMatrix;\n  }\n\n  static rowVector(newData) {\n    let vector = new Matrix(1, newData.length);\n    for (let i = 0; i < newData.length; i++) {\n      vector.set(0, i, newData[i]);\n    }\n    return vector;\n  }\n\n  static columnVector(newData) {\n    let vector = new Matrix(newData.length, 1);\n    for (let i = 0; i < newData.length; i++) {\n      vector.set(i, 0, newData[i]);\n    }\n    return vector;\n  }\n\n  static zeros(rows, columns) {\n    return new Matrix(rows, columns);\n  }\n\n  static ones(rows, columns) {\n    return new Matrix(rows, columns).fill(1);\n  }\n\n  static rand(rows, columns, options = {}) {\n    if (typeof options !== 'object') {\n      throw new TypeError('options must be an object');\n    }\n    const { random = Math.random } = options;\n    let matrix = new Matrix(rows, columns);\n    for (let i = 0; i < rows; i++) {\n      for (let j = 0; j < columns; j++) {\n        matrix.set(i, j, random());\n      }\n    }\n    return matrix;\n  }\n\n  static randInt(rows, columns, options = {}) {\n    if (typeof options !== 'object') {\n      throw new TypeError('options must be an object');\n    }\n    const { min = 0, max = 1000, random = Math.random } = options;\n    if (!Number.isInteger(min)) throw new TypeError('min must be an integer');\n    if (!Number.isInteger(max)) throw new TypeError('max must be an integer');\n    if (min >= max) throw new RangeError('min must be smaller than max');\n    let interval = max - min;\n    let matrix = new Matrix(rows, columns);\n    for (let i = 0; i < rows; i++) {\n      for (let j = 0; j < columns; j++) {\n        let value = min + Math.round(random() * interval);\n        matrix.set(i, j, value);\n      }\n    }\n    return matrix;\n  }\n\n  static eye(rows, columns, value) {\n    if (columns === undefined) columns = rows;\n    if (value === undefined) value = 1;\n    let min = Math.min(rows, columns);\n    let matrix = this.zeros(rows, columns);\n    for (let i = 0; i < min; i++) {\n      matrix.set(i, i, value);\n    }\n    return matrix;\n  }\n\n  static diag(data, rows, columns) {\n    let l = data.length;\n    if (rows === undefined) rows = l;\n    if (columns === undefined) columns = rows;\n    let min = Math.min(l, rows, columns);\n    let matrix = this.zeros(rows, columns);\n    for (let i = 0; i < min; i++) {\n      matrix.set(i, i, data[i]);\n    }\n    return matrix;\n  }\n\n  static min(matrix1, matrix2) {\n    matrix1 = this.checkMatrix(matrix1);\n    matrix2 = this.checkMatrix(matrix2);\n    let rows = matrix1.rows;\n    let columns = matrix1.columns;\n    let result = new Matrix(rows, columns);\n    for (let i = 0; i < rows; i++) {\n      for (let j = 0; j < columns; j++) {\n        result.set(i, j, Math.min(matrix1.get(i, j), matrix2.get(i, j)));\n      }\n    }\n    return result;\n  }\n\n  static max(matrix1, matrix2) {\n    matrix1 = this.checkMatrix(matrix1);\n    matrix2 = this.checkMatrix(matrix2);\n    let rows = matrix1.rows;\n    let columns = matrix1.columns;\n    let result = new this(rows, columns);\n    for (let i = 0; i < rows; i++) {\n      for (let j = 0; j < columns; j++) {\n        result.set(i, j, Math.max(matrix1.get(i, j), matrix2.get(i, j)));\n      }\n    }\n    return result;\n  }\n\n  static checkMatrix(value) {\n    return AbstractMatrix.isMatrix(value) ? value : new Matrix(value);\n  }\n\n  static isMatrix(value) {\n    return value != null && value.klass === 'Matrix';\n  }\n\n  get size() {\n    return this.rows * this.columns;\n  }\n\n  apply(callback) {\n    if (typeof callback !== 'function') {\n      throw new TypeError('callback must be a function');\n    }\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        callback.call(this, i, j);\n      }\n    }\n    return this;\n  }\n\n  to1DArray() {\n    let array = [];\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        array.push(this.get(i, j));\n      }\n    }\n    return array;\n  }\n\n  to2DArray() {\n    let copy = [];\n    for (let i = 0; i < this.rows; i++) {\n      copy.push([]);\n      for (let j = 0; j < this.columns; j++) {\n        copy[i].push(this.get(i, j));\n      }\n    }\n    return copy;\n  }\n\n  toJSON() {\n    return this.to2DArray();\n  }\n\n  isRowVector() {\n    return this.rows === 1;\n  }\n\n  isColumnVector() {\n    return this.columns === 1;\n  }\n\n  isVector() {\n    return this.rows === 1 || this.columns === 1;\n  }\n\n  isSquare() {\n    return this.rows === this.columns;\n  }\n\n  isSymmetric() {\n    if (this.isSquare()) {\n      for (let i = 0; i < this.rows; i++) {\n        for (let j = 0; j <= i; j++) {\n          if (this.get(i, j) !== this.get(j, i)) {\n            return false;\n          }\n        }\n      }\n      return true;\n    }\n    return false;\n  }\n\n  isEchelonForm() {\n    let i = 0;\n    let j = 0;\n    let previousColumn = -1;\n    let isEchelonForm = true;\n    let checked = false;\n    while (i < this.rows && isEchelonForm) {\n      j = 0;\n      checked = false;\n      while (j < this.columns && checked === false) {\n        if (this.get(i, j) === 0) {\n          j++;\n        } else if (this.get(i, j) === 1 && j > previousColumn) {\n          checked = true;\n          previousColumn = j;\n        } else {\n          isEchelonForm = false;\n          checked = true;\n        }\n      }\n      i++;\n    }\n    return isEchelonForm;\n  }\n\n  isReducedEchelonForm() {\n    let i = 0;\n    let j = 0;\n    let previousColumn = -1;\n    let isReducedEchelonForm = true;\n    let checked = false;\n    while (i < this.rows && isReducedEchelonForm) {\n      j = 0;\n      checked = false;\n      while (j < this.columns && checked === false) {\n        if (this.get(i, j) === 0) {\n          j++;\n        } else if (this.get(i, j) === 1 && j > previousColumn) {\n          checked = true;\n          previousColumn = j;\n        } else {\n          isReducedEchelonForm = false;\n          checked = true;\n        }\n      }\n      for (let k = j + 1; k < this.rows; k++) {\n        if (this.get(i, k) !== 0) {\n          isReducedEchelonForm = false;\n        }\n      }\n      i++;\n    }\n    return isReducedEchelonForm;\n  }\n\n  echelonForm() {\n    let result = this.clone();\n    let h = 0;\n    let k = 0;\n    while (h < result.rows && k < result.columns) {\n      let iMax = h;\n      for (let i = h; i < result.rows; i++) {\n        if (result.get(i, k) > result.get(iMax, k)) {\n          iMax = i;\n        }\n      }\n      if (result.get(iMax, k) === 0) {\n        k++;\n      } else {\n        result.swapRows(h, iMax);\n        let tmp = result.get(h, k);\n        for (let j = k; j < result.columns; j++) {\n          result.set(h, j, result.get(h, j) / tmp);\n        }\n        for (let i = h + 1; i < result.rows; i++) {\n          let factor = result.get(i, k) / result.get(h, k);\n          result.set(i, k, 0);\n          for (let j = k + 1; j < result.columns; j++) {\n            result.set(i, j, result.get(i, j) - result.get(h, j) * factor);\n          }\n        }\n        h++;\n        k++;\n      }\n    }\n    return result;\n  }\n\n  reducedEchelonForm() {\n    let result = this.echelonForm();\n    let m = result.columns;\n    let n = result.rows;\n    let h = n - 1;\n    while (h >= 0) {\n      if (result.maxRow(h) === 0) {\n        h--;\n      } else {\n        let p = 0;\n        let pivot = false;\n        while (p < n && pivot === false) {\n          if (result.get(h, p) === 1) {\n            pivot = true;\n          } else {\n            p++;\n          }\n        }\n        for (let i = 0; i < h; i++) {\n          let factor = result.get(i, p);\n          for (let j = p; j < m; j++) {\n            let tmp = result.get(i, j) - factor * result.get(h, j);\n            result.set(i, j, tmp);\n          }\n        }\n        h--;\n      }\n    }\n    return result;\n  }\n\n  set() {\n    throw new Error('set method is unimplemented');\n  }\n\n  get() {\n    throw new Error('get method is unimplemented');\n  }\n\n  repeat(options = {}) {\n    if (typeof options !== 'object') {\n      throw new TypeError('options must be an object');\n    }\n    const { rows = 1, columns = 1 } = options;\n    if (!Number.isInteger(rows) || rows <= 0) {\n      throw new TypeError('rows must be a positive integer');\n    }\n    if (!Number.isInteger(columns) || columns <= 0) {\n      throw new TypeError('columns must be a positive integer');\n    }\n    let matrix = new Matrix(this.rows * rows, this.columns * columns);\n    for (let i = 0; i < rows; i++) {\n      for (let j = 0; j < columns; j++) {\n        matrix.setSubMatrix(this, this.rows * i, this.columns * j);\n      }\n    }\n    return matrix;\n  }\n\n  fill(value) {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, value);\n      }\n    }\n    return this;\n  }\n\n  neg() {\n    return this.mulS(-1);\n  }\n\n  getRow(index) {\n    checkRowIndex(this, index);\n    let row = [];\n    for (let i = 0; i < this.columns; i++) {\n      row.push(this.get(index, i));\n    }\n    return row;\n  }\n\n  getRowVector(index) {\n    return Matrix.rowVector(this.getRow(index));\n  }\n\n  setRow(index, array) {\n    checkRowIndex(this, index);\n    array = checkRowVector(this, array);\n    for (let i = 0; i < this.columns; i++) {\n      this.set(index, i, array[i]);\n    }\n    return this;\n  }\n\n  swapRows(row1, row2) {\n    checkRowIndex(this, row1);\n    checkRowIndex(this, row2);\n    for (let i = 0; i < this.columns; i++) {\n      let temp = this.get(row1, i);\n      this.set(row1, i, this.get(row2, i));\n      this.set(row2, i, temp);\n    }\n    return this;\n  }\n\n  getColumn(index) {\n    checkColumnIndex(this, index);\n    let column = [];\n    for (let i = 0; i < this.rows; i++) {\n      column.push(this.get(i, index));\n    }\n    return column;\n  }\n\n  getColumnVector(index) {\n    return Matrix.columnVector(this.getColumn(index));\n  }\n\n  setColumn(index, array) {\n    checkColumnIndex(this, index);\n    array = checkColumnVector(this, array);\n    for (let i = 0; i < this.rows; i++) {\n      this.set(i, index, array[i]);\n    }\n    return this;\n  }\n\n  swapColumns(column1, column2) {\n    checkColumnIndex(this, column1);\n    checkColumnIndex(this, column2);\n    for (let i = 0; i < this.rows; i++) {\n      let temp = this.get(i, column1);\n      this.set(i, column1, this.get(i, column2));\n      this.set(i, column2, temp);\n    }\n    return this;\n  }\n\n  addRowVector(vector) {\n    vector = checkRowVector(this, vector);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) + vector[j]);\n      }\n    }\n    return this;\n  }\n\n  subRowVector(vector) {\n    vector = checkRowVector(this, vector);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) - vector[j]);\n      }\n    }\n    return this;\n  }\n\n  mulRowVector(vector) {\n    vector = checkRowVector(this, vector);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) * vector[j]);\n      }\n    }\n    return this;\n  }\n\n  divRowVector(vector) {\n    vector = checkRowVector(this, vector);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) / vector[j]);\n      }\n    }\n    return this;\n  }\n\n  addColumnVector(vector) {\n    vector = checkColumnVector(this, vector);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) + vector[i]);\n      }\n    }\n    return this;\n  }\n\n  subColumnVector(vector) {\n    vector = checkColumnVector(this, vector);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) - vector[i]);\n      }\n    }\n    return this;\n  }\n\n  mulColumnVector(vector) {\n    vector = checkColumnVector(this, vector);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) * vector[i]);\n      }\n    }\n    return this;\n  }\n\n  divColumnVector(vector) {\n    vector = checkColumnVector(this, vector);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) / vector[i]);\n      }\n    }\n    return this;\n  }\n\n  mulRow(index, value) {\n    checkRowIndex(this, index);\n    for (let i = 0; i < this.columns; i++) {\n      this.set(index, i, this.get(index, i) * value);\n    }\n    return this;\n  }\n\n  mulColumn(index, value) {\n    checkColumnIndex(this, index);\n    for (let i = 0; i < this.rows; i++) {\n      this.set(i, index, this.get(i, index) * value);\n    }\n    return this;\n  }\n\n  max() {\n    let v = this.get(0, 0);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        if (this.get(i, j) > v) {\n          v = this.get(i, j);\n        }\n      }\n    }\n    return v;\n  }\n\n  maxIndex() {\n    let v = this.get(0, 0);\n    let idx = [0, 0];\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        if (this.get(i, j) > v) {\n          v = this.get(i, j);\n          idx[0] = i;\n          idx[1] = j;\n        }\n      }\n    }\n    return idx;\n  }\n\n  min() {\n    let v = this.get(0, 0);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        if (this.get(i, j) < v) {\n          v = this.get(i, j);\n        }\n      }\n    }\n    return v;\n  }\n\n  minIndex() {\n    let v = this.get(0, 0);\n    let idx = [0, 0];\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        if (this.get(i, j) < v) {\n          v = this.get(i, j);\n          idx[0] = i;\n          idx[1] = j;\n        }\n      }\n    }\n    return idx;\n  }\n\n  maxRow(row) {\n    checkRowIndex(this, row);\n    let v = this.get(row, 0);\n    for (let i = 1; i < this.columns; i++) {\n      if (this.get(row, i) > v) {\n        v = this.get(row, i);\n      }\n    }\n    return v;\n  }\n\n  maxRowIndex(row) {\n    checkRowIndex(this, row);\n    let v = this.get(row, 0);\n    let idx = [row, 0];\n    for (let i = 1; i < this.columns; i++) {\n      if (this.get(row, i) > v) {\n        v = this.get(row, i);\n        idx[1] = i;\n      }\n    }\n    return idx;\n  }\n\n  minRow(row) {\n    checkRowIndex(this, row);\n    let v = this.get(row, 0);\n    for (let i = 1; i < this.columns; i++) {\n      if (this.get(row, i) < v) {\n        v = this.get(row, i);\n      }\n    }\n    return v;\n  }\n\n  minRowIndex(row) {\n    checkRowIndex(this, row);\n    let v = this.get(row, 0);\n    let idx = [row, 0];\n    for (let i = 1; i < this.columns; i++) {\n      if (this.get(row, i) < v) {\n        v = this.get(row, i);\n        idx[1] = i;\n      }\n    }\n    return idx;\n  }\n\n  maxColumn(column) {\n    checkColumnIndex(this, column);\n    let v = this.get(0, column);\n    for (let i = 1; i < this.rows; i++) {\n      if (this.get(i, column) > v) {\n        v = this.get(i, column);\n      }\n    }\n    return v;\n  }\n\n  maxColumnIndex(column) {\n    checkColumnIndex(this, column);\n    let v = this.get(0, column);\n    let idx = [0, column];\n    for (let i = 1; i < this.rows; i++) {\n      if (this.get(i, column) > v) {\n        v = this.get(i, column);\n        idx[0] = i;\n      }\n    }\n    return idx;\n  }\n\n  minColumn(column) {\n    checkColumnIndex(this, column);\n    let v = this.get(0, column);\n    for (let i = 1; i < this.rows; i++) {\n      if (this.get(i, column) < v) {\n        v = this.get(i, column);\n      }\n    }\n    return v;\n  }\n\n  minColumnIndex(column) {\n    checkColumnIndex(this, column);\n    let v = this.get(0, column);\n    let idx = [0, column];\n    for (let i = 1; i < this.rows; i++) {\n      if (this.get(i, column) < v) {\n        v = this.get(i, column);\n        idx[0] = i;\n      }\n    }\n    return idx;\n  }\n\n  diag() {\n    let min = Math.min(this.rows, this.columns);\n    let diag = [];\n    for (let i = 0; i < min; i++) {\n      diag.push(this.get(i, i));\n    }\n    return diag;\n  }\n\n  norm(type = 'frobenius') {\n    let result = 0;\n    if (type === 'max') {\n      return this.max();\n    } else if (type === 'frobenius') {\n      for (let i = 0; i < this.rows; i++) {\n        for (let j = 0; j < this.columns; j++) {\n          result = result + this.get(i, j) * this.get(i, j);\n        }\n      }\n      return Math.sqrt(result);\n    } else {\n      throw new RangeError(`unknown norm type: ${type}`);\n    }\n  }\n\n  cumulativeSum() {\n    let sum = 0;\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        sum += this.get(i, j);\n        this.set(i, j, sum);\n      }\n    }\n    return this;\n  }\n\n  dot(vector2) {\n    if (AbstractMatrix.isMatrix(vector2)) vector2 = vector2.to1DArray();\n    let vector1 = this.to1DArray();\n    if (vector1.length !== vector2.length) {\n      throw new RangeError('vectors do not have the same size');\n    }\n    let dot = 0;\n    for (let i = 0; i < vector1.length; i++) {\n      dot += vector1[i] * vector2[i];\n    }\n    return dot;\n  }\n\n  mmul(other) {\n    other = Matrix.checkMatrix(other);\n\n    let m = this.rows;\n    let n = this.columns;\n    let p = other.columns;\n\n    let result = new Matrix(m, p);\n\n    let Bcolj = new Float64Array(n);\n    for (let j = 0; j < p; j++) {\n      for (let k = 0; k < n; k++) {\n        Bcolj[k] = other.get(k, j);\n      }\n\n      for (let i = 0; i < m; i++) {\n        let s = 0;\n        for (let k = 0; k < n; k++) {\n          s += this.get(i, k) * Bcolj[k];\n        }\n\n        result.set(i, j, s);\n      }\n    }\n    return result;\n  }\n\n  strassen2x2(other) {\n    other = Matrix.checkMatrix(other);\n    let result = new Matrix(2, 2);\n    const a11 = this.get(0, 0);\n    const b11 = other.get(0, 0);\n    const a12 = this.get(0, 1);\n    const b12 = other.get(0, 1);\n    const a21 = this.get(1, 0);\n    const b21 = other.get(1, 0);\n    const a22 = this.get(1, 1);\n    const b22 = other.get(1, 1);\n\n    // Compute intermediate values.\n    const m1 = (a11 + a22) * (b11 + b22);\n    const m2 = (a21 + a22) * b11;\n    const m3 = a11 * (b12 - b22);\n    const m4 = a22 * (b21 - b11);\n    const m5 = (a11 + a12) * b22;\n    const m6 = (a21 - a11) * (b11 + b12);\n    const m7 = (a12 - a22) * (b21 + b22);\n\n    // Combine intermediate values into the output.\n    const c00 = m1 + m4 - m5 + m7;\n    const c01 = m3 + m5;\n    const c10 = m2 + m4;\n    const c11 = m1 - m2 + m3 + m6;\n\n    result.set(0, 0, c00);\n    result.set(0, 1, c01);\n    result.set(1, 0, c10);\n    result.set(1, 1, c11);\n    return result;\n  }\n\n  strassen3x3(other) {\n    other = Matrix.checkMatrix(other);\n    let result = new Matrix(3, 3);\n\n    const a00 = this.get(0, 0);\n    const a01 = this.get(0, 1);\n    const a02 = this.get(0, 2);\n    const a10 = this.get(1, 0);\n    const a11 = this.get(1, 1);\n    const a12 = this.get(1, 2);\n    const a20 = this.get(2, 0);\n    const a21 = this.get(2, 1);\n    const a22 = this.get(2, 2);\n\n    const b00 = other.get(0, 0);\n    const b01 = other.get(0, 1);\n    const b02 = other.get(0, 2);\n    const b10 = other.get(1, 0);\n    const b11 = other.get(1, 1);\n    const b12 = other.get(1, 2);\n    const b20 = other.get(2, 0);\n    const b21 = other.get(2, 1);\n    const b22 = other.get(2, 2);\n\n    const m1 = (a00 + a01 + a02 - a10 - a11 - a21 - a22) * b11;\n    const m2 = (a00 - a10) * (-b01 + b11);\n    const m3 = a11 * (-b00 + b01 + b10 - b11 - b12 - b20 + b22);\n    const m4 = (-a00 + a10 + a11) * (b00 - b01 + b11);\n    const m5 = (a10 + a11) * (-b00 + b01);\n    const m6 = a00 * b00;\n    const m7 = (-a00 + a20 + a21) * (b00 - b02 + b12);\n    const m8 = (-a00 + a20) * (b02 - b12);\n    const m9 = (a20 + a21) * (-b00 + b02);\n    const m10 = (a00 + a01 + a02 - a11 - a12 - a20 - a21) * b12;\n    const m11 = a21 * (-b00 + b02 + b10 - b11 - b12 - b20 + b21);\n    const m12 = (-a02 + a21 + a22) * (b11 + b20 - b21);\n    const m13 = (a02 - a22) * (b11 - b21);\n    const m14 = a02 * b20;\n    const m15 = (a21 + a22) * (-b20 + b21);\n    const m16 = (-a02 + a11 + a12) * (b12 + b20 - b22);\n    const m17 = (a02 - a12) * (b12 - b22);\n    const m18 = (a11 + a12) * (-b20 + b22);\n    const m19 = a01 * b10;\n    const m20 = a12 * b21;\n    const m21 = a10 * b02;\n    const m22 = a20 * b01;\n    const m23 = a22 * b22;\n\n    const c00 = m6 + m14 + m19;\n    const c01 = m1 + m4 + m5 + m6 + m12 + m14 + m15;\n    const c02 = m6 + m7 + m9 + m10 + m14 + m16 + m18;\n    const c10 = m2 + m3 + m4 + m6 + m14 + m16 + m17;\n    const c11 = m2 + m4 + m5 + m6 + m20;\n    const c12 = m14 + m16 + m17 + m18 + m21;\n    const c20 = m6 + m7 + m8 + m11 + m12 + m13 + m14;\n    const c21 = m12 + m13 + m14 + m15 + m22;\n    const c22 = m6 + m7 + m8 + m9 + m23;\n\n    result.set(0, 0, c00);\n    result.set(0, 1, c01);\n    result.set(0, 2, c02);\n    result.set(1, 0, c10);\n    result.set(1, 1, c11);\n    result.set(1, 2, c12);\n    result.set(2, 0, c20);\n    result.set(2, 1, c21);\n    result.set(2, 2, c22);\n    return result;\n  }\n\n  mmulStrassen(y) {\n    y = Matrix.checkMatrix(y);\n    let x = this.clone();\n    let r1 = x.rows;\n    let c1 = x.columns;\n    let r2 = y.rows;\n    let c2 = y.columns;\n    if (c1 !== r2) {\n      // eslint-disable-next-line no-console\n      console.warn(\n        `Multiplying ${r1} x ${c1} and ${r2} x ${c2} matrix: dimensions do not match.`,\n      );\n    }\n\n    // Put a matrix into the top left of a matrix of zeros.\n    // `rows` and `cols` are the dimensions of the output matrix.\n    function embed(mat, rows, cols) {\n      let r = mat.rows;\n      let c = mat.columns;\n      if (r === rows && c === cols) {\n        return mat;\n      } else {\n        let resultat = AbstractMatrix.zeros(rows, cols);\n        resultat = resultat.setSubMatrix(mat, 0, 0);\n        return resultat;\n      }\n    }\n\n    // Make sure both matrices are the same size.\n    // This is exclusively for simplicity:\n    // this algorithm can be implemented with matrices of different sizes.\n\n    let r = Math.max(r1, r2);\n    let c = Math.max(c1, c2);\n    x = embed(x, r, c);\n    y = embed(y, r, c);\n\n    // Our recursive multiplication function.\n    function blockMult(a, b, rows, cols) {\n      // For small matrices, resort to naive multiplication.\n      if (rows <= 512 || cols <= 512) {\n        return a.mmul(b); // a is equivalent to this\n      }\n\n      // Apply dynamic padding.\n      if (rows % 2 === 1 && cols % 2 === 1) {\n        a = embed(a, rows + 1, cols + 1);\n        b = embed(b, rows + 1, cols + 1);\n      } else if (rows % 2 === 1) {\n        a = embed(a, rows + 1, cols);\n        b = embed(b, rows + 1, cols);\n      } else if (cols % 2 === 1) {\n        a = embed(a, rows, cols + 1);\n        b = embed(b, rows, cols + 1);\n      }\n\n      let halfRows = parseInt(a.rows / 2, 10);\n      let halfCols = parseInt(a.columns / 2, 10);\n      // Subdivide input matrices.\n      let a11 = a.subMatrix(0, halfRows - 1, 0, halfCols - 1);\n      let b11 = b.subMatrix(0, halfRows - 1, 0, halfCols - 1);\n\n      let a12 = a.subMatrix(0, halfRows - 1, halfCols, a.columns - 1);\n      let b12 = b.subMatrix(0, halfRows - 1, halfCols, b.columns - 1);\n\n      let a21 = a.subMatrix(halfRows, a.rows - 1, 0, halfCols - 1);\n      let b21 = b.subMatrix(halfRows, b.rows - 1, 0, halfCols - 1);\n\n      let a22 = a.subMatrix(halfRows, a.rows - 1, halfCols, a.columns - 1);\n      let b22 = b.subMatrix(halfRows, b.rows - 1, halfCols, b.columns - 1);\n\n      // Compute intermediate values.\n      let m1 = blockMult(\n        AbstractMatrix.add(a11, a22),\n        AbstractMatrix.add(b11, b22),\n        halfRows,\n        halfCols,\n      );\n      let m2 = blockMult(AbstractMatrix.add(a21, a22), b11, halfRows, halfCols);\n      let m3 = blockMult(a11, AbstractMatrix.sub(b12, b22), halfRows, halfCols);\n      let m4 = blockMult(a22, AbstractMatrix.sub(b21, b11), halfRows, halfCols);\n      let m5 = blockMult(AbstractMatrix.add(a11, a12), b22, halfRows, halfCols);\n      let m6 = blockMult(\n        AbstractMatrix.sub(a21, a11),\n        AbstractMatrix.add(b11, b12),\n        halfRows,\n        halfCols,\n      );\n      let m7 = blockMult(\n        AbstractMatrix.sub(a12, a22),\n        AbstractMatrix.add(b21, b22),\n        halfRows,\n        halfCols,\n      );\n\n      // Combine intermediate values into the output.\n      let c11 = AbstractMatrix.add(m1, m4);\n      c11.sub(m5);\n      c11.add(m7);\n      let c12 = AbstractMatrix.add(m3, m5);\n      let c21 = AbstractMatrix.add(m2, m4);\n      let c22 = AbstractMatrix.sub(m1, m2);\n      c22.add(m3);\n      c22.add(m6);\n\n      // Crop output to the desired size (undo dynamic padding).\n      let resultat = AbstractMatrix.zeros(2 * c11.rows, 2 * c11.columns);\n      resultat = resultat.setSubMatrix(c11, 0, 0);\n      resultat = resultat.setSubMatrix(c12, c11.rows, 0);\n      resultat = resultat.setSubMatrix(c21, 0, c11.columns);\n      resultat = resultat.setSubMatrix(c22, c11.rows, c11.columns);\n      return resultat.subMatrix(0, rows - 1, 0, cols - 1);\n    }\n    return blockMult(x, y, r, c);\n  }\n\n  scaleRows(options = {}) {\n    if (typeof options !== 'object') {\n      throw new TypeError('options must be an object');\n    }\n    const { min = 0, max = 1 } = options;\n    if (!Number.isFinite(min)) throw new TypeError('min must be a number');\n    if (!Number.isFinite(max)) throw new TypeError('max must be a number');\n    if (min >= max) throw new RangeError('min must be smaller than max');\n    let newMatrix = new Matrix(this.rows, this.columns);\n    for (let i = 0; i < this.rows; i++) {\n      const row = this.getRow(i);\n      rescale(row, { min, max, output: row });\n      newMatrix.setRow(i, row);\n    }\n    return newMatrix;\n  }\n\n  scaleColumns(options = {}) {\n    if (typeof options !== 'object') {\n      throw new TypeError('options must be an object');\n    }\n    const { min = 0, max = 1 } = options;\n    if (!Number.isFinite(min)) throw new TypeError('min must be a number');\n    if (!Number.isFinite(max)) throw new TypeError('max must be a number');\n    if (min >= max) throw new RangeError('min must be smaller than max');\n    let newMatrix = new Matrix(this.rows, this.columns);\n    for (let i = 0; i < this.columns; i++) {\n      const column = this.getColumn(i);\n      rescale(column, {\n        min: min,\n        max: max,\n        output: column,\n      });\n      newMatrix.setColumn(i, column);\n    }\n    return newMatrix;\n  }\n\n  flipRows() {\n    const middle = Math.ceil(this.columns / 2);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < middle; j++) {\n        let first = this.get(i, j);\n        let last = this.get(i, this.columns - 1 - j);\n        this.set(i, j, last);\n        this.set(i, this.columns - 1 - j, first);\n      }\n    }\n    return this;\n  }\n\n  flipColumns() {\n    const middle = Math.ceil(this.rows / 2);\n    for (let j = 0; j < this.columns; j++) {\n      for (let i = 0; i < middle; i++) {\n        let first = this.get(i, j);\n        let last = this.get(this.rows - 1 - i, j);\n        this.set(i, j, last);\n        this.set(this.rows - 1 - i, j, first);\n      }\n    }\n    return this;\n  }\n\n  kroneckerProduct(other) {\n    other = Matrix.checkMatrix(other);\n\n    let m = this.rows;\n    let n = this.columns;\n    let p = other.rows;\n    let q = other.columns;\n\n    let result = new Matrix(m * p, n * q);\n    for (let i = 0; i < m; i++) {\n      for (let j = 0; j < n; j++) {\n        for (let k = 0; k < p; k++) {\n          for (let l = 0; l < q; l++) {\n            result.set(p * i + k, q * j + l, this.get(i, j) * other.get(k, l));\n          }\n        }\n      }\n    }\n    return result;\n  }\n\n  transpose() {\n    let result = new Matrix(this.columns, this.rows);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        result.set(j, i, this.get(i, j));\n      }\n    }\n    return result;\n  }\n\n  sortRows(compareFunction = compareNumbers) {\n    for (let i = 0; i < this.rows; i++) {\n      this.setRow(i, this.getRow(i).sort(compareFunction));\n    }\n    return this;\n  }\n\n  sortColumns(compareFunction = compareNumbers) {\n    for (let i = 0; i < this.columns; i++) {\n      this.setColumn(i, this.getColumn(i).sort(compareFunction));\n    }\n    return this;\n  }\n\n  subMatrix(startRow, endRow, startColumn, endColumn) {\n    checkRange(this, startRow, endRow, startColumn, endColumn);\n    let newMatrix = new Matrix(\n      endRow - startRow + 1,\n      endColumn - startColumn + 1,\n    );\n    for (let i = startRow; i <= endRow; i++) {\n      for (let j = startColumn; j <= endColumn; j++) {\n        newMatrix.set(i - startRow, j - startColumn, this.get(i, j));\n      }\n    }\n    return newMatrix;\n  }\n\n  subMatrixRow(indices, startColumn, endColumn) {\n    if (startColumn === undefined) startColumn = 0;\n    if (endColumn === undefined) endColumn = this.columns - 1;\n    if (\n      startColumn > endColumn ||\n      startColumn < 0 ||\n      startColumn >= this.columns ||\n      endColumn < 0 ||\n      endColumn >= this.columns\n    ) {\n      throw new RangeError('Argument out of range');\n    }\n\n    let newMatrix = new Matrix(indices.length, endColumn - startColumn + 1);\n    for (let i = 0; i < indices.length; i++) {\n      for (let j = startColumn; j <= endColumn; j++) {\n        if (indices[i] < 0 || indices[i] >= this.rows) {\n          throw new RangeError(`Row index out of range: ${indices[i]}`);\n        }\n        newMatrix.set(i, j - startColumn, this.get(indices[i], j));\n      }\n    }\n    return newMatrix;\n  }\n\n  subMatrixColumn(indices, startRow, endRow) {\n    if (startRow === undefined) startRow = 0;\n    if (endRow === undefined) endRow = this.rows - 1;\n    if (\n      startRow > endRow ||\n      startRow < 0 ||\n      startRow >= this.rows ||\n      endRow < 0 ||\n      endRow >= this.rows\n    ) {\n      throw new RangeError('Argument out of range');\n    }\n\n    let newMatrix = new Matrix(endRow - startRow + 1, indices.length);\n    for (let i = 0; i < indices.length; i++) {\n      for (let j = startRow; j <= endRow; j++) {\n        if (indices[i] < 0 || indices[i] >= this.columns) {\n          throw new RangeError(`Column index out of range: ${indices[i]}`);\n        }\n        newMatrix.set(j - startRow, i, this.get(j, indices[i]));\n      }\n    }\n    return newMatrix;\n  }\n\n  setSubMatrix(matrix, startRow, startColumn) {\n    matrix = Matrix.checkMatrix(matrix);\n    let endRow = startRow + matrix.rows - 1;\n    let endColumn = startColumn + matrix.columns - 1;\n    checkRange(this, startRow, endRow, startColumn, endColumn);\n    for (let i = 0; i < matrix.rows; i++) {\n      for (let j = 0; j < matrix.columns; j++) {\n        this.set(startRow + i, startColumn + j, matrix.get(i, j));\n      }\n    }\n    return this;\n  }\n\n  selection(rowIndices, columnIndices) {\n    let indices = checkIndices(this, rowIndices, columnIndices);\n    let newMatrix = new Matrix(rowIndices.length, columnIndices.length);\n    for (let i = 0; i < indices.row.length; i++) {\n      let rowIndex = indices.row[i];\n      for (let j = 0; j < indices.column.length; j++) {\n        let columnIndex = indices.column[j];\n        newMatrix.set(i, j, this.get(rowIndex, columnIndex));\n      }\n    }\n    return newMatrix;\n  }\n\n  trace() {\n    let min = Math.min(this.rows, this.columns);\n    let trace = 0;\n    for (let i = 0; i < min; i++) {\n      trace += this.get(i, i);\n    }\n    return trace;\n  }\n\n  clone() {\n    let newMatrix = new Matrix(this.rows, this.columns);\n    for (let row = 0; row < this.rows; row++) {\n      for (let column = 0; column < this.columns; column++) {\n        newMatrix.set(row, column, this.get(row, column));\n      }\n    }\n    return newMatrix;\n  }\n\n  sum(by) {\n    switch (by) {\n      case 'row':\n        return sumByRow(this);\n      case 'column':\n        return sumByColumn(this);\n      case undefined:\n        return sumAll(this);\n      default:\n        throw new Error(`invalid option: ${by}`);\n    }\n  }\n\n  product(by) {\n    switch (by) {\n      case 'row':\n        return productByRow(this);\n      case 'column':\n        return productByColumn(this);\n      case undefined:\n        return productAll(this);\n      default:\n        throw new Error(`invalid option: ${by}`);\n    }\n  }\n\n  mean(by) {\n    const sum = this.sum(by);\n    switch (by) {\n      case 'row': {\n        for (let i = 0; i < this.rows; i++) {\n          sum[i] /= this.columns;\n        }\n        return sum;\n      }\n      case 'column': {\n        for (let i = 0; i < this.columns; i++) {\n          sum[i] /= this.rows;\n        }\n        return sum;\n      }\n      case undefined:\n        return sum / this.size;\n      default:\n        throw new Error(`invalid option: ${by}`);\n    }\n  }\n\n  variance(by, options = {}) {\n    if (typeof by === 'object') {\n      options = by;\n      by = undefined;\n    }\n    if (typeof options !== 'object') {\n      throw new TypeError('options must be an object');\n    }\n    const { unbiased = true, mean = this.mean(by) } = options;\n    if (typeof unbiased !== 'boolean') {\n      throw new TypeError('unbiased must be a boolean');\n    }\n    switch (by) {\n      case 'row': {\n        if (!Array.isArray(mean)) {\n          throw new TypeError('mean must be an array');\n        }\n        return varianceByRow(this, unbiased, mean);\n      }\n      case 'column': {\n        if (!Array.isArray(mean)) {\n          throw new TypeError('mean must be an array');\n        }\n        return varianceByColumn(this, unbiased, mean);\n      }\n      case undefined: {\n        if (typeof mean !== 'number') {\n          throw new TypeError('mean must be a number');\n        }\n        return varianceAll(this, unbiased, mean);\n      }\n      default:\n        throw new Error(`invalid option: ${by}`);\n    }\n  }\n\n  standardDeviation(by, options) {\n    if (typeof by === 'object') {\n      options = by;\n      by = undefined;\n    }\n    const variance = this.variance(by, options);\n    if (by === undefined) {\n      return Math.sqrt(variance);\n    } else {\n      for (let i = 0; i < variance.length; i++) {\n        variance[i] = Math.sqrt(variance[i]);\n      }\n      return variance;\n    }\n  }\n\n  center(by, options = {}) {\n    if (typeof by === 'object') {\n      options = by;\n      by = undefined;\n    }\n    if (typeof options !== 'object') {\n      throw new TypeError('options must be an object');\n    }\n    const { center = this.mean(by) } = options;\n    switch (by) {\n      case 'row': {\n        if (!Array.isArray(center)) {\n          throw new TypeError('center must be an array');\n        }\n        centerByRow(this, center);\n        return this;\n      }\n      case 'column': {\n        if (!Array.isArray(center)) {\n          throw new TypeError('center must be an array');\n        }\n        centerByColumn(this, center);\n        return this;\n      }\n      case undefined: {\n        if (typeof center !== 'number') {\n          throw new TypeError('center must be a number');\n        }\n        centerAll(this, center);\n        return this;\n      }\n      default:\n        throw new Error(`invalid option: ${by}`);\n    }\n  }\n\n  scale(by, options = {}) {\n    if (typeof by === 'object') {\n      options = by;\n      by = undefined;\n    }\n    if (typeof options !== 'object') {\n      throw new TypeError('options must be an object');\n    }\n    let scale = options.scale;\n    switch (by) {\n      case 'row': {\n        if (scale === undefined) {\n          scale = getScaleByRow(this);\n        } else if (!Array.isArray(scale)) {\n          throw new TypeError('scale must be an array');\n        }\n        scaleByRow(this, scale);\n        return this;\n      }\n      case 'column': {\n        if (scale === undefined) {\n          scale = getScaleByColumn(this);\n        } else if (!Array.isArray(scale)) {\n          throw new TypeError('scale must be an array');\n        }\n        scaleByColumn(this, scale);\n        return this;\n      }\n      case undefined: {\n        if (scale === undefined) {\n          scale = getScaleAll(this);\n        } else if (typeof scale !== 'number') {\n          throw new TypeError('scale must be a number');\n        }\n        scaleAll(this, scale);\n        return this;\n      }\n      default:\n        throw new Error(`invalid option: ${by}`);\n    }\n  }\n\n  toString(options) {\n    return inspectMatrixWithOptions(this, options);\n  }\n}\n\nAbstractMatrix.prototype.klass = 'Matrix';\nif (typeof Symbol !== 'undefined') {\n  AbstractMatrix.prototype[\n    Symbol.for('nodejs.util.inspect.custom')\n  ] = inspectMatrix;\n}\n\nfunction compareNumbers(a, b) {\n  return a - b;\n}\n\n// Synonyms\nAbstractMatrix.random = AbstractMatrix.rand;\nAbstractMatrix.randomInt = AbstractMatrix.randInt;\nAbstractMatrix.diagonal = AbstractMatrix.diag;\nAbstractMatrix.prototype.diagonal = AbstractMatrix.prototype.diag;\nAbstractMatrix.identity = AbstractMatrix.eye;\nAbstractMatrix.prototype.negate = AbstractMatrix.prototype.neg;\nAbstractMatrix.prototype.tensorProduct =\n  AbstractMatrix.prototype.kroneckerProduct;\n\nexport default class Matrix extends AbstractMatrix {\n  constructor(nRows, nColumns) {\n    super();\n    if (Matrix.isMatrix(nRows)) {\n      return nRows.clone();\n    } else if (Number.isInteger(nRows) && nRows > 0) {\n      // Create an empty matrix\n      this.data = [];\n      if (Number.isInteger(nColumns) && nColumns > 0) {\n        for (let i = 0; i < nRows; i++) {\n          this.data.push(new Float64Array(nColumns));\n        }\n      } else {\n        throw new TypeError('nColumns must be a positive integer');\n      }\n    } else if (Array.isArray(nRows)) {\n      // Copy the values from the 2D array\n      const arrayData = nRows;\n      nRows = arrayData.length;\n      nColumns = arrayData[0].length;\n      if (typeof nColumns !== 'number' || nColumns === 0) {\n        throw new TypeError(\n          'Data must be a 2D array with at least one element',\n        );\n      }\n      this.data = [];\n      for (let i = 0; i < nRows; i++) {\n        if (arrayData[i].length !== nColumns) {\n          throw new RangeError('Inconsistent array dimensions');\n        }\n        this.data.push(Float64Array.from(arrayData[i]));\n      }\n    } else {\n      throw new TypeError(\n        'First argument must be a positive number or an array',\n      );\n    }\n    this.rows = nRows;\n    this.columns = nColumns;\n    return this;\n  }\n\n  set(rowIndex, columnIndex, value) {\n    this.data[rowIndex][columnIndex] = value;\n    return this;\n  }\n\n  get(rowIndex, columnIndex) {\n    return this.data[rowIndex][columnIndex];\n  }\n\n  removeRow(index) {\n    checkRowIndex(this, index);\n    if (this.rows === 1) {\n      throw new RangeError('A matrix cannot have less than one row');\n    }\n    this.data.splice(index, 1);\n    this.rows -= 1;\n    return this;\n  }\n\n  addRow(index, array) {\n    if (array === undefined) {\n      array = index;\n      index = this.rows;\n    }\n    checkRowIndex(this, index, true);\n    array = Float64Array.from(checkRowVector(this, array, true));\n    this.data.splice(index, 0, array);\n    this.rows += 1;\n    return this;\n  }\n\n  removeColumn(index) {\n    checkColumnIndex(this, index);\n    if (this.columns === 1) {\n      throw new RangeError('A matrix cannot have less than one column');\n    }\n    for (let i = 0; i < this.rows; i++) {\n      const newRow = new Float64Array(this.columns - 1);\n      for (let j = 0; j < index; j++) {\n        newRow[j] = this.data[i][j];\n      }\n      for (let j = index + 1; j < this.columns; j++) {\n        newRow[j - 1] = this.data[i][j];\n      }\n      this.data[i] = newRow;\n    }\n    this.columns -= 1;\n    return this;\n  }\n\n  addColumn(index, array) {\n    if (typeof array === 'undefined') {\n      array = index;\n      index = this.columns;\n    }\n    checkColumnIndex(this, index, true);\n    array = checkColumnVector(this, array);\n    for (let i = 0; i < this.rows; i++) {\n      const newRow = new Float64Array(this.columns + 1);\n      let j = 0;\n      for (; j < index; j++) {\n        newRow[j] = this.data[i][j];\n      }\n      newRow[j++] = array[i];\n      for (; j < this.columns + 1; j++) {\n        newRow[j] = this.data[i][j - 1];\n      }\n      this.data[i] = newRow;\n    }\n    this.columns += 1;\n    return this;\n  }\n}\n\ninstallMathOperations(AbstractMatrix, Matrix);\n","import { AbstractMatrix } from '../matrix';\n\nexport default class BaseView extends AbstractMatrix {\n  constructor(matrix, rows, columns) {\n    super();\n    this.matrix = matrix;\n    this.rows = rows;\n    this.columns = columns;\n  }\n}\n","import BaseView from './base';\n\nexport default class MatrixTransposeView extends BaseView {\n  constructor(matrix) {\n    super(matrix, matrix.columns, matrix.rows);\n  }\n\n  set(rowIndex, columnIndex, value) {\n    this.matrix.set(columnIndex, rowIndex, value);\n    return this;\n  }\n\n  get(rowIndex, columnIndex) {\n    return this.matrix.get(columnIndex, rowIndex);\n  }\n}\n","import { AbstractMatrix } from '../matrix';\n\nexport default class WrapperMatrix2D extends AbstractMatrix {\n  constructor(data) {\n    super();\n    this.data = data;\n    this.rows = data.length;\n    this.columns = data[0].length;\n  }\n\n  set(rowIndex, columnIndex, value) {\n    this.data[rowIndex][columnIndex] = value;\n    return this;\n  }\n\n  get(rowIndex, columnIndex) {\n    return this.data[rowIndex][columnIndex];\n  }\n}\n","import Matrix from '../matrix';\nimport WrapperMatrix2D from '../wrap/WrapperMatrix2D';\n\nexport default class LuDecomposition {\n  constructor(matrix) {\n    matrix = WrapperMatrix2D.checkMatrix(matrix);\n\n    let lu = matrix.clone();\n    let rows = lu.rows;\n    let columns = lu.columns;\n    let pivotVector = new Float64Array(rows);\n    let pivotSign = 1;\n    let i, j, k, p, s, t, v;\n    let LUcolj, kmax;\n\n    for (i = 0; i < rows; i++) {\n      pivotVector[i] = i;\n    }\n\n    LUcolj = new Float64Array(rows);\n\n    for (j = 0; j < columns; j++) {\n      for (i = 0; i < rows; i++) {\n        LUcolj[i] = lu.get(i, j);\n      }\n\n      for (i = 0; i < rows; i++) {\n        kmax = Math.min(i, j);\n        s = 0;\n        for (k = 0; k < kmax; k++) {\n          s += lu.get(i, k) * LUcolj[k];\n        }\n        LUcolj[i] -= s;\n        lu.set(i, j, LUcolj[i]);\n      }\n\n      p = j;\n      for (i = j + 1; i < rows; i++) {\n        if (Math.abs(LUcolj[i]) > Math.abs(LUcolj[p])) {\n          p = i;\n        }\n      }\n\n      if (p !== j) {\n        for (k = 0; k < columns; k++) {\n          t = lu.get(p, k);\n          lu.set(p, k, lu.get(j, k));\n          lu.set(j, k, t);\n        }\n\n        v = pivotVector[p];\n        pivotVector[p] = pivotVector[j];\n        pivotVector[j] = v;\n\n        pivotSign = -pivotSign;\n      }\n\n      if (j < rows && lu.get(j, j) !== 0) {\n        for (i = j + 1; i < rows; i++) {\n          lu.set(i, j, lu.get(i, j) / lu.get(j, j));\n        }\n      }\n    }\n\n    this.LU = lu;\n    this.pivotVector = pivotVector;\n    this.pivotSign = pivotSign;\n  }\n\n  isSingular() {\n    let data = this.LU;\n    let col = data.columns;\n    for (let j = 0; j < col; j++) {\n      if (data.get(j, j) === 0) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  solve(value) {\n    value = Matrix.checkMatrix(value);\n\n    let lu = this.LU;\n    let rows = lu.rows;\n\n    if (rows !== value.rows) {\n      throw new Error('Invalid matrix dimensions');\n    }\n    if (this.isSingular()) {\n      throw new Error('LU matrix is singular');\n    }\n\n    let count = value.columns;\n    let X = value.subMatrixRow(this.pivotVector, 0, count - 1);\n    let columns = lu.columns;\n    let i, j, k;\n\n    for (k = 0; k < columns; k++) {\n      for (i = k + 1; i < columns; i++) {\n        for (j = 0; j < count; j++) {\n          X.set(i, j, X.get(i, j) - X.get(k, j) * lu.get(i, k));\n        }\n      }\n    }\n    for (k = columns - 1; k >= 0; k--) {\n      for (j = 0; j < count; j++) {\n        X.set(k, j, X.get(k, j) / lu.get(k, k));\n      }\n      for (i = 0; i < k; i++) {\n        for (j = 0; j < count; j++) {\n          X.set(i, j, X.get(i, j) - X.get(k, j) * lu.get(i, k));\n        }\n      }\n    }\n    return X;\n  }\n\n  get determinant() {\n    let data = this.LU;\n    if (!data.isSquare()) {\n      throw new Error('Matrix must be square');\n    }\n    let determinant = this.pivotSign;\n    let col = data.columns;\n    for (let j = 0; j < col; j++) {\n      determinant *= data.get(j, j);\n    }\n    return determinant;\n  }\n\n  get lowerTriangularMatrix() {\n    let data = this.LU;\n    let rows = data.rows;\n    let columns = data.columns;\n    let X = new Matrix(rows, columns);\n    for (let i = 0; i < rows; i++) {\n      for (let j = 0; j < columns; j++) {\n        if (i > j) {\n          X.set(i, j, data.get(i, j));\n        } else if (i === j) {\n          X.set(i, j, 1);\n        } else {\n          X.set(i, j, 0);\n        }\n      }\n    }\n    return X;\n  }\n\n  get upperTriangularMatrix() {\n    let data = this.LU;\n    let rows = data.rows;\n    let columns = data.columns;\n    let X = new Matrix(rows, columns);\n    for (let i = 0; i < rows; i++) {\n      for (let j = 0; j < columns; j++) {\n        if (i <= j) {\n          X.set(i, j, data.get(i, j));\n        } else {\n          X.set(i, j, 0);\n        }\n      }\n    }\n    return X;\n  }\n\n  get pivotPermutationVector() {\n    return Array.from(this.pivotVector);\n  }\n}\n","export function hypotenuse(a, b) {\n  let r = 0;\n  if (Math.abs(a) > Math.abs(b)) {\n    r = b / a;\n    return Math.abs(a) * Math.sqrt(1 + r * r);\n  }\n  if (b !== 0) {\n    r = a / b;\n    return Math.abs(b) * Math.sqrt(1 + r * r);\n  }\n  return 0;\n}\n","import Matrix from '../matrix';\nimport WrapperMatrix2D from '../wrap/WrapperMatrix2D';\n\nimport { hypotenuse } from './util';\n\nexport default class QrDecomposition {\n  constructor(value) {\n    value = WrapperMatrix2D.checkMatrix(value);\n\n    let qr = value.clone();\n    let m = value.rows;\n    let n = value.columns;\n    let rdiag = new Float64Array(n);\n    let i, j, k, s;\n\n    for (k = 0; k < n; k++) {\n      let nrm = 0;\n      for (i = k; i < m; i++) {\n        nrm = hypotenuse(nrm, qr.get(i, k));\n      }\n      if (nrm !== 0) {\n        if (qr.get(k, k) < 0) {\n          nrm = -nrm;\n        }\n        for (i = k; i < m; i++) {\n          qr.set(i, k, qr.get(i, k) / nrm);\n        }\n        qr.set(k, k, qr.get(k, k) + 1);\n        for (j = k + 1; j < n; j++) {\n          s = 0;\n          for (i = k; i < m; i++) {\n            s += qr.get(i, k) * qr.get(i, j);\n          }\n          s = -s / qr.get(k, k);\n          for (i = k; i < m; i++) {\n            qr.set(i, j, qr.get(i, j) + s * qr.get(i, k));\n          }\n        }\n      }\n      rdiag[k] = -nrm;\n    }\n\n    this.QR = qr;\n    this.Rdiag = rdiag;\n  }\n\n  solve(value) {\n    value = Matrix.checkMatrix(value);\n\n    let qr = this.QR;\n    let m = qr.rows;\n\n    if (value.rows !== m) {\n      throw new Error('Matrix row dimensions must agree');\n    }\n    if (!this.isFullRank()) {\n      throw new Error('Matrix is rank deficient');\n    }\n\n    let count = value.columns;\n    let X = value.clone();\n    let n = qr.columns;\n    let i, j, k, s;\n\n    for (k = 0; k < n; k++) {\n      for (j = 0; j < count; j++) {\n        s = 0;\n        for (i = k; i < m; i++) {\n          s += qr.get(i, k) * X.get(i, j);\n        }\n        s = -s / qr.get(k, k);\n        for (i = k; i < m; i++) {\n          X.set(i, j, X.get(i, j) + s * qr.get(i, k));\n        }\n      }\n    }\n    for (k = n - 1; k >= 0; k--) {\n      for (j = 0; j < count; j++) {\n        X.set(k, j, X.get(k, j) / this.Rdiag[k]);\n      }\n      for (i = 0; i < k; i++) {\n        for (j = 0; j < count; j++) {\n          X.set(i, j, X.get(i, j) - X.get(k, j) * qr.get(i, k));\n        }\n      }\n    }\n\n    return X.subMatrix(0, n - 1, 0, count - 1);\n  }\n\n  isFullRank() {\n    let columns = this.QR.columns;\n    for (let i = 0; i < columns; i++) {\n      if (this.Rdiag[i] === 0) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  get upperTriangularMatrix() {\n    let qr = this.QR;\n    let n = qr.columns;\n    let X = new Matrix(n, n);\n    let i, j;\n    for (i = 0; i < n; i++) {\n      for (j = 0; j < n; j++) {\n        if (i < j) {\n          X.set(i, j, qr.get(i, j));\n        } else if (i === j) {\n          X.set(i, j, this.Rdiag[i]);\n        } else {\n          X.set(i, j, 0);\n        }\n      }\n    }\n    return X;\n  }\n\n  get orthogonalMatrix() {\n    let qr = this.QR;\n    let rows = qr.rows;\n    let columns = qr.columns;\n    let X = new Matrix(rows, columns);\n    let i, j, k, s;\n\n    for (k = columns - 1; k >= 0; k--) {\n      for (i = 0; i < rows; i++) {\n        X.set(i, k, 0);\n      }\n      X.set(k, k, 1);\n      for (j = k; j < columns; j++) {\n        if (qr.get(k, k) !== 0) {\n          s = 0;\n          for (i = k; i < rows; i++) {\n            s += qr.get(i, k) * X.get(i, j);\n          }\n\n          s = -s / qr.get(k, k);\n\n          for (i = k; i < rows; i++) {\n            X.set(i, j, X.get(i, j) + s * qr.get(i, k));\n          }\n        }\n      }\n    }\n    return X;\n  }\n}\n","import Matrix from '../matrix';\nimport WrapperMatrix2D from '../wrap/WrapperMatrix2D';\n\nimport { hypotenuse } from './util';\n\nexport default class SingularValueDecomposition {\n  constructor(value, options = {}) {\n    value = WrapperMatrix2D.checkMatrix(value);\n\n    let m = value.rows;\n    let n = value.columns;\n\n    const {\n      computeLeftSingularVectors = true,\n      computeRightSingularVectors = true,\n      autoTranspose = false,\n    } = options;\n\n    let wantu = Boolean(computeLeftSingularVectors);\n    let wantv = Boolean(computeRightSingularVectors);\n\n    let swapped = false;\n    let a;\n    if (m < n) {\n      if (!autoTranspose) {\n        a = value.clone();\n        // eslint-disable-next-line no-console\n        console.warn(\n          'Computing SVD on a matrix with more columns than rows. Consider enabling autoTranspose',\n        );\n      } else {\n        a = value.transpose();\n        m = a.rows;\n        n = a.columns;\n        swapped = true;\n        let aux = wantu;\n        wantu = wantv;\n        wantv = aux;\n      }\n    } else {\n      a = value.clone();\n    }\n\n    let nu = Math.min(m, n);\n    let ni = Math.min(m + 1, n);\n    let s = new Float64Array(ni);\n    let U = new Matrix(m, nu);\n    let V = new Matrix(n, n);\n\n    let e = new Float64Array(n);\n    let work = new Float64Array(m);\n\n    let si = new Float64Array(ni);\n    for (let i = 0; i < ni; i++) si[i] = i;\n\n    let nct = Math.min(m - 1, n);\n    let nrt = Math.max(0, Math.min(n - 2, m));\n    let mrc = Math.max(nct, nrt);\n\n    for (let k = 0; k < mrc; k++) {\n      if (k < nct) {\n        s[k] = 0;\n        for (let i = k; i < m; i++) {\n          s[k] = hypotenuse(s[k], a.get(i, k));\n        }\n        if (s[k] !== 0) {\n          if (a.get(k, k) < 0) {\n            s[k] = -s[k];\n          }\n          for (let i = k; i < m; i++) {\n            a.set(i, k, a.get(i, k) / s[k]);\n          }\n          a.set(k, k, a.get(k, k) + 1);\n        }\n        s[k] = -s[k];\n      }\n\n      for (let j = k + 1; j < n; j++) {\n        if (k < nct && s[k] !== 0) {\n          let t = 0;\n          for (let i = k; i < m; i++) {\n            t += a.get(i, k) * a.get(i, j);\n          }\n          t = -t / a.get(k, k);\n          for (let i = k; i < m; i++) {\n            a.set(i, j, a.get(i, j) + t * a.get(i, k));\n          }\n        }\n        e[j] = a.get(k, j);\n      }\n\n      if (wantu && k < nct) {\n        for (let i = k; i < m; i++) {\n          U.set(i, k, a.get(i, k));\n        }\n      }\n\n      if (k < nrt) {\n        e[k] = 0;\n        for (let i = k + 1; i < n; i++) {\n          e[k] = hypotenuse(e[k], e[i]);\n        }\n        if (e[k] !== 0) {\n          if (e[k + 1] < 0) {\n            e[k] = 0 - e[k];\n          }\n          for (let i = k + 1; i < n; i++) {\n            e[i] /= e[k];\n          }\n          e[k + 1] += 1;\n        }\n        e[k] = -e[k];\n        if (k + 1 < m && e[k] !== 0) {\n          for (let i = k + 1; i < m; i++) {\n            work[i] = 0;\n          }\n          for (let i = k + 1; i < m; i++) {\n            for (let j = k + 1; j < n; j++) {\n              work[i] += e[j] * a.get(i, j);\n            }\n          }\n          for (let j = k + 1; j < n; j++) {\n            let t = -e[j] / e[k + 1];\n            for (let i = k + 1; i < m; i++) {\n              a.set(i, j, a.get(i, j) + t * work[i]);\n            }\n          }\n        }\n        if (wantv) {\n          for (let i = k + 1; i < n; i++) {\n            V.set(i, k, e[i]);\n          }\n        }\n      }\n    }\n\n    let p = Math.min(n, m + 1);\n    if (nct < n) {\n      s[nct] = a.get(nct, nct);\n    }\n    if (m < p) {\n      s[p - 1] = 0;\n    }\n    if (nrt + 1 < p) {\n      e[nrt] = a.get(nrt, p - 1);\n    }\n    e[p - 1] = 0;\n\n    if (wantu) {\n      for (let j = nct; j < nu; j++) {\n        for (let i = 0; i < m; i++) {\n          U.set(i, j, 0);\n        }\n        U.set(j, j, 1);\n      }\n      for (let k = nct - 1; k >= 0; k--) {\n        if (s[k] !== 0) {\n          for (let j = k + 1; j < nu; j++) {\n            let t = 0;\n            for (let i = k; i < m; i++) {\n              t += U.get(i, k) * U.get(i, j);\n            }\n            t = -t / U.get(k, k);\n            for (let i = k; i < m; i++) {\n              U.set(i, j, U.get(i, j) + t * U.get(i, k));\n            }\n          }\n          for (let i = k; i < m; i++) {\n            U.set(i, k, -U.get(i, k));\n          }\n          U.set(k, k, 1 + U.get(k, k));\n          for (let i = 0; i < k - 1; i++) {\n            U.set(i, k, 0);\n          }\n        } else {\n          for (let i = 0; i < m; i++) {\n            U.set(i, k, 0);\n          }\n          U.set(k, k, 1);\n        }\n      }\n    }\n\n    if (wantv) {\n      for (let k = n - 1; k >= 0; k--) {\n        if (k < nrt && e[k] !== 0) {\n          for (let j = k + 1; j < n; j++) {\n            let t = 0;\n            for (let i = k + 1; i < n; i++) {\n              t += V.get(i, k) * V.get(i, j);\n            }\n            t = -t / V.get(k + 1, k);\n            for (let i = k + 1; i < n; i++) {\n              V.set(i, j, V.get(i, j) + t * V.get(i, k));\n            }\n          }\n        }\n        for (let i = 0; i < n; i++) {\n          V.set(i, k, 0);\n        }\n        V.set(k, k, 1);\n      }\n    }\n\n    let pp = p - 1;\n    let iter = 0;\n    let eps = Number.EPSILON;\n    while (p > 0) {\n      let k, kase;\n      for (k = p - 2; k >= -1; k--) {\n        if (k === -1) {\n          break;\n        }\n        const alpha =\n          Number.MIN_VALUE + eps * Math.abs(s[k] + Math.abs(s[k + 1]));\n        if (Math.abs(e[k]) <= alpha || Number.isNaN(e[k])) {\n          e[k] = 0;\n          break;\n        }\n      }\n      if (k === p - 2) {\n        kase = 4;\n      } else {\n        let ks;\n        for (ks = p - 1; ks >= k; ks--) {\n          if (ks === k) {\n            break;\n          }\n          let t =\n            (ks !== p ? Math.abs(e[ks]) : 0) +\n            (ks !== k + 1 ? Math.abs(e[ks - 1]) : 0);\n          if (Math.abs(s[ks]) <= eps * t) {\n            s[ks] = 0;\n            break;\n          }\n        }\n        if (ks === k) {\n          kase = 3;\n        } else if (ks === p - 1) {\n          kase = 1;\n        } else {\n          kase = 2;\n          k = ks;\n        }\n      }\n\n      k++;\n\n      switch (kase) {\n        case 1: {\n          let f = e[p - 2];\n          e[p - 2] = 0;\n          for (let j = p - 2; j >= k; j--) {\n            let t = hypotenuse(s[j], f);\n            let cs = s[j] / t;\n            let sn = f / t;\n            s[j] = t;\n            if (j !== k) {\n              f = -sn * e[j - 1];\n              e[j - 1] = cs * e[j - 1];\n            }\n            if (wantv) {\n              for (let i = 0; i < n; i++) {\n                t = cs * V.get(i, j) + sn * V.get(i, p - 1);\n                V.set(i, p - 1, -sn * V.get(i, j) + cs * V.get(i, p - 1));\n                V.set(i, j, t);\n              }\n            }\n          }\n          break;\n        }\n        case 2: {\n          let f = e[k - 1];\n          e[k - 1] = 0;\n          for (let j = k; j < p; j++) {\n            let t = hypotenuse(s[j], f);\n            let cs = s[j] / t;\n            let sn = f / t;\n            s[j] = t;\n            f = -sn * e[j];\n            e[j] = cs * e[j];\n            if (wantu) {\n              for (let i = 0; i < m; i++) {\n                t = cs * U.get(i, j) + sn * U.get(i, k - 1);\n                U.set(i, k - 1, -sn * U.get(i, j) + cs * U.get(i, k - 1));\n                U.set(i, j, t);\n              }\n            }\n          }\n          break;\n        }\n        case 3: {\n          const scale = Math.max(\n            Math.abs(s[p - 1]),\n            Math.abs(s[p - 2]),\n            Math.abs(e[p - 2]),\n            Math.abs(s[k]),\n            Math.abs(e[k]),\n          );\n          const sp = s[p - 1] / scale;\n          const spm1 = s[p - 2] / scale;\n          const epm1 = e[p - 2] / scale;\n          const sk = s[k] / scale;\n          const ek = e[k] / scale;\n          const b = ((spm1 + sp) * (spm1 - sp) + epm1 * epm1) / 2;\n          const c = sp * epm1 * (sp * epm1);\n          let shift = 0;\n          if (b !== 0 || c !== 0) {\n            if (b < 0) {\n              shift = 0 - Math.sqrt(b * b + c);\n            } else {\n              shift = Math.sqrt(b * b + c);\n            }\n            shift = c / (b + shift);\n          }\n          let f = (sk + sp) * (sk - sp) + shift;\n          let g = sk * ek;\n          for (let j = k; j < p - 1; j++) {\n            let t = hypotenuse(f, g);\n            if (t === 0) t = Number.MIN_VALUE;\n            let cs = f / t;\n            let sn = g / t;\n            if (j !== k) {\n              e[j - 1] = t;\n            }\n            f = cs * s[j] + sn * e[j];\n            e[j] = cs * e[j] - sn * s[j];\n            g = sn * s[j + 1];\n            s[j + 1] = cs * s[j + 1];\n            if (wantv) {\n              for (let i = 0; i < n; i++) {\n                t = cs * V.get(i, j) + sn * V.get(i, j + 1);\n                V.set(i, j + 1, -sn * V.get(i, j) + cs * V.get(i, j + 1));\n                V.set(i, j, t);\n              }\n            }\n            t = hypotenuse(f, g);\n            if (t === 0) t = Number.MIN_VALUE;\n            cs = f / t;\n            sn = g / t;\n            s[j] = t;\n            f = cs * e[j] + sn * s[j + 1];\n            s[j + 1] = -sn * e[j] + cs * s[j + 1];\n            g = sn * e[j + 1];\n            e[j + 1] = cs * e[j + 1];\n            if (wantu && j < m - 1) {\n              for (let i = 0; i < m; i++) {\n                t = cs * U.get(i, j) + sn * U.get(i, j + 1);\n                U.set(i, j + 1, -sn * U.get(i, j) + cs * U.get(i, j + 1));\n                U.set(i, j, t);\n              }\n            }\n          }\n          e[p - 2] = f;\n          iter = iter + 1;\n          break;\n        }\n        case 4: {\n          if (s[k] <= 0) {\n            s[k] = s[k] < 0 ? -s[k] : 0;\n            if (wantv) {\n              for (let i = 0; i <= pp; i++) {\n                V.set(i, k, -V.get(i, k));\n              }\n            }\n          }\n          while (k < pp) {\n            if (s[k] >= s[k + 1]) {\n              break;\n            }\n            let t = s[k];\n            s[k] = s[k + 1];\n            s[k + 1] = t;\n            if (wantv && k < n - 1) {\n              for (let i = 0; i < n; i++) {\n                t = V.get(i, k + 1);\n                V.set(i, k + 1, V.get(i, k));\n                V.set(i, k, t);\n              }\n            }\n            if (wantu && k < m - 1) {\n              for (let i = 0; i < m; i++) {\n                t = U.get(i, k + 1);\n                U.set(i, k + 1, U.get(i, k));\n                U.set(i, k, t);\n              }\n            }\n            k++;\n          }\n          iter = 0;\n          p--;\n          break;\n        }\n        // no default\n      }\n    }\n\n    if (swapped) {\n      let tmp = V;\n      V = U;\n      U = tmp;\n    }\n\n    this.m = m;\n    this.n = n;\n    this.s = s;\n    this.U = U;\n    this.V = V;\n  }\n\n  solve(value) {\n    let Y = value;\n    let e = this.threshold;\n    let scols = this.s.length;\n    let Ls = Matrix.zeros(scols, scols);\n\n    for (let i = 0; i < scols; i++) {\n      if (Math.abs(this.s[i]) <= e) {\n        Ls.set(i, i, 0);\n      } else {\n        Ls.set(i, i, 1 / this.s[i]);\n      }\n    }\n\n    let U = this.U;\n    let V = this.rightSingularVectors;\n\n    let VL = V.mmul(Ls);\n    let vrows = V.rows;\n    let urows = U.rows;\n    let VLU = Matrix.zeros(vrows, urows);\n\n    for (let i = 0; i < vrows; i++) {\n      for (let j = 0; j < urows; j++) {\n        let sum = 0;\n        for (let k = 0; k < scols; k++) {\n          sum += VL.get(i, k) * U.get(j, k);\n        }\n        VLU.set(i, j, sum);\n      }\n    }\n\n    return VLU.mmul(Y);\n  }\n\n  solveForDiagonal(value) {\n    return this.solve(Matrix.diag(value));\n  }\n\n  inverse() {\n    let V = this.V;\n    let e = this.threshold;\n    let vrows = V.rows;\n    let vcols = V.columns;\n    let X = new Matrix(vrows, this.s.length);\n\n    for (let i = 0; i < vrows; i++) {\n      for (let j = 0; j < vcols; j++) {\n        if (Math.abs(this.s[j]) > e) {\n          X.set(i, j, V.get(i, j) / this.s[j]);\n        }\n      }\n    }\n\n    let U = this.U;\n\n    let urows = U.rows;\n    let ucols = U.columns;\n    let Y = new Matrix(vrows, urows);\n\n    for (let i = 0; i < vrows; i++) {\n      for (let j = 0; j < urows; j++) {\n        let sum = 0;\n        for (let k = 0; k < ucols; k++) {\n          sum += X.get(i, k) * U.get(j, k);\n        }\n        Y.set(i, j, sum);\n      }\n    }\n\n    return Y;\n  }\n\n  get condition() {\n    return this.s[0] / this.s[Math.min(this.m, this.n) - 1];\n  }\n\n  get norm2() {\n    return this.s[0];\n  }\n\n  get rank() {\n    let tol = Math.max(this.m, this.n) * this.s[0] * Number.EPSILON;\n    let r = 0;\n    let s = this.s;\n    for (let i = 0, ii = s.length; i < ii; i++) {\n      if (s[i] > tol) {\n        r++;\n      }\n    }\n    return r;\n  }\n\n  get diagonal() {\n    return Array.from(this.s);\n  }\n\n  get threshold() {\n    return (Number.EPSILON / 2) * Math.max(this.m, this.n) * this.s[0];\n  }\n\n  get leftSingularVectors() {\n    return this.U;\n  }\n\n  get rightSingularVectors() {\n    return this.V;\n  }\n\n  get diagonalMatrix() {\n    return Matrix.diag(this.s);\n  }\n}\n","import LuDecomposition from './dc/lu';\nimport QrDecomposition from './dc/qr';\nimport SingularValueDecomposition from './dc/svd';\nimport Matrix from './matrix';\nimport WrapperMatrix2D from './wrap/WrapperMatrix2D';\n\nexport function inverse(matrix, useSVD = false) {\n  matrix = WrapperMatrix2D.checkMatrix(matrix);\n  if (useSVD) {\n    return new SingularValueDecomposition(matrix).inverse();\n  } else {\n    return solve(matrix, Matrix.eye(matrix.rows));\n  }\n}\n\nexport function solve(leftHandSide, rightHandSide, useSVD = false) {\n  leftHandSide = WrapperMatrix2D.checkMatrix(leftHandSide);\n  rightHandSide = WrapperMatrix2D.checkMatrix(rightHandSide);\n  if (useSVD) {\n    return new SingularValueDecomposition(leftHandSide).solve(rightHandSide);\n  } else {\n    return leftHandSide.isSquare()\n      ? new LuDecomposition(leftHandSide).solve(rightHandSide)\n      : new QrDecomposition(leftHandSide).solve(rightHandSide);\n  }\n}\n","'use strict';\n\nvar defaultOptions = {\n  size: 1,\n  value: 0\n};\n\n/**\n * Case when the entry is an array\n * @param data\n * @param options\n * @returns {Array}\n */\nfunction arrayCase(data, options) {\n  var len = data.length;\n  if (typeof options.size === 'number') {\n    options.size = [options.size, options.size];\n  }\n\n  var cond = len + options.size[0] + options.size[1];\n\n  var output;\n  if (options.output) {\n    if (options.output.length !== cond) {\n      throw new RangeError('Wrong output size');\n    }\n    output = options.output;\n  } else {\n    output = new Array(cond);\n  }\n\n  var i;\n  if (options.value === 'circular') {\n    for (i = 0; i < cond; i++) {\n      if (i < options.size[0]) {\n        output[i] = data[(len - (options.size[0] % len) + i) % len];\n      } else if (i < options.size[0] + len) {\n        output[i] = data[i - options.size[0]];\n      } else {\n        output[i] = data[(i - options.size[0]) % len];\n      }\n    }\n  } else if (options.value === 'replicate') {\n    for (i = 0; i < cond; i++) {\n      if (i < options.size[0]) output[i] = data[0];\n      else if (i < options.size[0] + len) output[i] = data[i - options.size[0]];\n      else output[i] = data[len - 1];\n    }\n  } else if (options.value === 'symmetric') {\n    if (options.size[0] > len || options.size[1] > len) {\n      throw new RangeError(\n        'expanded value should not be bigger than the data length'\n      );\n    }\n    for (i = 0; i < cond; i++) {\n      if (i < options.size[0]) output[i] = data[options.size[0] - 1 - i];\n      else if (i < options.size[0] + len) output[i] = data[i - options.size[0]];\n      else output[i] = data[2 * len + options.size[0] - i - 1];\n    }\n  } else {\n    for (i = 0; i < cond; i++) {\n      if (i < options.size[0]) output[i] = options.value;\n      else if (i < options.size[0] + len) output[i] = data[i - options.size[0]];\n      else output[i] = options.value;\n    }\n  }\n\n  return output;\n}\n\n/**\n * Case when the entry is a matrix\n * @param data\n * @param options\n * @returns {Array}\n */\nfunction matrixCase(data, options) {\n  // var row = data.length;\n  // var col = data[0].length;\n  if (options.size[0] === undefined) {\n    options.size = [options.size, options.size, options.size, options.size];\n  }\n  throw new Error('matrix not supported yet, sorry');\n}\n\n/**\n * Pads and array\n * @param {Array <number>} data\n * @param {object} options\n */\nfunction padArray(data, options) {\n  options = Object.assign({}, defaultOptions, options);\n  if (Array.isArray(data)) {\n    if (Array.isArray(data[0])) return matrixCase(data, options);\n    else return arrayCase(data, options);\n  } else {\n    throw new TypeError('data should be an array');\n  }\n}\n\nmodule.exports = padArray;\n","import { Matrix, MatrixTransposeView, inverse } from 'ml-matrix';\nimport padArray from 'ml-pad-array';\n\n/**\n * Factorial of a number\n * @ignore\n * @param n\n * @return {number}\n */\nfunction factorial(n) {\n  let r = 1;\n  while (n > 0) r *= n--;\n  return r;\n}\n\nconst defaultOptions = {\n  windowSize: 5,\n  derivative: 1,\n  polynomial: 2,\n  pad: 'none',\n  padValue: 'replicate',\n};\n\n/**\n * Savitzky-Golay filter\n * @param {Array <number>} data\n * @param {number} h\n * @param {Object} options\n * @returns {Array}\n */\nexport default function savitzkyGolay(data, h, options) {\n  options = Object.assign({}, defaultOptions, options);\n  if (\n    options.windowSize % 2 === 0 ||\n    options.windowSize < 5 ||\n    !Number.isInteger(options.windowSize)\n  ) {\n    throw new RangeError(\n      'Invalid window size (should be odd and at least 5 integer number)',\n    );\n  }\n  if (options.derivative < 0 || !Number.isInteger(options.derivative)) {\n    throw new RangeError('Derivative should be a positive integer');\n  }\n  if (options.polynomial < 1 || !Number.isInteger(options.polynomial)) {\n    throw new RangeError('Polynomial should be a positive integer');\n  }\n\n  let C, norm;\n  let step = Math.floor(options.windowSize / 2);\n\n  if (options.pad === 'pre') {\n    data = padArray(data, { size: step, value: options.padValue });\n  }\n\n  let ans = new Array(data.length - 2 * step);\n\n  if (\n    options.windowSize === 5 &&\n    options.polynomial === 2 &&\n    (options.derivative === 1 || options.derivative === 2)\n  ) {\n    if (options.derivative === 1) {\n      C = [-2, -1, 0, 1, 2];\n      norm = 10;\n    } else {\n      C = [2, -1, -2, -1, 2];\n      norm = 7;\n    }\n  } else {\n    let J = Matrix.ones(options.windowSize, options.polynomial + 1);\n    let inic = -(options.windowSize - 1) / 2;\n    for (let i = 0; i < J.rows; i++) {\n      for (let j = 0; j < J.columns; j++) {\n        if (inic + 1 !== 0 || j !== 0) J.set(i, j, Math.pow(inic + i, j));\n      }\n    }\n    let Jtranspose = new MatrixTransposeView(J);\n    let Jinv = inverse(Jtranspose.mmul(J));\n    C = Jinv.mmul(Jtranspose);\n    C = C.getRow(options.derivative);\n    norm = 1 / factorial(options.derivative);\n  }\n  let det = norm * Math.pow(h, options.derivative);\n  for (let k = step; k < data.length - step; k++) {\n    let d = 0;\n    for (let l = 0; l < C.length; l++) d += (C[l] * data[l + k - step]) / det;\n    ans[k - step] = d;\n  }\n\n  if (options.pad === 'post') {\n    ans = padArray(ans, { size: step, value: options.padValue });\n  }\n\n  return ans;\n}\n","'use strict';\n\nconst toString = Object.prototype.toString;\n\nfunction isAnyArray(object) {\n  return toString.call(object).endsWith('Array]');\n}\n\nmodule.exports = isAnyArray;\n","export default function maybeToPrecision(value, digits) {\n  if (value < 0) {\n    value = 0 - value;\n    if (typeof digits === 'number') {\n      return `- ${value.toPrecision(digits)}`;\n    } else {\n      return `- ${value.toString()}`;\n    }\n  } else {\n    if (typeof digits === 'number') {\n      return value.toPrecision(digits);\n    } else {\n      return value.toString();\n    }\n  }\n}\n","import isAnyArray from 'is-any-array';\n\nexport default function checkArraySize(x, y) {\n  if (!isAnyArray(x) || !isAnyArray(y)) {\n    throw new TypeError('x and y must be arrays');\n  }\n  if (x.length !== y.length) {\n    throw new RangeError('x and y arrays must have the same length');\n  }\n}\n","import isAnyArray from 'is-any-array';\n\nexport { default as maybeToPrecision } from './maybeToPrecision';\nexport { default as checkArrayLength } from './checkArrayLength';\nexport default class BaseRegression {\n  constructor() {\n    if (new.target === BaseRegression) {\n      throw new Error('BaseRegression must be subclassed');\n    }\n  }\n\n  predict(x) {\n    if (typeof x === 'number') {\n      return this._predict(x);\n    } else if (isAnyArray(x)) {\n      const y = [];\n      for (let i = 0; i < x.length; i++) {\n        y.push(this._predict(x[i]));\n      }\n      return y;\n    } else {\n      throw new TypeError('x must be a number or array');\n    }\n  }\n\n  _predict() {\n    throw new Error('_predict must be implemented');\n  }\n\n  train() {\n    // Do nothing for this package\n  }\n\n  toString() {\n    return '';\n  }\n\n  toLaTeX() {\n    return '';\n  }\n\n  /**\n   * Return the correlation coefficient of determination (r) and chi-square.\n   * @param {Array<number>} x\n   * @param {Array<number>} y\n   * @return {object}\n   */\n  score(x, y) {\n    if (!isAnyArray(x) || !isAnyArray(y) || x.length !== y.length) {\n      throw new Error('x and y must be arrays of the same length');\n    }\n\n    const n = x.length;\n    const y2 = new Array(n);\n    for (let i = 0; i < n; i++) {\n      y2[i] = this._predict(x[i]);\n    }\n\n    let xSum = 0;\n    let ySum = 0;\n    let chi2 = 0;\n    let rmsd = 0;\n    let xSquared = 0;\n    let ySquared = 0;\n    let xY = 0;\n    for (let i = 0; i < n; i++) {\n      xSum += y2[i];\n      ySum += y[i];\n      xSquared += y2[i] * y2[i];\n      ySquared += y[i] * y[i];\n      xY += y2[i] * y[i];\n      if (y[i] !== 0) {\n        chi2 += ((y[i] - y2[i]) * (y[i] - y2[i])) / y[i];\n      }\n      rmsd += (y[i] - y2[i]) * (y[i] - y2[i]);\n    }\n\n    const r =\n      (n * xY - xSum * ySum) /\n      Math.sqrt((n * xSquared - xSum * xSum) * (n * ySquared - ySum * ySum));\n\n    return {\n      r: r,\n      r2: r * r,\n      chi2: chi2,\n      rmsd: Math.sqrt(rmsd / n),\n    };\n  }\n}\n","import BaseRegression, {\n  checkArrayLength,\n  maybeToPrecision,\n} from 'ml-regression-base';\nimport { Matrix, MatrixTransposeView, solve } from 'ml-matrix';\n\nexport default class PolynomialRegression extends BaseRegression {\n  constructor(x, y, degree) {\n    super();\n    if (x === true) {\n      this.degree = y.degree;\n      this.powers = y.powers;\n      this.coefficients = y.coefficients;\n    } else {\n      checkArrayLength(x, y);\n      regress(this, x, y, degree);\n    }\n  }\n\n  _predict(x) {\n    let y = 0;\n    for (let k = 0; k < this.powers.length; k++) {\n      y += this.coefficients[k] * Math.pow(x, this.powers[k]);\n    }\n    return y;\n  }\n\n  toJSON() {\n    return {\n      name: 'polynomialRegression',\n      degree: this.degree,\n      powers: this.powers,\n      coefficients: this.coefficients,\n    };\n  }\n\n  toString(precision) {\n    return this._toFormula(precision, false);\n  }\n\n  toLaTeX(precision) {\n    return this._toFormula(precision, true);\n  }\n\n  _toFormula(precision, isLaTeX) {\n    let sup = '^';\n    let closeSup = '';\n    let times = ' * ';\n    if (isLaTeX) {\n      sup = '^{';\n      closeSup = '}';\n      times = '';\n    }\n\n    let fn = '';\n    let str = '';\n    for (let k = 0; k < this.coefficients.length; k++) {\n      str = '';\n      if (this.coefficients[k] !== 0) {\n        if (this.powers[k] === 0) {\n          str = maybeToPrecision(this.coefficients[k], precision);\n        } else {\n          if (this.powers[k] === 1) {\n            str = `${maybeToPrecision(this.coefficients[k], precision) +\n              times}x`;\n          } else {\n            str = `${maybeToPrecision(this.coefficients[k], precision) +\n              times}x${sup}${this.powers[k]}${closeSup}`;\n          }\n        }\n\n        if (this.coefficients[k] > 0 && k !== this.coefficients.length - 1) {\n          str = ` + ${str}`;\n        } else if (k !== this.coefficients.length - 1) {\n          str = ` ${str}`;\n        }\n      }\n      fn = str + fn;\n    }\n    if (fn.charAt(0) === '+') {\n      fn = fn.slice(1);\n    }\n\n    return `f(x) = ${fn}`;\n  }\n\n  static load(json) {\n    if (json.name !== 'polynomialRegression') {\n      throw new TypeError('not a polynomial regression model');\n    }\n    return new PolynomialRegression(true, json);\n  }\n}\n\nfunction regress(pr, x, y, degree) {\n  const n = x.length;\n  let powers;\n  if (Array.isArray(degree)) {\n    powers = degree;\n    degree = powers.length;\n  } else {\n    degree++;\n    powers = new Array(degree);\n    for (let k = 0; k < degree; k++) {\n      powers[k] = k;\n    }\n  }\n  const F = new Matrix(n, degree);\n  const Y = new Matrix([y]);\n  for (let k = 0; k < degree; k++) {\n    for (let i = 0; i < n; i++) {\n      if (powers[k] === 0) {\n        F.set(i, k, 1);\n      } else {\n        F.set(i, k, Math.pow(x[i], powers[k]));\n      }\n    }\n  }\n\n  const FT = new MatrixTransposeView(F);\n  const A = FT.mmul(F);\n  const B = FT.mmul(new MatrixTransposeView(Y));\n\n  pr.degree = degree - 1;\n  pr.powers = powers;\n  pr.coefficients = solve(A, B).to1DArray();\n}\n","import PolynomialRegression from 'ml-regression-polynomial';\n\n/**\n * Iterative regression-based baseline correction\n * @param {Array<number>} x - Independent axis variable\n * @param {Array<number>} y - Dependent axis variable\n * @param {object} [options] - Options object\n * @param {number} [options.maxIterations = 100] - Maximum number of allowed iterations\n * @param {function} [options.Regression = PolynomialRegression] - Regression class with a predict method\n * @param {*} [options.regressionOptions] - Options for regressionFunction\n * @param {number} [options.tolerance = 0.001] - Convergence error tolerance\n * @return {{corrected: Array<number>, delta: number, iteration: number, baseline: Array<number>}}\n */\nexport default function baselineCorrectionRegression(x, y, options = {}) {\n  let {\n    maxIterations = 100,\n    Regression = PolynomialRegression,\n    regressionOptions,\n    tolerance = 0.001,\n  } = options;\n\n  if (!regressionOptions && Regression === PolynomialRegression) {\n    regressionOptions = 3;\n  }\n\n  let baseline = y.slice();\n  let fitting = y.slice();\n  let oldFitting = y;\n  let iteration = 0;\n  let delta;\n  let regression;\n  while (iteration < maxIterations) {\n    // Calculate the fitting result\n    regression = new Regression(x, baseline, regressionOptions);\n\n    delta = 0;\n    for (let i = 0; i < baseline.length; i++) {\n      fitting[i] = regression.predict(x[i]);\n      if (baseline[i] > fitting[i]) {\n        baseline[i] = fitting[i];\n      }\n\n      delta += Math.abs((fitting[i] - oldFitting[i]) / oldFitting[i]);\n    }\n\n    // Stop criterion\n    if (delta < tolerance) {\n      break;\n    } else {\n      oldFitting = fitting.slice();\n      iteration++;\n    }\n  }\n\n  // removes baseline\n  let corrected = new Array(baseline.length);\n  for (let j = 0; j < baseline.length; j++) {\n    corrected[j] = y[j] - baseline[j];\n  }\n\n  return {\n    corrected,\n    delta,\n    iteration,\n    baseline,\n    regression: regression,\n  };\n}\n","'use strict';\n\nfunction compareNumbers(a, b) {\n    return a - b;\n}\n\n/**\n * Computes the sum of the given values\n * @param {Array} values\n * @returns {number}\n */\nexports.sum = function sum(values) {\n    var sum = 0;\n    for (var i = 0; i < values.length; i++) {\n        sum += values[i];\n    }\n    return sum;\n};\n\n/**\n * Computes the maximum of the given values\n * @param {Array} values\n * @returns {number}\n */\nexports.max = function max(values) {\n    var max = values[0];\n    var l = values.length;\n    for (var i = 1; i < l; i++) {\n        if (values[i] > max) max = values[i];\n    }\n    return max;\n};\n\n/**\n * Computes the minimum of the given values\n * @param {Array} values\n * @returns {number}\n */\nexports.min = function min(values) {\n    var min = values[0];\n    var l = values.length;\n    for (var i = 1; i < l; i++) {\n        if (values[i] < min) min = values[i];\n    }\n    return min;\n};\n\n/**\n * Computes the min and max of the given values\n * @param {Array} values\n * @returns {{min: number, max: number}}\n */\nexports.minMax = function minMax(values) {\n    var min = values[0];\n    var max = values[0];\n    var l = values.length;\n    for (var i = 1; i < l; i++) {\n        if (values[i] < min) min = values[i];\n        if (values[i] > max) max = values[i];\n    }\n    return {\n        min: min,\n        max: max\n    };\n};\n\n/**\n * Computes the arithmetic mean of the given values\n * @param {Array} values\n * @returns {number}\n */\nexports.arithmeticMean = function arithmeticMean(values) {\n    var sum = 0;\n    var l = values.length;\n    for (var i = 0; i < l; i++) {\n        sum += values[i];\n    }\n    return sum / l;\n};\n\n/**\n * {@link arithmeticMean}\n */\nexports.mean = exports.arithmeticMean;\n\n/**\n * Computes the geometric mean of the given values\n * @param {Array} values\n * @returns {number}\n */\nexports.geometricMean = function geometricMean(values) {\n    var mul = 1;\n    var l = values.length;\n    for (var i = 0; i < l; i++) {\n        mul *= values[i];\n    }\n    return Math.pow(mul, 1 / l);\n};\n\n/**\n * Computes the mean of the log of the given values\n * If the return value is exponentiated, it gives the same result as the\n * geometric mean.\n * @param {Array} values\n * @returns {number}\n */\nexports.logMean = function logMean(values) {\n    var lnsum = 0;\n    var l = values.length;\n    for (var i = 0; i < l; i++) {\n        lnsum += Math.log(values[i]);\n    }\n    return lnsum / l;\n};\n\n/**\n * Computes the weighted grand mean for a list of means and sample sizes\n * @param {Array} means - Mean values for each set of samples\n * @param {Array} samples - Number of original values for each set of samples\n * @returns {number}\n */\nexports.grandMean = function grandMean(means, samples) {\n    var sum = 0;\n    var n = 0;\n    var l = means.length;\n    for (var i = 0; i < l; i++) {\n        sum += samples[i] * means[i];\n        n += samples[i];\n    }\n    return sum / n;\n};\n\n/**\n * Computes the truncated mean of the given values using a given percentage\n * @param {Array} values\n * @param {number} percent - The percentage of values to keep (range: [0,1])\n * @param {boolean} [alreadySorted=false]\n * @returns {number}\n */\nexports.truncatedMean = function truncatedMean(values, percent, alreadySorted) {\n    if (alreadySorted === undefined) alreadySorted = false;\n    if (!alreadySorted) {\n        values = [].concat(values).sort(compareNumbers);\n    }\n    var l = values.length;\n    var k = Math.floor(l * percent);\n    var sum = 0;\n    for (var i = k; i < (l - k); i++) {\n        sum += values[i];\n    }\n    return sum / (l - 2 * k);\n};\n\n/**\n * Computes the harmonic mean of the given values\n * @param {Array} values\n * @returns {number}\n */\nexports.harmonicMean = function harmonicMean(values) {\n    var sum = 0;\n    var l = values.length;\n    for (var i = 0; i < l; i++) {\n        if (values[i] === 0) {\n            throw new RangeError('value at index ' + i + 'is zero');\n        }\n        sum += 1 / values[i];\n    }\n    return l / sum;\n};\n\n/**\n * Computes the contraharmonic mean of the given values\n * @param {Array} values\n * @returns {number}\n */\nexports.contraHarmonicMean = function contraHarmonicMean(values) {\n    var r1 = 0;\n    var r2 = 0;\n    var l = values.length;\n    for (var i = 0; i < l; i++) {\n        r1 += values[i] * values[i];\n        r2 += values[i];\n    }\n    if (r2 < 0) {\n        throw new RangeError('sum of values is negative');\n    }\n    return r1 / r2;\n};\n\n/**\n * Computes the median of the given values\n * @param {Array} values\n * @param {boolean} [alreadySorted=false]\n * @returns {number}\n */\nexports.median = function median(values, alreadySorted) {\n    if (alreadySorted === undefined) alreadySorted = false;\n    if (!alreadySorted) {\n        values = [].concat(values).sort(compareNumbers);\n    }\n    var l = values.length;\n    var half = Math.floor(l / 2);\n    if (l % 2 === 0) {\n        return (values[half - 1] + values[half]) * 0.5;\n    } else {\n        return values[half];\n    }\n};\n\n/**\n * Computes the variance of the given values\n * @param {Array} values\n * @param {boolean} [unbiased=true] - if true, divide by (n-1); if false, divide by n.\n * @returns {number}\n */\nexports.variance = function variance(values, unbiased) {\n    if (unbiased === undefined) unbiased = true;\n    var theMean = exports.mean(values);\n    var theVariance = 0;\n    var l = values.length;\n\n    for (var i = 0; i < l; i++) {\n        var x = values[i] - theMean;\n        theVariance += x * x;\n    }\n\n    if (unbiased) {\n        return theVariance / (l - 1);\n    } else {\n        return theVariance / l;\n    }\n};\n\n/**\n * Computes the standard deviation of the given values\n * @param {Array} values\n * @param {boolean} [unbiased=true] - if true, divide by (n-1); if false, divide by n.\n * @returns {number}\n */\nexports.standardDeviation = function standardDeviation(values, unbiased) {\n    return Math.sqrt(exports.variance(values, unbiased));\n};\n\nexports.standardError = function standardError(values) {\n    return exports.standardDeviation(values) / Math.sqrt(values.length);\n};\n\n/**\n * IEEE Transactions on biomedical engineering, vol. 52, no. 1, january 2005, p. 76-\n * Calculate the standard deviation via the Median of the absolute deviation\n *  The formula for the standard deviation only holds for Gaussian random variables.\n * @returns {{mean: number, stdev: number}}\n */\nexports.robustMeanAndStdev = function robustMeanAndStdev(y) {\n    var mean = 0, stdev = 0;\n    var length = y.length, i = 0;\n    for (i = 0; i < length; i++) {\n        mean += y[i];\n    }\n    mean /= length;\n    var averageDeviations = new Array(length);\n    for (i = 0; i < length; i++)\n        averageDeviations[i] = Math.abs(y[i] - mean);\n    averageDeviations.sort(compareNumbers);\n    if (length % 2 === 1) {\n        stdev = averageDeviations[(length - 1) / 2] / 0.6745;\n    } else {\n        stdev = 0.5 * (averageDeviations[length / 2] + averageDeviations[length / 2 - 1]) / 0.6745;\n    }\n\n    return {\n        mean: mean,\n        stdev: stdev\n    };\n};\n\nexports.quartiles = function quartiles(values, alreadySorted) {\n    if (typeof (alreadySorted) === 'undefined') alreadySorted = false;\n    if (!alreadySorted) {\n        values = [].concat(values).sort(compareNumbers);\n    }\n\n    var quart = values.length / 4;\n    var q1 = values[Math.ceil(quart) - 1];\n    var q2 = exports.median(values, true);\n    var q3 = values[Math.ceil(quart * 3) - 1];\n\n    return {q1: q1, q2: q2, q3: q3};\n};\n\nexports.pooledStandardDeviation = function pooledStandardDeviation(samples, unbiased) {\n    return Math.sqrt(exports.pooledVariance(samples, unbiased));\n};\n\nexports.pooledVariance = function pooledVariance(samples, unbiased) {\n    if (typeof (unbiased) === 'undefined') unbiased = true;\n    var sum = 0;\n    var length = 0, l = samples.length;\n    for (var i = 0; i < l; i++) {\n        var values = samples[i];\n        var vari = exports.variance(values);\n\n        sum += (values.length - 1) * vari;\n\n        if (unbiased)\n            length += values.length - 1;\n        else\n            length += values.length;\n    }\n    return sum / length;\n};\n\nexports.mode = function mode(values) {\n    var l = values.length,\n        itemCount = new Array(l),\n        i;\n    for (i = 0; i < l; i++) {\n        itemCount[i] = 0;\n    }\n    var itemArray = new Array(l);\n    var count = 0;\n\n    for (i = 0; i < l; i++) {\n        var index = itemArray.indexOf(values[i]);\n        if (index >= 0)\n            itemCount[index]++;\n        else {\n            itemArray[count] = values[i];\n            itemCount[count] = 1;\n            count++;\n        }\n    }\n\n    var maxValue = 0, maxIndex = 0;\n    for (i = 0; i < count; i++) {\n        if (itemCount[i] > maxValue) {\n            maxValue = itemCount[i];\n            maxIndex = i;\n        }\n    }\n\n    return itemArray[maxIndex];\n};\n\nexports.covariance = function covariance(vector1, vector2, unbiased) {\n    if (typeof (unbiased) === 'undefined') unbiased = true;\n    var mean1 = exports.mean(vector1);\n    var mean2 = exports.mean(vector2);\n\n    if (vector1.length !== vector2.length)\n        throw 'Vectors do not have the same dimensions';\n\n    var cov = 0, l = vector1.length;\n    for (var i = 0; i < l; i++) {\n        var x = vector1[i] - mean1;\n        var y = vector2[i] - mean2;\n        cov += x * y;\n    }\n\n    if (unbiased)\n        return cov / (l - 1);\n    else\n        return cov / l;\n};\n\nexports.skewness = function skewness(values, unbiased) {\n    if (typeof (unbiased) === 'undefined') unbiased = true;\n    var theMean = exports.mean(values);\n\n    var s2 = 0, s3 = 0, l = values.length;\n    for (var i = 0; i < l; i++) {\n        var dev = values[i] - theMean;\n        s2 += dev * dev;\n        s3 += dev * dev * dev;\n    }\n    var m2 = s2 / l;\n    var m3 = s3 / l;\n\n    var g = m3 / (Math.pow(m2, 3 / 2.0));\n    if (unbiased) {\n        var a = Math.sqrt(l * (l - 1));\n        var b = l - 2;\n        return (a / b) * g;\n    } else {\n        return g;\n    }\n};\n\nexports.kurtosis = function kurtosis(values, unbiased) {\n    if (typeof (unbiased) === 'undefined') unbiased = true;\n    var theMean = exports.mean(values);\n    var n = values.length, s2 = 0, s4 = 0;\n\n    for (var i = 0; i < n; i++) {\n        var dev = values[i] - theMean;\n        s2 += dev * dev;\n        s4 += dev * dev * dev * dev;\n    }\n    var m2 = s2 / n;\n    var m4 = s4 / n;\n\n    if (unbiased) {\n        var v = s2 / (n - 1);\n        var a = (n * (n + 1)) / ((n - 1) * (n - 2) * (n - 3));\n        var b = s4 / (v * v);\n        var c = ((n - 1) * (n - 1)) / ((n - 2) * (n - 3));\n\n        return a * b - 3 * c;\n    } else {\n        return m4 / (m2 * m2) - 3;\n    }\n};\n\nexports.entropy = function entropy(values, eps) {\n    if (typeof (eps) === 'undefined') eps = 0;\n    var sum = 0, l = values.length;\n    for (var i = 0; i < l; i++)\n        sum += values[i] * Math.log(values[i] + eps);\n    return -sum;\n};\n\nexports.weightedMean = function weightedMean(values, weights) {\n    var sum = 0, l = values.length;\n    for (var i = 0; i < l; i++)\n        sum += values[i] * weights[i];\n    return sum;\n};\n\nexports.weightedStandardDeviation = function weightedStandardDeviation(values, weights) {\n    return Math.sqrt(exports.weightedVariance(values, weights));\n};\n\nexports.weightedVariance = function weightedVariance(values, weights) {\n    var theMean = exports.weightedMean(values, weights);\n    var vari = 0, l = values.length;\n    var a = 0, b = 0;\n\n    for (var i = 0; i < l; i++) {\n        var z = values[i] - theMean;\n        var w = weights[i];\n\n        vari += w * (z * z);\n        b += w;\n        a += w * w;\n    }\n\n    return vari * (b / (b * b - a));\n};\n\nexports.center = function center(values, inPlace) {\n    if (typeof (inPlace) === 'undefined') inPlace = false;\n\n    var result = values;\n    if (!inPlace)\n        result = [].concat(values);\n\n    var theMean = exports.mean(result), l = result.length;\n    for (var i = 0; i < l; i++)\n        result[i] -= theMean;\n};\n\nexports.standardize = function standardize(values, standardDev, inPlace) {\n    if (typeof (standardDev) === 'undefined') standardDev = exports.standardDeviation(values);\n    if (typeof (inPlace) === 'undefined') inPlace = false;\n    var l = values.length;\n    var result = inPlace ? values : new Array(l);\n    for (var i = 0; i < l; i++)\n        result[i] = values[i] / standardDev;\n    return result;\n};\n\nexports.cumulativeSum = function cumulativeSum(array) {\n    var l = array.length;\n    var result = new Array(l);\n    result[0] = array[0];\n    for (var i = 1; i < l; i++)\n        result[i] = result[i - 1] + array[i];\n    return result;\n};\n","import max from 'ml-array-max';\nimport min from 'ml-array-min';\nimport normed from 'ml-array-normed';\nimport rescale from 'ml-array-rescale';\nimport equallySpaced from 'ml-array-xy-equally-spaced';\nimport filterX from 'ml-array-xy-filter-x';\nimport savitzkyGolay from 'ml-savitzky-golay';\nimport baselineCorrection from 'ml-baseline-correction-regression';\nimport {\n  xDivide,\n  xSubtract,\n  xMultiply,\n  xAdd,\n  xIsMonotone,\n} from 'ml-spectra-processing';\nimport Stat from 'ml-stat/array';\n/**\n *\n * @private\n * @param {object} spectrum\n * @param {object} [options={}]\n * @param {number} [options.from=x.min]\n * @param {number} [options.to=x.max]\n * @param {number} [options.numberOfPoints]\n * @param {String} [options.processing] Allows to calculate derivatives\n * @param {Array} [options.filters=[]] Array of object containing 'name' (centerMean, divideSD, normalize, rescale) and 'options'\n * @param {Array} [options.exclusions=[]]\n * @returns {DataXY}\n */\nexport function getNormalizedSpectrum(spectrum, options = {}) {\n  let data = {\n    x: spectrum.variables.x.data,\n    y: spectrum.variables.y.data,\n  };\n  let newSpectrum = {\n    variables: {\n      x: {\n        data: spectrum.variables.x.data,\n        units: spectrum.variables.x.units,\n        label: spectrum.variables.x.label,\n      },\n      y: {\n        data: spectrum.variables.y.data,\n        units: spectrum.variables.y.units,\n        label: spectrum.variables.y.label,\n      },\n    },\n  };\n  if (spectrum.title) newSpectrum.title = spectrum.title;\n  if (spectrum.dataType) newSpectrum.dataType = spectrum.dataType;\n  if (spectrum.meta) newSpectrum.meta = spectrum.meta;\n\n  let {\n    from = spectrum.variables.x.min,\n    to = spectrum.variables.x.max,\n    numberOfPoints,\n    filters = [],\n    exclusions = [],\n    processing = '',\n  } = options;\n  let { x, y } = filterX(data, { from, to });\n\n  switch (processing) {\n    case 'firstDerivative':\n      if (options.processing) {\n        newSpectrum.variables.y.units = '';\n        newSpectrum.variables.y.label =\n          newSpectrum.variables.y.label &&\n          `1° derivative of ${newSpectrum.variables.y.label.replace(\n            /\\s*\\[.*\\]/,\n            '',\n          )}`;\n        y = savitzkyGolay(y, 1, {\n          derivative: 1,\n          polynomial: 2,\n          windowSize: 5,\n        });\n        x = x.slice(2, x.length - 2);\n      }\n      break;\n    case 'secondDerivative':\n      if (options.processing) {\n        newSpectrum.variables.y.units = '';\n        newSpectrum.variables.y.label =\n          newSpectrum.variables.y.label &&\n          `2° derivative of ${newSpectrum.variables.y.label.replace(\n            /\\s*\\[.*\\]/,\n            '',\n          )}`;\n        y = savitzkyGolay(y, 1, {\n          derivative: 2,\n          polynomial: 2,\n          windowSize: 5,\n        });\n        x = x.slice(2, x.length - 2);\n      }\n      break;\n    default:\n  }\n\n  if (filters.length) {\n    // filters change the y axis, we get rid of the units\n    newSpectrum.variables.y.units = '';\n    newSpectrum.variables.y.label =\n      newSpectrum.variables.y.label &&\n      newSpectrum.variables.y.label.replace(/\\s*\\[.*\\]/, '');\n  }\n\n  for (let filter of filters) {\n    let filterOptions = filter.options || {};\n    switch (filter.name.toLowerCase()) {\n      case 'centermean': {\n        let mean = Stat.mean(y);\n        y = xSubtract(y, mean);\n        break;\n      }\n      case 'dividebysd': {\n        let std = Stat.standardDeviation(y);\n        y = xDivide(y, std);\n        break;\n      }\n      case 'normalize': {\n        y = normed(y, {\n          sumValue: filterOptions.value ? Number(filterOptions.value) : 1,\n          algorithm: 'absolute',\n        });\n        break;\n      }\n      case 'rescale': {\n        y = rescale(y, {\n          min: filterOptions.min ? Number(filterOptions.min) : 0,\n          max: filterOptions.max ? Number(filterOptions.max) : 1,\n        });\n        break;\n      }\n      case 'dividebymax': {\n        let maxValue = max(y);\n        y = xDivide(y, maxValue);\n        break;\n      }\n      case 'multiply': {\n        y = xMultiply(y, filterOptions.value ? Number(filterOptions.value) : 1);\n        break;\n      }\n      case 'add': {\n        y = xAdd(y, filterOptions.value ? Number(filterOptions.value) : 0);\n        break;\n      }\n      case 'baselinecorreciton': {\n        let result = baselineCorrection(x, y, filterOptions);\n        y = result.corrected;\n        break;\n      }\n      case '':\n      case undefined:\n        break;\n      default:\n        throw new Error(`Unknown process kind: ${process.kind}`);\n    }\n  }\n\n  if (!numberOfPoints) {\n    data = filterX({ x, y }, { from, to, exclusions });\n  } else {\n    data = equallySpaced({ x, y }, { from, to, numberOfPoints, exclusions });\n  }\n\n  newSpectrum.variables.x.data = x;\n  newSpectrum.variables.x.min = min(x);\n  newSpectrum.variables.x.max = max(x);\n  newSpectrum.variables.x.isMonotone = xIsMonotone(x);\n  newSpectrum.variables.y.data = y;\n  newSpectrum.variables.y.min = min(y);\n  newSpectrum.variables.y.max = max(y);\n  newSpectrum.variables.y.isMonotone = xIsMonotone(y);\n\n  return newSpectrum;\n}\n","/*\nThe MIT License (MIT)\nCopyright © 2006-2007 Kevin C. Olbrich\nCopyright © 2010-2016 LIM SAS (http://lim.eu) - Julien Sanchez\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n  typeof define === 'function' && define.amd ? define(factory) :\n  (global = global || self, global.Qty = factory());\n}(this, (function () { 'use strict';\n\n  /**\n   * Tests if a value is a string\n   *\n   * @param {*} value - Value to test\n   *\n   * @returns {boolean} true if value is a string, false otherwise\n   */\n  function isString(value) {\n    return typeof value === \"string\" || value instanceof String;\n  }\n\n  /*\n   * Prefer stricter Number.isFinite if currently supported.\n   * To be dropped when ES6 is finalized. Obsolete browsers will\n   * have to use ES6 polyfills.\n   */\n  var isFiniteImpl = Number.isFinite || window.isFinite;\n  /**\n   * Tests if a value is a number\n   *\n   * @param {*} value - Value to test\n   *\n   * @returns {boolean} true if value is a number, false otherwise\n   */\n  function isNumber(value) {\n    // Number.isFinite allows not to consider NaN or '1' as numbers\n    return isFiniteImpl(value);\n  }\n\n  /*\n   * Identity function\n   */\n  function identity(value) {\n    return value;\n  }\n\n  /**\n   * Returns unique strings from list\n   *\n   * @param {string[]} strings - array of strings\n   *\n   *\n   * @returns {string[]} a new array of strings without duplicates\n   */\n  function uniq(strings) {\n    var seen = {};\n    return strings.filter(function(item) {\n      return seen.hasOwnProperty(item) ? false : (seen[item] = true);\n    });\n  }\n\n  function compareArray(array1, array2) {\n    if (array2.length !== array1.length) {\n      return false;\n    }\n    for (var i = 0; i < array1.length; i++) {\n      if (array2[i].compareArray) {\n        if (!array2[i].compareArray(array1[i])) {\n          return false;\n        }\n      }\n      if (array2[i] !== array1[i]) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  function assign(target, properties) {\n    Object.keys(properties).forEach(function(key) {\n      target[key] = properties[key];\n    });\n  }\n\n  /**\n   * Safely multiplies numbers while avoiding floating errors\n   * like 0.1 * 0.1 => 0.010000000000000002\n   *\n   * @param {...number} numbers - numbers to multiply\n   *\n   * @returns {number} result\n   */\n  function mulSafe() {\n    var result = 1, decimals = 0;\n    for (var i = 0; i < arguments.length; i++) {\n      var arg = arguments[i];\n      decimals = decimals + getFractional(arg);\n      result *= arg;\n    }\n\n    return decimals !== 0 ? round(result, decimals) : result;\n  }\n\n  /**\n   * Safely divides two numbers while avoiding floating errors\n   * like 0.3 / 0.05 => 5.999999999999999\n   *\n   * @returns {number} result\n   * @param {number} num Numerator\n   * @param {number} den Denominator\n   */\n  function divSafe(num, den) {\n    if (den === 0) {\n      throw new Error(\"Divide by zero\");\n    }\n\n    var factor = Math.pow(10, getFractional(den));\n    var invDen = factor / (factor * den);\n\n    return mulSafe(num, invDen);\n  }\n\n  /**\n   * Rounds value at the specified number of decimals\n   *\n   * @param {number} val - value to round\n   * @param {number} decimals - number of decimals\n   *\n   * @returns {number} rounded number\n   */\n  function round(val, decimals) {\n    return Math.round(val * Math.pow(10, decimals)) / Math.pow(10, decimals);\n  }\n\n  function getFractional(num) {\n    // Check for NaNs or Infinities\n    if (!isFinite(num)) {\n      return 0;\n    }\n\n    // Faster than parsing strings\n    // http://jsperf.com/count-decimals/2\n    var count = 0;\n    while (num % 1 !== 0) {\n      num *= 10;\n      count++;\n    }\n    return count;\n  }\n\n  /**\n   * Custom error type definition\n   * @constructor\n   */\n  function QtyError() {\n    var err;\n    if (!this) { // Allows to instantiate QtyError without new()\n      err = Object.create(QtyError.prototype);\n      QtyError.apply(err, arguments);\n      return err;\n    }\n    err = Error.apply(this, arguments);\n    this.name = \"QtyError\";\n    this.message = err.message;\n    this.stack = err.stack;\n  }\n  QtyError.prototype = Object.create(Error.prototype, {constructor: { value: QtyError }});\n\n  /*\n   * Throws incompatible units error\n   * @param {string} left - units\n   * @param {string} right - units incompatible with first argument\n   * @throws \"Incompatible units\" error\n   */\n  function throwIncompatibleUnits(left, right) {\n    throw new QtyError(\"Incompatible units: \" + left + \" and \" + right);\n  }\n\n  var UNITS = {\n    /* prefixes */\n    \"<googol>\" : [[\"googol\"], 1e100, \"prefix\"],\n    \"<kibi>\"  :  [[\"Ki\",\"Kibi\",\"kibi\"], Math.pow(2,10), \"prefix\"],\n    \"<mebi>\"  :  [[\"Mi\",\"Mebi\",\"mebi\"], Math.pow(2,20), \"prefix\"],\n    \"<gibi>\"  :  [[\"Gi\",\"Gibi\",\"gibi\"], Math.pow(2,30), \"prefix\"],\n    \"<tebi>\"  :  [[\"Ti\",\"Tebi\",\"tebi\"], Math.pow(2,40), \"prefix\"],\n    \"<pebi>\"  :  [[\"Pi\",\"Pebi\",\"pebi\"], Math.pow(2,50), \"prefix\"],\n    \"<exi>\"   :  [[\"Ei\",\"Exi\",\"exi\"], Math.pow(2,60), \"prefix\"],\n    \"<zebi>\"  :  [[\"Zi\",\"Zebi\",\"zebi\"], Math.pow(2,70), \"prefix\"],\n    \"<yebi>\"  :  [[\"Yi\",\"Yebi\",\"yebi\"], Math.pow(2,80), \"prefix\"],\n    \"<yotta>\" :  [[\"Y\",\"Yotta\",\"yotta\"], 1e24, \"prefix\"],\n    \"<zetta>\" :  [[\"Z\",\"Zetta\",\"zetta\"], 1e21, \"prefix\"],\n    \"<exa>\"   :  [[\"E\",\"Exa\",\"exa\"], 1e18, \"prefix\"],\n    \"<peta>\"  :  [[\"P\",\"Peta\",\"peta\"], 1e15, \"prefix\"],\n    \"<tera>\"  :  [[\"T\",\"Tera\",\"tera\"], 1e12, \"prefix\"],\n    \"<giga>\"  :  [[\"G\",\"Giga\",\"giga\"], 1e9, \"prefix\"],\n    \"<mega>\"  :  [[\"M\",\"Mega\",\"mega\"], 1e6, \"prefix\"],\n    \"<kilo>\"  :  [[\"k\",\"kilo\"], 1e3, \"prefix\"],\n    \"<hecto>\" :  [[\"h\",\"Hecto\",\"hecto\"], 1e2, \"prefix\"],\n    \"<deca>\"  :  [[\"da\",\"Deca\",\"deca\",\"deka\"], 1e1, \"prefix\"],\n    \"<deci>\"  :  [[\"d\",\"Deci\",\"deci\"], 1e-1, \"prefix\"],\n    \"<centi>\"  : [[\"c\",\"Centi\",\"centi\"], 1e-2, \"prefix\"],\n    \"<milli>\" :  [[\"m\",\"Milli\",\"milli\"], 1e-3, \"prefix\"],\n    \"<micro>\"  : [\n      [\"u\",\"\\u03BC\"/*µ as greek letter*/,\"\\u00B5\"/*µ as micro sign*/,\"Micro\",\"mc\",\"micro\"],\n      1e-6,\n      \"prefix\"\n    ],\n    \"<nano>\"  :  [[\"n\",\"Nano\",\"nano\"], 1e-9, \"prefix\"],\n    \"<pico>\"  :  [[\"p\",\"Pico\",\"pico\"], 1e-12, \"prefix\"],\n    \"<femto>\" :  [[\"f\",\"Femto\",\"femto\"], 1e-15, \"prefix\"],\n    \"<atto>\"  :  [[\"a\",\"Atto\",\"atto\"], 1e-18, \"prefix\"],\n    \"<zepto>\" :  [[\"z\",\"Zepto\",\"zepto\"], 1e-21, \"prefix\"],\n    \"<yocto>\" :  [[\"y\",\"Yocto\",\"yocto\"], 1e-24, \"prefix\"],\n\n    \"<1>\"     :  [[\"1\", \"<1>\"], 1, \"\"],\n    /* length units */\n    \"<meter>\" :  [[\"m\",\"meter\",\"meters\",\"metre\",\"metres\"], 1.0, \"length\", [\"<meter>\"] ],\n    \"<inch>\"  :  [[\"in\",\"inch\",\"inches\",\"\\\"\"], 0.0254, \"length\", [\"<meter>\"]],\n    \"<foot>\"  :  [[\"ft\",\"foot\",\"feet\",\"'\"], 0.3048, \"length\", [\"<meter>\"]],\n    \"<yard>\"  :  [[\"yd\",\"yard\",\"yards\"], 0.9144, \"length\", [\"<meter>\"]],\n    \"<mile>\"  :  [[\"mi\",\"mile\",\"miles\"], 1609.344, \"length\", [\"<meter>\"]],\n    \"<naut-mile>\" : [[\"nmi\",\"naut-mile\"], 1852, \"length\", [\"<meter>\"]],\n    \"<league>\":  [[\"league\",\"leagues\"], 4828, \"length\", [\"<meter>\"]],\n    \"<furlong>\": [[\"furlong\",\"furlongs\"], 201.2, \"length\", [\"<meter>\"]],\n    \"<rod>\"   :  [[\"rd\",\"rod\",\"rods\"], 5.029, \"length\", [\"<meter>\"]],\n    \"<mil>\"   :  [[\"mil\",\"mils\"], 0.0000254, \"length\", [\"<meter>\"]],\n    \"<angstrom>\"  :[[\"ang\",\"angstrom\",\"angstroms\"], 1e-10, \"length\", [\"<meter>\"]],\n    \"<fathom>\" : [[\"fathom\",\"fathoms\"], 1.829, \"length\", [\"<meter>\"]],\n    \"<pica>\"  : [[\"pica\",\"picas\"], 0.00423333333, \"length\", [\"<meter>\"]],\n    \"<point>\" : [[\"pt\",\"point\",\"points\"], 0.000352777778, \"length\", [\"<meter>\"]],\n    \"<redshift>\" : [[\"z\",\"red-shift\", \"redshift\"], 1.302773e26, \"length\", [\"<meter>\"]],\n    \"<AU>\"    : [[\"AU\",\"astronomical-unit\"], 149597900000, \"length\", [\"<meter>\"]],\n    \"<light-second>\":[[\"ls\",\"light-second\"], 299792500, \"length\", [\"<meter>\"]],\n    \"<light-minute>\":[[\"lmin\",\"light-minute\"], 17987550000, \"length\", [\"<meter>\"]],\n    \"<light-year>\" : [[\"ly\",\"light-year\"], 9460528000000000, \"length\", [\"<meter>\"]],\n    \"<parsec>\"  : [[\"pc\",\"parsec\",\"parsecs\"], 30856780000000000, \"length\", [\"<meter>\"]],\n    \"<datamile>\"  :  [[\"DM\",\"datamile\"], 1828.8, \"length\", [\"<meter>\"]],\n\n    /* mass */\n    \"<kilogram>\" : [[\"kg\",\"kilogram\",\"kilograms\"], 1.0, \"mass\", [\"<kilogram>\"]],\n    \"<AMU>\" : [[\"u\",\"AMU\",\"amu\"], 1.660538921e-27, \"mass\", [\"<kilogram>\"]],\n    \"<dalton>\" : [[\"Da\",\"Dalton\",\"Daltons\",\"dalton\",\"daltons\"], 1.660538921e-27, \"mass\", [\"<kilogram>\"]],\n    \"<slug>\" : [[\"slug\",\"slugs\"], 14.5939029, \"mass\", [\"<kilogram>\"]],\n    \"<short-ton>\" : [[\"tn\",\"ton\",\"short-ton\"], 907.18474, \"mass\", [\"<kilogram>\"]],\n    \"<metric-ton>\":[[\"tonne\",\"metric-ton\"], 1000, \"mass\", [\"<kilogram>\"]],\n    \"<carat>\" : [[\"ct\",\"carat\",\"carats\"], 0.0002, \"mass\", [\"<kilogram>\"]],\n    \"<pound>\" : [[\"lbs\",\"lb\",\"pound\",\"pounds\",\"#\"], 0.45359237, \"mass\", [\"<kilogram>\"]],\n    \"<ounce>\" : [[\"oz\",\"ounce\",\"ounces\"], 0.0283495231, \"mass\", [\"<kilogram>\"]],\n    \"<gram>\"    :  [[\"g\",\"gram\",\"grams\",\"gramme\",\"grammes\"], 1e-3, \"mass\", [\"<kilogram>\"]],\n    \"<grain>\" : [[\"grain\",\"grains\",\"gr\"], 6.479891e-5, \"mass\", [\"<kilogram>\"]],\n    \"<dram>\"  : [[\"dram\",\"drams\",\"dr\"], 0.0017718452, \"mass\",[\"<kilogram>\"]],\n    \"<stone>\" : [[\"stone\",\"stones\",\"st\"],6.35029318, \"mass\",[\"<kilogram>\"]],\n\n    /* area */\n    \"<hectare>\":[[\"hectare\"], 10000, \"area\", [\"<meter>\",\"<meter>\"]],\n    \"<acre>\":[[\"acre\",\"acres\"], 4046.85642, \"area\", [\"<meter>\",\"<meter>\"]],\n    \"<sqft>\":[[\"sqft\"], 1, \"area\", [\"<foot>\",\"<foot>\"]],\n\n    /* volume */\n    \"<liter>\" : [[\"l\",\"L\",\"liter\",\"liters\",\"litre\",\"litres\"], 0.001, \"volume\", [\"<meter>\",\"<meter>\",\"<meter>\"]],\n    \"<gallon>\":  [[\"gal\",\"gallon\",\"gallons\"], 0.0037854118, \"volume\", [\"<meter>\",\"<meter>\",\"<meter>\"]],\n    \"<gallon-imp>\":  [[\"galimp\",\"gallon-imp\",\"gallons-imp\"], 0.0045460900, \"volume\", [\"<meter>\",\"<meter>\",\"<meter>\"]],\n    \"<quart>\":  [[\"qt\",\"quart\",\"quarts\"], 0.00094635295, \"volume\", [\"<meter>\",\"<meter>\",\"<meter>\"]],\n    \"<pint>\":  [[\"pt\",\"pint\",\"pints\"], 0.000473176475, \"volume\", [\"<meter>\",\"<meter>\",\"<meter>\"]],\n    \"<pint-imp>\":  [[\"ptimp\",\"pint-imp\",\"pints-imp\"], 5.6826125e-4, \"volume\", [\"<meter>\",\"<meter>\",\"<meter>\"]],\n    \"<cup>\":  [[\"cu\",\"cup\",\"cups\"], 0.000236588238, \"volume\", [\"<meter>\",\"<meter>\",\"<meter>\"]],\n    \"<fluid-ounce>\":  [[\"floz\",\"fluid-ounce\",\"fluid-ounces\"], 2.95735297e-5, \"volume\", [\"<meter>\",\"<meter>\",\"<meter>\"]],\n    \"<fluid-ounce-imp>\":  [[\"flozimp\", \"floz-imp\",\"fluid-ounce-imp\",\"fluid-ounces-imp\"], 2.84130625e-5, \"volume\", [\"<meter>\",\"<meter>\",\"<meter>\"]],\n    \"<tablespoon>\":  [[\"tb\",\"tbsp\",\"tbs\",\"tablespoon\",\"tablespoons\"], 1.47867648e-5, \"volume\", [\"<meter>\",\"<meter>\",\"<meter>\"]],\n    \"<teaspoon>\":  [[\"tsp\",\"teaspoon\",\"teaspoons\"], 4.92892161e-6, \"volume\", [\"<meter>\",\"<meter>\",\"<meter>\"]],\n    \"<bushel>\":  [[\"bu\",\"bsh\",\"bushel\",\"bushels\"], 0.035239072, \"volume\", [\"<meter>\",\"<meter>\",\"<meter>\"]],\n    \"<oilbarrel>\":  [[\"bbl\",\"oil-barrel\",\"oil-barrels\"], 0.158987294928, \"volume\", [\"<meter>\",\"<meter>\",\"<meter>\"]],\n    \"<beerbarrel>\":  [[\"bl\",\"bl-us\",\"beer-barrel\",\"beer-barrels\"], 0.1173477658, \"volume\", [\"<meter>\",\"<meter>\",\"<meter>\"]],\n    \"<beerbarrel-imp>\":  [[\"blimp\",\"bl-imp\",\"beer-barrel-imp\",\"beer-barrels-imp\"], 0.16365924, \"volume\", [\"<meter>\",\"<meter>\",\"<meter>\"]],\n\n    /* speed */\n    \"<kph>\" : [[\"kph\"], 0.277777778, \"speed\", [\"<meter>\"], [\"<second>\"]],\n    \"<mph>\" : [[\"mph\"], 0.44704, \"speed\", [\"<meter>\"], [\"<second>\"]],\n    \"<knot>\" : [[\"kt\",\"kn\",\"kts\",\"knot\",\"knots\"], 0.514444444, \"speed\", [\"<meter>\"], [\"<second>\"]],\n    \"<fps>\"  : [[\"fps\"], 0.3048, \"speed\", [\"<meter>\"], [\"<second>\"]],\n\n    /* acceleration */\n    \"<gee>\" : [[\"gee\"], 9.80665, \"acceleration\", [\"<meter>\"], [\"<second>\",\"<second>\"]],\n\n    /* temperature_difference */\n    \"<kelvin>\" : [[\"degK\",\"kelvin\"], 1.0, \"temperature\", [\"<kelvin>\"]],\n    \"<celsius>\" : [[\"degC\",\"celsius\",\"celsius\",\"centigrade\"], 1.0, \"temperature\", [\"<kelvin>\"]],\n    \"<fahrenheit>\" : [[\"degF\",\"fahrenheit\"], 5 / 9, \"temperature\", [\"<kelvin>\"]],\n    \"<rankine>\" : [[\"degR\",\"rankine\"], 5 / 9, \"temperature\", [\"<kelvin>\"]],\n    \"<temp-K>\"  : [[\"tempK\",\"temp-K\"], 1.0, \"temperature\", [\"<temp-K>\"]],\n    \"<temp-C>\"  : [[\"tempC\",\"temp-C\"], 1.0, \"temperature\", [\"<temp-K>\"]],\n    \"<temp-F>\"  : [[\"tempF\",\"temp-F\"], 5 / 9, \"temperature\", [\"<temp-K>\"]],\n    \"<temp-R>\"  : [[\"tempR\",\"temp-R\"], 5 / 9, \"temperature\", [\"<temp-K>\"]],\n\n    /* time */\n    \"<second>\":  [[\"s\",\"sec\",\"secs\",\"second\",\"seconds\"], 1.0, \"time\", [\"<second>\"]],\n    \"<minute>\":  [[\"min\",\"mins\",\"minute\",\"minutes\"], 60.0, \"time\", [\"<second>\"]],\n    \"<hour>\":  [[\"h\",\"hr\",\"hrs\",\"hour\",\"hours\"], 3600.0, \"time\", [\"<second>\"]],\n    \"<day>\":  [[\"d\",\"day\",\"days\"], 3600 * 24, \"time\", [\"<second>\"]],\n    \"<week>\":  [[\"wk\",\"week\",\"weeks\"], 7 * 3600 * 24, \"time\", [\"<second>\"]],\n    \"<fortnight>\": [[\"fortnight\",\"fortnights\"], 1209600, \"time\", [\"<second>\"]],\n    \"<year>\":  [[\"y\",\"yr\",\"year\",\"years\",\"annum\"], 31556926, \"time\", [\"<second>\"]],\n    \"<decade>\":[[\"decade\",\"decades\"], 315569260, \"time\", [\"<second>\"]],\n    \"<century>\":[[\"century\",\"centuries\"], 3155692600, \"time\", [\"<second>\"]],\n\n    /* pressure */\n    \"<pascal>\" : [[\"Pa\",\"pascal\",\"Pascal\"], 1.0, \"pressure\", [\"<kilogram>\"],[\"<meter>\",\"<second>\",\"<second>\"]],\n    \"<bar>\" : [[\"bar\",\"bars\"], 100000, \"pressure\", [\"<kilogram>\"],[\"<meter>\",\"<second>\",\"<second>\"]],\n    \"<mmHg>\" : [[\"mmHg\"], 133.322368, \"pressure\", [\"<kilogram>\"],[\"<meter>\",\"<second>\",\"<second>\"]],\n    \"<inHg>\" : [[\"inHg\"], 3386.3881472, \"pressure\", [\"<kilogram>\"],[\"<meter>\",\"<second>\",\"<second>\"]],\n    \"<torr>\" : [[\"torr\"], 133.322368, \"pressure\", [\"<kilogram>\"],[\"<meter>\",\"<second>\",\"<second>\"]],\n    \"<atm>\" : [[\"atm\",\"ATM\",\"atmosphere\",\"atmospheres\"], 101325, \"pressure\", [\"<kilogram>\"],[\"<meter>\",\"<second>\",\"<second>\"]],\n    \"<psi>\" : [[\"psi\"], 6894.76, \"pressure\", [\"<kilogram>\"],[\"<meter>\",\"<second>\",\"<second>\"]],\n    \"<cmh2o>\" : [[\"cmH2O\",\"cmh2o\"], 98.0638, \"pressure\", [\"<kilogram>\"],[\"<meter>\",\"<second>\",\"<second>\"]],\n    \"<inh2o>\" : [[\"inH2O\",\"inh2o\"], 249.082052, \"pressure\", [\"<kilogram>\"],[\"<meter>\",\"<second>\",\"<second>\"]],\n\n    /* viscosity */\n    \"<poise>\"  : [[\"P\",\"poise\"], 0.1, \"viscosity\", [\"<kilogram>\"],[\"<meter>\",\"<second>\"] ],\n    \"<stokes>\" : [[\"St\",\"stokes\"], 1e-4, \"viscosity\", [\"<meter>\",\"<meter>\"], [\"<second>\"]],\n\n    /* substance */\n    \"<mole>\"  :  [[\"mol\",\"mole\"], 1.0, \"substance\", [\"<mole>\"]],\n\n    /* concentration */\n    \"<molar>\" : [[\"M\",\"molar\"], 1000, \"concentration\", [\"<mole>\"], [\"<meter>\",\"<meter>\",\"<meter>\"]],\n    \"<wtpercent>\"  : [[\"wt%\",\"wtpercent\"], 10, \"concentration\", [\"<kilogram>\"], [\"<meter>\",\"<meter>\",\"<meter>\"]],\n\n    /* activity */\n    \"<katal>\" :  [[\"kat\",\"katal\",\"Katal\"], 1.0, \"activity\", [\"<mole>\"], [\"<second>\"]],\n    \"<unit>\"  :  [[\"U\",\"enzUnit\",\"unit\"], 16.667e-16, \"activity\", [\"<mole>\"], [\"<second>\"]],\n\n    /* capacitance */\n    \"<farad>\" :  [[\"F\",\"farad\",\"Farad\"], 1.0, \"capacitance\", [\"<second>\",\"<second>\",\"<second>\",\"<second>\",\"<ampere>\",\"<ampere>\"], [\"<meter>\", \"<meter>\", \"<kilogram>\"]],\n\n    /* charge */\n    \"<coulomb>\" :  [[\"C\",\"coulomb\",\"Coulomb\"], 1.0, \"charge\", [\"<ampere>\",\"<second>\"]],\n    \"<Ah>\" :  [[\"Ah\"], 3600, \"charge\", [\"<ampere>\",\"<second>\"]],\n\n    /* current */\n    \"<ampere>\"  :  [[\"A\",\"Ampere\",\"ampere\",\"amp\",\"amps\"], 1.0, \"current\", [\"<ampere>\"]],\n\n    /* conductance */\n    \"<siemens>\" : [[\"S\",\"Siemens\",\"siemens\"], 1.0, \"conductance\", [\"<second>\",\"<second>\",\"<second>\",\"<ampere>\",\"<ampere>\"], [\"<kilogram>\",\"<meter>\",\"<meter>\"]],\n\n    /* inductance */\n    \"<henry>\" :  [[\"H\",\"Henry\",\"henry\"], 1.0, \"inductance\", [\"<meter>\",\"<meter>\",\"<kilogram>\"], [\"<second>\",\"<second>\",\"<ampere>\",\"<ampere>\"]],\n\n    /* potential */\n    \"<volt>\"  :  [[\"V\",\"Volt\",\"volt\",\"volts\"], 1.0, \"potential\", [\"<meter>\",\"<meter>\",\"<kilogram>\"], [\"<second>\",\"<second>\",\"<second>\",\"<ampere>\"]],\n\n    /* resistance */\n    \"<ohm>\" :  [\n      [\"Ohm\",\"ohm\",\"\\u03A9\"/*Ω as greek letter*/,\"\\u2126\"/*Ω as ohm sign*/],\n      1.0,\n      \"resistance\",\n      [\"<meter>\",\"<meter>\",\"<kilogram>\"],[\"<second>\",\"<second>\",\"<second>\",\"<ampere>\",\"<ampere>\"]\n    ],\n    /* magnetism */\n    \"<weber>\" : [[\"Wb\",\"weber\",\"webers\"], 1.0, \"magnetism\", [\"<meter>\",\"<meter>\",\"<kilogram>\"], [\"<second>\",\"<second>\",\"<ampere>\"]],\n    \"<tesla>\"  : [[\"T\",\"tesla\",\"teslas\"], 1.0, \"magnetism\", [\"<kilogram>\"], [\"<second>\",\"<second>\",\"<ampere>\"]],\n    \"<gauss>\" : [[\"G\",\"gauss\"], 1e-4, \"magnetism\",  [\"<kilogram>\"], [\"<second>\",\"<second>\",\"<ampere>\"]],\n    \"<maxwell>\" : [[\"Mx\",\"maxwell\",\"maxwells\"], 1e-8, \"magnetism\", [\"<meter>\",\"<meter>\",\"<kilogram>\"], [\"<second>\",\"<second>\",\"<ampere>\"]],\n    \"<oersted>\"  : [[\"Oe\",\"oersted\",\"oersteds\"], 250.0 / Math.PI, \"magnetism\", [\"<ampere>\"], [\"<meter>\"]],\n\n    /* energy */\n    \"<joule>\" :  [[\"J\",\"joule\",\"Joule\",\"joules\"], 1.0, \"energy\", [\"<meter>\",\"<meter>\",\"<kilogram>\"], [\"<second>\",\"<second>\"]],\n    \"<erg>\"   :  [[\"erg\",\"ergs\"], 1e-7, \"energy\", [\"<meter>\",\"<meter>\",\"<kilogram>\"], [\"<second>\",\"<second>\"]],\n    \"<btu>\"   :  [[\"BTU\",\"btu\",\"BTUs\"], 1055.056, \"energy\", [\"<meter>\",\"<meter>\",\"<kilogram>\"], [\"<second>\",\"<second>\"]],\n    \"<calorie>\" :  [[\"cal\",\"calorie\",\"calories\"], 4.18400, \"energy\",[\"<meter>\",\"<meter>\",\"<kilogram>\"], [\"<second>\",\"<second>\"]],\n    \"<Calorie>\" :  [[\"Cal\",\"Calorie\",\"Calories\"], 4184.00, \"energy\",[\"<meter>\",\"<meter>\",\"<kilogram>\"], [\"<second>\",\"<second>\"]],\n    \"<therm-US>\" : [[\"th\",\"therm\",\"therms\",\"Therm\",\"therm-US\"], 105480400, \"energy\",[\"<meter>\",\"<meter>\",\"<kilogram>\"], [\"<second>\",\"<second>\"]],\n    \"<Wh>\" : [[\"Wh\"], 3600, \"energy\",[\"<meter>\",\"<meter>\",\"<kilogram>\"], [\"<second>\",\"<second>\"]],\n\n    /* force */\n    \"<newton>\"  : [[\"N\",\"Newton\",\"newton\"], 1.0, \"force\", [\"<kilogram>\",\"<meter>\"], [\"<second>\",\"<second>\"]],\n    \"<dyne>\"  : [[\"dyn\",\"dyne\"], 1e-5, \"force\", [\"<kilogram>\",\"<meter>\"], [\"<second>\",\"<second>\"]],\n    \"<pound-force>\"  : [[\"lbf\",\"pound-force\"], 4.448222, \"force\", [\"<kilogram>\",\"<meter>\"], [\"<second>\",\"<second>\"]],\n\n    /* frequency */\n    \"<hertz>\" : [[\"Hz\",\"hertz\",\"Hertz\"], 1.0, \"frequency\", [\"<1>\"], [\"<second>\"]],\n\n    /* angle */\n    \"<radian>\" :[[\"rad\",\"radian\",\"radians\"], 1.0, \"angle\", [\"<radian>\"]],\n    \"<degree>\" :[[\"deg\",\"degree\",\"degrees\"], Math.PI / 180.0, \"angle\", [\"<radian>\"]],\n    \"<gradian>\"   :[[\"gon\",\"grad\",\"gradian\",\"grads\"], Math.PI / 200.0, \"angle\", [\"<radian>\"]],\n    \"<steradian>\"  : [[\"sr\",\"steradian\",\"steradians\"], 1.0, \"solid_angle\", [\"<steradian>\"]],\n\n    /* rotation */\n    \"<rotation>\" : [[\"rotation\"], 2.0 * Math.PI, \"angle\", [\"<radian>\"]],\n    \"<rpm>\"   :[[\"rpm\"], 2.0 * Math.PI / 60.0, \"angular_velocity\", [\"<radian>\"], [\"<second>\"]],\n\n    /* information */\n    \"<byte>\"  :[[\"B\",\"byte\",\"bytes\"], 1.0, \"information\", [\"<byte>\"]],\n    \"<bit>\"  :[[\"b\",\"bit\",\"bits\"], 0.125, \"information\", [\"<byte>\"]],\n\n    /* information rate */\n    \"<Bps>\" : [[\"Bps\"], 1.0, \"information_rate\", [\"<byte>\"], [\"<second>\"]],\n    \"<bps>\" : [[\"bps\"], 0.125, \"information_rate\", [\"<byte>\"], [\"<second>\"]],\n\n    /* currency */\n    \"<dollar>\":[[\"USD\",\"dollar\"], 1.0, \"currency\", [\"<dollar>\"]],\n    \"<cents>\" :[[\"cents\"], 0.01, \"currency\", [\"<dollar>\"]],\n\n    /* luminosity */\n    \"<candela>\" : [[\"cd\",\"candela\"], 1.0, \"luminosity\", [\"<candela>\"]],\n    \"<lumen>\" : [[\"lm\",\"lumen\"], 1.0, \"luminous_power\", [\"<candela>\",\"<steradian>\"]],\n    \"<lux>\" :[[\"lux\"], 1.0, \"illuminance\", [\"<candela>\",\"<steradian>\"], [\"<meter>\",\"<meter>\"]],\n\n    /* power */\n    \"<watt>\"  : [[\"W\",\"watt\",\"watts\"], 1.0, \"power\", [\"<kilogram>\",\"<meter>\",\"<meter>\"], [\"<second>\",\"<second>\",\"<second>\"]],\n    \"<volt-ampere>\"  : [[\"VA\",\"volt-ampere\"], 1.0, \"power\", [\"<kilogram>\",\"<meter>\",\"<meter>\"], [\"<second>\",\"<second>\",\"<second>\"]],\n    \"<volt-ampere-reactive>\"  : [[\"var\",\"Var\",\"VAr\",\"VAR\",\"volt-ampere-reactive\"], 1.0, \"power\", [\"<kilogram>\",\"<meter>\",\"<meter>\"], [\"<second>\",\"<second>\",\"<second>\"]],\n    \"<horsepower>\"  :  [[\"hp\",\"horsepower\"], 745.699872, \"power\", [\"<kilogram>\",\"<meter>\",\"<meter>\"], [\"<second>\",\"<second>\",\"<second>\"]],\n\n    /* radiation */\n    \"<gray>\" : [[\"Gy\",\"gray\",\"grays\"], 1.0, \"radiation\", [\"<meter>\",\"<meter>\"], [\"<second>\",\"<second>\"]],\n    \"<roentgen>\" : [[\"R\",\"roentgen\"], 0.009330, \"radiation\", [\"<meter>\",\"<meter>\"], [\"<second>\",\"<second>\"]],\n    \"<sievert>\" : [[\"Sv\",\"sievert\",\"sieverts\"], 1.0, \"radiation\", [\"<meter>\",\"<meter>\"], [\"<second>\",\"<second>\"]],\n    \"<becquerel>\" : [[\"Bq\",\"becquerel\",\"becquerels\"], 1.0, \"radiation\", [\"<1>\"],[\"<second>\"]],\n    \"<curie>\" : [[\"Ci\",\"curie\",\"curies\"], 3.7e10, \"radiation\", [\"<1>\"],[\"<second>\"]],\n\n    /* rate */\n    \"<cpm>\" : [[\"cpm\"], 1.0 / 60.0, \"rate\", [\"<count>\"],[\"<second>\"]],\n    \"<dpm>\" : [[\"dpm\"], 1.0 / 60.0, \"rate\", [\"<count>\"],[\"<second>\"]],\n    \"<bpm>\" : [[\"bpm\"], 1.0 / 60.0, \"rate\", [\"<count>\"],[\"<second>\"]],\n\n    /* resolution / typography */\n    \"<dot>\" : [[\"dot\",\"dots\"], 1, \"resolution\", [\"<each>\"]],\n    \"<pixel>\" : [[\"pixel\",\"px\"], 1, \"resolution\", [\"<each>\"]],\n    \"<ppi>\" : [[\"ppi\"], 1, \"resolution\", [\"<pixel>\"], [\"<inch>\"]],\n    \"<dpi>\" : [[\"dpi\"], 1, \"typography\", [\"<dot>\"], [\"<inch>\"]],\n\n    /* other */\n    \"<cell>\" : [[\"cells\",\"cell\"], 1, \"counting\", [\"<each>\"]],\n    \"<each>\" : [[\"each\"], 1.0, \"counting\", [\"<each>\"]],\n    \"<count>\" : [[\"count\"], 1.0, \"counting\", [\"<each>\"]],\n    \"<base-pair>\"  : [[\"bp\",\"base-pair\"], 1.0, \"counting\", [\"<each>\"]],\n    \"<nucleotide>\" : [[\"nt\",\"nucleotide\"], 1.0, \"counting\", [\"<each>\"]],\n    \"<molecule>\" : [[\"molecule\",\"molecules\"], 1.0, \"counting\", [\"<1>\"]],\n    \"<dozen>\" :  [[\"doz\",\"dz\",\"dozen\"],12.0,\"prefix_only\", [\"<each>\"]],\n    \"<percent>\": [[\"%\",\"percent\"], 0.01, \"prefix_only\", [\"<1>\"]],\n    \"<ppm>\" :  [[\"ppm\"],1e-6, \"prefix_only\", [\"<1>\"]],\n    \"<ppt>\" :  [[\"ppt\"],1e-9, \"prefix_only\", [\"<1>\"]],\n    \"<gross>\" :  [[\"gr\",\"gross\"],144.0, \"prefix_only\", [\"<dozen>\",\"<dozen>\"]],\n    \"<decibel>\"  : [[\"dB\",\"decibel\",\"decibels\"], 1.0, \"logarithmic\", [\"<decibel>\"]]\n  };\n\n  var BASE_UNITS = [\"<meter>\",\"<kilogram>\",\"<second>\",\"<mole>\", \"<ampere>\",\"<radian>\",\"<kelvin>\",\"<temp-K>\",\"<byte>\",\"<dollar>\",\"<candela>\",\"<each>\",\"<steradian>\",\"<decibel>\"];\n\n  var UNITY = \"<1>\";\n  var UNITY_ARRAY = [UNITY];\n\n  // Setup\n\n  /**\n   * Asserts unit definition is valid\n   *\n   * @param {string} unitDef - Name of unit to test\n   * @param {Object} definition - Definition of unit to test\n   *\n   * @returns {void}\n   * @throws {QtyError} if unit definition is not valid\n   */\n  function validateUnitDefinition(unitDef, definition) {\n    var scalar = definition[1];\n    var numerator = definition[3] || [];\n    var denominator = definition[4] || [];\n    if (!isNumber(scalar)) {\n      throw new QtyError(unitDef + \": Invalid unit definition. \" +\n                         \"'scalar' must be a number\");\n    }\n\n    numerator.forEach(function(unit) {\n      if (UNITS[unit] === undefined) {\n        throw new QtyError(unitDef + \": Invalid unit definition. \" +\n                           \"Unit \" + unit + \" in 'numerator' is not recognized\");\n      }\n    });\n\n    denominator.forEach(function(unit) {\n      if (UNITS[unit] === undefined) {\n        throw new QtyError(unitDef + \": Invalid unit definition. \" +\n                           \"Unit \" + unit + \" in 'denominator' is not recognized\");\n      }\n    });\n  }\n\n  var PREFIX_VALUES = {};\n  var PREFIX_MAP = {};\n  var UNIT_VALUES = {};\n  var UNIT_MAP = {};\n  var OUTPUT_MAP = {};\n  for (var unitDef in UNITS) {\n    if (UNITS.hasOwnProperty(unitDef)) {\n      var definition = UNITS[unitDef];\n      if (definition[2] === \"prefix\") {\n        PREFIX_VALUES[unitDef] = definition[1];\n        for (var i = 0; i < definition[0].length; i++) {\n          PREFIX_MAP[definition[0][i]] = unitDef;\n        }\n      }\n      else {\n        validateUnitDefinition(unitDef, definition);\n        UNIT_VALUES[unitDef] = {\n          scalar: definition[1],\n          numerator: definition[3],\n          denominator: definition[4]\n        };\n        for (var j = 0; j < definition[0].length; j++) {\n          UNIT_MAP[definition[0][j]] = unitDef;\n        }\n      }\n      OUTPUT_MAP[unitDef] = definition[0][0];\n    }\n  }\n\n  /**\n   * Returns a list of available units of kind\n   *\n   * @param {string} [kind] - kind of units\n   * @returns {array} names of units\n   * @throws {QtyError} if kind is unknown\n   */\n  function getUnits(kind) {\n    var i;\n    var units = [];\n    var unitKeys = Object.keys(UNITS);\n    if (typeof kind === \"undefined\") {\n      for (i = 0; i < unitKeys.length; i++) {\n        if ([\"\", \"prefix\"].indexOf(UNITS[unitKeys[i]][2]) === -1) {\n          units.push(unitKeys[i].substr(1, unitKeys[i].length - 2));\n        }\n      }\n    }\n    else if (this.getKinds().indexOf(kind) === -1) {\n      throw new QtyError(\"Kind not recognized\");\n    }\n    else {\n      for (i = 0; i < unitKeys.length; i++) {\n        if (UNITS[unitKeys[i]][2] === kind) {\n          units.push(unitKeys[i].substr(1, unitKeys[i].length - 2));\n        }\n      }\n    }\n\n    return units.sort(function(a, b) {\n      if (a.toLowerCase() < b.toLowerCase()) {\n        return -1;\n      }\n      if (a.toLowerCase() > b.toLowerCase()) {\n        return 1;\n      }\n      return 0;\n    });\n  }\n\n  /**\n   * Returns a list of alternative names for a unit\n   *\n   * @param {string} unitName - name of unit\n   * @returns {string[]} aliases for unit\n   * @throws {QtyError} if unit is unknown\n   */\n  function getAliases(unitName) {\n    if (!UNIT_MAP[unitName]) {\n      throw new QtyError(\"Unit not recognized\");\n    }\n    return UNITS[UNIT_MAP[unitName]][0];\n  }\n\n  var SIGNATURE_VECTOR = [\"length\", \"time\", \"temperature\", \"mass\", \"current\", \"substance\", \"luminosity\", \"currency\", \"information\", \"angle\"];\n\n  /*\n  calculates the unit signature id for use in comparing compatible units and simplification\n  the signature is based on a simple classification of units and is based on the following publication\n\n  Novak, G.S., Jr. \"Conversion of units of measurement\", IEEE Transactions on Software Engineering,\n  21(8), Aug 1995, pp.651-661\n  doi://10.1109/32.403789\n  http://ieeexplore.ieee.org/Xplore/login.jsp?url=/iel1/32/9079/00403789.pdf?isnumber=9079&prod=JNL&arnumber=403789&arSt=651&ared=661&arAuthor=Novak%2C+G.S.%2C+Jr.\n  */\n  function unitSignature() {\n    if (this.signature) {\n      return this.signature;\n    }\n    var vector = unitSignatureVector.call(this);\n    for (var i = 0; i < vector.length; i++) {\n      vector[i] *= Math.pow(20, i);\n    }\n\n    return vector.reduce(\n      function(previous, current) {\n        return previous + current;\n      },\n      0\n    );\n  }\n\n  // calculates the unit signature vector used by unit_signature\n  function unitSignatureVector() {\n    if (!this.isBase()) {\n      return unitSignatureVector.call(this.toBase());\n    }\n\n    var vector = new Array(SIGNATURE_VECTOR.length);\n    for (var i = 0; i < vector.length; i++) {\n      vector[i] = 0;\n    }\n    var r, n;\n    for (var j = 0; j < this.numerator.length; j++) {\n      if ((r = UNITS[this.numerator[j]])) {\n        n = SIGNATURE_VECTOR.indexOf(r[2]);\n        if (n >= 0) {\n          vector[n] = vector[n] + 1;\n        }\n      }\n    }\n\n    for (var k = 0; k < this.denominator.length; k++) {\n      if ((r = UNITS[this.denominator[k]])) {\n        n = SIGNATURE_VECTOR.indexOf(r[2]);\n        if (n >= 0) {\n          vector[n] = vector[n] - 1;\n        }\n      }\n    }\n    return vector;\n  }\n\n  var SIGN = \"[+-]\";\n  var INTEGER = \"\\\\d+\";\n  var SIGNED_INTEGER = SIGN + \"?\" + INTEGER;\n  var FRACTION = \"\\\\.\" + INTEGER;\n  var FLOAT = \"(?:\" + INTEGER + \"(?:\" + FRACTION + \")?\" + \")\" +\n              \"|\" +\n              \"(?:\" + FRACTION + \")\";\n  var EXPONENT = \"[Ee]\" + SIGNED_INTEGER;\n  var SCI_NUMBER = \"(?:\" + FLOAT + \")(?:\" + EXPONENT + \")?\";\n  var SIGNED_NUMBER = SIGN + \"?\\\\s*\" + SCI_NUMBER;\n  var QTY_STRING = \"(\" + SIGNED_NUMBER + \")?\" + \"\\\\s*([^/]*)(?:\\/(.+))?\";\n  var QTY_STRING_REGEX = new RegExp(\"^\" + QTY_STRING + \"$\");\n\n  var POWER_OP = \"\\\\^|\\\\*{2}\";\n  // Allow unit powers representing scalar, length, area, volume; 4 is for some\n  // special case representations in SI base units.\n  var SAFE_POWER = \"[01234]\";\n  var TOP_REGEX = new RegExp (\"([^ \\\\*\\\\d]+?)(?:\" + POWER_OP + \")?(-?\" + SAFE_POWER + \"(?![a-zA-Z]))\");\n  var BOTTOM_REGEX = new RegExp(\"([^ \\\\*\\\\d]+?)(?:\" + POWER_OP + \")?(\" + SAFE_POWER + \"(?![a-zA-Z]))\");\n\n  /* parse a string into a unit object.\n   * Typical formats like :\n   * \"5.6 kg*m/s^2\"\n   * \"5.6 kg*m*s^-2\"\n   * \"5.6 kilogram*meter*second^-2\"\n   * \"2.2 kPa\"\n   * \"37 degC\"\n   * \"1\"  -- creates a unitless constant with value 1\n   * \"GPa\"  -- creates a unit with scalar 1 with units 'GPa'\n   * 6'4\"  -- recognized as 6 feet + 4 inches\n   * 8 lbs 8 oz -- recognized as 8 lbs + 8 ounces\n   */\n  function parse(val) {\n    if (!isString(val)) {\n      val = val.toString();\n    }\n    val = val.trim();\n\n    var result = QTY_STRING_REGEX.exec(val);\n    if (!result) {\n      throw new QtyError(val + \": Quantity not recognized\");\n    }\n\n    var scalarMatch = result[1];\n    if (scalarMatch) {\n      // Allow whitespaces between sign and scalar for loose parsing\n      scalarMatch = scalarMatch.replace(/\\s/g, \"\");\n      this.scalar = parseFloat(scalarMatch);\n    }\n    else {\n      this.scalar = 1;\n    }\n    var top = result[2];\n    var bottom = result[3];\n\n    var n, x, nx;\n    // TODO DRY me\n    while ((result = TOP_REGEX.exec(top))) {\n      n = parseFloat(result[2]);\n      if (isNaN(n)) {\n        // Prevents infinite loops\n        throw new QtyError(\"Unit exponent is not a number\");\n      }\n      // Disallow unrecognized unit even if exponent is 0\n      if (n === 0 && !UNIT_TEST_REGEX.test(result[1])) {\n        throw new QtyError(\"Unit not recognized\");\n      }\n      x = result[1] + \" \";\n      nx = \"\";\n      for (var i = 0; i < Math.abs(n) ; i++) {\n        nx += x;\n      }\n      if (n >= 0) {\n        top = top.replace(result[0], nx);\n      }\n      else {\n        bottom = bottom ? bottom + nx : nx;\n        top = top.replace(result[0], \"\");\n      }\n    }\n\n    while ((result = BOTTOM_REGEX.exec(bottom))) {\n      n = parseFloat(result[2]);\n      if (isNaN(n)) {\n        // Prevents infinite loops\n        throw new QtyError(\"Unit exponent is not a number\");\n      }\n      // Disallow unrecognized unit even if exponent is 0\n      if (n === 0 && !UNIT_TEST_REGEX.test(result[1])) {\n        throw new QtyError(\"Unit not recognized\");\n      }\n      x = result[1] + \" \";\n      nx = \"\";\n      for (var j = 0; j < n ; j++) {\n        nx += x;\n      }\n\n      bottom = bottom.replace(result[0], nx);\n    }\n\n    if (top) {\n      this.numerator = parseUnits(top.trim());\n    }\n    if (bottom) {\n      this.denominator = parseUnits(bottom.trim());\n    }\n  }\n\n  var PREFIX_REGEX = Object.keys(PREFIX_MAP).sort(function(a, b) {\n    return b.length - a.length;\n  }).join(\"|\");\n  var UNIT_REGEX = Object.keys(UNIT_MAP).sort(function(a, b) {\n    return b.length - a.length;\n  }).join(\"|\");\n  /*\n   * Minimal boundary regex to support units with Unicode characters\n   * \\b only works for ASCII\n   */\n  var BOUNDARY_REGEX = \"\\\\b|$\";\n  var UNIT_MATCH = \"(\" + PREFIX_REGEX + \")??(\" +\n                   UNIT_REGEX +\n                   \")(?:\" + BOUNDARY_REGEX + \")\";\n  var UNIT_TEST_REGEX = new RegExp(\"^\\\\s*(\" + UNIT_MATCH + \"[\\\\s\\\\*]*)+$\");\n  var UNIT_MATCH_REGEX = new RegExp(UNIT_MATCH, \"g\"); // g flag for multiple occurences\n  var parsedUnitsCache = {};\n  /**\n   * Parses and converts units string to normalized unit array.\n   * Result is cached to speed up next calls.\n   *\n   * @param {string} units Units string\n   * @returns {string[]} Array of normalized units\n   *\n   * @example\n   * // Returns [\"<second>\", \"<meter>\", \"<second>\"]\n   * parseUnits(\"s m s\");\n   *\n   */\n  function parseUnits(units) {\n    var cached = parsedUnitsCache[units];\n    if (cached) {\n      return cached;\n    }\n\n    var unitMatch, normalizedUnits = [];\n\n    // Scan\n    if (!UNIT_TEST_REGEX.test(units)) {\n      throw new QtyError(\"Unit not recognized\");\n    }\n\n    while ((unitMatch = UNIT_MATCH_REGEX.exec(units))) {\n      normalizedUnits.push(unitMatch.slice(1));\n    }\n\n    normalizedUnits = normalizedUnits.map(function(item) {\n      return PREFIX_MAP[item[0]] ? [PREFIX_MAP[item[0]], UNIT_MAP[item[1]]] : [UNIT_MAP[item[1]]];\n    });\n\n    // Flatten and remove null elements\n    normalizedUnits = normalizedUnits.reduce(function(a,b) {\n      return a.concat(b);\n    }, []);\n    normalizedUnits = normalizedUnits.filter(function(item) {\n      return item;\n    });\n\n    parsedUnitsCache[units] = normalizedUnits;\n\n    return normalizedUnits;\n  }\n\n  /**\n   * Parses a string as a quantity\n   * @param {string} value - quantity as text\n   * @throws if value is not a string\n   * @returns {Qty|null} Parsed quantity or null if unrecognized\n   */\n  function globalParse(value) {\n    if (!isString(value)) {\n      throw new QtyError(\"Argument should be a string\");\n    }\n\n    try {\n      return this(value);\n    }\n    catch (e) {\n      return null;\n    }\n  }\n\n  /**\n   * Tests if a value is a Qty instance\n   *\n   * @param {*} value - Value to test\n   *\n   * @returns {boolean} true if value is a Qty instance, false otherwise\n   */\n  function isQty(value) {\n    return value instanceof Qty;\n  }\n\n  function Qty(initValue, initUnits) {\n    assertValidConstructorArgs.apply(null, arguments);\n\n    if (!(isQty(this))) {\n      return new Qty(initValue, initUnits);\n    }\n\n    this.scalar = null;\n    this.baseScalar = null;\n    this.signature = null;\n    this._conversionCache = {};\n    this.numerator = UNITY_ARRAY;\n    this.denominator = UNITY_ARRAY;\n\n    if (isDefinitionObject(initValue)) {\n      this.scalar = initValue.scalar;\n      this.numerator = (initValue.numerator && initValue.numerator.length !== 0) ? initValue.numerator : UNITY_ARRAY;\n      this.denominator = (initValue.denominator && initValue.denominator.length !== 0) ? initValue.denominator : UNITY_ARRAY;\n    }\n    else if (initUnits) {\n      parse.call(this, initUnits);\n      this.scalar = initValue;\n    }\n    else {\n      parse.call(this, initValue);\n    }\n\n    // math with temperatures is very limited\n    if (this.denominator.join(\"*\").indexOf(\"temp\") >= 0) {\n      throw new QtyError(\"Cannot divide with temperatures\");\n    }\n    if (this.numerator.join(\"*\").indexOf(\"temp\") >= 0) {\n      if (this.numerator.length > 1) {\n        throw new QtyError(\"Cannot multiply by temperatures\");\n      }\n      if (!compareArray(this.denominator, UNITY_ARRAY)) {\n        throw new QtyError(\"Cannot divide with temperatures\");\n      }\n    }\n\n    this.initValue = initValue;\n    updateBaseScalar.call(this);\n\n    if (this.isTemperature() && this.baseScalar < 0) {\n      throw new QtyError(\"Temperatures must not be less than absolute zero\");\n    }\n  }\n\n  Qty.prototype = {\n    // Properly set up constructor\n    constructor: Qty,\n  };\n\n  /**\n   * Asserts constructor arguments are valid\n   *\n   * @param {*} value - Value to test\n   * @param {string} [units] - Optional units when value is passed as a number\n   *\n   * @returns {void}\n   * @throws {QtyError} if constructor arguments are invalid\n   */\n  function assertValidConstructorArgs(value, units) {\n    if (units) {\n      if (!(isNumber(value) && isString(units))) {\n        throw new QtyError(\"Only number accepted as initialization value \" +\n                           \"when units are explicitly provided\");\n      }\n    }\n    else {\n      if (!(isString(value) ||\n            isNumber(value) ||\n            isQty(value)    ||\n            isDefinitionObject(value))) {\n        throw new QtyError(\"Only string, number or quantity accepted as \" +\n                           \"single initialization value\");\n      }\n    }\n  }\n\n  /**\n   * Tests if a value is a Qty definition object\n   *\n   * @param {*} value - Value to test\n   *\n   * @returns {boolean} true if value is a definition object, false otherwise\n   */\n  function isDefinitionObject(value) {\n    return value && typeof value === \"object\" && value.hasOwnProperty(\"scalar\");\n  }\n\n  function updateBaseScalar() {\n    if (this.baseScalar) {\n      return this.baseScalar;\n    }\n    if (this.isBase()) {\n      this.baseScalar = this.scalar;\n      this.signature = unitSignature.call(this);\n    }\n    else {\n      var base = this.toBase();\n      this.baseScalar = base.scalar;\n      this.signature = base.signature;\n    }\n  }\n\n  var KINDS = {\n    \"-312078\": \"elastance\",\n    \"-312058\": \"resistance\",\n    \"-312038\": \"inductance\",\n    \"-152058\": \"potential\",\n    \"-152040\": \"magnetism\",\n    \"-152038\": \"magnetism\",\n    \"-7997\": \"specific_volume\",\n    \"-79\": \"snap\",\n    \"-59\": \"jolt\",\n    \"-39\": \"acceleration\",\n    \"-38\": \"radiation\",\n    \"-20\": \"frequency\",\n    \"-19\": \"speed\",\n    \"-18\": \"viscosity\",\n    \"-17\": \"volumetric_flow\",\n    \"-1\": \"wavenumber\",\n    \"0\": \"unitless\",\n    \"1\": \"length\",\n    \"2\": \"area\",\n    \"3\": \"volume\",\n    \"20\": \"time\",\n    \"400\": \"temperature\",\n    \"7941\": \"yank\",\n    \"7942\": \"power\",\n    \"7959\": \"pressure\",\n    \"7961\": \"force\",\n    \"7962\": \"energy\",\n    \"7979\": \"viscosity\",\n    \"7981\": \"momentum\",\n    \"7982\": \"angular_momentum\",\n    \"7997\": \"density\",\n    \"7998\": \"area_density\",\n    \"8000\": \"mass\",\n    \"152020\": \"radiation_exposure\",\n    \"159999\": \"magnetism\",\n    \"160000\": \"current\",\n    \"160020\": \"charge\",\n    \"312058\": \"conductance\",\n    \"312078\": \"capacitance\",\n    \"3199980\": \"activity\",\n    \"3199997\": \"molar_concentration\",\n    \"3200000\": \"substance\",\n    \"63999998\": \"illuminance\",\n    \"64000000\": \"luminous_power\",\n    \"1280000000\": \"currency\",\n    \"25599999980\": \"information_rate\",\n    \"25600000000\": \"information\",\n    \"511999999980\": \"angular_velocity\",\n    \"512000000000\": \"angle\"\n  };\n\n  /**\n   * Returns the list of available well-known kinds of units, e.g.\n   * \"radiation\" or \"length\".\n   *\n   * @returns {string[]} names of kinds of units\n   */\n  function getKinds() {\n    return uniq(Object.keys(KINDS).map(function(knownSignature) {\n      return KINDS[knownSignature];\n    }));\n  }\n\n  Qty.prototype.kind = function() {\n    return KINDS[this.signature.toString()];\n  };\n\n  assign(Qty.prototype, {\n    isDegrees: function() {\n      // signature may not have been calculated yet\n      return (this.signature === null || this.signature === 400) &&\n        this.numerator.length === 1 &&\n        compareArray(this.denominator, UNITY_ARRAY) &&\n        (this.numerator[0].match(/<temp-[CFRK]>/) || this.numerator[0].match(/<(kelvin|celsius|rankine|fahrenheit)>/));\n    },\n\n    isTemperature: function() {\n      return this.isDegrees() && this.numerator[0].match(/<temp-[CFRK]>/);\n    }\n  });\n\n  function subtractTemperatures(lhs,rhs) {\n    var lhsUnits = lhs.units();\n    var rhsConverted = rhs.to(lhsUnits);\n    var dstDegrees = Qty(getDegreeUnits(lhsUnits));\n    return Qty({\"scalar\": lhs.scalar - rhsConverted.scalar, \"numerator\": dstDegrees.numerator, \"denominator\": dstDegrees.denominator});\n  }\n\n  function subtractTempDegrees(temp,deg) {\n    var tempDegrees = deg.to(getDegreeUnits(temp.units()));\n    return Qty({\"scalar\": temp.scalar - tempDegrees.scalar, \"numerator\": temp.numerator, \"denominator\": temp.denominator});\n  }\n\n  function addTempDegrees(temp,deg) {\n    var tempDegrees = deg.to(getDegreeUnits(temp.units()));\n    return Qty({\"scalar\": temp.scalar + tempDegrees.scalar, \"numerator\": temp.numerator, \"denominator\": temp.denominator});\n  }\n\n  function getDegreeUnits(units) {\n    if (units === \"tempK\") {\n      return \"degK\";\n    }\n    else if (units === \"tempC\") {\n      return \"degC\";\n    }\n    else if (units === \"tempF\") {\n      return \"degF\";\n    }\n    else if (units === \"tempR\") {\n      return \"degR\";\n    }\n    else {\n      throw new QtyError(\"Unknown type for temp conversion from: \" + units);\n    }\n  }\n\n  function toDegrees(src,dst) {\n    var srcDegK = toDegK(src);\n    var dstUnits = dst.units();\n    var dstScalar;\n\n    if (dstUnits === \"degK\") {\n      dstScalar = srcDegK.scalar;\n    }\n    else if (dstUnits === \"degC\") {\n      dstScalar = srcDegK.scalar ;\n    }\n    else if (dstUnits === \"degF\") {\n      dstScalar = srcDegK.scalar * 9 / 5;\n    }\n    else if (dstUnits === \"degR\") {\n      dstScalar = srcDegK.scalar * 9 / 5;\n    }\n    else {\n      throw new QtyError(\"Unknown type for degree conversion to: \" + dstUnits);\n    }\n\n    return Qty({\"scalar\": dstScalar, \"numerator\": dst.numerator, \"denominator\": dst.denominator});\n  }\n\n  function toDegK(qty) {\n    var units = qty.units();\n    var q;\n    if (units.match(/(deg)[CFRK]/)) {\n      q = qty.baseScalar;\n    }\n    else if (units === \"tempK\") {\n      q = qty.scalar;\n    }\n    else if (units === \"tempC\") {\n      q = qty.scalar;\n    }\n    else if (units === \"tempF\") {\n      q = qty.scalar * 5 / 9;\n    }\n    else if (units === \"tempR\") {\n      q = qty.scalar * 5 / 9;\n    }\n    else {\n      throw new QtyError(\"Unknown type for temp conversion from: \" + units);\n    }\n\n    return Qty({\"scalar\": q, \"numerator\": [\"<kelvin>\"], \"denominator\": UNITY_ARRAY});\n  }\n\n  function toTemp(src,dst) {\n    var dstUnits = dst.units();\n    var dstScalar;\n\n    if (dstUnits === \"tempK\") {\n      dstScalar = src.baseScalar;\n    }\n    else if (dstUnits === \"tempC\") {\n      dstScalar = src.baseScalar - 273.15;\n    }\n    else if (dstUnits === \"tempF\") {\n      dstScalar = (src.baseScalar * 9 / 5) - 459.67;\n    }\n    else if (dstUnits === \"tempR\") {\n      dstScalar = src.baseScalar * 9 / 5;\n    }\n    else {\n      throw new QtyError(\"Unknown type for temp conversion to: \" + dstUnits);\n    }\n\n    return Qty({\"scalar\": dstScalar, \"numerator\": dst.numerator, \"denominator\": dst.denominator});\n  }\n\n  function toTempK(qty) {\n    var units = qty.units();\n    var q;\n    if (units.match(/(deg)[CFRK]/)) {\n      q = qty.baseScalar;\n    }\n    else if (units === \"tempK\") {\n      q = qty.scalar;\n    }\n    else if (units === \"tempC\") {\n      q = qty.scalar + 273.15;\n    }\n    else if (units === \"tempF\") {\n      q = (qty.scalar + 459.67) * 5 / 9;\n    }\n    else if (units === \"tempR\") {\n      q = qty.scalar * 5 / 9;\n    }\n    else {\n      throw new QtyError(\"Unknown type for temp conversion from: \" + units);\n    }\n\n    return Qty({\"scalar\": q, \"numerator\": [\"<temp-K>\"], \"denominator\": UNITY_ARRAY});\n  }\n\n  assign(Qty.prototype, {\n    /**\n     * Converts to other compatible units.\n     * Instance's converted quantities are cached for faster subsequent calls.\n     *\n     * @param {(string|Qty)} other - Target units as string or retrieved from\n     *                               other Qty instance (scalar is ignored)\n     *\n     * @returns {Qty} New converted Qty instance with target units\n     *\n     * @throws {QtyError} if target units are incompatible\n     *\n     * @example\n     * var weight = Qty(\"25 kg\");\n     * weight.to(\"lb\"); // => Qty(\"55.11556554621939 lbs\");\n     * weight.to(Qty(\"3 g\")); // => Qty(\"25000 g\"); // scalar of passed Qty is ignored\n     */\n    to: function(other) {\n      var cached, target;\n\n      if (other === undefined || other === null) {\n        return this;\n      }\n\n      if (!isString(other)) {\n        return this.to(other.units());\n      }\n\n      cached = this._conversionCache[other];\n      if (cached) {\n        return cached;\n      }\n\n      // Instantiating target to normalize units\n      target = Qty(other);\n      if (target.units() === this.units()) {\n        return this;\n      }\n\n      if (!this.isCompatible(target)) {\n        if (this.isInverse(target)) {\n          target = this.inverse().to(other);\n        }\n        else {\n          throwIncompatibleUnits(this.units(), target.units());\n        }\n      }\n      else {\n        if (target.isTemperature()) {\n          target = toTemp(this,target);\n        }\n        else if (target.isDegrees()) {\n          target = toDegrees(this,target);\n        }\n        else {\n          var q = divSafe(this.baseScalar, target.baseScalar);\n          target = Qty({\"scalar\": q, \"numerator\": target.numerator, \"denominator\": target.denominator});\n        }\n      }\n\n      this._conversionCache[other] = target;\n      return target;\n    },\n\n    // convert to base SI units\n    // results of the conversion are cached so subsequent calls to this will be fast\n    toBase: function() {\n      if (this.isBase()) {\n        return this;\n      }\n\n      if (this.isTemperature()) {\n        return toTempK(this);\n      }\n\n      var cached = baseUnitCache[this.units()];\n      if (!cached) {\n        cached = toBaseUnits(this.numerator,this.denominator);\n        baseUnitCache[this.units()] = cached;\n      }\n      return cached.mul(this.scalar);\n    },\n\n    // Converts the unit back to a float if it is unitless.  Otherwise raises an exception\n    toFloat: function() {\n      if (this.isUnitless()) {\n        return this.scalar;\n      }\n      throw new QtyError(\"Can't convert to Float unless unitless.  Use Unit#scalar\");\n    },\n\n    /**\n     * Returns the nearest multiple of quantity passed as\n     * precision\n     *\n     * @param {(Qty|string|number)} precQuantity - Quantity, string formated\n     *   quantity or number as expected precision\n     *\n     * @returns {Qty} Nearest multiple of precQuantity\n     *\n     * @example\n     * Qty('5.5 ft').toPrec('2 ft'); // returns 6 ft\n     * Qty('0.8 cu').toPrec('0.25 cu'); // returns 0.75 cu\n     * Qty('6.3782 m').toPrec('cm'); // returns 6.38 m\n     * Qty('1.146 MPa').toPrec('0.1 bar'); // returns 1.15 MPa\n     *\n     */\n    toPrec: function(precQuantity) {\n      if (isString(precQuantity)) {\n        precQuantity = Qty(precQuantity);\n      }\n      if (isNumber(precQuantity)) {\n        precQuantity = Qty(precQuantity + \" \" + this.units());\n      }\n\n      if (!this.isUnitless()) {\n        precQuantity = precQuantity.to(this.units());\n      }\n      else if (!precQuantity.isUnitless()) {\n        throwIncompatibleUnits(this.units(), precQuantity.units());\n      }\n\n      if (precQuantity.scalar === 0) {\n        throw new QtyError(\"Divide by zero\");\n      }\n\n      var precRoundedResult = mulSafe(\n        Math.round(this.scalar / precQuantity.scalar),\n        precQuantity.scalar\n      );\n\n      return Qty(precRoundedResult + this.units());\n    }\n  });\n\n  /**\n   * Configures and returns a fast function to convert\n   * Number values from units to others.\n   * Useful to efficiently convert large array of values\n   * with same units into others with iterative methods.\n   * Does not take care of rounding issues.\n   *\n   * @param {string} srcUnits Units of values to convert\n   * @param {string} dstUnits Units to convert to\n   *\n   * @returns {Function} Converting function accepting Number value\n   *   and returning converted value\n   *\n   * @throws \"Incompatible units\" if units are incompatible\n   *\n   * @example\n   * // Converting large array of numbers with the same units\n   * // into other units\n   * var converter = Qty.swiftConverter(\"m/h\", \"ft/s\");\n   * var convertedSerie = largeSerie.map(converter);\n   *\n   */\n  function swiftConverter(srcUnits, dstUnits) {\n    var srcQty = Qty(srcUnits);\n    var dstQty = Qty(dstUnits);\n\n    if (srcQty.eq(dstQty)) {\n      return identity;\n    }\n\n    var convert;\n    if (!srcQty.isTemperature()) {\n      convert = function(value) {\n        return value * srcQty.baseScalar / dstQty.baseScalar;\n      };\n    }\n    else {\n      convert = function(value) {\n        // TODO Not optimized\n        return srcQty.mul(value).to(dstQty).scalar;\n      };\n    }\n\n    return function converter(value) {\n      var i, length, result;\n      if (!Array.isArray(value)) {\n        return convert(value);\n      }\n      else {\n        length = value.length;\n        result = [];\n        for (i = 0; i < length; i++) {\n          result.push(convert(value[i]));\n        }\n        return result;\n      }\n    };\n  }\n\n  var baseUnitCache = {};\n\n  function toBaseUnits(numerator,denominator) {\n    var num = [];\n    var den = [];\n    var q = 1;\n    var unit;\n    for (var i = 0; i < numerator.length; i++) {\n      unit = numerator[i];\n      if (PREFIX_VALUES[unit]) {\n        // workaround to fix\n        // 0.1 * 0.1 => 0.010000000000000002\n        q = mulSafe(q, PREFIX_VALUES[unit]);\n      }\n      else {\n        if (UNIT_VALUES[unit]) {\n          q *= UNIT_VALUES[unit].scalar;\n\n          if (UNIT_VALUES[unit].numerator) {\n            num.push(UNIT_VALUES[unit].numerator);\n          }\n          if (UNIT_VALUES[unit].denominator) {\n            den.push(UNIT_VALUES[unit].denominator);\n          }\n        }\n      }\n    }\n    for (var j = 0; j < denominator.length; j++) {\n      unit = denominator[j];\n      if (PREFIX_VALUES[unit]) {\n        q /= PREFIX_VALUES[unit];\n      }\n      else {\n        if (UNIT_VALUES[unit]) {\n          q /= UNIT_VALUES[unit].scalar;\n\n          if (UNIT_VALUES[unit].numerator) {\n            den.push(UNIT_VALUES[unit].numerator);\n          }\n          if (UNIT_VALUES[unit].denominator) {\n            num.push(UNIT_VALUES[unit].denominator);\n          }\n        }\n      }\n    }\n\n    // Flatten\n    num = num.reduce(function(a,b) {\n      return a.concat(b);\n    }, []);\n    den = den.reduce(function(a,b) {\n      return a.concat(b);\n    }, []);\n\n    return Qty({\"scalar\": q, \"numerator\": num, \"denominator\": den});\n  }\n\n  Qty.parse = globalParse;\n\n  Qty.getUnits = getUnits;\n  Qty.getAliases = getAliases;\n\n  Qty.mulSafe = mulSafe;\n  Qty.divSafe = divSafe;\n\n  Qty.getKinds = getKinds;\n\n  Qty.swiftConverter = swiftConverter;\n\n  Qty.Error = QtyError;\n\n  assign(Qty.prototype, {\n    // Returns new instance with units of this\n    add: function(other) {\n      if (isString(other)) {\n        other = Qty(other);\n      }\n\n      if (!this.isCompatible(other)) {\n        throwIncompatibleUnits(this.units(), other.units());\n      }\n\n      if (this.isTemperature() && other.isTemperature()) {\n        throw new QtyError(\"Cannot add two temperatures\");\n      }\n      else if (this.isTemperature()) {\n        return addTempDegrees(this, other);\n      }\n      else if (other.isTemperature()) {\n        return addTempDegrees(other, this);\n      }\n\n      return Qty({\"scalar\": this.scalar + other.to(this).scalar, \"numerator\": this.numerator, \"denominator\": this.denominator});\n    },\n\n    sub: function(other) {\n      if (isString(other)) {\n        other = Qty(other);\n      }\n\n      if (!this.isCompatible(other)) {\n        throwIncompatibleUnits(this.units(), other.units());\n      }\n\n      if (this.isTemperature() && other.isTemperature()) {\n        return subtractTemperatures(this,other);\n      }\n      else if (this.isTemperature()) {\n        return subtractTempDegrees(this,other);\n      }\n      else if (other.isTemperature()) {\n        throw new QtyError(\"Cannot subtract a temperature from a differential degree unit\");\n      }\n\n      return Qty({\"scalar\": this.scalar - other.to(this).scalar, \"numerator\": this.numerator, \"denominator\": this.denominator});\n    },\n\n    mul: function(other) {\n      if (isNumber(other)) {\n        return Qty({\"scalar\": mulSafe(this.scalar, other), \"numerator\": this.numerator, \"denominator\": this.denominator});\n      }\n      else if (isString(other)) {\n        other = Qty(other);\n      }\n\n      if ((this.isTemperature() || other.isTemperature()) && !(this.isUnitless() || other.isUnitless())) {\n        throw new QtyError(\"Cannot multiply by temperatures\");\n      }\n\n      // Quantities should be multiplied with same units if compatible, with base units else\n      var op1 = this;\n      var op2 = other;\n\n      // so as not to confuse results, multiplication and division between temperature degrees will maintain original unit info in num/den\n      // multiplication and division between deg[CFRK] can never factor each other out, only themselves: \"degK*degC/degC^2\" == \"degK/degC\"\n      if (op1.isCompatible(op2) && op1.signature !== 400) {\n        op2 = op2.to(op1);\n      }\n      var numdenscale = cleanTerms(op1.numerator, op1.denominator, op2.numerator, op2.denominator);\n\n      return Qty({\"scalar\": mulSafe(op1.scalar, op2.scalar, numdenscale[2]), \"numerator\": numdenscale[0], \"denominator\": numdenscale[1]});\n    },\n\n    div: function(other) {\n      if (isNumber(other)) {\n        if (other === 0) {\n          throw new QtyError(\"Divide by zero\");\n        }\n        return Qty({\"scalar\": this.scalar / other, \"numerator\": this.numerator, \"denominator\": this.denominator});\n      }\n      else if (isString(other)) {\n        other = Qty(other);\n      }\n\n      if (other.scalar === 0) {\n        throw new QtyError(\"Divide by zero\");\n      }\n\n      if (other.isTemperature()) {\n        throw new QtyError(\"Cannot divide with temperatures\");\n      }\n      else if (this.isTemperature() && !other.isUnitless()) {\n        throw new QtyError(\"Cannot divide with temperatures\");\n      }\n\n      // Quantities should be multiplied with same units if compatible, with base units else\n      var op1 = this;\n      var op2 = other;\n\n      // so as not to confuse results, multiplication and division between temperature degrees will maintain original unit info in num/den\n      // multiplication and division between deg[CFRK] can never factor each other out, only themselves: \"degK*degC/degC^2\" == \"degK/degC\"\n      if (op1.isCompatible(op2) && op1.signature !== 400) {\n        op2 = op2.to(op1);\n      }\n      var numdenscale = cleanTerms(op1.numerator, op1.denominator, op2.denominator, op2.numerator);\n\n      return Qty({\"scalar\": mulSafe(op1.scalar, numdenscale[2]) / op2.scalar, \"numerator\": numdenscale[0], \"denominator\": numdenscale[1]});\n    },\n\n    // Returns a Qty that is the inverse of this Qty,\n    inverse: function() {\n      if (this.isTemperature()) {\n        throw new QtyError(\"Cannot divide with temperatures\");\n      }\n      if (this.scalar === 0) {\n        throw new QtyError(\"Divide by zero\");\n      }\n      return Qty({\"scalar\": 1 / this.scalar, \"numerator\": this.denominator, \"denominator\": this.numerator});\n    }\n  });\n\n  function cleanTerms(num1, den1, num2, den2) {\n    function notUnity(val) {\n      return val !== UNITY;\n    }\n\n    num1 = num1.filter(notUnity);\n    num2 = num2.filter(notUnity);\n    den1 = den1.filter(notUnity);\n    den2 = den2.filter(notUnity);\n\n    var combined = {};\n\n    function combineTerms(terms, direction) {\n      var k;\n      var prefix;\n      var prefixValue;\n      for (var i = 0; i < terms.length; i++) {\n        if (PREFIX_VALUES[terms[i]]) {\n          k = terms[i + 1];\n          prefix = terms[i];\n          prefixValue = PREFIX_VALUES[prefix];\n          i++;\n        }\n        else {\n          k = terms[i];\n          prefix = null;\n          prefixValue = 1;\n        }\n        if (k && k !== UNITY) {\n          if (combined[k]) {\n            combined[k][0] += direction;\n            var combinedPrefixValue = combined[k][2] ? PREFIX_VALUES[combined[k][2]] : 1;\n            combined[k][direction === 1 ? 3 : 4] *= divSafe(prefixValue, combinedPrefixValue);\n          }\n          else {\n            combined[k] = [direction, k, prefix, 1, 1];\n          }\n        }\n      }\n    }\n\n    combineTerms(num1, 1);\n    combineTerms(den1, -1);\n    combineTerms(num2, 1);\n    combineTerms(den2, -1);\n\n    var num = [];\n    var den = [];\n    var scale = 1;\n\n    for (var prop in combined) {\n      if (combined.hasOwnProperty(prop)) {\n        var item = combined[prop];\n        var n;\n        if (item[0] > 0) {\n          for (n = 0; n < item[0]; n++) {\n            num.push(item[2] === null ? item[1] : [item[2], item[1]]);\n          }\n        }\n        else if (item[0] < 0) {\n          for (n = 0; n < -item[0]; n++) {\n            den.push(item[2] === null ? item[1] : [item[2], item[1]]);\n          }\n        }\n        scale *= divSafe(item[3], item[4]);\n      }\n    }\n\n    if (num.length === 0) {\n      num = UNITY_ARRAY;\n    }\n    if (den.length === 0) {\n      den = UNITY_ARRAY;\n    }\n\n    // Flatten\n    num = num.reduce(function(a,b) {\n      return a.concat(b);\n    }, []);\n    den = den.reduce(function(a,b) {\n      return a.concat(b);\n    }, []);\n\n    return [num, den, scale];\n  }\n\n  assign(Qty.prototype, {\n    eq: function(other) {\n      return this.compareTo(other) === 0;\n    },\n\n    lt: function(other) {\n      return this.compareTo(other) === -1;\n    },\n\n    lte: function(other) {\n      return this.eq(other) || this.lt(other);\n    },\n\n    gt: function(other) {\n      return this.compareTo(other) === 1;\n    },\n\n    gte: function(other) {\n      return this.eq(other) || this.gt(other);\n    },\n\n    // Compare two Qty objects. Throws an exception if they are not of compatible types.\n    // Comparisons are done based on the value of the quantity in base SI units.\n    //\n    // NOTE: We cannot compare inverses as that breaks the general compareTo contract:\n    //   if a.compareTo(b) < 0 then b.compareTo(a) > 0\n    //   if a.compareTo(b) == 0 then b.compareTo(a) == 0\n    //\n    //   Since \"10S\" == \".1ohm\" (10 > .1) and \"10ohm\" == \".1S\" (10 > .1)\n    //     Qty(\"10S\").inverse().compareTo(\"10ohm\") == -1\n    //     Qty(\"10ohm\").inverse().compareTo(\"10S\") == -1\n    //\n    //   If including inverses in the sort is needed, I suggest writing: Qty.sort(qtyArray,units)\n    compareTo: function(other) {\n      if (isString(other)) {\n        return this.compareTo(Qty(other));\n      }\n      if (!this.isCompatible(other)) {\n        throwIncompatibleUnits(this.units(), other.units());\n      }\n      if (this.baseScalar < other.baseScalar) {\n        return -1;\n      }\n      else if (this.baseScalar === other.baseScalar) {\n        return 0;\n      }\n      else if (this.baseScalar > other.baseScalar) {\n        return 1;\n      }\n    },\n\n    // Return true if quantities and units match\n    // Unit(\"100 cm\").same(Unit(\"100 cm\"))  # => true\n    // Unit(\"100 cm\").same(Unit(\"1 m\"))     # => false\n    same: function(other) {\n      return (this.scalar === other.scalar) && (this.units() === other.units());\n    }\n  });\n\n  assign(Qty.prototype, {\n    // returns true if no associated units\n    // false, even if the units are \"unitless\" like 'radians, each, etc'\n    isUnitless: function() {\n      return [this.numerator, this.denominator].every(function(item) {\n        return compareArray(item, UNITY_ARRAY);\n      });\n    },\n\n    /*\n    check to see if units are compatible, but not the scalar part\n    this check is done by comparing signatures for performance reasons\n    if passed a string, it will create a unit object with the string and then do the comparison\n    this permits a syntax like:\n    unit =~ \"mm\"\n    if you want to do a regexp on the unit string do this ...\n    unit.units =~ /regexp/\n    */\n    isCompatible: function(other) {\n      if (isString(other)) {\n        return this.isCompatible(Qty(other));\n      }\n\n      if (!(isQty(other))) {\n        return false;\n      }\n\n      if (other.signature !== undefined) {\n        return this.signature === other.signature;\n      }\n      else {\n        return false;\n      }\n    },\n\n    /*\n    check to see if units are inverse of each other, but not the scalar part\n    this check is done by comparing signatures for performance reasons\n    if passed a string, it will create a unit object with the string and then do the comparison\n    this permits a syntax like:\n    unit =~ \"mm\"\n    if you want to do a regexp on the unit string do this ...\n    unit.units =~ /regexp/\n    */\n    isInverse: function(other) {\n      return this.inverse().isCompatible(other);\n    },\n\n    // Returns 'true' if the Unit is represented in base units\n    isBase: function() {\n      if (this._isBase !== undefined) {\n        return this._isBase;\n      }\n      if (this.isDegrees() && this.numerator[0].match(/<(kelvin|temp-K)>/)) {\n        this._isBase = true;\n        return this._isBase;\n      }\n\n      this.numerator.concat(this.denominator).forEach(function(item) {\n        if (item !== UNITY && BASE_UNITS.indexOf(item) === -1 ) {\n          this._isBase = false;\n        }\n      }, this);\n      if (this._isBase === false) {\n        return this._isBase;\n      }\n      this._isBase = true;\n      return this._isBase;\n    }\n  });\n\n  function NestedMap() {}\n\n  NestedMap.prototype.get = function(keys) {\n\n    // Allows to pass key1, key2, ... instead of [key1, key2, ...]\n    if (arguments.length > 1) {\n      // Slower with Firefox but faster with Chrome than\n      // Array.prototype.slice.call(arguments)\n      // See http://jsperf.com/array-apply-versus-array-prototype-slice-call\n      keys = Array.apply(null, arguments);\n    }\n\n    return keys.reduce(function(map, key, index) {\n      if (map) {\n\n        var childMap = map[key];\n\n        if (index === keys.length - 1) {\n          return childMap ? childMap.data : undefined;\n        }\n        else {\n          return childMap;\n        }\n      }\n    },\n    this);\n  };\n\n  NestedMap.prototype.set = function(keys, value) {\n\n    if (arguments.length > 2) {\n      keys = Array.prototype.slice.call(arguments, 0, -1);\n      value = arguments[arguments.length - 1];\n    }\n\n    return keys.reduce(function(map, key, index) {\n\n      var childMap = map[key];\n      if (childMap === undefined) {\n        childMap = map[key] = {};\n      }\n\n      if (index === keys.length - 1) {\n        childMap.data = value;\n        return value;\n      }\n      else {\n        return childMap;\n      }\n    }, this);\n  };\n\n  /**\n   * Default formatter\n   *\n   * @param {number} scalar - scalar value\n   * @param {string} units - units as string\n   *\n   * @returns {string} formatted result\n   */\n  function defaultFormatter(scalar, units) {\n    return (scalar + \" \" + units).trim();\n  }\n\n  /**\n   *\n   * Configurable Qty default formatter\n   *\n   * @type {function}\n   *\n   * @param {number} scalar\n   * @param {string} units\n   *\n   * @returns {string} formatted result\n   */\n  Qty.formatter = defaultFormatter;\n\n  assign(Qty.prototype, {\n\n    // returns the 'unit' part of the Unit object without the scalar\n    units: function() {\n      if (this._units !== undefined) {\n        return this._units;\n      }\n\n      var numIsUnity = compareArray(this.numerator, UNITY_ARRAY);\n      var denIsUnity = compareArray(this.denominator, UNITY_ARRAY);\n      if (numIsUnity && denIsUnity) {\n        this._units = \"\";\n        return this._units;\n      }\n\n      var numUnits = stringifyUnits(this.numerator);\n      var denUnits = stringifyUnits(this.denominator);\n      this._units = numUnits + (denIsUnity ? \"\" : (\"/\" + denUnits));\n      return this._units;\n    },\n\n    /**\n     * Stringifies the quantity\n     * Deprecation notice: only units parameter is supported.\n     *\n     * @param {(number|string|Qty)} targetUnitsOrMaxDecimalsOrPrec -\n     *                              target units if string,\n     *                              max number of decimals if number,\n     *                              passed to #toPrec before converting if Qty\n     *\n     * @param {number=} maxDecimals - Maximum number of decimals of\n     *                                formatted output\n     *\n     * @returns {string} reparseable quantity as string\n     */\n    toString: function(targetUnitsOrMaxDecimalsOrPrec, maxDecimals) {\n      var targetUnits;\n      if (isNumber(targetUnitsOrMaxDecimalsOrPrec)) {\n        targetUnits = this.units();\n        maxDecimals = targetUnitsOrMaxDecimalsOrPrec;\n      }\n      else if (isString(targetUnitsOrMaxDecimalsOrPrec)) {\n        targetUnits = targetUnitsOrMaxDecimalsOrPrec;\n      }\n      else if (isQty(targetUnitsOrMaxDecimalsOrPrec)) {\n        return this.toPrec(targetUnitsOrMaxDecimalsOrPrec).toString(maxDecimals);\n      }\n\n      var out = this.to(targetUnits);\n\n      var outScalar = maxDecimals !== undefined ? round(out.scalar, maxDecimals) : out.scalar;\n      out = (outScalar + \" \" + out.units()).trim();\n      return out;\n    },\n\n    /**\n     * Format the quantity according to optional passed target units\n     * and formatter\n     *\n     * @param {string} [targetUnits=current units] -\n     *                 optional units to convert to before formatting\n     *\n     * @param {function} [formatter=Qty.formatter] -\n     *                   delegates formatting to formatter callback.\n     *                   formatter is called back with two parameters (scalar, units)\n     *                   and should return formatted result.\n     *                   If unspecified, formatting is delegated to default formatter\n     *                   set to Qty.formatter\n     *\n     * @example\n     * var roundingAndLocalizingFormatter = function(scalar, units) {\n     *   // localize or limit scalar to n max decimals for instance\n     *   // return formatted result\n     * };\n     * var qty = Qty('1.1234 m');\n     * qty.format(); // same units, default formatter => \"1.234 m\"\n     * qty.format(\"cm\"); // converted to \"cm\", default formatter => \"123.45 cm\"\n     * qty.format(roundingAndLocalizingFormatter); // same units, custom formatter => \"1,2 m\"\n     * qty.format(\"cm\", roundingAndLocalizingFormatter); // convert to \"cm\", custom formatter => \"123,4 cm\"\n     *\n     * @returns {string} quantity as string\n     */\n    format: function(targetUnits, formatter) {\n      if (arguments.length === 1) {\n        if (typeof targetUnits === \"function\") {\n          formatter = targetUnits;\n          targetUnits = undefined;\n        }\n      }\n\n      formatter = formatter || Qty.formatter;\n      var targetQty = this.to(targetUnits);\n      return formatter.call(this, targetQty.scalar, targetQty.units());\n    }\n  });\n\n  var stringifiedUnitsCache = new NestedMap();\n  /**\n   * Returns a string representing a normalized unit array\n   *\n   * @param {string[]} units Normalized unit array\n   * @returns {string} String representing passed normalized unit array and\n   *   suitable for output\n   *\n   */\n  function stringifyUnits(units) {\n\n    var stringified = stringifiedUnitsCache.get(units);\n    if (stringified) {\n      return stringified;\n    }\n\n    var isUnity = compareArray(units, UNITY_ARRAY);\n    if (isUnity) {\n      stringified = \"1\";\n    }\n    else {\n      stringified = simplify(getOutputNames(units)).join(\"*\");\n    }\n\n    // Cache result\n    stringifiedUnitsCache.set(units, stringified);\n\n    return stringified;\n  }\n\n  function getOutputNames(units) {\n    var unitNames = [], token, tokenNext;\n    for (var i = 0; i < units.length; i++) {\n      token = units[i];\n      tokenNext = units[i + 1];\n      if (PREFIX_VALUES[token]) {\n        unitNames.push(OUTPUT_MAP[token] + OUTPUT_MAP[tokenNext]);\n        i++;\n      }\n      else {\n        unitNames.push(OUTPUT_MAP[token]);\n      }\n    }\n    return unitNames;\n  }\n\n  function simplify(units) {\n    // this turns ['s','m','s'] into ['s2','m']\n\n    var unitCounts = units.reduce(function(acc, unit) {\n      var unitCounter = acc[unit];\n      if (!unitCounter) {\n        acc.push(unitCounter = acc[unit] = [unit, 0]);\n      }\n\n      unitCounter[1]++;\n\n      return acc;\n    }, []);\n\n    return unitCounts.map(function(unitCount) {\n      return unitCount[0] + (unitCount[1] > 1 ? unitCount[1] : \"\");\n    });\n  }\n\n  Qty.version = \"1.7.5\";\n\n  return Qty;\n\n})));\n","import Qty from 'js-quantities';\n\nexport function convertUnit(array, fromUnit, toUnit) {\n  fromUnit = normalize(fromUnit);\n  toUnit = normalize(toUnit);\n\n  if (fromUnit === toUnit) return array;\n\n  try {\n    const convert = Qty.swiftConverter(fromUnit, toUnit); // Configures converter\n    return convert(array);\n  } catch (e) {\n    return undefined;\n  }\n}\n\nfunction normalize(unit) {\n  unit = unit.replace(/°C/g, 'tempC');\n  unit = unit.replace(/°F/g, 'tempF');\n  unit = unit.replace(/(^|\\W)K(\\W|$)/g, '$1tempK$2');\n  return unit;\n}\n","import max from 'ml-array-max';\nimport min from 'ml-array-min';\nimport { xIsMonotone } from 'ml-spectra-processing';\n\nimport { convertUnit } from './convertUnit';\n\nexport function getConvertedVariable(variable, newUnits) {\n  const data =\n    variable.units !== newUnits // would be nice if convertUnit would allow typedArray\n      ? convertUnit(Array.from(variable.data), variable.units, newUnits)\n      : variable.data;\n  return {\n    units: newUnits,\n    label: variable.label.replace(`[${variable.units}]`, `[${newUnits}]`),\n    data,\n    min: min(data),\n    max: max(data),\n    isMonotone: xIsMonotone(data),\n  };\n}\n","import { convertUnit } from './convertUnit';\nimport { getConvertedVariable } from './getConvertedVariable';\n\n/**\n * Retrieve a spectrum with only X/Y data based on xUnits / yUnits and convert units\n * if necessary\n * @param {Array} [spectra] Array of spectra\n * @param {object} [selector={}]\n * @param {string} [selector.units] Units separated by vs like for example \"g vs °C\"\n * @param {string} [selector.xUnits]\n * @param {string} [selector.yUnits]\n * @returns {Spectrum}\n */\n\nexport function getXYSpectrum(spectra = [], selector = {}) {\n  if (spectra.length < 1) return;\n  for (let spectrum of spectra) {\n    let { xUnits, yUnits, units } = selector;\n    if (units && !xUnits && !yUnits) [yUnits, xUnits] = units.split(/\\s+vs\\s+/);\n    let x;\n    let y;\n    let variableNames = Object.keys(spectrum.variables);\n    if (!variableNames.length > 1) continue;\n\n    if (xUnits === undefined) {\n      x = spectrum.variables[variableNames[0]];\n    } else {\n      for (let key in spectrum.variables) {\n        let converted = convertUnit(1, spectrum.variables[key].units, xUnits);\n        if (converted) {\n          x = getConvertedVariable(spectrum.variables[key], xUnits);\n          break;\n        }\n      }\n    }\n    if (yUnits === undefined) {\n      y = spectrum.variables[variableNames[1]];\n    } else {\n      for (let key in spectrum.variables) {\n        let converted = convertUnit(1, spectrum.variables[key].units, yUnits);\n        if (converted) {\n          y = getConvertedVariable(spectrum.variables[key], yUnits);\n          break;\n        }\n      }\n    }\n    if (x && y) {\n      return {\n        title: spectrum.title,\n        dataType: spectrum.dataType,\n        meta: spectrum.meta,\n        variables: { x, y },\n      };\n    }\n  }\n  return;\n}\n","import isAnyArray from 'is-any-array';\nimport max from 'ml-array-max';\nimport min from 'ml-array-min';\nimport { xIsMonotone } from 'ml-spectra-processing';\n\nimport { getNormalizedSpectrum } from './util/getNormalizedSpectrum';\nimport { getXYSpectrum } from './util/getXYSpectrum';\n\n/**\n * Class allowing to store and manipulate an analysis.\n * An analysis may contain one or more spectra that can be selected\n * based on their units\n * @class Analysis\n * @param {object} [options={}]\n * @param {string} [options.id=randomString] unique identifier\n * @param {string} [options.label=options.id] human redeable label\n */\nexport class Analysis {\n  constructor(options = {}) {\n    this.id = options.id || Math.random().toString(36).substring(2, 10);\n    this.label = options.label || this.id;\n    this.spectra = [];\n    this.cache = {};\n  }\n\n  /**\n   * Add a spectrum in the internal spectra variable\n   * @param {object} [variables]\n   * @param {object} [variables.x]\n   * @param {array} [variables.x.data]\n   * @param {array} [variables.x.units='x']\n   * @param {array} [variables.x.label='x']\n   * @param {object} [variables.y]\n   * @param {array} [variables.y.data]\n   * @param {array} [variables.y.units='y']\n   * @param {array} [variables.y.label='y']\n   * @param {object} [options={}]\n   * @param {string} [options.dataType='']\n   * @param {string} [options.title='']\n   *\n   */\n  pushSpectrum(variables, options = {}) {\n    this.spectra.push(standardizeData(variables, options));\n    this.cache = {};\n  }\n\n  /**\n   * Retrieve a Spectrum based on x/y units\n   * @param {object} [selector={}]\n   * @param {string} [selector.units] Units separated by vs like for example \"g vs °C\"\n   * @param {string} [selector.xUnits] if undefined takes the first variable\n   * @param {string} [selector.yUnits] if undefined takes the second variable\n   * @returns {Spectrum}\n   */\n  getXYSpectrum(selector = {}) {\n    let id = JSON.stringify(selector);\n    if (!this.cache[id]) {\n      this.cache[id] = getXYSpectrum(this.spectra, selector);\n    }\n    return this.cache[id];\n  }\n\n  /**\n   * Return the data object for specific x/y units with possibly some\n   * normalization options\n   * @param {object} [options={}]\n   * @param {object} [options.selector]\n   * @param {string} [options.selector.xUnits] // if undefined takes the first variable\n   * @param {string} [options.selector.yUnits] // if undefined takes the second variable\n   * @param {object} [options.normalization]\n   *\n   */\n  getNormalizedSpectrum(options = {}) {\n    const { normalization, selector } = options;\n    const spectrum = this.getXYSpectrum(selector);\n    if (!spectrum) return undefined;\n    return getNormalizedSpectrum(spectrum, normalization);\n  }\n\n  /**\n   * Returns the xLabel\n   * @param {object} [selector]\n   * @param {string} [selector.xUnits] // if undefined takes the first variable\n   * @param {string} [selector.yUnits] // if undefined takes the second variable\n   * @returns {string}\n   */\n  getXLabel(selector) {\n    return this.getXYSpectrum(selector).variables.x.label;\n  }\n\n  /**\n   * Returns the yLabel\n   * @param {object} [selector]\n   * @param {string} [selector.xUnits] // if undefined takes the first variable\n   * @param {string} [selector.yUnits] // if undefined takes the second variable\n   * @returns {string}\n   */\n  getYLabel(selector) {\n    return this.getXYSpectrum(selector).variables.y.label;\n  }\n}\n\n/**\n * Internal function that ensure the order of x / y array\n * @param {DataXY} [variables]\n * @param {object} [options={}]\n * @return {Spectrum}\n */\nfunction standardizeData(variables, options = {}) {\n  let { meta = {}, dataType = '', title = '' } = options;\n\n  let xVariable = variables.x;\n  let yVariable = variables.y;\n  if (!xVariable || !yVariable) {\n    throw Error('A spectrum must contain at least x and y variables');\n  }\n  if (!isAnyArray(xVariable.data) || !isAnyArray(yVariable.data)) {\n    throw Error('x and y variables must contain an array data');\n  }\n\n  let x = xVariable.data;\n  let reverse = x && x.length > 1 && x[0] > x[x.length - 1];\n\n  for (let key in variables) {\n    let variable = variables[key];\n    if (reverse) variable.data = variable.data.reverse();\n    variable.label = variable.label || key;\n    variable.units =\n      variable.units || variable.label.replace(/^.*[([](.*)[)\\]].*$/, '$1');\n    variable.min = min(variable.data);\n    variable.max = max(variable.data);\n    variable.isMonotone = xIsMonotone(variable.data);\n  }\n\n  return {\n    variables,\n    title,\n    dataType,\n    meta,\n  };\n}\n","const GC_MS_FIELDS = ['TIC', '.RIC', 'SCANNUMBER'];\n\nexport function complexChromatogram(result) {\n  let spectra = result.spectra;\n  let length = spectra.length;\n  let chromatogram = {\n    times: new Array(length),\n    series: {\n      ms: {\n        dimension: 2,\n        data: new Array(length),\n      },\n    },\n  };\n\n  let existingGCMSFields = [];\n  for (let i = 0; i < GC_MS_FIELDS.length; i++) {\n    let label = convertMSFieldToLabel(GC_MS_FIELDS[i]);\n    if (spectra[0][label]) {\n      existingGCMSFields.push(label);\n      chromatogram.series[label] = {\n        dimension: 1,\n        data: new Array(length),\n      };\n    }\n  }\n\n  for (let i = 0; i < length; i++) {\n    let spectrum = spectra[i];\n    chromatogram.times[i] = spectrum.pageValue;\n    for (let j = 0; j < existingGCMSFields.length; j++) {\n      chromatogram.series[existingGCMSFields[j]].data[i] = parseFloat(\n        spectrum[existingGCMSFields[j]],\n      );\n    }\n    if (spectrum.data) {\n      chromatogram.series.ms.data[i] = [spectrum.data.x, spectrum.data.y];\n    }\n  }\n  result.chromatogram = chromatogram;\n}\n\nexport function isMSField(canonicDataLabel) {\n  return GC_MS_FIELDS.indexOf(canonicDataLabel) !== -1;\n}\n\nexport function convertMSFieldToLabel(value) {\n  return value.toLowerCase().replace(/[^a-z0-9]/g, '');\n}\n","export default function convertToFloatArray(stringArray) {\n  let floatArray = [];\n  for (let i = 0; i < stringArray.length; i++) {\n    floatArray.push(parseFloat(stringArray[i]));\n  }\n  return floatArray;\n}\n","export default function fastParseXYData(spectrum, value) {\n  // TODO need to deal with result\n  //  console.log(value);\n  // we check if deltaX is defined otherwise we calculate it\n\n  let yFactor = spectrum.yFactor;\n  let deltaX = spectrum.deltaX;\n\n  spectrum.isXYdata = true;\n  let currentData = { x: [], y: [] };\n  spectrum.data = currentData;\n\n  let currentX = spectrum.firstX;\n  let currentY = spectrum.firstY;\n\n  // we skip the first line\n  //\n  let endLine = false;\n  let ascii;\n  let i = 0;\n  for (; i < value.length; i++) {\n    ascii = value.charCodeAt(i);\n    if (ascii === 13 || ascii === 10) {\n      endLine = true;\n    } else {\n      if (endLine) break;\n    }\n  }\n\n  // we proceed taking the i after the first line\n  let newLine = true;\n  let isDifference = false;\n  let isLastDifference = false;\n  let lastDifference = 0;\n  let isDuplicate = false;\n  let inComment = false;\n  let currentValue = 0; // can be a difference or a duplicate\n  let lastValue = 0; // must be the real last value\n  let isNegative = false;\n  let inValue = false;\n  let skipFirstValue = false;\n  let decimalPosition = 0;\n  for (; i <= value.length; i++) {\n    if (i === value.length) ascii = 13;\n    else ascii = value.charCodeAt(i);\n    if (inComment) {\n      // we should ignore the text if we are after $$\n      if (ascii === 13 || ascii === 10) {\n        newLine = true;\n        inComment = false;\n      }\n    } else {\n      // when is it a new value ?\n      // when it is not a digit, . or comma\n      // it is a number that is either new or we continue\n      if (ascii <= 57 && ascii >= 48) {\n        // a number\n        inValue = true;\n        if (decimalPosition > 0) {\n          currentValue += (ascii - 48) / Math.pow(10, decimalPosition++);\n        } else {\n          currentValue *= 10;\n          currentValue += ascii - 48;\n        }\n      } else if (ascii === 44 || ascii === 46) {\n        // a \",\" or \".\"\n        inValue = true;\n        decimalPosition++;\n      } else {\n        if (inValue) {\n          // need to process the previous value\n          if (newLine) {\n            newLine = false; // we don't check the X value\n            // console.log(\"NEW LINE\",isDifference, lastDifference);\n            // if new line and lastDifference, the first value is just a check !\n            // that we don't check ...\n            if (isLastDifference) skipFirstValue = true;\n          } else {\n            // need to deal with duplicate and differences\n            if (skipFirstValue) {\n              skipFirstValue = false;\n            } else {\n              if (isDifference) {\n                lastDifference = isNegative ? 0 - currentValue : currentValue;\n                isLastDifference = true;\n                isDifference = false;\n              } else if (!isDuplicate) {\n                lastValue = isNegative ? 0 - currentValue : currentValue;\n              }\n              let duplicate = isDuplicate ? currentValue - 1 : 1;\n              for (let j = 0; j < duplicate; j++) {\n                if (isLastDifference) {\n                  currentY += lastDifference;\n                } else {\n                  currentY = lastValue;\n                }\n                currentData.x.push(currentX);\n                currentData.y.push(currentY * yFactor);\n                currentX += deltaX;\n              }\n            }\n          }\n          isNegative = false;\n          currentValue = 0;\n          decimalPosition = 0;\n          inValue = false;\n          isDuplicate = false;\n        }\n\n        // positive SQZ digits @ A B C D E F G H I (ascii 64-73)\n        if (ascii < 74 && ascii > 63) {\n          inValue = true;\n          isLastDifference = false;\n          currentValue = ascii - 64;\n        } else if (ascii > 96 && ascii < 106) {\n          // negative SQZ digits a b c d e f g h i (ascii 97-105)\n          inValue = true;\n          isLastDifference = false;\n          currentValue = ascii - 96;\n          isNegative = true;\n        } else if (ascii === 115) {\n          // DUP digits S T U V W X Y Z s (ascii 83-90, 115)\n          inValue = true;\n          isDuplicate = true;\n          currentValue = 9;\n        } else if (ascii > 82 && ascii < 91) {\n          inValue = true;\n          isDuplicate = true;\n          currentValue = ascii - 82;\n        } else if (ascii > 73 && ascii < 83) {\n          // positive DIF digits % J K L M N O P Q R (ascii 37, 74-82)\n          inValue = true;\n          isDifference = true;\n          currentValue = ascii - 73;\n        } else if (ascii > 105 && ascii < 115) {\n          // negative DIF digits j k l m n o p q r (ascii 106-114)\n          inValue = true;\n          isDifference = true;\n          currentValue = ascii - 105;\n          isNegative = true;\n        } else if (ascii === 36 && value.charCodeAt(i + 1) === 36) {\n          // $ sign, we need to check the next one\n          inValue = true;\n          inComment = true;\n        } else if (ascii === 37) {\n          // positive DIF digits % J K L M N O P Q R (ascii 37, 74-82)\n          inValue = true;\n          isDifference = true;\n          currentValue = 0;\n          isNegative = false;\n        } else if (ascii === 45) {\n          // a \"-\"\n          // check if after there is a number, decimal or comma\n          let ascii2 = value.charCodeAt(i + 1);\n          if (\n            (ascii2 >= 48 && ascii2 <= 57) ||\n            ascii2 === 44 ||\n            ascii2 === 46\n          ) {\n            inValue = true;\n            if (!newLine) isLastDifference = false;\n            isNegative = true;\n          }\n        } else if (ascii === 13 || ascii === 10) {\n          newLine = true;\n          inComment = false;\n        }\n        // and now analyse the details ... space or tabulation\n        // if \"+\" we just don't care\n      }\n    }\n  }\n}\n","const removeCommentRegExp = /\\$\\$.*/;\nconst peakTableSplitRegExp = /[,\\t ]+/;\n\nexport default function parsePeakTable(spectrum, value, result) {\n  spectrum.isPeaktable = true;\n\n  if (!spectrum.variables || Object.keys(spectrum.variables) === 2) {\n    parseXY(spectrum, value, result);\n  } else {\n    parseXYZ(spectrum, value, result);\n  }\n\n  // we will add the data in the variables\n  if (spectrum.variables) {\n    for (let key in spectrum.variables) {\n      spectrum.variables[key].data = spectrum.data[key];\n    }\n  }\n}\n\nfunction parseXY(spectrum, value, result) {\n  let currentData = { x: [], y: [] };\n  spectrum.data = currentData;\n\n  // counts for around 20% of the time\n  let lines = value.split(/,? *,?[;\\r\\n]+ */);\n\n  for (let i = 1; i < lines.length; i++) {\n    let values = lines[i]\n      .trim()\n      .replace(removeCommentRegExp, '')\n      .split(peakTableSplitRegExp);\n    if (values.length % 2 === 0) {\n      for (let j = 0; j < values.length; j = j + 2) {\n        // takes around 40% of the time to add and parse the 2 values nearly exclusively because of parseFloat\n        currentData.x.push(parseFloat(values[j]) * spectrum.xFactor);\n        currentData.y.push(parseFloat(values[j + 1]) * spectrum.yFactor);\n      }\n    } else {\n      result.logs.push(`Format error: ${values}`);\n    }\n  }\n}\n\nfunction parseXYZ(spectrum, value, result) {\n  let currentData = {};\n  let variables = Object.keys(spectrum.variables);\n  let numberOfVariables = variables.length;\n  variables.forEach((variable) => (currentData[variable] = []));\n  spectrum.data = currentData;\n\n  // counts for around 20% of the time\n  let lines = value.split(/,? *,?[;\\r\\n]+ */);\n\n  for (let i = 1; i < lines.length; i++) {\n    let values = lines[i]\n      .trim()\n      .replace(removeCommentRegExp, '')\n      .split(peakTableSplitRegExp);\n    if (values.length % numberOfVariables === 0) {\n      for (let j = 0; j < values.length; j++) {\n        // todo should try to find a xFactor (y, ...)\n        currentData[variables[j % numberOfVariables]].push(\n          parseFloat(values[j]),\n        );\n      }\n    } else {\n      result.logs.push(`Format error: ${values}`);\n    }\n  }\n}\n","export default function parseXYA(spectrum, value) {\n  let removeSymbolRegExp = /(\\(+|\\)+|<+|>+|\\s+)/g;\n\n  spectrum.isXYAdata = true;\n  let values;\n  let currentData = { x: [], y: [] };\n  spectrum.data = currentData;\n\n  let lines = value.split(/,? *,?[;\\r\\n]+ */);\n\n  for (let i = 1; i < lines.length; i++) {\n    values = lines[i].trim().replace(removeSymbolRegExp, '').split(',');\n    currentData.x.push(parseFloat(values[0]));\n    currentData.y.push(parseFloat(values[1]));\n  }\n}\n","import getMedian from 'ml-array-median';\n\nexport default function convertTo3DZ(spectra) {\n  let minZ = spectra[0].data.y[0];\n  let maxZ = minZ;\n  let ySize = spectra.length;\n  let xSize = spectra[0].data.x.length;\n\n  let z = new Array(ySize);\n  for (let i = 0; i < ySize; i++) {\n    z[i] = spectra[i].data.y;\n    for (let j = 0; j < xSize; j++) {\n      let value = z[i][j];\n      if (value < minZ) minZ = value;\n      if (value > maxZ) maxZ = value;\n    }\n  }\n\n  const firstX = spectra[0].data.x[0];\n  const lastX = spectra[0].data.x[spectra[0].data.x.length - 1]; // has to be -2 because it is a 1D array [x,y,x,y,...]\n  const firstY = spectra[0].pageValue;\n  const lastY = spectra[ySize - 1].pageValue;\n\n  // Because the min / max value are the only information about the matrix if we invert\n  // min and max we need to invert the array\n  if (firstX > lastX) {\n    for (let spectrum of z) {\n      spectrum.reverse();\n    }\n  }\n  if (firstY > lastY) {\n    z.reverse();\n  }\n\n  return {\n    z: z,\n    minX: Math.min(firstX, lastX),\n    maxX: Math.max(firstX, lastX),\n    minY: Math.min(firstY, lastY),\n    maxY: Math.max(firstY, lastY),\n    minZ: minZ,\n    maxZ: maxZ,\n    noise: getMedian(z[0].map(Math.abs)),\n  };\n}\n","export default function generateContourLines(zData, options) {\n  let noise = zData.noise;\n  let z = zData.z;\n  let povarHeight0, povarHeight1, povarHeight2, povarHeight3;\n  let isOver0, isOver1, isOver2, isOver3;\n  let nbSubSpectra = z.length;\n  let nbPovars = z[0].length;\n  let pAx, pAy, pBx, pBy;\n\n  let x0 = zData.minX;\n  let xN = zData.maxX;\n  let dx = (xN - x0) / (nbPovars - 1);\n  let y0 = zData.minY;\n  let yN = zData.maxY;\n  let dy = (yN - y0) / (nbSubSpectra - 1);\n  let minZ = zData.minZ;\n  let maxZ = zData.maxZ;\n\n  // System.out.prvarln('y0 '+y0+' yN '+yN);\n  // -------------------------\n  // Povars attribution\n  //\n  // 0----1\n  // |  / |\n  // | /  |\n  // 2----3\n  //\n  // ---------------------d------\n\n  let iter = options.nbContourLevels * 2;\n  let contourLevels = new Array(iter);\n  let lineZValue;\n  for (let level = 0; level < iter; level++) {\n    // multiply by 2 for positif and negatif\n    let contourLevel = {};\n    contourLevels[level] = contourLevel;\n    let side = level % 2;\n    let factor =\n      (maxZ - options.noiseMultiplier * noise) *\n      Math.exp((level >> 1) - options.nbContourLevels);\n    if (side === 0) {\n      lineZValue = factor + options.noiseMultiplier * noise;\n    } else {\n      lineZValue = 0 - factor - options.noiseMultiplier * noise;\n    }\n    let lines = [];\n    contourLevel.zValue = lineZValue;\n    contourLevel.lines = lines;\n\n    if (lineZValue <= minZ || lineZValue >= maxZ) continue;\n\n    for (let iSubSpectra = 0; iSubSpectra < nbSubSpectra - 1; iSubSpectra++) {\n      let subSpectra = z[iSubSpectra];\n      let subSpectraAfter = z[iSubSpectra + 1];\n      for (let povar = 0; povar < nbPovars - 1; povar++) {\n        povarHeight0 = subSpectra[povar];\n        povarHeight1 = subSpectra[povar + 1];\n        povarHeight2 = subSpectraAfter[povar];\n        povarHeight3 = subSpectraAfter[povar + 1];\n\n        isOver0 = povarHeight0 > lineZValue;\n        isOver1 = povarHeight1 > lineZValue;\n        isOver2 = povarHeight2 > lineZValue;\n        isOver3 = povarHeight3 > lineZValue;\n\n        // Example povar0 is over the plane and povar1 and\n        // povar2 are below, we find the varersections and add\n        // the segment\n        if (isOver0 !== isOver1 && isOver0 !== isOver2) {\n          pAx =\n            povar + (lineZValue - povarHeight0) / (povarHeight1 - povarHeight0);\n          pAy = iSubSpectra;\n          pBx = povar;\n          pBy =\n            iSubSpectra +\n            (lineZValue - povarHeight0) / (povarHeight2 - povarHeight0);\n          lines.push(pAx * dx + x0);\n          lines.push(pAy * dy + y0);\n          lines.push(pBx * dx + x0);\n          lines.push(pBy * dy + y0);\n        }\n        // remove push does not help !!!!\n        if (isOver3 !== isOver1 && isOver3 !== isOver2) {\n          pAx = povar + 1;\n          pAy =\n            iSubSpectra +\n            1 -\n            (lineZValue - povarHeight3) / (povarHeight1 - povarHeight3);\n          pBx =\n            povar +\n            1 -\n            (lineZValue - povarHeight3) / (povarHeight2 - povarHeight3);\n          pBy = iSubSpectra + 1;\n          lines.push(pAx * dx + x0);\n          lines.push(pAy * dy + y0);\n          lines.push(pBx * dx + x0);\n          lines.push(pBy * dy + y0);\n        }\n        // test around the diagonal\n        if (isOver1 !== isOver2) {\n          pAx =\n            (povar +\n              1 -\n              (lineZValue - povarHeight1) / (povarHeight2 - povarHeight1)) *\n              dx +\n            x0;\n          pAy =\n            (iSubSpectra +\n              (lineZValue - povarHeight1) / (povarHeight2 - povarHeight1)) *\n              dy +\n            y0;\n          if (isOver1 !== isOver0) {\n            pBx =\n              povar +\n              1 -\n              (lineZValue - povarHeight1) / (povarHeight0 - povarHeight1);\n            pBy = iSubSpectra;\n            lines.push(pAx);\n            lines.push(pAy);\n            lines.push(pBx * dx + x0);\n            lines.push(pBy * dy + y0);\n          }\n          if (isOver2 !== isOver0) {\n            pBx = povar;\n            pBy =\n              iSubSpectra +\n              1 -\n              (lineZValue - povarHeight2) / (povarHeight0 - povarHeight2);\n            lines.push(pAx);\n            lines.push(pAy);\n            lines.push(pBx * dx + x0);\n            lines.push(pBy * dy + y0);\n          }\n          if (isOver1 !== isOver3) {\n            pBx = povar + 1;\n            pBy =\n              iSubSpectra +\n              (lineZValue - povarHeight1) / (povarHeight3 - povarHeight1);\n            lines.push(pAx);\n            lines.push(pAy);\n            lines.push(pBx * dx + x0);\n            lines.push(pBy * dy + y0);\n          }\n          if (isOver2 !== isOver3) {\n            pBx =\n              povar +\n              (lineZValue - povarHeight2) / (povarHeight3 - povarHeight2);\n            pBy = iSubSpectra + 1;\n            lines.push(pAx);\n            lines.push(pAy);\n            lines.push(pBx * dx + x0);\n            lines.push(pBy * dy + y0);\n          }\n        }\n      }\n    }\n  }\n\n  return {\n    minX: zData.minX,\n    maxX: zData.maxX,\n    minY: zData.minY,\n    maxY: zData.maxY,\n    segments: contourLevels,\n  };\n}\n","import convertTo3DZ from './convertTo3DZ';\nimport generateContourLines from './generateContourLines';\n\nexport default function add2D(result, options) {\n  let zData = convertTo3DZ(result.spectra);\n  if (!options.noContour) {\n    result.contourLines = generateContourLines(zData, options);\n    delete zData.z;\n  }\n  result.minMax = zData;\n}\n","/**\n * Fast Fourier Transform module\n * 1D-FFT/IFFT, 2D-FFT/IFFT (radix-2)\n */\nvar FFT = (function(){\n  var FFT;  \n  \n  if(typeof exports !== 'undefined') {\n    FFT = exports;   // for CommonJS\n  } else {\n    FFT = {};\n  }\n  \n  var version = {\n    release: '0.3.0',\n    date: '2013-03'\n  };\n  FFT.toString = function() {\n    return \"version \" + version.release + \", released \" + version.date;\n  };\n\n  // core operations\n  var _n = 0,          // order\n      _bitrev = null,  // bit reversal table\n      _cstb = null;    // sin/cos table\n\n  var core = {\n    init : function(n) {\n      if(n !== 0 && (n & (n - 1)) === 0) {\n        _n = n;\n        core._initArray();\n        core._makeBitReversalTable();\n        core._makeCosSinTable();\n      } else {\n        throw new Error(\"init: radix-2 required\");\n      }\n    },\n    // 1D-FFT\n    fft1d : function(re, im) {\n      core.fft(re, im, 1);\n    },\n    // 1D-IFFT\n    ifft1d : function(re, im) {\n      var n = 1/_n;\n      core.fft(re, im, -1);\n      for(var i=0; i<_n; i++) {\n        re[i] *= n;\n        im[i] *= n;\n      }\n    },\n     // 1D-IFFT\n    bt1d : function(re, im) {\n      core.fft(re, im, -1);\n    },\n    // 2D-FFT Not very useful if the number of rows have to be equal to cols\n    fft2d : function(re, im) {\n      var tre = [],\n          tim = [],\n          i = 0;\n      // x-axis\n      for(var y=0; y<_n; y++) {\n        i = y*_n;\n        for(var x1=0; x1<_n; x1++) {\n          tre[x1] = re[x1 + i];\n          tim[x1] = im[x1 + i];\n        }\n        core.fft1d(tre, tim);\n        for(var x2=0; x2<_n; x2++) {\n          re[x2 + i] = tre[x2];\n          im[x2 + i] = tim[x2];\n        }\n      }\n      // y-axis\n      for(var x=0; x<_n; x++) {\n        for(var y1=0; y1<_n; y1++) {\n          i = x + y1*_n;\n          tre[y1] = re[i];\n          tim[y1] = im[i];\n        }\n        core.fft1d(tre, tim);\n        for(var y2=0; y2<_n; y2++) {\n          i = x + y2*_n;\n          re[i] = tre[y2];\n          im[i] = tim[y2];\n        }\n      }\n    },\n    // 2D-IFFT\n    ifft2d : function(re, im) {\n      var tre = [],\n          tim = [],\n          i = 0;\n      // x-axis\n      for(var y=0; y<_n; y++) {\n        i = y*_n;\n        for(var x1=0; x1<_n; x1++) {\n          tre[x1] = re[x1 + i];\n          tim[x1] = im[x1 + i];\n        }\n        core.ifft1d(tre, tim);\n        for(var x2=0; x2<_n; x2++) {\n          re[x2 + i] = tre[x2];\n          im[x2 + i] = tim[x2];\n        }\n      }\n      // y-axis\n      for(var x=0; x<_n; x++) {\n        for(var y1=0; y1<_n; y1++) {\n          i = x + y1*_n;\n          tre[y1] = re[i];\n          tim[y1] = im[i];\n        }\n        core.ifft1d(tre, tim);\n        for(var y2=0; y2<_n; y2++) {\n          i = x + y2*_n;\n          re[i] = tre[y2];\n          im[i] = tim[y2];\n        }\n      }\n    },\n    // core operation of FFT\n    fft : function(re, im, inv) {\n      var d, h, ik, m, tmp, wr, wi, xr, xi,\n          n4 = _n >> 2;\n      // bit reversal\n      for(var l=0; l<_n; l++) {\n        m = _bitrev[l];\n        if(l < m) {\n          tmp = re[l];\n          re[l] = re[m];\n          re[m] = tmp;\n          tmp = im[l];\n          im[l] = im[m];\n          im[m] = tmp;\n        }\n      }\n      // butterfly operation\n      for(var k=1; k<_n; k<<=1) {\n        h = 0;\n        d = _n/(k << 1);\n        for(var j=0; j<k; j++) {\n          wr = _cstb[h + n4];\n          wi = inv*_cstb[h];\n          for(var i=j; i<_n; i+=(k<<1)) {\n            ik = i + k;\n            xr = wr*re[ik] + wi*im[ik];\n            xi = wr*im[ik] - wi*re[ik];\n            re[ik] = re[i] - xr;\n            re[i] += xr;\n            im[ik] = im[i] - xi;\n            im[i] += xi;\n          }\n          h += d;\n        }\n      }\n    },\n    // initialize the array (supports TypedArray)\n    _initArray : function() {\n      if(typeof Uint32Array !== 'undefined') {\n        _bitrev = new Uint32Array(_n);\n      } else {\n        _bitrev = [];\n      }\n      if(typeof Float64Array !== 'undefined') {\n        _cstb = new Float64Array(_n*1.25);\n      } else {\n        _cstb = [];\n      }\n    },\n    // zero padding\n    _paddingZero : function() {\n      // TODO\n    },\n    // makes bit reversal table\n    _makeBitReversalTable : function() {\n      var i = 0,\n          j = 0,\n          k = 0;\n      _bitrev[0] = 0;\n      while(++i < _n) {\n        k = _n >> 1;\n        while(k <= j) {\n          j -= k;\n          k >>= 1;\n        }\n        j += k;\n        _bitrev[i] = j;\n      }\n    },\n    // makes trigonometiric function table\n    _makeCosSinTable : function() {\n      var n2 = _n >> 1,\n          n4 = _n >> 2,\n          n8 = _n >> 3,\n          n2p4 = n2 + n4,\n          t = Math.sin(Math.PI/_n),\n          dc = 2*t*t,\n          ds = Math.sqrt(dc*(2 - dc)),\n          c = _cstb[n4] = 1,\n          s = _cstb[0] = 0;\n      t = 2*dc;\n      for(var i=1; i<n8; i++) {\n        c -= dc;\n        dc += t*c;\n        s += ds;\n        ds -= t*s;\n        _cstb[i] = s;\n        _cstb[n4 - i] = c;\n      }\n      if(n8 !== 0) {\n        _cstb[n8] = Math.sqrt(0.5);\n      }\n      for(var j=0; j<n4; j++) {\n        _cstb[n2 - j]  = _cstb[j];\n      }\n      for(var k=0; k<n2p4; k++) {\n        _cstb[k + n2] = -_cstb[k];\n      }\n    }\n  };\n  // aliases (public APIs)\n  var apis = ['init', 'fft1d', 'ifft1d', 'fft2d', 'ifft2d'];\n  for(var i=0; i<apis.length; i++) {\n    FFT[apis[i]] = core[apis[i]];\n  }\n  FFT.bt = core.bt1d;\n  FFT.fft = core.fft1d;\n  FFT.ifft = core.ifft1d;\n  \n  return FFT;\n}).call(this);\n","// sources:\n// https://en.wikipedia.org/wiki/Gyromagnetic_ratio\n\n// TODO: can we have a better source and more digits ? @jwist\n\nexport const gyromagneticRatio = {\n  '1H': 267.52218744e6,\n  '2H': 41.065e6,\n  '3H': 285.3508e6,\n  '3He': -203.789e6,\n  '7Li': 103.962e6,\n  '13C': 67.28284e6,\n  '14N': 19.331e6,\n  '15N': -27.116e6,\n  '17O': -36.264e6,\n  '19F': 251.662e6,\n  '23Na': 70.761e6,\n  '27Al': 69.763e6,\n  '29Si': -53.19e6,\n  '31P': 108.291e6,\n  '57Fe': 8.681e6,\n  '63Cu': 71.118e6,\n  '67Zn': 16.767e6,\n  '129Xe': -73.997e6,\n};\n","import { gyromagneticRatio } from 'nmr-processing';\n\nexport default function postProcessingNMR(entriesFlat) {\n  // specific NMR functions\n  let observeFrequency = 0;\n  let shiftOffsetVal = 0;\n\n  for (let entry of entriesFlat) {\n    for (let spectrum of entry.spectra) {\n      if (entry.ntuples && entry.ntuples.symbol) {\n        if (!observeFrequency && spectrum.observeFrequency) {\n          observeFrequency = spectrum.observeFrequency;\n        }\n        if (!shiftOffsetVal && spectrum.shiftOffsetVal) {\n          shiftOffsetVal = spectrum.shiftOffsetVal;\n        }\n      } else {\n        observeFrequency = spectrum.observeFrequency;\n        shiftOffsetVal = spectrum.shiftOffsetVal;\n      }\n\n      if (observeFrequency) {\n        if (spectrum.xUnits && spectrum.xUnits.toUpperCase().includes('HZ')) {\n          spectrum.xUnits = 'PPM';\n          spectrum.xFactor = spectrum.xFactor / observeFrequency;\n          spectrum.firstX = spectrum.firstX / observeFrequency;\n          spectrum.lastX = spectrum.lastX / observeFrequency;\n          spectrum.deltaX = spectrum.deltaX / observeFrequency;\n          for (let i = 0; i < spectrum.data.x.length; i++) {\n            spectrum.data.x[i] /= observeFrequency;\n          }\n        }\n      }\n      if (shiftOffsetVal) {\n        let shift = spectrum.firstX - shiftOffsetVal;\n        spectrum.firstX = spectrum.firstX - shift;\n        spectrum.lastX = spectrum.lastX - shift;\n        for (let i = 0; i < spectrum.data.x.length; i++) {\n          spectrum.data.x[i] -= shift;\n        }\n      }\n\n      if (\n        observeFrequency &&\n        entry.ntuples &&\n        entry.ntuples.symbol &&\n        entry.ntuples.nucleus\n      ) {\n        let unit = '';\n        let pageSymbolIndex = entry.ntuples.symbol.indexOf(spectrum.pageSymbol);\n        if (entry.ntuples.units && entry.ntuples.units[pageSymbolIndex]) {\n          unit = entry.ntuples.units[pageSymbolIndex];\n        }\n        if (unit !== 'PPM') {\n          if (pageSymbolIndex !== 0) {\n            throw Error('Not sure about this ntuples format');\n          }\n\n          let ratio0 = gyromagneticRatio[entry.ntuples.nucleus[0]];\n          let ratio1 = gyromagneticRatio[entry.ntuples.nucleus[1]];\n          if (!ratio0 || !ratio1) {\n            throw Error('Problem with determination of gyromagnetic ratio');\n          }\n          let ratio = (ratio0 / ratio1) * observeFrequency;\n          spectrum.pageValue /= ratio;\n        }\n      }\n    }\n  }\n}\n","export default function profiling(result, action, options) {\n  if (result.profiling) {\n    result.profiling.push({\n      action,\n      time: Date.now() - options.start,\n    });\n  }\n}\n","export default function simpleChromatogram(result) {\n  let data = result.spectra[0].data;\n  result.chromatogram = {\n    times: data.x.slice(),\n    series: {\n      intensity: {\n        dimension: 1,\n        data: data.y.slice(),\n      },\n    },\n  };\n}\n","import add2D from './2d/add2D';\nimport { complexChromatogram } from './complexChromatogram';\nimport postProcessingNMR from './postProcessingNMR';\nimport profiling from './profiling';\nimport simpleChromatogram from './simpleChromatogram';\n\nexport default function postProcessing(entriesFlat, result, options) {\n  // converting Hz to ppm\n  postProcessingNMR(entriesFlat);\n\n  for (let entry of entriesFlat) {\n    if (Object.keys(entry.ntuples).length > 0) {\n      let newNtuples = [];\n      let keys = Object.keys(entry.ntuples);\n      for (let i = 0; i < keys.length; i++) {\n        let key = keys[i];\n        let values = entry.ntuples[key];\n        for (let j = 0; j < values.length; j++) {\n          if (!newNtuples[j]) newNtuples[j] = {};\n          newNtuples[j][key] = values[j];\n        }\n      }\n      entry.ntuples = newNtuples;\n    }\n\n    if (entry.twoD && options.wantXY) {\n      add2D(entry, options);\n\n      profiling(result, 'Finished countour plot calculation', options);\n\n      if (!options.keepSpectra) {\n        delete entry.spectra;\n      }\n    }\n\n    // maybe it is a GC (HPLC) / MS. In this case we add a new format\n    if (options.chromatogram) {\n      if (entry.spectra.length > 1) {\n        complexChromatogram(entry);\n      } else {\n        simpleChromatogram(entry);\n      }\n      profiling(result, 'Finished chromatogram calculation', options);\n    }\n  }\n}\n","export default function prepareNtuplesDatatable(currentEntry, spectrum, kind) {\n  let xIndex = -1;\n  let yIndex = -1;\n  let firstVariable = '';\n  let secondVariable = '';\n  if (kind.indexOf('++') > 0) {\n    firstVariable = kind.replace(/.*\\(([a-zA-Z0-9]+)\\+\\+.*/, '$1');\n    secondVariable = kind.replace(/.*\\.\\.([a-zA-Z0-9]+).*/, '$1');\n  } else {\n    kind = kind.replace(/[^a-zA-Z]/g, '');\n    firstVariable = kind.charAt(0);\n    secondVariable = kind.charAt(1);\n    spectrum.variables = {};\n    for (let symbol of kind) {\n      let lowerCaseSymbol = symbol.toLowerCase();\n      let index = currentEntry.ntuples.symbol.indexOf(symbol);\n      if (index === -1) throw Error(`Symbol undefined: ${symbol}`);\n      spectrum.variables[lowerCaseSymbol] = {};\n      for (let key in currentEntry.ntuples) {\n        if (currentEntry.ntuples[key][index]) {\n          spectrum.variables[lowerCaseSymbol][key.replace(/^var/, '')] =\n            currentEntry.ntuples[key][index];\n        }\n      }\n    }\n  }\n  xIndex = currentEntry.ntuples.symbol.indexOf(firstVariable);\n  yIndex = currentEntry.ntuples.symbol.indexOf(secondVariable);\n\n  if (xIndex === -1) xIndex = 0;\n  if (yIndex === -1) yIndex = 0;\n\n  if (currentEntry.ntuples.first) {\n    if (currentEntry.ntuples.first.length > xIndex) {\n      spectrum.firstX = currentEntry.ntuples.first[xIndex];\n    }\n    if (currentEntry.ntuples.first.length > yIndex) {\n      spectrum.firstY = currentEntry.ntuples.first[yIndex];\n    }\n  }\n  if (currentEntry.ntuples.last) {\n    if (currentEntry.ntuples.last.length > xIndex) {\n      spectrum.lastX = currentEntry.ntuples.last[xIndex];\n    }\n    if (currentEntry.ntuples.last.length > yIndex) {\n      spectrum.lastY = currentEntry.ntuples.last[yIndex];\n    }\n  }\n  if (\n    currentEntry.ntuples.vardim &&\n    currentEntry.ntuples.vardim.length > xIndex\n  ) {\n    spectrum.nbPoints = currentEntry.ntuples.vardim[xIndex];\n  }\n  if (currentEntry.ntuples.factor) {\n    if (currentEntry.ntuples.factor.length > xIndex) {\n      spectrum.xFactor = currentEntry.ntuples.factor[xIndex];\n    }\n    if (currentEntry.ntuples.factor.length > yIndex) {\n      spectrum.yFactor = currentEntry.ntuples.factor[yIndex];\n    }\n  }\n  if (currentEntry.ntuples.units) {\n    if (currentEntry.ntuples.units.length > xIndex) {\n      if (\n        currentEntry.ntuples.varname &&\n        currentEntry.ntuples.varname[xIndex]\n      ) {\n        spectrum.xUnits = `${currentEntry.ntuples.varname[xIndex]} [${currentEntry.ntuples.units[xIndex]}]`;\n      } else {\n        spectrum.xUnits = currentEntry.ntuples.units[xIndex];\n      }\n    }\n    if (currentEntry.ntuples.units.length > yIndex) {\n      if (\n        currentEntry.ntuples.varname &&\n        currentEntry.ntuples.varname[yIndex]\n      ) {\n        spectrum.yUnits = `${currentEntry.ntuples.varname[yIndex]} [${currentEntry.ntuples.units[yIndex]}]`;\n      } else {\n        spectrum.yUnits = currentEntry.ntuples.units[yIndex];\n      }\n    }\n  }\n}\n","export default function prepareSpectrum(spectrum) {\n  if (!spectrum.xFactor) spectrum.xFactor = 1;\n  if (!spectrum.yFactor) spectrum.yFactor = 1;\n}\n","import { isMSField, convertMSFieldToLabel } from './complexChromatogram';\nimport convertToFloatArray from './convertToFloatArray';\nimport fastParseXYData from './parse/fastParseXYData';\nimport parsePeakTable from './parse/parsePeakTable';\nimport parseXYA from './parse/parseXYA';\nimport postProcessing from './postProcessing';\nimport prepareNtuplesDatatable from './prepareNtuplesDatatable';\nimport prepareSpectrum from './prepareSpectrum';\nimport profiling from './profiling';\n\n// the following RegExp can only be used for XYdata, some peakTables have values with a \"E-5\" ...\nconst ntuplesSeparator = /[ \\t]*,[ \\t]*/;\n\nclass Spectrum {}\n\nconst defaultOptions = {\n  keepRecordsRegExp: /^$/,\n  canonicDataLabels: true,\n  canonicMetadataLabels: false,\n  dynamicTyping: true,\n  withoutXY: false,\n  chromatogram: false,\n  keepSpectra: false,\n  noContour: false,\n  nbContourLevels: 7,\n  noiseMultiplier: 5,\n  profiling: false,\n};\n\n/**\n *\n * @param {text} jcamp\n * @param {object} [options]\n * @param {number} [options.keepRecordsRegExp=/^$/] By default we don't keep meta information\n * @param {number} [options.canonicDataLabels=true] Canonize the Labels (uppercase without symbol)\n * @param {number} [options.canonicMetadataLabels=false] Canonize the metadata Labels (uppercase without symbol)\n * @param {number} [options.dynamicTyping=false] Convert numbers to Number\n * @param {number} [options.withoutXY=false] Remove the XY data\n * @param {number} [options.chromatogram=false] Special post-processing for GC / HPLC / MS\n * @param {number} [options.keepSpectra=false] Force to keep the spectra in case of 2D\n * @param {number} [options.noContour=false] Don't calculate countour in case of 2D\n * @param {number} [options.nbContourLevels=7] Number of positive / negative contour levels to calculate\n * @param {number} [options.noiseMultiplier=5] Define for 2D the level as 5 times the median as default\n * @param {number} [options.profiling=false] Add profiling information\n */\n\nexport default function convert(jcamp, options = {}) {\n  options = Object.assign({}, defaultOptions, options);\n  options.wantXY = !options.withoutXY;\n  options.start = Date.now();\n\n  let entriesFlat = [];\n\n  let result = {\n    profiling: options.profiling ? [] : false,\n    logs: [],\n    entries: [],\n  };\n\n  let tmpResult = { children: [] };\n  let currentEntry = tmpResult;\n  let parentsStack = [];\n\n  let spectrum = new Spectrum();\n\n  if (typeof jcamp !== 'string') {\n    throw new TypeError('the JCAMP should be a string');\n  }\n\n  profiling(result, 'Before split to LDRS', options);\n\n  let ldrs = jcamp.replace(/[\\r\\n]+##/g, '\\n##').split('\\n##');\n\n  profiling(result, 'Split to LDRS', options);\n\n  if (ldrs[0]) ldrs[0] = ldrs[0].replace(/^[\\r\\n ]*##/, '');\n\n  for (let ldr of ldrs) {\n    // This is a new LDR\n    let position = ldr.indexOf('=');\n    let dataLabel = position > 0 ? ldr.substring(0, position) : ldr;\n    let dataValue = position > 0 ? ldr.substring(position + 1).trim() : '';\n\n    let canonicDataLabel = dataLabel.replace(/[_ -]/g, '').toUpperCase();\n\n    if (canonicDataLabel === 'DATATABLE') {\n      let endLine = dataValue.indexOf('\\n');\n      if (endLine === -1) endLine = dataValue.indexOf('\\r');\n      if (endLine > 0) {\n        // ##DATA TABLE= (X++(I..I)), XYDATA\n        // We need to find the variables\n\n        let infos = dataValue.substring(0, endLine).split(/[ ,;\\t]+/);\n        prepareNtuplesDatatable(currentEntry, spectrum, infos[0]);\n\n        spectrum.datatable = infos[0];\n        if (infos[1] && infos[1].indexOf('PEAKS') > -1) {\n          canonicDataLabel = 'PEAKTABLE';\n        } else if (\n          infos[1] &&\n          (infos[1].indexOf('XYDATA') || infos[0].indexOf('++') > 0)\n        ) {\n          canonicDataLabel = 'XYDATA';\n          spectrum.deltaX =\n            (spectrum.lastX - spectrum.firstX) / (spectrum.nbPoints - 1);\n        }\n      }\n    }\n\n    if (canonicDataLabel === 'XYDATA') {\n      if (options.wantXY) {\n        prepareSpectrum(spectrum);\n        // well apparently we should still consider it is a PEAK TABLE if there are no '++' after\n        if (dataValue.match(/.*\\+\\+.*/)) {\n          // ex: (X++(Y..Y))\n          if (!spectrum.deltaX) {\n            spectrum.deltaX =\n              (spectrum.lastX - spectrum.firstX) / (spectrum.nbPoints - 1);\n          }\n          fastParseXYData(spectrum, dataValue, result);\n        } else {\n          parsePeakTable(spectrum, dataValue, result);\n        }\n        currentEntry.spectra.push(spectrum);\n        spectrum = new Spectrum();\n      }\n      continue;\n    } else if (canonicDataLabel === 'PEAKTABLE') {\n      if (options.wantXY) {\n        prepareSpectrum(spectrum);\n        parsePeakTable(spectrum, dataValue, result);\n        currentEntry.spectra.push(spectrum);\n        spectrum = new Spectrum();\n      }\n      continue;\n    }\n    if (canonicDataLabel === 'PEAKASSIGNMENTS') {\n      if (options.wantXY) {\n        if (dataValue.match(/.*(XYA).*/)) {\n          // ex: (XYA)\n          parseXYA(spectrum, dataValue);\n        }\n        currentEntry.spectra.push(spectrum);\n        spectrum = new Spectrum();\n      }\n      continue;\n    }\n\n    if (canonicDataLabel === 'TITLE') {\n      let parentEntry = currentEntry;\n      if (!parentEntry.children) {\n        parentEntry.children = [];\n      }\n      currentEntry = {\n        spectra: [],\n        ntuples: {},\n        info: {},\n        meta: {},\n      };\n      parentEntry.children.push(currentEntry);\n      parentsStack.push(parentEntry);\n      entriesFlat.push(currentEntry);\n      currentEntry.title = dataValue;\n    } else if (canonicDataLabel === 'DATATYPE') {\n      currentEntry.dataType = dataValue;\n      if (dataValue.toLowerCase().indexOf('nd') > -1) {\n        currentEntry.twoD = true;\n      }\n    } else if (canonicDataLabel === 'NTUPLES') {\n      if (dataValue.toLowerCase().indexOf('nd') > -1) {\n        currentEntry.twoD = true;\n      }\n    } else if (canonicDataLabel === 'DATACLASS') {\n      currentEntry.dataClass = dataValue;\n    } else if (canonicDataLabel === 'XUNITS') {\n      spectrum.xUnits = dataValue;\n    } else if (canonicDataLabel === 'YUNITS') {\n      spectrum.yUnits = dataValue;\n    } else if (canonicDataLabel === 'FIRSTX') {\n      spectrum.firstX = parseFloat(dataValue);\n    } else if (canonicDataLabel === 'LASTX') {\n      spectrum.lastX = parseFloat(dataValue);\n    } else if (canonicDataLabel === 'FIRSTY') {\n      spectrum.firstY = parseFloat(dataValue);\n    } else if (canonicDataLabel === 'LASTY') {\n      spectrum.lastY = parseFloat(dataValue);\n    } else if (canonicDataLabel === 'NPOINTS') {\n      spectrum.nbPoints = parseFloat(dataValue);\n    } else if (canonicDataLabel === 'XFACTOR') {\n      spectrum.xFactor = parseFloat(dataValue);\n    } else if (canonicDataLabel === 'YFACTOR') {\n      spectrum.yFactor = parseFloat(dataValue);\n    } else if (canonicDataLabel === 'MAXX') {\n      spectrum.maxX = parseFloat(dataValue);\n    } else if (canonicDataLabel === 'MINX') {\n      spectrum.minX = parseFloat(dataValue);\n    } else if (canonicDataLabel === 'MAXY') {\n      spectrum.maxY = parseFloat(dataValue);\n    } else if (canonicDataLabel === 'MINY') {\n      spectrum.minY = parseFloat(dataValue);\n    } else if (canonicDataLabel === 'DELTAX') {\n      spectrum.deltaX = parseFloat(dataValue);\n    } else if (\n      canonicDataLabel === '.OBSERVEFREQUENCY' ||\n      canonicDataLabel === '$SFO1'\n    ) {\n      if (!spectrum.observeFrequency) {\n        spectrum.observeFrequency = parseFloat(dataValue);\n      }\n    } else if (canonicDataLabel === '.OBSERVENUCLEUS') {\n      if (!spectrum.xType) {\n        currentEntry.xType = dataValue.replace(/[^a-zA-Z0-9]/g, '');\n      }\n    } else if (canonicDataLabel === '$OFFSET') {\n      // OFFSET for Bruker spectra\n      currentEntry.shiftOffsetNum = 0;\n      if (!spectrum.shiftOffsetVal) {\n        spectrum.shiftOffsetVal = parseFloat(dataValue);\n      }\n    } else if (canonicDataLabel === '$REFERENCEPOINT') {\n      // OFFSET for Varian spectra\n      // if we activate this part it does not work for ACD specmanager\n      //         } else if (canonicDataLabel=='.SHIFTREFERENCE') {   // OFFSET FOR Bruker Spectra\n      //                 var parts = dataValue.split(/ *, */);\n      //                 currentEntry.shiftOffsetNum = parseInt(parts[2].trim());\n      //                 spectrum.shiftOffsetVal = parseFloat(parts[3].trim());\n    } else if (canonicDataLabel === 'VARNAME') {\n      currentEntry.ntuples.varname = dataValue.split(ntuplesSeparator);\n    } else if (canonicDataLabel === 'SYMBOL') {\n      currentEntry.ntuples.symbol = dataValue.split(ntuplesSeparator);\n    } else if (canonicDataLabel === 'VARTYPE') {\n      currentEntry.ntuples.vartype = dataValue.split(ntuplesSeparator);\n    } else if (canonicDataLabel === 'VARFORM') {\n      currentEntry.ntuples.varform = dataValue.split(ntuplesSeparator);\n    } else if (canonicDataLabel === 'VARDIM') {\n      currentEntry.ntuples.vardim = convertToFloatArray(\n        dataValue.split(ntuplesSeparator),\n      );\n    } else if (canonicDataLabel === 'UNITS') {\n      currentEntry.ntuples.units = dataValue.split(ntuplesSeparator);\n    } else if (canonicDataLabel === 'FACTOR') {\n      currentEntry.ntuples.factor = convertToFloatArray(\n        dataValue.split(ntuplesSeparator),\n      );\n    } else if (canonicDataLabel === 'FIRST') {\n      currentEntry.ntuples.first = convertToFloatArray(\n        dataValue.split(ntuplesSeparator),\n      );\n    } else if (canonicDataLabel === 'LAST') {\n      currentEntry.ntuples.last = convertToFloatArray(\n        dataValue.split(ntuplesSeparator),\n      );\n    } else if (canonicDataLabel === 'MIN') {\n      currentEntry.ntuples.min = convertToFloatArray(\n        dataValue.split(ntuplesSeparator),\n      );\n    } else if (canonicDataLabel === 'MAX') {\n      currentEntry.ntuples.max = convertToFloatArray(\n        dataValue.split(ntuplesSeparator),\n      );\n    } else if (canonicDataLabel === '.NUCLEUS') {\n      if (currentEntry.ntuples) {\n        currentEntry.ntuples.nucleus = dataValue.split(ntuplesSeparator);\n      }\n      if (currentEntry.twoD) {\n        currentEntry.yType = dataValue.split(ntuplesSeparator)[0];\n      }\n    } else if (canonicDataLabel === 'PAGE') {\n      spectrum.page = dataValue.trim();\n      spectrum.pageValue = parseFloat(dataValue.replace(/^.*=/, ''));\n      spectrum.pageSymbol = spectrum.page.replace(/[=].*/, '');\n    } else if (canonicDataLabel === 'RETENTIONTIME') {\n      spectrum.pageValue = parseFloat(dataValue);\n    } else if (isMSField(canonicDataLabel)) {\n      spectrum[convertMSFieldToLabel(canonicDataLabel)] = dataValue;\n    } else if (canonicDataLabel === 'SAMPLEDESCRIPTION') {\n      spectrum.sampleDescription = dataValue;\n    } else if (canonicDataLabel === 'END') {\n      currentEntry = parentsStack.pop();\n    }\n\n    if (\n      currentEntry &&\n      currentEntry.info &&\n      currentEntry.meta &&\n      canonicDataLabel.match(options.keepRecordsRegExp)\n    ) {\n      let value = dataValue.trim();\n      let target, label;\n      if (dataLabel.startsWith('$')) {\n        label = options.canonicMetadataLabels\n          ? canonicDataLabel.substring(1)\n          : dataLabel.substring(1);\n        target = currentEntry.meta;\n      } else {\n        label = options.canonicDataLabels ? canonicDataLabel : dataLabel;\n        target = currentEntry.info;\n      }\n\n      if (options.dynamicTyping) {\n        let parsedValue = Number.parseFloat(value);\n        if (!Number.isNaN(parsedValue)) value = parsedValue;\n      }\n      if (target[label]) {\n        if (!Array.isArray(target[label])) {\n          target[label] = [target[label]];\n        }\n        target[label].push(value);\n      } else {\n        target[label] = value;\n      }\n    }\n  }\n\n  profiling(result, 'Finished parsing', options);\n\n  postProcessing(entriesFlat, result, options);\n\n  profiling(result, 'Total time', options);\n\n  /*\n  if (result.children && result.children.length>0) {\n    result = { ...result, ...result.children[0] };\n  }\n  */\n  result.entries = tmpResult.children;\n  result.flatten = entriesFlat;\n\n  return result;\n}\n","import { convert } from 'jcampconverter';\n\nimport { Analysis } from '../Analysis';\n\n/**\n * Creates a new Analysis from a JCAMP string\n * @param {string} jcamp - String containing the JCAMP data\n * @param {object} [options={}]\n * @param {object} [options.id=Math.random()]\n * @param {string} [options.label=options.id] human redeable label\n * @return {Analysis} - New class element with the given data\n */\nexport function fromJcamp(jcamp, options = {}) {\n  let analysis = new Analysis(options);\n  addJcamp(analysis, jcamp, options);\n  return analysis;\n}\n\nfunction addJcamp(analysis, jcamp) {\n  let converted = convert(jcamp, {\n    keepRecordsRegExp: /.*/,\n  });\n\n  for (let entry of converted.flatten) {\n    let currentSpectrum = entry.spectra[0];\n\n    // we ensure variables\n    if (!currentSpectrum.variables) {\n      const variables = {};\n      currentSpectrum.variables = variables;\n      variables.x = {\n        label: currentSpectrum.xUnits,\n        symbol: 'X',\n        data: currentSpectrum.data.x || currentSpectrum.data.X,\n      };\n      variables.y = {\n        label: currentSpectrum.yUnits,\n        symbol: 'Y',\n        data: currentSpectrum.data.y || currentSpectrum.data.Y,\n      };\n    } else {\n      for (let key in currentSpectrum.variables) {\n        const variable = currentSpectrum.variables[key];\n        if (variable.label) continue;\n        variable.label = variable.name || variable.symbol || key;\n        if (variable.units && !variable.label.includes(variable.units)) {\n          variable.label += ` [${variable.units}]`;\n        }\n      }\n    }\n\n    analysis.pushSpectrum(currentSpectrum.variables, {\n      dataType: entry.dataType,\n      title: entry.title,\n      meta: entry.meta,\n    });\n  }\n}\n","export function addStyle(serie, spectrum, options = {}) {\n  let { color = '#A9A9A9', opacity = 1, lineWidth = 1 } = options;\n  if (color.match(/#[0-9A-F]{6}$/i)) {\n    color = (color + ((opacity * 255) >> 0).toString(16)).toUpperCase();\n  } else {\n    color = color.replace(/rgb ?\\((.*)\\)/, `rgba($1,${opacity})`);\n  }\n  serie.style = [\n    {\n      name: 'unselected',\n      style: {\n        line: {\n          color,\n          width: lineWidth,\n          dash: 1,\n        },\n      },\n    },\n    {\n      name: 'selected',\n      style: {\n        line: {\n          color,\n          width: lineWidth + 2,\n          dash: 1,\n        },\n      },\n    },\n  ];\n  serie.name = spectrum.label || spectrum.id;\n}\n","export const COLORS = [\n  '#FFB300',\n  '#803E75',\n  '#FF6800',\n  '#A6BDD7',\n  '#C10020',\n  '#CEA262',\n  '#817066',\n  '#007D34',\n  '#F6768E',\n  '#00538A',\n  '#FF7A5C',\n  '#53377A',\n  '#FF8E00',\n  '#B32851',\n  '#F4C800',\n  '#7F180D',\n  '#93AA00',\n  '#593315',\n  '#F13A13',\n  '#232C16',\n];\n","import { addStyle } from './addStyle';\nimport { COLORS } from './colors';\n/**\n * Generate a jsgraph chart format from an array of Analysis\n * @param {Array<Analysis>} analyses\n * @param {object} [options={}]\n * @param {Array} [options.ids] List of spectra ids, by all\n * @param {Array} [options.colors] List of colors\n * @param {Array} [options.opacities=[1]] List of opacities\n * @param {Array} [options.linesWidth=[1]] List of linesWidth\n * @param {object} [options.selector={}]\n * @param {object} [options.normalization]\n */\nexport function getJSGraph(analyses, options = {}) {\n  const {\n    colors = COLORS,\n    opacities = [1],\n    linesWidth = [1],\n    selector,\n    normalization,\n  } = options;\n  let series = [];\n\n  let xLabel = '';\n  let yLabel = '';\n\n  for (let i = 0; i < analyses.length; i++) {\n    const analysis = analyses[i];\n    let serie = {};\n    let currentData = analysis.getNormalizedSpectrum({\n      selector,\n      normalization,\n    });\n    if (!currentData) continue;\n    if (!xLabel) xLabel = currentData.variables.x.label;\n    if (!yLabel) yLabel = currentData.variables.y.label;\n    addStyle(serie, analysis, {\n      color: colors[i % colors.length],\n      opacity: opacities[i % opacities.length],\n      lineWidth: linesWidth[i % linesWidth.length],\n    });\n    serie.data = {\n      x: currentData.variables.x.data,\n      y: currentData.variables.y.data,\n    };\n    series.push(serie);\n  }\n  return {\n    axes: {\n      x: {\n        label: xLabel,\n        unit: '',\n        unitWrapperBefore: '',\n        unitWrapperAfter: '',\n        flipped: false,\n        display: true,\n      },\n      y: {\n        label: yLabel,\n        unit: '',\n        unitWrapperBefore: '',\n        unitWrapperAfter: '',\n        flipped: false,\n        display: true,\n      },\n    },\n    series,\n  };\n}\n","export function getNormalizationAnnotations(filter = {}, boundary) {\n  let { exclusions = [] } = filter;\n  let annotations = [];\n  exclusions = exclusions.filter((exclusion) => !exclusion.ignore);\n  annotations = exclusions.map((exclusion) => {\n    let annotation = {\n      type: 'rect',\n      position: [\n        { x: exclusion.from, y: boundary.y.min },\n        { x: exclusion.to, y: boundary.y.max },\n      ],\n      strokeWidth: 0,\n      fillColor: 'rgba(255,255,224,1)',\n    };\n    return annotation;\n  });\n  if (filter.from !== undefined) {\n    annotations.push({\n      type: 'rect',\n      position: [\n        { x: Number.MIN_SAFE_INTEGER, y: boundary.y.min },\n        { x: filter.from, y: boundary.y.max },\n      ],\n      strokeWidth: 0,\n      fillColor: 'rgba(255,255,224,1)',\n    });\n  }\n  if (filter.to !== undefined) {\n    annotations.push({\n      type: 'rect',\n      position: [\n        { x: filter.to, y: boundary.y.min },\n        { x: Number.MAX_SAFE_INTEGER, y: boundary.y.max },\n      ],\n      strokeWidth: 0,\n      fillColor: 'rgba(255,255,224,1)',\n    });\n  }\n  return annotations;\n}\n","import maxFct from 'ml-array-max';\nimport minFct from 'ml-array-min';\n\n/**\n * Parse from a xyxy data array\n * @param {Array<Array<number>>} variables\n * @param {object} [meta] - same metadata object format that the fromText\n * @return {string} JCAMP of the input\n */\nexport default function creatorNtuples(variables, options) {\n  const { meta = {}, info = {} } = options;\n\n  const { title = '', owner = '', origin = '', dataType = '' } = info;\n\n  const symbol = [];\n  const varName = [];\n  const varType = [];\n  const varDim = [];\n  const units = [];\n  const first = [];\n  const last = [];\n  const min = [];\n  const max = [];\n  const factor = [];\n\n  const keys = Object.keys(variables);\n  for (let i = 0; i < keys.length; i++) {\n    const key = keys[i];\n    let variable = variables[key];\n\n    let name = variable.label && variable.label.replace(/ *\\[.*/, '');\n    let unit = variable.label && variable.label.replace(/.*\\[(.*)\\].*/, '$1');\n\n    symbol.push(variable.symbol || key);\n    varName.push(variable.name || name || key);\n    varDim.push(variables[key].data.length);\n\n    varType.push(\n      variable.type\n        ? variable.type.toUpperCase()\n        : i === 0\n        ? 'INDEPENDENT'\n        : 'DEPENDENT',\n    );\n    units.push(variable.units || unit || '');\n    first.push(variables[key][0]);\n    last.push(variables[key][variables[key].length - 1]);\n    min.push(minFct(variables[key].data));\n    max.push(maxFct(variables[key].data));\n    factor.push(1);\n  }\n\n  let header = `##TITLE=${title}\n##JCAMP-DX=6.00\n##DATA TYPE=${dataType}\n##ORIGIN=${origin}\n##OWNER=${owner}\\n`;\n\n  for (const key of Object.keys(meta)) {\n    header += `##$${key}=${meta[key]}\\n`;\n  }\n\n  header += `##NTUPLES= ${dataType}\n##VAR_NAME=  ${varName.join()}\n##SYMBOL=    ${symbol.join()}\n##VAR_TYPE=  ${varType.join()}\n##VAR_DIM=   ${varDim.join()}\n##UNITS=     ${units.join()}\n##PAGE= N=1\\n`;\n\n  header += `##DATA TABLE= (${symbol.join('')}..${symbol.join('')}), PEAKS\\n`;\n\n  for (let i = 0; i < variables[keys[0]].data.length; i++) {\n    let point = [];\n    for (let key of keys) {\n      point.push(variables[key].data[i]);\n    }\n    header += `${point.join('\\t')}\\n`;\n  }\n\n  header += '##END';\n  return header;\n}\n","/**\n * Create a jcamp\n * @param {object} data - object of array\n * @param {object} [options={}] - metadata object\n * @param {string} [options.info={}] - metadata of the file\n * @param {string} [options.info.title = ''] - title of the file\n * @param {string} [options.info.owner = ''] - owner of the file\n * @param {string} [options.info.origin = ''] - origin of the file\n * @param {string} [options.info.dataType = ''] - type of data\n * @param {string} [options.info.xUnits = ''] - units for the x axis for variables===undefined\n * @param {string} [options.info.yUnits = ''] - units for the y axis for variables===undefined\n * @param {object} [options.meta = {}] - comments to add to the file\n\n * @return {string} JCAMP of the input\n */\nexport function fromJSON(data, options = {}) {\n  const { meta = {}, info = {} } = options;\n\n  const {\n    title = '',\n    owner = '',\n    origin = '',\n    dataType = '',\n    xUnits = '',\n    yUnits = '',\n  } = info;\n  let firstX = Number.POSITIVE_INFINITY;\n  let lastX = Number.NEGATIVE_INFINITY;\n  let firstY = Number.POSITIVE_INFINITY;\n  let lastY = Number.NEGATIVE_INFINITY;\n  let points = [];\n\n  for (let i = 0; i < data.x.length; i++) {\n    let x = data.x[i];\n    let y = data.y[i];\n    if (firstX > x) {\n      firstX = x;\n    }\n    if (lastX < x) {\n      lastX = x;\n    }\n    if (firstY > y) {\n      firstY = y;\n    }\n    if (lastY < y) {\n      lastY = y;\n    }\n    points.push(`${x} ${y}`);\n  }\n\n  let header = `##TITLE=${title}\n##JCAMP-DX=4.24\n##DATA TYPE=${dataType}\n##ORIGIN=${origin}\n##OWNER=${owner}\n##XUNITS=${xUnits}\n##YUNITS=${yUnits}\n##FIRSTX=${firstX}\n##LASTX=${lastX}\n##FIRSTY=${firstY}\n##LASTY=${lastY}\\n`;\n\n  for (const key of Object.keys(meta)) {\n    header += `##$${key}=${meta[key]}\\n`;\n  }\n\n  // we leave the header and utf8 fonts ${header.replace(/[^\\t\\r\\n\\x20-\\x7F]/g, '')\n\n  return `${header}##NPOINTS=${points.length}\n##PEAK TABLE=(XY..XY)\n${points.join('\\n')}\n##END`;\n}\n","import creatorNtuples from './creatorNtuples';\nimport { fromJSON } from './fromJSON';\n\n/**\n * Create a jcamp from variables\n * @param {Array<Variable} [variables={}] - object of variables\n * @param {string} [options.info={}] - metadata of the file\n * @param {string} [options.info.title = ''] - title of the file\n * @param {string} [options.info.owner = ''] - owner of the file\n * @param {string} [options.info.origin = ''] - origin of the file\n * @param {string} [options.info.dataType = ''] - type of data\n * @param {object} [options.meta = {}] - comments to add to the file\n * @param {object} [options.forceNtuples = false] - force the ntuples format even if there is only x and y variables\n */\nexport function fromVariables(variables = {}, options = {}) {\n  const { info, meta, forceNtuples } = options;\n\n  let jcampOptions = {\n    info,\n    meta,\n  };\n\n  let keys = Object.keys(variables).map((key) => key.toLowerCase());\n  if (\n    keys.length === 2 &&\n    keys.includes('x') &&\n    keys.includes('y') &&\n    !forceNtuples\n  ) {\n    let x = variables.x;\n    let xLabel = x.label || x.name || 'x';\n\n    jcampOptions.info.xUnits = xLabel.includes(variables.x.units)\n      ? xLabel\n      : `${xLabel} [${variables.x.units}]`;\n\n    let y = variables.y;\n    let yLabel = y.label || y.name || 'y';\n\n    jcampOptions.info.yUnits = yLabel.includes(variables.y.units)\n      ? yLabel\n      : `${yLabel} [${variables.y.units}]`;\n    return fromJSON({ x: variables.x.data, y: variables.y.data }, jcampOptions);\n  } else {\n    return creatorNtuples(variables, options);\n  }\n}\n","import { fromVariables } from 'convert-to-jcamp';\n\nexport function toJcamps(analysis, options = {}) {\n  let jcamps = [];\n  for (let spectrum of analysis.spectra) {\n    jcamps.push(getJcamp(spectrum, options));\n  }\n  return jcamps;\n}\n\nfunction getJcamp(spectrum, options) {\n  const { info = {}, meta = {} } = options;\n\n  let jcampOptions = {\n    options: {},\n    info: {\n      title: spectrum.title,\n      dataType: spectrum.dataType,\n      ...info,\n    },\n    meta: { ...spectrum.meta, ...meta },\n  };\n\n  return fromVariables(spectrum.variables, jcampOptions);\n}\n","import { toJcamps } from './toJcamps';\n\nexport function toJcamp(analysis, options = {}) {\n  return toJcamps(analysis, options).join('\\n');\n}\n","import sum from 'ml-array-sum';\n\nfunction mean(input) {\n  return sum(input) / input.length;\n}\n\nexport default mean;\n","export function lineSplitTrim(line) {\n  return lineSplit(line)[1].trim();\n}\n\nexport function lineSplit(line) {\n  return line.split(/\\s{4,}/);\n}\n\nexport function lineSplitComma(line) {\n  return line.split(',')[1];\n}\n","import mean from 'ml-array-mean';\n\nimport { Analysis } from '..';\n\nimport { lineSplitTrim } from './utils';\n\nfunction parseIGAMeasurmentHeader(lines) {\n  let metaData = {};\n  // Let's use some cleaner names\n  metaData.systemType = lineSplitTrim(lines[0]);\n  metaData.systemOwner = lineSplitTrim(lines[1]);\n  metaData.systemReference = lineSplitTrim(lines[2]);\n  metaData.systemSerialNumber = lineSplitTrim(lines[3]);\n  metaData.sampleNumber = lineSplitTrim(lines[4]);\n  metaData.experimentType = lineSplitTrim(lines[5]);\n  // eslint-disable-next-line radix\n  metaData.experimentNumber = parseInt(lineSplitTrim(lines[6]));\n  metaData.title = lineSplitTrim(lines[7]);\n  metaData.comment = lineSplitTrim(lines[8]);\n  metaData.source = lineSplitTrim(lines[9]);\n  metaData.batch = lineSplitTrim(lines[10]);\n  metaData.id = lineSplitTrim(lines[11]);\n  metaData.experimentTitle = lineSplitTrim(lines[12]);\n  let tmp = lineSplitTrim(lines[14]).split(/\\s/);\n  metaData.sampleWeight = parseFloat(tmp[0]);\n  metaData.sampleWeightUnit = tmp[1];\n\n  tmp = lineSplitTrim(lines[15]).split(/\\s/);\n  metaData.sampleWeightDry = parseFloat(tmp[0]);\n  metaData.sampleWeightDryUnit = tmp[1];\n\n  tmp = lineSplitTrim(lines[18]).split(/\\s/);\n  metaData.balanceTrimV = parseFloat(tmp[0]);\n  metaData.balanceTrimVUnit = tmp[1];\n\n  metaData.balanceTrimT = lineSplitTrim(lines[19]);\n\n  tmp = lineSplitTrim(lines[20]).split(/\\s/);\n  metaData.counterWeightM = parseFloat(tmp[0]);\n  metaData.counterWeightMUnit = tmp[1];\n\n  tmp = lineSplitTrim(lines[21]).split(/\\s/);\n  metaData.counterWeightRho = parseFloat(tmp[0]);\n  metaData.counterWeightRhoUnit = tmp[1];\n\n  metaData.counterWeightT = lineSplitTrim(lines[22]);\n\n  tmp = lineSplitTrim(lines[23]).split(/\\s/);\n  metaData.tungstenM = parseFloat(tmp[0]);\n  metaData.tungstenMUnit = tmp[1];\n\n  tmp = lineSplitTrim(lines[24]).split(/\\s/);\n  metaData.tungstenRho = parseFloat(tmp[0]);\n  metaData.tungstenRhoUnit = tmp[1];\n\n  metaData.counterWeightT = lineSplitTrim(lines[25]);\n\n  tmp = lineSplitTrim(lines[26]).split(/\\s/);\n  metaData.chainExcessM = parseFloat(tmp[0]);\n  metaData.chainExcessMUnit = tmp[1];\n\n  tmp = lineSplitTrim(lines[27]).split(/\\s/);\n  metaData.chainExcessRho = parseFloat(tmp[0]);\n  metaData.chainExcessRhoUnit = tmp[1];\n\n  metaData.chainExcessT = lineSplitTrim(lines[28]);\n\n  metaData.applicationCode = lineSplitTrim(lines[44]);\n  metaData.mode = lineSplitTrim(lines[44]);\n  metaData.source = lineSplitTrim(lines[45]);\n  metaData.gasSource = lineSplitTrim(lines[46]);\n  metaData.vessel = lineSplitTrim(lines[47]);\n  metaData.reactor = lineSplitTrim(lines[48]);\n  metaData.pressureSensor = lineSplitTrim(lines[49]);\n  metaData.thermostat = lineSplitTrim(lines[50]);\n\n  metaData.nitrogenEOS = lineSplitTrim(lines[51]);\n  metaData.nitrogenSVP = lineSplitTrim(lines[52]);\n\n  metaData.seriesType = lineSplitTrim(lines[59]);\n\n  metaData.scan = parseInt(lineSplitTrim(lines[61]), 10);\n  metaData.course = lineSplitTrim(lines[62]);\n  metaData.referenceStateDevice = lineSplitTrim(lines[63]);\n  metaData.scanTitle = lineSplitTrim(lines[64]);\n  metaData.scanStart = lineSplitTrim(lines[65]);\n\n  return metaData;\n}\n\nfunction getLineNumbersOfMeasurement(lines) {\n  let starts = [];\n  let ends = [];\n  for (let [index, line] of lines.entries()) {\n    if (line.match('S E R I E S   D A T A   R E C O R D')) {\n      starts.push(index);\n    } else if (line.match('Scan Ends ')) {\n      ends.push(index + 2);\n    }\n  }\n  return [starts, ends];\n}\n\nfunction parseIGADataBlock(lines) {\n  let dataBlock = {\n    pressure: [],\n    gasDensity: [],\n    pp0: [],\n    totalWeight: [],\n    bet: [],\n    excessAdsorptionPercentage: [],\n    excessAdsorption: [],\n    sampleT: [],\n    wtPercent: [],\n  };\n\n  for (let line of lines) {\n    let tmp = line.split(/\\s{3,}/);\n    dataBlock.pressure.push(parseFloat(tmp[0]) * 0.1);\n    dataBlock.gasDensity.push(parseFloat(tmp[1]));\n    dataBlock.pp0.push(parseFloat(tmp[2]));\n    dataBlock.totalWeight.push(parseFloat(tmp[3]));\n    dataBlock.excessAdsorptionPercentage.push(parseFloat(tmp[4]));\n    dataBlock.excessAdsorption.push(parseFloat(tmp[5]));\n    dataBlock.bet.push(parseFloat(tmp[6]));\n    dataBlock.sampleT.push(parseFloat(tmp[7]));\n    dataBlock.wtPercent.push(parseFloat(tmp[8]));\n  }\n  return dataBlock;\n}\n\nfunction parseOneIGA(lines) {\n  const measLen = lines.length;\n  let meta = parseIGAMeasurmentHeader(lines.slice(2, 68));\n  const dataBlock = parseIGADataBlock(lines.slice(72, measLen - 3));\n  meta.scanEnd = lineSplitTrim(lines[measLen - 2]);\n  meta.scanReferenceState = lineSplitTrim(lines[measLen - 1]);\n  return { meta: meta, data: dataBlock };\n}\n/**\n * Creates a new Analysis element\n * @param {string} text - String containing the IGA analysis data, maybe contain multiple measurements\n * @return {Analysis} - New class element with the given data\n */\nexport function fromIGA(text) {\n  const lines = text.split(/[\\r\\n]+/);\n\n  const lineNumbers = getLineNumbersOfMeasurement(lines);\n  let analysis = new Analysis();\n  for (let i = 0; i < lineNumbers[0].length; i++) {\n    let meas = parseOneIGA(lines.slice(lineNumbers[0][i], lineNumbers[1][i]));\n\n    meas.meta.adsorptionT = mean(meas.data.sampleT);\n    meas.meta.adsorptionTUnit = '°C';\n\n    analysis.pushSpectrum(\n      {\n        x: {\n          data: meas.data.pp0,\n          label: 'relative pressure',\n          type: 'independent',\n        },\n        p: {\n          data: meas.data.pressure,\n          label: 'Pressure  [kPa]',\n          type: 'independent',\n        },\n        y: {\n          data: meas.data.excessAdsorption,\n          label: 'Excess Adsorption [mmol/g]',\n          type: 'dependent',\n        },\n        r: {\n          data: meas.data.excessAdsorptionPercentage,\n          label: 'Excess Adsorption [%]',\n          type: 'dependent',\n        },\n        t: {\n          data: meas.data.sampleT,\n          label: 'Sample Temperature [°C]',\n          type: 'independent',\n        },\n      },\n      {\n        dataType: 'Adsorption Isotherm',\n        title: meas.meta.experimentTitle,\n        meta: meas.meta,\n      },\n    );\n  }\n  return analysis;\n}\n\nexport const testables = {\n  getLineNumbersOfMeasurement: getLineNumbersOfMeasurement,\n  parseIGAMeasurmentHeader: parseIGAMeasurmentHeader,\n  parseIGADataBlock: parseIGADataBlock,\n  parseOneIGA: parseOneIGA,\n};\n","import { Analysis } from '..';\n\nimport { lineSplit } from './utils';\n\nfunction parseMetaBlock(lines, dataStartIndex) {\n  let meta = {};\n  for (let i = dataStartIndex - 13; i < dataStartIndex; i++) {\n    if (lines[i].match('Sample: ')) {\n      meta.sample = lineSplit(lines[i])[2].trim();\n    }\n    if (lines[i].match('Operator:  ')) {\n      meta.operator = lineSplit(lines[i])[1].trim();\n    }\n    if (lines[i].match('Submitter: ')) {\n      meta.submitter = lineSplit(lines[i])[1].trim();\n    }\n    if (lines[i].match('File: ')) {\n      meta.file = lineSplit(lines[i])[2].trim();\n    }\n    if (lines[i].match('Started: ')) {\n      meta.started = lineSplit(lines[i])[2].trim();\n    }\n    if (lines[i].match('Analysis adsorptive: ')) {\n      meta.adsorptive = lineSplit(lines[i])[4].trim();\n    }\n    if (lines[i].match('Completed: ')) {\n      meta.completed = lineSplit(lines[i])[2].trim();\n    }\n    if (lines[i].match('Equilibration time: ')) {\n      let time = lineSplit(lines[i])[4].trim().split(' ');\n      meta.equilibrationTime = parseFloat(time[0]);\n      meta.equilibrationTimeUnit = time[1];\n    }\n    if (lines[i].match('Report time: ')) {\n      meta.reportTime = lineSplit(lines[i])[2].trim();\n    }\n    if (lines[i].match('Sample mass: ')) {\n      let mass = lineSplit(lines[i])[2].trim().split(' ');\n      meta.sampleWeight = parseFloat(mass[0]);\n      meta.sampleWeightUnit = mass[1];\n    }\n    if (lines[i].match('Gemini model: ')) {\n      meta.model = lineSplit(lines[i])[4].trim();\n    }\n    if (lines[i].match('Sample density: ')) {\n      let density = lineSplit(lines[i])[3].split(' ');\n      meta.sampleDensity = parseFloat(density[0]);\n      meta.sampleDensityUnit = density[1];\n    }\n    if (lines[i].match('Evac. rate:  ')) {\n      let evacRate = lineSplit(lines[i])[2].split(' ');\n      meta.evacRate = parseFloat(evacRate[0]);\n      meta.evacRateUnit = evacRate[1];\n    }\n  }\n  return meta;\n}\nfunction findDataBlocks(lines) {\n  let isothermTableStarts = [];\n  let isothermTableEnds = [];\n  let isIsothermTable = false;\n  for (let i = 0; i < lines.length; i++) {\n    if (lines[i].match('Isotherm Tabular Report')) {\n      isIsothermTable = true;\n      isothermTableStarts.push(i);\n    }\n\n    if (isIsothermTable && lines[i].match('Micromeritics')) {\n      isothermTableEnds.push(i);\n      isIsothermTable = false;\n    }\n  }\n\n  return [isothermTableStarts, isothermTableEnds];\n}\nfunction parseIsothermTable(lines) {\n  let pSat = parseFloat(lines[5].trim() * 0.13332); // convert mmHg to kPa\n  let data = {\n    x: [],\n    y: [],\n    p: [],\n  };\n  data.pSat = pSat;\n  let parts;\n  for (let i = 6; i < lines.length; i++) {\n    parts = lineSplit(lines[i]);\n    data.x.push(parseFloat(parts[0]));\n    data.y.push(parseFloat(parts[2]));\n    data.p.push(parseFloat(parts[1]) * 0.13332); // convert mmHg to kPa\n  }\n  return data;\n}\n\nexport function fromMicrometricsTXT(text) {\n  const lines = text.split(/\\r?\\n/).filter((line) => !line.match(/^\\s*$/));\n  let startsAndEnds = findDataBlocks(lines);\n  let analysis = new Analysis();\n  let data;\n  let type = 'Adsorption Isotherm';\n  for (let i = 0; i < startsAndEnds[0].length; i++) {\n    data = parseIsothermTable(\n      lines.slice(startsAndEnds[0][i], startsAndEnds[1][i]),\n    );\n\n    let meta = parseMetaBlock(lines, startsAndEnds[0][i]);\n    meta.pSat = data.pSat;\n\n    if (data.x[1] > data.x[data.x.length - 1]) {\n      type = 'Desorption Isotherm';\n    }\n    analysis.pushSpectrum(\n      {\n        x: {\n          data: data.x,\n          label: 'relative pressure',\n          type: 'independent',\n        },\n        y: {\n          data: data.y,\n          label: 'Excess Adsorption [mmol/g]',\n          type: 'dependent',\n        },\n        p: {\n          data: data.p,\n          label: 'Pressure [kPa]',\n          type: 'independent',\n        },\n      },\n      {\n        dataType: type,\n        title: meta.sample,\n        meta: meta,\n      },\n    );\n  }\n\n  return analysis;\n}\n\nexport const testables = {\n  findDataBlocks: findDataBlocks,\n  parseIsothermTable: parseIsothermTable,\n  parseMetaBlock: parseMetaBlock,\n};\n","/* @license\nPapa Parse\nv5.3.0\nhttps://github.com/mholt/PapaParse\nLicense: MIT\n*/\n!function(e,t){\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof module&&\"undefined\"!=typeof exports?module.exports=t():e.Papa=t()}(this,function s(){\"use strict\";var f=\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:void 0!==f?f:{};var n=!f.document&&!!f.postMessage,o=n&&/blob:/i.test((f.location||{}).protocol),a={},h=0,b={parse:function(e,t){var i=(t=t||{}).dynamicTyping||!1;U(i)&&(t.dynamicTypingFunction=i,i={});if(t.dynamicTyping=i,t.transform=!!U(t.transform)&&t.transform,t.worker&&b.WORKERS_SUPPORTED){var r=function(){if(!b.WORKERS_SUPPORTED)return!1;var e=(i=f.URL||f.webkitURL||null,r=s.toString(),b.BLOB_URL||(b.BLOB_URL=i.createObjectURL(new Blob([\"(\",r,\")();\"],{type:\"text/javascript\"})))),t=new f.Worker(e);var i,r;return t.onmessage=m,t.id=h++,a[t.id]=t}();return r.userStep=t.step,r.userChunk=t.chunk,r.userComplete=t.complete,r.userError=t.error,t.step=U(t.step),t.chunk=U(t.chunk),t.complete=U(t.complete),t.error=U(t.error),delete t.worker,void r.postMessage({input:e,config:t,workerId:r.id})}var n=null;b.NODE_STREAM_INPUT,\"string\"==typeof e?n=t.download?new l(t):new p(t):!0===e.readable&&U(e.read)&&U(e.on)?n=new g(t):(f.File&&e instanceof File||e instanceof Object)&&(n=new c(t));return n.stream(e)},unparse:function(e,t){var n=!1,m=!0,_=\",\",v=\"\\r\\n\",s='\"',a=s+s,i=!1,r=null,o=!1;!function(){if(\"object\"!=typeof t)return;\"string\"!=typeof t.delimiter||b.BAD_DELIMITERS.filter(function(e){return-1!==t.delimiter.indexOf(e)}).length||(_=t.delimiter);(\"boolean\"==typeof t.quotes||\"function\"==typeof t.quotes||Array.isArray(t.quotes))&&(n=t.quotes);\"boolean\"!=typeof t.skipEmptyLines&&\"string\"!=typeof t.skipEmptyLines||(i=t.skipEmptyLines);\"string\"==typeof t.newline&&(v=t.newline);\"string\"==typeof t.quoteChar&&(s=t.quoteChar);\"boolean\"==typeof t.header&&(m=t.header);if(Array.isArray(t.columns)){if(0===t.columns.length)throw new Error(\"Option columns is empty\");r=t.columns}void 0!==t.escapeChar&&(a=t.escapeChar+s);\"boolean\"==typeof t.escapeFormulae&&(o=t.escapeFormulae)}();var h=new RegExp(q(s),\"g\");\"string\"==typeof e&&(e=JSON.parse(e));if(Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return f(null,e,i);if(\"object\"==typeof e[0])return f(r||u(e[0]),e,i)}else if(\"object\"==typeof e)return\"string\"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:u(e.data[0])),Array.isArray(e.data[0])||\"object\"==typeof e.data[0]||(e.data=[e.data])),f(e.fields||[],e.data||[],i);throw new Error(\"Unable to serialize unrecognized input\");function u(e){if(\"object\"!=typeof e)return[];var t=[];for(var i in e)t.push(i);return t}function f(e,t,i){var r=\"\";\"string\"==typeof e&&(e=JSON.parse(e)),\"string\"==typeof t&&(t=JSON.parse(t));var n=Array.isArray(e)&&0<e.length,s=!Array.isArray(t[0]);if(n&&m){for(var a=0;a<e.length;a++)0<a&&(r+=_),r+=y(e[a],a);0<t.length&&(r+=v)}for(var o=0;o<t.length;o++){var h=n?e.length:t[o].length,u=!1,f=n?0===Object.keys(t[o]).length:0===t[o].length;if(i&&!n&&(u=\"greedy\"===i?\"\"===t[o].join(\"\").trim():1===t[o].length&&0===t[o][0].length),\"greedy\"===i&&n){for(var d=[],l=0;l<h;l++){var c=s?e[l]:l;d.push(t[o][c])}u=\"\"===d.join(\"\").trim()}if(!u){for(var p=0;p<h;p++){0<p&&!f&&(r+=_);var g=n&&s?e[p]:p;r+=y(t[o][g],p)}o<t.length-1&&(!i||0<h&&!f)&&(r+=v)}}return r}function y(e,t){if(null==e)return\"\";if(e.constructor===Date)return JSON.stringify(e).slice(1,25);!0===o&&\"string\"==typeof e&&null!==e.match(/^[=+\\-@].*$/)&&(e=\"'\"+e);var i=e.toString().replace(h,a),r=\"boolean\"==typeof n&&n||\"function\"==typeof n&&n(e,t)||Array.isArray(n)&&n[t]||function(e,t){for(var i=0;i<t.length;i++)if(-1<e.indexOf(t[i]))return!0;return!1}(i,b.BAD_DELIMITERS)||-1<i.indexOf(_)||\" \"===i.charAt(0)||\" \"===i.charAt(i.length-1);return r?s+i+s:i}}};if(b.RECORD_SEP=String.fromCharCode(30),b.UNIT_SEP=String.fromCharCode(31),b.BYTE_ORDER_MARK=\"\\ufeff\",b.BAD_DELIMITERS=[\"\\r\",\"\\n\",'\"',b.BYTE_ORDER_MARK],b.WORKERS_SUPPORTED=!n&&!!f.Worker,b.NODE_STREAM_INPUT=1,b.LocalChunkSize=10485760,b.RemoteChunkSize=5242880,b.DefaultDelimiter=\",\",b.Parser=w,b.ParserHandle=i,b.NetworkStreamer=l,b.FileStreamer=c,b.StringStreamer=p,b.ReadableStreamStreamer=g,f.jQuery){var d=f.jQuery;d.fn.parse=function(o){var i=o.config||{},h=[];return this.each(function(e){if(!(\"INPUT\"===d(this).prop(\"tagName\").toUpperCase()&&\"file\"===d(this).attr(\"type\").toLowerCase()&&f.FileReader)||!this.files||0===this.files.length)return!0;for(var t=0;t<this.files.length;t++)h.push({file:this.files[t],inputElem:this,instanceConfig:d.extend({},i)})}),e(),this;function e(){if(0!==h.length){var e,t,i,r,n=h[0];if(U(o.before)){var s=o.before(n.file,n.inputElem);if(\"object\"==typeof s){if(\"abort\"===s.action)return e=\"AbortError\",t=n.file,i=n.inputElem,r=s.reason,void(U(o.error)&&o.error({name:e},t,i,r));if(\"skip\"===s.action)return void u();\"object\"==typeof s.config&&(n.instanceConfig=d.extend(n.instanceConfig,s.config))}else if(\"skip\"===s)return void u()}var a=n.instanceConfig.complete;n.instanceConfig.complete=function(e){U(a)&&a(e,n.file,n.inputElem),u()},b.parse(n.file,n.instanceConfig)}else U(o.complete)&&o.complete()}function u(){h.splice(0,1),e()}}}function u(e){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine=\"\",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},function(e){var t=E(e);t.chunkSize=parseInt(t.chunkSize),e.step||e.chunk||(t.chunkSize=null);this._handle=new i(t),(this._handle.streamer=this)._config=t}.call(this,e),this.parseChunk=function(e,t){if(this.isFirstChunk&&U(this._config.beforeFirstChunk)){var i=this._config.beforeFirstChunk(e);void 0!==i&&(e=i)}this.isFirstChunk=!1,this._halted=!1;var r=this._partialLine+e;this._partialLine=\"\";var n=this._handle.parse(r,this._baseIndex,!this._finished);if(!this._handle.paused()&&!this._handle.aborted()){var s=n.meta.cursor;this._finished||(this._partialLine=r.substring(s-this._baseIndex),this._baseIndex=s),n&&n.data&&(this._rowCount+=n.data.length);var a=this._finished||this._config.preview&&this._rowCount>=this._config.preview;if(o)f.postMessage({results:n,workerId:b.WORKER_ID,finished:a});else if(U(this._config.chunk)&&!t){if(this._config.chunk(n,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);n=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(n.data),this._completeResults.errors=this._completeResults.errors.concat(n.errors),this._completeResults.meta=n.meta),this._completed||!a||!U(this._config.complete)||n&&n.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),a||n&&n.meta.paused||this._nextChunk(),n}this._halted=!0},this._sendError=function(e){U(this._config.error)?this._config.error(e):o&&this._config.error&&f.postMessage({workerId:b.WORKER_ID,error:e,finished:!1})}}function l(e){var r;(e=e||{}).chunkSize||(e.chunkSize=b.RemoteChunkSize),u.call(this,e),this._nextChunk=n?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(r=new XMLHttpRequest,this._config.withCredentials&&(r.withCredentials=this._config.withCredentials),n||(r.onload=y(this._chunkLoaded,this),r.onerror=y(this._chunkError,this)),r.open(this._config.downloadRequestBody?\"POST\":\"GET\",this._input,!n),this._config.downloadRequestHeaders){var e=this._config.downloadRequestHeaders;for(var t in e)r.setRequestHeader(t,e[t])}if(this._config.chunkSize){var i=this._start+this._config.chunkSize-1;r.setRequestHeader(\"Range\",\"bytes=\"+this._start+\"-\"+i)}try{r.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}n&&0===r.status&&this._chunkError()}},this._chunkLoaded=function(){4===r.readyState&&(r.status<200||400<=r.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:r.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(e){var t=e.getResponseHeader(\"Content-Range\");if(null===t)return-1;return parseInt(t.substring(t.lastIndexOf(\"/\")+1))}(r),this.parseChunk(r.responseText)))},this._chunkError=function(e){var t=r.statusText||e;this._sendError(new Error(t))}}function c(e){var r,n;(e=e||{}).chunkSize||(e.chunkSize=b.LocalChunkSize),u.call(this,e);var s=\"undefined\"!=typeof FileReader;this.stream=function(e){this._input=e,n=e.slice||e.webkitSlice||e.mozSlice,s?((r=new FileReader).onload=y(this._chunkLoaded,this),r.onerror=y(this._chunkError,this)):r=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var e=this._input;if(this._config.chunkSize){var t=Math.min(this._start+this._config.chunkSize,this._input.size);e=n.call(e,this._start,t)}var i=r.readAsText(e,this._config.encoding);s||this._chunkLoaded({target:{result:i}})},this._chunkLoaded=function(e){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(r.error)}}function p(e){var i;u.call(this,e=e||{}),this.stream=function(e){return i=e,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var e,t=this._config.chunkSize;return t?(e=i.substring(0,t),i=i.substring(t)):(e=i,i=\"\"),this._finished=!i,this.parseChunk(e)}}}function g(e){u.call(this,e=e||{});var t=[],i=!0,r=!1;this.pause=function(){u.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){u.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on(\"data\",this._streamData),this._input.on(\"end\",this._streamEnd),this._input.on(\"error\",this._streamError)},this._checkIsFinished=function(){r&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):i=!0},this._streamData=y(function(e){try{t.push(\"string\"==typeof e?e:e.toString(this._config.encoding)),i&&(i=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}},this),this._streamError=y(function(e){this._streamCleanUp(),this._sendError(e)},this),this._streamEnd=y(function(){this._streamCleanUp(),r=!0,this._streamData(\"\")},this),this._streamCleanUp=y(function(){this._input.removeListener(\"data\",this._streamData),this._input.removeListener(\"end\",this._streamEnd),this._input.removeListener(\"error\",this._streamError)},this)}function i(_){var a,o,h,r=Math.pow(2,53),n=-r,s=/^\\s*-?(\\d+\\.?|\\.\\d+|\\d+\\.\\d+)(e[-+]?\\d+)?\\s*$/,u=/(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))/,t=this,i=0,f=0,d=!1,e=!1,l=[],c={data:[],errors:[],meta:{}};if(U(_.step)){var p=_.step;_.step=function(e){if(c=e,m())g();else{if(g(),0===c.data.length)return;i+=e.data.length,_.preview&&i>_.preview?o.abort():(c.data=c.data[0],p(c,t))}}}function v(e){return\"greedy\"===_.skipEmptyLines?\"\"===e.join(\"\").trim():1===e.length&&0===e[0].length}function g(){if(c&&h&&(k(\"Delimiter\",\"UndetectableDelimiter\",\"Unable to auto-detect delimiting character; defaulted to '\"+b.DefaultDelimiter+\"'\"),h=!1),_.skipEmptyLines)for(var e=0;e<c.data.length;e++)v(c.data[e])&&c.data.splice(e--,1);return m()&&function(){if(!c)return;function e(e,t){U(_.transformHeader)&&(e=_.transformHeader(e,t)),l.push(e)}if(Array.isArray(c.data[0])){for(var t=0;m()&&t<c.data.length;t++)c.data[t].forEach(e);c.data.splice(0,1)}else c.data.forEach(e)}(),function(){if(!c||!_.header&&!_.dynamicTyping&&!_.transform)return c;function e(e,t){var i,r=_.header?{}:[];for(i=0;i<e.length;i++){var n=i,s=e[i];_.header&&(n=i>=l.length?\"__parsed_extra\":l[i]),_.transform&&(s=_.transform(s,n)),s=y(n,s),\"__parsed_extra\"===n?(r[n]=r[n]||[],r[n].push(s)):r[n]=s}return _.header&&(i>l.length?k(\"FieldMismatch\",\"TooManyFields\",\"Too many fields: expected \"+l.length+\" fields but parsed \"+i,f+t):i<l.length&&k(\"FieldMismatch\",\"TooFewFields\",\"Too few fields: expected \"+l.length+\" fields but parsed \"+i,f+t)),r}var t=1;!c.data.length||Array.isArray(c.data[0])?(c.data=c.data.map(e),t=c.data.length):c.data=e(c.data,0);_.header&&c.meta&&(c.meta.fields=l);return f+=t,c}()}function m(){return _.header&&0===l.length}function y(e,t){return i=e,_.dynamicTypingFunction&&void 0===_.dynamicTyping[i]&&(_.dynamicTyping[i]=_.dynamicTypingFunction(i)),!0===(_.dynamicTyping[i]||_.dynamicTyping)?\"true\"===t||\"TRUE\"===t||\"false\"!==t&&\"FALSE\"!==t&&(function(e){if(s.test(e)){var t=parseFloat(e);if(n<t&&t<r)return!0}return!1}(t)?parseFloat(t):u.test(t)?new Date(t):\"\"===t?null:t):t;var i}function k(e,t,i,r){var n={type:e,code:t,message:i};void 0!==r&&(n.row=r),c.errors.push(n)}this.parse=function(e,t,i){var r=_.quoteChar||'\"';if(_.newline||(_.newline=function(e,t){e=e.substring(0,1048576);var i=new RegExp(q(t)+\"([^]*?)\"+q(t),\"gm\"),r=(e=e.replace(i,\"\")).split(\"\\r\"),n=e.split(\"\\n\"),s=1<n.length&&n[0].length<r[0].length;if(1===r.length||s)return\"\\n\";for(var a=0,o=0;o<r.length;o++)\"\\n\"===r[o][0]&&a++;return a>=r.length/2?\"\\r\\n\":\"\\r\"}(e,r)),h=!1,_.delimiter)U(_.delimiter)&&(_.delimiter=_.delimiter(e),c.meta.delimiter=_.delimiter);else{var n=function(e,t,i,r,n){var s,a,o,h;n=n||[\",\",\"\\t\",\"|\",\";\",b.RECORD_SEP,b.UNIT_SEP];for(var u=0;u<n.length;u++){var f=n[u],d=0,l=0,c=0;o=void 0;for(var p=new w({comments:r,delimiter:f,newline:t,preview:10}).parse(e),g=0;g<p.data.length;g++)if(i&&v(p.data[g]))c++;else{var m=p.data[g].length;l+=m,void 0!==o?0<m&&(d+=Math.abs(m-o),o=m):o=m}0<p.data.length&&(l/=p.data.length-c),(void 0===a||d<=a)&&(void 0===h||h<l)&&1.99<l&&(a=d,s=f,h=l)}return{successful:!!(_.delimiter=s),bestDelimiter:s}}(e,_.newline,_.skipEmptyLines,_.comments,_.delimitersToGuess);n.successful?_.delimiter=n.bestDelimiter:(h=!0,_.delimiter=b.DefaultDelimiter),c.meta.delimiter=_.delimiter}var s=E(_);return _.preview&&_.header&&s.preview++,a=e,o=new w(s),c=o.parse(a,t,i),g(),d?{meta:{paused:!0}}:c||{meta:{paused:!1}}},this.paused=function(){return d},this.pause=function(){d=!0,o.abort(),a=U(_.chunk)?\"\":a.substring(o.getCharIndex())},this.resume=function(){t.streamer._halted?(d=!1,t.streamer.parseChunk(a,!0)):setTimeout(t.resume,3)},this.aborted=function(){return e},this.abort=function(){e=!0,o.abort(),c.meta.aborted=!0,U(_.complete)&&_.complete(c),a=\"\"}}function q(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")}function w(e){var O,D=(e=e||{}).delimiter,I=e.newline,T=e.comments,A=e.step,L=e.preview,F=e.fastMode,z=O=void 0===e.quoteChar?'\"':e.quoteChar;if(void 0!==e.escapeChar&&(z=e.escapeChar),(\"string\"!=typeof D||-1<b.BAD_DELIMITERS.indexOf(D))&&(D=\",\"),T===D)throw new Error(\"Comment character same as delimiter\");!0===T?T=\"#\":(\"string\"!=typeof T||-1<b.BAD_DELIMITERS.indexOf(T))&&(T=!1),\"\\n\"!==I&&\"\\r\"!==I&&\"\\r\\n\"!==I&&(I=\"\\n\");var M=0,j=!1;this.parse=function(a,t,i){if(\"string\"!=typeof a)throw new Error(\"Input must be a string\");var r=a.length,e=D.length,n=I.length,s=T.length,o=U(A),h=[],u=[],f=[],d=M=0;if(!a)return R();if(F||!1!==F&&-1===a.indexOf(O)){for(var l=a.split(I),c=0;c<l.length;c++){if(f=l[c],M+=f.length,c!==l.length-1)M+=I.length;else if(i)return R();if(!T||f.substring(0,s)!==T){if(o){if(h=[],b(f.split(D)),S(),j)return R()}else b(f.split(D));if(L&&L<=c)return h=h.slice(0,L),R(!0)}}return R()}for(var p=a.indexOf(D,M),g=a.indexOf(I,M),m=new RegExp(q(z)+q(O),\"g\"),_=a.indexOf(O,M);;)if(a[M]!==O)if(T&&0===f.length&&a.substring(M,M+s)===T){if(-1===g)return R();M=g+n,g=a.indexOf(I,M),p=a.indexOf(D,M)}else{if(-1!==p&&(p<g||-1===g)){if(!(p<_)){f.push(a.substring(M,p)),M=p+e,p=a.indexOf(D,M);continue}var v=x(p,_,g);if(v&&void 0!==v.nextDelim){p=v.nextDelim,_=v.quoteSearch,f.push(a.substring(M,p)),M=p+e,p=a.indexOf(D,M);continue}}if(-1===g)break;if(f.push(a.substring(M,g)),C(g+n),o&&(S(),j))return R();if(L&&h.length>=L)return R(!0)}else for(_=M,M++;;){if(-1===(_=a.indexOf(O,_+1)))return i||u.push({type:\"Quotes\",code:\"MissingQuotes\",message:\"Quoted field unterminated\",row:h.length,index:M}),E();if(_===r-1)return E(a.substring(M,_).replace(m,O));if(O!==z||a[_+1]!==z){if(O===z||0===_||a[_-1]!==z){-1!==p&&p<_+1&&(p=a.indexOf(D,_+1)),-1!==g&&g<_+1&&(g=a.indexOf(I,_+1));var y=w(-1===g?p:Math.min(p,g));if(a[_+1+y]===D){f.push(a.substring(M,_).replace(m,O)),a[M=_+1+y+e]!==O&&(_=a.indexOf(O,M)),p=a.indexOf(D,M),g=a.indexOf(I,M);break}var k=w(g);if(a.substring(_+1+k,_+1+k+n)===I){if(f.push(a.substring(M,_).replace(m,O)),C(_+1+k+n),p=a.indexOf(D,M),_=a.indexOf(O,M),o&&(S(),j))return R();if(L&&h.length>=L)return R(!0);break}u.push({type:\"Quotes\",code:\"InvalidQuotes\",message:\"Trailing quote on quoted field is malformed\",row:h.length,index:M}),_++}}else _++}return E();function b(e){h.push(e),d=M}function w(e){var t=0;if(-1!==e){var i=a.substring(_+1,e);i&&\"\"===i.trim()&&(t=i.length)}return t}function E(e){return i||(void 0===e&&(e=a.substring(M)),f.push(e),M=r,b(f),o&&S()),R()}function C(e){M=e,b(f),f=[],g=a.indexOf(I,M)}function R(e){return{data:h,errors:u,meta:{delimiter:D,linebreak:I,aborted:j,truncated:!!e,cursor:d+(t||0)}}}function S(){A(R()),h=[],u=[]}function x(e,t,i){var r={nextDelim:void 0,quoteSearch:void 0},n=a.indexOf(O,t+1);if(t<e&&e<n&&(n<i||-1===i)){var s=a.indexOf(D,n);if(-1===s)return r;n<s&&(n=a.indexOf(O,n+1)),r=x(s,n,i)}else r={nextDelim:e,quoteSearch:t};return r}},this.abort=function(){j=!0},this.getCharIndex=function(){return M}}function m(e){var t=e.data,i=a[t.workerId],r=!1;if(t.error)i.userError(t.error,t.file);else if(t.results&&t.results.data){var n={abort:function(){r=!0,_(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:v,resume:v};if(U(i.userStep)){for(var s=0;s<t.results.data.length&&(i.userStep({data:t.results.data[s],errors:t.results.errors,meta:t.results.meta},n),!r);s++);delete t.results}else U(i.userChunk)&&(i.userChunk(t.results,n,t.file),delete t.results)}t.finished&&!r&&_(t.workerId,t.results)}function _(e,t){var i=a[e];U(i.userComplete)&&i.userComplete(t),i.terminate(),delete a[e]}function v(){throw new Error(\"Not implemented.\")}function E(e){if(\"object\"!=typeof e||null===e)return e;var t=Array.isArray(e)?[]:{};for(var i in e)t[i]=E(e[i]);return t}function y(e,t){return function(){e.apply(t,arguments)}}function U(e){return\"function\"==typeof e}return o&&(f.onmessage=function(e){var t=e.data;void 0===b.WORKER_ID&&t&&(b.WORKER_ID=t.workerId);if(\"string\"==typeof t.input)f.postMessage({workerId:b.WORKER_ID,results:b.parse(t.input,t.config),finished:!0});else if(f.File&&t.input instanceof File||t.input instanceof Object){var i=b.parse(t.input,t.config);i&&f.postMessage({workerId:b.WORKER_ID,results:i,finished:!0})}}),(l.prototype=Object.create(u.prototype)).constructor=l,(c.prototype=Object.create(u.prototype)).constructor=c,(p.prototype=Object.create(p.prototype)).constructor=p,(g.prototype=Object.create(u.prototype)).constructor=g,b});","export const idealGasConstant = 22.413969545014; // mol / cm3 at STP\n","import Papa from 'papaparse';\n\nimport { Analysis } from '..';\n\nimport { idealGasConstant } from './constants';\n\nexport function fromMicrometricsCSV(text) {\n  text = text.replace(/,/g, '.');\n  let parsed = Papa.parse(text, {\n    delimiter: ';',\n    dynamicTyping: false,\n    skipEmptyLines: true,\n  }).data;\n\n  const arrayColumn = (arr, n) => arr.map((x) => x[n]);\n\n  const headerRow = parsed.shift();\n  let analyses = [];\n\n  let analysis = new Analysis();\n\n  analysis.pushSpectrum(\n    {\n      x: {\n        data: arrayColumn(parsed, 0)\n          .filter(function (value) {\n            return value !== '';\n          })\n          .map(function (x) {\n            return parseFloat(x);\n          }),\n        label: 'relative pressure p/p0',\n        type: 'independent',\n      },\n      y: {\n        data: arrayColumn(parsed, 1)\n          .filter(function (value) {\n            return value !== '';\n          })\n          .map(function (x) {\n            return (parseFloat(x) / idealGasConstant) * 1000;\n          }),\n        label: 'Excess adsorption mmol /g',\n        type: 'dependent',\n      },\n    },\n    {\n      dataType: 'Adsorption Isotherm',\n      title: 'Adsorption',\n      meta: { header: headerRow },\n    },\n  );\n\n  analyses.push(analysis);\n\n  let desorption = new Analysis();\n  desorption.pushSpectrum(\n    {\n      x: {\n        data: arrayColumn(parsed, 2)\n          .filter(function (value) {\n            return value !== '';\n          })\n          .map(function (x) {\n            return parseFloat(x);\n          }),\n        label: 'relative pressure p/p0',\n        type: 'independent',\n      },\n      y: {\n        data: arrayColumn(parsed, 3)\n          .filter(function (value) {\n            return value !== '';\n          })\n          .map(function (x) {\n            return (parseFloat(x) / idealGasConstant) * 1000;\n          }),\n        label: 'Excess adsorption mmol /g',\n        type: 'dependent',\n      },\n    },\n    {\n      dataType: 'Desorption Isotherm',\n      title: 'Desorption',\n      meta: {},\n    },\n  );\n\n  analyses.push(desorption);\n\n  return analyses;\n}\n","/* cpexcel.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W100 */\nvar cptable = {version:\"1.14.0\"};\ncptable[437] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñÑªº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[620] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàąçêëèïîćÄĄĘęłôöĆûùŚÖÜ¢Ł¥śƒŹŻóÓńŃźż¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[737] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[850] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñÑªº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýÝ¯´­±‗¾¶§÷¸°¨·¹³²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[852] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘę¬źČş«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[857] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞğ¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´­±�¾¶§÷¸°¨·¹³²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[861] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[865] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñÑªº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[866] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[874] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[895] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ČüéďäĎŤčěĚĹÍľǪÄÁÉžŽôöÓůÚýÖÜŠĽÝŘťáíóúňŇŮÔšřŕŔ¼§«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[932] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������｡｢｣､･ｦｧｨｩｪｫｬｭｮｯｰｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜﾝﾞﾟ��������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[129] = \"����������������������������������������������������������������　、。，．・：；？！゛゜´｀¨＾￣＿ヽヾゝゞ〃仝々〆〇ー―‐／＼～∥｜…‥‘’“”（）〔〕［］｛｝〈〉《》「」『』【】＋－±×�÷＝≠＜＞≦≧∞∴♂♀°′″℃￥＄￠￡％＃＆＊＠§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓�����������∈∋⊆⊇⊂⊃∪∩��������∧∨￢⇒⇔∀∃�����������∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬�������Å‰♯♭♪†‡¶����◯���\".split(\"\");\nfor(j = 0; j != D[129].length; ++j) if(D[129][j].charCodeAt(0) !== 0xFFFD) { e[D[129][j]] = 33024 + j; d[33024 + j] = D[129][j];}\nD[130] = \"�������������������������������������������������������������������������������０１２３４５６７８９�������ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵＶＷＸＹＺ�������ａｂｃｄｅｆｇｈｉｊｋｌｍｎｏｐｑｒｓｔｕｖｗｘｙｚ����ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん��������������\".split(\"\");\nfor(j = 0; j != D[130].length; ++j) if(D[130][j].charCodeAt(0) !== 0xFFFD) { e[D[130][j]] = 33280 + j; d[33280 + j] = D[130][j];}\nD[131] = \"����������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミ�ムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ��������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�����������������������������������������\".split(\"\");\nfor(j = 0; j != D[131].length; ++j) if(D[131][j].charCodeAt(0) !== 0xFFFD) { e[D[131][j]] = 33536 + j; d[33536 + j] = D[131][j];}\nD[132] = \"����������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмн�опрстуфхцчшщъыьэюя�������������─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂�����������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[132].length; ++j) if(D[132][j].charCodeAt(0) !== 0xFFFD) { e[D[132][j]] = 33792 + j; d[33792 + j] = D[132][j];}\nD[135] = \"����������������������������������������������������������������①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡��������㍻�〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪���������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[135].length; ++j) if(D[135][j].charCodeAt(0) !== 0xFFFD) { e[D[135][j]] = 34560 + j; d[34560 + j] = D[135][j];}\nD[136] = \"���������������������������������������������������������������������������������������������������������������������������������������������������������������亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭���\".split(\"\");\nfor(j = 0; j != D[136].length; ++j) if(D[136][j].charCodeAt(0) !== 0xFFFD) { e[D[136][j]] = 34816 + j; d[34816 + j] = D[136][j];}\nD[137] = \"����������������������������������������������������������������院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円�園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改���\".split(\"\");\nfor(j = 0; j != D[137].length; ++j) if(D[137][j].charCodeAt(0) !== 0xFFFD) { e[D[137][j]] = 35072 + j; d[35072 + j] = D[137][j];}\nD[138] = \"����������������������������������������������������������������魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫�橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄���\".split(\"\");\nfor(j = 0; j != D[138].length; ++j) if(D[138][j].charCodeAt(0) !== 0xFFFD) { e[D[138][j]] = 35328 + j; d[35328 + j] = D[138][j];}\nD[139] = \"����������������������������������������������������������������機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救�朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈���\".split(\"\");\nfor(j = 0; j != D[139].length; ++j) if(D[139][j].charCodeAt(0) !== 0xFFFD) { e[D[139][j]] = 35584 + j; d[35584 + j] = D[139][j];}\nD[140] = \"����������������������������������������������������������������掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨�劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向���\".split(\"\");\nfor(j = 0; j != D[140].length; ++j) if(D[140][j].charCodeAt(0) !== 0xFFFD) { e[D[140][j]] = 35840 + j; d[35840 + j] = D[140][j];}\nD[141] = \"����������������������������������������������������������������后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降�項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷���\".split(\"\");\nfor(j = 0; j != D[141].length; ++j) if(D[141][j].charCodeAt(0) !== 0xFFFD) { e[D[141][j]] = 36096 + j; d[36096 + j] = D[141][j];}\nD[142] = \"����������������������������������������������������������������察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止�死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周���\".split(\"\");\nfor(j = 0; j != D[142].length; ++j) if(D[142][j].charCodeAt(0) !== 0xFFFD) { e[D[142][j]] = 36352 + j; d[36352 + j] = D[142][j];}\nD[143] = \"����������������������������������������������������������������宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳�準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾���\".split(\"\");\nfor(j = 0; j != D[143].length; ++j) if(D[143][j].charCodeAt(0) !== 0xFFFD) { e[D[143][j]] = 36608 + j; d[36608 + j] = D[143][j];}\nD[144] = \"����������������������������������������������������������������拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨�逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線���\".split(\"\");\nfor(j = 0; j != D[144].length; ++j) if(D[144][j].charCodeAt(0) !== 0xFFFD) { e[D[144][j]] = 36864 + j; d[36864 + j] = D[144][j];}\nD[145] = \"����������������������������������������������������������������繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻�操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只���\".split(\"\");\nfor(j = 0; j != D[145].length; ++j) if(D[145][j].charCodeAt(0) !== 0xFFFD) { e[D[145][j]] = 37120 + j; d[37120 + j] = D[145][j];}\nD[146] = \"����������������������������������������������������������������叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄�逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓���\".split(\"\");\nfor(j = 0; j != D[146].length; ++j) if(D[146][j].charCodeAt(0) !== 0xFFFD) { e[D[146][j]] = 37376 + j; d[37376 + j] = D[146][j];}\nD[147] = \"����������������������������������������������������������������邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬�凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入���\".split(\"\");\nfor(j = 0; j != D[147].length; ++j) if(D[147][j].charCodeAt(0) !== 0xFFFD) { e[D[147][j]] = 37632 + j; d[37632 + j] = D[147][j];}\nD[148] = \"����������������������������������������������������������������如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅�楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美���\".split(\"\");\nfor(j = 0; j != D[148].length; ++j) if(D[148][j].charCodeAt(0) !== 0xFFFD) { e[D[148][j]] = 37888 + j; d[37888 + j] = D[148][j];}\nD[149] = \"����������������������������������������������������������������鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷�斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋���\".split(\"\");\nfor(j = 0; j != D[149].length; ++j) if(D[149][j].charCodeAt(0) !== 0xFFFD) { e[D[149][j]] = 38144 + j; d[38144 + j] = D[149][j];}\nD[150] = \"����������������������������������������������������������������法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆�摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒���\".split(\"\");\nfor(j = 0; j != D[150].length; ++j) if(D[150][j].charCodeAt(0) !== 0xFFFD) { e[D[150][j]] = 38400 + j; d[38400 + j] = D[150][j];}\nD[151] = \"����������������������������������������������������������������諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲�沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯���\".split(\"\");\nfor(j = 0; j != D[151].length; ++j) if(D[151][j].charCodeAt(0) !== 0xFFFD) { e[D[151][j]] = 38656 + j; d[38656 + j] = D[151][j];}\nD[152] = \"����������������������������������������������������������������蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕��������������������������������������������弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲���\".split(\"\");\nfor(j = 0; j != D[152].length; ++j) if(D[152][j].charCodeAt(0) !== 0xFFFD) { e[D[152][j]] = 38912 + j; d[38912 + j] = D[152][j];}\nD[153] = \"����������������������������������������������������������������僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭�凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨���\".split(\"\");\nfor(j = 0; j != D[153].length; ++j) if(D[153][j].charCodeAt(0) !== 0xFFFD) { e[D[153][j]] = 39168 + j; d[39168 + j] = D[153][j];}\nD[154] = \"����������������������������������������������������������������咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸�噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩���\".split(\"\");\nfor(j = 0; j != D[154].length; ++j) if(D[154][j].charCodeAt(0) !== 0xFFFD) { e[D[154][j]] = 39424 + j; d[39424 + j] = D[154][j];}\nD[155] = \"����������������������������������������������������������������奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀�它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏���\".split(\"\");\nfor(j = 0; j != D[155].length; ++j) if(D[155][j].charCodeAt(0) !== 0xFFFD) { e[D[155][j]] = 39680 + j; d[39680 + j] = D[155][j];}\nD[156] = \"����������������������������������������������������������������廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠�怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛���\".split(\"\");\nfor(j = 0; j != D[156].length; ++j) if(D[156][j].charCodeAt(0) !== 0xFFFD) { e[D[156][j]] = 39936 + j; d[39936 + j] = D[156][j];}\nD[157] = \"����������������������������������������������������������������戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫�捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼���\".split(\"\");\nfor(j = 0; j != D[157].length; ++j) if(D[157][j].charCodeAt(0) !== 0xFFFD) { e[D[157][j]] = 40192 + j; d[40192 + j] = D[157][j];}\nD[158] = \"����������������������������������������������������������������曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎�梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣���\".split(\"\");\nfor(j = 0; j != D[158].length; ++j) if(D[158][j].charCodeAt(0) !== 0xFFFD) { e[D[158][j]] = 40448 + j; d[40448 + j] = D[158][j];}\nD[159] = \"����������������������������������������������������������������檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯�麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌���\".split(\"\");\nfor(j = 0; j != D[159].length; ++j) if(D[159][j].charCodeAt(0) !== 0xFFFD) { e[D[159][j]] = 40704 + j; d[40704 + j] = D[159][j];}\nD[224] = \"����������������������������������������������������������������漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝�烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱���\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"����������������������������������������������������������������瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿�痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬���\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"����������������������������������������������������������������磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰�窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆���\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"����������������������������������������������������������������紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷�縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋���\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"����������������������������������������������������������������隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤�艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈���\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"����������������������������������������������������������������蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬�蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞���\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"����������������������������������������������������������������襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧�諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊���\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"����������������������������������������������������������������蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜�轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮���\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"����������������������������������������������������������������錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙�閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰���\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"����������������������������������������������������������������顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃�騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈���\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"����������������������������������������������������������������鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯�黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙�������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[237] = \"����������������������������������������������������������������纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏�塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱���\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"����������������������������������������������������������������犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙�蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑��ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ￢￤＇＂���\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[250] = \"����������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ￢￤＇＂㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊�兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯���\".split(\"\");\nfor(j = 0; j != D[250].length; ++j) if(D[250][j].charCodeAt(0) !== 0xFFFD) { e[D[250][j]] = 64000 + j; d[64000 + j] = D[250][j];}\nD[251] = \"����������������������������������������������������������������涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神�祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙���\".split(\"\");\nfor(j = 0; j != D[251].length; ++j) if(D[251][j].charCodeAt(0) !== 0xFFFD) { e[D[251][j]] = 64256 + j; d[64256 + j] = D[251][j];}\nD[252] = \"����������������������������������������������������������������髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[252].length; ++j) if(D[252][j].charCodeAt(0) !== 0xFFFD) { e[D[252][j]] = 64512 + j; d[64512 + j] = D[252][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[936] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[129] = \"����������������������������������������������������������������丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪乫乬乭乮乯乲乴乵乶乷乸乹乺乻乼乽乿亀亁亂亃亄亅亇亊�亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂伃伄伅伆伇伈伋伌伒伓伔伕伖伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾伿佀佁佂佄佅佇佈佉佊佋佌佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢�\".split(\"\");\nfor(j = 0; j != D[129].length; ++j) if(D[129][j].charCodeAt(0) !== 0xFFFD) { e[D[129][j]] = 33024 + j; d[33024 + j] = D[129][j];}\nD[130] = \"����������������������������������������������������������������侤侫侭侰侱侲侳侴侶侷侸侹侺侻侼侽侾俀俁係俆俇俈俉俋俌俍俒俓俔俕俖俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿倀倁倂倃倄倅倆倇倈倉倊�個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯倰倱倲倳倴倵倶倷倸倹倻倽倿偀偁偂偄偅偆偉偊偋偍偐偑偒偓偔偖偗偘偙偛偝偞偟偠偡偢偣偤偦偧偨偩偪偫偭偮偯偰偱偲偳側偵偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎傏傐傑傒傓傔傕傖傗傘備傚傛傜傝傞傟傠傡傢傤傦傪傫傭傮傯傰傱傳傴債傶傷傸傹傼�\".split(\"\");\nfor(j = 0; j != D[130].length; ++j) if(D[130][j].charCodeAt(0) !== 0xFFFD) { e[D[130][j]] = 33280 + j; d[33280 + j] = D[130][j];}\nD[131] = \"����������������������������������������������������������������傽傾傿僀僁僂僃僄僅僆僇僈僉僊僋僌働僎僐僑僒僓僔僕僗僘僙僛僜僝僞僟僠僡僢僣僤僥僨僩僪僫僯僰僱僲僴僶僷僸價僺僼僽僾僿儀儁儂儃億儅儈�儉儊儌儍儎儏儐儑儓儔儕儖儗儘儙儚儛儜儝儞償儠儢儣儤儥儦儧儨儩優儫儬儭儮儯儰儱儲儳儴儵儶儷儸儹儺儻儼儽儾兂兇兊兌兎兏児兒兓兗兘兙兛兝兞兟兠兡兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦冧冨冩冪冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒凓凔凕凖凗�\".split(\"\");\nfor(j = 0; j != D[131].length; ++j) if(D[131][j].charCodeAt(0) !== 0xFFFD) { e[D[131][j]] = 33536 + j; d[33536 + j] = D[131][j];}\nD[132] = \"����������������������������������������������������������������凘凙凚凜凞凟凢凣凥処凧凨凩凪凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄剅剆則剈剉剋剎剏剒剓剕剗剘�剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳剴創剶剷剸剹剺剻剼剾劀劃劄劅劆劇劉劊劋劌劍劎劏劑劒劔劕劖劗劘劙劚劜劤劥劦劧劮劯劰労劵劶劷劸効劺劻劼劽勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務勚勛勜勝勞勠勡勢勣勥勦勧勨勩勪勫勬勭勮勯勱勲勳勴勵勶勷勸勻勼勽匁匂匃匄匇匉匊匋匌匎�\".split(\"\");\nfor(j = 0; j != D[132].length; ++j) if(D[132][j].charCodeAt(0) !== 0xFFFD) { e[D[132][j]] = 33792 + j; d[33792 + j] = D[132][j];}\nD[133] = \"����������������������������������������������������������������匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯匰匱匲匳匴匵匶匷匸匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏�厐厑厒厓厔厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯厰厱厲厳厴厵厷厸厹厺厼厽厾叀參叄叅叆叇収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝呞呟呠呡呣呥呧呩呪呫呬呭呮呯呰呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡�\".split(\"\");\nfor(j = 0; j != D[133].length; ++j) if(D[133][j].charCodeAt(0) !== 0xFFFD) { e[D[133][j]] = 34048 + j; d[34048 + j] = D[133][j];}\nD[134] = \"����������������������������������������������������������������咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠員哢哣哤哫哬哯哰哱哴哵哶哷哸哹哻哾唀唂唃唄唅唈唊唋唌唍唎唒唓唕唖唗唘唙唚唜唝唞唟唡唥唦�唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋啌啍啎問啑啒啓啔啗啘啙啚啛啝啞啟啠啢啣啨啩啫啯啰啱啲啳啴啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠喡喢喣喤喥喦喨喩喪喫喬喭單喯喰喲喴営喸喺喼喿嗀嗁嗂嗃嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗嗘嗙嗚嗛嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸嗹嗺嗻嗼嗿嘂嘃嘄嘅�\".split(\"\");\nfor(j = 0; j != D[134].length; ++j) if(D[134][j].charCodeAt(0) !== 0xFFFD) { e[D[134][j]] = 34304 + j; d[34304 + j] = D[134][j];}\nD[135] = \"����������������������������������������������������������������嘆嘇嘊嘋嘍嘐嘑嘒嘓嘔嘕嘖嘗嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀噁噂噃噄噅噆噇噈噉噊噋噏噐噑噒噓噕噖噚噛噝噞噟噠噡�噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽噾噿嚀嚁嚂嚃嚄嚇嚈嚉嚊嚋嚌嚍嚐嚑嚒嚔嚕嚖嚗嚘嚙嚚嚛嚜嚝嚞嚟嚠嚡嚢嚤嚥嚦嚧嚨嚩嚪嚫嚬嚭嚮嚰嚱嚲嚳嚴嚵嚶嚸嚹嚺嚻嚽嚾嚿囀囁囂囃囄囅囆囇囈囉囋囌囍囎囏囐囑囒囓囕囖囘囙囜団囥囦囧囨囩囪囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國圌圍圎圏圐圑�\".split(\"\");\nfor(j = 0; j != D[135].length; ++j) if(D[135][j].charCodeAt(0) !== 0xFFFD) { e[D[135][j]] = 34560 + j; d[34560 + j] = D[135][j];}\nD[136] = \"����������������������������������������������������������������園圓圔圕圖圗團圙圚圛圝圞圠圡圢圤圥圦圧圫圱圲圴圵圶圷圸圼圽圿坁坃坄坅坆坈坉坋坒坓坔坕坖坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀�垁垇垈垉垊垍垎垏垐垑垔垕垖垗垘垙垚垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹垺垻垼垽垾垿埀埁埄埅埆埇埈埉埊埌埍埐埑埓埖埗埛埜埞埡埢埣埥埦埧埨埩埪埫埬埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥堦堧堨堩堫堬堭堮堯報堲堳場堶堷堸堹堺堻堼堽�\".split(\"\");\nfor(j = 0; j != D[136].length; ++j) if(D[136][j].charCodeAt(0) !== 0xFFFD) { e[D[136][j]] = 34816 + j; d[34816 + j] = D[136][j];}\nD[137] = \"����������������������������������������������������������������堾堿塀塁塂塃塅塆塇塈塉塊塋塎塏塐塒塓塕塖塗塙塚塛塜塝塟塠塡塢塣塤塦塧塨塩塪塭塮塯塰塱塲塳塴塵塶塷塸塹塺塻塼塽塿墂墄墆墇墈墊墋墌�墍墎墏墐墑墔墕墖増墘墛墜墝墠墡墢墣墤墥墦墧墪墫墬墭墮墯墰墱墲墳墴墵墶墷墸墹墺墻墽墾墿壀壂壃壄壆壇壈壉壊壋壌壍壎壏壐壒壓壔壖壗壘壙壚壛壜壝壞壟壠壡壢壣壥壦壧壨壩壪壭壯壱売壴壵壷壸壺壻壼壽壾壿夀夁夃夅夆夈変夊夋夌夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻�\".split(\"\");\nfor(j = 0; j != D[137].length; ++j) if(D[137][j].charCodeAt(0) !== 0xFFFD) { e[D[137][j]] = 35072 + j; d[35072 + j] = D[137][j];}\nD[138] = \"����������������������������������������������������������������夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛奜奝奞奟奡奣奤奦奧奨奩奪奫奬奭奮奯奰奱奲奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦�妧妬妭妰妱妳妴妵妶妷妸妺妼妽妿姀姁姂姃姄姅姇姈姉姌姍姎姏姕姖姙姛姞姟姠姡姢姤姦姧姩姪姫姭姮姯姰姱姲姳姴姵姶姷姸姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪娫娬娭娮娯娰娳娵娷娸娹娺娻娽娾娿婁婂婃婄婅婇婈婋婌婍婎婏婐婑婒婓婔婖婗婘婙婛婜婝婞婟婠�\".split(\"\");\nfor(j = 0; j != D[138].length; ++j) if(D[138][j].charCodeAt(0) !== 0xFFFD) { e[D[138][j]] = 35328 + j; d[35328 + j] = D[138][j];}\nD[139] = \"����������������������������������������������������������������婡婣婤婥婦婨婩婫婬婭婮婯婰婱婲婳婸婹婻婼婽婾媀媁媂媃媄媅媆媇媈媉媊媋媌媍媎媏媐媑媓媔媕媖媗媘媙媜媝媞媟媠媡媢媣媤媥媦媧媨媩媫媬�媭媮媯媰媱媴媶媷媹媺媻媼媽媿嫀嫃嫄嫅嫆嫇嫈嫊嫋嫍嫎嫏嫐嫑嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬嫭嫮嫯嫰嫲嫳嫴嫵嫶嫷嫸嫹嫺嫻嫼嫽嫾嫿嬀嬁嬂嬃嬄嬅嬆嬇嬈嬊嬋嬌嬍嬎嬏嬐嬑嬒嬓嬔嬕嬘嬙嬚嬛嬜嬝嬞嬟嬠嬡嬢嬣嬤嬥嬦嬧嬨嬩嬪嬫嬬嬭嬮嬯嬰嬱嬳嬵嬶嬸嬹嬺嬻嬼嬽嬾嬿孁孂孃孄孅孆孇�\".split(\"\");\nfor(j = 0; j != D[139].length; ++j) if(D[139][j].charCodeAt(0) !== 0xFFFD) { e[D[139][j]] = 35584 + j; d[35584 + j] = D[139][j];}\nD[140] = \"����������������������������������������������������������������孈孉孊孋孌孍孎孏孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏�寑寔寕寖寗寘寙寚寛寜寠寢寣實寧審寪寫寬寭寯寱寲寳寴寵寶寷寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧屨屩屪屫屬屭屰屲屳屴屵屶屷屸屻屼屽屾岀岃岄岅岆岇岉岊岋岎岏岒岓岕岝岞岟岠岡岤岥岦岧岨�\".split(\"\");\nfor(j = 0; j != D[140].length; ++j) if(D[140][j].charCodeAt(0) !== 0xFFFD) { e[D[140][j]] = 35840 + j; d[35840 + j] = D[140][j];}\nD[141] = \"����������������������������������������������������������������岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅峆峇峈峉峊峌峍峎峏峐峑峓峔峕峖峗峘峚峛峜峝峞峟峠峢峣峧峩峫峬峮峯峱峲峳峴峵島峷峸峹峺峼峽峾峿崀�崁崄崅崈崉崊崋崌崍崏崐崑崒崓崕崗崘崙崚崜崝崟崠崡崢崣崥崨崪崫崬崯崰崱崲崳崵崶崷崸崹崺崻崼崿嵀嵁嵂嵃嵄嵅嵆嵈嵉嵍嵎嵏嵐嵑嵒嵓嵔嵕嵖嵗嵙嵚嵜嵞嵟嵠嵡嵢嵣嵤嵥嵦嵧嵨嵪嵭嵮嵰嵱嵲嵳嵵嵶嵷嵸嵹嵺嵻嵼嵽嵾嵿嶀嶁嶃嶄嶅嶆嶇嶈嶉嶊嶋嶌嶍嶎嶏嶐嶑嶒嶓嶔嶕嶖嶗嶘嶚嶛嶜嶞嶟嶠�\".split(\"\");\nfor(j = 0; j != D[141].length; ++j) if(D[141][j].charCodeAt(0) !== 0xFFFD) { e[D[141][j]] = 36096 + j; d[36096 + j] = D[141][j];}\nD[142] = \"����������������������������������������������������������������嶡嶢嶣嶤嶥嶦嶧嶨嶩嶪嶫嶬嶭嶮嶯嶰嶱嶲嶳嶴嶵嶶嶸嶹嶺嶻嶼嶽嶾嶿巀巁巂巃巄巆巇巈巉巊巋巌巎巏巐巑巒巓巔巕巖巗巘巙巚巜巟巠巣巤巪巬巭�巰巵巶巸巹巺巻巼巿帀帄帇帉帊帋帍帎帒帓帗帞帟帠帡帢帣帤帥帨帩帪師帬帯帰帲帳帴帵帶帹帺帾帿幀幁幃幆幇幈幉幊幋幍幎幏幐幑幒幓幖幗幘幙幚幜幝幟幠幣幤幥幦幧幨幩幪幫幬幭幮幯幰幱幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨庩庪庫庬庮庯庰庱庲庴庺庻庼庽庿廀廁廂廃廄廅�\".split(\"\");\nfor(j = 0; j != D[142].length; ++j) if(D[142][j].charCodeAt(0) !== 0xFFFD) { e[D[142][j]] = 36352 + j; d[36352 + j] = D[142][j];}\nD[143] = \"����������������������������������������������������������������廆廇廈廋廌廍廎廏廐廔廕廗廘廙廚廜廝廞廟廠廡廢廣廤廥廦廧廩廫廬廭廮廯廰廱廲廳廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤�弨弫弬弮弰弲弳弴張弶強弸弻弽弾弿彁彂彃彄彅彆彇彈彉彊彋彌彍彎彏彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢徣徤徥徦徧復徫徬徯徰徱徲徳徴徶徸徹徺徻徾徿忀忁忂忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇�\".split(\"\");\nfor(j = 0; j != D[143].length; ++j) if(D[143][j].charCodeAt(0) !== 0xFFFD) { e[D[143][j]] = 36608 + j; d[36608 + j] = D[143][j];}\nD[144] = \"����������������������������������������������������������������怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰怱怲怳怴怶怷怸怹怺怽怾恀恄恅恆恇恈恉恊恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀�悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽悾悿惀惁惂惃惄惇惈惉惌惍惎惏惐惒惓惔惖惗惙惛惞惡惢惣惤惥惪惱惲惵惷惸惻惼惽惾惿愂愃愄愅愇愊愋愌愐愑愒愓愔愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬愭愮愯愰愱愲愳愴愵愶愷愸愹愺愻愼愽愾慀慁慂慃慄慅慆�\".split(\"\");\nfor(j = 0; j != D[144].length; ++j) if(D[144][j].charCodeAt(0) !== 0xFFFD) { e[D[144][j]] = 36864 + j; d[36864 + j] = D[144][j];}\nD[145] = \"����������������������������������������������������������������慇慉態慍慏慐慒慓慔慖慗慘慙慚慛慜慞慟慠慡慣慤慥慦慩慪慫慬慭慮慯慱慲慳慴慶慸慹慺慻慼慽慾慿憀憁憂憃憄憅憆憇憈憉憊憌憍憏憐憑憒憓憕�憖憗憘憙憚憛憜憞憟憠憡憢憣憤憥憦憪憫憭憮憯憰憱憲憳憴憵憶憸憹憺憻憼憽憿懀懁懃懄懅懆懇應懌懍懎懏懐懓懕懖懗懘懙懚懛懜懝懞懟懠懡懢懣懤懥懧懨懩懪懫懬懭懮懯懰懱懲懳懴懶懷懸懹懺懻懼懽懾戀戁戂戃戄戅戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸戹戺戻戼扂扄扅扆扊�\".split(\"\");\nfor(j = 0; j != D[145].length; ++j) if(D[145][j].charCodeAt(0) !== 0xFFFD) { e[D[145][j]] = 37120 + j; d[37120 + j] = D[145][j];}\nD[146] = \"����������������������������������������������������������������扏扐払扖扗扙扚扜扝扞扟扠扡扢扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋抌抍抎抏抐抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁�拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳挴挵挶挷挸挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖捗捘捙捚捛捜捝捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙掚掛掜掝掞掟採掤掦掫掯掱掲掵掶掹掻掽掿揀�\".split(\"\");\nfor(j = 0; j != D[146].length; ++j) if(D[146][j].charCodeAt(0) !== 0xFFFD) { e[D[146][j]] = 37376 + j; d[37376 + j] = D[146][j];}\nD[147] = \"����������������������������������������������������������������揁揂揃揅揇揈揊揋揌揑揓揔揕揗揘揙揚換揜揝揟揢揤揥揦揧揨揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆搇搈搉搊損搎搑搒搕搖搗搘搙搚搝搟搢搣搤�搥搧搨搩搫搮搯搰搱搲搳搵搶搷搸搹搻搼搾摀摂摃摉摋摌摍摎摏摐摑摓摕摖摗摙摚摛摜摝摟摠摡摢摣摤摥摦摨摪摫摬摮摯摰摱摲摳摴摵摶摷摻摼摽摾摿撀撁撃撆撈撉撊撋撌撍撎撏撐撓撔撗撘撚撛撜撝撟撠撡撢撣撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆擇擈擉擊擋擌擏擑擓擔擕擖擙據�\".split(\"\");\nfor(j = 0; j != D[147].length; ++j) if(D[147][j].charCodeAt(0) !== 0xFFFD) { e[D[147][j]] = 37632 + j; d[37632 + j] = D[147][j];}\nD[148] = \"����������������������������������������������������������������擛擜擝擟擠擡擣擥擧擨擩擪擫擬擭擮擯擰擱擲擳擴擵擶擷擸擹擺擻擼擽擾擿攁攂攃攄攅攆攇攈攊攋攌攍攎攏攐攑攓攔攕攖攗攙攚攛攜攝攞攟攠攡�攢攣攤攦攧攨攩攪攬攭攰攱攲攳攷攺攼攽敀敁敂敃敄敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數敹敺敻敼敽敾敿斀斁斂斃斄斅斆斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱斲斳斴斵斶斷斸斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘旙旚旛旜旝旞旟旡旣旤旪旫�\".split(\"\");\nfor(j = 0; j != D[148].length; ++j) if(D[148][j].charCodeAt(0) !== 0xFFFD) { e[D[148][j]] = 37888 + j; d[37888 + j] = D[148][j];}\nD[149] = \"����������������������������������������������������������������旲旳旴旵旸旹旻旼旽旾旿昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷昸昹昺昻昽昿晀時晄晅晆晇晈晉晊晍晎晐晑晘�晙晛晜晝晞晠晢晣晥晧晩晪晫晬晭晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘暙暚暛暜暞暟暠暡暢暣暤暥暦暩暪暫暬暭暯暰暱暲暳暵暶暷暸暺暻暼暽暿曀曁曂曃曄曅曆曇曈曉曊曋曌曍曎曏曐曑曒曓曔曕曖曗曘曚曞曟曠曡曢曣曤曥曧曨曪曫曬曭曮曯曱曵曶書曺曻曽朁朂會�\".split(\"\");\nfor(j = 0; j != D[149].length; ++j) if(D[149][j].charCodeAt(0) !== 0xFFFD) { e[D[149][j]] = 38144 + j; d[38144 + j] = D[149][j];}\nD[150] = \"����������������������������������������������������������������朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠朡朢朣朤朥朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗杘杙杚杛杝杢杣杤杦杧杫杬杮東杴杶�杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹枺枻枼枽枾枿柀柂柅柆柇柈柉柊柋柌柍柎柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵柶柷柸柹柺査柼柾栁栂栃栄栆栍栐栒栔栕栘栙栚栛栜栞栟栠栢栣栤栥栦栧栨栫栬栭栮栯栰栱栴栵栶栺栻栿桇桋桍桏桒桖桗桘桙桚桛�\".split(\"\");\nfor(j = 0; j != D[150].length; ++j) if(D[150][j].charCodeAt(0) !== 0xFFFD) { e[D[150][j]] = 38400 + j; d[38400 + j] = D[150][j];}\nD[151] = \"����������������������������������������������������������������桜桝桞桟桪桬桭桮桯桰桱桲桳桵桸桹桺桻桼桽桾桿梀梂梄梇梈梉梊梋梌梍梎梐梑梒梔梕梖梘梙梚梛梜條梞梟梠梡梣梤梥梩梪梫梬梮梱梲梴梶梷梸�梹梺梻梼梽梾梿棁棃棄棅棆棇棈棊棌棎棏棐棑棓棔棖棗棙棛棜棝棞棟棡棢棤棥棦棧棨棩棪棫棬棭棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆椇椈椉椊椌椏椑椓椔椕椖椗椘椙椚椛検椝椞椡椢椣椥椦椧椨椩椪椫椬椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃楄楅楆楇楈楉楊楋楌楍楎楏楐楑楒楓楕楖楘楙楛楜楟�\".split(\"\");\nfor(j = 0; j != D[151].length; ++j) if(D[151][j].charCodeAt(0) !== 0xFFFD) { e[D[151][j]] = 38656 + j; d[38656 + j] = D[151][j];}\nD[152] = \"����������������������������������������������������������������楡楢楤楥楧楨楩楪楬業楯楰楲楳楴極楶楺楻楽楾楿榁榃榅榊榋榌榎榏榐榑榒榓榖榗榙榚榝榞榟榠榡榢榣榤榥榦榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽�榾榿槀槂槃槄槅槆槇槈槉構槍槏槑槒槓槕槖槗様槙槚槜槝槞槡槢槣槤槥槦槧槨槩槪槫槬槮槯槰槱槳槴槵槶槷槸槹槺槻槼槾樀樁樂樃樄樅樆樇樈樉樋樌樍樎樏樐樑樒樓樔樕樖標樚樛樜樝樞樠樢樣樤樥樦樧権樫樬樭樮樰樲樳樴樶樷樸樹樺樻樼樿橀橁橂橃橅橆橈橉橊橋橌橍橎橏橑橒橓橔橕橖橗橚�\".split(\"\");\nfor(j = 0; j != D[152].length; ++j) if(D[152][j].charCodeAt(0) !== 0xFFFD) { e[D[152][j]] = 38912 + j; d[38912 + j] = D[152][j];}\nD[153] = \"����������������������������������������������������������������橜橝橞機橠橢橣橤橦橧橨橩橪橫橬橭橮橯橰橲橳橴橵橶橷橸橺橻橽橾橿檁檂檃檅檆檇檈檉檊檋檌檍檏檒檓檔檕檖檘檙檚檛檜檝檞檟檡檢檣檤檥檦�檧檨檪檭檮檯檰檱檲檳檴檵檶檷檸檹檺檻檼檽檾檿櫀櫁櫂櫃櫄櫅櫆櫇櫈櫉櫊櫋櫌櫍櫎櫏櫐櫑櫒櫓櫔櫕櫖櫗櫘櫙櫚櫛櫜櫝櫞櫟櫠櫡櫢櫣櫤櫥櫦櫧櫨櫩櫪櫫櫬櫭櫮櫯櫰櫱櫲櫳櫴櫵櫶櫷櫸櫹櫺櫻櫼櫽櫾櫿欀欁欂欃欄欅欆欇欈欉權欋欌欍欎欏欐欑欒欓欔欕欖欗欘欙欚欛欜欝欞欟欥欦欨欩欪欫欬欭欮�\".split(\"\");\nfor(j = 0; j != D[153].length; ++j) if(D[153][j].charCodeAt(0) !== 0xFFFD) { e[D[153][j]] = 39168 + j; d[39168 + j] = D[153][j];}\nD[154] = \"����������������������������������������������������������������欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍歎歏歐歑歒歓歔歕歖歗歘歚歛歜歝歞歟歠歡歨歩歫歬歭歮歯歰歱歲歳歴歵歶歷歸歺歽歾歿殀殅殈�殌殎殏殐殑殔殕殗殘殙殜殝殞殟殠殢殣殤殥殦殧殨殩殫殬殭殮殯殰殱殲殶殸殹殺殻殼殽殾毀毃毄毆毇毈毉毊毌毎毐毑毘毚毜毝毞毟毠毢毣毤毥毦毧毨毩毬毭毮毰毱毲毴毶毷毸毺毻毼毾毿氀氁氂氃氄氈氉氊氋氌氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋汌汍汎汏汑汒汓汖汘�\".split(\"\");\nfor(j = 0; j != D[154].length; ++j) if(D[154][j].charCodeAt(0) !== 0xFFFD) { e[D[154][j]] = 39424 + j; d[39424 + j] = D[154][j];}\nD[155] = \"����������������������������������������������������������������汙汚汢汣汥汦汧汫汬汭汮汯汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘�泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟洠洡洢洣洤洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽浾浿涀涁涃涄涆涇涊涋涍涏涐涒涖涗涘涙涚涜涢涥涬涭涰涱涳涴涶涷涹涺涻涼涽涾淁淂淃淈淉淊�\".split(\"\");\nfor(j = 0; j != D[155].length; ++j) if(D[155][j].charCodeAt(0) !== 0xFFFD) { e[D[155][j]] = 39680 + j; d[39680 + j] = D[155][j];}\nD[156] = \"����������������������������������������������������������������淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽淾淿渀渁渂渃渄渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵�渶渷渹渻渼渽渾渿湀湁湂湅湆湇湈湉湊湋湌湏湐湑湒湕湗湙湚湜湝湞湠湡湢湣湤湥湦湧湨湩湪湬湭湯湰湱湲湳湴湵湶湷湸湹湺湻湼湽満溁溂溄溇溈溊溋溌溍溎溑溒溓溔溕準溗溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪滫滬滭滮滯�\".split(\"\");\nfor(j = 0; j != D[156].length; ++j) if(D[156][j].charCodeAt(0) !== 0xFFFD) { e[D[156][j]] = 39936 + j; d[39936 + j] = D[156][j];}\nD[157] = \"����������������������������������������������������������������滰滱滲滳滵滶滷滸滺滻滼滽滾滿漀漁漃漄漅漇漈漊漋漌漍漎漐漑漒漖漗漘漙漚漛漜漝漞漟漡漢漣漥漦漧漨漬漮漰漲漴漵漷漸漹漺漻漼漽漿潀潁潂�潃潄潅潈潉潊潌潎潏潐潑潒潓潔潕潖潗潙潚潛潝潟潠潡潣潤潥潧潨潩潪潫潬潯潰潱潳潵潶潷潹潻潽潾潿澀澁澂澃澅澆澇澊澋澏澐澑澒澓澔澕澖澗澘澙澚澛澝澞澟澠澢澣澤澥澦澨澩澪澫澬澭澮澯澰澱澲澴澵澷澸澺澻澼澽澾澿濁濃濄濅濆濇濈濊濋濌濍濎濏濐濓濔濕濖濗濘濙濚濛濜濝濟濢濣濤濥�\".split(\"\");\nfor(j = 0; j != D[157].length; ++j) if(D[157][j].charCodeAt(0) !== 0xFFFD) { e[D[157][j]] = 40192 + j; d[40192 + j] = D[157][j];}\nD[158] = \"����������������������������������������������������������������濦濧濨濩濪濫濬濭濰濱濲濳濴濵濶濷濸濹濺濻濼濽濾濿瀀瀁瀂瀃瀄瀅瀆瀇瀈瀉瀊瀋瀌瀍瀎瀏瀐瀒瀓瀔瀕瀖瀗瀘瀙瀜瀝瀞瀟瀠瀡瀢瀤瀥瀦瀧瀨瀩瀪�瀫瀬瀭瀮瀯瀰瀱瀲瀳瀴瀶瀷瀸瀺瀻瀼瀽瀾瀿灀灁灂灃灄灅灆灇灈灉灊灋灍灎灐灑灒灓灔灕灖灗灘灙灚灛灜灝灟灠灡灢灣灤灥灦灧灨灩灪灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞炟炠炡炢炣炤炥炦炧炨炩炪炰炲炴炵炶為炾炿烄烅烆烇烉烋烌烍烎烏烐烑烒烓烔烕烖烗烚�\".split(\"\");\nfor(j = 0; j != D[158].length; ++j) if(D[158][j].charCodeAt(0) !== 0xFFFD) { e[D[158][j]] = 40448 + j; d[40448 + j] = D[158][j];}\nD[159] = \"����������������������������������������������������������������烜烝烞烠烡烢烣烥烪烮烰烱烲烳烴烵烶烸烺烻烼烾烿焀焁焂焃焄焅焆焇焈焋焌焍焎焏焑焒焔焗焛焜焝焞焟焠無焢焣焤焥焧焨焩焪焫焬焭焮焲焳焴�焵焷焸焹焺焻焼焽焾焿煀煁煂煃煄煆煇煈煉煋煍煏煐煑煒煓煔煕煖煗煘煙煚煛煝煟煠煡煢煣煥煩煪煫煬煭煯煰煱煴煵煶煷煹煻煼煾煿熀熁熂熃熅熆熇熈熉熋熌熍熎熐熑熒熓熕熖熗熚熛熜熝熞熡熢熣熤熥熦熧熩熪熫熭熮熯熰熱熲熴熶熷熸熺熻熼熽熾熿燀燁燂燄燅燆燇燈燉燊燋燌燍燏燐燑燒燓�\".split(\"\");\nfor(j = 0; j != D[159].length; ++j) if(D[159][j].charCodeAt(0) !== 0xFFFD) { e[D[159][j]] = 40704 + j; d[40704 + j] = D[159][j];}\nD[160] = \"����������������������������������������������������������������燖燗燘燙燚燛燜燝燞營燡燢燣燤燦燨燩燪燫燬燭燯燰燱燲燳燴燵燶燷燸燺燻燼燽燾燿爀爁爂爃爄爅爇爈爉爊爋爌爍爎爏爐爑爒爓爔爕爖爗爘爙爚�爛爜爞爟爠爡爢爣爤爥爦爧爩爫爭爮爯爲爳爴爺爼爾牀牁牂牃牄牅牆牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅犆犇犈犉犌犎犐犑犓犔犕犖犗犘犙犚犛犜犝犞犠犡犢犣犤犥犦犧犨犩犪犫犮犱犲犳犵犺犻犼犽犾犿狀狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛�\".split(\"\");\nfor(j = 0; j != D[160].length; ++j) if(D[160][j].charCodeAt(0) !== 0xFFFD) { e[D[160][j]] = 40960 + j; d[40960 + j] = D[160][j];}\nD[161] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������　、。·ˉˇ¨〃々—～‖…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃＄¤￠￡‰§№☆★○●◎◇◆□■△▲※→←↑↓〓�\".split(\"\");\nfor(j = 0; j != D[161].length; ++j) if(D[161][j].charCodeAt(0) !== 0xFFFD) { e[D[161][j]] = 41216 + j; d[41216 + j] = D[161][j];}\nD[162] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ������⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩��㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩��ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ���\".split(\"\");\nfor(j = 0; j != D[162].length; ++j) if(D[162][j].charCodeAt(0) !== 0xFFFD) { e[D[162][j]] = 41472 + j; d[41472 + j] = D[162][j];}\nD[163] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������！＂＃￥％＆＇（）＊＋，－．／０１２３４５６７８９：；＜＝＞？＠ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵＶＷＸＹＺ［＼］＾＿｀ａｂｃｄｅｆｇｈｉｊｋｌｍｎｏｐｑｒｓｔｕｖｗｘｙｚ｛｜｝￣�\".split(\"\");\nfor(j = 0; j != D[163].length; ++j) if(D[163][j].charCodeAt(0) !== 0xFFFD) { e[D[163][j]] = 41728 + j; d[41728 + j] = D[163][j];}\nD[164] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������\".split(\"\");\nfor(j = 0; j != D[164].length; ++j) if(D[164][j].charCodeAt(0) !== 0xFFFD) { e[D[164][j]] = 41984 + j; d[41984 + j] = D[164][j];}\nD[165] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������\".split(\"\");\nfor(j = 0; j != D[165].length; ++j) if(D[165][j].charCodeAt(0) !== 0xFFFD) { e[D[165][j]] = 42240 + j; d[42240 + j] = D[165][j];}\nD[166] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������︵︶︹︺︿﹀︽︾﹁﹂﹃﹄��︻︼︷︸︱�︳︴����������\".split(\"\");\nfor(j = 0; j != D[166].length; ++j) if(D[166][j].charCodeAt(0) !== 0xFFFD) { e[D[166][j]] = 42496 + j; d[42496 + j] = D[166][j];}\nD[167] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������\".split(\"\");\nfor(j = 0; j != D[167].length; ++j) if(D[167][j].charCodeAt(0) !== 0xFFFD) { e[D[167][j]] = 42752 + j; d[42752 + j] = D[167][j];}\nD[168] = \"����������������������������������������������������������������ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬╭╮╯╰╱╲╳▁▂▃▄▅▆▇�█▉▊▋▌▍▎▏▓▔▕▼▽◢◣◤◥☉⊕〒〝〞�����������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ�ńň�ɡ����ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������\".split(\"\");\nfor(j = 0; j != D[168].length; ++j) if(D[168][j].charCodeAt(0) !== 0xFFFD) { e[D[168][j]] = 43008 + j; d[43008 + j] = D[168][j];}\nD[169] = \"����������������������������������������������������������������〡〢〣〤〥〦〧〨〩㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰￢￤�℡㈱�‐���ー゛゜ヽヾ〆ゝゞ﹉﹊﹋﹌﹍﹎﹏﹐﹑﹒﹔﹕﹖﹗﹙﹚﹛﹜﹝﹞﹟﹠﹡�﹢﹣﹤﹥﹦﹨﹩﹪﹫�������������〇�������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������\".split(\"\");\nfor(j = 0; j != D[169].length; ++j) if(D[169][j].charCodeAt(0) !== 0xFFFD) { e[D[169][j]] = 43264 + j; d[43264 + j] = D[169][j];}\nD[170] = \"����������������������������������������������������������������狜狝狟狢狣狤狥狦狧狪狫狵狶狹狽狾狿猀猂猄猅猆猇猈猉猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀獁獂獃獄獅獆獇獈�獉獊獋獌獎獏獑獓獔獕獖獘獙獚獛獜獝獞獟獡獢獣獤獥獦獧獨獩獪獫獮獰獱�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[170].length; ++j) if(D[170][j].charCodeAt(0) !== 0xFFFD) { e[D[170][j]] = 43520 + j; d[43520 + j] = D[170][j];}\nD[171] = \"����������������������������������������������������������������獲獳獴獵獶獷獸獹獺獻獼獽獿玀玁玂玃玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣玤玥玦玧玨玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃珄珅珆珇�珋珌珎珒珓珔珕珖珗珘珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳珴珵珶珷�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[171].length; ++j) if(D[171][j].charCodeAt(0) !== 0xFFFD) { e[D[171][j]] = 43776 + j; d[43776 + j] = D[171][j];}\nD[172] = \"����������������������������������������������������������������珸珹珺珻珼珽現珿琀琁琂琄琇琈琋琌琍琎琑琒琓琔琕琖琗琘琙琜琝琞琟琠琡琣琤琧琩琫琭琯琱琲琷琸琹琺琻琽琾琿瑀瑂瑃瑄瑅瑆瑇瑈瑉瑊瑋瑌瑍�瑎瑏瑐瑑瑒瑓瑔瑖瑘瑝瑠瑡瑢瑣瑤瑥瑦瑧瑨瑩瑪瑫瑬瑮瑯瑱瑲瑳瑴瑵瑸瑹瑺�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[172].length; ++j) if(D[172][j].charCodeAt(0) !== 0xFFFD) { e[D[172][j]] = 44032 + j; d[44032 + j] = D[172][j];}\nD[173] = \"����������������������������������������������������������������瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑璒璓璔璕璖璗璘璙璚璛璝璟璠璡璢璣璤璥璦璪璫璬璭璮璯環璱璲璳璴璵璶璷璸璹璻璼璽璾璿瓀瓁瓂瓃瓄瓅瓆瓇�瓈瓉瓊瓋瓌瓍瓎瓏瓐瓑瓓瓔瓕瓖瓗瓘瓙瓚瓛瓝瓟瓡瓥瓧瓨瓩瓪瓫瓬瓭瓰瓱瓲�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[173].length; ++j) if(D[173][j].charCodeAt(0) !== 0xFFFD) { e[D[173][j]] = 44288 + j; d[44288 + j] = D[173][j];}\nD[174] = \"����������������������������������������������������������������瓳瓵瓸瓹瓺瓻瓼瓽瓾甀甁甂甃甅甆甇甈甉甊甋甌甎甐甒甔甕甖甗甛甝甞甠甡產産甤甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘�畝畞畟畠畡畢畣畤畧畨畩畫畬畭畮畯異畱畳畵當畷畺畻畼畽畾疀疁疂疄疅疇�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[174].length; ++j) if(D[174][j].charCodeAt(0) !== 0xFFFD) { e[D[174][j]] = 44544 + j; d[44544 + j] = D[174][j];}\nD[175] = \"����������������������������������������������������������������疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦疧疨疩疪疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇�瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[175].length; ++j) if(D[175][j].charCodeAt(0) !== 0xFFFD) { e[D[175][j]] = 44800 + j; d[44800 + j] = D[175][j];}\nD[176] = \"����������������������������������������������������������������癅癆癇癈癉癊癋癎癏癐癑癒癓癕癗癘癙癚癛癝癟癠癡癢癤癥癦癧癨癩癪癬癭癮癰癱癲癳癴癵癶癷癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛�皜皝皞皟皠皡皢皣皥皦皧皨皩皪皫皬皭皯皰皳皵皶皷皸皹皺皻皼皽皾盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�\".split(\"\");\nfor(j = 0; j != D[176].length; ++j) if(D[176][j].charCodeAt(0) !== 0xFFFD) { e[D[176][j]] = 45056 + j; d[45056 + j] = D[176][j];}\nD[177] = \"����������������������������������������������������������������盄盇盉盋盌盓盕盙盚盜盝盞盠盡盢監盤盦盧盨盩盪盫盬盭盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎眏眐眑眒眓眔眕眖眗眘眛眜眝眞眡眣眤眥眧眪眫�眬眮眰眱眲眳眴眹眻眽眾眿睂睄睅睆睈睉睊睋睌睍睎睏睒睓睔睕睖睗睘睙睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�\".split(\"\");\nfor(j = 0; j != D[177].length; ++j) if(D[177][j].charCodeAt(0) !== 0xFFFD) { e[D[177][j]] = 45312 + j; d[45312 + j] = D[177][j];}\nD[178] = \"����������������������������������������������������������������睝睞睟睠睤睧睩睪睭睮睯睰睱睲睳睴睵睶睷睸睺睻睼瞁瞂瞃瞆瞇瞈瞉瞊瞋瞏瞐瞓瞔瞕瞖瞗瞘瞙瞚瞛瞜瞝瞞瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶瞷瞸瞹瞺�瞼瞾矀矁矂矃矄矅矆矇矈矉矊矋矌矎矏矐矑矒矓矔矕矖矘矙矚矝矞矟矠矡矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖�\".split(\"\");\nfor(j = 0; j != D[178].length; ++j) if(D[178][j].charCodeAt(0) !== 0xFFFD) { e[D[178][j]] = 45568 + j; d[45568 + j] = D[178][j];}\nD[179] = \"����������������������������������������������������������������矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃砄砅砆砇砈砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚�硛硜硞硟硠硡硢硣硤硥硦硧硨硩硯硰硱硲硳硴硵硶硸硹硺硻硽硾硿碀碁碂碃场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�\".split(\"\");\nfor(j = 0; j != D[179].length; ++j) if(D[179][j].charCodeAt(0) !== 0xFFFD) { e[D[179][j]] = 45824 + j; d[45824 + j] = D[179][j];}\nD[180] = \"����������������������������������������������������������������碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨碩碪碫碬碭碮碯碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚磛磜磝磞磟磠磡磢磣�磤磥磦磧磩磪磫磭磮磯磰磱磳磵磶磸磹磻磼磽磾磿礀礂礃礄礆礇礈礉礊礋礌础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮�\".split(\"\");\nfor(j = 0; j != D[180].length; ++j) if(D[180][j].charCodeAt(0) !== 0xFFFD) { e[D[180][j]] = 46080 + j; d[46080 + j] = D[180][j];}\nD[181] = \"����������������������������������������������������������������礍礎礏礐礑礒礔礕礖礗礘礙礚礛礜礝礟礠礡礢礣礥礦礧礨礩礪礫礬礭礮礯礰礱礲礳礵礶礷礸礹礽礿祂祃祄祅祇祊祋祌祍祎祏祐祑祒祔祕祘祙祡祣�祤祦祩祪祫祬祮祰祱祲祳祴祵祶祹祻祼祽祾祿禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�\".split(\"\");\nfor(j = 0; j != D[181].length; ++j) if(D[181][j].charCodeAt(0) !== 0xFFFD) { e[D[181][j]] = 46336 + j; d[46336 + j] = D[181][j];}\nD[182] = \"����������������������������������������������������������������禓禔禕禖禗禘禙禛禜禝禞禟禠禡禢禣禤禥禦禨禩禪禫禬禭禮禯禰禱禲禴禵禶禷禸禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙秚秛秜秝秞秠秡秢秥秨秪�秬秮秱秲秳秴秵秶秷秹秺秼秾秿稁稄稅稇稈稉稊稌稏稐稑稒稓稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二�\".split(\"\");\nfor(j = 0; j != D[182].length; ++j) if(D[182][j].charCodeAt(0) !== 0xFFFD) { e[D[182][j]] = 46592 + j; d[46592 + j] = D[182][j];}\nD[183] = \"����������������������������������������������������������������稝稟稡稢稤稥稦稧稨稩稪稫稬稭種稯稰稱稲稴稵稶稸稺稾穀穁穂穃穄穅穇穈穉穊穋穌積穎穏穐穒穓穔穕穖穘穙穚穛穜穝穞穟穠穡穢穣穤穥穦穧穨�穩穪穫穬穭穮穯穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�\".split(\"\");\nfor(j = 0; j != D[183].length; ++j) if(D[183][j].charCodeAt(0) !== 0xFFFD) { e[D[183][j]] = 46848 + j; d[46848 + j] = D[183][j];}\nD[184] = \"����������������������������������������������������������������窣窤窧窩窪窫窮窯窰窱窲窴窵窶窷窸窹窺窻窼窽窾竀竁竂竃竄竅竆竇竈竉竊竌竍竎竏竐竑竒竓竔竕竗竘竚竛竜竝竡竢竤竧竨竩竪竫竬竮竰竱竲竳�竴竵競竷竸竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹�\".split(\"\");\nfor(j = 0; j != D[184].length; ++j) if(D[184][j].charCodeAt(0) !== 0xFFFD) { e[D[184][j]] = 47104 + j; d[47104 + j] = D[184][j];}\nD[185] = \"����������������������������������������������������������������笯笰笲笴笵笶笷笹笻笽笿筀筁筂筃筄筆筈筊筍筎筓筕筗筙筜筞筟筡筣筤筥筦筧筨筩筪筫筬筭筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆箇箈箉箊箋箌箎箏�箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹箺箻箼箽箾箿節篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈�\".split(\"\");\nfor(j = 0; j != D[185].length; ++j) if(D[185][j].charCodeAt(0) !== 0xFFFD) { e[D[185][j]] = 47360 + j; d[47360 + j] = D[185][j];}\nD[186] = \"����������������������������������������������������������������篅篈築篊篋篍篎篏篐篒篔篕篖篗篘篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲篳篴篵篶篸篹篺篻篽篿簀簁簂簃簄簅簆簈簉簊簍簎簐簑簒簓簔簕簗簘簙�簚簛簜簝簞簠簡簢簣簤簥簨簩簫簬簭簮簯簰簱簲簳簴簵簶簷簹簺簻簼簽簾籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖�\".split(\"\");\nfor(j = 0; j != D[186].length; ++j) if(D[186][j].charCodeAt(0) !== 0xFFFD) { e[D[186][j]] = 47616 + j; d[47616 + j] = D[186][j];}\nD[187] = \"����������������������������������������������������������������籃籄籅籆籇籈籉籊籋籌籎籏籐籑籒籓籔籕籖籗籘籙籚籛籜籝籞籟籠籡籢籣籤籥籦籧籨籩籪籫籬籭籮籯籰籱籲籵籶籷籸籹籺籾籿粀粁粂粃粄粅粆粇�粈粊粋粌粍粎粏粐粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴粵粶粷粸粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕�\".split(\"\");\nfor(j = 0; j != D[187].length; ++j) if(D[187][j].charCodeAt(0) !== 0xFFFD) { e[D[187][j]] = 47872 + j; d[47872 + j] = D[187][j];}\nD[188] = \"����������������������������������������������������������������粿糀糂糃糄糆糉糋糎糏糐糑糒糓糔糘糚糛糝糞糡糢糣糤糥糦糧糩糪糫糬糭糮糰糱糲糳糴糵糶糷糹糺糼糽糾糿紀紁紂紃約紅紆紇紈紉紋紌納紎紏紐�紑紒紓純紕紖紗紘紙級紛紜紝紞紟紡紣紤紥紦紨紩紪紬紭紮細紱紲紳紴紵紶肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件�\".split(\"\");\nfor(j = 0; j != D[188].length; ++j) if(D[188][j].charCodeAt(0) !== 0xFFFD) { e[D[188][j]] = 48128 + j; d[48128 + j] = D[188][j];}\nD[189] = \"����������������������������������������������������������������紷紸紹紺紻紼紽紾紿絀絁終絃組絅絆絇絈絉絊絋経絍絎絏結絑絒絓絔絕絖絗絘絙絚絛絜絝絞絟絠絡絢絣絤絥給絧絨絩絪絫絬絭絯絰統絲絳絴絵絶�絸絹絺絻絼絽絾絿綀綁綂綃綄綅綆綇綈綉綊綋綌綍綎綏綐綑綒經綔綕綖綗綘健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸�\".split(\"\");\nfor(j = 0; j != D[189].length; ++j) if(D[189][j].charCodeAt(0) !== 0xFFFD) { e[D[189][j]] = 48384 + j; d[48384 + j] = D[189][j];}\nD[190] = \"����������������������������������������������������������������継続綛綜綝綞綟綠綡綢綣綤綥綧綨綩綪綫綬維綯綰綱網綳綴綵綶綷綸綹綺綻綼綽綾綿緀緁緂緃緄緅緆緇緈緉緊緋緌緍緎総緐緑緒緓緔緕緖緗緘緙�線緛緜緝緞緟締緡緢緣緤緥緦緧編緩緪緫緬緭緮緯緰緱緲緳練緵緶緷緸緹緺尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻�\".split(\"\");\nfor(j = 0; j != D[190].length; ++j) if(D[190][j].charCodeAt(0) !== 0xFFFD) { e[D[190][j]] = 48640 + j; d[48640 + j] = D[190][j];}\nD[191] = \"����������������������������������������������������������������緻緼緽緾緿縀縁縂縃縄縅縆縇縈縉縊縋縌縍縎縏縐縑縒縓縔縕縖縗縘縙縚縛縜縝縞縟縠縡縢縣縤縥縦縧縨縩縪縫縬縭縮縯縰縱縲縳縴縵縶縷縸縹�縺縼總績縿繀繂繃繄繅繆繈繉繊繋繌繍繎繏繐繑繒繓織繕繖繗繘繙繚繛繜繝俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀�\".split(\"\");\nfor(j = 0; j != D[191].length; ++j) if(D[191][j].charCodeAt(0) !== 0xFFFD) { e[D[191][j]] = 48896 + j; d[48896 + j] = D[191][j];}\nD[192] = \"����������������������������������������������������������������繞繟繠繡繢繣繤繥繦繧繨繩繪繫繬繭繮繯繰繱繲繳繴繵繶繷繸繹繺繻繼繽繾繿纀纁纃纄纅纆纇纈纉纊纋續纍纎纏纐纑纒纓纔纕纖纗纘纙纚纜纝纞�纮纴纻纼绖绤绬绹缊缐缞缷缹缻缼缽缾缿罀罁罃罆罇罈罉罊罋罌罍罎罏罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐�\".split(\"\");\nfor(j = 0; j != D[192].length; ++j) if(D[192][j].charCodeAt(0) !== 0xFFFD) { e[D[192][j]] = 49152 + j; d[49152 + j] = D[192][j];}\nD[193] = \"����������������������������������������������������������������罖罙罛罜罝罞罠罣罤罥罦罧罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂羃羄羅羆羇羈羉羋羍羏羐羑羒羓羕羖羗羘羙羛羜羠羢羣羥羦羨義羪羫羬羭羮羱�羳羴羵羶羷羺羻羾翀翂翃翄翆翇翈翉翋翍翏翐翑習翓翖翗翙翚翛翜翝翞翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿�\".split(\"\");\nfor(j = 0; j != D[193].length; ++j) if(D[193][j].charCodeAt(0) !== 0xFFFD) { e[D[193][j]] = 49408 + j; d[49408 + j] = D[193][j];}\nD[194] = \"����������������������������������������������������������������翤翧翨翪翫翬翭翯翲翴翵翶翷翸翹翺翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫耬耭耮耯耰耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗�聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫�\".split(\"\");\nfor(j = 0; j != D[194].length; ++j) if(D[194][j].charCodeAt(0) !== 0xFFFD) { e[D[194][j]] = 49664 + j; d[49664 + j] = D[194][j];}\nD[195] = \"����������������������������������������������������������������聾肁肂肅肈肊肍肎肏肐肑肒肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇胈胉胊胋胏胐胑胒胓胔胕胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋�脌脕脗脙脛脜脝脟脠脡脢脣脤脥脦脧脨脩脪脫脭脮脰脳脴脵脷脹脺脻脼脽脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸�\".split(\"\");\nfor(j = 0; j != D[195].length; ++j) if(D[195][j].charCodeAt(0) !== 0xFFFD) { e[D[195][j]] = 49920 + j; d[49920 + j] = D[195][j];}\nD[196] = \"����������������������������������������������������������������腀腁腂腃腄腅腇腉腍腎腏腒腖腗腘腛腜腝腞腟腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃膄膅膆膇膉膋膌膍膎膐膒膓膔膕膖膗膙膚膞膟膠膡膢膤膥�膧膩膫膬膭膮膯膰膱膲膴膵膶膷膸膹膼膽膾膿臄臅臇臈臉臋臍臎臏臐臑臒臓摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁�\".split(\"\");\nfor(j = 0; j != D[196].length; ++j) if(D[196][j].charCodeAt(0) !== 0xFFFD) { e[D[196][j]] = 50176 + j; d[50176 + j] = D[196][j];}\nD[197] = \"����������������������������������������������������������������臔臕臖臗臘臙臚臛臜臝臞臟臠臡臢臤臥臦臨臩臫臮臯臰臱臲臵臶臷臸臹臺臽臿舃與興舉舊舋舎舏舑舓舕舖舗舘舙舚舝舠舤舥舦舧舩舮舲舺舼舽舿�艀艁艂艃艅艆艈艊艌艍艎艐艑艒艓艔艕艖艗艙艛艜艝艞艠艡艢艣艤艥艦艧艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗�\".split(\"\");\nfor(j = 0; j != D[197].length; ++j) if(D[197][j].charCodeAt(0) !== 0xFFFD) { e[D[197][j]] = 50432 + j; d[50432 + j] = D[197][j];}\nD[198] = \"����������������������������������������������������������������艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸�苺苼苽苾苿茀茊茋茍茐茒茓茖茘茙茝茞茟茠茡茢茣茤茥茦茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐�\".split(\"\");\nfor(j = 0; j != D[198].length; ++j) if(D[198][j].charCodeAt(0) !== 0xFFFD) { e[D[198][j]] = 50688 + j; d[50688 + j] = D[198][j];}\nD[199] = \"����������������������������������������������������������������茾茿荁荂荄荅荈荊荋荌荍荎荓荕荖荗荘荙荝荢荰荱荲荳荴荵荶荹荺荾荿莀莁莂莃莄莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡莢莣莤莥莦莧莬莭莮�莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠�\".split(\"\");\nfor(j = 0; j != D[199].length; ++j) if(D[199][j].charCodeAt(0) !== 0xFFFD) { e[D[199][j]] = 50944 + j; d[50944 + j] = D[199][j];}\nD[200] = \"����������������������������������������������������������������菮華菳菴菵菶菷菺菻菼菾菿萀萂萅萇萈萉萊萐萒萓萔萕萖萗萙萚萛萞萟萠萡萢萣萩萪萫萬萭萮萯萰萲萳萴萵萶萷萹萺萻萾萿葀葁葂葃葄葅葇葈葉�葊葋葌葍葎葏葐葒葓葔葕葖葘葝葞葟葠葢葤葥葦葧葨葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁�\".split(\"\");\nfor(j = 0; j != D[200].length; ++j) if(D[200][j].charCodeAt(0) !== 0xFFFD) { e[D[200][j]] = 51200 + j; d[51200 + j] = D[200][j];}\nD[201] = \"����������������������������������������������������������������葽葾葿蒀蒁蒃蒄蒅蒆蒊蒍蒏蒐蒑蒒蒓蒔蒕蒖蒘蒚蒛蒝蒞蒟蒠蒢蒣蒤蒥蒦蒧蒨蒩蒪蒫蒬蒭蒮蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗�蓘蓙蓚蓛蓜蓞蓡蓢蓤蓧蓨蓩蓪蓫蓭蓮蓯蓱蓲蓳蓴蓵蓶蓷蓸蓹蓺蓻蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳�\".split(\"\");\nfor(j = 0; j != D[201].length; ++j) if(D[201][j].charCodeAt(0) !== 0xFFFD) { e[D[201][j]] = 51456 + j; d[51456 + j] = D[201][j];}\nD[202] = \"����������������������������������������������������������������蔃蔄蔅蔆蔇蔈蔉蔊蔋蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢蔣蔤蔥蔦蔧蔨蔩蔪蔭蔮蔯蔰蔱蔲蔳蔴蔵蔶蔾蔿蕀蕁蕂蕄蕅蕆蕇蕋蕌蕍蕎蕏蕐蕑蕒蕓蕔蕕�蕗蕘蕚蕛蕜蕝蕟蕠蕡蕢蕣蕥蕦蕧蕩蕪蕫蕬蕭蕮蕯蕰蕱蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱�\".split(\"\");\nfor(j = 0; j != D[202].length; ++j) if(D[202][j].charCodeAt(0) !== 0xFFFD) { e[D[202][j]] = 51712 + j; d[51712 + j] = D[202][j];}\nD[203] = \"����������������������������������������������������������������薂薃薆薈薉薊薋薌薍薎薐薑薒薓薔薕薖薗薘薙薚薝薞薟薠薡薢薣薥薦薧薩薫薬薭薱薲薳薴薵薶薸薺薻薼薽薾薿藀藂藃藄藅藆藇藈藊藋藌藍藎藑藒�藔藖藗藘藙藚藛藝藞藟藠藡藢藣藥藦藧藨藪藫藬藭藮藯藰藱藲藳藴藵藶藷藸恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔�\".split(\"\");\nfor(j = 0; j != D[203].length; ++j) if(D[203][j].charCodeAt(0) !== 0xFFFD) { e[D[203][j]] = 51968 + j; d[51968 + j] = D[203][j];}\nD[204] = \"����������������������������������������������������������������藹藺藼藽藾蘀蘁蘂蘃蘄蘆蘇蘈蘉蘊蘋蘌蘍蘎蘏蘐蘒蘓蘔蘕蘗蘘蘙蘚蘛蘜蘝蘞蘟蘠蘡蘢蘣蘤蘥蘦蘨蘪蘫蘬蘭蘮蘯蘰蘱蘲蘳蘴蘵蘶蘷蘹蘺蘻蘽蘾蘿虀�虁虂虃虄虅虆虇虈虉虊虋虌虒虓處虖虗虘虙虛虜虝號虠虡虣虤虥虦虧虨虩虪獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃�\".split(\"\");\nfor(j = 0; j != D[204].length; ++j) if(D[204][j].charCodeAt(0) !== 0xFFFD) { e[D[204][j]] = 52224 + j; d[52224 + j] = D[204][j];}\nD[205] = \"����������������������������������������������������������������虭虯虰虲虳虴虵虶虷虸蚃蚄蚅蚆蚇蚈蚉蚎蚏蚐蚑蚒蚔蚖蚗蚘蚙蚚蚛蚞蚟蚠蚡蚢蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻蚼蚽蚾蚿蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜�蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威�\".split(\"\");\nfor(j = 0; j != D[205].length; ++j) if(D[205][j].charCodeAt(0) !== 0xFFFD) { e[D[205][j]] = 52480 + j; d[52480 + j] = D[205][j];}\nD[206] = \"����������������������������������������������������������������蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀蝁蝂蝃蝄蝅蝆蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚蝛蝜蝝蝞蝟蝡蝢蝦蝧蝨蝩蝪蝫蝬蝭蝯蝱蝲蝳蝵�蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎螏螐螑螒螔螕螖螘螙螚螛螜螝螞螠螡螢螣螤巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺�\".split(\"\");\nfor(j = 0; j != D[206].length; ++j) if(D[206][j].charCodeAt(0) !== 0xFFFD) { e[D[206][j]] = 52736 + j; d[52736 + j] = D[206][j];}\nD[207] = \"����������������������������������������������������������������螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁蟂蟃蟄蟅蟇蟈蟉蟌蟍蟎蟏蟐蟔蟕蟖蟗蟘蟙蟚蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯蟰蟱蟲蟳蟴蟵蟶蟷蟸�蟺蟻蟼蟽蟿蠀蠁蠂蠄蠅蠆蠇蠈蠉蠋蠌蠍蠎蠏蠐蠑蠒蠔蠗蠘蠙蠚蠜蠝蠞蠟蠠蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓�\".split(\"\");\nfor(j = 0; j != D[207].length; ++j) if(D[207][j].charCodeAt(0) !== 0xFFFD) { e[D[207][j]] = 52992 + j; d[52992 + j] = D[207][j];}\nD[208] = \"����������������������������������������������������������������蠤蠥蠦蠧蠨蠩蠪蠫蠬蠭蠮蠯蠰蠱蠳蠴蠵蠶蠷蠸蠺蠻蠽蠾蠿衁衂衃衆衇衈衉衊衋衎衏衐衑衒術衕衖衘衚衛衜衝衞衟衠衦衧衪衭衯衱衳衴衵衶衸衹衺�衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄�\".split(\"\");\nfor(j = 0; j != D[208].length; ++j) if(D[208][j].charCodeAt(0) !== 0xFFFD) { e[D[208][j]] = 53248 + j; d[53248 + j] = D[208][j];}\nD[209] = \"����������������������������������������������������������������袬袮袯袰袲袳袴袵袶袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚裛補裝裞裠裡裦裧裩裪裫裬裭裮裯裲裵裶裷裺裻製裿褀褁褃褄褅褆複褈�褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟褠褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶�\".split(\"\");\nfor(j = 0; j != D[209].length; ++j) if(D[209][j].charCodeAt(0) !== 0xFFFD) { e[D[209][j]] = 53504 + j; d[53504 + j] = D[209][j];}\nD[210] = \"����������������������������������������������������������������褸褹褺褻褼褽褾褿襀襂襃襅襆襇襈襉襊襋襌襍襎襏襐襑襒襓襔襕襖襗襘襙襚襛襜襝襠襡襢襣襤襥襧襨襩襪襫襬襭襮襯襰襱襲襳襴襵襶襷襸襹襺襼�襽襾覀覂覄覅覇覈覉覊見覌覍覎規覐覑覒覓覔覕視覗覘覙覚覛覜覝覞覟覠覡摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐�\".split(\"\");\nfor(j = 0; j != D[210].length; ++j) if(D[210][j].charCodeAt(0) !== 0xFFFD) { e[D[210][j]] = 53760 + j; d[53760 + j] = D[210][j];}\nD[211] = \"����������������������������������������������������������������覢覣覤覥覦覧覨覩親覫覬覭覮覯覰覱覲観覴覵覶覷覸覹覺覻覼覽覾覿觀觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴觵觶觷觸觹觺�觻觼觽觾觿訁訂訃訄訅訆計訉訊訋訌訍討訏訐訑訒訓訔訕訖託記訙訚訛訜訝印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉�\".split(\"\");\nfor(j = 0; j != D[211].length; ++j) if(D[211][j].charCodeAt(0) !== 0xFFFD) { e[D[211][j]] = 54016 + j; d[54016 + j] = D[211][j];}\nD[212] = \"����������������������������������������������������������������訞訟訠訡訢訣訤訥訦訧訨訩訪訫訬設訮訯訰許訲訳訴訵訶訷訸訹診註証訽訿詀詁詂詃詄詅詆詇詉詊詋詌詍詎詏詐詑詒詓詔評詖詗詘詙詚詛詜詝詞�詟詠詡詢詣詤詥試詧詨詩詪詫詬詭詮詯詰話該詳詴詵詶詷詸詺詻詼詽詾詿誀浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧�\".split(\"\");\nfor(j = 0; j != D[212].length; ++j) if(D[212][j].charCodeAt(0) !== 0xFFFD) { e[D[212][j]] = 54272 + j; d[54272 + j] = D[212][j];}\nD[213] = \"����������������������������������������������������������������誁誂誃誄誅誆誇誈誋誌認誎誏誐誑誒誔誕誖誗誘誙誚誛誜誝語誟誠誡誢誣誤誥誦誧誨誩說誫説読誮誯誰誱課誳誴誵誶誷誸誹誺誻誼誽誾調諀諁諂�諃諄諅諆談諈諉諊請諌諍諎諏諐諑諒諓諔諕論諗諘諙諚諛諜諝諞諟諠諡諢諣铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政�\".split(\"\");\nfor(j = 0; j != D[213].length; ++j) if(D[213][j].charCodeAt(0) !== 0xFFFD) { e[D[213][j]] = 54528 + j; d[54528 + j] = D[213][j];}\nD[214] = \"����������������������������������������������������������������諤諥諦諧諨諩諪諫諬諭諮諯諰諱諲諳諴諵諶諷諸諹諺諻諼諽諾諿謀謁謂謃謄謅謆謈謉謊謋謌謍謎謏謐謑謒謓謔謕謖謗謘謙謚講謜謝謞謟謠謡謢謣�謤謥謧謨謩謪謫謬謭謮謯謰謱謲謳謴謵謶謷謸謹謺謻謼謽謾謿譀譁譂譃譄譅帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑�\".split(\"\");\nfor(j = 0; j != D[214].length; ++j) if(D[214][j].charCodeAt(0) !== 0xFFFD) { e[D[214][j]] = 54784 + j; d[54784 + j] = D[214][j];}\nD[215] = \"����������������������������������������������������������������譆譇譈證譊譋譌譍譎譏譐譑譒譓譔譕譖譗識譙譚譛譜譝譞譟譠譡譢譣譤譥譧譨譩譪譫譭譮譯議譱譲譳譴譵譶護譸譹譺譻譼譽譾譿讀讁讂讃讄讅讆�讇讈讉變讋讌讍讎讏讐讑讒讓讔讕讖讗讘讙讚讛讜讝讞讟讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座������\".split(\"\");\nfor(j = 0; j != D[215].length; ++j) if(D[215][j].charCodeAt(0) !== 0xFFFD) { e[D[215][j]] = 55040 + j; d[55040 + j] = D[215][j];}\nD[216] = \"����������������������������������������������������������������谸谹谺谻谼谽谾谿豀豂豃豄豅豈豊豋豍豎豏豐豑豒豓豔豖豗豘豙豛豜豝豞豟豠豣豤豥豦豧豨豩豬豭豮豯豰豱豲豴豵豶豷豻豼豽豾豿貀貁貃貄貆貇�貈貋貍貎貏貐貑貒貓貕貖貗貙貚貛貜貝貞貟負財貢貣貤貥貦貧貨販貪貫責貭亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝�\".split(\"\");\nfor(j = 0; j != D[216].length; ++j) if(D[216][j].charCodeAt(0) !== 0xFFFD) { e[D[216][j]] = 55296 + j; d[55296 + j] = D[216][j];}\nD[217] = \"����������������������������������������������������������������貮貯貰貱貲貳貴貵貶買貸貹貺費貼貽貾貿賀賁賂賃賄賅賆資賈賉賊賋賌賍賎賏賐賑賒賓賔賕賖賗賘賙賚賛賜賝賞賟賠賡賢賣賤賥賦賧賨賩質賫賬�賭賮賯賰賱賲賳賴賵賶賷賸賹賺賻購賽賾賿贀贁贂贃贄贅贆贇贈贉贊贋贌贍佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼�\".split(\"\");\nfor(j = 0; j != D[217].length; ++j) if(D[217][j].charCodeAt(0) !== 0xFFFD) { e[D[217][j]] = 55552 + j; d[55552 + j] = D[217][j];}\nD[218] = \"����������������������������������������������������������������贎贏贐贑贒贓贔贕贖贗贘贙贚贛贜贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸赹赺赻赼赽赾赿趀趂趃趆趇趈趉趌趍趎趏趐趒趓趕趖趗趘趙趚趛趜趝趞趠趡�趢趤趥趦趧趨趩趪趫趬趭趮趯趰趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�\".split(\"\");\nfor(j = 0; j != D[218].length; ++j) if(D[218][j].charCodeAt(0) !== 0xFFFD) { e[D[218][j]] = 55808 + j; d[55808 + j] = D[218][j];}\nD[219] = \"����������������������������������������������������������������跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾跿踀踁踂踃踄踆踇踈踋踍踎踐踑踒踓踕踖踗踘踙踚踛踜踠踡踤踥踦踧踨踫踭踰踲踳踴踶踷踸踻踼踾�踿蹃蹅蹆蹌蹍蹎蹏蹐蹓蹔蹕蹖蹗蹘蹚蹛蹜蹝蹞蹟蹠蹡蹢蹣蹤蹥蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝�\".split(\"\");\nfor(j = 0; j != D[219].length; ++j) if(D[219][j].charCodeAt(0) !== 0xFFFD) { e[D[219][j]] = 56064 + j; d[56064 + j] = D[219][j];}\nD[220] = \"����������������������������������������������������������������蹳蹵蹷蹸蹹蹺蹻蹽蹾躀躂躃躄躆躈躉躊躋躌躍躎躑躒躓躕躖躗躘躙躚躛躝躟躠躡躢躣躤躥躦躧躨躩躪躭躮躰躱躳躴躵躶躷躸躹躻躼躽躾躿軀軁軂�軃軄軅軆軇軈軉車軋軌軍軏軐軑軒軓軔軕軖軗軘軙軚軛軜軝軞軟軠軡転軣軤堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�\".split(\"\");\nfor(j = 0; j != D[220].length; ++j) if(D[220][j].charCodeAt(0) !== 0xFFFD) { e[D[220][j]] = 56320 + j; d[56320 + j] = D[220][j];}\nD[221] = \"����������������������������������������������������������������軥軦軧軨軩軪軫軬軭軮軯軰軱軲軳軴軵軶軷軸軹軺軻軼軽軾軿輀輁輂較輄輅輆輇輈載輊輋輌輍輎輏輐輑輒輓輔輕輖輗輘輙輚輛輜輝輞輟輠輡輢輣�輤輥輦輧輨輩輪輫輬輭輮輯輰輱輲輳輴輵輶輷輸輹輺輻輼輽輾輿轀轁轂轃轄荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺�\".split(\"\");\nfor(j = 0; j != D[221].length; ++j) if(D[221][j].charCodeAt(0) !== 0xFFFD) { e[D[221][j]] = 56576 + j; d[56576 + j] = D[221][j];}\nD[222] = \"����������������������������������������������������������������轅轆轇轈轉轊轋轌轍轎轏轐轑轒轓轔轕轖轗轘轙轚轛轜轝轞轟轠轡轢轣轤轥轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆�迉迊迋迌迍迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�\".split(\"\");\nfor(j = 0; j != D[222].length; ++j) if(D[222][j].charCodeAt(0) !== 0xFFFD) { e[D[222][j]] = 56832 + j; d[56832 + j] = D[222][j];}\nD[223] = \"����������������������������������������������������������������這逜連逤逥逧逨逩逪逫逬逰週進逳逴逷逹逺逽逿遀遃遅遆遈遉遊運遌過達違遖遙遚遜遝遞遟遠遡遤遦遧適遪遫遬遯遰遱遲遳遶遷選遹遺遻遼遾邁�還邅邆邇邉邊邌邍邎邏邐邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�\".split(\"\");\nfor(j = 0; j != D[223].length; ++j) if(D[223][j].charCodeAt(0) !== 0xFFFD) { e[D[223][j]] = 57088 + j; d[57088 + j] = D[223][j];}\nD[224] = \"����������������������������������������������������������������郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅鄆鄇鄈鄉鄊鄋鄌鄍鄎鄏鄐鄑鄒鄓鄔鄕鄖鄗鄘鄚鄛鄜�鄝鄟鄠鄡鄤鄥鄦鄧鄨鄩鄪鄫鄬鄭鄮鄰鄲鄳鄴鄵鄶鄷鄸鄺鄻鄼鄽鄾鄿酀酁酂酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"����������������������������������������������������������������酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀醁醂醃醄醆醈醊醎醏醓醔醕醖醗醘醙醜醝醞醟醠醡醤醥醦醧醨醩醫醬醰醱醲醳醶醷醸醹醻�醼醽醾醿釀釁釂釃釄釅釆釈釋釐釒釓釔釕釖釗釘釙釚釛針釞釟釠釡釢釣釤釥帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"����������������������������������������������������������������釦釧釨釩釪釫釬釭釮釯釰釱釲釳釴釵釶釷釸釹釺釻釼釽釾釿鈀鈁鈂鈃鈄鈅鈆鈇鈈鈉鈊鈋鈌鈍鈎鈏鈐鈑鈒鈓鈔鈕鈖鈗鈘鈙鈚鈛鈜鈝鈞鈟鈠鈡鈢鈣鈤�鈥鈦鈧鈨鈩鈪鈫鈬鈭鈮鈯鈰鈱鈲鈳鈴鈵鈶鈷鈸鈹鈺鈻鈼鈽鈾鈿鉀鉁鉂鉃鉄鉅狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"����������������������������������������������������������������鉆鉇鉈鉉鉊鉋鉌鉍鉎鉏鉐鉑鉒鉓鉔鉕鉖鉗鉘鉙鉚鉛鉜鉝鉞鉟鉠鉡鉢鉣鉤鉥鉦鉧鉨鉩鉪鉫鉬鉭鉮鉯鉰鉱鉲鉳鉵鉶鉷鉸鉹鉺鉻鉼鉽鉾鉿銀銁銂銃銄銅�銆銇銈銉銊銋銌銍銏銐銑銒銓銔銕銖銗銘銙銚銛銜銝銞銟銠銡銢銣銤銥銦銧恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"����������������������������������������������������������������銨銩銪銫銬銭銯銰銱銲銳銴銵銶銷銸銹銺銻銼銽銾銿鋀鋁鋂鋃鋄鋅鋆鋇鋉鋊鋋鋌鋍鋎鋏鋐鋑鋒鋓鋔鋕鋖鋗鋘鋙鋚鋛鋜鋝鋞鋟鋠鋡鋢鋣鋤鋥鋦鋧鋨�鋩鋪鋫鋬鋭鋮鋯鋰鋱鋲鋳鋴鋵鋶鋷鋸鋹鋺鋻鋼鋽鋾鋿錀錁錂錃錄錅錆錇錈錉洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"����������������������������������������������������������������錊錋錌錍錎錏錐錑錒錓錔錕錖錗錘錙錚錛錜錝錞錟錠錡錢錣錤錥錦錧錨錩錪錫錬錭錮錯錰錱録錳錴錵錶錷錸錹錺錻錼錽錿鍀鍁鍂鍃鍄鍅鍆鍇鍈鍉�鍊鍋鍌鍍鍎鍏鍐鍑鍒鍓鍔鍕鍖鍗鍘鍙鍚鍛鍜鍝鍞鍟鍠鍡鍢鍣鍤鍥鍦鍧鍨鍩鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"����������������������������������������������������������������鍬鍭鍮鍯鍰鍱鍲鍳鍴鍵鍶鍷鍸鍹鍺鍻鍼鍽鍾鍿鎀鎁鎂鎃鎄鎅鎆鎇鎈鎉鎊鎋鎌鎍鎎鎐鎑鎒鎓鎔鎕鎖鎗鎘鎙鎚鎛鎜鎝鎞鎟鎠鎡鎢鎣鎤鎥鎦鎧鎨鎩鎪鎫�鎬鎭鎮鎯鎰鎱鎲鎳鎴鎵鎶鎷鎸鎹鎺鎻鎼鎽鎾鎿鏀鏁鏂鏃鏄鏅鏆鏇鏈鏉鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"����������������������������������������������������������������鏎鏏鏐鏑鏒鏓鏔鏕鏗鏘鏙鏚鏛鏜鏝鏞鏟鏠鏡鏢鏣鏤鏥鏦鏧鏨鏩鏪鏫鏬鏭鏮鏯鏰鏱鏲鏳鏴鏵鏶鏷鏸鏹鏺鏻鏼鏽鏾鏿鐀鐁鐂鐃鐄鐅鐆鐇鐈鐉鐊鐋鐌鐍�鐎鐏鐐鐑鐒鐓鐔鐕鐖鐗鐘鐙鐚鐛鐜鐝鐞鐟鐠鐡鐢鐣鐤鐥鐦鐧鐨鐩鐪鐫鐬鐭鐮纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"����������������������������������������������������������������鐯鐰鐱鐲鐳鐴鐵鐶鐷鐸鐹鐺鐻鐼鐽鐿鑀鑁鑂鑃鑄鑅鑆鑇鑈鑉鑊鑋鑌鑍鑎鑏鑐鑑鑒鑓鑔鑕鑖鑗鑘鑙鑚鑛鑜鑝鑞鑟鑠鑡鑢鑣鑤鑥鑦鑧鑨鑩鑪鑬鑭鑮鑯�鑰鑱鑲鑳鑴鑵鑶鑷鑸鑹鑺鑻鑼鑽鑾鑿钀钁钂钃钄钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹�\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"����������������������������������������������������������������锧锳锽镃镈镋镕镚镠镮镴镵長镸镹镺镻镼镽镾門閁閂閃閄閅閆閇閈閉閊開閌閍閎閏閐閑閒間閔閕閖閗閘閙閚閛閜閝閞閟閠閡関閣閤閥閦閧閨閩閪�閫閬閭閮閯閰閱閲閳閴閵閶閷閸閹閺閻閼閽閾閿闀闁闂闃闄闅闆闇闈闉闊闋椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"����������������������������������������������������������������闌闍闎闏闐闑闒闓闔闕闖闗闘闙闚闛關闝闞闟闠闡闢闣闤闥闦闧闬闿阇阓阘阛阞阠阣阤阥阦阧阨阩阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗�陘陙陚陜陝陞陠陣陥陦陫陭陮陯陰陱陳陸陹険陻陼陽陾陿隀隁隂隃隄隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[235] = \"����������������������������������������������������������������隌階隑隒隓隕隖隚際隝隞隟隠隡隢隣隤隥隦隨隩險隫隬隭隮隯隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖雗雘雙雚雛雜雝雞雟雡離難雤雥雦雧雫�雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗霘霙霚霛霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�\".split(\"\");\nfor(j = 0; j != D[235].length; ++j) if(D[235][j].charCodeAt(0) !== 0xFFFD) { e[D[235][j]] = 60160 + j; d[60160 + j] = D[235][j];}\nD[236] = \"����������������������������������������������������������������霡霢霣霤霥霦霧霨霩霫霬霮霯霱霳霴霵霶霷霺霻霼霽霿靀靁靂靃靄靅靆靇靈靉靊靋靌靍靎靏靐靑靔靕靗靘靚靜靝靟靣靤靦靧靨靪靫靬靭靮靯靰靱�靲靵靷靸靹靺靻靽靾靿鞀鞁鞂鞃鞄鞆鞇鞈鞉鞊鞌鞎鞏鞐鞓鞕鞖鞗鞙鞚鞛鞜鞝臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�\".split(\"\");\nfor(j = 0; j != D[236].length; ++j) if(D[236][j].charCodeAt(0) !== 0xFFFD) { e[D[236][j]] = 60416 + j; d[60416 + j] = D[236][j];}\nD[237] = \"����������������������������������������������������������������鞞鞟鞡鞢鞤鞥鞦鞧鞨鞩鞪鞬鞮鞰鞱鞳鞵鞶鞷鞸鞹鞺鞻鞼鞽鞾鞿韀韁韂韃韄韅韆韇韈韉韊韋韌韍韎韏韐韑韒韓韔韕韖韗韘韙韚韛韜韝韞韟韠韡韢韣�韤韥韨韮韯韰韱韲韴韷韸韹韺韻韼韽韾響頀頁頂頃頄項順頇須頉頊頋頌頍頎怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"����������������������������������������������������������������頏預頑頒頓頔頕頖頗領頙頚頛頜頝頞頟頠頡頢頣頤頥頦頧頨頩頪頫頬頭頮頯頰頱頲頳頴頵頶頷頸頹頺頻頼頽頾頿顀顁顂顃顄顅顆顇顈顉顊顋題額�顎顏顐顑顒顓顔顕顖顗願顙顚顛顜顝類顟顠顡顢顣顤顥顦顧顨顩顪顫顬顭顮睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[239] = \"����������������������������������������������������������������顯顰顱顲顳顴颋颎颒颕颙颣風颩颪颫颬颭颮颯颰颱颲颳颴颵颶颷颸颹颺颻颼颽颾颿飀飁飂飃飄飅飆飇飈飉飊飋飌飍飏飐飔飖飗飛飜飝飠飡飢飣飤�飥飦飩飪飫飬飭飮飯飰飱飲飳飴飵飶飷飸飹飺飻飼飽飾飿餀餁餂餃餄餅餆餇铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�\".split(\"\");\nfor(j = 0; j != D[239].length; ++j) if(D[239][j].charCodeAt(0) !== 0xFFFD) { e[D[239][j]] = 61184 + j; d[61184 + j] = D[239][j];}\nD[240] = \"����������������������������������������������������������������餈餉養餋餌餎餏餑餒餓餔餕餖餗餘餙餚餛餜餝餞餟餠餡餢餣餤餥餦餧館餩餪餫餬餭餯餰餱餲餳餴餵餶餷餸餹餺餻餼餽餾餿饀饁饂饃饄饅饆饇饈饉�饊饋饌饍饎饏饐饑饒饓饖饗饘饙饚饛饜饝饞饟饠饡饢饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�\".split(\"\");\nfor(j = 0; j != D[240].length; ++j) if(D[240][j].charCodeAt(0) !== 0xFFFD) { e[D[240][j]] = 61440 + j; d[61440 + j] = D[240][j];}\nD[241] = \"����������������������������������������������������������������馌馎馚馛馜馝馞馟馠馡馢馣馤馦馧馩馪馫馬馭馮馯馰馱馲馳馴馵馶馷馸馹馺馻馼馽馾馿駀駁駂駃駄駅駆駇駈駉駊駋駌駍駎駏駐駑駒駓駔駕駖駗駘�駙駚駛駜駝駞駟駠駡駢駣駤駥駦駧駨駩駪駫駬駭駮駯駰駱駲駳駴駵駶駷駸駹瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�\".split(\"\");\nfor(j = 0; j != D[241].length; ++j) if(D[241][j].charCodeAt(0) !== 0xFFFD) { e[D[241][j]] = 61696 + j; d[61696 + j] = D[241][j];}\nD[242] = \"����������������������������������������������������������������駺駻駼駽駾駿騀騁騂騃騄騅騆騇騈騉騊騋騌騍騎騏騐騑騒験騔騕騖騗騘騙騚騛騜騝騞騟騠騡騢騣騤騥騦騧騨騩騪騫騬騭騮騯騰騱騲騳騴騵騶騷騸�騹騺騻騼騽騾騿驀驁驂驃驄驅驆驇驈驉驊驋驌驍驎驏驐驑驒驓驔驕驖驗驘驙颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�\".split(\"\");\nfor(j = 0; j != D[242].length; ++j) if(D[242][j].charCodeAt(0) !== 0xFFFD) { e[D[242][j]] = 61952 + j; d[61952 + j] = D[242][j];}\nD[243] = \"����������������������������������������������������������������驚驛驜驝驞驟驠驡驢驣驤驥驦驧驨驩驪驫驲骃骉骍骎骔骕骙骦骩骪骫骬骭骮骯骲骳骴骵骹骻骽骾骿髃髄髆髇髈髉髊髍髎髏髐髒體髕髖髗髙髚髛髜�髝髞髠髢髣髤髥髧髨髩髪髬髮髰髱髲髳髴髵髶髷髸髺髼髽髾髿鬀鬁鬂鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�\".split(\"\");\nfor(j = 0; j != D[243].length; ++j) if(D[243][j].charCodeAt(0) !== 0xFFFD) { e[D[243][j]] = 62208 + j; d[62208 + j] = D[243][j];}\nD[244] = \"����������������������������������������������������������������鬇鬉鬊鬋鬌鬍鬎鬐鬑鬒鬔鬕鬖鬗鬘鬙鬚鬛鬜鬝鬞鬠鬡鬢鬤鬥鬦鬧鬨鬩鬪鬫鬬鬭鬮鬰鬱鬳鬴鬵鬶鬷鬸鬹鬺鬽鬾鬿魀魆魊魋魌魎魐魒魓魕魖魗魘魙魚�魛魜魝魞魟魠魡魢魣魤魥魦魧魨魩魪魫魬魭魮魯魰魱魲魳魴魵魶魷魸魹魺魻簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤�\".split(\"\");\nfor(j = 0; j != D[244].length; ++j) if(D[244][j].charCodeAt(0) !== 0xFFFD) { e[D[244][j]] = 62464 + j; d[62464 + j] = D[244][j];}\nD[245] = \"����������������������������������������������������������������魼魽魾魿鮀鮁鮂鮃鮄鮅鮆鮇鮈鮉鮊鮋鮌鮍鮎鮏鮐鮑鮒鮓鮔鮕鮖鮗鮘鮙鮚鮛鮜鮝鮞鮟鮠鮡鮢鮣鮤鮥鮦鮧鮨鮩鮪鮫鮬鮭鮮鮯鮰鮱鮲鮳鮴鮵鮶鮷鮸鮹鮺�鮻鮼鮽鮾鮿鯀鯁鯂鯃鯄鯅鯆鯇鯈鯉鯊鯋鯌鯍鯎鯏鯐鯑鯒鯓鯔鯕鯖鯗鯘鯙鯚鯛酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�\".split(\"\");\nfor(j = 0; j != D[245].length; ++j) if(D[245][j].charCodeAt(0) !== 0xFFFD) { e[D[245][j]] = 62720 + j; d[62720 + j] = D[245][j];}\nD[246] = \"����������������������������������������������������������������鯜鯝鯞鯟鯠鯡鯢鯣鯤鯥鯦鯧鯨鯩鯪鯫鯬鯭鯮鯯鯰鯱鯲鯳鯴鯵鯶鯷鯸鯹鯺鯻鯼鯽鯾鯿鰀鰁鰂鰃鰄鰅鰆鰇鰈鰉鰊鰋鰌鰍鰎鰏鰐鰑鰒鰓鰔鰕鰖鰗鰘鰙鰚�鰛鰜鰝鰞鰟鰠鰡鰢鰣鰤鰥鰦鰧鰨鰩鰪鰫鰬鰭鰮鰯鰰鰱鰲鰳鰴鰵鰶鰷鰸鰹鰺鰻觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋�\".split(\"\");\nfor(j = 0; j != D[246].length; ++j) if(D[246][j].charCodeAt(0) !== 0xFFFD) { e[D[246][j]] = 62976 + j; d[62976 + j] = D[246][j];}\nD[247] = \"����������������������������������������������������������������鰼鰽鰾鰿鱀鱁鱂鱃鱄鱅鱆鱇鱈鱉鱊鱋鱌鱍鱎鱏鱐鱑鱒鱓鱔鱕鱖鱗鱘鱙鱚鱛鱜鱝鱞鱟鱠鱡鱢鱣鱤鱥鱦鱧鱨鱩鱪鱫鱬鱭鱮鱯鱰鱱鱲鱳鱴鱵鱶鱷鱸鱹鱺�鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾鲿鳀鳁鳂鳈鳉鳑鳒鳚鳛鳠鳡鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�\".split(\"\");\nfor(j = 0; j != D[247].length; ++j) if(D[247][j].charCodeAt(0) !== 0xFFFD) { e[D[247][j]] = 63232 + j; d[63232 + j] = D[247][j];}\nD[248] = \"����������������������������������������������������������������鳣鳤鳥鳦鳧鳨鳩鳪鳫鳬鳭鳮鳯鳰鳱鳲鳳鳴鳵鳶鳷鳸鳹鳺鳻鳼鳽鳾鳿鴀鴁鴂鴃鴄鴅鴆鴇鴈鴉鴊鴋鴌鴍鴎鴏鴐鴑鴒鴓鴔鴕鴖鴗鴘鴙鴚鴛鴜鴝鴞鴟鴠鴡�鴢鴣鴤鴥鴦鴧鴨鴩鴪鴫鴬鴭鴮鴯鴰鴱鴲鴳鴴鴵鴶鴷鴸鴹鴺鴻鴼鴽鴾鴿鵀鵁鵂�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[248].length; ++j) if(D[248][j].charCodeAt(0) !== 0xFFFD) { e[D[248][j]] = 63488 + j; d[63488 + j] = D[248][j];}\nD[249] = \"����������������������������������������������������������������鵃鵄鵅鵆鵇鵈鵉鵊鵋鵌鵍鵎鵏鵐鵑鵒鵓鵔鵕鵖鵗鵘鵙鵚鵛鵜鵝鵞鵟鵠鵡鵢鵣鵤鵥鵦鵧鵨鵩鵪鵫鵬鵭鵮鵯鵰鵱鵲鵳鵴鵵鵶鵷鵸鵹鵺鵻鵼鵽鵾鵿鶀鶁�鶂鶃鶄鶅鶆鶇鶈鶉鶊鶋鶌鶍鶎鶏鶐鶑鶒鶓鶔鶕鶖鶗鶘鶙鶚鶛鶜鶝鶞鶟鶠鶡鶢�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[249].length; ++j) if(D[249][j].charCodeAt(0) !== 0xFFFD) { e[D[249][j]] = 63744 + j; d[63744 + j] = D[249][j];}\nD[250] = \"����������������������������������������������������������������鶣鶤鶥鶦鶧鶨鶩鶪鶫鶬鶭鶮鶯鶰鶱鶲鶳鶴鶵鶶鶷鶸鶹鶺鶻鶼鶽鶾鶿鷀鷁鷂鷃鷄鷅鷆鷇鷈鷉鷊鷋鷌鷍鷎鷏鷐鷑鷒鷓鷔鷕鷖鷗鷘鷙鷚鷛鷜鷝鷞鷟鷠鷡�鷢鷣鷤鷥鷦鷧鷨鷩鷪鷫鷬鷭鷮鷯鷰鷱鷲鷳鷴鷵鷶鷷鷸鷹鷺鷻鷼鷽鷾鷿鸀鸁鸂�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[250].length; ++j) if(D[250][j].charCodeAt(0) !== 0xFFFD) { e[D[250][j]] = 64000 + j; d[64000 + j] = D[250][j];}\nD[251] = \"����������������������������������������������������������������鸃鸄鸅鸆鸇鸈鸉鸊鸋鸌鸍鸎鸏鸐鸑鸒鸓鸔鸕鸖鸗鸘鸙鸚鸛鸜鸝鸞鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴鹵鹶鹷鹸鹹鹺鹻鹼鹽麀�麁麃麄麅麆麉麊麌麍麎麏麐麑麔麕麖麗麘麙麚麛麜麞麠麡麢麣麤麥麧麨麩麪�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[251].length; ++j) if(D[251][j].charCodeAt(0) !== 0xFFFD) { e[D[251][j]] = 64256 + j; d[64256 + j] = D[251][j];}\nD[252] = \"����������������������������������������������������������������麫麬麭麮麯麰麱麲麳麵麶麷麹麺麼麿黀黁黂黃黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰黱黲黳黴黵黶黷黸黺黽黿鼀鼁鼂鼃鼄鼅�鼆鼇鼈鼉鼊鼌鼏鼑鼒鼔鼕鼖鼘鼚鼛鼜鼝鼞鼟鼡鼣鼤鼥鼦鼧鼨鼩鼪鼫鼭鼮鼰鼱�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[252].length; ++j) if(D[252][j].charCodeAt(0) !== 0xFFFD) { e[D[252][j]] = 64512 + j; d[64512 + j] = D[252][j];}\nD[253] = \"����������������������������������������������������������������鼲鼳鼴鼵鼶鼸鼺鼼鼿齀齁齂齃齅齆齇齈齉齊齋齌齍齎齏齒齓齔齕齖齗齘齙齚齛齜齝齞齟齠齡齢齣齤齥齦齧齨齩齪齫齬齭齮齯齰齱齲齳齴齵齶齷齸�齹齺齻齼齽齾龁龂龍龎龏龐龑龒龓龔龕龖龗龘龜龝龞龡龢龣龤龥郎凉秊裏隣�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[253].length; ++j) if(D[253][j].charCodeAt(0) !== 0xFFFD) { e[D[253][j]] = 64768 + j; d[64768 + j] = D[253][j];}\nD[254] = \"����������������������������������������������������������������兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[254].length; ++j) if(D[254][j].charCodeAt(0) !== 0xFFFD) { e[D[254][j]] = 65024 + j; d[65024 + j] = D[254][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[949] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[129] = \"�����������������������������������������������������������������갂갃갅갆갋갌갍갎갏갘갞갟갡갢갣갥갦갧갨갩갪갫갮갲갳갴������갵갶갷갺갻갽갾갿걁걂걃걄걅걆걇걈걉걊걌걎걏걐걑걒걓걕������걖걗걙걚걛걝걞걟걠걡걢걣걤걥걦걧걨걩걪걫걬걭걮걯걲걳걵걶걹걻걼걽걾걿겂겇겈겍겎겏겑겒겓겕겖겗겘겙겚겛겞겢겣겤겥겦겧겫겭겮겱겲겳겴겵겶겷겺겾겿곀곂곃곅곆곇곉곊곋곍곎곏곐곑곒곓곔곖곘곙곚곛곜곝곞곟곢곣곥곦곩곫곭곮곲곴곷곸곹곺곻곾곿괁괂괃괅괇괈괉괊괋괎괐괒괓�\".split(\"\");\nfor(j = 0; j != D[129].length; ++j) if(D[129][j].charCodeAt(0) !== 0xFFFD) { e[D[129][j]] = 33024 + j; d[33024 + j] = D[129][j];}\nD[130] = \"�����������������������������������������������������������������괔괕괖괗괙괚괛괝괞괟괡괢괣괤괥괦괧괨괪괫괮괯괰괱괲괳������괶괷괹괺괻괽괾괿굀굁굂굃굆굈굊굋굌굍굎굏굑굒굓굕굖굗������굙굚굛굜굝굞굟굠굢굤굥굦굧굨굩굪굫굮굯굱굲굷굸굹굺굾궀궃궄궅궆궇궊궋궍궎궏궑궒궓궔궕궖궗궘궙궚궛궞궟궠궡궢궣궥궦궧궨궩궪궫궬궭궮궯궰궱궲궳궴궵궶궸궹궺궻궼궽궾궿귂귃귅귆귇귉귊귋귌귍귎귏귒귔귕귖귗귘귙귚귛귝귞귟귡귢귣귥귦귧귨귩귪귫귬귭귮귯귰귱귲귳귴귵귶귷�\".split(\"\");\nfor(j = 0; j != D[130].length; ++j) if(D[130][j].charCodeAt(0) !== 0xFFFD) { e[D[130][j]] = 33280 + j; d[33280 + j] = D[130][j];}\nD[131] = \"�����������������������������������������������������������������귺귻귽귾긂긃긄긅긆긇긊긌긎긏긐긑긒긓긕긖긗긘긙긚긛긜������긝긞긟긠긡긢긣긤긥긦긧긨긩긪긫긬긭긮긯긲긳긵긶긹긻긼������긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗깘깙깚깛깞깢깣깤깦깧깪깫깭깮깯깱깲깳깴깵깶깷깺깾깿꺀꺁꺂꺃꺆꺇꺈꺉꺊꺋꺍꺎꺏꺐꺑꺒꺓꺔꺕꺖꺗꺘꺙꺚꺛꺜꺝꺞꺟꺠꺡꺢꺣꺤꺥꺦꺧꺨꺩꺪꺫꺬꺭꺮꺯꺰꺱꺲꺳꺴꺵꺶꺷꺸꺹꺺꺻꺿껁껂껃껅껆껇껈껉껊껋껎껒껓껔껕껖껗껚껛껝껞껟껠껡껢껣껤껥�\".split(\"\");\nfor(j = 0; j != D[131].length; ++j) if(D[131][j].charCodeAt(0) !== 0xFFFD) { e[D[131][j]] = 33536 + j; d[33536 + j] = D[131][j];}\nD[132] = \"�����������������������������������������������������������������껦껧껩껪껬껮껯껰껱껲껳껵껶껷껹껺껻껽껾껿꼀꼁꼂꼃꼄꼅������꼆꼉꼊꼋꼌꼎꼏꼑꼒꼓꼔꼕꼖꼗꼘꼙꼚꼛꼜꼝꼞꼟꼠꼡꼢꼣������꼤꼥꼦꼧꼨꼩꼪꼫꼮꼯꼱꼳꼵꼶꼷꼸꼹꼺꼻꼾꽀꽄꽅꽆꽇꽊꽋꽌꽍꽎꽏꽑꽒꽓꽔꽕꽖꽗꽘꽙꽚꽛꽞꽟꽠꽡꽢꽣꽦꽧꽨꽩꽪꽫꽬꽭꽮꽯꽰꽱꽲꽳꽴꽵꽶꽷꽸꽺꽻꽼꽽꽾꽿꾁꾂꾃꾅꾆꾇꾉꾊꾋꾌꾍꾎꾏꾒꾓꾔꾖꾗꾘꾙꾚꾛꾝꾞꾟꾠꾡꾢꾣꾤꾥꾦꾧꾨꾩꾪꾫꾬꾭꾮꾯꾰꾱꾲꾳꾴꾵꾶꾷꾺꾻꾽꾾�\".split(\"\");\nfor(j = 0; j != D[132].length; ++j) if(D[132][j].charCodeAt(0) !== 0xFFFD) { e[D[132][j]] = 33792 + j; d[33792 + j] = D[132][j];}\nD[133] = \"�����������������������������������������������������������������꾿꿁꿂꿃꿄꿅꿆꿊꿌꿏꿐꿑꿒꿓꿕꿖꿗꿘꿙꿚꿛꿝꿞꿟꿠꿡������꿢꿣꿤꿥꿦꿧꿪꿫꿬꿭꿮꿯꿲꿳꿵꿶꿷꿹꿺꿻꿼꿽꿾꿿뀂뀃������뀅뀆뀇뀈뀉뀊뀋뀍뀎뀏뀑뀒뀓뀕뀖뀗뀘뀙뀚뀛뀞뀟뀠뀡뀢뀣뀤뀥뀦뀧뀩뀪뀫뀬뀭뀮뀯뀰뀱뀲뀳뀴뀵뀶뀷뀸뀹뀺뀻뀼뀽뀾뀿끀끁끂끃끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞끟끠끡끢끣끤끥끦끧끨끩끪끫끬끭끮끯끰끱끲끳끴끵끶끷끸끹끺끻끾끿낁낂낃낅낆낇낈낉낊낋낎낐낒낓낔낕낖낗낛낝낞낣낤�\".split(\"\");\nfor(j = 0; j != D[133].length; ++j) if(D[133][j].charCodeAt(0) !== 0xFFFD) { e[D[133][j]] = 34048 + j; d[34048 + j] = D[133][j];}\nD[134] = \"�����������������������������������������������������������������낥낦낧낪낰낲낶낷낹낺낻낽낾낿냀냁냂냃냆냊냋냌냍냎냏냒������냓냕냖냗냙냚냛냜냝냞냟냡냢냣냤냦냧냨냩냪냫냬냭냮냯냰������냱냲냳냴냵냶냷냸냹냺냻냼냽냾냿넀넁넂넃넄넅넆넇넊넍넎넏넑넔넕넖넗넚넞넟넠넡넢넦넧넩넪넫넭넮넯넰넱넲넳넶넺넻넼넽넾넿녂녃녅녆녇녉녊녋녌녍녎녏녒녓녖녗녙녚녛녝녞녟녡녢녣녤녥녦녧녨녩녪녫녬녭녮녯녰녱녲녳녴녵녶녷녺녻녽녾녿놁놃놄놅놆놇놊놌놎놏놐놑놕놖놗놙놚놛놝�\".split(\"\");\nfor(j = 0; j != D[134].length; ++j) if(D[134][j].charCodeAt(0) !== 0xFFFD) { e[D[134][j]] = 34304 + j; d[34304 + j] = D[134][j];}\nD[135] = \"�����������������������������������������������������������������놞놟놠놡놢놣놤놥놦놧놩놪놫놬놭놮놯놰놱놲놳놴놵놶놷놸������놹놺놻놼놽놾놿뇀뇁뇂뇃뇄뇅뇆뇇뇈뇉뇊뇋뇍뇎뇏뇑뇒뇓뇕������뇖뇗뇘뇙뇚뇛뇞뇠뇡뇢뇣뇤뇥뇦뇧뇪뇫뇭뇮뇯뇱뇲뇳뇴뇵뇶뇷뇸뇺뇼뇾뇿눀눁눂눃눆눇눉눊눍눎눏눐눑눒눓눖눘눚눛눜눝눞눟눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눵눶눷눸눹눺눻눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉙뉚뉛뉝뉞뉟뉡뉢뉣뉤뉥뉦뉧뉪뉫뉬뉭뉮�\".split(\"\");\nfor(j = 0; j != D[135].length; ++j) if(D[135][j].charCodeAt(0) !== 0xFFFD) { e[D[135][j]] = 34560 + j; d[34560 + j] = D[135][j];}\nD[136] = \"�����������������������������������������������������������������뉯뉰뉱뉲뉳뉶뉷뉸뉹뉺뉻뉽뉾뉿늀늁늂늃늆늇늈늊늋늌늍늎������늏늒늓늕늖늗늛늜늝늞늟늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷������늸늹늺늻늼늽늾늿닀닁닂닃닄닅닆닇닊닋닍닎닏닑닓닔닕닖닗닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉댊댋댌댍댎댏댒댖댗댘댙댚댛댝댞댟댠댡댢댣댤댥댦댧댨댩댪댫댬댭댮댯댰댱댲댳댴댵댶댷댸댹댺댻댼댽댾댿덀덁덂덃덄덅덆덇덈덉덊덋덌덍덎덏덐덑덒덓덗덙덚덝덠덡덢덣�\".split(\"\");\nfor(j = 0; j != D[136].length; ++j) if(D[136][j].charCodeAt(0) !== 0xFFFD) { e[D[136][j]] = 34816 + j; d[34816 + j] = D[136][j];}\nD[137] = \"�����������������������������������������������������������������덦덨덪덬덭덯덲덳덵덶덷덹덺덻덼덽덾덿뎂뎆뎇뎈뎉뎊뎋뎍������뎎뎏뎑뎒뎓뎕뎖뎗뎘뎙뎚뎛뎜뎝뎞뎟뎢뎣뎤뎥뎦뎧뎩뎪뎫뎭������뎮뎯뎰뎱뎲뎳뎴뎵뎶뎷뎸뎹뎺뎻뎼뎽뎾뎿돀돁돂돃돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩돪돫돬돭돮돯돰돱돲돳돴돵돶돷돸돹돺돻돽돾돿됀됁됂됃됄됅됆됇됈됉됊됋됌됍됎됏됑됒됓됔됕됖됗됙됚됛됝됞됟됡됢됣됤됥됦됧됪됬됭됮됯됰됱됲됳됵됶됷됸됹됺됻됼됽됾됿둀둁둂둃둄�\".split(\"\");\nfor(j = 0; j != D[137].length; ++j) if(D[137][j].charCodeAt(0) !== 0xFFFD) { e[D[137][j]] = 35072 + j; d[35072 + j] = D[137][j];}\nD[138] = \"�����������������������������������������������������������������둅둆둇둈둉둊둋둌둍둎둏둒둓둕둖둗둙둚둛둜둝둞둟둢둤둦������둧둨둩둪둫둭둮둯둰둱둲둳둴둵둶둷둸둹둺둻둼둽둾둿뒁뒂������뒃뒄뒅뒆뒇뒉뒊뒋뒌뒍뒎뒏뒐뒑뒒뒓뒔뒕뒖뒗뒘뒙뒚뒛뒜뒞뒟뒠뒡뒢뒣뒥뒦뒧뒩뒪뒫뒭뒮뒯뒰뒱뒲뒳뒴뒶뒸뒺뒻뒼뒽뒾뒿듁듂듃듅듆듇듉듊듋듌듍듎듏듑듒듓듔듖듗듘듙듚듛듞듟듡듢듥듧듨듩듪듫듮듰듲듳듴듵듶듷듹듺듻듼듽듾듿딀딁딂딃딄딅딆딇딈딉딊딋딌딍딎딏딐딑딒딓딖딗딙딚딝�\".split(\"\");\nfor(j = 0; j != D[138].length; ++j) if(D[138][j].charCodeAt(0) !== 0xFFFD) { e[D[138][j]] = 35328 + j; d[35328 + j] = D[138][j];}\nD[139] = \"�����������������������������������������������������������������딞딟딠딡딢딣딦딫딬딭딮딯딲딳딵딶딷딹딺딻딼딽딾딿땂땆������땇땈땉땊땎땏땑땒땓땕땖땗땘땙땚땛땞땢땣땤땥땦땧땨땩땪������땫땬땭땮땯땰땱땲땳땴땵땶땷땸땹땺땻땼땽땾땿떀떁떂떃떄떅떆떇떈떉떊떋떌떍떎떏떐떑떒떓떔떕떖떗떘떙떚떛떜떝떞떟떢떣떥떦떧떩떬떭떮떯떲떶떷떸떹떺떾떿뗁뗂뗃뗅뗆뗇뗈뗉뗊뗋뗎뗒뗓뗔뗕뗖뗗뗙뗚뗛뗜뗝뗞뗟뗠뗡뗢뗣뗤뗥뗦뗧뗨뗩뗪뗫뗭뗮뗯뗰뗱뗲뗳뗴뗵뗶뗷뗸뗹뗺뗻뗼뗽뗾뗿�\".split(\"\");\nfor(j = 0; j != D[139].length; ++j) if(D[139][j].charCodeAt(0) !== 0xFFFD) { e[D[139][j]] = 35584 + j; d[35584 + j] = D[139][j];}\nD[140] = \"�����������������������������������������������������������������똀똁똂똃똄똅똆똇똈똉똊똋똌똍똎똏똒똓똕똖똗똙똚똛똜똝������똞똟똠똡똢똣똤똦똧똨똩똪똫똭똮똯똰똱똲똳똵똶똷똸똹똺������똻똼똽똾똿뙀뙁뙂뙃뙄뙅뙆뙇뙉뙊뙋뙌뙍뙎뙏뙐뙑뙒뙓뙔뙕뙖뙗뙘뙙뙚뙛뙜뙝뙞뙟뙠뙡뙢뙣뙥뙦뙧뙩뙪뙫뙬뙭뙮뙯뙰뙱뙲뙳뙴뙵뙶뙷뙸뙹뙺뙻뙼뙽뙾뙿뚀뚁뚂뚃뚄뚅뚆뚇뚈뚉뚊뚋뚌뚍뚎뚏뚐뚑뚒뚓뚔뚕뚖뚗뚘뚙뚚뚛뚞뚟뚡뚢뚣뚥뚦뚧뚨뚩뚪뚭뚮뚯뚰뚲뚳뚴뚵뚶뚷뚸뚹뚺뚻뚼뚽뚾뚿뛀뛁뛂�\".split(\"\");\nfor(j = 0; j != D[140].length; ++j) if(D[140][j].charCodeAt(0) !== 0xFFFD) { e[D[140][j]] = 35840 + j; d[35840 + j] = D[140][j];}\nD[141] = \"�����������������������������������������������������������������뛃뛄뛅뛆뛇뛈뛉뛊뛋뛌뛍뛎뛏뛐뛑뛒뛓뛕뛖뛗뛘뛙뛚뛛뛜뛝������뛞뛟뛠뛡뛢뛣뛤뛥뛦뛧뛨뛩뛪뛫뛬뛭뛮뛯뛱뛲뛳뛵뛶뛷뛹뛺������뛻뛼뛽뛾뛿뜂뜃뜄뜆뜇뜈뜉뜊뜋뜌뜍뜎뜏뜐뜑뜒뜓뜔뜕뜖뜗뜘뜙뜚뜛뜜뜝뜞뜟뜠뜡뜢뜣뜤뜥뜦뜧뜪뜫뜭뜮뜱뜲뜳뜴뜵뜶뜷뜺뜼뜽뜾뜿띀띁띂띃띅띆띇띉띊띋띍띎띏띐띑띒띓띖띗띘띙띚띛띜띝띞띟띡띢띣띥띦띧띩띪띫띬띭띮띯띲띴띶띷띸띹띺띻띾띿랁랂랃랅랆랇랈랉랊랋랎랓랔랕랚랛랝랞�\".split(\"\");\nfor(j = 0; j != D[141].length; ++j) if(D[141][j].charCodeAt(0) !== 0xFFFD) { e[D[141][j]] = 36096 + j; d[36096 + j] = D[141][j];}\nD[142] = \"�����������������������������������������������������������������랟랡랢랣랤랥랦랧랪랮랯랰랱랲랳랶랷랹랺랻랼랽랾랿럀럁������럂럃럄럅럆럈럊럋럌럍럎럏럐럑럒럓럔럕럖럗럘럙럚럛럜럝������럞럟럠럡럢럣럤럥럦럧럨럩럪럫럮럯럱럲럳럵럶럷럸럹럺럻럾렂렃렄렅렆렊렋렍렎렏렑렒렓렔렕렖렗렚렜렞렟렠렡렢렣렦렧렩렪렫렭렮렯렰렱렲렳렶렺렻렼렽렾렿롁롂롃롅롆롇롈롉롊롋롌롍롎롏롐롒롔롕롖롗롘롙롚롛롞롟롡롢롣롥롦롧롨롩롪롫롮롰롲롳롴롵롶롷롹롺롻롽롾롿뢀뢁뢂뢃뢄�\".split(\"\");\nfor(j = 0; j != D[142].length; ++j) if(D[142][j].charCodeAt(0) !== 0xFFFD) { e[D[142][j]] = 36352 + j; d[36352 + j] = D[142][j];}\nD[143] = \"�����������������������������������������������������������������뢅뢆뢇뢈뢉뢊뢋뢌뢎뢏뢐뢑뢒뢓뢔뢕뢖뢗뢘뢙뢚뢛뢜뢝뢞뢟������뢠뢡뢢뢣뢤뢥뢦뢧뢩뢪뢫뢬뢭뢮뢯뢱뢲뢳뢵뢶뢷뢹뢺뢻뢼뢽������뢾뢿룂룄룆룇룈룉룊룋룍룎룏룑룒룓룕룖룗룘룙룚룛룜룞룠룢룣룤룥룦룧룪룫룭룮룯룱룲룳룴룵룶룷룺룼룾룿뤀뤁뤂뤃뤅뤆뤇뤈뤉뤊뤋뤌뤍뤎뤏뤐뤑뤒뤓뤔뤕뤖뤗뤙뤚뤛뤜뤝뤞뤟뤡뤢뤣뤤뤥뤦뤧뤨뤩뤪뤫뤬뤭뤮뤯뤰뤱뤲뤳뤴뤵뤶뤷뤸뤹뤺뤻뤾뤿륁륂륃륅륆륇륈륉륊륋륍륎륐륒륓륔륕륖륗�\".split(\"\");\nfor(j = 0; j != D[143].length; ++j) if(D[143][j].charCodeAt(0) !== 0xFFFD) { e[D[143][j]] = 36608 + j; d[36608 + j] = D[143][j];}\nD[144] = \"�����������������������������������������������������������������륚륛륝륞륟륡륢륣륤륥륦륧륪륬륮륯륰륱륲륳륶륷륹륺륻륽������륾륿릀릁릂릃릆릈릋릌릏릐릑릒릓릔릕릖릗릘릙릚릛릜릝릞������릟릠릡릢릣릤릥릦릧릨릩릪릫릮릯릱릲릳릵릶릷릸릹릺릻릾맀맂맃맄맅맆맇맊맋맍맓맔맕맖맗맚맜맟맠맢맦맧맩맪맫맭맮맯맰맱맲맳맶맻맼맽맾맿먂먃먄먅먆먇먉먊먋먌먍먎먏먐먑먒먓먔먖먗먘먙먚먛먜먝먞먟먠먡먢먣먤먥먦먧먨먩먪먫먬먭먮먯먰먱먲먳먴먵먶먷먺먻먽먾먿멁멃멄멅멆�\".split(\"\");\nfor(j = 0; j != D[144].length; ++j) if(D[144][j].charCodeAt(0) !== 0xFFFD) { e[D[144][j]] = 36864 + j; d[36864 + j] = D[144][j];}\nD[145] = \"�����������������������������������������������������������������멇멊멌멏멐멑멒멖멗멙멚멛멝멞멟멠멡멢멣멦멪멫멬멭멮멯������멲멳멵멶멷멹멺멻멼멽멾멿몀몁몂몆몈몉몊몋몍몎몏몐몑몒������몓몔몕몖몗몘몙몚몛몜몝몞몟몠몡몢몣몤몥몦몧몪몭몮몯몱몳몴몵몶몷몺몼몾몿뫀뫁뫂뫃뫅뫆뫇뫉뫊뫋뫌뫍뫎뫏뫐뫑뫒뫓뫔뫕뫖뫗뫚뫛뫜뫝뫞뫟뫠뫡뫢뫣뫤뫥뫦뫧뫨뫩뫪뫫뫬뫭뫮뫯뫰뫱뫲뫳뫴뫵뫶뫷뫸뫹뫺뫻뫽뫾뫿묁묂묃묅묆묇묈묉묊묋묌묎묐묒묓묔묕묖묗묙묚묛묝묞묟묡묢묣묤묥묦묧�\".split(\"\");\nfor(j = 0; j != D[145].length; ++j) if(D[145][j].charCodeAt(0) !== 0xFFFD) { e[D[145][j]] = 37120 + j; d[37120 + j] = D[145][j];}\nD[146] = \"�����������������������������������������������������������������묨묪묬묭묮묯묰묱묲묳묷묹묺묿뭀뭁뭂뭃뭆뭈뭊뭋뭌뭎뭑뭒������뭓뭕뭖뭗뭙뭚뭛뭜뭝뭞뭟뭠뭢뭤뭥뭦뭧뭨뭩뭪뭫뭭뭮뭯뭰뭱������뭲뭳뭴뭵뭶뭷뭸뭹뭺뭻뭼뭽뭾뭿뮀뮁뮂뮃뮄뮅뮆뮇뮉뮊뮋뮍뮎뮏뮑뮒뮓뮔뮕뮖뮗뮘뮙뮚뮛뮜뮝뮞뮟뮠뮡뮢뮣뮥뮦뮧뮩뮪뮫뮭뮮뮯뮰뮱뮲뮳뮵뮶뮸뮹뮺뮻뮼뮽뮾뮿믁믂믃믅믆믇믉믊믋믌믍믎믏믑믒믔믕믖믗믘믙믚믛믜믝믞믟믠믡믢믣믤믥믦믧믨믩믪믫믬믭믮믯믰믱믲믳믴믵믶믷믺믻믽믾밁�\".split(\"\");\nfor(j = 0; j != D[146].length; ++j) if(D[146][j].charCodeAt(0) !== 0xFFFD) { e[D[146][j]] = 37376 + j; d[37376 + j] = D[146][j];}\nD[147] = \"�����������������������������������������������������������������밃밄밅밆밇밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵������밶밷밹밺밻밼밽밾밿뱂뱆뱇뱈뱊뱋뱎뱏뱑뱒뱓뱔뱕뱖뱗뱘뱙������뱚뱛뱜뱞뱟뱠뱡뱢뱣뱤뱥뱦뱧뱨뱩뱪뱫뱬뱭뱮뱯뱰뱱뱲뱳뱴뱵뱶뱷뱸뱹뱺뱻뱼뱽뱾뱿벀벁벂벃벆벇벉벊벍벏벐벑벒벓벖벘벛벜벝벞벟벢벣벥벦벩벪벫벬벭벮벯벲벶벷벸벹벺벻벾벿볁볂볃볅볆볇볈볉볊볋볌볎볒볓볔볖볗볙볚볛볝볞볟볠볡볢볣볤볥볦볧볨볩볪볫볬볭볮볯볰볱볲볳볷볹볺볻볽�\".split(\"\");\nfor(j = 0; j != D[147].length; ++j) if(D[147][j].charCodeAt(0) !== 0xFFFD) { e[D[147][j]] = 37632 + j; d[37632 + j] = D[147][j];}\nD[148] = \"�����������������������������������������������������������������볾볿봀봁봂봃봆봈봊봋봌봍봎봏봑봒봓봕봖봗봘봙봚봛봜봝������봞봟봠봡봢봣봥봦봧봨봩봪봫봭봮봯봰봱봲봳봴봵봶봷봸봹������봺봻봼봽봾봿뵁뵂뵃뵄뵅뵆뵇뵊뵋뵍뵎뵏뵑뵒뵓뵔뵕뵖뵗뵚뵛뵜뵝뵞뵟뵠뵡뵢뵣뵥뵦뵧뵩뵪뵫뵬뵭뵮뵯뵰뵱뵲뵳뵴뵵뵶뵷뵸뵹뵺뵻뵼뵽뵾뵿붂붃붅붆붋붌붍붎붏붒붔붖붗붘붛붝붞붟붠붡붢붣붥붦붧붨붩붪붫붬붭붮붯붱붲붳붴붵붶붷붹붺붻붼붽붾붿뷀뷁뷂뷃뷄뷅뷆뷇뷈뷉뷊뷋뷌뷍뷎뷏뷐뷑�\".split(\"\");\nfor(j = 0; j != D[148].length; ++j) if(D[148][j].charCodeAt(0) !== 0xFFFD) { e[D[148][j]] = 37888 + j; d[37888 + j] = D[148][j];}\nD[149] = \"�����������������������������������������������������������������뷒뷓뷖뷗뷙뷚뷛뷝뷞뷟뷠뷡뷢뷣뷤뷥뷦뷧뷨뷪뷫뷬뷭뷮뷯뷱������뷲뷳뷵뷶뷷뷹뷺뷻뷼뷽뷾뷿븁븂븄븆븇븈븉븊븋븎븏븑븒븓������븕븖븗븘븙븚븛븞븠븡븢븣븤븥븦븧븨븩븪븫븬븭븮븯븰븱븲븳븴븵븶븷븸븹븺븻븼븽븾븿빀빁빂빃빆빇빉빊빋빍빏빐빑빒빓빖빘빜빝빞빟빢빣빥빦빧빩빫빬빭빮빯빲빶빷빸빹빺빾빿뺁뺂뺃뺅뺆뺇뺈뺉뺊뺋뺎뺒뺓뺔뺕뺖뺗뺚뺛뺜뺝뺞뺟뺠뺡뺢뺣뺤뺥뺦뺧뺩뺪뺫뺬뺭뺮뺯뺰뺱뺲뺳뺴뺵뺶뺷�\".split(\"\");\nfor(j = 0; j != D[149].length; ++j) if(D[149][j].charCodeAt(0) !== 0xFFFD) { e[D[149][j]] = 38144 + j; d[38144 + j] = D[149][j];}\nD[150] = \"�����������������������������������������������������������������뺸뺹뺺뺻뺼뺽뺾뺿뻀뻁뻂뻃뻄뻅뻆뻇뻈뻉뻊뻋뻌뻍뻎뻏뻒뻓������뻕뻖뻙뻚뻛뻜뻝뻞뻟뻡뻢뻦뻧뻨뻩뻪뻫뻭뻮뻯뻰뻱뻲뻳뻴뻵������뻶뻷뻸뻹뻺뻻뻼뻽뻾뻿뼀뼂뼃뼄뼅뼆뼇뼊뼋뼌뼍뼎뼏뼐뼑뼒뼓뼔뼕뼖뼗뼚뼞뼟뼠뼡뼢뼣뼤뼥뼦뼧뼨뼩뼪뼫뼬뼭뼮뼯뼰뼱뼲뼳뼴뼵뼶뼷뼸뼹뼺뼻뼼뼽뼾뼿뽂뽃뽅뽆뽇뽉뽊뽋뽌뽍뽎뽏뽒뽓뽔뽖뽗뽘뽙뽚뽛뽜뽝뽞뽟뽠뽡뽢뽣뽤뽥뽦뽧뽨뽩뽪뽫뽬뽭뽮뽯뽰뽱뽲뽳뽴뽵뽶뽷뽸뽹뽺뽻뽼뽽뽾뽿뾀뾁뾂�\".split(\"\");\nfor(j = 0; j != D[150].length; ++j) if(D[150][j].charCodeAt(0) !== 0xFFFD) { e[D[150][j]] = 38400 + j; d[38400 + j] = D[150][j];}\nD[151] = \"�����������������������������������������������������������������뾃뾄뾅뾆뾇뾈뾉뾊뾋뾌뾍뾎뾏뾐뾑뾒뾓뾕뾖뾗뾘뾙뾚뾛뾜뾝������뾞뾟뾠뾡뾢뾣뾤뾥뾦뾧뾨뾩뾪뾫뾬뾭뾮뾯뾱뾲뾳뾴뾵뾶뾷뾸������뾹뾺뾻뾼뾽뾾뾿뿀뿁뿂뿃뿄뿆뿇뿈뿉뿊뿋뿎뿏뿑뿒뿓뿕뿖뿗뿘뿙뿚뿛뿝뿞뿠뿢뿣뿤뿥뿦뿧뿨뿩뿪뿫뿬뿭뿮뿯뿰뿱뿲뿳뿴뿵뿶뿷뿸뿹뿺뿻뿼뿽뿾뿿쀀쀁쀂쀃쀄쀅쀆쀇쀈쀉쀊쀋쀌쀍쀎쀏쀐쀑쀒쀓쀔쀕쀖쀗쀘쀙쀚쀛쀜쀝쀞쀟쀠쀡쀢쀣쀤쀥쀦쀧쀨쀩쀪쀫쀬쀭쀮쀯쀰쀱쀲쀳쀴쀵쀶쀷쀸쀹쀺쀻쀽쀾쀿�\".split(\"\");\nfor(j = 0; j != D[151].length; ++j) if(D[151][j].charCodeAt(0) !== 0xFFFD) { e[D[151][j]] = 38656 + j; d[38656 + j] = D[151][j];}\nD[152] = \"�����������������������������������������������������������������쁀쁁쁂쁃쁄쁅쁆쁇쁈쁉쁊쁋쁌쁍쁎쁏쁐쁒쁓쁔쁕쁖쁗쁙쁚쁛������쁝쁞쁟쁡쁢쁣쁤쁥쁦쁧쁪쁫쁬쁭쁮쁯쁰쁱쁲쁳쁴쁵쁶쁷쁸쁹������쁺쁻쁼쁽쁾쁿삀삁삂삃삄삅삆삇삈삉삊삋삌삍삎삏삒삓삕삖삗삙삚삛삜삝삞삟삢삤삦삧삨삩삪삫삮삱삲삷삸삹삺삻삾샂샃샄샆샇샊샋샍샎샏샑샒샓샔샕샖샗샚샞샟샠샡샢샣샦샧샩샪샫샭샮샯샰샱샲샳샶샸샺샻샼샽샾샿섁섂섃섅섆섇섉섊섋섌섍섎섏섑섒섓섔섖섗섘섙섚섛섡섢섥섨섩섪섫섮�\".split(\"\");\nfor(j = 0; j != D[152].length; ++j) if(D[152][j].charCodeAt(0) !== 0xFFFD) { e[D[152][j]] = 38912 + j; d[38912 + j] = D[152][j];}\nD[153] = \"�����������������������������������������������������������������섲섳섴섵섷섺섻섽섾섿셁셂셃셄셅셆셇셊셎셏셐셑셒셓셖셗������셙셚셛셝셞셟셠셡셢셣셦셪셫셬셭셮셯셱셲셳셵셶셷셹셺셻������셼셽셾셿솀솁솂솃솄솆솇솈솉솊솋솏솑솒솓솕솗솘솙솚솛솞솠솢솣솤솦솧솪솫솭솮솯솱솲솳솴솵솶솷솸솹솺솻솼솾솿쇀쇁쇂쇃쇅쇆쇇쇉쇊쇋쇍쇎쇏쇐쇑쇒쇓쇕쇖쇙쇚쇛쇜쇝쇞쇟쇡쇢쇣쇥쇦쇧쇩쇪쇫쇬쇭쇮쇯쇲쇴쇵쇶쇷쇸쇹쇺쇻쇾쇿숁숂숃숅숆숇숈숉숊숋숎숐숒숓숔숕숖숗숚숛숝숞숡숢숣�\".split(\"\");\nfor(j = 0; j != D[153].length; ++j) if(D[153][j].charCodeAt(0) !== 0xFFFD) { e[D[153][j]] = 39168 + j; d[39168 + j] = D[153][j];}\nD[154] = \"�����������������������������������������������������������������숤숥숦숧숪숬숮숰숳숵숶숷숸숹숺숻숼숽숾숿쉀쉁쉂쉃쉄쉅������쉆쉇쉉쉊쉋쉌쉍쉎쉏쉒쉓쉕쉖쉗쉙쉚쉛쉜쉝쉞쉟쉡쉢쉣쉤쉦������쉧쉨쉩쉪쉫쉮쉯쉱쉲쉳쉵쉶쉷쉸쉹쉺쉻쉾슀슂슃슄슅슆슇슊슋슌슍슎슏슑슒슓슔슕슖슗슙슚슜슞슟슠슡슢슣슦슧슩슪슫슮슯슰슱슲슳슶슸슺슻슼슽슾슿싀싁싂싃싄싅싆싇싈싉싊싋싌싍싎싏싐싑싒싓싔싕싖싗싘싙싚싛싞싟싡싢싥싦싧싨싩싪싮싰싲싳싴싵싷싺싽싾싿쌁쌂쌃쌄쌅쌆쌇쌊쌋쌎쌏�\".split(\"\");\nfor(j = 0; j != D[154].length; ++j) if(D[154][j].charCodeAt(0) !== 0xFFFD) { e[D[154][j]] = 39424 + j; d[39424 + j] = D[154][j];}\nD[155] = \"�����������������������������������������������������������������쌐쌑쌒쌖쌗쌙쌚쌛쌝쌞쌟쌠쌡쌢쌣쌦쌧쌪쌫쌬쌭쌮쌯쌰쌱쌲������쌳쌴쌵쌶쌷쌸쌹쌺쌻쌼쌽쌾쌿썀썁썂썃썄썆썇썈썉썊썋썌썍������썎썏썐썑썒썓썔썕썖썗썘썙썚썛썜썝썞썟썠썡썢썣썤썥썦썧썪썫썭썮썯썱썳썴썵썶썷썺썻썾썿쎀쎁쎂쎃쎅쎆쎇쎉쎊쎋쎍쎎쎏쎐쎑쎒쎓쎔쎕쎖쎗쎘쎙쎚쎛쎜쎝쎞쎟쎠쎡쎢쎣쎤쎥쎦쎧쎨쎩쎪쎫쎬쎭쎮쎯쎰쎱쎲쎳쎴쎵쎶쎷쎸쎹쎺쎻쎼쎽쎾쎿쏁쏂쏃쏄쏅쏆쏇쏈쏉쏊쏋쏌쏍쏎쏏쏐쏑쏒쏓쏔쏕쏖쏗쏚�\".split(\"\");\nfor(j = 0; j != D[155].length; ++j) if(D[155][j].charCodeAt(0) !== 0xFFFD) { e[D[155][j]] = 39680 + j; d[39680 + j] = D[155][j];}\nD[156] = \"�����������������������������������������������������������������쏛쏝쏞쏡쏣쏤쏥쏦쏧쏪쏫쏬쏮쏯쏰쏱쏲쏳쏶쏷쏹쏺쏻쏼쏽쏾������쏿쐀쐁쐂쐃쐄쐅쐆쐇쐉쐊쐋쐌쐍쐎쐏쐑쐒쐓쐔쐕쐖쐗쐘쐙쐚������쐛쐜쐝쐞쐟쐠쐡쐢쐣쐥쐦쐧쐨쐩쐪쐫쐭쐮쐯쐱쐲쐳쐵쐶쐷쐸쐹쐺쐻쐾쐿쑀쑁쑂쑃쑄쑅쑆쑇쑉쑊쑋쑌쑍쑎쑏쑐쑑쑒쑓쑔쑕쑖쑗쑘쑙쑚쑛쑜쑝쑞쑟쑠쑡쑢쑣쑦쑧쑩쑪쑫쑭쑮쑯쑰쑱쑲쑳쑶쑷쑸쑺쑻쑼쑽쑾쑿쒁쒂쒃쒄쒅쒆쒇쒈쒉쒊쒋쒌쒍쒎쒏쒐쒑쒒쒓쒕쒖쒗쒘쒙쒚쒛쒝쒞쒟쒠쒡쒢쒣쒤쒥쒦쒧쒨쒩�\".split(\"\");\nfor(j = 0; j != D[156].length; ++j) if(D[156][j].charCodeAt(0) !== 0xFFFD) { e[D[156][j]] = 39936 + j; d[39936 + j] = D[156][j];}\nD[157] = \"�����������������������������������������������������������������쒪쒫쒬쒭쒮쒯쒰쒱쒲쒳쒴쒵쒶쒷쒹쒺쒻쒽쒾쒿쓀쓁쓂쓃쓄쓅������쓆쓇쓈쓉쓊쓋쓌쓍쓎쓏쓐쓑쓒쓓쓔쓕쓖쓗쓘쓙쓚쓛쓜쓝쓞쓟������쓠쓡쓢쓣쓤쓥쓦쓧쓨쓪쓫쓬쓭쓮쓯쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂씃씄씅씆씇씈씉씊씋씍씎씏씑씒씓씕씖씗씘씙씚씛씝씞씟씠씡씢씣씤씥씦씧씪씫씭씮씯씱씲씳씴씵씶씷씺씼씾씿앀앁앂앃앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩앪앫앬앭앮앯앲앶앷앸앹앺앻앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔�\".split(\"\");\nfor(j = 0; j != D[157].length; ++j) if(D[157][j].charCodeAt(0) !== 0xFFFD) { e[D[157][j]] = 40192 + j; d[40192 + j] = D[157][j];}\nD[158] = \"�����������������������������������������������������������������얖얙얚얛얝얞얟얡얢얣얤얥얦얧얨얪얫얬얭얮얯얰얱얲얳얶������얷얺얿엀엁엂엃엋엍엏엒엓엕엖엗엙엚엛엜엝엞엟엢엤엦엧������엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑옒옓옔옕옖옗옚옝옞옟옠옡옢옣옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉왊왋왌왍왎왏왒왖왗왘왙왚왛왞왟왡왢왣왤왥왦왧왨왩왪왫왭왮왰왲왳왴왵왶왷왺왻왽왾왿욁욂욃욄욅욆욇욊욌욎욏욐욑욒욓욖욗욙욚욛욝욞욟욠욡욢욣욦�\".split(\"\");\nfor(j = 0; j != D[158].length; ++j) if(D[158][j].charCodeAt(0) !== 0xFFFD) { e[D[158][j]] = 40448 + j; d[40448 + j] = D[158][j];}\nD[159] = \"�����������������������������������������������������������������욨욪욫욬욭욮욯욲욳욵욶욷욻욼욽욾욿웂웄웆웇웈웉웊웋웎������웏웑웒웓웕웖웗웘웙웚웛웞웟웢웣웤웥웦웧웪웫웭웮웯웱웲������웳웴웵웶웷웺웻웼웾웿윀윁윂윃윆윇윉윊윋윍윎윏윐윑윒윓윖윘윚윛윜윝윞윟윢윣윥윦윧윩윪윫윬윭윮윯윲윴윶윸윹윺윻윾윿읁읂읃읅읆읇읈읉읋읎읐읙읚읛읝읞읟읡읢읣읤읥읦읧읩읪읬읭읮읯읰읱읲읳읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛잜잝잞잟잢잧잨잩잪잫잮잯잱잲잳잵잶잷�\".split(\"\");\nfor(j = 0; j != D[159].length; ++j) if(D[159][j].charCodeAt(0) !== 0xFFFD) { e[D[159][j]] = 40704 + j; d[40704 + j] = D[159][j];}\nD[160] = \"�����������������������������������������������������������������잸잹잺잻잾쟂쟃쟄쟅쟆쟇쟊쟋쟍쟏쟑쟒쟓쟔쟕쟖쟗쟙쟚쟛쟜������쟞쟟쟠쟡쟢쟣쟥쟦쟧쟩쟪쟫쟭쟮쟯쟰쟱쟲쟳쟴쟵쟶쟷쟸쟹쟺������쟻쟼쟽쟾쟿젂젃젅젆젇젉젋젌젍젎젏젒젔젗젘젙젚젛젞젟젡젢젣젥젦젧젨젩젪젫젮젰젲젳젴젵젶젷젹젺젻젽젾젿졁졂졃졄졅졆졇졊졋졎졏졐졑졒졓졕졖졗졘졙졚졛졜졝졞졟졠졡졢졣졤졥졦졧졨졩졪졫졬졭졮졯졲졳졵졶졷졹졻졼졽졾졿좂좄좈좉좊좎좏좐좑좒좓좕좖좗좘좙좚좛좜좞좠좢좣좤�\".split(\"\");\nfor(j = 0; j != D[160].length; ++j) if(D[160][j].charCodeAt(0) !== 0xFFFD) { e[D[160][j]] = 40960 + j; d[40960 + j] = D[160][j];}\nD[161] = \"�����������������������������������������������������������������좥좦좧좩좪좫좬좭좮좯좰좱좲좳좴좵좶좷좸좹좺좻좾좿죀죁������죂죃죅죆죇죉죊죋죍죎죏죐죑죒죓죖죘죚죛죜죝죞죟죢죣죥������죦죧죨죩죪죫죬죭죮죯죰죱죲죳죴죶죷죸죹죺죻죾죿줁줂줃줇줈줉줊줋줎　、。·‥…¨〃­―∥＼∼‘’“”〔〕〈〉《》「」『』【】±×÷≠≤≥∞∴°′″℃Å￠￡￥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨￢�\".split(\"\");\nfor(j = 0; j != D[161].length; ++j) if(D[161][j].charCodeAt(0) !== 0xFFFD) { e[D[161][j]] = 41216 + j; d[41216 + j] = D[161][j];}\nD[162] = \"�����������������������������������������������������������������줐줒줓줔줕줖줗줙줚줛줜줝줞줟줠줡줢줣줤줥줦줧줨줩줪줫������줭줮줯줰줱줲줳줵줶줷줸줹줺줻줼줽줾줿쥀쥁쥂쥃쥄쥅쥆쥇������쥈쥉쥊쥋쥌쥍쥎쥏쥒쥓쥕쥖쥗쥙쥚쥛쥜쥝쥞쥟쥢쥤쥥쥦쥧쥨쥩쥪쥫쥭쥮쥯⇒⇔∀∃´～ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®������������������������\".split(\"\");\nfor(j = 0; j != D[162].length; ++j) if(D[162][j].charCodeAt(0) !== 0xFFFD) { e[D[162][j]] = 41472 + j; d[41472 + j] = D[162][j];}\nD[163] = \"�����������������������������������������������������������������쥱쥲쥳쥵쥶쥷쥸쥹쥺쥻쥽쥾쥿즀즁즂즃즄즅즆즇즊즋즍즎즏������즑즒즓즔즕즖즗즚즜즞즟즠즡즢즣즤즥즦즧즨즩즪즫즬즭즮������즯즰즱즲즳즴즵즶즷즸즹즺즻즼즽즾즿짂짃짅짆짉짋짌짍짎짏짒짔짗짘짛！＂＃＄％＆＇（）＊＋，－．／０１２３４５６７８９：；＜＝＞？＠ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵＶＷＸＹＺ［￦］＾＿｀ａｂｃｄｅｆｇｈｉｊｋｌｍｎｏｐｑｒｓｔｕｖｗｘｙｚ｛｜｝￣�\".split(\"\");\nfor(j = 0; j != D[163].length; ++j) if(D[163][j].charCodeAt(0) !== 0xFFFD) { e[D[163][j]] = 41728 + j; d[41728 + j] = D[163][j];}\nD[164] = \"�����������������������������������������������������������������짞짟짡짣짥짦짨짩짪짫짮짲짳짴짵짶짷짺짻짽짾짿쨁쨂쨃쨄������쨅쨆쨇쨊쨎쨏쨐쨑쨒쨓쨕쨖쨗쨙쨚쨛쨜쨝쨞쨟쨠쨡쨢쨣쨤쨥������쨦쨧쨨쨪쨫쨬쨭쨮쨯쨰쨱쨲쨳쨴쨵쨶쨷쨸쨹쨺쨻쨼쨽쨾쨿쩀쩁쩂쩃쩄쩅쩆ㄱㄲㄳㄴㄵㄶㄷㄸㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅃㅄㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣㅤㅥㅦㅧㅨㅩㅪㅫㅬㅭㅮㅯㅰㅱㅲㅳㅴㅵㅶㅷㅸㅹㅺㅻㅼㅽㅾㅿㆀㆁㆂㆃㆄㆅㆆㆇㆈㆉㆊㆋㆌㆍㆎ�\".split(\"\");\nfor(j = 0; j != D[164].length; ++j) if(D[164][j].charCodeAt(0) !== 0xFFFD) { e[D[164][j]] = 41984 + j; d[41984 + j] = D[164][j];}\nD[165] = \"�����������������������������������������������������������������쩇쩈쩉쩊쩋쩎쩏쩑쩒쩓쩕쩖쩗쩘쩙쩚쩛쩞쩢쩣쩤쩥쩦쩧쩩쩪������쩫쩬쩭쩮쩯쩰쩱쩲쩳쩴쩵쩶쩷쩸쩹쩺쩻쩼쩾쩿쪀쪁쪂쪃쪅쪆������쪇쪈쪉쪊쪋쪌쪍쪎쪏쪐쪑쪒쪓쪔쪕쪖쪗쪙쪚쪛쪜쪝쪞쪟쪠쪡쪢쪣쪤쪥쪦쪧ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ�����ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������\".split(\"\");\nfor(j = 0; j != D[165].length; ++j) if(D[165][j].charCodeAt(0) !== 0xFFFD) { e[D[165][j]] = 42240 + j; d[42240 + j] = D[165][j];}\nD[166] = \"�����������������������������������������������������������������쪨쪩쪪쪫쪬쪭쪮쪯쪰쪱쪲쪳쪴쪵쪶쪷쪸쪹쪺쪻쪾쪿쫁쫂쫃쫅������쫆쫇쫈쫉쫊쫋쫎쫐쫒쫔쫕쫖쫗쫚쫛쫜쫝쫞쫟쫡쫢쫣쫤쫥쫦쫧������쫨쫩쫪쫫쫭쫮쫯쫰쫱쫲쫳쫵쫶쫷쫸쫹쫺쫻쫼쫽쫾쫿쬀쬁쬂쬃쬄쬅쬆쬇쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃╄╅╆╇╈╉╊���������������������������\".split(\"\");\nfor(j = 0; j != D[166].length; ++j) if(D[166][j].charCodeAt(0) !== 0xFFFD) { e[D[166][j]] = 42496 + j; d[42496 + j] = D[166][j];}\nD[167] = \"�����������������������������������������������������������������쬋쬌쬍쬎쬏쬑쬒쬓쬕쬖쬗쬙쬚쬛쬜쬝쬞쬟쬢쬣쬤쬥쬦쬧쬨쬩������쬪쬫쬬쬭쬮쬯쬰쬱쬲쬳쬴쬵쬶쬷쬸쬹쬺쬻쬼쬽쬾쬿쭀쭂쭃쭄������쭅쭆쭇쭊쭋쭍쭎쭏쭑쭒쭓쭔쭕쭖쭗쭚쭛쭜쭞쭟쭠쭡쭢쭣쭥쭦쭧쭨쭩쭪쭫쭬㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙㎚㎛㎜㎝㎞㎟㎠㎡㎢㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰㎱㎲㎳㎴㎵㎶㎷㎸㎹㎀㎁㎂㎃㎄㎺㎻㎼㎽㎾㎿㎐㎑㎒㎓㎔Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆����������������\".split(\"\");\nfor(j = 0; j != D[167].length; ++j) if(D[167][j].charCodeAt(0) !== 0xFFFD) { e[D[167][j]] = 42752 + j; d[42752 + j] = D[167][j];}\nD[168] = \"�����������������������������������������������������������������쭭쭮쭯쭰쭱쭲쭳쭴쭵쭶쭷쭺쭻쭼쭽쭾쭿쮀쮁쮂쮃쮄쮅쮆쮇쮈������쮉쮊쮋쮌쮍쮎쮏쮐쮑쮒쮓쮔쮕쮖쮗쮘쮙쮚쮛쮝쮞쮟쮠쮡쮢쮣������쮤쮥쮦쮧쮨쮩쮪쮫쮬쮭쮮쮯쮰쮱쮲쮳쮴쮵쮶쮷쮹쮺쮻쮼쮽쮾쮿쯀쯁쯂쯃쯄ÆÐªĦ�Ĳ�ĿŁØŒºÞŦŊ�㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮½⅓⅔¼¾⅛⅜⅝⅞�\".split(\"\");\nfor(j = 0; j != D[168].length; ++j) if(D[168][j].charCodeAt(0) !== 0xFFFD) { e[D[168][j]] = 43008 + j; d[43008 + j] = D[168][j];}\nD[169] = \"�����������������������������������������������������������������쯅쯆쯇쯈쯉쯊쯋쯌쯍쯎쯏쯐쯑쯒쯓쯕쯖쯗쯘쯙쯚쯛쯜쯝쯞쯟������쯠쯡쯢쯣쯥쯦쯨쯪쯫쯬쯭쯮쯯쯰쯱쯲쯳쯴쯵쯶쯷쯸쯹쯺쯻쯼������쯽쯾쯿찀찁찂찃찄찅찆찇찈찉찊찋찎찏찑찒찓찕찖찗찘찙찚찛찞찟찠찣찤æđðħıĳĸŀłøœßþŧŋŉ㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂¹²³⁴ⁿ₁₂₃₄�\".split(\"\");\nfor(j = 0; j != D[169].length; ++j) if(D[169][j].charCodeAt(0) !== 0xFFFD) { e[D[169][j]] = 43264 + j; d[43264 + j] = D[169][j];}\nD[170] = \"�����������������������������������������������������������������찥찦찪찫찭찯찱찲찳찴찵찶찷찺찿챀챁챂챃챆챇챉챊챋챍챎������챏챐챑챒챓챖챚챛챜챝챞챟챡챢챣챥챧챩챪챫챬챭챮챯챱챲������챳챴챶챷챸챹챺챻챼챽챾챿첀첁첂첃첄첅첆첇첈첉첊첋첌첍첎첏첐첑첒첓ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������\".split(\"\");\nfor(j = 0; j != D[170].length; ++j) if(D[170][j].charCodeAt(0) !== 0xFFFD) { e[D[170][j]] = 43520 + j; d[43520 + j] = D[170][j];}\nD[171] = \"�����������������������������������������������������������������첔첕첖첗첚첛첝첞첟첡첢첣첤첥첦첧첪첮첯첰첱첲첳첶첷첹������첺첻첽첾첿쳀쳁쳂쳃쳆쳈쳊쳋쳌쳍쳎쳏쳑쳒쳓쳕쳖쳗쳘쳙쳚������쳛쳜쳝쳞쳟쳠쳡쳢쳣쳥쳦쳧쳨쳩쳪쳫쳭쳮쳯쳱쳲쳳쳴쳵쳶쳷쳸쳹쳺쳻쳼쳽ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������\".split(\"\");\nfor(j = 0; j != D[171].length; ++j) if(D[171][j].charCodeAt(0) !== 0xFFFD) { e[D[171][j]] = 43776 + j; d[43776 + j] = D[171][j];}\nD[172] = \"�����������������������������������������������������������������쳾쳿촀촂촃촄촅촆촇촊촋촍촎촏촑촒촓촔촕촖촗촚촜촞촟촠������촡촢촣촥촦촧촩촪촫촭촮촯촰촱촲촳촴촵촶촷촸촺촻촼촽촾������촿쵀쵁쵂쵃쵄쵅쵆쵇쵈쵉쵊쵋쵌쵍쵎쵏쵐쵑쵒쵓쵔쵕쵖쵗쵘쵙쵚쵛쵝쵞쵟АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������\".split(\"\");\nfor(j = 0; j != D[172].length; ++j) if(D[172][j].charCodeAt(0) !== 0xFFFD) { e[D[172][j]] = 44032 + j; d[44032 + j] = D[172][j];}\nD[173] = \"�����������������������������������������������������������������쵡쵢쵣쵥쵦쵧쵨쵩쵪쵫쵮쵰쵲쵳쵴쵵쵶쵷쵹쵺쵻쵼쵽쵾쵿춀������춁춂춃춄춅춆춇춉춊춋춌춍춎춏춐춑춒춓춖춗춙춚춛춝춞춟������춠춡춢춣춦춨춪춫춬춭춮춯춱춲춳춴춵춶춷춸춹춺춻춼춽춾춿췀췁췂췃췅�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[173].length; ++j) if(D[173][j].charCodeAt(0) !== 0xFFFD) { e[D[173][j]] = 44288 + j; d[44288 + j] = D[173][j];}\nD[174] = \"�����������������������������������������������������������������췆췇췈췉췊췋췍췎췏췑췒췓췔췕췖췗췘췙췚췛췜췝췞췟췠췡������췢췣췤췥췦췧췩췪췫췭췮췯췱췲췳췴췵췶췷췺췼췾췿츀츁츂������츃츅츆츇츉츊츋츍츎츏츐츑츒츓츕츖츗츘츚츛츜츝츞츟츢츣츥츦츧츩츪츫�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[174].length; ++j) if(D[174][j].charCodeAt(0) !== 0xFFFD) { e[D[174][j]] = 44544 + j; d[44544 + j] = D[174][j];}\nD[175] = \"�����������������������������������������������������������������츬츭츮츯츲츴츶츷츸츹츺츻츼츽츾츿칀칁칂칃칄칅칆칇칈칉������칊칋칌칍칎칏칐칑칒칓칔칕칖칗칚칛칝칞칢칣칤칥칦칧칪칬������칮칯칰칱칲칳칶칷칹칺칻칽칾칿캀캁캂캃캆캈캊캋캌캍캎캏캒캓캕캖캗캙�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[175].length; ++j) if(D[175][j].charCodeAt(0) !== 0xFFFD) { e[D[175][j]] = 44800 + j; d[44800 + j] = D[175][j];}\nD[176] = \"�����������������������������������������������������������������캚캛캜캝캞캟캢캦캧캨캩캪캫캮캯캰캱캲캳캴캵캶캷캸캹캺������캻캼캽캾캿컀컂컃컄컅컆컇컈컉컊컋컌컍컎컏컐컑컒컓컔컕������컖컗컘컙컚컛컜컝컞컟컠컡컢컣컦컧컩컪컭컮컯컰컱컲컳컶컺컻컼컽컾컿가각간갇갈갉갊감갑값갓갔강갖갗같갚갛개객갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆�\".split(\"\");\nfor(j = 0; j != D[176].length; ++j) if(D[176][j].charCodeAt(0) !== 0xFFFD) { e[D[176][j]] = 45056 + j; d[45056 + j] = D[176][j];}\nD[177] = \"�����������������������������������������������������������������켂켃켅켆켇켉켊켋켌켍켎켏켒켔켖켗켘켙켚켛켝켞켟켡켢켣������켥켦켧켨켩켪켫켮켲켳켴켵켶켷켹켺켻켼켽켾켿콀콁콂콃콄������콅콆콇콈콉콊콋콌콍콎콏콐콑콒콓콖콗콙콚콛콝콞콟콠콡콢콣콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸�\".split(\"\");\nfor(j = 0; j != D[177].length; ++j) if(D[177][j].charCodeAt(0) !== 0xFFFD) { e[D[177][j]] = 45312 + j; d[45312 + j] = D[177][j];}\nD[178] = \"�����������������������������������������������������������������콭콮콯콲콳콵콶콷콹콺콻콼콽콾콿쾁쾂쾃쾄쾆쾇쾈쾉쾊쾋쾍������쾎쾏쾐쾑쾒쾓쾔쾕쾖쾗쾘쾙쾚쾛쾜쾝쾞쾟쾠쾢쾣쾤쾥쾦쾧쾩������쾪쾫쾬쾭쾮쾯쾱쾲쾳쾴쾵쾶쾷쾸쾹쾺쾻쾼쾽쾾쾿쿀쿁쿂쿃쿅쿆쿇쿈쿉쿊쿋깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙�\".split(\"\");\nfor(j = 0; j != D[178].length; ++j) if(D[178][j].charCodeAt(0) !== 0xFFFD) { e[D[178][j]] = 45568 + j; d[45568 + j] = D[178][j];}\nD[179] = \"�����������������������������������������������������������������쿌쿍쿎쿏쿐쿑쿒쿓쿔쿕쿖쿗쿘쿙쿚쿛쿜쿝쿞쿟쿢쿣쿥쿦쿧쿩������쿪쿫쿬쿭쿮쿯쿲쿴쿶쿷쿸쿹쿺쿻쿽쿾쿿퀁퀂퀃퀅퀆퀇퀈퀉퀊������퀋퀌퀍퀎퀏퀐퀒퀓퀔퀕퀖퀗퀙퀚퀛퀜퀝퀞퀟퀠퀡퀢퀣퀤퀥퀦퀧퀨퀩퀪퀫퀬끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫났낭낮낯낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝�\".split(\"\");\nfor(j = 0; j != D[179].length; ++j) if(D[179][j].charCodeAt(0) !== 0xFFFD) { e[D[179][j]] = 45824 + j; d[45824 + j] = D[179][j];}\nD[180] = \"�����������������������������������������������������������������퀮퀯퀰퀱퀲퀳퀶퀷퀹퀺퀻퀽퀾퀿큀큁큂큃큆큈큊큋큌큍큎큏������큑큒큓큕큖큗큙큚큛큜큝큞큟큡큢큣큤큥큦큧큨큩큪큫큮큯������큱큲큳큵큶큷큸큹큺큻큾큿킀킂킃킄킅킆킇킈킉킊킋킌킍킎킏킐킑킒킓킔뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫달닭닮닯닳담답닷닸당닺닻닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥�\".split(\"\");\nfor(j = 0; j != D[180].length; ++j) if(D[180][j].charCodeAt(0) !== 0xFFFD) { e[D[180][j]] = 46080 + j; d[46080 + j] = D[180][j];}\nD[181] = \"�����������������������������������������������������������������킕킖킗킘킙킚킛킜킝킞킟킠킡킢킣킦킧킩킪킫킭킮킯킰킱킲������킳킶킸킺킻킼킽킾킿탂탃탅탆탇탊탋탌탍탎탏탒탖탗탘탙탚������탛탞탟탡탢탣탥탦탧탨탩탪탫탮탲탳탴탵탶탷탹탺탻탼탽탾탿턀턁턂턃턄덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸�\".split(\"\");\nfor(j = 0; j != D[181].length; ++j) if(D[181][j].charCodeAt(0) !== 0xFFFD) { e[D[181][j]] = 46336 + j; d[46336 + j] = D[181][j];}\nD[182] = \"�����������������������������������������������������������������턅턆턇턈턉턊턋턌턎턏턐턑턒턓턔턕턖턗턘턙턚턛턜턝턞턟������턠턡턢턣턤턥턦턧턨턩턪턫턬턭턮턯턲턳턵턶턷턹턻턼턽턾������턿텂텆텇텈텉텊텋텎텏텑텒텓텕텖텗텘텙텚텛텞텠텢텣텤텥텦텧텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗�\".split(\"\");\nfor(j = 0; j != D[182].length; ++j) if(D[182][j].charCodeAt(0) !== 0xFFFD) { e[D[182][j]] = 46592 + j; d[46592 + j] = D[182][j];}\nD[183] = \"�����������������������������������������������������������������텮텯텰텱텲텳텴텵텶텷텸텹텺텻텽텾텿톀톁톂톃톅톆톇톉톊������톋톌톍톎톏톐톑톒톓톔톕톖톗톘톙톚톛톜톝톞톟톢톣톥톦톧������톩톪톫톬톭톮톯톲톴톶톷톸톹톻톽톾톿퇁퇂퇃퇄퇅퇆퇇퇈퇉퇊퇋퇌퇍퇎퇏래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩�\".split(\"\");\nfor(j = 0; j != D[183].length; ++j) if(D[183][j].charCodeAt(0) !== 0xFFFD) { e[D[183][j]] = 46848 + j; d[46848 + j] = D[183][j];}\nD[184] = \"�����������������������������������������������������������������퇐퇑퇒퇓퇔퇕퇖퇗퇙퇚퇛퇜퇝퇞퇟퇠퇡퇢퇣퇤퇥퇦퇧퇨퇩퇪������퇫퇬퇭퇮퇯퇰퇱퇲퇳퇵퇶퇷퇹퇺퇻퇼퇽퇾퇿툀툁툂툃툄툅툆������툈툊툋툌툍툎툏툑툒툓툔툕툖툗툘툙툚툛툜툝툞툟툠툡툢툣툤툥툦툧툨툩륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많맏말맑맒맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼�\".split(\"\");\nfor(j = 0; j != D[184].length; ++j) if(D[184][j].charCodeAt(0) !== 0xFFFD) { e[D[184][j]] = 47104 + j; d[47104 + j] = D[184][j];}\nD[185] = \"�����������������������������������������������������������������툪툫툮툯툱툲툳툵툶툷툸툹툺툻툾퉀퉂퉃퉄퉅퉆퉇퉉퉊퉋퉌������퉍퉎퉏퉐퉑퉒퉓퉔퉕퉖퉗퉘퉙퉚퉛퉝퉞퉟퉠퉡퉢퉣퉥퉦퉧퉨������퉩퉪퉫퉬퉭퉮퉯퉰퉱퉲퉳퉴퉵퉶퉷퉸퉹퉺퉻퉼퉽퉾퉿튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바박밖밗반받발밝밞밟밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗�\".split(\"\");\nfor(j = 0; j != D[185].length; ++j) if(D[185][j].charCodeAt(0) !== 0xFFFD) { e[D[185][j]] = 47360 + j; d[47360 + j] = D[185][j];}\nD[186] = \"�����������������������������������������������������������������튍튎튏튒튓튔튖튗튘튙튚튛튝튞튟튡튢튣튥튦튧튨튩튪튫튭������튮튯튰튲튳튴튵튶튷튺튻튽튾틁틃틄틅틆틇틊틌틍틎틏틐틑������틒틓틕틖틗틙틚틛틝틞틟틠틡틢틣틦틧틨틩틪틫틬틭틮틯틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤�\".split(\"\");\nfor(j = 0; j != D[186].length; ++j) if(D[186][j].charCodeAt(0) !== 0xFFFD) { e[D[186][j]] = 47616 + j; d[47616 + j] = D[186][j];}\nD[187] = \"�����������������������������������������������������������������틻틼틽틾틿팂팄팆팇팈팉팊팋팏팑팒팓팕팗팘팙팚팛팞팢팣������팤팦팧팪팫팭팮팯팱팲팳팴팵팶팷팺팾팿퍀퍁퍂퍃퍆퍇퍈퍉������퍊퍋퍌퍍퍎퍏퍐퍑퍒퍓퍔퍕퍖퍗퍘퍙퍚퍛퍜퍝퍞퍟퍠퍡퍢퍣퍤퍥퍦퍧퍨퍩빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤�\".split(\"\");\nfor(j = 0; j != D[187].length; ++j) if(D[187][j].charCodeAt(0) !== 0xFFFD) { e[D[187][j]] = 47872 + j; d[47872 + j] = D[187][j];}\nD[188] = \"�����������������������������������������������������������������퍪퍫퍬퍭퍮퍯퍰퍱퍲퍳퍴퍵퍶퍷퍸퍹퍺퍻퍾퍿펁펂펃펅펆펇������펈펉펊펋펎펒펓펔펕펖펗펚펛펝펞펟펡펢펣펤펥펦펧펪펬펮������펯펰펱펲펳펵펶펷펹펺펻펽펾펿폀폁폂폃폆폇폊폋폌폍폎폏폑폒폓폔폕폖샥샨샬샴샵샷샹섀섄섈섐섕서석섞섟선섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭�\".split(\"\");\nfor(j = 0; j != D[188].length; ++j) if(D[188][j].charCodeAt(0) !== 0xFFFD) { e[D[188][j]] = 48128 + j; d[48128 + j] = D[188][j];}\nD[189] = \"�����������������������������������������������������������������폗폙폚폛폜폝폞폟폠폢폤폥폦폧폨폩폪폫폮폯폱폲폳폵폶폷������폸폹폺폻폾퐀퐂퐃퐄퐅퐆퐇퐉퐊퐋퐌퐍퐎퐏퐐퐑퐒퐓퐔퐕퐖������퐗퐘퐙퐚퐛퐜퐞퐟퐠퐡퐢퐣퐤퐥퐦퐧퐨퐩퐪퐫퐬퐭퐮퐯퐰퐱퐲퐳퐴퐵퐶퐷숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰�\".split(\"\");\nfor(j = 0; j != D[189].length; ++j) if(D[189][j].charCodeAt(0) !== 0xFFFD) { e[D[189][j]] = 48384 + j; d[48384 + j] = D[189][j];}\nD[190] = \"�����������������������������������������������������������������퐸퐹퐺퐻퐼퐽퐾퐿푁푂푃푅푆푇푈푉푊푋푌푍푎푏푐푑푒푓������푔푕푖푗푘푙푚푛푝푞푟푡푢푣푥푦푧푨푩푪푫푬푮푰푱푲������푳푴푵푶푷푺푻푽푾풁풃풄풅풆풇풊풌풎풏풐풑풒풓풕풖풗풘풙풚풛풜풝쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄업없엇었엉엊엌엎�\".split(\"\");\nfor(j = 0; j != D[190].length; ++j) if(D[190][j].charCodeAt(0) !== 0xFFFD) { e[D[190][j]] = 48640 + j; d[48640 + j] = D[190][j];}\nD[191] = \"�����������������������������������������������������������������풞풟풠풡풢풣풤풥풦풧풨풪풫풬풭풮풯풰풱풲풳풴풵풶풷풸������풹풺풻풼풽풾풿퓀퓁퓂퓃퓄퓅퓆퓇퓈퓉퓊퓋퓍퓎퓏퓑퓒퓓퓕������퓖퓗퓘퓙퓚퓛퓝퓞퓠퓡퓢퓣퓤퓥퓦퓧퓩퓪퓫퓭퓮퓯퓱퓲퓳퓴퓵퓶퓷퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염엽엾엿였영옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨�\".split(\"\");\nfor(j = 0; j != D[191].length; ++j) if(D[191][j].charCodeAt(0) !== 0xFFFD) { e[D[191][j]] = 48896 + j; d[48896 + j] = D[191][j];}\nD[192] = \"�����������������������������������������������������������������퓾퓿픀픁픂픃픅픆픇픉픊픋픍픎픏픐픑픒픓픖픘픙픚픛픜픝������픞픟픠픡픢픣픤픥픦픧픨픩픪픫픬픭픮픯픰픱픲픳픴픵픶픷������픸픹픺픻픾픿핁핂핃핅핆핇핈핉핊핋핎핐핒핓핔핕핖핗핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응읒읓읔읕읖읗의읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊�\".split(\"\");\nfor(j = 0; j != D[192].length; ++j) if(D[192][j].charCodeAt(0) !== 0xFFFD) { e[D[192][j]] = 49152 + j; d[49152 + j] = D[192][j];}\nD[193] = \"�����������������������������������������������������������������핤핦핧핪핬핮핯핰핱핲핳핶핷핹핺핻핽핾핿햀햁햂햃햆햊햋������햌햍햎햏햑햒햓햔햕햖햗햘햙햚햛햜햝햞햟햠햡햢햣햤햦햧������햨햩햪햫햬햭햮햯햰햱햲햳햴햵햶햷햸햹햺햻햼햽햾햿헀헁헂헃헄헅헆헇점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓�\".split(\"\");\nfor(j = 0; j != D[193].length; ++j) if(D[193][j].charCodeAt(0) !== 0xFFFD) { e[D[193][j]] = 49408 + j; d[49408 + j] = D[193][j];}\nD[194] = \"�����������������������������������������������������������������헊헋헍헎헏헑헓헔헕헖헗헚헜헞헟헠헡헢헣헦헧헩헪헫헭헮������헯헰헱헲헳헶헸헺헻헼헽헾헿혂혃혅혆혇혉혊혋혌혍혎혏혒������혖혗혘혙혚혛혝혞혟혡혢혣혥혦혧혨혩혪혫혬혮혯혰혱혲혳혴혵혶혷혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻�\".split(\"\");\nfor(j = 0; j != D[194].length; ++j) if(D[194][j].charCodeAt(0) !== 0xFFFD) { e[D[194][j]] = 49664 + j; d[49664 + j] = D[194][j];}\nD[195] = \"�����������������������������������������������������������������혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝홞홟홠홡������홢홣홤홥홦홨홪홫홬홭홮홯홲홳홵홶홷홸홹홺홻홼홽홾홿횀������횁횂횄횆횇횈횉횊횋횎횏횑횒횓횕횖횗횘횙횚횛횜횞횠횢횣횤횥횦횧횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층�\".split(\"\");\nfor(j = 0; j != D[195].length; ++j) if(D[195][j].charCodeAt(0) !== 0xFFFD) { e[D[195][j]] = 49920 + j; d[49920 + j] = D[195][j];}\nD[196] = \"�����������������������������������������������������������������횫횭횮횯횱횲횳횴횵횶횷횸횺횼횽횾횿훀훁훂훃훆훇훉훊훋������훍훎훏훐훒훓훕훖훘훚훛훜훝훞훟훡훢훣훥훦훧훩훪훫훬훭������훮훯훱훲훳훴훶훷훸훹훺훻훾훿휁휂휃휅휆휇휈휉휊휋휌휍휎휏휐휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼�\".split(\"\");\nfor(j = 0; j != D[196].length; ++j) if(D[196][j].charCodeAt(0) !== 0xFFFD) { e[D[196][j]] = 50176 + j; d[50176 + j] = D[196][j];}\nD[197] = \"�����������������������������������������������������������������휕휖휗휚휛휝휞휟휡휢휣휤휥휦휧휪휬휮휯휰휱휲휳휶휷휹������휺휻휽휾휿흀흁흂흃흅흆흈흊흋흌흍흎흏흒흓흕흚흛흜흝흞������흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵흶흷흸흹흺흻흾흿힀힂힃힄힅힆힇힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜�\".split(\"\");\nfor(j = 0; j != D[197].length; ++j) if(D[197][j].charCodeAt(0) !== 0xFFFD) { e[D[197][j]] = 50432 + j; d[50432 + j] = D[197][j];}\nD[198] = \"�����������������������������������������������������������������힍힎힏힑힒힓힔힕힖힗힚힜힞힟힠힡힢힣������������������������������������������������������������������������������퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁�\".split(\"\");\nfor(j = 0; j != D[198].length; ++j) if(D[198][j].charCodeAt(0) !== 0xFFFD) { e[D[198][j]] = 50688 + j; d[50688 + j] = D[198][j];}\nD[199] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠�\".split(\"\");\nfor(j = 0; j != D[199].length; ++j) if(D[199][j].charCodeAt(0) !== 0xFFFD) { e[D[199][j]] = 50944 + j; d[50944 + j] = D[199][j];}\nD[200] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝�\".split(\"\");\nfor(j = 0; j != D[200].length; ++j) if(D[200][j].charCodeAt(0) !== 0xFFFD) { e[D[200][j]] = 51200 + j; d[51200 + j] = D[200][j];}\nD[202] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕�\".split(\"\");\nfor(j = 0; j != D[202].length; ++j) if(D[202][j].charCodeAt(0) !== 0xFFFD) { e[D[202][j]] = 51712 + j; d[51712 + j] = D[202][j];}\nD[203] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢�\".split(\"\");\nfor(j = 0; j != D[203].length; ++j) if(D[203][j].charCodeAt(0) !== 0xFFFD) { e[D[203][j]] = 51968 + j; d[51968 + j] = D[203][j];}\nD[204] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械�\".split(\"\");\nfor(j = 0; j != D[204].length; ++j) if(D[204][j].charCodeAt(0) !== 0xFFFD) { e[D[204][j]] = 52224 + j; d[52224 + j] = D[204][j];}\nD[205] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜�\".split(\"\");\nfor(j = 0; j != D[205].length; ++j) if(D[205][j].charCodeAt(0) !== 0xFFFD) { e[D[205][j]] = 52480 + j; d[52480 + j] = D[205][j];}\nD[206] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾�\".split(\"\");\nfor(j = 0; j != D[206].length; ++j) if(D[206][j].charCodeAt(0) !== 0xFFFD) { e[D[206][j]] = 52736 + j; d[52736 + j] = D[206][j];}\nD[207] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴�\".split(\"\");\nfor(j = 0; j != D[207].length; ++j) if(D[207][j].charCodeAt(0) !== 0xFFFD) { e[D[207][j]] = 52992 + j; d[52992 + j] = D[207][j];}\nD[208] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣�\".split(\"\");\nfor(j = 0; j != D[208].length; ++j) if(D[208][j].charCodeAt(0) !== 0xFFFD) { e[D[208][j]] = 53248 + j; d[53248 + j] = D[208][j];}\nD[209] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩羅蘿螺裸邏那樂洛烙珞落諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉�\".split(\"\");\nfor(j = 0; j != D[209].length; ++j) if(D[209][j].charCodeAt(0) !== 0xFFFD) { e[D[209][j]] = 53504 + j; d[53504 + j] = D[209][j];}\nD[210] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������納臘蠟衲囊娘廊朗浪狼郎乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧老蘆虜路露駑魯鷺碌祿綠菉錄鹿論壟弄濃籠聾膿農惱牢磊腦賂雷尿壘屢樓淚漏累縷陋嫩訥杻紐勒肋凜凌稜綾能菱陵尼泥匿溺多茶�\".split(\"\");\nfor(j = 0; j != D[210].length; ++j) if(D[210][j].charCodeAt(0) !== 0xFFFD) { e[D[210][j]] = 53760 + j; d[53760 + j] = D[210][j];}\nD[211] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃�\".split(\"\");\nfor(j = 0; j != D[211].length; ++j) if(D[211][j].charCodeAt(0) !== 0xFFFD) { e[D[211][j]] = 54016 + j; d[54016 + j] = D[211][j];}\nD[212] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅�\".split(\"\");\nfor(j = 0; j != D[212].length; ++j) if(D[212][j].charCodeAt(0) !== 0xFFFD) { e[D[212][j]] = 54272 + j; d[54272 + j] = D[212][j];}\nD[213] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣�\".split(\"\");\nfor(j = 0; j != D[213].length; ++j) if(D[213][j].charCodeAt(0) !== 0xFFFD) { e[D[213][j]] = 54528 + j; d[54528 + j] = D[213][j];}\nD[214] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼�\".split(\"\");\nfor(j = 0; j != D[214].length; ++j) if(D[214][j].charCodeAt(0) !== 0xFFFD) { e[D[214][j]] = 54784 + j; d[54784 + j] = D[214][j];}\nD[215] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬�\".split(\"\");\nfor(j = 0; j != D[215].length; ++j) if(D[215][j].charCodeAt(0) !== 0xFFFD) { e[D[215][j]] = 55040 + j; d[55040 + j] = D[215][j];}\nD[216] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅�\".split(\"\");\nfor(j = 0; j != D[216].length; ++j) if(D[216][j].charCodeAt(0) !== 0xFFFD) { e[D[216][j]] = 55296 + j; d[55296 + j] = D[216][j];}\nD[217] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文�\".split(\"\");\nfor(j = 0; j != D[217].length; ++j) if(D[217][j].charCodeAt(0) !== 0xFFFD) { e[D[217][j]] = 55552 + j; d[55552 + j] = D[217][j];}\nD[218] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑�\".split(\"\");\nfor(j = 0; j != D[218].length; ++j) if(D[218][j].charCodeAt(0) !== 0xFFFD) { e[D[218][j]] = 55808 + j; d[55808 + j] = D[218][j];}\nD[219] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖�\".split(\"\");\nfor(j = 0; j != D[219].length; ++j) if(D[219][j].charCodeAt(0) !== 0xFFFD) { e[D[219][j]] = 56064 + j; d[56064 + j] = D[219][j];}\nD[220] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦�\".split(\"\");\nfor(j = 0; j != D[220].length; ++j) if(D[220][j].charCodeAt(0) !== 0xFFFD) { e[D[220][j]] = 56320 + j; d[56320 + j] = D[220][j];}\nD[221] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥�\".split(\"\");\nfor(j = 0; j != D[221].length; ++j) if(D[221][j].charCodeAt(0) !== 0xFFFD) { e[D[221][j]] = 56576 + j; d[56576 + j] = D[221][j];}\nD[222] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索�\".split(\"\");\nfor(j = 0; j != D[222].length; ++j) if(D[222][j].charCodeAt(0) !== 0xFFFD) { e[D[222][j]] = 56832 + j; d[56832 + j] = D[222][j];}\nD[223] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署�\".split(\"\");\nfor(j = 0; j != D[223].length; ++j) if(D[223][j].charCodeAt(0) !== 0xFFFD) { e[D[223][j]] = 57088 + j; d[57088 + j] = D[223][j];}\nD[224] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬�\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁�\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧�\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁�\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額�\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬�\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒�\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳�\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療�\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓�\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜�\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[235] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼�\".split(\"\");\nfor(j = 0; j != D[235].length; ++j) if(D[235][j].charCodeAt(0) !== 0xFFFD) { e[D[235][j]] = 60160 + j; d[60160 + j] = D[235][j];}\nD[236] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄�\".split(\"\");\nfor(j = 0; j != D[236].length; ++j) if(D[236][j].charCodeAt(0) !== 0xFFFD) { e[D[236][j]] = 60416 + j; d[60416 + j] = D[236][j];}\nD[237] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長�\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱�\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[239] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖�\".split(\"\");\nfor(j = 0; j != D[239].length; ++j) if(D[239][j].charCodeAt(0) !== 0xFFFD) { e[D[239][j]] = 61184 + j; d[61184 + j] = D[239][j];}\nD[240] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫�\".split(\"\");\nfor(j = 0; j != D[240].length; ++j) if(D[240][j].charCodeAt(0) !== 0xFFFD) { e[D[240][j]] = 61440 + j; d[61440 + j] = D[240][j];}\nD[241] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只�\".split(\"\");\nfor(j = 0; j != D[241].length; ++j) if(D[241][j].charCodeAt(0) !== 0xFFFD) { e[D[241][j]] = 61696 + j; d[61696 + j] = D[241][j];}\nD[242] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯�\".split(\"\");\nfor(j = 0; j != D[242].length; ++j) if(D[242][j].charCodeAt(0) !== 0xFFFD) { e[D[242][j]] = 61952 + j; d[61952 + j] = D[242][j];}\nD[243] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策�\".split(\"\");\nfor(j = 0; j != D[243].length; ++j) if(D[243][j].charCodeAt(0) !== 0xFFFD) { e[D[243][j]] = 62208 + j; d[62208 + j] = D[243][j];}\nD[244] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢�\".split(\"\");\nfor(j = 0; j != D[244].length; ++j) if(D[244][j].charCodeAt(0) !== 0xFFFD) { e[D[244][j]] = 62464 + j; d[62464 + j] = D[244][j];}\nD[245] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃�\".split(\"\");\nfor(j = 0; j != D[245].length; ++j) if(D[245][j].charCodeAt(0) !== 0xFFFD) { e[D[245][j]] = 62720 + j; d[62720 + j] = D[245][j];}\nD[246] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託�\".split(\"\");\nfor(j = 0; j != D[246].length; ++j) if(D[246][j].charCodeAt(0) !== 0xFFFD) { e[D[246][j]] = 62976 + j; d[62976 + j] = D[246][j];}\nD[247] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑�\".split(\"\");\nfor(j = 0; j != D[247].length; ++j) if(D[247][j].charCodeAt(0) !== 0xFFFD) { e[D[247][j]] = 63232 + j; d[63232 + j] = D[247][j];}\nD[248] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃�\".split(\"\");\nfor(j = 0; j != D[248].length; ++j) if(D[248][j].charCodeAt(0) !== 0xFFFD) { e[D[248][j]] = 63488 + j; d[63488 + j] = D[248][j];}\nD[249] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航�\".split(\"\");\nfor(j = 0; j != D[249].length; ++j) if(D[249][j].charCodeAt(0) !== 0xFFFD) { e[D[249][j]] = 63744 + j; d[63744 + j] = D[249][j];}\nD[250] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型�\".split(\"\");\nfor(j = 0; j != D[250].length; ++j) if(D[250][j].charCodeAt(0) !== 0xFFFD) { e[D[250][j]] = 64000 + j; d[64000 + j] = D[250][j];}\nD[251] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵�\".split(\"\");\nfor(j = 0; j != D[251].length; ++j) if(D[251][j].charCodeAt(0) !== 0xFFFD) { e[D[251][j]] = 64256 + j; d[64256 + j] = D[251][j];}\nD[252] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆�\".split(\"\");\nfor(j = 0; j != D[252].length; ++j) if(D[252][j].charCodeAt(0) !== 0xFFFD) { e[D[252][j]] = 64512 + j; d[64512 + j] = D[252][j];}\nD[253] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰�\".split(\"\");\nfor(j = 0; j != D[253].length; ++j) if(D[253][j].charCodeAt(0) !== 0xFFFD) { e[D[253][j]] = 64768 + j; d[64768 + j] = D[253][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[950] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[161] = \"����������������������������������������������������������������　，、。．‧；：？！︰…‥﹐﹑﹒·﹔﹕﹖﹗｜–︱—︳╴︴﹏（）︵︶｛｝︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚����������������������������������﹛﹜﹝﹞‘’“”〝〞‵′＃＆＊※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯￣＿ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡＋－×÷±√＜＞＝≦≧≠∞≒≡﹢﹣﹤﹥﹦～∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣／�\".split(\"\");\nfor(j = 0; j != D[161].length; ++j) if(D[161][j].charCodeAt(0) !== 0xFFFD) { e[D[161][j]] = 41216 + j; d[41216 + j] = D[161][j];}\nD[162] = \"����������������������������������������������������������������＼∕﹨＄￥〒￠￡％＠℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁▂▃▄▅▆▇█▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭����������������������������������╮╰╯═╞╪╡◢◣◥◤╱╲╳０１２３４５６７８９ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ〡〢〣〤〥〦〧〨〩十卄卅ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵＶＷＸＹＺａｂｃｄｅｆｇｈｉｊｋｌｍｎｏｐｑｒｓｔｕｖ�\".split(\"\");\nfor(j = 0; j != D[162].length; ++j) if(D[162][j].charCodeAt(0) !== 0xFFFD) { e[D[162][j]] = 41472 + j; d[41472 + j] = D[162][j];}\nD[163] = \"����������������������������������������������������������������ｗｘｙｚΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψωㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏ����������������������������������ㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ˙ˉˊˇˋ���������������������������������€������������������������������\".split(\"\");\nfor(j = 0; j != D[163].length; ++j) if(D[163][j].charCodeAt(0) !== 0xFFFD) { e[D[163][j]] = 41728 + j; d[41728 + j] = D[163][j];}\nD[164] = \"����������������������������������������������������������������一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才����������������������������������丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙�\".split(\"\");\nfor(j = 0; j != D[164].length; ++j) if(D[164][j].charCodeAt(0) !== 0xFFFD) { e[D[164][j]] = 41984 + j; d[41984 + j] = D[164][j];}\nD[165] = \"����������������������������������������������������������������世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外����������������������������������央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全�\".split(\"\");\nfor(j = 0; j != D[165].length; ++j) if(D[165][j].charCodeAt(0) !== 0xFFFD) { e[D[165][j]] = 42240 + j; d[42240 + j] = D[165][j];}\nD[166] = \"����������������������������������������������������������������共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年����������������������������������式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣�\".split(\"\");\nfor(j = 0; j != D[166].length; ++j) if(D[166][j].charCodeAt(0) !== 0xFFFD) { e[D[166][j]] = 42496 + j; d[42496 + j] = D[166][j];}\nD[167] = \"����������������������������������������������������������������作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍����������������������������������均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠�\".split(\"\");\nfor(j = 0; j != D[167].length; ++j) if(D[167][j].charCodeAt(0) !== 0xFFFD) { e[D[167][j]] = 42752 + j; d[42752 + j] = D[167][j];}\nD[168] = \"����������������������������������������������������������������杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒����������������������������������芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵�\".split(\"\");\nfor(j = 0; j != D[168].length; ++j) if(D[168][j].charCodeAt(0) !== 0xFFFD) { e[D[168][j]] = 43008 + j; d[43008 + j] = D[168][j];}\nD[169] = \"����������������������������������������������������������������咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居����������������������������������屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊�\".split(\"\");\nfor(j = 0; j != D[169].length; ++j) if(D[169][j].charCodeAt(0) !== 0xFFFD) { e[D[169][j]] = 43264 + j; d[43264 + j] = D[169][j];}\nD[170] = \"����������������������������������������������������������������昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠����������������������������������炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附�\".split(\"\");\nfor(j = 0; j != D[170].length; ++j) if(D[170][j].charCodeAt(0) !== 0xFFFD) { e[D[170][j]] = 43520 + j; d[43520 + j] = D[170][j];}\nD[171] = \"����������������������������������������������������������������陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品����������������������������������哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷�\".split(\"\");\nfor(j = 0; j != D[171].length; ++j) if(D[171][j].charCodeAt(0) !== 0xFFFD) { e[D[171][j]] = 43776 + j; d[43776 + j] = D[171][j];}\nD[172] = \"����������������������������������������������������������������拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗����������������������������������活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄�\".split(\"\");\nfor(j = 0; j != D[172].length; ++j) if(D[172][j].charCodeAt(0) !== 0xFFFD) { e[D[172][j]] = 44032 + j; d[44032 + j] = D[172][j];}\nD[173] = \"����������������������������������������������������������������耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥����������������������������������迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪�\".split(\"\");\nfor(j = 0; j != D[173].length; ++j) if(D[173][j].charCodeAt(0) !== 0xFFFD) { e[D[173][j]] = 44288 + j; d[44288 + j] = D[173][j];}\nD[174] = \"����������������������������������������������������������������哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙����������������������������������恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓�\".split(\"\");\nfor(j = 0; j != D[174].length; ++j) if(D[174][j].charCodeAt(0) !== 0xFFFD) { e[D[174][j]] = 44544 + j; d[44544 + j] = D[174][j];}\nD[175] = \"����������������������������������������������������������������浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷����������������������������������砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃�\".split(\"\");\nfor(j = 0; j != D[175].length; ++j) if(D[175][j].charCodeAt(0) !== 0xFFFD) { e[D[175][j]] = 44800 + j; d[44800 + j] = D[175][j];}\nD[176] = \"����������������������������������������������������������������虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡����������������������������������陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀�\".split(\"\");\nfor(j = 0; j != D[176].length; ++j) if(D[176][j].charCodeAt(0) !== 0xFFFD) { e[D[176][j]] = 45056 + j; d[45056 + j] = D[176][j];}\nD[177] = \"����������������������������������������������������������������娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽����������������������������������情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺�\".split(\"\");\nfor(j = 0; j != D[177].length; ++j) if(D[177][j].charCodeAt(0) !== 0xFFFD) { e[D[177][j]] = 45312 + j; d[45312 + j] = D[177][j];}\nD[178] = \"����������������������������������������������������������������毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶����������������������������������瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼�\".split(\"\");\nfor(j = 0; j != D[178].length; ++j) if(D[178][j].charCodeAt(0) !== 0xFFFD) { e[D[178][j]] = 45568 + j; d[45568 + j] = D[178][j];}\nD[179] = \"����������������������������������������������������������������莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途����������������������������������部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠�\".split(\"\");\nfor(j = 0; j != D[179].length; ++j) if(D[179][j].charCodeAt(0) !== 0xFFFD) { e[D[179][j]] = 45824 + j; d[45824 + j] = D[179][j];}\nD[180] = \"����������������������������������������������������������������婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍����������������������������������插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋�\".split(\"\");\nfor(j = 0; j != D[180].length; ++j) if(D[180][j].charCodeAt(0) !== 0xFFFD) { e[D[180][j]] = 46080 + j; d[46080 + j] = D[180][j];}\nD[181] = \"����������������������������������������������������������������溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘����������������������������������窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁�\".split(\"\");\nfor(j = 0; j != D[181].length; ++j) if(D[181][j].charCodeAt(0) !== 0xFFFD) { e[D[181][j]] = 46336 + j; d[46336 + j] = D[181][j];}\nD[182] = \"����������������������������������������������������������������詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑����������������������������������間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼�\".split(\"\");\nfor(j = 0; j != D[182].length; ++j) if(D[182][j].charCodeAt(0) !== 0xFFFD) { e[D[182][j]] = 46592 + j; d[46592 + j] = D[182][j];}\nD[183] = \"����������������������������������������������������������������媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業����������������������������������楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督�\".split(\"\");\nfor(j = 0; j != D[183].length; ++j) if(D[183][j].charCodeAt(0) !== 0xFFFD) { e[D[183][j]] = 46848 + j; d[46848 + j] = D[183][j];}\nD[184] = \"����������������������������������������������������������������睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫����������������������������������腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊�\".split(\"\");\nfor(j = 0; j != D[184].length; ++j) if(D[184][j].charCodeAt(0) !== 0xFFFD) { e[D[184][j]] = 47104 + j; d[47104 + j] = D[184][j];}\nD[185] = \"����������������������������������������������������������������辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴����������������������������������飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇�\".split(\"\");\nfor(j = 0; j != D[185].length; ++j) if(D[185][j].charCodeAt(0) !== 0xFFFD) { e[D[185][j]] = 47360 + j; d[47360 + j] = D[185][j];}\nD[186] = \"����������������������������������������������������������������愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢����������������������������������滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬�\".split(\"\");\nfor(j = 0; j != D[186].length; ++j) if(D[186][j].charCodeAt(0) !== 0xFFFD) { e[D[186][j]] = 47616 + j; d[47616 + j] = D[186][j];}\nD[187] = \"����������������������������������������������������������������罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤����������������������������������說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜�\".split(\"\");\nfor(j = 0; j != D[187].length; ++j) if(D[187][j].charCodeAt(0) !== 0xFFFD) { e[D[187][j]] = 47872 + j; d[47872 + j] = D[187][j];}\nD[188] = \"����������������������������������������������������������������劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂����������������������������������慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃�\".split(\"\");\nfor(j = 0; j != D[188].length; ++j) if(D[188][j].charCodeAt(0) !== 0xFFFD) { e[D[188][j]] = 48128 + j; d[48128 + j] = D[188][j];}\nD[189] = \"����������������������������������������������������������������瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯����������������������������������翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞�\".split(\"\");\nfor(j = 0; j != D[189].length; ++j) if(D[189][j].charCodeAt(0) !== 0xFFFD) { e[D[189][j]] = 48384 + j; d[48384 + j] = D[189][j];}\nD[190] = \"����������������������������������������������������������������輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉����������������������������������鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡�\".split(\"\");\nfor(j = 0; j != D[190].length; ++j) if(D[190][j].charCodeAt(0) !== 0xFFFD) { e[D[190][j]] = 48640 + j; d[48640 + j] = D[190][j];}\nD[191] = \"����������������������������������������������������������������濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊����������������������������������縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚�\".split(\"\");\nfor(j = 0; j != D[191].length; ++j) if(D[191][j].charCodeAt(0) !== 0xFFFD) { e[D[191][j]] = 48896 + j; d[48896 + j] = D[191][j];}\nD[192] = \"����������������������������������������������������������������錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇����������������������������������嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬�\".split(\"\");\nfor(j = 0; j != D[192].length; ++j) if(D[192][j].charCodeAt(0) !== 0xFFFD) { e[D[192][j]] = 49152 + j; d[49152 + j] = D[192][j];}\nD[193] = \"����������������������������������������������������������������瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪����������������������������������薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁�\".split(\"\");\nfor(j = 0; j != D[193].length; ++j) if(D[193][j].charCodeAt(0) !== 0xFFFD) { e[D[193][j]] = 49408 + j; d[49408 + j] = D[193][j];}\nD[194] = \"����������������������������������������������������������������駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘����������������������������������癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦�\".split(\"\");\nfor(j = 0; j != D[194].length; ++j) if(D[194][j].charCodeAt(0) !== 0xFFFD) { e[D[194][j]] = 49664 + j; d[49664 + j] = D[194][j];}\nD[195] = \"����������������������������������������������������������������鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸����������������������������������獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類�\".split(\"\");\nfor(j = 0; j != D[195].length; ++j) if(D[195][j].charCodeAt(0) !== 0xFFFD) { e[D[195][j]] = 49920 + j; d[49920 + j] = D[195][j];}\nD[196] = \"����������������������������������������������������������������願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼����������������������������������纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴�\".split(\"\");\nfor(j = 0; j != D[196].length; ++j) if(D[196][j].charCodeAt(0) !== 0xFFFD) { e[D[196][j]] = 50176 + j; d[50176 + j] = D[196][j];}\nD[197] = \"����������������������������������������������������������������護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬����������������������������������禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒�\".split(\"\");\nfor(j = 0; j != D[197].length; ++j) if(D[197][j].charCodeAt(0) !== 0xFFFD) { e[D[197][j]] = 50432 + j; d[50432 + j] = D[197][j];}\nD[198] = \"����������������������������������������������������������������讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲���������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[198].length; ++j) if(D[198][j].charCodeAt(0) !== 0xFFFD) { e[D[198][j]] = 50688 + j; d[50688 + j] = D[198][j];}\nD[201] = \"����������������������������������������������������������������乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕����������������������������������氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋�\".split(\"\");\nfor(j = 0; j != D[201].length; ++j) if(D[201][j].charCodeAt(0) !== 0xFFFD) { e[D[201][j]] = 51456 + j; d[51456 + j] = D[201][j];}\nD[202] = \"����������������������������������������������������������������汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘����������������������������������吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇�\".split(\"\");\nfor(j = 0; j != D[202].length; ++j) if(D[202][j].charCodeAt(0) !== 0xFFFD) { e[D[202][j]] = 51712 + j; d[51712 + j] = D[202][j];}\nD[203] = \"����������������������������������������������������������������杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓����������������������������������芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢�\".split(\"\");\nfor(j = 0; j != D[203].length; ++j) if(D[203][j].charCodeAt(0) !== 0xFFFD) { e[D[203][j]] = 51968 + j; d[51968 + j] = D[203][j];}\nD[204] = \"����������������������������������������������������������������坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋����������������������������������怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲�\".split(\"\");\nfor(j = 0; j != D[204].length; ++j) if(D[204][j].charCodeAt(0) !== 0xFFFD) { e[D[204][j]] = 52224 + j; d[52224 + j] = D[204][j];}\nD[205] = \"����������������������������������������������������������������泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺����������������������������������矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏�\".split(\"\");\nfor(j = 0; j != D[205].length; ++j) if(D[205][j].charCodeAt(0) !== 0xFFFD) { e[D[205][j]] = 52480 + j; d[52480 + j] = D[205][j];}\nD[206] = \"����������������������������������������������������������������哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛����������������������������������峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺�\".split(\"\");\nfor(j = 0; j != D[206].length; ++j) if(D[206][j].charCodeAt(0) !== 0xFFFD) { e[D[206][j]] = 52736 + j; d[52736 + j] = D[206][j];}\nD[207] = \"����������������������������������������������������������������柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂����������������������������������洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀�\".split(\"\");\nfor(j = 0; j != D[207].length; ++j) if(D[207][j].charCodeAt(0) !== 0xFFFD) { e[D[207][j]] = 52992 + j; d[52992 + j] = D[207][j];}\nD[208] = \"����������������������������������������������������������������穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪����������������������������������苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱�\".split(\"\");\nfor(j = 0; j != D[208].length; ++j) if(D[208][j].charCodeAt(0) !== 0xFFFD) { e[D[208][j]] = 53248 + j; d[53248 + j] = D[208][j];}\nD[209] = \"����������������������������������������������������������������唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧����������������������������������恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤�\".split(\"\");\nfor(j = 0; j != D[209].length; ++j) if(D[209][j].charCodeAt(0) !== 0xFFFD) { e[D[209][j]] = 53504 + j; d[53504 + j] = D[209][j];}\nD[210] = \"����������������������������������������������������������������毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸����������������������������������牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐�\".split(\"\");\nfor(j = 0; j != D[210].length; ++j) if(D[210][j].charCodeAt(0) !== 0xFFFD) { e[D[210][j]] = 53760 + j; d[53760 + j] = D[210][j];}\nD[211] = \"����������������������������������������������������������������笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢����������������������������������荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐�\".split(\"\");\nfor(j = 0; j != D[211].length; ++j) if(D[211][j].charCodeAt(0) !== 0xFFFD) { e[D[211][j]] = 54016 + j; d[54016 + j] = D[211][j];}\nD[212] = \"����������������������������������������������������������������酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅����������������������������������唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏�\".split(\"\");\nfor(j = 0; j != D[212].length; ++j) if(D[212][j].charCodeAt(0) !== 0xFFFD) { e[D[212][j]] = 54272 + j; d[54272 + j] = D[212][j];}\nD[213] = \"����������������������������������������������������������������崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟����������������������������������捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉�\".split(\"\");\nfor(j = 0; j != D[213].length; ++j) if(D[213][j].charCodeAt(0) !== 0xFFFD) { e[D[213][j]] = 54528 + j; d[54528 + j] = D[213][j];}\nD[214] = \"����������������������������������������������������������������淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏����������������������������������痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟�\".split(\"\");\nfor(j = 0; j != D[214].length; ++j) if(D[214][j].charCodeAt(0) !== 0xFFFD) { e[D[214][j]] = 54784 + j; d[54784 + j] = D[214][j];}\nD[215] = \"����������������������������������������������������������������耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷����������������������������������蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪�\".split(\"\");\nfor(j = 0; j != D[215].length; ++j) if(D[215][j].charCodeAt(0) !== 0xFFFD) { e[D[215][j]] = 55040 + j; d[55040 + j] = D[215][j];}\nD[216] = \"����������������������������������������������������������������釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷����������������������������������堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔�\".split(\"\");\nfor(j = 0; j != D[216].length; ++j) if(D[216][j].charCodeAt(0) !== 0xFFFD) { e[D[216][j]] = 55296 + j; d[55296 + j] = D[216][j];}\nD[217] = \"����������������������������������������������������������������惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒����������������������������������晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞�\".split(\"\");\nfor(j = 0; j != D[217].length; ++j) if(D[217][j].charCodeAt(0) !== 0xFFFD) { e[D[217][j]] = 55552 + j; d[55552 + j] = D[217][j];}\nD[218] = \"����������������������������������������������������������������湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖����������������������������������琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥�\".split(\"\");\nfor(j = 0; j != D[218].length; ++j) if(D[218][j].charCodeAt(0) !== 0xFFFD) { e[D[218][j]] = 55808 + j; d[55808 + j] = D[218][j];}\nD[219] = \"����������������������������������������������������������������罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳����������������������������������菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺�\".split(\"\");\nfor(j = 0; j != D[219].length; ++j) if(D[219][j].charCodeAt(0) !== 0xFFFD) { e[D[219][j]] = 56064 + j; d[56064 + j] = D[219][j];}\nD[220] = \"����������������������������������������������������������������軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈����������������������������������隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆�\".split(\"\");\nfor(j = 0; j != D[220].length; ++j) if(D[220][j].charCodeAt(0) !== 0xFFFD) { e[D[220][j]] = 56320 + j; d[56320 + j] = D[220][j];}\nD[221] = \"����������������������������������������������������������������媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤����������������������������������搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼�\".split(\"\");\nfor(j = 0; j != D[221].length; ++j) if(D[221][j].charCodeAt(0) !== 0xFFFD) { e[D[221][j]] = 56576 + j; d[56576 + j] = D[221][j];}\nD[222] = \"����������������������������������������������������������������毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓����������������������������������煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓�\".split(\"\");\nfor(j = 0; j != D[222].length; ++j) if(D[222][j].charCodeAt(0) !== 0xFFFD) { e[D[222][j]] = 56832 + j; d[56832 + j] = D[222][j];}\nD[223] = \"����������������������������������������������������������������稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯����������������������������������腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤�\".split(\"\");\nfor(j = 0; j != D[223].length; ++j) if(D[223][j].charCodeAt(0) !== 0xFFFD) { e[D[223][j]] = 57088 + j; d[57088 + j] = D[223][j];}\nD[224] = \"����������������������������������������������������������������觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿����������������������������������遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠�\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"����������������������������������������������������������������凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠����������������������������������寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉�\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"����������������������������������������������������������������榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊����������������������������������漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓�\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"����������������������������������������������������������������禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞����������������������������������耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻�\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"����������������������������������������������������������������裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍����������������������������������銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘�\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"����������������������������������������������������������������噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉����������������������������������憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒�\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"����������������������������������������������������������������澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙����������������������������������獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟�\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"����������������������������������������������������������������膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢����������������������������������蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧�\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"����������������������������������������������������������������踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓����������������������������������銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮�\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"����������������������������������������������������������������噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺����������������������������������憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸�\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"����������������������������������������������������������������澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙����������������������������������瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘�\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[235] = \"����������������������������������������������������������������蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠����������������������������������諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌�\".split(\"\");\nfor(j = 0; j != D[235].length; ++j) if(D[235][j].charCodeAt(0) !== 0xFFFD) { e[D[235][j]] = 60160 + j; d[60160 + j] = D[235][j];}\nD[236] = \"����������������������������������������������������������������錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕����������������������������������魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎�\".split(\"\");\nfor(j = 0; j != D[236].length; ++j) if(D[236][j].charCodeAt(0) !== 0xFFFD) { e[D[236][j]] = 60416 + j; d[60416 + j] = D[236][j];}\nD[237] = \"����������������������������������������������������������������檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶����������������������������������瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞�\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"����������������������������������������������������������������蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞����������������������������������謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜�\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[239] = \"����������������������������������������������������������������鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰����������������������������������鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶�\".split(\"\");\nfor(j = 0; j != D[239].length; ++j) if(D[239][j].charCodeAt(0) !== 0xFFFD) { e[D[239][j]] = 61184 + j; d[61184 + j] = D[239][j];}\nD[240] = \"����������������������������������������������������������������璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒����������������������������������臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧�\".split(\"\");\nfor(j = 0; j != D[240].length; ++j) if(D[240][j].charCodeAt(0) !== 0xFFFD) { e[D[240][j]] = 61440 + j; d[61440 + j] = D[240][j];}\nD[241] = \"����������������������������������������������������������������蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪����������������������������������鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰�\".split(\"\");\nfor(j = 0; j != D[241].length; ++j) if(D[241][j].charCodeAt(0) !== 0xFFFD) { e[D[241][j]] = 61696 + j; d[61696 + j] = D[241][j];}\nD[242] = \"����������������������������������������������������������������徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛����������������������������������礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕�\".split(\"\");\nfor(j = 0; j != D[242].length; ++j) if(D[242][j].charCodeAt(0) !== 0xFFFD) { e[D[242][j]] = 61952 + j; d[61952 + j] = D[242][j];}\nD[243] = \"����������������������������������������������������������������譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦����������������������������������鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲�\".split(\"\");\nfor(j = 0; j != D[243].length; ++j) if(D[243][j].charCodeAt(0) !== 0xFFFD) { e[D[243][j]] = 62208 + j; d[62208 + j] = D[243][j];}\nD[244] = \"����������������������������������������������������������������嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩����������������������������������禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿�\".split(\"\");\nfor(j = 0; j != D[244].length; ++j) if(D[244][j].charCodeAt(0) !== 0xFFFD) { e[D[244][j]] = 62464 + j; d[62464 + j] = D[244][j];}\nD[245] = \"����������������������������������������������������������������鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛����������������������������������鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥�\".split(\"\");\nfor(j = 0; j != D[245].length; ++j) if(D[245][j].charCodeAt(0) !== 0xFFFD) { e[D[245][j]] = 62720 + j; d[62720 + j] = D[245][j];}\nD[246] = \"����������������������������������������������������������������蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺����������������������������������騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚�\".split(\"\");\nfor(j = 0; j != D[246].length; ++j) if(D[246][j].charCodeAt(0) !== 0xFFFD) { e[D[246][j]] = 62976 + j; d[62976 + j] = D[246][j];}\nD[247] = \"����������������������������������������������������������������糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊����������������������������������驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾�\".split(\"\");\nfor(j = 0; j != D[247].length; ++j) if(D[247][j].charCodeAt(0) !== 0xFFFD) { e[D[247][j]] = 63232 + j; d[63232 + j] = D[247][j];}\nD[248] = \"����������������������������������������������������������������讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏����������������������������������齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚�\".split(\"\");\nfor(j = 0; j != D[248].length; ++j) if(D[248][j].charCodeAt(0) !== 0xFFFD) { e[D[248][j]] = 63488 + j; d[63488 + j] = D[248][j];}\nD[249] = \"����������������������������������������������������������������纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊����������������������������������龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓�\".split(\"\");\nfor(j = 0; j != D[249].length; ++j) if(D[249][j].charCodeAt(0) !== 0xFFFD) { e[D[249][j]] = 63744 + j; d[63744 + j] = D[249][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[1250] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1251] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1252] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1253] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1254] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1255] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹ�ֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1256] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1257] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1258] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10000] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›ﬁﬂ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10006] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ä¹²É³ÖÜ΅àâä΄¨çéèêë£™îï•½‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10007] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10008] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[161] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������　、。・ˉˇ¨〃々―～�…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃＄¤￠￡‰§№☆★○●◎◇◆□■△▲※→←↑↓〓�\".split(\"\");\nfor(j = 0; j != D[161].length; ++j) if(D[161][j].charCodeAt(0) !== 0xFFFD) { e[D[161][j]] = 41216 + j; d[41216 + j] = D[161][j];}\nD[162] = \"���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩��㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩��ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ���\".split(\"\");\nfor(j = 0; j != D[162].length; ++j) if(D[162][j].charCodeAt(0) !== 0xFFFD) { e[D[162][j]] = 41472 + j; d[41472 + j] = D[162][j];}\nD[163] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������！＂＃￥％＆＇（）＊＋，－．／０１２３４５６７８９：；＜＝＞？＠ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵＶＷＸＹＺ［＼］＾＿｀ａｂｃｄｅｆｇｈｉｊｋｌｍｎｏｐｑｒｓｔｕｖｗｘｙｚ｛｜｝￣�\".split(\"\");\nfor(j = 0; j != D[163].length; ++j) if(D[163][j].charCodeAt(0) !== 0xFFFD) { e[D[163][j]] = 41728 + j; d[41728 + j] = D[163][j];}\nD[164] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������\".split(\"\");\nfor(j = 0; j != D[164].length; ++j) if(D[164][j].charCodeAt(0) !== 0xFFFD) { e[D[164][j]] = 41984 + j; d[41984 + j] = D[164][j];}\nD[165] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������\".split(\"\");\nfor(j = 0; j != D[165].length; ++j) if(D[165][j].charCodeAt(0) !== 0xFFFD) { e[D[165][j]] = 42240 + j; d[42240 + j] = D[165][j];}\nD[166] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω���������������������������������������\".split(\"\");\nfor(j = 0; j != D[166].length; ++j) if(D[166][j].charCodeAt(0) !== 0xFFFD) { e[D[166][j]] = 42496 + j; d[42496 + j] = D[166][j];}\nD[167] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������\".split(\"\");\nfor(j = 0; j != D[167].length; ++j) if(D[167][j].charCodeAt(0) !== 0xFFFD) { e[D[167][j]] = 42752 + j; d[42752 + j] = D[167][j];}\nD[168] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüê����������ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������\".split(\"\");\nfor(j = 0; j != D[168].length; ++j) if(D[168][j].charCodeAt(0) !== 0xFFFD) { e[D[168][j]] = 43008 + j; d[43008 + j] = D[168][j];}\nD[169] = \"��������������������������������������������������������������������������������������������������������������������������������������������������������������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������\".split(\"\");\nfor(j = 0; j != D[169].length; ++j) if(D[169][j].charCodeAt(0) !== 0xFFFD) { e[D[169][j]] = 43264 + j; d[43264 + j] = D[169][j];}\nD[176] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�\".split(\"\");\nfor(j = 0; j != D[176].length; ++j) if(D[176][j].charCodeAt(0) !== 0xFFFD) { e[D[176][j]] = 45056 + j; d[45056 + j] = D[176][j];}\nD[177] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�\".split(\"\");\nfor(j = 0; j != D[177].length; ++j) if(D[177][j].charCodeAt(0) !== 0xFFFD) { e[D[177][j]] = 45312 + j; d[45312 + j] = D[177][j];}\nD[178] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖�\".split(\"\");\nfor(j = 0; j != D[178].length; ++j) if(D[178][j].charCodeAt(0) !== 0xFFFD) { e[D[178][j]] = 45568 + j; d[45568 + j] = D[178][j];}\nD[179] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�\".split(\"\");\nfor(j = 0; j != D[179].length; ++j) if(D[179][j].charCodeAt(0) !== 0xFFFD) { e[D[179][j]] = 45824 + j; d[45824 + j] = D[179][j];}\nD[180] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮�\".split(\"\");\nfor(j = 0; j != D[180].length; ++j) if(D[180][j].charCodeAt(0) !== 0xFFFD) { e[D[180][j]] = 46080 + j; d[46080 + j] = D[180][j];}\nD[181] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�\".split(\"\");\nfor(j = 0; j != D[181].length; ++j) if(D[181][j].charCodeAt(0) !== 0xFFFD) { e[D[181][j]] = 46336 + j; d[46336 + j] = D[181][j];}\nD[182] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二�\".split(\"\");\nfor(j = 0; j != D[182].length; ++j) if(D[182][j].charCodeAt(0) !== 0xFFFD) { e[D[182][j]] = 46592 + j; d[46592 + j] = D[182][j];}\nD[183] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�\".split(\"\");\nfor(j = 0; j != D[183].length; ++j) if(D[183][j].charCodeAt(0) !== 0xFFFD) { e[D[183][j]] = 46848 + j; d[46848 + j] = D[183][j];}\nD[184] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹�\".split(\"\");\nfor(j = 0; j != D[184].length; ++j) if(D[184][j].charCodeAt(0) !== 0xFFFD) { e[D[184][j]] = 47104 + j; d[47104 + j] = D[184][j];}\nD[185] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈�\".split(\"\");\nfor(j = 0; j != D[185].length; ++j) if(D[185][j].charCodeAt(0) !== 0xFFFD) { e[D[185][j]] = 47360 + j; d[47360 + j] = D[185][j];}\nD[186] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖�\".split(\"\");\nfor(j = 0; j != D[186].length; ++j) if(D[186][j].charCodeAt(0) !== 0xFFFD) { e[D[186][j]] = 47616 + j; d[47616 + j] = D[186][j];}\nD[187] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕�\".split(\"\");\nfor(j = 0; j != D[187].length; ++j) if(D[187][j].charCodeAt(0) !== 0xFFFD) { e[D[187][j]] = 47872 + j; d[47872 + j] = D[187][j];}\nD[188] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件�\".split(\"\");\nfor(j = 0; j != D[188].length; ++j) if(D[188][j].charCodeAt(0) !== 0xFFFD) { e[D[188][j]] = 48128 + j; d[48128 + j] = D[188][j];}\nD[189] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸�\".split(\"\");\nfor(j = 0; j != D[189].length; ++j) if(D[189][j].charCodeAt(0) !== 0xFFFD) { e[D[189][j]] = 48384 + j; d[48384 + j] = D[189][j];}\nD[190] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻�\".split(\"\");\nfor(j = 0; j != D[190].length; ++j) if(D[190][j].charCodeAt(0) !== 0xFFFD) { e[D[190][j]] = 48640 + j; d[48640 + j] = D[190][j];}\nD[191] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀�\".split(\"\");\nfor(j = 0; j != D[191].length; ++j) if(D[191][j].charCodeAt(0) !== 0xFFFD) { e[D[191][j]] = 48896 + j; d[48896 + j] = D[191][j];}\nD[192] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐�\".split(\"\");\nfor(j = 0; j != D[192].length; ++j) if(D[192][j].charCodeAt(0) !== 0xFFFD) { e[D[192][j]] = 49152 + j; d[49152 + j] = D[192][j];}\nD[193] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿�\".split(\"\");\nfor(j = 0; j != D[193].length; ++j) if(D[193][j].charCodeAt(0) !== 0xFFFD) { e[D[193][j]] = 49408 + j; d[49408 + j] = D[193][j];}\nD[194] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫�\".split(\"\");\nfor(j = 0; j != D[194].length; ++j) if(D[194][j].charCodeAt(0) !== 0xFFFD) { e[D[194][j]] = 49664 + j; d[49664 + j] = D[194][j];}\nD[195] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸�\".split(\"\");\nfor(j = 0; j != D[195].length; ++j) if(D[195][j].charCodeAt(0) !== 0xFFFD) { e[D[195][j]] = 49920 + j; d[49920 + j] = D[195][j];}\nD[196] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁�\".split(\"\");\nfor(j = 0; j != D[196].length; ++j) if(D[196][j].charCodeAt(0) !== 0xFFFD) { e[D[196][j]] = 50176 + j; d[50176 + j] = D[196][j];}\nD[197] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗�\".split(\"\");\nfor(j = 0; j != D[197].length; ++j) if(D[197][j].charCodeAt(0) !== 0xFFFD) { e[D[197][j]] = 50432 + j; d[50432 + j] = D[197][j];}\nD[198] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐�\".split(\"\");\nfor(j = 0; j != D[198].length; ++j) if(D[198][j].charCodeAt(0) !== 0xFFFD) { e[D[198][j]] = 50688 + j; d[50688 + j] = D[198][j];}\nD[199] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠�\".split(\"\");\nfor(j = 0; j != D[199].length; ++j) if(D[199][j].charCodeAt(0) !== 0xFFFD) { e[D[199][j]] = 50944 + j; d[50944 + j] = D[199][j];}\nD[200] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁�\".split(\"\");\nfor(j = 0; j != D[200].length; ++j) if(D[200][j].charCodeAt(0) !== 0xFFFD) { e[D[200][j]] = 51200 + j; d[51200 + j] = D[200][j];}\nD[201] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳�\".split(\"\");\nfor(j = 0; j != D[201].length; ++j) if(D[201][j].charCodeAt(0) !== 0xFFFD) { e[D[201][j]] = 51456 + j; d[51456 + j] = D[201][j];}\nD[202] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱�\".split(\"\");\nfor(j = 0; j != D[202].length; ++j) if(D[202][j].charCodeAt(0) !== 0xFFFD) { e[D[202][j]] = 51712 + j; d[51712 + j] = D[202][j];}\nD[203] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔�\".split(\"\");\nfor(j = 0; j != D[203].length; ++j) if(D[203][j].charCodeAt(0) !== 0xFFFD) { e[D[203][j]] = 51968 + j; d[51968 + j] = D[203][j];}\nD[204] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃�\".split(\"\");\nfor(j = 0; j != D[204].length; ++j) if(D[204][j].charCodeAt(0) !== 0xFFFD) { e[D[204][j]] = 52224 + j; d[52224 + j] = D[204][j];}\nD[205] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威�\".split(\"\");\nfor(j = 0; j != D[205].length; ++j) if(D[205][j].charCodeAt(0) !== 0xFFFD) { e[D[205][j]] = 52480 + j; d[52480 + j] = D[205][j];}\nD[206] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺�\".split(\"\");\nfor(j = 0; j != D[206].length; ++j) if(D[206][j].charCodeAt(0) !== 0xFFFD) { e[D[206][j]] = 52736 + j; d[52736 + j] = D[206][j];}\nD[207] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓�\".split(\"\");\nfor(j = 0; j != D[207].length; ++j) if(D[207][j].charCodeAt(0) !== 0xFFFD) { e[D[207][j]] = 52992 + j; d[52992 + j] = D[207][j];}\nD[208] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄�\".split(\"\");\nfor(j = 0; j != D[208].length; ++j) if(D[208][j].charCodeAt(0) !== 0xFFFD) { e[D[208][j]] = 53248 + j; d[53248 + j] = D[208][j];}\nD[209] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶�\".split(\"\");\nfor(j = 0; j != D[209].length; ++j) if(D[209][j].charCodeAt(0) !== 0xFFFD) { e[D[209][j]] = 53504 + j; d[53504 + j] = D[209][j];}\nD[210] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐�\".split(\"\");\nfor(j = 0; j != D[210].length; ++j) if(D[210][j].charCodeAt(0) !== 0xFFFD) { e[D[210][j]] = 53760 + j; d[53760 + j] = D[210][j];}\nD[211] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉�\".split(\"\");\nfor(j = 0; j != D[211].length; ++j) if(D[211][j].charCodeAt(0) !== 0xFFFD) { e[D[211][j]] = 54016 + j; d[54016 + j] = D[211][j];}\nD[212] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧�\".split(\"\");\nfor(j = 0; j != D[212].length; ++j) if(D[212][j].charCodeAt(0) !== 0xFFFD) { e[D[212][j]] = 54272 + j; d[54272 + j] = D[212][j];}\nD[213] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政�\".split(\"\");\nfor(j = 0; j != D[213].length; ++j) if(D[213][j].charCodeAt(0) !== 0xFFFD) { e[D[213][j]] = 54528 + j; d[54528 + j] = D[213][j];}\nD[214] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑�\".split(\"\");\nfor(j = 0; j != D[214].length; ++j) if(D[214][j].charCodeAt(0) !== 0xFFFD) { e[D[214][j]] = 54784 + j; d[54784 + j] = D[214][j];}\nD[215] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座������\".split(\"\");\nfor(j = 0; j != D[215].length; ++j) if(D[215][j].charCodeAt(0) !== 0xFFFD) { e[D[215][j]] = 55040 + j; d[55040 + j] = D[215][j];}\nD[216] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝�\".split(\"\");\nfor(j = 0; j != D[216].length; ++j) if(D[216][j].charCodeAt(0) !== 0xFFFD) { e[D[216][j]] = 55296 + j; d[55296 + j] = D[216][j];}\nD[217] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼�\".split(\"\");\nfor(j = 0; j != D[217].length; ++j) if(D[217][j].charCodeAt(0) !== 0xFFFD) { e[D[217][j]] = 55552 + j; d[55552 + j] = D[217][j];}\nD[218] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�\".split(\"\");\nfor(j = 0; j != D[218].length; ++j) if(D[218][j].charCodeAt(0) !== 0xFFFD) { e[D[218][j]] = 55808 + j; d[55808 + j] = D[218][j];}\nD[219] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝�\".split(\"\");\nfor(j = 0; j != D[219].length; ++j) if(D[219][j].charCodeAt(0) !== 0xFFFD) { e[D[219][j]] = 56064 + j; d[56064 + j] = D[219][j];}\nD[220] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�\".split(\"\");\nfor(j = 0; j != D[220].length; ++j) if(D[220][j].charCodeAt(0) !== 0xFFFD) { e[D[220][j]] = 56320 + j; d[56320 + j] = D[220][j];}\nD[221] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺�\".split(\"\");\nfor(j = 0; j != D[221].length; ++j) if(D[221][j].charCodeAt(0) !== 0xFFFD) { e[D[221][j]] = 56576 + j; d[56576 + j] = D[221][j];}\nD[222] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�\".split(\"\");\nfor(j = 0; j != D[222].length; ++j) if(D[222][j].charCodeAt(0) !== 0xFFFD) { e[D[222][j]] = 56832 + j; d[56832 + j] = D[222][j];}\nD[223] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�\".split(\"\");\nfor(j = 0; j != D[223].length; ++j) if(D[223][j].charCodeAt(0) !== 0xFFFD) { e[D[223][j]] = 57088 + j; d[57088 + j] = D[223][j];}\nD[224] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹�\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[235] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�\".split(\"\");\nfor(j = 0; j != D[235].length; ++j) if(D[235][j].charCodeAt(0) !== 0xFFFD) { e[D[235][j]] = 60160 + j; d[60160 + j] = D[235][j];}\nD[236] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�\".split(\"\");\nfor(j = 0; j != D[236].length; ++j) if(D[236][j].charCodeAt(0) !== 0xFFFD) { e[D[236][j]] = 60416 + j; d[60416 + j] = D[236][j];}\nD[237] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[239] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�\".split(\"\");\nfor(j = 0; j != D[239].length; ++j) if(D[239][j].charCodeAt(0) !== 0xFFFD) { e[D[239][j]] = 61184 + j; d[61184 + j] = D[239][j];}\nD[240] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�\".split(\"\");\nfor(j = 0; j != D[240].length; ++j) if(D[240][j].charCodeAt(0) !== 0xFFFD) { e[D[240][j]] = 61440 + j; d[61440 + j] = D[240][j];}\nD[241] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�\".split(\"\");\nfor(j = 0; j != D[241].length; ++j) if(D[241][j].charCodeAt(0) !== 0xFFFD) { e[D[241][j]] = 61696 + j; d[61696 + j] = D[241][j];}\nD[242] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�\".split(\"\");\nfor(j = 0; j != D[242].length; ++j) if(D[242][j].charCodeAt(0) !== 0xFFFD) { e[D[242][j]] = 61952 + j; d[61952 + j] = D[242][j];}\nD[243] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�\".split(\"\");\nfor(j = 0; j != D[243].length; ++j) if(D[243][j].charCodeAt(0) !== 0xFFFD) { e[D[243][j]] = 62208 + j; d[62208 + j] = D[243][j];}\nD[244] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤�\".split(\"\");\nfor(j = 0; j != D[244].length; ++j) if(D[244][j].charCodeAt(0) !== 0xFFFD) { e[D[244][j]] = 62464 + j; d[62464 + j] = D[244][j];}\nD[245] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�\".split(\"\");\nfor(j = 0; j != D[245].length; ++j) if(D[245][j].charCodeAt(0) !== 0xFFFD) { e[D[245][j]] = 62720 + j; d[62720 + j] = D[245][j];}\nD[246] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋�\".split(\"\");\nfor(j = 0; j != D[246].length; ++j) if(D[246][j].charCodeAt(0) !== 0xFFFD) { e[D[246][j]] = 62976 + j; d[62976 + j] = D[246][j];}\nD[247] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�\".split(\"\");\nfor(j = 0; j != D[247].length; ++j) if(D[247][j].charCodeAt(0) !== 0xFFFD) { e[D[247][j]] = 63232 + j; d[63232 + j] = D[247][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[10029] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄĀāÉĄÖÜáąČäčĆćéŹźĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņŃ¬√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10079] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10081] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\n// eslint-disable-next-line no-undef\nif (typeof module !== 'undefined' && module.exports && typeof DO_NOT_EXPORT_CODEPAGE === 'undefined') module.exports = cptable;\n/* cputils.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ft=javascript: */\n/*jshint newcap: false */\n(function(root, factory) {\n  /*jshint ignore:start */\n  /*eslint-disable */\n  \"use strict\";\n  if(typeof cptable === \"undefined\") {\n    if(typeof require !== \"undefined\"){\n      var cpt = cptable;\n      if (typeof module !== 'undefined' && module.exports && typeof DO_NOT_EXPORT_CODEPAGE === 'undefined') module.exports = factory(cpt);\n      else root.cptable = factory(cpt);\n    } else throw new Error(\"cptable not found\");\n  } else cptable = factory(cptable);\n  /*eslint-enable */\n  /*jshint ignore:end */\n}(this, function(cpt){\n  \"use strict\";\n  /*global module, Buffer */\n  var magic = {\n    \"1200\":\"utf16le\",\n    \"1201\":\"utf16be\",\n    \"12000\":\"utf32le\",\n    \"12001\":\"utf32be\",\n    \"16969\":\"utf64le\",\n    \"20127\":\"ascii\",\n    \"65000\":\"utf7\",\n    \"65001\":\"utf8\"\n  };\n\n  var sbcs_cache = [874,1250,1251,1252,1253,1254,1255,1256,10000];\n  var dbcs_cache = [932,936,949,950];\n  var magic_cache = [65001];\n  var magic_decode = {};\n  var magic_encode = {};\n  var cpdcache = {};\n  var cpecache = {};\n\n  var sfcc = function sfcc(x) { return String.fromCharCode(x); };\n  var cca = function cca(x) { return x.charCodeAt(0); };\n\n  var has_buf = (typeof Buffer !== 'undefined');\n  var Buffer_from = function(){};\n  if(has_buf) {\n    var nbfs = !Buffer.from;\n    if(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n    Buffer_from = nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n    // $FlowIgnore\n    if(!Buffer.allocUnsafe) Buffer.allocUnsafe = function(n) { return new Buffer(n); };\n\n    var mdl = 1024, mdb = Buffer.allocUnsafe(mdl);\n    var make_EE = function make_EE(E){\n      var EE = Buffer.allocUnsafe(65536);\n      for(var i = 0; i < 65536;++i) EE[i] = 0;\n      var keys = Object.keys(E), len = keys.length;\n      for(var ee = 0, e = keys[ee]; ee < len; ++ee) {\n        if(!(e = keys[ee])) continue;\n        EE[e.charCodeAt(0)] = E[e];\n      }\n      return EE;\n    };\n    var sbcs_encode = function make_sbcs_encode(cp) {\n      var EE = make_EE(cpt[cp].enc);\n      return function sbcs_e(data, ofmt) {\n        var len = data.length;\n        var out, i=0, j=0, D=0, w=0;\n        if(typeof data === 'string') {\n          out = Buffer.allocUnsafe(len);\n          for(i = 0; i < len; ++i) out[i] = EE[data.charCodeAt(i)];\n        } else if(Buffer.isBuffer(data)) {\n          out = Buffer.allocUnsafe(2*len);\n          j = 0;\n          for(i = 0; i < len; ++i) {\n            D = data[i];\n            if(D < 128) out[j++] = EE[D];\n            else if(D < 224) { out[j++] = EE[((D&31)<<6)+(data[i+1]&63)]; ++i; }\n            else if(D < 240) { out[j++] = EE[((D&15)<<12)+((data[i+1]&63)<<6)+(data[i+2]&63)]; i+=2; }\n            else {\n              w = ((D&7)<<18)+((data[i+1]&63)<<12)+((data[i+2]&63)<<6)+(data[i+3]&63); i+=3;\n              if(w < 65536) out[j++] = EE[w];\n              else { w -= 65536; out[j++] = EE[0xD800 + ((w>>10)&1023)]; out[j++] = EE[0xDC00 + (w&1023)]; }\n            }\n          }\n          out = out.slice(0,j);\n        } else {\n          out = Buffer.allocUnsafe(len);\n          for(i = 0; i < len; ++i) out[i] = EE[data[i].charCodeAt(0)];\n        }\n        if(!ofmt || ofmt === 'buf') return out;\n        if(ofmt !== 'arr') return out.toString('binary');\n        return [].slice.call(out);\n      };\n    };\n    var sbcs_decode = function make_sbcs_decode(cp) {\n      var D = cpt[cp].dec;\n      var DD = Buffer.allocUnsafe(131072), d=0, c=\"\";\n      for(d=0;d<D.length;++d) {\n        if(!(c=D[d])) continue;\n        var w = c.charCodeAt(0);\n        DD[2*d] = w&255; DD[2*d+1] = w>>8;\n      }\n      return function sbcs_d(data) {\n        var len = data.length, i=0, j=0;\n        if(2 * len > mdl) { mdl = 2 * len; mdb = Buffer.allocUnsafe(mdl); }\n        if(Buffer.isBuffer(data)) {\n          for(i = 0; i < len; i++) {\n            j = 2*data[i];\n            mdb[2*i] = DD[j]; mdb[2*i+1] = DD[j+1];\n          }\n        } else if(typeof data === \"string\") {\n          for(i = 0; i < len; i++) {\n            j = 2*data.charCodeAt(i);\n            mdb[2*i] = DD[j]; mdb[2*i+1] = DD[j+1];\n          }\n        } else {\n          for(i = 0; i < len; i++) {\n            j = 2*data[i];\n            mdb[2*i] = DD[j]; mdb[2*i+1] = DD[j+1];\n          }\n        }\n        return mdb.slice(0, 2 * len).toString('ucs2');\n      };\n    };\n    var dbcs_encode = function make_dbcs_encode(cp) {\n      var E = cpt[cp].enc;\n      var EE = Buffer.allocUnsafe(131072);\n      for(var i = 0; i < 131072; ++i) EE[i] = 0;\n      var keys = Object.keys(E);\n      for(var ee = 0, e = keys[ee]; ee < keys.length; ++ee) {\n        if(!(e = keys[ee])) continue;\n        var f = e.charCodeAt(0);\n        EE[2*f] = E[e] & 255; EE[2*f+1] = E[e]>>8;\n      }\n      return function dbcs_e(data, ofmt) {\n        var len = data.length, out = Buffer.allocUnsafe(2*len), i=0, j=0, jj=0, k=0, D=0;\n        if(typeof data === 'string') {\n          for(i = k = 0; i < len; ++i) {\n            j = data.charCodeAt(i)*2;\n            out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];\n          }\n          out = out.slice(0,k);\n        } else if(Buffer.isBuffer(data)) {\n          for(i = k = 0; i < len; ++i) {\n            D = data[i];\n            if(D < 128) j = D;\n            else if(D < 224) { j = ((D&31)<<6)+(data[i+1]&63); ++i; }\n            else if(D < 240) { j = ((D&15)<<12)+((data[i+1]&63)<<6)+(data[i+2]&63); i+=2; }\n            else { j = ((D&7)<<18)+((data[i+1]&63)<<12)+((data[i+2]&63)<<6)+(data[i+3]&63); i+=3; }\n            if(j<65536) { j*=2; out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j]; }\n            else { jj = j-65536;\n              j=2*(0xD800 + ((jj>>10)&1023)); out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];\n              j=2*(0xDC00 + (jj&1023)); out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];\n            }\n          }\n          out = out.slice(0,k);\n        } else {\n          for(i = k = 0; i < len; i++) {\n            j = data[i].charCodeAt(0)*2;\n            out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];\n          }\n        }\n        if(!ofmt || ofmt === 'buf') return out;\n        if(ofmt !== 'arr') return out.toString('binary');\n        return [].slice.call(out);\n      };\n    };\n    var dbcs_decode = function make_dbcs_decode(cp) {\n      var D = cpt[cp].dec;\n      var DD = Buffer.allocUnsafe(131072), d=0, c, w=0, j=0, i=0;\n      for(i = 0; i < 65536; ++i) { DD[2*i] = 0xFF; DD[2*i+1] = 0xFD;}\n      for(d = 0; d < D.length; ++d) {\n        if(!(c=D[d])) continue;\n        w = c.charCodeAt(0);\n        j = 2*d;\n        DD[j] = w&255; DD[j+1] = w>>8;\n      }\n      return function dbcs_d(data) {\n        var len = data.length, out = Buffer.allocUnsafe(2*len), i=0, j=0, k=0;\n        if(Buffer.isBuffer(data)) {\n          for(i = 0; i < len; i++) {\n            j = 2*data[i];\n            if(DD[j]===0xFF && DD[j+1]===0xFD) { j=2*((data[i]<<8)+data[i+1]); ++i; }\n            out[k++] = DD[j]; out[k++] = DD[j+1];\n          }\n        } else if(typeof data === \"string\") {\n          for(i = 0; i < len; i++) {\n            j = 2*data.charCodeAt(i);\n            if(DD[j]===0xFF && DD[j+1]===0xFD) { j=2*((data.charCodeAt(i)<<8)+data.charCodeAt(i+1)); ++i; }\n            out[k++] = DD[j]; out[k++] = DD[j+1];\n          }\n        } else {\n          for(i = 0; i < len; i++) {\n            j = 2*data[i];\n            if(DD[j]===0xFF && DD[j+1]===0xFD) { j=2*((data[i]<<8)+data[i+1]); ++i; }\n            out[k++] = DD[j]; out[k++] = DD[j+1];\n          }\n        }\n        return out.slice(0,k).toString('ucs2');\n      };\n    };\n    magic_decode[65001] = function utf8_d(data) {\n      if(typeof data === \"string\") return utf8_d(data.split(\"\").map(cca));\n      var len = data.length, w = 0, ww = 0;\n      if(4 * len > mdl) { mdl = 4 * len; mdb = Buffer.allocUnsafe(mdl); }\n      var i = 0;\n      if(len >= 3 && data[0] == 0xEF) if(data[1] == 0xBB && data[2] == 0xBF) i = 3;\n      for(var j = 1, k = 0, D = 0; i < len; i+=j) {\n        j = 1; D = data[i];\n        if(D < 128) w = D;\n        else if(D < 224) { w=(D&31)*64+(data[i+1]&63); j=2; }\n        else if(D < 240) { w=((D&15)<<12)+(data[i+1]&63)*64+(data[i+2]&63); j=3; }\n        else { w=(D&7)*262144+((data[i+1]&63)<<12)+(data[i+2]&63)*64+(data[i+3]&63); j=4; }\n        if(w < 65536) { mdb[k++] = w&255; mdb[k++] = w>>8; }\n        else {\n          w -= 65536; ww = 0xD800 + ((w>>10)&1023); w = 0xDC00 + (w&1023);\n          mdb[k++] = ww&255; mdb[k++] = ww>>>8; mdb[k++] = w&255; mdb[k++] = (w>>>8)&255;\n        }\n      }\n      return mdb.slice(0,k).toString('ucs2');\n    };\n    magic_encode[65001] = function utf8_e(data, ofmt) {\n      if(has_buf && Buffer.isBuffer(data)) {\n        if(!ofmt || ofmt === 'buf') return data;\n        if(ofmt !== 'arr') return data.toString('binary');\n        return [].slice.call(data);\n      }\n      var len = data.length, w = 0, ww = 0, j = 0;\n      var direct = typeof data === \"string\";\n      if(4 * len > mdl) { mdl = 4 * len; mdb = Buffer.allocUnsafe(mdl); }\n      for(var i = 0; i < len; ++i) {\n        w = direct ? data.charCodeAt(i) : data[i].charCodeAt(0);\n        if(w <= 0x007F) mdb[j++] = w;\n        else if(w <= 0x07FF) {\n          mdb[j++] = 192 + (w >> 6);\n          mdb[j++] = 128 + (w&63);\n        } else if(w >= 0xD800 && w <= 0xDFFF) {\n          w -= 0xD800; ++i;\n          ww = (direct ? data.charCodeAt(i) : data[i].charCodeAt(0)) - 0xDC00 + (w << 10);\n          mdb[j++] = 240 + ((ww>>>18) & 0x07);\n          mdb[j++] = 144 + ((ww>>>12) & 0x3F);\n          mdb[j++] = 128 + ((ww>>>6) & 0x3F);\n          mdb[j++] = 128 + (ww & 0x3F);\n        } else {\n          mdb[j++] = 224 + (w >> 12);\n          mdb[j++] = 128 + ((w >> 6)&63);\n          mdb[j++] = 128 + (w&63);\n        }\n      }\n      if(!ofmt || ofmt === 'buf') return mdb.slice(0,j);\n      if(ofmt !== 'arr') return mdb.slice(0,j).toString('binary');\n      return [].slice.call(mdb, 0, j);\n    };\n  }\n\n  var encache = function encache() {\n    if(has_buf) {\n      if(cpdcache[sbcs_cache[0]]) return;\n      var i=0, s=0;\n      for(i = 0; i < sbcs_cache.length; ++i) {\n        s = sbcs_cache[i];\n        if(cpt[s]) {\n          cpdcache[s] = sbcs_decode(s);\n          cpecache[s] = sbcs_encode(s);\n        }\n      }\n      for(i = 0; i < dbcs_cache.length; ++i) {\n        s = dbcs_cache[i];\n        if(cpt[s]) {\n          cpdcache[s] = dbcs_decode(s);\n          cpecache[s] = dbcs_encode(s);\n        }\n      }\n      for(i = 0; i < magic_cache.length; ++i) {\n        s = magic_cache[i];\n        if(magic_decode[s]) cpdcache[s] = magic_decode[s];\n        if(magic_encode[s]) cpecache[s] = magic_encode[s];\n      }\n    }\n  };\n  var null_enc = function(data, ofmt) { void ofmt; return \"\"; };\n  var cp_decache = function cp_decache(cp) { delete cpdcache[cp]; delete cpecache[cp]; };\n  var decache = function decache() {\n    if(has_buf) {\n      if(!cpdcache[sbcs_cache[0]]) return;\n      sbcs_cache.forEach(cp_decache);\n      dbcs_cache.forEach(cp_decache);\n      magic_cache.forEach(cp_decache);\n    }\n    last_enc = null_enc; last_cp = 0;\n  };\n  var cache = {\n    encache: encache,\n    decache: decache,\n    sbcs: sbcs_cache,\n    dbcs: dbcs_cache\n  };\n\n  encache();\n\n  var BM = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n  var SetD = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?\";\n  var last_enc = null_enc, last_cp = 0;\n  var encode = function encode(cp, data, ofmt) {\n    if(cp === last_cp && last_enc) { return last_enc(data, ofmt); }\n    if(cpecache[cp]) { last_enc = cpecache[last_cp=cp]; return last_enc(data, ofmt); }\n    if(has_buf && Buffer.isBuffer(data)) data = data.toString('utf8');\n    var len = data.length;\n    var out = has_buf ? Buffer.allocUnsafe(4*len) : [], w=0, i=0, j = 0, ww=0;\n    var C = cpt[cp], E, M = \"\";\n    var isstr = typeof data === 'string';\n    if(C && (E=C.enc)) for(i = 0; i < len; ++i, ++j) {\n      w = E[isstr? data.charAt(i) : data[i]];\n      if(w > 255) {\n        out[j] = w>>8;\n        out[++j] = w&255;\n      } else out[j] = w&255;\n    }\n    else if((M=magic[cp])) switch(M) {\n      case \"utf8\":\n        if(has_buf && isstr) { out = Buffer_from(data, M); j = out.length; break; }\n        for(i = 0; i < len; ++i, ++j) {\n          w = isstr ? data.charCodeAt(i) : data[i].charCodeAt(0);\n          if(w <= 0x007F) out[j] = w;\n          else if(w <= 0x07FF) {\n            out[j]   = 192 + (w >> 6);\n            out[++j] = 128 + (w&63);\n          } else if(w >= 0xD800 && w <= 0xDFFF) {\n            w -= 0xD800;\n            ww = (isstr ? data.charCodeAt(++i) : data[++i].charCodeAt(0)) - 0xDC00 + (w << 10);\n            out[j]   = 240 + ((ww>>>18) & 0x07);\n            out[++j] = 144 + ((ww>>>12) & 0x3F);\n            out[++j] = 128 + ((ww>>>6) & 0x3F);\n            out[++j] = 128 + (ww & 0x3F);\n          } else {\n            out[j]   = 224 + (w >> 12);\n            out[++j] = 128 + ((w >> 6)&63);\n            out[++j] = 128 + (w&63);\n          }\n        }\n        break;\n      case \"ascii\":\n        if(has_buf && typeof data === \"string\") { out = Buffer_from(data, M); j = out.length; break; }\n        for(i = 0; i < len; ++i, ++j) {\n          w = isstr ? data.charCodeAt(i) : data[i].charCodeAt(0);\n          if(w <= 0x007F) out[j] = w;\n          else throw new Error(\"bad ascii \" + w);\n        }\n        break;\n      case \"utf16le\":\n        if(has_buf && typeof data === \"string\") { out = Buffer_from(data, M); j = out.length; break; }\n        for(i = 0; i < len; ++i) {\n          w = isstr ? data.charCodeAt(i) : data[i].charCodeAt(0);\n          out[j++] = w&255;\n          out[j++] = w>>8;\n        }\n        break;\n      case \"utf16be\":\n        for(i = 0; i < len; ++i) {\n          w = isstr ? data.charCodeAt(i) : data[i].charCodeAt(0);\n          out[j++] = w>>8;\n          out[j++] = w&255;\n        }\n        break;\n      case \"utf32le\":\n        for(i = 0; i < len; ++i) {\n          w = isstr ? data.charCodeAt(i) : data[i].charCodeAt(0);\n          if(w >= 0xD800 && w <= 0xDFFF) w = 0x10000 + ((w - 0xD800) << 10) + (data[++i].charCodeAt(0) - 0xDC00);\n          out[j++] = w&255; w >>= 8;\n          out[j++] = w&255; w >>= 8;\n          out[j++] = w&255; w >>= 8;\n          out[j++] = w&255;\n        }\n        break;\n      case \"utf32be\":\n        for(i = 0; i < len; ++i) {\n          w = isstr ? data.charCodeAt(i) : data[i].charCodeAt(0);\n          if(w >= 0xD800 && w <= 0xDFFF) w = 0x10000 + ((w - 0xD800) << 10) + (data[++i].charCodeAt(0) - 0xDC00);\n          out[j+3] = w&255; w >>= 8;\n          out[j+2] = w&255; w >>= 8;\n          out[j+1] = w&255; w >>= 8;\n          out[j] = w&255;\n          j+=4;\n        }\n        break;\n      case \"utf7\":\n        for(i = 0; i < len; i++) {\n          var c = isstr ? data.charAt(i) : data[i].charAt(0);\n          if(c === \"+\") { out[j++] = 0x2b; out[j++] = 0x2d; continue; }\n          if(SetD.indexOf(c) > -1) { out[j++] = c.charCodeAt(0); continue; }\n          var tt = encode(1201, c);\n          out[j++] = 0x2b;\n          out[j++] = BM.charCodeAt(tt[0]>>2);\n          out[j++] = BM.charCodeAt(((tt[0]&0x03)<<4) + ((tt[1]||0)>>4));\n          out[j++] = BM.charCodeAt(((tt[1]&0x0F)<<2) + ((tt[2]||0)>>6));\n          out[j++] = 0x2d;\n        }\n        break;\n      default: throw new Error(\"Unsupported magic: \" + cp + \" \" + magic[cp]);\n    }\n    else throw new Error(\"Unrecognized CP: \" + cp);\n    out = out.slice(0,j);\n    if(!has_buf) return (ofmt == 'str') ? (out).map(sfcc).join(\"\") : out;\n    if(!ofmt || ofmt === 'buf') return out;\n    if(ofmt !== 'arr') return out.toString('binary');\n    return [].slice.call(out);\n  };\n  var decode = function decode(cp, data) {\n    var F; if((F=cpdcache[cp])) return F(data);\n    if(typeof data === \"string\") return decode(cp, data.split(\"\").map(cca));\n    var len = data.length, out = new Array(len), s=\"\", w=0, i=0, j=1, k=0, ww=0;\n    var C = cpt[cp], D, M=\"\";\n    if(C && (D=C.dec)) {\n      for(i = 0; i < len; i+=j) {\n        j = 2;\n        s = D[(data[i]<<8)+ data[i+1]];\n        if(!s) {\n          j = 1;\n          s = D[data[i]];\n        }\n        if(!s) throw new Error('Unrecognized code: ' + data[i] + ' ' + data[i+j-1] + ' ' + i + ' ' + j + ' ' + D[data[i]]);\n        out[k++] = s;\n      }\n    }\n    else if((M=magic[cp])) switch(M) {\n      case \"utf8\":\n        if(len >= 3 && data[0] == 0xEF) if(data[1] == 0xBB && data[2] == 0xBF) i = 3;\n        for(; i < len; i+=j) {\n          j = 1;\n          if(data[i] < 128) w = data[i];\n          else if(data[i] < 224) { w=(data[i]&31)*64+(data[i+1]&63); j=2; }\n          else if(data[i] < 240) { w=((data[i]&15)<<12)+(data[i+1]&63)*64+(data[i+2]&63); j=3; }\n          else { w=(data[i]&7)*262144+((data[i+1]&63)<<12)+(data[i+2]&63)*64+(data[i+3]&63); j=4; }\n          if(w < 65536) { out[k++] = String.fromCharCode(w); }\n          else {\n            w -= 65536; ww = 0xD800 + ((w>>10)&1023); w = 0xDC00 + (w&1023);\n            out[k++] = String.fromCharCode(ww); out[k++] = String.fromCharCode(w);\n          }\n        }\n        break;\n      case \"ascii\":\n        if(has_buf && Buffer.isBuffer(data)) return data.toString(M);\n        for(i = 0; i < len; i++) out[i] = String.fromCharCode(data[i]);\n        k = len; break;\n      case \"utf16le\":\n        if(len >= 2 && data[0] == 0xFF) if(data[1] == 0xFE) i = 2;\n        if(has_buf && Buffer.isBuffer(data)) return data.toString(M);\n        j = 2;\n        for(; i+1 < len; i+=j) {\n          out[k++] = String.fromCharCode((data[i+1]<<8) + data[i]);\n        }\n        break;\n      case \"utf16be\":\n        if(len >= 2 && data[0] == 0xFE) if(data[1] == 0xFF) i = 2;\n        j = 2;\n        for(; i+1 < len; i+=j) {\n          out[k++] = String.fromCharCode((data[i]<<8) + data[i+1]);\n        }\n        break;\n      case \"utf32le\":\n        if(len >= 4 && data[0] == 0xFF) if(data[1] == 0xFE && data[2] === 0 && data[3] === 0) i = 4;\n        j = 4;\n        for(; i < len; i+=j) {\n          w = (data[i+3]<<24) + (data[i+2]<<16) + (data[i+1]<<8) + (data[i]);\n          if(w > 0xFFFF) {\n            w -= 0x10000;\n            out[k++] = String.fromCharCode(0xD800 + ((w >> 10) & 0x3FF));\n            out[k++] = String.fromCharCode(0xDC00 + (w & 0x3FF));\n          }\n          else out[k++] = String.fromCharCode(w);\n        }\n        break;\n      case \"utf32be\":\n        if(len >= 4 && data[3] == 0xFF) if(data[2] == 0xFE && data[1] === 0 && data[0] === 0) i = 4;\n        j = 4;\n        for(; i < len; i+=j) {\n          w = (data[i]<<24) + (data[i+1]<<16) + (data[i+2]<<8) + (data[i+3]);\n          if(w > 0xFFFF) {\n            w -= 0x10000;\n            out[k++] = String.fromCharCode(0xD800 + ((w >> 10) & 0x3FF));\n            out[k++] = String.fromCharCode(0xDC00 + (w & 0x3FF));\n          }\n          else out[k++] = String.fromCharCode(w);\n        }\n        break;\n      case \"utf7\":\n        if(len >= 4 && data[0] == 0x2B && data[1] == 0x2F && data[2] == 0x76) {\n          if(len >= 5 && data[3] == 0x38 && data[4] == 0x2D) i = 5;\n          else if(data[3] == 0x38 || data[3] == 0x39 || data[3] == 0x2B || data[3] == 0x2F) i = 4;\n        }\n        for(; i < len; i+=j) {\n          if(data[i] !== 0x2b) { j=1; out[k++] = String.fromCharCode(data[i]); continue; }\n          j=1;\n          if(data[i+1] === 0x2d) { j = 2; out[k++] = \"+\"; continue; }\n          // eslint-disable-next-line no-useless-escape\n          while(String.fromCharCode(data[i+j]).match(/[A-Za-z0-9+\\/]/)) j++;\n          var dash = 0;\n          if(data[i+j] === 0x2d) { ++j; dash=1; }\n          var tt = [];\n          var o64 = \"\";\n          var c1=0, c2=0, c3=0;\n          var e1=0, e2=0, e3=0, e4=0;\n          for(var l = 1; l < j - dash;) {\n            e1 = BM.indexOf(String.fromCharCode(data[i+l++]));\n            e2 = BM.indexOf(String.fromCharCode(data[i+l++]));\n            c1 = e1 << 2 | e2 >> 4;\n            tt.push(c1);\n            e3 = BM.indexOf(String.fromCharCode(data[i+l++]));\n            if(e3 === -1) break;\n            c2 = (e2 & 15) << 4 | e3 >> 2;\n            tt.push(c2);\n            e4 = BM.indexOf(String.fromCharCode(data[i+l++]));\n            if(e4 === -1) break;\n            c3 = (e3 & 3) << 6 | e4;\n            if(e4 < 64) tt.push(c3);\n          }\n          o64 = decode(1201, tt);\n          for(l = 0; l < o64.length; ++l) out[k++] = o64.charAt(l);\n        }\n        break;\n      default: throw new Error(\"Unsupported magic: \" + cp + \" \" + magic[cp]);\n    }\n    else throw new Error(\"Unrecognized CP: \" + cp);\n    return out.slice(0,k).join(\"\");\n  };\n  var hascp = function hascp(cp) { return !!(cpt[cp] || magic[cp]); };\n  cpt.utils = { decode: decode, encode: encode, hascp: hascp, magic: magic, cache:cache };\n  return cpt;\n}));\n","/*\n\nJSZip - A Javascript class for generating and reading zip files\n<http://stuartk.com/jszip>\n\n(c) 2009-2014 Stuart Knightley <stuart [at] stuartk.com>\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/master/LICENSE\n\nNote: since JSZip 3 removed critical functionality, this version assigns to the\n`JSZipSync` variable.  Another JSZip version can be loaded in parallel.\n*/\n(function(e){\n\tif(\"object\"==typeof exports&&\"undefined\"!=typeof module&&\"undefined\"==typeof DO_NOT_EXPORT_JSZIP)module.exports=e();\n\telse if(\"function\"==typeof define&&define.amd&&\"undefined\"==typeof DO_NOT_EXPORT_JSZIP){JSZipSync=e();define([],e);}\n\telse{\n\t\tvar f;\n\t\t\"undefined\"!=typeof globalThis?f=globalThis:\n\t\t\"undefined\"!=typeof window?f=window:\n\t\t\"undefined\"!=typeof global?f=global:\n\t\t\"undefined\"!=typeof $ && $.global?f=$.global:\n\t\t\"undefined\"!=typeof self&&(f=self),f.JSZipSync=e()\n\t}\n}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error(\"Cannot find module '\"+o+\"'\")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){\n'use strict';\n// private property\nvar _keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\n\n// public method for encoding\nexports.encode = function(input, utf8) {\n    var output = \"\";\n    var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\n    var i = 0;\n\n    while (i < input.length) {\n\n        chr1 = input.charCodeAt(i++);\n        chr2 = input.charCodeAt(i++);\n        chr3 = input.charCodeAt(i++);\n\n        enc1 = chr1 >> 2;\n        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n        enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n        enc4 = chr3 & 63;\n\n        if (isNaN(chr2)) {\n            enc3 = enc4 = 64;\n        }\n        else if (isNaN(chr3)) {\n            enc4 = 64;\n        }\n\n        output = output + _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4);\n\n    }\n\n    return output;\n};\n\n// public method for decoding\nexports.decode = function(input, utf8) {\n    var output = \"\";\n    var chr1, chr2, chr3;\n    var enc1, enc2, enc3, enc4;\n    var i = 0;\n\n    input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\n\n    while (i < input.length) {\n\n        enc1 = _keyStr.indexOf(input.charAt(i++));\n        enc2 = _keyStr.indexOf(input.charAt(i++));\n        enc3 = _keyStr.indexOf(input.charAt(i++));\n        enc4 = _keyStr.indexOf(input.charAt(i++));\n\n        chr1 = (enc1 << 2) | (enc2 >> 4);\n        chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n        chr3 = ((enc3 & 3) << 6) | enc4;\n\n        output = output + String.fromCharCode(chr1);\n\n        if (enc3 != 64) {\n            output = output + String.fromCharCode(chr2);\n        }\n        if (enc4 != 64) {\n            output = output + String.fromCharCode(chr3);\n        }\n\n    }\n\n    return output;\n\n};\n\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nfunction CompressedObject() {\n    this.compressedSize = 0;\n    this.uncompressedSize = 0;\n    this.crc32 = 0;\n    this.compressionMethod = null;\n    this.compressedContent = null;\n}\n\nCompressedObject.prototype = {\n    /**\n     * Return the decompressed content in an unspecified format.\n     * The format will depend on the decompressor.\n     * @return {Object} the decompressed content.\n     */\n    getContent: function() {\n        return null; // see implementation\n    },\n    /**\n     * Return the compressed content in an unspecified format.\n     * The format will depend on the compressed conten source.\n     * @return {Object} the compressed content.\n     */\n    getCompressedContent: function() {\n        return null; // see implementation\n    }\n};\nmodule.exports = CompressedObject;\n\n},{}],3:[function(_dereq_,module,exports){\n'use strict';\nexports.STORE = {\n    magic: \"\\x00\\x00\",\n    compress: function(content) {\n        return content; // no compression\n    },\n    uncompress: function(content) {\n        return content; // no compression\n    },\n    compressInputType: null,\n    uncompressInputType: null\n};\nexports.DEFLATE = _dereq_('./flate');\n\n},{\"./flate\":8}],4:[function(_dereq_,module,exports){\n'use strict';\n\nvar utils = _dereq_('./utils');\n\nvar table = [\n    0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,\n    0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,\n    0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,\n    0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,\n    0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n    0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,\n    0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,\n    0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,\n    0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,\n    0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n    0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,\n    0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,\n    0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,\n    0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,\n    0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n    0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,\n    0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,\n    0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,\n    0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,\n    0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n    0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,\n    0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,\n    0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,\n    0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,\n    0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n    0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,\n    0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,\n    0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,\n    0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,\n    0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n    0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,\n    0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,\n    0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,\n    0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,\n    0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n    0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,\n    0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,\n    0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,\n    0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,\n    0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n    0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,\n    0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,\n    0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,\n    0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,\n    0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n    0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,\n    0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,\n    0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,\n    0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,\n    0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n    0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,\n    0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,\n    0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,\n    0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,\n    0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n    0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,\n    0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,\n    0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,\n    0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,\n    0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n    0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,\n    0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,\n    0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,\n    0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D\n];\n\n/**\n *\n *  Javascript crc32\n *  http://www.webtoolkit.info/\n *\n */\nmodule.exports = function crc32(input, crc) {\n    if (typeof input === \"undefined\" || !input.length) {\n        return 0;\n    }\n\n    var isArray = utils.getTypeOf(input) !== \"string\";\n\n    if (typeof(crc) == \"undefined\") {\n        crc = 0;\n    }\n    var x = 0;\n    var y = 0;\n    var b = 0;\n\n    crc = crc ^ (-1);\n    for (var i = 0, iTop = input.length; i < iTop; i++) {\n        b = isArray ? input[i] : input.charCodeAt(i);\n        y = (crc ^ b) & 0xFF;\n        x = table[y];\n        crc = (crc >>> 8) ^ x;\n    }\n\n    return crc ^ (-1);\n};\n// vim: set shiftwidth=4 softtabstop=4:\n\n},{\"./utils\":21}],5:[function(_dereq_,module,exports){\n'use strict';\nvar utils = _dereq_('./utils');\n\nfunction DataReader(data) {\n    this.data = null; // type : see implementation\n    this.length = 0;\n    this.index = 0;\n}\nDataReader.prototype = {\n    /**\n     * Check that the offset will not go too far.\n     * @param {string} offset the additional offset to check.\n     * @throws {Error} an Error if the offset is out of bounds.\n     */\n    checkOffset: function(offset) {\n        this.checkIndex(this.index + offset);\n    },\n    /**\n     * Check that the specifed index will not be too far.\n     * @param {string} newIndex the index to check.\n     * @throws {Error} an Error if the index is out of bounds.\n     */\n    checkIndex: function(newIndex) {\n        if (this.length < newIndex || newIndex < 0) {\n            throw new Error(\"End of data reached (data length = \" + this.length + \", asked index = \" + (newIndex) + \"). Corrupted zip ?\");\n        }\n    },\n    /**\n     * Change the index.\n     * @param {number} newIndex The new index.\n     * @throws {Error} if the new index is out of the data.\n     */\n    setIndex: function(newIndex) {\n        this.checkIndex(newIndex);\n        this.index = newIndex;\n    },\n    /**\n     * Skip the next n bytes.\n     * @param {number} n the number of bytes to skip.\n     * @throws {Error} if the new index is out of the data.\n     */\n    skip: function(n) {\n        this.setIndex(this.index + n);\n    },\n    /**\n     * Get the byte at the specified index.\n     * @param {number} i the index to use.\n     * @return {number} a byte.\n     */\n    byteAt: function(i) {\n        // see implementations\n    },\n    /**\n     * Get the next number with a given byte size.\n     * @param {number} size the number of bytes to read.\n     * @return {number} the corresponding number.\n     */\n    readInt: function(size) {\n        var result = 0,\n            i;\n        this.checkOffset(size);\n        for (i = this.index + size - 1; i >= this.index; i--) {\n            result = (result << 8) + this.byteAt(i);\n        }\n        this.index += size;\n        return result;\n    },\n    /**\n     * Get the next string with a given byte size.\n     * @param {number} size the number of bytes to read.\n     * @return {string} the corresponding string.\n     */\n    readString: function(size) {\n        return utils.transformTo(\"string\", this.readData(size));\n    },\n    /**\n     * Get raw data without conversion, <size> bytes.\n     * @param {number} size the number of bytes to read.\n     * @return {Object} the raw data, implementation specific.\n     */\n    readData: function(size) {\n        // see implementations\n    },\n    /**\n     * Find the last occurence of a zip signature (4 bytes).\n     * @param {string} sig the signature to find.\n     * @return {number} the index of the last occurence, -1 if not found.\n     */\n    lastIndexOfSignature: function(sig) {\n        // see implementations\n    },\n    /**\n     * Get the next date.\n     * @return {Date} the date.\n     */\n    readDate: function() {\n        var dostime = this.readInt(4);\n        return new Date(\n        ((dostime >> 25) & 0x7f) + 1980, // year\n        ((dostime >> 21) & 0x0f) - 1, // month\n        (dostime >> 16) & 0x1f, // day\n        (dostime >> 11) & 0x1f, // hour\n        (dostime >> 5) & 0x3f, // minute\n        (dostime & 0x1f) << 1); // second\n    }\n};\nmodule.exports = DataReader;\n\n},{\"./utils\":21}],6:[function(_dereq_,module,exports){\n'use strict';\nexports.base64 = false;\nexports.binary = false;\nexports.dir = false;\nexports.createFolders = false;\nexports.date = null;\nexports.compression = null;\nexports.comment = null;\n\n},{}],7:[function(_dereq_,module,exports){\n'use strict';\nvar utils = _dereq_('./utils');\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.string2binary = function(str) {\n    return utils.string2binary(str);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.string2Uint8Array = function(str) {\n    return utils.transformTo(\"uint8array\", str);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.uint8Array2String = function(array) {\n    return utils.transformTo(\"string\", array);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.string2Blob = function(str) {\n    var buffer = utils.transformTo(\"arraybuffer\", str);\n    return utils.arrayBuffer2Blob(buffer);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.arrayBuffer2Blob = function(buffer) {\n    return utils.arrayBuffer2Blob(buffer);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.transformTo = function(outputType, input) {\n    return utils.transformTo(outputType, input);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.getTypeOf = function(input) {\n    return utils.getTypeOf(input);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.checkSupport = function(type) {\n    return utils.checkSupport(type);\n};\n\n/**\n * @deprecated\n * This value will be removed in a future version without replacement.\n */\nexports.MAX_VALUE_16BITS = utils.MAX_VALUE_16BITS;\n\n/**\n * @deprecated\n * This value will be removed in a future version without replacement.\n */\nexports.MAX_VALUE_32BITS = utils.MAX_VALUE_32BITS;\n\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.pretty = function(str) {\n    return utils.pretty(str);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.findCompression = function(compressionMethod) {\n    return utils.findCompression(compressionMethod);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.isRegExp = function (object) {\n    return utils.isRegExp(object);\n};\n\n\n},{\"./utils\":21}],8:[function(_dereq_,module,exports){\n'use strict';\nvar USE_TYPEDARRAY = (typeof Uint8Array !== 'undefined') && (typeof Uint16Array !== 'undefined') && (typeof Uint32Array !== 'undefined');\n\nvar pako = _dereq_(\"pako\");\nexports.uncompressInputType = USE_TYPEDARRAY ? \"uint8array\" : \"array\";\nexports.compressInputType = USE_TYPEDARRAY ? \"uint8array\" : \"array\";\n\nexports.magic = \"\\x08\\x00\";\nexports.compress = function(input) {\n    return pako.deflateRaw(input);\n};\nexports.uncompress =  function(input) {\n    return pako.inflateRaw(input);\n};\n\n},{\"pako\":24}],9:[function(_dereq_,module,exports){\n'use strict';\n\nvar base64 = _dereq_('./base64');\n\n/**\nUsage:\n   zip = new JSZip();\n   zip.file(\"hello.txt\", \"Hello, World!\").file(\"tempfile\", \"nothing\");\n   zip.folder(\"images\").file(\"smile.gif\", base64Data, {base64: true});\n   zip.file(\"Xmas.txt\", \"Ho ho ho !\", {date : new Date(\"December 25, 2007 00:00:01\")});\n   zip.remove(\"tempfile\");\n\n   base64zip = zip.generate();\n\n**/\n\n/**\n * Representation a of zip file in js\n * @constructor\n * @param {String=|ArrayBuffer=|Uint8Array=} data the data to load, if any (optional).\n * @param {Object=} options the options for creating this objects (optional).\n */\nfunction JSZipSync(data, options) {\n    // if this constructor is used without `new`, it adds `new` before itself:\n    if(!(this instanceof JSZipSync)) return new JSZipSync(data, options);\n\n    // object containing the files :\n    // {\n    //   \"folder/\" : {...},\n    //   \"folder/data.txt\" : {...}\n    // }\n    this.files = {};\n\n    this.comment = null;\n\n    // Where we are in the hierarchy\n    this.root = \"\";\n    if (data) {\n        this.load(data, options);\n    }\n    this.clone = function() {\n        var newObj = new JSZipSync();\n        for (var i in this) {\n            if (typeof this[i] !== \"function\") {\n                newObj[i] = this[i];\n            }\n        }\n        return newObj;\n    };\n}\nJSZipSync.prototype = _dereq_('./object');\nJSZipSync.prototype.load = _dereq_('./load');\nJSZipSync.support = _dereq_('./support');\nJSZipSync.defaults = _dereq_('./defaults');\n\n/**\n * @deprecated\n * This namespace will be removed in a future version without replacement.\n */\nJSZipSync.utils = _dereq_('./deprecatedPublicUtils');\n\nJSZipSync.base64 = {\n    /**\n     * @deprecated\n     * This method will be removed in a future version without replacement.\n     */\n    encode : function(input) {\n        return base64.encode(input);\n    },\n    /**\n     * @deprecated\n     * This method will be removed in a future version without replacement.\n     */\n    decode : function(input) {\n        return base64.decode(input);\n    }\n};\nJSZipSync.compressions = _dereq_('./compressions');\nmodule.exports = JSZipSync;\n\n},{\"./base64\":1,\"./compressions\":3,\"./defaults\":6,\"./deprecatedPublicUtils\":7,\"./load\":10,\"./object\":13,\"./support\":17}],10:[function(_dereq_,module,exports){\n'use strict';\nvar base64 = _dereq_('./base64');\nvar ZipEntries = _dereq_('./zipEntries');\nmodule.exports = function(data, options) {\n    var files, zipEntries, i, input;\n    options = options || {};\n    if (options.base64) {\n        data = base64.decode(data);\n    }\n\n    zipEntries = new ZipEntries(data, options);\n    files = zipEntries.files;\n    for (i = 0; i < files.length; i++) {\n        input = files[i];\n        this.file(input.fileName, input.decompressed, {\n            binary: true,\n            optimizedBinaryString: true,\n            date: input.date,\n            dir: input.dir,\n            comment : input.fileComment.length ? input.fileComment : null,\n            createFolders: options.createFolders\n        });\n    }\n    if (zipEntries.zipComment.length) {\n        this.comment = zipEntries.zipComment;\n    }\n\n    return this;\n};\n\n},{\"./base64\":1,\"./zipEntries\":22}],11:[function(_dereq_,module,exports){\n(function (Buffer){\n'use strict';\nvar Buffer_from = /*::(*/function(){}/*:: :any)*/;\nif(typeof Buffer !== 'undefined') {\n\tvar nbfs = !Buffer.from;\n\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\tBuffer_from = nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t// $FlowIgnore\n\tif(!Buffer.alloc) Buffer.alloc = function(n) { return new Buffer(n); };\n}\nmodule.exports = function(data, encoding){\n    return typeof data == 'number' ? Buffer.alloc(data) : Buffer_from(data, encoding);\n};\nmodule.exports.test = function(b){\n    return Buffer.isBuffer(b);\n};\n}).call(this,(typeof Buffer !== \"undefined\" ? Buffer : undefined))\n},{}],12:[function(_dereq_,module,exports){\n'use strict';\nvar Uint8ArrayReader = _dereq_('./uint8ArrayReader');\n\nfunction NodeBufferReader(data) {\n    this.data = data;\n    this.length = this.data.length;\n    this.index = 0;\n}\nNodeBufferReader.prototype = new Uint8ArrayReader();\n\n/**\n * @see DataReader.readData\n */\nNodeBufferReader.prototype.readData = function(size) {\n    this.checkOffset(size);\n    var result = this.data.slice(this.index, this.index + size);\n    this.index += size;\n    return result;\n};\nmodule.exports = NodeBufferReader;\n\n},{\"./uint8ArrayReader\":18}],13:[function(_dereq_,module,exports){\n'use strict';\nvar support = _dereq_('./support');\nvar utils = _dereq_('./utils');\nvar crc32 = _dereq_('./crc32');\nvar signature = _dereq_('./signature');\nvar defaults = _dereq_('./defaults');\nvar base64 = _dereq_('./base64');\nvar compressions = _dereq_('./compressions');\nvar CompressedObject = _dereq_('./compressedObject');\nvar nodeBuffer = _dereq_('./nodeBuffer');\nvar utf8 = _dereq_('./utf8');\nvar StringWriter = _dereq_('./stringWriter');\nvar Uint8ArrayWriter = _dereq_('./uint8ArrayWriter');\n\n/**\n * Returns the raw data of a ZipObject, decompress the content if necessary.\n * @param {ZipObject} file the file to use.\n * @return {String|ArrayBuffer|Uint8Array|Buffer} the data.\n */\nvar getRawData = function(file) {\n    if (file._data instanceof CompressedObject) {\n        file._data = file._data.getContent();\n        file.options.binary = true;\n        file.options.base64 = false;\n\n        if (utils.getTypeOf(file._data) === \"uint8array\") {\n            var copy = file._data;\n            // when reading an arraybuffer, the CompressedObject mechanism will keep it and subarray() a Uint8Array.\n            // if we request a file in the same format, we might get the same Uint8Array or its ArrayBuffer (the original zip file).\n            file._data = new Uint8Array(copy.length);\n            // with an empty Uint8Array, Opera fails with a \"Offset larger than array size\"\n            if (copy.length !== 0) {\n                file._data.set(copy, 0);\n            }\n        }\n    }\n    return file._data;\n};\n\n/**\n * Returns the data of a ZipObject in a binary form. If the content is an unicode string, encode it.\n * @param {ZipObject} file the file to use.\n * @return {String|ArrayBuffer|Uint8Array|Buffer} the data.\n */\nvar getBinaryData = function(file) {\n    var result = getRawData(file),\n        type = utils.getTypeOf(result);\n    if (type === \"string\") {\n        if (!file.options.binary) {\n            // unicode text !\n            // unicode string => binary string is a painful process, check if we can avoid it.\n            if (support.nodebuffer) {\n                return nodeBuffer(result, \"utf-8\");\n            }\n        }\n        return file.asBinary();\n    }\n    return result;\n};\n\n/**\n * Transform this._data into a string.\n * @param {function} filter a function String -> String, applied if not null on the result.\n * @return {String} the string representing this._data.\n */\nvar dataToString = function(asUTF8) {\n    var result = getRawData(this);\n    if (result === null || typeof result === \"undefined\") {\n        return \"\";\n    }\n    // if the data is a base64 string, we decode it before checking the encoding !\n    if (this.options.base64) {\n        result = base64.decode(result);\n    }\n    if (asUTF8 && this.options.binary) {\n        // JSZip.prototype.utf8decode supports arrays as input\n        // skip to array => string step, utf8decode will do it.\n        result = out.utf8decode(result);\n    }\n    else {\n        // no utf8 transformation, do the array => string step.\n        result = utils.transformTo(\"string\", result);\n    }\n\n    if (!asUTF8 && !this.options.binary) {\n        result = utils.transformTo(\"string\", out.utf8encode(result));\n    }\n    return result;\n};\n/**\n * A simple object representing a file in the zip file.\n * @constructor\n * @param {string} name the name of the file\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data\n * @param {Object} options the options of the file\n */\nvar ZipObject = function(name, data, options) {\n    this.name = name;\n    this.dir = options.dir;\n    this.date = options.date;\n    this.comment = options.comment;\n\n    this._data = data;\n    this.options = options;\n\n    /*\n     * This object contains initial values for dir and date.\n     * With them, we can check if the user changed the deprecated metadata in\n     * `ZipObject#options` or not.\n     */\n    this._initialMetadata = {\n      dir : options.dir,\n      date : options.date\n    };\n};\n\nZipObject.prototype = {\n    /**\n     * Return the content as UTF8 string.\n     * @return {string} the UTF8 string.\n     */\n    asText: function() {\n        return dataToString.call(this, true);\n    },\n    /**\n     * Returns the binary content.\n     * @return {string} the content as binary.\n     */\n    asBinary: function() {\n        return dataToString.call(this, false);\n    },\n    /**\n     * Returns the content as a nodejs Buffer.\n     * @return {Buffer} the content as a Buffer.\n     */\n    asNodeBuffer: function() {\n        var result = getBinaryData(this);\n        return utils.transformTo(\"nodebuffer\", result);\n    },\n    /**\n     * Returns the content as an Uint8Array.\n     * @return {Uint8Array} the content as an Uint8Array.\n     */\n    asUint8Array: function() {\n        var result = getBinaryData(this);\n        return utils.transformTo(\"uint8array\", result);\n    },\n    /**\n     * Returns the content as an ArrayBuffer.\n     * @return {ArrayBuffer} the content as an ArrayBufer.\n     */\n    asArrayBuffer: function() {\n        return this.asUint8Array().buffer;\n    }\n};\n\n/**\n * Transform an integer into a string in hexadecimal.\n * @private\n * @param {number} dec the number to convert.\n * @param {number} bytes the number of bytes to generate.\n * @returns {string} the result.\n */\nvar decToHex = function(dec, bytes) {\n    var hex = \"\",\n        i;\n    for (i = 0; i < bytes; i++) {\n        hex += String.fromCharCode(dec & 0xff);\n        dec = dec >>> 8;\n    }\n    return hex;\n};\n\n/**\n * Merge the objects passed as parameters into a new one.\n * @private\n * @param {...Object} var_args All objects to merge.\n * @return {Object} a new object with the data of the others.\n */\nvar extend = function() {\n    var result = {}, i, attr;\n    for (i = 0; i < arguments.length; i++) { // arguments is not enumerable in some browsers\n        for (attr in arguments[i]) {\n            if (arguments[i].hasOwnProperty(attr) && typeof result[attr] === \"undefined\") {\n                result[attr] = arguments[i][attr];\n            }\n        }\n    }\n    return result;\n};\n\n/**\n * Transforms the (incomplete) options from the user into the complete\n * set of options to create a file.\n * @private\n * @param {Object} o the options from the user.\n * @return {Object} the complete set of options.\n */\nvar prepareFileAttrs = function(o) {\n    o = o || {};\n    if (o.base64 === true && (o.binary === null || o.binary === undefined)) {\n        o.binary = true;\n    }\n    o = extend(o, defaults);\n    o.date = o.date || new Date();\n    if (o.compression !== null) o.compression = o.compression.toUpperCase();\n\n    return o;\n};\n\n/**\n * Add a file in the current folder.\n * @private\n * @param {string} name the name of the file\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data of the file\n * @param {Object} o the options of the file\n * @return {Object} the new file.\n */\nvar fileAdd = function(name, data, o) {\n    // be sure sub folders exist\n    var dataType = utils.getTypeOf(data),\n        parent;\n\n    o = prepareFileAttrs(o);\n\n    if (o.createFolders && (parent = parentFolder(name))) {\n        folderAdd.call(this, parent, true);\n    }\n\n    if (o.dir || data === null || typeof data === \"undefined\") {\n        o.base64 = false;\n        o.binary = false;\n        data = null;\n    }\n    else if (dataType === \"string\") {\n        if (o.binary && !o.base64) {\n            // optimizedBinaryString == true means that the file has already been filtered with a 0xFF mask\n            if (o.optimizedBinaryString !== true) {\n                // this is a string, not in a base64 format.\n                // Be sure that this is a correct \"binary string\"\n                data = utils.string2binary(data);\n            }\n        }\n    }\n    else { // arraybuffer, uint8array, ...\n        o.base64 = false;\n        o.binary = true;\n\n        if (!dataType && !(data instanceof CompressedObject)) {\n            throw new Error(\"The data of '\" + name + \"' is in an unsupported format !\");\n        }\n\n        // special case : it's way easier to work with Uint8Array than with ArrayBuffer\n        if (dataType === \"arraybuffer\") {\n            data = utils.transformTo(\"uint8array\", data);\n        }\n    }\n\n    var object = new ZipObject(name, data, o);\n    this.files[name] = object;\n    return object;\n};\n\n/**\n * Find the parent folder of the path.\n * @private\n * @param {string} path the path to use\n * @return {string} the parent folder, or \"\"\n */\nvar parentFolder = function (path) {\n    if (path.slice(-1) == '/') {\n        path = path.substring(0, path.length - 1);\n    }\n    var lastSlash = path.lastIndexOf('/');\n    return (lastSlash > 0) ? path.substring(0, lastSlash) : \"\";\n};\n\n/**\n * Add a (sub) folder in the current folder.\n * @private\n * @param {string} name the folder's name\n * @param {boolean=} [createFolders] If true, automatically create sub\n *  folders. Defaults to false.\n * @return {Object} the new folder.\n */\nvar folderAdd = function(name, createFolders) {\n    // Check the name ends with a /\n    if (name.slice(-1) != \"/\") {\n        name += \"/\"; // IE doesn't like substr(-1)\n    }\n\n    createFolders = (typeof createFolders !== 'undefined') ? createFolders : false;\n\n    // Does this folder already exist?\n    if (!this.files[name]) {\n        fileAdd.call(this, name, null, {\n            dir: true,\n            createFolders: createFolders\n        });\n    }\n    return this.files[name];\n};\n\n/**\n * Generate a JSZip.CompressedObject for a given zipOject.\n * @param {ZipObject} file the object to read.\n * @param {JSZip.compression} compression the compression to use.\n * @return {JSZip.CompressedObject} the compressed result.\n */\nvar generateCompressedObjectFrom = function(file, compression) {\n    var result = new CompressedObject(),\n        content;\n\n    // the data has not been decompressed, we might reuse things !\n    if (file._data instanceof CompressedObject) {\n        result.uncompressedSize = file._data.uncompressedSize;\n        result.crc32 = file._data.crc32;\n\n        if (result.uncompressedSize === 0 || file.dir) {\n            compression = compressions['STORE'];\n            result.compressedContent = \"\";\n            result.crc32 = 0;\n        }\n        else if (file._data.compressionMethod === compression.magic) {\n            result.compressedContent = file._data.getCompressedContent();\n        }\n        else {\n            content = file._data.getContent();\n            // need to decompress / recompress\n            result.compressedContent = compression.compress(utils.transformTo(compression.compressInputType, content));\n        }\n    }\n    else {\n        // have uncompressed data\n        content = getBinaryData(file);\n        if (!content || content.length === 0 || file.dir) {\n            compression = compressions['STORE'];\n            content = \"\";\n        }\n        result.uncompressedSize = content.length;\n        result.crc32 = crc32(content);\n        result.compressedContent = compression.compress(utils.transformTo(compression.compressInputType, content));\n    }\n\n    result.compressedSize = result.compressedContent.length;\n    result.compressionMethod = compression.magic;\n\n    return result;\n};\n\n/**\n * Generate the various parts used in the construction of the final zip file.\n * @param {string} name the file name.\n * @param {ZipObject} file the file content.\n * @param {JSZip.CompressedObject} compressedObject the compressed object.\n * @param {number} offset the current offset from the start of the zip file.\n * @return {object} the zip parts.\n */\nvar generateZipParts = function(name, file, compressedObject, offset) {\n    var data = compressedObject.compressedContent,\n        utfEncodedFileName = utils.transformTo(\"string\", utf8.utf8encode(file.name)),\n        comment = file.comment || \"\",\n        utfEncodedComment = utils.transformTo(\"string\", utf8.utf8encode(comment)),\n        useUTF8ForFileName = utfEncodedFileName.length !== file.name.length,\n        useUTF8ForComment = utfEncodedComment.length !== comment.length,\n        o = file.options,\n        dosTime,\n        dosDate,\n        extraFields = \"\",\n        unicodePathExtraField = \"\",\n        unicodeCommentExtraField = \"\",\n        dir, date;\n\n\n    // handle the deprecated options.dir\n    if (file._initialMetadata.dir !== file.dir) {\n        dir = file.dir;\n    } else {\n        dir = o.dir;\n    }\n\n    // handle the deprecated options.date\n    if(file._initialMetadata.date !== file.date) {\n        date = file.date;\n    } else {\n        date = o.date;\n    }\n\n\n    dosTime = date.getHours();\n    dosTime = dosTime << 6;\n    dosTime = dosTime | date.getMinutes();\n    dosTime = dosTime << 5;\n    dosTime = dosTime | date.getSeconds() / 2;\n\n    dosDate = date.getFullYear() - 1980;\n    dosDate = dosDate << 4;\n    dosDate = dosDate | (date.getMonth() + 1);\n    dosDate = dosDate << 5;\n    dosDate = dosDate | date.getDate();\n\n    if (useUTF8ForFileName) {\n        // set the unicode path extra field. unzip needs at least one extra\n        // field to correctly handle unicode path, so using the path is as good\n        // as any other information. This could improve the situation with\n        // other archive managers too.\n        // This field is usually used without the utf8 flag, with a non\n        // unicode path in the header (winrar, winzip). This helps (a bit)\n        // with the messy Windows' default compressed folders feature but\n        // breaks on p7zip which doesn't seek the unicode path extra field.\n        // So for now, UTF-8 everywhere !\n        unicodePathExtraField =\n            // Version\n            decToHex(1, 1) +\n            // NameCRC32\n            decToHex(crc32(utfEncodedFileName), 4) +\n            // UnicodeName\n            utfEncodedFileName;\n\n        extraFields +=\n            // Info-ZIP Unicode Path Extra Field\n            \"\\x75\\x70\" +\n            // size\n            decToHex(unicodePathExtraField.length, 2) +\n            // content\n            unicodePathExtraField;\n    }\n\n    if(useUTF8ForComment) {\n\n        unicodeCommentExtraField =\n            // Version\n            decToHex(1, 1) +\n            // CommentCRC32\n            decToHex(this.crc32(utfEncodedComment), 4) +\n            // UnicodeName\n            utfEncodedComment;\n\n        extraFields +=\n            // Info-ZIP Unicode Path Extra Field\n            \"\\x75\\x63\" +\n            // size\n            decToHex(unicodeCommentExtraField.length, 2) +\n            // content\n            unicodeCommentExtraField;\n    }\n\n    var header = \"\";\n\n    // version needed to extract\n    header += \"\\x0A\\x00\";\n    // general purpose bit flag\n    // set bit 11 if utf8\n    header += (useUTF8ForFileName || useUTF8ForComment) ? \"\\x00\\x08\" : \"\\x00\\x00\";\n    // compression method\n    header += compressedObject.compressionMethod;\n    // last mod file time\n    header += decToHex(dosTime, 2);\n    // last mod file date\n    header += decToHex(dosDate, 2);\n    // crc-32\n    header += decToHex(compressedObject.crc32, 4);\n    // compressed size\n    header += decToHex(compressedObject.compressedSize, 4);\n    // uncompressed size\n    header += decToHex(compressedObject.uncompressedSize, 4);\n    // file name length\n    header += decToHex(utfEncodedFileName.length, 2);\n    // extra field length\n    header += decToHex(extraFields.length, 2);\n\n\n    var fileRecord = signature.LOCAL_FILE_HEADER + header + utfEncodedFileName + extraFields;\n\n    var dirRecord = signature.CENTRAL_FILE_HEADER +\n    // version made by (00: DOS)\n    \"\\x14\\x00\" +\n    // file header (common to file and central directory)\n    header +\n    // file comment length\n    decToHex(utfEncodedComment.length, 2) +\n    // disk number start\n    \"\\x00\\x00\" +\n    // internal file attributes TODO\n    \"\\x00\\x00\" +\n    // external file attributes\n    (dir === true ? \"\\x10\\x00\\x00\\x00\" : \"\\x00\\x00\\x00\\x00\") +\n    // relative offset of local header\n    decToHex(offset, 4) +\n    // file name\n    utfEncodedFileName +\n    // extra field\n    extraFields +\n    // file comment\n    utfEncodedComment;\n\n    return {\n        fileRecord: fileRecord,\n        dirRecord: dirRecord,\n        compressedObject: compressedObject\n    };\n};\n\n\n// return the actual prototype of JSZip\nvar out = {\n    /**\n     * Read an existing zip and merge the data in the current JSZip object.\n     * The implementation is in jszip-load.js, don't forget to include it.\n     * @param {String|ArrayBuffer|Uint8Array|Buffer} stream  The stream to load\n     * @param {Object} options Options for loading the stream.\n     *  options.base64 : is the stream in base64 ? default : false\n     * @return {JSZip} the current JSZip object\n     */\n    load: function(stream, options) {\n        throw new Error(\"Load method is not defined. Is the file jszip-load.js included ?\");\n    },\n\n    /**\n     * Filter nested files/folders with the specified function.\n     * @param {Function} search the predicate to use :\n     * function (relativePath, file) {...}\n     * It takes 2 arguments : the relative path and the file.\n     * @return {Array} An array of matching elements.\n     */\n    filter: function(search) {\n        var result = [],\n            filename, relativePath, file, fileClone;\n        for (filename in this.files) {\n            if (!this.files.hasOwnProperty(filename)) {\n                continue;\n            }\n            file = this.files[filename];\n            // return a new object, don't let the user mess with our internal objects :)\n            fileClone = new ZipObject(file.name, file._data, extend(file.options));\n            relativePath = filename.slice(this.root.length, filename.length);\n            if (filename.slice(0, this.root.length) === this.root && // the file is in the current root\n            search(relativePath, fileClone)) { // and the file matches the function\n                result.push(fileClone);\n            }\n        }\n        return result;\n    },\n\n    /**\n     * Add a file to the zip file, or search a file.\n     * @param   {string|RegExp} name The name of the file to add (if data is defined),\n     * the name of the file to find (if no data) or a regex to match files.\n     * @param   {String|ArrayBuffer|Uint8Array|Buffer} data  The file data, either raw or base64 encoded\n     * @param   {Object} o     File options\n     * @return  {JSZip|Object|Array} this JSZip object (when adding a file),\n     * a file (when searching by string) or an array of files (when searching by regex).\n     */\n    file: function(name, data, o) {\n        if (arguments.length === 1) {\n            if (utils.isRegExp(name)) {\n                var regexp = name;\n                return this.filter(function(relativePath, file) {\n                    return !file.dir && regexp.test(relativePath);\n                });\n            }\n            else { // text\n                return this.filter(function(relativePath, file) {\n                    return !file.dir && relativePath === name;\n                })[0] || null;\n            }\n        }\n        else { // more than one argument : we have data !\n            name = this.root + name;\n            fileAdd.call(this, name, data, o);\n        }\n        return this;\n    },\n\n    /**\n     * Add a directory to the zip file, or search.\n     * @param   {String|RegExp} arg The name of the directory to add, or a regex to search folders.\n     * @return  {JSZip} an object with the new directory as the root, or an array containing matching folders.\n     */\n    folder: function(arg) {\n        if (!arg) {\n            return this;\n        }\n\n        if (utils.isRegExp(arg)) {\n            return this.filter(function(relativePath, file) {\n                return file.dir && arg.test(relativePath);\n            });\n        }\n\n        // else, name is a new folder\n        var name = this.root + arg;\n        var newFolder = folderAdd.call(this, name);\n\n        // Allow chaining by returning a new object with this folder as the root\n        var ret = this.clone();\n        ret.root = newFolder.name;\n        return ret;\n    },\n\n    /**\n     * Delete a file, or a directory and all sub-files, from the zip\n     * @param {string} name the name of the file to delete\n     * @return {JSZip} this JSZip object\n     */\n    remove: function(name) {\n        name = this.root + name;\n        var file = this.files[name];\n        if (!file) {\n            // Look for any folders\n            if (name.slice(-1) != \"/\") {\n                name += \"/\";\n            }\n            file = this.files[name];\n        }\n\n        if (file && !file.dir) {\n            // file\n            delete this.files[name];\n        } else {\n            // maybe a folder, delete recursively\n            var kids = this.filter(function(relativePath, file) {\n                return file.name.slice(0, name.length) === name;\n            });\n            for (var i = 0; i < kids.length; i++) {\n                delete this.files[kids[i].name];\n            }\n        }\n\n        return this;\n    },\n\n    /**\n     * Generate the complete zip file\n     * @param {Object} options the options to generate the zip file :\n     * - base64, (deprecated, use type instead) true to generate base64.\n     * - compression, \"STORE\" by default.\n     * - type, \"base64\" by default. Values are : string, base64, uint8array, arraybuffer, blob.\n     * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the zip file\n     */\n    generate: function(options) {\n        options = extend(options || {}, {\n            base64: true,\n            compression: \"STORE\",\n            type: \"base64\",\n            comment: null\n        });\n\n        utils.checkSupport(options.type);\n\n        var zipData = [],\n            localDirLength = 0,\n            centralDirLength = 0,\n            writer, i,\n            utfEncodedComment = utils.transformTo(\"string\", this.utf8encode(options.comment || this.comment || \"\"));\n\n        // first, generate all the zip parts.\n        for (var name in this.files) {\n            if (!this.files.hasOwnProperty(name)) {\n                continue;\n            }\n            var file = this.files[name];\n\n            var compressionName = file.options.compression || options.compression.toUpperCase();\n            var compression = compressions[compressionName];\n            if (!compression) {\n                throw new Error(compressionName + \" is not a valid compression method !\");\n            }\n\n            var compressedObject = generateCompressedObjectFrom.call(this, file, compression);\n\n            var zipPart = generateZipParts.call(this, name, file, compressedObject, localDirLength);\n            localDirLength += zipPart.fileRecord.length + compressedObject.compressedSize;\n            centralDirLength += zipPart.dirRecord.length;\n            zipData.push(zipPart);\n        }\n\n        var dirEnd = \"\";\n\n        // end of central dir signature\n        dirEnd = signature.CENTRAL_DIRECTORY_END +\n        // number of this disk\n        \"\\x00\\x00\" +\n        // number of the disk with the start of the central directory\n        \"\\x00\\x00\" +\n        // total number of entries in the central directory on this disk\n        decToHex(zipData.length, 2) +\n        // total number of entries in the central directory\n        decToHex(zipData.length, 2) +\n        // size of the central directory   4 bytes\n        decToHex(centralDirLength, 4) +\n        // offset of start of central directory with respect to the starting disk number\n        decToHex(localDirLength, 4) +\n        // .ZIP file comment length\n        decToHex(utfEncodedComment.length, 2) +\n        // .ZIP file comment\n        utfEncodedComment;\n\n\n        // we have all the parts (and the total length)\n        // time to create a writer !\n        var typeName = options.type.toLowerCase();\n        if(typeName===\"uint8array\"||typeName===\"arraybuffer\"||typeName===\"blob\"||typeName===\"nodebuffer\") {\n            writer = new Uint8ArrayWriter(localDirLength + centralDirLength + dirEnd.length);\n        }else{\n            writer = new StringWriter(localDirLength + centralDirLength + dirEnd.length);\n        }\n\n        for (i = 0; i < zipData.length; i++) {\n            writer.append(zipData[i].fileRecord);\n            writer.append(zipData[i].compressedObject.compressedContent);\n        }\n        for (i = 0; i < zipData.length; i++) {\n            writer.append(zipData[i].dirRecord);\n        }\n\n        writer.append(dirEnd);\n\n        var zip = writer.finalize();\n\n\n\n        switch(options.type.toLowerCase()) {\n            // case \"zip is an Uint8Array\"\n            case \"uint8array\" :\n            case \"arraybuffer\" :\n            case \"nodebuffer\" :\n               return utils.transformTo(options.type.toLowerCase(), zip);\n            case \"blob\" :\n               return utils.arrayBuffer2Blob(utils.transformTo(\"arraybuffer\", zip));\n            // case \"zip is a string\"\n            case \"base64\" :\n               return (options.base64) ? base64.encode(zip) : zip;\n            default : // case \"string\" :\n               return zip;\n         }\n\n    },\n\n    /**\n     * @deprecated\n     * This method will be removed in a future version without replacement.\n     */\n    crc32: function (input, crc) {\n        return crc32(input, crc);\n    },\n\n    /**\n     * @deprecated\n     * This method will be removed in a future version without replacement.\n     */\n    utf8encode: function (string) {\n        return utils.transformTo(\"string\", utf8.utf8encode(string));\n    },\n\n    /**\n     * @deprecated\n     * This method will be removed in a future version without replacement.\n     */\n    utf8decode: function (input) {\n        return utf8.utf8decode(input);\n    }\n};\nmodule.exports = out;\n\n},{\"./base64\":1,\"./compressedObject\":2,\"./compressions\":3,\"./crc32\":4,\"./defaults\":6,\"./nodeBuffer\":11,\"./signature\":14,\"./stringWriter\":16,\"./support\":17,\"./uint8ArrayWriter\":19,\"./utf8\":20,\"./utils\":21}],14:[function(_dereq_,module,exports){\n'use strict';\nexports.LOCAL_FILE_HEADER = \"PK\\x03\\x04\";\nexports.CENTRAL_FILE_HEADER = \"PK\\x01\\x02\";\nexports.CENTRAL_DIRECTORY_END = \"PK\\x05\\x06\";\nexports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = \"PK\\x06\\x07\";\nexports.ZIP64_CENTRAL_DIRECTORY_END = \"PK\\x06\\x06\";\nexports.DATA_DESCRIPTOR = \"PK\\x07\\x08\";\n\n},{}],15:[function(_dereq_,module,exports){\n'use strict';\nvar DataReader = _dereq_('./dataReader');\nvar utils = _dereq_('./utils');\n\nfunction StringReader(data, optimizedBinaryString) {\n    this.data = data;\n    if (!optimizedBinaryString) {\n        this.data = utils.string2binary(this.data);\n    }\n    this.length = this.data.length;\n    this.index = 0;\n}\nStringReader.prototype = new DataReader();\n/**\n * @see DataReader.byteAt\n */\nStringReader.prototype.byteAt = function(i) {\n    return this.data.charCodeAt(i);\n};\n/**\n * @see DataReader.lastIndexOfSignature\n */\nStringReader.prototype.lastIndexOfSignature = function(sig) {\n    return this.data.lastIndexOf(sig);\n};\n/**\n * @see DataReader.readData\n */\nStringReader.prototype.readData = function(size) {\n    this.checkOffset(size);\n    // this will work because the constructor applied the \"& 0xff\" mask.\n    var result = this.data.slice(this.index, this.index + size);\n    this.index += size;\n    return result;\n};\nmodule.exports = StringReader;\n\n},{\"./dataReader\":5,\"./utils\":21}],16:[function(_dereq_,module,exports){\n'use strict';\n\nvar utils = _dereq_('./utils');\n\n/**\n * An object to write any content to a string.\n * @constructor\n */\nvar StringWriter = function() {\n    this.data = [];\n};\nStringWriter.prototype = {\n    /**\n     * Append any content to the current string.\n     * @param {Object} input the content to add.\n     */\n    append: function(input) {\n        input = utils.transformTo(\"string\", input);\n        this.data.push(input);\n    },\n    /**\n     * Finalize the construction an return the result.\n     * @return {string} the generated string.\n     */\n    finalize: function() {\n        return this.data.join(\"\");\n    }\n};\n\nmodule.exports = StringWriter;\n\n},{\"./utils\":21}],17:[function(_dereq_,module,exports){\n(function (Buffer){\n'use strict';\nexports.base64 = true;\nexports.array = true;\nexports.string = true;\nexports.arraybuffer = typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\";\n// contains true if JSZip can read/generate nodejs Buffer, false otherwise.\n// Browserify will provide a Buffer implementation for browsers, which is\n// an augmented Uint8Array (i.e., can be used as either Buffer or U8).\nexports.nodebuffer = typeof Buffer !== \"undefined\";\n// contains true if JSZip can read/generate Uint8Array, false otherwise.\nexports.uint8array = typeof Uint8Array !== \"undefined\";\n\nif (typeof ArrayBuffer === \"undefined\") {\n    exports.blob = false;\n}\nelse {\n    var buffer = new ArrayBuffer(0);\n    try {\n        exports.blob = new Blob([buffer], {\n            type: \"application/zip\"\n        }).size === 0;\n    }\n    catch (e) {\n        try {\n            var Builder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\n            var builder = new Builder();\n            builder.append(buffer);\n            exports.blob = builder.getBlob('application/zip').size === 0;\n        }\n        catch (e) {\n            exports.blob = false;\n        }\n    }\n}\n\n}).call(this,(typeof Buffer !== \"undefined\" ? Buffer : undefined))\n},{}],18:[function(_dereq_,module,exports){\n'use strict';\nvar DataReader = _dereq_('./dataReader');\n\nfunction Uint8ArrayReader(data) {\n    if (data) {\n        this.data = data;\n        this.length = this.data.length;\n        this.index = 0;\n    }\n}\nUint8ArrayReader.prototype = new DataReader();\n/**\n * @see DataReader.byteAt\n */\nUint8ArrayReader.prototype.byteAt = function(i) {\n    return this.data[i];\n};\n/**\n * @see DataReader.lastIndexOfSignature\n */\nUint8ArrayReader.prototype.lastIndexOfSignature = function(sig) {\n    var sig0 = sig.charCodeAt(0),\n        sig1 = sig.charCodeAt(1),\n        sig2 = sig.charCodeAt(2),\n        sig3 = sig.charCodeAt(3);\n    for (var i = this.length - 4; i >= 0; --i) {\n        if (this.data[i] === sig0 && this.data[i + 1] === sig1 && this.data[i + 2] === sig2 && this.data[i + 3] === sig3) {\n            return i;\n        }\n    }\n\n    return -1;\n};\n/**\n * @see DataReader.readData\n */\nUint8ArrayReader.prototype.readData = function(size) {\n    this.checkOffset(size);\n    if(size === 0) {\n        // in IE10, when using subarray(idx, idx), we get the array [0x00] instead of [].\n        return new Uint8Array(0);\n    }\n    var result = this.data.subarray(this.index, this.index + size);\n    this.index += size;\n    return result;\n};\nmodule.exports = Uint8ArrayReader;\n\n},{\"./dataReader\":5}],19:[function(_dereq_,module,exports){\n'use strict';\n\nvar utils = _dereq_('./utils');\n\n/**\n * An object to write any content to an Uint8Array.\n * @constructor\n * @param {number} length The length of the array.\n */\nvar Uint8ArrayWriter = function(length) {\n    this.data = new Uint8Array(length);\n    this.index = 0;\n};\nUint8ArrayWriter.prototype = {\n    /**\n     * Append any content to the current array.\n     * @param {Object} input the content to add.\n     */\n    append: function(input) {\n        if (input.length !== 0) {\n            // with an empty Uint8Array, Opera fails with a \"Offset larger than array size\"\n            input = utils.transformTo(\"uint8array\", input);\n            this.data.set(input, this.index);\n            this.index += input.length;\n        }\n    },\n    /**\n     * Finalize the construction an return the result.\n     * @return {Uint8Array} the generated array.\n     */\n    finalize: function() {\n        return this.data;\n    }\n};\n\nmodule.exports = Uint8ArrayWriter;\n\n},{\"./utils\":21}],20:[function(_dereq_,module,exports){\n'use strict';\n\nvar utils = _dereq_('./utils');\nvar support = _dereq_('./support');\nvar nodeBuffer = _dereq_('./nodeBuffer');\n\n/**\n * The following functions come from pako, from pako/lib/utils/strings\n * released under the MIT license, see pako https://github.com/nodeca/pako/\n */\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nvar _utf8len = new Array(256);\nfor (var i=0; i<256; i++) {\n  _utf8len[i] = (i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1);\n}\n_utf8len[254]=_utf8len[254]=1; // Invalid sequence start\n\n// convert string to array (typed, when possible)\nvar string2buf = function (str) {\n    var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n    // count binary size\n    for (m_pos = 0; m_pos < str_len; m_pos++) {\n        c = str.charCodeAt(m_pos);\n        if (((c & 0xfc00) === 0xd800) && (m_pos+1 < str_len)) {\n            c2 = str.charCodeAt(m_pos+1);\n            if ((c2 & 0xfc00) === 0xdc00) {\n                c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n                m_pos++;\n            }\n        }\n        buf_len += (c < 0x80) ? 1 : ((c < 0x800) ? 2 : ((c < 0x10000) ? 3 : 4));\n    }\n\n    // allocate buffer\n    if (support.uint8array) {\n        buf = new Uint8Array(buf_len);\n    } else {\n        buf = new Array(buf_len);\n    }\n\n    // convert\n    for (i=0, m_pos = 0; i < buf_len; m_pos++) {\n        c = str.charCodeAt(m_pos);\n        if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {\n            c2 = str.charCodeAt(m_pos+1);\n            if ((c2 & 0xfc00) === 0xdc00) {\n                c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n                m_pos++;\n            }\n        }\n        if (c < 0x80) {\n            /* one byte */\n            buf[i++] = c;\n        } else if (c < 0x800) {\n            /* two bytes */\n            buf[i++] = 0xC0 | (c >>> 6);\n            buf[i++] = 0x80 | (c & 0x3f);\n        } else if (c < 0x10000) {\n            /* three bytes */\n            buf[i++] = 0xE0 | (c >>> 12);\n            buf[i++] = 0x80 | ((c >>> 6) & 0x3f);\n            buf[i++] = 0x80 | (c & 0x3f);\n        } else {\n            /* four bytes */\n            buf[i++] = 0xf0 | (c >>> 18);\n            buf[i++] = 0x80 | ((c >>> 12) & 0x3f);\n            buf[i++] = 0x80 | ((c >>> 6) & 0x3f);\n            buf[i++] = 0x80 | (c & 0x3f);\n        }\n    }\n\n    return buf;\n};\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max   - length limit (mandatory);\nvar utf8border = function(buf, max) {\n    var pos;\n\n    max = max || buf.length;\n    if (max > buf.length) { max = buf.length; }\n\n    // go back from last position, until start of sequence found\n    pos = max-1;\n    while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n    // Fuckup - very small and broken sequence,\n    // return max, because we should return something anyway.\n    if (pos < 0) { return max; }\n\n    // If we came to start of buffer - that means vuffer is too small,\n    // return max too.\n    if (pos === 0) { return max; }\n\n    return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\n// convert array to string\nvar buf2string = function (buf) {\n    var str, i, out, c, c_len;\n    var len = buf.length;\n\n    // Reserve max possible length (2 words per char)\n    // NB: by unknown reasons, Array is significantly faster for\n    //     String.fromCharCode.apply than Uint16Array.\n    var utf16buf = new Array(len*2);\n\n    for (out=0, i=0; i<len;) {\n        c = buf[i++];\n        // quick process ascii\n        if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n        c_len = _utf8len[c];\n        // skip 5 & 6 byte codes\n        if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; }\n\n        // apply mask on first byte\n        c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n        // join the rest\n        while (c_len > 1 && i < len) {\n            c = (c << 6) | (buf[i++] & 0x3f);\n            c_len--;\n        }\n\n        // terminated by end of string?\n        if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n        if (c < 0x10000) {\n            utf16buf[out++] = c;\n        } else {\n            c -= 0x10000;\n            utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n            utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n        }\n    }\n\n    // shrinkBuf(utf16buf, out)\n    if (utf16buf.length !== out) {\n        if(utf16buf.subarray) {\n            utf16buf = utf16buf.subarray(0, out);\n        } else {\n            utf16buf.length = out;\n        }\n    }\n\n    // return String.fromCharCode.apply(null, utf16buf);\n    return utils.applyFromCharCode(utf16buf);\n};\n\n\n// That's all for the pako functions.\n\n\n/**\n * Transform a javascript string into an array (typed if possible) of bytes,\n * UTF-8 encoded.\n * @param {String} str the string to encode\n * @return {Array|Uint8Array|Buffer} the UTF-8 encoded string.\n */\nexports.utf8encode = function utf8encode(str) {\n    if (support.nodebuffer) {\n        return nodeBuffer(str, \"utf-8\");\n    }\n\n    return string2buf(str);\n};\n\n\n/**\n * Transform a bytes array (or a representation) representing an UTF-8 encoded\n * string into a javascript string.\n * @param {Array|Uint8Array|Buffer} buf the data de decode\n * @return {String} the decoded string.\n */\nexports.utf8decode = function utf8decode(buf) {\n    if (support.nodebuffer) {\n        return utils.transformTo(\"nodebuffer\", buf).toString(\"utf-8\");\n    }\n\n    buf = utils.transformTo(support.uint8array ? \"uint8array\" : \"array\", buf);\n\n    // return buf2string(buf);\n    // Chrome prefers to work with \"small\" chunks of data\n    // for the method buf2string.\n    // Firefox and Chrome has their own shortcut, IE doesn't seem to really care.\n    var result = [], k = 0, len = buf.length, chunk = 65536;\n    while (k < len) {\n        var nextBoundary = utf8border(buf, Math.min(k + chunk, len));\n        if (support.uint8array) {\n            result.push(buf2string(buf.subarray(k, nextBoundary)));\n        } else {\n            result.push(buf2string(buf.slice(k, nextBoundary)));\n        }\n        k = nextBoundary;\n    }\n    return result.join(\"\");\n\n};\n// vim: set shiftwidth=4 softtabstop=4:\n\n},{\"./nodeBuffer\":11,\"./support\":17,\"./utils\":21}],21:[function(_dereq_,module,exports){\n'use strict';\nvar support = _dereq_('./support');\nvar compressions = _dereq_('./compressions');\nvar nodeBuffer = _dereq_('./nodeBuffer');\n/**\n * Convert a string to a \"binary string\" : a string containing only char codes between 0 and 255.\n * @param {string} str the string to transform.\n * @return {String} the binary string.\n */\nexports.string2binary = function(str) {\n    var result = \"\";\n    for (var i = 0; i < str.length; i++) {\n        result += String.fromCharCode(str.charCodeAt(i) & 0xff);\n    }\n    return result;\n};\nexports.arrayBuffer2Blob = function(buffer) {\n    exports.checkSupport(\"blob\");\n\n    try {\n        // Blob constructor\n        return new Blob([buffer], {\n            type: \"application/zip\"\n        });\n    }\n    catch (e) {\n\n        try {\n            // deprecated, browser only, old way\n            var Builder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\n            var builder = new Builder();\n            builder.append(buffer);\n            return builder.getBlob('application/zip');\n        }\n        catch (e) {\n\n            // well, fuck ?!\n            throw new Error(\"Bug : can't construct the Blob.\");\n        }\n    }\n\n\n};\n/**\n * The identity function.\n * @param {Object} input the input.\n * @return {Object} the same input.\n */\nfunction identity(input) {\n    return input;\n}\n\n/**\n * Fill in an array with a string.\n * @param {String} str the string to use.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to fill in (will be mutated).\n * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated array.\n */\nfunction stringToArrayLike(str, array) {\n    for (var i = 0; i < str.length; ++i) {\n        array[i] = str.charCodeAt(i) & 0xFF;\n    }\n    return array;\n}\n\n/**\n * Transform an array-like object to a string.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.\n * @return {String} the result.\n */\nfunction arrayLikeToString(array) {\n    // Performances notes :\n    // --------------------\n    // String.fromCharCode.apply(null, array) is the fastest, see\n    // see http://jsperf.com/converting-a-uint8array-to-a-string/2\n    // but the stack is limited (and we can get huge arrays !).\n    //\n    // result += String.fromCharCode(array[i]); generate too many strings !\n    //\n    // This code is inspired by http://jsperf.com/arraybuffer-to-string-apply-performance/2\n    var chunk = 65536;\n    var result = [],\n        len = array.length,\n        type = exports.getTypeOf(array),\n        k = 0,\n        canUseApply = true;\n      try {\n         switch(type) {\n            case \"uint8array\":\n               String.fromCharCode.apply(null, new Uint8Array(0));\n               break;\n            case \"nodebuffer\":\n               String.fromCharCode.apply(null, nodeBuffer(0));\n               break;\n         }\n      } catch(e) {\n         canUseApply = false;\n      }\n\n      // no apply : slow and painful algorithm\n      // default browser on android 4.*\n      if (!canUseApply) {\n         var resultStr = \"\";\n         for(var i = 0; i < array.length;i++) {\n            resultStr += String.fromCharCode(array[i]);\n         }\n    return resultStr;\n    }\n    while (k < len && chunk > 1) {\n        try {\n            if (type === \"array\" || type === \"nodebuffer\") {\n                result.push(String.fromCharCode.apply(null, array.slice(k, Math.min(k + chunk, len))));\n            }\n            else {\n                result.push(String.fromCharCode.apply(null, array.subarray(k, Math.min(k + chunk, len))));\n            }\n            k += chunk;\n        }\n        catch (e) {\n            chunk = Math.floor(chunk / 2);\n        }\n    }\n    return result.join(\"\");\n}\n\nexports.applyFromCharCode = arrayLikeToString;\n\n\n/**\n * Copy the data from an array-like to an other array-like.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayFrom the origin array.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayTo the destination array which will be mutated.\n * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated destination array.\n */\nfunction arrayLikeToArrayLike(arrayFrom, arrayTo) {\n    for (var i = 0; i < arrayFrom.length; i++) {\n        arrayTo[i] = arrayFrom[i];\n    }\n    return arrayTo;\n}\n\n// a matrix containing functions to transform everything into everything.\nvar transform = {};\n\n// string to ?\ntransform[\"string\"] = {\n    \"string\": identity,\n    \"array\": function(input) {\n        return stringToArrayLike(input, new Array(input.length));\n    },\n    \"arraybuffer\": function(input) {\n        return transform[\"string\"][\"uint8array\"](input).buffer;\n    },\n    \"uint8array\": function(input) {\n        return stringToArrayLike(input, new Uint8Array(input.length));\n    },\n    \"nodebuffer\": function(input) {\n        return stringToArrayLike(input, nodeBuffer(input.length));\n    }\n};\n\n// array to ?\ntransform[\"array\"] = {\n    \"string\": arrayLikeToString,\n    \"array\": identity,\n    \"arraybuffer\": function(input) {\n        return (new Uint8Array(input)).buffer;\n    },\n    \"uint8array\": function(input) {\n        return new Uint8Array(input);\n    },\n    \"nodebuffer\": function(input) {\n        return nodeBuffer(input);\n    }\n};\n\n// arraybuffer to ?\ntransform[\"arraybuffer\"] = {\n    \"string\": function(input) {\n        return arrayLikeToString(new Uint8Array(input));\n    },\n    \"array\": function(input) {\n        return arrayLikeToArrayLike(new Uint8Array(input), new Array(input.byteLength));\n    },\n    \"arraybuffer\": identity,\n    \"uint8array\": function(input) {\n        return new Uint8Array(input);\n    },\n    \"nodebuffer\": function(input) {\n        return nodeBuffer(new Uint8Array(input));\n    }\n};\n\n// uint8array to ?\ntransform[\"uint8array\"] = {\n    \"string\": arrayLikeToString,\n    \"array\": function(input) {\n        return arrayLikeToArrayLike(input, new Array(input.length));\n    },\n    \"arraybuffer\": function(input) {\n        return input.buffer;\n    },\n    \"uint8array\": identity,\n    \"nodebuffer\": function(input) {\n        return nodeBuffer(input);\n    }\n};\n\n// nodebuffer to ?\ntransform[\"nodebuffer\"] = {\n    \"string\": arrayLikeToString,\n    \"array\": function(input) {\n        return arrayLikeToArrayLike(input, new Array(input.length));\n    },\n    \"arraybuffer\": function(input) {\n        return transform[\"nodebuffer\"][\"uint8array\"](input).buffer;\n    },\n    \"uint8array\": function(input) {\n        return arrayLikeToArrayLike(input, new Uint8Array(input.length));\n    },\n    \"nodebuffer\": identity\n};\n\n/**\n * Transform an input into any type.\n * The supported output type are : string, array, uint8array, arraybuffer, nodebuffer.\n * If no output type is specified, the unmodified input will be returned.\n * @param {String} outputType the output type.\n * @param {String|Array|ArrayBuffer|Uint8Array|Buffer} input the input to convert.\n * @throws {Error} an Error if the browser doesn't support the requested output type.\n */\nexports.transformTo = function(outputType, input) {\n    if (!input) {\n        // undefined, null, etc\n        // an empty string won't harm.\n        input = \"\";\n    }\n    if (!outputType) {\n        return input;\n    }\n    exports.checkSupport(outputType);\n    var inputType = exports.getTypeOf(input);\n    var result = transform[inputType][outputType](input);\n    return result;\n};\n\n/**\n * Return the type of the input.\n * The type will be in a format valid for JSZip.utils.transformTo : string, array, uint8array, arraybuffer.\n * @param {Object} input the input to identify.\n * @return {String} the (lowercase) type of the input.\n */\nexports.getTypeOf = function(input) {\n    if (typeof input === \"string\") {\n        return \"string\";\n    }\n    if (Object.prototype.toString.call(input) === \"[object Array]\") {\n        return \"array\";\n    }\n    if (support.nodebuffer && nodeBuffer.test(input)) {\n        return \"nodebuffer\";\n    }\n    if (support.uint8array && input instanceof Uint8Array) {\n        return \"uint8array\";\n    }\n    if (support.arraybuffer && input instanceof ArrayBuffer) {\n        return \"arraybuffer\";\n    }\n};\n\n/**\n * Throw an exception if the type is not supported.\n * @param {String} type the type to check.\n * @throws {Error} an Error if the browser doesn't support the requested type.\n */\nexports.checkSupport = function(type) {\n    var supported = support[type.toLowerCase()];\n    if (!supported) {\n        throw new Error(type + \" is not supported by this browser\");\n    }\n};\nexports.MAX_VALUE_16BITS = 65535;\nexports.MAX_VALUE_32BITS = -1; // well, \"\\xFF\\xFF\\xFF\\xFF\\xFF\\xFF\\xFF\\xFF\" is parsed as -1\n\n/**\n * Prettify a string read as binary.\n * @param {string} str the string to prettify.\n * @return {string} a pretty string.\n */\nexports.pretty = function(str) {\n    var res = '',\n        code, i;\n    for (i = 0; i < (str || \"\").length; i++) {\n        code = str.charCodeAt(i);\n        res += '\\\\x' + (code < 16 ? \"0\" : \"\") + code.toString(16).toUpperCase();\n    }\n    return res;\n};\n\n/**\n * Find a compression registered in JSZip.\n * @param {string} compressionMethod the method magic to find.\n * @return {Object|null} the JSZip compression object, null if none found.\n */\nexports.findCompression = function(compressionMethod) {\n    for (var method in compressions) {\n        if (!compressions.hasOwnProperty(method)) {\n            continue;\n        }\n        if (compressions[method].magic === compressionMethod) {\n            return compressions[method];\n        }\n    }\n    return null;\n};\n/**\n* Cross-window, cross-Node-context regular expression detection\n* @param  {Object}  object Anything\n* @return {Boolean}        true if the object is a regular expression,\n* false otherwise\n*/\nexports.isRegExp = function (object) {\n    return Object.prototype.toString.call(object) === \"[object RegExp]\";\n};\n\n\n},{\"./compressions\":3,\"./nodeBuffer\":11,\"./support\":17}],22:[function(_dereq_,module,exports){\n'use strict';\nvar StringReader = _dereq_('./stringReader');\nvar NodeBufferReader = _dereq_('./nodeBufferReader');\nvar Uint8ArrayReader = _dereq_('./uint8ArrayReader');\nvar utils = _dereq_('./utils');\nvar sig = _dereq_('./signature');\nvar ZipEntry = _dereq_('./zipEntry');\nvar support = _dereq_('./support');\nvar jszipProto = _dereq_('./object');\n//  class ZipEntries {{{\n/**\n * All the entries in the zip file.\n * @constructor\n * @param {String|ArrayBuffer|Uint8Array} data the binary stream to load.\n * @param {Object} loadOptions Options for loading the stream.\n */\nfunction ZipEntries(data, loadOptions) {\n    this.files = [];\n    this.loadOptions = loadOptions;\n    if (data) {\n        this.load(data);\n    }\n}\nZipEntries.prototype = {\n    /**\n     * Check that the reader is on the speficied signature.\n     * @param {string} expectedSignature the expected signature.\n     * @throws {Error} if it is an other signature.\n     */\n    checkSignature: function(expectedSignature) {\n        var signature = this.reader.readString(4);\n        if (signature !== expectedSignature) {\n            throw new Error(\"Corrupted zip or bug : unexpected signature \" + \"(\" + utils.pretty(signature) + \", expected \" + utils.pretty(expectedSignature) + \")\");\n        }\n    },\n    /**\n     * Read the end of the central directory.\n     */\n    readBlockEndOfCentral: function() {\n        this.diskNumber = this.reader.readInt(2);\n        this.diskWithCentralDirStart = this.reader.readInt(2);\n        this.centralDirRecordsOnThisDisk = this.reader.readInt(2);\n        this.centralDirRecords = this.reader.readInt(2);\n        this.centralDirSize = this.reader.readInt(4);\n        this.centralDirOffset = this.reader.readInt(4);\n\n        this.zipCommentLength = this.reader.readInt(2);\n        // warning : the encoding depends of the system locale\n        // On a linux machine with LANG=en_US.utf8, this field is utf8 encoded.\n        // On a windows machine, this field is encoded with the localized windows code page.\n        this.zipComment = this.reader.readString(this.zipCommentLength);\n        // To get consistent behavior with the generation part, we will assume that\n        // this is utf8 encoded.\n        this.zipComment = jszipProto.utf8decode(this.zipComment);\n    },\n    /**\n     * Read the end of the Zip 64 central directory.\n     * Not merged with the method readEndOfCentral :\n     * The end of central can coexist with its Zip64 brother,\n     * I don't want to read the wrong number of bytes !\n     */\n    readBlockZip64EndOfCentral: function() {\n        this.zip64EndOfCentralSize = this.reader.readInt(8);\n        this.versionMadeBy = this.reader.readString(2);\n        this.versionNeeded = this.reader.readInt(2);\n        this.diskNumber = this.reader.readInt(4);\n        this.diskWithCentralDirStart = this.reader.readInt(4);\n        this.centralDirRecordsOnThisDisk = this.reader.readInt(8);\n        this.centralDirRecords = this.reader.readInt(8);\n        this.centralDirSize = this.reader.readInt(8);\n        this.centralDirOffset = this.reader.readInt(8);\n\n        this.zip64ExtensibleData = {};\n        var extraDataSize = this.zip64EndOfCentralSize - 44,\n            index = 0,\n            extraFieldId,\n            extraFieldLength,\n            extraFieldValue;\n        while (index < extraDataSize) {\n            extraFieldId = this.reader.readInt(2);\n            extraFieldLength = this.reader.readInt(4);\n            extraFieldValue = this.reader.readString(extraFieldLength);\n            this.zip64ExtensibleData[extraFieldId] = {\n                id: extraFieldId,\n                length: extraFieldLength,\n                value: extraFieldValue\n            };\n        }\n    },\n    /**\n     * Read the end of the Zip 64 central directory locator.\n     */\n    readBlockZip64EndOfCentralLocator: function() {\n        this.diskWithZip64CentralDirStart = this.reader.readInt(4);\n        this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8);\n        this.disksCount = this.reader.readInt(4);\n        if (this.disksCount > 1) {\n            throw new Error(\"Multi-volumes zip are not supported\");\n        }\n    },\n    /**\n     * Read the local files, based on the offset read in the central part.\n     */\n    readLocalFiles: function() {\n        var i, file;\n        for (i = 0; i < this.files.length; i++) {\n            file = this.files[i];\n            this.reader.setIndex(file.localHeaderOffset);\n            this.checkSignature(sig.LOCAL_FILE_HEADER);\n            file.readLocalPart(this.reader);\n            file.handleUTF8();\n        }\n    },\n    /**\n     * Read the central directory.\n     */\n    readCentralDir: function() {\n        var file;\n\n        this.reader.setIndex(this.centralDirOffset);\n        while (this.reader.readString(4) === sig.CENTRAL_FILE_HEADER) {\n            file = new ZipEntry({\n                zip64: this.zip64\n            }, this.loadOptions);\n            file.readCentralPart(this.reader);\n            this.files.push(file);\n        }\n    },\n    /**\n     * Read the end of central directory.\n     */\n    readEndOfCentral: function() {\n        var offset = this.reader.lastIndexOfSignature(sig.CENTRAL_DIRECTORY_END);\n        if (offset === -1) {\n            throw new Error(\"Corrupted zip : can't find end of central directory\");\n        }\n        this.reader.setIndex(offset);\n        this.checkSignature(sig.CENTRAL_DIRECTORY_END);\n        this.readBlockEndOfCentral();\n\n\n        /* extract from the zip spec :\n            4)  If one of the fields in the end of central directory\n                record is too small to hold required data, the field\n                should be set to -1 (0xFFFF or 0xFFFFFFFF) and the\n                ZIP64 format record should be created.\n            5)  The end of central directory record and the\n                Zip64 end of central directory locator record must\n                reside on the same disk when splitting or spanning\n                an archive.\n         */\n        if (this.diskNumber === utils.MAX_VALUE_16BITS || this.diskWithCentralDirStart === utils.MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === utils.MAX_VALUE_16BITS || this.centralDirRecords === utils.MAX_VALUE_16BITS || this.centralDirSize === utils.MAX_VALUE_32BITS || this.centralDirOffset === utils.MAX_VALUE_32BITS) {\n            this.zip64 = true;\n\n            /*\n            Warning : the zip64 extension is supported, but ONLY if the 64bits integer read from\n            the zip file can fit into a 32bits integer. This cannot be solved : Javascript represents\n            all numbers as 64-bit double precision IEEE 754 floating point numbers.\n            So, we have 53bits for integers and bitwise operations treat everything as 32bits.\n            see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Bitwise_Operators\n            and http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf section 8.5\n            */\n\n            // should look for a zip64 EOCD locator\n            offset = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR);\n            if (offset === -1) {\n                throw new Error(\"Corrupted zip : can't find the ZIP64 end of central directory locator\");\n            }\n            this.reader.setIndex(offset);\n            this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR);\n            this.readBlockZip64EndOfCentralLocator();\n\n            // now the zip64 EOCD record\n            this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir);\n            this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_END);\n            this.readBlockZip64EndOfCentral();\n        }\n    },\n    prepareReader: function(data) {\n        var type = utils.getTypeOf(data);\n        if (type === \"string\" && !support.uint8array) {\n            this.reader = new StringReader(data, this.loadOptions.optimizedBinaryString);\n        }\n        else if (type === \"nodebuffer\") {\n            this.reader = new NodeBufferReader(data);\n        }\n        else {\n            this.reader = new Uint8ArrayReader(utils.transformTo(\"uint8array\", data));\n        }\n    },\n    /**\n     * Read a zip file and create ZipEntries.\n     * @param {String|ArrayBuffer|Uint8Array|Buffer} data the binary string representing a zip file.\n     */\n    load: function(data) {\n        this.prepareReader(data);\n        this.readEndOfCentral();\n        this.readCentralDir();\n        this.readLocalFiles();\n    }\n};\n// }}} end of ZipEntries\nmodule.exports = ZipEntries;\n\n},{\"./nodeBufferReader\":12,\"./object\":13,\"./signature\":14,\"./stringReader\":15,\"./support\":17,\"./uint8ArrayReader\":18,\"./utils\":21,\"./zipEntry\":23}],23:[function(_dereq_,module,exports){\n'use strict';\nvar StringReader = _dereq_('./stringReader');\nvar utils = _dereq_('./utils');\nvar CompressedObject = _dereq_('./compressedObject');\nvar jszipProto = _dereq_('./object');\n// class ZipEntry {{{\n/**\n * An entry in the zip file.\n * @constructor\n * @param {Object} options Options of the current file.\n * @param {Object} loadOptions Options for loading the stream.\n */\nfunction ZipEntry(options, loadOptions) {\n    this.options = options;\n    this.loadOptions = loadOptions;\n}\nZipEntry.prototype = {\n    /**\n     * say if the file is encrypted.\n     * @return {boolean} true if the file is encrypted, false otherwise.\n     */\n    isEncrypted: function() {\n        // bit 1 is set\n        return (this.bitFlag & 0x0001) === 0x0001;\n    },\n    /**\n     * say if the file has utf-8 filename/comment.\n     * @return {boolean} true if the filename/comment is in utf-8, false otherwise.\n     */\n    useUTF8: function() {\n        // bit 11 is set\n        return (this.bitFlag & 0x0800) === 0x0800;\n    },\n    /**\n     * Prepare the function used to generate the compressed content from this ZipFile.\n     * @param {DataReader} reader the reader to use.\n     * @param {number} from the offset from where we should read the data.\n     * @param {number} length the length of the data to read.\n     * @return {Function} the callback to get the compressed content (the type depends of the DataReader class).\n     */\n    prepareCompressedContent: function(reader, from, length) {\n        return function() {\n            var previousIndex = reader.index;\n            reader.setIndex(from);\n            var compressedFileData = reader.readData(length);\n            reader.setIndex(previousIndex);\n\n            return compressedFileData;\n        };\n    },\n    /**\n     * Prepare the function used to generate the uncompressed content from this ZipFile.\n     * @param {DataReader} reader the reader to use.\n     * @param {number} from the offset from where we should read the data.\n     * @param {number} length the length of the data to read.\n     * @param {JSZip.compression} compression the compression used on this file.\n     * @param {number} uncompressedSize the uncompressed size to expect.\n     * @return {Function} the callback to get the uncompressed content (the type depends of the DataReader class).\n     */\n    prepareContent: function(reader, from, length, compression, uncompressedSize) {\n        return function() {\n\n            var compressedFileData = utils.transformTo(compression.uncompressInputType, this.getCompressedContent());\n            var uncompressedFileData = compression.uncompress(compressedFileData);\n\n            if (uncompressedFileData.length !== uncompressedSize) {\n                throw new Error(\"Bug : uncompressed data size mismatch\");\n            }\n\n            return uncompressedFileData;\n        };\n    },\n    /**\n     * Read the local part of a zip file and add the info in this object.\n     * @param {DataReader} reader the reader to use.\n     */\n    readLocalPart: function(reader) {\n        var compression, localExtraFieldsLength;\n\n        // we already know everything from the central dir !\n        // If the central dir data are false, we are doomed.\n        // On the bright side, the local part is scary  : zip64, data descriptors, both, etc.\n        // The less data we get here, the more reliable this should be.\n        // Let's skip the whole header and dash to the data !\n        reader.skip(22);\n        // in some zip created on windows, the filename stored in the central dir contains \\ instead of /.\n        // Strangely, the filename here is OK.\n        // I would love to treat these zip files as corrupted (see http://www.info-zip.org/FAQ.html#backslashes\n        // or APPNOTE#4.4.17.1, \"All slashes MUST be forward slashes '/'\") but there are a lot of bad zip generators...\n        // Search \"unzip mismatching \"local\" filename continuing with \"central\" filename version\" on\n        // the internet.\n        //\n        // I think I see the logic here : the central directory is used to display\n        // content and the local directory is used to extract the files. Mixing / and \\\n        // may be used to display \\ to windows users and use / when extracting the files.\n        // Unfortunately, this lead also to some issues : http://seclists.org/fulldisclosure/2009/Sep/394\n        this.fileNameLength = reader.readInt(2);\n        localExtraFieldsLength = reader.readInt(2); // can't be sure this will be the same as the central dir\n        this.fileName = reader.readString(this.fileNameLength);\n        reader.skip(localExtraFieldsLength);\n\n        if (this.compressedSize == -1 || this.uncompressedSize == -1) {\n            throw new Error(\"Bug or corrupted zip : didn't get enough informations from the central directory \" + \"(compressedSize == -1 || uncompressedSize == -1)\");\n        }\n\n        compression = utils.findCompression(this.compressionMethod);\n        if (compression === null) { // no compression found\n            throw new Error(\"Corrupted zip : compression \" + utils.pretty(this.compressionMethod) + \" unknown (inner file : \" + this.fileName + \")\");\n        }\n        this.decompressed = new CompressedObject();\n        this.decompressed.compressedSize = this.compressedSize;\n        this.decompressed.uncompressedSize = this.uncompressedSize;\n        this.decompressed.crc32 = this.crc32;\n        this.decompressed.compressionMethod = this.compressionMethod;\n        this.decompressed.getCompressedContent = this.prepareCompressedContent(reader, reader.index, this.compressedSize, compression);\n        this.decompressed.getContent = this.prepareContent(reader, reader.index, this.compressedSize, compression, this.uncompressedSize);\n\n        // we need to compute the crc32...\n        if (this.loadOptions.checkCRC32) {\n            this.decompressed = utils.transformTo(\"string\", this.decompressed.getContent());\n            if (jszipProto.crc32(this.decompressed) !== this.crc32) {\n                throw new Error(\"Corrupted zip : CRC32 mismatch\");\n            }\n        }\n    },\n\n    /**\n     * Read the central part of a zip file and add the info in this object.\n     * @param {DataReader} reader the reader to use.\n     */\n    readCentralPart: function(reader) {\n        this.versionMadeBy = reader.readString(2);\n        this.versionNeeded = reader.readInt(2);\n        this.bitFlag = reader.readInt(2);\n        this.compressionMethod = reader.readString(2);\n        this.date = reader.readDate();\n        this.crc32 = reader.readInt(4);\n        this.compressedSize = reader.readInt(4);\n        this.uncompressedSize = reader.readInt(4);\n        this.fileNameLength = reader.readInt(2);\n        this.extraFieldsLength = reader.readInt(2);\n        this.fileCommentLength = reader.readInt(2);\n        this.diskNumberStart = reader.readInt(2);\n        this.internalFileAttributes = reader.readInt(2);\n        this.externalFileAttributes = reader.readInt(4);\n        this.localHeaderOffset = reader.readInt(4);\n\n        if (this.isEncrypted()) {\n            throw new Error(\"Encrypted zip are not supported\");\n        }\n\n        this.fileName = reader.readString(this.fileNameLength);\n        this.readExtraFields(reader);\n        this.parseZIP64ExtraField(reader);\n        this.fileComment = reader.readString(this.fileCommentLength);\n\n        // warning, this is true only for zip with madeBy == DOS (plateform dependent feature)\n        this.dir = this.externalFileAttributes & 0x00000010 ? true : false;\n    },\n    /**\n     * Parse the ZIP64 extra field and merge the info in the current ZipEntry.\n     * @param {DataReader} reader the reader to use.\n     */\n    parseZIP64ExtraField: function(reader) {\n\n        if (!this.extraFields[0x0001]) {\n            return;\n        }\n\n        // should be something, preparing the extra reader\n        var extraReader = new StringReader(this.extraFields[0x0001].value);\n\n        // I really hope that these 64bits integer can fit in 32 bits integer, because js\n        // won't let us have more.\n        if (this.uncompressedSize === utils.MAX_VALUE_32BITS) {\n            this.uncompressedSize = extraReader.readInt(8);\n        }\n        if (this.compressedSize === utils.MAX_VALUE_32BITS) {\n            this.compressedSize = extraReader.readInt(8);\n        }\n        if (this.localHeaderOffset === utils.MAX_VALUE_32BITS) {\n            this.localHeaderOffset = extraReader.readInt(8);\n        }\n        if (this.diskNumberStart === utils.MAX_VALUE_32BITS) {\n            this.diskNumberStart = extraReader.readInt(4);\n        }\n    },\n    /**\n     * Read the central part of a zip file and add the info in this object.\n     * @param {DataReader} reader the reader to use.\n     */\n    readExtraFields: function(reader) {\n        var start = reader.index,\n            extraFieldId,\n            extraFieldLength,\n            extraFieldValue;\n\n        this.extraFields = this.extraFields || {};\n\n        while (reader.index < start + this.extraFieldsLength) {\n            extraFieldId = reader.readInt(2);\n            extraFieldLength = reader.readInt(2);\n            extraFieldValue = reader.readString(extraFieldLength);\n\n            this.extraFields[extraFieldId] = {\n                id: extraFieldId,\n                length: extraFieldLength,\n                value: extraFieldValue\n            };\n        }\n    },\n    /**\n     * Apply an UTF8 transformation if needed.\n     */\n    handleUTF8: function() {\n        if (this.useUTF8()) {\n            this.fileName = jszipProto.utf8decode(this.fileName);\n            this.fileComment = jszipProto.utf8decode(this.fileComment);\n        } else {\n            var upath = this.findExtraFieldUnicodePath();\n            if (upath !== null) {\n                this.fileName = upath;\n            }\n            var ucomment = this.findExtraFieldUnicodeComment();\n            if (ucomment !== null) {\n                this.fileComment = ucomment;\n            }\n        }\n    },\n\n    /**\n     * Find the unicode path declared in the extra field, if any.\n     * @return {String} the unicode path, null otherwise.\n     */\n    findExtraFieldUnicodePath: function() {\n        var upathField = this.extraFields[0x7075];\n        if (upathField) {\n            var extraReader = new StringReader(upathField.value);\n\n            // wrong version\n            if (extraReader.readInt(1) !== 1) {\n                return null;\n            }\n\n            // the crc of the filename changed, this field is out of date.\n            if (jszipProto.crc32(this.fileName) !== extraReader.readInt(4)) {\n                return null;\n            }\n\n            return jszipProto.utf8decode(extraReader.readString(upathField.length - 5));\n        }\n        return null;\n    },\n\n    /**\n     * Find the unicode comment declared in the extra field, if any.\n     * @return {String} the unicode comment, null otherwise.\n     */\n    findExtraFieldUnicodeComment: function() {\n        var ucommentField = this.extraFields[0x6375];\n        if (ucommentField) {\n            var extraReader = new StringReader(ucommentField.value);\n\n            // wrong version\n            if (extraReader.readInt(1) !== 1) {\n                return null;\n            }\n\n            // the crc of the comment changed, this field is out of date.\n            if (jszipProto.crc32(this.fileComment) !== extraReader.readInt(4)) {\n                return null;\n            }\n\n            return jszipProto.utf8decode(extraReader.readString(ucommentField.length - 5));\n        }\n        return null;\n    }\n};\nmodule.exports = ZipEntry;\n\n},{\"./compressedObject\":2,\"./object\":13,\"./stringReader\":15,\"./utils\":21}],24:[function(_dereq_,module,exports){\n// Top level file is just a mixin of submodules & constants\n'use strict';\n\nvar assign    = _dereq_('./lib/utils/common').assign;\n\nvar deflate   = _dereq_('./lib/deflate');\nvar inflate   = _dereq_('./lib/inflate');\nvar constants = _dereq_('./lib/zlib/constants');\n\nvar pako = {};\n\nassign(pako, deflate, inflate, constants);\n\nmodule.exports = pako;\n},{\"./lib/deflate\":25,\"./lib/inflate\":26,\"./lib/utils/common\":27,\"./lib/zlib/constants\":30}],25:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar zlib_deflate = _dereq_('./zlib/deflate.js');\nvar utils = _dereq_('./utils/common');\nvar strings = _dereq_('./utils/strings');\nvar msg = _dereq_('./zlib/messages');\nvar zstream = _dereq_('./zlib/zstream');\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nvar Z_NO_FLUSH      = 0;\nvar Z_FINISH        = 4;\n\nvar Z_OK            = 0;\nvar Z_STREAM_END    = 1;\n\nvar Z_DEFAULT_COMPRESSION = -1;\n\nvar Z_DEFAULT_STRATEGY    = 0;\n\nvar Z_DEFLATED  = 8;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overriden.\n **/\n\n/**\n * Deflate.result -> Uint8Array|Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n *    (each char code [0..255])\n * - `header` (Object) - custom header for gzip\n *   - `text` (Boolean) - true if compressed data believed to be text\n *   - `time` (Number) - modification time, unix timestamp\n *   - `os` (Number) - operation system code\n *   - `extra` (Array) - array of bytes with extra data (max 65536)\n *   - `name` (String) - file name (binary string)\n *   - `comment` (String) - comment (binary string)\n *   - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n *   , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n *   , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true);  // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nvar Deflate = function(options) {\n\n  this.options = utils.assign({\n    level: Z_DEFAULT_COMPRESSION,\n    method: Z_DEFLATED,\n    chunkSize: 16384,\n    windowBits: 15,\n    memLevel: 8,\n    strategy: Z_DEFAULT_STRATEGY,\n    to: ''\n  }, options || {});\n\n  var opt = this.options;\n\n  if (opt.raw && (opt.windowBits > 0)) {\n    opt.windowBits = -opt.windowBits;\n  }\n\n  else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n    opt.windowBits += 16;\n  }\n\n  this.err    = 0;      // error code, if happens (0 = Z_OK)\n  this.msg    = '';     // error message\n  this.ended  = false;  // used to avoid multiple onEnd() calls\n  this.chunks = [];     // chunks of compressed data\n\n  this.strm = new zstream();\n  this.strm.avail_out = 0;\n\n  var status = zlib_deflate.deflateInit2(\n    this.strm,\n    opt.level,\n    opt.method,\n    opt.windowBits,\n    opt.memLevel,\n    opt.strategy\n  );\n\n  if (status !== Z_OK) {\n    throw new Error(msg[status]);\n  }\n\n  if (opt.header) {\n    zlib_deflate.deflateSetHeader(this.strm, opt.header);\n  }\n};\n\n/**\n * Deflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|String): input data. Strings will be converted to\n *   utf8 byte sequence.\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n *   See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That flush internal pending buffers and call\n * [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * array format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true);  // push last chunk\n * ```\n **/\nDeflate.prototype.push = function(data, mode) {\n  var strm = this.strm;\n  var chunkSize = this.options.chunkSize;\n  var status, _mode;\n\n  if (this.ended) { return false; }\n\n  _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH);\n\n  // Convert data if needed\n  if (typeof data === 'string') {\n    // If we need to compress text, change encoding to utf8.\n    strm.input = strings.string2buf(data);\n  } else {\n    strm.input = data;\n  }\n\n  strm.next_in = 0;\n  strm.avail_in = strm.input.length;\n\n  do {\n    if (strm.avail_out === 0) {\n      strm.output = new utils.Buf8(chunkSize);\n      strm.next_out = 0;\n      strm.avail_out = chunkSize;\n    }\n    status = zlib_deflate.deflate(strm, _mode);    /* no bad return value */\n\n    if (status !== Z_STREAM_END && status !== Z_OK) {\n      this.onEnd(status);\n      this.ended = true;\n      return false;\n    }\n    if (strm.avail_out === 0 || (strm.avail_in === 0 && _mode === Z_FINISH)) {\n      if (this.options.to === 'string') {\n        this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out)));\n      } else {\n        this.onData(utils.shrinkBuf(strm.output, strm.next_out));\n      }\n    }\n  } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END);\n\n  // Finalize on the last chunk.\n  if (_mode === Z_FINISH) {\n    status = zlib_deflate.deflateEnd(this.strm);\n    this.onEnd(status);\n    this.ended = true;\n    return status === Z_OK;\n  }\n\n  return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): ouput data. Type of array depends\n *   on js engine support. When string output requested, each chunk\n *   will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate.prototype.onData = function(chunk) {\n  this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n *   other if not.\n *\n * Called once after you tell deflate that input stream complete\n * or error happenned. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate.prototype.onEnd = function(status) {\n  // On success - join\n  if (status === Z_OK) {\n    if (this.options.to === 'string') {\n      this.result = this.chunks.join('');\n    } else {\n      this.result = utils.flattenChunks(this.chunks);\n    }\n  }\n  this.chunks = [];\n  this.err = status;\n  this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate alrorythm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n *   negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n *    (each char code [0..255])\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n *   , data = Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate(input, options) {\n  var deflator = new Deflate(options);\n\n  deflator.push(input, true);\n\n  // That will never happens, if you don't cheat with options :)\n  if (deflator.err) { throw deflator.msg; }\n\n  return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw(input, options) {\n  options = options || {};\n  options.raw = true;\n  return deflate(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip(input, options) {\n  options = options || {};\n  options.gzip = true;\n  return deflate(input, options);\n}\n\n\nexports.Deflate = Deflate;\nexports.deflate = deflate;\nexports.deflateRaw = deflateRaw;\nexports.gzip = gzip;\n},{\"./utils/common\":27,\"./utils/strings\":28,\"./zlib/deflate.js\":32,\"./zlib/messages\":37,\"./zlib/zstream\":39}],26:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar zlib_inflate = _dereq_('./zlib/inflate.js');\nvar utils = _dereq_('./utils/common');\nvar strings = _dereq_('./utils/strings');\nvar c = _dereq_('./zlib/constants');\nvar msg = _dereq_('./zlib/messages');\nvar zstream = _dereq_('./zlib/zstream');\nvar gzheader = _dereq_('./zlib/gzheader');\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overriden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n *   from utf8 to utf16 (javascript) string. When string output requested,\n *   chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n *   , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n *   , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true);  // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nvar Inflate = function(options) {\n\n  this.options = utils.assign({\n    chunkSize: 16384,\n    windowBits: 0,\n    to: ''\n  }, options || {});\n\n  var opt = this.options;\n\n  // Force window size for `raw` data, if not set directly,\n  // because we have no header for autodetect.\n  if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n    opt.windowBits = -opt.windowBits;\n    if (opt.windowBits === 0) { opt.windowBits = -15; }\n  }\n\n  // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n  if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n      !(options && options.windowBits)) {\n    opt.windowBits += 32;\n  }\n\n  // Gzip header has no info about windows size, we can do autodetect only\n  // for deflate. So, if window size not set, force it to max when gzip possible\n  if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n    // bit 3 (16) -> gzipped data\n    // bit 4 (32) -> autodetect gzip/deflate\n    if ((opt.windowBits & 15) === 0) {\n      opt.windowBits |= 15;\n    }\n  }\n\n  this.err    = 0;      // error code, if happens (0 = Z_OK)\n  this.msg    = '';     // error message\n  this.ended  = false;  // used to avoid multiple onEnd() calls\n  this.chunks = [];     // chunks of compressed data\n\n  this.strm   = new zstream();\n  this.strm.avail_out = 0;\n\n  var status  = zlib_inflate.inflateInit2(\n    this.strm,\n    opt.windowBits\n  );\n\n  if (status !== c.Z_OK) {\n    throw new Error(msg[status]);\n  }\n\n  this.header = new gzheader();\n\n  zlib_inflate.inflateGetHeader(this.strm, this.header);\n};\n\n/**\n * Inflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|String): input data\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n *   See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That flush internal pending buffers and call\n * [[Inflate#onEnd]].\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true);  // push last chunk\n * ```\n **/\nInflate.prototype.push = function(data, mode) {\n  var strm = this.strm;\n  var chunkSize = this.options.chunkSize;\n  var status, _mode;\n  var next_out_utf8, tail, utf8str;\n\n  if (this.ended) { return false; }\n  _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH);\n\n  // Convert data if needed\n  if (typeof data === 'string') {\n    // Only binary strings can be decompressed on practice\n    strm.input = strings.binstring2buf(data);\n  } else {\n    strm.input = data;\n  }\n\n  strm.next_in = 0;\n  strm.avail_in = strm.input.length;\n\n  do {\n    if (strm.avail_out === 0) {\n      strm.output = new utils.Buf8(chunkSize);\n      strm.next_out = 0;\n      strm.avail_out = chunkSize;\n    }\n\n    status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH);    /* no bad return value */\n\n    if (status !== c.Z_STREAM_END && status !== c.Z_OK) {\n      this.onEnd(status);\n      this.ended = true;\n      return false;\n    }\n\n    if (strm.next_out) {\n      if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && _mode === c.Z_FINISH)) {\n\n        if (this.options.to === 'string') {\n\n          next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n          tail = strm.next_out - next_out_utf8;\n          utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n          // move tail\n          strm.next_out = tail;\n          strm.avail_out = chunkSize - tail;\n          if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); }\n\n          this.onData(utf8str);\n\n        } else {\n          this.onData(utils.shrinkBuf(strm.output, strm.next_out));\n        }\n      }\n    }\n  } while ((strm.avail_in > 0) && status !== c.Z_STREAM_END);\n\n  if (status === c.Z_STREAM_END) {\n    _mode = c.Z_FINISH;\n  }\n  // Finalize on the last chunk.\n  if (_mode === c.Z_FINISH) {\n    status = zlib_inflate.inflateEnd(this.strm);\n    this.onEnd(status);\n    this.ended = true;\n    return status === c.Z_OK;\n  }\n\n  return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): ouput data. Type of array depends\n *   on js engine support. When string output requested, each chunk\n *   will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate.prototype.onData = function(chunk) {\n  this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n *   other if not.\n *\n * Called once after you tell inflate that input stream complete\n * or error happenned. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate.prototype.onEnd = function(status) {\n  // On success - join\n  if (status === c.Z_OK) {\n    if (this.options.to === 'string') {\n      // Glue & convert here, until we teach pako to send\n      // utf8 alligned strings to onData\n      this.result = this.chunks.join('');\n    } else {\n      this.result = utils.flattenChunks(this.chunks);\n    }\n  }\n  this.chunks = [];\n  this.err = status;\n  this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n *   negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n *   from utf8 to utf16 (javascript) string. When string output requested,\n *   chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n *   , input = pako.deflate([1,2,3,4,5,6,7,8,9])\n *   , output;\n *\n * try {\n *   output = pako.inflate(input);\n * } catch (err)\n *   console.log(err);\n * }\n * ```\n **/\nfunction inflate(input, options) {\n  var inflator = new Inflate(options);\n\n  inflator.push(input, true);\n\n  // That will never happens, if you don't cheat with options :)\n  if (inflator.err) { throw inflator.msg; }\n\n  return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw(input, options) {\n  options = options || {};\n  options.raw = true;\n  return inflate(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nexports.Inflate = Inflate;\nexports.inflate = inflate;\nexports.inflateRaw = inflateRaw;\nexports.ungzip  = inflate;\n\n},{\"./utils/common\":27,\"./utils/strings\":28,\"./zlib/constants\":30,\"./zlib/gzheader\":33,\"./zlib/inflate.js\":35,\"./zlib/messages\":37,\"./zlib/zstream\":39}],27:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar TYPED_OK =  (typeof Uint8Array !== 'undefined') &&\n                (typeof Uint16Array !== 'undefined') &&\n                (typeof Int32Array !== 'undefined');\n\n\nexports.assign = function (obj /*from1, from2, from3, ...*/) {\n  var sources = Array.prototype.slice.call(arguments, 1);\n  while (sources.length) {\n    var source = sources.shift();\n    if (!source) { continue; }\n\n    if (typeof(source) !== 'object') {\n      throw new TypeError(source + 'must be non-object');\n    }\n\n    for (var p in source) {\n      if (source.hasOwnProperty(p)) {\n        obj[p] = source[p];\n      }\n    }\n  }\n\n  return obj;\n};\n\n\n// reduce buffer size, avoiding mem copy\nexports.shrinkBuf = function (buf, size) {\n  if (buf.length === size) { return buf; }\n  if (buf.subarray) { return buf.subarray(0, size); }\n  buf.length = size;\n  return buf;\n};\n\n\nvar fnTyped = {\n  arraySet: function (dest, src, src_offs, len, dest_offs) {\n    if (src.subarray && dest.subarray) {\n      dest.set(src.subarray(src_offs, src_offs+len), dest_offs);\n      return;\n    }\n    // Fallback to ordinary array\n    for(var i=0; i<len; i++) {\n      dest[dest_offs + i] = src[src_offs + i];\n    }\n  },\n  // Join array of chunks to single array.\n  flattenChunks: function(chunks) {\n    var i, l, len, pos, chunk, result;\n\n    // calculate data length\n    len = 0;\n    for (i=0, l=chunks.length; i<l; i++) {\n      len += chunks[i].length;\n    }\n\n    // join chunks\n    result = new Uint8Array(len);\n    pos = 0;\n    for (i=0, l=chunks.length; i<l; i++) {\n      chunk = chunks[i];\n      result.set(chunk, pos);\n      pos += chunk.length;\n    }\n\n    return result;\n  }\n};\n\nvar fnUntyped = {\n  arraySet: function (dest, src, src_offs, len, dest_offs) {\n    for(var i=0; i<len; i++) {\n      dest[dest_offs + i] = src[src_offs + i];\n    }\n  },\n  // Join array of chunks to single array.\n  flattenChunks: function(chunks) {\n    return [].concat.apply([], chunks);\n  }\n};\n\n\n// Enable/Disable typed arrays use, for testing\n//\nexports.setTyped = function (on) {\n  if (on) {\n    exports.Buf8  = Uint8Array;\n    exports.Buf16 = Uint16Array;\n    exports.Buf32 = Int32Array;\n    exports.assign(exports, fnTyped);\n  } else {\n    exports.Buf8  = Array;\n    exports.Buf16 = Array;\n    exports.Buf32 = Array;\n    exports.assign(exports, fnUntyped);\n  }\n};\n\nexports.setTyped(TYPED_OK);\n},{}],28:[function(_dereq_,module,exports){\n// String encode/decode helpers\n'use strict';\n\n\nvar utils = _dereq_('./common');\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safary\n//\nvar STR_APPLY_OK = true;\nvar STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, [0]); } catch(__) { STR_APPLY_OK = false; }\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch(__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nvar _utf8len = new utils.Buf8(256);\nfor (var i=0; i<256; i++) {\n  _utf8len[i] = (i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1);\n}\n_utf8len[254]=_utf8len[254]=1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nexports.string2buf = function (str) {\n  var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n  // count binary size\n  for (m_pos = 0; m_pos < str_len; m_pos++) {\n    c = str.charCodeAt(m_pos);\n    if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {\n      c2 = str.charCodeAt(m_pos+1);\n      if ((c2 & 0xfc00) === 0xdc00) {\n        c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n        m_pos++;\n      }\n    }\n    buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n  }\n\n  // allocate buffer\n  buf = new utils.Buf8(buf_len);\n\n  // convert\n  for (i=0, m_pos = 0; i < buf_len; m_pos++) {\n    c = str.charCodeAt(m_pos);\n    if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {\n      c2 = str.charCodeAt(m_pos+1);\n      if ((c2 & 0xfc00) === 0xdc00) {\n        c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n        m_pos++;\n      }\n    }\n    if (c < 0x80) {\n      /* one byte */\n      buf[i++] = c;\n    } else if (c < 0x800) {\n      /* two bytes */\n      buf[i++] = 0xC0 | (c >>> 6);\n      buf[i++] = 0x80 | (c & 0x3f);\n    } else if (c < 0x10000) {\n      /* three bytes */\n      buf[i++] = 0xE0 | (c >>> 12);\n      buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n      buf[i++] = 0x80 | (c & 0x3f);\n    } else {\n      /* four bytes */\n      buf[i++] = 0xf0 | (c >>> 18);\n      buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n      buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n      buf[i++] = 0x80 | (c & 0x3f);\n    }\n  }\n\n  return buf;\n};\n\n// Helper (used in 2 places)\nfunction buf2binstring(buf, len) {\n  // use fallback for big arrays to avoid stack overflow\n  if (len < 65537) {\n    if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) {\n      return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len));\n    }\n  }\n\n  var result = '';\n  for(var i=0; i < len; i++) {\n    result += String.fromCharCode(buf[i]);\n  }\n  return result;\n}\n\n\n// Convert byte array to binary string\nexports.buf2binstring = function(buf) {\n  return buf2binstring(buf, buf.length);\n};\n\n\n// Convert binary string (typed, when possible)\nexports.binstring2buf = function(str) {\n  var buf = new utils.Buf8(str.length);\n  for(var i=0, len=buf.length; i < len; i++) {\n    buf[i] = str.charCodeAt(i);\n  }\n  return buf;\n};\n\n\n// convert array to string\nexports.buf2string = function (buf, max) {\n  var i, out, c, c_len;\n  var len = max || buf.length;\n\n  // Reserve max possible length (2 words per char)\n  // NB: by unknown reasons, Array is significantly faster for\n  //     String.fromCharCode.apply than Uint16Array.\n  var utf16buf = new Array(len*2);\n\n  for (out=0, i=0; i<len;) {\n    c = buf[i++];\n    // quick process ascii\n    if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n    c_len = _utf8len[c];\n    // skip 5 & 6 byte codes\n    if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; }\n\n    // apply mask on first byte\n    c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n    // join the rest\n    while (c_len > 1 && i < len) {\n      c = (c << 6) | (buf[i++] & 0x3f);\n      c_len--;\n    }\n\n    // terminated by end of string?\n    if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n    if (c < 0x10000) {\n      utf16buf[out++] = c;\n    } else {\n      c -= 0x10000;\n      utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n      utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n    }\n  }\n\n  return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max   - length limit (mandatory);\nexports.utf8border = function(buf, max) {\n  var pos;\n\n  max = max || buf.length;\n  if (max > buf.length) { max = buf.length; }\n\n  // go back from last position, until start of sequence found\n  pos = max-1;\n  while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n  // Fuckup - very small and broken sequence,\n  // return max, because we should return something anyway.\n  if (pos < 0) { return max; }\n\n  // If we came to start of buffer - that means vuffer is too small,\n  // return max too.\n  if (pos === 0) { return max; }\n\n  return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\n},{\"./common\":27}],29:[function(_dereq_,module,exports){\n'use strict';\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It doesn't worth to make additional optimizationa as in original.\n// Small size is preferable.\n\nfunction adler32(adler, buf, len, pos) {\n  var s1 = (adler & 0xffff) |0\n    , s2 = ((adler >>> 16) & 0xffff) |0\n    , n = 0;\n\n  while (len !== 0) {\n    // Set limit ~ twice less than 5552, to keep\n    // s2 in 31-bits, because we force signed ints.\n    // in other case %= will fail.\n    n = len > 2000 ? 2000 : len;\n    len -= n;\n\n    do {\n      s1 = (s1 + buf[pos++]) |0;\n      s2 = (s2 + s1) |0;\n    } while (--n);\n\n    s1 %= 65521;\n    s2 %= 65521;\n  }\n\n  return (s1 | (s2 << 16)) |0;\n}\n\n\nmodule.exports = adler32;\n},{}],30:[function(_dereq_,module,exports){\nmodule.exports = {\n\n  /* Allowed flush values; see deflate() and inflate() below for details */\n  Z_NO_FLUSH:         0,\n  Z_PARTIAL_FLUSH:    1,\n  Z_SYNC_FLUSH:       2,\n  Z_FULL_FLUSH:       3,\n  Z_FINISH:           4,\n  Z_BLOCK:            5,\n  Z_TREES:            6,\n\n  /* Return codes for the compression/decompression functions. Negative values\n  * are errors, positive values are used for special but normal events.\n  */\n  Z_OK:               0,\n  Z_STREAM_END:       1,\n  Z_NEED_DICT:        2,\n  Z_ERRNO:           -1,\n  Z_STREAM_ERROR:    -2,\n  Z_DATA_ERROR:      -3,\n  //Z_MEM_ERROR:     -4,\n  Z_BUF_ERROR:       -5,\n  //Z_VERSION_ERROR: -6,\n\n  /* compression levels */\n  Z_NO_COMPRESSION:         0,\n  Z_BEST_SPEED:             1,\n  Z_BEST_COMPRESSION:       9,\n  Z_DEFAULT_COMPRESSION:   -1,\n\n\n  Z_FILTERED:               1,\n  Z_HUFFMAN_ONLY:           2,\n  Z_RLE:                    3,\n  Z_FIXED:                  4,\n  Z_DEFAULT_STRATEGY:       0,\n\n  /* Possible values of the data_type field (though see inflate()) */\n  Z_BINARY:                 0,\n  Z_TEXT:                   1,\n  //Z_ASCII:                1, // = Z_TEXT (deprecated)\n  Z_UNKNOWN:                2,\n\n  /* The deflate compression method */\n  Z_DEFLATED:               8\n  //Z_NULL:                 null // Use -1 or null inline, depending on var type\n};\n},{}],31:[function(_dereq_,module,exports){\n'use strict';\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n\n// Use ordinary array, since untyped makes no boost here\nfunction makeTable() {\n  var c, table = [];\n\n  for(var n =0; n < 256; n++){\n    c = n;\n    for(var k =0; k < 8; k++){\n      c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n    }\n    table[n] = c;\n  }\n\n  return table;\n}\n\n// Create table on load. Just 255 signed longs. Not a problem.\nvar crcTable = makeTable();\n\n\nfunction crc32(crc, buf, len, pos) {\n  var t = crcTable\n    , end = pos + len;\n\n  crc = crc ^ (-1);\n\n  for (var i = pos; i < end; i++ ) {\n    crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n  }\n\n  return (crc ^ (-1)); // >>> 0;\n}\n\n\nmodule.exports = crc32;\n},{}],32:[function(_dereq_,module,exports){\n'use strict';\n\nvar utils   = _dereq_('../utils/common');\nvar trees   = _dereq_('./trees');\nvar adler32 = _dereq_('./adler32');\nvar crc32   = _dereq_('./crc32');\nvar msg   = _dereq_('./messages');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\nvar Z_NO_FLUSH      = 0;\nvar Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH    = 2;\nvar Z_FULL_FLUSH    = 3;\nvar Z_FINISH        = 4;\nvar Z_BLOCK         = 5;\n//var Z_TREES         = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK            = 0;\nvar Z_STREAM_END    = 1;\n//var Z_NEED_DICT     = 2;\n//var Z_ERRNO         = -1;\nvar Z_STREAM_ERROR  = -2;\nvar Z_DATA_ERROR    = -3;\n//var Z_MEM_ERROR     = -4;\nvar Z_BUF_ERROR     = -5;\n//var Z_VERSION_ERROR = -6;\n\n\n/* compression levels */\n//var Z_NO_COMPRESSION      = 0;\n//var Z_BEST_SPEED          = 1;\n//var Z_BEST_COMPRESSION    = 9;\nvar Z_DEFAULT_COMPRESSION = -1;\n\n\nvar Z_FILTERED            = 1;\nvar Z_HUFFMAN_ONLY        = 2;\nvar Z_RLE                 = 3;\nvar Z_FIXED               = 4;\nvar Z_DEFAULT_STRATEGY    = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\n//var Z_BINARY              = 0;\n//var Z_TEXT                = 1;\n//var Z_ASCII               = 1; // = Z_TEXT\nvar Z_UNKNOWN             = 2;\n\n\n/* The deflate compression method */\nvar Z_DEFLATED  = 8;\n\n/*============================================================================*/\n\n\nvar MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_MEM_LEVEL = 8;\n\n\nvar LENGTH_CODES  = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nvar LITERALS      = 256;\n/* number of literal bytes 0..255 */\nvar L_CODES       = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nvar D_CODES       = 30;\n/* number of distance codes */\nvar BL_CODES      = 19;\n/* number of codes used to transfer the bit lengths */\nvar HEAP_SIZE     = 2*L_CODES + 1;\n/* maximum heap size */\nvar MAX_BITS  = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\nvar MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nvar PRESET_DICT = 0x20;\n\nvar INIT_STATE = 42;\nvar EXTRA_STATE = 69;\nvar NAME_STATE = 73;\nvar COMMENT_STATE = 91;\nvar HCRC_STATE = 103;\nvar BUSY_STATE = 113;\nvar FINISH_STATE = 666;\n\nvar BS_NEED_MORE      = 1; /* block not completed, need more input or more output */\nvar BS_BLOCK_DONE     = 2; /* block flush performed */\nvar BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nvar BS_FINISH_DONE    = 4; /* finish done, accept no more input or output */\n\nvar OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nfunction err(strm, errorCode) {\n  strm.msg = msg[errorCode];\n  return errorCode;\n}\n\nfunction rank(f) {\n  return ((f) << 1) - ((f) > 4 ? 9 : 0);\n}\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nfunction flush_pending(strm) {\n  var s = strm.state;\n\n  //_tr_flush_bits(s);\n  var len = s.pending;\n  if (len > strm.avail_out) {\n    len = strm.avail_out;\n  }\n  if (len === 0) { return; }\n\n  utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);\n  strm.next_out += len;\n  s.pending_out += len;\n  strm.total_out += len;\n  strm.avail_out -= len;\n  s.pending -= len;\n  if (s.pending === 0) {\n    s.pending_out = 0;\n  }\n}\n\n\nfunction flush_block_only (s, last) {\n  trees._tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n  s.block_start = s.strstart;\n  flush_pending(s.strm);\n}\n\n\nfunction put_byte(s, b) {\n  s.pending_buf[s.pending++] = b;\n}\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nfunction putShortMSB(s, b) {\n//  put_byte(s, (Byte)(b >> 8));\n//  put_byte(s, (Byte)(b & 0xff));\n  s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n  s.pending_buf[s.pending++] = b & 0xff;\n}\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read.  All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nfunction read_buf(strm, buf, start, size) {\n  var len = strm.avail_in;\n\n  if (len > size) { len = size; }\n  if (len === 0) { return 0; }\n\n  strm.avail_in -= len;\n\n  utils.arraySet(buf, strm.input, strm.next_in, len, start);\n  if (strm.state.wrap === 1) {\n    strm.adler = adler32(strm.adler, buf, len, start);\n  }\n\n  else if (strm.state.wrap === 2) {\n    strm.adler = crc32(strm.adler, buf, len, start);\n  }\n\n  strm.next_in += len;\n  strm.total_in += len;\n\n  return len;\n}\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n *   string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nfunction longest_match(s, cur_match) {\n  var chain_length = s.max_chain_length;      /* max hash chain length */\n  var scan = s.strstart; /* current string */\n  var match;                       /* matched string */\n  var len;                           /* length of current match */\n  var best_len = s.prev_length;              /* best match length so far */\n  var nice_match = s.nice_match;             /* stop if match long enough */\n  var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n      s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n  var _win = s.window; // shortcut\n\n  var wmask = s.w_mask;\n  var prev  = s.prev;\n\n  /* Stop when cur_match becomes <= limit. To simplify the code,\n   * we prevent matches with the string of window index 0.\n   */\n\n  var strend = s.strstart + MAX_MATCH;\n  var scan_end1  = _win[scan + best_len - 1];\n  var scan_end   = _win[scan + best_len];\n\n  /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n   * It is easy to get rid of this optimization if necessary.\n   */\n  // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n  /* Do not waste too much time if we already have a good match: */\n  if (s.prev_length >= s.good_match) {\n    chain_length >>= 2;\n  }\n  /* Do not look for matches beyond the end of the input. This is necessary\n   * to make deflate deterministic.\n   */\n  if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n  // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n  do {\n    // Assert(cur_match < s->strstart, \"no future\");\n    match = cur_match;\n\n    /* Skip to next match if the match length cannot increase\n     * or if the match length is less than 2.  Note that the checks below\n     * for insufficient lookahead only occur occasionally for performance\n     * reasons.  Therefore uninitialized memory will be accessed, and\n     * conditional jumps will be made that depend on those values.\n     * However the length of the match is limited to the lookahead, so\n     * the output of deflate is not affected by the uninitialized values.\n     */\n\n    if (_win[match + best_len]     !== scan_end  ||\n        _win[match + best_len - 1] !== scan_end1 ||\n        _win[match]                !== _win[scan] ||\n        _win[++match]              !== _win[scan + 1]) {\n      continue;\n    }\n\n    /* The check at best_len-1 can be removed because it will be made\n     * again later. (This heuristic is not always a win.)\n     * It is not necessary to compare scan[2] and match[2] since they\n     * are always equal when the other bytes match, given that\n     * the hash keys are equal and that HASH_BITS >= 8.\n     */\n    scan += 2;\n    match++;\n    // Assert(*scan == *match, \"match[2]?\");\n\n    /* We check for insufficient lookahead only every 8th comparison;\n     * the 256th check will be made at strstart+258.\n     */\n    do {\n      /*jshint noempty:false*/\n    } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n             scan < strend);\n\n    // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n    len = MAX_MATCH - (strend - scan);\n    scan = strend - MAX_MATCH;\n\n    if (len > best_len) {\n      s.match_start = cur_match;\n      best_len = len;\n      if (len >= nice_match) {\n        break;\n      }\n      scan_end1  = _win[scan + best_len - 1];\n      scan_end   = _win[scan + best_len];\n    }\n  } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n  if (best_len <= s.lookahead) {\n    return best_len;\n  }\n  return s.lookahead;\n}\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n *    At least one byte has been read, or avail_in == 0; reads are\n *    performed for at least two bytes (required for the zip translate_eol\n *    option -- not supported here).\n */\nfunction fill_window(s) {\n  var _w_size = s.w_size;\n  var p, n, m, more, str;\n\n  //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n  do {\n    more = s.window_size - s.lookahead - s.strstart;\n\n    // JS ints have 32 bit, block below not needed\n    /* Deal with !@#$% 64K limit: */\n    //if (sizeof(int) <= 2) {\n    //    if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n    //        more = wsize;\n    //\n    //  } else if (more == (unsigned)(-1)) {\n    //        /* Very unlikely, but possible on 16 bit machine if\n    //         * strstart == 0 && lookahead == 1 (input done a byte at time)\n    //         */\n    //        more--;\n    //    }\n    //}\n\n\n    /* If the window is almost full and there is insufficient lookahead,\n     * move the upper half to the lower one to make room in the upper half.\n     */\n    if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n      utils.arraySet(s.window, s.window, _w_size, _w_size, 0);\n      s.match_start -= _w_size;\n      s.strstart -= _w_size;\n      /* we now have strstart >= MAX_DIST */\n      s.block_start -= _w_size;\n\n      /* Slide the hash table (could be avoided with 32 bit values\n       at the expense of memory usage). We slide even when level == 0\n       to keep the hash table consistent if we switch back to level > 0\n       later. (Using level 0 permanently is not an optimal usage of\n       zlib, so we don't care about this pathological case.)\n       */\n\n      n = s.hash_size;\n      p = n;\n      do {\n        m = s.head[--p];\n        s.head[p] = (m >= _w_size ? m - _w_size : 0);\n      } while (--n);\n\n      n = _w_size;\n      p = n;\n      do {\n        m = s.prev[--p];\n        s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n        /* If n is not on any hash chain, prev[n] is garbage but\n         * its value will never be used.\n         */\n      } while (--n);\n\n      more += _w_size;\n    }\n    if (s.strm.avail_in === 0) {\n      break;\n    }\n\n    /* If there was no sliding:\n     *    strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n     *    more == window_size - lookahead - strstart\n     * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n     * => more >= window_size - 2*WSIZE + 2\n     * In the BIG_MEM or MMAP case (not yet supported),\n     *   window_size == input_size + MIN_LOOKAHEAD  &&\n     *   strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n     * Otherwise, window_size == 2*WSIZE so more >= 2.\n     * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n     */\n    //Assert(more >= 2, \"more < 2\");\n    n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n    s.lookahead += n;\n\n    /* Initialize the hash value now that we have some input: */\n    if (s.lookahead + s.insert >= MIN_MATCH) {\n      str = s.strstart - s.insert;\n      s.ins_h = s.window[str];\n\n      /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;\n//#if MIN_MATCH != 3\n//        Call update_hash() MIN_MATCH-3 more times\n//#endif\n      while (s.insert) {\n        /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n        s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH-1]) & s.hash_mask;\n\n        s.prev[str & s.w_mask] = s.head[s.ins_h];\n        s.head[s.ins_h] = str;\n        str++;\n        s.insert--;\n        if (s.lookahead + s.insert < MIN_MATCH) {\n          break;\n        }\n      }\n    }\n    /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n     * but this is not important since only literal bytes will be emitted.\n     */\n\n  } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n  /* If the WIN_INIT bytes after the end of the current data have never been\n   * written, then zero those bytes in order to avoid memory check reports of\n   * the use of uninitialized (or uninitialised as Julian writes) bytes by\n   * the longest match routines.  Update the high water mark for the next\n   * time through here.  WIN_INIT is set to MAX_MATCH since the longest match\n   * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n   */\n//  if (s.high_water < s.window_size) {\n//    var curr = s.strstart + s.lookahead;\n//    var init = 0;\n//\n//    if (s.high_water < curr) {\n//      /* Previous high water mark below current data -- zero WIN_INIT\n//       * bytes or up to end of window, whichever is less.\n//       */\n//      init = s.window_size - curr;\n//      if (init > WIN_INIT)\n//        init = WIN_INIT;\n//      zmemzero(s->window + curr, (unsigned)init);\n//      s->high_water = curr + init;\n//    }\n//    else if (s->high_water < (ulg)curr + WIN_INIT) {\n//      /* High water mark at or above current data, but below current data\n//       * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n//       * to end of window, whichever is less.\n//       */\n//      init = (ulg)curr + WIN_INIT - s->high_water;\n//      if (init > s->window_size - s->high_water)\n//        init = s->window_size - s->high_water;\n//      zmemzero(s->window + s->high_water, (unsigned)init);\n//      s->high_water += init;\n//    }\n//  }\n//\n//  Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n//    \"not enough room for search\");\n}\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nfunction deflate_stored(s, flush) {\n  /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n   * to pending_buf_size, and each stored block has a 5 byte header:\n   */\n  var max_block_size = 0xffff;\n\n  if (max_block_size > s.pending_buf_size - 5) {\n    max_block_size = s.pending_buf_size - 5;\n  }\n\n  /* Copy as much as possible from input to output: */\n  for (;;) {\n    /* Fill the window as much as possible: */\n    if (s.lookahead <= 1) {\n\n      //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n      //  s->block_start >= (long)s->w_size, \"slide too late\");\n//      if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n//        s.block_start >= s.w_size)) {\n//        throw  new Error(\"slide too late\");\n//      }\n\n      fill_window(s);\n      if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n        return BS_NEED_MORE;\n      }\n\n      if (s.lookahead === 0) {\n        break;\n      }\n      /* flush the current block */\n    }\n    //Assert(s->block_start >= 0L, \"block gone\");\n//    if (s.block_start < 0) throw new Error(\"block gone\");\n\n    s.strstart += s.lookahead;\n    s.lookahead = 0;\n\n    /* Emit a stored block if pending_buf will be full: */\n    var max_start = s.block_start + max_block_size;\n\n    if (s.strstart === 0 || s.strstart >= max_start) {\n      /* strstart == 0 is possible when wraparound on 16-bit machine */\n      s.lookahead = s.strstart - max_start;\n      s.strstart = max_start;\n      /*** FLUSH_BLOCK(s, 0); ***/\n      flush_block_only(s, false);\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n      /***/\n\n\n    }\n    /* Flush if we may have to slide, otherwise block_start may become\n     * negative and the data will be gone:\n     */\n    if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n      /*** FLUSH_BLOCK(s, 0); ***/\n      flush_block_only(s, false);\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n      /***/\n    }\n  }\n\n  s.insert = 0;\n\n  if (flush === Z_FINISH) {\n    /*** FLUSH_BLOCK(s, 1); ***/\n    flush_block_only(s, true);\n    if (s.strm.avail_out === 0) {\n      return BS_FINISH_STARTED;\n    }\n    /***/\n    return BS_FINISH_DONE;\n  }\n\n  if (s.strstart > s.block_start) {\n    /*** FLUSH_BLOCK(s, 0); ***/\n    flush_block_only(s, false);\n    if (s.strm.avail_out === 0) {\n      return BS_NEED_MORE;\n    }\n    /***/\n  }\n\n  return BS_NEED_MORE;\n}\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nfunction deflate_fast(s, flush) {\n  var hash_head;        /* head of the hash chain */\n  var bflush;           /* set if current block must be flushed */\n\n  for (;;) {\n    /* Make sure that we always have enough lookahead, except\n     * at the end of the input file. We need MAX_MATCH bytes\n     * for the next match, plus MIN_MATCH bytes to insert the\n     * string following the next match.\n     */\n    if (s.lookahead < MIN_LOOKAHEAD) {\n      fill_window(s);\n      if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n        return BS_NEED_MORE;\n      }\n      if (s.lookahead === 0) {\n        break; /* flush the current block */\n      }\n    }\n\n    /* Insert the string window[strstart .. strstart+2] in the\n     * dictionary, and set hash_head to the head of the hash chain:\n     */\n    hash_head = 0/*NIL*/;\n    if (s.lookahead >= MIN_MATCH) {\n      /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n      hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n      s.head[s.ins_h] = s.strstart;\n      /***/\n    }\n\n    /* Find the longest match, discarding those <= prev_length.\n     * At this point we have always match_length < MIN_MATCH\n     */\n    if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n      /* To simplify the code, we prevent matches with the string\n       * of window index 0 (in particular we have to avoid a match\n       * of the string with itself at the start of the input file).\n       */\n      s.match_length = longest_match(s, hash_head);\n      /* longest_match() sets match_start */\n    }\n    if (s.match_length >= MIN_MATCH) {\n      // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n      /*** _tr_tally_dist(s, s.strstart - s.match_start,\n                     s.match_length - MIN_MATCH, bflush); ***/\n      bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n      s.lookahead -= s.match_length;\n\n      /* Insert new strings in the hash table only if the match length\n       * is not too large. This saves time but degrades compression.\n       */\n      if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n        s.match_length--; /* string at strstart already in table */\n        do {\n          s.strstart++;\n          /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n          s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n          hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n          s.head[s.ins_h] = s.strstart;\n          /***/\n          /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n           * always MIN_MATCH bytes ahead.\n           */\n        } while (--s.match_length !== 0);\n        s.strstart++;\n      } else\n      {\n        s.strstart += s.match_length;\n        s.match_length = 0;\n        s.ins_h = s.window[s.strstart];\n        /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n        s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;\n\n//#if MIN_MATCH != 3\n//                Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n        /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n         * matter since it will be recomputed at next deflate call.\n         */\n      }\n    } else {\n      /* No match, output a literal byte */\n      //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n      /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n      bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n      s.lookahead--;\n      s.strstart++;\n    }\n    if (bflush) {\n      /*** FLUSH_BLOCK(s, 0); ***/\n      flush_block_only(s, false);\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n      /***/\n    }\n  }\n  s.insert = ((s.strstart < (MIN_MATCH-1)) ? s.strstart : MIN_MATCH-1);\n  if (flush === Z_FINISH) {\n    /*** FLUSH_BLOCK(s, 1); ***/\n    flush_block_only(s, true);\n    if (s.strm.avail_out === 0) {\n      return BS_FINISH_STARTED;\n    }\n    /***/\n    return BS_FINISH_DONE;\n  }\n  if (s.last_lit) {\n    /*** FLUSH_BLOCK(s, 0); ***/\n    flush_block_only(s, false);\n    if (s.strm.avail_out === 0) {\n      return BS_NEED_MORE;\n    }\n    /***/\n  }\n  return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nfunction deflate_slow(s, flush) {\n  var hash_head;          /* head of hash chain */\n  var bflush;              /* set if current block must be flushed */\n\n  var max_insert;\n\n  /* Process the input block. */\n  for (;;) {\n    /* Make sure that we always have enough lookahead, except\n     * at the end of the input file. We need MAX_MATCH bytes\n     * for the next match, plus MIN_MATCH bytes to insert the\n     * string following the next match.\n     */\n    if (s.lookahead < MIN_LOOKAHEAD) {\n      fill_window(s);\n      if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n        return BS_NEED_MORE;\n      }\n      if (s.lookahead === 0) { break; } /* flush the current block */\n    }\n\n    /* Insert the string window[strstart .. strstart+2] in the\n     * dictionary, and set hash_head to the head of the hash chain:\n     */\n    hash_head = 0/*NIL*/;\n    if (s.lookahead >= MIN_MATCH) {\n      /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n      hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n      s.head[s.ins_h] = s.strstart;\n      /***/\n    }\n\n    /* Find the longest match, discarding those <= prev_length.\n     */\n    s.prev_length = s.match_length;\n    s.prev_match = s.match_start;\n    s.match_length = MIN_MATCH-1;\n\n    if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n        s.strstart - hash_head <= (s.w_size-MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n      /* To simplify the code, we prevent matches with the string\n       * of window index 0 (in particular we have to avoid a match\n       * of the string with itself at the start of the input file).\n       */\n      s.match_length = longest_match(s, hash_head);\n      /* longest_match() sets match_start */\n\n      if (s.match_length <= 5 &&\n         (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n        /* If prev_match is also MIN_MATCH, match_start is garbage\n         * but we will ignore the current match anyway.\n         */\n        s.match_length = MIN_MATCH-1;\n      }\n    }\n    /* If there was a match at the previous step and the current\n     * match is not better, output the previous match:\n     */\n    if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n      max_insert = s.strstart + s.lookahead - MIN_MATCH;\n      /* Do not insert strings in hash table beyond this. */\n\n      //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n      /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n                     s.prev_length - MIN_MATCH, bflush);***/\n      bflush = trees._tr_tally(s, s.strstart - 1- s.prev_match, s.prev_length - MIN_MATCH);\n      /* Insert in hash table all strings up to the end of the match.\n       * strstart-1 and strstart are already inserted. If there is not\n       * enough lookahead, the last two strings are not inserted in\n       * the hash table.\n       */\n      s.lookahead -= s.prev_length-1;\n      s.prev_length -= 2;\n      do {\n        if (++s.strstart <= max_insert) {\n          /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n          s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n          hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n          s.head[s.ins_h] = s.strstart;\n          /***/\n        }\n      } while (--s.prev_length !== 0);\n      s.match_available = 0;\n      s.match_length = MIN_MATCH-1;\n      s.strstart++;\n\n      if (bflush) {\n        /*** FLUSH_BLOCK(s, 0); ***/\n        flush_block_only(s, false);\n        if (s.strm.avail_out === 0) {\n          return BS_NEED_MORE;\n        }\n        /***/\n      }\n\n    } else if (s.match_available) {\n      /* If there was no match at the previous position, output a\n       * single literal. If there was a match but the current match\n       * is longer, truncate the previous match to a single literal.\n       */\n      //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n      /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n      bflush = trees._tr_tally(s, 0, s.window[s.strstart-1]);\n\n      if (bflush) {\n        /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n        flush_block_only(s, false);\n        /***/\n      }\n      s.strstart++;\n      s.lookahead--;\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n    } else {\n      /* There is no previous match to compare with, wait for\n       * the next step to decide.\n       */\n      s.match_available = 1;\n      s.strstart++;\n      s.lookahead--;\n    }\n  }\n  //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n  if (s.match_available) {\n    //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n    /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n    bflush = trees._tr_tally(s, 0, s.window[s.strstart-1]);\n\n    s.match_available = 0;\n  }\n  s.insert = s.strstart < MIN_MATCH-1 ? s.strstart : MIN_MATCH-1;\n  if (flush === Z_FINISH) {\n    /*** FLUSH_BLOCK(s, 1); ***/\n    flush_block_only(s, true);\n    if (s.strm.avail_out === 0) {\n      return BS_FINISH_STARTED;\n    }\n    /***/\n    return BS_FINISH_DONE;\n  }\n  if (s.last_lit) {\n    /*** FLUSH_BLOCK(s, 0); ***/\n    flush_block_only(s, false);\n    if (s.strm.avail_out === 0) {\n      return BS_NEED_MORE;\n    }\n    /***/\n  }\n\n  return BS_BLOCK_DONE;\n}\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one.  Do not maintain a hash table.  (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nfunction deflate_rle(s, flush) {\n  var bflush;            /* set if current block must be flushed */\n  var prev;              /* byte at distance one to match */\n  var scan, strend;      /* scan goes up to strend for length of run */\n\n  var _win = s.window;\n\n  for (;;) {\n    /* Make sure that we always have enough lookahead, except\n     * at the end of the input file. We need MAX_MATCH bytes\n     * for the longest run, plus one for the unrolled loop.\n     */\n    if (s.lookahead <= MAX_MATCH) {\n      fill_window(s);\n      if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {\n        return BS_NEED_MORE;\n      }\n      if (s.lookahead === 0) { break; } /* flush the current block */\n    }\n\n    /* See how many times the previous byte repeats */\n    s.match_length = 0;\n    if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n      scan = s.strstart - 1;\n      prev = _win[scan];\n      if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n        strend = s.strstart + MAX_MATCH;\n        do {\n          /*jshint noempty:false*/\n        } while (prev === _win[++scan] && prev === _win[++scan] &&\n                 prev === _win[++scan] && prev === _win[++scan] &&\n                 prev === _win[++scan] && prev === _win[++scan] &&\n                 prev === _win[++scan] && prev === _win[++scan] &&\n                 scan < strend);\n        s.match_length = MAX_MATCH - (strend - scan);\n        if (s.match_length > s.lookahead) {\n          s.match_length = s.lookahead;\n        }\n      }\n      //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n    }\n\n    /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n    if (s.match_length >= MIN_MATCH) {\n      //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n      /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n      bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n      s.lookahead -= s.match_length;\n      s.strstart += s.match_length;\n      s.match_length = 0;\n    } else {\n      /* No match, output a literal byte */\n      //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n      /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n      bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n      s.lookahead--;\n      s.strstart++;\n    }\n    if (bflush) {\n      /*** FLUSH_BLOCK(s, 0); ***/\n      flush_block_only(s, false);\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n      /***/\n    }\n  }\n  s.insert = 0;\n  if (flush === Z_FINISH) {\n    /*** FLUSH_BLOCK(s, 1); ***/\n    flush_block_only(s, true);\n    if (s.strm.avail_out === 0) {\n      return BS_FINISH_STARTED;\n    }\n    /***/\n    return BS_FINISH_DONE;\n  }\n  if (s.last_lit) {\n    /*** FLUSH_BLOCK(s, 0); ***/\n    flush_block_only(s, false);\n    if (s.strm.avail_out === 0) {\n      return BS_NEED_MORE;\n    }\n    /***/\n  }\n  return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches.  Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nfunction deflate_huff(s, flush) {\n  var bflush;             /* set if current block must be flushed */\n\n  for (;;) {\n    /* Make sure that we have a literal to write. */\n    if (s.lookahead === 0) {\n      fill_window(s);\n      if (s.lookahead === 0) {\n        if (flush === Z_NO_FLUSH) {\n          return BS_NEED_MORE;\n        }\n        break;      /* flush the current block */\n      }\n    }\n\n    /* Output a literal byte */\n    s.match_length = 0;\n    //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n    /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n    bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n    s.lookahead--;\n    s.strstart++;\n    if (bflush) {\n      /*** FLUSH_BLOCK(s, 0); ***/\n      flush_block_only(s, false);\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n      /***/\n    }\n  }\n  s.insert = 0;\n  if (flush === Z_FINISH) {\n    /*** FLUSH_BLOCK(s, 1); ***/\n    flush_block_only(s, true);\n    if (s.strm.avail_out === 0) {\n      return BS_FINISH_STARTED;\n    }\n    /***/\n    return BS_FINISH_DONE;\n  }\n  if (s.last_lit) {\n    /*** FLUSH_BLOCK(s, 0); ***/\n    flush_block_only(s, false);\n    if (s.strm.avail_out === 0) {\n      return BS_NEED_MORE;\n    }\n    /***/\n  }\n  return BS_BLOCK_DONE;\n}\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nvar Config = function (good_length, max_lazy, nice_length, max_chain, func) {\n  this.good_length = good_length;\n  this.max_lazy = max_lazy;\n  this.nice_length = nice_length;\n  this.max_chain = max_chain;\n  this.func = func;\n};\n\nvar configuration_table;\n\nconfiguration_table = [\n  /*      good lazy nice chain */\n  new Config(0, 0, 0, 0, deflate_stored),          /* 0 store only */\n  new Config(4, 4, 8, 4, deflate_fast),            /* 1 max speed, no lazy matches */\n  new Config(4, 5, 16, 8, deflate_fast),           /* 2 */\n  new Config(4, 6, 32, 32, deflate_fast),          /* 3 */\n\n  new Config(4, 4, 16, 16, deflate_slow),          /* 4 lazy matches */\n  new Config(8, 16, 32, 32, deflate_slow),         /* 5 */\n  new Config(8, 16, 128, 128, deflate_slow),       /* 6 */\n  new Config(8, 32, 128, 256, deflate_slow),       /* 7 */\n  new Config(32, 128, 258, 1024, deflate_slow),    /* 8 */\n  new Config(32, 258, 258, 4096, deflate_slow)     /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nfunction lm_init(s) {\n  s.window_size = 2 * s.w_size;\n\n  /*** CLEAR_HASH(s); ***/\n  zero(s.head); // Fill with NIL (= 0);\n\n  /* Set the default configuration parameters:\n   */\n  s.max_lazy_match = configuration_table[s.level].max_lazy;\n  s.good_match = configuration_table[s.level].good_length;\n  s.nice_match = configuration_table[s.level].nice_length;\n  s.max_chain_length = configuration_table[s.level].max_chain;\n\n  s.strstart = 0;\n  s.block_start = 0;\n  s.lookahead = 0;\n  s.insert = 0;\n  s.match_length = s.prev_length = MIN_MATCH - 1;\n  s.match_available = 0;\n  s.ins_h = 0;\n}\n\n\nfunction DeflateState() {\n  this.strm = null;            /* pointer back to this zlib stream */\n  this.status = 0;            /* as the name implies */\n  this.pending_buf = null;      /* output still pending */\n  this.pending_buf_size = 0;  /* size of pending_buf */\n  this.pending_out = 0;       /* next pending byte to output to the stream */\n  this.pending = 0;           /* nb of bytes in the pending buffer */\n  this.wrap = 0;              /* bit 0 true for zlib, bit 1 true for gzip */\n  this.gzhead = null;         /* gzip header information to write */\n  this.gzindex = 0;           /* where in extra, name, or comment */\n  this.method = Z_DEFLATED; /* can only be DEFLATED */\n  this.last_flush = -1;   /* value of flush param for previous deflate call */\n\n  this.w_size = 0;  /* LZ77 window size (32K by default) */\n  this.w_bits = 0;  /* log2(w_size)  (8..16) */\n  this.w_mask = 0;  /* w_size - 1 */\n\n  this.window = null;\n  /* Sliding window. Input bytes are read into the second half of the window,\n   * and move to the first half later to keep a dictionary of at least wSize\n   * bytes. With this organization, matches are limited to a distance of\n   * wSize-MAX_MATCH bytes, but this ensures that IO is always\n   * performed with a length multiple of the block size.\n   */\n\n  this.window_size = 0;\n  /* Actual size of window: 2*wSize, except when the user input buffer\n   * is directly used as sliding window.\n   */\n\n  this.prev = null;\n  /* Link to older string with same hash index. To limit the size of this\n   * array to 64K, this link is maintained only for the last 32K strings.\n   * An index in this array is thus a window index modulo 32K.\n   */\n\n  this.head = null;   /* Heads of the hash chains or NIL. */\n\n  this.ins_h = 0;       /* hash index of string to be inserted */\n  this.hash_size = 0;   /* number of elements in hash table */\n  this.hash_bits = 0;   /* log2(hash_size) */\n  this.hash_mask = 0;   /* hash_size-1 */\n\n  this.hash_shift = 0;\n  /* Number of bits by which ins_h must be shifted at each input\n   * step. It must be such that after MIN_MATCH steps, the oldest\n   * byte no longer takes part in the hash key, that is:\n   *   hash_shift * MIN_MATCH >= hash_bits\n   */\n\n  this.block_start = 0;\n  /* Window position at the beginning of the current output block. Gets\n   * negative when the window is moved backwards.\n   */\n\n  this.match_length = 0;      /* length of best match */\n  this.prev_match = 0;        /* previous match */\n  this.match_available = 0;   /* set if previous match exists */\n  this.strstart = 0;          /* start of string to insert */\n  this.match_start = 0;       /* start of matching string */\n  this.lookahead = 0;         /* number of valid bytes ahead in window */\n\n  this.prev_length = 0;\n  /* Length of the best match at previous step. Matches not greater than this\n   * are discarded. This is used in the lazy match evaluation.\n   */\n\n  this.max_chain_length = 0;\n  /* To speed up deflation, hash chains are never searched beyond this\n   * length.  A higher limit improves compression ratio but degrades the\n   * speed.\n   */\n\n  this.max_lazy_match = 0;\n  /* Attempt to find a better match only when the current match is strictly\n   * smaller than this value. This mechanism is used only for compression\n   * levels >= 4.\n   */\n  // That's alias to max_lazy_match, don't use directly\n  //this.max_insert_length = 0;\n  /* Insert new strings in the hash table only if the match length is not\n   * greater than this length. This saves time but degrades compression.\n   * max_insert_length is used only for compression levels <= 3.\n   */\n\n  this.level = 0;     /* compression level (1..9) */\n  this.strategy = 0;  /* favor or force Huffman coding*/\n\n  this.good_match = 0;\n  /* Use a faster search when the previous match is longer than this */\n\n  this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n              /* used by trees.c: */\n\n  /* Didn't use ct_data typedef below to suppress compiler warning */\n\n  // struct ct_data_s dyn_ltree[HEAP_SIZE];   /* literal and length tree */\n  // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n  // struct ct_data_s bl_tree[2*BL_CODES+1];  /* Huffman tree for bit lengths */\n\n  // Use flat array of DOUBLE size, with interleaved fata,\n  // because JS does not support effective\n  this.dyn_ltree  = new utils.Buf16(HEAP_SIZE * 2);\n  this.dyn_dtree  = new utils.Buf16((2*D_CODES+1) * 2);\n  this.bl_tree    = new utils.Buf16((2*BL_CODES+1) * 2);\n  zero(this.dyn_ltree);\n  zero(this.dyn_dtree);\n  zero(this.bl_tree);\n\n  this.l_desc   = null;         /* desc. for literal tree */\n  this.d_desc   = null;         /* desc. for distance tree */\n  this.bl_desc  = null;         /* desc. for bit length tree */\n\n  //ush bl_count[MAX_BITS+1];\n  this.bl_count = new utils.Buf16(MAX_BITS+1);\n  /* number of codes at each bit length for an optimal tree */\n\n  //int heap[2*L_CODES+1];      /* heap used to build the Huffman trees */\n  this.heap = new utils.Buf16(2*L_CODES+1);  /* heap used to build the Huffman trees */\n  zero(this.heap);\n\n  this.heap_len = 0;               /* number of elements in the heap */\n  this.heap_max = 0;               /* element of largest frequency */\n  /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n   * The same heap array is used to build all trees.\n   */\n\n  this.depth = new utils.Buf16(2*L_CODES+1); //uch depth[2*L_CODES+1];\n  zero(this.depth);\n  /* Depth of each subtree used as tie breaker for trees of equal frequency\n   */\n\n  this.l_buf = 0;          /* buffer index for literals or lengths */\n\n  this.lit_bufsize = 0;\n  /* Size of match buffer for literals/lengths.  There are 4 reasons for\n   * limiting lit_bufsize to 64K:\n   *   - frequencies can be kept in 16 bit counters\n   *   - if compression is not successful for the first block, all input\n   *     data is still in the window so we can still emit a stored block even\n   *     when input comes from standard input.  (This can also be done for\n   *     all blocks if lit_bufsize is not greater than 32K.)\n   *   - if compression is not successful for a file smaller than 64K, we can\n   *     even emit a stored file instead of a stored block (saving 5 bytes).\n   *     This is applicable only for zip (not gzip or zlib).\n   *   - creating new Huffman trees less frequently may not provide fast\n   *     adaptation to changes in the input data statistics. (Take for\n   *     example a binary file with poorly compressible code followed by\n   *     a highly compressible string table.) Smaller buffer sizes give\n   *     fast adaptation but have of course the overhead of transmitting\n   *     trees more frequently.\n   *   - I can't count above 4\n   */\n\n  this.last_lit = 0;      /* running index in l_buf */\n\n  this.d_buf = 0;\n  /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n   * the same number of elements. To use different lengths, an extra flag\n   * array would be necessary.\n   */\n\n  this.opt_len = 0;       /* bit length of current block with optimal trees */\n  this.static_len = 0;    /* bit length of current block with static trees */\n  this.matches = 0;       /* number of string matches in current block */\n  this.insert = 0;        /* bytes at end of window left to insert */\n\n\n  this.bi_buf = 0;\n  /* Output buffer. bits are inserted starting at the bottom (least\n   * significant bits).\n   */\n  this.bi_valid = 0;\n  /* Number of valid bits in bi_buf.  All bits above the last valid bit\n   * are always zero.\n   */\n\n  // Used for window memory init. We safely ignore it for JS. That makes\n  // sense only for pointers and memory check tools.\n  //this.high_water = 0;\n  /* High water mark offset in window for initialized bytes -- bytes above\n   * this are set to zero in order to avoid memory check warnings when\n   * longest match routines access bytes past the input.  This is then\n   * updated to the new high water mark.\n   */\n}\n\n\nfunction deflateResetKeep(strm) {\n  var s;\n\n  if (!strm || !strm.state) {\n    return err(strm, Z_STREAM_ERROR);\n  }\n\n  strm.total_in = strm.total_out = 0;\n  strm.data_type = Z_UNKNOWN;\n\n  s = strm.state;\n  s.pending = 0;\n  s.pending_out = 0;\n\n  if (s.wrap < 0) {\n    s.wrap = -s.wrap;\n    /* was made negative by deflate(..., Z_FINISH); */\n  }\n  s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n  strm.adler = (s.wrap === 2) ?\n    0  // crc32(0, Z_NULL, 0)\n  :\n    1; // adler32(0, Z_NULL, 0)\n  s.last_flush = Z_NO_FLUSH;\n  trees._tr_init(s);\n  return Z_OK;\n}\n\n\nfunction deflateReset(strm) {\n  var ret = deflateResetKeep(strm);\n  if (ret === Z_OK) {\n    lm_init(strm.state);\n  }\n  return ret;\n}\n\n\nfunction deflateSetHeader(strm, head) {\n  if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n  if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }\n  strm.state.gzhead = head;\n  return Z_OK;\n}\n\n\nfunction deflateInit2(strm, level, method, windowBits, memLevel, strategy) {\n  if (!strm) { // === Z_NULL\n    return Z_STREAM_ERROR;\n  }\n  var wrap = 1;\n\n  if (level === Z_DEFAULT_COMPRESSION) {\n    level = 6;\n  }\n\n  if (windowBits < 0) { /* suppress zlib wrapper */\n    wrap = 0;\n    windowBits = -windowBits;\n  }\n\n  else if (windowBits > 15) {\n    wrap = 2;           /* write gzip wrapper instead */\n    windowBits -= 16;\n  }\n\n\n  if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||\n    windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n    strategy < 0 || strategy > Z_FIXED) {\n    return err(strm, Z_STREAM_ERROR);\n  }\n\n\n  if (windowBits === 8) {\n    windowBits = 9;\n  }\n  /* until 256-byte window bug fixed */\n\n  var s = new DeflateState();\n\n  strm.state = s;\n  s.strm = strm;\n\n  s.wrap = wrap;\n  s.gzhead = null;\n  s.w_bits = windowBits;\n  s.w_size = 1 << s.w_bits;\n  s.w_mask = s.w_size - 1;\n\n  s.hash_bits = memLevel + 7;\n  s.hash_size = 1 << s.hash_bits;\n  s.hash_mask = s.hash_size - 1;\n  s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n  s.window = new utils.Buf8(s.w_size * 2);\n  s.head = new utils.Buf16(s.hash_size);\n  s.prev = new utils.Buf16(s.w_size);\n\n  // Don't need mem init magic for JS.\n  //s.high_water = 0;  /* nothing written to s->window yet */\n\n  s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n  s.pending_buf_size = s.lit_bufsize * 4;\n  s.pending_buf = new utils.Buf8(s.pending_buf_size);\n\n  s.d_buf = s.lit_bufsize >> 1;\n  s.l_buf = (1 + 2) * s.lit_bufsize;\n\n  s.level = level;\n  s.strategy = strategy;\n  s.method = method;\n\n  return deflateReset(strm);\n}\n\nfunction deflateInit(strm, level) {\n  return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\n}\n\n\nfunction deflate(strm, flush) {\n  var old_flush, s;\n  var beg, val; // for gzip header write only\n\n  if (!strm || !strm.state ||\n    flush > Z_BLOCK || flush < 0) {\n    return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n  }\n\n  s = strm.state;\n\n  if (!strm.output ||\n      (!strm.input && strm.avail_in !== 0) ||\n      (s.status === FINISH_STATE && flush !== Z_FINISH)) {\n    return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);\n  }\n\n  s.strm = strm; /* just in case */\n  old_flush = s.last_flush;\n  s.last_flush = flush;\n\n  /* Write the header */\n  if (s.status === INIT_STATE) {\n\n    if (s.wrap === 2) { // GZIP header\n      strm.adler = 0;  //crc32(0L, Z_NULL, 0);\n      put_byte(s, 31);\n      put_byte(s, 139);\n      put_byte(s, 8);\n      if (!s.gzhead) { // s->gzhead == Z_NULL\n        put_byte(s, 0);\n        put_byte(s, 0);\n        put_byte(s, 0);\n        put_byte(s, 0);\n        put_byte(s, 0);\n        put_byte(s, s.level === 9 ? 2 :\n                    (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n                     4 : 0));\n        put_byte(s, OS_CODE);\n        s.status = BUSY_STATE;\n      }\n      else {\n        put_byte(s, (s.gzhead.text ? 1 : 0) +\n                    (s.gzhead.hcrc ? 2 : 0) +\n                    (!s.gzhead.extra ? 0 : 4) +\n                    (!s.gzhead.name ? 0 : 8) +\n                    (!s.gzhead.comment ? 0 : 16)\n                );\n        put_byte(s, s.gzhead.time & 0xff);\n        put_byte(s, (s.gzhead.time >> 8) & 0xff);\n        put_byte(s, (s.gzhead.time >> 16) & 0xff);\n        put_byte(s, (s.gzhead.time >> 24) & 0xff);\n        put_byte(s, s.level === 9 ? 2 :\n                    (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n                     4 : 0));\n        put_byte(s, s.gzhead.os & 0xff);\n        if (s.gzhead.extra && s.gzhead.extra.length) {\n          put_byte(s, s.gzhead.extra.length & 0xff);\n          put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n        }\n        if (s.gzhead.hcrc) {\n          strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n        }\n        s.gzindex = 0;\n        s.status = EXTRA_STATE;\n      }\n    }\n    else // DEFLATE header\n    {\n      var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;\n      var level_flags = -1;\n\n      if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n        level_flags = 0;\n      } else if (s.level < 6) {\n        level_flags = 1;\n      } else if (s.level === 6) {\n        level_flags = 2;\n      } else {\n        level_flags = 3;\n      }\n      header |= (level_flags << 6);\n      if (s.strstart !== 0) { header |= PRESET_DICT; }\n      header += 31 - (header % 31);\n\n      s.status = BUSY_STATE;\n      putShortMSB(s, header);\n\n      /* Save the adler32 of the preset dictionary: */\n      if (s.strstart !== 0) {\n        putShortMSB(s, strm.adler >>> 16);\n        putShortMSB(s, strm.adler & 0xffff);\n      }\n      strm.adler = 1; // adler32(0L, Z_NULL, 0);\n    }\n  }\n\n//#ifdef GZIP\n  if (s.status === EXTRA_STATE) {\n    if (s.gzhead.extra/* != Z_NULL*/) {\n      beg = s.pending;  /* start of bytes to update crc */\n\n      while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n        if (s.pending === s.pending_buf_size) {\n          if (s.gzhead.hcrc && s.pending > beg) {\n            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n          }\n          flush_pending(strm);\n          beg = s.pending;\n          if (s.pending === s.pending_buf_size) {\n            break;\n          }\n        }\n        put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n        s.gzindex++;\n      }\n      if (s.gzhead.hcrc && s.pending > beg) {\n        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n      }\n      if (s.gzindex === s.gzhead.extra.length) {\n        s.gzindex = 0;\n        s.status = NAME_STATE;\n      }\n    }\n    else {\n      s.status = NAME_STATE;\n    }\n  }\n  if (s.status === NAME_STATE) {\n    if (s.gzhead.name/* != Z_NULL*/) {\n      beg = s.pending;  /* start of bytes to update crc */\n      //int val;\n\n      do {\n        if (s.pending === s.pending_buf_size) {\n          if (s.gzhead.hcrc && s.pending > beg) {\n            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n          }\n          flush_pending(strm);\n          beg = s.pending;\n          if (s.pending === s.pending_buf_size) {\n            val = 1;\n            break;\n          }\n        }\n        // JS specific: little magic to add zero terminator to end of string\n        if (s.gzindex < s.gzhead.name.length) {\n          val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n        } else {\n          val = 0;\n        }\n        put_byte(s, val);\n      } while (val !== 0);\n\n      if (s.gzhead.hcrc && s.pending > beg){\n        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n      }\n      if (val === 0) {\n        s.gzindex = 0;\n        s.status = COMMENT_STATE;\n      }\n    }\n    else {\n      s.status = COMMENT_STATE;\n    }\n  }\n  if (s.status === COMMENT_STATE) {\n    if (s.gzhead.comment/* != Z_NULL*/) {\n      beg = s.pending;  /* start of bytes to update crc */\n      //int val;\n\n      do {\n        if (s.pending === s.pending_buf_size) {\n          if (s.gzhead.hcrc && s.pending > beg) {\n            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n          }\n          flush_pending(strm);\n          beg = s.pending;\n          if (s.pending === s.pending_buf_size) {\n            val = 1;\n            break;\n          }\n        }\n        // JS specific: little magic to add zero terminator to end of string\n        if (s.gzindex < s.gzhead.comment.length) {\n          val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n        } else {\n          val = 0;\n        }\n        put_byte(s, val);\n      } while (val !== 0);\n\n      if (s.gzhead.hcrc && s.pending > beg) {\n        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n      }\n      if (val === 0) {\n        s.status = HCRC_STATE;\n      }\n    }\n    else {\n      s.status = HCRC_STATE;\n    }\n  }\n  if (s.status === HCRC_STATE) {\n    if (s.gzhead.hcrc) {\n      if (s.pending + 2 > s.pending_buf_size) {\n        flush_pending(strm);\n      }\n      if (s.pending + 2 <= s.pending_buf_size) {\n        put_byte(s, strm.adler & 0xff);\n        put_byte(s, (strm.adler >> 8) & 0xff);\n        strm.adler = 0; //crc32(0L, Z_NULL, 0);\n        s.status = BUSY_STATE;\n      }\n    }\n    else {\n      s.status = BUSY_STATE;\n    }\n  }\n//#endif\n\n  /* Flush as much pending output as possible */\n  if (s.pending !== 0) {\n    flush_pending(strm);\n    if (strm.avail_out === 0) {\n      /* Since avail_out is 0, deflate will be called again with\n       * more output space, but possibly with both pending and\n       * avail_in equal to zero. There won't be anything to do,\n       * but this is not an error situation so make sure we\n       * return OK instead of BUF_ERROR at next call of deflate:\n       */\n      s.last_flush = -1;\n      return Z_OK;\n    }\n\n    /* Make sure there is something to do and avoid duplicate consecutive\n     * flushes. For repeated and useless calls with Z_FINISH, we keep\n     * returning Z_STREAM_END instead of Z_BUF_ERROR.\n     */\n  } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n    flush !== Z_FINISH) {\n    return err(strm, Z_BUF_ERROR);\n  }\n\n  /* User must not provide more input after the first FINISH: */\n  if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n    return err(strm, Z_BUF_ERROR);\n  }\n\n  /* Start a new block or continue the current one.\n   */\n  if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n    (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {\n    var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n      (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n        configuration_table[s.level].func(s, flush));\n\n    if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n      s.status = FINISH_STATE;\n    }\n    if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n      if (strm.avail_out === 0) {\n        s.last_flush = -1;\n        /* avoid BUF_ERROR next call, see above */\n      }\n      return Z_OK;\n      /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n       * of deflate should use the same flush parameter to make sure\n       * that the flush is complete. So we don't have to output an\n       * empty block here, this will be done at next call. This also\n       * ensures that for a very small output buffer, we emit at most\n       * one empty block.\n       */\n    }\n    if (bstate === BS_BLOCK_DONE) {\n      if (flush === Z_PARTIAL_FLUSH) {\n        trees._tr_align(s);\n      }\n      else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */\n\n        trees._tr_stored_block(s, 0, 0, false);\n        /* For a full flush, this empty block will be recognized\n         * as a special marker by inflate_sync().\n         */\n        if (flush === Z_FULL_FLUSH) {\n          /*** CLEAR_HASH(s); ***/             /* forget history */\n          zero(s.head); // Fill with NIL (= 0);\n\n          if (s.lookahead === 0) {\n            s.strstart = 0;\n            s.block_start = 0;\n            s.insert = 0;\n          }\n        }\n      }\n      flush_pending(strm);\n      if (strm.avail_out === 0) {\n        s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n        return Z_OK;\n      }\n    }\n  }\n  //Assert(strm->avail_out > 0, \"bug2\");\n  //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n  if (flush !== Z_FINISH) { return Z_OK; }\n  if (s.wrap <= 0) { return Z_STREAM_END; }\n\n  /* Write the trailer */\n  if (s.wrap === 2) {\n    put_byte(s, strm.adler & 0xff);\n    put_byte(s, (strm.adler >> 8) & 0xff);\n    put_byte(s, (strm.adler >> 16) & 0xff);\n    put_byte(s, (strm.adler >> 24) & 0xff);\n    put_byte(s, strm.total_in & 0xff);\n    put_byte(s, (strm.total_in >> 8) & 0xff);\n    put_byte(s, (strm.total_in >> 16) & 0xff);\n    put_byte(s, (strm.total_in >> 24) & 0xff);\n  }\n  else\n  {\n    putShortMSB(s, strm.adler >>> 16);\n    putShortMSB(s, strm.adler & 0xffff);\n  }\n\n  flush_pending(strm);\n  /* If avail_out is zero, the application will call deflate again\n   * to flush the rest.\n   */\n  if (s.wrap > 0) { s.wrap = -s.wrap; }\n  /* write the trailer only once! */\n  return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n}\n\nfunction deflateEnd(strm) {\n  var status;\n\n  if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n    return Z_STREAM_ERROR;\n  }\n\n  status = strm.state.status;\n  if (status !== INIT_STATE &&\n    status !== EXTRA_STATE &&\n    status !== NAME_STATE &&\n    status !== COMMENT_STATE &&\n    status !== HCRC_STATE &&\n    status !== BUSY_STATE &&\n    status !== FINISH_STATE\n  ) {\n    return err(strm, Z_STREAM_ERROR);\n  }\n\n  strm.state = null;\n\n  return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n}\n\n/* =========================================================================\n * Copy the source state to the destination state\n */\n//function deflateCopy(dest, source) {\n//\n//}\n\nexports.deflateInit = deflateInit;\nexports.deflateInit2 = deflateInit2;\nexports.deflateReset = deflateReset;\nexports.deflateResetKeep = deflateResetKeep;\nexports.deflateSetHeader = deflateSetHeader;\nexports.deflate = deflate;\nexports.deflateEnd = deflateEnd;\nexports.deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nexports.deflateBound = deflateBound;\nexports.deflateCopy = deflateCopy;\nexports.deflateSetDictionary = deflateSetDictionary;\nexports.deflateParams = deflateParams;\nexports.deflatePending = deflatePending;\nexports.deflatePrime = deflatePrime;\nexports.deflateTune = deflateTune;\n*/\n},{\"../utils/common\":27,\"./adler32\":29,\"./crc32\":31,\"./messages\":37,\"./trees\":38}],33:[function(_dereq_,module,exports){\n'use strict';\n\n\nfunction GZheader() {\n  /* true if compressed data believed to be text */\n  this.text       = 0;\n  /* modification time */\n  this.time       = 0;\n  /* extra flags (not used when writing a gzip file) */\n  this.xflags     = 0;\n  /* operating system */\n  this.os         = 0;\n  /* pointer to extra field or Z_NULL if none */\n  this.extra      = null;\n  /* extra field length (valid if extra != Z_NULL) */\n  this.extra_len  = 0; // Actually, we don't need it in JS,\n                       // but leave for few code modifications\n\n  //\n  // Setup limits is not necessary because in js we should not preallocate memory\n  // for inflate use constant limit in 65536 bytes\n  //\n\n  /* space at extra (only when reading header) */\n  // this.extra_max  = 0;\n  /* pointer to zero-terminated file name or Z_NULL */\n  this.name       = '';\n  /* space at name (only when reading header) */\n  // this.name_max   = 0;\n  /* pointer to zero-terminated comment or Z_NULL */\n  this.comment    = '';\n  /* space at comment (only when reading header) */\n  // this.comm_max   = 0;\n  /* true if there was or will be a header crc */\n  this.hcrc       = 0;\n  /* true when done reading gzip header (not used when writing a gzip file) */\n  this.done       = false;\n}\n\nmodule.exports = GZheader;\n},{}],34:[function(_dereq_,module,exports){\n'use strict';\n\n// See state defs from inflate.js\nvar BAD = 30;       /* got a data error -- remain here until reset */\nvar TYPE = 12;      /* i: waiting for type bits, including last-flag bit */\n\n/*\n   Decode literal, length, and distance codes and write out the resulting\n   literal and match bytes until either not enough input or output is\n   available, an end-of-block is encountered, or a data error is encountered.\n   When large enough input and output buffers are supplied to inflate(), for\n   example, a 16K input buffer and a 64K output buffer, more than 95% of the\n   inflate execution time is spent in this routine.\n\n   Entry assumptions:\n\n        state.mode === LEN\n        strm.avail_in >= 6\n        strm.avail_out >= 258\n        start >= strm.avail_out\n        state.bits < 8\n\n   On return, state.mode is one of:\n\n        LEN -- ran out of enough output space or enough available input\n        TYPE -- reached end of block code, inflate() to interpret next block\n        BAD -- error in block data\n\n   Notes:\n\n    - The maximum input bits used by a length/distance pair is 15 bits for the\n      length code, 5 bits for the length extra, 15 bits for the distance code,\n      and 13 bits for the distance extra.  This totals 48 bits, or six bytes.\n      Therefore if strm.avail_in >= 6, then there is enough input to avoid\n      checking for available input while decoding.\n\n    - The maximum bytes that a single length/distance pair can output is 258\n      bytes, which is the maximum length that can be coded.  inflate_fast()\n      requires strm.avail_out >= 258 for each loop to avoid checking for\n      output space.\n */\nmodule.exports = function inflate_fast(strm, start) {\n  var state;\n  var _in;                    /* local strm.input */\n  var last;                   /* have enough input while in < last */\n  var _out;                   /* local strm.output */\n  var beg;                    /* inflate()'s initial strm.output */\n  var end;                    /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n  var dmax;                   /* maximum distance from zlib header */\n//#endif\n  var wsize;                  /* window size or zero if not using window */\n  var whave;                  /* valid bytes in the window */\n  var wnext;                  /* window write index */\n  var window;                 /* allocated sliding window, if wsize != 0 */\n  var hold;                   /* local strm.hold */\n  var bits;                   /* local strm.bits */\n  var lcode;                  /* local strm.lencode */\n  var dcode;                  /* local strm.distcode */\n  var lmask;                  /* mask for first level of length codes */\n  var dmask;                  /* mask for first level of distance codes */\n  var here;                   /* retrieved table entry */\n  var op;                     /* code bits, operation, extra bits, or */\n                              /*  window position, window bytes to copy */\n  var len;                    /* match length, unused bytes */\n  var dist;                   /* match distance */\n  var from;                   /* where to copy match from */\n  var from_source;\n\n\n  var input, output; // JS specific, because we have no pointers\n\n  /* copy state to local variables */\n  state = strm.state;\n  //here = state.here;\n  _in = strm.next_in;\n  input = strm.input;\n  last = _in + (strm.avail_in - 5);\n  _out = strm.next_out;\n  output = strm.output;\n  beg = _out - (start - strm.avail_out);\n  end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n  dmax = state.dmax;\n//#endif\n  wsize = state.wsize;\n  whave = state.whave;\n  wnext = state.wnext;\n  window = state.window;\n  hold = state.hold;\n  bits = state.bits;\n  lcode = state.lencode;\n  dcode = state.distcode;\n  lmask = (1 << state.lenbits) - 1;\n  dmask = (1 << state.distbits) - 1;\n\n\n  /* decode literals and length/distances until end-of-block or not enough\n     input data or output space */\n\n  top:\n  do {\n    if (bits < 15) {\n      hold += input[_in++] << bits;\n      bits += 8;\n      hold += input[_in++] << bits;\n      bits += 8;\n    }\n\n    here = lcode[hold & lmask];\n\n    dolen:\n    for (;;) { // Goto emulation\n      op = here >>> 24/*here.bits*/;\n      hold >>>= op;\n      bits -= op;\n      op = (here >>> 16) & 0xff/*here.op*/;\n      if (op === 0) {                          /* literal */\n        //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n        //        \"inflate:         literal '%c'\\n\" :\n        //        \"inflate:         literal 0x%02x\\n\", here.val));\n        output[_out++] = here & 0xffff/*here.val*/;\n      }\n      else if (op & 16) {                     /* length base */\n        len = here & 0xffff/*here.val*/;\n        op &= 15;                           /* number of extra bits */\n        if (op) {\n          if (bits < op) {\n            hold += input[_in++] << bits;\n            bits += 8;\n          }\n          len += hold & ((1 << op) - 1);\n          hold >>>= op;\n          bits -= op;\n        }\n        //Tracevv((stderr, \"inflate:         length %u\\n\", len));\n        if (bits < 15) {\n          hold += input[_in++] << bits;\n          bits += 8;\n          hold += input[_in++] << bits;\n          bits += 8;\n        }\n        here = dcode[hold & dmask];\n\n        dodist:\n        for (;;) { // goto emulation\n          op = here >>> 24/*here.bits*/;\n          hold >>>= op;\n          bits -= op;\n          op = (here >>> 16) & 0xff/*here.op*/;\n\n          if (op & 16) {                      /* distance base */\n            dist = here & 0xffff/*here.val*/;\n            op &= 15;                       /* number of extra bits */\n            if (bits < op) {\n              hold += input[_in++] << bits;\n              bits += 8;\n              if (bits < op) {\n                hold += input[_in++] << bits;\n                bits += 8;\n              }\n            }\n            dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n            if (dist > dmax) {\n              strm.msg = 'invalid distance too far back';\n              state.mode = BAD;\n              break top;\n            }\n//#endif\n            hold >>>= op;\n            bits -= op;\n            //Tracevv((stderr, \"inflate:         distance %u\\n\", dist));\n            op = _out - beg;                /* max distance in output */\n            if (dist > op) {                /* see if copy from window */\n              op = dist - op;               /* distance back in window */\n              if (op > whave) {\n                if (state.sane) {\n                  strm.msg = 'invalid distance too far back';\n                  state.mode = BAD;\n                  break top;\n                }\n\n// (!) This block is disabled in zlib defailts,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n//                if (len <= op - whave) {\n//                  do {\n//                    output[_out++] = 0;\n//                  } while (--len);\n//                  continue top;\n//                }\n//                len -= op - whave;\n//                do {\n//                  output[_out++] = 0;\n//                } while (--op > whave);\n//                if (op === 0) {\n//                  from = _out - dist;\n//                  do {\n//                    output[_out++] = output[from++];\n//                  } while (--len);\n//                  continue top;\n//                }\n//#endif\n              }\n              from = 0; // window index\n              from_source = window;\n              if (wnext === 0) {           /* very common case */\n                from += wsize - op;\n                if (op < len) {         /* some from window */\n                  len -= op;\n                  do {\n                    output[_out++] = window[from++];\n                  } while (--op);\n                  from = _out - dist;  /* rest from output */\n                  from_source = output;\n                }\n              }\n              else if (wnext < op) {      /* wrap around window */\n                from += wsize + wnext - op;\n                op -= wnext;\n                if (op < len) {         /* some from end of window */\n                  len -= op;\n                  do {\n                    output[_out++] = window[from++];\n                  } while (--op);\n                  from = 0;\n                  if (wnext < len) {  /* some from start of window */\n                    op = wnext;\n                    len -= op;\n                    do {\n                      output[_out++] = window[from++];\n                    } while (--op);\n                    from = _out - dist;      /* rest from output */\n                    from_source = output;\n                  }\n                }\n              }\n              else {                      /* contiguous in window */\n                from += wnext - op;\n                if (op < len) {         /* some from window */\n                  len -= op;\n                  do {\n                    output[_out++] = window[from++];\n                  } while (--op);\n                  from = _out - dist;  /* rest from output */\n                  from_source = output;\n                }\n              }\n              while (len > 2) {\n                output[_out++] = from_source[from++];\n                output[_out++] = from_source[from++];\n                output[_out++] = from_source[from++];\n                len -= 3;\n              }\n              if (len) {\n                output[_out++] = from_source[from++];\n                if (len > 1) {\n                  output[_out++] = from_source[from++];\n                }\n              }\n            }\n            else {\n              from = _out - dist;          /* copy direct from output */\n              do {                        /* minimum length is three */\n                output[_out++] = output[from++];\n                output[_out++] = output[from++];\n                output[_out++] = output[from++];\n                len -= 3;\n              } while (len > 2);\n              if (len) {\n                output[_out++] = output[from++];\n                if (len > 1) {\n                  output[_out++] = output[from++];\n                }\n              }\n            }\n          }\n          else if ((op & 64) === 0) {          /* 2nd level distance code */\n            here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n            continue dodist;\n          }\n          else {\n            strm.msg = 'invalid distance code';\n            state.mode = BAD;\n            break top;\n          }\n\n          break; // need to emulate goto via \"continue\"\n        }\n      }\n      else if ((op & 64) === 0) {              /* 2nd level length code */\n        here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n        continue dolen;\n      }\n      else if (op & 32) {                     /* end-of-block */\n        //Tracevv((stderr, \"inflate:         end of block\\n\"));\n        state.mode = TYPE;\n        break top;\n      }\n      else {\n        strm.msg = 'invalid literal/length code';\n        state.mode = BAD;\n        break top;\n      }\n\n      break; // need to emulate goto via \"continue\"\n    }\n  } while (_in < last && _out < end);\n\n  /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n  len = bits >> 3;\n  _in -= len;\n  bits -= len << 3;\n  hold &= (1 << bits) - 1;\n\n  /* update state and return */\n  strm.next_in = _in;\n  strm.next_out = _out;\n  strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n  strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n  state.hold = hold;\n  state.bits = bits;\n  return;\n};\n\n},{}],35:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar utils = _dereq_('../utils/common');\nvar adler32 = _dereq_('./adler32');\nvar crc32   = _dereq_('./crc32');\nvar inflate_fast = _dereq_('./inffast');\nvar inflate_table = _dereq_('./inftrees');\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n//var Z_NO_FLUSH      = 0;\n//var Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH    = 2;\n//var Z_FULL_FLUSH    = 3;\nvar Z_FINISH        = 4;\nvar Z_BLOCK         = 5;\nvar Z_TREES         = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK            = 0;\nvar Z_STREAM_END    = 1;\nvar Z_NEED_DICT     = 2;\n//var Z_ERRNO         = -1;\nvar Z_STREAM_ERROR  = -2;\nvar Z_DATA_ERROR    = -3;\nvar Z_MEM_ERROR     = -4;\nvar Z_BUF_ERROR     = -5;\n//var Z_VERSION_ERROR = -6;\n\n/* The deflate compression method */\nvar Z_DEFLATED  = 8;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nvar    HEAD = 1;       /* i: waiting for magic header */\nvar    FLAGS = 2;      /* i: waiting for method and flags (gzip) */\nvar    TIME = 3;       /* i: waiting for modification time (gzip) */\nvar    OS = 4;         /* i: waiting for extra flags and operating system (gzip) */\nvar    EXLEN = 5;      /* i: waiting for extra length (gzip) */\nvar    EXTRA = 6;      /* i: waiting for extra bytes (gzip) */\nvar    NAME = 7;       /* i: waiting for end of file name (gzip) */\nvar    COMMENT = 8;    /* i: waiting for end of comment (gzip) */\nvar    HCRC = 9;       /* i: waiting for header crc (gzip) */\nvar    DICTID = 10;    /* i: waiting for dictionary check value */\nvar    DICT = 11;      /* waiting for inflateSetDictionary() call */\nvar        TYPE = 12;      /* i: waiting for type bits, including last-flag bit */\nvar        TYPEDO = 13;    /* i: same, but skip check to exit inflate on new block */\nvar        STORED = 14;    /* i: waiting for stored size (length and complement) */\nvar        COPY_ = 15;     /* i/o: same as COPY below, but only first time in */\nvar        COPY = 16;      /* i/o: waiting for input or output to copy stored block */\nvar        TABLE = 17;     /* i: waiting for dynamic block table lengths */\nvar        LENLENS = 18;   /* i: waiting for code length code lengths */\nvar        CODELENS = 19;  /* i: waiting for length/lit and distance code lengths */\nvar            LEN_ = 20;      /* i: same as LEN below, but only first time in */\nvar            LEN = 21;       /* i: waiting for length/lit/eob code */\nvar            LENEXT = 22;    /* i: waiting for length extra bits */\nvar            DIST = 23;      /* i: waiting for distance code */\nvar            DISTEXT = 24;   /* i: waiting for distance extra bits */\nvar            MATCH = 25;     /* o: waiting for output space to copy string */\nvar            LIT = 26;       /* o: waiting for output space to write literal */\nvar    CHECK = 27;     /* i: waiting for 32-bit check value */\nvar    LENGTH = 28;    /* i: waiting for 32-bit length (gzip) */\nvar    DONE = 29;      /* finished check, done -- remain here until reset */\nvar    BAD = 30;       /* got a data error -- remain here until reset */\nvar    MEM = 31;       /* got an inflate() memory error -- remain here until reset */\nvar    SYNC = 32;      /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH =  (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_WBITS = MAX_WBITS;\n\n\nfunction ZSWAP32(q) {\n  return  (((q >>> 24) & 0xff) +\n          ((q >>> 8) & 0xff00) +\n          ((q & 0xff00) << 8) +\n          ((q & 0xff) << 24));\n}\n\n\nfunction InflateState() {\n  this.mode = 0;             /* current inflate mode */\n  this.last = false;          /* true if processing last block */\n  this.wrap = 0;              /* bit 0 true for zlib, bit 1 true for gzip */\n  this.havedict = false;      /* true if dictionary provided */\n  this.flags = 0;             /* gzip header method and flags (0 if zlib) */\n  this.dmax = 0;              /* zlib header max distance (INFLATE_STRICT) */\n  this.check = 0;             /* protected copy of check value */\n  this.total = 0;             /* protected copy of output count */\n  // TODO: may be {}\n  this.head = null;           /* where to save gzip header information */\n\n  /* sliding window */\n  this.wbits = 0;             /* log base 2 of requested window size */\n  this.wsize = 0;             /* window size or zero if not using window */\n  this.whave = 0;             /* valid bytes in the window */\n  this.wnext = 0;             /* window write index */\n  this.window = null;         /* allocated sliding window, if needed */\n\n  /* bit accumulator */\n  this.hold = 0;              /* input bit accumulator */\n  this.bits = 0;              /* number of bits in \"in\" */\n\n  /* for string and stored block copying */\n  this.length = 0;            /* literal or length of data to copy */\n  this.offset = 0;            /* distance back to copy string from */\n\n  /* for table and code decoding */\n  this.extra = 0;             /* extra bits needed */\n\n  /* fixed and dynamic code tables */\n  this.lencode = null;          /* starting table for length/literal codes */\n  this.distcode = null;         /* starting table for distance codes */\n  this.lenbits = 0;           /* index bits for lencode */\n  this.distbits = 0;          /* index bits for distcode */\n\n  /* dynamic table building */\n  this.ncode = 0;             /* number of code length code lengths */\n  this.nlen = 0;              /* number of length code lengths */\n  this.ndist = 0;             /* number of distance code lengths */\n  this.have = 0;              /* number of code lengths in lens[] */\n  this.next = null;              /* next available space in codes[] */\n\n  this.lens = new utils.Buf16(320); /* temporary storage for code lengths */\n  this.work = new utils.Buf16(288); /* work area for code table building */\n\n  /*\n   because we don't have pointers in js, we use lencode and distcode directly\n   as buffers so we don't need codes\n  */\n  //this.codes = new utils.Buf32(ENOUGH);       /* space for code tables */\n  this.lendyn = null;              /* dynamic table for length/literal codes (JS specific) */\n  this.distdyn = null;             /* dynamic table for distance codes (JS specific) */\n  this.sane = 0;                   /* if false, allow invalid distance too far */\n  this.back = 0;                   /* bits back of last unprocessed length/lit */\n  this.was = 0;                    /* initial length of match */\n}\n\nfunction inflateResetKeep(strm) {\n  var state;\n\n  if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n  state = strm.state;\n  strm.total_in = strm.total_out = state.total = 0;\n  strm.msg = ''; /*Z_NULL*/\n  if (state.wrap) {       /* to support ill-conceived Java test suite */\n    strm.adler = state.wrap & 1;\n  }\n  state.mode = HEAD;\n  state.last = 0;\n  state.havedict = 0;\n  state.dmax = 32768;\n  state.head = null/*Z_NULL*/;\n  state.hold = 0;\n  state.bits = 0;\n  //state.lencode = state.distcode = state.next = state.codes;\n  state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);\n  state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);\n\n  state.sane = 1;\n  state.back = -1;\n  //Tracev((stderr, \"inflate: reset\\n\"));\n  return Z_OK;\n}\n\nfunction inflateReset(strm) {\n  var state;\n\n  if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n  state = strm.state;\n  state.wsize = 0;\n  state.whave = 0;\n  state.wnext = 0;\n  return inflateResetKeep(strm);\n\n}\n\nfunction inflateReset2(strm, windowBits) {\n  var wrap;\n  var state;\n\n  /* get the state */\n  if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n  state = strm.state;\n\n  /* extract wrap request from windowBits parameter */\n  if (windowBits < 0) {\n    wrap = 0;\n    windowBits = -windowBits;\n  }\n  else {\n    wrap = (windowBits >> 4) + 1;\n    if (windowBits < 48) {\n      windowBits &= 15;\n    }\n  }\n\n  /* set number of window bits, free window if different */\n  if (windowBits && (windowBits < 8 || windowBits > 15)) {\n    return Z_STREAM_ERROR;\n  }\n  if (state.window !== null && state.wbits !== windowBits) {\n    state.window = null;\n  }\n\n  /* update state and reset the rest of it */\n  state.wrap = wrap;\n  state.wbits = windowBits;\n  return inflateReset(strm);\n}\n\nfunction inflateInit2(strm, windowBits) {\n  var ret;\n  var state;\n\n  if (!strm) { return Z_STREAM_ERROR; }\n  //strm.msg = Z_NULL;                 /* in case we return an error */\n\n  state = new InflateState();\n\n  //if (state === Z_NULL) return Z_MEM_ERROR;\n  //Tracev((stderr, \"inflate: allocated\\n\"));\n  strm.state = state;\n  state.window = null/*Z_NULL*/;\n  ret = inflateReset2(strm, windowBits);\n  if (ret !== Z_OK) {\n    strm.state = null/*Z_NULL*/;\n  }\n  return ret;\n}\n\nfunction inflateInit(strm) {\n  return inflateInit2(strm, DEF_WBITS);\n}\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding.  Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter.  This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time.  However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nvar virgin = true;\n\nvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\nfunction fixedtables(state) {\n  /* build fixed huffman tables if first call (may not be thread safe) */\n  if (virgin) {\n    var sym;\n\n    lenfix = new utils.Buf32(512);\n    distfix = new utils.Buf32(32);\n\n    /* literal/length table */\n    sym = 0;\n    while (sym < 144) { state.lens[sym++] = 8; }\n    while (sym < 256) { state.lens[sym++] = 9; }\n    while (sym < 280) { state.lens[sym++] = 7; }\n    while (sym < 288) { state.lens[sym++] = 8; }\n\n    inflate_table(LENS,  state.lens, 0, 288, lenfix,   0, state.work, {bits: 9});\n\n    /* distance table */\n    sym = 0;\n    while (sym < 32) { state.lens[sym++] = 5; }\n\n    inflate_table(DISTS, state.lens, 0, 32,   distfix, 0, state.work, {bits: 5});\n\n    /* do this just once */\n    virgin = false;\n  }\n\n  state.lencode = lenfix;\n  state.lenbits = 9;\n  state.distcode = distfix;\n  state.distbits = 5;\n}\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning.  If window does not exist yet, create it.  This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nfunction updatewindow(strm, src, end, copy) {\n  var dist;\n  var state = strm.state;\n\n  /* if it hasn't been done already, allocate space for the window */\n  if (state.window === null) {\n    state.wsize = 1 << state.wbits;\n    state.wnext = 0;\n    state.whave = 0;\n\n    state.window = new utils.Buf8(state.wsize);\n  }\n\n  /* copy state->wsize or less output bytes into the circular window */\n  if (copy >= state.wsize) {\n    utils.arraySet(state.window,src, end - state.wsize, state.wsize, 0);\n    state.wnext = 0;\n    state.whave = state.wsize;\n  }\n  else {\n    dist = state.wsize - state.wnext;\n    if (dist > copy) {\n      dist = copy;\n    }\n    //zmemcpy(state->window + state->wnext, end - copy, dist);\n    utils.arraySet(state.window,src, end - copy, dist, state.wnext);\n    copy -= dist;\n    if (copy) {\n      //zmemcpy(state->window, end - copy, copy);\n      utils.arraySet(state.window,src, end - copy, copy, 0);\n      state.wnext = copy;\n      state.whave = state.wsize;\n    }\n    else {\n      state.wnext += dist;\n      if (state.wnext === state.wsize) { state.wnext = 0; }\n      if (state.whave < state.wsize) { state.whave += dist; }\n    }\n  }\n  return 0;\n}\n\nfunction inflate(strm, flush) {\n  var state;\n  var input, output;          // input/output buffers\n  var next;                   /* next input INDEX */\n  var put;                    /* next output INDEX */\n  var have, left;             /* available input and output */\n  var hold;                   /* bit buffer */\n  var bits;                   /* bits in bit buffer */\n  var _in, _out;              /* save starting available input and output */\n  var copy;                   /* number of stored or match bytes to copy */\n  var from;                   /* where to copy match bytes from */\n  var from_source;\n  var here = 0;               /* current decoding table entry */\n  var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n  //var last;                   /* parent table entry */\n  var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n  var len;                    /* length to copy for repeats, bits to drop */\n  var ret;                    /* return code */\n  var hbuf = new utils.Buf8(4);    /* buffer for gzip header crc calculation */\n  var opts;\n\n  var n; // temporary var for NEED_BITS\n\n  var order = /* permutation of code lengths */\n    [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n\n\n  if (!strm || !strm.state || !strm.output ||\n      (!strm.input && strm.avail_in !== 0)) {\n    return Z_STREAM_ERROR;\n  }\n\n  state = strm.state;\n  if (state.mode === TYPE) { state.mode = TYPEDO; }    /* skip check */\n\n\n  //--- LOAD() ---\n  put = strm.next_out;\n  output = strm.output;\n  left = strm.avail_out;\n  next = strm.next_in;\n  input = strm.input;\n  have = strm.avail_in;\n  hold = state.hold;\n  bits = state.bits;\n  //---\n\n  _in = have;\n  _out = left;\n  ret = Z_OK;\n\n  inf_leave: // goto emulation\n  for (;;) {\n    switch (state.mode) {\n    case HEAD:\n      if (state.wrap === 0) {\n        state.mode = TYPEDO;\n        break;\n      }\n      //=== NEEDBITS(16);\n      while (bits < 16) {\n        if (have === 0) { break inf_leave; }\n        have--;\n        hold += input[next++] << bits;\n        bits += 8;\n      }\n      //===//\n      if ((state.wrap & 2) && hold === 0x8b1f) {  /* gzip header */\n        state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n        //=== CRC2(state.check, hold);\n        hbuf[0] = hold & 0xff;\n        hbuf[1] = (hold >>> 8) & 0xff;\n        state.check = crc32(state.check, hbuf, 2, 0);\n        //===//\n\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n        state.mode = FLAGS;\n        break;\n      }\n      state.flags = 0;           /* expect zlib header */\n      if (state.head) {\n        state.head.done = false;\n      }\n      if (!(state.wrap & 1) ||   /* check if zlib header allowed */\n        (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n        strm.msg = 'incorrect header check';\n        state.mode = BAD;\n        break;\n      }\n      if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n        strm.msg = 'unknown compression method';\n        state.mode = BAD;\n        break;\n      }\n      //--- DROPBITS(4) ---//\n      hold >>>= 4;\n      bits -= 4;\n      //---//\n      len = (hold & 0x0f)/*BITS(4)*/ + 8;\n      if (state.wbits === 0) {\n        state.wbits = len;\n      }\n      else if (len > state.wbits) {\n        strm.msg = 'invalid window size';\n        state.mode = BAD;\n        break;\n      }\n      state.dmax = 1 << len;\n      //Tracev((stderr, \"inflate:   zlib header ok\\n\"));\n      strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n      state.mode = hold & 0x200 ? DICTID : TYPE;\n      //=== INITBITS();\n      hold = 0;\n      bits = 0;\n      //===//\n      break;\n    case FLAGS:\n      //=== NEEDBITS(16); */\n      while (bits < 16) {\n        if (have === 0) { break inf_leave; }\n        have--;\n        hold += input[next++] << bits;\n        bits += 8;\n      }\n      //===//\n      state.flags = hold;\n      if ((state.flags & 0xff) !== Z_DEFLATED) {\n        strm.msg = 'unknown compression method';\n        state.mode = BAD;\n        break;\n      }\n      if (state.flags & 0xe000) {\n        strm.msg = 'unknown header flags set';\n        state.mode = BAD;\n        break;\n      }\n      if (state.head) {\n        state.head.text = ((hold >> 8) & 1);\n      }\n      if (state.flags & 0x0200) {\n        //=== CRC2(state.check, hold);\n        hbuf[0] = hold & 0xff;\n        hbuf[1] = (hold >>> 8) & 0xff;\n        state.check = crc32(state.check, hbuf, 2, 0);\n        //===//\n      }\n      //=== INITBITS();\n      hold = 0;\n      bits = 0;\n      //===//\n      state.mode = TIME;\n      /* falls through */\n    case TIME:\n      //=== NEEDBITS(32); */\n      while (bits < 32) {\n        if (have === 0) { break inf_leave; }\n        have--;\n        hold += input[next++] << bits;\n        bits += 8;\n      }\n      //===//\n      if (state.head) {\n        state.head.time = hold;\n      }\n      if (state.flags & 0x0200) {\n        //=== CRC4(state.check, hold)\n        hbuf[0] = hold & 0xff;\n        hbuf[1] = (hold >>> 8) & 0xff;\n        hbuf[2] = (hold >>> 16) & 0xff;\n        hbuf[3] = (hold >>> 24) & 0xff;\n        state.check = crc32(state.check, hbuf, 4, 0);\n        //===\n      }\n      //=== INITBITS();\n      hold = 0;\n      bits = 0;\n      //===//\n      state.mode = OS;\n      /* falls through */\n    case OS:\n      //=== NEEDBITS(16); */\n      while (bits < 16) {\n        if (have === 0) { break inf_leave; }\n        have--;\n        hold += input[next++] << bits;\n        bits += 8;\n      }\n      //===//\n      if (state.head) {\n        state.head.xflags = (hold & 0xff);\n        state.head.os = (hold >> 8);\n      }\n      if (state.flags & 0x0200) {\n        //=== CRC2(state.check, hold);\n        hbuf[0] = hold & 0xff;\n        hbuf[1] = (hold >>> 8) & 0xff;\n        state.check = crc32(state.check, hbuf, 2, 0);\n        //===//\n      }\n      //=== INITBITS();\n      hold = 0;\n      bits = 0;\n      //===//\n      state.mode = EXLEN;\n      /* falls through */\n    case EXLEN:\n      if (state.flags & 0x0400) {\n        //=== NEEDBITS(16); */\n        while (bits < 16) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        state.length = hold;\n        if (state.head) {\n          state.head.extra_len = hold;\n        }\n        if (state.flags & 0x0200) {\n          //=== CRC2(state.check, hold);\n          hbuf[0] = hold & 0xff;\n          hbuf[1] = (hold >>> 8) & 0xff;\n          state.check = crc32(state.check, hbuf, 2, 0);\n          //===//\n        }\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n      }\n      else if (state.head) {\n        state.head.extra = null/*Z_NULL*/;\n      }\n      state.mode = EXTRA;\n      /* falls through */\n    case EXTRA:\n      if (state.flags & 0x0400) {\n        copy = state.length;\n        if (copy > have) { copy = have; }\n        if (copy) {\n          if (state.head) {\n            len = state.head.extra_len - state.length;\n            if (!state.head.extra) {\n              // Use untyped array for more conveniend processing later\n              state.head.extra = new Array(state.head.extra_len);\n            }\n            utils.arraySet(\n              state.head.extra,\n              input,\n              next,\n              // extra field is limited to 65536 bytes\n              // - no need for additional size check\n              copy,\n              /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n              len\n            );\n            //zmemcpy(state.head.extra + len, next,\n            //        len + copy > state.head.extra_max ?\n            //        state.head.extra_max - len : copy);\n          }\n          if (state.flags & 0x0200) {\n            state.check = crc32(state.check, input, copy, next);\n          }\n          have -= copy;\n          next += copy;\n          state.length -= copy;\n        }\n        if (state.length) { break inf_leave; }\n      }\n      state.length = 0;\n      state.mode = NAME;\n      /* falls through */\n    case NAME:\n      if (state.flags & 0x0800) {\n        if (have === 0) { break inf_leave; }\n        copy = 0;\n        do {\n          // TODO: 2 or 1 bytes?\n          len = input[next + copy++];\n          /* use constant limit because in js we should not preallocate memory */\n          if (state.head && len &&\n              (state.length < 65536 /*state.head.name_max*/)) {\n            state.head.name += String.fromCharCode(len);\n          }\n        } while (len && copy < have);\n\n        if (state.flags & 0x0200) {\n          state.check = crc32(state.check, input, copy, next);\n        }\n        have -= copy;\n        next += copy;\n        if (len) { break inf_leave; }\n      }\n      else if (state.head) {\n        state.head.name = null;\n      }\n      state.length = 0;\n      state.mode = COMMENT;\n      /* falls through */\n    case COMMENT:\n      if (state.flags & 0x1000) {\n        if (have === 0) { break inf_leave; }\n        copy = 0;\n        do {\n          len = input[next + copy++];\n          /* use constant limit because in js we should not preallocate memory */\n          if (state.head && len &&\n              (state.length < 65536 /*state.head.comm_max*/)) {\n            state.head.comment += String.fromCharCode(len);\n          }\n        } while (len && copy < have);\n        if (state.flags & 0x0200) {\n          state.check = crc32(state.check, input, copy, next);\n        }\n        have -= copy;\n        next += copy;\n        if (len) { break inf_leave; }\n      }\n      else if (state.head) {\n        state.head.comment = null;\n      }\n      state.mode = HCRC;\n      /* falls through */\n    case HCRC:\n      if (state.flags & 0x0200) {\n        //=== NEEDBITS(16); */\n        while (bits < 16) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        if (hold !== (state.check & 0xffff)) {\n          strm.msg = 'header crc mismatch';\n          state.mode = BAD;\n          break;\n        }\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n      }\n      if (state.head) {\n        state.head.hcrc = ((state.flags >> 9) & 1);\n        state.head.done = true;\n      }\n      strm.adler = state.check = 0 /*crc32(0L, Z_NULL, 0)*/;\n      state.mode = TYPE;\n      break;\n    case DICTID:\n      //=== NEEDBITS(32); */\n      while (bits < 32) {\n        if (have === 0) { break inf_leave; }\n        have--;\n        hold += input[next++] << bits;\n        bits += 8;\n      }\n      //===//\n      strm.adler = state.check = ZSWAP32(hold);\n      //=== INITBITS();\n      hold = 0;\n      bits = 0;\n      //===//\n      state.mode = DICT;\n      /* falls through */\n    case DICT:\n      if (state.havedict === 0) {\n        //--- RESTORE() ---\n        strm.next_out = put;\n        strm.avail_out = left;\n        strm.next_in = next;\n        strm.avail_in = have;\n        state.hold = hold;\n        state.bits = bits;\n        //---\n        return Z_NEED_DICT;\n      }\n      strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n      state.mode = TYPE;\n      /* falls through */\n    case TYPE:\n      if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n      /* falls through */\n    case TYPEDO:\n      if (state.last) {\n        //--- BYTEBITS() ---//\n        hold >>>= bits & 7;\n        bits -= bits & 7;\n        //---//\n        state.mode = CHECK;\n        break;\n      }\n      //=== NEEDBITS(3); */\n      while (bits < 3) {\n        if (have === 0) { break inf_leave; }\n        have--;\n        hold += input[next++] << bits;\n        bits += 8;\n      }\n      //===//\n      state.last = (hold & 0x01)/*BITS(1)*/;\n      //--- DROPBITS(1) ---//\n      hold >>>= 1;\n      bits -= 1;\n      //---//\n\n      switch ((hold & 0x03)/*BITS(2)*/) {\n      case 0:                             /* stored block */\n        //Tracev((stderr, \"inflate:     stored block%s\\n\",\n        //        state.last ? \" (last)\" : \"\"));\n        state.mode = STORED;\n        break;\n      case 1:                             /* fixed block */\n        fixedtables(state);\n        //Tracev((stderr, \"inflate:     fixed codes block%s\\n\",\n        //        state.last ? \" (last)\" : \"\"));\n        state.mode = LEN_;             /* decode codes */\n        if (flush === Z_TREES) {\n          //--- DROPBITS(2) ---//\n          hold >>>= 2;\n          bits -= 2;\n          //---//\n          break inf_leave;\n        }\n        break;\n      case 2:                             /* dynamic block */\n        //Tracev((stderr, \"inflate:     dynamic codes block%s\\n\",\n        //        state.last ? \" (last)\" : \"\"));\n        state.mode = TABLE;\n        break;\n      case 3:\n        strm.msg = 'invalid block type';\n        state.mode = BAD;\n      }\n      //--- DROPBITS(2) ---//\n      hold >>>= 2;\n      bits -= 2;\n      //---//\n      break;\n    case STORED:\n      //--- BYTEBITS() ---// /* go to byte boundary */\n      hold >>>= bits & 7;\n      bits -= bits & 7;\n      //---//\n      //=== NEEDBITS(32); */\n      while (bits < 32) {\n        if (have === 0) { break inf_leave; }\n        have--;\n        hold += input[next++] << bits;\n        bits += 8;\n      }\n      //===//\n      if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n        strm.msg = 'invalid stored block lengths';\n        state.mode = BAD;\n        break;\n      }\n      state.length = hold & 0xffff;\n      //Tracev((stderr, \"inflate:       stored length %u\\n\",\n      //        state.length));\n      //=== INITBITS();\n      hold = 0;\n      bits = 0;\n      //===//\n      state.mode = COPY_;\n      if (flush === Z_TREES) { break inf_leave; }\n      /* falls through */\n    case COPY_:\n      state.mode = COPY;\n      /* falls through */\n    case COPY:\n      copy = state.length;\n      if (copy) {\n        if (copy > have) { copy = have; }\n        if (copy > left) { copy = left; }\n        if (copy === 0) { break inf_leave; }\n        //--- zmemcpy(put, next, copy); ---\n        utils.arraySet(output, input, next, copy, put);\n        //---//\n        have -= copy;\n        next += copy;\n        left -= copy;\n        put += copy;\n        state.length -= copy;\n        break;\n      }\n      //Tracev((stderr, \"inflate:       stored end\\n\"));\n      state.mode = TYPE;\n      break;\n    case TABLE:\n      //=== NEEDBITS(14); */\n      while (bits < 14) {\n        if (have === 0) { break inf_leave; }\n        have--;\n        hold += input[next++] << bits;\n        bits += 8;\n      }\n      //===//\n      state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n      //--- DROPBITS(5) ---//\n      hold >>>= 5;\n      bits -= 5;\n      //---//\n      state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n      //--- DROPBITS(5) ---//\n      hold >>>= 5;\n      bits -= 5;\n      //---//\n      state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n      //--- DROPBITS(4) ---//\n      hold >>>= 4;\n      bits -= 4;\n      //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n      if (state.nlen > 286 || state.ndist > 30) {\n        strm.msg = 'too many length or distance symbols';\n        state.mode = BAD;\n        break;\n      }\n//#endif\n      //Tracev((stderr, \"inflate:       table sizes ok\\n\"));\n      state.have = 0;\n      state.mode = LENLENS;\n      /* falls through */\n    case LENLENS:\n      while (state.have < state.ncode) {\n        //=== NEEDBITS(3);\n        while (bits < 3) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n        //--- DROPBITS(3) ---//\n        hold >>>= 3;\n        bits -= 3;\n        //---//\n      }\n      while (state.have < 19) {\n        state.lens[order[state.have++]] = 0;\n      }\n      // We have separate tables & no pointers. 2 commented lines below not needed.\n      //state.next = state.codes;\n      //state.lencode = state.next;\n      // Switch to use dynamic table\n      state.lencode = state.lendyn;\n      state.lenbits = 7;\n\n      opts = {bits: state.lenbits};\n      ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n      state.lenbits = opts.bits;\n\n      if (ret) {\n        strm.msg = 'invalid code lengths set';\n        state.mode = BAD;\n        break;\n      }\n      //Tracev((stderr, \"inflate:       code lengths ok\\n\"));\n      state.have = 0;\n      state.mode = CODELENS;\n      /* falls through */\n    case CODELENS:\n      while (state.have < state.nlen + state.ndist) {\n        for (;;) {\n          here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n          here_bits = here >>> 24;\n          here_op = (here >>> 16) & 0xff;\n          here_val = here & 0xffff;\n\n          if ((here_bits) <= bits) { break; }\n          //--- PULLBYTE() ---//\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n          //---//\n        }\n        if (here_val < 16) {\n          //--- DROPBITS(here.bits) ---//\n          hold >>>= here_bits;\n          bits -= here_bits;\n          //---//\n          state.lens[state.have++] = here_val;\n        }\n        else {\n          if (here_val === 16) {\n            //=== NEEDBITS(here.bits + 2);\n            n = here_bits + 2;\n            while (bits < n) {\n              if (have === 0) { break inf_leave; }\n              have--;\n              hold += input[next++] << bits;\n              bits += 8;\n            }\n            //===//\n            //--- DROPBITS(here.bits) ---//\n            hold >>>= here_bits;\n            bits -= here_bits;\n            //---//\n            if (state.have === 0) {\n              strm.msg = 'invalid bit length repeat';\n              state.mode = BAD;\n              break;\n            }\n            len = state.lens[state.have - 1];\n            copy = 3 + (hold & 0x03);//BITS(2);\n            //--- DROPBITS(2) ---//\n            hold >>>= 2;\n            bits -= 2;\n            //---//\n          }\n          else if (here_val === 17) {\n            //=== NEEDBITS(here.bits + 3);\n            n = here_bits + 3;\n            while (bits < n) {\n              if (have === 0) { break inf_leave; }\n              have--;\n              hold += input[next++] << bits;\n              bits += 8;\n            }\n            //===//\n            //--- DROPBITS(here.bits) ---//\n            hold >>>= here_bits;\n            bits -= here_bits;\n            //---//\n            len = 0;\n            copy = 3 + (hold & 0x07);//BITS(3);\n            //--- DROPBITS(3) ---//\n            hold >>>= 3;\n            bits -= 3;\n            //---//\n          }\n          else {\n            //=== NEEDBITS(here.bits + 7);\n            n = here_bits + 7;\n            while (bits < n) {\n              if (have === 0) { break inf_leave; }\n              have--;\n              hold += input[next++] << bits;\n              bits += 8;\n            }\n            //===//\n            //--- DROPBITS(here.bits) ---//\n            hold >>>= here_bits;\n            bits -= here_bits;\n            //---//\n            len = 0;\n            copy = 11 + (hold & 0x7f);//BITS(7);\n            //--- DROPBITS(7) ---//\n            hold >>>= 7;\n            bits -= 7;\n            //---//\n          }\n          if (state.have + copy > state.nlen + state.ndist) {\n            strm.msg = 'invalid bit length repeat';\n            state.mode = BAD;\n            break;\n          }\n          while (copy--) {\n            state.lens[state.have++] = len;\n          }\n        }\n      }\n\n      /* handle error breaks in while */\n      if (state.mode === BAD) { break; }\n\n      /* check for end-of-block code (better have one) */\n      if (state.lens[256] === 0) {\n        strm.msg = 'invalid code -- missing end-of-block';\n        state.mode = BAD;\n        break;\n      }\n\n      /* build code tables -- note: do not change the lenbits or distbits\n         values here (9 and 6) without reading the comments in inftrees.h\n         concerning the ENOUGH constants, which depend on those values */\n      state.lenbits = 9;\n\n      opts = {bits: state.lenbits};\n      ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n      // We have separate tables & no pointers. 2 commented lines below not needed.\n      // state.next_index = opts.table_index;\n      state.lenbits = opts.bits;\n      // state.lencode = state.next;\n\n      if (ret) {\n        strm.msg = 'invalid literal/lengths set';\n        state.mode = BAD;\n        break;\n      }\n\n      state.distbits = 6;\n      //state.distcode.copy(state.codes);\n      // Switch to use dynamic table\n      state.distcode = state.distdyn;\n      opts = {bits: state.distbits};\n      ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n      // We have separate tables & no pointers. 2 commented lines below not needed.\n      // state.next_index = opts.table_index;\n      state.distbits = opts.bits;\n      // state.distcode = state.next;\n\n      if (ret) {\n        strm.msg = 'invalid distances set';\n        state.mode = BAD;\n        break;\n      }\n      //Tracev((stderr, 'inflate:       codes ok\\n'));\n      state.mode = LEN_;\n      if (flush === Z_TREES) { break inf_leave; }\n      /* falls through */\n    case LEN_:\n      state.mode = LEN;\n      /* falls through */\n    case LEN:\n      if (have >= 6 && left >= 258) {\n        //--- RESTORE() ---\n        strm.next_out = put;\n        strm.avail_out = left;\n        strm.next_in = next;\n        strm.avail_in = have;\n        state.hold = hold;\n        state.bits = bits;\n        //---\n        inflate_fast(strm, _out);\n        //--- LOAD() ---\n        put = strm.next_out;\n        output = strm.output;\n        left = strm.avail_out;\n        next = strm.next_in;\n        input = strm.input;\n        have = strm.avail_in;\n        hold = state.hold;\n        bits = state.bits;\n        //---\n\n        if (state.mode === TYPE) {\n          state.back = -1;\n        }\n        break;\n      }\n      state.back = 0;\n      for (;;) {\n        here = state.lencode[hold & ((1 << state.lenbits) -1)];  /*BITS(state.lenbits)*/\n        here_bits = here >>> 24;\n        here_op = (here >>> 16) & 0xff;\n        here_val = here & 0xffff;\n\n        if (here_bits <= bits) { break; }\n        //--- PULLBYTE() ---//\n        if (have === 0) { break inf_leave; }\n        have--;\n        hold += input[next++] << bits;\n        bits += 8;\n        //---//\n      }\n      if (here_op && (here_op & 0xf0) === 0) {\n        last_bits = here_bits;\n        last_op = here_op;\n        last_val = here_val;\n        for (;;) {\n          here = state.lencode[last_val +\n                  ((hold & ((1 << (last_bits + last_op)) -1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n          here_bits = here >>> 24;\n          here_op = (here >>> 16) & 0xff;\n          here_val = here & 0xffff;\n\n          if ((last_bits + here_bits) <= bits) { break; }\n          //--- PULLBYTE() ---//\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n          //---//\n        }\n        //--- DROPBITS(last.bits) ---//\n        hold >>>= last_bits;\n        bits -= last_bits;\n        //---//\n        state.back += last_bits;\n      }\n      //--- DROPBITS(here.bits) ---//\n      hold >>>= here_bits;\n      bits -= here_bits;\n      //---//\n      state.back += here_bits;\n      state.length = here_val;\n      if (here_op === 0) {\n        //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n        //        \"inflate:         literal '%c'\\n\" :\n        //        \"inflate:         literal 0x%02x\\n\", here.val));\n        state.mode = LIT;\n        break;\n      }\n      if (here_op & 32) {\n        //Tracevv((stderr, \"inflate:         end of block\\n\"));\n        state.back = -1;\n        state.mode = TYPE;\n        break;\n      }\n      if (here_op & 64) {\n        strm.msg = 'invalid literal/length code';\n        state.mode = BAD;\n        break;\n      }\n      state.extra = here_op & 15;\n      state.mode = LENEXT;\n      /* falls through */\n    case LENEXT:\n      if (state.extra) {\n        //=== NEEDBITS(state.extra);\n        n = state.extra;\n        while (bits < n) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        state.length += hold & ((1 << state.extra) -1)/*BITS(state.extra)*/;\n        //--- DROPBITS(state.extra) ---//\n        hold >>>= state.extra;\n        bits -= state.extra;\n        //---//\n        state.back += state.extra;\n      }\n      //Tracevv((stderr, \"inflate:         length %u\\n\", state.length));\n      state.was = state.length;\n      state.mode = DIST;\n      /* falls through */\n    case DIST:\n      for (;;) {\n        here = state.distcode[hold & ((1 << state.distbits) -1)];/*BITS(state.distbits)*/\n        here_bits = here >>> 24;\n        here_op = (here >>> 16) & 0xff;\n        here_val = here & 0xffff;\n\n        if ((here_bits) <= bits) { break; }\n        //--- PULLBYTE() ---//\n        if (have === 0) { break inf_leave; }\n        have--;\n        hold += input[next++] << bits;\n        bits += 8;\n        //---//\n      }\n      if ((here_op & 0xf0) === 0) {\n        last_bits = here_bits;\n        last_op = here_op;\n        last_val = here_val;\n        for (;;) {\n          here = state.distcode[last_val +\n                  ((hold & ((1 << (last_bits + last_op)) -1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n          here_bits = here >>> 24;\n          here_op = (here >>> 16) & 0xff;\n          here_val = here & 0xffff;\n\n          if ((last_bits + here_bits) <= bits) { break; }\n          //--- PULLBYTE() ---//\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n          //---//\n        }\n        //--- DROPBITS(last.bits) ---//\n        hold >>>= last_bits;\n        bits -= last_bits;\n        //---//\n        state.back += last_bits;\n      }\n      //--- DROPBITS(here.bits) ---//\n      hold >>>= here_bits;\n      bits -= here_bits;\n      //---//\n      state.back += here_bits;\n      if (here_op & 64) {\n        strm.msg = 'invalid distance code';\n        state.mode = BAD;\n        break;\n      }\n      state.offset = here_val;\n      state.extra = (here_op) & 15;\n      state.mode = DISTEXT;\n      /* falls through */\n    case DISTEXT:\n      if (state.extra) {\n        //=== NEEDBITS(state.extra);\n        n = state.extra;\n        while (bits < n) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        state.offset += hold & ((1 << state.extra) -1)/*BITS(state.extra)*/;\n        //--- DROPBITS(state.extra) ---//\n        hold >>>= state.extra;\n        bits -= state.extra;\n        //---//\n        state.back += state.extra;\n      }\n//#ifdef INFLATE_STRICT\n      if (state.offset > state.dmax) {\n        strm.msg = 'invalid distance too far back';\n        state.mode = BAD;\n        break;\n      }\n//#endif\n      //Tracevv((stderr, \"inflate:         distance %u\\n\", state.offset));\n      state.mode = MATCH;\n      /* falls through */\n    case MATCH:\n      if (left === 0) { break inf_leave; }\n      copy = _out - left;\n      if (state.offset > copy) {         /* copy from window */\n        copy = state.offset - copy;\n        if (copy > state.whave) {\n          if (state.sane) {\n            strm.msg = 'invalid distance too far back';\n            state.mode = BAD;\n            break;\n          }\n// (!) This block is disabled in zlib defailts,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n//          Trace((stderr, \"inflate.c too far\\n\"));\n//          copy -= state.whave;\n//          if (copy > state.length) { copy = state.length; }\n//          if (copy > left) { copy = left; }\n//          left -= copy;\n//          state.length -= copy;\n//          do {\n//            output[put++] = 0;\n//          } while (--copy);\n//          if (state.length === 0) { state.mode = LEN; }\n//          break;\n//#endif\n        }\n        if (copy > state.wnext) {\n          copy -= state.wnext;\n          from = state.wsize - copy;\n        }\n        else {\n          from = state.wnext - copy;\n        }\n        if (copy > state.length) { copy = state.length; }\n        from_source = state.window;\n      }\n      else {                              /* copy from output */\n        from_source = output;\n        from = put - state.offset;\n        copy = state.length;\n      }\n      if (copy > left) { copy = left; }\n      left -= copy;\n      state.length -= copy;\n      do {\n        output[put++] = from_source[from++];\n      } while (--copy);\n      if (state.length === 0) { state.mode = LEN; }\n      break;\n    case LIT:\n      if (left === 0) { break inf_leave; }\n      output[put++] = state.length;\n      left--;\n      state.mode = LEN;\n      break;\n    case CHECK:\n      if (state.wrap) {\n        //=== NEEDBITS(32);\n        while (bits < 32) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          // Use '|' insdead of '+' to make sure that result is signed\n          hold |= input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        _out -= left;\n        strm.total_out += _out;\n        state.total += _out;\n        if (_out) {\n          strm.adler = state.check =\n              /*UPDATE(state.check, put - _out, _out);*/\n              (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n        }\n        _out = left;\n        // NB: crc32 stored as signed 32-bit int, ZSWAP32 returns signed too\n        if ((state.flags ? hold : ZSWAP32(hold)) !== state.check) {\n          strm.msg = 'incorrect data check';\n          state.mode = BAD;\n          break;\n        }\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n        //Tracev((stderr, \"inflate:   check matches trailer\\n\"));\n      }\n      state.mode = LENGTH;\n      /* falls through */\n    case LENGTH:\n      if (state.wrap && state.flags) {\n        //=== NEEDBITS(32);\n        while (bits < 32) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        if (hold !== (state.total & 0xffffffff)) {\n          strm.msg = 'incorrect length check';\n          state.mode = BAD;\n          break;\n        }\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n        //Tracev((stderr, \"inflate:   length matches trailer\\n\"));\n      }\n      state.mode = DONE;\n      /* falls through */\n    case DONE:\n      ret = Z_STREAM_END;\n      break inf_leave;\n    case BAD:\n      ret = Z_DATA_ERROR;\n      break inf_leave;\n    case MEM:\n      return Z_MEM_ERROR;\n    case SYNC:\n      /* falls through */\n    default:\n      return Z_STREAM_ERROR;\n    }\n  }\n\n  // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n  /*\n     Return from inflate(), updating the total counts and the check value.\n     If there was no progress during the inflate() call, return a buffer\n     error.  Call updatewindow() to create and/or update the window state.\n     Note: a memory error from inflate() is non-recoverable.\n   */\n\n  //--- RESTORE() ---\n  strm.next_out = put;\n  strm.avail_out = left;\n  strm.next_in = next;\n  strm.avail_in = have;\n  state.hold = hold;\n  state.bits = bits;\n  //---\n\n  if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n                      (state.mode < CHECK || flush !== Z_FINISH))) {\n    if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\n      state.mode = MEM;\n      return Z_MEM_ERROR;\n    }\n  }\n  _in -= strm.avail_in;\n  _out -= strm.avail_out;\n  strm.total_in += _in;\n  strm.total_out += _out;\n  state.total += _out;\n  if (state.wrap && _out) {\n    strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n      (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n  }\n  strm.data_type = state.bits + (state.last ? 64 : 0) +\n                    (state.mode === TYPE ? 128 : 0) +\n                    (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n  if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {\n    ret = Z_BUF_ERROR;\n  }\n  return ret;\n}\n\nfunction inflateEnd(strm) {\n\n  if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n    return Z_STREAM_ERROR;\n  }\n\n  var state = strm.state;\n  if (state.window) {\n    state.window = null;\n  }\n  strm.state = null;\n  return Z_OK;\n}\n\nfunction inflateGetHeader(strm, head) {\n  var state;\n\n  /* check state */\n  if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n  state = strm.state;\n  if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }\n\n  /* save header structure */\n  state.head = head;\n  head.done = false;\n  return Z_OK;\n}\n\n\nexports.inflateReset = inflateReset;\nexports.inflateReset2 = inflateReset2;\nexports.inflateResetKeep = inflateResetKeep;\nexports.inflateInit = inflateInit;\nexports.inflateInit2 = inflateInit2;\nexports.inflate = inflate;\nexports.inflateEnd = inflateEnd;\nexports.inflateGetHeader = inflateGetHeader;\nexports.inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nexports.inflateCopy = inflateCopy;\nexports.inflateGetDictionary = inflateGetDictionary;\nexports.inflateMark = inflateMark;\nexports.inflatePrime = inflatePrime;\nexports.inflateSetDictionary = inflateSetDictionary;\nexports.inflateSync = inflateSync;\nexports.inflateSyncPoint = inflateSyncPoint;\nexports.inflateUndermine = inflateUndermine;\n*/\n},{\"../utils/common\":27,\"./adler32\":29,\"./crc32\":31,\"./inffast\":34,\"./inftrees\":36}],36:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar utils = _dereq_('../utils/common');\n\nvar MAXBITS = 15;\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\nvar lbase = [ /* Length codes 257..285 base */\n  3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n  35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n];\n\nvar lext = [ /* Length codes 257..285 extra */\n  16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n  19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n];\n\nvar dbase = [ /* Distance codes 0..29 base */\n  1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n  257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n  8193, 12289, 16385, 24577, 0, 0\n];\n\nvar dext = [ /* Distance codes 0..29 extra */\n  16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n  23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n  28, 28, 29, 29, 64, 64\n];\n\nmodule.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts)\n{\n  var bits = opts.bits;\n      //here = opts.here; /* table entry for duplication */\n\n  var len = 0;               /* a code's length in bits */\n  var sym = 0;               /* index of code symbols */\n  var min = 0, max = 0;          /* minimum and maximum code lengths */\n  var root = 0;              /* number of index bits for root table */\n  var curr = 0;              /* number of index bits for current table */\n  var drop = 0;              /* code bits to drop for sub-table */\n  var left = 0;                   /* number of prefix codes available */\n  var used = 0;              /* code entries in table used */\n  var huff = 0;              /* Huffman code */\n  var incr;              /* for incrementing code, index */\n  var fill;              /* index for replicating entries */\n  var low;               /* low bits for current root entry */\n  var mask;              /* mask for low root bits */\n  var next;             /* next available space in table */\n  var base = null;     /* base value table to use */\n  var base_index = 0;\n//  var shoextra;    /* extra bits table to use */\n  var end;                    /* use base and extra for symbol > end */\n  var count = new utils.Buf16(MAXBITS+1); //[MAXBITS+1];    /* number of codes of each length */\n  var offs = new utils.Buf16(MAXBITS+1); //[MAXBITS+1];     /* offsets in table for each length */\n  var extra = null;\n  var extra_index = 0;\n\n  var here_bits, here_op, here_val;\n\n  /*\n   Process a set of code lengths to create a canonical Huffman code.  The\n   code lengths are lens[0..codes-1].  Each length corresponds to the\n   symbols 0..codes-1.  The Huffman code is generated by first sorting the\n   symbols by length from short to long, and retaining the symbol order\n   for codes with equal lengths.  Then the code starts with all zero bits\n   for the first code of the shortest length, and the codes are integer\n   increments for the same length, and zeros are appended as the length\n   increases.  For the deflate format, these bits are stored backwards\n   from their more natural integer increment ordering, and so when the\n   decoding tables are built in the large loop below, the integer codes\n   are incremented backwards.\n\n   This routine assumes, but does not check, that all of the entries in\n   lens[] are in the range 0..MAXBITS.  The caller must assure this.\n   1..MAXBITS is interpreted as that code length.  zero means that that\n   symbol does not occur in this code.\n\n   The codes are sorted by computing a count of codes for each length,\n   creating from that a table of starting indices for each length in the\n   sorted table, and then entering the symbols in order in the sorted\n   table.  The sorted table is work[], with that space being provided by\n   the caller.\n\n   The length counts are used for other purposes as well, i.e. finding\n   the minimum and maximum length codes, determining if there are any\n   codes at all, checking for a valid set of lengths, and looking ahead\n   at length counts to determine sub-table sizes when building the\n   decoding tables.\n   */\n\n  /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n  for (len = 0; len <= MAXBITS; len++) {\n    count[len] = 0;\n  }\n  for (sym = 0; sym < codes; sym++) {\n    count[lens[lens_index + sym]]++;\n  }\n\n  /* bound code lengths, force root to be within code lengths */\n  root = bits;\n  for (max = MAXBITS; max >= 1; max--) {\n    if (count[max] !== 0) { break; }\n  }\n  if (root > max) {\n    root = max;\n  }\n  if (max === 0) {                     /* no symbols to code at all */\n    //table.op[opts.table_index] = 64;  //here.op = (var char)64;    /* invalid code marker */\n    //table.bits[opts.table_index] = 1;   //here.bits = (var char)1;\n    //table.val[opts.table_index++] = 0;   //here.val = (var short)0;\n    table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n    //table.op[opts.table_index] = 64;\n    //table.bits[opts.table_index] = 1;\n    //table.val[opts.table_index++] = 0;\n    table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n    opts.bits = 1;\n    return 0;     /* no symbols, but wait for decoding to report error */\n  }\n  for (min = 1; min < max; min++) {\n    if (count[min] !== 0) { break; }\n  }\n  if (root < min) {\n    root = min;\n  }\n\n  /* check for an over-subscribed or incomplete set of lengths */\n  left = 1;\n  for (len = 1; len <= MAXBITS; len++) {\n    left <<= 1;\n    left -= count[len];\n    if (left < 0) {\n      return -1;\n    }        /* over-subscribed */\n  }\n  if (left > 0 && (type === CODES || max !== 1)) {\n    return -1;                      /* incomplete set */\n  }\n\n  /* generate offsets into symbol table for each length for sorting */\n  offs[1] = 0;\n  for (len = 1; len < MAXBITS; len++) {\n    offs[len + 1] = offs[len] + count[len];\n  }\n\n  /* sort symbols by length, by symbol order within each length */\n  for (sym = 0; sym < codes; sym++) {\n    if (lens[lens_index + sym] !== 0) {\n      work[offs[lens[lens_index + sym]]++] = sym;\n    }\n  }\n\n  /*\n   Create and fill in decoding tables.  In this loop, the table being\n   filled is at next and has curr index bits.  The code being used is huff\n   with length len.  That code is converted to an index by dropping drop\n   bits off of the bottom.  For codes where len is less than drop + curr,\n   those top drop + curr - len bits are incremented through all values to\n   fill the table with replicated entries.\n\n   root is the number of index bits for the root table.  When len exceeds\n   root, sub-tables are created pointed to by the root entry with an index\n   of the low root bits of huff.  This is saved in low to check for when a\n   new sub-table should be started.  drop is zero when the root table is\n   being filled, and drop is root when sub-tables are being filled.\n\n   When a new sub-table is needed, it is necessary to look ahead in the\n   code lengths to determine what size sub-table is needed.  The length\n   counts are used for this, and so count[] is decremented as codes are\n   entered in the tables.\n\n   used keeps track of how many table entries have been allocated from the\n   provided *table space.  It is checked for LENS and DIST tables against\n   the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n   the initial root table size constants.  See the comments in inftrees.h\n   for more information.\n\n   sym increments through all symbols, and the loop terminates when\n   all codes of length max, i.e. all codes, have been processed.  This\n   routine permits incomplete codes, so another loop after this one fills\n   in the rest of the decoding tables with invalid code markers.\n   */\n\n  /* set up for code type */\n  // poor man optimization - use if-else instead of switch,\n  // to avoid deopts in old v8\n  if (type === CODES) {\n      base = extra = work;    /* dummy value--not used */\n      end = 19;\n  } else if (type === LENS) {\n      base = lbase;\n      base_index -= 257;\n      extra = lext;\n      extra_index -= 257;\n      end = 256;\n  } else {                    /* DISTS */\n      base = dbase;\n      extra = dext;\n      end = -1;\n  }\n\n  /* initialize opts for loop */\n  huff = 0;                   /* starting code */\n  sym = 0;                    /* starting code symbol */\n  len = min;                  /* starting code length */\n  next = table_index;              /* current table to fill in */\n  curr = root;                /* current table index bits */\n  drop = 0;                   /* current bits to drop from code for index */\n  low = -1;                   /* trigger new sub-table when len > root */\n  used = 1 << root;          /* use root table entries */\n  mask = used - 1;            /* mask for comparing low */\n\n  /* check available table space */\n  if ((type === LENS && used > ENOUGH_LENS) ||\n    (type === DISTS && used > ENOUGH_DISTS)) {\n    return 1;\n  }\n\n  var i=0;\n  /* process all codes and make table entries */\n  for (;;) {\n    i++;\n    /* create table entry */\n    here_bits = len - drop;\n    if (work[sym] < end) {\n      here_op = 0;\n      here_val = work[sym];\n    }\n    else if (work[sym] > end) {\n      here_op = extra[extra_index + work[sym]];\n      here_val = base[base_index + work[sym]];\n    }\n    else {\n      here_op = 32 + 64;         /* end of block */\n      here_val = 0;\n    }\n\n    /* replicate for those indices with low len bits equal to huff */\n    incr = 1 << (len - drop);\n    fill = 1 << curr;\n    min = fill;                 /* save offset to next table */\n    do {\n      fill -= incr;\n      table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n    } while (fill !== 0);\n\n    /* backwards increment the len-bit code huff */\n    incr = 1 << (len - 1);\n    while (huff & incr) {\n      incr >>= 1;\n    }\n    if (incr !== 0) {\n      huff &= incr - 1;\n      huff += incr;\n    } else {\n      huff = 0;\n    }\n\n    /* go to next symbol, update count, len */\n    sym++;\n    if (--count[len] === 0) {\n      if (len === max) { break; }\n      len = lens[lens_index + work[sym]];\n    }\n\n    /* create new sub-table if needed */\n    if (len > root && (huff & mask) !== low) {\n      /* if first time, transition to sub-tables */\n      if (drop === 0) {\n        drop = root;\n      }\n\n      /* increment past last table */\n      next += min;            /* here min is 1 << curr */\n\n      /* determine length of next table */\n      curr = len - drop;\n      left = 1 << curr;\n      while (curr + drop < max) {\n        left -= count[curr + drop];\n        if (left <= 0) { break; }\n        curr++;\n        left <<= 1;\n      }\n\n      /* check for enough space */\n      used += 1 << curr;\n      if ((type === LENS && used > ENOUGH_LENS) ||\n        (type === DISTS && used > ENOUGH_DISTS)) {\n        return 1;\n      }\n\n      /* point entry in root table to sub-table */\n      low = huff & mask;\n      /*table.op[low] = curr;\n      table.bits[low] = root;\n      table.val[low] = next - opts.table_index;*/\n      table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n    }\n  }\n\n  /* fill in remaining table entry if code is incomplete (guaranteed to have\n   at most one remaining entry, since if the code is incomplete, the\n   maximum code length that was allowed to get this far is one bit) */\n  if (huff !== 0) {\n    //table.op[next + huff] = 64;            /* invalid code marker */\n    //table.bits[next + huff] = len - drop;\n    //table.val[next + huff] = 0;\n    table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n  }\n\n  /* set return parameters */\n  //opts.table_index += used;\n  opts.bits = root;\n  return 0;\n};\n\n},{\"../utils/common\":27}],37:[function(_dereq_,module,exports){\n'use strict';\n\nmodule.exports = {\n  '2':    'need dictionary',     /* Z_NEED_DICT       2  */\n  '1':    'stream end',          /* Z_STREAM_END      1  */\n  '0':    '',                    /* Z_OK              0  */\n  '-1':   'file error',          /* Z_ERRNO         (-1) */\n  '-2':   'stream error',        /* Z_STREAM_ERROR  (-2) */\n  '-3':   'data error',          /* Z_DATA_ERROR    (-3) */\n  '-4':   'insufficient memory', /* Z_MEM_ERROR     (-4) */\n  '-5':   'buffer error',        /* Z_BUF_ERROR     (-5) */\n  '-6':   'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n},{}],38:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar utils = _dereq_('../utils/common');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//var Z_FILTERED          = 1;\n//var Z_HUFFMAN_ONLY      = 2;\n//var Z_RLE               = 3;\nvar Z_FIXED               = 4;\n//var Z_DEFAULT_STRATEGY  = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nvar Z_BINARY              = 0;\nvar Z_TEXT                = 1;\n//var Z_ASCII             = 1; // = Z_TEXT\nvar Z_UNKNOWN             = 2;\n\n/*============================================================================*/\n\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nvar STORED_BLOCK = 0;\nvar STATIC_TREES = 1;\nvar DYN_TREES    = 2;\n/* The three kinds of block type */\n\nvar MIN_MATCH    = 3;\nvar MAX_MATCH    = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nvar LENGTH_CODES  = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS      = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES       = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES       = 30;\n/* number of distance codes */\n\nvar BL_CODES      = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE     = 2*L_CODES + 1;\n/* maximum heap size */\n\nvar MAX_BITS      = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar Buf_size      = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nvar MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nvar END_BLOCK   = 256;\n/* end of block literal code */\n\nvar REP_3_6     = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nvar REPZ_3_10   = 17;\n/* repeat a zero length 3-10 times  (3 bits of repeat count) */\n\nvar REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times  (7 bits of repeat count) */\n\nvar extra_lbits =   /* extra bits for each length code */\n  [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];\n\nvar extra_dbits =   /* extra bits for each distance code */\n  [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];\n\nvar extra_blbits =  /* extra bits for each bit length code */\n  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];\n\nvar bl_order =\n  [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nvar DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array insdead of structure, Freq = i*2, Len = i*2+1\nvar static_ltree  = new Array((L_CODES+2) * 2);\nzero(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nvar static_dtree  = new Array(D_CODES * 2);\nzero(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nvar _dist_code    = new Array(DIST_CODE_LEN);\nzero(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nvar _length_code  = new Array(MAX_MATCH-MIN_MATCH+1);\nzero(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nvar base_length   = new Array(LENGTH_CODES);\nzero(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nvar base_dist     = new Array(D_CODES);\nzero(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nvar StaticTreeDesc = function (static_tree, extra_bits, extra_base, elems, max_length) {\n\n  this.static_tree  = static_tree;  /* static tree or NULL */\n  this.extra_bits   = extra_bits;   /* extra bits for each code or NULL */\n  this.extra_base   = extra_base;   /* base index for extra_bits */\n  this.elems        = elems;        /* max number of elements in the tree */\n  this.max_length   = max_length;   /* max bit length for the codes */\n\n  // show if `static_tree` has data or dummy - needed for monomorphic objects\n  this.has_stree    = static_tree && static_tree.length;\n};\n\n\nvar static_l_desc;\nvar static_d_desc;\nvar static_bl_desc;\n\n\nvar TreeDesc = function(dyn_tree, stat_desc) {\n  this.dyn_tree = dyn_tree;     /* the dynamic tree */\n  this.max_code = 0;            /* largest code with non zero frequency */\n  this.stat_desc = stat_desc;   /* the corresponding static tree */\n};\n\n\n\nfunction d_code(dist) {\n  return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n}\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nfunction put_short (s, w) {\n//    put_byte(s, (uch)((w) & 0xff));\n//    put_byte(s, (uch)((ush)(w) >> 8));\n  s.pending_buf[s.pending++] = (w) & 0xff;\n  s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n}\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nfunction send_bits(s, value, length) {\n  if (s.bi_valid > (Buf_size - length)) {\n    s.bi_buf |= (value << s.bi_valid) & 0xffff;\n    put_short(s, s.bi_buf);\n    s.bi_buf = value >> (Buf_size - s.bi_valid);\n    s.bi_valid += length - Buf_size;\n  } else {\n    s.bi_buf |= (value << s.bi_valid) & 0xffff;\n    s.bi_valid += length;\n  }\n}\n\n\nfunction send_code(s, c, tree) {\n  send_bits(s, tree[c*2]/*.Code*/, tree[c*2 + 1]/*.Len*/);\n}\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nfunction bi_reverse(code, len) {\n  var res = 0;\n  do {\n    res |= code & 1;\n    code >>>= 1;\n    res <<= 1;\n  } while (--len > 0);\n  return res >>> 1;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nfunction bi_flush(s) {\n  if (s.bi_valid === 16) {\n    put_short(s, s.bi_buf);\n    s.bi_buf = 0;\n    s.bi_valid = 0;\n\n  } else if (s.bi_valid >= 8) {\n    s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n    s.bi_buf >>= 8;\n    s.bi_valid -= 8;\n  }\n}\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n *    above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n *     array bl_count contains the frequencies for each bit length.\n *     The length opt_len is updated; static_len is also updated if stree is\n *     not null.\n */\nfunction gen_bitlen(s, desc)\n//    deflate_state *s;\n//    tree_desc *desc;    /* the tree descriptor */\n{\n  var tree            = desc.dyn_tree;\n  var max_code        = desc.max_code;\n  var stree           = desc.stat_desc.static_tree;\n  var has_stree       = desc.stat_desc.has_stree;\n  var extra           = desc.stat_desc.extra_bits;\n  var base            = desc.stat_desc.extra_base;\n  var max_length      = desc.stat_desc.max_length;\n  var h;              /* heap index */\n  var n, m;           /* iterate over the tree elements */\n  var bits;           /* bit length */\n  var xbits;          /* extra bits */\n  var f;              /* frequency */\n  var overflow = 0;   /* number of elements with bit length too large */\n\n  for (bits = 0; bits <= MAX_BITS; bits++) {\n    s.bl_count[bits] = 0;\n  }\n\n  /* In a first pass, compute the optimal bit lengths (which may\n   * overflow in the case of the bit length tree).\n   */\n  tree[s.heap[s.heap_max]*2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n  for (h = s.heap_max+1; h < HEAP_SIZE; h++) {\n    n = s.heap[h];\n    bits = tree[tree[n*2 +1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n    if (bits > max_length) {\n      bits = max_length;\n      overflow++;\n    }\n    tree[n*2 + 1]/*.Len*/ = bits;\n    /* We overwrite tree[n].Dad which is no longer needed */\n\n    if (n > max_code) { continue; } /* not a leaf node */\n\n    s.bl_count[bits]++;\n    xbits = 0;\n    if (n >= base) {\n      xbits = extra[n-base];\n    }\n    f = tree[n * 2]/*.Freq*/;\n    s.opt_len += f * (bits + xbits);\n    if (has_stree) {\n      s.static_len += f * (stree[n*2 + 1]/*.Len*/ + xbits);\n    }\n  }\n  if (overflow === 0) { return; }\n\n  // Trace((stderr,\"\\nbit length overflow\\n\"));\n  /* This happens for example on obj2 and pic of the Calgary corpus */\n\n  /* Find the first bit length which could increase: */\n  do {\n    bits = max_length-1;\n    while (s.bl_count[bits] === 0) { bits--; }\n    s.bl_count[bits]--;      /* move one leaf down the tree */\n    s.bl_count[bits+1] += 2; /* move one overflow item as its brother */\n    s.bl_count[max_length]--;\n    /* The brother of the overflow item also moves one step up,\n     * but this does not affect bl_count[max_length]\n     */\n    overflow -= 2;\n  } while (overflow > 0);\n\n  /* Now recompute all bit lengths, scanning in increasing frequency.\n   * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n   * lengths instead of fixing only the wrong ones. This idea is taken\n   * from 'ar' written by Haruhiko Okumura.)\n   */\n  for (bits = max_length; bits !== 0; bits--) {\n    n = s.bl_count[bits];\n    while (n !== 0) {\n      m = s.heap[--h];\n      if (m > max_code) { continue; }\n      if (tree[m*2 + 1]/*.Len*/ !== bits) {\n        // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n        s.opt_len += (bits - tree[m*2 + 1]/*.Len*/)*tree[m*2]/*.Freq*/;\n        tree[m*2 + 1]/*.Len*/ = bits;\n      }\n      n--;\n    }\n  }\n}\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n *     zero code length.\n */\nfunction gen_codes(tree, max_code, bl_count)\n//    ct_data *tree;             /* the tree to decorate */\n//    int max_code;              /* largest code with non zero frequency */\n//    ushf *bl_count;            /* number of codes at each bit length */\n{\n  var next_code = new Array(MAX_BITS+1); /* next code value for each bit length */\n  var code = 0;              /* running code value */\n  var bits;                  /* bit index */\n  var n;                     /* code index */\n\n  /* The distribution counts are first used to generate the code values\n   * without bit reversal.\n   */\n  for (bits = 1; bits <= MAX_BITS; bits++) {\n    next_code[bits] = code = (code + bl_count[bits-1]) << 1;\n  }\n  /* Check that the bit counts in bl_count are consistent. The last code\n   * must be all ones.\n   */\n  //Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,\n  //        \"inconsistent bit counts\");\n  //Tracev((stderr,\"\\ngen_codes: max_code %d \", max_code));\n\n  for (n = 0;  n <= max_code; n++) {\n    var len = tree[n*2 + 1]/*.Len*/;\n    if (len === 0) { continue; }\n    /* Now reverse the bits */\n    tree[n*2]/*.Code*/ = bi_reverse(next_code[len]++, len);\n\n    //Tracecv(tree != static_ltree, (stderr,\"\\nn %3d %c l %2d c %4x (%x) \",\n    //     n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));\n  }\n}\n\n\n/* ===========================================================================\n * Initialize the various 'constant' tables.\n */\nfunction tr_static_init() {\n  var n;        /* iterates over tree elements */\n  var bits;     /* bit counter */\n  var length;   /* length value */\n  var code;     /* code value */\n  var dist;     /* distance index */\n  var bl_count = new Array(MAX_BITS+1);\n  /* number of codes at each bit length for an optimal tree */\n\n  // do check in _tr_init()\n  //if (static_init_done) return;\n\n  /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n  static_l_desc.static_tree = static_ltree;\n  static_l_desc.extra_bits = extra_lbits;\n  static_d_desc.static_tree = static_dtree;\n  static_d_desc.extra_bits = extra_dbits;\n  static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n  /* Initialize the mapping length (0..255) -> length code (0..28) */\n  length = 0;\n  for (code = 0; code < LENGTH_CODES-1; code++) {\n    base_length[code] = length;\n    for (n = 0; n < (1<<extra_lbits[code]); n++) {\n      _length_code[length++] = code;\n    }\n  }\n  //Assert (length == 256, \"tr_static_init: length != 256\");\n  /* Note that the length 255 (match length 258) can be represented\n   * in two different ways: code 284 + 5 bits or code 285, so we\n   * overwrite length_code[255] to use the best encoding:\n   */\n  _length_code[length-1] = code;\n\n  /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n  dist = 0;\n  for (code = 0 ; code < 16; code++) {\n    base_dist[code] = dist;\n    for (n = 0; n < (1<<extra_dbits[code]); n++) {\n      _dist_code[dist++] = code;\n    }\n  }\n  //Assert (dist == 256, \"tr_static_init: dist != 256\");\n  dist >>= 7; /* from now on, all distances are divided by 128 */\n  for ( ; code < D_CODES; code++) {\n    base_dist[code] = dist << 7;\n    for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) {\n      _dist_code[256 + dist++] = code;\n    }\n  }\n  //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n  /* Construct the codes of the static literal tree */\n  for (bits = 0; bits <= MAX_BITS; bits++) {\n    bl_count[bits] = 0;\n  }\n\n  n = 0;\n  while (n <= 143) {\n    static_ltree[n*2 + 1]/*.Len*/ = 8;\n    n++;\n    bl_count[8]++;\n  }\n  while (n <= 255) {\n    static_ltree[n*2 + 1]/*.Len*/ = 9;\n    n++;\n    bl_count[9]++;\n  }\n  while (n <= 279) {\n    static_ltree[n*2 + 1]/*.Len*/ = 7;\n    n++;\n    bl_count[7]++;\n  }\n  while (n <= 287) {\n    static_ltree[n*2 + 1]/*.Len*/ = 8;\n    n++;\n    bl_count[8]++;\n  }\n  /* Codes 286 and 287 do not exist, but we must include them in the\n   * tree construction to get a canonical Huffman tree (longest code\n   * all ones)\n   */\n  gen_codes(static_ltree, L_CODES+1, bl_count);\n\n  /* The static distance tree is trivial: */\n  for (n = 0; n < D_CODES; n++) {\n    static_dtree[n*2 + 1]/*.Len*/ = 5;\n    static_dtree[n*2]/*.Code*/ = bi_reverse(n, 5);\n  }\n\n  // Now data ready and we can init static trees\n  static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS);\n  static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0,          D_CODES, MAX_BITS);\n  static_bl_desc =new StaticTreeDesc(new Array(0), extra_blbits, 0,         BL_CODES, MAX_BL_BITS);\n\n  //static_init_done = true;\n}\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nfunction init_block(s) {\n  var n; /* iterates over tree elements */\n\n  /* Initialize the trees. */\n  for (n = 0; n < L_CODES;  n++) { s.dyn_ltree[n*2]/*.Freq*/ = 0; }\n  for (n = 0; n < D_CODES;  n++) { s.dyn_dtree[n*2]/*.Freq*/ = 0; }\n  for (n = 0; n < BL_CODES; n++) { s.bl_tree[n*2]/*.Freq*/ = 0; }\n\n  s.dyn_ltree[END_BLOCK*2]/*.Freq*/ = 1;\n  s.opt_len = s.static_len = 0;\n  s.last_lit = s.matches = 0;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nfunction bi_windup(s)\n{\n  if (s.bi_valid > 8) {\n    put_short(s, s.bi_buf);\n  } else if (s.bi_valid > 0) {\n    //put_byte(s, (Byte)s->bi_buf);\n    s.pending_buf[s.pending++] = s.bi_buf;\n  }\n  s.bi_buf = 0;\n  s.bi_valid = 0;\n}\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nfunction copy_block(s, buf, len, header)\n//DeflateState *s;\n//charf    *buf;    /* the input data */\n//unsigned len;     /* its length */\n//int      header;  /* true if block header must be written */\n{\n  bi_windup(s);        /* align on byte boundary */\n\n  if (header) {\n    put_short(s, len);\n    put_short(s, ~len);\n  }\n//  while (len--) {\n//    put_byte(s, *buf++);\n//  }\n  utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);\n  s.pending += len;\n}\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nfunction smaller(tree, n, m, depth) {\n  var _n2 = n*2;\n  var _m2 = m*2;\n  return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n         (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n}\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nfunction pqdownheap(s, tree, k)\n//    deflate_state *s;\n//    ct_data *tree;  /* the tree to restore */\n//    int k;               /* node to move down */\n{\n  var v = s.heap[k];\n  var j = k << 1;  /* left son of k */\n  while (j <= s.heap_len) {\n    /* Set j to the smallest of the two sons: */\n    if (j < s.heap_len &&\n      smaller(tree, s.heap[j+1], s.heap[j], s.depth)) {\n      j++;\n    }\n    /* Exit if v is smaller than both sons */\n    if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n    /* Exchange v with the smallest son */\n    s.heap[k] = s.heap[j];\n    k = j;\n\n    /* And continue down the tree, setting j to the left son of k */\n    j <<= 1;\n  }\n  s.heap[k] = v;\n}\n\n\n// inlined manually\n// var SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nfunction compress_block(s, ltree, dtree)\n//    deflate_state *s;\n//    const ct_data *ltree; /* literal tree */\n//    const ct_data *dtree; /* distance tree */\n{\n  var dist;           /* distance of matched string */\n  var lc;             /* match length or unmatched char (if dist == 0) */\n  var lx = 0;         /* running index in l_buf */\n  var code;           /* the code to send */\n  var extra;          /* number of extra bits to send */\n\n  if (s.last_lit !== 0) {\n    do {\n      dist = (s.pending_buf[s.d_buf + lx*2] << 8) | (s.pending_buf[s.d_buf + lx*2 + 1]);\n      lc = s.pending_buf[s.l_buf + lx];\n      lx++;\n\n      if (dist === 0) {\n        send_code(s, lc, ltree); /* send a literal byte */\n        //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n      } else {\n        /* Here, lc is the match length - MIN_MATCH */\n        code = _length_code[lc];\n        send_code(s, code+LITERALS+1, ltree); /* send the length code */\n        extra = extra_lbits[code];\n        if (extra !== 0) {\n          lc -= base_length[code];\n          send_bits(s, lc, extra);       /* send the extra length bits */\n        }\n        dist--; /* dist is now the match distance - 1 */\n        code = d_code(dist);\n        //Assert (code < D_CODES, \"bad d_code\");\n\n        send_code(s, code, dtree);       /* send the distance code */\n        extra = extra_dbits[code];\n        if (extra !== 0) {\n          dist -= base_dist[code];\n          send_bits(s, dist, extra);   /* send the extra distance bits */\n        }\n      } /* literal or match pair ? */\n\n      /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n      //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n      //       \"pendingBuf overflow\");\n\n    } while (lx < s.last_lit);\n  }\n\n  send_code(s, END_BLOCK, ltree);\n}\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n *     and corresponding code. The length opt_len is updated; static_len is\n *     also updated if stree is not null. The field max_code is set.\n */\nfunction build_tree(s, desc)\n//    deflate_state *s;\n//    tree_desc *desc; /* the tree descriptor */\n{\n  var tree     = desc.dyn_tree;\n  var stree    = desc.stat_desc.static_tree;\n  var has_stree = desc.stat_desc.has_stree;\n  var elems    = desc.stat_desc.elems;\n  var n, m;          /* iterate over heap elements */\n  var max_code = -1; /* largest code with non zero frequency */\n  var node;          /* new node being created */\n\n  /* Construct the initial heap, with least frequent element in\n   * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n   * heap[0] is not used.\n   */\n  s.heap_len = 0;\n  s.heap_max = HEAP_SIZE;\n\n  for (n = 0; n < elems; n++) {\n    if (tree[n * 2]/*.Freq*/ !== 0) {\n      s.heap[++s.heap_len] = max_code = n;\n      s.depth[n] = 0;\n\n    } else {\n      tree[n*2 + 1]/*.Len*/ = 0;\n    }\n  }\n\n  /* The pkzip format requires that at least one distance code exists,\n   * and that at least one bit should be sent even if there is only one\n   * possible code. So to avoid special checks later on we force at least\n   * two codes of non zero frequency.\n   */\n  while (s.heap_len < 2) {\n    node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n    tree[node * 2]/*.Freq*/ = 1;\n    s.depth[node] = 0;\n    s.opt_len--;\n\n    if (has_stree) {\n      s.static_len -= stree[node*2 + 1]/*.Len*/;\n    }\n    /* node is 0 or 1 so it does not have extra bits */\n  }\n  desc.max_code = max_code;\n\n  /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n   * establish sub-heaps of increasing lengths:\n   */\n  for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n  /* Construct the Huffman tree by repeatedly combining the least two\n   * frequent nodes.\n   */\n  node = elems;              /* next internal node of the tree */\n  do {\n    //pqremove(s, tree, n);  /* n = node of least frequency */\n    /*** pqremove ***/\n    n = s.heap[1/*SMALLEST*/];\n    s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n    pqdownheap(s, tree, 1/*SMALLEST*/);\n    /***/\n\n    m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n    s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n    s.heap[--s.heap_max] = m;\n\n    /* Create a new node father of n and m */\n    tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n    s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n    tree[n*2 + 1]/*.Dad*/ = tree[m*2 + 1]/*.Dad*/ = node;\n\n    /* and insert the new node in the heap */\n    s.heap[1/*SMALLEST*/] = node++;\n    pqdownheap(s, tree, 1/*SMALLEST*/);\n\n  } while (s.heap_len >= 2);\n\n  s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n  /* At this point, the fields freq and dad are set. We can now\n   * generate the bit lengths.\n   */\n  gen_bitlen(s, desc);\n\n  /* The field len is now set, we can generate the bit codes */\n  gen_codes(tree, max_code, s.bl_count);\n}\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nfunction scan_tree(s, tree, max_code)\n//    deflate_state *s;\n//    ct_data *tree;   /* the tree to be scanned */\n//    int max_code;    /* and its largest code of non zero frequency */\n{\n  var n;                     /* iterates over all tree elements */\n  var prevlen = -1;          /* last emitted length */\n  var curlen;                /* length of current code */\n\n  var nextlen = tree[0*2 + 1]/*.Len*/; /* length of next code */\n\n  var count = 0;             /* repeat count of the current code */\n  var max_count = 7;         /* max repeat count */\n  var min_count = 4;         /* min repeat count */\n\n  if (nextlen === 0) {\n    max_count = 138;\n    min_count = 3;\n  }\n  tree[(max_code+1)*2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n  for (n = 0; n <= max_code; n++) {\n    curlen = nextlen;\n    nextlen = tree[(n+1)*2 + 1]/*.Len*/;\n\n    if (++count < max_count && curlen === nextlen) {\n      continue;\n\n    } else if (count < min_count) {\n      s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n    } else if (curlen !== 0) {\n\n      if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n      s.bl_tree[REP_3_6*2]/*.Freq*/++;\n\n    } else if (count <= 10) {\n      s.bl_tree[REPZ_3_10*2]/*.Freq*/++;\n\n    } else {\n      s.bl_tree[REPZ_11_138*2]/*.Freq*/++;\n    }\n\n    count = 0;\n    prevlen = curlen;\n\n    if (nextlen === 0) {\n      max_count = 138;\n      min_count = 3;\n\n    } else if (curlen === nextlen) {\n      max_count = 6;\n      min_count = 3;\n\n    } else {\n      max_count = 7;\n      min_count = 4;\n    }\n  }\n}\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nfunction send_tree(s, tree, max_code)\n//    deflate_state *s;\n//    ct_data *tree; /* the tree to be scanned */\n//    int max_code;       /* and its largest code of non zero frequency */\n{\n  var n;                     /* iterates over all tree elements */\n  var prevlen = -1;          /* last emitted length */\n  var curlen;                /* length of current code */\n\n  var nextlen = tree[0*2 + 1]/*.Len*/; /* length of next code */\n\n  var count = 0;             /* repeat count of the current code */\n  var max_count = 7;         /* max repeat count */\n  var min_count = 4;         /* min repeat count */\n\n  /* tree[max_code+1].Len = -1; */  /* guard already set */\n  if (nextlen === 0) {\n    max_count = 138;\n    min_count = 3;\n  }\n\n  for (n = 0; n <= max_code; n++) {\n    curlen = nextlen;\n    nextlen = tree[(n+1)*2 + 1]/*.Len*/;\n\n    if (++count < max_count && curlen === nextlen) {\n      continue;\n\n    } else if (count < min_count) {\n      do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n    } else if (curlen !== 0) {\n      if (curlen !== prevlen) {\n        send_code(s, curlen, s.bl_tree);\n        count--;\n      }\n      //Assert(count >= 3 && count <= 6, \" 3_6?\");\n      send_code(s, REP_3_6, s.bl_tree);\n      send_bits(s, count-3, 2);\n\n    } else if (count <= 10) {\n      send_code(s, REPZ_3_10, s.bl_tree);\n      send_bits(s, count-3, 3);\n\n    } else {\n      send_code(s, REPZ_11_138, s.bl_tree);\n      send_bits(s, count-11, 7);\n    }\n\n    count = 0;\n    prevlen = curlen;\n    if (nextlen === 0) {\n      max_count = 138;\n      min_count = 3;\n\n    } else if (curlen === nextlen) {\n      max_count = 6;\n      min_count = 3;\n\n    } else {\n      max_count = 7;\n      min_count = 4;\n    }\n  }\n}\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nfunction build_bl_tree(s) {\n  var max_blindex;  /* index of last bit length code of non zero freq */\n\n  /* Determine the bit length frequencies for literal and distance trees */\n  scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n  scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n  /* Build the bit length tree: */\n  build_tree(s, s.bl_desc);\n  /* opt_len now includes the length of the tree representations, except\n   * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n   */\n\n  /* Determine the number of bit length codes to send. The pkzip format\n   * requires that at least 4 bit length codes be sent. (appnote.txt says\n   * 3 but the actual value used is 4.)\n   */\n  for (max_blindex = BL_CODES-1; max_blindex >= 3; max_blindex--) {\n    if (s.bl_tree[bl_order[max_blindex]*2 + 1]/*.Len*/ !== 0) {\n      break;\n    }\n  }\n  /* Update opt_len to include the bit length tree and counts */\n  s.opt_len += 3*(max_blindex+1) + 5+5+4;\n  //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n  //        s->opt_len, s->static_len));\n\n  return max_blindex;\n}\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nfunction send_all_trees(s, lcodes, dcodes, blcodes)\n//    deflate_state *s;\n//    int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n  var rank;                    /* index in bl_order */\n\n  //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n  //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n  //        \"too many codes\");\n  //Tracev((stderr, \"\\nbl counts: \"));\n  send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */\n  send_bits(s, dcodes-1,   5);\n  send_bits(s, blcodes-4,  4); /* not -3 as stated in appnote.txt */\n  for (rank = 0; rank < blcodes; rank++) {\n    //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n    send_bits(s, s.bl_tree[bl_order[rank]*2 + 1]/*.Len*/, 3);\n  }\n  //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n  send_tree(s, s.dyn_ltree, lcodes-1); /* literal tree */\n  //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n  send_tree(s, s.dyn_dtree, dcodes-1); /* distance tree */\n  //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n}\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n *    a) There are no non-portable control characters belonging to the\n *       \"black list\" (0..6, 14..25, 28..31).\n *    b) There is at least one printable character belonging to the\n *       \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n *   \"gray list\" that is ignored in this detection algorithm:\n *   (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nfunction detect_data_type(s) {\n  /* black_mask is the bit mask of black-listed bytes\n   * set bits 0..6, 14..25, and 28..31\n   * 0xf3ffc07f = binary 11110011111111111100000001111111\n   */\n  var black_mask = 0xf3ffc07f;\n  var n;\n\n  /* Check for non-textual (\"black-listed\") bytes. */\n  for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n    if ((black_mask & 1) && (s.dyn_ltree[n*2]/*.Freq*/ !== 0)) {\n      return Z_BINARY;\n    }\n  }\n\n  /* Check for textual (\"white-listed\") bytes. */\n  if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n      s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n    return Z_TEXT;\n  }\n  for (n = 32; n < LITERALS; n++) {\n    if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n      return Z_TEXT;\n    }\n  }\n\n  /* There are no \"black-listed\" or \"white-listed\" bytes:\n   * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n   */\n  return Z_BINARY;\n}\n\n\nvar static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nfunction _tr_init(s)\n{\n\n  if (!static_init_done) {\n    tr_static_init();\n    static_init_done = true;\n  }\n\n  s.l_desc  = new TreeDesc(s.dyn_ltree, static_l_desc);\n  s.d_desc  = new TreeDesc(s.dyn_dtree, static_d_desc);\n  s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n  s.bi_buf = 0;\n  s.bi_valid = 0;\n\n  /* Initialize the first block of the first file: */\n  init_block(s);\n}\n\n\n/* ===========================================================================\n * Send a stored block\n */\nfunction _tr_stored_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf;       /* input block */\n//ulg stored_len;   /* length of input block */\n//int last;         /* one if this is the last block for a file */\n{\n  send_bits(s, (STORED_BLOCK<<1)+(last ? 1 : 0), 3);    /* send block type */\n  copy_block(s, buf, stored_len, true); /* with header */\n}\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nfunction _tr_align(s) {\n  send_bits(s, STATIC_TREES<<1, 3);\n  send_code(s, END_BLOCK, static_ltree);\n  bi_flush(s);\n}\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nfunction _tr_flush_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf;       /* input block, or NULL if too old */\n//ulg stored_len;   /* length of input block */\n//int last;         /* one if this is the last block for a file */\n{\n  var opt_lenb, static_lenb;  /* opt_len and static_len in bytes */\n  var max_blindex = 0;        /* index of last bit length code of non zero freq */\n\n  /* Build the Huffman trees unless a stored block is forced */\n  if (s.level > 0) {\n\n    /* Check if the file is binary or text */\n    if (s.strm.data_type === Z_UNKNOWN) {\n      s.strm.data_type = detect_data_type(s);\n    }\n\n    /* Construct the literal and distance trees */\n    build_tree(s, s.l_desc);\n    // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n    //        s->static_len));\n\n    build_tree(s, s.d_desc);\n    // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n    //        s->static_len));\n    /* At this point, opt_len and static_len are the total bit lengths of\n     * the compressed block data, excluding the tree representations.\n     */\n\n    /* Build the bit length tree for the above two trees, and get the index\n     * in bl_order of the last bit length code to send.\n     */\n    max_blindex = build_bl_tree(s);\n\n    /* Determine the best encoding. Compute the block lengths in bytes. */\n    opt_lenb = (s.opt_len+3+7) >>> 3;\n    static_lenb = (s.static_len+3+7) >>> 3;\n\n    // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n    //        opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n    //        s->last_lit));\n\n    if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n  } else {\n    // Assert(buf != (char*)0, \"lost buf\");\n    opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n  }\n\n  if ((stored_len+4 <= opt_lenb) && (buf !== -1)) {\n    /* 4: two words for the lengths */\n\n    /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n     * Otherwise we can't have processed more than WSIZE input bytes since\n     * the last block flush, because compression would have been\n     * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n     * transform a block into a stored block.\n     */\n    _tr_stored_block(s, buf, stored_len, last);\n\n  } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n\n    send_bits(s, (STATIC_TREES<<1) + (last ? 1 : 0), 3);\n    compress_block(s, static_ltree, static_dtree);\n\n  } else {\n    send_bits(s, (DYN_TREES<<1) + (last ? 1 : 0), 3);\n    send_all_trees(s, s.l_desc.max_code+1, s.d_desc.max_code+1, max_blindex+1);\n    compress_block(s, s.dyn_ltree, s.dyn_dtree);\n  }\n  // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n  /* The above check is made mod 2^32, for files larger than 512 MB\n   * and uLong implemented on 32 bits.\n   */\n  init_block(s);\n\n  if (last) {\n    bi_windup(s);\n  }\n  // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n  //       s->compressed_len-7*last));\n}\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nfunction _tr_tally(s, dist, lc)\n//    deflate_state *s;\n//    unsigned dist;  /* distance of matched string */\n//    unsigned lc;    /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n  //var out_length, in_length, dcode;\n\n  s.pending_buf[s.d_buf + s.last_lit * 2]     = (dist >>> 8) & 0xff;\n  s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n  s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n  s.last_lit++;\n\n  if (dist === 0) {\n    /* lc is the unmatched char */\n    s.dyn_ltree[lc*2]/*.Freq*/++;\n  } else {\n    s.matches++;\n    /* Here, lc is the match length - MIN_MATCH */\n    dist--;             /* dist = match distance - 1 */\n    //Assert((ush)dist < (ush)MAX_DIST(s) &&\n    //       (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n    //       (ush)d_code(dist) < (ush)D_CODES,  \"_tr_tally: bad match\");\n\n    s.dyn_ltree[(_length_code[lc]+LITERALS+1) * 2]/*.Freq*/++;\n    s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n  }\n\n// (!) This block is disabled in zlib defailts,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n//  /* Try to guess if it is profitable to stop the current block here */\n//  if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n//    /* Compute an upper bound for the compressed length */\n//    out_length = s.last_lit*8;\n//    in_length = s.strstart - s.block_start;\n//\n//    for (dcode = 0; dcode < D_CODES; dcode++) {\n//      out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n//    }\n//    out_length >>>= 3;\n//    //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n//    //       s->last_lit, in_length, out_length,\n//    //       100L - out_length*100L/in_length));\n//    if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n//      return true;\n//    }\n//  }\n//#endif\n\n  return (s.last_lit === s.lit_bufsize-1);\n  /* We avoid equality with lit_bufsize because of wraparound at 64K\n   * on 16 bit machines and because stored blocks are restricted to\n   * 64K-1 bytes.\n   */\n}\n\nexports._tr_init  = _tr_init;\nexports._tr_stored_block = _tr_stored_block;\nexports._tr_flush_block  = _tr_flush_block;\nexports._tr_tally = _tr_tally;\nexports._tr_align = _tr_align;\n},{\"../utils/common\":27}],39:[function(_dereq_,module,exports){\n'use strict';\n\n\nfunction ZStream() {\n  /* next input byte */\n  this.input = null; // JS specific, because we have no pointers\n  this.next_in = 0;\n  /* number of bytes available at input */\n  this.avail_in = 0;\n  /* total number of input bytes read so far */\n  this.total_in = 0;\n  /* next output byte should be put there */\n  this.output = null; // JS specific, because we have no pointers\n  this.next_out = 0;\n  /* remaining free space at output */\n  this.avail_out = 0;\n  /* total number of bytes output so far */\n  this.total_out = 0;\n  /* last error message, NULL if no error */\n  this.msg = ''/*Z_NULL*/;\n  /* not visible by applications */\n  this.state = null;\n  /* best guess about the data type: binary or text */\n  this.data_type = 2/*Z_UNKNOWN*/;\n  /* adler32 value of the uncompressed data */\n  this.adler = 0;\n}\n\nmodule.exports = ZStream;\n},{}]},{},[9])\n(9)\n}));\n","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false */\nvar XLSX = {};\nfunction make_xlsx_lib(XLSX){\nXLSX.version = '0.16.8';\nvar current_codepage = 1200, current_ansi = 1252;\n/*global cptable:true, window */\nif(typeof module !== \"undefined\" && typeof require !== 'undefined') {\n\tif(typeof cptable === 'undefined') {\n\t\tif(typeof global !== 'undefined') global.cptable = require('./dist/cpexcel.js');\n\t\telse if(typeof window !== 'undefined') window.cptable = require('./dist/cpexcel.js');\n\t}\n}\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950 ];\nfor(var i = 0; i <= 8; ++i) VALID_ANSI.push(1250 + i);\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n0:    1252, /* ANSI */\n1:   65001, /* DEFAULT */\n2:   65001, /* SYMBOL */\n77:  10000, /* MAC */\n128:   932, /* SHIFTJIS */\n129:   949, /* HANGUL */\n130:  1361, /* JOHAB */\n134:   936, /* GB2312 */\n136:   950, /* CHINESEBIG5 */\n161:  1253, /* GREEK */\n162:  1254, /* TURKISH */\n163:  1258, /* VIETNAMESE */\n177:  1255, /* HEBREW */\n178:  1256, /* ARABIC */\n186:  1257, /* BALTIC */\n204:  1251, /* RUSSIAN */\n222:   874, /* THAI */\n238:  1250, /* EASTEUROPE */\n255:  1252, /* OEM */\n69:   6969  /* MISC */\n});\n\nvar set_ansi = function(cp) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data) { var o = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data) {\n\tvar o = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\n\treturn o.join(\"\");\n}\nfunction utf16beread(data) {\n\tvar o = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\n\treturn o.join(\"\");\n}\n\nvar debom = function(data) {\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\n\tif(c1 == 0xFEFF) return data.slice(1);\n\treturn data;\n};\n\nvar _getchar = function _gc1(x) { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x) { return String.fromCharCode(x); };\nif(typeof cptable !== 'undefined') {\n\tset_cp = function(cp) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return cptable.utils.decode(1200, char_codes(data.slice(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x) {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n\t_getansi = function _ga2(x) {\n\t\treturn cptable.utils.decode(current_ansi, [x])[0];\n\t};\n}\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64 = (function make_b64(){\n\tvar map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\treturn {\n\t\tencode: function(input) {\n\t\t\tvar o = \"\";\n\t\t\tvar c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;\n\t\t\tfor(var i = 0; i < input.length; ) {\n\t\t\t\tc1 = input.charCodeAt(i++);\n\t\t\t\te1 = (c1 >> 2);\n\n\t\t\t\tc2 = input.charCodeAt(i++);\n\t\t\t\te2 = ((c1 & 3) << 4) | (c2 >> 4);\n\n\t\t\t\tc3 = input.charCodeAt(i++);\n\t\t\t\te3 = ((c2 & 15) << 2) | (c3 >> 6);\n\t\t\t\te4 = (c3 & 63);\n\t\t\t\tif (isNaN(c2)) { e3 = e4 = 64; }\n\t\t\t\telse if (isNaN(c3)) { e4 = 64; }\n\t\t\t\to += map.charAt(e1) + map.charAt(e2) + map.charAt(e3) + map.charAt(e4);\n\t\t\t}\n\t\t\treturn o;\n\t\t},\n\t\tdecode: function b64_decode(input) {\n\t\t\tvar o = \"\";\n\t\t\tvar c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;\n\t\t\tinput = input.replace(/[^\\w\\+\\/\\=]/g, \"\");\n\t\t\tfor(var i = 0; i < input.length;) {\n\t\t\t\te1 = map.indexOf(input.charAt(i++));\n\t\t\t\te2 = map.indexOf(input.charAt(i++));\n\t\t\t\tc1 = (e1 << 2) | (e2 >> 4);\n\t\t\t\to += String.fromCharCode(c1);\n\n\t\t\t\te3 = map.indexOf(input.charAt(i++));\n\t\t\t\tc2 = ((e2 & 15) << 4) | (e3 >> 2);\n\t\t\t\tif (e3 !== 64) { o += String.fromCharCode(c2); }\n\n\t\t\t\te4 = map.indexOf(input.charAt(i++));\n\t\t\t\tc3 = ((e3 & 3) << 6) | e4;\n\t\t\t\tif (e4 !== 64) { o += String.fromCharCode(c3); }\n\t\t\t}\n\t\t\treturn o;\n\t\t}\n\t};\n})();\nvar has_buf = (typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node);\n\nvar Buffer_from = function(){};\n\nif(typeof Buffer !== 'undefined') {\n\tvar nbfs = !Buffer.from;\n\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\tBuffer_from = nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t// $FlowIgnore\n\tif(!Buffer.alloc) Buffer.alloc = function(n) { return new Buffer(n); };\n\t// $FlowIgnore\n\tif(!Buffer.allocUnsafe) Buffer.allocUnsafe = function(n) { return new Buffer(n); };\n}\n\nfunction new_raw_buf(len) {\n\t/* jshint -W056 */\n\treturn has_buf ? Buffer.alloc(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len) {\n\t/* jshint -W056 */\n\treturn has_buf ? Buffer.allocUnsafe(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s) {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x){ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s) {\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n\treturn buf;\n}\n\nfunction a2s(data) {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data) {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data) {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\nvar o = new Array(data.length);\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\n\treturn o;\n}\n\nvar bconcat = function(bufs) { return [].concat.apply([], bufs); };\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nvar SSF = ({});\nvar make_ssf = function make_ssf(SSF){\nSSF.version = '0.11.2';\nfunction _strrev(x) { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction fill(c,l) { var o = \"\"; while(o.length < l) o+=c; return o; }\nfunction pad0(v,d){var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v,d){var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v,d){var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v,d){var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v,d){var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = Math.pow(2,32);\nfunction pad0r(v,d){if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\nfunction isgeneral(s, i) { i = i || 0; return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\nvar days = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction init_table(t) {\n\tt[0]=  'General';\n\tt[1]=  '0';\n\tt[2]=  '0.00';\n\tt[3]=  '#,##0';\n\tt[4]=  '#,##0.00';\n\tt[9]=  '0%';\n\tt[10]= '0.00%';\n\tt[11]= '0.00E+00';\n\tt[12]= '# ?/?';\n\tt[13]= '# ??/??';\n\tt[14]= 'm/d/yy';\n\tt[15]= 'd-mmm-yy';\n\tt[16]= 'd-mmm';\n\tt[17]= 'mmm-yy';\n\tt[18]= 'h:mm AM/PM';\n\tt[19]= 'h:mm:ss AM/PM';\n\tt[20]= 'h:mm';\n\tt[21]= 'h:mm:ss';\n\tt[22]= 'm/d/yy h:mm';\n\tt[37]= '#,##0 ;(#,##0)';\n\tt[38]= '#,##0 ;[Red](#,##0)';\n\tt[39]= '#,##0.00;(#,##0.00)';\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\n\tt[45]= 'mm:ss';\n\tt[46]= '[h]:mm:ss';\n\tt[47]= 'mmss.0';\n\tt[48]= '##0.0E+0';\n\tt[49]= '@';\n\tt[56]= '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"';\n}\n\nvar table_fmt = {};\ninit_table(table_fmt);\n/* Defaults determined by systematically testing in Excel 2019 */\n\n/* These formats appear to default to other formats in the table */\nvar default_map = [];\nvar defi = 0;\n\n//  5 -> 37 ...  8 -> 40\nfor(defi = 5; defi <= 8; ++defi) default_map[defi] = 32 + defi;\n\n// 23 ->  0 ... 26 ->  0\nfor(defi = 23; defi <= 26; ++defi) default_map[defi] = 0;\n\n// 27 -> 14 ... 31 -> 14\nfor(defi = 27; defi <= 31; ++defi) default_map[defi] = 14;\n// 50 -> 14 ... 58 -> 14\nfor(defi = 50; defi <= 58; ++defi) default_map[defi] = 14;\n\n// 59 ->  1 ... 62 ->  4\nfor(defi = 59; defi <= 62; ++defi) default_map[defi] = defi - 58;\n// 67 ->  9 ... 68 -> 10\nfor(defi = 67; defi <= 68; ++defi) default_map[defi] = defi - 58;\n// 72 -> 14 ... 75 -> 17\nfor(defi = 72; defi <= 75; ++defi) default_map[defi] = defi - 58;\n\n// 69 -> 12 ... 71 -> 14\nfor(defi = 67; defi <= 68; ++defi) default_map[defi] = defi - 57;\n\n// 76 -> 20 ... 78 -> 22\nfor(defi = 76; defi <= 78; ++defi) default_map[defi] = defi - 56;\n\n// 79 -> 45 ... 81 -> 47\nfor(defi = 79; defi <= 81; ++defi) default_map[defi] = defi - 34;\n\n// 82 ->  0 ... 65536 -> 0 (omitted)\n\n/* These formats technically refer to Accounting formats with no equivalent */\nvar default_str = [];\n\n//  5 -- Currency,   0 decimal, black negative\ndefault_str[5] = default_str[63] = '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)';\n//  6 -- Currency,   0 decimal, red   negative\ndefault_str[6] = default_str[64] = '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)';\n//  7 -- Currency,   2 decimal, black negative\ndefault_str[7] = default_str[65] = '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)';\n//  8 -- Currency,   2 decimal, red   negative\ndefault_str[8] = default_str[66] = '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)';\n\n// 41 -- Accounting, 0 decimal, No Symbol\ndefault_str[41] = '_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)';\n// 42 -- Accounting, 0 decimal, $  Symbol\ndefault_str[42] = '_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)';\n// 43 -- Accounting, 2 decimal, No Symbol\ndefault_str[43] = '_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)';\n// 44 -- Accounting, 2 decimal, $  Symbol\ndefault_str[44] = '_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)';\nfunction frac(x, D, mixed) {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.00000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\n\tif(!mixed) return [0, sgn * P, Q];\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction parse_date_code(v,opts,b2) {\n\tif(v > 2958465 || v < 0) return null;\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tif(opts && opts.date1904) date += 1462;\n\tif(out.u > 0.9999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 in Gregorian */\n\t\tvar d = new Date(1900, 0, 1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\nSSF.parse_date_code = parse_date_code;\nvar basedate = new Date(1899, 11, 31, 0, 0, 0);\nvar dnthresh = basedate.getTime();\nvar base1904 = new Date(1900, 2, 1, 0, 0, 0);\nfunction datenum_local(v, date1904) {\n\tvar epoch = v.getTime();\n\tif(date1904) epoch -= 1461*24*60*60*1000;\n\telse if(v >= base1904) epoch += 24*60*60*1000;\n\treturn (epoch - (dnthresh + (v.getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000)) / (24 * 60 * 60 * 1000);\n}\n/* The longest 32-bit integer text is \"-4294967296\", exactly 11 chars */\nfunction general_fmt_int(v) { return v.toString(10); }\nSSF._general_int = general_fmt_int;\n\n/* ECMA-376 18.8.30 numFmt*/\n/* Note: `toPrecision` uses standard form when prec > E and E >= -6 */\nvar general_fmt_num = (function make_general_fmt_num() {\n\tvar trailing_zeroes_and_decimal = /(?:\\.0*|(\\.\\d*[1-9])0+)$/;\n\tfunction strip_decimal(o) {\n\t\treturn (o.indexOf(\".\") == -1) ? o : o.replace(trailing_zeroes_and_decimal, \"$1\");\n\t}\n\n\t/* General Exponential always shows 2 digits exp and trims the mantissa */\n\tvar mantissa_zeroes_and_decimal = /(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/;\n\tvar exp_with_single_digit = /(E[+-])(\\d)$/;\n\tfunction normalize_exp(o) {\n\t\tif(o.indexOf(\"E\") == -1) return o;\n\t\treturn o.replace(mantissa_zeroes_and_decimal,\"$1E\").replace(exp_with_single_digit,\"$10$2\");\n\t}\n\n\t/* exponent >= -9 and <= 9 */\n\tfunction small_exp(v) {\n\t\tvar w = (v<0?12:11);\n\t\tvar o = strip_decimal(v.toFixed(12)); if(o.length <= w) return o;\n\t\to = v.toPrecision(10); if(o.length <= w) return o;\n\t\treturn v.toExponential(5);\n\t}\n\n\t/* exponent >= 11 or <= -10 likely exponential */\n\tfunction large_exp(v) {\n\t\tvar o = strip_decimal(v.toFixed(11));\n\t\treturn (o.length > (v<0?12:11) || o === \"0\" || o === \"-0\") ? v.toPrecision(6) : o;\n\t}\n\n\tfunction general_fmt_num_base(v) {\n\t\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\n\t\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\t\telse if(Math.abs(V) <= 9) o = small_exp(v);\n\t\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\t\telse o = large_exp(v);\n\n\t\treturn strip_decimal(normalize_exp(o.toUpperCase()));\n\t}\n\n\treturn general_fmt_num_base;\n})();\nSSF._general_num = general_fmt_num;\n\n/*\n\t\"General\" rules:\n\t- text is passed through (\"@\")\n\t- booleans are rendered as TRUE/FALSE\n\t- \"up to 11 characters\" displayed for numbers\n\t- Default date format (code 14) used for Dates\n\n\tTODO: technically the display depends on the width of the cell\n*/\nfunction general_fmt(v, opts) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : general_fmt_num(v);\n\t\tcase 'undefined': return \"\";\n\t\tcase 'object':\n\t\t\tif(v == null) return \"\";\n\t\t\tif(v instanceof Date) return format(14, datenum_local(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\nSSF._general = general_fmt;\nfunction fix_hijri(date, o) {\n  /* TODO: properly adjust y/m/d and  */\n  o[0] -= 581;\n  var dow = date.getDay();\n  if(date < 60) dow = (dow + 6) % 7;\n  return dow;\n}\n//var THAI_DIGITS = \"\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\".split(\"\");\n/*jshint -W086 */\nfunction write_date(type, fmt, val, ss0) {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\nif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1; break;\n\t}\n\tvar outstr = outl > 0 ? pad0(out, outl) : \"\";\n\treturn outstr;\n}\n/*jshint +W086 */\nfunction commaify(s) {\n\tvar w = 3;\n\tif(s.length <= w) return s;\n\tvar j = (s.length % w), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\n\treturn o;\n}\nvar write_num = (function make_write_num(){\nvar pct1 = /%/g;\nfunction write_num_pct(type, fmt, val){\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\nfunction write_num_cm(type, fmt, val){\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\nfunction write_num_exp(fmt, val){\n\tvar o;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r, aval, sign) {\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r, aval, sign) {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.([0#]+)/;\nvar closeparen = /\\).*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str) {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val, d) { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val, d) {\n\tvar _frac = val - Math.floor(val), dd = Math.pow(10,d);\n\tif (d < ('' + Math.round(_frac * dd)).length) return 0;\n\treturn Math.round(_frac * dd);\n}\nfunction carry(val, d) {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\nfunction flr(val) {\n\tif(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0));\n\treturn \"\"+Math.floor(val);\n}\nfunction write_num_flt(type, fmt, val) {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1])).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val) + carry(val, r[1].length))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o.charAt(ri++):x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone)) {\n\t\to = write_num_flt(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(r[4].length,7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", r[1], ff[1]);\n\t\tif(oa.charAt(oa.length-1) == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + r[2] + \"/\" + r[3];\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/))) {\n\t\to = pad0r(val, 0);\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(/^([#0?]+)\\.([#0]+)$/))) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/))) {\n\t\tri = dec(val, r[1].length);\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(flr(val)).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(ri,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"###,##0.00\": return write_num_flt(type, \"#,##0.00\", val);\n\t\tcase \"###,###\":\n\t\tcase \"##,###\":\n\t\tcase \"#,###\": var x = commaify(pad0r(aval,0)); return x !== \"0\" ? sign + x : \"\";\n\t\tcase \"###,###.00\": return write_num_flt(type, \"###,##0.00\",val).replace(/^0\\./,\".\");\n\t\tcase \"#,###.00\": return write_num_flt(type, \"#,##0.00\",val).replace(/^0\\./,\".\");\n\t\tdefault:\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nfunction write_num_cm2(type, fmt, val){\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\nfunction write_num_pct2(type, fmt, val){\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\nfunction write_num_exp2(fmt, val){\n\tvar o;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp2(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(!o.match(/[Ee]/)) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nfunction write_num_int(type, fmt, val) {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\no = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\nreturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o.charAt(ri++):x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone)) {\n\t\to = write_num_int(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(r[4].length,7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", r[1], ff[1]);\n\t\tif(oa.charAt(oa.length-1) == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + r[2] + \"/\" + r[3];\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/))) {\n\t\to = \"\" + val;\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(/^([#0]+)\\.([#0]+)$/))) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify(\"\"+val).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(0,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"###,###\":\n\t\tcase \"##,###\":\n\t\tcase \"#,###\": var x = commaify(\"\"+aval); return x !== \"0\" ? sign + x : \"\";\n\t\tdefault:\n\t\t\tif(fmt.match(/\\.[0#?]*$/)) return write_num_int(type, fmt.slice(0,fmt.lastIndexOf(\".\")), val) + hashq(fmt.slice(fmt.lastIndexOf(\".\")));\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nreturn function write_num(type, fmt, val) {\n\treturn (val|0) === val ? write_num_int(type, fmt, val) : write_num_flt(type, fmt, val);\n};})();\nfunction split_fmt(fmt) {\n\tvar out = [];\n\tvar in_str = false/*, cc*/;\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((/*cc=*/fmt.charCodeAt(i))) {\n\t\tcase 34: /* '\"' */\n\t\t\tin_str = !in_str; break;\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\n\t\t\t++i; break;\n\t\tcase 59: /* ';' */\n\t\t\tout[out.length] = fmt.substr(j,i-j);\n\t\t\tj = i+1;\n\t}\n\tout[out.length] = fmt.substr(j);\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\n\treturn out;\n}\nSSF._split = split_fmt;\nvar abstime = /\\[[HhMmSs\\u0E0A\\u0E19\\u0E17]*\\]/;\nfunction fmt_is_date(fmt) {\n\tvar i = 0, /*cc = 0,*/ c = \"\", o = \"\";\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': if(isgeneral(fmt, i)) i+= 6; i++; break;\n\t\t\tcase '\"': for(;(/*cc=*/fmt.charCodeAt(++i)) !== 34 && i < fmt.length;){/*empty*/} ++i; break;\n\t\t\tcase '\\\\': i+=2; break;\n\t\t\tcase '_': i+=2; break;\n\t\t\tcase '@': ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") return true;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"AM/PM\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"上午/下午\") return true;\n\t\t\t\t++i; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.match(abstime)) return true;\n\t\t\t\tbreak;\n\t\t\tcase '.':\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\twhile(i < fmt.length && (\"0#?.,E+-%\".indexOf(c=fmt.charAt(++i)) > -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\n\t\t\t\tbreak;\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\n\t\t\tcase '(': case ')': ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\n\t\t\tcase ' ': ++i; break;\n\t\t\tdefault: ++i; break;\n\t\t}\n\t}\n\treturn false;\n}\nSSF.is_date = fmt_is_date;\nfunction eval_fmt(fmt, v, opts, flen) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\n\t\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? \"P\" : \"A\"; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"上午/下午\") { if(dt!=null) q.v = dt.H >= 12 ? \"下午\" : \"上午\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(abstime)) {\n\t\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tcase '$': out[out.length] = {t:'t', v:'$'}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\n\t/* Scan for date/time parts */\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\t/* time rounding depends on presence of minute / second / usec fields */\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\nif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >=  60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >=  60) { dt.M = 0; ++dt.H; }\n\t\t\tbreak;\n\t\tcase 2:\nif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >=  60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\nout[i].v = write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = general_fmt(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t}\n\t\telse if(decpt !== out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tjj = ostr.indexOf(\".\")-1;\n\t\t\tfor(i=decpt; i>= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t\tjj = ostr.indexOf(\".\")+1;\n\t\t\tfor(i=decpt; i<out.length; ++i) {\n\t\t\t\tif(out[i] == null || ('n?('.indexOf(out[i].t) === -1 && i !== decpt)) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j<out[i].v.length; ++j) {\n\t\t\t\t\tif(jj<ostr.length) vv += ostr.charAt(jj++);\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t}\n\t}\n\tfor(i=0; i<out.length; ++i) if(out[i] != null && 'n?'.indexOf(out[i].t)>-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\nSSF._eval = eval_fmt;\nvar cfregex = /\\[[=<>]/;\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\":  if(v == thresh) return true; break;\n\t\tcase \">\":  if(v >  thresh) return true; break;\n\t\tcase \"<\":  if(v <  thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f, v) {\n\tvar fmt = split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(cfregex) != null || fmt[1].match(cfregex) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction format(fmt,v,o) {\n\tif(o == null) o = {};\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\":\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = fmt;\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = (o.table != null ? (o.table) : table_fmt)[fmt];\n\t\t\tif(sfmt == null) sfmt = (o.table && o.table[default_map[fmt]]) || table_fmt[default_map[fmt]];\n\t\t\tif(sfmt == null) sfmt = default_str[fmt] || \"General\";\n\t\t\tbreak;\n\t}\n\tif(isgeneral(sfmt,0)) return general_fmt(v, o);\n\tif(v instanceof Date) v = datenum_local(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(isgeneral(f[1])) return general_fmt(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nfunction load_entry(fmt, idx) {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\nfor(var i = 0; i < 0x0188; ++i) {\nif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\nif(idx < 0) idx = 0x187;\n\t}\ntable_fmt[idx] = fmt;\n\treturn idx;\n}\nSSF.load = load_entry;\nSSF._table = table_fmt;\nSSF.get_table = function get_table() { return table_fmt; };\nSSF.load_table = function load_table(tbl) {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) load_entry(tbl[i], i);\n};\nSSF.init_table = init_table;\nSSF.format = format;\n};\nmake_ssf(SSF);\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*{[string]:string}*/ = ({\n\t\"General Number\": \"General\",\n\t\"General Date\": SSF._table[22],\n\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\"Medium Date\": SSF._table[15],\n\t\"Short Date\": SSF._table[14],\n\t\"Long Time\": SSF._table[19],\n\t\"Medium Time\": SSF._table[18],\n\t\"Short Time\": SSF._table[20],\n\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"Fixed\": SSF._table[2],\n\t\"Standard\": SSF._table[4],\n\t\"Percent\": SSF._table[10],\n\t\"Scientific\": SSF._table[11],\n\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n});\n\nvar SSFImplicit/*{[number]:string}*/ = ({\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\n\t\"36\": 'm/d/yy',\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\n\t\"59\": '0',\n\t\"60\": '0.00',\n\t\"61\": '#,##0',\n\t\"62\": '#,##0.00',\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"67\": '0%',\n\t\"68\": '0.00%',\n\t\"69\": '# ?/?',\n\t\"70\": '# ??/??',\n\t\"71\": 'm/d/yy',\n\t\"72\": 'm/d/yy',\n\t\"73\": 'd-mmm-yy',\n\t\"74\": 'd-mmm',\n\t\"75\": 'mmm-yy',\n\t\"76\": 'h:mm',\n\t\"77\": 'h:mm:ss',\n\t\"78\": 'm/d/yy h:mm',\n\t\"79\": 'mm:ss',\n\t\"80\": '[h]:mm:ss',\n\t\"81\": 'mmss.0'\n});\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF) {\n\tvar fmt = typeof dateNF == \"number\" ? SSF._table[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str, dateNF, match) {\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\n\t\tvar v = parseInt(match[i+1], 10);\n\t\tswitch(n.toLowerCase().charAt(0)) {\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\n\t\t}\n\t});\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\n\tvar datestr = ((\"\" + (Y>=0?Y: new Date().getFullYear())).slice(-4) + \"-\" + (\"00\" + (m>=1?m:1)).slice(-2) + \"-\" + (\"00\" + (d>=1?d:1)).slice(-2));\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\n\tif(H == -1 && M == -1 && S == -1) return datestr;\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\n\treturn datestr + \"T\" + timestr;\n}\n\nvar DO_NOT_EXPORT_CFB = true;\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global Uint8Array:false, Uint16Array:false */\n\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32;\n(function (factory) {\n\t/*jshint ignore:start */\n\t/*eslint-disable */\n\tfactory(CRC32 = {});\n\t/*eslint-enable */\n\t/*jshint ignore:end */\n}(function(CRC32) {\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table() {\n\tvar c = 0, table = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T = signed_crc_table();\nfunction crc32_bstr(bstr, seed) {\n\tvar C = seed ^ -1, L = bstr.length - 1;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^bstr.charCodeAt(i++))&0xFF];\n\t\tC = (C>>>8) ^ T[(C^bstr.charCodeAt(i++))&0xFF];\n\t}\n\tif(i === L) C = (C>>>8) ^ T[(C ^ bstr.charCodeAt(i))&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_buf(buf, seed) {\n\tif(buf.length > 10000) return crc32_buf_8(buf, seed);\n\tvar C = seed ^ -1, L = buf.length - 3;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t}\n\twhile(i < L+3) C = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_buf_8(buf, seed) {\n\tvar C = seed ^ -1, L = buf.length - 7;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t}\n\twhile(i < L+7) C = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_str(str, seed) {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L=str.length, c, d; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T[(C ^ c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn C ^ -1;\n}\nCRC32.table = T;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\n}));\n/* [MS-CFB] v20171201 */\nvar CFB = (function _CFB(){\nvar exports = {};\nexports.version = '1.1.4';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l, r) {\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\n\t\tif((c = L[i].length - R[i].length)) return c;\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\n\t}\n\treturn L.length - R.length;\n}\nfunction dirname(p) {\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(0, c+1);\n}\n\nfunction filename(p) {\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(c+1);\n}\n/* -------------------------------------------------------------------------- */\n/* DOS Date format:\n   high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\n   add 1980 to stored year\n   stored second should be doubled\n*/\n\n/* write JS date to buf as a DOS date */\nfunction write_dos_date(buf, date) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd = (date.getFullYear() - 1980);\n\tymd = ymd << 4 | (date.getMonth()+1);\n\tymd = ymd << 5 | date.getDate();\n\tbuf.write_shift(2, ymd);\n}\n\n/* read four bytes from buf and interpret as a DOS date */\nfunction parse_dos_date(buf) {\n\tvar hms = buf.read_shift(2) & 0xFFFF;\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\n\tvar val = new Date();\n\tvar d = ymd & 0x1F; ymd >>>= 5;\n\tvar m = ymd & 0x0F; ymd >>>= 4;\n\tval.setMilliseconds(0);\n\tval.setFullYear(ymd + 1980);\n\tval.setMonth(m-1);\n\tval.setDate(d);\n\tvar S = hms & 0x1F; hms >>>= 5;\n\tvar M = hms & 0x3F; hms >>>= 6;\n\tval.setHours(hms);\n\tval.setMinutes(M);\n\tval.setSeconds(S<<1);\n\treturn val;\n}\nfunction parse_extra_field(blob) {\n\tprep_blob(blob, 0);\n\tvar o = {};\n\tvar flags = 0;\n\twhile(blob.l <= blob.length - 4) {\n\t\tvar type = blob.read_shift(2);\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\n\t\tvar p = {};\n\t\tswitch(type) {\n\t\t\t/* UNIX-style Timestamps */\n\t\t\tcase 0x5455: {\n\t\t\t\tflags = blob.read_shift(1);\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\n\t\t\t\tif(sz > 5) {\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\n\t\t\t\t}\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tblob.l = tgt;\n\t\to[type] = p;\n\t}\n\treturn o;\n}\nvar fs;\nfunction get_fs() { return fs || (fs = require('fs')); }\nfunction parse(file, options) {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\nvar mver = 3;\nvar ssz = 512;\nvar nmfs = 0; // number of mini FAT sectors\nvar difat_sec_cnt = 0;\nvar dir_start = 0;\nvar minifat_start = 0;\nvar difat_start = 0;\n\nvar fat_addrs = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob = file.slice(0,512);\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\n\t/* falls through */\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = file.slice(0,ssz); prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt = blob.read_shift(4, 'i');\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\n\n// Number of FAT Sectors\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\ndifat_sec_cnt = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nsector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files = {}, Paths = [], FileIndex = [], FullPaths = [];\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\n\nbuild_full_paths(FileIndex, FullPaths, Paths);\nPaths.shift();\n\nvar o = {\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths\n};\n\n// $FlowIgnore\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\nreturn o;\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob) {\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\n\tblob.l += 16;\n\n\t// minor version 2\n\tvar mver = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob, mver) {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\n\tblob.l += 2;\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file, ssz) {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors = [];\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI, FP, Paths) {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad = [], q = [];\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\n\t}\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = i;\n\t\tif(j != dad[j]) do {\n\t\t\tj = dad[j];\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\n\t\tdad[i] = -1;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t}\n}\n\nfunction get_mfat_entry(entry, payload, mini) {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size));\n\tvar o = [];\n\tvar idx = start;\n\twhile(mini && size > 0 && idx >= 0) {\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\n\t\tsize -= MSSZ;\n\t\tidx = __readInt32LE(mini, idx * 4);\n\t}\n\tif(o.length === 0) return (new_buf(0));\n\treturn (bconcat(o).slice(0, entry.size));\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n    DIFAT chains by storing the next sector number as the last 32 bits */\nfunction sleuth_fat(idx, cnt, sectors, ssz, fat_addrs) {\n\tvar q = ENDOFCHAIN;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tif(!sector) return;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tsleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors, start, fat_addrs, ssz, chkd) {\n\tvar buf = [], buf_chain = [];\n\tif(!chkd) chkd = [];\n\tvar modulus = ssz - 1, j = 0, jj = 0;\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\tif(!sectors[addr]) break;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors, dir_start, fat_addrs, ssz) {\n\tvar sl = sectors.length, sector_list = ([]);\n\tvar chkd = [], buf = [], buf_chain = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tvar seen = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tseen[j] = true;\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t\tif(seen[j]) break;\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])});\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, mini) {\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name;\n\tfor(; i < sector.length; i+= 128) {\n\t\tvar blob = sector.slice(i, i+128);\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\tvar o = ({\n\t\t\tname:  name,\n\t\t\ttype:  blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL:     blob.read_shift(4, 'i'),\n\t\t\tR:     blob.read_shift(4, 'i'),\n\t\t\tC:     blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i'),\n\t\t\tstart: 0,\n\t\t\tsize: 0\n\t\t});\n\t\tvar ctime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\n\t\tvar mtime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size));\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(o.size < 0) o.size = 0;\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\n\t\t\t}\n\t\t}\n\t\tif(o.content) prep_blob(o.content, 0);\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob, offset) {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nfunction read_file(filename, options) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob, options) {\n\tswitch(options && options.type || \"base64\") {\n\t\tcase \"file\": return read_file(blob, options);\n\t\tcase \"base64\": return parse(s2a(Base64.decode(blob)), options);\n\t\tcase \"binary\": return parse(s2a(blob), options);\n\t}\n\treturn parse(blob, options);\n}\n\nfunction init_cfb(cfb, opts) {\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\n\tif(cfb.FullPaths.length === 0) {\n\t\tcfb.FullPaths[0] = root + \"/\";\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 });\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb) {\n\tvar nm = \"\\u0001Sh33tJ5\";\n\tif(CFB.find(cfb, \"/\" + nm)) return;\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb, f) {\n\tinit_cfb(cfb);\n\tvar gc = false, s = false;\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\n\t\tvar _file = cfb.FileIndex[i];\n\t\tswitch(_file.type) {\n\t\t\tcase 0:\n\t\t\t\tif(s) gc = true;\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\n\t\t\t\tbreak;\n\t\t\tcase 1: case 2: case 5:\n\t\t\t\ts = true;\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\n\t\t\t\tbreak;\n\t\t\tdefault: gc = true; break;\n\t\t}\n\t}\n\tif(!gc && !f) return;\n\n\tvar now = new Date(1987, 1, 19), j = 0;\n\tvar data = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tif(cfb.FileIndex[i].type === 0) continue;\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\n\t}\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar dad = dirname(data[i][0]);\n\t\ts = false;\n\t\tfor(j = 0; j < data.length; ++j) if(data[j][0] === dad) s = true;\n\t\tif(!s) data.push([dad, ({\n\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\ttype: 1,\n\t\t\tclsid: HEADER_CLSID,\n\t\t\tct: now, mt: now,\n\t\t\tcontent: null\n\t\t})]);\n\t}\n\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\n\tcfb.FullPaths = []; cfb.FileIndex = [];\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar elt = cfb.FileIndex[i];\n\t\tvar nm = cfb.FullPaths[i];\n\n\t\telt.name =  filename(nm).replace(\"/\",\"\");\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\n\t\telt.size = elt.content ? elt.content.length : 0;\n\t\telt.start = 0;\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\n\t\tif(i === 0) {\n\t\t\telt.C = data.length > 1 ? 1 : -1;\n\t\t\telt.size = 0;\n\t\t\telt.type = 5;\n\t\t} else if(nm.slice(-1) == \"/\") {\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\n\t\t\telt.C = j >= data.length ? -1 : j;\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\n\t\t\telt.R = j >= data.length ? -1 : j;\n\t\t\telt.type = 1;\n\t\t} else {\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\n\t\t\telt.type = 2;\n\t\t}\n\t}\n\n}\n\nfunction _write(cfb, options) {\n\tvar _opts = options || {};\n\trebuild_cfb(cfb);\n\tif(_opts.fileType == 'zip') return write_zip(cfb, _opts);\n\tvar L = (function(cfb){\n\t\tvar mini_size = 0, fat_size = 0;\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\n\t\t\tvar file = cfb.FileIndex[i];\n\t\t\tif(!file.content) continue;\nvar flen = file.content.length;\n\t\t\tif(flen > 0){\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\n\t\t\t}\n\t\t}\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\twhile(((fat_base + fat_cnt + difat_cnt + 0x7F) >> 7) > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\tvar L =  [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\n\t\tcfb.FileIndex[0].size = mini_size << 6;\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\n\t\treturn L;\n\t})(cfb);\n\tvar o = new_buf(L[7] << 9);\n\tvar i = 0, T = 0;\n\t{\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\n\t\to.write_shift(2, 0x003E);\n\t\to.write_shift(2, 0x0003);\n\t\to.write_shift(2, 0xFFFE);\n\t\to.write_shift(2, 0x0009);\n\t\to.write_shift(2, 0x0006);\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, L[2]);\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, 1<<12);\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[3]);\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[1]);\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t}\n\tif(L[1]) {\n\t\tfor(T = 0; T < L[1]; ++T) {\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\n\t\t}\n\t}\n\tvar chainit = function(w) {\n\t\tfor(T += w; i<T-1; ++i) o.write_shift(-4, i+1);\n\t\tif(w) { ++i; o.write_shift(-4, ENDOFCHAIN); }\n\t};\n\tT = i = 0;\n\tfor(T+=L[1]; i<T; ++i) o.write_shift(-4, consts.DIFSECT);\n\tfor(T+=L[2]; i<T; ++i) o.write_shift(-4, consts.FATSECT);\n\tchainit(L[3]);\n\tchainit(L[4]);\n\tvar j = 0, flen = 0;\n\tvar file = cfb.FileIndex[0];\n\tfor(; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\nflen = file.content.length;\n\t\tif(flen < 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x01FF) >> 9);\n\t}\n\tchainit((L[6] + 7) >> 3);\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tT = i = 0;\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\nflen = file.content.length;\n\t\tif(!flen || flen >= 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x3F) >> 6);\n\t}\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tfor(i = 0; i < L[4]<<2; ++i) {\n\t\tvar nm = cfb.FullPaths[i];\n\t\tif(!nm || nm.length === 0) {\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\n\t\t\tcontinue;\n\t\t}\n\t\tfile = cfb.FileIndex[i];\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\n\t\tvar _nm = (i === 0 && _opts.root) || file.name;\n\t\tflen = 2*(_nm.length+1);\n\t\to.write_shift(64, _nm, \"utf16le\");\n\t\to.write_shift(2, flen);\n\t\to.write_shift(1, file.type);\n\t\to.write_shift(1, file.color);\n\t\to.write_shift(-4, file.L);\n\t\to.write_shift(-4, file.R);\n\t\to.write_shift(-4, file.C);\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\n\t\telse o.write_shift(16, file.clsid, \"hex\");\n\t\to.write_shift(4, file.state || 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, file.start);\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\nif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\nif(file.size > 0 && file.size < 0x1000) {\n\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t}\n\t}\n\twhile(o.l < o.length) o.write_shift(1, 0);\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb, path) {\n\tvar UCFullPaths = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k = false;\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\n\telse k = path.indexOf(\"/\") !== -1;\n\tvar UCPath = path.toUpperCase();\n\tvar w = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\tif(w !== -1) return cfb.FileIndex[w];\n\n\tvar m = !UCPath.match(chr1);\n\tUCPath = UCPath.replace(chr0,'');\n\tif(m) UCPath = UCPath.replace(chr1,'!');\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t}\n\treturn null;\n}\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nfunction write_file(cfb, filename, options) {\n\tget_fs();\n\tvar o = _write(cfb, options);\nfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o) {\n\tvar out = new Array(o.length);\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\n\treturn out.join(\"\");\n}\n\nfunction write(cfb, options) {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type) {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o)); return o;\n\t\tcase \"binary\": return a2s(o);\n\t\tcase \"base64\": return Base64.encode(a2s(o));\n\t}\n\treturn o;\n}\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\nvar _zlib;\nfunction use_zlib(zlib) { try {\n\tvar InflateRaw = zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\n\tif(InflRaw.bytesRead) _zlib = zlib;\n\telse throw new Error(\"zlib does not expose bytesRead\");\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\n\nfunction _inflateRawSync(payload, usz) {\n\tif(!_zlib) return _inflate(payload, usz);\n\tvar InflateRaw = _zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\n\tpayload.l += InflRaw.bytesRead;\n\treturn out;\n}\n\nfunction _deflateRawSync(payload) {\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\n}\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n/*  LEN_ID = [ 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 ]; */\nvar LEN_LN = [   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 ];\n\n/*  DST_ID = [  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13,  14,  15,  16,  17,  18,  19,   20,   21,   22,   23,   24,   25,   26,    27,    28,    29 ]; */\nvar DST_LN = [  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 ];\n\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\n\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\n\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\n\nfunction bit_swap_n(n, b) {\n\tvar rev = bitswap8[n & 0xFF];\n\tif(b <= 8) return rev >>> (8-b);\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\n\tif(b <= 16) return rev >>> (16-b);\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\n\treturn rev >>> (24-b);\n}\n\n/* helpers for unaligned bit reads */\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\n\n/* works up to n = 3 * 8 + 1 = 25 */\nfunction read_bits_n(buf, bl, n) {\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<<n)-1);\n\tvar v = buf[h] >>> w;\n\tif(n < 8 - w) return v & f;\n\tv |= buf[h+1]<<(8-w);\n\tif(n < 16 - w) return v & f;\n\tv |= buf[h+2]<<(16-w);\n\tif(n < 24 - w) return v & f;\n\tv |= buf[h+3]<<(24-w);\n\treturn v & f;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz) {\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\n\tif(L >= sz) return b;\n\tif(has_buf) {\n\t\tvar o = new_unsafe_buf(M);\n\t\t// $FlowIgnore\n\t\tif(b.copy) b.copy(o);\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\n\t\treturn o;\n\t} else if(use_typed_arrays) {\n\t\tvar a = new Uint8Array(M);\n\t\tif(a.set) a.set(b);\n\t\telse for(; i < b.length; ++i) a[i] = b[i];\n\t\treturn a;\n\t}\n\tb.length = M;\n\treturn b;\n}\n\n/* zero-filled arrays for older browsers */\nfunction zero_fill_array(n) {\n\tvar o = new Array(n);\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\n\treturn o;\n}var _deflate = (function() {\nvar _deflateRaw = (function() {\n\treturn function deflateRaw(data, out) {\n\t\tvar boff = 0;\n\t\twhile(boff < data.length) {\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\n\t\t\tvar h = boff + L == data.length;\n\t\t\t/* TODO: this is only type 0 stored */\n\t\t\tout.write_shift(1, +h);\n\t\t\tout.write_shift(2, L);\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t}\n\t\treturn out.l;\n\t};\n})();\n\nreturn function(data) {\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\n\tvar off = _deflateRaw(data, buf);\n\treturn buf.slice(0, off);\n};\n})();\n/* modified inflate function also moves original read head */\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX) {\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\n\n\tvar bl_count  = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\n\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\n\tL = clens.length;\n\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\n\n\t/* build code tree */\n\tfor(i = 0; i < L; ++i) {\n\t\tbl_count[(w = clens[i])]++;\n\t\tif(maxlen < w) maxlen = w;\n\t\tctree[i] = 0;\n\t}\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\n\tfor(i = 0; i < L; ++i) {\n\t\tccode = clens[i];\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\n\t}\n\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\n\t\t\t\tcmap[ccode|(j<<cleni)] = (cleni&15) | (i<<4);\n\t\t}\n\t}\n\treturn maxlen;\n}\n\nvar fix_lmap = use_typed_arrays ? new Uint16Array(512) : zero_fill_array(512);\nvar fix_dmap = use_typed_arrays ? new Uint16Array(32)  : zero_fill_array(32);\nif(!use_typed_arrays) {\n\tfor(var i = 0; i < 512; ++i) fix_lmap[i] = 0;\n\tfor(i = 0; i < 32; ++i) fix_dmap[i] = 0;\n}\n(function() {\n\tvar dlens = [];\n\tvar i = 0;\n\tfor(;i<32; i++) dlens.push(5);\n\tbuild_tree(dlens, fix_dmap, 32);\n\n\tvar clens = [];\n\ti = 0;\n\tfor(; i<=143; i++) clens.push(8);\n\tfor(; i<=255; i++) clens.push(9);\n\tfor(; i<=279; i++) clens.push(7);\n\tfor(; i<=287; i++) clens.push(8);\n\tbuild_tree(clens, fix_lmap, 288);\n})();\n\nvar dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_cmap = use_typed_arrays ? new Uint16Array(128)   : zero_fill_array(128);\nvar dyn_len_1 = 1, dyn_len_2 = 1;\n\n/* 5.5.3 Expanding Huffman Codes */\nfunction dyn(data, boff) {\n\t/* nomenclature from RFC1951 refers to bit values; these are offset by the implicit constant */\n\tvar _HLIT = read_bits_5(data, boff) + 257; boff += 5;\n\tvar _HDIST = read_bits_5(data, boff) + 1; boff += 5;\n\tvar _HCLEN = read_bits_4(data, boff) + 4; boff += 4;\n\tvar w = 0;\n\n\t/* grab and store code lengths */\n\tvar clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);\n\tvar ctree = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n\tvar maxlen = 1;\n\tvar bl_count =  use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar L = clens.length; /* 19 */\n\tfor(var i = 0; i < _HCLEN; ++i) {\n\t\tclens[CLEN_ORDER[i]] = w = read_bits_3(data, boff);\n\t\tif(maxlen < w) maxlen = w;\n\t\tbl_count[w]++;\n\t\tboff += 3;\n\t}\n\n\t/* build code tree */\n\tvar ccode = 0;\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) next_code[i] = ccode = (ccode + bl_count[i-1])<<1;\n\tfor(i = 0; i < L; ++i) if((ccode = clens[i]) != 0) ctree[i] = next_code[ccode]++;\n\t/* cmap[7 bits from stream] = (off&7) + (lit<<3) */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bitswap8[ctree[i]]>>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<<cleni)] = (cleni&7) | (i<<3);\n\t\t}\n\t}\n\n\t/* read literal and dist codes at once */\n\tvar hcodes = [];\n\tmaxlen = 1;\n\tfor(; hcodes.length < _HLIT + _HDIST;) {\n\t\tccode = dyn_cmap[read_bits_7(data, boff)];\n\t\tboff += ccode & 7;\n\t\tswitch((ccode >>>= 3)) {\n\t\t\tcase 16:\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\n\t\t\t\tccode = hcodes[hcodes.length - 1];\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tcase 18:\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thcodes.push(ccode);\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/* build literal / length trees */\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\n\treturn boff;\n}\n\n/* return [ data, bytesRead ] */\nfunction inflate(data, usz) {\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\n\n\t/* bit offset */\n\tvar boff = 0;\n\n\t/* header includes final bit and type bits */\n\tvar header = 0;\n\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\n\tvar woff = 0;\n\tvar OL = outbuf.length>>>0;\n\tvar max_len_1 = 0, max_len_2 = 0;\n\n\twhile((header&1) == 0) {\n\t\theader = read_bits_3(data, boff); boff += 3;\n\t\tif((header >>> 1) == 0) {\n\t\t\t/* Stored block */\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\n\t\t\tboff += 32;\n\t\t\t/* push sz bytes */\n\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\tif(typeof data.copy === 'function') {\n\t\t\t\t// $FlowIgnore\n\t\t\t\tdata.copy(outbuf, woff, boff>>>3, (boff>>>3)+sz);\n\t\t\t\twoff += sz; boff += 8*sz;\n\t\t\t} else while(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\tcontinue;\n\t\t} else if((header >>> 1) == 1) {\n\t\t\t/* Fixed Huffman */\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\n\t\t} else {\n\t\t\t/* Dynamic Huffman */\n\t\t\tboff = dyn(data, boff);\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\n\t\t}\n\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\t/* ingest code and move read head */\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\n\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\n\t\t\telse if(code == 256) break;\n\t\t\telse {\n\t\t\t\tcode -= 257;\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\n\t\t\t\tvar tgt = woff + LEN_LN[code];\n\t\t\t\t/* length extra bits */\n\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\n\t\t\t\t\tboff += len_eb;\n\t\t\t\t}\n\n\t\t\t\t/* dist code */\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\n\t\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\n\t\t\t\tvar dst = DST_LN[code];\n\t\t\t\t/* dist extra bits */\n\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\n\t\t\t\t\tboff += dst_eb;\n\t\t\t\t}\n\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt); OL = outbuf.length; }\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\n\t\t\t}\n\t\t}\n\t}\n\treturn [usz ? outbuf : outbuf.slice(0, woff), (boff+7)>>>3];\n}\n\nfunction _inflate(payload, usz) {\n\tvar data = payload.slice(payload.l||0);\n\tvar out = inflate(data, usz);\n\tpayload.l += out[1];\n\treturn out[0];\n}\n\nfunction warn_or_throw(wrn, msg) {\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\n\telse throw new Error(msg);\n}\n\nfunction parse_zip(file, options) {\n\tvar blob = file;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex = [], FullPaths = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o, { root: options.root });\n\n\t/* find end of central directory, start just after signature */\n\tvar i = blob.length - 4;\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\n\tblob.l = i + 4;\n\n\t/* parse end of central directory */\n\tblob.l += 4;\n\tvar fcnt = blob.read_shift(2);\n\tblob.l += 6;\n\tvar start_cd = blob.read_shift(4);\n\n\t/* parse central directory */\n\tblob.l = start_cd;\n\n\tfor(i = 0; i < fcnt; ++i) {\n\t\t/* trust local file header instead of CD entry */\n\t\tblob.l += 20;\n\t\tvar csz = blob.read_shift(4);\n\t\tvar usz = blob.read_shift(4);\n\t\tvar namelen = blob.read_shift(2);\n\t\tvar efsz = blob.read_shift(2);\n\t\tvar fcsz = blob.read_shift(2);\n\t\tblob.l += 8;\n\t\tvar offset = blob.read_shift(4);\n\t\tvar EF = parse_extra_field(blob.slice(blob.l+namelen, blob.l+namelen+efsz));\n\t\tblob.l += namelen + efsz + fcsz;\n\n\t\tvar L = blob.l;\n\t\tblob.l = offset + 4;\n\t\tparse_local_file(blob, csz, usz, o, EF);\n\t\tblob.l = L;\n\t}\n\n\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob, csz, usz, o, EF) {\n\t/* [local file header] */\n\tblob.l += 2;\n\tvar flags = blob.read_shift(2);\n\tvar meth = blob.read_shift(2);\n\tvar date = parse_dos_date(blob);\n\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\n\tvar crc32 = blob.read_shift(4);\n\tvar _csz = blob.read_shift(4);\n\tvar _usz = blob.read_shift(4);\n\n\tvar namelen = blob.read_shift(2);\n\tvar efsz = blob.read_shift(2);\n\n\t// TODO: flags & (1<<11) // UTF8\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\n\tif(efsz) {\n\t\tvar ef = parse_extra_field(blob.slice(blob.l, blob.l + efsz));\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\n\t\tif(((EF||{})[0x5455]||{}).mt) date = EF[0x5455].mt;\n\t}\n\tblob.l += efsz;\n\n\t/* [encryption header] */\n\n\t/* [file data] */\n\tvar data = blob.slice(blob.l, blob.l + _csz);\n\tswitch(meth) {\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\n\t\tcase 0: break;\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\n\t}\n\n\t/* [data descriptor] */\n\tvar wrn = false;\n\tif(flags & 8) {\n\t\tcrc32 = blob.read_shift(4);\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\n\t\t_csz = blob.read_shift(4);\n\t\t_usz = blob.read_shift(4);\n\t}\n\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\n\tvar _crc32 = CRC32.buf(data, 0);\n\tif((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb, options) {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o = new_buf(1);\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\n\tvar desc = false;\n\tif(desc) flags |= 8;\n\tvar i = 0, j = 0;\n\n\tvar start_cd = 0, fcnt = 0;\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tvar crcs = [];\n\tvar sz_cd = 0;\n\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\t\tvar start = start_cd;\n\n\t\t/* TODO: CP437 filename */\n\t\tvar namebuf = new_buf(fp.length);\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\n\t\tcrcs[fcnt] = CRC32.buf(fi.content, 0);\n\n\t\tvar outbuf = fi.content;\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\n\n\t\t/* local file header */\n\t\to = new_buf(30);\n\t\to.write_shift(4, 0x04034b50);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\t/* TODO: last mod file time/date */\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\n\t\telse o.write_shift(4, 0);\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\n\t\to.write_shift(4,  (flags & 8) ? 0 : outbuf.length);\n\t\to.write_shift(4,  (flags & 8) ? 0 : fi.content.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\n\t\tstart_cd += o.length;\n\t\tout.push(o);\n\t\tstart_cd += namebuf.length;\n\t\tout.push(namebuf);\n\n\t\t/* TODO: encryption header ? */\n\t\tstart_cd += outbuf.length;\n\t\tout.push(outbuf);\n\n\t\t/* data descriptor */\n\t\tif(flags & 8) {\n\t\t\to = new_buf(12);\n\t\t\to.write_shift(-4, crcs[fcnt]);\n\t\t\to.write_shift(4, outbuf.length);\n\t\t\to.write_shift(4, fi.content.length);\n\t\t\tstart_cd += o.l;\n\t\t\tout.push(o);\n\t\t}\n\n\t\t/* central directory */\n\t\to = new_buf(46);\n\t\to.write_shift(4, 0x02014b50);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\n\t\to.write_shift(-4, crcs[fcnt]);\n\n\t\to.write_shift(4, outbuf.length);\n\t\to.write_shift(4, fi.content.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, start);\n\n\t\tsz_cd += o.l;\n\t\tcdirs.push(o);\n\t\tsz_cd += namebuf.length;\n\t\tcdirs.push(namebuf);\n\t\t++fcnt;\n\t}\n\n\t/* end of central directory */\n\to = new_buf(22);\n\to.write_shift(4, 0x06054b50);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, fcnt);\n\to.write_shift(2, fcnt);\n\to.write_shift(4, sz_cd);\n\to.write_shift(4, start_cd);\n\to.write_shift(2, 0);\n\n\treturn bconcat(([bconcat((out)), bconcat(cdirs), o]));\n}\nfunction cfb_new(opts) {\n\tvar o = ({});\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb, name, content, opts) {\n\tvar unsafe = opts && opts.unsafe;\n\tif(!unsafe) init_cfb(cfb);\n\tvar file = !unsafe && CFB.find(cfb, name);\n\tif(!file) {\n\t\tvar fpath = cfb.FullPaths[0];\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\n\t\telse {\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\n\t\t}\n\t\tfile = ({name: filename(name), type: 2});\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\nfile.content = (content);\n\tfile.size = content ? content.length : 0;\n\tif(opts) {\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\n\t\tif(opts.mt) file.mt = opts.mt;\n\t\tif(opts.ct) file.ct = opts.ct;\n\t}\n\treturn file;\n}\n\nfunction cfb_del(cfb, name) {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex.splice(j, 1);\n\t\tcfb.FullPaths.splice(j, 1);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_mov(cfb, old_name, new_name) {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, old_name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex[j].name = filename(new_name);\n\t\tcfb.FullPaths[j] = new_name;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_gc(cfb) { rebuild_cfb(cfb, true); }\n\nexports.find = find;\nexports.read = read;\nexports.parse = parse;\nexports.write = write;\nexports.writeFile = write_file;\nexports.utils = {\n\tcfb_new: cfb_new,\n\tcfb_add: cfb_add,\n\tcfb_del: cfb_del,\n\tcfb_mov: cfb_mov,\n\tcfb_gc: cfb_gc,\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tuse_zlib: use_zlib,\n\t_deflateRaw: _deflate,\n\t_inflateRaw: _inflate,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nif(typeof require !== 'undefined' && typeof module !== 'undefined' && typeof DO_NOT_EXPORT_CFB === 'undefined') { module.exports = CFB; }\nvar _fs;\nif(typeof require !== 'undefined') try { _fs = require('fs'); } catch(e) {}\n\n/* normalize data for blob ctor */\nfunction blobify(data) {\n\tif(typeof data === \"string\") return s2ab(data);\n\tif(Array.isArray(data)) return a2u(data);\n\treturn data;\n}\n/* write or download file */\nfunction write_dl(fname, payload, enc) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\nif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\n\tif(typeof Blob !== 'undefined') {\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\nif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\nif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\n\t\t\tvar url = URL.createObjectURL(blob);\nif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true});\n\t\t\t}\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\tif(a.download != null) {\na.download = fname; a.href = url; document.body.appendChild(a); a.click();\ndocument.body.removeChild(a);\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\t}\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\n\t\tout.write(payload); out.close(); return payload;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"cannot save file \" + fname);\n}\n\n/* read binary data from file */\nfunction read_binary(path) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\n\t\tvar data = infile.read(); infile.close();\n\t\treturn data;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"Cannot access file \" + path);\n}\nfunction keys(o) {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj, key) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\nvar basedate = new Date(1899, 11, 30, 0, 0, 0); // 2209161600000\nfunction datenum(v, date1904) {\n\tvar epoch = v.getTime();\n\tif(date1904) epoch -= 1462*24*60*60*1000;\n\tvar dnthresh = basedate.getTime() + (v.getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000;\n\treturn (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n}\nvar refdate = new Date();\nvar dnthresh = basedate.getTime() + (refdate.getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000;\nvar refoffset = refdate.getTimezoneOffset();\nfunction numdate(v) {\n\tvar out = new Date();\n\tout.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);\n\tif (out.getTimezoneOffset() !== refoffset) {\n\t\tout.setTime(out.getTime() + (out.getTimezoneOffset() - refoffset) * 60000);\n\t}\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\nvar good_pd_date = new Date('2017-02-19T19:06:09.000Z');\nif(isNaN(good_pd_date.getFullYear())) good_pd_date = new Date('2/19/17');\nvar good_pd = good_pd_date.getFullYear() == 2017;\n/* parses a date as a local date */\nfunction parseDate(str, fixdate) {\n\tvar d = new Date(str);\n\tif(good_pd) {\nif(fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);\n\t\telse if(fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n\t\treturn d;\n\t}\n\tif(str instanceof Date) return str;\n\tif(good_pd_date.getFullYear() == 1917 && !isNaN(d.getFullYear())) {\n\t\tvar s = d.getFullYear();\n\t\tif(str.indexOf(\"\" + s) > -1) return d;\n\t\td.setFullYear(d.getFullYear() + 100); return d;\n\t}\n\tvar n = str.match(/\\d+/g)||[\"2017\",\"2\",\"19\",\"0\",\"0\",\"0\"];\n\tvar out = new Date(+n[0], +n[1] - 1, +n[2], (+n[3]||0), (+n[4]||0), (+n[5]||0));\n\tif(str.indexOf(\"Z\") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1000);\n\treturn out;\n}\n\nfunction cc2str(arr) {\n\tvar o = \"\";\n\tfor(var i = 0; i != arr.length; ++i) o += String.fromCharCode(arr[i]);\n\treturn o;\n}\n\nfunction dup(o) {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c,l) { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s) {\n\tvar v = Number(s);\n\tif(!isNaN(v)) return v;\n\tif(!/\\d/.test(s)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(](.*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\nfunction fuzzydate(s) {\n\tvar o = new Date(s), n = new Date(NaN);\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\n\tif(isNaN(d)) return n;\n\tif(y < 0 || y > 8099) return n;\n\tif((m > 0 || d > 1) && y != 101) return o;\n\tif(s.toLowerCase().match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) return o;\n\tif(s.match(/[^-0-9:,\\/\\\\]/)) return n;\n\treturn o;\n}\n\nvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\nfunction split_regex(str, re, def) {\n\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\tvar p = str.split(re), o = [p[0]];\n\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\treturn o;\n}\nfunction getdatastr(data) {\n\tif(!data) return null;\n\tif(data.data) return debom(data.data);\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\n\tif(data.asBinary) return debom(data.asBinary());\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\tif(data.content && data.type) return debom(cc2str(data.content));\n\treturn null;\n}\n\nfunction getdatabin(data) {\n\tif(!data) return null;\n\tif(data.data) return char_codes(data.data);\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\tif(data._data && data._data.getContent) {\n\t\tvar o = data._data.getContent();\n\t\tif(typeof o == \"string\") return char_codes(o);\n\t\treturn Array.prototype.slice.call(o);\n\t}\n\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase(), g = f.replace(/\\//g,'\\\\');\n\tfor(var i=0; i<k.length; ++i) {\n\t\tvar n = k[i].toLowerCase();\n\t\tif(f == n || g == n) return zip.files[k[i]];\n\t}\n\treturn null;\n}\n\nfunction getzipfile(zip, file) {\n\tvar o = safegetzipfile(zip, file);\n\tif(o == null) throw new Error(\"Cannot find file \" + file + \" in zip\");\n\treturn o;\n}\n\nfunction getzipdata(zip, file, safe) {\n\tif(!safe) return getdata(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipdata(zip, file); } catch(e) { return null; }\n}\n\nfunction getzipstr(zip, file, safe) {\n\tif(!safe) return getdatastr(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipstr(zip, file); } catch(e) { return null; }\n}\n\nfunction zipentries(zip) {\n\tvar k = zip.FullPaths || keys(zip.files), o = [];\n\tfor(var i = 0; i < k.length; ++i) if(k[i].slice(-1) != '/') o.push(k[i]);\n\treturn o.sort();\n}\n\nfunction zip_add_file(zip, path, content) {\n\tif(zip.FullPaths) CFB.utils.cfb_add(zip, path, content);\n\telse zip.file(path, content);\n}\n\nvar jszip;\n/*global JSZipSync:true */\nif(typeof JSZipSync !== 'undefined') jszip = JSZipSync;\nif(typeof exports !== 'undefined') {\n\tif(typeof module !== 'undefined' && module.exports) {\n\t\tif(typeof jszip === 'undefined') jszip = require('./jszip.js');\n\t}\n}\n\nfunction zip_new() {\n\tif(!jszip) return CFB.utils.cfb_new();\n\treturn new jszip();\n}\n\nfunction zip_read(d, o) {\n\tvar zip;\n\tif(jszip) switch(o.type) {\n\t\tcase \"base64\": zip = new jszip(d, { base64:true }); break;\n\t\tcase \"binary\": case \"array\": zip = new jszip(d, { base64:false }); break;\n\t\tcase \"buffer\": zip = new jszip(d); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\telse switch(o.type) {\n\t\tcase \"base64\": zip = CFB.read(d, { type: \"base64\" }); break;\n\t\tcase \"binary\": zip = CFB.read(d, { type: \"binary\" }); break;\n\t\tcase \"buffer\": case \"array\": zip = CFB.read(d, { type: \"buffer\" }); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn zip;\n}\n\nfunction resolve_path(path, base) {\n\tif(path.charAt(0) == \"/\") return path.slice(1);\n\tvar result = base.split('/');\n\tif(base.slice(-1) != \"/\") result.pop(); // folder path\n\tvar target = path.split('/');\n\twhile (target.length !== 0) {\n\t\tvar step = target.shift();\n\t\tif (step === '..') result.pop();\n\t\telse if (step !== '.') result.push(step);\n\t}\n\treturn result.join('/');\n}\nvar XML_HEADER = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\\r\\n';\nvar attregexg=/([^\"\\s?>\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s?[\\/\\?]?>/mg;\n\nif(!(XML_HEADER.match(tagregex))) tagregex = /<[^>]*>/g;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag, skip_root, skip_LC) {\n\tvar z = ({});\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x) { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'&quot;': '\"',\n\t'&apos;': \"'\",\n\t'&gt;': '>',\n\t'&lt;': '<',\n\t'&amp;': '&'\n};\nvar rencoding = evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml = (function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\n\treturn function unescapexml(text) {\n\t\tvar s = text + '', i = s.indexOf(\"<![CDATA[\");\n\t\tif(i == -1) return s.replace(encregex, function($$, $1) { return encodings[$$]||String.fromCharCode(parseInt($1,$$.indexOf(\"x\")>-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t\tvar j = s.indexOf(\"]]>\");\n\t\treturn unescapexml(s.slice(0, i)) + s.slice(i+9,j) + unescapexml(s.slice(j+3));\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f]/g;\nfunction escapexml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\n}\nfunction escapexmltag(text){ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"<br/>\").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"&#x\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr = (function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$,$1) { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str) { return str.replace(entregex,entrepl); };\n})();\nvar xlml_unfixstr = (function() {\n\treturn function xlml_unfixstr(str) { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\&#10;\"); };\n})();\n\nfunction parsexmlbool(value) {\n\tswitch(value) {\n\t\tcase 1: case true: case '1': case 'true': case 'TRUE': return true;\n\t\t/* case '0': case 'false': case 'FALSE':*/\n\t\tdefault: return false;\n\t}\n}\n\nvar utf8read = function utf8reada(orig) {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n};\n\nvar utf8write = function(orig) {\n\tvar out = [], i = 0, c = 0, d = 0;\n\twhile(i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tswitch(true) {\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\n\t\t\tcase c < 2048:\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t\t\tbreak;\n\t\t\tcase c >= 55296 && c < 57344:\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t}\n\t}\n\treturn out.join(\"\");\n};\n\nif(has_buf) {\n\tvar utf8readb = function utf8readb(data) {\n\t\tvar out = Buffer.alloc(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\t\tfor(i = 0; i < data.length; i+=j) {\n\t\t\tj = 1;\n\t\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\t\telse { j = 4;\n\t\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t\t}\n\t\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t\t}\n\t\treturn out.slice(0,k).toString('ucs2');\n\t};\n\tvar corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\n\tif(utf8read(corpus) == utf8readb(corpus)) utf8read = utf8readb;\n\tvar utf8readc = function utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); };\n\tif(utf8read(corpus) == utf8readc(corpus)) utf8read = utf8readc;\n\n\tutf8write = function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); };\n}\n\n// matches <foo>...</foo> extracts content\nvar matchtag = (function() {\n\tvar mtcache = ({});\n\treturn function matchtag(f,g) {\n\t\tvar t = f+\"|\"+(g||\"\");\n\t\tif(mtcache[t]) return mtcache[t];\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([\\\\s\\\\S]*?)</(?:\\\\w+:)?'+f+'>',((g||\"\"))));\n\t};\n})();\n\nvar htmldecode = (function() {\n\tvar entities = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt',   '>'], ['lt',   '<'], ['amp',  '&']\n\t].map(function(x) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\n\treturn function htmldecode(str) {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/[\\t\\n\\r ]+$/,\"\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\s+</g,\"<\")\n\t\t\t\t// Replace remaining new lines and spaces with space\n\t\t\t\t.replace(/[\\t\\n\\r ]+/g, \" \")\n\t\t\t\t// Replace <br> tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtregex = (function(){ var vt_cache = {};\n\treturn function vt_regex(bt) {\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\n\t\treturn (vt_cache[bt] = new RegExp(\"<(?:vt:)?\" + bt + \">([\\\\s\\\\S]*?)</(?:vt:)?\" + bt + \">\", 'g') );\n};})();\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^>]*)>([\\s\\S]*)</;\nfunction parseVector(data, opts) {\n\tvar h = parsexmltag(data);\n\n\tvar matches = data.match(vtregex(h.baseType))||[];\n\tvar res = [];\n\tif(matches.length != h.size) {\n\t\tif(opts.WTF) throw new Error(\"unexpected vector length \" + matches.length + \" != \" + h.size);\n\t\treturn res;\n\t}\n\tmatches.forEach(function(x) {\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\n\t\tif(v) res.push({v:utf8read(v[2]), t:v[1]});\n\t});\n\treturn res;\n}\n\nvar wtregex = /(^\\s|\\s$|\\n)/;\nfunction writetag(f,g) { return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f + '>'; }\n\nfunction wxt_helper(h) { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f,g,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f : \"/\") + '>';}\n\nfunction write_w3cdtf(d, t) { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s, xlsx) {\n\tswitch(typeof s) {\n\t\tcase 'string':\n\t\t\tvar o = writextag('vt:lpwstr', escapexml(s));\n\t\t\tif(xlsx) o = o.replace(/&quot;/g, \"_x0022_\");\n\t\t\treturn o;\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nvar XMLNS = ({\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n});\n\nXMLNS.main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nvar XLMLNS = ({\n\t'o':    'urn:schemas-microsoft-com:office:office',\n\t'x':    'urn:schemas-microsoft-com:office:excel',\n\t'ss':   'urn:schemas-microsoft-com:office:spreadsheet',\n\t'dt':   'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\n\t'mv':   'http://macVmlSchemaUri',\n\t'v':    'urn:schemas-microsoft-com:vml',\n\t'html': 'http://www.w3.org/TR/REC-html40'\n});\nfunction read_double_le(b, idx) {\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tvar m = (b[idx+6]&0x0f);\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n}\n\nfunction write_double_le(b, v, idx) {\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\n\tvar av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n}\n\nvar __toBuffer = function(bufs) { var x=[],w=10240; for(var i=0;i<bufs[0].length;++i) if(bufs[0][i]) for(var j=0,L=bufs[0][i].length;j<L;j+=w) x.push.apply(x, bufs[0][i].slice(j,j+w)); return x; };\nvar ___toBuffer = __toBuffer;\nvar __utf16le = function(b,s,e) { var ss=[]; for(var i=s; i<e; i+=2) ss.push(String.fromCharCode(__readUInt16LE(b,i))); return ss.join(\"\").replace(chr0,''); };\nvar ___utf16le = __utf16le;\nvar __hexlify = function(b,s,l) { var ss=[]; for(var i=s; i<s+l; ++i) ss.push((\"0\" + b[i].toString(16)).slice(-2)); return ss.join(\"\"); };\nvar ___hexlify = __hexlify;\nvar __utf8 = function(b,s,e) { var ss=[]; for(var i=s; i<e; i++) ss.push(String.fromCharCode(__readUInt8(b,i))); return ss.join(\"\"); };\nvar ___utf8 = __utf8;\nvar __lpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar ___lpstr = __lpstr;\nvar __cpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar ___cpstr = __cpstr;\nvar __lpwstr = function(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar ___lpwstr = __lpwstr;\nvar __lpp4, ___lpp4;\n__lpp4 = ___lpp4 = function lpp4_(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar ___8lpp4 = __8lpp4;\nvar __double, ___double;\n__double = ___double = function(b, idx) { return read_double_le(b, idx);};\nvar is_buf = function is_buf_a(a) { return Array.isArray(a); };\n\nif(has_buf) {\n\t__utf16le = function(b,s,e) { if(!Buffer.isBuffer(b)) return ___utf16le(b,s,e); return b.toString('utf16le',s,e).replace(chr0,'')/*.replace(chr1,'!')*/; };\n\t__hexlify = function(b,s,l) { return Buffer.isBuffer(b) ? b.toString('hex',s,s+l) : ___hexlify(b,s,l); };\n\t__lpstr = function lpstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = function cpstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___cpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = function lpp4_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = function lpp4_8b(b, i) { if(!Buffer.isBuffer(b)) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__utf8 = function utf8_b(b, s, e) { return (Buffer.isBuffer(b)) ? b.toString('utf8',s,e) : ___utf8(b,s,e); };\n\t__toBuffer = function(bufs) { return (bufs[0].length > 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0]) : ___toBuffer(bufs);};\n\tbconcat = function(bufs) { return Buffer.isBuffer(bufs[0]) ? Buffer.concat(bufs) : [].concat.apply([], bufs); };\n\t__double = function double_(b, i) { if(Buffer.isBuffer(b)) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a); };\n}\n\n/* from js-xls */\nif(typeof cptable !== 'undefined') {\n\t__utf16le = function(b,s,e) { return cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b,s,e) { return cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(current_ansi, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__cpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n\t__lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\n\nvar __readUInt8 = function(b, idx) { return b[idx]; };\nvar __readUInt16LE = function(b, idx) { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b, idx) { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b, idx) { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b, idx) { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b, idx) { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size, t) {\n\tvar o=\"\", oI, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\tif(typeof cptable !== 'undefined') o = cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\n\t\t\tsize = 2 * size; break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 +  __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 +  __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t\tif(typeof cptable !== 'undefined') {\n\t\t\t\to = cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nvar __writeUInt32LE = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nvar __writeInt32LE  = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nvar __writeUInt16LE = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t, val, f) {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\nfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs') {\n\t\tif(typeof cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\nfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cppayload = cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cppayload[0];\n\t\t\t}\n\t\t} else {\nval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\nfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t}\n\t\tsize = val.length;\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\nthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\nvar end = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\n\t\t\t\tvar cc = val.charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else  switch(t) {\n\t\tcase  1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase  2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase  3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase  4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase  8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr, fld) {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos) {\n\tblob.l = pos;\n\tblob.read_shift = ReadShift;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length) { blob.l += length; }\n\nfunction new_buf(sz) {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb, opts) {\n\tif(!data) return;\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\tvar L = data.length, RT = 0, tgt = 0;\n\twhile(data.l < L) {\n\t\tRT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\ttgt = data.l + length;\n\t\tvar d = (R.f||parsenoop)(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R.n, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array() {\n\tvar bufs = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz) {\n\t\tvar o = (new_buf(sz));\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tif(!curbuf) return;\n\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\n\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz) {\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn __toBuffer([bufs]);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\n\n\treturn ({ next:next, push:push, end:end, _bufs:bufs });\n}\n\nfunction write_record(ba, type, payload, length) {\n\tvar t = +XLSBRE[type], l;\n\tif(isNaN(t)) return; // TODO: throw something here?\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell, tgt, opts) {\n\tvar out = dup(cell);\n\tif(tgt.s) {\n\t\tif(out.cRel) out.c += tgt.s.c;\n\t\tif(out.rRel) out.r += tgt.s.r;\n\t} else {\n\t\tif(out.cRel) out.c += tgt.c;\n\t\tif(out.rRel) out.r += tgt.r;\n\t}\n\tif(!opts || opts.biff < 12) {\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\n\t}\n\treturn out;\n}\n\nfunction shift_range_xls(cell, range, opts) {\n\tvar out = dup(cell);\n\tout.s = shift_cell_xls(out.s, range.s, opts);\n\tout.e = shift_cell_xls(out.e, range.s, opts);\n\treturn out;\n}\n\nfunction encode_cell_xls(c, biff) {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts) {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nvar OFFCRYPTO = {};\n\nvar make_offcrypto = function(O, _crypto) {\n\tvar crypto;\n\tif(typeof _crypto !== 'undefined') crypto = _crypto;\n\telse if(typeof require !== 'undefined') {\n\t\ttry { crypto = require('crypto'); }\n\t\tcatch(e) { crypto = null; }\n\t}\n\n\tO.rc4 = function(key, data) {\n\t\tvar S = new Array(256);\n\t\tvar c = 0, i = 0, j = 0, t = 0;\n\t\tfor(i = 0; i != 256; ++i) S[i] = i;\n\t\tfor(i = 0; i != 256; ++i) {\n\t\t\tj = (j + S[i] + (key[i%key.length]).charCodeAt(0))&255;\n\t\t\tt = S[i]; S[i] = S[j]; S[j] = t;\n\t\t}\n\t\t// $FlowIgnore\n\t\ti = j = 0; var out = new_raw_buf(data.length);\n\t\tfor(c = 0; c != data.length; ++c) {\n\t\t\ti = (i + 1)&255;\n\t\t\tj = (j + S[i])%256;\n\t\t\tt = S[i]; S[i] = S[j]; S[j] = t;\n\t\t\tout[c] = (data[c] ^ S[(S[i]+S[j])&255]);\n\t\t}\n\t\treturn out;\n\t};\n\n\tO.md5 = function(hex) {\n\t\tif(!crypto) throw new Error(\"Unsupported crypto\");\n\t\treturn crypto.createHash('md5').update(hex).digest('hex');\n\t};\n};\n/*global crypto:true */\nmake_offcrypto(OFFCRYPTO, typeof crypto !== \"undefined\" ? crypto : undefined);\n\nfunction decode_row(rowstr) { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row) { return \"\" + (row + 1); }\nfunction fix_row(cstr) { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr) { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr) { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col) { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr) { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr) { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr) { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\n//function decode_cell(cstr) { var splt = split_cell(cstr); return { c:decode_col(splt[0]), r:decode_row(splt[1]) }; }\nfunction decode_cell(cstr) {\n\tvar R = 0, C = 0;\n\tfor(var i = 0; i < cstr.length; ++i) {\n\t\tvar cc = cstr.charCodeAt(i);\n\t\tif(cc >= 48 && cc <= 57) R = 10 * R + (cc - 48);\n\t\telse if(cc >= 65 && cc <= 90) C = 26 * C + (cc - 64);\n\t}\n\treturn { c: C - 1, r:R - 1 };\n}\n//function encode_cell(cell) { return encode_col(cell.c) + encode_row(cell.r); }\nfunction encode_cell(cell) {\n\tvar col = cell.c + 1;\n\tvar s=\"\";\n\tfor(; col; col=((col-1)/26)|0) s = String.fromCharCode(((col-1)%26) + 65) + s;\n\treturn s + (cell.r + 1);\n}\nfunction decode_range(range) {\n\tvar idx = range.indexOf(\":\");\n\tif(idx == -1) return { s: decode_cell(range), e: decode_cell(range) };\n\treturn { s: decode_cell(range.slice(0, idx)), e: decode_cell(range.slice(idx + 1)) };\n}\nfunction encode_range(cs,ce) {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\nreturn encode_range(cs.s, cs.e);\n\t}\nif(typeof cs !== 'string') cs = encode_cell((cs));\n\tif(typeof ce !== 'string') ce = encode_cell((ce));\nreturn cs == ce ? cs : cs + \":\" + ce;\n}\n\nfunction safe_decode_range(range) {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || range.charCodeAt(++i) === 58) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell, v) {\n\tvar q = (cell.t == 'd' && v instanceof Date);\n\tif(cell.z != null) try { return (cell.w = SSF.format(cell.z, q ? datenum(v) : v)); } catch(e) { }\n\ttry { return (cell.w = SSF.format((cell.XF||{}).numFmtId||(q ? 14 : 0),  q ? datenum(v) : v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell, v, o) {\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_workbook(sheet, opts) {\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\n\tvar sheets = {}; sheets[n] = sheet;\n\treturn { SheetNames: [n], Sheets: sheets };\n}\n\nfunction sheet_add_aoa(_ws, data, opts) {\n\tvar o = opts || {};\n\tvar dense = _ws ? Array.isArray(_ws) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws = _ws || (dense ? ([]) : ({}));\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t\tif(!ws[\"!ref\"]) ws[\"!ref\"] = \"A1:A1\";\n\t}\n\tvar range = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}});\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.s.c = _range.s.c;\n\t\trange.s.r = _range.s.r;\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) range.e.r = _R = _range.e.r + 1;\n\t}\n\tfor(var R = 0; R != data.length; ++R) {\n\t\tif(!data[R]) continue;\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\n\t\tfor(var C = 0; C != data[R].length; ++C) {\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\n\t\t\tvar cell = ({v: data[R][C] });\n\t\t\tvar __R = _R + R, __C = _C + C;\n\t\t\tif(range.s.r > __R) range.s.r = __R;\n\t\t\tif(range.s.c > __C) range.s.c = __C;\n\t\t\tif(range.e.r < __R) range.e.r = __R;\n\t\t\tif(range.e.c < __C) range.e.c = __C;\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\n\t\t\telse {\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\n\t\t\t\tif(cell.v === null) { if(cell.f) cell.t = 'n'; else if(!o.sheetStubs) continue; else cell.t = 'z'; }\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\t\tcell.z = o.dateNF || SSF._table[14];\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF.format(cell.z, datenum(cell.v)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v); cell.w = SSF.format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(!ws[__R]) ws[__R] = [];\n\t\t\t\tif(ws[__R][__C] && ws[__R][__C].z) cell.z = ws[__R][__C].z;\n\t\t\t\tws[__R][__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_cell(({c:__C,r:__R}));\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(range.s.c < 10000000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data, opts) { return sheet_add_aoa(null, data, opts); }\n\nfunction write_UInt32LE(x, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(4, x);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data) {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(4 + 2 * data.length); }\n\to.write_shift(4, data.length);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.91 */\n//function parse_LPWideString(data) {\n//\tvar cchCharacters = data.read_shift(2);\n//\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, \"utf16le\");\n//}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length) {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = ({ t: str, h: str });\n\tif ((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor (var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = [{ ich: 0, ifnt: 0 }];\n\t//if((flags & 2) !== 0) { /* fExtStr */\n\t//\t/* TODO: phonetic string */\n\t//}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str, o) {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(15 + 4 * str.t.length); }\n\to.write_shift(1, 0);\n\twrite_XLWideString(str.t, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n/* [MS-XLSB] 2.4.328 BrtCommentText (RichStr w/1 run) */\nvar parse_BrtCommentText = parse_RichStr;\nfunction write_BrtCommentText(str, o) {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(23 + 4 * str.t.length); }\n\to.write_shift(1, 1);\n\twrite_XLWideString(str.t, o);\n\to.write_shift(4, 1);\n\twrite_StrRun({ ich: 0, ifnt: 0 }, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data) {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) << 16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c: col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell, o) {\n\tif (o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.5.21 */\nvar parse_XLSBCodeName = parse_XLWideString;\nvar write_XLSBCodeName = write_XLWideString;\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data) {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(127); }\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.165 */\nvar parse_XLNameWideString = parse_XLWideString;\n//var write_XLNameWideString = write_XLWideString;\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLS] 2.5.217 ; [MS-XLSB] 2.5.122 */\nfunction parse_RkNumber(data) {\n\tvar b = data.slice(data.l, data.l + 4);\n\tvar fX100 = (b[0] & 1), fInt = (b[0] & 2);\n\tdata.l += 4;\n\tb[0] &= 0xFC; // b[0] &= ~3;\n\tvar RK = fInt === 0 ? __double([0, 0, 0, 0, b[0], b[1], b[2], b[3]], 0) : __readInt32LE(b, 0) >> 2;\n\treturn fX100 ? (RK / 100) : RK;\n}\nfunction write_RkNumber(data, o) {\n\tif (o == null) o = new_buf(4);\n\tvar fX100 = 0, fInt = 0, d100 = data * 100;\n\tif ((data == (data | 0)) && (data >= -(1 << 29)) && (data < (1 << 29))) { fInt = 1; }\n\telse if ((d100 == (d100 | 0)) && (d100 >= -(1 << 29)) && (d100 < (1 << 29))) { fInt = 1; fX100 = 1; }\n\tif (fInt) o.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));\n\telse throw new Error(\"unsupported RkNumber \" + data); // TODO\n}\n\n\n/* [MS-XLSB] 2.5.117 RfX */\nfunction parse_RfX(data ) {\n\tvar cell = ({ s: {}, e: {} });\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\nfunction write_RfX(r, o) {\n\tif (!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n/* [MS-XLSB] 2.5.155 UncheckedSqRfX */\n//function parse_UncheckedSqRfX(data) {\n//\tvar cnt = data.read_shift(4);\n//\tvar out = [];\n//\tfor(var i = 0; i < cnt; ++i) {\n//\t\tvar rng = parse_UncheckedRfX(data);\n//\t\tout.push(encode_range(rng));\n//\t}\n//\treturn out.join(\",\");\n//}\n//function write_UncheckedSqRfX(sqrfx) {\n//\tvar parts = sqrfx.split(/\\s*,\\s*/);\n//\tvar o = new_buf(4); o.write_shift(4, parts.length);\n//\tvar out = [o];\n//\tparts.forEach(function(rng) {\n//\t\tout.push(write_UncheckedRfX(safe_decode_range(rng)));\n//\t});\n//\treturn bconcat(out);\n//}\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data) { return data.read_shift(8, 'f'); }\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch (xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif (icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif (nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif (!o) o = new_buf(8);\n\tif (!color || color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif (color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if (color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif (nTS > 0) nTS *= 32767;\n\telse if (nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif (!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif (typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0, 2), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(2, 4), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(4, 6), 16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif (!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w) {\n\t// $FlowIgnore\n\tvar ClipFmt = { 2: \"BITMAP\", 3: \"METAFILEPICT\", 8: \"DIB\", 14: \"ENHMETAFILE\" };\n\tvar m = o.read_shift(4);\n\tswitch (m) {\n\t\tcase 0x00000000: return \"\";\n\t\tcase 0xffffffff: case 0xfffffffe: return ClipFmt[o.read_shift(4)] || \"\";\n\t}\n\tif (m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\to.l -= 4;\n\treturn o.read_shift(0, w == 1 ? \"lpstr\" : \"lpwstr\");\n}\nfunction parse_ClipboardFormatOrAnsiString(o) { return parse_ClipboardFormatOrString(o, 1); }\nfunction parse_ClipboardFormatOrUnicodeString(o) { return parse_ClipboardFormatOrString(o, 2); }\n\n/* [MS-OLEPS] 2.2 PropertyType */\n//var VT_EMPTY    = 0x0000;\n//var VT_NULL     = 0x0001;\nvar VT_I2       = 0x0002;\nvar VT_I4       = 0x0003;\n//var VT_R4       = 0x0004;\n//var VT_R8       = 0x0005;\n//var VT_CY       = 0x0006;\n//var VT_DATE     = 0x0007;\n//var VT_BSTR     = 0x0008;\n//var VT_ERROR    = 0x000A;\nvar VT_BOOL     = 0x000B;\nvar VT_VARIANT  = 0x000C;\n//var VT_DECIMAL  = 0x000E;\n//var VT_I1       = 0x0010;\n//var VT_UI1      = 0x0011;\n//var VT_UI2      = 0x0012;\nvar VT_UI4      = 0x0013;\n//var VT_I8       = 0x0014;\n//var VT_UI8      = 0x0015;\n//var VT_INT      = 0x0016;\n//var VT_UINT     = 0x0017;\nvar VT_LPSTR    = 0x001E;\n//var VT_LPWSTR   = 0x001F;\nvar VT_FILETIME = 0x0040;\nvar VT_BLOB     = 0x0041;\n//var VT_STREAM   = 0x0042;\n//var VT_STORAGE  = 0x0043;\n//var VT_STREAMED_Object  = 0x0044;\n//var VT_STORED_Object    = 0x0045;\n//var VT_BLOB_Object      = 0x0046;\nvar VT_CF       = 0x0047;\n//var VT_CLSID    = 0x0048;\n//var VT_VERSIONED_STREAM = 0x0049;\nvar VT_VECTOR   = 0x1000;\n//var VT_ARRAY    = 0x2000;\n\nvar VT_STRING   = 0x0050; // 2.3.3.1.11 VtString\nvar VT_USTR     = 0x0051; // 2.3.3.1.12 VtUnalignedString\nvar VT_CUSTOM   = [VT_STRING, VT_USTR];\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n0x01: { n: 'CodePage', t: VT_I2 },\n0x02: { n: 'Category', t: VT_STRING },\n0x03: { n: 'PresentationFormat', t: VT_STRING },\n0x04: { n: 'ByteCount', t: VT_I4 },\n0x05: { n: 'LineCount', t: VT_I4 },\n0x06: { n: 'ParagraphCount', t: VT_I4 },\n0x07: { n: 'SlideCount', t: VT_I4 },\n0x08: { n: 'NoteCount', t: VT_I4 },\n0x09: { n: 'HiddenCount', t: VT_I4 },\n0x0a: { n: 'MultimediaClipCount', t: VT_I4 },\n0x0b: { n: 'ScaleCrop', t: VT_BOOL },\n0x0c: { n: 'HeadingPairs', t: VT_VECTOR | VT_VARIANT },\n0x0d: { n: 'TitlesOfParts', t: VT_VECTOR | VT_LPSTR },\n0x0e: { n: 'Manager', t: VT_STRING },\n0x0f: { n: 'Company', t: VT_STRING },\n0x10: { n: 'LinksUpToDate', t: VT_BOOL },\n0x11: { n: 'CharacterCount', t: VT_I4 },\n0x13: { n: 'SharedDoc', t: VT_BOOL },\n0x16: { n: 'HyperlinksChanged', t: VT_BOOL },\n0x17: { n: 'AppVersion', t: VT_I4, p: 'version' },\n0x18: { n: 'DigSig', t: VT_BLOB },\n0x1A: { n: 'ContentType', t: VT_STRING },\n0x1B: { n: 'ContentStatus', t: VT_STRING },\n0x1C: { n: 'Language', t: VT_STRING },\n0x1D: { n: 'Version', t: VT_STRING },\n0xFF: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n0x01: { n: 'CodePage', t: VT_I2 },\n0x02: { n: 'Title', t: VT_STRING },\n0x03: { n: 'Subject', t: VT_STRING },\n0x04: { n: 'Author', t: VT_STRING },\n0x05: { n: 'Keywords', t: VT_STRING },\n0x06: { n: 'Comments', t: VT_STRING },\n0x07: { n: 'Template', t: VT_STRING },\n0x08: { n: 'LastAuthor', t: VT_STRING },\n0x09: { n: 'RevNumber', t: VT_STRING },\n0x0A: { n: 'EditTime', t: VT_FILETIME },\n0x0B: { n: 'LastPrinted', t: VT_FILETIME },\n0x0C: { n: 'CreatedDate', t: VT_FILETIME },\n0x0D: { n: 'ModifiedDate', t: VT_FILETIME },\n0x0E: { n: 'PageCount', t: VT_I4 },\n0x0F: { n: 'WordCount', t: VT_I4 },\n0x10: { n: 'CharCount', t: VT_I4 },\n0x11: { n: 'Thumbnail', t: VT_CF },\n0x12: { n: 'Application', t: VT_STRING },\n0x13: { n: 'DocSecurity', t: VT_I4 },\n0xFF: {}\n};\n\n/* [MS-OLEPS] 2.18 */\nvar SpecialProperties = {\n0x80000000: { n: 'Locale', t: VT_UI4 },\n0x80000003: { n: 'Behavior', t: VT_UI4 },\n0x72627262: {}\n};\n\n(function() {\n\tfor(var y in SpecialProperties) if(Object.prototype.hasOwnProperty.call(SpecialProperties, y))\n\tDocSummaryPIDDSI[y] = SummaryPIDSI[y] = SpecialProperties[y];\n})();\n\nvar DocSummaryRE = evert_key(DocSummaryPIDDSI, \"n\");\nvar SummaryRE = evert_key(SummaryPIDSI, \"n\");\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n0x0001: \"US\", // United States\n0x0002: \"CA\", // Canada\n0x0003: \"\", // Latin America (except Brazil)\n0x0007: \"RU\", // Russia\n0x0014: \"EG\", // Egypt\n0x001E: \"GR\", // Greece\n0x001F: \"NL\", // Netherlands\n0x0020: \"BE\", // Belgium\n0x0021: \"FR\", // France\n0x0022: \"ES\", // Spain\n0x0024: \"HU\", // Hungary\n0x0027: \"IT\", // Italy\n0x0029: \"CH\", // Switzerland\n0x002B: \"AT\", // Austria\n0x002C: \"GB\", // United Kingdom\n0x002D: \"DK\", // Denmark\n0x002E: \"SE\", // Sweden\n0x002F: \"NO\", // Norway\n0x0030: \"PL\", // Poland\n0x0031: \"DE\", // Germany\n0x0034: \"MX\", // Mexico\n0x0037: \"BR\", // Brazil\n0x003d: \"AU\", // Australia\n0x0040: \"NZ\", // New Zealand\n0x0042: \"TH\", // Thailand\n0x0051: \"JP\", // Japan\n0x0052: \"KR\", // Korea\n0x0054: \"VN\", // Viet Nam\n0x0056: \"CN\", // China\n0x005A: \"TR\", // Turkey\n0x0069: \"JS\", // Ramastan\n0x00D5: \"DZ\", // Algeria\n0x00D8: \"MA\", // Morocco\n0x00DA: \"LY\", // Libya\n0x015F: \"PT\", // Portugal\n0x0162: \"IS\", // Iceland\n0x0166: \"FI\", // Finland\n0x01A4: \"CZ\", // Czech Republic\n0x0376: \"TW\", // Taiwan\n0x03C1: \"LB\", // Lebanon\n0x03C2: \"JO\", // Jordan\n0x03C3: \"SY\", // Syria\n0x03C4: \"IQ\", // Iraq\n0x03C5: \"KW\", // Kuwait\n0x03C6: \"SA\", // Saudi Arabia\n0x03CB: \"AE\", // United Arab Emirates\n0x03CC: \"IL\", // Israel\n0x03CE: \"QA\", // Qatar\n0x03D5: \"IR\", // Iran\n0xFFFF: \"US\"  // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr) { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\n/* [MS-XLSB] 2.5.75 Icv */\nvar _XLSIcv = rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0xFFFFFF, /* 0x40 icvForeground ?? */\n\t0x000000, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = dup(_XLSIcv);\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n0x00: \"#NULL!\",\n0x07: \"#DIV/0!\",\n0x0F: \"#VALUE!\",\n0x17: \"#REF!\",\n0x1D: \"#NAME?\",\n0x24: \"#NUM!\",\n0x2A: \"#N/A\",\n0x2B: \"#GETTING_DATA\",\n0xFF: \"#WTF?\"\n};\nvar RBErr = evert_num(BErr);\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary <SpreadsheetML> */\n/* 14.2 Part Summary <DrawingML> */\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type/*{[string]:string}*/ = ({\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* Metadata */\n\t\"application/vnd.ms-excel.sheetMetadata\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"TODO\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Theme Override */\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"vba\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n});\n\nvar CT_LIST = (function(){\n\tvar o = {\n\t\tworkbooks: {\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\n\t\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t\t},\n\t\tstrs: { /* Shared Strings */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t\t},\n\t\tcomments: { /* Comments */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.comments\"\n\t\t},\n\t\tsheets: { /* Worksheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t\t},\n\t\tcharts: { /* Chartsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\n\t\t},\n\t\tdialogs: { /* Dialogsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\n\t\t},\n\t\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\n\t\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\n\t\t},\n\t\tstyles: { /* Styles */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t\t}\n\t};\n\tkeys(o).forEach(function(k) { [\"xlsm\", \"xlam\"].forEach(function(v) { if(!o[k][v]) o[k][v] = o[k].xlsx; }); });\n\tkeys(o).forEach(function(k){ keys(o[k]).forEach(function(v) { ct2type[o[k][v]] = k; }); });\n\treturn o;\n})();\n\nvar type2ct/*{[string]:Array<string>}*/ = evert_arr(ct2type);\n\nXMLNS.CT = 'http://schemas.openxmlformats.org/package/2006/content-types';\n\nfunction new_ct() {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [],\n\t\tTODO:[], xmlns: \"\" });\n}\n\nfunction parse_ct(data) {\n\tvar ct = new_ct();\n\tif(!data || !data.match) return ct;\n\tvar ctext = {};\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<Types': ct.xmlns = y['xmlns' + (y[0].match(/<(\\w+):/)||[\"\",\"\"])[1] ]; break;\n\t\t\tcase '<Default': ctext[y.Extension] = y.ContentType; break;\n\t\t\tcase '<Override':\n\t\t\t\tif(ct[ct2type[y.ContentType]] !== undefined) ct[ct2type[y.ContentType]].push(y.PartName);\n\t\t\t\tbreak;\n\t\t}\n\t});\n\tif(ct.xmlns !== XMLNS.CT) throw new Error(\"Unknown Namespace: \" + ct.xmlns);\n\tct.calcchain = ct.calcchains.length > 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nvar CTYPE_XML_ROOT = writextag('Types', null, {\n\t'xmlns': XMLNS.CT,\n\t'xmlns:xsd': XMLNS.xsd,\n\t'xmlns:xsi': XMLNS.xsi\n});\n\nvar CTYPE_DEFAULTS = [\n\t['xml', 'application/xml'],\n\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t/* from test files */\n\t['bmp', 'image/bmp'],\n\t['png', 'image/png'],\n\t['gif', 'image/gif'],\n\t['emf', 'image/x-emf'],\n\t['wmf', 'image/x-wmf'],\n\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t['pdf', 'application/pdf'],\n\t['rels', type2ct.rels[0]]\n].map(function(x) {\n\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n});\n\nfunction write_ct(ct, opts) {\n\tvar o = [], v;\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (CTYPE_XML_ROOT);\n\to = o.concat(CTYPE_DEFAULTS);\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType || 'xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType || 'xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('drawings');\n\tif(o.length>2){ o[o.length] = ('</Types>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tCXML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",\n\tCXMLP: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n});\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file) {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data, currentFilePath) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '<Relationship') {\n\t\t\tvar rel = {}; rel.Type = y.Type; rel.Target = y.Target; rel.Id = y.Id; rel.TargetMode = y.TargetMode;\n\t\t\tvar canonictarget = y.TargetMode === 'External' ? y.Target : resolve_path(y.Target, currentFilePath);\n\t\t\trels[canonictarget] = rel;\n\t\t\thash[y.Id] = rel;\n\t\t}\n\t});\n\trels[\"!id\"] = hash;\n\treturn rels;\n}\n\nXMLNS.RELS = 'http://schemas.openxmlformats.org/package/2006/relationships';\n\nvar RELS_ROOT = writextag('Relationships', null, {\n\t//'xmlns:ns0': XMLNS.RELS,\n\t'xmlns': XMLNS.RELS\n});\n\n/* TODO */\nfunction write_rels(rels) {\n\tvar o = [XML_HEADER, RELS_ROOT];\n\tkeys(rels['!id']).forEach(function(rid) {\n\t\to[o.length] = (writextag('Relationship', null, rels['!id'][rid]));\n\t});\n\tif(o.length>2){ o[o.length] = ('</Relationships>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nvar RELS_EXTERN = [RELS.HLINK, RELS.XPATH, RELS.XMISS];\nfunction add_rels(rels, rId, f, type, relobj, targetmode) {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(rId < 0) for(rId = 1; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if(RELS_EXTERN.indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\n/* Open Document Format for Office Applications (OpenDocument) Version 1.2 */\n/* Part 3 Section 4 Manifest File */\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n\tvar str = xlml_normalize(d);\n\tvar Rn;\n\tvar FEtag;\n\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'manifest': break; // 4.2 <manifest:manifest>\n\t\tcase 'file-entry': // 4.3 <manifest:file-entry>\n\t\t\tFEtag = parsexmltag(Rn[0], false);\n\t\t\tif(FEtag.path == '/' && FEtag.type !== CT_ODS) throw new Error(\"This OpenDocument is not a spreadsheet\");\n\t\t\tbreak;\n\t\tcase 'encryption-data': // 4.4 <manifest:encryption-data>\n\t\tcase 'algorithm': // 4.5 <manifest:algorithm>\n\t\tcase 'start-key-generation': // 4.6 <manifest:start-key-generation>\n\t\tcase 'key-derivation': // 4.7 <manifest:key-derivation>\n\t\t\tthrow new Error(\"Unsupported ODS Encryption\");\n\t\tdefault: if(opts && opts.WTF) throw Rn;\n\t}\n}\n\nfunction write_manifest(manifest) {\n\tvar o = [XML_HEADER];\n\to.push('<manifest:manifest xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\" manifest:version=\"1.2\">\\n');\n\to.push('  <manifest:file-entry manifest:full-path=\"/\" manifest:version=\"1.2\" manifest:media-type=\"application/vnd.oasis.opendocument.spreadsheet\"/>\\n');\n\tfor(var i = 0; i < manifest.length; ++i) o.push('  <manifest:file-entry manifest:full-path=\"' + manifest[i][0] + '\" manifest:media-type=\"' + manifest[i][1] + '\"/>\\n');\n\to.push('</manifest:manifest>');\n\treturn o.join(\"\");\n}\n\n/* Part 3 Section 6 Metadata Manifest File */\nfunction write_rdf_type(file, res, tag) {\n\treturn [\n\t\t'  <rdf:Description rdf:about=\"' + file + '\">\\n',\n\t\t'    <rdf:type rdf:resource=\"http://docs.oasis-open.org/ns/office/1.2/meta/' + (tag || \"odf\") + '#' + res + '\"/>\\n',\n\t\t'  </rdf:Description>\\n'\n\t].join(\"\");\n}\nfunction write_rdf_has(base, file) {\n\treturn [\n\t\t'  <rdf:Description rdf:about=\"' + base + '\">\\n',\n\t\t'    <ns0:hasPart xmlns:ns0=\"http://docs.oasis-open.org/ns/office/1.2/meta/pkg#\" rdf:resource=\"' + file + '\"/>\\n',\n\t\t'  </rdf:Description>\\n'\n\t].join(\"\");\n}\nfunction write_rdf(rdf) {\n\tvar o = [XML_HEADER];\n\to.push('<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\\n');\n\tfor(var i = 0; i != rdf.length; ++i) {\n\t\to.push(write_rdf_type(rdf[i][0], rdf[i][1]));\n\t\to.push(write_rdf_has(\"\",rdf[i][0]));\n\t}\n\to.push(write_rdf_type(\"\",\"Document\", \"pkg\"));\n\to.push('</rdf:RDF>');\n\treturn o.join(\"\");\n}\n/* TODO: pull properties */\nvar write_meta_ods = (function() {\n\tvar payload = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><office:document-meta xmlns:office=\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\" xmlns:meta=\"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" office:version=\"1.2\"><office:meta><meta:generator>Sheet' + 'JS ' + XLSX.version + '</meta:generator></office:meta></office:document-meta>';\n\treturn function wmo() {\n\t\treturn payload;\n\t};\n})();\n\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nXMLNS.CORE_PROPS = \"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\";\nRELS.CORE_PROPS  = 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties';\n\nvar CORE_PROPS_REGEX = (function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].slice(0,f[0].indexOf(\":\")) +\":)\"+ f[0].slice(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nvar CORE_PROPS_XML_ROOT = writextag('cp:coreProperties', null, {\n\t//'xmlns': XMLNS.CORE_PROPS,\n\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t'xmlns:dc': XMLNS.dc,\n\t'xmlns:dcterms': XMLNS.dcterms,\n\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t'xmlns:xsi': XMLNS.xsi\n});\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, CORE_PROPS_XML_ROOT], p = {};\n\tif(!cp && !opts.Props) return o.join(\"\");\n\n\tif(cp) {\n\t\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t}\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\n\t\tif(v === true) v = \"1\";\n\t\telse if(v === false) v = \"0\";\n\t\telse if(typeof v == \"number\") v = String(v);\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\n\t}\n\tif(o.length>2){ o[o.length] = ('</cp:coreProperties>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nXMLNS.EXT_PROPS = \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\";\nRELS.EXT_PROPS  = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties';\n\nvar PseudoPropsPairs = [\n\t\"Worksheets\",  \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"Листы\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"גליונות עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"名前付き一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne områder\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (data.match(matchtag(f[0]))||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": if(xml) p[f[1]] = unescapexml(xml); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nvar EXT_PROPS_XML_ROOT = writextag('Properties', null, {\n\t'xmlns': XMLNS.EXT_PROPS,\n\t'xmlns:vt': XMLNS.vt\n});\n\nfunction write_ext_props(cp) {\n\tvar o = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (EXT_PROPS_XML_ROOT);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', '<vt:lpstr>Worksheets</vt:lpstr>')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"<vt:lpstr>\" + escapexml(s) + \"</vt:lpstr>\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = ('</Properties>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nXMLNS.CUST_PROPS = \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\";\nRELS.CUST_PROPS  = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties';\n\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data, opts) {\n\tvar p = {}, name = \"\";\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<Properties': break;\n\t\t\tcase '<property': name = unescapexml(y.name); break;\n\t\t\tcase '</property>': name = null; break;\n\t\t\tdefault: if (x.indexOf('<vt:') === 0) {\n\t\t\t\tvar toks = x.split('>');\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = parseDate(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.slice(0,2) === \"</\") {/* empty */\n\t\t\t} else if(opts.WTF) throw new Error(x);\n\t\t}\n\t}\n\treturn p;\n}\n\nvar CUST_PROPS_XML_ROOT = writextag('Properties', null, {\n\t'xmlns': XMLNS.CUST_PROPS,\n\t'xmlns:vt': XMLNS.vt\n});\n\nfunction write_cust_props(cp) {\n\tvar o = [XML_HEADER, CUST_PROPS_XML_ROOT];\n\tif(!cp) return o.join(\"\");\n\tvar pid = 1;\n\tkeys(cp).forEach(function custprop(k) { ++pid;\n\t\to[o.length] = (writextag('property', write_vt(cp[k], true), {\n\t\t\t'fmtid': '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}',\n\t\t\t'pid': pid,\n\t\t\t'name': escapexml(k)\n\t\t}));\n\t});\n\tif(o.length>2){ o[o.length] = '</Properties>'; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* Common Name -> XLML Name */\nvar XLMLDocPropsMap = {\n\tTitle: 'Title',\n\tSubject: 'Subject',\n\tAuthor: 'Author',\n\tKeywords: 'Keywords',\n\tComments: 'Description',\n\tLastAuthor: 'LastAuthor',\n\tRevNumber: 'Revision',\n\tApplication: 'AppName',\n\t/* TotalTime: 'TotalTime', */\n\tLastPrinted: 'LastPrinted',\n\tCreatedDate: 'Created',\n\tModifiedDate: 'LastSaved',\n\t/* Pages */\n\t/* Words */\n\t/* Characters */\n\tCategory: 'Category',\n\t/* PresentationFormat */\n\tManager: 'Manager',\n\tCompany: 'Company',\n\t/* Guid */\n\t/* HyperlinkBase */\n\t/* Bytes */\n\t/* Lines */\n\t/* Paragraphs */\n\t/* CharactersWithSpaces */\n\tAppVersion: 'Version',\n\n\tContentStatus: 'ContentStatus', /* NOTE: missing from schema */\n\tIdentifier: 'Identifier', /* NOTE: missing from schema */\n\tLanguage: 'Language' /* NOTE: missing from schema */\n};\nvar evert_XLMLDPM = evert(XLMLDocPropsMap);\n\nfunction xlml_set_prop(Props, tag, val) {\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o = [];\n\tkeys(XLMLDocPropsMap).map(function(m) {\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(CORE_PROPS[i][1] == m) return CORE_PROPS[i];\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(EXT_PROPS[i][1] == m) return EXT_PROPS[i];\n\t\tthrow m;\n\t}).forEach(function(p) {\n\t\tif(Props[p[1]] == null) return;\n\t\tvar m = opts && opts.Props && opts.Props[p[1]] != null ? opts.Props[p[1]] : Props[p[1]];\n\t\tswitch(p[2]) {\n\t\t\tcase 'date': m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"Z\"); break;\n\t\t}\n\t\tif(typeof m == 'number') m = String(m);\n\t\telse if(m === true || m === false) { m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"\");\n\t\to.push(writetag(XLMLDocPropsMap[p[1]] || p[1], m));\n\t});\n\treturn writextag('DocumentProperties', o.join(\"\"), {xmlns:XLMLNS.o });\n}\nfunction xlml_write_custprops(Props, Custprops) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o = [];\n\tif(Props) keys(Props).forEach(function(k) {\nif(!Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\nif(!Object.prototype.hasOwnProperty.call(Custprops, k)) return;\n\t\tif(Props && Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '</' + T + '>';\n}\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\nfunction write_FILETIME(time) {\n\tvar date = (typeof time == \"string\") ? new Date(Date.parse(time)) : time;\n\tvar t = date.getTime() / 1000 + 11644473600;\n\tvar l = t % Math.pow(2,32), h = (t - l) / Math.pow(2,32);\n\tl *= 1e7; h *= 1e7;\n\tvar w = (l / Math.pow(2,32)) | 0;\n\tif(w > 0) { l = l % Math.pow(2,32); h += w; }\n\tvar o = new_buf(8); o.write_shift(4, l); o.write_shift(4, h); return o;\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad) {\n\tvar start = blob.l;\n\tvar str = blob.read_shift(0, 'lpstr-cp');\n\tif(pad) while((blob.l - start) & 3) ++blob.l;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t, pad) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob) {\n\tvar length = blob.read_shift(4);\n\tvar ret = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.10 VtVecUnalignedLpstr */\nfunction parse_VtVecUnalignedLpstr(blob) {\n\treturn parse_VtVecUnalignedLpstrValue(blob);\n}\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i != cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OSHARED] 2.3.3.1.15 VtVecHeadingPair */\nfunction parse_VtVecHeadingPair(blob) {\n\t// NOTE: When invoked, wType & padding were already consumed\n\treturn parse_VtVecHeadingPairValue(blob);\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict = ({});\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t\tif(CodePage === 0x4B0 && (len % 2)) blob.l += 2;\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tblob.l += size;\n\tif((size & 3) > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size + 3 - (o.Size - 1) % 4;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type, _opts) {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t/*, 4*/).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPair(blob);\n\t\tcase 0x101E /*VT_LPSTR*/: return parse_VtVecUnalignedLpstr(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type, value) {\n\tvar o = new_buf(4), p = new_buf(4);\n\to.write_shift(4, type == 0x50 ? 0x1F : type);\n\tswitch(type) {\n\t\tcase 0x03 /*VT_I4*/: p.write_shift(-4, value); break;\n\t\tcase 0x05 /*VT_I4*/: p = new_buf(8); p.write_shift(8, value, 'f'); break;\n\t\tcase 0x0B /*VT_BOOL*/: p.write_shift(4, value ? 0x01 : 0x00); break;\n\t\tcase 0x40 /*VT_FILETIME*/:  p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\np = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tp.write_shift(4, value.length + 1);\n\t\t\tp.write_shift(0, value, \"dbcs\");\n\t\t\twhile(p.l != p.length) p.write_shift(1, 0);\n\t\t\tbreak;\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + value);\n\t}\n\treturn bconcat([o, p]);\n}\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj = ({});\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tProps.sort(function(x,y) { return x[1] - y[1]; });\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l+2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif((!PIDSI||i==0) && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + (\"0000\" + String(PropH[piddsi.n] & 0xFFFF)).slice(-4);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 874:\n\t\t\t\tcase 932:\n\t\t\t\tcase 936:\n\t\t\t\tcase 949:\n\t\t\t\tcase 950:\n\t\t\t\tcase 1250:\n\t\t\t\tcase 1251:\n\t\t\t\tcase 1253:\n\t\t\t\tcase 1254:\n\t\t\t\tcase 1255:\n\t\t\t\tcase 1256:\n\t\t\t\tcase 1257:\n\t\t\t\tcase 1258:\n\t\t\t\tcase 10000:\n\t\t\t\tcase 1200:\n\t\t\t\tcase 1201:\n\t\t\t\tcase 1252:\n\t\t\t\tcase 65000: case -536:\n\t\t\t\tcase 65001: case -535:\n\t\t\t\t\tset_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2));\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\nvar XLSPSSkip = [ \"CodePage\", \"Thumbnail\", \"_PID_LINKBASE\", \"_PID_HLINKS\", \"SystemIdentifier\", \"FMTID\" ].concat(PseudoPropsPairs);\nfunction guess_property_type(val) {\n\tswitch(typeof val) {\n\t\tcase \"boolean\": return 0x0B;\n\t\tcase \"number\": return ((val|0)==val) ? 0x03 : 0x05;\n\t\tcase \"string\": return 0x1F;\n\t\tcase \"object\": if(val instanceof Date) return 0x40; break;\n\t}\n\treturn -1;\n}\nfunction write_PropertySet(entries, RE, PIDSI) {\n\tvar hdr = new_buf(8), piao = [], prop = [];\n\tvar sz = 8, i = 0;\n\n\tvar pr = new_buf(8), pio = new_buf(8);\n\tpr.write_shift(4, 0x0002);\n\tpr.write_shift(4, 0x04B0);\n\tpio.write_shift(4, 0x0001);\n\tprop.push(pr); piao.push(pio);\n\tsz += 8 + pr.length;\n\n\tif(!RE) {\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, 0);\n\t\tpiao.unshift(pio);\n\n\t\tvar bufs = [new_buf(4)];\n\t\tbufs[0].write_shift(4, entries.length);\n\t\tfor(i = 0; i < entries.length; ++i) {\n\t\t\tvar value = entries[i][0];\n\t\t\tpr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tpr.write_shift(4, i+2);\n\t\t\tpr.write_shift(4, value.length + 1);\n\t\t\tpr.write_shift(0, value, \"dbcs\");\n\t\t\twhile(pr.l != pr.length) pr.write_shift(1, 0);\n\t\t\tbufs.push(pr);\n\t\t}\n\t\tpr = bconcat(bufs);\n\t\tprop.unshift(pr);\n\t\tsz += 8 + pr.length;\n\t}\n\n\tfor(i = 0; i < entries.length; ++i) {\n\t\tif(RE && !RE[entries[i][0]]) continue;\n\t\tif(XLSPSSkip.indexOf(entries[i][0]) > -1) continue;\n\t\tif(entries[i][1] == null) continue;\n\n\t\tvar val = entries[i][1], idx = 0;\n\t\tif(RE) {\n\t\t\tidx = +RE[entries[i][0]];\n\t\t\tvar pinfo = (PIDSI)[idx];\n\t\t\tif(pinfo.p == \"version\" && typeof val == \"string\") {\nvar arr = val.split(\".\");\n\t\t\t\tval = ((+arr[0])<<16) + ((+arr[1])||0);\n\t\t\t}\n\t\t\tpr = write_TypedPropertyValue(pinfo.t, val);\n\t\t} else {\n\t\t\tvar T = guess_property_type(val);\n\t\t\tif(T == -1) { T = 0x1F; val = String(val); }\n\t\t\tpr = write_TypedPropertyValue(T, val);\n\t\t}\n\t\tprop.push(pr);\n\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, !RE ? 2+i : idx);\n\t\tpiao.push(pio);\n\n\t\tsz += 8 + pr.length;\n\t}\n\n\tvar w = 8 * (prop.length + 1);\n\tfor(i = 0; i < prop.length; ++i) { piao[i].write_shift(4, w); w += prop[i].length; }\n\thdr.write_shift(4, sz);\n\thdr.write_shift(4, prop.length);\n\treturn bconcat([hdr].concat(piao).concat(prop));\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI, clsid) {\n\tvar blob = file.content;\n\tif(!blob) return ({});\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;\n\tblob.chk('feff', 'Byte Order: ');\n\n\t/*var vers = */blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tvar CLSID = blob.read_shift(16);\n\tif(CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error(\"Bad PropertySet CLSID \" + CLSID);\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw new Error(\"Unrecognized #Sets: \" + NumSets);\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw new Error(\"Length mismatch: \" + Offset0 + \" !== \" + blob.l);\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = ({ SystemIdentifier: SystemIdentifier });\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(Offset1 - blob.l == 2) blob.l += 2;\n\tif(blob.l !== Offset1) throw new Error(\"Length mismatch 2: \" + blob.l + \" !== \" + Offset1);\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) {/* empty */}\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\nfunction write_PropertySetStream(entries, clsid, RE, PIDSI, entries2, clsid2) {\n\tvar hdr = new_buf(entries2 ? 68 : 48);\n\tvar bufs = [hdr];\n\thdr.write_shift(2, 0xFFFE);\n\thdr.write_shift(2, 0x0000); /* TODO: type 1 props */\n\thdr.write_shift(4, 0x32363237);\n\thdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, \"hex\");\n\thdr.write_shift(4, (entries2 ? 2 : 1));\n\thdr.write_shift(16, clsid, \"hex\");\n\thdr.write_shift(4, (entries2 ? 68 : 48));\n\tvar ps0 = write_PropertySet(entries, RE, PIDSI);\n\tbufs.push(ps0);\n\n\tif(entries2) {\n\t\tvar ps1 = write_PropertySet(entries2, null, null);\n\t\thdr.write_shift(16, clsid2, \"hex\");\n\t\thdr.write_shift(4, 68 + ps0.length);\n\t\tbufs.push(ps1);\n\t}\n\treturn bconcat(bufs);\n}\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\nfunction writezeroes(n, o) { if(!o) o=new_buf(n); for(var j=0; j<n; ++j) o.write_shift(1, 0); return o; }\n\nfunction parslurp(blob, length, cb) {\n\tvar arr = [], target = blob.l + length;\n\twhile(blob.l < target) arr.push(cb(blob, target - blob.l));\n\tif(target !== blob.l) throw new Error(\"Slurp error\");\n\treturn arr;\n}\n\nfunction parsebool(blob, length) { return blob.read_shift(length) === 0x1; }\nfunction writebool(v, o) { if(!o) o=new_buf(2); o.write_shift(2, +!!v); return o; }\n\nfunction parseuint16(blob) { return blob.read_shift(2, 'u'); }\nfunction writeuint16(v, o) { if(!o) o=new_buf(2); o.write_shift(2, v); return o; }\nfunction parseuint16a(blob, length) { return parslurp(blob,length,parseuint16);}\n\n/* --- 2.5 Structures --- */\n\n/* [MS-XLS] 2.5.10 Bes (boolean or error) */\nfunction parse_Bes(blob) {\n\tvar v = blob.read_shift(1), t = blob.read_shift(1);\n\treturn t === 0x01 ? v : v === 0x01;\n}\nfunction write_Bes(v, t, o) {\n\tif(!o) o = new_buf(2);\n\to.write_shift(1, +v);\n\to.write_shift(1, ((t == 'e') ? 1 : 0));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.240 ShortXLUnicodeString */\nfunction parse_ShortXLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff >= 12 ? 2 : 1);\n\tvar encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(!opts || opts.biff == 8 ) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { encoding = 'dbcs-cont'; }\n\t} else if(opts.biff == 12) {\n\t\tencoding = 'wstr';\n\t}\n\tif(opts.biff >= 2 && opts.biff <= 5) encoding = 'cpstr';\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar /*fHighByte = flags & 0x1,*/ fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun = 0, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = width == 2 ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"<t>\" + z.t + \"</t>\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\nfunction write_XLUnicodeRichExtendedString(xlstr) {\n\tvar str = (xlstr.t||\"\"), nfmts = 1;\n\n\tvar hdr = new_buf(3 + (nfmts > 1 ? 2 : 0));\n\thdr.write_shift(2, str.length);\n\thdr.write_shift(1, (nfmts > 1 ? 0x08 : 0x00) | 0x01);\n\tif(nfmts > 1) hdr.write_shift(2, nfmts);\n\n\tvar otext = new_buf(2 * str.length);\n\totext.write_shift(2 * str.length, str, 'utf16le');\n\n\tvar out = [hdr, otext];\n\n\treturn bconcat(out);\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob) {\n\tvar flags = blob.read_shift(1);\n\tblob.l++;\n\tvar accel = blob.read_shift(2);\n\tblob.l += 2;\n\treturn [flags, accel];\n}\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nfunction parse_URLMoniker(blob) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n}\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nfunction parse_FileMoniker(blob) {\n\tblob.l += 2; //var cAnti = blob.read_shift(2);\n\tvar ansiPath = blob.read_shift(0, 'lpstr-ansi');\n\tblob.l += 2; //var endServer = blob.read_shift(2);\n\tif(blob.read_shift(2) != 0xDEAD) throw new Error(\"Bad FileMoniker\");\n\tvar sz = blob.read_shift(4);\n\tif(sz === 0) return ansiPath.replace(/\\\\/g,\"/\");\n\tvar bytes = blob.read_shift(4);\n\tif(blob.read_shift(2) != 3) throw new Error(\"Bad FileMoniker\");\n\tvar unicodePath = blob.read_shift(bytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn unicodePath;\n}\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nfunction parse_HyperlinkMoniker(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw new Error(\"Unsupported Moniker \" + clsid);\n\t}\n}\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nfunction parse_HyperlinkString(blob) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length) {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, Loc=\"\", guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) Loc = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob/*, 8*/);\n\tblob.l = end;\n\tvar target = targetFrameName||moniker||oleMoniker||\"\";\n\tif(target && Loc) target+=\"#\"+Loc;\n\tif(!target) target = \"#\" + Loc;\n\tvar out = ({Target:target});\n\tif(guid) out.guid = guid;\n\tif(fileTime) out.time = fileTime;\n\tif(displayName) out.Tooltip = displayName;\n\treturn out;\n}\nfunction write_Hyperlink(hl) {\n\tvar out = new_buf(512), i = 0;\n\tvar Target = hl.Target;\n\tvar F = Target.indexOf(\"#\") > -1 ? 0x1f : 0x17;\n\tswitch(Target.charAt(0)) { case \"#\": F=0x1c; break; case \".\": F&=~2; break; }\n\tout.write_shift(4,2); out.write_shift(4, F);\n\tvar data = [8,6815827,6619237,4849780,83]; for(i = 0; i < data.length; ++i) out.write_shift(4, data[i]);\n\tif(F == 0x1C) {\n\t\tTarget = Target.slice(1);\n\t\tout.write_shift(4, Target.length + 1);\n\t\tfor(i = 0; i < Target.length; ++i) out.write_shift(2, Target.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t} else if(F & 0x02) {\n\t\tdata = \"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tout.write_shift(4, 2*(Target.length + 1));\n\t\tfor(i = 0; i < Target.length; ++i) out.write_shift(2, Target.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t} else {\n\t\tdata = \"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar P = 0;\n\t\twhile(Target.slice(P*3,P*3+3)==\"../\"||Target.slice(P*3,P*3+3)==\"..\\\\\") ++P;\n\t\tout.write_shift(2, P);\n\t\tout.write_shift(4, Target.length + 1);\n\t\tfor(i = 0; i < Target.length; ++i) out.write_shift(1, Target.charCodeAt(i) & 0xFF);\n\t\tout.write_shift(1, 0);\n\t\tout.write_shift(2, 0xFFFF);\n\t\tout.write_shift(2, 0xDEAD);\n\t\tfor(i = 0; i < 6; ++i) out.write_shift(4, 0);\n\t}\n\treturn out.slice(0, out.l);\n}\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* [MS-XLS] 2.5.19 */\nfunction parse_XLSCell(blob) {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ixfe = blob.read_shift(2);\n\treturn ({r:rw, c:col, ixfe:ixfe});\n}\nfunction write_XLSCell(R, C, ixfe, o) {\n\tif(!o) o = new_buf(6);\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, ixfe||0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* [MS-XLS] 2.5.344 */\nfunction parse_XTI(blob, length, opts) {\n\tvar w = opts.biff > 8 ? 4 : 2;\n\tvar iSupBook = blob.read_shift(w), itabFirst = blob.read_shift(w,'i'), itabLast = blob.read_shift(w,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* [MS-XLS] 2.5.218 */\nfunction parse_RkRec(blob) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\treturn [ixfe, RK];\n}\n\n/* [MS-XLS] 2.5.1 */\nfunction parse_AddinUdf(blob, length, opts) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length, opts);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw new Error(\"Malformed AddinUdf: padding = \" + l + \" != \" + cb);\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* [MS-XLS] 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\nfunction write_Ref8U(r, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(2, r.s.r);\n\to.write_shift(2, r.e.r);\n\to.write_shift(2, r.s.c);\n\to.write_shift(2, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.211 */\nfunction parse_RefU(blob) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* [MS-XLS] 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* [MS-XLS] 2.5.143 */\nfunction parse_FtCmo(blob) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* [MS-XLS] 2.5.149 */\nfunction parse_FtNts(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.142 */\nfunction parse_FtCf(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.140 - 2.5.154 and friends */\nfunction parse_FtSkip(blob) { blob.l += 2; blob.l += blob.read_shift(2); }\nvar FtTab = {\n0x00: parse_FtSkip,      /* FtEnd */\n0x04: parse_FtSkip,      /* FtMacro */\n0x05: parse_FtSkip,      /* FtButton */\n0x06: parse_FtSkip,      /* FtGmo */\n0x07: parse_FtCf,        /* FtCf */\n0x08: parse_FtSkip,      /* FtPioGrbit */\n0x09: parse_FtSkip,      /* FtPictFmla */\n0x0A: parse_FtSkip,      /* FtCbls */\n0x0B: parse_FtSkip,      /* FtRbo */\n0x0C: parse_FtSkip,      /* FtSbs */\n0x0D: parse_FtNts,       /* FtNts */\n0x0E: parse_FtSkip,      /* FtSbsFmla */\n0x0F: parse_FtSkip,      /* FtGboData */\n0x10: parse_FtSkip,      /* FtEdoData */\n0x11: parse_FtSkip,      /* FtRboData */\n0x12: parse_FtSkip,      /* FtCblsData */\n0x13: parse_FtSkip,      /* FtLbsData */\n0x14: parse_FtSkip,      /* FtCblsFmla */\n0x15: parse_FtCmo\n};\nfunction parse_FtArray(blob, length) {\n\tvar tgt = blob.l + length;\n\tvar fts = [];\n\twhile(blob.l < tgt) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts.push(FtTab[ft](blob, tgt - blob.l));\n\t\t} catch(e) { blob.l = tgt; return fts; }\n\t}\n\tif(blob.l != tgt) blob.l = tgt; //throw new Error(\"bad Object Ft-sequence\");\n\treturn fts;\n}\n\n/* --- 2.4 Records --- */\n\n/* [MS-XLS] 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {BIFFVer:0, dt:0};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tif(length >= 2) { o.dt = blob.read_shift(2); blob.l -= 2; }\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0400: /* BIFF4 */\n\t\tcase 0x0300: /* BIFF3 */\n\t\tcase 0x0200: /* BIFF2 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: if(length > 6) throw new Error(\"Unexpected BIFF Ver \" + o.BIFFVer);\n\t}\n\n\tblob.read_shift(length);\n\treturn o;\n}\nfunction write_BOF(wb, t, o) {\n\tvar h = 0x0600, w = 16;\n\tswitch(o.bookType) {\n\t\tcase 'biff8': break;\n\t\tcase 'biff5': h = 0x0500; w = 8; break;\n\t\tcase 'biff4': h = 0x0004; w = 6; break;\n\t\tcase 'biff3': h = 0x0003; w = 6; break;\n\t\tcase 'biff2': h = 0x0002; w = 4; break;\n\t\tcase 'xla': break;\n\t\tdefault: throw new Error(\"unsupported BIFF version\");\n\t}\n\tvar out = new_buf(w);\n\tout.write_shift(2, h);\n\tout.write_shift(2, t);\n\tif(w > 4) out.write_shift(2, 0x7262);\n\tif(w > 6) out.write_shift(2, 0x07CD);\n\tif(w > 8) {\n\t\tout.write_shift(2, 0xC009);\n\t\tout.write_shift(2, 0x0001);\n\t\tout.write_shift(2, 0x0706);\n\t\tout.write_shift(2, 0x0000);\n\t}\n\treturn out;\n}\n\n\n/* [MS-XLS] 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tif((blob.read_shift(2))!==0x04b0){/* empty */}\n\treturn 0x04b0;\n}\n\n\n/* [MS-XLS] 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString2(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\nfunction write_WriteAccess(s, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(b8 ? 112 : 54);\n\to.write_shift(opts.biff == 8 ? 2 : 1, 7);\n\tif(b8) o.write_shift(1, 0);\n\to.write_shift(4, 0x33336853);\n\to.write_shift(4, (0x00534A74 | (b8 ? 0 : 0x20000000)));\n\twhile(o.l < o.length) o.write_shift(1, (b8 ? 0 : 32));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.351 */\nfunction parse_WsBool(blob, length, opts) {\n\tvar flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);\n\treturn { fDialog: flags & 0x10 };\n}\n\n/* [MS-XLS] 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) & 0x03;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\nfunction write_BoundSheet8(data, opts) {\n\tvar w = (!opts || opts.biff >= 8 ? 2 : 1);\n\tvar o = new_buf(8 + w * data.name.length);\n\to.write_shift(4, data.pos);\n\to.write_shift(1, data.hs || 0);\n\to.write_shift(1, data.dt);\n\to.write_shift(1, data.name.length);\n\tif(opts.biff >= 8) o.write_shift(1, 1);\n\to.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le');\n\tvar out = o.slice(0, o.l);\n\tout.l = o.l; return out;\n}\n\n/* [MS-XLS] 2.4.265 TODO */\nfunction parse_SST(blob, length) {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs = ([]);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\nfunction write_SST(sst, opts) {\n\tvar header = new_buf(8);\n\theader.write_shift(4, sst.Count);\n\theader.write_shift(4, sst.Unique);\n\tvar strs = [];\n\tfor(var j = 0; j < sst.length; ++j) strs[j] = write_XLUnicodeRichExtendedString(sst[j], opts);\n\tvar o = bconcat([header].concat(strs));\no.parts = [header.length].concat(strs.map(function(str) { return str.length; }));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({});\n\tz.r = blob.read_shift(2);\n\tz.c = blob.read_shift(2);\n\tz.cnt = blob.read_shift(2) - z.c;\n\tvar miyRw = blob.read_shift(2);\n\tblob.l += 4; // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.l += 3; // reserved(8), ixfe(12), flags(4)\n\tif(flags & 0x07) z.level = flags & 0x07;\n\t// collapsed: flags & 0x10\n\tif(flags & 0x20) z.hidden = true;\n\tif(flags & 0x40) z.hpt = miyRw / 20;\n\treturn z;\n}\n\n\n/* [MS-XLS] 2.4.125 */\nfunction parse_ForceFullCalculation(blob) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw new Error(\"Invalid Future Record \" + header.type);\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\n\n\n\n/* [MS-XLS] 2.4.215 rt */\nfunction parse_RecalcId(blob) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* [MS-XLS] 2.4.87 */\nfunction parse_DefaultRowHeight(blob, length, opts) {\n\tvar f = 0;\n\tif(!(opts && opts.biff == 2)) {\n\t\tf = blob.read_shift(2);\n\t}\n\tvar miyRw = blob.read_shift(2);\n\tif((opts && opts.biff == 2)) {\n\t\tf = 1 - (miyRw >> 15); miyRw &= 0x7fff;\n\t}\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* [MS-XLS] 2.4.345 TODO */\nfunction parse_Window1(blob) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\nfunction write_Window1() {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 5) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob) {\n\tvar cell = parse_XLSCell(blob);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\nfunction write_LabelSst(R, C, v, os ) {\n\tvar o = new_buf(10);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(4, v);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) blob.l++;\n\tvar str = parse_XLUnicodeString(blob, target - blob.l, opts);\n\tcell.val = str;\n\treturn cell;\n}\nfunction write_Label(R, C, v, os, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(2, v.length);\n\tif(b8) o.write_shift(1, 1);\n\to.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs');\n\treturn o;\n}\n\n\n/* [MS-XLS] 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar numFmtId = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [numFmtId, fmtstr];\n}\nfunction write_Format(i, f, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? (3 + f.length) : (5 + 2 * f.length));\n\to.write_shift(2, i);\n\to.write_shift((b5 ? 1 : 2), f.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * f.length, f, (b5 ? 'sbcs' : 'utf16le'));\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(out.l == null) out.l = out.length;\n\treturn out;\n}\nvar parse_BIFF2Format = parse_XLUnicodeString2;\n\n/* [MS-XLS] 2.4.90 */\nfunction parse_Dimensions(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w);\n\tvar c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l = end;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\nfunction write_Dimensions(range, opts) {\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar o = new_buf(2*w + 6);\n\to.write_shift(w, range.s.r);\n\to.write_shift(w, range.e.r + 1);\n\to.write_shift(2, range.s.c);\n\to.write_shift(2, range.e.c + 1);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.220 */\nfunction parse_RK(blob) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* [MS-XLS] 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw new Error(\"MulRK read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw new Error(\"MulRK length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n/* [MS-XLS] 2.4.174 */\nfunction parse_MulBlank(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar ixfes = [];\n\twhile(blob.l < target) ixfes.push(blob.read_shift(2));\n\tif(blob.l !== target) throw new Error(\"MulBlank read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(ixfes.length != lastcol - col + 1) throw new Error(\"MulBlank length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, ixfe:ixfes};\n}\n\n/* [MS-XLS] 2.5.20 2.5.249 TODO: interpret values here */\nfunction parse_CellStyleXF(blob, length, style, opts) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\n\tif(!opts.cellStyles) return o;\n\to.alc = a & 0x07;\n\to.fWrap = (a >> 3) & 0x01;\n\to.alcV = (a >> 4) & 0x07;\n\to.fJustLast = (a >> 7) & 0x01;\n\to.trot = (a >> 8) & 0xFF;\n\to.cIndent = (a >> 16) & 0x0F;\n\to.fShrinkToFit = (a >> 20) & 0x01;\n\to.iReadOrder = (a >> 22) & 0x02;\n\to.fAtrNum = (a >> 26) & 0x01;\n\to.fAtrFnt = (a >> 27) & 0x01;\n\to.fAtrAlc = (a >> 28) & 0x01;\n\to.fAtrBdr = (a >> 29) & 0x01;\n\to.fAtrPat = (a >> 30) & 0x01;\n\to.fAtrProt = (a >> 31) & 0x01;\n\n\to.dgLeft = b & 0x0F;\n\to.dgRight = (b >> 4) & 0x0F;\n\to.dgTop = (b >> 8) & 0x0F;\n\to.dgBottom = (b >> 12) & 0x0F;\n\to.icvLeft = (b >> 16) & 0x7F;\n\to.icvRight = (b >> 23) & 0x7F;\n\to.grbitDiag = (b >> 30) & 0x03;\n\n\to.icvTop = c & 0x7F;\n\to.icvBottom = (c >> 7) & 0x7F;\n\to.icvDiag = (c >> 14) & 0x7F;\n\to.dgDiag = (c >> 21) & 0x0F;\n\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\to.fsxButton = (d >> 14) & 0x01;\n\treturn o;\n}\n//function parse_CellXF(blob, length, opts) {return parse_CellStyleXF(blob,length,0, opts);}\n//function parse_StyleXF(blob, length, opts) {return parse_CellStyleXF(blob,length,1, opts);}\n\n/* [MS-XLS] 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length, opts) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.numFmtId = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle, opts);\n\treturn o;\n}\nfunction write_XF(data, ixfeP, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? 16 : 20);\n\to.write_shift(2, 0);\n\tif(data.style) {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, 0xFFF4);\n\t} else {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, (ixfeP<<4));\n\t}\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\tif(!b5) o.write_shift(4, 0);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.134 */\nfunction parse_Guts(blob) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw new Error(\"Bad Gutters: \" + out.join(\"|\"));\n\treturn out;\n}\nfunction write_Guts(guts) {\n\tvar o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(2, guts[0] ? guts[0] + 1 : 0);\n\to.write_shift(2, guts[1] ? guts[1] + 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.24 */\nfunction parse_BoolErr(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\nfunction write_BoolErr(R, C, v, os, opts, t) {\n\tvar o = new_buf(8);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Bes(v, t, o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.180 Number */\nfunction parse_Number(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\nfunction write_Number(R, C, v, os) {\n\tvar o = new_buf(14);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Xnum(v, o);\n\treturn o;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* [MS-XLS] 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\topts.sbcch = cch;\n\tif(cch == 0x0401 || cch == 0x3A01) return [cch, ctab];\n\tif(cch < 0x01 || cch >0xff) throw new Error(\"Unexpected SupBook type: \"+cch);\n\tvar virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\t/* TODO: 2.5.277 Virtual Path */\n\tvar rgst = [];\n\twhile(end > blob.l) rgst.push(parse_XLUnicodeString(blob));\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* [MS-XLS] 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = ({\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t});\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2, opts);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\tif(typeof body === \"string\") o.Name = body;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.150 TODO */\nvar XLSLblBuiltIn = [\n\t\"_xlnm.Consolidate_Area\",\n\t\"_xlnm.Auto_Open\",\n\t\"_xlnm.Auto_Close\",\n\t\"_xlnm.Extract\",\n\t\"_xlnm.Database\",\n\t\"_xlnm.Criteria\",\n\t\"_xlnm.Print_Area\",\n\t\"_xlnm.Print_Titles\",\n\t\"_xlnm.Recorder\",\n\t\"_xlnm.Data_Form\",\n\t\"_xlnm.Auto_Activate\",\n\t\"_xlnm.Auto_Deactivate\",\n\t\"_xlnm.Sheet_Title\",\n\t\"_xlnm._FilterDatabase\"\n];\nfunction parse_Lbl(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar itab = 0;\n\tif(!opts || opts.biff >= 5) {\n\t\tif(opts.biff != 5) blob.l += 2;\n\t\titab = blob.read_shift(2);\n\t\tif(opts.biff == 5) blob.l += 2;\n\t\tblob.l += 4;\n\t}\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tif(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];\n\tvar npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;\n\tvar rgce = target == blob.l || cce === 0 ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\titab: itab,\n\t\trgce: rgce\n\t};\n}\n\n/* [MS-XLS] 2.4.106 TODO: verify filename encoding */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);\n\tvar o = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);\n\twhile(len-- !== 0) o.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));\n\t\t// [iSupBook, itabFirst, itabLast];\n\tif(blob.l != target) throw new Error(\"Bad ExternSheet: \" + blob.l + \" != \" + target);\n\treturn o;\n}\nfunction parse_BIFF5ExternSheet(blob, length, opts) {\n\tif(blob[blob.l + 1] == 0x03) blob[blob.l]++;\n\tvar o = parse_ShortXLUnicodeString(blob, length, opts);\n\treturn o.charCodeAt(0) == 0x03 ? o.slice(1) : o;\n}\n\n/* [MS-XLS] 2.4.176 TODO: check older biff */\nfunction parse_NameCmt(blob, length, opts) {\n\tif(opts.biff < 8) { blob.l += length; return; }\n\tvar cchName = blob.read_shift(2);\n\tvar cchComment = blob.read_shift(2);\n\tvar name = parse_XLUnicodeStringNoCch(blob, cchName, opts);\n\tvar comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);\n\treturn [name, comment];\n}\n\n/* [MS-XLS] 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse, ref];\n}\n\n/* [MS-XLS] 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\t/* TODO: fAlwaysCalc */\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l ++; length -= 7; break;\n\t\tcase 3: case 4: blob.l += 2; length -= 8; break;\n\t\tdefault: blob.l += 6; length -= 12;\n\t}\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* [MS-XLS] 2.4.173 */\nfunction parse_MTRSettings(blob) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* [MS-XLS] 2.5.186 TODO: BIFF5 */\nfunction parse_NoteSh(blob, length, opts) {\n\tif(opts.biff < 8) return;\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\tif(opts.biff < 8) blob.read_shift(1);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* [MS-XLS] 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\n\n/* [MS-XLS] 2.4.168 */\nfunction parse_MergeCells(blob, length) {\n\tvar merges = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges) {\n\tvar o = new_buf(2 + merges.length * 8);\n\to.write_shift(2, merges.length);\n\tfor(var i = 0; i < merges.length; ++i) write_Ref8U(merges[i], o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length, opts) {\n\tif(opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n/* from older spec */\nvar parse_BIFF5OT = [];\nparse_BIFF5OT[0x08] = function(blob, length) {\n\tvar tgt = blob.l + length;\n\tblob.l += 10; // todo\n\tvar cf = blob.read_shift(2);\n\tblob.l += 4;\n\tblob.l += 2; //var cbPictFmla = blob.read_shift(2);\n\tblob.l += 2;\n\tblob.l += 2; //var grbit = blob.read_shift(2);\n\tblob.l += 4;\n\tvar cchName = blob.read_shift(1);\n\tblob.l += cchName; // TODO: stName\n\tblob.l = tgt; // TODO: fmla\n\treturn { fmt:cf };\n};\n\nfunction parse_BIFF5Obj(blob, length, opts) {\n\tblob.l += 4; //var cnt = blob.read_shift(4);\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar grbit = blob.read_shift(2);\n\tblob.l += 2; //var colL = blob.read_shift(2);\n\tblob.l += 2; //var dxL = blob.read_shift(2);\n\tblob.l += 2; //var rwT = blob.read_shift(2);\n\tblob.l += 2; //var dyT = blob.read_shift(2);\n\tblob.l += 2; //var colR = blob.read_shift(2);\n\tblob.l += 2; //var dxR = blob.read_shift(2);\n\tblob.l += 2; //var rwB = blob.read_shift(2);\n\tblob.l += 2; //var dyB = blob.read_shift(2);\n\tblob.l += 2; //var cbMacro = blob.read_shift(2);\n\tblob.l += 6;\n\tlength -= 36;\n\tvar fts = [];\n\tfts.push((parse_BIFF5OT[ot]||parsenoop)(blob, length, opts));\n\treturn { cmo: [id, ot, grbit], ft:fts };\n}\n\n/* [MS-XLS] 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\n\tvar texts = \"\";\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo; // eslint-disable-line no-unused-vars\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts);\n\tvar cchText = blob.read_shift(2);\n\t/*var cbRuns = */blob.read_shift(2);\n\t/*var ifntEmpty = */parseuint16(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw new Error(\"TxO: bad continue record\");\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow new Error(\"cchText: \" + cchText + \" != \" + texts.length);\n\t}\n\n\tblob.l = s + length;\n\t/* [MS-XLS] 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw new Error(\"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText);\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw new Error(\"TxO \" + (s + length) + \", at \" + blob.l);\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts }; }\n}\n\n/* [MS-XLS] 2.4.140 */\nfunction parse_HLink(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n}\nfunction write_HLink(hl) {\n\tvar O = new_buf(24);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tvar clsid = \"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\tfor(var i = 0; i < 16; ++i) O.write_shift(1, parseInt(clsid[i], 16));\n\treturn bconcat([O, write_Hyperlink(hl[1])]);\n}\n\n\n/* [MS-XLS] 2.4.141 */\nfunction parse_HLinkTooltip(blob, length) {\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n}\nfunction write_HLinkTooltip(hl) {\n\tvar TT = hl[1].Tooltip;\n\tvar O = new_buf(10 + 2 * (TT.length + 1));\n\tO.write_shift(2, 0x0800);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tfor(var i = 0; i < TT.length; ++i) O.write_shift(2, TT.charCodeAt(i));\n\tO.write_shift(2, 0);\n\treturn O;\n}\n\n/* [MS-XLS] 2.4.63 */\nfunction parse_Country(blob) {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags});\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n) {\n\tvar out = new_buf(2 * n);\n\tfor(var i = 0; i < n; ++i) out.write_shift(2, i+1);\n\treturn out;\n}\n\nvar parse_Blank = parse_XLSCell; /* [MS-XLS] 2.4.20 Just the cell */\nvar parse_Scl = parseuint16a; /* [MS-XLS] 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* [MS-XLS] 2.4.268 */\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_ImData(blob) {\n\tvar cf = blob.read_shift(2);\n\tvar env = blob.read_shift(2);\n\tvar lcb = blob.read_shift(4);\n\tvar o = {fmt:cf, env:env, len:lcb, data:blob.slice(blob.l,blob.l+lcb)};\n\tblob.l += lcb;\n\treturn o;\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = parse_Xnum(blob, 8);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2NUM(r, c, val) {\n\tvar out = new_buf(15);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(8, val, 'f');\n\treturn out;\n}\n\nfunction parse_BIFF2INT(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = blob.read_shift(2);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2INT(r, c, val) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(2, val);\n\treturn out;\n}\n\nfunction parse_BIFF2STRING(blob) {\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\n/* TODO: convert to BIFF8 font struct */\nfunction parse_BIFF2FONTXTRA(blob, length) {\n\tblob.l += 6; // unknown\n\tblob.l += 2; // font weight \"bls\"\n\tblob.l += 1; // charset\n\tblob.l += 3; // unknown\n\tblob.l += 1; // font family\n\tblob.l += length - 13;\n}\n\n/* TODO: parse rich text runs */\nfunction parse_RString(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar cch = blob.read_shift(2);\n\tvar str = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tblob.l = end;\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n/* from js-harb (C) 2014-present  SheetJS */\nvar DBF = (function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n0x01:   437,           0x02:   850,\n0x03:  1252,           0x04: 10000,\n0x64:   852,           0x65:   866,\n0x66:   865,           0x67:   861,\n0x68:   895,           0x69:   620,\n0x6A:   737,           0x6B:   857,\n0x78:   950,           0x79:   949,\n0x7A:   936,           0x7B:   932,\n0x7C:   874,           0x7D:  1255,\n0x7E:  1256,           0x96: 10007,\n0x97: 10029,           0x98: 10006,\n0xC8:  1250,           0xC9:  1251,\n0xCA:  1254,           0xCB:  1253,\n\n\t/* shapefile DBF extension */\n0x00: 20127,           0x08:   865,\n0x09:   437,           0x0A:   850,\n0x0B:   437,           0x0D:   437,\n0x0E:   850,           0x0F:   437,\n0x10:   850,           0x11:   437,\n0x12:   850,           0x13:   932,\n0x14:   850,           0x15:   437,\n0x16:   850,           0x17:   865,\n0x18:   437,           0x19:   437,\n0x1A:   850,           0x1B:   437,\n0x1C:   863,           0x1D:   850,\n0x1F:   852,           0x22:   852,\n0x23:   852,           0x24:   860,\n0x25:   850,           0x26:   866,\n0x37:   850,           0x40:   852,\n0x4D:   936,           0x4E:   949,\n0x4F:   950,           0x50:   874,\n0x57:  1252,           0x58:  1252,\n0x59:  1252,\n\n0xFF: 16969\n};\nvar dbf_reverse_map = evert({\n0x01:   437,           0x02:   850,\n0x03:  1252,           0x04: 10000,\n0x64:   852,           0x65:   866,\n0x66:   865,           0x67:   861,\n0x68:   895,           0x69:   620,\n0x6A:   737,           0x6B:   857,\n0x78:   950,           0x79:   949,\n0x7A:   936,           0x7B:   932,\n0x7C:   874,           0x7D:  1255,\n0x7E:  1256,           0x96: 10007,\n0x97: 10029,           0x98: 10006,\n0xC8:  1250,           0xC9:  1251,\n0xCA:  1254,           0xCB:  1253,\n0x00: 20127\n});\nvar DBF_SUPPORTED_VERSIONS = [0x02, 0x03, 0x30, 0x31, 0x83, 0x8B, 0x8C, 0xF5];\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts) {\n\tvar out = [];\n\t/* TODO: browser based */\n\tvar d = (new_raw_buf(1));\n\tswitch(opts.type) {\n\t\tcase 'base64': d = s2a(Base64.decode(buf)); break;\n\t\tcase 'binary': d = s2a(buf); break;\n\t\tcase 'buffer':\n\t\tcase 'array': d = buf; break;\n\t}\n\tprep_blob(d, 0);\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = false;\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: case 0x03: break;\n\t\tcase 0x30: vfp = true; memo = true; break;\n\t\tcase 0x31: vfp = true; break;\n\t\tcase 0x83: memo = true; break;\n\t\tcase 0x8B: memo = true; break;\n\t\tcase 0x8C: memo = true; l7 = true; break;\n\t\tcase 0xF5: memo = true; break;\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\tvar /*filedate = new Date(),*/ nrow = 0, fpos = 0;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\t/*filedate = new Date(d.read_shift(1) + 1900, d.read_shift(1) - 1, d.read_shift(1));*/d.l += 3;\n\tif(ft != 0x02) nrow = d.read_shift(4);\n\tif(ft != 0x02) fpos = d.read_shift(2);\n\tvar rlen = d.read_shift(2);\n\n\tvar /*flags = 0,*/ current_cp = 1252;\n\tif(ft != 0x02) {\n\td.l+=16;\n\t/*flags = */d.read_shift(1);\n\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t/* codepage present in FoxPro */\n\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\td.l+=1;\n\n\td.l+=2;\n\t}\n\tif(l7) d.l += 36;\nvar fields = [], field = ({});\n\tvar hend = fpos - 10 - (vfp ? 264 : 0), ww = l7 ? 32 : 11;\n\twhile(ft == 0x02 ? d.l < d.length && d[d.l] != 0x0d: d.l < hend) {\n\t\tfield = ({});\n\t\tfield.name = cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)).replace(/[\\u0000\\r\\n].*$/g,\"\");\n\t\td.l += ww;\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\n\t\tfield.len = d.read_shift(1);\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\n\t\tfield.dec = d.read_shift(1);\n\t\tif(field.name.length) fields.push(field);\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\n\t\tswitch(field.type) {\n\t\t\tcase 'B': // VFP Double\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'G': // General\n\t\t\tcase 'P': // Picture\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'C': // character\n\t\t\tcase 'D': // date\n\t\t\tcase 'F': // floating point\n\t\t\tcase 'I': // long\n\t\t\tcase 'L': // boolean\n\t\t\tcase 'M': // memo\n\t\t\tcase 'N': // number\n\t\t\tcase 'O': // double\n\t\t\tcase 'T': // datetime\n\t\t\tcase 'Y': // currency\n\t\t\tcase '0': // VFP _NullFlags\n\t\t\tcase '@': // timestamp\n\t\t\tcase '+': // autoincrement\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\telse if(ft == 0x02) d.l = 0x209;\n\tif(ft != 0x02) {\n\t\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\t\td.l = fpos;\n\t}\n\t/* data */\n\tvar R = 0, C = 0;\n\tout[0] = [];\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\n\twhile(nrow-- > 0) {\n\t\tif(d[d.l] === 0x2A) { d.l+=rlen; continue; }\n\t\t++d.l;\n\t\tout[++R] = []; C = 0;\n\t\tfor(C = 0; C != fields.length; ++C) {\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\n\t\t\tprep_blob(dd, 0);\n\t\t\tvar s = cptable.utils.decode(current_cp, dd);\n\t\t\tswitch(fields[C].type) {\n\t\t\t\tcase 'C':\n\t\t\t\t\tout[R][C] = cptable.utils.decode(current_cp, dd);\n\t\t\t\t\tout[R][C] = out[R][C].trim();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(s.length === 8) out[R][C] = new Date(+s.slice(0,4), +s.slice(4,6)-1, +s.slice(6,8));\n\t\t\t\t\telse out[R][C] = s;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\n\t\t\t\tcase 'L': switch(s.toUpperCase()) {\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\n\t\t\t\t\tcase ' ': case '?': out[R][C] = false; break; /* NOTE: technically uninitialized */\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'M': /* TODO: handle memo files */\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'N': out[R][C] = +s.replace(/\\u0000/g,\"\").trim(); break;\n\t\t\t\tcase '@': out[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400); break;\n\t\t\t\tcase 'T': out[R][C] = new Date((dd.read_shift(4) - 0x253D8C) * 0x5265C00 + dd.read_shift(4)); break;\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4; break;\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\n\t\t\t\tcase '0':\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\n\t\t\t}\n\t\t}\n\t}\n\tif(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error(\"DBF EOF Marker missing \" + (d.l-1) + \" of \" + d.length + \" \" + d[d.l-1].toString(16));\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts) {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\treturn aoa_to_sheet(dbf_to_aoa(buf, o), o);\n}\n\nfunction dbf_to_workbook(buf, opts) {\n\ttry { return sheet_to_workbook(dbf_to_sheet(buf, opts), opts); }\n\tcatch(e) { if(opts && opts.WTF) throw e; }\n\treturn ({SheetNames:[],Sheets:{}});\n}\n\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\nfunction sheet_to_dbf(ws, opts) {\n\tvar o = opts || {};\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\n\tvar ba = buf_array();\n\tvar aoa = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1);\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(i == null) continue;\n\t\t++hcnt;\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\n\t}\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar coltypes = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar col = [];\n\t\tfor(j=0; j < data.length; ++j) {\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\n\t\t}\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\n\t\tvar guess = '', _guess = '';\n\t\tfor(j = 0; j < col.length; ++j) {\n\t\t\tswitch(typeof col[j]) {\n\t\t\t\t/* TODO: check if L2 compat is desired */\n\t\t\t\tcase 'number': _guess = 'B'; break;\n\t\t\t\tcase 'string': _guess = 'C'; break;\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\n\t\t\t\tdefault: _guess = 'C';\n\t\t\t}\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\tif(guess == 'C') break;\n\t\t}\n\t\trlen += _RLEN[guess] || 0;\n\t\tcoltypes[i] = guess;\n\t}\n\n\tvar h = ba.next(32);\n\th.write_shift(4, 0x13021130);\n\th.write_shift(4, data.length);\n\th.write_shift(2, 296 + 32 * hcnt);\n\th.write_shift(2, rlen);\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\n\th.write_shift(4, 0x00000000 | ((+dbf_reverse_map[current_ansi] || 0x03)<<8));\n\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\n\t\tif(headers[i] == null) continue;\n\t\tvar hf = ba.next(32);\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\n\t\thf.write_shift(1, _f, \"sbcs\");\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\n\t\thf.write_shift(4, j);\n\t\thf.write_shift(1, _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(1, 0x02);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(4, 0);\n\t\tj += _RLEN[coltypes[i]] || 0;\n\t}\n\n\tvar hb = ba.next(264);\n\thb.write_shift(4, 0x0000000D);\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\n\tfor(i=0; i < data.length; ++i) {\n\t\tvar rout = ba.next(rlen);\n\t\trout.write_shift(1, 0);\n\t\tfor(j=0; j<headers.length; ++j) {\n\t\t\tif(headers[j] == null) continue;\n\t\t\tswitch(coltypes[j]) {\n\t\t\t\tcase 'L': rout.write_shift(1, data[i][j] == null ? 0x3F : data[i][j] ? 0x54 : 0x46); break;\n\t\t\t\tcase 'B': rout.write_shift(8, data[i][j]||0, 'f'); break;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(!data[i][j]) rout.write_shift(8, \"00000000\", \"sbcs\");\n\t\t\t\t\telse {\n\t\t\t\t\t\trout.write_shift(4, (\"0000\"+data[i][j].getFullYear()).slice(-4), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+(data[i][j].getMonth()+1)).slice(-2), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+data[i][j].getDate()).slice(-2), \"sbcs\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'C':\n\t\t\t\t\tvar _s = String(data[i][j]||\"\");\n\t\t\t\t\trout.write_shift(1, _s, \"sbcs\");\n\t\t\t\t\tfor(hcnt=0; hcnt < 250-_s.length; ++hcnt) rout.write_shift(1, 0x20); break;\n\t\t\t}\n\t\t}\n\t\t// data\n\t}\n\tba.next(1).write_shift(1, 0x1A);\n\treturn ba.end();\n}\n\treturn {\n\t\tversions: DBF_SUPPORTED_VERSIONS,\n\t\tto_workbook: dbf_to_workbook,\n\t\tto_sheet: dbf_to_sheet,\n\t\tfrom_sheet: sheet_to_dbf\n\t};\n})();\n\nvar SYLK = (function() {\n\t/* TODO: stress test sequences */\n\tvar sylk_escapes = ({\n\t\tAA:'À', BA:'Á', CA:'Â', DA:195, HA:'Ä', JA:197,\n\t\tAE:'È', BE:'É', CE:'Ê',         HE:'Ë',\n\t\tAI:'Ì', BI:'Í', CI:'Î',         HI:'Ï',\n\t\tAO:'Ò', BO:'Ó', CO:'Ô', DO:213, HO:'Ö',\n\t\tAU:'Ù', BU:'Ú', CU:'Û',         HU:'Ü',\n\t\tAa:'à', Ba:'á', Ca:'â', Da:227, Ha:'ä', Ja:229,\n\t\tAe:'è', Be:'é', Ce:'ê',         He:'ë',\n\t\tAi:'ì', Bi:'í', Ci:'î',         Hi:'ï',\n\t\tAo:'ò', Bo:'ó', Co:'ô', Do:245, Ho:'ö',\n\t\tAu:'ù', Bu:'ú', Cu:'û',         Hu:'ü',\n\t\tKC:'Ç', Kc:'ç', q:'æ',  z:'œ',  a:'Æ',  j:'Œ',\n\t\tDN:209, Dn:241, Hy:255,\n\t\tS:169,  c:170,  R:174,  B:180,\n0:176,    1:177,  2:178,\n3:179,    5:181,  6:182,\n7:183,    Q:185,  k:186,  b:208,  i:216,  l:222,  s:240,  y:248,\n\t\t\"!\":161, '\"':162, \"#\":163, \"(\":164, \"%\":165, \"'\":167, \"H \":168,\n\t\t\"+\":171, \";\":187, \"<\":188, \"=\":189, \">\":190, \"?\":191, \"{\":223\n\t});\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\n\tsylk_escapes[\"|\"] = 254;\n\t/* TODO: find an actual specification */\n\tfunction sylk_to_aoa(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return sylk_to_aoa_str(d.toString('binary'), opts);\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction sylk_to_aoa_str(str, opts) {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr = [];\n\t\tvar formats = [];\n\t\tvar next_cell_format = null;\n\t\tvar sht = {}, rowinfo = [], colinfo = [], cw = [];\n\t\tvar Mval = 0, j;\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tMval = 0;\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\n\t\t\tvar RT=record[0], val;\n\t\t\tif(rstr.length > 0) switch(RT) {\n\t\t\tcase 'ID': break; /* header */\n\t\t\tcase 'E': break; /* EOF */\n\t\t\tcase 'B': break; /* dimensions */\n\t\t\tcase 'O': break; /* options? */\n\t\t\tcase 'P':\n\t\t\t\tif(record[1].charAt(0) == 'P')\n\t\t\t\t\tformats.push(rstr.slice(3).replace(/;;/g, \";\"));\n\t\t\t\tbreak;\n\t\t\tcase 'C':\n\t\t\tvar C_seen_K = false, C_seen_X = false;\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\tcase 'X': C = parseInt(record[rj].slice(1))-1; C_seen_X = true; break;\n\t\t\t\tcase 'Y':\n\t\t\t\t\tR = parseInt(record[rj].slice(1))-1; if(!C_seen_X) C = 0;\n\t\t\t\t\tfor(j = arr.length; j <= R; ++j) arr[j] = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'K':\n\t\t\t\t\tval = record[rj].slice(1);\n\t\t\t\t\tif(val.charAt(0) === '\"') val = val.slice(1,val.length - 1);\n\t\t\t\t\telse if(val === 'TRUE') val = true;\n\t\t\t\t\telse if(val === 'FALSE') val = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(val))) {\n\t\t\t\t\t\tval = fuzzynum(val);\n\t\t\t\t\t\tif(next_cell_format !== null && SSF.is_date(next_cell_format)) val = numdate(val);\n\t\t\t\t\t} else if(!isNaN(fuzzydate(val).getDate())) {\n\t\t\t\t\t\tval = parseDate(val);\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof cptable !== 'undefined' && typeof val == \"string\" && ((opts||{}).type != \"string\") && (opts||{}).codepage) val = cptable.utils.decode(opts.codepage, val);\n\t\t\t\t\tC_seen_K = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'E':\n\t\t\t\t\tvar formula = rc_to_a1(record[rj].slice(1), {r:R,c:C});\n\t\t\t\t\tarr[R][C] = [arr[R][C], formula];\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(C_seen_K) { arr[R][C] = val; next_cell_format = null; }\n\t\t\tbreak;\n\t\t\tcase 'F':\n\t\t\tvar F_seen = 0;\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\tcase 'X': C = parseInt(record[rj].slice(1))-1; ++F_seen; break;\n\t\t\t\tcase 'Y':\n\t\t\t\t\tR = parseInt(record[rj].slice(1))-1; /*C = 0;*/\n\t\t\t\t\tfor(j = arr.length; j <= R; ++j) arr[j] = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'M': Mval = parseInt(record[rj].slice(1)) / 20; break;\n\t\t\t\tcase 'F': break; /* ??? */\n\t\t\t\tcase 'G': break; /* hide grid */\n\t\t\t\tcase 'P':\n\t\t\t\t\tnext_cell_format = formats[parseInt(record[rj].slice(1))];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'S': break; /* cell style */\n\t\t\t\tcase 'D': break; /* column */\n\t\t\t\tcase 'N': break; /* font */\n\t\t\t\tcase 'W':\n\t\t\t\t\tcw = record[rj].slice(1).split(\" \");\n\t\t\t\t\tfor(j = parseInt(cw[0], 10); j <= parseInt(cw[1], 10); ++j) {\n\t\t\t\t\t\tMval = parseInt(cw[2], 10);\n\t\t\t\t\t\tcolinfo[j-1] = Mval === 0 ? {hidden:true}: {wch:Mval}; process_col(colinfo[j-1]);\n\t\t\t\t\t} break;\n\t\t\t\tcase 'C': /* default column format */\n\t\t\t\t\tC = parseInt(record[rj].slice(1))-1;\n\t\t\t\t\tif(!colinfo[C]) colinfo[C] = {};\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'R': /* row properties */\n\t\t\t\t\tR = parseInt(record[rj].slice(1))-1;\n\t\t\t\t\tif(!rowinfo[R]) rowinfo[R] = {};\n\t\t\t\t\tif(Mval > 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t}\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn [arr, sht];\n\t}\n\n\tfunction sylk_to_sheet(d, opts) {\n\t\tvar aoasht = sylk_to_aoa(d, opts);\n\t\tvar aoa = aoasht[0], ws = aoasht[1];\n\t\tvar o = aoa_to_sheet(aoa, opts);\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\n\t\treturn o;\n\t}\n\n\tfunction sylk_to_workbook(d, opts) { return sheet_to_workbook(sylk_to_sheet(d, opts), opts); }\n\n\tfunction write_ws_cell_sylk(cell, ws, R, C) {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\n\t\tswitch(cell.t) {\n\t\t\tcase 'n':\n\t\t\t\to += (cell.v||0);\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\n\t\t\tcase 'e': o += cell.w || cell.v; break;\n\t\t\tcase 'd': o += '\"' + (cell.w || cell.v) + '\"'; break;\n\t\t\tcase 's': o += '\"' + cell.v.replace(/\"/g,\"\") + '\"'; break;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cols_sylk(out, cols) {\n\t\tcols.forEach(function(col, i) {\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\n\t\t\tif(col.hidden) rec += \"0\";\n\t\t\telse {\n\t\t\t\tif(typeof col.width == 'number') col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number') col.wch = px2char(col.wpx);\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\n\t\t\t}\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\n\t\t});\n\t}\n\n\tfunction write_ws_rows_sylk(out, rows) {\n\t\trows.forEach(function(row, i) {\n\t\t\tvar rec = \"F;\";\n\t\t\tif(row.hidden) rec += \"M0;\";\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\n\t\t});\n\t}\n\n\tfunction sheet_to_sylk(ws, opts) {\n\t\tvar preamble = [\"ID;PWXL;N;E\"], o = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tvar RS = \"\\r\\n\";\n\n\t\tpreamble.push(\"P;PGeneral\");\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\n\n\t\tpreamble.push(\"B;Y\" + (r.e.r - r.s.r + 1) + \";X\" + (r.e.c - r.s.c + 1) + \";D\" + [r.s.c,r.s.r,r.e.c,r.e.r].join(\" \"));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\n\t\t\t\to.push(write_ws_cell_sylk(cell, ws, R, C, opts));\n\t\t\t}\n\t\t}\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\n\t}\n\n\treturn {\n\t\tto_workbook: sylk_to_workbook,\n\t\tto_sheet: sylk_to_sheet,\n\t\tfrom_sheet: sheet_to_sylk\n\t};\n})();\n\nvar DIF = (function() {\n\tfunction dif_to_aoa(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return dif_to_aoa_str(d.toString('binary'), opts);\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction dif_to_aoa_str(str, opts) {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\tif (R < 0) continue;\n\t\t\tvar metadata = records[ri].trim().split(\",\");\n\t\t\tvar type = metadata[0], value = metadata[1];\n\t\t\t++ri;\n\t\t\tvar data = records[ri].trim();\n\t\t\tswitch (+type) {\n\t\t\t\tcase -1:\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) arr[R][C] = parseDate(value);\n\t\t\t\t\telse arr[R][C] = value;\n\t\t\t\t\t++C; break;\n\t\t\t\tcase 1:\n\t\t\t\t\tdata = data.slice(1,data.length-1);\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (data === 'EOD') break;\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction dif_to_sheet(str, opts) { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str, opts) { return sheet_to_workbook(dif_to_sheet(str, opts), opts); }\n\n\tvar sheet_to_dif = (function() {\n\t\tvar push_field = function pf(o, topic, v, n, s) {\n\t\t\to.push(topic);\n\t\t\to.push(v + \",\" + n);\n\t\t\to.push('\"' + s.replace(/\"/g,'\"\"') + '\"');\n\t\t};\n\t\tvar push_value = function po(o, type, v, s) {\n\t\t\to.push(type + \",\" + v);\n\t\t\to.push(type == 1 ? '\"' + s.replace(/\"/g,'\"\"') + '\"' : s);\n\t\t};\n\t\treturn function sheet_to_dif(ws) {\n\t\t\tvar o = [];\n\t\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tpush_field(o, \"TABLE\", 0, 1, \"sheetjs\");\n\t\t\tpush_field(o, \"VECTORS\", 0, r.e.r - r.s.r + 1,\"\");\n\t\t\tpush_field(o, \"TUPLES\", 0, r.e.c - r.s.c + 1,\"\");\n\t\t\tpush_field(o, \"DATA\", 0, 0,\"\");\n\t\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\t\tpush_value(o, -1, 0, \"BOT\");\n\t\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\t\tif(!cell) { push_value(o, 1, 0, \"\"); continue;}\n\t\t\t\t\tswitch(cell.t) {\n\t\t\t\t\t\tcase 'n':\n\t\t\t\t\t\t\tvar val = DIF_XL ? cell.w : cell.v;\n\t\t\t\t\t\t\tif(!val && cell.v != null) val = cell.v;\n\t\t\t\t\t\t\tif(val == null) {\n\t\t\t\t\t\t\t\tif(DIF_XL && cell.f && !cell.F) push_value(o, 1, 0, \"=\" + cell.f);\n\t\t\t\t\t\t\t\telse push_value(o, 1, 0, \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse push_value(o, 0, val, \"V\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tpush_value(o, 0, cell.v ? 1 : 0, cell.v ? \"TRUE\" : \"FALSE\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\t\tpush_value(o, 1, 0, (!DIF_XL || isNaN(cell.v)) ? cell.v : '=\"' + cell.v + '\"');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tif(!cell.w) cell.w = SSF.format(cell.z || SSF._table[14], datenum(parseDate(cell.v)));\n\t\t\t\t\t\t\tif(DIF_XL) push_value(o, 0, cell.w, \"V\");\n\t\t\t\t\t\t\telse push_value(o, 1, 0, cell.w);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: push_value(o, 1, 0, \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tpush_value(o, -1, 0, \"EOD\");\n\t\t\tvar RS = \"\\r\\n\";\n\t\t\tvar oo = o.join(RS);\n\t\t\t//while((oo.length & 0x7F) != 0) oo += \"\\0\";\n\t\t\treturn oo;\n\t\t};\n\t})();\n\treturn {\n\t\tto_workbook: dif_to_workbook,\n\t\tto_sheet: dif_to_sheet,\n\t\tfrom_sheet: sheet_to_dif\n\t};\n})();\n\nvar ETH = (function() {\n\tfunction decode(s) { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s) { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str, opts) {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tvar record = records[ri].trim().split(\":\");\n\t\t\tif(record[0] !== 'cell') continue;\n\t\t\tvar addr = decode_cell(record[1]);\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\n\t\t\tR = addr.r; C = addr.c;\n\t\t\tswitch(record[2]) {\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'vtc':\n\t\t\t\t\tswitch(record[3]) {\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\n\t\t\t\t\t}\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\n\t\t\t}\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction eth_to_sheet(d, opts) { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d, opts) { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\n\n\tvar header = [\n\t\t\"socialcalc:version:1.5\",\n\t\t\"MIME-Version: 1.0\",\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\n\t].join(\"\\n\");\n\n\tvar sep = [\n\t\t\"--SocialCalcSpreadsheetControlSave\",\n\t\t\"Content-type: text/plain; charset=UTF-8\"\n\t].join(\"\\n\") + \"\\n\";\n\n\t/* TODO: the other parts */\n\tvar meta = [\n\t\t\"# SocialCalc Spreadsheet Control Save\",\n\t\t\"part:sheet\"\n\t].join(\"\\n\");\n\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\n\n\tfunction sheet_to_eth_data(ws) {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o = [], oo = [], cell, coord = \"\";\n\t\tvar r = decode_range(ws['!ref']);\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcoord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\n\t\t\t\too = [\"cell\", coord, 't'];\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\n\t\t\t\t\t\too[5] = cell.w || SSF.format(cell.z || SSF._table[14], t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'e': continue;\n\t\t\t\t}\n\t\t\t\to.push(oo.join(\":\"));\n\t\t\t}\n\t\t}\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\n\t\to.push(\"valueformat:1:text-wiki\");\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\n\t\treturn o.join(\"\\n\");\n\t}\n\n\tfunction sheet_to_eth(ws) {\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\n\t}\n\n\treturn {\n\t\tto_workbook: eth_to_workbook,\n\t\tto_sheet: eth_to_sheet,\n\t\tfrom_sheet: sheet_to_eth\n\t};\n})();\n\nvar PRN = (function() {\n\tfunction set_text_arr(data, arr, R, C, o) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\n\t\telse arr[R][C] = data;\n\t}\n\n\tfunction prn_to_aoa_str(f, opts) {\n\t\tvar o = opts || {};\n\t\tvar arr = ([]);\n\t\tif(!f || f.length === 0) return arr;\n\t\tvar lines = f.split(/[\\r\\n]/);\n\t\tvar L = lines.length - 1;\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\n\t\tvar start = 10, idx = 0;\n\t\tvar R = 0;\n\t\tfor(; R <= L; ++R) {\n\t\t\tidx = lines[R].indexOf(\" \");\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\n\t\t\tstart = Math.max(start, idx);\n\t\t}\n\t\tfor(R = 0; R <= L; ++R) {\n\t\t\tarr[R] = [];\n\t\t\t/* TODO: confirm that widths are always 10 */\n\t\t\tvar C = 0;\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\n\t\t}\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\n\t\treturn arr;\n\t}\n\n\t// List of accepted CSV separators\n\tvar guess_seps = {\n0x2C: ',',\n0x09: \"\\t\",\n0x3B: ';'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n0x2C: 3,\n0x09: 2,\n0x3B: 1\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]];\n\t}\n\n\tfunction dsv_to_sheet_str(str, opts) {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws = o.dense ? ([]) : ({});\n\t\tvar range = ({s: {c:0, r:0}, e: {c:0, r:0}});\n\n\t\tif(str.slice(0,4) == \"sep=\") {\n\t\t\t// If the line ends in \\r\\n\n\t\t\tif(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(7);\n\t\t\t}\n\t\t\t// If line ends in \\r OR \\n\n\t\t\telse if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {\n\t\t\t\t//\n\t\t\t\tsep = str.charAt(4); str = str.slice(6);\n\t\t\t}\n\t\t}\n\t\telse sep = guess_sep(str.slice(0,1024));\n\t\tvar R = 0, C = 0, v = 0;\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0;\n\t\tstr = str.replace(/\\r\\n/mg, \"\\n\");\n\t\tvar _re = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\n\t\tfunction finish_cell() {\n\t\t\tvar s = str.slice(start, end);\n\t\t\tvar cell = ({});\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\n\t\t\tif(s.length === 0) cell.t = 'z';\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\n\t\t\t\tif(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/\"\"/g,'\"'); }\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 'n'; cell.f = s.slice(1); }\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; if(o.cellText !== false) cell.w = s; cell.v = v; }\n\t\t\telse if(!isNaN(fuzzydate(s).getDate()) || _re && s.match(_re)) {\n\t\t\t\tcell.z = o.dateNF || SSF._table[14];\n\t\t\t\tvar k = 0;\n\t\t\t\tif(_re && s.match(_re)){ s=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); k=1; }\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = parseDate(s, k); }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(parseDate(s, k)); }\n\t\t\t\tif(o.cellText !== false) cell.w = SSF.format(cell.z, cell.v instanceof Date ? datenum(cell.v):cell.v);\n\t\t\t\tif(!o.cellNF) delete cell.z;\n\t\t\t} else {\n\t\t\t\tcell.t = 's';\n\t\t\t\tcell.v = s;\n\t\t\t}\n\t\t\tif(cell.t == 'z'){}\n\t\t\telse if(o.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = cell; }\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\n\t\t\tstart = end+1;\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\n\t\t}\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\n\t\t\tcase 0x22: instr = !instr; break;\n\t\t\tcase sepcc: case 0x0a: case 0x0d: if(!instr && finish_cell()) break outer; break;\n\t\t\tdefault: break;\n\t\t}\n\t\tif(end - start > 0) finish_cell();\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction prn_to_sheet_str(str, opts) {\n\t\tif(!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d, opts) {\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': str = Base64.decode(d); break;\n\t\t\tcase 'binary': str = d; break;\n\t\t\tcase 'buffer':\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8');\n\t\t\t\telse if(opts.codepage && typeof cptable !== 'undefined') str = cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = d.toString('binary');\n\t\t\t\tbreak;\n\t\t\tcase 'array': str = cc2str(d); break;\n\t\t\tcase 'string': str = d; break;\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t\t}\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\n\t\telse if((opts.type == 'binary') && typeof cptable !== 'undefined' && opts.codepage)  str = cptable.utils.decode(opts.codepage, cptable.utils.encode(1252,str));\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\n\t\treturn prn_to_sheet_str(str, opts);\n\t}\n\n\tfunction prn_to_workbook(d, opts) { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws) {\n\t\tvar o = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar oo = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\"          \"); continue; }\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\n\t\t\t\twhile(w.length < 10) w += \" \";\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\n\t\t\t}\n\t\t\to.push(oo.join(\"\"));\n\t\t}\n\t\treturn o.join(\"\\n\");\n\t}\n\n\treturn {\n\t\tto_workbook: prn_to_workbook,\n\t\tto_sheet: prn_to_sheet,\n\t\tfrom_sheet: sheet_to_prn\n\t};\n})();\n\n/* Excel defaults to SYLK but warns if data is not valid */\nfunction read_wb_ID(d, opts) {\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\n\ttry {\n\t\tvar out = SYLK.to_workbook(d, o);\n\t\to.WTF = OLD_WTF;\n\t\treturn out;\n\t} catch(e) {\n\t\to.WTF = OLD_WTF;\n\t\tif(!e.message.match(/SYLK bad record ID/) && OLD_WTF) throw e;\n\t\treturn PRN.to_workbook(d, opts);\n\t}\n}\n\nvar WK_ = (function() {\n\tfunction lotushopper(data, cb, opts) {\n\t\tif(!data) return;\n\t\tprep_blob(data, data.l || 0);\n\t\tvar Enum = opts.Enum || WK1Enum;\n\t\twhile(data.l < data.length) {\n\t\t\tvar RT = data.read_shift(2);\n\t\t\tvar R = Enum[RT] || Enum[0xFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = (R.f||parsenoop)(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R.n, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return lotus_to_workbook_buf(s2a(Base64.decode(d)), opts);\n\t\t\tcase 'binary': return lotus_to_workbook_buf(s2a(d), opts);\n\t\t\tcase 'buffer':\n\t\t\tcase 'array': return lotus_to_workbook_buf(d, opts);\n\t\t}\n\t\tthrow \"Unsupported type \" + opts.type;\n\t}\n\n\tfunction lotus_to_workbook_buf(d, opts) {\n\t\tif(!d) return d;\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s = ((o.dense ? [] : {})), n = \"Sheet1\", sidx = 0;\n\t\tvar sheets = {}, snames = [n];\n\n\t\tvar refguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\tvar sheetRows = o.sheetRows || 0;\n\n\t\tif(d[2] == 0x02) o.Enum = WK1Enum;\n\t\telse if(d[2] == 0x1a) o.Enum = WK3Enum;\n\t\telse if(d[2] == 0x0e) { o.Enum = WK3Enum; o.qpro = true; d.l = 0; }\n\t\telse throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\tlotushopper(d, function(val, Rn, RT) {\n\t\t\tif(d[2] == 0x02) switch(RT) {\n\t\t\t\tcase 0x00:\n\t\t\t\t\to.vers = val;\n\t\t\t\t\tif(val >= 0x1000) o.qpro = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x06: refguess = val; break; /* RANGE */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\t\tif(!o.qpro) val[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x0D: /* INTEGER */\n\t\t\t\tcase 0x0E: /* NUMBER */\n\t\t\t\tcase 0x10: /* FORMULA */\n\t\t\t\tcase 0x33: /* STRING */\n\t\t\t\t\t/* TODO: actual translation of the format code */\n\t\t\t\t\tif(RT == 0x0E && (val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {\n\t\t\t\t\t\tval[1].z = o.dateNF || SSF._table[14];\n\t\t\t\t\t\tif(o.cellDates) { val[1].t = 'd'; val[1].v = numdate(val[1].v); }\n\t\t\t\t\t}\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tbreak;\n\t\t\t} else switch(RT) {\n\t\t\t\tcase 0x16: /* LABEL16 */\n\t\t\t\t\tval[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x17: /* NUMBER17 */\n\t\t\t\tcase 0x18: /* NUMBER18 */\n\t\t\t\tcase 0x19: /* FORMULA19 */\n\t\t\t\tcase 0x25: /* NUMBER25 */\n\t\t\t\tcase 0x27: /* NUMBER27 */\n\t\t\t\tcase 0x28: /* FORMULA28 */\n\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\tsidx = val[3]; n = \"Sheet\" + (sidx + 1);\n\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t}\n\t\t\t\t\tif(sheetRows > 0 && val[0].r >= sheetRows) break;\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tif(refguess.e.c < val[0].c) refguess.e.c = val[0].c;\n\t\t\t\t\tif(refguess.e.r < val[0].r) refguess.e.r = val[0].r;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: break;\n\t\t\t}\n\t\t}, o);\n\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[n] = s;\n\t\treturn { SheetNames: snames, Sheets:sheets };\n\t}\n\n\tfunction parse_RANGE(blob) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(o.s.c == 0xFFFF) o.s.c = o.e.c = o.s.r = o.e.r = 0;\n\t\treturn o;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to[0].r = blob.read_shift(2);\n\t\t\tblob.l+=2;\n\t\t} else {\n\t\t\to[2] = blob.read_shift(1);\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tblob.l++;\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\tif(opts.qpro) blob.l++;\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\n\tfunction parse_INTEGER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(2, 'i');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\t/* TODO: formula */\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\tif(opts.qpro) blob.l = tgt;\n\t\telse {\n\t\t\tvar flen = blob.read_shift(2);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_cell_3(blob) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\to[0].r = blob.read_shift(2); o[3] = blob[blob.l++]; o[0].c = blob[blob.l++];\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL_16(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].t = 's';\n\t\to[1].v = blob.read_shift(length - 4, 'cstr');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_18(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].v = blob.read_shift(2);\n\t\tvar v = o[1].v >> 1;\n\t\t/* TODO: figure out all of the corner cases */\n\t\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 1: v = (v >> 3) * 500; break;\n\t\t\t\tcase 2: v = (v >> 3) / 20; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 6: v = (v >> 3) / 16; break;\n\t\t\t\tcase 7: v = (v >> 3) / 64; break;\n\t\t\t\tdefault: throw \"unknown NUMBER_18 encoding \" + (v & 0x07);\n\t\t\t}\n\t\t}\n\t\to[1].v = v;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_17(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\tvar v2 = blob.read_shift(4);\n\t\tvar e = blob.read_shift(2);\n\t\tif(e == 0xFFFF) { o[1].v = 0; return o; }\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (s*2 - 1) * ((e > 0 ? (v2 << e) : (v2 >>> -e)) + (e > -32 ? (v1 << (e + 32)) : (v1 >>> -(e + 32))));\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_19(blob, length) {\n\t\tvar o = parse_NUMBER_17(blob, 14);\n\t\tblob.l += length - 14; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_25(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\to[1].v = v1 >> 6;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_27(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(8,'f');\n\t\to[1].v = v1;\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_28(blob, length) {\n\t\tvar o = parse_NUMBER_27(blob, 14);\n\t\tblob.l += length - 10; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tvar WK1Enum = {\n0x0000: { n:\"BOF\", f:parseuint16 },\n0x0001: { n:\"EOF\" },\n0x0002: { n:\"CALCMODE\" },\n0x0003: { n:\"CALCORDER\" },\n0x0004: { n:\"SPLIT\" },\n0x0005: { n:\"SYNC\" },\n0x0006: { n:\"RANGE\", f:parse_RANGE },\n0x0007: { n:\"WINDOW1\" },\n0x0008: { n:\"COLW1\" },\n0x0009: { n:\"WINTWO\" },\n0x000A: { n:\"COLW2\" },\n0x000B: { n:\"NAME\" },\n0x000C: { n:\"BLANK\" },\n0x000D: { n:\"INTEGER\", f:parse_INTEGER },\n0x000E: { n:\"NUMBER\", f:parse_NUMBER },\n0x000F: { n:\"LABEL\", f:parse_LABEL },\n0x0010: { n:\"FORMULA\", f:parse_FORMULA },\n0x0018: { n:\"TABLE\" },\n0x0019: { n:\"ORANGE\" },\n0x001A: { n:\"PRANGE\" },\n0x001B: { n:\"SRANGE\" },\n0x001C: { n:\"FRANGE\" },\n0x001D: { n:\"KRANGE1\" },\n0x0020: { n:\"HRANGE\" },\n0x0023: { n:\"KRANGE2\" },\n0x0024: { n:\"PROTEC\" },\n0x0025: { n:\"FOOTER\" },\n0x0026: { n:\"HEADER\" },\n0x0027: { n:\"SETUP\" },\n0x0028: { n:\"MARGINS\" },\n0x0029: { n:\"LABELFMT\" },\n0x002A: { n:\"TITLES\" },\n0x002B: { n:\"SHEETJS\" },\n0x002D: { n:\"GRAPH\" },\n0x002E: { n:\"NGRAPH\" },\n0x002F: { n:\"CALCCOUNT\" },\n0x0030: { n:\"UNFORMATTED\" },\n0x0031: { n:\"CURSORW12\" },\n0x0032: { n:\"WINDOW\" },\n0x0033: { n:\"STRING\", f:parse_LABEL },\n0x0037: { n:\"PASSWORD\" },\n0x0038: { n:\"LOCKED\" },\n0x003C: { n:\"QUERY\" },\n0x003D: { n:\"QUERYNAME\" },\n0x003E: { n:\"PRINT\" },\n0x003F: { n:\"PRINTNAME\" },\n0x0040: { n:\"GRAPH2\" },\n0x0041: { n:\"GRAPHNAME\" },\n0x0042: { n:\"ZOOM\" },\n0x0043: { n:\"SYMSPLIT\" },\n0x0044: { n:\"NSROWS\" },\n0x0045: { n:\"NSCOLS\" },\n0x0046: { n:\"RULER\" },\n0x0047: { n:\"NNAME\" },\n0x0048: { n:\"ACOMM\" },\n0x0049: { n:\"AMACRO\" },\n0x004A: { n:\"PARSE\" },\n0x00FF: { n:\"\", f:parsenoop }\n\t};\n\n\tvar WK3Enum = {\n0x0000: { n:\"BOF\" },\n0x0001: { n:\"EOF\" },\n0x0003: { n:\"??\" },\n0x0004: { n:\"??\" },\n0x0005: { n:\"??\" },\n0x0006: { n:\"??\" },\n0x0007: { n:\"??\" },\n0x0009: { n:\"??\" },\n0x000a: { n:\"??\" },\n0x000b: { n:\"??\" },\n0x000c: { n:\"??\" },\n0x000e: { n:\"??\" },\n0x000f: { n:\"??\" },\n0x0010: { n:\"??\" },\n0x0011: { n:\"??\" },\n0x0012: { n:\"??\" },\n0x0013: { n:\"??\" },\n0x0015: { n:\"??\" },\n0x0016: { n:\"LABEL16\", f:parse_LABEL_16},\n0x0017: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n0x0018: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n0x0019: { n:\"FORMULA19\", f:parse_FORMULA_19},\n0x001a: { n:\"??\" },\n0x001b: { n:\"??\" },\n0x001c: { n:\"??\" },\n0x001d: { n:\"??\" },\n0x001e: { n:\"??\" },\n0x001f: { n:\"??\" },\n0x0021: { n:\"??\" },\n0x0025: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n0x0027: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n0x0028: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n0x00FF: { n:\"\", f:parsenoop }\n\t};\n\treturn {\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<condense': break;\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<extend': break;\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<shadow':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<shadow>':\n\t\t\tcase '<shadow/>': font.shadow = 1; break;\n\t\t\tcase '</shadow>': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '<charset':\n\t\t\t\tif(y.val == '1') break;\n\t\t\t\tfont.cp = CS2CP[parseInt(y.val, 10)];\n\t\t\t\tbreak;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty TODO */\n\t\t\tcase '<outline':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<outline>':\n\t\t\tcase '<outline/>': font.outline = 1; break;\n\t\t\tcase '</outline>': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '<rFont': font.name = y.val; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '<sz': font.sz = y.val; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '<strike':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<strike>':\n\t\t\tcase '<strike/>': font.strike = 1; break;\n\t\t\tcase '</strike>': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '<u':\n\t\t\t\tif(!y.val) break;\n\t\t\t\tswitch(y.val) {\n\t\t\t\t\tcase 'double': font.uval = \"double\"; break;\n\t\t\t\t\tcase 'singleAccounting': font.uval = \"single-accounting\"; break;\n\t\t\t\t\tcase 'doubleAccounting': font.uval = \"double-accounting\"; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '<u>':\n\t\t\tcase '<u/>': font.u = 1; break;\n\t\t\tcase '</u>': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '<b':\n\t\t\t\tif(y.val == '0') break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<b>':\n\t\t\tcase '<b/>': font.b = 1; break;\n\t\t\tcase '</b>': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '<i':\n\t\t\t\tif(y.val == '0') break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<i>':\n\t\t\tcase '<i/>': font.i = 1; break;\n\t\t\tcase '</i>': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '<color':\n\t\t\t\tif(y.rgb) font.color = y.rgb.slice(2,8);\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\tcase '<family': font.family = y.val; break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\tcase '<vertAlign': font.valign = y.val; break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\tcase '<scheme': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = (function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o = ({t:'s', v:unescapexml(t[1])});\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of <r> tags */\nvar rs_to_html = (function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('<span style=\"' + style.join(\"\") + '\">');\n\n\t\tif(font.b) { intro.push(\"<b>\"); outro.push(\"</b>\"); }\n\t\tif(font.i) { intro.push(\"<i>\"); outro.push(\"</i>\"); }\n\t\tif(font.strike) { intro.push(\"<s>\"); outro.push(\"</s>\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"</\" + align + \">\"); }\n\n\t\toutro.push(\"</span>\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'<br/>') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data, opts) {\n\tvar s = ([]), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nRELS.SST = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\";\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst, opts) {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS.main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s = sst[i];\n\t\tvar sitag = \"<si>\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"<t\";\n\t\t\tif(!s.t) s.t = \"\";\n\t\t\tif(s.t.match(straywsregex)) sitag += ' xml:space=\"preserve\"';\n\t\t\tsitag += \">\" + escapexml(s.t) + \"</t>\";\n\t\t}\n\t\tsitag += \"</si>\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = ('</sst>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts) {\n\tvar s = ([]);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* 'BrtBeginSst' */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* 'BrtSSTItem' */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* 'BrtEndSst' */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R_n.indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if(R_n.indexOf(\"End\") > 0){/* empty */}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSst\", write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, \"BrtSSTItem\", write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, \"BrtEndSst\");\n\treturn ba.end();\n}\nfunction _JS2ANSI(str) {\n\tif(typeof cptable !== 'undefined') return cptable.utils.encode(current_ansi, str);\n\tvar o = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length) {\n\tvar o = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\nif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5  EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6  EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt() { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<encryption': case '</encryption>': break;\n\t\t\tcase '<keyData': KeyData.forEach(function(k) { o[k] = y[k]; }); break;\n\t\t\tcase '<dataIntegrity': o.encryptedHmacKey = y.encryptedHmacKey; o.encryptedHmacValue = y.encryptedHmacValue; break;\n\t\t\tcase '<keyEncryptors>': case '<keyEncryptors': o.encs = []; break;\n\t\t\tcase '</keyEncryptors>': break;\n\n\t\t\tcase '<keyEncryptor': o.uri = y.uri; break;\n\t\t\tcase '</keyEncryptor>': break;\n\t\t\tcase '<encryptedKey': o.encs.push(y); break;\n\t\t\tdefault: throw y[0];\n\t\t}\n\t});\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.5.1 RC4 CryptoAPI Encryption Header */\nfunction parse_RC4CryptoHeader(blob, length) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4); length -= 4;\n\tif(vers.Minor != 2) throw new Error('unrecognized minor version code: ' + vers.Minor);\n\tif(vers.Major > 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = (function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) });\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nvar RTF = (function() {\n\tfunction rtf_to_sheet(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return rtf_to_sheet_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return rtf_to_sheet_str(d, opts);\n\t\t\tcase 'buffer': return rtf_to_sheet_str(d.toString('binary'), opts);\n\t\t\tcase 'array':  return rtf_to_sheet_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\n\tfunction rtf_to_sheet_str(str, opts) {\n\t\tvar o = opts || {};\n\t\tvar ws = o.dense ? ([]) : ({});\n\t\tvar range = ({s: {c:0, r:0}, e: {c:0, r:0}});\n\n\t\t// TODO: parse\n\t\tif(!str.match(/\\\\trowd/)) throw new Error(\"RTF missing table\");\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction rtf_to_workbook(d, opts) { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); }\n\n\t/* TODO: this is a stub */\n\tfunction sheet_to_rtf(ws) {\n\t\tvar o = [\"{\\\\rtf1\\\\ansi\"];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\to.push(\"\\\\trowd\\\\trautofit1\");\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) o.push(\"\\\\cellx\" + (C+1));\n\t\t\to.push(\"\\\\pard\\\\intbl\");\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || cell.v == null && (!cell.f || cell.F)) continue;\n\t\t\t\to.push(\" \" + (cell.w || (format_cell(cell), cell.w)));\n\t\t\t\to.push(\"\\\\cell\");\n\t\t\t}\n\t\t\to.push(\"\\\\pard\\\\intbl\\\\row\");\n\t\t}\n\t\treturn o.join(\"\") + \"}\";\n\t}\n\n\treturn {\n\t\tto_workbook: rtf_to_workbook,\n\t\tto_sheet: rtf_to_sheet,\n\t\tfrom_sheet: sheet_to_rtf\n\t};\n})();\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6);   rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2);   rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6);   rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4);   rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6);   rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW<MAX_MDW; ++MDW) if(Math.abs(collw - cycle_width(collw)) <= delta) { delta = Math.abs(collw - cycle_width(collw)); _MDW = MDW; }\n\tMDW = _MDW;\n}\n/* XLML specifies width in terms of pixels */\n/*function find_mdw_wpx(wpx) {\n\tvar delta = Infinity, guess = 0, _MDW = MIN_MDW;\n\tfor(MDW=MIN_MDW; MDW<MAX_MDW; ++MDW) {\n\t\tguess = char2width_(px2char_(wpx))*256;\n\t\tguess = (guess) % 1;\n\t\tif(guess > 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<borders': case '<borders>': case '</borders>': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '<border': case '<border>': case '<border/>':\n\t\t\t\tborder = {};\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '</border>': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '<left/>': break;\n\t\t\tcase '<left': case '<left>': break;\n\t\t\tcase '</left>': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '<right/>': break;\n\t\t\tcase '<right': case '<right>': break;\n\t\t\tcase '</right>': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '<top/>': break;\n\t\t\tcase '<top': case '<top>': break;\n\t\t\tcase '</top>': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '<bottom/>': break;\n\t\t\tcase '<bottom': case '<bottom>': break;\n\t\t\tcase '</bottom>': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '<diagonal': case '<diagonal>': case '<diagonal/>': break;\n\t\t\tcase '</diagonal>': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '<horizontal': case '<horizontal>': case '<horizontal/>': break;\n\t\t\tcase '</horizontal>': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '<vertical': case '<vertical>': case '<vertical/>': break;\n\t\t\tcase '</vertical>': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '<start': case '<start>': case '<start/>': break;\n\t\t\tcase '</start>': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '<end': case '<end>': case '<end/>': break;\n\t\t\tcase '</end>': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '<color': case '<color>':\n\t\t\t\tbreak;\n\t\t\tcase '<color/>': case '</color>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<fills': case '<fills>': case '</fills>': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '<fill>': case '<fill': case '<fill/>':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '</fill>': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '<gradientFill>': break;\n\t\t\tcase '<gradientFill':\n\t\t\tcase '</gradientFill>': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '<patternFill': case '<patternFill>':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '<patternFill/>': case '</patternFill>': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '<bgColor':\n\t\t\t\tif(!fill.bgColor) fill.bgColor = {};\n\t\t\t\tif(y.indexed) fill.bgColor.indexed = parseInt(y.indexed, 10);\n\t\t\t\tif(y.theme) fill.bgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.bgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb) fill.bgColor.rgb = y.rgb.slice(-6);\n\t\t\t\tbreak;\n\t\t\tcase '<bgColor/>': case '</bgColor>': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '<fgColor':\n\t\t\t\tif(!fill.fgColor) fill.fgColor = {};\n\t\t\t\tif(y.theme) fill.fgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.fgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb != null) fill.fgColor.rgb = y.rgb.slice(-6);\n\t\t\t\tbreak;\n\t\t\tcase '<fgColor/>': case '</fgColor>': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '<stop': case '<stop/>': break;\n\t\t\tcase '</stop>': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '<color': case '<color/>': break;\n\t\t\tcase '</color>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<fonts': case '<fonts>': case '</fonts>': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '<font': case '<font>': break;\n\t\t\tcase '</font>': case '<font/>':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '<name': if(y.val) font.name = utf8read(y.val); break;\n\t\t\tcase '<name/>': case '</name>': break;\n\n\t\t\t/* 18.8.2  b CT_BooleanProperty */\n\t\t\tcase '<b': font.bold = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<b/>': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '<i': font.italic = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<i/>': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '<u':\n\t\t\t\tswitch(y.val) {\n\t\t\t\t\tcase \"none\": font.underline = 0x00; break;\n\t\t\t\t\tcase \"single\": font.underline = 0x01; break;\n\t\t\t\t\tcase \"double\": font.underline = 0x02; break;\n\t\t\t\t\tcase \"singleAccounting\": font.underline = 0x21; break;\n\t\t\t\t\tcase \"doubleAccounting\": font.underline = 0x22; break;\n\t\t\t\t} break;\n\t\t\tcase '<u/>': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '<strike': font.strike = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<strike/>': font.strike = 1; break;\n\n\t\t\t/* 18.4.2  outline CT_BooleanProperty */\n\t\t\tcase '<outline': font.outline = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<outline/>': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '<shadow': font.shadow = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<shadow/>': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '<condense': font.condense = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<condense/>': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '<extend': font.extend = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<extend/>': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '<sz': if(y.val) font.sz = +y.val; break;\n\t\t\tcase '<sz/>': case '</sz>': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '<vertAlign': if(y.val) font.vertAlign = y.val; break;\n\t\t\tcase '<vertAlign/>': case '</vertAlign>': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '<family': if(y.val) font.family = parseInt(y.val,10); break;\n\t\t\tcase '<family/>': case '</family>': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '<scheme': if(y.val) font.scheme = y.val; break;\n\t\t\tcase '<scheme/>': case '</scheme>': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '<charset':\n\t\t\t\tif(y.val == '1') break;\n\t\t\t\ty.codepage = CS2CP[parseInt(y.val, 10)];\n\t\t\t\tbreak;\n\n\t\t\t/* 18.?.? color CT_Color */\n\t\t\tcase '<color':\n\t\t\t\tif(!font.color) font.color = {};\n\t\t\t\tif(y.auto) font.color.auto = parsexmlbool(y.auto);\n\n\t\t\t\tif(y.rgb) font.color.rgb = y.rgb.slice(-6);\n\t\t\t\telse if(y.indexed) {\n\t\t\t\t\tfont.color.index = parseInt(y.indexed, 10);\n\t\t\t\t\tvar icv = XLSIcv[font.color.index];\n\t\t\t\t\tif(font.color.index == 81) icv = XLSIcv[1];\n\t\t\t\t\tif(!icv) throw new Error(x);\n\t\t\t\t\tfont.color.rgb = icv[0].toString(16) + icv[1].toString(16) + icv[2].toString(16);\n\t\t\t\t} else if(y.theme) {\n\t\t\t\t\tfont.color.theme = parseInt(y.theme, 10);\n\t\t\t\t\tif(y.tint) font.color.tint = parseFloat(y.tint);\n\t\t\t\t\tif(y.theme && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\t\tfont.color.rgb = rgb_tint(themes.themeElements.clrScheme[font.color.theme].rgb, font.color.tint || 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase '<color/>': case '</color>': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '<AlternateContent': pass = true; break;\n\t\t\tcase '</AlternateContent>': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array<number>*/ = (keys(SSF._table));\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = SSF._table[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<numFmts': case '</numFmts>': case '<numFmts/>': case '<numFmts>': break;\n\t\t\tcase '<numFmt': {\n\t\t\t\tvar f=unescapexml(utf8read(y.formatCode)), j=parseInt(y.numFmtId,10);\n\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\tif(j>0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF.load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '</numFmt>': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF) {\n\tvar o = [\"<numFmts>\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"</numFmts>\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<cellXfs': case '<cellXfs>': case '<cellXfs/>': case '</cellXfs>': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '<xf': case '<xf/>':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '</xf>': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '<alignment': case '<alignment/>':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '</alignment>': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '<protection':\n\t\t\t\tbreak;\n\t\t\tcase '</protection>': case '<protection/>': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '<AlternateContent': pass = true; break;\n\t\t\tcase '</AlternateContent>': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs) {\n\tvar o = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"</cellXfs>\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= (function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(/<!--([\\s\\S]*?)-->/mg,\"\").replace(/<!DOCTYPE[^\\[]*\\[[^\\]]*\\]>/gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5  borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9  cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8  cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nvar STYLES_XML_ROOT = writextag('styleSheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:vt': XMLNS.vt\n});\n\nRELS.STY = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\";\n\nfunction write_sty_xml(wb, opts) {\n\tvar o = [XML_HEADER, STYLES_XML_ROOT], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('<fonts count=\"1\"><font><sz val=\"12\"/><color theme=\"1\"/><name val=\"Calibri\"/><family val=\"2\"/><scheme val=\"minor\"/></font></fonts>');\n\to[o.length] = ('<fills count=\"2\"><fill><patternFill patternType=\"none\"/></fill><fill><patternFill patternType=\"gray125\"/></fill></fills>');\n\to[o.length] = ('<borders count=\"1\"><border><left/><right/><top/><bottom/><diagonal/></border></borders>');\n\to[o.length] = ('<cellStyleXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/></cellStyleXfs>');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('<cellStyles count=\"1\"><cellStyle name=\"Normal\" xfId=\"0\" builtinId=\"0\"/></cellStyles>');\n\to[o.length] = ('<dxfs count=\"0\"/>');\n\to[o.length] = ('<tableStyles count=\"0\" defaultTableStyle=\"TableStyleMedium9\" defaultPivotStyle=\"PivotStyleMedium4\"/>');\n\n\tif(o.length>2){ o[o.length] = ('</styleSheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i, f, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length, opts) {\n\tvar out = ({});\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames = (evert(XLSBFillPTNames));\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tvar fls = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]);\n\tfor(var y in SSF._table) styles.NumberFmt[y] = SSF._table[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* 'BrtFmt' */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF.load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* 'BrtFont' */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* 'BrtKnownFonts' */ break;\n\t\t\tcase 0x002D: /* 'BrtFill' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* 'BrtBorder' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* 'BrtXF' */\n\t\t\t\tif(state[state.length - 1] == \"BrtBeginCellXFs\") {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* 'BrtStyle' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x023C: /* 'BrtMRUColor' */\n\t\t\tcase 0x01DB: /* 'BrtIndexedColor': */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* 'BrtDXF14' */\n\t\t\tcase 0x0836: /* 'BrtDXF15' */\n\t\t\tcase 0x046A: /* 'BrtSlicerStyleElement' */\n\t\t\tcase 0x0200: /* 'BrtTableStyleElement' */\n\t\t\tcase 0x082F: /* 'BrtTimelineStyleElement' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFmts\", write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, \"BrtFmt\", write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, \"BrtEndFmts\");\n}\n\nfunction write_FONTS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFonts\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFont\", write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, \"BrtEndFonts\");\n}\n\nfunction write_FILLS_bin(ba) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFills\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, \"BrtEndFills\");\n}\n\nfunction write_BORDERS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginBorders\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtBorder\", write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, \"BrtEndBorders\");\n}\n\nfunction write_CELLSTYLEXFS_bin(ba) {\n\tvar cnt = 1;\n\twrite_record(ba, \"BrtBeginCellStyleXFs\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtXF\", write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId:   0,\n\t\tfillId:   0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellStyleXFs\");\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, \"BrtBeginCellXFs\", write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, \"BrtXF\", write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellXFs\");\n}\n\nfunction write_STYLES_bin(ba) {\n\tvar cnt = 1;\n\n\twrite_record(ba, \"BrtBeginStyles\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtStyle\", write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, \"BrtEndStyles\");\n}\n\nfunction write_DXFS_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginDXFs\", write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, \"BrtEndDXFs\");\n}\n\nfunction write_TABLESTYLES_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginTableStyles\", write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, \"BrtEndTableStyles\");\n}\n\nfunction write_COLORPALETTE_bin() {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginStyleSheet\");\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, \"BrtEndStyleSheet\");\n\treturn ba.end();\n}\nRELS.THEME = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\";\n\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'</a:lt1>', '</a:dk1>', '</a:lt2>', '</a:dk2>',\n\t'</a:accent1>', '</a:accent2>', '</a:accent3>',\n\t'</a:accent4>', '</a:accent5>', '</a:accent6>',\n\t'</a:hlink>', '</a:folHlink>'\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '<a:clrScheme': case '</a:clrScheme>': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '<a:srgbClr':\n\t\t\t\tcolor.rgb = y.val; break;\n\n\t\t\t/* 20.1.2.3.33 sysClr CT_SystemColor */\n\t\t\tcase '<a:sysClr':\n\t\t\t\tcolor.rgb = y.lastClr; break;\n\n\t\t\t/* 20.1.4.1.1 accent1 (Accent 1) */\n\t\t\t/* 20.1.4.1.2 accent2 (Accent 2) */\n\t\t\t/* 20.1.4.1.3 accent3 (Accent 3) */\n\t\t\t/* 20.1.4.1.4 accent4 (Accent 4) */\n\t\t\t/* 20.1.4.1.5 accent5 (Accent 5) */\n\t\t\t/* 20.1.4.1.6 accent6 (Accent 6) */\n\t\t\t/* 20.1.4.1.9 dk1 (Dark 1) */\n\t\t\t/* 20.1.4.1.10 dk2 (Dark 2) */\n\t\t\t/* 20.1.4.1.15 folHlink (Followed Hyperlink) */\n\t\t\t/* 20.1.4.1.19 hlink (Hyperlink) */\n\t\t\t/* 20.1.4.1.22 lt1 (Light 1) */\n\t\t\t/* 20.1.4.1.23 lt2 (Light 2) */\n\t\t\tcase '<a:dk1>': case '</a:dk1>':\n\t\t\tcase '<a:lt1>': case '</a:lt1>':\n\t\t\tcase '<a:dk2>': case '</a:dk2>':\n\t\t\tcase '<a:lt2>': case '</a:lt2>':\n\t\t\tcase '<a:accent1>': case '</a:accent1>':\n\t\t\tcase '<a:accent2>': case '</a:accent2>':\n\t\t\tcase '<a:accent3>': case '</a:accent3>':\n\t\t\tcase '<a:accent4>': case '</a:accent4>':\n\t\t\tcase '<a:accent5>': case '</a:accent5>':\n\t\t\tcase '<a:accent6>': case '</a:accent6>':\n\t\t\tcase '<a:hlink>': case '</a:hlink>':\n\t\t\tcase '<a:folHlink>': case '</a:folHlink>':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme() { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme() { }\n\nvar clrsregex = /<a:clrScheme([^>]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /<a:fontScheme([^>]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /<a:fmtScheme([^>]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /<a:themeElements([^>]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) return parse_theme_xml(write_theme());\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts) {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\">';\n\to[o.length] =  '<a:themeElements>';\n\n\to[o.length] =   '<a:clrScheme name=\"Office\">';\n\to[o.length] =    '<a:dk1><a:sysClr val=\"windowText\" lastClr=\"000000\"/></a:dk1>';\n\to[o.length] =    '<a:lt1><a:sysClr val=\"window\" lastClr=\"FFFFFF\"/></a:lt1>';\n\to[o.length] =    '<a:dk2><a:srgbClr val=\"1F497D\"/></a:dk2>';\n\to[o.length] =    '<a:lt2><a:srgbClr val=\"EEECE1\"/></a:lt2>';\n\to[o.length] =    '<a:accent1><a:srgbClr val=\"4F81BD\"/></a:accent1>';\n\to[o.length] =    '<a:accent2><a:srgbClr val=\"C0504D\"/></a:accent2>';\n\to[o.length] =    '<a:accent3><a:srgbClr val=\"9BBB59\"/></a:accent3>';\n\to[o.length] =    '<a:accent4><a:srgbClr val=\"8064A2\"/></a:accent4>';\n\to[o.length] =    '<a:accent5><a:srgbClr val=\"4BACC6\"/></a:accent5>';\n\to[o.length] =    '<a:accent6><a:srgbClr val=\"F79646\"/></a:accent6>';\n\to[o.length] =    '<a:hlink><a:srgbClr val=\"0000FF\"/></a:hlink>';\n\to[o.length] =    '<a:folHlink><a:srgbClr val=\"800080\"/></a:folHlink>';\n\to[o.length] =   '</a:clrScheme>';\n\n\to[o.length] =   '<a:fontScheme name=\"Office\">';\n\to[o.length] =    '<a:majorFont>';\n\to[o.length] =     '<a:latin typeface=\"Cambria\"/>';\n\to[o.length] =     '<a:ea typeface=\"\"/>';\n\to[o.length] =     '<a:cs typeface=\"\"/>';\n\to[o.length] =     '<a:font script=\"Jpan\" typeface=\"ＭＳ Ｐゴシック\"/>';\n\to[o.length] =     '<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>';\n\to[o.length] =     '<a:font script=\"Hans\" typeface=\"宋体\"/>';\n\to[o.length] =     '<a:font script=\"Hant\" typeface=\"新細明體\"/>';\n\to[o.length] =     '<a:font script=\"Arab\" typeface=\"Times New Roman\"/>';\n\to[o.length] =     '<a:font script=\"Hebr\" typeface=\"Times New Roman\"/>';\n\to[o.length] =     '<a:font script=\"Thai\" typeface=\"Tahoma\"/>';\n\to[o.length] =     '<a:font script=\"Ethi\" typeface=\"Nyala\"/>';\n\to[o.length] =     '<a:font script=\"Beng\" typeface=\"Vrinda\"/>';\n\to[o.length] =     '<a:font script=\"Gujr\" typeface=\"Shruti\"/>';\n\to[o.length] =     '<a:font script=\"Khmr\" typeface=\"MoolBoran\"/>';\n\to[o.length] =     '<a:font script=\"Knda\" typeface=\"Tunga\"/>';\n\to[o.length] =     '<a:font script=\"Guru\" typeface=\"Raavi\"/>';\n\to[o.length] =     '<a:font script=\"Cans\" typeface=\"Euphemia\"/>';\n\to[o.length] =     '<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>';\n\to[o.length] =     '<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>';\n\to[o.length] =     '<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>';\n\to[o.length] =     '<a:font script=\"Thaa\" typeface=\"MV Boli\"/>';\n\to[o.length] =     '<a:font script=\"Deva\" typeface=\"Mangal\"/>';\n\to[o.length] =     '<a:font script=\"Telu\" typeface=\"Gautami\"/>';\n\to[o.length] =     '<a:font script=\"Taml\" typeface=\"Latha\"/>';\n\to[o.length] =     '<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>';\n\to[o.length] =     '<a:font script=\"Orya\" typeface=\"Kalinga\"/>';\n\to[o.length] =     '<a:font script=\"Mlym\" typeface=\"Kartika\"/>';\n\to[o.length] =     '<a:font script=\"Laoo\" typeface=\"DokChampa\"/>';\n\to[o.length] =     '<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>';\n\to[o.length] =     '<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>';\n\to[o.length] =     '<a:font script=\"Viet\" typeface=\"Times New Roman\"/>';\n\to[o.length] =     '<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>';\n\to[o.length] =     '<a:font script=\"Geor\" typeface=\"Sylfaen\"/>';\n\to[o.length] =    '</a:majorFont>';\n\to[o.length] =    '<a:minorFont>';\n\to[o.length] =     '<a:latin typeface=\"Calibri\"/>';\n\to[o.length] =     '<a:ea typeface=\"\"/>';\n\to[o.length] =     '<a:cs typeface=\"\"/>';\n\to[o.length] =     '<a:font script=\"Jpan\" typeface=\"ＭＳ Ｐゴシック\"/>';\n\to[o.length] =     '<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>';\n\to[o.length] =     '<a:font script=\"Hans\" typeface=\"宋体\"/>';\n\to[o.length] =     '<a:font script=\"Hant\" typeface=\"新細明體\"/>';\n\to[o.length] =     '<a:font script=\"Arab\" typeface=\"Arial\"/>';\n\to[o.length] =     '<a:font script=\"Hebr\" typeface=\"Arial\"/>';\n\to[o.length] =     '<a:font script=\"Thai\" typeface=\"Tahoma\"/>';\n\to[o.length] =     '<a:font script=\"Ethi\" typeface=\"Nyala\"/>';\n\to[o.length] =     '<a:font script=\"Beng\" typeface=\"Vrinda\"/>';\n\to[o.length] =     '<a:font script=\"Gujr\" typeface=\"Shruti\"/>';\n\to[o.length] =     '<a:font script=\"Khmr\" typeface=\"DaunPenh\"/>';\n\to[o.length] =     '<a:font script=\"Knda\" typeface=\"Tunga\"/>';\n\to[o.length] =     '<a:font script=\"Guru\" typeface=\"Raavi\"/>';\n\to[o.length] =     '<a:font script=\"Cans\" typeface=\"Euphemia\"/>';\n\to[o.length] =     '<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>';\n\to[o.length] =     '<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>';\n\to[o.length] =     '<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>';\n\to[o.length] =     '<a:font script=\"Thaa\" typeface=\"MV Boli\"/>';\n\to[o.length] =     '<a:font script=\"Deva\" typeface=\"Mangal\"/>';\n\to[o.length] =     '<a:font script=\"Telu\" typeface=\"Gautami\"/>';\n\to[o.length] =     '<a:font script=\"Taml\" typeface=\"Latha\"/>';\n\to[o.length] =     '<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>';\n\to[o.length] =     '<a:font script=\"Orya\" typeface=\"Kalinga\"/>';\n\to[o.length] =     '<a:font script=\"Mlym\" typeface=\"Kartika\"/>';\n\to[o.length] =     '<a:font script=\"Laoo\" typeface=\"DokChampa\"/>';\n\to[o.length] =     '<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>';\n\to[o.length] =     '<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>';\n\to[o.length] =     '<a:font script=\"Viet\" typeface=\"Arial\"/>';\n\to[o.length] =     '<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>';\n\to[o.length] =     '<a:font script=\"Geor\" typeface=\"Sylfaen\"/>';\n\to[o.length] =    '</a:minorFont>';\n\to[o.length] =   '</a:fontScheme>';\n\n\to[o.length] =   '<a:fmtScheme name=\"Office\">';\n\to[o.length] =    '<a:fillStyleLst>';\n\to[o.length] =     '<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>';\n\to[o.length] =     '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] =      '<a:gsLst>';\n\to[o.length] =       '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] =       '<a:gs pos=\"35000\"><a:schemeClr val=\"phClr\"><a:tint val=\"37000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] =       '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"15000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] =      '</a:gsLst>';\n\to[o.length] =      '<a:lin ang=\"16200000\" scaled=\"1\"/>';\n\to[o.length] =     '</a:gradFill>';\n\to[o.length] =     '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] =      '<a:gsLst>';\n\to[o.length] =       '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"100000\"/><a:shade val=\"100000\"/><a:satMod val=\"130000\"/></a:schemeClr></a:gs>';\n\to[o.length] =       '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:shade val=\"100000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] =      '</a:gsLst>';\n\to[o.length] =      '<a:lin ang=\"16200000\" scaled=\"0\"/>';\n\to[o.length] =     '</a:gradFill>';\n\to[o.length] =    '</a:fillStyleLst>';\n\to[o.length] =    '<a:lnStyleLst>';\n\to[o.length] =     '<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>';\n\to[o.length] =     '<a:ln w=\"25400\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] =     '<a:ln w=\"38100\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] =    '</a:lnStyleLst>';\n\to[o.length] =    '<a:effectStyleLst>';\n\to[o.length] =     '<a:effectStyle>';\n\to[o.length] =      '<a:effectLst>';\n\to[o.length] =       '<a:outerShdw blurRad=\"40000\" dist=\"20000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"38000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] =      '</a:effectLst>';\n\to[o.length] =     '</a:effectStyle>';\n\to[o.length] =     '<a:effectStyle>';\n\to[o.length] =      '<a:effectLst>';\n\to[o.length] =       '<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] =      '</a:effectLst>';\n\to[o.length] =     '</a:effectStyle>';\n\to[o.length] =     '<a:effectStyle>';\n\to[o.length] =      '<a:effectLst>';\n\to[o.length] =       '<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] =      '</a:effectLst>';\n\to[o.length] =      '<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>';\n\to[o.length] =      '<a:sp3d><a:bevelT w=\"63500\" h=\"25400\"/></a:sp3d>';\n\to[o.length] =     '</a:effectStyle>';\n\to[o.length] =    '</a:effectStyleLst>';\n\to[o.length] =    '<a:bgFillStyleLst>';\n\to[o.length] =     '<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>';\n\to[o.length] =     '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] =      '<a:gsLst>';\n\to[o.length] =       '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"40000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] =       '<a:gs pos=\"40000\"><a:schemeClr val=\"phClr\"><a:tint val=\"45000\"/><a:shade val=\"99000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] =       '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"20000\"/><a:satMod val=\"255000\"/></a:schemeClr></a:gs>';\n\to[o.length] =      '</a:gsLst>';\n\to[o.length] =      '<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"-80000\" r=\"50000\" b=\"180000\"/></a:path>';\n\to[o.length] =     '</a:gradFill>';\n\to[o.length] =     '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] =      '<a:gsLst>';\n\to[o.length] =       '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"80000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] =       '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"30000\"/><a:satMod val=\"200000\"/></a:schemeClr></a:gs>';\n\to[o.length] =      '</a:gsLst>';\n\to[o.length] =      '<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"50000\" r=\"50000\" b=\"50000\"/></a:path>';\n\to[o.length] =     '</a:gradFill>';\n\to[o.length] =    '</a:bgFillStyleLst>';\n\to[o.length] =   '</a:fmtScheme>';\n\to[o.length] =  '</a:themeElements>';\n\n\to[o.length] =  '<a:objectDefaults>';\n\to[o.length] =   '<a:spDef>';\n\to[o.length] =    '<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>';\n\to[o.length] =   '</a:spDef>';\n\to[o.length] =   '<a:lnDef>';\n\to[o.length] =    '<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>';\n\to[o.length] =   '</a:lnDef>';\n\to[o.length] =  '</a:objectDefaults>';\n\to[o.length] =  '<a:extraClrSchemeLst/>';\n\to[o.length] = '</a:theme>';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles || !jszip) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = new jszip(data); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob) {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data) {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<?xml': break;\n\t\t\t/* 18.6.2  calcChain CT_CalcChain 1 */\n\t\t\tcase '<calcChain': case '<calcChain>': case '</calcChain>': break;\n\t\t\t/* 18.6.1  c CT_CalcCell 1 */\n\t\t\tcase '<c': delete y[0]; if(y.i) i = y.i; else y.i = i; d.push(y); break;\n\t\t}\n\t});\n\treturn d;\n}\n\n//function write_cc_xml(data, opts) { }\n\n/* [MS-XLSB] 2.6.4.1 */\nfunction parse_BrtCalcChainItem$(data) {\n\tvar out = {};\n\tout.i = data.read_shift(4);\n\tvar cell = {};\n\tcell.r = data.read_shift(4);\n\tcell.c = data.read_shift(4);\n\tout.r = encode_cell(cell);\n\tvar flags = data.read_shift(1);\n\tif(flags & 0x2) out.l = '1';\n\tif(flags & 0x8) out.a = '1';\n\treturn out;\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_bin(data, name, opts) {\n\tvar out = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_cc(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x003F: /* 'BrtCalcChainItem$' */\n\t\t\t\tout.push(val); break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\n//function write_cc_bin(data, opts) { }\n/* 18.14 Supplementary Workbook Data */\nfunction parse_xlink_xml() {\n\t//var opts = _opts || {};\n\t//if(opts.WTF) throw \"XLSX External Link\";\n}\n\n/* [MS-XLSB] 2.1.7.25 External Link */\nfunction parse_xlink_bin(data, rel, name, _opts) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\n\tvar pass = false, end = false;\n\n\trecordhopper(data, function xlink_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0167: /* 'BrtSupTabs' */\n\t\t\tcase 0x016B: /* 'BrtExternTableStart' */\n\t\t\tcase 0x016C: /* 'BrtExternTableEnd' */\n\t\t\tcase 0x016E: /* 'BrtExternRowHdr' */\n\t\t\tcase 0x016F: /* 'BrtExternCellBlank' */\n\t\t\tcase 0x0170: /* 'BrtExternCellReal' */\n\t\t\tcase 0x0171: /* 'BrtExternCellBool' */\n\t\t\tcase 0x0172: /* 'BrtExternCellError' */\n\t\t\tcase 0x0173: /* 'BrtExternCellString' */\n\t\t\tcase 0x01D8: /* 'BrtExternValueMeta' */\n\t\t\tcase 0x0241: /* 'BrtSupNameStart' */\n\t\t\tcase 0x0242: /* 'BrtSupNameValueStart' */\n\t\t\tcase 0x0243: /* 'BrtSupNameValueEnd' */\n\t\t\tcase 0x0244: /* 'BrtSupNameNum' */\n\t\t\tcase 0x0245: /* 'BrtSupNameErr' */\n\t\t\tcase 0x0246: /* 'BrtSupNameSt' */\n\t\t\tcase 0x0247: /* 'BrtSupNameNil' */\n\t\t\tcase 0x0248: /* 'BrtSupNameBool' */\n\t\t\tcase 0x0249: /* 'BrtSupNameFmla' */\n\t\t\tcase 0x024A: /* 'BrtSupNameBits' */\n\t\t\tcase 0x024B: /* 'BrtSupNameEnd' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT.toString(16) + \" \" + R_n);\n\t\t}\n\t}, opts);\n}\n/* 20.5 DrawingML - SpreadsheetML Drawing */\nRELS.IMG = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\";\nRELS.DRAW = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\";\n\n/* 20.5.2.35 wsDr CT_Drawing */\nfunction parse_drawing(data, rels) {\n\tif(!data) return \"??\";\n\t/*\n\t  Chartsheet Drawing:\n\t   - 20.5.2.35 wsDr CT_Drawing\n\t    - 20.5.2.1  absoluteAnchor CT_AbsoluteAnchor\n\t     - 20.5.2.16 graphicFrame CT_GraphicalObjectFrame\n\t      - 20.1.2.2.16 graphic CT_GraphicalObject\n\t       - 20.1.2.2.17 graphicData CT_GraphicalObjectData\n          - chart reference\n\t   the actual type is based on the URI of the graphicData\n\t\tTODO: handle embedded charts and other types of graphics\n\t*/\n\tvar id = (data.match(/<c:chart [^>]*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nvar _shapeid = 1024;\nfunction write_comments_vml(rId, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\n\t\twritextag(\"v:shapetype\", [\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\n\t];\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\n\n\tcomments.forEach(function(x) {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = {'color2':\"#BEFF82\", 'type':\"gradient\"};\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"});\n\t++_shapeid;\n\n\to = o.concat([\n\t'<v:shape' + wxt_helper({\n\t\tid:'_x0000_s' + _shapeid,\n\t\ttype:\"#_x0000_t202\",\n\t\tstyle:\"position:absolute; margin-left:80pt;margin-top:5pt;width:104pt;height:64pt;z-index:10\" + (x[1].hidden ? \";visibility:hidden\" : \"\") ,\n\t\tfillcolor:\"#ECFAD4\",\n\t\tstrokecolor:\"#edeaa1\"\n\t}) + '>',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'<v:textbox><div style=\"text-align:left\"></div></v:textbox>',\n\t\t'<x:ClientData ObjectType=\"Note\">',\n\t\t\t'<x:MoveWithCells/>',\n\t\t\t'<x:SizeWithCells/>',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '<x:Visible/>',\n\t\t'</x:ClientData>',\n\t'</v:shape>'\n\t]); });\n\to.push('</xml>');\n\treturn o.join(\"\");\n}\nRELS.CMNT = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\";\n\nfunction sheet_insert_comments(sheet, comments) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(dense) {\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\n\t\t\tcell = sheet[r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"});\n\t\t\tif(dense) sheet[r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o = ({a: comment.author, t: comment.t, r: comment.r});\n\t\tif(comment.h) o.h = comment.h;\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7 Comments */\nfunction parse_comments_xml(data, opts) {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors = [];\n\tvar commentList = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid });\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"<t></t>\") rt.t = rt.h = \"\";\n\t\tcomment.t = rt.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nvar CMNT_XML_ROOT = writextag('comments', null, { 'xmlns': XMLNS.main[0] });\nfunction write_comments_xml(data) {\n\tvar o = [XML_HEADER, CMNT_XML_ROOT];\n\n\tvar iauthor = [];\n\to.push(\"<authors>\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) > -1) return;\n\t\tiauthor.push(a);\n\t\to.push(\"<author>\" + a + \"</author>\");\n\t}); });\n\to.push(\"</authors>\");\n\to.push(\"<commentList>\");\n\tdata.forEach(function(d) {\n\t\td[1].forEach(function(c) {\n\t\t\t/* 18.7.3 CT_Comment */\n\t\t\to.push('<comment ref=\"' + d[0] + '\" authorId=\"' + iauthor.indexOf(escapexml(c.a)) + '\"><text>');\n\t\t\to.push(writetag(\"t\", c.t == null ? \"\" : escapexml(c.t)));\n\t\t\to.push('</text></comment>');\n\t\t});\n\t});\n\to.push(\"</commentList>\");\n\tif(o.length>2) { o[o.length] = ('</comments>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts) {\n\tvar out = [];\n\tvar authors = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data) {\n\tvar ba = buf_array();\n\tvar iauthor = [];\n\twrite_record(ba, \"BrtBeginComments\");\n\n\twrite_record(ba, \"BrtBeginCommentAuthors\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, \"BrtCommentAuthor\", write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentAuthors\");\n\n\twrite_record(ba, \"BrtBeginCommentList\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, \"BrtBeginComment\", write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, \"BrtCommentText\", write_BrtCommentText(c));\n\t\t\twrite_record(ba, \"BrtEndComment\");\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentList\");\n\n\twrite_record(ba, \"BrtEndComments\");\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n\tvar newcfb = CFB.utils.cfb_new({root:\"R\"});\n\tcfb.FullPaths.forEach(function(p, i) {\n\t\tif(p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/)) return;\n\t\tvar newpath = p.replace(/^[^\\/]*/,\"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n\t\tCFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n\t});\n\treturn CFB.write(newcfb);\n}\n\nfunction fill_vba_xls(cfb, vba) {\n\tvba.FullPaths.forEach(function(p, i) {\n\t\tif(i == 0) return;\n\t\tvar newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n\t\tif(newpath.slice(-1) !== \"/\") CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n\t});\n}\n\nvar VBAFMTS = [ \"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\" ];\n\nRELS.DS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\";\nRELS.MS = \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\";\n\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin() { return {'!type':'dialog'}; }\nfunction parse_ds_xml() { return {'!type':'dialog'}; }\nfunction parse_ms_bin() { return {'!type':'macro'}; }\nfunction parse_ms_xml() { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = (function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase = ({r:0,c:0});\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr, base) {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc =(function(){\n\treturn function a1_to_rc(fstr, base) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = (r == 0 ? \"\" : !$4 ? \"[\" + r + \"]\" : (r+1));\n\t\t\tvar C = (c == 0 ? \"\" : !$2 ? \"[\" + c + \"]\" : (c+1));\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f, delta) {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f, range, cell) {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f) {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f) {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts) {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73  ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n0x01: { n:'PtgExp', f:parse_PtgExp },\n0x02: { n:'PtgTbl', f:parse_PtgTbl },\n0x03: { n:'PtgAdd', f:parseread1 },\n0x04: { n:'PtgSub', f:parseread1 },\n0x05: { n:'PtgMul', f:parseread1 },\n0x06: { n:'PtgDiv', f:parseread1 },\n0x07: { n:'PtgPower', f:parseread1 },\n0x08: { n:'PtgConcat', f:parseread1 },\n0x09: { n:'PtgLt', f:parseread1 },\n0x0A: { n:'PtgLe', f:parseread1 },\n0x0B: { n:'PtgEq', f:parseread1 },\n0x0C: { n:'PtgGe', f:parseread1 },\n0x0D: { n:'PtgGt', f:parseread1 },\n0x0E: { n:'PtgNe', f:parseread1 },\n0x0F: { n:'PtgIsect', f:parseread1 },\n0x10: { n:'PtgUnion', f:parseread1 },\n0x11: { n:'PtgRange', f:parseread1 },\n0x12: { n:'PtgUplus', f:parseread1 },\n0x13: { n:'PtgUminus', f:parseread1 },\n0x14: { n:'PtgPercent', f:parseread1 },\n0x15: { n:'PtgParen', f:parseread1 },\n0x16: { n:'PtgMissArg', f:parseread1 },\n0x17: { n:'PtgStr', f:parse_PtgStr },\n0x1A: { n:'PtgSheet', f:parse_PtgSheet },\n0x1B: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n0x1C: { n:'PtgErr', f:parse_PtgErr },\n0x1D: { n:'PtgBool', f:parse_PtgBool },\n0x1E: { n:'PtgInt', f:parse_PtgInt },\n0x1F: { n:'PtgNum', f:parse_PtgNum },\n0x20: { n:'PtgArray', f:parse_PtgArray },\n0x21: { n:'PtgFunc', f:parse_PtgFunc },\n0x22: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n0x23: { n:'PtgName', f:parse_PtgName },\n0x24: { n:'PtgRef', f:parse_PtgRef },\n0x25: { n:'PtgArea', f:parse_PtgArea },\n0x26: { n:'PtgMemArea', f:parse_PtgMemArea },\n0x27: { n:'PtgMemErr', f:parse_PtgMemErr },\n0x28: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n0x29: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n0x2A: { n:'PtgRefErr', f:parse_PtgRefErr },\n0x2B: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n0x2C: { n:'PtgRefN', f:parse_PtgRefN },\n0x2D: { n:'PtgAreaN', f:parse_PtgAreaN },\n0x2E: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n0x2F: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n0x39: { n:'PtgNameX', f:parse_PtgNameX },\n0x3A: { n:'PtgRef3d', f:parse_PtgRef3d },\n0x3B: { n:'PtgArea3d', f:parse_PtgArea3d },\n0x3C: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n0x3D: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n0xFF: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n0x40: 0x20, 0x60: 0x20,\n0x41: 0x21, 0x61: 0x21,\n0x42: 0x22, 0x62: 0x22,\n0x43: 0x23, 0x63: 0x23,\n0x44: 0x24, 0x64: 0x24,\n0x45: 0x25, 0x65: 0x25,\n0x46: 0x26, 0x66: 0x26,\n0x47: 0x27, 0x67: 0x27,\n0x48: 0x28, 0x68: 0x28,\n0x49: 0x29, 0x69: 0x29,\n0x4A: 0x2A, 0x6A: 0x2A,\n0x4B: 0x2B, 0x6B: 0x2B,\n0x4C: 0x2C, 0x6C: 0x2C,\n0x4D: 0x2D, 0x6D: 0x2D,\n0x4E: 0x2E, 0x6E: 0x2E,\n0x4F: 0x2F, 0x6F: 0x2F,\n0x58: 0x22, 0x78: 0x22,\n0x59: 0x39, 0x79: 0x39,\n0x5A: 0x3A, 0x7A: 0x3A,\n0x5B: 0x3B, 0x7B: 0x3B,\n0x5C: 0x3C, 0x7C: 0x3C,\n0x5D: 0x3D, 0x7D: 0x3D\n};\n(function(){for(var y in PtgDupes) PtgTypes[y] = PtgTypes[PtgDupes[y]];})();\n\nvar Ptg18 = {\n0x01: { n:'PtgElfLel', f:parse_PtgElfLel },\n0x02: { n:'PtgElfRw', f:parse_PtgElfRw },\n0x03: { n:'PtgElfCol', f:parse_PtgElfCol },\n0x06: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n0x07: { n:'PtgElfColV', f:parse_PtgElfColV },\n0x0A: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n0x0B: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n0x0D: { n:'PtgElfColS', f:parse_PtgElfColS },\n0x0F: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n0x10: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n0x19: { n:'PtgList', f:parse_PtgList },\n0x1D: { n:'PtgSxName', f:parse_PtgSxName },\n0xFF: {}\n};\nvar Ptg19 = {\n0x00: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n0x01: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n0x02: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n0x04: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n0x08: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n0x10: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n0x20: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n0x40: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n0x41: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n0x80: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n0xFF: {}\n};\nPtg19[0x21] = Ptg19[0x20];\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f) {\n\tvar o = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\nr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// List of invalid characters needs to be tested further\nvar quoteCharacters  = new RegExp(/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/);\nfunction formula_quote_sheet_name(sname, opts) {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (quoteCharacters.test(sname)) return \"'\" + sname + \"'\";\n\treturn sname;\n}\nfunction get_ixti_raw(supbooks, ixti, opts) {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti, opts) {\n\treturn formula_quote_sheet_name(get_ixti_raw(supbooks, ixti, opts), opts);\n}\nfunction stringify_formula(formula/*Array<any>*/, range, cell, supbooks, opts) {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack = [], e1, e2,  c, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd':    /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv':    /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq':     /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe':     /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt':     /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe':     /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt':     /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul':    /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe':     /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower':  /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub':    /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\":\"+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\nc = shift_cell_xls((f[1][1]), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\nc = cell ? shift_cell_xls((f[1][1]), cell, opts) : (f[1][1]);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\nixti = f[1][1]; c = shift_cell_xls((f[1][2]), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc = (f[1][0]), func = (f[1][1]);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\nr = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\nr = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\nixti = f[1][1]; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\tif(name in XLSXFutureFunctions) name = XLSXFutureFunctions[name];\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx = (f[1][1]); nameidx = (f[1][2]); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = get_ixti_raw(supbooks, bookidx, opts).split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]),r:(f[1][0])};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r});\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(f[1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(f[1]) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell, R, C, opts, os) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLS] 2.5.198.4 */\nvar Cetab = {\n0x0000: 'BEEP',\n0x0001: 'OPEN',\n0x0002: 'OPEN.LINKS',\n0x0003: 'CLOSE.ALL',\n0x0004: 'SAVE',\n0x0005: 'SAVE.AS',\n0x0006: 'FILE.DELETE',\n0x0007: 'PAGE.SETUP',\n0x0008: 'PRINT',\n0x0009: 'PRINTER.SETUP',\n0x000A: 'QUIT',\n0x000B: 'NEW.WINDOW',\n0x000C: 'ARRANGE.ALL',\n0x000D: 'WINDOW.SIZE',\n0x000E: 'WINDOW.MOVE',\n0x000F: 'FULL',\n0x0010: 'CLOSE',\n0x0011: 'RUN',\n0x0016: 'SET.PRINT.AREA',\n0x0017: 'SET.PRINT.TITLES',\n0x0018: 'SET.PAGE.BREAK',\n0x0019: 'REMOVE.PAGE.BREAK',\n0x001A: 'FONT',\n0x001B: 'DISPLAY',\n0x001C: 'PROTECT.DOCUMENT',\n0x001D: 'PRECISION',\n0x001E: 'A1.R1C1',\n0x001F: 'CALCULATE.NOW',\n0x0020: 'CALCULATION',\n0x0022: 'DATA.FIND',\n0x0023: 'EXTRACT',\n0x0024: 'DATA.DELETE',\n0x0025: 'SET.DATABASE',\n0x0026: 'SET.CRITERIA',\n0x0027: 'SORT',\n0x0028: 'DATA.SERIES',\n0x0029: 'TABLE',\n0x002A: 'FORMAT.NUMBER',\n0x002B: 'ALIGNMENT',\n0x002C: 'STYLE',\n0x002D: 'BORDER',\n0x002E: 'CELL.PROTECTION',\n0x002F: 'COLUMN.WIDTH',\n0x0030: 'UNDO',\n0x0031: 'CUT',\n0x0032: 'COPY',\n0x0033: 'PASTE',\n0x0034: 'CLEAR',\n0x0035: 'PASTE.SPECIAL',\n0x0036: 'EDIT.DELETE',\n0x0037: 'INSERT',\n0x0038: 'FILL.RIGHT',\n0x0039: 'FILL.DOWN',\n0x003D: 'DEFINE.NAME',\n0x003E: 'CREATE.NAMES',\n0x003F: 'FORMULA.GOTO',\n0x0040: 'FORMULA.FIND',\n0x0041: 'SELECT.LAST.CELL',\n0x0042: 'SHOW.ACTIVE.CELL',\n0x0043: 'GALLERY.AREA',\n0x0044: 'GALLERY.BAR',\n0x0045: 'GALLERY.COLUMN',\n0x0046: 'GALLERY.LINE',\n0x0047: 'GALLERY.PIE',\n0x0048: 'GALLERY.SCATTER',\n0x0049: 'COMBINATION',\n0x004A: 'PREFERRED',\n0x004B: 'ADD.OVERLAY',\n0x004C: 'GRIDLINES',\n0x004D: 'SET.PREFERRED',\n0x004E: 'AXES',\n0x004F: 'LEGEND',\n0x0050: 'ATTACH.TEXT',\n0x0051: 'ADD.ARROW',\n0x0052: 'SELECT.CHART',\n0x0053: 'SELECT.PLOT.AREA',\n0x0054: 'PATTERNS',\n0x0055: 'MAIN.CHART',\n0x0056: 'OVERLAY',\n0x0057: 'SCALE',\n0x0058: 'FORMAT.LEGEND',\n0x0059: 'FORMAT.TEXT',\n0x005A: 'EDIT.REPEAT',\n0x005B: 'PARSE',\n0x005C: 'JUSTIFY',\n0x005D: 'HIDE',\n0x005E: 'UNHIDE',\n0x005F: 'WORKSPACE',\n0x0060: 'FORMULA',\n0x0061: 'FORMULA.FILL',\n0x0062: 'FORMULA.ARRAY',\n0x0063: 'DATA.FIND.NEXT',\n0x0064: 'DATA.FIND.PREV',\n0x0065: 'FORMULA.FIND.NEXT',\n0x0066: 'FORMULA.FIND.PREV',\n0x0067: 'ACTIVATE',\n0x0068: 'ACTIVATE.NEXT',\n0x0069: 'ACTIVATE.PREV',\n0x006A: 'UNLOCKED.NEXT',\n0x006B: 'UNLOCKED.PREV',\n0x006C: 'COPY.PICTURE',\n0x006D: 'SELECT',\n0x006E: 'DELETE.NAME',\n0x006F: 'DELETE.FORMAT',\n0x0070: 'VLINE',\n0x0071: 'HLINE',\n0x0072: 'VPAGE',\n0x0073: 'HPAGE',\n0x0074: 'VSCROLL',\n0x0075: 'HSCROLL',\n0x0076: 'ALERT',\n0x0077: 'NEW',\n0x0078: 'CANCEL.COPY',\n0x0079: 'SHOW.CLIPBOARD',\n0x007A: 'MESSAGE',\n0x007C: 'PASTE.LINK',\n0x007D: 'APP.ACTIVATE',\n0x007E: 'DELETE.ARROW',\n0x007F: 'ROW.HEIGHT',\n0x0080: 'FORMAT.MOVE',\n0x0081: 'FORMAT.SIZE',\n0x0082: 'FORMULA.REPLACE',\n0x0083: 'SEND.KEYS',\n0x0084: 'SELECT.SPECIAL',\n0x0085: 'APPLY.NAMES',\n0x0086: 'REPLACE.FONT',\n0x0087: 'FREEZE.PANES',\n0x0088: 'SHOW.INFO',\n0x0089: 'SPLIT',\n0x008A: 'ON.WINDOW',\n0x008B: 'ON.DATA',\n0x008C: 'DISABLE.INPUT',\n0x008E: 'OUTLINE',\n0x008F: 'LIST.NAMES',\n0x0090: 'FILE.CLOSE',\n0x0091: 'SAVE.WORKBOOK',\n0x0092: 'DATA.FORM',\n0x0093: 'COPY.CHART',\n0x0094: 'ON.TIME',\n0x0095: 'WAIT',\n0x0096: 'FORMAT.FONT',\n0x0097: 'FILL.UP',\n0x0098: 'FILL.LEFT',\n0x0099: 'DELETE.OVERLAY',\n0x009B: 'SHORT.MENUS',\n0x009F: 'SET.UPDATE.STATUS',\n0x00A1: 'COLOR.PALETTE',\n0x00A2: 'DELETE.STYLE',\n0x00A3: 'WINDOW.RESTORE',\n0x00A4: 'WINDOW.MAXIMIZE',\n0x00A6: 'CHANGE.LINK',\n0x00A7: 'CALCULATE.DOCUMENT',\n0x00A8: 'ON.KEY',\n0x00A9: 'APP.RESTORE',\n0x00AA: 'APP.MOVE',\n0x00AB: 'APP.SIZE',\n0x00AC: 'APP.MINIMIZE',\n0x00AD: 'APP.MAXIMIZE',\n0x00AE: 'BRING.TO.FRONT',\n0x00AF: 'SEND.TO.BACK',\n0x00B9: 'MAIN.CHART.TYPE',\n0x00BA: 'OVERLAY.CHART.TYPE',\n0x00BB: 'SELECT.END',\n0x00BC: 'OPEN.MAIL',\n0x00BD: 'SEND.MAIL',\n0x00BE: 'STANDARD.FONT',\n0x00BF: 'CONSOLIDATE',\n0x00C0: 'SORT.SPECIAL',\n0x00C1: 'GALLERY.3D.AREA',\n0x00C2: 'GALLERY.3D.COLUMN',\n0x00C3: 'GALLERY.3D.LINE',\n0x00C4: 'GALLERY.3D.PIE',\n0x00C5: 'VIEW.3D',\n0x00C6: 'GOAL.SEEK',\n0x00C7: 'WORKGROUP',\n0x00C8: 'FILL.GROUP',\n0x00C9: 'UPDATE.LINK',\n0x00CA: 'PROMOTE',\n0x00CB: 'DEMOTE',\n0x00CC: 'SHOW.DETAIL',\n0x00CE: 'UNGROUP',\n0x00CF: 'OBJECT.PROPERTIES',\n0x00D0: 'SAVE.NEW.OBJECT',\n0x00D1: 'SHARE',\n0x00D2: 'SHARE.NAME',\n0x00D3: 'DUPLICATE',\n0x00D4: 'APPLY.STYLE',\n0x00D5: 'ASSIGN.TO.OBJECT',\n0x00D6: 'OBJECT.PROTECTION',\n0x00D7: 'HIDE.OBJECT',\n0x00D8: 'SET.EXTRACT',\n0x00D9: 'CREATE.PUBLISHER',\n0x00DA: 'SUBSCRIBE.TO',\n0x00DB: 'ATTRIBUTES',\n0x00DC: 'SHOW.TOOLBAR',\n0x00DE: 'PRINT.PREVIEW',\n0x00DF: 'EDIT.COLOR',\n0x00E0: 'SHOW.LEVELS',\n0x00E1: 'FORMAT.MAIN',\n0x00E2: 'FORMAT.OVERLAY',\n0x00E3: 'ON.RECALC',\n0x00E4: 'EDIT.SERIES',\n0x00E5: 'DEFINE.STYLE',\n0x00F0: 'LINE.PRINT',\n0x00F3: 'ENTER.DATA',\n0x00F9: 'GALLERY.RADAR',\n0x00FA: 'MERGE.STYLES',\n0x00FB: 'EDITION.OPTIONS',\n0x00FC: 'PASTE.PICTURE',\n0x00FD: 'PASTE.PICTURE.LINK',\n0x00FE: 'SPELLING',\n0x0100: 'ZOOM',\n0x0103: 'INSERT.OBJECT',\n0x0104: 'WINDOW.MINIMIZE',\n0x0109: 'SOUND.NOTE',\n0x010A: 'SOUND.PLAY',\n0x010B: 'FORMAT.SHAPE',\n0x010C: 'EXTEND.POLYGON',\n0x010D: 'FORMAT.AUTO',\n0x0110: 'GALLERY.3D.BAR',\n0x0111: 'GALLERY.3D.SURFACE',\n0x0112: 'FILL.AUTO',\n0x0114: 'CUSTOMIZE.TOOLBAR',\n0x0115: 'ADD.TOOL',\n0x0116: 'EDIT.OBJECT',\n0x0117: 'ON.DOUBLECLICK',\n0x0118: 'ON.ENTRY',\n0x0119: 'WORKBOOK.ADD',\n0x011A: 'WORKBOOK.MOVE',\n0x011B: 'WORKBOOK.COPY',\n0x011C: 'WORKBOOK.OPTIONS',\n0x011D: 'SAVE.WORKSPACE',\n0x0120: 'CHART.WIZARD',\n0x0121: 'DELETE.TOOL',\n0x0122: 'MOVE.TOOL',\n0x0123: 'WORKBOOK.SELECT',\n0x0124: 'WORKBOOK.ACTIVATE',\n0x0125: 'ASSIGN.TO.TOOL',\n0x0127: 'COPY.TOOL',\n0x0128: 'RESET.TOOL',\n0x0129: 'CONSTRAIN.NUMERIC',\n0x012A: 'PASTE.TOOL',\n0x012E: 'WORKBOOK.NEW',\n0x0131: 'SCENARIO.CELLS',\n0x0132: 'SCENARIO.DELETE',\n0x0133: 'SCENARIO.ADD',\n0x0134: 'SCENARIO.EDIT',\n0x0135: 'SCENARIO.SHOW',\n0x0136: 'SCENARIO.SHOW.NEXT',\n0x0137: 'SCENARIO.SUMMARY',\n0x0138: 'PIVOT.TABLE.WIZARD',\n0x0139: 'PIVOT.FIELD.PROPERTIES',\n0x013A: 'PIVOT.FIELD',\n0x013B: 'PIVOT.ITEM',\n0x013C: 'PIVOT.ADD.FIELDS',\n0x013E: 'OPTIONS.CALCULATION',\n0x013F: 'OPTIONS.EDIT',\n0x0140: 'OPTIONS.VIEW',\n0x0141: 'ADDIN.MANAGER',\n0x0142: 'MENU.EDITOR',\n0x0143: 'ATTACH.TOOLBARS',\n0x0144: 'VBAActivate',\n0x0145: 'OPTIONS.CHART',\n0x0148: 'VBA.INSERT.FILE',\n0x014A: 'VBA.PROCEDURE.DEFINITION',\n0x0150: 'ROUTING.SLIP',\n0x0152: 'ROUTE.DOCUMENT',\n0x0153: 'MAIL.LOGON',\n0x0156: 'INSERT.PICTURE',\n0x0157: 'EDIT.TOOL',\n0x0158: 'GALLERY.DOUGHNUT',\n0x015E: 'CHART.TREND',\n0x0160: 'PIVOT.ITEM.PROPERTIES',\n0x0162: 'WORKBOOK.INSERT',\n0x0163: 'OPTIONS.TRANSITION',\n0x0164: 'OPTIONS.GENERAL',\n0x0172: 'FILTER.ADVANCED',\n0x0175: 'MAIL.ADD.MAILER',\n0x0176: 'MAIL.DELETE.MAILER',\n0x0177: 'MAIL.REPLY',\n0x0178: 'MAIL.REPLY.ALL',\n0x0179: 'MAIL.FORWARD',\n0x017A: 'MAIL.NEXT.LETTER',\n0x017B: 'DATA.LABEL',\n0x017C: 'INSERT.TITLE',\n0x017D: 'FONT.PROPERTIES',\n0x017E: 'MACRO.OPTIONS',\n0x017F: 'WORKBOOK.HIDE',\n0x0180: 'WORKBOOK.UNHIDE',\n0x0181: 'WORKBOOK.DELETE',\n0x0182: 'WORKBOOK.NAME',\n0x0184: 'GALLERY.CUSTOM',\n0x0186: 'ADD.CHART.AUTOFORMAT',\n0x0187: 'DELETE.CHART.AUTOFORMAT',\n0x0188: 'CHART.ADD.DATA',\n0x0189: 'AUTO.OUTLINE',\n0x018A: 'TAB.ORDER',\n0x018B: 'SHOW.DIALOG',\n0x018C: 'SELECT.ALL',\n0x018D: 'UNGROUP.SHEETS',\n0x018E: 'SUBTOTAL.CREATE',\n0x018F: 'SUBTOTAL.REMOVE',\n0x0190: 'RENAME.OBJECT',\n0x019C: 'WORKBOOK.SCROLL',\n0x019D: 'WORKBOOK.NEXT',\n0x019E: 'WORKBOOK.PREV',\n0x019F: 'WORKBOOK.TAB.SPLIT',\n0x01A0: 'FULL.SCREEN',\n0x01A1: 'WORKBOOK.PROTECT',\n0x01A4: 'SCROLLBAR.PROPERTIES',\n0x01A5: 'PIVOT.SHOW.PAGES',\n0x01A6: 'TEXT.TO.COLUMNS',\n0x01A7: 'FORMAT.CHARTTYPE',\n0x01A8: 'LINK.FORMAT',\n0x01A9: 'TRACER.DISPLAY',\n0x01AE: 'TRACER.NAVIGATE',\n0x01AF: 'TRACER.CLEAR',\n0x01B0: 'TRACER.ERROR',\n0x01B1: 'PIVOT.FIELD.GROUP',\n0x01B2: 'PIVOT.FIELD.UNGROUP',\n0x01B3: 'CHECKBOX.PROPERTIES',\n0x01B4: 'LABEL.PROPERTIES',\n0x01B5: 'LISTBOX.PROPERTIES',\n0x01B6: 'EDITBOX.PROPERTIES',\n0x01B7: 'PIVOT.REFRESH',\n0x01B8: 'LINK.COMBO',\n0x01B9: 'OPEN.TEXT',\n0x01BA: 'HIDE.DIALOG',\n0x01BB: 'SET.DIALOG.FOCUS',\n0x01BC: 'ENABLE.OBJECT',\n0x01BD: 'PUSHBUTTON.PROPERTIES',\n0x01BE: 'SET.DIALOG.DEFAULT',\n0x01BF: 'FILTER',\n0x01C0: 'FILTER.SHOW.ALL',\n0x01C1: 'CLEAR.OUTLINE',\n0x01C2: 'FUNCTION.WIZARD',\n0x01C3: 'ADD.LIST.ITEM',\n0x01C4: 'SET.LIST.ITEM',\n0x01C5: 'REMOVE.LIST.ITEM',\n0x01C6: 'SELECT.LIST.ITEM',\n0x01C7: 'SET.CONTROL.VALUE',\n0x01C8: 'SAVE.COPY.AS',\n0x01CA: 'OPTIONS.LISTS.ADD',\n0x01CB: 'OPTIONS.LISTS.DELETE',\n0x01CC: 'SERIES.AXES',\n0x01CD: 'SERIES.X',\n0x01CE: 'SERIES.Y',\n0x01CF: 'ERRORBAR.X',\n0x01D0: 'ERRORBAR.Y',\n0x01D1: 'FORMAT.CHART',\n0x01D2: 'SERIES.ORDER',\n0x01D3: 'MAIL.LOGOFF',\n0x01D4: 'CLEAR.ROUTING.SLIP',\n0x01D5: 'APP.ACTIVATE.MICROSOFT',\n0x01D6: 'MAIL.EDIT.MAILER',\n0x01D7: 'ON.SHEET',\n0x01D8: 'STANDARD.WIDTH',\n0x01D9: 'SCENARIO.MERGE',\n0x01DA: 'SUMMARY.INFO',\n0x01DB: 'FIND.FILE',\n0x01DC: 'ACTIVE.CELL.FONT',\n0x01DD: 'ENABLE.TIPWIZARD',\n0x01DE: 'VBA.MAKE.ADDIN',\n0x01E0: 'INSERTDATATABLE',\n0x01E1: 'WORKGROUP.OPTIONS',\n0x01E2: 'MAIL.SEND.MAILER',\n0x01E5: 'AUTOCORRECT',\n0x01E9: 'POST.DOCUMENT',\n0x01EB: 'PICKLIST',\n0x01ED: 'VIEW.SHOW',\n0x01EE: 'VIEW.DEFINE',\n0x01EF: 'VIEW.DELETE',\n0x01FD: 'SHEET.BACKGROUND',\n0x01FE: 'INSERT.MAP.OBJECT',\n0x01FF: 'OPTIONS.MENONO',\n0x0205: 'MSOCHECKS',\n0x0206: 'NORMAL',\n0x0207: 'LAYOUT',\n0x0208: 'RM.PRINT.AREA',\n0x0209: 'CLEAR.PRINT.AREA',\n0x020A: 'ADD.PRINT.AREA',\n0x020B: 'MOVE.BRK',\n0x0221: 'HIDECURR.NOTE',\n0x0222: 'HIDEALL.NOTES',\n0x0223: 'DELETE.NOTE',\n0x0224: 'TRAVERSE.NOTES',\n0x0225: 'ACTIVATE.NOTES',\n0x026C: 'PROTECT.REVISIONS',\n0x026D: 'UNPROTECT.REVISIONS',\n0x0287: 'OPTIONS.ME',\n0x028D: 'WEB.PUBLISH',\n0x029B: 'NEWWEBQUERY',\n0x02A1: 'PIVOT.TABLE.CHART',\n0x02F1: 'OPTIONS.SAVE',\n0x02F3: 'OPTIONS.SPELL',\n0x0328: 'HIDEALL.INKANNOTS'\n};\n\n/* [MS-XLS] 2.5.198.17 */\n/* [MS-XLSB] 2.5.97.10 */\nvar Ftab = {\n0x0000: 'COUNT',\n0x0001: 'IF',\n0x0002: 'ISNA',\n0x0003: 'ISERROR',\n0x0004: 'SUM',\n0x0005: 'AVERAGE',\n0x0006: 'MIN',\n0x0007: 'MAX',\n0x0008: 'ROW',\n0x0009: 'COLUMN',\n0x000A: 'NA',\n0x000B: 'NPV',\n0x000C: 'STDEV',\n0x000D: 'DOLLAR',\n0x000E: 'FIXED',\n0x000F: 'SIN',\n0x0010: 'COS',\n0x0011: 'TAN',\n0x0012: 'ATAN',\n0x0013: 'PI',\n0x0014: 'SQRT',\n0x0015: 'EXP',\n0x0016: 'LN',\n0x0017: 'LOG10',\n0x0018: 'ABS',\n0x0019: 'INT',\n0x001A: 'SIGN',\n0x001B: 'ROUND',\n0x001C: 'LOOKUP',\n0x001D: 'INDEX',\n0x001E: 'REPT',\n0x001F: 'MID',\n0x0020: 'LEN',\n0x0021: 'VALUE',\n0x0022: 'TRUE',\n0x0023: 'FALSE',\n0x0024: 'AND',\n0x0025: 'OR',\n0x0026: 'NOT',\n0x0027: 'MOD',\n0x0028: 'DCOUNT',\n0x0029: 'DSUM',\n0x002A: 'DAVERAGE',\n0x002B: 'DMIN',\n0x002C: 'DMAX',\n0x002D: 'DSTDEV',\n0x002E: 'VAR',\n0x002F: 'DVAR',\n0x0030: 'TEXT',\n0x0031: 'LINEST',\n0x0032: 'TREND',\n0x0033: 'LOGEST',\n0x0034: 'GROWTH',\n0x0035: 'GOTO',\n0x0036: 'HALT',\n0x0037: 'RETURN',\n0x0038: 'PV',\n0x0039: 'FV',\n0x003A: 'NPER',\n0x003B: 'PMT',\n0x003C: 'RATE',\n0x003D: 'MIRR',\n0x003E: 'IRR',\n0x003F: 'RAND',\n0x0040: 'MATCH',\n0x0041: 'DATE',\n0x0042: 'TIME',\n0x0043: 'DAY',\n0x0044: 'MONTH',\n0x0045: 'YEAR',\n0x0046: 'WEEKDAY',\n0x0047: 'HOUR',\n0x0048: 'MINUTE',\n0x0049: 'SECOND',\n0x004A: 'NOW',\n0x004B: 'AREAS',\n0x004C: 'ROWS',\n0x004D: 'COLUMNS',\n0x004E: 'OFFSET',\n0x004F: 'ABSREF',\n0x0050: 'RELREF',\n0x0051: 'ARGUMENT',\n0x0052: 'SEARCH',\n0x0053: 'TRANSPOSE',\n0x0054: 'ERROR',\n0x0055: 'STEP',\n0x0056: 'TYPE',\n0x0057: 'ECHO',\n0x0058: 'SET.NAME',\n0x0059: 'CALLER',\n0x005A: 'DEREF',\n0x005B: 'WINDOWS',\n0x005C: 'SERIES',\n0x005D: 'DOCUMENTS',\n0x005E: 'ACTIVE.CELL',\n0x005F: 'SELECTION',\n0x0060: 'RESULT',\n0x0061: 'ATAN2',\n0x0062: 'ASIN',\n0x0063: 'ACOS',\n0x0064: 'CHOOSE',\n0x0065: 'HLOOKUP',\n0x0066: 'VLOOKUP',\n0x0067: 'LINKS',\n0x0068: 'INPUT',\n0x0069: 'ISREF',\n0x006A: 'GET.FORMULA',\n0x006B: 'GET.NAME',\n0x006C: 'SET.VALUE',\n0x006D: 'LOG',\n0x006E: 'EXEC',\n0x006F: 'CHAR',\n0x0070: 'LOWER',\n0x0071: 'UPPER',\n0x0072: 'PROPER',\n0x0073: 'LEFT',\n0x0074: 'RIGHT',\n0x0075: 'EXACT',\n0x0076: 'TRIM',\n0x0077: 'REPLACE',\n0x0078: 'SUBSTITUTE',\n0x0079: 'CODE',\n0x007A: 'NAMES',\n0x007B: 'DIRECTORY',\n0x007C: 'FIND',\n0x007D: 'CELL',\n0x007E: 'ISERR',\n0x007F: 'ISTEXT',\n0x0080: 'ISNUMBER',\n0x0081: 'ISBLANK',\n0x0082: 'T',\n0x0083: 'N',\n0x0084: 'FOPEN',\n0x0085: 'FCLOSE',\n0x0086: 'FSIZE',\n0x0087: 'FREADLN',\n0x0088: 'FREAD',\n0x0089: 'FWRITELN',\n0x008A: 'FWRITE',\n0x008B: 'FPOS',\n0x008C: 'DATEVALUE',\n0x008D: 'TIMEVALUE',\n0x008E: 'SLN',\n0x008F: 'SYD',\n0x0090: 'DDB',\n0x0091: 'GET.DEF',\n0x0092: 'REFTEXT',\n0x0093: 'TEXTREF',\n0x0094: 'INDIRECT',\n0x0095: 'REGISTER',\n0x0096: 'CALL',\n0x0097: 'ADD.BAR',\n0x0098: 'ADD.MENU',\n0x0099: 'ADD.COMMAND',\n0x009A: 'ENABLE.COMMAND',\n0x009B: 'CHECK.COMMAND',\n0x009C: 'RENAME.COMMAND',\n0x009D: 'SHOW.BAR',\n0x009E: 'DELETE.MENU',\n0x009F: 'DELETE.COMMAND',\n0x00A0: 'GET.CHART.ITEM',\n0x00A1: 'DIALOG.BOX',\n0x00A2: 'CLEAN',\n0x00A3: 'MDETERM',\n0x00A4: 'MINVERSE',\n0x00A5: 'MMULT',\n0x00A6: 'FILES',\n0x00A7: 'IPMT',\n0x00A8: 'PPMT',\n0x00A9: 'COUNTA',\n0x00AA: 'CANCEL.KEY',\n0x00AB: 'FOR',\n0x00AC: 'WHILE',\n0x00AD: 'BREAK',\n0x00AE: 'NEXT',\n0x00AF: 'INITIATE',\n0x00B0: 'REQUEST',\n0x00B1: 'POKE',\n0x00B2: 'EXECUTE',\n0x00B3: 'TERMINATE',\n0x00B4: 'RESTART',\n0x00B5: 'HELP',\n0x00B6: 'GET.BAR',\n0x00B7: 'PRODUCT',\n0x00B8: 'FACT',\n0x00B9: 'GET.CELL',\n0x00BA: 'GET.WORKSPACE',\n0x00BB: 'GET.WINDOW',\n0x00BC: 'GET.DOCUMENT',\n0x00BD: 'DPRODUCT',\n0x00BE: 'ISNONTEXT',\n0x00BF: 'GET.NOTE',\n0x00C0: 'NOTE',\n0x00C1: 'STDEVP',\n0x00C2: 'VARP',\n0x00C3: 'DSTDEVP',\n0x00C4: 'DVARP',\n0x00C5: 'TRUNC',\n0x00C6: 'ISLOGICAL',\n0x00C7: 'DCOUNTA',\n0x00C8: 'DELETE.BAR',\n0x00C9: 'UNREGISTER',\n0x00CC: 'USDOLLAR',\n0x00CD: 'FINDB',\n0x00CE: 'SEARCHB',\n0x00CF: 'REPLACEB',\n0x00D0: 'LEFTB',\n0x00D1: 'RIGHTB',\n0x00D2: 'MIDB',\n0x00D3: 'LENB',\n0x00D4: 'ROUNDUP',\n0x00D5: 'ROUNDDOWN',\n0x00D6: 'ASC',\n0x00D7: 'DBCS',\n0x00D8: 'RANK',\n0x00DB: 'ADDRESS',\n0x00DC: 'DAYS360',\n0x00DD: 'TODAY',\n0x00DE: 'VDB',\n0x00DF: 'ELSE',\n0x00E0: 'ELSE.IF',\n0x00E1: 'END.IF',\n0x00E2: 'FOR.CELL',\n0x00E3: 'MEDIAN',\n0x00E4: 'SUMPRODUCT',\n0x00E5: 'SINH',\n0x00E6: 'COSH',\n0x00E7: 'TANH',\n0x00E8: 'ASINH',\n0x00E9: 'ACOSH',\n0x00EA: 'ATANH',\n0x00EB: 'DGET',\n0x00EC: 'CREATE.OBJECT',\n0x00ED: 'VOLATILE',\n0x00EE: 'LAST.ERROR',\n0x00EF: 'CUSTOM.UNDO',\n0x00F0: 'CUSTOM.REPEAT',\n0x00F1: 'FORMULA.CONVERT',\n0x00F2: 'GET.LINK.INFO',\n0x00F3: 'TEXT.BOX',\n0x00F4: 'INFO',\n0x00F5: 'GROUP',\n0x00F6: 'GET.OBJECT',\n0x00F7: 'DB',\n0x00F8: 'PAUSE',\n0x00FB: 'RESUME',\n0x00FC: 'FREQUENCY',\n0x00FD: 'ADD.TOOLBAR',\n0x00FE: 'DELETE.TOOLBAR',\n0x00FF: 'User',\n0x0100: 'RESET.TOOLBAR',\n0x0101: 'EVALUATE',\n0x0102: 'GET.TOOLBAR',\n0x0103: 'GET.TOOL',\n0x0104: 'SPELLING.CHECK',\n0x0105: 'ERROR.TYPE',\n0x0106: 'APP.TITLE',\n0x0107: 'WINDOW.TITLE',\n0x0108: 'SAVE.TOOLBAR',\n0x0109: 'ENABLE.TOOL',\n0x010A: 'PRESS.TOOL',\n0x010B: 'REGISTER.ID',\n0x010C: 'GET.WORKBOOK',\n0x010D: 'AVEDEV',\n0x010E: 'BETADIST',\n0x010F: 'GAMMALN',\n0x0110: 'BETAINV',\n0x0111: 'BINOMDIST',\n0x0112: 'CHIDIST',\n0x0113: 'CHIINV',\n0x0114: 'COMBIN',\n0x0115: 'CONFIDENCE',\n0x0116: 'CRITBINOM',\n0x0117: 'EVEN',\n0x0118: 'EXPONDIST',\n0x0119: 'FDIST',\n0x011A: 'FINV',\n0x011B: 'FISHER',\n0x011C: 'FISHERINV',\n0x011D: 'FLOOR',\n0x011E: 'GAMMADIST',\n0x011F: 'GAMMAINV',\n0x0120: 'CEILING',\n0x0121: 'HYPGEOMDIST',\n0x0122: 'LOGNORMDIST',\n0x0123: 'LOGINV',\n0x0124: 'NEGBINOMDIST',\n0x0125: 'NORMDIST',\n0x0126: 'NORMSDIST',\n0x0127: 'NORMINV',\n0x0128: 'NORMSINV',\n0x0129: 'STANDARDIZE',\n0x012A: 'ODD',\n0x012B: 'PERMUT',\n0x012C: 'POISSON',\n0x012D: 'TDIST',\n0x012E: 'WEIBULL',\n0x012F: 'SUMXMY2',\n0x0130: 'SUMX2MY2',\n0x0131: 'SUMX2PY2',\n0x0132: 'CHITEST',\n0x0133: 'CORREL',\n0x0134: 'COVAR',\n0x0135: 'FORECAST',\n0x0136: 'FTEST',\n0x0137: 'INTERCEPT',\n0x0138: 'PEARSON',\n0x0139: 'RSQ',\n0x013A: 'STEYX',\n0x013B: 'SLOPE',\n0x013C: 'TTEST',\n0x013D: 'PROB',\n0x013E: 'DEVSQ',\n0x013F: 'GEOMEAN',\n0x0140: 'HARMEAN',\n0x0141: 'SUMSQ',\n0x0142: 'KURT',\n0x0143: 'SKEW',\n0x0144: 'ZTEST',\n0x0145: 'LARGE',\n0x0146: 'SMALL',\n0x0147: 'QUARTILE',\n0x0148: 'PERCENTILE',\n0x0149: 'PERCENTRANK',\n0x014A: 'MODE',\n0x014B: 'TRIMMEAN',\n0x014C: 'TINV',\n0x014E: 'MOVIE.COMMAND',\n0x014F: 'GET.MOVIE',\n0x0150: 'CONCATENATE',\n0x0151: 'POWER',\n0x0152: 'PIVOT.ADD.DATA',\n0x0153: 'GET.PIVOT.TABLE',\n0x0154: 'GET.PIVOT.FIELD',\n0x0155: 'GET.PIVOT.ITEM',\n0x0156: 'RADIANS',\n0x0157: 'DEGREES',\n0x0158: 'SUBTOTAL',\n0x0159: 'SUMIF',\n0x015A: 'COUNTIF',\n0x015B: 'COUNTBLANK',\n0x015C: 'SCENARIO.GET',\n0x015D: 'OPTIONS.LISTS.GET',\n0x015E: 'ISPMT',\n0x015F: 'DATEDIF',\n0x0160: 'DATESTRING',\n0x0161: 'NUMBERSTRING',\n0x0162: 'ROMAN',\n0x0163: 'OPEN.DIALOG',\n0x0164: 'SAVE.DIALOG',\n0x0165: 'VIEW.GET',\n0x0166: 'GETPIVOTDATA',\n0x0167: 'HYPERLINK',\n0x0168: 'PHONETIC',\n0x0169: 'AVERAGEA',\n0x016A: 'MAXA',\n0x016B: 'MINA',\n0x016C: 'STDEVPA',\n0x016D: 'VARPA',\n0x016E: 'STDEVA',\n0x016F: 'VARA',\n0x0170: 'BAHTTEXT',\n0x0171: 'THAIDAYOFWEEK',\n0x0172: 'THAIDIGIT',\n0x0173: 'THAIMONTHOFYEAR',\n0x0174: 'THAINUMSOUND',\n0x0175: 'THAINUMSTRING',\n0x0176: 'THAISTRINGLENGTH',\n0x0177: 'ISTHAIDIGIT',\n0x0178: 'ROUNDBAHTDOWN',\n0x0179: 'ROUNDBAHTUP',\n0x017A: 'THAIYEAR',\n0x017B: 'RTD',\n\n0x017C: 'CUBEVALUE',\n0x017D: 'CUBEMEMBER',\n0x017E: 'CUBEMEMBERPROPERTY',\n0x017F: 'CUBERANKEDMEMBER',\n0x0180: 'HEX2BIN',\n0x0181: 'HEX2DEC',\n0x0182: 'HEX2OCT',\n0x0183: 'DEC2BIN',\n0x0184: 'DEC2HEX',\n0x0185: 'DEC2OCT',\n0x0186: 'OCT2BIN',\n0x0187: 'OCT2HEX',\n0x0188: 'OCT2DEC',\n0x0189: 'BIN2DEC',\n0x018A: 'BIN2OCT',\n0x018B: 'BIN2HEX',\n0x018C: 'IMSUB',\n0x018D: 'IMDIV',\n0x018E: 'IMPOWER',\n0x018F: 'IMABS',\n0x0190: 'IMSQRT',\n0x0191: 'IMLN',\n0x0192: 'IMLOG2',\n0x0193: 'IMLOG10',\n0x0194: 'IMSIN',\n0x0195: 'IMCOS',\n0x0196: 'IMEXP',\n0x0197: 'IMARGUMENT',\n0x0198: 'IMCONJUGATE',\n0x0199: 'IMAGINARY',\n0x019A: 'IMREAL',\n0x019B: 'COMPLEX',\n0x019C: 'IMSUM',\n0x019D: 'IMPRODUCT',\n0x019E: 'SERIESSUM',\n0x019F: 'FACTDOUBLE',\n0x01A0: 'SQRTPI',\n0x01A1: 'QUOTIENT',\n0x01A2: 'DELTA',\n0x01A3: 'GESTEP',\n0x01A4: 'ISEVEN',\n0x01A5: 'ISODD',\n0x01A6: 'MROUND',\n0x01A7: 'ERF',\n0x01A8: 'ERFC',\n0x01A9: 'BESSELJ',\n0x01AA: 'BESSELK',\n0x01AB: 'BESSELY',\n0x01AC: 'BESSELI',\n0x01AD: 'XIRR',\n0x01AE: 'XNPV',\n0x01AF: 'PRICEMAT',\n0x01B0: 'YIELDMAT',\n0x01B1: 'INTRATE',\n0x01B2: 'RECEIVED',\n0x01B3: 'DISC',\n0x01B4: 'PRICEDISC',\n0x01B5: 'YIELDDISC',\n0x01B6: 'TBILLEQ',\n0x01B7: 'TBILLPRICE',\n0x01B8: 'TBILLYIELD',\n0x01B9: 'PRICE',\n0x01BA: 'YIELD',\n0x01BB: 'DOLLARDE',\n0x01BC: 'DOLLARFR',\n0x01BD: 'NOMINAL',\n0x01BE: 'EFFECT',\n0x01BF: 'CUMPRINC',\n0x01C0: 'CUMIPMT',\n0x01C1: 'EDATE',\n0x01C2: 'EOMONTH',\n0x01C3: 'YEARFRAC',\n0x01C4: 'COUPDAYBS',\n0x01C5: 'COUPDAYS',\n0x01C6: 'COUPDAYSNC',\n0x01C7: 'COUPNCD',\n0x01C8: 'COUPNUM',\n0x01C9: 'COUPPCD',\n0x01CA: 'DURATION',\n0x01CB: 'MDURATION',\n0x01CC: 'ODDLPRICE',\n0x01CD: 'ODDLYIELD',\n0x01CE: 'ODDFPRICE',\n0x01CF: 'ODDFYIELD',\n0x01D0: 'RANDBETWEEN',\n0x01D1: 'WEEKNUM',\n0x01D2: 'AMORDEGRC',\n0x01D3: 'AMORLINC',\n0x01D4: 'CONVERT',\n0x02D4: 'SHEETJS',\n0x01D5: 'ACCRINT',\n0x01D6: 'ACCRINTM',\n0x01D7: 'WORKDAY',\n0x01D8: 'NETWORKDAYS',\n0x01D9: 'GCD',\n0x01DA: 'MULTINOMIAL',\n0x01DB: 'LCM',\n0x01DC: 'FVSCHEDULE',\n0x01DD: 'CUBEKPIMEMBER',\n0x01DE: 'CUBESET',\n0x01DF: 'CUBESETCOUNT',\n0x01E0: 'IFERROR',\n0x01E1: 'COUNTIFS',\n0x01E2: 'SUMIFS',\n0x01E3: 'AVERAGEIF',\n0x01E4: 'AVERAGEIFS'\n};\nvar FtabArgc = {\n0x0002: 1, /* ISNA */\n0x0003: 1, /* ISERROR */\n0x000A: 0, /* NA */\n0x000F: 1, /* SIN */\n0x0010: 1, /* COS */\n0x0011: 1, /* TAN */\n0x0012: 1, /* ATAN */\n0x0013: 0, /* PI */\n0x0014: 1, /* SQRT */\n0x0015: 1, /* EXP */\n0x0016: 1, /* LN */\n0x0017: 1, /* LOG10 */\n0x0018: 1, /* ABS */\n0x0019: 1, /* INT */\n0x001A: 1, /* SIGN */\n0x001B: 2, /* ROUND */\n0x001E: 2, /* REPT */\n0x001F: 3, /* MID */\n0x0020: 1, /* LEN */\n0x0021: 1, /* VALUE */\n0x0022: 0, /* TRUE */\n0x0023: 0, /* FALSE */\n0x0026: 1, /* NOT */\n0x0027: 2, /* MOD */\n0x0028: 3, /* DCOUNT */\n0x0029: 3, /* DSUM */\n0x002A: 3, /* DAVERAGE */\n0x002B: 3, /* DMIN */\n0x002C: 3, /* DMAX */\n0x002D: 3, /* DSTDEV */\n0x002F: 3, /* DVAR */\n0x0030: 2, /* TEXT */\n0x0035: 1, /* GOTO */\n0x003D: 3, /* MIRR */\n0x003F: 0, /* RAND */\n0x0041: 3, /* DATE */\n0x0042: 3, /* TIME */\n0x0043: 1, /* DAY */\n0x0044: 1, /* MONTH */\n0x0045: 1, /* YEAR */\n0x0046: 1, /* WEEKDAY */\n0x0047: 1, /* HOUR */\n0x0048: 1, /* MINUTE */\n0x0049: 1, /* SECOND */\n0x004A: 0, /* NOW */\n0x004B: 1, /* AREAS */\n0x004C: 1, /* ROWS */\n0x004D: 1, /* COLUMNS */\n0x004F: 2, /* ABSREF */\n0x0050: 2, /* RELREF */\n0x0053: 1, /* TRANSPOSE */\n0x0055: 0, /* STEP */\n0x0056: 1, /* TYPE */\n0x0059: 0, /* CALLER */\n0x005A: 1, /* DEREF */\n0x005E: 0, /* ACTIVE.CELL */\n0x005F: 0, /* SELECTION */\n0x0061: 2, /* ATAN2 */\n0x0062: 1, /* ASIN */\n0x0063: 1, /* ACOS */\n0x0065: 3, /* HLOOKUP */\n0x0066: 3, /* VLOOKUP */\n0x0069: 1, /* ISREF */\n0x006A: 1, /* GET.FORMULA */\n0x006C: 2, /* SET.VALUE */\n0x006F: 1, /* CHAR */\n0x0070: 1, /* LOWER */\n0x0071: 1, /* UPPER */\n0x0072: 1, /* PROPER */\n0x0075: 2, /* EXACT */\n0x0076: 1, /* TRIM */\n0x0077: 4, /* REPLACE */\n0x0079: 1, /* CODE */\n0x007E: 1, /* ISERR */\n0x007F: 1, /* ISTEXT */\n0x0080: 1, /* ISNUMBER */\n0x0081: 1, /* ISBLANK */\n0x0082: 1, /* T */\n0x0083: 1, /* N */\n0x0085: 1, /* FCLOSE */\n0x0086: 1, /* FSIZE */\n0x0087: 1, /* FREADLN */\n0x0088: 2, /* FREAD */\n0x0089: 2, /* FWRITELN */\n0x008A: 2, /* FWRITE */\n0x008C: 1, /* DATEVALUE */\n0x008D: 1, /* TIMEVALUE */\n0x008E: 3, /* SLN */\n0x008F: 4, /* SYD */\n0x0090: 4, /* DDB */\n0x00A1: 1, /* DIALOG.BOX */\n0x00A2: 1, /* CLEAN */\n0x00A3: 1, /* MDETERM */\n0x00A4: 1, /* MINVERSE */\n0x00A5: 2, /* MMULT */\n0x00AC: 1, /* WHILE */\n0x00AF: 2, /* INITIATE */\n0x00B0: 2, /* REQUEST */\n0x00B1: 3, /* POKE */\n0x00B2: 2, /* EXECUTE */\n0x00B3: 1, /* TERMINATE */\n0x00B8: 1, /* FACT */\n0x00BA: 1, /* GET.WORKSPACE */\n0x00BD: 3, /* DPRODUCT */\n0x00BE: 1, /* ISNONTEXT */\n0x00C3: 3, /* DSTDEVP */\n0x00C4: 3, /* DVARP */\n0x00C5: 1, /* TRUNC */\n0x00C6: 1, /* ISLOGICAL */\n0x00C7: 3, /* DCOUNTA */\n0x00C9: 1, /* UNREGISTER */\n0x00CF: 4, /* REPLACEB */\n0x00D2: 3, /* MIDB */\n0x00D3: 1, /* LENB */\n0x00D4: 2, /* ROUNDUP */\n0x00D5: 2, /* ROUNDDOWN */\n0x00D6: 1, /* ASC */\n0x00D7: 1, /* DBCS */\n0x00E1: 0, /* END.IF */\n0x00E5: 1, /* SINH */\n0x00E6: 1, /* COSH */\n0x00E7: 1, /* TANH */\n0x00E8: 1, /* ASINH */\n0x00E9: 1, /* ACOSH */\n0x00EA: 1, /* ATANH */\n0x00EB: 3, /* DGET */\n0x00F4: 1, /* INFO */\n0x00F7: 4, /* DB */\n0x00FC: 2, /* FREQUENCY */\n0x0101: 1, /* EVALUATE */\n0x0105: 1, /* ERROR.TYPE */\n0x010F: 1, /* GAMMALN */\n0x0111: 4, /* BINOMDIST */\n0x0112: 2, /* CHIDIST */\n0x0113: 2, /* CHIINV */\n0x0114: 2, /* COMBIN */\n0x0115: 3, /* CONFIDENCE */\n0x0116: 3, /* CRITBINOM */\n0x0117: 1, /* EVEN */\n0x0118: 3, /* EXPONDIST */\n0x0119: 3, /* FDIST */\n0x011A: 3, /* FINV */\n0x011B: 1, /* FISHER */\n0x011C: 1, /* FISHERINV */\n0x011D: 2, /* FLOOR */\n0x011E: 4, /* GAMMADIST */\n0x011F: 3, /* GAMMAINV */\n0x0120: 2, /* CEILING */\n0x0121: 4, /* HYPGEOMDIST */\n0x0122: 3, /* LOGNORMDIST */\n0x0123: 3, /* LOGINV */\n0x0124: 3, /* NEGBINOMDIST */\n0x0125: 4, /* NORMDIST */\n0x0126: 1, /* NORMSDIST */\n0x0127: 3, /* NORMINV */\n0x0128: 1, /* NORMSINV */\n0x0129: 3, /* STANDARDIZE */\n0x012A: 1, /* ODD */\n0x012B: 2, /* PERMUT */\n0x012C: 3, /* POISSON */\n0x012D: 3, /* TDIST */\n0x012E: 4, /* WEIBULL */\n0x012F: 2, /* SUMXMY2 */\n0x0130: 2, /* SUMX2MY2 */\n0x0131: 2, /* SUMX2PY2 */\n0x0132: 2, /* CHITEST */\n0x0133: 2, /* CORREL */\n0x0134: 2, /* COVAR */\n0x0135: 3, /* FORECAST */\n0x0136: 2, /* FTEST */\n0x0137: 2, /* INTERCEPT */\n0x0138: 2, /* PEARSON */\n0x0139: 2, /* RSQ */\n0x013A: 2, /* STEYX */\n0x013B: 2, /* SLOPE */\n0x013C: 4, /* TTEST */\n0x0145: 2, /* LARGE */\n0x0146: 2, /* SMALL */\n0x0147: 2, /* QUARTILE */\n0x0148: 2, /* PERCENTILE */\n0x014B: 2, /* TRIMMEAN */\n0x014C: 2, /* TINV */\n0x0151: 2, /* POWER */\n0x0156: 1, /* RADIANS */\n0x0157: 1, /* DEGREES */\n0x015A: 2, /* COUNTIF */\n0x015B: 1, /* COUNTBLANK */\n0x015E: 4, /* ISPMT */\n0x015F: 3, /* DATEDIF */\n0x0160: 1, /* DATESTRING */\n0x0161: 2, /* NUMBERSTRING */\n0x0168: 1, /* PHONETIC */\n0x0170: 1, /* BAHTTEXT */\n0x0171: 1, /* THAIDAYOFWEEK */\n0x0172: 1, /* THAIDIGIT */\n0x0173: 1, /* THAIMONTHOFYEAR */\n0x0174: 1, /* THAINUMSOUND */\n0x0175: 1, /* THAINUMSTRING */\n0x0176: 1, /* THAISTRINGLENGTH */\n0x0177: 1, /* ISTHAIDIGIT */\n0x0178: 1, /* ROUNDBAHTDOWN */\n0x0179: 1, /* ROUNDBAHTUP */\n0x017A: 1, /* THAIYEAR */\n0x017E: 3, /* CUBEMEMBERPROPERTY */\n0x0181: 1, /* HEX2DEC */\n0x0188: 1, /* OCT2DEC */\n0x0189: 1, /* BIN2DEC */\n0x018C: 2, /* IMSUB */\n0x018D: 2, /* IMDIV */\n0x018E: 2, /* IMPOWER */\n0x018F: 1, /* IMABS */\n0x0190: 1, /* IMSQRT */\n0x0191: 1, /* IMLN */\n0x0192: 1, /* IMLOG2 */\n0x0193: 1, /* IMLOG10 */\n0x0194: 1, /* IMSIN */\n0x0195: 1, /* IMCOS */\n0x0196: 1, /* IMEXP */\n0x0197: 1, /* IMARGUMENT */\n0x0198: 1, /* IMCONJUGATE */\n0x0199: 1, /* IMAGINARY */\n0x019A: 1, /* IMREAL */\n0x019E: 4, /* SERIESSUM */\n0x019F: 1, /* FACTDOUBLE */\n0x01A0: 1, /* SQRTPI */\n0x01A1: 2, /* QUOTIENT */\n0x01A4: 1, /* ISEVEN */\n0x01A5: 1, /* ISODD */\n0x01A6: 2, /* MROUND */\n0x01A8: 1, /* ERFC */\n0x01A9: 2, /* BESSELJ */\n0x01AA: 2, /* BESSELK */\n0x01AB: 2, /* BESSELY */\n0x01AC: 2, /* BESSELI */\n0x01AE: 3, /* XNPV */\n0x01B6: 3, /* TBILLEQ */\n0x01B7: 3, /* TBILLPRICE */\n0x01B8: 3, /* TBILLYIELD */\n0x01BB: 2, /* DOLLARDE */\n0x01BC: 2, /* DOLLARFR */\n0x01BD: 2, /* NOMINAL */\n0x01BE: 2, /* EFFECT */\n0x01BF: 6, /* CUMPRINC */\n0x01C0: 6, /* CUMIPMT */\n0x01C1: 2, /* EDATE */\n0x01C2: 2, /* EOMONTH */\n0x01D0: 2, /* RANDBETWEEN */\n0x01D4: 3, /* CONVERT */\n0x01DC: 2, /* FVSCHEDULE */\n0x01DF: 1, /* CUBESETCOUNT */\n0x01E0: 2, /* IFERROR */\n0xFFFF: 0\n};\n/* [MS-XLSX] 2.2.3 Functions */\n/* [MS-XLSB] 2.5.97.10 Ftab */\nvar XLSXFutureFunctions = {\n\t\"_xlfn.ACOT\": \"ACOT\",\n\t\"_xlfn.ACOTH\": \"ACOTH\",\n\t\"_xlfn.AGGREGATE\": \"AGGREGATE\",\n\t\"_xlfn.ARABIC\": \"ARABIC\",\n\t\"_xlfn.AVERAGEIF\": \"AVERAGEIF\",\n\t\"_xlfn.AVERAGEIFS\": \"AVERAGEIFS\",\n\t\"_xlfn.BASE\": \"BASE\",\n\t\"_xlfn.BETA.DIST\": \"BETA.DIST\",\n\t\"_xlfn.BETA.INV\": \"BETA.INV\",\n\t\"_xlfn.BINOM.DIST\": \"BINOM.DIST\",\n\t\"_xlfn.BINOM.DIST.RANGE\": \"BINOM.DIST.RANGE\",\n\t\"_xlfn.BINOM.INV\": \"BINOM.INV\",\n\t\"_xlfn.BITAND\": \"BITAND\",\n\t\"_xlfn.BITLSHIFT\": \"BITLSHIFT\",\n\t\"_xlfn.BITOR\": \"BITOR\",\n\t\"_xlfn.BITRSHIFT\": \"BITRSHIFT\",\n\t\"_xlfn.BITXOR\": \"BITXOR\",\n\t\"_xlfn.CEILING.MATH\": \"CEILING.MATH\",\n\t\"_xlfn.CEILING.PRECISE\": \"CEILING.PRECISE\",\n\t\"_xlfn.CHISQ.DIST\": \"CHISQ.DIST\",\n\t\"_xlfn.CHISQ.DIST.RT\": \"CHISQ.DIST.RT\",\n\t\"_xlfn.CHISQ.INV\": \"CHISQ.INV\",\n\t\"_xlfn.CHISQ.INV.RT\": \"CHISQ.INV.RT\",\n\t\"_xlfn.CHISQ.TEST\": \"CHISQ.TEST\",\n\t\"_xlfn.COMBINA\": \"COMBINA\",\n\t\"_xlfn.CONCAT\": \"CONCAT\",\n\t\"_xlfn.CONFIDENCE.NORM\": \"CONFIDENCE.NORM\",\n\t\"_xlfn.CONFIDENCE.T\": \"CONFIDENCE.T\",\n\t\"_xlfn.COT\": \"COT\",\n\t\"_xlfn.COTH\": \"COTH\",\n\t\"_xlfn.COUNTIFS\": \"COUNTIFS\",\n\t\"_xlfn.COVARIANCE.P\": \"COVARIANCE.P\",\n\t\"_xlfn.COVARIANCE.S\": \"COVARIANCE.S\",\n\t\"_xlfn.CSC\": \"CSC\",\n\t\"_xlfn.CSCH\": \"CSCH\",\n\t\"_xlfn.DAYS\": \"DAYS\",\n\t\"_xlfn.DECIMAL\": \"DECIMAL\",\n\t\"_xlfn.ECMA.CEILING\": \"ECMA.CEILING\",\n\t\"_xlfn.ERF.PRECISE\": \"ERF.PRECISE\",\n\t\"_xlfn.ERFC.PRECISE\": \"ERFC.PRECISE\",\n\t\"_xlfn.EXPON.DIST\": \"EXPON.DIST\",\n\t\"_xlfn.F.DIST\": \"F.DIST\",\n\t\"_xlfn.F.DIST.RT\": \"F.DIST.RT\",\n\t\"_xlfn.F.INV\": \"F.INV\",\n\t\"_xlfn.F.INV.RT\": \"F.INV.RT\",\n\t\"_xlfn.F.TEST\": \"F.TEST\",\n\t\"_xlfn.FILTERXML\": \"FILTERXML\",\n\t\"_xlfn.FLOOR.MATH\": \"FLOOR.MATH\",\n\t\"_xlfn.FLOOR.PRECISE\": \"FLOOR.PRECISE\",\n\t\"_xlfn.FORECAST.ETS\": \"FORECAST.ETS\",\n\t\"_xlfn.FORECAST.ETS.CONFINT\": \"FORECAST.ETS.CONFINT\",\n\t\"_xlfn.FORECAST.ETS.SEASONALITY\": \"FORECAST.ETS.SEASONALITY\",\n\t\"_xlfn.FORECAST.ETS.STAT\": \"FORECAST.ETS.STAT\",\n\t\"_xlfn.FORECAST.LINEAR\": \"FORECAST.LINEAR\",\n\t\"_xlfn.FORMULATEXT\": \"FORMULATEXT\",\n\t\"_xlfn.GAMMA\": \"GAMMA\",\n\t\"_xlfn.GAMMA.DIST\": \"GAMMA.DIST\",\n\t\"_xlfn.GAMMA.INV\": \"GAMMA.INV\",\n\t\"_xlfn.GAMMALN.PRECISE\": \"GAMMALN.PRECISE\",\n\t\"_xlfn.GAUSS\": \"GAUSS\",\n\t\"_xlfn.HYPGEOM.DIST\": \"HYPGEOM.DIST\",\n\t\"_xlfn.IFERROR\": \"IFERROR\",\n\t\"_xlfn.IFNA\": \"IFNA\",\n\t\"_xlfn.IFS\": \"IFS\",\n\t\"_xlfn.IMCOSH\": \"IMCOSH\",\n\t\"_xlfn.IMCOT\": \"IMCOT\",\n\t\"_xlfn.IMCSC\": \"IMCSC\",\n\t\"_xlfn.IMCSCH\": \"IMCSCH\",\n\t\"_xlfn.IMSEC\": \"IMSEC\",\n\t\"_xlfn.IMSECH\": \"IMSECH\",\n\t\"_xlfn.IMSINH\": \"IMSINH\",\n\t\"_xlfn.IMTAN\": \"IMTAN\",\n\t\"_xlfn.ISFORMULA\": \"ISFORMULA\",\n\t\"_xlfn.ISO.CEILING\": \"ISO.CEILING\",\n\t\"_xlfn.ISOWEEKNUM\": \"ISOWEEKNUM\",\n\t\"_xlfn.LOGNORM.DIST\": \"LOGNORM.DIST\",\n\t\"_xlfn.LOGNORM.INV\": \"LOGNORM.INV\",\n\t\"_xlfn.MAXIFS\": \"MAXIFS\",\n\t\"_xlfn.MINIFS\": \"MINIFS\",\n\t\"_xlfn.MODE.MULT\": \"MODE.MULT\",\n\t\"_xlfn.MODE.SNGL\": \"MODE.SNGL\",\n\t\"_xlfn.MUNIT\": \"MUNIT\",\n\t\"_xlfn.NEGBINOM.DIST\": \"NEGBINOM.DIST\",\n\t\"_xlfn.NETWORKDAYS.INTL\": \"NETWORKDAYS.INTL\",\n\t\"_xlfn.NIGBINOM\": \"NIGBINOM\",\n\t\"_xlfn.NORM.DIST\": \"NORM.DIST\",\n\t\"_xlfn.NORM.INV\": \"NORM.INV\",\n\t\"_xlfn.NORM.S.DIST\": \"NORM.S.DIST\",\n\t\"_xlfn.NORM.S.INV\": \"NORM.S.INV\",\n\t\"_xlfn.NUMBERVALUE\": \"NUMBERVALUE\",\n\t\"_xlfn.PDURATION\": \"PDURATION\",\n\t\"_xlfn.PERCENTILE.EXC\": \"PERCENTILE.EXC\",\n\t\"_xlfn.PERCENTILE.INC\": \"PERCENTILE.INC\",\n\t\"_xlfn.PERCENTRANK.EXC\": \"PERCENTRANK.EXC\",\n\t\"_xlfn.PERCENTRANK.INC\": \"PERCENTRANK.INC\",\n\t\"_xlfn.PERMUTATIONA\": \"PERMUTATIONA\",\n\t\"_xlfn.PHI\": \"PHI\",\n\t\"_xlfn.POISSON.DIST\": \"POISSON.DIST\",\n\t\"_xlfn.QUARTILE.EXC\": \"QUARTILE.EXC\",\n\t\"_xlfn.QUARTILE.INC\": \"QUARTILE.INC\",\n\t\"_xlfn.QUERYSTRING\": \"QUERYSTRING\",\n\t\"_xlfn.RANK.AVG\": \"RANK.AVG\",\n\t\"_xlfn.RANK.EQ\": \"RANK.EQ\",\n\t\"_xlfn.RRI\": \"RRI\",\n\t\"_xlfn.SEC\": \"SEC\",\n\t\"_xlfn.SECH\": \"SECH\",\n\t\"_xlfn.SHEET\": \"SHEET\",\n\t\"_xlfn.SHEETS\": \"SHEETS\",\n\t\"_xlfn.SKEW.P\": \"SKEW.P\",\n\t\"_xlfn.STDEV.P\": \"STDEV.P\",\n\t\"_xlfn.STDEV.S\": \"STDEV.S\",\n\t\"_xlfn.SUMIFS\": \"SUMIFS\",\n\t\"_xlfn.SWITCH\": \"SWITCH\",\n\t\"_xlfn.T.DIST\": \"T.DIST\",\n\t\"_xlfn.T.DIST.2T\": \"T.DIST.2T\",\n\t\"_xlfn.T.DIST.RT\": \"T.DIST.RT\",\n\t\"_xlfn.T.INV\": \"T.INV\",\n\t\"_xlfn.T.INV.2T\": \"T.INV.2T\",\n\t\"_xlfn.T.TEST\": \"T.TEST\",\n\t\"_xlfn.TEXTJOIN\": \"TEXTJOIN\",\n\t\"_xlfn.UNICHAR\": \"UNICHAR\",\n\t\"_xlfn.UNICODE\": \"UNICODE\",\n\t\"_xlfn.VAR.P\": \"VAR.P\",\n\t\"_xlfn.VAR.S\": \"VAR.S\",\n\t\"_xlfn.WEBSERVICE\": \"WEBSERVICE\",\n\t\"_xlfn.WEIBULL.DIST\": \"WEIBULL.DIST\",\n\t\"_xlfn.WORKDAY.INTL\": \"WORKDAY.INTL\",\n\t\"_xlfn.XOR\": \"XOR\",\n\t\"_xlfn.Z.TEST\": \"Z.TEST\"\n};\n\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f) {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f) {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r) {\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r) {\n\treturn r.replace(/\\./,\"!\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\nRELS.WS = [\n\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n];\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst, str, rev) {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C, col) {\n\tvar p = ({min:C+1,max:C+1});\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\treturn p;\n}\n\nfunction default_margins(margins, mode) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left   == null) margins.left   = defs[0];\n\tif(margins.right  == null) margins.right  = defs[1];\n\tif(margins.top    == null) margins.top    = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles, cell, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF.load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p, fmtid, fillid, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z') return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(SSF._table[fmtid] == null) SSF.load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = SSF._general_int(dd);\n\t\t\t\telse p.w = SSF._general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF._general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF.format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF.format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws, sname, i) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws, s) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data, opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = opts.dense ? ([]) : ({});\n\tvar refguess = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} });\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2  autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges) {\n\tif(merges.length === 0) return \"\";\n\tvar o = '<mergeCells count=\"' + merges.length + '\">';\n\tfor(var i = 0; i != merges.length; ++i) o += '<mergeCell ref=\"' + encode_range(merges[i]) + '\"/>';\n\treturn o + '</mergeCells>';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr, s, wb, idx) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = data.codeName;\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = escapexml(cname);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp) {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1});\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data, rels) {\n\tvar dense = Array.isArray(s);\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+val.location;\n\t\t} else {\n\t\t\tval.Target = \"#\" + val.location;\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(dense) {\n\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\tif(!s[R][C]) s[R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin) {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols) {\n\tvar o = [\"<cols>\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"</cols>\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx) {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref  });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/;\nfunction parse_ws_xml_sheetviews(data, wb) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r, i) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb) {\n\tvar sview = ({workbookViewId:\"0\"});\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell, ref, ws, opts) {\n\tif(cell.v === undefined && typeof cell.f !== \"string\" || cell.t === 'z') return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = SSF._table[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref});\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = (function() {\n\tvar cellregex = /<(?:\\w+:)?c[ >]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata, s, opts, guess, themes, styles) {\n\tvar ri = 0, x = \"\", cells = [], cref = [], idx=0, i=0, cc=0, d=\"\", p;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf = [];\n\tvar sharedf = [];\n\tvar dense = Array.isArray(s);\n\tvar rows = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tfor(ri = 0; ri < xlen; ++ri) if(x.charCodeAt(ri) === 62) break; ++ri;\n\t\ttag = parsexmltag(x.slice(0,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"<c \" + (x.slice(0,1)==\"<\"?\">\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"});\n\n\t\t\tif((cref=d.match(match_v))!= null && cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1])).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\tif(cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/<f[^>]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && SSF.is_date(SSF._table[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(dense) {\n\t\t\t\tvar _r = decode_cell(tag.r);\n\t\t\t\tif(!s[_r.r]) s[_r.r] = [];\n\t\t\t\ts[_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws, opts, idx, wb) {\n\tvar o = [], r = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = Array.isArray(ws);\n\tvar params = ({r:rr}), row, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr});\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1});\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nvar WS_XML_ROOT = writextag('worksheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\nfunction write_ws_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, WS_XML_ROOT];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '<sheetData/>';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = ('</sheetData>'); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect'] != null) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(ws['!links'].length > 0) {\n\t\to[o.length] = \"<hyperlinks>\";\nws['!links'].forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]});\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"</hyperlinks>\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] =  write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = ('</worksheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({});\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = Array.isArray(ws) ? (ws[caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 'BrtRowHdr', o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo() {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\t/* TODO: pull flags */\n\tdata.l += 19;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tfor(var i = 0; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\n\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display});\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data) {\n\tvar margins = ({});\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\",             false], // fObjects\n\t\t[\"scenarios\",           false], // fScenarios\n\t\t[\"formatCells\",          true], // fFormatCells\n\t\t[\"formatColumns\",        true], // fFormatColumns\n\t\t[\"formatRows\",           true], // fFormatRows\n\t\t[\"insertColumns\",        true], // fInsertColumns\n\t\t[\"insertRows\",           true], // fInsertRows\n\t\t[\"insertHyperlinks\",     true], // fInsertHyperlinks\n\t\t[\"deleteColumns\",        true], // fDeleteColumns\n\t\t[\"deleteRows\",           true], // fDeleteRows\n\t\t[\"selectLockedCells\",   false], // fSelLockedCells\n\t\t[\"sort\",                 true], // fSort\n\t\t[\"autoFilter\",           true], // fAutoFilter\n\t\t[\"pivotTables\",          true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false]  // fSelUnlockedCells\n\t].forEach(function(n) {\nif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse      o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s = (opts.dense ? [] : {});\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell;\n\tvar merges = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || wb.supbooks || ([[]]);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo = [], rowinfo = [];\n\tvar seencol = false;\n\n\trecordhopper(data, function ws_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\t\tp = ({t:val[2]});\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && SSF.is_date(SSF._table[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:undefined});\n\t\t\t\tC = val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\t\t\tif(!s[R][C]) s[R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[R][C] : s[encode_col(C) + rr]));\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x0031: /* 'BrtCellMeta' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba, cell, R, C, opts, ws) {\n\tif(cell.v === undefined) return;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || SSF._table[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o = ({r:R, c:C});\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\twrite_record(ba, \"BrtCellIsst\", write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\twrite_record(ba, \"BrtCellSt\", write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) write_record(ba, \"BrtCellRk\", write_BrtCellRk(cell, o));\n\t\t\telse write_record(ba, \"BrtCellReal\", write_BrtCellReal(cell, o));\n\t\t\treturn;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\twrite_record(ba, \"BrtCellBool\", write_BrtCellBool(cell, o));\n\t\t\treturn;\n\t\tcase 'e': /* TODO: error */ o.t = \"e\"; break;\n\t}\n\twrite_record(ba, \"BrtCellBlank\", write_BrtCellBlank(cell, o));\n}\n\nfunction write_CELLTABLE(ba, ws, idx, opts) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\twrite_record(ba, 'BrtBeginSheetData');\n\tvar dense = Array.isArray(ws);\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_bin_cell(ba, cell, R, C, opts, ws);\n\t\t}\n\t}\n\twrite_record(ba, 'BrtEndSheetData');\n}\n\nfunction write_MERGECELLS(ba, ws) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 'BrtBeginMergeCells', write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 'BrtMergeCell', write_BrtMergeCell(m)); });\n\twrite_record(ba, 'BrtEndMergeCells');\n}\n\nfunction write_COLINFOS(ba, ws) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 'BrtBeginColInfos');\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 'BrtColInfo', write_BrtColInfo(i, m)); });\n\twrite_record(ba, 'BrtEndColInfos');\n}\n\nfunction write_IGNOREECS(ba, ws) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 'BrtBeginCellIgnoreECs');\n\twrite_record(ba, 'BrtCellIgnoreEC', write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 'BrtEndCellIgnoreECs');\n}\n\nfunction write_HLINKS(ba, ws, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, \"BrtHLink\", write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws, idx, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, \"BrtLegacyDrawing\", write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref  });\n\n\twrite_record(ba, \"BrtBeginAFilter\", write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, \"BrtEndAFilter\");\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, \"BrtBeginWsViews\");\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, \"BrtBeginWsView\", write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, \"BrtEndWsView\");\n\t}\n\t/* *FRT */\n\twrite_record(ba, \"BrtEndWsViews\");\n}\n\nfunction write_WSFMTINFO() {\n\t/* [ACWSFMTINFO] */\n\t//write_record(ba, \"BrtWsFmtInfo\", write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, \"BrtSheetProtection\", write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx, opts, wb, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, \"BrtBeginSheet\");\n\tif(wb.vbaraw) write_record(ba, \"BrtWsProp\", write_BrtWsProp(c));\n\twrite_record(ba, \"BrtWsDim\", write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, \"BrtMargins\", write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\nRELS.CHART = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\";\nRELS.CHARTEX = \"http://schemas.microsoft.com/office/2014/relationships/chartEx\";\n\nfunction parse_Cache(data) {\n\tvar col = [];\n\tvar num = data.match(/^<c:numCache>/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/<c:pt idx=\"(\\d*)\">(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/<c:pt idx=\"(\\d*?)\"><c:v>(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/<c:formatCode>([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/<c:f>(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data, name, opts, rels, wb, csheet) {\n\tvar cs = ((csheet || {\"!type\":\"chart\"}));\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/<c:numCache>[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\nRELS.CS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\";\n\nvar CS_XML_ROOT = writextag('chartsheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"});\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, CS_XML_ROOT];\n\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\tif(o.length>2) { o[o.length] = ('</chartsheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R_n, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_bin() {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSheet\");\n\t/* [BrtCsProp] */\n\t/* CSVIEWS */\n\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n\t/* [USERCSVIEWS] */\n\t/* [BrtMargins] */\n\t/* [BrtCsPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* BrtDrawing */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [WEBPUBITEMS] */\n\t/* FRTCHARTSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery',           false, \"bool\"],\n\t['autoCompressPictures',        true,  \"bool\"],\n\t['backupFile',                  false, \"bool\"],\n\t['checkCompatibility',          false, \"bool\"],\n\t['CodeName',                    ''],\n\t['date1904',                    false, \"bool\"],\n\t['defaultThemeVersion',         0,      \"int\"],\n\t['filterPrivacy',               false, \"bool\"],\n\t['hidePivotFieldList',          false, \"bool\"],\n\t['promptedSolutions',           false, \"bool\"],\n\t['publishItems',                false, \"bool\"],\n\t['refreshAllConnections',       false, \"bool\"],\n\t['saveExternalLinkValues',      true,  \"bool\"],\n\t['showBorderUnselectedTables',  true,  \"bool\"],\n\t['showInkAnnotation',           true,  \"bool\"],\n\t['showObjects',                 'all'],\n\t['showPivotChartFilter',        false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab',                   0,      \"int\"],\n\t['autoFilterDateGrouping',      true,  \"bool\"],\n\t['firstSheet',                  0,      \"int\"],\n\t['minimized',                   false, \"bool\"],\n\t['showHorizontalScroll',        true,  \"bool\"],\n\t['showSheetTabs',               true,  \"bool\"],\n\t['showVerticalScroll',          true,  \"bool\"],\n\t['tabRatio',                    600,    \"int\"],\n\t['visibility',                  'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2  (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb) {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = \"][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n, safe) {\n\tif(n.length > 31) { if(safe) return false; throw new Error(\"Sheet names cannot exceed 31 chars\"); }\n\tvar _good = true;\n\tbadchars.forEach(function(c) {\n\t\tif(n.indexOf(c) == -1) return;\n\t\tif(!safe) throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t_good = false;\n\t});\n\treturn _good;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts) {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" };\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\n\t\t\t/* 18.2.27 workbook CT_Workbook 1 */\n\t\t\tcase '<workbook':\n\t\t\t\tif(x.match(wbnsregex)) xmlns = \"xmlns\" + x.match(/<(\\w+):/)[1];\n\t\t\t\twb.xmlns = y[xmlns];\n\t\t\t\tbreak;\n\t\t\tcase '</workbook>': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '<fileVersion': delete y[0]; wb.AppVersion = y; break;\n\t\t\tcase '<fileVersion/>': case '</fileVersion>': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '<fileSharing':\n\t\t\t\tbreak;\n\t\t\tcase '<fileSharing/>': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '<workbookPr':\n\t\t\tcase '<workbookPr/>':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '</workbookPr>': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '<workbookProtection':\n\t\t\t\tbreak;\n\t\t\tcase '<workbookProtection/>': break;\n\n\t\t\t/* 18.2.1  bookViews CT_BookViews ? */\n\t\t\tcase '<bookViews': case '<bookViews>': case '</bookViews>': break;\n\t\t\t/* 18.2.30   workbookView CT_BookView + */\n\t\t\tcase '<workbookView': case '<workbookView/>': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '</workbookView>': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '<sheets': case '<sheets>': case '</sheets>': break; // aggregate sheet\n\t\t\t/* 18.2.19   sheet CT_Sheet + */\n\t\t\tcase '<sheet':\n\t\t\t\tswitch(y.state) {\n\t\t\t\t\tcase \"hidden\": y.Hidden = 1; break;\n\t\t\t\t\tcase \"veryHidden\": y.Hidden = 2; break;\n\t\t\t\t\tdefault: y.Hidden = 0;\n\t\t\t\t}\n\t\t\t\tdelete y.state;\n\t\t\t\ty.name = unescapexml(utf8read(y.name));\n\t\t\t\tdelete y[0]; wb.Sheets.push(y); break;\n\t\t\tcase '</sheet>': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '<functionGroups': case '<functionGroups/>': break;\n\t\t\t/* 18.2.14   functionGroup CT_FunctionGroup + */\n\t\t\tcase '<functionGroup': break;\n\n\t\t\t/* 18.2.9  externalReferences CT_ExternalReferences ? */\n\t\t\tcase '<externalReferences': case '</externalReferences>': case '<externalReferences>': break;\n\t\t\t/* 18.2.8    externalReference CT_ExternalReference + */\n\t\t\tcase '<externalReference': break;\n\n\t\t\t/* 18.2.6  definedNames CT_DefinedNames ? */\n\t\t\tcase '<definedNames/>': break;\n\t\t\tcase '<definedNames>': case '<definedNames': pass=true; break;\n\t\t\tcase '</definedNames>': pass=false; break;\n\t\t\t/* 18.2.5    definedName CT_DefinedName + */\n\t\t\tcase '<definedName': {\n\t\t\t\tdname = {};\n\t\t\t\tdname.Name = utf8read(y.name);\n\t\t\t\tif(y.comment) dname.Comment = y.comment;\n\t\t\t\tif(y.localSheetId) dname.Sheet = +y.localSheetId;\n\t\t\t\tif(parsexmlbool(y.hidden||\"0\")) dname.Hidden = true;\n\t\t\t\tdnstart = idx + x.length;\n\t\t\t}\tbreak;\n\t\t\tcase '</definedName>': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '<definedName/>': break;\n\n\t\t\t/* 18.2.2  calcPr CT_CalcPr ? */\n\t\t\tcase '<calcPr': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '<calcPr/>': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '</calcPr>': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '<oleSize': break;\n\n\t\t\t/* 18.2.4  customWorkbookViews CT_CustomWorkbookViews ? */\n\t\t\tcase '<customWorkbookViews>': case '</customWorkbookViews>': case '<customWorkbookViews': break;\n\t\t\t/* 18.2.3  customWorkbookView CT_CustomWorkbookView + */\n\t\t\tcase '<customWorkbookView': case '</customWorkbookView>': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '<pivotCaches>': case '</pivotCaches>': case '<pivotCaches': break;\n\t\t\t/* 18.2.17 pivotCache CT_PivotCache ? */\n\t\t\tcase '<pivotCache': break;\n\n\t\t\t/* 18.2.21 smartTagPr CT_SmartTagPr ? */\n\t\t\tcase '<smartTagPr': case '<smartTagPr/>': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '<smartTagTypes': case '<smartTagTypes>': case '</smartTagTypes>': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '<smartTagType': break;\n\n\t\t\t/* 18.2.24 webPublishing CT_WebPublishing ? */\n\t\t\tcase '<webPublishing': case '<webPublishing/>': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '<fileRecoveryPr': case '<fileRecoveryPr/>': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '<webPublishObjects>': case '<webPublishObjects': case '</webPublishObjects>': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '<webPublishObject': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': case '<extLst/>': break;\n\t\t\t/* 18.2.7  ext CT_Extension + */\n\t\t\tcase '<ext': pass=true; break; //TODO: check with versions of excel\n\t\t\tcase '</ext>': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '<ArchID': break;\n\t\t\tcase '<AlternateContent':\n\t\t\tcase '<AlternateContent>': pass=true; break;\n\t\t\tcase '</AlternateContent>': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase '<revisionPtr': break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in workbook');\n\t\t}\n\t\treturn x;\n\t});\n\tif(XMLNS.main.indexOf(wb.xmlns) === -1) throw new Error(\"Unknown Namespace: \" + wb.xmlns);\n\n\tparse_wb_defaults(wb);\n\n\treturn wb;\n}\n\nvar WB_XML_ROOT = writextag('workbook', null, {\n\t'xmlns': XMLNS.main[0],\n\t//'xmlns:mx': XMLNS.mx,\n\t//'xmlns:s': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\nfunction write_wb_xml(wb) {\n\tvar o = [XML_HEADER];\n\to[o.length] = WB_XML_ROOT;\n\n\tvar write_names = (wb.Workbook && (wb.Workbook.Names||[]).length > 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr = ({codeName:\"ThisWorkbook\"});\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\nif((wb.Workbook.WBProps[x[0]]) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]);\n\t\t});\nif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"<bookViews>\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '<workbookView firstSheet=\"' + i + '\" activeTab=\"' + i + '\"/>';\n\t\to[o.length] = \"</bookViews>\";\n\t}\n\n\to[o.length] = \"<sheets>\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))});\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"</sheets>\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"<definedNames>\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"</definedNames>\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = '</workbook>'; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length) {\n\tvar o = ({});\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tdata.l += 4; //var flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula});\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts) {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\trecordhopper(data, function hopper_wb(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\" && state[state.length-1] != \"BrtFRTBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb) {\n\twrite_record(ba, \"BrtBeginBundleShs\");\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, \"BrtBundleSh\", write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, \"BrtEndBundleShs\");\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\to.length = o.l;\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4,  28800);\n\to.write_shift(4,  17600);\n\to.write_shift(4,  500);\n\to.write_shift(4,  idx);\n\to.write_shift(4,  idx);\n\tvar flags = 0x78;\n\to.write_shift(1,  flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, \"BrtBeginBookViews\");\n\twrite_record(ba, \"BrtBookView\", write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, \"BrtEndBookViews\");\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginBook\");\n\twrite_record(ba, \"BrtFileVersion\", write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, \"BrtWbProp\", write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\t/* write_record(ba, \"BrtCalcProp\", write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, \"BrtFileRecover\", write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, \"BrtEndBook\");\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data), opts);\n\treturn parse_wb_xml((data), opts);\n}\n\nfunction parse_ws(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data), themes, opts);\n\treturn parse_sty_xml((data), themes, opts);\n}\n\nfunction parse_theme(data, name, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data), opts);\n\treturn parse_sst_xml((data), opts);\n}\n\nfunction parse_cmnt(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data), opts);\n\treturn parse_comments_xml((data), opts);\n}\n\nfunction parse_cc(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data), name, opts);\n\treturn parse_cc_xml((data), name, opts);\n}\n\nfunction parse_xlink(data, rel, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data), rel, name, opts);\n\treturn parse_xlink_xml((data), rel, name, opts);\n}\n\nfunction write_wb(wb, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb, rels);\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction write_cs(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\n}\n\nfunction write_sty(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n\nfunction write_cmnt(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n/*\nfunction write_cc(data, name:string, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag, skip_root) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = ([]); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\nfunction xlml_format(format, value) {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF._general(value);\n\treturn SSF.format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val) {\n\tvar oval = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = SSF._general_int(cell.v);\n\t\t\t\telse cell.w = SSF._general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF._general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && SSF.is_date(z)) {\n\t\t\tvar _d = SSF.parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_clean_comment(comment) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\nfunction xlml_normalize(d) {\n\tif(has_buf && Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n\n/* TODO: Everything */\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?><!\\/:]*:|)([^\\s?<>:\\/]+)(?:[\\s?:\\/][^>]*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\nfunction parse_xlml_xml(d, _opts) {\n\tvar opts = _opts || {};\n\tmake_ssf(SSF);\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof cptable !== 'undefined') str = cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\tif(opening.indexOf(\"<?xml\") == -1) [\"html\", \"table\", \"head\", \"meta\", \"script\", \"style\", \"div\"].forEach(function(tag) { if(opening.indexOf(\"<\" + tag) >= 0) ishtml = true; });\n\tif(ishtml) return HTML_.to_workbook(str, opts);\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames = [], cursheet = (opts.dense ? [] : {}), sheetname = \"\";\n\tvar table = {}, cell = ({}), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag('<Data ss:Type=\"String\">'), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments = [], comment = ({});\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf = [];\n\tvar rowinfo = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false} }), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(/<!--([\\s\\S]*?)-->/mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[r]) cursheet[r] = [];\n\t\t\t\t\t\tcursheet[r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:cell.HRef});\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmerges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\nfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[cmd]) cursheet[cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = (opts.dense ? [] : {});\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\ttable = xlml_parsexmltag(Rn[0]);\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == null) { SSF.load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName = ({\n\t\t\t\tName: _NamedRange.Name,\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t});\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\nWorkbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author});\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\t/* FODS file root is <office:document> */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is <uof:UOF> */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\nWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].header = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].footer = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(pagemargins.Top) cursheet['!margins'].top = pagemargins.Top;\n\t\t\t\t\t\tif(pagemargins.Left) cursheet['!margins'].left = pagemargins.Left;\n\t\t\t\t\t\tif(pagemargins.Right) cursheet['!margins'].right = pagemargins.Right;\n\t\t\t\t\t\tif(pagemargins.Bottom) cursheet['!margins'].bottom = pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/: break;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/: break;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({});\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = SSF.get_table();\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data, opts) {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64.decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n}\n\n/* TODO */\nfunction write_props_xlml(wb, opts) {\n\tvar o = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml() {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts) {\n\t/* Styles */\n\tvar styles = ['<Style ss:ID=\"Default\" ss:Name=\"Normal\"><NumberFormat/></Style>'];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(SSF._table[xf.numFmtId])}));\n\n\t\tvar o = {\"ss:ID\": \"s\" + (21+id)};\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb) {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tvar o = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"<PageSetup>\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"</PageSetup>\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"<Selected/>\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"<DisplayRightToLeft/>\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments) {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr){\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || SSF._table[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('<Data ss:Type=\"' + t + '\">' + _v + '</Data>');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R, row) {\n\tvar o = '<Row ss:Index=\"' + (R+1) + '\"';\n\tif(row) {\n\t\tif(row.hpt && !row.hpx) row.hpx = pt2px(row.hpt);\n\t\tif(row.hpx) o += ' ss:AutoFitHeight=\"0\" ss:Height=\"' + row.hpx + '\"';\n\t\tif(row.hidden) o += ' ss:Hidden=\"1\"';\n\t}\n\treturn o + '>';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws, opts, idx, wb) {\n\tif(!ws['!ref']) return \"\";\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar marr = ws['!merges'] || [], mi = 0;\n\tvar o = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = Array.isArray(ws);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_cell(addr), cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"</Row>\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx, opts, wb) {\n\tvar o = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"<Names>\" + t + \"</Names>\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"<Table>\" + t + \"</Table>\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts) {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = SSF.get_table();\n\tif(wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns':      XLMLNS.ss,\n\t\t'xmlns:o':    XLMLNS.o,\n\t\t'xmlns:x':    XLMLNS.x,\n\t\t'xmlns:ss':   XLMLNS.ss,\n\t\t'xmlns:dt':   XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj) {\n\tvar v = {};\n\tvar o = obj.content;\n/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue\n\t- 2.4.59 ContinueBigName\n\t- 2.4.60 ContinueFrt\n\t- 2.4.61 ContinueFrt11\n\t- 2.4.62 ContinueFrt12\n*/\nfunction slurp(R, blob, length, opts) {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu) switch(R.n) {\n\tcase 'BOF': case 'FilePass': case 'FileLock': case 'InterfaceHdr': case 'RRDInfo': case 'RRDHead': case 'UsrExcl': break;\n\tdefault:\n\t\tif(d.length === 0) break;\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar next = (XLSRecordEnum[__readUInt16LE(blob,blob.l)]);\n\tvar start = 0;\n\twhile(next != null && next.n.slice(0,8) === 'Continue') {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(next.n == 'ContinueFrt') start += 4;\n\t\telse if(next.n.slice(0,11) == 'ContinueFrt') start += 12;\n\t\tbufs.push(blob.slice(start,blob.l+4+l));\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[__readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs));\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p, opts, date1904) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF._general(p.v);\n\t\t}\n\t\telse p.w = SSF.format(fmtid,p.v, {date1904:!!date1904});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && SSF.is_date(SSF._table[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t) {\n\treturn ({v:val, ixfe:ixfe, t:t});\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options) {\n\tvar wb = ({opts:{}});\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out = ((options.dense ? [] : {}));\n\tvar Directory = {};\n\tvar range = ({});\n\tvar last_formula = null;\n\tvar sst = ([]);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf = [];\n\tvar temp_val;\n\tvar country;\n\tvar cell_valid = true;\n\tvar XFs = []; /* XF records */\n\tvar palette = [];\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }), wsprops = {};\n\tvar get_rgb = function getrgb(icv) {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({});\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell, line, options) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) cell_valid = false;\n\t\tif(!cell_valid) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[cell.r]) out[cell.r] = [];\n\t\t\t\tout[cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t});\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges = [];\n\tvar objects = [];\n\tvar colinfo = [], rowinfo = [];\n\t// eslint-disable-next-line no-unused-vars\n\tvar defwidth = 0, defheight = 0; // twips / MDW respectively\n\tvar seencol = false;\n\tvar supbooks = ([]); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_Rn = '';\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_Rn === 'EOF') break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_Rn === 'BoundSheet8' && R.n !== 'BoundSheet8') break;\n\t\t\t}\n\t\t\tlast_Rn = R.n;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){ blob.l += 10; length -= 10; } // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val = ({});\n\t\t\tif(R.n === 'EOF') val = R.f(blob, length, opts);\n\t\t\telse val = slurp(R, blob, length, opts);\n\t\t\tvar Rn = R.n;\nif(file_depth == 0 && Rn != 'BOF') continue;\n\t\t\t/* nested switch statements to workaround V8 128 limit */\n\t\t\tswitch(Rn) {\n\t\t\t\t/* Workbook Options */\n\t\t\t\tcase 'Date1904':\nwb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 'WriteProtect': wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 'FilePass':\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'WriteAccess': opts.lastuser = val; break;\n\t\t\t\tcase 'FileSharing': break; //TODO\n\t\t\t\tcase 'CodePage':\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval =  1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval =  1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'RRTabId': opts.rrtabid = val; break;\n\t\t\t\tcase 'WinProtect': opts.winlocked = val; break;\n\t\t\t\tcase 'Template': break; // TODO\n\t\t\t\tcase 'BookBool': break; // TODO\n\t\t\t\tcase 'UsesELFs': break;\n\t\t\t\tcase 'MTRSettings': break;\n\t\t\t\tcase 'RefreshAll':\n\t\t\t\tcase 'CalcCount':\n\t\t\t\tcase 'CalcDelta':\n\t\t\t\tcase 'CalcIter':\n\t\t\t\tcase 'CalcMode':\n\t\t\t\tcase 'CalcPrecision':\n\t\t\t\tcase 'CalcSaveRecalc':\n\t\t\t\t\twb.opts[Rn] = val; break;\n\t\t\t\tcase 'CalcRefMode': opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 'Uncalced': break;\n\t\t\t\tcase 'ForceFullCalculation': wb.opts.FullCalc = val; break;\n\t\t\t\tcase 'WsBool':\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 'XF':\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 'ExtSST': break; // TODO\n\t\t\t\tcase 'BookExt': break; // TODO\n\t\t\t\tcase 'RichTextStream': break;\n\t\t\t\tcase 'BkHim': break;\n\n\t\t\t\tcase 'SupBook':\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternName':\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Index': break; // TODO\n\t\t\t\tcase 'Lbl':\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t});\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternCount': opts.ExternCount = val; break;\n\t\t\t\tcase 'ExternSheet':\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 'NameCmt':\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Protect': out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 'Password': if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 'Prot4Rev': case 'Prot4RevPass': break; /*TODO: Revision Control*/\n\n\t\t\t\tcase 'BoundSheet8': {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 'EOF': {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\t\t\t\t} break;\n\t\t\t\tcase 'BOF': {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n0x0009:2,\n0x0209:3,\n0x0409:4\n\t\t\t\t\t}[RecordType] || {\n0x0200:2,\n0x0300:3,\n0x0400:4,\n0x0500:5,\n0x0600:8,\n0x0002:2,\n0x0007:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tcell_valid = true;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\t\t\t\t\tif(opts.biff < 5) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tdefwidth = defheight = 0;\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\n\t\t\t\tcase 'Number': case 'BIFF2NUM': case 'BIFF2INT': {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r})]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'BoolErr': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'RK': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulRk': {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Formula': {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'String': {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 'Array': {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'ShrFmla': {\n\t\t\t\t\tif(!cell_valid) break;\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'LabelSst':\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Blank': if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulBlank': if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'RString':\n\t\t\t\tcase 'Label': case 'BIFF2STR':\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Dimensions': {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 'SST': {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'Format': { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(SSF._table[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF.load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF.load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 'BIFF2FORMAT': {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(SSF._table[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF.load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 'MergeCells': merges = merges.concat(val); break;\n\n\t\t\t\tcase 'Obj': objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 'TxO': opts.lastobj.TxO = val; break;\n\t\t\t\tcase 'ImData': opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 'HLink': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'HLinkTooltip': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\t/* Comments */\n\t\t\t\tcase 'Note': {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[val[0].r]) out[val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[val[0].r][val[0].c] = ({t:\"z\"});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"});\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\tcase 'ClrtClient': break;\n\t\t\t\tcase 'XFExt': update_xfext(XFs[val.ixfe], val.ext); break;\n\n\t\t\t\tcase 'DefColWidth': defwidth = val; break;\n\t\t\t\tcase 'DefaultRowHeight': defheight = val[1]; break; // TODO: flags\n\n\t\t\t\tcase 'ColInfo': {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256 };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Row': {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\tcase 'LeftMargin':\n\t\t\t\tcase 'RightMargin':\n\t\t\t\tcase 'TopMargin':\n\t\t\t\tcase 'BottomMargin':\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][Rn.slice(0,-6).toLowerCase()] = val;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Setup': // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Window2': // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Header': break; // TODO\n\t\t\t\tcase 'Footer': break; // TODO\n\t\t\t\tcase 'HCenter': break; // TODO\n\t\t\t\tcase 'VCenter': break; // TODO\n\t\t\t\tcase 'Pls': break; // TODO\n\t\t\t\tcase 'GCW': break;\n\t\t\t\tcase 'LHRecord': break;\n\t\t\t\tcase 'DBCell': break; // TODO\n\t\t\t\tcase 'EntExU2': break; // TODO\n\t\t\t\tcase 'SxView': break; // TODO\n\t\t\t\tcase 'Sxvd': break; // TODO\n\t\t\t\tcase 'SXVI': break; // TODO\n\t\t\t\tcase 'SXVDEx': break; // TODO\n\t\t\t\tcase 'SxIvd': break; // TODO\n\t\t\t\tcase 'SXString': break; // TODO\n\t\t\t\tcase 'Sync': break;\n\t\t\t\tcase 'Addin': break;\n\t\t\t\tcase 'SXDI': break; // TODO\n\t\t\t\tcase 'SXLI': break; // TODO\n\t\t\t\tcase 'SXEx': break; // TODO\n\t\t\t\tcase 'QsiSXTag': break; // TODO\n\t\t\t\tcase 'Selection': break;\n\t\t\t\tcase 'Feat': break;\n\t\t\t\tcase 'FeatHdr': case 'FeatHdr11': break;\n\t\t\t\tcase 'Feature11': case 'Feature12': case 'List12': break;\n\t\t\t\tcase 'Country': country = val; break;\n\t\t\t\tcase 'RecalcId': break;\n\t\t\t\tcase 'DxGCol': break; // TODO: htmlify\n\t\t\t\tcase 'Fbi': case 'Fbi2': case 'GelFrame': break;\n\t\t\t\tcase 'Font': break; // TODO\n\t\t\t\tcase 'XFCRC': break; // TODO\n\t\t\t\tcase 'Style': break; // TODO\n\t\t\t\tcase 'StyleExt': break; // TODO\n\t\t\t\tcase 'Palette': palette = val; break;\n\t\t\t\tcase 'Theme': themes = val; break;\n\t\t\t\t/* Protection */\n\t\t\t\tcase 'ScenarioProtect': break;\n\t\t\t\tcase 'ObjProtect': break;\n\n\t\t\t\t/* Conditional Formatting */\n\t\t\t\tcase 'CondFmt12': break;\n\n\t\t\t\t/* Table */\n\t\t\t\tcase 'Table': break; // TODO\n\t\t\t\tcase 'TableStyles': break; // TODO\n\t\t\t\tcase 'TableStyle': break; // TODO\n\t\t\t\tcase 'TableStyleElement': break; // TODO\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'SXStreamID': break; // TODO\n\t\t\t\tcase 'SXVS': break; // TODO\n\t\t\t\tcase 'DConRef': break; // TODO\n\t\t\t\tcase 'SXAddl': break; // TODO\n\t\t\t\tcase 'DConBin': break; // TODO\n\t\t\t\tcase 'DConName': break; // TODO\n\t\t\t\tcase 'SXPI': break; // TODO\n\t\t\t\tcase 'SxFormat': break; // TODO\n\t\t\t\tcase 'SxSelect': break; // TODO\n\t\t\t\tcase 'SxRule': break; // TODO\n\t\t\t\tcase 'SxFilt': break; // TODO\n\t\t\t\tcase 'SxItm': break; // TODO\n\t\t\t\tcase 'SxDXF': break; // TODO\n\n\t\t\t\t/* Scenario Manager */\n\t\t\t\tcase 'ScenMan': break;\n\n\t\t\t\t/* Data Consolidation */\n\t\t\t\tcase 'DCon': break;\n\n\t\t\t\t/* Watched Cell */\n\t\t\t\tcase 'CellWatch': break;\n\n\t\t\t\t/* Print Settings */\n\t\t\t\tcase 'PrintRowCol': break;\n\t\t\t\tcase 'PrintGrid': break;\n\t\t\t\tcase 'PrintSize': break;\n\n\t\t\t\tcase 'XCT': break;\n\t\t\t\tcase 'CRN': break;\n\n\t\t\t\tcase 'Scl': {\n\t\t\t\t\t//console.log(\"Zoom Level:\", val[0]/val[1],val);\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExt': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExtOptional': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\t/* VBA */\n\t\t\t\tcase 'ObNoMacros': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'ObProj': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'CodeName': {\nif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t\tcase 'GUIDTypeLib': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\tcase 'WOpt': break; // TODO: WTF?\n\t\t\t\tcase 'PhoneticInfo': break;\n\n\t\t\t\tcase 'OleObjectSize': break;\n\n\t\t\t\t/* Differential Formatting */\n\t\t\t\tcase 'DXF': case 'DXFN': case 'DXFN12': case 'DXFN12List': case 'DXFN12NoCB': break;\n\n\t\t\t\t/* Data Validation */\n\t\t\t\tcase 'Dv': case 'DVal': break;\n\n\t\t\t\t/* Data Series */\n\t\t\t\tcase 'BRAI': case 'Series': case 'SeriesText': break;\n\n\t\t\t\t/* Data Connection */\n\t\t\t\tcase 'DConn': break;\n\t\t\t\tcase 'DbOrParamQry': break;\n\t\t\t\tcase 'DBQueryExt': break;\n\n\t\t\t\tcase 'OleDbConn': break;\n\t\t\t\tcase 'ExtString': break;\n\n\t\t\t\t/* Formatting */\n\t\t\t\tcase 'IFmtRecord': break;\n\t\t\t\tcase 'CondFmt': case 'CF': case 'CF12': case 'CFEx': break;\n\n\t\t\t\t/* Explicitly Ignored */\n\t\t\t\tcase 'Excel9File': break;\n\t\t\t\tcase 'Units': break;\n\t\t\t\tcase 'InterfaceHdr': case 'Mms': case 'InterfaceEnd': case 'DSF': break;\n\t\t\t\tcase 'BuiltInFnGroupCount': /* 2.4.30 0x0E or 0x10 but excel 2011 generates 0x11? */ break;\n\t\t\t\t/* View Stuff */\n\t\t\t\tcase 'Window1': case 'HideObj': case 'GridSet': case 'Guts':\n\t\t\t\tcase 'UserBView': case 'UserSViewBegin': case 'UserSViewEnd': break;\n\t\t\t\tcase 'Pane': break;\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* Chart */\n\t\t\t\tcase 'Dat':\n\t\t\t\tcase 'Begin': case 'End':\n\t\t\t\tcase 'StartBlock': case 'EndBlock':\n\t\t\t\tcase 'Frame': case 'Area':\n\t\t\t\tcase 'Axis': case 'AxisLine': case 'Tick': break;\n\t\t\t\tcase 'AxesUsed':\n\t\t\t\tcase 'CrtLayout12': case 'CrtLayout12A': case 'CrtLink': case 'CrtLine': case 'CrtMlFrt': case 'CrtMlFrtContinue': break;\n\t\t\t\tcase 'LineFormat': case 'AreaFormat':\n\t\t\t\tcase 'Chart': case 'Chart3d': case 'Chart3DBarShape': case 'ChartFormat': case 'ChartFrtInfo': break;\n\t\t\t\tcase 'PlotArea': case 'PlotGrowth': break;\n\t\t\t\tcase 'SeriesList': case 'SerParent': case 'SerAuxTrend': break;\n\t\t\t\tcase 'DataFormat': case 'SerToCrt': case 'FontX': break;\n\t\t\t\tcase 'CatSerRange': case 'AxcExt': case 'SerFmt': break;\n\t\t\t\tcase 'ShtProps': break;\n\t\t\t\tcase 'DefaultText': case 'Text': case 'CatLab': break;\n\t\t\t\tcase 'DataLabExtContents': break;\n\t\t\t\tcase 'Legend': case 'LegendException': break;\n\t\t\t\tcase 'Pie': case 'Scatter': break;\n\t\t\t\tcase 'PieFormat': case 'MarkerFormat': break;\n\t\t\t\tcase 'StartObject': case 'EndObject': break;\n\t\t\t\tcase 'AlRuns': case 'ObjectLink': break;\n\t\t\t\tcase 'SIIndex': break;\n\t\t\t\tcase 'AttachedLabel': case 'YMult': break;\n\n\t\t\t\t/* Chart Group */\n\t\t\t\tcase 'Line': case 'Bar': break;\n\t\t\t\tcase 'Surf': break;\n\n\t\t\t\t/* Axis Group */\n\t\t\t\tcase 'AxisParent': break;\n\t\t\t\tcase 'Pos': break;\n\t\t\t\tcase 'ValueRange': break;\n\n\t\t\t\t/* Pivot Chart */\n\t\t\t\tcase 'SXViewEx9': break; // TODO\n\t\t\t\tcase 'SXViewLink': break;\n\t\t\t\tcase 'PivotChartBits': break;\n\t\t\t\tcase 'SBaseRef': break;\n\t\t\t\tcase 'TextPropsStream': break;\n\n\t\t\t\t/* Chart Misc */\n\t\t\t\tcase 'LnExt': break;\n\t\t\t\tcase 'MkrExt': break;\n\t\t\t\tcase 'CrtCoopt': break;\n\n\t\t\t\t/* Query Table */\n\t\t\t\tcase 'Qsi': case 'Qsif': case 'Qsir': case 'QsiSXTag': break;\n\t\t\t\tcase 'TxtQry': break;\n\n\t\t\t\t/* Filter */\n\t\t\t\tcase 'FilterMode': break;\n\t\t\t\tcase 'AutoFilter': case 'AutoFilterInfo': break;\n\t\t\t\tcase 'AutoFilter12': break;\n\t\t\t\tcase 'DropDownObjIds': break;\n\t\t\t\tcase 'Sort': break;\n\t\t\t\tcase 'SortData': break;\n\n\t\t\t\t/* Drawing */\n\t\t\t\tcase 'ShapePropsStream': break;\n\t\t\t\tcase 'MsoDrawing': case 'MsoDrawingGroup': case 'MsoDrawingSelection': break;\n\t\t\t\t/* Pub Stuff */\n\t\t\t\tcase 'WebPub': case 'AutoWebPub': break;\n\n\t\t\t\t/* Print Stuff */\n\t\t\t\tcase 'HeaderFooter': case 'HFPicture': case 'PLV':\n\t\t\t\tcase 'HorizontalPageBreaks': case 'VerticalPageBreaks': break;\n\t\t\t\t/* Behavioral */\n\t\t\t\tcase 'Backup': case 'CompressPictures': case 'Compat12': break;\n\n\t\t\t\t/* Should not Happen */\n\t\t\t\tcase 'Continue': case 'ContinueFrt12': break;\n\n\t\t\t\t/* Future Records */\n\t\t\t\tcase 'FrtFontList': case 'FrtWrapper': break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* BIFF5 records */\n\t\t\t\tcase 'TabIdConf': case 'Radar': case 'RadarArea': case 'DropBar': case 'Intl': case 'CoordList': case 'SerAuxErrBar': break;\n\n\t\t\t\t/* BIFF2-4 records */\n\t\t\t\tcase 'BIFF2FONTCLR': case 'BIFF2FMTCNT': case 'BIFF2FONTXTRA': break;\n\t\t\t\tcase 'BIFF2XF': case 'BIFF3XF': case 'BIFF4XF': break;\n\t\t\t\tcase 'BIFF4FMTCNT': case 'BIFF2ROW': case 'BIFF2WINDOW2': break;\n\n\t\t\t\t/* Miscellaneous */\n\t\t\t\tcase 'SCENARIO': case 'DConBin': case 'PicF': case 'DataLabExt':\n\t\t\t\tcase 'Lel': case 'BopPop': case 'BopPopCustom': case 'RealTimeData':\n\t\t\t\tcase 'Name': break;\n\t\t\t\tcase 'LHNGraph': case 'FnGroupName': case 'AddMenu': case 'LPr': break;\n\t\t\t\tcase 'ListObj': case 'ListField': break;\n\t\t\t\tcase 'RRSort': break;\n\t\t\t\tcase 'BigName': break;\n\t\t\t\tcase 'ToolbarHdr': case 'ToolbarEnd': break;\n\t\t\t\tcase 'DDEObjName': break;\n\t\t\t\tcase 'FRTArchId$': break;\n\t\t\t\tdefault: if(options.WTF) throw 'Unrecognized Record ' + R.n;\n\t\t\t}}}}\n\t\t} else blob.l += length;\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Preamble=Preamble;\n\twb.Strings = sst;\n\twb.SSF = SSF.get_table();\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb, cfb) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb, options) {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj, WB;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64.decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb});\n}\nvar WorkbookP;\n\nvar _data;\nif(CompObj) parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({});\nelse {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(cfb, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb, opts) {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n0x0000: { n:\"BrtRowHdr\", f:parse_BrtRowHdr },\n0x0001: { n:\"BrtCellBlank\", f:parse_BrtCellBlank },\n0x0002: { n:\"BrtCellRk\", f:parse_BrtCellRk },\n0x0003: { n:\"BrtCellError\", f:parse_BrtCellError },\n0x0004: { n:\"BrtCellBool\", f:parse_BrtCellBool },\n0x0005: { n:\"BrtCellReal\", f:parse_BrtCellReal },\n0x0006: { n:\"BrtCellSt\", f:parse_BrtCellSt },\n0x0007: { n:\"BrtCellIsst\", f:parse_BrtCellIsst },\n0x0008: { n:\"BrtFmlaString\", f:parse_BrtFmlaString },\n0x0009: { n:\"BrtFmlaNum\", f:parse_BrtFmlaNum },\n0x000A: { n:\"BrtFmlaBool\", f:parse_BrtFmlaBool },\n0x000B: { n:\"BrtFmlaError\", f:parse_BrtFmlaError },\n0x0010: { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ },\n0x0013: { n:\"BrtSSTItem\", f:parse_RichStr },\n0x0014: { n:\"BrtPCDIMissing\" },\n0x0015: { n:\"BrtPCDINumber\" },\n0x0016: { n:\"BrtPCDIBoolean\" },\n0x0017: { n:\"BrtPCDIError\" },\n0x0018: { n:\"BrtPCDIString\" },\n0x0019: { n:\"BrtPCDIDatetime\" },\n0x001A: { n:\"BrtPCDIIndex\" },\n0x001B: { n:\"BrtPCDIAMissing\" },\n0x001C: { n:\"BrtPCDIANumber\" },\n0x001D: { n:\"BrtPCDIABoolean\" },\n0x001E: { n:\"BrtPCDIAError\" },\n0x001F: { n:\"BrtPCDIAString\" },\n0x0020: { n:\"BrtPCDIADatetime\" },\n0x0021: { n:\"BrtPCRRecord\" },\n0x0022: { n:\"BrtPCRRecordDt\" },\n0x0023: { n:\"BrtFRTBegin\" },\n0x0024: { n:\"BrtFRTEnd\" },\n0x0025: { n:\"BrtACBegin\" },\n0x0026: { n:\"BrtACEnd\" },\n0x0027: { n:\"BrtName\", f:parse_BrtName },\n0x0028: { n:\"BrtIndexRowBlock\" },\n0x002A: { n:\"BrtIndexBlock\" },\n0x002B: { n:\"BrtFont\", f:parse_BrtFont },\n0x002C: { n:\"BrtFmt\", f:parse_BrtFmt },\n0x002D: { n:\"BrtFill\", f:parse_BrtFill },\n0x002E: { n:\"BrtBorder\", f:parse_BrtBorder },\n0x002F: { n:\"BrtXF\", f:parse_BrtXF },\n0x0030: { n:\"BrtStyle\" },\n0x0031: { n:\"BrtCellMeta\" },\n0x0032: { n:\"BrtValueMeta\" },\n0x0033: { n:\"BrtMdb\" },\n0x0034: { n:\"BrtBeginFmd\" },\n0x0035: { n:\"BrtEndFmd\" },\n0x0036: { n:\"BrtBeginMdx\" },\n0x0037: { n:\"BrtEndMdx\" },\n0x0038: { n:\"BrtBeginMdxTuple\" },\n0x0039: { n:\"BrtEndMdxTuple\" },\n0x003A: { n:\"BrtMdxMbrIstr\" },\n0x003B: { n:\"BrtStr\" },\n0x003C: { n:\"BrtColInfo\", f:parse_ColInfo },\n0x003E: { n:\"BrtCellRString\" },\n0x003F: { n:\"BrtCalcChainItem$\", f:parse_BrtCalcChainItem$ },\n0x0040: { n:\"BrtDVal\", f:parse_BrtDVal },\n0x0041: { n:\"BrtSxvcellNum\" },\n0x0042: { n:\"BrtSxvcellStr\" },\n0x0043: { n:\"BrtSxvcellBool\" },\n0x0044: { n:\"BrtSxvcellErr\" },\n0x0045: { n:\"BrtSxvcellDate\" },\n0x0046: { n:\"BrtSxvcellNil\" },\n0x0080: { n:\"BrtFileVersion\" },\n0x0081: { n:\"BrtBeginSheet\" },\n0x0082: { n:\"BrtEndSheet\" },\n0x0083: { n:\"BrtBeginBook\", f:parsenoop, p:0 },\n0x0084: { n:\"BrtEndBook\" },\n0x0085: { n:\"BrtBeginWsViews\" },\n0x0086: { n:\"BrtEndWsViews\" },\n0x0087: { n:\"BrtBeginBookViews\" },\n0x0088: { n:\"BrtEndBookViews\" },\n0x0089: { n:\"BrtBeginWsView\", f:parse_BrtBeginWsView },\n0x008A: { n:\"BrtEndWsView\" },\n0x008B: { n:\"BrtBeginCsViews\" },\n0x008C: { n:\"BrtEndCsViews\" },\n0x008D: { n:\"BrtBeginCsView\" },\n0x008E: { n:\"BrtEndCsView\" },\n0x008F: { n:\"BrtBeginBundleShs\" },\n0x0090: { n:\"BrtEndBundleShs\" },\n0x0091: { n:\"BrtBeginSheetData\" },\n0x0092: { n:\"BrtEndSheetData\" },\n0x0093: { n:\"BrtWsProp\", f:parse_BrtWsProp },\n0x0094: { n:\"BrtWsDim\", f:parse_BrtWsDim, p:16 },\n0x0097: { n:\"BrtPane\", f:parse_BrtPane },\n0x0098: { n:\"BrtSel\" },\n0x0099: { n:\"BrtWbProp\", f:parse_BrtWbProp },\n0x009A: { n:\"BrtWbFactoid\" },\n0x009B: { n:\"BrtFileRecover\" },\n0x009C: { n:\"BrtBundleSh\", f:parse_BrtBundleSh },\n0x009D: { n:\"BrtCalcProp\" },\n0x009E: { n:\"BrtBookView\" },\n0x009F: { n:\"BrtBeginSst\", f:parse_BrtBeginSst },\n0x00A0: { n:\"BrtEndSst\" },\n0x00A1: { n:\"BrtBeginAFilter\", f:parse_UncheckedRfX },\n0x00A2: { n:\"BrtEndAFilter\" },\n0x00A3: { n:\"BrtBeginFilterColumn\" },\n0x00A4: { n:\"BrtEndFilterColumn\" },\n0x00A5: { n:\"BrtBeginFilters\" },\n0x00A6: { n:\"BrtEndFilters\" },\n0x00A7: { n:\"BrtFilter\" },\n0x00A8: { n:\"BrtColorFilter\" },\n0x00A9: { n:\"BrtIconFilter\" },\n0x00AA: { n:\"BrtTop10Filter\" },\n0x00AB: { n:\"BrtDynamicFilter\" },\n0x00AC: { n:\"BrtBeginCustomFilters\" },\n0x00AD: { n:\"BrtEndCustomFilters\" },\n0x00AE: { n:\"BrtCustomFilter\" },\n0x00AF: { n:\"BrtAFilterDateGroupItem\" },\n0x00B0: { n:\"BrtMergeCell\", f:parse_BrtMergeCell },\n0x00B1: { n:\"BrtBeginMergeCells\" },\n0x00B2: { n:\"BrtEndMergeCells\" },\n0x00B3: { n:\"BrtBeginPivotCacheDef\" },\n0x00B4: { n:\"BrtEndPivotCacheDef\" },\n0x00B5: { n:\"BrtBeginPCDFields\" },\n0x00B6: { n:\"BrtEndPCDFields\" },\n0x00B7: { n:\"BrtBeginPCDField\" },\n0x00B8: { n:\"BrtEndPCDField\" },\n0x00B9: { n:\"BrtBeginPCDSource\" },\n0x00BA: { n:\"BrtEndPCDSource\" },\n0x00BB: { n:\"BrtBeginPCDSRange\" },\n0x00BC: { n:\"BrtEndPCDSRange\" },\n0x00BD: { n:\"BrtBeginPCDFAtbl\" },\n0x00BE: { n:\"BrtEndPCDFAtbl\" },\n0x00BF: { n:\"BrtBeginPCDIRun\" },\n0x00C0: { n:\"BrtEndPCDIRun\" },\n0x00C1: { n:\"BrtBeginPivotCacheRecords\" },\n0x00C2: { n:\"BrtEndPivotCacheRecords\" },\n0x00C3: { n:\"BrtBeginPCDHierarchies\" },\n0x00C4: { n:\"BrtEndPCDHierarchies\" },\n0x00C5: { n:\"BrtBeginPCDHierarchy\" },\n0x00C6: { n:\"BrtEndPCDHierarchy\" },\n0x00C7: { n:\"BrtBeginPCDHFieldsUsage\" },\n0x00C8: { n:\"BrtEndPCDHFieldsUsage\" },\n0x00C9: { n:\"BrtBeginExtConnection\" },\n0x00CA: { n:\"BrtEndExtConnection\" },\n0x00CB: { n:\"BrtBeginECDbProps\" },\n0x00CC: { n:\"BrtEndECDbProps\" },\n0x00CD: { n:\"BrtBeginECOlapProps\" },\n0x00CE: { n:\"BrtEndECOlapProps\" },\n0x00CF: { n:\"BrtBeginPCDSConsol\" },\n0x00D0: { n:\"BrtEndPCDSConsol\" },\n0x00D1: { n:\"BrtBeginPCDSCPages\" },\n0x00D2: { n:\"BrtEndPCDSCPages\" },\n0x00D3: { n:\"BrtBeginPCDSCPage\" },\n0x00D4: { n:\"BrtEndPCDSCPage\" },\n0x00D5: { n:\"BrtBeginPCDSCPItem\" },\n0x00D6: { n:\"BrtEndPCDSCPItem\" },\n0x00D7: { n:\"BrtBeginPCDSCSets\" },\n0x00D8: { n:\"BrtEndPCDSCSets\" },\n0x00D9: { n:\"BrtBeginPCDSCSet\" },\n0x00DA: { n:\"BrtEndPCDSCSet\" },\n0x00DB: { n:\"BrtBeginPCDFGroup\" },\n0x00DC: { n:\"BrtEndPCDFGroup\" },\n0x00DD: { n:\"BrtBeginPCDFGItems\" },\n0x00DE: { n:\"BrtEndPCDFGItems\" },\n0x00DF: { n:\"BrtBeginPCDFGRange\" },\n0x00E0: { n:\"BrtEndPCDFGRange\" },\n0x00E1: { n:\"BrtBeginPCDFGDiscrete\" },\n0x00E2: { n:\"BrtEndPCDFGDiscrete\" },\n0x00E3: { n:\"BrtBeginPCDSDTupleCache\" },\n0x00E4: { n:\"BrtEndPCDSDTupleCache\" },\n0x00E5: { n:\"BrtBeginPCDSDTCEntries\" },\n0x00E6: { n:\"BrtEndPCDSDTCEntries\" },\n0x00E7: { n:\"BrtBeginPCDSDTCEMembers\" },\n0x00E8: { n:\"BrtEndPCDSDTCEMembers\" },\n0x00E9: { n:\"BrtBeginPCDSDTCEMember\" },\n0x00EA: { n:\"BrtEndPCDSDTCEMember\" },\n0x00EB: { n:\"BrtBeginPCDSDTCQueries\" },\n0x00EC: { n:\"BrtEndPCDSDTCQueries\" },\n0x00ED: { n:\"BrtBeginPCDSDTCQuery\" },\n0x00EE: { n:\"BrtEndPCDSDTCQuery\" },\n0x00EF: { n:\"BrtBeginPCDSDTCSets\" },\n0x00F0: { n:\"BrtEndPCDSDTCSets\" },\n0x00F1: { n:\"BrtBeginPCDSDTCSet\" },\n0x00F2: { n:\"BrtEndPCDSDTCSet\" },\n0x00F3: { n:\"BrtBeginPCDCalcItems\" },\n0x00F4: { n:\"BrtEndPCDCalcItems\" },\n0x00F5: { n:\"BrtBeginPCDCalcItem\" },\n0x00F6: { n:\"BrtEndPCDCalcItem\" },\n0x00F7: { n:\"BrtBeginPRule\" },\n0x00F8: { n:\"BrtEndPRule\" },\n0x00F9: { n:\"BrtBeginPRFilters\" },\n0x00FA: { n:\"BrtEndPRFilters\" },\n0x00FB: { n:\"BrtBeginPRFilter\" },\n0x00FC: { n:\"BrtEndPRFilter\" },\n0x00FD: { n:\"BrtBeginPNames\" },\n0x00FE: { n:\"BrtEndPNames\" },\n0x00FF: { n:\"BrtBeginPName\" },\n0x0100: { n:\"BrtEndPName\" },\n0x0101: { n:\"BrtBeginPNPairs\" },\n0x0102: { n:\"BrtEndPNPairs\" },\n0x0103: { n:\"BrtBeginPNPair\" },\n0x0104: { n:\"BrtEndPNPair\" },\n0x0105: { n:\"BrtBeginECWebProps\" },\n0x0106: { n:\"BrtEndECWebProps\" },\n0x0107: { n:\"BrtBeginEcWpTables\" },\n0x0108: { n:\"BrtEndECWPTables\" },\n0x0109: { n:\"BrtBeginECParams\" },\n0x010A: { n:\"BrtEndECParams\" },\n0x010B: { n:\"BrtBeginECParam\" },\n0x010C: { n:\"BrtEndECParam\" },\n0x010D: { n:\"BrtBeginPCDKPIs\" },\n0x010E: { n:\"BrtEndPCDKPIs\" },\n0x010F: { n:\"BrtBeginPCDKPI\" },\n0x0110: { n:\"BrtEndPCDKPI\" },\n0x0111: { n:\"BrtBeginDims\" },\n0x0112: { n:\"BrtEndDims\" },\n0x0113: { n:\"BrtBeginDim\" },\n0x0114: { n:\"BrtEndDim\" },\n0x0115: { n:\"BrtIndexPartEnd\" },\n0x0116: { n:\"BrtBeginStyleSheet\" },\n0x0117: { n:\"BrtEndStyleSheet\" },\n0x0118: { n:\"BrtBeginSXView\" },\n0x0119: { n:\"BrtEndSXVI\" },\n0x011A: { n:\"BrtBeginSXVI\" },\n0x011B: { n:\"BrtBeginSXVIs\" },\n0x011C: { n:\"BrtEndSXVIs\" },\n0x011D: { n:\"BrtBeginSXVD\" },\n0x011E: { n:\"BrtEndSXVD\" },\n0x011F: { n:\"BrtBeginSXVDs\" },\n0x0120: { n:\"BrtEndSXVDs\" },\n0x0121: { n:\"BrtBeginSXPI\" },\n0x0122: { n:\"BrtEndSXPI\" },\n0x0123: { n:\"BrtBeginSXPIs\" },\n0x0124: { n:\"BrtEndSXPIs\" },\n0x0125: { n:\"BrtBeginSXDI\" },\n0x0126: { n:\"BrtEndSXDI\" },\n0x0127: { n:\"BrtBeginSXDIs\" },\n0x0128: { n:\"BrtEndSXDIs\" },\n0x0129: { n:\"BrtBeginSXLI\" },\n0x012A: { n:\"BrtEndSXLI\" },\n0x012B: { n:\"BrtBeginSXLIRws\" },\n0x012C: { n:\"BrtEndSXLIRws\" },\n0x012D: { n:\"BrtBeginSXLICols\" },\n0x012E: { n:\"BrtEndSXLICols\" },\n0x012F: { n:\"BrtBeginSXFormat\" },\n0x0130: { n:\"BrtEndSXFormat\" },\n0x0131: { n:\"BrtBeginSXFormats\" },\n0x0132: { n:\"BrtEndSxFormats\" },\n0x0133: { n:\"BrtBeginSxSelect\" },\n0x0134: { n:\"BrtEndSxSelect\" },\n0x0135: { n:\"BrtBeginISXVDRws\" },\n0x0136: { n:\"BrtEndISXVDRws\" },\n0x0137: { n:\"BrtBeginISXVDCols\" },\n0x0138: { n:\"BrtEndISXVDCols\" },\n0x0139: { n:\"BrtEndSXLocation\" },\n0x013A: { n:\"BrtBeginSXLocation\" },\n0x013B: { n:\"BrtEndSXView\" },\n0x013C: { n:\"BrtBeginSXTHs\" },\n0x013D: { n:\"BrtEndSXTHs\" },\n0x013E: { n:\"BrtBeginSXTH\" },\n0x013F: { n:\"BrtEndSXTH\" },\n0x0140: { n:\"BrtBeginISXTHRws\" },\n0x0141: { n:\"BrtEndISXTHRws\" },\n0x0142: { n:\"BrtBeginISXTHCols\" },\n0x0143: { n:\"BrtEndISXTHCols\" },\n0x0144: { n:\"BrtBeginSXTDMPS\" },\n0x0145: { n:\"BrtEndSXTDMPs\" },\n0x0146: { n:\"BrtBeginSXTDMP\" },\n0x0147: { n:\"BrtEndSXTDMP\" },\n0x0148: { n:\"BrtBeginSXTHItems\" },\n0x0149: { n:\"BrtEndSXTHItems\" },\n0x014A: { n:\"BrtBeginSXTHItem\" },\n0x014B: { n:\"BrtEndSXTHItem\" },\n0x014C: { n:\"BrtBeginMetadata\" },\n0x014D: { n:\"BrtEndMetadata\" },\n0x014E: { n:\"BrtBeginEsmdtinfo\" },\n0x014F: { n:\"BrtMdtinfo\" },\n0x0150: { n:\"BrtEndEsmdtinfo\" },\n0x0151: { n:\"BrtBeginEsmdb\" },\n0x0152: { n:\"BrtEndEsmdb\" },\n0x0153: { n:\"BrtBeginEsfmd\" },\n0x0154: { n:\"BrtEndEsfmd\" },\n0x0155: { n:\"BrtBeginSingleCells\" },\n0x0156: { n:\"BrtEndSingleCells\" },\n0x0157: { n:\"BrtBeginList\" },\n0x0158: { n:\"BrtEndList\" },\n0x0159: { n:\"BrtBeginListCols\" },\n0x015A: { n:\"BrtEndListCols\" },\n0x015B: { n:\"BrtBeginListCol\" },\n0x015C: { n:\"BrtEndListCol\" },\n0x015D: { n:\"BrtBeginListXmlCPr\" },\n0x015E: { n:\"BrtEndListXmlCPr\" },\n0x015F: { n:\"BrtListCCFmla\" },\n0x0160: { n:\"BrtListTrFmla\" },\n0x0161: { n:\"BrtBeginExternals\" },\n0x0162: { n:\"BrtEndExternals\" },\n0x0163: { n:\"BrtSupBookSrc\", f:parse_RelID},\n0x0165: { n:\"BrtSupSelf\" },\n0x0166: { n:\"BrtSupSame\" },\n0x0167: { n:\"BrtSupTabs\" },\n0x0168: { n:\"BrtBeginSupBook\" },\n0x0169: { n:\"BrtPlaceholderName\" },\n0x016A: { n:\"BrtExternSheet\", f:parse_ExternSheet },\n0x016B: { n:\"BrtExternTableStart\" },\n0x016C: { n:\"BrtExternTableEnd\" },\n0x016E: { n:\"BrtExternRowHdr\" },\n0x016F: { n:\"BrtExternCellBlank\" },\n0x0170: { n:\"BrtExternCellReal\" },\n0x0171: { n:\"BrtExternCellBool\" },\n0x0172: { n:\"BrtExternCellError\" },\n0x0173: { n:\"BrtExternCellString\" },\n0x0174: { n:\"BrtBeginEsmdx\" },\n0x0175: { n:\"BrtEndEsmdx\" },\n0x0176: { n:\"BrtBeginMdxSet\" },\n0x0177: { n:\"BrtEndMdxSet\" },\n0x0178: { n:\"BrtBeginMdxMbrProp\" },\n0x0179: { n:\"BrtEndMdxMbrProp\" },\n0x017A: { n:\"BrtBeginMdxKPI\" },\n0x017B: { n:\"BrtEndMdxKPI\" },\n0x017C: { n:\"BrtBeginEsstr\" },\n0x017D: { n:\"BrtEndEsstr\" },\n0x017E: { n:\"BrtBeginPRFItem\" },\n0x017F: { n:\"BrtEndPRFItem\" },\n0x0180: { n:\"BrtBeginPivotCacheIDs\" },\n0x0181: { n:\"BrtEndPivotCacheIDs\" },\n0x0182: { n:\"BrtBeginPivotCacheID\" },\n0x0183: { n:\"BrtEndPivotCacheID\" },\n0x0184: { n:\"BrtBeginISXVIs\" },\n0x0185: { n:\"BrtEndISXVIs\" },\n0x0186: { n:\"BrtBeginColInfos\" },\n0x0187: { n:\"BrtEndColInfos\" },\n0x0188: { n:\"BrtBeginRwBrk\" },\n0x0189: { n:\"BrtEndRwBrk\" },\n0x018A: { n:\"BrtBeginColBrk\" },\n0x018B: { n:\"BrtEndColBrk\" },\n0x018C: { n:\"BrtBrk\" },\n0x018D: { n:\"BrtUserBookView\" },\n0x018E: { n:\"BrtInfo\" },\n0x018F: { n:\"BrtCUsr\" },\n0x0190: { n:\"BrtUsr\" },\n0x0191: { n:\"BrtBeginUsers\" },\n0x0193: { n:\"BrtEOF\" },\n0x0194: { n:\"BrtUCR\" },\n0x0195: { n:\"BrtRRInsDel\" },\n0x0196: { n:\"BrtRREndInsDel\" },\n0x0197: { n:\"BrtRRMove\" },\n0x0198: { n:\"BrtRREndMove\" },\n0x0199: { n:\"BrtRRChgCell\" },\n0x019A: { n:\"BrtRREndChgCell\" },\n0x019B: { n:\"BrtRRHeader\" },\n0x019C: { n:\"BrtRRUserView\" },\n0x019D: { n:\"BrtRRRenSheet\" },\n0x019E: { n:\"BrtRRInsertSh\" },\n0x019F: { n:\"BrtRRDefName\" },\n0x01A0: { n:\"BrtRRNote\" },\n0x01A1: { n:\"BrtRRConflict\" },\n0x01A2: { n:\"BrtRRTQSIF\" },\n0x01A3: { n:\"BrtRRFormat\" },\n0x01A4: { n:\"BrtRREndFormat\" },\n0x01A5: { n:\"BrtRRAutoFmt\" },\n0x01A6: { n:\"BrtBeginUserShViews\" },\n0x01A7: { n:\"BrtBeginUserShView\" },\n0x01A8: { n:\"BrtEndUserShView\" },\n0x01A9: { n:\"BrtEndUserShViews\" },\n0x01AA: { n:\"BrtArrFmla\", f:parse_BrtArrFmla },\n0x01AB: { n:\"BrtShrFmla\", f:parse_BrtShrFmla },\n0x01AC: { n:\"BrtTable\" },\n0x01AD: { n:\"BrtBeginExtConnections\" },\n0x01AE: { n:\"BrtEndExtConnections\" },\n0x01AF: { n:\"BrtBeginPCDCalcMems\" },\n0x01B0: { n:\"BrtEndPCDCalcMems\" },\n0x01B1: { n:\"BrtBeginPCDCalcMem\" },\n0x01B2: { n:\"BrtEndPCDCalcMem\" },\n0x01B3: { n:\"BrtBeginPCDHGLevels\" },\n0x01B4: { n:\"BrtEndPCDHGLevels\" },\n0x01B5: { n:\"BrtBeginPCDHGLevel\" },\n0x01B6: { n:\"BrtEndPCDHGLevel\" },\n0x01B7: { n:\"BrtBeginPCDHGLGroups\" },\n0x01B8: { n:\"BrtEndPCDHGLGroups\" },\n0x01B9: { n:\"BrtBeginPCDHGLGroup\" },\n0x01BA: { n:\"BrtEndPCDHGLGroup\" },\n0x01BB: { n:\"BrtBeginPCDHGLGMembers\" },\n0x01BC: { n:\"BrtEndPCDHGLGMembers\" },\n0x01BD: { n:\"BrtBeginPCDHGLGMember\" },\n0x01BE: { n:\"BrtEndPCDHGLGMember\" },\n0x01BF: { n:\"BrtBeginQSI\" },\n0x01C0: { n:\"BrtEndQSI\" },\n0x01C1: { n:\"BrtBeginQSIR\" },\n0x01C2: { n:\"BrtEndQSIR\" },\n0x01C3: { n:\"BrtBeginDeletedNames\" },\n0x01C4: { n:\"BrtEndDeletedNames\" },\n0x01C5: { n:\"BrtBeginDeletedName\" },\n0x01C6: { n:\"BrtEndDeletedName\" },\n0x01C7: { n:\"BrtBeginQSIFs\" },\n0x01C8: { n:\"BrtEndQSIFs\" },\n0x01C9: { n:\"BrtBeginQSIF\" },\n0x01CA: { n:\"BrtEndQSIF\" },\n0x01CB: { n:\"BrtBeginAutoSortScope\" },\n0x01CC: { n:\"BrtEndAutoSortScope\" },\n0x01CD: { n:\"BrtBeginConditionalFormatting\" },\n0x01CE: { n:\"BrtEndConditionalFormatting\" },\n0x01CF: { n:\"BrtBeginCFRule\" },\n0x01D0: { n:\"BrtEndCFRule\" },\n0x01D1: { n:\"BrtBeginIconSet\" },\n0x01D2: { n:\"BrtEndIconSet\" },\n0x01D3: { n:\"BrtBeginDatabar\" },\n0x01D4: { n:\"BrtEndDatabar\" },\n0x01D5: { n:\"BrtBeginColorScale\" },\n0x01D6: { n:\"BrtEndColorScale\" },\n0x01D7: { n:\"BrtCFVO\" },\n0x01D8: { n:\"BrtExternValueMeta\" },\n0x01D9: { n:\"BrtBeginColorPalette\" },\n0x01DA: { n:\"BrtEndColorPalette\" },\n0x01DB: { n:\"BrtIndexedColor\" },\n0x01DC: { n:\"BrtMargins\", f:parse_BrtMargins },\n0x01DD: { n:\"BrtPrintOptions\" },\n0x01DE: { n:\"BrtPageSetup\" },\n0x01DF: { n:\"BrtBeginHeaderFooter\" },\n0x01E0: { n:\"BrtEndHeaderFooter\" },\n0x01E1: { n:\"BrtBeginSXCrtFormat\" },\n0x01E2: { n:\"BrtEndSXCrtFormat\" },\n0x01E3: { n:\"BrtBeginSXCrtFormats\" },\n0x01E4: { n:\"BrtEndSXCrtFormats\" },\n0x01E5: { n:\"BrtWsFmtInfo\", f:parse_BrtWsFmtInfo },\n0x01E6: { n:\"BrtBeginMgs\" },\n0x01E7: { n:\"BrtEndMGs\" },\n0x01E8: { n:\"BrtBeginMGMaps\" },\n0x01E9: { n:\"BrtEndMGMaps\" },\n0x01EA: { n:\"BrtBeginMG\" },\n0x01EB: { n:\"BrtEndMG\" },\n0x01EC: { n:\"BrtBeginMap\" },\n0x01ED: { n:\"BrtEndMap\" },\n0x01EE: { n:\"BrtHLink\", f:parse_BrtHLink },\n0x01EF: { n:\"BrtBeginDCon\" },\n0x01F0: { n:\"BrtEndDCon\" },\n0x01F1: { n:\"BrtBeginDRefs\" },\n0x01F2: { n:\"BrtEndDRefs\" },\n0x01F3: { n:\"BrtDRef\" },\n0x01F4: { n:\"BrtBeginScenMan\" },\n0x01F5: { n:\"BrtEndScenMan\" },\n0x01F6: { n:\"BrtBeginSct\" },\n0x01F7: { n:\"BrtEndSct\" },\n0x01F8: { n:\"BrtSlc\" },\n0x01F9: { n:\"BrtBeginDXFs\" },\n0x01FA: { n:\"BrtEndDXFs\" },\n0x01FB: { n:\"BrtDXF\" },\n0x01FC: { n:\"BrtBeginTableStyles\" },\n0x01FD: { n:\"BrtEndTableStyles\" },\n0x01FE: { n:\"BrtBeginTableStyle\" },\n0x01FF: { n:\"BrtEndTableStyle\" },\n0x0200: { n:\"BrtTableStyleElement\" },\n0x0201: { n:\"BrtTableStyleClient\" },\n0x0202: { n:\"BrtBeginVolDeps\" },\n0x0203: { n:\"BrtEndVolDeps\" },\n0x0204: { n:\"BrtBeginVolType\" },\n0x0205: { n:\"BrtEndVolType\" },\n0x0206: { n:\"BrtBeginVolMain\" },\n0x0207: { n:\"BrtEndVolMain\" },\n0x0208: { n:\"BrtBeginVolTopic\" },\n0x0209: { n:\"BrtEndVolTopic\" },\n0x020A: { n:\"BrtVolSubtopic\" },\n0x020B: { n:\"BrtVolRef\" },\n0x020C: { n:\"BrtVolNum\" },\n0x020D: { n:\"BrtVolErr\" },\n0x020E: { n:\"BrtVolStr\" },\n0x020F: { n:\"BrtVolBool\" },\n0x0210: { n:\"BrtBeginCalcChain$\" },\n0x0211: { n:\"BrtEndCalcChain$\" },\n0x0212: { n:\"BrtBeginSortState\" },\n0x0213: { n:\"BrtEndSortState\" },\n0x0214: { n:\"BrtBeginSortCond\" },\n0x0215: { n:\"BrtEndSortCond\" },\n0x0216: { n:\"BrtBookProtection\" },\n0x0217: { n:\"BrtSheetProtection\" },\n0x0218: { n:\"BrtRangeProtection\" },\n0x0219: { n:\"BrtPhoneticInfo\" },\n0x021A: { n:\"BrtBeginECTxtWiz\" },\n0x021B: { n:\"BrtEndECTxtWiz\" },\n0x021C: { n:\"BrtBeginECTWFldInfoLst\" },\n0x021D: { n:\"BrtEndECTWFldInfoLst\" },\n0x021E: { n:\"BrtBeginECTwFldInfo\" },\n0x0224: { n:\"BrtFileSharing\" },\n0x0225: { n:\"BrtOleSize\" },\n0x0226: { n:\"BrtDrawing\", f:parse_RelID },\n0x0227: { n:\"BrtLegacyDrawing\" },\n0x0228: { n:\"BrtLegacyDrawingHF\" },\n0x0229: { n:\"BrtWebOpt\" },\n0x022A: { n:\"BrtBeginWebPubItems\" },\n0x022B: { n:\"BrtEndWebPubItems\" },\n0x022C: { n:\"BrtBeginWebPubItem\" },\n0x022D: { n:\"BrtEndWebPubItem\" },\n0x022E: { n:\"BrtBeginSXCondFmt\" },\n0x022F: { n:\"BrtEndSXCondFmt\" },\n0x0230: { n:\"BrtBeginSXCondFmts\" },\n0x0231: { n:\"BrtEndSXCondFmts\" },\n0x0232: { n:\"BrtBkHim\" },\n0x0234: { n:\"BrtColor\" },\n0x0235: { n:\"BrtBeginIndexedColors\" },\n0x0236: { n:\"BrtEndIndexedColors\" },\n0x0239: { n:\"BrtBeginMRUColors\" },\n0x023A: { n:\"BrtEndMRUColors\" },\n0x023C: { n:\"BrtMRUColor\" },\n0x023D: { n:\"BrtBeginDVals\" },\n0x023E: { n:\"BrtEndDVals\" },\n0x0241: { n:\"BrtSupNameStart\" },\n0x0242: { n:\"BrtSupNameValueStart\" },\n0x0243: { n:\"BrtSupNameValueEnd\" },\n0x0244: { n:\"BrtSupNameNum\" },\n0x0245: { n:\"BrtSupNameErr\" },\n0x0246: { n:\"BrtSupNameSt\" },\n0x0247: { n:\"BrtSupNameNil\" },\n0x0248: { n:\"BrtSupNameBool\" },\n0x0249: { n:\"BrtSupNameFmla\" },\n0x024A: { n:\"BrtSupNameBits\" },\n0x024B: { n:\"BrtSupNameEnd\" },\n0x024C: { n:\"BrtEndSupBook\" },\n0x024D: { n:\"BrtCellSmartTagProperty\" },\n0x024E: { n:\"BrtBeginCellSmartTag\" },\n0x024F: { n:\"BrtEndCellSmartTag\" },\n0x0250: { n:\"BrtBeginCellSmartTags\" },\n0x0251: { n:\"BrtEndCellSmartTags\" },\n0x0252: { n:\"BrtBeginSmartTags\" },\n0x0253: { n:\"BrtEndSmartTags\" },\n0x0254: { n:\"BrtSmartTagType\" },\n0x0255: { n:\"BrtBeginSmartTagTypes\" },\n0x0256: { n:\"BrtEndSmartTagTypes\" },\n0x0257: { n:\"BrtBeginSXFilters\" },\n0x0258: { n:\"BrtEndSXFilters\" },\n0x0259: { n:\"BrtBeginSXFILTER\" },\n0x025A: { n:\"BrtEndSXFilter\" },\n0x025B: { n:\"BrtBeginFills\" },\n0x025C: { n:\"BrtEndFills\" },\n0x025D: { n:\"BrtBeginCellWatches\" },\n0x025E: { n:\"BrtEndCellWatches\" },\n0x025F: { n:\"BrtCellWatch\" },\n0x0260: { n:\"BrtBeginCRErrs\" },\n0x0261: { n:\"BrtEndCRErrs\" },\n0x0262: { n:\"BrtCrashRecErr\" },\n0x0263: { n:\"BrtBeginFonts\" },\n0x0264: { n:\"BrtEndFonts\" },\n0x0265: { n:\"BrtBeginBorders\" },\n0x0266: { n:\"BrtEndBorders\" },\n0x0267: { n:\"BrtBeginFmts\" },\n0x0268: { n:\"BrtEndFmts\" },\n0x0269: { n:\"BrtBeginCellXFs\" },\n0x026A: { n:\"BrtEndCellXFs\" },\n0x026B: { n:\"BrtBeginStyles\" },\n0x026C: { n:\"BrtEndStyles\" },\n0x0271: { n:\"BrtBigName\" },\n0x0272: { n:\"BrtBeginCellStyleXFs\" },\n0x0273: { n:\"BrtEndCellStyleXFs\" },\n0x0274: { n:\"BrtBeginComments\" },\n0x0275: { n:\"BrtEndComments\" },\n0x0276: { n:\"BrtBeginCommentAuthors\" },\n0x0277: { n:\"BrtEndCommentAuthors\" },\n0x0278: { n:\"BrtCommentAuthor\", f:parse_BrtCommentAuthor },\n0x0279: { n:\"BrtBeginCommentList\" },\n0x027A: { n:\"BrtEndCommentList\" },\n0x027B: { n:\"BrtBeginComment\", f:parse_BrtBeginComment},\n0x027C: { n:\"BrtEndComment\" },\n0x027D: { n:\"BrtCommentText\", f:parse_BrtCommentText },\n0x027E: { n:\"BrtBeginOleObjects\" },\n0x027F: { n:\"BrtOleObject\" },\n0x0280: { n:\"BrtEndOleObjects\" },\n0x0281: { n:\"BrtBeginSxrules\" },\n0x0282: { n:\"BrtEndSxRules\" },\n0x0283: { n:\"BrtBeginActiveXControls\" },\n0x0284: { n:\"BrtActiveX\" },\n0x0285: { n:\"BrtEndActiveXControls\" },\n0x0286: { n:\"BrtBeginPCDSDTCEMembersSortBy\" },\n0x0288: { n:\"BrtBeginCellIgnoreECs\" },\n0x0289: { n:\"BrtCellIgnoreEC\" },\n0x028A: { n:\"BrtEndCellIgnoreECs\" },\n0x028B: { n:\"BrtCsProp\", f:parse_BrtCsProp },\n0x028C: { n:\"BrtCsPageSetup\" },\n0x028D: { n:\"BrtBeginUserCsViews\" },\n0x028E: { n:\"BrtEndUserCsViews\" },\n0x028F: { n:\"BrtBeginUserCsView\" },\n0x0290: { n:\"BrtEndUserCsView\" },\n0x0291: { n:\"BrtBeginPcdSFCIEntries\" },\n0x0292: { n:\"BrtEndPCDSFCIEntries\" },\n0x0293: { n:\"BrtPCDSFCIEntry\" },\n0x0294: { n:\"BrtBeginListParts\" },\n0x0295: { n:\"BrtListPart\" },\n0x0296: { n:\"BrtEndListParts\" },\n0x0297: { n:\"BrtSheetCalcProp\" },\n0x0298: { n:\"BrtBeginFnGroup\" },\n0x0299: { n:\"BrtFnGroup\" },\n0x029A: { n:\"BrtEndFnGroup\" },\n0x029B: { n:\"BrtSupAddin\" },\n0x029C: { n:\"BrtSXTDMPOrder\" },\n0x029D: { n:\"BrtCsProtection\" },\n0x029F: { n:\"BrtBeginWsSortMap\" },\n0x02A0: { n:\"BrtEndWsSortMap\" },\n0x02A1: { n:\"BrtBeginRRSort\" },\n0x02A2: { n:\"BrtEndRRSort\" },\n0x02A3: { n:\"BrtRRSortItem\" },\n0x02A4: { n:\"BrtFileSharingIso\" },\n0x02A5: { n:\"BrtBookProtectionIso\" },\n0x02A6: { n:\"BrtSheetProtectionIso\" },\n0x02A7: { n:\"BrtCsProtectionIso\" },\n0x02A8: { n:\"BrtRangeProtectionIso\" },\n0x02A9: { n:\"BrtDValList\" },\n0x0400: { n:\"BrtRwDescent\" },\n0x0401: { n:\"BrtKnownFonts\" },\n0x0402: { n:\"BrtBeginSXTupleSet\" },\n0x0403: { n:\"BrtEndSXTupleSet\" },\n0x0404: { n:\"BrtBeginSXTupleSetHeader\" },\n0x0405: { n:\"BrtEndSXTupleSetHeader\" },\n0x0406: { n:\"BrtSXTupleSetHeaderItem\" },\n0x0407: { n:\"BrtBeginSXTupleSetData\" },\n0x0408: { n:\"BrtEndSXTupleSetData\" },\n0x0409: { n:\"BrtBeginSXTupleSetRow\" },\n0x040A: { n:\"BrtEndSXTupleSetRow\" },\n0x040B: { n:\"BrtSXTupleSetRowItem\" },\n0x040C: { n:\"BrtNameExt\" },\n0x040D: { n:\"BrtPCDH14\" },\n0x040E: { n:\"BrtBeginPCDCalcMem14\" },\n0x040F: { n:\"BrtEndPCDCalcMem14\" },\n0x0410: { n:\"BrtSXTH14\" },\n0x0411: { n:\"BrtBeginSparklineGroup\" },\n0x0412: { n:\"BrtEndSparklineGroup\" },\n0x0413: { n:\"BrtSparkline\" },\n0x0414: { n:\"BrtSXDI14\" },\n0x0415: { n:\"BrtWsFmtInfoEx14\" },\n0x0416: { n:\"BrtBeginConditionalFormatting14\" },\n0x0417: { n:\"BrtEndConditionalFormatting14\" },\n0x0418: { n:\"BrtBeginCFRule14\" },\n0x0419: { n:\"BrtEndCFRule14\" },\n0x041A: { n:\"BrtCFVO14\" },\n0x041B: { n:\"BrtBeginDatabar14\" },\n0x041C: { n:\"BrtBeginIconSet14\" },\n0x041D: { n:\"BrtDVal14\", f: parse_BrtDVal14 },\n0x041E: { n:\"BrtBeginDVals14\" },\n0x041F: { n:\"BrtColor14\" },\n0x0420: { n:\"BrtBeginSparklines\" },\n0x0421: { n:\"BrtEndSparklines\" },\n0x0422: { n:\"BrtBeginSparklineGroups\" },\n0x0423: { n:\"BrtEndSparklineGroups\" },\n0x0425: { n:\"BrtSXVD14\" },\n0x0426: { n:\"BrtBeginSXView14\" },\n0x0427: { n:\"BrtEndSXView14\" },\n0x0428: { n:\"BrtBeginSXView16\" },\n0x0429: { n:\"BrtEndSXView16\" },\n0x042A: { n:\"BrtBeginPCD14\" },\n0x042B: { n:\"BrtEndPCD14\" },\n0x042C: { n:\"BrtBeginExtConn14\" },\n0x042D: { n:\"BrtEndExtConn14\" },\n0x042E: { n:\"BrtBeginSlicerCacheIDs\" },\n0x042F: { n:\"BrtEndSlicerCacheIDs\" },\n0x0430: { n:\"BrtBeginSlicerCacheID\" },\n0x0431: { n:\"BrtEndSlicerCacheID\" },\n0x0433: { n:\"BrtBeginSlicerCache\" },\n0x0434: { n:\"BrtEndSlicerCache\" },\n0x0435: { n:\"BrtBeginSlicerCacheDef\" },\n0x0436: { n:\"BrtEndSlicerCacheDef\" },\n0x0437: { n:\"BrtBeginSlicersEx\" },\n0x0438: { n:\"BrtEndSlicersEx\" },\n0x0439: { n:\"BrtBeginSlicerEx\" },\n0x043A: { n:\"BrtEndSlicerEx\" },\n0x043B: { n:\"BrtBeginSlicer\" },\n0x043C: { n:\"BrtEndSlicer\" },\n0x043D: { n:\"BrtSlicerCachePivotTables\" },\n0x043E: { n:\"BrtBeginSlicerCacheOlapImpl\" },\n0x043F: { n:\"BrtEndSlicerCacheOlapImpl\" },\n0x0440: { n:\"BrtBeginSlicerCacheLevelsData\" },\n0x0441: { n:\"BrtEndSlicerCacheLevelsData\" },\n0x0442: { n:\"BrtBeginSlicerCacheLevelData\" },\n0x0443: { n:\"BrtEndSlicerCacheLevelData\" },\n0x0444: { n:\"BrtBeginSlicerCacheSiRanges\" },\n0x0445: { n:\"BrtEndSlicerCacheSiRanges\" },\n0x0446: { n:\"BrtBeginSlicerCacheSiRange\" },\n0x0447: { n:\"BrtEndSlicerCacheSiRange\" },\n0x0448: { n:\"BrtSlicerCacheOlapItem\" },\n0x0449: { n:\"BrtBeginSlicerCacheSelections\" },\n0x044A: { n:\"BrtSlicerCacheSelection\" },\n0x044B: { n:\"BrtEndSlicerCacheSelections\" },\n0x044C: { n:\"BrtBeginSlicerCacheNative\" },\n0x044D: { n:\"BrtEndSlicerCacheNative\" },\n0x044E: { n:\"BrtSlicerCacheNativeItem\" },\n0x044F: { n:\"BrtRangeProtection14\" },\n0x0450: { n:\"BrtRangeProtectionIso14\" },\n0x0451: { n:\"BrtCellIgnoreEC14\" },\n0x0457: { n:\"BrtList14\" },\n0x0458: { n:\"BrtCFIcon\" },\n0x0459: { n:\"BrtBeginSlicerCachesPivotCacheIDs\" },\n0x045A: { n:\"BrtEndSlicerCachesPivotCacheIDs\" },\n0x045B: { n:\"BrtBeginSlicers\" },\n0x045C: { n:\"BrtEndSlicers\" },\n0x045D: { n:\"BrtWbProp14\" },\n0x045E: { n:\"BrtBeginSXEdit\" },\n0x045F: { n:\"BrtEndSXEdit\" },\n0x0460: { n:\"BrtBeginSXEdits\" },\n0x0461: { n:\"BrtEndSXEdits\" },\n0x0462: { n:\"BrtBeginSXChange\" },\n0x0463: { n:\"BrtEndSXChange\" },\n0x0464: { n:\"BrtBeginSXChanges\" },\n0x0465: { n:\"BrtEndSXChanges\" },\n0x0466: { n:\"BrtSXTupleItems\" },\n0x0468: { n:\"BrtBeginSlicerStyle\" },\n0x0469: { n:\"BrtEndSlicerStyle\" },\n0x046A: { n:\"BrtSlicerStyleElement\" },\n0x046B: { n:\"BrtBeginStyleSheetExt14\" },\n0x046C: { n:\"BrtEndStyleSheetExt14\" },\n0x046D: { n:\"BrtBeginSlicerCachesPivotCacheID\" },\n0x046E: { n:\"BrtEndSlicerCachesPivotCacheID\" },\n0x046F: { n:\"BrtBeginConditionalFormattings\" },\n0x0470: { n:\"BrtEndConditionalFormattings\" },\n0x0471: { n:\"BrtBeginPCDCalcMemExt\" },\n0x0472: { n:\"BrtEndPCDCalcMemExt\" },\n0x0473: { n:\"BrtBeginPCDCalcMemsExt\" },\n0x0474: { n:\"BrtEndPCDCalcMemsExt\" },\n0x0475: { n:\"BrtPCDField14\" },\n0x0476: { n:\"BrtBeginSlicerStyles\" },\n0x0477: { n:\"BrtEndSlicerStyles\" },\n0x0478: { n:\"BrtBeginSlicerStyleElements\" },\n0x0479: { n:\"BrtEndSlicerStyleElements\" },\n0x047A: { n:\"BrtCFRuleExt\" },\n0x047B: { n:\"BrtBeginSXCondFmt14\" },\n0x047C: { n:\"BrtEndSXCondFmt14\" },\n0x047D: { n:\"BrtBeginSXCondFmts14\" },\n0x047E: { n:\"BrtEndSXCondFmts14\" },\n0x0480: { n:\"BrtBeginSortCond14\" },\n0x0481: { n:\"BrtEndSortCond14\" },\n0x0482: { n:\"BrtEndDVals14\" },\n0x0483: { n:\"BrtEndIconSet14\" },\n0x0484: { n:\"BrtEndDatabar14\" },\n0x0485: { n:\"BrtBeginColorScale14\" },\n0x0486: { n:\"BrtEndColorScale14\" },\n0x0487: { n:\"BrtBeginSxrules14\" },\n0x0488: { n:\"BrtEndSxrules14\" },\n0x0489: { n:\"BrtBeginPRule14\" },\n0x048A: { n:\"BrtEndPRule14\" },\n0x048B: { n:\"BrtBeginPRFilters14\" },\n0x048C: { n:\"BrtEndPRFilters14\" },\n0x048D: { n:\"BrtBeginPRFilter14\" },\n0x048E: { n:\"BrtEndPRFilter14\" },\n0x048F: { n:\"BrtBeginPRFItem14\" },\n0x0490: { n:\"BrtEndPRFItem14\" },\n0x0491: { n:\"BrtBeginCellIgnoreECs14\" },\n0x0492: { n:\"BrtEndCellIgnoreECs14\" },\n0x0493: { n:\"BrtDxf14\" },\n0x0494: { n:\"BrtBeginDxF14s\" },\n0x0495: { n:\"BrtEndDxf14s\" },\n0x0499: { n:\"BrtFilter14\" },\n0x049A: { n:\"BrtBeginCustomFilters14\" },\n0x049C: { n:\"BrtCustomFilter14\" },\n0x049D: { n:\"BrtIconFilter14\" },\n0x049E: { n:\"BrtPivotCacheConnectionName\" },\n0x0800: { n:\"BrtBeginDecoupledPivotCacheIDs\" },\n0x0801: { n:\"BrtEndDecoupledPivotCacheIDs\" },\n0x0802: { n:\"BrtDecoupledPivotCacheID\" },\n0x0803: { n:\"BrtBeginPivotTableRefs\" },\n0x0804: { n:\"BrtEndPivotTableRefs\" },\n0x0805: { n:\"BrtPivotTableRef\" },\n0x0806: { n:\"BrtSlicerCacheBookPivotTables\" },\n0x0807: { n:\"BrtBeginSxvcells\" },\n0x0808: { n:\"BrtEndSxvcells\" },\n0x0809: { n:\"BrtBeginSxRow\" },\n0x080A: { n:\"BrtEndSxRow\" },\n0x080C: { n:\"BrtPcdCalcMem15\" },\n0x0813: { n:\"BrtQsi15\" },\n0x0814: { n:\"BrtBeginWebExtensions\" },\n0x0815: { n:\"BrtEndWebExtensions\" },\n0x0816: { n:\"BrtWebExtension\" },\n0x0817: { n:\"BrtAbsPath15\" },\n0x0818: { n:\"BrtBeginPivotTableUISettings\" },\n0x0819: { n:\"BrtEndPivotTableUISettings\" },\n0x081B: { n:\"BrtTableSlicerCacheIDs\" },\n0x081C: { n:\"BrtTableSlicerCacheID\" },\n0x081D: { n:\"BrtBeginTableSlicerCache\" },\n0x081E: { n:\"BrtEndTableSlicerCache\" },\n0x081F: { n:\"BrtSxFilter15\" },\n0x0820: { n:\"BrtBeginTimelineCachePivotCacheIDs\" },\n0x0821: { n:\"BrtEndTimelineCachePivotCacheIDs\" },\n0x0822: { n:\"BrtTimelineCachePivotCacheID\" },\n0x0823: { n:\"BrtBeginTimelineCacheIDs\" },\n0x0824: { n:\"BrtEndTimelineCacheIDs\" },\n0x0825: { n:\"BrtBeginTimelineCacheID\" },\n0x0826: { n:\"BrtEndTimelineCacheID\" },\n0x0827: { n:\"BrtBeginTimelinesEx\" },\n0x0828: { n:\"BrtEndTimelinesEx\" },\n0x0829: { n:\"BrtBeginTimelineEx\" },\n0x082A: { n:\"BrtEndTimelineEx\" },\n0x082B: { n:\"BrtWorkBookPr15\" },\n0x082C: { n:\"BrtPCDH15\" },\n0x082D: { n:\"BrtBeginTimelineStyle\" },\n0x082E: { n:\"BrtEndTimelineStyle\" },\n0x082F: { n:\"BrtTimelineStyleElement\" },\n0x0830: { n:\"BrtBeginTimelineStylesheetExt15\" },\n0x0831: { n:\"BrtEndTimelineStylesheetExt15\" },\n0x0832: { n:\"BrtBeginTimelineStyles\" },\n0x0833: { n:\"BrtEndTimelineStyles\" },\n0x0834: { n:\"BrtBeginTimelineStyleElements\" },\n0x0835: { n:\"BrtEndTimelineStyleElements\" },\n0x0836: { n:\"BrtDxf15\" },\n0x0837: { n:\"BrtBeginDxfs15\" },\n0x0838: { n:\"brtEndDxfs15\" },\n0x0839: { n:\"BrtSlicerCacheHideItemsWithNoData\" },\n0x083A: { n:\"BrtBeginItemUniqueNames\" },\n0x083B: { n:\"BrtEndItemUniqueNames\" },\n0x083C: { n:\"BrtItemUniqueName\" },\n0x083D: { n:\"BrtBeginExtConn15\" },\n0x083E: { n:\"BrtEndExtConn15\" },\n0x083F: { n:\"BrtBeginOledbPr15\" },\n0x0840: { n:\"BrtEndOledbPr15\" },\n0x0841: { n:\"BrtBeginDataFeedPr15\" },\n0x0842: { n:\"BrtEndDataFeedPr15\" },\n0x0843: { n:\"BrtTextPr15\" },\n0x0844: { n:\"BrtRangePr15\" },\n0x0845: { n:\"BrtDbCommand15\" },\n0x0846: { n:\"BrtBeginDbTables15\" },\n0x0847: { n:\"BrtEndDbTables15\" },\n0x0848: { n:\"BrtDbTable15\" },\n0x0849: { n:\"BrtBeginDataModel\" },\n0x084A: { n:\"BrtEndDataModel\" },\n0x084B: { n:\"BrtBeginModelTables\" },\n0x084C: { n:\"BrtEndModelTables\" },\n0x084D: { n:\"BrtModelTable\" },\n0x084E: { n:\"BrtBeginModelRelationships\" },\n0x084F: { n:\"BrtEndModelRelationships\" },\n0x0850: { n:\"BrtModelRelationship\" },\n0x0851: { n:\"BrtBeginECTxtWiz15\" },\n0x0852: { n:\"BrtEndECTxtWiz15\" },\n0x0853: { n:\"BrtBeginECTWFldInfoLst15\" },\n0x0854: { n:\"BrtEndECTWFldInfoLst15\" },\n0x0855: { n:\"BrtBeginECTWFldInfo15\" },\n0x0856: { n:\"BrtFieldListActiveItem\" },\n0x0857: { n:\"BrtPivotCacheIdVersion\" },\n0x0858: { n:\"BrtSXDI15\" },\n0x0859: { n:\"BrtBeginModelTimeGroupings\" },\n0x085A: { n:\"BrtEndModelTimeGroupings\" },\n0x085B: { n:\"BrtBeginModelTimeGrouping\" },\n0x085C: { n:\"BrtEndModelTimeGrouping\" },\n0x085D: { n:\"BrtModelTimeGroupingCalcCol\" },\n0x0C00: { n:\"BrtUid\" },\n0x0C01: { n:\"BrtRevisionPtr\" },\n0x13e7: { n:\"BrtBeginCalcFeatures\" },\n0x13e8: { n:\"BrtEndCalcFeatures\" },\n0x13e9: { n:\"BrtCalcFeature\" },\n0xFFFF: { n:\"\" }\n};\n\nvar XLSBRE = evert_key(XLSBRecordEnum, 'n');\n\n/* [MS-XLS] 2.3 Record Enumeration */\nvar XLSRecordEnum = {\n0x0003: { n:\"BIFF2NUM\", f:parse_BIFF2NUM },\n0x0004: { n:\"BIFF2STR\", f:parse_BIFF2STR },\n0x0006: { n:\"Formula\", f:parse_Formula },\n0x0009: { n:'BOF', f:parse_BOF },\n0x000a: { n:'EOF', f:parsenoop2 },\n0x000c: { n:\"CalcCount\", f:parseuint16 },\n0x000d: { n:\"CalcMode\", f:parseuint16 },\n0x000e: { n:\"CalcPrecision\", f:parsebool },\n0x000f: { n:\"CalcRefMode\", f:parsebool },\n0x0010: { n:\"CalcDelta\", f:parse_Xnum },\n0x0011: { n:\"CalcIter\", f:parsebool },\n0x0012: { n:\"Protect\", f:parsebool },\n0x0013: { n:\"Password\", f:parseuint16 },\n0x0014: { n:\"Header\", f:parse_XLHeaderFooter },\n0x0015: { n:\"Footer\", f:parse_XLHeaderFooter },\n0x0017: { n:\"ExternSheet\", f:parse_ExternSheet },\n0x0018: { n:\"Lbl\", f:parse_Lbl },\n0x0019: { n:\"WinProtect\", f:parsebool },\n0x001a: { n:\"VerticalPageBreaks\" },\n0x001b: { n:\"HorizontalPageBreaks\" },\n0x001c: { n:\"Note\", f:parse_Note },\n0x001d: { n:\"Selection\" },\n0x0022: { n:\"Date1904\", f:parsebool },\n0x0023: { n:\"ExternName\", f:parse_ExternName },\n0x0024: { n:\"COLWIDTH\" },\n0x0026: { n:\"LeftMargin\", f:parse_Xnum },\n0x0027: { n:\"RightMargin\", f:parse_Xnum },\n0x0028: { n:\"TopMargin\", f:parse_Xnum },\n0x0029: { n:\"BottomMargin\", f:parse_Xnum },\n0x002a: { n:\"PrintRowCol\", f:parsebool },\n0x002b: { n:\"PrintGrid\", f:parsebool },\n0x002f: { n:\"FilePass\", f:parse_FilePass },\n0x0031: { n:\"Font\", f:parse_Font },\n0x0033: { n:\"PrintSize\", f:parseuint16 },\n0x003c: { n:\"Continue\" },\n0x003d: { n:\"Window1\", f:parse_Window1 },\n0x0040: { n:\"Backup\", f:parsebool },\n0x0041: { n:\"Pane\", f:parse_Pane },\n0x0042: { n:'CodePage', f:parseuint16 },\n0x004d: { n:\"Pls\" },\n0x0050: { n:\"DCon\" },\n0x0051: { n:\"DConRef\" },\n0x0052: { n:\"DConName\" },\n0x0055: { n:\"DefColWidth\", f:parseuint16 },\n0x0059: { n:\"XCT\" },\n0x005a: { n:\"CRN\" },\n0x005b: { n:\"FileSharing\" },\n0x005c: { n:'WriteAccess', f:parse_WriteAccess },\n0x005d: { n:\"Obj\", f:parse_Obj },\n0x005e: { n:\"Uncalced\" },\n0x005f: { n:\"CalcSaveRecalc\", f:parsebool },\n0x0060: { n:\"Template\" },\n0x0061: { n:\"Intl\" },\n0x0063: { n:\"ObjProtect\", f:parsebool },\n0x007d: { n:\"ColInfo\", f:parse_ColInfo },\n0x0080: { n:\"Guts\", f:parse_Guts },\n0x0081: { n:\"WsBool\", f:parse_WsBool },\n0x0082: { n:\"GridSet\", f:parseuint16 },\n0x0083: { n:\"HCenter\", f:parsebool },\n0x0084: { n:\"VCenter\", f:parsebool },\n0x0085: { n:'BoundSheet8', f:parse_BoundSheet8 },\n0x0086: { n:\"WriteProtect\" },\n0x008c: { n:\"Country\", f:parse_Country },\n0x008d: { n:\"HideObj\", f:parseuint16 },\n0x0090: { n:\"Sort\" },\n0x0092: { n:\"Palette\", f:parse_Palette },\n0x0097: { n:\"Sync\" },\n0x0098: { n:\"LPr\" },\n0x0099: { n:\"DxGCol\" },\n0x009a: { n:\"FnGroupName\" },\n0x009b: { n:\"FilterMode\" },\n0x009c: { n:\"BuiltInFnGroupCount\", f:parseuint16 },\n0x009d: { n:\"AutoFilterInfo\" },\n0x009e: { n:\"AutoFilter\" },\n0x00a0: { n:\"Scl\", f:parse_Scl },\n0x00a1: { n:\"Setup\", f:parse_Setup },\n0x00ae: { n:\"ScenMan\" },\n0x00af: { n:\"SCENARIO\" },\n0x00b0: { n:\"SxView\" },\n0x00b1: { n:\"Sxvd\" },\n0x00b2: { n:\"SXVI\" },\n0x00b4: { n:\"SxIvd\" },\n0x00b5: { n:\"SXLI\" },\n0x00b6: { n:\"SXPI\" },\n0x00b8: { n:\"DocRoute\" },\n0x00b9: { n:\"RecipName\" },\n0x00bd: { n:\"MulRk\", f:parse_MulRk },\n0x00be: { n:\"MulBlank\", f:parse_MulBlank },\n0x00c1: { n:'Mms', f:parsenoop2 },\n0x00c5: { n:\"SXDI\" },\n0x00c6: { n:\"SXDB\" },\n0x00c7: { n:\"SXFDB\" },\n0x00c8: { n:\"SXDBB\" },\n0x00c9: { n:\"SXNum\" },\n0x00ca: { n:\"SxBool\", f:parsebool },\n0x00cb: { n:\"SxErr\" },\n0x00cc: { n:\"SXInt\" },\n0x00cd: { n:\"SXString\" },\n0x00ce: { n:\"SXDtr\" },\n0x00cf: { n:\"SxNil\" },\n0x00d0: { n:\"SXTbl\" },\n0x00d1: { n:\"SXTBRGIITM\" },\n0x00d2: { n:\"SxTbpg\" },\n0x00d3: { n:\"ObProj\" },\n0x00d5: { n:\"SXStreamID\" },\n0x00d7: { n:\"DBCell\" },\n0x00d8: { n:\"SXRng\" },\n0x00d9: { n:\"SxIsxoper\" },\n0x00da: { n:\"BookBool\", f:parseuint16 },\n0x00dc: { n:\"DbOrParamQry\" },\n0x00dd: { n:\"ScenarioProtect\", f:parsebool },\n0x00de: { n:\"OleObjectSize\" },\n0x00e0: { n:\"XF\", f:parse_XF },\n0x00e1: { n:'InterfaceHdr', f:parse_InterfaceHdr },\n0x00e2: { n:'InterfaceEnd', f:parsenoop2 },\n0x00e3: { n:\"SXVS\" },\n0x00e5: { n:\"MergeCells\", f:parse_MergeCells },\n0x00e9: { n:\"BkHim\" },\n0x00eb: { n:\"MsoDrawingGroup\" },\n0x00ec: { n:\"MsoDrawing\" },\n0x00ed: { n:\"MsoDrawingSelection\" },\n0x00ef: { n:\"PhoneticInfo\" },\n0x00f0: { n:\"SxRule\" },\n0x00f1: { n:\"SXEx\" },\n0x00f2: { n:\"SxFilt\" },\n0x00f4: { n:\"SxDXF\" },\n0x00f5: { n:\"SxItm\" },\n0x00f6: { n:\"SxName\" },\n0x00f7: { n:\"SxSelect\" },\n0x00f8: { n:\"SXPair\" },\n0x00f9: { n:\"SxFmla\" },\n0x00fb: { n:\"SxFormat\" },\n0x00fc: { n:\"SST\", f:parse_SST },\n0x00fd: { n:\"LabelSst\", f:parse_LabelSst },\n0x00ff: { n:\"ExtSST\", f:parse_ExtSST },\n0x0100: { n:\"SXVDEx\" },\n0x0103: { n:\"SXFormula\" },\n0x0122: { n:\"SXDBEx\" },\n0x0137: { n:\"RRDInsDel\" },\n0x0138: { n:\"RRDHead\" },\n0x013b: { n:\"RRDChgCell\" },\n0x013d: { n:\"RRTabId\", f:parseuint16a },\n0x013e: { n:\"RRDRenSheet\" },\n0x013f: { n:\"RRSort\" },\n0x0140: { n:\"RRDMove\" },\n0x014a: { n:\"RRFormat\" },\n0x014b: { n:\"RRAutoFmt\" },\n0x014d: { n:\"RRInsertSh\" },\n0x014e: { n:\"RRDMoveBegin\" },\n0x014f: { n:\"RRDMoveEnd\" },\n0x0150: { n:\"RRDInsDelBegin\" },\n0x0151: { n:\"RRDInsDelEnd\" },\n0x0152: { n:\"RRDConflict\" },\n0x0153: { n:\"RRDDefName\" },\n0x0154: { n:\"RRDRstEtxp\" },\n0x015f: { n:\"LRng\" },\n0x0160: { n:\"UsesELFs\", f:parsebool },\n0x0161: { n:\"DSF\", f:parsenoop2 },\n0x0191: { n:\"CUsr\" },\n0x0192: { n:\"CbUsr\" },\n0x0193: { n:\"UsrInfo\" },\n0x0194: { n:\"UsrExcl\" },\n0x0195: { n:\"FileLock\" },\n0x0196: { n:\"RRDInfo\" },\n0x0197: { n:\"BCUsrs\" },\n0x0198: { n:\"UsrChk\" },\n0x01a9: { n:\"UserBView\" },\n0x01aa: { n:\"UserSViewBegin\" },\n0x01ab: { n:\"UserSViewEnd\" },\n0x01ac: { n:\"RRDUserView\" },\n0x01ad: { n:\"Qsi\" },\n0x01ae: { n:\"SupBook\", f:parse_SupBook },\n0x01af: { n:\"Prot4Rev\", f:parsebool },\n0x01b0: { n:\"CondFmt\" },\n0x01b1: { n:\"CF\" },\n0x01b2: { n:\"DVal\" },\n0x01b5: { n:\"DConBin\" },\n0x01b6: { n:\"TxO\", f:parse_TxO },\n0x01b7: { n:\"RefreshAll\", f:parsebool },\n0x01b8: { n:\"HLink\", f:parse_HLink },\n0x01b9: { n:\"Lel\" },\n0x01ba: { n:\"CodeName\", f:parse_XLUnicodeString },\n0x01bb: { n:\"SXFDBType\" },\n0x01bc: { n:\"Prot4RevPass\", f:parseuint16 },\n0x01bd: { n:\"ObNoMacros\" },\n0x01be: { n:\"Dv\" },\n0x01c0: { n:\"Excel9File\", f:parsenoop2 },\n0x01c1: { n:\"RecalcId\", f:parse_RecalcId, r:2},\n0x01c2: { n:\"EntExU2\", f:parsenoop2 },\n0x0200: { n:\"Dimensions\", f:parse_Dimensions },\n0x0201: { n:\"Blank\", f:parse_Blank },\n0x0203: { n:\"Number\", f:parse_Number },\n0x0204: { n:\"Label\", f:parse_Label },\n0x0205: { n:\"BoolErr\", f:parse_BoolErr },\n0x0206: { n:\"Formula\", f:parse_Formula },\n0x0207: { n:\"String\", f:parse_String },\n0x0208: { n:'Row', f:parse_Row },\n0x020b: { n:\"Index\" },\n0x0221: { n:\"Array\", f:parse_Array },\n0x0225: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0236: { n:\"Table\" },\n0x023e: { n:\"Window2\", f:parse_Window2 },\n0x027e: { n:\"RK\", f:parse_RK },\n0x0293: { n:\"Style\" },\n0x0406: { n:\"Formula\", f:parse_Formula },\n0x0418: { n:\"BigName\" },\n0x041e: { n:\"Format\", f:parse_Format },\n0x043c: { n:\"ContinueBigName\" },\n0x04bc: { n:\"ShrFmla\", f:parse_ShrFmla },\n0x0800: { n:\"HLinkTooltip\", f:parse_HLinkTooltip },\n0x0801: { n:\"WebPub\" },\n0x0802: { n:\"QsiSXTag\" },\n0x0803: { n:\"DBQueryExt\" },\n0x0804: { n:\"ExtString\" },\n0x0805: { n:\"TxtQry\" },\n0x0806: { n:\"Qsir\" },\n0x0807: { n:\"Qsif\" },\n0x0808: { n:\"RRDTQSIF\" },\n0x0809: { n:'BOF', f:parse_BOF },\n0x080a: { n:\"OleDbConn\" },\n0x080b: { n:\"WOpt\" },\n0x080c: { n:\"SXViewEx\" },\n0x080d: { n:\"SXTH\" },\n0x080e: { n:\"SXPIEx\" },\n0x080f: { n:\"SXVDTEx\" },\n0x0810: { n:\"SXViewEx9\" },\n0x0812: { n:\"ContinueFrt\" },\n0x0813: { n:\"RealTimeData\" },\n0x0850: { n:\"ChartFrtInfo\" },\n0x0851: { n:\"FrtWrapper\" },\n0x0852: { n:\"StartBlock\" },\n0x0853: { n:\"EndBlock\" },\n0x0854: { n:\"StartObject\" },\n0x0855: { n:\"EndObject\" },\n0x0856: { n:\"CatLab\" },\n0x0857: { n:\"YMult\" },\n0x0858: { n:\"SXViewLink\" },\n0x0859: { n:\"PivotChartBits\" },\n0x085a: { n:\"FrtFontList\" },\n0x0862: { n:\"SheetExt\" },\n0x0863: { n:\"BookExt\", r:12},\n0x0864: { n:\"SXAddl\" },\n0x0865: { n:\"CrErr\" },\n0x0866: { n:\"HFPicture\" },\n0x0867: { n:'FeatHdr', f:parsenoop2 },\n0x0868: { n:\"Feat\" },\n0x086a: { n:\"DataLabExt\" },\n0x086b: { n:\"DataLabExtContents\" },\n0x086c: { n:\"CellWatch\" },\n0x0871: { n:\"FeatHdr11\" },\n0x0872: { n:\"Feature11\" },\n0x0874: { n:\"DropDownObjIds\" },\n0x0875: { n:\"ContinueFrt11\" },\n0x0876: { n:\"DConn\" },\n0x0877: { n:\"List12\" },\n0x0878: { n:\"Feature12\" },\n0x0879: { n:\"CondFmt12\" },\n0x087a: { n:\"CF12\" },\n0x087b: { n:\"CFEx\" },\n0x087c: { n:\"XFCRC\", f:parse_XFCRC, r:12 },\n0x087d: { n:\"XFExt\", f:parse_XFExt, r:12 },\n0x087e: { n:\"AutoFilter12\" },\n0x087f: { n:\"ContinueFrt12\" },\n0x0884: { n:\"MDTInfo\" },\n0x0885: { n:\"MDXStr\" },\n0x0886: { n:\"MDXTuple\" },\n0x0887: { n:\"MDXSet\" },\n0x0888: { n:\"MDXProp\" },\n0x0889: { n:\"MDXKPI\" },\n0x088a: { n:\"MDB\" },\n0x088b: { n:\"PLV\" },\n0x088c: { n:\"Compat12\", f:parsebool, r:12 },\n0x088d: { n:\"DXF\" },\n0x088e: { n:\"TableStyles\", r:12 },\n0x088f: { n:\"TableStyle\" },\n0x0890: { n:\"TableStyleElement\" },\n0x0892: { n:\"StyleExt\" },\n0x0893: { n:\"NamePublish\" },\n0x0894: { n:\"NameCmt\", f:parse_NameCmt, r:12 },\n0x0895: { n:\"SortData\" },\n0x0896: { n:\"Theme\", f:parse_Theme, r:12 },\n0x0897: { n:\"GUIDTypeLib\" },\n0x0898: { n:\"FnGrp12\" },\n0x0899: { n:\"NameFnGrp12\" },\n0x089a: { n:\"MTRSettings\", f:parse_MTRSettings, r:12 },\n0x089b: { n:\"CompressPictures\", f:parsenoop2 },\n0x089c: { n:\"HeaderFooter\" },\n0x089d: { n:\"CrtLayout12\" },\n0x089e: { n:\"CrtMlFrt\" },\n0x089f: { n:\"CrtMlFrtContinue\" },\n0x08a3: { n:\"ForceFullCalculation\", f:parse_ForceFullCalculation },\n0x08a4: { n:\"ShapePropsStream\" },\n0x08a5: { n:\"TextPropsStream\" },\n0x08a6: { n:\"RichTextStream\" },\n0x08a7: { n:\"CrtLayout12A\" },\n0x1001: { n:\"Units\" },\n0x1002: { n:\"Chart\" },\n0x1003: { n:\"Series\" },\n0x1006: { n:\"DataFormat\" },\n0x1007: { n:\"LineFormat\" },\n0x1009: { n:\"MarkerFormat\" },\n0x100a: { n:\"AreaFormat\" },\n0x100b: { n:\"PieFormat\" },\n0x100c: { n:\"AttachedLabel\" },\n0x100d: { n:\"SeriesText\" },\n0x1014: { n:\"ChartFormat\" },\n0x1015: { n:\"Legend\" },\n0x1016: { n:\"SeriesList\" },\n0x1017: { n:\"Bar\" },\n0x1018: { n:\"Line\" },\n0x1019: { n:\"Pie\" },\n0x101a: { n:\"Area\" },\n0x101b: { n:\"Scatter\" },\n0x101c: { n:\"CrtLine\" },\n0x101d: { n:\"Axis\" },\n0x101e: { n:\"Tick\" },\n0x101f: { n:\"ValueRange\" },\n0x1020: { n:\"CatSerRange\" },\n0x1021: { n:\"AxisLine\" },\n0x1022: { n:\"CrtLink\" },\n0x1024: { n:\"DefaultText\" },\n0x1025: { n:\"Text\" },\n0x1026: { n:\"FontX\", f:parseuint16 },\n0x1027: { n:\"ObjectLink\" },\n0x1032: { n:\"Frame\" },\n0x1033: { n:\"Begin\" },\n0x1034: { n:\"End\" },\n0x1035: { n:\"PlotArea\" },\n0x103a: { n:\"Chart3d\" },\n0x103c: { n:\"PicF\" },\n0x103d: { n:\"DropBar\" },\n0x103e: { n:\"Radar\" },\n0x103f: { n:\"Surf\" },\n0x1040: { n:\"RadarArea\" },\n0x1041: { n:\"AxisParent\" },\n0x1043: { n:\"LegendException\" },\n0x1044: { n:\"ShtProps\", f:parse_ShtProps },\n0x1045: { n:\"SerToCrt\" },\n0x1046: { n:\"AxesUsed\" },\n0x1048: { n:\"SBaseRef\" },\n0x104a: { n:\"SerParent\" },\n0x104b: { n:\"SerAuxTrend\" },\n0x104e: { n:\"IFmtRecord\" },\n0x104f: { n:\"Pos\" },\n0x1050: { n:\"AlRuns\" },\n0x1051: { n:\"BRAI\" },\n0x105b: { n:\"SerAuxErrBar\" },\n0x105c: { n:\"ClrtClient\", f:parse_ClrtClient },\n0x105d: { n:\"SerFmt\" },\n0x105f: { n:\"Chart3DBarShape\" },\n0x1060: { n:\"Fbi\" },\n0x1061: { n:\"BopPop\" },\n0x1062: { n:\"AxcExt\" },\n0x1063: { n:\"Dat\" },\n0x1064: { n:\"PlotGrowth\" },\n0x1065: { n:\"SIIndex\" },\n0x1066: { n:\"GelFrame\" },\n0x1067: { n:\"BopPopCustom\" },\n0x1068: { n:\"Fbi2\" },\n\n0x0000: { n:\"Dimensions\", f:parse_Dimensions },\n0x0002: { n:\"BIFF2INT\", f:parse_BIFF2INT },\n0x0005: { n:\"BoolErr\", f:parse_BoolErr },\n0x0007: { n:\"String\", f:parse_BIFF2STRING },\n0x0008: { n:\"BIFF2ROW\" },\n0x000b: { n:\"Index\" },\n0x0016: { n:\"ExternCount\", f:parseuint16 },\n0x001e: { n:\"BIFF2FORMAT\", f:parse_BIFF2Format },\n0x001f: { n:\"BIFF2FMTCNT\" }, /* 16-bit cnt of BIFF2FORMAT records */\n0x0020: { n:\"BIFF2COLINFO\" },\n0x0021: { n:\"Array\", f:parse_Array },\n0x0025: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0032: { n:\"BIFF2FONTXTRA\", f:parse_BIFF2FONTXTRA },\n0x0034: { n:\"DDEObjName\" },\n0x003e: { n:\"BIFF2WINDOW2\" },\n0x0043: { n:\"BIFF2XF\" },\n0x0045: { n:\"BIFF2FONTCLR\" },\n0x0056: { n:\"BIFF4FMTCNT\" }, /* 16-bit cnt, similar to BIFF2 */\n0x007e: { n:\"RK\" }, /* Not necessarily same as 0x027e */\n0x007f: { n:\"ImData\", f:parse_ImData },\n0x0087: { n:\"Addin\" },\n0x0088: { n:\"Edg\" },\n0x0089: { n:\"Pub\" },\n0x0091: { n:\"Sub\" },\n0x0094: { n:\"LHRecord\" },\n0x0095: { n:\"LHNGraph\" },\n0x0096: { n:\"Sound\" },\n0x00a9: { n:\"CoordList\" },\n0x00ab: { n:\"GCW\" },\n0x00bc: { n:\"ShrFmla\" }, /* Not necessarily same as 0x04bc */\n0x00bf: { n:\"ToolbarHdr\" },\n0x00c0: { n:\"ToolbarEnd\" },\n0x00c2: { n:\"AddMenu\" },\n0x00c3: { n:\"DelMenu\" },\n0x00d6: { n:\"RString\", f:parse_RString },\n0x00df: { n:\"UDDesc\" },\n0x00ea: { n:\"TabIdConf\" },\n0x0162: { n:\"XL5Modify\" },\n0x01a5: { n:\"FileSharing2\" },\n0x0209: { n:'BOF', f:parse_BOF },\n0x0218: { n:\"Lbl\", f:parse_Lbl },\n0x0223: { n:\"ExternName\", f:parse_ExternName },\n0x0231: { n:\"Font\" },\n0x0243: { n:\"BIFF3XF\" },\n0x0409: { n:'BOF', f:parse_BOF },\n0x0443: { n:\"BIFF4XF\" },\n0x086d: { n:\"FeatInfo\" },\n0x0873: { n:\"FeatInfo11\" },\n0x0881: { n:\"SXAddl12\" },\n0x08c0: { n:\"AutoWebPub\" },\n0x08c1: { n:\"ListObj\" },\n0x08c2: { n:\"ListField\" },\n0x08c3: { n:\"ListDV\" },\n0x08c4: { n:\"ListCondFmt\" },\n0x08c5: { n:\"ListCF\" },\n0x08c6: { n:\"FMQry\" },\n0x08c7: { n:\"FMSQry\" },\n0x08c8: { n:\"PLV\" },\n0x08c9: { n:\"LnExt\" },\n0x08ca: { n:\"MkrExt\" },\n0x08cb: { n:\"CrtCoopt\" },\n0x08d6: { n:\"FRTArchId$\", r:12 },\n\n0x7262: {}\n};\n\nvar XLSRE = evert_key(XLSRecordEnum, 'n');\nfunction write_biff_rec(ba, type, payload, length) {\n\tvar t = +type || +XLSRE[type];\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba, type, payload, length) {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = +type || +XLSRE[type];\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r, c) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r, c, val, t) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tif(t == 'e') { out.write_shift(1, val); out.write_shift(1, 1); }\n\telse { out.write_shift(1, val?1:0); out.write_shift(1, 0); }\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r, c, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba, cell, R, C) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, cell.v));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba, ws, idx, opts) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t\tref = encode_range(range);\n\t}\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb, opts) {\n\tvar o = opts || {};\n\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i<wb.SheetNames.length;++i) if(wb.SheetNames[i] == o.sheet) idx=i;\n\tif(idx == 0 && !!o.sheet && wb.SheetNames[0] != o.sheet) throw new Error(\"Sheet not found: \" + o.sheet);\n\twrite_biff_rec(ba, 0x0009, write_BOF(wb, 0x10, o));\n\t/* ... */\n\twrite_ws_biff2(ba, wb.Sheets[wb.SheetNames[idx]], idx, o, wb);\n\t/* ... */\n\twrite_biff_rec(ba, 0x000A);\n\treturn ba.end();\n}\n\nfunction write_FONTS_biff8(ba, data, opts) {\n\twrite_biff_rec(ba, \"Font\", write_Font({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Arial\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}, opts));\n}\n\n\nfunction write_FMTS_biff8(ba, NF, opts) {\n\tif(!NF) return;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_biff_rec(ba, \"Format\", write_Format(i, NF[i], opts));\n\t});\n}\n\nfunction write_FEAT(ba, ws) {\n\t/* [MS-XLS] 2.4.112 */\n\tvar o = new_buf(19);\n\to.write_shift(4, 0x867); o.write_shift(4, 0); o.write_shift(4, 0);\n\to.write_shift(2, 3); o.write_shift(1, 1); o.write_shift(4, 0);\n\twrite_biff_rec(ba, \"FeatHdr\", o);\n\t/* [MS-XLS] 2.4.111 */\n\to = new_buf(39);\n\to.write_shift(4, 0x868); o.write_shift(4, 0); o.write_shift(4, 0);\n\to.write_shift(2, 3); o.write_shift(1, 0); o.write_shift(4, 0);\n\to.write_shift(2, 1); o.write_shift(4, 4); o.write_shift(2, 0);\n\twrite_Ref8U(safe_decode_range(ws['!ref']||\"A1\"), o);\n\to.write_shift(4, 4);\n\twrite_biff_rec(ba, \"Feat\", o);\n}\n\nfunction write_CELLXFS_biff8(ba, opts) {\n\tfor(var i = 0; i < 16; ++i) write_biff_rec(ba, \"XF\", write_XF({numFmtId:0, style:true}, 0, opts));\n\topts.cellXfs.forEach(function(c) {\n\t\twrite_biff_rec(ba, \"XF\", write_XF(c, 0, opts));\n\t});\n}\n\nfunction write_ws_biff8_hlinks(ba, ws) {\n\tfor(var R=0; R<ws['!links'].length; ++R) {\n\t\tvar HL = ws['!links'][R];\n\t\twrite_biff_rec(ba, \"HLink\", write_HLink(HL));\n\t\tif(HL[1].Tooltip) write_biff_rec(ba, \"HLinkTooltip\", write_HLinkTooltip(HL));\n\t}\n\tdelete ws['!links'];\n}\n\nfunction write_ws_biff8_cell(ba, cell, R, C, opts) {\n\tvar os = 16 + get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.v == null && !cell.bf) {\n\t\twrite_biff_rec(ba, \"Blank\", write_XLSCell(R, C, os));\n\t\treturn;\n\t}\n\tif(cell.bf) write_biff_rec(ba, \"Formula\", write_Formula(cell, R, C, opts, os));\n\telse switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\t/* TODO: emit RK as appropriate */\n\t\t\twrite_biff_rec(ba, \"Number\", write_Number(R, C, v, os, opts));\n\t\t\tbreak;\n\t\tcase 'b': case 'e':\n\t\t\twrite_biff_rec(ba, 0x0205, write_BoolErr(R, C, cell.v, os, opts, cell.t));\n\t\t\tbreak;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvar isst = get_sst_id(opts.Strings, cell.v, opts.revStrings);\n\t\t\t\twrite_biff_rec(ba, \"LabelSst\", write_LabelSst(R, C, isst, os, opts));\n\t\t\t} else write_biff_rec(ba, \"Label\", write_Label(R, C, cell.v, os, opts));\n\t\t\tbreak;\n\t\tdefault:\n\t\t\twrite_biff_rec(ba, \"Blank\", write_XLSCell(R, C, os));\n\t}\n}\n\n/* [MS-XLS] 2.1.7.20.5 */\nfunction write_ws_biff8(idx, opts, wb) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar _WB = ((wb||{}).Workbook||{});\n\tvar _sheet = ((_WB.Sheets||[])[idx]||{});\n\tvar dense = Array.isArray(ws);\n\tvar b8 = opts.biff == 8;\n\tvar ref, rr = \"\", cols = [];\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\");\n\tvar MAX_ROWS = b8 ? 65536 : 16384;\n\tif(range.e.c > 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, \"CalcMode\", writeuint16(1));\n\twrite_biff_rec(ba, \"CalcCount\", writeuint16(100));\n\twrite_biff_rec(ba, \"CalcRefMode\", writebool(true));\n\twrite_biff_rec(ba, \"CalcIter\", writebool(false));\n\twrite_biff_rec(ba, \"CalcDelta\", write_Xnum(0.001));\n\twrite_biff_rec(ba, \"CalcSaveRecalc\", writebool(true));\n\twrite_biff_rec(ba, \"PrintRowCol\", writebool(false));\n\twrite_biff_rec(ba, \"PrintGrid\", writebool(false));\n\twrite_biff_rec(ba, \"GridSet\", writeuint16(1));\n\twrite_biff_rec(ba, \"Guts\", write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, \"HCenter\", writebool(false));\n\twrite_biff_rec(ba, \"VCenter\", writebool(false));\n\t/* ... */\n\twrite_biff_rec(ba, 0x200, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t}\n\t}\n\tvar cname = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_biff_rec(ba, \"Window2\", write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, \"MergeCells\", write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, \"EOF\");\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb, bufs, opts) {\n\tvar A = buf_array();\n\tvar _WB = ((wb||{}).Workbook||{});\n\tvar _sheets = (_WB.Sheets||[]);\n\tvar _wb = _WB.WBProps||{};\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, \"Addin\");\n\twrite_biff_rec(A, \"InterfaceHdr\", b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, \"Mms\", writezeroes(2));\n\tif(b5) write_biff_rec(A, \"ToolbarHdr\");\n\tif(b5) write_biff_rec(A, \"ToolbarEnd\");\n\twrite_biff_rec(A, \"InterfaceEnd\");\n\twrite_biff_rec(A, \"WriteAccess\", write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, \"CodePage\", writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, \"DSF\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Excel9File\");\n\twrite_biff_rec(A, \"RRTabId\", write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, \"ObProj\");\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, \"BuiltInFnGroupCount\", writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, \"WinProtect\", writebool(false));\n\twrite_biff_rec(A, \"Protect\", writebool(false));\n\twrite_biff_rec(A, \"Password\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Prot4Rev\", writebool(false));\n\tif(b8) write_biff_rec(A, \"Prot4RevPass\", writeuint16(0));\n\twrite_biff_rec(A, \"Window1\", write_Window1(opts));\n\twrite_biff_rec(A, \"Backup\", writebool(false));\n\twrite_biff_rec(A, \"HideObj\", writeuint16(0));\n\twrite_biff_rec(A, \"Date1904\", writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, \"CalcPrecision\", writebool(true));\n\tif(b8) write_biff_rec(A, \"RefreshAll\", writebool(false));\n\twrite_biff_rec(A, \"BookBool\", writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, \"UsesELFs\", writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, \"Country\", write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, \"SST\", write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, \"EOF\");\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet = _sheets[j] || ({});\n\t\twrite_biff_rec(B, \"BoundSheet8\", write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn __toBuffer([out]);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb, opts) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = []; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn __toBuffer([bufs]);\n}\n\nfunction write_biff_buf(wb, opts) {\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nvar HTML_ = (function() {\n\tfunction html_to_sheet(str, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tstr = str.replace(/<!--.*?-->/g, \"\");\n\t\tvar mtch = str.match(/<table/i);\n\t\tif(!mtch) throw new Error(\"Invalid HTML: could not find <table>\");\n\t\tvar mtch2 = str.match(/<\\/table/i);\n\t\tvar i = mtch.index, j = mtch2 && mtch2.index || str.length;\n\t\tvar rows = split_regex(str.slice(i, j), /(:?<tr[^>]*>)/i, \"<tr>\");\n\t\tvar R = -1, C = 0, RS = 0, CS = 0;\n\t\tvar range = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\t\tvar merges = [];\n\t\tfor(i = 0; i < rows.length; ++i) {\n\t\t\tvar row = rows[i].trim();\n\t\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\t\tif(hd == \"<tr\") { ++R; if(opts.sheetRows && opts.sheetRows <= R) { --R; break; } C = 0; continue; }\n\t\t\tif(hd != \"<td\" && hd != \"<th\") continue;\n\t\t\tvar cells = row.split(/<\\/t[dh]>/i);\n\t\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\t\tvar cell = cells[j].trim();\n\t\t\t\tif(!cell.match(/<t[dh]/i)) continue;\n\t\t\t\tvar m = cell, cc = 0;\n\t\t\t\t/* TODO: parse styles etc */\n\t\t\t\twhile(m.charAt(0) == \"<\" && (cc = m.indexOf(\">\")) > -1) m = m.slice(cc+1);\n\t\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\t\tvar _merge = merges[midx];\n\t\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t\t}\n\t\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\t\tvar _t = tag.t || \"\";\n\t\t\t\t/* TODO: generate stub cells */\n\t\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\t\tm = htmldecode(m);\n\t\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\t\tif(!m.length) continue;\n\t\t\t\tvar o = {t:'s', v:m};\n\t\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(m)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\t\tC += CS;\n\t\t\t}\n\t\t}\n\t\tws['!ref'] = encode_range(range);\n\t\tif(merges.length) ws[\"!merges\"] = merges;\n\t\treturn ws;\n\t}\n\tfunction html_to_book(str, opts) {\n\t\treturn sheet_to_workbook(html_to_sheet(str, opts), opts);\n\t}\n\tfunction make_html_row(ws, r, R, o) {\n\t\tvar M = (ws['!merges'] ||[]);\n\t\tvar oo = [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tvar RS = 0, CS = 0;\n\t\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t\t}\n\t\t\tif(RS < 0) continue;\n\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t/* TODO: html entities */\n\t\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\t\tvar sp = ({});\n\t\t\tif(RS > 1) sp.rowspan = RS;\n\t\t\tif(CS > 1) sp.colspan = CS;\n\t\t\tsp.t = cell && cell.t || 'z';\n\t\t\tif(o.editable) w = '<span contenteditable=\"true\">' + w + '</span>';\n\t\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\t\tif(sp.t != \"z\") { sp.v = cell.v; if(cell.z != null) sp.z = cell.z; }\n\t\t\too.push(writextag('td', w, sp));\n\t\t}\n\t\tvar preamble = \"<tr>\";\n\t\treturn preamble + oo.join(\"\") + \"</tr>\";\n\t}\n\tfunction make_html_preamble(ws, R, o) {\n\t\tvar out = [];\n\t\treturn out.join(\"\") + '<table' + (o && o.id ? ' id=\"' + o.id + '\"' : \"\") + '>';\n\t}\n\tvar _BEGIN = '<html><head><meta charset=\"utf-8\"/><title>SheetJS Table Export</title></head><body>';\n\tvar _END = '</body></html>';\n\tfunction sheet_to_html(ws, opts/*, wb:?Workbook*/) {\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : _BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : _END;\n\t\tvar out = [header];\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tout.push(make_html_preamble(ws, r, o));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\t\tout.push(\"</table>\" + footer);\n\t\treturn out.join(\"\");\n\n\t}\n\treturn {\n\t\tto_workbook: html_to_book,\n\t\tto_sheet: html_to_sheet,\n\t\t_row: make_html_row,\n\t\tBEGIN: _BEGIN,\n\t\tEND: _END,\n\t\t_preamble: make_html_preamble,\n\t\tfrom_sheet: sheet_to_html\n\t};\n})();\n\nfunction sheet_add_dom(ws, table, _opts) {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\tvar rows = table.getElementsByTagName('tr');\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges = [], midx = 0;\n\tvar rowinfo = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts = (row.children);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v = elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z = elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o = {t:'s', v:v};\n\t\t\tvar _t = elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\tif(opts.dense) { if(!ws[R + or_R]) ws[R + or_R] = []; ws[R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table, _opts) {\n\tvar opts = _opts || {};\n\tvar ws = opts.dense ? ([]) : ({});\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table, opts) {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element) {\n\tvar display = '';\n\tvar get_computed_style = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style.display; // Fallback for cases when getComputedStyle is not available (e.g. an old browser or some Node.js environments) or doesn't work (e.g. if the element is not inserted to a document)\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element) {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nvar parse_content_xml = (function() {\n\n\tvar parse_text_p = function(text) {\n\t\t/* 6.1.2 White Space Characters */\n\t\tvar fixed = text\n\t\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t\t.replace(/<text:s\\/>/g,\" \")\n\t\t\t.replace(/<text:s text:c=\"(\\d+)\"\\/>/g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t\t.replace(/<text:tab[^>]*\\/>/g,\"\\t\")\n\t\t\t.replace(/<text:line-break\\/>/g,\"\\n\");\n\t\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\t\treturn [v];\n\t};\n\n\tvar number_formats = {\n\t\t/* ods name: [short ssf fmt, long ssf fmt] */\n\t\tday:           [\"d\",   \"dd\"],\n\t\tmonth:         [\"m\",   \"mm\"],\n\t\tyear:          [\"y\",   \"yy\"],\n\t\thours:         [\"h\",   \"hh\"],\n\t\tminutes:       [\"m\",   \"mm\"],\n\t\tseconds:       [\"s\",   \"ss\"],\n\t\t\"am-pm\":       [\"A/P\", \"AM/PM\"],\n\t\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\t\tera:           [\"e\",   \"ee\"],\n\t\t/* there is no native representation of LO \"Q\" format */\n\t\tquarter:       [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n\t};\n\n\treturn function pcx(d, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state = [], tmp;\n\t\tvar tag;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag;\n\t\tvar rowtag;\n\t\tvar Sheets = {}, SheetNames = [];\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tvar Rn, q;\n\t\tvar ctag = ({value:\"\"});\n\t\tvar textp = \"\", textpidx = 0, textptag;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = {};\n\t\tvar merges = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({});\n\t\tvar _Ref = [\"\", \"\"];\n\t\tvar comments = [], comment = ({});\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(/<!--([\\s\\S]*?)-->/mg,\"\").replace(/<!DOCTYPE[^\\[]*\\[[^\\]]*\\]>/gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 <table:table>\n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]) : ({}); merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 <table:table-row-group>\n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 <table:table-row>\n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 <table:covered-table-cell>\n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null});\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\n\t\t\t\t\t\t\tws[R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({});\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null});\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({});\n\t\t\t\tbreak; // 9.1.4 <table:table-cell>\n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: <office:document> is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 <office:document-content>\n\t\t\tcase 'spreadsheet': case '主体': // 3.7 <office:spreadsheet>\n\t\t\tcase 'scripts': // 3.12 <office:scripts>\n\t\t\tcase 'styles': // TODO <office:styles>\n\t\t\tcase 'font-face-decls': // 3.14 <office:font-face-decls>\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 <office:annotation>\n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) comment.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 <dc:creator>\n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: <office:meta> <uof:元数据> FODS/UOF\n\t\t\tcase 'settings': // TODO: <office:settings>\n\t\t\tcase 'config-item-set': // TODO: <office:config-item-set>\n\t\t\tcase 'config-item-map-indexed': // TODO: <office:config-item-map-indexed>\n\t\t\tcase 'config-item-map-entry': // TODO: <office:config-item-map-entry>\n\t\t\tcase 'config-item-map-named': // TODO: <office:config-item-map-entry>\n\t\t\tcase 'shapes': // 9.2.8 <table:shapes>\n\t\t\tcase 'frame': // 10.4.2 <draw:frame>\n\t\t\tcase 'text-box': // 10.4.3 <draw:text-box>\n\t\t\tcase 'image': // 10.4.4 <draw:image>\n\t\t\tcase 'data-pilot-tables': // 9.6.2 <table:data-pilot-tables>\n\t\t\tcase 'list-style': // 16.30 <text:list-style>\n\t\t\tcase 'form': // 13.13 <form:form>\n\t\t\tcase 'dde-links': // 9.8 <table:dde-links>\n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // TODO: <number:scientific-number>\n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: <number:currency-symbol>\n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: <number:currency-style>\n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 <number:number-style>\n\t\t\tcase 'percentage-style': // 16.27.9 <number:percentage-style>\n\t\t\tcase 'date-style': // 16.27.10 <number:date-style>\n\t\t\tcase 'time-style': // 16.27.18 <number:time-style>\n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tNF = \"\";\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 <office:script>\n\t\t\tcase 'libraries': break; // TODO: <ooo:libraries>\n\t\t\tcase 'automatic-styles': break; // 3.15.3 <office:automatic-styles>\n\t\t\tcase 'master-styles': break; // TODO: <office:master-styles>\n\n\t\t\tcase 'default-style': // TODO: <style:default-style>\n\t\t\tcase 'page-layout': break; // TODO: <style:page-layout>\n\t\t\tcase 'style': // 16.2 <style:style>\n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 <style:map>\n\t\t\tcase 'font-face': break; // 16.21 <style:font-face>\n\n\t\t\tcase 'paragraph-properties': break; // 17.6 <style:paragraph-properties>\n\t\t\tcase 'table-properties': break; // 17.15 <style:table-properties>\n\t\t\tcase 'table-column-properties': break; // 17.16 <style:table-column-properties>\n\t\t\tcase 'table-row-properties': break; // 17.17 <style:table-row-properties>\n\t\t\tcase 'table-cell-properties': break; // 17.18 <style:table-cell-properties>\n\n\t\t\tcase 'number': // 16.27.3 <number:number>\n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 <number:fraction>\n\n\t\t\tcase 'day': // 16.27.11 <number:day>\n\t\t\tcase 'month': // 16.27.12 <number:month>\n\t\t\tcase 'year': // 16.27.13 <number:year>\n\t\t\tcase 'era': // 16.27.14 <number:era>\n\t\t\tcase 'day-of-week': // 16.27.15 <number:day-of-week>\n\t\t\tcase 'week-of-year': // 16.27.16 <number:week-of-year>\n\t\t\tcase 'quarter': // 16.27.17 <number:quarter>\n\t\t\tcase 'hours': // 16.27.19 <number:hours>\n\t\t\tcase 'minutes': // 16.27.20 <number:minutes>\n\t\t\tcase 'seconds': // 16.27.21 <number:seconds>\n\t\t\tcase 'am-pm': // 16.27.22 <number:am-pm>\n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'boolean-style': break; // 16.27.23 <number:boolean-style>\n\t\t\tcase 'boolean': break; // 16.27.24 <number:boolean>\n\t\t\tcase 'text-style': break; // 16.27.25 <number:text-style>\n\t\t\tcase 'text': // 16.27.26 <number:text>\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 <table:named-range>\n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]});\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 <number:text-content>\n\t\t\tcase 'text-properties': break; // 16.27.27 <style:text-properties>\n\t\t\tcase 'embedded-text': break; // 16.27.4 <number:embedded-text>\n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 <table:table-column>\n\t\t\tcase 'table-header-rows': break; // 9.1.7 <table:table-header-rows>\n\t\t\tcase 'table-rows': break; // 9.1.12 <table:table-rows>\n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 <table:table-column-group>\n\t\t\tcase 'table-header-columns': break; // 9.1.11 <table:table-header-columns>\n\t\t\tcase 'table-columns': break; // 9.1.12 <table:table-columns>\n\n\t\t\tcase 'null-date': break; // 9.4.2 <table:null-date> TODO: date1904\n\n\t\t\tcase 'graphic-properties': break; // 17.21 <style:graphic-properties>\n\t\t\tcase 'calculation-settings': break; // 9.4.1 <table:calculation-settings>\n\t\t\tcase 'named-expressions': break; // 9.4.11 <table:named-expressions>\n\t\t\tcase 'label-range': break; // 9.4.9 <table:label-range>\n\t\t\tcase 'label-ranges': break; // 9.4.10 <table:label-ranges>\n\t\t\tcase 'named-expression': break; // 9.4.13 <table:named-expression>\n\t\t\tcase 'sort': break; // 9.4.19 <table:sort>\n\t\t\tcase 'sort-by': break; // 9.4.20 <table:sort-by>\n\t\t\tcase 'sort-groups': break; // 9.4.22 <table:sort-groups>\n\n\t\t\tcase 'tab': break; // 6.1.4 <text:tab>\n\t\t\tcase 'line-break': break; // 6.1.5 <text:line-break>\n\t\t\tcase 'span': break; // 6.1.7 <text:span>\n\t\t\tcase 'p': case '文本串': // 5.1.3 <text:p>\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // <text:p>\n\t\t\tcase 's': break; // <text:s>\n\n\t\t\tcase 'database-range': // 9.4.15 <table:database-range>\n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 <draw:object>\n\t\t\tcase 'title': case '标题': break; // <*:title> OR <uof:标题>\n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 <table:iteration>\n\t\t\tcase 'content-validations': break; // 9.4.4 <table:\n\t\t\tcase 'content-validation': break; // 9.4.5 <table:\n\t\t\tcase 'help-message': break; // 9.4.6 <table:\n\t\t\tcase 'error-message': break; // 9.4.7 <table:\n\t\t\tcase 'database-ranges': break; // 9.4.14 <table:database-ranges>\n\t\t\tcase 'filter': break; // 9.5.2 <table:filter>\n\t\t\tcase 'filter-and': break; // 9.5.3 <table:filter-and>\n\t\t\tcase 'filter-or': break; // 9.5.4 <table:filter-or>\n\t\t\tcase 'filter-condition': break; // 9.5.5 <table:filter-condition>\n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 <text:\n\t\t\tcase 'list-level-style-number': break; // 16.32 <text:\n\t\t\tcase 'list-level-properties': break; // 17.19 <style:\n\n\t\t\t/* 7.3 Document Fields */\n\t\t\tcase 'sender-firstname': // 7.3.6.2\n\t\t\tcase 'sender-lastname': // 7.3.6.3\n\t\t\tcase 'sender-initials': // 7.3.6.4\n\t\t\tcase 'sender-title': // 7.3.6.5\n\t\t\tcase 'sender-position': // 7.3.6.6\n\t\t\tcase 'sender-email': // 7.3.6.7\n\t\t\tcase 'sender-phone-private': // 7.3.6.8\n\t\t\tcase 'sender-fax': // 7.3.6.9\n\t\t\tcase 'sender-company': // 7.3.6.10\n\t\t\tcase 'sender-phone-work': // 7.3.6.11\n\t\t\tcase 'sender-street': // 7.3.6.12\n\t\t\tcase 'sender-city': // 7.3.6.13\n\t\t\tcase 'sender-postal-code': // 7.3.6.14\n\t\t\tcase 'sender-country': // 7.3.6.15\n\t\t\tcase 'sender-state-or-province': // 7.3.6.16\n\t\t\tcase 'author-name': // 7.3.7.1\n\t\t\tcase 'author-initials': // 7.3.7.2\n\t\t\tcase 'chapter': // 7.3.8\n\t\t\tcase 'file-name': // 7.3.9\n\t\t\tcase 'template-name': // 7.3.9\n\t\t\tcase 'sheet-name': // 7.3.9\n\t\t\t\tbreak;\n\n\t\t\tcase 'event-listener':\n\t\t\t\tbreak;\n\t\t\t/* TODO: FODS Properties */\n\t\t\tcase 'initial-creator':\n\t\t\tcase 'creation-date':\n\t\t\tcase 'print-date':\n\t\t\tcase 'generator':\n\t\t\tcase 'document-statistic':\n\t\t\tcase 'user-defined':\n\t\t\tcase 'editing-duration':\n\t\t\tcase 'editing-cycles':\n\t\t\t\tbreak;\n\n\t\t\t/* TODO: FODS Config */\n\t\t\tcase 'config-item':\n\t\t\t\tbreak;\n\n\t\t\t/* TODO: style tokens */\n\t\t\tcase 'page-number': break; // TODO <text:page-number>\n\t\t\tcase 'page-count': break; // TODO <text:page-count>\n\t\t\tcase 'time': break; // TODO <text:time>\n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 <table:\n\t\t\tcase 'detective': break; // 9.3.2 <table:\n\t\t\tcase 'operation': break; // 9.3.3 <table:\n\t\t\tcase 'highlighted-range': break; // 9.3.4 <table:\n\n\t\t\t/* 9.6 Data Pilot Tables <table: */\n\t\t\tcase 'data-pilot-table': // 9.6.3\n\t\t\tcase 'source-cell-range': // 9.6.5\n\t\t\tcase 'source-service': // 9.6.6\n\t\t\tcase 'data-pilot-field': // 9.6.7\n\t\t\tcase 'data-pilot-level': // 9.6.8\n\t\t\tcase 'data-pilot-subtotals': // 9.6.9\n\t\t\tcase 'data-pilot-subtotal': // 9.6.10\n\t\t\tcase 'data-pilot-members': // 9.6.11\n\t\t\tcase 'data-pilot-member': // 9.6.12\n\t\t\tcase 'data-pilot-display-info': // 9.6.13\n\t\t\tcase 'data-pilot-sort-info': // 9.6.14\n\t\t\tcase 'data-pilot-layout-info': // 9.6.15\n\t\t\tcase 'data-pilot-field-reference': // 9.6.16\n\t\t\tcase 'data-pilot-groups': // 9.6.17\n\t\t\tcase 'data-pilot-group': // 9.6.18\n\t\t\tcase 'data-pilot-group-member': // 9.6.19\n\t\t\t\tbreak;\n\n\t\t\t/* 10.3 Drawing Shapes */\n\t\t\tcase 'rect': // 10.3.2\n\t\t\t\tbreak;\n\n\t\t\t/* 14.6 DDE Connections */\n\t\t\tcase 'dde-connection-decls': // 14.6.2 <text:\n\t\t\tcase 'dde-connection-decl': // 14.6.3 <text:\n\t\t\tcase 'dde-link': // 14.6.4 <table:\n\t\t\tcase 'dde-source': // 14.6.5 <office:\n\t\t\t\tbreak;\n\n\t\t\tcase 'properties': break; // 13.7 <form:properties>\n\t\t\tcase 'property': break; // 13.8 <form:property>\n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = atag.href; delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // <table:\n\t\t\tcase 'office-document-common-attrs': break; // bare\n\t\t\tdefault: switch(Rn[2]) {\n\t\t\t\tcase 'dc:':       // TODO: properties\n\t\t\t\tcase 'calcext:':  // ignore undocumented extensions\n\t\t\t\tcase 'loext:':    // ignore undocumented extensions\n\t\t\t\tcase 'ooo:':      // ignore undocumented extensions\n\t\t\t\tcase 'chartooo:': // ignore undocumented extensions\n\t\t\t\tcase 'draw:':     // TODO: drawing\n\t\t\t\tcase 'style:':    // TODO: styles\n\t\t\t\tcase 'chart:':    // TODO: charts\n\t\t\t\tcase 'form:':     // TODO: forms\n\t\t\t\tcase 'uof:':      // TODO: uof\n\t\t\t\tcase '表:':       // TODO: uof\n\t\t\t\tcase '字:':       // TODO: uof\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts.WTF) throw new Error(Rn);\n\t\t\t}\n\t\t}\n\t\tvar out = ({\n\t\t\tSheets: Sheets,\n\t\t\tSheetNames: SheetNames,\n\t\t\tWorkbook: WB\n\t\t});\n\t\tif(opts.bookSheets) delete out.Sheets;\n\t\treturn out;\n\t};\n})();\n\nfunction parse_ods(zip, opts) {\n\topts = opts || ({});\n\tvar ods = !!safegetzipfile(zip, 'objectdata');\n\tif(ods) parse_manifest(getzipdata(zip, 'META-INF/manifest.xml'), opts);\n\tvar content = getzipstr(zip, 'content.xml');\n\tif(!content) throw new Error(\"Missing content.xml in \" + (ods ? \"ODS\" : \"UOF\")+ \" file\");\n\tvar wb = parse_content_xml(ods ? content : utf8read(content), opts);\n\tif(safegetzipfile(zip, 'meta.xml')) wb.Props = parse_core_props(getzipdata(zip, 'meta.xml'));\n\treturn wb;\n}\nfunction parse_fods(data, opts) {\n\treturn parse_content_xml(data, opts);\n}\n\n/* OpenDocument */\nvar write_styles_ods = (function() {\n\tvar payload = '<office:document-styles ' + wxt_helper({\n\t\t'xmlns:office':   \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t'xmlns:table':    \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t'xmlns:style':    \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t'xmlns:text':     \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t'xmlns:draw':     \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t'xmlns:fo':       \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t'xmlns:xlink':    \"http://www.w3.org/1999/xlink\",\n\t\t'xmlns:dc':       \"http://purl.org/dc/elements/1.1/\",\n\t\t'xmlns:number':   \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t'xmlns:svg':      \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t'xmlns:of':       \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t'office:version': \"1.2\"\n\t}) + '></office:document-styles>';\n\treturn function wso() {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\nvar write_content_ods = (function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text) {\n\t\treturn escapexml(text)\n\t\t\t.replace(/  +/g, function($$){return '<text:s text:c=\"'+$$.length+'\"/>';})\n\t\t\t.replace(/\\t/g, \"<text:tab/>\")\n\t\t\t.replace(/\\n/g, \"<text:line-break/>\")\n\t\t\t.replace(/^ /, \"<text:s/>\").replace(/ $/, \"<text:s/>\");\n\t};\n\n\tvar null_cell_xml = '          <table:table-cell />\\n';\n\tvar covered_cell_xml = '          <table:covered-table-cell/>\\n';\n\tvar write_ws = function(ws, wb, i) {\n\t\t/* Section 9 Tables */\n\t\tvar o = [];\n\t\to.push('      <table:table table:name=\"' + escapexml(wb.SheetNames[i]) + '\" table:style-name=\"ta1\">\\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']);\n\t\tvar marr = ws['!merges'] || [], mi = 0;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(R = 0; R < range.s.r; ++R) o.push('        <table:table-row></table:table-row>\\n');\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\to.push('        <table:table-row>\\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] =    (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] =    (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target; _tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt});\n\t\t\t\t}\n\t\t\t\to.push('          ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push('        </table:table-row>\\n');\n\t\t}\n\t\to.push('      </table:table>\\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o) {\n\t\to.push(' <office:automatic-styles>\\n');\n\n\t\to.push('  <number:date-style style:name=\"N37\" number:automatic-order=\"true\">\\n');\n\t\to.push('   <number:month number:style=\"long\"/>\\n');\n\t\to.push('   <number:text>/</number:text>\\n');\n\t\to.push('   <number:day number:style=\"long\"/>\\n');\n\t\to.push('   <number:text>/</number:text>\\n');\n\t\to.push('   <number:year/>\\n');\n\t\to.push('  </number:date-style>\\n');\n\n\t\t/* table */\n\t\to.push('  <style:style style:name=\"ta1\" style:family=\"table\">\\n'); // style:master-page-name=\"mp1\">\\n');\n\t\to.push('   <style:table-properties table:display=\"true\" style:writing-mode=\"lr-tb\"/>\\n');\n\t\to.push('  </style:style>\\n');\n\n\t\t/* table cells, text */\n\t\to.push('  <style:style style:name=\"ce1\" style:family=\"table-cell\" style:parent-style-name=\"Default\" style:data-style-name=\"N37\"/>\\n');\n\n\t\t/* page-layout */\n\n\t\to.push(' </office:automatic-styles>\\n');\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office':       \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table':        \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style':        \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text':         \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw':         \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo':           \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink':        \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc':           \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta':         \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number':       \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg':          \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart':        \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d':         \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math':         \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form':         \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script':       \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo':          \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow':         \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc':         \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom':          \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms':       \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd':          \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi':          \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet':        \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt':          \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of':           \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml':        \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl':        \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo':     \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo':      \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext':      \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext':        \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field':        \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx':        \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t':        \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version':     \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config':    \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") o.push('<office:document' + attr + fods + '>\\n');\n\t\telse o.push('<office:document-content' + attr  + '>\\n');\n\t\twrite_automatic_styles_ods(o);\n\t\to.push('  <office:body>\\n');\n\t\to.push('    <office:spreadsheet>\\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts));\n\t\to.push('    </office:spreadsheet>\\n');\n\t\to.push('  </office:body>\\n');\n\t\tif(opts.bookType == \"fods\") o.push('</office:document>');\n\t\telse o.push('</office:document-content>');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb, opts) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\nvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest = [];\n\tvar rdf = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, write_meta_ods());\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\nfunction write_sheet_index(wb, sheet) {\n\tif(!sheet) return 0;\n\tvar idx = wb.SheetNames.indexOf(sheet);\n\tif(idx == -1) throw new Error(\"Sheet not found: \" + sheet);\n\treturn idx;\n}\n\nfunction write_obj_str(factory) {\n\treturn function write_str(wb, o) {\n\t\tvar idx = write_sheet_index(wb, o.sheet);\n\t\treturn factory.from_sheet(wb.Sheets[wb.SheetNames[idx]], o, wb);\n\t};\n}\n\nvar write_htm_str = write_obj_str(HTML_);\nvar write_csv_str = write_obj_str({from_sheet:sheet_to_csv});\nvar write_slk_str = write_obj_str(typeof SYLK !== \"undefined\" ? SYLK : {});\nvar write_dif_str = write_obj_str(typeof DIF !== \"undefined\" ? DIF : {});\nvar write_prn_str = write_obj_str(typeof PRN !== \"undefined\" ? PRN : {});\nvar write_rtf_str = write_obj_str(typeof RTF !== \"undefined\" ? RTF : {});\nvar write_txt_str = write_obj_str({from_sheet:sheet_to_txt});\nvar write_dbf_buf = write_obj_str(typeof DBF !== \"undefined\" ? DBF : {});\nvar write_eth_str = write_obj_str(typeof ETH !== \"undefined\" ? ETH : {});\n\nfunction fix_opts_func(defaults) {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nvar fix_read_opts = function(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n};\n\nvar fix_write_opts = fix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n]);\nfunction get_sheet_type(n) {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path, relsPath, sheet, idx, sheetRels, sheets, stype, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet':  _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart':  _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro':  _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments */\n\t\tvar comments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tvar dfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tcomments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments);\n\t\t\t}\n\t\t});\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x) { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip, opts) {\n\tmake_ssf(SSF);\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) throw new Error('Unsupported NUMBERS file');\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({});\n\tvar styles = ({});\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({});\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({});\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile);\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: SSF.get_table()\n\t});\n\tif(opts && opts.bookFiles) {\n\t\tout.keys = entries;\n\t\tout.files = zip.files;\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts) {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\nif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\nif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip(wb, opts) {\n\t_shapeid = 1024;\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = []; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\nvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\nf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar cf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\nfunction firstbyte(f,o) {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64.decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array':  return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb, opts) {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data, opts) {\nvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data, o) {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data, o) {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64.decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data, o) {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64.decode(d);\n\td = cptable.utils.decode(1200, d.slice(2), 'str');\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data) {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data, opts) {\n\treset_cp();\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), opts);\n\tvar d = data, n = [0,0,0,0], str = false;\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x04) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49: if(n[1] === 0x44) return read_wb_ID(d, o); break;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF: if(n[1] === 0xFE) { return read_utf16(d, o); } break;\n\t\tcase 0x00: if(n[1] === 0x00 && n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o); break;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t}\n\tif(DBF.versions.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb, o) {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\nfunction write_zip_type(wb, opts) {\n\tvar o = opts||{};\n\tvar z = write_zip(wb, o);\n\tvar oopts = {};\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = has_buf ? \"nodebuffer\" : \"string\";\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = has_buf ? \"nodebuffer\" : \"string\"; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: {\"nodebuffer\": \"buffer\", \"string\": \"binary\"}[oopts.type] || oopts.type}) : z.generate(oopts);\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(out) : out;\n}\n\nfunction write_cfb_type(wb, opts) {\n\tvar o = opts||{};\n\tvar cfb = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out, opts, bom) {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64.encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSync(wb, opts) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out = (writeSync(wb, o)); o.type = \"array\"; return s2ab(out); }\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(write_slk_str(wb, o), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(write_htm_str(wb, o), o);\n\t\tcase 'txt': return write_stxt_type(write_txt_str(wb, o), o);\n\t\tcase 'csv': return write_string_type(write_csv_str(wb, o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(write_dif_str(wb, o), o);\n\t\tcase 'dbf': return write_binary_type(write_dbf_buf(wb, o), o);\n\t\tcase 'prn': return write_string_type(write_prn_str(wb, o), o);\n\t\tcase 'rtf': return write_string_type(write_rtf_str(wb, o), o);\n\t\tcase 'eth': return write_string_type(write_eth_str(wb, o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb, filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileAsync(filename, wb, opts, cb) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\nfunction make_json_row(sheet, r, R, cols, header, hdr, dense, o) {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true;\n\tvar row = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = void 0; break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw || (o.rawNumbers && val.t == \"n\") ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet, opts) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols = [];\n\tvar out = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0, CC = 0;\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = 0;\n\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {\n\tvar isempty = true;\n\tvar row = [], txt = \"\", rr = encode_row(R);\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet, opts) {\n\tvar out = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tout.push(row + RS);\n\t}\n\tdelete o.dense;\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet, opts) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet) {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols = [], C;\n\tvar cmds = [];\n\tvar dense = Array.isArray(sheet);\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws, js, opts) {\n\tvar o = opts || {};\n\tvar offset = +!o.skipHeader;\n\tvar ws = _ws || ({});\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar cell;\n\tvar range = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}});\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr = o.header || [], C = 0;\n\n\tjs.forEach(function (JS, R) {\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\n\t\t\tcell = utils.sheet_get_cell(ws, ref);\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (o.dateNF || SSF._table[14]);\n\t\t\t\t}\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v});\n\t\t\t\telse {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js, opts) { return sheet_add_json(null, js, opts); }\n\nvar utils = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tget_formulae: sheet_to_formulae,\n\tmake_csv: sheet_to_csv,\n\tmake_json: sheet_to_json,\n\tmake_formulae: sheet_to_formulae,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: HTML_.from_sheet,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json\n};\n\n(function(utils) {\nutils.consts = utils.consts || {};\nfunction add_consts(R/*Array<any>*/) { R.forEach(function(a){ utils.consts[a[0]] = a[1]; }); }\n\nfunction get_default(x, y, z) { return x[y] != null ? x[y] : (x[y] = z); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws, R, C) {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\t/* dense */\n\t\tif(Array.isArray(ws)) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\n}\nutils.sheet_get_cell = ws_get_cell_stub;\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb, sh) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nutils.book_new = function() {\n\treturn { SheetNames: [], Sheets: {} };\n};\n\n/* add a worksheet to the end of a given workbook */\nutils.book_append_sheet = function(wb, ws, name) {\n\tif(!name) for(var i = 1; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n};\n\n/* set sheet visibility (visible/hidden/very hidden) */\nutils.book_set_sheet_visibility = function(wb, sh, vis) {\n\tget_default(wb,\"Workbook\",{});\n\tget_default(wb.Workbook,\"Sheets\",[]);\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tget_default(wb.Workbook.Sheets,idx, {});\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n};\nadd_consts([\n\t[\"SHEET_VISIBLE\", 0],\n\t[\"SHEET_HIDDEN\", 1],\n\t[\"SHEET_VERY_HIDDEN\", 2]\n]);\n\n/* set number format */\nutils.cell_set_number_format = function(cell, fmt) {\n\tcell.z = fmt;\n\treturn cell;\n};\n\n/* set cell hyperlink */\nutils.cell_set_hyperlink = function(cell, target, tooltip) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target });\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n};\nutils.cell_set_internal_link = function(cell, range, tooltip) { return utils.cell_set_hyperlink(cell, \"#\" + range, tooltip); };\n\n/* add to cell comments */\nutils.cell_add_comment = function(cell, text, author) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n};\n\n/* set array formula and flush related cells */\nutils.sheet_set_array_formula = function(ws, range, formula) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) cell.f = formula;\n\t}\n\treturn ws;\n};\n\nreturn utils;\n})(utils);\n\nif(has_buf && typeof require != 'undefined') (function() {\n\tvar Readable = require('stream').Readable;\n\n\tvar write_csv_stream = function(sheet, opts) {\n\t\tvar stream = Readable();\n\t\tvar o = opts == null ? {} : opts;\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\t\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\t\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\t\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\t\tvar row = \"\", cols = [];\n\t\to.dense = Array.isArray(sheet);\n\t\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\t\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\t\tvar R = r.s.r;\n\t\tvar BOM = false;\n\t\tstream._read = function() {\n\t\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t++R;\n\t\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\t\tif(row != null) {\n\t\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\t\tstream.push(row + RS);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_html_stream = function(ws, opts) {\n\t\tvar stream = Readable();\n\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : HTML_.BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : HTML_.END;\n\t\tstream.push(header);\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tstream.push(HTML_._preamble(ws, r, o));\n\t\tvar R = r.s.r;\n\t\tvar end = false;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) {\n\t\t\t\tif(!end) { end = true; stream.push(\"</table>\" + footer); }\n\t\t\t\treturn stream.push(null);\n\t\t\t}\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\tstream.push(HTML_._row(ws, r, R, o));\n\t\t\t\t++R;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_json_stream = function(sheet, opts) {\n\t\tvar stream = Readable({objectMode:true});\n\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\t\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tvar o = opts || {};\n\t\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\t\tif(o.header === 1) header = 1;\n\t\telse if(o.header === \"A\") header = 2;\n\t\telse if(Array.isArray(o.header)) header = 3;\n\t\tswitch(typeof range) {\n\t\t\tcase 'string': r = safe_decode_range(range); break;\n\t\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\t\tdefault: r = range;\n\t\t}\n\t\tif(header > 0) offset = 0;\n\t\tvar rr = encode_row(r.s.r);\n\t\tvar cols = [];\n\t\tvar counter = 0;\n\t\tvar dense = Array.isArray(sheet);\n\t\tvar R = r.s.r, C = 0, CC = 0;\n\t\tif(dense && !sheet[R]) sheet[R] = [];\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tcols[C] = encode_col(C);\n\t\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\t\tswitch(header) {\n\t\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\t\tdefault:\n\t\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\t\tcounter = 0;\n\t\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\t\thdr[C] = vv;\n\t\t\t}\n\t\t}\n\t\tR = r.s.r + offset;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t//if ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\t\t\t++R;\n\t\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\t\tstream.push(row.row);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tXLSX.stream = {\n\t\tto_json: write_json_stream,\n\t\tto_html: write_html_stream,\n\t\tto_csv: write_csv_stream\n\t};\n})();\n\nif(typeof parse_xlscfb !== \"undefined\") XLSX.parse_xlscfb = parse_xlscfb;\nXLSX.parse_zip = parse_zip;\nXLSX.read = readSync; //xlsread\nXLSX.readFile = readFileSync; //readFile\nXLSX.readFileSync = readFileSync;\nXLSX.write = writeSync;\nXLSX.writeFile = writeFileSync;\nXLSX.writeFileSync = writeFileSync;\nXLSX.writeFileAsync = writeFileAsync;\nXLSX.utils = utils;\nXLSX.SSF = SSF;\nif(typeof CFB !== \"undefined\") XLSX.CFB = CFB;\n}\n/*global define */\nif(typeof exports !== 'undefined') make_xlsx_lib(exports);\nelse if(typeof module !== 'undefined' && module.exports) make_xlsx_lib(module.exports);\nelse if(typeof define === 'function' && define.amd) define(function() { if(!XLSX.version) make_xlsx_lib(XLSX); return XLSX; });\nelse make_xlsx_lib(XLSX);\n/*exported XLS, ODS */\nvar XLS = XLSX, ODS = XLSX;\n","import { Analysis } from '..';\n\nimport { idealGasConstant } from './constants';\n\nimport { readFile, utils } from 'xlsx';\n\nfunction valueElseUndefined(cell) {\n  return cell ? cell.v : undefined;\n}\n\nfunction valueElseUndefinedFloat(cell) {\n  return cell ? parseFloat(cell.v) : undefined;\n}\n\nfunction valueElseUndefinedInt(cell) {\n  return cell ? parseFloat(cell.v) : undefined;\n}\n\nfunction valueElseUndefinedStripUnit(cell) {\n  let val = cell ? cell.v : undefined;\n  return val.replace(']', '').replace('[', '');\n}\n\nfunction getAdsDesMeta(adsDesSheet) {\n  let metaData = {};\n  metaData.fileName = valueElseUndefined(adsDesSheet.C2);\n  metaData.date = valueElseUndefined(adsDesSheet.C3);\n  metaData.time = valueElseUndefined(adsDesSheet.C4);\n  metaData.comment1 = valueElseUndefined(adsDesSheet.C5);\n  metaData.comment2 = valueElseUndefined(adsDesSheet.C6);\n  metaData.comment3 = valueElseUndefined(adsDesSheet.C7);\n  metaData.comment4 = valueElseUndefined(adsDesSheet.C8);\n  metaData.serialNumber = valueElseUndefined(adsDesSheet.C9);\n  metaData.version = valueElseUndefined(adsDesSheet.C10);\n  metaData.sampleWeight = valueElseUndefinedFloat(adsDesSheet.C12);\n  metaData.sampleWeightUnit = valueElseUndefinedStripUnit(adsDesSheet.D12);\n  metaData.standardVolume = valueElseUndefinedFloat(adsDesSheet.C13);\n  metaData.standardVolumeUnit = valueElseUndefinedStripUnit(adsDesSheet.D13);\n  metaData.deadVolume = valueElseUndefinedFloat(adsDesSheet.C14);\n  metaData.deadVolumeUnit = valueElseUndefinedStripUnit(adsDesSheet.D14);\n  metaData.equilibriumTime = valueElseUndefinedFloat(adsDesSheet.C15);\n  metaData.equilibriumTimeUnit = valueElseUndefinedStripUnit(adsDesSheet.D15);\n  metaData.adsorptive = valueElseUndefined(adsDesSheet.C16);\n  metaData.apparatusT = valueElseUndefined(adsDesSheet.C17);\n  metaData.apparatusTUnit = valueElseUndefinedStripUnit(adsDesSheet.D17);\n  metaData.adsorptionT = valueElseUndefinedFloat(adsDesSheet.C18);\n  metaData.adsorptionTUnit = valueElseUndefinedStripUnit(adsDesSheet.D18);\n  metaData.saturatedVaporPressure = valueElseUndefinedFloat(adsDesSheet.H12);\n  metaData.saturatedVaporPressureUnit = valueElseUndefinedStripUnit(\n    adsDesSheet.I12,\n  );\n  metaData.adsorptionCrossSectionArea = valueElseUndefinedFloat(\n    adsDesSheet.H13,\n  );\n  metaData.adsorptionCrossSectionAreaUnit = valueElseUndefinedStripUnit(\n    adsDesSheet.I13,\n  );\n  metaData.adsorptionPoints = valueElseUndefinedInt(adsDesSheet.H17);\n  metaData.desorptionPoints = valueElseUndefinedInt(adsDesSheet.H18);\n  return metaData;\n}\n\nfunction parseIsothermBlock(worksheet, range) {\n  let data = {\n    pi: [],\n    pe: [],\n    pe2: [],\n    p0: [],\n    pp0: [],\n    va: [],\n  };\n\n  const adresses = [data.pi, data.pe, data.pe2, data.p0, data.pp0, data.va];\n\n  for (let R = range.s.r; R <= range.e.r; ++R) {\n    let counter = 0;\n    for (let C = range.s.c; C <= range.e.c; ++C) {\n      let cellAddress = { c: C, r: R };\n      let cellRef = utils.encode_cell(cellAddress);\n      adresses[counter].push(valueElseUndefinedFloat(worksheet[cellRef]));\n      counter++;\n    }\n  }\n\n  data.va = data.va.map(function (x) {\n    return (x / idealGasConstant) * 1000;\n  });\n\n  return data;\n}\n\nfunction parseAdsDesData(worksheet, adsorptionPoints, desorptionPoints) {\n  // traverse the sheet\n  const rangeAds = {\n    s: { c: 1, r: 22 },\n    e: { c: 6, r: 22 + adsorptionPoints - 1 },\n  };\n\n  const rangeDes = {\n    s: { c: 1, r: 22 + adsorptionPoints + 1 },\n    e: { c: 6, r: 22 + adsorptionPoints + desorptionPoints },\n  };\n\n  const adsData = parseIsothermBlock(worksheet, rangeAds);\n  const desData = parseIsothermBlock(worksheet, rangeDes);\n\n  return {\n    adsorption: adsData,\n    desorption: desData,\n  };\n}\n\nexport function fromBelsorp(path) {\n  const workbook = readFile(path);\n\n  const adsDesSheet = workbook.Sheets.AdsDes;\n\n  let metaData = getAdsDesMeta(adsDesSheet);\n\n  let data = parseAdsDesData(\n    adsDesSheet,\n    metaData.adsorptionPoints,\n    metaData.desorptionPoints,\n  );\n\n  let analysis = new Analysis();\n\n  analysis.pushSpectrum(\n    {\n      x: {\n        data: data.adsorption.pp0,\n        label: 'relative pressure',\n        type: 'independent',\n      },\n      p: {\n        data: data.adsorption.pe,\n        label: 'Pressure  [kPa]',\n        type: 'independent',\n      },\n      y: {\n        data: data.adsorption.va,\n        label: 'Excess adsorption mmol /g',\n        type: 'dependent',\n      },\n    },\n    {\n      dataType: 'Adsorption Isotherm',\n      title: metaData.comment1,\n      meta: metaData,\n    },\n  );\n\n  analysis.pushSpectrum(\n    {\n      x: {\n        data: data.desorption.pp0,\n        label: 'relative pressure',\n        type: 'independent',\n      },\n      p: {\n        data: data.desorption.pe,\n        label: 'Pressure  [kPa]',\n        type: 'independent',\n      },\n      y: {\n        data: data.desorption.va,\n        label: 'Excess adsorption mmol /g',\n        type: 'dependent',\n      },\n    },\n    {\n      dataType: 'Desorption Isotherm',\n      title: metaData.comment1,\n      meta: metaData,\n    },\n  );\n\n  return analysis;\n}\n\nexport const testables = {\n  parseIsothermBlock: parseIsothermBlock,\n  getAdsDesMeta: getAdsDesMeta,\n  parseAdsDesData: parseAdsDesData,\n};\n"],"names":["AnalysesManager","constructor","analyses","addAnalysis","analysis","index","getAnalysisIndex","id","undefined","push","getAnalyses","options","ids","includes","removeAllAnalyses","splice","removeAnalysis","i","length","isNaN","toString","Object","prototype","isAnyArray","object","call","endsWith","max","input","arguments","isArray","TypeError","_options$fromIndex","fromIndex","_options$toIndex","toIndex","Number","isInteger","Error","maxValue","min","minValue","a","d","e","f","g","h","j","c","b","_ref","module","exports","window","median","quickSelectMedian","slice","xAdd","array1","array2","isConstant","constant","Array","array3","xMultiply","Float64Array","xDivide","xIsMonotone","array","global","factory","this","ascending","NaN","bisector","compare","ascendingComparator","left","x","lo","hi","mid","right","ascendingBisect","bisectRight","bisectLeft","descending","number$1","variance","n","m","s","deviation","v","Math","sqrt","extent","identity","range","start","stop","step","ceil","e10","e5","e2","ticks","count","tickStep","floor","step0","abs","step1","pow","log","LN10","error","sturges","values","LN2","number","histogram","value","domain","threshold","data","xz","x0","x1","tz","shift","pop","bins","bin","_","thresholds","map","quantile","p","freedmanDiaconis","sort","scott","mean","numbers","merge","arrays","merged","pairs","permute","indexes","permutes","scan","xi","xj","shuffle","i0","i1","t","random","sum","transpose","matrix","row","zip","version","bisect","thresholdFreedmanDiaconis","thresholdScott","thresholdSturges","xSubtract","sumValue","norm","_options$algorithm","algorithm","_options$sumValue","_options$maxValue","output","toLowerCase","absoluteSumValue","absoluteSum","currentMaxValue","factor","_i","sumFactor","_i2","concat","rescale","currentMin","currentMax","RangeError","_options$min","autoMinMax","_options$max","_typeof","obj","Symbol","iterator","sequentialFill","_options","_options$from","from","_options$to","to","_options$size","size","normalize","zones","NEGATIVE_INFINITY","POSITIVE_INFINITY","JSON","parse","stringify","zone","forEach","filter","currentZone","result","invert","exclusions","exclusion","nextExclusion","zonesWithPoints","numberOfPoints","totalSize","reduce","previous","current","unitsPerPoint","currentTotal","round","integral","slope","intercept","equallySpacedSmooth","y","xLength","halfStep","initialOriginalStep","lastOriginalStep","previousX","MIN_VALUE","previousY","nextX","nextY","currentValue","sumAtMin","sumAtMax","getSlope","y0","y1","add","main","equallySpacedSlot","lastStep","MAX_VALUE","frontOutsideSpectra","backOutsideSpectra","currentPoints","equallySpaced","arrayXY","reverse","variant","xResult","yResult","zoneResult","processZone","getZones","currentFrom","filterX","points","currentZoneIndex","newX","newY","position","indent","repeat","indentData","inspectMatrix","inspectMatrixWithOptions","maxRows","maxColumns","maxNumSize","name","inspectData","rows","columns","maxI","maxJ","line","formatNumber","get","join","num","numStr","String","padEnd","precise","toPrecision","exponential","toExponential","eIndex","indexOf","installMathOperations","AbstractMatrix","Matrix","addS","addM","set","checkMatrix","newMatrix","sub","subS","subM","subtract","subtractS","subtractM","mul","mulS","mulM","multiply","multiplyS","multiplyM","div","divS","divM","divide","divideS","divideM","mod","modS","modM","modulus","modulusS","modulusM","and","andS","andM","or","orS","orM","xor","xorS","xorM","leftShift","leftShiftS","leftShiftM","signPropagatingRightShift","signPropagatingRightShiftS","signPropagatingRightShiftM","rightShift","rightShiftS","rightShiftM","zeroFillRightShift","zeroFillRightShiftS","zeroFillRightShiftM","not","acos","acosh","asin","asinh","atan","atanh","cbrt","clz32","cos","cosh","exp","expm1","fround","log1p","log10","log2","sign","sin","sinh","tan","tanh","trunc","arg0","powS","powM","checkRowIndex","outer","checkColumnIndex","checkRowVector","vector","to1DArray","checkColumnVector","checkIndices","rowIndices","columnIndices","checkRowIndices","column","checkColumnIndices","rowOut","some","r","columnOut","checkRange","startRow","endRow","startColumn","endColumn","checkNumber","newArray","sumByRow","sumByColumn","sumAll","productByRow","productByColumn","productAll","varianceByRow","unbiased","cols","sum1","sum2","varianceByColumn","varianceAll","centerByRow","centerByColumn","centerAll","getScaleByRow","scale","scaleByRow","getScaleByColumn","scaleByColumn","getScaleAll","divider","scaleAll","from1DArray","newRows","newColumns","newData","rowVector","columnVector","zeros","ones","fill","rand","randInt","interval","eye","diag","l","matrix1","matrix2","isMatrix","klass","apply","callback","to2DArray","copy","toJSON","isRowVector","isColumnVector","isVector","isSquare","isSymmetric","isEchelonForm","previousColumn","checked","isReducedEchelonForm","k","echelonForm","clone","iMax","swapRows","tmp","reducedEchelonForm","maxRow","pivot","setSubMatrix","neg","getRow","getRowVector","setRow","row1","row2","temp","getColumn","getColumnVector","setColumn","swapColumns","column1","column2","addRowVector","subRowVector","mulRowVector","divRowVector","addColumnVector","subColumnVector","mulColumnVector","divColumnVector","mulRow","mulColumn","maxIndex","idx","minIndex","maxRowIndex","minRow","minRowIndex","maxColumn","maxColumnIndex","minColumn","minColumnIndex","type","cumulativeSum","dot","vector2","vector1","mmul","other","Bcolj","strassen2x2","a11","b11","a12","b12","a21","b21","a22","b22","m1","m2","m3","m4","m5","m6","m7","c00","c01","c10","c11","strassen3x3","a00","a01","a02","a10","a20","b00","b01","b02","b10","b20","m8","m9","m10","m11","m12","m13","m14","m15","m16","m17","m18","m19","m20","m21","m22","m23","c02","c12","c20","c21","c22","mmulStrassen","r1","c1","r2","c2","console","warn","embed","mat","resultat","blockMult","halfRows","parseInt","halfCols","subMatrix","scaleRows","isFinite","scaleColumns","flipRows","middle","first","last","flipColumns","kroneckerProduct","q","sortRows","compareFunction","compareNumbers","sortColumns","subMatrixRow","indices","subMatrixColumn","selection","rowIndex","columnIndex","trace","by","product","standardDeviation","center","for","randomInt","diagonal","negate","tensorProduct","nRows","nColumns","arrayData","removeRow","addRow","removeColumn","newRow","addColumn","BaseView","MatrixTransposeView","WrapperMatrix2D","LuDecomposition","lu","pivotVector","pivotSign","LUcolj","kmax","LU","isSingular","col","solve","X","determinant","lowerTriangularMatrix","upperTriangularMatrix","pivotPermutationVector","hypotenuse","QrDecomposition","qr","rdiag","nrm","QR","Rdiag","isFullRank","orthogonalMatrix","SingularValueDecomposition","computeLeftSingularVectors","computeRightSingularVectors","autoTranspose","wantu","Boolean","wantv","swapped","aux","nu","ni","U","V","work","si","nct","nrt","mrc","pp","eps","EPSILON","kase","alpha","ks","cs","sn","sp","spm1","epm1","sk","ek","Y","scols","Ls","rightSingularVectors","VL","vrows","urows","VLU","solveForDiagonal","inverse","vcols","ucols","condition","norm2","rank","tol","ii","leftSingularVectors","diagonalMatrix","useSVD","leftHandSide","rightHandSide","defaultOptions","arrayCase","len","cond","matrixCase","padArray","assign","factorial","windowSize","derivative","polynomial","pad","padValue","savitzkyGolay","C","ans","J","inic","Jtranspose","Jinv","det","maybeToPrecision","digits","checkArraySize","BaseRegression","new","target","predict","_predict","train","toLaTeX","score","y2","xSum","ySum","chi2","rmsd","xSquared","ySquared","xY","PolynomialRegression","degree","powers","coefficients","checkArrayLength","regress","precision","_toFormula","isLaTeX","sup","closeSup","times","fn","str","charAt","load","json","pr","F","FT","A","B","baselineCorrectionRegression","maxIterations","Regression","regressionOptions","tolerance","baseline","fitting","oldFitting","iteration","delta","regression","corrected","minMax","arithmeticMean","geometricMean","logMean","lnsum","grandMean","means","samples","truncatedMean","percent","alreadySorted","harmonicMean","contraHarmonicMean","half","theMean","theVariance","standardError","robustMeanAndStdev","stdev","averageDeviations","quartiles","quart","q1","q2","q3","pooledStandardDeviation","pooledVariance","vari","mode","itemCount","itemArray","covariance","mean1","mean2","cov","skewness","s2","s3","dev","kurtosis","s4","entropy","weightedMean","weights","weightedStandardDeviation","weightedVariance","z","w","inPlace","standardize","standardDev","getNormalizedSpectrum","spectrum","variables","newSpectrum","units","label","title","dataType","meta","filters","processing","replace","filterOptions","Stat","std","normed","baselineCorrection","process","kind","isMonotone","isString","isFiniteImpl","isNumber","uniq","strings","seen","item","hasOwnProperty","compareArray","properties","keys","key","mulSafe","decimals","arg","getFractional","divSafe","den","invDen","val","QtyError","err","create","message","stack","throwIncompatibleUnits","UNITS","PI","BASE_UNITS","UNITY","UNITY_ARRAY","validateUnitDefinition","unitDef","definition","scalar","numerator","denominator","unit","PREFIX_VALUES","PREFIX_MAP","UNIT_VALUES","UNIT_MAP","OUTPUT_MAP","getUnits","unitKeys","substr","getKinds","getAliases","unitName","SIGNATURE_VECTOR","unitSignature","signature","unitSignatureVector","isBase","toBase","SIGN","INTEGER","SIGNED_INTEGER","FRACTION","FLOAT","EXPONENT","SCI_NUMBER","SIGNED_NUMBER","QTY_STRING","QTY_STRING_REGEX","RegExp","POWER_OP","SAFE_POWER","TOP_REGEX","BOTTOM_REGEX","trim","exec","scalarMatch","parseFloat","top","bottom","nx","UNIT_TEST_REGEX","test","parseUnits","PREFIX_REGEX","UNIT_REGEX","BOUNDARY_REGEX","UNIT_MATCH","UNIT_MATCH_REGEX","parsedUnitsCache","cached","unitMatch","normalizedUnits","globalParse","isQty","Qty","initValue","initUnits","assertValidConstructorArgs","baseScalar","_conversionCache","isDefinitionObject","updateBaseScalar","isTemperature","base","KINDS","knownSignature","isDegrees","match","subtractTemperatures","lhs","rhs","lhsUnits","rhsConverted","dstDegrees","getDegreeUnits","subtractTempDegrees","deg","tempDegrees","addTempDegrees","toDegrees","src","dst","srcDegK","toDegK","dstUnits","dstScalar","qty","toTemp","toTempK","isCompatible","isInverse","baseUnitCache","toBaseUnits","toFloat","isUnitless","toPrec","precQuantity","precRoundedResult","swiftConverter","srcUnits","srcQty","dstQty","eq","convert","converter","op1","op2","numdenscale","cleanTerms","num1","den1","num2","den2","notUnity","combined","combineTerms","terms","direction","prefix","prefixValue","combinedPrefixValue","prop","compareTo","lt","lte","gt","gte","same","every","_isBase","NestedMap","childMap","defaultFormatter","formatter","_units","numIsUnity","denIsUnity","numUnits","stringifyUnits","denUnits","targetUnitsOrMaxDecimalsOrPrec","maxDecimals","targetUnits","out","outScalar","format","targetQty","stringifiedUnitsCache","stringified","isUnity","simplify","getOutputNames","unitNames","token","tokenNext","unitCounts","acc","unitCounter","unitCount","convertUnit","fromUnit","toUnit","getConvertedVariable","variable","newUnits","getXYSpectrum","spectra","selector","xUnits","yUnits","split","variableNames","converted","Analysis","substring","cache","pushSpectrum","standardizeData","normalization","getXLabel","getYLabel","xVariable","yVariable","GC_MS_FIELDS","complexChromatogram","chromatogram","series","ms","dimension","existingGCMSFields","convertMSFieldToLabel","pageValue","isMSField","canonicDataLabel","convertToFloatArray","stringArray","floatArray","fastParseXYData","yFactor","deltaX","isXYdata","currentData","currentX","firstX","currentY","firstY","endLine","ascii","charCodeAt","newLine","isDifference","isLastDifference","lastDifference","isDuplicate","inComment","lastValue","isNegative","inValue","skipFirstValue","decimalPosition","duplicate","ascii2","removeCommentRegExp","peakTableSplitRegExp","parsePeakTable","isPeaktable","parseXY","parseXYZ","lines","xFactor","logs","numberOfVariables","parseXYA","removeSymbolRegExp","isXYAdata","convertTo3DZ","minZ","maxZ","ySize","xSize","lastX","lastY","minX","maxX","minY","maxY","noise","getMedian","generateContourLines","zData","povarHeight0","povarHeight1","povarHeight2","povarHeight3","isOver0","isOver1","isOver2","isOver3","nbSubSpectra","nbPovars","pAx","pAy","pBx","pBy","xN","dx","yN","dy","iter","nbContourLevels","contourLevels","lineZValue","level","contourLevel","side","noiseMultiplier","zValue","iSubSpectra","subSpectra","subSpectraAfter","povar","segments","add2D","noContour","contourLines","FFT","release","date","_n","_bitrev","_cstb","core","init","_initArray","_makeBitReversalTable","_makeCosSinTable","fft1d","re","im","fft","ifft1d","bt1d","fft2d","tre","tim","x2","ifft2d","inv","ik","wr","wi","xr","n4","Uint32Array","_paddingZero","n2","n8","n2p4","dc","ds","apis","bt","ifft","gyromagneticRatio","postProcessingNMR","entriesFlat","observeFrequency","shiftOffsetVal","entry","ntuples","symbol","toUpperCase","nucleus","pageSymbolIndex","pageSymbol","ratio0","ratio1","ratio","profiling","action","time","Date","now","simpleChromatogram","intensity","postProcessing","newNtuples","twoD","wantXY","keepSpectra","prepareNtuplesDatatable","currentEntry","xIndex","yIndex","firstVariable","secondVariable","lowerCaseSymbol","vardim","nbPoints","varname","prepareSpectrum","ntuplesSeparator","Spectrum","keepRecordsRegExp","canonicDataLabels","canonicMetadataLabels","dynamicTyping","withoutXY","jcamp","entries","tmpResult","children","parentsStack","ldrs","ldr","dataLabel","dataValue","infos","datatable","parentEntry","info","dataClass","xType","shiftOffsetNum","vartype","varform","yType","page","sampleDescription","startsWith","parsedValue","flatten","fromJcamp","addJcamp","currentSpectrum","addStyle","serie","color","opacity","lineWidth","style","width","dash","COLORS","getJSGraph","colors","opacities","linesWidth","xLabel","yLabel","axes","unitWrapperBefore","unitWrapperAfter","flipped","display","getNormalizationAnnotations","boundary","annotations","ignore","annotation","strokeWidth","fillColor","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","creatorNtuples","owner","origin","varName","varType","varDim","minFct","maxFct","header","point","fromJSON","fromVariables","forceNtuples","jcampOptions","toJcamps","jcamps","getJcamp","toJcamp","lineSplitTrim","lineSplit","parseIGAMeasurmentHeader","metaData","systemType","systemOwner","systemReference","systemSerialNumber","sampleNumber","experimentType","experimentNumber","comment","source","batch","experimentTitle","sampleWeight","sampleWeightUnit","sampleWeightDry","sampleWeightDryUnit","balanceTrimV","balanceTrimVUnit","balanceTrimT","counterWeightM","counterWeightMUnit","counterWeightRho","counterWeightRhoUnit","counterWeightT","tungstenM","tungstenMUnit","tungstenRho","tungstenRhoUnit","chainExcessM","chainExcessMUnit","chainExcessRho","chainExcessRhoUnit","chainExcessT","applicationCode","gasSource","vessel","reactor","pressureSensor","thermostat","nitrogenEOS","nitrogenSVP","seriesType","course","referenceStateDevice","scanTitle","scanStart","getLineNumbersOfMeasurement","starts","ends","parseIGADataBlock","dataBlock","pressure","gasDensity","pp0","totalWeight","bet","excessAdsorptionPercentage","excessAdsorption","sampleT","wtPercent","parseOneIGA","measLen","scanEnd","scanReferenceState","fromIGA","text","lineNumbers","meas","adsorptionT","adsorptionTUnit","parseMetaBlock","dataStartIndex","sample","operator","submitter","file","started","adsorptive","completed","equilibrationTime","equilibrationTimeUnit","reportTime","mass","model","density","sampleDensity","sampleDensityUnit","evacRate","evacRateUnit","findDataBlocks","isothermTableStarts","isothermTableEnds","isIsothermTable","parseIsothermTable","pSat","parts","fromMicrometricsTXT","startsAndEnds","self","document","postMessage","o","location","protocol","dynamicTypingFunction","transform","worker","WORKERS_SUPPORTED","URL","webkitURL","BLOB_URL","createObjectURL","Blob","Worker","onmessage","userStep","userChunk","chunk","userComplete","complete","userError","config","workerId","download","readable","read","on","File","stream","unparse","delimiter","BAD_DELIMITERS","quotes","skipEmptyLines","newline","quoteChar","escapeChar","escapeFormulae","u","fields","RECORD_SEP","fromCharCode","UNIT_SEP","BYTE_ORDER_MARK","NODE_STREAM_INPUT","LocalChunkSize","RemoteChunkSize","DefaultDelimiter","Parser","ParserHandle","NetworkStreamer","FileStreamer","StringStreamer","ReadableStreamStreamer","jQuery","each","attr","FileReader","files","inputElem","instanceConfig","extend","before","reason","_handle","_finished","_completed","_halted","_input","_baseIndex","_partialLine","_rowCount","_start","_nextChunk","isFirstChunk","_completeResults","errors","E","chunkSize","streamer","_config","parseChunk","beforeFirstChunk","paused","aborted","cursor","preview","results","WORKER_ID","finished","_sendError","_readChunk","_chunkLoaded","XMLHttpRequest","withCredentials","onload","onerror","_chunkError","open","downloadRequestBody","downloadRequestHeaders","setRequestHeader","send","status","readyState","responseText","getResponseHeader","lastIndexOf","statusText","webkitSlice","mozSlice","FileReaderSync","readAsText","encoding","pause","resume","_streamData","_streamEnd","_streamError","_checkIsFinished","_streamCleanUp","removeListener","abort","transformHeader","code","comments","successful","bestDelimiter","delimitersToGuess","getCharIndex","setTimeout","O","D","I","T","L","fastMode","M","R","S","nextDelim","quoteSearch","linebreak","truncated","terminate","idealGasConstant","fromMicrometricsCSV","parsed","Papa","arrayColumn","arr","headerRow","desorption","cptable","DO_NOT_EXPORT_CODEPAGE","root","require","cpt","magic","sbcs_cache","dbcs_cache","magic_cache","magic_decode","magic_encode","cpdcache","cpecache","sfcc","cca","has_buf","Buffer","Buffer_from","nbfs","buf","enc","bind","allocUnsafe","mdl","mdb","make_EE","EE","ee","sbcs_encode","make_sbcs_encode","cp","sbcs_e","ofmt","isBuffer","sbcs_decode","make_sbcs_decode","dec","DD","sbcs_d","dbcs_encode","make_dbcs_encode","dbcs_e","jj","dbcs_decode","make_dbcs_decode","dbcs_d","utf8_d","ww","utf8_e","direct","encache","null_enc","cp_decache","decache","last_enc","last_cp","sbcs","dbcs","BM","SetD","encode","isstr","tt","decode","o64","c3","e1","e3","e4","hascp","utils","DO_NOT_EXPORT_JSZIP","globalThis","$","JSZipSync","_dereq_","_keyStr","utf8","chr1","chr2","chr3","enc1","enc2","enc3","enc4","CompressedObject","compressedSize","uncompressedSize","crc32","compressionMethod","compressedContent","getContent","getCompressedContent","STORE","compress","content","uncompress","compressInputType","uncompressInputType","DEFLATE","table","crc","getTypeOf","iTop","DataReader","checkOffset","offset","checkIndex","newIndex","setIndex","skip","byteAt","readInt","readString","transformTo","readData","lastIndexOfSignature","sig","readDate","dostime","base64","binary","dir","createFolders","compression","string2binary","string2Uint8Array","uint8Array2String","string2Blob","buffer","arrayBuffer2Blob","outputType","checkSupport","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","findCompression","isRegExp","USE_TYPEDARRAY","Uint8Array","Uint16Array","pako","deflateRaw","inflateRaw","newObj","support","defaults","compressions","ZipEntries","zipEntries","fileName","decompressed","optimizedBinaryString","fileComment","zipComment","alloc","Uint8ArrayReader","NodeBufferReader","nodeBuffer","StringWriter","Uint8ArrayWriter","getRawData","_data","getBinaryData","nodebuffer","asBinary","dataToString","asUTF8","utf8decode","utf8encode","ZipObject","_initialMetadata","asText","asNodeBuffer","asUint8Array","asArrayBuffer","decToHex","bytes","hex","prepareFileAttrs","fileAdd","parent","parentFolder","folderAdd","path","lastSlash","generateCompressedObjectFrom","generateZipParts","compressedObject","utfEncodedFileName","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","dosTime","dosDate","extraFields","unicodePathExtraField","unicodeCommentExtraField","getHours","getMinutes","getSeconds","getFullYear","getMonth","getDate","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","search","filename","relativePath","fileClone","regexp","folder","newFolder","ret","remove","kids","generate","zipData","localDirLength","centralDirLength","writer","compressionName","zipPart","dirEnd","CENTRAL_DIRECTORY_END","typeName","append","finalize","string","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","DATA_DESCRIPTOR","StringReader","arraybuffer","ArrayBuffer","uint8array","blob","Builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","builder","getBlob","sig0","sig1","sig2","sig3","subarray","_utf8len","string2buf","m_pos","str_len","buf_len","utf8border","pos","buf2string","c_len","utf16buf","applyFromCharCode","nextBoundary","stringToArrayLike","arrayLikeToString","canUseApply","resultStr","arrayLikeToArrayLike","arrayFrom","arrayTo","byteLength","inputType","supported","res","method","ZipEntry","jszipProto","loadOptions","checkSignature","expectedSignature","reader","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","versionMadeBy","versionNeeded","zip64ExtensibleData","extraDataSize","extraFieldId","extraFieldLength","extraFieldValue","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","isEncrypted","bitFlag","useUTF8","prepareCompressedContent","previousIndex","compressedFileData","prepareContent","uncompressedFileData","localExtraFieldsLength","fileNameLength","checkCRC32","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","extraReader","upath","findExtraFieldUnicodePath","ucomment","findExtraFieldUnicodeComment","upathField","ucommentField","deflate","inflate","constants","zlib_deflate","msg","zstream","Z_NO_FLUSH","Z_FINISH","Z_OK","Z_STREAM_END","Z_DEFAULT_COMPRESSION","Z_DEFAULT_STRATEGY","Z_DEFLATED","Deflate","windowBits","memLevel","strategy","opt","raw","gzip","ended","chunks","strm","avail_out","deflateInit2","deflateSetHeader","_mode","next_in","avail_in","Buf8","next_out","onEnd","onData","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","deflator","zlib_inflate","gzheader","Inflate","inflateInit2","inflateGetHeader","next_out_utf8","tail","utf8str","binstring2buf","arraySet","inflateEnd","inflator","ungzip","TYPED_OK","Int32Array","sources","fnTyped","dest","src_offs","dest_offs","fnUntyped","setTyped","Buf16","Buf32","STR_APPLY_OK","STR_APPLY_UIA_OK","__","adler32","adler","s1","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_BINARY","Z_TEXT","Z_UNKNOWN","makeTable","crcTable","end","trees","MAX_MEM_LEVEL","MAX_WBITS","DEF_MEM_LEVEL","LENGTH_CODES","LITERALS","L_CODES","D_CODES","BL_CODES","HEAP_SIZE","MAX_BITS","MIN_MATCH","MAX_MATCH","MIN_LOOKAHEAD","PRESET_DICT","INIT_STATE","EXTRA_STATE","NAME_STATE","COMMENT_STATE","HCRC_STATE","BUSY_STATE","FINISH_STATE","BS_NEED_MORE","BS_BLOCK_DONE","BS_FINISH_STARTED","BS_FINISH_DONE","OS_CODE","errorCode","zero","flush_pending","state","pending","pending_buf","pending_out","total_out","flush_block_only","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","best_len","prev_length","nice_match","limit","w_size","_win","wmask","w_mask","prev","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","more","window_size","hash_size","head","insert","ins_h","hash_shift","hash_mask","deflate_stored","flush","max_block_size","pending_buf_size","max_start","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","last_lit","deflate_slow","max_insert","prev_match","match_available","deflate_rle","deflate_huff","Config","good_length","max_lazy","nice_length","max_chain","func","configuration_table","lm_init","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","matches","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","deflateReset","deflateInit","old_flush","beg","hcrc","extra","os","level_flags","bstate","_tr_align","_tr_stored_block","deflateInfo","GZheader","xflags","extra_len","done","BAD","TYPE","inflate_fast","_in","_out","dmax","wsize","whave","wnext","hold","bits","lcode","dcode","lmask","dmask","here","op","dist","from_source","lencode","distcode","lenbits","distbits","dolen","dodist","sane","inflate_table","CODES","LENS","DISTS","Z_MEM_ERROR","HEAD","FLAGS","TIME","OS","EXLEN","EXTRA","NAME","COMMENT","HCRC","DICTID","DICT","TYPEDO","STORED","COPY_","COPY","TABLE","LENLENS","CODELENS","LEN_","LEN","LENEXT","DIST","DISTEXT","MATCH","LIT","CHECK","LENGTH","DONE","MEM","SYNC","ENOUGH_LENS","ENOUGH_DISTS","DEF_WBITS","ZSWAP32","InflateState","havedict","flags","check","total","wbits","ncode","nlen","ndist","have","next","lens","lendyn","distdyn","back","was","inflateResetKeep","inflateReset","inflateReset2","inflateInit","virgin","lenfix","distfix","fixedtables","sym","updatewindow","put","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","opts","order","inf_leave","inflateInfo","MAXBITS","lbase","lext","dbase","dext","lens_index","codes","table_index","curr","drop","used","huff","incr","low","mask","base_index","offs","extra_index","STORED_BLOCK","STATIC_TREES","DYN_TREES","Buf_size","MAX_BL_BITS","END_BLOCK","REP_3_6","REPZ_3_10","REPZ_11_138","extra_lbits","extra_dbits","extra_blbits","bl_order","DIST_CODE_LEN","static_ltree","static_dtree","_dist_code","_length_code","base_length","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","static_l_desc","static_d_desc","static_bl_desc","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","send_bits","send_code","tree","bi_reverse","bi_flush","gen_bitlen","desc","stree","xbits","overflow","gen_codes","next_code","tr_static_init","init_block","bi_windup","copy_block","smaller","_n2","_m2","pqdownheap","compress_block","ltree","dtree","lc","lx","build_tree","node","scan_tree","prevlen","curlen","nextlen","max_count","min_count","send_tree","build_bl_tree","max_blindex","send_all_trees","lcodes","dcodes","blcodes","detect_data_type","black_mask","static_init_done","stored_len","opt_lenb","static_lenb","ZStream","make_xlsx_lib","XLSX","current_codepage","current_ansi","require$$0","VALID_ANSI","CS2CP","set_ansi","reset_ansi","set_cp","reset_cp","char_codes","utf16leread","utf16beread","debom","_getchar","_gc1","_getansi","_ga1","_gc2","_ga2","Base64","make_b64","b64_decode","versions","new_raw_buf","new_unsafe_buf","s2a","s2ab","view","a2s","a2u","ab2a","bconcat","bufs","chr0","SSF","make_ssf","_strrev","pad0","pad_","rpad_","pad0r1","pad0r2","p2_32","pad0r","isgeneral","days","months","init_table","table_fmt","default_map","defi","default_str","frac","mixed","sgn","P_2","P_1","P","Q_2","Q_1","Q","parse_date_code","b2","dow","dout","H","date1904","setDate","getDay","fix_hijri","basedate","dnthresh","getTime","base1904","datenum_local","epoch","getTimezoneOffset","general_fmt_int","_general_int","general_fmt_num","make_general_fmt_num","trailing_zeroes_and_decimal","strip_decimal","mantissa_zeroes_and_decimal","exp_with_single_digit","normalize_exp","small_exp","toFixed","large_exp","general_fmt_num_base","LOG10E","_general_num","general_fmt","_general","write_date","fmt","ss0","ss","outl","outstr","commaify","write_num","make_write_num","pct1","write_num_pct","sfmt","write_num_cm","write_num_exp","period","fakee","$$","$1","$2","$3","frac1","write_num_f1","aval","rr","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","cc","rnd","dd","_frac","carry","flr","write_num_flt","ffmt","ri","ff","oa","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","split_fmt","in_str","_split","abstime","fmt_is_date","is_date","eval_fmt","flen","lst","dt","hr","ssm","nstr","vv","myv","ostr","decpt","lasti","retval","_eval","cfregex","cfregex2","chkcond","thresh","choose_fmt","lat","dateNF","load_entry","_table","get_table","load_table","tbl","XLMLFormatMap","SSFImplicit","dateNFregex","dateNF_regex","dateNF_fix","datestr","timestr","DO_NOT_EXPORT_CFB","CRC32","signed_crc_table","crc32_bstr","bstr","seed","crc32_buf","crc32_buf_8","crc32_str","CFB","_CFB","namecmp","Z","dirname","write_dos_date","hms","write_shift","ymd","parse_dos_date","read_shift","setMilliseconds","setFullYear","setMonth","setHours","setMinutes","setSeconds","parse_extra_field","prep_blob","sz","tgt","mtime","atime","ctime","mt","fs","get_fs","require$$1","parse_zip","mver","ssz","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","fat_addrs","mv","check_get_mver","check_shifts","dir_cnt","chk","sectors","sectorify","sleuth_fat","sector_list","make_sector_list","ENDOFCHAIN","Paths","FileIndex","FullPaths","read_directory","build_full_paths","HEADER_SIGNATURE","nsectors","FI","FP","pl","dad","get_mfat_entry","payload","mini","MSSZ","__readInt32LE","new_buf","cnt","sector","get_sector_list","chkd","buf_chain","addr","nodes","__toBuffer","sl","minifat_store","namelen","__utf16le","clsid","ct","read_date","storage","__readUInt32LE","read_file","readFileSync","init_cfb","cfb","CLSID","seed_cfb","nm","find","rebuild_cfb","gc","_file","HEADER_CLSID","elt","_write","_opts","fileType","write_zip","mini_size","fat_size","mini_cnt","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","_nm","UCFullPaths","UCPaths","UCPath","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","write_file","writeFileSync","write","_zlib","use_zlib","zlib","InflateRaw","InflRaw","_processChunk","_finishFlushFlag","bytesRead","_inflateRawSync","usz","_inflate","_deflateRawSync","deflateRawSync","_deflate","CLEN_ORDER","LEN_LN","DST_LN","bit_swap_8","use_typed_arrays","bitswap8","bit_swap_n","rev","read_bits_2","bl","read_bits_3","read_bits_4","read_bits_5","read_bits_7","read_bits_n","realloc","zero_fill_array","_deflateRaw","boff","off","clens","cmap","MAX","maxlen","ccode","ctree","cleni","fix_lmap","fix_dmap","dlens","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","hcodes","h1","h2","outbuf","woff","OL","max_len_1","max_len_2","len_eb","dst_eb","warn_or_throw","wrn","fcnt","start_cd","csz","efsz","fcsz","EF","parse_local_file","meth","_csz","_usz","ef","_crc32","cfb_add","unsafe","cdirs","fp","fi","crcs","sz_cd","namebuf","cfb_new","fpath","cfb_gc","cfb_del","cfb_mov","old_name","new_name","writeFile","ReadShift","CheckField","_inflateRaw","_fs","blobify","write_dl","fname","utf8write","IE_SaveFile","navigator","msSaveBlob","saveAs","createElement","url","chrome","downloads","revokeObjectURL","href","body","appendChild","click","removeChild","Folder","close","read_binary","infile","o2","evert_key","K","evert","evert_num","evert_arr","datenum","refdate","refoffset","numdate","setTime","parse_isodur","sec","good_pd_date","good_pd","parseDate","fixdate","cc2str","dup","fuzzynum","wt","fuzzydate","getYear","safe_split_regex","split_regex","def","getdatastr","getdatabin","getdata","safegetzipfile","getzipfile","getzipdata","safe","getzipstr","zipentries","zip_add_file","jszip","require$$2","zip_new","zip_read","resolve_path","XML_HEADER","attregexg","tagregex","nsregex","nsregex2","parsexmltag","tag","skip_root","skip_LC","quot","strip_ns","encodings","rencoding","unescapexml","encregex","coderegex","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","escapexlml","xlml_fixstr","entregex","entrepl","xlml_unfixstr","parsexmlbool","utf8read","utf8reada","orig","utf8readb","corpus","utf8readc","matchtag","mtcache","htmldecode","entities","vtregex","vt_cache","vt_regex","vtvregex","vtmregex","parseVector","baseType","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","write_vt","xlsx","XMLNS","XLMLNS","read_double_le","Infinity","write_double_le","bs","av","___toBuffer","__readUInt16LE","___utf16le","__hexlify","___hexlify","__utf8","__readUInt8","___utf8","__lpstr","___lpstr","__cpstr","___cpstr","__lpwstr","___lpwstr","__lpp4","___lpp4","lpp4_","__8lpp4","___8lpp4","__double","___double","is_buf","is_buf_a","lpstr_b","readUInt32LE","cpstr_b","lpwstr_b","lpp4_b","lpp4_8b","utf8_b","double_","readDoubleLE","is_buf_b","__readInt16LE","__readInt32BE","oI","oR","oo","loc","__writeUInt32LE","__writeInt32LE","__writeUInt16LE","WriteShift","cppayload","hexstr","fld","parsenoop","recordhopper","cb","tmpbyte","cntbyte","RT","XLSBRecordEnum","buf_array","blksz","newblk","ba_newblk","curbuf","endbuf","ba_endbuf","ba_next","ba_end","ba_push","_bufs","write_record","ba","XLSBRE","shift_cell_xls","cell","cRel","rRel","biff","shift_range_xls","encode_cell_xls","encode_cell","fix_col","fix_row","encode_range_xls","encode_col","encode_row","OFFCRYPTO","make_offcrypto","_crypto","crypto","require$$3","rc4","md5","createHash","update","digest","decode_row","rowstr","unfix_row","cstr","decode_col","colstr","unfix_col","split_cell","decode_cell","decode_range","encode_range","ce","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","sheet_to_workbook","sheet","sheets","SheetNames","Sheets","sheet_add_aoa","_ws","dense","ws","_R","_C","_origin","_range","__R","__C","sheetStubs","cellDates","cell_ref","aoa_to_sheet","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","write_StrRun","run","parse_RichStr","rgsStrRun","dwSizeStrRun","write_RichStr","parse_BrtCommentText","write_BrtCommentText","parse_XLSBCell","iStyleRef","write_XLSBCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","write_RkNumber","d100","parse_RfX","write_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","parse_BrtColor","xColorType","nTS","bR","bG","bB","auto","icv","XLSIcv","rgb","rgb2Hex","theme","tint","write_BrtColor","parse_FontFlags","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","write_FontFlags","font","grbit","italic","strike","outline","shadow","condense","parse_ClipboardFormatOrString","ClipFmt","parse_ClipboardFormatOrAnsiString","parse_ClipboardFormatOrUnicodeString","VT_I2","VT_I4","VT_BOOL","VT_VARIANT","VT_UI4","VT_LPSTR","VT_FILETIME","VT_BLOB","VT_CF","VT_VECTOR","VT_STRING","VT_USTR","VT_CUSTOM","DocSummaryPIDDSI","SummaryPIDSI","SpecialProperties","DocSummaryRE","SummaryRE","CountryEnum","XLSFillPattern","rgbify","_XLSIcv","BErr","RBErr","ct2type","CT_LIST","workbooks","xlsm","xlsb","xlam","xltx","strs","charts","dialogs","macros","styles","type2ct","CT","new_ct","rels","links","coreprops","extprops","custprops","themes","calcchains","vba","drawings","TODO","xmlns","parse_ct","ctext","Extension","ContentType","PartName","calcchain","sst","CTYPE_XML_ROOT","xsd","xsi","CTYPE_DEFAULTS","write_ct","f1","bookType","f2","f3","RELS","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","CXML","CXMLP","VBA","get_rels_path","parse_rels","currentFilePath","hash","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","RELS_EXTERN","add_rels","rId","relobj","targetmode","CT_ODS","parse_manifest","xlml_normalize","Rn","FEtag","xlmlregex","write_manifest","manifest","write_rdf_type","write_rdf_has","write_rdf","rdf","write_meta_ods","wmo","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","cur","CORE_PROPS_XML_ROOT","dcterms","dcmitype","cp_doit","write_core_props","Props","CreatedDate","ModifiedDate","EXT_PROPS","PseudoPropsPairs","load_props_pairs","HP","TOP","props","hp","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","parse_ext_props","xml","HeadingPairs","TitlesOfParts","EXT_PROPS_XML_ROOT","vt","write_ext_props","W","Application","CUST_PROPS","custregex","parse_cust_props","toks","CUST_PROPS_XML_ROOT","write_cust_props","pid","custprop","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","LastPrinted","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","evert_XLMLDPM","xlml_set_prop","xlml_write_docprops","xlml_write_custprops","Custprops","BLACKLIST","parse_FILETIME","dwLowDateTime","dwHighDateTime","write_FILETIME","parse_lpstr","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtUnalignedString","parse_VtVecUnalignedLpstrValue","parse_VtVecUnalignedLpstr","parse_VtHeadingPair","headingString","parse_TypedPropertyValue","headerParts","parse_VtVecHeadingPairValue","cElements","parse_VtVecHeadingPair","parse_dictionary","CodePage","dict","parse_BLOB","parse_ClipboardData","Size","write_TypedPropertyValue","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","fail","piddsi","oldpos","parsebool","XLSPSSkip","guess_property_type","write_PropertySet","RE","hdr","piao","pio","unshift","pinfo","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","SystemIdentifier","PSet0","rval","FMTID","PSet1","write_PropertySetStream","entries2","clsid2","ps0","ps1","parsenoop2","writezeroes","parslurp","writebool","parseuint16","writeuint16","parseuint16a","parse_Bes","write_Bes","parse_ShortXLUnicodeString","cch","fHighByte","parse_XLUnicodeRichExtendedString","fExtSt","fRichSt","cRun","cbExtRst","write_XLUnicodeRichExtendedString","xlstr","otext","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","write_XLUnicodeString","parse_ControlInfo","accel","parse_URLMoniker","parse_FileMoniker","ansiPath","unicodePath","parse_HyperlinkMoniker","parse_HyperlinkString","parse_Hyperlink","sVer","displayName","targetFrameName","moniker","oleMoniker","Loc","guid","fileTime","Tooltip","write_Hyperlink","hl","parse_LongRGBA","parse_LongRGB","parse_XLSCell","rw","ixfe","write_XLSCell","parse_frtHeader","rt","parse_OptXLUnicodeString","parse_XTI","iSupBook","itabFirst","itabLast","parse_RkRec","parse_AddinUdf","udfName","parse_Ref8U","rwFirst","rwLast","colFirst","colLast","write_Ref8U","parse_RefU","parse_Ref","parse_FtCmo","ot","parse_FtNts","fSharedNote","parse_FtCf","cf","parse_FtSkip","FtTab","parse_FtArray","fts","ft","parse_BOF","BIFFVer","write_BOF","wb","parse_InterfaceHdr","parse_WriteAccess","UserName","write_WriteAccess","b8","parse_WsBool","fDialog","parse_BoundSheet8","hidden","hs","write_BoundSheet8","parse_SST","ucnt","Count","Unique","write_SST","parse_ExtSST","extsst","dsst","parse_Row","miyRw","hpt","parse_ForceFullCalculation","fullcalc","parse_RecalcId","parse_DefaultRowHeight","fl","Unsynced","DyZero","ExAsc","ExDsc","parse_Window1","xWn","yWn","dxWn","dyWn","iTabCur","iTabFirst","ctabSel","wTabRatio","Pos","Dim","Flags","CurTab","FirstTab","Selected","TabRatio","write_Window1","parse_Window2","RTL","write_Window2","parse_Pane","parse_Font","dyHeight","write_Font","b5","parse_LabelSst","isst","write_LabelSst","parse_Label","write_Label","parse_Format","fmtstr","write_Format","parse_BIFF2Format","parse_Dimensions","write_Dimensions","parse_RK","rkrec","rknum","parse_MulRk","rkrecs","lastcol","parse_MulBlank","ixfes","parse_CellStyleXF","patternType","cellStyles","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","icvFore","icvBack","fsxButton","parse_XF","fStyle","write_XF","ixfeP","parse_Guts","write_Guts","guts","parse_BoolErr","write_BoolErr","parse_Number","xnum","write_Number","parse_XLHeaderFooter","parse_SupBook","ctab","sbcch","virtPath","rgst","parse_ExternName","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","Name","XLSLblBuiltIn","parse_Lbl","chKey","cce","itab","npflen","rgce","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_NameCmt","cchName","cchComment","parse_ShrFmla","ref","cUse","parse_SharedParsedFormula","parse_Array","parse_ArrayParsedFormula","parse_MTRSettings","fMTREnabled","fUserSetThreadCount","cUserThreadCount","parse_NoteSh","idObj","stAuthor","parse_Note","parse_MergeCells","merges","cmcs","write_MergeCells","parse_Obj","parse_BIFF5Obj","cmo","parse_BIFF5OT","parse_TxO","texts","lastobj","controlInfo","cchText","parse_HLink","hlink","write_HLink","parse_HLinkTooltip","wzTooltip","write_HLinkTooltip","TT","parse_Country","write_Country","parse_ClrtClient","ccv","parse_Palette","parse_XFCRC","cxfs","parse_ColInfo","coldx","parse_Setup","footer","parse_ShtProps","area","write_RRTabId","parse_Blank","parse_Scl","parse_String","parse_ImData","env","lcb","parse_BIFF2STR","parse_BIFF2NUM","write_BIFF2NUM","write_BIFF2Cell","parse_BIFF2INT","write_BIFF2INT","parse_BIFF2STRING","parse_BIFF2FONTXTRA","parse_RString","DBF","dbf_codepage_map","dbf_reverse_map","DBF_SUPPORTED_VERSIONS","dbf_to_aoa","memo","vfp","l7","nrow","fpos","rlen","current_cp","field","hend","sheetRows","dbf_to_sheet","dbf_to_workbook","_RLEN","sheet_to_dbf","codepage","aoa","sheet_to_json","headers","hcnt","coltypes","guess","_guess","hf","_f","hb","rout","_s","to_workbook","to_sheet","from_sheet","SYLK","sylk_escapes","AA","BA","CA","DA","HA","JA","AE","BE","CE","HE","AI","BI","CI","HI","AO","BO","CO","DO","HO","AU","BU","CU","HU","Aa","Ba","Ca","Da","Ha","Ja","Ae","Be","Ce","He","Ai","Bi","Ci","Hi","Ao","Bo","Co","Do","Ho","Au","Bu","Cu","Hu","KC","Kc","DN","Dn","Hy","sylk_char_regex","sylk_char_fn","decode_sylk_char","newcc","sylk_to_aoa","sylk_to_aoa_str","records","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","record","C_seen_K","C_seen_X","formula","rc_to_a1","F_seen","wch","process_col","hpx","pt2px","sylk_to_sheet","aoasht","sylk_to_workbook","write_ws_cell_sylk","a1_to_rc","write_ws_cols_sylk","rec","wpx","width2px","px2char","write_ws_rows_sylk","px2pt","sheet_to_sylk","preamble","RS","coord","DIF","dif_to_aoa","dif_to_aoa_str","metadata","dif_to_sheet","dif_to_workbook","sheet_to_dif","push_field","pf","topic","push_value","po","ETH","eth_to_aoa","eth_to_sheet","eth_to_workbook","sep","sheet_to_eth_data","sheet_to_eth","PRN","set_text_arr","prn_to_aoa_str","guess_seps","guess_sep_weights","guess_sep","instr","dsv_to_sheet_str","sepcc","_re","finish_cell","fuzzyfmla","cellText","cellNF","prn_to_sheet_str","prn_to_sheet","firstbyte","prn_to_workbook","sheet_to_prn","read_wb_ID","OLD_WTF","WK_","lotushopper","Enum","WK1Enum","lotus_to_workbook","lotus_to_workbook_buf","sidx","snames","refguess","WK3Enum","qpro","vers","parse_RANGE","parse_cell","parse_LABEL","parse_INTEGER","parse_NUMBER","parse_FORMULA","parse_cell_3","parse_LABEL_16","parse_NUMBER_18","parse_NUMBER_17","v1","v2","parse_FORMULA_19","parse_NUMBER_25","parse_NUMBER_27","parse_FORMULA_28","parse_rpr","rpr","pass","uval","family","valign","parse_rs","tregex","rpregex","parse_r","rregex","rend","rs","rs_to_html","parse_rs_factory","nlregex","parse_rpr2","intro","outro","align","r_to_html","sitregex","sirregex","sirphregex","parse_si","html","cellHTML","sstr0","sstr1","sstr2","parse_sst_xml","uniqueCount","SST","straywsregex","write_sst_xml","bookSST","sitag","parse_BrtBeginSst","parse_sst_bin","hopper_sst","R_n","write_BrtBeginSst","write_BrtSSTItem","write_sst_bin","_JS2ANSI","parse_CRYPTOVersion","Major","Minor","parse_DataSpaceVersionInfo","parse_DataSpaceMapEntry","comps","parse_DataSpaceMap","parse_DataSpaceDefinition","parse_TransformInfoHeader","parse_Primary","ename","cmode","parse_EncryptionHeader","AlgID","valid","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncryptionInfo","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","verifier","KeyData","xml_agile","encryptedHmacKey","encryptedHmacValue","encs","uri","parse_RC4CryptoHeader","EncryptionVersionInfo","EncryptionHeader","EncryptionVerifier","parse_RC4Header","EncryptedVerifier","EncryptedVerifierHash","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordDecoded","PasswordByte","Intermediate1","Intermediate2","Intermediate3","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","Ror","Byte","XorRor","byte1","byte2","CreateXorKey_Method1","XorKey","CurrentElement","Char","password","Index","ObfuscationArray","Temp","PasswordLastChar","PadIndex","crypto_DecryptData_Method1","Data","XorArrayIndex","XorArray","Value","crypto_MakeXorDecryptor","parse_XORObfuscation","verificationBytes","insitu","parse_FilePassHeader","Info","parse_FilePass","RTF","rtf_to_sheet","rtf_to_sheet_str","rtf_to_workbook","sheet_to_rtf","hex2RGB","rgb2HSL","G","H6","L2","hsl2RGB","hsl","h6","rgb_tint","DEF_MDW","MAX_MDW","MIN_MDW","MDW","px","char2width","chr","cycle_width","collw","find_mdw_colw","_MDW","coll","customWidth","DEF_PPI","PPI","pt","XLMLPatternTypeMap","parse_borders","Borders","border","diagonalUp","diagonalDown","parse_fills","Fills","bgColor","indexed","fgColor","parse_fonts","Fonts","bold","underline","vertAlign","scheme","themeElements","clrScheme","parse_numFmts","NumberFmt","formatCode","write_numFmts","NF","cellXF_uint","cellXF_bool","parse_cellXfs","CellXf","xf","alignment","vertical","horizontal","textRotation","wrapText","write_cellXfs","cellXfs","parse_sty_xml","make_pstyx","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","STYLES_XML_ROOT","STY","write_sty_xml","parse_BrtFmt","stFmtCode","write_BrtFmt","parse_BrtFont","bls","bCharSet","charset","write_BrtFont","sss","XLSBFillPTNames","rev_XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","parse_BrtXF","ixfeParent","ifmt","write_BrtXF","flow","write_Blxf","parse_BrtBorder","write_BrtBorder","write_BrtStyle","xfId","builtinId","write_BrtBeginTableStyles","defTableStyle","defPivotStyle","parse_sty_bin","hopper_sty","write_FMTS_bin","write_FONTS_bin","write_FILLS_bin","write_BORDERS_bin","write_CELLSTYLEXFS_bin","fontId","fillId","borderId","write_CELLXFS_bin","write_STYLES_bin","write_DXFS_bin","write_TABLESTYLES_bin","write_sty_bin","THEME","XLSXThemeClrScheme","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","parse_themeElements","themeltregex","parse_theme_xml","write_theme","Themes","themeXLSX","parse_Theme","dwThemeVersion","themeXML","parse_ColorTheme","parse_FullColorExt","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_XFExtGradient","parse_ExtProp","extType","parse_XFExt","cexts","ext","update_xfext","xfext","xfe","parse_cc_xml","parse_BrtCalcChainItem$","parse_cc_bin","hopper_cc","parse_xlink_xml","parse_xlink_bin","xlink_parse","IMG","DRAW","parse_drawing","_shapeid","write_comments_vml","csize","bbox","joinstyle","gradientshapeok","coordsize","fillopts","angle","fillparm","fillxml","shadata","fillcolor","strokecolor","CMNT","sheet_insert_comments","encoded","author","parse_comments_xml","authors","commentList","authtag","cmnttag","cm","authorId","textMatch","CMNT_XML_ROOT","write_comments_xml","iauthor","parse_BrtBeginComment","rfx","write_BrtBeginComment","parse_BrtCommentAuthor","write_BrtCommentAuthor","parse_comments_bin","hopper_cmnt","write_comments_bin","CT_VBA","make_vba_xls","newcfb","newpath","fill_vba_xls","VBAFMTS","DS","MS","parse_ds_bin","parse_ds_xml","parse_ms_bin","parse_ms_xml","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","shift_formula_str","shift_formula_xlsx","_xlfn","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceAreaRel","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_RgceLocRel","parse_RgceLocRel_BIFF2","cl","rl","parse_PtgArea","parse_PtgArea3d","ixti","parse_PtgAreaErr","parse_PtgAreaErr3d","parse_PtgAreaN","parse_PtgArray","parse_PtgAttrBaxcel","bitSemi","bitBaxcel","parse_PtgAttrChoose","parse_PtgAttrGoto","bitGoto","parse_PtgAttrIf","bitIf","parse_PtgAttrIfError","parse_PtgAttrSemi","parse_PtgAttrSpaceType","parse_PtgAttrSpace","parse_PtgAttrSpaceSemi","parse_PtgRef","parse_PtgRefN","parse_PtgRef3d","parse_PtgFunc","iftab","FtabArgc","Ftab","parse_PtgFuncVar","cparams","tab","parsetab","Cetab","parse_PtgAttrSum","parse_PtgExp","parse_PtgErr","parse_PtgInt","parse_PtgBool","parse_PtgNum","parse_PtgStr","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","parse_PtgName","nameindex","parse_PtgNameX","parse_PtgNameX_BIFF5","parse_PtgMemArea","parse_PtgMemFunc","parse_PtgRefErr","parse_PtgRefErr3d","parse_PtgMemErr","parse_PtgMemNoMem","parse_PtgTbl","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfCol","parse_PtgElfColS","parse_PtgElfColSV","parse_PtgElfColV","parse_PtgElfLel","parse_PtgElfRadical","parse_PtgElfRadicalLel","parse_PtgElfRadicalS","parse_PtgElfRw","parse_PtgElfRwV","PtgListRT","parse_PtgList","coltype","parse_PtgSxName","parse_PtgSheet","parse_PtgEndSheet","parse_PtgMemAreaN","parse_PtgMemNoMemN","parse_PtgAttrNoop","PtgTypes","PtgDupes","Ptg18","Ptg19","parse_RgbExtra","parse_Rgce","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","quoteCharacters","formula_quote_sheet_name","sname","get_ixti_raw","supbooks","XTI","SID","get_ixti","stringify_formula","nameidx","last_sp","fflen","argc","args","lbl","names","XLSXFutureFunctions","bookidx","externbook","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","PtgNonDisp","_left","rgcb","parse_XLSCellParsedFormula","parse_FormulaValue","write_FormulaValue","parse_Formula","cbf","shared","write_Formula","o1","o3","bf","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","ods_to_csf_formula","csf_to_ods_formula","ods_to_csf_3D","csf_to_ods_3D","_ssfopts","WS","browser_has_Map","Map","get_sst_id","has","revarr","col_obj_w","default_margins","margins","defs","get_cell_style","revssf","ssf","applyNumberFormat","safe_format","fmtid","fillid","raw_rgb","check_ws","parse_ws_xml_dim","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","sheetprregex","svsregex","parse_ws_xml","data1","data2","mtch","sheetPr","parse_ws_xml_sheetpr","ridx","svs","parse_ws_xml_sheetviews","parse_ws_xml_cols","parse_ws_xml_data","afilter","parse_ws_xml_autofilter","_merge","parse_ws_xml_hlinks","parse_ws_xml_margins","tmpref","write_ws_xml_merges","codeName","CodeName","write_ws_xml_sheetpr","needed","vbaraw","cname","Workbook","sheetprot_deffalse","sheetprot_deftrue","write_ws_xml_protection","Rel","tooltip","rng","margin","write_ws_xml_margins","seencol","coli","colm","colM","write_ws_xml_cols","write_ws_xml_autofilter","Names","Sheet","Ref","sviewregex","Views","rightToLeft","write_ws_xml_sheetviews","sview","workbookViewId","write_ws_xml_cell","oldt","oldv","Strings","revStrings","cellregex","rowregex","isregex","refregex","match_v","match_f","sdata","cells","cref","tagr","tagc","sstr","ftag","do_format","rowobj","rowrite","marr","marrlen","xlen","ht","outlineLevel","rslice","cellFormula","xlfn","___f","_tag","_r","write_ws_xml_data","params","height","_cell","customHeight","WS_XML_ROOT","write_ws_xml","rdata","_drawing","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","relc","ignoreEC","numberStoredAsText","sqref","parse_BrtRowHdr","write_BrtRowHdr","ncolspan","lcs","caddr","write_row_header","parse_BrtWsDim","write_BrtWsDim","parse_BrtWsFmtInfo","parse_BrtWsProp","write_BrtWsProp","parse_BrtCellBlank","write_BrtCellBlank","ncell","parse_BrtCellBool","fBool","write_BrtCellBool","parse_BrtCellError","bError","parse_BrtCellIsst","write_BrtCellIsst","parse_BrtCellReal","write_BrtCellReal","parse_BrtCellRk","write_BrtCellRk","parse_BrtCellSt","write_BrtCellSt","parse_BrtFmlaBool","parse_BrtFmlaError","parse_BrtFmlaNum","parse_BrtFmlaString","parse_BrtMergeCell","write_BrtMergeCell","write_BrtBeginMergeCells","parse_BrtHLink","relId","write_BrtHLink","locidx","parse_BrtPane","parse_BrtArrFmla","fAlwaysCalc","parse_BrtShrFmla","write_BrtColInfo","BrtMarginKeys","parse_BrtMargins","write_BrtMargins","parse_BrtBeginWsView","write_BrtBeginWsView","write_BrtCellIgnoreEC","write_BrtSheetProtection","parse_BrtDVal","parse_BrtDVal14","parse_ws_bin","ai","af","ws_parse","aii","_d","write_ws_bin_cell","write_CELLTABLE","cap","write_MERGECELLS","write_COLINFOS","write_IGNOREECS","write_HLINKS","write_LEGACYDRAWING","write_AUTOFILTER","write_WSVIEWS2","write_SHEETPROTECT","write_ws_bin","CHART","CHARTEX","parse_Cache","nf","parse_chart","csheet","nc","CS","CS_XML_ROOT","parse_cs_xml","parse_BrtCsProp","parse_cs_bin","cs_parse","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","push_defaults_array","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","safe1904","badchars","check_ws_name","_good","check_wb_names","N","cn","check_wb","wbnsregex","parse_wb_xml","dname","dnstart","xml_wb","Hidden","Comment","localSheetId","WB_XML_ROOT","write_wb_xml","write_names","workbookPr","sheetId","parse_BrtBundleSh","iTabID","strRelID","write_BrtBundleSh","parse_BrtWbProp","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","filterPrivacy","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","write_BrtWbProp","parse_BrtFRTArchID$","ArchID","parse_BrtName","Ptg","parse_wb_bin","hopper_wb","write_BUNDLESHS","viz","write_BrtFileVersion","write_BrtBookView","write_BOOKVIEWS","vistab","write_wb_bin","parse_wb","parse_ws","parse_cs","parse_ms","parse_ds","parse_sty","parse_theme","parse_sst","parse_cmnt","parse_cc","parse_xlink","write_wb","write_ws","write_sty","write_sst","write_cmnt","attregexg2","attregex2","xlml_parsexmltag","words","xlml_parsexmltagobj","xlml_format","xlml_set_custprop","oval","safe_format_xlml","process_style_xlml","stag","Interior","Pattern","ID","parse_xlml_data","csty","sid","StyleID","interiors","Parent","UTC","Formula","ArrayRange","xlml_clean_comment","parse_xlml_xml","opening","ishtml","HTML_","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","lastIndex","raw_Rn3","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","cmd","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","Range","parse_fods","Margin","pagemargins","Top","Left","Right","Bottom","bookSheets","bookProps","parse_xlml","fix_read_opts","write_props_xlml","write_wb_xlml","write_sty_xlml","write_name_xlml","write_names_xlml","write_ws_xlml_names","write_ws_xlml_wsopts","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_comment","write_ws_xlml_cell","mi","_v","write_ws_xlml_row","write_ws_xlml_table","write_ws_xlml","write_xlml","parse_compobj","AnsiUserType","AnsiClipboardFormat","Reserved1","UnicodeClipboardFormat","Reserved2","slurp","XLSRecordEnum","ll","safe_format_xf","make_cell","parse_workbook","Directory","last_formula","cur_sheet","Preamble","lastcell","last_cell","cmnt","rngC","rngR","temp_val","country","cell_valid","XFs","palette","get_rgb","getrgb","process_cell_style","pcs","xfd","addcell","file_depth","afi","rrtabid","lastuser","winlocked","wtf","defwidth","defheight","last_Rn","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","last_lbl","seen_codepage","RecordType","Date1904","WriteProtect","cpval","CalcRefMode","FullCalc","ExternCount","tmpri","fakebs8","_fr","_fc","_fe","_arraystart","_j","_ixfe","b4idx","b2idx","TxO","ImData","noteobj","Encryption","Metadata","Country","PSCLSID","SI","DSI","UDI","parse_xls_props","DocSummary","Summary","write_xls_props","DSEntries","SEntries","CEntries","Keys","CEntries2","parse_xlscfb","CompObj","WorkbookP","bookVBA","bookFiles","write_xlscfb","wbpath","write_biff_buf","XLSRE","write_biff_rec","write_biff_continue","write_BIFF2BERR","write_BIFF2LABEL","write_ws_biff2_cell","write_ws_biff2","write_biff2_buf","write_FONTS_biff8","write_FMTS_biff8","write_FEAT","write_CELLXFS_biff8","write_ws_biff8_hlinks","HL","write_ws_biff8_cell","write_ws_biff8","_WB","_sheet","MAX_ROWS","write_biff8_global","_sheets","_wb","blen","write_biff8_buf","fix_write_opts","html_to_sheet","mtch2","hd","midx","colspan","rowspan","_t","html_to_book","make_html_row","editable","make_html_preamble","_BEGIN","_END","sheet_to_html","_row","BEGIN","END","_preamble","sheet_add_dom","or_R","or_C","getElementsByTagName","is_dom_element_hidden","elts","hasAttribute","getAttribute","innerHTML","parse_dom_table","table_to_book","element","get_computed_style","get_get_computed_style_function","getPropertyValue","ownerDocument","defaultView","getComputedStyle","parse_content_xml","parse_text_p","fixed","number_formats","day","month","year","hours","minutes","seconds","era","quarter","pcx","NFtag","sheetag","rowtag","ctag","textp","textpidx","textptag","textR","row_ol","number_format_map","mrange","mR","mC","rowpeat","colpeat","atag","_Ref","creator","creatoridx","isstub","intable","rptR","rpt","nrange","ptp","parse_ods","ods","write_styles_ods","wso","write_content_ods","write_text_p","null_cell_xml","covered_cell_xml","_Fref","text_p","_tgt","write_automatic_styles_ods","wcx","fods","write_ods","write_sheet_index","write_obj_str","write_str","write_htm_str","write_csv_str","sheet_to_csv","write_slk_str","write_dif_str","write_prn_str","write_rtf_str","write_txt_str","sheet_to_txt","write_dbf_buf","write_eth_str","fix_opts_func","fix_opts","get_sheet_type","safe_parse_wbrels","wbrels","pwbr","safe_parse_sheet","relsPath","sheetRels","stype","dfile","drelsp","draw","chartp","crelsp","strip_front_slash","binname","link","propdata","pluck","deps","bookDeps","wbsheets","wbext","wbrelsi","wbrelsfile","nmode","wsloop","snjseen","snj","Deps","Styles","parse_xlsxcfb","dsm","seds","einfo","decrypt_agile","decrypt_std76","foo","vbafmt","_sn","wsrels","_type","need_vml","rId1","read_cfb","read_zip","read_plaintext","read_plaintext_raw","read_utf16","bstrify","read_prn","readSync","ab","vu","write_cfb_ctr","write_zip_type","oopts","encrypt_agile","write_cfb_type","write_string_type","bom","write_stxt_type","write_binary_type","writeSync","resolve_book_type","_BT","writeFileAsync","_cb","Function","make_json_row","defval","isempty","defineProperty","enumerable","__rowNum__","rawNumbers","outi","counter","CC","blankrows","qreg","make_csv_row","FS","txt","forceQuotes","endregex","skipHidden","strip","sheet_to_formulae","cmds","sheet_add_json","js","skipHeader","JS","sheet_get_cell","json_to_sheet","get_formulae","make_csv","make_json","make_formulae","table_to_sheet","sheet_to_row_object_array","add_consts","get_default","ws_get_cell_stub","RC","wb_sheet_idx","sh","book_new","book_append_sheet","book_set_sheet_visibility","vis","cell_set_number_format","cell_set_hyperlink","cell_set_internal_link","cell_add_comment","sheet_set_array_formula","rngstr","Readable","require$$4","write_csv_stream","BOM","_read","write_html_stream","write_json_stream","objectMode","to_json","to_html","to_csv","readFile","valueElseUndefined","valueElseUndefinedFloat","valueElseUndefinedInt","valueElseUndefinedStripUnit","getAdsDesMeta","adsDesSheet","C2","C3","C4","comment1","C5","comment2","C6","comment3","C7","comment4","C8","serialNumber","C9","C10","C12","D12","standardVolume","C13","standardVolumeUnit","D13","deadVolume","C14","deadVolumeUnit","D14","equilibriumTime","C15","equilibriumTimeUnit","D15","C16","apparatusT","C17","apparatusTUnit","D17","C18","D18","saturatedVaporPressure","H12","saturatedVaporPressureUnit","I12","adsorptionCrossSectionArea","H13","adsorptionCrossSectionAreaUnit","I13","adsorptionPoints","H17","desorptionPoints","H18","parseIsothermBlock","worksheet","pi","pe","pe2","p0","va","adresses","cellAddress","cellRef","parseAdsDesData","rangeAds","rangeDes","adsData","desData","adsorption","fromBelsorp","workbook","AdsDes"],"mappings":"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"}