{"version":3,"file":"nmr-parser.js","sources":["../node_modules/is-any-array/lib-esm/index.js","../src/constantTables.js","../src/formatDependentVariable.js","../src/formatLinearDimension.js","../node_modules/iobuffer/lib-esm/utf8.browser.js","../node_modules/iobuffer/lib-esm/IOBuffer.js","../node_modules/jeolconverter/src/conversionTables.js","../node_modules/jeolconverter/src/utils.js","../node_modules/jeolconverter/src/parseJEOL.js","../node_modules/nmr-processing/lib-esm/constants/gyromagneticRatio.js","../node_modules/ensure-string/lib-esm/index.js","../node_modules/ml-array-median/node_modules/is-any-array/src/index.js","../node_modules/median-quickselect/lib/median-quickselect.min.js","../node_modules/ml-array-median/lib-es6/index.js","../src/utils/toKeyValue.js","../src/fromJEOL.js","../node_modules/jszip/dist/jszip.min.js","../node_modules/brukerconverter/src/util/convertTo3DZ.js","../node_modules/brukerconverter/src/util/generateContourLines.js","../node_modules/brukerconverter/src/util/add2D.js","../node_modules/dynamic-typing/src/parseString.js","../node_modules/jcampconverter/lib-esm/complexChromatogram.js","../node_modules/jcampconverter/lib-esm/convertToFloatArray.js","../node_modules/jcampconverter/lib-esm/parse/fastParseXYData.js","../node_modules/jcampconverter/lib-esm/parse/parsePeakTable.js","../node_modules/jcampconverter/lib-esm/parse/parseXYA.js","../node_modules/jcampconverter/lib-esm/2d/convertTo3DZ.js","../node_modules/jcampconverter/lib-esm/2d/generateContourLines.js","../node_modules/jcampconverter/lib-esm/2d/add2D.js","../node_modules/jcampconverter/lib-esm/postProcessingNMR.js","../node_modules/jcampconverter/lib-esm/profiling.js","../node_modules/jcampconverter/lib-esm/simpleChromatogram.js","../node_modules/jcampconverter/lib-esm/postProcessing.js","../node_modules/jcampconverter/lib-esm/prepareNtuplesDatatable.js","../node_modules/jcampconverter/lib-esm/prepareSpectrum.js","../node_modules/jcampconverter/lib-esm/convert.js","../node_modules/brukerconverter/src/util/parseData.js","../node_modules/brukerconverter/src/util/ensureIOBuffer.js","../node_modules/brukerconverter/src/util/setFIDSpectrumData.js","../node_modules/brukerconverter/src/util/setXYSpectrumData.js","../node_modules/brukerconverter/src/util/convert1D.js","../node_modules/brukerconverter/src/util/mergeMetadata.js","../node_modules/brukerconverter/src/util/convert2D.js","../node_modules/brukerconverter/src/convertFolder.js","../node_modules/brukerconverter/src/util/extractSingleSpectrumZip.js","../node_modules/brukerconverter/src/convertZip.js","../src/utils/convertToFloatArray.js","../src/utils/getDigitalFilterParameters.js","../src/utils/getNucleusFromMetadata.js","../src/utils/getSpectrumType.js","../src/utils/getInfoFromJCAMP.js","../src/fromBruker.js","../src/fromJCAMP.js"],"sourcesContent":["const toString = Object.prototype.toString;\n/**\n * Checks if an object is an instance of an Array (array or typed array).\n *\n * @param {any} value - Object to check.\n * @returns {boolean} True if the object is an array.\n */\nexport function isAnyArray(value) {\n    return toString.call(value).endsWith('Array]');\n}\n//# sourceMappingURL=index.js.map","/**\n * a number that correspond to a type of numeric\n * @typedef {number} numericType\n * @const\n */\nexport const numericTypeTable = {\n  0: 'uint8',\n  1: 'uint16',\n  2: 'uint32',\n  3: 'uint64',\n  4: 'int8',\n  5: 'int16',\n  6: 'int32',\n  7: 'int64',\n  8: 'float32',\n  9: 'float64',\n  10: 'complex64',\n  11: 'complex128',\n};\n\n/**\n * a number that corresponds to a type of quantity\n * @typedef {number} quantityType\n * @const\n */\nexport const quantityTypeTable = {\n  0: 'scalar',\n  1: 'vector',\n  2: 'matrix',\n  3: 'symetricMatrix',\n  4: 'pixel',\n};\n","import { isAnyArray } from 'is-any-array';\n\nimport { numericTypeTable, quantityTypeTable } from './constantTables';\n/**\n * a class for dependent variable\n * @param {object || array} data - the dependent variable\n * @param {numericType} numericType - a number that correspond to a type of numeric used to store the components\n * @param {object} [options] - an object with options (name, unit, quantityName, componentLabels, sparseSampling, application, description)\n * @param {string} [options.name] - a name of the dependent variable\n * @param {string} [options.unit] - the unit of the dependent variable\n * @param {string} [options.quantityName] - a name of the quantity\n * @param {array} [options.componentLabels] - an array of labels for each component of the dependent variable\n * @return {object} - an dependent variable\n */\nexport function formatDependentVariable(data, numericType, options = {}) {\n  let {\n    quantityType = 0,\n    encoding = 'none',\n    name = '',\n    unit = '',\n    quantityName = '',\n    componentLabels = [],\n    sparseSampling = {},\n    from = 0,\n    to = -1,\n  } = options;\n\n  let components;\n  if (isAnyArray(data)) {\n    throw new Error('not yet implemented');\n  } else if (Object.keys(data).length === 2) {\n    components = fromReIm(data, from, to);\n  }\n\n  if (componentLabels.length === 0) {\n    componentLabels = components.componentLabels;\n  }\n\n  return {\n    type: 'internal',\n    quantityType: quantityTypeTable[quantityType],\n    numericType: numericTypeTable[numericType],\n    encoding,\n    name,\n    unit,\n    quantityName,\n    componentLabels,\n    sparseSampling,\n    description: options.description || '',\n    application: options.application || '',\n    components: components.components,\n    dataLength: components.dataLength,\n  };\n}\n\n/**\n * import object {re:[], im:[]} to component\n * @param {object} reIm - a reIm object to import\n * @param {number} from - lower limit\n * @param {number} to - upper limit\n * @return {array} - components\n */\nfunction fromReIm(reIm, from, to) {\n  let dataLength = [];\n  let componentLabels = [];\n  let components = [];\n  if (isAnyArray(reIm.re) & isAnyArray(reIm.im)) {\n    if (typeof reIm.re[0] === 'number') {\n      // if 1D\n      dataLength[0] = setLengthComplex(from[0], to[0], reIm.re.length);\n      let component = new Float64Array(dataLength[0]);\n      for (let i = 0; i < dataLength[0]; i += 2) {\n        let idx = i + from[0] * 2;\n        component[i] = reIm.re[idx / 2];\n        component[i + 1] = reIm.im[idx / 2];\n      }\n      components.push(component);\n      componentLabels.push('complex');\n    } else if (isAnyArray(reIm.re[0])) {\n      // if 2D\n      dataLength[0] = setLength(from[1], to[1], reIm.re.length);\n      dataLength[1] = setLengthComplex(from[0], to[0], reIm.re[0].length);\n\n      for (let j = 0; j < dataLength[0]; j++) {\n        let component = new Float64Array(dataLength[1]);\n        for (let i = 0; i < dataLength[1]; i += 2) {\n          let idx = i + from[0] * 2;\n          component[i] = reIm.re[j][idx / 2];\n          component[i + 1] = reIm.im[j][idx / 2];\n        }\n        components.push(component);\n      }\n    } else {\n      throw new Error('check your object');\n    }\n  } else if (isAnyArray(reIm.re.re)) {\n    dataLength[0] = reIm.re.re.length * 2;\n    let re = fromReIm(reIm.re, from, to).components;\n    let im = fromReIm(reIm.im, from, to).components;\n    for (let j = 0; j < dataLength[0] / 2; j++) {\n      components.push(re[j]);\n      components.push(im[j]);\n    }\n  } else {\n    throw new Error('check the dimension or the type of data in your array');\n  }\n\n  return {\n    dataLength,\n    componentLabels,\n    components,\n  };\n}\n\nfunction setLength(from, to, length) {\n  if (to - from + 1 < length) {\n    return to - from + 1;\n  } else {\n    return length;\n  }\n}\n\nfunction setLengthComplex(from, to, length) {\n  if (to - from + 1 < length) {\n    return (to - from + 1) * 2;\n  } else {\n    return length * 2;\n  }\n}\n\n// /**\n//  * add component to components from 1D array.\n//  * @param {array} array - a 1D or 2D array to import\n//  * @return {Float64Array} - component\n//  */\n// function add1DArray(array) {\n//   let component;\n//   component = new Float64Array(array.length);\n//   for (let i = 0; i < array.length; i++) {\n//     component[i] = array[i];\n//   }\n//   return component;\n// }\n\n// /**\n//  * import component to InternalDEPENDENTVAR class object from 1D or 2D array.\n//  * @param {array} array - a 1D or 2D array to import\n//  */\n// function fromArray(array) {\n//   this.dataLength[0] = array.length;\n//   if (typeof array[0] === 'number') {\n//     this.components = [this.add1DArray(array)];\n//   } else if (Array.isArray(array[0])) {\n//     this.dataLength[1] = array[0].length;\n//     for (let j = 0; j < this.dataLength[1]; j++) {\n//       this.components.push(this.add1DArray(array[j]));\n//     }\n//   } else {\n//     throw new Error('check the dimension or the type of data in your array');\n//   }\n//   return this;\n// }\n","/**\n *\n * @param {*} label\n * @param {*} count\n * @param {*} increment\n * @param {*} options\n */\nexport function formatLinearDimension(label, count, increment, options = {}) {\n  return {\n    label: String(label),\n    count: Number(count),\n    increment: increment,\n    type: 'linear',\n    description: String(options.description) || '',\n    application: options.application || {},\n    coordinatesOffset: options.coordinatesOffset || 0,\n    originOffset: options.originOffset || 0,\n    quantityName: String(options.quantityName) || '',\n    reciprocal: options.reciprocal || {},\n    period: options.period || 0,\n    complexFFT: options.complexFFT || false,\n  };\n}\n","// eslint-disable-next-line import/no-unassigned-import\nimport './text-encoding-polyfill';\nconst decoder = new TextDecoder('utf-8');\nexport function decode(bytes) {\n    return decoder.decode(bytes);\n}\nconst encoder = new TextEncoder();\nexport function encode(str) {\n    return encoder.encode(str);\n}\n//# sourceMappingURL=utf8.browser.js.map","import { decode, encode } from './utf8';\nconst defaultByteLength = 1024 * 8;\nexport class IOBuffer {\n    /**\n     * @param data - The data to construct the IOBuffer with.\n     * If data is a number, it will be the new buffer's length<br>\n     * If data is `undefined`, the buffer will be initialized with a default length of 8Kb<br>\n     * If data is an ArrayBuffer, SharedArrayBuffer, an ArrayBufferView (Typed Array), an IOBuffer instance,\n     * or a Node.js Buffer, a view will be created over the underlying ArrayBuffer.\n     * @param options\n     */\n    constructor(data = defaultByteLength, options = {}) {\n        let dataIsGiven = false;\n        if (typeof data === 'number') {\n            data = new ArrayBuffer(data);\n        }\n        else {\n            dataIsGiven = true;\n            this.lastWrittenByte = data.byteLength;\n        }\n        const offset = options.offset ? options.offset >>> 0 : 0;\n        const byteLength = data.byteLength - offset;\n        let dvOffset = offset;\n        if (ArrayBuffer.isView(data) || data instanceof IOBuffer) {\n            if (data.byteLength !== data.buffer.byteLength) {\n                dvOffset = data.byteOffset + offset;\n            }\n            data = data.buffer;\n        }\n        if (dataIsGiven) {\n            this.lastWrittenByte = byteLength;\n        }\n        else {\n            this.lastWrittenByte = 0;\n        }\n        this.buffer = data;\n        this.length = byteLength;\n        this.byteLength = byteLength;\n        this.byteOffset = dvOffset;\n        this.offset = 0;\n        this.littleEndian = true;\n        this._data = new DataView(this.buffer, dvOffset, byteLength);\n        this._mark = 0;\n        this._marks = [];\n    }\n    /**\n     * Checks if the memory allocated to the buffer is sufficient to store more\n     * bytes after the offset.\n     * @param byteLength - The needed memory in bytes.\n     * @returns `true` if there is sufficient space and `false` otherwise.\n     */\n    available(byteLength = 1) {\n        return this.offset + byteLength <= this.length;\n    }\n    /**\n     * Check if little-endian mode is used for reading and writing multi-byte\n     * values.\n     * @returns `true` if little-endian mode is used, `false` otherwise.\n     */\n    isLittleEndian() {\n        return this.littleEndian;\n    }\n    /**\n     * Set little-endian mode for reading and writing multi-byte values.\n     */\n    setLittleEndian() {\n        this.littleEndian = true;\n        return this;\n    }\n    /**\n     * Check if big-endian mode is used for reading and writing multi-byte values.\n     * @returns `true` if big-endian mode is used, `false` otherwise.\n     */\n    isBigEndian() {\n        return !this.littleEndian;\n    }\n    /**\n     * Switches to big-endian mode for reading and writing multi-byte values.\n     */\n    setBigEndian() {\n        this.littleEndian = false;\n        return this;\n    }\n    /**\n     * Move the pointer n bytes forward.\n     * @param n - Number of bytes to skip.\n     */\n    skip(n = 1) {\n        this.offset += n;\n        return this;\n    }\n    /**\n     * Move the pointer to the given offset.\n     * @param offset\n     */\n    seek(offset) {\n        this.offset = offset;\n        return this;\n    }\n    /**\n     * Store the current pointer offset.\n     * @see {@link IOBuffer#reset}\n     */\n    mark() {\n        this._mark = this.offset;\n        return this;\n    }\n    /**\n     * Move the pointer back to the last pointer offset set by mark.\n     * @see {@link IOBuffer#mark}\n     */\n    reset() {\n        this.offset = this._mark;\n        return this;\n    }\n    /**\n     * Push the current pointer offset to the mark stack.\n     * @see {@link IOBuffer#popMark}\n     */\n    pushMark() {\n        this._marks.push(this.offset);\n        return this;\n    }\n    /**\n     * Pop the last pointer offset from the mark stack, and set the current\n     * pointer offset to the popped value.\n     * @see {@link IOBuffer#pushMark}\n     */\n    popMark() {\n        const offset = this._marks.pop();\n        if (offset === undefined) {\n            throw new Error('Mark stack empty');\n        }\n        this.seek(offset);\n        return this;\n    }\n    /**\n     * Move the pointer offset back to 0.\n     */\n    rewind() {\n        this.offset = 0;\n        return this;\n    }\n    /**\n     * Make sure the buffer has sufficient memory to write a given byteLength at\n     * the current pointer offset.\n     * If the buffer's memory is insufficient, this method will create a new\n     * buffer (a copy) with a length that is twice (byteLength + current offset).\n     * @param byteLength\n     */\n    ensureAvailable(byteLength = 1) {\n        if (!this.available(byteLength)) {\n            const lengthNeeded = this.offset + byteLength;\n            const newLength = lengthNeeded * 2;\n            const newArray = new Uint8Array(newLength);\n            newArray.set(new Uint8Array(this.buffer));\n            this.buffer = newArray.buffer;\n            this.length = this.byteLength = newLength;\n            this._data = new DataView(this.buffer);\n        }\n        return this;\n    }\n    /**\n     * Read a byte and return false if the byte's value is 0, or true otherwise.\n     * Moves pointer forward by one byte.\n     */\n    readBoolean() {\n        return this.readUint8() !== 0;\n    }\n    /**\n     * Read a signed 8-bit integer and move pointer forward by 1 byte.\n     */\n    readInt8() {\n        return this._data.getInt8(this.offset++);\n    }\n    /**\n     * Read an unsigned 8-bit integer and move pointer forward by 1 byte.\n     */\n    readUint8() {\n        return this._data.getUint8(this.offset++);\n    }\n    /**\n     * Alias for {@link IOBuffer#readUint8}.\n     */\n    readByte() {\n        return this.readUint8();\n    }\n    /**\n     * Read `n` bytes and move pointer forward by `n` bytes.\n     */\n    readBytes(n = 1) {\n        const bytes = new Uint8Array(n);\n        for (let i = 0; i < n; i++) {\n            bytes[i] = this.readByte();\n        }\n        return bytes;\n    }\n    /**\n     * Read a 16-bit signed integer and move pointer forward by 2 bytes.\n     */\n    readInt16() {\n        const value = this._data.getInt16(this.offset, this.littleEndian);\n        this.offset += 2;\n        return value;\n    }\n    /**\n     * Read a 16-bit unsigned integer and move pointer forward by 2 bytes.\n     */\n    readUint16() {\n        const value = this._data.getUint16(this.offset, this.littleEndian);\n        this.offset += 2;\n        return value;\n    }\n    /**\n     * Read a 32-bit signed integer and move pointer forward by 4 bytes.\n     */\n    readInt32() {\n        const value = this._data.getInt32(this.offset, this.littleEndian);\n        this.offset += 4;\n        return value;\n    }\n    /**\n     * Read a 32-bit unsigned integer and move pointer forward by 4 bytes.\n     */\n    readUint32() {\n        const value = this._data.getUint32(this.offset, this.littleEndian);\n        this.offset += 4;\n        return value;\n    }\n    /**\n     * Read a 32-bit floating number and move pointer forward by 4 bytes.\n     */\n    readFloat32() {\n        const value = this._data.getFloat32(this.offset, this.littleEndian);\n        this.offset += 4;\n        return value;\n    }\n    /**\n     * Read a 64-bit floating number and move pointer forward by 8 bytes.\n     */\n    readFloat64() {\n        const value = this._data.getFloat64(this.offset, this.littleEndian);\n        this.offset += 8;\n        return value;\n    }\n    /**\n     * Read a 64-bit signed integer number and move pointer forward by 8 bytes.\n     */\n    readBigInt64() {\n        const value = this._data.getBigInt64(this.offset, this.littleEndian);\n        this.offset += 8;\n        return value;\n    }\n    /**\n     * Read a 64-bit unsigned integer number and move pointer forward by 8 bytes.\n     */\n    readBigUint64() {\n        const value = this._data.getBigUint64(this.offset, this.littleEndian);\n        this.offset += 8;\n        return value;\n    }\n    /**\n     * Read a 1-byte ASCII character and move pointer forward by 1 byte.\n     */\n    readChar() {\n        return String.fromCharCode(this.readInt8());\n    }\n    /**\n     * Read `n` 1-byte ASCII characters and move pointer forward by `n` bytes.\n     */\n    readChars(n = 1) {\n        let result = '';\n        for (let i = 0; i < n; i++) {\n            result += this.readChar();\n        }\n        return result;\n    }\n    /**\n     * Read the next `n` bytes, return a UTF-8 decoded string and move pointer\n     * forward by `n` bytes.\n     */\n    readUtf8(n = 1) {\n        return decode(this.readBytes(n));\n    }\n    /**\n     * Write 0xff if the passed value is truthy, 0x00 otherwise and move pointer\n     * forward by 1 byte.\n     */\n    writeBoolean(value) {\n        this.writeUint8(value ? 0xff : 0x00);\n        return this;\n    }\n    /**\n     * Write `value` as an 8-bit signed integer and move pointer forward by 1 byte.\n     */\n    writeInt8(value) {\n        this.ensureAvailable(1);\n        this._data.setInt8(this.offset++, value);\n        this._updateLastWrittenByte();\n        return this;\n    }\n    /**\n     * Write `value` as an 8-bit unsigned integer and move pointer forward by 1\n     * byte.\n     */\n    writeUint8(value) {\n        this.ensureAvailable(1);\n        this._data.setUint8(this.offset++, value);\n        this._updateLastWrittenByte();\n        return this;\n    }\n    /**\n     * An alias for {@link IOBuffer#writeUint8}.\n     */\n    writeByte(value) {\n        return this.writeUint8(value);\n    }\n    /**\n     * Write all elements of `bytes` as uint8 values and move pointer forward by\n     * `bytes.length` bytes.\n     */\n    writeBytes(bytes) {\n        this.ensureAvailable(bytes.length);\n        for (let i = 0; i < bytes.length; i++) {\n            this._data.setUint8(this.offset++, bytes[i]);\n        }\n        this._updateLastWrittenByte();\n        return this;\n    }\n    /**\n     * Write `value` as a 16-bit signed integer and move pointer forward by 2\n     * bytes.\n     */\n    writeInt16(value) {\n        this.ensureAvailable(2);\n        this._data.setInt16(this.offset, value, this.littleEndian);\n        this.offset += 2;\n        this._updateLastWrittenByte();\n        return this;\n    }\n    /**\n     * Write `value` as a 16-bit unsigned integer and move pointer forward by 2\n     * bytes.\n     */\n    writeUint16(value) {\n        this.ensureAvailable(2);\n        this._data.setUint16(this.offset, value, this.littleEndian);\n        this.offset += 2;\n        this._updateLastWrittenByte();\n        return this;\n    }\n    /**\n     * Write `value` as a 32-bit signed integer and move pointer forward by 4\n     * bytes.\n     */\n    writeInt32(value) {\n        this.ensureAvailable(4);\n        this._data.setInt32(this.offset, value, this.littleEndian);\n        this.offset += 4;\n        this._updateLastWrittenByte();\n        return this;\n    }\n    /**\n     * Write `value` as a 32-bit unsigned integer and move pointer forward by 4\n     * bytes.\n     */\n    writeUint32(value) {\n        this.ensureAvailable(4);\n        this._data.setUint32(this.offset, value, this.littleEndian);\n        this.offset += 4;\n        this._updateLastWrittenByte();\n        return this;\n    }\n    /**\n     * Write `value` as a 32-bit floating number and move pointer forward by 4\n     * bytes.\n     */\n    writeFloat32(value) {\n        this.ensureAvailable(4);\n        this._data.setFloat32(this.offset, value, this.littleEndian);\n        this.offset += 4;\n        this._updateLastWrittenByte();\n        return this;\n    }\n    /**\n     * Write `value` as a 64-bit floating number and move pointer forward by 8\n     * bytes.\n     */\n    writeFloat64(value) {\n        this.ensureAvailable(8);\n        this._data.setFloat64(this.offset, value, this.littleEndian);\n        this.offset += 8;\n        this._updateLastWrittenByte();\n        return this;\n    }\n    /**\n     * Write `value` as a 64-bit signed bigint and move pointer forward by 8\n     * bytes.\n     */\n    writeBigInt64(value) {\n        this.ensureAvailable(8);\n        this._data.setBigInt64(this.offset, value, this.littleEndian);\n        this.offset += 8;\n        this._updateLastWrittenByte();\n        return this;\n    }\n    /**\n     * Write `value` as a 64-bit unsigned bigint and move pointer forward by 8\n     * bytes.\n     */\n    writeBigUint64(value) {\n        this.ensureAvailable(8);\n        this._data.setBigUint64(this.offset, value, this.littleEndian);\n        this.offset += 8;\n        this._updateLastWrittenByte();\n        return this;\n    }\n    /**\n     * Write the charCode of `str`'s first character as an 8-bit unsigned integer\n     * and move pointer forward by 1 byte.\n     */\n    writeChar(str) {\n        return this.writeUint8(str.charCodeAt(0));\n    }\n    /**\n     * Write the charCodes of all `str`'s characters as 8-bit unsigned integers\n     * and move pointer forward by `str.length` bytes.\n     */\n    writeChars(str) {\n        for (let i = 0; i < str.length; i++) {\n            this.writeUint8(str.charCodeAt(i));\n        }\n        return this;\n    }\n    /**\n     * UTF-8 encode and write `str` to the current pointer offset and move pointer\n     * forward according to the encoded length.\n     */\n    writeUtf8(str) {\n        return this.writeBytes(encode(str));\n    }\n    /**\n     * Export a Uint8Array view of the internal buffer.\n     * The view starts at the byte offset and its length\n     * is calculated to stop at the last written byte or the original length.\n     */\n    toArray() {\n        return new Uint8Array(this.buffer, this.byteOffset, this.lastWrittenByte);\n    }\n    /**\n     * Update the last written byte offset\n     * @private\n     */\n    _updateLastWrittenByte() {\n        if (this.offset > this.lastWrittenByte) {\n            this.lastWrittenByte = this.offset;\n        }\n    }\n}\n//# sourceMappingURL=IOBuffer.js.map","export const endianness = {\n  0: 'bigEndian',\n  1: 'littleEndian',\n};\n\nexport const instrumentTable = {\n  0: 'NONE',\n  1: 'GSX',\n  2: 'ALPHA',\n  3: 'ECLIPSE',\n  4: 'MASS_SPEC',\n  5: 'COMPILER',\n  6: 'OTHER_NMR',\n  7: 'UNKNOWN',\n  8: 'GEMINI',\n  9: 'UNITY',\n  10: 'ASPECT',\n  11: 'UX',\n  12: 'FELIX',\n  13: 'LAMBDA',\n  14: 'GE_1280',\n  15: 'GE_OMEGA',\n  16: 'CHEMAGNETICS',\n  17: 'CDFF',\n  18: 'GALACTIC',\n  19: 'TRIAD',\n  20: 'GENERIC_NMR',\n  21: 'GAMMA',\n  22: 'JCAMP_DX',\n  23: 'AMX',\n  24: 'DMX',\n  25: 'ECA',\n  26: 'ALICE',\n  27: 'NMR_PIPE',\n  28: 'SIMPSON',\n};\n\nexport const dataTypeTable = {\n  0: '64Bit Float',\n  1: '32Bit Float',\n  2: 'Reserved',\n  3: 'Reserved',\n};\n\nexport const dataFormatTable = {\n  1: 'One_D',\n  2: 'Two_D',\n  3: 'Three_D',\n  4: 'Four_D',\n  5: 'Five_D',\n  6: 'Six_D',\n  7: 'Seven_D',\n  8: 'Eight_D',\n  9: 'not for NMR data formats',\n  10: 'not for NMR data formats',\n  11: 'not for NMR data formats',\n  12: 'Small_Two_D',\n  13: 'Small_Three_D',\n  14: 'Small_Four_D',\n};\n\nexport const dataAxisTypeTable = {\n  0: 'None', //Axis is not used.\n  1: 'Real', //Axis has real data only, no imaginary.\n  2: 'TPPI',\n  3: 'Complex',\n  4: 'Real_Complex',\n  /* Axis should be accessed as complex when it is the major axis,\n            accessed as real otherwise.  This is only valid when all axes in\n            use have this setting.*/\n  5: 'Envelope',\n  /* Behaves the same way as a Real_Complex dimension but the data\n        has different meaning.  Instead of being treated as real and\n        imaginary parts of a complex number, the data should be treated as minimum and maximum parts of a projection.  This is used\n        for the data that results from an envelope projection.*/\n};\n\nexport const prefixTable = {\n  '-8': 'Yotta',\n  '-6': 'Exa',\n  '-7': 'Zetta',\n  '-5': 'Pecta',\n  '-4': 'Tera',\n  '-3': 'Giga',\n  '-2': 'Mega',\n  '-1': 'Kilo',\n  0: 'None',\n  1: 'Milli',\n  2: 'Micro',\n  3: 'Nano',\n  4: 'Pico',\n  5: 'Femto',\n  6: 'Atto',\n  7: 'Zepto',\n};\n\nexport const unitPrefixTable = {\n  Yotta: 24,\n  Exa: 21,\n  Zetta: 18,\n  Pecta: 15,\n  Tera: 12,\n  Giga: 9,\n  Mega: 6,\n  Kilo: 3,\n  None: 0,\n  Milli: -3,\n  Micro: -6,\n  Nano: -9,\n  Pico: -12,\n  Femto: -15,\n  Atto: -18,\n  Zepto: -21,\n};\n\nexport const baseTable = {\n  0: 'None',\n  1: 'Abundance',\n  2: 'Ampere',\n  3: 'Candela',\n  4: 'Celsius',\n  5: 'Coulomb',\n  6: 'Degree',\n  7: 'Electronvolt',\n  8: 'Farad',\n  9: 'Sievert',\n  10: 'Gram',\n  11: 'Gray',\n  12: 'Henry',\n  13: 'Hertz',\n  14: 'Kelvin',\n  15: 'Joule',\n  16: 'Liter',\n  17: 'Lumen',\n  18: 'Lux',\n  19: 'Meter',\n  20: 'Mole',\n  21: 'Newton',\n  22: 'Ohm',\n  23: 'Pascal',\n  24: 'Percent',\n  25: 'Point',\n  26: 'Ppm',\n  27: 'Radian',\n  28: 'Second',\n  29: 'Siemens',\n  30: 'Steradian',\n  31: 'Tesla',\n  32: 'Volt',\n  33: 'Watt',\n  34: 'Weber',\n  35: 'Decibel',\n  36: 'Dalton',\n  37: 'Thompson',\n  38: 'Ugeneric', // Treated as None, but never displayed',\n  39: 'LPercent ', // Treated as percent for display, but different for comparison',\n  40: 'PPT', // Parts per trillion (Private, do not use)',\n  41: 'PPB ', // Parts per billion (Private, do not use)',\n  42: 'Index',\n};\n\nexport const dataAxisRangedTable = {\n  0: 'Ranged',\n  /* The ruler for the axis ranges from Data_Axis_Start[n] to\n        Data_Axis_Stop[n] with a step function of\n            (Data_Axis_Stop[n] - Data_Axis_Start[n]) /\n            (Data_Offset_Stop[n] - Data_Offset_Start[n]) */\n  1: 'Listed', // (deprecated)\n  /* The ruler for the axis is a list of doubles stored in the\n        List Section.  Values in the ruler may be anything.*/\n  2: 'Sparse',\n  /*The ruler for the axis is a list of doubles stored in the\n        List Section.  Values in the rulers must be strictly monotonically\n        increasing or decreasing.*/\n  3: 'Listed',\n  /* The ruler for the axis is a list of doubles stored in the\n        List Section.  Values in the rulers do not fit definition of Sparse.*/\n};\n\nexport const valueTypeTable = {\n  0: 'String',\n  1: 'Integer',\n  2: 'Float',\n  3: 'Complex',\n  4: 'Infinity',\n};\n","import * as table from './conversionTables';\n\nexport function getPar(param, searchStr) {\n  return param.paramArray.find((o) => o.name === searchStr) || '';\n}\n\nexport function getDigitalFilter(param) {\n  const orders = param.paramArray.find((e) => e.name === 'orders');\n  const factors = param.paramArray.find((e) => e.name === 'factors');\n  const sweep = param.paramArray.find((e) => e.name === 'x_sweep');\n  const acqTime = param.paramArray.find((e) => e.name === 'x_acq_time');\n  const nbPoints = param.paramArray.find((e) => e.name === 'x_points');\n\n  const shouldStop = [orders, factors, sweep, acqTime, nbPoints].some((e) => e === undefined);\n\n  if (shouldStop) {\n    new Error('There is not all parameters to calculate the number of point of digital filter')\n    return;\n  }\n\n  const s = parseInt(orders.value.slice(0, 1), 10);\n  const jump = orders.value.slice(1).length / s;\n\n  let arg = 0;\n  let factorNumber = new Int8Array(s);\n  let offsetO = 1;\n  let offsetF = 0;\n  for (let i = 0; i < s; i++) {\n    factorNumber[i] = parseInt(factors.value.slice(offsetF, offsetF + 1), 10);\n    offsetF += 1;\n  }\n\n  for (let i = 0; i < s; i++) {\n    let productorial = 1;\n    for (let j = i; j < s; j++) {\n      productorial *= factorNumber[j];\n    }\n    arg +=\n      (parseInt(orders.value.slice(offsetO, offsetO + jump), 10) - 1) /\n      productorial;\n    offsetO += jump;\n  }\n  arg /= 2;\n\n  const delaySec = arg / sweep.value;\n  return (delaySec / acqTime.value) * (nbPoints.value - 1);\n}\n\nexport function getMagnitude(param, searchStr) {\n  let par = getPar(param, searchStr) || 'NA';\n  if (par === 'NA') {\n    return { magnitude: 'NA', unit: 'NA' };\n  }\n  let unit = par.unit[0].base;\n  let unitMult = table.unitPrefixTable[par.unit[0].prefix];\n  let magnitude = par.value * 10 ** unitMult;\n  return { magnitude, unit };\n}\n\nexport function getUnit(buffer, size) {\n  let unit = [];\n  for (let i = 0; i < size; i++) {\n    let byte = buffer.readByte();\n    let prefix = table.prefixTable[byte >> 4];\n    let power = byte & 0b00001111;\n    let base = table.baseTable[buffer.readInt8()];\n    unit.push({ prefix, power, base });\n  }\n  return unit;\n}\n\nexport function getString(buffer, size) {\n  let string = [];\n  for (let i = 0; i < size; i++) {\n    let char = buffer.readChar();\n    if (char !== '\\u0000') {\n      string.push(char);\n    }\n  }\n  return string.join('');\n}\n\nexport function getParamName(buffer, size) {\n  let string = [];\n  for (let i = 0; i < size; i++) {\n    let char = buffer.readChar();\n    if (char !== ' ') {\n      string.push(char);\n    }\n  }\n  return string.join('');\n}\n\nexport function getArray(buffer, size, format) {\n  let double = [];\n  for (let i = 0; i < size; i++) {\n    switch (format) {\n      case 'readUint32':\n        double.push(buffer.readUint32());\n        break;\n      case 'readFloat64':\n        double.push(buffer.readFloat64());\n        break;\n      case 'readFloat32':\n        double.push(buffer.readFloat32());\n        break;\n      case 'readUint8':\n        double.push(buffer.readUint8());\n        break;\n      case 'readBoolean':\n        double.push(buffer.readBoolean());\n        break;\n      default:\n        break;\n    }\n  }\n  return double;\n}\n","import { IOBuffer } from 'iobuffer';\n\nimport * as table from './conversionTables';\nimport {\n  getPar,\n  getMagnitude,\n  getParamName,\n  getArray,\n  getUnit,\n  getString,\n  getDigitalFilter,\n} from './utils';\n\n/**\n * A parser for 1D and 2D JDL NMR Files\n * @param {ArrayBuffer} buffer - a buffer object containing the JDL file\n * @return {Object} - an Object with converted data\n */\nexport function parseJEOL(buffer) {\n  let ioBuffer = new IOBuffer(buffer);\n  ioBuffer.setBigEndian();\n\n  // read header section\n  let byte;\n  let header = {};\n  let byteArray = [];\n\n  header.fileIdentifier = ioBuffer.readChars(8);\n  header.endian = table.endianness[ioBuffer.readInt8()];\n  header.majorVersion = ioBuffer.readUint8();\n  header.minorVersion = ioBuffer.readUint16();\n  header.dataDimensionNumber = ioBuffer.readUint8();\n\n  header.dataDimensionExist = ioBuffer\n    .readByte()\n    .toString(2)\n    .split('')\n    .map((x) => Boolean(Number(x)));\n\n  byte = ioBuffer.readByte();\n  header.dataType = table.dataTypeTable[byte >> 6];\n  header.dataFormat = table.dataFormatTable[byte & 0b00111111];\n  header.dataInstrument = table.instrumentTable[ioBuffer.readInt8()];\n  header.translate = getArray(ioBuffer, 8, 'readUint8');\n  header.dataAxisType = getArray(ioBuffer, 8, 'readUint8').map(\n    (x) => table.dataAxisTypeTable[x],\n  );\n\n  header.dataUnits = getUnit(ioBuffer, 8);\n  header.title = getString(ioBuffer, 124);\n\n  for (byte in getArray(ioBuffer, 4, 'readUint8')) {\n    byteArray.push(table.dataAxisRangedTable[byte >> 4]);\n    byteArray.push(table.dataAxisRangedTable[byte & 0b00001111]);\n  }\n\n  header.dataAxisRanged = byteArray;\n  header.dataPoints = getArray(ioBuffer, 8, 'readUint32');\n  header.dataOffsetStart = getArray(ioBuffer, 8, 'readUint32');\n  header.dataOffsetStop = getArray(ioBuffer, 8, 'readUint32');\n  header.dataAxisStart = getArray(ioBuffer, 8, 'readFloat64');\n  header.dataAxisStop = getArray(ioBuffer, 8, 'readFloat64');\n\n  byteArray = new Uint8Array(4);\n  for (let i = 0; i < 4; i++) {\n    byteArray[i] = ioBuffer.readByte();\n  }\n  let year = 1990 + (byteArray[0] >> 1);\n  let month = ((byteArray[0] << 3) & 0b00001000) + (byteArray[1] >> 5);\n  let day = byteArray[2] & 0b00011111;\n  header.creationTime = { year, month, day };\n\n  for (let i = 0; i < 4; i++) {\n    byteArray[i] = ioBuffer.readByte();\n  }\n  year = 1990 + (byteArray[0] >> 1);\n  month = ((byteArray[0] << 3) & 0b00001000) + (byteArray[1] >> 5);\n  day = byteArray[2] & 0b00011111;\n  header.revisionTime = { year, month, day };\n\n  header.nodeName = getString(ioBuffer, 16);\n  header.site = getString(ioBuffer, 128);\n  header.author = getString(ioBuffer, 128);\n  header.comment = getString(ioBuffer, 128);\n\n  let dataAxisTitles = [];\n  for (let i = 0; i < 8; i++) {\n    dataAxisTitles.push(getString(ioBuffer, 32));\n  }\n  header.dataAxisTitles = dataAxisTitles;\n\n  header.baseFreq = getArray(ioBuffer, 8, 'readFloat64');\n  header.zeroPoint = getArray(ioBuffer, 8, 'readFloat64');\n  header.reversed = getArray(ioBuffer, 8, 'readBoolean');\n  ioBuffer.skip(3);\n  header.annotationOK = Boolean(ioBuffer.readByte() >> 7);\n  header.historyUsed = ioBuffer.readUint32();\n  header.historyLength = ioBuffer.readUint32();\n  header.paramStart = ioBuffer.readUint32();\n  header.paramLength = ioBuffer.readUint32();\n  header.ListStart = getArray(ioBuffer, 8, 'readUint32');\n  header.ListLength = getArray(ioBuffer, 8, 'readUint32');\n  header.dataStart = ioBuffer.readUint32();\n  header.dataLength = (ioBuffer.readUint32() << 32) | ioBuffer.readUint32();\n  header.contextStart = (ioBuffer.readUint32() << 32) | ioBuffer.readUint32();\n  header.contextLength = ioBuffer.readUint32();\n  header.annoteStart = (ioBuffer.readUint32() << 32) | ioBuffer.readUint32();\n  header.annoteLength = ioBuffer.readUint32();\n  header.totalSize = (ioBuffer.readUint32() << 32) | ioBuffer.readUint32();\n  header.unitLocation = getArray(ioBuffer, 8, 'readUint8');\n\n  let compoundUnit = [];\n  for (let i = 0; i < 2; i++) {\n    let unit = [];\n    let scaler = ioBuffer.readInt16();\n    for (let j = 0; j < 5; j++) {\n      byte = ioBuffer.readInt16();\n      unit.push(byte);\n    }\n    compoundUnit.push({ scaler, unit });\n  }\n  header.compoundUnit = compoundUnit;\n\n  // section parameters (param header and array)\n  if (header.endian === 'littleEndian') {\n    ioBuffer.setLittleEndian();\n  }\n  ioBuffer.seek(header.paramStart);\n\n  let parameters = {\n    parameterSize: ioBuffer.readUint32(),\n    lowIndex: ioBuffer.readUint32(),\n    highIndex: ioBuffer.readUint32(),\n    totalSize: ioBuffer.readUint32(),\n  };\n  let paramArray = [];\n  for (let p = 0; p < parameters.highIndex + 1; p++) {\n    ioBuffer.skip(4);\n    let scaler = ioBuffer.readInt16();\n    let unit = getUnit(ioBuffer, 5);\n    ioBuffer.skip(16);\n    let valueType = table.valueTypeTable[ioBuffer.readInt32()];\n    ioBuffer.seek(ioBuffer.offset - 20);\n    let value;\n    switch (valueType) {\n      case 'String':\n        value = getParamName(ioBuffer, 16);\n        break;\n      case 'Integer':\n        value = ioBuffer.readInt32();\n        ioBuffer.skip(12);\n        break;\n      case 'Float':\n        value = ioBuffer.readFloat64();\n        ioBuffer.skip(8);\n        break;\n      case 'Complex':\n        value.Real = ioBuffer.readFloat64();\n        value.Imag = ioBuffer.readFloat64();\n        break;\n      case 'Infinity':\n        value = ioBuffer.readInt32();\n        ioBuffer.skip(12);\n        break;\n      default:\n        ioBuffer.skip(16);\n        break;\n    }\n    ioBuffer.skip(4);\n    let name = getParamName(ioBuffer, 28);\n    paramArray.push({ name: name.toLowerCase(), scaler, unit, value, valueType });\n  }\n  parameters.paramArray = paramArray;\n\n  // data section\n  ioBuffer.seek(header.dataStart);\n  if (header.endian === 'littleEndian') {\n    ioBuffer.setLittleEndian();\n  }\n\n  let data = {};\n  let dataSectionCount = 1;\n  let realComplex = 0;\n  for (let type of header.dataAxisType) {\n    if (type === 'Real_Complex' && realComplex === 0) {\n      dataSectionCount += 1;\n      realComplex += 1;\n    }\n    if (type === 'Complex') {\n      dataSectionCount *= 2;\n    }\n  }\n\n  if (header.dataFormat !== 'One_D' && header.dataFormat !== 'Two_D') {\n    throw new Error('Only One_D and two_D data formats are implemented yet');\n  }\n\n  if (header.dataFormat === 'One_D') {\n    for (let s = 0; s < dataSectionCount; s++) {\n      let section;\n      if (header.dataType === '32Bit Float') {\n        section = getArray(ioBuffer, header.dataPoints[0], 'readFloat32');\n      } else if (header.dataType === '64Bit Float') {\n        section = getArray(ioBuffer, header.dataPoints[0], 'readFloat64');\n      }\n      if (s === 0) data.re = section;\n      if (s === 1) data.im = section;\n    }\n  }\n\n  if (header.dataFormat === 'Two_D') {\n    let me = 32;\n    let dim1 = header.dataPoints[0];\n    let dim2 = header.dataPoints[1];\n    // console.log(\n    // `dim1: ${dim1},\n    // dim2: ${dim2},\n    // total: ${dim1 * dim2},\n    // total(byte): ${dim1 * dim2 * 8},\n    // total(length): ${dim1 * dim2 * 8 * dataSectionCount}\n    // m size: ${dim1 / me} / ${dim2 / me}`,\n    // );\n    let I = dim2 / me;\n    let J = dim1 / me;\n\n    for (let s = 0; s < dataSectionCount; s++) {\n      let section;\n      for (let i = 0; i < I; i++) {\n        let row = [];\n        for (let j = 0; j < J; j++) {\n          for (let k = 0; k < me; k++) {\n            if (j === 0) {\n              if (header.dataType === '32Bit Float') {\n                row[k] = getArray(ioBuffer, me, 'readFloat32');\n              } else if (header.dataType === '64Bit Float') {\n                row[k] = getArray(ioBuffer, me, 'readFloat64');\n              }\n            } else {\n              if (header.dataType === '32Bit Float') {\n                row[k] = row[k].concat(getArray(ioBuffer, me, 'readFloat32'));\n              } else if (header.dataType === '64Bit Float') {\n                row[k] = row[k].concat(getArray(ioBuffer, me, 'readFloat64'));\n              }\n            }\n          }\n        }\n        if (i === 0) {\n          section = row;\n        } else {\n          section = section.concat(row);\n        }\n      }\n      if (dataSectionCount === 2) {\n        if (s === 0) data.re = section;\n        if (s === 1) data.im = section;\n      }\n      if (dataSectionCount === 4) {\n        if (s === 0) {\n          data.re = {};\n          data.re.re = section;\n        }\n        if (s === 1) data.re.im = section;\n        if (s === 2) {\n          data.im = {};\n          data.im.re = section;\n        }\n        if (s === 3) data.im.im = section;\n      }\n    }\n  }\n  // format output\n  let nucleus = [];\n  let acquisitionTime = [];\n  let spectralWidth = [];\n  let spectralWidthClipped = [];\n  let resolution = [];\n  let originFrequency = [];\n  let frequencyOffset = [];\n  let dataUnits = [];\n  if (header.dataFormat === 'One_D' || header.dataFormat === 'Two_D') {\n    nucleus.push(getPar(parameters, 'x_domain').value);\n    acquisitionTime.push(getMagnitude(parameters, 'x_acq_time'));\n    spectralWidth.push(getMagnitude(parameters, 'x_sweep'));\n    spectralWidthClipped.push(getMagnitude(parameters, 'x_sweep_clipped'));\n    resolution.push(getMagnitude(parameters, 'x_resolution'));\n    originFrequency.push(getMagnitude(parameters, 'x_freq'));\n    frequencyOffset.push(getMagnitude(parameters, 'x_offset'));\n    dataUnits.push(header.dataUnits[0].base);\n  }\n  if (header.dataFormat === 'Two_D') {\n    nucleus.push(getPar(parameters, 'y_domain').value);\n    acquisitionTime.push(getMagnitude(parameters, 'y_acq_time'));\n    spectralWidth.push(getMagnitude(parameters, 'y_sweep'));\n    resolution.push(getMagnitude(parameters, 'y_resolution'));\n    originFrequency.push(getMagnitude(parameters, 'y_freq'));\n    frequencyOffset.push(getMagnitude(parameters, 'y_offset'));\n    dataUnits.push(header.dataUnits[1].base);\n  }\n\n  let digest = {\n    info: {\n      sampleName: getPar(parameters, 'sample_id').value,\n      creationTime: header.creationTime,\n      revisionTime: header.revisionTime,\n      author: header.author,\n      comment: header.comment,\n      solvent: getPar(parameters, 'solvent').value,\n      temperature: getMagnitude(parameters, 'temp_get'),\n      probeName: getPar(parameters, 'probe_id').value,\n      fieldStrength: getMagnitude(parameters, 'field_strength'),\n      experiment: getPar(parameters, 'experiment').value,\n      dimension: header.dataDimensionNumber,\n      nucleus,\n      pulseStrength90: getMagnitude(parameters, 'x90'),\n      numberOfScans: getPar(parameters, 'scans').value,\n      relaxationTime: getMagnitude(parameters, 'relaxation_delay'),\n      dataPoints: header.dataPoints.slice(0, header.dataDimensionNumber),\n      dataOffsetStart: header.dataOffsetStart,\n      dataOffsetStop: header.dataOffsetStop,\n      dataUnits: dataUnits,\n      dataSections: Object.keys(data),\n      originFrequency,\n      frequencyOffset,\n      acquisitionTime,\n      spectralWidth,\n      spectralWidthClipped,\n      dataAxisStart: header.dataAxisStart,\n      dataAxisStop: header.dataAxisStop,\n      resolution: resolution,\n      decimationRate: getPar(parameters, 'decimation_rate').value,\n      paramList: JSON.stringify(parameters.paramArray.map((par) => par.name)),\n    },\n\n    headers: header,\n    parameters: parameters,\n    data: data,\n  };\n\n  digest.info.digitalFilter = getDigitalFilter(parameters);\n\n  return digest;\n}\n","// sources:\n// https://en.wikipedia.org/wiki/Gyromagnetic_ratio\n// TODO: #13 can we have a better source and more digits ? @jwist\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//# sourceMappingURL=gyromagneticRatio.js.map","/**\n * Ensure that the data is string. If it is an ArrayBuffer it will be converted to string using TextDecoder.\n * @param blob\n * @param options\n * @returns\n */\nexport function ensureString(blob, options = {}) {\n    if (typeof blob === 'string') {\n        return blob;\n    }\n    if (ArrayBuffer.isView(blob) || blob instanceof ArrayBuffer) {\n        const { encoding = guessEncoding(blob) } = options;\n        const decoder = new TextDecoder(encoding);\n        return decoder.decode(blob);\n    }\n    throw new TypeError(`blob must be a string, ArrayBuffer or ArrayBufferView`);\n}\nfunction guessEncoding(blob) {\n    const uint8 = ArrayBuffer.isView(blob)\n        ? new Uint8Array(blob.buffer, blob.byteOffset, blob.byteLength)\n        : new Uint8Array(blob);\n    if (uint8.length >= 2) {\n        if (uint8[0] === 0xfe && uint8[1] === 0xff) {\n            return 'utf-16be';\n        }\n        if (uint8[0] === 0xff && uint8[1] === 0xfe) {\n            return 'utf-16le';\n        }\n    }\n    return 'utf-8';\n}\n//# sourceMappingURL=index.js.map","const toString = Object.prototype.toString;\n\nexport default function isAnyArray(object) {\n  return toString.call(object).endsWith('Array]');\n}\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","export function toKeyValue(object) {\n  let newObject = {};\n  for (let key in object) {\n    if (typeof object[key] !== 'string') {\n      newObject[key] = JSON.stringify(object[key]);\n    } else {\n      newObject[key] = object[key];\n    }\n  }\n  return newObject;\n}\n","import { parseJEOL } from 'jeolconverter';\nimport { gyromagneticRatio } from 'nmr-processing';\n\nimport packageJson from '../package.json';\n\nimport { formatDependentVariable } from './formatDependentVariable';\nimport { formatLinearDimension } from './formatLinearDimension';\nimport { toKeyValue } from './utils/toKeyValue';\n\nexport function fromJEOL(buffer) {\n  let parsedData = parseJEOL(buffer);\n  let info = parsedData.info;\n  let headers = parsedData.headers;\n  let parameters = parsedData.parameters;\n  let paramArray = Object.assign({}, parameters.paramArray);\n  delete parameters.paramArray;\n  let data = parsedData.data;\n\n  // curation of parameters\n  let newInfo = {};\n  newInfo.title = `title: ${headers.title} / comment: ${headers.comment} / author:${headers.author} / site: ${headers.site}`;\n  newInfo.nucleus = info.nucleus.map((x) => {\n    if (x === 'Proton') {\n      x = '1H';\n    }\n    if (x === 'Carbon13') {\n      x = '13C';\n    }\n    if (x === 'Nitrogen15') {\n      x = '15N';\n    }\n    return x;\n  });\n  newInfo.sampleName = info.sampleName;\n  newInfo.date = JSON.stringify(info.creationTime);\n  newInfo.author = info.author;\n  //newInfo.comment = info.comment;\n  newInfo.solvent = info.solvent;\n  newInfo.temperature = info.temperature.magnitude;\n  newInfo.probeName = info.probeName || '';\n  newInfo.fieldStrength = info.fieldStrength.magnitude;\n\n  let gyromagneticRatioConstants = newInfo.nucleus.map(\n    (nucleus) => gyromagneticRatio[nucleus],\n  );\n  newInfo.baseFrequency = gyromagneticRatioConstants.map(\n    (gmr) => (info.fieldStrength.magnitude * gmr) / (2 * Math.PI * 1e6),\n  );\n  newInfo.pulseSequence = info.experiment;\n  newInfo.temperature =\n    info.temperature.unit.toLowerCase() === 'celsius'\n      ? 273.15 + info.temperature.magnitude\n      : info.temperature.magnitude;\n  newInfo.digitalFilter = info.digitalFilter;\n  newInfo.pulseStrength90 = 1 / (4 * info.pulseStrength90.magnitude);\n  newInfo.numberOfScans = info.numberOfScans;\n  newInfo.relaxationTime = info.relaxationTime.magnitude;\n\n  newInfo.isComplex = info.dataSections.includes('im');\n  newInfo.isFid = info.dataUnits[0] === 'Second';\n  newInfo.isFt = info.dataUnits[0] === 'Ppm';\n\n  newInfo.dimension = info.dimension;\n\n  const dimension = newInfo.dimension;\n  newInfo.originFrequency = info.originFrequency\n    .map((d) => d.magnitude / 1e6)\n    .slice(0, dimension);\n  newInfo.numberOfPoints = info.dataPoints.slice(0, 1);\n  newInfo.frequencyOffset = info.frequencyOffset\n    .map((f, i) => f.magnitude * newInfo.baseFrequency[i])\n    .slice(0, dimension);\n  newInfo.acquisitionTime = info.acquisitionTime\n    .map((a) => a.magnitude)\n    .slice(0, dimension);\n  newInfo.spectralWidth = info.spectralWidth\n    .map((sw, i) => (sw.magnitude / info.originFrequency[i].magnitude) * 1e6)\n    .slice(0, dimension);\n\n  // set options for dimensions\n  let dimensions = [];\n  let options = {};\n  let increment;\n  for (let d = 0; d < info.dimension; d++) {\n    increment = {\n      magnitude: info.acquisitionTime[d].magnitude / (info.dataPoints[d] - 1),\n      unit: 's',\n    };\n    if (info.dataUnits[d] === 'Second') {\n      options.quantityName = 'time';\n      options.originOffset = { magnitude: 0, unit: 's' };\n\n      if (d === 0) {\n        options.coordinatesOffset = {\n          magnitude: info.digitalFilter * increment.magnitude,\n          unit: 's',\n        };\n      } else {\n        options.coordinatesOffset = { magnitude: 0, unit: 's' };\n      }\n      options.reciprocal = {\n        originOffset: {\n          magnitude: info.originFrequency[d].magnitude,\n          unit: 'Hz',\n        },\n        quantityName: 'frequency',\n        coordinatesOffset: {\n          magnitude:\n            (info.frequencyOffset[d].magnitude *\n              info.originFrequency[d].magnitude) /\n            1000000,\n          unit: 'Hz',\n        },\n      };\n    } else if (info.dataUnits[d] === 'Ppm') {\n      options.quantityName = 'frequency';\n\n      let origin = info.originFrequency[d].magnitude;\n      options.originOffset = { magnitude: origin, unit: 'Hz' };\n\n      let firstPoint = info.dataOffsetStart[0];\n      let lastPoint = info.dataOffsetStop[0];\n      let dataLength = lastPoint - firstPoint + 1;\n\n      let spectralWidth = info.spectralWidth[d].magnitude;\n      let incr = spectralWidth / info.dataPoints[d];\n      increment = { magnitude: incr, unit: 'Hz' };\n\n      let offset = (info.dataAxisStop[0] * origin) / 1000000;\n      options.coordinatesOffset = {\n        magnitude: offset,\n        unit: 'Hz',\n      };\n\n      // after increment is computed with whole frequency\n      // and original number of points, we recast the\n      // number of point for export\n      if (dataLength < info.dataPoints[d]) {\n        info.dataPoints[d] = dataLength;\n      }\n    }\n\n    if (d === 0) {\n      options.description = 'direct dimension';\n    } else {\n      options.description = 'indirect dimension';\n    }\n\n    dimensions.push(\n      formatLinearDimension(\n        headers.dataAxisTitles[d],\n        info.dataPoints[d],\n        increment,\n        options,\n      ),\n    );\n  }\n\n  // set options for dependentVariable\n  options = {\n    unit: 'none',\n    quantityName: 'relative intensity',\n    from: info.dataOffsetStart,\n    to: info.dataOffsetStop,\n  };\n\n  let dependentVariables = [];\n  dependentVariables.push(formatDependentVariable(data, 11, options));\n\n  let description = Object.assign({}, newInfo);\n\n  delete description.paramList;\n  description.metadata = Object.assign(\n    {},\n    toKeyValue(headers),\n    toKeyValue(parameters),\n    toKeyValue(paramArray),\n  );\n\n  let dataStructure = {\n    timeStamp: Date.now(),\n    version: packageJson.version,\n    description,\n    tags: ['magnetic resonance'].concat(newInfo.nucleus),\n    application: {\n      spectralWidthClipped:\n        info.spectralWidthClipped[0].magnitude / newInfo.baseFrequency[0],\n    },\n    dimensions: dimensions,\n    dependentVariables: dependentVariables,\n  };\n  return [dataStructure];\n}\n","/*!\n\nJSZip v3.7.1 - A JavaScript class for generating and reading zip files\n<http://stuartk.com/jszip>\n\n(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/master/LICENSE\n*/\n\n!function(t){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=t()}}(function(){return function s(a,o,h){function u(r,t){if(!o[r]){if(!a[r]){var e=\"function\"==typeof require&&require;if(!t&&e)return e(r,!0);if(l)return l(r,!0);var i=new Error(\"Cannot find module '\"+r+\"'\");throw i.code=\"MODULE_NOT_FOUND\",i}var n=o[r]={exports:{}};a[r][0].call(n.exports,function(t){var e=a[r][1][t];return u(e||t)},n,n.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,t=0;t<h.length;t++)u(h[t]);return u}({1:[function(t,e,r){\"use strict\";var c=t(\"./utils\"),d=t(\"./support\"),p=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";r.encode=function(t){for(var e,r,i,n,s,a,o,h=[],u=0,l=t.length,f=l,d=\"string\"!==c.getTypeOf(t);u<t.length;)f=l-u,i=d?(e=t[u++],r=u<l?t[u++]:0,u<l?t[u++]:0):(e=t.charCodeAt(u++),r=u<l?t.charCodeAt(u++):0,u<l?t.charCodeAt(u++):0),n=e>>2,s=(3&e)<<4|r>>4,a=1<f?(15&r)<<2|i>>6:64,o=2<f?63&i:64,h.push(p.charAt(n)+p.charAt(s)+p.charAt(a)+p.charAt(o));return h.join(\"\")},r.decode=function(t){var e,r,i,n,s,a,o=0,h=0,u=\"data:\";if(t.substr(0,u.length)===u)throw new Error(\"Invalid base64 input, it looks like a data url.\");var l,f=3*(t=t.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\")).length/4;if(t.charAt(t.length-1)===p.charAt(64)&&f--,t.charAt(t.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error(\"Invalid base64 input, bad content length.\");for(l=d.uint8array?new Uint8Array(0|f):new Array(0|f);o<t.length;)e=p.indexOf(t.charAt(o++))<<2|(n=p.indexOf(t.charAt(o++)))>>4,r=(15&n)<<4|(s=p.indexOf(t.charAt(o++)))>>2,i=(3&s)<<6|(a=p.indexOf(t.charAt(o++))),l[h++]=e,64!==s&&(l[h++]=r),64!==a&&(l[h++]=i);return l}},{\"./support\":30,\"./utils\":32}],2:[function(t,e,r){\"use strict\";var i=t(\"./external\"),n=t(\"./stream/DataWorker\"),s=t(\"./stream/Crc32Probe\"),a=t(\"./stream/DataLengthProbe\");function o(t,e,r,i,n){this.compressedSize=t,this.uncompressedSize=e,this.crc32=r,this.compression=i,this.compressedContent=n}o.prototype={getContentWorker:function(){var t=new n(i.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),e=this;return t.on(\"end\",function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),t},getCompressedWorker:function(){return new n(i.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(t,e,r){return t.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(e.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",e)},e.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(t,e,r){\"use strict\";var i=t(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(t){return new i(\"STORE compression\")},uncompressWorker:function(){return new i(\"STORE decompression\")}},r.DEFLATE=t(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(t,e,r){\"use strict\";var i=t(\"./utils\");var o=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e){return void 0!==t&&t.length?\"string\"!==i.getTypeOf(t)?function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a<s;a++)t=t>>>8^n[255&(t^e[a])];return-1^t}(0|e,t,t.length,0):function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a<s;a++)t=t>>>8^n[255&(t^e.charCodeAt(a))];return-1^t}(0|e,t,t.length,0):0}},{\"./utils\":32}],5:[function(t,e,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(t,e,r){\"use strict\";var i=null;i=\"undefined\"!=typeof Promise?Promise:t(\"lie\"),e.exports={Promise:i}},{lie:37}],7:[function(t,e,r){\"use strict\";var i=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,n=t(\"pako\"),s=t(\"./utils\"),a=t(\"./stream/GenericWorker\"),o=i?\"uint8array\":\"array\";function h(t,e){a.call(this,\"FlateWorker/\"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=e,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,t.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new n[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},r.compressWorker=function(t){return new h(\"Deflate\",t)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(t,e,r){\"use strict\";function A(t,e){var r,i=\"\";for(r=0;r<e;r++)i+=String.fromCharCode(255&t),t>>>=8;return i}function i(t,e,r,i,n,s){var a,o,h=t.file,u=t.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),d=I.transformTo(\"string\",O.utf8encode(h.name)),c=h.comment,p=I.transformTo(\"string\",s(c)),m=I.transformTo(\"string\",O.utf8encode(c)),_=d.length!==h.name.length,g=m.length!==c.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};e&&!r||(x.crc32=t.crc32,x.compressedSize=t.compressedSize,x.uncompressedSize=t.uncompressedSize);var S=0;e&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===n?(C=798,z|=function(t,e){var r=t;return t||(r=e?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(t){return 63&(t||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+d,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(i,4)+f+b+p}}var I=t(\"../utils\"),n=t(\"../stream/GenericWorker\"),O=t(\"../utf8\"),B=t(\"../crc32\"),R=t(\"../signature\");function s(t,e,r,i){n.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=r,this.encodeFileName=i,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,n),s.prototype.push=function(t){var e=t.meta.percent||0,r=this.entriesCount,i=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,n.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:r?(e+100*(r-i-1))/r:100}}))},s.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var e=this.streamFiles&&!t.file.dir;if(e){var r=i(t,e,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(t){this.accumulate=!1;var e=this.streamFiles&&!t.file.dir,r=i(t,e,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),e)this.push({data:function(t){return R.DATA_DESCRIPTOR+A(t.crc32,4)+A(t.compressedSize,4)+A(t.uncompressedSize,4)}(t),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var t=this.bytesWritten,e=0;e<this.dirRecords.length;e++)this.push({data:this.dirRecords[e],meta:{percent:100}});var r=this.bytesWritten-t,i=function(t,e,r,i,n){var s=I.transformTo(\"string\",n(i));return R.CENTRAL_DIRECTORY_END+\"\\0\\0\\0\\0\"+A(t,2)+A(t,2)+A(e,4)+A(r,4)+A(s.length,2)+s}(this.dirRecords.length,r,t,this.zipComment,this.encodeFileName);this.push({data:i,meta:{percent:100}})},s.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},s.prototype.registerPrevious=function(t){this._sources.push(t);var e=this;return t.on(\"data\",function(t){e.processChunk(t)}),t.on(\"end\",function(){e.closedSource(e.previous.streamInfo),e._sources.length?e.prepareNextSource():e.end()}),t.on(\"error\",function(t){e.error(t)}),this},s.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},s.prototype.error=function(t){var e=this._sources;if(!n.prototype.error.call(this,t))return!1;for(var r=0;r<e.length;r++)try{e[r].error(t)}catch(t){}return!0},s.prototype.lock=function(){n.prototype.lock.call(this);for(var t=this._sources,e=0;e<t.length;e++)t[e].lock()},e.exports=s},{\"../crc32\":4,\"../signature\":23,\"../stream/GenericWorker\":28,\"../utf8\":31,\"../utils\":32}],9:[function(t,e,r){\"use strict\";var u=t(\"../compressions\"),i=t(\"./ZipFileWorker\");r.generateWorker=function(t,a,e){var o=new i(a.streamFiles,e,a.platform,a.encodeFileName),h=0;try{t.forEach(function(t,e){h++;var r=function(t,e){var r=t||e,i=u[r];if(!i)throw new Error(r+\" is not a valid compression method !\");return i}(e.options.compression,a.compression),i=e.options.compressionOptions||a.compressionOptions||{},n=e.dir,s=e.date;e._compressWorker(r,i).withStreamInfo(\"file\",{name:t,dir:n,date:s,comment:e.comment||\"\",unixPermissions:e.unixPermissions,dosPermissions:e.dosPermissions}).pipe(o)}),o.entriesCount=h}catch(t){o.error(t)}return o}},{\"../compressions\":3,\"./ZipFileWorker\":8}],10:[function(t,e,r){\"use strict\";function i(){if(!(this instanceof i))return new i;if(arguments.length)throw new Error(\"The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.\");this.files=Object.create(null),this.comment=null,this.root=\"\",this.clone=function(){var t=new i;for(var e in this)\"function\"!=typeof this[e]&&(t[e]=this[e]);return t}}(i.prototype=t(\"./object\")).loadAsync=t(\"./load\"),i.support=t(\"./support\"),i.defaults=t(\"./defaults\"),i.version=\"3.7.1\",i.loadAsync=function(t,e){return(new i).loadAsync(t,e)},i.external=t(\"./external\"),e.exports=i},{\"./defaults\":5,\"./external\":6,\"./load\":11,\"./object\":15,\"./support\":30}],11:[function(t,e,r){\"use strict\";var i=t(\"./utils\"),n=t(\"./external\"),o=t(\"./utf8\"),h=t(\"./zipEntries\"),s=t(\"./stream/Crc32Probe\"),u=t(\"./nodejsUtils\");function l(i){return new n.Promise(function(t,e){var r=i.decompressed.getContentWorker().pipe(new s);r.on(\"error\",function(t){e(t)}).on(\"end\",function(){r.streamInfo.crc32!==i.decompressed.crc32?e(new Error(\"Corrupted zip : CRC32 mismatch\")):t()}).resume()})}e.exports=function(t,s){var a=this;return s=i.extend(s||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:o.utf8decode}),u.isNode&&u.isStream(t)?n.Promise.reject(new Error(\"JSZip can't accept a stream when loading a zip file.\")):i.prepareContent(\"the loaded zip file\",t,!0,s.optimizedBinaryString,s.base64).then(function(t){var e=new h(s);return e.load(t),e}).then(function(t){var e=[n.Promise.resolve(t)],r=t.files;if(s.checkCRC32)for(var i=0;i<r.length;i++)e.push(l(r[i]));return n.Promise.all(e)}).then(function(t){for(var e=t.shift(),r=e.files,i=0;i<r.length;i++){var n=r[i];a.file(n.fileNameStr,n.decompressed,{binary:!0,optimizedBinaryString:!0,date:n.date,dir:n.dir,comment:n.fileCommentStr.length?n.fileCommentStr:null,unixPermissions:n.unixPermissions,dosPermissions:n.dosPermissions,createFolders:s.createFolders})}return e.zipComment.length&&(a.comment=e.zipComment),a})}},{\"./external\":6,\"./nodejsUtils\":14,\"./stream/Crc32Probe\":25,\"./utf8\":31,\"./utils\":32,\"./zipEntries\":33}],12:[function(t,e,r){\"use strict\";var i=t(\"../utils\"),n=t(\"../stream/GenericWorker\");function s(t,e){n.call(this,\"Nodejs stream input adapter for \"+t),this._upstreamEnded=!1,this._bindStream(e)}i.inherits(s,n),s.prototype._bindStream=function(t){var e=this;(this._stream=t).pause(),t.on(\"data\",function(t){e.push({data:t,meta:{percent:0}})}).on(\"error\",function(t){e.isPaused?this.generatedError=t:e.error(t)}).on(\"end\",function(){e.isPaused?e._upstreamEnded=!0:e.end()})},s.prototype.pause=function(){return!!n.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},e.exports=s},{\"../stream/GenericWorker\":28,\"../utils\":32}],13:[function(t,e,r){\"use strict\";var n=t(\"readable-stream\").Readable;function i(t,e,r){n.call(this,e),this._helper=t;var i=this;t.on(\"data\",function(t,e){i.push(t)||i._helper.pause(),r&&r(e)}).on(\"error\",function(t){i.emit(\"error\",t)}).on(\"end\",function(){i.push(null)})}t(\"../utils\").inherits(i,n),i.prototype._read=function(){this._helper.resume()},e.exports=i},{\"../utils\":32,\"readable-stream\":16}],14:[function(t,e,r){\"use strict\";e.exports={isNode:\"undefined\"!=typeof Buffer,newBufferFrom:function(t,e){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(t,e);if(\"number\"==typeof t)throw new Error('The \"data\" argument must not be a number');return new Buffer(t,e)},allocBuffer:function(t){if(Buffer.alloc)return Buffer.alloc(t);var e=new Buffer(t);return e.fill(0),e},isBuffer:function(t){return Buffer.isBuffer(t)},isStream:function(t){return t&&\"function\"==typeof t.on&&\"function\"==typeof t.pause&&\"function\"==typeof t.resume}}},{}],15:[function(t,e,r){\"use strict\";function s(t,e,r){var i,n=u.getTypeOf(e),s=u.extend(r||{},f);s.date=s.date||new Date,null!==s.compression&&(s.compression=s.compression.toUpperCase()),\"string\"==typeof s.unixPermissions&&(s.unixPermissions=parseInt(s.unixPermissions,8)),s.unixPermissions&&16384&s.unixPermissions&&(s.dir=!0),s.dosPermissions&&16&s.dosPermissions&&(s.dir=!0),s.dir&&(t=g(t)),s.createFolders&&(i=_(t))&&b.call(this,i,!0);var a=\"string\"===n&&!1===s.binary&&!1===s.base64;r&&void 0!==r.binary||(s.binary=!a),(e instanceof d&&0===e.uncompressedSize||s.dir||!e||0===e.length)&&(s.base64=!1,s.binary=!0,e=\"\",s.compression=\"STORE\",n=\"string\");var o=null;o=e instanceof d||e instanceof l?e:p.isNode&&p.isStream(e)?new m(t,e):u.prepareContent(t,e,s.binary,s.optimizedBinaryString,s.base64);var h=new c(t,o,s);this.files[t]=h}var n=t(\"./utf8\"),u=t(\"./utils\"),l=t(\"./stream/GenericWorker\"),a=t(\"./stream/StreamHelper\"),f=t(\"./defaults\"),d=t(\"./compressedObject\"),c=t(\"./zipObject\"),o=t(\"./generate\"),p=t(\"./nodejsUtils\"),m=t(\"./nodejs/NodejsStreamInputAdapter\"),_=function(t){\"/\"===t.slice(-1)&&(t=t.substring(0,t.length-1));var e=t.lastIndexOf(\"/\");return 0<e?t.substring(0,e):\"\"},g=function(t){return\"/\"!==t.slice(-1)&&(t+=\"/\"),t},b=function(t,e){return e=void 0!==e?e:f.createFolders,t=g(t),this.files[t]||s.call(this,t,null,{dir:!0,createFolders:e}),this.files[t]};function h(t){return\"[object RegExp]\"===Object.prototype.toString.call(t)}var i={load:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},forEach:function(t){var e,r,i;for(e in this.files)i=this.files[e],(r=e.slice(this.root.length,e.length))&&e.slice(0,this.root.length)===this.root&&t(r,i)},filter:function(r){var i=[];return this.forEach(function(t,e){r(t,e)&&i.push(e)}),i},file:function(t,e,r){if(1!==arguments.length)return t=this.root+t,s.call(this,t,e,r),this;if(h(t)){var i=t;return this.filter(function(t,e){return!e.dir&&i.test(t)})}var n=this.files[this.root+t];return n&&!n.dir?n:null},folder:function(r){if(!r)return this;if(h(r))return this.filter(function(t,e){return e.dir&&r.test(t)});var t=this.root+r,e=b.call(this,t),i=this.clone();return i.root=e.name,i},remove:function(r){r=this.root+r;var t=this.files[r];if(t||(\"/\"!==r.slice(-1)&&(r+=\"/\"),t=this.files[r]),t&&!t.dir)delete this.files[r];else for(var e=this.filter(function(t,e){return e.name.slice(0,r.length)===r}),i=0;i<e.length;i++)delete this.files[e[i].name];return this},generate:function(t){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},generateInternalStream:function(t){var e,r={};try{if((r=u.extend(t||{},{streamFiles:!1,compression:\"STORE\",compressionOptions:null,type:\"\",platform:\"DOS\",comment:null,mimeType:\"application/zip\",encodeFileName:n.utf8encode})).type=r.type.toLowerCase(),r.compression=r.compression.toUpperCase(),\"binarystring\"===r.type&&(r.type=\"string\"),!r.type)throw new Error(\"No output type specified.\");u.checkSupport(r.type),\"darwin\"!==r.platform&&\"freebsd\"!==r.platform&&\"linux\"!==r.platform&&\"sunos\"!==r.platform||(r.platform=\"UNIX\"),\"win32\"===r.platform&&(r.platform=\"DOS\");var i=r.comment||this.comment||\"\";e=o.generateWorker(this,r,i)}catch(t){(e=new l(\"error\")).error(t)}return new a(e,r.type||\"string\",r.mimeType)},generateAsync:function(t,e){return this.generateInternalStream(t).accumulate(e)},generateNodeStream:function(t,e){return(t=t||{}).type||(t.type=\"nodebuffer\"),this.generateInternalStream(t).toNodejsStream(e)}};e.exports=i},{\"./compressedObject\":2,\"./defaults\":5,\"./generate\":9,\"./nodejs/NodejsStreamInputAdapter\":12,\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31,\"./utils\":32,\"./zipObject\":35}],16:[function(t,e,r){e.exports=t(\"stream\")},{stream:void 0}],17:[function(t,e,r){\"use strict\";var i=t(\"./DataReader\");function n(t){i.call(this,t);for(var e=0;e<this.data.length;e++)t[e]=255&t[e]}t(\"../utils\").inherits(n,i),n.prototype.byteAt=function(t){return this.data[this.zero+t]},n.prototype.lastIndexOfSignature=function(t){for(var e=t.charCodeAt(0),r=t.charCodeAt(1),i=t.charCodeAt(2),n=t.charCodeAt(3),s=this.length-4;0<=s;--s)if(this.data[s]===e&&this.data[s+1]===r&&this.data[s+2]===i&&this.data[s+3]===n)return s-this.zero;return-1},n.prototype.readAndCheckSignature=function(t){var e=t.charCodeAt(0),r=t.charCodeAt(1),i=t.charCodeAt(2),n=t.charCodeAt(3),s=this.readData(4);return e===s[0]&&r===s[1]&&i===s[2]&&n===s[3]},n.prototype.readData=function(t){if(this.checkOffset(t),0===t)return[];var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{\"../utils\":32,\"./DataReader\":18}],18:[function(t,e,r){\"use strict\";var i=t(\"../utils\");function n(t){this.data=t,this.length=t.length,this.index=0,this.zero=0}n.prototype={checkOffset:function(t){this.checkIndex(this.index+t)},checkIndex:function(t){if(this.length<this.zero+t||t<0)throw new Error(\"End of data reached (data length = \"+this.length+\", asked index = \"+t+\"). Corrupted zip ?\")},setIndex:function(t){this.checkIndex(t),this.index=t},skip:function(t){this.setIndex(this.index+t)},byteAt:function(t){},readInt:function(t){var e,r=0;for(this.checkOffset(t),e=this.index+t-1;e>=this.index;e--)r=(r<<8)+this.byteAt(e);return this.index+=t,r},readString:function(t){return i.transformTo(\"string\",this.readData(t))},readData:function(t){},lastIndexOfSignature:function(t){},readAndCheckSignature:function(t){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}},e.exports=n},{\"../utils\":32}],19:[function(t,e,r){\"use strict\";var i=t(\"./Uint8ArrayReader\");function n(t){i.call(this,t)}t(\"../utils\").inherits(n,i),n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(t,e,r){\"use strict\";var i=t(\"./DataReader\");function n(t){i.call(this,t)}t(\"../utils\").inherits(n,i),n.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},n.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},n.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{\"../utils\":32,\"./DataReader\":18}],21:[function(t,e,r){\"use strict\";var i=t(\"./ArrayReader\");function n(t){i.call(this,t)}t(\"../utils\").inherits(n,i),n.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(t,e,r){\"use strict\";var i=t(\"../utils\"),n=t(\"../support\"),s=t(\"./ArrayReader\"),a=t(\"./StringReader\"),o=t(\"./NodeBufferReader\"),h=t(\"./Uint8ArrayReader\");e.exports=function(t){var e=i.getTypeOf(t);return i.checkSupport(e),\"string\"!==e||n.uint8array?\"nodebuffer\"===e?new o(t):n.uint8array?new h(i.transformTo(\"uint8array\",t)):new s(i.transformTo(\"array\",t)):new a(t)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(t,e,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(t,e,r){\"use strict\";var i=t(\"./GenericWorker\"),n=t(\"../utils\");function s(t){i.call(this,\"ConvertWorker to \"+t),this.destType=t}n.inherits(s,i),s.prototype.processChunk=function(t){this.push({data:n.transformTo(this.destType,t.data),meta:t.meta})},e.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(t,e,r){\"use strict\";var i=t(\"./GenericWorker\"),n=t(\"../crc32\");function s(){i.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}t(\"../utils\").inherits(s,i),s.prototype.processChunk=function(t){this.streamInfo.crc32=n(t.data,this.streamInfo.crc32||0),this.push(t)},e.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(t,e,r){\"use strict\";var i=t(\"../utils\"),n=t(\"./GenericWorker\");function s(t){n.call(this,\"DataLengthProbe for \"+t),this.propName=t,this.withStreamInfo(t,0)}i.inherits(s,n),s.prototype.processChunk=function(t){if(t){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+t.data.length}n.prototype.processChunk.call(this,t)},e.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(t,e,r){\"use strict\";var i=t(\"../utils\"),n=t(\"./GenericWorker\");function s(t){n.call(this,\"DataWorker\");var e=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,t.then(function(t){e.dataIsReady=!0,e.data=t,e.max=t&&t.length||0,e.type=i.getTypeOf(t),e.isPaused||e._tickAndRepeat()},function(t){e.error(t)})}i.inherits(s,n),s.prototype.cleanUp=function(){n.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,i.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(i.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var t=null,e=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":t=this.data.substring(this.index,e);break;case\"uint8array\":t=this.data.subarray(this.index,e);break;case\"array\":case\"nodebuffer\":t=this.data.slice(this.index,e)}return this.index=e,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})},e.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(t,e,r){\"use strict\";function i(t){this.name=t||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}i.prototype={push:function(t){this.emit(\"data\",t)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(t){this.emit(\"error\",t)}return!0},error:function(t){return!this.isFinished&&(this.isPaused?this.generatedError=t:(this.isFinished=!0,this.emit(\"error\",t),this.previous&&this.previous.error(t),this.cleanUp()),!0)},on:function(t,e){return this._listeners[t].push(e),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(t,e){if(this._listeners[t])for(var r=0;r<this._listeners[t].length;r++)this._listeners[t][r].call(this,e)},pipe:function(t){return t.registerPrevious(this)},registerPrevious:function(t){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.streamInfo=t.streamInfo,this.mergeStreamInfo(),this.previous=t;var e=this;return t.on(\"data\",function(t){e.processChunk(t)}),t.on(\"end\",function(){e.end()}),t.on(\"error\",function(t){e.error(t)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var t=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),t=!0),this.previous&&this.previous.resume(),!t},flush:function(){},processChunk:function(t){this.push(t)},withStreamInfo:function(t,e){return this.extraStreamInfo[t]=e,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var t in this.extraStreamInfo)this.extraStreamInfo.hasOwnProperty(t)&&(this.streamInfo[t]=this.extraStreamInfo[t])},lock:function(){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var t=\"Worker \"+this.name;return this.previous?this.previous+\" -> \"+t:t}},e.exports=i},{}],29:[function(t,e,r){\"use strict\";var h=t(\"../utils\"),n=t(\"./ConvertWorker\"),s=t(\"./GenericWorker\"),u=t(\"../base64\"),i=t(\"../support\"),a=t(\"../external\"),o=null;if(i.nodestream)try{o=t(\"../nodejs/NodejsStreamOutputAdapter\")}catch(t){}function l(t,o){return new a.Promise(function(e,r){var i=[],n=t._internalType,s=t._outputType,a=t._mimeType;t.on(\"data\",function(t,e){i.push(t),o&&o(e)}).on(\"error\",function(t){i=[],r(t)}).on(\"end\",function(){try{var t=function(t,e,r){switch(t){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",e),r);case\"base64\":return u.encode(e);default:return h.transformTo(t,e)}}(s,function(t,e){var r,i=0,n=null,s=0;for(r=0;r<e.length;r++)s+=e[r].length;switch(t){case\"string\":return e.join(\"\");case\"array\":return Array.prototype.concat.apply([],e);case\"uint8array\":for(n=new Uint8Array(s),r=0;r<e.length;r++)n.set(e[r],i),i+=e[r].length;return n;case\"nodebuffer\":return Buffer.concat(e);default:throw new Error(\"concat : unsupported type '\"+t+\"'\")}}(n,i),a);e(t)}catch(t){r(t)}i=[]}).resume()})}function f(t,e,r){var i=e;switch(e){case\"blob\":case\"arraybuffer\":i=\"uint8array\";break;case\"base64\":i=\"string\"}try{this._internalType=i,this._outputType=e,this._mimeType=r,h.checkSupport(i),this._worker=t.pipe(new n(i)),t.lock()}catch(t){this._worker=new s(\"error\"),this._worker.error(t)}}f.prototype={accumulate:function(t){return l(this,t)},on:function(t,e){var r=this;return\"data\"===t?this._worker.on(t,function(t){e.call(r,t.data,t.meta)}):this._worker.on(t,function(){h.delay(e,arguments,r)}),this},resume:function(){return h.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(t){if(h.checkSupport(\"nodestream\"),\"nodebuffer\"!==this._outputType)throw new Error(this._outputType+\" is not supported by this method\");return new o(this,{objectMode:\"nodebuffer\"!==this._outputType},t)}},e.exports=f},{\"../base64\":1,\"../external\":6,\"../nodejs/NodejsStreamOutputAdapter\":13,\"../support\":30,\"../utils\":32,\"./ConvertWorker\":24,\"./GenericWorker\":28}],30:[function(t,e,r){\"use strict\";if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer=\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof Uint8Array,r.nodebuffer=\"undefined\"!=typeof Buffer,r.uint8array=\"undefined\"!=typeof Uint8Array,\"undefined\"==typeof ArrayBuffer)r.blob=!1;else{var i=new ArrayBuffer(0);try{r.blob=0===new Blob([i],{type:\"application/zip\"}).size}catch(t){try{var n=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);n.append(i),r.blob=0===n.getBlob(\"application/zip\").size}catch(t){r.blob=!1}}}try{r.nodestream=!!t(\"readable-stream\").Readable}catch(t){r.nodestream=!1}},{\"readable-stream\":16}],31:[function(t,e,s){\"use strict\";for(var o=t(\"./utils\"),h=t(\"./support\"),r=t(\"./nodejsUtils\"),i=t(\"./stream/GenericWorker\"),u=new Array(256),n=0;n<256;n++)u[n]=252<=n?6:248<=n?5:240<=n?4:224<=n?3:192<=n?2:1;u[254]=u[254]=1;function a(){i.call(this,\"utf-8 decode\"),this.leftOver=null}function l(){i.call(this,\"utf-8 encode\")}s.utf8encode=function(t){return h.nodebuffer?r.newBufferFrom(t,\"utf-8\"):function(t){var e,r,i,n,s,a=t.length,o=0;for(n=0;n<a;n++)55296==(64512&(r=t.charCodeAt(n)))&&n+1<a&&56320==(64512&(i=t.charCodeAt(n+1)))&&(r=65536+(r-55296<<10)+(i-56320),n++),o+=r<128?1:r<2048?2:r<65536?3:4;for(e=h.uint8array?new Uint8Array(o):new Array(o),n=s=0;s<o;n++)55296==(64512&(r=t.charCodeAt(n)))&&n+1<a&&56320==(64512&(i=t.charCodeAt(n+1)))&&(r=65536+(r-55296<<10)+(i-56320),n++),r<128?e[s++]=r:(r<2048?e[s++]=192|r>>>6:(r<65536?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e}(t)},s.utf8decode=function(t){return h.nodebuffer?o.transformTo(\"nodebuffer\",t).toString(\"utf-8\"):function(t){var e,r,i,n,s=t.length,a=new Array(2*s);for(e=r=0;e<s;)if((i=t[e++])<128)a[r++]=i;else if(4<(n=u[i]))a[r++]=65533,e+=n-1;else{for(i&=2===n?31:3===n?15:7;1<n&&e<s;)i=i<<6|63&t[e++],n--;1<n?a[r++]=65533:i<65536?a[r++]=i:(i-=65536,a[r++]=55296|i>>10&1023,a[r++]=56320|1023&i)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(t=o.transformTo(h.uint8array?\"uint8array\":\"array\",t))},o.inherits(a,i),a.prototype.processChunk=function(t){var e=o.transformTo(h.uint8array?\"uint8array\":\"array\",t.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=e;(e=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),e.set(r,this.leftOver.length)}else e=this.leftOver.concat(e);this.leftOver=null}var i=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0?e:0===r?e:r+u[t[r]]>e?r:e}(e),n=e;i!==e.length&&(h.uint8array?(n=e.subarray(0,i),this.leftOver=e.subarray(i,e.length)):(n=e.slice(0,i),this.leftOver=e.slice(i,e.length))),this.push({data:s.utf8decode(n),meta:t.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,i),l.prototype.processChunk=function(t){this.push({data:s.utf8encode(t.data),meta:t.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(t,e,a){\"use strict\";var o=t(\"./support\"),h=t(\"./base64\"),r=t(\"./nodejsUtils\"),i=t(\"set-immediate-shim\"),u=t(\"./external\");function n(t){return t}function l(t,e){for(var r=0;r<t.length;++r)e[r]=255&t.charCodeAt(r);return e}a.newBlob=function(e,r){a.checkSupport(\"blob\");try{return new Blob([e],{type:r})}catch(t){try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return i.append(e),i.getBlob(r)}catch(t){throw new Error(\"Bug : can't construct the Blob.\")}}};var s={stringifyByChunk:function(t,e,r){var i=[],n=0,s=t.length;if(s<=r)return String.fromCharCode.apply(null,t);for(;n<s;)\"array\"===e||\"nodebuffer\"===e?i.push(String.fromCharCode.apply(null,t.slice(n,Math.min(n+r,s)))):i.push(String.fromCharCode.apply(null,t.subarray(n,Math.min(n+r,s)))),n+=r;return i.join(\"\")},stringifyByChar:function(t){for(var e=\"\",r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},applyCanBeUsed:{uint8array:function(){try{return o.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(t){return!1}}(),nodebuffer:function(){try{return o.nodebuffer&&1===String.fromCharCode.apply(null,r.allocBuffer(1)).length}catch(t){return!1}}()}};function f(t){var e=65536,r=a.getTypeOf(t),i=!0;if(\"uint8array\"===r?i=s.applyCanBeUsed.uint8array:\"nodebuffer\"===r&&(i=s.applyCanBeUsed.nodebuffer),i)for(;1<e;)try{return s.stringifyByChunk(t,r,e)}catch(t){e=Math.floor(e/2)}return s.stringifyByChar(t)}function d(t,e){for(var r=0;r<t.length;r++)e[r]=t[r];return e}a.applyFromCharCode=f;var c={};c.string={string:n,array:function(t){return l(t,new Array(t.length))},arraybuffer:function(t){return c.string.uint8array(t).buffer},uint8array:function(t){return l(t,new Uint8Array(t.length))},nodebuffer:function(t){return l(t,r.allocBuffer(t.length))}},c.array={string:f,array:n,arraybuffer:function(t){return new Uint8Array(t).buffer},uint8array:function(t){return new Uint8Array(t)},nodebuffer:function(t){return r.newBufferFrom(t)}},c.arraybuffer={string:function(t){return f(new Uint8Array(t))},array:function(t){return d(new Uint8Array(t),new Array(t.byteLength))},arraybuffer:n,uint8array:function(t){return new Uint8Array(t)},nodebuffer:function(t){return r.newBufferFrom(new Uint8Array(t))}},c.uint8array={string:f,array:function(t){return d(t,new Array(t.length))},arraybuffer:function(t){return t.buffer},uint8array:n,nodebuffer:function(t){return r.newBufferFrom(t)}},c.nodebuffer={string:f,array:function(t){return d(t,new Array(t.length))},arraybuffer:function(t){return c.nodebuffer.uint8array(t).buffer},uint8array:function(t){return d(t,new Uint8Array(t.length))},nodebuffer:n},a.transformTo=function(t,e){if(e=e||\"\",!t)return e;a.checkSupport(t);var r=a.getTypeOf(e);return c[r][t](e)},a.getTypeOf=function(t){return\"string\"==typeof t?\"string\":\"[object Array]\"===Object.prototype.toString.call(t)?\"array\":o.nodebuffer&&r.isBuffer(t)?\"nodebuffer\":o.uint8array&&t instanceof Uint8Array?\"uint8array\":o.arraybuffer&&t instanceof ArrayBuffer?\"arraybuffer\":void 0},a.checkSupport=function(t){if(!o[t.toLowerCase()])throw new Error(t+\" is not supported by this platform\")},a.MAX_VALUE_16BITS=65535,a.MAX_VALUE_32BITS=-1,a.pretty=function(t){var e,r,i=\"\";for(r=0;r<(t||\"\").length;r++)i+=\"\\\\x\"+((e=t.charCodeAt(r))<16?\"0\":\"\")+e.toString(16).toUpperCase();return i},a.delay=function(t,e,r){i(function(){t.apply(r||null,e||[])})},a.inherits=function(t,e){function r(){}r.prototype=e.prototype,t.prototype=new r},a.extend=function(){var t,e,r={};for(t=0;t<arguments.length;t++)for(e in arguments[t])arguments[t].hasOwnProperty(e)&&void 0===r[e]&&(r[e]=arguments[t][e]);return r},a.prepareContent=function(r,t,i,n,s){return u.Promise.resolve(t).then(function(i){return o.blob&&(i instanceof Blob||-1!==[\"[object File]\",\"[object Blob]\"].indexOf(Object.prototype.toString.call(i)))&&\"undefined\"!=typeof FileReader?new u.Promise(function(e,r){var t=new FileReader;t.onload=function(t){e(t.target.result)},t.onerror=function(t){r(t.target.error)},t.readAsArrayBuffer(i)}):i}).then(function(t){var e=a.getTypeOf(t);return e?(\"arraybuffer\"===e?t=a.transformTo(\"uint8array\",t):\"string\"===e&&(s?t=h.decode(t):i&&!0!==n&&(t=function(t){return l(t,o.uint8array?new Uint8Array(t.length):new Array(t.length))}(t))),t):u.Promise.reject(new Error(\"Can't read the data of '\"+r+\"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?\"))})}},{\"./base64\":1,\"./external\":6,\"./nodejsUtils\":14,\"./support\":30,\"set-immediate-shim\":54}],33:[function(t,e,r){\"use strict\";var i=t(\"./reader/readerFor\"),n=t(\"./utils\"),s=t(\"./signature\"),a=t(\"./zipEntry\"),o=(t(\"./utf8\"),t(\"./support\"));function h(t){this.files=[],this.loadOptions=t}h.prototype={checkSignature:function(t){if(!this.reader.readAndCheckSignature(t)){this.reader.index-=4;var e=this.reader.readString(4);throw new Error(\"Corrupted zip or bug: unexpected signature (\"+n.pretty(e)+\", expected \"+n.pretty(t)+\")\")}},isSignature:function(t,e){var r=this.reader.index;this.reader.setIndex(t);var i=this.reader.readString(4)===e;return this.reader.setIndex(r),i},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var t=this.reader.readData(this.zipCommentLength),e=o.uint8array?\"uint8array\":\"array\",r=n.transformTo(e,t);this.zipComment=this.loadOptions.decodeFileName(r)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var t,e,r,i=this.zip64EndOfCentralSize-44;0<i;)t=this.reader.readInt(2),e=this.reader.readInt(4),r=this.reader.readData(e),this.zip64ExtensibleData[t]={id:t,length:e,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error(\"Multi-volumes zip are not supported\")},readLocalFiles:function(){var t,e;for(t=0;t<this.files.length;t++)e=this.files[t],this.reader.setIndex(e.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),e.readLocalPart(this.reader),e.handleUTF8(),e.processAttributes()},readCentralDir:function(){var t;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(t=new a({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(t);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error(\"Corrupted zip or bug: expected \"+this.centralDirRecords+\" records in central dir, got \"+this.files.length)},readEndOfCentral:function(){var t=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(t<0)throw!this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error(\"Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html\"):new Error(\"Corrupted zip: can't find end of central directory\");this.reader.setIndex(t);var e=t;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===n.MAX_VALUE_16BITS||this.diskWithCentralDirStart===n.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===n.MAX_VALUE_16BITS||this.centralDirRecords===n.MAX_VALUE_16BITS||this.centralDirSize===n.MAX_VALUE_32BITS||this.centralDirOffset===n.MAX_VALUE_32BITS){if(this.zip64=!0,(t=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory locator\");if(this.reader.setIndex(t),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory\");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var r=this.centralDirOffset+this.centralDirSize;this.zip64&&(r+=20,r+=12+this.zip64EndOfCentralSize);var i=e-r;if(0<i)this.isSignature(e,s.CENTRAL_FILE_HEADER)||(this.reader.zero=i);else if(i<0)throw new Error(\"Corrupted zip: missing \"+Math.abs(i)+\" bytes.\")},prepareReader:function(t){this.reader=i(t)},load:function(t){this.prepareReader(t),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},e.exports=h},{\"./reader/readerFor\":22,\"./signature\":23,\"./support\":30,\"./utf8\":31,\"./utils\":32,\"./zipEntry\":34}],34:[function(t,e,r){\"use strict\";var i=t(\"./reader/readerFor\"),s=t(\"./utils\"),n=t(\"./compressedObject\"),a=t(\"./crc32\"),o=t(\"./utf8\"),h=t(\"./compressions\"),u=t(\"./support\");function l(t,e){this.options=t,this.loadOptions=e}l.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(t){var e,r;if(t.skip(22),this.fileNameLength=t.readInt(2),r=t.readInt(2),this.fileName=t.readData(this.fileNameLength),t.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error(\"Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)\");if(null===(e=function(t){for(var e in h)if(h.hasOwnProperty(e)&&h[e].magic===t)return h[e];return null}(this.compressionMethod)))throw new Error(\"Corrupted zip : compression \"+s.pretty(this.compressionMethod)+\" unknown (inner file : \"+s.transformTo(\"string\",this.fileName)+\")\");this.decompressed=new n(this.compressedSize,this.uncompressedSize,this.crc32,e,t.readData(this.compressedSize))},readCentralPart:function(t){this.versionMadeBy=t.readInt(2),t.skip(2),this.bitFlag=t.readInt(2),this.compressionMethod=t.readString(2),this.date=t.readDate(),this.crc32=t.readInt(4),this.compressedSize=t.readInt(4),this.uncompressedSize=t.readInt(4);var e=t.readInt(2);if(this.extraFieldsLength=t.readInt(2),this.fileCommentLength=t.readInt(2),this.diskNumberStart=t.readInt(2),this.internalFileAttributes=t.readInt(2),this.externalFileAttributes=t.readInt(4),this.localHeaderOffset=t.readInt(4),this.isEncrypted())throw new Error(\"Encrypted zip are not supported\");t.skip(e),this.readExtraFields(t),this.parseZIP64ExtraField(t),this.fileComment=t.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var t=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==t&&(this.dosPermissions=63&this.externalFileAttributes),3==t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(t){if(this.extraFields[1]){var e=i(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(t){var e,r,i,n=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index+4<n;)e=t.readInt(2),r=t.readInt(2),i=t.readData(r),this.extraFields[e]={id:e,length:r,value:i};t.setIndex(n)},handleUTF8:function(){var t=u.uint8array?\"uint8array\":\"array\";if(this.useUTF8())this.fileNameStr=o.utf8decode(this.fileName),this.fileCommentStr=o.utf8decode(this.fileComment);else{var e=this.findExtraFieldUnicodePath();if(null!==e)this.fileNameStr=e;else{var r=s.transformTo(t,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(r)}var i=this.findExtraFieldUnicodeComment();if(null!==i)this.fileCommentStr=i;else{var n=s.transformTo(t,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(n)}}},findExtraFieldUnicodePath:function(){var t=this.extraFields[28789];if(t){var e=i(t.value);return 1!==e.readInt(1)?null:a(this.fileName)!==e.readInt(4)?null:o.utf8decode(e.readData(t.length-5))}return null},findExtraFieldUnicodeComment:function(){var t=this.extraFields[25461];if(t){var e=i(t.value);return 1!==e.readInt(1)?null:a(this.fileComment)!==e.readInt(4)?null:o.utf8decode(e.readData(t.length-5))}return null}},e.exports=l},{\"./compressedObject\":2,\"./compressions\":3,\"./crc32\":4,\"./reader/readerFor\":22,\"./support\":30,\"./utf8\":31,\"./utils\":32}],35:[function(t,e,r){\"use strict\";function i(t,e,r){this.name=t,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=e,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions}}var s=t(\"./stream/StreamHelper\"),n=t(\"./stream/DataWorker\"),a=t(\"./utf8\"),o=t(\"./compressedObject\"),h=t(\"./stream/GenericWorker\");i.prototype={internalStream:function(t){var e=null,r=\"string\";try{if(!t)throw new Error(\"No output type specified.\");var i=\"string\"===(r=t.toLowerCase())||\"text\"===r;\"binarystring\"!==r&&\"text\"!==r||(r=\"string\"),e=this._decompressWorker();var n=!this._dataBinary;n&&!i&&(e=e.pipe(new a.Utf8EncodeWorker)),!n&&i&&(e=e.pipe(new a.Utf8DecodeWorker))}catch(t){(e=new h(\"error\")).error(t)}return new s(e,r,\"\")},async:function(t,e){return this.internalStream(t).accumulate(e)},nodeStream:function(t,e){return this.internalStream(t||\"nodebuffer\").toNodejsStream(e)},_compressWorker:function(t,e){if(this._data instanceof o&&this._data.compression.magic===t.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new a.Utf8EncodeWorker)),o.createWorkerFrom(r,t,e)},_decompressWorker:function(){return this._data instanceof o?this._data.getContentWorker():this._data instanceof h?this._data:new n(this._data)}};for(var u=[\"asText\",\"asBinary\",\"asNodeBuffer\",\"asUint8Array\",\"asArrayBuffer\"],l=function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},f=0;f<u.length;f++)i.prototype[u[f]]=l;e.exports=i},{\"./compressedObject\":2,\"./stream/DataWorker\":27,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31}],36:[function(t,l,e){(function(e){\"use strict\";var r,i,t=e.MutationObserver||e.WebKitMutationObserver;if(t){var n=0,s=new t(u),a=e.document.createTextNode(\"\");s.observe(a,{characterData:!0}),r=function(){a.data=n=++n%2}}else if(e.setImmediate||void 0===e.MessageChannel)r=\"document\"in e&&\"onreadystatechange\"in e.document.createElement(\"script\")?function(){var t=e.document.createElement(\"script\");t.onreadystatechange=function(){u(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(u,0)};else{var o=new e.MessageChannel;o.port1.onmessage=u,r=function(){o.port2.postMessage(0)}}var h=[];function u(){var t,e;i=!0;for(var r=h.length;r;){for(e=h,h=[],t=-1;++t<r;)e[t]();r=h.length}i=!1}l.exports=function(t){1!==h.push(t)||i||r()}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],37:[function(t,e,r){\"use strict\";var n=t(\"immediate\");function u(){}var l={},s=[\"REJECTED\"],a=[\"FULFILLED\"],i=[\"PENDING\"];function o(t){if(\"function\"!=typeof t)throw new TypeError(\"resolver must be a function\");this.state=i,this.queue=[],this.outcome=void 0,t!==u&&c(this,t)}function h(t,e,r){this.promise=t,\"function\"==typeof e&&(this.onFulfilled=e,this.callFulfilled=this.otherCallFulfilled),\"function\"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function f(e,r,i){n(function(){var t;try{t=r(i)}catch(t){return l.reject(e,t)}t===e?l.reject(e,new TypeError(\"Cannot resolve promise with itself\")):l.resolve(e,t)})}function d(t){var e=t&&t.then;if(t&&(\"object\"==typeof t||\"function\"==typeof t)&&\"function\"==typeof e)return function(){e.apply(t,arguments)}}function c(e,t){var r=!1;function i(t){r||(r=!0,l.reject(e,t))}function n(t){r||(r=!0,l.resolve(e,t))}var s=p(function(){t(n,i)});\"error\"===s.status&&i(s.value)}function p(t,e){var r={};try{r.value=t(e),r.status=\"success\"}catch(t){r.status=\"error\",r.value=t}return r}(e.exports=o).prototype.finally=function(e){if(\"function\"!=typeof e)return this;var r=this.constructor;return this.then(function(t){return r.resolve(e()).then(function(){return t})},function(t){return r.resolve(e()).then(function(){throw t})})},o.prototype.catch=function(t){return this.then(null,t)},o.prototype.then=function(t,e){if(\"function\"!=typeof t&&this.state===a||\"function\"!=typeof e&&this.state===s)return this;var r=new this.constructor(u);this.state!==i?f(r,this.state===a?t:e,this.outcome):this.queue.push(new h(r,t,e));return r},h.prototype.callFulfilled=function(t){l.resolve(this.promise,t)},h.prototype.otherCallFulfilled=function(t){f(this.promise,this.onFulfilled,t)},h.prototype.callRejected=function(t){l.reject(this.promise,t)},h.prototype.otherCallRejected=function(t){f(this.promise,this.onRejected,t)},l.resolve=function(t,e){var r=p(d,e);if(\"error\"===r.status)return l.reject(t,r.value);var i=r.value;if(i)c(t,i);else{t.state=a,t.outcome=e;for(var n=-1,s=t.queue.length;++n<s;)t.queue[n].callFulfilled(e)}return t},l.reject=function(t,e){t.state=s,t.outcome=e;for(var r=-1,i=t.queue.length;++r<i;)t.queue[r].callRejected(e);return t},o.resolve=function(t){if(t instanceof this)return t;return l.resolve(new this(u),t)},o.reject=function(t){var e=new this(u);return l.reject(e,t)},o.all=function(t){var r=this;if(\"[object Array]\"!==Object.prototype.toString.call(t))return this.reject(new TypeError(\"must be an array\"));var i=t.length,n=!1;if(!i)return this.resolve([]);var s=new Array(i),a=0,e=-1,o=new this(u);for(;++e<i;)h(t[e],e);return o;function h(t,e){r.resolve(t).then(function(t){s[e]=t,++a!==i||n||(n=!0,l.resolve(o,s))},function(t){n||(n=!0,l.reject(o,t))})}},o.race=function(t){var e=this;if(\"[object Array]\"!==Object.prototype.toString.call(t))return this.reject(new TypeError(\"must be an array\"));var r=t.length,i=!1;if(!r)return this.resolve([]);var n=-1,s=new this(u);for(;++n<r;)a=t[n],e.resolve(a).then(function(t){i||(i=!0,l.resolve(s,t))},function(t){i||(i=!0,l.reject(s,t))});var a;return s}},{immediate:36}],38:[function(t,e,r){\"use strict\";var i={};(0,t(\"./lib/utils/common\").assign)(i,t(\"./lib/deflate\"),t(\"./lib/inflate\"),t(\"./lib/zlib/constants\")),e.exports=i},{\"./lib/deflate\":39,\"./lib/inflate\":40,\"./lib/utils/common\":41,\"./lib/zlib/constants\":44}],39:[function(t,e,r){\"use strict\";var a=t(\"./zlib/deflate\"),o=t(\"./utils/common\"),h=t(\"./utils/strings\"),n=t(\"./zlib/messages\"),s=t(\"./zlib/zstream\"),u=Object.prototype.toString,l=0,f=-1,d=0,c=8;function p(t){if(!(this instanceof p))return new p(t);this.options=o.assign({level:f,method:c,chunkSize:16384,windowBits:15,memLevel:8,strategy:d,to:\"\"},t||{});var e=this.options;e.raw&&0<e.windowBits?e.windowBits=-e.windowBits:e.gzip&&0<e.windowBits&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var r=a.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(r!==l)throw new Error(n[r]);if(e.header&&a.deflateSetHeader(this.strm,e.header),e.dictionary){var i;if(i=\"string\"==typeof e.dictionary?h.string2buf(e.dictionary):\"[object ArrayBuffer]\"===u.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,(r=a.deflateSetDictionary(this.strm,i))!==l)throw new Error(n[r]);this._dict_set=!0}}function i(t,e){var r=new p(e);if(r.push(t,!0),r.err)throw r.msg||n[r.err];return r.result}p.prototype.push=function(t,e){var r,i,n=this.strm,s=this.options.chunkSize;if(this.ended)return!1;i=e===~~e?e:!0===e?4:0,\"string\"==typeof t?n.input=h.string2buf(t):\"[object ArrayBuffer]\"===u.call(t)?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;do{if(0===n.avail_out&&(n.output=new o.Buf8(s),n.next_out=0,n.avail_out=s),1!==(r=a.deflate(n,i))&&r!==l)return this.onEnd(r),!(this.ended=!0);0!==n.avail_out&&(0!==n.avail_in||4!==i&&2!==i)||(\"string\"===this.options.to?this.onData(h.buf2binstring(o.shrinkBuf(n.output,n.next_out))):this.onData(o.shrinkBuf(n.output,n.next_out)))}while((0<n.avail_in||0===n.avail_out)&&1!==r);return 4===i?(r=a.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===l):2!==i||(this.onEnd(l),!(n.avail_out=0))},p.prototype.onData=function(t){this.chunks.push(t)},p.prototype.onEnd=function(t){t===l&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},r.Deflate=p,r.deflate=i,r.deflateRaw=function(t,e){return(e=e||{}).raw=!0,i(t,e)},r.gzip=function(t,e){return(e=e||{}).gzip=!0,i(t,e)}},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/deflate\":46,\"./zlib/messages\":51,\"./zlib/zstream\":53}],40:[function(t,e,r){\"use strict\";var d=t(\"./zlib/inflate\"),c=t(\"./utils/common\"),p=t(\"./utils/strings\"),m=t(\"./zlib/constants\"),i=t(\"./zlib/messages\"),n=t(\"./zlib/zstream\"),s=t(\"./zlib/gzheader\"),_=Object.prototype.toString;function a(t){if(!(this instanceof a))return new a(t);this.options=c.assign({chunkSize:16384,windowBits:0,to:\"\"},t||{});var e=this.options;e.raw&&0<=e.windowBits&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(0<=e.windowBits&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),15<e.windowBits&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new n,this.strm.avail_out=0;var r=d.inflateInit2(this.strm,e.windowBits);if(r!==m.Z_OK)throw new Error(i[r]);this.header=new s,d.inflateGetHeader(this.strm,this.header)}function o(t,e){var r=new a(e);if(r.push(t,!0),r.err)throw r.msg||i[r.err];return r.result}a.prototype.push=function(t,e){var r,i,n,s,a,o,h=this.strm,u=this.options.chunkSize,l=this.options.dictionary,f=!1;if(this.ended)return!1;i=e===~~e?e:!0===e?m.Z_FINISH:m.Z_NO_FLUSH,\"string\"==typeof t?h.input=p.binstring2buf(t):\"[object ArrayBuffer]\"===_.call(t)?h.input=new Uint8Array(t):h.input=t,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new c.Buf8(u),h.next_out=0,h.avail_out=u),(r=d.inflate(h,m.Z_NO_FLUSH))===m.Z_NEED_DICT&&l&&(o=\"string\"==typeof l?p.string2buf(l):\"[object ArrayBuffer]\"===_.call(l)?new Uint8Array(l):l,r=d.inflateSetDictionary(this.strm,o)),r===m.Z_BUF_ERROR&&!0===f&&(r=m.Z_OK,f=!1),r!==m.Z_STREAM_END&&r!==m.Z_OK)return this.onEnd(r),!(this.ended=!0);h.next_out&&(0!==h.avail_out&&r!==m.Z_STREAM_END&&(0!==h.avail_in||i!==m.Z_FINISH&&i!==m.Z_SYNC_FLUSH)||(\"string\"===this.options.to?(n=p.utf8border(h.output,h.next_out),s=h.next_out-n,a=p.buf2string(h.output,n),h.next_out=s,h.avail_out=u-s,s&&c.arraySet(h.output,h.output,n,s,0),this.onData(a)):this.onData(c.shrinkBuf(h.output,h.next_out)))),0===h.avail_in&&0===h.avail_out&&(f=!0)}while((0<h.avail_in||0===h.avail_out)&&r!==m.Z_STREAM_END);return r===m.Z_STREAM_END&&(i=m.Z_FINISH),i===m.Z_FINISH?(r=d.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===m.Z_OK):i!==m.Z_SYNC_FLUSH||(this.onEnd(m.Z_OK),!(h.avail_out=0))},a.prototype.onData=function(t){this.chunks.push(t)},a.prototype.onEnd=function(t){t===m.Z_OK&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=c.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},r.Inflate=a,r.inflate=o,r.inflateRaw=function(t,e){return(e=e||{}).raw=!0,o(t,e)},r.ungzip=o},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/constants\":44,\"./zlib/gzheader\":47,\"./zlib/inflate\":49,\"./zlib/messages\":51,\"./zlib/zstream\":53}],41:[function(t,e,r){\"use strict\";var i=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Int32Array;r.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var r=e.shift();if(r){if(\"object\"!=typeof r)throw new TypeError(r+\"must be non-object\");for(var i in r)r.hasOwnProperty(i)&&(t[i]=r[i])}}return t},r.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var n={arraySet:function(t,e,r,i,n){if(e.subarray&&t.subarray)t.set(e.subarray(r,r+i),n);else for(var s=0;s<i;s++)t[n+s]=e[r+s]},flattenChunks:function(t){var e,r,i,n,s,a;for(e=i=0,r=t.length;e<r;e++)i+=t[e].length;for(a=new Uint8Array(i),e=n=0,r=t.length;e<r;e++)s=t[e],a.set(s,n),n+=s.length;return a}},s={arraySet:function(t,e,r,i,n){for(var s=0;s<i;s++)t[n+s]=e[r+s]},flattenChunks:function(t){return[].concat.apply([],t)}};r.setTyped=function(t){t?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,n)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,s))},r.setTyped(i)},{}],42:[function(t,e,r){\"use strict\";var h=t(\"./common\"),n=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(t){n=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){s=!1}for(var u=new h.Buf8(256),i=0;i<256;i++)u[i]=252<=i?6:248<=i?5:240<=i?4:224<=i?3:192<=i?2:1;function l(t,e){if(e<65537&&(t.subarray&&s||!t.subarray&&n))return String.fromCharCode.apply(null,h.shrinkBuf(t,e));for(var r=\"\",i=0;i<e;i++)r+=String.fromCharCode(t[i]);return r}u[254]=u[254]=1,r.string2buf=function(t){var e,r,i,n,s,a=t.length,o=0;for(n=0;n<a;n++)55296==(64512&(r=t.charCodeAt(n)))&&n+1<a&&56320==(64512&(i=t.charCodeAt(n+1)))&&(r=65536+(r-55296<<10)+(i-56320),n++),o+=r<128?1:r<2048?2:r<65536?3:4;for(e=new h.Buf8(o),n=s=0;s<o;n++)55296==(64512&(r=t.charCodeAt(n)))&&n+1<a&&56320==(64512&(i=t.charCodeAt(n+1)))&&(r=65536+(r-55296<<10)+(i-56320),n++),r<128?e[s++]=r:(r<2048?e[s++]=192|r>>>6:(r<65536?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e},r.buf2binstring=function(t){return l(t,t.length)},r.binstring2buf=function(t){for(var e=new h.Buf8(t.length),r=0,i=e.length;r<i;r++)e[r]=t.charCodeAt(r);return e},r.buf2string=function(t,e){var r,i,n,s,a=e||t.length,o=new Array(2*a);for(r=i=0;r<a;)if((n=t[r++])<128)o[i++]=n;else if(4<(s=u[n]))o[i++]=65533,r+=s-1;else{for(n&=2===s?31:3===s?15:7;1<s&&r<a;)n=n<<6|63&t[r++],s--;1<s?o[i++]=65533:n<65536?o[i++]=n:(n-=65536,o[i++]=55296|n>>10&1023,o[i++]=56320|1023&n)}return l(o,i)},r.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0?e:0===r?e:r+u[t[r]]>e?r:e}},{\"./common\":41}],43:[function(t,e,r){\"use strict\";e.exports=function(t,e,r,i){for(var n=65535&t|0,s=t>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3<r?2e3:r;s=s+(n=n+e[i++]|0)|0,--a;);n%=65521,s%=65521}return n|s<<16|0}},{}],44:[function(t,e,r){\"use strict\";e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(t,e,r){\"use strict\";var o=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a<s;a++)t=t>>>8^n[255&(t^e[a])];return-1^t}},{}],46:[function(t,e,r){\"use strict\";var h,d=t(\"../utils/common\"),u=t(\"./trees\"),c=t(\"./adler32\"),p=t(\"./crc32\"),i=t(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,n=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(t,e){return t.msg=i[e],e}function T(t){return(t<<1)-(4<t?9:0)}function D(t){for(var e=t.length;0<=--e;)t[e]=0}function F(t){var e=t.state,r=e.pending;r>t.avail_out&&(r=t.avail_out),0!==r&&(d.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,0===e.pending&&(e.pending_out=0))}function N(t,e){u._tr_flush_block(t,0<=t.block_start?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,F(t.strm)}function U(t,e){t.pending_buf[t.pending++]=e}function P(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function L(t,e){var r,i,n=t.max_chain_length,s=t.strstart,a=t.prev_length,o=t.nice_match,h=t.strstart>t.w_size-z?t.strstart-(t.w_size-z):0,u=t.window,l=t.w_mask,f=t.prev,d=t.strstart+S,c=u[s+a-1],p=u[s+a];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do{if(u[(r=e)+a]===p&&u[r+a-1]===c&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&s<d);if(i=S-(d-s),s=d-S,a<i){if(t.match_start=e,o<=(a=i))break;c=u[s+a-1],p=u[s+a]}}}while((e=f[e&l])>h&&0!=--n);return a<=t.lookahead?a:t.lookahead}function j(t){var e,r,i,n,s,a,o,h,u,l,f=t.w_size;do{if(n=t.window_size-t.lookahead-t.strstart,t.strstart>=f+(f-z)){for(d.arraySet(t.window,t.window,f,f,0),t.match_start-=f,t.strstart-=f,t.block_start-=f,e=r=t.hash_size;i=t.head[--e],t.head[e]=f<=i?i-f:0,--r;);for(e=r=f;i=t.prev[--e],t.prev[e]=f<=i?i-f:0,--r;);n+=f}if(0===t.strm.avail_in)break;if(a=t.strm,o=t.window,h=t.strstart+t.lookahead,u=n,l=void 0,l=a.avail_in,u<l&&(l=u),r=0===l?0:(a.avail_in-=l,d.arraySet(o,a.input,a.next_in,l,h),1===a.state.wrap?a.adler=c(a.adler,o,l,h):2===a.state.wrap&&(a.adler=p(a.adler,o,l,h)),a.next_in+=l,a.total_in+=l,l),t.lookahead+=r,t.lookahead+t.insert>=x)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=(t.ins_h<<t.hash_shift^t.window[s+1])&t.hash_mask;t.insert&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[s+x-1])&t.hash_mask,t.prev[s&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=s,s++,t.insert--,!(t.lookahead+t.insert<x)););}while(t.lookahead<z&&0!==t.strm.avail_in)}function Z(t,e){for(var r,i;;){if(t.lookahead<z){if(j(t),t.lookahead<z&&e===l)return A;if(0===t.lookahead)break}if(r=0,t.lookahead>=x&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+x-1])&t.hash_mask,r=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==r&&t.strstart-r<=t.w_size-z&&(t.match_length=L(t,r)),t.match_length>=x)if(i=u._tr_tally(t,t.strstart-t.match_start,t.match_length-x),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=x){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+x-1])&t.hash_mask,r=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart,0!=--t.match_length;);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+1])&t.hash_mask;else i=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=t.strstart<x-1?t.strstart:x-1,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}function W(t,e){for(var r,i,n;;){if(t.lookahead<z){if(j(t),t.lookahead<z&&e===l)return A;if(0===t.lookahead)break}if(r=0,t.lookahead>=x&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+x-1])&t.hash_mask,r=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=x-1,0!==r&&t.prev_length<t.max_lazy_match&&t.strstart-r<=t.w_size-z&&(t.match_length=L(t,r),t.match_length<=5&&(1===t.strategy||t.match_length===x&&4096<t.strstart-t.match_start)&&(t.match_length=x-1)),t.prev_length>=x&&t.match_length<=t.prev_length){for(n=t.strstart+t.lookahead-x,i=u._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-x),t.lookahead-=t.prev_length-1,t.prev_length-=2;++t.strstart<=n&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+x-1])&t.hash_mask,r=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!=--t.prev_length;);if(t.match_available=0,t.match_length=x-1,t.strstart++,i&&(N(t,!1),0===t.strm.avail_out))return A}else if(t.match_available){if((i=u._tr_tally(t,0,t.window[t.strstart-1]))&&N(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return A}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=u._tr_tally(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<x-1?t.strstart:x-1,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}function M(t,e,r,i,n){this.good_length=t,this.max_lazy=e,this.nice_length=r,this.max_chain=i,this.func=n}function H(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=v,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new d.Buf16(2*w),this.dyn_dtree=new d.Buf16(2*(2*a+1)),this.bl_tree=new d.Buf16(2*(2*o+1)),D(this.dyn_ltree),D(this.dyn_dtree),D(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new d.Buf16(k+1),this.heap=new d.Buf16(2*s+1),D(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new d.Buf16(2*s+1),D(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function G(t){var e;return t&&t.state?(t.total_in=t.total_out=0,t.data_type=n,(e=t.state).pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?C:E,t.adler=2===e.wrap?0:1,e.last_flush=l,u._tr_init(e),m):R(t,_)}function K(t){var e=G(t);return e===m&&function(t){t.window_size=2*t.w_size,D(t.head),t.max_lazy_match=h[t.level].max_lazy,t.good_match=h[t.level].good_length,t.nice_match=h[t.level].nice_length,t.max_chain_length=h[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=x-1,t.match_available=0,t.ins_h=0}(t.state),e}function Y(t,e,r,i,n,s){if(!t)return _;var a=1;if(e===g&&(e=6),i<0?(a=0,i=-i):15<i&&(a=2,i-=16),n<1||y<n||r!==v||i<8||15<i||e<0||9<e||s<0||b<s)return R(t,_);8===i&&(i=9);var o=new H;return(t.state=o).strm=t,o.wrap=a,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=n+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+x-1)/x),o.window=new d.Buf8(2*o.w_size),o.head=new d.Buf16(o.hash_size),o.prev=new d.Buf16(o.w_size),o.lit_bufsize=1<<n+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new d.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=e,o.strategy=s,o.method=r,K(t)}h=[new M(0,0,0,0,function(t,e){var r=65535;for(r>t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(j(t),0===t.lookahead&&e===l)return A;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+r;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,N(t,!1),0===t.strm.avail_out))return A;if(t.strstart-t.block_start>=t.w_size-z&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):(t.strstart>t.block_start&&(N(t,!1),t.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(t,e){return Y(t,e,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?_:(t.state.gzhead=e,m):_},r.deflate=function(t,e){var r,i,n,s;if(!t||!t.state||5<e||e<0)return t?R(t,_):_;if(i=t.state,!t.output||!t.input&&0!==t.avail_in||666===i.status&&e!==f)return R(t,0===t.avail_out?-5:_);if(i.strm=t,r=i.last_flush,i.last_flush=e,i.status===C)if(2===i.wrap)t.adler=0,U(i,31),U(i,139),U(i,8),i.gzhead?(U(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),U(i,255&i.gzhead.time),U(i,i.gzhead.time>>8&255),U(i,i.gzhead.time>>16&255),U(i,i.gzhead.time>>24&255),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(U(i,255&i.gzhead.extra.length),U(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(t.adler=p(t.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(U(i,0),U(i,0),U(i,0),U(i,0),U(i,0),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,3),i.status=E);else{var a=v+(i.w_bits-8<<4)<<8;a|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(a|=32),a+=31-a%31,i.status=E,P(i,a),0!==i.strstart&&(P(i,t.adler>>>16),P(i,65535&t.adler)),t.adler=1}if(69===i.status)if(i.gzhead.extra){for(n=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending!==i.pending_buf_size));)U(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindex<i.gzhead.name.length?255&i.gzhead.name.charCodeAt(i.gzindex++):0,U(i,s)}while(0!==s);i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindex<i.gzhead.comment.length?255&i.gzhead.comment.charCodeAt(i.gzindex++):0,U(i,s)}while(0!==s);i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&F(t),i.pending+2<=i.pending_buf_size&&(U(i,255&t.adler),U(i,t.adler>>8&255),t.adler=0,i.status=E)):i.status=E),0!==i.pending){if(F(t),0===t.avail_out)return i.last_flush=-1,m}else if(0===t.avail_in&&T(e)<=T(r)&&e!==f)return R(t,-5);if(666===i.status&&0!==t.avail_in)return R(t,-5);if(0!==t.avail_in||0!==i.lookahead||e!==l&&666!==i.status){var o=2===i.strategy?function(t,e){for(var r;;){if(0===t.lookahead&&(j(t),0===t.lookahead)){if(e===l)return A;break}if(t.match_length=0,r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):3===i.strategy?function(t,e){for(var r,i,n,s,a=t.window;;){if(t.lookahead<=S){if(j(t),t.lookahead<=S&&e===l)return A;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=x&&0<t.strstart&&(i=a[n=t.strstart-1])===a[++n]&&i===a[++n]&&i===a[++n]){s=t.strstart+S;do{}while(i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&n<s);t.match_length=S-(s-n),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=x?(r=u._tr_tally(t,1,t.match_length-x),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):h[i.level].func(i,e);if(o!==O&&o!==B||(i.status=666),o===A||o===O)return 0===t.avail_out&&(i.last_flush=-1),m;if(o===I&&(1===e?u._tr_align(i):5!==e&&(u._tr_stored_block(i,0,0,!1),3===e&&(D(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),F(t),0===t.avail_out))return i.last_flush=-1,m}return e!==f?m:i.wrap<=0?1:(2===i.wrap?(U(i,255&t.adler),U(i,t.adler>>8&255),U(i,t.adler>>16&255),U(i,t.adler>>24&255),U(i,255&t.total_in),U(i,t.total_in>>8&255),U(i,t.total_in>>16&255),U(i,t.total_in>>24&255)):(P(i,t.adler>>>16),P(i,65535&t.adler)),F(t),0<i.wrap&&(i.wrap=-i.wrap),0!==i.pending?m:1)},r.deflateEnd=function(t){var e;return t&&t.state?(e=t.state.status)!==C&&69!==e&&73!==e&&91!==e&&103!==e&&e!==E&&666!==e?R(t,_):(t.state=null,e===E?R(t,-3):m):_},r.deflateSetDictionary=function(t,e){var r,i,n,s,a,o,h,u,l=e.length;if(!t||!t.state)return _;if(2===(s=(r=t.state).wrap)||1===s&&r.status!==C||r.lookahead)return _;for(1===s&&(t.adler=c(t.adler,e,l,0)),r.wrap=0,l>=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new d.Buf8(r.w_size),d.arraySet(u,e,l-r.w_size,r.w_size,0),e=u,l=r.w_size),a=t.avail_in,o=t.next_in,h=t.input,t.avail_in=l,t.next_in=0,t.input=e,j(r);r.lookahead>=x;){for(i=r.strstart,n=r.lookahead-(x-1);r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+x-1])&r.hash_mask,r.prev[i&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=i,i++,--n;);r.strstart=i,r.lookahead=x-1,j(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=x-1,r.match_available=0,t.next_in=o,t.input=h,t.avail_in=a,r.wrap=s,m},r.deflateInfo=\"pako deflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./messages\":51,\"./trees\":52}],47:[function(t,e,r){\"use strict\";e.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}},{}],48:[function(t,e,r){\"use strict\";e.exports=function(t,e){var r,i,n,s,a,o,h,u,l,f,d,c,p,m,_,g,b,v,y,w,k,x,S,z,C;r=t.state,i=t.next_in,z=t.input,n=i+(t.avail_in-5),s=t.next_out,C=t.output,a=s-(e-t.avail_out),o=s+(t.avail_out-257),h=r.dmax,u=r.wsize,l=r.whave,f=r.wnext,d=r.window,c=r.hold,p=r.bits,m=r.lencode,_=r.distcode,g=(1<<r.lenbits)-1,b=(1<<r.distbits)-1;t:do{p<15&&(c+=z[i++]<<p,p+=8,c+=z[i++]<<p,p+=8),v=m[c&g];e:for(;;){if(c>>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(c&(1<<y)-1)];continue e}if(32&y){r.mode=12;break t}t.msg=\"invalid literal/length code\",r.mode=30;break t}w=65535&v,(y&=15)&&(p<y&&(c+=z[i++]<<p,p+=8),w+=c&(1<<y)-1,c>>>=y,p-=y),p<15&&(c+=z[i++]<<p,p+=8,c+=z[i++]<<p,p+=8),v=_[c&b];r:for(;;){if(c>>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(c&(1<<y)-1)];continue r}t.msg=\"invalid distance code\",r.mode=30;break t}if(k=65535&v,p<(y&=15)&&(c+=z[i++]<<p,(p+=8)<y&&(c+=z[i++]<<p,p+=8)),h<(k+=c&(1<<y)-1)){t.msg=\"invalid distance too far back\",r.mode=30;break t}if(c>>>=y,p-=y,(y=s-a)<k){if(l<(y=k-y)&&r.sane){t.msg=\"invalid distance too far back\",r.mode=30;break t}if(S=d,(x=0)===f){if(x+=u-y,y<w){for(w-=y;C[s++]=d[x++],--y;);x=s-k,S=C}}else if(f<y){if(x+=u+f-y,(y-=f)<w){for(w-=y;C[s++]=d[x++],--y;);if(x=0,f<w){for(w-=y=f;C[s++]=d[x++],--y;);x=s-k,S=C}}}else if(x+=f-y,y<w){for(w-=y;C[s++]=d[x++],--y;);x=s-k,S=C}for(;2<w;)C[s++]=S[x++],C[s++]=S[x++],C[s++]=S[x++],w-=3;w&&(C[s++]=S[x++],1<w&&(C[s++]=S[x++]))}else{for(x=s-k;C[s++]=C[x++],C[s++]=C[x++],C[s++]=C[x++],2<(w-=3););w&&(C[s++]=C[x++],1<w&&(C[s++]=C[x++]))}break}}break}}while(i<n&&s<o);i-=w=p>>3,c&=(1<<(p-=w<<3))-1,t.next_in=i,t.next_out=s,t.avail_in=i<n?n-i+5:5-(i-n),t.avail_out=s<o?o-s+257:257-(s-o),r.hold=c,r.bits=p}},{}],49:[function(t,e,r){\"use strict\";var I=t(\"../utils/common\"),O=t(\"./adler32\"),B=t(\"./crc32\"),R=t(\"./inffast\"),T=t(\"./inftrees\"),D=1,F=2,N=0,U=-2,P=1,i=852,n=592;function L(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg=\"\",e.wrap&&(t.adler=1&e.wrap),e.mode=P,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new I.Buf32(i),e.distcode=e.distdyn=new I.Buf32(n),e.sane=1,e.back=-1,N):U}function o(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,a(t)):U}function h(t,e){var r,i;return t&&t.state?(i=t.state,e<0?(r=0,e=-e):(r=1+(e>>4),e<48&&(e&=15)),e&&(e<8||15<e)?U:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=r,i.wbits=e,o(t))):U}function u(t,e){var r,i;return t?(i=new s,(t.state=i).window=null,(r=h(t,e))!==N&&(t.state=null),r):U}var l,f,d=!0;function j(t){if(d){var e;for(l=new I.Buf32(512),f=new I.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(T(D,t.lens,0,288,l,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;T(F,t.lens,0,32,f,0,t.work,{bits:5}),d=!1}t.lencode=l,t.lenbits=9,t.distcode=f,t.distbits=5}function Z(t,e,r,i){var n,s=t.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new I.Buf8(s.wsize)),i>=s.wsize?(I.arraySet(s.window,e,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(i<(n=s.wsize-s.wnext)&&(n=i),I.arraySet(s.window,e,r-i,n,s.wnext),(i-=n)?(I.arraySet(s.window,e,r-i,i,0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=n))),0}r.inflateReset=o,r.inflateReset2=h,r.inflateResetKeep=a,r.inflateInit=function(t){return u(t,15)},r.inflateInit2=u,r.inflate=function(t,e){var r,i,n,s,a,o,h,u,l,f,d,c,p,m,_,g,b,v,y,w,k,x,S,z,C=0,E=new I.Buf8(4),A=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return U;12===(r=t.state).mode&&(r.mode=13),a=t.next_out,n=t.output,h=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,u=r.hold,l=r.bits,f=o,d=h,x=N;t:for(;;)switch(r.mode){case P:if(0===r.wrap){r.mode=13;break}for(;l<16;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(2&r.wrap&&35615===u){E[r.check=0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){t.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){t.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){t.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<<k,t.adler=r.check=1,r.mode=512&u?10:12,l=u=0;break;case 2:for(;l<16;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(r.flags=u,8!=(255&r.flags)){t.msg=\"unknown compression method\",r.mode=30;break}if(57344&r.flags){t.msg=\"unknown header flags set\",r.mode=30;break}r.head&&(r.head.text=u>>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}r.head&&(r.head.time=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}r.head&&(r.head.xflags=255&u,r.head.os=u>>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}r.length=u,r.head&&(r.head.extra_len=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(c=r.length)&&(c=o),c&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,i,s,c,k)),512&r.flags&&(r.check=B(r.check,i,c,s)),o-=c,s+=c,r.length-=c),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break t;for(c=0;k=i[s+c++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&c<o;);if(512&r.flags&&(r.check=B(r.check,i,c,s)),o-=c,s+=c,k)break t}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===o)break t;for(c=0;k=i[s+c++],r.head&&k&&r.length<65536&&(r.head.comment+=String.fromCharCode(k)),k&&c<o;);if(512&r.flags&&(r.check=B(r.check,i,c,s)),o-=c,s+=c,k)break t}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;l<16;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(u!==(65535&r.check)){t.msg=\"header crc mismatch\",r.mode=30;break}l=u=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}t.adler=r.check=L(u),l=u=0,r.mode=11;case 11:if(0===r.havedict)return t.next_out=a,t.avail_out=h,t.next_in=s,t.avail_in=o,r.hold=u,r.bits=l,2;t.adler=r.check=1,r.mode=12;case 12:if(5===e||6===e)break t;case 13:if(r.last){u>>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}switch(r.last=1&u,l-=1,3&(u>>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==e)break;u>>>=2,l-=2;break t;case 2:r.mode=17;break;case 3:t.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if((65535&u)!=(u>>>16^65535)){t.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(c=r.length){if(o<c&&(c=o),h<c&&(c=h),0===c)break t;I.arraySet(n,i,s,c,a),o-=c,s+=c,h-=c,a+=c,r.length-=c;break}r.mode=12;break;case 17:for(;l<14;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(r.nlen=257+(31&u),u>>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286<r.nlen||30<r.ndist){t.msg=\"too many length or distance symbols\",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;l<3;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}r.lens[A[r.have++]]=7&u,u>>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(b<16)u>>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l<z;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(u>>>=_,l-=_,0===r.have){t.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],c=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l<z;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}l-=_,k=0,c=3+(7&(u>>>=_)),u>>>=3,l-=3}else{for(z=_+7;l<z;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}l-=_,k=0,c=11+(127&(u>>>=_)),u>>>=7,l-=7}if(r.have+c>r.nlen+r.ndist){t.msg=\"invalid bit length repeat\",r.mode=30;break}for(;c--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){t.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){t.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(6<=o&&258<=h){t.next_out=a,t.avail_out=h,t.next_in=s,t.avail_in=o,r.hold=u,r.bits=l,R(t,d),a=t.next_out,n=t.output,h=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(g&&0==(240&g)){for(v=_,y=g,w=b;g=(C=r.lencode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}u>>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){t.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l<z;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}r.length+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<<r.distbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(0==(240&g)){for(v=_,y=g,w=b;g=(C=r.distcode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}u>>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){t.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l<z;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}r.offset+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break t;if(c=d-h,r.offset>c){if((c=r.offset-c)>r.whave&&r.sane){t.msg=\"invalid distance too far back\",r.mode=30;break}p=c>r.wnext?(c-=r.wnext,r.wsize-c):r.wnext-c,c>r.length&&(c=r.length),m=r.window}else m=n,p=a-r.offset,c=r.length;for(h<c&&(c=h),h-=c,r.length-=c;n[a++]=m[p++],--c;);0===r.length&&(r.mode=21);break;case 26:if(0===h)break t;n[a++]=r.length,h--,r.mode=21;break;case 27:if(r.wrap){for(;l<32;){if(0===o)break t;o--,u|=i[s++]<<l,l+=8}if(d-=h,t.total_out+=d,r.total+=d,d&&(t.adler=r.check=r.flags?B(r.check,n,d,a-d):O(r.check,n,d,a-d)),d=h,(r.flags?u:L(u))!==r.check){t.msg=\"incorrect data check\",r.mode=30;break}l=u=0}r.mode=28;case 28:if(r.wrap&&r.flags){for(;l<32;){if(0===o)break t;o--,u+=i[s++]<<l,l+=8}if(u!==(4294967295&r.total)){t.msg=\"incorrect length check\",r.mode=30;break}l=u=0}r.mode=29;case 29:x=1;break t;case 30:x=-3;break t;case 31:return-4;case 32:default:return U}return t.next_out=a,t.avail_out=h,t.next_in=s,t.avail_in=o,r.hold=u,r.bits=l,(r.wsize||d!==t.avail_out&&r.mode<30&&(r.mode<27||4!==e))&&Z(t,t.output,t.next_out,d-t.avail_out)?(r.mode=31,-4):(f-=t.avail_in,d-=t.avail_out,t.total_in+=f,t.total_out+=d,r.total+=d,r.wrap&&d&&(t.adler=r.check=r.flags?B(r.check,n,d,t.next_out-d):O(r.check,n,d,t.next_out-d)),t.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0==f&&0===d||4===e)&&x===N&&(x=-5),x)},r.inflateEnd=function(t){if(!t||!t.state)return U;var e=t.state;return e.window&&(e.window=null),t.state=null,N},r.inflateGetHeader=function(t,e){var r;return t&&t.state?0==(2&(r=t.state).wrap)?U:((r.head=e).done=!1,N):U},r.inflateSetDictionary=function(t,e){var r,i=e.length;return t&&t.state?0!==(r=t.state).wrap&&11!==r.mode?U:11===r.mode&&O(1,e,i,0)!==r.check?-3:Z(t,e,i,i)?(r.mode=31,-4):(r.havedict=1,N):U},r.inflateInfo=\"pako inflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./inffast\":48,\"./inftrees\":50}],50:[function(t,e,r){\"use strict\";var D=t(\"../utils/common\"),F=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],N=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],U=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],P=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];e.exports=function(t,e,r,i,n,s,a,o){var h,u,l,f,d,c,p,m,_,g=o.bits,b=0,v=0,y=0,w=0,k=0,x=0,S=0,z=0,C=0,E=0,A=null,I=0,O=new D.Buf16(16),B=new D.Buf16(16),R=null,T=0;for(b=0;b<=15;b++)O[b]=0;for(v=0;v<i;v++)O[e[r+v]]++;for(k=g,w=15;1<=w&&0===O[w];w--);if(w<k&&(k=w),0===w)return n[s++]=20971520,n[s++]=20971520,o.bits=1,0;for(y=1;y<w&&0===O[y];y++);for(k<y&&(k=y),b=z=1;b<=15;b++)if(z<<=1,(z-=O[b])<0)return-1;if(0<z&&(0===t||1!==w))return-1;for(B[1]=0,b=1;b<15;b++)B[b+1]=B[b]+O[b];for(v=0;v<i;v++)0!==e[r+v]&&(a[B[e[r+v]]++]=v);if(c=0===t?(A=R=a,19):1===t?(A=F,I-=257,R=N,T-=257,256):(A=U,R=P,-1),b=y,d=s,S=v=E=0,l=-1,f=(C=1<<(x=k))-1,1===t&&852<C||2===t&&592<C)return 1;for(;;){for(p=b-S,_=a[v]<c?(m=0,a[v]):a[v]>c?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<<b-S,y=u=1<<x;n[d+(E>>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<<b-1;E&h;)h>>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=e[r+a[v]]}if(k<b&&(E&f)!==l){for(0===S&&(S=k),d+=y,z=1<<(x=b-S);x+S<w&&!((z-=O[x+S])<=0);)x++,z<<=1;if(C+=1<<x,1===t&&852<C||2===t&&592<C)return 1;n[l=E&f]=k<<24|x<<16|d-s|0}}return 0!==E&&(n[d+E]=b-S<<24|64<<16|0),o.bits=k,0}},{\"../utils/common\":41}],51:[function(t,e,r){\"use strict\";e.exports={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"}},{}],52:[function(t,e,r){\"use strict\";var n=t(\"../utils/common\"),o=0,h=1;function i(t){for(var e=t.length;0<=--e;)t[e]=0}var s=0,a=29,u=256,l=u+1+a,f=30,d=19,_=2*l+1,g=15,c=16,p=7,m=256,b=16,v=17,y=18,w=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],k=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],x=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],S=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],z=new Array(2*(l+2));i(z);var C=new Array(2*f);i(C);var E=new Array(512);i(E);var A=new Array(256);i(A);var I=new Array(a);i(I);var O,B,R,T=new Array(f);function D(t,e,r,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=r,this.elems=i,this.max_length=n,this.has_stree=t&&t.length}function F(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function N(t){return t<256?E[t]:E[256+(t>>>7)]}function U(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function P(t,e,r){t.bi_valid>c-r?(t.bi_buf|=e<<t.bi_valid&65535,U(t,t.bi_buf),t.bi_buf=e>>c-t.bi_valid,t.bi_valid+=r-c):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=r)}function L(t,e,r){P(t,r[2*e],r[2*e+1])}function j(t,e){for(var r=0;r|=1&t,t>>>=1,r<<=1,0<--e;);return r>>>1}function Z(t,e,r){var i,n,s=new Array(g+1),a=0;for(i=1;i<=g;i++)s[i]=a=a+r[i-1]<<1;for(n=0;n<=e;n++){var o=t[2*n+1];0!==o&&(t[2*n]=j(s[o]++,o))}}function W(t){var e;for(e=0;e<l;e++)t.dyn_ltree[2*e]=0;for(e=0;e<f;e++)t.dyn_dtree[2*e]=0;for(e=0;e<d;e++)t.bl_tree[2*e]=0;t.dyn_ltree[2*m]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function M(t){8<t.bi_valid?U(t,t.bi_buf):0<t.bi_valid&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function H(t,e,r,i){var n=2*e,s=2*r;return t[n]<t[s]||t[n]===t[s]&&i[e]<=i[r]}function G(t,e,r){for(var i=t.heap[r],n=r<<1;n<=t.heap_len&&(n<t.heap_len&&H(e,t.heap[n+1],t.heap[n],t.depth)&&n++,!H(e,i,t.heap[n],t.depth));)t.heap[r]=t.heap[n],r=n,n<<=1;t.heap[r]=i}function K(t,e,r){var i,n,s,a,o=0;if(0!==t.last_lit)for(;i=t.pending_buf[t.d_buf+2*o]<<8|t.pending_buf[t.d_buf+2*o+1],n=t.pending_buf[t.l_buf+o],o++,0===i?L(t,n,e):(L(t,(s=A[n])+u+1,e),0!==(a=w[s])&&P(t,n-=I[s],a),L(t,s=N(--i),r),0!==(a=k[s])&&P(t,i-=T[s],a)),o<t.last_lit;);L(t,m,e)}function Y(t,e){var r,i,n,s=e.dyn_tree,a=e.stat_desc.static_tree,o=e.stat_desc.has_stree,h=e.stat_desc.elems,u=-1;for(t.heap_len=0,t.heap_max=_,r=0;r<h;r++)0!==s[2*r]?(t.heap[++t.heap_len]=u=r,t.depth[r]=0):s[2*r+1]=0;for(;t.heap_len<2;)s[2*(n=t.heap[++t.heap_len]=u<2?++u:0)]=1,t.depth[n]=0,t.opt_len--,o&&(t.static_len-=a[2*n+1]);for(e.max_code=u,r=t.heap_len>>1;1<=r;r--)G(t,s,r);for(n=h;r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],G(t,s,1),i=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=i,s[2*n]=s[2*r]+s[2*i],t.depth[n]=(t.depth[r]>=t.depth[i]?t.depth[r]:t.depth[i])+1,s[2*r+1]=s[2*i+1]=n,t.heap[1]=n++,G(t,s,1),2<=t.heap_len;);t.heap[--t.heap_max]=t.heap[1],function(t,e){var r,i,n,s,a,o,h=e.dyn_tree,u=e.max_code,l=e.stat_desc.static_tree,f=e.stat_desc.has_stree,d=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,p=e.stat_desc.max_length,m=0;for(s=0;s<=g;s++)t.bl_count[s]=0;for(h[2*t.heap[t.heap_max]+1]=0,r=t.heap_max+1;r<_;r++)p<(s=h[2*h[2*(i=t.heap[r])+1]+1]+1)&&(s=p,m++),h[2*i+1]=s,u<i||(t.bl_count[s]++,a=0,c<=i&&(a=d[i-c]),o=h[2*i],t.opt_len+=o*(s+a),f&&(t.static_len+=o*(l[2*i+1]+a)));if(0!==m){do{for(s=p-1;0===t.bl_count[s];)s--;t.bl_count[s]--,t.bl_count[s+1]+=2,t.bl_count[p]--,m-=2}while(0<m);for(s=p;0!==s;s--)for(i=t.bl_count[s];0!==i;)u<(n=t.heap[--r])||(h[2*n+1]!==s&&(t.opt_len+=(s-h[2*n+1])*h[2*n],h[2*n+1]=s),i--)}}(t,e),Z(s,u,t.bl_count)}function X(t,e,r){var i,n,s=-1,a=e[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),e[2*(r+1)+1]=65535,i=0;i<=r;i++)n=a,a=e[2*(i+1)+1],++o<h&&n===a||(o<u?t.bl_tree[2*n]+=o:0!==n?(n!==s&&t.bl_tree[2*n]++,t.bl_tree[2*b]++):o<=10?t.bl_tree[2*v]++:t.bl_tree[2*y]++,s=n,u=(o=0)===a?(h=138,3):n===a?(h=6,3):(h=7,4))}function V(t,e,r){var i,n,s=-1,a=e[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),i=0;i<=r;i++)if(n=a,a=e[2*(i+1)+1],!(++o<h&&n===a)){if(o<u)for(;L(t,n,t.bl_tree),0!=--o;);else 0!==n?(n!==s&&(L(t,n,t.bl_tree),o--),L(t,b,t.bl_tree),P(t,o-3,2)):o<=10?(L(t,v,t.bl_tree),P(t,o-3,3)):(L(t,y,t.bl_tree),P(t,o-11,7));s=n,u=(o=0)===a?(h=138,3):n===a?(h=6,3):(h=7,4)}}i(T);var q=!1;function J(t,e,r,i){P(t,(s<<1)+(i?1:0),3),function(t,e,r,i){M(t),i&&(U(t,r),U(t,~r)),n.arraySet(t.pending_buf,t.window,e,r,t.pending),t.pending+=r}(t,e,r,!0)}r._tr_init=function(t){q||(function(){var t,e,r,i,n,s=new Array(g+1);for(i=r=0;i<a-1;i++)for(I[i]=r,t=0;t<1<<w[i];t++)A[r++]=i;for(A[r-1]=i,i=n=0;i<16;i++)for(T[i]=n,t=0;t<1<<k[i];t++)E[n++]=i;for(n>>=7;i<f;i++)for(T[i]=n<<7,t=0;t<1<<k[i]-7;t++)E[256+n++]=i;for(e=0;e<=g;e++)s[e]=0;for(t=0;t<=143;)z[2*t+1]=8,t++,s[8]++;for(;t<=255;)z[2*t+1]=9,t++,s[9]++;for(;t<=279;)z[2*t+1]=7,t++,s[7]++;for(;t<=287;)z[2*t+1]=8,t++,s[8]++;for(Z(z,l+1,s),t=0;t<f;t++)C[2*t+1]=5,C[2*t]=j(t,5);O=new D(z,w,u+1,l,g),B=new D(C,k,0,f,g),R=new D(new Array(0),x,0,d,p)}(),q=!0),t.l_desc=new F(t.dyn_ltree,O),t.d_desc=new F(t.dyn_dtree,B),t.bl_desc=new F(t.bl_tree,R),t.bi_buf=0,t.bi_valid=0,W(t)},r._tr_stored_block=J,r._tr_flush_block=function(t,e,r,i){var n,s,a=0;0<t.level?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,r=4093624447;for(e=0;e<=31;e++,r>>>=1)if(1&r&&0!==t.dyn_ltree[2*e])return o;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return h;for(e=32;e<u;e++)if(0!==t.dyn_ltree[2*e])return h;return o}(t)),Y(t,t.l_desc),Y(t,t.d_desc),a=function(t){var e;for(X(t,t.dyn_ltree,t.l_desc.max_code),X(t,t.dyn_dtree,t.d_desc.max_code),Y(t,t.bl_desc),e=d-1;3<=e&&0===t.bl_tree[2*S[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),n=t.opt_len+3+7>>>3,(s=t.static_len+3+7>>>3)<=n&&(n=s)):n=s=r+5,r+4<=n&&-1!==e?J(t,e,r,i):4===t.strategy||s===n?(P(t,2+(i?1:0),3),K(t,z,C)):(P(t,4+(i?1:0),3),function(t,e,r,i){var n;for(P(t,e-257,5),P(t,r-1,5),P(t,i-4,4),n=0;n<i;n++)P(t,t.bl_tree[2*S[n]+1],3);V(t,t.dyn_ltree,e-1),V(t,t.dyn_dtree,r-1)}(t,t.l_desc.max_code+1,t.d_desc.max_code+1,a+1),K(t,t.dyn_ltree,t.dyn_dtree)),W(t),i&&M(t)},r._tr_tally=function(t,e,r){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&r,t.last_lit++,0===e?t.dyn_ltree[2*r]++:(t.matches++,e--,t.dyn_ltree[2*(A[r]+u+1)]++,t.dyn_dtree[2*N(e)]++),t.last_lit===t.lit_bufsize-1},r._tr_align=function(t){P(t,2,3),L(t,m,z),function(t){16===t.bi_valid?(U(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):8<=t.bi_valid&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}},{\"../utils/common\":41}],53:[function(t,e,r){\"use strict\";e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,e,r){\"use strict\";e.exports=\"function\"==typeof setImmediate?setImmediate:function(){var t=[].slice.apply(arguments);t.splice(1,0,0),setTimeout.apply(null,t)}},{}]},{},[10])(10)});","/**\n * Those functions should disappear if add2D becomes accessible in jcampconvert\n * @param spectra\n * @returns {{z: Array, minX: *, maxX: *, minY: *, maxY: *, minZ: *, maxZ: *, noise: number}}\n */\n\nexport default function convertTo3DZ(spectra) {\n  let noise = 0;\n  let minZ = spectra[0].data[0];\n  let maxZ = minZ;\n  let ySize = spectra.length;\n  let xSize = spectra[0].data.length / 2;\n  let z = new Array(ySize);\n  for (let i = 0; i < ySize; i++) {\n    z[i] = new Float64Array(xSize);\n    for (let j = 0; j < xSize; j++) {\n      z[i][j] = spectra[i].data[j * 2 + 1];\n      if (z[i][j] < minZ) minZ = spectra[i].data[j * 2 + 1];\n      if (z[i][j] > maxZ) maxZ = spectra[i].data[j * 2 + 1];\n      if (i !== 0 && j !== 0) {\n        noise +=\n          Math.abs(z[i][j] - z[i][j - 1]) + Math.abs(z[i][j] - z[i - 1][j]);\n      }\n    }\n  }\n  const firstX = spectra[0].data[0];\n  const lastX = spectra[0].data[spectra[0].data.length - 2]; // 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  let minMaxX =\n    firstX < lastX\n      ? { minX: firstX, maxX: lastX }\n      : { minX: lastX, maxX: firstX };\n  let minMaxY =\n    firstY < lastY\n      ? { minY: firstY, maxY: lastY }\n      : { minY: lastY, maxY: firstY };\n\n  return {\n    z,\n    minZ: minZ,\n    maxZ: maxZ,\n    ...minMaxX,\n    ...minMaxY,\n    noise: noise / ((ySize - 1) * (xSize - 1) * 2),\n  };\n}\n","export default function generateContourLines(zData) {\n  let noise = zData.noise;\n  let z = zData.z;\n  let contourLevels = [];\n  let nbLevels = 7;\n  let povarHeight = new Float32Array(4);\n  let isOver = [];\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 lineZValue;\n  for (let level = 0; level < nbLevels * 2; level++) {\n    // multiply by 2 for positif and negatif\n    let contourLevel = {};\n    contourLevels.push(contourLevel);\n    let side = level % 2;\n    if (side === 0) {\n      lineZValue =\n        (maxZ - 5 * noise) * Math.exp(level / 2 - nbLevels) + 5 * noise;\n    } else {\n      lineZValue =\n        -(maxZ - 5 * noise) * Math.exp(level / 2 - nbLevels) - 5 * 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      for (let povar = 0; povar < nbPovars - 1; povar++) {\n        povarHeight[0] = z[iSubSpectra][povar];\n        povarHeight[1] = z[iSubSpectra][povar + 1];\n        povarHeight[2] = z[iSubSpectra + 1][povar];\n        povarHeight[3] = z[iSubSpectra + 1][povar + 1];\n\n        for (let i = 0; i < 4; i++) {\n          isOver[i] = povarHeight[i] > lineZValue;\n        }\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 (isOver[0] !== isOver[1] && isOver[0] !== isOver[2]) {\n          pAx =\n            povar +\n            (lineZValue - povarHeight[0]) / (povarHeight[1] - povarHeight[0]);\n          pAy = iSubSpectra;\n          pBx = povar;\n          pBy =\n            iSubSpectra +\n            (lineZValue - povarHeight[0]) / (povarHeight[2] - povarHeight[0]);\n          lines.push(\n            pAx * dx + x0,\n            pAy * dy + y0,\n            pBx * dx + x0,\n            pBy * dy + y0,\n          );\n        }\n        if (isOver[3] !== isOver[1] && isOver[3] !== isOver[2]) {\n          pAx = povar + 1;\n          pAy =\n            iSubSpectra +\n            1 -\n            (lineZValue - povarHeight[3]) / (povarHeight[1] - povarHeight[3]);\n          pBx =\n            povar +\n            1 -\n            (lineZValue - povarHeight[3]) / (povarHeight[2] - povarHeight[3]);\n          pBy = iSubSpectra + 1;\n          lines.push(\n            pAx * dx + x0,\n            pAy * dy + y0,\n            pBx * dx + x0,\n            pBy * dy + y0,\n          );\n        }\n        // test around the diagonal\n        if (isOver[1] !== isOver[2]) {\n          pAx =\n            povar +\n            1 -\n            (lineZValue - povarHeight[1]) / (povarHeight[2] - povarHeight[1]);\n          pAy =\n            iSubSpectra +\n            (lineZValue - povarHeight[1]) / (povarHeight[2] - povarHeight[1]);\n          if (isOver[1] !== isOver[0]) {\n            pBx =\n              povar +\n              1 -\n              (lineZValue - povarHeight[1]) / (povarHeight[0] - povarHeight[1]);\n            pBy = iSubSpectra;\n            lines.push(\n              pAx * dx + x0,\n              pAy * dy + y0,\n              pBx * dx + x0,\n              pBy * dy + y0,\n            );\n          }\n          if (isOver[2] !== isOver[0]) {\n            pBx = povar;\n            pBy =\n              iSubSpectra +\n              1 -\n              (lineZValue - povarHeight[2]) / (povarHeight[0] - povarHeight[2]);\n            lines.push(\n              pAx * dx + x0,\n              pAy * dy + y0,\n              pBx * dx + x0,\n              pBy * dy + y0,\n            );\n          }\n          if (isOver[1] !== isOver[3]) {\n            pBx = povar + 1;\n            pBy =\n              iSubSpectra +\n              (lineZValue - povarHeight[1]) / (povarHeight[3] - povarHeight[1]);\n            lines.push(\n              pAx * dx + x0,\n              pAy * dy + y0,\n              pBx * dx + x0,\n              pBy * dy + y0,\n            );\n          }\n          if (isOver[2] !== isOver[3]) {\n            pBx =\n              povar +\n              (lineZValue - povarHeight[2]) / (povarHeight[3] - povarHeight[2]);\n            pBy = iSubSpectra + 1;\n            lines.push(\n              pAx * dx + x0,\n              pAy * dy + y0,\n              pBx * dx + x0,\n              pBy * dy + y0,\n            );\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 function add2D(result, options) {\n  let zData = convertTo3DZ(result.spectra);\n  if (!options.noContours) {\n    result.contourLines = generateContourLines(zData);\n  }\n  result.minMax = zData;\n}\n","/**\n * Dynamically type a string\n * @param {string} value String to dynamically type\n * @returns {boolean|string|number}\n */\nexport function parseString(value) {\n  if (value.length === 4 || value.length === 5) {\n    let lowercase = value.toLowerCase();\n\n    if (lowercase === 'true') return true;\n    if (lowercase === 'false') return false;\n  }\n  let number = Number(value);\n  if (number === 0 && !value.includes('0')) {\n    return value;\n  }\n  if (!Number.isNaN(number)) return number;\n  return value;\n}\n","const GC_MS_FIELDS = ['TIC', '.RIC', 'SCANNUMBER'];\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    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    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] = Number(spectrum[existingGCMSFields[j]]);\n        }\n        if (spectrum.data) {\n            chromatogram.series.ms.data[i] = [spectrum.data.x, spectrum.data.y];\n        }\n    }\n    result.chromatogram = chromatogram;\n}\nexport function isMSField(canonicDataLabel) {\n    return GC_MS_FIELDS.indexOf(canonicDataLabel) !== -1;\n}\nexport function convertMSFieldToLabel(value) {\n    return value.toLowerCase().replace(/[^a-z0-9]/g, '');\n}\n//# sourceMappingURL=complexChromatogram.js.map","export default function convertToFloatArray(stringArray) {\n    let floatArray = [];\n    for (let i = 0; i < stringArray.length; i++) {\n        floatArray.push(Number(stringArray[i]));\n    }\n    return floatArray;\n}\n//# sourceMappingURL=convertToFloatArray.js.map","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    let yFactor = spectrum.yFactor;\n    let deltaX = spectrum.deltaX;\n    spectrum.isXYdata = true;\n    let currentData = { x: [], y: [] };\n    spectrum.data = currentData;\n    let currentX = spectrum.firstX;\n    let currentY = spectrum.firstY;\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        }\n        else {\n            if (endLine)\n                break;\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)\n            ascii = 13;\n        else\n            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        }\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                }\n                else {\n                    currentValue *= 10;\n                    currentValue += ascii - 48;\n                }\n            }\n            else if (ascii === 44 || ascii === 46) {\n                // a \",\" or \".\"\n                inValue = true;\n                decimalPosition++;\n            }\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)\n                            skipFirstValue = true;\n                    }\n                    else {\n                        // need to deal with duplicate and differences\n                        if (skipFirstValue) {\n                            skipFirstValue = false;\n                        }\n                        else {\n                            if (isDifference) {\n                                lastDifference = isNegative ? 0 - currentValue : currentValue;\n                                isLastDifference = true;\n                                isDifference = false;\n                            }\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                                }\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                // 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                }\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                }\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                }\n                else if (ascii > 82 && ascii < 91) {\n                    inValue = true;\n                    isDuplicate = true;\n                    currentValue = ascii - 82;\n                }\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                }\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                }\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                }\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                }\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 ((ascii2 >= 48 && ascii2 <= 57) ||\n                        ascii2 === 44 ||\n                        ascii2 === 46) {\n                        inValue = true;\n                        if (!newLine)\n                            isLastDifference = false;\n                        isNegative = true;\n                    }\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//# sourceMappingURL=fastParseXYData.js.map","const removeCommentRegExp = /\\$\\$.*/;\nconst peakTableSplitRegExp = /[,\\t ]+/;\nexport default function parsePeakTable(spectrum, value, result) {\n    spectrum.isPeaktable = true;\n    if (!spectrum.variables || Object.keys(spectrum.variables) === 2) {\n        parseXY(spectrum, value, result);\n    }\n    else {\n        parseXYZ(spectrum, value, result);\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}\nfunction parseXY(spectrum, value, result) {\n    let currentData = { x: [], y: [] };\n    spectrum.data = currentData;\n    // counts for around 20% of the time\n    let lines = value.split(/,? *,?[;\\r\\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 Number\n                currentData.x.push(Number(values[j]) * spectrum.xFactor);\n                currentData.y.push(Number(values[j + 1]) * spectrum.yFactor);\n            }\n        }\n        else {\n            result.logs.push(`Format error: ${values}`);\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    // counts for around 20% of the time\n    let lines = value.split(/,? *,?[;\\r\\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(Number(values[j]));\n            }\n        }\n        else {\n            result.logs.push(`Format error: ${values}`);\n        }\n    }\n}\n//# sourceMappingURL=parsePeakTable.js.map","export default function parseXYA(spectrum, value) {\n    let removeSymbolRegExp = /(\\(+|\\)+|<+|>+|\\s+)/g;\n    spectrum.isXYAdata = true;\n    let values;\n    let currentData = { x: [], y: [] };\n    spectrum.data = currentData;\n    let lines = value.split(/,? *,?[;\\r\\n]+ */);\n    for (let i = 1; i < lines.length; i++) {\n        values = lines[i].trim().replace(removeSymbolRegExp, '').split(',');\n        currentData.x.push(Number(values[0]));\n        currentData.y.push(Number(values[1]));\n    }\n}\n//# sourceMappingURL=parseXYA.js.map","import getMedian from 'ml-array-median';\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    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)\n                minZ = value;\n            if (value > maxZ)\n                maxZ = value;\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    // 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    const medians = [];\n    for (let i = 0; i < z.length; i++) {\n        const row = Float64Array.from(z[i]);\n        for (let i = 0; i < row.length; i++) {\n            if (row[i] < 0)\n                row[i] = -row[i];\n        }\n        medians.push(getMedian(row));\n    }\n    const median = getMedian(medians);\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: median,\n    };\n}\n//# sourceMappingURL=convertTo3DZ.js.map","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    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    // System.out.prvarln('y0 '+y0+' yN '+yN);\n    // -------------------------\n    // Povars attribution\n    //\n    // 0----1\n    // |  / |\n    // | /  |\n    // 2----3\n    //\n    // ---------------------d------\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 = (maxZ - options.noiseMultiplier * noise) *\n            Math.exp((level >> 1) - options.nbContourLevels);\n        if (side === 0) {\n            lineZValue = factor + options.noiseMultiplier * noise;\n        }\n        else {\n            lineZValue = 0 - factor - options.noiseMultiplier * noise;\n        }\n        let lines = [];\n        contourLevel.zValue = lineZValue;\n        contourLevel.lines = lines;\n        if (lineZValue <= minZ || lineZValue >= maxZ)\n            continue;\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                isOver0 = povarHeight0 > lineZValue;\n                isOver1 = povarHeight1 > lineZValue;\n                isOver2 = povarHeight2 > lineZValue;\n                isOver3 = povarHeight3 > lineZValue;\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    return {\n        minX: zData.minX,\n        maxX: zData.maxX,\n        minY: zData.minY,\n        maxY: zData.maxY,\n        segments: contourLevels,\n    };\n}\n//# sourceMappingURL=generateContourLines.js.map","import convertTo3DZ from './convertTo3DZ';\nimport generateContourLines from './generateContourLines';\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//# sourceMappingURL=add2D.js.map","import { gyromagneticRatio } from 'nmr-processing';\nexport default function postProcessingNMR(entriesFlat) {\n    // specific NMR functions\n    for (let entry of entriesFlat) {\n        let observeFrequency = 0;\n        let shiftOffsetVal = 0;\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            }\n            else {\n                observeFrequency = spectrum.observeFrequency;\n                shiftOffsetVal = spectrum.shiftOffsetVal;\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            // we will check if some nucleus are missing ...\n            if (entry.ntuples && entry.ntuples.nucleus && entry.ntuples.symbol) {\n                for (let i = 0; i < entry.ntuples.nucleus.length; i++) {\n                    let symbol = entry.ntuples.symbol[i];\n                    let nucleus = entry.ntuples.nucleus[i];\n                    if (symbol.startsWith('F') && !nucleus) {\n                        if (symbol === 'F1') {\n                            // if F1 is defined we will use F2\n                            if (entry.tmp.$NUC2) {\n                                entry.ntuples.nucleus[i] = entry.tmp.$NUC2;\n                            }\n                            else {\n                                let f2index = entry.ntuples.symbol.indexOf('F2');\n                                if (f2index && entry.ntuples.nucleus[f2index]) {\n                                    entry.ntuples.nucleus[i] = entry.ntuples.nucleus[f2index];\n                                }\n                            }\n                        }\n                        if (symbol === 'F2')\n                            entry.ntuples.nucleus[i] = entry.tmp.$NUC1;\n                    }\n                    if (symbol === 'F2') {\n                        entry.yType = entry.ntuples.nucleus[0];\n                    }\n                }\n            }\n            if (observeFrequency &&\n                entry.ntuples &&\n                entry.ntuples.symbol &&\n                entry.ntuples.nucleus) {\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                    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//# sourceMappingURL=postProcessingNMR.js.map","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//# sourceMappingURL=profiling.js.map","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//# sourceMappingURL=simpleChromatogram.js.map","import add2D from './2d/add2D';\nimport { complexChromatogram } from './complexChromatogram';\nimport postProcessingNMR from './postProcessingNMR';\nimport profiling from './profiling';\nimport simpleChromatogram from './simpleChromatogram';\nexport default function postProcessing(entriesFlat, result, options) {\n    // converting Hz to ppm\n    postProcessingNMR(entriesFlat);\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])\n                        newNtuples[j] = {};\n                    newNtuples[j][key] = values[j];\n                }\n            }\n            entry.ntuples = newNtuples;\n        }\n        if (entry.twoD && options.wantXY) {\n            add2D(entry, options);\n            profiling(result, 'Finished countour plot calculation', options);\n            if (!options.keepSpectra) {\n                delete entry.spectra;\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            }\n            else {\n                simpleChromatogram(entry);\n            }\n            profiling(result, 'Finished chromatogram calculation', options);\n        }\n        delete entry.tmp;\n    }\n}\n//# sourceMappingURL=postProcessing.js.map","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    }\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)\n                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    if (xIndex === -1)\n        xIndex = 0;\n    if (yIndex === -1)\n        yIndex = 0;\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 (currentEntry.ntuples.vardim &&\n        currentEntry.ntuples.vardim.length > xIndex) {\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 (currentEntry.ntuples.varname &&\n                currentEntry.ntuples.varname[xIndex]) {\n                spectrum.xUnits = `${currentEntry.ntuples.varname[xIndex]} [${currentEntry.ntuples.units[xIndex]}]`;\n            }\n            else {\n                spectrum.xUnits = currentEntry.ntuples.units[xIndex];\n            }\n        }\n        if (currentEntry.ntuples.units.length > yIndex) {\n            if (currentEntry.ntuples.varname &&\n                currentEntry.ntuples.varname[yIndex]) {\n                spectrum.yUnits = `${currentEntry.ntuples.varname[yIndex]} [${currentEntry.ntuples.units[yIndex]}]`;\n            }\n            else {\n                spectrum.yUnits = currentEntry.ntuples.units[yIndex];\n            }\n        }\n    }\n}\n//# sourceMappingURL=prepareNtuplesDatatable.js.map","export default function prepareSpectrum(spectrum) {\n    if (!spectrum.xFactor)\n        spectrum.xFactor = 1;\n    if (!spectrum.yFactor)\n        spectrum.yFactor = 1;\n}\n//# sourceMappingURL=prepareSpectrum.js.map","import { parseString } from 'dynamic-typing';\nimport { ensureString } from 'ensure-string';\nimport { 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// the following RegExp can only be used for XYdata, some peakTables have values with a \"E-5\" ...\nconst ntuplesSeparatorRegExp = /[ \\t]*,[ \\t]*/;\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 * @typedef {object} ConvertOptions\n * @property {RegExp} [options.keepRecordsRegExp=/^$/] - By default we don't keep meta information.\n * @property {boolean} [options.canonicDataLabels=true] - Canonize the Labels (uppercase without symbol).\n * @property {boolean} [options.canonicMetadataLabels=false] - Canonize the metadata Labels (uppercase without symbol).\n * @property {boolean} [options.dynamicTyping=false] - Convert numbers to Number.\n * @property {boolean} [options.withoutXY=false] - Remove the XY data.\n * @property {boolean} [options.chromatogram=false] - Special post-processing for GC / HPLC / MS.\n * @property {boolean} [options.keepSpectra=false] - Force to keep the spectra in case of 2D.\n * @property {boolean} [options.noContour=false] - Don't calculate countour in case of 2D.\n * @property {number} [options.nbContourLevels=7] - Number of positive / negative contour levels to calculate.\n * @property {number} [options.noiseMultiplier=5] - Define for 2D the level as 5 times the median as default.\n * @property {boolean} [options.profiling=false] - Add profiling information.\n */\n/**\n *\n * @typedef {object} Ntuples\n * @property {string[]} [varname]\n * @property {string[]} [symbol]\n * @property {string[]} [vartype]\n * @property {string[]} [varform]\n * @property {number[]} [vardim]\n * @property {string[]} [units]\n * @property {number[]} [factor]\n * @property {number[]} [first]\n * @property {number[]} [last]\n * @property {number[]} [min]\n * @property {number[]} [max]\n * @property {string[]} [nucleus]\n */\n/**\n * @typedef { Record<string, any> } Spectrum\n * @property {Record<string, number[]>} [data]\n * @property {number} [firstX]\n * @property {number} [lastX]\n * @property {number} [deltaX]\n * @property {number} [yFactor]\n * @property {number} [xFactor]\n * @property {number} [nbPoints]\n */\n/**\n *\n * @typedef {object} Entry\n * @property {Spectrum[]} spectra\n * @property {Ntuples} ntuples\n * @property {object} meta\n * @property {object} tmp\n * @property {string} [title]\n * @property {string} [dataType]\n * @property {string} [dataClass]\n * @property {boolean} [twoD]\n */\n/**\n *\n * @typedef { object } ConvertResult\n * @property { object[] | boolean } profiling\n * @property { string[] } logs\n * @property { object[] } entries\n * @property { Entry[] } flatten\n */\n/**\n * Parse a jcamp.\n *\n * @param {string|ArrayBuffer|Uint8Array} jcamp\n * @param {ConvertOptions} [options]\n * @returns {ConvertResult}\n */\nexport function convert(jcamp, options = {}) {\n    jcamp = ensureString(jcamp);\n    options = { ...defaultOptions, ...options };\n    options.wantXY = !options.withoutXY;\n    options.start = Date.now();\n    let entriesFlat = [];\n    let result = {\n        profiling: options.profiling ? [] : false,\n        logs: [],\n        entries: [],\n    };\n    let tmpResult = { children: [] };\n    let currentEntry = tmpResult;\n    let parentsStack = [];\n    let spectrum = {};\n    if (typeof jcamp !== 'string') {\n        throw new TypeError('the JCAMP should be a string');\n    }\n    profiling(result, 'Before split to LDRS', options);\n    let ldrs = jcamp.replace(/[\\r\\n]+##/g, '\\n##').split('\\n##');\n    profiling(result, 'Split to LDRS', options);\n    if (ldrs[0])\n        ldrs[0] = ldrs[0].replace(/^[\\r\\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        let canonicDataLabel = dataLabel.replace(/[_ -]/g, '').toUpperCase();\n        if (canonicDataLabel === 'DATATABLE') {\n            let endLine = dataValue.indexOf('\\n');\n            if (endLine === -1)\n                endLine = dataValue.indexOf('\\r');\n            if (endLine > 0) {\n                // ##DATA TABLE= (X++(I..I)), XYDATA\n                // We need to find the variables\n                let infos = dataValue.substring(0, endLine).split(/[ ,;\\t]+/);\n                prepareNtuplesDatatable(currentEntry, spectrum, infos[0]);\n                spectrum.datatable = infos[0];\n                if (infos[1] && infos[1].indexOf('PEAKS') > -1) {\n                    canonicDataLabel = 'PEAKTABLE';\n                }\n                else if (infos[1] &&\n                    (infos[1].indexOf('XYDATA') || infos[0].indexOf('++') > 0)) {\n                    canonicDataLabel = 'XYDATA';\n                    spectrum.deltaX =\n                        (spectrum.lastX - spectrum.firstX) / (spectrum.nbPoints - 1);\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                    spectrum.deltaX =\n                        (spectrum.lastX - spectrum.firstX) / (spectrum.nbPoints - 1);\n                    fastParseXYData(spectrum, dataValue, result);\n                }\n                else {\n                    parsePeakTable(spectrum, dataValue, result);\n                }\n                currentEntry.spectra.push(spectrum);\n                spectrum = {};\n            }\n            continue;\n        }\n        else if (canonicDataLabel === 'PEAKTABLE') {\n            if (options.wantXY) {\n                prepareSpectrum(spectrum);\n                parsePeakTable(spectrum, dataValue, result);\n                currentEntry.spectra.push(spectrum);\n                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 = {};\n            }\n            continue;\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                tmp: {}, // tmp information we need to keep for postprocessing\n            };\n            parentEntry.children.push(currentEntry);\n            parentsStack.push(parentEntry);\n            entriesFlat.push(currentEntry);\n            currentEntry.title = dataValue;\n        }\n        else if (canonicDataLabel === 'DATATYPE') {\n            currentEntry.dataType = dataValue;\n            if (dataValue.match(/(^nd|\\snd\\s)/i)) {\n                currentEntry.twoD = true;\n            }\n        }\n        else if (canonicDataLabel === 'NTUPLES') {\n            if (dataValue.match(/(^nd|\\snd\\s)/i)) {\n                currentEntry.twoD = true;\n            }\n        }\n        else if (canonicDataLabel === 'DATACLASS') {\n            currentEntry.dataClass = dataValue;\n        }\n        else if (canonicDataLabel === 'XUNITS') {\n            spectrum.xUnits = dataValue;\n        }\n        else if (canonicDataLabel === 'YUNITS') {\n            spectrum.yUnits = dataValue;\n        }\n        else if (canonicDataLabel === 'FIRSTX') {\n            spectrum.firstX = Number(dataValue);\n        }\n        else if (canonicDataLabel === 'LASTX') {\n            spectrum.lastX = Number(dataValue);\n        }\n        else if (canonicDataLabel === 'FIRSTY') {\n            spectrum.firstY = Number(dataValue);\n        }\n        else if (canonicDataLabel === 'LASTY') {\n            spectrum.lastY = Number(dataValue);\n        }\n        else if (canonicDataLabel === 'NPOINTS') {\n            spectrum.nbPoints = Number(dataValue);\n        }\n        else if (canonicDataLabel === 'XFACTOR') {\n            spectrum.xFactor = Number(dataValue);\n        }\n        else if (canonicDataLabel === 'YFACTOR') {\n            spectrum.yFactor = Number(dataValue);\n        }\n        else if (canonicDataLabel === 'MAXX') {\n            spectrum.maxX = Number(dataValue);\n        }\n        else if (canonicDataLabel === 'MINX') {\n            spectrum.minX = Number(dataValue);\n        }\n        else if (canonicDataLabel === 'MAXY') {\n            spectrum.maxY = Number(dataValue);\n        }\n        else if (canonicDataLabel === 'MINY') {\n            spectrum.minY = Number(dataValue);\n        }\n        else if (canonicDataLabel === 'DELTAX') {\n            spectrum.deltaX = Number(dataValue);\n        }\n        else if (canonicDataLabel === '.OBSERVEFREQUENCY' ||\n            canonicDataLabel === '$SFO1') {\n            if (!spectrum.observeFrequency) {\n                spectrum.observeFrequency = Number(dataValue);\n            }\n        }\n        else if (canonicDataLabel === '.OBSERVENUCLEUS') {\n            if (!spectrum.xType) {\n                currentEntry.xType = dataValue.replace(/[^a-zA-Z0-9]/g, '');\n            }\n        }\n        else if (canonicDataLabel === '$OFFSET') {\n            // OFFSET for Bruker spectra\n            currentEntry.shiftOffsetNum = 0;\n            if (!spectrum.shiftOffsetVal) {\n                spectrum.shiftOffsetVal = Number(dataValue);\n            }\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 = Number(parts[3].trim());\n        }\n        else if (canonicDataLabel === 'VARNAME') {\n            currentEntry.ntuples.varname = dataValue.split(ntuplesSeparatorRegExp);\n        }\n        else if (canonicDataLabel === 'SYMBOL') {\n            currentEntry.ntuples.symbol = dataValue.split(ntuplesSeparatorRegExp);\n        }\n        else if (canonicDataLabel === 'VARTYPE') {\n            currentEntry.ntuples.vartype = dataValue.split(ntuplesSeparatorRegExp);\n        }\n        else if (canonicDataLabel === 'VARFORM') {\n            currentEntry.ntuples.varform = dataValue.split(ntuplesSeparatorRegExp);\n        }\n        else if (canonicDataLabel === 'VARDIM') {\n            currentEntry.ntuples.vardim = convertToFloatArray(dataValue.split(ntuplesSeparatorRegExp));\n        }\n        else if (canonicDataLabel === 'UNITS') {\n            currentEntry.ntuples.units = dataValue.split(ntuplesSeparatorRegExp);\n        }\n        else if (canonicDataLabel === 'FACTOR') {\n            currentEntry.ntuples.factor = convertToFloatArray(dataValue.split(ntuplesSeparatorRegExp));\n        }\n        else if (canonicDataLabel === 'FIRST') {\n            currentEntry.ntuples.first = convertToFloatArray(dataValue.split(ntuplesSeparatorRegExp));\n        }\n        else if (canonicDataLabel === 'LAST') {\n            currentEntry.ntuples.last = convertToFloatArray(dataValue.split(ntuplesSeparatorRegExp));\n        }\n        else if (canonicDataLabel === 'MIN') {\n            currentEntry.ntuples.min = convertToFloatArray(dataValue.split(ntuplesSeparatorRegExp));\n        }\n        else if (canonicDataLabel === 'MAX') {\n            currentEntry.ntuples.max = convertToFloatArray(dataValue.split(ntuplesSeparatorRegExp));\n        }\n        else if (canonicDataLabel === '.NUCLEUS') {\n            if (currentEntry.ntuples) {\n                currentEntry.ntuples.nucleus = dataValue.split(ntuplesSeparatorRegExp);\n            }\n        }\n        else if (canonicDataLabel === 'PAGE') {\n            spectrum.page = dataValue.trim();\n            spectrum.pageValue = Number(dataValue.replace(/^.*=/, ''));\n            spectrum.pageSymbol = spectrum.page.replace(/[=].*/, '');\n        }\n        else if (canonicDataLabel === 'RETENTIONTIME') {\n            spectrum.pageValue = Number(dataValue);\n        }\n        else if (isMSField(canonicDataLabel)) {\n            spectrum[convertMSFieldToLabel(canonicDataLabel)] = dataValue;\n        }\n        else if (canonicDataLabel === 'SAMPLEDESCRIPTION') {\n            spectrum.sampleDescription = dataValue;\n        }\n        else if (canonicDataLabel.startsWith('$NUC')) {\n            if (!currentEntry.tmp[canonicDataLabel] && !dataValue.includes('off')) {\n                currentEntry.tmp[canonicDataLabel] = dataValue.replace(/[<>]/g, '');\n            }\n        }\n        else if (canonicDataLabel === 'END') {\n            currentEntry = parentsStack.pop();\n        }\n        if (currentEntry &&\n            currentEntry.info &&\n            currentEntry.meta &&\n            canonicDataLabel.match(options.keepRecordsRegExp)) {\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            }\n            else {\n                label = options.canonicDataLabels ? canonicDataLabel : dataLabel;\n                target = currentEntry.info;\n            }\n            if (options.dynamicTyping) {\n                value = parseString(value);\n            }\n            if (target[label]) {\n                if (!Array.isArray(target[label])) {\n                    target[label] = [target[label]];\n                }\n                target[label].push(value);\n            }\n            else {\n                target[label] = value;\n            }\n        }\n    }\n    profiling(result, 'Finished parsing', options);\n    postProcessing(entriesFlat, result, options);\n    profiling(result, 'Total time', options);\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    return result;\n}\n//# sourceMappingURL=convert.js.map","import { convert as convertJcamp } from 'jcampconverter';\n\nexport function parseData(file, options) {\n  let { keepRecordsRegExp = /.*/ } = options;\n  let result = convertJcamp(file, {\n    keepRecordsRegExp: keepRecordsRegExp,\n  });\n  return result.flatten.length === 0 ? {} : result.flatten[0];\n}\n","import { IOBuffer } from 'iobuffer';\n\nexport function ensureIOBuffer(data) {\n  if (data instanceof Array || data instanceof Uint8Array) {\n    data = new ArrayBuffer(data);\n  }\n  if (data instanceof ArrayBuffer) {\n    return new IOBuffer(data);\n  }\n  return data;\n}\n","import { ensureIOBuffer } from './ensureIOBuffer';\n\nexport function setFIDSpectrumData(file, spectra) {\n  file = ensureIOBuffer(file);\n  let td = parseInt(spectra.meta.TD[0], 10);\n  let SW_H = parseFloat(spectra.meta.SW_h[0]);\n\n  let SF = parseFloat(spectra.meta.SFO1[0]);\n\n  spectra.meta.DATATYPE = 'NMR FID';\n\n  let DW = 1 / (2 * SW_H);\n  let AQ = td * DW;\n\n  let endian = parseInt(spectra.meta.BYTORDA, 10);\n  endian = endian ? 0 : 1;\n\n  if (endian) {\n    file.setLittleEndian();\n  } else {\n    file.setBigEndian();\n  }\n\n  let nbSubSpectra = spectra.meta.nbSubSpectra ? spectra.meta.nbSubSpectra : 1;\n  spectra.spectra = new Array(nbSubSpectra);\n\n  for (let j = 0; j < nbSubSpectra / 2; j++) {\n    let toSave = {\n      dataType: 'NMR FID',\n      dataTable: '(X++(R..R))',\n      nbPoints: td,\n      firstX: 0,\n      lastX: AQ,\n      nucleus: spectra.meta.NUC1,\n      xUnit: 'Sec',\n      yUnit: 'Arbitrary',\n      data: [new Float64Array(2 * td)],\n      isXYdata: true,\n      observeFrequency: SF,\n      title: spectra.meta.TITLE,\n      deltaX: DW,\n    };\n    spectra.spectra[j * 2] = toSave;\n\n    toSave = {\n      dataType: 'NMR FID',\n      dataTable: '(X++(I..I))',\n      nbPoints: td,\n      firstX: 0,\n      lastX: AQ,\n      nucleus: spectra.meta.NUC1,\n      xUnit: 'Sec',\n      yUnit: 'Arbitrary',\n      data: new Float64Array(2 * td),\n      isXYdata: true,\n      directFrequency: SF,\n      title: spectra.meta.TITLE,\n      deltaX: DW,\n    };\n    spectra.spectra[j * 2 + 1] = toSave;\n\n    let i = 0;\n    let x = 0;\n    for (; file.available(8) && i < td; i++, x = i * DW) {\n      let y = file.readInt32();\n      if (y === null || isNaN(y)) {\n        y = 0;\n      }\n      spectra.spectra[j * 2].data[2 * i + 1] = y;\n      spectra.spectra[j * 2].data[2 * i] = x;\n      y = file.readInt32();\n      if (y === null || isNaN(y)) {\n        y = 0;\n      }\n      spectra.spectra[j * 2 + 1].data[2 * i + 1] = y;\n      spectra.spectra[j * 2 + 1].data[2 * i] = x;\n    }\n\n    for (; i < td; i++, x = i * DW) {\n      spectra.spectra[j * 2].data[2 * i + 1] = 0;\n      spectra.spectra[j * 2].data[2 * i] = x;\n      spectra.spectra[j * 2 + 1].data[2 * i + 1] = 0;\n      spectra.spectra[j * 2 + 1].data[2 * i] = x;\n    }\n  }\n}\n","import { ensureIOBuffer } from './ensureIOBuffer';\n\nexport function setXYSpectrumData(file, spectra, real) {\n  file = ensureIOBuffer(file);\n  let td = parseInt(spectra.meta.SI, 10);\n  let swP = parseFloat(spectra.meta.SW_p);\n  let sf = parseFloat(spectra.meta.SF);\n  let bf = sf;\n  let offset = spectra.shiftOffsetVal || parseFloat(spectra.meta.OFFSET);\n\n  spectra.meta.observeFrequency = sf;\n  spectra.meta.brukerReference = bf;\n  spectra.meta.DATATYPE = 'NMR Spectrum';\n\n  let endian = parseInt(spectra.meta.BYTORDP, 10);\n  endian = endian ? 0 : 1;\n\n  let nbSubSpectra = spectra.meta.nbSubSpectra ? spectra.meta.nbSubSpectra : 1;\n\n  if (endian) {\n    file.setLittleEndian();\n  } else {\n    file.setBigEndian();\n  }\n  for (let i = 0; i < nbSubSpectra; i++) {\n    let toSave = {\n      dataType: 'NMR Spectrum',\n      dataTable: '(X++(R..R))',\n      nbPoints: td,\n      firstX: offset,\n      lastX: offset - swP / sf,\n      xUnit: 'PPM',\n      yUnit: 'Arbitrary',\n      data: new Float64Array(td * 2),\n      isXYdata: true,\n      observeFrequency: sf,\n      title: spectra.meta.TITLE,\n      deltaX: -(swP / sf) / (td - 1),\n    };\n\n    let x = offset;\n    let deltaX = toSave.deltaX;\n\n    if (real) {\n      for (let k = 0; k < td; ++k) {\n        toSave.data[2 * k] = x;\n        toSave.data[2 * k + 1] = file.readInt32();\n        if (toSave.data[2 * k + 1] === null || isNaN(toSave.data[2 * k + 1])) {\n          toSave.data[2 * k + 1] = 0;\n        }\n        x += deltaX;\n      }\n    } else {\n      for (let k = 0; k < td; ++k) {\n        toSave.data[2 * k] = x;\n        toSave.data[2 * k + 1] = file.readInt32();\n        if (toSave.data[2 * k + 1] === null || isNaN(toSave.data[2 * k + 1])) {\n          toSave.data[2 * k + 1] = 0;\n        }\n        x += deltaX;\n      }\n    }\n\n    spectra.spectra.push(toSave);\n  }\n}\n","import { parseData } from './parseData';\nimport { setFIDSpectrumData } from './setFIDSpectrumData';\nimport { setXYSpectrumData } from './setXYSpectrumData';\n\nexport function convert1D(files, options) {\n  let result = parseData(files.procs || '', options);\n  let temp = parseData(files.acqus || '', options);\n  if (!Object.keys(result).length) {\n    result = temp;\n  }\n\n  for (let key in result.meta) {\n    result.meta[key] = [result.meta[key]];\n  }\n\n  for (let currKey in temp.meta) {\n    if (result.meta[currKey] === undefined) {\n      result.meta[currKey] = [temp.meta[currKey]];\n    }\n  }\n\n  if (files['1r'] || files['1i']) {\n    if (files['1r']) {\n      setXYSpectrumData(files['1r'], result, true);\n    }\n    if (files['1i']) {\n      setXYSpectrumData(files['1i'], result, false);\n    }\n  } else if (files.fid) {\n    setFIDSpectrumData(files.fid, result);\n  }\n\n  return result;\n}\n","export function mergeMetadata(main, complement) {\n  for (let key in complement.meta) {\n    if (main.meta[key]) {\n      if (!Array.isArray(main.meta[key])) {\n        main.meta[key] = [main.meta[key]];\n      }\n      main.meta[key].push(complement.meta[key]);\n    } else if (main.meta[key] === undefined) {\n      main.meta[key] = [complement.meta[key]];\n    }\n  }\n  return main;\n}\n","import { mergeMetadata } from './mergeMetadata';\nimport { parseData } from './parseData';\nimport { setFIDSpectrumData } from './setFIDSpectrumData';\nimport { setXYSpectrumData } from './setXYSpectrumData';\n\nexport function convert2D(files, options) {\n  let temp, temp2, result;\n  if (files.proc2s && files.procs) {\n    result = parseData(files.procs, options);\n    temp = parseData(files.proc2s, options);\n    result = mergeMetadata(result, temp);\n  }\n\n  temp = parseData(files.acqus, options);\n  temp2 = parseData(files.acqu2s, options);\n\n  temp = mergeMetadata(temp, temp2);\n\n  if (!result) {\n    result = temp;\n  }\n  for (let key in temp.meta) {\n    if (result.meta[key] === undefined) {\n      result.meta[key] = temp.meta[key];\n    }\n  }\n\n  for (let key in result.meta) {\n    if (!Array.isArray(result.meta[key])) {\n      result.meta[key] = [result.meta[key]];\n    }\n  }\n\n  result.meta.nbSubSpectra = files['2rr']\n    ? parseInt(result.meta.SI[1], 10)\n    : parseInt(result.meta.TD[1], 10);\n\n  if (!result.meta.SW_p) {\n    // eslint-disable-next-line camelcase\n    result.meta.SW_p = result.meta.SW_h;\n  }\n  if (!result.meta.SF) {\n    result.meta.SF = result.meta.SFO1;\n  }\n\n  let firstY, lastY, xOffset, yOffset;\n  if (files['2rr']) {\n    let sf = parseFloat(result.meta.SF[1]);\n    let swP = parseFloat(result.meta.SW_p[1] || result.meta.SW[1]);\n    yOffset = parseFloat(result.meta.OFFSET[1]);\n    xOffset = parseFloat(result.meta.OFFSET[0]);\n    firstY = yOffset;\n    lastY = yOffset - swP / sf;\n    result.meta.firstY = firstY;\n    result.meta.lastY = lastY;\n    setXYSpectrumData(files['2rr'], result, true);\n  } else if (files.ser) {\n    firstY = 0;\n    lastY = result.meta.nbSubSpectra;\n    let xWindowSize = parseFloat(result.meta.SW[0]);\n    let yWindowSize = parseFloat(result.meta.SW[1]);\n    let xTransmitterFrequency = parseFloat(result.meta.SFO1[0]);\n    let yTransmitterFrequency = parseFloat(result.meta.SFO1[1]);\n    let xTransmitterFrequencyOffset = parseFloat(result.meta.O1[0]);\n    let yTransmitterFrequencyOffset = parseFloat(result.meta.O1[1]);\n    xOffset =\n      xTransmitterFrequencyOffset / xTransmitterFrequency + xWindowSize / 2;\n    yOffset =\n      yTransmitterFrequencyOffset / yTransmitterFrequency + yWindowSize / 2;\n    setFIDSpectrumData(files.ser, result);\n  }\n\n  let pageValue = firstY;\n  let nbSubSpectra = result.meta.nbSubSpectra;\n  let deltaY = (lastY - firstY) / (nbSubSpectra - 1);\n  for (let i = 0; i < nbSubSpectra; i++) {\n    pageValue += deltaY;\n    result.spectra[i].pageValue = pageValue;\n  }\n  let { NUC1: nuc1, AXNUC: axnuc, SF: sf } = result.meta;\n  const nucleus = axnuc ? axnuc : nuc1 ? nuc1 : [];\n  result.info['2D_Y_NUCLEUS'] = nucleus[1];\n  result.info['2D_X_NUCLEUS'] = nucleus[0];\n  result.info['2D_Y_FRECUENCY'] = sf[1];\n  result.info['2D_X_FRECUENCY'] = sf[0];\n  result.info['2D_Y_OFFSET'] = yOffset;\n  result.info['2D_X_OFFSET'] = xOffset;\n  result.info.twoD = result.twoD = true;\n\n  return result;\n}\n","import { add2D } from './util/add2D';\nimport { convert1D } from './util/convert1D';\nimport { convert2D } from './util/convert2D';\n\n/**\n * Extract information and data from bruker files.\n * @param {object} brukerFiles - Needed bruker files to parse raw data.\n * @param {object} [options = {}] - options.\n * @param {boolean} [options.xy] - if true, spectra data is a object with x and y\n * @param {RegExp} [options.keepRecordsRegExp='\\/.*\\/'] - regular expresion to parse the metadata of the spectrum.\n * @param {boolean} [options.noContours=false] - if true the contour data is not generated.\n * @returns\n */\n\nexport function convertFolder(brukerFiles, options = {}) {\n  let start = new Date();\n  let result;\n  if (brukerFiles.ser || brukerFiles['2rr']) {\n    result = convert2D(brukerFiles, options);\n  } else if (brukerFiles['1r'] || brukerFiles['1i'] || brukerFiles.fid) {\n    result = convert1D(brukerFiles, options);\n  } else {\n    throw new RangeError('The current files are invalid');\n  }\n  //normalizing info\n  result.meta.DATE = parseFloat(result.meta.DATE);\n  if (result.meta.GRPDLY) {\n    result.meta.GRPDLY = parseFloat(result.meta.GRPDLY);\n    result.meta.DSPFVS = parseFloat(result.meta.DSPFVS);\n    result.meta.DECIM = parseFloat(result.meta.DECIM);\n  }\n\n  for (let key in result.meta) {\n    if (!Array.isArray(result.meta[key])) {\n      continue;\n    }\n    if (result.meta[key].length === 1) {\n      result.meta[key] = result.meta[key][0];\n    } else if (\n      typeof result.meta[key][0] === 'string' &&\n      result.meta[key][0].indexOf('(0..') > -1\n    ) {\n      result.meta[key] = result.meta[key][0];\n    }\n  }\n\n  if (result.twoD) {\n    add2D(result, options);\n    if (result.profiling) {\n      result.profiling.push({\n        action: 'Finished countour plot calculation',\n        time: new Date() - start,\n      });\n    }\n    if (!options.keepSpectra) {\n      delete result.spectra;\n    }\n  }\n\n  let spectra = result.spectra;\n\n  if (options.xy && !!spectra) {\n    //the spectraData should not be a oneD Array but an object with x and y\n    if (spectra.length > 0) {\n      for (let i = 0; i < spectra.length; i++) {\n        let spectrum = spectra[i];\n        if (spectrum.data.length) {\n          let data = spectrum.data;\n          let newData = {\n            x: new Float64Array(data.length / 2),\n            y: new Float64Array(data.length / 2),\n          };\n          for (let k = 0; k < data.length; k = k + 2) {\n            newData.x[k / 2] = data[k];\n            newData.y[k / 2] = data[k + 1];\n          }\n          spectrum.data = newData;\n        }\n      }\n    }\n  }\n  const { file } = brukerFiles;\n  if (file) {\n    result.source = { file };\n  }\n\n  return result;\n}\n","import JSZip from 'jszip';\n\nexport function extractFilePaths(pathSpectrum, options = {}) {\n  let { zipFiles } = options;\n\n  const expnoCheck = pathSpectrum.replace(\n    /([.*\\w+/]*)([0-9]+\\/)[pdata|fid|ser]\\/*.*/,\n    '$1$2',\n  );\n\n  const procnoCheck = pathSpectrum.match('pdata')\n    ? pathSpectrum.replace(/([.*\\w+/]*[0-9]+\\/pdata\\/[0-9]+\\/)*.*/, '$1')\n    : false;\n  let filePaths = [];\n  for (let file in zipFiles) {\n    if (file.endsWith('/')) continue;\n    let parts = file.split('/');\n    let expno =\n      parts.indexOf('pdata') > 0\n        ? file.slice(0, file.indexOf('pdata'))\n        : parts[parts.length - 2].match(/^[0-9]+$/)\n        ? file.slice(0, file.lastIndexOf('/') + 1)\n        : null;\n\n    if (expnoCheck !== expno) continue;\n\n    if (file.match('pdata')) {\n      let procno = file.slice(0, file.lastIndexOf('/') + 1);\n      if (!procnoCheck) {\n        if (file.match(/[1|2]+[i|r]+[i|r]*/)) continue;\n      } else if (procnoCheck !== procno) {\n        continue;\n      }\n    }\n\n    filePaths.push(file);\n  }\n  return filePaths;\n}\n\nexport async function extractSingleSpectrumZip(pathSpectrum, options = {}) {\n  let { zipFiles } = options;\n\n  const filePaths = extractFilePaths(pathSpectrum, { zipFiles });\n  let zipFolder = new JSZip();\n  for (let file of filePaths) {\n    zipFolder.file(file, await zipFiles[file].async('arraybuffer'));\n  }\n\n  return {\n    extension: 'zip',\n    name: pathSpectrum,\n    binary: await zipFolder.generateAsync({\n      type: 'uint8array',\n      compression: 'DEFLATE',\n      compressionOptions: { level: 9 },\n    }),\n  };\n}\n","import JSZip from 'jszip';\n\nimport { convertFolder } from './convertFolder';\nimport { extractSingleSpectrumZip } from './util/extractSingleSpectrumZip';\n\nconst BINARY = 1;\nconst TEXT = 2;\n\n/**\n * Load a zip file using jszip and looking for folders contaning bruker files to parse.\n * @param {*} zipFile - binary or base64 file of the bruker zip file.\n * @param {object} [options={}] - options for jszip and convertFolder functions.\n * @param {boolean} [options.keepOriginal=false] - options to keep a smaller zip file per spectrum.\n * @returns {Promise} - Array of spectrum parsed from fid, ser, 2rr, 1r bruker files.\n */\nexport function convertZip(zipFile, options = {}) {\n  const { keepOriginal = false } = options;\n  const jsZip = new JSZip();\n\n  return jsZip.loadAsync(zipFile, options).then((zip) => {\n    let files = {\n      ser: BINARY,\n      fid: BINARY,\n      acqus: TEXT,\n      acqu2s: TEXT,\n      procs: TEXT,\n      proc2s: TEXT,\n      '1r': BINARY,\n      '1i': BINARY,\n      '2rr': BINARY,\n    };\n    let folders = zip.filter(function (relativePath) {\n      if (relativePath.match('__MACOSX')) return false;\n      if (\n        relativePath.endsWith('ser') ||\n        relativePath.endsWith('fid') ||\n        relativePath.endsWith('1r') ||\n        relativePath.endsWith('2rr')\n      ) {\n        return true;\n      }\n      return false;\n    });\n\n    let spectra = new Array(folders.length);\n\n    for (let i = 0; i < folders.length; ++i) {\n      let promises = [];\n      let name = folders[i].name;\n      name = name.substr(0, name.lastIndexOf('/') + 1);\n      promises.push(name);\n      let currFolder = zip.folder(name);\n      let currFiles = currFolder.filter(function (relativePath) {\n        return files[relativePath] ? true : false;\n      });\n      if (name.indexOf('pdata') >= 0) {\n        promises.push('acqus');\n        promises.push(\n          zip.file(name.replace(/pdata\\/[0-9]+\\//, 'acqus')).async('string'),\n        );\n        let acqu2s = zip.file(name.replace(/pdata\\/[0-9]+\\//, 'acqu2s'));\n        if (acqu2s) {\n          promises.push('acqu2s');\n          promises.push(acqu2s.async('string'));\n        }\n      }\n      for (let j = 0; j < currFiles.length; ++j) {\n        let idx = currFiles[j].name.lastIndexOf('/');\n        name = currFiles[j].name.substr(idx + 1);\n        promises.push(name);\n        if (files[name] === BINARY) {\n          promises.push(currFiles[j].async('arraybuffer'));\n        } else {\n          promises.push(currFiles[j].async('string'));\n        }\n      }\n      if (keepOriginal) {\n        promises.push('file');\n        promises.push(\n          extractSingleSpectrumZip(folders[i].name, { zipFiles: zip.files }),\n        );\n      }\n      spectra[i] = Promise.all(promises).then((result) => {\n        let brukerFiles = {};\n        for (let k = 1; k < result.length; k += 2) {\n          name = result[k];\n          brukerFiles[name] = result[k + 1];\n        }\n\n        return {\n          filename: result[0],\n          value: convertFolder(brukerFiles, options),\n        };\n      });\n    }\n    return Promise.all(spectra);\n  });\n}\n","import { isAnyArray } from 'is-any-array';\n\nexport function convertToFloatArray(data) {\n  if (isAnyArray(data[0])) {\n    return data.map((e) => Float64Array.from(e));\n  } else if (isAnyArray(data)) {\n    return Float64Array.from(data);\n  } else if (typeof data === 'object') {\n    let keys = Object.keys(data);\n    for (let key of keys) {\n      data[key] = convertToFloatArray(data[key]);\n    }\n    return data;\n  }\n  return data;\n}\n","/* eslint-disable no-loss-of-precision */\n/**\n * Returns the group delay for old Bruker NMR spectra\n * @param {number} gspfvs\n * @param {number} decim\n * @return {number}\n */\nexport function getDigitalFilterParameters(grpdly, dspfvs, decim) {\n  let value;\n  if (grpdly > 0) {\n    value = Number(grpdly);\n  } else {\n    if (dspfvs > 14) {\n      value = 0;\n    } else {\n      if (!brukerDspTable[dspfvs]) {\n        throw new Error('dspfvs not in lookup table');\n      } else {\n        const dspfvsList = brukerDspTable[dspfvs];\n        if (!dspfvsList[decim]) throw new Error('decim not in lookup table');\n        value = dspfvsList[decim];\n      }\n    }\n  }\n  return value;\n}\n\nconst brukerDspTable = {\n  10: {\n    2: 44.75,\n    3: 33.5,\n    4: 66.625,\n    6: 59.083333333333333,\n    8: 68.5625,\n    12: 60.375,\n    16: 69.53125,\n    24: 61.020833333333333,\n    32: 70.015625,\n    48: 61.34375,\n    64: 70.2578125,\n    96: 61.505208333333333,\n    128: 70.37890625,\n    192: 61.5859375,\n    256: 70.439453125,\n    384: 61.626302083333333,\n    512: 70.4697265625,\n    768: 61.646484375,\n    1024: 70.48486328125,\n    1536: 61.656575520833333,\n    2048: 70.492431640625,\n  },\n  11: {\n    2: 46,\n    3: 36.5,\n    4: 48,\n    6: 50.166666666666667,\n    8: 53.25,\n    12: 69.5,\n    16: 72.25,\n    24: 70.166666666666667,\n    32: 72.75,\n    48: 70.5,\n    64: 73,\n    96: 70.666666666666667,\n    128: 72.5,\n    192: 71.333333333333333,\n    256: 72.25,\n    384: 71.666666666666667,\n    512: 72.125,\n    768: 71.833333333333333,\n    1024: 72.0625,\n    1536: 71.916666666666667,\n    2048: 72.03125,\n  },\n  12: {\n    2: 46,\n    3: 36.5,\n    4: 48,\n    6: 50.166666666666667,\n    8: 53.25,\n    12: 69.5,\n    16: 71.625,\n    24: 70.166666666666667,\n    32: 72.125,\n    48: 70.5,\n    64: 72.375,\n    96: 70.666666666666667,\n    128: 72.5,\n    192: 71.333333333333333,\n    256: 72.25,\n    384: 71.666666666666667,\n    512: 72.125,\n    768: 71.833333333333333,\n    1024: 72.0625,\n    1536: 71.916666666666667,\n    2048: 72.03125,\n  },\n  13: {\n    2: 2.75,\n    3: 2.8333333333333333,\n    4: 2.875,\n    6: 2.9166666666666667,\n    8: 2.9375,\n    12: 2.9583333333333333,\n    16: 2.96875,\n    24: 2.9791666666666667,\n    32: 2.984375,\n    48: 2.9895833333333333,\n    64: 2.9921875,\n    96: 2.9947916666666667,\n  },\n};\n","export function getNucleusFromMetadata(metaData, info, subfix) {\n  let nucleus = [];\n  if (metaData[`${subfix}AXNUC`]) {\n    nucleus = metaData[`${subfix}AXNUC`];\n    if (!Array.isArray(nucleus)) nucleus = [nucleus];\n    nucleus = checkForNucleus(nucleus);\n  }\n\n  if (nucleus.length < 1 && metaData[`${subfix}NUC1`]) {\n    nucleus = metaData[`${subfix}NUC1`];\n    if (!Array.isArray(nucleus)) nucleus = [nucleus];\n    nucleus = checkForNucleus(nucleus);\n  }\n\n  if (nucleus.length === 0) {\n    if (metaData['.NUCLEUS']) {\n      nucleus = metaData['.NUCLEUS'].split(',').map((nuc) => nuc.trim());\n    } else if (metaData['.OBSERVENUCLEUS']) {\n      nucleus = [metaData['.OBSERVENUCLEUS'].replace(/[^A-Za-z0-9]/g, '')];\n    } else {\n      nucleus = getNucleusFrom2DExperiment(info.experiment);\n    }\n    nucleus = checkForNucleus(nucleus);\n  }\n\n  if (metaData['2D_X_NUCLEUS'] && metaData['2D_Y_NUCLEUS']) {\n    nucleus = [\n      metaData['2D_X_NUCLEUS'].replace(/[^A-Za-z0-9]/g, ''),\n      metaData['2D_Y_NUCLEUS'].replace(/[^A-Za-z0-9]/g, ''),\n    ];\n  }\n  return nucleus;\n}\n\n/**\n * Returns a list of likely nuclei based on an experiment string\n * This is really an hypothesis and should not be used\n * @param {string} experiment\n * @return {string[]}\n */\n\nfunction getNucleusFrom2DExperiment(experiment) {\n  if (typeof experiment !== 'string') {\n    return [];\n  }\n  experiment = experiment.toLowerCase();\n  if (experiment.includes('jres')) {\n    return ['1H', 'Hz'];\n  }\n  if (experiment.includes('hmbc') || experiment.includes('hsqc')) {\n    return ['1H', '13C'];\n  }\n  if (experiment.includes('cosy') || experiment.includes('tocsy')) {\n    return ['1H', '1H'];\n  }\n  return [];\n}\n\nfunction checkForNucleus(nucleus) {\n  nucleus = nucleus.map((value) =>\n    value\n      .replace(/[^A-Za-z0-9]/g, '')\n      .replace('NA', '')\n      .replace('off', ''),\n  );\n  let beforeLength = nucleus.length;\n  nucleus = nucleus.filter((value) => value);\n  return nucleus.length !== beforeLength ? [] : nucleus;\n}\n","/**\n * Returns an experiment string based on a pulse sequence\n * @param {string} pulse\n * @return {string}\n */\nexport function getSpectrumType(meta = {}, info = {}, options = {}) {\n  const { subfix = '' } = options;\n\n  if (meta === null) meta = {};\n  if (typeof meta === 'string') meta = { pulseSequence: meta };\n\n  let spectyp = info[`${subfix}SPECTYP`];\n  spectyp = (Array.isArray(spectyp) ? spectyp[0] : spectyp || '')\n    .replace(/^<(.*)>$/, '$1') // eslint-disable-line prefer-named-capture-group\n    .toLowerCase();\n\n  if (spectyp.length > 0 && spectyp !== 'undefined') return spectyp;\n\n  let pulse = Array.isArray(meta.pulseSequence)\n    ? meta.pulseSequence[0]\n    : meta.pulseSequence || '';\n\n  if (typeof pulse !== 'string') {\n    return meta.dimension ? `${meta.dimension}d` : '';\n  }\n\n  pulse = pulse.toLowerCase();\n  if (\n    pulse.includes('zg') ||\n    pulse.includes('single_pulse_dec') ||\n    pulse.includes('udeft')\n  ) {\n    return '1d';\n  }\n\n  if (\n    pulse.includes('hsqct') ||\n    (pulse.includes('invi') && (pulse.includes('ml') || pulse.includes('di')))\n  ) {\n    return 'hsqctocsy';\n  }\n\n  if (pulse.includes('hsqc') || pulse.includes('invi')) {\n    return 'hsqc';\n  }\n\n  if (\n    pulse.includes('hmbc') ||\n    (pulse.includes('inv4') && pulse.includes('lp'))\n  ) {\n    return 'hmbc';\n  }\n\n  if (pulse.includes('hmqc')) {\n    return 'hmqc';\n  }\n\n  if (pulse.includes('cosy')) {\n    return 'cosy';\n  }\n\n  if (pulse.includes('jres')) {\n    return 'jres';\n  }\n\n  if (\n    pulse.includes('tocsy') ||\n    pulse.includes('mlev') ||\n    pulse.includes('dipsi')\n  ) {\n    return 'tocsy';\n  }\n\n  if (pulse.includes('noesy')) {\n    return 'noesy';\n  }\n\n  if (pulse.includes('roesy')) {\n    return 'roesy';\n  }\n\n  if (pulse.includes('dept')) {\n    return 'dept';\n  }\n\n  if (pulse.includes('jmod') || pulse.includes('apt')) {\n    return 'aptjmod';\n  }\n\n  if (pulse.includes('inad')) {\n    return 'inadequate';\n  }\n\n  if (pulse.includes('adeq')) {\n    return 'adequate';\n  }\n\n  return meta.dimension ? `${meta.dimension}d` : '';\n}\n","import { gyromagneticRatio } from 'nmr-processing';\n\nimport { getDigitalFilterParameters } from './getDigitalFilterParameters';\nimport { getNucleusFromMetadata } from './getNucleusFromMetadata';\nimport { getSpectrumType } from './getSpectrumType';\n\nexport function getInfoFromJCAMP(metaData, options = {}) {\n  const { subfix = '' } = options;\n  const info = {\n    dimension: 0,\n    nucleus: [],\n    isFid: false,\n    isFt: false,\n    isComplex: false,\n  };\n  let metadataString = JSON.stringify(metaData);\n  const separator = metadataString.match('\\r\\n') ? '\\r\\n' : '\\n';\n\n  let { JCAMPDX: jcampdx = '', ORIGIN: origin = '' } = metaData;\n  let creator = String(jcampdx).toLowerCase() + origin.toLowerCase();\n\n  if (creator.includes('mestre') || creator.includes('nova')) {\n    creator = 'mnova';\n  }\n\n  if (creator === 'mnova') {\n    if (metaData.LONGDATE) {\n      info.date = metaData.LONGDATE;\n    }\n  }\n\n  info.nucleus = getNucleusFromMetadata(metaData, info, subfix);\n  info.dimension = info.nucleus.length;\n\n  maybeAdd(info, 'title', metaData.TITLE);\n  maybeAdd(info, 'solvent', metaData['.SOLVENTNAME']);\n  maybeAdd(info, 'temperature', metaData[`${subfix}TE`] || metaData['.TE']);\n  maybeAdd(info, 'type', metaData.DATATYPE);\n\n  if (info.type) {\n    let typeLowerCase = info.type[0].toUpperCase();\n    if (typeLowerCase.indexOf('FID') >= 0) {\n      info.isFid = true;\n      info.isComplex = true;\n    } else if (typeLowerCase.indexOf('SPECTRUM') >= 0) {\n      info.isFt = true;\n      info.isComplex = true;\n    }\n  }\n\n  maybeAdd(\n    info,\n    'pulseSequence',\n    metaData['.PULSESEQUENCE'] ||\n      metaData['.PULPROG'] ||\n      metaData[`${subfix}PULPROG`],\n  );\n  maybeAdd(info, 'experiment', getSpectrumType(info, metaData, { subfix }));\n\n  maybeAdd(info, 'originFrequency', metaData['.OBSERVEFREQUENCY']);\n\n  if (creator !== 'mnova' && creator !== 'mestre') {\n    const gyromagneticRatioConst = gyromagneticRatio[info.nucleus[0]];\n    maybeAdd(info, 'probeName', metaData[`${subfix}PROBHD`]);\n    maybeAdd(info, 'originFrequency', metaData[`${subfix}SFO1`]);\n    maybeAdd(info, 'baseFrequency', metaData[`${subfix}BF1`]);\n\n    if (!['baseFrequency', 'originFrequency'].some((e) => !info[e])) {\n      const { baseFrequency, originFrequency } = info;\n      let fieldStrength =\n        2 * Math.PI * (baseFrequency[0] / gyromagneticRatioConst) * 1e6;\n\n      let frequencyOffset = baseFrequency.map(\n        (bf, i) => (originFrequency[i] - bf) * 1e6,\n      );\n\n      maybeAdd(info, 'fieldStrength', fieldStrength);\n      maybeAdd(info, 'frequencyOffset', frequencyOffset);\n    }\n    maybeAdd(info, 'spectralWidth', metaData[`${subfix}SW`]);\n    maybeAdd(info, 'numberOfPoints', metaData[`${subfix}TD`]);\n\n    const numberOfPoints = info.numberOfPoints;\n\n    maybeAdd(info, 'sampleName', metaData[`${subfix}NAME`]);\n\n    if (metaData[`${subfix}FNTYPE`] !== undefined) {\n      maybeAdd(\n        info,\n        'acquisitionMode',\n        parseInt(metaData[`${subfix}FNTYPE`], 10),\n      );\n    }\n    let varName = metaData[`${subfix}VARNAME`]\n      ? metaData[`${subfix}VARNAME`].split(',')[0]\n      : '';\n    if (varName === 'TIME') {\n      let value =\n        typeof metaData.LAST === 'string' || metaData.LAST instanceof String\n          ? metaData.LAST.replace(' ', '').split(',')[0]\n          : metaData.LAST;\n      maybeAdd(info, 'acquisitionTime', Number(value));\n    }\n\n    if (!info.acquisitionTime) {\n      if (!['numberOfPoints', 'spectralWidth'].some((e) => !info[e])) {\n        const { spectralWidth, originFrequency } = info;\n        maybeAdd(\n          info,\n          'acquisitionTime',\n          Number(\n            (numberOfPoints[0] - 1) /\n              (2 * spectralWidth[0] * originFrequency[0]),\n          ),\n        );\n      }\n    }\n\n    if (metaData[`${subfix}P`]) {\n      let pulseStrength =\n        1e6 / (metaData[`${subfix}P`].split(separator)[1].split(' ')[1] * 4);\n      maybeAdd(info, 'pulseStrength90', pulseStrength);\n    }\n    if (metaData[`${subfix}D`]) {\n      let relaxationTime = metaData[`${subfix}D`]\n        .split(separator)[1]\n        .split(' ')[1];\n      maybeAdd(info, 'relaxationTime', Number(relaxationTime));\n    }\n\n    maybeAdd(info, 'numberOfScans', Number(metaData[`${subfix}NS`]));\n\n    let increment;\n    if (!['numberOfPoints', 'spectralWidth'].some((e) => !info[e])) {\n      const { spectralWidth, numberOfPoints } = info;\n      if (info.isFid) {\n        maybeAdd(info, 'groupDelay', metaData[`${subfix}GRPDLY`] || 0);\n        maybeAdd(info, 'DSPFVS', metaData[`${subfix}DSPFVS`]);\n        maybeAdd(info, 'DECIM', metaData[`${subfix}DECIM`]);\n\n        if (!['groupDelay', 'DSPFVS', 'DECIM'].some((e) => !info[e])) {\n          let { groupDelay, DSPFVS, DECIM } = info;\n          let digitalFilterParameters = getDigitalFilterParameters(\n            groupDelay[0],\n            DSPFVS[0],\n            DECIM[0],\n          );\n          maybeAdd(info, 'digitalFilter', digitalFilterParameters);\n        }\n\n        increment = numberOfPoints.map((nb) => {\n          return info.acquisitionTime[0] / (nb - 1);\n        });\n      } else {\n        increment = numberOfPoints.map((nb, i) => {\n          return spectralWidth[i] / (nb - 1);\n        });\n      }\n    }\n\n    maybeAdd(info, 'increment', increment);\n    if (metaData[`${subfix}DATE`]) {\n      info.date = new Date(\n        parseInt(metaData[`${subfix}DATE`], 10) * 1000,\n      ).toISOString();\n    }\n\n    if (!info.solvent) {\n      maybeAdd(\n        info,\n        'solvent',\n        Array.isArray(metaData[`${subfix}SOLVENT`])\n          ? metaData[`${subfix}SOLVENT`][0]\n          : metaData[`${subfix}SOLVENT`],\n      );\n    }\n  }\n\n  if (metaData.SYMBOL) {\n    let symbols = metaData.SYMBOL.split(/[, ]+/);\n    if (symbols.includes('R') && symbols.includes('I')) {\n      info.isComplex = true;\n    }\n  }\n\n  for (let key in info) {\n    if (info[key].length === 1) info[key] = info[key][0];\n  }\n\n  if (!Array.isArray(info.nucleus)) info.nucleus = [info.nucleus];\n\n  return info;\n}\n\nfunction maybeAdd(obj, name, value) {\n  if (value !== undefined) {\n    if (Array.isArray(value)) {\n      obj[name] = value.map((v) => {\n        return removeUnless(v);\n      });\n    } else {\n      obj[name] = [removeUnless(value)];\n    }\n  }\n}\n\nfunction removeUnless(value) {\n  if (typeof value === 'string') {\n    if (value.startsWith('<') && value.endsWith('>')) {\n      value = value.substring(1, value.length - 1);\n    }\n    value = value.trim();\n  }\n  return value;\n}\n","import { convertZip as convertBruker } from 'brukerconverter';\n\nimport packageJson from '../package.json';\n\nimport { convertToFloatArray } from './utils/convertToFloatArray';\nimport { getInfoFromJCAMP } from './utils/getInfoFromJCAMP';\n\nconst defaultOptions = {\n  noContour: true,\n  xy: true,\n  keepRecordsRegExp: /.*/,\n  profiling: true,\n};\n\nexport async function fromBruker(zipFile, options = {}) {\n  let parseData = await convertBruker(\n    zipFile,\n    { ...defaultOptions, ...options },\n  );\n  let dataStructure = [];\n  for (let element of parseData) {\n    let entry = element.value;\n    let metadata = Object.assign({}, entry.info, entry.meta);\n    let info = getInfoFromJCAMP(metadata);\n\n    if (info.experiment === 'wobble_curve') continue;\n\n    let dimensions = [];\n    let dependentVariables = [];\n\n    let dependentVariable = {};\n\n    if (info.dimension === 1) {\n      for (let i = 0; i < entry.spectra.length; i++) {\n        let data = entry.spectra[i].data;\n        data = convertToFloatArray(data);\n      }\n      dependentVariable.components = entry.spectra;\n    } else if (info.dimension === 2) {\n      entry.minMax.z = convertToFloatArray(entry.minMax.z);\n      dependentVariable.components = entry.minMax;\n    }\n\n    let dimension = {\n      increment: info.increment,\n      numberOfPoints: info.numberOfPoints,\n    };\n\n    if (info.fid) {\n      dimension.coordinatesOffset = {\n        magnitude: -info.digitalFilter * info.increment,\n        units: 'second',\n      };\n    } else {\n      dimension.coordinatesOffset = {\n        magnitude:\n          info.frequencyOffset / info.baseFrequency - 0.5 * info.spectraWidth,\n        units: 'ppm',\n      };\n    }\n\n    dimensions.push(dimension);\n    dependentVariables.push(dependentVariable);\n\n    const { source } = entry;\n\n    dataStructure.push({\n      dimensions,\n      dependentVariables,\n      source,\n      info: info,\n      meta: metadata,\n      timeStamp: new Date().valueOf(),\n      version: packageJson.version,\n    });\n  }\n  return dataStructure;\n}\n","import { convert } from 'jcampconverter';\n\nimport packageJson from '../package.json';\n\nimport { convertToFloatArray } from './utils/convertToFloatArray';\nimport { getInfoFromJCAMP } from './utils/getInfoFromJCAMP';\n\nconst expectedTypes = ['ndnmrspectrum', 'ndnmrfid', 'nmrspectrum', 'nmrfid'];\n\nexport function fromJCAMP(buffer, options = {}) {\n  const {\n    noContour = true,\n    xy = true,\n    keepRecordsRegExp = /.*/,\n    profiling = true,\n  } = options;\n\n  let parsedData = convert(buffer, {\n    noContour,\n    xy,\n    keepRecordsRegExp,\n    profiling,\n  });\n\n  let dataStructure = [];\n  let entries = parsedData.flatten;\n  for (let entry of entries) {\n    if (!isSpectraData(entry)) continue;\n    if ((entry.spectra && entry.spectra.length > 0) || entry.minMax) {\n      let metadata = Object.assign({}, entry.info, entry.meta);\n      let info = getInfoFromJCAMP(metadata);\n\n      if (info.experiment === 'wobble_curve') continue;\n\n      let dimensions = [];\n      let dependentVariables = [];\n\n      let dependentVariable = {};\n      if (info.dimension === 1) {\n        for (let i = 0; i < entry.spectra.length; i++) {\n          let data = entry.spectra[i].data;\n          data = convertToFloatArray(data);\n        }\n        dependentVariable.components = entry.spectra;\n      } else if (info.dimension === 2) {\n        entry.minMax.z = convertToFloatArray(entry.minMax.z);\n        dependentVariable.components = entry.minMax;\n      }\n      let dimension = {\n        increment: info.increment,\n        numberOfPoints: info.numberOfPoints,\n      };\n\n      if (info.fid) {\n        dimension.coordinatesOffset = {\n          magnitude: -info.digitalFilter * info.increment,\n          units: 'second',\n        };\n      } else {\n        dimension.coordinatesOffset = {\n          magnitude:\n            info.frequencyOffset / info.baseFrequency - 0.5 * info.spectraWidth,\n          units: 'ppm',\n        };\n      }\n      dimensions.push(dimension);\n      dependentVariables.push(dependentVariable);\n\n      const data = {\n        dimensions,\n        dependentVariables,\n        info,\n        meta: metadata,\n        timeStamp: new Date().valueOf(),\n        version: packageJson.version,\n      };\n\n      dataStructure.push(data);\n    }\n  }\n\n  return dataStructure;\n}\n\nfunction isSpectraData(entry) {\n  const { dataType = '', dataClass = '' } = entry;\n\n  const inputDataType = dataType.replace(/\\s/g, '').toLowerCase();\n  const inputDataClass = dataClass.replace(/\\s/g, '').toLowerCase();\n  return (\n    expectedTypes.some((type) => type === inputDataType) &&\n    inputDataClass !== 'peak table'\n  );\n}\n"],"names":["toString","isAnyArray","numericTypeTable","quantityTypeTable","formatDependentVariable","data","numericType","options","quantityType","encoding","name","unit","quantityName","componentLabels","sparseSampling","from","to","components","Error","Object","keys","length","fromReIm","type","description","application","dataLength","reIm","re","im","setLengthComplex","component","Float64Array","i","idx","push","setLength","j","formatLinearDimension","label","count","increment","String","Number","coordinatesOffset","originOffset","reciprocal","period","complexFFT","endianness","instrumentTable","dataTypeTable","dataFormatTable","dataAxisTypeTable","prefixTable","unitPrefixTable","Yotta","Exa","Zetta","Pecta","Tera","Giga","Mega","Kilo","None","Milli","Micro","Nano","Pico","Femto","Atto","Zepto","baseTable","dataAxisRangedTable","valueTypeTable","getPar","param","searchStr","paramArray","find","o","getDigitalFilter","orders","e","factors","sweep","acqTime","nbPoints","shouldStop","some","undefined","s","parseInt","value","slice","jump","arg","factorNumber","Int8Array","offsetO","offsetF","productorial","delaySec","getMagnitude","par","magnitude","base","unitMult","table","prefix","getUnit","buffer","size","byte","readByte","power","readInt8","getString","string","char","readChar","join","getParamName","getArray","format","double","readUint32","readFloat64","readFloat32","readUint8","readBoolean","parseJEOL","ioBuffer","IOBuffer","setBigEndian","header","byteArray","fileIdentifier","readChars","endian","majorVersion","minorVersion","readUint16","dataDimensionNumber","dataDimensionExist","split","map","x","Boolean","dataType","dataFormat","dataInstrument","translate","dataAxisType","dataUnits","title","dataAxisRanged","dataPoints","dataOffsetStart","dataOffsetStop","dataAxisStart","dataAxisStop","Uint8Array","year","month","day","creationTime","revisionTime","nodeName","site","author","comment","dataAxisTitles","baseFreq","zeroPoint","reversed","skip","annotationOK","historyUsed","historyLength","paramStart","paramLength","ListStart","ListLength","dataStart","contextStart","contextLength","annoteStart","annoteLength","totalSize","unitLocation","compoundUnit","scaler","readInt16","setLittleEndian","seek","parameters","parameterSize","lowIndex","highIndex","p","valueType","readInt32","offset","Real","Imag","toLowerCase","dataSectionCount","realComplex","section","me","dim1","dim2","I","J","row","k","concat","nucleus","acquisitionTime","spectralWidth","spectralWidthClipped","resolution","originFrequency","frequencyOffset","digest","info","sampleName","solvent","temperature","probeName","fieldStrength","experiment","dimension","pulseStrength90","numberOfScans","relaxationTime","dataSections","decimationRate","paramList","JSON","stringify","headers","digitalFilter","prototype","object","call","endsWith","a","d","f","g","h","c","b","_ref","module","exports","window","median","input","isArray","TypeError","quickSelectMedian","toKeyValue","newObject","key","fromJEOL","parsedData","assign","newInfo","date","gyromagneticRatioConstants","gyromagneticRatio","baseFrequency","gmr","Math","PI","pulseSequence","isComplex","includes","isFid","isFt","numberOfPoints","sw","dimensions","origin","firstPoint","lastPoint","incr","dependentVariables","metadata","dataStructure","timeStamp","Date","now","version","packageJson","tags","t","u","r","require","l","code","n","encode","getTypeOf","charCodeAt","charAt","decode","substr","replace","uint8array","Array","indexOf","compressedSize","uncompressedSize","crc32","compression","compressedContent","getContentWorker","Promise","resolve","pipe","uncompressWorker","on","streamInfo","data_length","getCompressedWorker","withStreamInfo","createWorkerFrom","compressWorker","STORE","magic","DEFLATE","base64","binary","dir","createFolders","compressionOptions","unixPermissions","dosPermissions","lie","Uint16Array","Uint32Array","_pako","_pakoAction","_pakoOptions","meta","inherits","processChunk","_createPako","transformTo","flush","cleanUp","raw","level","onData","pako","A","fromCharCode","file","O","utf8encode","m","_","v","y","w","S","z","C","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCFullYear","getUTCMonth","getUTCDate","B","E","fileRecord","R","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","bytesWritten","zipComment","zipPlatform","encodeFileName","streamFiles","accumulate","contentBuffer","dirRecords","currentSourceOffset","entriesCount","currentFile","_sources","percent","openedSource","closedSource","DATA_DESCRIPTOR","shift","CENTRAL_DIRECTORY_END","prepareNextSource","previous","isPaused","pause","resume","registerPrevious","end","error","generatedError","lock","generateWorker","platform","forEach","_compressWorker","arguments","files","create","root","clone","loadAsync","support","defaults","external","decompressed","extend","checkCRC32","optimizedBinaryString","decodeFileName","utf8decode","isNode","isStream","reject","prepareContent","then","load","all","fileNameStr","fileCommentStr","_upstreamEnded","_bindStream","_stream","Readable","_helper","emit","_read","Buffer","newBufferFrom","allocBuffer","alloc","fill","isBuffer","toUpperCase","substring","lastIndexOf","filter","test","folder","remove","generate","generateInternalStream","mimeType","checkSupport","generateAsync","generateNodeStream","toNodejsStream","stream","byteAt","zero","lastIndexOfSignature","readAndCheckSignature","readData","checkOffset","index","checkIndex","setIndex","readInt","readString","readDate","UTC","subarray","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","destType","propName","dataIsReady","max","_tickScheduled","_tickAndRepeat","delay","isFinished","_tick","min","extraStreamInfo","isLocked","_listeners","mergeStreamInfo","hasOwnProperty","nodestream","_internalType","_outputType","_mimeType","newBlob","apply","set","_worker","objectMode","array","arraybuffer","ArrayBuffer","nodebuffer","blob","Blob","self","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","append","getBlob","leftOver","applyFromCharCode","Utf8DecodeWorker","Utf8EncodeWorker","stringifyByChunk","stringifyByChar","applyCanBeUsed","floor","byteLength","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","FileReader","onload","target","result","onerror","readAsArrayBuffer","loadOptions","checkSignature","reader","isSignature","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","zip64ExtensibleData","id","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","processAttributes","readCentralDir","zip64","readCentralPart","readEndOfCentral","abs","prepareReader","isEncrypted","bitFlag","useUTF8","fileNameLength","fileName","compressionMethod","versionMadeBy","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","fileComment","extraFields","findExtraFieldUnicodePath","findExtraFieldUnicodeComment","_data","_dataBinary","internalStream","_decompressWorker","async","nodeStream","MutationObserver","WebKitMutationObserver","document","createTextNode","observe","characterData","setImmediate","MessageChannel","createElement","onreadystatechange","parentNode","removeChild","documentElement","appendChild","setTimeout","port1","onmessage","port2","postMessage","global","state","queue","outcome","promise","onFulfilled","callFulfilled","otherCallFulfilled","onRejected","callRejected","otherCallRejected","status","finally","constructor","catch","race","immediate","method","chunkSize","windowBits","memLevel","strategy","gzip","err","msg","ended","chunks","strm","avail_out","deflateInit2","deflateSetHeader","dictionary","string2buf","deflateSetDictionary","_dict_set","next_in","avail_in","output","Buf8","next_out","deflate","onEnd","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","Deflate","deflateRaw","inflateInit2","Z_OK","inflateGetHeader","Z_FINISH","Z_NO_FLUSH","binstring2buf","inflate","Z_NEED_DICT","inflateSetDictionary","Z_BUF_ERROR","Z_STREAM_END","Z_SYNC_FLUSH","utf8border","buf2string","arraySet","inflateEnd","Inflate","inflateRaw","ungzip","Int32Array","setTyped","Buf16","Buf32","Z_PARTIAL_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","T","D","F","pending","pending_buf","pending_out","total_out","N","_tr_flush_block","block_start","strstart","U","P","L","max_chain_length","prev_length","nice_match","w_size","w_mask","prev","good_match","lookahead","match_start","window_size","hash_size","head","wrap","adler","total_in","insert","ins_h","hash_shift","hash_mask","Z","match_length","_tr_tally","max_lazy_match","last_lit","W","prev_match","match_available","M","good_length","max_lazy","nice_length","max_chain","func","H","pending_buf_size","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","G","data_type","_tr_init","K","Y","deflateInit","deflateReset","deflateResetKeep","text","hcrc","extra","time","os","_tr_align","_tr_stored_block","deflateInfo","xflags","extra_len","done","dmax","wsize","whave","wnext","hold","bits","lencode","distcode","lenbits","distbits","mode","sane","last","havedict","flags","check","total","wbits","ncode","nlen","ndist","have","next","lens","work","lendyn","distdyn","back","was","inflateReset","inflateReset2","inflateResetKeep","inflateInit","inflateInfo","static_tree","extra_bits","extra_base","elems","max_length","has_stree","dyn_tree","max_code","stat_desc","X","V","q","splice","convertTo3DZ","spectra","noise","minZ","maxZ","ySize","xSize","firstX","lastX","firstY","pageValue","lastY","spectrum","reverse","minMaxX","minX","maxX","minMaxY","minY","maxY","generateContourLines","zData","contourLevels","nbLevels","povarHeight","Float32Array","isOver","nbSubSpectra","nbPovars","pAx","pAy","pBx","pBy","x0","xN","dx","y0","yN","dy","lineZValue","contourLevel","side","exp","lines","zValue","iSubSpectra","povar","segments","add2D","noContours","contourLines","minMax","parseString","lowercase","number","isNaN","convertToFloatArray","getMedian","defaultOptions","parseData","keepRecordsRegExp","convertJcamp","flatten","ensureIOBuffer","setFIDSpectrumData","td","TD","SW_H","parseFloat","SW_h","SF","SFO1","DATATYPE","DW","AQ","BYTORDA","toSave","dataTable","NUC1","xUnit","yUnit","isXYdata","observeFrequency","TITLE","deltaX","directFrequency","available","setXYSpectrumData","real","SI","swP","SW_p","sf","bf","shiftOffsetVal","OFFSET","brukerReference","BYTORDP","convert1D","procs","temp","acqus","currKey","fid","mergeMetadata","main","complement","convert2D","temp2","proc2s","acqu2s","xOffset","yOffset","SW","ser","xWindowSize","yWindowSize","xTransmitterFrequency","yTransmitterFrequency","xTransmitterFrequencyOffset","O1","yTransmitterFrequencyOffset","deltaY","nuc1","AXNUC","axnuc","twoD","convertFolder","brukerFiles","start","RangeError","DATE","GRPDLY","DSPFVS","DECIM","profiling","action","keepSpectra","xy","newData","source","extractFilePaths","pathSpectrum","zipFiles","expnoCheck","procnoCheck","match","filePaths","parts","expno","procno","extractSingleSpectrumZip","zipFolder","JSZip","extension","BINARY","TEXT","convertZip","zipFile","keepOriginal","jsZip","zip","folders","relativePath","promises","currFolder","currFiles","filename","getDigitalFilterParameters","grpdly","dspfvs","decim","brukerDspTable","dspfvsList","getNucleusFromMetadata","metaData","subfix","checkForNucleus","nuc","trim","getNucleusFrom2DExperiment","beforeLength","getSpectrumType","spectyp","pulse","getInfoFromJCAMP","metadataString","separator","JCAMPDX","jcampdx","ORIGIN","creator","LONGDATE","maybeAdd","typeLowerCase","gyromagneticRatioConst","varName","LAST","pulseStrength","groupDelay","digitalFilterParameters","nb","toISOString","SYMBOL","symbols","obj","removeUnless","startsWith","noContour","fromBruker","convertBruker","element","entry","dependentVariable","units","spectraWidth","valueOf","expectedTypes","fromJCAMP","convert","entries","isSpectraData","dataClass","inputDataType","inputDataClass"],"mappings":"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"}