{"version":3,"sources":["webpack:///./node_modules/xmlbuilder/lib/XMLNodeList.js","webpack:///./node_modules/xmlbuilder/lib/NodeType.js","webpack:///./node_modules/xml2js/lib/xml2js.js","webpack:///./node_modules/readable-stream/duplex-browser.js","webpack:///./node_modules/xmlbuilder/lib/WriterState.js","webpack:///./node_modules/xmlbuilder/lib/XMLDOMImplementation.js","webpack:///./node_modules/xmlbuilder/lib/XMLDummy.js","webpack:///./node_modules/xmlbuilder/lib/XMLDTDEntity.js","webpack:///./node_modules/xmlbuilder/lib/XMLDTDAttList.js","webpack:///./node_modules/xmlbuilder/lib/XMLDOMStringList.js","webpack:///./node_modules/xmlbuilder/lib/XMLStringWriter.js","webpack:///./node_modules/xmlbuilder/lib/XMLAttribute.js","webpack:///./node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/readable-stream/writable-browser.js","webpack:///./node_modules/core-js/modules/es6.string.includes.js","webpack:///./node_modules/sax/lib/sax.js","webpack:///./node_modules/core-util-is/lib/util.js","webpack:///./node_modules/xmlbuilder/lib/XMLDTDElement.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/xml2js/lib/builder.js","webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/xmlbuilder/lib/Utility.js","webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/xmlbuilder/lib/XMLRaw.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/xmlbuilder/lib/XMLDeclaration.js","webpack:///./node_modules/xmlbuilder/lib/XMLCData.js","webpack:///./node_modules/xmlbuilder/lib/XMLDocumentCB.js","webpack:///./node_modules/xmlbuilder/lib/XMLCharacterData.js","webpack:///./node_modules/xmlbuilder/lib/XMLStringifier.js","webpack:///./node_modules/xmlbuilder/lib/XMLNamedNodeMap.js","webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/core-js/modules/es7.array.includes.js","webpack:///./node_modules/xml2js/lib/bom.js","webpack:///./node_modules/xmlbuilder/lib/index.js","webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/string_decoder/lib/string_decoder.js","webpack:///./node_modules/xml2js/lib/processors.js","webpack:///./node_modules/safe-buffer/index.js","webpack:///./node_modules/xmlbuilder/lib/XMLComment.js","webpack:///./node_modules/xmlbuilder/lib/XMLDOMConfiguration.js","webpack:///./node_modules/xmlbuilder/lib/XMLNode.js","webpack:///./node_modules/process-nextick-args/index.js","webpack:///./node_modules/xmlbuilder/lib/XMLText.js","webpack:///./node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js","webpack:///./src/mixnin.js","webpack:///./node_modules/xmlbuilder/lib/XMLWriterBase.js","webpack:///./node_modules/xml2js/lib/defaults.js","webpack:///./node_modules/xml2js/lib/parser.js","webpack:///./node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/xmlbuilder/lib/XMLDocument.js","webpack:///./node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/xmlbuilder/lib/XMLDTDNotation.js","webpack:///./node_modules/util-deprecate/browser.js","webpack:///./node_modules/xmlbuilder/lib/XMLElement.js","webpack:///./node_modules/readable-stream/passthrough.js","webpack:///./node_modules/xmlbuilder/lib/XMLStreamWriter.js","webpack:///./node_modules/readable-stream/transform.js","webpack:///./node_modules/xmlbuilder/lib/DocumentPosition.js","webpack:///./node_modules/stream-browserify/index.js","webpack:///./node_modules/xmlbuilder/lib/XMLDocType.js","webpack:///./node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/xmlbuilder/lib/XMLProcessingInstruction.js","webpack:///./node_modules/events/events.js"],"names":["module","exports","XMLNodeList","nodes","this","Object","defineProperty","prototype","get","length","clone","item","index","call","Element","Attribute","Text","CData","EntityReference","EntityDeclaration","ProcessingInstruction","Comment","Document","DocType","DocumentFragment","NotationDeclaration","Declaration","Raw","AttributeDeclaration","ElementDeclaration","Dummy","builder","defaults","parser","processors","extend","child","parent","key","hasProp","ctor","constructor","__super__","hasOwnProperty","ValidationError","superClass","message","Error","Builder","Parser","parseString","parseStringPromise","None","OpenTag","InsideTag","CloseTag","XMLDOMImplementation","hasFeature","feature","version","createDocumentType","qualifiedName","publicId","systemId","createDocument","namespaceURI","doctype","createHTMLDocument","title","getFeature","NodeType","XMLNode","XMLDummy","type","create","toString","options","isObject","XMLDTDEntity","pe","name","value","debugInfo","stringify","pubID","sysID","internal","dtdPubID","dtdSysID","nData","dtdNData","dtdEntityValue","writer","dtdEntity","filterOptions","XMLDTDAttList","elementName","attributeName","attributeType","defaultValueType","defaultValue","indexOf","match","dtdAttType","dtdAttDefault","dtdAttList","XMLDOMStringList","arr","contains","str","XMLWriterBase","XMLStringWriter","document","doc","i","len","r","ref","children","writeChildNode","pretty","slice","newline","XMLAttribute","attValue","isId","schemaTypeInfo","set","attribute","isEqualNode","node","prefix","localName","Transform","Duplex","util","afterTransform","er","data","ts","_transformState","transforming","cb","writecb","emit","writechunk","push","rs","_readableState","reading","needReadable","highWaterMark","_read","bind","needTransform","writeencoding","sync","transform","_transform","flush","_flush","on","prefinish","_this","done","stream","_writableState","inherits","chunk","encoding","_write","n","_destroy","err","_this2","err2","$export","context","INCLUDES","P","F","includes","searchString","arguments","undefined","sax","strict","opt","SAXParser","SAXStream","createStream","MAX_BUFFER_LENGTH","Stream","buffers","clearBuffers","q","c","bufferCheckPosition","lowercase","lowercasetags","looseCase","tags","closed","closedRoot","sawRoot","tag","error","noscript","state","S","BEGIN","strictEntities","ENTITIES","XML_ENTITIES","attribList","xmlns","ns","rootNS","trackPosition","position","line","column","checkBufferLength","maxAllowed","Math","max","maxActual","l","closeText","emitNode","cdata","script","m","flushBuffers","EVENTS","o","newf","keys","a","end","write","resume","close","ex","streamWraps","filter","ev","apply","_parser","writable","readable","me","onend","onerror","_decoder","forEach","h","removeAllListeners","enumerable","configurable","Buffer","isBuffer","SD","StringDecoder","handler","args","Array","splice","CDATA","DOCTYPE","XML_NAMESPACE","XMLNS_NAMESPACE","xml","nameStart","nameBody","entityStart","entityBody","isWhitespace","isQuote","isAttribEnd","isMatch","regex","test","notMatch","s","STATE","BEGIN_WHITESPACE","TEXT","TEXT_ENTITY","OPEN_WAKA","SGML_DECL","SGML_DECL_QUOTED","DOCTYPE_QUOTED","DOCTYPE_DTD","DOCTYPE_DTD_QUOTED","COMMENT_STARTING","COMMENT","COMMENT_ENDING","COMMENT_ENDED","CDATA_ENDING","CDATA_ENDING_2","PROC_INST","PROC_INST_BODY","PROC_INST_ENDING","OPEN_TAG","OPEN_TAG_SLASH","ATTRIB","ATTRIB_NAME","ATTRIB_NAME_SAW_WHITE","ATTRIB_VALUE","ATTRIB_VALUE_QUOTED","ATTRIB_VALUE_CLOSED","ATTRIB_VALUE_UNQUOTED","ATTRIB_VALUE_ENTITY_Q","ATTRIB_VALUE_ENTITY_U","CLOSE_TAG","CLOSE_TAG_SAW_WHITE","SCRIPT","SCRIPT_ENDING","e","String","fromCharCode","event","nodeType","textNode","textopts","text","trim","normalize","replace","strictFail","newTag","tagName","attributes","qname","qualName","split","local","attrib","attribName","attribValue","qn","openTag","selfClosing","uri","JSON","p","nv","isSelfClosing","toLowerCase","closeTag","t","closeTo","pop","x","parseEntity","num","entity","entityLC","numStr","charAt","parseInt","isNaN","fromCodePoint","beginWhiteSpace","startTagPosition","result","starti","substring","sgmlDecl","procInstName","procInstBody","pad","join","toUpperCase","comment","body","returnState","buffer","stringFromCharCode","floor","highSurrogate","lowSurrogate","MAX_SIZE","codeUnits","codePoint","Number","isFinite","RangeError","isArray","arg","objectToString","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","re","isDate","d","isError","isFunction","isPrimitive","XMLDTDElement","dtdElementValue","dtdElement","superCtor","super_","TempCtor","escapeCDATA","requiresCDATA","wrapCDATA","entry","opts","buildObject","rootObj","attrkey","charkey","render","rootElement","rootName","element","obj","attr","raw","txt","ele","up","att","xmldec","headless","allowSurrogateChars","renderOpts","EventEmitter","assign","getValue","isEmpty","isPlainObject","source","sources","target","val","proto","getPrototypeOf","Function","valueOf","pna","destroy","readableDestroyed","destroyed","writableDestroyed","errorEmitted","nextTick","emitErrorNT","undestroy","ended","endEmitted","ending","finished","self","XMLRaw","window","Timeout","id","clearFn","_id","_clearFn","setTimeout","scope","clearTimeout","setInterval","clearInterval","timeout","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","setImmediate","global","clearImmediate","XMLDeclaration","standalone","xmlVersion","xmlEncoding","xmlStandalone","declaration","XMLCharacterData","XMLCData","WriterState","XMLComment","XMLDTDNotation","XMLDocType","XMLDocument","XMLElement","XMLProcessingInstruction","XMLStringifier","XMLText","XMLDocumentCB","onData","onEnd","writerOptions","onDataCallback","onEndCallback","currentNode","currentLevel","openTags","documentStarted","documentCompleted","root","createChildNode","attName","ref1","ref2","attribs","dummy","instruction","openCurrent","oldValidationFlag","noValidation","keepNullAttributes","insTarget","insValue","processingInstruction","rootNodeName","attList","pEntity","notation","dtdNotation","closeNode","openNode","isOpen","indent","endline","isClosed","level","nod","dat","com","ins","dec","dtd","ent","pent","not","substringData","offset","count","appendData","insertData","deleteData","replaceData","fn","assertLegalName","assertLegalChar","textEscape","attEscape","convertAttKey","convertPIKey","convertTextKey","convertCDataKey","convertCommentKey","convertRawKey","res","ampregex","noDoubleEncoding","XMLNamedNodeMap","getNamedItem","setNamedItem","oldNode","nodeName","removeNamedItem","getNamedItemNS","setNamedItemNS","removeNamedItemNS","_classCallCheck","instance","Constructor","TypeError","copyBuffer","src","copy","BufferList","head","tail","v","next","unshift","shift","ret","clear","concat","alloc","allocUnsafe","inspect","custom","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","process","installNextTickImplementation","canUsePostMessage","installPostMessageImplementation","MessageChannel","installMessageChannelImplementation","createElement","installReadyStateChangeImplementation","installSetTimeoutImplementation","callback","task","handle","run","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","messagePrefix","random","onGlobalMessage","addEventListener","attachEvent","channel","port1","port2","html","documentElement","onreadystatechange","removeChild","appendChild","$includes","el","stripBOM","XMLStreamWriter","begin","stringWriter","streamWriter","implementation","writerState","PassThrough","isEncoding","_normalizeEncoding","enc","retried","normalizeEncoding","nenc","nb","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckIncomplete","buf","j","utf8CheckExtraBytes","utf8Text","total","utf8End","charCodeAt","prefixMatch","RegExp","firstCharLowerCase","stripPrefix","parseNumbers","parseFloat","parseBooleans","copyProps","dst","SafeBuffer","encodingOrOffset","from","allocUnsafeSlow","size","fill","SlowBuffer","XMLDOMErrorHandler","XMLDOMConfiguration","defaultParams","params","getParameter","canSetParameter","setParameter","DocumentPosition","parent1","baseURI","childNodeList","textContent","setParent","results","childNode","k","lastChild","len1","ref3","ignoreDecorators","substr","separateArrayItems","keepNullNodes","insertBefore","newChild","refChild","removed","isRoot","insertAfter","remove","commentBefore","commentAfter","instructionBefore","instructionAfter","rootObject","prev","importDocument","clonedRoot","u","importXMLBuilder","replaceChild","oldChild","hasChildNodes","cloneNode","deep","isSupported","hasAttributes","compareDocumentPosition","other","Disconnected","ImplementationSpecific","Preceding","Following","isAncestor","Contains","isDescendant","isPreceding","isSameNode","lookupPrefix","isDefaultNamespace","lookupNamespaceURI","setUserData","getUserData","isDescendantChild","nodePos","thisPos","treePosition","isFollowing","found","pos","foreachTreeNode","func","arg1","arg2","arg3","previousSibling","nextSibling","splitText","replaceWholeText","content","handleError","xml2js","require","methods","getSitemapJson","axios","then","xmlSitemap","console","log","sitemapContent","sitemapContentExists","parseJsonToXml","sitemapXml","addFieldSitemap","oldSitemap","urlset","url","created_at","location","origin","slug","submitSitemapChanges","post","headers","SET_TOAST","msg","SET_AVISO","catch","response","removeFieldSitemap","_slug","xmlMapRem","finalJson","map","loc","sitemapDel","filteredOptions","ref4","ref5","ref6","allowEmpty","dontPrettyTextNodes","dontprettytextnodes","spaceBeforeSlash","spacebeforeslash","suppressPrettyCount","user","indentLevel","openAttribute","closeAttribute","docType","childNodeCount","firstChildNode","prettySuppressed","every","explicitCharkey","normalizeTags","explicitArray","ignoreAttrs","mergeAttrs","explicitRoot","validator","explicitChildren","childkey","charsAsChildren","includeWhiteChars","async","attrNameProcessors","attrValueProcessors","tagNameProcessors","valueProcessors","emptyTag","preserveChildrenOrder","chunkSize","bom","events","processItem","thing","reset","assignOrPush","processAsync","xmlnskey","remaining","saxParser","error1","errThrown","newValue","ontext","stack","resultObject","EXPLICIT_CHARKEY","onopentag","processedKey","onclosetag","emptyStr","objClone","old","xpath","getOwnPropertyNames","charChild","oncdata","Promise","resolve","reject","b","Readable","ReadableState","EElistenerCount","emitter","listeners","OurUint8Array","Uint8Array","_uint8ArrayToBuffer","_isUint8Array","debugUtil","debug","debuglog","destroyImpl","kProxyEvents","prependListener","_events","isDuplex","objectMode","readableObjectMode","hwm","readableHwm","readableHighWaterMark","defaultHwm","pipes","pipesCount","flowing","emittedReadable","readableListening","resumeScheduled","defaultEncoding","awaitDrain","readingMore","decoder","read","readableAddChunk","addToFront","skipChunkCheck","onEofChunk","chunkInvalid","addChunk","maybeReadMore","needMoreData","emitReadable","_undestroy","isPaused","setEncoding","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","flow","maybeReadMore_","pipeOnDrain","nReadingNextTick","resume_","fromList","fromListPartial","list","hasStrings","copyFromBufferString","copyFromBuffer","endReadable","endReadableNT","xs","nOrig","doRead","pipe","dest","pipeOpts","doEnd","stdout","stderr","endFn","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanup","once","ondrain","cleanedUp","removeListener","onclose","onfinish","ondata","needDrain","increasedAwaitDrain","pause","dests","addListener","wrap","paused","method","_fromList","documentURI","domConfig","createDocumentFragment","createTextNode","createComment","createCDATASection","createProcessingInstruction","createAttribute","createEntityReference","getElementsByTagName","tagname","importNode","importedNode","createElementNS","createAttributeNS","getElementsByTagNameNS","getElementById","elementId","adoptNode","normalizeDocument","renameNode","getElementsByClassName","classNames","createEvent","eventInterface","createRange","createNodeIterator","whatToShow","createTreeWalker","objectKeys","Writable","allowHalfOpen","onEndNT","deprecate","config","warned","deprecated","trace","warn","localStorage","_","documentObject","attributeMap","clonedSelf","clonedChild","removeAttribute","getAttribute","setAttribute","getAttributeNode","setAttributeNode","newAttr","removeAttributeNode","oldAttr","getAttributeNS","setAttributeNS","removeAttributeNS","getAttributeNodeNS","setAttributeNodeNS","hasAttribute","hasAttributeNS","setIdAttribute","setIdAttributeNS","setIdAttributeNode","idAttr","isLastRootNode","ContainedBy","EE","_isStdio","didOnEnd","listenerCount","CorkedRequest","finish","onCorkedFinish","asyncWrite","browser","WritableState","internalUtil","realHasInstance","nop","writableObjectMode","writableHwm","writableHighWaterMark","finalCalled","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","bufferedRequestCount","corkedRequestsFree","writev","_writev","final","_final","writeAfterEnd","validChunk","valid","decodeChunk","writeOrBuffer","isBuf","newChunk","last","doWrite","onwriteError","finishMaybe","onwriteStateUpdate","needFinish","clearBuffer","afterWrite","onwriteDrain","holder","allBuffers","callFinal","need","endWritable","corkReq","getBuffer","current","out","Symbol","hasInstance","object","cork","uncork","setDefaultEncoding","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","ProcessEmitWarning","warning","ownKeys","getOwnPropertySymbols","NumberIsNaN","init","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","prepend","existing","newListener","w","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","spliceOne","setMaxListeners","getMaxListeners","doError","prependOnceListener","originalListener","off","rawListeners","eventNames"],"mappings":"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","file":"js/chunk-5c278b1d.2cced5b6.js","sourcesContent":["// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLNodeList;\n\n module.exports = XMLNodeList = (function() {\n function XMLNodeList(nodes) {\n this.nodes = nodes;\n }\n\n Object.defineProperty(XMLNodeList.prototype, 'length', {\n get: function() {\n return this.nodes.length || 0;\n }\n });\n\n XMLNodeList.prototype.clone = function() {\n return this.nodes = null;\n };\n\n XMLNodeList.prototype.item = function(index) {\n return this.nodes[index] || null;\n };\n\n return XMLNodeList;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n module.exports = {\n Element: 1,\n Attribute: 2,\n Text: 3,\n CData: 4,\n EntityReference: 5,\n EntityDeclaration: 6,\n ProcessingInstruction: 7,\n Comment: 8,\n Document: 9,\n DocType: 10,\n DocumentFragment: 11,\n NotationDeclaration: 12,\n Declaration: 201,\n Raw: 202,\n AttributeDeclaration: 203,\n ElementDeclaration: 204,\n Dummy: 205\n };\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n \"use strict\";\n var builder, defaults, parser, processors,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n defaults = require('./defaults');\n\n builder = require('./builder');\n\n parser = require('./parser');\n\n processors = require('./processors');\n\n exports.defaults = defaults.defaults;\n\n exports.processors = processors;\n\n exports.ValidationError = (function(superClass) {\n extend(ValidationError, superClass);\n\n function ValidationError(message) {\n this.message = message;\n }\n\n return ValidationError;\n\n })(Error);\n\n exports.Builder = builder.Builder;\n\n exports.Parser = parser.Parser;\n\n exports.parseString = parser.parseString;\n\n exports.parseStringPromise = parser.parseStringPromise;\n\n}).call(this);\n","module.exports = require('./lib/_stream_duplex.js');\n","// Generated by CoffeeScript 1.12.7\n(function() {\n module.exports = {\n None: 0,\n OpenTag: 1,\n InsideTag: 2,\n CloseTag: 3\n };\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLDOMImplementation;\n\n module.exports = XMLDOMImplementation = (function() {\n function XMLDOMImplementation() {}\n\n XMLDOMImplementation.prototype.hasFeature = function(feature, version) {\n return true;\n };\n\n XMLDOMImplementation.prototype.createDocumentType = function(qualifiedName, publicId, systemId) {\n throw new Error(\"This DOM method is not implemented.\");\n };\n\n XMLDOMImplementation.prototype.createDocument = function(namespaceURI, qualifiedName, doctype) {\n throw new Error(\"This DOM method is not implemented.\");\n };\n\n XMLDOMImplementation.prototype.createHTMLDocument = function(title) {\n throw new Error(\"This DOM method is not implemented.\");\n };\n\n XMLDOMImplementation.prototype.getFeature = function(feature, version) {\n throw new Error(\"This DOM method is not implemented.\");\n };\n\n return XMLDOMImplementation;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDummy, XMLNode,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n module.exports = XMLDummy = (function(superClass) {\n extend(XMLDummy, superClass);\n\n function XMLDummy(parent) {\n XMLDummy.__super__.constructor.call(this, parent);\n this.type = NodeType.Dummy;\n }\n\n XMLDummy.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLDummy.prototype.toString = function(options) {\n return '';\n };\n\n return XMLDummy;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDTDEntity, XMLNode, isObject,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n isObject = require('./Utility').isObject;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n module.exports = XMLDTDEntity = (function(superClass) {\n extend(XMLDTDEntity, superClass);\n\n function XMLDTDEntity(parent, pe, name, value) {\n XMLDTDEntity.__super__.constructor.call(this, parent);\n if (name == null) {\n throw new Error(\"Missing DTD entity name. \" + this.debugInfo(name));\n }\n if (value == null) {\n throw new Error(\"Missing DTD entity value. \" + this.debugInfo(name));\n }\n this.pe = !!pe;\n this.name = this.stringify.name(name);\n this.type = NodeType.EntityDeclaration;\n if (!isObject(value)) {\n this.value = this.stringify.dtdEntityValue(value);\n this.internal = true;\n } else {\n if (!value.pubID && !value.sysID) {\n throw new Error(\"Public and/or system identifiers are required for an external entity. \" + this.debugInfo(name));\n }\n if (value.pubID && !value.sysID) {\n throw new Error(\"System identifier is required for a public external entity. \" + this.debugInfo(name));\n }\n this.internal = false;\n if (value.pubID != null) {\n this.pubID = this.stringify.dtdPubID(value.pubID);\n }\n if (value.sysID != null) {\n this.sysID = this.stringify.dtdSysID(value.sysID);\n }\n if (value.nData != null) {\n this.nData = this.stringify.dtdNData(value.nData);\n }\n if (this.pe && this.nData) {\n throw new Error(\"Notation declaration is not allowed in a parameter entity. \" + this.debugInfo(name));\n }\n }\n }\n\n Object.defineProperty(XMLDTDEntity.prototype, 'publicId', {\n get: function() {\n return this.pubID;\n }\n });\n\n Object.defineProperty(XMLDTDEntity.prototype, 'systemId', {\n get: function() {\n return this.sysID;\n }\n });\n\n Object.defineProperty(XMLDTDEntity.prototype, 'notationName', {\n get: function() {\n return this.nData || null;\n }\n });\n\n Object.defineProperty(XMLDTDEntity.prototype, 'inputEncoding', {\n get: function() {\n return null;\n }\n });\n\n Object.defineProperty(XMLDTDEntity.prototype, 'xmlEncoding', {\n get: function() {\n return null;\n }\n });\n\n Object.defineProperty(XMLDTDEntity.prototype, 'xmlVersion', {\n get: function() {\n return null;\n }\n });\n\n XMLDTDEntity.prototype.toString = function(options) {\n return this.options.writer.dtdEntity(this, this.options.writer.filterOptions(options));\n };\n\n return XMLDTDEntity;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDTDAttList, XMLNode,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n module.exports = XMLDTDAttList = (function(superClass) {\n extend(XMLDTDAttList, superClass);\n\n function XMLDTDAttList(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) {\n XMLDTDAttList.__super__.constructor.call(this, parent);\n if (elementName == null) {\n throw new Error(\"Missing DTD element name. \" + this.debugInfo());\n }\n if (attributeName == null) {\n throw new Error(\"Missing DTD attribute name. \" + this.debugInfo(elementName));\n }\n if (!attributeType) {\n throw new Error(\"Missing DTD attribute type. \" + this.debugInfo(elementName));\n }\n if (!defaultValueType) {\n throw new Error(\"Missing DTD attribute default. \" + this.debugInfo(elementName));\n }\n if (defaultValueType.indexOf('#') !== 0) {\n defaultValueType = '#' + defaultValueType;\n }\n if (!defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/)) {\n throw new Error(\"Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT. \" + this.debugInfo(elementName));\n }\n if (defaultValue && !defaultValueType.match(/^(#FIXED|#DEFAULT)$/)) {\n throw new Error(\"Default value only applies to #FIXED or #DEFAULT. \" + this.debugInfo(elementName));\n }\n this.elementName = this.stringify.name(elementName);\n this.type = NodeType.AttributeDeclaration;\n this.attributeName = this.stringify.name(attributeName);\n this.attributeType = this.stringify.dtdAttType(attributeType);\n if (defaultValue) {\n this.defaultValue = this.stringify.dtdAttDefault(defaultValue);\n }\n this.defaultValueType = defaultValueType;\n }\n\n XMLDTDAttList.prototype.toString = function(options) {\n return this.options.writer.dtdAttList(this, this.options.writer.filterOptions(options));\n };\n\n return XMLDTDAttList;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLDOMStringList;\n\n module.exports = XMLDOMStringList = (function() {\n function XMLDOMStringList(arr) {\n this.arr = arr || [];\n }\n\n Object.defineProperty(XMLDOMStringList.prototype, 'length', {\n get: function() {\n return this.arr.length;\n }\n });\n\n XMLDOMStringList.prototype.item = function(index) {\n return this.arr[index] || null;\n };\n\n XMLDOMStringList.prototype.contains = function(str) {\n return this.arr.indexOf(str) !== -1;\n };\n\n return XMLDOMStringList;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLStringWriter, XMLWriterBase,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLWriterBase = require('./XMLWriterBase');\n\n module.exports = XMLStringWriter = (function(superClass) {\n extend(XMLStringWriter, superClass);\n\n function XMLStringWriter(options) {\n XMLStringWriter.__super__.constructor.call(this, options);\n }\n\n XMLStringWriter.prototype.document = function(doc, options) {\n var child, i, len, r, ref;\n options = this.filterOptions(options);\n r = '';\n ref = doc.children;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n r += this.writeChildNode(child, options, 0);\n }\n if (options.pretty && r.slice(-options.newline.length) === options.newline) {\n r = r.slice(0, -options.newline.length);\n }\n return r;\n };\n\n return XMLStringWriter;\n\n })(XMLWriterBase);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLAttribute, XMLNode;\n\n NodeType = require('./NodeType');\n\n XMLNode = require('./XMLNode');\n\n module.exports = XMLAttribute = (function() {\n function XMLAttribute(parent, name, value) {\n this.parent = parent;\n if (this.parent) {\n this.options = this.parent.options;\n this.stringify = this.parent.stringify;\n }\n if (name == null) {\n throw new Error(\"Missing attribute name. \" + this.debugInfo(name));\n }\n this.name = this.stringify.name(name);\n this.value = this.stringify.attValue(value);\n this.type = NodeType.Attribute;\n this.isId = false;\n this.schemaTypeInfo = null;\n }\n\n Object.defineProperty(XMLAttribute.prototype, 'nodeType', {\n get: function() {\n return this.type;\n }\n });\n\n Object.defineProperty(XMLAttribute.prototype, 'ownerElement', {\n get: function() {\n return this.parent;\n }\n });\n\n Object.defineProperty(XMLAttribute.prototype, 'textContent', {\n get: function() {\n return this.value;\n },\n set: function(value) {\n return this.value = value || '';\n }\n });\n\n Object.defineProperty(XMLAttribute.prototype, 'namespaceURI', {\n get: function() {\n return '';\n }\n });\n\n Object.defineProperty(XMLAttribute.prototype, 'prefix', {\n get: function() {\n return '';\n }\n });\n\n Object.defineProperty(XMLAttribute.prototype, 'localName', {\n get: function() {\n return this.name;\n }\n });\n\n Object.defineProperty(XMLAttribute.prototype, 'specified', {\n get: function() {\n return true;\n }\n });\n\n XMLAttribute.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLAttribute.prototype.toString = function(options) {\n return this.options.writer.attribute(this, this.options.writer.filterOptions(options));\n };\n\n XMLAttribute.prototype.debugInfo = function(name) {\n name = name || this.name;\n if (name == null) {\n return \"parent: <\" + this.parent.name + \">\";\n } else {\n return \"attribute: {\" + name + \"}, parent: <\" + this.parent.name + \">\";\n }\n };\n\n XMLAttribute.prototype.isEqualNode = function(node) {\n if (node.namespaceURI !== this.namespaceURI) {\n return false;\n }\n if (node.prefix !== this.prefix) {\n return false;\n }\n if (node.localName !== this.localName) {\n return false;\n }\n if (node.value !== this.value) {\n return false;\n }\n return true;\n };\n\n return XMLAttribute;\n\n })();\n\n}).call(this);\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/*<replacement>*/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","module.exports = require('./lib/_stream_writable.js');\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n",";(function (sax) { // wrapper for non-node envs\n sax.parser = function (strict, opt) { return new SAXParser(strict, opt) }\n sax.SAXParser = SAXParser\n sax.SAXStream = SAXStream\n sax.createStream = createStream\n\n // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.\n // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),\n // since that's the earliest that a buffer overrun could occur. This way, checks are\n // as rare as required, but as often as necessary to ensure never crossing this bound.\n // Furthermore, buffers are only tested at most once per write(), so passing a very\n // large string into write() might have undesirable effects, but this is manageable by\n // the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme\n // edge case, result in creating at most one complete copy of the string passed in.\n // Set to Infinity to have unlimited buffers.\n sax.MAX_BUFFER_LENGTH = 64 * 1024\n\n var buffers = [\n 'comment', 'sgmlDecl', 'textNode', 'tagName', 'doctype',\n 'procInstName', 'procInstBody', 'entity', 'attribName',\n 'attribValue', 'cdata', 'script'\n ]\n\n sax.EVENTS = [\n 'text',\n 'processinginstruction',\n 'sgmldeclaration',\n 'doctype',\n 'comment',\n 'opentagstart',\n 'attribute',\n 'opentag',\n 'closetag',\n 'opencdata',\n 'cdata',\n 'closecdata',\n 'error',\n 'end',\n 'ready',\n 'script',\n 'opennamespace',\n 'closenamespace'\n ]\n\n function SAXParser (strict, opt) {\n if (!(this instanceof SAXParser)) {\n return new SAXParser(strict, opt)\n }\n\n var parser = this\n clearBuffers(parser)\n parser.q = parser.c = ''\n parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH\n parser.opt = opt || {}\n parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags\n parser.looseCase = parser.opt.lowercase ? 'toLowerCase' : 'toUpperCase'\n parser.tags = []\n parser.closed = parser.closedRoot = parser.sawRoot = false\n parser.tag = parser.error = null\n parser.strict = !!strict\n parser.noscript = !!(strict || parser.opt.noscript)\n parser.state = S.BEGIN\n parser.strictEntities = parser.opt.strictEntities\n parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES)\n parser.attribList = []\n\n // namespaces form a prototype chain.\n // it always points at the current tag,\n // which protos to its parent tag.\n if (parser.opt.xmlns) {\n parser.ns = Object.create(rootNS)\n }\n\n // mostly just for error reporting\n parser.trackPosition = parser.opt.position !== false\n if (parser.trackPosition) {\n parser.position = parser.line = parser.column = 0\n }\n emit(parser, 'onready')\n }\n\n if (!Object.create) {\n Object.create = function (o) {\n function F () {}\n F.prototype = o\n var newf = new F()\n return newf\n }\n }\n\n if (!Object.keys) {\n Object.keys = function (o) {\n var a = []\n for (var i in o) if (o.hasOwnProperty(i)) a.push(i)\n return a\n }\n }\n\n function checkBufferLength (parser) {\n var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10)\n var maxActual = 0\n for (var i = 0, l = buffers.length; i < l; i++) {\n var len = parser[buffers[i]].length\n if (len > maxAllowed) {\n // Text/cdata nodes can get big, and since they're buffered,\n // we can get here under normal conditions.\n // Avoid issues by emitting the text node now,\n // so at least it won't get any bigger.\n switch (buffers[i]) {\n case 'textNode':\n closeText(parser)\n break\n\n case 'cdata':\n emitNode(parser, 'oncdata', parser.cdata)\n parser.cdata = ''\n break\n\n case 'script':\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n break\n\n default:\n error(parser, 'Max buffer length exceeded: ' + buffers[i])\n }\n }\n maxActual = Math.max(maxActual, len)\n }\n // schedule the next check for the earliest possible buffer overrun.\n var m = sax.MAX_BUFFER_LENGTH - maxActual\n parser.bufferCheckPosition = m + parser.position\n }\n\n function clearBuffers (parser) {\n for (var i = 0, l = buffers.length; i < l; i++) {\n parser[buffers[i]] = ''\n }\n }\n\n function flushBuffers (parser) {\n closeText(parser)\n if (parser.cdata !== '') {\n emitNode(parser, 'oncdata', parser.cdata)\n parser.cdata = ''\n }\n if (parser.script !== '') {\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n }\n }\n\n SAXParser.prototype = {\n end: function () { end(this) },\n write: write,\n resume: function () { this.error = null; return this },\n close: function () { return this.write(null) },\n flush: function () { flushBuffers(this) }\n }\n\n var Stream\n try {\n Stream = require('stream').Stream\n } catch (ex) {\n Stream = function () {}\n }\n\n var streamWraps = sax.EVENTS.filter(function (ev) {\n return ev !== 'error' && ev !== 'end'\n })\n\n function createStream (strict, opt) {\n return new SAXStream(strict, opt)\n }\n\n function SAXStream (strict, opt) {\n if (!(this instanceof SAXStream)) {\n return new SAXStream(strict, opt)\n }\n\n Stream.apply(this)\n\n this._parser = new SAXParser(strict, opt)\n this.writable = true\n this.readable = true\n\n var me = this\n\n this._parser.onend = function () {\n me.emit('end')\n }\n\n this._parser.onerror = function (er) {\n me.emit('error', er)\n\n // if didn't throw, then means error was handled.\n // go ahead and clear error, so we can write again.\n me._parser.error = null\n }\n\n this._decoder = null\n\n streamWraps.forEach(function (ev) {\n Object.defineProperty(me, 'on' + ev, {\n get: function () {\n return me._parser['on' + ev]\n },\n set: function (h) {\n if (!h) {\n me.removeAllListeners(ev)\n me._parser['on' + ev] = h\n return h\n }\n me.on(ev, h)\n },\n enumerable: true,\n configurable: false\n })\n })\n }\n\n SAXStream.prototype = Object.create(Stream.prototype, {\n constructor: {\n value: SAXStream\n }\n })\n\n SAXStream.prototype.write = function (data) {\n if (typeof Buffer === 'function' &&\n typeof Buffer.isBuffer === 'function' &&\n Buffer.isBuffer(data)) {\n if (!this._decoder) {\n var SD = require('string_decoder').StringDecoder\n this._decoder = new SD('utf8')\n }\n data = this._decoder.write(data)\n }\n\n this._parser.write(data.toString())\n this.emit('data', data)\n return true\n }\n\n SAXStream.prototype.end = function (chunk) {\n if (chunk && chunk.length) {\n this.write(chunk)\n }\n this._parser.end()\n return true\n }\n\n SAXStream.prototype.on = function (ev, handler) {\n var me = this\n if (!me._parser['on' + ev] && streamWraps.indexOf(ev) !== -1) {\n me._parser['on' + ev] = function () {\n var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments)\n args.splice(0, 0, ev)\n me.emit.apply(me, args)\n }\n }\n\n return Stream.prototype.on.call(me, ev, handler)\n }\n\n // this really needs to be replaced with character classes.\n // XML allows all manner of ridiculous numbers and digits.\n var CDATA = '[CDATA['\n var DOCTYPE = 'DOCTYPE'\n var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace'\n var XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/'\n var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE }\n\n // http://www.w3.org/TR/REC-xml/#NT-NameStartChar\n // This implementation works on strings, a single character at a time\n // as such, it cannot ever support astral-plane characters (10000-EFFFF)\n // without a significant breaking change to either this parser, or the\n // JavaScript language. Implementation of an emoji-capable xml parser\n // is left as an exercise for the reader.\n var nameStart = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/\n\n var nameBody = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/\n\n var entityStart = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/\n var entityBody = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/\n\n function isWhitespace (c) {\n return c === ' ' || c === '\\n' || c === '\\r' || c === '\\t'\n }\n\n function isQuote (c) {\n return c === '\"' || c === '\\''\n }\n\n function isAttribEnd (c) {\n return c === '>' || isWhitespace(c)\n }\n\n function isMatch (regex, c) {\n return regex.test(c)\n }\n\n function notMatch (regex, c) {\n return !isMatch(regex, c)\n }\n\n var S = 0\n sax.STATE = {\n BEGIN: S++, // leading byte order mark or whitespace\n BEGIN_WHITESPACE: S++, // leading whitespace\n TEXT: S++, // general stuff\n TEXT_ENTITY: S++, // & and such.\n OPEN_WAKA: S++, // <\n SGML_DECL: S++, // <!BLARG\n SGML_DECL_QUOTED: S++, // <!BLARG foo \"bar\n DOCTYPE: S++, // <!DOCTYPE\n DOCTYPE_QUOTED: S++, // <!DOCTYPE \"//blah\n DOCTYPE_DTD: S++, // <!DOCTYPE \"//blah\" [ ...\n DOCTYPE_DTD_QUOTED: S++, // <!DOCTYPE \"//blah\" [ \"foo\n COMMENT_STARTING: S++, // <!-\n COMMENT: S++, // <!--\n COMMENT_ENDING: S++, // <!-- blah -\n COMMENT_ENDED: S++, // <!-- blah --\n CDATA: S++, // <![CDATA[ something\n CDATA_ENDING: S++, // ]\n CDATA_ENDING_2: S++, // ]]\n PROC_INST: S++, // <?hi\n PROC_INST_BODY: S++, // <?hi there\n PROC_INST_ENDING: S++, // <?hi \"there\" ?\n OPEN_TAG: S++, // <strong\n OPEN_TAG_SLASH: S++, // <strong /\n ATTRIB: S++, // <a\n ATTRIB_NAME: S++, // <a foo\n ATTRIB_NAME_SAW_WHITE: S++, // <a foo _\n ATTRIB_VALUE: S++, // <a foo=\n ATTRIB_VALUE_QUOTED: S++, // <a foo=\"bar\n ATTRIB_VALUE_CLOSED: S++, // <a foo=\"bar\"\n ATTRIB_VALUE_UNQUOTED: S++, // <a foo=bar\n ATTRIB_VALUE_ENTITY_Q: S++, // <foo bar=\""\"\n ATTRIB_VALUE_ENTITY_U: S++, // <foo bar="\n CLOSE_TAG: S++, // </a\n CLOSE_TAG_SAW_WHITE: S++, // </a >\n SCRIPT: S++, // <script> ...\n SCRIPT_ENDING: S++ // <script> ... <\n }\n\n sax.XML_ENTITIES = {\n 'amp': '&',\n 'gt': '>',\n 'lt': '<',\n 'quot': '\"',\n 'apos': \"'\"\n }\n\n sax.ENTITIES = {\n 'amp': '&',\n 'gt': '>',\n 'lt': '<',\n 'quot': '\"',\n 'apos': \"'\",\n 'AElig': 198,\n 'Aacute': 193,\n 'Acirc': 194,\n 'Agrave': 192,\n 'Aring': 197,\n 'Atilde': 195,\n 'Auml': 196,\n 'Ccedil': 199,\n 'ETH': 208,\n 'Eacute': 201,\n 'Ecirc': 202,\n 'Egrave': 200,\n 'Euml': 203,\n 'Iacute': 205,\n 'Icirc': 206,\n 'Igrave': 204,\n 'Iuml': 207,\n 'Ntilde': 209,\n 'Oacute': 211,\n 'Ocirc': 212,\n 'Ograve': 210,\n 'Oslash': 216,\n 'Otilde': 213,\n 'Ouml': 214,\n 'THORN': 222,\n 'Uacute': 218,\n 'Ucirc': 219,\n 'Ugrave': 217,\n 'Uuml': 220,\n 'Yacute': 221,\n 'aacute': 225,\n 'acirc': 226,\n 'aelig': 230,\n 'agrave': 224,\n 'aring': 229,\n 'atilde': 227,\n 'auml': 228,\n 'ccedil': 231,\n 'eacute': 233,\n 'ecirc': 234,\n 'egrave': 232,\n 'eth': 240,\n 'euml': 235,\n 'iacute': 237,\n 'icirc': 238,\n 'igrave': 236,\n 'iuml': 239,\n 'ntilde': 241,\n 'oacute': 243,\n 'ocirc': 244,\n 'ograve': 242,\n 'oslash': 248,\n 'otilde': 245,\n 'ouml': 246,\n 'szlig': 223,\n 'thorn': 254,\n 'uacute': 250,\n 'ucirc': 251,\n 'ugrave': 249,\n 'uuml': 252,\n 'yacute': 253,\n 'yuml': 255,\n 'copy': 169,\n 'reg': 174,\n 'nbsp': 160,\n 'iexcl': 161,\n 'cent': 162,\n 'pound': 163,\n 'curren': 164,\n 'yen': 165,\n 'brvbar': 166,\n 'sect': 167,\n 'uml': 168,\n 'ordf': 170,\n 'laquo': 171,\n 'not': 172,\n 'shy': 173,\n 'macr': 175,\n 'deg': 176,\n 'plusmn': 177,\n 'sup1': 185,\n 'sup2': 178,\n 'sup3': 179,\n 'acute': 180,\n 'micro': 181,\n 'para': 182,\n 'middot': 183,\n 'cedil': 184,\n 'ordm': 186,\n 'raquo': 187,\n 'frac14': 188,\n 'frac12': 189,\n 'frac34': 190,\n 'iquest': 191,\n 'times': 215,\n 'divide': 247,\n 'OElig': 338,\n 'oelig': 339,\n 'Scaron': 352,\n 'scaron': 353,\n 'Yuml': 376,\n 'fnof': 402,\n 'circ': 710,\n 'tilde': 732,\n 'Alpha': 913,\n 'Beta': 914,\n 'Gamma': 915,\n 'Delta': 916,\n 'Epsilon': 917,\n 'Zeta': 918,\n 'Eta': 919,\n 'Theta': 920,\n 'Iota': 921,\n 'Kappa': 922,\n 'Lambda': 923,\n 'Mu': 924,\n 'Nu': 925,\n 'Xi': 926,\n 'Omicron': 927,\n 'Pi': 928,\n 'Rho': 929,\n 'Sigma': 931,\n 'Tau': 932,\n 'Upsilon': 933,\n 'Phi': 934,\n 'Chi': 935,\n 'Psi': 936,\n 'Omega': 937,\n 'alpha': 945,\n 'beta': 946,\n 'gamma': 947,\n 'delta': 948,\n 'epsilon': 949,\n 'zeta': 950,\n 'eta': 951,\n 'theta': 952,\n 'iota': 953,\n 'kappa': 954,\n 'lambda': 955,\n 'mu': 956,\n 'nu': 957,\n 'xi': 958,\n 'omicron': 959,\n 'pi': 960,\n 'rho': 961,\n 'sigmaf': 962,\n 'sigma': 963,\n 'tau': 964,\n 'upsilon': 965,\n 'phi': 966,\n 'chi': 967,\n 'psi': 968,\n 'omega': 969,\n 'thetasym': 977,\n 'upsih': 978,\n 'piv': 982,\n 'ensp': 8194,\n 'emsp': 8195,\n 'thinsp': 8201,\n 'zwnj': 8204,\n 'zwj': 8205,\n 'lrm': 8206,\n 'rlm': 8207,\n 'ndash': 8211,\n 'mdash': 8212,\n 'lsquo': 8216,\n 'rsquo': 8217,\n 'sbquo': 8218,\n 'ldquo': 8220,\n 'rdquo': 8221,\n 'bdquo': 8222,\n 'dagger': 8224,\n 'Dagger': 8225,\n 'bull': 8226,\n 'hellip': 8230,\n 'permil': 8240,\n 'prime': 8242,\n 'Prime': 8243,\n 'lsaquo': 8249,\n 'rsaquo': 8250,\n 'oline': 8254,\n 'frasl': 8260,\n 'euro': 8364,\n 'image': 8465,\n 'weierp': 8472,\n 'real': 8476,\n 'trade': 8482,\n 'alefsym': 8501,\n 'larr': 8592,\n 'uarr': 8593,\n 'rarr': 8594,\n 'darr': 8595,\n 'harr': 8596,\n 'crarr': 8629,\n 'lArr': 8656,\n 'uArr': 8657,\n 'rArr': 8658,\n 'dArr': 8659,\n 'hArr': 8660,\n 'forall': 8704,\n 'part': 8706,\n 'exist': 8707,\n 'empty': 8709,\n 'nabla': 8711,\n 'isin': 8712,\n 'notin': 8713,\n 'ni': 8715,\n 'prod': 8719,\n 'sum': 8721,\n 'minus': 8722,\n 'lowast': 8727,\n 'radic': 8730,\n 'prop': 8733,\n 'infin': 8734,\n 'ang': 8736,\n 'and': 8743,\n 'or': 8744,\n 'cap': 8745,\n 'cup': 8746,\n 'int': 8747,\n 'there4': 8756,\n 'sim': 8764,\n 'cong': 8773,\n 'asymp': 8776,\n 'ne': 8800,\n 'equiv': 8801,\n 'le': 8804,\n 'ge': 8805,\n 'sub': 8834,\n 'sup': 8835,\n 'nsub': 8836,\n 'sube': 8838,\n 'supe': 8839,\n 'oplus': 8853,\n 'otimes': 8855,\n 'perp': 8869,\n 'sdot': 8901,\n 'lceil': 8968,\n 'rceil': 8969,\n 'lfloor': 8970,\n 'rfloor': 8971,\n 'lang': 9001,\n 'rang': 9002,\n 'loz': 9674,\n 'spades': 9824,\n 'clubs': 9827,\n 'hearts': 9829,\n 'diams': 9830\n }\n\n Object.keys(sax.ENTITIES).forEach(function (key) {\n var e = sax.ENTITIES[key]\n var s = typeof e === 'number' ? String.fromCharCode(e) : e\n sax.ENTITIES[key] = s\n })\n\n for (var s in sax.STATE) {\n sax.STATE[sax.STATE[s]] = s\n }\n\n // shorthand\n S = sax.STATE\n\n function emit (parser, event, data) {\n parser[event] && parser[event](data)\n }\n\n function emitNode (parser, nodeType, data) {\n if (parser.textNode) closeText(parser)\n emit(parser, nodeType, data)\n }\n\n function closeText (parser) {\n parser.textNode = textopts(parser.opt, parser.textNode)\n if (parser.textNode) emit(parser, 'ontext', parser.textNode)\n parser.textNode = ''\n }\n\n function textopts (opt, text) {\n if (opt.trim) text = text.trim()\n if (opt.normalize) text = text.replace(/\\s+/g, ' ')\n return text\n }\n\n function error (parser, er) {\n closeText(parser)\n if (parser.trackPosition) {\n er += '\\nLine: ' + parser.line +\n '\\nColumn: ' + parser.column +\n '\\nChar: ' + parser.c\n }\n er = new Error(er)\n parser.error = er\n emit(parser, 'onerror', er)\n return parser\n }\n\n function end (parser) {\n if (parser.sawRoot && !parser.closedRoot) strictFail(parser, 'Unclosed root tag')\n if ((parser.state !== S.BEGIN) &&\n (parser.state !== S.BEGIN_WHITESPACE) &&\n (parser.state !== S.TEXT)) {\n error(parser, 'Unexpected end')\n }\n closeText(parser)\n parser.c = ''\n parser.closed = true\n emit(parser, 'onend')\n SAXParser.call(parser, parser.strict, parser.opt)\n return parser\n }\n\n function strictFail (parser, message) {\n if (typeof parser !== 'object' || !(parser instanceof SAXParser)) {\n throw new Error('bad call to strictFail')\n }\n if (parser.strict) {\n error(parser, message)\n }\n }\n\n function newTag (parser) {\n if (!parser.strict) parser.tagName = parser.tagName[parser.looseCase]()\n var parent = parser.tags[parser.tags.length - 1] || parser\n var tag = parser.tag = { name: parser.tagName, attributes: {} }\n\n // will be overridden if tag contails an xmlns=\"foo\" or xmlns:foo=\"bar\"\n if (parser.opt.xmlns) {\n tag.ns = parent.ns\n }\n parser.attribList.length = 0\n emitNode(parser, 'onopentagstart', tag)\n }\n\n function qname (name, attribute) {\n var i = name.indexOf(':')\n var qualName = i < 0 ? [ '', name ] : name.split(':')\n var prefix = qualName[0]\n var local = qualName[1]\n\n // <x \"xmlns\"=\"http://foo\">\n if (attribute && name === 'xmlns') {\n prefix = 'xmlns'\n local = ''\n }\n\n return { prefix: prefix, local: local }\n }\n\n function attrib (parser) {\n if (!parser.strict) {\n parser.attribName = parser.attribName[parser.looseCase]()\n }\n\n if (parser.attribList.indexOf(parser.attribName) !== -1 ||\n parser.tag.attributes.hasOwnProperty(parser.attribName)) {\n parser.attribName = parser.attribValue = ''\n return\n }\n\n if (parser.opt.xmlns) {\n var qn = qname(parser.attribName, true)\n var prefix = qn.prefix\n var local = qn.local\n\n if (prefix === 'xmlns') {\n // namespace binding attribute. push the binding into scope\n if (local === 'xml' && parser.attribValue !== XML_NAMESPACE) {\n strictFail(parser,\n 'xml: prefix must be bound to ' + XML_NAMESPACE + '\\n' +\n 'Actual: ' + parser.attribValue)\n } else if (local === 'xmlns' && parser.attribValue !== XMLNS_NAMESPACE) {\n strictFail(parser,\n 'xmlns: prefix must be bound to ' + XMLNS_NAMESPACE + '\\n' +\n 'Actual: ' + parser.attribValue)\n } else {\n var tag = parser.tag\n var parent = parser.tags[parser.tags.length - 1] || parser\n if (tag.ns === parent.ns) {\n tag.ns = Object.create(parent.ns)\n }\n tag.ns[local] = parser.attribValue\n }\n }\n\n // defer onattribute events until all attributes have been seen\n // so any new bindings can take effect. preserve attribute order\n // so deferred events can be emitted in document order\n parser.attribList.push([parser.attribName, parser.attribValue])\n } else {\n // in non-xmlns mode, we can emit the event right away\n parser.tag.attributes[parser.attribName] = parser.attribValue\n emitNode(parser, 'onattribute', {\n name: parser.attribName,\n value: parser.attribValue\n })\n }\n\n parser.attribName = parser.attribValue = ''\n }\n\n function openTag (parser, selfClosing) {\n if (parser.opt.xmlns) {\n // emit namespace binding events\n var tag = parser.tag\n\n // add namespace info to tag\n var qn = qname(parser.tagName)\n tag.prefix = qn.prefix\n tag.local = qn.local\n tag.uri = tag.ns[qn.prefix] || ''\n\n if (tag.prefix && !tag.uri) {\n strictFail(parser, 'Unbound namespace prefix: ' +\n JSON.stringify(parser.tagName))\n tag.uri = qn.prefix\n }\n\n var parent = parser.tags[parser.tags.length - 1] || parser\n if (tag.ns && parent.ns !== tag.ns) {\n Object.keys(tag.ns).forEach(function (p) {\n emitNode(parser, 'onopennamespace', {\n prefix: p,\n uri: tag.ns[p]\n })\n })\n }\n\n // handle deferred onattribute events\n // Note: do not apply default ns to attributes:\n // http://www.w3.org/TR/REC-xml-names/#defaulting\n for (var i = 0, l = parser.attribList.length; i < l; i++) {\n var nv = parser.attribList[i]\n var name = nv[0]\n var value = nv[1]\n var qualName = qname(name, true)\n var prefix = qualName.prefix\n var local = qualName.local\n var uri = prefix === '' ? '' : (tag.ns[prefix] || '')\n var a = {\n name: name,\n value: value,\n prefix: prefix,\n local: local,\n uri: uri\n }\n\n // if there's any attributes with an undefined namespace,\n // then fail on them now.\n if (prefix && prefix !== 'xmlns' && !uri) {\n strictFail(parser, 'Unbound namespace prefix: ' +\n JSON.stringify(prefix))\n a.uri = prefix\n }\n parser.tag.attributes[name] = a\n emitNode(parser, 'onattribute', a)\n }\n parser.attribList.length = 0\n }\n\n parser.tag.isSelfClosing = !!selfClosing\n\n // process the tag\n parser.sawRoot = true\n parser.tags.push(parser.tag)\n emitNode(parser, 'onopentag', parser.tag)\n if (!selfClosing) {\n // special case for <script> in non-strict mode.\n if (!parser.noscript && parser.tagName.toLowerCase() === 'script') {\n parser.state = S.SCRIPT\n } else {\n parser.state = S.TEXT\n }\n parser.tag = null\n parser.tagName = ''\n }\n parser.attribName = parser.attribValue = ''\n parser.attribList.length = 0\n }\n\n function closeTag (parser) {\n if (!parser.tagName) {\n strictFail(parser, 'Weird empty close tag.')\n parser.textNode += '</>'\n parser.state = S.TEXT\n return\n }\n\n if (parser.script) {\n if (parser.tagName !== 'script') {\n parser.script += '</' + parser.tagName + '>'\n parser.tagName = ''\n parser.state = S.SCRIPT\n return\n }\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n }\n\n // first make sure that the closing tag actually exists.\n // <a><b></c></b></a> will close everything, otherwise.\n var t = parser.tags.length\n var tagName = parser.tagName\n if (!parser.strict) {\n tagName = tagName[parser.looseCase]()\n }\n var closeTo = tagName\n while (t--) {\n var close = parser.tags[t]\n if (close.name !== closeTo) {\n // fail the first time in strict mode\n strictFail(parser, 'Unexpected close tag')\n } else {\n break\n }\n }\n\n // didn't find it. we already failed for strict, so just abort.\n if (t < 0) {\n strictFail(parser, 'Unmatched closing tag: ' + parser.tagName)\n parser.textNode += '</' + parser.tagName + '>'\n parser.state = S.TEXT\n return\n }\n parser.tagName = tagName\n var s = parser.tags.length\n while (s-- > t) {\n var tag = parser.tag = parser.tags.pop()\n parser.tagName = parser.tag.name\n emitNode(parser, 'onclosetag', parser.tagName)\n\n var x = {}\n for (var i in tag.ns) {\n x[i] = tag.ns[i]\n }\n\n var parent = parser.tags[parser.tags.length - 1] || parser\n if (parser.opt.xmlns && tag.ns !== parent.ns) {\n // remove namespace bindings introduced by tag\n Object.keys(tag.ns).forEach(function (p) {\n var n = tag.ns[p]\n emitNode(parser, 'onclosenamespace', { prefix: p, uri: n })\n })\n }\n }\n if (t === 0) parser.closedRoot = true\n parser.tagName = parser.attribValue = parser.attribName = ''\n parser.attribList.length = 0\n parser.state = S.TEXT\n }\n\n function parseEntity (parser) {\n var entity = parser.entity\n var entityLC = entity.toLowerCase()\n var num\n var numStr = ''\n\n if (parser.ENTITIES[entity]) {\n return parser.ENTITIES[entity]\n }\n if (parser.ENTITIES[entityLC]) {\n return parser.ENTITIES[entityLC]\n }\n entity = entityLC\n if (entity.charAt(0) === '#') {\n if (entity.charAt(1) === 'x') {\n entity = entity.slice(2)\n num = parseInt(entity, 16)\n numStr = num.toString(16)\n } else {\n entity = entity.slice(1)\n num = parseInt(entity, 10)\n numStr = num.toString(10)\n }\n }\n entity = entity.replace(/^0+/, '')\n if (isNaN(num) || numStr.toLowerCase() !== entity) {\n strictFail(parser, 'Invalid character entity')\n return '&' + parser.entity + ';'\n }\n\n return String.fromCodePoint(num)\n }\n\n function beginWhiteSpace (parser, c) {\n if (c === '<') {\n parser.state = S.OPEN_WAKA\n parser.startTagPosition = parser.position\n } else if (!isWhitespace(c)) {\n // have to process this as a text node.\n // weird, but happens.\n strictFail(parser, 'Non-whitespace before first tag.')\n parser.textNode = c\n parser.state = S.TEXT\n }\n }\n\n function charAt (chunk, i) {\n var result = ''\n if (i < chunk.length) {\n result = chunk.charAt(i)\n }\n return result\n }\n\n function write (chunk) {\n var parser = this\n if (this.error) {\n throw this.error\n }\n if (parser.closed) {\n return error(parser,\n 'Cannot write after close. Assign an onready handler.')\n }\n if (chunk === null) {\n return end(parser)\n }\n if (typeof chunk === 'object') {\n chunk = chunk.toString()\n }\n var i = 0\n var c = ''\n while (true) {\n c = charAt(chunk, i++)\n parser.c = c\n\n if (!c) {\n break\n }\n\n if (parser.trackPosition) {\n parser.position++\n if (c === '\\n') {\n parser.line++\n parser.column = 0\n } else {\n parser.column++\n }\n }\n\n switch (parser.state) {\n case S.BEGIN:\n parser.state = S.BEGIN_WHITESPACE\n if (c === '\\uFEFF') {\n continue\n }\n beginWhiteSpace(parser, c)\n continue\n\n case S.BEGIN_WHITESPACE:\n beginWhiteSpace(parser, c)\n continue\n\n case S.TEXT:\n if (parser.sawRoot && !parser.closedRoot) {\n var starti = i - 1\n while (c && c !== '<' && c !== '&') {\n c = charAt(chunk, i++)\n if (c && parser.trackPosition) {\n parser.position++\n if (c === '\\n') {\n parser.line++\n parser.column = 0\n } else {\n parser.column++\n }\n }\n }\n parser.textNode += chunk.substring(starti, i - 1)\n }\n if (c === '<' && !(parser.sawRoot && parser.closedRoot && !parser.strict)) {\n parser.state = S.OPEN_WAKA\n parser.startTagPosition = parser.position\n } else {\n if (!isWhitespace(c) && (!parser.sawRoot || parser.closedRoot)) {\n strictFail(parser, 'Text data outside of root node.')\n }\n if (c === '&') {\n parser.state = S.TEXT_ENTITY\n } else {\n parser.textNode += c\n }\n }\n continue\n\n case S.SCRIPT:\n // only non-strict\n if (c === '<') {\n parser.state = S.SCRIPT_ENDING\n } else {\n parser.script += c\n }\n continue\n\n case S.SCRIPT_ENDING:\n if (c === '/') {\n parser.state = S.CLOSE_TAG\n } else {\n parser.script += '<' + c\n parser.state = S.SCRIPT\n }\n continue\n\n case S.OPEN_WAKA:\n // either a /, ?, !, or text is coming next.\n if (c === '!') {\n parser.state = S.SGML_DECL\n parser.sgmlDecl = ''\n } else if (isWhitespace(c)) {\n // wait for it...\n } else if (isMatch(nameStart, c)) {\n parser.state = S.OPEN_TAG\n parser.tagName = c\n } else if (c === '/') {\n parser.state = S.CLOSE_TAG\n parser.tagName = ''\n } else if (c === '?') {\n parser.state = S.PROC_INST\n parser.procInstName = parser.procInstBody = ''\n } else {\n strictFail(parser, 'Unencoded <')\n // if there was some whitespace, then add that in.\n if (parser.startTagPosition + 1 < parser.position) {\n var pad = parser.position - parser.startTagPosition\n c = new Array(pad).join(' ') + c\n }\n parser.textNode += '<' + c\n parser.state = S.TEXT\n }\n continue\n\n case S.SGML_DECL:\n if ((parser.sgmlDecl + c).toUpperCase() === CDATA) {\n emitNode(parser, 'onopencdata')\n parser.state = S.CDATA\n parser.sgmlDecl = ''\n parser.cdata = ''\n } else if (parser.sgmlDecl + c === '--') {\n parser.state = S.COMMENT\n parser.comment = ''\n parser.sgmlDecl = ''\n } else if ((parser.sgmlDecl + c).toUpperCase() === DOCTYPE) {\n parser.state = S.DOCTYPE\n if (parser.doctype || parser.sawRoot) {\n strictFail(parser,\n 'Inappropriately located doctype declaration')\n }\n parser.doctype = ''\n parser.sgmlDecl = ''\n } else if (c === '>') {\n emitNode(parser, 'onsgmldeclaration', parser.sgmlDecl)\n parser.sgmlDecl = ''\n parser.state = S.TEXT\n } else if (isQuote(c)) {\n parser.state = S.SGML_DECL_QUOTED\n parser.sgmlDecl += c\n } else {\n parser.sgmlDecl += c\n }\n continue\n\n case S.SGML_DECL_QUOTED:\n if (c === parser.q) {\n parser.state = S.SGML_DECL\n parser.q = ''\n }\n parser.sgmlDecl += c\n continue\n\n case S.DOCTYPE:\n if (c === '>') {\n parser.state = S.TEXT\n emitNode(parser, 'ondoctype', parser.doctype)\n parser.doctype = true // just remember that we saw it.\n } else {\n parser.doctype += c\n if (c === '[') {\n parser.state = S.DOCTYPE_DTD\n } else if (isQuote(c)) {\n parser.state = S.DOCTYPE_QUOTED\n parser.q = c\n }\n }\n continue\n\n case S.DOCTYPE_QUOTED:\n parser.doctype += c\n if (c === parser.q) {\n parser.q = ''\n parser.state = S.DOCTYPE\n }\n continue\n\n case S.DOCTYPE_DTD:\n parser.doctype += c\n if (c === ']') {\n parser.state = S.DOCTYPE\n } else if (isQuote(c)) {\n parser.state = S.DOCTYPE_DTD_QUOTED\n parser.q = c\n }\n continue\n\n case S.DOCTYPE_DTD_QUOTED:\n parser.doctype += c\n if (c === parser.q) {\n parser.state = S.DOCTYPE_DTD\n parser.q = ''\n }\n continue\n\n case S.COMMENT:\n if (c === '-') {\n parser.state = S.COMMENT_ENDING\n } else {\n parser.comment += c\n }\n continue\n\n case S.COMMENT_ENDING:\n if (c === '-') {\n parser.state = S.COMMENT_ENDED\n parser.comment = textopts(parser.opt, parser.comment)\n if (parser.comment) {\n emitNode(parser, 'oncomment', parser.comment)\n }\n parser.comment = ''\n } else {\n parser.comment += '-' + c\n parser.state = S.COMMENT\n }\n continue\n\n case S.COMMENT_ENDED:\n if (c !== '>') {\n strictFail(parser, 'Malformed comment')\n // allow <!-- blah -- bloo --> in non-strict mode,\n // which is a comment of \" blah -- bloo \"\n parser.comment += '--' + c\n parser.state = S.COMMENT\n } else {\n parser.state = S.TEXT\n }\n continue\n\n case S.CDATA:\n if (c === ']') {\n parser.state = S.CDATA_ENDING\n } else {\n parser.cdata += c\n }\n continue\n\n case S.CDATA_ENDING:\n if (c === ']') {\n parser.state = S.CDATA_ENDING_2\n } else {\n parser.cdata += ']' + c\n parser.state = S.CDATA\n }\n continue\n\n case S.CDATA_ENDING_2:\n if (c === '>') {\n if (parser.cdata) {\n emitNode(parser, 'oncdata', parser.cdata)\n }\n emitNode(parser, 'onclosecdata')\n parser.cdata = ''\n parser.state = S.TEXT\n } else if (c === ']') {\n parser.cdata += ']'\n } else {\n parser.cdata += ']]' + c\n parser.state = S.CDATA\n }\n continue\n\n case S.PROC_INST:\n if (c === '?') {\n parser.state = S.PROC_INST_ENDING\n } else if (isWhitespace(c)) {\n parser.state = S.PROC_INST_BODY\n } else {\n parser.procInstName += c\n }\n continue\n\n case S.PROC_INST_BODY:\n if (!parser.procInstBody && isWhitespace(c)) {\n continue\n } else if (c === '?') {\n parser.state = S.PROC_INST_ENDING\n } else {\n parser.procInstBody += c\n }\n continue\n\n case S.PROC_INST_ENDING:\n if (c === '>') {\n emitNode(parser, 'onprocessinginstruction', {\n name: parser.procInstName,\n body: parser.procInstBody\n })\n parser.procInstName = parser.procInstBody = ''\n parser.state = S.TEXT\n } else {\n parser.procInstBody += '?' + c\n parser.state = S.PROC_INST_BODY\n }\n continue\n\n case S.OPEN_TAG:\n if (isMatch(nameBody, c)) {\n parser.tagName += c\n } else {\n newTag(parser)\n if (c === '>') {\n openTag(parser)\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH\n } else {\n if (!isWhitespace(c)) {\n strictFail(parser, 'Invalid character in tag name')\n }\n parser.state = S.ATTRIB\n }\n }\n continue\n\n case S.OPEN_TAG_SLASH:\n if (c === '>') {\n openTag(parser, true)\n closeTag(parser)\n } else {\n strictFail(parser, 'Forward-slash in opening tag not followed by >')\n parser.state = S.ATTRIB\n }\n continue\n\n case S.ATTRIB:\n // haven't read the attribute name yet.\n if (isWhitespace(c)) {\n continue\n } else if (c === '>') {\n openTag(parser)\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH\n } else if (isMatch(nameStart, c)) {\n parser.attribName = c\n parser.attribValue = ''\n parser.state = S.ATTRIB_NAME\n } else {\n strictFail(parser, 'Invalid attribute name')\n }\n continue\n\n case S.ATTRIB_NAME:\n if (c === '=') {\n parser.state = S.ATTRIB_VALUE\n } else if (c === '>') {\n strictFail(parser, 'Attribute without value')\n parser.attribValue = parser.attribName\n attrib(parser)\n openTag(parser)\n } else if (isWhitespace(c)) {\n parser.state = S.ATTRIB_NAME_SAW_WHITE\n } else if (isMatch(nameBody, c)) {\n parser.attribName += c\n } else {\n strictFail(parser, 'Invalid attribute name')\n }\n continue\n\n case S.ATTRIB_NAME_SAW_WHITE:\n if (c === '=') {\n parser.state = S.ATTRIB_VALUE\n } else if (isWhitespace(c)) {\n continue\n } else {\n strictFail(parser, 'Attribute without value')\n parser.tag.attributes[parser.attribName] = ''\n parser.attribValue = ''\n emitNode(parser, 'onattribute', {\n name: parser.attribName,\n value: ''\n })\n parser.attribName = ''\n if (c === '>') {\n openTag(parser)\n } else if (isMatch(nameStart, c)) {\n parser.attribName = c\n parser.state = S.ATTRIB_NAME\n } else {\n strictFail(parser, 'Invalid attribute name')\n parser.state = S.ATTRIB\n }\n }\n continue\n\n case S.ATTRIB_VALUE:\n if (isWhitespace(c)) {\n continue\n } else if (isQuote(c)) {\n parser.q = c\n parser.state = S.ATTRIB_VALUE_QUOTED\n } else {\n strictFail(parser, 'Unquoted attribute value')\n parser.state = S.ATTRIB_VALUE_UNQUOTED\n parser.attribValue = c\n }\n continue\n\n case S.ATTRIB_VALUE_QUOTED:\n if (c !== parser.q) {\n if (c === '&') {\n parser.state = S.ATTRIB_VALUE_ENTITY_Q\n } else {\n parser.attribValue += c\n }\n continue\n }\n attrib(parser)\n parser.q = ''\n parser.state = S.ATTRIB_VALUE_CLOSED\n continue\n\n case S.ATTRIB_VALUE_CLOSED:\n if (isWhitespace(c)) {\n parser.state = S.ATTRIB\n } else if (c === '>') {\n openTag(parser)\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH\n } else if (isMatch(nameStart, c)) {\n strictFail(parser, 'No whitespace between attributes')\n parser.attribName = c\n parser.attribValue = ''\n parser.state = S.ATTRIB_NAME\n } else {\n strictFail(parser, 'Invalid attribute name')\n }\n continue\n\n case S.ATTRIB_VALUE_UNQUOTED:\n if (!isAttribEnd(c)) {\n if (c === '&') {\n parser.state = S.ATTRIB_VALUE_ENTITY_U\n } else {\n parser.attribValue += c\n }\n continue\n }\n attrib(parser)\n if (c === '>') {\n openTag(parser)\n } else {\n parser.state = S.ATTRIB\n }\n continue\n\n case S.CLOSE_TAG:\n if (!parser.tagName) {\n if (isWhitespace(c)) {\n continue\n } else if (notMatch(nameStart, c)) {\n if (parser.script) {\n parser.script += '</' + c\n parser.state = S.SCRIPT\n } else {\n strictFail(parser, 'Invalid tagname in closing tag.')\n }\n } else {\n parser.tagName = c\n }\n } else if (c === '>') {\n closeTag(parser)\n } else if (isMatch(nameBody, c)) {\n parser.tagName += c\n } else if (parser.script) {\n parser.script += '</' + parser.tagName\n parser.tagName = ''\n parser.state = S.SCRIPT\n } else {\n if (!isWhitespace(c)) {\n strictFail(parser, 'Invalid tagname in closing tag')\n }\n parser.state = S.CLOSE_TAG_SAW_WHITE\n }\n continue\n\n case S.CLOSE_TAG_SAW_WHITE:\n if (isWhitespace(c)) {\n continue\n }\n if (c === '>') {\n closeTag(parser)\n } else {\n strictFail(parser, 'Invalid characters in closing tag')\n }\n continue\n\n case S.TEXT_ENTITY:\n case S.ATTRIB_VALUE_ENTITY_Q:\n case S.ATTRIB_VALUE_ENTITY_U:\n var returnState\n var buffer\n switch (parser.state) {\n case S.TEXT_ENTITY:\n returnState = S.TEXT\n buffer = 'textNode'\n break\n\n case S.ATTRIB_VALUE_ENTITY_Q:\n returnState = S.ATTRIB_VALUE_QUOTED\n buffer = 'attribValue'\n break\n\n case S.ATTRIB_VALUE_ENTITY_U:\n returnState = S.ATTRIB_VALUE_UNQUOTED\n buffer = 'attribValue'\n break\n }\n\n if (c === ';') {\n parser[buffer] += parseEntity(parser)\n parser.entity = ''\n parser.state = returnState\n } else if (isMatch(parser.entity.length ? entityBody : entityStart, c)) {\n parser.entity += c\n } else {\n strictFail(parser, 'Invalid character in entity name')\n parser[buffer] += '&' + parser.entity + c\n parser.entity = ''\n parser.state = returnState\n }\n\n continue\n\n default:\n throw new Error(parser, 'Unknown state: ' + parser.state)\n }\n } // while\n\n if (parser.position >= parser.bufferCheckPosition) {\n checkBufferLength(parser)\n }\n return parser\n }\n\n /*! http://mths.be/fromcodepoint v0.1.0 by @mathias */\n /* istanbul ignore next */\n if (!String.fromCodePoint) {\n (function () {\n var stringFromCharCode = String.fromCharCode\n var floor = Math.floor\n var fromCodePoint = function () {\n var MAX_SIZE = 0x4000\n var codeUnits = []\n var highSurrogate\n var lowSurrogate\n var index = -1\n var length = arguments.length\n if (!length) {\n return ''\n }\n var result = ''\n while (++index < length) {\n var codePoint = Number(arguments[index])\n if (\n !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10FFFF || // not a valid Unicode code point\n floor(codePoint) !== codePoint // not an integer\n ) {\n throw RangeError('Invalid code point: ' + codePoint)\n }\n if (codePoint <= 0xFFFF) { // BMP code point\n codeUnits.push(codePoint)\n } else { // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000\n highSurrogate = (codePoint >> 10) + 0xD800\n lowSurrogate = (codePoint % 0x400) + 0xDC00\n codeUnits.push(highSurrogate, lowSurrogate)\n }\n if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n result += stringFromCharCode.apply(null, codeUnits)\n codeUnits.length = 0\n }\n }\n return result\n }\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(String, 'fromCodePoint', {\n value: fromCodePoint,\n configurable: true,\n writable: true\n })\n } else {\n String.fromCodePoint = fromCodePoint\n }\n }())\n }\n})(typeof exports === 'undefined' ? this.sax = {} : exports)\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDTDElement, XMLNode,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n module.exports = XMLDTDElement = (function(superClass) {\n extend(XMLDTDElement, superClass);\n\n function XMLDTDElement(parent, name, value) {\n XMLDTDElement.__super__.constructor.call(this, parent);\n if (name == null) {\n throw new Error(\"Missing DTD element name. \" + this.debugInfo());\n }\n if (!value) {\n value = '(#PCDATA)';\n }\n if (Array.isArray(value)) {\n value = '(' + value.join(',') + ')';\n }\n this.name = this.stringify.name(name);\n this.type = NodeType.ElementDeclaration;\n this.value = this.stringify.dtdElementValue(value);\n }\n\n XMLDTDElement.prototype.toString = function(options) {\n return this.options.writer.dtdElement(this, this.options.writer.filterOptions(options));\n };\n\n return XMLDTDElement;\n\n })(XMLNode);\n\n}).call(this);\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","// Generated by CoffeeScript 1.12.7\n(function() {\n \"use strict\";\n var builder, defaults, escapeCDATA, requiresCDATA, wrapCDATA,\n hasProp = {}.hasOwnProperty;\n\n builder = require('xmlbuilder');\n\n defaults = require('./defaults').defaults;\n\n requiresCDATA = function(entry) {\n return typeof entry === \"string\" && (entry.indexOf('&') >= 0 || entry.indexOf('>') >= 0 || entry.indexOf('<') >= 0);\n };\n\n wrapCDATA = function(entry) {\n return \"<![CDATA[\" + (escapeCDATA(entry)) + \"]]>\";\n };\n\n escapeCDATA = function(entry) {\n return entry.replace(']]>', ']]]]><![CDATA[>');\n };\n\n exports.Builder = (function() {\n function Builder(opts) {\n var key, ref, value;\n this.options = {};\n ref = defaults[\"0.2\"];\n for (key in ref) {\n if (!hasProp.call(ref, key)) continue;\n value = ref[key];\n this.options[key] = value;\n }\n for (key in opts) {\n if (!hasProp.call(opts, key)) continue;\n value = opts[key];\n this.options[key] = value;\n }\n }\n\n Builder.prototype.buildObject = function(rootObj) {\n var attrkey, charkey, render, rootElement, rootName;\n attrkey = this.options.attrkey;\n charkey = this.options.charkey;\n if ((Object.keys(rootObj).length === 1) && (this.options.rootName === defaults['0.2'].rootName)) {\n rootName = Object.keys(rootObj)[0];\n rootObj = rootObj[rootName];\n } else {\n rootName = this.options.rootName;\n }\n render = (function(_this) {\n return function(element, obj) {\n var attr, child, entry, index, key, value;\n if (typeof obj !== 'object') {\n if (_this.options.cdata && requiresCDATA(obj)) {\n element.raw(wrapCDATA(obj));\n } else {\n element.txt(obj);\n }\n } else if (Array.isArray(obj)) {\n for (index in obj) {\n if (!hasProp.call(obj, index)) continue;\n child = obj[index];\n for (key in child) {\n entry = child[key];\n element = render(element.ele(key), entry).up();\n }\n }\n } else {\n for (key in obj) {\n if (!hasProp.call(obj, key)) continue;\n child = obj[key];\n if (key === attrkey) {\n if (typeof child === \"object\") {\n for (attr in child) {\n value = child[attr];\n element = element.att(attr, value);\n }\n }\n } else if (key === charkey) {\n if (_this.options.cdata && requiresCDATA(child)) {\n element = element.raw(wrapCDATA(child));\n } else {\n element = element.txt(child);\n }\n } else if (Array.isArray(child)) {\n for (index in child) {\n if (!hasProp.call(child, index)) continue;\n entry = child[index];\n if (typeof entry === 'string') {\n if (_this.options.cdata && requiresCDATA(entry)) {\n element = element.ele(key).raw(wrapCDATA(entry)).up();\n } else {\n element = element.ele(key, entry).up();\n }\n } else {\n element = render(element.ele(key), entry).up();\n }\n }\n } else if (typeof child === \"object\") {\n element = render(element.ele(key), child).up();\n } else {\n if (typeof child === 'string' && _this.options.cdata && requiresCDATA(child)) {\n element = element.ele(key).raw(wrapCDATA(child)).up();\n } else {\n if (child == null) {\n child = '';\n }\n element = element.ele(key, child.toString()).up();\n }\n }\n }\n }\n return element;\n };\n })(this);\n rootElement = builder.create(rootName, this.options.xmldec, this.options.doctype, {\n headless: this.options.headless,\n allowSurrogateChars: this.options.allowSurrogateChars\n });\n return render(rootElement, rootObj).end(this.options.renderOpts);\n };\n\n return Builder;\n\n })();\n\n}).call(this);\n","module.exports = require('events').EventEmitter;\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var assign, getValue, isArray, isEmpty, isFunction, isObject, isPlainObject,\n slice = [].slice,\n hasProp = {}.hasOwnProperty;\n\n assign = function() {\n var i, key, len, source, sources, target;\n target = arguments[0], sources = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n if (isFunction(Object.assign)) {\n Object.assign.apply(null, arguments);\n } else {\n for (i = 0, len = sources.length; i < len; i++) {\n source = sources[i];\n if (source != null) {\n for (key in source) {\n if (!hasProp.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n }\n }\n return target;\n };\n\n isFunction = function(val) {\n return !!val && Object.prototype.toString.call(val) === '[object Function]';\n };\n\n isObject = function(val) {\n var ref;\n return !!val && ((ref = typeof val) === 'function' || ref === 'object');\n };\n\n isArray = function(val) {\n if (isFunction(Array.isArray)) {\n return Array.isArray(val);\n } else {\n return Object.prototype.toString.call(val) === '[object Array]';\n }\n };\n\n isEmpty = function(val) {\n var key;\n if (isArray(val)) {\n return !val.length;\n } else {\n for (key in val) {\n if (!hasProp.call(val, key)) continue;\n return false;\n }\n return true;\n }\n };\n\n isPlainObject = function(val) {\n var ctor, proto;\n return isObject(val) && (proto = Object.getPrototypeOf(val)) && (ctor = proto.constructor) && (typeof ctor === 'function') && (ctor instanceof ctor) && (Function.prototype.toString.call(ctor) === Function.prototype.toString.call(Object));\n };\n\n getValue = function(obj) {\n if (isFunction(obj.valueOf)) {\n return obj.valueOf();\n } else {\n return obj;\n }\n };\n\n module.exports.assign = assign;\n\n module.exports.isFunction = isFunction;\n\n module.exports.isObject = isObject;\n\n module.exports.isArray = isArray;\n\n module.exports.isEmpty = isEmpty;\n\n module.exports.isPlainObject = isPlainObject;\n\n module.exports.getValue = getValue;\n\n}).call(this);\n","'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLNode, XMLRaw,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n NodeType = require('./NodeType');\n\n XMLNode = require('./XMLNode');\n\n module.exports = XMLRaw = (function(superClass) {\n extend(XMLRaw, superClass);\n\n function XMLRaw(parent, text) {\n XMLRaw.__super__.constructor.call(this, parent);\n if (text == null) {\n throw new Error(\"Missing raw text. \" + this.debugInfo());\n }\n this.type = NodeType.Raw;\n this.value = this.stringify.raw(text);\n }\n\n XMLRaw.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLRaw.prototype.toString = function(options) {\n return this.options.writer.raw(this, this.options.writer.filterOptions(options));\n };\n\n return XMLRaw;\n\n })(XMLNode);\n\n}).call(this);\n","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDeclaration, XMLNode, isObject,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n isObject = require('./Utility').isObject;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n module.exports = XMLDeclaration = (function(superClass) {\n extend(XMLDeclaration, superClass);\n\n function XMLDeclaration(parent, version, encoding, standalone) {\n var ref;\n XMLDeclaration.__super__.constructor.call(this, parent);\n if (isObject(version)) {\n ref = version, version = ref.version, encoding = ref.encoding, standalone = ref.standalone;\n }\n if (!version) {\n version = '1.0';\n }\n this.type = NodeType.Declaration;\n this.version = this.stringify.xmlVersion(version);\n if (encoding != null) {\n this.encoding = this.stringify.xmlEncoding(encoding);\n }\n if (standalone != null) {\n this.standalone = this.stringify.xmlStandalone(standalone);\n }\n }\n\n XMLDeclaration.prototype.toString = function(options) {\n return this.options.writer.declaration(this, this.options.writer.filterOptions(options));\n };\n\n return XMLDeclaration;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLCData, XMLCharacterData,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n NodeType = require('./NodeType');\n\n XMLCharacterData = require('./XMLCharacterData');\n\n module.exports = XMLCData = (function(superClass) {\n extend(XMLCData, superClass);\n\n function XMLCData(parent, text) {\n XMLCData.__super__.constructor.call(this, parent);\n if (text == null) {\n throw new Error(\"Missing CDATA text. \" + this.debugInfo());\n }\n this.name = \"#cdata-section\";\n this.type = NodeType.CData;\n this.value = this.stringify.cdata(text);\n }\n\n XMLCData.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLCData.prototype.toString = function(options) {\n return this.options.writer.cdata(this, this.options.writer.filterOptions(options));\n };\n\n return XMLCData;\n\n })(XMLCharacterData);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, WriterState, XMLAttribute, XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDocument, XMLDocumentCB, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLStringifier, XMLText, getValue, isFunction, isObject, isPlainObject, ref,\n hasProp = {}.hasOwnProperty;\n\n ref = require('./Utility'), isObject = ref.isObject, isFunction = ref.isFunction, isPlainObject = ref.isPlainObject, getValue = ref.getValue;\n\n NodeType = require('./NodeType');\n\n XMLDocument = require('./XMLDocument');\n\n XMLElement = require('./XMLElement');\n\n XMLCData = require('./XMLCData');\n\n XMLComment = require('./XMLComment');\n\n XMLRaw = require('./XMLRaw');\n\n XMLText = require('./XMLText');\n\n XMLProcessingInstruction = require('./XMLProcessingInstruction');\n\n XMLDeclaration = require('./XMLDeclaration');\n\n XMLDocType = require('./XMLDocType');\n\n XMLDTDAttList = require('./XMLDTDAttList');\n\n XMLDTDEntity = require('./XMLDTDEntity');\n\n XMLDTDElement = require('./XMLDTDElement');\n\n XMLDTDNotation = require('./XMLDTDNotation');\n\n XMLAttribute = require('./XMLAttribute');\n\n XMLStringifier = require('./XMLStringifier');\n\n XMLStringWriter = require('./XMLStringWriter');\n\n WriterState = require('./WriterState');\n\n module.exports = XMLDocumentCB = (function() {\n function XMLDocumentCB(options, onData, onEnd) {\n var writerOptions;\n this.name = \"?xml\";\n this.type = NodeType.Document;\n options || (options = {});\n writerOptions = {};\n if (!options.writer) {\n options.writer = new XMLStringWriter();\n } else if (isPlainObject(options.writer)) {\n writerOptions = options.writer;\n options.writer = new XMLStringWriter();\n }\n this.options = options;\n this.writer = options.writer;\n this.writerOptions = this.writer.filterOptions(writerOptions);\n this.stringify = new XMLStringifier(options);\n this.onDataCallback = onData || function() {};\n this.onEndCallback = onEnd || function() {};\n this.currentNode = null;\n this.currentLevel = -1;\n this.openTags = {};\n this.documentStarted = false;\n this.documentCompleted = false;\n this.root = null;\n }\n\n XMLDocumentCB.prototype.createChildNode = function(node) {\n var att, attName, attributes, child, i, len, ref1, ref2;\n switch (node.type) {\n case NodeType.CData:\n this.cdata(node.value);\n break;\n case NodeType.Comment:\n this.comment(node.value);\n break;\n case NodeType.Element:\n attributes = {};\n ref1 = node.attribs;\n for (attName in ref1) {\n if (!hasProp.call(ref1, attName)) continue;\n att = ref1[attName];\n attributes[attName] = att.value;\n }\n this.node(node.name, attributes);\n break;\n case NodeType.Dummy:\n this.dummy();\n break;\n case NodeType.Raw:\n this.raw(node.value);\n break;\n case NodeType.Text:\n this.text(node.value);\n break;\n case NodeType.ProcessingInstruction:\n this.instruction(node.target, node.value);\n break;\n default:\n throw new Error(\"This XML node type is not supported in a JS object: \" + node.constructor.name);\n }\n ref2 = node.children;\n for (i = 0, len = ref2.length; i < len; i++) {\n child = ref2[i];\n this.createChildNode(child);\n if (child.type === NodeType.Element) {\n this.up();\n }\n }\n return this;\n };\n\n XMLDocumentCB.prototype.dummy = function() {\n return this;\n };\n\n XMLDocumentCB.prototype.node = function(name, attributes, text) {\n var ref1;\n if (name == null) {\n throw new Error(\"Missing node name.\");\n }\n if (this.root && this.currentLevel === -1) {\n throw new Error(\"Document can only have one root node. \" + this.debugInfo(name));\n }\n this.openCurrent();\n name = getValue(name);\n if (attributes == null) {\n attributes = {};\n }\n attributes = getValue(attributes);\n if (!isObject(attributes)) {\n ref1 = [attributes, text], text = ref1[0], attributes = ref1[1];\n }\n this.currentNode = new XMLElement(this, name, attributes);\n this.currentNode.children = false;\n this.currentLevel++;\n this.openTags[this.currentLevel] = this.currentNode;\n if (text != null) {\n this.text(text);\n }\n return this;\n };\n\n XMLDocumentCB.prototype.element = function(name, attributes, text) {\n var child, i, len, oldValidationFlag, ref1, root;\n if (this.currentNode && this.currentNode.type === NodeType.DocType) {\n this.dtdElement.apply(this, arguments);\n } else {\n if (Array.isArray(name) || isObject(name) || isFunction(name)) {\n oldValidationFlag = this.options.noValidation;\n this.options.noValidation = true;\n root = new XMLDocument(this.options).element('TEMP_ROOT');\n root.element(name);\n this.options.noValidation = oldValidationFlag;\n ref1 = root.children;\n for (i = 0, len = ref1.length; i < len; i++) {\n child = ref1[i];\n this.createChildNode(child);\n if (child.type === NodeType.Element) {\n this.up();\n }\n }\n } else {\n this.node(name, attributes, text);\n }\n }\n return this;\n };\n\n XMLDocumentCB.prototype.attribute = function(name, value) {\n var attName, attValue;\n if (!this.currentNode || this.currentNode.children) {\n throw new Error(\"att() can only be used immediately after an ele() call in callback mode. \" + this.debugInfo(name));\n }\n if (name != null) {\n name = getValue(name);\n }\n if (isObject(name)) {\n for (attName in name) {\n if (!hasProp.call(name, attName)) continue;\n attValue = name[attName];\n this.attribute(attName, attValue);\n }\n } else {\n if (isFunction(value)) {\n value = value.apply();\n }\n if (this.options.keepNullAttributes && (value == null)) {\n this.currentNode.attribs[name] = new XMLAttribute(this, name, \"\");\n } else if (value != null) {\n this.currentNode.attribs[name] = new XMLAttribute(this, name, value);\n }\n }\n return this;\n };\n\n XMLDocumentCB.prototype.text = function(value) {\n var node;\n this.openCurrent();\n node = new XMLText(this, value);\n this.onData(this.writer.text(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.cdata = function(value) {\n var node;\n this.openCurrent();\n node = new XMLCData(this, value);\n this.onData(this.writer.cdata(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.comment = function(value) {\n var node;\n this.openCurrent();\n node = new XMLComment(this, value);\n this.onData(this.writer.comment(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.raw = function(value) {\n var node;\n this.openCurrent();\n node = new XMLRaw(this, value);\n this.onData(this.writer.raw(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.instruction = function(target, value) {\n var i, insTarget, insValue, len, node;\n this.openCurrent();\n if (target != null) {\n target = getValue(target);\n }\n if (value != null) {\n value = getValue(value);\n }\n if (Array.isArray(target)) {\n for (i = 0, len = target.length; i < len; i++) {\n insTarget = target[i];\n this.instruction(insTarget);\n }\n } else if (isObject(target)) {\n for (insTarget in target) {\n if (!hasProp.call(target, insTarget)) continue;\n insValue = target[insTarget];\n this.instruction(insTarget, insValue);\n }\n } else {\n if (isFunction(value)) {\n value = value.apply();\n }\n node = new XMLProcessingInstruction(this, target, value);\n this.onData(this.writer.processingInstruction(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n }\n return this;\n };\n\n XMLDocumentCB.prototype.declaration = function(version, encoding, standalone) {\n var node;\n this.openCurrent();\n if (this.documentStarted) {\n throw new Error(\"declaration() must be the first node.\");\n }\n node = new XMLDeclaration(this, version, encoding, standalone);\n this.onData(this.writer.declaration(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.doctype = function(root, pubID, sysID) {\n this.openCurrent();\n if (root == null) {\n throw new Error(\"Missing root node name.\");\n }\n if (this.root) {\n throw new Error(\"dtd() must come before the root node.\");\n }\n this.currentNode = new XMLDocType(this, pubID, sysID);\n this.currentNode.rootNodeName = root;\n this.currentNode.children = false;\n this.currentLevel++;\n this.openTags[this.currentLevel] = this.currentNode;\n return this;\n };\n\n XMLDocumentCB.prototype.dtdElement = function(name, value) {\n var node;\n this.openCurrent();\n node = new XMLDTDElement(this, name, value);\n this.onData(this.writer.dtdElement(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {\n var node;\n this.openCurrent();\n node = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue);\n this.onData(this.writer.dtdAttList(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.entity = function(name, value) {\n var node;\n this.openCurrent();\n node = new XMLDTDEntity(this, false, name, value);\n this.onData(this.writer.dtdEntity(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.pEntity = function(name, value) {\n var node;\n this.openCurrent();\n node = new XMLDTDEntity(this, true, name, value);\n this.onData(this.writer.dtdEntity(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.notation = function(name, value) {\n var node;\n this.openCurrent();\n node = new XMLDTDNotation(this, name, value);\n this.onData(this.writer.dtdNotation(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.up = function() {\n if (this.currentLevel < 0) {\n throw new Error(\"The document node has no parent.\");\n }\n if (this.currentNode) {\n if (this.currentNode.children) {\n this.closeNode(this.currentNode);\n } else {\n this.openNode(this.currentNode);\n }\n this.currentNode = null;\n } else {\n this.closeNode(this.openTags[this.currentLevel]);\n }\n delete this.openTags[this.currentLevel];\n this.currentLevel--;\n return this;\n };\n\n XMLDocumentCB.prototype.end = function() {\n while (this.currentLevel >= 0) {\n this.up();\n }\n return this.onEnd();\n };\n\n XMLDocumentCB.prototype.openCurrent = function() {\n if (this.currentNode) {\n this.currentNode.children = true;\n return this.openNode(this.currentNode);\n }\n };\n\n XMLDocumentCB.prototype.openNode = function(node) {\n var att, chunk, name, ref1;\n if (!node.isOpen) {\n if (!this.root && this.currentLevel === 0 && node.type === NodeType.Element) {\n this.root = node;\n }\n chunk = '';\n if (node.type === NodeType.Element) {\n this.writerOptions.state = WriterState.OpenTag;\n chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + '<' + node.name;\n ref1 = node.attribs;\n for (name in ref1) {\n if (!hasProp.call(ref1, name)) continue;\n att = ref1[name];\n chunk += this.writer.attribute(att, this.writerOptions, this.currentLevel);\n }\n chunk += (node.children ? '>' : '/>') + this.writer.endline(node, this.writerOptions, this.currentLevel);\n this.writerOptions.state = WriterState.InsideTag;\n } else {\n this.writerOptions.state = WriterState.OpenTag;\n chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + '<!DOCTYPE ' + node.rootNodeName;\n if (node.pubID && node.sysID) {\n chunk += ' PUBLIC \"' + node.pubID + '\" \"' + node.sysID + '\"';\n } else if (node.sysID) {\n chunk += ' SYSTEM \"' + node.sysID + '\"';\n }\n if (node.children) {\n chunk += ' [';\n this.writerOptions.state = WriterState.InsideTag;\n } else {\n this.writerOptions.state = WriterState.CloseTag;\n chunk += '>';\n }\n chunk += this.writer.endline(node, this.writerOptions, this.currentLevel);\n }\n this.onData(chunk, this.currentLevel);\n return node.isOpen = true;\n }\n };\n\n XMLDocumentCB.prototype.closeNode = function(node) {\n var chunk;\n if (!node.isClosed) {\n chunk = '';\n this.writerOptions.state = WriterState.CloseTag;\n if (node.type === NodeType.Element) {\n chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + '</' + node.name + '>' + this.writer.endline(node, this.writerOptions, this.currentLevel);\n } else {\n chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + ']>' + this.writer.endline(node, this.writerOptions, this.currentLevel);\n }\n this.writerOptions.state = WriterState.None;\n this.onData(chunk, this.currentLevel);\n return node.isClosed = true;\n }\n };\n\n XMLDocumentCB.prototype.onData = function(chunk, level) {\n this.documentStarted = true;\n return this.onDataCallback(chunk, level + 1);\n };\n\n XMLDocumentCB.prototype.onEnd = function() {\n this.documentCompleted = true;\n return this.onEndCallback();\n };\n\n XMLDocumentCB.prototype.debugInfo = function(name) {\n if (name == null) {\n return \"\";\n } else {\n return \"node: <\" + name + \">\";\n }\n };\n\n XMLDocumentCB.prototype.ele = function() {\n return this.element.apply(this, arguments);\n };\n\n XMLDocumentCB.prototype.nod = function(name, attributes, text) {\n return this.node(name, attributes, text);\n };\n\n XMLDocumentCB.prototype.txt = function(value) {\n return this.text(value);\n };\n\n XMLDocumentCB.prototype.dat = function(value) {\n return this.cdata(value);\n };\n\n XMLDocumentCB.prototype.com = function(value) {\n return this.comment(value);\n };\n\n XMLDocumentCB.prototype.ins = function(target, value) {\n return this.instruction(target, value);\n };\n\n XMLDocumentCB.prototype.dec = function(version, encoding, standalone) {\n return this.declaration(version, encoding, standalone);\n };\n\n XMLDocumentCB.prototype.dtd = function(root, pubID, sysID) {\n return this.doctype(root, pubID, sysID);\n };\n\n XMLDocumentCB.prototype.e = function(name, attributes, text) {\n return this.element(name, attributes, text);\n };\n\n XMLDocumentCB.prototype.n = function(name, attributes, text) {\n return this.node(name, attributes, text);\n };\n\n XMLDocumentCB.prototype.t = function(value) {\n return this.text(value);\n };\n\n XMLDocumentCB.prototype.d = function(value) {\n return this.cdata(value);\n };\n\n XMLDocumentCB.prototype.c = function(value) {\n return this.comment(value);\n };\n\n XMLDocumentCB.prototype.r = function(value) {\n return this.raw(value);\n };\n\n XMLDocumentCB.prototype.i = function(target, value) {\n return this.instruction(target, value);\n };\n\n XMLDocumentCB.prototype.att = function() {\n if (this.currentNode && this.currentNode.type === NodeType.DocType) {\n return this.attList.apply(this, arguments);\n } else {\n return this.attribute.apply(this, arguments);\n }\n };\n\n XMLDocumentCB.prototype.a = function() {\n if (this.currentNode && this.currentNode.type === NodeType.DocType) {\n return this.attList.apply(this, arguments);\n } else {\n return this.attribute.apply(this, arguments);\n }\n };\n\n XMLDocumentCB.prototype.ent = function(name, value) {\n return this.entity(name, value);\n };\n\n XMLDocumentCB.prototype.pent = function(name, value) {\n return this.pEntity(name, value);\n };\n\n XMLDocumentCB.prototype.not = function(name, value) {\n return this.notation(name, value);\n };\n\n return XMLDocumentCB;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLCharacterData, XMLNode,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n module.exports = XMLCharacterData = (function(superClass) {\n extend(XMLCharacterData, superClass);\n\n function XMLCharacterData(parent) {\n XMLCharacterData.__super__.constructor.call(this, parent);\n this.value = '';\n }\n\n Object.defineProperty(XMLCharacterData.prototype, 'data', {\n get: function() {\n return this.value;\n },\n set: function(value) {\n return this.value = value || '';\n }\n });\n\n Object.defineProperty(XMLCharacterData.prototype, 'length', {\n get: function() {\n return this.value.length;\n }\n });\n\n Object.defineProperty(XMLCharacterData.prototype, 'textContent', {\n get: function() {\n return this.value;\n },\n set: function(value) {\n return this.value = value || '';\n }\n });\n\n XMLCharacterData.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLCharacterData.prototype.substringData = function(offset, count) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLCharacterData.prototype.appendData = function(arg) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLCharacterData.prototype.insertData = function(offset, arg) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLCharacterData.prototype.deleteData = function(offset, count) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLCharacterData.prototype.replaceData = function(offset, count, arg) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLCharacterData.prototype.isEqualNode = function(node) {\n if (!XMLCharacterData.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) {\n return false;\n }\n if (node.data !== this.data) {\n return false;\n }\n return true;\n };\n\n return XMLCharacterData;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLStringifier,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },\n hasProp = {}.hasOwnProperty;\n\n module.exports = XMLStringifier = (function() {\n function XMLStringifier(options) {\n this.assertLegalName = bind(this.assertLegalName, this);\n this.assertLegalChar = bind(this.assertLegalChar, this);\n var key, ref, value;\n options || (options = {});\n this.options = options;\n if (!this.options.version) {\n this.options.version = '1.0';\n }\n ref = options.stringify || {};\n for (key in ref) {\n if (!hasProp.call(ref, key)) continue;\n value = ref[key];\n this[key] = value;\n }\n }\n\n XMLStringifier.prototype.name = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalName('' + val || '');\n };\n\n XMLStringifier.prototype.text = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar(this.textEscape('' + val || ''));\n };\n\n XMLStringifier.prototype.cdata = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n val = '' + val || '';\n val = val.replace(']]>', ']]]]><![CDATA[>');\n return this.assertLegalChar(val);\n };\n\n XMLStringifier.prototype.comment = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n val = '' + val || '';\n if (val.match(/--/)) {\n throw new Error(\"Comment text cannot contain double-hypen: \" + val);\n }\n return this.assertLegalChar(val);\n };\n\n XMLStringifier.prototype.raw = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return '' + val || '';\n };\n\n XMLStringifier.prototype.attValue = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar(this.attEscape(val = '' + val || ''));\n };\n\n XMLStringifier.prototype.insTarget = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.insValue = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n val = '' + val || '';\n if (val.match(/\\?>/)) {\n throw new Error(\"Invalid processing instruction value: \" + val);\n }\n return this.assertLegalChar(val);\n };\n\n XMLStringifier.prototype.xmlVersion = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n val = '' + val || '';\n if (!val.match(/1\\.[0-9]+/)) {\n throw new Error(\"Invalid version number: \" + val);\n }\n return val;\n };\n\n XMLStringifier.prototype.xmlEncoding = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n val = '' + val || '';\n if (!val.match(/^[A-Za-z](?:[A-Za-z0-9._-])*$/)) {\n throw new Error(\"Invalid encoding: \" + val);\n }\n return this.assertLegalChar(val);\n };\n\n XMLStringifier.prototype.xmlStandalone = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n if (val) {\n return \"yes\";\n } else {\n return \"no\";\n }\n };\n\n XMLStringifier.prototype.dtdPubID = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.dtdSysID = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.dtdElementValue = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.dtdAttType = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.dtdAttDefault = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.dtdEntityValue = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.dtdNData = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.convertAttKey = '@';\n\n XMLStringifier.prototype.convertPIKey = '?';\n\n XMLStringifier.prototype.convertTextKey = '#text';\n\n XMLStringifier.prototype.convertCDataKey = '#cdata';\n\n XMLStringifier.prototype.convertCommentKey = '#comment';\n\n XMLStringifier.prototype.convertRawKey = '#raw';\n\n XMLStringifier.prototype.assertLegalChar = function(str) {\n var regex, res;\n if (this.options.noValidation) {\n return str;\n }\n regex = '';\n if (this.options.version === '1.0') {\n regex = /[\\0-\\x08\\x0B\\f\\x0E-\\x1F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n if (res = str.match(regex)) {\n throw new Error(\"Invalid character in string: \" + str + \" at index \" + res.index);\n }\n } else if (this.options.version === '1.1') {\n regex = /[\\0\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n if (res = str.match(regex)) {\n throw new Error(\"Invalid character in string: \" + str + \" at index \" + res.index);\n }\n }\n return str;\n };\n\n XMLStringifier.prototype.assertLegalName = function(str) {\n var regex;\n if (this.options.noValidation) {\n return str;\n }\n this.assertLegalChar(str);\n regex = /^([:A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])([\\x2D\\.0-:A-Z_a-z\\xB7\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u203F\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])*$/;\n if (!str.match(regex)) {\n throw new Error(\"Invalid character in name\");\n }\n return str;\n };\n\n XMLStringifier.prototype.textEscape = function(str) {\n var ampregex;\n if (this.options.noValidation) {\n return str;\n }\n ampregex = this.options.noDoubleEncoding ? /(?!&\\S+;)&/g : /&/g;\n return str.replace(ampregex, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\\r/g, '
');\n };\n\n XMLStringifier.prototype.attEscape = function(str) {\n var ampregex;\n if (this.options.noValidation) {\n return str;\n }\n ampregex = this.options.noDoubleEncoding ? /(?!&\\S+;)&/g : /&/g;\n return str.replace(ampregex, '&').replace(/</g, '<').replace(/\"/g, '"').replace(/\\t/g, '	').replace(/\\n/g, '
').replace(/\\r/g, '
');\n };\n\n return XMLStringifier;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLNamedNodeMap;\n\n module.exports = XMLNamedNodeMap = (function() {\n function XMLNamedNodeMap(nodes) {\n this.nodes = nodes;\n }\n\n Object.defineProperty(XMLNamedNodeMap.prototype, 'length', {\n get: function() {\n return Object.keys(this.nodes).length || 0;\n }\n });\n\n XMLNamedNodeMap.prototype.clone = function() {\n return this.nodes = null;\n };\n\n XMLNamedNodeMap.prototype.getNamedItem = function(name) {\n return this.nodes[name];\n };\n\n XMLNamedNodeMap.prototype.setNamedItem = function(node) {\n var oldNode;\n oldNode = this.nodes[node.nodeName];\n this.nodes[node.nodeName] = node;\n return oldNode || null;\n };\n\n XMLNamedNodeMap.prototype.removeNamedItem = function(name) {\n var oldNode;\n oldNode = this.nodes[name];\n delete this.nodes[name];\n return oldNode || null;\n };\n\n XMLNamedNodeMap.prototype.item = function(index) {\n return this.nodes[Object.keys(this.nodes)[index]] || null;\n };\n\n XMLNamedNodeMap.prototype.getNamedItemNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\");\n };\n\n XMLNamedNodeMap.prototype.setNamedItemNS = function(node) {\n throw new Error(\"This DOM method is not implemented.\");\n };\n\n XMLNamedNodeMap.prototype.removeNamedItemNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\");\n };\n\n return XMLNamedNodeMap;\n\n })();\n\n}).call(this);\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","// Generated by CoffeeScript 1.12.7\n(function() {\n \"use strict\";\n exports.stripBOM = function(str) {\n if (str[0] === '\\uFEFF') {\n return str.substring(1);\n } else {\n return str;\n }\n };\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, WriterState, XMLDOMImplementation, XMLDocument, XMLDocumentCB, XMLStreamWriter, XMLStringWriter, assign, isFunction, ref;\n\n ref = require('./Utility'), assign = ref.assign, isFunction = ref.isFunction;\n\n XMLDOMImplementation = require('./XMLDOMImplementation');\n\n XMLDocument = require('./XMLDocument');\n\n XMLDocumentCB = require('./XMLDocumentCB');\n\n XMLStringWriter = require('./XMLStringWriter');\n\n XMLStreamWriter = require('./XMLStreamWriter');\n\n NodeType = require('./NodeType');\n\n WriterState = require('./WriterState');\n\n module.exports.create = function(name, xmldec, doctype, options) {\n var doc, root;\n if (name == null) {\n throw new Error(\"Root element needs a name.\");\n }\n options = assign({}, xmldec, doctype, options);\n doc = new XMLDocument(options);\n root = doc.element(name);\n if (!options.headless) {\n doc.declaration(options);\n if ((options.pubID != null) || (options.sysID != null)) {\n doc.dtd(options);\n }\n }\n return root;\n };\n\n module.exports.begin = function(options, onData, onEnd) {\n var ref1;\n if (isFunction(options)) {\n ref1 = [options, onData], onData = ref1[0], onEnd = ref1[1];\n options = {};\n }\n if (onData) {\n return new XMLDocumentCB(options, onData, onEnd);\n } else {\n return new XMLDocument(options);\n }\n };\n\n module.exports.stringWriter = function(options) {\n return new XMLStringWriter(options);\n };\n\n module.exports.streamWriter = function(stream, options) {\n return new XMLStreamWriter(stream, options);\n };\n\n module.exports.implementation = new XMLDOMImplementation();\n\n module.exports.nodeType = NodeType;\n\n module.exports.writerState = WriterState;\n\n}).call(this);\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/*<replacement>*/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\n/*</replacement>*/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","// Generated by CoffeeScript 1.12.7\n(function() {\n \"use strict\";\n var prefixMatch;\n\n prefixMatch = new RegExp(/(?!xmlns)^.*:/);\n\n exports.normalize = function(str) {\n return str.toLowerCase();\n };\n\n exports.firstCharLowerCase = function(str) {\n return str.charAt(0).toLowerCase() + str.slice(1);\n };\n\n exports.stripPrefix = function(str) {\n return str.replace(prefixMatch, '');\n };\n\n exports.parseNumbers = function(str) {\n if (!isNaN(str)) {\n str = str % 1 === 0 ? parseInt(str, 10) : parseFloat(str);\n }\n return str;\n };\n\n exports.parseBooleans = function(str) {\n if (/^(?:true|false)$/i.test(str)) {\n str = str.toLowerCase() === 'true';\n }\n return str;\n };\n\n}).call(this);\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLCharacterData, XMLComment,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n NodeType = require('./NodeType');\n\n XMLCharacterData = require('./XMLCharacterData');\n\n module.exports = XMLComment = (function(superClass) {\n extend(XMLComment, superClass);\n\n function XMLComment(parent, text) {\n XMLComment.__super__.constructor.call(this, parent);\n if (text == null) {\n throw new Error(\"Missing comment text. \" + this.debugInfo());\n }\n this.name = \"#comment\";\n this.type = NodeType.Comment;\n this.value = this.stringify.comment(text);\n }\n\n XMLComment.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLComment.prototype.toString = function(options) {\n return this.options.writer.comment(this, this.options.writer.filterOptions(options));\n };\n\n return XMLComment;\n\n })(XMLCharacterData);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLDOMConfiguration, XMLDOMErrorHandler, XMLDOMStringList;\n\n XMLDOMErrorHandler = require('./XMLDOMErrorHandler');\n\n XMLDOMStringList = require('./XMLDOMStringList');\n\n module.exports = XMLDOMConfiguration = (function() {\n function XMLDOMConfiguration() {\n var clonedSelf;\n this.defaultParams = {\n \"canonical-form\": false,\n \"cdata-sections\": false,\n \"comments\": false,\n \"datatype-normalization\": false,\n \"element-content-whitespace\": true,\n \"entities\": true,\n \"error-handler\": new XMLDOMErrorHandler(),\n \"infoset\": true,\n \"validate-if-schema\": false,\n \"namespaces\": true,\n \"namespace-declarations\": true,\n \"normalize-characters\": false,\n \"schema-location\": '',\n \"schema-type\": '',\n \"split-cdata-sections\": true,\n \"validate\": false,\n \"well-formed\": true\n };\n this.params = clonedSelf = Object.create(this.defaultParams);\n }\n\n Object.defineProperty(XMLDOMConfiguration.prototype, 'parameterNames', {\n get: function() {\n return new XMLDOMStringList(Object.keys(this.defaultParams));\n }\n });\n\n XMLDOMConfiguration.prototype.getParameter = function(name) {\n if (this.params.hasOwnProperty(name)) {\n return this.params[name];\n } else {\n return null;\n }\n };\n\n XMLDOMConfiguration.prototype.canSetParameter = function(name, value) {\n return true;\n };\n\n XMLDOMConfiguration.prototype.setParameter = function(name, value) {\n if (value != null) {\n return this.params[name] = value;\n } else {\n return delete this.params[name];\n }\n };\n\n return XMLDOMConfiguration;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var DocumentPosition, NodeType, XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLDummy, XMLElement, XMLNamedNodeMap, XMLNode, XMLNodeList, XMLProcessingInstruction, XMLRaw, XMLText, getValue, isEmpty, isFunction, isObject, ref1,\n hasProp = {}.hasOwnProperty;\n\n ref1 = require('./Utility'), isObject = ref1.isObject, isFunction = ref1.isFunction, isEmpty = ref1.isEmpty, getValue = ref1.getValue;\n\n XMLElement = null;\n\n XMLCData = null;\n\n XMLComment = null;\n\n XMLDeclaration = null;\n\n XMLDocType = null;\n\n XMLRaw = null;\n\n XMLText = null;\n\n XMLProcessingInstruction = null;\n\n XMLDummy = null;\n\n NodeType = null;\n\n XMLNodeList = null;\n\n XMLNamedNodeMap = null;\n\n DocumentPosition = null;\n\n module.exports = XMLNode = (function() {\n function XMLNode(parent1) {\n this.parent = parent1;\n if (this.parent) {\n this.options = this.parent.options;\n this.stringify = this.parent.stringify;\n }\n this.value = null;\n this.children = [];\n this.baseURI = null;\n if (!XMLElement) {\n XMLElement = require('./XMLElement');\n XMLCData = require('./XMLCData');\n XMLComment = require('./XMLComment');\n XMLDeclaration = require('./XMLDeclaration');\n XMLDocType = require('./XMLDocType');\n XMLRaw = require('./XMLRaw');\n XMLText = require('./XMLText');\n XMLProcessingInstruction = require('./XMLProcessingInstruction');\n XMLDummy = require('./XMLDummy');\n NodeType = require('./NodeType');\n XMLNodeList = require('./XMLNodeList');\n XMLNamedNodeMap = require('./XMLNamedNodeMap');\n DocumentPosition = require('./DocumentPosition');\n }\n }\n\n Object.defineProperty(XMLNode.prototype, 'nodeName', {\n get: function() {\n return this.name;\n }\n });\n\n Object.defineProperty(XMLNode.prototype, 'nodeType', {\n get: function() {\n return this.type;\n }\n });\n\n Object.defineProperty(XMLNode.prototype, 'nodeValue', {\n get: function() {\n return this.value;\n }\n });\n\n Object.defineProperty(XMLNode.prototype, 'parentNode', {\n get: function() {\n return this.parent;\n }\n });\n\n Object.defineProperty(XMLNode.prototype, 'childNodes', {\n get: function() {\n if (!this.childNodeList || !this.childNodeList.nodes) {\n this.childNodeList = new XMLNodeList(this.children);\n }\n return this.childNodeList;\n }\n });\n\n Object.defineProperty(XMLNode.prototype, 'firstChild', {\n get: function() {\n return this.children[0] || null;\n }\n });\n\n Object.defineProperty(XMLNode.prototype, 'lastChild', {\n get: function() {\n return this.children[this.children.length - 1] || null;\n }\n });\n\n Object.defineProperty(XMLNode.prototype, 'previousSibling', {\n get: function() {\n var i;\n i = this.parent.children.indexOf(this);\n return this.parent.children[i - 1] || null;\n }\n });\n\n Object.defineProperty(XMLNode.prototype, 'nextSibling', {\n get: function() {\n var i;\n i = this.parent.children.indexOf(this);\n return this.parent.children[i + 1] || null;\n }\n });\n\n Object.defineProperty(XMLNode.prototype, 'ownerDocument', {\n get: function() {\n return this.document() || null;\n }\n });\n\n Object.defineProperty(XMLNode.prototype, 'textContent', {\n get: function() {\n var child, j, len, ref2, str;\n if (this.nodeType === NodeType.Element || this.nodeType === NodeType.DocumentFragment) {\n str = '';\n ref2 = this.children;\n for (j = 0, len = ref2.length; j < len; j++) {\n child = ref2[j];\n if (child.textContent) {\n str += child.textContent;\n }\n }\n return str;\n } else {\n return null;\n }\n },\n set: function(value) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n }\n });\n\n XMLNode.prototype.setParent = function(parent) {\n var child, j, len, ref2, results;\n this.parent = parent;\n if (parent) {\n this.options = parent.options;\n this.stringify = parent.stringify;\n }\n ref2 = this.children;\n results = [];\n for (j = 0, len = ref2.length; j < len; j++) {\n child = ref2[j];\n results.push(child.setParent(this));\n }\n return results;\n };\n\n XMLNode.prototype.element = function(name, attributes, text) {\n var childNode, item, j, k, key, lastChild, len, len1, ref2, ref3, val;\n lastChild = null;\n if (attributes === null && (text == null)) {\n ref2 = [{}, null], attributes = ref2[0], text = ref2[1];\n }\n if (attributes == null) {\n attributes = {};\n }\n attributes = getValue(attributes);\n if (!isObject(attributes)) {\n ref3 = [attributes, text], text = ref3[0], attributes = ref3[1];\n }\n if (name != null) {\n name = getValue(name);\n }\n if (Array.isArray(name)) {\n for (j = 0, len = name.length; j < len; j++) {\n item = name[j];\n lastChild = this.element(item);\n }\n } else if (isFunction(name)) {\n lastChild = this.element(name.apply());\n } else if (isObject(name)) {\n for (key in name) {\n if (!hasProp.call(name, key)) continue;\n val = name[key];\n if (isFunction(val)) {\n val = val.apply();\n }\n if (!this.options.ignoreDecorators && this.stringify.convertAttKey && key.indexOf(this.stringify.convertAttKey) === 0) {\n lastChild = this.attribute(key.substr(this.stringify.convertAttKey.length), val);\n } else if (!this.options.separateArrayItems && Array.isArray(val) && isEmpty(val)) {\n lastChild = this.dummy();\n } else if (isObject(val) && isEmpty(val)) {\n lastChild = this.element(key);\n } else if (!this.options.keepNullNodes && (val == null)) {\n lastChild = this.dummy();\n } else if (!this.options.separateArrayItems && Array.isArray(val)) {\n for (k = 0, len1 = val.length; k < len1; k++) {\n item = val[k];\n childNode = {};\n childNode[key] = item;\n lastChild = this.element(childNode);\n }\n } else if (isObject(val)) {\n if (!this.options.ignoreDecorators && this.stringify.convertTextKey && key.indexOf(this.stringify.convertTextKey) === 0) {\n lastChild = this.element(val);\n } else {\n lastChild = this.element(key);\n lastChild.element(val);\n }\n } else {\n lastChild = this.element(key, val);\n }\n }\n } else if (!this.options.keepNullNodes && text === null) {\n lastChild = this.dummy();\n } else {\n if (!this.options.ignoreDecorators && this.stringify.convertTextKey && name.indexOf(this.stringify.convertTextKey) === 0) {\n lastChild = this.text(text);\n } else if (!this.options.ignoreDecorators && this.stringify.convertCDataKey && name.indexOf(this.stringify.convertCDataKey) === 0) {\n lastChild = this.cdata(text);\n } else if (!this.options.ignoreDecorators && this.stringify.convertCommentKey && name.indexOf(this.stringify.convertCommentKey) === 0) {\n lastChild = this.comment(text);\n } else if (!this.options.ignoreDecorators && this.stringify.convertRawKey && name.indexOf(this.stringify.convertRawKey) === 0) {\n lastChild = this.raw(text);\n } else if (!this.options.ignoreDecorators && this.stringify.convertPIKey && name.indexOf(this.stringify.convertPIKey) === 0) {\n lastChild = this.instruction(name.substr(this.stringify.convertPIKey.length), text);\n } else {\n lastChild = this.node(name, attributes, text);\n }\n }\n if (lastChild == null) {\n throw new Error(\"Could not create any elements with: \" + name + \". \" + this.debugInfo());\n }\n return lastChild;\n };\n\n XMLNode.prototype.insertBefore = function(name, attributes, text) {\n var child, i, newChild, refChild, removed;\n if (name != null ? name.type : void 0) {\n newChild = name;\n refChild = attributes;\n newChild.setParent(this);\n if (refChild) {\n i = children.indexOf(refChild);\n removed = children.splice(i);\n children.push(newChild);\n Array.prototype.push.apply(children, removed);\n } else {\n children.push(newChild);\n }\n return newChild;\n } else {\n if (this.isRoot) {\n throw new Error(\"Cannot insert elements at root level. \" + this.debugInfo(name));\n }\n i = this.parent.children.indexOf(this);\n removed = this.parent.children.splice(i);\n child = this.parent.element(name, attributes, text);\n Array.prototype.push.apply(this.parent.children, removed);\n return child;\n }\n };\n\n XMLNode.prototype.insertAfter = function(name, attributes, text) {\n var child, i, removed;\n if (this.isRoot) {\n throw new Error(\"Cannot insert elements at root level. \" + this.debugInfo(name));\n }\n i = this.parent.children.indexOf(this);\n removed = this.parent.children.splice(i + 1);\n child = this.parent.element(name, attributes, text);\n Array.prototype.push.apply(this.parent.children, removed);\n return child;\n };\n\n XMLNode.prototype.remove = function() {\n var i, ref2;\n if (this.isRoot) {\n throw new Error(\"Cannot remove the root element. \" + this.debugInfo());\n }\n i = this.parent.children.indexOf(this);\n [].splice.apply(this.parent.children, [i, i - i + 1].concat(ref2 = [])), ref2;\n return this.parent;\n };\n\n XMLNode.prototype.node = function(name, attributes, text) {\n var child, ref2;\n if (name != null) {\n name = getValue(name);\n }\n attributes || (attributes = {});\n attributes = getValue(attributes);\n if (!isObject(attributes)) {\n ref2 = [attributes, text], text = ref2[0], attributes = ref2[1];\n }\n child = new XMLElement(this, name, attributes);\n if (text != null) {\n child.text(text);\n }\n this.children.push(child);\n return child;\n };\n\n XMLNode.prototype.text = function(value) {\n var child;\n if (isObject(value)) {\n this.element(value);\n }\n child = new XMLText(this, value);\n this.children.push(child);\n return this;\n };\n\n XMLNode.prototype.cdata = function(value) {\n var child;\n child = new XMLCData(this, value);\n this.children.push(child);\n return this;\n };\n\n XMLNode.prototype.comment = function(value) {\n var child;\n child = new XMLComment(this, value);\n this.children.push(child);\n return this;\n };\n\n XMLNode.prototype.commentBefore = function(value) {\n var child, i, removed;\n i = this.parent.children.indexOf(this);\n removed = this.parent.children.splice(i);\n child = this.parent.comment(value);\n Array.prototype.push.apply(this.parent.children, removed);\n return this;\n };\n\n XMLNode.prototype.commentAfter = function(value) {\n var child, i, removed;\n i = this.parent.children.indexOf(this);\n removed = this.parent.children.splice(i + 1);\n child = this.parent.comment(value);\n Array.prototype.push.apply(this.parent.children, removed);\n return this;\n };\n\n XMLNode.prototype.raw = function(value) {\n var child;\n child = new XMLRaw(this, value);\n this.children.push(child);\n return this;\n };\n\n XMLNode.prototype.dummy = function() {\n var child;\n child = new XMLDummy(this);\n return child;\n };\n\n XMLNode.prototype.instruction = function(target, value) {\n var insTarget, insValue, instruction, j, len;\n if (target != null) {\n target = getValue(target);\n }\n if (value != null) {\n value = getValue(value);\n }\n if (Array.isArray(target)) {\n for (j = 0, len = target.length; j < len; j++) {\n insTarget = target[j];\n this.instruction(insTarget);\n }\n } else if (isObject(target)) {\n for (insTarget in target) {\n if (!hasProp.call(target, insTarget)) continue;\n insValue = target[insTarget];\n this.instruction(insTarget, insValue);\n }\n } else {\n if (isFunction(value)) {\n value = value.apply();\n }\n instruction = new XMLProcessingInstruction(this, target, value);\n this.children.push(instruction);\n }\n return this;\n };\n\n XMLNode.prototype.instructionBefore = function(target, value) {\n var child, i, removed;\n i = this.parent.children.indexOf(this);\n removed = this.parent.children.splice(i);\n child = this.parent.instruction(target, value);\n Array.prototype.push.apply(this.parent.children, removed);\n return this;\n };\n\n XMLNode.prototype.instructionAfter = function(target, value) {\n var child, i, removed;\n i = this.parent.children.indexOf(this);\n removed = this.parent.children.splice(i + 1);\n child = this.parent.instruction(target, value);\n Array.prototype.push.apply(this.parent.children, removed);\n return this;\n };\n\n XMLNode.prototype.declaration = function(version, encoding, standalone) {\n var doc, xmldec;\n doc = this.document();\n xmldec = new XMLDeclaration(doc, version, encoding, standalone);\n if (doc.children.length === 0) {\n doc.children.unshift(xmldec);\n } else if (doc.children[0].type === NodeType.Declaration) {\n doc.children[0] = xmldec;\n } else {\n doc.children.unshift(xmldec);\n }\n return doc.root() || doc;\n };\n\n XMLNode.prototype.dtd = function(pubID, sysID) {\n var child, doc, doctype, i, j, k, len, len1, ref2, ref3;\n doc = this.document();\n doctype = new XMLDocType(doc, pubID, sysID);\n ref2 = doc.children;\n for (i = j = 0, len = ref2.length; j < len; i = ++j) {\n child = ref2[i];\n if (child.type === NodeType.DocType) {\n doc.children[i] = doctype;\n return doctype;\n }\n }\n ref3 = doc.children;\n for (i = k = 0, len1 = ref3.length; k < len1; i = ++k) {\n child = ref3[i];\n if (child.isRoot) {\n doc.children.splice(i, 0, doctype);\n return doctype;\n }\n }\n doc.children.push(doctype);\n return doctype;\n };\n\n XMLNode.prototype.up = function() {\n if (this.isRoot) {\n throw new Error(\"The root node has no parent. Use doc() if you need to get the document object.\");\n }\n return this.parent;\n };\n\n XMLNode.prototype.root = function() {\n var node;\n node = this;\n while (node) {\n if (node.type === NodeType.Document) {\n return node.rootObject;\n } else if (node.isRoot) {\n return node;\n } else {\n node = node.parent;\n }\n }\n };\n\n XMLNode.prototype.document = function() {\n var node;\n node = this;\n while (node) {\n if (node.type === NodeType.Document) {\n return node;\n } else {\n node = node.parent;\n }\n }\n };\n\n XMLNode.prototype.end = function(options) {\n return this.document().end(options);\n };\n\n XMLNode.prototype.prev = function() {\n var i;\n i = this.parent.children.indexOf(this);\n if (i < 1) {\n throw new Error(\"Already at the first node. \" + this.debugInfo());\n }\n return this.parent.children[i - 1];\n };\n\n XMLNode.prototype.next = function() {\n var i;\n i = this.parent.children.indexOf(this);\n if (i === -1 || i === this.parent.children.length - 1) {\n throw new Error(\"Already at the last node. \" + this.debugInfo());\n }\n return this.parent.children[i + 1];\n };\n\n XMLNode.prototype.importDocument = function(doc) {\n var clonedRoot;\n clonedRoot = doc.root().clone();\n clonedRoot.parent = this;\n clonedRoot.isRoot = false;\n this.children.push(clonedRoot);\n return this;\n };\n\n XMLNode.prototype.debugInfo = function(name) {\n var ref2, ref3;\n name = name || this.name;\n if ((name == null) && !((ref2 = this.parent) != null ? ref2.name : void 0)) {\n return \"\";\n } else if (name == null) {\n return \"parent: <\" + this.parent.name + \">\";\n } else if (!((ref3 = this.parent) != null ? ref3.name : void 0)) {\n return \"node: <\" + name + \">\";\n } else {\n return \"node: <\" + name + \">, parent: <\" + this.parent.name + \">\";\n }\n };\n\n XMLNode.prototype.ele = function(name, attributes, text) {\n return this.element(name, attributes, text);\n };\n\n XMLNode.prototype.nod = function(name, attributes, text) {\n return this.node(name, attributes, text);\n };\n\n XMLNode.prototype.txt = function(value) {\n return this.text(value);\n };\n\n XMLNode.prototype.dat = function(value) {\n return this.cdata(value);\n };\n\n XMLNode.prototype.com = function(value) {\n return this.comment(value);\n };\n\n XMLNode.prototype.ins = function(target, value) {\n return this.instruction(target, value);\n };\n\n XMLNode.prototype.doc = function() {\n return this.document();\n };\n\n XMLNode.prototype.dec = function(version, encoding, standalone) {\n return this.declaration(version, encoding, standalone);\n };\n\n XMLNode.prototype.e = function(name, attributes, text) {\n return this.element(name, attributes, text);\n };\n\n XMLNode.prototype.n = function(name, attributes, text) {\n return this.node(name, attributes, text);\n };\n\n XMLNode.prototype.t = function(value) {\n return this.text(value);\n };\n\n XMLNode.prototype.d = function(value) {\n return this.cdata(value);\n };\n\n XMLNode.prototype.c = function(value) {\n return this.comment(value);\n };\n\n XMLNode.prototype.r = function(value) {\n return this.raw(value);\n };\n\n XMLNode.prototype.i = function(target, value) {\n return this.instruction(target, value);\n };\n\n XMLNode.prototype.u = function() {\n return this.up();\n };\n\n XMLNode.prototype.importXMLBuilder = function(doc) {\n return this.importDocument(doc);\n };\n\n XMLNode.prototype.replaceChild = function(newChild, oldChild) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.removeChild = function(oldChild) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.appendChild = function(newChild) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.hasChildNodes = function() {\n return this.children.length !== 0;\n };\n\n XMLNode.prototype.cloneNode = function(deep) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.normalize = function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.isSupported = function(feature, version) {\n return true;\n };\n\n XMLNode.prototype.hasAttributes = function() {\n return this.attribs.length !== 0;\n };\n\n XMLNode.prototype.compareDocumentPosition = function(other) {\n var ref, res;\n ref = this;\n if (ref === other) {\n return 0;\n } else if (this.document() !== other.document()) {\n res = DocumentPosition.Disconnected | DocumentPosition.ImplementationSpecific;\n if (Math.random() < 0.5) {\n res |= DocumentPosition.Preceding;\n } else {\n res |= DocumentPosition.Following;\n }\n return res;\n } else if (ref.isAncestor(other)) {\n return DocumentPosition.Contains | DocumentPosition.Preceding;\n } else if (ref.isDescendant(other)) {\n return DocumentPosition.Contains | DocumentPosition.Following;\n } else if (ref.isPreceding(other)) {\n return DocumentPosition.Preceding;\n } else {\n return DocumentPosition.Following;\n }\n };\n\n XMLNode.prototype.isSameNode = function(other) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.lookupPrefix = function(namespaceURI) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.isDefaultNamespace = function(namespaceURI) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.lookupNamespaceURI = function(prefix) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.isEqualNode = function(node) {\n var i, j, ref2;\n if (node.nodeType !== this.nodeType) {\n return false;\n }\n if (node.children.length !== this.children.length) {\n return false;\n }\n for (i = j = 0, ref2 = this.children.length - 1; 0 <= ref2 ? j <= ref2 : j >= ref2; i = 0 <= ref2 ? ++j : --j) {\n if (!this.children[i].isEqualNode(node.children[i])) {\n return false;\n }\n }\n return true;\n };\n\n XMLNode.prototype.getFeature = function(feature, version) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.setUserData = function(key, data, handler) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.getUserData = function(key) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.contains = function(other) {\n if (!other) {\n return false;\n }\n return other === this || this.isDescendant(other);\n };\n\n XMLNode.prototype.isDescendant = function(node) {\n var child, isDescendantChild, j, len, ref2;\n ref2 = this.children;\n for (j = 0, len = ref2.length; j < len; j++) {\n child = ref2[j];\n if (node === child) {\n return true;\n }\n isDescendantChild = child.isDescendant(node);\n if (isDescendantChild) {\n return true;\n }\n }\n return false;\n };\n\n XMLNode.prototype.isAncestor = function(node) {\n return node.isDescendant(this);\n };\n\n XMLNode.prototype.isPreceding = function(node) {\n var nodePos, thisPos;\n nodePos = this.treePosition(node);\n thisPos = this.treePosition(this);\n if (nodePos === -1 || thisPos === -1) {\n return false;\n } else {\n return nodePos < thisPos;\n }\n };\n\n XMLNode.prototype.isFollowing = function(node) {\n var nodePos, thisPos;\n nodePos = this.treePosition(node);\n thisPos = this.treePosition(this);\n if (nodePos === -1 || thisPos === -1) {\n return false;\n } else {\n return nodePos > thisPos;\n }\n };\n\n XMLNode.prototype.treePosition = function(node) {\n var found, pos;\n pos = 0;\n found = false;\n this.foreachTreeNode(this.document(), function(childNode) {\n pos++;\n if (!found && childNode === node) {\n return found = true;\n }\n });\n if (found) {\n return pos;\n } else {\n return -1;\n }\n };\n\n XMLNode.prototype.foreachTreeNode = function(node, func) {\n var child, j, len, ref2, res;\n node || (node = this.document());\n ref2 = node.children;\n for (j = 0, len = ref2.length; j < len; j++) {\n child = ref2[j];\n if (res = func(child)) {\n return res;\n } else {\n res = this.foreachTreeNode(child, func);\n if (res) {\n return res;\n }\n }\n }\n };\n\n return XMLNode;\n\n })();\n\n}).call(this);\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLCharacterData, XMLText,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n NodeType = require('./NodeType');\n\n XMLCharacterData = require('./XMLCharacterData');\n\n module.exports = XMLText = (function(superClass) {\n extend(XMLText, superClass);\n\n function XMLText(parent, text) {\n XMLText.__super__.constructor.call(this, parent);\n if (text == null) {\n throw new Error(\"Missing element text. \" + this.debugInfo());\n }\n this.name = \"#text\";\n this.type = NodeType.Text;\n this.value = this.stringify.text(text);\n }\n\n Object.defineProperty(XMLText.prototype, 'isElementContentWhitespace', {\n get: function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n }\n });\n\n Object.defineProperty(XMLText.prototype, 'wholeText', {\n get: function() {\n var next, prev, str;\n str = '';\n prev = this.previousSibling;\n while (prev) {\n str = prev.data + str;\n prev = prev.previousSibling;\n }\n str += this.data;\n next = this.nextSibling;\n while (next) {\n str = str + next.data;\n next = next.nextSibling;\n }\n return str;\n }\n });\n\n XMLText.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLText.prototype.toString = function(options) {\n return this.options.writer.text(this, this.options.writer.filterOptions(options));\n };\n\n XMLText.prototype.splitText = function(offset) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLText.prototype.replaceWholeText = function(content) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n return XMLText;\n\n })(XMLCharacterData);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLDOMErrorHandler;\n\n module.exports = XMLDOMErrorHandler = (function() {\n function XMLDOMErrorHandler() {}\n\n XMLDOMErrorHandler.prototype.handleError = function(error) {\n throw new Error(error);\n };\n\n return XMLDOMErrorHandler;\n\n })();\n\n}).call(this);\n","const xml2js = require('xml2js')\r\nconst parseString = require('xml2js').parseString\r\n\r\nexport default {\r\n methods: {\r\n // methods used to parse xml2json\r\n getSitemapJson (_this) {\r\n this.axios.get('/sitemap.xml').then(res => {\r\n return res.data\r\n }).then(xmlSitemap => parseString(xmlSitemap, function (err, result) {\r\n if (!err) {\r\n _this.sitemapContent = result\r\n _this.sitemapContentExists = !_this.sitemapContentExists\r\n } else {\r\n console.log(err)\r\n }\r\n }))\r\n },\r\n parseJsonToXml (sitemapXml) {\r\n let builder = new xml2js.Builder()\r\n return builder.buildObject(sitemapXml)\r\n },\r\n // eslint-disable-next-line camelcase\r\n addFieldSitemap (oldSitemap, data) {\r\n oldSitemap.urlset.url.push({\r\n 'lastmod': [data.created_at.split(' ')[0]],\r\n 'loc': [`${window.location.origin}/${data.type === 'news' ? 'new' : 'pags'}/${data.slug}`],\r\n 'priority': ['0.5']\r\n })\r\n return oldSitemap\r\n },\r\n submitSitemapChanges (sitemapContent) {\r\n this.axios.post('/upload', sitemapContent, {\r\n headers: {\r\n 'Access-Control-Allow-Origin': '*',\r\n 'Accept': 'text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, */*;q=0.8',\r\n 'Access-Control-Allow-Methods': 'POST',\r\n 'Access-Control-Allow-Headers': 'X-PINGOTHER, Content-Type',\r\n 'Access-Control-Max-Age': '86400'\r\n }\r\n }).then(res => {\r\n if (res.data !== undefined) {\r\n this.SET_TOAST({ msg: 'Site map updated successfully' })\r\n } else {\r\n this.SET_AVISO('Site map data not updated')\r\n }\r\n }).catch(err => {\r\n console.log('Error: ', err)\r\n this.SET_AVISO(err.response.data.error)\r\n })\r\n },\r\n // when we delete a page=> delete the sitemap field\r\n removeFieldSitemap (slug) {\r\n const _slug = slug\r\n this.axios.get('/sitemap.xml').then(res => {\r\n return res.data\r\n }).then(xmlMapRem => {\r\n let finalJson = {}\r\n parseString(xmlMapRem, function (err, result) {\r\n if (!err) {\r\n let index = null\r\n result.urlset.url.map((x, i) => {\r\n if (x.loc[0].includes(_slug)) {\r\n index = i\r\n }\r\n })\r\n if (index !== null) {\r\n result.urlset.url.splice(index, 1)\r\n finalJson = result\r\n }\r\n } else {\r\n console.log(err)\r\n }\r\n })\r\n return finalJson\r\n }).then(sitemapDel => {\r\n let builder = new xml2js.Builder()\r\n return builder.buildObject(sitemapDel)\r\n }).then(sitemapXml => {\r\n this.axios.post('/upload', sitemapXml, {\r\n headers: {\r\n 'Access-Control-Allow-Origin': '*',\r\n 'Accept': 'text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, */*;q=0.8',\r\n 'Access-Control-Allow-Methods': 'POST',\r\n 'Access-Control-Allow-Headers': 'X-PINGOTHER, Content-Type',\r\n 'Access-Control-Max-Age': '86400'\r\n }\r\n }).then(r => r)\r\n }).catch(error => console.log(error))\r\n }\r\n // end of methods used to parse xml2json\r\n }\r\n}\r\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, WriterState, XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDummy, XMLElement, XMLProcessingInstruction, XMLRaw, XMLText, XMLWriterBase, assign,\n hasProp = {}.hasOwnProperty;\n\n assign = require('./Utility').assign;\n\n NodeType = require('./NodeType');\n\n XMLDeclaration = require('./XMLDeclaration');\n\n XMLDocType = require('./XMLDocType');\n\n XMLCData = require('./XMLCData');\n\n XMLComment = require('./XMLComment');\n\n XMLElement = require('./XMLElement');\n\n XMLRaw = require('./XMLRaw');\n\n XMLText = require('./XMLText');\n\n XMLProcessingInstruction = require('./XMLProcessingInstruction');\n\n XMLDummy = require('./XMLDummy');\n\n XMLDTDAttList = require('./XMLDTDAttList');\n\n XMLDTDElement = require('./XMLDTDElement');\n\n XMLDTDEntity = require('./XMLDTDEntity');\n\n XMLDTDNotation = require('./XMLDTDNotation');\n\n WriterState = require('./WriterState');\n\n module.exports = XMLWriterBase = (function() {\n function XMLWriterBase(options) {\n var key, ref, value;\n options || (options = {});\n this.options = options;\n ref = options.writer || {};\n for (key in ref) {\n if (!hasProp.call(ref, key)) continue;\n value = ref[key];\n this[\"_\" + key] = this[key];\n this[key] = value;\n }\n }\n\n XMLWriterBase.prototype.filterOptions = function(options) {\n var filteredOptions, ref, ref1, ref2, ref3, ref4, ref5, ref6;\n options || (options = {});\n options = assign({}, this.options, options);\n filteredOptions = {\n writer: this\n };\n filteredOptions.pretty = options.pretty || false;\n filteredOptions.allowEmpty = options.allowEmpty || false;\n filteredOptions.indent = (ref = options.indent) != null ? ref : ' ';\n filteredOptions.newline = (ref1 = options.newline) != null ? ref1 : '\\n';\n filteredOptions.offset = (ref2 = options.offset) != null ? ref2 : 0;\n filteredOptions.dontPrettyTextNodes = (ref3 = (ref4 = options.dontPrettyTextNodes) != null ? ref4 : options.dontprettytextnodes) != null ? ref3 : 0;\n filteredOptions.spaceBeforeSlash = (ref5 = (ref6 = options.spaceBeforeSlash) != null ? ref6 : options.spacebeforeslash) != null ? ref5 : '';\n if (filteredOptions.spaceBeforeSlash === true) {\n filteredOptions.spaceBeforeSlash = ' ';\n }\n filteredOptions.suppressPrettyCount = 0;\n filteredOptions.user = {};\n filteredOptions.state = WriterState.None;\n return filteredOptions;\n };\n\n XMLWriterBase.prototype.indent = function(node, options, level) {\n var indentLevel;\n if (!options.pretty || options.suppressPrettyCount) {\n return '';\n } else if (options.pretty) {\n indentLevel = (level || 0) + options.offset + 1;\n if (indentLevel > 0) {\n return new Array(indentLevel).join(options.indent);\n }\n }\n return '';\n };\n\n XMLWriterBase.prototype.endline = function(node, options, level) {\n if (!options.pretty || options.suppressPrettyCount) {\n return '';\n } else {\n return options.newline;\n }\n };\n\n XMLWriterBase.prototype.attribute = function(att, options, level) {\n var r;\n this.openAttribute(att, options, level);\n r = ' ' + att.name + '=\"' + att.value + '\"';\n this.closeAttribute(att, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.cdata = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '<![CDATA[';\n options.state = WriterState.InsideTag;\n r += node.value;\n options.state = WriterState.CloseTag;\n r += ']]>' + this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.comment = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '<!-- ';\n options.state = WriterState.InsideTag;\n r += node.value;\n options.state = WriterState.CloseTag;\n r += ' -->' + this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.declaration = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '<?xml';\n options.state = WriterState.InsideTag;\n r += ' version=\"' + node.version + '\"';\n if (node.encoding != null) {\n r += ' encoding=\"' + node.encoding + '\"';\n }\n if (node.standalone != null) {\n r += ' standalone=\"' + node.standalone + '\"';\n }\n options.state = WriterState.CloseTag;\n r += options.spaceBeforeSlash + '?>';\n r += this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.docType = function(node, options, level) {\n var child, i, len, r, ref;\n level || (level = 0);\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level);\n r += '<!DOCTYPE ' + node.root().name;\n if (node.pubID && node.sysID) {\n r += ' PUBLIC \"' + node.pubID + '\" \"' + node.sysID + '\"';\n } else if (node.sysID) {\n r += ' SYSTEM \"' + node.sysID + '\"';\n }\n if (node.children.length > 0) {\n r += ' [';\n r += this.endline(node, options, level);\n options.state = WriterState.InsideTag;\n ref = node.children;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n r += this.writeChildNode(child, options, level + 1);\n }\n options.state = WriterState.CloseTag;\n r += ']';\n }\n options.state = WriterState.CloseTag;\n r += options.spaceBeforeSlash + '>';\n r += this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.element = function(node, options, level) {\n var att, child, childNodeCount, firstChildNode, i, j, len, len1, name, prettySuppressed, r, ref, ref1, ref2;\n level || (level = 0);\n prettySuppressed = false;\n r = '';\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r += this.indent(node, options, level) + '<' + node.name;\n ref = node.attribs;\n for (name in ref) {\n if (!hasProp.call(ref, name)) continue;\n att = ref[name];\n r += this.attribute(att, options, level);\n }\n childNodeCount = node.children.length;\n firstChildNode = childNodeCount === 0 ? null : node.children[0];\n if (childNodeCount === 0 || node.children.every(function(e) {\n return (e.type === NodeType.Text || e.type === NodeType.Raw) && e.value === '';\n })) {\n if (options.allowEmpty) {\n r += '>';\n options.state = WriterState.CloseTag;\n r += '</' + node.name + '>' + this.endline(node, options, level);\n } else {\n options.state = WriterState.CloseTag;\n r += options.spaceBeforeSlash + '/>' + this.endline(node, options, level);\n }\n } else if (options.pretty && childNodeCount === 1 && (firstChildNode.type === NodeType.Text || firstChildNode.type === NodeType.Raw) && (firstChildNode.value != null)) {\n r += '>';\n options.state = WriterState.InsideTag;\n options.suppressPrettyCount++;\n prettySuppressed = true;\n r += this.writeChildNode(firstChildNode, options, level + 1);\n options.suppressPrettyCount--;\n prettySuppressed = false;\n options.state = WriterState.CloseTag;\n r += '</' + node.name + '>' + this.endline(node, options, level);\n } else {\n if (options.dontPrettyTextNodes) {\n ref1 = node.children;\n for (i = 0, len = ref1.length; i < len; i++) {\n child = ref1[i];\n if ((child.type === NodeType.Text || child.type === NodeType.Raw) && (child.value != null)) {\n options.suppressPrettyCount++;\n prettySuppressed = true;\n break;\n }\n }\n }\n r += '>' + this.endline(node, options, level);\n options.state = WriterState.InsideTag;\n ref2 = node.children;\n for (j = 0, len1 = ref2.length; j < len1; j++) {\n child = ref2[j];\n r += this.writeChildNode(child, options, level + 1);\n }\n options.state = WriterState.CloseTag;\n r += this.indent(node, options, level) + '</' + node.name + '>';\n if (prettySuppressed) {\n options.suppressPrettyCount--;\n }\n r += this.endline(node, options, level);\n options.state = WriterState.None;\n }\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.writeChildNode = function(node, options, level) {\n switch (node.type) {\n case NodeType.CData:\n return this.cdata(node, options, level);\n case NodeType.Comment:\n return this.comment(node, options, level);\n case NodeType.Element:\n return this.element(node, options, level);\n case NodeType.Raw:\n return this.raw(node, options, level);\n case NodeType.Text:\n return this.text(node, options, level);\n case NodeType.ProcessingInstruction:\n return this.processingInstruction(node, options, level);\n case NodeType.Dummy:\n return '';\n case NodeType.Declaration:\n return this.declaration(node, options, level);\n case NodeType.DocType:\n return this.docType(node, options, level);\n case NodeType.AttributeDeclaration:\n return this.dtdAttList(node, options, level);\n case NodeType.ElementDeclaration:\n return this.dtdElement(node, options, level);\n case NodeType.EntityDeclaration:\n return this.dtdEntity(node, options, level);\n case NodeType.NotationDeclaration:\n return this.dtdNotation(node, options, level);\n default:\n throw new Error(\"Unknown XML node type: \" + node.constructor.name);\n }\n };\n\n XMLWriterBase.prototype.processingInstruction = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '<?';\n options.state = WriterState.InsideTag;\n r += node.target;\n if (node.value) {\n r += ' ' + node.value;\n }\n options.state = WriterState.CloseTag;\n r += options.spaceBeforeSlash + '?>';\n r += this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.raw = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level);\n options.state = WriterState.InsideTag;\n r += node.value;\n options.state = WriterState.CloseTag;\n r += this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.text = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level);\n options.state = WriterState.InsideTag;\n r += node.value;\n options.state = WriterState.CloseTag;\n r += this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.dtdAttList = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '<!ATTLIST';\n options.state = WriterState.InsideTag;\n r += ' ' + node.elementName + ' ' + node.attributeName + ' ' + node.attributeType;\n if (node.defaultValueType !== '#DEFAULT') {\n r += ' ' + node.defaultValueType;\n }\n if (node.defaultValue) {\n r += ' \"' + node.defaultValue + '\"';\n }\n options.state = WriterState.CloseTag;\n r += options.spaceBeforeSlash + '>' + this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.dtdElement = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '<!ELEMENT';\n options.state = WriterState.InsideTag;\n r += ' ' + node.name + ' ' + node.value;\n options.state = WriterState.CloseTag;\n r += options.spaceBeforeSlash + '>' + this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.dtdEntity = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '<!ENTITY';\n options.state = WriterState.InsideTag;\n if (node.pe) {\n r += ' %';\n }\n r += ' ' + node.name;\n if (node.value) {\n r += ' \"' + node.value + '\"';\n } else {\n if (node.pubID && node.sysID) {\n r += ' PUBLIC \"' + node.pubID + '\" \"' + node.sysID + '\"';\n } else if (node.sysID) {\n r += ' SYSTEM \"' + node.sysID + '\"';\n }\n if (node.nData) {\n r += ' NDATA ' + node.nData;\n }\n }\n options.state = WriterState.CloseTag;\n r += options.spaceBeforeSlash + '>' + this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.dtdNotation = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '<!NOTATION';\n options.state = WriterState.InsideTag;\n r += ' ' + node.name;\n if (node.pubID && node.sysID) {\n r += ' PUBLIC \"' + node.pubID + '\" \"' + node.sysID + '\"';\n } else if (node.pubID) {\n r += ' PUBLIC \"' + node.pubID + '\"';\n } else if (node.sysID) {\n r += ' SYSTEM \"' + node.sysID + '\"';\n }\n options.state = WriterState.CloseTag;\n r += options.spaceBeforeSlash + '>' + this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.openNode = function(node, options, level) {};\n\n XMLWriterBase.prototype.closeNode = function(node, options, level) {};\n\n XMLWriterBase.prototype.openAttribute = function(att, options, level) {};\n\n XMLWriterBase.prototype.closeAttribute = function(att, options, level) {};\n\n return XMLWriterBase;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n exports.defaults = {\n \"0.1\": {\n explicitCharkey: false,\n trim: true,\n normalize: true,\n normalizeTags: false,\n attrkey: \"@\",\n charkey: \"#\",\n explicitArray: false,\n ignoreAttrs: false,\n mergeAttrs: false,\n explicitRoot: false,\n validator: null,\n xmlns: false,\n explicitChildren: false,\n childkey: '@@',\n charsAsChildren: false,\n includeWhiteChars: false,\n async: false,\n strict: true,\n attrNameProcessors: null,\n attrValueProcessors: null,\n tagNameProcessors: null,\n valueProcessors: null,\n emptyTag: ''\n },\n \"0.2\": {\n explicitCharkey: false,\n trim: false,\n normalize: false,\n normalizeTags: false,\n attrkey: \"$\",\n charkey: \"_\",\n explicitArray: true,\n ignoreAttrs: false,\n mergeAttrs: false,\n explicitRoot: true,\n validator: null,\n xmlns: false,\n explicitChildren: false,\n preserveChildrenOrder: false,\n childkey: '$$',\n charsAsChildren: false,\n includeWhiteChars: false,\n async: false,\n strict: true,\n attrNameProcessors: null,\n attrValueProcessors: null,\n tagNameProcessors: null,\n valueProcessors: null,\n rootName: 'root',\n xmldec: {\n 'version': '1.0',\n 'encoding': 'UTF-8',\n 'standalone': true\n },\n doctype: null,\n renderOpts: {\n 'pretty': true,\n 'indent': ' ',\n 'newline': '\\n'\n },\n headless: false,\n chunkSize: 10000,\n emptyTag: '',\n cdata: false\n }\n };\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n \"use strict\";\n var bom, defaults, events, isEmpty, processItem, processors, sax, setImmediate,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n sax = require('sax');\n\n events = require('events');\n\n bom = require('./bom');\n\n processors = require('./processors');\n\n setImmediate = require('timers').setImmediate;\n\n defaults = require('./defaults').defaults;\n\n isEmpty = function(thing) {\n return typeof thing === \"object\" && (thing != null) && Object.keys(thing).length === 0;\n };\n\n processItem = function(processors, item, key) {\n var i, len, process;\n for (i = 0, len = processors.length; i < len; i++) {\n process = processors[i];\n item = process(item, key);\n }\n return item;\n };\n\n exports.Parser = (function(superClass) {\n extend(Parser, superClass);\n\n function Parser(opts) {\n this.parseStringPromise = bind(this.parseStringPromise, this);\n this.parseString = bind(this.parseString, this);\n this.reset = bind(this.reset, this);\n this.assignOrPush = bind(this.assignOrPush, this);\n this.processAsync = bind(this.processAsync, this);\n var key, ref, value;\n if (!(this instanceof exports.Parser)) {\n return new exports.Parser(opts);\n }\n this.options = {};\n ref = defaults[\"0.2\"];\n for (key in ref) {\n if (!hasProp.call(ref, key)) continue;\n value = ref[key];\n this.options[key] = value;\n }\n for (key in opts) {\n if (!hasProp.call(opts, key)) continue;\n value = opts[key];\n this.options[key] = value;\n }\n if (this.options.xmlns) {\n this.options.xmlnskey = this.options.attrkey + \"ns\";\n }\n if (this.options.normalizeTags) {\n if (!this.options.tagNameProcessors) {\n this.options.tagNameProcessors = [];\n }\n this.options.tagNameProcessors.unshift(processors.normalize);\n }\n this.reset();\n }\n\n Parser.prototype.processAsync = function() {\n var chunk, err;\n try {\n if (this.remaining.length <= this.options.chunkSize) {\n chunk = this.remaining;\n this.remaining = '';\n this.saxParser = this.saxParser.write(chunk);\n return this.saxParser.close();\n } else {\n chunk = this.remaining.substr(0, this.options.chunkSize);\n this.remaining = this.remaining.substr(this.options.chunkSize, this.remaining.length);\n this.saxParser = this.saxParser.write(chunk);\n return setImmediate(this.processAsync);\n }\n } catch (error1) {\n err = error1;\n if (!this.saxParser.errThrown) {\n this.saxParser.errThrown = true;\n return this.emit(err);\n }\n }\n };\n\n Parser.prototype.assignOrPush = function(obj, key, newValue) {\n if (!(key in obj)) {\n if (!this.options.explicitArray) {\n return obj[key] = newValue;\n } else {\n return obj[key] = [newValue];\n }\n } else {\n if (!(obj[key] instanceof Array)) {\n obj[key] = [obj[key]];\n }\n return obj[key].push(newValue);\n }\n };\n\n Parser.prototype.reset = function() {\n var attrkey, charkey, ontext, stack;\n this.removeAllListeners();\n this.saxParser = sax.parser(this.options.strict, {\n trim: false,\n normalize: false,\n xmlns: this.options.xmlns\n });\n this.saxParser.errThrown = false;\n this.saxParser.onerror = (function(_this) {\n return function(error) {\n _this.saxParser.resume();\n if (!_this.saxParser.errThrown) {\n _this.saxParser.errThrown = true;\n return _this.emit(\"error\", error);\n }\n };\n })(this);\n this.saxParser.onend = (function(_this) {\n return function() {\n if (!_this.saxParser.ended) {\n _this.saxParser.ended = true;\n return _this.emit(\"end\", _this.resultObject);\n }\n };\n })(this);\n this.saxParser.ended = false;\n this.EXPLICIT_CHARKEY = this.options.explicitCharkey;\n this.resultObject = null;\n stack = [];\n attrkey = this.options.attrkey;\n charkey = this.options.charkey;\n this.saxParser.onopentag = (function(_this) {\n return function(node) {\n var key, newValue, obj, processedKey, ref;\n obj = {};\n obj[charkey] = \"\";\n if (!_this.options.ignoreAttrs) {\n ref = node.attributes;\n for (key in ref) {\n if (!hasProp.call(ref, key)) continue;\n if (!(attrkey in obj) && !_this.options.mergeAttrs) {\n obj[attrkey] = {};\n }\n newValue = _this.options.attrValueProcessors ? processItem(_this.options.attrValueProcessors, node.attributes[key], key) : node.attributes[key];\n processedKey = _this.options.attrNameProcessors ? processItem(_this.options.attrNameProcessors, key) : key;\n if (_this.options.mergeAttrs) {\n _this.assignOrPush(obj, processedKey, newValue);\n } else {\n obj[attrkey][processedKey] = newValue;\n }\n }\n }\n obj[\"#name\"] = _this.options.tagNameProcessors ? processItem(_this.options.tagNameProcessors, node.name) : node.name;\n if (_this.options.xmlns) {\n obj[_this.options.xmlnskey] = {\n uri: node.uri,\n local: node.local\n };\n }\n return stack.push(obj);\n };\n })(this);\n this.saxParser.onclosetag = (function(_this) {\n return function() {\n var cdata, emptyStr, key, node, nodeName, obj, objClone, old, s, xpath;\n obj = stack.pop();\n nodeName = obj[\"#name\"];\n if (!_this.options.explicitChildren || !_this.options.preserveChildrenOrder) {\n delete obj[\"#name\"];\n }\n if (obj.cdata === true) {\n cdata = obj.cdata;\n delete obj.cdata;\n }\n s = stack[stack.length - 1];\n if (obj[charkey].match(/^\\s*$/) && !cdata) {\n emptyStr = obj[charkey];\n delete obj[charkey];\n } else {\n if (_this.options.trim) {\n obj[charkey] = obj[charkey].trim();\n }\n if (_this.options.normalize) {\n obj[charkey] = obj[charkey].replace(/\\s{2,}/g, \" \").trim();\n }\n obj[charkey] = _this.options.valueProcessors ? processItem(_this.options.valueProcessors, obj[charkey], nodeName) : obj[charkey];\n if (Object.keys(obj).length === 1 && charkey in obj && !_this.EXPLICIT_CHARKEY) {\n obj = obj[charkey];\n }\n }\n if (isEmpty(obj)) {\n obj = _this.options.emptyTag !== '' ? _this.options.emptyTag : emptyStr;\n }\n if (_this.options.validator != null) {\n xpath = \"/\" + ((function() {\n var i, len, results;\n results = [];\n for (i = 0, len = stack.length; i < len; i++) {\n node = stack[i];\n results.push(node[\"#name\"]);\n }\n return results;\n })()).concat(nodeName).join(\"/\");\n (function() {\n var err;\n try {\n return obj = _this.options.validator(xpath, s && s[nodeName], obj);\n } catch (error1) {\n err = error1;\n return _this.emit(\"error\", err);\n }\n })();\n }\n if (_this.options.explicitChildren && !_this.options.mergeAttrs && typeof obj === 'object') {\n if (!_this.options.preserveChildrenOrder) {\n node = {};\n if (_this.options.attrkey in obj) {\n node[_this.options.attrkey] = obj[_this.options.attrkey];\n delete obj[_this.options.attrkey];\n }\n if (!_this.options.charsAsChildren && _this.options.charkey in obj) {\n node[_this.options.charkey] = obj[_this.options.charkey];\n delete obj[_this.options.charkey];\n }\n if (Object.getOwnPropertyNames(obj).length > 0) {\n node[_this.options.childkey] = obj;\n }\n obj = node;\n } else if (s) {\n s[_this.options.childkey] = s[_this.options.childkey] || [];\n objClone = {};\n for (key in obj) {\n if (!hasProp.call(obj, key)) continue;\n objClone[key] = obj[key];\n }\n s[_this.options.childkey].push(objClone);\n delete obj[\"#name\"];\n if (Object.keys(obj).length === 1 && charkey in obj && !_this.EXPLICIT_CHARKEY) {\n obj = obj[charkey];\n }\n }\n }\n if (stack.length > 0) {\n return _this.assignOrPush(s, nodeName, obj);\n } else {\n if (_this.options.explicitRoot) {\n old = obj;\n obj = {};\n obj[nodeName] = old;\n }\n _this.resultObject = obj;\n _this.saxParser.ended = true;\n return _this.emit(\"end\", _this.resultObject);\n }\n };\n })(this);\n ontext = (function(_this) {\n return function(text) {\n var charChild, s;\n s = stack[stack.length - 1];\n if (s) {\n s[charkey] += text;\n if (_this.options.explicitChildren && _this.options.preserveChildrenOrder && _this.options.charsAsChildren && (_this.options.includeWhiteChars || text.replace(/\\\\n/g, '').trim() !== '')) {\n s[_this.options.childkey] = s[_this.options.childkey] || [];\n charChild = {\n '#name': '__text__'\n };\n charChild[charkey] = text;\n if (_this.options.normalize) {\n charChild[charkey] = charChild[charkey].replace(/\\s{2,}/g, \" \").trim();\n }\n s[_this.options.childkey].push(charChild);\n }\n return s;\n }\n };\n })(this);\n this.saxParser.ontext = ontext;\n return this.saxParser.oncdata = (function(_this) {\n return function(text) {\n var s;\n s = ontext(text);\n if (s) {\n return s.cdata = true;\n }\n };\n })(this);\n };\n\n Parser.prototype.parseString = function(str, cb) {\n var err;\n if ((cb != null) && typeof cb === \"function\") {\n this.on(\"end\", function(result) {\n this.reset();\n return cb(null, result);\n });\n this.on(\"error\", function(err) {\n this.reset();\n return cb(err);\n });\n }\n try {\n str = str.toString();\n if (str.trim() === '') {\n this.emit(\"end\", null);\n return true;\n }\n str = bom.stripBOM(str);\n if (this.options.async) {\n this.remaining = str;\n setImmediate(this.processAsync);\n return this.saxParser;\n }\n return this.saxParser.write(str).close();\n } catch (error1) {\n err = error1;\n if (!(this.saxParser.errThrown || this.saxParser.ended)) {\n this.emit('error', err);\n return this.saxParser.errThrown = true;\n } else if (this.saxParser.ended) {\n throw err;\n }\n }\n };\n\n Parser.prototype.parseStringPromise = function(str) {\n return new Promise((function(_this) {\n return function(resolve, reject) {\n return _this.parseString(str, function(err, value) {\n if (err) {\n return reject(err);\n } else {\n return resolve(value);\n }\n });\n };\n })(this));\n };\n\n return Parser;\n\n })(events);\n\n exports.parseString = function(str, a, b) {\n var cb, options, parser;\n if (b != null) {\n if (typeof b === 'function') {\n cb = b;\n }\n if (typeof a === 'object') {\n options = a;\n }\n } else {\n if (typeof a === 'function') {\n cb = a;\n }\n options = {};\n }\n parser = new exports.Parser(options);\n return parser.parseString(str, cb);\n };\n\n exports.parseStringPromise = function(str, a) {\n var options, parser;\n if (typeof a === 'object') {\n options = a;\n }\n parser = new exports.Parser(options);\n return parser.parseStringPromise(str);\n };\n\n}).call(this);\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\nmodule.exports = Readable;\n\n/*<replacement>*/\nvar isArray = require('isarray');\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n\n/*<replacement>*/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\n/*<replacement>*/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/*</replacement>*/\n\n/*<replacement>*/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/*</replacement>*/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDOMConfiguration, XMLDOMImplementation, XMLDocument, XMLNode, XMLStringWriter, XMLStringifier, isPlainObject,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n isPlainObject = require('./Utility').isPlainObject;\n\n XMLDOMImplementation = require('./XMLDOMImplementation');\n\n XMLDOMConfiguration = require('./XMLDOMConfiguration');\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n XMLStringifier = require('./XMLStringifier');\n\n XMLStringWriter = require('./XMLStringWriter');\n\n module.exports = XMLDocument = (function(superClass) {\n extend(XMLDocument, superClass);\n\n function XMLDocument(options) {\n XMLDocument.__super__.constructor.call(this, null);\n this.name = \"#document\";\n this.type = NodeType.Document;\n this.documentURI = null;\n this.domConfig = new XMLDOMConfiguration();\n options || (options = {});\n if (!options.writer) {\n options.writer = new XMLStringWriter();\n }\n this.options = options;\n this.stringify = new XMLStringifier(options);\n }\n\n Object.defineProperty(XMLDocument.prototype, 'implementation', {\n value: new XMLDOMImplementation()\n });\n\n Object.defineProperty(XMLDocument.prototype, 'doctype', {\n get: function() {\n var child, i, len, ref;\n ref = this.children;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n if (child.type === NodeType.DocType) {\n return child;\n }\n }\n return null;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'documentElement', {\n get: function() {\n return this.rootObject || null;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'inputEncoding', {\n get: function() {\n return null;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'strictErrorChecking', {\n get: function() {\n return false;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'xmlEncoding', {\n get: function() {\n if (this.children.length !== 0 && this.children[0].type === NodeType.Declaration) {\n return this.children[0].encoding;\n } else {\n return null;\n }\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'xmlStandalone', {\n get: function() {\n if (this.children.length !== 0 && this.children[0].type === NodeType.Declaration) {\n return this.children[0].standalone === 'yes';\n } else {\n return false;\n }\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'xmlVersion', {\n get: function() {\n if (this.children.length !== 0 && this.children[0].type === NodeType.Declaration) {\n return this.children[0].version;\n } else {\n return \"1.0\";\n }\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'URL', {\n get: function() {\n return this.documentURI;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'origin', {\n get: function() {\n return null;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'compatMode', {\n get: function() {\n return null;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'characterSet', {\n get: function() {\n return null;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'contentType', {\n get: function() {\n return null;\n }\n });\n\n XMLDocument.prototype.end = function(writer) {\n var writerOptions;\n writerOptions = {};\n if (!writer) {\n writer = this.options.writer;\n } else if (isPlainObject(writer)) {\n writerOptions = writer;\n writer = this.options.writer;\n }\n return writer.document(this, writer.filterOptions(writerOptions));\n };\n\n XMLDocument.prototype.toString = function(options) {\n return this.options.writer.document(this, this.options.writer.filterOptions(options));\n };\n\n XMLDocument.prototype.createElement = function(tagName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createDocumentFragment = function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createTextNode = function(data) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createComment = function(data) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createCDATASection = function(data) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createProcessingInstruction = function(target, data) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createAttribute = function(name) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createEntityReference = function(name) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.getElementsByTagName = function(tagname) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.importNode = function(importedNode, deep) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createElementNS = function(namespaceURI, qualifiedName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createAttributeNS = function(namespaceURI, qualifiedName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.getElementsByTagNameNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.getElementById = function(elementId) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.adoptNode = function(source) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.normalizeDocument = function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.renameNode = function(node, namespaceURI, qualifiedName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.getElementsByClassName = function(classNames) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createEvent = function(eventInterface) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createRange = function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createNodeIterator = function(root, whatToShow, filter) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createTreeWalker = function(root, whatToShow, filter) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n return XMLDocument;\n\n })(XMLNode);\n\n}).call(this);\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\n/*<replacement>*/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/*</replacement>*/\n\nmodule.exports = Duplex;\n\n/*<replacement>*/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDTDNotation, XMLNode,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n module.exports = XMLDTDNotation = (function(superClass) {\n extend(XMLDTDNotation, superClass);\n\n function XMLDTDNotation(parent, name, value) {\n XMLDTDNotation.__super__.constructor.call(this, parent);\n if (name == null) {\n throw new Error(\"Missing DTD notation name. \" + this.debugInfo(name));\n }\n if (!value.pubID && !value.sysID) {\n throw new Error(\"Public or system identifiers are required for an external entity. \" + this.debugInfo(name));\n }\n this.name = this.stringify.name(name);\n this.type = NodeType.NotationDeclaration;\n if (value.pubID != null) {\n this.pubID = this.stringify.dtdPubID(value.pubID);\n }\n if (value.sysID != null) {\n this.sysID = this.stringify.dtdSysID(value.sysID);\n }\n }\n\n Object.defineProperty(XMLDTDNotation.prototype, 'publicId', {\n get: function() {\n return this.pubID;\n }\n });\n\n Object.defineProperty(XMLDTDNotation.prototype, 'systemId', {\n get: function() {\n return this.sysID;\n }\n });\n\n XMLDTDNotation.prototype.toString = function(options) {\n return this.options.writer.dtdNotation(this, this.options.writer.filterOptions(options));\n };\n\n return XMLDTDNotation;\n\n })(XMLNode);\n\n}).call(this);\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLAttribute, XMLElement, XMLNamedNodeMap, XMLNode, getValue, isFunction, isObject, ref,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n ref = require('./Utility'), isObject = ref.isObject, isFunction = ref.isFunction, getValue = ref.getValue;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n XMLAttribute = require('./XMLAttribute');\n\n XMLNamedNodeMap = require('./XMLNamedNodeMap');\n\n module.exports = XMLElement = (function(superClass) {\n extend(XMLElement, superClass);\n\n function XMLElement(parent, name, attributes) {\n var child, j, len, ref1;\n XMLElement.__super__.constructor.call(this, parent);\n if (name == null) {\n throw new Error(\"Missing element name. \" + this.debugInfo());\n }\n this.name = this.stringify.name(name);\n this.type = NodeType.Element;\n this.attribs = {};\n this.schemaTypeInfo = null;\n if (attributes != null) {\n this.attribute(attributes);\n }\n if (parent.type === NodeType.Document) {\n this.isRoot = true;\n this.documentObject = parent;\n parent.rootObject = this;\n if (parent.children) {\n ref1 = parent.children;\n for (j = 0, len = ref1.length; j < len; j++) {\n child = ref1[j];\n if (child.type === NodeType.DocType) {\n child.name = this.name;\n break;\n }\n }\n }\n }\n }\n\n Object.defineProperty(XMLElement.prototype, 'tagName', {\n get: function() {\n return this.name;\n }\n });\n\n Object.defineProperty(XMLElement.prototype, 'namespaceURI', {\n get: function() {\n return '';\n }\n });\n\n Object.defineProperty(XMLElement.prototype, 'prefix', {\n get: function() {\n return '';\n }\n });\n\n Object.defineProperty(XMLElement.prototype, 'localName', {\n get: function() {\n return this.name;\n }\n });\n\n Object.defineProperty(XMLElement.prototype, 'id', {\n get: function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n }\n });\n\n Object.defineProperty(XMLElement.prototype, 'className', {\n get: function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n }\n });\n\n Object.defineProperty(XMLElement.prototype, 'classList', {\n get: function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n }\n });\n\n Object.defineProperty(XMLElement.prototype, 'attributes', {\n get: function() {\n if (!this.attributeMap || !this.attributeMap.nodes) {\n this.attributeMap = new XMLNamedNodeMap(this.attribs);\n }\n return this.attributeMap;\n }\n });\n\n XMLElement.prototype.clone = function() {\n var att, attName, clonedSelf, ref1;\n clonedSelf = Object.create(this);\n if (clonedSelf.isRoot) {\n clonedSelf.documentObject = null;\n }\n clonedSelf.attribs = {};\n ref1 = this.attribs;\n for (attName in ref1) {\n if (!hasProp.call(ref1, attName)) continue;\n att = ref1[attName];\n clonedSelf.attribs[attName] = att.clone();\n }\n clonedSelf.children = [];\n this.children.forEach(function(child) {\n var clonedChild;\n clonedChild = child.clone();\n clonedChild.parent = clonedSelf;\n return clonedSelf.children.push(clonedChild);\n });\n return clonedSelf;\n };\n\n XMLElement.prototype.attribute = function(name, value) {\n var attName, attValue;\n if (name != null) {\n name = getValue(name);\n }\n if (isObject(name)) {\n for (attName in name) {\n if (!hasProp.call(name, attName)) continue;\n attValue = name[attName];\n this.attribute(attName, attValue);\n }\n } else {\n if (isFunction(value)) {\n value = value.apply();\n }\n if (this.options.keepNullAttributes && (value == null)) {\n this.attribs[name] = new XMLAttribute(this, name, \"\");\n } else if (value != null) {\n this.attribs[name] = new XMLAttribute(this, name, value);\n }\n }\n return this;\n };\n\n XMLElement.prototype.removeAttribute = function(name) {\n var attName, j, len;\n if (name == null) {\n throw new Error(\"Missing attribute name. \" + this.debugInfo());\n }\n name = getValue(name);\n if (Array.isArray(name)) {\n for (j = 0, len = name.length; j < len; j++) {\n attName = name[j];\n delete this.attribs[attName];\n }\n } else {\n delete this.attribs[name];\n }\n return this;\n };\n\n XMLElement.prototype.toString = function(options) {\n return this.options.writer.element(this, this.options.writer.filterOptions(options));\n };\n\n XMLElement.prototype.att = function(name, value) {\n return this.attribute(name, value);\n };\n\n XMLElement.prototype.a = function(name, value) {\n return this.attribute(name, value);\n };\n\n XMLElement.prototype.getAttribute = function(name) {\n if (this.attribs.hasOwnProperty(name)) {\n return this.attribs[name].value;\n } else {\n return null;\n }\n };\n\n XMLElement.prototype.setAttribute = function(name, value) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getAttributeNode = function(name) {\n if (this.attribs.hasOwnProperty(name)) {\n return this.attribs[name];\n } else {\n return null;\n }\n };\n\n XMLElement.prototype.setAttributeNode = function(newAttr) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.removeAttributeNode = function(oldAttr) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getElementsByTagName = function(name) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getAttributeNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.setAttributeNS = function(namespaceURI, qualifiedName, value) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.removeAttributeNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getAttributeNodeNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.setAttributeNodeNS = function(newAttr) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getElementsByTagNameNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.hasAttribute = function(name) {\n return this.attribs.hasOwnProperty(name);\n };\n\n XMLElement.prototype.hasAttributeNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.setIdAttribute = function(name, isId) {\n if (this.attribs.hasOwnProperty(name)) {\n return this.attribs[name].isId;\n } else {\n return isId;\n }\n };\n\n XMLElement.prototype.setIdAttributeNS = function(namespaceURI, localName, isId) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.setIdAttributeNode = function(idAttr, isId) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getElementsByTagName = function(tagname) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getElementsByTagNameNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getElementsByClassName = function(classNames) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.isEqualNode = function(node) {\n var i, j, ref1;\n if (!XMLElement.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) {\n return false;\n }\n if (node.namespaceURI !== this.namespaceURI) {\n return false;\n }\n if (node.prefix !== this.prefix) {\n return false;\n }\n if (node.localName !== this.localName) {\n return false;\n }\n if (node.attribs.length !== this.attribs.length) {\n return false;\n }\n for (i = j = 0, ref1 = this.attribs.length - 1; 0 <= ref1 ? j <= ref1 : j >= ref1; i = 0 <= ref1 ? ++j : --j) {\n if (!this.attribs[i].isEqualNode(node.attribs[i])) {\n return false;\n }\n }\n return true;\n };\n\n return XMLElement;\n\n })(XMLNode);\n\n}).call(this);\n","module.exports = require('./readable').PassThrough\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, WriterState, XMLStreamWriter, XMLWriterBase,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n NodeType = require('./NodeType');\n\n XMLWriterBase = require('./XMLWriterBase');\n\n WriterState = require('./WriterState');\n\n module.exports = XMLStreamWriter = (function(superClass) {\n extend(XMLStreamWriter, superClass);\n\n function XMLStreamWriter(stream, options) {\n this.stream = stream;\n XMLStreamWriter.__super__.constructor.call(this, options);\n }\n\n XMLStreamWriter.prototype.endline = function(node, options, level) {\n if (node.isLastRootNode && options.state === WriterState.CloseTag) {\n return '';\n } else {\n return XMLStreamWriter.__super__.endline.call(this, node, options, level);\n }\n };\n\n XMLStreamWriter.prototype.document = function(doc, options) {\n var child, i, j, k, len, len1, ref, ref1, results;\n ref = doc.children;\n for (i = j = 0, len = ref.length; j < len; i = ++j) {\n child = ref[i];\n child.isLastRootNode = i === doc.children.length - 1;\n }\n options = this.filterOptions(options);\n ref1 = doc.children;\n results = [];\n for (k = 0, len1 = ref1.length; k < len1; k++) {\n child = ref1[k];\n results.push(this.writeChildNode(child, options, 0));\n }\n return results;\n };\n\n XMLStreamWriter.prototype.attribute = function(att, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.attribute.call(this, att, options, level));\n };\n\n XMLStreamWriter.prototype.cdata = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.cdata.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.comment = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.comment.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.declaration = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.declaration.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.docType = function(node, options, level) {\n var child, j, len, ref;\n level || (level = 0);\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n this.stream.write(this.indent(node, options, level));\n this.stream.write('<!DOCTYPE ' + node.root().name);\n if (node.pubID && node.sysID) {\n this.stream.write(' PUBLIC \"' + node.pubID + '\" \"' + node.sysID + '\"');\n } else if (node.sysID) {\n this.stream.write(' SYSTEM \"' + node.sysID + '\"');\n }\n if (node.children.length > 0) {\n this.stream.write(' [');\n this.stream.write(this.endline(node, options, level));\n options.state = WriterState.InsideTag;\n ref = node.children;\n for (j = 0, len = ref.length; j < len; j++) {\n child = ref[j];\n this.writeChildNode(child, options, level + 1);\n }\n options.state = WriterState.CloseTag;\n this.stream.write(']');\n }\n options.state = WriterState.CloseTag;\n this.stream.write(options.spaceBeforeSlash + '>');\n this.stream.write(this.endline(node, options, level));\n options.state = WriterState.None;\n return this.closeNode(node, options, level);\n };\n\n XMLStreamWriter.prototype.element = function(node, options, level) {\n var att, child, childNodeCount, firstChildNode, j, len, name, prettySuppressed, ref, ref1;\n level || (level = 0);\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n this.stream.write(this.indent(node, options, level) + '<' + node.name);\n ref = node.attribs;\n for (name in ref) {\n if (!hasProp.call(ref, name)) continue;\n att = ref[name];\n this.attribute(att, options, level);\n }\n childNodeCount = node.children.length;\n firstChildNode = childNodeCount === 0 ? null : node.children[0];\n if (childNodeCount === 0 || node.children.every(function(e) {\n return (e.type === NodeType.Text || e.type === NodeType.Raw) && e.value === '';\n })) {\n if (options.allowEmpty) {\n this.stream.write('>');\n options.state = WriterState.CloseTag;\n this.stream.write('</' + node.name + '>');\n } else {\n options.state = WriterState.CloseTag;\n this.stream.write(options.spaceBeforeSlash + '/>');\n }\n } else if (options.pretty && childNodeCount === 1 && (firstChildNode.type === NodeType.Text || firstChildNode.type === NodeType.Raw) && (firstChildNode.value != null)) {\n this.stream.write('>');\n options.state = WriterState.InsideTag;\n options.suppressPrettyCount++;\n prettySuppressed = true;\n this.writeChildNode(firstChildNode, options, level + 1);\n options.suppressPrettyCount--;\n prettySuppressed = false;\n options.state = WriterState.CloseTag;\n this.stream.write('</' + node.name + '>');\n } else {\n this.stream.write('>' + this.endline(node, options, level));\n options.state = WriterState.InsideTag;\n ref1 = node.children;\n for (j = 0, len = ref1.length; j < len; j++) {\n child = ref1[j];\n this.writeChildNode(child, options, level + 1);\n }\n options.state = WriterState.CloseTag;\n this.stream.write(this.indent(node, options, level) + '</' + node.name + '>');\n }\n this.stream.write(this.endline(node, options, level));\n options.state = WriterState.None;\n return this.closeNode(node, options, level);\n };\n\n XMLStreamWriter.prototype.processingInstruction = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.processingInstruction.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.raw = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.raw.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.text = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.text.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.dtdAttList = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.dtdAttList.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.dtdElement = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.dtdElement.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.dtdEntity = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.dtdEntity.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.dtdNotation = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.dtdNotation.call(this, node, options, level));\n };\n\n return XMLStreamWriter;\n\n })(XMLWriterBase);\n\n}).call(this);\n","module.exports = require('./readable').Transform\n","// Generated by CoffeeScript 1.12.7\n(function() {\n module.exports = {\n Disconnected: 1,\n Preceding: 2,\n Following: 4,\n Contains: 8,\n ContainedBy: 16,\n ImplementationSpecific: 32\n };\n\n}).call(this);\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDocType, XMLNamedNodeMap, XMLNode, isObject,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n isObject = require('./Utility').isObject;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n XMLDTDAttList = require('./XMLDTDAttList');\n\n XMLDTDEntity = require('./XMLDTDEntity');\n\n XMLDTDElement = require('./XMLDTDElement');\n\n XMLDTDNotation = require('./XMLDTDNotation');\n\n XMLNamedNodeMap = require('./XMLNamedNodeMap');\n\n module.exports = XMLDocType = (function(superClass) {\n extend(XMLDocType, superClass);\n\n function XMLDocType(parent, pubID, sysID) {\n var child, i, len, ref, ref1, ref2;\n XMLDocType.__super__.constructor.call(this, parent);\n this.type = NodeType.DocType;\n if (parent.children) {\n ref = parent.children;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n if (child.type === NodeType.Element) {\n this.name = child.name;\n break;\n }\n }\n }\n this.documentObject = parent;\n if (isObject(pubID)) {\n ref1 = pubID, pubID = ref1.pubID, sysID = ref1.sysID;\n }\n if (sysID == null) {\n ref2 = [pubID, sysID], sysID = ref2[0], pubID = ref2[1];\n }\n if (pubID != null) {\n this.pubID = this.stringify.dtdPubID(pubID);\n }\n if (sysID != null) {\n this.sysID = this.stringify.dtdSysID(sysID);\n }\n }\n\n Object.defineProperty(XMLDocType.prototype, 'entities', {\n get: function() {\n var child, i, len, nodes, ref;\n nodes = {};\n ref = this.children;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n if ((child.type === NodeType.EntityDeclaration) && !child.pe) {\n nodes[child.name] = child;\n }\n }\n return new XMLNamedNodeMap(nodes);\n }\n });\n\n Object.defineProperty(XMLDocType.prototype, 'notations', {\n get: function() {\n var child, i, len, nodes, ref;\n nodes = {};\n ref = this.children;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n if (child.type === NodeType.NotationDeclaration) {\n nodes[child.name] = child;\n }\n }\n return new XMLNamedNodeMap(nodes);\n }\n });\n\n Object.defineProperty(XMLDocType.prototype, 'publicId', {\n get: function() {\n return this.pubID;\n }\n });\n\n Object.defineProperty(XMLDocType.prototype, 'systemId', {\n get: function() {\n return this.sysID;\n }\n });\n\n Object.defineProperty(XMLDocType.prototype, 'internalSubset', {\n get: function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n }\n });\n\n XMLDocType.prototype.element = function(name, value) {\n var child;\n child = new XMLDTDElement(this, name, value);\n this.children.push(child);\n return this;\n };\n\n XMLDocType.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {\n var child;\n child = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue);\n this.children.push(child);\n return this;\n };\n\n XMLDocType.prototype.entity = function(name, value) {\n var child;\n child = new XMLDTDEntity(this, false, name, value);\n this.children.push(child);\n return this;\n };\n\n XMLDocType.prototype.pEntity = function(name, value) {\n var child;\n child = new XMLDTDEntity(this, true, name, value);\n this.children.push(child);\n return this;\n };\n\n XMLDocType.prototype.notation = function(name, value) {\n var child;\n child = new XMLDTDNotation(this, name, value);\n this.children.push(child);\n return this;\n };\n\n XMLDocType.prototype.toString = function(options) {\n return this.options.writer.docType(this, this.options.writer.filterOptions(options));\n };\n\n XMLDocType.prototype.ele = function(name, value) {\n return this.element(name, value);\n };\n\n XMLDocType.prototype.att = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {\n return this.attList(elementName, attributeName, attributeType, defaultValueType, defaultValue);\n };\n\n XMLDocType.prototype.ent = function(name, value) {\n return this.entity(name, value);\n };\n\n XMLDocType.prototype.pent = function(name, value) {\n return this.pEntity(name, value);\n };\n\n XMLDocType.prototype.not = function(name, value) {\n return this.notation(name, value);\n };\n\n XMLDocType.prototype.up = function() {\n return this.root() || this.documentObject;\n };\n\n XMLDocType.prototype.isEqualNode = function(node) {\n if (!XMLDocType.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) {\n return false;\n }\n if (node.name !== this.name) {\n return false;\n }\n if (node.publicId !== this.publicId) {\n return false;\n }\n if (node.systemId !== this.systemId) {\n return false;\n }\n return true;\n };\n\n return XMLDocType;\n\n })(XMLNode);\n\n}).call(this);\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\nmodule.exports = Writable;\n\n/* <replacement> */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* </replacement> */\n\n/*<replacement>*/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n\n/*<replacement>*/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/*</replacement>*/\n\n/*<replacement>*/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /*<replacement>*/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /*</replacement>*/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLCharacterData, XMLProcessingInstruction,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n NodeType = require('./NodeType');\n\n XMLCharacterData = require('./XMLCharacterData');\n\n module.exports = XMLProcessingInstruction = (function(superClass) {\n extend(XMLProcessingInstruction, superClass);\n\n function XMLProcessingInstruction(parent, target, value) {\n XMLProcessingInstruction.__super__.constructor.call(this, parent);\n if (target == null) {\n throw new Error(\"Missing instruction target. \" + this.debugInfo());\n }\n this.type = NodeType.ProcessingInstruction;\n this.target = this.stringify.insTarget(target);\n this.name = this.target;\n if (value) {\n this.value = this.stringify.insValue(value);\n }\n }\n\n XMLProcessingInstruction.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLProcessingInstruction.prototype.toString = function(options) {\n return this.options.writer.processingInstruction(this, this.options.writer.filterOptions(options));\n };\n\n XMLProcessingInstruction.prototype.isEqualNode = function(node) {\n if (!XMLProcessingInstruction.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) {\n return false;\n }\n if (node.target !== this.target) {\n return false;\n }\n return true;\n };\n\n return XMLProcessingInstruction;\n\n })(XMLCharacterData);\n\n}).call(this);\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n"],"sourceRoot":""}