Created
September 24, 2022 18:01
-
-
Save samuelcolvin/824b7fe45b0cb36ffdfd7db7a3d4ce87 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require=(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){ | |
"use strict"; | |
var __importDefault = (this && this.__importDefault) || function (mod) { | |
return (mod && mod.__esModule) ? mod : { "default": mod }; | |
}; | |
Object.defineProperty(exports, "__esModule", { value: true }); | |
exports.decodeHTML = exports.decodeHTMLStrict = exports.decodeXML = void 0; | |
var entities_json_1 = __importDefault(require("./maps/entities.json")); | |
var legacy_json_1 = __importDefault(require("./maps/legacy.json")); | |
var xml_json_1 = __importDefault(require("./maps/xml.json")); | |
var decode_codepoint_1 = __importDefault(require("./decode_codepoint")); | |
var strictEntityRe = /&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g; | |
exports.decodeXML = getStrictDecoder(xml_json_1.default); | |
exports.decodeHTMLStrict = getStrictDecoder(entities_json_1.default); | |
function getStrictDecoder(map) { | |
var replace = getReplacer(map); | |
return function (str) { return String(str).replace(strictEntityRe, replace); }; | |
} | |
var sorter = function (a, b) { return (a < b ? 1 : -1); }; | |
exports.decodeHTML = (function () { | |
var legacy = Object.keys(legacy_json_1.default).sort(sorter); | |
var keys = Object.keys(entities_json_1.default).sort(sorter); | |
for (var i = 0, j = 0; i < keys.length; i++) { | |
if (legacy[j] === keys[i]) { | |
keys[i] += ";?"; | |
j++; | |
} | |
else { | |
keys[i] += ";"; | |
} | |
} | |
var re = new RegExp("&(?:" + keys.join("|") + "|#[xX][\\da-fA-F]+;?|#\\d+;?)", "g"); | |
var replace = getReplacer(entities_json_1.default); | |
function replacer(str) { | |
if (str.substr(-1) !== ";") | |
str += ";"; | |
return replace(str); | |
} | |
// TODO consider creating a merged map | |
return function (str) { return String(str).replace(re, replacer); }; | |
})(); | |
function getReplacer(map) { | |
return function replace(str) { | |
if (str.charAt(1) === "#") { | |
var secondChar = str.charAt(2); | |
if (secondChar === "X" || secondChar === "x") { | |
return decode_codepoint_1.default(parseInt(str.substr(3), 16)); | |
} | |
return decode_codepoint_1.default(parseInt(str.substr(2), 10)); | |
} | |
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing | |
return map[str.slice(1, -1)] || str; | |
}; | |
} | |
},{"./decode_codepoint":2,"./maps/entities.json":6,"./maps/legacy.json":7,"./maps/xml.json":8}],2:[function(require,module,exports){ | |
"use strict"; | |
var __importDefault = (this && this.__importDefault) || function (mod) { | |
return (mod && mod.__esModule) ? mod : { "default": mod }; | |
}; | |
Object.defineProperty(exports, "__esModule", { value: true }); | |
var decode_json_1 = __importDefault(require("./maps/decode.json")); | |
// Adapted from https://github.com/mathiasbynens/he/blob/master/src/he.js#L94-L119 | |
var fromCodePoint = | |
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition | |
String.fromCodePoint || | |
function (codePoint) { | |
var output = ""; | |
if (codePoint > 0xffff) { | |
codePoint -= 0x10000; | |
output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800); | |
codePoint = 0xdc00 | (codePoint & 0x3ff); | |
} | |
output += String.fromCharCode(codePoint); | |
return output; | |
}; | |
function decodeCodePoint(codePoint) { | |
if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) { | |
return "\uFFFD"; | |
} | |
if (codePoint in decode_json_1.default) { | |
codePoint = decode_json_1.default[codePoint]; | |
} | |
return fromCodePoint(codePoint); | |
} | |
exports.default = decodeCodePoint; | |
},{"./maps/decode.json":5}],3:[function(require,module,exports){ | |
"use strict"; | |
var __importDefault = (this && this.__importDefault) || function (mod) { | |
return (mod && mod.__esModule) ? mod : { "default": mod }; | |
}; | |
Object.defineProperty(exports, "__esModule", { value: true }); | |
exports.escapeUTF8 = exports.escape = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.encodeXML = void 0; | |
var xml_json_1 = __importDefault(require("./maps/xml.json")); | |
var inverseXML = getInverseObj(xml_json_1.default); | |
var xmlReplacer = getInverseReplacer(inverseXML); | |
/** | |
* Encodes all non-ASCII characters, as well as characters not valid in XML | |
* documents using XML entities. | |
* | |
* If a character has no equivalent entity, a | |
* numeric hexadecimal reference (eg. `ü`) will be used. | |
*/ | |
exports.encodeXML = getASCIIEncoder(inverseXML); | |
var entities_json_1 = __importDefault(require("./maps/entities.json")); | |
var inverseHTML = getInverseObj(entities_json_1.default); | |
var htmlReplacer = getInverseReplacer(inverseHTML); | |
/** | |
* Encodes all entities and non-ASCII characters in the input. | |
* | |
* This includes characters that are valid ASCII characters in HTML documents. | |
* For example `#` will be encoded as `#`. To get a more compact output, | |
* consider using the `encodeNonAsciiHTML` function. | |
* | |
* If a character has no equivalent entity, a | |
* numeric hexadecimal reference (eg. `ü`) will be used. | |
*/ | |
exports.encodeHTML = getInverse(inverseHTML, htmlReplacer); | |
/** | |
* Encodes all non-ASCII characters, as well as characters not valid in HTML | |
* documents using HTML entities. | |
* | |
* If a character has no equivalent entity, a | |
* numeric hexadecimal reference (eg. `ü`) will be used. | |
*/ | |
exports.encodeNonAsciiHTML = getASCIIEncoder(inverseHTML); | |
function getInverseObj(obj) { | |
return Object.keys(obj) | |
.sort() | |
.reduce(function (inverse, name) { | |
inverse[obj[name]] = "&" + name + ";"; | |
return inverse; | |
}, {}); | |
} | |
function getInverseReplacer(inverse) { | |
var single = []; | |
var multiple = []; | |
for (var _i = 0, _a = Object.keys(inverse); _i < _a.length; _i++) { | |
var k = _a[_i]; | |
if (k.length === 1) { | |
// Add value to single array | |
single.push("\\" + k); | |
} | |
else { | |
// Add value to multiple array | |
multiple.push(k); | |
} | |
} | |
// Add ranges to single characters. | |
single.sort(); | |
for (var start = 0; start < single.length - 1; start++) { | |
// Find the end of a run of characters | |
var end = start; | |
while (end < single.length - 1 && | |
single[end].charCodeAt(1) + 1 === single[end + 1].charCodeAt(1)) { | |
end += 1; | |
} | |
var count = 1 + end - start; | |
// We want to replace at least three characters | |
if (count < 3) | |
continue; | |
single.splice(start, count, single[start] + "-" + single[end]); | |
} | |
multiple.unshift("[" + single.join("") + "]"); | |
return new RegExp(multiple.join("|"), "g"); | |
} | |
// /[^\0-\x7F]/gu | |
var reNonASCII = /(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g; | |
var getCodePoint = | |
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition | |
String.prototype.codePointAt != null | |
? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion | |
function (str) { return str.codePointAt(0); } | |
: // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae | |
function (c) { | |
return (c.charCodeAt(0) - 0xd800) * 0x400 + | |
c.charCodeAt(1) - | |
0xdc00 + | |
0x10000; | |
}; | |
function singleCharReplacer(c) { | |
return "&#x" + (c.length > 1 ? getCodePoint(c) : c.charCodeAt(0)) | |
.toString(16) | |
.toUpperCase() + ";"; | |
} | |
function getInverse(inverse, re) { | |
return function (data) { | |
return data | |
.replace(re, function (name) { return inverse[name]; }) | |
.replace(reNonASCII, singleCharReplacer); | |
}; | |
} | |
var reEscapeChars = new RegExp(xmlReplacer.source + "|" + reNonASCII.source, "g"); | |
/** | |
* Encodes all non-ASCII characters, as well as characters not valid in XML | |
* documents using numeric hexadecimal reference (eg. `ü`). | |
* | |
* Have a look at `escapeUTF8` if you want a more concise output at the expense | |
* of reduced transportability. | |
* | |
* @param data String to escape. | |
*/ | |
function escape(data) { | |
return data.replace(reEscapeChars, singleCharReplacer); | |
} | |
exports.escape = escape; | |
/** | |
* Encodes all characters not valid in XML documents using numeric hexadecimal | |
* reference (eg. `ü`). | |
* | |
* Note that the output will be character-set dependent. | |
* | |
* @param data String to escape. | |
*/ | |
function escapeUTF8(data) { | |
return data.replace(xmlReplacer, singleCharReplacer); | |
} | |
exports.escapeUTF8 = escapeUTF8; | |
function getASCIIEncoder(obj) { | |
return function (data) { | |
return data.replace(reEscapeChars, function (c) { return obj[c] || singleCharReplacer(c); }); | |
}; | |
} | |
},{"./maps/entities.json":6,"./maps/xml.json":8}],4:[function(require,module,exports){ | |
"use strict"; | |
Object.defineProperty(exports, "__esModule", { value: true }); | |
exports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.encodeHTML5 = exports.encodeHTML4 = exports.escapeUTF8 = exports.escape = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = void 0; | |
var decode_1 = require("./decode"); | |
var encode_1 = require("./encode"); | |
/** | |
* Decodes a string with entities. | |
* | |
* @param data String to decode. | |
* @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0. | |
* @deprecated Use `decodeXML` or `decodeHTML` directly. | |
*/ | |
function decode(data, level) { | |
return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTML)(data); | |
} | |
exports.decode = decode; | |
/** | |
* Decodes a string with entities. Does not allow missing trailing semicolons for entities. | |
* | |
* @param data String to decode. | |
* @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0. | |
* @deprecated Use `decodeHTMLStrict` or `decodeXML` directly. | |
*/ | |
function decodeStrict(data, level) { | |
return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTMLStrict)(data); | |
} | |
exports.decodeStrict = decodeStrict; | |
/** | |
* Encodes a string with entities. | |
* | |
* @param data String to encode. | |
* @param level Optional level to encode at. 0 = XML, 1 = HTML. Default is 0. | |
* @deprecated Use `encodeHTML`, `encodeXML` or `encodeNonAsciiHTML` directly. | |
*/ | |
function encode(data, level) { | |
return (!level || level <= 0 ? encode_1.encodeXML : encode_1.encodeHTML)(data); | |
} | |
exports.encode = encode; | |
var encode_2 = require("./encode"); | |
Object.defineProperty(exports, "encodeXML", { enumerable: true, get: function () { return encode_2.encodeXML; } }); | |
Object.defineProperty(exports, "encodeHTML", { enumerable: true, get: function () { return encode_2.encodeHTML; } }); | |
Object.defineProperty(exports, "encodeNonAsciiHTML", { enumerable: true, get: function () { return encode_2.encodeNonAsciiHTML; } }); | |
Object.defineProperty(exports, "escape", { enumerable: true, get: function () { return encode_2.escape; } }); | |
Object.defineProperty(exports, "escapeUTF8", { enumerable: true, get: function () { return encode_2.escapeUTF8; } }); | |
// Legacy aliases (deprecated) | |
Object.defineProperty(exports, "encodeHTML4", { enumerable: true, get: function () { return encode_2.encodeHTML; } }); | |
Object.defineProperty(exports, "encodeHTML5", { enumerable: true, get: function () { return encode_2.encodeHTML; } }); | |
var decode_2 = require("./decode"); | |
Object.defineProperty(exports, "decodeXML", { enumerable: true, get: function () { return decode_2.decodeXML; } }); | |
Object.defineProperty(exports, "decodeHTML", { enumerable: true, get: function () { return decode_2.decodeHTML; } }); | |
Object.defineProperty(exports, "decodeHTMLStrict", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } }); | |
// Legacy aliases (deprecated) | |
Object.defineProperty(exports, "decodeHTML4", { enumerable: true, get: function () { return decode_2.decodeHTML; } }); | |
Object.defineProperty(exports, "decodeHTML5", { enumerable: true, get: function () { return decode_2.decodeHTML; } }); | |
Object.defineProperty(exports, "decodeHTML4Strict", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } }); | |
Object.defineProperty(exports, "decodeHTML5Strict", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } }); | |
Object.defineProperty(exports, "decodeXMLStrict", { enumerable: true, get: function () { return decode_2.decodeXML; } }); | |
},{"./decode":1,"./encode":3}],5:[function(require,module,exports){ | |
module.exports={"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376} | |
},{}],6:[function(require,module,exports){ | |
module.exports={"Aacute":"Ã","aacute":"á","Abreve":"Ä‚","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"Ð","acy":"а","AElig":"Æ","aelig":"æ","af":"â¡","Afr":"ð”„","afr":"ð”ž","Agrave":"À","agrave":"à ","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ä€","amacr":"Ä","amalg":"⨿","amp":"&","AMP":"&","andand":"â©•","And":"â©“","and":"∧","andd":"â©œ","andslope":"⩘","andv":"â©š","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"â¦","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"â¦","angsph":"∢","angst":"Ã…","angzarr":"â¼","Aogon":"Ä„","aogon":"Ä…","Aopf":"ð”¸","aopf":"ð•’","apacir":"⩯","ap":"≈","apE":"â©°","ape":"≊","apid":"≋","apos":"'","ApplyFunction":"â¡","approx":"≈","approxeq":"≊","Aring":"Ã…","aring":"Ã¥","Ascr":"ð’œ","ascr":"ð’¶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"â‰","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"â‹","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Î’","beta":"β","beth":"ℶ","between":"≬","Bfr":"ð”…","bfr":"ð”Ÿ","bigcap":"â‹‚","bigcirc":"â—¯","bigcup":"⋃","bigodot":"⨀","bigoplus":"â¨","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"â–½","bigtriangleup":"â–³","biguplus":"⨄","bigvee":"â‹","bigwedge":"â‹€","bkarow":"â¤","blacklozenge":"⧫","blacksquare":"â–ª","blacktriangle":"â–´","blacktriangledown":"â–¾","blacktriangleleft":"â—‚","blacktriangleright":"â–¸","blank":"â£","blk12":"â–’","blk14":"â–‘","blk34":"â–“","block":"â–ˆ","bne":"=⃥","bnequiv":"≡⃥","bNot":"â«","bnot":"âŒ","Bopf":"ð”¹","bopf":"ð•“","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"â”","boxdL":"â••","boxDl":"â•–","boxDL":"â•—","boxdr":"┌","boxdR":"â•’","boxDr":"â•“","boxDR":"â•”","boxh":"─","boxH":"â•","boxhd":"┬","boxHd":"╤","boxhD":"â•¥","boxHD":"╦","boxhu":"â”´","boxHu":"╧","boxhU":"╨","boxHU":"â•©","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"â•›","boxUl":"â•œ","boxUL":"â•","boxur":"â””","boxuR":"╘","boxUr":"â•™","boxUR":"â•š","boxv":"│","boxV":"â•‘","boxvh":"┼","boxvH":"╪","boxVh":"â•«","boxVH":"╬","boxvl":"┤","boxvL":"â•¡","boxVl":"â•¢","boxVL":"â•£","boxvr":"├","boxvR":"â•ž","boxVr":"â•Ÿ","boxVR":"â• ","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"ð’·","Bscr":"ℬ","bsemi":"â","bsim":"∽","bsime":"â‹","bsolb":"⧅","bsol":"\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"â‰","Bumpeq":"≎","bumpeq":"â‰","Cacute":"Ć","cacute":"ć","capand":"â©„","capbrcup":"⩉","capcap":"â©‹","cap":"∩","Cap":"â‹’","capcup":"⩇","capdot":"â©€","CapitalDifferentialD":"â……","caps":"∩︀","caret":"â","caron":"ˇ","Cayleys":"â„","ccaps":"â©","Ccaron":"ÄŒ","ccaron":"Ä","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"â©Œ","ccupssm":"â©","Cdot":"ÄŠ","cdot":"Ä‹","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"ð” ","Cfr":"â„","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"âŠ","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"â—‹","cirE":"⧃","cire":"≗","cirfnint":"â¨","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"â€","CloseCurlyQuote":"’","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"â©´","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"âˆ","compfn":"∘","complement":"âˆ","complexes":"â„‚","cong":"≅","congdot":"â©","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"ð•”","Copf":"â„‚","coprod":"âˆ","Coproduct":"âˆ","copy":"©","COPY":"©","copysr":"â„—","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"ð’ž","cscr":"ð’¸","csub":"â«","csube":"â«‘","csup":"â«","csupe":"â«’","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"â‹ž","cuesc":"â‹Ÿ","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"â‰","cup":"∪","Cup":"â‹“","cupcup":"â©Š","cupdot":"âŠ","cupor":"â©…","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"â‹ž","curlyeqsucc":"â‹Ÿ","curlyvee":"â‹Ž","curlywedge":"â‹","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"â‹Ž","cuwed":"â‹","cwconint":"∲","cwint":"∱","cylcty":"âŒ","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"â€","Dashv":"⫤","dashv":"⊣","dbkarow":"â¤","dblac":"Ë","Dcaron":"ÄŽ","dcaron":"Ä","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"â……","dd":"â…†","DDotrahd":"⤑","ddotseq":"â©·","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"ð”‡","dfr":"ð”¡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"Ë™","DiacriticalDoubleAcute":"Ë","DiacriticalGrave":"`","DiacriticalTilde":"Ëœ","diam":"â‹„","diamond":"â‹„","Diamond":"â‹„","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"â…†","digamma":"Ï","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"Ñ’","dlcorn":"⌞","dlcrop":"âŒ","dollar":"$","Dopf":"ð”»","dopf":"ð••","Dot":"¨","dot":"Ë™","DotDot":"⃜","doteq":"â‰","doteqdot":"≑","DotEqual":"â‰","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"â‡","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"Ì‘","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"â¥","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"â‡","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"â¤","drcorn":"⌟","drcrop":"⌌","Dscr":"ð’Ÿ","dscr":"ð’¹","DScy":"Ð…","dscy":"Ñ•","dsol":"⧶","Dstrok":"Ä","dstrok":"Ä‘","dtdot":"⋱","dtri":"â–¿","dtrif":"â–¾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Ð","dzcy":"ÑŸ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"â©®","Ecaron":"Äš","ecaron":"Ä›","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Ð","ecy":"Ñ","eDDot":"â©·","Edot":"Ä–","edot":"Ä—","eDot":"≑","ee":"â…‡","efDot":"≒","Efr":"ð”ˆ","efr":"ð”¢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"â§","ell":"â„“","els":"⪕","elsdot":"⪗","Emacr":"Ä’","emacr":"Ä“","empty":"∅","emptyset":"∅","EmptySmallSquare":"â—»","emptyv":"∅","EmptyVerySmallSquare":"â–«","emsp13":" ","emsp14":" ","emsp":" ","ENG":"ÅŠ","eng":"Å‹","ensp":" ","Eogon":"Ę","eogon":"Ä™","Eopf":"ð”¼","eopf":"ð•–","epar":"â‹•","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"â„°","esdot":"â‰","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ã","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"â„°","exponentiale":"â…‡","ExponentialE":"â…‡","fallingdotseq":"≒","Fcy":"Ф","fcy":"Ñ„","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"ð”‰","ffr":"ð”£","filig":"ï¬","FilledSmallSquare":"â—¼","FilledVerySmallSquare":"â–ª","fjlig":"fj","flat":"â™","fllig":"fl","fltns":"â–±","fnof":"Æ’","Fopf":"ð”½","fopf":"ð•—","forall":"∀","ForAll":"∀","fork":"â‹”","forkv":"â«™","Fouriertrf":"ℱ","fpartint":"â¨","frac12":"½","frac13":"â…“","frac14":"¼","frac15":"â…•","frac16":"â…™","frac18":"â…›","frac23":"â…”","frac25":"â…–","frac34":"¾","frac35":"â…—","frac38":"â…œ","frac45":"â…˜","frac56":"â…š","frac58":"â…","frac78":"â…ž","frasl":"â„","frown":"⌢","fscr":"ð’»","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ïœ","gammad":"Ï","gap":"⪆","Gbreve":"Äž","gbreve":"ÄŸ","Gcedil":"Ä¢","Gcirc":"Äœ","gcirc":"Ä","Gcy":"Г","gcy":"г","Gdot":"Ä ","gdot":"Ä¡","ge":"≥","gE":"≧","gEl":"⪌","gel":"â‹›","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"ð”Š","gfr":"ð”¤","gg":"≫","Gg":"â‹™","ggg":"â‹™","gimel":"â„·","GJcy":"Ѓ","gjcy":"Ñ“","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"ð”¾","gopf":"ð•˜","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"â‹›","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"ð’¢","gscr":"â„Š","gsim":"≳","gsime":"⪎","gsiml":"âª","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"â‹—","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"â‹—","gtreqless":"â‹›","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"â„‹","HARDcy":"Ъ","hardcy":"ÑŠ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"â†","Hat":"^","hbar":"â„","Hcirc":"Ĥ","hcirc":"Ä¥","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"ð”¥","Hfr":"â„Œ","HilbertSpace":"â„‹","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"ð•™","Hopf":"â„","horbar":"―","HorizontalLine":"─","hscr":"ð’½","Hscr":"â„‹","hslash":"â„","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"â‰","hybull":"âƒ","hyphen":"â€","Iacute":"Ã","iacute":"Ã","ic":"â£","Icirc":"ÃŽ","icirc":"î","Icy":"И","icy":"и","Idot":"Ä°","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"ð”¦","Ifr":"â„‘","Igrave":"ÃŒ","igrave":"ì","ii":"â…ˆ","iiiint":"⨌","iiint":"âˆ","iinfin":"⧜","iiota":"â„©","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"Ä«","image":"â„‘","ImaginaryI":"â…ˆ","imagline":"â„","imagpart":"â„‘","imath":"ı","Im":"â„‘","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"â„…","in":"∈","infin":"∞","infintie":"â§","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"â‹‚","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"â£","InvisibleTimes":"â¢","IOcy":"Ð","iocy":"Ñ‘","Iogon":"Ä®","iogon":"į","Iopf":"ð•€","iopf":"ð•š","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"ð’¾","Iscr":"â„","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"â‹´","isinsv":"⋳","isinv":"∈","it":"â¢","Itilde":"Ĩ","itilde":"Ä©","Iukcy":"І","iukcy":"Ñ–","Iuml":"Ã","iuml":"ï","Jcirc":"Ä´","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"ð”","jfr":"ð”§","jmath":"È·","Jopf":"ð•","jopf":"ð•›","Jscr":"ð’¥","jscr":"ð’¿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"Ñ”","Kappa":"Κ","kappa":"κ","kappav":"Ï°","Kcedil":"Ķ","kcedil":"Ä·","Kcy":"К","kcy":"к","Kfr":"ð”Ž","kfr":"ð”¨","kgreen":"ĸ","KHcy":"Ð¥","khcy":"Ñ…","KJcy":"ÐŒ","kjcy":"Ñœ","Kopf":"ð•‚","kopf":"ð•œ","Kscr":"ð’¦","kscr":"ð“€","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"â„’","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"â„’","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"â†","Larr":"↞","lArr":"â‡","larrfs":"â¤","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"âª","lates":"âªï¸€","lbarr":"⤌","lBarr":"⤎","lbbrk":"â²","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"â¦","lbrkslu":"â¦","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ä»","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"â†","LeftArrow":"â†","Leftarrow":"â‡","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"â†","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"â‹‹","LeftTriangleBar":"â§","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"â‹š","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"â©¿","lesdoto":"âª","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"â‹–","lesseqgtr":"â‹š","lesseqqgtr":"⪋","LessEqualGreater":"â‹š","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"ð”","lfr":"ð”©","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"â–„","LJcy":"Љ","ljcy":"Ñ™","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"â—º","Lmidot":"Ä¿","lmidot":"Å€","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"ð•ƒ","lopf":"ð•","loplus":"â¨","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"â—Š","lozenge":"â—Š","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"â¥","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"ð“","Lscr":"â„’","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"âª","lsimg":"âª","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Å","lstrok":"Å‚","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"â‹–","lthree":"â‹‹","ltimes":"⋉","ltlarr":"⥶","ltquest":"â©»","ltri":"â—ƒ","ltrie":"⊴","ltrif":"â—‚","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"â–®","mcomma":"⨩","Mcy":"Ðœ","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":"âŸ","Mellintrf":"ℳ","Mfr":"ð”","mfr":"ð”ª","mho":"℧","micro":"µ","midast":"*","midcir":"â«°","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"â«›","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"ð•„","mopf":"ð•ž","mp":"∓","mscr":"ð“‚","Mscr":"ℳ","mstpos":"∾","Mu":"Îœ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"Å„","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"â™®","naturals":"â„•","natur":"â™®","nbsp":" ","nbump":"≎̸","nbumpe":"â‰Ì¸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Å…","ncedil":"ņ","ncong":"≇","ncongdot":"â©Ì¸","ncup":"â©‚","Ncy":"Ð","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"â‰Ì¸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\n","nexist":"∄","nexists":"∄","Nfr":"ð”‘","nfr":"ð”«","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"Ñš","nlarr":"↚","nlArr":"â‡","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"â‡","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"â ","NonBreakingSpace":" ","nopf":"ð•Ÿ","Nopf":"â„•","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"â‰","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"â‰Ì¸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"â‹·","notinvc":"⋶","NotLeftTriangleBar":"â§Ì¸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"â‹ ","NotReverseElement":"∌","NotRightTriangleBar":"â§Ì¸","NotRightTriangle":"â‹«","NotRightTriangleEqual":"â‹","NotSquareSubset":"âŠÌ¸","NotSquareSubsetEqual":"â‹¢","NotSquareSuperset":"âŠÌ¸","NotSquareSupersetEqual":"â‹£","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"âŠ","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"â‹¡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"â‰","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"â‹ ","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"â‡","nrarrw":"â†Ì¸","nrightarrow":"↛","nRightarrow":"â‡","nrtri":"â‹«","nrtrie":"â‹","nsc":"âŠ","nsccue":"â‹¡","nsce":"⪰̸","Nscr":"ð’©","nscr":"ð“ƒ","nshortmid":"∤","nshortparallel":"∦","nsim":"â‰","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"â‹¢","nsqsupe":"â‹£","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"âŠ","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"â‹«","ntrianglerighteq":"â‹","Nu":"Î","nu":"ν","num":"#","numero":"â„–","numsp":" ","nvap":"â‰âƒ’","nvdash":"⊬","nvDash":"âŠ","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"âŠ","Odblac":"Å","odblac":"Å‘","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Å’","oelig":"Å“","ofcir":"⦿","Ofr":"ð”’","ofr":"ð”¬","ogon":"Ë›","Ograve":"Ã’","ograve":"ò","ogt":"â§","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"ÅŒ","omacr":"Å","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"ð•†","oopf":"ð• ","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"â©”","or":"∨","ord":"â©","order":"â„´","orderof":"â„´","ordf":"ª","ordm":"º","origof":"⊶","oror":"â©–","orslope":"â©—","orv":"â©›","oS":"Ⓢ","Oscr":"ð’ª","oscr":"â„´","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"âž","OverBracket":"⎴","OverParenthesis":"âœ","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"ð”“","pfr":"ð”","Phi":"Φ","phi":"φ","phiv":"Ï•","phmmat":"ℳ","phone":"☎","Pi":"Î ","pi":"Ï€","pitchfork":"â‹”","piv":"Ï–","planck":"â„","planckh":"â„Ž","plankv":"â„","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"â„Œ","pointint":"⨕","popf":"ð•¡","Popf":"â„™","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"â„™","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"âˆ","Product":"âˆ","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"âˆ","Proportional":"âˆ","Proportion":"∷","propto":"âˆ","prsim":"≾","prurel":"⊰","Pscr":"ð’«","pscr":"ð“…","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"ð””","qfr":"ð”®","qint":"⨌","qopf":"ð•¢","Qopf":"â„š","qprime":"â—","Qscr":"ð’¬","qscr":"ð“†","quaternions":"â„","quatint":"⨖","quest":"?","questeq":"≟","quot":"\"","QUOT":"\"","rAarr":"⇛","race":"∽̱","Racute":"Å”","racute":"Å•","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"â†","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"â„š","rbarr":"â¤","rBarr":"â¤","RBarr":"â¤","rbbrk":"â³","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"â¦","Rcaron":"Ř","rcaron":"Å™","Rcedil":"Å–","rcedil":"Å—","rceil":"⌉","rcub":"}","Rcy":"Ð ","rcy":"Ñ€","rdca":"⤷","rdldhar":"⥩","rdquo":"â€","rdquor":"â€","rdsh":"↳","real":"â„œ","realine":"â„›","realpart":"â„œ","reals":"â„","Re":"â„œ","rect":"â–","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"ð”¯","Rfr":"â„œ","rHar":"⥤","rhard":"â‡","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"Ï","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"â¥","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"â‡","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"â†","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"â‹Œ","RightTriangleBar":"â§","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"â¥","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"Ëš","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"â€","rmoustache":"⎱","rmoust":"⎱","rnmid":"â«®","roang":"âŸ","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"ð•£","Ropf":"â„","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"ð“‡","Rscr":"â„›","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"â‹Œ","rtimes":"â‹Š","rtri":"â–¹","rtrie":"⊵","rtrif":"â–¸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"â„ž","Sacute":"Åš","sacute":"Å›","sbquo":"‚","scap":"⪸","Scaron":"Å ","scaron":"Å¡","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Åž","scedil":"ÅŸ","Scirc":"Åœ","scirc":"Å","scnap":"⪺","scnE":"⪶","scnsim":"â‹©","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"Ñ","sdotb":"⊡","sdot":"â‹…","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"ð”–","sfr":"ð”°","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"â†","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"Â","Sigma":"Σ","sigma":"σ","sigmaf":"Ï‚","sigmav":"Ï‚","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"âª","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"â†","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ÑŒ","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"ð•Š","sopf":"ð•¤","spades":"â™ ","spadesuit":"â™ ","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"âŠ","sqsube":"⊑","sqsubset":"âŠ","sqsubseteq":"⊑","sqsup":"âŠ","sqsupe":"⊒","sqsupset":"âŠ","sqsupseteq":"⊒","square":"â–¡","Square":"â–¡","SquareIntersection":"⊓","SquareSubset":"âŠ","SquareSubsetEqual":"⊑","SquareSuperset":"âŠ","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"â–ª","squ":"â–¡","squf":"â–ª","srarr":"→","Sscr":"ð’®","sscr":"ð“ˆ","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"Ï•","strns":"¯","sub":"⊂","Sub":"â‹","subdot":"⪽","subE":"â«…","sube":"⊆","subedot":"⫃","submult":"â«","subnE":"â«‹","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"â‹","subseteq":"⊆","subseteqq":"â«…","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"â«‹","subsim":"⫇","subsub":"â«•","subsup":"â«“","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"â‹©","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"â‹‘","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"â«„","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"â«—","suplarr":"⥻","supmult":"â«‚","supnE":"â«Œ","supne":"⊋","supplus":"â«€","supset":"⊃","Supset":"â‹‘","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"â«Œ","supsim":"⫈","supsub":"â«”","supsup":"â«–","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\t","target":"⌖","Tau":"Τ","tau":"Ï„","tbrk":"⎴","Tcaron":"Ť","tcaron":"Å¥","Tcedil":"Å¢","tcedil":"Å£","Tcy":"Т","tcy":"Ñ‚","tdot":"⃛","telrec":"⌕","Tfr":"ð”—","tfr":"ð”±","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"Ï‘","thetav":"Ï‘","thickapprox":"≈","thicksim":"∼","ThickSpace":"âŸâ€Š","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"Ëœ","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"âˆ","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"ð•‹","topf":"ð•¥","topfork":"â«š","tosa":"⤩","tprime":"‴","trade":"â„¢","TRADE":"â„¢","triangle":"â–µ","triangledown":"â–¿","triangleleft":"â—ƒ","trianglelefteq":"⊴","triangleq":"≜","triangleright":"â–¹","trianglerighteq":"⊵","tridot":"â—¬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"â§","tritime":"⨻","trpezium":"â¢","Tscr":"ð’¯","tscr":"ð“‰","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"Ñ›","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"ÐŽ","ubrcy":"Ñž","Ubreve":"Ŭ","ubreve":"Å","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Å°","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"ð”˜","ufr":"ð”²","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"â–€","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"âŒ","ultri":"â—¸","Umacr":"Ū","umacr":"Å«","uml":"¨","UnderBar":"_","UnderBrace":"âŸ","UnderBracket":"⎵","UnderParenthesis":"â","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"ð•Œ","uopf":"ð•¦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"Ï…","Upsi":"Ï’","upsih":"Ï’","Upsilon":"Î¥","upsilon":"Ï…","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"âŒ","urcorner":"âŒ","urcrop":"⌎","Uring":"Å®","uring":"ů","urtri":"â—¹","Uscr":"ð’°","uscr":"ð“Š","utdot":"â‹°","Utilde":"Ũ","utilde":"Å©","utri":"â–µ","utrif":"â–´","uuarr":"⇈","Uuml":"Ãœ","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"Ï°","varnothing":"∅","varphi":"Ï•","varpi":"Ï–","varpropto":"âˆ","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"Ï‚","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"Ï‘","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"â««","vBarv":"â«©","Vcy":"Ð’","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"â‹","veeeq":"≚","vellip":"â‹®","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"â˜","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"ð”™","vfr":"ð”³","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"ð•","vopf":"ð•§","vprop":"âˆ","vrtri":"⊳","Vscr":"ð’±","vscr":"ð“‹","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Å´","wcirc":"ŵ","wedbar":"â©Ÿ","wedge":"∧","Wedge":"â‹€","wedgeq":"≙","weierp":"℘","Wfr":"ð”š","wfr":"ð”´","Wopf":"ð•Ž","wopf":"ð•¨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"ð’²","wscr":"ð“Œ","xcap":"â‹‚","xcirc":"â—¯","xcup":"⋃","xdtri":"â–½","Xfr":"ð”›","xfr":"ð”µ","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"â‹»","xodot":"⨀","Xopf":"ð•","xopf":"ð•©","xoplus":"â¨","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"ð’³","xscr":"ð“","xsqcup":"⨆","xuplus":"⨄","xutri":"â–³","xvee":"â‹","xwedge":"â‹€","Yacute":"Ã","yacute":"ý","YAcy":"Я","yacy":"Ñ","Ycirc":"Ŷ","ycirc":"Å·","Ycy":"Ы","ycy":"Ñ‹","yen":"Â¥","Yfr":"ð”œ","yfr":"ð”¶","YIcy":"Ї","yicy":"Ñ—","Yopf":"ð•","yopf":"ð•ª","Yscr":"ð’´","yscr":"ð“Ž","YUcy":"Ю","yucy":"ÑŽ","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Å»","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"ð”·","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"â‡","zopf":"ð•«","Zopf":"ℤ","Zscr":"ð’µ","zscr":"ð“","zwj":"â€","zwnj":"‌"} | |
},{}],7:[function(require,module,exports){ | |
module.exports={"Aacute":"Ã","aacute":"á","Acirc":"Â","acirc":"â","acute":"´","AElig":"Æ","aelig":"æ","Agrave":"À","agrave":"à ","amp":"&","AMP":"&","Aring":"Ã…","aring":"Ã¥","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","brvbar":"¦","Ccedil":"Ç","ccedil":"ç","cedil":"¸","cent":"¢","copy":"©","COPY":"©","curren":"¤","deg":"°","divide":"÷","Eacute":"É","eacute":"é","Ecirc":"Ê","ecirc":"ê","Egrave":"È","egrave":"è","ETH":"Ã","eth":"ð","Euml":"Ë","euml":"ë","frac12":"½","frac14":"¼","frac34":"¾","gt":">","GT":">","Iacute":"Ã","iacute":"Ã","Icirc":"ÃŽ","icirc":"î","iexcl":"¡","Igrave":"ÃŒ","igrave":"ì","iquest":"¿","Iuml":"Ã","iuml":"ï","laquo":"«","lt":"<","LT":"<","macr":"¯","micro":"µ","middot":"·","nbsp":" ","not":"¬","Ntilde":"Ñ","ntilde":"ñ","Oacute":"Ó","oacute":"ó","Ocirc":"Ô","ocirc":"ô","Ograve":"Ã’","ograve":"ò","ordf":"ª","ordm":"º","Oslash":"Ø","oslash":"ø","Otilde":"Õ","otilde":"õ","Ouml":"Ö","ouml":"ö","para":"¶","plusmn":"±","pound":"£","quot":"\"","QUOT":"\"","raquo":"»","reg":"®","REG":"®","sect":"§","shy":"Â","sup1":"¹","sup2":"²","sup3":"³","szlig":"ß","THORN":"Þ","thorn":"þ","times":"×","Uacute":"Ú","uacute":"ú","Ucirc":"Û","ucirc":"û","Ugrave":"Ù","ugrave":"ù","uml":"¨","Uuml":"Ãœ","uuml":"ü","Yacute":"Ã","yacute":"ý","yen":"Â¥","yuml":"ÿ"} | |
},{}],8:[function(require,module,exports){ | |
module.exports={"amp":"&","apos":"'","gt":">","lt":"<","quot":"\""} | |
},{}],"ansi-to-html":[function(require,module,exports){ | |
'use strict'; | |
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | |
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } | |
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } | |
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } | |
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } | |
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } | |
var entities = require('entities'); | |
var defaults = { | |
fg: '#FFF', | |
bg: '#000', | |
newline: false, | |
escapeXML: false, | |
stream: false, | |
colors: getDefaultColors() | |
}; | |
function getDefaultColors() { | |
var colors = { | |
0: '#000', | |
1: '#A00', | |
2: '#0A0', | |
3: '#A50', | |
4: '#00A', | |
5: '#A0A', | |
6: '#0AA', | |
7: '#AAA', | |
8: '#555', | |
9: '#F55', | |
10: '#5F5', | |
11: '#FF5', | |
12: '#55F', | |
13: '#F5F', | |
14: '#5FF', | |
15: '#FFF' | |
}; | |
range(0, 5).forEach(function (red) { | |
range(0, 5).forEach(function (green) { | |
range(0, 5).forEach(function (blue) { | |
return setStyleColor(red, green, blue, colors); | |
}); | |
}); | |
}); | |
range(0, 23).forEach(function (gray) { | |
var c = gray + 232; | |
var l = toHexString(gray * 10 + 8); | |
colors[c] = '#' + l + l + l; | |
}); | |
return colors; | |
} | |
/** | |
* @param {number} red | |
* @param {number} green | |
* @param {number} blue | |
* @param {object} colors | |
*/ | |
function setStyleColor(red, green, blue, colors) { | |
var c = 16 + red * 36 + green * 6 + blue; | |
var r = red > 0 ? red * 40 + 55 : 0; | |
var g = green > 0 ? green * 40 + 55 : 0; | |
var b = blue > 0 ? blue * 40 + 55 : 0; | |
colors[c] = toColorHexString([r, g, b]); | |
} | |
/** | |
* Converts from a number like 15 to a hex string like 'F' | |
* @param {number} num | |
* @returns {string} | |
*/ | |
function toHexString(num) { | |
var str = num.toString(16); | |
while (str.length < 2) { | |
str = '0' + str; | |
} | |
return str; | |
} | |
/** | |
* Converts from an array of numbers like [15, 15, 15] to a hex string like 'FFF' | |
* @param {[red, green, blue]} ref | |
* @returns {string} | |
*/ | |
function toColorHexString(ref) { | |
var results = []; | |
var _iterator = _createForOfIteratorHelper(ref), | |
_step; | |
try { | |
for (_iterator.s(); !(_step = _iterator.n()).done;) { | |
var r = _step.value; | |
results.push(toHexString(r)); | |
} | |
} catch (err) { | |
_iterator.e(err); | |
} finally { | |
_iterator.f(); | |
} | |
return '#' + results.join(''); | |
} | |
/** | |
* @param {Array} stack | |
* @param {string} token | |
* @param {*} data | |
* @param {object} options | |
*/ | |
function generateOutput(stack, token, data, options) { | |
var result; | |
if (token === 'text') { | |
result = pushText(data, options); | |
} else if (token === 'display') { | |
result = handleDisplay(stack, data, options); | |
} else if (token === 'xterm256Foreground') { | |
result = pushForegroundColor(stack, options.colors[data]); | |
} else if (token === 'xterm256Background') { | |
result = pushBackgroundColor(stack, options.colors[data]); | |
} else if (token === 'rgb') { | |
result = handleRgb(stack, data); | |
} | |
return result; | |
} | |
/** | |
* @param {Array} stack | |
* @param {string} data | |
* @returns {*} | |
*/ | |
function handleRgb(stack, data) { | |
data = data.substring(2).slice(0, -1); | |
var operation = +data.substr(0, 2); | |
var color = data.substring(5).split(';'); | |
var rgb = color.map(function (value) { | |
return ('0' + Number(value).toString(16)).substr(-2); | |
}).join(''); | |
return pushStyle(stack, (operation === 38 ? 'color:#' : 'background-color:#') + rgb); | |
} | |
/** | |
* @param {Array} stack | |
* @param {number} code | |
* @param {object} options | |
* @returns {*} | |
*/ | |
function handleDisplay(stack, code, options) { | |
code = parseInt(code, 10); | |
var codeMap = { | |
'-1': function _() { | |
return '<br/>'; | |
}, | |
0: function _() { | |
return stack.length && resetStyles(stack); | |
}, | |
1: function _() { | |
return pushTag(stack, 'b'); | |
}, | |
3: function _() { | |
return pushTag(stack, 'i'); | |
}, | |
4: function _() { | |
return pushTag(stack, 'u'); | |
}, | |
8: function _() { | |
return pushStyle(stack, 'display:none'); | |
}, | |
9: function _() { | |
return pushTag(stack, 'strike'); | |
}, | |
22: function _() { | |
return pushStyle(stack, 'font-weight:normal;text-decoration:none;font-style:normal'); | |
}, | |
23: function _() { | |
return closeTag(stack, 'i'); | |
}, | |
24: function _() { | |
return closeTag(stack, 'u'); | |
}, | |
39: function _() { | |
return pushForegroundColor(stack, options.fg); | |
}, | |
49: function _() { | |
return pushBackgroundColor(stack, options.bg); | |
}, | |
53: function _() { | |
return pushStyle(stack, 'text-decoration:overline'); | |
} | |
}; | |
var result; | |
if (codeMap[code]) { | |
result = codeMap[code](); | |
} else if (4 < code && code < 7) { | |
result = pushTag(stack, 'blink'); | |
} else if (29 < code && code < 38) { | |
result = pushForegroundColor(stack, options.colors[code - 30]); | |
} else if (39 < code && code < 48) { | |
result = pushBackgroundColor(stack, options.colors[code - 40]); | |
} else if (89 < code && code < 98) { | |
result = pushForegroundColor(stack, options.colors[8 + (code - 90)]); | |
} else if (99 < code && code < 108) { | |
result = pushBackgroundColor(stack, options.colors[8 + (code - 100)]); | |
} | |
return result; | |
} | |
/** | |
* Clear all the styles | |
* @returns {string} | |
*/ | |
function resetStyles(stack) { | |
var stackClone = stack.slice(0); | |
stack.length = 0; | |
return stackClone.reverse().map(function (tag) { | |
return '</' + tag + '>'; | |
}).join(''); | |
} | |
/** | |
* Creates an array of numbers ranging from low to high | |
* @param {number} low | |
* @param {number} high | |
* @returns {Array} | |
* @example range(3, 7); // creates [3, 4, 5, 6, 7] | |
*/ | |
function range(low, high) { | |
var results = []; | |
for (var j = low; j <= high; j++) { | |
results.push(j); | |
} | |
return results; | |
} | |
/** | |
* Returns a new function that is true if value is NOT the same category | |
* @param {string} category | |
* @returns {function} | |
*/ | |
function notCategory(category) { | |
return function (e) { | |
return (category === null || e.category !== category) && category !== 'all'; | |
}; | |
} | |
/** | |
* Converts a code into an ansi token type | |
* @param {number} code | |
* @returns {string} | |
*/ | |
function categoryForCode(code) { | |
code = parseInt(code, 10); | |
var result = null; | |
if (code === 0) { | |
result = 'all'; | |
} else if (code === 1) { | |
result = 'bold'; | |
} else if (2 < code && code < 5) { | |
result = 'underline'; | |
} else if (4 < code && code < 7) { | |
result = 'blink'; | |
} else if (code === 8) { | |
result = 'hide'; | |
} else if (code === 9) { | |
result = 'strike'; | |
} else if (29 < code && code < 38 || code === 39 || 89 < code && code < 98) { | |
result = 'foreground-color'; | |
} else if (39 < code && code < 48 || code === 49 || 99 < code && code < 108) { | |
result = 'background-color'; | |
} | |
return result; | |
} | |
/** | |
* @param {string} text | |
* @param {object} options | |
* @returns {string} | |
*/ | |
function pushText(text, options) { | |
if (options.escapeXML) { | |
return entities.encodeXML(text); | |
} | |
return text; | |
} | |
/** | |
* @param {Array} stack | |
* @param {string} tag | |
* @param {string} [style=''] | |
* @returns {string} | |
*/ | |
function pushTag(stack, tag, style) { | |
if (!style) { | |
style = ''; | |
} | |
stack.push(tag); | |
return "<".concat(tag).concat(style ? " style=\"".concat(style, "\"") : '', ">"); | |
} | |
/** | |
* @param {Array} stack | |
* @param {string} style | |
* @returns {string} | |
*/ | |
function pushStyle(stack, style) { | |
return pushTag(stack, 'span', style); | |
} | |
function pushForegroundColor(stack, color) { | |
return pushTag(stack, 'span', 'color:' + color); | |
} | |
function pushBackgroundColor(stack, color) { | |
return pushTag(stack, 'span', 'background-color:' + color); | |
} | |
/** | |
* @param {Array} stack | |
* @param {string} style | |
* @returns {string} | |
*/ | |
function closeTag(stack, style) { | |
var last; | |
if (stack.slice(-1)[0] === style) { | |
last = stack.pop(); | |
} | |
if (last) { | |
return '</' + style + '>'; | |
} | |
} | |
/** | |
* @param {string} text | |
* @param {object} options | |
* @param {function} callback | |
* @returns {Array} | |
*/ | |
function tokenize(text, options, callback) { | |
var ansiMatch = false; | |
var ansiHandler = 3; | |
function remove() { | |
return ''; | |
} | |
function removeXterm256Foreground(m, g1) { | |
callback('xterm256Foreground', g1); | |
return ''; | |
} | |
function removeXterm256Background(m, g1) { | |
callback('xterm256Background', g1); | |
return ''; | |
} | |
function newline(m) { | |
if (options.newline) { | |
callback('display', -1); | |
} else { | |
callback('text', m); | |
} | |
return ''; | |
} | |
function ansiMess(m, g1) { | |
ansiMatch = true; | |
if (g1.trim().length === 0) { | |
g1 = '0'; | |
} | |
g1 = g1.trimRight(';').split(';'); | |
var _iterator2 = _createForOfIteratorHelper(g1), | |
_step2; | |
try { | |
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { | |
var g = _step2.value; | |
callback('display', g); | |
} | |
} catch (err) { | |
_iterator2.e(err); | |
} finally { | |
_iterator2.f(); | |
} | |
return ''; | |
} | |
function realText(m) { | |
callback('text', m); | |
return ''; | |
} | |
function rgb(m) { | |
callback('rgb', m); | |
return ''; | |
} | |
/* eslint no-control-regex:0 */ | |
var tokens = [{ | |
pattern: /^\x08+/, | |
sub: remove | |
}, { | |
pattern: /^\x1b\[[012]?K/, | |
sub: remove | |
}, { | |
pattern: /^\x1b\[\(B/, | |
sub: remove | |
}, { | |
pattern: /^\x1b\[[34]8;2;\d+;\d+;\d+m/, | |
sub: rgb | |
}, { | |
pattern: /^\x1b\[38;5;(\d+)m/, | |
sub: removeXterm256Foreground | |
}, { | |
pattern: /^\x1b\[48;5;(\d+)m/, | |
sub: removeXterm256Background | |
}, { | |
pattern: /^\n/, | |
sub: newline | |
}, { | |
pattern: /^\r+\n/, | |
sub: newline | |
}, { | |
pattern: /^\r/, | |
sub: newline | |
}, { | |
pattern: /^\x1b\[((?:\d{1,3};?)+|)m/, | |
sub: ansiMess | |
}, { | |
// CSI n J | |
// ED - Erase in Display Clears part of the screen. | |
// If n is 0 (or missing), clear from cursor to end of screen. | |
// If n is 1, clear from cursor to beginning of the screen. | |
// If n is 2, clear entire screen (and moves cursor to upper left on DOS ANSI.SYS). | |
// If n is 3, clear entire screen and delete all lines saved in the scrollback buffer | |
// (this feature was added for xterm and is supported by other terminal applications). | |
pattern: /^\x1b\[\d?J/, | |
sub: remove | |
}, { | |
// CSI n ; m f | |
// HVP - Horizontal Vertical Position Same as CUP | |
pattern: /^\x1b\[\d{0,3};\d{0,3}f/, | |
sub: remove | |
}, { | |
// catch-all for CSI sequences? | |
pattern: /^\x1b\[?[\d;]{0,3}/, | |
sub: remove | |
}, { | |
/** | |
* extracts real text - not containing: | |
* - `\x1b' - ESC - escape (Ascii 27) | |
* - '\x08' - BS - backspace (Ascii 8) | |
* - `\n` - Newline - linefeed (LF) (ascii 10) | |
* - `\r` - Windows Carriage Return (CR) | |
*/ | |
pattern: /^(([^\x1b\x08\r\n])+)/, | |
sub: realText | |
}]; | |
function process(handler, i) { | |
if (i > ansiHandler && ansiMatch) { | |
return; | |
} | |
ansiMatch = false; | |
text = text.replace(handler.pattern, handler.sub); | |
} | |
var results1 = []; | |
var _text = text, | |
length = _text.length; | |
outer: while (length > 0) { | |
for (var i = 0, o = 0, len = tokens.length; o < len; i = ++o) { | |
var handler = tokens[i]; | |
process(handler, i); | |
if (text.length !== length) { | |
// We matched a token and removed it from the text. We need to | |
// start matching *all* tokens against the new text. | |
length = text.length; | |
continue outer; | |
} | |
} | |
if (text.length === length) { | |
break; | |
} | |
results1.push(0); | |
length = text.length; | |
} | |
return results1; | |
} | |
/** | |
* If streaming, then the stack is "sticky" | |
* | |
* @param {Array} stickyStack | |
* @param {string} token | |
* @param {*} data | |
* @returns {Array} | |
*/ | |
function updateStickyStack(stickyStack, token, data) { | |
if (token !== 'text') { | |
stickyStack = stickyStack.filter(notCategory(categoryForCode(data))); | |
stickyStack.push({ | |
token: token, | |
data: data, | |
category: categoryForCode(data) | |
}); | |
} | |
return stickyStack; | |
} | |
var Filter = /*#__PURE__*/function () { | |
/** | |
* @param {object} options | |
* @param {string=} options.fg The default foreground color used when reset color codes are encountered. | |
* @param {string=} options.bg The default background color used when reset color codes are encountered. | |
* @param {boolean=} options.newline Convert newline characters to `<br/>`. | |
* @param {boolean=} options.escapeXML Generate HTML/XML entities. | |
* @param {boolean=} options.stream Save style state across invocations of `toHtml()`. | |
* @param {(string[] | {[code: number]: string})=} options.colors Can override specific colors or the entire ANSI palette. | |
*/ | |
function Filter(options) { | |
_classCallCheck(this, Filter); | |
options = options || {}; | |
if (options.colors) { | |
options.colors = Object.assign({}, defaults.colors, options.colors); | |
} | |
this.options = Object.assign({}, defaults, options); | |
this.stack = []; | |
this.stickyStack = []; | |
} | |
/** | |
* @param {string | string[]} input | |
* @returns {string} | |
*/ | |
_createClass(Filter, [{ | |
key: "toHtml", | |
value: function toHtml(input) { | |
var _this = this; | |
input = typeof input === 'string' ? [input] : input; | |
var stack = this.stack, | |
options = this.options; | |
var buf = []; | |
this.stickyStack.forEach(function (element) { | |
var output = generateOutput(stack, element.token, element.data, options); | |
if (output) { | |
buf.push(output); | |
} | |
}); | |
tokenize(input.join(''), options, function (token, data) { | |
var output = generateOutput(stack, token, data, options); | |
if (output) { | |
buf.push(output); | |
} | |
if (options.stream) { | |
_this.stickyStack = updateStickyStack(_this.stickyStack, token, data); | |
} | |
}); | |
if (stack.length) { | |
buf.push(resetStyles(stack)); | |
} | |
return buf.join(''); | |
} | |
}]); | |
return Filter; | |
}(); | |
module.exports = Filter; | |
},{"entities":4}]},{},[]); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment