{"version":3,"sources":["webpack:///./node_modules/hash.js/lib/hash/sha/224.js","webpack:///./node_modules/hash.js/lib/hash/sha/1.js","webpack:///./node_modules/hash.js/lib/hash/hmac.js","webpack:///./node_modules/htmlparser2/node_modules/dom-serializer/lib/foreignNames.js","webpack:///./node_modules/htmlparser2/node_modules/domutils/lib/legacy.js","webpack:///./node_modules/htmlparser2/lib/FeedHandler.js","webpack:///./node_modules/htmlparser2/lib/Parser.js","webpack:///./node_modules/hash.js/lib/hash/sha.js","webpack:///./node_modules/htmlparser2/node_modules/domutils/lib/manipulation.js","webpack:///./node_modules/hash.js/lib/hash/sha/256.js","webpack:///./node_modules/htmlparser2/lib/Tokenizer.js","webpack:///./node_modules/hash.js/lib/hash.js","webpack:///./node_modules/htmlparser2/lib/index.js","webpack:///./node_modules/htmlparser2/node_modules/domutils/lib/stringify.js","webpack:///./node_modules/hash.js/lib/hash/sha/384.js","webpack:///./node_modules/htmlparser2/node_modules/domutils/lib/index.js","webpack:///./node_modules/htmlparser2/node_modules/domutils/lib/traversal.js","webpack:///./node_modules/hash.js/lib/hash/sha/common.js","webpack:///./node_modules/htmlparser2/node_modules/domutils/lib/feeds.js","webpack:///./node_modules/htmlparser2/node_modules/domutils/lib/helpers.js","webpack:///./node_modules/hash.js/lib/hash/sha/512.js","webpack:///./node_modules/hash.js/lib/hash/ripemd.js","webpack:///./node_modules/hash.js/lib/hash/utils.js","webpack:///./node_modules/hash.js/lib/hash/common.js","webpack:///./node_modules/htmlparser2/node_modules/dom-serializer/lib/index.js","webpack:///./node_modules/htmlparser2/node_modules/domutils/lib/querying.js"],"names":["utils","SHA256","SHA224","this","call","h","inherits","module","exports","blockSize","outSize","hmacStrength","padLength","prototype","_digest","enc","toHex32","slice","split32","common","shaCommon","rotl32","sum32","sum32_5","ft_1","BlockHash","sha1_K","SHA1","W","Array","_update","msg","start","i","length","a","b","c","d","e","s","t","assert","Hmac","hash","key","Hash","inner","outer","_init","toArray","update","digest","push","Object","defineProperty","value","attributeNames","elementNames","Map","getElementsByTagType","getElementsByTagName","getElementById","getElements","testElement","domhandler_1","querying_1","Checks","tag_name","name","elem","isTag","tag_type","type","tag_contains","data","isText","getAttribCheck","attrib","attribs","combineFuncs","compileTest","options","funcs","keys","map","hasOwnProperty","reduce","node","test","nodes","recurse","limit","Infinity","filter","id","isArray","findOne","tagName","__extends","extendStatics","setPrototypeOf","__proto__","p","TypeError","String","__","constructor","create","__createBinding","o","m","k","k2","enumerable","get","__setModuleDefault","v","__importStar","mod","__esModule","result","__importDefault","parseFeed","FeedHandler","FeedItemMediaMedium","FeedItemMediaExpression","DomUtils","Parser_1","_super","callback","_this","onend","_a","_b","feedRoot","getOneElement","isValidFeed","dom","feed","childs","children","addConditionally","href","getAttribute","link","updated","fetch","Date","items","item","entry","description","pubDate","media","getMediaElements","substr","handleCallback","Error","default","where","medium","isDefault","url","fileSize","parseInt","expression","bitrate","framerate","samplingrate","channels","duration","height","width","lang","getText","trim","obj","prop","what","tmp","xmlMode","handler","Parser","end","Tokenizer_1","formTags","Set","pTag","openImpliesClose","tr","th","td","body","li","h1","h2","h3","h4","h5","h6","select","input","output","button","datalist","textarea","option","optgroup","dd","dt","address","article","aside","blockquote","details","div","dl","fieldset","figcaption","figure","footer","form","header","hr","main","nav","ol","pre","section","table","ul","rt","rp","tbody","tfoot","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","cbs","_c","_d","_e","startIndex","endIndex","tagname","attribname","attribvalue","stack","foreignContext","lowerCaseTagNames","lowerCaseTags","lowerCaseAttributeNames","tokenizer","Tokenizer","onparserinit","updatePosition","initialOffset","sectionStart","getAbsoluteIndex","ontext","onopentagname","toLowerCase","el","has","onclosetag","onopentag","onopentagend","pop","closeCurrentTag","pos","lastIndexOf","onselfclosingtag","recognizeSelfClosing","onattribname","onattribdata","onattribend","quote","onattribute","getInstructionName","idx","search","ondeclaration","onprocessinginstruction","name_1","name_2","oncomment","oncommentend","oncdata","_f","recognizeCDATA","oncdatastart","oncdataend","onerror","err","reset","onreset","parseComplete","write","chunk","pause","resume","parseChunk","done","sha1","sha224","sha256","sha384","sha512","removeElement","prev","next","parent","splice","prepend","prependChild","append","appendChild","replaceElement","replacement","child","sibling","currNext","unshift","indexOf","sum32_4","ch32","maj32","s0_256","s1_256","g0_256","g1_256","sha256_K","f","g","T1","T2","decode_codepoint_1","entities_json_1","legacy_json_1","xml_json_1","whitespace","isASCIIAlpha","ifElseState","upper","SUCCESS","FAILURE","lower","_state","_index","consumeSpecialNameChar","NEXT_STATE","stateBeforeCdata1","stateBeforeCdata2","stateBeforeCdata3","stateBeforeCdata4","stateBeforeCdata5","stateBeforeScript1","stateBeforeScript2","stateBeforeScript3","stateBeforeScript4","stateAfterScript1","stateAfterScript2","stateAfterScript3","stateAfterScript4","stateBeforeStyle1","stateBeforeStyle2","stateBeforeStyle3","stateAfterStyle1","stateAfterStyle2","stateAfterStyle3","stateBeforeSpecialT","stateBeforeTitle1","stateBeforeTitle2","stateBeforeTitle3","stateAfterSpecialTEnd","stateAfterTitle1","stateAfterTitle2","stateAfterTitle3","stateBeforeEntity","stateBeforeNumericEntity","buffer","bufferOffset","baseState","special","running","ended","decodeEntities","parse","finish","stateText","getSection","isTagStartChar","stateBeforeTagName","stateInTagName","emitToken","stateBeforeClosingTagName","stateInClosingTagName","stateAfterClosingTagName","stateBeforeAttributeName","stateInSelfClosingTag","stateInAttributeName","stateAfterAttributeName","stateBeforeAttributeValue","handleInAttributeValue","stateInAttributeValueDoubleQuotes","stateInAttributeValueSingleQuotes","stateInAttributeValueNoQuotes","stateBeforeDeclaration","stateInDeclaration","stateInProcessingInstruction","stateBeforeComment","stateInComment","stateInSpecialComment","substring","stateAfterComment1","stateAfterComment2","stateBeforeCdata6","stateInCdata","stateAfterCdata1","stateAfterCdata2","stateBeforeSpecialS","stateBeforeSpecialSEnd","stateBeforeSpecialLast","stateAfterSpecialLast","sectionStartOffset","parseFixedEntity","entity","emitPartial","parseLegacyEntity","Math","min","stateInNamedEntity","decodeNumericEntity","offset","base","strict","parsed","stateInNumericEntity","stateInHexEntity","cleanup","charAt","handleTrailingData","sha","ripemd","hmac","ripemd160","__exportStar","RssHandler","DefaultHandler","ElementType","createDomStream","parseDOM","parseDocument","DomHandler","root","cb","elementCb","FeedHandler_1","innerText","textContent","getInnerHTML","getOuterHTML","dom_serializer_1","domelementtype_1","hasChildren","join","isCDATA","isComment","Tag","SHA512","SHA384","isDocument","prevElementSibling","nextElementSibling","getName","hasAttrib","getAttributeValue","getSiblings","getParent","getChildren","emptyArray","siblings","rotr32","x","y","z","p32","getFeed","stringify_1","legacy_1","doc","getAtomFeed","getRssFeed","MEDIA_KEYS_STRING","MEDIA_KEYS_INT","_i","MEDIA_KEYS_STRING_1","MEDIA_KEYS_INT_1","val","uniqueSort","compareDocumentPosition","removeSubsets","nodeA","nodeB","aParents","bParents","current","maxIdx","sharedParent","aSibling","bSibling","ancestor","includes","arr","sort","relative","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","sha512_K","ch64_hi","xh","xl","yh","yl","zh","r","ch64_lo","zl","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","ah","al","bh","bl","ch","cl","dh","eh","fh","fl","gh","gl","hh","hl","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","sum32_3","RIPEMD160","endian","j","K","Kh","A","B","C","D","E","Ah","Bh","Ch","Dh","Eh","T","rh","sh","isSurrogatePair","charCodeAt","htonl","w","zero2","word","zero8","res","replace","toHex","toString","join32","len","buf","lo","hi","carry","num","pending","pendingTotal","_delta8","_delta32","concat","_pad","bytes","__assign","assign","n","arguments","apply","entities_1","foreignNames_1","unencodedElements","singleTag","render","renderNode","Root","Directive","Doctype","renderDirective","Comment","renderComment","CDATA","renderCdata","Script","Style","opts","foreignModeIntegrationPoints","foreignElements","tag","attributes","emptyAttrs","encodeXML","formatAttributes","selfClosingTags","renderTag","Text","renderText","findAll","existsOne","findOneChild","find","nodes_1","checked","some","shift"],"mappings":"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","file":"js/chunk-vendors~67b22fc5.23b692d4.js","sourcesContent":["'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n [\"altglyph\", \"altGlyph\"],\n [\"altglyphdef\", \"altGlyphDef\"],\n [\"altglyphitem\", \"altGlyphItem\"],\n [\"animatecolor\", \"animateColor\"],\n [\"animatemotion\", \"animateMotion\"],\n [\"animatetransform\", \"animateTransform\"],\n [\"clippath\", \"clipPath\"],\n [\"feblend\", \"feBlend\"],\n [\"fecolormatrix\", \"feColorMatrix\"],\n [\"fecomponenttransfer\", \"feComponentTransfer\"],\n [\"fecomposite\", \"feComposite\"],\n [\"feconvolvematrix\", \"feConvolveMatrix\"],\n [\"fediffuselighting\", \"feDiffuseLighting\"],\n [\"fedisplacementmap\", \"feDisplacementMap\"],\n [\"fedistantlight\", \"feDistantLight\"],\n [\"fedropshadow\", \"feDropShadow\"],\n [\"feflood\", \"feFlood\"],\n [\"fefunca\", \"feFuncA\"],\n [\"fefuncb\", \"feFuncB\"],\n [\"fefuncg\", \"feFuncG\"],\n [\"fefuncr\", \"feFuncR\"],\n [\"fegaussianblur\", \"feGaussianBlur\"],\n [\"feimage\", \"feImage\"],\n [\"femerge\", \"feMerge\"],\n [\"femergenode\", \"feMergeNode\"],\n [\"femorphology\", \"feMorphology\"],\n [\"feoffset\", \"feOffset\"],\n [\"fepointlight\", \"fePointLight\"],\n [\"fespecularlighting\", \"feSpecularLighting\"],\n [\"fespotlight\", \"feSpotLight\"],\n [\"fetile\", \"feTile\"],\n [\"feturbulence\", \"feTurbulence\"],\n [\"foreignobject\", \"foreignObject\"],\n [\"glyphref\", \"glyphRef\"],\n [\"lineargradient\", \"linearGradient\"],\n [\"radialgradient\", \"radialGradient\"],\n [\"textpath\", \"textPath\"],\n]);\nexports.attributeNames = new Map([\n [\"definitionurl\", \"definitionURL\"],\n [\"attributename\", \"attributeName\"],\n [\"attributetype\", \"attributeType\"],\n [\"basefrequency\", \"baseFrequency\"],\n [\"baseprofile\", \"baseProfile\"],\n [\"calcmode\", \"calcMode\"],\n [\"clippathunits\", \"clipPathUnits\"],\n [\"diffuseconstant\", \"diffuseConstant\"],\n [\"edgemode\", \"edgeMode\"],\n [\"filterunits\", \"filterUnits\"],\n [\"glyphref\", \"glyphRef\"],\n [\"gradienttransform\", \"gradientTransform\"],\n [\"gradientunits\", \"gradientUnits\"],\n [\"kernelmatrix\", \"kernelMatrix\"],\n [\"kernelunitlength\", \"kernelUnitLength\"],\n [\"keypoints\", \"keyPoints\"],\n [\"keysplines\", \"keySplines\"],\n [\"keytimes\", \"keyTimes\"],\n [\"lengthadjust\", \"lengthAdjust\"],\n [\"limitingconeangle\", \"limitingConeAngle\"],\n [\"markerheight\", \"markerHeight\"],\n [\"markerunits\", \"markerUnits\"],\n [\"markerwidth\", \"markerWidth\"],\n [\"maskcontentunits\", \"maskContentUnits\"],\n [\"maskunits\", \"maskUnits\"],\n [\"numoctaves\", \"numOctaves\"],\n [\"pathlength\", \"pathLength\"],\n [\"patterncontentunits\", \"patternContentUnits\"],\n [\"patterntransform\", \"patternTransform\"],\n [\"patternunits\", \"patternUnits\"],\n [\"pointsatx\", \"pointsAtX\"],\n [\"pointsaty\", \"pointsAtY\"],\n [\"pointsatz\", \"pointsAtZ\"],\n [\"preservealpha\", \"preserveAlpha\"],\n [\"preserveaspectratio\", \"preserveAspectRatio\"],\n [\"primitiveunits\", \"primitiveUnits\"],\n [\"refx\", \"refX\"],\n [\"refy\", \"refY\"],\n [\"repeatcount\", \"repeatCount\"],\n [\"repeatdur\", \"repeatDur\"],\n [\"requiredextensions\", \"requiredExtensions\"],\n [\"requiredfeatures\", \"requiredFeatures\"],\n [\"specularconstant\", \"specularConstant\"],\n [\"specularexponent\", \"specularExponent\"],\n [\"spreadmethod\", \"spreadMethod\"],\n [\"startoffset\", \"startOffset\"],\n [\"stddeviation\", \"stdDeviation\"],\n [\"stitchtiles\", \"stitchTiles\"],\n [\"surfacescale\", \"surfaceScale\"],\n [\"systemlanguage\", \"systemLanguage\"],\n [\"tablevalues\", \"tableValues\"],\n [\"targetx\", \"targetX\"],\n [\"targety\", \"targetY\"],\n [\"textlength\", \"textLength\"],\n [\"viewbox\", \"viewBox\"],\n [\"viewtarget\", \"viewTarget\"],\n [\"xchannelselector\", \"xChannelSelector\"],\n [\"ychannelselector\", \"yChannelSelector\"],\n [\"zoomandpan\", \"zoomAndPan\"],\n]);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getElementsByTagType = exports.getElementsByTagName = exports.getElementById = exports.getElements = exports.testElement = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar querying_1 = require(\"./querying\");\nvar Checks = {\n tag_name: function (name) {\n if (typeof name === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && name(elem.name); };\n }\n else if (name === \"*\") {\n return domhandler_1.isTag;\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.name === name; };\n },\n tag_type: function (type) {\n if (typeof type === \"function\") {\n return function (elem) { return type(elem.type); };\n }\n return function (elem) { return elem.type === type; };\n },\n tag_contains: function (data) {\n if (typeof data === \"function\") {\n return function (elem) { return (0, domhandler_1.isText)(elem) && data(elem.data); };\n }\n return function (elem) { return (0, domhandler_1.isText)(elem) && elem.data === data; };\n },\n};\n/**\n * @param attrib Attribute to check.\n * @param value Attribute value to look for.\n * @returns A function to check whether the a node has an attribute with a particular value.\n */\nfunction getAttribCheck(attrib, value) {\n if (typeof value === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]); };\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value; };\n}\n/**\n * @param a First function to combine.\n * @param b Second function to combine.\n * @returns A function taking a node and returning `true` if either\n * of the input functions returns `true` for the node.\n */\nfunction combineFuncs(a, b) {\n return function (elem) { return a(elem) || b(elem); };\n}\n/**\n * @param options An object describing nodes to look for.\n * @returns A function executing all checks in `options` and returning `true`\n * if any of them match a node.\n */\nfunction compileTest(options) {\n var funcs = Object.keys(options).map(function (key) {\n var value = options[key];\n return Object.prototype.hasOwnProperty.call(Checks, key)\n ? Checks[key](value)\n : getAttribCheck(key, value);\n });\n return funcs.length === 0 ? null : funcs.reduce(combineFuncs);\n}\n/**\n * @param options An object describing nodes to look for.\n * @param node The element to test.\n * @returns Whether the element matches the description in `options`.\n */\nfunction testElement(options, node) {\n var test = compileTest(options);\n return test ? test(node) : true;\n}\nexports.testElement = testElement;\n/**\n * @param options An object describing nodes to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes that match `options`.\n */\nfunction getElements(options, nodes, recurse, limit) {\n if (limit === void 0) { limit = Infinity; }\n var test = compileTest(options);\n return test ? (0, querying_1.filter)(test, nodes, recurse, limit) : [];\n}\nexports.getElements = getElements;\n/**\n * @param id The unique ID attribute value to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @returns The node with the supplied ID.\n */\nfunction getElementById(id, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n if (!Array.isArray(nodes))\n nodes = [nodes];\n return (0, querying_1.findOne)(getAttribCheck(\"id\", id), nodes, recurse);\n}\nexports.getElementById = getElementById;\n/**\n * @param tagName Tag name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `tagName`.\n */\nfunction getElementsByTagName(tagName, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_1.filter)(Checks.tag_name(tagName), nodes, recurse, limit);\n}\nexports.getElementsByTagName = getElementsByTagName;\n/**\n * @param type Element type to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `type`.\n */\nfunction getElementsByTagType(type, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_1.filter)(Checks.tag_type(type), nodes, recurse, limit);\n}\nexports.getElementsByTagType = getElementsByTagType;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseFeed = exports.FeedHandler = void 0;\nvar domhandler_1 = __importDefault(require(\"domhandler\"));\nvar DomUtils = __importStar(require(\"domutils\"));\nvar Parser_1 = require(\"./Parser\");\nvar FeedItemMediaMedium;\n(function (FeedItemMediaMedium) {\n FeedItemMediaMedium[FeedItemMediaMedium[\"image\"] = 0] = \"image\";\n FeedItemMediaMedium[FeedItemMediaMedium[\"audio\"] = 1] = \"audio\";\n FeedItemMediaMedium[FeedItemMediaMedium[\"video\"] = 2] = \"video\";\n FeedItemMediaMedium[FeedItemMediaMedium[\"document\"] = 3] = \"document\";\n FeedItemMediaMedium[FeedItemMediaMedium[\"executable\"] = 4] = \"executable\";\n})(FeedItemMediaMedium || (FeedItemMediaMedium = {}));\nvar FeedItemMediaExpression;\n(function (FeedItemMediaExpression) {\n FeedItemMediaExpression[FeedItemMediaExpression[\"sample\"] = 0] = \"sample\";\n FeedItemMediaExpression[FeedItemMediaExpression[\"full\"] = 1] = \"full\";\n FeedItemMediaExpression[FeedItemMediaExpression[\"nonstop\"] = 2] = \"nonstop\";\n})(FeedItemMediaExpression || (FeedItemMediaExpression = {}));\n// TODO: Consume data as it is coming in\nvar FeedHandler = /** @class */ (function (_super) {\n __extends(FeedHandler, _super);\n /**\n *\n * @param callback\n * @param options\n */\n function FeedHandler(callback, options) {\n var _this = this;\n if (typeof callback === \"object\") {\n callback = undefined;\n options = callback;\n }\n _this = _super.call(this, callback, options) || this;\n return _this;\n }\n FeedHandler.prototype.onend = function () {\n var _a, _b;\n var feedRoot = getOneElement(isValidFeed, this.dom);\n if (!feedRoot) {\n this.handleCallback(new Error(\"couldn't find root of feed\"));\n return;\n }\n var feed = {};\n if (feedRoot.name === \"feed\") {\n var childs = feedRoot.children;\n feed.type = \"atom\";\n addConditionally(feed, \"id\", \"id\", childs);\n addConditionally(feed, \"title\", \"title\", childs);\n var href = getAttribute(\"href\", getOneElement(\"link\", childs));\n if (href) {\n feed.link = href;\n }\n addConditionally(feed, \"description\", \"subtitle\", childs);\n var updated = fetch(\"updated\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"email\", childs, true);\n feed.items = getElements(\"entry\", childs).map(function (item) {\n var entry = {};\n var children = item.children;\n addConditionally(entry, \"id\", \"id\", children);\n addConditionally(entry, \"title\", \"title\", children);\n var href = getAttribute(\"href\", getOneElement(\"link\", children));\n if (href) {\n entry.link = href;\n }\n var description = fetch(\"summary\", children) || fetch(\"content\", children);\n if (description) {\n entry.description = description;\n }\n var pubDate = fetch(\"updated\", children);\n if (pubDate) {\n entry.pubDate = new Date(pubDate);\n }\n entry.media = getMediaElements(children);\n return entry;\n });\n }\n else {\n var childs = (_b = (_a = getOneElement(\"channel\", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];\n feed.type = feedRoot.name.substr(0, 3);\n feed.id = \"\";\n addConditionally(feed, \"title\", \"title\", childs);\n addConditionally(feed, \"link\", \"link\", childs);\n addConditionally(feed, \"description\", \"description\", childs);\n var updated = fetch(\"lastBuildDate\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n feed.items = getElements(\"item\", feedRoot.children).map(function (item) {\n var entry = {};\n var children = item.children;\n addConditionally(entry, \"id\", \"guid\", children);\n addConditionally(entry, \"title\", \"title\", children);\n addConditionally(entry, \"link\", \"link\", children);\n addConditionally(entry, \"description\", \"description\", children);\n var pubDate = fetch(\"pubDate\", children);\n if (pubDate)\n entry.pubDate = new Date(pubDate);\n entry.media = getMediaElements(children);\n return entry;\n });\n }\n this.feed = feed;\n this.handleCallback(null);\n };\n return FeedHandler;\n}(domhandler_1.default));\nexports.FeedHandler = FeedHandler;\nfunction getMediaElements(where) {\n return getElements(\"media:content\", where).map(function (elem) {\n var media = {\n medium: elem.attribs.medium,\n isDefault: !!elem.attribs.isDefault,\n };\n if (elem.attribs.url) {\n media.url = elem.attribs.url;\n }\n if (elem.attribs.fileSize) {\n media.fileSize = parseInt(elem.attribs.fileSize, 10);\n }\n if (elem.attribs.type) {\n media.type = elem.attribs.type;\n }\n if (elem.attribs.expression) {\n media.expression = elem.attribs\n .expression;\n }\n if (elem.attribs.bitrate) {\n media.bitrate = parseInt(elem.attribs.bitrate, 10);\n }\n if (elem.attribs.framerate) {\n media.framerate = parseInt(elem.attribs.framerate, 10);\n }\n if (elem.attribs.samplingrate) {\n media.samplingrate = parseInt(elem.attribs.samplingrate, 10);\n }\n if (elem.attribs.channels) {\n media.channels = parseInt(elem.attribs.channels, 10);\n }\n if (elem.attribs.duration) {\n media.duration = parseInt(elem.attribs.duration, 10);\n }\n if (elem.attribs.height) {\n media.height = parseInt(elem.attribs.height, 10);\n }\n if (elem.attribs.width) {\n media.width = parseInt(elem.attribs.width, 10);\n }\n if (elem.attribs.lang) {\n media.lang = elem.attribs.lang;\n }\n return media;\n });\n}\nfunction getElements(tagName, where) {\n return DomUtils.getElementsByTagName(tagName, where, true);\n}\nfunction getOneElement(tagName, node) {\n return DomUtils.getElementsByTagName(tagName, node, true, 1)[0];\n}\nfunction fetch(tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n return DomUtils.getText(DomUtils.getElementsByTagName(tagName, where, recurse, 1)).trim();\n}\nfunction getAttribute(name, elem) {\n if (!elem) {\n return null;\n }\n var attribs = elem.attribs;\n return attribs[name];\n}\nfunction addConditionally(obj, prop, what, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n var tmp = fetch(what, where, recurse);\n if (tmp)\n obj[prop] = tmp;\n}\nfunction isValidFeed(value) {\n return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n}\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this option, you should set `xmlMode` to `true`.\n */\nfunction parseFeed(feed, options) {\n if (options === void 0) { options = { xmlMode: true }; }\n var handler = new FeedHandler(options);\n new Parser_1.Parser(handler, options).end(feed);\n return handler.feed;\n}\nexports.parseFeed = parseFeed;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Parser = void 0;\nvar Tokenizer_1 = __importDefault(require(\"./Tokenizer\"));\nvar formTags = new Set([\n \"input\",\n \"option\",\n \"optgroup\",\n \"select\",\n \"button\",\n \"datalist\",\n \"textarea\",\n]);\nvar pTag = new Set([\"p\"]);\nvar openImpliesClose = {\n tr: new Set([\"tr\", \"th\", \"td\"]),\n th: new Set([\"th\"]),\n td: new Set([\"thead\", \"th\", \"td\"]),\n body: new Set([\"head\", \"link\", \"script\"]),\n li: new Set([\"li\"]),\n p: pTag,\n h1: pTag,\n h2: pTag,\n h3: pTag,\n h4: pTag,\n h5: pTag,\n h6: pTag,\n select: formTags,\n input: formTags,\n output: formTags,\n button: formTags,\n datalist: formTags,\n textarea: formTags,\n option: new Set([\"option\"]),\n optgroup: new Set([\"optgroup\", \"option\"]),\n dd: new Set([\"dt\", \"dd\"]),\n dt: new Set([\"dt\", \"dd\"]),\n address: pTag,\n article: pTag,\n aside: pTag,\n blockquote: pTag,\n details: pTag,\n div: pTag,\n dl: pTag,\n fieldset: pTag,\n figcaption: pTag,\n figure: pTag,\n footer: pTag,\n form: pTag,\n header: pTag,\n hr: pTag,\n main: pTag,\n nav: pTag,\n ol: pTag,\n pre: pTag,\n section: pTag,\n table: pTag,\n ul: pTag,\n rt: new Set([\"rt\", \"rp\"]),\n rp: new Set([\"rt\", \"rp\"]),\n tbody: new Set([\"thead\", \"tbody\"]),\n tfoot: new Set([\"thead\", \"tbody\"]),\n};\nvar voidElements = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\nvar foreignContextElements = new Set([\"math\", \"svg\"]);\nvar htmlIntegrationElements = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar reNameEnd = /\\s|\\//;\nvar Parser = /** @class */ (function () {\n function Parser(cbs, options) {\n if (options === void 0) { options = {}; }\n var _a, _b, _c, _d, _e;\n /** The start index of the last event. */\n this.startIndex = 0;\n /** The end index of the last event. */\n this.endIndex = null;\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribvalue = \"\";\n this.attribs = null;\n this.stack = [];\n this.foreignContext = [];\n this.options = options;\n this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};\n this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== void 0 ? _a : !options.xmlMode;\n this.lowerCaseAttributeNames =\n (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : !options.xmlMode;\n this.tokenizer = new ((_c = options.Tokenizer) !== null && _c !== void 0 ? _c : Tokenizer_1.default)(this.options, this);\n (_e = (_d = this.cbs).onparserinit) === null || _e === void 0 ? void 0 : _e.call(_d, this);\n }\n Parser.prototype.updatePosition = function (initialOffset) {\n if (this.endIndex === null) {\n if (this.tokenizer.sectionStart <= initialOffset) {\n this.startIndex = 0;\n }\n else {\n this.startIndex = this.tokenizer.sectionStart - initialOffset;\n }\n }\n else {\n this.startIndex = this.endIndex + 1;\n }\n this.endIndex = this.tokenizer.getAbsoluteIndex();\n };\n // Tokenizer event handlers\n Parser.prototype.ontext = function (data) {\n var _a, _b;\n this.updatePosition(1);\n this.endIndex--;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data);\n };\n Parser.prototype.onopentagname = function (name) {\n var _a, _b;\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n this.tagname = name;\n if (!this.options.xmlMode &&\n Object.prototype.hasOwnProperty.call(openImpliesClose, name)) {\n var el = void 0;\n while (this.stack.length > 0 &&\n openImpliesClose[name].has((el = this.stack[this.stack.length - 1]))) {\n this.onclosetag(el);\n }\n }\n if (this.options.xmlMode || !voidElements.has(name)) {\n this.stack.push(name);\n if (foreignContextElements.has(name)) {\n this.foreignContext.push(true);\n }\n else if (htmlIntegrationElements.has(name)) {\n this.foreignContext.push(false);\n }\n }\n (_b = (_a = this.cbs).onopentagname) === null || _b === void 0 ? void 0 : _b.call(_a, name);\n if (this.cbs.onopentag)\n this.attribs = {};\n };\n Parser.prototype.onopentagend = function () {\n var _a, _b;\n this.updatePosition(1);\n if (this.attribs) {\n (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs);\n this.attribs = null;\n }\n if (!this.options.xmlMode &&\n this.cbs.onclosetag &&\n voidElements.has(this.tagname)) {\n this.cbs.onclosetag(this.tagname);\n }\n this.tagname = \"\";\n };\n Parser.prototype.onclosetag = function (name) {\n this.updatePosition(1);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n if (foreignContextElements.has(name) ||\n htmlIntegrationElements.has(name)) {\n this.foreignContext.pop();\n }\n if (this.stack.length &&\n (this.options.xmlMode || !voidElements.has(name))) {\n var pos = this.stack.lastIndexOf(name);\n if (pos !== -1) {\n if (this.cbs.onclosetag) {\n pos = this.stack.length - pos;\n while (pos--) {\n // We know the stack has sufficient elements.\n this.cbs.onclosetag(this.stack.pop());\n }\n }\n else\n this.stack.length = pos;\n }\n else if (name === \"p\" && !this.options.xmlMode) {\n this.onopentagname(name);\n this.closeCurrentTag();\n }\n }\n else if (!this.options.xmlMode && (name === \"br\" || name === \"p\")) {\n this.onopentagname(name);\n this.closeCurrentTag();\n }\n };\n Parser.prototype.onselfclosingtag = function () {\n if (this.options.xmlMode ||\n this.options.recognizeSelfClosing ||\n this.foreignContext[this.foreignContext.length - 1]) {\n this.closeCurrentTag();\n }\n else {\n this.onopentagend();\n }\n };\n Parser.prototype.closeCurrentTag = function () {\n var _a, _b;\n var name = this.tagname;\n this.onopentagend();\n /*\n * Self-closing tags will be on the top of the stack\n * (cheaper check than in onclosetag)\n */\n if (this.stack[this.stack.length - 1] === name) {\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name);\n this.stack.pop();\n }\n };\n Parser.prototype.onattribname = function (name) {\n if (this.lowerCaseAttributeNames) {\n name = name.toLowerCase();\n }\n this.attribname = name;\n };\n Parser.prototype.onattribdata = function (value) {\n this.attribvalue += value;\n };\n Parser.prototype.onattribend = function (quote) {\n var _a, _b;\n (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote);\n if (this.attribs &&\n !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {\n this.attribs[this.attribname] = this.attribvalue;\n }\n this.attribname = \"\";\n this.attribvalue = \"\";\n };\n Parser.prototype.getInstructionName = function (value) {\n var idx = value.search(reNameEnd);\n var name = idx < 0 ? value : value.substr(0, idx);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n return name;\n };\n Parser.prototype.ondeclaration = function (value) {\n if (this.cbs.onprocessinginstruction) {\n var name_1 = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(\"!\" + name_1, \"!\" + value);\n }\n };\n Parser.prototype.onprocessinginstruction = function (value) {\n if (this.cbs.onprocessinginstruction) {\n var name_2 = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(\"?\" + name_2, \"?\" + value);\n }\n };\n Parser.prototype.oncomment = function (value) {\n var _a, _b, _c, _d;\n this.updatePosition(4);\n (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);\n };\n Parser.prototype.oncdata = function (value) {\n var _a, _b, _c, _d, _e, _f;\n this.updatePosition(1);\n if (this.options.xmlMode || this.options.recognizeCDATA) {\n (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);\n (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);\n }\n else {\n this.oncomment(\"[CDATA[\" + value + \"]]\");\n }\n };\n Parser.prototype.onerror = function (err) {\n var _a, _b;\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n Parser.prototype.onend = function () {\n var _a, _b;\n if (this.cbs.onclosetag) {\n for (var i = this.stack.length; i > 0; this.cbs.onclosetag(this.stack[--i]))\n ;\n }\n (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n /**\n * Resets the parser to a blank state, ready to parse a new HTML document\n */\n Parser.prototype.reset = function () {\n var _a, _b, _c, _d;\n (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.tokenizer.reset();\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribs = null;\n this.stack = [];\n (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n };\n /**\n * Resets the parser, then parses a complete document and\n * pushes it to the handler.\n *\n * @param data Document to parse.\n */\n Parser.prototype.parseComplete = function (data) {\n this.reset();\n this.end(data);\n };\n /**\n * Parses a chunk of data and calls the corresponding callbacks.\n *\n * @param chunk Chunk to parse.\n */\n Parser.prototype.write = function (chunk) {\n this.tokenizer.write(chunk);\n };\n /**\n * Parses the end of the buffer and clears the stack, calls onend.\n *\n * @param chunk Optional final chunk to parse.\n */\n Parser.prototype.end = function (chunk) {\n this.tokenizer.end(chunk);\n };\n /**\n * Pauses parsing. The parser won't emit events until `resume` is called.\n */\n Parser.prototype.pause = function () {\n this.tokenizer.pause();\n };\n /**\n * Resumes parsing after `pause` was called.\n */\n Parser.prototype.resume = function () {\n this.tokenizer.resume();\n };\n /**\n * Alias of `write`, for backwards compatibility.\n *\n * @param chunk Chunk to parse.\n * @deprecated\n */\n Parser.prototype.parseChunk = function (chunk) {\n this.write(chunk);\n };\n /**\n * Alias of `end`, for backwards compatibility.\n *\n * @param chunk Optional final chunk to parse.\n * @deprecated\n */\n Parser.prototype.done = function (chunk) {\n this.end(chunk);\n };\n return Parser;\n}());\nexports.Parser = Parser;\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepend = exports.prependChild = exports.append = exports.appendChild = exports.replaceElement = exports.removeElement = void 0;\n/**\n * Remove an element from the dom\n *\n * @param elem The element to be removed\n */\nfunction removeElement(elem) {\n if (elem.prev)\n elem.prev.next = elem.next;\n if (elem.next)\n elem.next.prev = elem.prev;\n if (elem.parent) {\n var childs = elem.parent.children;\n childs.splice(childs.lastIndexOf(elem), 1);\n }\n}\nexports.removeElement = removeElement;\n/**\n * Replace an element in the dom\n *\n * @param elem The element to be replaced\n * @param replacement The element to be added\n */\nfunction replaceElement(elem, replacement) {\n var prev = (replacement.prev = elem.prev);\n if (prev) {\n prev.next = replacement;\n }\n var next = (replacement.next = elem.next);\n if (next) {\n next.prev = replacement;\n }\n var parent = (replacement.parent = elem.parent);\n if (parent) {\n var childs = parent.children;\n childs[childs.lastIndexOf(elem)] = replacement;\n }\n}\nexports.replaceElement = replaceElement;\n/**\n * Append a child to an element.\n *\n * @param elem The element to append to.\n * @param child The element to be added as a child.\n */\nfunction appendChild(elem, child) {\n removeElement(child);\n child.next = null;\n child.parent = elem;\n if (elem.children.push(child) > 1) {\n var sibling = elem.children[elem.children.length - 2];\n sibling.next = child;\n child.prev = sibling;\n }\n else {\n child.prev = null;\n }\n}\nexports.appendChild = appendChild;\n/**\n * Append an element after another.\n *\n * @param elem The element to append after.\n * @param next The element be added.\n */\nfunction append(elem, next) {\n removeElement(next);\n var parent = elem.parent;\n var currNext = elem.next;\n next.next = currNext;\n next.prev = elem;\n elem.next = next;\n next.parent = parent;\n if (currNext) {\n currNext.prev = next;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.lastIndexOf(currNext), 0, next);\n }\n }\n else if (parent) {\n parent.children.push(next);\n }\n}\nexports.append = append;\n/**\n * Prepend a child to an element.\n *\n * @param elem The element to prepend before.\n * @param child The element to be added as a child.\n */\nfunction prependChild(elem, child) {\n removeElement(child);\n child.parent = elem;\n child.prev = null;\n if (elem.children.unshift(child) !== 1) {\n var sibling = elem.children[1];\n sibling.prev = child;\n child.next = sibling;\n }\n else {\n child.next = null;\n }\n}\nexports.prependChild = prependChild;\n/**\n * Prepend an element before another.\n *\n * @param elem The element to prepend before.\n * @param prev The element be added.\n */\nfunction prepend(elem, prev) {\n removeElement(prev);\n var parent = elem.parent;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.indexOf(elem), 0, prev);\n }\n if (elem.prev) {\n elem.prev.next = prev;\n }\n prev.parent = parent;\n prev.prev = elem.prev;\n prev.next = elem;\n elem.prev = prev;\n}\nexports.prepend = prepend;\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar decode_codepoint_1 = __importDefault(require(\"entities/lib/decode_codepoint\"));\nvar entities_json_1 = __importDefault(require(\"entities/lib/maps/entities.json\"));\nvar legacy_json_1 = __importDefault(require(\"entities/lib/maps/legacy.json\"));\nvar xml_json_1 = __importDefault(require(\"entities/lib/maps/xml.json\"));\nfunction whitespace(c) {\n return c === \" \" || c === \"\\n\" || c === \"\\t\" || c === \"\\f\" || c === \"\\r\";\n}\nfunction isASCIIAlpha(c) {\n return (c >= \"a\" && c <= \"z\") || (c >= \"A\" && c <= \"Z\");\n}\nfunction ifElseState(upper, SUCCESS, FAILURE) {\n var lower = upper.toLowerCase();\n if (upper === lower) {\n return function (t, c) {\n if (c === lower) {\n t._state = SUCCESS;\n }\n else {\n t._state = FAILURE;\n t._index--;\n }\n };\n }\n return function (t, c) {\n if (c === lower || c === upper) {\n t._state = SUCCESS;\n }\n else {\n t._state = FAILURE;\n t._index--;\n }\n };\n}\nfunction consumeSpecialNameChar(upper, NEXT_STATE) {\n var lower = upper.toLowerCase();\n return function (t, c) {\n if (c === lower || c === upper) {\n t._state = NEXT_STATE;\n }\n else {\n t._state = 3 /* InTagName */;\n t._index--; // Consume the token again\n }\n };\n}\nvar stateBeforeCdata1 = ifElseState(\"C\", 24 /* BeforeCdata2 */, 16 /* InDeclaration */);\nvar stateBeforeCdata2 = ifElseState(\"D\", 25 /* BeforeCdata3 */, 16 /* InDeclaration */);\nvar stateBeforeCdata3 = ifElseState(\"A\", 26 /* BeforeCdata4 */, 16 /* InDeclaration */);\nvar stateBeforeCdata4 = ifElseState(\"T\", 27 /* BeforeCdata5 */, 16 /* InDeclaration */);\nvar stateBeforeCdata5 = ifElseState(\"A\", 28 /* BeforeCdata6 */, 16 /* InDeclaration */);\nvar stateBeforeScript1 = consumeSpecialNameChar(\"R\", 35 /* BeforeScript2 */);\nvar stateBeforeScript2 = consumeSpecialNameChar(\"I\", 36 /* BeforeScript3 */);\nvar stateBeforeScript3 = consumeSpecialNameChar(\"P\", 37 /* BeforeScript4 */);\nvar stateBeforeScript4 = consumeSpecialNameChar(\"T\", 38 /* BeforeScript5 */);\nvar stateAfterScript1 = ifElseState(\"R\", 40 /* AfterScript2 */, 1 /* Text */);\nvar stateAfterScript2 = ifElseState(\"I\", 41 /* AfterScript3 */, 1 /* Text */);\nvar stateAfterScript3 = ifElseState(\"P\", 42 /* AfterScript4 */, 1 /* Text */);\nvar stateAfterScript4 = ifElseState(\"T\", 43 /* AfterScript5 */, 1 /* Text */);\nvar stateBeforeStyle1 = consumeSpecialNameChar(\"Y\", 45 /* BeforeStyle2 */);\nvar stateBeforeStyle2 = consumeSpecialNameChar(\"L\", 46 /* BeforeStyle3 */);\nvar stateBeforeStyle3 = consumeSpecialNameChar(\"E\", 47 /* BeforeStyle4 */);\nvar stateAfterStyle1 = ifElseState(\"Y\", 49 /* AfterStyle2 */, 1 /* Text */);\nvar stateAfterStyle2 = ifElseState(\"L\", 50 /* AfterStyle3 */, 1 /* Text */);\nvar stateAfterStyle3 = ifElseState(\"E\", 51 /* AfterStyle4 */, 1 /* Text */);\nvar stateBeforeSpecialT = consumeSpecialNameChar(\"I\", 54 /* BeforeTitle1 */);\nvar stateBeforeTitle1 = consumeSpecialNameChar(\"T\", 55 /* BeforeTitle2 */);\nvar stateBeforeTitle2 = consumeSpecialNameChar(\"L\", 56 /* BeforeTitle3 */);\nvar stateBeforeTitle3 = consumeSpecialNameChar(\"E\", 57 /* BeforeTitle4 */);\nvar stateAfterSpecialTEnd = ifElseState(\"I\", 58 /* AfterTitle1 */, 1 /* Text */);\nvar stateAfterTitle1 = ifElseState(\"T\", 59 /* AfterTitle2 */, 1 /* Text */);\nvar stateAfterTitle2 = ifElseState(\"L\", 60 /* AfterTitle3 */, 1 /* Text */);\nvar stateAfterTitle3 = ifElseState(\"E\", 61 /* AfterTitle4 */, 1 /* Text */);\nvar stateBeforeEntity = ifElseState(\"#\", 63 /* BeforeNumericEntity */, 64 /* InNamedEntity */);\nvar stateBeforeNumericEntity = ifElseState(\"X\", 66 /* InHexEntity */, 65 /* InNumericEntity */);\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer(options, cbs) {\n var _a;\n /** The current state the tokenizer is in. */\n this._state = 1 /* Text */;\n /** The read buffer. */\n this.buffer = \"\";\n /** The beginning of the section that is currently being read. */\n this.sectionStart = 0;\n /** The index within the buffer that we are currently looking at. */\n this._index = 0;\n /**\n * Data that has already been processed will be removed from the buffer occasionally.\n * `_bufferOffset` keeps track of how many characters have been removed, to make sure position information is accurate.\n */\n this.bufferOffset = 0;\n /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n this.baseState = 1 /* Text */;\n /** For special parsing behavior inside of script and style tags. */\n this.special = 1 /* None */;\n /** Indicates whether the tokenizer has been paused. */\n this.running = true;\n /** Indicates whether the tokenizer has finished running / `.end` has been called. */\n this.ended = false;\n this.cbs = cbs;\n this.xmlMode = !!(options === null || options === void 0 ? void 0 : options.xmlMode);\n this.decodeEntities = (_a = options === null || options === void 0 ? void 0 : options.decodeEntities) !== null && _a !== void 0 ? _a : true;\n }\n Tokenizer.prototype.reset = function () {\n this._state = 1 /* Text */;\n this.buffer = \"\";\n this.sectionStart = 0;\n this._index = 0;\n this.bufferOffset = 0;\n this.baseState = 1 /* Text */;\n this.special = 1 /* None */;\n this.running = true;\n this.ended = false;\n };\n Tokenizer.prototype.write = function (chunk) {\n if (this.ended)\n this.cbs.onerror(Error(\".write() after done!\"));\n this.buffer += chunk;\n this.parse();\n };\n Tokenizer.prototype.end = function (chunk) {\n if (this.ended)\n this.cbs.onerror(Error(\".end() after done!\"));\n if (chunk)\n this.write(chunk);\n this.ended = true;\n if (this.running)\n this.finish();\n };\n Tokenizer.prototype.pause = function () {\n this.running = false;\n };\n Tokenizer.prototype.resume = function () {\n this.running = true;\n if (this._index < this.buffer.length) {\n this.parse();\n }\n if (this.ended) {\n this.finish();\n }\n };\n /**\n * The current index within all of the written data.\n */\n Tokenizer.prototype.getAbsoluteIndex = function () {\n return this.bufferOffset + this._index;\n };\n Tokenizer.prototype.stateText = function (c) {\n if (c === \"<\") {\n if (this._index > this.sectionStart) {\n this.cbs.ontext(this.getSection());\n }\n this._state = 2 /* BeforeTagName */;\n this.sectionStart = this._index;\n }\n else if (this.decodeEntities &&\n c === \"&\" &&\n (this.special === 1 /* None */ || this.special === 4 /* Title */)) {\n if (this._index > this.sectionStart) {\n this.cbs.ontext(this.getSection());\n }\n this.baseState = 1 /* Text */;\n this._state = 62 /* BeforeEntity */;\n this.sectionStart = this._index;\n }\n };\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n Tokenizer.prototype.isTagStartChar = function (c) {\n return (isASCIIAlpha(c) ||\n (this.xmlMode && !whitespace(c) && c !== \"/\" && c !== \">\"));\n };\n Tokenizer.prototype.stateBeforeTagName = function (c) {\n if (c === \"/\") {\n this._state = 5 /* BeforeClosingTagName */;\n }\n else if (c === \"<\") {\n this.cbs.ontext(this.getSection());\n this.sectionStart = this._index;\n }\n else if (c === \">\" ||\n this.special !== 1 /* None */ ||\n whitespace(c)) {\n this._state = 1 /* Text */;\n }\n else if (c === \"!\") {\n this._state = 15 /* BeforeDeclaration */;\n this.sectionStart = this._index + 1;\n }\n else if (c === \"?\") {\n this._state = 17 /* InProcessingInstruction */;\n this.sectionStart = this._index + 1;\n }\n else if (!this.isTagStartChar(c)) {\n this._state = 1 /* Text */;\n }\n else {\n this._state =\n !this.xmlMode && (c === \"s\" || c === \"S\")\n ? 32 /* BeforeSpecialS */\n : !this.xmlMode && (c === \"t\" || c === \"T\")\n ? 52 /* BeforeSpecialT */\n : 3 /* InTagName */;\n this.sectionStart = this._index;\n }\n };\n Tokenizer.prototype.stateInTagName = function (c) {\n if (c === \"/\" || c === \">\" || whitespace(c)) {\n this.emitToken(\"onopentagname\");\n this._state = 8 /* BeforeAttributeName */;\n this._index--;\n }\n };\n Tokenizer.prototype.stateBeforeClosingTagName = function (c) {\n if (whitespace(c)) {\n // Ignore\n }\n else if (c === \">\") {\n this._state = 1 /* Text */;\n }\n else if (this.special !== 1 /* None */) {\n if (this.special !== 4 /* Title */ && (c === \"s\" || c === \"S\")) {\n this._state = 33 /* BeforeSpecialSEnd */;\n }\n else if (this.special === 4 /* Title */ &&\n (c === \"t\" || c === \"T\")) {\n this._state = 53 /* BeforeSpecialTEnd */;\n }\n else {\n this._state = 1 /* Text */;\n this._index--;\n }\n }\n else if (!this.isTagStartChar(c)) {\n this._state = 20 /* InSpecialComment */;\n this.sectionStart = this._index;\n }\n else {\n this._state = 6 /* InClosingTagName */;\n this.sectionStart = this._index;\n }\n };\n Tokenizer.prototype.stateInClosingTagName = function (c) {\n if (c === \">\" || whitespace(c)) {\n this.emitToken(\"onclosetag\");\n this._state = 7 /* AfterClosingTagName */;\n this._index--;\n }\n };\n Tokenizer.prototype.stateAfterClosingTagName = function (c) {\n // Skip everything until \">\"\n if (c === \">\") {\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeName = function (c) {\n if (c === \">\") {\n this.cbs.onopentagend();\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n else if (c === \"/\") {\n this._state = 4 /* InSelfClosingTag */;\n }\n else if (!whitespace(c)) {\n this._state = 9 /* InAttributeName */;\n this.sectionStart = this._index;\n }\n };\n Tokenizer.prototype.stateInSelfClosingTag = function (c) {\n if (c === \">\") {\n this.cbs.onselfclosingtag();\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n this.special = 1 /* None */; // Reset special state, in case of self-closing special tags\n }\n else if (!whitespace(c)) {\n this._state = 8 /* BeforeAttributeName */;\n this._index--;\n }\n };\n Tokenizer.prototype.stateInAttributeName = function (c) {\n if (c === \"=\" || c === \"/\" || c === \">\" || whitespace(c)) {\n this.cbs.onattribname(this.getSection());\n this.sectionStart = -1;\n this._state = 10 /* AfterAttributeName */;\n this._index--;\n }\n };\n Tokenizer.prototype.stateAfterAttributeName = function (c) {\n if (c === \"=\") {\n this._state = 11 /* BeforeAttributeValue */;\n }\n else if (c === \"/\" || c === \">\") {\n this.cbs.onattribend(undefined);\n this._state = 8 /* BeforeAttributeName */;\n this._index--;\n }\n else if (!whitespace(c)) {\n this.cbs.onattribend(undefined);\n this._state = 9 /* InAttributeName */;\n this.sectionStart = this._index;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeValue = function (c) {\n if (c === '\"') {\n this._state = 12 /* InAttributeValueDq */;\n this.sectionStart = this._index + 1;\n }\n else if (c === \"'\") {\n this._state = 13 /* InAttributeValueSq */;\n this.sectionStart = this._index + 1;\n }\n else if (!whitespace(c)) {\n this._state = 14 /* InAttributeValueNq */;\n this.sectionStart = this._index;\n this._index--; // Reconsume token\n }\n };\n Tokenizer.prototype.handleInAttributeValue = function (c, quote) {\n if (c === quote) {\n this.emitToken(\"onattribdata\");\n this.cbs.onattribend(quote);\n this._state = 8 /* BeforeAttributeName */;\n }\n else if (this.decodeEntities && c === \"&\") {\n this.emitToken(\"onattribdata\");\n this.baseState = this._state;\n this._state = 62 /* BeforeEntity */;\n this.sectionStart = this._index;\n }\n };\n Tokenizer.prototype.stateInAttributeValueDoubleQuotes = function (c) {\n this.handleInAttributeValue(c, '\"');\n };\n Tokenizer.prototype.stateInAttributeValueSingleQuotes = function (c) {\n this.handleInAttributeValue(c, \"'\");\n };\n Tokenizer.prototype.stateInAttributeValueNoQuotes = function (c) {\n if (whitespace(c) || c === \">\") {\n this.emitToken(\"onattribdata\");\n this.cbs.onattribend(null);\n this._state = 8 /* BeforeAttributeName */;\n this._index--;\n }\n else if (this.decodeEntities && c === \"&\") {\n this.emitToken(\"onattribdata\");\n this.baseState = this._state;\n this._state = 62 /* BeforeEntity */;\n this.sectionStart = this._index;\n }\n };\n Tokenizer.prototype.stateBeforeDeclaration = function (c) {\n this._state =\n c === \"[\"\n ? 23 /* BeforeCdata1 */\n : c === \"-\"\n ? 18 /* BeforeComment */\n : 16 /* InDeclaration */;\n };\n Tokenizer.prototype.stateInDeclaration = function (c) {\n if (c === \">\") {\n this.cbs.ondeclaration(this.getSection());\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n };\n Tokenizer.prototype.stateInProcessingInstruction = function (c) {\n if (c === \">\") {\n this.cbs.onprocessinginstruction(this.getSection());\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeComment = function (c) {\n if (c === \"-\") {\n this._state = 19 /* InComment */;\n this.sectionStart = this._index + 1;\n }\n else {\n this._state = 16 /* InDeclaration */;\n }\n };\n Tokenizer.prototype.stateInComment = function (c) {\n if (c === \"-\")\n this._state = 21 /* AfterComment1 */;\n };\n Tokenizer.prototype.stateInSpecialComment = function (c) {\n if (c === \">\") {\n this.cbs.oncomment(this.buffer.substring(this.sectionStart, this._index));\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n };\n Tokenizer.prototype.stateAfterComment1 = function (c) {\n if (c === \"-\") {\n this._state = 22 /* AfterComment2 */;\n }\n else {\n this._state = 19 /* InComment */;\n }\n };\n Tokenizer.prototype.stateAfterComment2 = function (c) {\n if (c === \">\") {\n // Remove 2 trailing chars\n this.cbs.oncomment(this.buffer.substring(this.sectionStart, this._index - 2));\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n else if (c !== \"-\") {\n this._state = 19 /* InComment */;\n }\n // Else: stay in AFTER_COMMENT_2 (`--->`)\n };\n Tokenizer.prototype.stateBeforeCdata6 = function (c) {\n if (c === \"[\") {\n this._state = 29 /* InCdata */;\n this.sectionStart = this._index + 1;\n }\n else {\n this._state = 16 /* InDeclaration */;\n this._index--;\n }\n };\n Tokenizer.prototype.stateInCdata = function (c) {\n if (c === \"]\")\n this._state = 30 /* AfterCdata1 */;\n };\n Tokenizer.prototype.stateAfterCdata1 = function (c) {\n if (c === \"]\")\n this._state = 31 /* AfterCdata2 */;\n else\n this._state = 29 /* InCdata */;\n };\n Tokenizer.prototype.stateAfterCdata2 = function (c) {\n if (c === \">\") {\n // Remove 2 trailing chars\n this.cbs.oncdata(this.buffer.substring(this.sectionStart, this._index - 2));\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n else if (c !== \"]\") {\n this._state = 29 /* InCdata */;\n }\n // Else: stay in AFTER_CDATA_2 (`]]]>`)\n };\n Tokenizer.prototype.stateBeforeSpecialS = function (c) {\n if (c === \"c\" || c === \"C\") {\n this._state = 34 /* BeforeScript1 */;\n }\n else if (c === \"t\" || c === \"T\") {\n this._state = 44 /* BeforeStyle1 */;\n }\n else {\n this._state = 3 /* InTagName */;\n this._index--; // Consume the token again\n }\n };\n Tokenizer.prototype.stateBeforeSpecialSEnd = function (c) {\n if (this.special === 2 /* Script */ && (c === \"c\" || c === \"C\")) {\n this._state = 39 /* AfterScript1 */;\n }\n else if (this.special === 3 /* Style */ && (c === \"t\" || c === \"T\")) {\n this._state = 48 /* AfterStyle1 */;\n }\n else\n this._state = 1 /* Text */;\n };\n Tokenizer.prototype.stateBeforeSpecialLast = function (c, special) {\n if (c === \"/\" || c === \">\" || whitespace(c)) {\n this.special = special;\n }\n this._state = 3 /* InTagName */;\n this._index--; // Consume the token again\n };\n Tokenizer.prototype.stateAfterSpecialLast = function (c, sectionStartOffset) {\n if (c === \">\" || whitespace(c)) {\n this.special = 1 /* None */;\n this._state = 6 /* InClosingTagName */;\n this.sectionStart = this._index - sectionStartOffset;\n this._index--; // Reconsume the token\n }\n else\n this._state = 1 /* Text */;\n };\n // For entities terminated with a semicolon\n Tokenizer.prototype.parseFixedEntity = function (map) {\n if (map === void 0) { map = this.xmlMode ? xml_json_1.default : entities_json_1.default; }\n // Offset = 1\n if (this.sectionStart + 1 < this._index) {\n var entity = this.buffer.substring(this.sectionStart + 1, this._index);\n if (Object.prototype.hasOwnProperty.call(map, entity)) {\n this.emitPartial(map[entity]);\n this.sectionStart = this._index + 1;\n }\n }\n };\n // Parses legacy entities (without trailing semicolon)\n Tokenizer.prototype.parseLegacyEntity = function () {\n var start = this.sectionStart + 1;\n // The max length of legacy entities is 6\n var limit = Math.min(this._index - start, 6);\n while (limit >= 2) {\n // The min length of legacy entities is 2\n var entity = this.buffer.substr(start, limit);\n if (Object.prototype.hasOwnProperty.call(legacy_json_1.default, entity)) {\n this.emitPartial(legacy_json_1.default[entity]);\n this.sectionStart += limit + 1;\n return;\n }\n limit--;\n }\n };\n Tokenizer.prototype.stateInNamedEntity = function (c) {\n if (c === \";\") {\n this.parseFixedEntity();\n // Retry as legacy entity if entity wasn't parsed\n if (this.baseState === 1 /* Text */ &&\n this.sectionStart + 1 < this._index &&\n !this.xmlMode) {\n this.parseLegacyEntity();\n }\n this._state = this.baseState;\n }\n else if ((c < \"0\" || c > \"9\") && !isASCIIAlpha(c)) {\n if (this.xmlMode || this.sectionStart + 1 === this._index) {\n // Ignore\n }\n else if (this.baseState !== 1 /* Text */) {\n if (c !== \"=\") {\n // Parse as legacy entity, without allowing additional characters.\n this.parseFixedEntity(legacy_json_1.default);\n }\n }\n else {\n this.parseLegacyEntity();\n }\n this._state = this.baseState;\n this._index--;\n }\n };\n Tokenizer.prototype.decodeNumericEntity = function (offset, base, strict) {\n var sectionStart = this.sectionStart + offset;\n if (sectionStart !== this._index) {\n // Parse entity\n var entity = this.buffer.substring(sectionStart, this._index);\n var parsed = parseInt(entity, base);\n this.emitPartial(decode_codepoint_1.default(parsed));\n this.sectionStart = strict ? this._index + 1 : this._index;\n }\n this._state = this.baseState;\n };\n Tokenizer.prototype.stateInNumericEntity = function (c) {\n if (c === \";\") {\n this.decodeNumericEntity(2, 10, true);\n }\n else if (c < \"0\" || c > \"9\") {\n if (!this.xmlMode) {\n this.decodeNumericEntity(2, 10, false);\n }\n else {\n this._state = this.baseState;\n }\n this._index--;\n }\n };\n Tokenizer.prototype.stateInHexEntity = function (c) {\n if (c === \";\") {\n this.decodeNumericEntity(3, 16, true);\n }\n else if ((c < \"a\" || c > \"f\") &&\n (c < \"A\" || c > \"F\") &&\n (c < \"0\" || c > \"9\")) {\n if (!this.xmlMode) {\n this.decodeNumericEntity(3, 16, false);\n }\n else {\n this._state = this.baseState;\n }\n this._index--;\n }\n };\n Tokenizer.prototype.cleanup = function () {\n if (this.sectionStart < 0) {\n this.buffer = \"\";\n this.bufferOffset += this._index;\n this._index = 0;\n }\n else if (this.running) {\n if (this._state === 1 /* Text */) {\n if (this.sectionStart !== this._index) {\n this.cbs.ontext(this.buffer.substr(this.sectionStart));\n }\n this.buffer = \"\";\n this.bufferOffset += this._index;\n this._index = 0;\n }\n else if (this.sectionStart === this._index) {\n // The section just started\n this.buffer = \"\";\n this.bufferOffset += this._index;\n this._index = 0;\n }\n else {\n // Remove everything unnecessary\n this.buffer = this.buffer.substr(this.sectionStart);\n this._index -= this.sectionStart;\n this.bufferOffset += this.sectionStart;\n }\n this.sectionStart = 0;\n }\n };\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n Tokenizer.prototype.parse = function () {\n while (this._index < this.buffer.length && this.running) {\n var c = this.buffer.charAt(this._index);\n if (this._state === 1 /* Text */) {\n this.stateText(c);\n }\n else if (this._state === 12 /* InAttributeValueDq */) {\n this.stateInAttributeValueDoubleQuotes(c);\n }\n else if (this._state === 9 /* InAttributeName */) {\n this.stateInAttributeName(c);\n }\n else if (this._state === 19 /* InComment */) {\n this.stateInComment(c);\n }\n else if (this._state === 20 /* InSpecialComment */) {\n this.stateInSpecialComment(c);\n }\n else if (this._state === 8 /* BeforeAttributeName */) {\n this.stateBeforeAttributeName(c);\n }\n else if (this._state === 3 /* InTagName */) {\n this.stateInTagName(c);\n }\n else if (this._state === 6 /* InClosingTagName */) {\n this.stateInClosingTagName(c);\n }\n else if (this._state === 2 /* BeforeTagName */) {\n this.stateBeforeTagName(c);\n }\n else if (this._state === 10 /* AfterAttributeName */) {\n this.stateAfterAttributeName(c);\n }\n else if (this._state === 13 /* InAttributeValueSq */) {\n this.stateInAttributeValueSingleQuotes(c);\n }\n else if (this._state === 11 /* BeforeAttributeValue */) {\n this.stateBeforeAttributeValue(c);\n }\n else if (this._state === 5 /* BeforeClosingTagName */) {\n this.stateBeforeClosingTagName(c);\n }\n else if (this._state === 7 /* AfterClosingTagName */) {\n this.stateAfterClosingTagName(c);\n }\n else if (this._state === 32 /* BeforeSpecialS */) {\n this.stateBeforeSpecialS(c);\n }\n else if (this._state === 21 /* AfterComment1 */) {\n this.stateAfterComment1(c);\n }\n else if (this._state === 14 /* InAttributeValueNq */) {\n this.stateInAttributeValueNoQuotes(c);\n }\n else if (this._state === 4 /* InSelfClosingTag */) {\n this.stateInSelfClosingTag(c);\n }\n else if (this._state === 16 /* InDeclaration */) {\n this.stateInDeclaration(c);\n }\n else if (this._state === 15 /* BeforeDeclaration */) {\n this.stateBeforeDeclaration(c);\n }\n else if (this._state === 22 /* AfterComment2 */) {\n this.stateAfterComment2(c);\n }\n else if (this._state === 18 /* BeforeComment */) {\n this.stateBeforeComment(c);\n }\n else if (this._state === 33 /* BeforeSpecialSEnd */) {\n this.stateBeforeSpecialSEnd(c);\n }\n else if (this._state === 53 /* BeforeSpecialTEnd */) {\n stateAfterSpecialTEnd(this, c);\n }\n else if (this._state === 39 /* AfterScript1 */) {\n stateAfterScript1(this, c);\n }\n else if (this._state === 40 /* AfterScript2 */) {\n stateAfterScript2(this, c);\n }\n else if (this._state === 41 /* AfterScript3 */) {\n stateAfterScript3(this, c);\n }\n else if (this._state === 34 /* BeforeScript1 */) {\n stateBeforeScript1(this, c);\n }\n else if (this._state === 35 /* BeforeScript2 */) {\n stateBeforeScript2(this, c);\n }\n else if (this._state === 36 /* BeforeScript3 */) {\n stateBeforeScript3(this, c);\n }\n else if (this._state === 37 /* BeforeScript4 */) {\n stateBeforeScript4(this, c);\n }\n else if (this._state === 38 /* BeforeScript5 */) {\n this.stateBeforeSpecialLast(c, 2 /* Script */);\n }\n else if (this._state === 42 /* AfterScript4 */) {\n stateAfterScript4(this, c);\n }\n else if (this._state === 43 /* AfterScript5 */) {\n this.stateAfterSpecialLast(c, 6);\n }\n else if (this._state === 44 /* BeforeStyle1 */) {\n stateBeforeStyle1(this, c);\n }\n else if (this._state === 29 /* InCdata */) {\n this.stateInCdata(c);\n }\n else if (this._state === 45 /* BeforeStyle2 */) {\n stateBeforeStyle2(this, c);\n }\n else if (this._state === 46 /* BeforeStyle3 */) {\n stateBeforeStyle3(this, c);\n }\n else if (this._state === 47 /* BeforeStyle4 */) {\n this.stateBeforeSpecialLast(c, 3 /* Style */);\n }\n else if (this._state === 48 /* AfterStyle1 */) {\n stateAfterStyle1(this, c);\n }\n else if (this._state === 49 /* AfterStyle2 */) {\n stateAfterStyle2(this, c);\n }\n else if (this._state === 50 /* AfterStyle3 */) {\n stateAfterStyle3(this, c);\n }\n else if (this._state === 51 /* AfterStyle4 */) {\n this.stateAfterSpecialLast(c, 5);\n }\n else if (this._state === 52 /* BeforeSpecialT */) {\n stateBeforeSpecialT(this, c);\n }\n else if (this._state === 54 /* BeforeTitle1 */) {\n stateBeforeTitle1(this, c);\n }\n else if (this._state === 55 /* BeforeTitle2 */) {\n stateBeforeTitle2(this, c);\n }\n else if (this._state === 56 /* BeforeTitle3 */) {\n stateBeforeTitle3(this, c);\n }\n else if (this._state === 57 /* BeforeTitle4 */) {\n this.stateBeforeSpecialLast(c, 4 /* Title */);\n }\n else if (this._state === 58 /* AfterTitle1 */) {\n stateAfterTitle1(this, c);\n }\n else if (this._state === 59 /* AfterTitle2 */) {\n stateAfterTitle2(this, c);\n }\n else if (this._state === 60 /* AfterTitle3 */) {\n stateAfterTitle3(this, c);\n }\n else if (this._state === 61 /* AfterTitle4 */) {\n this.stateAfterSpecialLast(c, 5);\n }\n else if (this._state === 17 /* InProcessingInstruction */) {\n this.stateInProcessingInstruction(c);\n }\n else if (this._state === 64 /* InNamedEntity */) {\n this.stateInNamedEntity(c);\n }\n else if (this._state === 23 /* BeforeCdata1 */) {\n stateBeforeCdata1(this, c);\n }\n else if (this._state === 62 /* BeforeEntity */) {\n stateBeforeEntity(this, c);\n }\n else if (this._state === 24 /* BeforeCdata2 */) {\n stateBeforeCdata2(this, c);\n }\n else if (this._state === 25 /* BeforeCdata3 */) {\n stateBeforeCdata3(this, c);\n }\n else if (this._state === 30 /* AfterCdata1 */) {\n this.stateAfterCdata1(c);\n }\n else if (this._state === 31 /* AfterCdata2 */) {\n this.stateAfterCdata2(c);\n }\n else if (this._state === 26 /* BeforeCdata4 */) {\n stateBeforeCdata4(this, c);\n }\n else if (this._state === 27 /* BeforeCdata5 */) {\n stateBeforeCdata5(this, c);\n }\n else if (this._state === 28 /* BeforeCdata6 */) {\n this.stateBeforeCdata6(c);\n }\n else if (this._state === 66 /* InHexEntity */) {\n this.stateInHexEntity(c);\n }\n else if (this._state === 65 /* InNumericEntity */) {\n this.stateInNumericEntity(c);\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n }\n else if (this._state === 63 /* BeforeNumericEntity */) {\n stateBeforeNumericEntity(this, c);\n }\n else {\n this.cbs.onerror(Error(\"unknown _state\"), this._state);\n }\n this._index++;\n }\n this.cleanup();\n };\n Tokenizer.prototype.finish = function () {\n // If there is remaining data, emit it in a reasonable way\n if (this.sectionStart < this._index) {\n this.handleTrailingData();\n }\n this.cbs.onend();\n };\n Tokenizer.prototype.handleTrailingData = function () {\n var data = this.buffer.substr(this.sectionStart);\n if (this._state === 29 /* InCdata */ ||\n this._state === 30 /* AfterCdata1 */ ||\n this._state === 31 /* AfterCdata2 */) {\n this.cbs.oncdata(data);\n }\n else if (this._state === 19 /* InComment */ ||\n this._state === 21 /* AfterComment1 */ ||\n this._state === 22 /* AfterComment2 */) {\n this.cbs.oncomment(data);\n }\n else if (this._state === 64 /* InNamedEntity */ && !this.xmlMode) {\n this.parseLegacyEntity();\n if (this.sectionStart < this._index) {\n this._state = this.baseState;\n this.handleTrailingData();\n }\n }\n else if (this._state === 65 /* InNumericEntity */ && !this.xmlMode) {\n this.decodeNumericEntity(2, 10, false);\n if (this.sectionStart < this._index) {\n this._state = this.baseState;\n this.handleTrailingData();\n }\n }\n else if (this._state === 66 /* InHexEntity */ && !this.xmlMode) {\n this.decodeNumericEntity(3, 16, false);\n if (this.sectionStart < this._index) {\n this._state = this.baseState;\n this.handleTrailingData();\n }\n }\n else if (this._state !== 3 /* InTagName */ &&\n this._state !== 8 /* BeforeAttributeName */ &&\n this._state !== 11 /* BeforeAttributeValue */ &&\n this._state !== 10 /* AfterAttributeName */ &&\n this._state !== 9 /* InAttributeName */ &&\n this._state !== 13 /* InAttributeValueSq */ &&\n this._state !== 12 /* InAttributeValueDq */ &&\n this._state !== 14 /* InAttributeValueNq */ &&\n this._state !== 6 /* InClosingTagName */) {\n this.cbs.ontext(data);\n }\n /*\n * Else, ignore remaining data\n * TODO add a way to remove current tag\n */\n };\n Tokenizer.prototype.getSection = function () {\n return this.buffer.substring(this.sectionStart, this._index);\n };\n Tokenizer.prototype.emitToken = function (name) {\n this.cbs[name](this.getSection());\n this.sectionStart = -1;\n };\n Tokenizer.prototype.emitPartial = function (value) {\n if (this.baseState !== 1 /* Text */) {\n this.cbs.onattribdata(value); // TODO implement the new event\n }\n else {\n this.cbs.ontext(value);\n }\n };\n return Tokenizer;\n}());\nexports.default = Tokenizer;\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RssHandler = exports.DefaultHandler = exports.DomUtils = exports.ElementType = exports.Tokenizer = exports.createDomStream = exports.parseDOM = exports.parseDocument = exports.DomHandler = exports.Parser = void 0;\nvar Parser_1 = require(\"./Parser\");\nObject.defineProperty(exports, \"Parser\", { enumerable: true, get: function () { return Parser_1.Parser; } });\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"DomHandler\", { enumerable: true, get: function () { return domhandler_1.DomHandler; } });\nObject.defineProperty(exports, \"DefaultHandler\", { enumerable: true, get: function () { return domhandler_1.DomHandler; } });\n// Helper methods\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n */\nfunction parseDocument(data, options) {\n var handler = new domhandler_1.DomHandler(undefined, options);\n new Parser_1.Parser(handler, options).end(data);\n return handler.root;\n}\nexports.parseDocument = parseDocument;\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n * @deprecated Use `parseDocument` instead.\n */\nfunction parseDOM(data, options) {\n return parseDocument(data, options).children;\n}\nexports.parseDOM = parseDOM;\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param cb A callback that will be called once parsing has been completed.\n * @param options Optional options for the parser and DOM builder.\n * @param elementCb An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nfunction createDomStream(cb, options, elementCb) {\n var handler = new domhandler_1.DomHandler(cb, options, elementCb);\n return new Parser_1.Parser(handler, options);\n}\nexports.createDomStream = createDomStream;\nvar Tokenizer_1 = require(\"./Tokenizer\");\nObject.defineProperty(exports, \"Tokenizer\", { enumerable: true, get: function () { return __importDefault(Tokenizer_1).default; } });\nvar ElementType = __importStar(require(\"domelementtype\"));\nexports.ElementType = ElementType;\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\n__exportStar(require(\"./FeedHandler\"), exports);\nexports.DomUtils = __importStar(require(\"domutils\"));\nvar FeedHandler_1 = require(\"./FeedHandler\");\nObject.defineProperty(exports, \"RssHandler\", { enumerable: true, get: function () { return FeedHandler_1.FeedHandler; } });\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.innerText = exports.textContent = exports.getText = exports.getInnerHTML = exports.getOuterHTML = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar dom_serializer_1 = __importDefault(require(\"dom-serializer\"));\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * @param node Node to get the outer HTML of.\n * @param options Options for serialization.\n * @deprecated Use the `dom-serializer` module directly.\n * @returns `node`'s outer HTML.\n */\nfunction getOuterHTML(node, options) {\n return (0, dom_serializer_1.default)(node, options);\n}\nexports.getOuterHTML = getOuterHTML;\n/**\n * @param node Node to get the inner HTML of.\n * @param options Options for serialization.\n * @deprecated Use the `dom-serializer` module directly.\n * @returns `node`'s inner HTML.\n */\nfunction getInnerHTML(node, options) {\n return (0, domhandler_1.hasChildren)(node)\n ? node.children.map(function (node) { return getOuterHTML(node, options); }).join(\"\")\n : \"\";\n}\nexports.getInnerHTML = getInnerHTML;\n/**\n * Get a node's inner text. Same as `textContent`, but inserts newlines for `
` tags.\n *\n * @deprecated Use `textContent` instead.\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n */\nfunction getText(node) {\n if (Array.isArray(node))\n return node.map(getText).join(\"\");\n if ((0, domhandler_1.isTag)(node))\n return node.name === \"br\" ? \"\\n\" : getText(node.children);\n if ((0, domhandler_1.isCDATA)(node))\n return getText(node.children);\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.getText = getText;\n/**\n * Get a node's text content.\n *\n * @param node Node to get the text content of.\n * @returns `node`'s text content.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent}\n */\nfunction textContent(node) {\n if (Array.isArray(node))\n return node.map(textContent).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) {\n return textContent(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.textContent = textContent;\n/**\n * Get a node's inner text.\n *\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText}\n */\nfunction innerText(node) {\n if (Array.isArray(node))\n return node.map(innerText).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) {\n return innerText(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.innerText = innerText;\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasChildren = exports.isDocument = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = void 0;\n__exportStar(require(\"./stringify\"), exports);\n__exportStar(require(\"./traversal\"), exports);\n__exportStar(require(\"./manipulation\"), exports);\n__exportStar(require(\"./querying\"), exports);\n__exportStar(require(\"./legacy\"), exports);\n__exportStar(require(\"./helpers\"), exports);\n__exportStar(require(\"./feeds\"), exports);\n/** @deprecated Use these methods from `domhandler` directly. */\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"isTag\", { enumerable: true, get: function () { return domhandler_1.isTag; } });\nObject.defineProperty(exports, \"isCDATA\", { enumerable: true, get: function () { return domhandler_1.isCDATA; } });\nObject.defineProperty(exports, \"isText\", { enumerable: true, get: function () { return domhandler_1.isText; } });\nObject.defineProperty(exports, \"isComment\", { enumerable: true, get: function () { return domhandler_1.isComment; } });\nObject.defineProperty(exports, \"isDocument\", { enumerable: true, get: function () { return domhandler_1.isDocument; } });\nObject.defineProperty(exports, \"hasChildren\", { enumerable: true, get: function () { return domhandler_1.hasChildren; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prevElementSibling = exports.nextElementSibling = exports.getName = exports.hasAttrib = exports.getAttributeValue = exports.getSiblings = exports.getParent = exports.getChildren = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar emptyArray = [];\n/**\n * Get a node's children.\n *\n * @param elem Node to get the children of.\n * @returns `elem`'s children, or an empty array.\n */\nfunction getChildren(elem) {\n var _a;\n return (_a = elem.children) !== null && _a !== void 0 ? _a : emptyArray;\n}\nexports.getChildren = getChildren;\n/**\n * Get a node's parent.\n *\n * @param elem Node to get the parent of.\n * @returns `elem`'s parent node.\n */\nfunction getParent(elem) {\n return elem.parent || null;\n}\nexports.getParent = getParent;\n/**\n * Gets an elements siblings, including the element itself.\n *\n * Attempts to get the children through the element's parent first.\n * If we don't have a parent (the element is a root node),\n * we walk the element's `prev` & `next` to get all remaining nodes.\n *\n * @param elem Element to get the siblings of.\n * @returns `elem`'s siblings.\n */\nfunction getSiblings(elem) {\n var _a, _b;\n var parent = getParent(elem);\n if (parent != null)\n return getChildren(parent);\n var siblings = [elem];\n var prev = elem.prev, next = elem.next;\n while (prev != null) {\n siblings.unshift(prev);\n (_a = prev, prev = _a.prev);\n }\n while (next != null) {\n siblings.push(next);\n (_b = next, next = _b.next);\n }\n return siblings;\n}\nexports.getSiblings = getSiblings;\n/**\n * Gets an attribute from an element.\n *\n * @param elem Element to check.\n * @param name Attribute name to retrieve.\n * @returns The element's attribute value, or `undefined`.\n */\nfunction getAttributeValue(elem, name) {\n var _a;\n return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name];\n}\nexports.getAttributeValue = getAttributeValue;\n/**\n * Checks whether an element has an attribute.\n *\n * @param elem Element to check.\n * @param name Attribute name to look for.\n * @returns Returns whether `elem` has the attribute `name`.\n */\nfunction hasAttrib(elem, name) {\n return (elem.attribs != null &&\n Object.prototype.hasOwnProperty.call(elem.attribs, name) &&\n elem.attribs[name] != null);\n}\nexports.hasAttrib = hasAttrib;\n/**\n * Get the tag name of an element.\n *\n * @param elem The element to get the name for.\n * @returns The tag name of `elem`.\n */\nfunction getName(elem) {\n return elem.name;\n}\nexports.getName = getName;\n/**\n * Returns the next element sibling of a node.\n *\n * @param elem The element to get the next sibling of.\n * @returns `elem`'s next sibling that is a tag.\n */\nfunction nextElementSibling(elem) {\n var _a;\n var next = elem.next;\n while (next !== null && !(0, domhandler_1.isTag)(next))\n (_a = next, next = _a.next);\n return next;\n}\nexports.nextElementSibling = nextElementSibling;\n/**\n * Returns the previous element sibling of a node.\n *\n * @param elem The element to get the previous sibling of.\n * @returns `elem`'s previous sibling that is a tag.\n */\nfunction prevElementSibling(elem) {\n var _a;\n var prev = elem.prev;\n while (prev !== null && !(0, domhandler_1.isTag)(prev))\n (_a = prev, prev = _a.prev);\n return prev;\n}\nexports.prevElementSibling = prevElementSibling;\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFeed = void 0;\nvar stringify_1 = require(\"./stringify\");\nvar legacy_1 = require(\"./legacy\");\n/**\n * Get the feed object from the root of a DOM tree.\n *\n * @param doc - The DOM to to extract the feed from.\n * @returns The feed.\n */\nfunction getFeed(doc) {\n var feedRoot = getOneElement(isValidFeed, doc);\n return !feedRoot\n ? null\n : feedRoot.name === \"feed\"\n ? getAtomFeed(feedRoot)\n : getRssFeed(feedRoot);\n}\nexports.getFeed = getFeed;\n/**\n * Parse an Atom feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getAtomFeed(feedRoot) {\n var _a;\n var childs = feedRoot.children;\n var feed = {\n type: \"atom\",\n items: (0, legacy_1.getElementsByTagName)(\"entry\", childs).map(function (item) {\n var _a;\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"id\", children);\n addConditionally(entry, \"title\", \"title\", children);\n var href = (_a = getOneElement(\"link\", children)) === null || _a === void 0 ? void 0 : _a.attribs.href;\n if (href) {\n entry.link = href;\n }\n var description = fetch(\"summary\", children) || fetch(\"content\", children);\n if (description) {\n entry.description = description;\n }\n var pubDate = fetch(\"updated\", children);\n if (pubDate) {\n entry.pubDate = new Date(pubDate);\n }\n return entry;\n }),\n };\n addConditionally(feed, \"id\", \"id\", childs);\n addConditionally(feed, \"title\", \"title\", childs);\n var href = (_a = getOneElement(\"link\", childs)) === null || _a === void 0 ? void 0 : _a.attribs.href;\n if (href) {\n feed.link = href;\n }\n addConditionally(feed, \"description\", \"subtitle\", childs);\n var updated = fetch(\"updated\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"email\", childs, true);\n return feed;\n}\n/**\n * Parse a RSS feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getRssFeed(feedRoot) {\n var _a, _b;\n var childs = (_b = (_a = getOneElement(\"channel\", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];\n var feed = {\n type: feedRoot.name.substr(0, 3),\n id: \"\",\n items: (0, legacy_1.getElementsByTagName)(\"item\", feedRoot.children).map(function (item) {\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"guid\", children);\n addConditionally(entry, \"title\", \"title\", children);\n addConditionally(entry, \"link\", \"link\", children);\n addConditionally(entry, \"description\", \"description\", children);\n var pubDate = fetch(\"pubDate\", children);\n if (pubDate)\n entry.pubDate = new Date(pubDate);\n return entry;\n }),\n };\n addConditionally(feed, \"title\", \"title\", childs);\n addConditionally(feed, \"link\", \"link\", childs);\n addConditionally(feed, \"description\", \"description\", childs);\n var updated = fetch(\"lastBuildDate\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n return feed;\n}\nvar MEDIA_KEYS_STRING = [\"url\", \"type\", \"lang\"];\nvar MEDIA_KEYS_INT = [\n \"fileSize\",\n \"bitrate\",\n \"framerate\",\n \"samplingrate\",\n \"channels\",\n \"duration\",\n \"height\",\n \"width\",\n];\n/**\n * Get all media elements of a feed item.\n *\n * @param where Nodes to search in.\n * @returns Media elements.\n */\nfunction getMediaElements(where) {\n return (0, legacy_1.getElementsByTagName)(\"media:content\", where).map(function (elem) {\n var attribs = elem.attribs;\n var media = {\n medium: attribs.medium,\n isDefault: !!attribs.isDefault,\n };\n for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) {\n var attrib = MEDIA_KEYS_STRING_1[_i];\n if (attribs[attrib]) {\n media[attrib] = attribs[attrib];\n }\n }\n for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a < MEDIA_KEYS_INT_1.length; _a++) {\n var attrib = MEDIA_KEYS_INT_1[_a];\n if (attribs[attrib]) {\n media[attrib] = parseInt(attribs[attrib], 10);\n }\n }\n if (attribs.expression) {\n media.expression =\n attribs.expression;\n }\n return media;\n });\n}\n/**\n * Get one element by tag name.\n *\n * @param tagName Tag name to look for\n * @param node Node to search in\n * @returns The element or null\n */\nfunction getOneElement(tagName, node) {\n return (0, legacy_1.getElementsByTagName)(tagName, node, true, 1)[0];\n}\n/**\n * Get the text content of an element with a certain tag name.\n *\n * @param tagName Tag name to look for.\n * @param where Node to search in.\n * @param recurse Whether to recurse into child nodes.\n * @returns The text content of the element.\n */\nfunction fetch(tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n return (0, stringify_1.textContent)((0, legacy_1.getElementsByTagName)(tagName, where, recurse, 1)).trim();\n}\n/**\n * Adds a property to an object if it has a value.\n *\n * @param obj Object to be extended\n * @param prop Property name\n * @param tagName Tag name that contains the conditionally added property\n * @param where Element to search for the property\n * @param recurse Whether to recurse into child nodes.\n */\nfunction addConditionally(obj, prop, tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n var val = fetch(tagName, where, recurse);\n if (val)\n obj[prop] = val;\n}\n/**\n * Checks if an element is a feed root node.\n *\n * @param value The name of the element to check.\n * @returns Whether an element is a feed root node.\n */\nfunction isValidFeed(value) {\n return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uniqueSort = exports.compareDocumentPosition = exports.removeSubsets = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Given an array of nodes, remove any member that is contained by another.\n *\n * @param nodes Nodes to filter.\n * @returns Remaining nodes that aren't subtrees of each other.\n */\nfunction removeSubsets(nodes) {\n var idx = nodes.length;\n /*\n * Check if each node (or one of its ancestors) is already contained in the\n * array.\n */\n while (--idx >= 0) {\n var node = nodes[idx];\n /*\n * Remove the node if it is not unique.\n * We are going through the array from the end, so we only\n * have to check nodes that preceed the node under consideration in the array.\n */\n if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {\n nodes.splice(idx, 1);\n continue;\n }\n for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) {\n if (nodes.includes(ancestor)) {\n nodes.splice(idx, 1);\n break;\n }\n }\n }\n return nodes;\n}\nexports.removeSubsets = removeSubsets;\n/**\n * Compare the position of one node against another node in any other document.\n * The return value is a bitmask with the following values:\n *\n * Document order:\n * > There is an ordering, document order, defined on all the nodes in the\n * > document corresponding to the order in which the first character of the\n * > XML representation of each node occurs in the XML representation of the\n * > document after expansion of general entities. Thus, the document element\n * > node will be the first node. Element nodes occur before their children.\n * > Thus, document order orders element nodes in order of the occurrence of\n * > their start-tag in the XML (after expansion of entities). The attribute\n * > nodes of an element occur after the element and before its children. The\n * > relative order of attribute nodes is implementation-dependent./\n *\n * Source:\n * http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n *\n * @param nodeA The first node to use in the comparison\n * @param nodeB The second node to use in the comparison\n * @returns A bitmask describing the input nodes' relative position.\n *\n * See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n * a description of these values.\n */\nfunction compareDocumentPosition(nodeA, nodeB) {\n var aParents = [];\n var bParents = [];\n if (nodeA === nodeB) {\n return 0;\n }\n var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n var maxIdx = Math.min(aParents.length, bParents.length);\n var idx = 0;\n while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n idx++;\n }\n if (idx === 0) {\n return 1 /* DISCONNECTED */;\n }\n var sharedParent = aParents[idx - 1];\n var siblings = sharedParent.children;\n var aSibling = aParents[idx];\n var bSibling = bParents[idx];\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return 4 /* FOLLOWING */ | 16 /* CONTAINED_BY */;\n }\n return 4 /* FOLLOWING */;\n }\n if (sharedParent === nodeA) {\n return 2 /* PRECEDING */ | 8 /* CONTAINS */;\n }\n return 2 /* PRECEDING */;\n}\nexports.compareDocumentPosition = compareDocumentPosition;\n/**\n * Sort an array of nodes based on their relative position in the document and\n * remove any duplicate nodes. If the array contains nodes that do not belong\n * to the same document, sort order is unspecified.\n *\n * @param nodes Array of DOM nodes.\n * @returns Collection of unique nodes, sorted in document order.\n */\nfunction uniqueSort(nodes) {\n nodes = nodes.filter(function (node, i, arr) { return !arr.includes(node, i + 1); });\n nodes.sort(function (a, b) {\n var relative = compareDocumentPosition(a, b);\n if (relative & 2 /* PRECEDING */) {\n return -1;\n }\n else if (relative & 4 /* FOLLOWING */) {\n return 1;\n }\n return 0;\n });\n return nodes;\n}\nexports.uniqueSort = uniqueSort;\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_1 = require(\"./foreignNames\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n if (!attributes)\n return;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return key + \"=\\\"\" + (opts.decodeEntities !== false\n ? entities_1.encodeXML(value)\n : value.replace(/\"/g, \""\")) + \"\\\"\";\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n case ElementType.Directive:\n case ElementType.Doctype:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\" + elem.name;\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \" + attribs;\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"\";\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\" + elem.data + \">\";\n}\nfunction renderText(elem, opts) {\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (opts.decodeEntities !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data = entities_1.encodeXML(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"\";\n}\nfunction renderComment(elem) {\n return \"\";\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findAll = exports.existsOne = exports.findOne = exports.findOneChild = exports.find = exports.filter = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Search a node and its children for nodes passing a test function.\n *\n * @param test Function to test nodes on.\n * @param node Node to search. Will be included in the result set if it matches.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction filter(test, node, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n if (!Array.isArray(node))\n node = [node];\n return find(test, node, recurse, limit);\n}\nexports.filter = filter;\n/**\n * Search an array of node and its children for nodes passing a test function.\n *\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction find(test, nodes, recurse, limit) {\n var result = [];\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var elem = nodes_1[_i];\n if (test(elem)) {\n result.push(elem);\n if (--limit <= 0)\n break;\n }\n if (recurse && (0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {\n var children = find(test, elem.children, recurse, limit);\n result.push.apply(result, children);\n limit -= children.length;\n if (limit <= 0)\n break;\n }\n }\n return result;\n}\nexports.find = find;\n/**\n * Finds the first element inside of an array that matches a test function.\n *\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns The first node in the array that passes `test`.\n */\nfunction findOneChild(test, nodes) {\n return nodes.find(test);\n}\nexports.findOneChild = findOneChild;\n/**\n * Finds one element in a tree that passes a test.\n *\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @returns The first child node that passes `test`.\n */\nfunction findOne(test, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n var elem = null;\n for (var i = 0; i < nodes.length && !elem; i++) {\n var checked = nodes[i];\n if (!(0, domhandler_1.isTag)(checked)) {\n continue;\n }\n else if (test(checked)) {\n elem = checked;\n }\n else if (recurse && checked.children.length > 0) {\n elem = findOne(test, checked.children);\n }\n }\n return elem;\n}\nexports.findOne = findOne;\n/**\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns Whether a tree of nodes contains at least one node passing a test.\n */\nfunction existsOne(test, nodes) {\n return nodes.some(function (checked) {\n return (0, domhandler_1.isTag)(checked) &&\n (test(checked) ||\n (checked.children.length > 0 &&\n existsOne(test, checked.children)));\n });\n}\nexports.existsOne = existsOne;\n/**\n * Search and array of nodes and its children for nodes passing a test function.\n *\n * Same as `find`, only with less options, leading to reduced complexity.\n *\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns All nodes passing `test`.\n */\nfunction findAll(test, nodes) {\n var _a;\n var result = [];\n var stack = nodes.filter(domhandler_1.isTag);\n var elem;\n while ((elem = stack.shift())) {\n var children = (_a = elem.children) === null || _a === void 0 ? void 0 : _a.filter(domhandler_1.isTag);\n if (children && children.length > 0) {\n stack.unshift.apply(stack, children);\n }\n if (test(elem))\n result.push(elem);\n }\n return result;\n}\nexports.findAll = findAll;\n"],"sourceRoot":""}