{"version":3,"sources":["webpack:////usr/local/lib/node_modules/@ies/eden-command-build/node_modules/@ies/cora/node_modules/node-libs-browser/node_modules/string_decoder/lib/string_decoder.js","webpack:////opt/tiger/compile_path/src/code.byted.org/ies/tiktok_web_monorepo/common/temp/split_aweme_web_tv/node_modules/.pnpm/iconv-lite@0.4.24/node_modules/iconv-lite/encodings/internal.js","webpack:////usr/local/lib/node_modules/@ies/eden-command-build/node_modules/@ies/cora/node_modules/isarray/index.js","webpack:////opt/tiger/compile_path/src/code.byted.org/ies/tiktok_web_monorepo/common/temp/split_aweme_web_tv/node_modules/.pnpm/iconv-lite@0.4.24/node_modules/iconv-lite/lib/bom-handling.js","webpack:////opt/tiger/compile_path/src/code.byted.org/ies/tiktok_web_monorepo/common/temp/split_aweme_web_tv/node_modules/.pnpm/iconv-lite@0.4.24/node_modules/iconv-lite/encodings/sbcs-data-generated.js","webpack:////opt/tiger/compile_path/src/code.byted.org/ies/tiktok_web_monorepo/common/temp/split_aweme_web_tv/node_modules/.pnpm/iconv-lite@0.4.24/node_modules/iconv-lite/lib/index.js","webpack:////usr/local/lib/node_modules/@ies/eden-command-build/node_modules/@ies/cora/node_modules/node-libs-browser/node_modules/buffer/index.js","webpack:////opt/tiger/compile_path/src/code.byted.org/ies/tiktok_web_monorepo/common/temp/split_aweme_web_tv/node_modules/.pnpm/iconv-lite@0.4.24/node_modules/iconv-lite/encodings/utf16.js","webpack:////opt/tiger/compile_path/src/code.byted.org/ies/tiktok_web_monorepo/common/temp/split_aweme_web_tv/node_modules/.pnpm/iconv-lite@0.4.24/node_modules/iconv-lite/encodings/utf7.js","webpack:////usr/local/lib/node_modules/@ies/eden-command-build/node_modules/@ies/cora/node_modules/base64-js/index.js","webpack:////opt/tiger/compile_path/src/code.byted.org/ies/tiktok_web_monorepo/common/temp/split_aweme_web_tv/node_modules/.pnpm/iconv-lite@0.4.24/node_modules/iconv-lite/encodings/dbcs-data.js","webpack:////opt/tiger/compile_path/src/code.byted.org/ies/tiktok_web_monorepo/common/temp/split_aweme_web_tv/node_modules/.pnpm/iconv-lite@0.4.24/node_modules/iconv-lite/encodings/dbcs-codec.js","webpack:////opt/tiger/compile_path/src/code.byted.org/ies/tiktok_web_monorepo/common/temp/split_aweme_web_tv/node_modules/.pnpm/safer-buffer@2.1.2/node_modules/safer-buffer/safer.js","webpack:////usr/local/lib/node_modules/@ies/eden-command-build/node_modules/@ies/cora/node_modules/node-libs-browser/node_modules/string_decoder/node_modules/safe-buffer/index.js","webpack:////opt/tiger/compile_path/src/code.byted.org/ies/tiktok_web_monorepo/common/temp/split_aweme_web_tv/node_modules/.pnpm/iconv-lite@0.4.24/node_modules/iconv-lite/encodings/index.js","webpack:////usr/local/lib/node_modules/@ies/eden-command-build/node_modules/@ies/cora/node_modules/ieee754/index.js","webpack:////opt/tiger/compile_path/src/code.byted.org/ies/tiktok_web_monorepo/common/temp/split_aweme_web_tv/node_modules/.pnpm/urlencode@1.1.0/node_modules/urlencode/lib/urlencode.js","webpack:////opt/tiger/compile_path/src/code.byted.org/ies/tiktok_web_monorepo/common/temp/split_aweme_web_tv/node_modules/.pnpm/iconv-lite@0.4.24/node_modules/iconv-lite/encodings/sbcs-data.js","webpack:////opt/tiger/compile_path/src/code.byted.org/ies/tiktok_web_monorepo/common/temp/split_aweme_web_tv/node_modules/.pnpm/iconv-lite@0.4.24/node_modules/iconv-lite/encodings/sbcs-codec.js"],"names":["Buffer","require","isEncoding","encoding","toLowerCase","StringDecoder","nb","this","enc","nenc","retried","_normalizeEncoding","Error","normalizeEncoding","text","utf16Text","end","utf16End","fillLast","utf8FillLast","base64Text","base64End","write","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","allocUnsafe","utf8CheckByte","byte","buf","p","r","self","length","utf8CheckExtraBytes","undefined","copy","toString","i","c","charCodeAt","slice","n","exports","prototype","total","j","utf8CheckIncomplete","InternalCodec","codecOptions","iconv","encodingName","bomAware","encoder","InternalEncoderBase64","InternalEncoderCesu8","from","decoder","InternalDecoderCesu8","defaultCharUnicode","module","utf8","type","cesu8","unicode11utf8","ucs2","utf16le","binary","base64","hex","_internal","InternalEncoder","InternalDecoder","options","codec","call","prevStr","acc","contBytes","accBytes","str","completeQuads","alloc","bufIdx","charCode","res","curByte","String","fromCharCode","Array","isArray","arr","PrependBOMWrapper","addBOM","StripBOMWrapper","pass","PrependBOM","StripBOM","stripBOM","bomHandling","encodings","defaultCharSingleByte","encode","getEncoder","trail","concat","decode","skipDecodeWarning","console","error","getDecoder","encodingExists","getCodec","e","toEncoding","fromEncoding","_codecDataCache","_canonicalizeEncoding","codecDef","key","replace","nodeVer","process","versions","node","nodeVerArr","split","map","Number","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","Uint8Array","__proto__","arg","encodingOrOffset","value","TypeError","ArrayBuffer","array","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","string","actual","fromString","obj","isBuffer","len","checked","buffer","val","data","fromObject","assertSize","size","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","start","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","b","m","bidirectionalIndexOf","dir","isNaN","arrayIndexOf","indexOf","lastIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","hexWrite","offset","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","byteArray","push","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","Math","min","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","apply","decodeCodePointsArray","SlowBuffer","INSPECT_MAX_BYTES","global","foo","subarray","typedArraySupport","poolSize","_augment","Symbol","species","Object","defineProperty","configurable","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","list","pos","swap16","swap32","swap64","arguments","equals","inspect","max","match","join","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","code","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","trim","stringtrim","base64clean","src","dst","Utf16BECodec","Utf16BEEncoder","Utf16BEDecoder","overflowByte","Utf16Codec","Utf16Encoder","Utf16Decoder","initialBytes","initialBytesLen","detectEncoding","defaultEncoding","asciiCharsLE","asciiCharsBE","_len","utf16be","tmp","buf2","utf16","Utf7Codec","utf7","unicode11utf7","Utf7Encoder","Utf7Decoder","nonDirectChars","inBase64","base64Accum","chunk","bind","base64Regex","base64Chars","test","plusChar","minusChar","andChar","Utf7IMAPCodec","Utf7IMAPEncoder","base64AccumIdx","Utf7IMAPDecoder","lastI","b64str","canBeDecoded","utf7imap","uChar","base64IMAPChars","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","revLookup","uint8","extraBytes","parts","len2","encodeChunk","lookup","num","output","table","encodeAdd","encodeSkipVals","to","gb18030","_dbcs","DBCSCodec","UNASSIGNED_NODE","mappingTable","decodeTables","decodeTableSeq","_addDecodeChunk","encodeTable","encodeTableSeq","skipEncodeChars","_fillEncodeTable","hasOwnProperty","_setEncodeChar","defCharSB","thirdByteNodeIdx","thirdByteNode","fourthByteNodeIdx","fourthByteNode","secondByteNodeIdx","secondByteNode","DBCSEncoder","seqObj","DBCSDecoder","nodeIdx","prevBuf","findIdx","l","mid","_getDecodeTrieNode","addr","curAddr","writeTable","k","part","codeTrail","seq","_getEncodeBucket","uCode","high","dbcsCode","bucket","low","_setEncodeSequence","oldVal","prefix","mbCode","nextChar","resCode","subtable","idx","uChars","gbChars","prevBufOffset","seqStart","curSeq","ptr","uCodeLead","safer","Safer","kStringMaxLength","binding","constants","MAX_LENGTH","MAX_STRING_LENGTH","copyProps","SafeBuffer","create","modules","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","d","s","NaN","rt","abs","log","LN2","isUTF8","charset","encodeURIComponent","encodeStr","ch","toUpperCase","decodeURIComponent","substring","has","prop","encodeComponent","item","stringify","stringifyArray","keys","stringifyObject","stringifyString","parse","qs","sep","eq","regexp","maxKeys","kstr","vstr","v","SBCSCodec","chars","asciiString","decodeBuf","encodeBuf","SBCSEncoder","SBCSDecoder","_sbcs","idx1","idx2"],"mappings":"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","file":"common/vendor~pages/activate/index~pages/landing/index.eff11bf2.js","sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","\"use strict\";\nvar Buffer = require(\"safer-buffer\").Buffer;\n\n// Export Node.js internal encodings.\n\nmodule.exports = {\n // Encodings\n utf8: { type: \"_internal\", bomAware: true},\n cesu8: { type: \"_internal\", bomAware: true},\n unicode11utf8: \"utf8\",\n\n ucs2: { type: \"_internal\", bomAware: true},\n utf16le: \"ucs2\",\n\n binary: { type: \"_internal\" },\n base64: { type: \"_internal\" },\n hex: { type: \"_internal\" },\n\n // Codec.\n _internal: InternalCodec,\n};\n\n//------------------------------------------------------------------------------\n\nfunction InternalCodec(codecOptions, iconv) {\n this.enc = codecOptions.encodingName;\n this.bomAware = codecOptions.bomAware;\n\n if (this.enc === \"base64\")\n this.encoder = InternalEncoderBase64;\n else if (this.enc === \"cesu8\") {\n this.enc = \"utf8\"; // Use utf8 for decoding.\n this.encoder = InternalEncoderCesu8;\n\n // Add decoder for versions of Node not supporting CESU-8\n if (Buffer.from('eda0bdedb2a9', 'hex').toString() !== '💩') {\n this.decoder = InternalDecoderCesu8;\n this.defaultCharUnicode = iconv.defaultCharUnicode;\n }\n }\n}\n\nInternalCodec.prototype.encoder = InternalEncoder;\nInternalCodec.prototype.decoder = InternalDecoder;\n\n//------------------------------------------------------------------------------\n\n// We use node.js internal decoder. Its signature is the same as ours.\nvar StringDecoder = require('string_decoder').StringDecoder;\n\nif (!StringDecoder.prototype.end) // Node v0.8 doesn't have this method.\n StringDecoder.prototype.end = function() {};\n\n\nfunction InternalDecoder(options, codec) {\n StringDecoder.call(this, codec.enc);\n}\n\nInternalDecoder.prototype = StringDecoder.prototype;\n\n\n//------------------------------------------------------------------------------\n// Encoder is mostly trivial\n\nfunction InternalEncoder(options, codec) {\n this.enc = codec.enc;\n}\n\nInternalEncoder.prototype.write = function(str) {\n return Buffer.from(str, this.enc);\n}\n\nInternalEncoder.prototype.end = function() {\n}\n\n\n//------------------------------------------------------------------------------\n// Except base64 encoder, which must keep its state.\n\nfunction InternalEncoderBase64(options, codec) {\n this.prevStr = '';\n}\n\nInternalEncoderBase64.prototype.write = function(str) {\n str = this.prevStr + str;\n var completeQuads = str.length - (str.length % 4);\n this.prevStr = str.slice(completeQuads);\n str = str.slice(0, completeQuads);\n\n return Buffer.from(str, \"base64\");\n}\n\nInternalEncoderBase64.prototype.end = function() {\n return Buffer.from(this.prevStr, \"base64\");\n}\n\n\n//------------------------------------------------------------------------------\n// CESU-8 encoder is also special.\n\nfunction InternalEncoderCesu8(options, codec) {\n}\n\nInternalEncoderCesu8.prototype.write = function(str) {\n var buf = Buffer.alloc(str.length * 3), bufIdx = 0;\n for (var i = 0; i < str.length; i++) {\n var charCode = str.charCodeAt(i);\n // Naive implementation, but it works because CESU-8 is especially easy\n // to convert from UTF-16 (which all JS strings are encoded in).\n if (charCode < 0x80)\n buf[bufIdx++] = charCode;\n else if (charCode < 0x800) {\n buf[bufIdx++] = 0xC0 + (charCode >>> 6);\n buf[bufIdx++] = 0x80 + (charCode & 0x3f);\n }\n else { // charCode will always be < 0x10000 in javascript.\n buf[bufIdx++] = 0xE0 + (charCode >>> 12);\n buf[bufIdx++] = 0x80 + ((charCode >>> 6) & 0x3f);\n buf[bufIdx++] = 0x80 + (charCode & 0x3f);\n }\n }\n return buf.slice(0, bufIdx);\n}\n\nInternalEncoderCesu8.prototype.end = function() {\n}\n\n//------------------------------------------------------------------------------\n// CESU-8 decoder is not implemented in Node v4.0+\n\nfunction InternalDecoderCesu8(options, codec) {\n this.acc = 0;\n this.contBytes = 0;\n this.accBytes = 0;\n this.defaultCharUnicode = codec.defaultCharUnicode;\n}\n\nInternalDecoderCesu8.prototype.write = function(buf) {\n var acc = this.acc, contBytes = this.contBytes, accBytes = this.accBytes, \n res = '';\n for (var i = 0; i < buf.length; i++) {\n var curByte = buf[i];\n if ((curByte & 0xC0) !== 0x80) { // Leading byte\n if (contBytes > 0) { // Previous code is invalid\n res += this.defaultCharUnicode;\n contBytes = 0;\n }\n\n if (curByte < 0x80) { // Single-byte code\n res += String.fromCharCode(curByte);\n } else if (curByte < 0xE0) { // Two-byte code\n acc = curByte & 0x1F;\n contBytes = 1; accBytes = 1;\n } else if (curByte < 0xF0) { // Three-byte code\n acc = curByte & 0x0F;\n contBytes = 2; accBytes = 1;\n } else { // Four or more are not supported for CESU-8.\n res += this.defaultCharUnicode;\n }\n } else { // Continuation byte\n if (contBytes > 0) { // We're waiting for it.\n acc = (acc << 6) | (curByte & 0x3f);\n contBytes--; accBytes++;\n if (contBytes === 0) {\n // Check for overlong encoding, but support Modified UTF-8 (encoding NULL as C0 80)\n if (accBytes === 2 && acc < 0x80 && acc > 0)\n res += this.defaultCharUnicode;\n else if (accBytes === 3 && acc < 0x800)\n res += this.defaultCharUnicode;\n else\n // Actually add character.\n res += String.fromCharCode(acc);\n }\n } else { // Unexpected continuation byte\n res += this.defaultCharUnicode;\n }\n }\n }\n this.acc = acc; this.contBytes = contBytes; this.accBytes = accBytes;\n return res;\n}\n\nInternalDecoderCesu8.prototype.end = function() {\n var res = 0;\n if (this.contBytes > 0)\n res += this.defaultCharUnicode;\n return res;\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","\"use strict\";\n\nvar BOMChar = '\\uFEFF';\n\nexports.PrependBOM = PrependBOMWrapper\nfunction PrependBOMWrapper(encoder, options) {\n this.encoder = encoder;\n this.addBOM = true;\n}\n\nPrependBOMWrapper.prototype.write = function(str) {\n if (this.addBOM) {\n str = BOMChar + str;\n this.addBOM = false;\n }\n\n return this.encoder.write(str);\n}\n\nPrependBOMWrapper.prototype.end = function() {\n return this.encoder.end();\n}\n\n\n//------------------------------------------------------------------------------\n\nexports.StripBOM = StripBOMWrapper;\nfunction StripBOMWrapper(decoder, options) {\n this.decoder = decoder;\n this.pass = false;\n this.options = options || {};\n}\n\nStripBOMWrapper.prototype.write = function(buf) {\n var res = this.decoder.write(buf);\n if (this.pass || !res)\n return res;\n\n if (res[0] === BOMChar) {\n res = res.slice(1);\n if (typeof this.options.stripBOM === 'function')\n this.options.stripBOM();\n }\n\n this.pass = true;\n return res;\n}\n\nStripBOMWrapper.prototype.end = function() {\n return this.decoder.end();\n}\n\n","\"use strict\";\n\n// Generated data for sbcs codec. Don't edit manually. Regenerate using generation/gen-sbcs.js script.\nmodule.exports = {\n \"437\": \"cp437\",\n \"737\": \"cp737\",\n \"775\": \"cp775\",\n \"850\": \"cp850\",\n \"852\": \"cp852\",\n \"855\": \"cp855\",\n \"856\": \"cp856\",\n \"857\": \"cp857\",\n \"858\": \"cp858\",\n \"860\": \"cp860\",\n \"861\": \"cp861\",\n \"862\": \"cp862\",\n \"863\": \"cp863\",\n \"864\": \"cp864\",\n \"865\": \"cp865\",\n \"866\": \"cp866\",\n \"869\": \"cp869\",\n \"874\": \"windows874\",\n \"922\": \"cp922\",\n \"1046\": \"cp1046\",\n \"1124\": \"cp1124\",\n \"1125\": \"cp1125\",\n \"1129\": \"cp1129\",\n \"1133\": \"cp1133\",\n \"1161\": \"cp1161\",\n \"1162\": \"cp1162\",\n \"1163\": \"cp1163\",\n \"1250\": \"windows1250\",\n \"1251\": \"windows1251\",\n \"1252\": \"windows1252\",\n \"1253\": \"windows1253\",\n \"1254\": \"windows1254\",\n \"1255\": \"windows1255\",\n \"1256\": \"windows1256\",\n \"1257\": \"windows1257\",\n \"1258\": \"windows1258\",\n \"28591\": \"iso88591\",\n \"28592\": \"iso88592\",\n \"28593\": \"iso88593\",\n \"28594\": \"iso88594\",\n \"28595\": \"iso88595\",\n \"28596\": \"iso88596\",\n \"28597\": \"iso88597\",\n \"28598\": \"iso88598\",\n \"28599\": \"iso88599\",\n \"28600\": \"iso885910\",\n \"28601\": \"iso885911\",\n \"28603\": \"iso885913\",\n \"28604\": \"iso885914\",\n \"28605\": \"iso885915\",\n \"28606\": \"iso885916\",\n \"windows874\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\"\n },\n \"win874\": \"windows874\",\n \"cp874\": \"windows874\",\n \"windows1250\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙\"\n },\n \"win1250\": \"windows1250\",\n \"cp1250\": \"windows1250\",\n \"windows1251\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя\"\n },\n \"win1251\": \"windows1251\",\n \"cp1251\": \"windows1251\",\n \"windows1252\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n },\n \"win1252\": \"windows1252\",\n \"cp1252\": \"windows1252\",\n \"windows1253\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�\"\n },\n \"win1253\": \"windows1253\",\n \"cp1253\": \"windows1253\",\n \"windows1254\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ\"\n },\n \"win1254\": \"windows1254\",\n \"cp1254\": \"windows1254\",\n \"windows1255\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹֺֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�\"\n },\n \"win1255\": \"windows1255\",\n \"cp1255\": \"windows1255\",\n \"windows1256\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے\"\n },\n \"win1256\": \"windows1256\",\n \"cp1256\": \"windows1256\",\n \"windows1257\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙\"\n },\n \"win1257\": \"windows1257\",\n \"cp1257\": \"windows1257\",\n \"windows1258\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ\"\n },\n \"win1258\": \"windows1258\",\n \"cp1258\": \"windows1258\",\n \"iso88591\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n },\n \"cp28591\": \"iso88591\",\n \"iso88592\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ą˘Ł¤ĽŚ§¨ŠŞŤŹ­ŽŻ°ą˛ł´ľśˇ¸šşťź˝žżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙\"\n },\n \"cp28592\": \"iso88592\",\n \"iso88593\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ħ˘£¤�Ĥ§¨İŞĞĴ­�Ż°ħ²³´µĥ·¸ışğĵ½�żÀÁÂ�ÄĊĈÇÈÉÊËÌÍÎÏ�ÑÒÓÔĠÖ×ĜÙÚÛÜŬŜßàáâ�äċĉçèéêëìíîï�ñòóôġö÷ĝùúûüŭŝ˙\"\n },\n \"cp28593\": \"iso88593\",\n \"iso88594\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĸŖ¤ĨĻ§¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩļˇ¸šēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖ×ØŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙\"\n },\n \"cp28594\": \"iso88594\",\n \"iso88595\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ЁЂЃЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђѓєѕіїјљњћќ§ўџ\"\n },\n \"cp28595\": \"iso88595\",\n \"iso88596\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ���¤�������،­�������������؛���؟�ءآأؤإئابةتثجحخدذرزسشصضطظعغ�����ـفقكلمنهوىيًٌٍَُِّْ�������������\"\n },\n \"cp28596\": \"iso88596\",\n \"iso88597\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ‘’£€₯¦§¨©ͺ«¬­�―°±²³΄΅Ά·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�\"\n },\n \"cp28597\": \"iso88597\",\n \"iso88598\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ �¢£¤¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾��������������������������������‗אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�\"\n },\n \"cp28598\": \"iso88598\",\n \"iso88599\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ\"\n },\n \"cp28599\": \"iso88599\",\n \"iso885910\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĒĢĪĨĶ§ĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎÏÐŅŌÓÔÕÖŨØŲÚÛÜÝÞßāáâãäåæįčéęëėíîïðņōóôõöũøųúûüýþĸ\"\n },\n \"cp28600\": \"iso885910\",\n \"iso885911\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\"\n },\n \"cp28601\": \"iso885911\",\n \"iso885913\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’\"\n },\n \"cp28603\": \"iso885913\",\n \"iso885914\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ḃḃ£ĊċḊ§Ẁ©ẂḋỲ­®ŸḞḟĠġṀṁ¶ṖẁṗẃṠỳẄẅṡÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŴÑÒÓÔÕÖṪØÙÚÛÜÝŶßàáâãäåæçèéêëìíîïŵñòóôõöṫøùúûüýŷÿ\"\n },\n \"cp28604\": \"iso885914\",\n \"iso885915\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥Š§š©ª«¬­®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n },\n \"cp28605\": \"iso885915\",\n \"iso885916\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄąŁ€„Š§š©Ș«Ź­źŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ\"\n },\n \"cp28606\": \"iso885916\",\n \"cp437\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm437\": \"cp437\",\n \"csibm437\": \"cp437\",\n \"cp737\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ \"\n },\n \"ibm737\": \"cp737\",\n \"csibm737\": \"cp737\",\n \"cp775\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ĆüéāäģåćłēŖŗīŹÄÅÉæÆōöĢ¢ŚśÖÜø£ØפĀĪóŻżź”¦©®¬½¼Ł«»░▒▓│┤ĄČĘĖ╣║╗╝ĮŠ┐└┴┬├─┼ŲŪ╚╔╩╦╠═╬Žąčęėįšųūž┘┌█▄▌▐▀ÓßŌŃõÕµńĶķĻļņĒŅ’­±“¾¶§÷„°∙·¹³²■ \"\n },\n \"ibm775\": \"cp775\",\n \"csibm775\": \"cp775\",\n \"cp850\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ \"\n },\n \"ibm850\": \"cp850\",\n \"csibm850\": \"cp850\",\n \"cp852\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘ꬟Ⱥ«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ \"\n },\n \"ibm852\": \"cp852\",\n \"csibm852\": \"cp852\",\n \"cp855\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬¤лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№­ыЫзЗшШэЭщЩчЧ§■ \"\n },\n \"ibm855\": \"cp855\",\n \"csibm855\": \"cp855\",\n \"cp856\": {\n \"type\": \"_sbcs\",\n \"chars\": \"אבגדהוזחטיךכלםמןנסעףפץצקרשת�£�×����������®¬½¼�«»░▒▓│┤���©╣║╗╝¢¥┐└┴┬├─┼��╚╔╩╦╠═╬¤���������┘┌█▄¦�▀������µ�������¯´­±‗¾¶§÷¸°¨·¹³²■ \"\n },\n \"ibm856\": \"cp856\",\n \"csibm856\": \"cp856\",\n \"cp857\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞ𿮬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´­±�¾¶§÷¸°¨·¹³²■ \"\n },\n \"ibm857\": \"cp857\",\n \"csibm857\": \"cp857\",\n \"cp858\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈ€ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ \"\n },\n \"ibm858\": \"cp858\",\n \"csibm858\": \"cp858\",\n \"cp860\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâãàÁçêÊèÍÔìÃÂÉÀÈôõòÚùÌÕÜ¢£Ù₧ÓáíóúñѪº¿Ò¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm860\": \"cp860\",\n \"csibm860\": \"cp860\",\n \"cp861\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm861\": \"cp861\",\n \"csibm861\": \"cp861\",\n \"cp862\": {\n \"type\": \"_sbcs\",\n \"chars\": \"אבגדהוזחטיךכלםמןנסעףפץצקרשת¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm862\": \"cp862\",\n \"csibm862\": \"cp862\",\n \"cp863\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâÂà¶çêëèïî‗À§ÉÈÊôËÏûù¤ÔÜ¢£ÙÛƒ¦´óú¨¸³¯Î⌐¬½¼¾«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm863\": \"cp863\",\n \"csibm863\": \"cp863\",\n \"cp864\": {\n \"type\": \"_sbcs\",\n \"chars\": \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$٪&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~°·∙√▒─│┼┤┬├┴┐┌└┘β∞φ±½¼≈«»ﻷﻸ��ﻻﻼ� ­ﺂ£¤ﺄ��ﺎﺏﺕﺙ،ﺝﺡﺥ٠١٢٣٤٥٦٧٨٩ﻑ؛ﺱﺵﺹ؟¢ﺀﺁﺃﺅﻊﺋﺍﺑﺓﺗﺛﺟﺣﺧﺩﺫﺭﺯﺳﺷﺻﺿﻁﻅﻋﻏ¦¬÷×ﻉـﻓﻗﻛﻟﻣﻧﻫﻭﻯﻳﺽﻌﻎﻍﻡﹽّﻥﻩﻬﻰﻲﻐﻕﻵﻶﻝﻙﻱ■�\"\n },\n \"ibm864\": \"cp864\",\n \"csibm864\": \"cp864\",\n \"cp865\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm865\": \"cp865\",\n \"csibm865\": \"cp865\",\n \"cp866\": {\n \"type\": \"_sbcs\",\n \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ \"\n },\n \"ibm866\": \"cp866\",\n \"csibm866\": \"cp866\",\n \"cp869\": {\n \"type\": \"_sbcs\",\n \"chars\": \"������Ά�·¬¦‘’Έ―ΉΊΪΌ��ΎΫ©Ώ²³ά£έήίϊΐόύΑΒΓΔΕΖΗ½ΘΙ«»░▒▓│┤ΚΛΜΝ╣║╗╝ΞΟ┐└┴┬├─┼ΠΡ╚╔╩╦╠═╬ΣΤΥΦΧΨΩαβγ┘┌█▄δε▀ζηθικλμνξοπρσςτ΄­±υφχ§ψ΅°¨ωϋΰώ■ \"\n },\n \"ibm869\": \"cp869\",\n \"csibm869\": \"cp869\",\n \"cp922\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®‾°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŠÑÒÓÔÕÖ×ØÙÚÛÜÝŽßàáâãäåæçèéêëìíîïšñòóôõö÷øùúûüýžÿ\"\n },\n \"ibm922\": \"cp922\",\n \"csibm922\": \"cp922\",\n \"cp1046\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ﺈ×÷ﹱˆ■│─┐┌└┘ﹹﹻﹽﹿﹷﺊﻰﻳﻲﻎﻏﻐﻶﻸﻺﻼ ¤ﺋﺑﺗﺛﺟﺣ،­ﺧﺳ٠١٢٣٤٥٦٧٨٩ﺷ؛ﺻﺿﻊ؟ﻋءآأؤإئابةتثجحخدذرزسشصضطﻇعغﻌﺂﺄﺎﻓـفقكلمنهوىيًٌٍَُِّْﻗﻛﻟﻵﻷﻹﻻﻣﻧﻬﻩ�\"\n },\n \"ibm1046\": \"cp1046\",\n \"csibm1046\": \"cp1046\",\n \"cp1124\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ЁЂҐЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђґєѕіїјљњћќ§ўџ\"\n },\n \"ibm1124\": \"cp1124\",\n \"csibm1124\": \"cp1124\",\n \"cp1125\": {\n \"type\": \"_sbcs\",\n \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёҐґЄєІіЇї·√№¤■ \"\n },\n \"ibm1125\": \"cp1125\",\n \"csibm1125\": \"cp1125\",\n \"cp1129\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ\"\n },\n \"ibm1129\": \"cp1129\",\n \"csibm1129\": \"cp1129\",\n \"cp1133\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ���ຯະາຳິີຶືຸູຼັົຽ���ເແໂໃໄ່້໊໋໌ໍໆ�ໜໝ₭����������������໐໑໒໓໔໕໖໗໘໙��¢¬¦�\"\n },\n \"ibm1133\": \"cp1133\",\n \"csibm1133\": \"cp1133\",\n \"cp1161\": {\n \"type\": \"_sbcs\",\n \"chars\": \"��������������������������������่กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู้๊๋€฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛¢¬¦ \"\n },\n \"ibm1161\": \"cp1161\",\n \"csibm1161\": \"cp1161\",\n \"cp1162\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\"\n },\n \"ibm1162\": \"cp1162\",\n \"csibm1162\": \"cp1162\",\n \"cp1163\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ\"\n },\n \"ibm1163\": \"cp1163\",\n \"csibm1163\": \"cp1163\",\n \"maccroatian\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈Ć«Č… ÀÃÕŒœĐ—“”‘’÷◊�©⁄¤‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ\"\n },\n \"maccyrillic\": {\n \"type\": \"_sbcs\",\n \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤\"\n },\n \"macgreek\": {\n \"type\": \"_sbcs\",\n \"chars\": \"Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�\"\n },\n \"maciceland\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\"\n },\n \"macroman\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\"\n },\n \"macromania\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂŞ∞±≤≥¥µ∂∑∏π∫ªºΩăş¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›Ţţ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\"\n },\n \"macthai\": {\n \"type\": \"_sbcs\",\n \"chars\": \"«»…“”�•‘’� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู​–—฿เแโใไๅๆ็่้๊๋์ํ™๏๐๑๒๓๔๕๖๗๘๙®©����\"\n },\n \"macturkish\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ\"\n },\n \"macukraine\": {\n \"type\": \"_sbcs\",\n \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤\"\n },\n \"koi8r\": {\n \"type\": \"_sbcs\",\n \"chars\": \"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡Ё╢╣╤╥╦╧╨╩╪╫╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ\"\n },\n \"koi8u\": {\n \"type\": \"_sbcs\",\n \"chars\": \"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґ╝╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪Ґ╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ\"\n },\n \"koi8ru\": {\n \"type\": \"_sbcs\",\n \"chars\": \"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґў╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪ҐЎ©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ\"\n },\n \"koi8t\": {\n \"type\": \"_sbcs\",\n \"chars\": \"қғ‚Ғ„…†‡�‰ҳ‹ҲҷҶ�Қ‘’“”•–—�™�›�����ӯӮё¤ӣ¦§���«¬­®�°±²Ё�Ӣ¶·�№�»���©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ\"\n },\n \"armscii8\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ �և։)(»«—.՝,-֊…՜՛՞ԱաԲբԳգԴդԵեԶզԷէԸըԹթԺժԻիԼլԽխԾծԿկՀհՁձՂղՃճՄմՅյՆնՇշՈոՉչՊպՋջՌռՍսՎվՏտՐրՑցՒւՓփՔքՕօՖֆ՚�\"\n },\n \"rk1048\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ЂЃ‚ѓ„…†‡€‰Љ‹ЊҚҺЏђ‘’“”•–—�™љ›њқһџ ҰұӘ¤Ө¦§Ё©Ғ«¬­®Ү°±Ііөµ¶·ё№ғ»әҢңүАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя\"\n },\n \"tcvn\": {\n \"type\": \"_sbcs\",\n \"chars\": \"\\u0000ÚỤ\\u0003ỪỬỮ\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010ỨỰỲỶỸÝỴ\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÀẢÃÁẠẶẬÈẺẼÉẸỆÌỈĨÍỊÒỎÕÓỌỘỜỞỠỚỢÙỦŨ ĂÂÊÔƠƯĐăâêôơưđẶ̀̀̉̃́àảãáạẲằẳẵắẴẮẦẨẪẤỀặầẩẫấậèỂẻẽéẹềểễếệìỉỄẾỒĩíịòỔỏõóọồổỗốộờởỡớợùỖủũúụừửữứựỳỷỹýỵỐ\"\n },\n \"georgianacademy\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n },\n \"georgianps\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზჱთიკლმნჲოპჟრსტჳუფქღყშჩცძწჭხჴჯჰჵæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n },\n \"pt154\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ҖҒӮғ„…ҶҮҲүҠӢҢҚҺҸҗ‘’“”•–—ҳҷҡӣңқһҹ ЎўЈӨҘҰ§Ё©Ә«¬ӯ®Ҝ°ұІіҙө¶·ё№ә»јҪҫҝАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя\"\n },\n \"viscii\": {\n \"type\": \"_sbcs\",\n \"chars\": \"\\u0000\\u0001Ẳ\\u0003\\u0004ẴẪ\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013Ỷ\\u0015\\u0016\\u0017\\u0018Ỹ\\u001a\\u001b\\u001c\\u001dỴ\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ẠẮẰẶẤẦẨẬẼẸẾỀỂỄỆỐỒỔỖỘỢỚỜỞỊỎỌỈỦŨỤỲÕắằặấầẩậẽẹếềểễệốồổỗỠƠộờởịỰỨỪỬơớƯÀÁÂÃẢĂẳẵÈÉÊẺÌÍĨỳĐứÒÓÔạỷừửÙÚỹỵÝỡưàáâãảăữẫèéêẻìíĩỉđựòóôõỏọụùúũủýợỮ\"\n },\n \"iso646cn\": {\n \"type\": \"_sbcs\",\n \"chars\": \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������\"\n },\n \"iso646jp\": {\n \"type\": \"_sbcs\",\n \"chars\": \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[¥]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������\"\n },\n \"hproman8\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ÀÂÈÊËÎÏ´ˋˆ¨˜ÙÛ₤¯Ýý°ÇçÑñ¡¿¤£¥§ƒ¢âêôûáéóúàèòùäëöüÅîØÆåíøæÄìÖÜÉïßÔÁÃãÐðÍÌÓÒÕõŠšÚŸÿÞþ·µ¶¾—¼½ªº«■»±�\"\n },\n \"macintosh\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\"\n },\n \"ascii\": {\n \"type\": \"_sbcs\",\n \"chars\": \"��������������������������������������������������������������������������������������������������������������������������������\"\n },\n \"tis620\": {\n \"type\": \"_sbcs\",\n \"chars\": \"���������������������������������กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\"\n }\n}","\"use strict\";\n\n// Some environments don't have global Buffer (e.g. React Native).\n// Solution would be installing npm modules \"buffer\" and \"stream\" explicitly.\nvar Buffer = require(\"safer-buffer\").Buffer;\n\nvar bomHandling = require(\"./bom-handling\"),\n iconv = module.exports;\n\n// All codecs and aliases are kept here, keyed by encoding name/alias.\n// They are lazy loaded in `iconv.getCodec` from `encodings/index.js`.\niconv.encodings = null;\n\n// Characters emitted in case of error.\niconv.defaultCharUnicode = '�';\niconv.defaultCharSingleByte = '?';\n\n// Public API.\niconv.encode = function encode(str, encoding, options) {\n str = \"\" + (str || \"\"); // Ensure string.\n\n var encoder = iconv.getEncoder(encoding, options);\n\n var res = encoder.write(str);\n var trail = encoder.end();\n \n return (trail && trail.length > 0) ? Buffer.concat([res, trail]) : res;\n}\n\niconv.decode = function decode(buf, encoding, options) {\n if (typeof buf === 'string') {\n if (!iconv.skipDecodeWarning) {\n console.error('Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding');\n iconv.skipDecodeWarning = true;\n }\n\n buf = Buffer.from(\"\" + (buf || \"\"), \"binary\"); // Ensure buffer.\n }\n\n var decoder = iconv.getDecoder(encoding, options);\n\n var res = decoder.write(buf);\n var trail = decoder.end();\n\n return trail ? (res + trail) : res;\n}\n\niconv.encodingExists = function encodingExists(enc) {\n try {\n iconv.getCodec(enc);\n return true;\n } catch (e) {\n return false;\n }\n}\n\n// Legacy aliases to convert functions\niconv.toEncoding = iconv.encode;\niconv.fromEncoding = iconv.decode;\n\n// Search for a codec in iconv.encodings. Cache codec data in iconv._codecDataCache.\niconv._codecDataCache = {};\niconv.getCodec = function getCodec(encoding) {\n if (!iconv.encodings)\n iconv.encodings = require(\"../encodings\"); // Lazy load all encoding definitions.\n \n // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.\n var enc = iconv._canonicalizeEncoding(encoding);\n\n // Traverse iconv.encodings to find actual codec.\n var codecOptions = {};\n while (true) {\n var codec = iconv._codecDataCache[enc];\n if (codec)\n return codec;\n\n var codecDef = iconv.encodings[enc];\n\n switch (typeof codecDef) {\n case \"string\": // Direct alias to other encoding.\n enc = codecDef;\n break;\n\n case \"object\": // Alias with options. Can be layered.\n for (var key in codecDef)\n codecOptions[key] = codecDef[key];\n\n if (!codecOptions.encodingName)\n codecOptions.encodingName = enc;\n \n enc = codecDef.type;\n break;\n\n case \"function\": // Codec itself.\n if (!codecOptions.encodingName)\n codecOptions.encodingName = enc;\n\n // The codec function must load all tables and return object with .encoder and .decoder methods.\n // It'll be called only once (for each different options object).\n codec = new codecDef(codecOptions, iconv);\n\n iconv._codecDataCache[codecOptions.encodingName] = codec; // Save it to be reused later.\n return codec;\n\n default:\n throw new Error(\"Encoding not recognized: '\" + encoding + \"' (searched as: '\"+enc+\"')\");\n }\n }\n}\n\niconv._canonicalizeEncoding = function(encoding) {\n // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.\n return (''+encoding).toLowerCase().replace(/:\\d{4}$|[^0-9a-z]/g, \"\");\n}\n\niconv.getEncoder = function getEncoder(encoding, options) {\n var codec = iconv.getCodec(encoding),\n encoder = new codec.encoder(options, codec);\n\n if (codec.bomAware && options && options.addBOM)\n encoder = new bomHandling.PrependBOM(encoder, options);\n\n return encoder;\n}\n\niconv.getDecoder = function getDecoder(encoding, options) {\n var codec = iconv.getCodec(encoding),\n decoder = new codec.decoder(options, codec);\n\n if (codec.bomAware && !(options && options.stripBOM === false))\n decoder = new bomHandling.StripBOM(decoder, options);\n\n return decoder;\n}\n\n\n// Load extensions in Node. All of them are omitted in Browserify build via 'browser' field in package.json.\nvar nodeVer = typeof process !== 'undefined' && process.versions && process.versions.node;\nif (nodeVer) {\n\n // Load streaming support in Node v0.10+\n var nodeVerArr = nodeVer.split(\".\").map(Number);\n if (nodeVerArr[0] > 0 || nodeVerArr[1] >= 10) {\n require(\"./streams\")(iconv);\n }\n\n // Load Node primitive extensions.\n require(\"./extend-node\")(iconv);\n}\n\nif (\"Ā\" != \"\\u0100\") {\n console.error(\"iconv-lite warning: javascript files use encoding different from utf-8. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info.\");\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","\"use strict\";\nvar Buffer = require(\"safer-buffer\").Buffer;\n\n// Note: UTF16-LE (or UCS2) codec is Node.js native. See encodings/internal.js\n\n// == UTF16-BE codec. ==========================================================\n\nexports.utf16be = Utf16BECodec;\nfunction Utf16BECodec() {\n}\n\nUtf16BECodec.prototype.encoder = Utf16BEEncoder;\nUtf16BECodec.prototype.decoder = Utf16BEDecoder;\nUtf16BECodec.prototype.bomAware = true;\n\n\n// -- Encoding\n\nfunction Utf16BEEncoder() {\n}\n\nUtf16BEEncoder.prototype.write = function(str) {\n var buf = Buffer.from(str, 'ucs2');\n for (var i = 0; i < buf.length; i += 2) {\n var tmp = buf[i]; buf[i] = buf[i+1]; buf[i+1] = tmp;\n }\n return buf;\n}\n\nUtf16BEEncoder.prototype.end = function() {\n}\n\n\n// -- Decoding\n\nfunction Utf16BEDecoder() {\n this.overflowByte = -1;\n}\n\nUtf16BEDecoder.prototype.write = function(buf) {\n if (buf.length == 0)\n return '';\n\n var buf2 = Buffer.alloc(buf.length + 1),\n i = 0, j = 0;\n\n if (this.overflowByte !== -1) {\n buf2[0] = buf[0];\n buf2[1] = this.overflowByte;\n i = 1; j = 2;\n }\n\n for (; i < buf.length-1; i += 2, j+= 2) {\n buf2[j] = buf[i+1];\n buf2[j+1] = buf[i];\n }\n\n this.overflowByte = (i == buf.length-1) ? buf[buf.length-1] : -1;\n\n return buf2.slice(0, j).toString('ucs2');\n}\n\nUtf16BEDecoder.prototype.end = function() {\n}\n\n\n// == UTF-16 codec =============================================================\n// Decoder chooses automatically from UTF-16LE and UTF-16BE using BOM and space-based heuristic.\n// Defaults to UTF-16LE, as it's prevalent and default in Node.\n// http://en.wikipedia.org/wiki/UTF-16 and http://encoding.spec.whatwg.org/#utf-16le\n// Decoder default can be changed: iconv.decode(buf, 'utf16', {defaultEncoding: 'utf-16be'});\n\n// Encoder uses UTF-16LE and prepends BOM (which can be overridden with addBOM: false).\n\nexports.utf16 = Utf16Codec;\nfunction Utf16Codec(codecOptions, iconv) {\n this.iconv = iconv;\n}\n\nUtf16Codec.prototype.encoder = Utf16Encoder;\nUtf16Codec.prototype.decoder = Utf16Decoder;\n\n\n// -- Encoding (pass-through)\n\nfunction Utf16Encoder(options, codec) {\n options = options || {};\n if (options.addBOM === undefined)\n options.addBOM = true;\n this.encoder = codec.iconv.getEncoder('utf-16le', options);\n}\n\nUtf16Encoder.prototype.write = function(str) {\n return this.encoder.write(str);\n}\n\nUtf16Encoder.prototype.end = function() {\n return this.encoder.end();\n}\n\n\n// -- Decoding\n\nfunction Utf16Decoder(options, codec) {\n this.decoder = null;\n this.initialBytes = [];\n this.initialBytesLen = 0;\n\n this.options = options || {};\n this.iconv = codec.iconv;\n}\n\nUtf16Decoder.prototype.write = function(buf) {\n if (!this.decoder) {\n // Codec is not chosen yet. Accumulate initial bytes.\n this.initialBytes.push(buf);\n this.initialBytesLen += buf.length;\n \n if (this.initialBytesLen < 16) // We need more bytes to use space heuristic (see below)\n return '';\n\n // We have enough bytes -> detect endianness.\n var buf = Buffer.concat(this.initialBytes),\n encoding = detectEncoding(buf, this.options.defaultEncoding);\n this.decoder = this.iconv.getDecoder(encoding, this.options);\n this.initialBytes.length = this.initialBytesLen = 0;\n }\n\n return this.decoder.write(buf);\n}\n\nUtf16Decoder.prototype.end = function() {\n if (!this.decoder) {\n var buf = Buffer.concat(this.initialBytes),\n encoding = detectEncoding(buf, this.options.defaultEncoding);\n this.decoder = this.iconv.getDecoder(encoding, this.options);\n\n var res = this.decoder.write(buf),\n trail = this.decoder.end();\n\n return trail ? (res + trail) : res;\n }\n return this.decoder.end();\n}\n\nfunction detectEncoding(buf, defaultEncoding) {\n var enc = defaultEncoding || 'utf-16le';\n\n if (buf.length >= 2) {\n // Check BOM.\n if (buf[0] == 0xFE && buf[1] == 0xFF) // UTF-16BE BOM\n enc = 'utf-16be';\n else if (buf[0] == 0xFF && buf[1] == 0xFE) // UTF-16LE BOM\n enc = 'utf-16le';\n else {\n // No BOM found. Try to deduce encoding from initial content.\n // Most of the time, the content has ASCII chars (U+00**), but the opposite (U+**00) is uncommon.\n // So, we count ASCII as if it was LE or BE, and decide from that.\n var asciiCharsLE = 0, asciiCharsBE = 0, // Counts of chars in both positions\n _len = Math.min(buf.length - (buf.length % 2), 64); // Len is always even.\n\n for (var i = 0; i < _len; i += 2) {\n if (buf[i] === 0 && buf[i+1] !== 0) asciiCharsBE++;\n if (buf[i] !== 0 && buf[i+1] === 0) asciiCharsLE++;\n }\n\n if (asciiCharsBE > asciiCharsLE)\n enc = 'utf-16be';\n else if (asciiCharsBE < asciiCharsLE)\n enc = 'utf-16le';\n }\n }\n\n return enc;\n}\n\n\n","\"use strict\";\nvar Buffer = require(\"safer-buffer\").Buffer;\n\n// UTF-7 codec, according to https://tools.ietf.org/html/rfc2152\n// See also below a UTF-7-IMAP codec, according to http://tools.ietf.org/html/rfc3501#section-5.1.3\n\nexports.utf7 = Utf7Codec;\nexports.unicode11utf7 = 'utf7'; // Alias UNICODE-1-1-UTF-7\nfunction Utf7Codec(codecOptions, iconv) {\n this.iconv = iconv;\n};\n\nUtf7Codec.prototype.encoder = Utf7Encoder;\nUtf7Codec.prototype.decoder = Utf7Decoder;\nUtf7Codec.prototype.bomAware = true;\n\n\n// -- Encoding\n\nvar nonDirectChars = /[^A-Za-z0-9'\\(\\),-\\.\\/:\\? \\n\\r\\t]+/g;\n\nfunction Utf7Encoder(options, codec) {\n this.iconv = codec.iconv;\n}\n\nUtf7Encoder.prototype.write = function(str) {\n // Naive implementation.\n // Non-direct chars are encoded as \"+-\"; single \"+\" char is encoded as \"+-\".\n return Buffer.from(str.replace(nonDirectChars, function(chunk) {\n return \"+\" + (chunk === '+' ? '' : \n this.iconv.encode(chunk, 'utf16-be').toString('base64').replace(/=+$/, '')) \n + \"-\";\n }.bind(this)));\n}\n\nUtf7Encoder.prototype.end = function() {\n}\n\n\n// -- Decoding\n\nfunction Utf7Decoder(options, codec) {\n this.iconv = codec.iconv;\n this.inBase64 = false;\n this.base64Accum = '';\n}\n\nvar base64Regex = /[A-Za-z0-9\\/+]/;\nvar base64Chars = [];\nfor (var i = 0; i < 256; i++)\n base64Chars[i] = base64Regex.test(String.fromCharCode(i));\n\nvar plusChar = '+'.charCodeAt(0), \n minusChar = '-'.charCodeAt(0),\n andChar = '&'.charCodeAt(0);\n\nUtf7Decoder.prototype.write = function(buf) {\n var res = \"\", lastI = 0,\n inBase64 = this.inBase64,\n base64Accum = this.base64Accum;\n\n // The decoder is more involved as we must handle chunks in stream.\n\n for (var i = 0; i < buf.length; i++) {\n if (!inBase64) { // We're in direct mode.\n // Write direct chars until '+'\n if (buf[i] == plusChar) {\n res += this.iconv.decode(buf.slice(lastI, i), \"ascii\"); // Write direct chars.\n lastI = i+1;\n inBase64 = true;\n }\n } else { // We decode base64.\n if (!base64Chars[buf[i]]) { // Base64 ended.\n if (i == lastI && buf[i] == minusChar) {// \"+-\" -> \"+\"\n res += \"+\";\n } else {\n var b64str = base64Accum + buf.slice(lastI, i).toString();\n res += this.iconv.decode(Buffer.from(b64str, 'base64'), \"utf16-be\");\n }\n\n if (buf[i] != minusChar) // Minus is absorbed after base64.\n i--;\n\n lastI = i+1;\n inBase64 = false;\n base64Accum = '';\n }\n }\n }\n\n if (!inBase64) {\n res += this.iconv.decode(buf.slice(lastI), \"ascii\"); // Write direct chars.\n } else {\n var b64str = base64Accum + buf.slice(lastI).toString();\n\n var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.\n base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.\n b64str = b64str.slice(0, canBeDecoded);\n\n res += this.iconv.decode(Buffer.from(b64str, 'base64'), \"utf16-be\");\n }\n\n this.inBase64 = inBase64;\n this.base64Accum = base64Accum;\n\n return res;\n}\n\nUtf7Decoder.prototype.end = function() {\n var res = \"\";\n if (this.inBase64 && this.base64Accum.length > 0)\n res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), \"utf16-be\");\n\n this.inBase64 = false;\n this.base64Accum = '';\n return res;\n}\n\n\n// UTF-7-IMAP codec.\n// RFC3501 Sec. 5.1.3 Modified UTF-7 (http://tools.ietf.org/html/rfc3501#section-5.1.3)\n// Differences:\n// * Base64 part is started by \"&\" instead of \"+\"\n// * Direct characters are 0x20-0x7E, except \"&\" (0x26)\n// * In Base64, \",\" is used instead of \"/\"\n// * Base64 must not be used to represent direct characters.\n// * No implicit shift back from Base64 (should always end with '-')\n// * String must end in non-shifted position.\n// * \"-&\" while in base64 is not allowed.\n\n\nexports.utf7imap = Utf7IMAPCodec;\nfunction Utf7IMAPCodec(codecOptions, iconv) {\n this.iconv = iconv;\n};\n\nUtf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder;\nUtf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder;\nUtf7IMAPCodec.prototype.bomAware = true;\n\n\n// -- Encoding\n\nfunction Utf7IMAPEncoder(options, codec) {\n this.iconv = codec.iconv;\n this.inBase64 = false;\n this.base64Accum = Buffer.alloc(6);\n this.base64AccumIdx = 0;\n}\n\nUtf7IMAPEncoder.prototype.write = function(str) {\n var inBase64 = this.inBase64,\n base64Accum = this.base64Accum,\n base64AccumIdx = this.base64AccumIdx,\n buf = Buffer.alloc(str.length*5 + 10), bufIdx = 0;\n\n for (var i = 0; i < str.length; i++) {\n var uChar = str.charCodeAt(i);\n if (0x20 <= uChar && uChar <= 0x7E) { // Direct character or '&'.\n if (inBase64) {\n if (base64AccumIdx > 0) {\n bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString('base64').replace(/\\//g, ',').replace(/=+$/, ''), bufIdx);\n base64AccumIdx = 0;\n }\n\n buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.\n inBase64 = false;\n }\n\n if (!inBase64) {\n buf[bufIdx++] = uChar; // Write direct character\n\n if (uChar === andChar) // Ampersand -> '&-'\n buf[bufIdx++] = minusChar;\n }\n\n } else { // Non-direct character\n if (!inBase64) {\n buf[bufIdx++] = andChar; // Write '&', then go to base64 mode.\n inBase64 = true;\n }\n if (inBase64) {\n base64Accum[base64AccumIdx++] = uChar >> 8;\n base64Accum[base64AccumIdx++] = uChar & 0xFF;\n\n if (base64AccumIdx == base64Accum.length) {\n bufIdx += buf.write(base64Accum.toString('base64').replace(/\\//g, ','), bufIdx);\n base64AccumIdx = 0;\n }\n }\n }\n }\n\n this.inBase64 = inBase64;\n this.base64AccumIdx = base64AccumIdx;\n\n return buf.slice(0, bufIdx);\n}\n\nUtf7IMAPEncoder.prototype.end = function() {\n var buf = Buffer.alloc(10), bufIdx = 0;\n if (this.inBase64) {\n if (this.base64AccumIdx > 0) {\n bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString('base64').replace(/\\//g, ',').replace(/=+$/, ''), bufIdx);\n this.base64AccumIdx = 0;\n }\n\n buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.\n this.inBase64 = false;\n }\n\n return buf.slice(0, bufIdx);\n}\n\n\n// -- Decoding\n\nfunction Utf7IMAPDecoder(options, codec) {\n this.iconv = codec.iconv;\n this.inBase64 = false;\n this.base64Accum = '';\n}\n\nvar base64IMAPChars = base64Chars.slice();\nbase64IMAPChars[','.charCodeAt(0)] = true;\n\nUtf7IMAPDecoder.prototype.write = function(buf) {\n var res = \"\", lastI = 0,\n inBase64 = this.inBase64,\n base64Accum = this.base64Accum;\n\n // The decoder is more involved as we must handle chunks in stream.\n // It is forgiving, closer to standard UTF-7 (for example, '-' is optional at the end).\n\n for (var i = 0; i < buf.length; i++) {\n if (!inBase64) { // We're in direct mode.\n // Write direct chars until '&'\n if (buf[i] == andChar) {\n res += this.iconv.decode(buf.slice(lastI, i), \"ascii\"); // Write direct chars.\n lastI = i+1;\n inBase64 = true;\n }\n } else { // We decode base64.\n if (!base64IMAPChars[buf[i]]) { // Base64 ended.\n if (i == lastI && buf[i] == minusChar) { // \"&-\" -> \"&\"\n res += \"&\";\n } else {\n var b64str = base64Accum + buf.slice(lastI, i).toString().replace(/,/g, '/');\n res += this.iconv.decode(Buffer.from(b64str, 'base64'), \"utf16-be\");\n }\n\n if (buf[i] != minusChar) // Minus may be absorbed after base64.\n i--;\n\n lastI = i+1;\n inBase64 = false;\n base64Accum = '';\n }\n }\n }\n\n if (!inBase64) {\n res += this.iconv.decode(buf.slice(lastI), \"ascii\"); // Write direct chars.\n } else {\n var b64str = base64Accum + buf.slice(lastI).toString().replace(/,/g, '/');\n\n var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.\n base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.\n b64str = b64str.slice(0, canBeDecoded);\n\n res += this.iconv.decode(Buffer.from(b64str, 'base64'), \"utf16-be\");\n }\n\n this.inBase64 = inBase64;\n this.base64Accum = base64Accum;\n\n return res;\n}\n\nUtf7IMAPDecoder.prototype.end = function() {\n var res = \"\";\n if (this.inBase64 && this.base64Accum.length > 0)\n res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), \"utf16-be\");\n\n this.inBase64 = false;\n this.base64Accum = '';\n return res;\n}\n\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","\"use strict\";\n\n// Description of supported double byte encodings and aliases.\n// Tables are not require()-d until they are needed to speed up library load.\n// require()-s are direct to support Browserify.\n\nmodule.exports = {\n \n // == Japanese/ShiftJIS ====================================================\n // All japanese encodings are based on JIS X set of standards:\n // JIS X 0201 - Single-byte encoding of ASCII + ¥ + Kana chars at 0xA1-0xDF.\n // JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes. \n // Has several variations in 1978, 1983, 1990 and 1997.\n // JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead.\n // JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233.\n // 2 planes, first is superset of 0208, second - revised 0212.\n // Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx)\n\n // Byte encodings are:\n // * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte\n // encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC.\n // Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI.\n // * EUC-JP: Up to 3 bytes per character. Used mostly on *nixes.\n // 0x00-0x7F - lower part of 0201\n // 0x8E, 0xA1-0xDF - upper part of 0201\n // (0xA1-0xFE)x2 - 0208 plane (94x94).\n // 0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94).\n // * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon.\n // Used as-is in ISO2022 family.\n // * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII, \n // 0201-1976 Roman, 0208-1978, 0208-1983.\n // * ISO2022-JP-1: Adds esc seq for 0212-1990.\n // * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7.\n // * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2.\n // * ISO2022-JP-2004: Adds 0213-2004 Plane 1.\n //\n // After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes.\n //\n // Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html\n\n 'shiftjis': {\n type: '_dbcs',\n table: function() { return require('./tables/shiftjis.json') },\n encodeAdd: {'\\u00a5': 0x5C, '\\u203E': 0x7E},\n encodeSkipVals: [{from: 0xED40, to: 0xF940}],\n },\n 'csshiftjis': 'shiftjis',\n 'mskanji': 'shiftjis',\n 'sjis': 'shiftjis',\n 'windows31j': 'shiftjis',\n 'ms31j': 'shiftjis',\n 'xsjis': 'shiftjis',\n 'windows932': 'shiftjis',\n 'ms932': 'shiftjis',\n '932': 'shiftjis',\n 'cp932': 'shiftjis',\n\n 'eucjp': {\n type: '_dbcs',\n table: function() { return require('./tables/eucjp.json') },\n encodeAdd: {'\\u00a5': 0x5C, '\\u203E': 0x7E},\n },\n\n // TODO: KDDI extension to Shift_JIS\n // TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes.\n // TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars.\n\n\n // == Chinese/GBK ==========================================================\n // http://en.wikipedia.org/wiki/GBK\n // We mostly implement W3C recommendation: https://www.w3.org/TR/encoding/#gbk-encoder\n\n // Oldest GB2312 (1981, ~7600 chars) is a subset of CP936\n 'gb2312': 'cp936',\n 'gb231280': 'cp936',\n 'gb23121980': 'cp936',\n 'csgb2312': 'cp936',\n 'csiso58gb231280': 'cp936',\n 'euccn': 'cp936',\n\n // Microsoft's CP936 is a subset and approximation of GBK.\n 'windows936': 'cp936',\n 'ms936': 'cp936',\n '936': 'cp936',\n 'cp936': {\n type: '_dbcs',\n table: function() { return require('./tables/cp936.json') },\n },\n\n // GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other.\n 'gbk': {\n type: '_dbcs',\n table: function() { return require('./tables/cp936.json').concat(require('./tables/gbk-added.json')) },\n },\n 'xgbk': 'gbk',\n 'isoir58': 'gbk',\n\n // GB18030 is an algorithmic extension of GBK.\n // Main source: https://www.w3.org/TR/encoding/#gbk-encoder\n // http://icu-project.org/docs/papers/gb18030.html\n // http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml\n // http://www.khngai.com/chinese/charmap/tblgbk.php?page=0\n 'gb18030': {\n type: '_dbcs',\n table: function() { return require('./tables/cp936.json').concat(require('./tables/gbk-added.json')) },\n gb18030: function() { return require('./tables/gb18030-ranges.json') },\n encodeSkipVals: [0x80],\n encodeAdd: {'€': 0xA2E3},\n },\n\n 'chinese': 'gb18030',\n\n\n // == Korean ===============================================================\n // EUC-KR, KS_C_5601 and KS X 1001 are exactly the same.\n 'windows949': 'cp949',\n 'ms949': 'cp949',\n '949': 'cp949',\n 'cp949': {\n type: '_dbcs',\n table: function() { return require('./tables/cp949.json') },\n },\n\n 'cseuckr': 'cp949',\n 'csksc56011987': 'cp949',\n 'euckr': 'cp949',\n 'isoir149': 'cp949',\n 'korean': 'cp949',\n 'ksc56011987': 'cp949',\n 'ksc56011989': 'cp949',\n 'ksc5601': 'cp949',\n\n\n // == Big5/Taiwan/Hong Kong ================================================\n // There are lots of tables for Big5 and cp950. Please see the following links for history:\n // http://moztw.org/docs/big5/ http://www.haible.de/bruno/charsets/conversion-tables/Big5.html\n // Variations, in roughly number of defined chars:\n // * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT\n // * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/\n // * Big5-2003 (Taiwan standard) almost superset of cp950.\n // * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers.\n // * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard. \n // many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years.\n // Plus, it has 4 combining sequences.\n // Seems that Mozilla refused to support it for 10 yrs. https://bugzilla.mozilla.org/show_bug.cgi?id=162431 https://bugzilla.mozilla.org/show_bug.cgi?id=310299\n // because big5-hkscs is the only encoding to include astral characters in non-algorithmic way.\n // Implementations are not consistent within browsers; sometimes labeled as just big5.\n // MS Internet Explorer switches from big5 to big5-hkscs when a patch applied.\n // Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31\n // In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s.\n // Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt\n // http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt\n // \n // Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder\n // Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong.\n\n 'windows950': 'cp950',\n 'ms950': 'cp950',\n '950': 'cp950',\n 'cp950': {\n type: '_dbcs',\n table: function() { return require('./tables/cp950.json') },\n },\n\n // Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus.\n 'big5': 'big5hkscs',\n 'big5hkscs': {\n type: '_dbcs',\n table: function() { return require('./tables/cp950.json').concat(require('./tables/big5-added.json')) },\n encodeSkipVals: [0xa2cc],\n },\n\n 'cnbig5': 'big5hkscs',\n 'csbig5': 'big5hkscs',\n 'xxbig5': 'big5hkscs',\n};\n","\"use strict\";\nvar Buffer = require(\"safer-buffer\").Buffer;\n\n// Multibyte codec. In this scheme, a character is represented by 1 or more bytes.\n// Our codec supports UTF-16 surrogates, extensions for GB18030 and unicode sequences.\n// To save memory and loading time, we read table files only when requested.\n\nexports._dbcs = DBCSCodec;\n\nvar UNASSIGNED = -1,\n GB18030_CODE = -2,\n SEQ_START = -10,\n NODE_START = -1000,\n UNASSIGNED_NODE = new Array(0x100),\n DEF_CHAR = -1;\n\nfor (var i = 0; i < 0x100; i++)\n UNASSIGNED_NODE[i] = UNASSIGNED;\n\n\n// Class DBCSCodec reads and initializes mapping tables.\nfunction DBCSCodec(codecOptions, iconv) {\n this.encodingName = codecOptions.encodingName;\n if (!codecOptions)\n throw new Error(\"DBCS codec is called without the data.\")\n if (!codecOptions.table)\n throw new Error(\"Encoding '\" + this.encodingName + \"' has no data.\");\n\n // Load tables.\n var mappingTable = codecOptions.table();\n\n\n // Decode tables: MBCS -> Unicode.\n\n // decodeTables is a trie, encoded as an array of arrays of integers. Internal arrays are trie nodes and all have len = 256.\n // Trie root is decodeTables[0].\n // Values: >= 0 -> unicode character code. can be > 0xFFFF\n // == UNASSIGNED -> unknown/unassigned sequence.\n // == GB18030_CODE -> this is the end of a GB18030 4-byte sequence.\n // <= NODE_START -> index of the next node in our trie to process next byte.\n // <= SEQ_START -> index of the start of a character code sequence, in decodeTableSeq.\n this.decodeTables = [];\n this.decodeTables[0] = UNASSIGNED_NODE.slice(0); // Create root node.\n\n // Sometimes a MBCS char corresponds to a sequence of unicode chars. We store them as arrays of integers here. \n this.decodeTableSeq = [];\n\n // Actual mapping tables consist of chunks. Use them to fill up decode tables.\n for (var i = 0; i < mappingTable.length; i++)\n this._addDecodeChunk(mappingTable[i]);\n\n this.defaultCharUnicode = iconv.defaultCharUnicode;\n\n \n // Encode tables: Unicode -> DBCS.\n\n // `encodeTable` is array mapping from unicode char to encoded char. All its values are integers for performance.\n // Because it can be sparse, it is represented as array of buckets by 256 chars each. Bucket can be null.\n // Values: >= 0 -> it is a normal char. Write the value (if <=256 then 1 byte, if <=65536 then 2 bytes, etc.).\n // == UNASSIGNED -> no conversion found. Output a default char.\n // <= SEQ_START -> it's an index in encodeTableSeq, see below. The character starts a sequence.\n this.encodeTable = [];\n \n // `encodeTableSeq` is used when a sequence of unicode characters is encoded as a single code. We use a tree of\n // objects where keys correspond to characters in sequence and leafs are the encoded dbcs values. A special DEF_CHAR key\n // means end of sequence (needed when one sequence is a strict subsequence of another).\n // Objects are kept separately from encodeTable to increase performance.\n this.encodeTableSeq = [];\n\n // Some chars can be decoded, but need not be encoded.\n var skipEncodeChars = {};\n if (codecOptions.encodeSkipVals)\n for (var i = 0; i < codecOptions.encodeSkipVals.length; i++) {\n var val = codecOptions.encodeSkipVals[i];\n if (typeof val === 'number')\n skipEncodeChars[val] = true;\n else\n for (var j = val.from; j <= val.to; j++)\n skipEncodeChars[j] = true;\n }\n \n // Use decode trie to recursively fill out encode tables.\n this._fillEncodeTable(0, 0, skipEncodeChars);\n\n // Add more encoding pairs when needed.\n if (codecOptions.encodeAdd) {\n for (var uChar in codecOptions.encodeAdd)\n if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar))\n this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]);\n }\n\n this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)];\n if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]['?'];\n if (this.defCharSB === UNASSIGNED) this.defCharSB = \"?\".charCodeAt(0);\n\n\n // Load & create GB18030 tables when needed.\n if (typeof codecOptions.gb18030 === 'function') {\n this.gb18030 = codecOptions.gb18030(); // Load GB18030 ranges.\n\n // Add GB18030 decode tables.\n var thirdByteNodeIdx = this.decodeTables.length;\n var thirdByteNode = this.decodeTables[thirdByteNodeIdx] = UNASSIGNED_NODE.slice(0);\n\n var fourthByteNodeIdx = this.decodeTables.length;\n var fourthByteNode = this.decodeTables[fourthByteNodeIdx] = UNASSIGNED_NODE.slice(0);\n\n for (var i = 0x81; i <= 0xFE; i++) {\n var secondByteNodeIdx = NODE_START - this.decodeTables[0][i];\n var secondByteNode = this.decodeTables[secondByteNodeIdx];\n for (var j = 0x30; j <= 0x39; j++)\n secondByteNode[j] = NODE_START - thirdByteNodeIdx;\n }\n for (var i = 0x81; i <= 0xFE; i++)\n thirdByteNode[i] = NODE_START - fourthByteNodeIdx;\n for (var i = 0x30; i <= 0x39; i++)\n fourthByteNode[i] = GB18030_CODE\n } \n}\n\nDBCSCodec.prototype.encoder = DBCSEncoder;\nDBCSCodec.prototype.decoder = DBCSDecoder;\n\n// Decoder helpers\nDBCSCodec.prototype._getDecodeTrieNode = function(addr) {\n var bytes = [];\n for (; addr > 0; addr >>= 8)\n bytes.push(addr & 0xFF);\n if (bytes.length == 0)\n bytes.push(0);\n\n var node = this.decodeTables[0];\n for (var i = bytes.length-1; i > 0; i--) { // Traverse nodes deeper into the trie.\n var val = node[bytes[i]];\n\n if (val == UNASSIGNED) { // Create new node.\n node[bytes[i]] = NODE_START - this.decodeTables.length;\n this.decodeTables.push(node = UNASSIGNED_NODE.slice(0));\n }\n else if (val <= NODE_START) { // Existing node.\n node = this.decodeTables[NODE_START - val];\n }\n else\n throw new Error(\"Overwrite byte in \" + this.encodingName + \", addr: \" + addr.toString(16));\n }\n return node;\n}\n\n\nDBCSCodec.prototype._addDecodeChunk = function(chunk) {\n // First element of chunk is the hex mbcs code where we start.\n var curAddr = parseInt(chunk[0], 16);\n\n // Choose the decoding node where we'll write our chars.\n var writeTable = this._getDecodeTrieNode(curAddr);\n curAddr = curAddr & 0xFF;\n\n // Write all other elements of the chunk to the table.\n for (var k = 1; k < chunk.length; k++) {\n var part = chunk[k];\n if (typeof part === \"string\") { // String, write as-is.\n for (var l = 0; l < part.length;) {\n var code = part.charCodeAt(l++);\n if (0xD800 <= code && code < 0xDC00) { // Decode surrogate\n var codeTrail = part.charCodeAt(l++);\n if (0xDC00 <= codeTrail && codeTrail < 0xE000)\n writeTable[curAddr++] = 0x10000 + (code - 0xD800) * 0x400 + (codeTrail - 0xDC00);\n else\n throw new Error(\"Incorrect surrogate pair in \" + this.encodingName + \" at chunk \" + chunk[0]);\n }\n else if (0x0FF0 < code && code <= 0x0FFF) { // Character sequence (our own encoding used)\n var len = 0xFFF - code + 2;\n var seq = [];\n for (var m = 0; m < len; m++)\n seq.push(part.charCodeAt(l++)); // Simple variation: don't support surrogates or subsequences in seq.\n\n writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length;\n this.decodeTableSeq.push(seq);\n }\n else\n writeTable[curAddr++] = code; // Basic char\n }\n } \n else if (typeof part === \"number\") { // Integer, meaning increasing sequence starting with prev character.\n var charCode = writeTable[curAddr - 1] + 1;\n for (var l = 0; l < part; l++)\n writeTable[curAddr++] = charCode++;\n }\n else\n throw new Error(\"Incorrect type '\" + typeof part + \"' given in \" + this.encodingName + \" at chunk \" + chunk[0]);\n }\n if (curAddr > 0xFF)\n throw new Error(\"Incorrect chunk in \" + this.encodingName + \" at addr \" + chunk[0] + \": too long\" + curAddr);\n}\n\n// Encoder helpers\nDBCSCodec.prototype._getEncodeBucket = function(uCode) {\n var high = uCode >> 8; // This could be > 0xFF because of astral characters.\n if (this.encodeTable[high] === undefined)\n this.encodeTable[high] = UNASSIGNED_NODE.slice(0); // Create bucket on demand.\n return this.encodeTable[high];\n}\n\nDBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) {\n var bucket = this._getEncodeBucket(uCode);\n var low = uCode & 0xFF;\n if (bucket[low] <= SEQ_START)\n this.encodeTableSeq[SEQ_START-bucket[low]][DEF_CHAR] = dbcsCode; // There's already a sequence, set a single-char subsequence of it.\n else if (bucket[low] == UNASSIGNED)\n bucket[low] = dbcsCode;\n}\n\nDBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) {\n \n // Get the root of character tree according to first character of the sequence.\n var uCode = seq[0];\n var bucket = this._getEncodeBucket(uCode);\n var low = uCode & 0xFF;\n\n var node;\n if (bucket[low] <= SEQ_START) {\n // There's already a sequence with - use it.\n node = this.encodeTableSeq[SEQ_START-bucket[low]];\n }\n else {\n // There was no sequence object - allocate a new one.\n node = {};\n if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low]; // If a char was set before - make it a single-char subsequence.\n bucket[low] = SEQ_START - this.encodeTableSeq.length;\n this.encodeTableSeq.push(node);\n }\n\n // Traverse the character tree, allocating new nodes as needed.\n for (var j = 1; j < seq.length-1; j++) {\n var oldVal = node[uCode];\n if (typeof oldVal === 'object')\n node = oldVal;\n else {\n node = node[uCode] = {}\n if (oldVal !== undefined)\n node[DEF_CHAR] = oldVal\n }\n }\n\n // Set the leaf to given dbcsCode.\n uCode = seq[seq.length-1];\n node[uCode] = dbcsCode;\n}\n\nDBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) {\n var node = this.decodeTables[nodeIdx];\n for (var i = 0; i < 0x100; i++) {\n var uCode = node[i];\n var mbCode = prefix + i;\n if (skipEncodeChars[mbCode])\n continue;\n\n if (uCode >= 0)\n this._setEncodeChar(uCode, mbCode);\n else if (uCode <= NODE_START)\n this._fillEncodeTable(NODE_START - uCode, mbCode << 8, skipEncodeChars);\n else if (uCode <= SEQ_START)\n this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode);\n }\n}\n\n\n\n// == Encoder ==================================================================\n\nfunction DBCSEncoder(options, codec) {\n // Encoder state\n this.leadSurrogate = -1;\n this.seqObj = undefined;\n \n // Static data\n this.encodeTable = codec.encodeTable;\n this.encodeTableSeq = codec.encodeTableSeq;\n this.defaultCharSingleByte = codec.defCharSB;\n this.gb18030 = codec.gb18030;\n}\n\nDBCSEncoder.prototype.write = function(str) {\n var newBuf = Buffer.alloc(str.length * (this.gb18030 ? 4 : 3)),\n leadSurrogate = this.leadSurrogate,\n seqObj = this.seqObj, nextChar = -1,\n i = 0, j = 0;\n\n while (true) {\n // 0. Get next character.\n if (nextChar === -1) {\n if (i == str.length) break;\n var uCode = str.charCodeAt(i++);\n }\n else {\n var uCode = nextChar;\n nextChar = -1; \n }\n\n // 1. Handle surrogates.\n if (0xD800 <= uCode && uCode < 0xE000) { // Char is one of surrogates.\n if (uCode < 0xDC00) { // We've got lead surrogate.\n if (leadSurrogate === -1) {\n leadSurrogate = uCode;\n continue;\n } else {\n leadSurrogate = uCode;\n // Double lead surrogate found.\n uCode = UNASSIGNED;\n }\n } else { // We've got trail surrogate.\n if (leadSurrogate !== -1) {\n uCode = 0x10000 + (leadSurrogate - 0xD800) * 0x400 + (uCode - 0xDC00);\n leadSurrogate = -1;\n } else {\n // Incomplete surrogate pair - only trail surrogate found.\n uCode = UNASSIGNED;\n }\n \n }\n }\n else if (leadSurrogate !== -1) {\n // Incomplete surrogate pair - only lead surrogate found.\n nextChar = uCode; uCode = UNASSIGNED; // Write an error, then current char.\n leadSurrogate = -1;\n }\n\n // 2. Convert uCode character.\n var dbcsCode = UNASSIGNED;\n if (seqObj !== undefined && uCode != UNASSIGNED) { // We are in the middle of the sequence\n var resCode = seqObj[uCode];\n if (typeof resCode === 'object') { // Sequence continues.\n seqObj = resCode;\n continue;\n\n } else if (typeof resCode == 'number') { // Sequence finished. Write it.\n dbcsCode = resCode;\n\n } else if (resCode == undefined) { // Current character is not part of the sequence.\n\n // Try default character for this sequence\n resCode = seqObj[DEF_CHAR];\n if (resCode !== undefined) {\n dbcsCode = resCode; // Found. Write it.\n nextChar = uCode; // Current character will be written too in the next iteration.\n\n } else {\n // TODO: What if we have no default? (resCode == undefined)\n // Then, we should write first char of the sequence as-is and try the rest recursively.\n // Didn't do it for now because no encoding has this situation yet.\n // Currently, just skip the sequence and write current char.\n }\n }\n seqObj = undefined;\n }\n else if (uCode >= 0) { // Regular character\n var subtable = this.encodeTable[uCode >> 8];\n if (subtable !== undefined)\n dbcsCode = subtable[uCode & 0xFF];\n \n if (dbcsCode <= SEQ_START) { // Sequence start\n seqObj = this.encodeTableSeq[SEQ_START-dbcsCode];\n continue;\n }\n\n if (dbcsCode == UNASSIGNED && this.gb18030) {\n // Use GB18030 algorithm to find character(s) to write.\n var idx = findIdx(this.gb18030.uChars, uCode);\n if (idx != -1) {\n var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]);\n newBuf[j++] = 0x81 + Math.floor(dbcsCode / 12600); dbcsCode = dbcsCode % 12600;\n newBuf[j++] = 0x30 + Math.floor(dbcsCode / 1260); dbcsCode = dbcsCode % 1260;\n newBuf[j++] = 0x81 + Math.floor(dbcsCode / 10); dbcsCode = dbcsCode % 10;\n newBuf[j++] = 0x30 + dbcsCode;\n continue;\n }\n }\n }\n\n // 3. Write dbcsCode character.\n if (dbcsCode === UNASSIGNED)\n dbcsCode = this.defaultCharSingleByte;\n \n if (dbcsCode < 0x100) {\n newBuf[j++] = dbcsCode;\n }\n else if (dbcsCode < 0x10000) {\n newBuf[j++] = dbcsCode >> 8; // high byte\n newBuf[j++] = dbcsCode & 0xFF; // low byte\n }\n else {\n newBuf[j++] = dbcsCode >> 16;\n newBuf[j++] = (dbcsCode >> 8) & 0xFF;\n newBuf[j++] = dbcsCode & 0xFF;\n }\n }\n\n this.seqObj = seqObj;\n this.leadSurrogate = leadSurrogate;\n return newBuf.slice(0, j);\n}\n\nDBCSEncoder.prototype.end = function() {\n if (this.leadSurrogate === -1 && this.seqObj === undefined)\n return; // All clean. Most often case.\n\n var newBuf = Buffer.alloc(10), j = 0;\n\n if (this.seqObj) { // We're in the sequence.\n var dbcsCode = this.seqObj[DEF_CHAR];\n if (dbcsCode !== undefined) { // Write beginning of the sequence.\n if (dbcsCode < 0x100) {\n newBuf[j++] = dbcsCode;\n }\n else {\n newBuf[j++] = dbcsCode >> 8; // high byte\n newBuf[j++] = dbcsCode & 0xFF; // low byte\n }\n } else {\n // See todo above.\n }\n this.seqObj = undefined;\n }\n\n if (this.leadSurrogate !== -1) {\n // Incomplete surrogate pair - only lead surrogate found.\n newBuf[j++] = this.defaultCharSingleByte;\n this.leadSurrogate = -1;\n }\n \n return newBuf.slice(0, j);\n}\n\n// Export for testing\nDBCSEncoder.prototype.findIdx = findIdx;\n\n\n// == Decoder ==================================================================\n\nfunction DBCSDecoder(options, codec) {\n // Decoder state\n this.nodeIdx = 0;\n this.prevBuf = Buffer.alloc(0);\n\n // Static data\n this.decodeTables = codec.decodeTables;\n this.decodeTableSeq = codec.decodeTableSeq;\n this.defaultCharUnicode = codec.defaultCharUnicode;\n this.gb18030 = codec.gb18030;\n}\n\nDBCSDecoder.prototype.write = function(buf) {\n var newBuf = Buffer.alloc(buf.length*2),\n nodeIdx = this.nodeIdx, \n prevBuf = this.prevBuf, prevBufOffset = this.prevBuf.length,\n seqStart = -this.prevBuf.length, // idx of the start of current parsed sequence.\n uCode;\n\n if (prevBufOffset > 0) // Make prev buf overlap a little to make it easier to slice later.\n prevBuf = Buffer.concat([prevBuf, buf.slice(0, 10)]);\n \n for (var i = 0, j = 0; i < buf.length; i++) {\n var curByte = (i >= 0) ? buf[i] : prevBuf[i + prevBufOffset];\n\n // Lookup in current trie node.\n var uCode = this.decodeTables[nodeIdx][curByte];\n\n if (uCode >= 0) { \n // Normal character, just use it.\n }\n else if (uCode === UNASSIGNED) { // Unknown char.\n // TODO: Callback with seq.\n //var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset);\n i = seqStart; // Try to parse again, after skipping first byte of the sequence ('i' will be incremented by 'for' cycle).\n uCode = this.defaultCharUnicode.charCodeAt(0);\n }\n else if (uCode === GB18030_CODE) {\n var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset);\n var ptr = (curSeq[0]-0x81)*12600 + (curSeq[1]-0x30)*1260 + (curSeq[2]-0x81)*10 + (curSeq[3]-0x30);\n var idx = findIdx(this.gb18030.gbChars, ptr);\n uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx];\n }\n else if (uCode <= NODE_START) { // Go to next trie node.\n nodeIdx = NODE_START - uCode;\n continue;\n }\n else if (uCode <= SEQ_START) { // Output a sequence of chars.\n var seq = this.decodeTableSeq[SEQ_START - uCode];\n for (var k = 0; k < seq.length - 1; k++) {\n uCode = seq[k];\n newBuf[j++] = uCode & 0xFF;\n newBuf[j++] = uCode >> 8;\n }\n uCode = seq[seq.length-1];\n }\n else\n throw new Error(\"iconv-lite internal error: invalid decoding table value \" + uCode + \" at \" + nodeIdx + \"/\" + curByte);\n\n // Write the character to buffer, handling higher planes using surrogate pair.\n if (uCode > 0xFFFF) { \n uCode -= 0x10000;\n var uCodeLead = 0xD800 + Math.floor(uCode / 0x400);\n newBuf[j++] = uCodeLead & 0xFF;\n newBuf[j++] = uCodeLead >> 8;\n\n uCode = 0xDC00 + uCode % 0x400;\n }\n newBuf[j++] = uCode & 0xFF;\n newBuf[j++] = uCode >> 8;\n\n // Reset trie node.\n nodeIdx = 0; seqStart = i+1;\n }\n\n this.nodeIdx = nodeIdx;\n this.prevBuf = (seqStart >= 0) ? buf.slice(seqStart) : prevBuf.slice(seqStart + prevBufOffset);\n return newBuf.slice(0, j).toString('ucs2');\n}\n\nDBCSDecoder.prototype.end = function() {\n var ret = '';\n\n // Try to parse all remaining chars.\n while (this.prevBuf.length > 0) {\n // Skip 1 character in the buffer.\n ret += this.defaultCharUnicode;\n var buf = this.prevBuf.slice(1);\n\n // Parse remaining as usual.\n this.prevBuf = Buffer.alloc(0);\n this.nodeIdx = 0;\n if (buf.length > 0)\n ret += this.write(buf);\n }\n\n this.nodeIdx = 0;\n return ret;\n}\n\n// Binary search for GB18030. Returns largest i such that table[i] <= val.\nfunction findIdx(table, val) {\n if (table[0] > val)\n return -1;\n\n var l = 0, r = table.length;\n while (l < r-1) { // always table[l] <= val < table[r]\n var mid = l + Math.floor((r-l+1)/2);\n if (table[mid] <= val)\n l = mid;\n else\n r = mid;\n }\n return l;\n}\n\n","/* eslint-disable node/no-deprecated-api */\n\n'use strict'\n\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\nvar safer = {}\n\nvar key\n\nfor (key in buffer) {\n if (!buffer.hasOwnProperty(key)) continue\n if (key === 'SlowBuffer' || key === 'Buffer') continue\n safer[key] = buffer[key]\n}\n\nvar Safer = safer.Buffer = {}\nfor (key in Buffer) {\n if (!Buffer.hasOwnProperty(key)) continue\n if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue\n Safer[key] = Buffer[key]\n}\n\nsafer.Buffer.prototype = Buffer.prototype\n\nif (!Safer.from || Safer.from === Uint8Array.from) {\n Safer.from = function (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('The \"value\" argument must not be of type number. Received type ' + typeof value)\n }\n if (value && typeof value.length === 'undefined') {\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)\n }\n return Buffer(value, encodingOrOffset, length)\n }\n}\n\nif (!Safer.alloc) {\n Safer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('The \"size\" argument must be of type number. Received type ' + typeof size)\n }\n if (size < 0 || size >= 2 * (1 << 30)) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n var buf = Buffer(size)\n if (!fill || fill.length === 0) {\n buf.fill(0)\n } else if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n return buf\n }\n}\n\nif (!safer.kStringMaxLength) {\n try {\n safer.kStringMaxLength = process.binding('buffer').kStringMaxLength\n } catch (e) {\n // we can't determine kStringMaxLength in environments where process.binding\n // is unsupported, so let's not set it\n }\n}\n\nif (!safer.constants) {\n safer.constants = {\n MAX_LENGTH: safer.kMaxLength\n }\n if (safer.kStringMaxLength) {\n safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength\n }\n}\n\nmodule.exports = safer\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","\"use strict\";\n\n// Update this array if you add/rename/remove files in this directory.\n// We support Browserify by skipping automatic module discovery and requiring modules directly.\nvar modules = [\n require(\"./internal\"),\n require(\"./utf16\"),\n require(\"./utf7\"),\n require(\"./sbcs-codec\"),\n require(\"./sbcs-data\"),\n require(\"./sbcs-data-generated\"),\n require(\"./dbcs-codec\"),\n require(\"./dbcs-data\"),\n];\n\n// Put all encoding/alias/codec definitions to single object and export it. \nfor (var i = 0; i < modules.length; i++) {\n var module = modules[i];\n for (var enc in module)\n if (Object.prototype.hasOwnProperty.call(module, enc))\n exports[enc] = module[enc];\n}\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 * urlencode - lib/urlencode.js\n *\n * MIT Licensed\n *\n * Authors:\n * fengmk2 (http://fengmk2.com)\n */\n\n\"use strict\";\n\n/**\n * Module dependencies.\n */\n\nvar iconv = require('iconv-lite');\n\nfunction isUTF8(charset) {\n if (!charset) {\n return true;\n }\n charset = charset.toLowerCase();\n return charset === 'utf8' || charset === 'utf-8';\n}\n\nfunction encode(str, charset) {\n if (isUTF8(charset)) {\n return encodeURIComponent(str);\n }\n\n var buf = iconv.encode(str, charset);\n var encodeStr = '';\n var ch = '';\n for (var i = 0; i < buf.length; i++) {\n ch = buf[i].toString('16');\n if (ch.length === 1) {\n ch = '0' + ch;\n }\n encodeStr += '%' + ch;\n }\n encodeStr = encodeStr.toUpperCase();\n return encodeStr;\n}\n\nfunction decode(str, charset) {\n if (isUTF8(charset)) {\n return decodeURIComponent(str);\n }\n\n var bytes = [];\n for (var i = 0; i < str.length; ) {\n if (str[i] === '%') {\n i++;\n bytes.push(parseInt(str.substring(i, i + 2), 16));\n i += 2;\n } else {\n bytes.push(str.charCodeAt(i));\n i++;\n }\n }\n var buf = new Buffer(bytes);\n return iconv.decode(buf, charset);\n}\n\nfunction parse(qs, sep, eq, options) {\n if (typeof sep === 'object') {\n // parse(qs, options)\n options = sep;\n sep = null;\n }\n\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n var charset = null;\n if (options) {\n if (typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n if (typeof options.charset === 'string') {\n charset = options.charset;\n }\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20');\n var idx = x.indexOf(eq);\n var kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n if (kstr && kstr.indexOf('%') >= 0) {\n try {\n k = decode(kstr, charset);\n } catch (e) {\n k = kstr;\n }\n } else {\n k = kstr;\n }\n\n if (vstr && vstr.indexOf('%') >= 0) {\n try {\n v = decode(vstr, charset);\n } catch (e) {\n v = vstr;\n }\n } else {\n v = vstr;\n }\n\n if (!has(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n}\n\nfunction has(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nfunction isASCII(str) {\n return (/^[\\x00-\\x7F]*$/).test(str);\n}\n\nfunction encodeComponent(item, charset) {\n item = String(item);\n if (isASCII(item)) {\n item = encodeURIComponent(item);\n } else {\n item = encode(item, charset);\n }\n return item;\n}\n\nvar stringify = function(obj, prefix, options) {\n if (typeof prefix !== 'string') {\n options = prefix || {};\n prefix = null;\n }\n var charset = options.charset || 'utf-8';\n if (Array.isArray(obj)) {\n return stringifyArray(obj, prefix, options);\n } else if ('[object Object]' === {}.toString.call(obj)) {\n return stringifyObject(obj, prefix, options);\n } else if ('string' === typeof obj) {\n return stringifyString(obj, prefix, options);\n } else {\n return prefix + '=' + encodeComponent(String(obj), charset);\n }\n};\n\nfunction stringifyString(str, prefix, options) {\n if (!prefix) {\n throw new TypeError('stringify expects an object');\n }\n var charset = options.charset;\n return prefix + '=' + encodeComponent(str, charset);\n}\n\nfunction stringifyArray(arr, prefix, options) {\n var ret = [];\n if (!prefix) {\n throw new TypeError('stringify expects an object');\n }\n for (var i = 0; i < arr.length; i++) {\n ret.push(stringify(arr[i], prefix + '[' + i + ']', options));\n }\n return ret.join('&');\n}\n\nfunction stringifyObject(obj, prefix, options) {\n var ret = [];\n var keys = Object.keys(obj);\n var key;\n\n var charset = options.charset;\n for (var i = 0, len = keys.length; i < len; ++i) {\n key = keys[i];\n if ('' === key) {\n continue;\n }\n if (null === obj[key]) {\n ret.push(encode(key, charset) + '=');\n } else {\n ret.push(stringify(\n obj[key],\n prefix ? prefix + '[' + encodeComponent(key, charset) + ']': encodeComponent(key, charset),\n options));\n }\n }\n\n return ret.join('&');\n}\n\nmodule.exports = encode;\nmodule.exports.encode = encode;\nmodule.exports.decode = decode;\nmodule.exports.parse = parse;\nmodule.exports.stringify = stringify;\n","\"use strict\";\n\n// Manually added data to be used by sbcs codec in addition to generated one.\n\nmodule.exports = {\n // Not supported by iconv, not sure why.\n \"10029\": \"maccenteuro\",\n \"maccenteuro\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ\"\n },\n\n \"808\": \"cp808\",\n \"ibm808\": \"cp808\",\n \"cp808\": {\n \"type\": \"_sbcs\",\n \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№€■ \"\n },\n\n \"mik\": {\n \"type\": \"_sbcs\",\n \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя└┴┬├─┼╣║╚╔╩╦╠═╬┐░▒▓│┤№§╗╝┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n\n // Aliases of generated encodings.\n \"ascii8bit\": \"ascii\",\n \"usascii\": \"ascii\",\n \"ansix34\": \"ascii\",\n \"ansix341968\": \"ascii\",\n \"ansix341986\": \"ascii\",\n \"csascii\": \"ascii\",\n \"cp367\": \"ascii\",\n \"ibm367\": \"ascii\",\n \"isoir6\": \"ascii\",\n \"iso646us\": \"ascii\",\n \"iso646irv\": \"ascii\",\n \"us\": \"ascii\",\n\n \"latin1\": \"iso88591\",\n \"latin2\": \"iso88592\",\n \"latin3\": \"iso88593\",\n \"latin4\": \"iso88594\",\n \"latin5\": \"iso88599\",\n \"latin6\": \"iso885910\",\n \"latin7\": \"iso885913\",\n \"latin8\": \"iso885914\",\n \"latin9\": \"iso885915\",\n \"latin10\": \"iso885916\",\n\n \"csisolatin1\": \"iso88591\",\n \"csisolatin2\": \"iso88592\",\n \"csisolatin3\": \"iso88593\",\n \"csisolatin4\": \"iso88594\",\n \"csisolatincyrillic\": \"iso88595\",\n \"csisolatinarabic\": \"iso88596\",\n \"csisolatingreek\" : \"iso88597\",\n \"csisolatinhebrew\": \"iso88598\",\n \"csisolatin5\": \"iso88599\",\n \"csisolatin6\": \"iso885910\",\n\n \"l1\": \"iso88591\",\n \"l2\": \"iso88592\",\n \"l3\": \"iso88593\",\n \"l4\": \"iso88594\",\n \"l5\": \"iso88599\",\n \"l6\": \"iso885910\",\n \"l7\": \"iso885913\",\n \"l8\": \"iso885914\",\n \"l9\": \"iso885915\",\n \"l10\": \"iso885916\",\n\n \"isoir14\": \"iso646jp\",\n \"isoir57\": \"iso646cn\",\n \"isoir100\": \"iso88591\",\n \"isoir101\": \"iso88592\",\n \"isoir109\": \"iso88593\",\n \"isoir110\": \"iso88594\",\n \"isoir144\": \"iso88595\",\n \"isoir127\": \"iso88596\",\n \"isoir126\": \"iso88597\",\n \"isoir138\": \"iso88598\",\n \"isoir148\": \"iso88599\",\n \"isoir157\": \"iso885910\",\n \"isoir166\": \"tis620\",\n \"isoir179\": \"iso885913\",\n \"isoir199\": \"iso885914\",\n \"isoir203\": \"iso885915\",\n \"isoir226\": \"iso885916\",\n\n \"cp819\": \"iso88591\",\n \"ibm819\": \"iso88591\",\n\n \"cyrillic\": \"iso88595\",\n\n \"arabic\": \"iso88596\",\n \"arabic8\": \"iso88596\",\n \"ecma114\": \"iso88596\",\n \"asmo708\": \"iso88596\",\n\n \"greek\" : \"iso88597\",\n \"greek8\" : \"iso88597\",\n \"ecma118\" : \"iso88597\",\n \"elot928\" : \"iso88597\",\n\n \"hebrew\": \"iso88598\",\n \"hebrew8\": \"iso88598\",\n\n \"turkish\": \"iso88599\",\n \"turkish8\": \"iso88599\",\n\n \"thai\": \"iso885911\",\n \"thai8\": \"iso885911\",\n\n \"celtic\": \"iso885914\",\n \"celtic8\": \"iso885914\",\n \"isoceltic\": \"iso885914\",\n\n \"tis6200\": \"tis620\",\n \"tis62025291\": \"tis620\",\n \"tis62025330\": \"tis620\",\n\n \"10000\": \"macroman\",\n \"10006\": \"macgreek\",\n \"10007\": \"maccyrillic\",\n \"10079\": \"maciceland\",\n \"10081\": \"macturkish\",\n\n \"cspc8codepage437\": \"cp437\",\n \"cspc775baltic\": \"cp775\",\n \"cspc850multilingual\": \"cp850\",\n \"cspcp852\": \"cp852\",\n \"cspc862latinhebrew\": \"cp862\",\n \"cpgr\": \"cp869\",\n\n \"msee\": \"cp1250\",\n \"mscyrl\": \"cp1251\",\n \"msansi\": \"cp1252\",\n \"msgreek\": \"cp1253\",\n \"msturk\": \"cp1254\",\n \"mshebr\": \"cp1255\",\n \"msarab\": \"cp1256\",\n \"winbaltrim\": \"cp1257\",\n\n \"cp20866\": \"koi8r\",\n \"20866\": \"koi8r\",\n \"ibm878\": \"koi8r\",\n \"cskoi8r\": \"koi8r\",\n\n \"cp21866\": \"koi8u\",\n \"21866\": \"koi8u\",\n \"ibm1168\": \"koi8u\",\n\n \"strk10482002\": \"rk1048\",\n\n \"tcvn5712\": \"tcvn\",\n \"tcvn57121\": \"tcvn\",\n\n \"gb198880\": \"iso646cn\",\n \"cn\": \"iso646cn\",\n\n \"csiso14jisc6220ro\": \"iso646jp\",\n \"jisc62201969ro\": \"iso646jp\",\n \"jp\": \"iso646jp\",\n\n \"cshproman8\": \"hproman8\",\n \"r8\": \"hproman8\",\n \"roman8\": \"hproman8\",\n \"xroman8\": \"hproman8\",\n \"ibm1051\": \"hproman8\",\n\n \"mac\": \"macintosh\",\n \"csmacintosh\": \"macintosh\",\n};\n\n","\"use strict\";\nvar Buffer = require(\"safer-buffer\").Buffer;\n\n// Single-byte codec. Needs a 'chars' string parameter that contains 256 or 128 chars that\n// correspond to encoded bytes (if 128 - then lower half is ASCII). \n\nexports._sbcs = SBCSCodec;\nfunction SBCSCodec(codecOptions, iconv) {\n if (!codecOptions)\n throw new Error(\"SBCS codec is called without the data.\")\n \n // Prepare char buffer for decoding.\n if (!codecOptions.chars || (codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256))\n throw new Error(\"Encoding '\"+codecOptions.type+\"' has incorrect 'chars' (must be of len 128 or 256)\");\n \n if (codecOptions.chars.length === 128) {\n var asciiString = \"\";\n for (var i = 0; i < 128; i++)\n asciiString += String.fromCharCode(i);\n codecOptions.chars = asciiString + codecOptions.chars;\n }\n\n this.decodeBuf = Buffer.from(codecOptions.chars, 'ucs2');\n \n // Encoding buffer.\n var encodeBuf = Buffer.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0));\n\n for (var i = 0; i < codecOptions.chars.length; i++)\n encodeBuf[codecOptions.chars.charCodeAt(i)] = i;\n\n this.encodeBuf = encodeBuf;\n}\n\nSBCSCodec.prototype.encoder = SBCSEncoder;\nSBCSCodec.prototype.decoder = SBCSDecoder;\n\n\nfunction SBCSEncoder(options, codec) {\n this.encodeBuf = codec.encodeBuf;\n}\n\nSBCSEncoder.prototype.write = function(str) {\n var buf = Buffer.alloc(str.length);\n for (var i = 0; i < str.length; i++)\n buf[i] = this.encodeBuf[str.charCodeAt(i)];\n \n return buf;\n}\n\nSBCSEncoder.prototype.end = function() {\n}\n\n\nfunction SBCSDecoder(options, codec) {\n this.decodeBuf = codec.decodeBuf;\n}\n\nSBCSDecoder.prototype.write = function(buf) {\n // Strings are immutable in JS -> we use ucs2 buffer to speed up computations.\n var decodeBuf = this.decodeBuf;\n var newBuf = Buffer.alloc(buf.length*2);\n var idx1 = 0, idx2 = 0;\n for (var i = 0; i < buf.length; i++) {\n idx1 = buf[i]*2; idx2 = i*2;\n newBuf[idx2] = decodeBuf[idx1];\n newBuf[idx2+1] = decodeBuf[idx1+1];\n }\n return newBuf.toString('ucs2');\n}\n\nSBCSDecoder.prototype.end = function() {\n}\n"],"sourceRoot":""}