{"version":3,"sources":["webpack:///./node_modules/lib0/eventloop.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/lib0/decoding.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/lib0/object.js","webpack:///./node_modules/lib0/environment.js","webpack:///./node_modules/lib0/error.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/lib0/function.js","webpack:///./node_modules/lib0/map.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/lib0/iterator.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/lib0/broadcastchannel.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/lib0/set.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/env/data.js","webpack:///./node_modules/lib0/string.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/lib0/symbol.js","webpack:///./node_modules/lib0/json.js","webpack:///./node_modules/lib0/logging.js","webpack:///./node_modules/lib0/metric.js","webpack:///./node_modules/lib0/time.js","webpack:///./node_modules/lib0/pair.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/helpers/validator.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/lib0/promise.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/lib0/dom.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/lib0/url.js","webpack:///./node_modules/lib0/binary.js","webpack:///./node_modules/lib0/storage.js","webpack:///./node_modules/isomorphic.js/browser.mjs","webpack:///./node_modules/lib0/random.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/lib0/math.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/lib0/buffer.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/lib0/number.js","webpack:///./node_modules/lib0/encoding.js","webpack:///./node_modules/lib0/conditions.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/lib0/observable.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/lib0/array.js"],"names":["queue","_runQueue","i","length","enqueue","f","push","setTimeout","createTimeoutClass","clearFunction","timeoutId","this","_","Timeout","clearTimeout","timeout","callback","createDebouncer","clearInterval","arg","requestAnimationFrame","cancelAnimationFrame","cancelIdleCallback","timer","utils","buildURL","InterceptorManager","dispatchRequest","mergeConfig","validator","validators","Axios","instanceConfig","defaults","interceptors","request","response","prototype","configOrUrl","config","url","Error","method","toLowerCase","transitional","undefined","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","clarifyTimeoutError","requestInterceptorChain","synchronousRequestInterceptors","forEach","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","promise","responseInterceptorChain","chain","Array","apply","concat","Promise","resolve","then","shift","newConfig","onFulfilled","onRejected","error","reject","getUri","params","paramsSerializer","replace","data","module","exports","arr","Decoder","uint8Array","pos","createDecoder","hasContent","decoder","readUint8Array","len","view","buffer","byteOffset","readVarUint8Array","readVarUint","readUint8","num","r","readVarInt","sign","readVarString","remainingLen","encodedString","String","fromCodePoint","nextLen","bytes","subarray","decodeURIComponent","escape","readFromDataView","dv","DataView","readFloat32","getFloat32","readFloat64","getFloat64","readBigInt64","getBigInt64","readAnyLookupTable","obj","key","readAny","RleDecoder","reader","super","s","count","UintOptRleDecoder","isNegative","IntDiffOptRleDecoder","diff","hasCount","StringDecoder","str","spos","end","read","res","slice","fn","thisArg","args","arguments","Object","assign","keys","map","results","every","hasProperty","hasOwnProperty","call","equalFlat","a","b","val","isNode","process","release","test","name","isBrowser","window","navigator","platform","computeParams","pargs","argv","currParamName","parg","set","location","search","split","kv","value","hasParam","has","getVariable","toUpperCase","getItem","hasConf","create","methodUnimplemented","unexpectedCase","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","Uint8Array","code","charCodeAt","getLens","b64","validLen","indexOf","placeHoldersLen","lens","_byteLength","tmp","curByte","tripletToBase64","encodeChunk","uint8","start","output","join","extraBytes","parts","maxChunkLength","len2","callAll","fs","nop","equalityStrict","equalityFlat","constructor","equalityDeep","ArrayBuffer","Set","size","Map","get","copy","m","v","k","setIfUndefined","createT","any","normalizeHeaderName","enhanceError","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","isUndefined","getDefaultAdapter","adapter","XMLHttpRequest","toString","stringifySafely","rawValue","parser","encoder","isString","JSON","parse","trim","e","stringify","transformRequest","isFormData","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","isURLSearchParams","isObject","transformResponse","strictJSONParsing","responseType","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","status","common","merge","message","__CANCEL__","encode","encodeURIComponent","serializedParams","isArray","isDate","toISOString","hashmarkIndex","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","stack","isStandardBrowserEnv","originURL","msie","userAgent","urlParsingNode","document","createElement","resolveURL","href","setAttribute","protocol","host","hash","hostname","port","pathname","charAt","requestURL","parsed","createIterator","next","Symbol","iterator","iteratorFilter","filter","done","iteratorMap","fmap","createError","channels","LocalStoragePolyfill","room","onmessage","newValue","buf","setItem","BC","BroadcastChannel","getChannel","subs","bc","sub","subscribe","add","unsubscribe","delete","publish","origin","c","postMessage","config1","config2","getMergedValue","target","source","isPlainObject","mergeDeepProperties","prop","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","transformData","isCancel","Cancel","throwIfCancellationRequested","cancelToken","throwIfRequested","signal","aborted","reason","fromCharCode","trimLeftRegex","trimLeft","fromCamelCaseRegex","fromCamelCase","separator","match","TextEncoder","utf8TextDecoder","TextDecoder","fatal","ignoreBOM","decode","payload","BOLD","UNBOLD","BLUE","GREY","GREEN","RED","PURPLE","ORANGE","UNCOLOR","_browserStyleMap","pair","_nodeStyleMap","computeBrowserLoggingArgs","strBuilder","styles","currentStyle","logArgs","style","left","right","Number","dom","computeNodeLoggingArgs","computeLoggingArgs","print","console","log","vconsoles","vc","time","getUnixTime","Date","now","Pair","p","write","expires","path","domain","secure","cookie","isNumber","toGMTString","RegExp","remove","isAbsoluteURL","combineURLs","baseURL","requestedURL","VERSION","version","type","thing","deprecatedWarnings","options","schema","allowUnknown","TypeError","opt","result","formatMessage","desc","opts","warn","CancelToken","executor","resolvePromise","token","cancel","_listeners","l","onfulfilled","_resolve","listener","index","splice","offset","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","d","NaN","Infinity","Math","pow","rt","abs","isNaN","floor","LN2","settle","cookies","buildFullPath","parseHeaders","isURLSameOrigin","onCanceled","requestData","requestHeaders","removeEventListener","auth","username","password","unescape","Authorization","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","responseData","responseText","statusText","err","open","onreadystatechange","readyState","responseURL","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","abort","send","base64","ieee754","typedArraySupport","__proto__","foo","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","encodingOrOffset","allocUnsafe","from","fromArrayBuffer","fromString","fromObject","assertSize","alloc","fill","encoding","checked","string","isEncoding","actual","fromArrayLike","array","isnan","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","found","j","hexWrite","remaining","strLen","parseInt","substr","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","min","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","global","poolSize","_augment","species","defineProperty","configurable","allocUnsafeSlow","_isBuffer","compare","x","y","list","swap16","swap32","swap64","equals","inspect","max","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","_arr","MAX_ARGUMENTS_LENGTH","codePoints","ret","out","toHex","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","hi","lo","src","dst","doc","createDocumentFragment","createTextNode","text","setAttributes","DOMParser","el","attrs","removeAttribute","fragment","children","appendChild","append","parent","nodes","element","mapToStyleString","child","ELEMENT_NODE","TEXT_NODE","CDATA_SECTION_NODE","COMMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","ignoreDuplicateOf","line","fns","context","bind","getPrototypeOf","isFunction","pipe","product","assignValue","extend","stripBOM","content","encodeQueryParams","BIT1","BIT2","BIT3","BIT4","BIT6","BIT7","BIT8","BIT22","BITS5","BITS6","BITS7","BITS8","BITS21","BITS31","BITS32","VarStoragePolyfill","_localStorage","usePolyfill","localStorage","varStorage","onChange","eventHandler","performance","isoCrypto","crypto","cryptoRandomBuffer","getRandomValues","ceil","random","rand","uint32","Uint32Array","oneOf","math","uuidv4Template","uuidv4","normalizedName","round","imul","log10","log2","sqrt","exp10","exp","isNegativeZero","createInstance","defaultConfig","instance","axios","all","promises","spread","default","createUint8ArrayFromLen","createUint8ArrayViewFromArrayBuffer","createUint8ArrayFromArrayBuffer","toBase64Browser","toBase64Node","fromBase64Browser","atob","fromBase64Node","toBase64","fromBase64","copyUint8Array","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","binary","isInteger","Encoder","cpos","cbuf","bufs","createEncoder","toUint8Array","uint8arr","curPos","verifyLen","bufferLen","writeUint8","writeVarUint","writeVarInt","writeVarString","codePointAt","writeBinaryEncoder","writeUint8Array","leftCopyLen","rightCopyLen","writeVarUint8Array","writeOnDataView","dview","writeFloat32","setFloat32","writeFloat64","setFloat64","writeBigInt64","setBigInt64","floatTestBed","isFloat32","writeAny","RleEncoder","writer","w","flushUintOptRleEncoder","UintOptRleEncoder","flushIntDiffOptRleEncoder","encodedDiff","IntDiffOptRleEncoder","StringEncoder","sarr","lensE","undefinedToNull","relativeURL","Observable","_observers","_f","off","on","observers","values","handlers","use","eject","id","h","last","appendTo","dest","item"],"mappings":"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","file":"js/chunk-vendors~2a42e354.ba0c0582.js","sourcesContent":["/* global requestIdleCallback, requestAnimationFrame, cancelIdleCallback, cancelAnimationFrame */\n\n/**\n * Utility module to work with EcmaScript's event loop.\n *\n * @module eventloop\n */\n\n/**\n * @type {Array}\n */\nlet queue = []\n\nconst _runQueue = () => {\n for (let i = 0; i < queue.length; i++) {\n queue[i]()\n }\n queue = []\n}\n\n/**\n * @param {function():void} f\n */\nexport const enqueue = f => {\n queue.push(f)\n if (queue.length === 1) {\n setTimeout(_runQueue, 0)\n }\n}\n\n/**\n * @typedef {Object} TimeoutObject\n * @property {function} TimeoutObject.destroy\n */\n\n/**\n * @param {function(number):void} clearFunction\n */\nconst createTimeoutClass = clearFunction => class TT {\n /**\n * @param {number} timeoutId\n */\n constructor (timeoutId) {\n this._ = timeoutId\n }\n\n destroy () {\n clearFunction(this._)\n }\n}\n\nconst Timeout = createTimeoutClass(clearTimeout)\n\n/**\n * @param {number} timeout\n * @param {function} callback\n * @return {TimeoutObject}\n */\nexport const timeout = (timeout, callback) => new Timeout(setTimeout(callback, timeout))\n\nconst Interval = createTimeoutClass(clearInterval)\n\n/**\n * @param {number} timeout\n * @param {function} callback\n * @return {TimeoutObject}\n */\nexport const interval = (timeout, callback) => new Interval(setInterval(callback, timeout))\n\n/* istanbul ignore next */\nexport const Animation = createTimeoutClass(arg => typeof requestAnimationFrame !== 'undefined' && cancelAnimationFrame(arg))\n\n/* istanbul ignore next */\n/**\n * @param {function(number):void} cb\n * @return {TimeoutObject}\n */\nexport const animationFrame = cb => typeof requestAnimationFrame === 'undefined' ? timeout(0, cb) : new Animation(requestAnimationFrame(cb))\n\n/* istanbul ignore next */\n// @ts-ignore\nconst Idle = createTimeoutClass(arg => typeof cancelIdleCallback !== 'undefined' && cancelIdleCallback(arg))\n\n/* istanbul ignore next */\n/**\n * Note: this is experimental and is probably only useful in browsers.\n *\n * @param {function} cb\n * @return {TimeoutObject}\n */\n// @ts-ignore\nexport const idleCallback = cb => typeof requestIdleCallback !== 'undefined' ? new Idle(requestIdleCallback(cb)) : timeout(1000, cb)\n\n/**\n * @param {number} timeout Timeout of the debounce action\n * @return {function(function():void):void}\n */\nexport const createDebouncer = timeout => {\n let timer = -1\n return f => {\n clearTimeout(timer)\n if (f) {\n timer = /** @type {any} */ (setTimeout(f, timeout))\n }\n }\n}\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n if (!config.url) {\n throw new Error('Provided config url is not valid');\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n if (!config.url) {\n throw new Error('Provided config url is not valid');\n }\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","/**\n * Efficient schema-less binary decoding with support for variable length encoding.\n *\n * Use [lib0/decoding] with [lib0/encoding]. Every encoding function has a corresponding decoding function.\n *\n * Encodes numbers in little-endian order (least to most significant byte order)\n * and is compatible with Golang's binary encoding (https://golang.org/pkg/encoding/binary/)\n * which is also used in Protocol Buffers.\n *\n * ```js\n * // encoding step\n * const encoder = new encoding.createEncoder()\n * encoding.writeVarUint(encoder, 256)\n * encoding.writeVarString(encoder, 'Hello world!')\n * const buf = encoding.toUint8Array(encoder)\n * ```\n *\n * ```js\n * // decoding step\n * const decoder = new decoding.createDecoder(buf)\n * decoding.readVarUint(decoder) // => 256\n * decoding.readVarString(decoder) // => 'Hello world!'\n * decoding.hasContent(decoder) // => false - all data is read\n * ```\n *\n * @module decoding\n */\n\nimport * as buffer from './buffer.js'\nimport * as binary from './binary.js'\nimport * as math from './math.js'\n\n/**\n * A Decoder handles the decoding of an Uint8Array.\n */\nexport class Decoder {\n /**\n * @param {Uint8Array} uint8Array Binary data to decode\n */\n constructor (uint8Array) {\n /**\n * Decoding target.\n *\n * @type {Uint8Array}\n */\n this.arr = uint8Array\n /**\n * Current decoding position.\n *\n * @type {number}\n */\n this.pos = 0\n }\n}\n\n/**\n * @function\n * @param {Uint8Array} uint8Array\n * @return {Decoder}\n */\nexport const createDecoder = uint8Array => new Decoder(uint8Array)\n\n/**\n * @function\n * @param {Decoder} decoder\n * @return {boolean}\n */\nexport const hasContent = decoder => decoder.pos !== decoder.arr.length\n\n/**\n * Clone a decoder instance.\n * Optionally set a new position parameter.\n *\n * @function\n * @param {Decoder} decoder The decoder instance\n * @param {number} [newPos] Defaults to current position\n * @return {Decoder} A clone of `decoder`\n */\nexport const clone = (decoder, newPos = decoder.pos) => {\n const _decoder = createDecoder(decoder.arr)\n _decoder.pos = newPos\n return _decoder\n}\n\n/**\n * Create an Uint8Array view of the next `len` bytes and advance the position by `len`.\n *\n * Important: The Uint8Array still points to the underlying ArrayBuffer. Make sure to discard the result as soon as possible to prevent any memory leaks.\n * Use `buffer.copyUint8Array` to copy the result into a new Uint8Array.\n *\n * @function\n * @param {Decoder} decoder The decoder instance\n * @param {number} len The length of bytes to read\n * @return {Uint8Array}\n */\nexport const readUint8Array = (decoder, len) => {\n const view = buffer.createUint8ArrayViewFromArrayBuffer(decoder.arr.buffer, decoder.pos + decoder.arr.byteOffset, len)\n decoder.pos += len\n return view\n}\n\n/**\n * Read variable length Uint8Array.\n *\n * Important: The Uint8Array still points to the underlying ArrayBuffer. Make sure to discard the result as soon as possible to prevent any memory leaks.\n * Use `buffer.copyUint8Array` to copy the result into a new Uint8Array.\n *\n * @function\n * @param {Decoder} decoder\n * @return {Uint8Array}\n */\nexport const readVarUint8Array = decoder => readUint8Array(decoder, readVarUint(decoder))\n\n/**\n * Read the rest of the content as an ArrayBuffer\n * @function\n * @param {Decoder} decoder\n * @return {Uint8Array}\n */\nexport const readTailAsUint8Array = decoder => readUint8Array(decoder, decoder.arr.length - decoder.pos)\n\n/**\n * Skip one byte, jump to the next position.\n * @function\n * @param {Decoder} decoder The decoder instance\n * @return {number} The next position\n */\nexport const skip8 = decoder => decoder.pos++\n\n/**\n * Read one byte as unsigned integer.\n * @function\n * @param {Decoder} decoder The decoder instance\n * @return {number} Unsigned 8-bit integer\n */\nexport const readUint8 = decoder => decoder.arr[decoder.pos++]\n\n/**\n * Read 2 bytes as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const readUint16 = decoder => {\n const uint =\n decoder.arr[decoder.pos] +\n (decoder.arr[decoder.pos + 1] << 8)\n decoder.pos += 2\n return uint\n}\n\n/**\n * Read 4 bytes as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const readUint32 = decoder => {\n const uint =\n (decoder.arr[decoder.pos] +\n (decoder.arr[decoder.pos + 1] << 8) +\n (decoder.arr[decoder.pos + 2] << 16) +\n (decoder.arr[decoder.pos + 3] << 24)) >>> 0\n decoder.pos += 4\n return uint\n}\n\n/**\n * Read 4 bytes as unsigned integer in big endian order.\n * (most significant byte first)\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const readUint32BigEndian = decoder => {\n const uint =\n (decoder.arr[decoder.pos + 3] +\n (decoder.arr[decoder.pos + 2] << 8) +\n (decoder.arr[decoder.pos + 1] << 16) +\n (decoder.arr[decoder.pos] << 24)) >>> 0\n decoder.pos += 4\n return uint\n}\n\n/**\n * Look ahead without incrementing the position\n * to the next byte and read it as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const peekUint8 = decoder => decoder.arr[decoder.pos]\n\n/**\n * Look ahead without incrementing the position\n * to the next byte and read it as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const peekUint16 = decoder =>\n decoder.arr[decoder.pos] +\n (decoder.arr[decoder.pos + 1] << 8)\n\n/**\n * Look ahead without incrementing the position\n * to the next byte and read it as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const peekUint32 = decoder => (\n decoder.arr[decoder.pos] +\n (decoder.arr[decoder.pos + 1] << 8) +\n (decoder.arr[decoder.pos + 2] << 16) +\n (decoder.arr[decoder.pos + 3] << 24)\n) >>> 0\n\n/**\n * Read unsigned integer (32bit) with variable length.\n * 1/8th of the storage is used as encoding overhead.\n * * numbers < 2^7 is stored in one bytlength\n * * numbers < 2^14 is stored in two bylength\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.length\n */\nexport const readVarUint = decoder => {\n let num = 0\n let len = 0\n while (true) {\n const r = decoder.arr[decoder.pos++]\n num = num | ((r & binary.BITS7) << len)\n len += 7\n if (r < binary.BIT8) {\n return num >>> 0 // return unsigned number!\n }\n /* istanbul ignore if */\n if (len > 53) {\n throw new Error('Integer out of range!')\n }\n }\n}\n\n/**\n * Read signed integer (32bit) with variable length.\n * 1/8th of the storage is used as encoding overhead.\n * * numbers < 2^7 is stored in one bytlength\n * * numbers < 2^14 is stored in two bylength\n * @todo This should probably create the inverse ~num if number is negative - but this would be a breaking change.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.length\n */\nexport const readVarInt = decoder => {\n let r = decoder.arr[decoder.pos++]\n let num = r & binary.BITS6\n let len = 6\n const sign = (r & binary.BIT7) > 0 ? -1 : 1\n if ((r & binary.BIT8) === 0) {\n // don't continue reading\n return sign * num\n }\n while (true) {\n r = decoder.arr[decoder.pos++]\n num = num | ((r & binary.BITS7) << len)\n len += 7\n if (r < binary.BIT8) {\n return sign * (num >>> 0)\n }\n /* istanbul ignore if */\n if (len > 53) {\n throw new Error('Integer out of range!')\n }\n }\n}\n\n/**\n * Look ahead and read varUint without incrementing position\n *\n * @function\n * @param {Decoder} decoder\n * @return {number}\n */\nexport const peekVarUint = decoder => {\n const pos = decoder.pos\n const s = readVarUint(decoder)\n decoder.pos = pos\n return s\n}\n\n/**\n * Look ahead and read varUint without incrementing position\n *\n * @function\n * @param {Decoder} decoder\n * @return {number}\n */\nexport const peekVarInt = decoder => {\n const pos = decoder.pos\n const s = readVarInt(decoder)\n decoder.pos = pos\n return s\n}\n\n/**\n * Read string of variable length\n * * varUint is used to store the length of the string\n *\n * Transforming utf8 to a string is pretty expensive. The code performs 10x better\n * when String.fromCodePoint is fed with all characters as arguments.\n * But most environments have a maximum number of arguments per functions.\n * For effiency reasons we apply a maximum of 10000 characters at once.\n *\n * @function\n * @param {Decoder} decoder\n * @return {String} The read String.\n */\nexport const readVarString = decoder => {\n let remainingLen = readVarUint(decoder)\n if (remainingLen === 0) {\n return ''\n } else {\n let encodedString = String.fromCodePoint(readUint8(decoder)) // remember to decrease remainingLen\n if (--remainingLen < 100) { // do not create a Uint8Array for small strings\n while (remainingLen--) {\n encodedString += String.fromCodePoint(readUint8(decoder))\n }\n } else {\n while (remainingLen > 0) {\n const nextLen = remainingLen < 10000 ? remainingLen : 10000\n // this is dangerous, we create a fresh array view from the existing buffer\n const bytes = decoder.arr.subarray(decoder.pos, decoder.pos + nextLen)\n decoder.pos += nextLen\n // Starting with ES5.1 we can supply a generic array-like object as arguments\n encodedString += String.fromCodePoint.apply(null, /** @type {any} */ (bytes))\n remainingLen -= nextLen\n }\n }\n return decodeURIComponent(escape(encodedString))\n }\n}\n\n/**\n * Look ahead and read varString without incrementing position\n *\n * @function\n * @param {Decoder} decoder\n * @return {string}\n */\nexport const peekVarString = decoder => {\n const pos = decoder.pos\n const s = readVarString(decoder)\n decoder.pos = pos\n return s\n}\n\n/**\n * @param {Decoder} decoder\n * @param {number} len\n * @return {DataView}\n */\nexport const readFromDataView = (decoder, len) => {\n const dv = new DataView(decoder.arr.buffer, decoder.arr.byteOffset + decoder.pos, len)\n decoder.pos += len\n return dv\n}\n\n/**\n * @param {Decoder} decoder\n */\nexport const readFloat32 = decoder => readFromDataView(decoder, 4).getFloat32(0, false)\n\n/**\n * @param {Decoder} decoder\n */\nexport const readFloat64 = decoder => readFromDataView(decoder, 8).getFloat64(0, false)\n\n/**\n * @param {Decoder} decoder\n */\nexport const readBigInt64 = decoder => /** @type {any} */ (readFromDataView(decoder, 8)).getBigInt64(0, false)\n\n/**\n * @param {Decoder} decoder\n */\nexport const readBigUint64 = decoder => /** @type {any} */ (readFromDataView(decoder, 8)).getBigUint64(0, false)\n\n/**\n * @type {Array}\n */\nconst readAnyLookupTable = [\n decoder => undefined, // CASE 127: undefined\n decoder => null, // CASE 126: null\n readVarInt, // CASE 125: integer\n readFloat32, // CASE 124: float32\n readFloat64, // CASE 123: float64\n readBigInt64, // CASE 122: bigint\n decoder => false, // CASE 121: boolean (false)\n decoder => true, // CASE 120: boolean (true)\n readVarString, // CASE 119: string\n decoder => { // CASE 118: object\n const len = readVarUint(decoder)\n /**\n * @type {Object}\n */\n const obj = {}\n for (let i = 0; i < len; i++) {\n const key = readVarString(decoder)\n obj[key] = readAny(decoder)\n }\n return obj\n },\n decoder => { // CASE 117: array\n const len = readVarUint(decoder)\n const arr = []\n for (let i = 0; i < len; i++) {\n arr.push(readAny(decoder))\n }\n return arr\n },\n readVarUint8Array // CASE 116: Uint8Array\n]\n\n/**\n * @param {Decoder} decoder\n */\nexport const readAny = decoder => readAnyLookupTable[127 - readUint8(decoder)](decoder)\n\n/**\n * T must not be null.\n *\n * @template T\n */\nexport class RleDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n * @param {function(Decoder):T} reader\n */\n constructor (uint8Array, reader) {\n super(uint8Array)\n /**\n * The reader\n */\n this.reader = reader\n /**\n * Current state\n * @type {T|null}\n */\n this.s = null\n this.count = 0\n }\n\n read () {\n if (this.count === 0) {\n this.s = this.reader(this)\n if (hasContent(this)) {\n this.count = readVarUint(this) + 1 // see encoder implementation for the reason why this is incremented\n } else {\n this.count = -1 // read the current value forever\n }\n }\n this.count--\n return /** @type {T} */ (this.s)\n }\n}\n\nexport class IntDiffDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n * @param {number} start\n */\n constructor (uint8Array, start) {\n super(uint8Array)\n /**\n * Current state\n * @type {number}\n */\n this.s = start\n }\n\n /**\n * @return {number}\n */\n read () {\n this.s += readVarInt(this)\n return this.s\n }\n}\n\nexport class RleIntDiffDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n * @param {number} start\n */\n constructor (uint8Array, start) {\n super(uint8Array)\n /**\n * Current state\n * @type {number}\n */\n this.s = start\n this.count = 0\n }\n\n /**\n * @return {number}\n */\n read () {\n if (this.count === 0) {\n this.s += readVarInt(this)\n if (hasContent(this)) {\n this.count = readVarUint(this) + 1 // see encoder implementation for the reason why this is incremented\n } else {\n this.count = -1 // read the current value forever\n }\n }\n this.count--\n return /** @type {number} */ (this.s)\n }\n}\n\nexport class UintOptRleDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n */\n constructor (uint8Array) {\n super(uint8Array)\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n }\n\n read () {\n if (this.count === 0) {\n this.s = readVarInt(this)\n // if the sign is negative, we read the count too, otherwise count is 1\n const isNegative = math.isNegativeZero(this.s)\n this.count = 1\n if (isNegative) {\n this.s = -this.s\n this.count = readVarUint(this) + 2\n }\n }\n this.count--\n return /** @type {number} */ (this.s)\n }\n}\n\nexport class IncUintOptRleDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n */\n constructor (uint8Array) {\n super(uint8Array)\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n }\n\n read () {\n if (this.count === 0) {\n this.s = readVarInt(this)\n // if the sign is negative, we read the count too, otherwise count is 1\n const isNegative = math.isNegativeZero(this.s)\n this.count = 1\n if (isNegative) {\n this.s = -this.s\n this.count = readVarUint(this) + 2\n }\n }\n this.count--\n return /** @type {number} */ (this.s++)\n }\n}\n\nexport class IntDiffOptRleDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n */\n constructor (uint8Array) {\n super(uint8Array)\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n this.diff = 0\n }\n\n /**\n * @return {number}\n */\n read () {\n if (this.count === 0) {\n const diff = readVarInt(this)\n // if the first bit is set, we read more data\n const hasCount = diff & 1\n this.diff = diff >> 1\n this.count = 1\n if (hasCount) {\n this.count = readVarUint(this) + 2\n }\n }\n this.s += this.diff\n this.count--\n return this.s\n }\n}\n\nexport class StringDecoder {\n /**\n * @param {Uint8Array} uint8Array\n */\n constructor (uint8Array) {\n this.decoder = new UintOptRleDecoder(uint8Array)\n this.str = readVarString(this.decoder)\n /**\n * @type {number}\n */\n this.spos = 0\n }\n\n /**\n * @return {string}\n */\n read () {\n const end = this.spos + this.decoder.read()\n const res = this.str.slice(this.spos, end)\n this.spos = end\n return res\n }\n}\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","/**\n * Utility functions for working with EcmaScript objects.\n *\n * @module object\n */\n\n/**\n * @return {Object} obj\n */\nexport const create = () => Object.create(null)\n\n/**\n * Object.assign\n */\nexport const assign = Object.assign\n\n/**\n * @param {Object} obj\n */\nexport const keys = Object.keys\n\n/**\n * @param {Object} obj\n * @param {function(any,string):any} f\n */\nexport const forEach = (obj, f) => {\n for (const key in obj) {\n f(obj[key], key)\n }\n}\n\n/**\n * @template R\n * @param {Object} obj\n * @param {function(any,string):R} f\n * @return {Array}\n */\nexport const map = (obj, f) => {\n const results = []\n for (const key in obj) {\n results.push(f(obj[key], key))\n }\n return results\n}\n\n/**\n * @param {Object} obj\n * @return {number}\n */\nexport const length = obj => keys(obj).length\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const some = (obj, f) => {\n for (const key in obj) {\n if (f(obj[key], key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const every = (obj, f) => {\n for (const key in obj) {\n if (!f(obj[key], key)) {\n return false\n }\n }\n return true\n}\n\n/**\n * Calls `Object.prototype.hasOwnProperty`.\n *\n * @param {any} obj\n * @param {string|symbol} key\n * @return {boolean}\n */\nexport const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key)\n\n/**\n * @param {Object} a\n * @param {Object} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a === b || (length(a) === length(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && b[key] === val))\n","/**\n * Isomorphic module to work access the environment (query params, env variables).\n *\n * @module map\n */\n\nimport * as map from './map.js'\nimport * as string from './string.js'\nimport * as conditions from './conditions.js'\nimport * as storage from './storage.js'\n\n/* istanbul ignore next */\n// @ts-ignore\nexport const isNode = typeof process !== 'undefined' && process.release && /node|io\\.js/.test(process.release.name)\n/* istanbul ignore next */\nexport const isBrowser = typeof window !== 'undefined' && !isNode\n/* istanbul ignore next */\nexport const isMac = typeof navigator !== 'undefined' ? /Mac/.test(navigator.platform) : false\n\n/**\n * @type {Map}\n */\nlet params\nconst args = []\n\n/* istanbul ignore next */\nconst computeParams = () => {\n if (params === undefined) {\n if (isNode) {\n params = map.create()\n const pargs = process.argv\n let currParamName = null\n /* istanbul ignore next */\n for (let i = 0; i < pargs.length; i++) {\n const parg = pargs[i]\n if (parg[0] === '-') {\n if (currParamName !== null) {\n params.set(currParamName, '')\n }\n currParamName = parg\n } else {\n if (currParamName !== null) {\n params.set(currParamName, parg)\n currParamName = null\n } else {\n args.push(parg)\n }\n }\n }\n if (currParamName !== null) {\n params.set(currParamName, '')\n }\n // in ReactNative for example this would not be true (unless connected to the Remote Debugger)\n } else if (typeof location === 'object') {\n params = map.create()\n // eslint-disable-next-line no-undef\n ;(location.search || '?').slice(1).split('&').forEach(kv => {\n if (kv.length !== 0) {\n const [key, value] = kv.split('=')\n params.set(`--${string.fromCamelCase(key, '-')}`, value)\n params.set(`-${string.fromCamelCase(key, '-')}`, value)\n }\n })\n } else {\n params = map.create()\n }\n }\n return params\n}\n\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* istanbul ignore next */\nexport const hasParam = name => computeParams().has(name)\n\n/**\n * @param {string} name\n * @param {string} defaultVal\n * @return {string}\n */\n/* istanbul ignore next */\nexport const getParam = (name, defaultVal) => computeParams().get(name) || defaultVal\n// export const getArgs = name => computeParams() && args\n\n/**\n * @param {string} name\n * @return {string|null}\n */\n/* istanbul ignore next */\nexport const getVariable = name => isNode ? conditions.undefinedToNull(process.env[name.toUpperCase()]) : conditions.undefinedToNull(storage.varStorage.getItem(name))\n\n/**\n * @param {string} name\n * @return {string|null}\n */\nexport const getConf = name => computeParams().get('--' + name) || getVariable(name)\n\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* istanbul ignore next */\nexport const hasConf = name => hasParam('--' + name) || getVariable(name) !== null\n\n/* istanbul ignore next */\nexport const production = hasConf('production')\n","/**\n * Error helpers.\n *\n * @module error\n */\n\n/* istanbul ignore next */\n/**\n * @param {string} s\n * @return {Error}\n */\nexport const create = s => new Error(s)\n\n/* istanbul ignore next */\n/**\n * @throws {Error}\n * @return {never}\n */\nexport const methodUnimplemented = () => {\n throw create('Method unimplemented')\n}\n\n/* istanbul ignore next */\n/**\n * @throws {Error}\n * @return {never}\n */\nexport const unexpectedCase = () => {\n throw create('Unexpected case')\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/**\n * Common functions and function call helpers.\n *\n * @module function\n */\n\nimport * as array from './array.js'\nimport * as object from './object.js'\n\n/**\n * Calls all functions in `fs` with args. Only throws after all functions were called.\n *\n * @param {Array} fs\n * @param {Array} args\n */\nexport const callAll = (fs, args, i = 0) => {\n try {\n for (; i < fs.length; i++) {\n fs[i](...args)\n }\n } finally {\n if (i < fs.length) {\n callAll(fs, args, i + 1)\n }\n }\n}\n\nexport const nop = () => {}\n\n/**\n * @template T\n * @param {function():T} f\n * @return {T}\n */\nexport const apply = f => f()\n\n/**\n * @template A\n *\n * @param {A} a\n * @return {A}\n */\nexport const id = a => a\n\n/**\n * @template T\n *\n * @param {T} a\n * @param {T} b\n * @return {boolean}\n */\nexport const equalityStrict = (a, b) => a === b\n\n/**\n * @template T\n *\n * @param {Array|object} a\n * @param {Array|object} b\n * @return {boolean}\n */\nexport const equalityFlat = (a, b) => a === b || (a != null && b != null && a.constructor === b.constructor && ((a instanceof Array && array.equalFlat(a, /** @type {Array} */ (b))) || (typeof a === 'object' && object.equalFlat(a, b))))\n\n/**\n * @param {any} a\n * @param {any} b\n * @return {boolean}\n */\nexport const equalityDeep = (a, b) => {\n if (a == null || b == null) {\n return equalityStrict(a, b)\n }\n if (a.constructor !== b.constructor) {\n return false\n }\n if (a === b) {\n return true\n }\n switch (a.constructor) {\n case ArrayBuffer:\n a = new Uint8Array(a)\n b = new Uint8Array(b)\n // eslint-disable-next-line no-fallthrough\n case Uint8Array: {\n if (a.byteLength !== b.byteLength) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false\n }\n }\n break\n }\n case Set: {\n if (a.size !== b.size) {\n return false\n }\n for (const value of a) {\n if (!b.has(value)) {\n return false\n }\n }\n break\n }\n case Map: {\n if (a.size !== b.size) {\n return false\n }\n for (const key of a.keys()) {\n if (!b.has(key) || !equalityDeep(a.get(key), b.get(key))) {\n return false\n }\n }\n break\n }\n case Object:\n if (object.length(a) !== object.length(b)) {\n return false\n }\n for (const key in a) {\n if (!object.hasProperty(a, key) || !equalityDeep(a[key], b[key])) {\n return false\n }\n }\n break\n case Array:\n if (a.length !== b.length) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (!equalityDeep(a[i], b[i])) {\n return false\n }\n }\n break\n default:\n return false\n }\n return true\n}\n","/**\n * Utility module to work with key-value stores.\n *\n * @module map\n */\n\n/**\n * Creates a new Map instance.\n *\n * @function\n * @return {Map}\n *\n * @function\n */\nexport const create = () => new Map()\n\n/**\n * Copy a Map object into a fresh Map object.\n *\n * @function\n * @template X,Y\n * @param {Map} m\n * @return {Map}\n */\nexport const copy = m => {\n const r = create()\n m.forEach((v, k) => { r.set(k, v) })\n return r\n}\n\n/**\n * Get map property. Create T if property is undefined and set T on map.\n *\n * ```js\n * const listeners = map.setIfUndefined(events, 'eventName', set.create)\n * listeners.add(listener)\n * ```\n *\n * @function\n * @template T,K\n * @param {Map} map\n * @param {K} key\n * @param {function():T} createT\n * @return {T}\n */\nexport const setIfUndefined = (map, key, createT) => {\n let set = map.get(key)\n if (set === undefined) {\n map.set(key, set = createT())\n }\n return set\n}\n\n/**\n * Creates an Array and populates it with the content of all key-value pairs using the `f(value, key)` function.\n *\n * @function\n * @template K\n * @template V\n * @template R\n * @param {Map} m\n * @param {function(V,K):R} f\n * @return {Array}\n */\nexport const map = (m, f) => {\n const res = []\n for (const [key, value] of m) {\n res.push(f(value, key))\n }\n return res\n}\n\n/**\n * Tests whether any key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @todo should rename to some - similarly to Array.some\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const any = (m, f) => {\n for (const [key, value] of m) {\n if (f(value, key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * Tests whether all key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const all = (m, f) => {\n for (const [key, value] of m) {\n if (!f(value, key)) {\n return false\n }\n }\n return true\n}\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","/**\n * Utility module to create and manipulate Iterators.\n *\n * @module iterator\n */\n\n/**\n * @template T,R\n * @param {Iterator} iterator\n * @param {function(T):R} f\n * @return {IterableIterator}\n */\nexport const mapIterator = (iterator, f) => ({\n [Symbol.iterator] () {\n return this\n },\n // @ts-ignore\n next () {\n const r = iterator.next()\n return { value: r.done ? undefined : f(r.value), done: r.done }\n }\n})\n\n/**\n * @template T\n * @param {function():IteratorResult} next\n * @return {IterableIterator}\n */\nexport const createIterator = next => ({\n /**\n * @return {IterableIterator}\n */\n [Symbol.iterator] () {\n return this\n },\n // @ts-ignore\n next\n})\n\n/**\n * @template T\n * @param {Iterator} iterator\n * @param {function(T):boolean} filter\n */\nexport const iteratorFilter = (iterator, filter) => createIterator(() => {\n let res\n do {\n res = iterator.next()\n } while (!res.done && !filter(res.value))\n return res\n})\n\n/**\n * @template T,M\n * @param {Iterator} iterator\n * @param {function(T):M} fmap\n */\nexport const iteratorMap = (iterator, fmap) => createIterator(() => {\n const { done, value } = iterator.next()\n return { done, value: done ? undefined : fmap(value) }\n})\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","/* eslint-env browser */\n\n/**\n * Helpers for cross-tab communication using broadcastchannel with LocalStorage fallback.\n *\n * ```js\n * // In browser window A:\n * broadcastchannel.subscribe('my events', data => console.log(data))\n * broadcastchannel.publish('my events', 'Hello world!') // => A: 'Hello world!' fires synchronously in same tab\n *\n * // In browser window B:\n * broadcastchannel.publish('my events', 'hello from tab B') // => A: 'hello from tab B'\n * ```\n *\n * @module broadcastchannel\n */\n\n// @todo before next major: use Uint8Array instead as buffer object\n\nimport * as map from './map.js'\nimport * as buffer from './buffer.js'\nimport * as storage from './storage.js'\n\n/**\n * @typedef {Object} Channel\n * @property {Set} Channel.subs\n * @property {any} Channel.bc\n */\n\n/**\n * @type {Map}\n */\nconst channels = new Map()\n\nclass LocalStoragePolyfill {\n /**\n * @param {string} room\n */\n constructor (room) {\n this.room = room\n /**\n * @type {null|function({data:ArrayBuffer}):void}\n */\n this.onmessage = null\n storage.onChange(e => e.key === room && this.onmessage !== null && this.onmessage({ data: buffer.fromBase64(e.newValue || '') }))\n }\n\n /**\n * @param {ArrayBuffer} buf\n */\n postMessage (buf) {\n storage.varStorage.setItem(this.room, buffer.toBase64(buffer.createUint8ArrayFromArrayBuffer(buf)))\n }\n}\n\n// Use BroadcastChannel or Polyfill\nconst BC = typeof BroadcastChannel === 'undefined' ? LocalStoragePolyfill : BroadcastChannel\n\n/**\n * @param {string} room\n * @return {Channel}\n */\nconst getChannel = room =>\n map.setIfUndefined(channels, room, () => {\n const subs = new Set()\n const bc = new BC(room)\n /**\n * @param {{data:ArrayBuffer}} e\n */\n bc.onmessage = e => subs.forEach(sub => sub(e.data, 'broadcastchannel'))\n return {\n bc, subs\n }\n })\n\n/**\n * Subscribe to global `publish` events.\n *\n * @function\n * @param {string} room\n * @param {function(any, any):any} f\n */\nexport const subscribe = (room, f) => getChannel(room).subs.add(f)\n\n/**\n * Unsubscribe from `publish` global events.\n *\n * @function\n * @param {string} room\n * @param {function(any, any):any} f\n */\nexport const unsubscribe = (room, f) => getChannel(room).subs.delete(f)\n\n/**\n * Publish data to all subscribers (including subscribers on this tab)\n *\n * @function\n * @param {string} room\n * @param {any} data\n * @param {any} [origin]\n */\nexport const publish = (room, data, origin = null) => {\n const c = getChannel(room)\n c.bc.postMessage(data)\n c.subs.forEach(sub => sub(data, origin))\n}\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","/**\n * Utility module to work with sets.\n *\n * @module set\n */\n\nexport const create = () => new Set()\n\n/**\n * @template T\n * @param {Set} set\n * @return {Array}\n */\nexport const toArray = set => Array.from(set)\n\n/**\n * @template T\n * @param {Set} set\n * @return {T}\n */\nexport const first = set => {\n return set.values().next().value || undefined\n}\n\n/**\n * @template T\n * @param {Iterable} entries\n * @return {Set}\n */\nexport const from = entries => {\n return new Set(entries)\n}\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","module.exports = {\n \"version\": \"0.25.0\"\n};","/**\n * Utility module to work with strings.\n *\n * @module string\n */\n\nexport const fromCharCode = String.fromCharCode\nexport const fromCodePoint = String.fromCodePoint\n\n/**\n * @param {string} s\n * @return {string}\n */\nconst toLowerCase = s => s.toLowerCase()\n\nconst trimLeftRegex = /^\\s*/g\n\n/**\n * @param {string} s\n * @return {string}\n */\nexport const trimLeft = s => s.replace(trimLeftRegex, '')\n\nconst fromCamelCaseRegex = /([A-Z])/g\n\n/**\n * @param {string} s\n * @param {string} separator\n * @return {string}\n */\nexport const fromCamelCase = (s, separator) => trimLeft(s.replace(fromCamelCaseRegex, match => `${separator}${toLowerCase(match)}`))\n\n/**\n * Compute the utf8ByteLength\n * @param {string} str\n * @return {number}\n */\nexport const utf8ByteLength = str => unescape(encodeURIComponent(str)).length\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\nexport const _encodeUtf8Polyfill = str => {\n const encodedString = unescape(encodeURIComponent(str))\n const len = encodedString.length\n const buf = new Uint8Array(len)\n for (let i = 0; i < len; i++) {\n buf[i] = /** @type {number} */ (encodedString.codePointAt(i))\n }\n return buf\n}\n\n/* istanbul ignore next */\nexport const utf8TextEncoder = /** @type {TextEncoder} */ (typeof TextEncoder !== 'undefined' ? new TextEncoder() : null)\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\nexport const _encodeUtf8Native = str => utf8TextEncoder.encode(str)\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\n/* istanbul ignore next */\nexport const encodeUtf8 = utf8TextEncoder ? _encodeUtf8Native : _encodeUtf8Polyfill\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\nexport const _decodeUtf8Polyfill = buf => {\n let remainingLen = buf.length\n let encodedString = ''\n let bufPos = 0\n while (remainingLen > 0) {\n const nextLen = remainingLen < 10000 ? remainingLen : 10000\n const bytes = buf.subarray(bufPos, bufPos + nextLen)\n bufPos += nextLen\n // Starting with ES5.1 we can supply a generic array-like object as arguments\n encodedString += String.fromCodePoint.apply(null, /** @type {any} */ (bytes))\n remainingLen -= nextLen\n }\n return decodeURIComponent(escape(encodedString))\n}\n\n/* istanbul ignore next */\nexport let utf8TextDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder('utf-8', { fatal: true, ignoreBOM: true })\n\n/* istanbul ignore next */\nif (utf8TextDecoder && utf8TextDecoder.decode(new Uint8Array()).length === 1) {\n // Safari doesn't handle BOM correctly.\n // This fixes a bug in Safari 13.0.5 where it produces a BOM the first time it is called.\n // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the first call and\n // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the second call\n // Another issue is that from then on no BOM chars are recognized anymore\n /* istanbul ignore next */\n utf8TextDecoder = null\n}\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\nexport const _decodeUtf8Native = buf => /** @type {TextDecoder} */ (utf8TextDecoder).decode(buf)\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\n/* istanbul ignore next */\nexport const decodeUtf8 = utf8TextDecoder ? _decodeUtf8Native : _decodeUtf8Polyfill\n\n/**\n * @param {string} str The initial string\n * @param {number} index Starting position\n * @param {number} remove Number of characters to remove\n * @param {string} insert New content to insert\n */\nexport const splice = (str, index, remove, insert = '') => str.slice(0, index) + insert + str.slice(index + remove)\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","/**\n * Utility module to work with EcmaScript Symbols.\n *\n * @module symbol\n */\n\n/**\n * Return fresh symbol.\n *\n * @return {Symbol}\n */\nexport const create = Symbol\n\n/**\n * @param {any} s\n * @return {boolean}\n */\nexport const isSymbol = s => typeof s === 'symbol'\n","/**\n * JSON utility functions.\n *\n * @module json\n */\n\n/**\n * Transform JavaScript object to JSON.\n *\n * @param {any} object\n * @return {string}\n */\nexport const stringify = JSON.stringify\n\n/**\n * Parse JSON object.\n *\n * @param {string} json\n * @return {any}\n */\nexport const parse = JSON.parse\n","/**\n * Isomorphic logging module with support for colors!\n *\n * @module logging\n */\n\nimport * as env from './environment.js'\nimport * as symbol from './symbol.js'\nimport * as pair from './pair.js'\nimport * as dom from './dom.js'\nimport * as json from './json.js'\nimport * as map from './map.js'\nimport * as eventloop from './eventloop.js'\nimport * as math from './math.js'\nimport * as time from './time.js'\nimport * as func from './function.js'\n\nexport const BOLD = symbol.create()\nexport const UNBOLD = symbol.create()\nexport const BLUE = symbol.create()\nexport const GREY = symbol.create()\nexport const GREEN = symbol.create()\nexport const RED = symbol.create()\nexport const PURPLE = symbol.create()\nexport const ORANGE = symbol.create()\nexport const UNCOLOR = symbol.create()\n\n/**\n * @type {Object>}\n */\nconst _browserStyleMap = {\n [BOLD]: pair.create('font-weight', 'bold'),\n [UNBOLD]: pair.create('font-weight', 'normal'),\n [BLUE]: pair.create('color', 'blue'),\n [GREEN]: pair.create('color', 'green'),\n [GREY]: pair.create('color', 'grey'),\n [RED]: pair.create('color', 'red'),\n [PURPLE]: pair.create('color', 'purple'),\n [ORANGE]: pair.create('color', 'orange'), // not well supported in chrome when debugging node with inspector - TODO: deprecate\n [UNCOLOR]: pair.create('color', 'black')\n}\n\nconst _nodeStyleMap = {\n [BOLD]: '\\u001b[1m',\n [UNBOLD]: '\\u001b[2m',\n [BLUE]: '\\x1b[34m',\n [GREEN]: '\\x1b[32m',\n [GREY]: '\\u001b[37m',\n [RED]: '\\x1b[31m',\n [PURPLE]: '\\x1b[35m',\n [ORANGE]: '\\x1b[38;5;208m',\n [UNCOLOR]: '\\x1b[0m'\n}\n\n/* istanbul ignore next */\n/**\n * @param {Array} args\n * @return {Array}\n */\nconst computeBrowserLoggingArgs = args => {\n const strBuilder = []\n const styles = []\n const currentStyle = map.create()\n /**\n * @type {Array}\n */\n let logArgs = []\n // try with formatting until we find something unsupported\n let i = 0\n\n for (; i < args.length; i++) {\n const arg = args[i]\n // @ts-ignore\n const style = _browserStyleMap[arg]\n if (style !== undefined) {\n currentStyle.set(style.left, style.right)\n } else {\n if (arg.constructor === String || arg.constructor === Number) {\n const style = dom.mapToStyleString(currentStyle)\n if (i > 0 || style.length > 0) {\n strBuilder.push('%c' + arg)\n styles.push(style)\n } else {\n strBuilder.push(arg)\n }\n } else {\n break\n }\n }\n }\n\n if (i > 0) {\n // create logArgs with what we have so far\n logArgs = styles\n logArgs.unshift(strBuilder.join(''))\n }\n // append the rest\n for (; i < args.length; i++) {\n const arg = args[i]\n if (!(arg instanceof Symbol)) {\n logArgs.push(arg)\n }\n }\n return logArgs\n}\n\n/**\n * @param {Array} args\n * @return {Array}\n */\nconst computeNodeLoggingArgs = args => {\n const strBuilder = []\n const logArgs = []\n\n // try with formatting until we find something unsupported\n let i = 0\n\n for (; i < args.length; i++) {\n const arg = args[i]\n // @ts-ignore\n const style = _nodeStyleMap[arg]\n if (style !== undefined) {\n strBuilder.push(style)\n } else {\n if (arg.constructor === String || arg.constructor === Number) {\n strBuilder.push(arg)\n } else {\n break\n }\n }\n }\n if (i > 0) {\n // create logArgs with what we have so far\n strBuilder.push('\\x1b[0m')\n logArgs.push(strBuilder.join(''))\n }\n // append the rest\n for (; i < args.length; i++) {\n const arg = args[i]\n /* istanbul ignore else */\n if (!(arg instanceof Symbol)) {\n logArgs.push(arg)\n }\n }\n return logArgs\n}\n\n/* istanbul ignore next */\nconst computeLoggingArgs = env.isNode ? computeNodeLoggingArgs : computeBrowserLoggingArgs\n\n/**\n * @param {Array} args\n */\nexport const print = (...args) => {\n console.log(...computeLoggingArgs(args))\n /* istanbul ignore next */\n vconsoles.forEach(vc => vc.print(args))\n}\n\n/* istanbul ignore next */\n/**\n * @param {Array} args\n */\nexport const warn = (...args) => {\n console.warn(...computeLoggingArgs(args))\n args.unshift(ORANGE)\n vconsoles.forEach(vc => vc.print(args))\n}\n\n/* istanbul ignore next */\n/**\n * @param {Error} err\n */\nexport const printError = err => {\n console.error(err)\n vconsoles.forEach(vc => vc.printError(err))\n}\n\n/* istanbul ignore next */\n/**\n * @param {string} url image location\n * @param {number} height height of the image in pixel\n */\nexport const printImg = (url, height) => {\n if (env.isBrowser) {\n console.log('%c ', `font-size: ${height}px; background-size: contain; background-repeat: no-repeat; background-image: url(${url})`)\n // console.log('%c ', `font-size: ${height}x; background: url(${url}) no-repeat;`)\n }\n vconsoles.forEach(vc => vc.printImg(url, height))\n}\n\n/* istanbul ignore next */\n/**\n * @param {string} base64\n * @param {number} height\n */\nexport const printImgBase64 = (base64, height) => printImg(`data:image/gif;base64,${base64}`, height)\n\n/**\n * @param {Array} args\n */\nexport const group = (...args) => {\n console.group(...computeLoggingArgs(args))\n /* istanbul ignore next */\n vconsoles.forEach(vc => vc.group(args))\n}\n\n/**\n * @param {Array} args\n */\nexport const groupCollapsed = (...args) => {\n console.groupCollapsed(...computeLoggingArgs(args))\n /* istanbul ignore next */\n vconsoles.forEach(vc => vc.groupCollapsed(args))\n}\n\nexport const groupEnd = () => {\n console.groupEnd()\n /* istanbul ignore next */\n vconsoles.forEach(vc => vc.groupEnd())\n}\n\n/* istanbul ignore next */\n/**\n * @param {function():Node} createNode\n */\nexport const printDom = createNode =>\n vconsoles.forEach(vc => vc.printDom(createNode()))\n\n/* istanbul ignore next */\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {number} height\n */\nexport const printCanvas = (canvas, height) => printImg(canvas.toDataURL(), height)\n\nexport const vconsoles = new Set()\n\n/* istanbul ignore next */\n/**\n * @param {Array} args\n * @return {Array}\n */\nconst _computeLineSpans = args => {\n const spans = []\n const currentStyle = new Map()\n // try with formatting until we find something unsupported\n let i = 0\n for (; i < args.length; i++) {\n const arg = args[i]\n // @ts-ignore\n const style = _browserStyleMap[arg]\n if (style !== undefined) {\n currentStyle.set(style.left, style.right)\n } else {\n if (arg.constructor === String || arg.constructor === Number) {\n // @ts-ignore\n const span = dom.element('span', [pair.create('style', dom.mapToStyleString(currentStyle))], [dom.text(arg)])\n if (span.innerHTML === '') {\n span.innerHTML = ' '\n }\n spans.push(span)\n } else {\n break\n }\n }\n }\n // append the rest\n for (; i < args.length; i++) {\n let content = args[i]\n if (!(content instanceof Symbol)) {\n if (content.constructor !== String && content.constructor !== Number) {\n content = ' ' + json.stringify(content) + ' '\n }\n spans.push(dom.element('span', [], [dom.text(/** @type {string} */ (content))]))\n }\n }\n return spans\n}\n\nconst lineStyle = 'font-family:monospace;border-bottom:1px solid #e2e2e2;padding:2px;'\n\n/* istanbul ignore next */\nexport class VConsole {\n /**\n * @param {Element} dom\n */\n constructor (dom) {\n this.dom = dom\n /**\n * @type {Element}\n */\n this.ccontainer = this.dom\n this.depth = 0\n vconsoles.add(this)\n }\n\n /**\n * @param {Array} args\n * @param {boolean} collapsed\n */\n group (args, collapsed = false) {\n eventloop.enqueue(() => {\n const triangleDown = dom.element('span', [pair.create('hidden', collapsed), pair.create('style', 'color:grey;font-size:120%;')], [dom.text('▼')])\n const triangleRight = dom.element('span', [pair.create('hidden', !collapsed), pair.create('style', 'color:grey;font-size:125%;')], [dom.text('▶')])\n const content = dom.element('div', [pair.create('style', `${lineStyle};padding-left:${this.depth * 10}px`)], [triangleDown, triangleRight, dom.text(' ')].concat(_computeLineSpans(args)))\n const nextContainer = dom.element('div', [pair.create('hidden', collapsed)])\n const nextLine = dom.element('div', [], [content, nextContainer])\n dom.append(this.ccontainer, [nextLine])\n this.ccontainer = nextContainer\n this.depth++\n // when header is clicked, collapse/uncollapse container\n dom.addEventListener(content, 'click', event => {\n nextContainer.toggleAttribute('hidden')\n triangleDown.toggleAttribute('hidden')\n triangleRight.toggleAttribute('hidden')\n })\n })\n }\n\n /**\n * @param {Array} args\n */\n groupCollapsed (args) {\n this.group(args, true)\n }\n\n groupEnd () {\n eventloop.enqueue(() => {\n if (this.depth > 0) {\n this.depth--\n // @ts-ignore\n this.ccontainer = this.ccontainer.parentElement.parentElement\n }\n })\n }\n\n /**\n * @param {Array} args\n */\n print (args) {\n eventloop.enqueue(() => {\n dom.append(this.ccontainer, [dom.element('div', [pair.create('style', `${lineStyle};padding-left:${this.depth * 10}px`)], _computeLineSpans(args))])\n })\n }\n\n /**\n * @param {Error} err\n */\n printError (err) {\n this.print([RED, BOLD, err.toString()])\n }\n\n /**\n * @param {string} url\n * @param {number} height\n */\n printImg (url, height) {\n eventloop.enqueue(() => {\n dom.append(this.ccontainer, [dom.element('img', [pair.create('src', url), pair.create('height', `${math.round(height * 1.5)}px`)])])\n })\n }\n\n /**\n * @param {Node} node\n */\n printDom (node) {\n eventloop.enqueue(() => {\n dom.append(this.ccontainer, [node])\n })\n }\n\n destroy () {\n eventloop.enqueue(() => {\n vconsoles.delete(this)\n })\n }\n}\n\n/* istanbul ignore next */\n/**\n * @param {Element} dom\n */\nexport const createVConsole = dom => new VConsole(dom)\n\nconst loggingColors = [GREEN, PURPLE, ORANGE, BLUE]\nlet nextColor = 0\nlet lastLoggingTime = time.getUnixTime()\n\n/**\n * @param {string} moduleName\n * @return {function(...any):void}\n */\nexport const createModuleLogger = moduleName => {\n const color = loggingColors[nextColor]\n const debugRegexVar = env.getVariable('log')\n const doLogging = debugRegexVar !== null && (debugRegexVar === '*' || debugRegexVar === 'true' || new RegExp(debugRegexVar, 'gi').test(moduleName))\n nextColor = (nextColor + 1) % loggingColors.length\n moduleName += ': '\n\n return !doLogging ? func.nop : (...args) => {\n const timeNow = time.getUnixTime()\n const timeDiff = timeNow - lastLoggingTime\n lastLoggingTime = timeNow\n print(color, moduleName, UNCOLOR, ...args.map(arg => (typeof arg === 'string' || typeof arg === 'symbol') ? arg : JSON.stringify(arg)), color, ' +' + timeDiff + 'ms')\n }\n}\n","/**\n * Utility module to convert metric values.\n *\n * @module metric\n */\n\nimport * as math from './math.js'\n\nexport const yotta = 1e24\nexport const zetta = 1e21\nexport const exa = 1e18\nexport const peta = 1e15\nexport const tera = 1e12\nexport const giga = 1e9\nexport const mega = 1e6\nexport const kilo = 1e3\nexport const hecto = 1e2\nexport const deca = 10\nexport const deci = 0.1\nexport const centi = 0.01\nexport const milli = 1e-3\nexport const micro = 1e-6\nexport const nano = 1e-9\nexport const pico = 1e-12\nexport const femto = 1e-15\nexport const atto = 1e-18\nexport const zepto = 1e-21\nexport const yocto = 1e-24\n\nconst prefixUp = ['', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y']\nconst prefixDown = ['', 'm', 'μ', 'n', 'p', 'f', 'a', 'z', 'y']\n\n/**\n * Calculate the metric prefix for a number. Assumes E.g. `prefix(1000) = { n: 1, prefix: 'k' }`\n *\n * @param {number} n\n * @param {number} [baseMultiplier] Multiplier of the base (10^(3*baseMultiplier)). E.g. `convert(time, -3)` if time is already in milli seconds\n * @return {{n:number,prefix:string}}\n */\nexport const prefix = (n, baseMultiplier = 0) => {\n const nPow = n === 0 ? 0 : math.log10(n)\n let mult = 0\n while (nPow < mult * 3 && baseMultiplier > -8) {\n baseMultiplier--\n mult--\n }\n while (nPow >= 3 + mult * 3 && baseMultiplier < 8) {\n baseMultiplier++\n mult++\n }\n const prefix = baseMultiplier < 0 ? prefixDown[-baseMultiplier] : prefixUp[baseMultiplier]\n return {\n n: math.round((mult > 0 ? n / math.exp10(mult * 3) : n * math.exp10(mult * -3)) * 1e12) / 1e12,\n prefix\n }\n}\n","/**\n * Utility module to work with time.\n *\n * @module time\n */\n\nimport * as metric from './metric.js'\nimport * as math from './math.js'\n\n/**\n * Return current time.\n *\n * @return {Date}\n */\nexport const getDate = () => new Date()\n\n/**\n * Return current unix time.\n *\n * @return {number}\n */\nexport const getUnixTime = Date.now\n\n/**\n * Transform time (in ms) to a human readable format. E.g. 1100 => 1.1s. 60s => 1min. .001 => 10μs.\n *\n * @param {number} d duration in milliseconds\n * @return {string} humanized approximation of time\n */\nexport const humanizeDuration = d => {\n if (d < 60000) {\n const p = metric.prefix(d, -1)\n return math.round(p.n * 100) / 100 + p.prefix + 's'\n }\n d = math.floor(d / 1000)\n const seconds = d % 60\n const minutes = math.floor(d / 60) % 60\n const hours = math.floor(d / 3600) % 24\n const days = math.floor(d / 86400)\n if (days > 0) {\n return days + 'd' + ((hours > 0 || minutes > 30) ? ' ' + (minutes > 30 ? hours + 1 : hours) + 'h' : '')\n }\n if (hours > 0) {\n /* istanbul ignore next */\n return hours + 'h' + ((minutes > 0 || seconds > 30) ? ' ' + (seconds > 30 ? minutes + 1 : minutes) + 'min' : '')\n }\n return minutes + 'min' + (seconds > 0 ? ' ' + seconds + 's' : '')\n}\n","/**\n * Working with value pairs.\n *\n * @module pair\n */\n\n/**\n * @template L,R\n */\nexport class Pair {\n /**\n * @param {L} left\n * @param {R} right\n */\n constructor (left, right) {\n this.left = left\n this.right = right\n }\n}\n\n/**\n * @template L,R\n * @param {L} left\n * @param {R} right\n * @return {Pair}\n */\nexport const create = (left, right) => new Pair(left, right)\n\n/**\n * @template L,R\n * @param {R} right\n * @param {L} left\n * @return {Pair}\n */\nexport const createReversed = (right, left) => new Pair(left, right)\n\n/**\n * @template L,R\n * @param {Array>} arr\n * @param {function(L, R):any} f\n */\nexport const forEach = (arr, f) => arr.forEach(p => f(p.left, p.right))\n\n/**\n * @template L,R,X\n * @param {Array>} arr\n * @param {function(L, R):X} f\n * @return {Array}\n */\nexport const map = (arr, f) => arr.map(p => f(p.left, p.right))\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/**\n * Utility helpers to work with promises.\n *\n * @module promise\n */\n\nimport * as time from './time.js'\n\n/**\n * @template T\n * @callback PromiseResolve\n * @param {T|PromiseLike} [result]\n */\n\n/**\n * @template T\n * @param {function(PromiseResolve,function(Error):void):any} f\n * @return {Promise}\n */\nexport const create = f => /** @type {Promise} */ (new Promise(f))\n\n/**\n * @param {function(function():void,function(Error):void):void} f\n * @return {Promise}\n */\nexport const createEmpty = f => new Promise(f)\n\n/**\n * `Promise.all` wait for all promises in the array to resolve and return the result\n * @template T\n * @param {Array>} arrp\n * @return {Promise>}\n */\nexport const all = arrp => Promise.all(arrp)\n\n/**\n * @param {Error} [reason]\n * @return {Promise}\n */\nexport const reject = reason => Promise.reject(reason)\n\n/**\n * @template T\n * @param {T|void} res\n * @return {Promise}\n */\nexport const resolve = res => Promise.resolve(res)\n\n/**\n * @template T\n * @param {T} res\n * @return {Promise}\n */\nexport const resolveWith = res => Promise.resolve(res)\n\n/**\n * @todo Next version, reorder parameters: check, [timeout, [intervalResolution]]\n *\n * @param {number} timeout\n * @param {function():boolean} check\n * @param {number} [intervalResolution]\n * @return {Promise}\n */\nexport const until = (timeout, check, intervalResolution = 10) => create((resolve, reject) => {\n const startTime = time.getUnixTime()\n const hasTimeout = timeout > 0\n const untilInterval = () => {\n if (check()) {\n clearInterval(intervalHandle)\n resolve()\n } else if (hasTimeout) {\n /* istanbul ignore else */\n if (time.getUnixTime() - startTime > timeout) {\n clearInterval(intervalHandle)\n reject(new Error('Timeout'))\n }\n }\n }\n const intervalHandle = setInterval(untilInterval, intervalResolution)\n})\n\n/**\n * @param {number} timeout\n * @return {Promise}\n */\nexport const wait = timeout => create((resolve, reject) => setTimeout(resolve, timeout))\n\n/**\n * Checks if an object is a promise using ducktyping.\n *\n * Promises are often polyfilled, so it makes sense to add some additional guarantees if the user of this\n * library has some insane environment where global Promise objects are overwritten.\n *\n * @param {any} p\n * @return {boolean}\n */\nexport const isPromise = p => p instanceof Promise || (p && p.then && p.catch && p.finally)\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || defaults.transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","/* eslint-env browser */\n\n/**\n * Utility module to work with the DOM.\n *\n * @module dom\n */\n\nimport * as pair from './pair.js'\nimport * as map from './map.js'\n\n/* istanbul ignore next */\n/**\n * @type {Document}\n */\nexport const doc = /** @type {Document} */ (typeof document !== 'undefined' ? document : {})\n\n/**\n * @param {string} name\n * @return {HTMLElement}\n */\n/* istanbul ignore next */\nexport const createElement = name => doc.createElement(name)\n\n/**\n * @return {DocumentFragment}\n */\n/* istanbul ignore next */\nexport const createDocumentFragment = () => doc.createDocumentFragment()\n\n/**\n * @param {string} text\n * @return {Text}\n */\n/* istanbul ignore next */\nexport const createTextNode = text => doc.createTextNode(text)\n\n/* istanbul ignore next */\nexport const domParser = /** @type {DOMParser} */ (typeof DOMParser !== 'undefined' ? new DOMParser() : null)\n\n/**\n * @param {HTMLElement} el\n * @param {string} name\n * @param {Object} opts\n */\n/* istanbul ignore next */\nexport const emitCustomEvent = (el, name, opts) => el.dispatchEvent(new CustomEvent(name, opts))\n\n/**\n * @param {Element} el\n * @param {Array>} attrs Array of key-value pairs\n * @return {Element}\n */\n/* istanbul ignore next */\nexport const setAttributes = (el, attrs) => {\n pair.forEach(attrs, (key, value) => {\n if (value === false) {\n el.removeAttribute(key)\n } else if (value === true) {\n el.setAttribute(key, '')\n } else {\n // @ts-ignore\n el.setAttribute(key, value)\n }\n })\n return el\n}\n\n/**\n * @param {Element} el\n * @param {Map} attrs Array of key-value pairs\n * @return {Element}\n */\n/* istanbul ignore next */\nexport const setAttributesMap = (el, attrs) => {\n attrs.forEach((value, key) => { el.setAttribute(key, value) })\n return el\n}\n\n/**\n * @param {Array|HTMLCollection} children\n * @return {DocumentFragment}\n */\n/* istanbul ignore next */\nexport const fragment = children => {\n const fragment = createDocumentFragment()\n for (let i = 0; i < children.length; i++) {\n appendChild(fragment, children[i])\n }\n return fragment\n}\n\n/**\n * @param {Element} parent\n * @param {Array} nodes\n * @return {Element}\n */\n/* istanbul ignore next */\nexport const append = (parent, nodes) => {\n appendChild(parent, fragment(nodes))\n return parent\n}\n\n/**\n * @param {HTMLElement} el\n */\n/* istanbul ignore next */\nexport const remove = el => el.remove()\n\n/**\n * @param {EventTarget} el\n * @param {string} name\n * @param {EventListener} f\n */\n/* istanbul ignore next */\nexport const addEventListener = (el, name, f) => el.addEventListener(name, f)\n\n/**\n * @param {EventTarget} el\n * @param {string} name\n * @param {EventListener} f\n */\n/* istanbul ignore next */\nexport const removeEventListener = (el, name, f) => el.removeEventListener(name, f)\n\n/**\n * @param {Node} node\n * @param {Array>} listeners\n * @return {Node}\n */\n/* istanbul ignore next */\nexport const addEventListeners = (node, listeners) => {\n pair.forEach(listeners, (name, f) => addEventListener(node, name, f))\n return node\n}\n\n/**\n * @param {Node} node\n * @param {Array>} listeners\n * @return {Node}\n */\n/* istanbul ignore next */\nexport const removeEventListeners = (node, listeners) => {\n pair.forEach(listeners, (name, f) => removeEventListener(node, name, f))\n return node\n}\n\n/**\n * @param {string} name\n * @param {Array|pair.Pair>} attrs Array of key-value pairs\n * @param {Array} children\n * @return {Element}\n */\n/* istanbul ignore next */\nexport const element = (name, attrs = [], children = []) =>\n append(setAttributes(createElement(name), attrs), children)\n\n/**\n * @param {number} width\n * @param {number} height\n */\n/* istanbul ignore next */\nexport const canvas = (width, height) => {\n const c = /** @type {HTMLCanvasElement} */ (createElement('canvas'))\n c.height = height\n c.width = width\n return c\n}\n\n/**\n * @param {string} t\n * @return {Text}\n */\n/* istanbul ignore next */\nexport const text = createTextNode\n\n/**\n * @param {pair.Pair} pair\n */\n/* istanbul ignore next */\nexport const pairToStyleString = pair => `${pair.left}:${pair.right};`\n\n/**\n * @param {Array>} pairs\n * @return {string}\n */\n/* istanbul ignore next */\nexport const pairsToStyleString = pairs => pairs.map(pairToStyleString).join('')\n\n/**\n * @param {Map} m\n * @return {string}\n */\n/* istanbul ignore next */\nexport const mapToStyleString = m => map.map(m, (value, key) => `${key}:${value};`).join('')\n\n/**\n * @todo should always query on a dom element\n *\n * @param {HTMLElement|ShadowRoot} el\n * @param {string} query\n * @return {HTMLElement | null}\n */\n/* istanbul ignore next */\nexport const querySelector = (el, query) => el.querySelector(query)\n\n/**\n * @param {HTMLElement|ShadowRoot} el\n * @param {string} query\n * @return {NodeListOf}\n */\n/* istanbul ignore next */\nexport const querySelectorAll = (el, query) => el.querySelectorAll(query)\n\n/**\n * @param {string} id\n * @return {HTMLElement}\n */\n/* istanbul ignore next */\nexport const getElementById = id => /** @type {HTMLElement} */ (doc.getElementById(id))\n\n/**\n * @param {string} html\n * @return {HTMLElement}\n */\n/* istanbul ignore next */\nconst _parse = html => domParser.parseFromString(`${html}`, 'text/html').body\n\n/**\n * @param {string} html\n * @return {DocumentFragment}\n */\n/* istanbul ignore next */\nexport const parseFragment = html => fragment(/** @type {any} */ (_parse(html).childNodes))\n\n/**\n * @param {string} html\n * @return {HTMLElement}\n */\n/* istanbul ignore next */\nexport const parseElement = html => /** @type HTMLElement */ (_parse(html).firstElementChild)\n\n/**\n * @param {HTMLElement} oldEl\n * @param {HTMLElement|DocumentFragment} newEl\n */\n/* istanbul ignore next */\nexport const replaceWith = (oldEl, newEl) => oldEl.replaceWith(newEl)\n\n/**\n * @param {HTMLElement} parent\n * @param {HTMLElement} el\n * @param {Node|null} ref\n * @return {HTMLElement}\n */\n/* istanbul ignore next */\nexport const insertBefore = (parent, el, ref) => parent.insertBefore(el, ref)\n\n/**\n * @param {Node} parent\n * @param {Node} child\n * @return {Node}\n */\n/* istanbul ignore next */\nexport const appendChild = (parent, child) => parent.appendChild(child)\n\nexport const ELEMENT_NODE = doc.ELEMENT_NODE\nexport const TEXT_NODE = doc.TEXT_NODE\nexport const CDATA_SECTION_NODE = doc.CDATA_SECTION_NODE\nexport const COMMENT_NODE = doc.COMMENT_NODE\nexport const DOCUMENT_NODE = doc.DOCUMENT_NODE\nexport const DOCUMENT_TYPE_NODE = doc.DOCUMENT_TYPE_NODE\nexport const DOCUMENT_FRAGMENT_NODE = doc.DOCUMENT_FRAGMENT_NODE\n\n/**\n * @param {any} node\n * @param {number} type\n */\nexport const checkNodeType = (node, type) => node.nodeType === type\n\n/**\n * @param {Node} parent\n * @param {HTMLElement} child\n */\nexport const isParentOf = (parent, child) => {\n let p = child.parentNode\n while (p && p !== parent) {\n p = p.parentNode\n }\n return p === parent\n}\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","/**\n * Utility module to work with urls.\n *\n * @module url\n */\n\nimport * as object from './object.js'\n\n/**\n * Parse query parameters from an url.\n *\n * @param {string} url\n * @return {Object}\n */\nexport const decodeQueryParams = url => {\n /**\n * @type {Object}\n */\n const query = {}\n const urlQuerySplit = url.split('?')\n const pairs = urlQuerySplit[urlQuerySplit.length - 1].split('&')\n for (var i = 0; i < pairs.length; i++) {\n const item = pairs[i]\n if (item.length > 0) {\n const pair = item.split('=')\n query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '')\n }\n }\n return query\n}\n\n/**\n * @param {Object} params\n * @return {string}\n */\nexport const encodeQueryParams = params =>\n object.map(params, (val, key) => `${encodeURIComponent(key)}=${encodeURIComponent(val)}`).join('&')\n","/* eslint-env browser */\n\n/**\n * Binary data constants.\n *\n * @module binary\n */\n\n/**\n * n-th bit activated.\n *\n * @type {number}\n */\nexport const BIT1 = 1\nexport const BIT2 = 2\nexport const BIT3 = 4\nexport const BIT4 = 8\nexport const BIT5 = 16\nexport const BIT6 = 32\nexport const BIT7 = 64\nexport const BIT8 = 128\nexport const BIT9 = 256\nexport const BIT10 = 512\nexport const BIT11 = 1024\nexport const BIT12 = 2048\nexport const BIT13 = 4096\nexport const BIT14 = 8192\nexport const BIT15 = 16384\nexport const BIT16 = 32768\nexport const BIT17 = 65536\nexport const BIT18 = 1 << 17\nexport const BIT19 = 1 << 18\nexport const BIT20 = 1 << 19\nexport const BIT21 = 1 << 20\nexport const BIT22 = 1 << 21\nexport const BIT23 = 1 << 22\nexport const BIT24 = 1 << 23\nexport const BIT25 = 1 << 24\nexport const BIT26 = 1 << 25\nexport const BIT27 = 1 << 26\nexport const BIT28 = 1 << 27\nexport const BIT29 = 1 << 28\nexport const BIT30 = 1 << 29\nexport const BIT31 = 1 << 30\nexport const BIT32 = 1 << 31\n\n/**\n * First n bits activated.\n *\n * @type {number}\n */\nexport const BITS0 = 0\nexport const BITS1 = 1\nexport const BITS2 = 3\nexport const BITS3 = 7\nexport const BITS4 = 15\nexport const BITS5 = 31\nexport const BITS6 = 63\nexport const BITS7 = 127\nexport const BITS8 = 255\nexport const BITS9 = 511\nexport const BITS10 = 1023\nexport const BITS11 = 2047\nexport const BITS12 = 4095\nexport const BITS13 = 8191\nexport const BITS14 = 16383\nexport const BITS15 = 32767\nexport const BITS16 = 65535\nexport const BITS17 = BIT18 - 1\nexport const BITS18 = BIT19 - 1\nexport const BITS19 = BIT20 - 1\nexport const BITS20 = BIT21 - 1\nexport const BITS21 = BIT22 - 1\nexport const BITS22 = BIT23 - 1\nexport const BITS23 = BIT24 - 1\nexport const BITS24 = BIT25 - 1\nexport const BITS25 = BIT26 - 1\nexport const BITS26 = BIT27 - 1\nexport const BITS27 = BIT28 - 1\nexport const BITS28 = BIT29 - 1\nexport const BITS29 = BIT30 - 1\nexport const BITS30 = BIT31 - 1\n/**\n * @type {number}\n */\nexport const BITS31 = 0x7FFFFFFF\n/**\n * @type {number}\n */\nexport const BITS32 = 0xFFFFFFFF\n","/* global localStorage, addEventListener */\n\n/**\n * Isomorphic variable storage.\n *\n * Uses LocalStorage in the browser and falls back to in-memory storage.\n *\n * @module storage\n */\n\n/* istanbul ignore next */\nclass VarStoragePolyfill {\n constructor () {\n this.map = new Map()\n }\n\n /**\n * @param {string} key\n * @param {any} newValue\n */\n setItem (key, newValue) {\n this.map.set(key, newValue)\n }\n\n /**\n * @param {string} key\n */\n getItem (key) {\n return this.map.get(key)\n }\n}\n\n/* istanbul ignore next */\n/**\n * @type {any}\n */\nlet _localStorage = new VarStoragePolyfill()\nlet usePolyfill = true\n\ntry {\n // if the same-origin rule is violated, accessing localStorage might thrown an error\n /* istanbul ignore next */\n if (typeof localStorage !== 'undefined') {\n _localStorage = localStorage\n usePolyfill = false\n }\n} catch (e) { }\n\n/* istanbul ignore next */\n/**\n * This is basically localStorage in browser, or a polyfill in nodejs\n */\nexport const varStorage = _localStorage\n\n/* istanbul ignore next */\n/**\n * A polyfill for `addEventListener('storage', event => {..})` that does nothing if the polyfill is being used.\n *\n * @param {function({ key: string, newValue: string, oldValue: string }): void} eventHandler\n * @function\n */\nexport const onChange = eventHandler => usePolyfill || addEventListener('storage', /** @type {any} */ (eventHandler))\n","/* eslint-env browser */\nexport const performance = typeof window === 'undefined' ? null : (typeof window.performance !== 'undefined' && window.performance) || null\n\nconst isoCrypto = typeof crypto === 'undefined' ? null : crypto\n\n/**\n * @type {function(number):ArrayBuffer}\n */\nexport const cryptoRandomBuffer = isoCrypto !== null\n ? len => {\n // browser\n const buf = new ArrayBuffer(len)\n const arr = new Uint8Array(buf)\n isoCrypto.getRandomValues(arr)\n return buf\n }\n : len => {\n // polyfill\n const buf = new ArrayBuffer(len)\n const arr = new Uint8Array(buf)\n for (let i = 0; i < len; i++) {\n arr[i] = Math.ceil((Math.random() * 0xFFFFFFFF) >>> 0)\n }\n return buf\n }\n","\n/**\n * Isomorphic module for true random numbers / buffers / uuids.\n *\n * Attention: falls back to Math.random if the browser does not support crypto.\n *\n * @module random\n */\n\nimport * as math from './math.js'\nimport * as binary from './binary.js'\nimport { cryptoRandomBuffer } from './isomorphic.js'\n\nexport const rand = Math.random\n\nexport const uint32 = () => new Uint32Array(cryptoRandomBuffer(4))[0]\n\nexport const uint53 = () => {\n const arr = new Uint32Array(cryptoRandomBuffer(8))\n return (arr[0] & binary.BITS21) * (binary.BITS32 + 1) + (arr[1] >>> 0)\n}\n\n/**\n * @template T\n * @param {Array} arr\n * @return {T}\n */\nexport const oneOf = arr => arr[math.floor(rand() * arr.length)]\n\n// @ts-ignore\nconst uuidv4Template = [1e7] + -1e3 + -4e3 + -8e3 + -1e11\nexport const uuidv4 = () => uuidv4Template.replace(/[018]/g, /** @param {number} c */ c =>\n (c ^ uint32() & 15 >> c / 4).toString(16)\n)\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","/**\n * Common Math expressions.\n *\n * @module math\n */\n\nexport const floor = Math.floor\nexport const ceil = Math.ceil\nexport const abs = Math.abs\nexport const imul = Math.imul\nexport const round = Math.round\nexport const log10 = Math.log10\nexport const log2 = Math.log2\nexport const log = Math.log\nexport const sqrt = Math.sqrt\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The sum of a and b\n */\nexport const add = (a, b) => a + b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The smaller element of a and b\n */\nexport const min = (a, b) => a < b ? a : b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The bigger element of a and b\n */\nexport const max = (a, b) => a > b ? a : b\n\nexport const isNaN = Number.isNaN\n\nexport const pow = Math.pow\n/**\n * Base 10 exponential function. Returns the value of 10 raised to the power of pow.\n *\n * @param {number} exp\n * @return {number}\n */\nexport const exp10 = exp => Math.pow(10, exp)\n\nexport const sign = Math.sign\n\n/**\n * @param {number} n\n * @return {boolean} Wether n is negative. This function also differentiates between -0 and +0\n */\nexport const isNegativeZero = n => n !== 0 ? n < 0 : 1 / n < 0\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","/**\n * Utility functions to work with buffers (Uint8Array).\n *\n * @module buffer\n */\n\nimport * as string from './string.js'\nimport * as env from './environment.js'\nimport * as encoding from './encoding.js'\nimport * as decoding from './decoding.js'\n\n/**\n * @param {number} len\n */\nexport const createUint8ArrayFromLen = len => new Uint8Array(len)\n\n/**\n * Create Uint8Array with initial content from buffer\n *\n * @param {ArrayBuffer} buffer\n * @param {number} byteOffset\n * @param {number} length\n */\nexport const createUint8ArrayViewFromArrayBuffer = (buffer, byteOffset, length) => new Uint8Array(buffer, byteOffset, length)\n\n/**\n * Create Uint8Array with initial content from buffer\n *\n * @param {ArrayBuffer} buffer\n */\nexport const createUint8ArrayFromArrayBuffer = buffer => new Uint8Array(buffer)\n\n/* istanbul ignore next */\n/**\n * @param {Uint8Array} bytes\n * @return {string}\n */\nconst toBase64Browser = bytes => {\n let s = ''\n for (let i = 0; i < bytes.byteLength; i++) {\n s += string.fromCharCode(bytes[i])\n }\n // eslint-disable-next-line no-undef\n return btoa(s)\n}\n\n/**\n * @param {Uint8Array} bytes\n * @return {string}\n */\nconst toBase64Node = bytes => Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength).toString('base64')\n\n/* istanbul ignore next */\n/**\n * @param {string} s\n * @return {Uint8Array}\n */\nconst fromBase64Browser = s => {\n // eslint-disable-next-line no-undef\n const a = atob(s)\n const bytes = createUint8ArrayFromLen(a.length)\n for (let i = 0; i < a.length; i++) {\n bytes[i] = a.charCodeAt(i)\n }\n return bytes\n}\n\n/**\n * @param {string} s\n */\nconst fromBase64Node = s => {\n const buf = Buffer.from(s, 'base64')\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength)\n}\n\n/* istanbul ignore next */\nexport const toBase64 = env.isBrowser ? toBase64Browser : toBase64Node\n\n/* istanbul ignore next */\nexport const fromBase64 = env.isBrowser ? fromBase64Browser : fromBase64Node\n\n/**\n * Copy the content of an Uint8Array view to a new ArrayBuffer.\n *\n * @param {Uint8Array} uint8Array\n * @return {Uint8Array}\n */\nexport const copyUint8Array = uint8Array => {\n const newBuf = createUint8ArrayFromLen(uint8Array.byteLength)\n newBuf.set(uint8Array)\n return newBuf\n}\n\n/**\n * Encode anything as a UInt8Array. It's a pun on typescripts's `any` type.\n * See encoding.writeAny for more information.\n *\n * @param {any} data\n * @return {Uint8Array}\n */\nexport const encodeAny = data => {\n const encoder = encoding.createEncoder()\n encoding.writeAny(encoder, data)\n return encoding.toUint8Array(encoder)\n}\n\n/**\n * Decode an any-encoded value.\n *\n * @param {Uint8Array} buf\n * @return {any}\n */\nexport const decodeAny = buf => decoding.readAny(decoding.createDecoder(buf))\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","/**\n * Utility helpers for working with numbers.\n *\n * @module number\n */\n\nimport * as math from './math.js'\nimport * as binary from './binary.js'\n\nexport const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER\nexport const MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER\n\nexport const LOWEST_INT32 = 1 << 31\n/**\n * @type {number}\n */\nexport const HIGHEST_INT32 = binary.BITS31\n\n/**\n * @module number\n */\n\n/* istanbul ignore next */\nexport const isInteger = Number.isInteger || (num => typeof num === 'number' && isFinite(num) && math.floor(num) === num)\nexport const isNaN = Number.isNaN\nexport const parseInt = Number.parseInt\n","/**\n * Efficient schema-less binary encoding with support for variable length encoding.\n *\n * Use [lib0/encoding] with [lib0/decoding]. Every encoding function has a corresponding decoding function.\n *\n * Encodes numbers in little-endian order (least to most significant byte order)\n * and is compatible with Golang's binary encoding (https://golang.org/pkg/encoding/binary/)\n * which is also used in Protocol Buffers.\n *\n * ```js\n * // encoding step\n * const encoder = new encoding.createEncoder()\n * encoding.writeVarUint(encoder, 256)\n * encoding.writeVarString(encoder, 'Hello world!')\n * const buf = encoding.toUint8Array(encoder)\n * ```\n *\n * ```js\n * // decoding step\n * const decoder = new decoding.createDecoder(buf)\n * decoding.readVarUint(decoder) // => 256\n * decoding.readVarString(decoder) // => 'Hello world!'\n * decoding.hasContent(decoder) // => false - all data is read\n * ```\n *\n * @module encoding\n */\n\nimport * as buffer from './buffer.js'\nimport * as math from './math.js'\nimport * as number from './number.js'\nimport * as binary from './binary.js'\n\n/**\n * A BinaryEncoder handles the encoding to an Uint8Array.\n */\nexport class Encoder {\n constructor () {\n this.cpos = 0\n this.cbuf = new Uint8Array(100)\n /**\n * @type {Array}\n */\n this.bufs = []\n }\n}\n\n/**\n * @function\n * @return {Encoder}\n */\nexport const createEncoder = () => new Encoder()\n\n/**\n * The current length of the encoded data.\n *\n * @function\n * @param {Encoder} encoder\n * @return {number}\n */\nexport const length = encoder => {\n let len = encoder.cpos\n for (let i = 0; i < encoder.bufs.length; i++) {\n len += encoder.bufs[i].length\n }\n return len\n}\n\n/**\n * Transform to Uint8Array.\n *\n * @function\n * @param {Encoder} encoder\n * @return {Uint8Array} The created ArrayBuffer.\n */\nexport const toUint8Array = encoder => {\n const uint8arr = new Uint8Array(length(encoder))\n let curPos = 0\n for (let i = 0; i < encoder.bufs.length; i++) {\n const d = encoder.bufs[i]\n uint8arr.set(d, curPos)\n curPos += d.length\n }\n uint8arr.set(buffer.createUint8ArrayViewFromArrayBuffer(encoder.cbuf.buffer, 0, encoder.cpos), curPos)\n return uint8arr\n}\n\n/**\n * Verify that it is possible to write `len` bytes wtihout checking. If\n * necessary, a new Buffer with the required length is attached.\n *\n * @param {Encoder} encoder\n * @param {number} len\n */\nconst verifyLen = (encoder, len) => {\n const bufferLen = encoder.cbuf.length\n if (bufferLen - encoder.cpos < len) {\n encoder.bufs.push(buffer.createUint8ArrayViewFromArrayBuffer(encoder.cbuf.buffer, 0, encoder.cpos))\n encoder.cbuf = new Uint8Array(math.max(bufferLen, len) * 2)\n encoder.cpos = 0\n }\n}\n\n/**\n * Write one byte to the encoder.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The byte that is to be encoded.\n */\nexport const write = (encoder, num) => {\n const bufferLen = encoder.cbuf.length\n if (encoder.cpos === bufferLen) {\n encoder.bufs.push(encoder.cbuf)\n encoder.cbuf = new Uint8Array(bufferLen * 2)\n encoder.cpos = 0\n }\n encoder.cbuf[encoder.cpos++] = num\n}\n\n/**\n * Write one byte at a specific position.\n * Position must already be written (i.e. encoder.length > pos)\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} pos Position to which to write data\n * @param {number} num Unsigned 8-bit integer\n */\nexport const set = (encoder, pos, num) => {\n let buffer = null\n // iterate all buffers and adjust position\n for (let i = 0; i < encoder.bufs.length && buffer === null; i++) {\n const b = encoder.bufs[i]\n if (pos < b.length) {\n buffer = b // found buffer\n } else {\n pos -= b.length\n }\n }\n if (buffer === null) {\n // use current buffer\n buffer = encoder.cbuf\n }\n buffer[pos] = num\n}\n\n/**\n * Write one byte as an unsigned integer.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeUint8 = write\n\n/**\n * Write one byte as an unsigned Integer at a specific location.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} pos The location where the data will be written.\n * @param {number} num The number that is to be encoded.\n */\nexport const setUint8 = set\n\n/**\n * Write two bytes as an unsigned integer.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeUint16 = (encoder, num) => {\n write(encoder, num & binary.BITS8)\n write(encoder, (num >>> 8) & binary.BITS8)\n}\n/**\n * Write two bytes as an unsigned integer at a specific location.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} pos The location where the data will be written.\n * @param {number} num The number that is to be encoded.\n */\nexport const setUint16 = (encoder, pos, num) => {\n set(encoder, pos, num & binary.BITS8)\n set(encoder, pos + 1, (num >>> 8) & binary.BITS8)\n}\n\n/**\n * Write two bytes as an unsigned integer\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeUint32 = (encoder, num) => {\n for (let i = 0; i < 4; i++) {\n write(encoder, num & binary.BITS8)\n num >>>= 8\n }\n}\n\n/**\n * Write two bytes as an unsigned integer in big endian order.\n * (most significant byte first)\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeUint32BigEndian = (encoder, num) => {\n for (let i = 3; i >= 0; i--) {\n write(encoder, (num >>> (8 * i)) & binary.BITS8)\n }\n}\n\n/**\n * Write two bytes as an unsigned integer at a specific location.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} pos The location where the data will be written.\n * @param {number} num The number that is to be encoded.\n */\nexport const setUint32 = (encoder, pos, num) => {\n for (let i = 0; i < 4; i++) {\n set(encoder, pos + i, num & binary.BITS8)\n num >>>= 8\n }\n}\n\n/**\n * Write a variable length unsigned integer.\n *\n * Encodes integers in the range from [0, 4294967295] / [0, 0xffffffff]. (max 32 bit unsigned integer)\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeVarUint = (encoder, num) => {\n while (num > binary.BITS7) {\n write(encoder, binary.BIT8 | (binary.BITS7 & num))\n num >>>= 7\n }\n write(encoder, binary.BITS7 & num)\n}\n\n/**\n * Write a variable length integer.\n *\n * Encodes integers in the range from [-2147483648, -2147483647].\n *\n * We don't use zig-zag encoding because we want to keep the option open\n * to use the same function for BigInt and 53bit integers (doubles).\n *\n * We use the 7th bit instead for signaling that this is a negative number.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeVarInt = (encoder, num) => {\n const isNegative = math.isNegativeZero(num)\n if (isNegative) {\n num = -num\n }\n // |- whether to continue reading |- whether is negative |- number\n write(encoder, (num > binary.BITS6 ? binary.BIT8 : 0) | (isNegative ? binary.BIT7 : 0) | (binary.BITS6 & num))\n num >>>= 6\n // We don't need to consider the case of num === 0 so we can use a different\n // pattern here than above.\n while (num > 0) {\n write(encoder, (num > binary.BITS7 ? binary.BIT8 : 0) | (binary.BITS7 & num))\n num >>>= 7\n }\n}\n\n/**\n * Write a variable length string.\n *\n * @function\n * @param {Encoder} encoder\n * @param {String} str The string that is to be encoded.\n */\nexport const writeVarString = (encoder, str) => {\n const encodedString = unescape(encodeURIComponent(str))\n const len = encodedString.length\n writeVarUint(encoder, len)\n for (let i = 0; i < len; i++) {\n write(encoder, /** @type {number} */ (encodedString.codePointAt(i)))\n }\n}\n\n/**\n * Write the content of another Encoder.\n *\n * @TODO: can be improved!\n * - Note: Should consider that when appending a lot of small Encoders, we should rather clone than referencing the old structure.\n * Encoders start with a rather big initial buffer.\n *\n * @function\n * @param {Encoder} encoder The enUint8Arr\n * @param {Encoder} append The BinaryEncoder to be written.\n */\nexport const writeBinaryEncoder = (encoder, append) => writeUint8Array(encoder, toUint8Array(append))\n\n/**\n * Append fixed-length Uint8Array to the encoder.\n *\n * @function\n * @param {Encoder} encoder\n * @param {Uint8Array} uint8Array\n */\nexport const writeUint8Array = (encoder, uint8Array) => {\n const bufferLen = encoder.cbuf.length\n const cpos = encoder.cpos\n const leftCopyLen = math.min(bufferLen - cpos, uint8Array.length)\n const rightCopyLen = uint8Array.length - leftCopyLen\n encoder.cbuf.set(uint8Array.subarray(0, leftCopyLen), cpos)\n encoder.cpos += leftCopyLen\n if (rightCopyLen > 0) {\n // Still something to write, write right half..\n // Append new buffer\n encoder.bufs.push(encoder.cbuf)\n // must have at least size of remaining buffer\n encoder.cbuf = new Uint8Array(math.max(bufferLen * 2, rightCopyLen))\n // copy array\n encoder.cbuf.set(uint8Array.subarray(leftCopyLen))\n encoder.cpos = rightCopyLen\n }\n}\n\n/**\n * Append an Uint8Array to Encoder.\n *\n * @function\n * @param {Encoder} encoder\n * @param {Uint8Array} uint8Array\n */\nexport const writeVarUint8Array = (encoder, uint8Array) => {\n writeVarUint(encoder, uint8Array.byteLength)\n writeUint8Array(encoder, uint8Array)\n}\n\n/**\n * Create an DataView of the next `len` bytes. Use it to write data after\n * calling this function.\n *\n * ```js\n * // write float32 using DataView\n * const dv = writeOnDataView(encoder, 4)\n * dv.setFloat32(0, 1.1)\n * // read float32 using DataView\n * const dv = readFromDataView(encoder, 4)\n * dv.getFloat32(0) // => 1.100000023841858 (leaving it to the reader to find out why this is the correct result)\n * ```\n *\n * @param {Encoder} encoder\n * @param {number} len\n * @return {DataView}\n */\nexport const writeOnDataView = (encoder, len) => {\n verifyLen(encoder, len)\n const dview = new DataView(encoder.cbuf.buffer, encoder.cpos, len)\n encoder.cpos += len\n return dview\n}\n\n/**\n * @param {Encoder} encoder\n * @param {number} num\n */\nexport const writeFloat32 = (encoder, num) => writeOnDataView(encoder, 4).setFloat32(0, num, false)\n\n/**\n * @param {Encoder} encoder\n * @param {number} num\n */\nexport const writeFloat64 = (encoder, num) => writeOnDataView(encoder, 8).setFloat64(0, num, false)\n\n/**\n * @param {Encoder} encoder\n * @param {bigint} num\n */\nexport const writeBigInt64 = (encoder, num) => /** @type {any} */ (writeOnDataView(encoder, 8)).setBigInt64(0, num, false)\n\n/**\n * @param {Encoder} encoder\n * @param {bigint} num\n */\nexport const writeBigUint64 = (encoder, num) => /** @type {any} */ (writeOnDataView(encoder, 8)).setBigUint64(0, num, false)\n\nconst floatTestBed = new DataView(new ArrayBuffer(4))\n/**\n * Check if a number can be encoded as a 32 bit float.\n *\n * @param {number} num\n * @return {boolean}\n */\nconst isFloat32 = num => {\n floatTestBed.setFloat32(0, num)\n return floatTestBed.getFloat32(0) === num\n}\n\n/**\n * Encode data with efficient binary format.\n *\n * Differences to JSON:\n * • Transforms data to a binary format (not to a string)\n * • Encodes undefined, NaN, and ArrayBuffer (these can't be represented in JSON)\n * • Numbers are efficiently encoded either as a variable length integer, as a\n * 32 bit float, as a 64 bit float, or as a 64 bit bigint.\n *\n * Encoding table:\n *\n * | Data Type | Prefix | Encoding Method | Comment |\n * | ------------------- | -------- | ------------------ | ------- |\n * | undefined | 127 | | Functions, symbol, and everything that cannot be identified is encoded as undefined |\n * | null | 126 | | |\n * | integer | 125 | writeVarInt | Only encodes 32 bit signed integers |\n * | float32 | 124 | writeFloat32 | |\n * | float64 | 123 | writeFloat64 | |\n * | bigint | 122 | writeBigInt64 | |\n * | boolean (false) | 121 | | True and false are different data types so we save the following byte |\n * | boolean (true) | 120 | | - 0b01111000 so the last bit determines whether true or false |\n * | string | 119 | writeVarString | |\n * | object | 118 | custom | Writes {length} then {length} key-value pairs |\n * | array | 117 | custom | Writes {length} then {length} json values |\n * | Uint8Array | 116 | writeVarUint8Array | We use Uint8Array for any kind of binary data |\n *\n * Reasons for the decreasing prefix:\n * We need the first bit for extendability (later we may want to encode the\n * prefix with writeVarUint). The remaining 7 bits are divided as follows:\n * [0-30] the beginning of the data range is used for custom purposes\n * (defined by the function that uses this library)\n * [31-127] the end of the data range is used for data encoding by\n * lib0/encoding.js\n *\n * @param {Encoder} encoder\n * @param {undefined|null|number|bigint|boolean|string|Object|Array|Uint8Array} data\n */\nexport const writeAny = (encoder, data) => {\n switch (typeof data) {\n case 'string':\n // TYPE 119: STRING\n write(encoder, 119)\n writeVarString(encoder, data)\n break\n case 'number':\n if (number.isInteger(data) && math.abs(data) <= binary.BITS31) {\n // TYPE 125: INTEGER\n write(encoder, 125)\n writeVarInt(encoder, data)\n } else if (isFloat32(data)) {\n // TYPE 124: FLOAT32\n write(encoder, 124)\n writeFloat32(encoder, data)\n } else {\n // TYPE 123: FLOAT64\n write(encoder, 123)\n writeFloat64(encoder, data)\n }\n break\n case 'bigint':\n // TYPE 122: BigInt\n write(encoder, 122)\n writeBigInt64(encoder, data)\n break\n case 'object':\n if (data === null) {\n // TYPE 126: null\n write(encoder, 126)\n } else if (data instanceof Array) {\n // TYPE 117: Array\n write(encoder, 117)\n writeVarUint(encoder, data.length)\n for (let i = 0; i < data.length; i++) {\n writeAny(encoder, data[i])\n }\n } else if (data instanceof Uint8Array) {\n // TYPE 116: ArrayBuffer\n write(encoder, 116)\n writeVarUint8Array(encoder, data)\n } else {\n // TYPE 118: Object\n write(encoder, 118)\n const keys = Object.keys(data)\n writeVarUint(encoder, keys.length)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n writeVarString(encoder, key)\n writeAny(encoder, data[key])\n }\n }\n break\n case 'boolean':\n // TYPE 120/121: boolean (true/false)\n write(encoder, data ? 120 : 121)\n break\n default:\n // TYPE 127: undefined\n write(encoder, 127)\n }\n}\n\n/**\n * Now come a few stateful encoder that have their own classes.\n */\n\n/**\n * Basic Run Length Encoder - a basic compression implementation.\n *\n * Encodes [1,1,1,7] to [1,3,7,1] (3 times 1, 1 time 7). This encoder might do more harm than good if there are a lot of values that are not repeated.\n *\n * It was originally used for image compression. Cool .. article http://csbruce.com/cbm/transactor/pdfs/trans_v7_i06.pdf\n *\n * @note T must not be null!\n *\n * @template T\n */\nexport class RleEncoder extends Encoder {\n /**\n * @param {function(Encoder, T):void} writer\n */\n constructor (writer) {\n super()\n /**\n * The writer\n */\n this.w = writer\n /**\n * Current state\n * @type {T|null}\n */\n this.s = null\n this.count = 0\n }\n\n /**\n * @param {T} v\n */\n write (v) {\n if (this.s === v) {\n this.count++\n } else {\n if (this.count > 0) {\n // flush counter, unless this is the first value (count = 0)\n writeVarUint(this, this.count - 1) // since count is always > 0, we can decrement by one. non-standard encoding ftw\n }\n this.count = 1\n // write first value\n this.w(this, v)\n this.s = v\n }\n }\n}\n\n/**\n * Basic diff decoder using variable length encoding.\n *\n * Encodes the values [3, 1100, 1101, 1050, 0] to [3, 1097, 1, -51, -1050] using writeVarInt.\n */\nexport class IntDiffEncoder extends Encoder {\n /**\n * @param {number} start\n */\n constructor (start) {\n super()\n /**\n * Current state\n * @type {number}\n */\n this.s = start\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n writeVarInt(this, v - this.s)\n this.s = v\n }\n}\n\n/**\n * A combination of IntDiffEncoder and RleEncoder.\n *\n * Basically first writes the IntDiffEncoder and then counts duplicate diffs using RleEncoding.\n *\n * Encodes the values [1,1,1,2,3,4,5,6] as [1,1,0,2,1,5] (RLE([1,0,0,1,1,1,1,1]) ⇒ RleIntDiff[1,1,0,2,1,5])\n */\nexport class RleIntDiffEncoder extends Encoder {\n /**\n * @param {number} start\n */\n constructor (start) {\n super()\n /**\n * Current state\n * @type {number}\n */\n this.s = start\n this.count = 0\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n if (this.s === v && this.count > 0) {\n this.count++\n } else {\n if (this.count > 0) {\n // flush counter, unless this is the first value (count = 0)\n writeVarUint(this, this.count - 1) // since count is always > 0, we can decrement by one. non-standard encoding ftw\n }\n this.count = 1\n // write first value\n writeVarInt(this, v - this.s)\n this.s = v\n }\n }\n}\n\n/**\n * @param {UintOptRleEncoder} encoder\n */\nconst flushUintOptRleEncoder = encoder => {\n /* istanbul ignore else */\n if (encoder.count > 0) {\n // flush counter, unless this is the first value (count = 0)\n // case 1: just a single value. set sign to positive\n // case 2: write several values. set sign to negative to indicate that there is a length coming\n writeVarInt(encoder.encoder, encoder.count === 1 ? encoder.s : -encoder.s)\n if (encoder.count > 1) {\n writeVarUint(encoder.encoder, encoder.count - 2) // since count is always > 1, we can decrement by one. non-standard encoding ftw\n }\n }\n}\n\n/**\n * Optimized Rle encoder that does not suffer from the mentioned problem of the basic Rle encoder.\n *\n * Internally uses VarInt encoder to write unsigned integers. If the input occurs multiple times, we write\n * write it as a negative number. The UintOptRleDecoder then understands that it needs to read a count.\n *\n * Encodes [1,2,3,3,3] as [1,2,-3,3] (once 1, once 2, three times 3)\n */\nexport class UintOptRleEncoder {\n constructor () {\n this.encoder = new Encoder()\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n if (this.s === v) {\n this.count++\n } else {\n flushUintOptRleEncoder(this)\n this.count = 1\n this.s = v\n }\n }\n\n toUint8Array () {\n flushUintOptRleEncoder(this)\n return toUint8Array(this.encoder)\n }\n}\n\n/**\n * Increasing Uint Optimized RLE Encoder\n *\n * The RLE encoder counts the number of same occurences of the same value.\n * The IncUintOptRle encoder counts if the value increases.\n * I.e. 7, 8, 9, 10 will be encoded as [-7, 4]. 1, 3, 5 will be encoded\n * as [1, 3, 5].\n */\nexport class IncUintOptRleEncoder {\n constructor () {\n this.encoder = new Encoder()\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n if (this.s + this.count === v) {\n this.count++\n } else {\n flushUintOptRleEncoder(this)\n this.count = 1\n this.s = v\n }\n }\n\n toUint8Array () {\n flushUintOptRleEncoder(this)\n return toUint8Array(this.encoder)\n }\n}\n\n/**\n * @param {IntDiffOptRleEncoder} encoder\n */\nconst flushIntDiffOptRleEncoder = encoder => {\n if (encoder.count > 0) {\n // 31 bit making up the diff | wether to write the counter\n const encodedDiff = encoder.diff << 1 | (encoder.count === 1 ? 0 : 1)\n // flush counter, unless this is the first value (count = 0)\n // case 1: just a single value. set first bit to positive\n // case 2: write several values. set first bit to negative to indicate that there is a length coming\n writeVarInt(encoder.encoder, encodedDiff)\n if (encoder.count > 1) {\n writeVarUint(encoder.encoder, encoder.count - 2) // since count is always > 1, we can decrement by one. non-standard encoding ftw\n }\n }\n}\n\n/**\n * A combination of the IntDiffEncoder and the UintOptRleEncoder.\n *\n * The count approach is similar to the UintDiffOptRleEncoder, but instead of using the negative bitflag, it encodes\n * in the LSB whether a count is to be read. Therefore this Encoder only supports 31 bit integers!\n *\n * Encodes [1, 2, 3, 2] as [3, 1, 6, -1] (more specifically [(1 << 1) | 1, (3 << 0) | 0, -1])\n *\n * Internally uses variable length encoding. Contrary to normal UintVar encoding, the first byte contains:\n * * 1 bit that denotes whether the next value is a count (LSB)\n * * 1 bit that denotes whether this value is negative (MSB - 1)\n * * 1 bit that denotes whether to continue reading the variable length integer (MSB)\n *\n * Therefore, only five bits remain to encode diff ranges.\n *\n * Use this Encoder only when appropriate. In most cases, this is probably a bad idea.\n */\nexport class IntDiffOptRleEncoder {\n constructor () {\n this.encoder = new Encoder()\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n this.diff = 0\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n if (this.diff === v - this.s) {\n this.s = v\n this.count++\n } else {\n flushIntDiffOptRleEncoder(this)\n this.count = 1\n this.diff = v - this.s\n this.s = v\n }\n }\n\n toUint8Array () {\n flushIntDiffOptRleEncoder(this)\n return toUint8Array(this.encoder)\n }\n}\n\n/**\n * Optimized String Encoder.\n *\n * Encoding many small strings in a simple Encoder is not very efficient. The function call to decode a string takes some time and creates references that must be eventually deleted.\n * In practice, when decoding several million small strings, the GC will kick in more and more often to collect orphaned string objects (or maybe there is another reason?).\n *\n * This string encoder solves the above problem. All strings are concatenated and written as a single string using a single encoding call.\n *\n * The lengths are encoded using a UintOptRleEncoder.\n */\nexport class StringEncoder {\n constructor () {\n /**\n * @type {Array}\n */\n this.sarr = []\n this.s = ''\n this.lensE = new UintOptRleEncoder()\n }\n\n /**\n * @param {string} string\n */\n write (string) {\n this.s += string\n if (this.s.length > 19) {\n this.sarr.push(this.s)\n this.s = ''\n }\n this.lensE.write(string.length)\n }\n\n toUint8Array () {\n const encoder = new Encoder()\n this.sarr.push(this.s)\n this.s = ''\n writeVarString(encoder, this.sarr.join(''))\n writeUint8Array(encoder, this.lensE.toUint8Array())\n return toUint8Array(encoder)\n }\n}\n","/**\n * Often used conditions.\n *\n * @module conditions\n */\n\n/**\n * @template T\n * @param {T|null|undefined} v\n * @return {T|null}\n */\n/* istanbul ignore next */\nexport const undefinedToNull = v => v === undefined ? null : v\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","/**\n * Observable class prototype.\n *\n * @module observable\n */\n\nimport * as map from './map.js'\nimport * as set from './set.js'\nimport * as array from './array.js'\n\n/**\n * Handles named events.\n *\n * @template N\n */\nexport class Observable {\n constructor () {\n /**\n * Some desc.\n * @type {Map}\n */\n this._observers = map.create()\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n on (name, f) {\n map.setIfUndefined(this._observers, name, set.create).add(f)\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n once (name, f) {\n /**\n * @param {...any} args\n */\n const _f = (...args) => {\n this.off(name, _f)\n f(...args)\n }\n this.on(name, _f)\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n off (name, f) {\n const observers = this._observers.get(name)\n if (observers !== undefined) {\n observers.delete(f)\n if (observers.size === 0) {\n this._observers.delete(name)\n }\n }\n }\n\n /**\n * Emit a named event. All registered event listeners that listen to the\n * specified name will receive the event.\n *\n * @todo This should catch exceptions\n *\n * @param {N} name The event name.\n * @param {Array} args The arguments that are applied to the event listener.\n */\n emit (name, args) {\n // copy all listeners to an array first to make sure that no event is emitted to listeners that are subscribed while the event handler is called.\n return array.from((this._observers.get(name) || map.create()).values()).forEach(f => f(...args))\n }\n\n destroy () {\n this._observers = map.create()\n }\n}\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","/**\n * Utility module to work with Arrays.\n *\n * @module array\n */\n\n/**\n * Return the last element of an array. The element must exist\n *\n * @template L\n * @param {Array} arr\n * @return {L}\n */\nexport const last = arr => arr[arr.length - 1]\n\n/**\n * @template C\n * @return {Array}\n */\nexport const create = () => /** @type {Array} */ ([])\n\n/**\n * @template D\n * @param {Array} a\n * @return {Array}\n */\nexport const copy = a => /** @type {Array} */ (a.slice())\n\n/**\n * Append elements from src to dest\n *\n * @template M\n * @param {Array} dest\n * @param {Array} src\n */\nexport const appendTo = (dest, src) => {\n for (let i = 0; i < src.length; i++) {\n dest.push(src[i])\n }\n}\n\n/**\n * Transforms something array-like to an actual Array.\n *\n * @function\n * @template T\n * @param {ArrayLike|Iterable} arraylike\n * @return {T}\n */\nexport const from = Array.from\n\n/**\n * True iff condition holds on every element in the Array.\n *\n * @function\n * @template ITEM\n *\n * @param {Array} arr\n * @param {function(ITEM, number, Array):boolean} f\n * @return {boolean}\n */\nexport const every = (arr, f) => arr.every(f)\n\n/**\n * True iff condition holds on some element in the Array.\n *\n * @function\n * @template S\n * @param {Array} arr\n * @param {function(S, number, Array):boolean} f\n * @return {boolean}\n */\nexport const some = (arr, f) => arr.some(f)\n\n/**\n * @template ELEM\n *\n * @param {Array} a\n * @param {Array} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a.length === b.length && every(a, (item, index) => item === b[index])\n\n/**\n * @template ELEM\n * @param {Array>} arr\n * @return {Array}\n */\nexport const flatten = arr => arr.reduce((acc, val) => acc.concat(val), [])\n\nexport const isArray = Array.isArray\n"],"sourceRoot":""}