From 522a4d6a6696fb5de5df100ddbdae674e9b8d478 Mon Sep 17 00:00:00 2001 From: Vladimir Borisov Date: Thu, 27 Nov 2025 15:50:34 +0200 Subject: [PATCH] Update server.js to v4.20.15 --- server.js | 17529 +++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 13276 insertions(+), 4253 deletions(-) diff --git a/server.js b/server.js index f9cbc76..b6e31ee 100644 --- a/server.js +++ b/server.js @@ -42,7 +42,7 @@ return __webpack_require__.d(getter, "a", getter), getter; }, __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); - }, __webpack_require__.p = "", __webpack_require__(__webpack_require__.s = 518); + }, __webpack_require__.p = "", __webpack_require__(__webpack_require__.s = 564); })([ function(module, exports) { module.exports = require("util"); }, function(module, exports, __webpack_require__) { @@ -138,7 +138,7 @@ function loadLocale(name) { var oldLocale = null; if (!locales[name] && void 0 !== module && module && module.exports) try { - oldLocale = globalLocale._abbr, __webpack_require__(693)("./" + name), locale_locales__getSetGlobalLocale(oldLocale); + oldLocale = globalLocale._abbr, __webpack_require__(732)("./" + name), locale_locales__getSetGlobalLocale(oldLocale); } catch (e) {} return locales[name]; } @@ -699,11 +699,11 @@ }, momentPrototype__proto.clone = function() { return new Moment(this); }, momentPrototype__proto.diff = function(input, units, asFloat) { - var delta, output, a, b, wholeMonthDiff, anchor, that = cloneWithOffset(input, this), zoneDelta = 6e4 * (that.utcOffset() - this.utcOffset()); - return "year" === (units = normalizeUnits(units)) || "month" === units || "quarter" === units ? (a = this, - wholeMonthDiff = 12 * ((b = that).year() - a.year()) + (b.month() - a.month()), - anchor = a.clone().add(wholeMonthDiff, "months"), output = -(wholeMonthDiff + (b - anchor < 0 ? (b - anchor) / (anchor - a.clone().add(wholeMonthDiff - 1, "months")) : (b - anchor) / (a.clone().add(wholeMonthDiff + 1, "months") - anchor))), - "quarter" === units ? output /= 3 : "year" === units && (output /= 12)) : (delta = this - that, + var delta, output, that = cloneWithOffset(input, this), zoneDelta = 6e4 * (that.utcOffset() - this.utcOffset()); + return "year" === (units = normalizeUnits(units)) || "month" === units || "quarter" === units ? (output = (function(a, b) { + var wholeMonthDiff = 12 * (b.year() - a.year()) + (b.month() - a.month()), anchor = a.clone().add(wholeMonthDiff, "months"); + return -(wholeMonthDiff + (b - anchor < 0 ? (b - anchor) / (anchor - a.clone().add(wholeMonthDiff - 1, "months")) : (b - anchor) / (a.clone().add(wholeMonthDiff + 1, "months") - anchor))); + })(this, that), "quarter" === units ? output /= 3 : "year" === units && (output /= 12)) : (delta = this - that, output = "second" === units ? delta / 1e3 : "minute" === units ? delta / 6e4 : "hour" === units ? delta / 36e5 : "day" === units ? (delta - zoneDelta) / 864e5 : "week" === units ? (delta - zoneDelta) / 6048e5 : delta), asFloat ? output : absFloor(output); }, momentPrototype__proto.endOf = function(units) { @@ -1132,15 +1132,17 @@ !0)); }, utils_hooks__hooks; })(); - }).call(this, __webpack_require__(62)(module)); + }).call(this, __webpack_require__(69)(module)); }, function(module, exports) { module.exports = require("fs"); }, function(module, exports) { module.exports = require("stream"); +}, function(module, exports) { + module.exports = require("events"); }, function(module, exports) { module.exports = require("path"); }, function(module, exports) { - module.exports = require("events"); + module.exports = require("crypto"); }, function(module, exports) { module.exports = require("url"); }, function(module, exports, __webpack_require__) { @@ -1149,12 +1151,10 @@ if ("function" != typeof util.inherits) throw ""; module.exports = util.inherits; } catch (e) { - module.exports = __webpack_require__(552); + module.exports = __webpack_require__(598); } }, function(module, exports, __webpack_require__) { - "undefined" != typeof process && "renderer" === process.type ? module.exports = __webpack_require__(541) : module.exports = __webpack_require__(543); -}, function(module, exports) { - module.exports = require("crypto"); + "undefined" != typeof process && "renderer" === process.type ? module.exports = __webpack_require__(587) : module.exports = __webpack_require__(589); }, function(module, exports) { module.exports = require("buffer"); }, function(module, exports) { @@ -5279,7 +5279,7 @@ }, safer.kStringMaxLength && (safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength)), module.exports = safer; }, function(module, exports, __webpack_require__) { - var assert = __webpack_require__(22), Stream = __webpack_require__(3).Stream, util = __webpack_require__(0), UUID_REGEXP = /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/; + var assert = __webpack_require__(25), Stream = __webpack_require__(3).Stream, util = __webpack_require__(0), UUID_REGEXP = /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/; function _capitalize(str) { return str.charAt(0).toUpperCase() + str.slice(1); } @@ -5412,7 +5412,7 @@ })(process.env.NODE_NDEBUG); }, function(module, exports, __webpack_require__) { "use strict"; - var tryCatchTarget, es5 = __webpack_require__(66), canEvaluate = "undefined" == typeof navigator, errorObj = { + var tryCatchTarget, es5 = __webpack_require__(75), canEvaluate = "undefined" == typeof navigator, errorObj = { e: {} }, globalObject = "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : void 0 !== this ? this : null; function tryCatcher() { @@ -5629,7 +5629,7 @@ module.exports = ret; }, function(module, exports, __webpack_require__) { "use strict"; - var tryCatchTarget, es5 = __webpack_require__(81), canEvaluate = "undefined" == typeof navigator, errorObj = { + var tryCatchTarget, es5 = __webpack_require__(92), canEvaluate = "undefined" == typeof navigator, errorObj = { e: {} }, globalObject = "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : void 0 !== this ? this : null; function tryCatcher() { @@ -5847,7 +5847,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var schema = __webpack_require__(13), tools = __webpack_require__(75); + var schema = __webpack_require__(13), tools = __webpack_require__(86); module.exports = { addAttribute: function(proto, ebmlName) { var ebmlID = schema.byName[ebmlName]; @@ -5940,7 +5940,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var schema = __webpack_require__(12), tools = __webpack_require__(72); + var schema = __webpack_require__(12), tools = __webpack_require__(83); module.exports = { addAttribute: function(proto, ebmlName) { var ebmlID = schema.byName[ebmlName]; @@ -6034,11 +6034,33 @@ }, function(module, exports) { module.exports = require("https"); }, function(module, exports) { - module.exports = require("assert"); + (function() { + module.exports = { + Element: 1, + Attribute: 2, + Text: 3, + CData: 4, + EntityReference: 5, + EntityDeclaration: 6, + ProcessingInstruction: 7, + Comment: 8, + Document: 9, + DocType: 10, + DocumentFragment: 11, + NotationDeclaration: 12, + Declaration: 201, + Raw: 202, + AttributeDeclaration: 203, + ElementDeclaration: 204, + Dummy: 205 + }; + }).call(this); }, function(module, exports) { module.exports = require("os"); }, function(module, exports) { module.exports = require("querystring"); +}, function(module, exports) { + module.exports = require("assert"); }, function(module, exports, __webpack_require__) { var buffer = __webpack_require__(10), Buffer = buffer.Buffer; function copyProps(src, dst) { @@ -6065,9 +6087,9 @@ }; }, function(module, exports, __webpack_require__) { module.exports = Key; - var edCompat, assert = __webpack_require__(15), algs = __webpack_require__(30), crypto = __webpack_require__(9), Fingerprint = __webpack_require__(97), Signature = __webpack_require__(48), DiffieHellman = __webpack_require__(234).DiffieHellman, errs = __webpack_require__(44), utils = __webpack_require__(27), PrivateKey = __webpack_require__(28); + var edCompat, assert = __webpack_require__(15), algs = __webpack_require__(31), crypto = __webpack_require__(6), Fingerprint = __webpack_require__(109), Signature = __webpack_require__(53), DiffieHellman = __webpack_require__(265).DiffieHellman, errs = __webpack_require__(48), utils = __webpack_require__(28), PrivateKey = __webpack_require__(29); try { - edCompat = __webpack_require__(479); + edCompat = __webpack_require__(521); } catch (e) {} var InvalidAlgorithmError = errs.InvalidAlgorithmError, KeyParseError = errs.KeyParseError, formats = {}; function Key(opts) { @@ -6090,11 +6112,11 @@ } this.size = sz; } - formats.auto = __webpack_require__(480), formats.pem = __webpack_require__(56), - formats.pkcs1 = __webpack_require__(235), formats.pkcs8 = __webpack_require__(101), - formats.rfc4253 = __webpack_require__(57), formats.ssh = __webpack_require__(482), - formats["ssh-private"] = __webpack_require__(152), formats.openssh = formats["ssh-private"], - formats.dnssec = __webpack_require__(236), formats.putty = __webpack_require__(483), + formats.auto = __webpack_require__(522), formats.pem = __webpack_require__(62), + formats.pkcs1 = __webpack_require__(266), formats.pkcs8 = __webpack_require__(113), + formats.rfc4253 = __webpack_require__(63), formats.ssh = __webpack_require__(524), + formats["ssh-private"] = __webpack_require__(165), formats.openssh = formats["ssh-private"], + formats.dnssec = __webpack_require__(267), formats.putty = __webpack_require__(525), formats.ppk = formats.putty, Key.formats = formats, Key.prototype.toBuffer = function(format, options) { return void 0 === format && (format = "ssh"), assert.string(format, "format"), assert.object(formats[format], "formats[format]"), assert.optionalObject(options, "options"), "rfc4253" === format ? (void 0 === this._rfc4253Cache && (this._rfc4253Cache = formats.rfc4253.write(this)), @@ -6352,7 +6374,7 @@ } } }; - var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, PrivateKey = __webpack_require__(28), Key = __webpack_require__(26), crypto = __webpack_require__(9), algs = __webpack_require__(30), asn1 = __webpack_require__(49), ec = __webpack_require__(151), jsbn = __webpack_require__(98).BigInteger, nacl = __webpack_require__(99); + var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, PrivateKey = __webpack_require__(29), Key = __webpack_require__(27), crypto = __webpack_require__(6), algs = __webpack_require__(31), asn1 = __webpack_require__(54), ec = __webpack_require__(164), jsbn = __webpack_require__(110).BigInteger, nacl = __webpack_require__(111); function assertCompatible(obj, klass, needVer, name) { if (void 0 === name && (name = "object"), assert.ok(obj, name + " must not be null"), assert.object(obj, name + " must be an object"), void 0 === needVer && (needVer = klass.prototype._sshpkApiVersion), @@ -6392,17 +6414,17 @@ } }, function(module, exports, __webpack_require__) { module.exports = PrivateKey; - var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(30), crypto = __webpack_require__(9), Signature = (__webpack_require__(97), - __webpack_require__(48)), errs = __webpack_require__(44), util = __webpack_require__(0), utils = __webpack_require__(27), dhe = __webpack_require__(234), generateECDSA = dhe.generateECDSA, generateED25519 = dhe.generateED25519, edCompat = __webpack_require__(479), nacl = __webpack_require__(99), Key = __webpack_require__(26), KeyParseError = (errs.InvalidAlgorithmError, + var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(31), crypto = __webpack_require__(6), Signature = (__webpack_require__(109), + __webpack_require__(53)), errs = __webpack_require__(48), util = __webpack_require__(0), utils = __webpack_require__(28), dhe = __webpack_require__(265), generateECDSA = dhe.generateECDSA, generateED25519 = dhe.generateED25519, edCompat = __webpack_require__(521), nacl = __webpack_require__(111), Key = __webpack_require__(27), KeyParseError = (errs.InvalidAlgorithmError, errs.KeyParseError), formats = (errs.KeyEncryptedError, {}); function PrivateKey(opts) { assert.object(opts, "options"), Key.call(this, opts), this._pubCache = void 0; } - formats.auto = __webpack_require__(480), formats.pem = __webpack_require__(56), - formats.pkcs1 = __webpack_require__(235), formats.pkcs8 = __webpack_require__(101), - formats.rfc4253 = __webpack_require__(57), formats["ssh-private"] = __webpack_require__(152), + formats.auto = __webpack_require__(522), formats.pem = __webpack_require__(62), + formats.pkcs1 = __webpack_require__(266), formats.pkcs8 = __webpack_require__(113), + formats.rfc4253 = __webpack_require__(63), formats["ssh-private"] = __webpack_require__(165), formats.openssh = formats["ssh-private"], formats.ssh = formats["ssh-private"], - formats.dnssec = __webpack_require__(236), util.inherits(PrivateKey, Key), PrivateKey.formats = formats, + formats.dnssec = __webpack_require__(267), util.inherits(PrivateKey, Key), PrivateKey.formats = formats, PrivateKey.prototype.toBuffer = function(format, options) { return void 0 === format && (format = "pkcs1"), assert.string(format, "format"), assert.object(formats[format], "formats[format]"), assert.optionalObject(options, "options"), @@ -6504,7 +6526,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(43), _proto = (__webpack_require__(13), + var util = __webpack_require__(0), Element1 = __webpack_require__(47), _proto = (__webpack_require__(13), __webpack_require__(19)); function MasterElement(doc, tagId, ebmlId, start, length) { Element1.call(this, doc, tagId, ebmlId, start, length); @@ -6632,7 +6654,7 @@ Object.defineProperty(exports, "__esModule", { value: !0 }); - var Stream = _interopDefault(__webpack_require__(3)), http = _interopDefault(__webpack_require__(11)), Url = _interopDefault(__webpack_require__(6)), https = _interopDefault(__webpack_require__(21)), zlib = _interopDefault(__webpack_require__(45)); + var Stream = _interopDefault(__webpack_require__(3)), http = _interopDefault(__webpack_require__(11)), Url = _interopDefault(__webpack_require__(7)), https = _interopDefault(__webpack_require__(21)), zlib = _interopDefault(__webpack_require__(43)); const Readable = Stream.Readable, BUFFER = Symbol("buffer"), TYPE = Symbol("type"); class Blob { constructor() { @@ -6707,7 +6729,7 @@ }), FetchError.prototype = Object.create(Error.prototype), FetchError.prototype.constructor = FetchError, FetchError.prototype.name = "FetchError"; try { - convert = __webpack_require__(520).convert; + convert = __webpack_require__(566).convert; } catch (e) {} const INTERNALS = Symbol("Body internals"), PassThrough = Stream.PassThrough; function Body(body) { @@ -7314,7 +7336,7 @@ }), exports.default = exports, exports.Headers = Headers, exports.Request = Request, exports.Response = Response, exports.FetchError = FetchError; }, function(module, exports, __webpack_require__) { - var wrappy = __webpack_require__(253); + var wrappy = __webpack_require__(289); function once(fn) { var f = function() { return f.called ? f.value : (f.called = !0, f.value = fn.apply(this, arguments)); @@ -7344,7 +7366,7 @@ })); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(64), _proto = (__webpack_require__(12), + var util = __webpack_require__(0), Element1 = __webpack_require__(72), _proto = (__webpack_require__(12), __webpack_require__(20)); function MasterElement(doc, tagId, ebmlId, start, length) { Element1.call(this, doc, tagId, ebmlId, start, length); @@ -7353,16 +7375,16 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLElement, XMLProcessingInstruction, XMLRaw, XMLText, isEmpty, isFunction, isObject, ref, hasProp = {}.hasOwnProperty; - ref = __webpack_require__(52), isObject = ref.isObject, isFunction = ref.isFunction, + ref = __webpack_require__(57), isObject = ref.isObject, isFunction = ref.isFunction, isEmpty = ref.isEmpty, XMLElement = null, XMLCData = null, XMLComment = null, XMLDeclaration = null, XMLDocType = null, XMLRaw = null, XMLText = null, XMLProcessingInstruction = null, module.exports = (function() { function XMLNode(parent) { this.parent = parent, this.parent && (this.options = this.parent.options, this.stringify = this.parent.stringify), - this.children = [], XMLElement || (XMLElement = __webpack_require__(118), XMLCData = __webpack_require__(119), - XMLComment = __webpack_require__(120), XMLDeclaration = __webpack_require__(121), - XMLDocType = __webpack_require__(122), XMLRaw = __webpack_require__(127), XMLText = __webpack_require__(128), - XMLProcessingInstruction = __webpack_require__(129)); + this.children = [], XMLElement || (XMLElement = __webpack_require__(128), XMLCData = __webpack_require__(129), + XMLComment = __webpack_require__(130), XMLDeclaration = __webpack_require__(131), + XMLDocType = __webpack_require__(132), XMLRaw = __webpack_require__(137), XMLText = __webpack_require__(138), + XMLProcessingInstruction = __webpack_require__(139)); } return XMLNode.prototype.element = function(name, attributes, text) { var childNode, item, j, k, key, lastChild, len, len1, ref1, val; @@ -7567,6 +7589,8 @@ }, Stream.prototype.reset = function(flushSource) { this.trigger("reset", flushSource); }, module.exports = Stream; +}, function(module, exports) { + module.exports = require("net"); }, function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_RESULT__; !(function() { @@ -8215,7 +8239,7 @@ }.apply(exports, [])) || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__); })(); }, function(module, exports, __webpack_require__) { - var NGramParser = __webpack_require__(372), NGramParser_IBM420 = __webpack_require__(714); + var NGramParser = __webpack_require__(407), NGramParser_IBM420 = __webpack_require__(768); module.exports.match = function(input, ngrams, byteMap, spaceChar) { return spaceChar = spaceChar || 32, new NGramParser(ngrams, byteMap).parse(input, spaceChar); }, module.exports.matchIBM420 = function(input, ngrams, byteMap, spaceChar) { @@ -8224,7 +8248,321 @@ this.lang = la, this.ngrams = ng; }; }, function(module, exports, __webpack_require__) { - var tty = __webpack_require__(105); + (function() { + var DocumentPosition, NodeType, XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLDummy, XMLElement, XMLNodeList, XMLProcessingInstruction, XMLRaw, XMLText, getValue, isEmpty, isFunction, isObject, ref1, hasProp = {}.hasOwnProperty; + ref1 = __webpack_require__(52), isObject = ref1.isObject, isFunction = ref1.isFunction, + isEmpty = ref1.isEmpty, getValue = ref1.getValue, XMLElement = null, XMLCData = null, + XMLComment = null, XMLDeclaration = null, XMLDocType = null, XMLRaw = null, XMLText = null, + XMLProcessingInstruction = null, XMLDummy = null, NodeType = null, XMLNodeList = null, + DocumentPosition = null, module.exports = (function() { + function XMLNode(parent1) { + this.parent = parent1, this.parent && (this.options = this.parent.options, this.stringify = this.parent.stringify), + this.value = null, this.children = [], this.baseURI = null, XMLElement || (XMLElement = __webpack_require__(247), + XMLCData = __webpack_require__(249), XMLComment = __webpack_require__(250), XMLDeclaration = __webpack_require__(251), + XMLDocType = __webpack_require__(252), XMLRaw = __webpack_require__(257), XMLText = __webpack_require__(258), + XMLProcessingInstruction = __webpack_require__(259), XMLDummy = __webpack_require__(508), + NodeType = __webpack_require__(22), XMLNodeList = __webpack_require__(1109), __webpack_require__(248), + DocumentPosition = __webpack_require__(1110)); + } + return Object.defineProperty(XMLNode.prototype, "nodeName", { + get: function() { + return this.name; + } + }), Object.defineProperty(XMLNode.prototype, "nodeType", { + get: function() { + return this.type; + } + }), Object.defineProperty(XMLNode.prototype, "nodeValue", { + get: function() { + return this.value; + } + }), Object.defineProperty(XMLNode.prototype, "parentNode", { + get: function() { + return this.parent; + } + }), Object.defineProperty(XMLNode.prototype, "childNodes", { + get: function() { + return this.childNodeList && this.childNodeList.nodes || (this.childNodeList = new XMLNodeList(this.children)), + this.childNodeList; + } + }), Object.defineProperty(XMLNode.prototype, "firstChild", { + get: function() { + return this.children[0] || null; + } + }), Object.defineProperty(XMLNode.prototype, "lastChild", { + get: function() { + return this.children[this.children.length - 1] || null; + } + }), Object.defineProperty(XMLNode.prototype, "previousSibling", { + get: function() { + var i; + return i = this.parent.children.indexOf(this), this.parent.children[i - 1] || null; + } + }), Object.defineProperty(XMLNode.prototype, "nextSibling", { + get: function() { + var i; + return i = this.parent.children.indexOf(this), this.parent.children[i + 1] || null; + } + }), Object.defineProperty(XMLNode.prototype, "ownerDocument", { + get: function() { + return this.document() || null; + } + }), Object.defineProperty(XMLNode.prototype, "textContent", { + get: function() { + var child, j, len, ref2, str; + if (this.nodeType === NodeType.Element || this.nodeType === NodeType.DocumentFragment) { + for (str = "", j = 0, len = (ref2 = this.children).length; j < len; j++) (child = ref2[j]).textContent && (str += child.textContent); + return str; + } + return null; + }, + set: function(value) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + } + }), XMLNode.prototype.setParent = function(parent) { + var child, j, len, ref2, results; + for (this.parent = parent, parent && (this.options = parent.options, this.stringify = parent.stringify), + results = [], j = 0, len = (ref2 = this.children).length; j < len; j++) child = ref2[j], + results.push(child.setParent(this)); + return results; + }, XMLNode.prototype.element = function(name, attributes, text) { + var childNode, item, j, k, key, lastChild, len, len1, ref2, ref3, val; + if (lastChild = null, null === attributes && null == text && (attributes = (ref2 = [ {}, null ])[0], + text = ref2[1]), null == attributes && (attributes = {}), attributes = getValue(attributes), + isObject(attributes) || (text = (ref3 = [ attributes, text ])[0], attributes = ref3[1]), + null != name && (name = getValue(name)), Array.isArray(name)) for (j = 0, len = name.length; j < len; j++) item = name[j], + lastChild = this.element(item); else if (isFunction(name)) lastChild = this.element(name.apply()); else if (isObject(name)) { + for (key in name) if (hasProp.call(name, key)) if (val = name[key], isFunction(val) && (val = val.apply()), + !this.options.ignoreDecorators && this.stringify.convertAttKey && 0 === key.indexOf(this.stringify.convertAttKey)) lastChild = this.attribute(key.substr(this.stringify.convertAttKey.length), val); else if (!this.options.separateArrayItems && Array.isArray(val) && isEmpty(val)) lastChild = this.dummy(); else if (isObject(val) && isEmpty(val)) lastChild = this.element(key); else if (this.options.keepNullNodes || null != val) if (!this.options.separateArrayItems && Array.isArray(val)) for (k = 0, + len1 = val.length; k < len1; k++) item = val[k], (childNode = {})[key] = item, lastChild = this.element(childNode); else isObject(val) ? !this.options.ignoreDecorators && this.stringify.convertTextKey && 0 === key.indexOf(this.stringify.convertTextKey) ? lastChild = this.element(val) : (lastChild = this.element(key)).element(val) : lastChild = this.element(key, val); else lastChild = this.dummy(); + } else lastChild = this.options.keepNullNodes || null !== text ? !this.options.ignoreDecorators && this.stringify.convertTextKey && 0 === name.indexOf(this.stringify.convertTextKey) ? this.text(text) : !this.options.ignoreDecorators && this.stringify.convertCDataKey && 0 === name.indexOf(this.stringify.convertCDataKey) ? this.cdata(text) : !this.options.ignoreDecorators && this.stringify.convertCommentKey && 0 === name.indexOf(this.stringify.convertCommentKey) ? this.comment(text) : !this.options.ignoreDecorators && this.stringify.convertRawKey && 0 === name.indexOf(this.stringify.convertRawKey) ? this.raw(text) : !this.options.ignoreDecorators && this.stringify.convertPIKey && 0 === name.indexOf(this.stringify.convertPIKey) ? this.instruction(name.substr(this.stringify.convertPIKey.length), text) : this.node(name, attributes, text) : this.dummy(); + if (null == lastChild) throw new Error("Could not create any elements with: " + name + ". " + this.debugInfo()); + return lastChild; + }, XMLNode.prototype.insertBefore = function(name, attributes, text) { + var child, i, newChild, refChild, removed; + if (null != name ? name.type : void 0) return refChild = attributes, (newChild = name).setParent(this), + refChild ? (i = children.indexOf(refChild), removed = children.splice(i), children.push(newChild), + Array.prototype.push.apply(children, removed)) : children.push(newChild), newChild; + if (this.isRoot) throw new Error("Cannot insert elements at root level. " + this.debugInfo(name)); + return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i), + child = this.parent.element(name, attributes, text), Array.prototype.push.apply(this.parent.children, removed), + child; + }, XMLNode.prototype.insertAfter = function(name, attributes, text) { + var child, i, removed; + if (this.isRoot) throw new Error("Cannot insert elements at root level. " + this.debugInfo(name)); + return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i + 1), + child = this.parent.element(name, attributes, text), Array.prototype.push.apply(this.parent.children, removed), + child; + }, XMLNode.prototype.remove = function() { + var i; + if (this.isRoot) throw new Error("Cannot remove the root element. " + this.debugInfo()); + return i = this.parent.children.indexOf(this), [].splice.apply(this.parent.children, [ i, i - i + 1 ].concat([])), + this.parent; + }, XMLNode.prototype.node = function(name, attributes, text) { + var child, ref2; + return null != name && (name = getValue(name)), attributes || (attributes = {}), + attributes = getValue(attributes), isObject(attributes) || (text = (ref2 = [ attributes, text ])[0], + attributes = ref2[1]), child = new XMLElement(this, name, attributes), null != text && child.text(text), + this.children.push(child), child; + }, XMLNode.prototype.text = function(value) { + var child; + return isObject(value) && this.element(value), child = new XMLText(this, value), + this.children.push(child), this; + }, XMLNode.prototype.cdata = function(value) { + var child; + return child = new XMLCData(this, value), this.children.push(child), this; + }, XMLNode.prototype.comment = function(value) { + var child; + return child = new XMLComment(this, value), this.children.push(child), this; + }, XMLNode.prototype.commentBefore = function(value) { + var i, removed; + return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i), + this.parent.comment(value), Array.prototype.push.apply(this.parent.children, removed), + this; + }, XMLNode.prototype.commentAfter = function(value) { + var i, removed; + return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i + 1), + this.parent.comment(value), Array.prototype.push.apply(this.parent.children, removed), + this; + }, XMLNode.prototype.raw = function(value) { + var child; + return child = new XMLRaw(this, value), this.children.push(child), this; + }, XMLNode.prototype.dummy = function() { + return new XMLDummy(this); + }, XMLNode.prototype.instruction = function(target, value) { + var insTarget, insValue, instruction, j, len; + if (null != target && (target = getValue(target)), null != value && (value = getValue(value)), + Array.isArray(target)) for (j = 0, len = target.length; j < len; j++) insTarget = target[j], + this.instruction(insTarget); else if (isObject(target)) for (insTarget in target) hasProp.call(target, insTarget) && (insValue = target[insTarget], + this.instruction(insTarget, insValue)); else isFunction(value) && (value = value.apply()), + instruction = new XMLProcessingInstruction(this, target, value), this.children.push(instruction); + return this; + }, XMLNode.prototype.instructionBefore = function(target, value) { + var i, removed; + return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i), + this.parent.instruction(target, value), Array.prototype.push.apply(this.parent.children, removed), + this; + }, XMLNode.prototype.instructionAfter = function(target, value) { + var i, removed; + return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i + 1), + this.parent.instruction(target, value), Array.prototype.push.apply(this.parent.children, removed), + this; + }, XMLNode.prototype.declaration = function(version, encoding, standalone) { + var doc, xmldec; + return doc = this.document(), xmldec = new XMLDeclaration(doc, version, encoding, standalone), + 0 === doc.children.length ? doc.children.unshift(xmldec) : doc.children[0].type === NodeType.Declaration ? doc.children[0] = xmldec : doc.children.unshift(xmldec), + doc.root() || doc; + }, XMLNode.prototype.dtd = function(pubID, sysID) { + var doc, doctype, i, j, k, len, len1, ref2, ref3; + for (doc = this.document(), doctype = new XMLDocType(doc, pubID, sysID), i = j = 0, + len = (ref2 = doc.children).length; j < len; i = ++j) if (ref2[i].type === NodeType.DocType) return doc.children[i] = doctype, + doctype; + for (i = k = 0, len1 = (ref3 = doc.children).length; k < len1; i = ++k) if (ref3[i].isRoot) return doc.children.splice(i, 0, doctype), + doctype; + return doc.children.push(doctype), doctype; + }, XMLNode.prototype.up = function() { + if (this.isRoot) throw new Error("The root node has no parent. Use doc() if you need to get the document object."); + return this.parent; + }, XMLNode.prototype.root = function() { + var node; + for (node = this; node; ) { + if (node.type === NodeType.Document) return node.rootObject; + if (node.isRoot) return node; + node = node.parent; + } + }, XMLNode.prototype.document = function() { + var node; + for (node = this; node; ) { + if (node.type === NodeType.Document) return node; + node = node.parent; + } + }, XMLNode.prototype.end = function(options) { + return this.document().end(options); + }, XMLNode.prototype.prev = function() { + var i; + if ((i = this.parent.children.indexOf(this)) < 1) throw new Error("Already at the first node. " + this.debugInfo()); + return this.parent.children[i - 1]; + }, XMLNode.prototype.next = function() { + var i; + if (-1 === (i = this.parent.children.indexOf(this)) || i === this.parent.children.length - 1) throw new Error("Already at the last node. " + this.debugInfo()); + return this.parent.children[i + 1]; + }, XMLNode.prototype.importDocument = function(doc) { + var clonedRoot; + return (clonedRoot = doc.root().clone()).parent = this, clonedRoot.isRoot = !1, + this.children.push(clonedRoot), this; + }, XMLNode.prototype.debugInfo = function(name) { + var ref2, ref3; + return null != (name = name || this.name) || (null != (ref2 = this.parent) ? ref2.name : void 0) ? null == name ? "parent: <" + this.parent.name + ">" : (null != (ref3 = this.parent) ? ref3.name : void 0) ? "node: <" + name + ">, parent: <" + this.parent.name + ">" : "node: <" + name + ">" : ""; + }, XMLNode.prototype.ele = function(name, attributes, text) { + return this.element(name, attributes, text); + }, XMLNode.prototype.nod = function(name, attributes, text) { + return this.node(name, attributes, text); + }, XMLNode.prototype.txt = function(value) { + return this.text(value); + }, XMLNode.prototype.dat = function(value) { + return this.cdata(value); + }, XMLNode.prototype.com = function(value) { + return this.comment(value); + }, XMLNode.prototype.ins = function(target, value) { + return this.instruction(target, value); + }, XMLNode.prototype.doc = function() { + return this.document(); + }, XMLNode.prototype.dec = function(version, encoding, standalone) { + return this.declaration(version, encoding, standalone); + }, XMLNode.prototype.e = function(name, attributes, text) { + return this.element(name, attributes, text); + }, XMLNode.prototype.n = function(name, attributes, text) { + return this.node(name, attributes, text); + }, XMLNode.prototype.t = function(value) { + return this.text(value); + }, XMLNode.prototype.d = function(value) { + return this.cdata(value); + }, XMLNode.prototype.c = function(value) { + return this.comment(value); + }, XMLNode.prototype.r = function(value) { + return this.raw(value); + }, XMLNode.prototype.i = function(target, value) { + return this.instruction(target, value); + }, XMLNode.prototype.u = function() { + return this.up(); + }, XMLNode.prototype.importXMLBuilder = function(doc) { + return this.importDocument(doc); + }, XMLNode.prototype.replaceChild = function(newChild, oldChild) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLNode.prototype.removeChild = function(oldChild) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLNode.prototype.appendChild = function(newChild) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLNode.prototype.hasChildNodes = function() { + return 0 !== this.children.length; + }, XMLNode.prototype.cloneNode = function(deep) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLNode.prototype.normalize = function() { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLNode.prototype.isSupported = function(feature, version) { + return !0; + }, XMLNode.prototype.hasAttributes = function() { + return 0 !== this.attribs.length; + }, XMLNode.prototype.compareDocumentPosition = function(other) { + var res; + return this === other ? 0 : this.document() !== other.document() ? (res = DocumentPosition.Disconnected | DocumentPosition.ImplementationSpecific, + Math.random() < .5 ? res |= DocumentPosition.Preceding : res |= DocumentPosition.Following, + res) : this.isAncestor(other) ? DocumentPosition.Contains | DocumentPosition.Preceding : this.isDescendant(other) ? DocumentPosition.Contains | DocumentPosition.Following : this.isPreceding(other) ? DocumentPosition.Preceding : DocumentPosition.Following; + }, XMLNode.prototype.isSameNode = function(other) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLNode.prototype.lookupPrefix = function(namespaceURI) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLNode.prototype.isDefaultNamespace = function(namespaceURI) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLNode.prototype.lookupNamespaceURI = function(prefix) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLNode.prototype.isEqualNode = function(node) { + var i, j, ref2; + if (node.nodeType !== this.nodeType) return !1; + if (node.children.length !== this.children.length) return !1; + for (i = j = 0, ref2 = this.children.length - 1; 0 <= ref2 ? j <= ref2 : j >= ref2; i = 0 <= ref2 ? ++j : --j) if (!this.children[i].isEqualNode(node.children[i])) return !1; + return !0; + }, XMLNode.prototype.getFeature = function(feature, version) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLNode.prototype.setUserData = function(key, data, handler) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLNode.prototype.getUserData = function(key) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLNode.prototype.contains = function(other) { + return !!other && (other === this || this.isDescendant(other)); + }, XMLNode.prototype.isDescendant = function(node) { + var child, j, len, ref2; + for (j = 0, len = (ref2 = this.children).length; j < len; j++) { + if (node === (child = ref2[j])) return !0; + if (child.isDescendant(node)) return !0; + } + return !1; + }, XMLNode.prototype.isAncestor = function(node) { + return node.isDescendant(this); + }, XMLNode.prototype.isPreceding = function(node) { + var nodePos, thisPos; + return nodePos = this.treePosition(node), thisPos = this.treePosition(this), -1 !== nodePos && -1 !== thisPos && nodePos < thisPos; + }, XMLNode.prototype.isFollowing = function(node) { + var nodePos, thisPos; + return nodePos = this.treePosition(node), thisPos = this.treePosition(this), -1 !== nodePos && -1 !== thisPos && nodePos > thisPos; + }, XMLNode.prototype.treePosition = function(node) { + var found, pos; + return pos = 0, found = !1, this.foreachTreeNode(this.document(), (function(childNode) { + if (pos++, !found && childNode === node) return found = !0; + })), found ? pos : -1; + }, XMLNode.prototype.foreachTreeNode = function(node, func) { + var child, j, len, ref2, res; + for (node || (node = this.document()), j = 0, len = (ref2 = node.children).length; j < len; j++) { + if (res = func(child = ref2[j])) return res; + if (res = this.foreachTreeNode(child, func)) return res; + } + }, XMLNode; + })(); + }).call(this); +}, function(module, exports) { + module.exports = require("zlib"); +}, function(module, exports, __webpack_require__) { + var tty = __webpack_require__(117); module.exports = function(name) { function disabled() {} disabled.enabled = !1; @@ -8259,12 +8597,43 @@ return val instanceof Error ? val.stack || val.message : val; } }, function(module, exports, __webpack_require__) { - "undefined" == typeof window ? module.exports = __webpack_require__(40) : module.exports = __webpack_require__(819); -}, function(module, exports) { - module.exports = require("net"); + __webpack_require__(5); + var fs = __webpack_require__(2); + function Mime() { + this.types = Object.create(null), this.extensions = Object.create(null); + } + Mime.prototype.define = function(map) { + for (var type in map) { + for (var exts = map[type], i = 0; i < exts.length; i++) process.env.DEBUG_MIME && this.types[exts[i]] && console.warn((this._loading || "define()").replace(/.*\//, ""), 'changes "' + exts[i] + '" extension type from ' + this.types[exts[i]] + " to " + type), + this.types[exts[i]] = type; + this.extensions[type] || (this.extensions[type] = exts[0]); + } + }, Mime.prototype.load = function(file) { + this._loading = file; + var map = {}; + fs.readFileSync(file, "ascii").split(/[\r\n]+/).forEach((function(line) { + var fields = line.replace(/\s*#.*|^\s*|\s*$/g, "").split(/\s+/); + map[fields.shift()] = fields; + })), this.define(map), this._loading = null; + }, Mime.prototype.lookup = function(path, fallback) { + var ext = path.replace(/.*[\.\/\\]/, "").toLowerCase(); + return this.types[ext] || fallback || this.default_type; + }, Mime.prototype.extension = function(mimeType) { + var type = mimeType.match(/^\s*([^;\s]*)(?:;|\s|$)/)[1].toLowerCase(); + return this.extensions[type]; + }; + var mime = new Mime; + mime.define(__webpack_require__(693)), mime.default_type = mime.lookup("bin"), mime.Mime = Mime, + mime.charsets = { + lookup: function(mimeType, fallback) { + return /^text\/|^application\/(javascript|json)/.test(mimeType) ? "UTF-8" : fallback; + } + }, module.exports = mime; +}, function(module, exports, __webpack_require__) { + "undefined" == typeof window ? module.exports = __webpack_require__(44) : module.exports = __webpack_require__(872); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element = __webpack_require__(407); + var util = __webpack_require__(0), Element = __webpack_require__(441); function Element1(doc, tagId, ebmlId, start, length) { Element.call(this, doc, tagId, ebmlId, start, length); } @@ -8311,11 +8680,9 @@ KeyEncryptedError: KeyEncryptedError, CertificateParseError: CertificateParseError }; -}, function(module, exports) { - module.exports = require("zlib"); }, function(module, exports, __webpack_require__) { "use strict"; - var url = __webpack_require__(6), parse = url.parse, Url = url.Url; + var url = __webpack_require__(7), parse = url.parse, Url = url.Url; function parseurl(req) { var url = req.url; if (void 0 !== url) { @@ -8355,7 +8722,62 @@ return fresh(url, parsed) ? parsed : ((parsed = fastparse(url))._raw = url, req._parsedOriginalUrl = parsed); }; }, function(module, exports, __webpack_require__) { - var callSiteToString = __webpack_require__(248).callSiteToString, eventListenerCount = __webpack_require__(248).eventListenerCount, relative = __webpack_require__(4).relative; + "use strict"; + var deprecate = __webpack_require__(51)("body-parser"), parsers = Object.create(null); + function createParserGetter(name) { + return function() { + return (function(parserName) { + var parser = parsers[parserName]; + if (void 0 !== parser) return parser; + switch (parserName) { + case "json": + parser = __webpack_require__(596); + break; + + case "raw": + parser = __webpack_require__(604); + break; + + case "text": + parser = __webpack_require__(605); + break; + + case "urlencoded": + parser = __webpack_require__(606); + } + return parsers[parserName] = parser; + })(name); + }; + } + exports = module.exports = deprecate.function((function(options) { + var opts = {}; + if (options) for (var prop in options) "type" !== prop && (opts[prop] = options[prop]); + var _urlencoded = exports.urlencoded(opts), _json = exports.json(opts); + return function(req, res, next) { + _json(req, res, (function(err) { + if (err) return next(err); + _urlencoded(req, res, next); + })); + }; + }), "bodyParser: use individual json/urlencoded middlewares"), Object.defineProperty(exports, "json", { + configurable: !0, + enumerable: !0, + get: createParserGetter("json") + }), Object.defineProperty(exports, "raw", { + configurable: !0, + enumerable: !0, + get: createParserGetter("raw") + }), Object.defineProperty(exports, "text", { + configurable: !0, + enumerable: !0, + get: createParserGetter("text") + }), Object.defineProperty(exports, "urlencoded", { + configurable: !0, + enumerable: !0, + get: createParserGetter("urlencoded") + }); +}, function(module, exports, __webpack_require__) { + var callSiteToString = __webpack_require__(284).callSiteToString, eventListenerCount = __webpack_require__(284).eventListenerCount, relative = __webpack_require__(5).relative; module.exports = depd; var basePath = process.cwd(); function containsNamespace(str, namespace) { @@ -8514,10 +8936,40 @@ } }), error; } +}, function(module, exports) { + (function() { + var assign, getValue, isArray, isEmpty, isFunction, isObject, isPlainObject, slice = [].slice, hasProp = {}.hasOwnProperty; + assign = function() { + var i, key, len, source, sources, target; + if (target = arguments[0], sources = 2 <= arguments.length ? slice.call(arguments, 1) : [], + isFunction(Object.assign)) Object.assign.apply(null, arguments); else for (i = 0, + len = sources.length; i < len; i++) if (null != (source = sources[i])) for (key in source) hasProp.call(source, key) && (target[key] = source[key]); + return target; + }, isFunction = function(val) { + return !!val && "[object Function]" === Object.prototype.toString.call(val); + }, isObject = function(val) { + var ref; + return !!val && ("function" == (ref = typeof val) || "object" === ref); + }, isArray = function(val) { + return isFunction(Array.isArray) ? Array.isArray(val) : "[object Array]" === Object.prototype.toString.call(val); + }, isEmpty = function(val) { + var key; + if (isArray(val)) return !val.length; + for (key in val) if (hasProp.call(val, key)) return !1; + return !0; + }, isPlainObject = function(val) { + var ctor, proto; + return isObject(val) && (proto = Object.getPrototypeOf(val)) && (ctor = proto.constructor) && "function" == typeof ctor && ctor instanceof ctor && Function.prototype.toString.call(ctor) === Function.prototype.toString.call(Object); + }, getValue = function(obj) { + return isFunction(obj.valueOf) ? obj.valueOf() : obj; + }, module.exports.assign = assign, module.exports.isFunction = isFunction, module.exports.isObject = isObject, + module.exports.isArray = isArray, module.exports.isEmpty = isEmpty, module.exports.isPlainObject = isPlainObject, + module.exports.getValue = getValue; + }).call(this); }, function(module, exports, __webpack_require__) { module.exports = Signature; - var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, errs = (__webpack_require__(30), - __webpack_require__(9), __webpack_require__(44)), utils = __webpack_require__(27), asn1 = __webpack_require__(49), SSHBuffer = __webpack_require__(100), InvalidAlgorithmError = errs.InvalidAlgorithmError, SignatureParseError = errs.SignatureParseError; + var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, errs = (__webpack_require__(31), + __webpack_require__(6), __webpack_require__(48)), utils = __webpack_require__(28), asn1 = __webpack_require__(54), SSHBuffer = __webpack_require__(112), InvalidAlgorithmError = errs.InvalidAlgorithmError, SignatureParseError = errs.SignatureParseError; function Signature(opts) { assert.object(opts, "options"), assert.arrayOfObject(opts.parts, "options.parts"), assert.string(opts.type, "options.type"); @@ -8710,19 +9162,19 @@ return assert.func(obj.toBuffer), obj.hasOwnProperty("hashAlgorithm") ? [ 2, 0 ] : [ 1, 0 ]; }; }, function(module, exports, __webpack_require__) { - var Ber = __webpack_require__(1054); + var Ber = __webpack_require__(1138); module.exports = { Ber: Ber, BerReader: Ber.Reader, BerWriter: Ber.Writer }; }, function(module, exports, __webpack_require__) { - var extend = __webpack_require__(587); + var extend = __webpack_require__(629); exports.DEFAULT_ANNOUNCE_PEERS = 50, exports.MAX_ANNOUNCE_PEERS = 82, exports.binaryToHex = function(str) { return new Buffer(str, "binary").toString("hex"); }, exports.hexToBinary = function(str) { return new Buffer(str, "hex").toString("binary"); - }, extend(exports, __webpack_require__(588)); + }, extend(exports, __webpack_require__(630)); }, function(module, exports) { module.exports = function(model, calc) { var fn; @@ -8820,7 +9272,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var _TypeError, _RangeError, es5 = __webpack_require__(66), Objectfreeze = es5.freeze, util = __webpack_require__(16), inherits = util.inherits, notEnumerableProp = util.notEnumerableProp; + var _TypeError, _RangeError, es5 = __webpack_require__(75), Objectfreeze = es5.freeze, util = __webpack_require__(16), inherits = util.inherits, notEnumerableProp = util.notEnumerableProp; function subError(nameProperty, defaultMessage) { function SubError(message) { if (!(this instanceof SubError)) return new SubError(message); @@ -8880,6 +9332,67 @@ AggregateError: errorTypes.AggregateError, Warning: Warning }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var extend = __webpack_require__(157), cookies = __webpack_require__(515), paramsHaveRequestBody = __webpack_require__(261).paramsHaveRequestBody; + function initParams(uri, options, callback) { + "function" == typeof options && (callback = options); + var params = {}; + return "object" == typeof options ? extend(params, options, { + uri: uri + }) : extend(params, "string" == typeof uri ? { + uri: uri + } : uri), params.callback = callback || params.callback, params; + } + function request(uri, options, callback) { + if (void 0 === uri) throw new Error("undefined is not a valid uri or options object."); + var params = initParams(uri, options, callback); + if ("HEAD" === params.method && paramsHaveRequestBody(params)) throw new Error("HTTP HEAD requests MUST NOT include a request body."); + return new request.Request(params); + } + function verbFunc(verb) { + var method = verb.toUpperCase(); + return function(uri, options, callback) { + var params = initParams(uri, options, callback); + return params.method = method, request(params, params.callback); + }; + } + function wrapRequestMethod(method, options, requester, verb) { + return function(uri, opts, callback) { + var params = initParams(uri, opts, callback), target = {}; + return extend(!0, target, options, params), target.pool = params.pool || options.pool, + verb && (target.method = verb.toUpperCase()), "function" == typeof requester && (method = requester), + method(target, target.callback); + }; + } + request.get = verbFunc("get"), request.head = verbFunc("head"), request.options = verbFunc("options"), + request.post = verbFunc("post"), request.put = verbFunc("put"), request.patch = verbFunc("patch"), + request.del = verbFunc("delete"), request.delete = verbFunc("delete"), request.jar = function(store) { + return cookies.jar(store); + }, request.cookie = function(str) { + return cookies.parse(str); + }, request.defaults = function(options, requester) { + var self = this; + "function" == typeof (options = options || {}) && (requester = options, options = {}); + var defaults = wrapRequestMethod(self, options, requester); + return [ "get", "head", "post", "put", "patch", "del", "delete" ].forEach((function(verb) { + defaults[verb] = wrapRequestMethod(self[verb], options, requester, verb); + })), defaults.cookie = wrapRequestMethod(self.cookie, options, requester), defaults.jar = self.jar, + defaults.defaults = self.defaults, defaults; + }, request.forever = function(agentOptions, optionsArg) { + var options = {}; + return optionsArg && extend(options, optionsArg), agentOptions && (options.agentOptions = agentOptions), + options.forever = !0, request.defaults(options); + }, module.exports = request, request.Request = __webpack_require__(1132), request.initParams = initParams, + Object.defineProperty(request, "debug", { + enumerable: !0, + get: function() { + return request.Request.debug; + }, + set: function(debug) { + request.Request.debug = debug; + } + }); }, function(module, exports, __webpack_require__) { module.exports = { read: function(buf, options, forceType) { @@ -8967,8 +9480,8 @@ return o += buf.write("-----END " + header + "-----\n", o), buf.slice(0, o); } }; - var assert = __webpack_require__(15), asn1 = __webpack_require__(49), crypto = __webpack_require__(9), Buffer = __webpack_require__(14).Buffer, utils = (__webpack_require__(30), - __webpack_require__(27)), Key = __webpack_require__(26), PrivateKey = __webpack_require__(28), pkcs1 = __webpack_require__(235), pkcs8 = __webpack_require__(101), sshpriv = __webpack_require__(152), rfc4253 = __webpack_require__(57), errors = __webpack_require__(44), OID_TO_CIPHER = { + var assert = __webpack_require__(15), asn1 = __webpack_require__(54), crypto = __webpack_require__(6), Buffer = __webpack_require__(14).Buffer, utils = (__webpack_require__(31), + __webpack_require__(28)), Key = __webpack_require__(27), PrivateKey = __webpack_require__(29), pkcs1 = __webpack_require__(266), pkcs8 = __webpack_require__(113), sshpriv = __webpack_require__(165), rfc4253 = __webpack_require__(63), errors = __webpack_require__(48), OID_TO_CIPHER = { "1.2.840.113549.3.7": "3des-cbc", "2.16.840.1.101.3.4.1.2": "aes128-cbc", "2.16.840.1.101.3.4.1.42": "aes256-cbc" @@ -9006,7 +9519,7 @@ keyTypeToAlg: keyTypeToAlg, algToKeyType: algToKeyType }; - var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(30), utils = __webpack_require__(27), Key = __webpack_require__(26), PrivateKey = __webpack_require__(28), SSHBuffer = __webpack_require__(100); + var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(31), utils = __webpack_require__(28), Key = __webpack_require__(27), PrivateKey = __webpack_require__(29), SSHBuffer = __webpack_require__(112); function algToKeyType(alg) { if (assert.string(alg), "ssh-dss" === alg) return "dsa"; if ("ssh-rsa" === alg) return "rsa"; @@ -9051,7 +9564,7 @@ } }, function(module, exports, __webpack_require__) { "use strict"; - var _TypeError, _RangeError, es5 = __webpack_require__(81), Objectfreeze = es5.freeze, util = __webpack_require__(17), inherits = util.inherits, notEnumerableProp = util.notEnumerableProp; + var _TypeError, _RangeError, es5 = __webpack_require__(92), Objectfreeze = es5.freeze, util = __webpack_require__(17), inherits = util.inherits, notEnumerableProp = util.notEnumerableProp; function subError(nameProperty, defaultMessage) { function SubError(message) { if (!(this instanceof SubError)) return new SubError(message); @@ -9112,7 +9625,7 @@ Warning: Warning }; }, function(module, exports, __webpack_require__) { - var fs$close, fs$closeSync, fs = __webpack_require__(2), polyfills = __webpack_require__(1195), legacy = __webpack_require__(1197), clone = __webpack_require__(1198), queue = [], util = __webpack_require__(0), debug = function() {}; + var fs$close, fs$closeSync, fs = __webpack_require__(2), polyfills = __webpack_require__(1275), legacy = __webpack_require__(1277), clone = __webpack_require__(1278), queue = [], util = __webpack_require__(0), debug = function() {}; function patch(fs) { polyfills(fs), fs.gracefulify = patch, fs.FileReadStream = ReadStream, fs.FileWriteStream = WriteStream, fs.createReadStream = function(path, options) { @@ -9206,7 +9719,7 @@ var m = util.format.apply(util, arguments); m = "GFS4: " + m.split(/\n/).join("\nGFS4: "), console.error(m); }), /\bgfs4\b/i.test(process.env.NODE_DEBUG || "") && process.on("exit", (function() { - debug(queue), __webpack_require__(22).equal(queue.length, 0); + debug(queue), __webpack_require__(25).equal(queue.length, 0); })), module.exports = patch(clone(fs)), process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched && (module.exports = patch(fs), fs.__patched = !0), module.exports.close = (fs$close = fs.close, function(fd, cb) { return fs$close.call(fs, fd, (function(err) { @@ -9217,6 +9730,66 @@ return retry(), rval; }), /\bgraceful-fs\b/.test(fs.closeSync.toString()) || (fs.closeSync = module.exports.closeSync, fs.close = module.exports.close); +}, function(module, exports, __webpack_require__) { + "use strict"; + var Buffer = __webpack_require__(14).Buffer, bomHandling = __webpack_require__(567), iconv = module.exports; + iconv.encodings = null, iconv.defaultCharUnicode = "�", iconv.defaultCharSingleByte = "?", + iconv.encode = function(str, encoding, options) { + str = "" + (str || ""); + var encoder = iconv.getEncoder(encoding, options), res = encoder.write(str), trail = encoder.end(); + return trail && trail.length > 0 ? Buffer.concat([ res, trail ]) : res; + }, iconv.decode = function(buf, encoding, options) { + "string" == typeof buf && (iconv.skipDecodeWarning || (console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"), + iconv.skipDecodeWarning = !0), buf = Buffer.from("" + (buf || ""), "binary")); + var decoder = iconv.getDecoder(encoding, options), res = decoder.write(buf), trail = decoder.end(); + return trail ? res + trail : res; + }, iconv.encodingExists = function(enc) { + try { + return iconv.getCodec(enc), !0; + } catch (e) { + return !1; + } + }, iconv.toEncoding = iconv.encode, iconv.fromEncoding = iconv.decode, iconv._codecDataCache = {}, + iconv.getCodec = function(encoding) { + iconv.encodings || (iconv.encodings = __webpack_require__(568)); + for (var enc = iconv._canonicalizeEncoding(encoding), codecOptions = {}; ;) { + var codec = iconv._codecDataCache[enc]; + if (codec) return codec; + var codecDef = iconv.encodings[enc]; + switch (typeof codecDef) { + case "string": + enc = codecDef; + break; + + case "object": + for (var key in codecDef) codecOptions[key] = codecDef[key]; + codecOptions.encodingName || (codecOptions.encodingName = enc), enc = codecDef.type; + break; + + case "function": + return codecOptions.encodingName || (codecOptions.encodingName = enc), codec = new codecDef(codecOptions, iconv), + iconv._codecDataCache[codecOptions.encodingName] = codec, codec; + + default: + throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '" + enc + "')"); + } + } + }, iconv._canonicalizeEncoding = function(encoding) { + return ("" + encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, ""); + }, iconv.getEncoder = function(encoding, options) { + var codec = iconv.getCodec(encoding), encoder = new codec.encoder(options, codec); + return codec.bomAware && options && options.addBOM && (encoder = new bomHandling.PrependBOM(encoder, options)), + encoder; + }, iconv.getDecoder = function(encoding, options) { + var codec = iconv.getCodec(encoding), decoder = new codec.decoder(options, codec); + return !codec.bomAware || options && !1 === options.stripBOM || (decoder = new bomHandling.StripBOM(decoder, options)), + decoder; + }; + var nodeVer = "undefined" != typeof process && process.versions && process.versions.node; + if (nodeVer) { + var nodeVerArr = nodeVer.split(".").map(Number); + (nodeVerArr[0] > 0 || nodeVerArr[1] >= 10) && __webpack_require__(582)(iconv), __webpack_require__(583)(iconv); + } }, function(module, exports) { module.exports = function(a, b) { if (a && b) for (var key in b) a[key] = b[key]; @@ -9243,47 +9816,323 @@ } }), module.webpackPolyfill = 1), module; }; -}, function(module, exports, __webpack_require__) { - __webpack_require__(4); - var fs = __webpack_require__(2); - function Mime() { - this.types = Object.create(null), this.extensions = Object.create(null); - } - Mime.prototype.define = function(map) { - for (var type in map) { - for (var exts = map[type], i = 0; i < exts.length; i++) process.env.DEBUG_MIME && this.types[exts[i]] && console.warn((this._loading || "define()").replace(/.*\//, ""), 'changes "' + exts[i] + '" extension type from ' + this.types[exts[i]] + " to " + type), - this.types[exts[i]] = type; - this.extensions[type] || (this.extensions[type] = exts[0]); +}, function(module, exports) { + module.exports = require("tls"); +}, function(module, exports) { + module.exports = function(processor, concurrency) { + concurrency = concurrency || 1; + var waiting = [], inProg = {}, count = 0; + function update() { + for (;waiting.length && count < concurrency; ) !(function() { + var t = waiting.shift(); + inProg[t.task.id] ? inProg[t.task.id].push(t.cb) : (inProg[t.task.id] = [ t.cb ], + count++, processor(t.task, (function() { + var args = arguments; + inProg[t.task.id] && (count--, inProg[t.task.id].forEach((function(cb) { + cb.apply(null, args); + })), delete inProg[t.task.id], setImmediate(update)); + }))); + })(); } - }, Mime.prototype.load = function(file) { - this._loading = file; - var map = {}; - fs.readFileSync(file, "ascii").split(/[\r\n]+/).forEach((function(line) { - var fields = line.replace(/\s*#.*|^\s*|\s*$/g, "").split(/\s+/); - map[fields.shift()] = fields; - })), this.define(map), this._loading = null; - }, Mime.prototype.lookup = function(path, fallback) { - var ext = path.replace(/.*[\.\/\\]/, "").toLowerCase(); - return this.types[ext] || fallback || this.default_type; - }, Mime.prototype.extension = function(mimeType) { - var type = mimeType.match(/^\s*([^;\s]*)(?:;|\s|$)/)[1].toLowerCase(); - return this.extensions[type]; + this.push = function(task, cb) { + if (!task.hasOwnProperty("id")) throw new Error("no task.id"); + inProg[task.id] ? inProg[task.id].push(cb) : (waiting.push({ + task: task, + cb: cb + }), setImmediate(update)); + }, this.unshift = function(task, cb) { + inProg[task.id] ? inProg[task.id].push(cb) : (waiting.unshift({ + task: task, + cb: cb + }), setImmediate(update)); + }, this.length = function() { + return waiting.length; + }; }; - var mime = new Mime; - mime.define(__webpack_require__(651)), mime.default_type = mime.lookup("bin"), mime.Mime = Mime, - mime.charsets = { - lookup: function(mimeType, fallback) { - return /^text\/|^application\/(javascript|json)/.test(mimeType) ? "UTF-8" : fallback; - } - }, module.exports = mime; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element = __webpack_require__(274); + var util = __webpack_require__(0), Element = __webpack_require__(307); function Element1(doc, tagId, ebmlId, start, length) { Element.call(this, doc, tagId, ebmlId, start, length); } __webpack_require__(12), __webpack_require__(20), util.inherits(Element1, Element), module.exports = Element1; +}, function(module, exports, __webpack_require__) { + var fs = __webpack_require__(2), http = __webpack_require__(11), https = __webpack_require__(21), url = __webpack_require__(7), stream = __webpack_require__(3), debug = __webpack_require__(720)("needle"), stringify = __webpack_require__(724).build, multipart = __webpack_require__(725), auth = __webpack_require__(726), cookies = __webpack_require__(727), parsers = __webpack_require__(728), decoder = __webpack_require__(729), version = __webpack_require__(730).version, user_agent = "Needle/" + version; + user_agent += " (Node.js " + process.version + "; " + process.platform + " " + process.arch + ")"; + var close_by_default = !http.Agent || http.Agent.defaultMaxSockets != 1 / 0, extend = Object.assign ? Object.assign : __webpack_require__(0)._extend, redirect_codes = [ 301, 302, 303, 307 ], decompressors = {}; + try { + var zlib = __webpack_require__(43); + decompressors["x-deflate"] = zlib.Inflate, decompressors.deflate = zlib.Inflate, + decompressors["x-gzip"] = zlib.Gunzip, decompressors.gzip = zlib.Gunzip; + var zlib_options = { + flush: zlib.Z_SYNC_FLUSH, + finishFlush: zlib.Z_SYNC_FLUSH + }; + } catch (e) {} + var defaults = { + boundary: "--------------------NODENEEDLEHTTPCLIENT", + encoding: "utf8", + parse_response: "all", + proxy: null, + accept: "*/*", + user_agent: user_agent, + open_timeout: 1e4, + response_timeout: 0, + read_timeout: 0, + follow_max: 0, + stream_length: -1, + decode_response: !0, + parse_cookies: !0, + follow_set_cookies: !1, + follow_set_referer: !1, + follow_keep_method: !1, + follow_if_same_host: !1, + follow_if_same_protocol: !1 + }, aliased = { + options: { + decode: "decode_response", + parse: "parse_response", + timeout: "open_timeout", + follow: "follow_max" + }, + inverted: {} + }; + function keys_by_type(type) { + return Object.keys(defaults).map((function(el) { + if (null !== defaults[el] && defaults[el].constructor == type) return el; + })).filter((function(el) { + return el; + })); + } + function is_stream(obj) { + return "function" == typeof obj.pipe; + } + function Needle(method, uri, data, options, callback) { + if ("string" != typeof uri) throw new TypeError("URL must be a string, not " + uri); + this.method = method, this.uri = uri, this.data = data, "function" == typeof options ? (this.callback = options, + this.options = {}) : (this.callback = callback, this.options = options); + } + Object.keys(aliased.options).map((function(k) { + var value = aliased.options[k]; + aliased.inverted[value] = k; + })), Needle.prototype.setup = function(uri, options) { + function get_option(key, fallback) { + return void 0 !== options[key] ? options[key] : void 0 !== options[aliased.inverted[key]] ? options[aliased.inverted[key]] : fallback; + } + function check_value(expected, key) { + var value = get_option(key), type = typeof value; + if ("undefined" != type && type != expected) throw new TypeError(type + " received for " + key + ", but expected a " + expected); + return type == expected ? value : defaults[key]; + } + var config = { + http_opts: { + localAddress: get_option("localAddress", void 0) + }, + output: options.output, + proxy: get_option("proxy", defaults.proxy), + parser: get_option("parse_response", defaults.parse_response), + encoding: options.encoding || (options.multipart ? "binary" : defaults.encoding) + }; + if (keys_by_type(Boolean).forEach((function(key) { + config[key] = check_value("boolean", key); + })), keys_by_type(Number).forEach((function(key) { + config[key] = check_value("number", key); + })), "agent pfx key passphrase cert ca ciphers rejectUnauthorized secureProtocol checkServerIdentity".split(" ").forEach((function(key) { + void 0 !== options[key] && (config.http_opts[key] = options[key], void 0 === options.agent && (config.http_opts.agent = !1)); + })), config.headers = { + accept: options.accept || defaults.accept, + "user-agent": options.user_agent || defaults.user_agent + }, options.content_type && (config.headers["content-type"] = options.content_type), + (options.connection || close_by_default) && (config.headers.connection = options.connection || "close"), + (options.compressed || defaults.compressed) && void 0 !== zlib && (config.headers["accept-encoding"] = "gzip,deflate"), + options.cookies && (config.headers.cookie = cookies.write(options.cookies)), uri.match(/[^\/]@/)) { + var parts = (url.parse(uri).auth || "").split(":"); + options.username = parts[0], options.password = parts[1]; + } + if (options.username && (!options.auth || "auto" != options.auth && "digest" != options.auth ? config.headers.authorization = auth.basic(options.username, options.password) : config.credentials = [ options.username, options.password ]), + config.proxy) { + if (-1 === config.proxy.indexOf("http") && (config.proxy = "http://" + config.proxy), + -1 !== config.proxy.indexOf("@")) { + var proxy = (url.parse(config.proxy).auth || "").split(":"); + options.proxy_user = proxy[0], options.proxy_pass = proxy[1]; + } + options.proxy_user && (config.headers["proxy-authorization"] = auth.basic(options.proxy_user, options.proxy_pass)); + } + for (var h in options.headers) config.headers[h.toLowerCase()] = options.headers[h]; + return config; + }, Needle.prototype.start = function() { + var out = new stream.PassThrough({ + objectMode: !1 + }), uri = this.uri, data = this.data, method = this.method, callback = "function" == typeof this.options ? this.options : this.callback, options = this.options || {}; + -1 === uri.indexOf("http") && (uri = uri.replace(/^(\/\/)?/, "http://")); + var body, self = this, waiting = !1, config = this.setup(uri, options), json = options.json || !1 !== options.json && "application/json" == config.headers["content-type"]; + if (data) if (options.multipart) { + var boundary = options.boundary || defaults.boundary; + waiting = !0, multipart.build(data, boundary, (function(err, parts) { + if (err) throw err; + config.headers["content-type"] = "multipart/form-data; boundary=" + boundary, next(parts); + })); + } else if (is_stream(data)) { + if ("GET" == method.toUpperCase()) throw new Error("Refusing to pipe() a stream via GET. Did you mean .post?"); + config.stream_length > 0 || 0 === config.stream_length && data.path ? (waiting = !0, + (function(stream, given_length, cb) { + given_length > 0 ? cb(given_length) : void 0 !== stream.end && stream.end !== 1 / 0 && void 0 !== stream.start ? cb(stream.end + 1 - (stream.start || 0)) : fs.stat(stream.path, (function(err, stat) { + cb(stat ? stat.size - (stream.start || 0) : null); + })); + })(data, config.stream_length, (function(length) { + data.length = length, next(data); + }))) : body = data; + } else Buffer.isBuffer(data) ? body = data : "GET" != method.toUpperCase() || json ? (body = "string" == typeof data ? data : json ? JSON.stringify(data) : stringify(data), + body = Buffer.from(body, config.encoding)) : uri = uri.replace(/\?.*|$/, "?" + stringify(data)); + function next(body) { + body && (body.length && (config.headers["content-length"] = body.length), config.headers["content-type"] || (config.headers["content-type"] = json ? "application/json; charset=utf-8" : "application/x-www-form-urlencoded")), + !options.json || options.accept || (options.headers || {}).accept || (config.headers.accept = "application/json"), + self.send_request(1, method, uri, config, body, out, callback); + } + return waiting || next(body), out; + }, Needle.prototype.get_request_opts = function(method, uri, config) { + var opts = config.http_opts, proxy = config.proxy, remote = proxy ? url.parse(proxy) : url.parse(uri); + if (opts.protocol = remote.protocol, opts.host = remote.hostname, opts.port = remote.port || ("https:" == remote.protocol ? 443 : 80), + opts.path = proxy ? uri : remote.pathname + (remote.search || ""), opts.method = method, + opts.headers = config.headers, !opts.headers.host) { + var target = proxy ? url.parse(uri) : remote; + opts.headers.host = target.hostname, target.port && -1 === [ 80, 443 ].indexOf(target.port) && (opts.headers.host += ":" + target.port); + } + return opts; + }, Needle.prototype.should_follow = function(location, config, original) { + if (!location) return !1; + function matches(property) { + return property = original[property], -1 !== location.indexOf(property); + } + return !(location === original || config.follow_if_same_host && !matches("host") || config.follow_if_same_protocol && !matches("protocol")); + }, Needle.prototype.send_request = function(count, method, uri, config, post_data, out, callback) { + var timer, returned = 0, self = this, request_opts = this.get_request_opts(method, uri, config), protocol = "https:" == request_opts.protocol ? https : http; + function done(err, resp) { + return returned++ > 0 ? debug("Already finished, stopping here.") : (timer && clearTimeout(timer), + request.removeListener("error", had_error), callback ? callback(err, resp, resp ? resp.body : void 0) : void out.emit("done", err)); + } + function had_error(err) { + debug("Request error", err), out.emit("err", err), done(err || new Error("Unknown error when making request.")); + } + function set_timeout(type, milisecs) { + timer && clearTimeout(timer), milisecs <= 0 || (timer = setTimeout((function() { + out.emit("timeout", type), request.abort(), "read" == type && done(new Error(type + " timeout")); + }), milisecs)); + } + function on_socket_end() { + this.writable || !1 !== this.destroyed || (this.destroy(), had_error(new Error("Remote end closed socket abruptly."))); + } + debug("Making request #" + count, request_opts); + var request = protocol.request(request_opts, (function(resp) { + var headers = resp.headers; + if (debug("Got response", resp.statusCode, headers), out.emit("response", resp), + set_timeout("read", config.read_timeout), config.parse_cookies && (headers["set-cookie"] || config.stored_cookies) && (resp.cookies = extend(config.stored_cookies || {}, cookies.read(headers["set-cookie"])), + debug("Got cookies", resp.cookies)), -1 !== redirect_codes.indexOf(resp.statusCode) && self.should_follow(headers.location, config, uri)) { + if (clearTimeout(timer), count <= config.follow_max) return out.emit("redirect", headers.location), + config.follow_keep_method || (method = "GET", post_data = null, delete config.headers["content-length"]), + config.follow_set_cookies && resp.cookies && (config.stored_cookies = resp.cookies, + config.headers.cookie = cookies.write(resp.cookies)), config.follow_set_referer && (config.headers.referer = encodeURI(uri)), + config.headers.host = null, debug("Redirecting to " + url.resolve(uri, headers.location)), + self.send_request(++count, method, url.resolve(uri, headers.location), config, post_data, out, callback); + if (config.follow_max > 0) return done(new Error("Max redirects reached. Possible loop in: " + headers.location)); + } + if (401 == resp.statusCode && headers["www-authenticate"] && config.credentials && !config.headers.authorization) { + var auth_header = auth.header(headers["www-authenticate"], config.credentials, request_opts); + if (auth_header) return config.headers.authorization = auth_header, self.send_request(count, method, uri, config, post_data, out, callback); + } + out.emit("header", resp.statusCode, headers), out.emit("headers", headers); + var pipeline = [], mime = (function(header) { + if (!header || "" === header) return {}; + var found, charset = "iso-8859-1", arr = header.split(";"); + return arr.length > 1 && (found = arr[1].match(/charset=(.+)/)) && (charset = found[1]), + { + type: arr[0], + charset: charset + }; + })(headers["content-type"]), text_response = mime.type && -1 != mime.type.indexOf("text/"); + if (headers["content-encoding"] && decompressors[headers["content-encoding"]]) { + var decompressor = decompressors[headers["content-encoding"]](zlib_options); + decompressor.on("error", had_error), pipeline.push(decompressor); + } + if (config.parser && parsers[mime.type]) { + var parser_name = config.parser.toString().toLowerCase(); + -1 != [ "xml", "json" ].indexOf(parser_name) && parsers[mime.type].name != parser_name || (out.parser = parsers[mime.type].name, + pipeline.push(parsers[mime.type].fn()), out._writableState.objectMode = !0, out._readableState.objectMode = !0); + } else text_response && config.decode_response && mime.charset && !mime.charset.match(/utf-?8$/i) && pipeline.push(decoder(mime.charset)); + pipeline.push(out); + for (var tmp = resp; pipeline.length; ) tmp = tmp.pipe(pipeline.shift()); + if (config.output && 200 == resp.statusCode) { + var file = fs.createWriteStream(config.output); + file.on("error", had_error), out.on("end", (function() { + file.writable && file.end(); + })), file.on("close", (function() { + delete out.file; + })), out.on("readable", (function() { + for (var chunk; null !== (chunk = this.read()); ) file.writable && file.write(chunk), + resp.body && resp.body.push(chunk); + })), out.file = file; + } + if (callback) { + resp.raw = [], resp.body = [], resp.bytes = 0; + var clean_pipe = new stream.PassThrough; + resp.pipe(clean_pipe), clean_pipe.on("readable", (function() { + for (var chunk; null != (chunk = this.read()); ) resp.bytes += chunk.length, resp.raw.push(chunk); + })), config.output && 200 == resp.statusCode || out.on("readable", (function() { + for (var chunk; null !== (chunk = this.read()); ) "string" == typeof chunk && (chunk = Buffer.from(chunk)), + resp.body.push(chunk); + })); + } + out.on("end", (function() { + resp.body && (resp.raw = Buffer.concat(resp.raw), void 0 === resp.body[0] || Buffer.isBuffer(resp.body[0]) ? (resp.body = Buffer.concat(resp.body), + (text_response || out.parser) && (resp.body = resp.body.toString())) : (resp.body = resp.body[0], + out.parser && (resp.parser = out.parser))), out.file ? out.file.on("close", (function() { + done(null, resp, resp.body); + })) : done(null, resp, resp.body); + })); + })); + return set_timeout("open", config.open_timeout), request.on("error", had_error), + request.once("abort", (function() { + timer && clearTimeout(timer); + })), request.once("socket", (function(socket) { + socket.connecting ? socket.once("connect", (function() { + set_timeout("response", config.response_timeout); + })) : set_timeout("response", config.response_timeout), socket.on_socket_end || (socket.on_socket_end = on_socket_end, + socket.once("end", (function() { + process.nextTick(on_socket_end.bind(socket)); + }))); + })), post_data ? is_stream(post_data) ? post_data.pipe(request) : (request.write(post_data, config.encoding), + request.end()) : request.end(), out.request = request, out; + }, "undefined" != typeof Promise && (module.exports = function() { + var verb, args = [].slice.call(arguments); + return (verb = args[0].match(/\.|\//) ? args.length > 2 ? "post" : "get" : args.shift()).match(/get|head/) && 2 == args.length && args.splice(1, 0, null), + new Promise((function(resolve, reject) { + module.exports.request(verb, args[0], args[1], args[2], (function(err, resp) { + return err ? reject(err) : resolve(resp); + })); + })); + }), module.exports.version = version, module.exports.defaults = function(obj) { + for (var key in obj) { + var target_key = aliased.options[key] || key; + if (!defaults.hasOwnProperty(target_key) || void 0 === obj[key]) throw new Error("Invalid property for defaults:" + target_key); + if ("parse_response" != target_key && "proxy" != target_key) { + var valid_type = defaults[target_key].constructor.name; + if (obj[key].constructor.name != valid_type) throw new TypeError("Invalid type for " + key + ", should be " + valid_type); + } + defaults[target_key] = obj[key]; + } + return defaults; + }, "head get".split(" ").forEach((function(method) { + module.exports[method] = function(uri, options, callback) { + return new Needle(method, uri, null, options, callback).start(); + }; + })), "post put patch delete".split(" ").forEach((function(method) { + module.exports[method] = function(uri, data, options, callback) { + return new Needle(method, uri, data, options, callback).start(); + }; + })), module.exports.request = function(method, uri, data, opts, callback) { + return new Needle(method, uri, data, opts, callback).start(); + }; }, function(module, exports, __webpack_require__) { "use strict"; const codes = {}; @@ -9392,7 +10241,7 @@ } }, function(module, exports, __webpack_require__) { "use strict"; - var Buffer = __webpack_require__(25).Buffer, contentDisposition = __webpack_require__(460), contentType = __webpack_require__(107), deprecate = __webpack_require__(47)("express"), flatten = __webpack_require__(149), mime = __webpack_require__(226).mime, etag = __webpack_require__(461), proxyaddr = __webpack_require__(463), qs = __webpack_require__(160), querystring = __webpack_require__(24); + var Buffer = __webpack_require__(26).Buffer, contentDisposition = __webpack_require__(494), contentType = __webpack_require__(118), deprecate = __webpack_require__(51)("express"), flatten = __webpack_require__(159), mime = __webpack_require__(242).mime, etag = __webpack_require__(495), proxyaddr = __webpack_require__(497), qs = __webpack_require__(177), querystring = __webpack_require__(24); function createETagGenerator(options) { return function(body, encoding) { var buf = Buffer.isBuffer(body) ? body : Buffer.from(body, encoding); @@ -9493,69 +10342,280 @@ return parsed.parameters.charset = charset, contentType.format(parsed); }; }, function(module, exports, __webpack_require__) { - "use strict"; - var Buffer = __webpack_require__(14).Buffer, bomHandling = __webpack_require__(521), iconv = module.exports; - iconv.encodings = null, iconv.defaultCharUnicode = "�", iconv.defaultCharSingleByte = "?", - iconv.encode = function(str, encoding, options) { - str = "" + (str || ""); - var encoder = iconv.getEncoder(encoding, options), res = encoder.write(str), trail = encoder.end(); - return trail && trail.length > 0 ? Buffer.concat([ res, trail ]) : res; - }, iconv.decode = function(buf, encoding, options) { - "string" == typeof buf && (iconv.skipDecodeWarning || (console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"), - iconv.skipDecodeWarning = !0), buf = Buffer.from("" + (buf || ""), "binary")); - var decoder = iconv.getDecoder(encoding, options), res = decoder.write(buf), trail = decoder.end(); - return trail ? res + trail : res; - }, iconv.encodingExists = function(enc) { - try { - return iconv.getCodec(enc), !0; - } catch (e) { - return !1; + var __WEBPACK_AMD_DEFINE_RESULT__, LZString = (function() { + var f = String.fromCharCode, keyStrBase64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", keyStrUriSafe = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$", baseReverseDic = {}; + function getBaseValue(alphabet, character) { + if (!baseReverseDic[alphabet]) { + baseReverseDic[alphabet] = {}; + for (var i = 0; i < alphabet.length; i++) baseReverseDic[alphabet][alphabet.charAt(i)] = i; + } + return baseReverseDic[alphabet][character]; } - }, iconv.toEncoding = iconv.encode, iconv.fromEncoding = iconv.decode, iconv._codecDataCache = {}, - iconv.getCodec = function(encoding) { - iconv.encodings || (iconv.encodings = __webpack_require__(522)); - for (var enc = iconv._canonicalizeEncoding(encoding), codecOptions = {}; ;) { - var codec = iconv._codecDataCache[enc]; - if (codec) return codec; - var codecDef = iconv.encodings[enc]; - switch (typeof codecDef) { - case "string": - enc = codecDef; - break; + var LZString = { + compressToBase64: function(input) { + if (null == input) return ""; + var res = LZString._compress(input, 6, (function(a) { + return keyStrBase64.charAt(a); + })); + switch (res.length % 4) { + default: + case 0: + return res; - case "object": - for (var key in codecDef) codecOptions[key] = codecDef[key]; - codecOptions.encodingName || (codecOptions.encodingName = enc), enc = codecDef.type; - break; + case 1: + return res + "==="; - case "function": - return codecOptions.encodingName || (codecOptions.encodingName = enc), codec = new codecDef(codecOptions, iconv), - iconv._codecDataCache[codecOptions.encodingName] = codec, codec; + case 2: + return res + "=="; - default: - throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '" + enc + "')"); + case 3: + return res + "="; + } + }, + decompressFromBase64: function(input) { + return null == input ? "" : "" == input ? null : LZString._decompress(input.length, 32, (function(index) { + return getBaseValue(keyStrBase64, input.charAt(index)); + })); + }, + compressToUTF16: function(input) { + return null == input ? "" : LZString._compress(input, 15, (function(a) { + return f(a + 32); + })) + " "; + }, + decompressFromUTF16: function(compressed) { + return null == compressed ? "" : "" == compressed ? null : LZString._decompress(compressed.length, 16384, (function(index) { + return compressed.charCodeAt(index) - 32; + })); + }, + compressToUint8Array: function(uncompressed) { + for (var compressed = LZString.compress(uncompressed), buf = new Uint8Array(2 * compressed.length), i = 0, TotalLen = compressed.length; i < TotalLen; i++) { + var current_value = compressed.charCodeAt(i); + buf[2 * i] = current_value >>> 8, buf[2 * i + 1] = current_value % 256; + } + return buf; + }, + decompressFromUint8Array: function(compressed) { + if (null == compressed) return LZString.decompress(compressed); + for (var buf = new Array(compressed.length / 2), i = 0, TotalLen = buf.length; i < TotalLen; i++) buf[i] = 256 * compressed[2 * i] + compressed[2 * i + 1]; + var result = []; + return buf.forEach((function(c) { + result.push(f(c)); + })), LZString.decompress(result.join("")); + }, + compressToEncodedURIComponent: function(input) { + return null == input ? "" : LZString._compress(input, 6, (function(a) { + return keyStrUriSafe.charAt(a); + })); + }, + decompressFromEncodedURIComponent: function(input) { + return null == input ? "" : "" == input ? null : (input = input.replace(/ /g, "+"), + LZString._decompress(input.length, 32, (function(index) { + return getBaseValue(keyStrUriSafe, input.charAt(index)); + }))); + }, + compress: function(uncompressed) { + return LZString._compress(uncompressed, 16, (function(a) { + return f(a); + })); + }, + _compress: function(uncompressed, bitsPerChar, getCharFromInt) { + if (null == uncompressed) return ""; + var i, value, ii, context_dictionary = {}, context_dictionaryToCreate = {}, context_c = "", context_wc = "", context_w = "", context_enlargeIn = 2, context_dictSize = 3, context_numBits = 2, context_data = [], context_data_val = 0, context_data_position = 0; + for (ii = 0; ii < uncompressed.length; ii += 1) if (context_c = uncompressed.charAt(ii), + Object.prototype.hasOwnProperty.call(context_dictionary, context_c) || (context_dictionary[context_c] = context_dictSize++, + context_dictionaryToCreate[context_c] = !0), context_wc = context_w + context_c, + Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) context_w = context_wc; else { + if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) { + if (context_w.charCodeAt(0) < 256) { + for (i = 0; i < context_numBits; i++) context_data_val <<= 1, context_data_position == bitsPerChar - 1 ? (context_data_position = 0, + context_data.push(getCharFromInt(context_data_val)), context_data_val = 0) : context_data_position++; + for (value = context_w.charCodeAt(0), i = 0; i < 8; i++) context_data_val = context_data_val << 1 | 1 & value, + context_data_position == bitsPerChar - 1 ? (context_data_position = 0, context_data.push(getCharFromInt(context_data_val)), + context_data_val = 0) : context_data_position++, value >>= 1; + } else { + for (value = 1, i = 0; i < context_numBits; i++) context_data_val = context_data_val << 1 | value, + context_data_position == bitsPerChar - 1 ? (context_data_position = 0, context_data.push(getCharFromInt(context_data_val)), + context_data_val = 0) : context_data_position++, value = 0; + for (value = context_w.charCodeAt(0), i = 0; i < 16; i++) context_data_val = context_data_val << 1 | 1 & value, + context_data_position == bitsPerChar - 1 ? (context_data_position = 0, context_data.push(getCharFromInt(context_data_val)), + context_data_val = 0) : context_data_position++, value >>= 1; + } + 0 == --context_enlargeIn && (context_enlargeIn = Math.pow(2, context_numBits), context_numBits++), + delete context_dictionaryToCreate[context_w]; + } else for (value = context_dictionary[context_w], i = 0; i < context_numBits; i++) context_data_val = context_data_val << 1 | 1 & value, + context_data_position == bitsPerChar - 1 ? (context_data_position = 0, context_data.push(getCharFromInt(context_data_val)), + context_data_val = 0) : context_data_position++, value >>= 1; + 0 == --context_enlargeIn && (context_enlargeIn = Math.pow(2, context_numBits), context_numBits++), + context_dictionary[context_wc] = context_dictSize++, context_w = String(context_c); + } + if ("" !== context_w) { + if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) { + if (context_w.charCodeAt(0) < 256) { + for (i = 0; i < context_numBits; i++) context_data_val <<= 1, context_data_position == bitsPerChar - 1 ? (context_data_position = 0, + context_data.push(getCharFromInt(context_data_val)), context_data_val = 0) : context_data_position++; + for (value = context_w.charCodeAt(0), i = 0; i < 8; i++) context_data_val = context_data_val << 1 | 1 & value, + context_data_position == bitsPerChar - 1 ? (context_data_position = 0, context_data.push(getCharFromInt(context_data_val)), + context_data_val = 0) : context_data_position++, value >>= 1; + } else { + for (value = 1, i = 0; i < context_numBits; i++) context_data_val = context_data_val << 1 | value, + context_data_position == bitsPerChar - 1 ? (context_data_position = 0, context_data.push(getCharFromInt(context_data_val)), + context_data_val = 0) : context_data_position++, value = 0; + for (value = context_w.charCodeAt(0), i = 0; i < 16; i++) context_data_val = context_data_val << 1 | 1 & value, + context_data_position == bitsPerChar - 1 ? (context_data_position = 0, context_data.push(getCharFromInt(context_data_val)), + context_data_val = 0) : context_data_position++, value >>= 1; + } + 0 == --context_enlargeIn && (context_enlargeIn = Math.pow(2, context_numBits), context_numBits++), + delete context_dictionaryToCreate[context_w]; + } else for (value = context_dictionary[context_w], i = 0; i < context_numBits; i++) context_data_val = context_data_val << 1 | 1 & value, + context_data_position == bitsPerChar - 1 ? (context_data_position = 0, context_data.push(getCharFromInt(context_data_val)), + context_data_val = 0) : context_data_position++, value >>= 1; + 0 == --context_enlargeIn && (context_enlargeIn = Math.pow(2, context_numBits), context_numBits++); + } + for (value = 2, i = 0; i < context_numBits; i++) context_data_val = context_data_val << 1 | 1 & value, + context_data_position == bitsPerChar - 1 ? (context_data_position = 0, context_data.push(getCharFromInt(context_data_val)), + context_data_val = 0) : context_data_position++, value >>= 1; + for (;;) { + if (context_data_val <<= 1, context_data_position == bitsPerChar - 1) { + context_data.push(getCharFromInt(context_data_val)); + break; + } + context_data_position++; + } + return context_data.join(""); + }, + decompress: function(compressed) { + return null == compressed ? "" : "" == compressed ? null : LZString._decompress(compressed.length, 32768, (function(index) { + return compressed.charCodeAt(index); + })); + }, + _decompress: function(length, resetValue, getNextValue) { + var i, w, bits, resb, maxpower, power, c, dictionary = [], enlargeIn = 4, dictSize = 4, numBits = 3, entry = "", result = [], data = { + val: getNextValue(0), + position: resetValue, + index: 1 + }; + for (i = 0; i < 3; i += 1) dictionary[i] = i; + for (bits = 0, maxpower = Math.pow(2, 2), power = 1; power != maxpower; ) resb = data.val & data.position, + data.position >>= 1, 0 == data.position && (data.position = resetValue, data.val = getNextValue(data.index++)), + bits |= (resb > 0 ? 1 : 0) * power, power <<= 1; + switch (bits) { + case 0: + for (bits = 0, maxpower = Math.pow(2, 8), power = 1; power != maxpower; ) resb = data.val & data.position, + data.position >>= 1, 0 == data.position && (data.position = resetValue, data.val = getNextValue(data.index++)), + bits |= (resb > 0 ? 1 : 0) * power, power <<= 1; + c = f(bits); + break; + + case 1: + for (bits = 0, maxpower = Math.pow(2, 16), power = 1; power != maxpower; ) resb = data.val & data.position, + data.position >>= 1, 0 == data.position && (data.position = resetValue, data.val = getNextValue(data.index++)), + bits |= (resb > 0 ? 1 : 0) * power, power <<= 1; + c = f(bits); + break; + + case 2: + return ""; + } + for (dictionary[3] = c, w = c, result.push(c); ;) { + if (data.index > length) return ""; + for (bits = 0, maxpower = Math.pow(2, numBits), power = 1; power != maxpower; ) resb = data.val & data.position, + data.position >>= 1, 0 == data.position && (data.position = resetValue, data.val = getNextValue(data.index++)), + bits |= (resb > 0 ? 1 : 0) * power, power <<= 1; + switch (c = bits) { + case 0: + for (bits = 0, maxpower = Math.pow(2, 8), power = 1; power != maxpower; ) resb = data.val & data.position, + data.position >>= 1, 0 == data.position && (data.position = resetValue, data.val = getNextValue(data.index++)), + bits |= (resb > 0 ? 1 : 0) * power, power <<= 1; + dictionary[dictSize++] = f(bits), c = dictSize - 1, enlargeIn--; + break; + + case 1: + for (bits = 0, maxpower = Math.pow(2, 16), power = 1; power != maxpower; ) resb = data.val & data.position, + data.position >>= 1, 0 == data.position && (data.position = resetValue, data.val = getNextValue(data.index++)), + bits |= (resb > 0 ? 1 : 0) * power, power <<= 1; + dictionary[dictSize++] = f(bits), c = dictSize - 1, enlargeIn--; + break; + + case 2: + return result.join(""); + } + if (0 == enlargeIn && (enlargeIn = Math.pow(2, numBits), numBits++), dictionary[c]) entry = dictionary[c]; else { + if (c !== dictSize) return null; + entry = w + w.charAt(0); + } + result.push(entry), dictionary[dictSize++] = w + entry.charAt(0), w = entry, 0 == --enlargeIn && (enlargeIn = Math.pow(2, numBits), + numBits++); + } + } + }; + return LZString; + })(); + void 0 === (__WEBPACK_AMD_DEFINE_RESULT__ = function() { + return LZString; + }.call(exports, __webpack_require__, exports, module)) || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__); +}, function(module, exports, __webpack_require__) { + "use strict"; + var extensions, types, preference, db = __webpack_require__(602), extname = __webpack_require__(5).extname, EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/, TEXT_TYPE_REGEXP = /^text\//i; + function charset(type) { + if (!type || "string" != typeof type) return !1; + var match = EXTRACT_TYPE_REGEXP.exec(type), mime = match && db[match[1].toLowerCase()]; + return mime && mime.charset ? mime.charset : !(!match || !TEXT_TYPE_REGEXP.test(match[1])) && "UTF-8"; + } + exports.charset = charset, exports.charsets = { + lookup: charset + }, exports.contentType = function(str) { + if (!str || "string" != typeof str) return !1; + var mime = -1 === str.indexOf("/") ? exports.lookup(str) : str; + if (!mime) return !1; + if (-1 === mime.indexOf("charset")) { + var charset = exports.charset(mime); + charset && (mime += "; charset=" + charset.toLowerCase()); + } + return mime; + }, exports.extension = function(type) { + if (!type || "string" != typeof type) return !1; + var match = EXTRACT_TYPE_REGEXP.exec(type), exts = match && exports.extensions[match[1].toLowerCase()]; + return !(!exts || !exts.length) && exts[0]; + }, exports.extensions = Object.create(null), exports.lookup = function(path) { + if (!path || "string" != typeof path) return !1; + var extension = extname("x." + path).toLowerCase().substr(1); + return extension && exports.types[extension] || !1; + }, exports.types = Object.create(null), extensions = exports.extensions, types = exports.types, + preference = [ "nginx", "apache", void 0, "iana" ], Object.keys(db).forEach((function(type) { + var mime = db[type], exts = mime.extensions; + if (exts && exts.length) { + extensions[type] = exts; + for (var i = 0; i < exts.length; i++) { + var extension = exts[i]; + if (types[extension]) { + var from = preference.indexOf(db[types[extension]].source), to = preference.indexOf(mime.source); + if ("application/octet-stream" !== types[extension] && (from > to || from === to && "application/" === types[extension].substr(0, 12))) continue; + } + types[extension] = type; } } - }, iconv._canonicalizeEncoding = function(encoding) { - return ("" + encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, ""); - }, iconv.getEncoder = function(encoding, options) { - var codec = iconv.getCodec(encoding), encoder = new codec.encoder(options, codec); - return codec.bomAware && options && options.addBOM && (encoder = new bomHandling.PrependBOM(encoder, options)), - encoder; - }, iconv.getDecoder = function(encoding, options) { - var codec = iconv.getCodec(encoding), decoder = new codec.decoder(options, codec); - return !codec.bomAware || options && !1 === options.stripBOM || (decoder = new bomHandling.StripBOM(decoder, options)), - decoder; - }; - var nodeVer = "undefined" != typeof process && process.versions && process.versions.node; - if (nodeVer) { - var nodeVerArr = nodeVer.split(".").map(Number); - (nodeVerArr[0] > 0 || nodeVerArr[1] >= 10) && __webpack_require__(536)(iconv), __webpack_require__(537)(iconv); - } + })); }, function(module, exports) { module.exports = require("dgram"); }, function(module, exports, __webpack_require__) { - var paths, common = module.exports, once = __webpack_require__(34), child = __webpack_require__(31), eos = __webpack_require__(163); + const vm = __webpack_require__(666); + module.exports = function(str, regex, timeout) { + let sandbox = { + str: str, + re: regex, + result: null + }; + try { + vm.runInContext("result = !!str.match(re);", vm.createContext(sandbox), { + timeout: timeout + }); + } catch (e) { + console.log("Warning: regex " + regex + ' was detected as evil when tested against "' + str + '", ignoring this regex pattern'); + } + return sandbox.result; + }; +}, function(module, exports, __webpack_require__) { + var paths, common = module.exports, once = __webpack_require__(35), child = __webpack_require__(32), eos = __webpack_require__(180); common.servePlaylist = function(lines, res) { lines.push(""), lines = lines.join("\n"), res.setHeader("Content-Type", "application/vnd.apple.mpegurl"), res.setHeader("Content-Length", new Buffer(lines).length), res.statusCode = 200, @@ -9600,18 +10660,18 @@ }; }, function(module, exports, __webpack_require__) { module.exports = { - crc1: __webpack_require__(642), - crc8: __webpack_require__(643), - crc81wire: __webpack_require__(644), - crc16: __webpack_require__(645), - crc16ccitt: __webpack_require__(646), - crc16modbus: __webpack_require__(647), - crc24: __webpack_require__(648), - crc32: __webpack_require__(649) + crc1: __webpack_require__(684), + crc8: __webpack_require__(685), + crc81wire: __webpack_require__(686), + crc16: __webpack_require__(687), + crc16ccitt: __webpack_require__(688), + crc16modbus: __webpack_require__(689), + crc24: __webpack_require__(690), + crc32: __webpack_require__(691) }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), debug = __webpack_require__(40)("matroska:tools"), Schema = __webpack_require__(12), dateformat = __webpack_require__(275), CLASS_A_SIZE = Math.pow(2, 7), CLASS_B_SIZE = Math.pow(2, 14), CLASS_C_SIZE = Math.pow(2, 21), CLASS_D_SIZE = Math.pow(2, 28), CLASS_E_SIZE = Math.pow(2, 35), CLASS_F_SIZE = Math.pow(2, 42), CLASS_G_SIZE = Math.pow(2, 49), MAX_7BITS = (Math.pow(2, 56), + var util = __webpack_require__(0), debug = __webpack_require__(44)("matroska:tools"), Schema = __webpack_require__(12), dateformat = __webpack_require__(308), CLASS_A_SIZE = Math.pow(2, 7), CLASS_B_SIZE = Math.pow(2, 14), CLASS_C_SIZE = Math.pow(2, 21), CLASS_D_SIZE = Math.pow(2, 28), CLASS_E_SIZE = Math.pow(2, 35), CLASS_F_SIZE = Math.pow(2, 42), CLASS_G_SIZE = Math.pow(2, 49), MAX_7BITS = (Math.pow(2, 56), Math.pow(2, 7)), MAX_8BITS = Math.pow(2, 8), MAX_15BITS = Math.pow(2, 15), MAX_16BITS = Math.pow(2, 16), MAX_23BITS = Math.pow(2, 23), MAX_24BITS = Math.pow(2, 24), MAX_31BITS = Math.pow(2, 31), MAX_32BITS = Math.pow(2, 32), MAX_39BITS = Math.pow(2, 39), MAX_40BITS = Math.pow(2, 40), MAX_47BITS = Math.pow(2, 47), MAX_48BITS = Math.pow(2, 48), MAX_53BITS = (Math.pow(2, 52), Math.pow(2, 53)), MAX_55BITS = Math.pow(2, 55), MAX_56BITS = Math.pow(2, 56), BITSn = [ 0, 256, Math.pow(2, 16), Math.pow(2, 24), Math.pow(2, 32), Math.pow(2, 40), Math.pow(2, 48), Math.pow(2, 56) ], BUFFS = [ new Buffer([ 0 ]), new Buffer([ 1 ]), new Buffer([ 2 ]), new Buffer([ 3 ]) ], BUFFSV = [ new Buffer([ 128 ]), new Buffer([ 129 ]) ], floatBuf = new Buffer(4), tools = { readVInt: function(buffer, start, ret, keepMask) { @@ -9762,9 +10822,9 @@ var keys = []; for (var key in obj) keys.push(key); return keys; - }, util = __webpack_require__(32); - util.inherits = __webpack_require__(95); - var Readable = __webpack_require__(383), Writable = __webpack_require__(384); + }, util = __webpack_require__(33); + util.inherits = __webpack_require__(8); + var Readable = __webpack_require__(418), Writable = __webpack_require__(419); function Duplex(options) { if (!(this instanceof Duplex)) return new Duplex(options); Readable.call(this, options), Writable.call(this, options), options && !1 === options.readable && (this.readable = !1), @@ -9780,15 +10840,15 @@ })(objectKeys(Writable.prototype)); }, function(module, exports, __webpack_require__) { "use strict"; - var pna = __webpack_require__(53), objectKeys = Object.keys || function(obj) { + var pna = __webpack_require__(58), objectKeys = Object.keys || function(obj) { var keys = []; for (var key in obj) keys.push(key); return keys; }; module.exports = Duplex; - var util = Object.create(__webpack_require__(32)); - util.inherits = __webpack_require__(7); - var Readable = __webpack_require__(391), Writable = __webpack_require__(395); + var util = Object.create(__webpack_require__(33)); + util.inherits = __webpack_require__(8); + var Readable = __webpack_require__(426), Writable = __webpack_require__(430); util.inherits(Duplex, Readable); for (var keys = objectKeys(Writable.prototype), v = 0; v < keys.length; v++) { var method = keys[v]; @@ -9824,7 +10884,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), debug = __webpack_require__(41)("matroska:tools"), Schema = __webpack_require__(13), dateformat = __webpack_require__(275), CLASS_A_SIZE = Math.pow(2, 7), CLASS_B_SIZE = Math.pow(2, 14), CLASS_C_SIZE = Math.pow(2, 21), CLASS_D_SIZE = Math.pow(2, 28), CLASS_E_SIZE = Math.pow(2, 35), CLASS_F_SIZE = Math.pow(2, 42), CLASS_G_SIZE = Math.pow(2, 49), MAX_7BITS = (Math.pow(2, 56), + var util = __webpack_require__(0), debug = __webpack_require__(46)("matroska:tools"), Schema = __webpack_require__(13), dateformat = __webpack_require__(308), CLASS_A_SIZE = Math.pow(2, 7), CLASS_B_SIZE = Math.pow(2, 14), CLASS_C_SIZE = Math.pow(2, 21), CLASS_D_SIZE = Math.pow(2, 28), CLASS_E_SIZE = Math.pow(2, 35), CLASS_F_SIZE = Math.pow(2, 42), CLASS_G_SIZE = Math.pow(2, 49), MAX_7BITS = (Math.pow(2, 56), Math.pow(2, 7)), MAX_8BITS = Math.pow(2, 8), MAX_15BITS = Math.pow(2, 15), MAX_16BITS = Math.pow(2, 16), MAX_23BITS = Math.pow(2, 23), MAX_24BITS = Math.pow(2, 24), MAX_31BITS = Math.pow(2, 31), MAX_32BITS = Math.pow(2, 32), MAX_39BITS = Math.pow(2, 39), MAX_40BITS = Math.pow(2, 40), MAX_47BITS = Math.pow(2, 47), MAX_48BITS = Math.pow(2, 48), MAX_53BITS = (Math.pow(2, 52), Math.pow(2, 53)), MAX_55BITS = Math.pow(2, 55), MAX_56BITS = Math.pow(2, 56), BITSn = [ 0, 256, Math.pow(2, 16), Math.pow(2, 24), Math.pow(2, 32), Math.pow(2, 40), Math.pow(2, 48), Math.pow(2, 56) ], BUFFS = [ new Buffer([ 0 ]), new Buffer([ 1 ]), new Buffer([ 2 ]), new Buffer([ 3 ]) ], BUFFSV = [ new Buffer([ 128 ]), new Buffer([ 129 ]) ], floatBuf = new Buffer(4), tools = { readVInt: function(buffer, start, ret, keepMask) { @@ -9977,8 +11037,8 @@ return keys; }; module.exports = Duplex; - var Readable = __webpack_require__(423), Writable = __webpack_require__(427); - __webpack_require__(7)(Duplex, Readable); + var Readable = __webpack_require__(457), Writable = __webpack_require__(461); + __webpack_require__(8)(Duplex, Readable); for (var keys = objectKeys(Writable.prototype), v = 0; v < keys.length; v++) { var method = keys[v]; Duplex.prototype[method] || (Duplex.prototype[method] = Writable.prototype[method]); @@ -10025,20 +11085,20 @@ "disable" === process.env.READABLE_STREAM && Stream ? (module.exports = Stream, (exports = module.exports = Stream.Readable).Readable = Stream.Readable, exports.Writable = Stream.Writable, exports.Duplex = Stream.Duplex, exports.Transform = Stream.Transform, exports.PassThrough = Stream.PassThrough, - exports.Stream = Stream) : ((exports = module.exports = __webpack_require__(450)).Stream = Stream || exports, - exports.Readable = exports, exports.Writable = __webpack_require__(453), exports.Duplex = __webpack_require__(78), - exports.Transform = __webpack_require__(455), exports.PassThrough = __webpack_require__(966)); + exports.Stream = Stream) : ((exports = module.exports = __webpack_require__(484)).Stream = Stream || exports, + exports.Readable = exports, exports.Writable = __webpack_require__(487), exports.Duplex = __webpack_require__(89), + exports.Transform = __webpack_require__(489), exports.PassThrough = __webpack_require__(1020)); }, function(module, exports, __webpack_require__) { "use strict"; - var pna = __webpack_require__(53), objectKeys = Object.keys || function(obj) { + var pna = __webpack_require__(58), objectKeys = Object.keys || function(obj) { var keys = []; for (var key in obj) keys.push(key); return keys; }; module.exports = Duplex; - var util = __webpack_require__(32); - util.inherits = __webpack_require__(7); - var Readable = __webpack_require__(450), Writable = __webpack_require__(453); + var util = __webpack_require__(33); + util.inherits = __webpack_require__(107); + var Readable = __webpack_require__(484), Writable = __webpack_require__(487); util.inherits(Duplex, Readable); for (var keys = objectKeys(Writable.prototype), v = 0; v < keys.length; v++) { var method = keys[v]; @@ -10135,8 +11195,8 @@ toHash: toHash, getProperty: getProperty, escapeQuotes: escapeQuotes, - equal: __webpack_require__(239), - ucs2length: __webpack_require__(1086), + equal: __webpack_require__(270), + ucs2length: __webpack_require__(1170), varOccurences: function(str, dataVar) { dataVar += "[^0-9]"; var matches = str.match(new RegExp(dataVar, "g")); @@ -10287,9 +11347,9 @@ } }, function(module, exports, __webpack_require__) { module.exports = Reader; - var fs = __webpack_require__(59), Stream = __webpack_require__(3).Stream, inherits = __webpack_require__(7), path = __webpack_require__(4), getType = __webpack_require__(154), hardLinks = Reader.hardLinks = {}, Abstract = __webpack_require__(243); + var fs = __webpack_require__(65), Stream = __webpack_require__(3).Stream, inherits = __webpack_require__(8), path = __webpack_require__(5), getType = __webpack_require__(168), hardLinks = Reader.hardLinks = {}, Abstract = __webpack_require__(274); inherits(Reader, Abstract); - var LinkReader = __webpack_require__(509); + var LinkReader = __webpack_require__(552); function Reader(props, currentStat) { var type, ClassType; if (!(this instanceof Reader)) return new Reader(props, currentStat); @@ -10299,12 +11359,12 @@ ClassType = Reader), currentStat && !type && (props[type = getType(currentStat)] = !0, props.type = type), type) { case "Directory": - ClassType = __webpack_require__(510); + ClassType = __webpack_require__(553); break; case "Link": case "File": - ClassType = __webpack_require__(511); + ClassType = __webpack_require__(554); break; case "SymbolicLink": @@ -10312,11 +11372,11 @@ break; case "Socket": - ClassType = __webpack_require__(1199); + ClassType = __webpack_require__(1279); break; case null: - ClassType = __webpack_require__(512); + ClassType = __webpack_require__(555); } if (!(this instanceof ClassType)) return new ClassType(props); Abstract.call(this), props.path || this.error("Must provide a path", null, !0), @@ -10450,7 +11510,7 @@ })(msg, attached)), attached.queue.push(listener); })(msg, listener), msg); }, module.exports.isFinished = isFinished; - var first = __webpack_require__(545), defer = "function" == typeof setImmediate ? setImmediate : function(fn) { + var first = __webpack_require__(591), defer = "function" == typeof setImmediate ? setImmediate : function(fn) { process.nextTick(fn.bind.apply(fn, arguments)); }; function isFinished(msg) { @@ -10487,7 +11547,7 @@ } }, function(module, exports, __webpack_require__) { "use strict"; - var deprecate = __webpack_require__(47)("http-errors"), setPrototypeOf = __webpack_require__(108), statuses = __webpack_require__(109), inherits = __webpack_require__(7), toIdentifier = __webpack_require__(553); + var deprecate = __webpack_require__(51)("http-errors"), setPrototypeOf = __webpack_require__(119), statuses = __webpack_require__(120), inherits = __webpack_require__(8), toIdentifier = __webpack_require__(599); function codeClass(status) { return Number(String(status).charAt(0) + "00"); } @@ -10577,7 +11637,7 @@ })(module.exports, statuses.codes, module.exports.HttpError); }, function(module, exports, __webpack_require__) { "use strict"; - var typer = __webpack_require__(555), mime = __webpack_require__(89); + var typer = __webpack_require__(601), mime = __webpack_require__(78); function typeis(value, types_) { var i, type, types = types_, val = tryNormalizeType(value); if (!val) return !1; @@ -10628,48 +11688,6 @@ return typeis(value, types); }, module.exports.is = typeis, module.exports.hasBody = hasbody, module.exports.normalize = normalize, module.exports.match = mimeMatch; -}, function(module, exports, __webpack_require__) { - "use strict"; - var extensions, types, preference, db = __webpack_require__(556), extname = __webpack_require__(4).extname, EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/, TEXT_TYPE_REGEXP = /^text\//i; - function charset(type) { - if (!type || "string" != typeof type) return !1; - var match = EXTRACT_TYPE_REGEXP.exec(type), mime = match && db[match[1].toLowerCase()]; - return mime && mime.charset ? mime.charset : !(!match || !TEXT_TYPE_REGEXP.test(match[1])) && "UTF-8"; - } - exports.charset = charset, exports.charsets = { - lookup: charset - }, exports.contentType = function(str) { - if (!str || "string" != typeof str) return !1; - var mime = -1 === str.indexOf("/") ? exports.lookup(str) : str; - if (!mime) return !1; - if (-1 === mime.indexOf("charset")) { - var charset = exports.charset(mime); - charset && (mime += "; charset=" + charset.toLowerCase()); - } - return mime; - }, exports.extension = function(type) { - if (!type || "string" != typeof type) return !1; - var match = EXTRACT_TYPE_REGEXP.exec(type), exts = match && exports.extensions[match[1].toLowerCase()]; - return !(!exts || !exts.length) && exts[0]; - }, exports.extensions = Object.create(null), exports.lookup = function(path) { - if (!path || "string" != typeof path) return !1; - var extension = extname("x." + path).toLowerCase().substr(1); - return extension && exports.types[extension] || !1; - }, exports.types = Object.create(null), extensions = exports.extensions, types = exports.types, - preference = [ "nginx", "apache", void 0, "iana" ], Object.keys(db).forEach((function(type) { - var mime = db[type], exts = mime.extensions; - if (exts && exts.length) { - extensions[type] = exts; - for (var i = 0; i < exts.length; i++) { - var extension = exts[i]; - if (types[extension]) { - var from = preference.indexOf(db[types[extension]].source), to = preference.indexOf(mime.source); - if ("application/octet-stream" !== types[extension] && (from > to || from === to && "application/" === types[extension].substr(0, 12))) continue; - } - types[extension] = type; - } - } - })); }, function(module, exports, __webpack_require__) { var buffer = __webpack_require__(10), Buffer = buffer.Buffer; function copyProps(src, dst) { @@ -10726,10 +11744,8 @@ return fn.hats[id] = value, fn; }, fn.bits = bits || 128, fn.base = base || 16, fn; }; -}, function(module, exports) { - module.exports = require("tls"); }, function(module, exports, __webpack_require__) { - var stream = __webpack_require__(3), util = __webpack_require__(0), timers = __webpack_require__(117); + var stream = __webpack_require__(3), util = __webpack_require__(0), timers = __webpack_require__(103); function createLineStream(readStream, options) { if (!readStream) throw new Error("expected readStream"); if (!readStream.readable) throw new Error("readStream must be readable"); @@ -10775,8 +11791,831 @@ }, LineStream.prototype._reencode = function(line, chunkEncoding) { return this.encoding && this.encoding != chunkEncoding ? new Buffer(line, chunkEncoding).toString(this.encoding) : this.encoding ? line : new Buffer(line, chunkEncoding); }; +}, function(module, exports) { + module.exports = require("timers"); }, function(module, exports, __webpack_require__) { - var util = __webpack_require__(0), fs = __webpack_require__(2), path = __webpack_require__(4), pkg = __webpack_require__(378), isPositiveInteger = __webpack_require__(369), appPath = __webpack_require__(379); + !(function(sax) { + sax.parser = function(strict, opt) { + return new SAXParser(strict, opt); + }, sax.SAXParser = SAXParser, sax.SAXStream = SAXStream, sax.createStream = function(strict, opt) { + return new SAXStream(strict, opt); + }, sax.MAX_BUFFER_LENGTH = 65536; + var Stream, buffers = [ "comment", "sgmlDecl", "textNode", "tagName", "doctype", "procInstName", "procInstBody", "entity", "attribName", "attribValue", "cdata", "script" ]; + function SAXParser(strict, opt) { + if (!(this instanceof SAXParser)) return new SAXParser(strict, opt); + !(function(parser) { + for (var i = 0, l = buffers.length; i < l; i++) parser[buffers[i]] = ""; + })(this), this.q = this.c = "", this.bufferCheckPosition = sax.MAX_BUFFER_LENGTH, + this.opt = opt || {}, this.opt.lowercase = this.opt.lowercase || this.opt.lowercasetags, + this.looseCase = this.opt.lowercase ? "toLowerCase" : "toUpperCase", this.tags = [], + this.closed = this.closedRoot = this.sawRoot = !1, this.tag = this.error = null, + this.strict = !!strict, this.noscript = !(!strict && !this.opt.noscript), this.state = S.BEGIN, + this.strictEntities = this.opt.strictEntities, this.ENTITIES = this.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES), + this.attribList = [], this.opt.xmlns && (this.ns = Object.create(rootNS)), this.trackPosition = !1 !== this.opt.position, + this.trackPosition && (this.position = this.line = this.column = 0), emit(this, "onready"); + } + sax.EVENTS = [ "text", "processinginstruction", "sgmldeclaration", "doctype", "comment", "opentagstart", "attribute", "opentag", "closetag", "opencdata", "cdata", "closecdata", "error", "end", "ready", "script", "opennamespace", "closenamespace" ], + Object.create || (Object.create = function(o) { + function F() {} + return F.prototype = o, new F; + }), Object.keys || (Object.keys = function(o) { + var a = []; + for (var i in o) o.hasOwnProperty(i) && a.push(i); + return a; + }), SAXParser.prototype = { + end: function() { + end(this); + }, + write: function(chunk) { + if (this.error) throw this.error; + if (this.closed) return error(this, "Cannot write after close. Assign an onready handler."); + if (null === chunk) return end(this); + "object" == typeof chunk && (chunk = chunk.toString()); + for (var parser, num, entity, entityLC, numStr, i = 0, c = ""; c = charAt(chunk, i++), + this.c = c, c; ) switch (this.trackPosition && (this.position++, "\n" === c ? (this.line++, + this.column = 0) : this.column++), this.state) { + case S.BEGIN: + if (this.state = S.BEGIN_WHITESPACE, "\ufeff" === c) continue; + beginWhiteSpace(this, c); + continue; + + case S.BEGIN_WHITESPACE: + beginWhiteSpace(this, c); + continue; + + case S.TEXT: + if (this.sawRoot && !this.closedRoot) { + for (var starti = i - 1; c && "<" !== c && "&" !== c; ) (c = charAt(chunk, i++)) && this.trackPosition && (this.position++, + "\n" === c ? (this.line++, this.column = 0) : this.column++); + this.textNode += chunk.substring(starti, i - 1); + } + "<" !== c || this.sawRoot && this.closedRoot && !this.strict ? (isWhitespace(c) || this.sawRoot && !this.closedRoot || strictFail(this, "Text data outside of root node."), + "&" === c ? this.state = S.TEXT_ENTITY : this.textNode += c) : (this.state = S.OPEN_WAKA, + this.startTagPosition = this.position); + continue; + + case S.SCRIPT: + "<" === c ? this.state = S.SCRIPT_ENDING : this.script += c; + continue; + + case S.SCRIPT_ENDING: + "/" === c ? this.state = S.CLOSE_TAG : (this.script += "<" + c, this.state = S.SCRIPT); + continue; + + case S.OPEN_WAKA: + if ("!" === c) this.state = S.SGML_DECL, this.sgmlDecl = ""; else if (isWhitespace(c)) ; else if (isMatch(nameStart, c)) this.state = S.OPEN_TAG, + this.tagName = c; else if ("/" === c) this.state = S.CLOSE_TAG, this.tagName = ""; else if ("?" === c) this.state = S.PROC_INST, + this.procInstName = this.procInstBody = ""; else { + if (strictFail(this, "Unencoded <"), this.startTagPosition + 1 < this.position) { + var pad = this.position - this.startTagPosition; + c = new Array(pad).join(" ") + c; + } + this.textNode += "<" + c, this.state = S.TEXT; + } + continue; + + case S.SGML_DECL: + "[CDATA[" === (this.sgmlDecl + c).toUpperCase() ? (emitNode(this, "onopencdata"), + this.state = S.CDATA, this.sgmlDecl = "", this.cdata = "") : this.sgmlDecl + c === "--" ? (this.state = S.COMMENT, + this.comment = "", this.sgmlDecl = "") : "DOCTYPE" === (this.sgmlDecl + c).toUpperCase() ? (this.state = S.DOCTYPE, + (this.doctype || this.sawRoot) && strictFail(this, "Inappropriately located doctype declaration"), + this.doctype = "", this.sgmlDecl = "") : ">" === c ? (emitNode(this, "onsgmldeclaration", this.sgmlDecl), + this.sgmlDecl = "", this.state = S.TEXT) : isQuote(c) ? (this.state = S.SGML_DECL_QUOTED, + this.sgmlDecl += c) : this.sgmlDecl += c; + continue; + + case S.SGML_DECL_QUOTED: + c === this.q && (this.state = S.SGML_DECL, this.q = ""), this.sgmlDecl += c; + continue; + + case S.DOCTYPE: + ">" === c ? (this.state = S.TEXT, emitNode(this, "ondoctype", this.doctype), this.doctype = !0) : (this.doctype += c, + "[" === c ? this.state = S.DOCTYPE_DTD : isQuote(c) && (this.state = S.DOCTYPE_QUOTED, + this.q = c)); + continue; + + case S.DOCTYPE_QUOTED: + this.doctype += c, c === this.q && (this.q = "", this.state = S.DOCTYPE); + continue; + + case S.DOCTYPE_DTD: + this.doctype += c, "]" === c ? this.state = S.DOCTYPE : isQuote(c) && (this.state = S.DOCTYPE_DTD_QUOTED, + this.q = c); + continue; + + case S.DOCTYPE_DTD_QUOTED: + this.doctype += c, c === this.q && (this.state = S.DOCTYPE_DTD, this.q = ""); + continue; + + case S.COMMENT: + "-" === c ? this.state = S.COMMENT_ENDING : this.comment += c; + continue; + + case S.COMMENT_ENDING: + "-" === c ? (this.state = S.COMMENT_ENDED, this.comment = textopts(this.opt, this.comment), + this.comment && emitNode(this, "oncomment", this.comment), this.comment = "") : (this.comment += "-" + c, + this.state = S.COMMENT); + continue; + + case S.COMMENT_ENDED: + ">" !== c ? (strictFail(this, "Malformed comment"), this.comment += "--" + c, this.state = S.COMMENT) : this.state = S.TEXT; + continue; + + case S.CDATA: + "]" === c ? this.state = S.CDATA_ENDING : this.cdata += c; + continue; + + case S.CDATA_ENDING: + "]" === c ? this.state = S.CDATA_ENDING_2 : (this.cdata += "]" + c, this.state = S.CDATA); + continue; + + case S.CDATA_ENDING_2: + ">" === c ? (this.cdata && emitNode(this, "oncdata", this.cdata), emitNode(this, "onclosecdata"), + this.cdata = "", this.state = S.TEXT) : "]" === c ? this.cdata += "]" : (this.cdata += "]]" + c, + this.state = S.CDATA); + continue; + + case S.PROC_INST: + "?" === c ? this.state = S.PROC_INST_ENDING : isWhitespace(c) ? this.state = S.PROC_INST_BODY : this.procInstName += c; + continue; + + case S.PROC_INST_BODY: + if (!this.procInstBody && isWhitespace(c)) continue; + "?" === c ? this.state = S.PROC_INST_ENDING : this.procInstBody += c; + continue; + + case S.PROC_INST_ENDING: + ">" === c ? (emitNode(this, "onprocessinginstruction", { + name: this.procInstName, + body: this.procInstBody + }), this.procInstName = this.procInstBody = "", this.state = S.TEXT) : (this.procInstBody += "?" + c, + this.state = S.PROC_INST_BODY); + continue; + + case S.OPEN_TAG: + isMatch(nameBody, c) ? this.tagName += c : (newTag(this), ">" === c ? openTag(this) : "/" === c ? this.state = S.OPEN_TAG_SLASH : (isWhitespace(c) || strictFail(this, "Invalid character in tag name"), + this.state = S.ATTRIB)); + continue; + + case S.OPEN_TAG_SLASH: + ">" === c ? (openTag(this, !0), closeTag(this)) : (strictFail(this, "Forward-slash in opening tag not followed by >"), + this.state = S.ATTRIB); + continue; + + case S.ATTRIB: + if (isWhitespace(c)) continue; + ">" === c ? openTag(this) : "/" === c ? this.state = S.OPEN_TAG_SLASH : isMatch(nameStart, c) ? (this.attribName = c, + this.attribValue = "", this.state = S.ATTRIB_NAME) : strictFail(this, "Invalid attribute name"); + continue; + + case S.ATTRIB_NAME: + "=" === c ? this.state = S.ATTRIB_VALUE : ">" === c ? (strictFail(this, "Attribute without value"), + this.attribValue = this.attribName, attrib(this), openTag(this)) : isWhitespace(c) ? this.state = S.ATTRIB_NAME_SAW_WHITE : isMatch(nameBody, c) ? this.attribName += c : strictFail(this, "Invalid attribute name"); + continue; + + case S.ATTRIB_NAME_SAW_WHITE: + if ("=" === c) this.state = S.ATTRIB_VALUE; else { + if (isWhitespace(c)) continue; + strictFail(this, "Attribute without value"), this.tag.attributes[this.attribName] = "", + this.attribValue = "", emitNode(this, "onattribute", { + name: this.attribName, + value: "" + }), this.attribName = "", ">" === c ? openTag(this) : isMatch(nameStart, c) ? (this.attribName = c, + this.state = S.ATTRIB_NAME) : (strictFail(this, "Invalid attribute name"), this.state = S.ATTRIB); + } + continue; + + case S.ATTRIB_VALUE: + if (isWhitespace(c)) continue; + isQuote(c) ? (this.q = c, this.state = S.ATTRIB_VALUE_QUOTED) : (strictFail(this, "Unquoted attribute value"), + this.state = S.ATTRIB_VALUE_UNQUOTED, this.attribValue = c); + continue; + + case S.ATTRIB_VALUE_QUOTED: + if (c !== this.q) { + "&" === c ? this.state = S.ATTRIB_VALUE_ENTITY_Q : this.attribValue += c; + continue; + } + attrib(this), this.q = "", this.state = S.ATTRIB_VALUE_CLOSED; + continue; + + case S.ATTRIB_VALUE_CLOSED: + isWhitespace(c) ? this.state = S.ATTRIB : ">" === c ? openTag(this) : "/" === c ? this.state = S.OPEN_TAG_SLASH : isMatch(nameStart, c) ? (strictFail(this, "No whitespace between attributes"), + this.attribName = c, this.attribValue = "", this.state = S.ATTRIB_NAME) : strictFail(this, "Invalid attribute name"); + continue; + + case S.ATTRIB_VALUE_UNQUOTED: + if (!isAttribEnd(c)) { + "&" === c ? this.state = S.ATTRIB_VALUE_ENTITY_U : this.attribValue += c; + continue; + } + attrib(this), ">" === c ? openTag(this) : this.state = S.ATTRIB; + continue; + + case S.CLOSE_TAG: + if (this.tagName) ">" === c ? closeTag(this) : isMatch(nameBody, c) ? this.tagName += c : this.script ? (this.script += "" === c ? closeTag(this) : strictFail(this, "Invalid characters in closing tag"); + continue; + + case S.TEXT_ENTITY: + case S.ATTRIB_VALUE_ENTITY_Q: + case S.ATTRIB_VALUE_ENTITY_U: + var returnState, buffer; + switch (this.state) { + case S.TEXT_ENTITY: + returnState = S.TEXT, buffer = "textNode"; + break; + + case S.ATTRIB_VALUE_ENTITY_Q: + returnState = S.ATTRIB_VALUE_QUOTED, buffer = "attribValue"; + break; + + case S.ATTRIB_VALUE_ENTITY_U: + returnState = S.ATTRIB_VALUE_UNQUOTED, buffer = "attribValue"; + } + ";" === c ? (this[buffer] += (num = void 0, entity = void 0, entityLC = void 0, + numStr = void 0, entity = (parser = this).entity, entityLC = entity.toLowerCase(), + numStr = "", parser.ENTITIES[entity] ? parser.ENTITIES[entity] : parser.ENTITIES[entityLC] ? parser.ENTITIES[entityLC] : ("#" === (entity = entityLC).charAt(0) && ("x" === entity.charAt(1) ? (entity = entity.slice(2), + numStr = (num = parseInt(entity, 16)).toString(16)) : (entity = entity.slice(1), + numStr = (num = parseInt(entity, 10)).toString(10))), entity = entity.replace(/^0+/, ""), + isNaN(num) || numStr.toLowerCase() !== entity ? (strictFail(parser, "Invalid character entity"), + "&" + parser.entity + ";") : String.fromCodePoint(num))), this.entity = "", this.state = returnState) : isMatch(this.entity.length ? entityBody : entityStart, c) ? this.entity += c : (strictFail(this, "Invalid character in entity name"), + this[buffer] += "&" + this.entity + c, this.entity = "", this.state = returnState); + continue; + + default: + throw new Error(this, "Unknown state: " + this.state); + } + return this.position >= this.bufferCheckPosition && (function(parser) { + for (var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10), maxActual = 0, i = 0, l = buffers.length; i < l; i++) { + var len = parser[buffers[i]].length; + if (len > maxAllowed) switch (buffers[i]) { + case "textNode": + closeText(parser); + break; + + case "cdata": + emitNode(parser, "oncdata", parser.cdata), parser.cdata = ""; + break; + + case "script": + emitNode(parser, "onscript", parser.script), parser.script = ""; + break; + + default: + error(parser, "Max buffer length exceeded: " + buffers[i]); + } + maxActual = Math.max(maxActual, len); + } + var m = sax.MAX_BUFFER_LENGTH - maxActual; + parser.bufferCheckPosition = m + parser.position; + })(this), this; + }, + resume: function() { + return this.error = null, this; + }, + close: function() { + return this.write(null); + }, + flush: function() { + closeText(this), "" !== this.cdata && (emitNode(this, "oncdata", this.cdata), this.cdata = ""), + "" !== this.script && (emitNode(this, "onscript", this.script), this.script = ""); + } + }; + try { + Stream = __webpack_require__(3).Stream; + } catch (ex) { + Stream = function() {}; + } + var streamWraps = sax.EVENTS.filter((function(ev) { + return "error" !== ev && "end" !== ev; + })); + function SAXStream(strict, opt) { + if (!(this instanceof SAXStream)) return new SAXStream(strict, opt); + Stream.apply(this), this._parser = new SAXParser(strict, opt), this.writable = !0, + this.readable = !0; + var me = this; + this._parser.onend = function() { + me.emit("end"); + }, this._parser.onerror = function(er) { + me.emit("error", er), me._parser.error = null; + }, this._decoder = null, streamWraps.forEach((function(ev) { + Object.defineProperty(me, "on" + ev, { + get: function() { + return me._parser["on" + ev]; + }, + set: function(h) { + if (!h) return me.removeAllListeners(ev), me._parser["on" + ev] = h, h; + me.on(ev, h); + }, + enumerable: !0, + configurable: !1 + }); + })); + } + SAXStream.prototype = Object.create(Stream.prototype, { + constructor: { + value: SAXStream + } + }), SAXStream.prototype.write = function(data) { + if ("function" == typeof Buffer && "function" == typeof Buffer.isBuffer && Buffer.isBuffer(data)) { + if (!this._decoder) { + var SD = __webpack_require__(173).StringDecoder; + this._decoder = new SD("utf8"); + } + data = this._decoder.write(data); + } + return this._parser.write(data.toString()), this.emit("data", data), !0; + }, SAXStream.prototype.end = function(chunk) { + return chunk && chunk.length && this.write(chunk), this._parser.end(), !0; + }, SAXStream.prototype.on = function(ev, handler) { + var me = this; + return me._parser["on" + ev] || -1 === streamWraps.indexOf(ev) || (me._parser["on" + ev] = function() { + var args = 1 === arguments.length ? [ arguments[0] ] : Array.apply(null, arguments); + args.splice(0, 0, ev), me.emit.apply(me, args); + }), Stream.prototype.on.call(me, ev, handler); + }; + var XML_NAMESPACE = "http://www.w3.org/XML/1998/namespace", rootNS = { + xml: XML_NAMESPACE, + xmlns: "http://www.w3.org/2000/xmlns/" + }, 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]/, 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-]/, 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]/, 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-]/; + function isWhitespace(c) { + return " " === c || "\n" === c || "\r" === c || "\t" === c; + } + function isQuote(c) { + return '"' === c || "'" === c; + } + function isAttribEnd(c) { + return ">" === c || isWhitespace(c); + } + function isMatch(regex, c) { + return regex.test(c); + } + function notMatch(regex, c) { + return !isMatch(regex, c); + } + var stringFromCharCode, floor, fromCodePoint, S = 0; + for (var s in sax.STATE = { + BEGIN: S++, + BEGIN_WHITESPACE: S++, + TEXT: S++, + TEXT_ENTITY: S++, + OPEN_WAKA: S++, + SGML_DECL: S++, + SGML_DECL_QUOTED: S++, + DOCTYPE: S++, + DOCTYPE_QUOTED: S++, + DOCTYPE_DTD: S++, + DOCTYPE_DTD_QUOTED: S++, + COMMENT_STARTING: S++, + COMMENT: S++, + COMMENT_ENDING: S++, + COMMENT_ENDED: S++, + CDATA: S++, + CDATA_ENDING: S++, + CDATA_ENDING_2: S++, + PROC_INST: S++, + PROC_INST_BODY: S++, + PROC_INST_ENDING: S++, + OPEN_TAG: S++, + OPEN_TAG_SLASH: S++, + ATTRIB: S++, + ATTRIB_NAME: S++, + ATTRIB_NAME_SAW_WHITE: S++, + ATTRIB_VALUE: S++, + ATTRIB_VALUE_QUOTED: S++, + ATTRIB_VALUE_CLOSED: S++, + ATTRIB_VALUE_UNQUOTED: S++, + ATTRIB_VALUE_ENTITY_Q: S++, + ATTRIB_VALUE_ENTITY_U: S++, + CLOSE_TAG: S++, + CLOSE_TAG_SAW_WHITE: S++, + SCRIPT: S++, + SCRIPT_ENDING: S++ + }, sax.XML_ENTITIES = { + amp: "&", + gt: ">", + lt: "<", + quot: '"', + apos: "'" + }, sax.ENTITIES = { + amp: "&", + gt: ">", + lt: "<", + quot: '"', + apos: "'", + AElig: 198, + Aacute: 193, + Acirc: 194, + Agrave: 192, + Aring: 197, + Atilde: 195, + Auml: 196, + Ccedil: 199, + ETH: 208, + Eacute: 201, + Ecirc: 202, + Egrave: 200, + Euml: 203, + Iacute: 205, + Icirc: 206, + Igrave: 204, + Iuml: 207, + Ntilde: 209, + Oacute: 211, + Ocirc: 212, + Ograve: 210, + Oslash: 216, + Otilde: 213, + Ouml: 214, + THORN: 222, + Uacute: 218, + Ucirc: 219, + Ugrave: 217, + Uuml: 220, + Yacute: 221, + aacute: 225, + acirc: 226, + aelig: 230, + agrave: 224, + aring: 229, + atilde: 227, + auml: 228, + ccedil: 231, + eacute: 233, + ecirc: 234, + egrave: 232, + eth: 240, + euml: 235, + iacute: 237, + icirc: 238, + igrave: 236, + iuml: 239, + ntilde: 241, + oacute: 243, + ocirc: 244, + ograve: 242, + oslash: 248, + otilde: 245, + ouml: 246, + szlig: 223, + thorn: 254, + uacute: 250, + ucirc: 251, + ugrave: 249, + uuml: 252, + yacute: 253, + yuml: 255, + copy: 169, + reg: 174, + nbsp: 160, + iexcl: 161, + cent: 162, + pound: 163, + curren: 164, + yen: 165, + brvbar: 166, + sect: 167, + uml: 168, + ordf: 170, + laquo: 171, + not: 172, + shy: 173, + macr: 175, + deg: 176, + plusmn: 177, + sup1: 185, + sup2: 178, + sup3: 179, + acute: 180, + micro: 181, + para: 182, + middot: 183, + cedil: 184, + ordm: 186, + raquo: 187, + frac14: 188, + frac12: 189, + frac34: 190, + iquest: 191, + times: 215, + divide: 247, + OElig: 338, + oelig: 339, + Scaron: 352, + scaron: 353, + Yuml: 376, + fnof: 402, + circ: 710, + tilde: 732, + Alpha: 913, + Beta: 914, + Gamma: 915, + Delta: 916, + Epsilon: 917, + Zeta: 918, + Eta: 919, + Theta: 920, + Iota: 921, + Kappa: 922, + Lambda: 923, + Mu: 924, + Nu: 925, + Xi: 926, + Omicron: 927, + Pi: 928, + Rho: 929, + Sigma: 931, + Tau: 932, + Upsilon: 933, + Phi: 934, + Chi: 935, + Psi: 936, + Omega: 937, + alpha: 945, + beta: 946, + gamma: 947, + delta: 948, + epsilon: 949, + zeta: 950, + eta: 951, + theta: 952, + iota: 953, + kappa: 954, + lambda: 955, + mu: 956, + nu: 957, + xi: 958, + omicron: 959, + pi: 960, + rho: 961, + sigmaf: 962, + sigma: 963, + tau: 964, + upsilon: 965, + phi: 966, + chi: 967, + psi: 968, + omega: 969, + thetasym: 977, + upsih: 978, + piv: 982, + ensp: 8194, + emsp: 8195, + thinsp: 8201, + zwnj: 8204, + zwj: 8205, + lrm: 8206, + rlm: 8207, + ndash: 8211, + mdash: 8212, + lsquo: 8216, + rsquo: 8217, + sbquo: 8218, + ldquo: 8220, + rdquo: 8221, + bdquo: 8222, + dagger: 8224, + Dagger: 8225, + bull: 8226, + hellip: 8230, + permil: 8240, + prime: 8242, + Prime: 8243, + lsaquo: 8249, + rsaquo: 8250, + oline: 8254, + frasl: 8260, + euro: 8364, + image: 8465, + weierp: 8472, + real: 8476, + trade: 8482, + alefsym: 8501, + larr: 8592, + uarr: 8593, + rarr: 8594, + darr: 8595, + harr: 8596, + crarr: 8629, + lArr: 8656, + uArr: 8657, + rArr: 8658, + dArr: 8659, + hArr: 8660, + forall: 8704, + part: 8706, + exist: 8707, + empty: 8709, + nabla: 8711, + isin: 8712, + notin: 8713, + ni: 8715, + prod: 8719, + sum: 8721, + minus: 8722, + lowast: 8727, + radic: 8730, + prop: 8733, + infin: 8734, + ang: 8736, + and: 8743, + or: 8744, + cap: 8745, + cup: 8746, + int: 8747, + there4: 8756, + sim: 8764, + cong: 8773, + asymp: 8776, + ne: 8800, + equiv: 8801, + le: 8804, + ge: 8805, + sub: 8834, + sup: 8835, + nsub: 8836, + sube: 8838, + supe: 8839, + oplus: 8853, + otimes: 8855, + perp: 8869, + sdot: 8901, + lceil: 8968, + rceil: 8969, + lfloor: 8970, + rfloor: 8971, + lang: 9001, + rang: 9002, + loz: 9674, + spades: 9824, + clubs: 9827, + hearts: 9829, + diams: 9830 + }, Object.keys(sax.ENTITIES).forEach((function(key) { + var e = sax.ENTITIES[key], s = "number" == typeof e ? String.fromCharCode(e) : e; + sax.ENTITIES[key] = s; + })), sax.STATE) sax.STATE[sax.STATE[s]] = s; + function emit(parser, event, data) { + parser[event] && parser[event](data); + } + function emitNode(parser, nodeType, data) { + parser.textNode && closeText(parser), emit(parser, nodeType, data); + } + function closeText(parser) { + parser.textNode = textopts(parser.opt, parser.textNode), parser.textNode && emit(parser, "ontext", parser.textNode), + parser.textNode = ""; + } + function textopts(opt, text) { + return opt.trim && (text = text.trim()), opt.normalize && (text = text.replace(/\s+/g, " ")), + text; + } + function error(parser, er) { + return closeText(parser), parser.trackPosition && (er += "\nLine: " + parser.line + "\nColumn: " + parser.column + "\nChar: " + parser.c), + er = new Error(er), parser.error = er, emit(parser, "onerror", er), parser; + } + function end(parser) { + return parser.sawRoot && !parser.closedRoot && strictFail(parser, "Unclosed root tag"), + parser.state !== S.BEGIN && parser.state !== S.BEGIN_WHITESPACE && parser.state !== S.TEXT && error(parser, "Unexpected end"), + closeText(parser), parser.c = "", parser.closed = !0, emit(parser, "onend"), SAXParser.call(parser, parser.strict, parser.opt), + parser; + } + function strictFail(parser, message) { + if ("object" != typeof parser || !(parser instanceof SAXParser)) throw new Error("bad call to strictFail"); + parser.strict && error(parser, message); + } + function newTag(parser) { + parser.strict || (parser.tagName = parser.tagName[parser.looseCase]()); + var parent = parser.tags[parser.tags.length - 1] || parser, tag = parser.tag = { + name: parser.tagName, + attributes: {} + }; + parser.opt.xmlns && (tag.ns = parent.ns), parser.attribList.length = 0, emitNode(parser, "onopentagstart", tag); + } + function qname(name, attribute) { + var qualName = name.indexOf(":") < 0 ? [ "", name ] : name.split(":"), prefix = qualName[0], local = qualName[1]; + return attribute && "xmlns" === name && (prefix = "xmlns", local = ""), { + prefix: prefix, + local: local + }; + } + function attrib(parser) { + if (parser.strict || (parser.attribName = parser.attribName[parser.looseCase]()), + -1 !== parser.attribList.indexOf(parser.attribName) || parser.tag.attributes.hasOwnProperty(parser.attribName)) parser.attribName = parser.attribValue = ""; else { + if (parser.opt.xmlns) { + var qn = qname(parser.attribName, !0), prefix = qn.prefix, local = qn.local; + if ("xmlns" === prefix) if ("xml" === local && parser.attribValue !== XML_NAMESPACE) strictFail(parser, "xml: prefix must be bound to " + XML_NAMESPACE + "\nActual: " + parser.attribValue); else if ("xmlns" === local && "http://www.w3.org/2000/xmlns/" !== parser.attribValue) strictFail(parser, "xmlns: prefix must be bound to http://www.w3.org/2000/xmlns/\nActual: " + parser.attribValue); else { + var tag = parser.tag, parent = parser.tags[parser.tags.length - 1] || parser; + tag.ns === parent.ns && (tag.ns = Object.create(parent.ns)), tag.ns[local] = parser.attribValue; + } + parser.attribList.push([ parser.attribName, parser.attribValue ]); + } else parser.tag.attributes[parser.attribName] = parser.attribValue, emitNode(parser, "onattribute", { + name: parser.attribName, + value: parser.attribValue + }); + parser.attribName = parser.attribValue = ""; + } + } + function openTag(parser, selfClosing) { + if (parser.opt.xmlns) { + var tag = parser.tag, qn = qname(parser.tagName); + tag.prefix = qn.prefix, tag.local = qn.local, tag.uri = tag.ns[qn.prefix] || "", + tag.prefix && !tag.uri && (strictFail(parser, "Unbound namespace prefix: " + JSON.stringify(parser.tagName)), + tag.uri = qn.prefix); + var parent = parser.tags[parser.tags.length - 1] || parser; + tag.ns && parent.ns !== tag.ns && Object.keys(tag.ns).forEach((function(p) { + emitNode(parser, "onopennamespace", { + prefix: p, + uri: tag.ns[p] + }); + })); + for (var i = 0, l = parser.attribList.length; i < l; i++) { + var nv = parser.attribList[i], name = nv[0], value = nv[1], qualName = qname(name, !0), prefix = qualName.prefix, local = qualName.local, uri = "" === prefix ? "" : tag.ns[prefix] || "", a = { + name: name, + value: value, + prefix: prefix, + local: local, + uri: uri + }; + prefix && "xmlns" !== prefix && !uri && (strictFail(parser, "Unbound namespace prefix: " + JSON.stringify(prefix)), + a.uri = prefix), parser.tag.attributes[name] = a, emitNode(parser, "onattribute", a); + } + parser.attribList.length = 0; + } + parser.tag.isSelfClosing = !!selfClosing, parser.sawRoot = !0, parser.tags.push(parser.tag), + emitNode(parser, "onopentag", parser.tag), selfClosing || (parser.noscript || "script" !== parser.tagName.toLowerCase() ? parser.state = S.TEXT : parser.state = S.SCRIPT, + parser.tag = null, parser.tagName = ""), parser.attribName = parser.attribValue = "", + parser.attribList.length = 0; + } + function closeTag(parser) { + if (!parser.tagName) return strictFail(parser, "Weird empty close tag."), parser.textNode += "", + void (parser.state = S.TEXT); + if (parser.script) { + if ("script" !== parser.tagName) return parser.script += "", + parser.tagName = "", void (parser.state = S.SCRIPT); + emitNode(parser, "onscript", parser.script), parser.script = ""; + } + var t = parser.tags.length, tagName = parser.tagName; + parser.strict || (tagName = tagName[parser.looseCase]()); + for (var closeTo = tagName; t-- && parser.tags[t].name !== closeTo; ) strictFail(parser, "Unexpected close tag"); + if (t < 0) return strictFail(parser, "Unmatched closing tag: " + parser.tagName), + parser.textNode += "", void (parser.state = S.TEXT); + parser.tagName = tagName; + for (var s = parser.tags.length; s-- > t; ) { + var tag = parser.tag = parser.tags.pop(); + parser.tagName = parser.tag.name, emitNode(parser, "onclosetag", parser.tagName); + var x = {}; + for (var i in tag.ns) x[i] = tag.ns[i]; + var parent = parser.tags[parser.tags.length - 1] || parser; + parser.opt.xmlns && tag.ns !== parent.ns && Object.keys(tag.ns).forEach((function(p) { + var n = tag.ns[p]; + emitNode(parser, "onclosenamespace", { + prefix: p, + uri: n + }); + })); + } + 0 === t && (parser.closedRoot = !0), parser.tagName = parser.attribValue = parser.attribName = "", + parser.attribList.length = 0, parser.state = S.TEXT; + } + function beginWhiteSpace(parser, c) { + "<" === c ? (parser.state = S.OPEN_WAKA, parser.startTagPosition = parser.position) : isWhitespace(c) || (strictFail(parser, "Non-whitespace before first tag."), + parser.textNode = c, parser.state = S.TEXT); + } + function charAt(chunk, i) { + var result = ""; + return i < chunk.length && (result = chunk.charAt(i)), result; + } + S = sax.STATE, String.fromCodePoint || (stringFromCharCode = String.fromCharCode, + floor = Math.floor, fromCodePoint = function() { + var highSurrogate, lowSurrogate, MAX_SIZE = 16384, codeUnits = [], index = -1, length = arguments.length; + if (!length) return ""; + for (var result = ""; ++index < length; ) { + var codePoint = Number(arguments[index]); + if (!isFinite(codePoint) || codePoint < 0 || codePoint > 1114111 || floor(codePoint) !== codePoint) throw RangeError("Invalid code point: " + codePoint); + codePoint <= 65535 ? codeUnits.push(codePoint) : (highSurrogate = 55296 + ((codePoint -= 65536) >> 10), + lowSurrogate = codePoint % 1024 + 56320, codeUnits.push(highSurrogate, lowSurrogate)), + (index + 1 === length || codeUnits.length > MAX_SIZE) && (result += stringFromCharCode.apply(null, codeUnits), + codeUnits.length = 0); + } + return result; + }, Object.defineProperty ? Object.defineProperty(String, "fromCodePoint", { + value: fromCodePoint, + configurable: !0, + writable: !0 + }) : String.fromCodePoint = fromCodePoint); + })(exports); +}, function(module, exports, __webpack_require__) { + var util = __webpack_require__(0), fs = __webpack_require__(2), path = __webpack_require__(5), pkg = __webpack_require__(413), isPositiveInteger = __webpack_require__(400), appPath = __webpack_require__(414); module.exports = (function(appPath, args) { var self = { get serverVersion() { @@ -10817,15 +12656,7 @@ self.load(), self; })(appPath); }, function(module, exports, __webpack_require__) { - try { - var util = __webpack_require__(0); - if ("function" != typeof util.inherits) throw ""; - module.exports = util.inherits; - } catch (e) { - module.exports = __webpack_require__(773); - } -}, function(module, exports, __webpack_require__) { - const miniget = __webpack_require__(146); + const miniget = __webpack_require__(156); exports.between = (haystack, left, right) => { let pos; if (left instanceof RegExp) { @@ -10867,7 +12698,7 @@ value) }); }; - const pkg = __webpack_require__(434); + const pkg = __webpack_require__(468); exports.lastUpdateCheck = 0, exports.checkForUpdates = () => !process.env.YTDL_NO_UPDATE && !pkg.version.startsWith("0.0.0-") && Date.now() - exports.lastUpdateCheck >= 432e5 ? (exports.lastUpdateCheck = Date.now(), miniget("https://api.github.com/repos/fent/node-ytdl-core/releases/latest", { headers: { @@ -10878,9 +12709,194 @@ }), (err => { console.warn("Error checking for updates:", err.message), console.warn("You can disable this check by setting the `YTDL_NO_UPDATE` env variable."); }))) : null; +}, function(module, exports, __webpack_require__) { + try { + var util = __webpack_require__(0); + if ("function" != typeof util.inherits) throw ""; + module.exports = util.inherits; + } catch (e) { + module.exports = __webpack_require__(1018); + } +}, function(module, exports, __webpack_require__) { + "use strict"; + var debug = __webpack_require__(9)("router"), flatten = __webpack_require__(512).flatten, Layer = __webpack_require__(513), methods = __webpack_require__(68), mixin = __webpack_require__(67), parseUrl = __webpack_require__(49), Route = __webpack_require__(1121), setPrototypeOf = __webpack_require__(1122), slice = Array.prototype.slice, defer = "function" == typeof setImmediate ? setImmediate : function(fn) { + process.nextTick(fn.bind.apply(fn, arguments)); + }; + function Router(options) { + if (!(this instanceof Router)) return new Router(options); + var opts = options || {}; + function router(req, res, next) { + router.handle(req, res, next); + } + return setPrototypeOf(router, this), router.caseSensitive = opts.caseSensitive, + router.mergeParams = opts.mergeParams, router.params = {}, router.strict = opts.strict, + router.stack = [], router; + } + function matchLayer(layer, path) { + try { + return layer.match(path); + } catch (err) { + return err; + } + } + module.exports = Router, module.exports.Route = Route, Router.prototype = function() {}, + Router.prototype.param = function(name, fn) { + if (!name) throw new TypeError("argument name is required"); + if ("string" != typeof name) throw new TypeError("argument name must be a string"); + if (!fn) throw new TypeError("argument fn is required"); + if ("function" != typeof fn) throw new TypeError("argument fn must be a function"); + var params = this.params[name]; + return params || (params = this.params[name] = []), params.push(fn), this; + }, Router.prototype.handle = function(req, res, callback) { + if (!callback) throw new TypeError("argument callback is required"); + debug("dispatching %s %s", req.method, req.url); + var methods, old, fn, idx = 0, protohost = (function(url) { + if ("string" == typeof url && 0 !== url.length && "/" !== url[0]) { + var searchIndex = url.indexOf("?"), pathLength = -1 !== searchIndex ? searchIndex : url.length, fqdnIndex = url.substring(0, pathLength).indexOf("://"); + return -1 !== fqdnIndex ? url.substring(0, url.indexOf("/", 3 + fqdnIndex)) : void 0; + } + })(req.url) || "", removed = "", self = this, slashAdded = !1, sync = 0, paramcalled = {}, stack = this.stack, parentParams = req.params, parentUrl = req.baseUrl || "", done = (function(fn, obj) { + for (var props = new Array(arguments.length - 2), vals = new Array(arguments.length - 2), i = 0; i < props.length; i++) props[i] = arguments[i + 2], + vals[i] = obj[props[i]]; + return function() { + for (var i = 0; i < props.length; i++) obj[props[i]] = vals[i]; + return fn.apply(this, arguments); + }; + })(callback, req, "baseUrl", "next", "params"); + function next(err) { + var layerError = "route" === err ? null : err; + if (slashAdded && (req.url = req.url.slice(1), slashAdded = !1), 0 !== removed.length && (req.baseUrl = parentUrl, + req.url = protohost + removed + req.url.slice(protohost.length), removed = ""), + "router" !== layerError) if (idx >= stack.length) defer(done, layerError); else { + if (++sync > 100) return defer(next, err); + var layer, match, route, path = (function(req) { + try { + return parseUrl(req).pathname; + } catch (err) { + return; + } + })(req); + if (null == path) return done(layerError); + for (;!0 !== match && idx < stack.length; ) if (match = matchLayer(layer = stack[idx++], path), + route = layer.route, "boolean" != typeof match && (layerError = layerError || match), + !0 === match && route) if (layerError) match = !1; else { + var method = req.method, has_method = route._handles_method(method); + !has_method && "OPTIONS" === method && methods && methods.push.apply(methods, route._methods()), + has_method || "HEAD" === method || (match = !1); + } + if (!0 !== match) return done(layerError); + route && (req.route = route), req.params = self.mergeParams ? (function(params, parent) { + if ("object" != typeof parent || !parent) return params; + var obj = mixin({}, parent); + if (!(0 in params) || !(0 in parent)) return mixin(obj, params); + for (var i = 0, o = 0; i in params; ) i++; + for (;o in parent; ) o++; + for (i--; i >= 0; i--) params[i + o] = params[i], i < o && delete params[i]; + return mixin(obj, params); + })(layer.params, parentParams) : layer.params; + var layerPath = layer.path; + self.process_params(layer, paramcalled, req, res, (function(err) { + err ? next(layerError || err) : route ? layer.handle_request(req, res, next) : (function(layer, layerError, layerPath, path) { + if (0 !== layerPath.length) { + if (layerPath !== path.substring(0, layerPath.length)) return void next(layerError); + var c = path[layerPath.length]; + if (c && "/" !== c) return void next(layerError); + debug("trim prefix (%s) from url %s", layerPath, req.url), removed = layerPath, + req.url = protohost + req.url.slice(protohost.length + removed.length), protohost || "/" === req.url[0] || (req.url = "/" + req.url, + slashAdded = !0), req.baseUrl = parentUrl + ("/" === removed[removed.length - 1] ? removed.substring(0, removed.length - 1) : removed); + } + debug("%s %s : %s", layer.name, layerPath, req.originalUrl), layerError ? layer.handle_error(layerError, req, res, next) : layer.handle_request(req, res, next); + })(layer, layerError, layerPath, path), sync = 0; + })); + } else defer(done, null); + } + req.next = next, "OPTIONS" === req.method && (old = done, fn = (function(res, methods) { + return function(fn, err) { + if (err || 0 === methods.length) return fn(err); + !(function(res, methods, next) { + try { + !(function(res, methods) { + for (var options = Object.create(null), i = 0; i < methods.length; i++) options[methods[i]] = !0; + var allow = Object.keys(options).sort().join(", "); + res.setHeader("Allow", allow), res.setHeader("Content-Length", Buffer.byteLength(allow)), + res.setHeader("Content-Type", "text/plain"), res.setHeader("X-Content-Type-Options", "nosniff"), + res.end(allow); + })(res, methods); + } catch (err) { + next(err); + } + })(res, methods, fn); + }; + })(res, methods = []), done = function() { + var args = new Array(arguments.length + 1); + args[0] = old; + for (var i = 0, len = arguments.length; i < len; i++) args[i + 1] = arguments[i]; + fn.apply(this, args); + }), req.baseUrl = parentUrl, req.originalUrl = req.originalUrl || req.url, next(); + }, Router.prototype.process_params = function(layer, called, req, res, done) { + var params = this.params, keys = layer.keys; + if (!keys || 0 === keys.length) return done(); + var name, key, paramVal, paramCallbacks, paramCalled, i = 0, paramIndex = 0; + function param(err) { + return err ? done(err) : i >= keys.length ? done() : (paramIndex = 0, key = keys[i++], + name = key.name, paramVal = req.params[name], paramCallbacks = params[name], paramCalled = called[name], + void 0 !== paramVal && paramCallbacks ? paramCalled && (paramCalled.match === paramVal || paramCalled.error && "route" !== paramCalled.error) ? (req.params[name] = paramCalled.value, + param(paramCalled.error)) : (called[name] = paramCalled = { + error: null, + match: paramVal, + value: paramVal + }, void paramCallback()) : param()); + } + function paramCallback(err) { + var fn = paramCallbacks[paramIndex++]; + if (paramCalled.value = req.params[key.name], err) return paramCalled.error = err, + void param(err); + if (!fn) return param(); + try { + fn(req, res, paramCallback, paramVal, key.name); + } catch (e) { + paramCallback(e); + } + } + param(); + }, Router.prototype.use = function(handler) { + var offset = 0, path = "/"; + if ("function" != typeof handler) { + for (var arg = handler; Array.isArray(arg) && 0 !== arg.length; ) arg = arg[0]; + "function" != typeof arg && (offset = 1, path = handler); + } + var callbacks = flatten(slice.call(arguments, offset)); + if (0 === callbacks.length) throw new TypeError("argument handler is required"); + for (var i = 0; i < callbacks.length; i++) { + var fn = callbacks[i]; + if ("function" != typeof fn) throw new TypeError("argument handler must be a function"); + debug("use %o %s", path, fn.name || ""); + var layer = new Layer(path, { + sensitive: this.caseSensitive, + strict: !1, + end: !1 + }, fn); + layer.route = void 0, this.stack.push(layer); + } + return this; + }, Router.prototype.route = function(path) { + var route = new Route(path), layer = new Layer(path, { + sensitive: this.caseSensitive, + strict: this.strict, + end: !0 + }, (function(req, res, next) { + route.dispatch(req, res, next); + })); + return layer.route = route, this.stack.push(layer), route; + }, methods.concat("all").forEach((function(method) { + Router.prototype[method] = function(path) { + var route = this.route(path); + return route[method].apply(route, slice.call(arguments, 1)), this; + }; + })); }, function(module, exports, __webpack_require__) { module.exports = Fingerprint; - var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(30), crypto = __webpack_require__(9), errs = __webpack_require__(44), Key = __webpack_require__(26), PrivateKey = __webpack_require__(28), Certificate = __webpack_require__(102), utils = __webpack_require__(27), FingerprintFormatError = errs.FingerprintFormatError, InvalidAlgorithmError = errs.InvalidAlgorithmError; + var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(31), crypto = __webpack_require__(6), errs = __webpack_require__(48), Key = __webpack_require__(27), PrivateKey = __webpack_require__(29), Certificate = __webpack_require__(114), utils = __webpack_require__(28), FingerprintFormatError = errs.FingerprintFormatError, InvalidAlgorithmError = errs.InvalidAlgorithmError; function Fingerprint(opts) { if (assert.object(opts, "options"), assert.string(opts.type, "options.type"), assert.buffer(opts.hash, "options.hash"), assert.string(opts.algorithm, "options.algorithm"), this.algorithm = opts.algorithm.toLowerCase(), @@ -12249,7 +14265,7 @@ for (i = 0; i < n; i += 65536) crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, 65536))); for (i = 0; i < n; i++) x[i] = v[i]; cleanup(v); - })) : (crypto = __webpack_require__(9)) && crypto.randomBytes && nacl.setPRNG((function(x, n) { + })) : (crypto = __webpack_require__(6)) && crypto.randomBytes && nacl.setPRNG((function(x, n) { var i, v = crypto.randomBytes(n); for (i = 0; i < n; i++) x[i] = v[i]; cleanup(v); @@ -12549,7 +14565,7 @@ readECDSACurve: readECDSACurve, writeECDSACurve: writeECDSACurve }; - var assert = __webpack_require__(15), asn1 = __webpack_require__(49), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(30), utils = __webpack_require__(27), Key = __webpack_require__(26), PrivateKey = __webpack_require__(28), pem = __webpack_require__(56); + var assert = __webpack_require__(15), asn1 = __webpack_require__(54), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(31), utils = __webpack_require__(28), Key = __webpack_require__(27), PrivateKey = __webpack_require__(29), pem = __webpack_require__(62); function readMPInt(der, nm) { return assert.strictEqual(der.peek(), asn1.Ber.Integer, nm + " is not an Integer"), utils.mpNormalize(der.readString(asn1.Ber.Integer, !0)); @@ -12687,10 +14703,10 @@ } }, function(module, exports, __webpack_require__) { module.exports = Certificate; - var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(30), crypto = __webpack_require__(9), Fingerprint = __webpack_require__(97), errs = (__webpack_require__(48), - __webpack_require__(44)), utils = (__webpack_require__(0), __webpack_require__(27)), Key = __webpack_require__(26), PrivateKey = __webpack_require__(28), Identity = __webpack_require__(103), formats = {}; - formats.openssh = __webpack_require__(1059), formats.x509 = __webpack_require__(484), - formats.pem = __webpack_require__(1060); + var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(31), crypto = __webpack_require__(6), Fingerprint = __webpack_require__(109), errs = (__webpack_require__(53), + __webpack_require__(48)), utils = (__webpack_require__(0), __webpack_require__(28)), Key = __webpack_require__(27), PrivateKey = __webpack_require__(29), Identity = __webpack_require__(115), formats = {}; + formats.openssh = __webpack_require__(1143), formats.x509 = __webpack_require__(526), + formats.pem = __webpack_require__(1144); var CertificateParseError = errs.CertificateParseError, InvalidAlgorithmError = errs.InvalidAlgorithmError; function Certificate(opts) { assert.object(opts, "options"), assert.arrayOfObject(opts.subjects, "options.subjects"), @@ -12852,9 +14868,9 @@ }; }, function(module, exports, __webpack_require__) { module.exports = Identity; - var assert = __webpack_require__(15), utils = (__webpack_require__(30), __webpack_require__(9), - __webpack_require__(97), __webpack_require__(48), __webpack_require__(44), __webpack_require__(0), - __webpack_require__(27)), asn1 = __webpack_require__(49), Buffer = __webpack_require__(14).Buffer, DNS_NAME_RE = /^([*]|[a-z0-9][a-z0-9\-]{0,62})(?:\.([*]|[a-z0-9][a-z0-9\-]{0,62}))*$/i, oids = { + var assert = __webpack_require__(15), utils = (__webpack_require__(31), __webpack_require__(6), + __webpack_require__(109), __webpack_require__(53), __webpack_require__(48), __webpack_require__(0), + __webpack_require__(28)), asn1 = __webpack_require__(54), Buffer = __webpack_require__(14).Buffer, DNS_NAME_RE = /^([*]|[a-z0-9][a-z0-9\-]{0,62})(?:\.([*]|[a-z0-9][a-z0-9\-]{0,62}))*$/i, oids = { cn: "2.5.4.3", o: "2.5.4.10", ou: "2.5.4.11", @@ -13054,9 +15070,9 @@ }; }, function(module, exports, __webpack_require__) { module.exports = Writer; - var fs = __webpack_require__(59), inherits = __webpack_require__(7), rimraf = __webpack_require__(513), mkdir = __webpack_require__(170), path = __webpack_require__(4), umask = "win32" === process.platform ? 0 : process.umask(), getType = __webpack_require__(154), Abstract = __webpack_require__(243); + var fs = __webpack_require__(65), inherits = __webpack_require__(8), rimraf = __webpack_require__(556), mkdir = __webpack_require__(186), path = __webpack_require__(5), umask = "win32" === process.platform ? 0 : process.umask(), getType = __webpack_require__(168), Abstract = __webpack_require__(274); inherits(Writer, Abstract), Writer.dirmode = parseInt("0777", 8) & ~umask, Writer.filemode = parseInt("0666", 8) & ~umask; - var DirWriter = __webpack_require__(514), LinkWriter = __webpack_require__(515), FileWriter = __webpack_require__(516), ProxyWriter = __webpack_require__(517); + var DirWriter = __webpack_require__(557), LinkWriter = __webpack_require__(558), FileWriter = __webpack_require__(559), ProxyWriter = __webpack_require__(560); function Writer(props, current) { "string" == typeof props && (props = { path: props @@ -13207,61 +15223,6 @@ }; }, function(module, exports) { module.exports = require("tty"); -}, function(module, exports, __webpack_require__) { - "use strict"; - var deprecate = __webpack_require__(47)("body-parser"), parsers = Object.create(null); - function createParserGetter(name) { - return function() { - return (function(parserName) { - var parser = parsers[parserName]; - if (void 0 !== parser) return parser; - switch (parserName) { - case "json": - parser = __webpack_require__(550); - break; - - case "raw": - parser = __webpack_require__(558); - break; - - case "text": - parser = __webpack_require__(559); - break; - - case "urlencoded": - parser = __webpack_require__(560); - } - return parsers[parserName] = parser; - })(name); - }; - } - exports = module.exports = deprecate.function((function(options) { - var opts = {}; - if (options) for (var prop in options) "type" !== prop && (opts[prop] = options[prop]); - var _urlencoded = exports.urlencoded(opts), _json = exports.json(opts); - return function(req, res, next) { - _json(req, res, (function(err) { - if (err) return next(err); - _urlencoded(req, res, next); - })); - }; - }), "bodyParser: use individual json/urlencoded middlewares"), Object.defineProperty(exports, "json", { - configurable: !0, - enumerable: !0, - get: createParserGetter("json") - }), Object.defineProperty(exports, "raw", { - configurable: !0, - enumerable: !0, - get: createParserGetter("raw") - }), Object.defineProperty(exports, "text", { - configurable: !0, - enumerable: !0, - get: createParserGetter("text") - }), Object.defineProperty(exports, "urlencoded", { - configurable: !0, - enumerable: !0, - get: createParserGetter("urlencoded") - }); }, function(module, exports, __webpack_require__) { "use strict"; var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g, TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/, TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/, QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g, QUOTE_REGEXP = /([\\"])/g, TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/; @@ -13319,7 +15280,7 @@ }); }, function(module, exports, __webpack_require__) { "use strict"; - var codes = __webpack_require__(551); + var codes = __webpack_require__(597); function status(code) { if ("number" == typeof code) { if (!status[code]) throw new Error("invalid status code: " + code); @@ -13360,7 +15321,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var createError = __webpack_require__(87), getBody = __webpack_require__(554), iconv = __webpack_require__(68), onFinished = __webpack_require__(85), zlib = __webpack_require__(45); + var createError = __webpack_require__(98), getBody = __webpack_require__(600), iconv = __webpack_require__(66), onFinished = __webpack_require__(96), zlib = __webpack_require__(43); module.exports = function(req, res, next, parse, debug, options) { var length, stream, opts = options; req._body = !0; @@ -13431,7 +15392,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var debug = __webpack_require__(8)("router"), flatten = __webpack_require__(251), Layer = __webpack_require__(252), methods = __webpack_require__(61), mixin = __webpack_require__(60), parseUrl = __webpack_require__(46), Route = __webpack_require__(563), setPrototypeOf = __webpack_require__(564), slice = Array.prototype.slice, defer = "function" == typeof setImmediate ? setImmediate : function(fn) { + var debug = __webpack_require__(9)("router"), flatten = __webpack_require__(287), Layer = __webpack_require__(288), methods = __webpack_require__(68), mixin = __webpack_require__(67), parseUrl = __webpack_require__(49), Route = __webpack_require__(609), setPrototypeOf = __webpack_require__(610), slice = Array.prototype.slice, defer = "function" == typeof setImmediate ? setImmediate : function(fn) { process.nextTick(fn.bind.apply(fn, arguments)); }; function Router(options) { @@ -13615,7 +15576,7 @@ return !0; }; }, function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(9).randomBytes; + module.exports = __webpack_require__(6).randomBytes; }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(list, compare, sorted) { @@ -13642,7 +15603,7 @@ })(list)); }; }, function(module, exports, __webpack_require__) { - var zlib = __webpack_require__(45), AVAILABLE_WINDOW_BITS = [ 8, 9, 10, 11, 12, 13, 14, 15 ]; + var zlib = __webpack_require__(43), AVAILABLE_WINDOW_BITS = [ 8, 9, 10, 11, 12, 13, 14, 15 ]; function PerMessageDeflate(options, isServer, maxPayload) { if (this instanceof PerMessageDeflate == 0) throw new TypeError("Classes can't be function-called"); this._options = options || {}, this._isServer = !!isServer, this._inflate = null, @@ -13913,13 +15874,11 @@ }, ip.fromLong = function(ipl) { return `${ipl >>> 24}.${ipl >> 16 & 255}.${ipl >> 8 & 255}.${255 & ipl}`; }; -}, function(module, exports) { - module.exports = require("timers"); }, function(module, exports, __webpack_require__) { (function() { var XMLAttribute, XMLNode, isFunction, isObject, ref, hasProp = {}.hasOwnProperty; - ref = __webpack_require__(52), isObject = ref.isObject, isFunction = ref.isFunction, - XMLNode = __webpack_require__(36), XMLAttribute = __webpack_require__(280), module.exports = (function(superClass) { + ref = __webpack_require__(57), isObject = ref.isObject, isFunction = ref.isFunction, + XMLNode = __webpack_require__(37), XMLAttribute = __webpack_require__(401), module.exports = (function(superClass) { function XMLElement(parent, name, attributes) { if (XMLElement.__super__.constructor.call(this, parent), null == name) throw new Error("Missing element name"); this.name = this.stringify.eleName(name), this.attributes = {}, null != attributes && this.attribute(attributes), @@ -13964,7 +15923,7 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, hasProp = {}.hasOwnProperty; - XMLNode = __webpack_require__(36), module.exports = (function(superClass) { + XMLNode = __webpack_require__(37), module.exports = (function(superClass) { function XMLCData(parent, text) { if (XMLCData.__super__.constructor.call(this, parent), null == text) throw new Error("Missing CDATA text"); this.text = this.stringify.cdata(text); @@ -13985,7 +15944,7 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, hasProp = {}.hasOwnProperty; - XMLNode = __webpack_require__(36), module.exports = (function(superClass) { + XMLNode = __webpack_require__(37), module.exports = (function(superClass) { function XMLComment(parent, text) { if (XMLComment.__super__.constructor.call(this, parent), null == text) throw new Error("Missing comment text"); this.text = this.stringify.comment(text); @@ -14006,7 +15965,7 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, isObject, hasProp = {}.hasOwnProperty; - isObject = __webpack_require__(52).isObject, XMLNode = __webpack_require__(36), + isObject = __webpack_require__(57).isObject, XMLNode = __webpack_require__(37), module.exports = (function(superClass) { function XMLDeclaration(parent, version, encoding, standalone) { var ref; @@ -14029,9 +15988,9 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLNode, isObject, hasProp = {}.hasOwnProperty; - isObject = __webpack_require__(52).isObject, XMLNode = __webpack_require__(36), - XMLDTDAttList = __webpack_require__(123), XMLDTDEntity = __webpack_require__(124), - XMLDTDElement = __webpack_require__(125), XMLDTDNotation = __webpack_require__(126), + isObject = __webpack_require__(57).isObject, XMLNode = __webpack_require__(37), + XMLDTDAttList = __webpack_require__(133), XMLDTDEntity = __webpack_require__(134), + XMLDTDElement = __webpack_require__(135), XMLDTDNotation = __webpack_require__(136), module.exports = (function(superClass) { function XMLDocType(parent, pubID, sysID) { var ref, ref1; @@ -14086,7 +16045,7 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, hasProp = {}.hasOwnProperty; - XMLNode = __webpack_require__(36), module.exports = (function(superClass) { + XMLNode = __webpack_require__(37), module.exports = (function(superClass) { function XMLDTDAttList(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) { if (XMLDTDAttList.__super__.constructor.call(this, parent), null == elementName) throw new Error("Missing DTD element name"); if (null == attributeName) throw new Error("Missing DTD attribute name"); @@ -14113,7 +16072,7 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, isObject, hasProp = {}.hasOwnProperty; - isObject = __webpack_require__(52).isObject, XMLNode = __webpack_require__(36), + isObject = __webpack_require__(57).isObject, XMLNode = __webpack_require__(37), module.exports = (function(superClass) { function XMLDTDEntity(parent, pe, name, value) { if (XMLDTDEntity.__super__.constructor.call(this, parent), null == name) throw new Error("Missing entity name"); @@ -14140,7 +16099,7 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, hasProp = {}.hasOwnProperty; - XMLNode = __webpack_require__(36), module.exports = (function(superClass) { + XMLNode = __webpack_require__(37), module.exports = (function(superClass) { function XMLDTDElement(parent, name, value) { if (XMLDTDElement.__super__.constructor.call(this, parent), null == name) throw new Error("Missing DTD element name"); value || (value = "(#PCDATA)"), Array.isArray(value) && (value = "(" + value.join(",") + ")"), @@ -14160,7 +16119,7 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, hasProp = {}.hasOwnProperty; - XMLNode = __webpack_require__(36), module.exports = (function(superClass) { + XMLNode = __webpack_require__(37), module.exports = (function(superClass) { function XMLDTDNotation(parent, name, value) { if (XMLDTDNotation.__super__.constructor.call(this, parent), null == name) throw new Error("Missing notation name"); if (!value.pubID && !value.sysID) throw new Error("Public or system identifiers are required for an external entity"); @@ -14181,7 +16140,7 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, hasProp = {}.hasOwnProperty; - XMLNode = __webpack_require__(36), module.exports = (function(superClass) { + XMLNode = __webpack_require__(37), module.exports = (function(superClass) { function XMLRaw(parent, text) { if (XMLRaw.__super__.constructor.call(this, parent), null == text) throw new Error("Missing raw text"); this.value = this.stringify.raw(text); @@ -14202,7 +16161,7 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, hasProp = {}.hasOwnProperty; - XMLNode = __webpack_require__(36), module.exports = (function(superClass) { + XMLNode = __webpack_require__(37), module.exports = (function(superClass) { function XMLText(parent, text) { if (XMLText.__super__.constructor.call(this, parent), null == text) throw new Error("Missing element text"); this.value = this.stringify.eleText(text); @@ -14223,7 +16182,7 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, hasProp = {}.hasOwnProperty; - XMLNode = __webpack_require__(36), module.exports = (function(superClass) { + XMLNode = __webpack_require__(37), module.exports = (function(superClass) { function XMLProcessingInstruction(parent, target, value) { if (XMLProcessingInstruction.__super__.constructor.call(this, parent), null == target) throw new Error("Missing instruction target"); this.target = this.stringify.insTarget(target), value && (this.value = this.stringify.insValue(value)); @@ -14280,7 +16239,7 @@ }; }; }, function(module, exports, __webpack_require__) { - var path = __webpack_require__(4), fs = __webpack_require__(2), _0777 = parseInt("0777", 8); + var path = __webpack_require__(5), fs = __webpack_require__(2), _0777 = parseInt("0777", 8); function mkdirP(p, opts, f, made) { "function" == typeof opts ? (f = opts, opts = {}) : opts && "object" == typeof opts || (opts = { mode: opts @@ -14323,7 +16282,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var Buffer = __webpack_require__(25).Buffer, isEncoding = Buffer.isEncoding || function(encoding) { + var Buffer = __webpack_require__(26).Buffer, isEncoding = Buffer.isEncoding || function(encoding) { switch ((encoding = "" + encoding) && encoding.toLowerCase()) { case "hex": case "utf8": @@ -14800,7 +16759,7 @@ exports.E_ALREADY_LOCKED = new Error("mutex already locked"), exports.E_CANCELED = new Error("request for lock canceled"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); + var util = __webpack_require__(0), MasterElement = __webpack_require__(30), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Segment(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Segment, start, length); } @@ -14811,7 +16770,7 @@ _proto.oneChild(Segment.prototype, "Tags"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Segment = __webpack_require__(136), schema = __webpack_require__(13); + var util = __webpack_require__(0), Segment = __webpack_require__(146), schema = __webpack_require__(13); function Segment1(doc, elementId, start, length) { Segment.call(this, doc, elementId, start, length); } @@ -14858,7 +16817,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var crc32 = __webpack_require__(71).crc32, fs = __webpack_require__(2), Mime = __webpack_require__(63), Path = __webpack_require__(4), util = __webpack_require__(0), Segment1 = __webpack_require__(137), schema = __webpack_require__(13), tools = __webpack_require__(75); + var crc32 = __webpack_require__(82).crc32, fs = __webpack_require__(2), Mime = __webpack_require__(45), Path = __webpack_require__(5), util = __webpack_require__(0), Segment1 = __webpack_require__(147), schema = __webpack_require__(13), tools = __webpack_require__(86); function Segment2(doc, tagId, start, length) { Segment1.call(this, doc, tagId, start, length); } @@ -14974,7 +16933,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var _AdtsStream, Stream = __webpack_require__(37), ONE_SECOND_IN_TS = __webpack_require__(54).ONE_SECOND_IN_TS, ADTS_SAMPLING_FREQUENCIES = [ 96e3, 88200, 64e3, 48e3, 44100, 32e3, 24e3, 22050, 16e3, 12e3, 11025, 8e3, 7350 ]; + var _AdtsStream, Stream = __webpack_require__(38), ONE_SECOND_IN_TS = __webpack_require__(59).ONE_SECOND_IN_TS, ADTS_SAMPLING_FREQUENCIES = [ 96e3, 88200, 64e3, 48e3, 44100, 32e3, 24e3, 22050, 16e3, 12e3, 11025, 8e3, 7350 ]; (_AdtsStream = function(handlePartialSegments) { var buffer, frameNum = 0; _AdtsStream.prototype.init.call(this), this.skipWarn_ = function(start, end) { @@ -15203,7 +17162,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var ONE_SECOND_IN_TS = __webpack_require__(54).ONE_SECOND_IN_TS; + var ONE_SECOND_IN_TS = __webpack_require__(59).ONE_SECOND_IN_TS; module.exports = { clearDtsInfo: function(track) { delete track.minSegmentDts, delete track.maxSegmentDts, delete track.minSegmentPts, @@ -15227,7 +17186,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var _TransportPacketStream, _TransportParseStream, _ElementaryStream, Stream = __webpack_require__(37), CaptionStream = __webpack_require__(416), StreamTypes = __webpack_require__(144), TimestampRolloverStream = __webpack_require__(418).TimestampRolloverStream; + var _TransportPacketStream, _TransportParseStream, _ElementaryStream, Stream = __webpack_require__(38), CaptionStream = __webpack_require__(450), StreamTypes = __webpack_require__(154), TimestampRolloverStream = __webpack_require__(452).TimestampRolloverStream; (_TransportPacketStream = function() { var buffer = new Uint8Array(188), bytesInBuffer = 0; _TransportPacketStream.prototype.init.call(this), this.push = function(bytes) { @@ -15395,7 +17354,7 @@ CaptionStream: CaptionStream.CaptionStream, Cea608Stream: CaptionStream.Cea608Stream, Cea708Stream: CaptionStream.Cea708Stream, - MetadataStream: __webpack_require__(831) + MetadataStream: __webpack_require__(884) }; for (var type in StreamTypes) StreamTypes.hasOwnProperty(type) && (m2ts[type] = StreamTypes[type]); module.exports = m2ts; @@ -15468,7 +17427,7 @@ default: mod }; }; - const http_1 = __importDefault(__webpack_require__(11)), https_1 = __importDefault(__webpack_require__(21)), url_1 = __webpack_require__(6), stream_1 = __webpack_require__(3), httpLibs = { + const http_1 = __importDefault(__webpack_require__(11)), https_1 = __importDefault(__webpack_require__(21)), url_1 = __webpack_require__(7), stream_1 = __webpack_require__(3), httpLibs = { "http:": http_1.default, "https:": https_1.default }, redirectStatusCodes = new Set([ 301, 302, 303, 307, 308 ]), retryStatusCodes = new Set([ 429, 503 ]), requestEvents = [ "connect", "continue", "information", "socket", "timeout", "upgrade" ], responseEvents = [ "aborted" ]; @@ -15655,7 +17614,7 @@ return target; }; }, function(module, exports, __webpack_require__) { - var rng = __webpack_require__(941), bytesToUuid = __webpack_require__(942); + var rng = __webpack_require__(994), bytesToUuid = __webpack_require__(995); module.exports = function(options, buf, offset) { var i = buf && offset || 0; "string" == typeof options && (buf = "binary" === options ? new Array(16) : null, @@ -15684,7 +17643,77 @@ return null == depth ? flattenForever(array, []) : flattenWithDepth(array, [], depth); }; }, function(module, exports, __webpack_require__) { - var assert = __webpack_require__(15), sshpk = __webpack_require__(231), util = __webpack_require__(0), HASH_ALGOS = { + (function() { + var XMLNode, hasProp = {}.hasOwnProperty; + XMLNode = __webpack_require__(42), module.exports = (function(superClass) { + function XMLCharacterData(parent) { + XMLCharacterData.__super__.constructor.call(this, parent), this.value = ""; + } + return (function(child, parent) { + for (var key in parent) 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; + })(XMLCharacterData, superClass), Object.defineProperty(XMLCharacterData.prototype, "data", { + get: function() { + return this.value; + }, + set: function(value) { + return this.value = value || ""; + } + }), Object.defineProperty(XMLCharacterData.prototype, "length", { + get: function() { + return this.value.length; + } + }), Object.defineProperty(XMLCharacterData.prototype, "textContent", { + get: function() { + return this.value; + }, + set: function(value) { + return this.value = value || ""; + } + }), XMLCharacterData.prototype.clone = function() { + return Object.create(this); + }, XMLCharacterData.prototype.substringData = function(offset, count) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLCharacterData.prototype.appendData = function(arg) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLCharacterData.prototype.insertData = function(offset, arg) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLCharacterData.prototype.deleteData = function(offset, count) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLCharacterData.prototype.replaceData = function(offset, count, arg) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLCharacterData.prototype.isEqualNode = function(node) { + return !!XMLCharacterData.__super__.isEqualNode.apply(this, arguments).isEqualNode(node) && node.data === this.data; + }, XMLCharacterData; + })(XMLNode); + }).call(this); +}, function(module, exports) { + (function() { + module.exports = { + None: 0, + OpenTag: 1, + InsideTag: 2, + CloseTag: 3 + }; + }).call(this); +}, function(module, exports) { + const cache = {}; + function getRandom() { + return (Math.random() + 1).toString(36).substring(7); + } + module.exports = { + set: (data, createKey) => { + let key = createKey || getRandom(); + for (;cache[key]; ) key = getRandom(); + return cache[key] = data, key; + }, + get: key => cache[key] || null + }; +}, function(module, exports, __webpack_require__) { + var assert = __webpack_require__(15), sshpk = __webpack_require__(262), util = __webpack_require__(0), HASH_ALGOS = { sha1: !0, sha256: !0, sha512: !0 @@ -15726,7 +17755,7 @@ } }; }, function(module, exports, __webpack_require__) { - var BigInteger = __webpack_require__(98).BigInteger, Barrett = BigInteger.prototype.Barrett; + var BigInteger = __webpack_require__(110).BigInteger, Barrett = BigInteger.prototype.Barrett; function ECFieldElementFp(q, x) { this.x = x, this.q = q; } @@ -15930,7 +17959,7 @@ case "bcrypt": var salt = kdfOptsBuf.readBuffer(), rounds = kdfOptsBuf.readInt(), cinf = utils.opensshCipherInfo(cipher); - if (void 0 === bcrypt && (bcrypt = __webpack_require__(481)), "string" == typeof options.passphrase && (options.passphrase = Buffer.from(options.passphrase, "utf-8")), + if (void 0 === bcrypt && (bcrypt = __webpack_require__(523)), "string" == typeof options.passphrase && (options.passphrase = Buffer.from(options.passphrase, "utf-8")), !Buffer.isBuffer(options.passphrase)) throw new errors.KeyEncryptedError(options.filename, "OpenSSH"); var pass = new Uint8Array(options.passphrase), salti = new Uint8Array(salt), out = new Uint8Array(cinf.keySize + cinf.blockSize); if (0 !== bcrypt.pbkdf(pass, pass.length, salti, salti.length, out, out.length, rounds)) throw new Error("bcrypt_pbkdf function returned failure, parameters invalid"); @@ -15978,7 +18007,7 @@ case "bcrypt": var salt = crypto.randomBytes(16), kdfssh = new SSHBuffer({}); - kdfssh.writeBuffer(salt), kdfssh.writeInt(16), kdfopts = kdfssh.toBuffer(), void 0 === bcrypt && (bcrypt = __webpack_require__(481)); + kdfssh.writeBuffer(salt), kdfssh.writeInt(16), kdfopts = kdfssh.toBuffer(), void 0 === bcrypt && (bcrypt = __webpack_require__(523)); var pass = new Uint8Array(passphrase), salti = new Uint8Array(salt), out = new Uint8Array(cinf.keySize + cinf.blockSize); if (0 !== bcrypt.pbkdf(pass, pass.length, salti, salti.length, out, out.length, 16)) throw new Error("bcrypt_pbkdf function returned failure, parameters invalid"); var ckey = (out = Buffer.from(out)).slice(0, cinf.keySize), iv = out.slice(cinf.keySize, cinf.keySize + cinf.blockSize), cipherStream = crypto.createCipheriv(cinf.opensslName, ckey, iv); @@ -16007,9 +18036,22 @@ return o += buf.write("-----END " + header + "-----\n", o), buf.slice(0, o); } }; - var bcrypt, assert = __webpack_require__(15), Buffer = (__webpack_require__(49), - __webpack_require__(14).Buffer), utils = (__webpack_require__(30), __webpack_require__(27)), crypto = __webpack_require__(9), PrivateKey = (__webpack_require__(26), - __webpack_require__(28)), pem = __webpack_require__(56), rfc4253 = __webpack_require__(57), SSHBuffer = __webpack_require__(100), errors = __webpack_require__(44); + var bcrypt, assert = __webpack_require__(15), Buffer = (__webpack_require__(54), + __webpack_require__(14).Buffer), utils = (__webpack_require__(31), __webpack_require__(28)), crypto = __webpack_require__(6), PrivateKey = (__webpack_require__(27), + __webpack_require__(29)), pem = __webpack_require__(62), rfc4253 = __webpack_require__(63), SSHBuffer = __webpack_require__(112), errors = __webpack_require__(48); +}, function(module, exports) { + const cache = {}; + function getRandom() { + return (Math.random() + 1).toString(36).substring(7); + } + module.exports = { + set: (data, createKey) => { + let key = createKey || getRandom(); + for (;cache[key]; ) key = getRandom(); + return cache[key] = data, key; + }, + get: key => cache[key] || null + }; }, function(module, exports, __webpack_require__) { var Buffer = __webpack_require__(10).Buffer; void 0 === Buffer.from && (Buffer.from = function(a, b, c) { @@ -16026,8 +18068,47 @@ } return null; }; +}, function(module, exports) { + const cache = {}; + function getRandom() { + return (Math.random() + 1).toString(36).substring(7); + } + module.exports = { + set: (data, createKey) => { + let key = createKey || getRandom(); + for (;cache[key]; ) key = getRandom(); + return cache[key] = data, key; + }, + get: key => cache[key] || null + }; +}, function(module, exports) { + const cache = {}; + function getRandom() { + return (Math.random() + 1).toString(36).substring(7); + } + module.exports = { + set: (data, createKey) => { + let key = createKey || getRandom(); + for (;cache[key]; ) key = getRandom(); + return cache[key] = data, key; + }, + get: key => cache[key] || null + }; +}, function(module, exports) { + const cache = {}; + function getRandom() { + return (Math.random() + 1).toString(36).substring(7); + } + module.exports = { + set: (data, createKey) => { + let key = createKey || getRandom(); + for (;cache[key]; ) key = getRandom(); + return cache[key] = data, key; + }, + get: key => cache[key] || null + }; }, function(module, exports, __webpack_require__) { - var url = __webpack_require__(6), os = __webpack_require__(23), events = __webpack_require__(5), path = __webpack_require__(4), util = __webpack_require__(0), fs = __webpack_require__(2), fetch = __webpack_require__(33), connect = __webpack_require__(540), rangeParser = __webpack_require__(159), bodyParser = __webpack_require__(106), Router = __webpack_require__(111), mime = __webpack_require__(565), pump = __webpack_require__(162), PeerSearch = __webpack_require__(567), parseTorrentFile = __webpack_require__(270), EngineFS = new events.EventEmitter, Counter = __webpack_require__(621), GuessFileIdx = __webpack_require__(622), spoofedPeerId = __webpack_require__(623), safeStatelessRegex = __webpack_require__(169), IH_REGEX = new RegExp("([0-9A-Fa-f]){40}", "g"); + var url = __webpack_require__(7), os = __webpack_require__(23), events = __webpack_require__(4), path = __webpack_require__(5), util = __webpack_require__(0), fs = __webpack_require__(2), fetch = __webpack_require__(34), connect = __webpack_require__(586), rangeParser = __webpack_require__(176), bodyParser = __webpack_require__(50), Router = __webpack_require__(122), mime = __webpack_require__(611), pump = __webpack_require__(179), PeerSearch = __webpack_require__(613), parseTorrentFile = __webpack_require__(303), EngineFS = new events.EventEmitter, Counter = __webpack_require__(663), GuessFileIdx = __webpack_require__(664), spoofedPeerId = __webpack_require__(665), safeStatelessRegex = __webpack_require__(80), IH_REGEX = new RegExp("([0-9A-Fa-f]){40}", "g"); EngineFS.STREAM_TIMEOUT = 3e4, EngineFS.ENGINE_TIMEOUT = 6e4; var engines = {}; function createEngine(infoHash, options, cb) { @@ -16479,7 +18560,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var stringify = __webpack_require__(561), parse = __webpack_require__(562), formats = __webpack_require__(250); + var stringify = __webpack_require__(607), parse = __webpack_require__(608), formats = __webpack_require__(286); module.exports = { formats: formats, parse: parse, @@ -16524,7 +18605,7 @@ }; var MATCHING_GROUP_REGEXP = /\((?!\?)/g; }, function(module, exports, __webpack_require__) { - var once = __webpack_require__(34), eos = __webpack_require__(163), fs = __webpack_require__(2), noop = function() {}, isFn = function(fn) { + var once = __webpack_require__(35), eos = __webpack_require__(180), fs = __webpack_require__(2), noop = function() {}, isFn = function(fn) { return "function" == typeof fn; }, destroyer = function(stream, reading, writing, callback) { callback = once(callback); @@ -16564,7 +18645,7 @@ return streams.reduce(pipe); }; }, function(module, exports, __webpack_require__) { - var once = __webpack_require__(34), noop = function() {}, eos = function(stream, opts, callback) { + var once = __webpack_require__(35), noop = function() {}, eos = function(stream, opts, callback) { if ("function" == typeof opts) return eos(stream, null, opts); opts || (opts = {}), callback = once(callback || noop); var ws = stream._writableState, rs = stream._readableState, readable = opts.readable || !1 !== opts.readable && stream.readable, writable = opts.writable || !1 !== opts.writable && stream.writable, cancelled = !1, onlegacyfinish = function() { @@ -16601,12 +18682,12 @@ module.exports = eos; }, function(module, exports, __webpack_require__) { var bencode = module.exports; - bencode.encode = __webpack_require__(570), bencode.decode = __webpack_require__(571), + bencode.encode = __webpack_require__(616), bencode.decode = __webpack_require__(617), bencode.byteLength = bencode.encodingLength = function(value) { return bencode.encode(value).length; }; }, function(module, exports, __webpack_require__) { - var crypto = __webpack_require__(9); + var crypto = __webpack_require__(6); function sha1sync(buf) { return crypto.createHash("sha1").update(buf).digest("hex"); } @@ -16933,15 +19014,15 @@ return "ipv6" === (addr = this.parse(string)).kind() && addr.isIPv4MappedAddress() ? addr.toIPv4Address() : addr; }; }).call(this); - }).call(this, __webpack_require__(62)(module)); + }).call(this, __webpack_require__(69)(module)); }, function(module, exports, __webpack_require__) { module.exports = Tracker; - var EventEmitter = __webpack_require__(5).EventEmitter; + var EventEmitter = __webpack_require__(4).EventEmitter; function Tracker(client, announceUrl) { EventEmitter.call(this), this.client = client, this.announceUrl = announceUrl, this.interval = null, this.destroyed = !1; } - __webpack_require__(7)(Tracker, EventEmitter), Tracker.prototype.setInterval = function(intervalMs) { + __webpack_require__(8)(Tracker, EventEmitter), Tracker.prototype.setInterval = function(intervalMs) { if (null == intervalMs && (intervalMs = this.DEFAULT_ANNOUNCE_INTERVAL), clearInterval(this.interval), intervalMs) { var update = this.announce.bind(this, this.client._defaultAnnounceOpts()); @@ -16971,24 +19052,7 @@ return names[toString.call(arr)]; } }, function(module, exports, __webpack_require__) { - const vm = __webpack_require__(624); - module.exports = function(str, regex, timeout) { - let sandbox = { - str: str, - re: regex, - result: null - }; - try { - vm.runInContext("result = !!str.match(re);", vm.createContext(sandbox), { - timeout: timeout - }); - } catch (e) { - console.log("Warning: regex " + regex + ' was detected as evil when tested against "' + str + '", ignoring this regex pattern'); - } - return sandbox.result; - }; -}, function(module, exports, __webpack_require__) { - var path = __webpack_require__(4), fs = __webpack_require__(2), _0777 = parseInt("0777", 8); + var path = __webpack_require__(5), fs = __webpack_require__(2), _0777 = parseInt("0777", 8); function mkdirP(p, opts, f, made) { "function" == typeof opts ? (f = opts, opts = {}) : opts && "object" == typeof opts || (opts = { mode: opts @@ -17026,40 +19090,9 @@ } return made; }; -}, function(module, exports) { - module.exports = function(processor, concurrency) { - concurrency = concurrency || 1; - var waiting = [], inProg = {}, count = 0; - function update() { - for (;waiting.length && count < concurrency; ) !(function() { - var t = waiting.shift(); - inProg[t.task.id] ? inProg[t.task.id].push(t.cb) : (inProg[t.task.id] = [ t.cb ], - count++, processor(t.task, (function() { - var args = arguments; - inProg[t.task.id] && (count--, inProg[t.task.id].forEach((function(cb) { - cb.apply(null, args); - })), delete inProg[t.task.id], setImmediate(update)); - }))); - })(); - } - this.push = function(task, cb) { - if (!task.hasOwnProperty("id")) throw new Error("no task.id"); - inProg[task.id] ? inProg[task.id].push(cb) : (waiting.push({ - task: task, - cb: cb - }), setImmediate(update)); - }, this.unshift = function(task, cb) { - inProg[task.id] ? inProg[task.id].push(cb) : (waiting.unshift({ - task: task, - cb: cb - }), setImmediate(update)); - }, this.length = function() { - return waiting.length; - }; - }; }, function(module, exports, __webpack_require__) { "use strict"; - var assert = __webpack_require__(22), util = (__webpack_require__(2), __webpack_require__(0)), debug = __webpack_require__(40)("matroska:abstractSource"), Source = __webpack_require__(276), tools = __webpack_require__(72); + var assert = __webpack_require__(25), util = (__webpack_require__(2), __webpack_require__(0)), debug = __webpack_require__(44)("matroska:abstractSource"), Source = __webpack_require__(309), tools = __webpack_require__(83); function AbstractSource() { this._vints = [], this._vintsSize = 0; } @@ -17139,8 +19172,8 @@ (function() { "use strict"; var builder, defaults, parser, processors, hasProp = {}.hasOwnProperty; - defaults = __webpack_require__(174), builder = __webpack_require__(683), parser = __webpack_require__(688), - processors = __webpack_require__(283), exports.defaults = defaults.defaults, exports.processors = processors, + defaults = __webpack_require__(189), builder = __webpack_require__(741), parser = __webpack_require__(746), + processors = __webpack_require__(404), exports.defaults = defaults.defaults, exports.processors = processors, exports.ValidationError = (function(superClass) { function ValidationError(message) { this.message = message; @@ -17228,12 +19261,12 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLElement, XMLProcessingInstruction, XMLRaw, XMLText, XMLWriterBase, hasProp = {}.hasOwnProperty; - XMLDeclaration = __webpack_require__(121), XMLDocType = __webpack_require__(122), - XMLCData = __webpack_require__(119), XMLComment = __webpack_require__(120), XMLElement = __webpack_require__(118), - XMLRaw = __webpack_require__(127), XMLText = __webpack_require__(128), XMLProcessingInstruction = __webpack_require__(129), - XMLDTDAttList = __webpack_require__(123), XMLDTDElement = __webpack_require__(125), - XMLDTDEntity = __webpack_require__(124), XMLDTDNotation = __webpack_require__(126), - XMLWriterBase = __webpack_require__(282), module.exports = (function(superClass) { + XMLDeclaration = __webpack_require__(131), XMLDocType = __webpack_require__(132), + XMLCData = __webpack_require__(129), XMLComment = __webpack_require__(130), XMLElement = __webpack_require__(128), + XMLRaw = __webpack_require__(137), XMLText = __webpack_require__(138), XMLProcessingInstruction = __webpack_require__(139), + XMLDTDAttList = __webpack_require__(133), XMLDTDElement = __webpack_require__(135), + XMLDTDEntity = __webpack_require__(134), XMLDTDNotation = __webpack_require__(136), + XMLWriterBase = __webpack_require__(403), module.exports = (function(superClass) { function XMLStringWriter(options) { XMLStringWriter.__super__.constructor.call(this, options); } @@ -17400,827 +19433,6 @@ }, XMLStringWriter; })(XMLWriterBase); }).call(this); -}, function(module, exports, __webpack_require__) { - !(function(sax) { - sax.parser = function(strict, opt) { - return new SAXParser(strict, opt); - }, sax.SAXParser = SAXParser, sax.SAXStream = SAXStream, sax.createStream = function(strict, opt) { - return new SAXStream(strict, opt); - }, sax.MAX_BUFFER_LENGTH = 65536; - var Stream, buffers = [ "comment", "sgmlDecl", "textNode", "tagName", "doctype", "procInstName", "procInstBody", "entity", "attribName", "attribValue", "cdata", "script" ]; - function SAXParser(strict, opt) { - if (!(this instanceof SAXParser)) return new SAXParser(strict, opt); - !(function(parser) { - for (var i = 0, l = buffers.length; i < l; i++) parser[buffers[i]] = ""; - })(this), this.q = this.c = "", this.bufferCheckPosition = sax.MAX_BUFFER_LENGTH, - this.opt = opt || {}, this.opt.lowercase = this.opt.lowercase || this.opt.lowercasetags, - this.looseCase = this.opt.lowercase ? "toLowerCase" : "toUpperCase", this.tags = [], - this.closed = this.closedRoot = this.sawRoot = !1, this.tag = this.error = null, - this.strict = !!strict, this.noscript = !(!strict && !this.opt.noscript), this.state = S.BEGIN, - this.strictEntities = this.opt.strictEntities, this.ENTITIES = this.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES), - this.attribList = [], this.opt.xmlns && (this.ns = Object.create(rootNS)), this.trackPosition = !1 !== this.opt.position, - this.trackPosition && (this.position = this.line = this.column = 0), emit(this, "onready"); - } - sax.EVENTS = [ "text", "processinginstruction", "sgmldeclaration", "doctype", "comment", "opentagstart", "attribute", "opentag", "closetag", "opencdata", "cdata", "closecdata", "error", "end", "ready", "script", "opennamespace", "closenamespace" ], - Object.create || (Object.create = function(o) { - function F() {} - return F.prototype = o, new F; - }), Object.keys || (Object.keys = function(o) { - var a = []; - for (var i in o) o.hasOwnProperty(i) && a.push(i); - return a; - }), SAXParser.prototype = { - end: function() { - end(this); - }, - write: function(chunk) { - if (this.error) throw this.error; - if (this.closed) return error(this, "Cannot write after close. Assign an onready handler."); - if (null === chunk) return end(this); - "object" == typeof chunk && (chunk = chunk.toString()); - for (var parser, num, entity, entityLC, numStr, i = 0, c = ""; c = charAt(chunk, i++), - this.c = c, c; ) switch (this.trackPosition && (this.position++, "\n" === c ? (this.line++, - this.column = 0) : this.column++), this.state) { - case S.BEGIN: - if (this.state = S.BEGIN_WHITESPACE, "\ufeff" === c) continue; - beginWhiteSpace(this, c); - continue; - - case S.BEGIN_WHITESPACE: - beginWhiteSpace(this, c); - continue; - - case S.TEXT: - if (this.sawRoot && !this.closedRoot) { - for (var starti = i - 1; c && "<" !== c && "&" !== c; ) (c = charAt(chunk, i++)) && this.trackPosition && (this.position++, - "\n" === c ? (this.line++, this.column = 0) : this.column++); - this.textNode += chunk.substring(starti, i - 1); - } - "<" !== c || this.sawRoot && this.closedRoot && !this.strict ? (isWhitespace(c) || this.sawRoot && !this.closedRoot || strictFail(this, "Text data outside of root node."), - "&" === c ? this.state = S.TEXT_ENTITY : this.textNode += c) : (this.state = S.OPEN_WAKA, - this.startTagPosition = this.position); - continue; - - case S.SCRIPT: - "<" === c ? this.state = S.SCRIPT_ENDING : this.script += c; - continue; - - case S.SCRIPT_ENDING: - "/" === c ? this.state = S.CLOSE_TAG : (this.script += "<" + c, this.state = S.SCRIPT); - continue; - - case S.OPEN_WAKA: - if ("!" === c) this.state = S.SGML_DECL, this.sgmlDecl = ""; else if (isWhitespace(c)) ; else if (isMatch(nameStart, c)) this.state = S.OPEN_TAG, - this.tagName = c; else if ("/" === c) this.state = S.CLOSE_TAG, this.tagName = ""; else if ("?" === c) this.state = S.PROC_INST, - this.procInstName = this.procInstBody = ""; else { - if (strictFail(this, "Unencoded <"), this.startTagPosition + 1 < this.position) { - var pad = this.position - this.startTagPosition; - c = new Array(pad).join(" ") + c; - } - this.textNode += "<" + c, this.state = S.TEXT; - } - continue; - - case S.SGML_DECL: - "[CDATA[" === (this.sgmlDecl + c).toUpperCase() ? (emitNode(this, "onopencdata"), - this.state = S.CDATA, this.sgmlDecl = "", this.cdata = "") : this.sgmlDecl + c === "--" ? (this.state = S.COMMENT, - this.comment = "", this.sgmlDecl = "") : "DOCTYPE" === (this.sgmlDecl + c).toUpperCase() ? (this.state = S.DOCTYPE, - (this.doctype || this.sawRoot) && strictFail(this, "Inappropriately located doctype declaration"), - this.doctype = "", this.sgmlDecl = "") : ">" === c ? (emitNode(this, "onsgmldeclaration", this.sgmlDecl), - this.sgmlDecl = "", this.state = S.TEXT) : isQuote(c) ? (this.state = S.SGML_DECL_QUOTED, - this.sgmlDecl += c) : this.sgmlDecl += c; - continue; - - case S.SGML_DECL_QUOTED: - c === this.q && (this.state = S.SGML_DECL, this.q = ""), this.sgmlDecl += c; - continue; - - case S.DOCTYPE: - ">" === c ? (this.state = S.TEXT, emitNode(this, "ondoctype", this.doctype), this.doctype = !0) : (this.doctype += c, - "[" === c ? this.state = S.DOCTYPE_DTD : isQuote(c) && (this.state = S.DOCTYPE_QUOTED, - this.q = c)); - continue; - - case S.DOCTYPE_QUOTED: - this.doctype += c, c === this.q && (this.q = "", this.state = S.DOCTYPE); - continue; - - case S.DOCTYPE_DTD: - this.doctype += c, "]" === c ? this.state = S.DOCTYPE : isQuote(c) && (this.state = S.DOCTYPE_DTD_QUOTED, - this.q = c); - continue; - - case S.DOCTYPE_DTD_QUOTED: - this.doctype += c, c === this.q && (this.state = S.DOCTYPE_DTD, this.q = ""); - continue; - - case S.COMMENT: - "-" === c ? this.state = S.COMMENT_ENDING : this.comment += c; - continue; - - case S.COMMENT_ENDING: - "-" === c ? (this.state = S.COMMENT_ENDED, this.comment = textopts(this.opt, this.comment), - this.comment && emitNode(this, "oncomment", this.comment), this.comment = "") : (this.comment += "-" + c, - this.state = S.COMMENT); - continue; - - case S.COMMENT_ENDED: - ">" !== c ? (strictFail(this, "Malformed comment"), this.comment += "--" + c, this.state = S.COMMENT) : this.state = S.TEXT; - continue; - - case S.CDATA: - "]" === c ? this.state = S.CDATA_ENDING : this.cdata += c; - continue; - - case S.CDATA_ENDING: - "]" === c ? this.state = S.CDATA_ENDING_2 : (this.cdata += "]" + c, this.state = S.CDATA); - continue; - - case S.CDATA_ENDING_2: - ">" === c ? (this.cdata && emitNode(this, "oncdata", this.cdata), emitNode(this, "onclosecdata"), - this.cdata = "", this.state = S.TEXT) : "]" === c ? this.cdata += "]" : (this.cdata += "]]" + c, - this.state = S.CDATA); - continue; - - case S.PROC_INST: - "?" === c ? this.state = S.PROC_INST_ENDING : isWhitespace(c) ? this.state = S.PROC_INST_BODY : this.procInstName += c; - continue; - - case S.PROC_INST_BODY: - if (!this.procInstBody && isWhitespace(c)) continue; - "?" === c ? this.state = S.PROC_INST_ENDING : this.procInstBody += c; - continue; - - case S.PROC_INST_ENDING: - ">" === c ? (emitNode(this, "onprocessinginstruction", { - name: this.procInstName, - body: this.procInstBody - }), this.procInstName = this.procInstBody = "", this.state = S.TEXT) : (this.procInstBody += "?" + c, - this.state = S.PROC_INST_BODY); - continue; - - case S.OPEN_TAG: - isMatch(nameBody, c) ? this.tagName += c : (newTag(this), ">" === c ? openTag(this) : "/" === c ? this.state = S.OPEN_TAG_SLASH : (isWhitespace(c) || strictFail(this, "Invalid character in tag name"), - this.state = S.ATTRIB)); - continue; - - case S.OPEN_TAG_SLASH: - ">" === c ? (openTag(this, !0), closeTag(this)) : (strictFail(this, "Forward-slash in opening tag not followed by >"), - this.state = S.ATTRIB); - continue; - - case S.ATTRIB: - if (isWhitespace(c)) continue; - ">" === c ? openTag(this) : "/" === c ? this.state = S.OPEN_TAG_SLASH : isMatch(nameStart, c) ? (this.attribName = c, - this.attribValue = "", this.state = S.ATTRIB_NAME) : strictFail(this, "Invalid attribute name"); - continue; - - case S.ATTRIB_NAME: - "=" === c ? this.state = S.ATTRIB_VALUE : ">" === c ? (strictFail(this, "Attribute without value"), - this.attribValue = this.attribName, attrib(this), openTag(this)) : isWhitespace(c) ? this.state = S.ATTRIB_NAME_SAW_WHITE : isMatch(nameBody, c) ? this.attribName += c : strictFail(this, "Invalid attribute name"); - continue; - - case S.ATTRIB_NAME_SAW_WHITE: - if ("=" === c) this.state = S.ATTRIB_VALUE; else { - if (isWhitespace(c)) continue; - strictFail(this, "Attribute without value"), this.tag.attributes[this.attribName] = "", - this.attribValue = "", emitNode(this, "onattribute", { - name: this.attribName, - value: "" - }), this.attribName = "", ">" === c ? openTag(this) : isMatch(nameStart, c) ? (this.attribName = c, - this.state = S.ATTRIB_NAME) : (strictFail(this, "Invalid attribute name"), this.state = S.ATTRIB); - } - continue; - - case S.ATTRIB_VALUE: - if (isWhitespace(c)) continue; - isQuote(c) ? (this.q = c, this.state = S.ATTRIB_VALUE_QUOTED) : (strictFail(this, "Unquoted attribute value"), - this.state = S.ATTRIB_VALUE_UNQUOTED, this.attribValue = c); - continue; - - case S.ATTRIB_VALUE_QUOTED: - if (c !== this.q) { - "&" === c ? this.state = S.ATTRIB_VALUE_ENTITY_Q : this.attribValue += c; - continue; - } - attrib(this), this.q = "", this.state = S.ATTRIB_VALUE_CLOSED; - continue; - - case S.ATTRIB_VALUE_CLOSED: - isWhitespace(c) ? this.state = S.ATTRIB : ">" === c ? openTag(this) : "/" === c ? this.state = S.OPEN_TAG_SLASH : isMatch(nameStart, c) ? (strictFail(this, "No whitespace between attributes"), - this.attribName = c, this.attribValue = "", this.state = S.ATTRIB_NAME) : strictFail(this, "Invalid attribute name"); - continue; - - case S.ATTRIB_VALUE_UNQUOTED: - if (!isAttribEnd(c)) { - "&" === c ? this.state = S.ATTRIB_VALUE_ENTITY_U : this.attribValue += c; - continue; - } - attrib(this), ">" === c ? openTag(this) : this.state = S.ATTRIB; - continue; - - case S.CLOSE_TAG: - if (this.tagName) ">" === c ? closeTag(this) : isMatch(nameBody, c) ? this.tagName += c : this.script ? (this.script += "" === c ? closeTag(this) : strictFail(this, "Invalid characters in closing tag"); - continue; - - case S.TEXT_ENTITY: - case S.ATTRIB_VALUE_ENTITY_Q: - case S.ATTRIB_VALUE_ENTITY_U: - var returnState, buffer; - switch (this.state) { - case S.TEXT_ENTITY: - returnState = S.TEXT, buffer = "textNode"; - break; - - case S.ATTRIB_VALUE_ENTITY_Q: - returnState = S.ATTRIB_VALUE_QUOTED, buffer = "attribValue"; - break; - - case S.ATTRIB_VALUE_ENTITY_U: - returnState = S.ATTRIB_VALUE_UNQUOTED, buffer = "attribValue"; - } - ";" === c ? (this[buffer] += (num = void 0, entity = void 0, entityLC = void 0, - numStr = void 0, entity = (parser = this).entity, entityLC = entity.toLowerCase(), - numStr = "", parser.ENTITIES[entity] ? parser.ENTITIES[entity] : parser.ENTITIES[entityLC] ? parser.ENTITIES[entityLC] : ("#" === (entity = entityLC).charAt(0) && ("x" === entity.charAt(1) ? (entity = entity.slice(2), - numStr = (num = parseInt(entity, 16)).toString(16)) : (entity = entity.slice(1), - numStr = (num = parseInt(entity, 10)).toString(10))), entity = entity.replace(/^0+/, ""), - isNaN(num) || numStr.toLowerCase() !== entity ? (strictFail(parser, "Invalid character entity"), - "&" + parser.entity + ";") : String.fromCodePoint(num))), this.entity = "", this.state = returnState) : isMatch(this.entity.length ? entityBody : entityStart, c) ? this.entity += c : (strictFail(this, "Invalid character in entity name"), - this[buffer] += "&" + this.entity + c, this.entity = "", this.state = returnState); - continue; - - default: - throw new Error(this, "Unknown state: " + this.state); - } - return this.position >= this.bufferCheckPosition && (function(parser) { - for (var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10), maxActual = 0, i = 0, l = buffers.length; i < l; i++) { - var len = parser[buffers[i]].length; - if (len > maxAllowed) switch (buffers[i]) { - case "textNode": - closeText(parser); - break; - - case "cdata": - emitNode(parser, "oncdata", parser.cdata), parser.cdata = ""; - break; - - case "script": - emitNode(parser, "onscript", parser.script), parser.script = ""; - break; - - default: - error(parser, "Max buffer length exceeded: " + buffers[i]); - } - maxActual = Math.max(maxActual, len); - } - var m = sax.MAX_BUFFER_LENGTH - maxActual; - parser.bufferCheckPosition = m + parser.position; - })(this), this; - }, - resume: function() { - return this.error = null, this; - }, - close: function() { - return this.write(null); - }, - flush: function() { - closeText(this), "" !== this.cdata && (emitNode(this, "oncdata", this.cdata), this.cdata = ""), - "" !== this.script && (emitNode(this, "onscript", this.script), this.script = ""); - } - }; - try { - Stream = __webpack_require__(3).Stream; - } catch (ex) { - Stream = function() {}; - } - var streamWraps = sax.EVENTS.filter((function(ev) { - return "error" !== ev && "end" !== ev; - })); - function SAXStream(strict, opt) { - if (!(this instanceof SAXStream)) return new SAXStream(strict, opt); - Stream.apply(this), this._parser = new SAXParser(strict, opt), this.writable = !0, - this.readable = !0; - var me = this; - this._parser.onend = function() { - me.emit("end"); - }, this._parser.onerror = function(er) { - me.emit("error", er), me._parser.error = null; - }, this._decoder = null, streamWraps.forEach((function(ev) { - Object.defineProperty(me, "on" + ev, { - get: function() { - return me._parser["on" + ev]; - }, - set: function(h) { - if (!h) return me.removeAllListeners(ev), me._parser["on" + ev] = h, h; - me.on(ev, h); - }, - enumerable: !0, - configurable: !1 - }); - })); - } - SAXStream.prototype = Object.create(Stream.prototype, { - constructor: { - value: SAXStream - } - }), SAXStream.prototype.write = function(data) { - if ("function" == typeof Buffer && "function" == typeof Buffer.isBuffer && Buffer.isBuffer(data)) { - if (!this._decoder) { - var SD = __webpack_require__(156).StringDecoder; - this._decoder = new SD("utf8"); - } - data = this._decoder.write(data); - } - return this._parser.write(data.toString()), this.emit("data", data), !0; - }, SAXStream.prototype.end = function(chunk) { - return chunk && chunk.length && this.write(chunk), this._parser.end(), !0; - }, SAXStream.prototype.on = function(ev, handler) { - var me = this; - return me._parser["on" + ev] || -1 === streamWraps.indexOf(ev) || (me._parser["on" + ev] = function() { - var args = 1 === arguments.length ? [ arguments[0] ] : Array.apply(null, arguments); - args.splice(0, 0, ev), me.emit.apply(me, args); - }), Stream.prototype.on.call(me, ev, handler); - }; - var XML_NAMESPACE = "http://www.w3.org/XML/1998/namespace", rootNS = { - xml: XML_NAMESPACE, - xmlns: "http://www.w3.org/2000/xmlns/" - }, 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]/, 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-]/, 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]/, 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-]/; - function isWhitespace(c) { - return " " === c || "\n" === c || "\r" === c || "\t" === c; - } - function isQuote(c) { - return '"' === c || "'" === c; - } - function isAttribEnd(c) { - return ">" === c || isWhitespace(c); - } - function isMatch(regex, c) { - return regex.test(c); - } - function notMatch(regex, c) { - return !isMatch(regex, c); - } - var stringFromCharCode, floor, fromCodePoint, S = 0; - for (var s in sax.STATE = { - BEGIN: S++, - BEGIN_WHITESPACE: S++, - TEXT: S++, - TEXT_ENTITY: S++, - OPEN_WAKA: S++, - SGML_DECL: S++, - SGML_DECL_QUOTED: S++, - DOCTYPE: S++, - DOCTYPE_QUOTED: S++, - DOCTYPE_DTD: S++, - DOCTYPE_DTD_QUOTED: S++, - COMMENT_STARTING: S++, - COMMENT: S++, - COMMENT_ENDING: S++, - COMMENT_ENDED: S++, - CDATA: S++, - CDATA_ENDING: S++, - CDATA_ENDING_2: S++, - PROC_INST: S++, - PROC_INST_BODY: S++, - PROC_INST_ENDING: S++, - OPEN_TAG: S++, - OPEN_TAG_SLASH: S++, - ATTRIB: S++, - ATTRIB_NAME: S++, - ATTRIB_NAME_SAW_WHITE: S++, - ATTRIB_VALUE: S++, - ATTRIB_VALUE_QUOTED: S++, - ATTRIB_VALUE_CLOSED: S++, - ATTRIB_VALUE_UNQUOTED: S++, - ATTRIB_VALUE_ENTITY_Q: S++, - ATTRIB_VALUE_ENTITY_U: S++, - CLOSE_TAG: S++, - CLOSE_TAG_SAW_WHITE: S++, - SCRIPT: S++, - SCRIPT_ENDING: S++ - }, sax.XML_ENTITIES = { - amp: "&", - gt: ">", - lt: "<", - quot: '"', - apos: "'" - }, sax.ENTITIES = { - amp: "&", - gt: ">", - lt: "<", - quot: '"', - apos: "'", - AElig: 198, - Aacute: 193, - Acirc: 194, - Agrave: 192, - Aring: 197, - Atilde: 195, - Auml: 196, - Ccedil: 199, - ETH: 208, - Eacute: 201, - Ecirc: 202, - Egrave: 200, - Euml: 203, - Iacute: 205, - Icirc: 206, - Igrave: 204, - Iuml: 207, - Ntilde: 209, - Oacute: 211, - Ocirc: 212, - Ograve: 210, - Oslash: 216, - Otilde: 213, - Ouml: 214, - THORN: 222, - Uacute: 218, - Ucirc: 219, - Ugrave: 217, - Uuml: 220, - Yacute: 221, - aacute: 225, - acirc: 226, - aelig: 230, - agrave: 224, - aring: 229, - atilde: 227, - auml: 228, - ccedil: 231, - eacute: 233, - ecirc: 234, - egrave: 232, - eth: 240, - euml: 235, - iacute: 237, - icirc: 238, - igrave: 236, - iuml: 239, - ntilde: 241, - oacute: 243, - ocirc: 244, - ograve: 242, - oslash: 248, - otilde: 245, - ouml: 246, - szlig: 223, - thorn: 254, - uacute: 250, - ucirc: 251, - ugrave: 249, - uuml: 252, - yacute: 253, - yuml: 255, - copy: 169, - reg: 174, - nbsp: 160, - iexcl: 161, - cent: 162, - pound: 163, - curren: 164, - yen: 165, - brvbar: 166, - sect: 167, - uml: 168, - ordf: 170, - laquo: 171, - not: 172, - shy: 173, - macr: 175, - deg: 176, - plusmn: 177, - sup1: 185, - sup2: 178, - sup3: 179, - acute: 180, - micro: 181, - para: 182, - middot: 183, - cedil: 184, - ordm: 186, - raquo: 187, - frac14: 188, - frac12: 189, - frac34: 190, - iquest: 191, - times: 215, - divide: 247, - OElig: 338, - oelig: 339, - Scaron: 352, - scaron: 353, - Yuml: 376, - fnof: 402, - circ: 710, - tilde: 732, - Alpha: 913, - Beta: 914, - Gamma: 915, - Delta: 916, - Epsilon: 917, - Zeta: 918, - Eta: 919, - Theta: 920, - Iota: 921, - Kappa: 922, - Lambda: 923, - Mu: 924, - Nu: 925, - Xi: 926, - Omicron: 927, - Pi: 928, - Rho: 929, - Sigma: 931, - Tau: 932, - Upsilon: 933, - Phi: 934, - Chi: 935, - Psi: 936, - Omega: 937, - alpha: 945, - beta: 946, - gamma: 947, - delta: 948, - epsilon: 949, - zeta: 950, - eta: 951, - theta: 952, - iota: 953, - kappa: 954, - lambda: 955, - mu: 956, - nu: 957, - xi: 958, - omicron: 959, - pi: 960, - rho: 961, - sigmaf: 962, - sigma: 963, - tau: 964, - upsilon: 965, - phi: 966, - chi: 967, - psi: 968, - omega: 969, - thetasym: 977, - upsih: 978, - piv: 982, - ensp: 8194, - emsp: 8195, - thinsp: 8201, - zwnj: 8204, - zwj: 8205, - lrm: 8206, - rlm: 8207, - ndash: 8211, - mdash: 8212, - lsquo: 8216, - rsquo: 8217, - sbquo: 8218, - ldquo: 8220, - rdquo: 8221, - bdquo: 8222, - dagger: 8224, - Dagger: 8225, - bull: 8226, - hellip: 8230, - permil: 8240, - prime: 8242, - Prime: 8243, - lsaquo: 8249, - rsaquo: 8250, - oline: 8254, - frasl: 8260, - euro: 8364, - image: 8465, - weierp: 8472, - real: 8476, - trade: 8482, - alefsym: 8501, - larr: 8592, - uarr: 8593, - rarr: 8594, - darr: 8595, - harr: 8596, - crarr: 8629, - lArr: 8656, - uArr: 8657, - rArr: 8658, - dArr: 8659, - hArr: 8660, - forall: 8704, - part: 8706, - exist: 8707, - empty: 8709, - nabla: 8711, - isin: 8712, - notin: 8713, - ni: 8715, - prod: 8719, - sum: 8721, - minus: 8722, - lowast: 8727, - radic: 8730, - prop: 8733, - infin: 8734, - ang: 8736, - and: 8743, - or: 8744, - cap: 8745, - cup: 8746, - int: 8747, - there4: 8756, - sim: 8764, - cong: 8773, - asymp: 8776, - ne: 8800, - equiv: 8801, - le: 8804, - ge: 8805, - sub: 8834, - sup: 8835, - nsub: 8836, - sube: 8838, - supe: 8839, - oplus: 8853, - otimes: 8855, - perp: 8869, - sdot: 8901, - lceil: 8968, - rceil: 8969, - lfloor: 8970, - rfloor: 8971, - lang: 9001, - rang: 9002, - loz: 9674, - spades: 9824, - clubs: 9827, - hearts: 9829, - diams: 9830 - }, Object.keys(sax.ENTITIES).forEach((function(key) { - var e = sax.ENTITIES[key], s = "number" == typeof e ? String.fromCharCode(e) : e; - sax.ENTITIES[key] = s; - })), sax.STATE) sax.STATE[sax.STATE[s]] = s; - function emit(parser, event, data) { - parser[event] && parser[event](data); - } - function emitNode(parser, nodeType, data) { - parser.textNode && closeText(parser), emit(parser, nodeType, data); - } - function closeText(parser) { - parser.textNode = textopts(parser.opt, parser.textNode), parser.textNode && emit(parser, "ontext", parser.textNode), - parser.textNode = ""; - } - function textopts(opt, text) { - return opt.trim && (text = text.trim()), opt.normalize && (text = text.replace(/\s+/g, " ")), - text; - } - function error(parser, er) { - return closeText(parser), parser.trackPosition && (er += "\nLine: " + parser.line + "\nColumn: " + parser.column + "\nChar: " + parser.c), - er = new Error(er), parser.error = er, emit(parser, "onerror", er), parser; - } - function end(parser) { - return parser.sawRoot && !parser.closedRoot && strictFail(parser, "Unclosed root tag"), - parser.state !== S.BEGIN && parser.state !== S.BEGIN_WHITESPACE && parser.state !== S.TEXT && error(parser, "Unexpected end"), - closeText(parser), parser.c = "", parser.closed = !0, emit(parser, "onend"), SAXParser.call(parser, parser.strict, parser.opt), - parser; - } - function strictFail(parser, message) { - if ("object" != typeof parser || !(parser instanceof SAXParser)) throw new Error("bad call to strictFail"); - parser.strict && error(parser, message); - } - function newTag(parser) { - parser.strict || (parser.tagName = parser.tagName[parser.looseCase]()); - var parent = parser.tags[parser.tags.length - 1] || parser, tag = parser.tag = { - name: parser.tagName, - attributes: {} - }; - parser.opt.xmlns && (tag.ns = parent.ns), parser.attribList.length = 0, emitNode(parser, "onopentagstart", tag); - } - function qname(name, attribute) { - var qualName = name.indexOf(":") < 0 ? [ "", name ] : name.split(":"), prefix = qualName[0], local = qualName[1]; - return attribute && "xmlns" === name && (prefix = "xmlns", local = ""), { - prefix: prefix, - local: local - }; - } - function attrib(parser) { - if (parser.strict || (parser.attribName = parser.attribName[parser.looseCase]()), - -1 !== parser.attribList.indexOf(parser.attribName) || parser.tag.attributes.hasOwnProperty(parser.attribName)) parser.attribName = parser.attribValue = ""; else { - if (parser.opt.xmlns) { - var qn = qname(parser.attribName, !0), prefix = qn.prefix, local = qn.local; - if ("xmlns" === prefix) if ("xml" === local && parser.attribValue !== XML_NAMESPACE) strictFail(parser, "xml: prefix must be bound to " + XML_NAMESPACE + "\nActual: " + parser.attribValue); else if ("xmlns" === local && "http://www.w3.org/2000/xmlns/" !== parser.attribValue) strictFail(parser, "xmlns: prefix must be bound to http://www.w3.org/2000/xmlns/\nActual: " + parser.attribValue); else { - var tag = parser.tag, parent = parser.tags[parser.tags.length - 1] || parser; - tag.ns === parent.ns && (tag.ns = Object.create(parent.ns)), tag.ns[local] = parser.attribValue; - } - parser.attribList.push([ parser.attribName, parser.attribValue ]); - } else parser.tag.attributes[parser.attribName] = parser.attribValue, emitNode(parser, "onattribute", { - name: parser.attribName, - value: parser.attribValue - }); - parser.attribName = parser.attribValue = ""; - } - } - function openTag(parser, selfClosing) { - if (parser.opt.xmlns) { - var tag = parser.tag, qn = qname(parser.tagName); - tag.prefix = qn.prefix, tag.local = qn.local, tag.uri = tag.ns[qn.prefix] || "", - tag.prefix && !tag.uri && (strictFail(parser, "Unbound namespace prefix: " + JSON.stringify(parser.tagName)), - tag.uri = qn.prefix); - var parent = parser.tags[parser.tags.length - 1] || parser; - tag.ns && parent.ns !== tag.ns && Object.keys(tag.ns).forEach((function(p) { - emitNode(parser, "onopennamespace", { - prefix: p, - uri: tag.ns[p] - }); - })); - for (var i = 0, l = parser.attribList.length; i < l; i++) { - var nv = parser.attribList[i], name = nv[0], value = nv[1], qualName = qname(name, !0), prefix = qualName.prefix, local = qualName.local, uri = "" === prefix ? "" : tag.ns[prefix] || "", a = { - name: name, - value: value, - prefix: prefix, - local: local, - uri: uri - }; - prefix && "xmlns" !== prefix && !uri && (strictFail(parser, "Unbound namespace prefix: " + JSON.stringify(prefix)), - a.uri = prefix), parser.tag.attributes[name] = a, emitNode(parser, "onattribute", a); - } - parser.attribList.length = 0; - } - parser.tag.isSelfClosing = !!selfClosing, parser.sawRoot = !0, parser.tags.push(parser.tag), - emitNode(parser, "onopentag", parser.tag), selfClosing || (parser.noscript || "script" !== parser.tagName.toLowerCase() ? parser.state = S.TEXT : parser.state = S.SCRIPT, - parser.tag = null, parser.tagName = ""), parser.attribName = parser.attribValue = "", - parser.attribList.length = 0; - } - function closeTag(parser) { - if (!parser.tagName) return strictFail(parser, "Weird empty close tag."), parser.textNode += "", - void (parser.state = S.TEXT); - if (parser.script) { - if ("script" !== parser.tagName) return parser.script += "", - parser.tagName = "", void (parser.state = S.SCRIPT); - emitNode(parser, "onscript", parser.script), parser.script = ""; - } - var t = parser.tags.length, tagName = parser.tagName; - parser.strict || (tagName = tagName[parser.looseCase]()); - for (var closeTo = tagName; t-- && parser.tags[t].name !== closeTo; ) strictFail(parser, "Unexpected close tag"); - if (t < 0) return strictFail(parser, "Unmatched closing tag: " + parser.tagName), - parser.textNode += "", void (parser.state = S.TEXT); - parser.tagName = tagName; - for (var s = parser.tags.length; s-- > t; ) { - var tag = parser.tag = parser.tags.pop(); - parser.tagName = parser.tag.name, emitNode(parser, "onclosetag", parser.tagName); - var x = {}; - for (var i in tag.ns) x[i] = tag.ns[i]; - var parent = parser.tags[parser.tags.length - 1] || parser; - parser.opt.xmlns && tag.ns !== parent.ns && Object.keys(tag.ns).forEach((function(p) { - var n = tag.ns[p]; - emitNode(parser, "onclosenamespace", { - prefix: p, - uri: n - }); - })); - } - 0 === t && (parser.closedRoot = !0), parser.tagName = parser.attribValue = parser.attribName = "", - parser.attribList.length = 0, parser.state = S.TEXT; - } - function beginWhiteSpace(parser, c) { - "<" === c ? (parser.state = S.OPEN_WAKA, parser.startTagPosition = parser.position) : isWhitespace(c) || (strictFail(parser, "Non-whitespace before first tag."), - parser.textNode = c, parser.state = S.TEXT); - } - function charAt(chunk, i) { - var result = ""; - return i < chunk.length && (result = chunk.charAt(i)), result; - } - S = sax.STATE, String.fromCodePoint || (stringFromCharCode = String.fromCharCode, - floor = Math.floor, fromCodePoint = function() { - var highSurrogate, lowSurrogate, MAX_SIZE = 16384, codeUnits = [], index = -1, length = arguments.length; - if (!length) return ""; - for (var result = ""; ++index < length; ) { - var codePoint = Number(arguments[index]); - if (!isFinite(codePoint) || codePoint < 0 || codePoint > 1114111 || floor(codePoint) !== codePoint) throw RangeError("Invalid code point: " + codePoint); - codePoint <= 65535 ? codeUnits.push(codePoint) : (highSurrogate = 55296 + ((codePoint -= 65536) >> 10), - lowSurrogate = codePoint % 1024 + 56320, codeUnits.push(highSurrogate, lowSurrogate)), - (index + 1 === length || codeUnits.length > MAX_SIZE) && (result += stringFromCharCode.apply(null, codeUnits), - codeUnits.length = 0); - } - return result; - }, Object.defineProperty ? Object.defineProperty(String, "fromCodePoint", { - value: fromCodePoint, - configurable: !0, - writable: !0 - }) : String.fromCodePoint = fromCodePoint); - })(exports); }, function(module, exports) { module.exports = function(text, textLen, escapeSequences) { var i, j, escN, quality, hits = 0, misses = 0, shifts = 0; @@ -18247,10 +19459,10 @@ function mix(from, into) { for (var key in from) into[key] = from[key]; } - module.exports = proto, proto.from = __webpack_require__(730), proto.to = __webpack_require__(731), - proto.is = __webpack_require__(732), proto.subarray = __webpack_require__(733), - proto.join = __webpack_require__(734), proto.copy = __webpack_require__(735), proto.create = __webpack_require__(736), - mix(__webpack_require__(737), proto), mix(__webpack_require__(738), proto); + module.exports = proto, proto.from = __webpack_require__(784), proto.to = __webpack_require__(785), + proto.is = __webpack_require__(786), proto.subarray = __webpack_require__(787), + proto.join = __webpack_require__(788), proto.copy = __webpack_require__(789), proto.create = __webpack_require__(790), + mix(__webpack_require__(791), proto), mix(__webpack_require__(792), proto); }, function(module, exports) { module.exports = { mediacodec: { @@ -18460,6 +19672,21 @@ } } }; +}, function(module, exports, __webpack_require__) { + const EventEmitter = __webpack_require__(4), bridge = "android" !== process.platform || process.env.UNITY_ENV ? null : process._linkedBinding("android_bridge"), events = {}, eventEmitter = new EventEmitter; + module.exports = { + dispatch: (event, data) => { + null !== bridge && bridge.dispatch(event, JSON.stringify(data)); + }, + on: (event, cb) => { + null !== bridge && (events[event] || (events[event] = !0, bridge.setListener(event, (data => { + eventEmitter.emit(event, JSON.parse(data)); + }))), eventEmitter.on(event, cb)); + }, + off: (event, cb) => { + null !== bridge && eventEmitter.off(event, cb); + } + }; }, function(module, exports, __webpack_require__) { exports.encode = function Bencode(obj) { var n, buf, buffer = null; @@ -18642,9 +19869,9 @@ }; }, function(module, exports, __webpack_require__) { module.exports = glob; - var rp = __webpack_require__(389), minimatch = __webpack_require__(182), inherits = (minimatch.Minimatch, - __webpack_require__(7)), EE = __webpack_require__(5).EventEmitter, path = __webpack_require__(4), assert = __webpack_require__(22), isAbsolute = __webpack_require__(183), globSync = __webpack_require__(785), common = __webpack_require__(390), setopts = common.setopts, ownProp = common.ownProp, inflight = __webpack_require__(786), childrenIgnored = (__webpack_require__(0), - common.childrenIgnored), isIgnored = common.isIgnored, once = __webpack_require__(34); + var rp = __webpack_require__(424), minimatch = __webpack_require__(197), inherits = (minimatch.Minimatch, + __webpack_require__(8)), EE = __webpack_require__(4).EventEmitter, path = __webpack_require__(5), assert = __webpack_require__(25), isAbsolute = __webpack_require__(198), globSync = __webpack_require__(838), common = __webpack_require__(425), setopts = common.setopts, ownProp = common.ownProp, inflight = __webpack_require__(839), childrenIgnored = (__webpack_require__(0), + common.childrenIgnored), isIgnored = common.isIgnored, once = __webpack_require__(35); function glob(pattern, options, cb) { if ("function" == typeof options && (cb = options, options = {}), options || (options = {}), options.sync) { @@ -18921,13 +20148,13 @@ module.exports = minimatch, minimatch.Minimatch = Minimatch; var path = (function() { try { - return __webpack_require__(4); + return __webpack_require__(5); } catch (e) {} })() || { sep: "/" }; minimatch.sep = path.sep; - var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}, expand = __webpack_require__(782), plTypes = { + var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}, expand = __webpack_require__(835), plTypes = { "!": { open: "(?:(?!(?:", close: "))[^/]*?)" @@ -20227,18 +21454,18 @@ return _._ = _, _; }, module.exports = factory(); }, function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(788); + module.exports = __webpack_require__(841); }, function(module, exports, __webpack_require__) { module.exports = __webpack_require__(0).deprecate; }, function(module, exports, __webpack_require__) { - const ffmpeg = __webpack_require__(802), ffprobe = __webpack_require__(808); + const ffmpeg = __webpack_require__(855), ffprobe = __webpack_require__(861); module.exports = { ffmpeg: ffmpeg, ffprobe: ffprobe }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(43), schema = __webpack_require__(13), _proto = __webpack_require__(19); + var util = __webpack_require__(0), Element1 = __webpack_require__(47), schema = __webpack_require__(13), _proto = __webpack_require__(19); function AttachedFile(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.AttachedFile, start, length); } @@ -20249,7 +21476,7 @@ _proto.addAttribute(AttachedFile.prototype, "FileUID"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); + var util = __webpack_require__(0), MasterElement = __webpack_require__(30), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Attachments(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Attachments, start, length); } @@ -20258,7 +21485,7 @@ }, _proto.addChild(Attachments.prototype, "AttachedFile"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(43), schema = __webpack_require__(13), _proto = __webpack_require__(19); + var util = __webpack_require__(0), Element1 = __webpack_require__(47), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Audio(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.Audio, start, length); } @@ -20268,7 +21495,7 @@ _proto.addAttribute(Audio.prototype, "Channels"), _proto.addAttribute(Audio.prototype, "BitDepth"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(43), schema = __webpack_require__(13), EMPTY_BUFFER = (__webpack_require__(19), + var util = __webpack_require__(0), Element1 = __webpack_require__(47), schema = __webpack_require__(13), EMPTY_BUFFER = (__webpack_require__(19), new Buffer([])); function CRC_32(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.CRC_32, start, length), this.data = EMPTY_BUFFER, @@ -20279,7 +21506,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); + var util = __webpack_require__(0), MasterElement = __webpack_require__(30), schema = __webpack_require__(13), _proto = __webpack_require__(19); function CuePoint(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.CuePoint, start, length); } @@ -20288,7 +21515,7 @@ }, _proto.addAttribute(CuePoint.prototype, "CueTime"), _proto.addChild(CuePoint.prototype, "CueTrackPositions"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(43), schema = __webpack_require__(13), _proto = __webpack_require__(19); + var util = __webpack_require__(0), Element1 = __webpack_require__(47), schema = __webpack_require__(13), _proto = __webpack_require__(19); function CueReference(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.CueReference, start, length); } @@ -20297,7 +21524,7 @@ }, _proto.addAttribute(CueReference.prototype, "CueRefTime"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); + var util = __webpack_require__(0), MasterElement = __webpack_require__(30), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Cues(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Cues, start, length); } @@ -20306,7 +21533,7 @@ }, _proto.addChild(Cues.prototype, "CuePoint"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); + var util = __webpack_require__(0), MasterElement = __webpack_require__(30), schema = __webpack_require__(13), _proto = __webpack_require__(19); function CueTrackPositions(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.CueTrackPositions, start, length); } @@ -20319,7 +21546,7 @@ _proto.addChild(CueTrackPositions.prototype, "CueReference"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); + var util = __webpack_require__(0), MasterElement = __webpack_require__(30), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Info(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Info, start, length); } @@ -20334,7 +21561,7 @@ _proto.addAttribute(Info.prototype, "MuxingApp"), _proto.addAttribute(Info.prototype, "WritingApp"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(43), schema = __webpack_require__(13), _proto = __webpack_require__(19); + var util = __webpack_require__(0), Element1 = __webpack_require__(47), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Seek(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.Seek, start, length); } @@ -20343,7 +21570,7 @@ }, _proto.addAttribute(Seek.prototype, "SeekID"), _proto.addAttribute(Seek.prototype, "SeekPosition"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); + var util = __webpack_require__(0), MasterElement = __webpack_require__(30), schema = __webpack_require__(13), _proto = __webpack_require__(19); function SeekHead(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.SeekHead, start, length); } @@ -20352,8 +21579,8 @@ }, _proto.addChild(SeekHead.prototype, "Seek"); }, function(module, exports, __webpack_require__) { "use strict"; - __webpack_require__(38), __webpack_require__(2), __webpack_require__(63), __webpack_require__(4); - var util = __webpack_require__(0), Segment2 = __webpack_require__(138); + __webpack_require__(40), __webpack_require__(2), __webpack_require__(45), __webpack_require__(5); + var util = __webpack_require__(0), Segment2 = __webpack_require__(148); function Segment3(doc, tagId, start, length) { Segment2.call(this, doc, tagId, start, length); } @@ -20361,7 +21588,7 @@ Segment3.prototype.findTagByName = function(tagName) {}; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); + var util = __webpack_require__(0), MasterElement = __webpack_require__(30), schema = __webpack_require__(13), _proto = __webpack_require__(19); function SimpleTag(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.SimpleTag, start, length); } @@ -20372,7 +21599,7 @@ _proto.addAttribute(SimpleTag.prototype, "TagString"), _proto.addAttribute(SimpleTag.prototype, "TagBinary"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); + var util = __webpack_require__(0), MasterElement = __webpack_require__(30), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Tag(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Tag, start, length); } @@ -20381,7 +21608,7 @@ }, _proto.oneChild(Tag.prototype, "Targets", !0), _proto.addChild(Tag.prototype, "SimpleTag"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); + var util = __webpack_require__(0), MasterElement = __webpack_require__(30), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Tags(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Tags, start, length); } @@ -20390,7 +21617,7 @@ }, _proto.addChild(Tags.prototype, "Tag"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); + var util = __webpack_require__(0), MasterElement = __webpack_require__(30), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Targets(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Targets, start, length); } @@ -20401,7 +21628,7 @@ _proto.addChild(Targets.prototype, "TagChapterUID"), _proto.addChild(Targets.prototype, "TagAttachmentUID"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); + var util = __webpack_require__(0), MasterElement = __webpack_require__(30), schema = __webpack_require__(13), _proto = __webpack_require__(19); function TrackEntry(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.TrackEntry, start, length); } @@ -20422,7 +21649,7 @@ _proto.addChild(TrackEntry.prototype, "TrackOperation"), _proto.addChild(TrackEntry.prototype, "ContentEncodings"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(29), schema = __webpack_require__(13), _proto = __webpack_require__(19); + var util = __webpack_require__(0), MasterElement = __webpack_require__(30), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Tracks(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Tracks, start, length); } @@ -20431,7 +21658,7 @@ }, _proto.addChild(Tracks.prototype, "TrackEntry"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(43), schema = __webpack_require__(13), _proto = __webpack_require__(19); + var util = __webpack_require__(0), Element1 = __webpack_require__(47), schema = __webpack_require__(13), _proto = __webpack_require__(19); function Video(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.Video, start, length); } @@ -20446,7 +21673,7 @@ _proto.addAttribute(Video.prototype, "AspectRatioType"), _proto.addAttribute(Video.prototype, "ColourSpace"); }, function(module, exports, __webpack_require__) { "use strict"; - var assert = __webpack_require__(22), util = (__webpack_require__(2), __webpack_require__(0)), debug = __webpack_require__(41)("matroska:abstractSource"), Source = __webpack_require__(408), tools = __webpack_require__(75); + var assert = __webpack_require__(25), util = (__webpack_require__(2), __webpack_require__(0)), debug = __webpack_require__(46)("matroska:abstractSource"), Source = __webpack_require__(442), tools = __webpack_require__(86); function AbstractSource() { this._vints = [], this._vintsSize = 0; } @@ -20524,7 +21751,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var _H264Stream, _NalByteStream, PROFILES_WITH_OPTIONAL_SPS_DATA, Stream = __webpack_require__(37), ExpGolomb = __webpack_require__(826); + var _H264Stream, _NalByteStream, PROFILES_WITH_OPTIONAL_SPS_DATA, Stream = __webpack_require__(38), ExpGolomb = __webpack_require__(879); (_NalByteStream = function() { var i, buffer, syncPoint = 0; _NalByteStream.prototype.init.call(this), this.push = function(data) { @@ -20751,7 +21978,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var toUnsigned = __webpack_require__(141).toUnsigned, parseType = __webpack_require__(210); + var toUnsigned = __webpack_require__(151).toUnsigned, parseType = __webpack_require__(225); module.exports = function findBox(data, path) { var i, size, type, end, subresults, results = []; if (!path.length) return null; @@ -20786,7 +22013,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var parseSampleFlags = __webpack_require__(829); + var parseSampleFlags = __webpack_require__(882); module.exports = function(data) { var sample, result = { version: data[0], @@ -20808,7 +22035,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var toUnsigned = __webpack_require__(141).toUnsigned; + var toUnsigned = __webpack_require__(151).toUnsigned; module.exports = function(data) { var result = { version: data[0], @@ -20820,7 +22047,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var _VideoSegmentStream, _AudioSegmentStream, _Transmuxer, _CoalesceStream, Stream = __webpack_require__(37), mp4 = __webpack_require__(140), frameUtils = __webpack_require__(414), audioFrameUtils = __webpack_require__(415), trackDecodeInfo = __webpack_require__(142), m2ts = __webpack_require__(143), clock = __webpack_require__(54), AdtsStream = __webpack_require__(139), H264Stream = __webpack_require__(208).H264Stream, AacStream = __webpack_require__(419), isLikelyAacData = __webpack_require__(145).isLikelyAacData, ONE_SECOND_IN_TS = __webpack_require__(54).ONE_SECOND_IN_TS, AUDIO_PROPERTIES = __webpack_require__(420), VIDEO_PROPERTIES = __webpack_require__(421), arrayEquals = function(a, b) { + var _VideoSegmentStream, _AudioSegmentStream, _Transmuxer, _CoalesceStream, Stream = __webpack_require__(38), mp4 = __webpack_require__(150), frameUtils = __webpack_require__(448), audioFrameUtils = __webpack_require__(449), trackDecodeInfo = __webpack_require__(152), m2ts = __webpack_require__(153), clock = __webpack_require__(59), AdtsStream = __webpack_require__(149), H264Stream = __webpack_require__(223).H264Stream, AacStream = __webpack_require__(453), isLikelyAacData = __webpack_require__(155).isLikelyAacData, ONE_SECOND_IN_TS = __webpack_require__(59).ONE_SECOND_IN_TS, AUDIO_PROPERTIES = __webpack_require__(454), VIDEO_PROPERTIES = __webpack_require__(455), arrayEquals = function(a, b) { var i; if (a.length !== b.length) return !1; for (i = 0; i < a.length; i++) if (a[i] !== b[i]) return !1; @@ -21248,7 +22475,7 @@ }, module.exports = _FlvTag; }, function(module, exports, __webpack_require__) { "use strict"; - var ERR_STREAM_PREMATURE_CLOSE = __webpack_require__(65).codes.ERR_STREAM_PREMATURE_CLOSE; + var ERR_STREAM_PREMATURE_CLOSE = __webpack_require__(74).codes.ERR_STREAM_PREMATURE_CLOSE; function noop() {} module.exports = function eos(stream, opts, callback) { if ("function" == typeof opts) return eos(stream, null, opts); @@ -21291,7 +22518,7 @@ }; }; }, function(module, exports, __webpack_require__) { - const readChunk = __webpack_require__(858); + const readChunk = __webpack_require__(911); module.exports = readChunk; }, function(module, exports, __webpack_require__) { "use strict"; @@ -21300,7 +22527,7 @@ default: mod }; }; - const stream_1 = __webpack_require__(3), url_1 = __webpack_require__(6), miniget_1 = __importDefault(__webpack_require__(146)), m3u8_parser_1 = __importDefault(__webpack_require__(887)), dash_mpd_parser_1 = __importDefault(__webpack_require__(888)), queue_1 = __importDefault(__webpack_require__(889)), parse_time_1 = __webpack_require__(437), supportedParsers = { + const stream_1 = __webpack_require__(3), url_1 = __webpack_require__(7), miniget_1 = __importDefault(__webpack_require__(156)), m3u8_parser_1 = __importDefault(__webpack_require__(940)), dash_mpd_parser_1 = __importDefault(__webpack_require__(941)), queue_1 = __importDefault(__webpack_require__(942)), parse_time_1 = __webpack_require__(471), supportedParsers = { m3u8: m3u8_parser_1.default, "dash-mpd": dash_mpd_parser_1.default }; @@ -21390,7 +22617,7 @@ }; m3u8stream.parseTimestamp = parse_time_1.humanStr, module.exports = m3u8stream; }, function(module, exports, __webpack_require__) { - var child = __webpack_require__(31), fetch = __webpack_require__(33), mime = __webpack_require__(89), fs = __webpack_require__(2), path = __webpack_require__(4), URL = __webpack_require__(6).URL, castingUtils = { + var child = __webpack_require__(32), fetch = __webpack_require__(34), mime = __webpack_require__(78), fs = __webpack_require__(2), path = __webpack_require__(5), URL = __webpack_require__(7).URL, castingUtils = { getMime: function(mimeURL) { var type = mime.lookup(mimeURL); return type ? Promise.resolve(type) : fetch(mimeURL, { @@ -21482,7 +22709,7 @@ "use strict"; var old; "undefined" != typeof Promise && (old = Promise); - var bluebird = __webpack_require__(909)(); + var bluebird = __webpack_require__(962)(); bluebird.noConflict = function() { try { Promise === bluebird && (Promise = old); @@ -21503,10 +22730,10 @@ }, function(module, exports, __webpack_require__) { "use strict"; !(function() { - var inherits = __webpack_require__(0).inherits, EventEmitter = __webpack_require__(5).EventEmitter, dgram = __webpack_require__(69), os = __webpack_require__(23), net = __webpack_require__(42), constants = __webpack_require__(221), regex = { + var inherits = __webpack_require__(0).inherits, EventEmitter = __webpack_require__(4).EventEmitter, dgram = __webpack_require__(79), os = __webpack_require__(23), net = __webpack_require__(39), constants = __webpack_require__(236), regex = { http: /HTTP\/\d{1}\.\d{1} \d+ .*/, ssdp: /^([^:]+):\s*(.*)$/ - }, version_node = process.version.substr(1), version_module = __webpack_require__(443).version, version_name = __webpack_require__(443).name, self = function(opts) { + }, version_node = process.version.substr(1), version_module = __webpack_require__(477).version, version_name = __webpack_require__(477).name, self = function(opts) { var that = this; opts = opts || {}, this.running = !1, this.sig = opts.sig || "node.js/" + version_node + " " + version_name + "/" + version_module, this.multicastIp = 0 !== net.isIP(opts.multicastIp) ? opts.multicastIp : "239.255.255.250", @@ -21674,7 +22901,7 @@ })(); }, function(module, exports, __webpack_require__) { __webpack_require__(2); - var ProtoBuf = __webpack_require__(947), cast_channel = __webpack_require__(951), extensions = ProtoBuf.loadJson(cast_channel).build("extensions.api.cast_channel"); + var ProtoBuf = __webpack_require__(1e3), cast_channel = __webpack_require__(1004), extensions = ProtoBuf.loadJson(cast_channel).build("extensions.api.cast_channel"); [ "CastMessage", "AuthChallenge", "AuthResponse", "AuthError", "DeviceAuthMessage" ].forEach((function(message) { module.exports[message] = { serialize: function(data) { @@ -21686,7 +22913,7 @@ }; })); }, function(module, exports, __webpack_require__) { - var sprintf = __webpack_require__(225).sprintf, utils = __webpack_require__(448), ElementPath = __webpack_require__(957), TreeBuilder = __webpack_require__(449).TreeBuilder, get_parser = __webpack_require__(959).get_parser, constants = __webpack_require__(963), element_ids = 0; + var sprintf = __webpack_require__(240).sprintf, utils = __webpack_require__(482), ElementPath = __webpack_require__(1010), TreeBuilder = __webpack_require__(483).TreeBuilder, get_parser = __webpack_require__(1012).get_parser, constants = __webpack_require__(1016), element_ids = 0; function Element(tag, attrib) { this._id = element_ids++, this.tag = tag, this.attrib = {}, this.text = null, this.tail = null, this._children = [], attrib && (this.attrib = utils.merge(this.attrib, attrib)); @@ -21916,7 +23143,10 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var createError = __webpack_require__(87), debug = __webpack_require__(8)("send"), deprecate = __webpack_require__(47)("send"), destroy = __webpack_require__(980), encodeUrl = __webpack_require__(83), escapeHtml = __webpack_require__(84), etag = __webpack_require__(461), fresh = __webpack_require__(462), fs = __webpack_require__(2), mime = __webpack_require__(63), ms = __webpack_require__(981), onFinished = __webpack_require__(85), parseRange = __webpack_require__(159), path = __webpack_require__(4), statuses = __webpack_require__(109), Stream = __webpack_require__(3), util = __webpack_require__(0), extname = path.extname, join = path.join, normalize = path.normalize, resolve = path.resolve, sep = path.sep, BYTES_RANGE_REGEXP = /^ *bytes=/, UP_PATH_REGEXP = /(?:^|[\\/])\.\.(?:[\\/]|$)/; + module.exports = __webpack_require__(1026); +}, function(module, exports, __webpack_require__) { + "use strict"; + var createError = __webpack_require__(98), debug = __webpack_require__(9)("send"), deprecate = __webpack_require__(51)("send"), destroy = __webpack_require__(1033), encodeUrl = __webpack_require__(94), escapeHtml = __webpack_require__(95), etag = __webpack_require__(495), fresh = __webpack_require__(496), fs = __webpack_require__(2), mime = __webpack_require__(45), ms = __webpack_require__(1034), onFinished = __webpack_require__(96), parseRange = __webpack_require__(176), path = __webpack_require__(5), statuses = __webpack_require__(120), Stream = __webpack_require__(3), util = __webpack_require__(0), extname = path.extname, join = path.join, normalize = path.normalize, resolve = path.resolve, sep = path.sep, BYTES_RANGE_REGEXP = /^ *bytes=/, UP_PATH_REGEXP = /(?:^|[\\/])\.\.(?:[\\/]|$)/; function SendStream(req, path, options) { Stream.call(this); var opts = options || {}; @@ -22239,87 +23469,1232 @@ name; }, parseSearchTerm: function(searchTerm) { - return searchTerm && "string" == typeof searchTerm ? (0, __webpack_require__(1014).remove)(searchTerm.replace(/[^\u0000-\u036F][ \t]*/gm, "")) : null; + return searchTerm && "string" == typeof searchTerm ? (0, __webpack_require__(1067).remove)(searchTerm.replace(/[^\u0000-\u036F][ \t]*/gm, "")) : null; } }; module.exports = helpers; -}, function(module, exports) { - const cache = {}; - function getRandom() { - return (Math.random() + 1).toString(36).substring(7); - } - module.exports = { - set: data => { - let key = getRandom(); - for (;cache[key]; ) key = getRandom(); - return cache[key] = data, key; - }, - get: key => cache[key] || null - }; }, function(module, exports, __webpack_require__) { - "use strict"; - var extend = __webpack_require__(147), cookies = __webpack_require__(473), paramsHaveRequestBody = __webpack_require__(230).paramsHaveRequestBody; - function initParams(uri, options, callback) { - "function" == typeof options && (callback = options); - var params = {}; - return "object" == typeof options ? extend(params, options, { - uri: uri - }) : extend(params, "string" == typeof uri ? { - uri: uri - } : uri), params.callback = callback || params.callback, params; - } - function request(uri, options, callback) { - if (void 0 === uri) throw new Error("undefined is not a valid uri or options object."); - var params = initParams(uri, options, callback); - if ("HEAD" === params.method && paramsHaveRequestBody(params)) throw new Error("HTTP HEAD requests MUST NOT include a request body."); - return new request.Request(params); - } - function verbFunc(verb) { - var method = verb.toUpperCase(); - return function(uri, options, callback) { - var params = initParams(uri, options, callback); - return params.method = method, request(params, params.callback); - }; - } - function wrapRequestMethod(method, options, requester, verb) { - return function(uri, opts, callback) { - var params = initParams(uri, opts, callback), target = {}; - return extend(!0, target, options, params), target.pool = params.pool || options.pool, - verb && (target.method = verb.toUpperCase()), "function" == typeof requester && (method = requester), - method(target, target.callback); - }; - } - request.get = verbFunc("get"), request.head = verbFunc("head"), request.options = verbFunc("options"), - request.post = verbFunc("post"), request.put = verbFunc("put"), request.patch = verbFunc("patch"), - request.del = verbFunc("delete"), request.delete = verbFunc("delete"), request.jar = function(store) { - return cookies.jar(store); - }, request.cookie = function(str) { - return cookies.parse(str); - }, request.defaults = function(options, requester) { - var self = this; - "function" == typeof (options = options || {}) && (requester = options, options = {}); - var defaults = wrapRequestMethod(self, options, requester); - return [ "get", "head", "post", "put", "patch", "del", "delete" ].forEach((function(verb) { - defaults[verb] = wrapRequestMethod(self[verb], options, requester, verb); - })), defaults.cookie = wrapRequestMethod(self.cookie, options, requester), defaults.jar = self.jar, - defaults.defaults = self.defaults, defaults; - }, request.forever = function(agentOptions, optionsArg) { - var options = {}; - return optionsArg && extend(options, optionsArg), agentOptions && (options.agentOptions = agentOptions), - options.forever = !0, request.defaults(options); - }, module.exports = request, request.Request = __webpack_require__(1048), request.initParams = initParams, - Object.defineProperty(request, "debug", { - enumerable: !0, - get: function() { - return request.Request.debug; - }, - set: function(debug) { - request.Request.debug = debug; + var __WEBPACK_AMD_DEFINE_RESULT__; + !(function() { + var root, previous_async, async = {}; + function only_once(fn) { + var called = !1; + return function() { + if (called) throw new Error("Callback was already called."); + called = !0, fn.apply(root, arguments); + }; } - }); + null != (root = this) && (previous_async = root.async), async.noConflict = function() { + return root.async = previous_async, async; + }; + var _toString = Object.prototype.toString, _isArray = Array.isArray || function(obj) { + return "[object Array]" === _toString.call(obj); + }, _each = function(arr, iterator) { + for (var i = 0; i < arr.length; i += 1) iterator(arr[i], i, arr); + }, _map = function(arr, iterator) { + if (arr.map) return arr.map(iterator); + var results = []; + return _each(arr, (function(x, i, a) { + results.push(iterator(x, i, a)); + })), results; + }, _keys = function(obj) { + if (Object.keys) return Object.keys(obj); + var keys = []; + for (var k in obj) obj.hasOwnProperty(k) && keys.push(k); + return keys; + }; + "undefined" != typeof process && process.nextTick ? (async.nextTick = process.nextTick, + "undefined" != typeof setImmediate ? async.setImmediate = function(fn) { + setImmediate(fn); + } : async.setImmediate = async.nextTick) : "function" == typeof setImmediate ? (async.nextTick = function(fn) { + setImmediate(fn); + }, async.setImmediate = async.nextTick) : (async.nextTick = function(fn) { + setTimeout(fn, 0); + }, async.setImmediate = async.nextTick), async.each = function(arr, iterator, callback) { + if (callback = callback || function() {}, !arr.length) return callback(); + var completed = 0; + function done(err) { + err ? (callback(err), callback = function() {}) : (completed += 1) >= arr.length && callback(); + } + _each(arr, (function(x) { + iterator(x, only_once(done)); + })); + }, async.forEach = async.each, async.eachSeries = function(arr, iterator, callback) { + if (callback = callback || function() {}, !arr.length) return callback(); + var completed = 0, iterate = function() { + iterator(arr[completed], (function(err) { + err ? (callback(err), callback = function() {}) : (completed += 1) >= arr.length ? callback() : iterate(); + })); + }; + iterate(); + }, async.forEachSeries = async.eachSeries, async.eachLimit = function(arr, limit, iterator, callback) { + _eachLimit(limit).apply(null, [ arr, iterator, callback ]); + }, async.forEachLimit = async.eachLimit; + var _eachLimit = function(limit) { + return function(arr, iterator, callback) { + if (callback = callback || function() {}, !arr.length || limit <= 0) return callback(); + var completed = 0, started = 0, running = 0; + !(function replenish() { + if (completed >= arr.length) return callback(); + for (;running < limit && started < arr.length; ) running += 1, iterator(arr[(started += 1) - 1], (function(err) { + err ? (callback(err), callback = function() {}) : (running -= 1, (completed += 1) >= arr.length ? callback() : replenish()); + })); + })(); + }; + }, doParallel = function(fn) { + return function() { + var args = Array.prototype.slice.call(arguments); + return fn.apply(null, [ async.each ].concat(args)); + }; + }, doSeries = function(fn) { + return function() { + var args = Array.prototype.slice.call(arguments); + return fn.apply(null, [ async.eachSeries ].concat(args)); + }; + }, _asyncMap = function(eachfn, arr, iterator, callback) { + if (arr = _map(arr, (function(x, i) { + return { + index: i, + value: x + }; + })), callback) { + var results = []; + eachfn(arr, (function(x, callback) { + iterator(x.value, (function(err, v) { + results[x.index] = v, callback(err); + })); + }), (function(err) { + callback(err, results); + })); + } else eachfn(arr, (function(x, callback) { + iterator(x.value, (function(err) { + callback(err); + })); + })); + }; + async.map = doParallel(_asyncMap), async.mapSeries = doSeries(_asyncMap), async.mapLimit = function(arr, limit, iterator, callback) { + return _mapLimit(limit)(arr, iterator, callback); + }; + var _mapLimit = function(limit) { + return (function(limit, fn) { + return function() { + var args = Array.prototype.slice.call(arguments); + return fn.apply(null, [ _eachLimit(limit) ].concat(args)); + }; + })(limit, _asyncMap); + }; + async.reduce = function(arr, memo, iterator, callback) { + async.eachSeries(arr, (function(x, callback) { + iterator(memo, x, (function(err, v) { + memo = v, callback(err); + })); + }), (function(err) { + callback(err, memo); + })); + }, async.inject = async.reduce, async.foldl = async.reduce, async.reduceRight = function(arr, memo, iterator, callback) { + var reversed = _map(arr, (function(x) { + return x; + })).reverse(); + async.reduce(reversed, memo, iterator, callback); + }, async.foldr = async.reduceRight; + var _filter = function(eachfn, arr, iterator, callback) { + var results = []; + eachfn(arr = _map(arr, (function(x, i) { + return { + index: i, + value: x + }; + })), (function(x, callback) { + iterator(x.value, (function(v) { + v && results.push(x), callback(); + })); + }), (function(err) { + callback(_map(results.sort((function(a, b) { + return a.index - b.index; + })), (function(x) { + return x.value; + }))); + })); + }; + async.filter = doParallel(_filter), async.filterSeries = doSeries(_filter), async.select = async.filter, + async.selectSeries = async.filterSeries; + var _reject = function(eachfn, arr, iterator, callback) { + var results = []; + eachfn(arr = _map(arr, (function(x, i) { + return { + index: i, + value: x + }; + })), (function(x, callback) { + iterator(x.value, (function(v) { + v || results.push(x), callback(); + })); + }), (function(err) { + callback(_map(results.sort((function(a, b) { + return a.index - b.index; + })), (function(x) { + return x.value; + }))); + })); + }; + async.reject = doParallel(_reject), async.rejectSeries = doSeries(_reject); + var _detect = function(eachfn, arr, iterator, main_callback) { + eachfn(arr, (function(x, callback) { + iterator(x, (function(result) { + result ? (main_callback(x), main_callback = function() {}) : callback(); + })); + }), (function(err) { + main_callback(); + })); + }; + async.detect = doParallel(_detect), async.detectSeries = doSeries(_detect), async.some = function(arr, iterator, main_callback) { + async.each(arr, (function(x, callback) { + iterator(x, (function(v) { + v && (main_callback(!0), main_callback = function() {}), callback(); + })); + }), (function(err) { + main_callback(!1); + })); + }, async.any = async.some, async.every = function(arr, iterator, main_callback) { + async.each(arr, (function(x, callback) { + iterator(x, (function(v) { + v || (main_callback(!1), main_callback = function() {}), callback(); + })); + }), (function(err) { + main_callback(!0); + })); + }, async.all = async.every, async.sortBy = function(arr, iterator, callback) { + async.map(arr, (function(x, callback) { + iterator(x, (function(err, criteria) { + err ? callback(err) : callback(null, { + value: x, + criteria: criteria + }); + })); + }), (function(err, results) { + if (err) return callback(err); + callback(null, _map(results.sort((function(left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : 0; + })), (function(x) { + return x.value; + }))); + })); + }, async.auto = function(tasks, callback) { + callback = callback || function() {}; + var keys = _keys(tasks), remainingTasks = keys.length; + if (!remainingTasks) return callback(); + var results = {}, listeners = [], addListener = function(fn) { + listeners.unshift(fn); + }, taskComplete = function() { + remainingTasks--, _each(listeners.slice(0), (function(fn) { + fn(); + })); + }; + addListener((function() { + if (!remainingTasks) { + var theCallback = callback; + callback = function() {}, theCallback(null, results); + } + })), _each(keys, (function(k) { + var task = _isArray(tasks[k]) ? tasks[k] : [ tasks[k] ], taskCallback = function(err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1 && (args = args[0]), err) { + var safeResults = {}; + _each(_keys(results), (function(rkey) { + safeResults[rkey] = results[rkey]; + })), safeResults[k] = args, callback(err, safeResults), callback = function() {}; + } else results[k] = args, async.setImmediate(taskComplete); + }, requires = task.slice(0, Math.abs(task.length - 1)) || [], ready = function() { + return iterator = function(a, x) { + return a && results.hasOwnProperty(x); + }, memo = !0, ((arr = requires).reduce ? arr.reduce(iterator, memo) : (_each(arr, (function(x, i, a) { + memo = iterator(memo, x); + })), memo)) && !results.hasOwnProperty(k); + var arr, iterator, memo; + }; + if (ready()) task[task.length - 1](taskCallback, results); else { + var listener = function() { + ready() && ((function(fn) { + for (var i = 0; i < listeners.length; i += 1) if (listeners[i] === fn) return void listeners.splice(i, 1); + })(listener), task[task.length - 1](taskCallback, results)); + }; + addListener(listener); + } + })); + }, async.retry = function(times, task, callback) { + var attempts = []; + "function" == typeof times && (callback = task, task = times, times = 5), times = parseInt(times, 10) || 5; + var wrappedTask = function(wrappedCallback, wrappedResults) { + for (var retryAttempt = function(task, finalAttempt) { + return function(seriesCallback) { + task((function(err, result) { + seriesCallback(!err || finalAttempt, { + err: err, + result: result + }); + }), wrappedResults); + }; + }; times; ) attempts.push(retryAttempt(task, !(times -= 1))); + async.series(attempts, (function(done, data) { + data = data[data.length - 1], (wrappedCallback || callback)(data.err, data.result); + })); + }; + return callback ? wrappedTask() : wrappedTask; + }, async.waterfall = function(tasks, callback) { + if (callback = callback || function() {}, !_isArray(tasks)) { + var err = new Error("First argument to waterfall must be an array of functions"); + return callback(err); + } + if (!tasks.length) return callback(); + var wrapIterator = function(iterator) { + return function(err) { + if (err) callback.apply(null, arguments), callback = function() {}; else { + var args = Array.prototype.slice.call(arguments, 1), next = iterator.next(); + next ? args.push(wrapIterator(next)) : args.push(callback), async.setImmediate((function() { + iterator.apply(null, args); + })); + } + }; + }; + wrapIterator(async.iterator(tasks))(); + }; + var _parallel = function(eachfn, tasks, callback) { + if (callback = callback || function() {}, _isArray(tasks)) eachfn.map(tasks, (function(fn, callback) { + fn && fn((function(err) { + var args = Array.prototype.slice.call(arguments, 1); + args.length <= 1 && (args = args[0]), callback.call(null, err, args); + })); + }), callback); else { + var results = {}; + eachfn.each(_keys(tasks), (function(k, callback) { + tasks[k]((function(err) { + var args = Array.prototype.slice.call(arguments, 1); + args.length <= 1 && (args = args[0]), results[k] = args, callback(err); + })); + }), (function(err) { + callback(err, results); + })); + } + }; + async.parallel = function(tasks, callback) { + _parallel({ + map: async.map, + each: async.each + }, tasks, callback); + }, async.parallelLimit = function(tasks, limit, callback) { + _parallel({ + map: _mapLimit(limit), + each: _eachLimit(limit) + }, tasks, callback); + }, async.series = function(tasks, callback) { + if (callback = callback || function() {}, _isArray(tasks)) async.mapSeries(tasks, (function(fn, callback) { + fn && fn((function(err) { + var args = Array.prototype.slice.call(arguments, 1); + args.length <= 1 && (args = args[0]), callback.call(null, err, args); + })); + }), callback); else { + var results = {}; + async.eachSeries(_keys(tasks), (function(k, callback) { + tasks[k]((function(err) { + var args = Array.prototype.slice.call(arguments, 1); + args.length <= 1 && (args = args[0]), results[k] = args, callback(err); + })); + }), (function(err) { + callback(err, results); + })); + } + }, async.iterator = function(tasks) { + var makeCallback = function(index) { + var fn = function() { + return tasks.length && tasks[index].apply(null, arguments), fn.next(); + }; + return fn.next = function() { + return index < tasks.length - 1 ? makeCallback(index + 1) : null; + }, fn; + }; + return makeCallback(0); + }, async.apply = function(fn) { + var args = Array.prototype.slice.call(arguments, 1); + return function() { + return fn.apply(null, args.concat(Array.prototype.slice.call(arguments))); + }; + }; + var _concat = function(eachfn, arr, fn, callback) { + var r = []; + eachfn(arr, (function(x, cb) { + fn(x, (function(err, y) { + r = r.concat(y || []), cb(err); + })); + }), (function(err) { + callback(err, r); + })); + }; + async.concat = doParallel(_concat), async.concatSeries = doSeries(_concat), async.whilst = function(test, iterator, callback) { + test() ? iterator((function(err) { + if (err) return callback(err); + async.whilst(test, iterator, callback); + })) : callback(); + }, async.doWhilst = function(iterator, test, callback) { + iterator((function(err) { + if (err) return callback(err); + var args = Array.prototype.slice.call(arguments, 1); + test.apply(null, args) ? async.doWhilst(iterator, test, callback) : callback(); + })); + }, async.until = function(test, iterator, callback) { + test() ? callback() : iterator((function(err) { + if (err) return callback(err); + async.until(test, iterator, callback); + })); + }, async.doUntil = function(iterator, test, callback) { + iterator((function(err) { + if (err) return callback(err); + var args = Array.prototype.slice.call(arguments, 1); + test.apply(null, args) ? callback() : async.doUntil(iterator, test, callback); + })); + }, async.queue = function(worker, concurrency) { + function _insert(q, data, pos, callback) { + if (q.started || (q.started = !0), _isArray(data) || (data = [ data ]), 0 == data.length) return async.setImmediate((function() { + q.drain && q.drain(); + })); + _each(data, (function(task) { + var item = { + data: task, + callback: "function" == typeof callback ? callback : null + }; + pos ? q.tasks.unshift(item) : q.tasks.push(item), q.saturated && q.tasks.length === q.concurrency && q.saturated(), + async.setImmediate(q.process); + })); + } + void 0 === concurrency && (concurrency = 1); + var workers = 0, q = { + tasks: [], + concurrency: concurrency, + saturated: null, + empty: null, + drain: null, + started: !1, + paused: !1, + push: function(data, callback) { + _insert(q, data, !1, callback); + }, + kill: function() { + q.drain = null, q.tasks = []; + }, + unshift: function(data, callback) { + _insert(q, data, !0, callback); + }, + process: function() { + if (!q.paused && workers < q.concurrency && q.tasks.length) { + var task = q.tasks.shift(); + q.empty && 0 === q.tasks.length && q.empty(), workers += 1; + var cb = only_once((function() { + workers -= 1, task.callback && task.callback.apply(task, arguments), q.drain && q.tasks.length + workers === 0 && q.drain(), + q.process(); + })); + worker(task.data, cb); + } + }, + length: function() { + return q.tasks.length; + }, + running: function() { + return workers; + }, + idle: function() { + return q.tasks.length + workers === 0; + }, + pause: function() { + !0 !== q.paused && (q.paused = !0); + }, + resume: function() { + if (!1 !== q.paused) { + q.paused = !1; + for (var w = 1; w <= q.concurrency; w++) async.setImmediate(q.process); + } + } + }; + return q; + }, async.priorityQueue = function(worker, concurrency) { + function _compareTasks(a, b) { + return a.priority - b.priority; + } + var q = async.queue(worker, concurrency); + return q.push = function(data, priority, callback) { + !(function(q, data, priority, callback) { + if (q.started || (q.started = !0), _isArray(data) || (data = [ data ]), 0 == data.length) return async.setImmediate((function() { + q.drain && q.drain(); + })); + _each(data, (function(task) { + var item = { + data: task, + priority: priority, + callback: "function" == typeof callback ? callback : null + }; + q.tasks.splice((function(sequence, item, compare) { + for (var beg = -1, end = sequence.length - 1; beg < end; ) { + var mid = beg + (end - beg + 1 >>> 1); + compare(item, sequence[mid]) >= 0 ? beg = mid : end = mid - 1; + } + return beg; + })(q.tasks, item, _compareTasks) + 1, 0, item), q.saturated && q.tasks.length === q.concurrency && q.saturated(), + async.setImmediate(q.process); + })); + })(q, data, priority, callback); + }, delete q.unshift, q; + }, async.cargo = function(worker, payload) { + var working = !1, tasks = [], cargo = { + tasks: tasks, + payload: payload, + saturated: null, + empty: null, + drain: null, + drained: !0, + push: function(data, callback) { + _isArray(data) || (data = [ data ]), _each(data, (function(task) { + tasks.push({ + data: task, + callback: "function" == typeof callback ? callback : null + }), cargo.drained = !1, cargo.saturated && tasks.length === payload && cargo.saturated(); + })), async.setImmediate(cargo.process); + }, + process: function process() { + if (!working) { + if (0 === tasks.length) return cargo.drain && !cargo.drained && cargo.drain(), void (cargo.drained = !0); + var ts = "number" == typeof payload ? tasks.splice(0, payload) : tasks.splice(0, tasks.length), ds = _map(ts, (function(task) { + return task.data; + })); + cargo.empty && cargo.empty(), working = !0, worker(ds, (function() { + working = !1; + var args = arguments; + _each(ts, (function(data) { + data.callback && data.callback.apply(null, args); + })), process(); + })); + } + }, + length: function() { + return tasks.length; + }, + running: function() { + return working; + } + }; + return cargo; + }; + var _console_fn = function(name) { + return function(fn) { + var args = Array.prototype.slice.call(arguments, 1); + fn.apply(null, args.concat([ function(err) { + var args = Array.prototype.slice.call(arguments, 1); + "undefined" != typeof console && (err ? console.error && console.error(err) : console[name] && _each(args, (function(x) { + console[name](x); + }))); + } ])); + }; + }; + async.log = _console_fn("log"), async.dir = _console_fn("dir"), async.memoize = function(fn, hasher) { + var memo = {}, queues = {}; + hasher = hasher || function(x) { + return x; + }; + var memoized = function() { + var args = Array.prototype.slice.call(arguments), callback = args.pop(), key = hasher.apply(null, args); + key in memo ? async.nextTick((function() { + callback.apply(null, memo[key]); + })) : key in queues ? queues[key].push(callback) : (queues[key] = [ callback ], + fn.apply(null, args.concat([ function() { + memo[key] = arguments; + var q = queues[key]; + delete queues[key]; + for (var i = 0, l = q.length; i < l; i++) q[i].apply(null, arguments); + } ]))); + }; + return memoized.memo = memo, memoized.unmemoized = fn, memoized; + }, async.unmemoize = function(fn) { + return function() { + return (fn.unmemoized || fn).apply(null, arguments); + }; + }, async.times = function(count, iterator, callback) { + for (var counter = [], i = 0; i < count; i++) counter.push(i); + return async.map(counter, iterator, callback); + }, async.timesSeries = function(count, iterator, callback) { + for (var counter = [], i = 0; i < count; i++) counter.push(i); + return async.mapSeries(counter, iterator, callback); + }, async.seq = function() { + var fns = arguments; + return function() { + var that = this, args = Array.prototype.slice.call(arguments), callback = args.pop(); + async.reduce(fns, args, (function(newargs, fn, cb) { + fn.apply(that, newargs.concat([ function() { + var err = arguments[0], nextargs = Array.prototype.slice.call(arguments, 1); + cb(err, nextargs); + } ])); + }), (function(err, results) { + callback.apply(that, [ err ].concat(results)); + })); + }; + }, async.compose = function() { + return async.seq.apply(null, Array.prototype.reverse.call(arguments)); + }; + var _applyEach = function(eachfn, fns) { + var go = function() { + var that = this, args = Array.prototype.slice.call(arguments), callback = args.pop(); + return eachfn(fns, (function(fn, cb) { + fn.apply(that, args.concat([ cb ])); + }), callback); + }; + if (arguments.length > 2) { + var args = Array.prototype.slice.call(arguments, 2); + return go.apply(this, args); + } + return go; + }; + async.applyEach = doParallel(_applyEach), async.applyEachSeries = doSeries(_applyEach), + async.forever = function(fn, callback) { + !(function next(err) { + if (err) { + if (callback) return callback(err); + throw err; + } + fn(next); + })(); + }, module.exports ? module.exports = async : void 0 === (__WEBPACK_AMD_DEFINE_RESULT__ = function() { + return async; + }.apply(exports, [])) || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__); + })(); +}, function(module, exports, __webpack_require__) { + module.exports = __webpack_require__(1090); +}, function(module, exports) { + (function() { + exports.defaults = { + .1: { + explicitCharkey: !1, + trim: !0, + normalize: !0, + normalizeTags: !1, + attrkey: "@", + charkey: "#", + explicitArray: !1, + ignoreAttrs: !1, + mergeAttrs: !1, + explicitRoot: !1, + validator: null, + xmlns: !1, + explicitChildren: !1, + childkey: "@@", + charsAsChildren: !1, + includeWhiteChars: !1, + async: !1, + strict: !0, + attrNameProcessors: null, + attrValueProcessors: null, + tagNameProcessors: null, + valueProcessors: null, + emptyTag: "" + }, + .2: { + explicitCharkey: !1, + trim: !1, + normalize: !1, + normalizeTags: !1, + attrkey: "$", + charkey: "_", + explicitArray: !0, + ignoreAttrs: !1, + mergeAttrs: !1, + explicitRoot: !0, + validator: null, + xmlns: !1, + explicitChildren: !1, + preserveChildrenOrder: !1, + childkey: "$$", + charsAsChildren: !1, + includeWhiteChars: !1, + async: !1, + strict: !0, + attrNameProcessors: null, + attrValueProcessors: null, + tagNameProcessors: null, + valueProcessors: null, + rootName: "root", + xmldec: { + version: "1.0", + encoding: "UTF-8", + standalone: !0 + }, + doctype: null, + renderOpts: { + pretty: !0, + indent: " ", + newline: "\n" + }, + headless: !1, + chunkSize: 1e4, + emptyTag: "", + cdata: !1 + } + }; + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + var NodeType, XMLAttribute, XMLNamedNodeMap, XMLNode, getValue, isFunction, isObject, ref, hasProp = {}.hasOwnProperty; + ref = __webpack_require__(52), isObject = ref.isObject, isFunction = ref.isFunction, + getValue = ref.getValue, XMLNode = __webpack_require__(42), NodeType = __webpack_require__(22), + XMLAttribute = __webpack_require__(507), XMLNamedNodeMap = __webpack_require__(248), + module.exports = (function(superClass) { + function XMLElement(parent, name, attributes) { + var child, j, len, ref1; + if (XMLElement.__super__.constructor.call(this, parent), null == name) throw new Error("Missing element name. " + this.debugInfo()); + if (this.name = this.stringify.name(name), this.type = NodeType.Element, this.attribs = {}, + this.schemaTypeInfo = null, null != attributes && this.attribute(attributes), parent.type === NodeType.Document && (this.isRoot = !0, + this.documentObject = parent, parent.rootObject = this, parent.children)) for (j = 0, + len = (ref1 = parent.children).length; j < len; j++) if ((child = ref1[j]).type === NodeType.DocType) { + child.name = this.name; + break; + } + } + return (function(child, parent) { + for (var key in parent) 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; + })(XMLElement, superClass), Object.defineProperty(XMLElement.prototype, "tagName", { + get: function() { + return this.name; + } + }), Object.defineProperty(XMLElement.prototype, "namespaceURI", { + get: function() { + return ""; + } + }), Object.defineProperty(XMLElement.prototype, "prefix", { + get: function() { + return ""; + } + }), Object.defineProperty(XMLElement.prototype, "localName", { + get: function() { + return this.name; + } + }), Object.defineProperty(XMLElement.prototype, "id", { + get: function() { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + } + }), Object.defineProperty(XMLElement.prototype, "className", { + get: function() { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + } + }), Object.defineProperty(XMLElement.prototype, "classList", { + get: function() { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + } + }), Object.defineProperty(XMLElement.prototype, "attributes", { + get: function() { + return this.attributeMap && this.attributeMap.nodes || (this.attributeMap = new XMLNamedNodeMap(this.attribs)), + this.attributeMap; + } + }), XMLElement.prototype.clone = function() { + var att, attName, clonedSelf, ref1; + for (attName in (clonedSelf = Object.create(this)).isRoot && (clonedSelf.documentObject = null), + clonedSelf.attribs = {}, ref1 = this.attribs) hasProp.call(ref1, attName) && (att = ref1[attName], + clonedSelf.attribs[attName] = att.clone()); + return clonedSelf.children = [], this.children.forEach((function(child) { + var clonedChild; + return (clonedChild = child.clone()).parent = clonedSelf, clonedSelf.children.push(clonedChild); + })), clonedSelf; + }, XMLElement.prototype.attribute = function(name, value) { + var attName, attValue; + if (null != name && (name = getValue(name)), isObject(name)) for (attName in name) hasProp.call(name, attName) && (attValue = name[attName], + this.attribute(attName, attValue)); else isFunction(value) && (value = value.apply()), + this.options.keepNullAttributes && null == value ? this.attribs[name] = new XMLAttribute(this, name, "") : null != value && (this.attribs[name] = new XMLAttribute(this, name, value)); + return this; + }, XMLElement.prototype.removeAttribute = function(name) { + var attName, j, len; + if (null == name) throw new Error("Missing attribute name. " + this.debugInfo()); + if (name = getValue(name), Array.isArray(name)) for (j = 0, len = name.length; j < len; j++) attName = name[j], + delete this.attribs[attName]; else delete this.attribs[name]; + return this; + }, XMLElement.prototype.toString = function(options) { + return this.options.writer.element(this, this.options.writer.filterOptions(options)); + }, XMLElement.prototype.att = function(name, value) { + return this.attribute(name, value); + }, XMLElement.prototype.a = function(name, value) { + return this.attribute(name, value); + }, XMLElement.prototype.getAttribute = function(name) { + return this.attribs.hasOwnProperty(name) ? this.attribs[name].value : null; + }, XMLElement.prototype.setAttribute = function(name, value) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLElement.prototype.getAttributeNode = function(name) { + return this.attribs.hasOwnProperty(name) ? this.attribs[name] : null; + }, XMLElement.prototype.setAttributeNode = function(newAttr) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLElement.prototype.removeAttributeNode = function(oldAttr) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLElement.prototype.getElementsByTagName = function(name) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLElement.prototype.getAttributeNS = function(namespaceURI, localName) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLElement.prototype.setAttributeNS = function(namespaceURI, qualifiedName, value) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLElement.prototype.removeAttributeNS = function(namespaceURI, localName) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLElement.prototype.getAttributeNodeNS = function(namespaceURI, localName) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLElement.prototype.setAttributeNodeNS = function(newAttr) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLElement.prototype.getElementsByTagNameNS = function(namespaceURI, localName) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLElement.prototype.hasAttribute = function(name) { + return this.attribs.hasOwnProperty(name); + }, XMLElement.prototype.hasAttributeNS = function(namespaceURI, localName) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLElement.prototype.setIdAttribute = function(name, isId) { + return this.attribs.hasOwnProperty(name) ? this.attribs[name].isId : isId; + }, XMLElement.prototype.setIdAttributeNS = function(namespaceURI, localName, isId) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLElement.prototype.setIdAttributeNode = function(idAttr, isId) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLElement.prototype.getElementsByTagName = function(tagname) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLElement.prototype.getElementsByTagNameNS = function(namespaceURI, localName) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLElement.prototype.getElementsByClassName = function(classNames) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLElement.prototype.isEqualNode = function(node) { + var i, j, ref1; + if (!XMLElement.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) return !1; + if (node.namespaceURI !== this.namespaceURI) return !1; + if (node.prefix !== this.prefix) return !1; + if (node.localName !== this.localName) return !1; + if (node.attribs.length !== this.attribs.length) return !1; + for (i = j = 0, ref1 = this.attribs.length - 1; 0 <= ref1 ? j <= ref1 : j >= ref1; i = 0 <= ref1 ? ++j : --j) if (!this.attribs[i].isEqualNode(node.attribs[i])) return !1; + return !0; + }, XMLElement; + })(XMLNode); + }).call(this); +}, function(module, exports) { + (function() { + module.exports = (function() { + function XMLNamedNodeMap(nodes) { + this.nodes = nodes; + } + return Object.defineProperty(XMLNamedNodeMap.prototype, "length", { + get: function() { + return Object.keys(this.nodes).length || 0; + } + }), XMLNamedNodeMap.prototype.clone = function() { + return this.nodes = null; + }, XMLNamedNodeMap.prototype.getNamedItem = function(name) { + return this.nodes[name]; + }, XMLNamedNodeMap.prototype.setNamedItem = function(node) { + var oldNode; + return oldNode = this.nodes[node.nodeName], this.nodes[node.nodeName] = node, oldNode || null; + }, XMLNamedNodeMap.prototype.removeNamedItem = function(name) { + var oldNode; + return oldNode = this.nodes[name], delete this.nodes[name], oldNode || null; + }, XMLNamedNodeMap.prototype.item = function(index) { + return this.nodes[Object.keys(this.nodes)[index]] || null; + }, XMLNamedNodeMap.prototype.getNamedItemNS = function(namespaceURI, localName) { + throw new Error("This DOM method is not implemented."); + }, XMLNamedNodeMap.prototype.setNamedItemNS = function(node) { + throw new Error("This DOM method is not implemented."); + }, XMLNamedNodeMap.prototype.removeNamedItemNS = function(namespaceURI, localName) { + throw new Error("This DOM method is not implemented."); + }, XMLNamedNodeMap; + })(); + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + var NodeType, XMLCharacterData, hasProp = {}.hasOwnProperty; + NodeType = __webpack_require__(22), XMLCharacterData = __webpack_require__(160), + module.exports = (function(superClass) { + function XMLCData(parent, text) { + if (XMLCData.__super__.constructor.call(this, parent), null == text) throw new Error("Missing CDATA text. " + this.debugInfo()); + this.name = "#cdata-section", this.type = NodeType.CData, this.value = this.stringify.cdata(text); + } + return (function(child, parent) { + for (var key in parent) 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; + })(XMLCData, superClass), XMLCData.prototype.clone = function() { + return Object.create(this); + }, XMLCData.prototype.toString = function(options) { + return this.options.writer.cdata(this, this.options.writer.filterOptions(options)); + }, XMLCData; + })(XMLCharacterData); + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + var NodeType, XMLCharacterData, hasProp = {}.hasOwnProperty; + NodeType = __webpack_require__(22), XMLCharacterData = __webpack_require__(160), + module.exports = (function(superClass) { + function XMLComment(parent, text) { + if (XMLComment.__super__.constructor.call(this, parent), null == text) throw new Error("Missing comment text. " + this.debugInfo()); + this.name = "#comment", this.type = NodeType.Comment, this.value = this.stringify.comment(text); + } + return (function(child, parent) { + for (var key in parent) 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; + })(XMLComment, superClass), XMLComment.prototype.clone = function() { + return Object.create(this); + }, XMLComment.prototype.toString = function(options) { + return this.options.writer.comment(this, this.options.writer.filterOptions(options)); + }, XMLComment; + })(XMLCharacterData); + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + var NodeType, XMLNode, isObject, hasProp = {}.hasOwnProperty; + isObject = __webpack_require__(52).isObject, XMLNode = __webpack_require__(42), + NodeType = __webpack_require__(22), module.exports = (function(superClass) { + function XMLDeclaration(parent, version, encoding, standalone) { + var ref; + XMLDeclaration.__super__.constructor.call(this, parent), isObject(version) && (version = (ref = version).version, + encoding = ref.encoding, standalone = ref.standalone), version || (version = "1.0"), + this.type = NodeType.Declaration, this.version = this.stringify.xmlVersion(version), + null != encoding && (this.encoding = this.stringify.xmlEncoding(encoding)), null != standalone && (this.standalone = this.stringify.xmlStandalone(standalone)); + } + return (function(child, parent) { + for (var key in parent) 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; + })(XMLDeclaration, superClass), XMLDeclaration.prototype.toString = function(options) { + return this.options.writer.declaration(this, this.options.writer.filterOptions(options)); + }, XMLDeclaration; + })(XMLNode); + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + var NodeType, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLNamedNodeMap, XMLNode, isObject, hasProp = {}.hasOwnProperty; + isObject = __webpack_require__(52).isObject, XMLNode = __webpack_require__(42), + NodeType = __webpack_require__(22), XMLDTDAttList = __webpack_require__(253), XMLDTDEntity = __webpack_require__(254), + XMLDTDElement = __webpack_require__(255), XMLDTDNotation = __webpack_require__(256), + XMLNamedNodeMap = __webpack_require__(248), module.exports = (function(superClass) { + function XMLDocType(parent, pubID, sysID) { + var child, i, len, ref, ref1, ref2; + if (XMLDocType.__super__.constructor.call(this, parent), this.type = NodeType.DocType, + parent.children) for (i = 0, len = (ref = parent.children).length; i < len; i++) if ((child = ref[i]).type === NodeType.Element) { + this.name = child.name; + break; + } + this.documentObject = parent, isObject(pubID) && (pubID = (ref1 = pubID).pubID, + sysID = ref1.sysID), null == sysID && (sysID = (ref2 = [ pubID, sysID ])[0], pubID = ref2[1]), + null != pubID && (this.pubID = this.stringify.dtdPubID(pubID)), null != sysID && (this.sysID = this.stringify.dtdSysID(sysID)); + } + return (function(child, parent) { + for (var key in parent) 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; + })(XMLDocType, superClass), Object.defineProperty(XMLDocType.prototype, "entities", { + get: function() { + var child, i, len, nodes, ref; + for (nodes = {}, i = 0, len = (ref = this.children).length; i < len; i++) (child = ref[i]).type !== NodeType.EntityDeclaration || child.pe || (nodes[child.name] = child); + return new XMLNamedNodeMap(nodes); + } + }), Object.defineProperty(XMLDocType.prototype, "notations", { + get: function() { + var child, i, len, nodes, ref; + for (nodes = {}, i = 0, len = (ref = this.children).length; i < len; i++) (child = ref[i]).type === NodeType.NotationDeclaration && (nodes[child.name] = child); + return new XMLNamedNodeMap(nodes); + } + }), Object.defineProperty(XMLDocType.prototype, "publicId", { + get: function() { + return this.pubID; + } + }), Object.defineProperty(XMLDocType.prototype, "systemId", { + get: function() { + return this.sysID; + } + }), Object.defineProperty(XMLDocType.prototype, "internalSubset", { + get: function() { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + } + }), XMLDocType.prototype.element = function(name, value) { + var child; + return child = new XMLDTDElement(this, name, value), this.children.push(child), + this; + }, XMLDocType.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) { + var child; + return child = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue), + this.children.push(child), this; + }, XMLDocType.prototype.entity = function(name, value) { + var child; + return child = new XMLDTDEntity(this, !1, name, value), this.children.push(child), + this; + }, XMLDocType.prototype.pEntity = function(name, value) { + var child; + return child = new XMLDTDEntity(this, !0, name, value), this.children.push(child), + this; + }, XMLDocType.prototype.notation = function(name, value) { + var child; + return child = new XMLDTDNotation(this, name, value), this.children.push(child), + this; + }, XMLDocType.prototype.toString = function(options) { + return this.options.writer.docType(this, this.options.writer.filterOptions(options)); + }, XMLDocType.prototype.ele = function(name, value) { + return this.element(name, value); + }, XMLDocType.prototype.att = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) { + return this.attList(elementName, attributeName, attributeType, defaultValueType, defaultValue); + }, XMLDocType.prototype.ent = function(name, value) { + return this.entity(name, value); + }, XMLDocType.prototype.pent = function(name, value) { + return this.pEntity(name, value); + }, XMLDocType.prototype.not = function(name, value) { + return this.notation(name, value); + }, XMLDocType.prototype.up = function() { + return this.root() || this.documentObject; + }, XMLDocType.prototype.isEqualNode = function(node) { + return !!XMLDocType.__super__.isEqualNode.apply(this, arguments).isEqualNode(node) && node.name === this.name && node.publicId === this.publicId && node.systemId === this.systemId; + }, XMLDocType; + })(XMLNode); + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + var NodeType, XMLNode, hasProp = {}.hasOwnProperty; + XMLNode = __webpack_require__(42), NodeType = __webpack_require__(22), module.exports = (function(superClass) { + function XMLDTDAttList(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) { + if (XMLDTDAttList.__super__.constructor.call(this, parent), null == elementName) throw new Error("Missing DTD element name. " + this.debugInfo()); + if (null == attributeName) throw new Error("Missing DTD attribute name. " + this.debugInfo(elementName)); + if (!attributeType) throw new Error("Missing DTD attribute type. " + this.debugInfo(elementName)); + if (!defaultValueType) throw new Error("Missing DTD attribute default. " + this.debugInfo(elementName)); + if (0 !== defaultValueType.indexOf("#") && (defaultValueType = "#" + defaultValueType), + !defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/)) throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT. " + this.debugInfo(elementName)); + if (defaultValue && !defaultValueType.match(/^(#FIXED|#DEFAULT)$/)) throw new Error("Default value only applies to #FIXED or #DEFAULT. " + this.debugInfo(elementName)); + this.elementName = this.stringify.name(elementName), this.type = NodeType.AttributeDeclaration, + this.attributeName = this.stringify.name(attributeName), this.attributeType = this.stringify.dtdAttType(attributeType), + defaultValue && (this.defaultValue = this.stringify.dtdAttDefault(defaultValue)), + this.defaultValueType = defaultValueType; + } + return (function(child, parent) { + for (var key in parent) 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; + })(XMLDTDAttList, superClass), XMLDTDAttList.prototype.toString = function(options) { + return this.options.writer.dtdAttList(this, this.options.writer.filterOptions(options)); + }, XMLDTDAttList; + })(XMLNode); + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + var NodeType, XMLNode, isObject, hasProp = {}.hasOwnProperty; + isObject = __webpack_require__(52).isObject, XMLNode = __webpack_require__(42), + NodeType = __webpack_require__(22), module.exports = (function(superClass) { + function XMLDTDEntity(parent, pe, name, value) { + if (XMLDTDEntity.__super__.constructor.call(this, parent), null == name) throw new Error("Missing DTD entity name. " + this.debugInfo(name)); + if (null == value) throw new Error("Missing DTD entity value. " + this.debugInfo(name)); + if (this.pe = !!pe, this.name = this.stringify.name(name), this.type = NodeType.EntityDeclaration, + isObject(value)) { + if (!value.pubID && !value.sysID) throw new Error("Public and/or system identifiers are required for an external entity. " + this.debugInfo(name)); + if (value.pubID && !value.sysID) throw new Error("System identifier is required for a public external entity. " + this.debugInfo(name)); + if (this.internal = !1, null != value.pubID && (this.pubID = this.stringify.dtdPubID(value.pubID)), + null != value.sysID && (this.sysID = this.stringify.dtdSysID(value.sysID)), null != value.nData && (this.nData = this.stringify.dtdNData(value.nData)), + this.pe && this.nData) throw new Error("Notation declaration is not allowed in a parameter entity. " + this.debugInfo(name)); + } else this.value = this.stringify.dtdEntityValue(value), this.internal = !0; + } + return (function(child, parent) { + for (var key in parent) 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; + })(XMLDTDEntity, superClass), Object.defineProperty(XMLDTDEntity.prototype, "publicId", { + get: function() { + return this.pubID; + } + }), Object.defineProperty(XMLDTDEntity.prototype, "systemId", { + get: function() { + return this.sysID; + } + }), Object.defineProperty(XMLDTDEntity.prototype, "notationName", { + get: function() { + return this.nData || null; + } + }), Object.defineProperty(XMLDTDEntity.prototype, "inputEncoding", { + get: function() { + return null; + } + }), Object.defineProperty(XMLDTDEntity.prototype, "xmlEncoding", { + get: function() { + return null; + } + }), Object.defineProperty(XMLDTDEntity.prototype, "xmlVersion", { + get: function() { + return null; + } + }), XMLDTDEntity.prototype.toString = function(options) { + return this.options.writer.dtdEntity(this, this.options.writer.filterOptions(options)); + }, XMLDTDEntity; + })(XMLNode); + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + var NodeType, XMLNode, hasProp = {}.hasOwnProperty; + XMLNode = __webpack_require__(42), NodeType = __webpack_require__(22), module.exports = (function(superClass) { + function XMLDTDElement(parent, name, value) { + if (XMLDTDElement.__super__.constructor.call(this, parent), null == name) throw new Error("Missing DTD element name. " + this.debugInfo()); + value || (value = "(#PCDATA)"), Array.isArray(value) && (value = "(" + value.join(",") + ")"), + this.name = this.stringify.name(name), this.type = NodeType.ElementDeclaration, + this.value = this.stringify.dtdElementValue(value); + } + return (function(child, parent) { + for (var key in parent) 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; + })(XMLDTDElement, superClass), XMLDTDElement.prototype.toString = function(options) { + return this.options.writer.dtdElement(this, this.options.writer.filterOptions(options)); + }, XMLDTDElement; + })(XMLNode); + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + var NodeType, XMLNode, hasProp = {}.hasOwnProperty; + XMLNode = __webpack_require__(42), NodeType = __webpack_require__(22), module.exports = (function(superClass) { + function XMLDTDNotation(parent, name, value) { + if (XMLDTDNotation.__super__.constructor.call(this, parent), null == name) throw new Error("Missing DTD notation name. " + this.debugInfo(name)); + if (!value.pubID && !value.sysID) throw new Error("Public or system identifiers are required for an external entity. " + this.debugInfo(name)); + this.name = this.stringify.name(name), this.type = NodeType.NotationDeclaration, + null != value.pubID && (this.pubID = this.stringify.dtdPubID(value.pubID)), null != value.sysID && (this.sysID = this.stringify.dtdSysID(value.sysID)); + } + return (function(child, parent) { + for (var key in parent) 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; + })(XMLDTDNotation, superClass), Object.defineProperty(XMLDTDNotation.prototype, "publicId", { + get: function() { + return this.pubID; + } + }), Object.defineProperty(XMLDTDNotation.prototype, "systemId", { + get: function() { + return this.sysID; + } + }), XMLDTDNotation.prototype.toString = function(options) { + return this.options.writer.dtdNotation(this, this.options.writer.filterOptions(options)); + }, XMLDTDNotation; + })(XMLNode); + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + var NodeType, XMLNode, hasProp = {}.hasOwnProperty; + NodeType = __webpack_require__(22), XMLNode = __webpack_require__(42), module.exports = (function(superClass) { + function XMLRaw(parent, text) { + if (XMLRaw.__super__.constructor.call(this, parent), null == text) throw new Error("Missing raw text. " + this.debugInfo()); + this.type = NodeType.Raw, this.value = this.stringify.raw(text); + } + return (function(child, parent) { + for (var key in parent) 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; + })(XMLRaw, superClass), XMLRaw.prototype.clone = function() { + return Object.create(this); + }, XMLRaw.prototype.toString = function(options) { + return this.options.writer.raw(this, this.options.writer.filterOptions(options)); + }, XMLRaw; + })(XMLNode); + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + var NodeType, XMLCharacterData, hasProp = {}.hasOwnProperty; + NodeType = __webpack_require__(22), XMLCharacterData = __webpack_require__(160), + module.exports = (function(superClass) { + function XMLText(parent, text) { + if (XMLText.__super__.constructor.call(this, parent), null == text) throw new Error("Missing element text. " + this.debugInfo()); + this.name = "#text", this.type = NodeType.Text, this.value = this.stringify.text(text); + } + return (function(child, parent) { + for (var key in parent) 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; + })(XMLText, superClass), Object.defineProperty(XMLText.prototype, "isElementContentWhitespace", { + get: function() { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + } + }), Object.defineProperty(XMLText.prototype, "wholeText", { + get: function() { + var next, prev, str; + for (str = "", prev = this.previousSibling; prev; ) str = prev.data + str, prev = prev.previousSibling; + for (str += this.data, next = this.nextSibling; next; ) str += next.data, next = next.nextSibling; + return str; + } + }), XMLText.prototype.clone = function() { + return Object.create(this); + }, XMLText.prototype.toString = function(options) { + return this.options.writer.text(this, this.options.writer.filterOptions(options)); + }, XMLText.prototype.splitText = function(offset) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLText.prototype.replaceWholeText = function(content) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLText; + })(XMLCharacterData); + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + var NodeType, XMLCharacterData, hasProp = {}.hasOwnProperty; + NodeType = __webpack_require__(22), XMLCharacterData = __webpack_require__(160), + module.exports = (function(superClass) { + function XMLProcessingInstruction(parent, target, value) { + if (XMLProcessingInstruction.__super__.constructor.call(this, parent), null == target) throw new Error("Missing instruction target. " + this.debugInfo()); + this.type = NodeType.ProcessingInstruction, this.target = this.stringify.insTarget(target), + this.name = this.target, value && (this.value = this.stringify.insValue(value)); + } + return (function(child, parent) { + for (var key in parent) 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; + })(XMLProcessingInstruction, superClass), XMLProcessingInstruction.prototype.clone = function() { + return Object.create(this); + }, XMLProcessingInstruction.prototype.toString = function(options) { + return this.options.writer.processingInstruction(this, this.options.writer.filterOptions(options)); + }, XMLProcessingInstruction.prototype.isEqualNode = function(node) { + return !!XMLProcessingInstruction.__super__.isEqualNode.apply(this, arguments).isEqualNode(node) && node.target === this.target; + }, XMLProcessingInstruction; + })(XMLCharacterData); + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + var XMLWriterBase, hasProp = {}.hasOwnProperty; + XMLWriterBase = __webpack_require__(510), module.exports = (function(superClass) { + function XMLStringWriter(options) { + XMLStringWriter.__super__.constructor.call(this, options); + } + return (function(child, parent) { + for (var key in parent) 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; + })(XMLStringWriter, superClass), XMLStringWriter.prototype.document = function(doc, options) { + var child, i, len, r, ref; + for (options = this.filterOptions(options), r = "", i = 0, len = (ref = doc.children).length; i < len; i++) child = ref[i], + r += this.writeChildNode(child, options, 0); + return options.pretty && r.slice(-options.newline.length) === options.newline && (r = r.slice(0, -options.newline.length)), + r; + }, XMLStringWriter; + })(XMLWriterBase); + }).call(this); }, function(module, exports, __webpack_require__) { "use strict"; - var jsonSafeStringify = __webpack_require__(1047), crypto = __webpack_require__(9), Buffer = __webpack_require__(25).Buffer, defer = "undefined" == typeof setImmediate ? process.nextTick : setImmediate; + var jsonSafeStringify = __webpack_require__(1131), crypto = __webpack_require__(6), Buffer = __webpack_require__(26).Buffer, defer = "undefined" == typeof setImmediate ? process.nextTick : setImmediate; exports.paramsHaveRequestBody = function(params) { return params.body || params.requestBodyStream || params.json && "boolean" != typeof params.json || params.multipart; }, exports.safeStringify = function(obj, replacer) { @@ -22350,7 +24725,7 @@ }; }, exports.defer = defer; }, function(module, exports, __webpack_require__) { - var Key = __webpack_require__(26), Fingerprint = __webpack_require__(97), Signature = __webpack_require__(48), PrivateKey = __webpack_require__(28), Certificate = __webpack_require__(102), Identity = __webpack_require__(103), errs = __webpack_require__(44); + var Key = __webpack_require__(27), Fingerprint = __webpack_require__(109), Signature = __webpack_require__(53), PrivateKey = __webpack_require__(29), Certificate = __webpack_require__(114), Identity = __webpack_require__(115), errs = __webpack_require__(48); module.exports = { Key: Key, parseKey: Key.parse, @@ -22478,8 +24853,8 @@ }); } }; - var assert = __webpack_require__(15), crypto = __webpack_require__(9), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(30), utils = __webpack_require__(27), nacl = __webpack_require__(99), Key = __webpack_require__(26), PrivateKey = __webpack_require__(28), CRYPTO_HAVE_ECDH = void 0 !== crypto.createECDH, ec = (__webpack_require__(1057), - __webpack_require__(151)), jsbn = __webpack_require__(98).BigInteger; + var assert = __webpack_require__(15), crypto = __webpack_require__(6), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(31), utils = __webpack_require__(28), nacl = __webpack_require__(111), Key = __webpack_require__(27), PrivateKey = __webpack_require__(29), CRYPTO_HAVE_ECDH = void 0 !== crypto.createECDH, ec = (__webpack_require__(1141), + __webpack_require__(164)), jsbn = __webpack_require__(110).BigInteger; function DiffieHellman(key) { if (utils.assertCompatible(key, Key, [ 1, 4 ], "key"), this._isPriv = PrivateKey.isPrivateKey(key, [ 1, 3 ]), this._algo = key.type, this._curve = key.curve, this._key = key, "dsa" === key.type) { @@ -22879,7 +25254,7 @@ der.endSequence(); } }; - var assert = __webpack_require__(15), asn1 = __webpack_require__(49), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(30), utils = __webpack_require__(27), Key = __webpack_require__(26), PrivateKey = __webpack_require__(28), pem = __webpack_require__(56), readECDSACurve = __webpack_require__(101).readECDSACurve; + var assert = __webpack_require__(15), asn1 = __webpack_require__(54), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(31), utils = __webpack_require__(28), Key = __webpack_require__(27), PrivateKey = __webpack_require__(29), pem = __webpack_require__(62), readECDSACurve = __webpack_require__(113).readECDSACurve; function readMPInt(der, nm) { return assert.strictEqual(der.peek(), asn1.Ber.Integer, nm + " is not an Integer"), utils.mpNormalize(der.readString(asn1.Ber.Integer, !0)); @@ -23037,8 +25412,8 @@ throw Key.isKey(key) ? new Error('Format "dnssec" only supports writing private keys') : new Error("key is not a Key or PrivateKey"); } }; - var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, Key = __webpack_require__(26), PrivateKey = __webpack_require__(28), utils = __webpack_require__(27), supportedAlgos = (__webpack_require__(100), - __webpack_require__(234), { + var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, Key = __webpack_require__(27), PrivateKey = __webpack_require__(29), utils = __webpack_require__(28), supportedAlgos = (__webpack_require__(112), + __webpack_require__(265), { "rsa-sha1": 5, "rsa-sha256": 8, "rsa-sha512": 10, @@ -23102,7 +25477,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var URI = __webpack_require__(1085), equal = __webpack_require__(239), util = __webpack_require__(80), SchemaObject = __webpack_require__(496), traverse = __webpack_require__(1087); + var URI = __webpack_require__(1169), equal = __webpack_require__(270), util = __webpack_require__(91), SchemaObject = __webpack_require__(538), traverse = __webpack_require__(1171); function resolve(compile, root, ref) { var refVal = this._refs[ref]; if ("string" == typeof refVal) { @@ -23259,7 +25634,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var resolve = __webpack_require__(238); + var resolve = __webpack_require__(269); function MissingRefError(baseId, ref, message) { this.message = message || MissingRefError.message(baseId, ref), this.missingRef = resolve.url(baseId, ref), this.missingSchema = resolve.normalizeId(resolve.fullPath(this.missingRef)); @@ -23277,188 +25652,57 @@ return "can't resolve reference " + ref + " from id " + baseId; }; }, function(module, exports) { - const cache = {}; - function getRandom() { - return (Math.random() + 1).toString(36).substring(7); - } - module.exports = { - set: data => { - let key = getRandom(); - for (;cache[key]; ) key = getRandom(); - return cache[key] = data, key; - }, - get: key => cache[key] || null - }; -}, function(module, exports, __webpack_require__) { - var Chainsaw = __webpack_require__(1154), EventEmitter = __webpack_require__(5).EventEmitter, Buffers = __webpack_require__(1156), Vars = __webpack_require__(1157), Stream = __webpack_require__(3).Stream; - function decodeLEu(bytes) { - for (var acc = 0, i = 0; i < bytes.length; i++) acc += Math.pow(256, i) * bytes[i]; - return acc; - } - function decodeBEu(bytes) { - for (var acc = 0, i = 0; i < bytes.length; i++) acc += Math.pow(256, bytes.length - i - 1) * bytes[i]; - return acc; - } - function decodeBEs(bytes) { - var val = decodeBEu(bytes); - return 128 == (128 & bytes[0]) && (val -= Math.pow(256, bytes.length)), val; - } - function decodeLEs(bytes) { - var val = decodeLEu(bytes); - return 128 == (128 & bytes[bytes.length - 1]) && (val -= Math.pow(256, bytes.length)), - val; - } - function words(decode) { - var self = {}; - return [ 1, 2, 4, 8 ].forEach((function(bytes) { - var bits = 8 * bytes; - self["word" + bits + "le"] = self["word" + bits + "lu"] = decode(bytes, decodeLEu), - self["word" + bits + "ls"] = decode(bytes, decodeLEs), self["word" + bits + "be"] = self["word" + bits + "bu"] = decode(bytes, decodeBEu), - self["word" + bits + "bs"] = decode(bytes, decodeBEs); - })), self.word8 = self.word8u = self.word8be, self.word8s = self.word8bs, self; - } - (exports = module.exports = function(bufOrEm, eventName) { - if (Buffer.isBuffer(bufOrEm)) return exports.parse(bufOrEm); - var s = exports.stream(); - return bufOrEm && bufOrEm.pipe ? bufOrEm.pipe(s) : bufOrEm && (bufOrEm.on(eventName || "data", (function(buf) { - s.write(buf); - })), bufOrEm.on("end", (function() { - s.end(); - }))), s; - }).stream = function(input) { - if (input) return exports.apply(null, arguments); - var pending = null; - function getBytes(bytes, cb, skip) { - pending = { - bytes: bytes, - skip: skip, - cb: function(buf) { - pending = null, cb(buf); - } - }, dispatch(); - } - var offset = null; - function dispatch() { - if (pending) if ("function" == typeof pending) pending(); else { - var buf, bytes = offset + pending.bytes; - buffers.length >= bytes && (null == offset ? (buf = buffers.splice(0, bytes), pending.skip || (buf = buf.slice())) : (pending.skip || (buf = buffers.slice(offset, bytes)), - offset = bytes), pending.skip ? pending.cb() : pending.cb(buf)); - } else caughtEnd && (done = !0); - } - function builder(saw) { - function next() { - done || saw.next(); + const isRegex = /^\/(.*)\/(.*)$/; + module.exports = function(req) { + let opts = {}; + try { + opts = JSON.parse(req.query.o); + } catch (e) {} + return (opts.fileMustInclude || []).length && (opts.fileMustInclude = opts.fileMustInclude.map((el => { + if ((el || "").match(isRegex)) { + const parts = isRegex.exec(el); + try { + return new RegExp(parts[1], parts[2]); + } catch (e) {} } - var self = words((function(bytes, cb) { - return function(name) { - getBytes(bytes, (function(buf) { - vars.set(name, cb(buf)), next(); - })); - }; - })); - return self.tap = function(cb) { - saw.nest(cb, vars.store); - }, self.into = function(key, cb) { - vars.get(key) || vars.set(key, {}); - var parent = vars; - vars = Vars(parent.get(key)), saw.nest((function() { - cb.apply(this, arguments), this.tap((function() { - vars = parent; - })); - }), vars.store); - }, self.flush = function() { - vars.store = {}, next(); - }, self.loop = function(cb) { - var end = !1; - saw.nest(!1, (function loop() { - this.vars = vars.store, cb.call(this, (function() { - end = !0, next(); - }), vars.store), this.tap(function() { - end ? saw.next() : loop.call(this); - }.bind(this)); - }), vars.store); - }, self.buffer = function(name, bytes) { - "string" == typeof bytes && (bytes = vars.get(bytes)), getBytes(bytes, (function(buf) { - vars.set(name, buf), next(); - })); - }, self.skip = function(bytes) { - "string" == typeof bytes && (bytes = vars.get(bytes)), getBytes(bytes, (function() { - next(); - })); - }, self.scan = function(name, search) { - if ("string" == typeof search) search = new Buffer(search); else if (!Buffer.isBuffer(search)) throw new Error("search must be a Buffer or a string"); - var taken = 0; - pending = function() { - var pos = buffers.indexOf(search, offset + taken), i = pos - offset - taken; - -1 !== pos ? (pending = null, null != offset ? (vars.set(name, buffers.slice(offset, offset + taken + i)), - offset += taken + i + search.length) : (vars.set(name, buffers.slice(0, taken + i)), - buffers.splice(0, taken + i + search.length)), next(), dispatch()) : i = Math.max(buffers.length - search.length - offset - taken, 0), - taken += i; - }, dispatch(); - }, self.peek = function(cb) { - offset = 0, saw.nest((function() { - cb.call(this, vars.store), this.tap((function() { - offset = null; - })); - })); - }, self; - } - var stream = Chainsaw.light(builder); - stream.writable = !0; - var buffers = Buffers(); - stream.write = function(buf) { - buffers.push(buf), dispatch(); + return el; + }))), { + opts: opts, + query: req.query }; - var vars = Vars(), done = !1, caughtEnd = !1; - return stream.end = function() { - caughtEnd = !0; - }, stream.pipe = Stream.prototype.pipe, Object.getOwnPropertyNames(EventEmitter.prototype).forEach((function(name) { - stream[name] = EventEmitter.prototype[name]; - })), stream; - }, exports.parse = function(buffer) { - var self = words((function(bytes, cb) { - return function(name) { - if (offset + bytes <= buffer.length) { - var buf = buffer.slice(offset, offset + bytes); - offset += bytes, vars.set(name, cb(buf)); - } else vars.set(name, null); - return self; - }; - })), offset = 0, vars = Vars(); - return self.vars = vars.store, self.tap = function(cb) { - return cb.call(self, vars.store), self; - }, self.into = function(key, cb) { - vars.get(key) || vars.set(key, {}); - var parent = vars; - return vars = Vars(parent.get(key)), cb.call(self, vars.store), vars = parent, self; - }, self.loop = function(cb) { - for (var end = !1, ender = function() { - end = !0; - }; !1 === end; ) cb.call(self, ender, vars.store); - return self; - }, self.buffer = function(name, size) { - "string" == typeof size && (size = vars.get(size)); - var buf = buffer.slice(offset, Math.min(buffer.length, offset + size)); - return offset += size, vars.set(name, buf), self; - }, self.skip = function(bytes) { - return "string" == typeof bytes && (bytes = vars.get(bytes)), offset += bytes, self; - }, self.scan = function(name, search) { - if ("string" == typeof search) search = new Buffer(search); else if (!Buffer.isBuffer(search)) throw new Error("search must be a Buffer or a string"); - vars.set(name, null); - for (var i = 0; i + offset <= buffer.length - search.length + 1; i++) { - for (var j = 0; j < search.length && buffer[offset + i + j] === search[j]; j++) ; - if (j === search.length) break; - } - return vars.set(name, buffer.slice(offset, offset + i)), offset += i + search.length, - self; - }, self.peek = function(cb) { - var was = offset; - return cb.call(self, vars.store), offset = was, self; - }, self.flush = function() { - return vars.store = {}, self; - }, self.eof = function() { - return offset >= buffer.length; - }, self; + }; +}, function(module, exports) { + const parseUIntLE = function(buffer, offset, size) { + var result; + switch (size) { + case 1: + result = buffer.readUInt8(offset); + break; + + case 2: + result = buffer.readUInt16LE(offset); + break; + + case 4: + result = buffer.readUInt32LE(offset); + break; + + case 8: + result = Number(buffer.readBigUInt64LE(offset)); + break; + + default: + throw new Error("Unsupported UInt LE size!"); + } + return result; + }; + module.exports = { + parse: function(buffer, format) { + var result = {}, offset = 0; + for (const [key, size] of format) buffer.length >= offset + size ? result[key] = parseUIntLE(buffer, offset, size) : result[key] = null, + offset += size; + return result; + } }; }, function(module, exports, __webpack_require__) { module.exports = Abstract; @@ -23475,7 +25719,7 @@ return s.replace(/^ {4}at /, ""); })), er; } - __webpack_require__(7)(Abstract, Stream), Abstract.prototype.on = function(ev, fn) { + __webpack_require__(8)(Abstract, Stream), Abstract.prototype.on = function(ev, fn) { return "ready" === ev && this.ready ? process.nextTick(fn.bind(this)) : Stream.prototype.on.call(this, ev, fn), this; }, Abstract.prototype.abort = function() { @@ -23520,6 +25764,207 @@ collect(e), entryBuffer.push(e); } }; +}, function(module, exports) { + const isRegex = /^\/(.*)\/(.*)$/; + module.exports = function(req) { + let opts = {}; + try { + opts = JSON.parse(req.query.o); + } catch (e) {} + return (opts.fileMustInclude || []).length && (opts.fileMustInclude = opts.fileMustInclude.map((el => { + if ((el || "").match(isRegex)) { + const parts = isRegex.exec(el); + try { + return new RegExp(parts[1], parts[2]); + } catch (e) {} + } + return el; + }))), { + opts: opts, + query: req.query + }; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + function _optionalChain(ops) { + let lastAccessLHS, value = ops[0], i = 1; + for (;i < ops.length; ) { + const op = ops[i], fn = ops[i + 1]; + if (i += 2, ("optionalAccess" === op || "optionalCall" === op) && null == value) return; + "access" === op || "optionalAccess" === op ? (lastAccessLHS = value, value = fn(value)) : "call" !== op && "optionalCall" !== op || (value = fn(((...args) => value.call(lastAccessLHS, ...args))), + lastAccessLHS = void 0); + } + return value; + } + Object.defineProperty(exports, "__esModule", { + value: !0 + }); + var RarFileChunk = class _RarFileChunk { + constructor(fileMedia, startOffset, endOffset) { + this.fileMedia = fileMedia, this.startOffset = startOffset, this.endOffset = endOffset; + } + padEnd(endPadding) { + return new _RarFileChunk(this.fileMedia, this.startOffset, this.endOffset - endPadding); + } + padStart(startPadding) { + return new _RarFileChunk(this.fileMedia, this.startOffset + startPadding, this.endOffset); + } + get length() { + return Math.max(0, this.endOffset - this.startOffset); + } + async getStream() { + return (await this.fileMedia).createReadStream({ + start: this.startOffset, + end: this.endOffset + }); + } + }, _stream = __webpack_require__(3), InnerFileStream = class extends _stream.Readable { + constructor(rarFileChunks, options) { + super(options), this.rarFileChunks = rarFileChunks; + } + pushData(data) { + this.push(data) || _optionalChain([ this, "access", _ => _.stream, "optionalAccess", _2 => _2.pause, "call", _3 => _3() ]); + } + get isStarted() { + return !!this.stream; + } + async next() { + const chunk = this.rarFileChunks.shift(); + chunk ? (this.stream = await chunk.getStream(), _optionalChain([ this, "access", _4 => _4.stream, "optionalAccess", _5 => _5.on, "call", _6 => _6("data", (data => this.pushData(data))) ]), + _optionalChain([ this, "access", _7 => _7.stream, "optionalAccess", _8 => _8.on, "call", _9 => _9("end", (() => this.next())) ])) : this.push(null); + } + _read() { + this.isStarted ? _optionalChain([ this, "access", _10 => _10.stream, "optionalAccess", _11 => _11.resume, "call", _12 => _12() ]) : this.next(); + } + }; + exports.MergeStreams = function(streams, rarFiles) { + const fileChunks = streams.map(((el, ij) => ({ + name: "file.zip", + chunk: new RarFileChunk(rarFiles[ij], 0, rarFiles[ij].length - 1) + }))).flat(), grouped = (fn = f => f.name, object = fileChunks.reduce(((prev, curr) => { + const groupKey = fn(curr), group = prev[groupKey] || []; + return group.push(curr), { + ...prev, + [groupKey]: group + }; + }), {}), mapper = value => value.map((v => v.chunk)), Object.fromEntries(Object.entries(object).map((([key, value]) => [ key, mapper(value) ])))); + var object, mapper, fn; + return Object.entries(grouped).map((([name, chunks2]) => new class { + constructor(name, rarFileChunks) { + this.name = name, this.rarFileChunks = rarFileChunks, this.length = rarFileChunks.map((c => c.length)).reduce(((s, n) => s + n)), + this.chunkMap = this.calculateChunkMap(rarFileChunks), this.name = name; + } + async readToEnd() { + return (async stream => new Promise(((resolve, reject) => { + const buffers = []; + stream.on("error", reject), stream.on("data", (data => buffers.push(data))), stream.on("end", (() => resolve(Buffer.concat(buffers)))); + })))(await this.createReadStream({ + start: 0, + end: this.length - 1 + })); + } + getChunksToStream(fileStart, fileEnd) { + const {index: startIndex, start: startOffset} = this.findMappedChunk(fileStart); + let {index: endIndex, end: endOffset} = this.findMappedChunk(fileEnd); + const chunksToStream = this.rarFileChunks.slice(startIndex, endIndex + 1), last = chunksToStream.length - 1; + chunksToStream[0] = chunksToStream[0].padStart(Math.abs(startOffset - fileStart)); + let diff = Math.abs(endOffset - fileEnd); + return diff === this.rarFileChunks.length && (diff = 0), 0 !== diff && (chunksToStream[last] = chunksToStream[last].padEnd(diff)), + chunksToStream; + } + createReadStream(interval) { + interval || (interval = { + start: 0, + end: this.length - 1 + }); + let {start: start, end: end} = interval; + if (start < 0 || end >= this.length) throw Error("Illegal start/end offset"); + return Promise.resolve(new InnerFileStream(this.getChunksToStream(start, end))); + } + calculateChunkMap(rarFileChunks) { + const chunkMap = []; + let index = 0, fileOffset = 0; + for (const chunk of rarFileChunks) { + const start = fileOffset, end = fileOffset + chunk.length; + fileOffset = end + 1, chunkMap.push({ + index: index, + start: start, + end: end, + chunk: chunk + }), index++; + } + return chunkMap; + } + findMappedChunk(offset) { + let selectedMap = this.chunkMap[0]; + for (const chunkMapping of this.chunkMap) if (offset >= chunkMapping.start && offset <= chunkMapping.end) { + selectedMap = chunkMapping; + break; + } + return selectedMap; + } + }(name, chunks2))); + }; +}, function(module, exports) { + const isRegex = /^\/(.*)\/(.*)$/; + module.exports = function(req) { + let opts = {}; + try { + opts = JSON.parse(req.query.o); + } catch (e) {} + return (opts.fileMustInclude || []).length && (opts.fileMustInclude = opts.fileMustInclude.map((el => { + if ((el || "").match(isRegex)) { + const parts = isRegex.exec(el); + try { + return new RegExp(parts[1], parts[2]); + } catch (e) {} + } + return el; + }))), { + opts: opts, + query: req.query + }; + }; +}, function(module, exports) { + const isRegex = /^\/(.*)\/(.*)$/; + module.exports = function(req) { + let opts = {}; + try { + opts = JSON.parse(req.query.o); + } catch (e) {} + return (opts.fileMustInclude || []).length && (opts.fileMustInclude = opts.fileMustInclude.map((el => { + if ((el || "").match(isRegex)) { + const parts = isRegex.exec(el); + try { + return new RegExp(parts[1], parts[2]); + } catch (e) {} + } + return el; + }))), { + opts: opts, + query: req.query + }; + }; +}, function(module, exports) { + const isRegex = /^\/(.*)\/(.*)$/; + module.exports = function(req) { + let opts = {}; + try { + opts = JSON.parse(req.query.o); + } catch (e) {} + return (opts.fileMustInclude || []).length && (opts.fileMustInclude = opts.fileMustInclude.map((el => { + if ((el || "").match(isRegex)) { + const parts = isRegex.exec(el); + try { + return new RegExp(parts[1], parts[2]); + } catch (e) {} + } + return el; + }))), { + opts: opts, + query: req.query + }; + }; }, function(module) { module.exports = [ [ "a140", "", 62 ], [ "a180", "", 32 ], [ "a240", "", 62 ], [ "a280", "", 32 ], [ "a2ab", "", 5 ], [ "a2e3", "€" ], [ "a2ef", "" ], [ "a2fd", "" ], [ "a340", "", 62 ], [ "a380", "", 31, " " ], [ "a440", "", 62 ], [ "a480", "", 32 ], [ "a4f4", "", 10 ], [ "a540", "", 62 ], [ "a580", "", 32 ], [ "a5f7", "", 7 ], [ "a640", "", 62 ], [ "a680", "", 32 ], [ "a6b9", "", 7 ], [ "a6d9", "", 6 ], [ "a6ec", "" ], [ "a6f3", "" ], [ "a6f6", "", 8 ], [ "a740", "", 62 ], [ "a780", "", 32 ], [ "a7c2", "", 14 ], [ "a7f2", "", 12 ], [ "a896", "", 10 ], [ "a8bc", "" ], [ "a8bf", "ǹ" ], [ "a8c1", "" ], [ "a8ea", "", 20 ], [ "a958", "" ], [ "a95b", "" ], [ "a95d", "" ], [ "a989", "〾⿰", 11 ], [ "a997", "", 12 ], [ "a9f0", "", 14 ], [ "aaa1", "", 93 ], [ "aba1", "", 93 ], [ "aca1", "", 93 ], [ "ada1", "", 93 ], [ "aea1", "", 93 ], [ "afa1", "", 93 ], [ "d7fa", "", 4 ], [ "f8a1", "", 93 ], [ "f9a1", "", 93 ], [ "faa1", "", 93 ], [ "fba1", "", 93 ], [ "fca1", "", 93 ], [ "fda1", "", 93 ], [ "fe50", "⺁⺄㑳㑇⺈⺋㖞㘚㘎⺌⺗㥮㤘㧏㧟㩳㧐㭎㱮㳠⺧⺪䁖䅟⺮䌷⺳⺶⺷䎱䎬⺻䏝䓖䙡䙌" ], [ "fe80", "䜣䜩䝼䞍⻊䥇䥺䥽䦂䦃䦅䦆䦟䦛䦷䦶䲣䲟䲠䲡䱷䲢䴓", 6, "䶮", 93 ] ]; }, function(module) { @@ -23567,11 +26012,11 @@ for (i = 0, len = exports.skips.length; i < len; i++) if (exports.skips[i].test(name)) return !1; for (i = 0, len = exports.names.length; i < len; i++) if (exports.names[i].test(name)) return !0; return !1; - }, exports.humanize = __webpack_require__(542), exports.names = [], exports.skips = [], + }, exports.humanize = __webpack_require__(588), exports.names = [], exports.skips = [], exports.formatters = {}; }, function(module, exports, __webpack_require__) { "use strict"; - var EventEmitter = __webpack_require__(5).EventEmitter; + var EventEmitter = __webpack_require__(4).EventEmitter; function lazyProperty(obj, prop, getter) { Object.defineProperty(obj, prop, { configurable: !0, @@ -23595,9 +26040,9 @@ return stack; }, Error.stackTraceLimit = 2, Error.captureStackTrace(obj); var stack = obj.stack.slice(); - return Error.prepareStackTrace = prep, Error.stackTraceLimit = limit, stack[0].toString ? toString : __webpack_require__(548); + return Error.prepareStackTrace = prep, Error.stackTraceLimit = limit, stack[0].toString ? toString : __webpack_require__(594); })), lazyProperty(module.exports, "eventListenerCount", (function() { - return EventEmitter.listenerCount || __webpack_require__(549); + return EventEmitter.listenerCount || __webpack_require__(595); })); }, function(module, exports, __webpack_require__) { "use strict"; @@ -23742,7 +26187,7 @@ }, module.exports.fromDepth = flattenFromDepth; }, function(module, exports, __webpack_require__) { "use strict"; - var pathRegexp = __webpack_require__(161), debug = __webpack_require__(8)("router:layer"), hasOwnProperty = Object.prototype.hasOwnProperty; + var pathRegexp = __webpack_require__(178), debug = __webpack_require__(9)("router:layer"), hasOwnProperty = Object.prototype.hasOwnProperty; function Layer(path, options, fn) { if (!(this instanceof Layer)) return new Layer(path, options, fn); debug("new %o", path); @@ -23810,7 +26255,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = DHT; - var bencode = __webpack_require__(164), Buffer = __webpack_require__(25).Buffer, debug = __webpack_require__(572)("bittorrent-dht"), equals = __webpack_require__(112), EventEmitter = __webpack_require__(5).EventEmitter, inherits = __webpack_require__(7), KBucket = __webpack_require__(576), krpc = __webpack_require__(577), LRU = __webpack_require__(581), randombytes = __webpack_require__(113), simpleSha1 = __webpack_require__(165); + var bencode = __webpack_require__(181), Buffer = __webpack_require__(26).Buffer, debug = __webpack_require__(9)("bittorrent-dht"), equals = __webpack_require__(123), EventEmitter = __webpack_require__(4).EventEmitter, inherits = __webpack_require__(8), KBucket = __webpack_require__(618), krpc = __webpack_require__(619), LRU = __webpack_require__(623), randombytes = __webpack_require__(124), simpleSha1 = __webpack_require__(182); function DHT(opts) { if (!(this instanceof DHT)) return new DHT(opts); opts || (opts = {}); @@ -24299,199 +26744,12 @@ })(node.values) : []; }; }, function(module, exports, __webpack_require__) { - "use strict"; - module.exports = function(env) { - function selectColor(namespace) { - for (var hash = 0, i = 0; i < namespace.length; i++) hash = (hash << 5) - hash + namespace.charCodeAt(i), - hash |= 0; - return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; - } - function createDebug(namespace) { - var prevTime; - function debug() { - if (debug.enabled) { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key]; - var self = debug, curr = Number(new Date), ms = curr - (prevTime || curr); - self.diff = ms, self.prev = prevTime, self.curr = curr, prevTime = curr, args[0] = createDebug.coerce(args[0]), - "string" != typeof args[0] && args.unshift("%O"); - var index = 0; - args[0] = args[0].replace(/%([a-zA-Z%])/g, (function(match, format) { - if ("%%" === match) return match; - index++; - var formatter = createDebug.formatters[format]; - if ("function" == typeof formatter) { - var val = args[index]; - match = formatter.call(self, val), args.splice(index, 1), index--; - } - return match; - })), createDebug.formatArgs.call(self, args); - var logFn = self.log || createDebug.log; - logFn.apply(self, args); - } - } - return debug.namespace = namespace, debug.enabled = createDebug.enabled(namespace), - debug.useColors = createDebug.useColors(), debug.color = selectColor(namespace), - debug.destroy = destroy, debug.extend = extend, "function" == typeof createDebug.init && createDebug.init(debug), - createDebug.instances.push(debug), debug; - } - function destroy() { - var index = createDebug.instances.indexOf(this); - return -1 !== index && (createDebug.instances.splice(index, 1), !0); - } - function extend(namespace, delimiter) { - return createDebug(this.namespace + (void 0 === delimiter ? ":" : delimiter) + namespace); - } - return createDebug.debug = createDebug, createDebug.default = createDebug, createDebug.coerce = function(val) { - return val instanceof Error ? val.stack || val.message : val; - }, createDebug.disable = function() { - createDebug.enable(""); - }, createDebug.enable = function(namespaces) { - var i; - createDebug.save(namespaces), createDebug.names = [], createDebug.skips = []; - var split = ("string" == typeof namespaces ? namespaces : "").split(/[\s,]+/), len = split.length; - for (i = 0; i < len; i++) split[i] && ("-" === (namespaces = split[i].replace(/\*/g, ".*?"))[0] ? createDebug.skips.push(new RegExp("^" + namespaces.substr(1) + "$")) : createDebug.names.push(new RegExp("^" + namespaces + "$"))); - for (i = 0; i < createDebug.instances.length; i++) { - var instance = createDebug.instances[i]; - instance.enabled = createDebug.enabled(instance.namespace); - } - }, createDebug.enabled = function(name) { - if ("*" === name[name.length - 1]) return !0; - var i, len; - for (i = 0, len = createDebug.skips.length; i < len; i++) if (createDebug.skips[i].test(name)) return !1; - for (i = 0, len = createDebug.names.length; i < len; i++) if (createDebug.names[i].test(name)) return !0; - return !1; - }, createDebug.humanize = __webpack_require__(256), Object.keys(env).forEach((function(key) { - createDebug[key] = env[key]; - })), createDebug.instances = [], createDebug.names = [], createDebug.skips = [], - createDebug.formatters = {}, createDebug.selectColor = selectColor, createDebug.enable(createDebug.load()), - createDebug; - }; -}, function(module, exports) { - var s = 1e3, m = 60 * s, h = 60 * m, d = 24 * h; - function plural(ms, msAbs, n, name) { - var isPlural = msAbs >= 1.5 * n; - return Math.round(ms / n) + " " + name + (isPlural ? "s" : ""); - } - module.exports = function(val, options) { - options = options || {}; - var ms, msAbs, type = typeof val; - if ("string" === type && val.length > 0) return (function(str) { - if (!((str = String(str)).length > 100)) { - var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str); - if (match) { - var n = parseFloat(match[1]); - switch ((match[2] || "ms").toLowerCase()) { - case "years": - case "year": - case "yrs": - case "yr": - case "y": - return 315576e5 * n; - - case "weeks": - case "week": - case "w": - return 6048e5 * n; - - case "days": - case "day": - case "d": - return n * d; - - case "hours": - case "hour": - case "hrs": - case "hr": - case "h": - return n * h; - - case "minutes": - case "minute": - case "mins": - case "min": - case "m": - return n * m; - - case "seconds": - case "second": - case "secs": - case "sec": - case "s": - return n * s; - - case "milliseconds": - case "millisecond": - case "msecs": - case "msec": - case "ms": - return n; - - default: - return; - } - } - } - })(val); - if ("number" === type && isFinite(val)) return options.long ? (ms = val, (msAbs = Math.abs(ms)) >= d ? plural(ms, msAbs, d, "day") : msAbs >= h ? plural(ms, msAbs, h, "hour") : msAbs >= m ? plural(ms, msAbs, m, "minute") : msAbs >= s ? plural(ms, msAbs, s, "second") : ms + " ms") : (function(ms) { - var msAbs = Math.abs(ms); - return msAbs >= d ? Math.round(ms / d) + "d" : msAbs >= h ? Math.round(ms / h) + "h" : msAbs >= m ? Math.round(ms / m) + "m" : msAbs >= s ? Math.round(ms / s) + "s" : ms + "ms"; - })(val); - throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val)); - }; -}, function(module, exports, __webpack_require__) { - "use strict"; - const os = __webpack_require__(23), hasFlag = __webpack_require__(575), env = process.env; - let forceColor; - function getSupportLevel(stream) { - const level = (function(stream) { - if (!1 === forceColor) return 0; - if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) return 3; - if (hasFlag("color=256")) return 2; - if (stream && !stream.isTTY && !0 !== forceColor) return 0; - const min = forceColor ? 1 : 0; - if ("win32" === process.platform) { - const osRelease = os.release().split("."); - return Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586 ? Number(osRelease[2]) >= 14931 ? 3 : 2 : 1; - } - if ("CI" in env) return [ "TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI" ].some((sign => sign in env)) || "codeship" === env.CI_NAME ? 1 : min; - if ("TEAMCITY_VERSION" in env) return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; - if ("truecolor" === env.COLORTERM) return 3; - if ("TERM_PROGRAM" in env) { - const version = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10); - switch (env.TERM_PROGRAM) { - case "iTerm.app": - return version >= 3 ? 3 : 2; - - case "Apple_Terminal": - return 2; - } - } - return /-256(color)?$/i.test(env.TERM) ? 2 : /^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM) || "COLORTERM" in env ? 1 : (env.TERM, - min); - })(stream); - return (function(level) { - return 0 !== level && { - level: level, - hasBasic: !0, - has256: level >= 2, - has16m: level >= 3 - }; - })(level); - } - hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") ? forceColor = !1 : (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) && (forceColor = !0), - "FORCE_COLOR" in env && (forceColor = 0 === env.FORCE_COLOR.length || 0 !== parseInt(env.FORCE_COLOR, 10)), module.exports = { - supportsColor: getSupportLevel, - stdout: getSupportLevel(process.stdout), - stderr: getSupportLevel(process.stderr) + encode: __webpack_require__(632), + decode: __webpack_require__(633) }; }, function(module, exports, __webpack_require__) { - module.exports = { - encode: __webpack_require__(590), - decode: __webpack_require__(591) - }; -}, function(module, exports, __webpack_require__) { - var ipaddr = __webpack_require__(166), compact2string = function(buf) { + var ipaddr = __webpack_require__(183), compact2string = function(buf) { switch (buf.length) { case 6: return buf[0] + "." + buf[1] + "." + buf[2] + "." + buf[3] + ":" + buf.readUInt16BE(4); @@ -24526,7 +26784,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - const PassThrough = __webpack_require__(3).PassThrough, zlib = __webpack_require__(45), mimicResponse = __webpack_require__(594); + const PassThrough = __webpack_require__(3).PassThrough, zlib = __webpack_require__(43), mimicResponse = __webpack_require__(636); module.exports = response => { if (-1 === [ "gzip", "deflate" ].indexOf(response.headers["content-encoding"])) return response; const unzip = zlib.createUnzip(), stream = new PassThrough; @@ -24536,8 +26794,8 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var WS = module.exports = __webpack_require__(263); - WS.Server = __webpack_require__(610), WS.Sender = __webpack_require__(265), WS.Receiver = __webpack_require__(268), + var WS = module.exports = __webpack_require__(296); + WS.Server = __webpack_require__(652), WS.Sender = __webpack_require__(298), WS.Receiver = __webpack_require__(301), WS.createServer = function(options, fn) { var server = new WS.Server(options); return "function" == typeof fn && server.on("connection", fn), server; @@ -24547,7 +26805,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var url = __webpack_require__(6), util = __webpack_require__(0), http = __webpack_require__(11), https = __webpack_require__(21), crypto = __webpack_require__(9), stream = __webpack_require__(3), Ultron = __webpack_require__(601), Options = __webpack_require__(264), Sender = __webpack_require__(265), Receiver = __webpack_require__(268), SenderHixie = __webpack_require__(608), ReceiverHixie = __webpack_require__(609), Extensions = __webpack_require__(269), PerMessageDeflate = __webpack_require__(115), EventEmitter = __webpack_require__(5).EventEmitter; + var url = __webpack_require__(7), util = __webpack_require__(0), http = __webpack_require__(11), https = __webpack_require__(21), crypto = __webpack_require__(6), stream = __webpack_require__(3), Ultron = __webpack_require__(643), Options = __webpack_require__(297), Sender = __webpack_require__(298), Receiver = __webpack_require__(301), SenderHixie = __webpack_require__(650), ReceiverHixie = __webpack_require__(651), Extensions = __webpack_require__(302), PerMessageDeflate = __webpack_require__(126), EventEmitter = __webpack_require__(4).EventEmitter; function WebSocket(address, protocols, options) { if (this instanceof WebSocket == 0) return new WebSocket(address, protocols, options); EventEmitter.call(this), protocols && !Array.isArray(protocols) && "object" == typeof protocols && (options = protocols, @@ -24913,8 +27171,8 @@ }, Object.freeze(values), Object.freeze(this); }; }, function(module, exports, __webpack_require__) { - var events = __webpack_require__(5), util = __webpack_require__(0), crypto = __webpack_require__(9), ErrorCodes = (events.EventEmitter, - __webpack_require__(266)), bufferUtil = __webpack_require__(267), PerMessageDeflate = __webpack_require__(115); + var events = __webpack_require__(4), util = __webpack_require__(0), crypto = __webpack_require__(6), ErrorCodes = (events.EventEmitter, + __webpack_require__(299)), bufferUtil = __webpack_require__(300), PerMessageDeflate = __webpack_require__(126); function Sender(socket, extensions) { if (this instanceof Sender == 0) throw new TypeError("Classes can't be function-called"); events.EventEmitter.call(this), this._socket = socket, this.extensions = extensions || {}, @@ -25043,14 +27301,14 @@ "use strict"; var bufferUtil; try { - bufferUtil = __webpack_require__(602); + bufferUtil = __webpack_require__(644); } catch (e) { - bufferUtil = __webpack_require__(603); + bufferUtil = __webpack_require__(645); } module.exports = bufferUtil.BufferUtil || bufferUtil; }, function(module, exports, __webpack_require__) { __webpack_require__(0); - var isValidUTF8 = __webpack_require__(604), ErrorCodes = __webpack_require__(266), BufferPool = __webpack_require__(607), bufferUtil = __webpack_require__(267), PerMessageDeflate = __webpack_require__(115); + var isValidUTF8 = __webpack_require__(646), ErrorCodes = __webpack_require__(299), BufferPool = __webpack_require__(649), bufferUtil = __webpack_require__(300), PerMessageDeflate = __webpack_require__(126); function Receiver(extensions, maxPayload) { if (this instanceof Receiver == 0) throw new TypeError("Classes can't be function-called"); "number" == typeof extensions && (maxPayload = extensions, extensions = {}); @@ -25487,7 +27745,7 @@ parsed.createdBy && (torrent["created by"] = parsed.createdBy), parsed.comment && (torrent.comment = parsed.comment), bencode.encode(torrent); }; - var bencode = __webpack_require__(164), path = __webpack_require__(4), sha1 = __webpack_require__(165), uniq = __webpack_require__(114); + var bencode = __webpack_require__(181), path = __webpack_require__(5), sha1 = __webpack_require__(182), uniq = __webpack_require__(125); function decodeTorrentFile(torrent) { Buffer.isBuffer(torrent) && (torrent = bencode.decode(torrent)), ensure(torrent.info, "info"), ensure(torrent.info["name.utf-8"] || torrent.info.name, "info.name"), ensure(torrent.info["piece length"], "info['piece length']"), @@ -25637,8 +27895,8 @@ isSample && meta.tag.push("sample"), meta; }; }, function(module, exports, __webpack_require__) { - __webpack_require__(70); - var paths, once = __webpack_require__(34), child = __webpack_require__(31), byline = __webpack_require__(93), retrieveKeyframes = __webpack_require__(636).get, SUPPORTED_QUALITIES = [ 320, 480, 720 ], instances = {}, videoApi = module.exports; + __webpack_require__(81); + var paths, once = __webpack_require__(35), child = __webpack_require__(32), byline = __webpack_require__(102), retrieveKeyframes = __webpack_require__(678).get, SUPPORTED_QUALITIES = [ 320, 480, 720 ], instances = {}, videoApi = module.exports; videoApi.probeVideo = function(mri, cb) { if (!paths.ffmpeg) return cb(new Error("no ffmpeg found; call HLS.locateExecutables()")); var res = { @@ -25757,8 +28015,8 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var async = __webpack_require__(38), fs = __webpack_require__(2), util = __webpack_require__(0), debug = (__webpack_require__(71).crc32, - __webpack_require__(40)("matroska:document")), schema = __webpack_require__(12), Element = __webpack_require__(274), tools = __webpack_require__(72), tagClasses = {}; + var async = __webpack_require__(40), fs = __webpack_require__(2), util = __webpack_require__(0), debug = (__webpack_require__(82).crc32, + __webpack_require__(44)("matroska:document")), schema = __webpack_require__(12), Element = __webpack_require__(307), tools = __webpack_require__(83), tagClasses = {}; function Document() { this.type = "D", this._name = "Document", this.tagId = 0, this._nextTagId = 1, this.ownerDocument = this, this.masterType = !0; @@ -25768,16 +28026,16 @@ var idx = list.indexOf(tag); return !(idx < 0 || (list.splice(idx, 1), 0)); } - tagClasses[schema.byName.Segment] = __webpack_require__(650), tagClasses[schema.byName.Attachments] = __webpack_require__(655), - tagClasses[schema.byName.AttachedFile] = __webpack_require__(656), tagClasses[schema.byName.Tags] = __webpack_require__(657), - tagClasses[schema.byName.Tag] = __webpack_require__(658), tagClasses[schema.byName.Targets] = __webpack_require__(659), - tagClasses[schema.byName.SimpleTag] = __webpack_require__(660), tagClasses[schema.byName.SeekHead] = __webpack_require__(661), - tagClasses[schema.byName.Seek] = __webpack_require__(662), tagClasses[schema.byName.Info] = __webpack_require__(663), - tagClasses[schema.byName.Tracks] = __webpack_require__(664), tagClasses[schema.byName.TrackEntry] = __webpack_require__(665), - tagClasses[schema.byName.Video] = __webpack_require__(666), tagClasses[schema.byName.Audio] = __webpack_require__(667), - tagClasses[schema.byName.CRC_32] = __webpack_require__(668), tagClasses[schema.byName.Cues] = __webpack_require__(669), - tagClasses[schema.byName.CuePoint] = __webpack_require__(670), tagClasses[schema.byName.CueReference] = __webpack_require__(671), - tagClasses[schema.byName.CueTrackPositions] = __webpack_require__(672), util.inherits(Document, Element), + tagClasses[schema.byName.Segment] = __webpack_require__(692), tagClasses[schema.byName.Attachments] = __webpack_require__(697), + tagClasses[schema.byName.AttachedFile] = __webpack_require__(698), tagClasses[schema.byName.Tags] = __webpack_require__(699), + tagClasses[schema.byName.Tag] = __webpack_require__(700), tagClasses[schema.byName.Targets] = __webpack_require__(701), + tagClasses[schema.byName.SimpleTag] = __webpack_require__(702), tagClasses[schema.byName.SeekHead] = __webpack_require__(703), + tagClasses[schema.byName.Seek] = __webpack_require__(704), tagClasses[schema.byName.Info] = __webpack_require__(705), + tagClasses[schema.byName.Tracks] = __webpack_require__(706), tagClasses[schema.byName.TrackEntry] = __webpack_require__(707), + tagClasses[schema.byName.Video] = __webpack_require__(708), tagClasses[schema.byName.Audio] = __webpack_require__(709), + tagClasses[schema.byName.CRC_32] = __webpack_require__(710), tagClasses[schema.byName.Cues] = __webpack_require__(711), + tagClasses[schema.byName.CuePoint] = __webpack_require__(712), tagClasses[schema.byName.CueReference] = __webpack_require__(713), + tagClasses[schema.byName.CueTrackPositions] = __webpack_require__(714), util.inherits(Document, Element), module.exports = Document, Document.prototype.createElement = function(ebmlID, start, length) { var tagClass = tagClasses[ebmlID]; return tagClass ? new tagClass(this, this._nextTagId++, start, length) : new Element(this, this._nextTagId++, ebmlID, start, length); @@ -25899,7 +28157,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var assert = __webpack_require__(22), async = __webpack_require__(38), crc32 = __webpack_require__(71).crc32, stream = __webpack_require__(3), util = __webpack_require__(0), fs = __webpack_require__(2), debug = __webpack_require__(40)("matroska:element"), schema = __webpack_require__(12), tools = __webpack_require__(72), MillenniumTime = Date.UTC(2001, 0, 1); + var assert = __webpack_require__(25), async = __webpack_require__(40), crc32 = __webpack_require__(82).crc32, stream = __webpack_require__(3), util = __webpack_require__(0), fs = __webpack_require__(2), debug = __webpack_require__(44)("matroska:element"), schema = __webpack_require__(12), tools = __webpack_require__(83), MillenniumTime = Date.UTC(2001, 0, 1); function Element(doc, tagId, ebmlID, start, length) { if (!doc || "D" !== doc.type) throw new Error("Invalid document"); this.ownerDocument = doc, this.tagId = tagId; @@ -26404,10 +28662,10 @@ })(); }, function(module, exports, __webpack_require__) { "use strict"; - __webpack_require__(40)("matroska:source"), module.exports = function() {}; + __webpack_require__(44)("matroska:source"), module.exports = function() {}; }, function(module, exports, __webpack_require__) { "use strict"; - var fs = __webpack_require__(2), util = __webpack_require__(0), debug = __webpack_require__(40)("matroska:fileSource"), AbstractSource = __webpack_require__(172), fileSourceKey = 0; + var fs = __webpack_require__(2), util = __webpack_require__(0), debug = __webpack_require__(44)("matroska:fileSource"), AbstractSource = __webpack_require__(187), fileSourceKey = 0; function FileSource(filename) { AbstractSource.call(this), this.filename = filename; } @@ -26449,7 +28707,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; __webpack_require__(2); - var util = __webpack_require__(0), debug = __webpack_require__(40)("matroska:httpSource"), http = __webpack_require__(673).http, Url = __webpack_require__(6), AbstractSource = __webpack_require__(172), httpSourceKey = 0; + var util = __webpack_require__(0), debug = __webpack_require__(44)("matroska:httpSource"), http = __webpack_require__(715).http, Url = __webpack_require__(7), AbstractSource = __webpack_require__(187), httpSourceKey = 0; function HttpSource(url, configuration) { AbstractSource.call(this), this.configuration = configuration || {}, this.url = url; } @@ -26488,375 +28746,192 @@ return "[HttpSource url=" + this.url + "]"; }; }, function(module, exports, __webpack_require__) { - var fs = __webpack_require__(2), http = __webpack_require__(11), https = __webpack_require__(21), url = __webpack_require__(6), stream = __webpack_require__(3), debug = __webpack_require__(8)("needle"), stringify = __webpack_require__(678).build, multipart = __webpack_require__(679), auth = __webpack_require__(680), cookies = __webpack_require__(681), parsers = __webpack_require__(682), decoder = __webpack_require__(690), version = __webpack_require__(691).version, user_agent = "Needle/" + version; - user_agent += " (Node.js " + process.version + "; " + process.platform + " " + process.arch + ")"; - var close_by_default = !http.Agent || http.Agent.defaultMaxSockets != 1 / 0, decompressors = {}; - try { - var zlib = __webpack_require__(45); - decompressors["x-deflate"] = zlib.Inflate, decompressors.deflate = zlib.Inflate, - decompressors["x-gzip"] = zlib.Gunzip, decompressors.gzip = zlib.Gunzip; - } catch (e) {} - var defaults = { - boundary: "--------------------NODENEEDLEHTTPCLIENT", - encoding: "utf8", - parse_response: "all", - accept: "*/*", - user_agent: user_agent, - open_timeout: 1e4, - read_timeout: 0, - follow_max: 0, - decode_response: !0, - parse_cookies: !0, - follow_set_cookies: !1, - follow_set_referer: !1, - follow_keep_method: !1, - follow_if_same_host: !1, - follow_if_same_protocol: !1 - }, aliased = { - options: { - decode: "decode_response", - parse: "parse_response", - timeout: "open_timeout", - follow: "follow_max" - }, - inverted: {} - }; - function keys_by_type(type) { - return Object.keys(defaults).map((function(el) { - if (defaults[el].constructor == type) return el; - })).filter((function(el) { - return el; - })); - } - function is_stream(obj) { - return "function" == typeof obj.pipe; - } - function Needle(method, uri, data, options, callback) { - if ("string" != typeof uri) throw new TypeError("URL must be a string, not " + uri); - this.method = method, this.uri = uri, this.data = data, "function" == typeof options ? (this.callback = options, - this.options = {}) : (this.callback = callback, this.options = options); - } - Object.keys(aliased.options).map((function(k) { - var value = aliased.options[k]; - aliased.inverted[value] = k; - })), Needle.prototype.setup = function(uri, options) { - function get_option(key, fallback) { - return void 0 !== options[key] ? options[key] : void 0 !== options[aliased.inverted[key]] ? options[aliased.inverted[key]] : fallback; + "use strict"; + module.exports = function(env) { + function selectColor(namespace) { + for (var hash = 0, i = 0; i < namespace.length; i++) hash = (hash << 5) - hash + namespace.charCodeAt(i), + hash |= 0; + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; } - function check_value(expected, key) { - var value = get_option(key), type = typeof value; - if ("undefined" != type && type != expected) throw new TypeError(type + " received for " + key + ", but expected a " + expected); - return type == expected ? value : defaults[key]; - } - var config = { - http_opts: {}, - proxy: options.proxy, - output: options.output, - parser: get_option("parse_response", defaults.parse_response), - encoding: options.encoding || (options.multipart ? "binary" : defaults.encoding) - }; - if (keys_by_type(Boolean).forEach((function(key) { - config[key] = check_value("boolean", key); - })), keys_by_type(Number).forEach((function(key) { - config[key] = check_value("number", key); - })), "agent pfx key passphrase cert ca ciphers rejectUnauthorized secureProtocol checkServerIdentity".split(" ").forEach((function(key) { - void 0 !== options[key] && (config.http_opts[key] = options[key], void 0 === options.agent && (config.http_opts.agent = !1)); - })), config.headers = { - accept: options.accept || defaults.accept, - "user-agent": options.user_agent || defaults.user_agent - }, (options.connection || close_by_default) && (config.headers.connection = options.connection || "close"), - (options.compressed || defaults.compressed) && void 0 !== zlib && (config.headers["accept-encoding"] = "gzip,deflate"), - options.cookies && (config.headers.cookie = cookies.write(options.cookies)), -1 !== uri.indexOf("@")) { - var parts = (url.parse(uri).auth || "").split(":"); - options.username = parts[0], options.password = parts[1]; - } - if (options.username && (!options.auth || "auto" != options.auth && "digest" != options.auth ? config.headers.authorization = auth.basic(options.username, options.password) : config.credentials = [ options.username, options.password ]), - config.proxy) { - if (-1 === config.proxy.indexOf("http") && (config.proxy = "http://" + config.proxy), - -1 !== config.proxy.indexOf("@")) { - var proxy = (url.parse(config.proxy).auth || "").split(":"); - options.proxy_user = proxy[0], options.proxy_pass = proxy[1]; + function createDebug(namespace) { + var prevTime; + function debug() { + if (debug.enabled) { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key]; + var self = debug, curr = Number(new Date), ms = curr - (prevTime || curr); + self.diff = ms, self.prev = prevTime, self.curr = curr, prevTime = curr, args[0] = createDebug.coerce(args[0]), + "string" != typeof args[0] && args.unshift("%O"); + var index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (function(match, format) { + if ("%%" === match) return match; + index++; + var formatter = createDebug.formatters[format]; + if ("function" == typeof formatter) { + var val = args[index]; + match = formatter.call(self, val), args.splice(index, 1), index--; + } + return match; + })), createDebug.formatArgs.call(self, args); + var logFn = self.log || createDebug.log; + logFn.apply(self, args); + } } - options.proxy_user && (config.headers["proxy-authorization"] = auth.basic(options.proxy_user, options.proxy_pass)); + return debug.namespace = namespace, debug.enabled = createDebug.enabled(namespace), + debug.useColors = createDebug.useColors(), debug.color = selectColor(namespace), + debug.destroy = destroy, debug.extend = extend, "function" == typeof createDebug.init && createDebug.init(debug), + createDebug.instances.push(debug), debug; } - for (var h in options.headers) config.headers[h.toLowerCase()] = options.headers[h]; - return config; - }, Needle.prototype.start = function() { - var out = new stream.PassThrough({ - objectMode: !1 - }), uri = this.uri, data = this.data, method = this.method, callback = "function" == typeof this.options ? this.options : this.callback, options = this.options || {}; - -1 === uri.indexOf("http") && (uri = uri.replace(/^(\/\/)?/, "http://")); - var body, config = this.setup(uri, options); - if (data) { - if (options.multipart) { - var self = this, boundary = options.boundary || defaults.boundary; - return multipart.build(data, boundary, (function(err, parts) { - if (err) throw err; - config.headers["content-type"] = "multipart/form-data; boundary=" + boundary, config.headers["content-length"] = parts.length, - self.send_request(1, method, uri, config, parts, out, callback); - })), out; + function destroy() { + var index = createDebug.instances.indexOf(this); + return -1 !== index && (createDebug.instances.splice(index, 1), !0); + } + function extend(namespace, delimiter) { + return createDebug(this.namespace + (void 0 === delimiter ? ":" : delimiter) + namespace); + } + return createDebug.debug = createDebug, createDebug.default = createDebug, createDebug.coerce = function(val) { + return val instanceof Error ? val.stack || val.message : val; + }, createDebug.disable = function() { + createDebug.enable(""); + }, createDebug.enable = function(namespaces) { + var i; + createDebug.save(namespaces), createDebug.names = [], createDebug.skips = []; + var split = ("string" == typeof namespaces ? namespaces : "").split(/[\s,]+/), len = split.length; + for (i = 0; i < len; i++) split[i] && ("-" === (namespaces = split[i].replace(/\*/g, ".*?"))[0] ? createDebug.skips.push(new RegExp("^" + namespaces.substr(1) + "$")) : createDebug.names.push(new RegExp("^" + namespaces + "$"))); + for (i = 0; i < createDebug.instances.length; i++) { + var instance = createDebug.instances[i]; + instance.enabled = createDebug.enabled(instance.namespace); } - if (is_stream(data) || Buffer.isBuffer(data)) { - if (is_stream(data) && "GET" == method.toUpperCase()) throw new Error("Refusing to pipe() a stream via GET. Did you mean .post?"); - body = data; - } else "GET" != method.toUpperCase() || options.json ? (body = "string" == typeof data ? data : options.json ? JSON.stringify(data) : stringify(data), - body = new Buffer(body, config.encoding)) : uri = uri.replace(/\?.*|$/, "?" + stringify(data)); - } - return body && (body.length && (config.headers["content-length"] = body.length), - config.headers["content-type"] || (config.headers["content-type"] = options.json ? "application/json; charset=utf-8" : "application/x-www-form-urlencoded"), - options.json && config.headers.accept === defaults.accept && (config.headers.accept = "application/json")), - this.send_request(1, method, uri, config, body, out, callback); - }, Needle.prototype.get_request_opts = function(method, uri, config) { - var opts = config.http_opts, proxy = config.proxy, remote = proxy ? url.parse(proxy) : url.parse(uri); - if (opts.protocol = remote.protocol, opts.host = remote.hostname, opts.port = remote.port || ("https:" == remote.protocol ? 443 : 80), - opts.path = proxy ? uri : remote.pathname + (remote.search || ""), opts.method = method, - opts.headers = config.headers, !opts.headers.host) { - var target = proxy ? url.parse(uri) : remote; - opts.headers.host = target.hostname, target.port && -1 === [ 80, 443 ].indexOf(target.port) && (opts.headers.host += ":" + target.port); - } - return opts; - }, Needle.prototype.should_follow = function(location, config, original) { - if (!location) return !1; - function matches(property) { - return property = original[property], -1 !== location.indexOf(property); - } - return !(location === original || config.follow_if_same_host && !matches("host") || config.follow_if_same_protocol && !matches("protocol")); - }, Needle.prototype.send_request = function(count, method, uri, config, post_data, out, callback) { - var timer, returned = 0, self = this, request_opts = this.get_request_opts(method, uri, config), protocol = "https:" == request_opts.protocol ? https : http; - function done(err, resp, body) { - return returned++ > 0 ? debug("Already finished, stopping here.") : (timer && clearTimeout(timer), - request.removeListener("error", had_error), callback ? callback(err, resp, body) : void out.emit("end", err, resp, body)); - } - function had_error(err) { - debug("Request error", err), done(err || new Error("Unknown error when making request.")); - } - function set_timeout(milisecs) { - milisecs <= 0 || (timer = setTimeout((function() { - request.abort(); - }), milisecs)); - } - function on_socket_end() { - this.writable || !1 !== this.destroyed || (this.destroy(), had_error(new Error("Remote end closed socket abruptly."))); - } - debug("Making request #" + count, request_opts); - var request = protocol.request(request_opts, (function(resp) { - var headers = resp.headers; - if (debug("Got response", resp.statusCode, headers), timer && clearTimeout(timer), - set_timeout(config.read_timeout), headers["set-cookie"] && config.parse_cookies && (resp.cookies = cookies.read(headers["set-cookie"]), - debug("Got cookies", resp.cookies)), -1 !== [ 301, 302, 303 ].indexOf(resp.statusCode) && self.should_follow(headers.location, config, uri)) { - if (count <= config.follow_max) return out.emit("redirect", headers.location), config.follow_keep_method || (method = "GET", - post_data = null, delete config.headers["content-length"]), config.follow_set_cookies && resp.cookies && (config.headers.cookie = cookies.write(resp.cookies)), - config.follow_set_referer && (config.headers.referer = uri), config.headers.host = null, - debug("Redirecting to " + url.resolve(uri, headers.location)), self.send_request(++count, method, url.resolve(uri, headers.location), config, post_data, out, callback); - if (config.follow_max > 0) return done(new Error("Max redirects reached. Possible loop in: " + headers.location)); - } - if (401 == resp.statusCode && headers["www-authenticate"] && config.credentials && !config.headers.authorization) { - var auth_header = auth.header(headers["www-authenticate"], config.credentials, request_opts); - if (auth_header) return config.headers.authorization = auth_header, self.send_request(count, method, uri, config, post_data, out, callback); - } - out.emit("header", resp.statusCode, headers), out.emit("headers", headers); - var pipeline = [], mime = (function(header) { - if (!header || "" === header) return {}; - var charset = "iso-8859-1", arr = header.split(";"); - try { - charset = arr[1].match(/charset=(.+)/)[1]; - } catch (e) {} - return { - type: arr[0], - charset: charset - }; - })(headers["content-type"]), text_response = mime.type && -1 != mime.type.indexOf("text/"); - if (headers["content-encoding"] && decompressors[headers["content-encoding"]]) { - var decompressor = decompressors[headers["content-encoding"]](); - decompressor.on("error", had_error), pipeline.push(decompressor); - } - if (config.parser && parsers[mime.type]) { - var parser_name = config.parser.toString().toLowerCase(); - -1 != [ "xml", "json" ].indexOf(parser_name) && parsers[mime.type].name != parser_name || (out.parser = parsers[mime.type].name, - pipeline.push(parsers[mime.type].fn()), out._writableState.objectMode = !0, out._readableState.objectMode = !0); - } else text_response && config.decode_response && mime.charset && !mime.charset.match(/utf-?8$/i) && pipeline.push(decoder(mime.charset)); - pipeline.push(out); - for (var tmp = resp; pipeline.length; ) tmp = tmp.pipe(pipeline.shift()); - if (config.output && 200 == resp.statusCode) { - var file = fs.createWriteStream(config.output); - file.on("error", had_error), out.on("end", (function() { - file.writable && file.end(); - })), out.on("readable", (function() { - for (var chunk; chunk = this.read(); ) file.writable && file.write(chunk); - })); - } - if (callback) { - resp.raw = [], resp.body = [], resp.bytes = 0; - var clean_pipe = new stream.PassThrough; - resp.pipe(clean_pipe), clean_pipe.on("readable", (function() { - for (var chunk; chunk = this.read(); ) resp.bytes += chunk.length, resp.raw.push(chunk); - })), out.on("readable", (function() { - for (var chunk; null !== (chunk = this.read()); ) "string" == typeof chunk && (chunk = new Buffer(chunk)), - resp.body.push(chunk); - })), out.on("end", (function() { - resp.raw = Buffer.concat(resp.raw), void 0 === resp.body[0] || Buffer.isBuffer(resp.body[0]) ? (resp.body = Buffer.concat(resp.body), - (text_response || out.parser) && (resp.body = resp.body.toString())) : (resp.body = resp.body[0], - out.parser && (resp.parser = out.parser)), done(null, resp, resp.body); - })); - } - })); - return set_timeout(config.open_timeout), request.on("error", had_error), request.once("socket", (function(socket) { - socket.on_socket_end || (socket.on_socket_end = on_socket_end, socket.on("end", socket.on_socket_end)); - })), post_data ? is_stream(post_data) ? post_data.pipe(request) : (request.write(post_data, config.encoding), - request.end()) : request.end(), out.request = request, out; - }, exports.version = version, exports.defaults = function(obj) { - for (var key in obj) { - var target_key = aliased.options[key] || key; - if (defaults.hasOwnProperty(target_key) && void 0 !== obj[key]) { - var valid_type = defaults[target_key].constructor.name; - if ("parse_response" != target_key && obj[key].constructor.name != valid_type) throw new TypeError("Invalid type for " + key + ", should be " + valid_type); - defaults[target_key] = obj[key]; - } - } - return defaults; - }, "head get".split(" ").forEach((function(method) { - exports[method] = function(uri, options, callback) { - return new Needle(method, uri, null, options, callback).start(); - }; - })), "post put patch delete".split(" ").forEach((function(method) { - exports[method] = function(uri, data, options, callback) { - return new Needle(method, uri, data, options, callback).start(); - }; - })), exports.request = function(method, uri, data, opts, callback) { - return new Needle(method, uri, data, opts, callback).start(); + }, createDebug.enabled = function(name) { + if ("*" === name[name.length - 1]) return !0; + var i, len; + for (i = 0, len = createDebug.skips.length; i < len; i++) if (createDebug.skips[i].test(name)) return !1; + for (i = 0, len = createDebug.names.length; i < len; i++) if (createDebug.names[i].test(name)) return !0; + return !1; + }, createDebug.humanize = __webpack_require__(313), Object.keys(env).forEach((function(key) { + createDebug[key] = env[key]; + })), createDebug.instances = [], createDebug.names = [], createDebug.skips = [], + createDebug.formatters = {}, createDebug.selectColor = selectColor, createDebug.enable(createDebug.load()), + createDebug; }; }, function(module, exports) { - (function() { - module.exports = (function() { - function XMLAttribute(parent, name, value) { - if (this.options = parent.options, this.stringify = parent.stringify, null == name) throw new Error("Missing attribute name of element " + parent.name); - if (null == value) throw new Error("Missing attribute value for attribute " + name + " of element " + parent.name); - this.name = this.stringify.attName(name), this.value = this.stringify.attValue(value); + var s = 1e3, m = 60 * s, h = 60 * m, d = 24 * h; + function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= 1.5 * n; + return Math.round(ms / n) + " " + name + (isPlural ? "s" : ""); + } + module.exports = function(val, options) { + options = options || {}; + var ms, msAbs, type = typeof val; + if ("string" === type && val.length > 0) return (function(str) { + if (!((str = String(str)).length > 100)) { + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str); + if (match) { + var n = parseFloat(match[1]); + switch ((match[2] || "ms").toLowerCase()) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return 315576e5 * n; + + case "weeks": + case "week": + case "w": + return 6048e5 * n; + + case "days": + case "day": + case "d": + return n * d; + + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return n * h; + + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return n * m; + + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return n * s; + + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return n; + + default: + return; + } + } } - return XMLAttribute.prototype.clone = function() { - return Object.create(this); - }, XMLAttribute.prototype.toString = function(options) { - return this.options.writer.set(options).attribute(this); - }, XMLAttribute; - })(); - }).call(this); -}, function(module, exports) { - (function() { - var hasProp = {}.hasOwnProperty; - module.exports = (function() { - function XMLStringifier(options) { - var fn, me, key, ref, value; - for (key in this.assertLegalChar = (fn = this.assertLegalChar, me = this, function() { - return fn.apply(me, arguments); - }), options || (options = {}), this.noDoubleEncoding = options.noDoubleEncoding, - ref = options.stringify || {}) hasProp.call(ref, key) && (value = ref[key], this[key] = value); + })(val); + if ("number" === type && isFinite(val)) return options.long ? (ms = val, (msAbs = Math.abs(ms)) >= d ? plural(ms, msAbs, d, "day") : msAbs >= h ? plural(ms, msAbs, h, "hour") : msAbs >= m ? plural(ms, msAbs, m, "minute") : msAbs >= s ? plural(ms, msAbs, s, "second") : ms + " ms") : (function(ms) { + var msAbs = Math.abs(ms); + return msAbs >= d ? Math.round(ms / d) + "d" : msAbs >= h ? Math.round(ms / h) + "h" : msAbs >= m ? Math.round(ms / m) + "m" : msAbs >= s ? Math.round(ms / s) + "s" : ms + "ms"; + })(val); + throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val)); + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + const os = __webpack_require__(23), hasFlag = __webpack_require__(723), env = process.env; + let forceColor; + function getSupportLevel(stream) { + const level = (function(stream) { + if (!1 === forceColor) return 0; + if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) return 3; + if (hasFlag("color=256")) return 2; + if (stream && !stream.isTTY && !0 !== forceColor) return 0; + const min = forceColor ? 1 : 0; + if ("win32" === process.platform) { + const osRelease = os.release().split("."); + return Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586 ? Number(osRelease[2]) >= 14931 ? 3 : 2 : 1; } - return XMLStringifier.prototype.eleName = function(val) { - return val = "" + val || "", this.assertLegalChar(val); - }, XMLStringifier.prototype.eleText = function(val) { - return val = "" + val || "", this.assertLegalChar(this.elEscape(val)); - }, XMLStringifier.prototype.cdata = function(val) { - return val = (val = "" + val || "").replace("]]>", "]]]]>"), this.assertLegalChar(val); - }, XMLStringifier.prototype.comment = function(val) { - if ((val = "" + val || "").match(/--/)) throw new Error("Comment text cannot contain double-hypen: " + val); - return this.assertLegalChar(val); - }, XMLStringifier.prototype.raw = function(val) { - return "" + val || ""; - }, XMLStringifier.prototype.attName = function(val) { - return "" + val || ""; - }, XMLStringifier.prototype.attValue = function(val) { - return val = "" + val || "", this.attEscape(val); - }, XMLStringifier.prototype.insTarget = function(val) { - return "" + val || ""; - }, XMLStringifier.prototype.insValue = function(val) { - if ((val = "" + val || "").match(/\?>/)) throw new Error("Invalid processing instruction value: " + val); - return val; - }, XMLStringifier.prototype.xmlVersion = function(val) { - if (!(val = "" + val || "").match(/1\.[0-9]+/)) throw new Error("Invalid version number: " + val); - return val; - }, XMLStringifier.prototype.xmlEncoding = function(val) { - if (!(val = "" + val || "").match(/^[A-Za-z](?:[A-Za-z0-9._-])*$/)) throw new Error("Invalid encoding: " + val); - return val; - }, XMLStringifier.prototype.xmlStandalone = function(val) { - return val ? "yes" : "no"; - }, XMLStringifier.prototype.dtdPubID = function(val) { - return "" + val || ""; - }, XMLStringifier.prototype.dtdSysID = function(val) { - return "" + val || ""; - }, XMLStringifier.prototype.dtdElementValue = function(val) { - return "" + val || ""; - }, XMLStringifier.prototype.dtdAttType = function(val) { - return "" + val || ""; - }, XMLStringifier.prototype.dtdAttDefault = function(val) { - return null != val ? "" + val || "" : val; - }, XMLStringifier.prototype.dtdEntityValue = function(val) { - return "" + val || ""; - }, XMLStringifier.prototype.dtdNData = function(val) { - return "" + val || ""; - }, XMLStringifier.prototype.convertAttKey = "@", XMLStringifier.prototype.convertPIKey = "?", - XMLStringifier.prototype.convertTextKey = "#text", XMLStringifier.prototype.convertCDataKey = "#cdata", - XMLStringifier.prototype.convertCommentKey = "#comment", XMLStringifier.prototype.convertRawKey = "#raw", - XMLStringifier.prototype.assertLegalChar = function(str) { - var res; - if (res = str.match(/[\0\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/)) throw new Error("Invalid character in string: " + str + " at index " + res.index); - return str; - }, XMLStringifier.prototype.elEscape = function(str) { - var ampregex; - return ampregex = this.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g, str.replace(ampregex, "&").replace(//g, ">").replace(/\r/g, " "); - }, XMLStringifier.prototype.attEscape = function(str) { - var ampregex; - return ampregex = this.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g, str.replace(ampregex, "&").replace(/ sign in env)) || "codeship" === env.CI_NAME ? 1 : min; + if ("TEAMCITY_VERSION" in env) return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + if ("truecolor" === env.COLORTERM) return 3; + if ("TERM_PROGRAM" in env) { + const version = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10); + switch (env.TERM_PROGRAM) { + case "iTerm.app": + return version >= 3 ? 3 : 2; + + case "Apple_Terminal": + return 2; + } } - return XMLWriterBase.prototype.set = function(options) { - var key, ref, value; - for (key in options || (options = {}), "pretty" in options && (this.pretty = options.pretty), - "allowEmpty" in options && (this.allowEmpty = options.allowEmpty), this.pretty ? (this.indent = "indent" in options ? options.indent : " ", - this.newline = "newline" in options ? options.newline : "\n", this.offset = "offset" in options ? options.offset : 0, - this.dontprettytextnodes = "dontprettytextnodes" in options ? options.dontprettytextnodes : 0) : (this.indent = "", - this.newline = "", this.offset = 0, this.dontprettytextnodes = 0), this.spacebeforeslash = "spacebeforeslash" in options ? options.spacebeforeslash : "", - !0 === this.spacebeforeslash && (this.spacebeforeslash = " "), this.newlinedefault = this.newline, - this.prettydefault = this.pretty, ref = options.writer || {}) hasProp.call(ref, key) && (value = ref[key], - this[key] = value); - return this; - }, XMLWriterBase.prototype.space = function(level) { - var indent; - return this.pretty && (indent = (level || 0) + this.offset + 1) > 0 ? new Array(indent).join(this.indent) : ""; - }, XMLWriterBase; - })(); - }).call(this); -}, function(module, exports) { - (function() { - "use strict"; - var prefixMatch; - prefixMatch = new RegExp(/(?!xmlns)^.*:/), exports.normalize = function(str) { - return str.toLowerCase(); - }, exports.firstCharLowerCase = function(str) { - return str.charAt(0).toLowerCase() + str.slice(1); - }, exports.stripPrefix = function(str) { - return str.replace(prefixMatch, ""); - }, exports.parseNumbers = function(str) { - return isNaN(str) || (str = str % 1 == 0 ? parseInt(str, 10) : parseFloat(str)), - str; - }, exports.parseBooleans = function(str) { - return /^(?:true|false)$/i.test(str) && (str = "true" === str.toLowerCase()), str; - }; - }).call(this); + return /-256(color)?$/i.test(env.TERM) ? 2 : /^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM) || "COLORTERM" in env ? 1 : (env.TERM, + min); + })(stream); + return (function(level) { + return 0 !== level && { + level: level, + hasBasic: !0, + has256: level >= 2, + has16m: level >= 3 + }; + })(level); + } + hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") ? forceColor = !1 : (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) && (forceColor = !0), + "FORCE_COLOR" in env && (forceColor = 0 === env.FORCE_COLOR.length || 0 !== parseInt(env.FORCE_COLOR, 10)), + module.exports = { + supportsColor: getSupportLevel, + stdout: getSupportLevel(process.stdout), + stderr: getSupportLevel(process.stderr) + }; }, function(module, exports, __webpack_require__) { !(function(moment) { "use strict"; @@ -32686,6 +34761,138 @@ module.exports = isPositiveInteger, module.exports.isSafePositiveInteger = function(x) { return isPositiveInteger(x) && x <= MAX_SAFE_INTEGER; }; +}, function(module, exports) { + (function() { + module.exports = (function() { + function XMLAttribute(parent, name, value) { + if (this.options = parent.options, this.stringify = parent.stringify, null == name) throw new Error("Missing attribute name of element " + parent.name); + if (null == value) throw new Error("Missing attribute value for attribute " + name + " of element " + parent.name); + this.name = this.stringify.attName(name), this.value = this.stringify.attValue(value); + } + return XMLAttribute.prototype.clone = function() { + return Object.create(this); + }, XMLAttribute.prototype.toString = function(options) { + return this.options.writer.set(options).attribute(this); + }, XMLAttribute; + })(); + }).call(this); +}, function(module, exports) { + (function() { + var hasProp = {}.hasOwnProperty; + module.exports = (function() { + function XMLStringifier(options) { + var fn, me, key, ref, value; + for (key in this.assertLegalChar = (fn = this.assertLegalChar, me = this, function() { + return fn.apply(me, arguments); + }), options || (options = {}), this.noDoubleEncoding = options.noDoubleEncoding, + ref = options.stringify || {}) hasProp.call(ref, key) && (value = ref[key], this[key] = value); + } + return XMLStringifier.prototype.eleName = function(val) { + return val = "" + val || "", this.assertLegalChar(val); + }, XMLStringifier.prototype.eleText = function(val) { + return val = "" + val || "", this.assertLegalChar(this.elEscape(val)); + }, XMLStringifier.prototype.cdata = function(val) { + return val = (val = "" + val || "").replace("]]>", "]]]]>"), this.assertLegalChar(val); + }, XMLStringifier.prototype.comment = function(val) { + if ((val = "" + val || "").match(/--/)) throw new Error("Comment text cannot contain double-hypen: " + val); + return this.assertLegalChar(val); + }, XMLStringifier.prototype.raw = function(val) { + return "" + val || ""; + }, XMLStringifier.prototype.attName = function(val) { + return "" + val || ""; + }, XMLStringifier.prototype.attValue = function(val) { + return val = "" + val || "", this.attEscape(val); + }, XMLStringifier.prototype.insTarget = function(val) { + return "" + val || ""; + }, XMLStringifier.prototype.insValue = function(val) { + if ((val = "" + val || "").match(/\?>/)) throw new Error("Invalid processing instruction value: " + val); + return val; + }, XMLStringifier.prototype.xmlVersion = function(val) { + if (!(val = "" + val || "").match(/1\.[0-9]+/)) throw new Error("Invalid version number: " + val); + return val; + }, XMLStringifier.prototype.xmlEncoding = function(val) { + if (!(val = "" + val || "").match(/^[A-Za-z](?:[A-Za-z0-9._-])*$/)) throw new Error("Invalid encoding: " + val); + return val; + }, XMLStringifier.prototype.xmlStandalone = function(val) { + return val ? "yes" : "no"; + }, XMLStringifier.prototype.dtdPubID = function(val) { + return "" + val || ""; + }, XMLStringifier.prototype.dtdSysID = function(val) { + return "" + val || ""; + }, XMLStringifier.prototype.dtdElementValue = function(val) { + return "" + val || ""; + }, XMLStringifier.prototype.dtdAttType = function(val) { + return "" + val || ""; + }, XMLStringifier.prototype.dtdAttDefault = function(val) { + return null != val ? "" + val || "" : val; + }, XMLStringifier.prototype.dtdEntityValue = function(val) { + return "" + val || ""; + }, XMLStringifier.prototype.dtdNData = function(val) { + return "" + val || ""; + }, XMLStringifier.prototype.convertAttKey = "@", XMLStringifier.prototype.convertPIKey = "?", + XMLStringifier.prototype.convertTextKey = "#text", XMLStringifier.prototype.convertCDataKey = "#cdata", + XMLStringifier.prototype.convertCommentKey = "#comment", XMLStringifier.prototype.convertRawKey = "#raw", + XMLStringifier.prototype.assertLegalChar = function(str) { + var res; + if (res = str.match(/[\0\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/)) throw new Error("Invalid character in string: " + str + " at index " + res.index); + return str; + }, XMLStringifier.prototype.elEscape = function(str) { + var ampregex; + return ampregex = this.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g, str.replace(ampregex, "&").replace(//g, ">").replace(/\r/g, " "); + }, XMLStringifier.prototype.attEscape = function(str) { + var ampregex; + return ampregex = this.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g, str.replace(ampregex, "&").replace(/ 0 ? new Array(indent).join(this.indent) : ""; + }, XMLWriterBase; + })(); + }).call(this); +}, function(module, exports) { + (function() { + "use strict"; + var prefixMatch; + prefixMatch = new RegExp(/(?!xmlns)^.*:/), exports.normalize = function(str) { + return str.toLowerCase(); + }, exports.firstCharLowerCase = function(str) { + return str.charAt(0).toLowerCase() + str.slice(1); + }, exports.stripPrefix = function(str) { + return str.replace(prefixMatch, ""); + }, exports.parseNumbers = function(str) { + return isNaN(str) || (str = str % 1 == 0 ? parseInt(str, 10) : parseFloat(str)), + str; + }, exports.parseBooleans = function(str) { + return /^(?:true|false)$/i.test(str) && (str = "true" === str.toLowerCase()), str; + }; + }).call(this); }, function(module, exports, __webpack_require__) { var CharsetMatch = __webpack_require__(18); module.exports = function(getChar, name) { @@ -32711,7 +34918,7 @@ 0 == it.done; } __webpack_require__(18); - var base = __webpack_require__(131); + var base = __webpack_require__(141); module.exports = function(commonChars) { return base(commonChars, nextChar); }; @@ -33378,7 +35585,7 @@ }.apply(exports, [])) || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__); }).call(this); }, function(module, exports, __webpack_require__) { - var xmlBuilder = __webpack_require__(745), dateFormatter = __webpack_require__(375); + var xmlBuilder = __webpack_require__(799), dateFormatter = __webpack_require__(410); function serializeValue(value, xml) { for (var stack = [ { value: value, @@ -33477,7 +35684,7 @@ return zeroPad(date.getFullYear(), 4) + zeroPad(date.getMonth() + 1, 2) + zeroPad(date.getDate(), 2) + "T" + zeroPad(date.getHours(), 2) + ":" + zeroPad(date.getMinutes(), 2) + ":" + zeroPad(date.getSeconds(), 2); }; }, function(module, exports, __webpack_require__) { - var sax = __webpack_require__(748), dateFormatter = __webpack_require__(375), Deserializer = function(encoding) { + var sax = __webpack_require__(802), dateFormatter = __webpack_require__(410), Deserializer = function(encoding) { this.type = null, this.responseType = null, this.stack = [], this.marks = [], this.data = [], this.methodname = null, this.encoding = encoding || "utf8", this.value = !1, this.callback = null, this.error = null, this.parser = sax.createStream(), this.parser.on("opentag", this.onOpentag.bind(this)), @@ -33641,7 +35848,7 @@ this.type = "methodcall"; }, module.exports = Deserializer; }, function(module, exports, __webpack_require__) { - const profiles = __webpack_require__(179), profiler = __webpack_require__(753), applyProfile = __webpack_require__(757); + const profiles = __webpack_require__(193), profiler = __webpack_require__(807), applyProfile = __webpack_require__(811); module.exports = { profiles: profiles, profiler: profiler, @@ -33650,18 +35857,19 @@ }, function(module) { module.exports = { name: "stremio-server", - version: "4.20.12", + version: "4.20.15", stremioRuntimeVersion: "4.0", description: "Stremio HTTP server", main: "init.js", scripts: { - build: "node prepare.js && webpack --config webpack.config.desktop.js", - "build-android": "node prepare.js && webpack --config webpack.config.android.js", - "build-tizen": "node prepare.js && webpack -p --define process.env.TIZEN_ENV='1' --define process.env.TV_ENV='1' --config webpack.config.tizen.js", - "build-webos": "node prepare.js && webpack -p --define process.env.WEBOS_ENV='1' --define process.env.TV_ENV='1' --config webpack.config.webos.js", - "build-unity": "node prepare.js && webpack -p --define process.env.UNITY_ENV='1' --config webpack.config.unity.js", - "build-updater-tizen": "node prepare.js && webpack -p --define process.env.TIZEN_ENV='1' --define process.env.TV_ENV='1' --config webpack.config.updater-tizen.js", - "build-updater-webos": "node prepare.js && webpack -p --define process.env.WEBOS_ENV='1' --define process.env.TV_ENV='1' --config webpack.config.updater-webos.js", + deps: "NODE_OPTIONS=--openssl-legacy-provider yarn install --network-concurrency 1", + build: "export NODE_OPTIONS=--openssl-legacy-provider; node prepare.js && webpack --config webpack.config.desktop.js", + "build-android": "export NODE_OPTIONS=--openssl-legacy-provider; node prepare.js && webpack --config webpack.config.android.js", + "build-tizen": "export NODE_OPTIONS=--openssl-legacy-provider; node prepare.js && webpack -p --define process.env.TIZEN_ENV='1' --define process.env.TV_ENV='1' --config webpack.config.tizen.js", + "build-webos": "export NODE_OPTIONS=--openssl-legacy-provider; node prepare.js && webpack -p --define process.env.WEBOS_ENV='1' --define process.env.TV_ENV='1' --config webpack.config.webos.js", + "build-unity": "export NODE_OPTIONS=--openssl-legacy-provider; node prepare.js && webpack -p --define process.env.UNITY_ENV='1' --config webpack.config.unity.js", + "build-updater-tizen": "export NODE_OPTIONS=--openssl-legacy-provider; node prepare.js && webpack -p --define process.env.TIZEN_ENV='1' --define process.env.TV_ENV='1' --config webpack.config.updater-tizen.js", + "build-updater-webos": "export NODE_OPTIONS=--openssl-legacy-provider; node prepare.js && webpack -p --define process.env.WEBOS_ENV='1' --define process.env.TV_ENV='1' --config webpack.config.updater-webos.js", test: "jest" }, keywords: [ "server" ], @@ -33707,8 +35915,14 @@ xml2js: "0.4.x", xmlbuilder: "4.2.0", "ytdl-core": "4.9.0", - "rar-http": "https://github.com/Stremio/rar-http#08b8cd6bb5719ad21ea8c07e4713236e7381775b", - "zip-http": "git+ssh://git@github.com/Stremio/zip-http.git#3c7140c2c8b27d558b497c6322e519cbb64c226f" + "rar-http": "git+ssh://git@github.com/Stremio/rar5-http#7e661b7a001ba45fd6cf5edfe688f7abd1716a9c", + "zip-http": "git+ssh://git@github.com/Stremio/zip-http#897a59fabae5809f72a0426262eda6225aa971bd", + "@babel/plugin-transform-spread": "7.25.9", + "nzb-http": "git+ssh://git@github.com/Stremio/nzb-http.git#b3c03a3bb8a8b03e9689cc85e83629fc30aa97fb", + "7z-http": "git+ssh://git@github.com/Stremio/7z-http.git#f24d29035ddee487c280e4fe4609d21af7920522", + "tar-http": "git+ssh://git@github.com/Stremio/tar-http.git#502c3dafa2d50fe9a6b6e54e798b13305f4665d8", + "gzip-http": "git+ssh://git@github.com/Stremio/gzip-http.git#876b9cea2ad83923513d9c4d85bb7d3f794590dc", + "ftp-http": "git+ssh://git@github.com/Stremio/ftp-http.git#8a9ae06317401452aeccdb5e795c8985354c19d9" }, author: "Smart Code LTD", license: "MIT", @@ -33730,14 +35944,14 @@ } }; }, function(module, exports, __webpack_require__) { - var pkg = __webpack_require__(378), path = __webpack_require__(4), os = __webpack_require__(23); + var pkg = __webpack_require__(413), path = __webpack_require__(5), os = __webpack_require__(23); if (!(appPath = process.env.APP_PATH)) { var appPath = path.join(os.tmpdir(), pkg.name); "linux" === process.platform ? appPath = path.join(process.env.HOME, "." + pkg.name) : "darwin" === process.platform ? appPath = path.join(process.env.HOME, "Library", "Application Support", pkg.name) : "win32" === process.platform ? appPath = path.join(process.env.APPDATA, "stremio", pkg.name) : console.error("Unable to determine application path - export 'APP_PATH' instead"); } module.exports = appPath; }, function(module, exports, __webpack_require__) { - var doClean, enginefs = __webpack_require__(155), walk = __webpack_require__(754), child = __webpack_require__(31), fs = __webpack_require__(2), path = __webpack_require__(4), once = __webpack_require__(34), os = __webpack_require__(23); + var doClean, enginefs = __webpack_require__(172), walk = __webpack_require__(808), child = __webpack_require__(32), fs = __webpack_require__(2), path = __webpack_require__(5), once = __webpack_require__(35), os = __webpack_require__(23); function getDiskSpace(cachePath, cb) { if (cb = once(cb), process.env.TIZEN_ENV || process.env.WEBOS_ENV) cb(null); else if (process.platform.match(/^win/)) try { var cacheDrive = cachePath.split(":").shift().toUpperCase(); @@ -33951,7 +36165,7 @@ "use strict"; (function(__dirname) { function getPath(name) { - const os = __webpack_require__(23), path = __webpack_require__(4), binaries = Object.assign(Object.create(null), { + const os = __webpack_require__(23), path = __webpack_require__(5), binaries = Object.assign(Object.create(null), { darwin: [ "x64" ], linux: [ "x64", "ia32", "arm64", "arm" ], win32: [ "x64", "ia32" ] @@ -33977,28 +36191,28 @@ }; }, function(module, exports, __webpack_require__) { module.exports = Readable; - var isArray = __webpack_require__(772), Buffer = __webpack_require__(10).Buffer; + var isArray = __webpack_require__(826), Buffer = __webpack_require__(10).Buffer; Readable.ReadableState = ReadableState; - var EE = __webpack_require__(5).EventEmitter; + var EE = __webpack_require__(4).EventEmitter; EE.listenerCount || (EE.listenerCount = function(emitter, type) { return emitter.listeners(type).length; }); - var StringDecoder, Stream = __webpack_require__(3), util = __webpack_require__(32); - util.inherits = __webpack_require__(95); + var StringDecoder, Stream = __webpack_require__(3), util = __webpack_require__(33); + util.inherits = __webpack_require__(8); var debug = __webpack_require__(0); function ReadableState(options, stream) { - var Duplex = __webpack_require__(73), hwm = (options = options || {}).highWaterMark, defaultHwm = options.objectMode ? 16 : 16384; + var Duplex = __webpack_require__(84), hwm = (options = options || {}).highWaterMark, defaultHwm = options.objectMode ? 16 : 16384; this.highWaterMark = hwm || 0 === hwm ? hwm : defaultHwm, this.highWaterMark = ~~this.highWaterMark, this.buffer = [], this.length = 0, this.pipes = null, this.pipesCount = 0, this.flowing = null, this.ended = !1, this.endEmitted = !1, this.reading = !1, this.sync = !0, this.needReadable = !1, this.emittedReadable = !1, this.readableListening = !1, this.objectMode = !!options.objectMode, stream instanceof Duplex && (this.objectMode = this.objectMode || !!options.readableObjectMode), this.defaultEncoding = options.defaultEncoding || "utf8", this.ranOut = !1, this.awaitDrain = 0, - this.readingMore = !1, this.decoder = null, this.encoding = null, options.encoding && (StringDecoder || (StringDecoder = __webpack_require__(385).StringDecoder), + this.readingMore = !1, this.decoder = null, this.encoding = null, options.encoding && (StringDecoder || (StringDecoder = __webpack_require__(420).StringDecoder), this.decoder = new StringDecoder(options.encoding), this.encoding = options.encoding); } function Readable(options) { - if (__webpack_require__(73), !(this instanceof Readable)) return new Readable(options); + if (__webpack_require__(84), !(this instanceof Readable)) return new Readable(options); this._readableState = new ReadableState(options, this), this.readable = !0, Stream.call(this); } function readableAddChunk(stream, state, chunk, encoding, addToFront) { @@ -34092,7 +36306,7 @@ }, Readable.prototype.unshift = function(chunk) { return readableAddChunk(this, this._readableState, chunk, "", !0); }, Readable.prototype.setEncoding = function(enc) { - return StringDecoder || (StringDecoder = __webpack_require__(385).StringDecoder), + return StringDecoder || (StringDecoder = __webpack_require__(420).StringDecoder), this._readableState.decoder = new StringDecoder(enc), this._readableState.encoding = enc, this; }, Readable.prototype.read = function(n) { @@ -34239,14 +36453,14 @@ module.exports = Writable; var Buffer = __webpack_require__(10).Buffer; Writable.WritableState = WritableState; - var util = __webpack_require__(32); - util.inherits = __webpack_require__(95); + var util = __webpack_require__(33); + util.inherits = __webpack_require__(8); var Stream = __webpack_require__(3); function WriteReq(chunk, encoding, cb) { this.chunk = chunk, this.encoding = encoding, this.callback = cb; } function WritableState(options, stream) { - var Duplex = __webpack_require__(73), hwm = (options = options || {}).highWaterMark, defaultHwm = options.objectMode ? 16 : 16384; + var Duplex = __webpack_require__(84), hwm = (options = options || {}).highWaterMark, defaultHwm = options.objectMode ? 16 : 16384; this.highWaterMark = hwm || 0 === hwm ? hwm : defaultHwm, this.objectMode = !!options.objectMode, stream instanceof Duplex && (this.objectMode = this.objectMode || !!options.writableObjectMode), this.highWaterMark = ~~this.highWaterMark, this.needDrain = !1, this.ending = !1, @@ -34275,7 +36489,7 @@ this.prefinished = !1, this.errorEmitted = !1; } function Writable(options) { - var Duplex = __webpack_require__(73); + var Duplex = __webpack_require__(84); if (!(this instanceof Writable || this instanceof Duplex)) return new Writable(options); this._writableState = new WritableState(options, this), this.writable = !0, Stream.call(this); } @@ -34462,7 +36676,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = Transform; - var Duplex = __webpack_require__(73), util = __webpack_require__(32); + var Duplex = __webpack_require__(84), util = __webpack_require__(33); function TransformState(options, stream) { this.afterTransform = function(er, data) { return (function(stream, er, data) { @@ -34494,7 +36708,7 @@ if (ts.transforming) throw new Error("calling transform done when still transforming"); return stream.push(null); } - util.inherits = __webpack_require__(95), util.inherits(Transform, Duplex), Transform.prototype.push = function(chunk, encoding) { + util.inherits = __webpack_require__(8), util.inherits(Transform, Duplex), Transform.prototype.push = function(chunk, encoding) { return this._transformState.needTransform = !1, Duplex.prototype.push.call(this, chunk, encoding); }, Transform.prototype._transform = function(chunk, encoding, cb) { throw new Error("not implemented"); @@ -34526,7 +36740,7 @@ var input; }; }, function(module, exports, __webpack_require__) { - var bufferFill = __webpack_require__(777), allocUnsafe = __webpack_require__(778); + var bufferFill = __webpack_require__(830), allocUnsafe = __webpack_require__(831); module.exports = function(size, fill, encoding) { if ("number" != typeof size) throw new TypeError('"size" argument must be a number'); if (size < 0) throw new RangeError('"size" argument must not be negative'); @@ -34542,7 +36756,7 @@ }, realpath.unmonkeypatch = function() { fs.realpath = origRealpath, fs.realpathSync = origRealpathSync; }; - var fs = __webpack_require__(2), origRealpath = fs.realpath, origRealpathSync = fs.realpathSync, version = process.version, ok = /^v[0-5]\./.test(version), old = __webpack_require__(781); + var fs = __webpack_require__(2), origRealpath = fs.realpath, origRealpathSync = fs.realpathSync, version = process.version, ok = /^v[0-5]\./.test(version), old = __webpack_require__(834); function newError(er) { return er && "realpath" === er.syscall && ("ELOOP" === er.code || "ENOMEM" === er.code || "ENAMETOOLONG" === er.code); } @@ -34628,7 +36842,7 @@ return !(!item.gmatcher || !item.gmatcher.match(path)); })); }; - var fs = __webpack_require__(2), path = __webpack_require__(4), minimatch = __webpack_require__(182), isAbsolute = __webpack_require__(183), Minimatch = minimatch.Minimatch; + var fs = __webpack_require__(2), path = __webpack_require__(5), minimatch = __webpack_require__(197), isAbsolute = __webpack_require__(198), Minimatch = minimatch.Minimatch; function alphasort(a, b) { return a.localeCompare(b, "en"); } @@ -34659,22 +36873,22 @@ } }, function(module, exports, __webpack_require__) { "use strict"; - var pna = __webpack_require__(53); + var pna = __webpack_require__(58); module.exports = Readable; - var Duplex, isArray = __webpack_require__(392); - Readable.ReadableState = ReadableState, __webpack_require__(5).EventEmitter; + var Duplex, isArray = __webpack_require__(427); + Readable.ReadableState = ReadableState, __webpack_require__(4).EventEmitter; var EElistenerCount = function(emitter, type) { return emitter.listeners(type).length; - }, Stream = __webpack_require__(393), Buffer = __webpack_require__(25).Buffer, OurUint8Array = global.Uint8Array || function() {}, util = Object.create(__webpack_require__(32)); - util.inherits = __webpack_require__(7); + }, Stream = __webpack_require__(428), Buffer = __webpack_require__(26).Buffer, OurUint8Array = global.Uint8Array || function() {}, util = Object.create(__webpack_require__(33)); + util.inherits = __webpack_require__(8); var debugUtil = __webpack_require__(0), debug = void 0; debug = debugUtil && debugUtil.debuglog ? debugUtil.debuglog("stream") : function() {}; - var StringDecoder, BufferList = __webpack_require__(797), destroyImpl = __webpack_require__(394); + var StringDecoder, BufferList = __webpack_require__(850), destroyImpl = __webpack_require__(429); util.inherits(Readable, Stream); var kProxyEvents = [ "error", "close", "destroy", "pause", "resume" ]; function ReadableState(options, stream) { options = options || {}; - var isDuplex = stream instanceof (Duplex = Duplex || __webpack_require__(74)); + var isDuplex = stream instanceof (Duplex = Duplex || __webpack_require__(85)); this.objectMode = !!options.objectMode, isDuplex && (this.objectMode = this.objectMode || !!options.readableObjectMode); var hwm = options.highWaterMark, readableHwm = options.readableHighWaterMark, defaultHwm = this.objectMode ? 16 : 16384; this.highWaterMark = hwm || 0 === hwm ? hwm : isDuplex && (readableHwm || 0 === readableHwm) ? readableHwm : defaultHwm, @@ -34683,11 +36897,11 @@ this.endEmitted = !1, this.reading = !1, this.sync = !0, this.needReadable = !1, this.emittedReadable = !1, this.readableListening = !1, this.resumeScheduled = !1, this.destroyed = !1, this.defaultEncoding = options.defaultEncoding || "utf8", this.awaitDrain = 0, - this.readingMore = !1, this.decoder = null, this.encoding = null, options.encoding && (StringDecoder || (StringDecoder = __webpack_require__(133).StringDecoder), + this.readingMore = !1, this.decoder = null, this.encoding = null, options.encoding && (StringDecoder || (StringDecoder = __webpack_require__(143).StringDecoder), this.decoder = new StringDecoder(options.encoding), this.encoding = options.encoding); } function Readable(options) { - if (Duplex = Duplex || __webpack_require__(74), !(this instanceof Readable)) return new Readable(options); + if (Duplex = Duplex || __webpack_require__(85), !(this instanceof Readable)) return new Readable(options); this._readableState = new ReadableState(options, this), this.readable = !0, options && ("function" == typeof options.read && (this._read = options.read), "function" == typeof options.destroy && (this._destroy = options.destroy)), Stream.call(this); } @@ -34816,7 +37030,7 @@ }, Readable.prototype.isPaused = function() { return !1 === this._readableState.flowing; }, Readable.prototype.setEncoding = function(enc) { - return StringDecoder || (StringDecoder = __webpack_require__(133).StringDecoder), + return StringDecoder || (StringDecoder = __webpack_require__(143).StringDecoder), this._readableState.decoder = new StringDecoder(enc), this._readableState.encoding = enc, this; }, Readable.prototype.read = function(n) { @@ -34960,7 +37174,7 @@ module.exports = __webpack_require__(3); }, function(module, exports, __webpack_require__) { "use strict"; - var pna = __webpack_require__(53); + var pna = __webpack_require__(58); function emitErrorNT(self, err) { self.emit("error", err); } @@ -34982,7 +37196,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var pna = __webpack_require__(53); + var pna = __webpack_require__(58); function CorkedRequest(state) { var _this = this; this.next = null, this.entry = null, this.finish = function() { @@ -34999,14 +37213,14 @@ module.exports = Writable; var Duplex, asyncWrite = !process.browser && [ "v0.10", "v0.9." ].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick; Writable.WritableState = WritableState; - var util = Object.create(__webpack_require__(32)); - util.inherits = __webpack_require__(7); + var util = Object.create(__webpack_require__(33)); + util.inherits = __webpack_require__(8); var realHasInstance, internalUtil = { - deprecate: __webpack_require__(186) - }, Stream = __webpack_require__(393), Buffer = __webpack_require__(25).Buffer, OurUint8Array = global.Uint8Array || function() {}, destroyImpl = __webpack_require__(394); + deprecate: __webpack_require__(201) + }, Stream = __webpack_require__(428), Buffer = __webpack_require__(26).Buffer, OurUint8Array = global.Uint8Array || function() {}, destroyImpl = __webpack_require__(429); function nop() {} function WritableState(options, stream) { - Duplex = Duplex || __webpack_require__(74), options = options || {}; + Duplex = Duplex || __webpack_require__(85), options = options || {}; var isDuplex = stream instanceof Duplex; this.objectMode = !!options.objectMode, isDuplex && (this.objectMode = this.objectMode || !!options.writableObjectMode); var hwm = options.highWaterMark, writableHwm = options.writableHighWaterMark, defaultHwm = this.objectMode ? 16 : 16384; @@ -35036,7 +37250,7 @@ this.corkedRequestsFree = new CorkedRequest(this); } function Writable(options) { - if (Duplex = Duplex || __webpack_require__(74), !(realHasInstance.call(Writable, this) || this instanceof Duplex)) return new Writable(options); + if (Duplex = Duplex || __webpack_require__(85), !(realHasInstance.call(Writable, this) || this instanceof Duplex)) return new Writable(options); this._writableState = new WritableState(options, this), this.writable = !0, options && ("function" == typeof options.write && (this._write = options.write), "function" == typeof options.writev && (this._writev = options.writev), "function" == typeof options.destroy && (this._destroy = options.destroy), "function" == typeof options.final && (this._final = options.final)), Stream.call(this); @@ -35184,7 +37398,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = Transform; - var Duplex = __webpack_require__(74), util = Object.create(__webpack_require__(32)); + var Duplex = __webpack_require__(85), util = Object.create(__webpack_require__(33)); function afterTransform(er, data) { var ts = this._transformState; ts.transforming = !1; @@ -35218,7 +37432,7 @@ if (stream._transformState.transforming) throw new Error("Calling transform done when still transforming"); return stream.push(null); } - util.inherits = __webpack_require__(7), util.inherits(Transform, Duplex), Transform.prototype.push = function(chunk, encoding) { + util.inherits = __webpack_require__(8), util.inherits(Transform, Duplex), Transform.prototype.push = function(chunk, encoding) { return this._transformState.needTransform = !1, Duplex.prototype.push.call(this, chunk, encoding); }, Transform.prototype._transform = function(chunk, encoding, cb) { throw new Error("_transform() is not implemented"); @@ -35240,7 +37454,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var childProcess = __webpack_require__(31), spawn = childProcess.spawn, exec = childProcess.exec; + var childProcess = __webpack_require__(32), spawn = childProcess.spawn, exec = childProcess.exec; function killAll(tree, signal, callback) { var killed = {}; try { @@ -35363,31 +37577,16 @@ for (i = 0, len = createDebug.skips.length; i < len; i++) if (createDebug.skips[i].test(name)) return !1; for (i = 0, len = createDebug.names.length; i < len; i++) if (createDebug.names[i].test(name)) return !0; return !1; - }, createDebug.humanize = __webpack_require__(256), Object.keys(env).forEach((function(key) { + }, createDebug.humanize = __webpack_require__(313), Object.keys(env).forEach((function(key) { createDebug[key] = env[key]; })), createDebug.instances = [], createDebug.names = [], createDebug.skips = [], createDebug.formatters = {}, createDebug.selectColor = selectColor, createDebug.enable(createDebug.load()), createDebug; }; -}, function(module, exports, __webpack_require__) { - const EventEmitter = __webpack_require__(5), bridge = "android" !== process.platform || process.env.UNITY_ENV ? null : process._linkedBinding("android_bridge"), events = {}, eventEmitter = new EventEmitter; - module.exports = { - dispatch: (event, data) => { - null !== bridge && bridge.dispatch(event, JSON.stringify(data)); - }, - on: (event, cb) => { - null !== bridge && (events[event] || (events[event] = !0, bridge.setListener(event, (data => { - eventEmitter.emit(event, JSON.parse(data)); - }))), eventEmitter.on(event, cb)); - }, - off: (event, cb) => { - null !== bridge && eventEmitter.off(event, cb); - } - }; }, function(module, exports) { module.exports = process.env.HLSV2_REMOTE ? "remote" : "local"; }, function(module, exports, __webpack_require__) { - const {ffprobe: ffprobe} = __webpack_require__(187), JSONStream = __webpack_require__(810), probeCache = []; + const {ffprobe: ffprobe} = __webpack_require__(202), JSONStream = __webpack_require__(863), probeCache = []; module.exports = function(options = {}) { const cached = probeCache.find((el => el.mediaURL === options.mediaURL)); if (cached) return process.env.HLS_DEBUG && console.log("HLSV2:probe:info used cached result"), @@ -35464,40 +37663,40 @@ Object.defineProperty(exports, "__esModule", { value: !0 }), exports.tryAcquire = exports.withTimeout = exports.Semaphore = exports.Mutex = void 0; - var tslib_1 = __webpack_require__(134), Mutex_1 = __webpack_require__(814); + var tslib_1 = __webpack_require__(144), Mutex_1 = __webpack_require__(867); Object.defineProperty(exports, "Mutex", { enumerable: !0, get: function() { return Mutex_1.default; } }); - var Semaphore_1 = __webpack_require__(403); + var Semaphore_1 = __webpack_require__(437); Object.defineProperty(exports, "Semaphore", { enumerable: !0, get: function() { return Semaphore_1.default; } }); - var withTimeout_1 = __webpack_require__(404); + var withTimeout_1 = __webpack_require__(438); Object.defineProperty(exports, "withTimeout", { enumerable: !0, get: function() { return withTimeout_1.withTimeout; } }); - var tryAcquire_1 = __webpack_require__(815); + var tryAcquire_1 = __webpack_require__(868); Object.defineProperty(exports, "tryAcquire", { enumerable: !0, get: function() { return tryAcquire_1.tryAcquire; } - }), (0, tslib_1.__exportStar)(__webpack_require__(135), exports); + }), (0, tslib_1.__exportStar)(__webpack_require__(145), exports); }, function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: !0 }); - var tslib_1 = __webpack_require__(134), errors_1 = __webpack_require__(135), Semaphore = (function() { + var tslib_1 = __webpack_require__(144), errors_1 = __webpack_require__(145), Semaphore = (function() { function Semaphore(_maxConcurrency, _cancelError) { if (void 0 === _cancelError && (_cancelError = errors_1.E_CANCELED), this._maxConcurrency = _maxConcurrency, this._cancelError = _cancelError, this._queue = [], this._waiters = [], _maxConcurrency <= 0) throw new Error("semaphore must be initialized to a positive value"); @@ -35580,7 +37779,7 @@ Object.defineProperty(exports, "__esModule", { value: !0 }), exports.withTimeout = void 0; - var tslib_1 = __webpack_require__(134), errors_1 = __webpack_require__(135); + var tslib_1 = __webpack_require__(144), errors_1 = __webpack_require__(145); exports.withTimeout = function(sync, timeout, timeoutError) { var _this = this; return void 0 === timeoutError && (timeoutError = errors_1.E_TIMEOUT), { @@ -35662,21 +37861,21 @@ }; }; }, function(module, exports, __webpack_require__) { - const retrieveMatroskaSamples = __webpack_require__(816), retrieveMP4Samples = __webpack_require__(825); + const retrieveMatroskaSamples = __webpack_require__(869), retrieveMP4Samples = __webpack_require__(878); module.exports = { matroska: retrieveMatroskaSamples, mp4: retrieveMP4Samples }; }, function(module, exports, __webpack_require__) { "use strict"; - var async = __webpack_require__(38), fs = __webpack_require__(2), util = __webpack_require__(0), debug = (__webpack_require__(71).crc32, - __webpack_require__(41)("matroska:document")), schema = __webpack_require__(13), Element = __webpack_require__(407), tools = __webpack_require__(75); - __webpack_require__(188), __webpack_require__(189), __webpack_require__(190), __webpack_require__(191), - __webpack_require__(192), __webpack_require__(193), __webpack_require__(194), __webpack_require__(195), - __webpack_require__(43), __webpack_require__(196), __webpack_require__(29), __webpack_require__(197), - __webpack_require__(198), __webpack_require__(136), __webpack_require__(137), __webpack_require__(138), - __webpack_require__(199), __webpack_require__(200), __webpack_require__(201), __webpack_require__(202), - __webpack_require__(203), __webpack_require__(204), __webpack_require__(205), __webpack_require__(206); + var async = __webpack_require__(40), fs = __webpack_require__(2), util = __webpack_require__(0), debug = (__webpack_require__(82).crc32, + __webpack_require__(46)("matroska:document")), schema = __webpack_require__(13), Element = __webpack_require__(441), tools = __webpack_require__(86); + __webpack_require__(203), __webpack_require__(204), __webpack_require__(205), __webpack_require__(206), + __webpack_require__(207), __webpack_require__(208), __webpack_require__(209), __webpack_require__(210), + __webpack_require__(47), __webpack_require__(211), __webpack_require__(30), __webpack_require__(212), + __webpack_require__(213), __webpack_require__(146), __webpack_require__(147), __webpack_require__(148), + __webpack_require__(214), __webpack_require__(215), __webpack_require__(216), __webpack_require__(217), + __webpack_require__(218), __webpack_require__(219), __webpack_require__(220), __webpack_require__(221); var tagClasses = {}; function Document() { this.type = "D", this._name = "Document", this.tagId = 0, this._nextTagId = 1, this.ownerDocument = this, @@ -35699,7 +37898,7 @@ tagClasses[schema.byName.CueTrackPositions] = "cueTrackPositions", util.inherits(Document, Element), module.exports = Document, Document.prototype.createElement = function(ebmlID, start, length) { var element, tagClass = tagClasses[ebmlID]; - return tagClass ? ("string" == typeof tagClass && (tagClass = __webpack_require__(822)("./" + tagClass), + return tagClass ? ("string" == typeof tagClass && (tagClass = __webpack_require__(875)("./" + tagClass), tagClasses[ebmlID] = tagClass), element = new tagClass(this, this._nextTagId++, start, length)) : element = new Element(this, this._nextTagId++, ebmlID, start, length), element; }, Document.prototype._registerPosition = function(tag) { @@ -35817,7 +38016,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var assert = __webpack_require__(22), async = __webpack_require__(38), crc32 = __webpack_require__(71).crc32, stream = __webpack_require__(3), util = __webpack_require__(0), fs = __webpack_require__(2), debug = __webpack_require__(41)("matroska:element"), schema = __webpack_require__(13), tools = __webpack_require__(75), MillenniumTime = Date.UTC(2001, 0, 1); + var assert = __webpack_require__(25), async = __webpack_require__(40), crc32 = __webpack_require__(82).crc32, stream = __webpack_require__(3), util = __webpack_require__(0), fs = __webpack_require__(2), debug = __webpack_require__(46)("matroska:element"), schema = __webpack_require__(13), tools = __webpack_require__(86), MillenniumTime = Date.UTC(2001, 0, 1); function Element(doc, tagId, ebmlID, start, length) { if (!doc || "D" !== doc.type) throw new Error("Invalid document"); this.ownerDocument = doc, this.tagId = tagId; @@ -36231,10 +38430,10 @@ }); }, function(module, exports, __webpack_require__) { "use strict"; - __webpack_require__(41)("matroska:source"), module.exports = function() {}; + __webpack_require__(46)("matroska:source"), module.exports = function() {}; }, function(module, exports, __webpack_require__) { "use strict"; - var fs = __webpack_require__(2), util = __webpack_require__(0), debug = __webpack_require__(41)("matroska:fileSource"), AbstractSource = __webpack_require__(207), fileSourceKey = 0; + var fs = __webpack_require__(2), util = __webpack_require__(0), debug = __webpack_require__(46)("matroska:fileSource"), AbstractSource = __webpack_require__(222), fileSourceKey = 0; function FileSource(filename) { AbstractSource.call(this), this.filename = filename; } @@ -36276,7 +38475,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; __webpack_require__(2); - var util = __webpack_require__(0), debug = __webpack_require__(41)("matroska:httpSource"), http = __webpack_require__(411).http, https = __webpack_require__(411).https, Url = __webpack_require__(6), AbstractSource = __webpack_require__(207), httpSourceKey = 0; + var util = __webpack_require__(0), debug = __webpack_require__(46)("matroska:httpSource"), http = __webpack_require__(445).http, https = __webpack_require__(445).https, Url = __webpack_require__(7), AbstractSource = __webpack_require__(222), httpSourceKey = 0; function HttpSource(url, configuration) { AbstractSource.call(this), this.configuration = configuration || {}, this.url = url; } @@ -36315,7 +38514,7 @@ return "[HttpSource url=" + this.url + "]"; }; }, function(module, exports, __webpack_require__) { - var url = __webpack_require__(6), URL = url.URL, http = __webpack_require__(11), https = __webpack_require__(21), Writable = __webpack_require__(3).Writable, assert = __webpack_require__(22), debug = __webpack_require__(823), useNativeURL = !1; + var url = __webpack_require__(7), URL = url.URL, http = __webpack_require__(11), https = __webpack_require__(21), Writable = __webpack_require__(3).Writable, assert = __webpack_require__(25), debug = __webpack_require__(876), useNativeURL = !1; try { assert(new URL); } catch (error) { @@ -36565,19 +38764,19 @@ }, function(module, exports, __webpack_require__) { "use strict"; var muxjs = { - codecs: __webpack_require__(413), - mp4: __webpack_require__(827), - flv: __webpack_require__(833), - mp2t: __webpack_require__(838), - partial: __webpack_require__(839) + codecs: __webpack_require__(447), + mp4: __webpack_require__(880), + flv: __webpack_require__(886), + mp2t: __webpack_require__(891), + partial: __webpack_require__(892) }; - muxjs.mp4.tools = __webpack_require__(843), muxjs.flv.tools = __webpack_require__(845), - muxjs.mp2t.tools = __webpack_require__(846), module.exports = muxjs; + muxjs.mp4.tools = __webpack_require__(896), muxjs.flv.tools = __webpack_require__(898), + muxjs.mp2t.tools = __webpack_require__(899), module.exports = muxjs; }, function(module, exports, __webpack_require__) { "use strict"; module.exports = { - Adts: __webpack_require__(139), - h264: __webpack_require__(208) + Adts: __webpack_require__(149), + h264: __webpack_require__(223) }; }, function(module, exports, __webpack_require__) { "use strict"; @@ -36661,7 +38860,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var coneOfSilence = __webpack_require__(830), clock = __webpack_require__(54); + var coneOfSilence = __webpack_require__(883), clock = __webpack_require__(59); module.exports = { prefixWithSilence: function(track, frames, audioAppendStartTs, videoBaseMediaDecodeTime) { var baseMediaDecodeTimeTs, frameDuration, silentFrame, i, firstFrame, audioGapDuration = 0, audioFillFrameCount = 0, audioFillDuration = 0; @@ -36707,7 +38906,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var Stream = __webpack_require__(37), cea708Parser = __webpack_require__(417), CaptionStream = function CaptionStream(options) { + var Stream = __webpack_require__(38), cea708Parser = __webpack_require__(451), CaptionStream = function CaptionStream(options) { options = options || {}, CaptionStream.prototype.init.call(this), this.parse708captions_ = "boolean" != typeof options.parse708captions || options.parse708captions, this.captionPackets_ = [], this.ccStreams_ = [ new Cea608Stream(0, 0), new Cea608Stream(0, 1), new Cea608Stream(1, 0), new Cea608Stream(1, 1) ], this.parse708captions_ && (this.cc708Stream_ = new Cea708Stream), this.reset(), @@ -37204,7 +39403,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var Stream = __webpack_require__(37), handleRollover = function(value, reference) { + var Stream = __webpack_require__(38), handleRollover = function(value, reference) { var direction = 1; for (value > reference && (direction = -1); Math.abs(reference - value) > 4294967296; ) value += 8589934592 * direction; return value; @@ -37231,7 +39430,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var _AacStream, Stream = __webpack_require__(37), aacUtils = __webpack_require__(145); + var _AacStream, Stream = __webpack_require__(38), aacUtils = __webpack_require__(155); (_AacStream = function() { var everything = new Uint8Array, timeStamp = 0; _AacStream.prototype.init.call(this), this.setTimestamp = function(timestamp) { @@ -37270,7 +39469,7 @@ "use strict"; module.exports = [ "width", "height", "profileIdc", "levelIdc", "profileCompatibility", "sarRatio" ]; }, function(module, exports, __webpack_require__) { - var stream = __webpack_require__(849), nextEvent = __webpack_require__(855), Box = __webpack_require__(429), EMPTY = Buffer.alloc(0); + var stream = __webpack_require__(902), nextEvent = __webpack_require__(908), Box = __webpack_require__(463), EMPTY = Buffer.alloc(0); class Decoder extends stream.Writable { constructor(opts) { super(opts), this.destroyed = !1, this._pending = 0, this._missing = 0, this._ignoreEmpty = !1, @@ -37358,16 +39557,16 @@ }, function(module, exports, __webpack_require__) { "use strict"; var Duplex; - module.exports = Readable, Readable.ReadableState = ReadableState, __webpack_require__(5).EventEmitter; + module.exports = Readable, Readable.ReadableState = ReadableState, __webpack_require__(4).EventEmitter; var debug, EElistenerCount = function(emitter, type) { return emitter.listeners(type).length; - }, Stream = __webpack_require__(424), Buffer = __webpack_require__(10).Buffer, OurUint8Array = global.Uint8Array || function() {}, debugUtil = __webpack_require__(0); + }, Stream = __webpack_require__(458), Buffer = __webpack_require__(10).Buffer, OurUint8Array = global.Uint8Array || function() {}, debugUtil = __webpack_require__(0); debug = debugUtil && debugUtil.debuglog ? debugUtil.debuglog("stream") : function() {}; - var StringDecoder, createReadableStreamAsyncIterator, from, BufferList = __webpack_require__(850), destroyImpl = __webpack_require__(425), getHighWaterMark = __webpack_require__(426).getHighWaterMark, _require$codes = __webpack_require__(65).codes, ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; - __webpack_require__(7)(Readable, Stream); + var StringDecoder, createReadableStreamAsyncIterator, from, BufferList = __webpack_require__(903), destroyImpl = __webpack_require__(459), getHighWaterMark = __webpack_require__(460).getHighWaterMark, _require$codes = __webpack_require__(74).codes, ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; + __webpack_require__(8)(Readable, Stream); var errorOrDestroy = destroyImpl.errorOrDestroy, kProxyEvents = [ "error", "close", "destroy", "pause", "resume" ]; function ReadableState(options, stream, isDuplex) { - Duplex = Duplex || __webpack_require__(76), options = options || {}, "boolean" != typeof isDuplex && (isDuplex = stream instanceof Duplex), + Duplex = Duplex || __webpack_require__(87), options = options || {}, "boolean" != typeof isDuplex && (isDuplex = stream instanceof Duplex), this.objectMode = !!options.objectMode, isDuplex && (this.objectMode = this.objectMode || !!options.readableObjectMode), this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex), this.buffer = new BufferList, this.length = 0, this.pipes = null, this.pipesCount = 0, @@ -37376,11 +39575,11 @@ this.resumeScheduled = !1, this.paused = !0, this.emitClose = !1 !== options.emitClose, this.autoDestroy = !!options.autoDestroy, this.destroyed = !1, this.defaultEncoding = options.defaultEncoding || "utf8", this.awaitDrain = 0, this.readingMore = !1, this.decoder = null, this.encoding = null, - options.encoding && (StringDecoder || (StringDecoder = __webpack_require__(133).StringDecoder), + options.encoding && (StringDecoder || (StringDecoder = __webpack_require__(143).StringDecoder), this.decoder = new StringDecoder(options.encoding), this.encoding = options.encoding); } function Readable(options) { - if (Duplex = Duplex || __webpack_require__(76), !(this instanceof Readable)) return new Readable(options); + if (Duplex = Duplex || __webpack_require__(87), !(this instanceof Readable)) return new Readable(options); var isDuplex = this instanceof Duplex; this._readableState = new ReadableState(options, this, isDuplex), this.readable = !0, options && ("function" == typeof options.read && (this._read = options.read), "function" == typeof options.destroy && (this._destroy = options.destroy)), @@ -37500,7 +39699,7 @@ }, Readable.prototype.isPaused = function() { return !1 === this._readableState.flowing; }, Readable.prototype.setEncoding = function(enc) { - StringDecoder || (StringDecoder = __webpack_require__(133).StringDecoder); + StringDecoder || (StringDecoder = __webpack_require__(143).StringDecoder); var decoder = new StringDecoder(enc); this._readableState.decoder = decoder, this._readableState.encoding = this._readableState.decoder.encoding; for (var p = this._readableState.buffer.head, content = ""; null !== p; ) content += decoder.write(p.data), @@ -37647,7 +39846,7 @@ debug("wrapped _read", n), paused && (paused = !1, stream.resume()); }, this; }, "function" == typeof Symbol && (Readable.prototype[Symbol.asyncIterator] = function() { - return void 0 === createReadableStreamAsyncIterator && (createReadableStreamAsyncIterator = __webpack_require__(851)), + return void 0 === createReadableStreamAsyncIterator && (createReadableStreamAsyncIterator = __webpack_require__(904)), createReadableStreamAsyncIterator(this); }), Object.defineProperty(Readable.prototype, "readableHighWaterMark", { enumerable: !1, @@ -37673,7 +39872,7 @@ return this._readableState.length; } }), "function" == typeof Symbol && (Readable.from = function(iterable, opts) { - return void 0 === from && (from = __webpack_require__(852)), from(Readable, iterable, opts); + return void 0 === from && (from = __webpack_require__(905)), from(Readable, iterable, opts); }); }, function(module, exports, __webpack_require__) { module.exports = __webpack_require__(3); @@ -37713,7 +39912,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var ERR_INVALID_OPT_VALUE = __webpack_require__(65).codes.ERR_INVALID_OPT_VALUE; + var ERR_INVALID_OPT_VALUE = __webpack_require__(74).codes.ERR_INVALID_OPT_VALUE; module.exports = { getHighWaterMark: function(state, options, duplexKey, isDuplex) { var hwm = (function(options, isDuplex, duplexKey) { @@ -37744,11 +39943,11 @@ var Duplex; module.exports = Writable, Writable.WritableState = WritableState; var realHasInstance, internalUtil = { - deprecate: __webpack_require__(186) - }, Stream = __webpack_require__(424), Buffer = __webpack_require__(10).Buffer, OurUint8Array = global.Uint8Array || function() {}, destroyImpl = __webpack_require__(425), getHighWaterMark = __webpack_require__(426).getHighWaterMark, _require$codes = __webpack_require__(65).codes, ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING, errorOrDestroy = destroyImpl.errorOrDestroy; + deprecate: __webpack_require__(201) + }, Stream = __webpack_require__(458), Buffer = __webpack_require__(10).Buffer, OurUint8Array = global.Uint8Array || function() {}, destroyImpl = __webpack_require__(459), getHighWaterMark = __webpack_require__(460).getHighWaterMark, _require$codes = __webpack_require__(74).codes, ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING, errorOrDestroy = destroyImpl.errorOrDestroy; function nop() {} function WritableState(options, stream, isDuplex) { - Duplex = Duplex || __webpack_require__(76), options = options || {}, "boolean" != typeof isDuplex && (isDuplex = stream instanceof Duplex), + Duplex = Duplex || __webpack_require__(87), options = options || {}, "boolean" != typeof isDuplex && (isDuplex = stream instanceof Duplex), this.objectMode = !!options.objectMode, isDuplex && (this.objectMode = this.objectMode || !!options.writableObjectMode), this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex), this.finalCalled = !1, this.needDrain = !1, this.ending = !1, this.ended = !1, this.finished = !1, @@ -37777,7 +39976,7 @@ this.autoDestroy = !!options.autoDestroy, this.bufferedRequestCount = 0, this.corkedRequestsFree = new CorkedRequest(this); } function Writable(options) { - var isDuplex = this instanceof (Duplex = Duplex || __webpack_require__(76)); + var isDuplex = this instanceof (Duplex = Duplex || __webpack_require__(87)); if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); this._writableState = new WritableState(options, this, isDuplex), this.writable = !0, options && ("function" == typeof options.write && (this._write = options.write), @@ -37835,7 +40034,7 @@ } return need; } - __webpack_require__(7)(Writable, Stream), WritableState.prototype.getBuffer = function() { + __webpack_require__(8)(Writable, Stream), WritableState.prototype.getBuffer = function() { for (var current = this.bufferedRequest, out = []; current; ) out.push(current), current = current.next; return out; @@ -37941,7 +40140,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = Transform; - var _require$codes = __webpack_require__(65).codes, ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0, Duplex = __webpack_require__(76); + var _require$codes = __webpack_require__(74).codes, ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0, Duplex = __webpack_require__(87); function afterTransform(er, data) { var ts = this._transformState; ts.transforming = !1; @@ -37975,7 +40174,7 @@ if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING; return stream.push(null); } - __webpack_require__(7)(Transform, Duplex), Transform.prototype.push = function(chunk, encoding) { + __webpack_require__(8)(Transform, Duplex), Transform.prototype.push = function(chunk, encoding) { return this._transformState.needTransform = !1, Duplex.prototype.push.call(this, chunk, encoding); }, Transform.prototype._transform = function(chunk, encoding, cb) { cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()")); @@ -37995,7 +40194,7 @@ })); }; }, function(module, exports, __webpack_require__) { - var uint64be = __webpack_require__(430), boxes = __webpack_require__(856), Box = exports, containers = exports.containers = { + var uint64be = __webpack_require__(464), boxes = __webpack_require__(909), Box = exports, containers = exports.containers = { moov: [ "mvhd", "meta", "traks", "mvex" ], trak: [ "tkhd", "tref", "trgr", "edts", "meta", "mdia", "udta" ], edts: [ "elst" ], @@ -38089,7 +40288,7 @@ return len > 4294967295 && (len += 8), obj.length = len, len; }; }, function(module, exports, __webpack_require__) { - var bufferAlloc = __webpack_require__(388), UINT_32_MAX = Math.pow(2, 32); + var bufferAlloc = __webpack_require__(423), UINT_32_MAX = Math.pow(2, 32); exports.encodingLength = function() { return 8; }, exports.encode = function(num, buf, offset) { @@ -38102,7 +40301,7 @@ return top * UINT_32_MAX + rem; }, exports.encode.bytes = 8, exports.decode.bytes = 8; }, function(module, exports, __webpack_require__) { - const master = __webpack_require__(862), media = __webpack_require__(863); + const master = __webpack_require__(915), media = __webpack_require__(916); module.exports = { master: master, media: media @@ -38120,7 +40319,7 @@ })), new Map); }; }, function(module, exports, __webpack_require__) { - const {finished: finished} = __webpack_require__(3), DecodeStream = __webpack_require__(422), readChunk = __webpack_require__(217); + const {finished: finished} = __webpack_require__(3), DecodeStream = __webpack_require__(456), readChunk = __webpack_require__(232); module.exports = async function(stream, type) { return new Promise(((resolve, reject) => { const chunks = [], decodeStream = new DecodeStream, cleanupDecodeStream = finished(decodeStream, (() => { @@ -38188,7 +40387,7 @@ license: "MIT" }; }, function(module, exports, __webpack_require__) { - const utils = __webpack_require__(96), FORMATS = __webpack_require__(885), audioEncodingRanks = [ "mp4a", "mp3", "vorbis", "aac", "opus", "flac" ], videoEncodingRanks = [ "mp4v", "avc1", "Sorenson H.283", "MPEG-4 Visual", "VP8", "VP9", "H.264" ], getVideoBitrate = format => format.bitrate || 0, getVideoEncodingRank = format => videoEncodingRanks.findIndex((enc => format.codecs && format.codecs.includes(enc))), getAudioBitrate = format => format.audioBitrate || 0, getAudioEncodingRank = format => audioEncodingRanks.findIndex((enc => format.codecs && format.codecs.includes(enc))), sortFormatsBy = (a, b, sortBy) => { + const utils = __webpack_require__(106), FORMATS = __webpack_require__(938), audioEncodingRanks = [ "mp4a", "mp3", "vorbis", "aac", "opus", "flac" ], videoEncodingRanks = [ "mp4v", "avc1", "Sorenson H.283", "MPEG-4 Visual", "VP8", "VP9", "H.264" ], getVideoBitrate = format => format.bitrate || 0, getVideoEncodingRank = format => videoEncodingRanks.findIndex((enc => format.codecs && format.codecs.includes(enc))), getAudioBitrate = format => format.audioBitrate || 0, getAudioEncodingRank = format => audioEncodingRanks.findIndex((enc => format.codecs && format.codecs.includes(enc))), sortFormatsBy = (a, b, sortBy) => { let res = 0; for (let fn of sortBy) if (res = fn(b) - fn(a), 0 !== res) break; return res; @@ -38339,7 +40538,7 @@ return total; }; }, function(module, exports, __webpack_require__) { - const querystring = __webpack_require__(24), Cache = __webpack_require__(439), utils = __webpack_require__(96); + const querystring = __webpack_require__(24), Cache = __webpack_require__(473), utils = __webpack_require__(106); exports.cache = new Cache, exports.getTokens = (html5playerfile, options) => exports.cache.getOrSet(html5playerfile, (async () => { const body = await utils.exposedMiniget(html5playerfile, options).text(), tokens = exports.extractActions(body); if (!tokens || !tokens.length) throw Error("Could not extract signature deciphering actions"); @@ -38423,7 +40622,7 @@ })), decipheredFormats; }; }, function(module, exports, __webpack_require__) { - const {setTimeout: setTimeout} = __webpack_require__(117); + const {setTimeout: setTimeout} = __webpack_require__(103); module.exports = class extends Map { constructor(timeout = 1e3) { super(), this.timeout = timeout; @@ -38461,7 +40660,7 @@ } }; }, function(module, exports, __webpack_require__) { - var fs = __webpack_require__(2), path = __webpack_require__(4), crypto = __webpack_require__(9), tmpDir = __webpack_require__(891), _c = process.binding("constants"), _TMP = tmpDir(), RANDOM_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", TEMPLATE_PATTERN = /XXXXXX/, CREATE_FLAGS = (_c.O_CREAT || _c.fs.O_CREAT) | (_c.O_EXCL || _c.fs.O_EXCL) | (_c.O_RDWR || _c.fs.O_RDWR), EBADF = _c.EBADF || _c.os.errno.EBADF, ENOENT = _c.ENOENT || _c.os.errno.ENOENT, _removeObjects = [], _gracefulCleanup = !1, _uncaughtException = !1; + var fs = __webpack_require__(2), path = __webpack_require__(5), crypto = __webpack_require__(6), tmpDir = __webpack_require__(944), _c = process.binding("constants"), _TMP = tmpDir(), RANDOM_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", TEMPLATE_PATTERN = /XXXXXX/, CREATE_FLAGS = (_c.O_CREAT || _c.fs.O_CREAT) | (_c.O_EXCL || _c.fs.O_EXCL) | (_c.O_RDWR || _c.fs.O_RDWR), EBADF = _c.EBADF || _c.os.errno.EBADF, ENOENT = _c.ENOENT || _c.os.errno.ENOENT, _removeObjects = [], _gracefulCleanup = !1, _uncaughtException = !1; function _randomChars(howMany) { var value = [], rnd = null; try { @@ -38606,7 +40805,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(NEXT_FILTER) { - var util = __webpack_require__(16), getKeys = __webpack_require__(66).keys, tryCatch = util.tryCatch, errorObj = util.errorObj; + var util = __webpack_require__(16), getKeys = __webpack_require__(75).keys, tryCatch = util.tryCatch, errorObj = util.errorObj; return function(instances, cb, promise) { return function(e) { var boundTo = promise._boundValue(); @@ -38632,7 +40831,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(16), maybeWrapAsError = util.maybeWrapAsError, OperationalError = __webpack_require__(55).OperationalError, es5 = __webpack_require__(66), rErrorKey = /^(?:name|message|stack|cause)$/; + var util = __webpack_require__(16), maybeWrapAsError = util.maybeWrapAsError, OperationalError = __webpack_require__(60).OperationalError, es5 = __webpack_require__(75), rErrorKey = /^(?:name|message|stack|cause)$/; function wrapAsOperationalError(obj) { var ret; if ((function(obj) { @@ -38725,9 +40924,9 @@ }, function(module, exports, __webpack_require__) { module.exports = (function() { "use strict"; - var Buffer = __webpack_require__(10).Buffer, Long = __webpack_require__(949), memcpy = null; + var Buffer = __webpack_require__(10).Buffer, Long = __webpack_require__(1002), memcpy = null; try { - memcpy = __webpack_require__(950); + memcpy = __webpack_require__(1003); } catch (e) {} var ByteBuffer = function(capacity, littleEndian, noAssert) { if (void 0 === capacity && (capacity = ByteBuffer.DEFAULT_CAPACITY), void 0 === littleEndian && (littleEndian = ByteBuffer.DEFAULT_ENDIAN), @@ -39782,7 +41981,7 @@ }, ByteBuffer.memcpy = memcpy, ByteBuffer; })(); }, function(module, exports, __webpack_require__) { - var EventEmitter = __webpack_require__(5).EventEmitter; + var EventEmitter = __webpack_require__(4).EventEmitter; function PacketStreamWrapper(stream) { EventEmitter.call(this), this.stream = stream; var state = 0, packetLength = 0, self = this; @@ -39807,7 +42006,7 @@ }, module.exports = PacketStreamWrapper; }, function(module, exports, __webpack_require__) { "use strict"; - var myIp = __webpack_require__(444), url = __webpack_require__(6), querystring = __webpack_require__(24); + var myIp = __webpack_require__(478), url = __webpack_require__(7), querystring = __webpack_require__(24); function Player() { this.mediaStatus = { audio: [], @@ -39892,7 +42091,7 @@ }; }, function(module, exports, __webpack_require__) { function TreeBuilder(element_factory) { - this._data = [], this._elem = [], this._last = null, this._tail = null, element_factory || (element_factory = __webpack_require__(224).Element), + this._data = [], this._elem = [], this._last = null, this._tail = null, element_factory || (element_factory = __webpack_require__(239).Element), this._factory = element_factory; } TreeBuilder.prototype.close = function() { @@ -39918,22 +42117,22 @@ }, exports.TreeBuilder = TreeBuilder; }, function(module, exports, __webpack_require__) { "use strict"; - var pna = __webpack_require__(53); + var pna = __webpack_require__(58); module.exports = Readable; - var Duplex, isArray = __webpack_require__(392); - Readable.ReadableState = ReadableState, __webpack_require__(5).EventEmitter; + var Duplex, isArray = __webpack_require__(427); + Readable.ReadableState = ReadableState, __webpack_require__(4).EventEmitter; var EElistenerCount = function(emitter, type) { return emitter.listeners(type).length; - }, Stream = __webpack_require__(451), Buffer = __webpack_require__(25).Buffer, OurUint8Array = global.Uint8Array || function() {}, util = __webpack_require__(32); - util.inherits = __webpack_require__(7); + }, Stream = __webpack_require__(485), Buffer = __webpack_require__(26).Buffer, OurUint8Array = global.Uint8Array || function() {}, util = __webpack_require__(33); + util.inherits = __webpack_require__(107); var debugUtil = __webpack_require__(0), debug = void 0; debug = debugUtil && debugUtil.debuglog ? debugUtil.debuglog("stream") : function() {}; - var StringDecoder, BufferList = __webpack_require__(965), destroyImpl = __webpack_require__(452); + var StringDecoder, BufferList = __webpack_require__(1019), destroyImpl = __webpack_require__(486); util.inherits(Readable, Stream); var kProxyEvents = [ "error", "close", "destroy", "pause", "resume" ]; function ReadableState(options, stream) { options = options || {}; - var isDuplex = stream instanceof (Duplex = Duplex || __webpack_require__(78)); + var isDuplex = stream instanceof (Duplex = Duplex || __webpack_require__(89)); this.objectMode = !!options.objectMode, isDuplex && (this.objectMode = this.objectMode || !!options.readableObjectMode); var hwm = options.highWaterMark, readableHwm = options.readableHighWaterMark, defaultHwm = this.objectMode ? 16 : 16384; this.highWaterMark = hwm || 0 === hwm ? hwm : isDuplex && (readableHwm || 0 === readableHwm) ? readableHwm : defaultHwm, @@ -39942,11 +42141,11 @@ this.endEmitted = !1, this.reading = !1, this.sync = !0, this.needReadable = !1, this.emittedReadable = !1, this.readableListening = !1, this.resumeScheduled = !1, this.destroyed = !1, this.defaultEncoding = options.defaultEncoding || "utf8", this.awaitDrain = 0, - this.readingMore = !1, this.decoder = null, this.encoding = null, options.encoding && (StringDecoder || (StringDecoder = __webpack_require__(454).StringDecoder), + this.readingMore = !1, this.decoder = null, this.encoding = null, options.encoding && (StringDecoder || (StringDecoder = __webpack_require__(488).StringDecoder), this.decoder = new StringDecoder(options.encoding), this.encoding = options.encoding); } function Readable(options) { - if (Duplex = Duplex || __webpack_require__(78), !(this instanceof Readable)) return new Readable(options); + if (Duplex = Duplex || __webpack_require__(89), !(this instanceof Readable)) return new Readable(options); this._readableState = new ReadableState(options, this), this.readable = !0, options && ("function" == typeof options.read && (this._read = options.read), "function" == typeof options.destroy && (this._destroy = options.destroy)), Stream.call(this); } @@ -40075,7 +42274,7 @@ }, Readable.prototype.isPaused = function() { return !1 === this._readableState.flowing; }, Readable.prototype.setEncoding = function(enc) { - return StringDecoder || (StringDecoder = __webpack_require__(454).StringDecoder), + return StringDecoder || (StringDecoder = __webpack_require__(488).StringDecoder), this._readableState.decoder = new StringDecoder(enc), this._readableState.encoding = enc, this; }, Readable.prototype.read = function(n) { @@ -40214,7 +42413,7 @@ module.exports = __webpack_require__(3); }, function(module, exports, __webpack_require__) { "use strict"; - var pna = __webpack_require__(53); + var pna = __webpack_require__(58); function emitErrorNT(self, err) { self.emit("error", err); } @@ -40236,7 +42435,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var pna = __webpack_require__(53); + var pna = __webpack_require__(58); function CorkedRequest(state) { var _this = this; this.next = null, this.entry = null, this.finish = function() { @@ -40253,14 +42452,14 @@ module.exports = Writable; var Duplex, asyncWrite = !process.browser && [ "v0.10", "v0.9." ].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick; Writable.WritableState = WritableState; - var util = __webpack_require__(32); - util.inherits = __webpack_require__(7); + var util = __webpack_require__(33); + util.inherits = __webpack_require__(107); var realHasInstance, internalUtil = { - deprecate: __webpack_require__(186) - }, Stream = __webpack_require__(451), Buffer = __webpack_require__(25).Buffer, OurUint8Array = global.Uint8Array || function() {}, destroyImpl = __webpack_require__(452); + deprecate: __webpack_require__(201) + }, Stream = __webpack_require__(485), Buffer = __webpack_require__(26).Buffer, OurUint8Array = global.Uint8Array || function() {}, destroyImpl = __webpack_require__(486); function nop() {} function WritableState(options, stream) { - Duplex = Duplex || __webpack_require__(78), options = options || {}; + Duplex = Duplex || __webpack_require__(89), options = options || {}; var isDuplex = stream instanceof Duplex; this.objectMode = !!options.objectMode, isDuplex && (this.objectMode = this.objectMode || !!options.writableObjectMode); var hwm = options.highWaterMark, writableHwm = options.writableHighWaterMark, defaultHwm = this.objectMode ? 16 : 16384; @@ -40290,7 +42489,7 @@ this.corkedRequestsFree = new CorkedRequest(this); } function Writable(options) { - if (Duplex = Duplex || __webpack_require__(78), !(realHasInstance.call(Writable, this) || this instanceof Duplex)) return new Writable(options); + if (Duplex = Duplex || __webpack_require__(89), !(realHasInstance.call(Writable, this) || this instanceof Duplex)) return new Writable(options); this._writableState = new WritableState(options, this), this.writable = !0, options && ("function" == typeof options.write && (this._write = options.write), "function" == typeof options.writev && (this._writev = options.writev), "function" == typeof options.destroy && (this._destroy = options.destroy), "function" == typeof options.final && (this._final = options.final)), Stream.call(this); @@ -40437,7 +42636,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var Buffer = __webpack_require__(25).Buffer, isEncoding = Buffer.isEncoding || function(encoding) { + var Buffer = __webpack_require__(26).Buffer, isEncoding = Buffer.isEncoding || function(encoding) { switch ((encoding = "" + encoding) && encoding.toLowerCase()) { case "hex": case "utf8": @@ -40591,7 +42790,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = Transform; - var Duplex = __webpack_require__(78), util = __webpack_require__(32); + var Duplex = __webpack_require__(89), util = __webpack_require__(33); function afterTransform(er, data) { var ts = this._transformState; ts.transforming = !1; @@ -40625,7 +42824,7 @@ if (stream._transformState.transforming) throw new Error("Calling transform done when still transforming"); return stream.push(null); } - util.inherits = __webpack_require__(7), util.inherits(Transform, Duplex), Transform.prototype.push = function(chunk, encoding) { + util.inherits = __webpack_require__(107), util.inherits(Transform, Duplex), Transform.prototype.push = function(chunk, encoding) { return this._transformState.needTransform = !1, Duplex.prototype.push.call(this, chunk, encoding); }, Transform.prototype._transform = function(chunk, encoding, cb) { throw new Error("_transform() is not implemented"); @@ -40647,7 +42846,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var Route = __webpack_require__(457), Layer = __webpack_require__(458), methods = __webpack_require__(61), mixin = __webpack_require__(60), debug = __webpack_require__(8)("express:router"), deprecate = __webpack_require__(47)("express"), flatten = __webpack_require__(149), parseUrl = __webpack_require__(46), setPrototypeOf = __webpack_require__(108), objectRegExp = /^\[object (\S+)\]$/, slice = Array.prototype.slice, toString = Object.prototype.toString, proto = module.exports = function(options) { + var Route = __webpack_require__(491), Layer = __webpack_require__(492), methods = __webpack_require__(68), mixin = __webpack_require__(67), debug = __webpack_require__(9)("express:router"), deprecate = __webpack_require__(51)("express"), flatten = __webpack_require__(159), parseUrl = __webpack_require__(49), setPrototypeOf = __webpack_require__(119), objectRegExp = /^\[object (\S+)\]$/, slice = Array.prototype.slice, toString = Object.prototype.toString, proto = module.exports = function(options) { var opts = options || {}; function router(req, res, next) { router.handle(req, res, next); @@ -40819,7 +43018,7 @@ })); }, function(module, exports, __webpack_require__) { "use strict"; - var debug = __webpack_require__(8)("express:router:route"), flatten = __webpack_require__(149), Layer = __webpack_require__(458), methods = __webpack_require__(61), slice = Array.prototype.slice, toString = Object.prototype.toString; + var debug = __webpack_require__(9)("express:router:route"), flatten = __webpack_require__(159), Layer = __webpack_require__(492), methods = __webpack_require__(68), slice = Array.prototype.slice, toString = Object.prototype.toString; function Route(path) { this.path = path, this.stack = [], debug("new %o", path), this.methods = {}; } @@ -40870,7 +43069,7 @@ })); }, function(module, exports, __webpack_require__) { "use strict"; - var pathRegexp = __webpack_require__(161), debug = __webpack_require__(8)("express:router:layer"), hasOwnProperty = Object.prototype.hasOwnProperty; + var pathRegexp = __webpack_require__(178), debug = __webpack_require__(9)("express:router:layer"), hasOwnProperty = Object.prototype.hasOwnProperty; function Layer(path, options, fn) { if (!(this instanceof Layer)) return new Layer(path, options, fn); debug("new %o", path); @@ -40923,7 +43122,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var merge = __webpack_require__(60), parseUrl = __webpack_require__(46), qs = __webpack_require__(160); + var merge = __webpack_require__(67), parseUrl = __webpack_require__(49), qs = __webpack_require__(177); module.exports = function(options) { var opts = merge({}, options), queryparse = qs.parse; return "function" == typeof options && (queryparse = options, opts = void 0), void 0 !== opts && void 0 === opts.allowPrototypes && (opts.allowPrototypes = !0), @@ -40974,7 +43173,7 @@ if (-1 !== index && index !== string.length) throw new TypeError("invalid parameter format"); return new ContentDisposition(type, params); }; - var basename = __webpack_require__(4).basename, Buffer = __webpack_require__(25).Buffer, ENCODE_URL_ATTR_CHAR_REGEXP = /[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g, HEX_ESCAPE_REGEXP = /%[0-9A-Fa-f]{2}/, HEX_ESCAPE_REPLACE_REGEXP = /%([0-9A-Fa-f]{2})/g, NON_LATIN1_REGEXP = /[^\x20-\x7e\xa0-\xff]/g, QESC_REGEXP = /\\([\u0000-\u007f])/g, QUOTE_REGEXP = /([\\"])/g, PARAM_REGEXP = /;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g, TEXT_REGEXP = /^[\x20-\x7e\x80-\xff]+$/, TOKEN_REGEXP = /^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/, EXT_VALUE_REGEXP = /^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/, DISPOSITION_TYPE_REGEXP = /^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/; + var basename = __webpack_require__(5).basename, Buffer = __webpack_require__(26).Buffer, ENCODE_URL_ATTR_CHAR_REGEXP = /[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g, HEX_ESCAPE_REGEXP = /%[0-9A-Fa-f]{2}/, HEX_ESCAPE_REPLACE_REGEXP = /%([0-9A-Fa-f]{2})/g, NON_LATIN1_REGEXP = /[^\x20-\x7e\xa0-\xff]/g, QESC_REGEXP = /\\([\u0000-\u007f])/g, QUOTE_REGEXP = /([\\"])/g, PARAM_REGEXP = /;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g, TEXT_REGEXP = /^[\x20-\x7e\x80-\xff]+$/, TOKEN_REGEXP = /^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/, EXT_VALUE_REGEXP = /^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/, DISPOSITION_TYPE_REGEXP = /^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/; function decodefield(str) { var match = EXT_VALUE_REGEXP.exec(str); if (!match) throw new TypeError("invalid extended field value"); @@ -41026,7 +43225,7 @@ })(entity); return weak ? "W/" + tag : tag; }; - var crypto = __webpack_require__(9), Stats = __webpack_require__(2).Stats, toString = Object.prototype.toString; + var crypto = __webpack_require__(6), Stats = __webpack_require__(2).Stats, toString = Object.prototype.toString; }, function(module, exports, __webpack_require__) { "use strict"; var CACHE_CONTROL_NO_CACHE_REGEXP = /(?:^|,)\s*?no-cache\s*?(?:,|$)/; @@ -41079,7 +43278,7 @@ var addrs = alladdrs(req, trust); return addrs[addrs.length - 1]; }, module.exports.all = alladdrs, module.exports.compile = compile; - var forwarded = __webpack_require__(982), ipaddr = __webpack_require__(166), DIGIT_REGEXP = /^[0-9]+$/, isip = ipaddr.isValid, parseip = ipaddr.parse, IP_RANGES = { + var forwarded = __webpack_require__(1035), ipaddr = __webpack_require__(183), DIGIT_REGEXP = /^[0-9]+$/, isip = ipaddr.isValid, parseip = ipaddr.parse, IP_RANGES = { linklocal: [ "169.254.0.0/16", "fe80::/10" ], loopback: [ "127.0.0.1/8", "::1/128" ], uniquelocal: [ "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "fc00::/7" ] @@ -41179,7 +43378,7 @@ return list.push(header.substring(start, end)), list; } }, function(module, exports, __webpack_require__) { - const consts = __webpack_require__(79), pkg = __webpack_require__(466); + const consts = __webpack_require__(90), pkg = __webpack_require__(500); module.exports = { id: "org.stremio.local", version: pkg.version, @@ -41236,7 +43435,7 @@ homepage: "https://github.com/Stremio/stremio-local-addon#readme" }; }, function(module, exports, __webpack_require__) { - const parseTorrent = __webpack_require__(1004), fs = __webpack_require__(2), path = __webpack_require__(4), nameToImdb = __webpack_require__(1013), videoNameParser = __webpack_require__(271), promisify = __webpack_require__(0).promisify, consts = __webpack_require__(79); + const parseTorrent = __webpack_require__(1057), fs = __webpack_require__(2), path = __webpack_require__(5), nameToImdb = __webpack_require__(1066), videoNameParser = __webpack_require__(304), promisify = __webpack_require__(0).promisify, consts = __webpack_require__(90); function indexParsedTorrent(torrent, cb) { const ih = ((torrent = torrent || {}).infoHash || "").toLowerCase(), name = torrent.name, files = (torrent.files || []).map((function(f, i) { return f.idx = i, f; @@ -41313,7 +43512,7 @@ indexParsedTorrent: indexParsedTorrent }; }, function(module, exports, __webpack_require__) { - const fetch = __webpack_require__(33), consts = __webpack_require__(79); + const fetch = __webpack_require__(34), consts = __webpack_require__(90); module.exports = function(entry) { const imdbIdFile = entry.files.find((function(f) { return f.imdb_id; @@ -41341,182 +43540,612 @@ }))) : Promise.resolve(genericMeta); }; }, function(module, exports, __webpack_require__) { - "use strict"; - var debug = __webpack_require__(8)("router"), flatten = __webpack_require__(470).flatten, Layer = __webpack_require__(471), methods = __webpack_require__(61), mixin = __webpack_require__(60), parseUrl = __webpack_require__(46), Route = __webpack_require__(1038), setPrototypeOf = __webpack_require__(1039), slice = Array.prototype.slice, defer = "function" == typeof setImmediate ? setImmediate : function(fn) { - process.nextTick(fn.bind.apply(fn, arguments)); + var colors = {}; + module.exports = colors, colors.themes = {}; + var util = __webpack_require__(0), ansiStyles = colors.styles = __webpack_require__(1092), defineProps = Object.defineProperties, newLineRegex = new RegExp(/[\r\n]+/g); + colors.supportsColor = __webpack_require__(1093).supportsColor, void 0 === colors.enabled && (colors.enabled = !1 !== colors.supportsColor()), + colors.enable = function() { + colors.enabled = !0; + }, colors.disable = function() { + colors.enabled = !1; + }, colors.stripColors = colors.strip = function(str) { + return ("" + str).replace(/\x1B\[\d+m/g, ""); + }, colors.stylize = function(str, style) { + if (!colors.enabled) return str + ""; + var styleMap = ansiStyles[style]; + return !styleMap && style in colors ? colors[style](str) : styleMap.open + str + styleMap.close; }; - function Router(options) { - if (!(this instanceof Router)) return new Router(options); - var opts = options || {}; - function router(req, res, next) { - router.handle(req, res, next); - } - return setPrototypeOf(router, this), router.caseSensitive = opts.caseSensitive, - router.mergeParams = opts.mergeParams, router.params = {}, router.strict = opts.strict, - router.stack = [], router; - } - function matchLayer(layer, path) { - try { - return layer.match(path); - } catch (err) { - return err; - } - } - module.exports = Router, module.exports.Route = Route, Router.prototype = function() {}, - Router.prototype.param = function(name, fn) { - if (!name) throw new TypeError("argument name is required"); - if ("string" != typeof name) throw new TypeError("argument name must be a string"); - if (!fn) throw new TypeError("argument fn is required"); - if ("function" != typeof fn) throw new TypeError("argument fn must be a function"); - var params = this.params[name]; - return params || (params = this.params[name] = []), params.push(fn), this; - }, Router.prototype.handle = function(req, res, callback) { - if (!callback) throw new TypeError("argument callback is required"); - debug("dispatching %s %s", req.method, req.url); - var methods, old, fn, idx = 0, protohost = (function(url) { - if ("string" == typeof url && 0 !== url.length && "/" !== url[0]) { - var searchIndex = url.indexOf("?"), pathLength = -1 !== searchIndex ? searchIndex : url.length, fqdnIndex = url.substring(0, pathLength).indexOf("://"); - return -1 !== fqdnIndex ? url.substring(0, url.indexOf("/", 3 + fqdnIndex)) : void 0; - } - })(req.url) || "", removed = "", self = this, slashAdded = !1, sync = 0, paramcalled = {}, stack = this.stack, parentParams = req.params, parentUrl = req.baseUrl || "", done = (function(fn, obj) { - for (var props = new Array(arguments.length - 2), vals = new Array(arguments.length - 2), i = 0; i < props.length; i++) props[i] = arguments[i + 2], - vals[i] = obj[props[i]]; - return function() { - for (var i = 0; i < props.length; i++) obj[props[i]] = vals[i]; - return fn.apply(this, arguments); - }; - })(callback, req, "baseUrl", "next", "params"); - function next(err) { - var layerError = "route" === err ? null : err; - if (slashAdded && (req.url = req.url.slice(1), slashAdded = !1), 0 !== removed.length && (req.baseUrl = parentUrl, - req.url = protohost + removed + req.url.slice(protohost.length), removed = ""), - "router" !== layerError) if (idx >= stack.length) defer(done, layerError); else { - if (++sync > 100) return defer(next, err); - var layer, match, route, path = (function(req) { - try { - return parseUrl(req).pathname; - } catch (err) { - return; - } - })(req); - if (null == path) return done(layerError); - for (;!0 !== match && idx < stack.length; ) if (match = matchLayer(layer = stack[idx++], path), - route = layer.route, "boolean" != typeof match && (layerError = layerError || match), - !0 === match && route) if (layerError) match = !1; else { - var method = req.method, has_method = route._handles_method(method); - !has_method && "OPTIONS" === method && methods && methods.push.apply(methods, route._methods()), - has_method || "HEAD" === method || (match = !1); - } - if (!0 !== match) return done(layerError); - route && (req.route = route), req.params = self.mergeParams ? (function(params, parent) { - if ("object" != typeof parent || !parent) return params; - var obj = mixin({}, parent); - if (!(0 in params) || !(0 in parent)) return mixin(obj, params); - for (var i = 0, o = 0; i in params; ) i++; - for (;o in parent; ) o++; - for (i--; i >= 0; i--) params[i + o] = params[i], i < o && delete params[i]; - return mixin(obj, params); - })(layer.params, parentParams) : layer.params; - var layerPath = layer.path; - self.process_params(layer, paramcalled, req, res, (function(err) { - err ? next(layerError || err) : route ? layer.handle_request(req, res, next) : (function(layer, layerError, layerPath, path) { - if (0 !== layerPath.length) { - if (layerPath !== path.substring(0, layerPath.length)) return void next(layerError); - var c = path[layerPath.length]; - if (c && "/" !== c) return void next(layerError); - debug("trim prefix (%s) from url %s", layerPath, req.url), removed = layerPath, - req.url = protohost + req.url.slice(protohost.length + removed.length), protohost || "/" === req.url[0] || (req.url = "/" + req.url, - slashAdded = !0), req.baseUrl = parentUrl + ("/" === removed[removed.length - 1] ? removed.substring(0, removed.length - 1) : removed); - } - debug("%s %s : %s", layer.name, layerPath, req.originalUrl), layerError ? layer.handle_error(layerError, req, res, next) : layer.handle_request(req, res, next); - })(layer, layerError, layerPath, path), sync = 0; - })); - } else defer(done, null); - } - req.next = next, "OPTIONS" === req.method && (old = done, fn = (function(res, methods) { - return function(fn, err) { - if (err || 0 === methods.length) return fn(err); - !(function(res, methods, next) { - try { - !(function(res, methods) { - for (var options = Object.create(null), i = 0; i < methods.length; i++) options[methods[i]] = !0; - var allow = Object.keys(options).sort().join(", "); - res.setHeader("Allow", allow), res.setHeader("Content-Length", Buffer.byteLength(allow)), - res.setHeader("Content-Type", "text/plain"), res.setHeader("X-Content-Type-Options", "nosniff"), - res.end(allow); - })(res, methods); - } catch (err) { - next(err); - } - })(res, methods, fn); - }; - })(res, methods = []), done = function() { - var args = new Array(arguments.length + 1); - args[0] = old; - for (var i = 0, len = arguments.length; i < len; i++) args[i + 1] = arguments[i]; - fn.apply(this, args); - }), req.baseUrl = parentUrl, req.originalUrl = req.originalUrl || req.url, next(); - }, Router.prototype.process_params = function(layer, called, req, res, done) { - var params = this.params, keys = layer.keys; - if (!keys || 0 === keys.length) return done(); - var name, key, paramVal, paramCallbacks, paramCalled, i = 0, paramIndex = 0; - function param(err) { - return err ? done(err) : i >= keys.length ? done() : (paramIndex = 0, key = keys[i++], - name = key.name, paramVal = req.params[name], paramCallbacks = params[name], paramCalled = called[name], - void 0 !== paramVal && paramCallbacks ? paramCalled && (paramCalled.match === paramVal || paramCalled.error && "route" !== paramCalled.error) ? (req.params[name] = paramCalled.value, - param(paramCalled.error)) : (called[name] = paramCalled = { - error: null, - match: paramVal, - value: paramVal - }, void paramCallback()) : param()); - } - function paramCallback(err) { - var fn = paramCallbacks[paramIndex++]; - if (paramCalled.value = req.params[key.name], err) return paramCalled.error = err, - void param(err); - if (!fn) return param(); - try { - fn(req, res, paramCallback, paramVal, key.name); - } catch (e) { - paramCallback(e); - } - } - param(); - }, Router.prototype.use = function(handler) { - var offset = 0, path = "/"; - if ("function" != typeof handler) { - for (var arg = handler; Array.isArray(arg) && 0 !== arg.length; ) arg = arg[0]; - "function" != typeof arg && (offset = 1, path = handler); - } - var callbacks = flatten(slice.call(arguments, offset)); - if (0 === callbacks.length) throw new TypeError("argument handler is required"); - for (var i = 0; i < callbacks.length; i++) { - var fn = callbacks[i]; - if ("function" != typeof fn) throw new TypeError("argument handler must be a function"); - debug("use %o %s", path, fn.name || ""); - var layer = new Layer(path, { - sensitive: this.caseSensitive, - strict: !1, - end: !1 - }, fn); - layer.route = void 0, this.stack.push(layer); - } - return this; - }, Router.prototype.route = function(path) { - var route = new Route(path), layer = new Layer(path, { - sensitive: this.caseSensitive, - strict: this.strict, - end: !0 - }, (function(req, res, next) { - route.dispatch(req, res, next); - })); - return layer.route = route, this.stack.push(layer), route; - }, methods.concat("all").forEach((function(method) { - Router.prototype[method] = function(path) { - var route = this.route(path); - return route[method].apply(route, slice.call(arguments, 1)), this; + var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; + function build(_styles) { + var builder = function builder() { + return applyStyle.apply(builder, arguments); }; - })); + return builder._styles = _styles, builder.__proto__ = proto, builder; + } + var styles = (function() { + var ret = {}; + return ansiStyles.grey = ansiStyles.gray, Object.keys(ansiStyles).forEach((function(key) { + ansiStyles[key].closeRe = new RegExp((function(str) { + if ("string" != typeof str) throw new TypeError("Expected a string"); + return str.replace(matchOperatorsRe, "\\$&"); + })(ansiStyles[key].close), "g"), ret[key] = { + get: function() { + return build(this._styles.concat(key)); + } + }; + })), ret; + })(), proto = defineProps((function() {}), styles); + function applyStyle() { + var args = Array.prototype.slice.call(arguments), str = args.map((function(arg) { + return null != arg && arg.constructor === String ? arg : util.inspect(arg); + })).join(" "); + if (!colors.enabled || !str) return str; + for (var newLinesPresent = -1 != str.indexOf("\n"), nestedStyles = this._styles, i = nestedStyles.length; i--; ) { + var code = ansiStyles[nestedStyles[i]]; + str = code.open + str.replace(code.closeRe, code.open) + code.close, newLinesPresent && (str = str.replace(newLineRegex, (function(match) { + return code.close + match + code.open; + }))); + } + return str; + } + colors.setTheme = function(theme) { + if ("string" != typeof theme) for (var style in theme) !(function(style) { + colors[style] = function(str) { + if ("object" == typeof theme[style]) { + var out = str; + for (var i in theme[style]) out = colors[theme[style][i]](out); + return out; + } + return colors[theme[style]](str); + }; + })(style); else console.log("colors.setTheme now only accepts an object, not a string. If you are trying to set a theme from a file, it is now your (the caller's) responsibility to require the file. The old syntax looked like colors.setTheme(__dirname + '/../themes/generic-logging.js'); The new syntax looks like colors.setTheme(require(__dirname + '/../themes/generic-logging.js'));"); + }; + var sequencer = function(map, str) { + var exploded = str.split(""); + return (exploded = exploded.map(map)).join(""); + }; + for (var map in colors.trap = __webpack_require__(1095), colors.zalgo = __webpack_require__(1096), + colors.maps = {}, colors.maps.america = __webpack_require__(1097)(colors), colors.maps.zebra = __webpack_require__(1098)(colors), + colors.maps.rainbow = __webpack_require__(1099)(colors), colors.maps.random = __webpack_require__(1100)(colors), + colors.maps) !(function(map) { + colors[map] = function(str) { + return sequencer(colors.maps[map], str); + }; + })(map); + defineProps(colors, (function() { + var ret = {}; + return Object.keys(styles).forEach((function(name) { + ret[name] = { + get: function() { + return build([ name ]); + } + }; + })), ret; + })()); +}, function(module, exports, __webpack_require__) { + var async, xml; + async = __webpack_require__(244), xml = __webpack_require__(1103), __webpack_require__(2), + module.exports = function(input, cb) { + return async.waterfall([ function(cb) { + return xml.parseString(input, cb); + }, function(obj, cb) { + return async.map(obj.nzb.file, (function(file, cb) { + var group, i, len, ref, segment, segments, subject; + for (subject = file.$.subject, group = file.groups[0].group[0], segments = [], i = 0, + len = (ref = file.segments[0].segment).length; i < len; i++) segment = ref[i], segments[parseInt(segment.$.number) - 1] = { + group: group, + article: segment._, + bytes: parseInt(segment.$.bytes), + subject: subject + }; + return cb(null, segments); + }), cb); + } ], cb); + }; +}, function(module, exports) { + (function() { + module.exports = (function() { + function XMLDOMImplementation() {} + return XMLDOMImplementation.prototype.hasFeature = function(feature, version) { + return !0; + }, XMLDOMImplementation.prototype.createDocumentType = function(qualifiedName, publicId, systemId) { + throw new Error("This DOM method is not implemented."); + }, XMLDOMImplementation.prototype.createDocument = function(namespaceURI, qualifiedName, doctype) { + throw new Error("This DOM method is not implemented."); + }, XMLDOMImplementation.prototype.createHTMLDocument = function(title) { + throw new Error("This DOM method is not implemented."); + }, XMLDOMImplementation.prototype.getFeature = function(feature, version) { + throw new Error("This DOM method is not implemented."); + }, XMLDOMImplementation; + })(); + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + var NodeType, XMLDOMConfiguration, XMLDOMImplementation, XMLNode, XMLStringWriter, XMLStringifier, isPlainObject, hasProp = {}.hasOwnProperty; + isPlainObject = __webpack_require__(52).isPlainObject, XMLDOMImplementation = __webpack_require__(505), + XMLDOMConfiguration = __webpack_require__(1106), XMLNode = __webpack_require__(42), + NodeType = __webpack_require__(22), XMLStringifier = __webpack_require__(509), XMLStringWriter = __webpack_require__(260), + module.exports = (function(superClass) { + function XMLDocument(options) { + XMLDocument.__super__.constructor.call(this, null), this.name = "#document", this.type = NodeType.Document, + this.documentURI = null, this.domConfig = new XMLDOMConfiguration, options || (options = {}), + options.writer || (options.writer = new XMLStringWriter), this.options = options, + this.stringify = new XMLStringifier(options); + } + return (function(child, parent) { + for (var key in parent) 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; + })(XMLDocument, superClass), Object.defineProperty(XMLDocument.prototype, "implementation", { + value: new XMLDOMImplementation + }), Object.defineProperty(XMLDocument.prototype, "doctype", { + get: function() { + var child, i, len, ref; + for (i = 0, len = (ref = this.children).length; i < len; i++) if ((child = ref[i]).type === NodeType.DocType) return child; + return null; + } + }), Object.defineProperty(XMLDocument.prototype, "documentElement", { + get: function() { + return this.rootObject || null; + } + }), Object.defineProperty(XMLDocument.prototype, "inputEncoding", { + get: function() { + return null; + } + }), Object.defineProperty(XMLDocument.prototype, "strictErrorChecking", { + get: function() { + return !1; + } + }), Object.defineProperty(XMLDocument.prototype, "xmlEncoding", { + get: function() { + return 0 !== this.children.length && this.children[0].type === NodeType.Declaration ? this.children[0].encoding : null; + } + }), Object.defineProperty(XMLDocument.prototype, "xmlStandalone", { + get: function() { + return 0 !== this.children.length && this.children[0].type === NodeType.Declaration && "yes" === this.children[0].standalone; + } + }), Object.defineProperty(XMLDocument.prototype, "xmlVersion", { + get: function() { + return 0 !== this.children.length && this.children[0].type === NodeType.Declaration ? this.children[0].version : "1.0"; + } + }), Object.defineProperty(XMLDocument.prototype, "URL", { + get: function() { + return this.documentURI; + } + }), Object.defineProperty(XMLDocument.prototype, "origin", { + get: function() { + return null; + } + }), Object.defineProperty(XMLDocument.prototype, "compatMode", { + get: function() { + return null; + } + }), Object.defineProperty(XMLDocument.prototype, "characterSet", { + get: function() { + return null; + } + }), Object.defineProperty(XMLDocument.prototype, "contentType", { + get: function() { + return null; + } + }), XMLDocument.prototype.end = function(writer) { + var writerOptions; + return writerOptions = {}, writer ? isPlainObject(writer) && (writerOptions = writer, + writer = this.options.writer) : writer = this.options.writer, writer.document(this, writer.filterOptions(writerOptions)); + }, XMLDocument.prototype.toString = function(options) { + return this.options.writer.document(this, this.options.writer.filterOptions(options)); + }, XMLDocument.prototype.createElement = function(tagName) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument.prototype.createDocumentFragment = function() { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument.prototype.createTextNode = function(data) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument.prototype.createComment = function(data) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument.prototype.createCDATASection = function(data) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument.prototype.createProcessingInstruction = function(target, data) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument.prototype.createAttribute = function(name) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument.prototype.createEntityReference = function(name) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument.prototype.getElementsByTagName = function(tagname) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument.prototype.importNode = function(importedNode, deep) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument.prototype.createElementNS = function(namespaceURI, qualifiedName) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument.prototype.createAttributeNS = function(namespaceURI, qualifiedName) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument.prototype.getElementsByTagNameNS = function(namespaceURI, localName) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument.prototype.getElementById = function(elementId) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument.prototype.adoptNode = function(source) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument.prototype.normalizeDocument = function() { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument.prototype.renameNode = function(node, namespaceURI, qualifiedName) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument.prototype.getElementsByClassName = function(classNames) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument.prototype.createEvent = function(eventInterface) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument.prototype.createRange = function() { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument.prototype.createNodeIterator = function(root, whatToShow, filter) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument.prototype.createTreeWalker = function(root, whatToShow, filter) { + throw new Error("This DOM method is not implemented." + this.debugInfo()); + }, XMLDocument; + })(XMLNode); + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + var NodeType; + NodeType = __webpack_require__(22), __webpack_require__(42), module.exports = (function() { + function XMLAttribute(parent, name, value) { + if (this.parent = parent, this.parent && (this.options = this.parent.options, this.stringify = this.parent.stringify), + null == name) throw new Error("Missing attribute name. " + this.debugInfo(name)); + this.name = this.stringify.name(name), this.value = this.stringify.attValue(value), + this.type = NodeType.Attribute, this.isId = !1, this.schemaTypeInfo = null; + } + return Object.defineProperty(XMLAttribute.prototype, "nodeType", { + get: function() { + return this.type; + } + }), Object.defineProperty(XMLAttribute.prototype, "ownerElement", { + get: function() { + return this.parent; + } + }), Object.defineProperty(XMLAttribute.prototype, "textContent", { + get: function() { + return this.value; + }, + set: function(value) { + return this.value = value || ""; + } + }), Object.defineProperty(XMLAttribute.prototype, "namespaceURI", { + get: function() { + return ""; + } + }), Object.defineProperty(XMLAttribute.prototype, "prefix", { + get: function() { + return ""; + } + }), Object.defineProperty(XMLAttribute.prototype, "localName", { + get: function() { + return this.name; + } + }), Object.defineProperty(XMLAttribute.prototype, "specified", { + get: function() { + return !0; + } + }), XMLAttribute.prototype.clone = function() { + return Object.create(this); + }, XMLAttribute.prototype.toString = function(options) { + return this.options.writer.attribute(this, this.options.writer.filterOptions(options)); + }, XMLAttribute.prototype.debugInfo = function(name) { + return null == (name = name || this.name) ? "parent: <" + this.parent.name + ">" : "attribute: {" + name + "}, parent: <" + this.parent.name + ">"; + }, XMLAttribute.prototype.isEqualNode = function(node) { + return node.namespaceURI === this.namespaceURI && node.prefix === this.prefix && node.localName === this.localName && node.value === this.value; + }, XMLAttribute; + })(); + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + var NodeType, XMLNode, hasProp = {}.hasOwnProperty; + XMLNode = __webpack_require__(42), NodeType = __webpack_require__(22), module.exports = (function(superClass) { + function XMLDummy(parent) { + XMLDummy.__super__.constructor.call(this, parent), this.type = NodeType.Dummy; + } + return (function(child, parent) { + for (var key in parent) 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; + })(XMLDummy, superClass), XMLDummy.prototype.clone = function() { + return Object.create(this); + }, XMLDummy.prototype.toString = function(options) { + return ""; + }, XMLDummy; + })(XMLNode); + }).call(this); +}, function(module, exports) { + (function() { + var bind = function(fn, me) { + return function() { + return fn.apply(me, arguments); + }; + }, hasProp = {}.hasOwnProperty; + module.exports = (function() { + function XMLStringifier(options) { + var key, ref, value; + for (key in this.assertLegalName = bind(this.assertLegalName, this), this.assertLegalChar = bind(this.assertLegalChar, this), + options || (options = {}), this.options = options, this.options.version || (this.options.version = "1.0"), + ref = options.stringify || {}) hasProp.call(ref, key) && (value = ref[key], this[key] = value); + } + return XMLStringifier.prototype.name = function(val) { + return this.options.noValidation ? val : this.assertLegalName("" + val || ""); + }, XMLStringifier.prototype.text = function(val) { + return this.options.noValidation ? val : this.assertLegalChar(this.textEscape("" + val || "")); + }, XMLStringifier.prototype.cdata = function(val) { + return this.options.noValidation ? val : (val = (val = "" + val || "").replace("]]>", "]]]]>"), + this.assertLegalChar(val)); + }, XMLStringifier.prototype.comment = function(val) { + if (this.options.noValidation) return val; + if ((val = "" + val || "").match(/--/)) throw new Error("Comment text cannot contain double-hypen: " + val); + return this.assertLegalChar(val); + }, XMLStringifier.prototype.raw = function(val) { + return this.options.noValidation ? val : "" + val || ""; + }, XMLStringifier.prototype.attValue = function(val) { + return this.options.noValidation ? val : this.assertLegalChar(this.attEscape(val = "" + val || "")); + }, XMLStringifier.prototype.insTarget = function(val) { + return this.options.noValidation ? val : this.assertLegalChar("" + val || ""); + }, XMLStringifier.prototype.insValue = function(val) { + if (this.options.noValidation) return val; + if ((val = "" + val || "").match(/\?>/)) throw new Error("Invalid processing instruction value: " + val); + return this.assertLegalChar(val); + }, XMLStringifier.prototype.xmlVersion = function(val) { + if (this.options.noValidation) return val; + if (!(val = "" + val || "").match(/1\.[0-9]+/)) throw new Error("Invalid version number: " + val); + return val; + }, XMLStringifier.prototype.xmlEncoding = function(val) { + if (this.options.noValidation) return val; + if (!(val = "" + val || "").match(/^[A-Za-z](?:[A-Za-z0-9._-])*$/)) throw new Error("Invalid encoding: " + val); + return this.assertLegalChar(val); + }, XMLStringifier.prototype.xmlStandalone = function(val) { + return this.options.noValidation ? val : val ? "yes" : "no"; + }, XMLStringifier.prototype.dtdPubID = function(val) { + return this.options.noValidation ? val : this.assertLegalChar("" + val || ""); + }, XMLStringifier.prototype.dtdSysID = function(val) { + return this.options.noValidation ? val : this.assertLegalChar("" + val || ""); + }, XMLStringifier.prototype.dtdElementValue = function(val) { + return this.options.noValidation ? val : this.assertLegalChar("" + val || ""); + }, XMLStringifier.prototype.dtdAttType = function(val) { + return this.options.noValidation ? val : this.assertLegalChar("" + val || ""); + }, XMLStringifier.prototype.dtdAttDefault = function(val) { + return this.options.noValidation ? val : this.assertLegalChar("" + val || ""); + }, XMLStringifier.prototype.dtdEntityValue = function(val) { + return this.options.noValidation ? val : this.assertLegalChar("" + val || ""); + }, XMLStringifier.prototype.dtdNData = function(val) { + return this.options.noValidation ? val : this.assertLegalChar("" + val || ""); + }, XMLStringifier.prototype.convertAttKey = "@", XMLStringifier.prototype.convertPIKey = "?", + XMLStringifier.prototype.convertTextKey = "#text", XMLStringifier.prototype.convertCDataKey = "#cdata", + XMLStringifier.prototype.convertCommentKey = "#comment", XMLStringifier.prototype.convertRawKey = "#raw", + XMLStringifier.prototype.assertLegalChar = function(str) { + var regex, res; + if (this.options.noValidation) return str; + if (regex = "", "1.0" === this.options.version) { + if (regex = /[\0-\x08\x0B\f\x0E-\x1F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/, + res = str.match(regex)) throw new Error("Invalid character in string: " + str + " at index " + res.index); + } else if ("1.1" === this.options.version && (regex = /[\0\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/, + res = str.match(regex))) throw new Error("Invalid character in string: " + str + " at index " + res.index); + return str; + }, XMLStringifier.prototype.assertLegalName = function(str) { + var regex; + if (this.options.noValidation) return str; + if (this.assertLegalChar(str), 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])*$/, + !str.match(regex)) throw new Error("Invalid character in name"); + return str; + }, XMLStringifier.prototype.textEscape = function(str) { + var ampregex; + return this.options.noValidation ? str : (ampregex = this.options.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g, + str.replace(ampregex, "&").replace(//g, ">").replace(/\r/g, " ")); + }, XMLStringifier.prototype.attEscape = function(str) { + var ampregex; + return this.options.noValidation ? str : (ampregex = this.options.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g, + str.replace(ampregex, "&").replace(/ 0 ? new Array(indentLevel).join(options.indent) : ""; + }, XMLWriterBase.prototype.endline = function(node, options, level) { + return !options.pretty || options.suppressPrettyCount ? "" : options.newline; + }, XMLWriterBase.prototype.attribute = function(att, options, level) { + var r; + return this.openAttribute(att, options, level), r = " " + att.name + '="' + att.value + '"', + this.closeAttribute(att, options, level), r; + }, XMLWriterBase.prototype.cdata = function(node, options, level) { + var r; + return this.openNode(node, options, level), options.state = WriterState.OpenTag, + r = this.indent(node, options, level) + "" + this.endline(node, options, level), + options.state = WriterState.None, this.closeNode(node, options, level), r; + }, XMLWriterBase.prototype.comment = function(node, options, level) { + var r; + return this.openNode(node, options, level), options.state = WriterState.OpenTag, + r = this.indent(node, options, level) + "\x3c!-- ", options.state = WriterState.InsideTag, + r += node.value, options.state = WriterState.CloseTag, r += " --\x3e" + this.endline(node, options, level), + options.state = WriterState.None, this.closeNode(node, options, level), r; + }, XMLWriterBase.prototype.declaration = function(node, options, level) { + var r; + return this.openNode(node, options, level), options.state = WriterState.OpenTag, + r = this.indent(node, options, level) + "", r += this.endline(node, options, level), options.state = WriterState.None, + this.closeNode(node, options, level), r; + }, XMLWriterBase.prototype.docType = function(node, options, level) { + var child, i, len, r, ref; + if (level || (level = 0), this.openNode(node, options, level), options.state = WriterState.OpenTag, + r = this.indent(node, options, level), r += " 0) { + for (r += " [", r += this.endline(node, options, level), options.state = WriterState.InsideTag, + i = 0, len = (ref = node.children).length; i < len; i++) child = ref[i], r += this.writeChildNode(child, options, level + 1); + options.state = WriterState.CloseTag, r += "]"; + } + return options.state = WriterState.CloseTag, r += options.spaceBeforeSlash + ">", + r += this.endline(node, options, level), options.state = WriterState.None, this.closeNode(node, options, level), + r; + }, XMLWriterBase.prototype.element = function(node, options, level) { + var att, child, childNodeCount, firstChildNode, i, j, len, len1, name, prettySuppressed, r, ref, ref1, ref2; + for (name in level || (level = 0), prettySuppressed = !1, r = "", this.openNode(node, options, level), + options.state = WriterState.OpenTag, r += this.indent(node, options, level) + "<" + node.name, + ref = node.attribs) hasProp.call(ref, name) && (att = ref[name], r += this.attribute(att, options, level)); + if (firstChildNode = 0 === (childNodeCount = node.children.length) ? null : node.children[0], + 0 === childNodeCount || node.children.every((function(e) { + return (e.type === NodeType.Text || e.type === NodeType.Raw) && "" === e.value; + }))) options.allowEmpty ? (r += ">", options.state = WriterState.CloseTag, r += "" + this.endline(node, options, level)) : (options.state = WriterState.CloseTag, + r += options.spaceBeforeSlash + "/>" + this.endline(node, options, level)); else if (!options.pretty || 1 !== childNodeCount || firstChildNode.type !== NodeType.Text && firstChildNode.type !== NodeType.Raw || null == firstChildNode.value) { + if (options.dontPrettyTextNodes) for (i = 0, len = (ref1 = node.children).length; i < len; i++) if (((child = ref1[i]).type === NodeType.Text || child.type === NodeType.Raw) && null != child.value) { + options.suppressPrettyCount++, prettySuppressed = !0; + break; + } + for (r += ">" + this.endline(node, options, level), options.state = WriterState.InsideTag, + j = 0, len1 = (ref2 = node.children).length; j < len1; j++) child = ref2[j], r += this.writeChildNode(child, options, level + 1); + options.state = WriterState.CloseTag, r += this.indent(node, options, level) + "", + prettySuppressed && options.suppressPrettyCount--, r += this.endline(node, options, level), + options.state = WriterState.None; + } else r += ">", options.state = WriterState.InsideTag, options.suppressPrettyCount++, + prettySuppressed = !0, r += this.writeChildNode(firstChildNode, options, level + 1), + options.suppressPrettyCount--, prettySuppressed = !1, options.state = WriterState.CloseTag, + r += "" + this.endline(node, options, level); + return this.closeNode(node, options, level), r; + }, XMLWriterBase.prototype.writeChildNode = function(node, options, level) { + switch (node.type) { + case NodeType.CData: + return this.cdata(node, options, level); + + case NodeType.Comment: + return this.comment(node, options, level); + + case NodeType.Element: + return this.element(node, options, level); + + case NodeType.Raw: + return this.raw(node, options, level); + + case NodeType.Text: + return this.text(node, options, level); + + case NodeType.ProcessingInstruction: + return this.processingInstruction(node, options, level); + + case NodeType.Dummy: + return ""; + + case NodeType.Declaration: + return this.declaration(node, options, level); + + case NodeType.DocType: + return this.docType(node, options, level); + + case NodeType.AttributeDeclaration: + return this.dtdAttList(node, options, level); + + case NodeType.ElementDeclaration: + return this.dtdElement(node, options, level); + + case NodeType.EntityDeclaration: + return this.dtdEntity(node, options, level); + + case NodeType.NotationDeclaration: + return this.dtdNotation(node, options, level); + + default: + throw new Error("Unknown XML node type: " + node.constructor.name); + } + }, XMLWriterBase.prototype.processingInstruction = function(node, options, level) { + var r; + return this.openNode(node, options, level), options.state = WriterState.OpenTag, + r = this.indent(node, options, level) + "", r += this.endline(node, options, level), options.state = WriterState.None, + this.closeNode(node, options, level), r; + }, XMLWriterBase.prototype.raw = function(node, options, level) { + var r; + return this.openNode(node, options, level), options.state = WriterState.OpenTag, + r = this.indent(node, options, level), options.state = WriterState.InsideTag, r += node.value, + options.state = WriterState.CloseTag, r += this.endline(node, options, level), options.state = WriterState.None, + this.closeNode(node, options, level), r; + }, XMLWriterBase.prototype.text = function(node, options, level) { + var r; + return this.openNode(node, options, level), options.state = WriterState.OpenTag, + r = this.indent(node, options, level), options.state = WriterState.InsideTag, r += node.value, + options.state = WriterState.CloseTag, r += this.endline(node, options, level), options.state = WriterState.None, + this.closeNode(node, options, level), r; + }, XMLWriterBase.prototype.dtdAttList = function(node, options, level) { + var r; + return this.openNode(node, options, level), options.state = WriterState.OpenTag, + r = this.indent(node, options, level) + "" + this.endline(node, options, level), + options.state = WriterState.None, this.closeNode(node, options, level), r; + }, XMLWriterBase.prototype.dtdElement = function(node, options, level) { + var r; + return this.openNode(node, options, level), options.state = WriterState.OpenTag, + r = this.indent(node, options, level) + "" + this.endline(node, options, level), + options.state = WriterState.None, this.closeNode(node, options, level), r; + }, XMLWriterBase.prototype.dtdEntity = function(node, options, level) { + var r; + return this.openNode(node, options, level), options.state = WriterState.OpenTag, + r = this.indent(node, options, level) + "" + this.endline(node, options, level), options.state = WriterState.None, + this.closeNode(node, options, level), r; + }, XMLWriterBase.prototype.dtdNotation = function(node, options, level) { + var r; + return this.openNode(node, options, level), options.state = WriterState.OpenTag, + r = this.indent(node, options, level) + "" + this.endline(node, options, level), + options.state = WriterState.None, this.closeNode(node, options, level), r; + }, XMLWriterBase.prototype.openNode = function(node, options, level) {}, XMLWriterBase.prototype.closeNode = function(node, options, level) {}, + XMLWriterBase.prototype.openAttribute = function(att, options, level) {}, XMLWriterBase.prototype.closeAttribute = function(att, options, level) {}, + XMLWriterBase; + })(); + }).call(this); +}, function(module, exports) { + (function() { + "use strict"; + var prefixMatch; + prefixMatch = new RegExp(/(?!xmlns)^.*:/), exports.normalize = function(str) { + return str.toLowerCase(); + }, exports.firstCharLowerCase = function(str) { + return str.charAt(0).toLowerCase() + str.slice(1); + }, exports.stripPrefix = function(str) { + return str.replace(prefixMatch, ""); + }, exports.parseNumbers = function(str) { + return isNaN(str) || (str = str % 1 == 0 ? parseInt(str, 10) : parseFloat(str)), + str; + }, exports.parseBooleans = function(str) { + return /^(?:true|false)$/i.test(str) && (str = "true" === str.toLowerCase()), str; + }; + }).call(this); }, function(module, exports, __webpack_require__) { "use strict"; function $flatten(array, result) { @@ -41533,7 +44162,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var pathRegexp = __webpack_require__(161), debug = __webpack_require__(8)("router:layer"), hasOwnProperty = Object.prototype.hasOwnProperty; + var pathRegexp = __webpack_require__(178), debug = __webpack_require__(9)("router:layer"), hasOwnProperty = Object.prototype.hasOwnProperty; function Layer(path, options, fn) { if (!(this instanceof Layer)) return new Layer(path, options, fn); debug("new %o", path); @@ -41585,51 +44214,67 @@ return !0; }; }, function(module, exports, __webpack_require__) { - const {RarFilesPackage: RarFilesPackage} = __webpack_require__(1040), urlToFileMedia = __webpack_require__(1041), store = __webpack_require__(228), safeStatelessRegex = __webpack_require__(169), rarStreams = {}, isRegex = /^\/(.*)\/(.*)$/; - module.exports = async function(req) { - const {opts: opts, query: query} = (function(req) { - let opts = {}; - try { - opts = JSON.parse(req.query.o); - } catch (e) {} - return (opts.fileMustInclude || []).length && (opts.fileMustInclude = opts.fileMustInclude.map((el => { - if ((el || "").match(isRegex)) { - const parts = isRegex.exec(el); - try { - return new RegExp(parts[1], parts[2]); - } catch (e) {} - } - return el; - }))), { - opts: opts, - query: req.query - }; - })(req), rarUrls = (function(query) { + const {RarFilesPackage: RarFilesPackage} = __webpack_require__(1123), urlToFileMedia = __webpack_require__(1124), store = __webpack_require__(162), parseQuery = __webpack_require__(272), safeStatelessRegex = __webpack_require__(80), q = new (__webpack_require__(71))((async (task, cb) => { + const {opts: opts, query: query} = task, rarUrls = (function(query) { let rarUrls = [], key = query.key; return key && store.get(key) ? rarUrls = store.get(key) : (rarUrls = query.r || [], "string" == typeof rarUrls && (rarUrls = [ rarUrls ])), rarUrls; })(query); - return rarStreams[req.url] = rarStreams[req.url] || await (async (urls, opts = {}) => { - const rarFiles = []; - for (let url of urls) rarFiles.push(urlToFileMedia(url)); - const rarStreamPackage = new RarFilesPackage(await Promise.all(rarFiles)); - (opts.fileMustInclude || []).length || opts.hasOwnProperty("fileIdx") || (opts = { - fileMustInclude: [ /.mkv$|.mp4$|.avi$/i ] - }); - const rarStreamOpts = { - filter: function(name, idx) { - return (opts.fileMustInclude || []).length ? !!opts.fileMustInclude.find((reg => (reg = "string" == typeof reg ? new RegExp(reg) : reg, - safeStatelessRegex(name || "", reg, 500)))) : !opts.hasOwnProperty("fileIdx") || opts.fileIdx === idx; - }, - maxFiles: 1 - }, innerFiles = await rarStreamPackage.parse(rarStreamOpts); - if (!innerFiles[0]) throw Error("no file matching " + JSON.stringify(opts)); - return innerFiles[0]; - })(rarUrls, opts), rarStreams[req.url]; + try { + rarStreams[task.url] = rarStreams[task.url] || await streamRar(rarUrls, opts); + } catch (e) { + return console.error(e), void cb(null); + } + cb(rarStreams[task.url]); + }), 10), rarStreams = {}, streamRar = async (urls, opts = {}) => { + const rarFiles = []; + for (let url of urls) rarFiles.push(urlToFileMedia(url)); + let promisedFiles = null; + try { + promisedFiles = await Promise.all(rarFiles); + } catch (e) { + throw Error(e); + } + const rarStreamPackage = new RarFilesPackage(promisedFiles); + (opts.fileMustInclude || []).length || opts.hasOwnProperty("fileIdx") || (opts = { + fileMustInclude: [ /.mkv$|.mp4$|.avi$|.ts$/i ] + }); + const rarStreamOpts = { + filter: function(name, idx) { + return (opts.fileMustInclude || []).length ? !!opts.fileMustInclude.find((reg => (reg = "string" == typeof reg ? new RegExp(reg) : reg, + safeStatelessRegex(name || "", reg, 500)))) : !opts.hasOwnProperty("fileIdx") || opts.fileIdx === idx; + }, + maxFiles: 1 + }; + let innerFiles = []; + try { + innerFiles = await rarStreamPackage.parse(rarStreamOpts); + } catch (e) { + throw Error(e); + } + if (!innerFiles[0]) throw Error("no file matching " + JSON.stringify(opts)); + return innerFiles[0]; + }; + module.exports = async function(req) { + const task = parseQuery(req); + task.url = req.url; + let rarStream = null; + try { + rarStream = await (function(task) { + return new Promise(((resolve, reject) => { + task.id = task.query.key, q.push(task, (rarStream => { + resolve(rarStream); + })); + })); + })(task); + } catch (e) { + console.error(e); + } + return rarStream; }; }, function(module, exports, __webpack_require__) { "use strict"; - var tough = __webpack_require__(1042), Cookie = tough.Cookie, CookieJar = tough.CookieJar; + var tough = __webpack_require__(1126), Cookie = tough.Cookie, CookieJar = tough.CookieJar; function RequestJar(store) { this._jar = new CookieJar(store, { looseMode: !0 @@ -41651,7 +44296,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var psl = __webpack_require__(1043); + var psl = __webpack_require__(1127); exports.getPublicSuffix = function(domain) { return psl.get(domain); }; @@ -41677,7 +44322,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var pubsuffix = __webpack_require__(474); + var pubsuffix = __webpack_require__(516); exports.permuteDomain = function(domain) { var pubSuf = pubsuffix.getPublicSuffix(domain); if (!pubSuf) return null; @@ -41701,7 +44346,7 @@ Verifier: Verifier, Signer: Signer }; - var nacl = __webpack_require__(99), stream = __webpack_require__(3), util = __webpack_require__(0), assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, Signature = __webpack_require__(48); + var nacl = __webpack_require__(111), stream = __webpack_require__(3), util = __webpack_require__(0), assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, Signature = __webpack_require__(53); function Verifier(key, hashAlgo) { if ("sha512" !== hashAlgo.toLowerCase()) throw new Error("ED25519 only supports the use of SHA-512 hashes"); this.key = key, this.chunks = [], stream.Writable.call(this, {}); @@ -41764,8 +44409,8 @@ throw new Error('"auto" format cannot be used for writing'); } }; - var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, pem = (__webpack_require__(27), - __webpack_require__(26), __webpack_require__(28), __webpack_require__(56)), ssh = __webpack_require__(482), rfc4253 = __webpack_require__(57), dnssec = __webpack_require__(236), putty = __webpack_require__(483); + var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, pem = (__webpack_require__(28), + __webpack_require__(27), __webpack_require__(29), __webpack_require__(62)), ssh = __webpack_require__(524), rfc4253 = __webpack_require__(63), dnssec = __webpack_require__(267), putty = __webpack_require__(525); function findDNSSECHeader(buf) { if (buf.length <= "Private-key-format: v1".length) return !1; if ("Private-key-format: v1" === buf.slice(0, "Private-key-format: v1".length).toString("ascii")) return !0; @@ -41775,7 +44420,7 @@ } }, function(module, exports, __webpack_require__) { "use strict"; - var crypto_hash_sha512 = __webpack_require__(99).lowlevel.crypto_hash, BLF_J = 0, Blowfish = function() { + var crypto_hash_sha512 = __webpack_require__(111).lowlevel.crypto_hash, BLF_J = 0, Blowfish = function() { this.S = [ new Uint32Array([ 3509652390, 2564797868, 805139163, 3491422135, 3101798381, 1780907670, 3128725573, 4046225305, 614570311, 3012652279, 134345442, 2240740374, 1667834072, 1901547113, 2757295779, 4103290238, 227898511, 1921955416, 1904987480, 2182433518, 2069144605, 3260701109, 2620446009, 720527379, 3318853667, 677414384, 3393288472, 3101374703, 2390351024, 1614419982, 1822297739, 2954791486, 3608508353, 3174124327, 2024746970, 1432378464, 3864339955, 2857741204, 1464375394, 1676153920, 1439316330, 715854006, 3033291828, 289532110, 2706671279, 2087905683, 3018724369, 1668267050, 732546397, 1947742710, 3462151702, 2609353502, 2950085171, 1814351708, 2050118529, 680887927, 999245976, 1800124847, 3300911131, 1713906067, 1641548236, 4213287313, 1216130144, 1575780402, 4018429277, 3917837745, 3693486850, 3949271944, 596196993, 3549867205, 258830323, 2213823033, 772490370, 2760122372, 1774776394, 2652871518, 566650946, 4142492826, 1728879713, 2882767088, 1783734482, 3629395816, 2517608232, 2874225571, 1861159788, 326777828, 3124490320, 2130389656, 2716951837, 967770486, 1724537150, 2185432712, 2364442137, 1164943284, 2105845187, 998989502, 3765401048, 2244026483, 1075463327, 1455516326, 1322494562, 910128902, 469688178, 1117454909, 936433444, 3490320968, 3675253459, 1240580251, 122909385, 2157517691, 634681816, 4142456567, 3825094682, 3061402683, 2540495037, 79693498, 3249098678, 1084186820, 1583128258, 426386531, 1761308591, 1047286709, 322548459, 995290223, 1845252383, 2603652396, 3431023940, 2942221577, 3202600964, 3727903485, 1712269319, 422464435, 3234572375, 1170764815, 3523960633, 3117677531, 1434042557, 442511882, 3600875718, 1076654713, 1738483198, 4213154764, 2393238008, 3677496056, 1014306527, 4251020053, 793779912, 2902807211, 842905082, 4246964064, 1395751752, 1040244610, 2656851899, 3396308128, 445077038, 3742853595, 3577915638, 679411651, 2892444358, 2354009459, 1767581616, 3150600392, 3791627101, 3102740896, 284835224, 4246832056, 1258075500, 768725851, 2589189241, 3069724005, 3532540348, 1274779536, 3789419226, 2764799539, 1660621633, 3471099624, 4011903706, 913787905, 3497959166, 737222580, 2514213453, 2928710040, 3937242737, 1804850592, 3499020752, 2949064160, 2386320175, 2390070455, 2415321851, 4061277028, 2290661394, 2416832540, 1336762016, 1754252060, 3520065937, 3014181293, 791618072, 3188594551, 3933548030, 2332172193, 3852520463, 3043980520, 413987798, 3465142937, 3030929376, 4245938359, 2093235073, 3534596313, 375366246, 2157278981, 2479649556, 555357303, 3870105701, 2008414854, 3344188149, 4221384143, 3956125452, 2067696032, 3594591187, 2921233993, 2428461, 544322398, 577241275, 1471733935, 610547355, 4027169054, 1432588573, 1507829418, 2025931657, 3646575487, 545086370, 48609733, 2200306550, 1653985193, 298326376, 1316178497, 3007786442, 2064951626, 458293330, 2589141269, 3591329599, 3164325604, 727753846, 2179363840, 146436021, 1461446943, 4069977195, 705550613, 3059967265, 3887724982, 4281599278, 3313849956, 1404054877, 2845806497, 146425753, 1854211946 ]), new Uint32Array([ 1266315497, 3048417604, 3681880366, 3289982499, 290971e4, 1235738493, 2632868024, 2414719590, 3970600049, 1771706367, 1449415276, 3266420449, 422970021, 1963543593, 2690192192, 3826793022, 1062508698, 1531092325, 1804592342, 2583117782, 2714934279, 4024971509, 1294809318, 4028980673, 1289560198, 2221992742, 1669523910, 35572830, 157838143, 1052438473, 1016535060, 1802137761, 1753167236, 1386275462, 3080475397, 2857371447, 1040679964, 2145300060, 2390574316, 1461121720, 2956646967, 4031777805, 4028374788, 33600511, 2920084762, 1018524850, 629373528, 3691585981, 3515945977, 2091462646, 2486323059, 586499841, 988145025, 935516892, 3367335476, 2599673255, 2839830854, 265290510, 3972581182, 2759138881, 3795373465, 1005194799, 847297441, 406762289, 1314163512, 1332590856, 1866599683, 4127851711, 750260880, 613907577, 1450815602, 3165620655, 3734664991, 3650291728, 3012275730, 3704569646, 1427272223, 778793252, 1343938022, 2676280711, 2052605720, 1946737175, 3164576444, 3914038668, 3967478842, 3682934266, 1661551462, 3294938066, 4011595847, 840292616, 3712170807, 616741398, 312560963, 711312465, 1351876610, 322626781, 1910503582, 271666773, 2175563734, 1594956187, 70604529, 3617834859, 1007753275, 1495573769, 4069517037, 2549218298, 2663038764, 504708206, 2263041392, 3941167025, 2249088522, 1514023603, 1998579484, 1312622330, 694541497, 2582060303, 2151582166, 1382467621, 776784248, 2618340202, 3323268794, 2497899128, 2784771155, 503983604, 4076293799, 907881277, 423175695, 432175456, 1378068232, 4145222326, 3954048622, 3938656102, 3820766613, 2793130115, 2977904593, 26017576, 3274890735, 3194772133, 1700274565, 1756076034, 4006520079, 3677328699, 720338349, 1533947780, 354530856, 688349552, 3973924725, 1637815568, 332179504, 3949051286, 53804574, 2852348879, 3044236432, 1282449977, 3583942155, 3416972820, 4006381244, 1617046695, 2628476075, 3002303598, 1686838959, 431878346, 2686675385, 1700445008, 1080580658, 1009431731, 832498133, 3223435511, 2605976345, 2271191193, 2516031870, 1648197032, 4164389018, 2548247927, 300782431, 375919233, 238389289, 3353747414, 2531188641, 2019080857, 1475708069, 455242339, 2609103871, 448939670, 3451063019, 1395535956, 2413381860, 1841049896, 1491858159, 885456874, 4264095073, 4001119347, 1565136089, 3898914787, 1108368660, 540939232, 1173283510, 2745871338, 3681308437, 4207628240, 3343053890, 4016749493, 1699691293, 1103962373, 3625875870, 2256883143, 3830138730, 1031889488, 3479347698, 1535977030, 4236805024, 3251091107, 2132092099, 1774941330, 1199868427, 1452454533, 157007616, 2904115357, 342012276, 595725824, 1480756522, 206960106, 497939518, 591360097, 863170706, 2375253569, 3596610801, 1814182875, 2094937945, 3421402208, 1082520231, 3463918190, 2785509508, 435703966, 3908032597, 1641649973, 2842273706, 3305899714, 1510255612, 2148256476, 2655287854, 3276092548, 4258621189, 236887753, 3681803219, 274041037, 1734335097, 3815195456, 3317970021, 1899903192, 1026095262, 4050517792, 356393447, 2410691914, 3873677099, 3682840055 ]), new Uint32Array([ 3913112168, 2491498743, 4132185628, 2489919796, 1091903735, 1979897079, 3170134830, 3567386728, 3557303409, 857797738, 1136121015, 1342202287, 507115054, 2535736646, 337727348, 3213592640, 1301675037, 2528481711, 1895095763, 1721773893, 3216771564, 62756741, 2142006736, 835421444, 2531993523, 1442658625, 3659876326, 2882144922, 676362277, 1392781812, 170690266, 3921047035, 1759253602, 3611846912, 1745797284, 664899054, 1329594018, 3901205900, 3045908486, 2062866102, 2865634940, 3543621612, 3464012697, 1080764994, 553557557, 3656615353, 3996768171, 991055499, 499776247, 1265440854, 648242737, 3940784050, 980351604, 3713745714, 1749149687, 3396870395, 4211799374, 3640570775, 1161844396, 3125318951, 1431517754, 545492359, 4268468663, 3499529547, 1437099964, 2702547544, 3433638243, 2581715763, 2787789398, 1060185593, 1593081372, 2418618748, 4260947970, 69676912, 2159744348, 86519011, 2512459080, 3838209314, 1220612927, 3339683548, 133810670, 1090789135, 1078426020, 1569222167, 845107691, 3583754449, 4072456591, 1091646820, 628848692, 1613405280, 3757631651, 526609435, 236106946, 48312990, 2942717905, 3402727701, 1797494240, 859738849, 992217954, 4005476642, 2243076622, 3870952857, 3732016268, 765654824, 3490871365, 2511836413, 1685915746, 3888969200, 1414112111, 2273134842, 3281911079, 4080962846, 172450625, 2569994100, 980381355, 4109958455, 2819808352, 2716589560, 2568741196, 3681446669, 3329971472, 1835478071, 660984891, 3704678404, 4045999559, 3422617507, 3040415634, 1762651403, 1719377915, 3470491036, 2693910283, 3642056355, 3138596744, 1364962596, 2073328063, 1983633131, 926494387, 3423689081, 2150032023, 4096667949, 1749200295, 3328846651, 309677260, 2016342300, 1779581495, 3079819751, 111262694, 1274766160, 443224088, 298511866, 1025883608, 3806446537, 1145181785, 168956806, 3641502830, 3584813610, 1689216846, 3666258015, 3200248200, 1692713982, 2646376535, 4042768518, 1618508792, 1610833997, 3523052358, 4130873264, 2001055236, 3610705100, 2202168115, 4028541809, 2961195399, 1006657119, 2006996926, 3186142756, 1430667929, 3210227297, 1314452623, 4074634658, 4101304120, 2273951170, 1399257539, 3367210612, 3027628629, 1190975929, 2062231137, 2333990788, 2221543033, 2438960610, 1181637006, 548689776, 2362791313, 3372408396, 3104550113, 3145860560, 296247880, 1970579870, 3078560182, 3769228297, 1714227617, 3291629107, 3898220290, 166772364, 1251581989, 493813264, 448347421, 195405023, 2709975567, 677966185, 3703036547, 1463355134, 2715995803, 1338867538, 1343315457, 2802222074, 2684532164, 233230375, 2599980071, 2000651841, 3277868038, 1638401717, 4028070440, 3237316320, 6314154, 819756386, 300326615, 590932579, 1405279636, 3267499572, 3150704214, 2428286686, 3959192993, 3461946742, 1862657033, 1266418056, 963775037, 2089974820, 2263052895, 1917689273, 448879540, 3550394620, 3981727096, 150775221, 3627908307, 1303187396, 508620638, 2975983352, 2726630617, 1817252668, 1876281319, 1457606340, 908771278, 3720792119, 3617206836, 2455994898, 1729034894, 1080033504 ]), new Uint32Array([ 976866871, 3556439503, 2881648439, 1522871579, 1555064734, 1336096578, 3548522304, 2579274686, 3574697629, 3205460757, 3593280638, 3338716283, 3079412587, 564236357, 2993598910, 1781952180, 1464380207, 3163844217, 3332601554, 1699332808, 1393555694, 1183702653, 3581086237, 1288719814, 691649499, 2847557200, 2895455976, 3193889540, 2717570544, 1781354906, 1676643554, 2592534050, 3230253752, 1126444790, 2770207658, 2633158820, 2210423226, 2615765581, 2414155088, 3127139286, 673620729, 2805611233, 1269405062, 4015350505, 3341807571, 4149409754, 1057255273, 2012875353, 2162469141, 2276492801, 2601117357, 993977747, 3918593370, 2654263191, 753973209, 36408145, 2530585658, 25011837, 3520020182, 2088578344, 530523599, 2918365339, 1524020338, 1518925132, 3760827505, 3759777254, 1202760957, 3985898139, 3906192525, 674977740, 4174734889, 2031300136, 2019492241, 3983892565, 4153806404, 3822280332, 352677332, 2297720250, 60907813, 90501309, 3286998549, 1016092578, 2535922412, 2839152426, 457141659, 509813237, 4120667899, 652014361, 1966332200, 2975202805, 55981186, 2327461051, 676427537, 3255491064, 2882294119, 3433927263, 1307055953, 942726286, 933058658, 2468411793, 3933900994, 4215176142, 1361170020, 2001714738, 2830558078, 3274259782, 1222529897, 1679025792, 2729314320, 3714953764, 1770335741, 151462246, 3013232138, 1682292957, 1483529935, 471910574, 1539241949, 458788160, 3436315007, 1807016891, 3718408830, 978976581, 1043663428, 3165965781, 1927990952, 4200891579, 2372276910, 3208408903, 3533431907, 1412390302, 2931980059, 4132332400, 1947078029, 3881505623, 4168226417, 2941484381, 1077988104, 1320477388, 886195818, 18198404, 3786409e3, 2509781533, 112762804, 3463356488, 1866414978, 891333506, 18488651, 661792760, 1628790961, 3885187036, 3141171499, 876946877, 2693282273, 1372485963, 791857591, 2686433993, 3759982718, 3167212022, 3472953795, 2716379847, 445679433, 3561995674, 3504004811, 3574258232, 54117162, 3331405415, 2381918588, 3769707343, 4154350007, 1140177722, 4074052095, 668550556, 3214352940, 367459370, 261225585, 2610173221, 4209349473, 3468074219, 3265815641, 314222801, 3066103646, 3808782860, 282218597, 3406013506, 3773591054, 379116347, 1285071038, 846784868, 2669647154, 3771962079, 3550491691, 2305946142, 453669953, 1268987020, 3317592352, 3279303384, 3744833421, 2610507566, 3859509063, 266596637, 3847019092, 517658769, 3462560207, 3443424879, 370717030, 4247526661, 2224018117, 4143653529, 4112773975, 2788324899, 2477274417, 1456262402, 2901442914, 1517677493, 1846949527, 2295493580, 3734397586, 2176403920, 1280348187, 1908823572, 3871786941, 846861322, 1172426758, 3287448474, 3383383037, 1655181056, 3139813346, 901632758, 1897031941, 2986607138, 3066810236, 3447102507, 1393639104, 373351379, 950779232, 625454576, 3124240540, 4148612726, 2007998917, 544563296, 2244738638, 2330496472, 2058025392, 1291430526, 424198748, 50039436, 29584100, 3605783033, 2429876329, 2791104160, 1057563949, 3255363231, 3075367218, 3463963227, 1469046755, 985887462 ]) ], this.P = new Uint32Array([ 608135816, 2242054355, 320440878, 57701188, 2752067618, 698298832, 137296536, 3964562569, 1160258022, 953160567, 3193202383, 887688300, 3232508343, 3380367581, 1065670069, 3041331479, 2450970073, 2306472731 ]); }; @@ -41879,8 +44524,8 @@ Buffer.from(parts.join(" ")); } }; - var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, rfc4253 = __webpack_require__(57), Key = (__webpack_require__(27), - __webpack_require__(26)), SSHKEY_RE = (__webpack_require__(28), __webpack_require__(152), + var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, rfc4253 = __webpack_require__(63), Key = (__webpack_require__(28), + __webpack_require__(27)), SSHKEY_RE = (__webpack_require__(29), __webpack_require__(165), /^([a-z0-9-]+)[ \t]+([a-zA-Z0-9+\/]+[=]*)([ \t]+([^ \t][^\n]*[\n]*)?)?$/), SSHKEY_RE2 = /^([a-z0-9-]+)[ \t\n]+([a-zA-Z0-9+\/][a-zA-Z0-9+\/ \t\n=]*)([^a-zA-Z0-9+\/ \t\n=].*)?$/; }, function(module, exports, __webpack_require__) { module.exports = { @@ -41913,7 +44558,7 @@ Buffer.from(lines.join("\n") + "\n"); } }; - var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, rfc4253 = __webpack_require__(57), Key = __webpack_require__(26); + var assert = __webpack_require__(15), Buffer = __webpack_require__(14).Buffer, rfc4253 = __webpack_require__(63), Key = __webpack_require__(27); function splitHeader(line) { var idx = line.indexOf(":"); if (-1 === idx) return null; @@ -41921,7 +44566,7 @@ for (++idx; " " === line[idx]; ) ++idx; return [ header, line.slice(idx) ]; } - __webpack_require__(44); + __webpack_require__(48); }, function(module, exports, __webpack_require__) { module.exports = { read: function(buf, options) { @@ -42013,9 +44658,9 @@ der.endSequence(), der.buffer; } }; - var assert = __webpack_require__(15), asn1 = __webpack_require__(49), Buffer = __webpack_require__(14).Buffer, utils = (__webpack_require__(30), - __webpack_require__(27)), Identity = (__webpack_require__(26), __webpack_require__(28), - __webpack_require__(56), __webpack_require__(103)), Signature = __webpack_require__(48), Certificate = __webpack_require__(102), pkcs8 = __webpack_require__(101); + var assert = __webpack_require__(15), asn1 = __webpack_require__(54), Buffer = __webpack_require__(14).Buffer, utils = (__webpack_require__(31), + __webpack_require__(28)), Identity = (__webpack_require__(27), __webpack_require__(29), + __webpack_require__(62), __webpack_require__(115)), Signature = __webpack_require__(53), Certificate = __webpack_require__(114), pkcs8 = __webpack_require__(113); function Local(i) { return asn1.Ber.Context | asn1.Ber.Constructor | i; } @@ -42259,7 +44904,7 @@ return bits; } }, function(module, exports, __webpack_require__) { - var util = __webpack_require__(0), Stream = __webpack_require__(3).Stream, DelayedStream = __webpack_require__(1071); + var util = __webpack_require__(0), Stream = __webpack_require__(3).Stream, DelayedStream = __webpack_require__(1155); function CombinedStream() { this.writable = !1, this.readable = !0, this.dataSize = 0, this.maxDataSize = 2097152, this.pauseStreams = !0, this._released = !1, this._streams = [], this._currentStream = null, @@ -42343,7 +44988,7 @@ this._reset(), this.emit("error", err); }; }, function(module, exports, __webpack_require__) { - var async = __webpack_require__(487), abort = __webpack_require__(488); + var async = __webpack_require__(529), abort = __webpack_require__(530); module.exports = function(list, iterator, state, callback) { var key = state.keyedList ? state.keyedList[state.index] : state.index; state.jobs[key] = (function(iterator, key, item, callback) { @@ -42354,7 +44999,7 @@ })); }; }, function(module, exports, __webpack_require__) { - var defer = __webpack_require__(1074); + var defer = __webpack_require__(1158); module.exports = function(callback) { var isAsync = !1; return defer((function() { @@ -42386,12 +45031,12 @@ }), initState; }; }, function(module, exports, __webpack_require__) { - var abort = __webpack_require__(488), async = __webpack_require__(487); + var abort = __webpack_require__(530), async = __webpack_require__(529); module.exports = function(callback) { Object.keys(this.jobs).length && (this.index = this.size, abort(this), async(callback)(null, this.results)); }; }, function(module, exports, __webpack_require__) { - var iterate = __webpack_require__(486), initState = __webpack_require__(489), terminator = __webpack_require__(490); + var iterate = __webpack_require__(528), initState = __webpack_require__(531), terminator = __webpack_require__(532); function ascending(a, b) { return a < b ? -1 : a > b ? 1 : 0; } @@ -42420,7 +45065,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var stringify = __webpack_require__(1079), parse = __webpack_require__(1080), formats = __webpack_require__(495); + var stringify = __webpack_require__(1163), parse = __webpack_require__(1164), formats = __webpack_require__(537); module.exports = { formats: formats, parse: parse, @@ -42527,7 +45172,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(80); + var util = __webpack_require__(91); module.exports = function(obj) { util.copy(obj, this); }; @@ -43044,49 +45689,65 @@ default: !0 }; }, function(module, exports, __webpack_require__) { - const unzipper = __webpack_require__(1151), request = __webpack_require__(229), store = __webpack_require__(241), safeStatelessRegex = __webpack_require__(169), q = new (__webpack_require__(171))((async (task, cb) => { - const {opts: opts, query: query} = task, zipUrls = (function(query) { + const unzipper = __webpack_require__(1235), store = (__webpack_require__(61), __webpack_require__(166)), parseQuery = __webpack_require__(276), safeStatelessRegex = __webpack_require__(80), namedQueue = __webpack_require__(71), MergeStreams = __webpack_require__(277).MergeStreams, urlToFileMedia = __webpack_require__(1280), q = new namedQueue((async (task, cb) => { + let {opts: opts, query: query} = task; + const zipUrls = (function(query) { let zipUrls = [], key = query.key; return key && store.get(key) ? zipUrls = store.get(key) : (zipUrls = query.r || [], "string" == typeof zipUrls && (zipUrls = [ zipUrls ])), zipUrls; })(query); (opts.fileMustInclude || []).length || opts.hasOwnProperty("fileIdx") || (opts = { - fileMustInclude: [ /.mkv$|.mp4$|.avi$/i ] + fileMustInclude: [ /.mkv$|.mp4$|.avi$|.ts$/i ] }); - const directory = await unzipper.Open.url(request, zipUrls[0]); - let countFiles = -1; - cb(directory.files.find((d => (countFiles++, (opts.fileMustInclude || []).length ? !!opts.fileMustInclude.find((reg => (reg = "string" == typeof reg ? new RegExp(reg) : reg, - safeStatelessRegex(d.path || "", reg, 500)))) : !opts.hasOwnProperty("fileIdx") || opts.fileIdx === countFiles)))); - }), 10), isRegex = /^\/(.*)\/(.*)$/; - module.exports = async function(req) { - const task = (function(req) { - let opts = {}; + const zipFiles = []; + let lengths = []; + for (let url of zipUrls) { + let zipFile = []; try { - opts = JSON.parse(req.query.o); - } catch (e) {} - return (opts.fileMustInclude || []).length && (opts.fileMustInclude = opts.fileMustInclude.map((el => { - if ((el || "").match(isRegex)) { - const parts = isRegex.exec(el); - try { - return new RegExp(parts[1], parts[2]); - } catch (e) {} - } - return el; - }))), { - opts: opts, - query: req.query - }; - })(req); - return await (async function(task) { - return new Promise(((resolve, reject) => { - task.id = task.query.key, q.push(task, (zipStream => { - resolve(zipStream); + zipFile = await urlToFileMedia(url, lengths); + } catch (e) { + return console.error(e), void cb(null); + } + lengths.push(zipFile.length), zipFiles.push(zipFile); + } + lengths = null; + const innerFiles = MergeStreams(zipUrls, zipFiles); + let directory = null; + try { + directory = await unzipper.Open.url(innerFiles[0], zipUrls[0], { + multiVolume: zipFiles.length > 1, + volumeSize: zipFiles[0].length, + lastVolumeSize: zipFiles[zipFiles.length - 1].length, + volumesCount: zipFiles.length + }); + } catch (e) { + return console.error(e), void cb(null); + } + if (!((directory || {}).files || []).length) return console.error(Error("Could not parse files from directory with zip parser")), + void cb(null); + let countFiles = -1; + const file = directory.files.find((d => (countFiles++, (opts.fileMustInclude || []).length ? !!opts.fileMustInclude.find((reg => (reg = "string" == typeof reg ? new RegExp(reg) : reg, + safeStatelessRegex(d.path || "", reg, 500)))) : !opts.hasOwnProperty("fileIdx") || opts.fileIdx === countFiles))); + file && (file.inner = innerFiles[0]), cb(file); + }), 10); + module.exports = async function(req) { + const task = parseQuery(req); + let file = null; + try { + file = await (async function(task) { + return new Promise(((resolve, reject) => { + task.id = task.query.key, q.push(task, (zipStream => { + resolve(zipStream); + })); })); - })); - })(task); + })(task); + } catch (e) { + console.error(e); + } + return file; }; }, function(module, exports, __webpack_require__) { - var Stream = __webpack_require__(3), util = __webpack_require__(0), Buffer = __webpack_require__(153); + var Stream = __webpack_require__(3), util = __webpack_require__(0), Buffer = __webpack_require__(167); function PullStream() { if (!(this instanceof PullStream)) return new PullStream; Stream.Duplex.call(this, { @@ -43098,7 +45759,7 @@ self.finished = !0, self.emit("chunk", !1); })); } - Stream.Writable && Stream.Writable.prototype.destroy || (Stream = __webpack_require__(77)), + Stream.Writable && Stream.Writable.prototype.destroy || (Stream = __webpack_require__(88)), util.inherits(PullStream, Stream.Duplex), PullStream.prototype._write = function(chunk, e, cb) { this.buffer = Buffer.concat([ this.buffer, chunk ]), this.cb = cb, this.emit("chunk"); }, PullStream.prototype.stream = function(eof, includeEof) { @@ -43138,7 +45799,7 @@ var rejectHandler, pullStreamRejectHandler, buffer = Buffer.from(""), self = this, concatStream = Stream.Transform(); return concatStream._transform = function(d, e, cb) { buffer = Buffer.concat([ buffer, d ]), cb(); - }, new Promise((function(resolve, reject) { + }, new Promise((async function(resolve, reject) { if (rejectHandler = reject, pullStreamRejectHandler = function(e) { self.__emittedError = e, reject(e); }, self.finished) return reject(new Error("FILE_ENDED")); @@ -43150,15 +45811,49 @@ })); }, PullStream.prototype._read = function() {}, module.exports = PullStream; }, function(module, exports, __webpack_require__) { - var binary = __webpack_require__(242); + var parseExtraField = __webpack_require__(549), parseDateTime = __webpack_require__(550), parseBuffer = __webpack_require__(273); + module.exports = function(file, entry, directoryVars) { + return file.pull(30).then((function(data) { + var vars = parseBuffer.parse(data, [ [ "signature", 4 ], [ "versionsNeededToExtract", 2 ], [ "flags", 2 ], [ "compressionMethod", 2 ], [ "lastModifiedTime", 2 ], [ "lastModifiedDate", 2 ], [ "crc32", 4 ], [ "compressedSize", 4 ], [ "uncompressedSize", 4 ], [ "fileNameLength", 2 ], [ "extraFieldLength", 2 ] ]); + return vars.lastModifiedDateTime = parseDateTime(vars.lastModifiedDate, vars.lastModifiedTime), + file.pull(vars.fileNameLength).then((function(fileName) { + return vars.fileName = fileName.toString("utf8"), file.pull(vars.extraFieldLength); + })).then((function(extraField) { + var checkEncryption; + return vars.extra = parseExtraField(extraField, vars), directoryVars && directoryVars.compressedSize && (vars = directoryVars), + 1 & vars.flags && (checkEncryption = file.pull(12).then((function(header) { + if (!_password) throw new Error("MISSING_PASSWORD"); + var decrypt = Decrypt(); + String(_password).split("").forEach((function(d) { + decrypt.update(d); + })); + for (var i = 0; i < header.length; i++) header[i] = decrypt.decryptByte(header[i]); + vars.decrypt = decrypt, vars.compressedSize -= 12; + var check = 8 & vars.flags ? vars.lastModifiedTime >> 8 & 255 : vars.crc32 >> 24 & 255; + if (header[11] !== check) throw new Error("BAD_PASSWORD"); + return vars; + }))), Promise.resolve(checkEncryption).then((function() { + return entry && entry.emit("vars", vars), vars; + })); + })); + })); + }; +}, function(module, exports, __webpack_require__) { + var parseBuffer = __webpack_require__(273); module.exports = function(extraField, vars) { for (var extra; !extra && extraField && extraField.length; ) { - var candidateExtra = binary.parse(extraField).word16lu("signature").word16lu("partsize").word64lu("uncompressedSize").word64lu("compressedSize").word64lu("offset").word64lu("disknum").vars; - 1 === candidateExtra.signature ? extra = candidateExtra : extraField = extraField.slice(candidateExtra.partsize + 4); + var candidateExtra = parseBuffer.parse(extraField, [ [ "signature", 2 ], [ "partSize", 2 ] ]); + if (1 === candidateExtra.signature) { + const fieldsToExpect = []; + 4294967295 === vars.uncompressedSize && fieldsToExpect.push([ "uncompressedSize", 8 ]), + 4294967295 === vars.compressedSize && fieldsToExpect.push([ "compressedSize", 8 ]), + 4294967295 === vars.offsetToLocalFileHeader && fieldsToExpect.push([ "offsetToLocalFileHeader", 8 ]), + extra = parseBuffer.parse(extraField.slice(4), fieldsToExpect); + } else extraField = extraField.slice(candidateExtra.partSize + 4); } return extra = extra || {}, 4294967295 === vars.compressedSize && (vars.compressedSize = extra.compressedSize), 4294967295 === vars.uncompressedSize && (vars.uncompressedSize = extra.uncompressedSize), - 4294967295 === vars.offsetToLocalFileHeader && (vars.offsetToLocalFileHeader = extra.offset), + 4294967295 === vars.offsetToLocalFileHeader && (vars.offsetToLocalFileHeader = extra.offsetToLocalFileHeader), extra; }; }, function(module, exports) { @@ -43168,7 +45863,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(17), maybeWrapAsError = util.maybeWrapAsError, OperationalError = __webpack_require__(58).OperationalError, es5 = __webpack_require__(81), rErrorKey = /^(?:name|message|stack|cause)$/; + var util = __webpack_require__(17), maybeWrapAsError = util.maybeWrapAsError, OperationalError = __webpack_require__(64).OperationalError, es5 = __webpack_require__(92), rErrorKey = /^(?:name|message|stack|cause)$/; function wrapAsOperationalError(obj) { var ret; if ((function(obj) { @@ -43199,7 +45894,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = LinkReader; - var fs = __webpack_require__(59), inherits = __webpack_require__(7), Reader = __webpack_require__(82); + var fs = __webpack_require__(65), inherits = __webpack_require__(8), Reader = __webpack_require__(93); function LinkReader(props) { if (!(this instanceof LinkReader)) throw new Error("LinkReader must be called as constructor."); if (!("Link" === props.type && props.Link || "SymbolicLink" === props.type && props.SymbolicLink)) throw new Error("Non-link type " + props.type); @@ -43217,7 +45912,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = DirReader; - var fs = __webpack_require__(59), inherits = __webpack_require__(7), path = __webpack_require__(4), Reader = __webpack_require__(82), assert = __webpack_require__(22).ok; + var fs = __webpack_require__(65), inherits = __webpack_require__(8), path = __webpack_require__(5), Reader = __webpack_require__(93), assert = __webpack_require__(25).ok; function DirReader(props) { if (!(this instanceof DirReader)) throw new Error("DirReader must be called as constructor."); if ("Directory" !== props.type || !props.Directory) throw new Error("Non-directory type " + props.type); @@ -43296,7 +45991,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = FileReader; - var fs = __webpack_require__(59), inherits = __webpack_require__(7), Reader = __webpack_require__(82), EOF = { + var fs = __webpack_require__(65), inherits = __webpack_require__(8), Reader = __webpack_require__(93), EOF = { EOF: !0 }, CLOSE = { CLOSE: !0 @@ -43341,7 +46036,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = ProxyReader; - var Reader = __webpack_require__(82), getType = __webpack_require__(154), inherits = __webpack_require__(7), fs = __webpack_require__(59); + var Reader = __webpack_require__(93), getType = __webpack_require__(168), inherits = __webpack_require__(8), fs = __webpack_require__(65); function ProxyReader(props) { if (!(this instanceof ProxyReader)) throw new Error("ProxyReader must be called as constructor."); this.props = props, this._buffer = [], this.ready = !1, Reader.call(this, props); @@ -43372,7 +46067,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = rimraf, rimraf.sync = rimrafSync; - var assert = __webpack_require__(22), path = __webpack_require__(4), fs = __webpack_require__(2), glob = __webpack_require__(181), _0666 = parseInt("666", 8), defaultGlobOpts = { + var assert = __webpack_require__(25), path = __webpack_require__(5), fs = __webpack_require__(2), glob = __webpack_require__(196), _0666 = parseInt("666", 8), defaultGlobOpts = { nosort: !0, silent: !0 }, timeout = 0, isWindows = "win32" === process.platform; @@ -43520,7 +46215,7 @@ } }, function(module, exports, __webpack_require__) { module.exports = DirWriter; - var Writer = __webpack_require__(104), inherits = __webpack_require__(7), mkdir = __webpack_require__(170), path = __webpack_require__(4), collect = __webpack_require__(244); + var Writer = __webpack_require__(116), inherits = __webpack_require__(8), mkdir = __webpack_require__(186), path = __webpack_require__(5), collect = __webpack_require__(275); function DirWriter(props) { this instanceof DirWriter || this.error("DirWriter must be called as constructor.", null, !0), "Directory" === props.type && props.Directory || this.error("Non-directory type " + props.type + " " + JSON.stringify(props), null, !0), @@ -43576,7 +46271,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = LinkWriter; - var fs = __webpack_require__(59), Writer = __webpack_require__(104), inherits = __webpack_require__(7), path = __webpack_require__(4), rimraf = __webpack_require__(513); + var fs = __webpack_require__(65), Writer = __webpack_require__(116), inherits = __webpack_require__(8), path = __webpack_require__(5), rimraf = __webpack_require__(556); function LinkWriter(props) { if (!(this instanceof LinkWriter)) throw new Error("LinkWriter must be called as constructor."); if (!("Link" === props.type && props.Link || "SymbolicLink" === props.type && props.SymbolicLink)) throw new Error("Non-link type " + props.type); @@ -43612,7 +46307,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = FileWriter; - var fs = __webpack_require__(59), Writer = __webpack_require__(104), inherits = __webpack_require__(7), EOF = {}; + var fs = __webpack_require__(65), Writer = __webpack_require__(116), inherits = __webpack_require__(8), EOF = {}; function FileWriter(props) { if (!(this instanceof FileWriter)) throw new Error("FileWriter must be called as constructor."); if ("File" !== props.type || !props.File) throw new Error("Non-file type " + props.type); @@ -43651,7 +46346,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = ProxyWriter; - var Writer = __webpack_require__(104), getType = __webpack_require__(154), inherits = __webpack_require__(7), collect = __webpack_require__(244), fs = __webpack_require__(2); + var Writer = __webpack_require__(116), getType = __webpack_require__(168), inherits = __webpack_require__(8), collect = __webpack_require__(275), fs = __webpack_require__(2); function ProxyWriter(props) { if (!(this instanceof ProxyWriter)) throw new Error("ProxyWriter must be called as constructor."); this.props = props, this._needDrain = !1, Writer.call(this, props); @@ -43681,20 +46376,207 @@ return this._proxy ? this._proxy.end(c) : (this._buffer.push([ "end", [ c ] ]), !1); }; +}, function(module, exports, __webpack_require__) { + const {RarFilesPackage: RarFilesPackage} = __webpack_require__(1285), urlToFileMedia = __webpack_require__(1287), store = __webpack_require__(169), parseQuery = __webpack_require__(278), safeStatelessRegex = __webpack_require__(80), q = new (__webpack_require__(71))((async (task, cb) => { + const {opts: opts, query: query} = task, rarUrls = (function(query) { + let rarUrls = [], key = query.key; + return key && store.get(key) ? rarUrls = store.get(key) : (rarUrls = query.r || [], + "string" == typeof rarUrls && (rarUrls = [ rarUrls ])), rarUrls; + })(query); + try { + rarStreams[task.url] = rarStreams[task.url] || await streamRar(rarUrls, opts); + } catch (e) { + return console.error(e), void cb(null); + } + cb(rarStreams[task.url]); + }), 10), rarStreams = {}, streamRar = async (urls, opts = {}) => { + const rarFiles = []; + let lengths = []; + for (let i = 0; urls[i]; i++) { + const rarFile = await urlToFileMedia(urls[i], lengths, i === urls.length - 1); + lengths.push(rarFile.length), rarFiles.push(rarFile); + } + lengths = null; + const rarStreamPackage = new RarFilesPackage(rarFiles); + (opts.fileMustInclude || []).length || opts.hasOwnProperty("fileIdx") || (opts = { + fileMustInclude: [ /.mkv$|.mp4$|.avi$|.ts$/i ] + }); + const rarStreamOpts = { + filter: function(name, idx) { + return (opts.fileMustInclude || []).length ? !!opts.fileMustInclude.find((reg => (reg = "string" == typeof reg ? new RegExp(reg) : reg, + safeStatelessRegex(name || "", reg, 500)))) : !opts.hasOwnProperty("fileIdx") || opts.fileIdx === idx; + }, + maxFiles: 1 + }; + let innerFiles = []; + try { + innerFiles = await rarStreamPackage.parse(rarStreamOpts); + } catch (e) { + throw Error(e); + } + if (!innerFiles[0]) throw Error("no file matching " + JSON.stringify(opts)); + return innerFiles[0]; + }; + module.exports = async function(req) { + const task = parseQuery(req); + task.url = req.url; + let rarStream = null; + try { + rarStream = await (function(task) { + return new Promise(((resolve, reject) => { + task.id = task.query.key, q.push(task, (rarStream => { + resolve(rarStream); + })); + })); + })(task); + } catch (e) { + console.error(e); + } + return rarStream; + }; +}, function(module, exports, __webpack_require__) { + const TarReader = __webpack_require__(1294), store = (__webpack_require__(61), __webpack_require__(170)), parseQuery = __webpack_require__(279), safeStatelessRegex = __webpack_require__(80), namedQueue = __webpack_require__(71), MergeStreams = __webpack_require__(277).MergeStreams, urlToFileMedia = __webpack_require__(1295), q = new namedQueue((async (task, cb) => { + let {opts: opts, query: query} = task; + const tarUrls = (function(query) { + let tarUrls = [], key = query.key; + return key && store.get(key) ? tarUrls = store.get(key) : (tarUrls = query.r || [], + "string" == typeof tarUrls && (tarUrls = [ tarUrls ])), tarUrls; + })(query); + (opts.fileMustInclude || []).length || opts.hasOwnProperty("fileIdx") || (opts = { + fileMustInclude: [ /.mkv$|.mp4$|.avi$|.ts$/i ] + }); + const tarFiles = []; + let lengths = []; + for (let url of tarUrls) { + let tarFile = null; + try { + tarFile = await urlToFileMedia(url, lengths); + } catch (e) { + return console.error(e), void cb(null); + } + lengths.push(tarFile.length), tarFiles.push(tarFile); + } + lengths = null; + const innerFiles = MergeStreams(tarUrls, tarFiles), reader = new TarReader(innerFiles[0]); + let countFiles = -1; + const files = []; + reader.on("entry", (function(header, entry, next) { + if ("file" === header.type) { + countFiles++; + let validFile = !1; + validFile = (opts.fileMustInclude || []).length ? !!opts.fileMustInclude.find((reg => (reg = "string" == typeof reg ? new RegExp(reg) : reg, + safeStatelessRegex(entry.header.name || "", reg, 500)))) : !opts.hasOwnProperty("fileIdx") || opts.fileIdx === countFiles, + validFile ? (cb(entry), files.push(entry)) : next(); + } else next(); + })), reader.on("finish", (function() { + files || cb(); + })), reader.on("error", (function(err) { + files || cb(), console.error("Error reading tar:", err); + })); + }), 10); + module.exports = async function(req) { + const task = parseQuery(req); + let file = null; + try { + file = await (async function(task) { + return new Promise(((resolve, reject) => { + task.id = task.query.key, q.push(task, (tarStream => { + resolve(tarStream); + })); + })); + })(task); + } catch (e) { + console.error(e); + } + return file; + }; +}, function(module, exports, __webpack_require__) { + const TarReader = __webpack_require__(1301), store = (__webpack_require__(61), __webpack_require__(171)), parseQuery = __webpack_require__(280), safeStatelessRegex = __webpack_require__(80), namedQueue = __webpack_require__(71), zlib = __webpack_require__(43), MergeStreams = (__webpack_require__(3), + __webpack_require__(277).MergeStreams), urlToFileMedia = __webpack_require__(1302), q = new namedQueue((async (task, cb) => { + let {opts: opts, query: query} = task; + const tarUrls = (function(query) { + let tarUrls = [], key = query.key; + return key && store.get(key) ? tarUrls = store.get(key) : (tarUrls = query.r || [], + "string" == typeof tarUrls && (tarUrls = [ tarUrls ])), tarUrls; + })(query); + (opts.fileMustInclude || []).length || opts.hasOwnProperty("fileIdx") || (opts = { + fileMustInclude: [ /.mkv$|.mp4$|.avi$|.ts$/i ] + }); + const tarFiles = []; + let lengths = []; + for (let url of tarUrls) { + let tarFile = null; + try { + tarFile = await urlToFileMedia(url, lengths); + } catch (e) { + return console.error(e), void cb(null); + } + lengths.push(tarFile.length), tarFiles.push(tarFile); + } + let isTar = !1; + if (tarUrls[0]) { + let tarFl = tarUrls[0].url || tarUrls[0]; + tarFl = (tarFl || "").split("?")[0], (tarFl.toLowerCase().includes(".tar.gz") || tarFl.toLowerCase().includes(".tgz")) && (isTar = !0); + } + lengths = null; + const innerFiles = MergeStreams(tarUrls, tarFiles); + let fileStream = null; + try { + fileStream = await innerFiles[0].createReadStream(); + } catch (e) { + return console.error(e), void cb(null); + } + const gzipStream = fileStream.pipe(zlib.createGunzip()); + if (isTar) { + const reader = new TarReader(gzipStream); + let countFiles = -1; + const files = []; + reader.on("entry", (function(header, entry, next) { + if ("file" === header.type) { + countFiles++; + let validFile = !1; + validFile = (opts.fileMustInclude || []).length ? !!opts.fileMustInclude.find((reg => (reg = "string" == typeof reg ? new RegExp(reg) : reg, + safeStatelessRegex(header.name || "", reg, 500)))) : !opts.hasOwnProperty("fileIdx") || opts.fileIdx === countFiles, + validFile ? (entry._filename = header.name, entry._fileSize = header.size, cb(entry), + files.push(entry)) : next(); + } else next(); + })), reader.on("finish", (function() { + files || cb(); + })), reader.on("error", (function(err) { + files || cb(), console.error("Error reading tar:", err); + })); + } else cb(gzipStream); + }), 10); + module.exports = async function(req) { + const task = parseQuery(req); + let file = null; + try { + file = await (async function(task) { + return new Promise(((resolve, reject) => { + task.id = task.query.key, q.push(task, (tarStream => { + resolve(tarStream); + })); + })); + })(task); + } catch (e) { + console.error(e); + } + return file; + }; }, function(module, exports, __webpack_require__) { (function(__dirname) { process.env.TV_ENV && (process.env.CASTING_DISABLED = 1, process.env.DISABLE_CACHING = 1, process.env.NO_CORS = 1), process.env.UNITY_ENV && (process.env.NO_NETWORK_INTERFACES = 1, process.env.CASTING_DISABLED = 1, process.env.DISABLE_CACHING = 1, process.env.NO_CORS = 1), - __webpack_require__(519); - var enginefs = __webpack_require__(155), path = __webpack_require__(4), os = __webpack_require__(23), http = __webpack_require__(11), url = __webpack_require__(6), ip = __webpack_require__(116), mkdirp = __webpack_require__(170), HLS = __webpack_require__(625), moment = __webpack_require__(1), isPositiveInteger = __webpack_require__(369), subtitlesTracks = __webpack_require__(694), subtitlesHash = __webpack_require__(740), https = __webpack_require__(750), proxy = __webpack_require__(751), defaultTrackers = __webpack_require__(752).map((el => `tracker:${el}`)), hwAccelProfiler = __webpack_require__(377).profiler, getTracksData = __webpack_require__(758).default, argv = __webpack_require__(761)(process.argv.slice(2)), apiCertifficateEndpoint = argv["https-cert-endpoint"] || process.env.HTTPS_CERT_ENDPOINT || "https://api.strem.io/api/certificateGet", webUILocation = argv["webui-location"] || process.env.WEBUI_LOCATION || "https://app.strem.io/shell-v4.4/", cache = __webpack_require__(380), searchPaths = { - ffmpeg: [ argv.ffmpeg, process.env.FFMPEG_BIN, path.dirname(process.execPath) + "/ffmpeg", path.dirname(process.execPath) + "\\ffmpeg.exe", path.dirname(process.execPath) + "\\bin\\ffmpeg.exe", "/usr/lib/jellyfin-ffmpeg/ffmpeg", "/usr/bin/ffmpeg", "/usr/local/bin/ffmpeg", "android" !== process.platform ? __webpack_require__(381).ffmpegPath : null ], - ffprobe: [ argv.ffprobe, process.env.FFPROBE_BIN, path.dirname(process.execPath) + "/ffprobe", path.dirname(process.execPath) + "\\ffprobe.exe", path.dirname(process.execPath) + "\\bin\\ffprobe.exe", "/usr/lib/jellyfin-ffmpeg/ffprobe", "/usr/bin/ffprobe", "/usr/local/bin/ffprobe", "android" !== process.platform ? __webpack_require__(381).ffprobePath : null ], + __webpack_require__(565); + var enginefs = __webpack_require__(172), path = __webpack_require__(5), os = __webpack_require__(23), http = __webpack_require__(11), url = __webpack_require__(7), ip = __webpack_require__(127), mkdirp = __webpack_require__(186), HLS = __webpack_require__(667), moment = __webpack_require__(1), isPositiveInteger = __webpack_require__(400), subtitlesTracks = __webpack_require__(733), subtitlesHash = __webpack_require__(794), https = __webpack_require__(804), proxy = __webpack_require__(805), defaultTrackers = __webpack_require__(806).map((el => `tracker:${el}`)), hwAccelProfiler = __webpack_require__(412).profiler, getTracksData = __webpack_require__(812).default, bridge = __webpack_require__(194), argv = __webpack_require__(815)(process.argv.slice(2)), apiCertifficateEndpoint = argv["https-cert-endpoint"] || process.env.HTTPS_CERT_ENDPOINT || "https://api.strem.io/api/certificateGet", webUILocation = argv["webui-location"] || process.env.WEBUI_LOCATION || "https://app.strem.io/shell-v4.4/", cache = __webpack_require__(415), searchPaths = { + ffmpeg: [ argv.ffmpeg, process.env.FFMPEG_BIN, path.dirname(process.execPath) + "/ffmpeg", path.dirname(process.execPath) + "\\ffmpeg.exe", path.dirname(process.execPath) + "\\bin\\ffmpeg.exe", "/usr/lib/jellyfin-ffmpeg/ffmpeg", "/usr/bin/ffmpeg", "/usr/local/bin/ffmpeg", "android" !== process.platform ? __webpack_require__(416).ffmpegPath : null ], + ffprobe: [ argv.ffprobe, process.env.FFPROBE_BIN, path.dirname(process.execPath) + "/ffprobe", path.dirname(process.execPath) + "\\ffprobe.exe", path.dirname(process.execPath) + "\\bin\\ffprobe.exe", "/usr/lib/jellyfin-ffmpeg/ffprobe", "/usr/bin/ffprobe", "/usr/local/bin/ffprobe", "android" !== process.platform ? __webpack_require__(416).ffprobePath : null ], ffsplit: [ path.join(__dirname, "./node_modules/stremio-ffsplit-prebuilt/bin/ffsplit.bin"), process.env.HOME + "/hls-segment-splitter/ffsplit.bin", path.dirname(process.execPath) + "\\bin\\ffsplit.exe" ] }, executables = HLS.locateAllExecutables(searchPaths); - console.log("hls executables located -> ", executables), enginefs.engine = __webpack_require__(762), + console.log("hls executables located -> ", executables), enginefs.engine = __webpack_require__(816), enginefs.loggingEnabled = !0; - var appPath = __webpack_require__(379); + var appPath = __webpack_require__(414); try { mkdirp.sync(appPath, { recursive: !0, @@ -43704,9 +46586,9 @@ console.log("Using app path -> " + appPath), enginefs.router.use((function(req, res, next) { process.env.NO_CORS || !req.headers.origin || req.headers.origin.match(".strem.io(:80)?$") || req.headers.origin.match(".stremio.net(:80)?$") || req.headers.origin.match(".stremio.com(:80)?$") || req.headers.origin.match("stremio-development.netlify.app(:80)?$") || req.headers.origin.match("stremio.github.io(:80)?$") || req.headers.origin.match("gstatic.com") || "https://stremio.github.io" === req.headers.origin || req.headers.origin.match("(127.0.0.1|localhost):11470$") || req.headers.origin.match("peario.xyz") ? enginefs.sendCORSHeaders(req, res, next) : next(); })); - var settings = __webpack_require__(94); + var settings = __webpack_require__(105); if (!process.env.HLS_V2_DISABLED) { - const hlsV2Router = new (__webpack_require__(800))(executables); + const hlsV2Router = new (__webpack_require__(853))(executables); enginefs.router.use("/hlsv2", hlsV2Router); const regexParam = (param, expression) => { enginefs.router.param(param, ((req, res, next, val) => { @@ -43727,7 +46609,7 @@ }, hlsV2Router.handle(req, res, next); })); } - var avSamples = __webpack_require__(882); + var avSamples = __webpack_require__(935); Object.keys(avSamples).forEach((key => { enginefs.router.get(`/samples/${key}.${avSamples[key].container}`, ((req, res, next) => { res.writeHead(200, { @@ -43772,7 +46654,7 @@ }), res.end(JSON.stringify([])); })); })); - var ytdl = __webpack_require__(883); + var ytdl = __webpack_require__(936); function getYt(id, cb) { ytdl.getInfo("http://www.youtube.com/watch?v=" + id, { downloadURL: !0 @@ -43805,7 +46687,7 @@ })); })), !process.env.CASTING_DISABLED && "android" !== process.platform) { console.log("Enabling casting..."); - var casting = new (__webpack_require__(890))(executables); + var casting = new (__webpack_require__(943))(executables); enginefs.router.use("/casting/", casting.middleware); } enginefs.router.get("/subtitlesTracks", (function(req, res) { @@ -43907,10 +46789,12 @@ })); })), enginefs.router.get("/heartbeat", (function(req, res) { res.writeHead(200, { - "content-type": "text/plain" - }), res.end("ok"); + "content-type": "application/json" + }), res.end(JSON.stringify({ + success: !0 + })); })); - var localAddon = __webpack_require__(970); + var localAddon = __webpack_require__(1024); enginefs.router.use("/local-addon", localAddon.addon({ disableCatalogSupport: !settings.localAddonEnabled }).getRouter()), "android" !== process.platform && settings.localAddonEnabled && localAddon.startIndexing(path.join(appPath, "./localFiles")), @@ -43954,10 +46838,14 @@ var app = enginefs.app(), server = (http = __webpack_require__(11), enginefs._server = http.createServer(app)), port = 11470; server.listen(port), server.on("error", (function(err) { port++ < 11474 ? (console.warn(err), server.listen(port)) : console.error(err); - })), http.globalAgent.maxSockets = 40, server.on("listening", (function() { + })), http.globalAgent.maxSockets = 40; + const nzbHttp = __webpack_require__(1088); + server.on("listening", (function() { enginefs.baseUrlLocal = "http://127.0.0.1:" + server.address().port, enginefs.baseUrl = "http://" + ip.address() + ":" + server.address().port, localAddon.setEngineUrl(enginefs.baseUrlLocal), console.log("EngineFS server started at " + enginefs.baseUrlLocal), - hwAccelProfiler(server.address().port); + hwAccelProfiler(server.address().port), bridge.dispatch("status", "ready"); + })), server.on("error", (function(err) { + console.warn(err), bridge.dispatch("status", "error"); })), https.setOptions({ appPath: appPath, apiEndpoint: apiCertifficateEndpoint @@ -43968,7 +46856,7 @@ })), sserver.on("error", (function(err) { console.warn(err); })), argv.open || process.env.OPEN) { - var open = __webpack_require__(1035); + var open = __webpack_require__(1118); server.on("listening", (function() { open(enginefs.baseUrlLocal); })); @@ -44026,10 +46914,19 @@ maxBuffer: .75 }), defaults; }; - const rarHttp = __webpack_require__(1036); + const rarHttp = __webpack_require__(1119); enginefs.router.use("/rar", rarHttp.router()); - const zipHttp = __webpack_require__(1148); - enginefs.router.use("/zip", zipHttp.router()), module.exports = enginefs; + const zipHttp = __webpack_require__(1232); + enginefs.router.use("/zip", zipHttp.router()); + const a7zHttp = __webpack_require__(1283); + enginefs.router.use("/7zip", a7zHttp.router()); + const tarHttp = __webpack_require__(1291); + enginefs.router.use("/tar", tarHttp.router()); + const gzipHttp = __webpack_require__(1298); + enginefs.router.use("/tgz", gzipHttp.router()); + const ftpHttp = __webpack_require__(1305); + enginefs.router.use("/ftp", ftpHttp.router()), enginefs.router.use("/nzb", nzbHttp.router()), + module.exports = enginefs; }).call(this, "/"); }, function(module, exports) { const reduce = Function.bind.call(Function.call, Array.prototype.reduce), isEnumerable = Function.bind.call(Function.call, Object.prototype.propertyIsEnumerable), concat = Function.bind.call(Function.call, Array.prototype.concat), keys = Reflect.ownKeys; @@ -44050,10 +46947,50 @@ }); } return obj; + }), Array.prototype.flat || Object.defineProperty(Array.prototype, "flat", { + value: function(depth) { + return depth = depth || 1, this.reduce((function(flat, toFlatten) { + return flat.concat(Array.isArray(toFlatten) && depth > 1 ? toFlatten.flat(depth - 1) : toFlatten); + }), []); + } + }), Buffer.prototype.readBigInt64LE || (Buffer.prototype.readBigInt64LE = function(offset = 0) { + if (offset < 0 || offset + 8 > this.length) throw new RangeError("Index out of range"); + const bytes = new Array(8); + for (let i = 0; i < 8; i++) bytes[i] = this[offset + i]; + let result = "0"; + for (let i = 7; i >= 0; i--) { + let binary = Number(result).toString(2); + for (;binary.length < 8 * (8 - i); ) binary = "0" + binary; + let byteBinary = bytes[i].toString(2); + for (;byteBinary.length < 8; ) byteBinary = "0" + byteBinary; + result = parseInt(binary + byteBinary, 2).toString(); + } + if (128 & bytes[7]) { + const max = "18446744073709551616"; + let difference = "", borrow = 0; + for (let i = result.length - 1; i >= 0; i--) { + let diff = (i < max.length ? parseInt(max[i]) : 0) - (i < result.length ? parseInt(result[i]) : 0) - borrow; + diff < 0 ? (diff += 10, borrow = 1) : borrow = 0, difference = diff.toString() + difference; + } + result = "-" + difference; + } + return result; + }), Buffer.prototype.readBigUInt64LE || (Buffer.prototype.readBigUInt64LE = function(offset) { + return (function(buffer, offset) { + if (!(buffer instanceof Buffer)) throw new TypeError("First argument must be a Buffer"); + if (8 + (offset >>>= 0) > buffer.length) throw new RangeError("Index out of range"); + const lo = buffer.readUInt32LE(offset), hi = buffer.readUInt32LE(offset + 4); + if (hi < 2097152) return 4294967296 * hi + lo; + { + const hiStr = hi.toString(16).padStart(8, "0"), loStr = lo.toString(16).padStart(8, "0"); + let result = "0x" + hiStr + loStr; + return result = 4294967296 * parseInt(hiStr, 16) + parseInt(loStr, 16), result.toString(); + } + })(this, offset); }); }, function(module, exports, __webpack_require__) { "use strict"; - var iconvLite = __webpack_require__(68), Iconv = __webpack_require__(538); + var iconvLite = __webpack_require__(66), Iconv = __webpack_require__(584); function convertIconvLite(str, to, from) { return "UTF-8" === to ? iconvLite.decode(str, from) : "UTF-8" === from ? iconvLite.encode(str, to) : iconvLite.encode(iconvLite.decode(str, from), to); } @@ -44104,7 +47041,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - for (var modules = [ __webpack_require__(523), __webpack_require__(524), __webpack_require__(525), __webpack_require__(526), __webpack_require__(527), __webpack_require__(528), __webpack_require__(529), __webpack_require__(530) ], i = 0; i < modules.length; i++) for (var enc in module = modules[i]) Object.prototype.hasOwnProperty.call(module, enc) && (exports[enc] = module[enc]); + for (var modules = [ __webpack_require__(569), __webpack_require__(570), __webpack_require__(571), __webpack_require__(572), __webpack_require__(573), __webpack_require__(574), __webpack_require__(575), __webpack_require__(576) ], i = 0; i < modules.length; i++) for (var enc in module = modules[i]) Object.prototype.hasOwnProperty.call(module, enc) && (exports[enc] = module[enc]); }, function(module, exports, __webpack_require__) { "use strict"; var Buffer = __webpack_require__(14).Buffer; @@ -44139,7 +47076,7 @@ }, _internal: InternalCodec }, InternalCodec.prototype.encoder = InternalEncoder, InternalCodec.prototype.decoder = InternalDecoder; - var StringDecoder = __webpack_require__(156).StringDecoder; + var StringDecoder = __webpack_require__(173).StringDecoder; function InternalDecoder(options, codec) { StringDecoder.call(this, codec.enc); } @@ -45165,7 +48102,7 @@ shiftjis: { type: "_dbcs", table: function() { - return __webpack_require__(531); + return __webpack_require__(577); }, encodeAdd: { "¥": 92, @@ -45189,7 +48126,7 @@ eucjp: { type: "_dbcs", table: function() { - return __webpack_require__(532); + return __webpack_require__(578); }, encodeAdd: { "¥": 92, @@ -45208,13 +48145,13 @@ cp936: { type: "_dbcs", table: function() { - return __webpack_require__(157); + return __webpack_require__(174); } }, gbk: { type: "_dbcs", table: function() { - return __webpack_require__(157).concat(__webpack_require__(245)); + return __webpack_require__(174).concat(__webpack_require__(281)); } }, xgbk: "gbk", @@ -45222,10 +48159,10 @@ gb18030: { type: "_dbcs", table: function() { - return __webpack_require__(157).concat(__webpack_require__(245)); + return __webpack_require__(174).concat(__webpack_require__(281)); }, gb18030: function() { - return __webpack_require__(533); + return __webpack_require__(579); }, encodeSkipVals: [ 128 ], encodeAdd: { @@ -45239,7 +48176,7 @@ cp949: { type: "_dbcs", table: function() { - return __webpack_require__(534); + return __webpack_require__(580); } }, cseuckr: "cp949", @@ -45256,14 +48193,14 @@ cp950: { type: "_dbcs", table: function() { - return __webpack_require__(246); + return __webpack_require__(282); } }, big5: "big5hkscs", big5hkscs: { type: "_dbcs", table: function() { - return __webpack_require__(246).concat(__webpack_require__(535)); + return __webpack_require__(282).concat(__webpack_require__(581)); }, encodeSkipVals: [ 41676 ] }, @@ -45443,7 +48380,7 @@ "use strict"; var Iconv; try { - Iconv = __webpack_require__(539)("iconv").Iconv; + Iconv = __webpack_require__(585)("iconv").Iconv; } catch (E) {} module.exports = Iconv; }, function(module, exports) { @@ -45454,10 +48391,10 @@ webpackEmptyContext.keys = function() { return []; }, webpackEmptyContext.resolve = webpackEmptyContext, module.exports = webpackEmptyContext, - webpackEmptyContext.id = 539; + webpackEmptyContext.id = 585; }, function(module, exports, __webpack_require__) { "use strict"; - var debug = __webpack_require__(8)("connect:dispatcher"), EventEmitter = __webpack_require__(5).EventEmitter, finalhandler = __webpack_require__(544), http = __webpack_require__(11), merge = __webpack_require__(60), parseUrl = __webpack_require__(46); + var debug = __webpack_require__(9)("connect:dispatcher"), EventEmitter = __webpack_require__(4).EventEmitter, finalhandler = __webpack_require__(590), http = __webpack_require__(11), merge = __webpack_require__(67), parseUrl = __webpack_require__(49); module.exports = function() { function app(req, res, next) { app.handle(req, res, next); @@ -45532,7 +48469,7 @@ return !r && "undefined" != typeof process && "env" in process && (r = process.env.DEBUG), r; } - (exports = module.exports = __webpack_require__(247)).log = function() { + (exports = module.exports = __webpack_require__(283)).log = function() { return "object" == typeof console && console.log && Function.prototype.apply.call(console.log, console, arguments); }, exports.formatArgs = function(args) { var useColors = this.useColors; @@ -45629,8 +48566,8 @@ throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val)); }; }, function(module, exports, __webpack_require__) { - var tty = __webpack_require__(105), util = __webpack_require__(0); - (exports = module.exports = __webpack_require__(247)).init = function(debug) { + var tty = __webpack_require__(117), util = __webpack_require__(0); + (exports = module.exports = __webpack_require__(283)).init = function(debug) { debug.inspectOpts = {}; for (var keys = Object.keys(exports.inspectOpts), i = 0; i < keys.length; i++) debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; }, exports.log = function() { @@ -45671,7 +48608,7 @@ case "PIPE": case "TCP": - (stream = new (__webpack_require__(42).Socket)({ + (stream = new (__webpack_require__(39).Socket)({ fd: fd, readable: !1, writable: !0 @@ -45695,7 +48632,7 @@ }, exports.enable(load()); }, function(module, exports, __webpack_require__) { "use strict"; - var debug = __webpack_require__(8)("finalhandler"), encodeUrl = __webpack_require__(83), escapeHtml = __webpack_require__(84), onFinished = __webpack_require__(85), parseUrl = __webpack_require__(46), statuses = __webpack_require__(546), unpipe = __webpack_require__(158), DOUBLE_SPACE_REGEXP = /\x20{2}/g, NEWLINE_REGEXP = /\n/g, defer = "function" == typeof setImmediate ? setImmediate : function(fn) { + var debug = __webpack_require__(9)("finalhandler"), encodeUrl = __webpack_require__(94), escapeHtml = __webpack_require__(95), onFinished = __webpack_require__(96), parseUrl = __webpack_require__(49), statuses = __webpack_require__(592), unpipe = __webpack_require__(175), DOUBLE_SPACE_REGEXP = /\x20{2}/g, NEWLINE_REGEXP = /\n/g, defer = "function" == typeof setImmediate ? setImmediate : function(fn) { process.nextTick(fn.bind.apply(fn, arguments)); }, isFinished = onFinished.isFinished; function headersSent(res) { @@ -45781,7 +48718,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var codes = __webpack_require__(547); + var codes = __webpack_require__(593); function status(code) { if ("number" == typeof code) { if (!status[code]) throw new Error("invalid status code: " + code); @@ -45918,7 +48855,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var bytes = __webpack_require__(86), contentType = __webpack_require__(107), createError = __webpack_require__(87), debug = __webpack_require__(8)("body-parser:json"), read = __webpack_require__(110), typeis = __webpack_require__(88); + var bytes = __webpack_require__(97), contentType = __webpack_require__(118), createError = __webpack_require__(98), debug = __webpack_require__(9)("body-parser:json"), read = __webpack_require__(121), typeis = __webpack_require__(99); module.exports = function(options) { var opts = options || {}, limit = "number" != typeof opts.limit ? bytes.parse(opts.limit || "100kb") : opts.limit, inflate = !1 !== opts.inflate, reviver = opts.reviver, strict = !1 !== opts.strict, type = opts.type || "application/json", verify = opts.verify || !1; if (!1 !== verify && "function" != typeof verify) throw new TypeError("option verify must be function"); @@ -46077,7 +49014,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var bytes = __webpack_require__(86), createError = __webpack_require__(87), iconv = __webpack_require__(68), unpipe = __webpack_require__(158); + var bytes = __webpack_require__(97), createError = __webpack_require__(98), iconv = __webpack_require__(66), unpipe = __webpack_require__(175); module.exports = function(stream, options, callback) { var done = callback, opts = options || {}; if (!0 !== options && "string" != typeof options || (opts = { @@ -46215,7 +49152,7 @@ return obj.parameters = params, obj; }; }, function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(557); + module.exports = __webpack_require__(603); }, function(module) { module.exports = { "application/1d-interleaved-parityfec": { @@ -54051,7 +56988,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var bytes = __webpack_require__(86), debug = __webpack_require__(8)("body-parser:raw"), read = __webpack_require__(110), typeis = __webpack_require__(88); + var bytes = __webpack_require__(97), debug = __webpack_require__(9)("body-parser:raw"), read = __webpack_require__(121), typeis = __webpack_require__(99); module.exports = function(options) { var opts = options || {}, inflate = !1 !== opts.inflate, limit = "number" != typeof opts.limit ? bytes.parse(opts.limit || "100kb") : opts.limit, type = opts.type || "application/octet-stream", verify = opts.verify || !1; if (!1 !== verify && "function" != typeof verify) throw new TypeError("option verify must be function"); @@ -54075,7 +57012,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var bytes = __webpack_require__(86), contentType = __webpack_require__(107), debug = __webpack_require__(8)("body-parser:text"), read = __webpack_require__(110), typeis = __webpack_require__(88); + var bytes = __webpack_require__(97), contentType = __webpack_require__(118), debug = __webpack_require__(9)("body-parser:text"), read = __webpack_require__(121), typeis = __webpack_require__(99); module.exports = function(options) { var opts = options || {}, defaultCharset = opts.defaultCharset || "utf-8", inflate = !1 !== opts.inflate, limit = "number" != typeof opts.limit ? bytes.parse(opts.limit || "100kb") : opts.limit, type = opts.type || "text/plain", verify = opts.verify || !1; if (!1 !== verify && "function" != typeof verify) throw new TypeError("option verify must be function"); @@ -54110,7 +57047,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var bytes = __webpack_require__(86), contentType = __webpack_require__(107), createError = __webpack_require__(87), debug = __webpack_require__(8)("body-parser:urlencoded"), deprecate = __webpack_require__(47)("body-parser"), read = __webpack_require__(110), typeis = __webpack_require__(88); + var bytes = __webpack_require__(97), contentType = __webpack_require__(118), createError = __webpack_require__(98), debug = __webpack_require__(9)("body-parser:urlencoded"), deprecate = __webpack_require__(51)("body-parser"), read = __webpack_require__(121), typeis = __webpack_require__(99); module.exports = function(options) { var opts = options || {}; void 0 === opts.extended && deprecate("undefined extended: provide extended option"); @@ -54189,7 +57126,7 @@ if (void 0 !== mod) return mod.parse; switch (name) { case "qs": - mod = __webpack_require__(160); + mod = __webpack_require__(177); break; case "querystring": @@ -54199,7 +57136,7 @@ } }, function(module, exports, __webpack_require__) { "use strict"; - var utils = __webpack_require__(249), formats = __webpack_require__(250), has = Object.prototype.hasOwnProperty, arrayPrefixGenerators = { + var utils = __webpack_require__(285), formats = __webpack_require__(286), has = Object.prototype.hasOwnProperty, arrayPrefixGenerators = { brackets: function(prefix) { return prefix + "[]"; }, @@ -54294,7 +57231,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var utils = __webpack_require__(249), has = Object.prototype.hasOwnProperty, defaults = { + var utils = __webpack_require__(285), has = Object.prototype.hasOwnProperty, defaults = { allowDots: !1, allowPrototypes: !1, arrayLimit: 20, @@ -54385,7 +57322,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var debug = __webpack_require__(8)("router:route"), flatten = __webpack_require__(251), Layer = __webpack_require__(252), methods = __webpack_require__(61), slice = Array.prototype.slice; + var debug = __webpack_require__(9)("router:route"), flatten = __webpack_require__(287), Layer = __webpack_require__(288), methods = __webpack_require__(68), slice = Array.prototype.slice; function Route(path) { debug("new %o", path), this.path = path, this.stack = [], this.methods = {}; } @@ -54444,7 +57381,7 @@ return obj; }); }, function(module, exports, __webpack_require__) { - __webpack_require__(4); + __webpack_require__(5); var fs = __webpack_require__(2); function Mime() { this.types = Object.create(null), this.extensions = Object.create(null); @@ -54470,7 +57407,7 @@ return this.extensions[type]; }; var mime = new Mime; - mime.define(__webpack_require__(566)), mime.default_type = mime.lookup("bin"), mime.Mime = Mime, + mime.define(__webpack_require__(612)), mime.default_type = mime.lookup("bin"), mime.Mime = Mime, mime.charsets = { lookup: function(mimeType, fallback) { return /^text\/|^application\/(javascript|json)/.test(mimeType) ? "UTF-8" : fallback; @@ -55324,8 +58261,8 @@ "x-conference/x-cooltalk": [ "ice" ] }; }, function(module, exports, __webpack_require__) { - var DHT = __webpack_require__(568), Tracker = __webpack_require__(583); - __webpack_require__(5), module.exports = function(sources, swarm, options) { + var DHT = __webpack_require__(614), Tracker = __webpack_require__(625); + __webpack_require__(4), module.exports = function(sources, swarm, options) { var self = this, uniq = {}; self.options = options, (sources = sources.map((function(src) { if ("string" == typeof src) return src.match("^dht:") ? new DHT(src.split(":")[1], options) : src.match("^tracker:") ? new Tracker(src.slice("tracker:".length), {}, swarm.infoHash) : void 0; @@ -55378,7 +58315,7 @@ })), swarm.peerSearch = self; }; }, function(module, exports, __webpack_require__) { - var bittorrentDHT = __webpack_require__(569), EventEmitter = __webpack_require__(5).EventEmitter; + var bittorrentDHT = __webpack_require__(615), EventEmitter = __webpack_require__(4).EventEmitter; function DHT(infoHash) { var self = this; EventEmitter.call(this); @@ -55397,10 +58334,10 @@ } DHT.prototype.__proto__ = EventEmitter.prototype, module.exports = DHT; }, function(module, exports, __webpack_require__) { - var Client = __webpack_require__(254), Server = __webpack_require__(582); + var Client = __webpack_require__(290), Server = __webpack_require__(624); module.exports = Client, module.exports.Client = Client, module.exports.Server = Server; }, function(module, exports, __webpack_require__) { - var Buffer = __webpack_require__(90).Buffer; + var Buffer = __webpack_require__(100).Buffer; function encode(data, buffer, offset) { var buffers = [], result = null; return encode._encode(buffers, data), result = Buffer.concat(buffers), encode.bytes = result.length, @@ -55502,104 +58439,7 @@ }, module.exports = decode; }, function(module, exports, __webpack_require__) { "use strict"; - "undefined" == typeof process || "renderer" === process.type || !0 === process.browser || process.__nwjs ? module.exports = __webpack_require__(573) : module.exports = __webpack_require__(574); -}, function(module, exports, __webpack_require__) { - "use strict"; - function _typeof(obj) { - return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { - return typeof obj; - } : function(obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, _typeof(obj); - } - exports.log = function() { - var _console; - return "object" === ("undefined" == typeof console ? "undefined" : _typeof(console)) && console.log && (_console = console).log.apply(_console, arguments); - }, exports.formatArgs = function(args) { - if (args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module.exports.humanize(this.diff), - this.useColors) { - var c = "color: " + this.color; - args.splice(1, 0, c, "color: inherit"); - var index = 0, lastC = 0; - args[0].replace(/%[a-zA-Z%]/g, (function(match) { - "%%" !== match && (index++, "%c" === match && (lastC = index)); - })), args.splice(lastC, 0, c); - } - }, exports.save = function(namespaces) { - try { - namespaces ? exports.storage.setItem("debug", namespaces) : exports.storage.removeItem("debug"); - } catch (error) {} - }, exports.load = function() { - var r; - try { - r = exports.storage.getItem("debug"); - } catch (error) {} - return !r && "undefined" != typeof process && "env" in process && (r = process.env.DEBUG), - r; - }, exports.useColors = function() { - return !("undefined" == typeof window || !window.process || "renderer" !== window.process.type && !window.process.__nwjs) || ("undefined" == typeof navigator || !navigator.userAgent || !navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) && ("undefined" != typeof document && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || "undefined" != typeof window && window.console && (window.console.firebug || window.console.exception && window.console.table) || "undefined" != typeof navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || "undefined" != typeof navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); - }, exports.storage = (function() { - try { - return localStorage; - } catch (error) {} - })(), exports.colors = [ "#0000CC", "#0000FF", "#0033CC", "#0033FF", "#0066CC", "#0066FF", "#0099CC", "#0099FF", "#00CC00", "#00CC33", "#00CC66", "#00CC99", "#00CCCC", "#00CCFF", "#3300CC", "#3300FF", "#3333CC", "#3333FF", "#3366CC", "#3366FF", "#3399CC", "#3399FF", "#33CC00", "#33CC33", "#33CC66", "#33CC99", "#33CCCC", "#33CCFF", "#6600CC", "#6600FF", "#6633CC", "#6633FF", "#66CC00", "#66CC33", "#9900CC", "#9900FF", "#9933CC", "#9933FF", "#99CC00", "#99CC33", "#CC0000", "#CC0033", "#CC0066", "#CC0099", "#CC00CC", "#CC00FF", "#CC3300", "#CC3333", "#CC3366", "#CC3399", "#CC33CC", "#CC33FF", "#CC6600", "#CC6633", "#CC9900", "#CC9933", "#CCCC00", "#CCCC33", "#FF0000", "#FF0033", "#FF0066", "#FF0099", "#FF00CC", "#FF00FF", "#FF3300", "#FF3333", "#FF3366", "#FF3399", "#FF33CC", "#FF33FF", "#FF6600", "#FF6633", "#FF9900", "#FF9933", "#FFCC00", "#FFCC33" ], - module.exports = __webpack_require__(255)(exports), module.exports.formatters.j = function(v) { - try { - return JSON.stringify(v); - } catch (error) { - return "[UnexpectedJSONParseError]: " + error.message; - } - }; -}, function(module, exports, __webpack_require__) { - "use strict"; - var tty = __webpack_require__(105), util = __webpack_require__(0); - exports.init = function(debug) { - debug.inspectOpts = {}; - for (var keys = Object.keys(exports.inspectOpts), i = 0; i < keys.length; i++) debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; - }, exports.log = function() { - return process.stderr.write(util.format.apply(util, arguments) + "\n"); - }, exports.formatArgs = function(args) { - var name = this.namespace; - if (this.useColors) { - var c = this.color, colorCode = "[3" + (c < 8 ? c : "8;5;" + c), prefix = " ".concat(colorCode, ";1m").concat(name, " "); - args[0] = prefix + args[0].split("\n").join("\n" + prefix), args.push(colorCode + "m+" + module.exports.humanize(this.diff) + ""); - } else args[0] = (exports.inspectOpts.hideDate ? "" : (new Date).toISOString() + " ") + name + " " + args[0]; - }, exports.save = function(namespaces) { - namespaces ? process.env.DEBUG = namespaces : delete process.env.DEBUG; - }, exports.load = function() { - return process.env.DEBUG; - }, exports.useColors = function() { - return "colors" in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty.isatty(process.stderr.fd); - }, exports.colors = [ 6, 2, 3, 4, 5, 1 ]; - try { - var supportsColor = __webpack_require__(257); - supportsColor && (supportsColor.stderr || supportsColor).level >= 2 && (exports.colors = [ 20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, 63, 68, 69, 74, 75, 76, 77, 78, 79, 80, 81, 92, 93, 98, 99, 112, 113, 128, 129, 134, 135, 148, 149, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 178, 179, 184, 185, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 214, 215, 220, 221 ]); - } catch (error) {} - exports.inspectOpts = Object.keys(process.env).filter((function(key) { - return /^debug_/i.test(key); - })).reduce((function(obj, key) { - var prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (function(_, k) { - return k.toUpperCase(); - })), val = process.env[key]; - return val = !!/^(yes|on|true|enabled)$/i.test(val) || !/^(no|off|false|disabled)$/i.test(val) && ("null" === val ? null : Number(val)), - obj[prop] = val, obj; - }), {}), module.exports = __webpack_require__(255)(exports); - var formatters = module.exports.formatters; - formatters.o = function(v) { - return this.inspectOpts.colors = this.useColors, util.inspect(v, this.inspectOpts).replace(/\s*\n\s*/g, " "); - }, formatters.O = function(v) { - return this.inspectOpts.colors = this.useColors, util.inspect(v, this.inspectOpts); - }; -}, function(module, exports, __webpack_require__) { - "use strict"; - module.exports = (flag, argv) => { - argv = argv || process.argv; - const prefix = flag.startsWith("-") ? "" : 1 === flag.length ? "-" : "--", pos = argv.indexOf(prefix + flag), terminatorPos = argv.indexOf("--"); - return -1 !== pos && (-1 === terminatorPos || pos < terminatorPos); - }; -}, function(module, exports, __webpack_require__) { - "use strict"; - var bufferEquals = __webpack_require__(112), randomBytes = __webpack_require__(113), EventEmitter = __webpack_require__(5).EventEmitter, inherits = __webpack_require__(7); + var bufferEquals = __webpack_require__(123), randomBytes = __webpack_require__(124), EventEmitter = __webpack_require__(4).EventEmitter, inherits = __webpack_require__(8); function KBucket(options) { if (EventEmitter.call(this), options = options || {}, this.localNodeId = options.localNodeId || randomBytes(20), !Buffer.isBuffer(this.localNodeId)) throw new TypeError("localNodeId is not a Buffer"); @@ -55697,7 +58537,7 @@ node.contacts.push(selection), this.emit("updated", incumbent, selection)); }; }, function(module, exports, __webpack_require__) { - var socket = __webpack_require__(578), KBucket = __webpack_require__(580), equals = __webpack_require__(112), events = __webpack_require__(5), randombytes = __webpack_require__(113), util = __webpack_require__(0), Buffer = __webpack_require__(90).Buffer, BOOTSTRAP_NODES = [ { + var socket = __webpack_require__(620), KBucket = __webpack_require__(622), equals = __webpack_require__(123), events = __webpack_require__(4), randombytes = __webpack_require__(124), util = __webpack_require__(0), Buffer = __webpack_require__(100).Buffer, BOOTSTRAP_NODES = [ { host: "router.bittorrent.com", port: 6881 }, { @@ -55874,7 +58714,7 @@ this.socket.on(evt, kick), kick(); }; }, function(module, exports, __webpack_require__) { - var dgram = __webpack_require__(69), bencode = __webpack_require__(164), isIP = __webpack_require__(42).isIP, dns = __webpack_require__(579), util = __webpack_require__(0), events = __webpack_require__(5), Buffer = __webpack_require__(90).Buffer, equals = __webpack_require__(112), ETIMEDOUT = new Error("Query timed out"); + var dgram = __webpack_require__(79), bencode = __webpack_require__(181), isIP = __webpack_require__(39).isIP, dns = __webpack_require__(621), util = __webpack_require__(0), events = __webpack_require__(4), Buffer = __webpack_require__(100).Buffer, equals = __webpack_require__(123), ETIMEDOUT = new Error("Query timed out"); ETIMEDOUT.code = "ETIMEDOUT"; var EUNEXPECTEDNODE = new Error("Unexpected node id"); function RPC(opts) { @@ -55989,7 +58829,7 @@ module.exports = require("dns"); }, function(module, exports, __webpack_require__) { "use strict"; - var randomBytes = __webpack_require__(113), EventEmitter = __webpack_require__(5).EventEmitter, inherits = __webpack_require__(7); + var randomBytes = __webpack_require__(124), EventEmitter = __webpack_require__(4).EventEmitter, inherits = __webpack_require__(8); function arrayEquals(array1, array2) { if (array1 === array2) return !0; if (array1.length !== array2.length) return !1; @@ -56097,7 +58937,7 @@ node.contacts.push(selection), this.emit("updated", incumbent, selection)); }; }, function(module, exports, __webpack_require__) { - var events = __webpack_require__(5), inherits = __webpack_require__(7); + var events = __webpack_require__(4), inherits = __webpack_require__(8); function LRU(opts) { if (!(this instanceof LRU)) return new LRU(opts); "number" == typeof opts && (opts = { @@ -56163,9 +59003,9 @@ } }; }, function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(254); + module.exports = __webpack_require__(290); }, function(module, exports, __webpack_require__) { - var trackerCli = __webpack_require__(584), EventEmitter = __webpack_require__(5).EventEmitter; + var trackerCli = __webpack_require__(626), EventEmitter = __webpack_require__(4).EventEmitter; function Tracker(url, opts, infoHash) { var self = this; EventEmitter.call(this); @@ -56183,11 +59023,11 @@ } Tracker.prototype.__proto__ = EventEmitter.prototype, module.exports = Tracker; }, function(module, exports, __webpack_require__) { - var Client = __webpack_require__(585), Server = __webpack_require__(611); + var Client = __webpack_require__(627), Server = __webpack_require__(653); module.exports = Client, module.exports.Client = Client, module.exports.Server = Server; }, function(module, exports, __webpack_require__) { module.exports = Client; - var EventEmitter = __webpack_require__(5).EventEmitter, debug = __webpack_require__(8)("bittorrent-tracker"), inherits = __webpack_require__(7), once = __webpack_require__(34), parallel = __webpack_require__(586), uniq = __webpack_require__(114), url = __webpack_require__(6), common = __webpack_require__(50), HTTPTracker = __webpack_require__(589), UDPTracker = __webpack_require__(595), WebSocketTracker = __webpack_require__(597); + var EventEmitter = __webpack_require__(4).EventEmitter, debug = __webpack_require__(9)("bittorrent-tracker"), inherits = __webpack_require__(8), once = __webpack_require__(35), parallel = __webpack_require__(628), uniq = __webpack_require__(125), url = __webpack_require__(7), common = __webpack_require__(55), HTTPTracker = __webpack_require__(631), UDPTracker = __webpack_require__(637), WebSocketTracker = __webpack_require__(639); function Client(peerId, port, torrent, opts) { var self = this; if (!(self instanceof Client)) return new Client(peerId, port, torrent, opts); @@ -56344,7 +59184,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = HTTPTracker; - var bencode = __webpack_require__(258), compact2string = __webpack_require__(259), debug = __webpack_require__(8)("bittorrent-tracker:http-tracker"), get = __webpack_require__(593), inherits = __webpack_require__(7), common = __webpack_require__(50), Tracker = __webpack_require__(167), HTTP_SCRAPE_SUPPORT = /\/(announce)[^\/]*$/; + var bencode = __webpack_require__(291), compact2string = __webpack_require__(292), debug = __webpack_require__(9)("bittorrent-tracker:http-tracker"), get = __webpack_require__(635), inherits = __webpack_require__(8), common = __webpack_require__(55), Tracker = __webpack_require__(184), HTTP_SCRAPE_SUPPORT = /\/(announce)[^\/]*$/; function HTTPTracker(client, announceUrl, opts) { var m; Tracker.call(this, client, announceUrl), debug("new http tracker %s", announceUrl), @@ -56483,7 +59323,7 @@ buffers.push(buff_e); }, module.exports = encode; }, function(module, exports, __webpack_require__) { - var Dict = __webpack_require__(592); + var Dict = __webpack_require__(634); function decode(data, encoding) { return decode.position = 0, decode.encoding = encoding || null, decode.data = Buffer.isBuffer(data) ? data : new Buffer(data), decode.next(); @@ -56537,7 +59377,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = simpleGet; - var concat = __webpack_require__(260), http = __webpack_require__(11), https = __webpack_require__(21), once = __webpack_require__(34), querystring = __webpack_require__(24), decompressResponse = __webpack_require__(261), url = __webpack_require__(6); + var concat = __webpack_require__(293), http = __webpack_require__(11), https = __webpack_require__(21), once = __webpack_require__(35), querystring = __webpack_require__(24), decompressResponse = __webpack_require__(294), url = __webpack_require__(7); function simpleGet(opts, cb) { if (opts = "string" == typeof opts ? { url: opts @@ -56602,7 +59442,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = UDPTracker; - var BN = __webpack_require__(596), compact2string = __webpack_require__(259), debug = __webpack_require__(8)("bittorrent-tracker:udp-tracker"), dgram = __webpack_require__(69), hat = __webpack_require__(91), inherits = __webpack_require__(7), url = __webpack_require__(6), common = __webpack_require__(50), Tracker = __webpack_require__(167); + var BN = __webpack_require__(638), compact2string = __webpack_require__(292), debug = __webpack_require__(9)("bittorrent-tracker:udp-tracker"), dgram = __webpack_require__(79), hat = __webpack_require__(101), inherits = __webpack_require__(8), url = __webpack_require__(7), common = __webpack_require__(55), Tracker = __webpack_require__(184); function UDPTracker(client, announceUrl, opts) { Tracker.call(this, client, announceUrl), debug("new udp tracker %s", announceUrl), this.cleanupFns = []; @@ -57771,10 +60611,10 @@ return this.imod(a._invmp(this.m).mul(this.r2))._forceRed(this); }; })(module, this); - }).call(this, __webpack_require__(62)(module)); + }).call(this, __webpack_require__(69)(module)); }, function(module, exports, __webpack_require__) { module.exports = WebSocketTracker; - var debug = __webpack_require__(8)("bittorrent-tracker:websocket-tracker"), hat = __webpack_require__(91), inherits = __webpack_require__(7), Peer = __webpack_require__(598), Socket = __webpack_require__(600), common = __webpack_require__(50), Tracker = __webpack_require__(167), socketPool = {}; + var debug = __webpack_require__(9)("bittorrent-tracker:websocket-tracker"), hat = __webpack_require__(101), inherits = __webpack_require__(8), Peer = __webpack_require__(640), Socket = __webpack_require__(642), common = __webpack_require__(55), Tracker = __webpack_require__(184), socketPool = {}; function WebSocketTracker(client, announceUrl, opts) { Tracker.call(this, client, announceUrl), debug("new websocket tracker %s", announceUrl), this.peers = {}, this.socket = null, this.reconnecting = !1, this._openSocket(); @@ -57906,7 +60746,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = Peer; - var debug = __webpack_require__(8)("simple-peer"), getBrowserRTC = __webpack_require__(599), hat = __webpack_require__(91), inherits = __webpack_require__(7), isTypedArray = __webpack_require__(168), once = __webpack_require__(34), stream = __webpack_require__(3); + var debug = __webpack_require__(9)("simple-peer"), getBrowserRTC = __webpack_require__(641), hat = __webpack_require__(101), inherits = __webpack_require__(8), isTypedArray = __webpack_require__(185), once = __webpack_require__(35), stream = __webpack_require__(3); function Peer(opts) { var self = this; if (!(self instanceof Peer)) return new Peer(opts); @@ -58160,7 +61000,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = Socket; - var debug = __webpack_require__(8)("simple-websocket"), inherits = __webpack_require__(7), isTypedArray = __webpack_require__(168), stream = __webpack_require__(3), ws = __webpack_require__(262), WebSocket = "undefined" != typeof window ? window.WebSocket : ws; + var debug = __webpack_require__(9)("simple-websocket"), inherits = __webpack_require__(8), isTypedArray = __webpack_require__(185), stream = __webpack_require__(3), ws = __webpack_require__(295), WebSocket = "undefined" != typeof window ? window.WebSocket : ws; function Socket(url, opts) { var self = this; if (!(self instanceof Socket)) return new Socket(url, opts); @@ -58332,9 +61172,9 @@ "use strict"; var isValidUTF8; try { - isValidUTF8 = __webpack_require__(605); + isValidUTF8 = __webpack_require__(647); } catch (e) { - isValidUTF8 = __webpack_require__(606); + isValidUTF8 = __webpack_require__(648); } module.exports = "object" == typeof isValidUTF8 ? isValidUTF8.Validation.isValidUTF8 : isValidUTF8; }, function(module, exports) { @@ -58374,7 +61214,7 @@ this._buffer = len ? new Buffer(len) : null), this._offset = 0, this._used = 0; }, module.exports = BufferPool; }, function(module, exports, __webpack_require__) { - var events = __webpack_require__(5), util = __webpack_require__(0); + var events = __webpack_require__(4), util = __webpack_require__(0); function Sender(socket) { if (this instanceof Sender == 0) throw new TypeError("Classes can't be function-called"); events.EventEmitter.call(this), this.socket = socket, this.continuationFrame = !1, @@ -58461,8 +61301,8 @@ this.dead || (this.state = 0, this.buffers = [], this.messageEnd = -1, this.spanLength = 0); }; }, function(module, exports, __webpack_require__) { - var util = __webpack_require__(0), events = __webpack_require__(5), http = __webpack_require__(11), crypto = __webpack_require__(9), Options = __webpack_require__(264), WebSocket = __webpack_require__(263), Extensions = __webpack_require__(269), PerMessageDeflate = __webpack_require__(115), url = (__webpack_require__(92), - __webpack_require__(6)); + var util = __webpack_require__(0), events = __webpack_require__(4), http = __webpack_require__(11), crypto = __webpack_require__(6), Options = __webpack_require__(297), WebSocket = __webpack_require__(296), Extensions = __webpack_require__(302), PerMessageDeflate = __webpack_require__(126), url = (__webpack_require__(70), + __webpack_require__(7)); function WebSocketServer(options, callback) { if (this instanceof WebSocketServer == 0) return new WebSocketServer(options, callback); if (events.EventEmitter.call(this), !(options = new Options({ @@ -58701,7 +61541,7 @@ }, module.exports = WebSocketServer; }, function(module, exports, __webpack_require__) { module.exports = Server; - var bencode = __webpack_require__(258), debug = __webpack_require__(8)("bittorrent-tracker"), dgram = __webpack_require__(69), EventEmitter = __webpack_require__(5).EventEmitter, http = __webpack_require__(11), inherits = __webpack_require__(7), series = __webpack_require__(612), string2compact = __webpack_require__(613), WebSocketServer = __webpack_require__(262).Server, common = __webpack_require__(50), Swarm = __webpack_require__(615), parseHttpRequest = __webpack_require__(617), parseUdpRequest = __webpack_require__(618), parseWebSocketRequest = __webpack_require__(620); + var bencode = __webpack_require__(291), debug = __webpack_require__(9)("bittorrent-tracker"), dgram = __webpack_require__(79), EventEmitter = __webpack_require__(4).EventEmitter, http = __webpack_require__(11), inherits = __webpack_require__(8), series = __webpack_require__(654), string2compact = __webpack_require__(655), WebSocketServer = __webpack_require__(295).Server, common = __webpack_require__(55), Swarm = __webpack_require__(657), parseHttpRequest = __webpack_require__(659), parseUdpRequest = __webpack_require__(660), parseWebSocketRequest = __webpack_require__(662); function Server(opts) { var self = this; if (!(self instanceof Server)) return new Server(opts); @@ -59018,7 +61858,7 @@ })) : done(null), isSync = !1; }; }, function(module, exports, __webpack_require__) { - const addrToIPPort = __webpack_require__(614), ipaddr = __webpack_require__(166); + const addrToIPPort = __webpack_require__(656), ipaddr = __webpack_require__(183); module.exports = addrs => ("string" == typeof addrs && (addrs = [ addrs ]), Buffer.concat(addrs.map((addr => { const s = addrToIPPort(addr); if (2 !== s.length) throw new Error("invalid address format, expecting: 10.10.10.5:128"); @@ -59040,7 +61880,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = Swarm; - var debug = __webpack_require__(8)("bittorrent-tracker"), randomIterate = __webpack_require__(616); + var debug = __webpack_require__(9)("bittorrent-tracker"), randomIterate = __webpack_require__(658); function Swarm(infoHash, server) { this.peers = {}, this.complete = 0, this.incomplete = 0; } @@ -59121,7 +61961,7 @@ } return params; }; - var common = __webpack_require__(50), REMOVE_IPV4_MAPPED_IPV6_RE = /^::ffff:/; + var common = __webpack_require__(55), REMOVE_IPV4_MAPPED_IPV6_RE = /^::ffff:/; }, function(module, exports, __webpack_require__) { module.exports = function(msg, rinfo) { if (msg.length < 16) throw new Error("received packet is too short"); @@ -59152,7 +61992,7 @@ } return params; }; - var bufferEqual = __webpack_require__(619), ipLib = __webpack_require__(116), common = __webpack_require__(50); + var bufferEqual = __webpack_require__(661), ipLib = __webpack_require__(127), common = __webpack_require__(55); function fromUInt64(buf) { var high = 0 | buf.readUInt32BE(0), low = 0 | buf.readUInt32BE(4); return 131072 * high + (low >= 0 ? low : 131072 + low); @@ -59179,7 +62019,7 @@ return params.left = Number(params.left) || 1 / 0, params.numwant = Math.min(Number(params.offers && params.offers.length) || 0, common.MAX_ANNOUNCE_PEERS), params.compact = -1, params; }; - var common = __webpack_require__(50); + var common = __webpack_require__(55); }, function(module, exports) { module.exports = function(evs, incEv, decEv, idFn, onPositive, onZero, timeout) { var counter = {}, timeouts = {}; @@ -59196,7 +62036,7 @@ })); }; }, function(module, exports, __webpack_require__) { - var parseVideoName = __webpack_require__(271), MEDIA_FILE_EXTENTIONS = /.mkv$|.avi$|.mp4$|.wmv$|.vp8$|.mov$|.mpg$|.ts$|.m3u8$|.webm$|.flac$|.mp3$|.wav$|.wma$|.aac$|.ogg$/i; + var parseVideoName = __webpack_require__(304), MEDIA_FILE_EXTENTIONS = /.mkv$|.avi$|.mp4$|.wmv$|.vp8$|.mov$|.mpg$|.ts$|.m3u8$|.webm$|.flac$|.mp3$|.wav$|.wma$|.aac$|.ogg$/i; module.exports = function(files, seriesInfo) { if (!files || !Array.isArray(files) || !seriesInfo) return -1; var mediaFiles = files.filter((function(file) { @@ -59217,7 +62057,7 @@ return files.indexOf(selectedFile); }; }, function(module, exports, __webpack_require__) { - var hat = __webpack_require__(91), peerIds = [ "qB4600", "DE2110", "AZ5770", "TR4040" ]; + var hat = __webpack_require__(101), peerIds = [ "qB4600", "DE2110", "AZ5770", "TR4040" ]; module.exports = function() { for (var peerId = peerIds[Math.floor(Math.random() * peerIds.length)], newPeerId = "", i = 0; i < peerId.length; i++) if (isNaN(peerId[i])) newPeerId += peerId[i]; else { var nr = parseInt(peerId[i]); @@ -59231,7 +62071,7 @@ }, function(module, exports) { module.exports = require("vm"); }, function(module, exports, __webpack_require__) { - var events = __webpack_require__(5), namedQueue = __webpack_require__(171), async = __webpack_require__(38), locatorapi = __webpack_require__(626), masterplaylistsapi = __webpack_require__(627), streamplaylistsapi = __webpack_require__(632), subtitlesapi = __webpack_require__(633), segmentsapi = __webpack_require__(634), videoapi = __webpack_require__(272), thumbapi = __webpack_require__(692), HLS = module.exports, allSubs = {}, evs = new events.EventEmitter, prepareQueue = new namedQueue((function(task, cb) { + var events = __webpack_require__(4), namedQueue = __webpack_require__(71), async = __webpack_require__(40), locatorapi = __webpack_require__(668), masterplaylistsapi = __webpack_require__(669), streamplaylistsapi = __webpack_require__(674), subtitlesapi = __webpack_require__(675), segmentsapi = __webpack_require__(676), videoapi = __webpack_require__(305), thumbapi = __webpack_require__(731), HLS = module.exports, allSubs = {}, evs = new events.EventEmitter, prepareQueue = new namedQueue((function(task, cb) { (HLS.prepare || videoapi.prepare)(task, cb); }), 1 / 0), convertQueue = async.queue((function(task, cb) { task(cb); @@ -59256,7 +62096,7 @@ HLS.subsPlaylistMiddleware = subtitlesapi.subsPlaylistMiddleware, HLS.subsReceiveMiddleware = subtitlesapi.subsReceiveMiddleware, HLS.thumbMiddleware = thumbapi.thumbMiddleware; }, function(module, exports, __webpack_require__) { - var paths, path = __webpack_require__(4), fs = __webpack_require__(2), locatorapi = module.exports; + var paths, path = __webpack_require__(5), fs = __webpack_require__(2), locatorapi = module.exports; locatorapi.locateExecutable = function(name, searchIn) { var sysPaths = process.env.PATH.split(path.delimiter).map((function(dir) { return path.join(dir, name); @@ -59276,7 +62116,7 @@ paths = pathsParam; }; }, function(module, exports, __webpack_require__) { - var prepareQueue, allSubs, common = __webpack_require__(70), languageNames = __webpack_require__(628).languageNames, url = __webpack_require__(6), masterPlaylistApi = module.exports; + var prepareQueue, allSubs, common = __webpack_require__(81), languageNames = __webpack_require__(670).languageNames, url = __webpack_require__(7), masterPlaylistApi = module.exports; masterPlaylistApi.masterPlaylistMiddleware = function(req, res, next) { var query = url.parse(req.url).query; query = query ? "?" + query : "", prepareQueue.push({ @@ -59319,9 +62159,9 @@ }; }, function(module, exports, __webpack_require__) { module.exports = { - languageNames: __webpack_require__(629), - languageMap: __webpack_require__(630), - languageForCountry: __webpack_require__(631) + languageNames: __webpack_require__(671), + languageMap: __webpack_require__(672), + languageForCountry: __webpack_require__(673) }; }, function(module) { module.exports = { @@ -59954,7 +62794,7 @@ AN: [ "nld", "eng", "spa" ] }; }, function(module, exports, __webpack_require__) { - var prepareQueue, common = __webpack_require__(70), streamPlaylistApi = module.exports; + var prepareQueue, common = __webpack_require__(81), streamPlaylistApi = module.exports; streamPlaylistApi.streamPlaylistMiddleware = function(req, res, next) { var prefix = req.params.hasOwnProperty("stream") || req.params.hasOwnProperty("quality") ? req.url.split("/").pop().split(".")[0] + "/" : ""; prepareQueue.push({ @@ -59984,7 +62824,7 @@ prepareQueue = prepareQueueParam; }; }, function(module, exports, __webpack_require__) { - var prepareQueue, allSubs, evs, common = __webpack_require__(70), subtitlesApi = module.exports; + var prepareQueue, allSubs, evs, common = __webpack_require__(81), subtitlesApi = module.exports; subtitlesApi.subsPlaylistMiddleware = function(req, res, next) { prepareQueue.push({ id: req.params.from, @@ -60010,7 +62850,7 @@ prepareQueue = prepareQueueParam, allSubs = allSubsParam, evs = evsParams; }; }, function(module, exports, __webpack_require__) { - var prepareQueue, paths, convertQueue, common = __webpack_require__(70), once = __webpack_require__(34), child = __webpack_require__(31), ffmpegArgs = __webpack_require__(635), segmentApi = module.exports, headerMap = { + var prepareQueue, paths, convertQueue, common = __webpack_require__(81), once = __webpack_require__(35), child = __webpack_require__(32), ffmpegArgs = __webpack_require__(677), segmentApi = module.exports, headerMap = { audio: 'audio/mp2t; codecs="mp4a.40.5"', video: 'video/mp2t; codecs="avc1.42E01F"', other: "video/mp2t" @@ -60133,7 +62973,7 @@ } }; }, function(module, exports, __webpack_require__) { - var getForMkv = __webpack_require__(637), getForMp4 = __webpack_require__(676); + var getForMkv = __webpack_require__(679), getForMp4 = __webpack_require__(718); module.exports = { get: function(url, container, cb) { void 0 === container && (container = url.match(/\.mkv/) ? "mkv" : "mp4"), "matroska" === container && (container = "mkv"), @@ -60143,7 +62983,7 @@ getForMp4: getForMp4 }; }, function(module, exports, __webpack_require__) { - var mkv = __webpack_require__(638); + var mkv = __webpack_require__(680); function atPath() { var arg, args = Array.prototype.slice.call(arguments), data = args.shift(); if (data) { @@ -60201,17 +63041,17 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = { - Decoder: __webpack_require__(639), - Document: __webpack_require__(273), + Decoder: __webpack_require__(681), + Document: __webpack_require__(306), Schema: __webpack_require__(12), - FileSource: __webpack_require__(277), - HttpSource: __webpack_require__(278), - StreamFactorySource: __webpack_require__(675) + FileSource: __webpack_require__(310), + HttpSource: __webpack_require__(311), + StreamFactorySource: __webpack_require__(717) }; }, function(module, exports, __webpack_require__) { "use strict"; - var debug = __webpack_require__(40)("matroska:decoder"), debugTag = __webpack_require__(40)("matroska:decoder:tag"), util = (__webpack_require__(2), - __webpack_require__(10).SlowBuffer, __webpack_require__(0)), Writable = __webpack_require__(3).Writable, Document2 = __webpack_require__(640), Source = __webpack_require__(276), FileSource = __webpack_require__(277), HttpSource = __webpack_require__(278), tools = __webpack_require__(72), schema = __webpack_require__(12); + var debug = __webpack_require__(44)("matroska:decoder"), debugTag = __webpack_require__(44)("matroska:decoder:tag"), util = (__webpack_require__(2), + __webpack_require__(10).SlowBuffer, __webpack_require__(0)), Writable = __webpack_require__(3).Writable, Document2 = __webpack_require__(682), Source = __webpack_require__(309), FileSource = __webpack_require__(310), HttpSource = __webpack_require__(311), tools = __webpack_require__(83), schema = __webpack_require__(12); function Decoder(options) { Writable.call(this, options), options = options || {}, this.options = options, this.skipTags = options.skipTags, void 0 === this.skipTags && (this.skipTags = { @@ -60448,7 +63288,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var async = __webpack_require__(38), util = __webpack_require__(0), Document1 = __webpack_require__(641); + var async = __webpack_require__(40), util = __webpack_require__(0), Document1 = __webpack_require__(683); function Document2() { Document1.call(this); } @@ -60490,8 +63330,8 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - __webpack_require__(38); - var util = __webpack_require__(0), Document = __webpack_require__(273), schema = __webpack_require__(12); + __webpack_require__(40); + var util = __webpack_require__(0), Document = __webpack_require__(306), schema = __webpack_require__(12); function Document1() { Document.call(this); } @@ -60517,7 +63357,7 @@ }); }, function(module, exports, __webpack_require__) { var Buffer, create; - Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(51), module.exports = create("crc1", (function(buf, previous) { + Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(56), module.exports = create("crc1", (function(buf, previous) { var accum, crc, _i, _len; for (Buffer.isBuffer(buf) || (buf = Buffer(buf)), crc = ~~previous, accum = 0, _i = 0, _len = buf.length; _i < _len; _i++) accum += buf[_i]; @@ -60525,7 +63365,7 @@ })); }, function(module, exports, __webpack_require__) { var Buffer, TABLE, create; - Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(51), TABLE = [ 0, 7, 14, 9, 28, 27, 18, 21, 56, 63, 54, 49, 36, 35, 42, 45, 112, 119, 126, 121, 108, 107, 98, 101, 72, 79, 70, 65, 84, 83, 90, 93, 224, 231, 238, 233, 252, 251, 242, 245, 216, 223, 214, 209, 196, 195, 202, 205, 144, 151, 158, 153, 140, 139, 130, 133, 168, 175, 166, 161, 180, 179, 186, 189, 199, 192, 201, 206, 219, 220, 213, 210, 255, 248, 241, 246, 227, 228, 237, 234, 183, 176, 185, 190, 171, 172, 165, 162, 143, 136, 129, 134, 147, 148, 157, 154, 39, 32, 41, 46, 59, 60, 53, 50, 31, 24, 17, 22, 3, 4, 13, 10, 87, 80, 89, 94, 75, 76, 69, 66, 111, 104, 97, 102, 115, 116, 125, 122, 137, 142, 135, 128, 149, 146, 155, 156, 177, 182, 191, 184, 173, 170, 163, 164, 249, 254, 247, 240, 229, 226, 235, 236, 193, 198, 207, 200, 221, 218, 211, 212, 105, 110, 103, 96, 117, 114, 123, 124, 81, 86, 95, 88, 77, 74, 67, 68, 25, 30, 23, 16, 5, 2, 11, 12, 33, 38, 47, 40, 61, 58, 51, 52, 78, 73, 64, 71, 82, 85, 92, 91, 118, 113, 120, 127, 106, 109, 100, 99, 62, 57, 48, 55, 34, 37, 44, 43, 6, 1, 8, 15, 26, 29, 20, 19, 174, 169, 160, 167, 178, 181, 188, 187, 150, 145, 152, 159, 138, 141, 132, 131, 222, 217, 208, 215, 194, 197, 204, 203, 230, 225, 232, 239, 250, 253, 244, 243 ], + Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(56), TABLE = [ 0, 7, 14, 9, 28, 27, 18, 21, 56, 63, 54, 49, 36, 35, 42, 45, 112, 119, 126, 121, 108, 107, 98, 101, 72, 79, 70, 65, 84, 83, 90, 93, 224, 231, 238, 233, 252, 251, 242, 245, 216, 223, 214, 209, 196, 195, 202, 205, 144, 151, 158, 153, 140, 139, 130, 133, 168, 175, 166, 161, 180, 179, 186, 189, 199, 192, 201, 206, 219, 220, 213, 210, 255, 248, 241, 246, 227, 228, 237, 234, 183, 176, 185, 190, 171, 172, 165, 162, 143, 136, 129, 134, 147, 148, 157, 154, 39, 32, 41, 46, 59, 60, 53, 50, 31, 24, 17, 22, 3, 4, 13, 10, 87, 80, 89, 94, 75, 76, 69, 66, 111, 104, 97, 102, 115, 116, 125, 122, 137, 142, 135, 128, 149, 146, 155, 156, 177, 182, 191, 184, 173, 170, 163, 164, 249, 254, 247, 240, 229, 226, 235, 236, 193, 198, 207, 200, 221, 218, 211, 212, 105, 110, 103, 96, 117, 114, 123, 124, 81, 86, 95, 88, 77, 74, 67, 68, 25, 30, 23, 16, 5, 2, 11, 12, 33, 38, 47, 40, 61, 58, 51, 52, 78, 73, 64, 71, 82, 85, 92, 91, 118, 113, 120, 127, 106, 109, 100, 99, 62, 57, 48, 55, 34, 37, 44, 43, 6, 1, 8, 15, 26, 29, 20, 19, 174, 169, 160, 167, 178, 181, 188, 187, 150, 145, 152, 159, 138, 141, 132, 131, 222, 217, 208, 215, 194, 197, 204, 203, 230, 225, 232, 239, 250, 253, 244, 243 ], "undefined" != typeof Int32Array && (TABLE = new Int32Array(TABLE)), module.exports = create("crc-8", (function(buf, previous) { var byte, crc, _i, _len; for (Buffer.isBuffer(buf) || (buf = Buffer(buf)), crc = ~~previous, _i = 0, _len = buf.length; _i < _len; _i++) byte = buf[_i], @@ -60534,7 +63374,7 @@ })); }, function(module, exports, __webpack_require__) { var Buffer, TABLE, create; - Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(51), TABLE = [ 0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65, 157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220, 35, 125, 159, 193, 66, 28, 254, 160, 225, 191, 93, 3, 128, 222, 60, 98, 190, 224, 2, 92, 223, 129, 99, 61, 124, 34, 192, 158, 29, 67, 161, 255, 70, 24, 250, 164, 39, 121, 155, 197, 132, 218, 56, 102, 229, 187, 89, 7, 219, 133, 103, 57, 186, 228, 6, 88, 25, 71, 165, 251, 120, 38, 196, 154, 101, 59, 217, 135, 4, 90, 184, 230, 167, 249, 27, 69, 198, 152, 122, 36, 248, 166, 68, 26, 153, 199, 37, 123, 58, 100, 134, 216, 91, 5, 231, 185, 140, 210, 48, 110, 237, 179, 81, 15, 78, 16, 242, 172, 47, 113, 147, 205, 17, 79, 173, 243, 112, 46, 204, 146, 211, 141, 111, 49, 178, 236, 14, 80, 175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209, 143, 12, 82, 176, 238, 50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76, 18, 145, 207, 45, 115, 202, 148, 118, 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139, 87, 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22, 233, 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168, 116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107, 53 ], + Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(56), TABLE = [ 0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65, 157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220, 35, 125, 159, 193, 66, 28, 254, 160, 225, 191, 93, 3, 128, 222, 60, 98, 190, 224, 2, 92, 223, 129, 99, 61, 124, 34, 192, 158, 29, 67, 161, 255, 70, 24, 250, 164, 39, 121, 155, 197, 132, 218, 56, 102, 229, 187, 89, 7, 219, 133, 103, 57, 186, 228, 6, 88, 25, 71, 165, 251, 120, 38, 196, 154, 101, 59, 217, 135, 4, 90, 184, 230, 167, 249, 27, 69, 198, 152, 122, 36, 248, 166, 68, 26, 153, 199, 37, 123, 58, 100, 134, 216, 91, 5, 231, 185, 140, 210, 48, 110, 237, 179, 81, 15, 78, 16, 242, 172, 47, 113, 147, 205, 17, 79, 173, 243, 112, 46, 204, 146, 211, 141, 111, 49, 178, 236, 14, 80, 175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209, 143, 12, 82, 176, 238, 50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76, 18, 145, 207, 45, 115, 202, 148, 118, 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139, 87, 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22, 233, 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168, 116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107, 53 ], "undefined" != typeof Int32Array && (TABLE = new Int32Array(TABLE)), module.exports = create("dallas-1-wire", (function(buf, previous) { var byte, crc, _i, _len; for (Buffer.isBuffer(buf) || (buf = Buffer(buf)), crc = ~~previous, _i = 0, _len = buf.length; _i < _len; _i++) byte = buf[_i], @@ -60543,7 +63383,7 @@ })); }, function(module, exports, __webpack_require__) { var Buffer, TABLE, create; - Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(51), TABLE = [ 0, 49345, 49537, 320, 49921, 960, 640, 49729, 50689, 1728, 1920, 51009, 1280, 50625, 50305, 1088, 52225, 3264, 3456, 52545, 3840, 53185, 52865, 3648, 2560, 51905, 52097, 2880, 51457, 2496, 2176, 51265, 55297, 6336, 6528, 55617, 6912, 56257, 55937, 6720, 7680, 57025, 57217, 8e3, 56577, 7616, 7296, 56385, 5120, 54465, 54657, 5440, 55041, 6080, 5760, 54849, 53761, 4800, 4992, 54081, 4352, 53697, 53377, 4160, 61441, 12480, 12672, 61761, 13056, 62401, 62081, 12864, 13824, 63169, 63361, 14144, 62721, 13760, 13440, 62529, 15360, 64705, 64897, 15680, 65281, 16320, 16e3, 65089, 64001, 15040, 15232, 64321, 14592, 63937, 63617, 14400, 10240, 59585, 59777, 10560, 60161, 11200, 10880, 59969, 60929, 11968, 12160, 61249, 11520, 60865, 60545, 11328, 58369, 9408, 9600, 58689, 9984, 59329, 59009, 9792, 8704, 58049, 58241, 9024, 57601, 8640, 8320, 57409, 40961, 24768, 24960, 41281, 25344, 41921, 41601, 25152, 26112, 42689, 42881, 26432, 42241, 26048, 25728, 42049, 27648, 44225, 44417, 27968, 44801, 28608, 28288, 44609, 43521, 27328, 27520, 43841, 26880, 43457, 43137, 26688, 30720, 47297, 47489, 31040, 47873, 31680, 31360, 47681, 48641, 32448, 32640, 48961, 32e3, 48577, 48257, 31808, 46081, 29888, 30080, 46401, 30464, 47041, 46721, 30272, 29184, 45761, 45953, 29504, 45313, 29120, 28800, 45121, 20480, 37057, 37249, 20800, 37633, 21440, 21120, 37441, 38401, 22208, 22400, 38721, 21760, 38337, 38017, 21568, 39937, 23744, 23936, 40257, 24320, 40897, 40577, 24128, 23040, 39617, 39809, 23360, 39169, 22976, 22656, 38977, 34817, 18624, 18816, 35137, 19200, 35777, 35457, 19008, 19968, 36545, 36737, 20288, 36097, 19904, 19584, 35905, 17408, 33985, 34177, 17728, 34561, 18368, 18048, 34369, 33281, 17088, 17280, 33601, 16640, 33217, 32897, 16448 ], + Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(56), TABLE = [ 0, 49345, 49537, 320, 49921, 960, 640, 49729, 50689, 1728, 1920, 51009, 1280, 50625, 50305, 1088, 52225, 3264, 3456, 52545, 3840, 53185, 52865, 3648, 2560, 51905, 52097, 2880, 51457, 2496, 2176, 51265, 55297, 6336, 6528, 55617, 6912, 56257, 55937, 6720, 7680, 57025, 57217, 8e3, 56577, 7616, 7296, 56385, 5120, 54465, 54657, 5440, 55041, 6080, 5760, 54849, 53761, 4800, 4992, 54081, 4352, 53697, 53377, 4160, 61441, 12480, 12672, 61761, 13056, 62401, 62081, 12864, 13824, 63169, 63361, 14144, 62721, 13760, 13440, 62529, 15360, 64705, 64897, 15680, 65281, 16320, 16e3, 65089, 64001, 15040, 15232, 64321, 14592, 63937, 63617, 14400, 10240, 59585, 59777, 10560, 60161, 11200, 10880, 59969, 60929, 11968, 12160, 61249, 11520, 60865, 60545, 11328, 58369, 9408, 9600, 58689, 9984, 59329, 59009, 9792, 8704, 58049, 58241, 9024, 57601, 8640, 8320, 57409, 40961, 24768, 24960, 41281, 25344, 41921, 41601, 25152, 26112, 42689, 42881, 26432, 42241, 26048, 25728, 42049, 27648, 44225, 44417, 27968, 44801, 28608, 28288, 44609, 43521, 27328, 27520, 43841, 26880, 43457, 43137, 26688, 30720, 47297, 47489, 31040, 47873, 31680, 31360, 47681, 48641, 32448, 32640, 48961, 32e3, 48577, 48257, 31808, 46081, 29888, 30080, 46401, 30464, 47041, 46721, 30272, 29184, 45761, 45953, 29504, 45313, 29120, 28800, 45121, 20480, 37057, 37249, 20800, 37633, 21440, 21120, 37441, 38401, 22208, 22400, 38721, 21760, 38337, 38017, 21568, 39937, 23744, 23936, 40257, 24320, 40897, 40577, 24128, 23040, 39617, 39809, 23360, 39169, 22976, 22656, 38977, 34817, 18624, 18816, 35137, 19200, 35777, 35457, 19008, 19968, 36545, 36737, 20288, 36097, 19904, 19584, 35905, 17408, 33985, 34177, 17728, 34561, 18368, 18048, 34369, 33281, 17088, 17280, 33601, 16640, 33217, 32897, 16448 ], "undefined" != typeof Int32Array && (TABLE = new Int32Array(TABLE)), module.exports = create("crc-16", (function(buf, previous) { var byte, crc, _i, _len; for (Buffer.isBuffer(buf) || (buf = Buffer(buf)), crc = ~~previous, _i = 0, _len = buf.length; _i < _len; _i++) byte = buf[_i], @@ -60552,7 +63392,7 @@ })); }, function(module, exports, __webpack_require__) { var Buffer, TABLE, create; - Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(51), TABLE = [ 0, 4129, 8258, 12387, 16516, 20645, 24774, 28903, 33032, 37161, 41290, 45419, 49548, 53677, 57806, 61935, 4657, 528, 12915, 8786, 21173, 17044, 29431, 25302, 37689, 33560, 45947, 41818, 54205, 50076, 62463, 58334, 9314, 13379, 1056, 5121, 25830, 29895, 17572, 21637, 42346, 46411, 34088, 38153, 58862, 62927, 50604, 54669, 13907, 9842, 5649, 1584, 30423, 26358, 22165, 18100, 46939, 42874, 38681, 34616, 63455, 59390, 55197, 51132, 18628, 22757, 26758, 30887, 2112, 6241, 10242, 14371, 51660, 55789, 59790, 63919, 35144, 39273, 43274, 47403, 23285, 19156, 31415, 27286, 6769, 2640, 14899, 10770, 56317, 52188, 64447, 60318, 39801, 35672, 47931, 43802, 27814, 31879, 19684, 23749, 11298, 15363, 3168, 7233, 60846, 64911, 52716, 56781, 44330, 48395, 36200, 40265, 32407, 28342, 24277, 20212, 15891, 11826, 7761, 3696, 65439, 61374, 57309, 53244, 48923, 44858, 40793, 36728, 37256, 33193, 45514, 41451, 53516, 49453, 61774, 57711, 4224, 161, 12482, 8419, 20484, 16421, 28742, 24679, 33721, 37784, 41979, 46042, 49981, 54044, 58239, 62302, 689, 4752, 8947, 13010, 16949, 21012, 25207, 29270, 46570, 42443, 38312, 34185, 62830, 58703, 54572, 50445, 13538, 9411, 5280, 1153, 29798, 25671, 21540, 17413, 42971, 47098, 34713, 38840, 59231, 63358, 50973, 55100, 9939, 14066, 1681, 5808, 26199, 30326, 17941, 22068, 55628, 51565, 63758, 59695, 39368, 35305, 47498, 43435, 22596, 18533, 30726, 26663, 6336, 2273, 14466, 10403, 52093, 56156, 60223, 64286, 35833, 39896, 43963, 48026, 19061, 23124, 27191, 31254, 2801, 6864, 10931, 14994, 64814, 60687, 56684, 52557, 48554, 44427, 40424, 36297, 31782, 27655, 23652, 19525, 15522, 11395, 7392, 3265, 61215, 65342, 53085, 57212, 44955, 49082, 36825, 40952, 28183, 32310, 20053, 24180, 11923, 16050, 3793, 7920 ], + Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(56), TABLE = [ 0, 4129, 8258, 12387, 16516, 20645, 24774, 28903, 33032, 37161, 41290, 45419, 49548, 53677, 57806, 61935, 4657, 528, 12915, 8786, 21173, 17044, 29431, 25302, 37689, 33560, 45947, 41818, 54205, 50076, 62463, 58334, 9314, 13379, 1056, 5121, 25830, 29895, 17572, 21637, 42346, 46411, 34088, 38153, 58862, 62927, 50604, 54669, 13907, 9842, 5649, 1584, 30423, 26358, 22165, 18100, 46939, 42874, 38681, 34616, 63455, 59390, 55197, 51132, 18628, 22757, 26758, 30887, 2112, 6241, 10242, 14371, 51660, 55789, 59790, 63919, 35144, 39273, 43274, 47403, 23285, 19156, 31415, 27286, 6769, 2640, 14899, 10770, 56317, 52188, 64447, 60318, 39801, 35672, 47931, 43802, 27814, 31879, 19684, 23749, 11298, 15363, 3168, 7233, 60846, 64911, 52716, 56781, 44330, 48395, 36200, 40265, 32407, 28342, 24277, 20212, 15891, 11826, 7761, 3696, 65439, 61374, 57309, 53244, 48923, 44858, 40793, 36728, 37256, 33193, 45514, 41451, 53516, 49453, 61774, 57711, 4224, 161, 12482, 8419, 20484, 16421, 28742, 24679, 33721, 37784, 41979, 46042, 49981, 54044, 58239, 62302, 689, 4752, 8947, 13010, 16949, 21012, 25207, 29270, 46570, 42443, 38312, 34185, 62830, 58703, 54572, 50445, 13538, 9411, 5280, 1153, 29798, 25671, 21540, 17413, 42971, 47098, 34713, 38840, 59231, 63358, 50973, 55100, 9939, 14066, 1681, 5808, 26199, 30326, 17941, 22068, 55628, 51565, 63758, 59695, 39368, 35305, 47498, 43435, 22596, 18533, 30726, 26663, 6336, 2273, 14466, 10403, 52093, 56156, 60223, 64286, 35833, 39896, 43963, 48026, 19061, 23124, 27191, 31254, 2801, 6864, 10931, 14994, 64814, 60687, 56684, 52557, 48554, 44427, 40424, 36297, 31782, 27655, 23652, 19525, 15522, 11395, 7392, 3265, 61215, 65342, 53085, 57212, 44955, 49082, 36825, 40952, 28183, 32310, 20053, 24180, 11923, 16050, 3793, 7920 ], "undefined" != typeof Int32Array && (TABLE = new Int32Array(TABLE)), module.exports = create("ccitt", (function(buf, previous) { var byte, crc, _i, _len; for (Buffer.isBuffer(buf) || (buf = Buffer(buf)), crc = null != previous ? ~~previous : 65535, @@ -60561,7 +63401,7 @@ })); }, function(module, exports, __webpack_require__) { var Buffer, TABLE, create; - Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(51), TABLE = [ 0, 49345, 49537, 320, 49921, 960, 640, 49729, 50689, 1728, 1920, 51009, 1280, 50625, 50305, 1088, 52225, 3264, 3456, 52545, 3840, 53185, 52865, 3648, 2560, 51905, 52097, 2880, 51457, 2496, 2176, 51265, 55297, 6336, 6528, 55617, 6912, 56257, 55937, 6720, 7680, 57025, 57217, 8e3, 56577, 7616, 7296, 56385, 5120, 54465, 54657, 5440, 55041, 6080, 5760, 54849, 53761, 4800, 4992, 54081, 4352, 53697, 53377, 4160, 61441, 12480, 12672, 61761, 13056, 62401, 62081, 12864, 13824, 63169, 63361, 14144, 62721, 13760, 13440, 62529, 15360, 64705, 64897, 15680, 65281, 16320, 16e3, 65089, 64001, 15040, 15232, 64321, 14592, 63937, 63617, 14400, 10240, 59585, 59777, 10560, 60161, 11200, 10880, 59969, 60929, 11968, 12160, 61249, 11520, 60865, 60545, 11328, 58369, 9408, 9600, 58689, 9984, 59329, 59009, 9792, 8704, 58049, 58241, 9024, 57601, 8640, 8320, 57409, 40961, 24768, 24960, 41281, 25344, 41921, 41601, 25152, 26112, 42689, 42881, 26432, 42241, 26048, 25728, 42049, 27648, 44225, 44417, 27968, 44801, 28608, 28288, 44609, 43521, 27328, 27520, 43841, 26880, 43457, 43137, 26688, 30720, 47297, 47489, 31040, 47873, 31680, 31360, 47681, 48641, 32448, 32640, 48961, 32e3, 48577, 48257, 31808, 46081, 29888, 30080, 46401, 30464, 47041, 46721, 30272, 29184, 45761, 45953, 29504, 45313, 29120, 28800, 45121, 20480, 37057, 37249, 20800, 37633, 21440, 21120, 37441, 38401, 22208, 22400, 38721, 21760, 38337, 38017, 21568, 39937, 23744, 23936, 40257, 24320, 40897, 40577, 24128, 23040, 39617, 39809, 23360, 39169, 22976, 22656, 38977, 34817, 18624, 18816, 35137, 19200, 35777, 35457, 19008, 19968, 36545, 36737, 20288, 36097, 19904, 19584, 35905, 17408, 33985, 34177, 17728, 34561, 18368, 18048, 34369, 33281, 17088, 17280, 33601, 16640, 33217, 32897, 16448 ], + Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(56), TABLE = [ 0, 49345, 49537, 320, 49921, 960, 640, 49729, 50689, 1728, 1920, 51009, 1280, 50625, 50305, 1088, 52225, 3264, 3456, 52545, 3840, 53185, 52865, 3648, 2560, 51905, 52097, 2880, 51457, 2496, 2176, 51265, 55297, 6336, 6528, 55617, 6912, 56257, 55937, 6720, 7680, 57025, 57217, 8e3, 56577, 7616, 7296, 56385, 5120, 54465, 54657, 5440, 55041, 6080, 5760, 54849, 53761, 4800, 4992, 54081, 4352, 53697, 53377, 4160, 61441, 12480, 12672, 61761, 13056, 62401, 62081, 12864, 13824, 63169, 63361, 14144, 62721, 13760, 13440, 62529, 15360, 64705, 64897, 15680, 65281, 16320, 16e3, 65089, 64001, 15040, 15232, 64321, 14592, 63937, 63617, 14400, 10240, 59585, 59777, 10560, 60161, 11200, 10880, 59969, 60929, 11968, 12160, 61249, 11520, 60865, 60545, 11328, 58369, 9408, 9600, 58689, 9984, 59329, 59009, 9792, 8704, 58049, 58241, 9024, 57601, 8640, 8320, 57409, 40961, 24768, 24960, 41281, 25344, 41921, 41601, 25152, 26112, 42689, 42881, 26432, 42241, 26048, 25728, 42049, 27648, 44225, 44417, 27968, 44801, 28608, 28288, 44609, 43521, 27328, 27520, 43841, 26880, 43457, 43137, 26688, 30720, 47297, 47489, 31040, 47873, 31680, 31360, 47681, 48641, 32448, 32640, 48961, 32e3, 48577, 48257, 31808, 46081, 29888, 30080, 46401, 30464, 47041, 46721, 30272, 29184, 45761, 45953, 29504, 45313, 29120, 28800, 45121, 20480, 37057, 37249, 20800, 37633, 21440, 21120, 37441, 38401, 22208, 22400, 38721, 21760, 38337, 38017, 21568, 39937, 23744, 23936, 40257, 24320, 40897, 40577, 24128, 23040, 39617, 39809, 23360, 39169, 22976, 22656, 38977, 34817, 18624, 18816, 35137, 19200, 35777, 35457, 19008, 19968, 36545, 36737, 20288, 36097, 19904, 19584, 35905, 17408, 33985, 34177, 17728, 34561, 18368, 18048, 34369, 33281, 17088, 17280, 33601, 16640, 33217, 32897, 16448 ], "undefined" != typeof Int32Array && (TABLE = new Int32Array(TABLE)), module.exports = create("crc-16-modbus", (function(buf, previous) { var byte, crc, _i, _len; for (Buffer.isBuffer(buf) || (buf = Buffer(buf)), crc = null != previous ? ~~previous : 65535, @@ -60570,7 +63410,7 @@ })); }, function(module, exports, __webpack_require__) { var Buffer, TABLE, create; - Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(51), TABLE = [ 0, 8801531, 9098509, 825846, 9692897, 1419802, 1651692, 10452759, 10584377, 2608578, 2839604, 11344079, 3303384, 11807523, 12104405, 4128302, 12930697, 4391538, 5217156, 13227903, 5679208, 13690003, 14450021, 5910942, 6606768, 14844747, 15604413, 6837830, 16197969, 7431594, 8256604, 16494759, 840169, 9084178, 8783076, 18463, 10434312, 1670131, 1434117, 9678590, 11358416, 2825259, 2590173, 10602790, 4109873, 12122826, 11821884, 3289031, 13213536, 5231515, 4409965, 12912278, 5929345, 14431610, 13675660, 5693559, 6823513, 15618722, 14863188, 6588335, 16513208, 8238147, 7417269, 16212302, 1680338, 10481449, 9664223, 1391140, 9061683, 788936, 36926, 8838341, 12067563, 4091408, 3340262, 11844381, 2868234, 11372785, 10555655, 2579964, 14478683, 5939616, 5650518, 13661357, 5180346, 13190977, 12967607, 4428364, 8219746, 16457881, 16234863, 7468436, 15633027, 6866552, 6578062, 14816117, 1405499, 9649856, 10463030, 1698765, 8819930, 55329, 803287, 9047340, 11858690, 3325945, 4072975, 12086004, 2561507, 10574104, 11387118, 2853909, 13647026, 5664841, 5958079, 14460228, 4446803, 12949160, 13176670, 5194661, 7454091, 16249200, 16476294, 8201341, 14834538, 6559633, 6852199, 15647388, 3360676, 11864927, 12161705, 4185682, 10527045, 2551230, 2782280, 11286707, 9619101, 1346150, 1577872, 10379115, 73852, 8875143, 9172337, 899466, 16124205, 7357910, 8182816, 16421083, 6680524, 14918455, 15678145, 6911546, 5736468, 13747439, 14507289, 5968354, 12873461, 4334094, 5159928, 13170435, 4167245, 12180150, 11879232, 3346363, 11301036, 2767959, 2532769, 10545498, 10360692, 1596303, 1360505, 9604738, 913813, 9157998, 8856728, 92259, 16439492, 8164415, 7343561, 16138546, 6897189, 15692510, 14936872, 6662099, 5986813, 14488838, 13733104, 5750795, 13156124, 5174247, 4352529, 12855018, 2810998, 11315341, 10498427, 2522496, 12124823, 4148844, 3397530, 11901793, 9135439, 862644, 110658, 8912057, 1606574, 10407765, 9590435, 1317464, 15706879, 6940164, 6651890, 14889737, 8145950, 16384229, 16161043, 7394792, 5123014, 13133629, 12910283, 4370992, 14535975, 5997020, 5707818, 13718737, 2504095, 10516836, 11329682, 2796649, 11916158, 3383173, 4130419, 12143240, 8893606, 129117, 876971, 9121104, 1331783, 9576124, 10389322, 1625009, 14908182, 6633453, 6925851, 15721184, 7380471, 16175372, 16402682, 8127489, 4389423, 12891860, 13119266, 5137369, 13704398, 5722165, 6015427, 14517560 ], + Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(56), TABLE = [ 0, 8801531, 9098509, 825846, 9692897, 1419802, 1651692, 10452759, 10584377, 2608578, 2839604, 11344079, 3303384, 11807523, 12104405, 4128302, 12930697, 4391538, 5217156, 13227903, 5679208, 13690003, 14450021, 5910942, 6606768, 14844747, 15604413, 6837830, 16197969, 7431594, 8256604, 16494759, 840169, 9084178, 8783076, 18463, 10434312, 1670131, 1434117, 9678590, 11358416, 2825259, 2590173, 10602790, 4109873, 12122826, 11821884, 3289031, 13213536, 5231515, 4409965, 12912278, 5929345, 14431610, 13675660, 5693559, 6823513, 15618722, 14863188, 6588335, 16513208, 8238147, 7417269, 16212302, 1680338, 10481449, 9664223, 1391140, 9061683, 788936, 36926, 8838341, 12067563, 4091408, 3340262, 11844381, 2868234, 11372785, 10555655, 2579964, 14478683, 5939616, 5650518, 13661357, 5180346, 13190977, 12967607, 4428364, 8219746, 16457881, 16234863, 7468436, 15633027, 6866552, 6578062, 14816117, 1405499, 9649856, 10463030, 1698765, 8819930, 55329, 803287, 9047340, 11858690, 3325945, 4072975, 12086004, 2561507, 10574104, 11387118, 2853909, 13647026, 5664841, 5958079, 14460228, 4446803, 12949160, 13176670, 5194661, 7454091, 16249200, 16476294, 8201341, 14834538, 6559633, 6852199, 15647388, 3360676, 11864927, 12161705, 4185682, 10527045, 2551230, 2782280, 11286707, 9619101, 1346150, 1577872, 10379115, 73852, 8875143, 9172337, 899466, 16124205, 7357910, 8182816, 16421083, 6680524, 14918455, 15678145, 6911546, 5736468, 13747439, 14507289, 5968354, 12873461, 4334094, 5159928, 13170435, 4167245, 12180150, 11879232, 3346363, 11301036, 2767959, 2532769, 10545498, 10360692, 1596303, 1360505, 9604738, 913813, 9157998, 8856728, 92259, 16439492, 8164415, 7343561, 16138546, 6897189, 15692510, 14936872, 6662099, 5986813, 14488838, 13733104, 5750795, 13156124, 5174247, 4352529, 12855018, 2810998, 11315341, 10498427, 2522496, 12124823, 4148844, 3397530, 11901793, 9135439, 862644, 110658, 8912057, 1606574, 10407765, 9590435, 1317464, 15706879, 6940164, 6651890, 14889737, 8145950, 16384229, 16161043, 7394792, 5123014, 13133629, 12910283, 4370992, 14535975, 5997020, 5707818, 13718737, 2504095, 10516836, 11329682, 2796649, 11916158, 3383173, 4130419, 12143240, 8893606, 129117, 876971, 9121104, 1331783, 9576124, 10389322, 1625009, 14908182, 6633453, 6925851, 15721184, 7380471, 16175372, 16402682, 8127489, 4389423, 12891860, 13119266, 5137369, 13704398, 5722165, 6015427, 14517560 ], "undefined" != typeof Int32Array && (TABLE = new Int32Array(TABLE)), module.exports = create("crc-24", (function(buf, previous) { var byte, crc, _i, _len; for (Buffer.isBuffer(buf) || (buf = Buffer(buf)), crc = null != previous ? ~~previous : 11994318, @@ -60579,7 +63419,7 @@ })); }, function(module, exports, __webpack_require__) { var Buffer, TABLE, create; - Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(51), TABLE = [ 0, 1996959894, 3993919788, 2567524794, 124634137, 1886057615, 3915621685, 2657392035, 249268274, 2044508324, 3772115230, 2547177864, 162941995, 2125561021, 3887607047, 2428444049, 498536548, 1789927666, 4089016648, 2227061214, 450548861, 1843258603, 4107580753, 2211677639, 325883990, 1684777152, 4251122042, 2321926636, 335633487, 1661365465, 4195302755, 2366115317, 997073096, 1281953886, 3579855332, 2724688242, 1006888145, 1258607687, 3524101629, 2768942443, 901097722, 1119000684, 3686517206, 2898065728, 853044451, 1172266101, 3705015759, 2882616665, 651767980, 1373503546, 3369554304, 3218104598, 565507253, 1454621731, 3485111705, 3099436303, 671266974, 1594198024, 3322730930, 2970347812, 795835527, 1483230225, 3244367275, 3060149565, 1994146192, 31158534, 2563907772, 4023717930, 1907459465, 112637215, 2680153253, 3904427059, 2013776290, 251722036, 2517215374, 3775830040, 2137656763, 141376813, 2439277719, 3865271297, 1802195444, 476864866, 2238001368, 4066508878, 1812370925, 453092731, 2181625025, 4111451223, 1706088902, 314042704, 2344532202, 4240017532, 1658658271, 366619977, 2362670323, 4224994405, 1303535960, 984961486, 2747007092, 3569037538, 1256170817, 1037604311, 2765210733, 3554079995, 1131014506, 879679996, 2909243462, 3663771856, 1141124467, 855842277, 2852801631, 3708648649, 1342533948, 654459306, 3188396048, 3373015174, 1466479909, 544179635, 3110523913, 3462522015, 1591671054, 702138776, 2966460450, 3352799412, 1504918807, 783551873, 3082640443, 3233442989, 3988292384, 2596254646, 62317068, 1957810842, 3939845945, 2647816111, 81470997, 1943803523, 3814918930, 2489596804, 225274430, 2053790376, 3826175755, 2466906013, 167816743, 2097651377, 4027552580, 2265490386, 503444072, 1762050814, 4150417245, 2154129355, 426522225, 1852507879, 4275313526, 2312317920, 282753626, 1742555852, 4189708143, 2394877945, 397917763, 1622183637, 3604390888, 2714866558, 953729732, 1340076626, 3518719985, 2797360999, 1068828381, 1219638859, 3624741850, 2936675148, 906185462, 1090812512, 3747672003, 2825379669, 829329135, 1181335161, 3412177804, 3160834842, 628085408, 1382605366, 3423369109, 3138078467, 570562233, 1426400815, 3317316542, 2998733608, 733239954, 1555261956, 3268935591, 3050360625, 752459403, 1541320221, 2607071920, 3965973030, 1969922972, 40735498, 2617837225, 3943577151, 1913087877, 83908371, 2512341634, 3803740692, 2075208622, 213261112, 2463272603, 3855990285, 2094854071, 198958881, 2262029012, 4057260610, 1759359992, 534414190, 2176718541, 4139329115, 1873836001, 414664567, 2282248934, 4279200368, 1711684554, 285281116, 2405801727, 4167216745, 1634467795, 376229701, 2685067896, 3608007406, 1308918612, 956543938, 2808555105, 3495958263, 1231636301, 1047427035, 2932959818, 3654703836, 1088359270, 936918e3, 2847714899, 3736837829, 1202900863, 817233897, 3183342108, 3401237130, 1404277552, 615818150, 3134207493, 3453421203, 1423857449, 601450431, 3009837614, 3294710456, 1567103746, 711928724, 3020668471, 3272380065, 1510334235, 755167117 ], + Buffer = __webpack_require__(10).Buffer, create = __webpack_require__(56), TABLE = [ 0, 1996959894, 3993919788, 2567524794, 124634137, 1886057615, 3915621685, 2657392035, 249268274, 2044508324, 3772115230, 2547177864, 162941995, 2125561021, 3887607047, 2428444049, 498536548, 1789927666, 4089016648, 2227061214, 450548861, 1843258603, 4107580753, 2211677639, 325883990, 1684777152, 4251122042, 2321926636, 335633487, 1661365465, 4195302755, 2366115317, 997073096, 1281953886, 3579855332, 2724688242, 1006888145, 1258607687, 3524101629, 2768942443, 901097722, 1119000684, 3686517206, 2898065728, 853044451, 1172266101, 3705015759, 2882616665, 651767980, 1373503546, 3369554304, 3218104598, 565507253, 1454621731, 3485111705, 3099436303, 671266974, 1594198024, 3322730930, 2970347812, 795835527, 1483230225, 3244367275, 3060149565, 1994146192, 31158534, 2563907772, 4023717930, 1907459465, 112637215, 2680153253, 3904427059, 2013776290, 251722036, 2517215374, 3775830040, 2137656763, 141376813, 2439277719, 3865271297, 1802195444, 476864866, 2238001368, 4066508878, 1812370925, 453092731, 2181625025, 4111451223, 1706088902, 314042704, 2344532202, 4240017532, 1658658271, 366619977, 2362670323, 4224994405, 1303535960, 984961486, 2747007092, 3569037538, 1256170817, 1037604311, 2765210733, 3554079995, 1131014506, 879679996, 2909243462, 3663771856, 1141124467, 855842277, 2852801631, 3708648649, 1342533948, 654459306, 3188396048, 3373015174, 1466479909, 544179635, 3110523913, 3462522015, 1591671054, 702138776, 2966460450, 3352799412, 1504918807, 783551873, 3082640443, 3233442989, 3988292384, 2596254646, 62317068, 1957810842, 3939845945, 2647816111, 81470997, 1943803523, 3814918930, 2489596804, 225274430, 2053790376, 3826175755, 2466906013, 167816743, 2097651377, 4027552580, 2265490386, 503444072, 1762050814, 4150417245, 2154129355, 426522225, 1852507879, 4275313526, 2312317920, 282753626, 1742555852, 4189708143, 2394877945, 397917763, 1622183637, 3604390888, 2714866558, 953729732, 1340076626, 3518719985, 2797360999, 1068828381, 1219638859, 3624741850, 2936675148, 906185462, 1090812512, 3747672003, 2825379669, 829329135, 1181335161, 3412177804, 3160834842, 628085408, 1382605366, 3423369109, 3138078467, 570562233, 1426400815, 3317316542, 2998733608, 733239954, 1555261956, 3268935591, 3050360625, 752459403, 1541320221, 2607071920, 3965973030, 1969922972, 40735498, 2617837225, 3943577151, 1913087877, 83908371, 2512341634, 3803740692, 2075208622, 213261112, 2463272603, 3855990285, 2094854071, 198958881, 2262029012, 4057260610, 1759359992, 534414190, 2176718541, 4139329115, 1873836001, 414664567, 2282248934, 4279200368, 1711684554, 285281116, 2405801727, 4167216745, 1634467795, 376229701, 2685067896, 3608007406, 1308918612, 956543938, 2808555105, 3495958263, 1231636301, 1047427035, 2932959818, 3654703836, 1088359270, 936918e3, 2847714899, 3736837829, 1202900863, 817233897, 3183342108, 3401237130, 1404277552, 615818150, 3134207493, 3453421203, 1423857449, 601450431, 3009837614, 3294710456, 1567103746, 711928724, 3020668471, 3272380065, 1510334235, 755167117 ], "undefined" != typeof Int32Array && (TABLE = new Int32Array(TABLE)), module.exports = create("crc-32", (function(buf, previous) { var byte, crc, _i, _len; for (Buffer.isBuffer(buf) || (buf = Buffer(buf)), crc = 0 === previous ? 0 : -1 ^ ~~previous, @@ -60588,8 +63428,8 @@ })); }, function(module, exports, __webpack_require__) { "use strict"; - __webpack_require__(38), __webpack_require__(2), __webpack_require__(63), __webpack_require__(4); - var util = __webpack_require__(0), Segment2 = __webpack_require__(652); + __webpack_require__(40), __webpack_require__(2), __webpack_require__(45), __webpack_require__(5); + var util = __webpack_require__(0), Segment2 = __webpack_require__(694); function Segment3(doc, tagId, start, length) { Segment2.call(this, doc, tagId, start, length); } @@ -61421,7 +64261,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var crc32 = __webpack_require__(71).crc32, fs = __webpack_require__(2), Mime = __webpack_require__(63), Path = __webpack_require__(4), util = __webpack_require__(0), Segment1 = __webpack_require__(653), schema = __webpack_require__(12), tools = __webpack_require__(72); + var crc32 = __webpack_require__(82).crc32, fs = __webpack_require__(2), Mime = __webpack_require__(45), Path = __webpack_require__(5), util = __webpack_require__(0), Segment1 = __webpack_require__(695), schema = __webpack_require__(12), tools = __webpack_require__(83); function Segment2(doc, tagId, start, length) { Segment1.call(this, doc, tagId, start, length); } @@ -61537,7 +64377,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Segment = __webpack_require__(654), schema = __webpack_require__(12); + var util = __webpack_require__(0), Segment = __webpack_require__(696), schema = __webpack_require__(12); function Segment1(doc, elementId, start, length) { Segment.call(this, doc, elementId, start, length); } @@ -61584,7 +64424,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); + var util = __webpack_require__(0), MasterElement = __webpack_require__(36), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Segment(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Segment, start, length); } @@ -61595,7 +64435,7 @@ _proto.oneChild(Segment.prototype, "Tags"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); + var util = __webpack_require__(0), MasterElement = __webpack_require__(36), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Attachments(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Attachments, start, length); } @@ -61604,7 +64444,7 @@ }, _proto.addChild(Attachments.prototype, "AttachedFile"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(64), schema = __webpack_require__(12), _proto = __webpack_require__(20); + var util = __webpack_require__(0), Element1 = __webpack_require__(72), schema = __webpack_require__(12), _proto = __webpack_require__(20); function AttachedFile(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.AttachedFile, start, length); } @@ -61615,7 +64455,7 @@ _proto.addAttribute(AttachedFile.prototype, "FileUID"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); + var util = __webpack_require__(0), MasterElement = __webpack_require__(36), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Tags(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Tags, start, length); } @@ -61624,7 +64464,7 @@ }, _proto.addChild(Tags.prototype, "Tag"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); + var util = __webpack_require__(0), MasterElement = __webpack_require__(36), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Tag(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Tag, start, length); } @@ -61633,7 +64473,7 @@ }, _proto.oneChild(Tag.prototype, "Targets", !0), _proto.addChild(Tag.prototype, "SimpleTag"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); + var util = __webpack_require__(0), MasterElement = __webpack_require__(36), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Targets(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Targets, start, length); } @@ -61644,7 +64484,7 @@ _proto.addChild(Targets.prototype, "TagChapterUID"), _proto.addChild(Targets.prototype, "TagAttachmentUID"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); + var util = __webpack_require__(0), MasterElement = __webpack_require__(36), schema = __webpack_require__(12), _proto = __webpack_require__(20); function SimpleTag(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.SimpleTag, start, length); } @@ -61655,7 +64495,7 @@ _proto.addAttribute(SimpleTag.prototype, "TagString"), _proto.addAttribute(SimpleTag.prototype, "TagBinary"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); + var util = __webpack_require__(0), MasterElement = __webpack_require__(36), schema = __webpack_require__(12), _proto = __webpack_require__(20); function SeekHead(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.SeekHead, start, length); } @@ -61664,7 +64504,7 @@ }, _proto.addChild(SeekHead.prototype, "Seek"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(64), schema = __webpack_require__(12), _proto = __webpack_require__(20); + var util = __webpack_require__(0), Element1 = __webpack_require__(72), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Seek(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.Seek, start, length); } @@ -61673,7 +64513,7 @@ }, _proto.addAttribute(Seek.prototype, "SeekID"), _proto.addAttribute(Seek.prototype, "SeekPosition"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); + var util = __webpack_require__(0), MasterElement = __webpack_require__(36), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Info(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Info, start, length); } @@ -61688,7 +64528,7 @@ _proto.addAttribute(Info.prototype, "MuxingApp"), _proto.addAttribute(Info.prototype, "WritingApp"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); + var util = __webpack_require__(0), MasterElement = __webpack_require__(36), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Tracks(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Tracks, start, length); } @@ -61697,7 +64537,7 @@ }, _proto.addChild(Tracks.prototype, "TrackEntry"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); + var util = __webpack_require__(0), MasterElement = __webpack_require__(36), schema = __webpack_require__(12), _proto = __webpack_require__(20); function TrackEntry(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.TrackEntry, start, length); } @@ -61718,7 +64558,7 @@ _proto.addChild(TrackEntry.prototype, "TrackOperation"), _proto.addChild(TrackEntry.prototype, "ContentEncodings"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(64), schema = __webpack_require__(12), _proto = __webpack_require__(20); + var util = __webpack_require__(0), Element1 = __webpack_require__(72), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Video(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.Video, start, length); } @@ -61733,7 +64573,7 @@ _proto.addAttribute(Video.prototype, "AspectRatioType"), _proto.addAttribute(Video.prototype, "ColourSpace"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(64), schema = __webpack_require__(12), _proto = __webpack_require__(20); + var util = __webpack_require__(0), Element1 = __webpack_require__(72), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Audio(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.Audio, start, length); } @@ -61743,7 +64583,7 @@ _proto.addAttribute(Audio.prototype, "Channels"), _proto.addAttribute(Audio.prototype, "BitDepth"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(64), schema = __webpack_require__(12), EMPTY_BUFFER = (__webpack_require__(20), + var util = __webpack_require__(0), Element1 = __webpack_require__(72), schema = __webpack_require__(12), EMPTY_BUFFER = (__webpack_require__(20), new Buffer([])); function CRC_32(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.CRC_32, start, length), this.data = EMPTY_BUFFER, @@ -61754,7 +64594,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); + var util = __webpack_require__(0), MasterElement = __webpack_require__(36), schema = __webpack_require__(12), _proto = __webpack_require__(20); function Cues(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.Cues, start, length); } @@ -61763,7 +64603,7 @@ }, _proto.addChild(Cues.prototype, "CuePoint"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); + var util = __webpack_require__(0), MasterElement = __webpack_require__(36), schema = __webpack_require__(12), _proto = __webpack_require__(20); function CuePoint(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.CuePoint, start, length); } @@ -61772,7 +64612,7 @@ }, _proto.addAttribute(CuePoint.prototype, "CueTime"), _proto.addChild(CuePoint.prototype, "CueTrackPositions"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), Element1 = __webpack_require__(64), schema = __webpack_require__(12), _proto = __webpack_require__(20); + var util = __webpack_require__(0), Element1 = __webpack_require__(72), schema = __webpack_require__(12), _proto = __webpack_require__(20); function CueReference(doc, tagId, start, length) { Element1.call(this, doc, tagId, schema.byName.CueReference, start, length); } @@ -61781,7 +64621,7 @@ }, _proto.addAttribute(CueReference.prototype, "CueRefTime"); }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(0), MasterElement = __webpack_require__(35), schema = __webpack_require__(12), _proto = __webpack_require__(20); + var util = __webpack_require__(0), MasterElement = __webpack_require__(36), schema = __webpack_require__(12), _proto = __webpack_require__(20); function CueTrackPositions(doc, tagId, start, length) { MasterElement.call(this, doc, tagId, schema.byName.CueTrackPositions, start, length); } @@ -61793,7 +64633,7 @@ _proto.addAttribute(CueTrackPositions.prototype, "CueBlockNumber"), _proto.addAttribute(CueTrackPositions.prototype, "CueCodecState"), _proto.addChild(CueTrackPositions.prototype, "CueReference"); }, function(module, exports, __webpack_require__) { - var nativeHttps = __webpack_require__(21), nativeHttp = __webpack_require__(11), url = __webpack_require__(6), _ = __webpack_require__(674), protocols = (module.exports.maxRedirects = 5, + var nativeHttps = __webpack_require__(21), nativeHttp = __webpack_require__(11), url = __webpack_require__(7), _ = __webpack_require__(716), protocols = (module.exports.maxRedirects = 5, { https: nativeHttps, http: nativeHttp @@ -62524,12 +65364,12 @@ return _; }.apply(exports, [])) || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__); })(); - }).call(this, __webpack_require__(62)(module)); + }).call(this, __webpack_require__(69)(module)); }, function(module, exports, __webpack_require__) { "use strict"; __webpack_require__(2); - var util = __webpack_require__(0), AbstractSource = (__webpack_require__(40)("matroska:streamFactorySource"), - __webpack_require__(172)); + var util = __webpack_require__(0), AbstractSource = (__webpack_require__(44)("matroska:streamFactorySource"), + __webpack_require__(187)); function StreamFactorySource(streamFactory) { if (AbstractSource.call(this), "function" != typeof streamFactory.getStream) throw new Error("Invalid streamFactory object (getStream function)"); if (streamFactory.end && "function" != typeof streamFactory.end) throw new Error("Invalid streamFactory object (end function)"); @@ -62553,7 +65393,7 @@ return "[StreamFactorySource factory=" + this.streamFactory + "]"; }; }, function(module, exports, __webpack_require__) { - var mp4box = __webpack_require__(677), needle = __webpack_require__(279), fs = __webpack_require__(2); + var mp4box = __webpack_require__(719), needle = __webpack_require__(73), fs = __webpack_require__(2); function iterateCounts(counts, values, fn) { var idx = 0; counts.forEach((function(count, i) { @@ -65472,6 +68312,887 @@ return file.discardMdatData = !keepMdatData, file; }; exports.createFile = MP4Box_createFile; +}, function(module, exports, __webpack_require__) { + "use strict"; + "undefined" == typeof process || "renderer" === process.type || !0 === process.browser || process.__nwjs ? module.exports = __webpack_require__(721) : module.exports = __webpack_require__(722); +}, function(module, exports, __webpack_require__) { + "use strict"; + function _typeof(obj) { + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + exports.log = function() { + var _console; + return "object" === ("undefined" == typeof console ? "undefined" : _typeof(console)) && console.log && (_console = console).log.apply(_console, arguments); + }, exports.formatArgs = function(args) { + if (args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module.exports.humanize(this.diff), + this.useColors) { + var c = "color: " + this.color; + args.splice(1, 0, c, "color: inherit"); + var index = 0, lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, (function(match) { + "%%" !== match && (index++, "%c" === match && (lastC = index)); + })), args.splice(lastC, 0, c); + } + }, exports.save = function(namespaces) { + try { + namespaces ? exports.storage.setItem("debug", namespaces) : exports.storage.removeItem("debug"); + } catch (error) {} + }, exports.load = function() { + var r; + try { + r = exports.storage.getItem("debug"); + } catch (error) {} + return !r && "undefined" != typeof process && "env" in process && (r = process.env.DEBUG), + r; + }, exports.useColors = function() { + return !("undefined" == typeof window || !window.process || "renderer" !== window.process.type && !window.process.__nwjs) || ("undefined" == typeof navigator || !navigator.userAgent || !navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) && ("undefined" != typeof document && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || "undefined" != typeof window && window.console && (window.console.firebug || window.console.exception && window.console.table) || "undefined" != typeof navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || "undefined" != typeof navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); + }, exports.storage = (function() { + try { + return localStorage; + } catch (error) {} + })(), exports.colors = [ "#0000CC", "#0000FF", "#0033CC", "#0033FF", "#0066CC", "#0066FF", "#0099CC", "#0099FF", "#00CC00", "#00CC33", "#00CC66", "#00CC99", "#00CCCC", "#00CCFF", "#3300CC", "#3300FF", "#3333CC", "#3333FF", "#3366CC", "#3366FF", "#3399CC", "#3399FF", "#33CC00", "#33CC33", "#33CC66", "#33CC99", "#33CCCC", "#33CCFF", "#6600CC", "#6600FF", "#6633CC", "#6633FF", "#66CC00", "#66CC33", "#9900CC", "#9900FF", "#9933CC", "#9933FF", "#99CC00", "#99CC33", "#CC0000", "#CC0033", "#CC0066", "#CC0099", "#CC00CC", "#CC00FF", "#CC3300", "#CC3333", "#CC3366", "#CC3399", "#CC33CC", "#CC33FF", "#CC6600", "#CC6633", "#CC9900", "#CC9933", "#CCCC00", "#CCCC33", "#FF0000", "#FF0033", "#FF0066", "#FF0099", "#FF00CC", "#FF00FF", "#FF3300", "#FF3333", "#FF3366", "#FF3399", "#FF33CC", "#FF33FF", "#FF6600", "#FF6633", "#FF9900", "#FF9933", "#FFCC00", "#FFCC33" ], + module.exports = __webpack_require__(312)(exports), module.exports.formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (error) { + return "[UnexpectedJSONParseError]: " + error.message; + } + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var tty = __webpack_require__(117), util = __webpack_require__(0); + exports.init = function(debug) { + debug.inspectOpts = {}; + for (var keys = Object.keys(exports.inspectOpts), i = 0; i < keys.length; i++) debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + }, exports.log = function() { + return process.stderr.write(util.format.apply(util, arguments) + "\n"); + }, exports.formatArgs = function(args) { + var name = this.namespace; + if (this.useColors) { + var c = this.color, colorCode = "[3" + (c < 8 ? c : "8;5;" + c), prefix = " ".concat(colorCode, ";1m").concat(name, " "); + args[0] = prefix + args[0].split("\n").join("\n" + prefix), args.push(colorCode + "m+" + module.exports.humanize(this.diff) + ""); + } else args[0] = (exports.inspectOpts.hideDate ? "" : (new Date).toISOString() + " ") + name + " " + args[0]; + }, exports.save = function(namespaces) { + namespaces ? process.env.DEBUG = namespaces : delete process.env.DEBUG; + }, exports.load = function() { + return process.env.DEBUG; + }, exports.useColors = function() { + return "colors" in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty.isatty(process.stderr.fd); + }, exports.colors = [ 6, 2, 3, 4, 5, 1 ]; + try { + var supportsColor = __webpack_require__(314); + supportsColor && (supportsColor.stderr || supportsColor).level >= 2 && (exports.colors = [ 20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, 63, 68, 69, 74, 75, 76, 77, 78, 79, 80, 81, 92, 93, 98, 99, 112, 113, 128, 129, 134, 135, 148, 149, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 178, 179, 184, 185, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 214, 215, 220, 221 ]); + } catch (error) {} + exports.inspectOpts = Object.keys(process.env).filter((function(key) { + return /^debug_/i.test(key); + })).reduce((function(obj, key) { + var prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (function(_, k) { + return k.toUpperCase(); + })), val = process.env[key]; + return val = !!/^(yes|on|true|enabled)$/i.test(val) || !/^(no|off|false|disabled)$/i.test(val) && ("null" === val ? null : Number(val)), + obj[prop] = val, obj; + }), {}), module.exports = __webpack_require__(312)(exports); + var formatters = module.exports.formatters; + formatters.o = function(v) { + return this.inspectOpts.colors = this.useColors, util.inspect(v, this.inspectOpts).replace(/\s*\n\s*/g, " "); + }, formatters.O = function(v) { + return this.inspectOpts.colors = this.useColors, util.inspect(v, this.inspectOpts); + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = (flag, argv) => { + argv = argv || process.argv; + const prefix = flag.startsWith("-") ? "" : 1 === flag.length ? "-" : "--", pos = argv.indexOf(prefix + flag), terminatorPos = argv.indexOf("--"); + return -1 !== pos && (-1 === terminatorPos || pos < terminatorPos); + }; +}, function(module, exports) { + var toString = Object.prototype.toString; + exports.build = function stringify(obj, prefix) { + if (prefix && null == obj) return prefix + "="; + if ("[object Array]" == toString.call(obj)) return (function(arr, prefix) { + for (var ret = [], i = 0, len = arr.length; i < len; i++) prefix ? ret.push(stringify(arr[i], prefix + "[]")) : ret.push(stringify(arr[i])); + return ret.join("&"); + })(obj, prefix); + if ("[object Object]" == toString.call(obj)) return (function(obj, prefix) { + var ret = []; + return Object.keys(obj).forEach((function(key) { + ret.push(stringify(obj[key], prefix ? prefix + "[" + encodeURIComponent(key) + "]" : encodeURIComponent(key))); + })), ret.join("&"); + })(obj, prefix); + if ("[object Date]" == toString.call(obj)) return obj.toISOString(); + if (prefix) return prefix + "=" + encodeURIComponent(String(obj)); + if (-1 !== String(obj).indexOf("=")) return String(obj); + throw new TypeError("Cannot build a querystring out of: " + obj); + }; +}, function(module, exports, __webpack_require__) { + var readFile = __webpack_require__(2).readFile, basename = __webpack_require__(5).basename; + function generate_part(name, part, boundary, callback) { + var return_part = "--" + boundary + "\r\n"; + function append(data, filename) { + if (data) { + var binary = -1 == part.content_type.indexOf("text"); + return_part += '; filename="' + encodeURIComponent(filename) + '"\r\n', binary && (return_part += "Content-Transfer-Encoding: binary\r\n"), + return_part += "Content-Type: " + part.content_type + "\r\n\r\n", return_part += binary ? data.toString("binary") : data.toString("utf8"); + } + callback(null, return_part + "\r\n"); + } + if (return_part += 'Content-Disposition: form-data; name="' + name + '"', (part.file || part.buffer) && part.content_type) { + var filename = part.filename ? part.filename : part.file ? basename(part.file) : name; + if (part.buffer) return append(part.buffer, filename); + readFile(part.file, (function(err, data) { + if (err) return callback(err); + append(data, filename); + })); + } else { + if ("object" == typeof part.value) return callback(new Error("Object received for " + name + ", expected string.")); + part.content_type && (return_part += "\r\n", return_part += "Content-Type: " + part.content_type), + return_part += "\r\n\r\n", return_part += Buffer.from(String(part.value), "utf8").toString("binary"), + append(); + } + } + function flatten(object, into, prefix) { + for (var key in into = into || {}, object) { + var prefix_key = prefix ? prefix + "[" + key + "]" : key, prop = object[key]; + prop && "object" == typeof prop && !(prop.buffer || prop.file || prop.content_type) ? flatten(prop, into, prefix_key) : into[prefix_key] = prop; + } + return into; + } + exports.build = function(data, boundary, callback) { + if ("object" != typeof data || "function" == typeof data.pipe) return callback(new Error("Multipart builder expects data as key/val object.")); + var body = "", object = flatten(data), count = Object.keys(object).length; + if (0 === count) return callback(new Error("Empty multipart body. Invalid data.")); + function done(err, section) { + if (err) return callback(err); + section && (body += section), --count || callback(null, body + "--" + boundary + "--"); + } + for (var key in object) { + var value = object[key]; + null == value ? done() : Buffer.isBuffer(value) ? generate_part(key, { + buffer: value, + content_type: "application/octet-stream" + }, boundary, done) : generate_part(key, value.buffer || value.file || value.content_type ? value : { + value: value + }, boundary, done); + } + }; +}, function(module, exports, __webpack_require__) { + var createHash = __webpack_require__(6).createHash; + function md5(string) { + return createHash("md5").update(string).digest("hex"); + } + function basic(user, pass) { + var str = void 0 === pass ? user : [ user, pass ].join(":"); + return "Basic " + Buffer.from(str).toString("base64"); + } + var digest = { + parse_header: function(header) { + for (var challenge = {}, matches = header.match(/([a-z0-9_-]+)="?([a-z0-9=\/\.@\s-]+)"?/gi), i = 0, l = matches.length; i < l; i++) { + var parts = matches[i].split("="), key = parts.shift(), val = parts.join("=").replace(/^"/, "").replace(/"$/, ""); + challenge[key] = val; + } + return challenge; + }, + update_nc: function(nc) { + return ++nc > 99999999 && (nc = 1), nc += "", (new Array(8).join("0") + "").substr(0, 8 - nc.length) + nc; + }, + generate: function(header, user, pass, method, path) { + var nc = 1, cnonce = null, challenge = digest.parse_header(header), ha1 = md5(user + ":" + challenge.realm + ":" + pass), ha2 = md5(method.toUpperCase() + ":" + path), resp = [ ha1, challenge.nonce ]; + "string" == typeof challenge.qop && (cnonce = md5(Math.random().toString(36)).substr(0, 8), + nc = digest.update_nc(nc), resp = resp.concat(nc, cnonce)), resp = resp.concat(challenge.qop, ha2); + var params = { + uri: path, + realm: challenge.realm, + nonce: challenge.nonce, + username: user, + response: md5(resp.join(":")) + }; + for (var k in challenge.qop && (params.qop = challenge.qop), challenge.opaque && (params.opaque = challenge.opaque), + cnonce && (params.nc = nc, params.cnonce = cnonce), header = [], params) header.push(k + '="' + params[k] + '"'); + return "Digest " + header.join(", "); + } + }; + module.exports = { + header: function(header, credentials, opts) { + var type = header.split(" ")[0], user = credentials[0], pass = credentials[1]; + return "Digest" == type ? digest.generate(header, user, pass, opts.method, opts.path) : "Basic" == type ? basic(user, pass) : void 0; + }, + basic: basic, + digest: digest.generate + }; +}, function(module, exports, __webpack_require__) { + var unescape = __webpack_require__(24).unescape, COOKIE_PAIR = /^([^=\s]+)\s*=\s*("?)\s*(.*)\s*\2\s*$/, EXCLUDED_CHARS = /[\x00-\x1F\x7F\x3B\x3B\s\"\,\\"%]/g; + function encodeCookieComponent(str) { + return str.toString().replace(EXCLUDED_CHARS, encodeURIComponent); + } + exports.read = function(header) { + return header ? (header = Array.isArray(header) ? header : [ header ]).reduce((function(res, str) { + var cookie = (function(str) { + str = (function(str) { + var index = str.indexOf(";"); + return -1 === index ? str : str.substr(0, index); + })(str = (function(str) { + return str.trim().replace(/\x3B+$/, ""); + })(str)); + var res = COOKIE_PAIR.exec(str); + return res && res[3] ? { + name: unescape(res[1]), + value: unescape(res[3]) + } : null; + })(str); + return cookie && (res[cookie.name] = cookie.value), res; + }), {}) : {}; + }, exports.write = function(obj) { + return Object.keys(obj).reduce((function(str, name) { + return str + (str ? "; " : "") + encodeCookieComponent(name) + "=" + encodeCookieComponent(obj[name]); + }), ""); + }; +}, function(module, exports, __webpack_require__) { + var Transform = __webpack_require__(3).Transform, sax = __webpack_require__(104), parsers = {}; + function buildParser(name, types, fn) { + var parser = (function(name, fn) { + return { + fn: function() { + var chunks = [], stream = new Transform({ + objectMode: !0 + }); + return stream._transform = function(chunk, encoding, done) { + chunks.push(chunk), done(); + }, stream._flush = function(done) { + var self = this, data = Buffer.concat(chunks); + try { + fn(data, (function(err, result) { + if (err) throw err; + self.push(result); + })); + } catch (err) { + self.push(data); + } finally { + done(); + } + }, stream; + }, + name: name + }; + })(name, fn); + types.forEach((function(type) { + parsers[type] = parser; + })); + } + buildParser("json", [ "application/json", "text/javascript" ], (function(buffer, cb) { + var err, data; + try { + data = JSON.parse(buffer); + } catch (e) { + err = e; + } + cb(err, data); + })), buildParser("xml", [ "text/xml", "application/xml", "application/rdf+xml", "application/rss+xml", "application/atom+xml" ], (function(buffer, cb) { + !(function(str, cb) { + var obj, current, parser = sax.parser(!0, { + trim: !0, + lowercase: !0 + }); + parser.onerror = parser.onend = function(err) { + parser.onerror = parser.onend = function() {}, cb(err, obj); + }, parser.ontext = function(t) { + current && (current.value += t); + }, parser.onopentag = function(node) { + var element = { + name: node.name || "", + value: "", + attributes: node.attributes || {}, + children: [] + }; + current ? (element.parent = current, current.children.push(element)) : obj = element, + current = element; + }, parser.onclosetag = function() { + if (void 0 !== current.parent) { + var just_closed = current; + current = current.parent, delete just_closed.parent; + } + }, parser.write(str).close(); + })(buffer.toString(), (function(err, obj) { + cb(err, obj); + })); + })), module.exports = parsers, module.exports.use = buildParser; +}, function(module, exports, __webpack_require__) { + var iconv, inherits = __webpack_require__(0).inherits, stream = __webpack_require__(3), regex = /(?:charset|encoding)\s*=\s*['"]? *([\w\-]+)/i; + function StreamDecoder(charset) { + if (!(this instanceof StreamDecoder)) return new StreamDecoder(charset); + stream.Transform.call(this, charset), this.charset = charset, this.parsed_chunk = !1; + } + inherits(StreamDecoder, stream.Transform), StreamDecoder.prototype._transform = function(chunk, encoding, done) { + var res, found; + if ("iso-8859-1" == this.charset && !this.parsed_chunk) { + this.parsed_chunk = !0; + var matches = regex.exec(chunk.toString()); + matches && (found = matches[1].toLowerCase(), this.charset = "utf-8" == found ? "utf8" : found); + } + try { + res = iconv.decode(chunk, this.charset); + } catch (e) { + res = chunk; + } + this.push(res), done(); + }, module.exports = function(charset) { + try { + iconv || (iconv = __webpack_require__(66)); + } catch (e) {} + return iconv ? new StreamDecoder(charset) : new stream.PassThrough; + }; +}, function(module) { + module.exports = { + name: "needle", + version: "2.4.0", + description: "The leanest and most handsome HTTP client in the Nodelands.", + keywords: [ "http", "https", "simple", "request", "client", "multipart", "upload", "proxy", "deflate", "timeout", "charset", "iconv", "cookie", "redirect" ], + tags: [ "http", "https", "simple", "request", "client", "multipart", "upload", "proxy", "deflate", "timeout", "charset", "iconv", "cookie", "redirect" ], + author: "Tomás Pollak ", + repository: { + type: "git", + url: "https://github.com/tomas/needle.git" + }, + dependencies: { + debug: "^3.2.6", + "iconv-lite": "^0.4.4", + sax: "^1.2.4" + }, + devDependencies: { + JSONStream: "^1.3.5", + jschardet: "^1.6.0", + mocha: "^5.2.0", + q: "^1.5.1", + should: "^13.2.3", + sinon: "^2.3.0", + xml2js: "^0.4.19" + }, + scripts: { + test: "mocha test" + }, + directories: { + lib: "./lib" + }, + main: "./lib/needle", + bin: { + needle: "./bin/needle" + }, + license: "MIT", + engines: { + node: ">= 4.4.x" + } + }; +}, function(module, exports, __webpack_require__) { + var paths, convertQueue, common = __webpack_require__(81), videoapi = __webpack_require__(305), thumbApi = module.exports; + thumbApi.thumbMiddleware = function(req, res) { + videoapi.probeVideo(req.params.from, (function(err, instance) { + if (err) return common.handleErr(err, res); + var args = [ "-ss", isNaN(req.query.at) ? Math.round(instance.duration / 1e3 / 2) : req.query.at, "-i", req.params.from, "-r", "1", "-vframes", "1", "-f", "image2", "-vcodec", "mjpeg", "pipe:1" ]; + common.serveFfmpeg(args, "image/jpg", res); + })); + }, thumbApi.init = function(pathsParam, convertQueueParam) { + paths = pathsParam, convertQueue = convertQueueParam, common.init(paths, convertQueue); + }; +}, function(module, exports, __webpack_require__) { + var map = { + "./af": 315, + "./af.js": 315, + "./ar": 316, + "./ar-ma": 317, + "./ar-ma.js": 317, + "./ar-sa": 318, + "./ar-sa.js": 318, + "./ar-tn": 319, + "./ar-tn.js": 319, + "./ar.js": 316, + "./az": 320, + "./az.js": 320, + "./be": 321, + "./be.js": 321, + "./bg": 322, + "./bg.js": 322, + "./bn": 323, + "./bn.js": 323, + "./bo": 324, + "./bo.js": 324, + "./br": 325, + "./br.js": 325, + "./bs": 326, + "./bs.js": 326, + "./ca": 327, + "./ca.js": 327, + "./cs": 328, + "./cs.js": 328, + "./cv": 329, + "./cv.js": 329, + "./cy": 330, + "./cy.js": 330, + "./da": 331, + "./da.js": 331, + "./de": 332, + "./de-at": 333, + "./de-at.js": 333, + "./de.js": 332, + "./el": 334, + "./el.js": 334, + "./en-au": 335, + "./en-au.js": 335, + "./en-ca": 336, + "./en-ca.js": 336, + "./en-gb": 337, + "./en-gb.js": 337, + "./eo": 338, + "./eo.js": 338, + "./es": 339, + "./es.js": 339, + "./et": 340, + "./et.js": 340, + "./eu": 341, + "./eu.js": 341, + "./fa": 342, + "./fa.js": 342, + "./fi": 343, + "./fi.js": 343, + "./fo": 344, + "./fo.js": 344, + "./fr": 345, + "./fr-ca": 346, + "./fr-ca.js": 346, + "./fr.js": 345, + "./fy": 347, + "./fy.js": 347, + "./gl": 348, + "./gl.js": 348, + "./he": 349, + "./he.js": 349, + "./hi": 350, + "./hi.js": 350, + "./hr": 351, + "./hr.js": 351, + "./hu": 352, + "./hu.js": 352, + "./hy-am": 353, + "./hy-am.js": 353, + "./id": 354, + "./id.js": 354, + "./is": 355, + "./is.js": 355, + "./it": 356, + "./it.js": 356, + "./ja": 357, + "./ja.js": 357, + "./jv": 358, + "./jv.js": 358, + "./ka": 359, + "./ka.js": 359, + "./km": 360, + "./km.js": 360, + "./ko": 361, + "./ko.js": 361, + "./lb": 362, + "./lb.js": 362, + "./lt": 363, + "./lt.js": 363, + "./lv": 364, + "./lv.js": 364, + "./me": 365, + "./me.js": 365, + "./mk": 366, + "./mk.js": 366, + "./ml": 367, + "./ml.js": 367, + "./mr": 368, + "./mr.js": 368, + "./ms": 369, + "./ms-my": 370, + "./ms-my.js": 370, + "./ms.js": 369, + "./my": 371, + "./my.js": 371, + "./nb": 372, + "./nb.js": 372, + "./ne": 373, + "./ne.js": 373, + "./nl": 374, + "./nl.js": 374, + "./nn": 375, + "./nn.js": 375, + "./pl": 376, + "./pl.js": 376, + "./pt": 377, + "./pt-br": 378, + "./pt-br.js": 378, + "./pt.js": 377, + "./ro": 379, + "./ro.js": 379, + "./ru": 380, + "./ru.js": 380, + "./si": 381, + "./si.js": 381, + "./sk": 382, + "./sk.js": 382, + "./sl": 383, + "./sl.js": 383, + "./sq": 384, + "./sq.js": 384, + "./sr": 385, + "./sr-cyrl": 386, + "./sr-cyrl.js": 386, + "./sr.js": 385, + "./sv": 387, + "./sv.js": 387, + "./ta": 388, + "./ta.js": 388, + "./th": 389, + "./th.js": 389, + "./tl-ph": 390, + "./tl-ph.js": 390, + "./tr": 391, + "./tr.js": 391, + "./tzl": 392, + "./tzl.js": 392, + "./tzm": 393, + "./tzm-latn": 394, + "./tzm-latn.js": 394, + "./tzm.js": 393, + "./uk": 395, + "./uk.js": 395, + "./uz": 396, + "./uz.js": 396, + "./vi": 397, + "./vi.js": 397, + "./zh-cn": 398, + "./zh-cn.js": 398, + "./zh-tw": 399, + "./zh-tw.js": 399 + }; + function webpackContext(req) { + var id = webpackContextResolve(req); + return __webpack_require__(id); + } + function webpackContextResolve(req) { + if (!__webpack_require__.o(map, req)) { + var e = new Error("Cannot find module '" + req + "'"); + throw e.code = "MODULE_NOT_FOUND", e; + } + return map[req]; + } + webpackContext.keys = function() { + return Object.keys(map); + }, webpackContext.resolve = webpackContextResolve, module.exports = webpackContext, + webpackContext.id = 732; +}, function(module, exports, __webpack_require__) { + var subRetriever = __webpack_require__(734), subParser = __webpack_require__(793).parseString; + module.exports = function(args, callback) { + if (!args.url) return callback(new Error("pass .url")); + subRetriever.retrieveSrt(args.url, (function(err, buf) { + if (err) return callback(err); + try { + var tracks = subParser(buf.toString()); + } catch (e) { + callback(e); + } + callback(null, { + url: args.url, + tracks: Object.keys(tracks).map((function(key) { + return tracks[key]; + })) + }); + })); + }; +}, function(module, exports, __webpack_require__) { + var stream = __webpack_require__(3), needle = __webpack_require__(735), fs = __webpack_require__(2), iconv = __webpack_require__(66), charsetDetector = __webpack_require__(750), zlib = __webpack_require__(43), zip = __webpack_require__(781), _ = __webpack_require__(408); + function streamFromPath(path, agent) { + return path instanceof stream.Readable ? path : path.match("^http") ? needle.get(path, { + agent: agent, + follow_max: 12 + }) : fs.createReadStream(path); + } + module.exports = { + streamFromPath: streamFromPath, + retrieveSrt: function retrieveSrt(path, cb, options) { + var callback = _.once((function(err, res) { + if (err && options && options.agent) return retrieveSrt(path, cb); + cb(err, res); + })); + if ((stream = streamFromPath(path, options && options.agent)).on("error", (function(err) { + callback(err); + })), path.match("zip$")) { + var foundSrt = !1, bufs = [], zipbufs = []; + stream.on("data", (function(b) { + zipbufs.push(b); + })), stream.on("end", (function() { + try { + zip.Reader(Buffer.concat(zipbufs)).forEach((function(entry) { + entry.getName().match("srt$") && !foundSrt && (foundSrt = !0, bufs.push(entry.getData())); + })); + } catch (e) { + return callback(e); + } + if (!foundSrt) return callback(new Error("no srt found in zip file " + path)); + onDownloaded(); + })); + } else { + if (path.match("gz$")) var stream = stream.pipe(zlib.createUnzip()); + bufs = [], stream.on("data", (function(dat) { + bufs.push(dat); + })), stream.on("end", onDownloaded), stream.on("error", (function(e) { + callback(e); + })); + } + function onDownloaded() { + var charset, buf = Buffer.concat(bufs); + try { + charset = "ISO-8859-8-I" == (charset = options && options.charset && "auto" != options.charset ? options.charset : charsetDetector(buf)[0].charsetName) ? "ISO-8859-8" : charset, + buf = iconv.decode(buf, charset); + } catch (e) { + return void callback(e); + } + callback(null, buf); + } + } + }; +}, function(module, exports, __webpack_require__) { + var fs = __webpack_require__(2), http = __webpack_require__(11), https = __webpack_require__(21), url = __webpack_require__(7), stream = __webpack_require__(3), debug = __webpack_require__(9)("needle"), stringify = __webpack_require__(736).build, multipart = __webpack_require__(737), auth = __webpack_require__(738), cookies = __webpack_require__(739), parsers = __webpack_require__(740), decoder = __webpack_require__(748), version = __webpack_require__(749).version, user_agent = "Needle/" + version; + user_agent += " (Node.js " + process.version + "; " + process.platform + " " + process.arch + ")"; + var close_by_default = !http.Agent || http.Agent.defaultMaxSockets != 1 / 0, decompressors = {}; + try { + var zlib = __webpack_require__(43); + decompressors["x-deflate"] = zlib.Inflate, decompressors.deflate = zlib.Inflate, + decompressors["x-gzip"] = zlib.Gunzip, decompressors.gzip = zlib.Gunzip; + } catch (e) {} + var defaults = { + boundary: "--------------------NODENEEDLEHTTPCLIENT", + encoding: "utf8", + parse_response: "all", + accept: "*/*", + user_agent: user_agent, + open_timeout: 1e4, + read_timeout: 0, + follow_max: 0, + decode_response: !0, + parse_cookies: !0, + follow_set_cookies: !1, + follow_set_referer: !1, + follow_keep_method: !1, + follow_if_same_host: !1, + follow_if_same_protocol: !1 + }, aliased = { + options: { + decode: "decode_response", + parse: "parse_response", + timeout: "open_timeout", + follow: "follow_max" + }, + inverted: {} + }; + function keys_by_type(type) { + return Object.keys(defaults).map((function(el) { + if (defaults[el].constructor == type) return el; + })).filter((function(el) { + return el; + })); + } + function is_stream(obj) { + return "function" == typeof obj.pipe; + } + function Needle(method, uri, data, options, callback) { + if ("string" != typeof uri) throw new TypeError("URL must be a string, not " + uri); + this.method = method, this.uri = uri, this.data = data, "function" == typeof options ? (this.callback = options, + this.options = {}) : (this.callback = callback, this.options = options); + } + Object.keys(aliased.options).map((function(k) { + var value = aliased.options[k]; + aliased.inverted[value] = k; + })), Needle.prototype.setup = function(uri, options) { + function get_option(key, fallback) { + return void 0 !== options[key] ? options[key] : void 0 !== options[aliased.inverted[key]] ? options[aliased.inverted[key]] : fallback; + } + function check_value(expected, key) { + var value = get_option(key), type = typeof value; + if ("undefined" != type && type != expected) throw new TypeError(type + " received for " + key + ", but expected a " + expected); + return type == expected ? value : defaults[key]; + } + var config = { + http_opts: {}, + proxy: options.proxy, + output: options.output, + parser: get_option("parse_response", defaults.parse_response), + encoding: options.encoding || (options.multipart ? "binary" : defaults.encoding) + }; + if (keys_by_type(Boolean).forEach((function(key) { + config[key] = check_value("boolean", key); + })), keys_by_type(Number).forEach((function(key) { + config[key] = check_value("number", key); + })), "agent pfx key passphrase cert ca ciphers rejectUnauthorized secureProtocol checkServerIdentity".split(" ").forEach((function(key) { + void 0 !== options[key] && (config.http_opts[key] = options[key], void 0 === options.agent && (config.http_opts.agent = !1)); + })), config.headers = { + accept: options.accept || defaults.accept, + "user-agent": options.user_agent || defaults.user_agent + }, (options.connection || close_by_default) && (config.headers.connection = options.connection || "close"), + (options.compressed || defaults.compressed) && void 0 !== zlib && (config.headers["accept-encoding"] = "gzip,deflate"), + options.cookies && (config.headers.cookie = cookies.write(options.cookies)), -1 !== uri.indexOf("@")) { + var parts = (url.parse(uri).auth || "").split(":"); + options.username = parts[0], options.password = parts[1]; + } + if (options.username && (!options.auth || "auto" != options.auth && "digest" != options.auth ? config.headers.authorization = auth.basic(options.username, options.password) : config.credentials = [ options.username, options.password ]), + config.proxy) { + if (-1 === config.proxy.indexOf("http") && (config.proxy = "http://" + config.proxy), + -1 !== config.proxy.indexOf("@")) { + var proxy = (url.parse(config.proxy).auth || "").split(":"); + options.proxy_user = proxy[0], options.proxy_pass = proxy[1]; + } + options.proxy_user && (config.headers["proxy-authorization"] = auth.basic(options.proxy_user, options.proxy_pass)); + } + for (var h in options.headers) config.headers[h.toLowerCase()] = options.headers[h]; + return config; + }, Needle.prototype.start = function() { + var out = new stream.PassThrough({ + objectMode: !1 + }), uri = this.uri, data = this.data, method = this.method, callback = "function" == typeof this.options ? this.options : this.callback, options = this.options || {}; + -1 === uri.indexOf("http") && (uri = uri.replace(/^(\/\/)?/, "http://")); + var body, config = this.setup(uri, options); + if (data) { + if (options.multipart) { + var self = this, boundary = options.boundary || defaults.boundary; + return multipart.build(data, boundary, (function(err, parts) { + if (err) throw err; + config.headers["content-type"] = "multipart/form-data; boundary=" + boundary, config.headers["content-length"] = parts.length, + self.send_request(1, method, uri, config, parts, out, callback); + })), out; + } + if (is_stream(data) || Buffer.isBuffer(data)) { + if (is_stream(data) && "GET" == method.toUpperCase()) throw new Error("Refusing to pipe() a stream via GET. Did you mean .post?"); + body = data; + } else "GET" != method.toUpperCase() || options.json ? (body = "string" == typeof data ? data : options.json ? JSON.stringify(data) : stringify(data), + body = new Buffer(body, config.encoding)) : uri = uri.replace(/\?.*|$/, "?" + stringify(data)); + } + return body && (body.length && (config.headers["content-length"] = body.length), + config.headers["content-type"] || (config.headers["content-type"] = options.json ? "application/json; charset=utf-8" : "application/x-www-form-urlencoded"), + options.json && config.headers.accept === defaults.accept && (config.headers.accept = "application/json")), + this.send_request(1, method, uri, config, body, out, callback); + }, Needle.prototype.get_request_opts = function(method, uri, config) { + var opts = config.http_opts, proxy = config.proxy, remote = proxy ? url.parse(proxy) : url.parse(uri); + if (opts.protocol = remote.protocol, opts.host = remote.hostname, opts.port = remote.port || ("https:" == remote.protocol ? 443 : 80), + opts.path = proxy ? uri : remote.pathname + (remote.search || ""), opts.method = method, + opts.headers = config.headers, !opts.headers.host) { + var target = proxy ? url.parse(uri) : remote; + opts.headers.host = target.hostname, target.port && -1 === [ 80, 443 ].indexOf(target.port) && (opts.headers.host += ":" + target.port); + } + return opts; + }, Needle.prototype.should_follow = function(location, config, original) { + if (!location) return !1; + function matches(property) { + return property = original[property], -1 !== location.indexOf(property); + } + return !(location === original || config.follow_if_same_host && !matches("host") || config.follow_if_same_protocol && !matches("protocol")); + }, Needle.prototype.send_request = function(count, method, uri, config, post_data, out, callback) { + var timer, returned = 0, self = this, request_opts = this.get_request_opts(method, uri, config), protocol = "https:" == request_opts.protocol ? https : http; + function done(err, resp, body) { + return returned++ > 0 ? debug("Already finished, stopping here.") : (timer && clearTimeout(timer), + request.removeListener("error", had_error), callback ? callback(err, resp, body) : void out.emit("end", err, resp, body)); + } + function had_error(err) { + debug("Request error", err), done(err || new Error("Unknown error when making request.")); + } + function set_timeout(milisecs) { + milisecs <= 0 || (timer = setTimeout((function() { + request.abort(); + }), milisecs)); + } + function on_socket_end() { + this.writable || !1 !== this.destroyed || (this.destroy(), had_error(new Error("Remote end closed socket abruptly."))); + } + debug("Making request #" + count, request_opts); + var request = protocol.request(request_opts, (function(resp) { + var headers = resp.headers; + if (debug("Got response", resp.statusCode, headers), timer && clearTimeout(timer), + set_timeout(config.read_timeout), headers["set-cookie"] && config.parse_cookies && (resp.cookies = cookies.read(headers["set-cookie"]), + debug("Got cookies", resp.cookies)), -1 !== [ 301, 302, 303 ].indexOf(resp.statusCode) && self.should_follow(headers.location, config, uri)) { + if (count <= config.follow_max) return out.emit("redirect", headers.location), config.follow_keep_method || (method = "GET", + post_data = null, delete config.headers["content-length"]), config.follow_set_cookies && resp.cookies && (config.headers.cookie = cookies.write(resp.cookies)), + config.follow_set_referer && (config.headers.referer = uri), config.headers.host = null, + debug("Redirecting to " + url.resolve(uri, headers.location)), self.send_request(++count, method, url.resolve(uri, headers.location), config, post_data, out, callback); + if (config.follow_max > 0) return done(new Error("Max redirects reached. Possible loop in: " + headers.location)); + } + if (401 == resp.statusCode && headers["www-authenticate"] && config.credentials && !config.headers.authorization) { + var auth_header = auth.header(headers["www-authenticate"], config.credentials, request_opts); + if (auth_header) return config.headers.authorization = auth_header, self.send_request(count, method, uri, config, post_data, out, callback); + } + out.emit("header", resp.statusCode, headers), out.emit("headers", headers); + var pipeline = [], mime = (function(header) { + if (!header || "" === header) return {}; + var charset = "iso-8859-1", arr = header.split(";"); + try { + charset = arr[1].match(/charset=(.+)/)[1]; + } catch (e) {} + return { + type: arr[0], + charset: charset + }; + })(headers["content-type"]), text_response = mime.type && -1 != mime.type.indexOf("text/"); + if (headers["content-encoding"] && decompressors[headers["content-encoding"]]) { + var decompressor = decompressors[headers["content-encoding"]](); + decompressor.on("error", had_error), pipeline.push(decompressor); + } + if (config.parser && parsers[mime.type]) { + var parser_name = config.parser.toString().toLowerCase(); + -1 != [ "xml", "json" ].indexOf(parser_name) && parsers[mime.type].name != parser_name || (out.parser = parsers[mime.type].name, + pipeline.push(parsers[mime.type].fn()), out._writableState.objectMode = !0, out._readableState.objectMode = !0); + } else text_response && config.decode_response && mime.charset && !mime.charset.match(/utf-?8$/i) && pipeline.push(decoder(mime.charset)); + pipeline.push(out); + for (var tmp = resp; pipeline.length; ) tmp = tmp.pipe(pipeline.shift()); + if (config.output && 200 == resp.statusCode) { + var file = fs.createWriteStream(config.output); + file.on("error", had_error), out.on("end", (function() { + file.writable && file.end(); + })), out.on("readable", (function() { + for (var chunk; chunk = this.read(); ) file.writable && file.write(chunk); + })); + } + if (callback) { + resp.raw = [], resp.body = [], resp.bytes = 0; + var clean_pipe = new stream.PassThrough; + resp.pipe(clean_pipe), clean_pipe.on("readable", (function() { + for (var chunk; chunk = this.read(); ) resp.bytes += chunk.length, resp.raw.push(chunk); + })), out.on("readable", (function() { + for (var chunk; null !== (chunk = this.read()); ) "string" == typeof chunk && (chunk = new Buffer(chunk)), + resp.body.push(chunk); + })), out.on("end", (function() { + resp.raw = Buffer.concat(resp.raw), void 0 === resp.body[0] || Buffer.isBuffer(resp.body[0]) ? (resp.body = Buffer.concat(resp.body), + (text_response || out.parser) && (resp.body = resp.body.toString())) : (resp.body = resp.body[0], + out.parser && (resp.parser = out.parser)), done(null, resp, resp.body); + })); + } + })); + return set_timeout(config.open_timeout), request.on("error", had_error), request.once("socket", (function(socket) { + socket.on_socket_end || (socket.on_socket_end = on_socket_end, socket.on("end", socket.on_socket_end)); + })), post_data ? is_stream(post_data) ? post_data.pipe(request) : (request.write(post_data, config.encoding), + request.end()) : request.end(), out.request = request, out; + }, exports.version = version, exports.defaults = function(obj) { + for (var key in obj) { + var target_key = aliased.options[key] || key; + if (defaults.hasOwnProperty(target_key) && void 0 !== obj[key]) { + var valid_type = defaults[target_key].constructor.name; + if ("parse_response" != target_key && obj[key].constructor.name != valid_type) throw new TypeError("Invalid type for " + key + ", should be " + valid_type); + defaults[target_key] = obj[key]; + } + } + return defaults; + }, "head get".split(" ").forEach((function(method) { + exports[method] = function(uri, options, callback) { + return new Needle(method, uri, null, options, callback).start(); + }; + })), "post put patch delete".split(" ").forEach((function(method) { + exports[method] = function(uri, data, options, callback) { + return new Needle(method, uri, data, options, callback).start(); + }; + })), exports.request = function(method, uri, data, opts, callback) { + return new Needle(method, uri, data, opts, callback).start(); + }; }, function(module, exports) { exports.build = function stringify(obj, prefix) { if (prefix && null == obj) return prefix + "="; @@ -65490,7 +69211,7 @@ throw new TypeError("Cannot build a querystring out of: " + obj); }; }, function(module, exports, __webpack_require__) { - var readFile = __webpack_require__(2).readFile, basename = __webpack_require__(4).basename; + var readFile = __webpack_require__(2).readFile, basename = __webpack_require__(5).basename; function generate_part(name, part, boundary, callback) { var return_part = "--" + boundary + "\r\n"; function append(data, filename) { @@ -65538,7 +69259,7 @@ } }; }, function(module, exports, __webpack_require__) { - var createHash = __webpack_require__(9).createHash; + var createHash = __webpack_require__(6).createHash; function md5(string) { return createHash("md5").update(string).digest("hex"); } @@ -65646,7 +69367,7 @@ })); module.exports["application/json"] = json, module.exports["text/javascript"] = json; try { - var xml = parserFactory("xml", new (__webpack_require__(173).Parser)({ + var xml = parserFactory("xml", new (__webpack_require__(188).Parser)({ explicitRoot: !0, explicitArray: !1 }).parseString); @@ -65657,7 +69378,7 @@ (function() { "use strict"; var builder, defaults, escapeCDATA, requiresCDATA, wrapCDATA, hasProp = {}.hasOwnProperty; - builder = __webpack_require__(684), defaults = __webpack_require__(174).defaults, + builder = __webpack_require__(742), defaults = __webpack_require__(189).defaults, requiresCDATA = function(entry) { return "string" == typeof entry && (entry.indexOf("&") >= 0 || entry.indexOf(">") >= 0 || entry.indexOf("<") >= 0); }, wrapCDATA = function(entry) { @@ -65694,9 +69415,9 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLDocument, XMLDocumentCB, XMLStreamWriter, XMLStringWriter, assign, isFunction, ref; - ref = __webpack_require__(52), assign = ref.assign, isFunction = ref.isFunction, - XMLDocument = __webpack_require__(685), XMLDocumentCB = __webpack_require__(686), - XMLStringWriter = __webpack_require__(175), XMLStreamWriter = __webpack_require__(687), + ref = __webpack_require__(57), assign = ref.assign, isFunction = ref.isFunction, + XMLDocument = __webpack_require__(743), XMLDocumentCB = __webpack_require__(744), + XMLStringWriter = __webpack_require__(190), XMLStreamWriter = __webpack_require__(745), module.exports.create = function(name, xmldec, doctype, options) { var doc, root; if (null == name) throw new Error("Root element needs a name"); @@ -65716,8 +69437,8 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLNode, XMLStringWriter, XMLStringifier, isPlainObject, hasProp = {}.hasOwnProperty; - isPlainObject = __webpack_require__(52).isPlainObject, XMLNode = __webpack_require__(36), - XMLStringifier = __webpack_require__(281), XMLStringWriter = __webpack_require__(175), + isPlainObject = __webpack_require__(57).isPlainObject, XMLNode = __webpack_require__(37), + XMLStringifier = __webpack_require__(402), XMLStringWriter = __webpack_require__(190), module.exports = (function(superClass) { function XMLDocument(options) { XMLDocument.__super__.constructor.call(this, null), options || (options = {}), options.writer || (options.writer = new XMLStringWriter), @@ -65741,14 +69462,14 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLAttribute, XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLStringifier, XMLText, isFunction, isObject, isPlainObject, ref, hasProp = {}.hasOwnProperty; - ref = __webpack_require__(52), isObject = ref.isObject, isFunction = ref.isFunction, - isPlainObject = ref.isPlainObject, XMLElement = __webpack_require__(118), XMLCData = __webpack_require__(119), - XMLComment = __webpack_require__(120), XMLRaw = __webpack_require__(127), XMLText = __webpack_require__(128), - XMLProcessingInstruction = __webpack_require__(129), XMLDeclaration = __webpack_require__(121), - XMLDocType = __webpack_require__(122), XMLDTDAttList = __webpack_require__(123), - XMLDTDEntity = __webpack_require__(124), XMLDTDElement = __webpack_require__(125), - XMLDTDNotation = __webpack_require__(126), XMLAttribute = __webpack_require__(280), - XMLStringifier = __webpack_require__(281), XMLStringWriter = __webpack_require__(175), + ref = __webpack_require__(57), isObject = ref.isObject, isFunction = ref.isFunction, + isPlainObject = ref.isPlainObject, XMLElement = __webpack_require__(128), XMLCData = __webpack_require__(129), + XMLComment = __webpack_require__(130), XMLRaw = __webpack_require__(137), XMLText = __webpack_require__(138), + XMLProcessingInstruction = __webpack_require__(139), XMLDeclaration = __webpack_require__(131), + XMLDocType = __webpack_require__(132), XMLDTDAttList = __webpack_require__(133), + XMLDTDEntity = __webpack_require__(134), XMLDTDElement = __webpack_require__(135), + XMLDTDNotation = __webpack_require__(136), XMLAttribute = __webpack_require__(401), + XMLStringifier = __webpack_require__(402), XMLStringWriter = __webpack_require__(190), module.exports = (function() { function XMLDocumentCB(options, onData, onEnd) { var writerOptions; @@ -65898,12 +69619,12 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLElement, XMLProcessingInstruction, XMLRaw, XMLText, XMLWriterBase, hasProp = {}.hasOwnProperty; - XMLDeclaration = __webpack_require__(121), XMLDocType = __webpack_require__(122), - XMLCData = __webpack_require__(119), XMLComment = __webpack_require__(120), XMLElement = __webpack_require__(118), - XMLRaw = __webpack_require__(127), XMLText = __webpack_require__(128), XMLProcessingInstruction = __webpack_require__(129), - XMLDTDAttList = __webpack_require__(123), XMLDTDElement = __webpack_require__(125), - XMLDTDEntity = __webpack_require__(124), XMLDTDNotation = __webpack_require__(126), - XMLWriterBase = __webpack_require__(282), module.exports = (function(superClass) { + XMLDeclaration = __webpack_require__(131), XMLDocType = __webpack_require__(132), + XMLCData = __webpack_require__(129), XMLComment = __webpack_require__(130), XMLElement = __webpack_require__(128), + XMLRaw = __webpack_require__(137), XMLText = __webpack_require__(138), XMLProcessingInstruction = __webpack_require__(139), + XMLDTDAttList = __webpack_require__(133), XMLDTDElement = __webpack_require__(135), + XMLDTDEntity = __webpack_require__(134), XMLDTDNotation = __webpack_require__(136), + XMLWriterBase = __webpack_require__(403), module.exports = (function(superClass) { function XMLStreamWriter(stream, options) { XMLStreamWriter.__super__.constructor.call(this, options), this.stream = stream; } @@ -66064,9 +69785,9 @@ return fn.apply(me, arguments); }; }, hasProp = {}.hasOwnProperty; - sax = __webpack_require__(176), events = __webpack_require__(5), bom = __webpack_require__(689), - processors = __webpack_require__(283), setImmediate = __webpack_require__(117).setImmediate, - defaults = __webpack_require__(174).defaults, isEmpty = function(thing) { + sax = __webpack_require__(104), events = __webpack_require__(4), bom = __webpack_require__(747), + processors = __webpack_require__(404), setImmediate = __webpack_require__(103).setImmediate, + defaults = __webpack_require__(189).defaults, isEmpty = function(thing) { return "object" == typeof thing && null != thing && 0 === Object.keys(thing).length; }, processItem = function(processors, item, key) { var i, len; @@ -66229,7 +69950,7 @@ this.push(res), done(); }, module.exports = function(charset) { try { - iconv || (iconv = __webpack_require__(68)); + iconv || (iconv = __webpack_require__(66)); } catch (e) {} return iconv ? new StreamDecoder(charset) : new stream.PassThrough; }; @@ -66274,277 +69995,7 @@ } }; }, function(module, exports, __webpack_require__) { - var paths, convertQueue, common = __webpack_require__(70), videoapi = __webpack_require__(272), thumbApi = module.exports; - thumbApi.thumbMiddleware = function(req, res) { - videoapi.probeVideo(req.params.from, (function(err, instance) { - if (err) return common.handleErr(err, res); - var args = [ "-ss", isNaN(req.query.at) ? Math.round(instance.duration / 1e3 / 2) : req.query.at, "-i", req.params.from, "-r", "1", "-vframes", "1", "-f", "image2", "-vcodec", "mjpeg", "pipe:1" ]; - common.serveFfmpeg(args, "image/jpg", res); - })); - }, thumbApi.init = function(pathsParam, convertQueueParam) { - paths = pathsParam, convertQueue = convertQueueParam, common.init(paths, convertQueue); - }; -}, function(module, exports, __webpack_require__) { - var map = { - "./af": 284, - "./af.js": 284, - "./ar": 285, - "./ar-ma": 286, - "./ar-ma.js": 286, - "./ar-sa": 287, - "./ar-sa.js": 287, - "./ar-tn": 288, - "./ar-tn.js": 288, - "./ar.js": 285, - "./az": 289, - "./az.js": 289, - "./be": 290, - "./be.js": 290, - "./bg": 291, - "./bg.js": 291, - "./bn": 292, - "./bn.js": 292, - "./bo": 293, - "./bo.js": 293, - "./br": 294, - "./br.js": 294, - "./bs": 295, - "./bs.js": 295, - "./ca": 296, - "./ca.js": 296, - "./cs": 297, - "./cs.js": 297, - "./cv": 298, - "./cv.js": 298, - "./cy": 299, - "./cy.js": 299, - "./da": 300, - "./da.js": 300, - "./de": 301, - "./de-at": 302, - "./de-at.js": 302, - "./de.js": 301, - "./el": 303, - "./el.js": 303, - "./en-au": 304, - "./en-au.js": 304, - "./en-ca": 305, - "./en-ca.js": 305, - "./en-gb": 306, - "./en-gb.js": 306, - "./eo": 307, - "./eo.js": 307, - "./es": 308, - "./es.js": 308, - "./et": 309, - "./et.js": 309, - "./eu": 310, - "./eu.js": 310, - "./fa": 311, - "./fa.js": 311, - "./fi": 312, - "./fi.js": 312, - "./fo": 313, - "./fo.js": 313, - "./fr": 314, - "./fr-ca": 315, - "./fr-ca.js": 315, - "./fr.js": 314, - "./fy": 316, - "./fy.js": 316, - "./gl": 317, - "./gl.js": 317, - "./he": 318, - "./he.js": 318, - "./hi": 319, - "./hi.js": 319, - "./hr": 320, - "./hr.js": 320, - "./hu": 321, - "./hu.js": 321, - "./hy-am": 322, - "./hy-am.js": 322, - "./id": 323, - "./id.js": 323, - "./is": 324, - "./is.js": 324, - "./it": 325, - "./it.js": 325, - "./ja": 326, - "./ja.js": 326, - "./jv": 327, - "./jv.js": 327, - "./ka": 328, - "./ka.js": 328, - "./km": 329, - "./km.js": 329, - "./ko": 330, - "./ko.js": 330, - "./lb": 331, - "./lb.js": 331, - "./lt": 332, - "./lt.js": 332, - "./lv": 333, - "./lv.js": 333, - "./me": 334, - "./me.js": 334, - "./mk": 335, - "./mk.js": 335, - "./ml": 336, - "./ml.js": 336, - "./mr": 337, - "./mr.js": 337, - "./ms": 338, - "./ms-my": 339, - "./ms-my.js": 339, - "./ms.js": 338, - "./my": 340, - "./my.js": 340, - "./nb": 341, - "./nb.js": 341, - "./ne": 342, - "./ne.js": 342, - "./nl": 343, - "./nl.js": 343, - "./nn": 344, - "./nn.js": 344, - "./pl": 345, - "./pl.js": 345, - "./pt": 346, - "./pt-br": 347, - "./pt-br.js": 347, - "./pt.js": 346, - "./ro": 348, - "./ro.js": 348, - "./ru": 349, - "./ru.js": 349, - "./si": 350, - "./si.js": 350, - "./sk": 351, - "./sk.js": 351, - "./sl": 352, - "./sl.js": 352, - "./sq": 353, - "./sq.js": 353, - "./sr": 354, - "./sr-cyrl": 355, - "./sr-cyrl.js": 355, - "./sr.js": 354, - "./sv": 356, - "./sv.js": 356, - "./ta": 357, - "./ta.js": 357, - "./th": 358, - "./th.js": 358, - "./tl-ph": 359, - "./tl-ph.js": 359, - "./tr": 360, - "./tr.js": 360, - "./tzl": 361, - "./tzl.js": 361, - "./tzm": 362, - "./tzm-latn": 363, - "./tzm-latn.js": 363, - "./tzm.js": 362, - "./uk": 364, - "./uk.js": 364, - "./uz": 365, - "./uz.js": 365, - "./vi": 366, - "./vi.js": 366, - "./zh-cn": 367, - "./zh-cn.js": 367, - "./zh-tw": 368, - "./zh-tw.js": 368 - }; - function webpackContext(req) { - var id = webpackContextResolve(req); - return __webpack_require__(id); - } - function webpackContextResolve(req) { - if (!__webpack_require__.o(map, req)) { - var e = new Error("Cannot find module '" + req + "'"); - throw e.code = "MODULE_NOT_FOUND", e; - } - return map[req]; - } - webpackContext.keys = function() { - return Object.keys(map); - }, webpackContext.resolve = webpackContextResolve, module.exports = webpackContext, - webpackContext.id = 693; -}, function(module, exports, __webpack_require__) { - var subRetriever = __webpack_require__(695), subParser = __webpack_require__(739).parseString; - module.exports = function(args, callback) { - if (!args.url) return callback(new Error("pass .url")); - subRetriever.retrieveSrt(args.url, (function(err, buf) { - if (err) return callback(err); - try { - var tracks = subParser(buf.toString()); - } catch (e) { - callback(e); - } - callback(null, { - url: args.url, - tracks: Object.keys(tracks).map((function(key) { - return tracks[key]; - })) - }); - })); - }; -}, function(module, exports, __webpack_require__) { - var stream = __webpack_require__(3), needle = __webpack_require__(279), fs = __webpack_require__(2), iconv = __webpack_require__(68), charsetDetector = __webpack_require__(696), zlib = __webpack_require__(45), zip = __webpack_require__(727), _ = __webpack_require__(373); - function streamFromPath(path, agent) { - return path instanceof stream.Readable ? path : path.match("^http") ? needle.get(path, { - agent: agent, - follow_max: 12 - }) : fs.createReadStream(path); - } - module.exports = { - streamFromPath: streamFromPath, - retrieveSrt: function retrieveSrt(path, cb, options) { - var callback = _.once((function(err, res) { - if (err && options && options.agent) return retrieveSrt(path, cb); - cb(err, res); - })); - if ((stream = streamFromPath(path, options && options.agent)).on("error", (function(err) { - callback(err); - })), path.match("zip$")) { - var foundSrt = !1, bufs = [], zipbufs = []; - stream.on("data", (function(b) { - zipbufs.push(b); - })), stream.on("end", (function() { - try { - zip.Reader(Buffer.concat(zipbufs)).forEach((function(entry) { - entry.getName().match("srt$") && !foundSrt && (foundSrt = !0, bufs.push(entry.getData())); - })); - } catch (e) { - return callback(e); - } - if (!foundSrt) return callback(new Error("no srt found in zip file " + path)); - onDownloaded(); - })); - } else { - if (path.match("gz$")) var stream = stream.pipe(zlib.createUnzip()); - bufs = [], stream.on("data", (function(dat) { - bufs.push(dat); - })), stream.on("end", onDownloaded), stream.on("error", (function(e) { - callback(e); - })); - } - function onDownloaded() { - var charset, buf = Buffer.concat(bufs); - try { - charset = "ISO-8859-8-I" == (charset = options && options.charset && "auto" != options.charset ? options.charset : charsetDetector(buf)[0].charsetName) ? "ISO-8859-8" : charset, - buf = iconv.decode(buf, charset); - } catch (e) { - return void callback(e); - } - callback(null, buf); - } - } - }; -}, function(module, exports, __webpack_require__) { - var unicodeMatchers = __webpack_require__(697), multiByteCharsetMatchers = __webpack_require__(702), iso2022 = __webpack_require__(708), singleByteCharsetMatchers = __webpack_require__(712), DEFAULT_CS_RECOGNIZERS = [ __webpack_require__(726), unicodeMatchers["UTF-16BE"], unicodeMatchers["UTF-16LE"], unicodeMatchers["UTF-32BE"], unicodeMatchers["UTF-32LE"], multiByteCharsetMatchers.Shift_JIS, iso2022["ISO-2022-JP"], iso2022["ISO-2022-CN"], iso2022["ISO-2022-KR"], multiByteCharsetMatchers.GB18030, multiByteCharsetMatchers["EUC-JP"], multiByteCharsetMatchers["EUC-KR"], multiByteCharsetMatchers.Big5, singleByteCharsetMatchers["ISO-8859-1"], singleByteCharsetMatchers["ISO-8859-2"], singleByteCharsetMatchers["ISO-8859-5"], singleByteCharsetMatchers["ISO-8859-6"], singleByteCharsetMatchers["ISO-8859-7"], singleByteCharsetMatchers["ISO-8859-8-I"], singleByteCharsetMatchers["ISO-8859-8"], singleByteCharsetMatchers["windows-1251"], singleByteCharsetMatchers["windows-1256"], singleByteCharsetMatchers["KOIR8-R"], singleByteCharsetMatchers["ISO-8859-9"] ], ALL_CS_RECOGNIZERS = DEFAULT_CS_RECOGNIZERS.concat([ singleByteCharsetMatchers.IBM420_ltr, singleByteCharsetMatchers.IBM420_rtl, singleByteCharsetMatchers.IBM424_ltr, singleByteCharsetMatchers.IBM424_rtl ]); + var unicodeMatchers = __webpack_require__(751), multiByteCharsetMatchers = __webpack_require__(756), iso2022 = __webpack_require__(762), singleByteCharsetMatchers = __webpack_require__(766), DEFAULT_CS_RECOGNIZERS = [ __webpack_require__(780), unicodeMatchers["UTF-16BE"], unicodeMatchers["UTF-16LE"], unicodeMatchers["UTF-32BE"], unicodeMatchers["UTF-32LE"], multiByteCharsetMatchers.Shift_JIS, iso2022["ISO-2022-JP"], iso2022["ISO-2022-CN"], iso2022["ISO-2022-KR"], multiByteCharsetMatchers.GB18030, multiByteCharsetMatchers["EUC-JP"], multiByteCharsetMatchers["EUC-KR"], multiByteCharsetMatchers.Big5, singleByteCharsetMatchers["ISO-8859-1"], singleByteCharsetMatchers["ISO-8859-2"], singleByteCharsetMatchers["ISO-8859-5"], singleByteCharsetMatchers["ISO-8859-6"], singleByteCharsetMatchers["ISO-8859-7"], singleByteCharsetMatchers["ISO-8859-8-I"], singleByteCharsetMatchers["ISO-8859-8"], singleByteCharsetMatchers["windows-1251"], singleByteCharsetMatchers["windows-1256"], singleByteCharsetMatchers["KOIR8-R"], singleByteCharsetMatchers["ISO-8859-9"] ], ALL_CS_RECOGNIZERS = DEFAULT_CS_RECOGNIZERS.concat([ singleByteCharsetMatchers.IBM420_ltr, singleByteCharsetMatchers.IBM420_rtl, singleByteCharsetMatchers.IBM424_ltr, singleByteCharsetMatchers.IBM424_rtl ]); module.exports = function(input, matchers) { for (var matchersLength = (matchers = matchers || DEFAULT_CS_RECOGNIZERS).length, stat = (function(input) { for (var inputLength = input.length, byteStats = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], srci = 0; srci < inputLength; srci++) byteStats[255 & input[srci]]++; @@ -66565,10 +70016,10 @@ })), matches; }, module.exports.ALL_CS_RECOGNIZERS = ALL_CS_RECOGNIZERS, module.exports.DEFAULT_CS_RECOGNIZERS = DEFAULT_CS_RECOGNIZERS; }, function(module, exports, __webpack_require__) { - exports["UTF-16BE"] = __webpack_require__(698), exports["UTF-16LE"] = __webpack_require__(699), - exports["UTF-32BE"] = __webpack_require__(700), exports["UTF-32LE"] = __webpack_require__(701); + exports["UTF-16BE"] = __webpack_require__(752), exports["UTF-16LE"] = __webpack_require__(753), + exports["UTF-32BE"] = __webpack_require__(754), exports["UTF-32LE"] = __webpack_require__(755); }, function(module, exports, __webpack_require__) { - var CharsetMatch = __webpack_require__(18), codeUnit16FromBytes = __webpack_require__(130).codeUnit16FromBytes, adjustConfidence = __webpack_require__(130).adjustConfidence; + var CharsetMatch = __webpack_require__(18), codeUnit16FromBytes = __webpack_require__(140).codeUnit16FromBytes, adjustConfidence = __webpack_require__(140).adjustConfidence; module.exports = function(input) { for (var confidence = 10, bytesToCheck = Math.min(input.length, 30), charIndex = 0; charIndex < bytesToCheck - 1; charIndex += 2) { var codeUnit = codeUnit16FromBytes(input[charIndex], input[charIndex + 1]); @@ -66581,7 +70032,7 @@ return bytesToCheck < 4 && confidence < 100 && (confidence = 0), confidence > 0 ? new CharsetMatch(confidence, "UTF-16BE") : null; }; }, function(module, exports, __webpack_require__) { - var CharsetMatch = __webpack_require__(18), codeUnit16FromBytes = __webpack_require__(130).codeUnit16FromBytes, adjustConfidence = __webpack_require__(130).adjustConfidence; + var CharsetMatch = __webpack_require__(18), codeUnit16FromBytes = __webpack_require__(140).codeUnit16FromBytes, adjustConfidence = __webpack_require__(140).adjustConfidence; module.exports = function(input) { for (var confidence = 10, bytesToCheck = Math.min(input.length, 30), charIndex = 0; charIndex < bytesToCheck - 1; charIndex += 2) { var codeUnit = codeUnit16FromBytes(input[charIndex + 1], input[charIndex]); @@ -66594,19 +70045,19 @@ return bytesToCheck < 4 && confidence < 100 && (confidence = 0), confidence > 0 ? new CharsetMatch(confidence, "UTF-16LE") : null; }; }, function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(370)((function(input, index) { + module.exports = __webpack_require__(405)((function(input, index) { return (255 & input[index + 0]) << 24 | (255 & input[index + 1]) << 16 | (255 & input[index + 2]) << 8 | 255 & input[index + 3]; }), "UTF-32BE"); }, function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(370)((function(input, index) { + module.exports = __webpack_require__(405)((function(input, index) { return (255 & input[index + 3]) << 24 | (255 & input[index + 2]) << 16 | (255 & input[index + 1]) << 8 | 255 & input[index + 0]; }), "UTF-32LE"); }, function(module, exports, __webpack_require__) { - exports.Big5 = __webpack_require__(703), exports["EUC-JP"] = __webpack_require__(704), - exports["EUC-KR"] = __webpack_require__(705), exports.GB18030 = __webpack_require__(706), - exports.Shift_JIS = __webpack_require__(707); + exports.Big5 = __webpack_require__(757), exports["EUC-JP"] = __webpack_require__(758), + exports["EUC-KR"] = __webpack_require__(759), exports.GB18030 = __webpack_require__(760), + exports.Shift_JIS = __webpack_require__(761); }, function(module, exports, __webpack_require__) { - var CharsetMatch = __webpack_require__(18), match = __webpack_require__(131)([ 41280, 41281, 41282, 41283, 41287, 41289, 41333, 41334, 42048, 42054, 42055, 42056, 42065, 42068, 42071, 42084, 42090, 42092, 42103, 42147, 42148, 42151, 42177, 42190, 42193, 42207, 42216, 42237, 42304, 42312, 42328, 42345, 42445, 42471, 42583, 42593, 42594, 42600, 42608, 42664, 42675, 42681, 42707, 42715, 42726, 42738, 42816, 42833, 42841, 42970, 43171, 43173, 43181, 43217, 43219, 43236, 43260, 43456, 43474, 43507, 43627, 43706, 43710, 43724, 43772, 44103, 44111, 44208, 44242, 44377, 44745, 45024, 45290, 45423, 45747, 45764, 45935, 46156, 46158, 46412, 46501, 46525, 46544, 46552, 46705, 47085, 47207, 47428, 47832, 47940, 48033, 48593, 49860, 50105, 50240, 50271 ], (function(it) { + var CharsetMatch = __webpack_require__(18), match = __webpack_require__(141)([ 41280, 41281, 41282, 41283, 41287, 41289, 41333, 41334, 42048, 42054, 42055, 42056, 42065, 42068, 42071, 42084, 42090, 42092, 42103, 42147, 42148, 42151, 42177, 42190, 42193, 42207, 42216, 42237, 42304, 42312, 42328, 42345, 42445, 42471, 42583, 42593, 42594, 42600, 42608, 42664, 42675, 42681, 42707, 42715, 42726, 42738, 42816, 42833, 42841, 42970, 43171, 43173, 43181, 43217, 43219, 43236, 43260, 43456, 43474, 43507, 43627, 43706, 43710, 43724, 43772, 44103, 44111, 44208, 44242, 44377, 44745, 45024, 45290, 45423, 45747, 45764, 45935, 46156, 46158, 46412, 46501, 46525, 46544, 46552, 46705, 47085, 47207, 47428, 47832, 47940, 48033, 48593, 49860, 50105, 50240, 50271 ], (function(it) { it.index = it.nextIndex, it.error = !1; var firstByte = it.charValue = it.nextByte(); if (firstByte < 0) return !1; @@ -66620,19 +70071,19 @@ return 0 == confidence ? null : new CharsetMatch(confidence, "Big5", "zh"); }; }, function(module, exports, __webpack_require__) { - var CharsetMatch = __webpack_require__(18), match = __webpack_require__(371)([ 41377, 41378, 41379, 41382, 41404, 41418, 41419, 41430, 41431, 42146, 42148, 42150, 42152, 42154, 42155, 42156, 42157, 42159, 42161, 42163, 42165, 42167, 42169, 42171, 42173, 42175, 42176, 42177, 42179, 42180, 42182, 42183, 42184, 42185, 42186, 42187, 42190, 42191, 42192, 42206, 42207, 42209, 42210, 42212, 42216, 42217, 42218, 42219, 42220, 42223, 42226, 42227, 42402, 42403, 42404, 42406, 42407, 42410, 42413, 42415, 42416, 42419, 42421, 42423, 42424, 42425, 42431, 42435, 42438, 42439, 42440, 42441, 42443, 42448, 42453, 42454, 42455, 42462, 42464, 42465, 42469, 42473, 42474, 42475, 42476, 42477, 42483, 47273, 47572, 47854, 48072, 48880, 49079, 50410, 50940, 51133, 51896, 51955, 52188, 52689 ]); + var CharsetMatch = __webpack_require__(18), match = __webpack_require__(406)([ 41377, 41378, 41379, 41382, 41404, 41418, 41419, 41430, 41431, 42146, 42148, 42150, 42152, 42154, 42155, 42156, 42157, 42159, 42161, 42163, 42165, 42167, 42169, 42171, 42173, 42175, 42176, 42177, 42179, 42180, 42182, 42183, 42184, 42185, 42186, 42187, 42190, 42191, 42192, 42206, 42207, 42209, 42210, 42212, 42216, 42217, 42218, 42219, 42220, 42223, 42226, 42227, 42402, 42403, 42404, 42406, 42407, 42410, 42413, 42415, 42416, 42419, 42421, 42423, 42424, 42425, 42431, 42435, 42438, 42439, 42440, 42441, 42443, 42448, 42453, 42454, 42455, 42462, 42464, 42465, 42469, 42473, 42474, 42475, 42476, 42477, 42483, 47273, 47572, 47854, 48072, 48880, 49079, 50410, 50940, 51133, 51896, 51955, 52188, 52689 ]); module.exports = function(input) { var confidence = match(input); return 0 == confidence ? null : new CharsetMatch(confidence, "EUC-JP", "ja"); }; }, function(module, exports, __webpack_require__) { - var match = __webpack_require__(371)([ 45217, 45235, 45253, 45261, 45268, 45286, 45293, 45304, 45306, 45308, 45496, 45497, 45511, 45527, 45538, 45994, 46011, 46274, 46287, 46297, 46315, 46501, 46517, 46527, 46535, 46569, 46835, 47023, 47042, 47054, 47270, 47278, 47286, 47288, 47291, 47337, 47531, 47534, 47564, 47566, 47613, 47800, 47822, 47824, 47857, 48103, 48115, 48125, 48301, 48314, 48338, 48374, 48570, 48576, 48579, 48581, 48838, 48840, 48863, 48878, 48888, 48890, 49057, 49065, 49088, 49124, 49131, 49132, 49144, 49319, 49327, 49336, 49338, 49339, 49341, 49351, 49356, 49358, 49359, 49366, 49370, 49381, 49403, 49404, 49572, 49574, 49590, 49622, 49631, 49654, 49656, 50337, 50637, 50862, 51151, 51153, 51154, 51160, 51173, 51373 ]), CharsetMatch = __webpack_require__(18); + var match = __webpack_require__(406)([ 45217, 45235, 45253, 45261, 45268, 45286, 45293, 45304, 45306, 45308, 45496, 45497, 45511, 45527, 45538, 45994, 46011, 46274, 46287, 46297, 46315, 46501, 46517, 46527, 46535, 46569, 46835, 47023, 47042, 47054, 47270, 47278, 47286, 47288, 47291, 47337, 47531, 47534, 47564, 47566, 47613, 47800, 47822, 47824, 47857, 48103, 48115, 48125, 48301, 48314, 48338, 48374, 48570, 48576, 48579, 48581, 48838, 48840, 48863, 48878, 48888, 48890, 49057, 49065, 49088, 49124, 49131, 49132, 49144, 49319, 49327, 49336, 49338, 49339, 49341, 49351, 49356, 49358, 49359, 49366, 49370, 49381, 49403, 49404, 49572, 49574, 49590, 49622, 49631, 49654, 49656, 50337, 50637, 50862, 51151, 51153, 51154, 51160, 51173, 51373 ]), CharsetMatch = __webpack_require__(18); module.exports = function(input) { var confidence = match(input); return 0 == confidence ? null : new CharsetMatch(confidence, "EUC-KR", "ko"); }; }, function(module, exports, __webpack_require__) { - var CharsetMatch = __webpack_require__(18), match = __webpack_require__(131)([ 41377, 41378, 41379, 41380, 41392, 41393, 41457, 41459, 41889, 41900, 41914, 45480, 45496, 45502, 45755, 46025, 46070, 46323, 46525, 46532, 46563, 46767, 46804, 46816, 47010, 47016, 47037, 47062, 47069, 47284, 47327, 47350, 47531, 47561, 47576, 47610, 47613, 47821, 48039, 48086, 48097, 48122, 48316, 48347, 48382, 48588, 48845, 48861, 49076, 49094, 49097, 49332, 49389, 49611, 49883, 50119, 50396, 50410, 50636, 50935, 51192, 51371, 51403, 51413, 51431, 51663, 51706, 51889, 51893, 51911, 51920, 51926, 51957, 51965, 52460, 52728, 52906, 52932, 52946, 52965, 53173, 53186, 53206, 53442, 53445, 53456, 53460, 53671, 53930, 53938, 53941, 53947, 53972, 54211, 54224, 54269, 54466, 54490, 54754, 54992 ], (function(it) { + var CharsetMatch = __webpack_require__(18), match = __webpack_require__(141)([ 41377, 41378, 41379, 41380, 41392, 41393, 41457, 41459, 41889, 41900, 41914, 45480, 45496, 45502, 45755, 46025, 46070, 46323, 46525, 46532, 46563, 46767, 46804, 46816, 47010, 47016, 47037, 47062, 47069, 47284, 47327, 47350, 47531, 47561, 47576, 47610, 47613, 47821, 48039, 48086, 48097, 48122, 48316, 48347, 48382, 48588, 48845, 48861, 49076, 49094, 49097, 49332, 49389, 49611, 49883, 50119, 50396, 50410, 50636, 50935, 51192, 51371, 51403, 51413, 51431, 51663, 51706, 51889, 51893, 51911, 51920, 51926, 51957, 51965, 52460, 52728, 52906, 52932, 52946, 52965, 53173, 53186, 53206, 53442, 53445, 53456, 53460, 53671, 53930, 53938, 53941, 53947, 53972, 54211, 54224, 54269, 54466, 54490, 54754, 54992 ], (function(it) { it.index = it.nextIndex, it.error = !1; var firstByte = 0, secondByte = 0, thirdByte = 0, fourthByte = 0; buildChar: if ((firstByte = it.charValue = it.nextByte()) < 0) it.done = !0; else if (!(firstByte <= 128) && (secondByte = it.nextByte(), @@ -66651,7 +70102,7 @@ return 0 == confidence ? null : new CharsetMatch(confidence, "GB18030", "zh"); }; }, function(module, exports, __webpack_require__) { - var CharsetMatch = __webpack_require__(18), match = __webpack_require__(131)([ 33088, 33089, 33090, 33093, 33115, 33129, 33130, 33141, 33142, 33440, 33442, 33444, 33449, 33450, 33451, 33453, 33455, 33457, 33459, 33461, 33463, 33469, 33470, 33473, 33476, 33477, 33478, 33480, 33481, 33484, 33485, 33500, 33504, 33511, 33512, 33513, 33514, 33520, 33521, 33601, 33603, 33614, 33615, 33624, 33630, 33634, 33639, 33653, 33654, 33673, 33674, 33675, 33677, 33683, 36502, 37882, 38314 ], (function(it) { + var CharsetMatch = __webpack_require__(18), match = __webpack_require__(141)([ 33088, 33089, 33090, 33093, 33115, 33129, 33130, 33141, 33142, 33440, 33442, 33444, 33449, 33450, 33451, 33453, 33455, 33457, 33459, 33461, 33463, 33469, 33470, 33473, 33476, 33477, 33478, 33480, 33481, 33484, 33485, 33500, 33504, 33511, 33512, 33513, 33514, 33520, 33521, 33601, 33603, 33614, 33615, 33624, 33630, 33634, 33639, 33653, 33654, 33673, 33674, 33675, 33677, 33683, 36502, 37882, 38314 ], (function(it) { it.index = it.nextIndex, it.error = !1; var firstByte = it.charValue = it.nextByte(); if (firstByte < 0) return !1; @@ -66665,41 +70116,41 @@ return 0 == confidence ? null : new CharsetMatch(confidence, "Shift_JIS", "ja"); }; }, function(module, exports, __webpack_require__) { - exports["ISO-2022-JP"] = __webpack_require__(709), exports["ISO-2022-KR"] = __webpack_require__(710), - exports["ISO-2022-CN"] = __webpack_require__(711); + exports["ISO-2022-JP"] = __webpack_require__(763), exports["ISO-2022-KR"] = __webpack_require__(764), + exports["ISO-2022-CN"] = __webpack_require__(765); }, function(module, exports, __webpack_require__) { - var escapeSequences = [ [ 27, 36, 40, 67 ], [ 27, 36, 40, 68 ], [ 27, 36, 64 ], [ 27, 36, 65 ], [ 27, 36, 66 ], [ 27, 38, 64 ], [ 27, 40, 66 ], [ 27, 40, 72 ], [ 27, 40, 73 ], [ 27, 40, 74 ], [ 27, 46, 65 ], [ 27, 46, 70 ] ], baseMatch = __webpack_require__(177), CharsetMatch = __webpack_require__(18); + var escapeSequences = [ [ 27, 36, 40, 67 ], [ 27, 36, 40, 68 ], [ 27, 36, 64 ], [ 27, 36, 65 ], [ 27, 36, 66 ], [ 27, 38, 64 ], [ 27, 40, 66 ], [ 27, 40, 72 ], [ 27, 40, 73 ], [ 27, 40, 74 ], [ 27, 46, 65 ], [ 27, 46, 70 ] ], baseMatch = __webpack_require__(191), CharsetMatch = __webpack_require__(18); module.exports = function(input) { var confidence = baseMatch(input, input.length, escapeSequences); return 0 == confidence ? null : new CharsetMatch(confidence, "ISO-2022-JP"); }; }, function(module, exports, __webpack_require__) { - var escapeSequences = [ [ 27, 36, 41, 67 ] ], baseMatch = __webpack_require__(177), CharsetMatch = __webpack_require__(18); + var escapeSequences = [ [ 27, 36, 41, 67 ] ], baseMatch = __webpack_require__(191), CharsetMatch = __webpack_require__(18); module.exports = function(input) { var confidence = baseMatch(input, input.length, escapeSequences); return 0 == confidence ? null : new CharsetMatch(confidence, "ISO-2022-KR"); }; }, function(module, exports, __webpack_require__) { - var escapeSequences = [ [ 27, 36, 41, 65 ], [ 27, 36, 41, 71 ], [ 27, 36, 42, 72 ], [ 27, 36, 41, 69 ], [ 27, 36, 43, 73 ], [ 27, 36, 43, 74 ], [ 27, 36, 43, 75 ], [ 27, 36, 43, 76 ], [ 27, 36, 43, 77 ], [ 27, 78 ], [ 27, 79 ] ], baseMatch = __webpack_require__(177), CharsetMatch = __webpack_require__(18); + var escapeSequences = [ [ 27, 36, 41, 65 ], [ 27, 36, 41, 71 ], [ 27, 36, 42, 72 ], [ 27, 36, 41, 69 ], [ 27, 36, 43, 73 ], [ 27, 36, 43, 74 ], [ 27, 36, 43, 75 ], [ 27, 36, 43, 76 ], [ 27, 36, 43, 77 ], [ 27, 78 ], [ 27, 79 ] ], baseMatch = __webpack_require__(191), CharsetMatch = __webpack_require__(18); module.exports = function(input) { var confidence = baseMatch(input, input.length, escapeSequences); return 0 == confidence ? null : new CharsetMatch(confidence, "ISO-2022-CN"); }; }, function(module, exports, __webpack_require__) { - exports["ISO-8859-1"] = __webpack_require__(713), exports["ISO-8859-2"] = __webpack_require__(715), - exports["ISO-8859-5"] = __webpack_require__(716)["8859_5_ru"], exports["ISO-8859-6"] = __webpack_require__(717)["8859_6_ar"], - exports["ISO-8859-7"] = __webpack_require__(718)["8859_7_el"]; - var iso_8859_8 = __webpack_require__(719); + exports["ISO-8859-1"] = __webpack_require__(767), exports["ISO-8859-2"] = __webpack_require__(769), + exports["ISO-8859-5"] = __webpack_require__(770)["8859_5_ru"], exports["ISO-8859-6"] = __webpack_require__(771)["8859_6_ar"], + exports["ISO-8859-7"] = __webpack_require__(772)["8859_7_el"]; + var iso_8859_8 = __webpack_require__(773); exports["ISO-8859-8"] = iso_8859_8["8859_8_he"], exports["ISO-8859-8-I"] = iso_8859_8["8859_8_I_he"], - exports["ISO-8859-9"] = __webpack_require__(720)["8859_9_tr"]; - var ibm420 = __webpack_require__(721); + exports["ISO-8859-9"] = __webpack_require__(774)["8859_9_tr"]; + var ibm420 = __webpack_require__(775); exports.IBM420_rtl = ibm420.IBM420_rtl, exports.IBM420_ltr = ibm420.IBM420_ltr; - var ibm424 = __webpack_require__(722); + var ibm424 = __webpack_require__(776); exports.IBM424_rtl = ibm424.IBM424_rtl, exports.IBM424_ltr = ibm424.IBM424_ltr, - exports["windows-1251"] = __webpack_require__(723), exports["windows-1256"] = __webpack_require__(724), - exports["KOIR8-R"] = __webpack_require__(725); + exports["windows-1251"] = __webpack_require__(777), exports["windows-1256"] = __webpack_require__(778), + exports["KOIR8-R"] = __webpack_require__(779); }, function(module, exports, __webpack_require__) { - var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 170, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 181, 32, 32, 32, 32, 186, 32, 32, 32, 32, 32, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 253, 254, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 253, 254, 255 ], base = __webpack_require__(39), NGramsPlusLang = base.NGramsPlusLang, ngrams_8859_1 = [ new NGramsPlusLang("da", [ 2122086, 2122100, 2122853, 2123118, 2123122, 2123375, 2123873, 2124064, 2125157, 2125671, 2126053, 2126697, 2126708, 2126953, 2127465, 6383136, 6385184, 6385252, 6386208, 6386720, 6579488, 6579566, 6579570, 6579572, 6627443, 6644768, 6644837, 6647328, 6647396, 6648352, 6648421, 6648608, 6648864, 6713202, 6776096, 6776174, 6776178, 6907749, 6908960, 6909543, 7038240, 7039845, 7103858, 7104871, 7105637, 7169380, 7234661, 7234848, 7235360, 7235429, 7300896, 7302432, 7303712, 7398688, 7479396, 7479397, 7479411, 7496992, 7566437, 7610483, 7628064, 7628146, 7629164, 7759218 ]), new NGramsPlusLang("de", [ 2122094, 2122101, 2122341, 2122849, 2122853, 2122857, 2123113, 2123621, 2123873, 2124142, 2125161, 2126691, 2126693, 2127214, 2127461, 2127471, 2127717, 2128501, 6448498, 6514720, 6514789, 6514804, 6578547, 6579566, 6579570, 6580581, 6627428, 6627443, 6646126, 6646132, 6647328, 6648352, 6648608, 6776174, 6841710, 6845472, 6906728, 6907168, 6909472, 6909541, 6911008, 7104867, 7105637, 7217249, 7217252, 7217267, 7234592, 7234661, 7234848, 7235360, 7235429, 7238757, 7479396, 7496805, 7497065, 7562088, 7566437, 7610468, 7628064, 7628142, 7628146, 7695972, 7695975, 7759218 ]), new NGramsPlusLang("en", [ 2122016, 2122094, 2122341, 2122607, 2123375, 2123873, 2123877, 2124142, 2125153, 2125670, 2125938, 2126437, 2126689, 2126708, 2126952, 2126959, 2127720, 6383972, 6384672, 6385184, 6385252, 6386464, 6386720, 6386789, 6386793, 6561889, 6561908, 6627425, 6627443, 6627444, 6644768, 6647412, 6648352, 6648608, 6713202, 6840692, 6841632, 6841714, 6906912, 6909472, 6909543, 6909806, 6910752, 7217249, 7217268, 7234592, 7235360, 7238688, 7300640, 7302688, 7303712, 7496992, 7500576, 7544929, 7544948, 7561577, 7566368, 7610484, 7628146, 7628897, 7628901, 7629167, 7630624, 7631648 ]), new NGramsPlusLang("es", [ 2122016, 2122593, 2122607, 2122853, 2123116, 2123118, 2123123, 2124142, 2124897, 2124911, 2125921, 2125935, 2125938, 2126197, 2126437, 2126693, 2127214, 2128160, 6365283, 6365284, 6365285, 6365292, 6365296, 6382441, 6382703, 6384672, 6386208, 6386464, 6515187, 6516590, 6579488, 6579564, 6582048, 6627428, 6627429, 6627436, 6646816, 6647328, 6647412, 6648608, 6648692, 6907246, 6943598, 7102752, 7106419, 7217253, 7238757, 7282788, 7282789, 7302688, 7303712, 7303968, 7364978, 7435621, 7495968, 7497075, 7544932, 7544933, 7544944, 7562528, 7628064, 7630624, 7693600, 15953440 ]), new NGramsPlusLang("fr", [ 2122101, 2122607, 2122849, 2122853, 2122869, 2123118, 2123124, 2124897, 2124901, 2125921, 2125935, 2125938, 2126197, 2126693, 2126703, 2127214, 2154528, 6385268, 6386793, 6513952, 6516590, 6579488, 6579571, 6583584, 6627425, 6627427, 6627428, 6627429, 6627436, 6627440, 6627443, 6647328, 6647412, 6648352, 6648608, 6648864, 6649202, 6909806, 6910752, 6911008, 7102752, 7103776, 7103859, 7169390, 7217252, 7234848, 7238432, 7238688, 7302688, 7302772, 7304562, 7435621, 7479404, 7496992, 7544929, 7544932, 7544933, 7544940, 7544944, 7610468, 7628064, 7629167, 7693600, 7696928 ]), new NGramsPlusLang("it", [ 2122092, 2122600, 2122607, 2122853, 2122857, 2123040, 2124140, 2124142, 2124897, 2125925, 2125938, 2127214, 6365283, 6365284, 6365296, 6365299, 6386799, 6514789, 6516590, 6579564, 6580512, 6627425, 6627427, 6627428, 6627433, 6627436, 6627440, 6627443, 6646816, 6646892, 6647412, 6648352, 6841632, 6889569, 6889571, 6889572, 6889587, 6906144, 6908960, 6909472, 6909806, 7102752, 7103776, 7104800, 7105633, 7234848, 7235872, 7237408, 7238757, 7282785, 7282788, 7282793, 7282803, 7302688, 7302757, 7366002, 7495968, 7496992, 7563552, 7627040, 7628064, 7629088, 7630624, 8022383 ]), new NGramsPlusLang("nl", [ 2122092, 2122341, 2122849, 2122853, 2122857, 2123109, 2123118, 2123621, 2123877, 2124142, 2125153, 2125157, 2125680, 2126949, 2127457, 2127461, 2127471, 2127717, 2128489, 6381934, 6381938, 6385184, 6385252, 6386208, 6386720, 6514804, 6579488, 6579566, 6579570, 6627426, 6627446, 6645102, 6645106, 6647328, 6648352, 6648435, 6648864, 6776174, 6841716, 6907168, 6909472, 6909543, 6910752, 7217250, 7217252, 7217253, 7217256, 7217263, 7217270, 7234661, 7235360, 7302756, 7303026, 7303200, 7303712, 7562088, 7566437, 7610468, 7628064, 7628142, 7628146, 7758190, 7759218, 7761775 ]), new NGramsPlusLang("no", [ 2122100, 2122102, 2122853, 2123118, 2123122, 2123375, 2123873, 2124064, 2125157, 2125671, 2126053, 2126693, 2126699, 2126703, 2126708, 2126953, 2127465, 2155808, 6385252, 6386208, 6386720, 6579488, 6579566, 6579572, 6627443, 6644768, 6647328, 6647397, 6648352, 6648421, 6648864, 6648948, 6713202, 6776174, 6908779, 6908960, 6909543, 7038240, 7039845, 7103776, 7105637, 7169380, 7169390, 7217267, 7234848, 7235360, 7235429, 7237221, 7300896, 7302432, 7303712, 7398688, 7479411, 7496992, 7565165, 7566437, 7610483, 7628064, 7628142, 7628146, 7629164, 7631904, 7631973, 7759218 ]), new NGramsPlusLang("pt", [ 2122016, 2122607, 2122849, 2122853, 2122863, 2123040, 2123123, 2125153, 2125423, 2125600, 2125921, 2125935, 2125938, 2126197, 2126437, 2126693, 2127213, 6365281, 6365283, 6365284, 6365296, 6382693, 6382703, 6384672, 6386208, 6386273, 6386464, 6516589, 6516590, 6578464, 6579488, 6582048, 6582131, 6627425, 6627428, 6647072, 6647412, 6648608, 6648692, 6906144, 6906721, 7169390, 7238757, 7238767, 7282785, 7282787, 7282788, 7282789, 7282800, 7303968, 7364978, 7435621, 7495968, 7497075, 7544929, 7544932, 7544933, 7544944, 7566433, 7628064, 7630624, 7693600, 14905120, 15197039 ]), new NGramsPlusLang("sv", [ 2122100, 2122102, 2122853, 2123118, 2123510, 2123873, 2124064, 2124142, 2124655, 2125157, 2125667, 2126053, 2126699, 2126703, 2126708, 2126953, 2127457, 2127465, 2155634, 6382693, 6385184, 6385252, 6386208, 6386804, 6514720, 6579488, 6579566, 6579570, 6579572, 6644768, 6647328, 6648352, 6648864, 6747762, 6776174, 6909036, 6909543, 7037216, 7105568, 7169380, 7217267, 7233824, 7234661, 7235360, 7235429, 7235950, 7299944, 7302432, 7302688, 7398688, 7479393, 7479411, 7495968, 7564129, 7565165, 7610483, 7627040, 7628064, 7628146, 7629164, 7631904, 7758194, 14971424, 16151072 ]) ], ngrams_8859_1_length = ngrams_8859_1.length, CharsetMatch = __webpack_require__(18); + var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 170, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 181, 32, 32, 32, 32, 186, 32, 32, 32, 32, 32, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 253, 254, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 253, 254, 255 ], base = __webpack_require__(41), NGramsPlusLang = base.NGramsPlusLang, ngrams_8859_1 = [ new NGramsPlusLang("da", [ 2122086, 2122100, 2122853, 2123118, 2123122, 2123375, 2123873, 2124064, 2125157, 2125671, 2126053, 2126697, 2126708, 2126953, 2127465, 6383136, 6385184, 6385252, 6386208, 6386720, 6579488, 6579566, 6579570, 6579572, 6627443, 6644768, 6644837, 6647328, 6647396, 6648352, 6648421, 6648608, 6648864, 6713202, 6776096, 6776174, 6776178, 6907749, 6908960, 6909543, 7038240, 7039845, 7103858, 7104871, 7105637, 7169380, 7234661, 7234848, 7235360, 7235429, 7300896, 7302432, 7303712, 7398688, 7479396, 7479397, 7479411, 7496992, 7566437, 7610483, 7628064, 7628146, 7629164, 7759218 ]), new NGramsPlusLang("de", [ 2122094, 2122101, 2122341, 2122849, 2122853, 2122857, 2123113, 2123621, 2123873, 2124142, 2125161, 2126691, 2126693, 2127214, 2127461, 2127471, 2127717, 2128501, 6448498, 6514720, 6514789, 6514804, 6578547, 6579566, 6579570, 6580581, 6627428, 6627443, 6646126, 6646132, 6647328, 6648352, 6648608, 6776174, 6841710, 6845472, 6906728, 6907168, 6909472, 6909541, 6911008, 7104867, 7105637, 7217249, 7217252, 7217267, 7234592, 7234661, 7234848, 7235360, 7235429, 7238757, 7479396, 7496805, 7497065, 7562088, 7566437, 7610468, 7628064, 7628142, 7628146, 7695972, 7695975, 7759218 ]), new NGramsPlusLang("en", [ 2122016, 2122094, 2122341, 2122607, 2123375, 2123873, 2123877, 2124142, 2125153, 2125670, 2125938, 2126437, 2126689, 2126708, 2126952, 2126959, 2127720, 6383972, 6384672, 6385184, 6385252, 6386464, 6386720, 6386789, 6386793, 6561889, 6561908, 6627425, 6627443, 6627444, 6644768, 6647412, 6648352, 6648608, 6713202, 6840692, 6841632, 6841714, 6906912, 6909472, 6909543, 6909806, 6910752, 7217249, 7217268, 7234592, 7235360, 7238688, 7300640, 7302688, 7303712, 7496992, 7500576, 7544929, 7544948, 7561577, 7566368, 7610484, 7628146, 7628897, 7628901, 7629167, 7630624, 7631648 ]), new NGramsPlusLang("es", [ 2122016, 2122593, 2122607, 2122853, 2123116, 2123118, 2123123, 2124142, 2124897, 2124911, 2125921, 2125935, 2125938, 2126197, 2126437, 2126693, 2127214, 2128160, 6365283, 6365284, 6365285, 6365292, 6365296, 6382441, 6382703, 6384672, 6386208, 6386464, 6515187, 6516590, 6579488, 6579564, 6582048, 6627428, 6627429, 6627436, 6646816, 6647328, 6647412, 6648608, 6648692, 6907246, 6943598, 7102752, 7106419, 7217253, 7238757, 7282788, 7282789, 7302688, 7303712, 7303968, 7364978, 7435621, 7495968, 7497075, 7544932, 7544933, 7544944, 7562528, 7628064, 7630624, 7693600, 15953440 ]), new NGramsPlusLang("fr", [ 2122101, 2122607, 2122849, 2122853, 2122869, 2123118, 2123124, 2124897, 2124901, 2125921, 2125935, 2125938, 2126197, 2126693, 2126703, 2127214, 2154528, 6385268, 6386793, 6513952, 6516590, 6579488, 6579571, 6583584, 6627425, 6627427, 6627428, 6627429, 6627436, 6627440, 6627443, 6647328, 6647412, 6648352, 6648608, 6648864, 6649202, 6909806, 6910752, 6911008, 7102752, 7103776, 7103859, 7169390, 7217252, 7234848, 7238432, 7238688, 7302688, 7302772, 7304562, 7435621, 7479404, 7496992, 7544929, 7544932, 7544933, 7544940, 7544944, 7610468, 7628064, 7629167, 7693600, 7696928 ]), new NGramsPlusLang("it", [ 2122092, 2122600, 2122607, 2122853, 2122857, 2123040, 2124140, 2124142, 2124897, 2125925, 2125938, 2127214, 6365283, 6365284, 6365296, 6365299, 6386799, 6514789, 6516590, 6579564, 6580512, 6627425, 6627427, 6627428, 6627433, 6627436, 6627440, 6627443, 6646816, 6646892, 6647412, 6648352, 6841632, 6889569, 6889571, 6889572, 6889587, 6906144, 6908960, 6909472, 6909806, 7102752, 7103776, 7104800, 7105633, 7234848, 7235872, 7237408, 7238757, 7282785, 7282788, 7282793, 7282803, 7302688, 7302757, 7366002, 7495968, 7496992, 7563552, 7627040, 7628064, 7629088, 7630624, 8022383 ]), new NGramsPlusLang("nl", [ 2122092, 2122341, 2122849, 2122853, 2122857, 2123109, 2123118, 2123621, 2123877, 2124142, 2125153, 2125157, 2125680, 2126949, 2127457, 2127461, 2127471, 2127717, 2128489, 6381934, 6381938, 6385184, 6385252, 6386208, 6386720, 6514804, 6579488, 6579566, 6579570, 6627426, 6627446, 6645102, 6645106, 6647328, 6648352, 6648435, 6648864, 6776174, 6841716, 6907168, 6909472, 6909543, 6910752, 7217250, 7217252, 7217253, 7217256, 7217263, 7217270, 7234661, 7235360, 7302756, 7303026, 7303200, 7303712, 7562088, 7566437, 7610468, 7628064, 7628142, 7628146, 7758190, 7759218, 7761775 ]), new NGramsPlusLang("no", [ 2122100, 2122102, 2122853, 2123118, 2123122, 2123375, 2123873, 2124064, 2125157, 2125671, 2126053, 2126693, 2126699, 2126703, 2126708, 2126953, 2127465, 2155808, 6385252, 6386208, 6386720, 6579488, 6579566, 6579572, 6627443, 6644768, 6647328, 6647397, 6648352, 6648421, 6648864, 6648948, 6713202, 6776174, 6908779, 6908960, 6909543, 7038240, 7039845, 7103776, 7105637, 7169380, 7169390, 7217267, 7234848, 7235360, 7235429, 7237221, 7300896, 7302432, 7303712, 7398688, 7479411, 7496992, 7565165, 7566437, 7610483, 7628064, 7628142, 7628146, 7629164, 7631904, 7631973, 7759218 ]), new NGramsPlusLang("pt", [ 2122016, 2122607, 2122849, 2122853, 2122863, 2123040, 2123123, 2125153, 2125423, 2125600, 2125921, 2125935, 2125938, 2126197, 2126437, 2126693, 2127213, 6365281, 6365283, 6365284, 6365296, 6382693, 6382703, 6384672, 6386208, 6386273, 6386464, 6516589, 6516590, 6578464, 6579488, 6582048, 6582131, 6627425, 6627428, 6647072, 6647412, 6648608, 6648692, 6906144, 6906721, 7169390, 7238757, 7238767, 7282785, 7282787, 7282788, 7282789, 7282800, 7303968, 7364978, 7435621, 7495968, 7497075, 7544929, 7544932, 7544933, 7544944, 7566433, 7628064, 7630624, 7693600, 14905120, 15197039 ]), new NGramsPlusLang("sv", [ 2122100, 2122102, 2122853, 2123118, 2123510, 2123873, 2124064, 2124142, 2124655, 2125157, 2125667, 2126053, 2126699, 2126703, 2126708, 2126953, 2127457, 2127465, 2155634, 6382693, 6385184, 6385252, 6386208, 6386804, 6514720, 6579488, 6579566, 6579570, 6579572, 6644768, 6647328, 6648352, 6648864, 6747762, 6776174, 6909036, 6909543, 7037216, 7105568, 7169380, 7217267, 7233824, 7234661, 7235360, 7235429, 7235950, 7299944, 7302432, 7302688, 7398688, 7479393, 7479411, 7495968, 7564129, 7565165, 7610483, 7627040, 7628064, 7628146, 7629164, 7631904, 7758194, 14971424, 16151072 ]) ], ngrams_8859_1_length = ngrams_8859_1.length, CharsetMatch = __webpack_require__(18); module.exports = function(input, stats) { for (var name = stats.c1Bytes ? "windows-1252" : "ISO-8859-1", bestConfidenceSoFar = -1, lang = null, i = 0, l = ngrams_8859_1_length; i < l; i++) { var ngl = ngrams_8859_1[i], confidence = base.match(input, ngl.ngrams, byteMap); @@ -66708,7 +70159,7 @@ return bestConfidenceSoFar <= 0 ? null : new CharsetMatch(bestConfidenceSoFar, name, lang); }; }, function(module, exports, __webpack_require__) { - var NGramParser = __webpack_require__(372), unshapeMap = [ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 66, 66, 68, 69, 70, 71, 71, 73, 74, 75, 76, 77, 78, 79, 80, 73, 82, 83, 84, 85, 86, 86, 88, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 99, 101, 101, 103, 103, 105, 106, 107, 108, 109, 110, 111, 105, 113, 113, 115, 116, 117, 118, 119, 119, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 128, 139, 139, 141, 141, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 154, 154, 154, 158, 158, 158, 161, 162, 163, 164, 165, 166, 167, 168, 169, 158, 171, 171, 173, 173, 175, 175, 177, 178, 179, 180, 181, 182, 183, 184, 185, 177, 187, 187, 189, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 191, 204, 191, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 218, 220, 220, 220, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 ]; + var NGramParser = __webpack_require__(407), unshapeMap = [ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 66, 66, 68, 69, 70, 71, 71, 73, 74, 75, 76, 77, 78, 79, 80, 73, 82, 83, 84, 85, 86, 86, 88, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 99, 101, 101, 103, 103, 105, 106, 107, 108, 109, 110, 111, 105, 113, 113, 115, 116, 117, 118, 119, 119, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 128, 139, 139, 141, 141, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 154, 154, 154, 158, 158, 158, 161, 162, 163, 164, 165, 166, 167, 168, 169, 158, 171, 171, 173, 173, 175, 175, 177, 178, 179, 180, 181, 182, 183, 184, 185, 177, 187, 187, 189, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 191, 204, 191, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 218, 220, 220, 220, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 ]; function NGramParser_IBM420(theNgramList, theByteMap) { this.alef = 0, NGramParser.call(this, theNgramList, theByteMap); } @@ -66726,7 +70177,7 @@ } }, module.exports = NGramParser_IBM420; }, function(module, exports, __webpack_require__) { - var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 177, 32, 179, 32, 181, 182, 32, 32, 185, 186, 187, 188, 32, 190, 191, 32, 177, 32, 179, 32, 181, 182, 183, 32, 185, 186, 187, 188, 32, 190, 191, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 253, 254, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 253, 254, 32 ], base = __webpack_require__(39), NGramsPlusLang = base.NGramsPlusLang, ngrams_8859_2 = [ new NGramsPlusLang("cs", [ 2122016, 2122361, 2122863, 2124389, 2125409, 2125413, 2125600, 2125668, 2125935, 2125938, 2126072, 2126447, 2126693, 2126703, 2126708, 2126959, 2127392, 2127481, 2128481, 6365296, 6513952, 6514720, 6627440, 6627443, 6627446, 6647072, 6647533, 6844192, 6844260, 6910836, 6972704, 7042149, 7103776, 7104800, 7233824, 7268640, 7269408, 7269664, 7282800, 7300206, 7301737, 7304052, 7304480, 7304801, 7368548, 7368554, 7369327, 7403621, 7562528, 7565173, 7566433, 7566441, 7566446, 7628146, 7630573, 7630624, 7676016, 12477728, 14773997, 15296623, 15540336, 15540339, 15559968, 16278884 ]), new NGramsPlusLang("hu", [ 2122016, 2122106, 2122341, 2123111, 2123116, 2123365, 2123873, 2123887, 2124147, 2124645, 2124649, 2124790, 2124901, 2125153, 2125157, 2125161, 2125413, 2126714, 2126949, 2156915, 6365281, 6365291, 6365293, 6365299, 6384416, 6385184, 6388256, 6447470, 6448494, 6645625, 6646560, 6646816, 6646885, 6647072, 6647328, 6648421, 6648864, 6648933, 6648948, 6781216, 6844263, 6909556, 6910752, 7020641, 7075450, 7169383, 7170414, 7217249, 7233899, 7234923, 7234925, 7238688, 7300985, 7544929, 7567973, 7567988, 7568097, 7596391, 7610465, 7631904, 7659891, 8021362, 14773792, 15299360 ]), new NGramsPlusLang("pl", [ 2122618, 2122863, 2124064, 2124389, 2124655, 2125153, 2125161, 2125409, 2125417, 2125668, 2125935, 2125938, 2126697, 2127648, 2127721, 2127737, 2128416, 2128481, 6365296, 6365303, 6385257, 6514720, 6519397, 6519417, 6582048, 6584937, 6627440, 6627443, 6627447, 6627450, 6645615, 6646304, 6647072, 6647401, 6778656, 6906144, 6907168, 6907242, 7037216, 7039264, 7039333, 7170405, 7233824, 7235937, 7235941, 7282800, 7305057, 7305065, 7368556, 7369313, 7369327, 7369338, 7502437, 7502457, 7563754, 7564137, 7566433, 7825765, 7955304, 7957792, 8021280, 8022373, 8026400, 15955744 ]), new NGramsPlusLang("ro", [ 2122016, 2122083, 2122593, 2122597, 2122607, 2122613, 2122853, 2122857, 2124897, 2125153, 2125925, 2125938, 2126693, 2126819, 2127214, 2144873, 2158190, 6365283, 6365284, 6386277, 6386720, 6386789, 6386976, 6513010, 6516590, 6518048, 6546208, 6579488, 6627425, 6627427, 6627428, 6627440, 6627443, 6644e3, 6646048, 6646885, 6647412, 6648692, 6889569, 6889571, 6889572, 6889584, 6907168, 6908192, 6909472, 7102752, 7103776, 7106418, 7107945, 7234848, 7238770, 7303712, 7365998, 7496992, 7497057, 7501088, 7594784, 7628064, 7631477, 7660320, 7694624, 7695392, 12216608, 15625760 ]) ], ngrams_8859_2_length = ngrams_8859_2.length, CharsetMatch = __webpack_require__(18); + var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 177, 32, 179, 32, 181, 182, 32, 32, 185, 186, 187, 188, 32, 190, 191, 32, 177, 32, 179, 32, 181, 182, 183, 32, 185, 186, 187, 188, 32, 190, 191, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 253, 254, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 253, 254, 32 ], base = __webpack_require__(41), NGramsPlusLang = base.NGramsPlusLang, ngrams_8859_2 = [ new NGramsPlusLang("cs", [ 2122016, 2122361, 2122863, 2124389, 2125409, 2125413, 2125600, 2125668, 2125935, 2125938, 2126072, 2126447, 2126693, 2126703, 2126708, 2126959, 2127392, 2127481, 2128481, 6365296, 6513952, 6514720, 6627440, 6627443, 6627446, 6647072, 6647533, 6844192, 6844260, 6910836, 6972704, 7042149, 7103776, 7104800, 7233824, 7268640, 7269408, 7269664, 7282800, 7300206, 7301737, 7304052, 7304480, 7304801, 7368548, 7368554, 7369327, 7403621, 7562528, 7565173, 7566433, 7566441, 7566446, 7628146, 7630573, 7630624, 7676016, 12477728, 14773997, 15296623, 15540336, 15540339, 15559968, 16278884 ]), new NGramsPlusLang("hu", [ 2122016, 2122106, 2122341, 2123111, 2123116, 2123365, 2123873, 2123887, 2124147, 2124645, 2124649, 2124790, 2124901, 2125153, 2125157, 2125161, 2125413, 2126714, 2126949, 2156915, 6365281, 6365291, 6365293, 6365299, 6384416, 6385184, 6388256, 6447470, 6448494, 6645625, 6646560, 6646816, 6646885, 6647072, 6647328, 6648421, 6648864, 6648933, 6648948, 6781216, 6844263, 6909556, 6910752, 7020641, 7075450, 7169383, 7170414, 7217249, 7233899, 7234923, 7234925, 7238688, 7300985, 7544929, 7567973, 7567988, 7568097, 7596391, 7610465, 7631904, 7659891, 8021362, 14773792, 15299360 ]), new NGramsPlusLang("pl", [ 2122618, 2122863, 2124064, 2124389, 2124655, 2125153, 2125161, 2125409, 2125417, 2125668, 2125935, 2125938, 2126697, 2127648, 2127721, 2127737, 2128416, 2128481, 6365296, 6365303, 6385257, 6514720, 6519397, 6519417, 6582048, 6584937, 6627440, 6627443, 6627447, 6627450, 6645615, 6646304, 6647072, 6647401, 6778656, 6906144, 6907168, 6907242, 7037216, 7039264, 7039333, 7170405, 7233824, 7235937, 7235941, 7282800, 7305057, 7305065, 7368556, 7369313, 7369327, 7369338, 7502437, 7502457, 7563754, 7564137, 7566433, 7825765, 7955304, 7957792, 8021280, 8022373, 8026400, 15955744 ]), new NGramsPlusLang("ro", [ 2122016, 2122083, 2122593, 2122597, 2122607, 2122613, 2122853, 2122857, 2124897, 2125153, 2125925, 2125938, 2126693, 2126819, 2127214, 2144873, 2158190, 6365283, 6365284, 6386277, 6386720, 6386789, 6386976, 6513010, 6516590, 6518048, 6546208, 6579488, 6627425, 6627427, 6627428, 6627440, 6627443, 6644e3, 6646048, 6646885, 6647412, 6648692, 6889569, 6889571, 6889572, 6889584, 6907168, 6908192, 6909472, 7102752, 7103776, 7106418, 7107945, 7234848, 7238770, 7303712, 7365998, 7496992, 7497057, 7501088, 7594784, 7628064, 7631477, 7660320, 7694624, 7695392, 12216608, 15625760 ]) ], ngrams_8859_2_length = ngrams_8859_2.length, CharsetMatch = __webpack_require__(18); module.exports = function(input, stats) { for (var name = stats.c1Bytes ? "windows-1250" : "ISO-8859-2", bestConfidenceSoFar = -1, lang = null, i = 0, l = ngrams_8859_2_length; i < l; i++) { var ngl = ngrams_8859_2[i], confidence = base.match(input, ngl.ngrams, byteMap); @@ -66735,25 +70186,25 @@ return bestConfidenceSoFar <= 0 ? null : new CharsetMatch(bestConfidenceSoFar, name, lang); }; }, function(module, exports, __webpack_require__) { - var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 32, 254, 255, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 32, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 32, 254, 255 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(39), ngrams_ru = [ 2150944, 2151134, 2151646, 2152400, 2152480, 2153168, 2153182, 2153936, 2153941, 2154193, 2154462, 2154464, 2154704, 2154974, 2154978, 2155230, 2156514, 2158050, 13688280, 13689580, 13884960, 14015468, 14015960, 14016994, 14017056, 14164191, 14210336, 14211104, 14216992, 14407133, 14407712, 14413021, 14536736, 14538016, 14538965, 14538991, 14540320, 14540498, 14557394, 14557407, 14557409, 14602784, 14602960, 14603230, 14604576, 14605292, 14605344, 14606818, 14671579, 14672085, 14672088, 14672094, 14733522, 14734804, 14803664, 14803666, 14803672, 14806816, 14865883, 14868e3, 14868192, 14871584, 15196894, 15459616 ]; + var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 32, 254, 255, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 32, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 32, 254, 255 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(41), ngrams_ru = [ 2150944, 2151134, 2151646, 2152400, 2152480, 2153168, 2153182, 2153936, 2153941, 2154193, 2154462, 2154464, 2154704, 2154974, 2154978, 2155230, 2156514, 2158050, 13688280, 13689580, 13884960, 14015468, 14015960, 14016994, 14017056, 14164191, 14210336, 14211104, 14216992, 14407133, 14407712, 14413021, 14536736, 14538016, 14538965, 14538991, 14540320, 14540498, 14557394, 14557407, 14557409, 14602784, 14602960, 14603230, 14604576, 14605292, 14605344, 14606818, 14671579, 14672085, 14672088, 14672094, 14733522, 14734804, 14803664, 14803666, 14803672, 14806816, 14865883, 14868e3, 14868192, 14871584, 15196894, 15459616 ]; exports["8859_5_ru"] = function(input) { var confidence = base.match(input, ngrams_ru, byteMap); return 0 == confidence ? null : new CharsetMatch(confidence, "ISO-8859-5", "ru"); }; }, function(module, exports, __webpack_require__) { - var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 32, 32, 32, 32, 32, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(39), ngrams = [ 2148324, 2148326, 2148551, 2152932, 2154986, 2155748, 2156006, 2156743, 13050055, 13091104, 13093408, 13095200, 13100064, 13100227, 13100231, 13100232, 13100234, 13100236, 13100237, 13100239, 13100243, 13100249, 13100258, 13100261, 13100264, 13100266, 13100320, 13100576, 13100746, 13115591, 13181127, 13181153, 13181156, 13181157, 13181160, 13246663, 13574343, 13617440, 13705415, 13748512, 13836487, 14229703, 14279913, 14805536, 14950599, 14993696, 15001888, 15002144, 15016135, 15058720, 15059232, 15066656, 15081671, 15147207, 15189792, 15255524, 15263264, 15278279, 15343815, 15343845, 15343848, 15386912, 15388960, 15394336 ]; + var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 32, 32, 32, 32, 32, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(41), ngrams = [ 2148324, 2148326, 2148551, 2152932, 2154986, 2155748, 2156006, 2156743, 13050055, 13091104, 13093408, 13095200, 13100064, 13100227, 13100231, 13100232, 13100234, 13100236, 13100237, 13100239, 13100243, 13100249, 13100258, 13100261, 13100264, 13100266, 13100320, 13100576, 13100746, 13115591, 13181127, 13181153, 13181156, 13181157, 13181160, 13246663, 13574343, 13617440, 13705415, 13748512, 13836487, 14229703, 14279913, 14805536, 14950599, 14993696, 15001888, 15002144, 15016135, 15058720, 15059232, 15066656, 15081671, 15147207, 15189792, 15255524, 15263264, 15278279, 15343815, 15343845, 15343848, 15386912, 15388960, 15394336 ]; module.exports["8859_6_ar"] = function(input) { var confidence = base.match(input, ngrams, byteMap); return 0 == confidence ? null : new CharsetMatch(confidence, "ISO-8859-6", "ar"); }; }, function(module, exports, __webpack_require__) { - var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 161, 162, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 220, 32, 221, 222, 223, 32, 252, 32, 253, 254, 192, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 32, 243, 244, 245, 246, 247, 248, 249, 250, 251, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 32 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(39), ngrams = [ 2154989, 2154992, 2155497, 2155753, 2156016, 2156320, 2157281, 2157797, 2158049, 2158368, 2158817, 2158831, 2158833, 2159604, 2159605, 2159847, 2159855, 14672160, 14754017, 14754036, 14805280, 14806304, 14807292, 14807584, 14936545, 15067424, 15069728, 15147252, 15199520, 15200800, 15278324, 15327520, 15330014, 15331872, 15393257, 15393268, 15525152, 15540449, 15540453, 15540464, 15589664, 15725088, 15725856, 15790069, 15790575, 15793184, 15868129, 15868133, 15868138, 15868144, 15868148, 15983904, 15984416, 15987951, 16048416, 16048617, 16050157, 16050162, 16050666, 16052e3, 16052213, 16054765, 16379168, 16706848 ]; + var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 161, 162, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 220, 32, 221, 222, 223, 32, 252, 32, 253, 254, 192, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 32, 243, 244, 245, 246, 247, 248, 249, 250, 251, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 32 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(41), ngrams = [ 2154989, 2154992, 2155497, 2155753, 2156016, 2156320, 2157281, 2157797, 2158049, 2158368, 2158817, 2158831, 2158833, 2159604, 2159605, 2159847, 2159855, 14672160, 14754017, 14754036, 14805280, 14806304, 14807292, 14807584, 14936545, 15067424, 15069728, 15147252, 15199520, 15200800, 15278324, 15327520, 15330014, 15331872, 15393257, 15393268, 15525152, 15540449, 15540453, 15540464, 15589664, 15725088, 15725856, 15790069, 15790575, 15793184, 15868129, 15868133, 15868138, 15868144, 15868148, 15983904, 15984416, 15987951, 16048416, 16048617, 16050157, 16050162, 16050666, 16052e3, 16052213, 16054765, 16379168, 16706848 ]; module.exports["8859_7_el"] = function(input, stats) { var name = stats.c1Bytes ? "windows-1253" : "ISO-8859-7", confidence = base.match(input, ngrams, byteMap); return 0 == confidence ? null : new CharsetMatch(confidence, name, "el"); }; }, function(module, exports, __webpack_require__) { - var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 181, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 32, 32, 32, 32, 32 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(39), ngrams = { + var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 181, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 32, 32, 32, 32, 32 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(41), ngrams = { "ISO-8859-8-I": [ 2154725, 2154727, 2154729, 2154746, 2154985, 2154990, 2155744, 2155749, 2155753, 2155758, 2155762, 2155769, 2155770, 2157792, 2157796, 2158304, 2159340, 2161132, 14744096, 14950624, 14950625, 14950628, 14950636, 14950638, 14950649, 15001056, 15065120, 15068448, 15068960, 15071264, 15071776, 15278308, 15328288, 15328762, 15329773, 15330592, 15331104, 15333408, 15333920, 15474912, 15474916, 15523872, 15524896, 15540448, 15540449, 15540452, 15540460, 15540462, 15540473, 15655968, 15671524, 15787040, 15788320, 15788525, 15920160, 16261348, 16312813, 16378912, 16392416, 16392417, 16392420, 16392428, 16392430, 16392441 ], "ISO-8859-8": [ 2154725, 2154732, 2155753, 2155756, 2155758, 2155760, 2157040, 2157810, 2157817, 2158053, 2158057, 2158565, 2158569, 2160869, 2160873, 2161376, 2161381, 2161385, 14688484, 14688492, 14688493, 14688506, 14738464, 14738916, 14740512, 14741024, 14754020, 14754029, 14754042, 14950628, 14950633, 14950636, 14950637, 14950639, 14950648, 14950650, 15002656, 15065120, 15066144, 15196192, 15327264, 15327520, 15328288, 15474916, 15474925, 15474938, 15528480, 15530272, 15591913, 15591920, 15591928, 15605988, 15605997, 15606010, 15655200, 15655968, 15918112, 16326884, 16326893, 16326906, 16376864, 16441376, 16442400, 16442857 ] }; @@ -66765,7 +70216,7 @@ } exports["8859_8_I_he"] = genMatcher("ISO-8859-8-I"), exports["8859_8_he"] = genMatcher("ISO-8859-8"); }, function(module, exports, __webpack_require__) { - var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 170, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 181, 32, 32, 32, 32, 186, 32, 32, 32, 32, 32, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 105, 254, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 253, 254, 255 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(39), ngrams = [ 2122337, 2122345, 2122357, 2122849, 2122853, 2123621, 2123873, 2124140, 2124641, 2124655, 2125153, 2125676, 2126689, 2126945, 2127461, 2128225, 6365282, 6384416, 6384737, 6384993, 6385184, 6385405, 6386208, 6386273, 6386429, 6386685, 6388065, 6449522, 6578464, 6579488, 6580512, 6627426, 6627435, 6644841, 6647328, 6648352, 6648425, 6648681, 6909029, 6909472, 6909545, 6910496, 7102830, 7102834, 7103776, 7103858, 7217249, 7217250, 7217259, 7234657, 7234661, 7234848, 7235872, 7235950, 7273760, 7498094, 7535982, 7759136, 7954720, 7958386, 16608800, 16608868, 16609021, 16642301 ]; + var byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 170, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 181, 32, 32, 32, 32, 186, 32, 32, 32, 32, 32, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 105, 254, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 32, 248, 249, 250, 251, 252, 253, 254, 255 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(41), ngrams = [ 2122337, 2122345, 2122357, 2122849, 2122853, 2123621, 2123873, 2124140, 2124641, 2124655, 2125153, 2125676, 2126689, 2126945, 2127461, 2128225, 6365282, 6384416, 6384737, 6384993, 6385184, 6385405, 6386208, 6386273, 6386429, 6386685, 6388065, 6449522, 6578464, 6579488, 6580512, 6627426, 6627435, 6644841, 6647328, 6648352, 6648425, 6648681, 6909029, 6909472, 6909545, 6910496, 7102830, 7102834, 7103776, 7103858, 7217249, 7217250, 7217259, 7234657, 7234661, 7234848, 7235872, 7235950, 7273760, 7498094, 7535982, 7759136, 7954720, 7958386, 16608800, 16608868, 16609021, 16642301 ]; exports["8859_9_tr"] = function(input, stats) { var name = stats.c1Bytes ? "windows-1254" : "ISO-8859-9", confidence = base.match(input, ngrams, byteMap); return 0 == confidence ? null : new CharsetMatch(confidence, name, "tr"); @@ -66774,7 +70225,7 @@ var byteMap = [ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 66, 67, 68, 69, 70, 71, 72, 73, 64, 64, 64, 64, 64, 64, 64, 81, 82, 64, 64, 85, 86, 87, 88, 89, 64, 64, 64, 64, 64, 64, 64, 64, 98, 99, 100, 101, 102, 103, 104, 105, 64, 64, 64, 64, 64, 64, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 64, 64, 64, 64, 64, 64, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 64, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 64, 64, 184, 185, 186, 187, 188, 189, 190, 191, 64, 129, 130, 131, 132, 133, 134, 135, 136, 137, 64, 203, 64, 205, 64, 207, 64, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223, 64, 64, 162, 163, 164, 165, 166, 167, 168, 169, 234, 235, 64, 237, 238, 239, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 251, 252, 253, 254, 64 ], ngrams = { IBM420_rtl: [ 4216497, 4216509, 4216918, 4233905, 4238300, 4239793, 4242365, 4247382, 5652566, 5654080, 5661504, 5666112, 5681472, 5681481, 5681494, 5681496, 5681507, 5681511, 5681513, 5681523, 5681528, 5681562, 5681581, 5681595, 5681615, 5681628, 5684032, 5684544, 5684579, 5783638, 6438998, 6439083, 6439089, 6439099, 6439119, 6504534, 7553110, 7561792, 7684182, 7692864, 7880790, 10109014, 10138074, 11263040, 11616342, 11625024, 11655744, 11656256, 12271702, 12277312, 12280384, 12303680, 12402774, 12533846, 12539456, 13588145, 13614400, 14303318, 14434390, 14434491, 14434511, 14443072, 14447936, 14466368 ], IBM420_ltr: [ 4212310, 4216507, 4216511, 4219507, 4219509, 4219569, 4219579, 4219612, 4219734, 4224342, 4224476, 4239702, 4242262, 4242774, 4242875, 4242895, 4242908, 4250289, 4250795, 4250801, 4829526, 5652566, 5652568, 5652578, 5652579, 5652595, 5652597, 5652600, 5652634, 5652657, 5652667, 5652669, 5652671, 5652698, 5652700, 5658688, 5681494, 5689152, 5812566, 6533462, 6536534, 6795606, 6926678, 7582038, 7909718, 10137942, 11223138, 11383126, 11616354, 11621952, 11622095, 11639360, 11645248, 12271714, 12271836, 12300630, 12408384, 12434240, 13582434, 13582556, 13611350, 14332314, 14461760, 14463318 ] - }, CharsetMatch = __webpack_require__(18), base = __webpack_require__(39); + }, CharsetMatch = __webpack_require__(18), base = __webpack_require__(41); function genMatcher(name) { var ng = ngrams[name]; return function(input) { @@ -66787,7 +70238,7 @@ var byteMap = [ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 64, 64, 64, 64, 64, 64, 64, 81, 82, 83, 84, 85, 86, 87, 88, 89, 64, 64, 64, 64, 64, 64, 64, 64, 98, 99, 100, 101, 102, 103, 104, 105, 64, 64, 64, 64, 64, 64, 64, 113, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 0, 64, 64, 64, 129, 130, 131, 132, 133, 134, 135, 136, 137, 64, 64, 64, 64, 64, 64, 64, 145, 146, 147, 148, 149, 150, 151, 152, 153, 64, 64, 64, 64, 64, 64, 160, 64, 162, 163, 164, 165, 166, 167, 168, 169, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 129, 130, 131, 132, 133, 134, 135, 136, 137, 64, 64, 64, 64, 64, 64, 64, 145, 146, 147, 148, 149, 150, 151, 152, 153, 64, 64, 64, 64, 64, 64, 64, 64, 162, 163, 164, 165, 166, 167, 168, 169, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64 ], ngrams = { IBM424_rtl: [ 4211014, 4211016, 4211025, 4211057, 4211281, 4211286, 4212033, 4212038, 4212049, 4212054, 4212066, 4212073, 4212081, 4215873, 4215877, 4216385, 4219476, 4221268, 4288832, 4538433, 4538434, 4538437, 4538452, 4538454, 4538473, 4539969, 4604224, 4609344, 4609856, 4614208, 4616512, 5324869, 5326144, 5326449, 5329237, 5330240, 5330752, 5335104, 5337408, 5521473, 5521477, 5521728, 5522752, 5587009, 5587010, 5587013, 5587028, 5587030, 5587049, 5653824, 5718085, 5784896, 5787968, 5787989, 6444096, 6832197, 6836565, 6902848, 7422017, 7422018, 7422021, 7422036, 7422038, 7422057 ], IBM424_ltr: [ 4211014, 4211028, 4212049, 4212052, 4212054, 4212056, 4215128, 4215906, 4215913, 4216134, 4216145, 4216646, 4216657, 4220998, 4221009, 4223297, 4223302, 4223313, 4276293, 4276308, 4276309, 4276337, 4277568, 4277829, 4281408, 4281920, 4341829, 4341845, 4341873, 4538437, 4538449, 4538452, 4538453, 4538455, 4538472, 4538481, 4543552, 4604224, 4605248, 4735296, 5325120, 5325376, 5326144, 5521477, 5521493, 5521521, 5530176, 5531968, 5591377, 5591384, 5591400, 5652549, 5652565, 5652593, 5653056, 5653824, 6440256, 6897733, 6897749, 6897777, 6899008, 7422272, 7423296, 7423569 ] - }, CharsetMatch = __webpack_require__(18), base = __webpack_require__(39); + }, CharsetMatch = __webpack_require__(18), base = __webpack_require__(41); function genMatcher(name) { var ng = ngrams[name]; return function(input) { @@ -66797,19 +70248,19 @@ } exports.IBM424_rtl = genMatcher("IBM424_rtl"), exports.IBM424_ltr = genMatcher("IBM424_ltr"); }, function(module, exports, __webpack_require__) { - var ngrams = [ 2155040, 2155246, 2155758, 2156512, 2156576, 2157280, 2157294, 2158048, 2158053, 2158305, 2158574, 2158576, 2158816, 2159086, 2159090, 2159342, 2160626, 2162162, 14740968, 14742268, 14937632, 15068156, 15068648, 15069682, 15069728, 15212783, 15263008, 15263776, 15269664, 15459821, 15460384, 15465709, 15589408, 15590688, 15591653, 15591679, 15592992, 15593186, 15605986, 15605999, 15606001, 15655456, 15655648, 15655918, 15657248, 15657980, 15658016, 15659506, 15724267, 15724773, 15724776, 15724782, 15786210, 15787492, 15856352, 15856354, 15856360, 15859488, 15918571, 15920672, 15920880, 15924256, 16249582, 16512288 ], byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 144, 131, 32, 131, 32, 32, 32, 32, 32, 32, 154, 32, 156, 157, 158, 159, 144, 32, 32, 32, 32, 32, 32, 32, 32, 32, 154, 32, 156, 157, 158, 159, 32, 162, 162, 188, 32, 180, 32, 32, 184, 32, 186, 32, 32, 32, 32, 191, 32, 32, 179, 179, 180, 181, 32, 32, 184, 32, 186, 32, 188, 190, 190, 191, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(39); + var ngrams = [ 2155040, 2155246, 2155758, 2156512, 2156576, 2157280, 2157294, 2158048, 2158053, 2158305, 2158574, 2158576, 2158816, 2159086, 2159090, 2159342, 2160626, 2162162, 14740968, 14742268, 14937632, 15068156, 15068648, 15069682, 15069728, 15212783, 15263008, 15263776, 15269664, 15459821, 15460384, 15465709, 15589408, 15590688, 15591653, 15591679, 15592992, 15593186, 15605986, 15605999, 15606001, 15655456, 15655648, 15655918, 15657248, 15657980, 15658016, 15659506, 15724267, 15724773, 15724776, 15724782, 15786210, 15787492, 15856352, 15856354, 15856360, 15859488, 15918571, 15920672, 15920880, 15924256, 16249582, 16512288 ], byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 144, 131, 32, 131, 32, 32, 32, 32, 32, 32, 154, 32, 156, 157, 158, 159, 144, 32, 32, 32, 32, 32, 32, 32, 32, 32, 154, 32, 156, 157, 158, 159, 32, 162, 162, 188, 32, 180, 32, 32, 184, 32, 186, 32, 32, 32, 32, 191, 32, 32, 179, 179, 180, 181, 32, 32, 184, 32, 186, 32, 188, 190, 190, 191, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(41); module.exports = function(input) { var confidence = base.match(input, ngrams, byteMap); return 0 == confidence ? null : new CharsetMatch(confidence, "windows-1251", "ru"); }; }, function(module, exports, __webpack_require__) { - var ngrams = [ 2148321, 2148324, 2148551, 2153185, 2153965, 2154977, 2155492, 2156231, 13050055, 13091104, 13093408, 13095200, 13099296, 13099459, 13099463, 13099464, 13099466, 13099468, 13099469, 13099471, 13099475, 13099482, 13099486, 13099491, 13099494, 13099501, 13099808, 13100064, 13100234, 13115591, 13181127, 13181149, 13181153, 13181155, 13181158, 13246663, 13574343, 13617440, 13705415, 13748512, 13836487, 14295239, 14344684, 14544160, 14753991, 14797088, 14806048, 14806304, 14885063, 14927648, 14928160, 14935072, 14950599, 15016135, 15058720, 15124449, 15131680, 15474887, 15540423, 15540451, 15540454, 15583520, 15585568, 15590432 ], byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 129, 32, 131, 32, 32, 32, 32, 136, 32, 138, 32, 156, 141, 142, 143, 144, 32, 32, 32, 32, 32, 32, 32, 152, 32, 154, 32, 156, 32, 32, 159, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 170, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 181, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 32, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 32, 32, 32, 32, 244, 32, 32, 32, 32, 249, 32, 251, 252, 32, 32, 255 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(39); + var ngrams = [ 2148321, 2148324, 2148551, 2153185, 2153965, 2154977, 2155492, 2156231, 13050055, 13091104, 13093408, 13095200, 13099296, 13099459, 13099463, 13099464, 13099466, 13099468, 13099469, 13099471, 13099475, 13099482, 13099486, 13099491, 13099494, 13099501, 13099808, 13100064, 13100234, 13115591, 13181127, 13181149, 13181153, 13181155, 13181158, 13246663, 13574343, 13617440, 13705415, 13748512, 13836487, 14295239, 14344684, 14544160, 14753991, 14797088, 14806048, 14806304, 14885063, 14927648, 14928160, 14935072, 14950599, 15016135, 15058720, 15124449, 15131680, 15474887, 15540423, 15540451, 15540454, 15583520, 15585568, 15590432 ], byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 129, 32, 131, 32, 32, 32, 32, 136, 32, 138, 32, 156, 141, 142, 143, 144, 32, 32, 32, 32, 32, 32, 32, 152, 32, 154, 32, 156, 32, 32, 159, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 170, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 181, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 32, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 32, 32, 32, 32, 244, 32, 32, 32, 32, 249, 32, 251, 252, 32, 32, 255 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(41); module.exports = function(input) { var confidence = base.match(input, ngrams, byteMap); return 0 == confidence ? null : new CharsetMatch(confidence, "windows-1256", "ar"); }; }, function(module, exports, __webpack_require__) { - var ngrams = [ 2147535, 2148640, 2149313, 2149327, 2150081, 2150085, 2150338, 2150607, 2150610, 2151105, 2151375, 2151380, 2151631, 2152224, 2152399, 2153153, 2153684, 2154196, 12701385, 12702936, 12963032, 12963529, 12964820, 12964896, 13094688, 13181136, 13223200, 13224224, 13226272, 13419982, 13420832, 13424846, 13549856, 13550880, 13552069, 13552081, 13553440, 13553623, 13574352, 13574355, 13574359, 13617103, 13617696, 13618392, 13618464, 13620180, 13621024, 13621185, 13684684, 13685445, 13685449, 13685455, 13812183, 13813188, 13881632, 13882561, 13882569, 13882583, 13944268, 13946656, 13946834, 13948960, 14272544, 14603471 ], byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 163, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 163, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(39); + var ngrams = [ 2147535, 2148640, 2149313, 2149327, 2150081, 2150085, 2150338, 2150607, 2150610, 2151105, 2151375, 2151380, 2151631, 2152224, 2152399, 2153153, 2153684, 2154196, 12701385, 12702936, 12963032, 12963529, 12964820, 12964896, 13094688, 13181136, 13223200, 13224224, 13226272, 13419982, 13420832, 13424846, 13549856, 13550880, 13552069, 13552081, 13553440, 13553623, 13574352, 13574355, 13574359, 13617103, 13617696, 13618392, 13618464, 13620180, 13621024, 13621185, 13684684, 13685445, 13685449, 13685455, 13812183, 13813188, 13881632, 13882561, 13882569, 13882583, 13944268, 13946656, 13946834, 13948960, 14272544, 14603471 ], byteMap = [ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 163, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 163, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223 ], CharsetMatch = __webpack_require__(18), base = __webpack_require__(41); module.exports = function(input) { var confidence = base.match(input, ngrams, byteMap); return 0 == confidence ? null : new CharsetMatch(confidence, "KOI8-R", "ru"); @@ -66845,7 +70296,7 @@ 0 == confidence ? null : new CharsetMatch(confidence, "UTF-8"); }; }, function(module, exports, __webpack_require__) { - var INFLATE = __webpack_require__(728), bops = __webpack_require__(178), Reader = exports.Reader = function(data) { + var INFLATE = __webpack_require__(782), bops = __webpack_require__(192), Reader = exports.Reader = function(data) { if (!(this instanceof Reader)) return new Reader(data); this._source = new BufferSource(data), this._offset = 0; }; @@ -67013,7 +70464,7 @@ return new Date(1980 + (date >>> 9), (date >>> 5 & 15) - 1, 31 & date, time >>> 11 & 31, time >>> 5 & 63, 2 * (63 & time)); }; }, function(module, exports, __webpack_require__) { - var BufferIO = __webpack_require__(729).BufferIO, bops = __webpack_require__(178); + var BufferIO = __webpack_require__(783).BufferIO, bops = __webpack_require__(192); exports.inflate = function(input) { var slide, wp, fixed_td, fixed_bl, bit_buf, bit_len, method, eof, copy_leng, copy_dist, tl, td, bl, bd, inflate_data, inflate_pos, fixed_tl = null, MASK_BITS = [ 0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535 ], cplens = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 ], cplext = [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99 ], cpdist = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ], cpdext = [ 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 ], border = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]; function HuftList() { @@ -67195,7 +70646,7 @@ })(input); }; }, function(module, exports, __webpack_require__) { - var bops = __webpack_require__(178); + var bops = __webpack_require__(192); function consolidate(buffers) { var at, i, buffer, result, length = 0, ii = buffers.length; for (i = 0; i < ii; i++) length += (buffer = buffers[i]).length; @@ -67296,7 +70747,7 @@ } }; }, function(module, exports, __webpack_require__) { - var _ = __webpack_require__(373), fs = __webpack_require__(2), path = __webpack_require__(4), opensub = new (__webpack_require__(741)), fetch = __webpack_require__(33), URL = __webpack_require__(6).URL; + var _ = __webpack_require__(408), fs = __webpack_require__(2), path = __webpack_require__(5), opensub = new (__webpack_require__(795)), fetch = __webpack_require__(34), URL = __webpack_require__(7).URL; module.exports = function(args, cb) { if ("string" != typeof args.url) return cb(new Error("url required")); cb = _.once(cb); @@ -67370,7 +70821,7 @@ } }; }, function(module, exports, __webpack_require__) { - var fs = __webpack_require__(2), ee = __webpack_require__(5).EventEmitter, Api = __webpack_require__(742), os = module.exports = function(user, password, lang, ua) { + var fs = __webpack_require__(2), ee = __webpack_require__(4).EventEmitter, Api = __webpack_require__(796), os = module.exports = function(user, password, lang, ua) { this.api = new Api, this.user = user, this.password = password, this.lang = lang || "en", this.ua = ua || "NodeOpensubtitles v0.0.1"; }; @@ -67427,7 +70878,7 @@ return str; }; }, function(module, exports, __webpack_require__) { - var xmlrpc = __webpack_require__(743), ep = module.exports = function() { + var xmlrpc = __webpack_require__(797), ep = module.exports = function() { this.clientOptions = "http://api.opensubtitles.org/xml-rpc", this.client = xmlrpc.createClient(this.clientOptions); }; ep.prototype.call = function(method, args) { @@ -67488,7 +70939,7 @@ this.call("NoOperation", arguments); }; }, function(module, exports, __webpack_require__) { - var Client = __webpack_require__(744), Server = __webpack_require__(749), xmlrpc = exports; + var Client = __webpack_require__(798), Server = __webpack_require__(803), xmlrpc = exports; xmlrpc.createClient = function(options) { return new Client(options, !1); }, xmlrpc.createSecureClient = function(options) { @@ -67499,7 +70950,7 @@ return new Server(options, !0); }; }, function(module, exports, __webpack_require__) { - var http = __webpack_require__(11), https = __webpack_require__(21), url = __webpack_require__(6), Serializer = __webpack_require__(374), Deserializer = __webpack_require__(376); + var http = __webpack_require__(11), https = __webpack_require__(21), url = __webpack_require__(7), Serializer = __webpack_require__(409), Deserializer = __webpack_require__(411); function Client(options, isSecure) { if (0 == this instanceof Client) return new Client(options, isSecure); "string" == typeof options && ((options = url.parse(options)).host = options.hostname, @@ -67529,14 +70980,14 @@ }, function(module, exports, __webpack_require__) { (function() { var XMLBuilder; - XMLBuilder = __webpack_require__(746), module.exports.create = function() { + XMLBuilder = __webpack_require__(800), module.exports.create = function() { return new XMLBuilder; }; }).call(this); }, function(module, exports, __webpack_require__) { (function() { var XMLBuilder, XMLFragment, __hasProp = Object.prototype.hasOwnProperty; - XMLFragment = __webpack_require__(747), XMLBuilder = (function() { + XMLFragment = __webpack_require__(801), XMLBuilder = (function() { function XMLBuilder() { XMLBuilder.__super__.constructor.call(this, null, "", {}, ""), this.isDoc = !0; } @@ -68236,7 +71687,7 @@ S = sax.STATE; })(exports); }, function(module, exports, __webpack_require__) { - var http = __webpack_require__(11), https = __webpack_require__(21), url = __webpack_require__(6), EventEmitter = __webpack_require__(5).EventEmitter, Serializer = __webpack_require__(374), Deserializer = __webpack_require__(376); + var http = __webpack_require__(11), https = __webpack_require__(21), url = __webpack_require__(7), EventEmitter = __webpack_require__(4).EventEmitter, Serializer = __webpack_require__(409), Deserializer = __webpack_require__(411); function Server(options, isSecure) { if (0 == this instanceof Server) return new Server(options, isSecure); var that = this; @@ -68256,7 +71707,7 @@ } Server.prototype.__proto__ = EventEmitter.prototype, module.exports = Server; }, function(module, exports, __webpack_require__) { - var https = __webpack_require__(21), fetch = __webpack_require__(33), net = __webpack_require__(42), fs = __webpack_require__(2), path = __webpack_require__(4), options = defaultOptions = { + var https = __webpack_require__(21), fetch = __webpack_require__(34), net = __webpack_require__(39), fs = __webpack_require__(2), path = __webpack_require__(5), options = defaultOptions = { apiEndpoint: "http://api.strem.io/api/certificateGet", appPath: ".", authKey: null @@ -68345,7 +71796,7 @@ } }; }, function(module, exports, __webpack_require__) { - var path = __webpack_require__(4), url = __webpack_require__(6), querystring = __webpack_require__(24), Router = __webpack_require__(111), stream = __webpack_require__(3), https = __webpack_require__(21), fetch = __webpack_require__(33), Headers = fetch.Headers, cfgOpts = { + var path = __webpack_require__(5), url = __webpack_require__(7), querystring = __webpack_require__(24), Router = __webpack_require__(122), stream = __webpack_require__(3), https = __webpack_require__(21), fetch = __webpack_require__(34), Headers = fetch.Headers, cfgOpts = { Destination: "d", DestinationHeader: "h", ResponseHeader: "r" @@ -68363,6 +71814,9 @@ var headerArray = headerString.split(":"); return [ headerArray.shift(), headerArray.join(":") ]; } + function urlJoin(segments) { + return segments.join("/").replace(/\/+/g, "/"); + } function handleFetchWithRedirects(dest, req, headers, httpsAgent, opts, cfgOpts) { var redirectCount = 0; function fetchWithRedirects() { @@ -68428,9 +71882,9 @@ return currentHeaders.forEach((function(header) { newOpts[cfgOpts.DestinationHeader].push(header); })), "/proxy/" + querystring.stringify(newOpts) + lineUrl.pathname + lineUrl.search; - })(lineUrl, virtualRoot, cfgOpts) : path.join(virtualRoot, lineUrl.pathname) + lineUrl.search; + })(lineUrl, virtualRoot, cfgOpts) : urlJoin([ virtualRoot, lineUrl.pathname ]) + lineUrl.search; } - return line.startsWith("/") ? path.join(virtualRoot, line) : line; + return line.startsWith("/") ? urlJoin([ virtualRoot, line ]) : line; } function parseLine(line) { if (!line.startsWith("#") && line.length > 0) return parseUrl(line); @@ -68464,9 +71918,9 @@ } }; }, function(module, exports) { - module.exports = [ "udp://tracker.opentrackr.org:1337/announce", "udp://open.demonii.com:1337/announce", "http://open.tracker.cl:1337/announce", "udp://open.stealth.si:80/announce", "udp://exodus.desync.com:6969/announce", "udp://tracker.qu.ax:6969/announce", "udp://tracker.ololosh.space:6969/announce", "udp://tracker.dump.cl:6969/announce", "udp://tracker.bittor.pw:1337/announce", "udp://open.free-tracker.ga:6969/announce", "udp://leet-tracker.moe:1337/announce", "udp://hificode.in:6969/announce", "udp://explodie.org:6969/announce", "http://www.torrentsnipe.info:2701/announce", "http://www.genesis-sp.org:2710/announce", "http://tracker810.xyz:11450/announce", "http://tracker.xiaoduola.xyz:6969/announce", "http://tracker.sbsub.com:2710/announce", "http://tracker.bz:80/announce", "http://tracker.bt-hash.com:80/announce" ]; + module.exports = [ "udp://tracker.opentrackr.org:1337/announce", "udp://open.demonoid.ch:6969/announce", "udp://open.demonii.com:1337/announce", "udp://open.stealth.si:80/announce", "udp://explodie.org:6969/announce", "udp://tracker-udp.gbitt.info:80/announce", "udp://exodus.desync.com:6969/announce", "udp://wepzone.net:6969/announce", "udp://tracker2.dler.org:80/announce", "udp://tracker1.myporn.club:9337/announce", "udp://tracker.theoks.net:6969/announce", "udp://tracker.srv00.com:6969/announce", "udp://tracker.qu.ax:6969/announce", "udp://tracker.dler.org:6969/announce", "udp://run.publictracker.xyz:6969/announce", "udp://retracker01-msk-virt.corbina.net:80/announce", "udp://p4p.arenabg.com:1337/announce", "udp://opentracker.io:6969/announce", "udp://hificode.in:6969/announce", "udp://bt.bontal.net:6969/announce" ]; }, function(module, exports, __webpack_require__) { - const profiles = __webpack_require__(179), userSettings = __webpack_require__(94), cache = __webpack_require__(380), fetch = __webpack_require__(33), saveSettings = settings => { + const profiles = __webpack_require__(193), userSettings = __webpack_require__(105), cache = __webpack_require__(415), fetch = __webpack_require__(34), saveSettings = settings => { userSettings.extend(settings), cache.setOptionValues(userSettings), userSettings.save((function() {})); }, perPlatforms = { android: [], @@ -68515,7 +71969,7 @@ !(function() { "use strict"; function noop() {} - var fs = __webpack_require__(2), forEachAsync = __webpack_require__(755).forEachAsync, EventEmitter = __webpack_require__(5).EventEmitter, TypeEmitter = __webpack_require__(756), util = __webpack_require__(0), path = __webpack_require__(4); + var fs = __webpack_require__(2), forEachAsync = __webpack_require__(809).forEachAsync, EventEmitter = __webpack_require__(4).EventEmitter, TypeEmitter = __webpack_require__(810), util = __webpack_require__(0), path = __webpack_require__(5); function appendToDirs(stat) { stat.flag && stat.flag === NO_DESCEND || this.push(stat.name); } @@ -68672,7 +72126,7 @@ }; })(); }, function(module, exports, __webpack_require__) { - const profiles = __webpack_require__(179); + const profiles = __webpack_require__(193); module.exports = (profileName, accelConfig, options) => { const profile = profiles[profileName]; return profile && (options.video && (accelConfig.inputArgs = accelConfig.inputArgs.concat(profile.video.inputArgs || []), @@ -68950,7 +72404,7 @@ value: !0 }), e); })(E); - var I = z(__webpack_require__(2), 1), C = __webpack_require__(3), L = z(__webpack_require__(759), 1), A = L.default.http, U = L.default.https, q = /bytes (\d+)-(\d+)\/(\d+)/, D = function(e) { + var I = z(__webpack_require__(2), 1), C = __webpack_require__(3), L = z(__webpack_require__(813), 1), A = L.default.http, U = L.default.https, q = /bytes (\d+)-(\d+)\/(\d+)/, D = function(e) { return e.startsWith("http://") || e.startsWith("https://"); }, M = (function(e) { c(r, e); @@ -69450,7 +72904,7 @@ }; })(), ex = eR; }, function(module, exports, __webpack_require__) { - var url = __webpack_require__(6), URL = url.URL, http = __webpack_require__(11), https = __webpack_require__(21), Writable = __webpack_require__(3).Writable, assert = __webpack_require__(22), debug = __webpack_require__(760), useNativeURL = !1; + var url = __webpack_require__(7), URL = url.URL, http = __webpack_require__(11), https = __webpack_require__(21), Writable = __webpack_require__(3).Writable, assert = __webpack_require__(25), debug = __webpack_require__(814), useNativeURL = !1; try { assert(new URL); } catch (error) { @@ -69702,7 +73156,7 @@ module.exports = function() { if (!debug) { try { - debug = __webpack_require__(8)("follow-redirects"); + debug = __webpack_require__(9)("follow-redirects"); } catch (error) {} "function" != typeof debug && (debug = function() {}); } @@ -69813,8 +73267,8 @@ })), argv; }; }, function(module, exports, __webpack_require__) { - var magnet = __webpack_require__(763), hat = __webpack_require__(91), pws = __webpack_require__(766), bncode = __webpack_require__(180), bitfield = __webpack_require__(779), parseTorrent = __webpack_require__(270), mkdirp = __webpack_require__(132), rimraf = __webpack_require__(780), events = __webpack_require__(5), path = __webpack_require__(4), fs = __webpack_require__(2), os = __webpack_require__(23), eos = __webpack_require__(163), _ = (__webpack_require__(787), - __webpack_require__(184)), bagpipe = __webpack_require__(185), blocklist = __webpack_require__(790), encode = __webpack_require__(791), exchangeMetadata = __webpack_require__(792), storage = __webpack_require__(793), storageCircular = __webpack_require__(794), fileStream = __webpack_require__(795), piece = __webpack_require__(799), SPEED_THRESHOLD = 3 * piece.BLOCK_SIZE, TMP = fs.existsSync("/tmp") ? "/tmp" : os.tmpdir(), noop = function() {}, thruthy = function() { + var magnet = __webpack_require__(817), hat = __webpack_require__(101), pws = __webpack_require__(820), bncode = __webpack_require__(195), bitfield = __webpack_require__(832), parseTorrent = __webpack_require__(303), mkdirp = __webpack_require__(142), rimraf = __webpack_require__(833), events = __webpack_require__(4), path = __webpack_require__(5), fs = __webpack_require__(2), os = __webpack_require__(23), eos = __webpack_require__(180), _ = (__webpack_require__(840), + __webpack_require__(199)), bagpipe = __webpack_require__(200), blocklist = __webpack_require__(843), encode = __webpack_require__(844), exchangeMetadata = __webpack_require__(845), storage = __webpack_require__(846), storageCircular = __webpack_require__(847), fileStream = __webpack_require__(848), piece = __webpack_require__(852), SPEED_THRESHOLD = 3 * piece.BLOCK_SIZE, TMP = fs.existsSync("/tmp") ? "/tmp" : os.tmpdir(), noop = function() {}, thruthy = function() { return !0; }, falsy = function() { return !1; @@ -70138,7 +73592,7 @@ }, engine; }; }, function(module, exports, __webpack_require__) { - var base32 = __webpack_require__(764); + var base32 = __webpack_require__(818); module.exports = function(uri) { var m, result = {}, data = uri.split("magnet:?")[1]; if (!data || 0 === data.length) return result; @@ -70158,7 +73612,7 @@ return result; }; }, function(module, exports, __webpack_require__) { - var base32 = __webpack_require__(765); + var base32 = __webpack_require__(819); exports.encode = base32.encode, exports.decode = base32.decode; }, function(module, exports) { var byteTable = [ 255, 255, 26, 27, 28, 29, 30, 31, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 255, 255, 255, 255, 255, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 255, 255, 255, 255, 255 ]; @@ -70186,7 +73640,7 @@ return decoded.slice(0, plainPos); }; }, function(module, exports, __webpack_require__) { - var utp = __webpack_require__(767), net = __webpack_require__(42), fifo = __webpack_require__(769), once = __webpack_require__(34), speedometer = __webpack_require__(382), peerWireProtocol = __webpack_require__(770), EventEmitter = __webpack_require__(5).EventEmitter, util = __webpack_require__(0), RECONNECT_WAIT = [ 4e3, 8e3, 12e3 ], toBuffer = function(str, encoding) { + var utp = __webpack_require__(821), net = __webpack_require__(39), fifo = __webpack_require__(823), once = __webpack_require__(35), speedometer = __webpack_require__(417), peerWireProtocol = __webpack_require__(824), EventEmitter = __webpack_require__(4).EventEmitter, util = __webpack_require__(0), RECONNECT_WAIT = [ 4e3, 8e3, 12e3 ], toBuffer = function(str, encoding) { return Buffer.isBuffer(str) ? str : new Buffer(str, encoding); }, toAddress = function(wire) { return "string" == typeof wire ? wire : wire.peerAddress; @@ -70349,7 +73803,7 @@ this.wires.push(wire), this.emit("wire", wire, connection); }, module.exports = Swarm; }, function(module, exports, __webpack_require__) { - var offset, then, dgram = __webpack_require__(69), cyclist = __webpack_require__(768), util = __webpack_require__(0), EventEmitter = __webpack_require__(5).EventEmitter, Duplex = __webpack_require__(3).Duplex, uint32 = function(n) { + var offset, then, dgram = __webpack_require__(79), cyclist = __webpack_require__(822), util = __webpack_require__(0), EventEmitter = __webpack_require__(4).EventEmitter, Duplex = __webpack_require__(3).Duplex, uint32 = function(n) { return n >>> 0; }, uint16 = function(n) { return 65535 & n; @@ -70562,8 +74016,8 @@ return this.node && this.remove(this.node.prev); }, module.exports = FIFO; }, function(module, exports, __webpack_require__) { - var Duplex = __webpack_require__(3).Duplex || __webpack_require__(771).Duplex, bitfield = (__webpack_require__(5).EventEmitter, - __webpack_require__(775)), util = __webpack_require__(0), bncode = __webpack_require__(776), speedometer = __webpack_require__(382), bufferFrom = __webpack_require__(387), bufferAlloc = __webpack_require__(388), MESSAGE_PROTOCOL = bufferFrom([ 19, 66, 105, 116, 84, 111, 114, 114, 101, 110, 116, 32, 112, 114, 111, 116, 111, 99, 111, 108 ]), MESSAGE_KEEP_ALIVE = bufferFrom([ 0, 0, 0, 0 ]), MESSAGE_CHOKE = bufferFrom([ 0, 0, 0, 1, 0 ]), MESSAGE_UNCHOKE = bufferFrom([ 0, 0, 0, 1, 1 ]), MESSAGE_INTERESTED = bufferFrom([ 0, 0, 0, 1, 2 ]), MESSAGE_UNINTERESTED = bufferFrom([ 0, 0, 0, 1, 3 ]), MESSAGE_RESERVED = [ 0, 0, 0, 0, 0, 0, 0, 0 ], MESSAGE_PORT = [ 0, 0, 0, 3, 9, 0, 0 ], noop = function() {}, pull = function(requests, piece, offset, length) { + var Duplex = __webpack_require__(3).Duplex || __webpack_require__(825).Duplex, bitfield = (__webpack_require__(4).EventEmitter, + __webpack_require__(828)), util = __webpack_require__(0), bncode = __webpack_require__(829), speedometer = __webpack_require__(417), bufferFrom = __webpack_require__(422), bufferAlloc = __webpack_require__(423), MESSAGE_PROTOCOL = bufferFrom([ 19, 66, 105, 116, 84, 111, 114, 114, 101, 110, 116, 32, 112, 114, 111, 116, 111, 99, 111, 108 ]), MESSAGE_KEEP_ALIVE = bufferFrom([ 0, 0, 0, 0 ]), MESSAGE_CHOKE = bufferFrom([ 0, 0, 0, 1, 0 ]), MESSAGE_UNCHOKE = bufferFrom([ 0, 0, 0, 1, 1 ]), MESSAGE_INTERESTED = bufferFrom([ 0, 0, 0, 1, 2 ]), MESSAGE_UNINTERESTED = bufferFrom([ 0, 0, 0, 1, 3 ]), MESSAGE_RESERVED = [ 0, 0, 0, 0, 0, 0, 0, 0 ], MESSAGE_PORT = [ 0, 0, 0, 3, 9, 0, 0 ], noop = function() {}, pull = function(requests, piece, offset, length) { for (var i = 0; i < requests.length; i++) { var req = requests[i]; if (req.piece === piece && req.offset === offset && req.length === length) return 0 === i ? requests.shift() : requests.splice(i, 1), @@ -70735,40 +74189,22 @@ callback(); }, Wire.prototype._read = noop, module.exports = Wire; }, function(module, exports, __webpack_require__) { - (exports = module.exports = __webpack_require__(383)).Stream = __webpack_require__(3), - exports.Readable = exports, exports.Writable = __webpack_require__(384), exports.Duplex = __webpack_require__(73), - exports.Transform = __webpack_require__(386), exports.PassThrough = __webpack_require__(774), + (exports = module.exports = __webpack_require__(418)).Stream = __webpack_require__(3), + exports.Readable = exports, exports.Writable = __webpack_require__(419), exports.Duplex = __webpack_require__(84), + exports.Transform = __webpack_require__(421), exports.PassThrough = __webpack_require__(827), process.browser || "disable" !== process.env.READABLE_STREAM || (module.exports = __webpack_require__(3)); }, function(module, exports) { module.exports = Array.isArray || function(arr) { return "[object Array]" == Object.prototype.toString.call(arr); }; -}, function(module, exports) { - "function" == typeof Object.create ? module.exports = function(ctor, superCtor) { - superCtor && (ctor.super_ = superCtor, ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: !1, - writable: !0, - configurable: !0 - } - })); - } : module.exports = function(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor; - var TempCtor = function() {}; - TempCtor.prototype = superCtor.prototype, ctor.prototype = new TempCtor, ctor.prototype.constructor = ctor; - } - }; }, function(module, exports, __webpack_require__) { module.exports = PassThrough; - var Transform = __webpack_require__(386), util = __webpack_require__(32); + var Transform = __webpack_require__(421), util = __webpack_require__(33); function PassThrough(options) { if (!(this instanceof PassThrough)) return new PassThrough(options); Transform.call(this, options); } - util.inherits = __webpack_require__(95), util.inherits(PassThrough, Transform), - PassThrough.prototype._transform = function(chunk, encoding, cb) { + util.inherits = __webpack_require__(8), util.inherits(PassThrough, Transform), PassThrough.prototype._transform = function(chunk, encoding, cb) { cb(null, chunk); }; }, function(module, exports, __webpack_require__) { @@ -71023,9 +74459,9 @@ }, module.exports = BitField; }, function(module, exports, __webpack_require__) { module.exports = rimraf, rimraf.sync = rimrafSync; - var assert = __webpack_require__(22), path = __webpack_require__(4), fs = __webpack_require__(2), glob = void 0; + var assert = __webpack_require__(25), path = __webpack_require__(5), fs = __webpack_require__(2), glob = void 0; try { - glob = __webpack_require__(181); + glob = __webpack_require__(196); } catch (_err) {} var _0666 = parseInt("666", 8), defaultGlobOpts = { nosort: !0, @@ -71174,7 +74610,7 @@ } } }, function(module, exports, __webpack_require__) { - var pathModule = __webpack_require__(4), isWindows = "win32" === process.platform, fs = __webpack_require__(2), DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG); + var pathModule = __webpack_require__(5), isWindows = "win32" === process.platform, fs = __webpack_require__(2), DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG); if (pathModule.normalize, isWindows) var nextPartRe = /(.*?)(?:[\/\\]+|$)/g; else nextPartRe = /(.*?)(?:[\/]+|$)/g; if (isWindows) var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/; else splitRootRe = /^[\/]*/; exports.realpathSync = function(p, cache) { @@ -71273,7 +74709,7 @@ start(); }; }, function(module, exports, __webpack_require__) { - var concatMap = __webpack_require__(783), balanced = __webpack_require__(784); + var concatMap = __webpack_require__(836), balanced = __webpack_require__(837); module.exports = function(str) { return str ? ("{}" === str.substr(0, 2) && (str = "\\{\\}" + str.substr(2)), expand((function(str) { return str.split("\\\\").join(escSlash).split("\\{").join(escOpen).split("\\}").join(escClose).split("\\,").join(escComma).split("\\.").join(escPeriod); @@ -71385,8 +74821,8 @@ module.exports = balanced, balanced.range = range; }, function(module, exports, __webpack_require__) { module.exports = globSync, globSync.GlobSync = GlobSync; - var rp = __webpack_require__(389), minimatch = __webpack_require__(182), path = (minimatch.Minimatch, - __webpack_require__(181).Glob, __webpack_require__(0), __webpack_require__(4)), assert = __webpack_require__(22), isAbsolute = __webpack_require__(183), common = __webpack_require__(390), setopts = common.setopts, ownProp = common.ownProp, childrenIgnored = common.childrenIgnored, isIgnored = common.isIgnored; + var rp = __webpack_require__(424), minimatch = __webpack_require__(197), path = (minimatch.Minimatch, + __webpack_require__(196).Glob, __webpack_require__(0), __webpack_require__(5)), assert = __webpack_require__(25), isAbsolute = __webpack_require__(198), common = __webpack_require__(425), setopts = common.setopts, ownProp = common.ownProp, childrenIgnored = common.childrenIgnored, isIgnored = common.isIgnored; function globSync(pattern, options) { if ("function" == typeof options || 3 === arguments.length) throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167"); return new GlobSync(pattern, options).found; @@ -71568,7 +75004,7 @@ return common.makeAbs(this, f); }; }, function(module, exports, __webpack_require__) { - var wrappy = __webpack_require__(253), reqs = Object.create(null), once = __webpack_require__(34); + var wrappy = __webpack_require__(289), reqs = Object.create(null), once = __webpack_require__(35); function slice(args) { for (var length = args.length, array = [], i = 0; i < length; i++) array[i] = args[i]; return array; @@ -71712,7 +75148,7 @@ return (ipl >>> 24) + "." + (ipl >> 16 & 255) + "." + (ipl >> 8 & 255) + "." + (255 & ipl); }; }, function(module, exports, __webpack_require__) { - var events = __webpack_require__(5), Bagpipe = function(limit, options) { + var events = __webpack_require__(4), Bagpipe = function(limit, options) { for (var key in events.EventEmitter.call(this), this.limit = limit, this.active = 0, this.paused = !1, this.queue = [], this.options = { disabled: !1, @@ -71724,7 +75160,7 @@ }), options = options || {}, this.options) options.hasOwnProperty(key) && (this.options[key] = options[key]); this.queueLength = Math.round(this.limit * (this.options.ratio || 1)); }; - __webpack_require__(789)(Bagpipe, events.EventEmitter); + __webpack_require__(842)(Bagpipe, events.EventEmitter); var addToQueue = function(unshift) { return function(method) { var args = [].slice.call(arguments, 1), callback = args[args.length - 1]; @@ -71790,7 +75226,7 @@ TempCtor.prototype = superCtor.prototype, ctor.prototype = new TempCtor, ctor.prototype.constructor = ctor; }; }, function(module, exports, __webpack_require__) { - var ip = __webpack_require__(116); + var ip = __webpack_require__(127); function IPSet(start, end) { this.start = start, this.end = end, this.max = end, this.depth = 1, this.left = null, this.right = null; @@ -71847,7 +75283,7 @@ })), self; }; }, function(module, exports, __webpack_require__) { - var bncode = __webpack_require__(180), crypto = __webpack_require__(9), sha1 = function(buf) { + var bncode = __webpack_require__(195), crypto = __webpack_require__(6), sha1 = function(buf) { return crypto.createHash("sha1").update(buf).digest("hex"); }; module.exports = function(torrent) { @@ -71865,7 +75301,7 @@ info.length = torrent.files[0].length, encoded = bncode.encode(info), sha1(encoded) === torrent.infoHash ? encoded : null) : null; }; }, function(module, exports, __webpack_require__) { - var bncode = __webpack_require__(180), crypto = __webpack_require__(9), EXTENSIONS_m_ut_metadata = 1; + var bncode = __webpack_require__(195), crypto = __webpack_require__(6), EXTENSIONS_m_ut_metadata = 1; module.exports = function(engine, callback) { var metadataPieces = []; return function(wire) { @@ -71921,8 +75357,8 @@ }; }; }, function(module, exports, __webpack_require__) { - var fs = __webpack_require__(2), path = __webpack_require__(4), async = __webpack_require__(38), bagpipe = (path = __webpack_require__(4), - __webpack_require__(185)), crypto = __webpack_require__(9), _ = __webpack_require__(184), debug = __webpack_require__(8)("p2p-stream-storage"), noop = function() {}; + var fs = __webpack_require__(2), path = __webpack_require__(5), async = __webpack_require__(40), bagpipe = (path = __webpack_require__(5), + __webpack_require__(200)), crypto = __webpack_require__(6), _ = __webpack_require__(199), debug = __webpack_require__(9)("p2p-stream-storage"), noop = function() {}; module.exports = function(dir, torrent, opts, engine) { var that = {}; opts = _.extend({ @@ -72037,7 +75473,7 @@ return that; }; }, function(module, exports, __webpack_require__) { - var fs = __webpack_require__(2), path = __webpack_require__(4), mkdirp = __webpack_require__(132), crypto = __webpack_require__(9), _ = __webpack_require__(184), debug = __webpack_require__(8)("p2p-stream-storage-circular"), noop = function() {}, SANTINEL_BUFFER_FS = new Buffer("fs"); + var fs = __webpack_require__(2), path = __webpack_require__(5), mkdirp = __webpack_require__(142), crypto = __webpack_require__(6), _ = __webpack_require__(199), debug = __webpack_require__(9)("p2p-stream-storage-circular"), noop = function() {}, SANTINEL_BUFFER_FS = new Buffer("fs"); module.exports = function(dir, torrent, opts, engine) { var that = {}, piecesFolder = path.join(dir, "pieces"); function piecePath(idx) { @@ -72122,7 +75558,7 @@ return debug("%s pieces created", pieces.length), that; }; }, function(module, exports, __webpack_require__) { - var stream = __webpack_require__(796), util = __webpack_require__(0), bagpipe = __webpack_require__(185), debug = __webpack_require__(8)("p2p-file-stream"), FileStream = function(engine, file, opts) { + var stream = __webpack_require__(849), util = __webpack_require__(0), bagpipe = __webpack_require__(200), debug = __webpack_require__(9)("p2p-file-stream"), FileStream = function(engine, file, opts) { if (!(this instanceof FileStream)) return new FileStream(engine, file, opts); stream.Readable.call(this), opts || (opts = {}), opts.start || (opts.start = 0), opts.end || "number" == typeof opts.end || (opts.end = file.length - 1); @@ -72168,12 +75604,12 @@ "disable" === process.env.READABLE_STREAM && Stream ? (module.exports = Stream, (exports = module.exports = Stream.Readable).Readable = Stream.Readable, exports.Writable = Stream.Writable, exports.Duplex = Stream.Duplex, exports.Transform = Stream.Transform, exports.PassThrough = Stream.PassThrough, - exports.Stream = Stream) : ((exports = module.exports = __webpack_require__(391)).Stream = Stream || exports, - exports.Readable = exports, exports.Writable = __webpack_require__(395), exports.Duplex = __webpack_require__(74), - exports.Transform = __webpack_require__(396), exports.PassThrough = __webpack_require__(798)); + exports.Stream = Stream) : ((exports = module.exports = __webpack_require__(426)).Stream = Stream || exports, + exports.Readable = exports, exports.Writable = __webpack_require__(430), exports.Duplex = __webpack_require__(85), + exports.Transform = __webpack_require__(431), exports.PassThrough = __webpack_require__(851)); }, function(module, exports, __webpack_require__) { "use strict"; - var Buffer = __webpack_require__(25).Buffer, util = __webpack_require__(0); + var Buffer = __webpack_require__(26).Buffer, util = __webpack_require__(0); module.exports = (function() { function BufferList() { !(function(instance, Constructor) { @@ -72221,12 +75657,12 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = PassThrough; - var Transform = __webpack_require__(396), util = Object.create(__webpack_require__(32)); + var Transform = __webpack_require__(431), util = Object.create(__webpack_require__(33)); function PassThrough(options) { if (!(this instanceof PassThrough)) return new PassThrough(options); Transform.call(this, options); } - util.inherits = __webpack_require__(7), util.inherits(PassThrough, Transform), PassThrough.prototype._transform = function(chunk, encoding, cb) { + util.inherits = __webpack_require__(8), util.inherits(PassThrough, Transform), PassThrough.prototype._transform = function(chunk, encoding, cb) { cb(null, chunk); }; }, function(module, exports) { @@ -72258,10 +75694,10 @@ !0); }, module.exports = PieceBuffer; }, function(module, exports, __webpack_require__) { - const HLSRouter = __webpack_require__(801); + const HLSRouter = __webpack_require__(854); module.exports = HLSRouter; }, function(module, exports, __webpack_require__) { - const Router = __webpack_require__(111), userSettings = __webpack_require__(94), {ffmpeg: ffmpeg} = __webpack_require__(187), {probeMedia: probeMedia, Converter: Converter} = __webpack_require__(809), retrieveMediaSamples = __webpack_require__(405), ERROR_CODE = { + const Router = __webpack_require__(122), userSettings = __webpack_require__(105), {ffmpeg: ffmpeg} = __webpack_require__(202), {probeMedia: probeMedia, Converter: Converter} = __webpack_require__(862), retrieveMediaSamples = __webpack_require__(439), ERROR_CODE = { CREATE_CONVERTER_FAILED: 1, READ_PLAYLIST_FAILED: 10, READ_INIT_SEGMENT_FAILED: 20, @@ -72422,7 +75858,7 @@ })), router; }; }, function(module, exports, __webpack_require__) { - const {spawn: spawn} = __webpack_require__(31), fs = __webpack_require__(2), path = __webpack_require__(4), kill = __webpack_require__(397), http = __webpack_require__(11), EventEmitter = __webpack_require__(5), portfinder = __webpack_require__(803), bridge = __webpack_require__(399), mode = __webpack_require__(400); + const {spawn: spawn} = __webpack_require__(32), fs = __webpack_require__(2), path = __webpack_require__(5), kill = __webpack_require__(432), http = __webpack_require__(11), EventEmitter = __webpack_require__(4), portfinder = __webpack_require__(856), bridge = __webpack_require__(194), mode = __webpack_require__(434); let port = 11910; module.exports = class { constructor(options, forcedMode) { @@ -72491,7 +75927,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var fs = __webpack_require__(2), os = __webpack_require__(23), net = __webpack_require__(42), path = __webpack_require__(4), _async = __webpack_require__(804), debug = __webpack_require__(805), mkdirp = __webpack_require__(132).mkdirp, debugTestPort = debug("portfinder:testPort"), debugGetPort = debug("portfinder:getPort"), debugDefaultHosts = debug("portfinder:defaultHosts"), internals = { + var fs = __webpack_require__(2), os = __webpack_require__(23), net = __webpack_require__(39), path = __webpack_require__(5), _async = __webpack_require__(857), debug = __webpack_require__(858), mkdirp = __webpack_require__(142).mkdirp, debugTestPort = debug("portfinder:testPort"), debugGetPort = debug("portfinder:getPort"), debugDefaultHosts = debug("portfinder:defaultHosts"), internals = { testPort: function(options, callback) { function onListen() { debugTestPort("done w/ testPort(): OK", options.host, "port", options.port), options.server.removeListener("error", onError), @@ -73763,10 +77199,10 @@ value: !0 }); }, factory(exports); - }).call(this, __webpack_require__(62)(module)); + }).call(this, __webpack_require__(69)(module)); }, function(module, exports, __webpack_require__) { "use strict"; - "undefined" == typeof process || "renderer" === process.type || !0 === process.browser || process.__nwjs ? module.exports = __webpack_require__(806) : module.exports = __webpack_require__(807); + "undefined" == typeof process || "renderer" === process.type || !0 === process.browser || process.__nwjs ? module.exports = __webpack_require__(859) : module.exports = __webpack_require__(860); }, function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { @@ -73807,7 +77243,7 @@ return localStorage; } catch (error) {} })(), exports.colors = [ "#0000CC", "#0000FF", "#0033CC", "#0033FF", "#0066CC", "#0066FF", "#0099CC", "#0099FF", "#00CC00", "#00CC33", "#00CC66", "#00CC99", "#00CCCC", "#00CCFF", "#3300CC", "#3300FF", "#3333CC", "#3333FF", "#3366CC", "#3366FF", "#3399CC", "#3399FF", "#33CC00", "#33CC33", "#33CC66", "#33CC99", "#33CCCC", "#33CCFF", "#6600CC", "#6600FF", "#6633CC", "#6633FF", "#66CC00", "#66CC33", "#9900CC", "#9900FF", "#9933CC", "#9933FF", "#99CC00", "#99CC33", "#CC0000", "#CC0033", "#CC0066", "#CC0099", "#CC00CC", "#CC00FF", "#CC3300", "#CC3333", "#CC3366", "#CC3399", "#CC33CC", "#CC33FF", "#CC6600", "#CC6633", "#CC9900", "#CC9933", "#CCCC00", "#CCCC33", "#FF0000", "#FF0033", "#FF0066", "#FF0099", "#FF00CC", "#FF00FF", "#FF3300", "#FF3333", "#FF3366", "#FF3399", "#FF33CC", "#FF33FF", "#FF6600", "#FF6633", "#FF9900", "#FF9933", "#FFCC00", "#FFCC33" ], - module.exports = __webpack_require__(398)(exports), module.exports.formatters.j = function(v) { + module.exports = __webpack_require__(433)(exports), module.exports.formatters.j = function(v) { try { return JSON.stringify(v); } catch (error) { @@ -73816,7 +77252,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var tty = __webpack_require__(105), util = __webpack_require__(0); + var tty = __webpack_require__(117), util = __webpack_require__(0); exports.init = function(debug) { debug.inspectOpts = {}; for (var keys = Object.keys(exports.inspectOpts), i = 0; i < keys.length; i++) debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; @@ -73836,7 +77272,7 @@ return "colors" in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty.isatty(process.stderr.fd); }, exports.colors = [ 6, 2, 3, 4, 5, 1 ]; try { - var supportsColor = __webpack_require__(257); + var supportsColor = __webpack_require__(314); supportsColor && (supportsColor.stderr || supportsColor).level >= 2 && (exports.colors = [ 20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, 63, 68, 69, 74, 75, 76, 77, 78, 79, 80, 81, 92, 93, 98, 99, 112, 113, 128, 129, 134, 135, 148, 149, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 178, 179, 184, 185, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 214, 215, 220, 221 ]); } catch (error) {} exports.inspectOpts = Object.keys(process.env).filter((function(key) { @@ -73847,7 +77283,7 @@ })), val = process.env[key]; return val = !!/^(yes|on|true|enabled)$/i.test(val) || !/^(no|off|false|disabled)$/i.test(val) && ("null" === val ? null : Number(val)), obj[prop] = val, obj; - }), {}), module.exports = __webpack_require__(398)(exports); + }), {}), module.exports = __webpack_require__(433)(exports); var formatters = module.exports.formatters; formatters.o = function(v) { return this.inspectOpts.colors = this.useColors, util.inspect(v, this.inspectOpts).split("\n").map((function(str) { @@ -73857,8 +77293,8 @@ return this.inspectOpts.colors = this.useColors, util.inspect(v, this.inspectOpts); }; }, function(module, exports, __webpack_require__) { - const {spawn: spawn} = __webpack_require__(31), fs = __webpack_require__(2), path = __webpack_require__(4), kill = __webpack_require__(397), EventEmitter = __webpack_require__(5), {Readable: Readable} = __webpack_require__(3), bridge = __webpack_require__(399), mode = (__webpack_require__(11), - __webpack_require__(400)); + const {spawn: spawn} = __webpack_require__(32), fs = __webpack_require__(2), path = __webpack_require__(5), kill = __webpack_require__(432), EventEmitter = __webpack_require__(4), {Readable: Readable} = __webpack_require__(3), bridge = __webpack_require__(194), mode = (__webpack_require__(11), + __webpack_require__(434)); module.exports = class { constructor(options, forcedMode) { this.events = new EventEmitter, this.probeProcess = null, this.stream = null, this.mode = forcedMode || mode; @@ -73893,14 +77329,14 @@ } }; }, function(module, exports, __webpack_require__) { - const probeMedia = __webpack_require__(401), Converter = __webpack_require__(813); + const probeMedia = __webpack_require__(435), Converter = __webpack_require__(866); module.exports = { probeMedia: probeMedia, Converter: Converter }; }, function(module, exports, __webpack_require__) { "use strict"; - var Parser = __webpack_require__(811), through = __webpack_require__(812), bufferFrom = Buffer.from && Buffer.from !== Uint8Array.from; + var Parser = __webpack_require__(864), through = __webpack_require__(865), bufferFrom = Buffer.from && Buffer.from !== Uint8Array.from; function check(x, y) { return "string" == typeof x ? y == x : x && "function" == typeof x.exec ? x.exec(y) : "boolean" == typeof x || "object" == typeof x ? x : "function" == typeof x && x(y); } @@ -74198,7 +77634,7 @@ } module.exports = through, through.through = through; }, function(module, exports, __webpack_require__) { - const querystring = __webpack_require__(24), {Mutex: Mutex} = __webpack_require__(402), userSettings = __webpack_require__(94), retrieveMediaSamples = __webpack_require__(405), probeMedia = __webpack_require__(401), m3u8 = __webpack_require__(431), MediaConverter = __webpack_require__(864), IGNORED_STREAM_CODECS = [ "dvb_subtitle", "dvd_subtitle", "hdmv_pgs_subtitle", "xsub" ]; + const querystring = __webpack_require__(24), {Mutex: Mutex} = __webpack_require__(436), userSettings = __webpack_require__(105), retrieveMediaSamples = __webpack_require__(439), probeMedia = __webpack_require__(435), m3u8 = __webpack_require__(465), MediaConverter = __webpack_require__(917), IGNORED_STREAM_CODECS = [ "dvb_subtitle", "dvd_subtitle", "hdmv_pgs_subtitle", "xsub" ]; class ConverterDestroyedError extends Error { constructor() { super("MasterConverter is destroyed"), this.name = "ConverterDestroyedError"; @@ -74360,7 +77796,7 @@ Object.defineProperty(exports, "__esModule", { value: !0 }); - var tslib_1 = __webpack_require__(134), Semaphore_1 = __webpack_require__(403), Mutex = (function() { + var tslib_1 = __webpack_require__(144), Semaphore_1 = __webpack_require__(437), Mutex = (function() { function Mutex(cancelError) { this._semaphore = new Semaphore_1.default(1, cancelError); } @@ -74396,13 +77832,13 @@ Object.defineProperty(exports, "__esModule", { value: !0 }), exports.tryAcquire = void 0; - var errors_1 = __webpack_require__(135), withTimeout_1 = __webpack_require__(404); + var errors_1 = __webpack_require__(145), withTimeout_1 = __webpack_require__(438); exports.tryAcquire = function(sync, alreadyAcquiredError) { return void 0 === alreadyAcquiredError && (alreadyAcquiredError = errors_1.E_ALREADY_LOCKED), (0, withTimeout_1.withTimeout)(sync, 0, alreadyAcquiredError); }; }, function(module, exports, __webpack_require__) { - const {Decoder: Decoder, Schema: Schema} = __webpack_require__(817), TRACK_TYPE_NAMES = { + const {Decoder: Decoder, Schema: Schema} = __webpack_require__(870), TRACK_TYPE_NAMES = { 1: "video", 2: "audio" }; @@ -74455,17 +77891,17 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = { - Decoder: __webpack_require__(818), - Document: __webpack_require__(406), + Decoder: __webpack_require__(871), + Document: __webpack_require__(440), Schema: __webpack_require__(13), - FileSource: __webpack_require__(409), - HttpSource: __webpack_require__(410), - StreamFactorySource: __webpack_require__(824) + FileSource: __webpack_require__(443), + HttpSource: __webpack_require__(444), + StreamFactorySource: __webpack_require__(877) }; }, function(module, exports, __webpack_require__) { "use strict"; - var debug = __webpack_require__(41)("matroska:decoder"), debugTag = __webpack_require__(41)("matroska:decoder:tag"), url = (__webpack_require__(2), - __webpack_require__(6)), util = (__webpack_require__(10).SlowBuffer, __webpack_require__(0)), Writable = __webpack_require__(3).Writable, Document2 = __webpack_require__(820), Source = __webpack_require__(408), FileSource = __webpack_require__(409), HttpSource = __webpack_require__(410), tools = __webpack_require__(75), schema = __webpack_require__(13); + var debug = __webpack_require__(46)("matroska:decoder"), debugTag = __webpack_require__(46)("matroska:decoder:tag"), url = (__webpack_require__(2), + __webpack_require__(7)), util = (__webpack_require__(10).SlowBuffer, __webpack_require__(0)), Writable = __webpack_require__(3).Writable, Document2 = __webpack_require__(873), Source = __webpack_require__(442), FileSource = __webpack_require__(443), HttpSource = __webpack_require__(444), tools = __webpack_require__(86), schema = __webpack_require__(13); function Decoder(options) { Writable.call(this, options), options = options || {}, this.options = options, this.skipTags = options.skipTags, void 0 === this.skipTags && (this.skipTags = { @@ -74730,7 +78166,7 @@ } catch (e) {} }, function(module, exports, __webpack_require__) { "use strict"; - var async = __webpack_require__(38), util = __webpack_require__(0), Document1 = __webpack_require__(821); + var async = __webpack_require__(40), util = __webpack_require__(0), Document1 = __webpack_require__(874); function Document2() { Document1.call(this); } @@ -74766,8 +78202,8 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - __webpack_require__(38); - var util = __webpack_require__(0), Document = __webpack_require__(406), schema = __webpack_require__(13); + __webpack_require__(40); + var util = __webpack_require__(0), Document = __webpack_require__(440), schema = __webpack_require__(13); function Document1() { Document.call(this); } @@ -74795,54 +78231,54 @@ var map = { "./_proto": 19, "./_proto.js": 19, - "./attachedFile": 188, - "./attachedFile.js": 188, - "./attachments": 189, - "./attachments.js": 189, - "./audio": 190, - "./audio.js": 190, - "./crc-32": 191, - "./crc-32.js": 191, - "./cuePoint": 192, - "./cuePoint.js": 192, - "./cueReference": 193, - "./cueReference.js": 193, - "./cueTrackPositions": 195, - "./cueTrackPositions.js": 195, - "./cues": 194, - "./cues.js": 194, - "./element1": 43, - "./element1.js": 43, - "./info": 196, - "./info.js": 196, - "./masterElement": 29, - "./masterElement.js": 29, - "./seek": 197, - "./seek.js": 197, - "./seekHead": 198, - "./seekHead.js": 198, - "./segment": 136, - "./segment.js": 136, - "./segment1": 137, - "./segment1.js": 137, - "./segment2": 138, - "./segment2.js": 138, - "./segment3": 199, - "./segment3.js": 199, - "./simpleTag": 200, - "./simpleTag.js": 200, - "./tag": 201, - "./tag.js": 201, - "./tags": 202, - "./tags.js": 202, - "./targets": 203, - "./targets.js": 203, - "./trackEntry": 204, - "./trackEntry.js": 204, - "./tracks": 205, - "./tracks.js": 205, - "./video": 206, - "./video.js": 206 + "./attachedFile": 203, + "./attachedFile.js": 203, + "./attachments": 204, + "./attachments.js": 204, + "./audio": 205, + "./audio.js": 205, + "./crc-32": 206, + "./crc-32.js": 206, + "./cuePoint": 207, + "./cuePoint.js": 207, + "./cueReference": 208, + "./cueReference.js": 208, + "./cueTrackPositions": 210, + "./cueTrackPositions.js": 210, + "./cues": 209, + "./cues.js": 209, + "./element1": 47, + "./element1.js": 47, + "./info": 211, + "./info.js": 211, + "./masterElement": 30, + "./masterElement.js": 30, + "./seek": 212, + "./seek.js": 212, + "./seekHead": 213, + "./seekHead.js": 213, + "./segment": 146, + "./segment.js": 146, + "./segment1": 147, + "./segment1.js": 147, + "./segment2": 148, + "./segment2.js": 148, + "./segment3": 214, + "./segment3.js": 214, + "./simpleTag": 215, + "./simpleTag.js": 215, + "./tag": 216, + "./tag.js": 216, + "./tags": 217, + "./tags.js": 217, + "./targets": 218, + "./targets.js": 218, + "./trackEntry": 219, + "./trackEntry.js": 219, + "./tracks": 220, + "./tracks.js": 220, + "./video": 221, + "./video.js": 221 }; function webpackContext(req) { var id = webpackContextResolve(req); @@ -74858,13 +78294,13 @@ webpackContext.keys = function() { return Object.keys(map); }, webpackContext.resolve = webpackContextResolve, module.exports = webpackContext, - webpackContext.id = 822; + webpackContext.id = 875; }, function(module, exports, __webpack_require__) { var debug; module.exports = function() { if (!debug) { try { - debug = __webpack_require__(41)("follow-redirects"); + debug = __webpack_require__(46)("follow-redirects"); } catch (error) {} "function" != typeof debug && (debug = function() {}); } @@ -74873,8 +78309,8 @@ }, function(module, exports, __webpack_require__) { "use strict"; __webpack_require__(2); - var util = __webpack_require__(0), AbstractSource = (__webpack_require__(41)("matroska:streamFactorySource"), - __webpack_require__(207)); + var util = __webpack_require__(0), AbstractSource = (__webpack_require__(46)("matroska:streamFactorySource"), + __webpack_require__(222)); function StreamFactorySource(streamFactory) { if (AbstractSource.call(this), "function" != typeof streamFactory.getStream) throw new Error("Invalid streamFactory object (getStream function)"); if (streamFactory.end && "function" != typeof streamFactory.end) throw new Error("Invalid streamFactory object (end function)"); @@ -74898,7 +78334,7 @@ return "[StreamFactorySource factory=" + this.streamFactory + "]"; }; }, function(module, exports, __webpack_require__) { - const muxjs = __webpack_require__(412), getMoovBox = __webpack_require__(848), TRACK_TYPE_NAMES = { + const muxjs = __webpack_require__(446), getMoovBox = __webpack_require__(901), TRACK_TYPE_NAMES = { vide: "video", soun: "audio" }; @@ -74990,16 +78426,16 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = { - generator: __webpack_require__(140), - probe: __webpack_require__(828), - Transmuxer: __webpack_require__(214).Transmuxer, - AudioSegmentStream: __webpack_require__(214).AudioSegmentStream, - VideoSegmentStream: __webpack_require__(214).VideoSegmentStream, - CaptionParser: __webpack_require__(832) + generator: __webpack_require__(150), + probe: __webpack_require__(881), + Transmuxer: __webpack_require__(229).Transmuxer, + AudioSegmentStream: __webpack_require__(229).AudioSegmentStream, + VideoSegmentStream: __webpack_require__(229).VideoSegmentStream, + CaptionParser: __webpack_require__(885) }; }, function(module, exports, __webpack_require__) { "use strict"; - var timescale, startTime, compositionStartTime, getVideoTrackIds, getTracks, getTimescaleFromMediaHeader, toUnsigned = __webpack_require__(141).toUnsigned, toHexString = __webpack_require__(141).toHexString, findBox = __webpack_require__(209), parseType = __webpack_require__(210), parseTfhd = __webpack_require__(211), parseTrun = __webpack_require__(212), parseTfdt = __webpack_require__(213); + var timescale, startTime, compositionStartTime, getVideoTrackIds, getTracks, getTimescaleFromMediaHeader, toUnsigned = __webpack_require__(151).toUnsigned, toHexString = __webpack_require__(151).toHexString, findBox = __webpack_require__(224), parseType = __webpack_require__(225), parseTfhd = __webpack_require__(226), parseTrun = __webpack_require__(227), parseTfdt = __webpack_require__(228); timescale = function(init) { return findBox(init, [ "moov", "trak" ]).reduce((function(result, trak) { var tkhd, version, index, id, mdhd; @@ -75127,7 +78563,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var _MetadataStream, Stream = __webpack_require__(37), StreamTypes = __webpack_require__(144), percentEncode = function(bytes, start, end) { + var _MetadataStream, Stream = __webpack_require__(38), StreamTypes = __webpack_require__(154), percentEncode = function(bytes, start, end) { var i, result = ""; for (i = start; i < end; i++) result += "%" + ("00" + bytes[i].toString(16)).slice(-2); return result; @@ -75206,7 +78642,7 @@ }).prototype = new Stream, module.exports = _MetadataStream; }, function(module, exports, __webpack_require__) { "use strict"; - var discardEmulationPreventionBytes = __webpack_require__(417).discardEmulationPreventionBytes, CaptionStream = __webpack_require__(416).CaptionStream, findBox = __webpack_require__(209), parseTfdt = __webpack_require__(213), parseTrun = __webpack_require__(212), parseTfhd = __webpack_require__(211), mapToSample = function(offset, samples) { + var discardEmulationPreventionBytes = __webpack_require__(451).discardEmulationPreventionBytes, CaptionStream = __webpack_require__(450).CaptionStream, findBox = __webpack_require__(224), parseTfdt = __webpack_require__(228), parseTrun = __webpack_require__(227), parseTfhd = __webpack_require__(226), mapToSample = function(offset, samples) { for (var approximateOffset = offset, i = 0; i < samples.length; i++) { var sample = samples[i]; if (approximateOffset < sample.size) return sample; @@ -75334,13 +78770,13 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = { - tag: __webpack_require__(215), - Transmuxer: __webpack_require__(834), - getFlvHeader: __webpack_require__(837) + tag: __webpack_require__(230), + Transmuxer: __webpack_require__(887), + getFlvHeader: __webpack_require__(890) }; }, function(module, exports, __webpack_require__) { "use strict"; - var _Transmuxer, _VideoSegmentStream, _AudioSegmentStream, collectTimelineInfo, metaDataTag, extraDataTag, Stream = __webpack_require__(37), FlvTag = __webpack_require__(215), m2ts = __webpack_require__(143), AdtsStream = __webpack_require__(139), H264Stream = __webpack_require__(208).H264Stream, CoalesceStream = __webpack_require__(835), TagList = __webpack_require__(836); + var _Transmuxer, _VideoSegmentStream, _AudioSegmentStream, collectTimelineInfo, metaDataTag, extraDataTag, Stream = __webpack_require__(38), FlvTag = __webpack_require__(230), m2ts = __webpack_require__(153), AdtsStream = __webpack_require__(149), H264Stream = __webpack_require__(223).H264Stream, CoalesceStream = __webpack_require__(888), TagList = __webpack_require__(889); collectTimelineInfo = function(track, data) { "number" == typeof data.pts && (void 0 === track.timelineStartInfo.pts ? track.timelineStartInfo.pts = data.pts : track.timelineStartInfo.pts = Math.min(track.timelineStartInfo.pts, data.pts)), "number" == typeof data.dts && (void 0 === track.timelineStartInfo.dts ? track.timelineStartInfo.dts = data.dts : track.timelineStartInfo.dts = Math.min(track.timelineStartInfo.dts, data.dts)); @@ -75452,7 +78888,7 @@ }).prototype = new Stream, module.exports = _Transmuxer; }, function(module, exports, __webpack_require__) { "use strict"; - var Stream = __webpack_require__(37), CoalesceStream = function CoalesceStream(options) { + var Stream = __webpack_require__(38), CoalesceStream = function CoalesceStream(options) { this.numberOfTracks = 0, this.metadataStream = options.metadataStream, this.videoTags = [], this.audioTags = [], this.videoTrack = null, this.audioTrack = null, this.pendingCaptions = [], this.pendingMetadata = [], this.pendingTracks = 0, this.processedTracks = 0, CoalesceStream.prototype.init.call(this), @@ -75506,7 +78942,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var FlvTag = __webpack_require__(215); + var FlvTag = __webpack_require__(230); module.exports = function(duration, audio, video) { var metadata, result, metadataLength, headBytes = new Uint8Array(9), head = new DataView(headBytes.buffer); return duration = duration || 0, audio = void 0 === audio || audio, video = void 0 === video || video, @@ -75520,15 +78956,15 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - module.exports = __webpack_require__(143); + module.exports = __webpack_require__(153); }, function(module, exports, __webpack_require__) { "use strict"; module.exports = { - Transmuxer: __webpack_require__(840) + Transmuxer: __webpack_require__(893) }; }, function(module, exports, __webpack_require__) { "use strict"; - var Stream = __webpack_require__(37), m2ts = __webpack_require__(143), codecs = __webpack_require__(413), AudioSegmentStream = __webpack_require__(841), VideoSegmentStream = __webpack_require__(842), trackInfo = __webpack_require__(142), isLikelyAacData = __webpack_require__(145).isLikelyAacData, AdtsStream = __webpack_require__(139), AacStream = __webpack_require__(419), clock = __webpack_require__(54), createPipeline = function(object) { + var Stream = __webpack_require__(38), m2ts = __webpack_require__(153), codecs = __webpack_require__(447), AudioSegmentStream = __webpack_require__(894), VideoSegmentStream = __webpack_require__(895), trackInfo = __webpack_require__(152), isLikelyAacData = __webpack_require__(155).isLikelyAacData, AdtsStream = __webpack_require__(149), AacStream = __webpack_require__(453), clock = __webpack_require__(59), createPipeline = function(object) { return object.prototype = new Stream, object.prototype.init.call(object), object; }, setupPipelineListeners = function(pipeline, transmuxer) { pipeline.on("data", transmuxer.trigger.bind(transmuxer, "data")), pipeline.on("done", transmuxer.trigger.bind(transmuxer, "done")), @@ -75672,7 +79108,7 @@ Transmuxer.prototype = new Stream, module.exports = Transmuxer; }, function(module, exports, __webpack_require__) { "use strict"; - var Stream = __webpack_require__(37), mp4 = __webpack_require__(140), audioFrameUtils = __webpack_require__(415), trackInfo = __webpack_require__(142), ONE_SECOND_IN_TS = __webpack_require__(54).ONE_SECOND_IN_TS, AUDIO_PROPERTIES = __webpack_require__(420), AudioSegmentStream = function AudioSegmentStream(track, options) { + var Stream = __webpack_require__(38), mp4 = __webpack_require__(150), audioFrameUtils = __webpack_require__(449), trackInfo = __webpack_require__(152), ONE_SECOND_IN_TS = __webpack_require__(59).ONE_SECOND_IN_TS, AUDIO_PROPERTIES = __webpack_require__(454), AudioSegmentStream = function AudioSegmentStream(track, options) { var adtsFrames = [], sequenceNumber = 0, earliestAllowedDts = 0, audioAppendStartTs = 0, videoBaseMediaDecodeTime = 1 / 0, segmentStartPts = null, segmentEndPts = null; options = options || {}, AudioSegmentStream.prototype.init.call(this), this.push = function(data) { trackInfo.collectDtsInfo(track, data), track && AUDIO_PROPERTIES.forEach((function(prop) { @@ -75716,7 +79152,7 @@ AudioSegmentStream.prototype = new Stream, module.exports = AudioSegmentStream; }, function(module, exports, __webpack_require__) { "use strict"; - var Stream = __webpack_require__(37), mp4 = __webpack_require__(140), trackInfo = __webpack_require__(142), frameUtils = __webpack_require__(414), VIDEO_PROPERTIES = __webpack_require__(421), VideoSegmentStream = function VideoSegmentStream(track, options) { + var Stream = __webpack_require__(38), mp4 = __webpack_require__(150), trackInfo = __webpack_require__(152), frameUtils = __webpack_require__(448), VIDEO_PROPERTIES = __webpack_require__(455), VideoSegmentStream = function VideoSegmentStream(track, options) { var config, pps, gops, sequenceNumber = 0, nalUnits = [], frameCache = [], segmentStartPts = null, segmentEndPts = null, ensureNextFrameIsKeyFrame = !0; options = options || {}, VideoSegmentStream.prototype.init.call(this), this.push = function(nalUnit) { trackInfo.collectDtsInfo(track, nalUnit), void 0 === track.timelineStartInfo.dts && (track.timelineStartInfo.dts = nalUnit.dts), @@ -75782,7 +79218,7 @@ "use strict"; var inspectMp4, _textifyMp, MAX_UINT32 = Math.pow(2, 32), parseMp4Date = function(seconds) { return new Date(1e3 * seconds - 20828448e5); - }, parseType = __webpack_require__(210), findBox = __webpack_require__(209), nalParse = function(avcStream) { + }, parseType = __webpack_require__(225), findBox = __webpack_require__(224), nalParse = function(avcStream) { var i, length, avcView = new DataView(avcStream.buffer, avcStream.byteOffset, avcStream.byteLength), result = []; for (i = 0; i + 4 < avcStream.length; i += length) if (length = avcView.getUint32(i), i += 4, length <= 0) result.push("MALFORMED DATA"); else switch (31 & avcStream[i]) { @@ -76033,7 +79469,7 @@ }); return result; }, - sidx: __webpack_require__(844), + sidx: __webpack_require__(897), smhd: function(data) { return { version: data[0], @@ -76121,8 +79557,8 @@ styp: function(data) { return parse.ftyp(data); }, - tfdt: __webpack_require__(213), - tfhd: __webpack_require__(211), + tfdt: __webpack_require__(228), + tfhd: __webpack_require__(226), tkhd: function(data) { var view = new DataView(data.buffer, data.byteOffset, data.byteLength), i = 4, result = { version: view.getUint8(0), @@ -76165,7 +79601,7 @@ sampleDegradationPriority: view.getUint16(22) }; }, - trun: __webpack_require__(212), + trun: __webpack_require__(227), "url ": function(data) { return { version: data[0], @@ -76312,9 +79748,9 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var StreamTypes = __webpack_require__(144), handleRollover = __webpack_require__(418).handleRollover, probe = {}; - probe.ts = __webpack_require__(847), probe.aac = __webpack_require__(145); - var ONE_SECOND_IN_TS = __webpack_require__(54).ONE_SECOND_IN_TS, parseAudioPes_ = function(bytes, pmt, result) { + var StreamTypes = __webpack_require__(154), handleRollover = __webpack_require__(452).handleRollover, probe = {}; + probe.ts = __webpack_require__(900), probe.aac = __webpack_require__(155); + var ONE_SECOND_IN_TS = __webpack_require__(59).ONE_SECOND_IN_TS, parseAudioPes_ = function(bytes, pmt, result) { for (var packet, pesType, pusi, parsed, startIndex = 0, endIndex = 188, endLoop = !1; endIndex <= bytes.byteLength; ) if (71 !== bytes[startIndex] || 71 !== bytes[endIndex] && endIndex !== bytes.byteLength) startIndex++, endIndex++; else { if (packet = bytes.subarray(startIndex, endIndex), "pes" === probe.ts.parseType(packet, pmt.pid) && (pesType = probe.ts.parsePesType(packet, pmt.table), @@ -76467,7 +79903,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var StreamTypes = __webpack_require__(144), parsePid = function(packet) { + var StreamTypes = __webpack_require__(154), parsePid = function(packet) { var pid = 31 & packet[1]; return (pid <<= 8) | packet[2]; }, parsePayloadUnitStartIndicator = function(packet) { @@ -76582,7 +80018,7 @@ } }; }, function(module, exports, __webpack_require__) { - const {finished: finished} = __webpack_require__(3), DecodeStream = __webpack_require__(422), readChunk = __webpack_require__(217), {open: openInputStream, close: closeInputStream} = __webpack_require__(859); + const {finished: finished} = __webpack_require__(3), DecodeStream = __webpack_require__(456), readChunk = __webpack_require__(232), {open: openInputStream, close: closeInputStream} = __webpack_require__(912); async function parseBoxHeaders(buffer) { return new Promise(((resolve, reject) => { const boxes = [], decodeStream = new DecodeStream, cleanupDecodeStream = finished(decodeStream, (error => { @@ -76616,10 +80052,10 @@ }, function(module, exports, __webpack_require__) { var Stream = __webpack_require__(3); "disable" === process.env.READABLE_STREAM && Stream ? (module.exports = Stream.Readable, - Object.assign(module.exports, Stream), module.exports.Stream = Stream) : ((exports = module.exports = __webpack_require__(423)).Stream = Stream || exports, - exports.Readable = exports, exports.Writable = __webpack_require__(427), exports.Duplex = __webpack_require__(76), - exports.Transform = __webpack_require__(428), exports.PassThrough = __webpack_require__(853), - exports.finished = __webpack_require__(216), exports.pipeline = __webpack_require__(854)); + Object.assign(module.exports, Stream), module.exports.Stream = Stream) : ((exports = module.exports = __webpack_require__(457)).Stream = Stream || exports, + exports.Readable = exports, exports.Writable = __webpack_require__(461), exports.Duplex = __webpack_require__(87), + exports.Transform = __webpack_require__(462), exports.PassThrough = __webpack_require__(906), + exports.finished = __webpack_require__(231), exports.pipeline = __webpack_require__(907)); }, function(module, exports, __webpack_require__) { "use strict"; function ownKeys(object, enumerableOnly) { @@ -76777,7 +80213,7 @@ writable: !0 }) : obj[key] = value, obj; } - var finished = __webpack_require__(216), kLastResolve = Symbol("lastResolve"), kLastReject = Symbol("lastReject"), kError = Symbol("error"), kEnded = Symbol("ended"), kLastPromise = Symbol("lastPromise"), kHandlePromise = Symbol("handlePromise"), kStream = Symbol("stream"); + var finished = __webpack_require__(231), kLastResolve = Symbol("lastResolve"), kLastReject = Symbol("lastReject"), kError = Symbol("error"), kEnded = Symbol("ended"), kLastPromise = Symbol("lastPromise"), kHandlePromise = Symbol("handlePromise"), kStream = Symbol("stream"); function createIterResult(value, done) { return { value: value, @@ -76910,7 +80346,7 @@ writable: !0 }) : obj[key] = value, obj; } - var ERR_INVALID_ARG_TYPE = __webpack_require__(65).codes.ERR_INVALID_ARG_TYPE; + var ERR_INVALID_ARG_TYPE = __webpack_require__(74).codes.ERR_INVALID_ARG_TYPE; module.exports = function(Readable, iterable, opts) { var iterator; if (iterable && "function" == typeof iterable.next) iterator = iterable; else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator](); else { @@ -76950,17 +80386,17 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = PassThrough; - var Transform = __webpack_require__(428); + var Transform = __webpack_require__(462); function PassThrough(options) { if (!(this instanceof PassThrough)) return new PassThrough(options); Transform.call(this, options); } - __webpack_require__(7)(PassThrough, Transform), PassThrough.prototype._transform = function(chunk, encoding, cb) { + __webpack_require__(8)(PassThrough, Transform), PassThrough.prototype._transform = function(chunk, encoding, cb) { cb(null, chunk); }; }, function(module, exports, __webpack_require__) { "use strict"; - var eos, _require$codes = __webpack_require__(65).codes, ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; + var eos, _require$codes = __webpack_require__(74).codes, ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; function noop(err) { if (err) throw err; } @@ -76974,7 +80410,7 @@ var closed = !1; stream.on("close", (function() { closed = !0; - })), void 0 === eos && (eos = __webpack_require__(216)), eos(stream, { + })), void 0 === eos && (eos = __webpack_require__(231)), eos(stream, { readable: reading, writable: writing }, (function(err) { @@ -77023,7 +80459,7 @@ }; }; }, function(module, exports, __webpack_require__) { - var Box = __webpack_require__(429), Descriptor = __webpack_require__(857), uint64be = __webpack_require__(430); + var Box = __webpack_require__(463), Descriptor = __webpack_require__(910), uint64be = __webpack_require__(464); function writeReserved(buf, offset, end) { for (var i = offset; i < end; i++) buf[i] = 0; } @@ -77565,7 +81001,7 @@ })); }; }, function(module, exports, __webpack_require__) { - const fs = __webpack_require__(2), {http: http, https: https} = __webpack_require__(860), {URL: URL, fileURLToPath: fileURLToPath} = __webpack_require__(6); + const fs = __webpack_require__(2), {http: http, https: https} = __webpack_require__(913), {URL: URL, fileURLToPath: fileURLToPath} = __webpack_require__(7); module.exports = { open: async function(url, offset) { const {protocol: protocol, href: href} = new URL(url); @@ -77603,7 +81039,7 @@ } }; }, function(module, exports, __webpack_require__) { - var url = __webpack_require__(6), URL = url.URL, http = __webpack_require__(11), https = __webpack_require__(21), Writable = __webpack_require__(3).Writable, assert = __webpack_require__(22), debug = __webpack_require__(861), eventHandlers = Object.create(null); + var url = __webpack_require__(7), URL = url.URL, http = __webpack_require__(11), https = __webpack_require__(21), Writable = __webpack_require__(3).Writable, assert = __webpack_require__(25), debug = __webpack_require__(914), eventHandlers = Object.create(null); [ "abort", "aborted", "connect", "error", "socket", "timeout" ].forEach((function(event) { eventHandlers[event] = function(arg1, arg2, arg3) { this._redirectable.emit(event, arg1, arg2, arg3); @@ -77807,7 +81243,7 @@ var debug; module.exports = function() { if (!debug) try { - debug = __webpack_require__(8)("follow-redirects"); + debug = __webpack_require__(9)("follow-redirects"); } catch (error) { debug = function() {}; } @@ -77830,7 +81266,7 @@ })).reduce(((result, segment) => result.concat(segment)), []), "#EXT-X-ENDLIST" ].join("\n"); }; }, function(module, exports, __webpack_require__) { - const fs = __webpack_require__(2), path = __webpack_require__(4), muxjs = __webpack_require__(412), {Mutex: Mutex} = __webpack_require__(402), readChunk = __webpack_require__(217), segmenter = __webpack_require__(865), mp4 = __webpack_require__(867), vtt = __webpack_require__(871), m3u8 = __webpack_require__(431), spawnConvertProcess = __webpack_require__(880), TRANSMUXED_VIDEO_CODECS = [ "h264" ], TRANSMUXED_AUDIO_CODECS = [ "aac", "mp3" ], TRANSCODING_AAC_SAMPLE_RATES = [ 7350, 8e3, 11025, 12e3, 16e3, 22050, 24e3, 32e3, 44100, 48e3, 64e3, 88200, 96e3 ]; + const fs = __webpack_require__(2), path = __webpack_require__(5), muxjs = __webpack_require__(446), {Mutex: Mutex} = __webpack_require__(436), readChunk = __webpack_require__(232), segmenter = __webpack_require__(918), mp4 = __webpack_require__(920), vtt = __webpack_require__(924), m3u8 = __webpack_require__(465), spawnConvertProcess = __webpack_require__(933), TRANSMUXED_VIDEO_CODECS = [ "h264" ], TRANSMUXED_AUDIO_CODECS = [ "aac", "mp3" ], TRANSCODING_AAC_SAMPLE_RATES = [ 7350, 8e3, 11025, 12e3, 16e3, 22050, 24e3, 32e3, 44100, 48e3, 64e3, 88200, 96e3 ]; class ConverterDestroyedError extends Error { constructor() { super("MediaConverter is destroyed"), this.name = "ConverterDestroyedError"; @@ -78118,13 +81554,13 @@ }; }; }, function(module, exports, __webpack_require__) { - const predict = __webpack_require__(432), retrieve = __webpack_require__(866); + const predict = __webpack_require__(466), retrieve = __webpack_require__(919); module.exports = { predict: predict, retrieve: retrieve }; }, function(module, exports, __webpack_require__) { - const predict = __webpack_require__(432); + const predict = __webpack_require__(466); module.exports = function({stream: stream, format: format, samples: samples, sampleDuration: sampleDuration, timescale: timescale, segmentDuration: segmentDuration}) { const timescaleCoef = timescale / stream.timescale, segmentDurationTs = Math.ceil(segmentDuration * timescale), sampleDurationTs = sampleDuration * timescaleCoef; if (samples.some((({key: key}) => key))) return samples.filter((({key: key}) => key)).map((({pts: pts}, index, keySamples) => ({ @@ -78152,19 +81588,19 @@ }); }; }, function(module, exports, __webpack_require__) { - const init = __webpack_require__(868), media = __webpack_require__(869), updateBaseMediaDecodeTime = __webpack_require__(870); + const init = __webpack_require__(921), media = __webpack_require__(922), updateBaseMediaDecodeTime = __webpack_require__(923); module.exports = { init: init, media: media, updateBaseMediaDecodeTime: updateBaseMediaDecodeTime }; }, function(module, exports, __webpack_require__) { - const readUntilBox = __webpack_require__(433); + const readUntilBox = __webpack_require__(467); module.exports = async function(stream) { return readUntilBox(stream, "moov"); }; }, function(module, exports, __webpack_require__) { - const readUntilBox = __webpack_require__(433); + const readUntilBox = __webpack_require__(467); module.exports = async function(stream) { return readUntilBox(stream, "mdat"); }; @@ -78180,7 +81616,7 @@ buffer.writeUInt8(1, tfdtDataOffset), buffer.writeBigUInt64BE(BigInt(Math.max(baseMediaDecodeTime, 0)), tfdtDataOffset + 4); }; }, function(module, exports, __webpack_require__) { - const format = __webpack_require__(872), parse = __webpack_require__(873); + const format = __webpack_require__(925), parse = __webpack_require__(926); module.exports = { format: format, parse: parse @@ -78193,7 +81629,7 @@ return "WEBVTT\n\n" + cues.map((cue => `${formatTime(cue.startTime)} --\x3e ${formatTime(cue.endTime)}\n${cue.text}\n`)).join("\n"); }; }, function(module, exports, __webpack_require__) { - const {WebVTT: WebVTT, VTTCue: VTTCue} = __webpack_require__(874); + const {WebVTT: WebVTT, VTTCue: VTTCue} = __webpack_require__(927); global.navigator = { userAgent: "" }, module.exports = function(text) { @@ -78210,9 +81646,9 @@ }; }, function(module, exports, __webpack_require__) { module.exports = { - WebVTT: __webpack_require__(875).WebVTT, - VTTCue: __webpack_require__(876).VTTCue, - VTTRegion: __webpack_require__(878).VTTRegion + WebVTT: __webpack_require__(928).WebVTT, + VTTCue: __webpack_require__(929).VTTCue, + VTTRegion: __webpack_require__(931).VTTRegion }; }, function(module, exports) { !(function(global) { @@ -78821,7 +82257,7 @@ })(this); }, function(module, exports, __webpack_require__) { var root; - module.exports && (this.VTTCue = this.VTTCue || __webpack_require__(877).VTTCue), + module.exports && (this.VTTCue = this.VTTCue || __webpack_require__(930).VTTCue), (root = this).VTTCue.prototype.toJSON = function() { var cue = {}, self = this; return Object.keys(this).forEach((function(key) { @@ -78983,7 +82419,7 @@ })(this); }, function(module, exports, __webpack_require__) { var root; - module.exports && (this.VTTRegion = __webpack_require__(879).VTTRegion), (root = this).VTTRegion.create = function(options) { + module.exports && (this.VTTRegion = __webpack_require__(932).VTTRegion), (root = this).VTTRegion.create = function(options) { var region = new root.VTTRegion; for (var key in options) region.hasOwnProperty(key) && (region[key] = options[key]); return region; @@ -79079,7 +82515,7 @@ }; })(this); }, function(module, exports, __webpack_require__) { - const {ffmpeg: ffmpeg} = __webpack_require__(187), bitrate = __webpack_require__(881), os = __webpack_require__(23), userSettings = __webpack_require__(94), applyProfile = __webpack_require__(377).applyProfile; + const {ffmpeg: ffmpeg} = __webpack_require__(202), bitrate = __webpack_require__(934), os = __webpack_require__(23), userSettings = __webpack_require__(105), applyProfile = __webpack_require__(412).applyProfile; module.exports = function(options = {}) { !options.profile && userSettings.transcodeHardwareAccel && userSettings.transcodeProfile && (options.profile = userSettings.transcodeProfile); const cpuCores = (os.cpus() || []).length, audioChannels = options.audio ? options.audio.override && "number" == typeof options.audio.override.channels ? options.audio.override.channels : options.audio.channels || 2 : 2, videoBitRate = !!(options.video || {}).transcode && bitrate.video(options.video, options.video.codec, "libx264", userSettings.transcodeMaxBitRate), audioBitRate = !!(options.audio || {}).transcode && bitrate.audio(options.audio, "aac", audioChannels), encodeThreads = cpuCores ? cpuCores * userSettings.transcodeHorsepower : 0; @@ -79180,7 +82616,7 @@ } }; }, function(module, exports, __webpack_require__) { - const PassThrough = __webpack_require__(3).PassThrough, getInfo = __webpack_require__(884), utils = __webpack_require__(96), formatUtils = __webpack_require__(435), urlUtils = __webpack_require__(436), sig = __webpack_require__(438), miniget = __webpack_require__(146), m3u8stream = __webpack_require__(218), {parseTimestamp: parseTimestamp} = __webpack_require__(218), ytdl = (link, options) => { + const PassThrough = __webpack_require__(3).PassThrough, getInfo = __webpack_require__(937), utils = __webpack_require__(106), formatUtils = __webpack_require__(469), urlUtils = __webpack_require__(470), sig = __webpack_require__(472), miniget = __webpack_require__(156), m3u8stream = __webpack_require__(233), {parseTimestamp: parseTimestamp} = __webpack_require__(233), ytdl = (link, options) => { const stream = createStream(options); return ytdl.getInfo(link, options).then((info => { downloadFromInfoCallback(stream, info, options); @@ -79195,7 +82631,7 @@ info: getInfo.cache, watch: getInfo.watchPageCache, cookie: getInfo.cookieCache - }, ytdl.version = __webpack_require__(434).version; + }, ytdl.version = __webpack_require__(468).version; const createStream = options => { const stream = new PassThrough({ highWaterMark: options && options.highWaterMark || 524288 @@ -79276,7 +82712,7 @@ })), stream; }; }, function(module, exports, __webpack_require__) { - const querystring = __webpack_require__(24), sax = __webpack_require__(176), miniget = __webpack_require__(146), utils = __webpack_require__(96), {setTimeout: setTimeout} = __webpack_require__(117), formatUtils = __webpack_require__(435), urlUtils = __webpack_require__(436), extras = __webpack_require__(886), sig = __webpack_require__(438), Cache = __webpack_require__(439), BASE_URL = "https://www.youtube.com/watch?v="; + const querystring = __webpack_require__(24), sax = __webpack_require__(104), miniget = __webpack_require__(156), utils = __webpack_require__(106), {setTimeout: setTimeout} = __webpack_require__(103), formatUtils = __webpack_require__(469), urlUtils = __webpack_require__(470), extras = __webpack_require__(939), sig = __webpack_require__(472), Cache = __webpack_require__(473), BASE_URL = "https://www.youtube.com/watch?v="; exports.cache = new Cache, exports.cookieCache = new Cache(864e5), exports.watchPageCache = new Cache; let cver = "2.20210622.10.00"; class UnrecoverableError extends Error {} @@ -79935,7 +83371,7 @@ } }; }, function(module, exports, __webpack_require__) { - const utils = __webpack_require__(96), qs = __webpack_require__(24), {parseTimestamp: parseTimestamp} = __webpack_require__(218), BASE_URL = "https://www.youtube.com/watch?v=", TITLE_TO_CATEGORY = { + const utils = __webpack_require__(106), qs = __webpack_require__(24), {parseTimestamp: parseTimestamp} = __webpack_require__(233), BASE_URL = "https://www.youtube.com/watch?v=", TITLE_TO_CATEGORY = { song: { name: "Music", url: "https://music.youtube.com/" @@ -80197,7 +83633,7 @@ Object.defineProperty(exports, "__esModule", { value: !0 }); - const stream_1 = __webpack_require__(3), sax_1 = __importDefault(__webpack_require__(176)), parse_time_1 = __webpack_require__(437); + const stream_1 = __webpack_require__(3), sax_1 = __importDefault(__webpack_require__(104)), parse_time_1 = __webpack_require__(471); class DashMPDParser extends stream_1.Writable { constructor(targetID) { let lastTag; @@ -80340,8 +83776,8 @@ } }; }, function(module, exports, __webpack_require__) { - var fs = __webpack_require__(2), path = __webpack_require__(4), tmp = __webpack_require__(440), child = __webpack_require__(31), fetch = __webpack_require__(33), pump = __webpack_require__(162), URL = (__webpack_require__(892), - __webpack_require__(6).URL), castingUtils = __webpack_require__(219), Discovery = __webpack_require__(893), ExternalDiscovery = __webpack_require__(894), MDNSDiscovery = __webpack_require__(899), SSDPDiscovery = __webpack_require__(908), ChromecastClient = __webpack_require__(944), DLNAClient = __webpack_require__(954), Router = __webpack_require__(111), discovery = new Discovery([ SSDPDiscovery, MDNSDiscovery, ExternalDiscovery ]), noop = Function.prototype; + var fs = __webpack_require__(2), path = __webpack_require__(5), tmp = __webpack_require__(474), child = __webpack_require__(32), fetch = __webpack_require__(34), pump = __webpack_require__(179), URL = (__webpack_require__(945), + __webpack_require__(7).URL), castingUtils = __webpack_require__(234), Discovery = __webpack_require__(946), ExternalDiscovery = __webpack_require__(947), MDNSDiscovery = __webpack_require__(952), SSDPDiscovery = __webpack_require__(961), ChromecastClient = __webpack_require__(997), DLNAClient = __webpack_require__(1007), Router = __webpack_require__(122), discovery = new Discovery([ SSDPDiscovery, MDNSDiscovery, ExternalDiscovery ]), noop = Function.prototype; function Casting(executables) { var self = this; this.ffmpegErrors = "ignore", this.players = {}, this.executables = executables, @@ -80490,7 +83926,7 @@ }, module.exports = Discovery; }, function(module, exports, __webpack_require__) { "use strict"; - var EventEmitter = __webpack_require__(5), util = __webpack_require__(0), externalPlayers = __webpack_require__(895); + var EventEmitter = __webpack_require__(4), util = __webpack_require__(0), externalPlayers = __webpack_require__(948); function ExternalDiscovery() { EventEmitter.call(this); var self = this; @@ -80505,7 +83941,7 @@ externalPlayers(this.devices); }, module.exports = ExternalDiscovery; }, function(module, exports, __webpack_require__) { - var child = __webpack_require__(31), fs = __webpack_require__(2), stremioCast = __webpack_require__(896), enginefs = __webpack_require__(155), http = __webpack_require__(11), os = __webpack_require__(23), path = __webpack_require__(4); + var child = __webpack_require__(32), fs = __webpack_require__(2), stremioCast = __webpack_require__(949), enginefs = __webpack_require__(172), http = __webpack_require__(11), os = __webpack_require__(23), path = __webpack_require__(5); module.exports = function(devices) { var players = { vlc: { @@ -80669,11 +84105,11 @@ }; }, function(module, exports, __webpack_require__) { module.exports = { - Client: __webpack_require__(897), - Server: __webpack_require__(898) + Client: __webpack_require__(950), + Server: __webpack_require__(951) }; }, function(module, exports, __webpack_require__) { - var fetch = "undefined" != typeof window ? window.fetch : __webpack_require__(33), events = __webpack_require__(5), PROPS = [ "audio", "audioTrack", "volume", "time", "paused", "state", "length", "mediaSessionId", "subtitlesSrc", "subtitlesDelay", "subtitlesSize" ]; + var fetch = "undefined" != typeof window ? window.fetch : __webpack_require__(34), events = __webpack_require__(4), PROPS = [ "audio", "audioTrack", "volume", "time", "paused", "state", "length", "mediaSessionId", "subtitlesSrc", "subtitlesDelay", "subtitlesSize" ]; module.exports = function(url) { var self = new events.EventEmitter; self.initialized = !1; @@ -80736,7 +84172,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var EventEmitter = __webpack_require__(5), txt = __webpack_require__(900)(), MDNS = __webpack_require__(902); + var EventEmitter = __webpack_require__(4), txt = __webpack_require__(953)(), MDNS = __webpack_require__(955); function MDNSDiscovery() { EventEmitter.call(this), this.MDNSServices = { "_googlecast._tcp.local": "chromecast" @@ -80773,7 +84209,7 @@ }, module.exports = MDNSDiscovery; }, function(module, exports, __webpack_require__) { "use strict"; - var bindexOf = __webpack_require__(901), equalSign = new Buffer("="); + var bindexOf = __webpack_require__(954), equalSign = new Buffer("="); function decodeBlock(buf, offset) { var len = buf[offset], to = offset + 1 + len, b = buf.slice(offset + 1, to > buf.length ? buf.length : to); return decodeBlock.bytes = len + 1, b; @@ -80833,7 +84269,7 @@ return s > -1 && buff.length - s < search.length ? -1 : s; }; }, function(module, exports, __webpack_require__) { - var packet = __webpack_require__(903), dgram = __webpack_require__(69), thunky = __webpack_require__(907), events = __webpack_require__(5), os = __webpack_require__(23), noop = function() {}; + var packet = __webpack_require__(956), dgram = __webpack_require__(79), thunky = __webpack_require__(960), events = __webpack_require__(4), os = __webpack_require__(23), noop = function() {}; module.exports = function(opts) { opts || (opts = {}); var that = new events.EventEmitter, port = "number" == typeof opts.port ? opts.port : 5353, type = opts.type || "udp4", ip = opts.ip || opts.host || ("udp4" === type ? "224.0.0.251" : null), me = { @@ -80928,7 +84364,7 @@ }, that; }; }, function(module, exports, __webpack_require__) { - var types = __webpack_require__(904), rcodes = __webpack_require__(905), opcodes = __webpack_require__(906), ip = __webpack_require__(116), Buffer = __webpack_require__(25).Buffer, name = exports.txt = exports.name = {}; + var types = __webpack_require__(957), rcodes = __webpack_require__(958), opcodes = __webpack_require__(959), ip = __webpack_require__(127), Buffer = __webpack_require__(26).Buffer, name = exports.txt = exports.name = {}; name.encode = function(str, buf, offset) { buf || (buf = Buffer.allocUnsafe(name.encodingLength(str))), offset || (offset = 0); var oldOffset = offset, n = str.replace(/^\.|\.$/gm, ""); @@ -81779,7 +85215,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var url = __webpack_require__(6), EventEmitter = __webpack_require__(5), parseXML = __webpack_require__(220).promisify(__webpack_require__(173).parseString), fetch = __webpack_require__(33), SSDP = __webpack_require__(939).Client; + var url = __webpack_require__(7), EventEmitter = __webpack_require__(4), parseXML = __webpack_require__(235).promisify(__webpack_require__(188).parseString), fetch = __webpack_require__(34), SSDP = __webpack_require__(992).Client; function SSDPDiscovery() { EventEmitter.call(this), this.SSDPServices = { "urn:dial-multiscreen-org:device:dial:1": "chromecast", @@ -81836,17 +85272,17 @@ } : function() { return null; }, util.notEnumerableProp(Promise, "_getDomain", getDomain); - var es5 = __webpack_require__(66), Async = __webpack_require__(910), async = new Async; + var es5 = __webpack_require__(75), Async = __webpack_require__(963), async = new Async; es5.defineProperty(Promise, "_async", { value: async }); - var errors = __webpack_require__(55), TypeError = Promise.TypeError = errors.TypeError; + var errors = __webpack_require__(60), TypeError = Promise.TypeError = errors.TypeError; Promise.RangeError = errors.RangeError; var CancellationError = Promise.CancellationError = errors.CancellationError; Promise.TimeoutError = errors.TimeoutError, Promise.OperationalError = errors.OperationalError, Promise.RejectionError = errors.OperationalError, Promise.AggregateError = errors.AggregateError; - var INTERNAL = function() {}, APPLY = {}, NEXT_FILTER = {}, tryConvertToPromise = __webpack_require__(913)(Promise, INTERNAL), PromiseArray = __webpack_require__(914)(Promise, INTERNAL, tryConvertToPromise, apiRejection, Proxyable), Context = __webpack_require__(915)(Promise), createContext = Context.create, debug = __webpack_require__(916)(Promise, Context), PassThroughHandlerContext = (debug.CapturedTrace, - __webpack_require__(917)(Promise, tryConvertToPromise, NEXT_FILTER)), catchFilter = __webpack_require__(441)(NEXT_FILTER), nodebackForPromise = __webpack_require__(442), errorObj = util.errorObj, tryCatch = util.tryCatch; + var INTERNAL = function() {}, APPLY = {}, NEXT_FILTER = {}, tryConvertToPromise = __webpack_require__(966)(Promise, INTERNAL), PromiseArray = __webpack_require__(967)(Promise, INTERNAL, tryConvertToPromise, apiRejection, Proxyable), Context = __webpack_require__(968)(Promise), createContext = Context.create, debug = __webpack_require__(969)(Promise, Context), PassThroughHandlerContext = (debug.CapturedTrace, + __webpack_require__(970)(Promise, tryConvertToPromise, NEXT_FILTER)), catchFilter = __webpack_require__(475)(NEXT_FILTER), nodebackForPromise = __webpack_require__(476), errorObj = util.errorObj, tryCatch = util.tryCatch; function Promise(executor) { executor !== INTERNAL && (function(self, executor) { if (null == self || self.constructor !== Promise) throw new TypeError("the promise constructor cannot be invoked directly\n\n See http://goo.gl/MqrFmX\n"); @@ -82124,20 +85560,20 @@ reject: deferReject }; }, util.notEnumerableProp(Promise, "_makeSelfResolutionError", makeSelfResolutionError), - __webpack_require__(918)(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug), - __webpack_require__(919)(Promise, INTERNAL, tryConvertToPromise, debug), __webpack_require__(920)(Promise, PromiseArray, apiRejection, debug), - __webpack_require__(921)(Promise), __webpack_require__(922)(Promise), __webpack_require__(923)(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain), - Promise.Promise = Promise, Promise.version = "3.5.5", __webpack_require__(924)(Promise), - __webpack_require__(925)(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug), - __webpack_require__(926)(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug), - __webpack_require__(927)(Promise), __webpack_require__(928)(Promise, INTERNAL), - __webpack_require__(929)(Promise, PromiseArray, tryConvertToPromise, apiRejection), - __webpack_require__(930)(Promise, INTERNAL, tryConvertToPromise, apiRejection), - __webpack_require__(931)(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug), - __webpack_require__(932)(Promise, PromiseArray, debug), __webpack_require__(933)(Promise, PromiseArray, apiRejection), - __webpack_require__(934)(Promise, INTERNAL, debug), __webpack_require__(935)(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug), - __webpack_require__(936)(Promise), __webpack_require__(937)(Promise, INTERNAL), - __webpack_require__(938)(Promise, INTERNAL), util.toFastProperties(Promise), util.toFastProperties(Promise.prototype), + __webpack_require__(971)(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug), + __webpack_require__(972)(Promise, INTERNAL, tryConvertToPromise, debug), __webpack_require__(973)(Promise, PromiseArray, apiRejection, debug), + __webpack_require__(974)(Promise), __webpack_require__(975)(Promise), __webpack_require__(976)(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain), + Promise.Promise = Promise, Promise.version = "3.5.5", __webpack_require__(977)(Promise), + __webpack_require__(978)(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug), + __webpack_require__(979)(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug), + __webpack_require__(980)(Promise), __webpack_require__(981)(Promise, INTERNAL), + __webpack_require__(982)(Promise, PromiseArray, tryConvertToPromise, apiRejection), + __webpack_require__(983)(Promise, INTERNAL, tryConvertToPromise, apiRejection), + __webpack_require__(984)(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug), + __webpack_require__(985)(Promise, PromiseArray, debug), __webpack_require__(986)(Promise, PromiseArray, apiRejection), + __webpack_require__(987)(Promise, INTERNAL, debug), __webpack_require__(988)(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug), + __webpack_require__(989)(Promise), __webpack_require__(990)(Promise, INTERNAL), + __webpack_require__(991)(Promise, INTERNAL), util.toFastProperties(Promise), util.toFastProperties(Promise.prototype), fillTypes({ a: 1 }), fillTypes({ @@ -82156,7 +85592,7 @@ } catch (e) { firstLineError = e; } - var schedule = __webpack_require__(911), Queue = __webpack_require__(912), util = __webpack_require__(16); + var schedule = __webpack_require__(964), Queue = __webpack_require__(965), util = __webpack_require__(16); function Async() { this._customScheduler = !1, this._isTickUsed = !1, this._lateQueue = new Queue(16), this._normalQueue = new Queue(16), this._haveDrainedQueues = !1, this._trampolineEnabled = !0; @@ -82234,7 +85670,7 @@ }, module.exports = Async, module.exports.firstLineError = firstLineError; }, function(module, exports, __webpack_require__) { "use strict"; - var schedule, div, opts, toggleScheduled, div2, util = __webpack_require__(16), NativePromise = util.getNativePromise(); + var schedule, util = __webpack_require__(16), NativePromise = util.getNativePromise(); if (util.isNode && "undefined" == typeof MutationObserver) { var GlobalSetImmediate = global.setImmediate, ProcessNextTick = process.nextTick; schedule = util.isRecentNode ? function(fn) { @@ -82253,16 +85689,19 @@ setTimeout(fn, 0); } : function() { throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n"); - } : (div = document.createElement("div"), opts = { - attributes: !0 - }, toggleScheduled = !1, div2 = document.createElement("div"), new MutationObserver((function() { - div.classList.toggle("foo"), toggleScheduled = !1; - })).observe(div2, opts), function(fn) { - var o = new MutationObserver((function() { - o.disconnect(), fn(); - })); - o.observe(div, opts), toggleScheduled || (toggleScheduled = !0, div2.classList.toggle("foo")); - }); + } : (function() { + var div = document.createElement("div"), opts = { + attributes: !0 + }, toggleScheduled = !1, div2 = document.createElement("div"); + return new MutationObserver((function() { + div.classList.toggle("foo"), toggleScheduled = !1; + })).observe(div2, opts), function(fn) { + var o = new MutationObserver((function() { + o.disconnect(), fn(); + })); + o.observe(div, opts), toggleScheduled || (toggleScheduled = !0, div2.classList.toggle("foo")); + }; + })(); module.exports = schedule; }, function(module, exports, __webpack_require__) { "use strict"; @@ -82455,7 +85894,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, Context) { - var unhandledRejectionHandled, possiblyUnhandledRejection, printWarning, getDomain = Promise._getDomain, async = Promise._async, Warning = __webpack_require__(55).Warning, util = __webpack_require__(16), es5 = __webpack_require__(66), canAttachTrace = util.canAttachTrace, bluebirdFramePattern = /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/, nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/, parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/, stackFramePattern = null, formatStack = null, indentStackFrames = !1, debugging = !(0 == util.env("BLUEBIRD_DEBUG") || !util.env("BLUEBIRD_DEBUG") && "development" !== util.env("NODE_ENV")), warnings = !(0 == util.env("BLUEBIRD_WARNINGS") || !debugging && !util.env("BLUEBIRD_WARNINGS")), longStackTraces = !(0 == util.env("BLUEBIRD_LONG_STACK_TRACES") || !debugging && !util.env("BLUEBIRD_LONG_STACK_TRACES")), wForgottenReturn = 0 != util.env("BLUEBIRD_W_FORGOTTEN_RETURN") && (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); + var unhandledRejectionHandled, possiblyUnhandledRejection, printWarning, getDomain = Promise._getDomain, async = Promise._async, Warning = __webpack_require__(60).Warning, util = __webpack_require__(16), es5 = __webpack_require__(75), canAttachTrace = util.canAttachTrace, bluebirdFramePattern = /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/, nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/, parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/, stackFramePattern = null, formatStack = null, indentStackFrames = !1, debugging = !(0 == util.env("BLUEBIRD_DEBUG") || !util.env("BLUEBIRD_DEBUG") && "development" !== util.env("NODE_ENV")), warnings = !(0 == util.env("BLUEBIRD_WARNINGS") || !debugging && !util.env("BLUEBIRD_WARNINGS")), longStackTraces = !(0 == util.env("BLUEBIRD_LONG_STACK_TRACES") || !debugging && !util.env("BLUEBIRD_LONG_STACK_TRACES")), wForgottenReturn = 0 != util.env("BLUEBIRD_W_FORGOTTEN_RETURN") && (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); Promise.prototype.suppressUnhandledRejections = function() { var target = this._target(); target._bitField = -1048577 & target._bitField | 524288; @@ -82954,7 +86393,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) { - var util = __webpack_require__(16), CancellationError = Promise.CancellationError, errorObj = util.errorObj, catchFilter = __webpack_require__(441)(NEXT_FILTER); + var util = __webpack_require__(16), CancellationError = Promise.CancellationError, errorObj = util.errorObj, catchFilter = __webpack_require__(475)(NEXT_FILTER); function PassThroughHandlerContext(promise, type, handler) { this.promise = promise, this.type = type, this.handler = handler, this.called = !1, this.cancelPromise = null; @@ -83344,7 +86783,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug) { - var TypeError = __webpack_require__(55).TypeError, util = __webpack_require__(16), errorObj = util.errorObj, tryCatch = util.tryCatch, yieldHandlers = []; + var TypeError = __webpack_require__(60).TypeError, util = __webpack_require__(16), errorObj = util.errorObj, tryCatch = util.tryCatch, yieldHandlers = []; function PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) { if (debug.cancellation()) { var internal = new Promise(INTERNAL), _finallyPromise = this._finallyPromise = new Promise(INTERNAL); @@ -83528,7 +86967,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, INTERNAL) { - var THIS = {}, util = __webpack_require__(16), nodebackForPromise = __webpack_require__(442), withAppended = util.withAppended, maybeWrapAsError = util.maybeWrapAsError, canEvaluate = util.canEvaluate, TypeError = __webpack_require__(55).TypeError, defaultPromisified = { + var THIS = {}, util = __webpack_require__(16), nodebackForPromise = __webpack_require__(476), withAppended = util.withAppended, maybeWrapAsError = util.maybeWrapAsError, canEvaluate = util.canEvaluate, TypeError = __webpack_require__(60).TypeError, defaultPromisified = { __isPromisified__: !0 }, noCopyPropsPattern = new RegExp("^(?:" + [ "arity", "length", "name", "arguments", "caller", "callee", "prototype", "__isPromisified__" ].join("|") + ")$"), defaultFilter = function(name) { return util.isIdentifier(name) && "_" !== name.charAt(0) && "constructor" !== name; @@ -83633,7 +87072,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, PromiseArray, tryConvertToPromise, apiRejection) { - var Es6Map, util = __webpack_require__(16), isObject = util.isObject, es5 = __webpack_require__(66); + var Es6Map, util = __webpack_require__(16), isObject = util.isObject, es5 = __webpack_require__(75); "function" == typeof Map && (Es6Map = Map); var mapToEntries = (function() { var index = 0, size = 0; @@ -83805,7 +87244,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, PromiseArray, apiRejection) { - var util = __webpack_require__(16), RangeError = __webpack_require__(55).RangeError, AggregateError = __webpack_require__(55).AggregateError, isArray = util.isArray, CANCELLATION = {}; + var util = __webpack_require__(16), RangeError = __webpack_require__(60).RangeError, AggregateError = __webpack_require__(60).AggregateError, isArray = util.isArray, CANCELLATION = {}; function SomePromiseArray(values) { this.constructor$(values), this._howMany = 0, this._unwrap = !1, this._initialized = !1; } @@ -83911,7 +87350,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug) { - var util = __webpack_require__(16), TypeError = __webpack_require__(55).TypeError, inherits = __webpack_require__(16).inherits, errorObj = util.errorObj, tryCatch = util.tryCatch, NULL = {}; + var util = __webpack_require__(16), TypeError = __webpack_require__(60).TypeError, inherits = __webpack_require__(16).inherits, errorObj = util.errorObj, tryCatch = util.tryCatch, NULL = {}; function thrower(e) { setTimeout((function() { throw e; @@ -84068,14 +87507,14 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = { - Server: __webpack_require__(940), - Client: __webpack_require__(943), - Core: __webpack_require__(222) + Server: __webpack_require__(993), + Client: __webpack_require__(996), + Core: __webpack_require__(237) }; }, function(module, exports, __webpack_require__) { "use strict"; !(function() { - var inherits = __webpack_require__(0).inherits, EventEmitter = __webpack_require__(5).EventEmitter, constants = __webpack_require__(221), extend = __webpack_require__(147), SSDP = __webpack_require__(222), uuidV4 = __webpack_require__(148), self = function(opts) { + var inherits = __webpack_require__(0).inherits, EventEmitter = __webpack_require__(4).EventEmitter, constants = __webpack_require__(236), extend = __webpack_require__(157), SSDP = __webpack_require__(237), uuidV4 = __webpack_require__(158), self = function(opts) { opts = opts || {}, this.advertisementInterval = opts.advertisementInterval || 1e4, this.description = opts.description || "upnp/desc.php", this.packetTtl = opts.packetTtl || 1800, this.suppressRootDeviceAdvertisement = opts.suppressRootDeviceAdvertisement || !1, @@ -84159,7 +87598,7 @@ }, module.exports = self; })(); }, function(module, exports, __webpack_require__) { - var crypto = __webpack_require__(9); + var crypto = __webpack_require__(6); module.exports = function() { return crypto.randomBytes(16); }; @@ -84172,7 +87611,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; !(function() { - var inherits = __webpack_require__(0).inherits, EventEmitter = __webpack_require__(5).EventEmitter, constants = __webpack_require__(221), SSDP = __webpack_require__(222), self = function(opts) { + var inherits = __webpack_require__(0).inherits, EventEmitter = __webpack_require__(4).EventEmitter, constants = __webpack_require__(236), SSDP = __webpack_require__(237), self = function(opts) { opts = opts || {}, this.searchInterval = opts.searchInterval || 1e4, this.ssdp = new SSDP(opts), this.timer = !1; }; @@ -84222,8 +87661,8 @@ })(); }, function(module, exports, __webpack_require__) { "use strict"; - __webpack_require__(444); - var castingUtils = __webpack_require__(219), querystring = __webpack_require__(24), Promise = __webpack_require__(220), Client = __webpack_require__(945).Client, util = __webpack_require__(0), Player = __webpack_require__(447); + __webpack_require__(478); + var castingUtils = __webpack_require__(234), querystring = __webpack_require__(24), Promise = __webpack_require__(235), Client = __webpack_require__(998).Client, util = __webpack_require__(0), Player = __webpack_require__(481); function ChromecastClient(device, executables) { Player.call(this, device), this.audio = { tracks: [], @@ -84444,10 +87883,10 @@ })); }, module.exports = ChromecastClient; }, function(module, exports, __webpack_require__) { - var Client = __webpack_require__(946), Server = __webpack_require__(953), DeviceAuthMessage = __webpack_require__(223).DeviceAuthMessage; + var Client = __webpack_require__(999), Server = __webpack_require__(1006), DeviceAuthMessage = __webpack_require__(238).DeviceAuthMessage; module.exports.Client = Client, module.exports.Server = Server, module.exports.DeviceAuthMessage = DeviceAuthMessage; }, function(module, exports, __webpack_require__) { - var EventEmitter = __webpack_require__(5).EventEmitter, util = __webpack_require__(0), tls = __webpack_require__(92), debug = __webpack_require__(8)("castv2"), protocol = __webpack_require__(223), PacketStreamWrapper = __webpack_require__(446), Channel = __webpack_require__(952), CastMessage = protocol.CastMessage; + var EventEmitter = __webpack_require__(4).EventEmitter, util = __webpack_require__(0), tls = __webpack_require__(70), debug = __webpack_require__(9)("castv2"), protocol = __webpack_require__(238), PacketStreamWrapper = __webpack_require__(480), Channel = __webpack_require__(1005), CastMessage = protocol.CastMessage; function Client() { EventEmitter.call(this), this.socket = null, this.ps = null; } @@ -84490,7 +87929,7 @@ return new Channel(this, sourceId, destinationId, namespace, encoding); }, module.exports = Client; }, function(module, exports, __webpack_require__) { - var ProtoBuf = __webpack_require__(948); + var ProtoBuf = __webpack_require__(1001); module.exports = ProtoBuf; }, function(module, exports, __webpack_require__) { (function(module) { @@ -84590,7 +88029,7 @@ IS_NODE: !1 }; try { - Util.IS_NODE = "function" == typeof __webpack_require__(2).readFileSync && "function" == typeof __webpack_require__(4).resolve; + Util.IS_NODE = "function" == typeof __webpack_require__(2).readFileSync && "function" == typeof __webpack_require__(5).resolve; } catch (e) {} return Util.XHR = function() { for (var XMLHttpFactories = [ function() { @@ -85810,7 +89249,7 @@ return this.resolved = !1, this.result = null, this; }, BuilderPrototype.import = function(json, filename) { if ("string" == typeof filename) { - if (ProtoBuf.Util.IS_NODE && (filename = __webpack_require__(4).resolve(filename)), + if (ProtoBuf.Util.IS_NODE && (filename = __webpack_require__(5).resolve(filename)), !0 === this.files[filename]) return this.reset(), this; this.files[filename] = !0; } @@ -85927,10 +89366,10 @@ return null === contents ? null : ProtoBuf.loadJson(JSON.parse(contents), builder, filename); }, ProtoBuf; } - module && "object" == typeof exports && exports ? module.exports = init(__webpack_require__(445)) : (__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(445) ], + module && "object" == typeof exports && exports ? module.exports = init(__webpack_require__(479)) : (__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(479) ], void 0 === (__WEBPACK_AMD_DEFINE_RESULT__ = "function" == typeof (__WEBPACK_AMD_DEFINE_FACTORY__ = init) ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__) || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); })(); - }).call(this, __webpack_require__(62)(module)); + }).call(this, __webpack_require__(69)(module)); }, function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__; void 0 === (__WEBPACK_AMD_DEFINE_RESULT__ = "function" == typeof (__WEBPACK_AMD_DEFINE_FACTORY__ = function() { @@ -86266,7 +89705,7 @@ services: [] }; }, function(module, exports, __webpack_require__) { - var EventEmitter = __webpack_require__(5).EventEmitter, util = __webpack_require__(0); + var EventEmitter = __webpack_require__(4).EventEmitter, util = __webpack_require__(0); function Channel(bus, sourceId, destinationId, namespace, encoding) { EventEmitter.call(this), this.bus = bus, this.sourceId = sourceId, this.destinationId = destinationId, this.namespace = namespace, this.encoding = encoding; @@ -86282,7 +89721,7 @@ self.bus.removeListener("message", onmessage); })); } - __webpack_require__(8)("castv2"), util.inherits(Channel, EventEmitter), Channel.prototype.send = function(data) { + __webpack_require__(9)("castv2"), util.inherits(Channel, EventEmitter), Channel.prototype.send = function(data) { this.bus.send(this.sourceId, this.destinationId, this.namespace, (function(data, encoding) { if (!encoding) return data; if ("JSON" === encoding) return JSON.stringify(data); @@ -86292,7 +89731,7 @@ this.emit("close"); }, module.exports = Channel; }, function(module, exports, __webpack_require__) { - var EventEmitter = __webpack_require__(5).EventEmitter, util = __webpack_require__(0), tls = __webpack_require__(92), debug = __webpack_require__(8)("castv2"), protocol = __webpack_require__(223), PacketStreamWrapper = __webpack_require__(446), CastMessage = protocol.CastMessage; + var EventEmitter = __webpack_require__(4).EventEmitter, util = __webpack_require__(0), tls = __webpack_require__(70), debug = __webpack_require__(9)("castv2"), protocol = __webpack_require__(238), PacketStreamWrapper = __webpack_require__(480), CastMessage = protocol.CastMessage; function Server(options) { EventEmitter.call(this), this.server = new tls.Server(options), this.clients = {}; } @@ -86349,10 +89788,10 @@ }, module.exports = Server; }, function(module, exports, __webpack_require__) { "use strict"; - __webpack_require__(6); - var querystring = __webpack_require__(24), Promise = __webpack_require__(220), MediaRendererClient = (__webpack_require__(33), - Promise.promisifyAll(__webpack_require__(440)), __webpack_require__(31), __webpack_require__(162), - __webpack_require__(955)), util = __webpack_require__(0), castingUtils = __webpack_require__(219), Player = __webpack_require__(447); + __webpack_require__(7); + var querystring = __webpack_require__(24), Promise = __webpack_require__(235), MediaRendererClient = (__webpack_require__(34), + Promise.promisifyAll(__webpack_require__(474)), __webpack_require__(32), __webpack_require__(179), + __webpack_require__(1008)), util = __webpack_require__(0), castingUtils = __webpack_require__(234), Player = __webpack_require__(481); function DLNAClient(device, executables) { Player.call(this, device), this.device = device, this.seekTime = 0, this.stateFlags = 1, this.executables = executables, this.videoDuration = {}, this._handleError = this._handleError.bind(this), @@ -86476,8 +89915,8 @@ return this.stateFlags = 1, this.stop(); }, module.exports = DLNAClient; }, function(module, exports, __webpack_require__) { - var DeviceClient = __webpack_require__(956), util = __webpack_require__(0), et = (__webpack_require__(8)("upnp-mediarenderer-client"), - __webpack_require__(224)), MEDIA_EVENTS = [ "status", "loading", "playing", "paused", "stopped", "speedChanged" ]; + var DeviceClient = __webpack_require__(1009), util = __webpack_require__(0), et = (__webpack_require__(9)("upnp-mediarenderer-client"), + __webpack_require__(239)), MEDIA_EVENTS = [ "status", "loading", "playing", "paused", "stopped", "speedChanged" ]; function MediaRendererClient(url) { DeviceClient.call(this, url), this.instanceId = 0; var receivedState, self = this, refs = 0; @@ -86640,7 +90079,7 @@ this.callAction("RenderingControl", "SetVolume", params, callback || noop); }, module.exports = MediaRendererClient; }, function(module, exports, __webpack_require__) { - var http = __webpack_require__(11), util = __webpack_require__(0), EventEmitter = __webpack_require__(5).EventEmitter, et = __webpack_require__(224), parseUrl = __webpack_require__(6).parse, os = __webpack_require__(23), concat = __webpack_require__(964), address = __webpack_require__(968), debug = __webpack_require__(8)("upnp-device-client"), pkg = __webpack_require__(969), OS_VERSION = [ os.platform(), os.release() ].join("/"), PACKAGE_VERSION = [ pkg.name, pkg.version ].join("/"); + var http = __webpack_require__(11), util = __webpack_require__(0), EventEmitter = __webpack_require__(4).EventEmitter, et = __webpack_require__(239), parseUrl = __webpack_require__(7).parse, os = __webpack_require__(23), concat = __webpack_require__(1017), address = __webpack_require__(1022), debug = __webpack_require__(9)("upnp-device-client"), pkg = __webpack_require__(1023), OS_VERSION = [ os.platform(), os.release() ].join("/"), PACKAGE_VERSION = [ pkg.name, pkg.version ].join("/"); function DeviceClient(url) { EventEmitter.call(this), this.url = url, this.deviceDescription = null, this.serviceDescriptions = {}, this.server = null, this.listening = !1, this.subscriptions = {}; @@ -86902,7 +90341,7 @@ this.server.close(), this.server = null, this.listening = !1); }, module.exports = DeviceClient; }, function(module, exports, __webpack_require__) { - var sprintf = __webpack_require__(225).sprintf, utils = __webpack_require__(448), SyntaxError = __webpack_require__(958).SyntaxError, _cache = {}, RE = new RegExp("('[^']*'|\"[^\"]*\"|::|//?|\\.\\.|\\(\\)|[/.*:\\[\\]\\(\\)@=])|((?:\\{[^}]+\\})?[^/\\[\\]\\(\\)@=\\s]+)|\\s+", "g"), xpath_tokenizer = utils.findall.bind(null, RE), ops = { + var sprintf = __webpack_require__(240).sprintf, utils = __webpack_require__(482), SyntaxError = __webpack_require__(1011).SyntaxError, _cache = {}, RE = new RegExp("('[^']*'|\"[^\"]*\"|::|//?|\\.\\.|\\(\\)|[/.*:\\[\\]\\(\\)@=])|((?:\\{[^}]+\\})?[^/\\[\\]\\(\\)@=\\s]+)|\\s+", "g"), xpath_tokenizer = utils.findall.bind(null, RE), ops = { "": function(next, token) { var tag = token[0]; return function(context, result) { @@ -87013,7 +90452,7 @@ return resultElements && resultElements.length > 0 ? resultElements[0].text : defvalue; }; }, function(module, exports, __webpack_require__) { - var util = __webpack_require__(0), sprintf = __webpack_require__(225).sprintf; + var util = __webpack_require__(0), sprintf = __webpack_require__(240).sprintf; function SyntaxError(token, msg) { msg = msg || sprintf("Syntax Error at token %s", token.toString()), this.token = token, this.message = msg, Error.call(this, msg); @@ -87021,16 +90460,16 @@ util.inherits(SyntaxError, Error), exports.SyntaxError = SyntaxError; }, function(module, exports, __webpack_require__) { __webpack_require__(0); - var parsers = __webpack_require__(960); + var parsers = __webpack_require__(1013); exports.get_parser = function(name) { if ("sax" === name) return parsers.sax; throw new Error("Invalid parser: " + name); }; }, function(module, exports, __webpack_require__) { - exports.sax = __webpack_require__(961); + exports.sax = __webpack_require__(1014); }, function(module, exports, __webpack_require__) { __webpack_require__(0); - var sax = __webpack_require__(962), TreeBuilder = __webpack_require__(449).TreeBuilder; + var sax = __webpack_require__(1015), TreeBuilder = __webpack_require__(483).TreeBuilder; function XMLParser(target) { this.parser = sax.parser(!0), this.target = target || new TreeBuilder, this.parser.onopentag = this._handleOpenTag.bind(this), this.parser.ontext = this._handleText.bind(this), this.parser.oncdata = this._handleCdata.bind(this), @@ -87388,7 +90827,7 @@ }), SAXStream.prototype.write = function(data) { if ("function" == typeof Buffer && "function" == typeof Buffer.isBuffer && Buffer.isBuffer(data)) { if (!this._decoder) { - var SD = __webpack_require__(156).StringDecoder; + var SD = __webpack_require__(173).StringDecoder; this._decoder = new SD("utf8"); } data = this._decoder.write(data); @@ -87873,8 +91312,8 @@ }, function(module, exports) { exports.DEFAULT_PARSER = "sax"; }, function(module, exports, __webpack_require__) { - var Writable = __webpack_require__(77).Writable, inherits = __webpack_require__(7), bufferFrom = __webpack_require__(387); - if ("undefined" == typeof Uint8Array) var U8 = __webpack_require__(967).Uint8Array; else U8 = Uint8Array; + var Writable = __webpack_require__(88).Writable, inherits = __webpack_require__(8), bufferFrom = __webpack_require__(422); + if ("undefined" == typeof Uint8Array) var U8 = __webpack_require__(1021).Uint8Array; else U8 = Uint8Array; function ConcatStream(opts, cb) { if (!(this instanceof ConcatStream)) return new ConcatStream(opts, cb); "function" == typeof opts && (cb = opts, opts = {}), opts || (opts = {}); @@ -87919,9 +91358,26 @@ return u8; })(this.body) : this.body) : []; }, Array.isArray; +}, function(module, exports) { + "function" == typeof Object.create ? module.exports = function(ctor, superCtor) { + superCtor && (ctor.super_ = superCtor, ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: !1, + writable: !0, + configurable: !0 + } + })); + } : module.exports = function(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() {}; + TempCtor.prototype = superCtor.prototype, ctor.prototype = new TempCtor, ctor.prototype.constructor = ctor; + } + }; }, function(module, exports, __webpack_require__) { "use strict"; - var Buffer = __webpack_require__(25).Buffer, util = __webpack_require__(0); + var Buffer = __webpack_require__(26).Buffer, util = __webpack_require__(0); module.exports = (function() { function BufferList() { !(function(instance, Constructor) { @@ -87969,36 +91425,39 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = PassThrough; - var Transform = __webpack_require__(455), util = __webpack_require__(32); + var Transform = __webpack_require__(489), util = __webpack_require__(33); function PassThrough(options) { if (!(this instanceof PassThrough)) return new PassThrough(options); Transform.call(this, options); } - util.inherits = __webpack_require__(7), util.inherits(PassThrough, Transform), PassThrough.prototype._transform = function(chunk, encoding, cb) { + util.inherits = __webpack_require__(107), util.inherits(PassThrough, Transform), + PassThrough.prototype._transform = function(chunk, encoding, cb) { cb(null, chunk); }; }, function(module, exports) { - var opts, ophop, defineProp, ECMAScript = (opts = Object.prototype.toString, ophop = Object.prototype.hasOwnProperty, - { - Class: function(v) { - return opts.call(v).replace(/^\[object *|\]$/g, ""); - }, - HasProperty: function(o, p) { - return p in o; - }, - HasOwnProperty: function(o, p) { - return ophop.call(o, p); - }, - IsCallable: function(o) { - return "function" == typeof o; - }, - ToInt32: function(v) { - return v >> 0; - }, - ToUint32: function(v) { - return v >>> 0; - } - }), LN2 = Math.LN2, abs = Math.abs, floor = Math.floor, log = Math.log, min = Math.min, pow = Math.pow, round = Math.round; + var defineProp, ECMAScript = (function() { + var opts = Object.prototype.toString, ophop = Object.prototype.hasOwnProperty; + return { + Class: function(v) { + return opts.call(v).replace(/^\[object *|\]$/g, ""); + }, + HasProperty: function(o, p) { + return p in o; + }, + HasOwnProperty: function(o, p) { + return ophop.call(o, p); + }, + IsCallable: function(o) { + return "function" == typeof o; + }, + ToInt32: function(v) { + return v >> 0; + }, + ToUint32: function(v) { + return v >>> 0; + } + }; + })(), LN2 = Math.LN2, abs = Math.abs, floor = Math.floor, log = Math.log, min = Math.min, pow = Math.pow, round = Math.round; function configureProperties(obj) { if (getOwnPropNames && defineProp) { var i, props = getOwnPropNames(obj); @@ -88298,9 +91757,9 @@ keywords: [ "upnp", "dlna" ] }; }, function(module, exports, __webpack_require__) { - const addonSDK = __webpack_require__(971), fs = __webpack_require__(2); + const addonSDK = __webpack_require__(1025), fs = __webpack_require__(2); let engineUrl = "http://127.0.0.1:11470"; - const manifest = __webpack_require__(465), manifestNoCatalogs = __webpack_require__(1001), catalogHandler = __webpack_require__(1002), metaHandler = __webpack_require__(1003), streamHandler = __webpack_require__(1025), Storage = __webpack_require__(1026), findFiles = __webpack_require__(1027), indexer = __webpack_require__(467), mapEntryToMeta = __webpack_require__(468), storage = new Storage({ + const manifest = __webpack_require__(499), manifestNoCatalogs = __webpack_require__(1054), catalogHandler = __webpack_require__(1055), metaHandler = __webpack_require__(1056), streamHandler = __webpack_require__(1078), Storage = __webpack_require__(1079), findFiles = __webpack_require__(1080), indexer = __webpack_require__(501), mapEntryToMeta = __webpack_require__(502), storage = new Storage({ validateRecord: function(index, entry) { fs.accessSync(index, fs.constants.R_OK); }, @@ -88342,7 +91801,7 @@ } }; }, function(module, exports, __webpack_require__) { - const express = __webpack_require__(972), cors = __webpack_require__(994), http = __webpack_require__(11), linter = __webpack_require__(996), qs = __webpack_require__(24), publishToDir = __webpack_require__(999), publishToCentral = __webpack_require__(1e3); + const express = __webpack_require__(241), cors = __webpack_require__(1047), http = __webpack_require__(11), linter = __webpack_require__(1049), qs = __webpack_require__(24), publishToDir = __webpack_require__(1052), publishToCentral = __webpack_require__(1053); module.exports = function(manifest) { const addonHTTP = express.Router(); addonHTTP.use(cors()); @@ -88399,10 +91858,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - module.exports = __webpack_require__(973); -}, function(module, exports, __webpack_require__) { - "use strict"; - var bodyParser = __webpack_require__(106), EventEmitter = __webpack_require__(5).EventEmitter, mixin = __webpack_require__(974), proto = __webpack_require__(975), Route = __webpack_require__(457), Router = __webpack_require__(456), req = __webpack_require__(983), res = __webpack_require__(990); + var bodyParser = __webpack_require__(50), EventEmitter = __webpack_require__(4).EventEmitter, mixin = __webpack_require__(1027), proto = __webpack_require__(1028), Route = __webpack_require__(491), Router = __webpack_require__(490), req = __webpack_require__(1036), res = __webpack_require__(1043); (exports = module.exports = function() { var app = function(req, res, next) { app.handle(req, res, next); @@ -88423,8 +91879,8 @@ } }), app.init(), app; }).application = proto, exports.request = req, exports.response = res, exports.Route = Route, - exports.Router = Router, exports.json = bodyParser.json, exports.query = __webpack_require__(459), - exports.raw = bodyParser.raw, exports.static = __webpack_require__(993), exports.text = bodyParser.text, + exports.Router = Router, exports.json = bodyParser.json, exports.query = __webpack_require__(493), + exports.raw = bodyParser.raw, exports.static = __webpack_require__(1046), exports.text = bodyParser.text, exports.urlencoded = bodyParser.urlencoded, [ "bodyParser", "compress", "cookieSession", "session", "logger", "cookieParser", "favicon", "responseTime", "errorHandler", "timeout", "methodOverride", "vhost", "csrf", "directory", "limit", "multipart", "staticCache" ].forEach((function(name) { Object.defineProperty(exports, name, { get: function() { @@ -88448,7 +91904,7 @@ var hasOwnProperty = Object.prototype.hasOwnProperty; }, function(module, exports, __webpack_require__) { "use strict"; - var finalhandler = __webpack_require__(976), Router = __webpack_require__(456), methods = __webpack_require__(61), middleware = __webpack_require__(977), query = __webpack_require__(459), debug = __webpack_require__(8)("express:application"), View = __webpack_require__(978), http = __webpack_require__(11), compileETag = __webpack_require__(67).compileETag, compileQueryParser = __webpack_require__(67).compileQueryParser, compileTrust = __webpack_require__(67).compileTrust, deprecate = __webpack_require__(47)("express"), flatten = __webpack_require__(149), merge = __webpack_require__(60), resolve = __webpack_require__(4).resolve, setPrototypeOf = __webpack_require__(108), slice = Array.prototype.slice, app = module.exports = {}; + var finalhandler = __webpack_require__(1029), Router = __webpack_require__(490), methods = __webpack_require__(68), middleware = __webpack_require__(1030), query = __webpack_require__(493), debug = __webpack_require__(9)("express:application"), View = __webpack_require__(1031), http = __webpack_require__(11), compileETag = __webpack_require__(76).compileETag, compileQueryParser = __webpack_require__(76).compileQueryParser, compileTrust = __webpack_require__(76).compileTrust, deprecate = __webpack_require__(51)("express"), flatten = __webpack_require__(159), merge = __webpack_require__(67), resolve = __webpack_require__(5).resolve, setPrototypeOf = __webpack_require__(119), slice = Array.prototype.slice, app = module.exports = {}; function logerror(err) { "test" !== this.get("env") && console.error(err.stack || err.toString()); } @@ -88584,7 +92040,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var debug = __webpack_require__(8)("finalhandler"), encodeUrl = __webpack_require__(83), escapeHtml = __webpack_require__(84), onFinished = __webpack_require__(85), parseUrl = __webpack_require__(46), statuses = __webpack_require__(109), unpipe = __webpack_require__(158), DOUBLE_SPACE_REGEXP = /\x20{2}/g, NEWLINE_REGEXP = /\n/g, defer = "function" == typeof setImmediate ? setImmediate : function(fn) { + var debug = __webpack_require__(9)("finalhandler"), encodeUrl = __webpack_require__(94), escapeHtml = __webpack_require__(95), onFinished = __webpack_require__(96), parseUrl = __webpack_require__(49), statuses = __webpack_require__(120), unpipe = __webpack_require__(175), DOUBLE_SPACE_REGEXP = /\x20{2}/g, NEWLINE_REGEXP = /\n/g, defer = "function" == typeof setImmediate ? setImmediate : function(fn) { process.nextTick(fn.bind.apply(fn, arguments)); }, isFinished = onFinished.isFinished; function headersSent(res) { @@ -88642,7 +92098,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var setPrototypeOf = __webpack_require__(108); + var setPrototypeOf = __webpack_require__(119); exports.init = function(app) { return function(req, res, next) { app.enabled("x-powered-by") && res.setHeader("X-Powered-By", "Express"), req.res = res, @@ -88652,7 +92108,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var debug = __webpack_require__(8)("express:view"), path = __webpack_require__(4), fs = __webpack_require__(2), dirname = path.dirname, basename = path.basename, extname = path.extname, join = path.join, resolve = path.resolve; + var debug = __webpack_require__(9)("express:view"), path = __webpack_require__(5), fs = __webpack_require__(2), dirname = path.dirname, basename = path.basename, extname = path.extname, join = path.join, resolve = path.resolve; function View(name, options) { var opts = options || {}; if (this.defaultEngine = opts.defaultEngine, this.ext = extname(name), this.name = name, @@ -88662,7 +92118,7 @@ fileName += this.ext), !opts.engines[this.ext]) { var mod = this.ext.substr(1); debug('require "%s"', mod); - var fn = __webpack_require__(979)(mod).__express; + var fn = __webpack_require__(1032)(mod).__express; if ("function" != typeof fn) throw new Error('Module "' + mod + '" does not provide a view engine.'); opts.engines[this.ext] = fn; } @@ -88698,7 +92154,7 @@ webpackEmptyContext.keys = function() { return []; }, webpackEmptyContext.resolve = webpackEmptyContext, module.exports = webpackEmptyContext, - webpackEmptyContext.id = 979; + webpackEmptyContext.id = 1032; }, function(module, exports, __webpack_require__) { "use strict"; var ReadStream = __webpack_require__(2).ReadStream, Stream = __webpack_require__(3); @@ -88807,7 +92263,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var accepts = __webpack_require__(984), deprecate = __webpack_require__(47)("express"), isIP = __webpack_require__(42).isIP, typeis = __webpack_require__(88), http = __webpack_require__(11), fresh = __webpack_require__(462), parseRange = __webpack_require__(159), parse = __webpack_require__(46), proxyaddr = __webpack_require__(463), req = Object.create(http.IncomingMessage.prototype); + var accepts = __webpack_require__(1037), deprecate = __webpack_require__(51)("express"), isIP = __webpack_require__(39).isIP, typeis = __webpack_require__(99), http = __webpack_require__(11), fresh = __webpack_require__(496), parseRange = __webpack_require__(176), parse = __webpack_require__(49), proxyaddr = __webpack_require__(497), req = Object.create(http.IncomingMessage.prototype); function defineGetter(obj, name, getter) { Object.defineProperty(obj, name, { configurable: !0, @@ -88898,7 +92354,7 @@ })); }, function(module, exports, __webpack_require__) { "use strict"; - var Negotiator = __webpack_require__(985), mime = __webpack_require__(89); + var Negotiator = __webpack_require__(1038), mime = __webpack_require__(78); function Accepts(req) { if (!(this instanceof Accepts)) return new Accepts(req); this.headers = req.headers, this.negotiator = new Negotiator(req); @@ -88953,19 +92409,19 @@ if (void 0 !== module) return module; switch (moduleName) { case "charset": - module = __webpack_require__(986); + module = __webpack_require__(1039); break; case "encoding": - module = __webpack_require__(987); + module = __webpack_require__(1040); break; case "language": - module = __webpack_require__(988); + module = __webpack_require__(1041); break; case "mediaType": - module = __webpack_require__(989); + module = __webpack_require__(1042); break; default: @@ -89300,7 +92756,7 @@ } }, function(module, exports, __webpack_require__) { "use strict"; - var Buffer = __webpack_require__(25).Buffer, contentDisposition = __webpack_require__(460), deprecate = __webpack_require__(47)("express"), encodeUrl = __webpack_require__(83), escapeHtml = __webpack_require__(84), http = __webpack_require__(11), isAbsolute = __webpack_require__(67).isAbsolute, onFinished = __webpack_require__(85), path = __webpack_require__(4), statuses = __webpack_require__(109), merge = __webpack_require__(60), sign = __webpack_require__(991).sign, normalizeType = __webpack_require__(67).normalizeType, normalizeTypes = __webpack_require__(67).normalizeTypes, setCharset = __webpack_require__(67).setCharset, cookie = __webpack_require__(992), send = __webpack_require__(226), extname = path.extname, mime = send.mime, resolve = path.resolve, vary = __webpack_require__(464), res = Object.create(http.ServerResponse.prototype); + var Buffer = __webpack_require__(26).Buffer, contentDisposition = __webpack_require__(494), deprecate = __webpack_require__(51)("express"), encodeUrl = __webpack_require__(94), escapeHtml = __webpack_require__(95), http = __webpack_require__(11), isAbsolute = __webpack_require__(76).isAbsolute, onFinished = __webpack_require__(96), path = __webpack_require__(5), statuses = __webpack_require__(120), merge = __webpack_require__(67), sign = __webpack_require__(1044).sign, normalizeType = __webpack_require__(76).normalizeType, normalizeTypes = __webpack_require__(76).normalizeTypes, setCharset = __webpack_require__(76).setCharset, cookie = __webpack_require__(1045), send = __webpack_require__(242), extname = path.extname, mime = send.mime, resolve = path.resolve, vary = __webpack_require__(498), res = Object.create(http.ServerResponse.prototype); module.exports = res; var charsetRegExp = /;\s*charset\s*=/; function sendfile(res, file, options, callback) { @@ -89522,7 +92978,7 @@ }, app.render(view, opts, done); }; }, function(module, exports, __webpack_require__) { - var crypto = __webpack_require__(9); + var crypto = __webpack_require__(6); function sha1(str) { return crypto.createHash("sha1").update(str).digest("hex"); } @@ -89604,7 +93060,7 @@ } }, function(module, exports, __webpack_require__) { "use strict"; - var encodeUrl = __webpack_require__(83), escapeHtml = __webpack_require__(84), parseUrl = __webpack_require__(46), resolve = __webpack_require__(4).resolve, send = __webpack_require__(226), url = __webpack_require__(6); + var encodeUrl = __webpack_require__(94), escapeHtml = __webpack_require__(95), parseUrl = __webpack_require__(49), resolve = __webpack_require__(5).resolve, send = __webpack_require__(242), url = __webpack_require__(7); module.exports = function(root, options) { if (!root) throw new TypeError("root path required"); if ("string" != typeof root) throw new TypeError("root path must be a string"); @@ -89644,7 +93100,7 @@ }, function(module, exports, __webpack_require__) { !(function() { "use strict"; - var assign = __webpack_require__(995), vary = __webpack_require__(464), defaults = { + var assign = __webpack_require__(1048), vary = __webpack_require__(498), defaults = { origin: "*", methods: "GET,HEAD,PUT,PATCH,POST,DELETE", preflightContinue: !1, @@ -89780,9 +93236,9 @@ return to; }; }, function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(997); + module.exports = __webpack_require__(1050); }, function(module, exports, __webpack_require__) { - const semver = __webpack_require__(998); + const semver = __webpack_require__(1051); function lintManifest(manifest) { var errors = [], warnings = []; if (!manifest || "object" != typeof manifest) return { @@ -90377,7 +93833,7 @@ return null == match ? null : parse(match[1] + "." + (match[2] || "0") + "." + (match[3] || "0")); }; }, function(module, exports, __webpack_require__) { - const mkdirp = __webpack_require__(132), path = __webpack_require__(4), fs = __webpack_require__(2); + const mkdirp = __webpack_require__(142), path = __webpack_require__(5), fs = __webpack_require__(2); function commitRes(endPath, res) { mkdirp(path.dirname(endPath), (function(err) { if (err) return console.error(err); @@ -90413,7 +93869,7 @@ })); }; }, function(module, exports, __webpack_require__) { - const fetch = __webpack_require__(33); + const fetch = __webpack_require__(34); module.exports = function(addonURL, apiURL) { return fetch((apiURL = apiURL || "https://api.strem.io") + "/api/addonPublish", { method: "POST", @@ -90432,12 +93888,12 @@ })); }; }, function(module, exports, __webpack_require__) { - const manifest = __webpack_require__(465), manifestNoCatalogs = Object.assign({}, manifest); + const manifest = __webpack_require__(499), manifestNoCatalogs = Object.assign({}, manifest); manifestNoCatalogs.name += " (without catalog support)", manifestNoCatalogs.catalogs = [], manifestNoCatalogs.resources = manifest.resources.filter((resource => "catalog" != resource.name && "catalog" != resource)), module.exports = manifestNoCatalogs; }, function(module, exports, __webpack_require__) { - const consts = __webpack_require__(79); + const consts = __webpack_require__(90); module.exports = function(storage, metaStorage, args, cb) { const metas = []; storage.indexes.itemId.forEach((function(items, itemId) { @@ -90455,7 +93911,7 @@ }); }; }, function(module, exports, __webpack_require__) { - const fetch = __webpack_require__(33), indexer = __webpack_require__(467), mapEntryToMeta = __webpack_require__(468), consts = __webpack_require__(79); + const fetch = __webpack_require__(34), indexer = __webpack_require__(501), mapEntryToMeta = __webpack_require__(502), consts = __webpack_require__(90); function mapFile(entry, uxTime, file, index) { const stream = entry.ih ? { infoHash: entry.ih, @@ -90512,7 +93968,7 @@ })); }; }, function(module, exports, __webpack_require__) { - const bencode = __webpack_require__(1005), blobToBuffer = __webpack_require__(1008), fs = __webpack_require__(2), get = __webpack_require__(1009), magnet = __webpack_require__(1010), path = __webpack_require__(4), sha1 = __webpack_require__(165), uniq = __webpack_require__(114); + const bencode = __webpack_require__(1058), blobToBuffer = __webpack_require__(1061), fs = __webpack_require__(2), get = __webpack_require__(1062), magnet = __webpack_require__(1063), path = __webpack_require__(5), sha1 = __webpack_require__(182), uniq = __webpack_require__(125); function parseTorrent(torrentId) { if ("string" == typeof torrentId && /^(stream-)?magnet:/.test(torrentId)) return magnet(torrentId); if ("string" == typeof torrentId && (/^[a-f0-9]{40}$/i.test(torrentId) || /^[a-z2-7]{32}$/i.test(torrentId))) return magnet(`magnet:?xt=urn:btih:${torrentId}`); @@ -90615,12 +94071,12 @@ }, Buffer.alloc(0); }, function(module, exports, __webpack_require__) { var bencode = module.exports; - bencode.encode = __webpack_require__(1006), bencode.decode = __webpack_require__(1007), + bencode.encode = __webpack_require__(1059), bencode.decode = __webpack_require__(1060), bencode.byteLength = bencode.encodingLength = function(value) { return bencode.encode(value).length; }; }, function(module, exports, __webpack_require__) { - var Buffer = __webpack_require__(90).Buffer; + var Buffer = __webpack_require__(100).Buffer; function encode(data, buffer, offset) { var buffers = [], result = null; return encode._encode(buffers, data), result = Buffer.concat(buffers), encode.bytes = result.length, @@ -90680,7 +94136,7 @@ buffers.push(buffE); }, module.exports = encode; }, function(module, exports, __webpack_require__) { - var Buffer = __webpack_require__(90).Buffer; + var Buffer = __webpack_require__(100).Buffer; function getIntFromBuffer(buffer, start, end) { for (var sum = 0, sign = 1, i = start; i < end; i++) { var num = buffer[i]; @@ -90747,7 +94203,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = simpleGet; - const concat = __webpack_require__(260), decompressResponse = __webpack_require__(261), http = __webpack_require__(11), https = __webpack_require__(21), once = __webpack_require__(34), querystring = __webpack_require__(24), url = __webpack_require__(6), isStream = o => null !== o && "object" == typeof o && "function" == typeof o.pipe; + const concat = __webpack_require__(293), decompressResponse = __webpack_require__(294), http = __webpack_require__(11), https = __webpack_require__(21), once = __webpack_require__(35), querystring = __webpack_require__(24), url = __webpack_require__(7), isStream = o => null !== o && "object" == typeof o && "function" == typeof o.pipe; function simpleGet(opts, cb) { if (opts = Object.assign({ maxRedirects: 10 @@ -90818,7 +94274,7 @@ })); })), result; }; - const base32 = __webpack_require__(1011), uniq = __webpack_require__(114); + const base32 = __webpack_require__(1064), uniq = __webpack_require__(125); function magnetURIDecode(uri) { const result = {}, data = uri.split("magnet:?")[1]; let m; @@ -90846,7 +94302,7 @@ uniq(result.announce), uniq(result.urlList), result; } }, function(module, exports, __webpack_require__) { - var base32 = __webpack_require__(1012); + var base32 = __webpack_require__(1065); exports.encode = base32.encode, exports.decode = base32.decode; }, function(module, exports, __webpack_require__) { "use strict"; @@ -90875,10 +94331,10 @@ return decoded.slice(0, plainPos); }; }, function(module, exports, __webpack_require__) { - const namedQueue = __webpack_require__(171), helpers = __webpack_require__(227); + const namedQueue = __webpack_require__(71), helpers = __webpack_require__(243); var providers = { - metadata: __webpack_require__(1015), - imdbFind: __webpack_require__(1016) + metadata: __webpack_require__(1068), + imdbFind: __webpack_require__(1069) }, defaultProviders = [ "metadata", "imdbFind" ], cache = {}, cacheLastSet = {}, queue = new namedQueue((function(task, cb) { var prov = [].concat(task.providers); !(function nextProv() { @@ -91225,7 +94681,7 @@ } ], diacriticsMap = {}, i = 0; i < replacementList.length; i += 1) for (var chars = replacementList[i].chars, j = 0; j < chars.length; j += 1) diacriticsMap[chars[j]] = replacementList[i].base; exports.replacementList = replacementList, exports.diacriticsMap = diacriticsMap; }, function(module, exports, __webpack_require__) { - var fetch = __webpack_require__(33), helpers = __webpack_require__(227), cinemetaUrls = { + var fetch = __webpack_require__(34), helpers = __webpack_require__(243), cinemetaUrls = { movie: "https://cinemeta.strem.io/stremioget/stremio/v1/q.json?b=eyJwYXJhbXMiOltudWxsLHt9XSwibWV0aG9kIjoibmFtZXMubW92aWUiLCJpZCI6MSwianNvbnJwYyI6IjIuMCJ9", series: "https://cinemeta.strem.io/stremioget/stremio/v1/q.json?b=eyJwYXJhbXMiOltudWxsLHt9XSwibWV0aG9kIjoibmFtZXMuc2VyaWVzIiwiaWQiOjEsImpzb25ycGMiOiIyLjAifQ==" }; @@ -91269,7 +94725,7 @@ })) : process.nextTick(match); }; }, function(module, exports, __webpack_require__) { - var needle = __webpack_require__(1017), helpers = __webpack_require__(227); + var needle = __webpack_require__(1070), helpers = __webpack_require__(243); module.exports = function imdbFind(task, cb, loose) { var shouldRetry = !loose && task.year, retry = function() { return shouldRetry ? imdbFind(task, cb, !0) : void cb(null, null); @@ -91318,11 +94774,11 @@ }; }; }, function(module, exports, __webpack_require__) { - var fs = __webpack_require__(2), http = __webpack_require__(11), https = __webpack_require__(21), url = __webpack_require__(6), stream = __webpack_require__(3), debug = __webpack_require__(8)("needle"), stringify = __webpack_require__(1018).build, multipart = __webpack_require__(1019), auth = __webpack_require__(1020), cookies = __webpack_require__(1021), parsers = __webpack_require__(1022), decoder = __webpack_require__(1023), version = __webpack_require__(1024).version, user_agent = "Needle/" + version; + var fs = __webpack_require__(2), http = __webpack_require__(11), https = __webpack_require__(21), url = __webpack_require__(7), stream = __webpack_require__(3), debug = __webpack_require__(9)("needle"), stringify = __webpack_require__(1071).build, multipart = __webpack_require__(1072), auth = __webpack_require__(1073), cookies = __webpack_require__(1074), parsers = __webpack_require__(1075), decoder = __webpack_require__(1076), version = __webpack_require__(1077).version, user_agent = "Needle/" + version; user_agent += " (Node.js " + process.version + "; " + process.platform + " " + process.arch + ")"; var close_by_default = !http.Agent || http.Agent.defaultMaxSockets != 1 / 0, extend = Object.assign ? Object.assign : __webpack_require__(0)._extend, redirect_codes = [ 301, 302, 303, 307 ], decompressors = {}; try { - var zlib = __webpack_require__(45); + var zlib = __webpack_require__(43); decompressors["x-deflate"] = zlib.Inflate, decompressors.deflate = zlib.Inflate, decompressors["x-gzip"] = zlib.Gunzip, decompressors.gzip = zlib.Gunzip; var zlib_options = { @@ -91596,7 +95052,7 @@ throw new TypeError("Cannot build a querystring out of: " + obj); }; }, function(module, exports, __webpack_require__) { - var readFile = __webpack_require__(2).readFile, basename = __webpack_require__(4).basename; + var readFile = __webpack_require__(2).readFile, basename = __webpack_require__(5).basename; function generate_part(name, part, boundary, callback) { var return_part = "--" + boundary + "\r\n"; function append(data, filename) { @@ -91644,7 +95100,7 @@ } }; }, function(module, exports, __webpack_require__) { - var createHash = __webpack_require__(9).createHash; + var createHash = __webpack_require__(6).createHash; function md5(string) { return createHash("md5").update(string).digest("hex"); } @@ -91753,7 +95209,7 @@ })); module.exports["application/json"] = json, module.exports["text/javascript"] = json; try { - var xml = parserFactory("xml", new (__webpack_require__(173).Parser)({ + var xml = parserFactory("xml", new (__webpack_require__(188).Parser)({ explicitRoot: !0, explicitArray: !1 }).parseString); @@ -91781,7 +95237,7 @@ this.push(res), done(); }, module.exports = function(charset) { try { - iconv || (iconv = __webpack_require__(68)); + iconv || (iconv = __webpack_require__(66)); } catch (e) {} return iconv ? new StreamDecoder(charset) : new stream.PassThrough; }; @@ -91826,7 +95282,7 @@ } }; }, function(module, exports, __webpack_require__) { - const path = __webpack_require__(4), consts = __webpack_require__(79), SUPPORTED_TYPES = [ "movie", "series" ]; + const path = __webpack_require__(5), consts = __webpack_require__(90), SUPPORTED_TYPES = [ "movie", "series" ]; function getFileVideoId(f) { return (f.season && f.episode ? [ f.imdb_id, f.season, f.episode ] : [ f.imdb_id ]).join(":"); } @@ -91864,8 +95320,8 @@ }); }; }, function(module, exports, __webpack_require__) { - const pkg = __webpack_require__(466); - var fs = __webpack_require__(2), byline = __webpack_require__(93), promisify = __webpack_require__(0).promisify; + const pkg = __webpack_require__(500); + var fs = __webpack_require__(2), byline = __webpack_require__(102), promisify = __webpack_require__(0).promisify; module.exports = function(opts) { var writeStream, self = this; function commitEntry(key, entry) { @@ -91939,12 +95395,12 @@ }; }; }, function(module, exports, __webpack_require__) { - const os = __webpack_require__(23), findFilesWin = __webpack_require__(1028), findFilesDarwin = __webpack_require__(1029); - let findFiles = __webpack_require__(1030); + const os = __webpack_require__(23), findFilesWin = __webpack_require__(1081), findFilesDarwin = __webpack_require__(1082); + let findFiles = __webpack_require__(1083); "win32" === os.platform() && (findFiles = findFilesWin), "darwin" === os.platform() && (findFiles = findFilesDarwin), module.exports = findFiles; }, function(module, exports, __webpack_require__) { - const child = __webpack_require__(31), byline = __webpack_require__(93), events = __webpack_require__(5); + const child = __webpack_require__(32), byline = __webpack_require__(102), events = __webpack_require__(4); module.exports = function() { const ev = new events.EventEmitter; var propsProc = child.spawn("powershell", [ "-command", "\n[console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding\n$sql = \"SELECT System.ItemUrl FROM SystemIndex WHERE scope='file:' AND (System.Kind IS Null OR System.Kind = 'Video') AND System.FileAttributes <> ALL BITWISE 0x2 AND NOT System.ItemUrl LIKE '%/Program Files%' AND NOT System.ItemUrl LIKE '%/SteamLibrary/%' AND NOT System.ItemUrl LIKE '%/node_modules/%' AND (System.fileExtension = '.torrent' OR System.FileExtension = '.mp4' OR System.FileExtension = '.mkv' OR System.FileExtension = '.avi')\"\n$connector = New-Object -ComObject ADODB.Connection\n$rs = New-Object -ComObject ADODB.Recordset\n$connector.Open(\"Provider=Search.CollatorDSO;Extended Properties='Application=Windows';DateTimeFormat=Ticks;\")\n$rs.Open($sql, $connector)\nWhile (-Not $rs.EOF) {\n $pos = $rs.Fields.Item(\"System.ItemUrl\").Value.IndexOf(\":\")\n $rs.Fields.Item(\"System.ItemUrl\").Value.Substring($pos + 1)\n $rs.MoveNext()\n}\n" ]); @@ -91959,7 +95415,7 @@ })), ev; }; }, function(module, exports, __webpack_require__) { - const child = __webpack_require__(31), byline = __webpack_require__(93), events = __webpack_require__(5); + const child = __webpack_require__(32), byline = __webpack_require__(102), events = __webpack_require__(4); module.exports = function() { const ev = new events.EventEmitter; var p = child.exec("mdfind '(kMDItemFSName=*.avi || kMDItemFSName=*.mp4 || kMDItemFSName=*.mkv || kMDItemFSName=*.torrent)'"); @@ -91970,7 +95426,7 @@ })), ev; }; }, function(module, exports, __webpack_require__) { - const child = __webpack_require__(31), events = __webpack_require__(5), byline = __webpack_require__(93), which = __webpack_require__(1031), cmdLine = [ "-L", process.env.HOME, "-maxdepth", "7", "-not", "-path", "*/\\.*", "-not", "-path", "*/node_modules/*", "-not", "-path", "*/bin/*", "-not", "-path", "*/src/*", "-not", "-path", "*/build/*", "-not", "-path", "*/dist/*", "-type", "f", "(", "-iname", "*.torrent", "-o", "-iname", "*.mp4", "-o", "-iname", "*.mkv", "-o", "-iname", "*.avi", ")" ]; + const child = __webpack_require__(32), events = __webpack_require__(4), byline = __webpack_require__(102), which = __webpack_require__(1084), cmdLine = [ "-L", process.env.HOME, "-maxdepth", "7", "-not", "-path", "*/\\.*", "-not", "-path", "*/node_modules/*", "-not", "-path", "*/bin/*", "-not", "-path", "*/src/*", "-not", "-path", "*/build/*", "-not", "-path", "*/dist/*", "-type", "f", "(", "-iname", "*.torrent", "-o", "-iname", "*.mp4", "-o", "-iname", "*.mkv", "-o", "-iname", "*.avi", ")" ]; function startIndexing() { var ev = this; const findPath = which.sync("find"); @@ -92012,7 +95468,7 @@ if (opt.nothrow) return null; throw getNotFoundError(cmd); }; - var isWindows = "win32" === process.platform || "cygwin" === process.env.OSTYPE || "msys" === process.env.OSTYPE, path = __webpack_require__(4), COLON = isWindows ? ";" : ":", isexe = __webpack_require__(1032); + var isWindows = "win32" === process.platform || "cygwin" === process.env.OSTYPE || "msys" === process.env.OSTYPE, path = __webpack_require__(5), COLON = isWindows ? ";" : ":", isexe = __webpack_require__(1085); function getNotFoundError(cmd) { var er = new Error("not found: " + cmd); return er.code = "ENOENT", er; @@ -92068,7 +95524,7 @@ cb(er, is); })); } - __webpack_require__(2), core = "win32" === process.platform || global.TESTING_WINDOWS ? __webpack_require__(1033) : __webpack_require__(1034), + __webpack_require__(2), core = "win32" === process.platform || global.TESTING_WINDOWS ? __webpack_require__(1086) : __webpack_require__(1087), module.exports = isexe, isexe.sync = function(path, options) { try { return core.sync(path, options || {}); @@ -92115,9 +95571,1872 @@ return mod & parseInt("001", 8) || mod & g && gid === myGid || mod & u && uid === myUid || mod & (u | g) && 0 === myUid; })(stat, options); } +}, function(module, exports, __webpack_require__) { + const nzbGrabber = __webpack_require__(1089), nzbParser = __webpack_require__(504), needle = __webpack_require__(73), mime = __webpack_require__(78), ee = __webpack_require__(4), stream = __webpack_require__(3), bodyParser = __webpack_require__(50), router = __webpack_require__(241)(), lzDecompress = __webpack_require__(77).decompressFromEncodedURIComponent, initEmitter = new ee, RXX_EXTENSION = "\\.R(\\d\\d?\\d?\\d?\\d?)|\\.RAR", PARTXX_GZIP_EXTENSION = "\\.TAR\\.GZ\\.(\\d\\d?\\d?\\d?\\d?)|\\.TGZ\\.(\\d\\d?\\d?\\d?\\d?)|\\.GZ|\\.TGZ", nntpUrlRegex = /(nntps?)\:\/\/(.*)\:(.*)\@(.*)\:([0-9]+)\/([0-9]+)/i; + let ip = "127.0.0.1", port = 11470; + const cryptojs = __webpack_require__(6), nodeMajorVersion = parseInt(process.version.split(".")[0].substring(1)); + function subarray(buff, start, end) { + return buff[nodeMajorVersion < 16 ? "slice" : "subarray"](start, end); + } + function fileRegexEndOnly(rgx) { + return new RegExp(`${rgx}$|${rgx}"`, "i"); + } + function toFixedIfNecessary(value, dp) { + return +parseFloat(value).toFixed(dp); + } + function parseNntpUrl(url) { + const matches = url.match(nntpUrlRegex); + return !!(matches || []).length && { + protocol: matches[1], + user: decodeURIComponent(matches[2]), + pass: decodeURIComponent(matches[3]), + host: matches[4], + port: parseInt(matches[5]), + conn: parseInt(matches[6]) + }; + } + module.exports = { + router: function() { + const streams = {}, initKeys = {}; + function getUniqueId() { + const idStr = "" + Math.random().toString(16).slice(2); + return streams[idStr] ? getUniqueId() : idStr; + } + function getOneSegmentBackbone(key, segment, backboneIdx, isDone, cb) { + if (backboneIdx = backboneIdx || 0, !streams[key].backboneClient[backboneIdx] && streams[key].clientUrls[backboneIdx + 1] && (streams[key].backboneClient[backboneIdx] = new nzbGrabber(parseNntpUrl(streams[key].clientUrls[backboneIdx + 1]))), + !streams[key].backboneClient[backboneIdx]) return console.log("no backbone available"), + void cb("could not retrieve", null, null, isDone, segment.group, segment.article, segment.bytes, !0); + streams[key].backboneClient[backboneIdx].grabSegments([ segment ], ((err, filename, chunk, done, group, article, bytes) => { + err && "useless" !== err ? streams[key].clientUrls[backboneIdx + 2] ? getOneSegmentBackbone(key, segment, backboneIdx + 1, isDone, cb) : cb(err, filename, chunk, isDone, group, article, bytes, !0) : cb(err, filename, chunk, isDone, group, article, bytes); + }), !1); + } + function getOne(key, segment, filename) { + return new Promise(((resolve, reject) => { + streams[key].client || (streams[key].client = new nzbGrabber(parseNntpUrl(streams[key].clientUrls[0]))); + const controller = streams[key].client.grabSegments([ segment ], (function(err, filenameFromChunk, chunk, done, group, article, bytes, chunkIdx, noBackbones) { + if (filename = filename || filenameFromChunk, err && "useless" !== err) return !noBackbones && streams[key].clientUrls.length > 1 && "nntp_nope" !== article ? void getOneSegmentBackbone(key, segment, 0, done, ((err, filenameFromChunk, chunk, done, group, article, bytes, notOnBackbones) => { + notOnBackbones && (console.log("not on any backbones"), chunk = done ? new Buffer(lastChunkSize[filename]).fill(0) : chunkSize[filename] ? new Buffer(chunkSize[filename]).fill(0) : null, + resolve({ + err: null, + filename: filename, + chunk: chunk, + done: done, + group: group, + article: article, + bytes: bytes, + noBackbones: noBackbones, + chunkIdx: chunkIdx, + isMissingPiece: !0 + })), controller.pushFromBackbone(err, filenameFromChunk, chunk, done, group, article, bytes, chunkIdx); + })) : (err = null, chunk = new Buffer(done ? lastChunkSize[filename] : chunkSize[filename]).fill(0), + resolve({ + err: err, + filename: filename, + chunk: chunk, + done: done, + group: group, + article: article, + bytes: bytes, + noBackbones: noBackbones, + chunkIdx: chunkIdx, + isMissingPiece: !0 + }), void controller.skipSegment(filenameFromChunk || filename, group, article, bytes, chunkIdx)); + resolve({ + err: err, + filename: filenameFromChunk, + chunk: chunk, + done: done, + group: group, + article: article, + bytes: bytes, + noBackbones: noBackbones, + isMissingPiece: !1 + }); + }), !1); + })); + } + const fileSizes = {}, chunkSize = {}, lastChunkSize = {}; + let firstSegment = null, lastSegment = null, timerRemoveFirst = null, timerRemoveLast = null; + async function sendFile(key, filename, req, res) { + if ("OPTIONS" === req.method && req.headers["access-control-request-headers"]) return res.writeHead(200, { + "Access-Control-Allow-Origin": req.headers.origin, + "Access-Control-Allow-Methods": "POST, GET, OPTIONS", + "Access-Control-Allow-Headers": req.headers["access-control-request-headers"], + "Access-Control-Max-Age": "1728000" + }), res.end(); + streams[key].fileSegments; + const fileNames = streams[key].fileNames, size = fileSizes[filename], range = req.headers.range || null, mimeType = mime.lookup(filename); + let start = null, end = null; + if (range) { + let parts = range.replace(/bytes=/, "").split("-"); + if (start = parts[0], end = parts[1], start = parseInt(start, 10), end = end ? parseInt(end, 10) : size - 1, + !isNaN(start) && isNaN(end) && (end = size - 1), isNaN(start) && !isNaN(end) && (start = size - end, + end = size - 1), start >= size || end >= size || start < 0 || end < 0) return res.writeHead(416, { + "Content-Range": `bytes */${size}` + }), void res.end(); + if (res.writeHead(200, { + "Access-Control-Allow-Origin": req.headers.origin || "*", + "Content-Range": `bytes ${start}-${end}/${size}`, + "Accept-Ranges": "bytes", + "Content-Length": end - start + 1 + "", + "Content-Type": mimeType, + "transferMode.dlna.org": "Streaming", + "contentFeatures.dlna.org": "DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000" + }), "HEAD" === req.method) return res.end(); + if (filename === fileNames[0] && start < chunkSize[filename]) { + if (firstSegment && end <= chunkSize[filename]) return res.write(subarray(firstSegment.chunk, start, end + 1)), + res.end(), clearTimeout(timerRemoveFirst), void (timerRemoveFirst = setTimeout((() => { + firstSegment = null; + }), 5e3)); + } else if (filename === fileNames[fileNames.length - 1] && lastSegment && start >= size - lastChunkSize[filename]) return res.write(subarray(lastSegment.chunk, lastChunkSize[filename] - (size - start), lastChunkSize[filename] - (size - end) + 1)), + res.end(), clearTimeout(timerRemoveLast), void (timerRemoveLast = setTimeout((() => { + lastSegment = null; + }), 5e3)); + } else if (res.writeHead(200, { + "Access-Control-Allow-Origin": req.headers.origin || "*", + "Content-Length": size + "", + "Content-Type": mimeType, + "Accept-Ranges": "bytes", + "transferMode.dlna.org": "Streaming", + "contentFeatures.dlna.org": "DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000" + }), "HEAD" === req.method) return res.end(); + let chunkBuffer = Buffer.alloc(0), bufferSize = 0, isDone = !1; + const evEmitter = new ee, controller = (function(key, filename, range, cb) { + let segments = [], offset = 0, firstSegmentOffset = 0, setFirstSegment = !1; + function getBytes(segment) { + return (function(segment) { + const fileSegments = streams[key].fileSegments[filename], lastSegment = fileSegments[fileSegments.length - 1]; + return `${lastSegment.group}.${lastSegment.article}` == `${segment.group}.${segment.article}`; + })(segment) ? lastChunkSize[filename] : chunkSize[filename]; + } + if (range && (range.start || range.end)) for (const segment of streams[key].fileSegments[filename]) { + const segBytes = getBytes(segment); + if (range.end && offset >= range.end) break; + offset + segBytes < range.start || (setFirstSegment || (firstSegmentOffset = offset, + setFirstSegment = !0), segments.push(segment)), offset += segBytes; + } else segments = streams[key].fileSegments[filename]; + offset = firstSegmentOffset, streams[key].client || (streams[key].client = new nzbGrabber(parseNntpUrl(streams[key].clientUrls[0]))); + const controller = streams[key].client.grabSegments(segments, (function(err, filenameFromChunk, chunk, done, group, article, bytes, chunkIdx, noBackbones) { + if (err) { + if ("useless" !== err) { + if (!noBackbones && streams[key].clientUrls.length > 1) return void getOneSegmentBackbone(key, { + group: group, + article: article, + bytes: bytes + }, 0, done, ((err, filenameFromChunk, chunk, done, group, article, bytes, notOnBackbones) => { + notOnBackbones && (console.log("not on any backbones"), done ? chunk = new Buffer(lastChunkSize[filename]).fill(0) : chunkSize[filename] && (chunk = new Buffer(chunkSize[filename]).fill(0)), + cb({ + err: null, + filename: filename, + chunk: chunk, + done: done, + group: group, + article: article, + bytes: bytes, + noBackbones: noBackbones, + isMissingPiece: !0 + })), controller.pushFromBackbone(err, filenameFromChunk, chunk, done, group, article, bytes, chunkIdx); + })); + err = null, chunk = done ? new Buffer(lastChunkSize[filename]).fill(0) : new Buffer(chunkSize[filename]).fill(0), + cb({ + err: err, + filename: filename, + chunk: chunk, + done: done, + group: group, + article: article, + bytes: bytes, + noBackbones: noBackbones, + isMissingPiece: !0 + }), controller.skipSegment(filenameFromChunk || filename, group, article, bytes, chunkIdx); + } + } else { + if (!chunk) return void cb(null); + if (bytes = chunk.length, range && (range.start || range.end)) { + const startPart = range.start - offset >= 0 ? range.start - offset : 0; + let endPart; + range.end && (endPart = range.end - offset < bytes ? range.end - offset : bytes), + 0 === startPart && (!endPart || endPart >= bytes) || (chunk = !endPart || endPart >= bytes ? subarray(chunk, startPart) : subarray(chunk, startPart, endPart)); + } + offset += bytes, cb({ + err: err, + filename: filenameFromChunk, + chunk: chunk, + done: done, + group: group, + article: article, + bytes: bytes, + noBackbones: noBackbones, + isMissingPiece: !1 + }); + } + }), !0); + return controller; + })(key, filename, start || end ? { + start: start, + end: end + 1 + } : null, (resp => { + resp.chunk && (bufferSize += resp.chunk.length, chunkBuffer = Buffer.concat([ chunkBuffer, resp.chunk ], bufferSize), + evEmitter.emit("chunk")), resp.done ? isDone = !0 : 31457280 > bufferSize && controller.pause(); + })); + req.on("close", (function() { + controller.stop(), chunkBuffer = null; + })), res.on("finish", (function() { + controller.stop(), chunkBuffer = null; + })); + let stopped = !1; + const readable = new stream.Readable; + readable._read = async () => { + if (stopped || isDone && !bufferSize) readable.push(null); else { + let data = null; + try { + data = await (async function() { + return new Promise(((resolve, reject) => { + function answerBuffer(chkBuffer) { + resolve(chkBuffer), chunkBuffer = Buffer.alloc(0), bufferSize = 0, controller.resume(); + } + bufferSize ? answerBuffer(chunkBuffer) : (controller.resume(), evEmitter.addListener("chunk", (function chunked() { + answerBuffer(chunkBuffer), evEmitter.removeListener("chunk", chunked); + }))); + })); + })(); + } catch (e) { + return console.error(e), void (readable.destroy ? readable.destroy() : (readable.unpipe(), + readable._destroy())); + } + readable.push(data); + } + }, readable._destroy = () => { + stopped = !0; + }, readable.pipe(res).on("error", (err => { + console.log("pipeline error", err), readable.destroy ? readable.destroy() : (readable.unpipe(), + readable._destroy()); + })); + } + router.use(bodyParser.json()); + const creatingKey = {}; + async function createKeyHandler(req, res) { + let clientUrls = !1, nzbUrl = !1, lzKey = !1; + if ("POST" === req.method) { + if (!(req.body && req.body.servers && Array.isArray(req.body.servers) && req.body.servers.length && req.body.nzbUrl)) return void res.status(500).send("Cannot parse JSON data, err 1"); + clientUrls = req.body.servers, nzbUrl = req.body.nzbUrl; + } else { + if (!req.query.lz) return void res.status(500).send("Cannot parse JSON data, err 2"); + let lzData = !1; + try { + lzData = JSON.parse(lzDecompress(req.query.lz)); + } catch (e) {} + if (!lzData) return void res.status(500).send("Cannot parse JSON data, err 3"); + if (txt = req.query.lz, lzKey = cryptojs.createHash("sha256").update(txt).digest("hex"), + (streams[lzKey] || {}).missingInitPieces) return res.statusCode = 500, void res.end(); + if (creatingKey[lzKey]) { + try { + await waitForKeyData(req, lzKey); + } catch (e) { + return console.error(e), res.statusCode = 500, void res.end(); + } + return (streams[lzKey] || {}).missingInitPieces ? (res.statusCode = 500, void res.end()) : void res.redirect(initKeys[`init-${lzKey}`].serverPath); + } + creatingKey[lzKey] = !0, clientUrls = lzData.servers, nzbUrl = lzData.nzbUrl; + } + var txt; + if (!clientUrls || !nzbUrl) return void res.status(500).send("Cannot parse JSON data, err 3"); + const key = lzKey || req.params.createKey || getUniqueId(); + if (streams[key] && streams[key].streamUrl) return delete creatingKey[key], void res.redirect(streams[key].streamUrl); + function disableStreamMissingPieces(filename, pieceLoc) { + delete creatingKey[key], streams[key].missingInitPieces = !0, initEmitter.emit(`init-${key}`), + res.status(500).send(`Missing ${pieceLoc ? pieceLoc + " " : ""}piece${filename ? ' of "' + filename + '"' : ""}, breaking connection`); + } + async function getFileSize(filename) { + const fileSegments = streams[key].fileSegments, fileNames = streams[key].fileNames || []; + if (!chunkSize[filename]) { + let firstSeg = null; + try { + firstSeg = await getOne(key, fileSegments[filename][0], filename); + } catch (e) { + return console.error(e), console.error(Error(`Error fetching first segment of file "${filename}", breaking connection`)), + null; + } + if (firstSeg.isMissingPiece) return console.error(Error(`Missing piece for first segment of file "${filename}", breaking connection`)), + null; + fileNames[0] === filename && (firstSegment = firstSeg, timerRemoveFirst = setTimeout((() => { + firstSegment = null; + }), 7e3)), chunkSize[filename] = firstSeg.chunk.length; + } + if (!lastChunkSize[filename]) { + let lastSeg = null; + try { + lastSeg = await getOne(key, fileSegments[filename][fileSegments[filename].length - 1], filename); + } catch (e) { + return console.error(e), console.error(Error(`Error fetching last segment of file "${filename}", breaking connection`)), + null; + } + if (lastSeg.isMissingPiece) return console.error(Error(`Missing piece for last segment of file "${filename}", breaking connection`)), + null; + fileNames[fileNames.length - 1] === filename && (lastSegment = lastSeg, timerRemoveLast = setTimeout((() => { + lastSegment = null; + }), 7e3)), lastChunkSize[filename] = lastSeg.chunk.length; + } + return fileSizes[filename] || (fileSizes[filename] = (fileSegments[filename].length - 1) * chunkSize[filename] + lastChunkSize[filename]), + fileSizes[filename]; + } + streams[key] = { + clientUrls: clientUrls, + nzbUrl: nzbUrl.split("&").join("&"), + client: !1, + backboneClient: [] + }, needle.get(streams[key].nzbUrl, ((err, resp, body) => { + nzbParser(body.toString(), (async (err, files) => { + if (delete streams[key].nzbUrl, err) return void res.status(500).send((err || {}).message || "Unknown error"); + function fileDetect(type, REGEX_ARR, fileSegments) { + const file = fileSegments.find((el => !!(el || {})[type])); + return !!file && !!REGEX_ARR.map((el => fileRegexEndOnly(el))).find((REGEX => file[type].match(REGEX))); + } + let interestingFiles = files.filter(fileDetect.bind(null, "subject", [ "\\.PART(\\d\\d?\\d?\\d?\\d?)\\.RAR", RXX_EXTENSION, "\\.7Z\\.(\\d\\d?\\d?\\d?\\d?)|\\.7Z", "\\.Z(\\d\\d?\\d?\\d?\\d?)|\\.ZIP", "\\.TAR.(\\d\\d?\\d?\\d?\\d?)|\\.TAR", PARTXX_GZIP_EXTENSION ])), isVideoFile = !1; + if (interestingFiles.length || (interestingFiles = files.filter(fileDetect.bind(null, "subject", [ "\\.(MKV|MP4|AVI|TS)" ])), + interestingFiles.length && (isVideoFile = !0)), !interestingFiles.length) { + const allFileSegments = {}; + files.forEach((el => { + allFileSegments[el[0].subject] = el; + })); + for (let i = 0; i < files.length; i++) { + let nntpFileData = null; + try { + nntpFileData = await getOne(key, files[i][0]); + } catch (e) { + return console.error(e), void disableStreamMissingPieces(files[i][0], "first"); + } + if (nntpFileData.isMissingPiece) return console.error(Error(`Missing piece for first segment of file "${files[i][0].subject}", breaking connection`)), + void disableStreamMissingPieces(files[i][0].subject, "first"); + nntpFileData.filename && files[i].forEach((el => { + el.filename = nntpFileData.filename; + })); + } + if (interestingFiles = files.filter(fileDetect.bind(null, "filename", [ "\\.PART(\\d\\d?\\d?\\d?\\d?)\\.RAR", RXX_EXTENSION, "\\.7Z\\.(\\d\\d?\\d?\\d?\\d?)|\\.7Z", "\\.Z(\\d\\d?\\d?\\d?\\d?)|\\.ZIP", "\\.TAR.(\\d\\d?\\d?\\d?\\d?)|\\.TAR", PARTXX_GZIP_EXTENSION ])), + interestingFiles.length || (interestingFiles = files.filter(fileDetect.bind(null, "filename", [ "\\.(MKV|MP4|AVI|TS)" ])), + interestingFiles.length && (isVideoFile = !0)), !interestingFiles.length) return void res.status(500).send("no interesting files"); + } + let totalPieces = 0, missingPieces = 0; + for (var i = 0; interestingFiles[i]; i++) { + if (!interestingFiles[i][0] || !interestingFiles[i][interestingFiles[i].length - 1]) return console.log("missing initial pieces from a file in nzb metadata"), + void disableStreamMissingPieces(); + for (var k = 0; k < interestingFiles[i].length; k++) if (totalPieces++, !interestingFiles[i][k]) { + missingPieces++; + const availablePiece = interestingFiles[i].find((el => !!el)); + if (!availablePiece) return console.log("missing all pieces for a file from nzb metadata"), + void disableStreamMissingPieces(); + interestingFiles[i][k] = { + group: availablePiece.group, + article: "nntp_nope", + bytes: availablePiece.bytes, + subject: "nntp_nope" + }; + } + } + if (missingPieces / totalPieces > .02) return console.log("availability is " + toFixedIfNecessary(missingPieces / totalPieces * 100, 2) + "%"), + console.error(Error("more than 2% of pieces are missing, breaking connection")), + void disableStreamMissingPieces(); + missingPieces && console.log("warning: missing " + toFixedIfNecessary(missingPieces / totalPieces * 100, 2) + "% pieces but attempting to play anyway (under 2% threshold)"); + const httpPrefix = `http://${ip}:${port}/nzb/stream/${key}/`; + let fileSegments = {}; + function fileMatcher(rgx, el) { + const REGEX = (function(rgx) { + return new RegExp(`^${rgx}$|"${rgx}"`, "i"); + })(rgx); + let name = el[0].filename; + if (!name) { + const nameMatches = el[0].subject.match(REGEX); + name = nameMatches && nameMatches.length >= 1 ? nameMatches[1] || nameMatches[5] : null; + } + return fileSegments[name] = el, name; + } + function fileSorter(REGEX, def, first, second) { + const firstMatch = first.match(REGEX), secondMatch = second.match(REGEX); + return +(firstMatch && firstMatch[1] || def || 0) - +(secondMatch && secondMatch[1] || def || 0); + } + const firstFileSubject = interestingFiles[0][0].filename || interestingFiles[0][0].subject; + let fileNames = []; + if (isVideoFile) { + fileNames = interestingFiles.map(fileMatcher.bind(null, "((.*)(\\.(MKV|MP4|AVI|TS)))")), + streams[key].fileSegments = fileSegments, streams[key].fileNames = fileNames, streams[key].client || (streams[key].client = new nzbGrabber(parseNntpUrl(streams[key].clientUrls[0]))); + let firstFileSize = null; + try { + firstFileSize = await getFileSize(fileNames[0]); + } catch (e) { + console.error(e); + } + if (!firstFileSize) return void disableStreamMissingPieces(fileNames[0], "first"); + let lastFileSize = null; + try { + lastFileSize = await getFileSize(fileNames[fileNames.length - 1]); + } catch (e) { + console.error(e); + } + if (!lastFileSize) return void disableStreamMissingPieces(fileNames[fileNames.length - 1], "last"); + for (let i = 0; fileNames[i]; i++) chunkSize[fileNames[i]] || (chunkSize[fileNames[i]] = chunkSize[fileNames[0]]), + lastChunkSize[fileNames[i]] || (lastChunkSize[fileNames[i]] = lastChunkSize[fileNames[0]]), + fileSizes[fileNames[i]] || (fileSizes[fileNames[i]] = fileSizes[fileNames[0]]); + return streams[key].streamUrl = `/nzb/stream/${key}/${encodeURIComponent(fileNames[0])}`, + initKeys[`init-${key}`] = { + serverPath: streams[key].streamUrl + }, initEmitter.emit(`init-${key}`), void ("POST" === req.method ? (res.setHeader("Content-Length", JSON.stringify({ + key: key + }).length + ""), res.setHeader("Content-Type", "application/json"), res.end(JSON.stringify({ + key: key + }))) : (delete creatingKey[key], res.redirect(streams[key].streamUrl))); + } + let archiveType = null; + function firstFileMatch(rgx) { + const REGEX = fileRegexEndOnly(rgx); + return !!firstFileSubject.match(REGEX); + } + if (firstFileMatch("\\.7Z\\.(\\d\\d?\\d?\\d?\\d?)|\\.7Z")) archiveType = "7zip", + fileNames = interestingFiles.map(fileMatcher.bind(null, "((.*)(\\.7Z\\.(\\d\\d?\\d?\\d?\\d?)|\\.7Z))")).sort(fileSorter.bind(null, /\.7Z\.(\d\d?\d?\d?\d?)$/i, 0)); else if (firstFileMatch("\\.Z(\\d\\d?\\d?\\d?\\d?)|\\.ZIP")) archiveType = "zip", + fileNames = interestingFiles.map(fileMatcher.bind(null, "((.*)(\\.Z(\\d\\d?\\d?\\d?\\d?)|\\.ZIP))")).sort(fileSorter.bind(null, /\.Z(\d\d?\d?\d?\d?)$/i, 99999)); else if (firstFileMatch("\\.PART(\\d\\d?\\d?\\d?\\d?)\\.RAR")) archiveType = "rar", + fileNames = interestingFiles.map(fileMatcher.bind(null, "((.*)(\\.PART(\\d\\d?\\d?\\d?\\d?)\\.RAR))")).sort(fileSorter.bind(null, /\.PART(\d\d?\d?\d?\d?)\.RAR$/i, 0)); else if (firstFileMatch(RXX_EXTENSION)) archiveType = "rar", + fileNames = interestingFiles.map(fileMatcher.bind(null, `((.*)(${RXX_EXTENSION}))`)).sort(((first, second) => first.match(fileRegexEndOnly("\\.RAR")) ? -1 : second.match(fileRegexEndOnly("\\.RAR")) ? 1 : fileSorter(/\.R(\d\d?\d?\d?\d?)$/i, 0, first, second))); else if (firstFileMatch("\\.TAR.(\\d\\d?\\d?\\d?\\d?)|\\.TAR")) archiveType = "tar", + fileNames = interestingFiles.map(fileMatcher.bind(null, "((.*)(\\.TAR.(\\d\\d?\\d?\\d?\\d?)|\\.TAR))")).sort(fileSorter.bind(null, /\.TAR\.(\d\d?\d?\d?\d?)$/i, 0)); else { + if (!firstFileMatch(PARTXX_GZIP_EXTENSION)) return void res.status(500).send("missing rar files in nzb file"); + archiveType = "tgz", fileNames = interestingFiles.map(fileMatcher.bind(null, `((.*)(${PARTXX_GZIP_EXTENSION}))`)).sort(fileSorter.bind(null, /\.(\d\d?\d?\d?\d?)$/i, 0)); + } + streams[key].fileSegments = fileSegments, streams[key].fileNames = fileNames, streams[key].client || (streams[key].client = new nzbGrabber(parseNntpUrl(streams[key].clientUrls[0]))); + let firstFileSize = null; + try { + firstFileSize = await getFileSize(fileNames[0]); + } catch (e) { + console.error(e); + } + if (!firstFileSize) return void disableStreamMissingPieces(fileNames[0], "first"); + let lastFileSize = null; + try { + lastFileSize = await getFileSize(fileNames[fileNames.length - 1]); + } catch (e) { + console.error(e); + } + if (!lastFileSize) return void disableStreamMissingPieces(fileNames[fileNames.length - 1], "last"); + for (let i = 0; fileNames[i]; i++) chunkSize[fileNames[i]] || (chunkSize[fileNames[i]] = chunkSize[fileNames[0]]), + lastChunkSize[fileNames[i]] || (lastChunkSize[fileNames[i]] = lastChunkSize[fileNames[0]]), + fileSizes[fileNames[i]] || (fileSizes[fileNames[i]] = fileSizes[fileNames[0]]); + const archiveArr = fileNames.map((el => ({ + url: `${httpPrefix}${encodeURIComponent(el)}`, + bytes: fileSizes[el] + }))); + streams[key].streamUrl = `/${archiveType}/stream?key=${key}`, initKeys[`init-${key}`] = { + serverPath: streams[key].streamUrl + }, initEmitter.emit(`init-${key}`), needle.post(`http://${ip}:${port}/${archiveType}/create/${key}`, archiveArr, { + json: !0 + }, ((err, resp, body) => {})), "POST" === req.method ? (res.setHeader("Content-Length", JSON.stringify({ + key: key + }).length + ""), res.setHeader("Content-Type", "application/json"), res.end(JSON.stringify({ + key: key + }))) : (delete creatingKey[key], res.redirect(streams[key].streamUrl)); + })); + })); + } + router.post("/create/:createKey", createKeyHandler), router.all("/create", createKeyHandler); + let countStreams = {}, closeTimer = {}; + function waitForKeyData(req, forceKey) { + return new Promise(((resolve, reject) => { + const key = `init-${forceKey || req.query.key}`; + key ? initKeys[key] ? resolve(key) : initEmitter.addListener(key, (function gotData() { + initEmitter.removeListener(key, gotData), resolve(key); + })) : reject(Error("No stream key provided")); + })); + } + return router.get("/stream/:key/:fileName", (async (req, res) => { + sendFile(req.params.key, req.params.fileName, req, res); + const reqKey = req.params.key; + countStreams[reqKey] ? countStreams[reqKey]++ : countStreams[reqKey] = 1, req.on("close", (function() { + countStreams[reqKey]--, countStreams[reqKey] || (closeTimer[reqKey] && clearTimeout(closeTimer[reqKey]), + closeTimer[reqKey] = setTimeout((() => { + if (!countStreams[reqKey] && (console.log("closing all connections for nntp engine", reqKey), + streams[reqKey].client && streams[reqKey].client.closeAllConns(), streams[reqKey].clientUrls.length > 1)) for (let k = 0; k < streams[reqKey].clientUrls.length - 1; k++) streams[reqKey].backboneClient[k] && streams[reqKey].backboneClient[k].closeAllConns(); + }), 3e4)); + })); + })), router.get("/stream", (async (req, res) => { + try { + await waitForKeyData(req); + } catch (e) { + return console.error(e), res.statusCode = 500, void res.end(); + } + res.redirect(initKeys[`init-${req.query.key}`].serverPath); + })), router; + }, + setIP: i => { + ip = i; + }, + setPort: p => { + port = p; + } + }; +}, function(module, exports, __webpack_require__) { + var NNTPWorker, NzbGrabber, nzb, yenc; + __webpack_require__(244), __webpack_require__(245), NNTPWorker = __webpack_require__(1102), + nzb = __webpack_require__(504), yenc = __webpack_require__(1115), subscriber = __webpack_require__(1117), + NzbGrabber = (function() { + const selectionIds = {}, requestIds = {}; + let lastSelectionId = ""; + function getSelectionId() { + const idStr = "" + Math.random().toString(16).slice(2); + return selectionIds[idStr] ? getSelectionId() : idStr; + } + function getChunkId() { + const idStr = "" + Math.random().toString(16).slice(2); + return requestIds[idStr] ? getChunkId() : idStr; + } + function NzbGrabber(opts) { + var self, workers; + if (this.opts = opts, !this.opts.conn) throw "No conections"; + workers = function() { + var k, ref, results; + for (results = [], k = 0, ref = this.opts.conn; 0 <= ref ? k < ref : k > ref; 0 <= ref ? ++k : --k) results.push(new NNTPWorker(this.opts)); + return results; + }.call(this), self = this, this.queue = { + next: function() { + var article, callback, group, bytes, k, len, task, worker; + let selIds = Object.keys(selectionIds); + if (!selIds.length) return; + let qId = selIds[0]; + if (lastSelectionId && lastSelectionId !== selIds[selIds.length - 1] || !selectionIds[qId].length) { + let afterLast = !1; + selIds.some((selId => selId === lastSelectionId ? (afterLast = !0, !1) : !(!afterLast || !selectionIds[selId].length || (qId = selId, + 0)))); + } + if (lastSelectionId = qId, task = selectionIds[qId][0]) for (group = task[0], article = task[1], + bytes = task[2], callback = task[3], k = 0, len = workers.length; k < len; k++) if ("BUSY" !== (worker = workers[k]).state) return selectionIds[qId].shift(), + worker.getArticle(group, article, (function(err, code, buffer) { + return callback(err, buffer, group, article, bytes), self.queue.next(); + })); + }, + push: function(chunk, callback) { + return selectionIds[chunk.selectionId].push([ chunk.group, chunk.article, chunk.bytes, callback, chunk.reqId ]), + self.queue.next(); + }, + clear: function(selectionId) { + delete selectionIds[selectionId]; + }, + getWorkers: function() { + return workers; + } + }; + } + return NzbGrabber.prototype.grabSegments = function(segs, cb, pushAll, requestId) { + var selectionId = getSelectionId(); + selectionIds[selectionId] = []; + var self = this, stopped = !1; + requestId = requestId || subscriber.expected(segs); + var cache, chunks, filename, todo = 0; + filename = null, cache = [], todo += chunks = segs.length; + var chunkIds = [], fileChunks = segs.slice(), chunk = fileChunks.shift(), nextIdx = 0; + function nextChunk(i) { + if (!stopped && fileChunks.length) return pushChunk(fileChunks.shift(), i); + } + function pushChunk(chunk, i) { + chunk ? (subscriber.subscribe(requestId, chunk.group, chunk.article, (function(err, buffer, group, article, bytes) { + var decoded, item, j, ref; + if (!stopped) if (!err && buffer) { + if (ref = yenc(buffer), filename = ref[0], decoded = ref[1], cache[i] = decoded, + chunks -= 1, filename) for (j = 0; cache[j]; ) { + if (item = cache[j], j += 1, "boolean" == typeof item) continue; + 1 !== segs.length && segs.length; + const isDone = !(todo -= 1); + isDone && delete selectionIds[selectionId], cb(null, filename, item, isDone, group, article, bytes, j - 1), + cache[j - 1] = !0; + } else if (!chunks) return cache = null, pushAll || nextChunk(i + 1), cb("useless"); + pushAll || nextChunk(i + 1); + } else cb(err || "unknown error", null, null, !1, group, article, bytes, i); + })), chunk.reqId = getChunkId(), chunk.selectionId = selectionId, requestIds[chunk.reqId] = !0, + chunkIds.push(chunk.reqId), self.queue.push(chunk, (function(err, buffer, group, article, bytes) { + chunkIds.splice(chunkIds.indexOf(chunk.reqId), 1), delete requestIds[chunk.reqId], + subscriber.pushSegment(err, buffer, group, article, bytes); + }))) : pushAll || nextChunk(i + 1); + } + if (pushAll) { + pushChunk(chunk, 0); + for (var idx = 1; fileChunks.length; ) nextChunk(idx), idx++; + } else pushChunk(chunk, 0); + let holdQueue = !1; + const controller = { + stop: () => { + stopped = !0, self.queue.clear(selectionId); + }, + pause: () => { + selectionIds[selectionId] && (holdQueue = selectionIds[selectionId], delete selectionIds[selectionId]); + }, + resume: () => { + stopped || (pushAll ? holdQueue && (selectionIds[selectionId] = holdQueue, holdQueue = !1, + controller.resumeQueue()) : fileChunks.length && nextChunk(nextIdx)); + }, + skipSegment: (filename, group, article, bytes, skipIdx) => { + console.log("skip piece nr", skipIdx), cache[skipIdx] = !0, nextIdx = 1, chunks -= 1; + for (var j = 0; cache[j]; ) { + if (item = cache[j], j += 1, "boolean" == typeof item) continue; + seg = "", 1 !== segs.length && (seg = " (" + j + "/" + segs.length + ")"); + const isDone = !(todo -= 1); + isDone && delete selectionIds[selectionId], cb(null, filename, item, isDone, group, article, bytes, j - 1), + cache[j - 1] = !0; + } + controller.resumeQueue(); + }, + resumeQueue: () => { + self.queue.next(); + for (let i = 1; i < self.opts.conn; i++) setTimeout((() => { + self.queue.next(); + })); + }, + pushFromBackbone: (err, filename, chunk, done, group, article, bytes, chunkIdx) => { + if (!err && chunk) { + if (cache[chunkIdx] = chunk, chunks -= 1, filename) { + for (j = 0; cache[j]; ) { + if (item = cache[j], j += 1, "boolean" == typeof item) continue; + seg = "", 1 !== segs.length && (seg = " (" + j + "/" + segs.length + ")"); + const isDone = !(todo -= 1); + isDone && delete selectionIds[selectionId], cb(null, filename, item, isDone, group, article, bytes, j - 1), + cache[j - 1] = !0; + } + controller.resumeQueue(); + } else if (!chunks) return cache = null, pushAll || nextChunk(1), cb("useless", null, null, null, group, article, bytes, chunkIdx); + } else controller.skipSegment(filename, group, article, bytes, chunkIdx); + } + }; + return controller; + }, NzbGrabber.prototype.parse = nzb, NzbGrabber.prototype.closeAllConns = function() { + for (var workers = this.queue.getWorkers(), k = 0; workers[k]; k++) workers[k].close(); + }, NzbGrabber; + })(), module.exports = NzbGrabber; +}, function(module, exports, __webpack_require__) { + __webpack_require__(1091); + var util = __webpack_require__(0), level = "debug", LEVELS = { + debug: 1, + info: 2, + error: 3, + critical: 4 + }, EXCLUDES = [ "password" ], WHITELIST = [], BLACKLIST = [], logging = exports; + function getStamp() { + var date = new Date; + return [ "[", [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ][date.getDay()], " ", date.getFullYear(), "-", date.getMonth() + 1, "-", date.getDate(), " ", date.getHours(), ":", date.getMinutes(), ":", date.getSeconds(), ".", date.getMilliseconds(), " GMT", date.getTimezoneOffset() / 60, "]" ].join("").grey; + } + function prettyPrintObj(o, excludes) { + if (excludes = void 0 === excludes ? EXCLUDES : excludes, !o || "object" != typeof o || !Object.keys(o).length) return "*".grey + " " + "n/a".green + "\n"; + var rows = []; + return Object.keys(o).forEach((function(key) { + var value; + value = excludes.length && excludes.indexOf(key) < 0 ? null === o[key] ? "null".grey : void 0 === o[key] ? "undefined".grey : o[key].toString() : "(excluded)".grey, + rows.push("*".grey + " " + key.green + ": " + value); + })), rows.join("\n") + "\n"; + } + function log(msg, flag, minlvl, trace, block) { + LEVELS[level] > LEVELS[minlvl] || (msg = (function(msg) { + return WHITELIST.length || BLACKLIST.length ? !WHITELIST.length && BLACKLIST.length ? (BLACKLIST.forEach((function(r) { + msg = msg.replace(r, ""); + })), msg) : (WHITELIST.forEach((function(r) { + var badUniqueChars = []; + msg.split(r).forEach((function(c) { + c.length && -1 === badUniqueChars.indexOf(c) && badUniqueChars.push(c); + })), badUniqueChars.forEach((function(c) { + msg = msg.replace(new RegExp(c.replace(/\\/g, "\\\\").replace(/\./g, "\\."), "gm"), ""); + })); + })), msg) : msg; + })(msg), (block = block || !1) ? util.debug(getStamp() + " " + flag + ": " + msg) : console.log(getStamp() + " " + flag + ": " + msg), + trace && console.trace()); + } + function convertToRegExp(arr) { + var regexes = []; + return arr.forEach((function(r) { + "string" == typeof r ? "/" === r[0] && "/" === a.slice(-1) ? regexes.push(new RegExp(r.slice(0, -1), "gm")) : regexes.push(new RegExp(r, "gm")) : r instanceof RegExp && regexes.push(new RegExp(r.source, "gm")); + })), regexes; + } + logging.pretty = prettyPrintObj, logging.setLevel = function(lvl) { + level = Object.keys(LEVELS).indexOf(level) < 0 ? "info" : lvl; + }, logging.setBlacklist = function(blacklist) { + Array.isArray(blacklist) && (BLACKLIST = convertToRegExp(blacklist)); + }, logging.setWhitelist = function(whitelist) { + Array.isArray(whitelist) && (WHITELIST = convertToRegExp(whitelist)); + }, logging.setExcludes = function(excludes) { + EXCLUDES = excludes; + }, logging.inf = function(msg, trace) { + log(msg, "INF".bold.green, "info", trace); + }, logging.dbg = function(msg, trace) { + log(msg, "DBG".bold.yellow, "debug", trace); + }, logging.err = function(msg, trace) { + log(msg, "ERR".bold.red, "error", trace); + }, logging.bad = function(msg, trace) { + log(msg.toString().red.bold, "BAD".bold.red.inverse, "critical", trace, !0); + }, logging.inspect = function(obj, trace) { + logging.debug(utils.inspect(obj, !0, null), trace); + }, logging.startTimer = function() { + var startTime = (new Date).getTime(); + return function(msg, trace) { + msg = msg + " " + ("(took " + ((new Date).getTime() - startTime) + "ms)").yellow, + logging.dbg(msg, trace); + }; + }, logging.requestLogger = function(req, res, next) { + var connectionDetails, terminated = !1, startTime = (new Date).getTime(), log = "Request for ".green.bold + (req.method + " " + req.url.toString()).yellow.bold + "\n\n", memoryUsage = process.memoryUsage(), userMessages = [], socket = req.connection.socket; + function completeLog() { + if (!terminated) { + var endTime = (new Date).getTime(); + log += "Request details:\n".cyan.bold, log += "\n", log += "Path parameters:\n".cyan.italic, + log += prettyPrintObj(req.params) + "\n", log += "Query parameters:\n".cyan.italic, + log += prettyPrintObj(req.query) + "\n", log += "Request body:\n".cyan.italic, log += prettyPrintObj(req.body) + "\n", + log += "==/\n\n".cyan.bold, Object.keys(memoryUsage).forEach((function(key) { + var i; + memoryUsage[key] = (i = memoryUsage[key]) > 1073741824 ? Math.round(i / 1073741824 * 100) / 100 + " GiB" : i > 1048576 ? Math.round(i / 1048576 * 100) / 100 + " MiB" : Math.round(i / 1024 * 100) / 100 + " KiB"; + })), log += "Request headers:\n".cyan.bold, log += prettyPrintObj(req.headers), + log += "==/\n\n".cyan.bold, log += "Response headers:\n".cyan.bold, log += prettyPrintObj(res._headers), + log += "==/\n\n".cyan.bold, connectionDetails = { + address: socket && socket.remoteAddress || "n/a", + port: socket && socket.remotePort || "n/a", + HTTP: req.httpVersionMajor + "." + req.httpVersionMinor, + SSL: req.connection.encrypted ? "yes" : "no", + socket: socket && socket.type || "n/a", + "open connections": socket && socket.server && socket.server.connections || "n/a" + }, log += "Connection details:\n".cyan.bold, log += prettyPrintObj(connectionDetails), + log += "==/\n\n".cyan.bold, log += "Memory usage:\n".cyan.bold, log += prettyPrintObj(memoryUsage), + log += "==/\n\n".cyan.bold, userMessages.length && (log += "User messages:\n".cyan.bold, + userMessages.forEach((function(message) { + log += "*".grey + " " + message + "\n"; + })), log += "\n"), log += "Total request time: ".cyan.bold, log += (endTime - startTime + "ms\n").yellow.bold, + (log = res.statusCode.toString().red + " " + log) && logging.dbg(log); + } + } + req.log = {}, req.log.startTimer = function(name) { + var time = (new Date).getTime(); + req.log["end" + name] = function(msg) { + var start = time - startTime, end = (new Date).getTime() - startTime; + time = (new Date).getTime() - time, userMessages.push(("(" + start + "ms -> " + end + "ms)").yellow.bold + " " + msg.toString().green + " " + ("(took " + time + "ms)").yellow); + }; + }, req.log.push = function(msg) { + var start = (new Date).getTime() - startTime; + userMessages.push(("(" + start + "ms)").yellow.bold + " " + msg.toString().green); + }, req.log.inspect = function(msg, obj) { + var start = (new Date).getTime() - startTime; + userMessages.push(("(" + start + "ms)").yellow.bold + " " + msg.toString().green + ":\n" + util.inspect(obj, !0, null)); + }, res.on("finish", completeLog), req.log.terminate = function(msg) { + log = "[TERM] ".red.bold + log, userMessages.push("TERMINATED:".red.bold + msg.yellow.bold + "\n"), + completeLog(), terminated = !0; + }, next(); + }; +}, function(module, exports, __webpack_require__) { + var colors = __webpack_require__(503); + module.exports = colors, __webpack_require__(1101)(); +}, function(module, exports) { + var styles = {}; + module.exports = styles; + var codes = { + reset: [ 0, 0 ], + bold: [ 1, 22 ], + dim: [ 2, 22 ], + italic: [ 3, 23 ], + underline: [ 4, 24 ], + inverse: [ 7, 27 ], + hidden: [ 8, 28 ], + strikethrough: [ 9, 29 ], + black: [ 30, 39 ], + red: [ 31, 39 ], + green: [ 32, 39 ], + yellow: [ 33, 39 ], + blue: [ 34, 39 ], + magenta: [ 35, 39 ], + cyan: [ 36, 39 ], + white: [ 37, 39 ], + gray: [ 90, 39 ], + grey: [ 90, 39 ], + brightRed: [ 91, 39 ], + brightGreen: [ 92, 39 ], + brightYellow: [ 93, 39 ], + brightBlue: [ 94, 39 ], + brightMagenta: [ 95, 39 ], + brightCyan: [ 96, 39 ], + brightWhite: [ 97, 39 ], + bgBlack: [ 40, 49 ], + bgRed: [ 41, 49 ], + bgGreen: [ 42, 49 ], + bgYellow: [ 43, 49 ], + bgBlue: [ 44, 49 ], + bgMagenta: [ 45, 49 ], + bgCyan: [ 46, 49 ], + bgWhite: [ 47, 49 ], + bgGray: [ 100, 49 ], + bgGrey: [ 100, 49 ], + bgBrightRed: [ 101, 49 ], + bgBrightGreen: [ 102, 49 ], + bgBrightYellow: [ 103, 49 ], + bgBrightBlue: [ 104, 49 ], + bgBrightMagenta: [ 105, 49 ], + bgBrightCyan: [ 106, 49 ], + bgBrightWhite: [ 107, 49 ], + blackBG: [ 40, 49 ], + redBG: [ 41, 49 ], + greenBG: [ 42, 49 ], + yellowBG: [ 43, 49 ], + blueBG: [ 44, 49 ], + magentaBG: [ 45, 49 ], + cyanBG: [ 46, 49 ], + whiteBG: [ 47, 49 ] + }; + Object.keys(codes).forEach((function(key) { + var val = codes[key], style = styles[key] = []; + style.open = "[" + val[0] + "m", style.close = "[" + val[1] + "m"; + })); +}, function(module, exports, __webpack_require__) { + "use strict"; + var os = __webpack_require__(23), hasFlag = __webpack_require__(1094), env = process.env, forceColor = void 0; + function getSupportLevel(stream) { + var level = (function(stream) { + if (!1 === forceColor) return 0; + if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) return 3; + if (hasFlag("color=256")) return 2; + if (stream && !stream.isTTY && !0 !== forceColor) return 0; + var min = forceColor ? 1 : 0; + if ("win32" === process.platform) { + var osRelease = os.release().split("."); + return Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586 ? Number(osRelease[2]) >= 14931 ? 3 : 2 : 1; + } + if ("CI" in env) return [ "TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI" ].some((function(sign) { + return sign in env; + })) || "codeship" === env.CI_NAME ? 1 : min; + if ("TEAMCITY_VERSION" in env) return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + if ("TERM_PROGRAM" in env) { + var version = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10); + switch (env.TERM_PROGRAM) { + case "iTerm.app": + return version >= 3 ? 3 : 2; + + case "Hyper": + return 3; + + case "Apple_Terminal": + return 2; + } + } + return /-256(color)?$/i.test(env.TERM) ? 2 : /^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM) || "COLORTERM" in env ? 1 : (env.TERM, + min); + })(stream); + return (function(level) { + return 0 !== level && { + level: level, + hasBasic: !0, + has256: level >= 2, + has16m: level >= 3 + }; + })(level); + } + hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") ? forceColor = !1 : (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) && (forceColor = !0), + "FORCE_COLOR" in env && (forceColor = 0 === env.FORCE_COLOR.length || 0 !== parseInt(env.FORCE_COLOR, 10)), + module.exports = { + supportsColor: getSupportLevel, + stdout: getSupportLevel(process.stdout), + stderr: getSupportLevel(process.stderr) + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + module.exports = function(flag, argv) { + var terminatorPos = (argv = argv || process.argv).indexOf("--"), prefix = /^-{1,2}/.test(flag) ? "" : "--", pos = argv.indexOf(prefix + flag); + return -1 !== pos && (-1 === terminatorPos || pos < terminatorPos); + }; +}, function(module, exports) { + module.exports = function(text, options) { + var result = ""; + text = (text = text || "Run the trap, drop the bass").split(""); + var trap = { + a: [ "@", "Ą", "Ⱥ", "Ʌ", "Δ", "Λ", "Д" ], + b: [ "ß", "Ɓ", "Ƀ", "ɮ", "β", "฿" ], + c: [ "©", "Ȼ", "Ͼ" ], + d: [ "Ð", "Ɗ", "Ԁ", "ԁ", "Ԃ", "ԃ" ], + e: [ "Ë", "ĕ", "Ǝ", "ɘ", "Σ", "ξ", "Ҽ", "੬" ], + f: [ "Ӻ" ], + g: [ "ɢ" ], + h: [ "Ħ", "ƕ", "Ң", "Һ", "Ӈ", "Ԋ" ], + i: [ "༏" ], + j: [ "Ĵ" ], + k: [ "ĸ", "Ҡ", "Ӄ", "Ԟ" ], + l: [ "Ĺ" ], + m: [ "ʍ", "Ӎ", "ӎ", "Ԡ", "ԡ", "൩" ], + n: [ "Ñ", "ŋ", "Ɲ", "Ͷ", "Π", "Ҋ" ], + o: [ "Ø", "õ", "ø", "Ǿ", "ʘ", "Ѻ", "ם", "۝", "๏" ], + p: [ "Ƿ", "Ҏ" ], + q: [ "্" ], + r: [ "®", "Ʀ", "Ȑ", "Ɍ", "ʀ", "Я" ], + s: [ "§", "Ϟ", "ϟ", "Ϩ" ], + t: [ "Ł", "Ŧ", "ͳ" ], + u: [ "Ʊ", "Ս" ], + v: [ "ט" ], + w: [ "Ш", "Ѡ", "Ѽ", "൰" ], + x: [ "Ҳ", "Ӿ", "Ӽ", "ӽ" ], + y: [ "¥", "Ұ", "Ӌ" ], + z: [ "Ƶ", "ɀ" ] + }; + return text.forEach((function(c) { + c = c.toLowerCase(); + var chars = trap[c] || [ " " ], rand = Math.floor(Math.random() * chars.length); + result += void 0 !== trap[c] ? trap[c][rand] : c; + })), result; + }; +}, function(module, exports) { + module.exports = function(text, options) { + text = text || " he is here "; + var soul = { + up: [ "̍", "̎", "̄", "̅", "̿", "̑", "̆", "̐", "͒", "͗", "͑", "̇", "̈", "̊", "͂", "̓", "̈", "͊", "͋", "͌", "̃", "̂", "̌", "͐", "̀", "́", "̋", "̏", "̒", "̓", "̔", "̽", "̉", "ͣ", "ͤ", "ͥ", "ͦ", "ͧ", "ͨ", "ͩ", "ͪ", "ͫ", "ͬ", "ͭ", "ͮ", "ͯ", "̾", "͛", "͆", "̚" ], + down: [ "̖", "̗", "̘", "̙", "̜", "̝", "̞", "̟", "̠", "̤", "̥", "̦", "̩", "̪", "̫", "̬", "̭", "̮", "̯", "̰", "̱", "̲", "̳", "̹", "̺", "̻", "̼", "ͅ", "͇", "͈", "͉", "͍", "͎", "͓", "͔", "͕", "͖", "͙", "͚", "̣" ], + mid: [ "̕", "̛", "̀", "́", "͘", "̡", "̢", "̧", "̨", "̴", "̵", "̶", "͜", "͝", "͞", "͟", "͠", "͢", "̸", "̷", "͡", " ҉" ] + }, all = [].concat(soul.up, soul.down, soul.mid); + function randomNumber(range) { + return Math.floor(Math.random() * range); + } + function isChar(character) { + var bool = !1; + return all.filter((function(i) { + bool = i === character; + })), bool; + } + return (function(text, options) { + var counts, l, result = ""; + for (l in (options = options || {}).up = void 0 === options.up || options.up, options.mid = void 0 === options.mid || options.mid, + options.down = void 0 === options.down || options.down, options.size = void 0 !== options.size ? options.size : "maxi", + text = text.split("")) if (!isChar(l)) { + switch (result += text[l], counts = { + up: 0, + down: 0, + mid: 0 + }, options.size) { + case "mini": + counts.up = randomNumber(8), counts.mid = randomNumber(2), counts.down = randomNumber(8); + break; + + case "maxi": + counts.up = randomNumber(16) + 3, counts.mid = randomNumber(4) + 1, counts.down = randomNumber(64) + 3; + break; + + default: + counts.up = randomNumber(8) + 1, counts.mid = randomNumber(6) / 2, counts.down = randomNumber(8) + 1; + } + var arr = [ "up", "mid", "down" ]; + for (var d in arr) for (var index = arr[d], i = 0; i <= counts[index]; i++) options[index] && (result += soul[index][randomNumber(soul[index].length)]); + } + return result; + })(text, options); + }; +}, function(module, exports) { + module.exports = function(colors) { + return function(letter, i, exploded) { + if (" " === letter) return letter; + switch (i % 3) { + case 0: + return colors.red(letter); + + case 1: + return colors.white(letter); + + case 2: + return colors.blue(letter); + } + }; + }; +}, function(module, exports) { + module.exports = function(colors) { + return function(letter, i, exploded) { + return i % 2 == 0 ? letter : colors.inverse(letter); + }; + }; +}, function(module, exports) { + module.exports = function(colors) { + var rainbowColors = [ "red", "yellow", "green", "blue", "magenta" ]; + return function(letter, i, exploded) { + return " " === letter ? letter : colors[rainbowColors[i++ % rainbowColors.length]](letter); + }; + }; +}, function(module, exports) { + module.exports = function(colors) { + var available = [ "underline", "inverse", "grey", "yellow", "red", "green", "blue", "white", "cyan", "magenta", "brightYellow", "brightRed", "brightGreen", "brightBlue", "brightWhite", "brightCyan", "brightMagenta" ]; + return function(letter, i, exploded) { + return " " === letter ? letter : colors[available[Math.round(Math.random() * (available.length - 2))]](letter); + }; + }; +}, function(module, exports, __webpack_require__) { + var colors = __webpack_require__(503); + module.exports = function() { + var addProperty = function(color, func) { + String.prototype.__defineGetter__(color, func); + }; + addProperty("strip", (function() { + return colors.strip(this); + })), addProperty("stripColors", (function() { + return colors.strip(this); + })), addProperty("trap", (function() { + return colors.trap(this); + })), addProperty("zalgo", (function() { + return colors.zalgo(this); + })), addProperty("zebra", (function() { + return colors.zebra(this); + })), addProperty("rainbow", (function() { + return colors.rainbow(this); + })), addProperty("random", (function() { + return colors.random(this); + })), addProperty("america", (function() { + return colors.america(this); + })), Object.keys(colors.styles).forEach((function(style) { + addProperty(style, (function() { + return colors.stylize(this, style); + })); + })), colors.setTheme = function(theme) { + "string" != typeof theme ? (function(theme) { + var stringPrototypeBlacklist = [ "__defineGetter__", "__defineSetter__", "__lookupGetter__", "__lookupSetter__", "charAt", "constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf", "charCodeAt", "indexOf", "lastIndexOf", "length", "localeCompare", "match", "repeat", "replace", "search", "slice", "split", "substring", "toLocaleLowerCase", "toLocaleUpperCase", "toLowerCase", "toUpperCase", "trim", "trimLeft", "trimRight" ]; + Object.keys(theme).forEach((function(prop) { + if (-1 !== stringPrototypeBlacklist.indexOf(prop)) console.log("warn: ".red + ("String.prototype" + prop).magenta + " is probably something you don't want to override. Ignoring style name"); else if ("string" == typeof theme[prop]) colors[prop] = colors[theme[prop]], + addProperty(prop, (function() { + return colors[prop](this); + })); else { + var themePropApplicator = function(str) { + for (var ret = str || this, t = 0; t < theme[prop].length; t++) ret = colors[theme[prop][t]](ret); + return ret; + }; + addProperty(prop, themePropApplicator), colors[prop] = function(str) { + return themePropApplicator(str); + }; + } + })); + })(theme) : console.log("colors.setTheme now only accepts an object, not a string. If you are trying to set a theme from a file, it is now your (the caller's) responsibility to require the file. The old syntax looked like colors.setTheme(__dirname + '/../themes/generic-logging.js'); The new syntax looks like colors.setTheme(require(__dirname + '/../themes/generic-logging.js'));"); + }; + }; +}, function(module, exports, __webpack_require__) { + var NNTPWorker, async, id, net, bind = function(fn, me) { + return function() { + return fn.apply(me, arguments); + }; + }; + net = __webpack_require__(39), tls = __webpack_require__(70), __webpack_require__(245), + __webpack_require__(3), async = __webpack_require__(244), id = 0, NNTPWorker = (function() { + function NNTPWorker(opts) { + var self; + this.opts = opts, this.onData = bind(this.onData, this), this.connect = bind(this.connect, this), + self = this, this.id = id++, this.callbacks = (function() { + var q; + return q = [], { + call: function(code, res) { + var item; + if (item = q.shift()) { + if ("function" != typeof item) throw "Callback is not a function"; + return item(self.error, code, res); + } + }, + add: function(callback) { + return q.push(callback); + } + }; + })(); + } + return NNTPWorker.prototype.state = "OFFLINE", NNTPWorker.prototype.error = null, + NNTPWorker.prototype.group = null, NNTPWorker.prototype.connect = function(cb) { + var self; + return self = this, this.callbacks.add((function() { + if (self.opts.user || self.opts.pass) return async.waterfall([ function(cb) { + return self.mode = "MESSAGE", self.sendCommand("AUTHINFO USER " + self.opts.user, 381, cb); + }, function(code, res, cb) { + return self.mode = "MESSAGE", self.sendCommand("AUTHINFO PASS " + self.opts.pass, 2, cb); + } ], (function(err) { + return err && (self.error = err), cb(null); + })); + cb(null); + })), this.mode = "MESSAGE", "nntps" === this.opts.protocol ? this.client = tls.connect({ + host: this.opts.host, + port: this.opts.port, + rejectUnauthorized: !1 + }, (function() {})) : this.client = net.connect({ + host: this.opts.host, + port: this.opts.port + }, (function() {})), this.client.on("end", (function() {})), this.client.on("error", (function(err) { + return self.error = err; + })), this.client.on("timeout", (function() {})), this.client.on("close", (function() { + if ("OFFLINE" !== self.state) return self.ready = 0, self.group = null, self.client && self.client.destroy(), + self.state = "OFFLINE", self.client = null; + })), this.client.on("data", this.onData); + }, NNTPWorker.prototype.close = function() { + "OFFLINE" !== this.state && (this.ready = 0, this.group = null, this.client.destroy(), + this.state = "OFFLINE", this.client = null); + }, NNTPWorker.prototype.sendCommand = function(command, expected, callback) { + var i, p, pattern, ref; + if ("function" == typeof expected) callback = expected, expected = null; else { + for (i in pattern = [ "\\d", "\\d", "\\d" ], ref = String(expected).split("")) p = ref[i], + pattern[i] = p; + expected = new RegExp("^" + pattern.join("") + "$"); + } + return expected ? this.callbacks.add((function(err, code, buffer) { + return err ? callback(err) : code.match(expected) ? callback(null, code, buffer) : callback(code + " does not match " + expected); + })) : this.callbacks.add(callback), this.code = null, this.client.write(command + "\r\n"); + }, NNTPWorker.prototype.onData = function(buffer) { + var getCode, isArticleEnd, length, removeHeaders, res; + switch (getCode = function() { + return buffer.toString("ascii", 0, 3); + }, isArticleEnd = function() { + var length; + return length = buffer.length, "\r\n.\r\n" === buffer.toString("ascii", length - 5); + }, removeHeaders = function(input) { + var length; + return length = input.length, input.slice(input.indexOf("\r\n\r\n") + 4, length - 3); + }, this.mode) { + case "MESSAGE": + return length = buffer.length, res = buffer.slice(0, length - 2), this.callbacks.call(getCode(), res); + + case "ARTICLE_BEGIN": + return this.code = getCode(), "430" === this.code ? (this.state = "READY", void this.callbacks.call(this.code, null)) : isArticleEnd() ? (this.state = "READY", + this.callbacks.call(this.code, removeHeaders(buffer))) : (this.mode = "ARTICLE_CONTINUE", + this.article = [ buffer ]); + + case "ARTICLE_CONTINUE": + if (this.article.push(buffer), isArticleEnd()) return this.state = "READY", this.callbacks.call(this.code, removeHeaders(Buffer.concat(this.article))); + } + }, NNTPWorker.prototype.getArticle = function(group, article, cb) { + var self, sendArticle, sendGroup, steps; + return self = this, sendGroup = function(cb) { + return self.mode = "MESSAGE", self.group = group, self.sendCommand("GROUP " + group, 2, (function() { + return cb(null); + })); + }, sendArticle = function(cb) { + return article.match(/^<(\S*)>$/) || (article = "<" + article + ">"), self.mode = "ARTICLE_BEGIN", + self.sendCommand("ARTICLE " + article, 2, cb); + }, steps = "OFFLINE" === this.state ? [ this.connect, sendGroup, sendArticle ] : this.group !== group ? [ sendGroup, sendArticle ] : [ sendArticle ], + this.state = "BUSY", async.waterfall(steps, cb); + }, NNTPWorker; + })(), module.exports = NNTPWorker; +}, function(module, exports, __webpack_require__) { + (function() { + "use strict"; + var builder, defaults, parser, processors, hasProp = {}.hasOwnProperty; + defaults = __webpack_require__(246), builder = __webpack_require__(1104), parser = __webpack_require__(1113), + processors = __webpack_require__(511), exports.defaults = defaults.defaults, exports.processors = processors, + exports.ValidationError = (function(superClass) { + function ValidationError(message) { + this.message = message; + } + return (function(child, parent) { + for (var key in parent) 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; + })(ValidationError, Error), ValidationError; + })(), exports.Builder = builder.Builder, exports.Parser = parser.Parser, exports.parseString = parser.parseString, + exports.parseStringPromise = parser.parseStringPromise; + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + "use strict"; + var builder, defaults, escapeCDATA, requiresCDATA, wrapCDATA, hasProp = {}.hasOwnProperty; + builder = __webpack_require__(1105), defaults = __webpack_require__(246).defaults, + requiresCDATA = function(entry) { + return "string" == typeof entry && (entry.indexOf("&") >= 0 || entry.indexOf(">") >= 0 || entry.indexOf("<") >= 0); + }, wrapCDATA = function(entry) { + return ""; + }, escapeCDATA = function(entry) { + return entry.replace("]]>", "]]]]>"); + }, exports.Builder = (function() { + function Builder(opts) { + var key, ref, value; + for (key in this.options = {}, ref = defaults[.2]) hasProp.call(ref, key) && (value = ref[key], + this.options[key] = value); + for (key in opts) hasProp.call(opts, key) && (value = opts[key], this.options[key] = value); + } + return Builder.prototype.buildObject = function(rootObj) { + var attrkey, charkey, render, rootElement, rootName, _this; + return attrkey = this.options.attrkey, charkey = this.options.charkey, 1 === Object.keys(rootObj).length && this.options.rootName === defaults[.2].rootName ? rootObj = rootObj[rootName = Object.keys(rootObj)[0]] : rootName = this.options.rootName, + _this = this, render = function(element, obj) { + var attr, child, entry, index, key, value; + if ("object" != typeof obj) _this.options.cdata && requiresCDATA(obj) ? element.raw(wrapCDATA(obj)) : element.txt(obj); else if (Array.isArray(obj)) { + for (index in obj) if (hasProp.call(obj, index)) for (key in child = obj[index]) entry = child[key], + element = render(element.ele(key), entry).up(); + } else for (key in obj) if (hasProp.call(obj, key)) if (child = obj[key], key === attrkey) { + if ("object" == typeof child) for (attr in child) value = child[attr], element = element.att(attr, value); + } else if (key === charkey) element = _this.options.cdata && requiresCDATA(child) ? element.raw(wrapCDATA(child)) : element.txt(child); else if (Array.isArray(child)) for (index in child) hasProp.call(child, index) && (element = "string" == typeof (entry = child[index]) ? _this.options.cdata && requiresCDATA(entry) ? element.ele(key).raw(wrapCDATA(entry)).up() : element.ele(key, entry).up() : render(element.ele(key), entry).up()); else "object" == typeof child ? element = render(element.ele(key), child).up() : "string" == typeof child && _this.options.cdata && requiresCDATA(child) ? element = element.ele(key).raw(wrapCDATA(child)).up() : (null == child && (child = ""), + element = element.ele(key, child.toString()).up()); + return element; + }, rootElement = builder.create(rootName, this.options.xmldec, this.options.doctype, { + headless: this.options.headless, + allowSurrogateChars: this.options.allowSurrogateChars + }), render(rootElement, rootObj).end(this.options.renderOpts); + }, Builder; + })(); + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + var NodeType, WriterState, XMLDOMImplementation, XMLDocument, XMLDocumentCB, XMLStreamWriter, XMLStringWriter, assign, isFunction, ref; + ref = __webpack_require__(52), assign = ref.assign, isFunction = ref.isFunction, + XMLDOMImplementation = __webpack_require__(505), XMLDocument = __webpack_require__(506), + XMLDocumentCB = __webpack_require__(1111), XMLStringWriter = __webpack_require__(260), + XMLStreamWriter = __webpack_require__(1112), NodeType = __webpack_require__(22), + WriterState = __webpack_require__(161), module.exports.create = function(name, xmldec, doctype, options) { + var doc, root; + if (null == name) throw new Error("Root element needs a name."); + return options = assign({}, xmldec, doctype, options), root = (doc = new XMLDocument(options)).element(name), + options.headless || (doc.declaration(options), null == options.pubID && null == options.sysID || doc.dtd(options)), + root; + }, module.exports.begin = function(options, onData, onEnd) { + var ref1; + return isFunction(options) && (onData = (ref1 = [ options, onData ])[0], onEnd = ref1[1], + options = {}), onData ? new XMLDocumentCB(options, onData, onEnd) : new XMLDocument(options); + }, module.exports.stringWriter = function(options) { + return new XMLStringWriter(options); + }, module.exports.streamWriter = function(stream, options) { + return new XMLStreamWriter(stream, options); + }, module.exports.implementation = new XMLDOMImplementation, module.exports.nodeType = NodeType, + module.exports.writerState = WriterState; + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + var XMLDOMErrorHandler, XMLDOMStringList; + XMLDOMErrorHandler = __webpack_require__(1107), XMLDOMStringList = __webpack_require__(1108), + module.exports = (function() { + function XMLDOMConfiguration() { + this.defaultParams = { + "canonical-form": !1, + "cdata-sections": !1, + comments: !1, + "datatype-normalization": !1, + "element-content-whitespace": !0, + entities: !0, + "error-handler": new XMLDOMErrorHandler, + infoset: !0, + "validate-if-schema": !1, + namespaces: !0, + "namespace-declarations": !0, + "normalize-characters": !1, + "schema-location": "", + "schema-type": "", + "split-cdata-sections": !0, + validate: !1, + "well-formed": !0 + }, this.params = Object.create(this.defaultParams); + } + return Object.defineProperty(XMLDOMConfiguration.prototype, "parameterNames", { + get: function() { + return new XMLDOMStringList(Object.keys(this.defaultParams)); + } + }), XMLDOMConfiguration.prototype.getParameter = function(name) { + return this.params.hasOwnProperty(name) ? this.params[name] : null; + }, XMLDOMConfiguration.prototype.canSetParameter = function(name, value) { + return !0; + }, XMLDOMConfiguration.prototype.setParameter = function(name, value) { + return null != value ? this.params[name] = value : delete this.params[name]; + }, XMLDOMConfiguration; + })(); + }).call(this); +}, function(module, exports) { + (function() { + module.exports = (function() { + function XMLDOMErrorHandler() {} + return XMLDOMErrorHandler.prototype.handleError = function(error) { + throw new Error(error); + }, XMLDOMErrorHandler; + })(); + }).call(this); +}, function(module, exports) { + (function() { + module.exports = (function() { + function XMLDOMStringList(arr) { + this.arr = arr || []; + } + return Object.defineProperty(XMLDOMStringList.prototype, "length", { + get: function() { + return this.arr.length; + } + }), XMLDOMStringList.prototype.item = function(index) { + return this.arr[index] || null; + }, XMLDOMStringList.prototype.contains = function(str) { + return -1 !== this.arr.indexOf(str); + }, XMLDOMStringList; + })(); + }).call(this); +}, function(module, exports) { + (function() { + module.exports = (function() { + function XMLNodeList(nodes) { + this.nodes = nodes; + } + return Object.defineProperty(XMLNodeList.prototype, "length", { + get: function() { + return this.nodes.length || 0; + } + }), XMLNodeList.prototype.clone = function() { + return this.nodes = null; + }, XMLNodeList.prototype.item = function(index) { + return this.nodes[index] || null; + }, XMLNodeList; + })(); + }).call(this); +}, function(module, exports) { + (function() { + module.exports = { + Disconnected: 1, + Preceding: 2, + Following: 4, + Contains: 8, + ContainedBy: 16, + ImplementationSpecific: 32 + }; + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + var NodeType, WriterState, XMLAttribute, XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDocument, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLStringifier, XMLText, getValue, isFunction, isObject, isPlainObject, ref, hasProp = {}.hasOwnProperty; + ref = __webpack_require__(52), isObject = ref.isObject, isFunction = ref.isFunction, + isPlainObject = ref.isPlainObject, getValue = ref.getValue, NodeType = __webpack_require__(22), + XMLDocument = __webpack_require__(506), XMLElement = __webpack_require__(247), XMLCData = __webpack_require__(249), + XMLComment = __webpack_require__(250), XMLRaw = __webpack_require__(257), XMLText = __webpack_require__(258), + XMLProcessingInstruction = __webpack_require__(259), XMLDeclaration = __webpack_require__(251), + XMLDocType = __webpack_require__(252), XMLDTDAttList = __webpack_require__(253), + XMLDTDEntity = __webpack_require__(254), XMLDTDElement = __webpack_require__(255), + XMLDTDNotation = __webpack_require__(256), XMLAttribute = __webpack_require__(507), + XMLStringifier = __webpack_require__(509), XMLStringWriter = __webpack_require__(260), + WriterState = __webpack_require__(161), module.exports = (function() { + function XMLDocumentCB(options, onData, onEnd) { + var writerOptions; + this.name = "?xml", this.type = NodeType.Document, options || (options = {}), writerOptions = {}, + options.writer ? isPlainObject(options.writer) && (writerOptions = options.writer, + options.writer = new XMLStringWriter) : options.writer = new XMLStringWriter, this.options = options, + this.writer = options.writer, this.writerOptions = this.writer.filterOptions(writerOptions), + this.stringify = new XMLStringifier(options), this.onDataCallback = onData || function() {}, + this.onEndCallback = onEnd || function() {}, this.currentNode = null, this.currentLevel = -1, + this.openTags = {}, this.documentStarted = !1, this.documentCompleted = !1, this.root = null; + } + return XMLDocumentCB.prototype.createChildNode = function(node) { + var att, attName, attributes, child, i, len, ref1, ref2; + switch (node.type) { + case NodeType.CData: + this.cdata(node.value); + break; + + case NodeType.Comment: + this.comment(node.value); + break; + + case NodeType.Element: + for (attName in attributes = {}, ref1 = node.attribs) hasProp.call(ref1, attName) && (att = ref1[attName], + attributes[attName] = att.value); + this.node(node.name, attributes); + break; + + case NodeType.Dummy: + this.dummy(); + break; + + case NodeType.Raw: + this.raw(node.value); + break; + + case NodeType.Text: + this.text(node.value); + break; + + case NodeType.ProcessingInstruction: + this.instruction(node.target, node.value); + break; + + default: + throw new Error("This XML node type is not supported in a JS object: " + node.constructor.name); + } + for (i = 0, len = (ref2 = node.children).length; i < len; i++) child = ref2[i], + this.createChildNode(child), child.type === NodeType.Element && this.up(); + return this; + }, XMLDocumentCB.prototype.dummy = function() { + return this; + }, XMLDocumentCB.prototype.node = function(name, attributes, text) { + var ref1; + if (null == name) throw new Error("Missing node name."); + if (this.root && -1 === this.currentLevel) throw new Error("Document can only have one root node. " + this.debugInfo(name)); + return this.openCurrent(), name = getValue(name), null == attributes && (attributes = {}), + attributes = getValue(attributes), isObject(attributes) || (text = (ref1 = [ attributes, text ])[0], + attributes = ref1[1]), this.currentNode = new XMLElement(this, name, attributes), + this.currentNode.children = !1, this.currentLevel++, this.openTags[this.currentLevel] = this.currentNode, + null != text && this.text(text), this; + }, XMLDocumentCB.prototype.element = function(name, attributes, text) { + var child, i, len, oldValidationFlag, ref1, root; + if (this.currentNode && this.currentNode.type === NodeType.DocType) this.dtdElement.apply(this, arguments); else if (Array.isArray(name) || isObject(name) || isFunction(name)) for (oldValidationFlag = this.options.noValidation, + this.options.noValidation = !0, (root = new XMLDocument(this.options).element("TEMP_ROOT")).element(name), + this.options.noValidation = oldValidationFlag, i = 0, len = (ref1 = root.children).length; i < len; i++) child = ref1[i], + this.createChildNode(child), child.type === NodeType.Element && this.up(); else this.node(name, attributes, text); + return this; + }, XMLDocumentCB.prototype.attribute = function(name, value) { + var attName, attValue; + if (!this.currentNode || this.currentNode.children) throw new Error("att() can only be used immediately after an ele() call in callback mode. " + this.debugInfo(name)); + if (null != name && (name = getValue(name)), isObject(name)) for (attName in name) hasProp.call(name, attName) && (attValue = name[attName], + this.attribute(attName, attValue)); else isFunction(value) && (value = value.apply()), + this.options.keepNullAttributes && null == value ? this.currentNode.attribs[name] = new XMLAttribute(this, name, "") : null != value && (this.currentNode.attribs[name] = new XMLAttribute(this, name, value)); + return this; + }, XMLDocumentCB.prototype.text = function(value) { + var node; + return this.openCurrent(), node = new XMLText(this, value), this.onData(this.writer.text(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1), + this; + }, XMLDocumentCB.prototype.cdata = function(value) { + var node; + return this.openCurrent(), node = new XMLCData(this, value), this.onData(this.writer.cdata(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1), + this; + }, XMLDocumentCB.prototype.comment = function(value) { + var node; + return this.openCurrent(), node = new XMLComment(this, value), this.onData(this.writer.comment(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1), + this; + }, XMLDocumentCB.prototype.raw = function(value) { + var node; + return this.openCurrent(), node = new XMLRaw(this, value), this.onData(this.writer.raw(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1), + this; + }, XMLDocumentCB.prototype.instruction = function(target, value) { + var i, insTarget, insValue, len, node; + if (this.openCurrent(), null != target && (target = getValue(target)), null != value && (value = getValue(value)), + Array.isArray(target)) for (i = 0, len = target.length; i < len; i++) insTarget = target[i], + this.instruction(insTarget); else if (isObject(target)) for (insTarget in target) hasProp.call(target, insTarget) && (insValue = target[insTarget], + this.instruction(insTarget, insValue)); else isFunction(value) && (value = value.apply()), + node = new XMLProcessingInstruction(this, target, value), this.onData(this.writer.processingInstruction(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1); + return this; + }, XMLDocumentCB.prototype.declaration = function(version, encoding, standalone) { + var node; + if (this.openCurrent(), this.documentStarted) throw new Error("declaration() must be the first node."); + return node = new XMLDeclaration(this, version, encoding, standalone), this.onData(this.writer.declaration(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1), + this; + }, XMLDocumentCB.prototype.doctype = function(root, pubID, sysID) { + if (this.openCurrent(), null == root) throw new Error("Missing root node name."); + if (this.root) throw new Error("dtd() must come before the root node."); + return this.currentNode = new XMLDocType(this, pubID, sysID), this.currentNode.rootNodeName = root, + this.currentNode.children = !1, this.currentLevel++, this.openTags[this.currentLevel] = this.currentNode, + this; + }, XMLDocumentCB.prototype.dtdElement = function(name, value) { + var node; + return this.openCurrent(), node = new XMLDTDElement(this, name, value), this.onData(this.writer.dtdElement(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1), + this; + }, XMLDocumentCB.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) { + var node; + return this.openCurrent(), node = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue), + this.onData(this.writer.dtdAttList(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1), + this; + }, XMLDocumentCB.prototype.entity = function(name, value) { + var node; + return this.openCurrent(), node = new XMLDTDEntity(this, !1, name, value), this.onData(this.writer.dtdEntity(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1), + this; + }, XMLDocumentCB.prototype.pEntity = function(name, value) { + var node; + return this.openCurrent(), node = new XMLDTDEntity(this, !0, name, value), this.onData(this.writer.dtdEntity(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1), + this; + }, XMLDocumentCB.prototype.notation = function(name, value) { + var node; + return this.openCurrent(), node = new XMLDTDNotation(this, name, value), this.onData(this.writer.dtdNotation(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1), + this; + }, XMLDocumentCB.prototype.up = function() { + if (this.currentLevel < 0) throw new Error("The document node has no parent."); + return this.currentNode ? (this.currentNode.children ? this.closeNode(this.currentNode) : this.openNode(this.currentNode), + this.currentNode = null) : this.closeNode(this.openTags[this.currentLevel]), delete this.openTags[this.currentLevel], + this.currentLevel--, this; + }, XMLDocumentCB.prototype.end = function() { + for (;this.currentLevel >= 0; ) this.up(); + return this.onEnd(); + }, XMLDocumentCB.prototype.openCurrent = function() { + if (this.currentNode) return this.currentNode.children = !0, this.openNode(this.currentNode); + }, XMLDocumentCB.prototype.openNode = function(node) { + var att, chunk, name, ref1; + if (!node.isOpen) { + if (this.root || 0 !== this.currentLevel || node.type !== NodeType.Element || (this.root = node), + chunk = "", node.type === NodeType.Element) { + for (name in this.writerOptions.state = WriterState.OpenTag, chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + "<" + node.name, + ref1 = node.attribs) hasProp.call(ref1, name) && (att = ref1[name], chunk += this.writer.attribute(att, this.writerOptions, this.currentLevel)); + chunk += (node.children ? ">" : "/>") + this.writer.endline(node, this.writerOptions, this.currentLevel), + this.writerOptions.state = WriterState.InsideTag; + } else this.writerOptions.state = WriterState.OpenTag, chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + ""), chunk += this.writer.endline(node, this.writerOptions, this.currentLevel); + return this.onData(chunk, this.currentLevel), node.isOpen = !0; + } + }, XMLDocumentCB.prototype.closeNode = function(node) { + var chunk; + if (!node.isClosed) return "", this.writerOptions.state = WriterState.CloseTag, + chunk = node.type === NodeType.Element ? this.writer.indent(node, this.writerOptions, this.currentLevel) + "" + this.writer.endline(node, this.writerOptions, this.currentLevel) : this.writer.indent(node, this.writerOptions, this.currentLevel) + "]>" + this.writer.endline(node, this.writerOptions, this.currentLevel), + this.writerOptions.state = WriterState.None, this.onData(chunk, this.currentLevel), + node.isClosed = !0; + }, XMLDocumentCB.prototype.onData = function(chunk, level) { + return this.documentStarted = !0, this.onDataCallback(chunk, level + 1); + }, XMLDocumentCB.prototype.onEnd = function() { + return this.documentCompleted = !0, this.onEndCallback(); + }, XMLDocumentCB.prototype.debugInfo = function(name) { + return null == name ? "" : "node: <" + name + ">"; + }, XMLDocumentCB.prototype.ele = function() { + return this.element.apply(this, arguments); + }, XMLDocumentCB.prototype.nod = function(name, attributes, text) { + return this.node(name, attributes, text); + }, XMLDocumentCB.prototype.txt = function(value) { + return this.text(value); + }, XMLDocumentCB.prototype.dat = function(value) { + return this.cdata(value); + }, XMLDocumentCB.prototype.com = function(value) { + return this.comment(value); + }, XMLDocumentCB.prototype.ins = function(target, value) { + return this.instruction(target, value); + }, XMLDocumentCB.prototype.dec = function(version, encoding, standalone) { + return this.declaration(version, encoding, standalone); + }, XMLDocumentCB.prototype.dtd = function(root, pubID, sysID) { + return this.doctype(root, pubID, sysID); + }, XMLDocumentCB.prototype.e = function(name, attributes, text) { + return this.element(name, attributes, text); + }, XMLDocumentCB.prototype.n = function(name, attributes, text) { + return this.node(name, attributes, text); + }, XMLDocumentCB.prototype.t = function(value) { + return this.text(value); + }, XMLDocumentCB.prototype.d = function(value) { + return this.cdata(value); + }, XMLDocumentCB.prototype.c = function(value) { + return this.comment(value); + }, XMLDocumentCB.prototype.r = function(value) { + return this.raw(value); + }, XMLDocumentCB.prototype.i = function(target, value) { + return this.instruction(target, value); + }, XMLDocumentCB.prototype.att = function() { + return this.currentNode && this.currentNode.type === NodeType.DocType ? this.attList.apply(this, arguments) : this.attribute.apply(this, arguments); + }, XMLDocumentCB.prototype.a = function() { + return this.currentNode && this.currentNode.type === NodeType.DocType ? this.attList.apply(this, arguments) : this.attribute.apply(this, arguments); + }, XMLDocumentCB.prototype.ent = function(name, value) { + return this.entity(name, value); + }, XMLDocumentCB.prototype.pent = function(name, value) { + return this.pEntity(name, value); + }, XMLDocumentCB.prototype.not = function(name, value) { + return this.notation(name, value); + }, XMLDocumentCB; + })(); + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + var NodeType, WriterState, XMLWriterBase, hasProp = {}.hasOwnProperty; + NodeType = __webpack_require__(22), XMLWriterBase = __webpack_require__(510), WriterState = __webpack_require__(161), + module.exports = (function(superClass) { + function XMLStreamWriter(stream, options) { + this.stream = stream, XMLStreamWriter.__super__.constructor.call(this, options); + } + return (function(child, parent) { + for (var key in parent) 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; + })(XMLStreamWriter, superClass), XMLStreamWriter.prototype.endline = function(node, options, level) { + return node.isLastRootNode && options.state === WriterState.CloseTag ? "" : XMLStreamWriter.__super__.endline.call(this, node, options, level); + }, XMLStreamWriter.prototype.document = function(doc, options) { + var child, i, j, k, len, len1, ref, ref1, results; + for (i = j = 0, len = (ref = doc.children).length; j < len; i = ++j) (child = ref[i]).isLastRootNode = i === doc.children.length - 1; + for (options = this.filterOptions(options), results = [], k = 0, len1 = (ref1 = doc.children).length; k < len1; k++) child = ref1[k], + results.push(this.writeChildNode(child, options, 0)); + return results; + }, XMLStreamWriter.prototype.attribute = function(att, options, level) { + return this.stream.write(XMLStreamWriter.__super__.attribute.call(this, att, options, level)); + }, XMLStreamWriter.prototype.cdata = function(node, options, level) { + return this.stream.write(XMLStreamWriter.__super__.cdata.call(this, node, options, level)); + }, XMLStreamWriter.prototype.comment = function(node, options, level) { + return this.stream.write(XMLStreamWriter.__super__.comment.call(this, node, options, level)); + }, XMLStreamWriter.prototype.declaration = function(node, options, level) { + return this.stream.write(XMLStreamWriter.__super__.declaration.call(this, node, options, level)); + }, XMLStreamWriter.prototype.docType = function(node, options, level) { + var child, j, len, ref; + if (level || (level = 0), this.openNode(node, options, level), options.state = WriterState.OpenTag, + this.stream.write(this.indent(node, options, level)), this.stream.write(" 0) { + for (this.stream.write(" ["), this.stream.write(this.endline(node, options, level)), + options.state = WriterState.InsideTag, j = 0, len = (ref = node.children).length; j < len; j++) child = ref[j], + this.writeChildNode(child, options, level + 1); + options.state = WriterState.CloseTag, this.stream.write("]"); + } + return options.state = WriterState.CloseTag, this.stream.write(options.spaceBeforeSlash + ">"), + this.stream.write(this.endline(node, options, level)), options.state = WriterState.None, + this.closeNode(node, options, level); + }, XMLStreamWriter.prototype.element = function(node, options, level) { + var att, child, childNodeCount, firstChildNode, j, len, name, ref, ref1; + for (name in level || (level = 0), this.openNode(node, options, level), options.state = WriterState.OpenTag, + this.stream.write(this.indent(node, options, level) + "<" + node.name), ref = node.attribs) hasProp.call(ref, name) && (att = ref[name], + this.attribute(att, options, level)); + if (firstChildNode = 0 === (childNodeCount = node.children.length) ? null : node.children[0], + 0 === childNodeCount || node.children.every((function(e) { + return (e.type === NodeType.Text || e.type === NodeType.Raw) && "" === e.value; + }))) options.allowEmpty ? (this.stream.write(">"), options.state = WriterState.CloseTag, + this.stream.write("")) : (options.state = WriterState.CloseTag, + this.stream.write(options.spaceBeforeSlash + "/>")); else if (!options.pretty || 1 !== childNodeCount || firstChildNode.type !== NodeType.Text && firstChildNode.type !== NodeType.Raw || null == firstChildNode.value) { + for (this.stream.write(">" + this.endline(node, options, level)), options.state = WriterState.InsideTag, + j = 0, len = (ref1 = node.children).length; j < len; j++) child = ref1[j], this.writeChildNode(child, options, level + 1); + options.state = WriterState.CloseTag, this.stream.write(this.indent(node, options, level) + ""); + } else this.stream.write(">"), options.state = WriterState.InsideTag, options.suppressPrettyCount++, + this.writeChildNode(firstChildNode, options, level + 1), options.suppressPrettyCount--, + options.state = WriterState.CloseTag, this.stream.write(""); + return this.stream.write(this.endline(node, options, level)), options.state = WriterState.None, + this.closeNode(node, options, level); + }, XMLStreamWriter.prototype.processingInstruction = function(node, options, level) { + return this.stream.write(XMLStreamWriter.__super__.processingInstruction.call(this, node, options, level)); + }, XMLStreamWriter.prototype.raw = function(node, options, level) { + return this.stream.write(XMLStreamWriter.__super__.raw.call(this, node, options, level)); + }, XMLStreamWriter.prototype.text = function(node, options, level) { + return this.stream.write(XMLStreamWriter.__super__.text.call(this, node, options, level)); + }, XMLStreamWriter.prototype.dtdAttList = function(node, options, level) { + return this.stream.write(XMLStreamWriter.__super__.dtdAttList.call(this, node, options, level)); + }, XMLStreamWriter.prototype.dtdElement = function(node, options, level) { + return this.stream.write(XMLStreamWriter.__super__.dtdElement.call(this, node, options, level)); + }, XMLStreamWriter.prototype.dtdEntity = function(node, options, level) { + return this.stream.write(XMLStreamWriter.__super__.dtdEntity.call(this, node, options, level)); + }, XMLStreamWriter.prototype.dtdNotation = function(node, options, level) { + return this.stream.write(XMLStreamWriter.__super__.dtdNotation.call(this, node, options, level)); + }, XMLStreamWriter; + })(XMLWriterBase); + }).call(this); +}, function(module, exports, __webpack_require__) { + (function() { + "use strict"; + var bom, defaults, defineProperty, events, isEmpty, processItem, processors, sax, setImmediate, bind = function(fn, me) { + return function() { + return fn.apply(me, arguments); + }; + }, hasProp = {}.hasOwnProperty; + sax = __webpack_require__(104), events = __webpack_require__(4), bom = __webpack_require__(1114), + processors = __webpack_require__(511), setImmediate = __webpack_require__(103).setImmediate, + defaults = __webpack_require__(246).defaults, isEmpty = function(thing) { + return "object" == typeof thing && null != thing && 0 === Object.keys(thing).length; + }, processItem = function(processors, item, key) { + var i, len; + for (i = 0, len = processors.length; i < len; i++) item = (0, processors[i])(item, key); + return item; + }, defineProperty = function(obj, key, value) { + var descriptor; + return (descriptor = Object.create(null)).value = value, descriptor.writable = !0, + descriptor.enumerable = !0, descriptor.configurable = !0, Object.defineProperty(obj, key, descriptor); + }, exports.Parser = (function(superClass) { + function Parser(opts) { + var key, ref, value; + if (this.parseStringPromise = bind(this.parseStringPromise, this), this.parseString = bind(this.parseString, this), + this.reset = bind(this.reset, this), this.assignOrPush = bind(this.assignOrPush, this), + this.processAsync = bind(this.processAsync, this), !(this instanceof exports.Parser)) return new exports.Parser(opts); + for (key in this.options = {}, ref = defaults[.2]) hasProp.call(ref, key) && (value = ref[key], + this.options[key] = value); + for (key in opts) hasProp.call(opts, key) && (value = opts[key], this.options[key] = value); + this.options.xmlns && (this.options.xmlnskey = this.options.attrkey + "ns"), this.options.normalizeTags && (this.options.tagNameProcessors || (this.options.tagNameProcessors = []), + this.options.tagNameProcessors.unshift(processors.normalize)), this.reset(); + } + return (function(child, parent) { + for (var key in parent) 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; + })(Parser, superClass), Parser.prototype.processAsync = function() { + var chunk, err; + try { + return this.remaining.length <= this.options.chunkSize ? (chunk = this.remaining, + this.remaining = "", this.saxParser = this.saxParser.write(chunk), this.saxParser.close()) : (chunk = this.remaining.substr(0, this.options.chunkSize), + this.remaining = this.remaining.substr(this.options.chunkSize, this.remaining.length), + this.saxParser = this.saxParser.write(chunk), setImmediate(this.processAsync)); + } catch (error1) { + if (err = error1, !this.saxParser.errThrown) return this.saxParser.errThrown = !0, + this.emit(err); + } + }, Parser.prototype.assignOrPush = function(obj, key, newValue) { + return key in obj ? (obj[key] instanceof Array || defineProperty(obj, key, [ obj[key] ]), + obj[key].push(newValue)) : this.options.explicitArray ? defineProperty(obj, key, [ newValue ]) : defineProperty(obj, key, newValue); + }, Parser.prototype.reset = function() { + var attrkey, charkey, ontext, stack, _this; + return this.removeAllListeners(), this.saxParser = sax.parser(this.options.strict, { + trim: !1, + normalize: !1, + xmlns: this.options.xmlns + }), this.saxParser.errThrown = !1, this.saxParser.onerror = (_this = this, function(error) { + if (_this.saxParser.resume(), !_this.saxParser.errThrown) return _this.saxParser.errThrown = !0, + _this.emit("error", error); + }), this.saxParser.onend = (function(_this) { + return function() { + if (!_this.saxParser.ended) return _this.saxParser.ended = !0, _this.emit("end", _this.resultObject); + }; + })(this), this.saxParser.ended = !1, this.EXPLICIT_CHARKEY = this.options.explicitCharkey, + this.resultObject = null, stack = [], attrkey = this.options.attrkey, charkey = this.options.charkey, + this.saxParser.onopentag = (function(_this) { + return function(node) { + var key, newValue, obj, processedKey, ref; + if ((obj = {})[charkey] = "", !_this.options.ignoreAttrs) for (key in ref = node.attributes) hasProp.call(ref, key) && (attrkey in obj || _this.options.mergeAttrs || (obj[attrkey] = {}), + newValue = _this.options.attrValueProcessors ? processItem(_this.options.attrValueProcessors, node.attributes[key], key) : node.attributes[key], + processedKey = _this.options.attrNameProcessors ? processItem(_this.options.attrNameProcessors, key) : key, + _this.options.mergeAttrs ? _this.assignOrPush(obj, processedKey, newValue) : defineProperty(obj[attrkey], processedKey, newValue)); + return obj["#name"] = _this.options.tagNameProcessors ? processItem(_this.options.tagNameProcessors, node.name) : node.name, + _this.options.xmlns && (obj[_this.options.xmlnskey] = { + uri: node.uri, + local: node.local + }), stack.push(obj); + }; + })(this), this.saxParser.onclosetag = (function(_this) { + return function() { + var cdata, emptyStr, key, node, nodeName, obj, objClone, old, s, xpath; + if (obj = stack.pop(), nodeName = obj["#name"], _this.options.explicitChildren && _this.options.preserveChildrenOrder || delete obj["#name"], + !0 === obj.cdata && (cdata = obj.cdata, delete obj.cdata), s = stack[stack.length - 1], + obj[charkey].match(/^\s*$/) && !cdata ? (emptyStr = obj[charkey], delete obj[charkey]) : (_this.options.trim && (obj[charkey] = obj[charkey].trim()), + _this.options.normalize && (obj[charkey] = obj[charkey].replace(/\s{2,}/g, " ").trim()), + obj[charkey] = _this.options.valueProcessors ? processItem(_this.options.valueProcessors, obj[charkey], nodeName) : obj[charkey], + 1 === Object.keys(obj).length && charkey in obj && !_this.EXPLICIT_CHARKEY && (obj = obj[charkey])), + isEmpty(obj) && (obj = "function" == typeof _this.options.emptyTag ? _this.options.emptyTag() : "" !== _this.options.emptyTag ? _this.options.emptyTag : emptyStr), + null != _this.options.validator && (xpath = "/" + (function() { + var i, len, results; + for (results = [], i = 0, len = stack.length; i < len; i++) node = stack[i], results.push(node["#name"]); + return results; + })().concat(nodeName).join("/"), (function() { + var err; + try { + obj = _this.options.validator(xpath, s && s[nodeName], obj); + } catch (error1) { + return err = error1, _this.emit("error", err); + } + })()), _this.options.explicitChildren && !_this.options.mergeAttrs && "object" == typeof obj) if (_this.options.preserveChildrenOrder) { + if (s) { + for (key in s[_this.options.childkey] = s[_this.options.childkey] || [], objClone = {}, + obj) hasProp.call(obj, key) && defineProperty(objClone, key, obj[key]); + s[_this.options.childkey].push(objClone), delete obj["#name"], 1 === Object.keys(obj).length && charkey in obj && !_this.EXPLICIT_CHARKEY && (obj = obj[charkey]); + } + } else node = {}, _this.options.attrkey in obj && (node[_this.options.attrkey] = obj[_this.options.attrkey], + delete obj[_this.options.attrkey]), !_this.options.charsAsChildren && _this.options.charkey in obj && (node[_this.options.charkey] = obj[_this.options.charkey], + delete obj[_this.options.charkey]), Object.getOwnPropertyNames(obj).length > 0 && (node[_this.options.childkey] = obj), + obj = node; + return stack.length > 0 ? _this.assignOrPush(s, nodeName, obj) : (_this.options.explicitRoot && (old = obj, + defineProperty(obj = {}, nodeName, old)), _this.resultObject = obj, _this.saxParser.ended = !0, + _this.emit("end", _this.resultObject)); + }; + })(this), ontext = (function(_this) { + return function(text) { + var charChild, s; + if (s = stack[stack.length - 1]) return s[charkey] += text, _this.options.explicitChildren && _this.options.preserveChildrenOrder && _this.options.charsAsChildren && (_this.options.includeWhiteChars || "" !== text.replace(/\\n/g, "").trim()) && (s[_this.options.childkey] = s[_this.options.childkey] || [], + (charChild = { + "#name": "__text__" + })[charkey] = text, _this.options.normalize && (charChild[charkey] = charChild[charkey].replace(/\s{2,}/g, " ").trim()), + s[_this.options.childkey].push(charChild)), s; + }; + })(this), this.saxParser.ontext = ontext, this.saxParser.oncdata = function(text) { + var s; + if (s = ontext(text)) return s.cdata = !0; + }; + }, Parser.prototype.parseString = function(str, cb) { + var err; + null != cb && "function" == typeof cb && (this.on("end", (function(result) { + return this.reset(), cb(null, result); + })), this.on("error", (function(err) { + return this.reset(), cb(err); + }))); + try { + return "" === (str = str.toString()).trim() ? (this.emit("end", null), !0) : (str = bom.stripBOM(str), + this.options.async ? (this.remaining = str, setImmediate(this.processAsync), this.saxParser) : this.saxParser.write(str).close()); + } catch (error1) { + if (err = error1, !this.saxParser.errThrown && !this.saxParser.ended) return this.emit("error", err), + this.saxParser.errThrown = !0; + if (this.saxParser.ended) throw err; + } + }, Parser.prototype.parseStringPromise = function(str) { + return new Promise((_this = this, function(resolve, reject) { + return _this.parseString(str, (function(err, value) { + return err ? reject(err) : resolve(value); + })); + })); + var _this; + }, Parser; + })(events), exports.parseString = function(str, a, b) { + var cb, options; + return null != b ? ("function" == typeof b && (cb = b), "object" == typeof a && (options = a)) : ("function" == typeof a && (cb = a), + options = {}), new exports.Parser(options).parseString(str, cb); + }, exports.parseStringPromise = function(str, a) { + var options; + return "object" == typeof a && (options = a), new exports.Parser(options).parseStringPromise(str); + }; + }).call(this); +}, function(module, exports) { + (function() { + "use strict"; + exports.stripBOM = function(str) { + return "\ufeff" === str[0] ? str.substring(1) : str; + }; + }).call(this); +}, function(module, exports, __webpack_require__) { + var c, char, crc32, k, len, log, ref; + for (crc32 = __webpack_require__(1116), log = __webpack_require__(245), c = {}, + k = 0, len = (ref = [ ".", "\n", "\r", "=" ]).length; k < len; k++) c[char = ref[k]] = char.charCodeAt(0); + module.exports = function(input) { + var buffer, code, filename, i, j, length, line, processLine; + for (line = [], filename = null, buffer = new Buffer(input.length), i = 0, processLine = function() { + var calc, calc2, code, escape, l, len1, match, pcrc32, ref1, results; + if (0 !== line.length) { + if (line[0] === (ref1 = line[1]) && ref1 === c["."] && line.shift(), !(match = new Buffer(line.slice(0, 7)).toString().match(/^\=(ybegin|ypart|yend)/))) { + for (escape = !1, results = [], l = 0, len1 = line.length; l < len1; l++) (code = line[l]) !== c["="] || escape ? (escape && (code -= 64, + escape = !1), code -= 42, results.push(buffer[i++] = code)) : results.push(escape = !0); + return results; + } + switch (match[1]) { + case "ybegin": + (match = new Buffer(line).toString().match(/name\=(.*)/)) && (filename = match[1]); + break; + + case "yend": + buffer = buffer.slice(0, i), (pcrc32 = new Buffer(line).toString().match(/pcrc32\=([^\s]*)/)) && (calc = crc32.unsigned(buffer).toString(16).toLowerCase().replace(/^0+/, "")) !== (calc2 = pcrc32[1].toLowerCase().replace(/^0+/, "")) && log.err("File " + filename.bold + " crc fail, expected " + calc2 + " got " + calc); + } + } + }, j = 0, length = input.length; j < length; ) (code = input[j++]) !== c["\n"] && code !== c["\r"] ? line.push(code) : (processLine(), + line = []); + return processLine(), input = null, [ filename, buffer ]; + }; +}, function(module, exports, __webpack_require__) { + var Buffer = __webpack_require__(10).Buffer, CRC_TABLE = [ 0, 1996959894, 3993919788, 2567524794, 124634137, 1886057615, 3915621685, 2657392035, 249268274, 2044508324, 3772115230, 2547177864, 162941995, 2125561021, 3887607047, 2428444049, 498536548, 1789927666, 4089016648, 2227061214, 450548861, 1843258603, 4107580753, 2211677639, 325883990, 1684777152, 4251122042, 2321926636, 335633487, 1661365465, 4195302755, 2366115317, 997073096, 1281953886, 3579855332, 2724688242, 1006888145, 1258607687, 3524101629, 2768942443, 901097722, 1119000684, 3686517206, 2898065728, 853044451, 1172266101, 3705015759, 2882616665, 651767980, 1373503546, 3369554304, 3218104598, 565507253, 1454621731, 3485111705, 3099436303, 671266974, 1594198024, 3322730930, 2970347812, 795835527, 1483230225, 3244367275, 3060149565, 1994146192, 31158534, 2563907772, 4023717930, 1907459465, 112637215, 2680153253, 3904427059, 2013776290, 251722036, 2517215374, 3775830040, 2137656763, 141376813, 2439277719, 3865271297, 1802195444, 476864866, 2238001368, 4066508878, 1812370925, 453092731, 2181625025, 4111451223, 1706088902, 314042704, 2344532202, 4240017532, 1658658271, 366619977, 2362670323, 4224994405, 1303535960, 984961486, 2747007092, 3569037538, 1256170817, 1037604311, 2765210733, 3554079995, 1131014506, 879679996, 2909243462, 3663771856, 1141124467, 855842277, 2852801631, 3708648649, 1342533948, 654459306, 3188396048, 3373015174, 1466479909, 544179635, 3110523913, 3462522015, 1591671054, 702138776, 2966460450, 3352799412, 1504918807, 783551873, 3082640443, 3233442989, 3988292384, 2596254646, 62317068, 1957810842, 3939845945, 2647816111, 81470997, 1943803523, 3814918930, 2489596804, 225274430, 2053790376, 3826175755, 2466906013, 167816743, 2097651377, 4027552580, 2265490386, 503444072, 1762050814, 4150417245, 2154129355, 426522225, 1852507879, 4275313526, 2312317920, 282753626, 1742555852, 4189708143, 2394877945, 397917763, 1622183637, 3604390888, 2714866558, 953729732, 1340076626, 3518719985, 2797360999, 1068828381, 1219638859, 3624741850, 2936675148, 906185462, 1090812512, 3747672003, 2825379669, 829329135, 1181335161, 3412177804, 3160834842, 628085408, 1382605366, 3423369109, 3138078467, 570562233, 1426400815, 3317316542, 2998733608, 733239954, 1555261956, 3268935591, 3050360625, 752459403, 1541320221, 2607071920, 3965973030, 1969922972, 40735498, 2617837225, 3943577151, 1913087877, 83908371, 2512341634, 3803740692, 2075208622, 213261112, 2463272603, 3855990285, 2094854071, 198958881, 2262029012, 4057260610, 1759359992, 534414190, 2176718541, 4139329115, 1873836001, 414664567, 2282248934, 4279200368, 1711684554, 285281116, 2405801727, 4167216745, 1634467795, 376229701, 2685067896, 3608007406, 1308918612, 956543938, 2808555105, 3495958263, 1231636301, 1047427035, 2932959818, 3654703836, 1088359270, 936918e3, 2847714899, 3736837829, 1202900863, 817233897, 3183342108, 3401237130, 1404277552, 615818150, 3134207493, 3453421203, 1423857449, 601450431, 3009837614, 3294710456, 1567103746, 711928724, 3020668471, 3272380065, 1510334235, 755167117 ]; + function ensureBuffer(input) { + if (Buffer.isBuffer(input)) return input; + var hasNewBufferAPI = "function" == typeof Buffer.alloc && "function" == typeof Buffer.from; + if ("number" == typeof input) return hasNewBufferAPI ? Buffer.alloc(input) : new Buffer(input); + if ("string" == typeof input) return hasNewBufferAPI ? Buffer.from(input) : new Buffer(input); + throw new Error("input must be buffer, number, or string, received " + typeof input); + } + function bufferizeInt(num) { + var tmp = ensureBuffer(4); + return tmp.writeInt32BE(num, 0), tmp; + } + function _crc32(buf, previous) { + buf = ensureBuffer(buf), Buffer.isBuffer(previous) && (previous = previous.readUInt32BE(0)); + for (var crc = -1 ^ ~~previous, n = 0; n < buf.length; n++) crc = CRC_TABLE[255 & (crc ^ buf[n])] ^ crc >>> 8; + return -1 ^ crc; + } + function crc32() { + return bufferizeInt(_crc32.apply(null, arguments)); + } + "undefined" != typeof Int32Array && (CRC_TABLE = new Int32Array(CRC_TABLE)), crc32.signed = function() { + return _crc32.apply(null, arguments); + }, crc32.unsigned = function() { + return _crc32.apply(null, arguments) >>> 0; + }, module.exports = crc32; +}, function(module, exports) { + var subscribers = {}, requestIds = []; + function getUniqueId() { + const idStr = "" + Math.random().toString(16).slice(2); + return requestIds[idStr] ? getUniqueId() : idStr; + } + function isStillExpected(segmentId) { + return Object.values(expectedSegments).flat().includes(segmentId); + } + var expectedSegments = {}, cache = {}, cacheSize = 0; + module.exports = { + expected: segments => { + var segmentIds = segments.map((el => `${el.group}.${el.article}`)), requestId = getUniqueId(); + return requestIds.push(requestId), expectedSegments[requestId] || (expectedSegments[requestId] = []), + expectedSegments[requestId] = expectedSegments[requestId].concat(segmentIds), requestId; + }, + subscribe: (requestId, group, article, cb) => { + var segmentId = `${group}.${article}`, fn = (err, buffer, group, article, bytes) => { + if (expectedSegments[requestId]) { + var segIdx = expectedSegments[requestId].findIndex((el => el === segmentId)); + segIdx > -1 && expectedSegments[requestId].splice(segIdx, 1), expectedSegments[requestId].length || delete expectedSegments[requestId]; + } + return cache[segmentId] && (isStillExpected(segmentId) || (cacheSize -= cache[segmentId][1], + delete cache[segmentId])), cb(err, buffer, group, article, bytes); + }; + if (!cache[segmentId]) return subscribers[segmentId] ? (subscribers[segmentId].push(fn), + !1) : (subscribers[segmentId] = [ fn ], !0); + fn(null, cache[segmentId][0], group, article, cache[segmentId][1]); + }, + pushSegment: (err, buffer, group, article, bytes) => { + var segmentId = `${group}.${article}`; + if ((subscribers[segmentId] || []).length) { + for (;subscribers[segmentId].length; ) subscribers[segmentId].shift()(err, buffer, group, article, bytes); + delete subscribers[segmentId], buffer && isStillExpected(segmentId) && !cache[segmentId] && cacheSize < 0 && (cache[segmentId] = [ buffer, bytes ], + cacheSize += bytes); + } + } + }; }, function(module, exports, __webpack_require__) { (function(__dirname) { - var exec = __webpack_require__(31).exec, path = __webpack_require__(4); + var exec = __webpack_require__(32).exec, path = __webpack_require__(5); function escape(s) { return s.replace(/"/g, '\\"'); } @@ -92140,7 +97459,7 @@ }; }).call(this, "/"); }, function(module, exports, __webpack_require__) { - const store = __webpack_require__(228), getRouter = __webpack_require__(1037), getRarStream = __webpack_require__(472); + const store = __webpack_require__(162), getRouter = __webpack_require__(1120), getRarStream = __webpack_require__(514); module.exports = { router: getRouter, create: rarUrls => { @@ -92159,24 +97478,27 @@ } }; }, function(module, exports, __webpack_require__) { - const Router = __webpack_require__(469), bodyParser = __webpack_require__(106), getRarStream = __webpack_require__(472), getContentType = __webpack_require__(1147), store = __webpack_require__(228); + const Router = __webpack_require__(108), bodyParser = __webpack_require__(50), getRarStream = __webpack_require__(514), getContentType = __webpack_require__(1230), keyHandler = (__webpack_require__(162), + __webpack_require__(272), new (__webpack_require__(4)), __webpack_require__(1231)); module.exports = function() { const router = Router(); - return router.use(bodyParser.json()), router.post("/create", ((req, res) => { - Array.isArray(req.body) || res.status(500).send("Cannot parse JSON data"); - const key = store.set(req.body); - res.setHeader("Content-Length", JSON.stringify({ - key: key - }).length + ""), res.setHeader("Content-Type", "application/json"), res.end(JSON.stringify({ - key: key - })); - })), router.get("/stream", (async (req, res) => { + return router.use(bodyParser.json()), router.post("/create/:createKey", keyHandler.createKey.bind(null, "rar", null, null)), + router.all("/create", keyHandler.createKey.bind(null, "rar", null, null)), router.get("/stream", (async (req, res) => { + try { + await keyHandler.waitForKey(req); + } catch (e) { + return console.error(e), res.statusCode = 500, void res.end(); + } let rarInnerFile; try { rarInnerFile = await getRarStream(req); } catch (e) { return console.error(e), res.statusCode = 500, void res.end(); } + if (!rarInnerFile) { + const errMsg = "There was an error with the rar parser."; + return console.error(Error(errMsg)), res.statusCode = 500, void res.end(errMsg); + } if ("HEAD" === req.method) return res.statusCode = 204, res.setHeader("Accept-Ranges", "bytes"), res.setHeader("Content-Length", rarInnerFile.length + ""), res.setHeader("Content-Type", getContentType(rarInnerFile)), void res.end(); @@ -92190,15 +97512,18 @@ const chunksize = end - start + 1; res.setHeader("Content-Length", chunksize + ""); } else res.statusCode = 200, res.setHeader("Content-Length", fileSize + ""); - rarInnerFile.createReadStream({ + const readable = await rarInnerFile.createReadStream({ start: start, end: end - }).pipe(res); + }); + req.on("close", (function() { + readable.stream.request.abort(); + })), readable.pipe(res); })), router; }; }, function(module, exports, __webpack_require__) { "use strict"; - var debug = __webpack_require__(8)("router:route"), flatten = __webpack_require__(470).flatten, Layer = __webpack_require__(471), methods = __webpack_require__(61), slice = Array.prototype.slice, defer = "function" == typeof setImmediate ? setImmediate : function(fn) { + var debug = __webpack_require__(9)("router:route"), flatten = __webpack_require__(512).flatten, Layer = __webpack_require__(513), methods = __webpack_require__(68), slice = Array.prototype.slice, defer = "function" == typeof setImmediate ? setImmediate : function(fn) { process.nextTick(fn.bind.apply(fn, arguments)); }; function Route(path) { @@ -92273,11 +97598,11 @@ } return value; } - var _class, _class2, _class3, _class4; + var _class, _class2, _class3, _class4, _class5, _class6, _class7; Object.defineProperty(exports, "__esModule", { value: !0 }); - var _events = __webpack_require__(5), RXX_EXTENSION = /\.R(\d\d)$|.RAR$/i, RAR_EXTENSION = /.RAR$/i, PARTXX_RAR_EXTENSION = /.PART(\d\d).RAR/i, makeRarFileBundle = (fileMedias = []) => ((fileMedias = []) => fileMedias.filter((file => file.name && file.name.match(PARTXX_RAR_EXTENSION))).length > 0)(fileMedias) ? new class { + var _events = __webpack_require__(4), RXX_EXTENSION = /\.R(\d\d?\d?\d?\d?\d?)$|\.RAR$/i, RAR_EXTENSION = /\.RAR$/i, PARTXX_RAR_EXTENSION = /\.PART(\d\d?\d?\d?\d?)\.RAR$/i, makeRarFileBundle = (fileMedias = []) => ((fileMedias = []) => fileMedias.filter((file => file.name && file.name.match(PARTXX_RAR_EXTENSION))).length > 0)(fileMedias) ? new class { constructor(fileMedias = []) { this.fileMedias = fileMedias, this.fileMedias.length > 0 && (this.filter(), this.sort()); } @@ -92349,18 +97674,18 @@ super(options), this.rarFileChunks = rarFileChunks; } pushData(data) { - this.push(data) || _optionalChain([ this, "access", _ => _.stream, "optionalAccess", _2 => _2.pause, "call", _3 => _3() ]); + this.push(data) || _optionalChain([ this, "access", _2 => _2.stream, "optionalAccess", _3 => _3.pause, "call", _4 => _4() ]); } get isStarted() { return !!this.stream; } - next() { + async next() { const chunk = this.rarFileChunks.shift(); - chunk ? (this.stream = chunk.getStream(), _optionalChain([ this, "access", _4 => _4.stream, "optionalAccess", _5 => _5.on, "call", _6 => _6("data", (data => this.pushData(data))) ]), - _optionalChain([ this, "access", _7 => _7.stream, "optionalAccess", _8 => _8.on, "call", _9 => _9("end", (() => this.next())) ])) : this.push(null); + chunk ? (this.stream = await chunk.getStream(), _optionalChain([ this, "access", _5 => _5.stream, "optionalAccess", _6 => _6.on, "call", _7 => _7("data", (data => this.pushData(data))) ]), + _optionalChain([ this, "access", _8 => _8.stream, "optionalAccess", _9 => _9.on, "call", _10 => _10("end", (() => this.next())) ])) : this.push(null); } _read() { - this.isStarted ? _optionalChain([ this, "access", _10 => _10.stream, "optionalAccess", _11 => _11.resume, "call", _12 => _12() ]) : this.next(); + this.isStarted ? _optionalChain([ this, "access", _11 => _11.stream, "optionalAccess", _12 => _12.resume, "call", _13 => _13() ]) : this.next(); } }, streamToBuffer = async stream => new Promise(((resolve, reject) => { const buffers = []; @@ -92399,20 +97724,23 @@ reserved1: this.buffer.readUInt16LE(7), reserved2: this.buffer.readUInt32LE(9) }; - return Object.assign({ - hasVolumeAttributes: 0 != (1 & (parsedVars = vars).flags), - hasComment: 0 != (2 & parsedVars.flags), - isLocked: 0 != (4 & parsedVars.flags), - hasSolidAttributes: 0 != (8 & parsedVars.flags), - isNewNameScheme: 0 != (16 & parsedVars.flags), - hasAuthInfo: 0 != (32 & parsedVars.flags), - hasRecovery: 0 != (64 & parsedVars.flags), - isBlockEncoded: 0 != (128 & parsedVars.flags), - isFirstVolume: 0 != (256 & parsedVars.flags) - }, vars); + return { + ...(parsedVars = vars, { + hasVolumeAttributes: 0 != (1 & parsedVars.flags), + hasComment: 0 != (2 & parsedVars.flags), + isLocked: 0 != (4 & parsedVars.flags), + hasSolidAttributes: 0 != (8 & parsedVars.flags), + isNewNameScheme: 0 != (16 & parsedVars.flags), + hasAuthInfo: 0 != (32 & parsedVars.flags), + hasRecovery: 0 != (64 & parsedVars.flags), + isBlockEncoded: 0 != (128 & parsedVars.flags), + isFirstVolume: 0 != (256 & parsedVars.flags) + }), + ...vars + }; var parsedVars; } - }).__initStatic2(), _class2), FileHeaderParser = ((_class3 = class { + }).__initStatic2(), _class2), nodeMajorVersion = parseInt((((process || {}).version || "").split(".")[0] || "").substring(1)), FileHeaderParser = ((_class3 = class { constructor(buffer) { _class3.prototype.__init.call(this), this.buffer = buffer; } @@ -92432,9 +97760,9 @@ } } parseFileName(parsedVars) { - let nameBuffer = this.buffer.subarray(this.offset, this.offset + parsedVars.nameSize); - nameBuffer = Buffer.isBuffer(nameBuffer) ? nameBuffer : Buffer.from(nameBuffer), - parsedVars.name = nameBuffer.toString("utf8"); + var buff, start, end; + parsedVars.name = (buff = this.buffer, start = this.offset, end = this.offset + parsedVars.nameSize, + buff[nodeMajorVersion < 16 ? "slice" : "subarray"](start, end)).toString("utf8"); } parseFlags(parsedVars) { return { @@ -92493,7 +97821,10 @@ attributes: attributes, name: "" }; - const boolFlags = this.parseFlags(vars), header = Object.assign(vars, boolFlags); + const boolFlags = this.parseFlags(vars), header = { + ...vars, + ...boolFlags + }; return this.handleHighFileSize(header), this.parseFileName(header), this.offset = 0, header; } @@ -92512,14 +97843,318 @@ size: this.headerBuffer.readUInt16LE(5) }; } - }).__initStatic4(), _class4); - function flatten(ary) { - let ret = []; - for (let i = 0; i < ary.length; i++) Array.isArray(ary[i]) ? ret = ret.concat(flatten(ary[i])) : ret.push(ary[i]); - return ret; + }).__initStatic4(), _class4), nodeMajorVersion2 = parseInt((((process || {}).version || "").split(".")[0] || "").substring(1)); + function subarray2(buff, start, end) { + return buff[nodeMajorVersion2 < 16 ? "slice" : "subarray"](start, end); + } + var RawRead = ((_class5 = class _RawRead { + constructor(rarFile) { + this.srcFile = rarFile, this.Data = Buffer.alloc(0), this.ReadPos = 0; + } + reset() { + this.Data.fill(null), this.ReadPos = 0; + } + async Read(size) { + return this.Data = Buffer.concat([ this.Data, await this.srcFile.read(size) ]), + this.Data.length; + } + Size() { + return this.Data.length; + } + getBytes(length) { + const start = this.ReadPos, end = this.ReadPos + length; + return this.ReadPos += length, subarray2(this.Data, start, end); + } + _getInteger(bytes) { + if (this.ReadPos + bytes >= this.Data.length) return 0; + const Result = this.Data.readUIntLE(this.ReadPos, bytes); + return this.ReadPos += bytes, Result; + } + getDword() { + return this._getInteger(4); + } + getVarInt() { + let result = 0, multiplier = 1; + for (let shift = 0; this.ReadPos < this.Data.length && shift < 64; shift += 7) { + const byte = this.Data[this.ReadPos++]; + if (result += (127 & byte) * multiplier, multiplier *= 128, 0 == (128 & byte)) break; + } + return result; + } + GetCRC50() { + return _RawRead.CRC32(subarray2(this.Data, 4)); + } + static __initStatic5() { + this._CRC_table = new Uint32Array(256).map(((_, c) => { + for (let i = 0; i < 8; i++) c = 1 & c ? 3988292384 ^ c >>> 1 : c >>> 1; + return c; + })); + } + static CRC32(chunk) { + for (var crc = 4294967295, i = 0, iTop = chunk.length; i < iTop; i++) crc = crc >>> 8 ^ _RawRead._CRC_table[255 & (crc ^ chunk[i])]; + return (-1 ^ crc) >>> 0; + } + }).__initStatic5(), _class5), HEADER_TYPE = Object.freeze({ + HEAD_MAIN: 1, + HEAD_FILE: 2, + HEAD_SERVICE: 3, + HEAD_CRYPT: 4, + HEAD_ENDARC: 5 + }), HOST_SYSTEM = Object.freeze({ + HOST5_WINDOWS: 0, + HOST5_UNIX: 1 + }), HOST_SYSTEM_TYPE = Object.freeze({ + HSYS_WINDOWS: 0, + HSYS_UNIX: 1, + HSYS_UNKNOWN: 2 + }), BaseBlock = _class6 = class { + constructor() { + _class6.prototype.__init2.call(this), _class6.prototype.__init3.call(this), _class6.prototype.__init4.call(this), + _class6.prototype.__init5.call(this), _class6.prototype.__init6.call(this), _class6.prototype.__init7.call(this), + _class6.prototype.__init8.call(this), _class6.prototype.__init9.call(this), _class6.prototype.__init10.call(this), + _class6.prototype.__init11.call(this), _class6.prototype.__init12.call(this), _class6.prototype.__init13.call(this), + _class6.prototype.__init14.call(this), _class6.prototype.__init15.call(this), _class6.prototype.__init16.call(this), + _class6.prototype.__init17.call(this), _class6.prototype.__init18.call(this), _class6.prototype.__init19.call(this), + _class6.prototype.__init20.call(this), _class6.prototype.__init21.call(this), _class6.prototype.__init22.call(this), + _class6.prototype.__init23.call(this), _class6.prototype.__init24.call(this), _class6.prototype.__init25.call(this), + _class6.prototype.__init26.call(this), _class6.prototype.__init27.call(this), _class6.prototype.__init28.call(this), + _class6.prototype.__init29.call(this), _class6.prototype.__init30.call(this), _class6.prototype.__init31.call(this), + _class6.prototype.__init32.call(this), _class6.prototype.__init33.call(this), _class6.prototype.__init34.call(this); + } + reset() { + this.headerType = 0, this.HeadCRC = 0, this.Flags = 0, this.HeadSize = 0, this.SkipIfUnknow = !1, + this.ExtraSize = 0, this.DataSize = 0, this.VolNumber = 0, this.locator = !1, this.qopenOffset = 0, + this.LargeFile = !1, this.PackSize = 0, this.FileFlags = 0, this.UnpSize = 0, this.UnknownUnpSize = !1, + this.MaxSize = 0, this.FileAttr = 0, this.FileHash = { + type: null, + CRC32: 0 + }, this.Method = 0, this.UnpVer = 0, this.HostOS = 0, this.Inherited = !1, this.HSType = null, + this.SplitBefore = !1, this.SplitAfter = !1, this.SubBlock = !1, this.Dir = !1, + this.WinSize = 0, this.Name = "", this.mtime = null, this.ctime = null, this.atime = null, + this.NextVolume = !1; + } + __init2() { + this.headerType = 0; + } + __init3() { + this.HeadCRC = 0; + } + __init4() { + this.Flags = 0; + } + __init5() { + this.HeadSize = 0; + } + __init6() { + this.SkipIfUnknow = !1; + } + __init7() { + this.ExtraSize = 0; + } + __init8() { + this.DataSize = 0; + } + __init9() { + this.VolNumber = 0; + } + __init10() { + this.locator = !1; + } + __init11() { + this.qopenOffset = 0; + } + __init12() { + this.LargeFile = !1; + } + __init13() { + this.PackSize = 0; + } + __init14() { + this.FileFlags = 0; + } + __init15() { + this.UnpSize = 0; + } + __init16() { + this.UnknownUnpSize = !1; + } + __init17() { + this.MaxSize = 0; + } + __init18() { + this.FileAttr = 0; + } + __init19() { + this.FileHash = { + type: null, + CRC32: 0 + }; + } + __init20() { + this.Method = 0; + } + __init21() { + this.UnpVer = 0; + } + __init22() { + this.HostOS = 0; + } + __init23() { + this.Inherited = !1; + } + __init24() { + this.HSType = null; + } + __init25() { + this.SplitBefore = !1; + } + __init26() { + this.SplitAfter = !1; + } + __init27() { + this.SubBlock = !1; + } + __init28() { + this.Dir = !1; + } + __init29() { + this.WinSize = 0; + } + __init30() { + this.Name = ""; + } + __init31() { + this.mtime = null; + } + __init32() { + this.ctime = null; + } + __init33() { + this.atime = null; + } + __init34() { + this.NextVolume = !1; + } + }, AcRead = _class7 = class { + constructor(readable) { + _class7.prototype.__init35.call(this), _class7.prototype.__init36.call(this), _class7.prototype.__init37.call(this), + this.shortBlock = new BaseBlock, this.file = readable; + } + __init35() { + this.ReadPos = 0; + } + __init36() { + this.CurBlockPos = 0; + } + __init37() { + this.NextBlockPos = 0; + } + async readHeader50(onlySize) { + const Raw = new RawRead(this.file); + if (await Raw.Read(7) < 7) return console.log("Failed to read the first block header"), + 0; + this.shortBlock.reset(), this.shortBlock.HeadCRC = Raw.getDword(); + let SizeBytes = Raw.ReadPos; + const BlockSize = Raw.getVarInt(); + if (SizeBytes = Raw.ReadPos - SizeBytes, 0 == BlockSize || 0 == SizeBytes) return console.log("Block size is 0"), + 0; + const SizeToRead = BlockSize - (7 - SizeBytes - 4), HeaderSize = 4 + SizeBytes + BlockSize; + if (onlySize) return HeaderSize; + if (SizeToRead < 0 || HeaderSize < 7) return console.log("Invalid block size or header size"), + 0; + if (await Raw.Read(SizeToRead), Raw.Size() < HeaderSize) return console.log("Failed to read the entire block header"), + 0; + const HeaderCRC = Raw.GetCRC50(); + if (Raw.ReadPos, this.shortBlock.headerType = Raw.getVarInt(), this.shortBlock.Flags = Raw.getVarInt(), + this.shortBlock.SkipIfUnknow = 0 != (4 & this.shortBlock.Flags), this.shortBlock.HeadSize = HeaderSize, + this.CurHeaderType = this.shortBlock.headerType, this.shortBlock.HeadCRC != HeaderCRC && console.log("Bad CRC"), + this.shortBlock.ExtraSize = 0 != (1 & this.shortBlock.Flags) ? Raw.getVarInt() : 0, + this.shortBlock.ExtraSize >= this.shortBlock.HeadSize) return console.log("Extra size is too large"), + 0; + switch (this.shortBlock.DataSize = 0 != (2 & this.shortBlock.Flags) ? Raw.getVarInt() : 0, + this.NextBlockPos = this.CurBlockPos + this.shortBlock.HeadSize + this.shortBlock.DataSize || 0, + this.shortBlock.headerType) { + case HEADER_TYPE.HEAD_CRYPT: + console.log("Crypt header"); + break; + + case HEADER_TYPE.HEAD_MAIN: + { + const ArcFlags2 = Raw.getVarInt(); + this.shortBlock.VolNumber = 0 != (2 & ArcFlags2) ? Raw.getVarInt() : 0; + break; + } + + case HEADER_TYPE.HEAD_FILE: + case HEADER_TYPE.HEAD_SERVICE: + { + this.shortBlock.headerType, HEADER_TYPE.HEAD_FILE, this.shortBlock.LargeFile = !0, + this.shortBlock.PackSize = this.shortBlock.DataSize, this.shortBlock.FileFlags = Raw.getVarInt(), + this.shortBlock.UnpSize = Raw.getVarInt(), this.shortBlock.UnknownUnpSize = 0 != (8 & this.shortBlock.FileFlags), + this.shortBlock.UnknownUnpSize && (this.shortBlock.UnpSize = 1 / 0), this.shortBlock.MaxSize = Math.max(this.shortBlock.UnpSize, this.shortBlock.PackSize), + this.shortBlock.FileAttr = Raw.getVarInt(), 0 != (2 & this.shortBlock.FileFlags) && (this.shortBlock.mtime = new Date(1e3 * Raw.getDword())), + this.shortBlock.FileHash = { + type: null, + CRC32: null + }, 0 != (4 & this.shortBlock.FileFlags) && (this.shortBlock.FileHash.type = "crc32", + this.shortBlock.FileHash.CRC32 = Raw.getDword()); + const CompInfo = Raw.getVarInt(); + this.shortBlock.Method = CompInfo >> 7 & 7; + const UnpVer = 63 & CompInfo; + this.shortBlock.UnpVer = 0 == UnpVer ? 50 : 1 == UnpVer ? 70 : 9999, this.shortBlock.HostOS = Raw.getVarInt(); + const NameSize = Raw.getVarInt(); + this.shortBlock.Inherited = 0 != (64 & this.shortBlock.Flags), this.shortBlock.HSType = HOST_SYSTEM_TYPE.HSYS_UNKNOWN, + this.shortBlock.HostOS == HOST_SYSTEM.HOST5_UNIX ? this.shortBlock.HSType = HOST_SYSTEM.HSYS_UNIX : this.shortBlock.HostOS == HOST_SYSTEM.HOST5_WINDOWS && (this.shortBlock.HSType = HOST_SYSTEM_TYPE.HSYS_WINDOWS), + this.shortBlock.SplitBefore = 0 != (8 & this.shortBlock.Flags), this.shortBlock.SplitAfter = 0 != (16 & this.shortBlock.Flags), + this.shortBlock.SubBlock = 0 != (32 & this.shortBlock.Flags), this.shortBlock.Dir = 0 != (1 & this.shortBlock.FileFlags), + this.shortBlock.Dir || UnpVer > 1 ? this.shortBlock.WinSize = 0 : (this.shortBlock.WinSize = 131072 << (CompInfo >> 10 & (0 == UnpVer ? 15 : 31)), + 1 == UnpVer && (this.shortBlock.WinSize += this.shortBlock.WinSize / 32 * (CompInfo >> 15 & 31), + 0 != (1048576 & CompInfo) && (this.shortBlock.UnpVer = 50), this.shortBlock.WinSize > 68719476736 && (this.shortBlock.UnpVer = 9999))), + this.shortBlock.Name = Raw.getBytes(NameSize).toString(); + break; + } + + case HEADER_TYPE.HEAD_ENDARC: + const ArcFlags = Raw.getVarInt(); + this.shortBlock.NextVolume = 0 != (1 & ArcFlags); + break; + + default: + console.log("Unknown header", this.shortBlock.headerType.toString(16), "at offset", this.ReadPos.toString(16)); + } + return { + crc: this.shortBlock.HeadCRC, + type: this.shortBlock.headerType, + flags: this.shortBlock.Flags, + headSize: this.shortBlock.HeadSize, + size: this.shortBlock.DataSize, + unpackedSize: this.shortBlock.UnpSize, + host: this.shortBlock.HostOS, + fileCrc: this.shortBlock.FileHash.CRC32, + timestamp: 0, + version: this.shortBlock.UnpVer, + method: this.shortBlock.Method, + nameSize: 0, + attributes: this.shortBlock.FileAttr, + name: this.shortBlock.Name, + continuesFromPrevious: this.shortBlock.SplitBefore, + continuesInNext: this.shortBlock.SplitAfter, + isEncrypted: !1, + hasComment: !1, + hasInfoFromPrevious: !1, + hasHighSize: !1, + hasSpecialName: !1, + hasSalt: !1, + isOldVersion: !1, + hasExtendedTime: !1 + }; + } + }; + function readHeader50(readable) { + return new AcRead(readable).readHeader50(); } var parseHeader = async (Parser, fileMedia, offset = 0) => { - const stream = fileMedia.createReadStream({ + const stream = await fileMedia.createReadStream({ start: offset, end: offset + Parser.HEADER_SIZE }); @@ -92529,41 +98164,102 @@ super(), this.rarFileBundle = makeRarFileBundle(fileMedias); } async parseFile(rarFile, opts) { + let countAllFiles = 0; const fileChunks = []; let fileOffset = 0; - const markerHead = await parseHeader(MarkerHeaderParser, rarFile); - fileOffset += markerHead.size; - const archiveHeader = await parseHeader(ArchiveHeaderParser, rarFile, fileOffset); - fileOffset += archiveHeader.size; - let countFiles = 0, retrievedFiles = 0; - for (;fileOffset < rarFile.length - TerminatorHeaderParser.HEADER_SIZE; ) { - let getFileChunk2 = function() { - if (48 !== fileHead.method) throw new Error("Decompression is not implemented"); - return { - name: fileHead.name, - fileHead: fileHead, - chunk: new RarFileChunk(rarFile, fileOffset, fileOffset + fileHead.size - 1) - }; + const stream = await rarFile.createReadStream({ + start: 0, + end: 6 + }); + if ((await streamToBuffer(stream)).equals(Buffer.from([ 82, 97, 114, 33, 26, 7, 1 ]))) { + fileOffset += 8; + let headSizeOffset = fileOffset; + const markerHeaderSize = await (readable = { + read: async size => { + const readable = await rarFile.createReadStream({ + start: headSizeOffset, + end: headSizeOffset + size - 1 + }); + return headSizeOffset += size, streamToBuffer(readable); + } + }, new AcRead(readable).readHeader50(!0)); + fileOffset += markerHeaderSize; + let countFiles = 0, retrievedFiles = 0; + for (;fileOffset < rarFile.length - TerminatorHeaderParser.HEADER_SIZE; ) { + let getFileChunk2 = function() { + if (0 !== fileHead.method) throw new Error("Decompression is not implemented"); + return { + name: fileHead.name, + fileHead: fileHead, + chunk: new RarFileChunk(rarFile, fileOffset, fileOffset + fileHead.size - 1) + }; + }, fileHeadOffset = fileOffset; + const fileHead = await readHeader50({ + read: async size => { + const readable = await rarFile.createReadStream({ + start: fileHeadOffset, + end: fileHeadOffset + size - 1 + }); + return fileHeadOffset += size, streamToBuffer(readable); + } + }); + if (2 !== fileHead.type) break; + if (fileOffset += fileHead.headSize, opts.filter) { + if (opts.filter(fileHead.name, countFiles) && (fileChunks.push(getFileChunk2()), + retrievedFiles++, opts.hasOwnProperty("maxFiles") && retrievedFiles === opts.maxFiles)) { + countAllFiles++; + break; + } + } else fileChunks.push(getFileChunk2()); + fileOffset += fileHead.size, countFiles++, countAllFiles++; + } + return this.emit("file-parsed", rarFile), { + chunks: fileChunks, + count: countAllFiles }; - const fileHead = await parseHeader(FileHeaderParser, rarFile, fileOffset); - if (116 !== fileHead.type) break; - if (fileOffset += fileHead.headSize, opts.filter) { - if (opts.filter(fileHead.name, countFiles) && (fileChunks.push(getFileChunk2()), - retrievedFiles++, opts.hasOwnProperty("maxFiles") && retrievedFiles === opts.maxFiles)) break; - } else fileChunks.push(getFileChunk2()); - fileOffset += fileHead.size, countFiles++; } - return this.emit("file-parsed", rarFile), fileChunks; + { + const markerHead = await parseHeader(MarkerHeaderParser, rarFile); + fileOffset += markerHead.size; + const archiveHeader = await parseHeader(ArchiveHeaderParser, rarFile, fileOffset); + fileOffset += archiveHeader.size; + let countFiles = 0, retrievedFiles = 0; + for (;fileOffset < rarFile.length - TerminatorHeaderParser.HEADER_SIZE; ) { + let getFileChunk2 = function() { + if (48 !== fileHead.method) throw new Error("Decompression is not implemented"); + return { + name: fileHead.name, + fileHead: fileHead, + chunk: new RarFileChunk(rarFile, fileOffset, fileOffset + fileHead.size - 1) + }; + }; + const fileHead = await parseHeader(FileHeaderParser, rarFile, fileOffset); + if (116 !== fileHead.type) break; + if (fileOffset += fileHead.headSize, opts.filter) { + if (opts.filter(fileHead.name, countFiles) && (fileChunks.push(getFileChunk2()), + retrievedFiles++, opts.hasOwnProperty("maxFiles") && retrievedFiles === opts.maxFiles)) { + countAllFiles++; + break; + } + } else fileChunks.push(getFileChunk2()); + fileOffset += fileHead.size, countFiles++, countAllFiles++; + } + return this.emit("file-parsed", rarFile), { + chunks: fileChunks, + count: countAllFiles + }; + } + var readable; } async parse(opts) { opts = opts || {}, this.emit("parsing-start", this.rarFileBundle); const parsedFileChunks = [], {files: files} = this.rarFileBundle; for (let i = 0; i < files.length; ++i) { - const file = files[i], chunks = await this.parseFile(file, opts); + const file = files[i], {chunks: chunks, count: count} = await this.parseFile(file, opts); if (!chunks.length) return this.emit("parsing-complete", []), []; const {fileHead: fileHead, chunk: chunk} = chunks[chunks.length - 1], chunkSize = Math.abs(chunk.endOffset - chunk.startOffset); let innerFileSize = fileHead.unpackedSize; - if (parsedFileChunks.push(chunks), fileHead.continuesInNext) for (;Math.abs(innerFileSize - chunkSize) >= chunkSize; ) { + if (parsedFileChunks.push(chunks), fileHead.continuesInNext && 1 === count && i > 0) for (;Math.abs(innerFileSize - chunkSize) >= chunkSize; ) { const nextFile = files[++i]; parsedFileChunks.push([ { name: fileHead.name, @@ -92571,11 +98267,12 @@ } ]), this.emit("file-parsed", nextFile), innerFileSize -= chunkSize; } } - const fileChunks = flatten(parsedFileChunks), grouped = (fn = f => f.name, object = fileChunks.reduce(((prev, curr) => { + const fileChunks = parsedFileChunks.flat(), grouped = (fn = f => f.name, object = fileChunks.reduce(((prev, curr) => { const groupKey = fn(curr), group = prev[groupKey] || []; - return group.push(curr), Object.assign(prev, { + return group.push(curr), { + ...prev, [groupKey]: group - }); + }; }), {}), mapper = value => value.map((v => v.chunk)), Object.fromEntries(Object.entries(object).map((([key, value]) => [ key, mapper(value) ])))); var object, mapper, fn; const innerFiles = Object.entries(grouped).map((([name, chunks]) => new class { @@ -92583,11 +98280,12 @@ this.name = name, this.rarFileChunks = rarFileChunks, this.length = rarFileChunks.map((c => c.length)).reduce(((s, n) => s + n)), this.chunkMap = this.calculateChunkMap(rarFileChunks), this.name = name; } - readToEnd() { - return streamToBuffer(this.createReadStream({ + async readToEnd() { + const stream = await this.createReadStream({ start: 0, end: this.length - 1 - })); + }); + return streamToBuffer(stream); } getChunksToStream(fileStart, fileEnd) { const {index: startIndex, start: startOffset} = this.findMappedChunk(fileStart); @@ -92605,7 +98303,7 @@ }); let {start: start, end: end} = interval; if (start < 0 || end >= this.length) throw Error("Illegal start/end offset"); - return new InnerFileStream(this.getChunksToStream(start, end)); + return Promise.resolve(new InnerFileStream(this.getChunksToStream(start, end))); } calculateChunkMap(rarFileChunks) { const chunkMap = []; @@ -92632,21 +98330,21 @@ }(name, chunks))); return this.emit("parsing-complete", innerFiles), innerFiles; } - }, _path = __webpack_require__(4), _fs = __webpack_require__(2); + }, _path = __webpack_require__(5), _fs = __webpack_require__(2); exports.LocalFileMedia = class { constructor(path) { this.path = path, this.name = _path.basename.call(void 0, path), this.length = _fs.statSync.call(void 0, path).size; } createReadStream(interval) { - return _fs.createReadStream.call(void 0, this.path, interval); + return Promise.resolve(_fs.createReadStream.call(void 0, this.path, interval)); } }, exports.RarFilesPackage = RarFilesPackage; }, function(module, exports, __webpack_require__) { - const request = __webpack_require__(229), getContentLength = __webpack_require__(1146); + const needle = __webpack_require__(73), getContentLength = __webpack_require__(1125); module.exports = async function(url) { return new Promise((async (resolve, reject) => { let contentLength = !1; - try { + if ("object" == typeof url && (contentLength = url.bytes, url = url.url), !contentLength) try { contentLength = await getContentLength(url); } catch (e) { return console.error(e), void reject(e); @@ -92658,24 +98356,37 @@ name: fileName, createReadStream: range => { const opts = { - url: url, - followRedirect: !0, - maxRedirects: 5, - strictSSL: !1 + follow_max: 5, + rejectUnauthorized: !1 }; return Object.values(range).length && (range.start = range.start || 0, range.end = range.end || 0, (range.end > contentLength - 1 || 0 === range.end) && (range.end = ""), opts.headers = { range: `bytes=${range.start}-${range.end}` - }), request(opts); + }), needle.get(url, opts); } }); })); }; +}, function(module, exports, __webpack_require__) { + const request = __webpack_require__(61); + module.exports = async function(url) { + return new Promise(((resolve, reject) => { + const req = request({ + url: url, + followRedirect: !0, + maxRedirects: 5, + strictSSL: !1 + }); + req.on("response", (function(d) { + req.abort(), d.headers["content-length"] ? resolve(d.headers["content-length"]) : reject("Could not retrieve content-length from ranged request"); + })).on("error", reject); + })); + }; }, function(module, exports, __webpack_require__) { "use strict"; - var punycode, net = __webpack_require__(42), urlParse = __webpack_require__(6).parse, util = __webpack_require__(0), pubsuffix = __webpack_require__(474), Store = __webpack_require__(476).Store, MemoryCookieStore = __webpack_require__(1045).MemoryCookieStore, pathMatch = __webpack_require__(478).pathMatch, VERSION = __webpack_require__(1046).version; + var punycode, net = __webpack_require__(39), urlParse = __webpack_require__(7).parse, util = __webpack_require__(0), pubsuffix = __webpack_require__(516), Store = __webpack_require__(518).Store, MemoryCookieStore = __webpack_require__(1129).MemoryCookieStore, pathMatch = __webpack_require__(520).pathMatch, VERSION = __webpack_require__(1130).version; try { - punycode = __webpack_require__(475); + punycode = __webpack_require__(517); } catch (e) { console.warn("tough-cookie: can't load punycode; won't use punycode for domain normalization"); } @@ -93084,7 +98795,7 @@ exports.MemoryCookieStore = MemoryCookieStore, exports.parseDate = parseDate, exports.formatDate = formatDate, exports.parse = parse, exports.fromJSON = fromJSON, exports.domainMatch = domainMatch, exports.defaultPath = defaultPath, exports.pathMatch = pathMatch, exports.getPublicSuffix = pubsuffix.getPublicSuffix, - exports.cookieCompare = cookieCompare, exports.permuteDomain = __webpack_require__(477).permuteDomain, + exports.cookieCompare = cookieCompare, exports.permuteDomain = __webpack_require__(519).permuteDomain, exports.permutePath = function(path) { if ("/" === path) return [ "/" ]; path.lastIndexOf("/") === path.length - 1 && (path = path.substr(0, path.length - 1)); @@ -93097,8 +98808,8 @@ }, exports.canonicalDomain = canonicalDomain; }, function(module, exports, __webpack_require__) { "use strict"; - var Punycode = __webpack_require__(475), internals = {}; - internals.rules = __webpack_require__(1044).map((function(rule) { + var Punycode = __webpack_require__(517), internals = {}; + internals.rules = __webpack_require__(1128).map((function(rule) { return { rule: rule, suffix: rule.replace(/^(\*\.|\!)/, ""), @@ -93177,7 +98888,7 @@ module.exports = [ "ac", "com.ac", "edu.ac", "gov.ac", "net.ac", "mil.ac", "org.ac", "ad", "nom.ad", "ae", "co.ae", "net.ae", "org.ae", "sch.ae", "ac.ae", "gov.ae", "mil.ae", "aero", "accident-investigation.aero", "accident-prevention.aero", "aerobatic.aero", "aeroclub.aero", "aerodrome.aero", "agents.aero", "aircraft.aero", "airline.aero", "airport.aero", "air-surveillance.aero", "airtraffic.aero", "air-traffic-control.aero", "ambulance.aero", "amusement.aero", "association.aero", "author.aero", "ballooning.aero", "broker.aero", "caa.aero", "cargo.aero", "catering.aero", "certification.aero", "championship.aero", "charter.aero", "civilaviation.aero", "club.aero", "conference.aero", "consultant.aero", "consulting.aero", "control.aero", "council.aero", "crew.aero", "design.aero", "dgca.aero", "educator.aero", "emergency.aero", "engine.aero", "engineer.aero", "entertainment.aero", "equipment.aero", "exchange.aero", "express.aero", "federation.aero", "flight.aero", "freight.aero", "fuel.aero", "gliding.aero", "government.aero", "groundhandling.aero", "group.aero", "hanggliding.aero", "homebuilt.aero", "insurance.aero", "journal.aero", "journalist.aero", "leasing.aero", "logistics.aero", "magazine.aero", "maintenance.aero", "media.aero", "microlight.aero", "modelling.aero", "navigation.aero", "parachuting.aero", "paragliding.aero", "passenger-association.aero", "pilot.aero", "press.aero", "production.aero", "recreation.aero", "repbody.aero", "res.aero", "research.aero", "rotorcraft.aero", "safety.aero", "scientist.aero", "services.aero", "show.aero", "skydiving.aero", "software.aero", "student.aero", "trader.aero", "trading.aero", "trainer.aero", "union.aero", "workinggroup.aero", "works.aero", "af", "gov.af", "com.af", "org.af", "net.af", "edu.af", "ag", "com.ag", "org.ag", "net.ag", "co.ag", "nom.ag", "ai", "off.ai", "com.ai", "net.ai", "org.ai", "al", "com.al", "edu.al", "gov.al", "mil.al", "net.al", "org.al", "am", "co.am", "com.am", "commune.am", "net.am", "org.am", "ao", "ed.ao", "gv.ao", "og.ao", "co.ao", "pb.ao", "it.ao", "aq", "ar", "com.ar", "edu.ar", "gob.ar", "gov.ar", "int.ar", "mil.ar", "musica.ar", "net.ar", "org.ar", "tur.ar", "arpa", "e164.arpa", "in-addr.arpa", "ip6.arpa", "iris.arpa", "uri.arpa", "urn.arpa", "as", "gov.as", "asia", "at", "ac.at", "co.at", "gv.at", "or.at", "au", "com.au", "net.au", "org.au", "edu.au", "gov.au", "asn.au", "id.au", "info.au", "conf.au", "oz.au", "act.au", "nsw.au", "nt.au", "qld.au", "sa.au", "tas.au", "vic.au", "wa.au", "act.edu.au", "nsw.edu.au", "nt.edu.au", "qld.edu.au", "sa.edu.au", "tas.edu.au", "vic.edu.au", "wa.edu.au", "qld.gov.au", "sa.gov.au", "tas.gov.au", "vic.gov.au", "wa.gov.au", "aw", "com.aw", "ax", "az", "com.az", "net.az", "int.az", "gov.az", "org.az", "edu.az", "info.az", "pp.az", "mil.az", "name.az", "pro.az", "biz.az", "ba", "com.ba", "edu.ba", "gov.ba", "mil.ba", "net.ba", "org.ba", "bb", "biz.bb", "co.bb", "com.bb", "edu.bb", "gov.bb", "info.bb", "net.bb", "org.bb", "store.bb", "tv.bb", "*.bd", "be", "ac.be", "bf", "gov.bf", "bg", "a.bg", "b.bg", "c.bg", "d.bg", "e.bg", "f.bg", "g.bg", "h.bg", "i.bg", "j.bg", "k.bg", "l.bg", "m.bg", "n.bg", "o.bg", "p.bg", "q.bg", "r.bg", "s.bg", "t.bg", "u.bg", "v.bg", "w.bg", "x.bg", "y.bg", "z.bg", "0.bg", "1.bg", "2.bg", "3.bg", "4.bg", "5.bg", "6.bg", "7.bg", "8.bg", "9.bg", "bh", "com.bh", "edu.bh", "net.bh", "org.bh", "gov.bh", "bi", "co.bi", "com.bi", "edu.bi", "or.bi", "org.bi", "biz", "bj", "asso.bj", "barreau.bj", "gouv.bj", "bm", "com.bm", "edu.bm", "gov.bm", "net.bm", "org.bm", "bn", "com.bn", "edu.bn", "gov.bn", "net.bn", "org.bn", "bo", "com.bo", "edu.bo", "gob.bo", "int.bo", "org.bo", "net.bo", "mil.bo", "tv.bo", "web.bo", "academia.bo", "agro.bo", "arte.bo", "blog.bo", "bolivia.bo", "ciencia.bo", "cooperativa.bo", "democracia.bo", "deporte.bo", "ecologia.bo", "economia.bo", "empresa.bo", "indigena.bo", "industria.bo", "info.bo", "medicina.bo", "movimiento.bo", "musica.bo", "natural.bo", "nombre.bo", "noticias.bo", "patria.bo", "politica.bo", "profesional.bo", "plurinacional.bo", "pueblo.bo", "revista.bo", "salud.bo", "tecnologia.bo", "tksat.bo", "transporte.bo", "wiki.bo", "br", "9guacu.br", "abc.br", "adm.br", "adv.br", "agr.br", "aju.br", "am.br", "anani.br", "aparecida.br", "arq.br", "art.br", "ato.br", "b.br", "barueri.br", "belem.br", "bhz.br", "bio.br", "blog.br", "bmd.br", "boavista.br", "bsb.br", "campinagrande.br", "campinas.br", "caxias.br", "cim.br", "cng.br", "cnt.br", "com.br", "contagem.br", "coop.br", "cri.br", "cuiaba.br", "curitiba.br", "def.br", "ecn.br", "eco.br", "edu.br", "emp.br", "eng.br", "esp.br", "etc.br", "eti.br", "far.br", "feira.br", "flog.br", "floripa.br", "fm.br", "fnd.br", "fortal.br", "fot.br", "foz.br", "fst.br", "g12.br", "ggf.br", "goiania.br", "gov.br", "ac.gov.br", "al.gov.br", "am.gov.br", "ap.gov.br", "ba.gov.br", "ce.gov.br", "df.gov.br", "es.gov.br", "go.gov.br", "ma.gov.br", "mg.gov.br", "ms.gov.br", "mt.gov.br", "pa.gov.br", "pb.gov.br", "pe.gov.br", "pi.gov.br", "pr.gov.br", "rj.gov.br", "rn.gov.br", "ro.gov.br", "rr.gov.br", "rs.gov.br", "sc.gov.br", "se.gov.br", "sp.gov.br", "to.gov.br", "gru.br", "imb.br", "ind.br", "inf.br", "jab.br", "jampa.br", "jdf.br", "joinville.br", "jor.br", "jus.br", "leg.br", "lel.br", "londrina.br", "macapa.br", "maceio.br", "manaus.br", "maringa.br", "mat.br", "med.br", "mil.br", "morena.br", "mp.br", "mus.br", "natal.br", "net.br", "niteroi.br", "*.nom.br", "not.br", "ntr.br", "odo.br", "ong.br", "org.br", "osasco.br", "palmas.br", "poa.br", "ppg.br", "pro.br", "psc.br", "psi.br", "pvh.br", "qsl.br", "radio.br", "rec.br", "recife.br", "ribeirao.br", "rio.br", "riobranco.br", "riopreto.br", "salvador.br", "sampa.br", "santamaria.br", "santoandre.br", "saobernardo.br", "saogonca.br", "sjc.br", "slg.br", "slz.br", "sorocaba.br", "srv.br", "taxi.br", "tc.br", "teo.br", "the.br", "tmp.br", "trd.br", "tur.br", "tv.br", "udi.br", "vet.br", "vix.br", "vlog.br", "wiki.br", "zlg.br", "bs", "com.bs", "net.bs", "org.bs", "edu.bs", "gov.bs", "bt", "com.bt", "edu.bt", "gov.bt", "net.bt", "org.bt", "bv", "bw", "co.bw", "org.bw", "by", "gov.by", "mil.by", "com.by", "of.by", "bz", "com.bz", "net.bz", "org.bz", "edu.bz", "gov.bz", "ca", "ab.ca", "bc.ca", "mb.ca", "nb.ca", "nf.ca", "nl.ca", "ns.ca", "nt.ca", "nu.ca", "on.ca", "pe.ca", "qc.ca", "sk.ca", "yk.ca", "gc.ca", "cat", "cc", "cd", "gov.cd", "cf", "cg", "ch", "ci", "org.ci", "or.ci", "com.ci", "co.ci", "edu.ci", "ed.ci", "ac.ci", "net.ci", "go.ci", "asso.ci", "aéroport.ci", "int.ci", "presse.ci", "md.ci", "gouv.ci", "*.ck", "!www.ck", "cl", "gov.cl", "gob.cl", "co.cl", "mil.cl", "cm", "co.cm", "com.cm", "gov.cm", "net.cm", "cn", "ac.cn", "com.cn", "edu.cn", "gov.cn", "net.cn", "org.cn", "mil.cn", "公司.cn", "网络.cn", "網絡.cn", "ah.cn", "bj.cn", "cq.cn", "fj.cn", "gd.cn", "gs.cn", "gz.cn", "gx.cn", "ha.cn", "hb.cn", "he.cn", "hi.cn", "hl.cn", "hn.cn", "jl.cn", "js.cn", "jx.cn", "ln.cn", "nm.cn", "nx.cn", "qh.cn", "sc.cn", "sd.cn", "sh.cn", "sn.cn", "sx.cn", "tj.cn", "xj.cn", "xz.cn", "yn.cn", "zj.cn", "hk.cn", "mo.cn", "tw.cn", "co", "arts.co", "com.co", "edu.co", "firm.co", "gov.co", "info.co", "int.co", "mil.co", "net.co", "nom.co", "org.co", "rec.co", "web.co", "com", "coop", "cr", "ac.cr", "co.cr", "ed.cr", "fi.cr", "go.cr", "or.cr", "sa.cr", "cu", "com.cu", "edu.cu", "org.cu", "net.cu", "gov.cu", "inf.cu", "cv", "cw", "com.cw", "edu.cw", "net.cw", "org.cw", "cx", "gov.cx", "cy", "ac.cy", "biz.cy", "com.cy", "ekloges.cy", "gov.cy", "ltd.cy", "name.cy", "net.cy", "org.cy", "parliament.cy", "press.cy", "pro.cy", "tm.cy", "cz", "de", "dj", "dk", "dm", "com.dm", "net.dm", "org.dm", "edu.dm", "gov.dm", "do", "art.do", "com.do", "edu.do", "gob.do", "gov.do", "mil.do", "net.do", "org.do", "sld.do", "web.do", "dz", "com.dz", "org.dz", "net.dz", "gov.dz", "edu.dz", "asso.dz", "pol.dz", "art.dz", "ec", "com.ec", "info.ec", "net.ec", "fin.ec", "k12.ec", "med.ec", "pro.ec", "org.ec", "edu.ec", "gov.ec", "gob.ec", "mil.ec", "edu", "ee", "edu.ee", "gov.ee", "riik.ee", "lib.ee", "med.ee", "com.ee", "pri.ee", "aip.ee", "org.ee", "fie.ee", "eg", "com.eg", "edu.eg", "eun.eg", "gov.eg", "mil.eg", "name.eg", "net.eg", "org.eg", "sci.eg", "*.er", "es", "com.es", "nom.es", "org.es", "gob.es", "edu.es", "et", "com.et", "gov.et", "org.et", "edu.et", "biz.et", "name.et", "info.et", "net.et", "eu", "fi", "aland.fi", "*.fj", "*.fk", "fm", "fo", "fr", "asso.fr", "com.fr", "gouv.fr", "nom.fr", "prd.fr", "tm.fr", "aeroport.fr", "avocat.fr", "avoues.fr", "cci.fr", "chambagri.fr", "chirurgiens-dentistes.fr", "experts-comptables.fr", "geometre-expert.fr", "greta.fr", "huissier-justice.fr", "medecin.fr", "notaires.fr", "pharmacien.fr", "port.fr", "veterinaire.fr", "ga", "gb", "gd", "ge", "com.ge", "edu.ge", "gov.ge", "org.ge", "mil.ge", "net.ge", "pvt.ge", "gf", "gg", "co.gg", "net.gg", "org.gg", "gh", "com.gh", "edu.gh", "gov.gh", "org.gh", "mil.gh", "gi", "com.gi", "ltd.gi", "gov.gi", "mod.gi", "edu.gi", "org.gi", "gl", "co.gl", "com.gl", "edu.gl", "net.gl", "org.gl", "gm", "gn", "ac.gn", "com.gn", "edu.gn", "gov.gn", "org.gn", "net.gn", "gov", "gp", "com.gp", "net.gp", "mobi.gp", "edu.gp", "org.gp", "asso.gp", "gq", "gr", "com.gr", "edu.gr", "net.gr", "org.gr", "gov.gr", "gs", "gt", "com.gt", "edu.gt", "gob.gt", "ind.gt", "mil.gt", "net.gt", "org.gt", "gu", "com.gu", "edu.gu", "gov.gu", "guam.gu", "info.gu", "net.gu", "org.gu", "web.gu", "gw", "gy", "co.gy", "com.gy", "edu.gy", "gov.gy", "net.gy", "org.gy", "hk", "com.hk", "edu.hk", "gov.hk", "idv.hk", "net.hk", "org.hk", "公司.hk", "教育.hk", "敎育.hk", "政府.hk", "個人.hk", "个人.hk", "箇人.hk", "網络.hk", "网络.hk", "组織.hk", "網絡.hk", "网絡.hk", "组织.hk", "組織.hk", "組织.hk", "hm", "hn", "com.hn", "edu.hn", "org.hn", "net.hn", "mil.hn", "gob.hn", "hr", "iz.hr", "from.hr", "name.hr", "com.hr", "ht", "com.ht", "shop.ht", "firm.ht", "info.ht", "adult.ht", "net.ht", "pro.ht", "org.ht", "med.ht", "art.ht", "coop.ht", "pol.ht", "asso.ht", "edu.ht", "rel.ht", "gouv.ht", "perso.ht", "hu", "co.hu", "info.hu", "org.hu", "priv.hu", "sport.hu", "tm.hu", "2000.hu", "agrar.hu", "bolt.hu", "casino.hu", "city.hu", "erotica.hu", "erotika.hu", "film.hu", "forum.hu", "games.hu", "hotel.hu", "ingatlan.hu", "jogasz.hu", "konyvelo.hu", "lakas.hu", "media.hu", "news.hu", "reklam.hu", "sex.hu", "shop.hu", "suli.hu", "szex.hu", "tozsde.hu", "utazas.hu", "video.hu", "id", "ac.id", "biz.id", "co.id", "desa.id", "go.id", "mil.id", "my.id", "net.id", "or.id", "ponpes.id", "sch.id", "web.id", "ie", "gov.ie", "il", "ac.il", "co.il", "gov.il", "idf.il", "k12.il", "muni.il", "net.il", "org.il", "im", "ac.im", "co.im", "com.im", "ltd.co.im", "net.im", "org.im", "plc.co.im", "tt.im", "tv.im", "in", "co.in", "firm.in", "net.in", "org.in", "gen.in", "ind.in", "nic.in", "ac.in", "edu.in", "res.in", "gov.in", "mil.in", "info", "int", "eu.int", "io", "com.io", "iq", "gov.iq", "edu.iq", "mil.iq", "com.iq", "org.iq", "net.iq", "ir", "ac.ir", "co.ir", "gov.ir", "id.ir", "net.ir", "org.ir", "sch.ir", "ایران.ir", "ايران.ir", "is", "net.is", "com.is", "edu.is", "gov.is", "org.is", "int.is", "it", "gov.it", "edu.it", "abr.it", "abruzzo.it", "aosta-valley.it", "aostavalley.it", "bas.it", "basilicata.it", "cal.it", "calabria.it", "cam.it", "campania.it", "emilia-romagna.it", "emiliaromagna.it", "emr.it", "friuli-v-giulia.it", "friuli-ve-giulia.it", "friuli-vegiulia.it", "friuli-venezia-giulia.it", "friuli-veneziagiulia.it", "friuli-vgiulia.it", "friuliv-giulia.it", "friulive-giulia.it", "friulivegiulia.it", "friulivenezia-giulia.it", "friuliveneziagiulia.it", "friulivgiulia.it", "fvg.it", "laz.it", "lazio.it", "lig.it", "liguria.it", "lom.it", "lombardia.it", "lombardy.it", "lucania.it", "mar.it", "marche.it", "mol.it", "molise.it", "piedmont.it", "piemonte.it", "pmn.it", "pug.it", "puglia.it", "sar.it", "sardegna.it", "sardinia.it", "sic.it", "sicilia.it", "sicily.it", "taa.it", "tos.it", "toscana.it", "trentin-sud-tirol.it", "trentin-süd-tirol.it", "trentin-sudtirol.it", "trentin-südtirol.it", "trentin-sued-tirol.it", "trentin-suedtirol.it", "trentino-a-adige.it", "trentino-aadige.it", "trentino-alto-adige.it", "trentino-altoadige.it", "trentino-s-tirol.it", "trentino-stirol.it", "trentino-sud-tirol.it", "trentino-süd-tirol.it", "trentino-sudtirol.it", "trentino-südtirol.it", "trentino-sued-tirol.it", "trentino-suedtirol.it", "trentino.it", "trentinoa-adige.it", "trentinoaadige.it", "trentinoalto-adige.it", "trentinoaltoadige.it", "trentinos-tirol.it", "trentinostirol.it", "trentinosud-tirol.it", "trentinosüd-tirol.it", "trentinosudtirol.it", "trentinosüdtirol.it", "trentinosued-tirol.it", "trentinosuedtirol.it", "trentinsud-tirol.it", "trentinsüd-tirol.it", "trentinsudtirol.it", "trentinsüdtirol.it", "trentinsued-tirol.it", "trentinsuedtirol.it", "tuscany.it", "umb.it", "umbria.it", "val-d-aosta.it", "val-daosta.it", "vald-aosta.it", "valdaosta.it", "valle-aosta.it", "valle-d-aosta.it", "valle-daosta.it", "valleaosta.it", "valled-aosta.it", "valledaosta.it", "vallee-aoste.it", "vallée-aoste.it", "vallee-d-aoste.it", "vallée-d-aoste.it", "valleeaoste.it", "valléeaoste.it", "valleedaoste.it", "valléedaoste.it", "vao.it", "vda.it", "ven.it", "veneto.it", "ag.it", "agrigento.it", "al.it", "alessandria.it", "alto-adige.it", "altoadige.it", "an.it", "ancona.it", "andria-barletta-trani.it", "andria-trani-barletta.it", "andriabarlettatrani.it", "andriatranibarletta.it", "ao.it", "aosta.it", "aoste.it", "ap.it", "aq.it", "aquila.it", "ar.it", "arezzo.it", "ascoli-piceno.it", "ascolipiceno.it", "asti.it", "at.it", "av.it", "avellino.it", "ba.it", "balsan-sudtirol.it", "balsan-südtirol.it", "balsan-suedtirol.it", "balsan.it", "bari.it", "barletta-trani-andria.it", "barlettatraniandria.it", "belluno.it", "benevento.it", "bergamo.it", "bg.it", "bi.it", "biella.it", "bl.it", "bn.it", "bo.it", "bologna.it", "bolzano-altoadige.it", "bolzano.it", "bozen-sudtirol.it", "bozen-südtirol.it", "bozen-suedtirol.it", "bozen.it", "br.it", "brescia.it", "brindisi.it", "bs.it", "bt.it", "bulsan-sudtirol.it", "bulsan-südtirol.it", "bulsan-suedtirol.it", "bulsan.it", "bz.it", "ca.it", "cagliari.it", "caltanissetta.it", "campidano-medio.it", "campidanomedio.it", "campobasso.it", "carbonia-iglesias.it", "carboniaiglesias.it", "carrara-massa.it", "carraramassa.it", "caserta.it", "catania.it", "catanzaro.it", "cb.it", "ce.it", "cesena-forli.it", "cesena-forlì.it", "cesenaforli.it", "cesenaforlì.it", "ch.it", "chieti.it", "ci.it", "cl.it", "cn.it", "co.it", "como.it", "cosenza.it", "cr.it", "cremona.it", "crotone.it", "cs.it", "ct.it", "cuneo.it", "cz.it", "dell-ogliastra.it", "dellogliastra.it", "en.it", "enna.it", "fc.it", "fe.it", "fermo.it", "ferrara.it", "fg.it", "fi.it", "firenze.it", "florence.it", "fm.it", "foggia.it", "forli-cesena.it", "forlì-cesena.it", "forlicesena.it", "forlìcesena.it", "fr.it", "frosinone.it", "ge.it", "genoa.it", "genova.it", "go.it", "gorizia.it", "gr.it", "grosseto.it", "iglesias-carbonia.it", "iglesiascarbonia.it", "im.it", "imperia.it", "is.it", "isernia.it", "kr.it", "la-spezia.it", "laquila.it", "laspezia.it", "latina.it", "lc.it", "le.it", "lecce.it", "lecco.it", "li.it", "livorno.it", "lo.it", "lodi.it", "lt.it", "lu.it", "lucca.it", "macerata.it", "mantova.it", "massa-carrara.it", "massacarrara.it", "matera.it", "mb.it", "mc.it", "me.it", "medio-campidano.it", "mediocampidano.it", "messina.it", "mi.it", "milan.it", "milano.it", "mn.it", "mo.it", "modena.it", "monza-brianza.it", "monza-e-della-brianza.it", "monza.it", "monzabrianza.it", "monzaebrianza.it", "monzaedellabrianza.it", "ms.it", "mt.it", "na.it", "naples.it", "napoli.it", "no.it", "novara.it", "nu.it", "nuoro.it", "og.it", "ogliastra.it", "olbia-tempio.it", "olbiatempio.it", "or.it", "oristano.it", "ot.it", "pa.it", "padova.it", "padua.it", "palermo.it", "parma.it", "pavia.it", "pc.it", "pd.it", "pe.it", "perugia.it", "pesaro-urbino.it", "pesarourbino.it", "pescara.it", "pg.it", "pi.it", "piacenza.it", "pisa.it", "pistoia.it", "pn.it", "po.it", "pordenone.it", "potenza.it", "pr.it", "prato.it", "pt.it", "pu.it", "pv.it", "pz.it", "ra.it", "ragusa.it", "ravenna.it", "rc.it", "re.it", "reggio-calabria.it", "reggio-emilia.it", "reggiocalabria.it", "reggioemilia.it", "rg.it", "ri.it", "rieti.it", "rimini.it", "rm.it", "rn.it", "ro.it", "roma.it", "rome.it", "rovigo.it", "sa.it", "salerno.it", "sassari.it", "savona.it", "si.it", "siena.it", "siracusa.it", "so.it", "sondrio.it", "sp.it", "sr.it", "ss.it", "suedtirol.it", "südtirol.it", "sv.it", "ta.it", "taranto.it", "te.it", "tempio-olbia.it", "tempioolbia.it", "teramo.it", "terni.it", "tn.it", "to.it", "torino.it", "tp.it", "tr.it", "trani-andria-barletta.it", "trani-barletta-andria.it", "traniandriabarletta.it", "tranibarlettaandria.it", "trapani.it", "trento.it", "treviso.it", "trieste.it", "ts.it", "turin.it", "tv.it", "ud.it", "udine.it", "urbino-pesaro.it", "urbinopesaro.it", "va.it", "varese.it", "vb.it", "vc.it", "ve.it", "venezia.it", "venice.it", "verbania.it", "vercelli.it", "verona.it", "vi.it", "vibo-valentia.it", "vibovalentia.it", "vicenza.it", "viterbo.it", "vr.it", "vs.it", "vt.it", "vv.it", "je", "co.je", "net.je", "org.je", "*.jm", "jo", "com.jo", "org.jo", "net.jo", "edu.jo", "sch.jo", "gov.jo", "mil.jo", "name.jo", "jobs", "jp", "ac.jp", "ad.jp", "co.jp", "ed.jp", "go.jp", "gr.jp", "lg.jp", "ne.jp", "or.jp", "aichi.jp", "akita.jp", "aomori.jp", "chiba.jp", "ehime.jp", "fukui.jp", "fukuoka.jp", "fukushima.jp", "gifu.jp", "gunma.jp", "hiroshima.jp", "hokkaido.jp", "hyogo.jp", "ibaraki.jp", "ishikawa.jp", "iwate.jp", "kagawa.jp", "kagoshima.jp", "kanagawa.jp", "kochi.jp", "kumamoto.jp", "kyoto.jp", "mie.jp", "miyagi.jp", "miyazaki.jp", "nagano.jp", "nagasaki.jp", "nara.jp", "niigata.jp", "oita.jp", "okayama.jp", "okinawa.jp", "osaka.jp", "saga.jp", "saitama.jp", "shiga.jp", "shimane.jp", "shizuoka.jp", "tochigi.jp", "tokushima.jp", "tokyo.jp", "tottori.jp", "toyama.jp", "wakayama.jp", "yamagata.jp", "yamaguchi.jp", "yamanashi.jp", "栃木.jp", "愛知.jp", "愛媛.jp", "兵庫.jp", "熊本.jp", "茨城.jp", "北海道.jp", "千葉.jp", "和歌山.jp", "長崎.jp", "長野.jp", "新潟.jp", "青森.jp", "静岡.jp", "東京.jp", "石川.jp", "埼玉.jp", "三重.jp", "京都.jp", "佐賀.jp", "大分.jp", "大阪.jp", "奈良.jp", "宮城.jp", "宮崎.jp", "富山.jp", "山口.jp", "山形.jp", "山梨.jp", "岩手.jp", "岐阜.jp", "岡山.jp", "島根.jp", "広島.jp", "徳島.jp", "沖縄.jp", "滋賀.jp", "神奈川.jp", "福井.jp", "福岡.jp", "福島.jp", "秋田.jp", "群馬.jp", "香川.jp", "高知.jp", "鳥取.jp", "鹿児島.jp", "*.kawasaki.jp", "*.kitakyushu.jp", "*.kobe.jp", "*.nagoya.jp", "*.sapporo.jp", "*.sendai.jp", "*.yokohama.jp", "!city.kawasaki.jp", "!city.kitakyushu.jp", "!city.kobe.jp", "!city.nagoya.jp", "!city.sapporo.jp", "!city.sendai.jp", "!city.yokohama.jp", "aisai.aichi.jp", "ama.aichi.jp", "anjo.aichi.jp", "asuke.aichi.jp", "chiryu.aichi.jp", "chita.aichi.jp", "fuso.aichi.jp", "gamagori.aichi.jp", "handa.aichi.jp", "hazu.aichi.jp", "hekinan.aichi.jp", "higashiura.aichi.jp", "ichinomiya.aichi.jp", "inazawa.aichi.jp", "inuyama.aichi.jp", "isshiki.aichi.jp", "iwakura.aichi.jp", "kanie.aichi.jp", "kariya.aichi.jp", "kasugai.aichi.jp", "kira.aichi.jp", "kiyosu.aichi.jp", "komaki.aichi.jp", "konan.aichi.jp", "kota.aichi.jp", "mihama.aichi.jp", "miyoshi.aichi.jp", "nishio.aichi.jp", "nisshin.aichi.jp", "obu.aichi.jp", "oguchi.aichi.jp", "oharu.aichi.jp", "okazaki.aichi.jp", "owariasahi.aichi.jp", "seto.aichi.jp", "shikatsu.aichi.jp", "shinshiro.aichi.jp", "shitara.aichi.jp", "tahara.aichi.jp", "takahama.aichi.jp", "tobishima.aichi.jp", "toei.aichi.jp", "togo.aichi.jp", "tokai.aichi.jp", "tokoname.aichi.jp", "toyoake.aichi.jp", "toyohashi.aichi.jp", "toyokawa.aichi.jp", "toyone.aichi.jp", "toyota.aichi.jp", "tsushima.aichi.jp", "yatomi.aichi.jp", "akita.akita.jp", "daisen.akita.jp", "fujisato.akita.jp", "gojome.akita.jp", "hachirogata.akita.jp", "happou.akita.jp", "higashinaruse.akita.jp", "honjo.akita.jp", "honjyo.akita.jp", "ikawa.akita.jp", "kamikoani.akita.jp", "kamioka.akita.jp", "katagami.akita.jp", "kazuno.akita.jp", "kitaakita.akita.jp", "kosaka.akita.jp", "kyowa.akita.jp", "misato.akita.jp", "mitane.akita.jp", "moriyoshi.akita.jp", "nikaho.akita.jp", "noshiro.akita.jp", "odate.akita.jp", "oga.akita.jp", "ogata.akita.jp", "semboku.akita.jp", "yokote.akita.jp", "yurihonjo.akita.jp", "aomori.aomori.jp", "gonohe.aomori.jp", "hachinohe.aomori.jp", "hashikami.aomori.jp", "hiranai.aomori.jp", "hirosaki.aomori.jp", "itayanagi.aomori.jp", "kuroishi.aomori.jp", "misawa.aomori.jp", "mutsu.aomori.jp", "nakadomari.aomori.jp", "noheji.aomori.jp", "oirase.aomori.jp", "owani.aomori.jp", "rokunohe.aomori.jp", "sannohe.aomori.jp", "shichinohe.aomori.jp", "shingo.aomori.jp", "takko.aomori.jp", "towada.aomori.jp", "tsugaru.aomori.jp", "tsuruta.aomori.jp", "abiko.chiba.jp", "asahi.chiba.jp", "chonan.chiba.jp", "chosei.chiba.jp", "choshi.chiba.jp", "chuo.chiba.jp", "funabashi.chiba.jp", "futtsu.chiba.jp", "hanamigawa.chiba.jp", "ichihara.chiba.jp", "ichikawa.chiba.jp", "ichinomiya.chiba.jp", "inzai.chiba.jp", "isumi.chiba.jp", "kamagaya.chiba.jp", "kamogawa.chiba.jp", "kashiwa.chiba.jp", "katori.chiba.jp", "katsuura.chiba.jp", "kimitsu.chiba.jp", "kisarazu.chiba.jp", "kozaki.chiba.jp", "kujukuri.chiba.jp", "kyonan.chiba.jp", "matsudo.chiba.jp", "midori.chiba.jp", "mihama.chiba.jp", "minamiboso.chiba.jp", "mobara.chiba.jp", "mutsuzawa.chiba.jp", "nagara.chiba.jp", "nagareyama.chiba.jp", "narashino.chiba.jp", "narita.chiba.jp", "noda.chiba.jp", "oamishirasato.chiba.jp", "omigawa.chiba.jp", "onjuku.chiba.jp", "otaki.chiba.jp", "sakae.chiba.jp", "sakura.chiba.jp", "shimofusa.chiba.jp", "shirako.chiba.jp", "shiroi.chiba.jp", "shisui.chiba.jp", "sodegaura.chiba.jp", "sosa.chiba.jp", "tako.chiba.jp", "tateyama.chiba.jp", "togane.chiba.jp", "tohnosho.chiba.jp", "tomisato.chiba.jp", "urayasu.chiba.jp", "yachimata.chiba.jp", "yachiyo.chiba.jp", "yokaichiba.chiba.jp", "yokoshibahikari.chiba.jp", "yotsukaido.chiba.jp", "ainan.ehime.jp", "honai.ehime.jp", "ikata.ehime.jp", "imabari.ehime.jp", "iyo.ehime.jp", "kamijima.ehime.jp", "kihoku.ehime.jp", "kumakogen.ehime.jp", "masaki.ehime.jp", "matsuno.ehime.jp", "matsuyama.ehime.jp", "namikata.ehime.jp", "niihama.ehime.jp", "ozu.ehime.jp", "saijo.ehime.jp", "seiyo.ehime.jp", "shikokuchuo.ehime.jp", "tobe.ehime.jp", "toon.ehime.jp", "uchiko.ehime.jp", "uwajima.ehime.jp", "yawatahama.ehime.jp", "echizen.fukui.jp", "eiheiji.fukui.jp", "fukui.fukui.jp", "ikeda.fukui.jp", "katsuyama.fukui.jp", "mihama.fukui.jp", "minamiechizen.fukui.jp", "obama.fukui.jp", "ohi.fukui.jp", "ono.fukui.jp", "sabae.fukui.jp", "sakai.fukui.jp", "takahama.fukui.jp", "tsuruga.fukui.jp", "wakasa.fukui.jp", "ashiya.fukuoka.jp", "buzen.fukuoka.jp", "chikugo.fukuoka.jp", "chikuho.fukuoka.jp", "chikujo.fukuoka.jp", "chikushino.fukuoka.jp", "chikuzen.fukuoka.jp", "chuo.fukuoka.jp", "dazaifu.fukuoka.jp", "fukuchi.fukuoka.jp", "hakata.fukuoka.jp", "higashi.fukuoka.jp", "hirokawa.fukuoka.jp", "hisayama.fukuoka.jp", "iizuka.fukuoka.jp", "inatsuki.fukuoka.jp", "kaho.fukuoka.jp", "kasuga.fukuoka.jp", "kasuya.fukuoka.jp", "kawara.fukuoka.jp", "keisen.fukuoka.jp", "koga.fukuoka.jp", "kurate.fukuoka.jp", "kurogi.fukuoka.jp", "kurume.fukuoka.jp", "minami.fukuoka.jp", "miyako.fukuoka.jp", "miyama.fukuoka.jp", "miyawaka.fukuoka.jp", "mizumaki.fukuoka.jp", "munakata.fukuoka.jp", "nakagawa.fukuoka.jp", "nakama.fukuoka.jp", "nishi.fukuoka.jp", "nogata.fukuoka.jp", "ogori.fukuoka.jp", "okagaki.fukuoka.jp", "okawa.fukuoka.jp", "oki.fukuoka.jp", "omuta.fukuoka.jp", "onga.fukuoka.jp", "onojo.fukuoka.jp", "oto.fukuoka.jp", "saigawa.fukuoka.jp", "sasaguri.fukuoka.jp", "shingu.fukuoka.jp", "shinyoshitomi.fukuoka.jp", "shonai.fukuoka.jp", "soeda.fukuoka.jp", "sue.fukuoka.jp", "tachiarai.fukuoka.jp", "tagawa.fukuoka.jp", "takata.fukuoka.jp", "toho.fukuoka.jp", "toyotsu.fukuoka.jp", "tsuiki.fukuoka.jp", "ukiha.fukuoka.jp", "umi.fukuoka.jp", "usui.fukuoka.jp", "yamada.fukuoka.jp", "yame.fukuoka.jp", "yanagawa.fukuoka.jp", "yukuhashi.fukuoka.jp", "aizubange.fukushima.jp", "aizumisato.fukushima.jp", "aizuwakamatsu.fukushima.jp", "asakawa.fukushima.jp", "bandai.fukushima.jp", "date.fukushima.jp", "fukushima.fukushima.jp", "furudono.fukushima.jp", "futaba.fukushima.jp", "hanawa.fukushima.jp", "higashi.fukushima.jp", "hirata.fukushima.jp", "hirono.fukushima.jp", "iitate.fukushima.jp", "inawashiro.fukushima.jp", "ishikawa.fukushima.jp", "iwaki.fukushima.jp", "izumizaki.fukushima.jp", "kagamiishi.fukushima.jp", "kaneyama.fukushima.jp", "kawamata.fukushima.jp", "kitakata.fukushima.jp", "kitashiobara.fukushima.jp", "koori.fukushima.jp", "koriyama.fukushima.jp", "kunimi.fukushima.jp", "miharu.fukushima.jp", "mishima.fukushima.jp", "namie.fukushima.jp", "nango.fukushima.jp", "nishiaizu.fukushima.jp", "nishigo.fukushima.jp", "okuma.fukushima.jp", "omotego.fukushima.jp", "ono.fukushima.jp", "otama.fukushima.jp", "samegawa.fukushima.jp", "shimogo.fukushima.jp", "shirakawa.fukushima.jp", "showa.fukushima.jp", "soma.fukushima.jp", "sukagawa.fukushima.jp", "taishin.fukushima.jp", "tamakawa.fukushima.jp", "tanagura.fukushima.jp", "tenei.fukushima.jp", "yabuki.fukushima.jp", "yamato.fukushima.jp", "yamatsuri.fukushima.jp", "yanaizu.fukushima.jp", "yugawa.fukushima.jp", "anpachi.gifu.jp", "ena.gifu.jp", "gifu.gifu.jp", "ginan.gifu.jp", "godo.gifu.jp", "gujo.gifu.jp", "hashima.gifu.jp", "hichiso.gifu.jp", "hida.gifu.jp", "higashishirakawa.gifu.jp", "ibigawa.gifu.jp", "ikeda.gifu.jp", "kakamigahara.gifu.jp", "kani.gifu.jp", "kasahara.gifu.jp", "kasamatsu.gifu.jp", "kawaue.gifu.jp", "kitagata.gifu.jp", "mino.gifu.jp", "minokamo.gifu.jp", "mitake.gifu.jp", "mizunami.gifu.jp", "motosu.gifu.jp", "nakatsugawa.gifu.jp", "ogaki.gifu.jp", "sakahogi.gifu.jp", "seki.gifu.jp", "sekigahara.gifu.jp", "shirakawa.gifu.jp", "tajimi.gifu.jp", "takayama.gifu.jp", "tarui.gifu.jp", "toki.gifu.jp", "tomika.gifu.jp", "wanouchi.gifu.jp", "yamagata.gifu.jp", "yaotsu.gifu.jp", "yoro.gifu.jp", "annaka.gunma.jp", "chiyoda.gunma.jp", "fujioka.gunma.jp", "higashiagatsuma.gunma.jp", "isesaki.gunma.jp", "itakura.gunma.jp", "kanna.gunma.jp", "kanra.gunma.jp", "katashina.gunma.jp", "kawaba.gunma.jp", "kiryu.gunma.jp", "kusatsu.gunma.jp", "maebashi.gunma.jp", "meiwa.gunma.jp", "midori.gunma.jp", "minakami.gunma.jp", "naganohara.gunma.jp", "nakanojo.gunma.jp", "nanmoku.gunma.jp", "numata.gunma.jp", "oizumi.gunma.jp", "ora.gunma.jp", "ota.gunma.jp", "shibukawa.gunma.jp", "shimonita.gunma.jp", "shinto.gunma.jp", "showa.gunma.jp", "takasaki.gunma.jp", "takayama.gunma.jp", "tamamura.gunma.jp", "tatebayashi.gunma.jp", "tomioka.gunma.jp", "tsukiyono.gunma.jp", "tsumagoi.gunma.jp", "ueno.gunma.jp", "yoshioka.gunma.jp", "asaminami.hiroshima.jp", "daiwa.hiroshima.jp", "etajima.hiroshima.jp", "fuchu.hiroshima.jp", "fukuyama.hiroshima.jp", "hatsukaichi.hiroshima.jp", "higashihiroshima.hiroshima.jp", "hongo.hiroshima.jp", "jinsekikogen.hiroshima.jp", "kaita.hiroshima.jp", "kui.hiroshima.jp", "kumano.hiroshima.jp", "kure.hiroshima.jp", "mihara.hiroshima.jp", "miyoshi.hiroshima.jp", "naka.hiroshima.jp", "onomichi.hiroshima.jp", "osakikamijima.hiroshima.jp", "otake.hiroshima.jp", "saka.hiroshima.jp", "sera.hiroshima.jp", "seranishi.hiroshima.jp", "shinichi.hiroshima.jp", "shobara.hiroshima.jp", "takehara.hiroshima.jp", "abashiri.hokkaido.jp", "abira.hokkaido.jp", "aibetsu.hokkaido.jp", "akabira.hokkaido.jp", "akkeshi.hokkaido.jp", "asahikawa.hokkaido.jp", "ashibetsu.hokkaido.jp", "ashoro.hokkaido.jp", "assabu.hokkaido.jp", "atsuma.hokkaido.jp", "bibai.hokkaido.jp", "biei.hokkaido.jp", "bifuka.hokkaido.jp", "bihoro.hokkaido.jp", "biratori.hokkaido.jp", "chippubetsu.hokkaido.jp", "chitose.hokkaido.jp", "date.hokkaido.jp", "ebetsu.hokkaido.jp", "embetsu.hokkaido.jp", "eniwa.hokkaido.jp", "erimo.hokkaido.jp", "esan.hokkaido.jp", "esashi.hokkaido.jp", "fukagawa.hokkaido.jp", "fukushima.hokkaido.jp", "furano.hokkaido.jp", "furubira.hokkaido.jp", "haboro.hokkaido.jp", "hakodate.hokkaido.jp", "hamatonbetsu.hokkaido.jp", "hidaka.hokkaido.jp", "higashikagura.hokkaido.jp", "higashikawa.hokkaido.jp", "hiroo.hokkaido.jp", "hokuryu.hokkaido.jp", "hokuto.hokkaido.jp", "honbetsu.hokkaido.jp", "horokanai.hokkaido.jp", "horonobe.hokkaido.jp", "ikeda.hokkaido.jp", "imakane.hokkaido.jp", "ishikari.hokkaido.jp", "iwamizawa.hokkaido.jp", "iwanai.hokkaido.jp", "kamifurano.hokkaido.jp", "kamikawa.hokkaido.jp", "kamishihoro.hokkaido.jp", "kamisunagawa.hokkaido.jp", "kamoenai.hokkaido.jp", "kayabe.hokkaido.jp", "kembuchi.hokkaido.jp", "kikonai.hokkaido.jp", "kimobetsu.hokkaido.jp", "kitahiroshima.hokkaido.jp", "kitami.hokkaido.jp", "kiyosato.hokkaido.jp", "koshimizu.hokkaido.jp", "kunneppu.hokkaido.jp", "kuriyama.hokkaido.jp", "kuromatsunai.hokkaido.jp", "kushiro.hokkaido.jp", "kutchan.hokkaido.jp", "kyowa.hokkaido.jp", "mashike.hokkaido.jp", "matsumae.hokkaido.jp", "mikasa.hokkaido.jp", "minamifurano.hokkaido.jp", "mombetsu.hokkaido.jp", "moseushi.hokkaido.jp", "mukawa.hokkaido.jp", "muroran.hokkaido.jp", "naie.hokkaido.jp", "nakagawa.hokkaido.jp", "nakasatsunai.hokkaido.jp", "nakatombetsu.hokkaido.jp", "nanae.hokkaido.jp", "nanporo.hokkaido.jp", "nayoro.hokkaido.jp", "nemuro.hokkaido.jp", "niikappu.hokkaido.jp", "niki.hokkaido.jp", "nishiokoppe.hokkaido.jp", "noboribetsu.hokkaido.jp", "numata.hokkaido.jp", "obihiro.hokkaido.jp", "obira.hokkaido.jp", "oketo.hokkaido.jp", "okoppe.hokkaido.jp", "otaru.hokkaido.jp", "otobe.hokkaido.jp", "otofuke.hokkaido.jp", "otoineppu.hokkaido.jp", "oumu.hokkaido.jp", "ozora.hokkaido.jp", "pippu.hokkaido.jp", "rankoshi.hokkaido.jp", "rebun.hokkaido.jp", "rikubetsu.hokkaido.jp", "rishiri.hokkaido.jp", "rishirifuji.hokkaido.jp", "saroma.hokkaido.jp", "sarufutsu.hokkaido.jp", "shakotan.hokkaido.jp", "shari.hokkaido.jp", "shibecha.hokkaido.jp", "shibetsu.hokkaido.jp", "shikabe.hokkaido.jp", "shikaoi.hokkaido.jp", "shimamaki.hokkaido.jp", "shimizu.hokkaido.jp", "shimokawa.hokkaido.jp", "shinshinotsu.hokkaido.jp", "shintoku.hokkaido.jp", "shiranuka.hokkaido.jp", "shiraoi.hokkaido.jp", "shiriuchi.hokkaido.jp", "sobetsu.hokkaido.jp", "sunagawa.hokkaido.jp", "taiki.hokkaido.jp", "takasu.hokkaido.jp", "takikawa.hokkaido.jp", "takinoue.hokkaido.jp", "teshikaga.hokkaido.jp", "tobetsu.hokkaido.jp", "tohma.hokkaido.jp", "tomakomai.hokkaido.jp", "tomari.hokkaido.jp", "toya.hokkaido.jp", "toyako.hokkaido.jp", "toyotomi.hokkaido.jp", "toyoura.hokkaido.jp", "tsubetsu.hokkaido.jp", "tsukigata.hokkaido.jp", "urakawa.hokkaido.jp", "urausu.hokkaido.jp", "uryu.hokkaido.jp", "utashinai.hokkaido.jp", "wakkanai.hokkaido.jp", "wassamu.hokkaido.jp", "yakumo.hokkaido.jp", "yoichi.hokkaido.jp", "aioi.hyogo.jp", "akashi.hyogo.jp", "ako.hyogo.jp", "amagasaki.hyogo.jp", "aogaki.hyogo.jp", "asago.hyogo.jp", "ashiya.hyogo.jp", "awaji.hyogo.jp", "fukusaki.hyogo.jp", "goshiki.hyogo.jp", "harima.hyogo.jp", "himeji.hyogo.jp", "ichikawa.hyogo.jp", "inagawa.hyogo.jp", "itami.hyogo.jp", "kakogawa.hyogo.jp", "kamigori.hyogo.jp", "kamikawa.hyogo.jp", "kasai.hyogo.jp", "kasuga.hyogo.jp", "kawanishi.hyogo.jp", "miki.hyogo.jp", "minamiawaji.hyogo.jp", "nishinomiya.hyogo.jp", "nishiwaki.hyogo.jp", "ono.hyogo.jp", "sanda.hyogo.jp", "sannan.hyogo.jp", "sasayama.hyogo.jp", "sayo.hyogo.jp", "shingu.hyogo.jp", "shinonsen.hyogo.jp", "shiso.hyogo.jp", "sumoto.hyogo.jp", "taishi.hyogo.jp", "taka.hyogo.jp", "takarazuka.hyogo.jp", "takasago.hyogo.jp", "takino.hyogo.jp", "tamba.hyogo.jp", "tatsuno.hyogo.jp", "toyooka.hyogo.jp", "yabu.hyogo.jp", "yashiro.hyogo.jp", "yoka.hyogo.jp", "yokawa.hyogo.jp", "ami.ibaraki.jp", "asahi.ibaraki.jp", "bando.ibaraki.jp", "chikusei.ibaraki.jp", "daigo.ibaraki.jp", "fujishiro.ibaraki.jp", "hitachi.ibaraki.jp", "hitachinaka.ibaraki.jp", "hitachiomiya.ibaraki.jp", "hitachiota.ibaraki.jp", "ibaraki.ibaraki.jp", "ina.ibaraki.jp", "inashiki.ibaraki.jp", "itako.ibaraki.jp", "iwama.ibaraki.jp", "joso.ibaraki.jp", "kamisu.ibaraki.jp", "kasama.ibaraki.jp", "kashima.ibaraki.jp", "kasumigaura.ibaraki.jp", "koga.ibaraki.jp", "miho.ibaraki.jp", "mito.ibaraki.jp", "moriya.ibaraki.jp", "naka.ibaraki.jp", "namegata.ibaraki.jp", "oarai.ibaraki.jp", "ogawa.ibaraki.jp", "omitama.ibaraki.jp", "ryugasaki.ibaraki.jp", "sakai.ibaraki.jp", "sakuragawa.ibaraki.jp", "shimodate.ibaraki.jp", "shimotsuma.ibaraki.jp", "shirosato.ibaraki.jp", "sowa.ibaraki.jp", "suifu.ibaraki.jp", "takahagi.ibaraki.jp", "tamatsukuri.ibaraki.jp", "tokai.ibaraki.jp", "tomobe.ibaraki.jp", "tone.ibaraki.jp", "toride.ibaraki.jp", "tsuchiura.ibaraki.jp", "tsukuba.ibaraki.jp", "uchihara.ibaraki.jp", "ushiku.ibaraki.jp", "yachiyo.ibaraki.jp", "yamagata.ibaraki.jp", "yawara.ibaraki.jp", "yuki.ibaraki.jp", "anamizu.ishikawa.jp", "hakui.ishikawa.jp", "hakusan.ishikawa.jp", "kaga.ishikawa.jp", "kahoku.ishikawa.jp", "kanazawa.ishikawa.jp", "kawakita.ishikawa.jp", "komatsu.ishikawa.jp", "nakanoto.ishikawa.jp", "nanao.ishikawa.jp", "nomi.ishikawa.jp", "nonoichi.ishikawa.jp", "noto.ishikawa.jp", "shika.ishikawa.jp", "suzu.ishikawa.jp", "tsubata.ishikawa.jp", "tsurugi.ishikawa.jp", "uchinada.ishikawa.jp", "wajima.ishikawa.jp", "fudai.iwate.jp", "fujisawa.iwate.jp", "hanamaki.iwate.jp", "hiraizumi.iwate.jp", "hirono.iwate.jp", "ichinohe.iwate.jp", "ichinoseki.iwate.jp", "iwaizumi.iwate.jp", "iwate.iwate.jp", "joboji.iwate.jp", "kamaishi.iwate.jp", "kanegasaki.iwate.jp", "karumai.iwate.jp", "kawai.iwate.jp", "kitakami.iwate.jp", "kuji.iwate.jp", "kunohe.iwate.jp", "kuzumaki.iwate.jp", "miyako.iwate.jp", "mizusawa.iwate.jp", "morioka.iwate.jp", "ninohe.iwate.jp", "noda.iwate.jp", "ofunato.iwate.jp", "oshu.iwate.jp", "otsuchi.iwate.jp", "rikuzentakata.iwate.jp", "shiwa.iwate.jp", "shizukuishi.iwate.jp", "sumita.iwate.jp", "tanohata.iwate.jp", "tono.iwate.jp", "yahaba.iwate.jp", "yamada.iwate.jp", "ayagawa.kagawa.jp", "higashikagawa.kagawa.jp", "kanonji.kagawa.jp", "kotohira.kagawa.jp", "manno.kagawa.jp", "marugame.kagawa.jp", "mitoyo.kagawa.jp", "naoshima.kagawa.jp", "sanuki.kagawa.jp", "tadotsu.kagawa.jp", "takamatsu.kagawa.jp", "tonosho.kagawa.jp", "uchinomi.kagawa.jp", "utazu.kagawa.jp", "zentsuji.kagawa.jp", "akune.kagoshima.jp", "amami.kagoshima.jp", "hioki.kagoshima.jp", "isa.kagoshima.jp", "isen.kagoshima.jp", "izumi.kagoshima.jp", "kagoshima.kagoshima.jp", "kanoya.kagoshima.jp", "kawanabe.kagoshima.jp", "kinko.kagoshima.jp", "kouyama.kagoshima.jp", "makurazaki.kagoshima.jp", "matsumoto.kagoshima.jp", "minamitane.kagoshima.jp", "nakatane.kagoshima.jp", "nishinoomote.kagoshima.jp", "satsumasendai.kagoshima.jp", "soo.kagoshima.jp", "tarumizu.kagoshima.jp", "yusui.kagoshima.jp", "aikawa.kanagawa.jp", "atsugi.kanagawa.jp", "ayase.kanagawa.jp", "chigasaki.kanagawa.jp", "ebina.kanagawa.jp", "fujisawa.kanagawa.jp", "hadano.kanagawa.jp", "hakone.kanagawa.jp", "hiratsuka.kanagawa.jp", "isehara.kanagawa.jp", "kaisei.kanagawa.jp", "kamakura.kanagawa.jp", "kiyokawa.kanagawa.jp", "matsuda.kanagawa.jp", "minamiashigara.kanagawa.jp", "miura.kanagawa.jp", "nakai.kanagawa.jp", "ninomiya.kanagawa.jp", "odawara.kanagawa.jp", "oi.kanagawa.jp", "oiso.kanagawa.jp", "sagamihara.kanagawa.jp", "samukawa.kanagawa.jp", "tsukui.kanagawa.jp", "yamakita.kanagawa.jp", "yamato.kanagawa.jp", "yokosuka.kanagawa.jp", "yugawara.kanagawa.jp", "zama.kanagawa.jp", "zushi.kanagawa.jp", "aki.kochi.jp", "geisei.kochi.jp", "hidaka.kochi.jp", "higashitsuno.kochi.jp", "ino.kochi.jp", "kagami.kochi.jp", "kami.kochi.jp", "kitagawa.kochi.jp", "kochi.kochi.jp", "mihara.kochi.jp", "motoyama.kochi.jp", "muroto.kochi.jp", "nahari.kochi.jp", "nakamura.kochi.jp", "nankoku.kochi.jp", "nishitosa.kochi.jp", "niyodogawa.kochi.jp", "ochi.kochi.jp", "okawa.kochi.jp", "otoyo.kochi.jp", "otsuki.kochi.jp", "sakawa.kochi.jp", "sukumo.kochi.jp", "susaki.kochi.jp", "tosa.kochi.jp", "tosashimizu.kochi.jp", "toyo.kochi.jp", "tsuno.kochi.jp", "umaji.kochi.jp", "yasuda.kochi.jp", "yusuhara.kochi.jp", "amakusa.kumamoto.jp", "arao.kumamoto.jp", "aso.kumamoto.jp", "choyo.kumamoto.jp", "gyokuto.kumamoto.jp", "kamiamakusa.kumamoto.jp", "kikuchi.kumamoto.jp", "kumamoto.kumamoto.jp", "mashiki.kumamoto.jp", "mifune.kumamoto.jp", "minamata.kumamoto.jp", "minamioguni.kumamoto.jp", "nagasu.kumamoto.jp", "nishihara.kumamoto.jp", "oguni.kumamoto.jp", "ozu.kumamoto.jp", "sumoto.kumamoto.jp", "takamori.kumamoto.jp", "uki.kumamoto.jp", "uto.kumamoto.jp", "yamaga.kumamoto.jp", "yamato.kumamoto.jp", "yatsushiro.kumamoto.jp", "ayabe.kyoto.jp", "fukuchiyama.kyoto.jp", "higashiyama.kyoto.jp", "ide.kyoto.jp", "ine.kyoto.jp", "joyo.kyoto.jp", "kameoka.kyoto.jp", "kamo.kyoto.jp", "kita.kyoto.jp", "kizu.kyoto.jp", "kumiyama.kyoto.jp", "kyotamba.kyoto.jp", "kyotanabe.kyoto.jp", "kyotango.kyoto.jp", "maizuru.kyoto.jp", "minami.kyoto.jp", "minamiyamashiro.kyoto.jp", "miyazu.kyoto.jp", "muko.kyoto.jp", "nagaokakyo.kyoto.jp", "nakagyo.kyoto.jp", "nantan.kyoto.jp", "oyamazaki.kyoto.jp", "sakyo.kyoto.jp", "seika.kyoto.jp", "tanabe.kyoto.jp", "uji.kyoto.jp", "ujitawara.kyoto.jp", "wazuka.kyoto.jp", "yamashina.kyoto.jp", "yawata.kyoto.jp", "asahi.mie.jp", "inabe.mie.jp", "ise.mie.jp", "kameyama.mie.jp", "kawagoe.mie.jp", "kiho.mie.jp", "kisosaki.mie.jp", "kiwa.mie.jp", "komono.mie.jp", "kumano.mie.jp", "kuwana.mie.jp", "matsusaka.mie.jp", "meiwa.mie.jp", "mihama.mie.jp", "minamiise.mie.jp", "misugi.mie.jp", "miyama.mie.jp", "nabari.mie.jp", "shima.mie.jp", "suzuka.mie.jp", "tado.mie.jp", "taiki.mie.jp", "taki.mie.jp", "tamaki.mie.jp", "toba.mie.jp", "tsu.mie.jp", "udono.mie.jp", "ureshino.mie.jp", "watarai.mie.jp", "yokkaichi.mie.jp", "furukawa.miyagi.jp", "higashimatsushima.miyagi.jp", "ishinomaki.miyagi.jp", "iwanuma.miyagi.jp", "kakuda.miyagi.jp", "kami.miyagi.jp", "kawasaki.miyagi.jp", "marumori.miyagi.jp", "matsushima.miyagi.jp", "minamisanriku.miyagi.jp", "misato.miyagi.jp", "murata.miyagi.jp", "natori.miyagi.jp", "ogawara.miyagi.jp", "ohira.miyagi.jp", "onagawa.miyagi.jp", "osaki.miyagi.jp", "rifu.miyagi.jp", "semine.miyagi.jp", "shibata.miyagi.jp", "shichikashuku.miyagi.jp", "shikama.miyagi.jp", "shiogama.miyagi.jp", "shiroishi.miyagi.jp", "tagajo.miyagi.jp", "taiwa.miyagi.jp", "tome.miyagi.jp", "tomiya.miyagi.jp", "wakuya.miyagi.jp", "watari.miyagi.jp", "yamamoto.miyagi.jp", "zao.miyagi.jp", "aya.miyazaki.jp", "ebino.miyazaki.jp", "gokase.miyazaki.jp", "hyuga.miyazaki.jp", "kadogawa.miyazaki.jp", "kawaminami.miyazaki.jp", "kijo.miyazaki.jp", "kitagawa.miyazaki.jp", "kitakata.miyazaki.jp", "kitaura.miyazaki.jp", "kobayashi.miyazaki.jp", "kunitomi.miyazaki.jp", "kushima.miyazaki.jp", "mimata.miyazaki.jp", "miyakonojo.miyazaki.jp", "miyazaki.miyazaki.jp", "morotsuka.miyazaki.jp", "nichinan.miyazaki.jp", "nishimera.miyazaki.jp", "nobeoka.miyazaki.jp", "saito.miyazaki.jp", "shiiba.miyazaki.jp", "shintomi.miyazaki.jp", "takaharu.miyazaki.jp", "takanabe.miyazaki.jp", "takazaki.miyazaki.jp", "tsuno.miyazaki.jp", "achi.nagano.jp", "agematsu.nagano.jp", "anan.nagano.jp", "aoki.nagano.jp", "asahi.nagano.jp", "azumino.nagano.jp", "chikuhoku.nagano.jp", "chikuma.nagano.jp", "chino.nagano.jp", "fujimi.nagano.jp", "hakuba.nagano.jp", "hara.nagano.jp", "hiraya.nagano.jp", "iida.nagano.jp", "iijima.nagano.jp", "iiyama.nagano.jp", "iizuna.nagano.jp", "ikeda.nagano.jp", "ikusaka.nagano.jp", "ina.nagano.jp", "karuizawa.nagano.jp", "kawakami.nagano.jp", "kiso.nagano.jp", "kisofukushima.nagano.jp", "kitaaiki.nagano.jp", "komagane.nagano.jp", "komoro.nagano.jp", "matsukawa.nagano.jp", "matsumoto.nagano.jp", "miasa.nagano.jp", "minamiaiki.nagano.jp", "minamimaki.nagano.jp", "minamiminowa.nagano.jp", "minowa.nagano.jp", "miyada.nagano.jp", "miyota.nagano.jp", "mochizuki.nagano.jp", "nagano.nagano.jp", "nagawa.nagano.jp", "nagiso.nagano.jp", "nakagawa.nagano.jp", "nakano.nagano.jp", "nozawaonsen.nagano.jp", "obuse.nagano.jp", "ogawa.nagano.jp", "okaya.nagano.jp", "omachi.nagano.jp", "omi.nagano.jp", "ookuwa.nagano.jp", "ooshika.nagano.jp", "otaki.nagano.jp", "otari.nagano.jp", "sakae.nagano.jp", "sakaki.nagano.jp", "saku.nagano.jp", "sakuho.nagano.jp", "shimosuwa.nagano.jp", "shinanomachi.nagano.jp", "shiojiri.nagano.jp", "suwa.nagano.jp", "suzaka.nagano.jp", "takagi.nagano.jp", "takamori.nagano.jp", "takayama.nagano.jp", "tateshina.nagano.jp", "tatsuno.nagano.jp", "togakushi.nagano.jp", "togura.nagano.jp", "tomi.nagano.jp", "ueda.nagano.jp", "wada.nagano.jp", "yamagata.nagano.jp", "yamanouchi.nagano.jp", "yasaka.nagano.jp", "yasuoka.nagano.jp", "chijiwa.nagasaki.jp", "futsu.nagasaki.jp", "goto.nagasaki.jp", "hasami.nagasaki.jp", "hirado.nagasaki.jp", "iki.nagasaki.jp", "isahaya.nagasaki.jp", "kawatana.nagasaki.jp", "kuchinotsu.nagasaki.jp", "matsuura.nagasaki.jp", "nagasaki.nagasaki.jp", "obama.nagasaki.jp", "omura.nagasaki.jp", "oseto.nagasaki.jp", "saikai.nagasaki.jp", "sasebo.nagasaki.jp", "seihi.nagasaki.jp", "shimabara.nagasaki.jp", "shinkamigoto.nagasaki.jp", "togitsu.nagasaki.jp", "tsushima.nagasaki.jp", "unzen.nagasaki.jp", "ando.nara.jp", "gose.nara.jp", "heguri.nara.jp", "higashiyoshino.nara.jp", "ikaruga.nara.jp", "ikoma.nara.jp", "kamikitayama.nara.jp", "kanmaki.nara.jp", "kashiba.nara.jp", "kashihara.nara.jp", "katsuragi.nara.jp", "kawai.nara.jp", "kawakami.nara.jp", "kawanishi.nara.jp", "koryo.nara.jp", "kurotaki.nara.jp", "mitsue.nara.jp", "miyake.nara.jp", "nara.nara.jp", "nosegawa.nara.jp", "oji.nara.jp", "ouda.nara.jp", "oyodo.nara.jp", "sakurai.nara.jp", "sango.nara.jp", "shimoichi.nara.jp", "shimokitayama.nara.jp", "shinjo.nara.jp", "soni.nara.jp", "takatori.nara.jp", "tawaramoto.nara.jp", "tenkawa.nara.jp", "tenri.nara.jp", "uda.nara.jp", "yamatokoriyama.nara.jp", "yamatotakada.nara.jp", "yamazoe.nara.jp", "yoshino.nara.jp", "aga.niigata.jp", "agano.niigata.jp", "gosen.niigata.jp", "itoigawa.niigata.jp", "izumozaki.niigata.jp", "joetsu.niigata.jp", "kamo.niigata.jp", "kariwa.niigata.jp", "kashiwazaki.niigata.jp", "minamiuonuma.niigata.jp", "mitsuke.niigata.jp", "muika.niigata.jp", "murakami.niigata.jp", "myoko.niigata.jp", "nagaoka.niigata.jp", "niigata.niigata.jp", "ojiya.niigata.jp", "omi.niigata.jp", "sado.niigata.jp", "sanjo.niigata.jp", "seiro.niigata.jp", "seirou.niigata.jp", "sekikawa.niigata.jp", "shibata.niigata.jp", "tagami.niigata.jp", "tainai.niigata.jp", "tochio.niigata.jp", "tokamachi.niigata.jp", "tsubame.niigata.jp", "tsunan.niigata.jp", "uonuma.niigata.jp", "yahiko.niigata.jp", "yoita.niigata.jp", "yuzawa.niigata.jp", "beppu.oita.jp", "bungoono.oita.jp", "bungotakada.oita.jp", "hasama.oita.jp", "hiji.oita.jp", "himeshima.oita.jp", "hita.oita.jp", "kamitsue.oita.jp", "kokonoe.oita.jp", "kuju.oita.jp", "kunisaki.oita.jp", "kusu.oita.jp", "oita.oita.jp", "saiki.oita.jp", "taketa.oita.jp", "tsukumi.oita.jp", "usa.oita.jp", "usuki.oita.jp", "yufu.oita.jp", "akaiwa.okayama.jp", "asakuchi.okayama.jp", "bizen.okayama.jp", "hayashima.okayama.jp", "ibara.okayama.jp", "kagamino.okayama.jp", "kasaoka.okayama.jp", "kibichuo.okayama.jp", "kumenan.okayama.jp", "kurashiki.okayama.jp", "maniwa.okayama.jp", "misaki.okayama.jp", "nagi.okayama.jp", "niimi.okayama.jp", "nishiawakura.okayama.jp", "okayama.okayama.jp", "satosho.okayama.jp", "setouchi.okayama.jp", "shinjo.okayama.jp", "shoo.okayama.jp", "soja.okayama.jp", "takahashi.okayama.jp", "tamano.okayama.jp", "tsuyama.okayama.jp", "wake.okayama.jp", "yakage.okayama.jp", "aguni.okinawa.jp", "ginowan.okinawa.jp", "ginoza.okinawa.jp", "gushikami.okinawa.jp", "haebaru.okinawa.jp", "higashi.okinawa.jp", "hirara.okinawa.jp", "iheya.okinawa.jp", "ishigaki.okinawa.jp", "ishikawa.okinawa.jp", "itoman.okinawa.jp", "izena.okinawa.jp", "kadena.okinawa.jp", "kin.okinawa.jp", "kitadaito.okinawa.jp", "kitanakagusuku.okinawa.jp", "kumejima.okinawa.jp", "kunigami.okinawa.jp", "minamidaito.okinawa.jp", "motobu.okinawa.jp", "nago.okinawa.jp", "naha.okinawa.jp", "nakagusuku.okinawa.jp", "nakijin.okinawa.jp", "nanjo.okinawa.jp", "nishihara.okinawa.jp", "ogimi.okinawa.jp", "okinawa.okinawa.jp", "onna.okinawa.jp", "shimoji.okinawa.jp", "taketomi.okinawa.jp", "tarama.okinawa.jp", "tokashiki.okinawa.jp", "tomigusuku.okinawa.jp", "tonaki.okinawa.jp", "urasoe.okinawa.jp", "uruma.okinawa.jp", "yaese.okinawa.jp", "yomitan.okinawa.jp", "yonabaru.okinawa.jp", "yonaguni.okinawa.jp", "zamami.okinawa.jp", "abeno.osaka.jp", "chihayaakasaka.osaka.jp", "chuo.osaka.jp", "daito.osaka.jp", "fujiidera.osaka.jp", "habikino.osaka.jp", "hannan.osaka.jp", "higashiosaka.osaka.jp", "higashisumiyoshi.osaka.jp", "higashiyodogawa.osaka.jp", "hirakata.osaka.jp", "ibaraki.osaka.jp", "ikeda.osaka.jp", "izumi.osaka.jp", "izumiotsu.osaka.jp", "izumisano.osaka.jp", "kadoma.osaka.jp", "kaizuka.osaka.jp", "kanan.osaka.jp", "kashiwara.osaka.jp", "katano.osaka.jp", "kawachinagano.osaka.jp", "kishiwada.osaka.jp", "kita.osaka.jp", "kumatori.osaka.jp", "matsubara.osaka.jp", "minato.osaka.jp", "minoh.osaka.jp", "misaki.osaka.jp", "moriguchi.osaka.jp", "neyagawa.osaka.jp", "nishi.osaka.jp", "nose.osaka.jp", "osakasayama.osaka.jp", "sakai.osaka.jp", "sayama.osaka.jp", "sennan.osaka.jp", "settsu.osaka.jp", "shijonawate.osaka.jp", "shimamoto.osaka.jp", "suita.osaka.jp", "tadaoka.osaka.jp", "taishi.osaka.jp", "tajiri.osaka.jp", "takaishi.osaka.jp", "takatsuki.osaka.jp", "tondabayashi.osaka.jp", "toyonaka.osaka.jp", "toyono.osaka.jp", "yao.osaka.jp", "ariake.saga.jp", "arita.saga.jp", "fukudomi.saga.jp", "genkai.saga.jp", "hamatama.saga.jp", "hizen.saga.jp", "imari.saga.jp", "kamimine.saga.jp", "kanzaki.saga.jp", "karatsu.saga.jp", "kashima.saga.jp", "kitagata.saga.jp", "kitahata.saga.jp", "kiyama.saga.jp", "kouhoku.saga.jp", "kyuragi.saga.jp", "nishiarita.saga.jp", "ogi.saga.jp", "omachi.saga.jp", "ouchi.saga.jp", "saga.saga.jp", "shiroishi.saga.jp", "taku.saga.jp", "tara.saga.jp", "tosu.saga.jp", "yoshinogari.saga.jp", "arakawa.saitama.jp", "asaka.saitama.jp", "chichibu.saitama.jp", "fujimi.saitama.jp", "fujimino.saitama.jp", "fukaya.saitama.jp", "hanno.saitama.jp", "hanyu.saitama.jp", "hasuda.saitama.jp", "hatogaya.saitama.jp", "hatoyama.saitama.jp", "hidaka.saitama.jp", "higashichichibu.saitama.jp", "higashimatsuyama.saitama.jp", "honjo.saitama.jp", "ina.saitama.jp", "iruma.saitama.jp", "iwatsuki.saitama.jp", "kamiizumi.saitama.jp", "kamikawa.saitama.jp", "kamisato.saitama.jp", "kasukabe.saitama.jp", "kawagoe.saitama.jp", "kawaguchi.saitama.jp", "kawajima.saitama.jp", "kazo.saitama.jp", "kitamoto.saitama.jp", "koshigaya.saitama.jp", "kounosu.saitama.jp", "kuki.saitama.jp", "kumagaya.saitama.jp", "matsubushi.saitama.jp", "minano.saitama.jp", "misato.saitama.jp", "miyashiro.saitama.jp", "miyoshi.saitama.jp", "moroyama.saitama.jp", "nagatoro.saitama.jp", "namegawa.saitama.jp", "niiza.saitama.jp", "ogano.saitama.jp", "ogawa.saitama.jp", "ogose.saitama.jp", "okegawa.saitama.jp", "omiya.saitama.jp", "otaki.saitama.jp", "ranzan.saitama.jp", "ryokami.saitama.jp", "saitama.saitama.jp", "sakado.saitama.jp", "satte.saitama.jp", "sayama.saitama.jp", "shiki.saitama.jp", "shiraoka.saitama.jp", "soka.saitama.jp", "sugito.saitama.jp", "toda.saitama.jp", "tokigawa.saitama.jp", "tokorozawa.saitama.jp", "tsurugashima.saitama.jp", "urawa.saitama.jp", "warabi.saitama.jp", "yashio.saitama.jp", "yokoze.saitama.jp", "yono.saitama.jp", "yorii.saitama.jp", "yoshida.saitama.jp", "yoshikawa.saitama.jp", "yoshimi.saitama.jp", "aisho.shiga.jp", "gamo.shiga.jp", "higashiomi.shiga.jp", "hikone.shiga.jp", "koka.shiga.jp", "konan.shiga.jp", "kosei.shiga.jp", "koto.shiga.jp", "kusatsu.shiga.jp", "maibara.shiga.jp", "moriyama.shiga.jp", "nagahama.shiga.jp", "nishiazai.shiga.jp", "notogawa.shiga.jp", "omihachiman.shiga.jp", "otsu.shiga.jp", "ritto.shiga.jp", "ryuoh.shiga.jp", "takashima.shiga.jp", "takatsuki.shiga.jp", "torahime.shiga.jp", "toyosato.shiga.jp", "yasu.shiga.jp", "akagi.shimane.jp", "ama.shimane.jp", "gotsu.shimane.jp", "hamada.shimane.jp", "higashiizumo.shimane.jp", "hikawa.shimane.jp", "hikimi.shimane.jp", "izumo.shimane.jp", "kakinoki.shimane.jp", "masuda.shimane.jp", "matsue.shimane.jp", "misato.shimane.jp", "nishinoshima.shimane.jp", "ohda.shimane.jp", "okinoshima.shimane.jp", "okuizumo.shimane.jp", "shimane.shimane.jp", "tamayu.shimane.jp", "tsuwano.shimane.jp", "unnan.shimane.jp", "yakumo.shimane.jp", "yasugi.shimane.jp", "yatsuka.shimane.jp", "arai.shizuoka.jp", "atami.shizuoka.jp", "fuji.shizuoka.jp", "fujieda.shizuoka.jp", "fujikawa.shizuoka.jp", "fujinomiya.shizuoka.jp", "fukuroi.shizuoka.jp", "gotemba.shizuoka.jp", "haibara.shizuoka.jp", "hamamatsu.shizuoka.jp", "higashiizu.shizuoka.jp", "ito.shizuoka.jp", "iwata.shizuoka.jp", "izu.shizuoka.jp", "izunokuni.shizuoka.jp", "kakegawa.shizuoka.jp", "kannami.shizuoka.jp", "kawanehon.shizuoka.jp", "kawazu.shizuoka.jp", "kikugawa.shizuoka.jp", "kosai.shizuoka.jp", "makinohara.shizuoka.jp", "matsuzaki.shizuoka.jp", "minamiizu.shizuoka.jp", "mishima.shizuoka.jp", "morimachi.shizuoka.jp", "nishiizu.shizuoka.jp", "numazu.shizuoka.jp", "omaezaki.shizuoka.jp", "shimada.shizuoka.jp", "shimizu.shizuoka.jp", "shimoda.shizuoka.jp", "shizuoka.shizuoka.jp", "susono.shizuoka.jp", "yaizu.shizuoka.jp", "yoshida.shizuoka.jp", "ashikaga.tochigi.jp", "bato.tochigi.jp", "haga.tochigi.jp", "ichikai.tochigi.jp", "iwafune.tochigi.jp", "kaminokawa.tochigi.jp", "kanuma.tochigi.jp", "karasuyama.tochigi.jp", "kuroiso.tochigi.jp", "mashiko.tochigi.jp", "mibu.tochigi.jp", "moka.tochigi.jp", "motegi.tochigi.jp", "nasu.tochigi.jp", "nasushiobara.tochigi.jp", "nikko.tochigi.jp", "nishikata.tochigi.jp", "nogi.tochigi.jp", "ohira.tochigi.jp", "ohtawara.tochigi.jp", "oyama.tochigi.jp", "sakura.tochigi.jp", "sano.tochigi.jp", "shimotsuke.tochigi.jp", "shioya.tochigi.jp", "takanezawa.tochigi.jp", "tochigi.tochigi.jp", "tsuga.tochigi.jp", "ujiie.tochigi.jp", "utsunomiya.tochigi.jp", "yaita.tochigi.jp", "aizumi.tokushima.jp", "anan.tokushima.jp", "ichiba.tokushima.jp", "itano.tokushima.jp", "kainan.tokushima.jp", "komatsushima.tokushima.jp", "matsushige.tokushima.jp", "mima.tokushima.jp", "minami.tokushima.jp", "miyoshi.tokushima.jp", "mugi.tokushima.jp", "nakagawa.tokushima.jp", "naruto.tokushima.jp", "sanagochi.tokushima.jp", "shishikui.tokushima.jp", "tokushima.tokushima.jp", "wajiki.tokushima.jp", "adachi.tokyo.jp", "akiruno.tokyo.jp", "akishima.tokyo.jp", "aogashima.tokyo.jp", "arakawa.tokyo.jp", "bunkyo.tokyo.jp", "chiyoda.tokyo.jp", "chofu.tokyo.jp", "chuo.tokyo.jp", "edogawa.tokyo.jp", "fuchu.tokyo.jp", "fussa.tokyo.jp", "hachijo.tokyo.jp", "hachioji.tokyo.jp", "hamura.tokyo.jp", "higashikurume.tokyo.jp", "higashimurayama.tokyo.jp", "higashiyamato.tokyo.jp", "hino.tokyo.jp", "hinode.tokyo.jp", "hinohara.tokyo.jp", "inagi.tokyo.jp", "itabashi.tokyo.jp", "katsushika.tokyo.jp", "kita.tokyo.jp", "kiyose.tokyo.jp", "kodaira.tokyo.jp", "koganei.tokyo.jp", "kokubunji.tokyo.jp", "komae.tokyo.jp", "koto.tokyo.jp", "kouzushima.tokyo.jp", "kunitachi.tokyo.jp", "machida.tokyo.jp", "meguro.tokyo.jp", "minato.tokyo.jp", "mitaka.tokyo.jp", "mizuho.tokyo.jp", "musashimurayama.tokyo.jp", "musashino.tokyo.jp", "nakano.tokyo.jp", "nerima.tokyo.jp", "ogasawara.tokyo.jp", "okutama.tokyo.jp", "ome.tokyo.jp", "oshima.tokyo.jp", "ota.tokyo.jp", "setagaya.tokyo.jp", "shibuya.tokyo.jp", "shinagawa.tokyo.jp", "shinjuku.tokyo.jp", "suginami.tokyo.jp", "sumida.tokyo.jp", "tachikawa.tokyo.jp", "taito.tokyo.jp", "tama.tokyo.jp", "toshima.tokyo.jp", "chizu.tottori.jp", "hino.tottori.jp", "kawahara.tottori.jp", "koge.tottori.jp", "kotoura.tottori.jp", "misasa.tottori.jp", "nanbu.tottori.jp", "nichinan.tottori.jp", "sakaiminato.tottori.jp", "tottori.tottori.jp", "wakasa.tottori.jp", "yazu.tottori.jp", "yonago.tottori.jp", "asahi.toyama.jp", "fuchu.toyama.jp", "fukumitsu.toyama.jp", "funahashi.toyama.jp", "himi.toyama.jp", "imizu.toyama.jp", "inami.toyama.jp", "johana.toyama.jp", "kamiichi.toyama.jp", "kurobe.toyama.jp", "nakaniikawa.toyama.jp", "namerikawa.toyama.jp", "nanto.toyama.jp", "nyuzen.toyama.jp", "oyabe.toyama.jp", "taira.toyama.jp", "takaoka.toyama.jp", "tateyama.toyama.jp", "toga.toyama.jp", "tonami.toyama.jp", "toyama.toyama.jp", "unazuki.toyama.jp", "uozu.toyama.jp", "yamada.toyama.jp", "arida.wakayama.jp", "aridagawa.wakayama.jp", "gobo.wakayama.jp", "hashimoto.wakayama.jp", "hidaka.wakayama.jp", "hirogawa.wakayama.jp", "inami.wakayama.jp", "iwade.wakayama.jp", "kainan.wakayama.jp", "kamitonda.wakayama.jp", "katsuragi.wakayama.jp", "kimino.wakayama.jp", "kinokawa.wakayama.jp", "kitayama.wakayama.jp", "koya.wakayama.jp", "koza.wakayama.jp", "kozagawa.wakayama.jp", "kudoyama.wakayama.jp", "kushimoto.wakayama.jp", "mihama.wakayama.jp", "misato.wakayama.jp", "nachikatsuura.wakayama.jp", "shingu.wakayama.jp", "shirahama.wakayama.jp", "taiji.wakayama.jp", "tanabe.wakayama.jp", "wakayama.wakayama.jp", "yuasa.wakayama.jp", "yura.wakayama.jp", "asahi.yamagata.jp", "funagata.yamagata.jp", "higashine.yamagata.jp", "iide.yamagata.jp", "kahoku.yamagata.jp", "kaminoyama.yamagata.jp", "kaneyama.yamagata.jp", "kawanishi.yamagata.jp", "mamurogawa.yamagata.jp", "mikawa.yamagata.jp", "murayama.yamagata.jp", "nagai.yamagata.jp", "nakayama.yamagata.jp", "nanyo.yamagata.jp", "nishikawa.yamagata.jp", "obanazawa.yamagata.jp", "oe.yamagata.jp", "oguni.yamagata.jp", "ohkura.yamagata.jp", "oishida.yamagata.jp", "sagae.yamagata.jp", "sakata.yamagata.jp", "sakegawa.yamagata.jp", "shinjo.yamagata.jp", "shirataka.yamagata.jp", "shonai.yamagata.jp", "takahata.yamagata.jp", "tendo.yamagata.jp", "tozawa.yamagata.jp", "tsuruoka.yamagata.jp", "yamagata.yamagata.jp", "yamanobe.yamagata.jp", "yonezawa.yamagata.jp", "yuza.yamagata.jp", "abu.yamaguchi.jp", "hagi.yamaguchi.jp", "hikari.yamaguchi.jp", "hofu.yamaguchi.jp", "iwakuni.yamaguchi.jp", "kudamatsu.yamaguchi.jp", "mitou.yamaguchi.jp", "nagato.yamaguchi.jp", "oshima.yamaguchi.jp", "shimonoseki.yamaguchi.jp", "shunan.yamaguchi.jp", "tabuse.yamaguchi.jp", "tokuyama.yamaguchi.jp", "toyota.yamaguchi.jp", "ube.yamaguchi.jp", "yuu.yamaguchi.jp", "chuo.yamanashi.jp", "doshi.yamanashi.jp", "fuefuki.yamanashi.jp", "fujikawa.yamanashi.jp", "fujikawaguchiko.yamanashi.jp", "fujiyoshida.yamanashi.jp", "hayakawa.yamanashi.jp", "hokuto.yamanashi.jp", "ichikawamisato.yamanashi.jp", "kai.yamanashi.jp", "kofu.yamanashi.jp", "koshu.yamanashi.jp", "kosuge.yamanashi.jp", "minami-alps.yamanashi.jp", "minobu.yamanashi.jp", "nakamichi.yamanashi.jp", "nanbu.yamanashi.jp", "narusawa.yamanashi.jp", "nirasaki.yamanashi.jp", "nishikatsura.yamanashi.jp", "oshino.yamanashi.jp", "otsuki.yamanashi.jp", "showa.yamanashi.jp", "tabayama.yamanashi.jp", "tsuru.yamanashi.jp", "uenohara.yamanashi.jp", "yamanakako.yamanashi.jp", "yamanashi.yamanashi.jp", "ke", "ac.ke", "co.ke", "go.ke", "info.ke", "me.ke", "mobi.ke", "ne.ke", "or.ke", "sc.ke", "kg", "org.kg", "net.kg", "com.kg", "edu.kg", "gov.kg", "mil.kg", "*.kh", "ki", "edu.ki", "biz.ki", "net.ki", "org.ki", "gov.ki", "info.ki", "com.ki", "km", "org.km", "nom.km", "gov.km", "prd.km", "tm.km", "edu.km", "mil.km", "ass.km", "com.km", "coop.km", "asso.km", "presse.km", "medecin.km", "notaires.km", "pharmaciens.km", "veterinaire.km", "gouv.km", "kn", "net.kn", "org.kn", "edu.kn", "gov.kn", "kp", "com.kp", "edu.kp", "gov.kp", "org.kp", "rep.kp", "tra.kp", "kr", "ac.kr", "co.kr", "es.kr", "go.kr", "hs.kr", "kg.kr", "mil.kr", "ms.kr", "ne.kr", "or.kr", "pe.kr", "re.kr", "sc.kr", "busan.kr", "chungbuk.kr", "chungnam.kr", "daegu.kr", "daejeon.kr", "gangwon.kr", "gwangju.kr", "gyeongbuk.kr", "gyeonggi.kr", "gyeongnam.kr", "incheon.kr", "jeju.kr", "jeonbuk.kr", "jeonnam.kr", "seoul.kr", "ulsan.kr", "kw", "com.kw", "edu.kw", "emb.kw", "gov.kw", "ind.kw", "net.kw", "org.kw", "ky", "edu.ky", "gov.ky", "com.ky", "org.ky", "net.ky", "kz", "org.kz", "edu.kz", "net.kz", "gov.kz", "mil.kz", "com.kz", "la", "int.la", "net.la", "info.la", "edu.la", "gov.la", "per.la", "com.la", "org.la", "lb", "com.lb", "edu.lb", "gov.lb", "net.lb", "org.lb", "lc", "com.lc", "net.lc", "co.lc", "org.lc", "edu.lc", "gov.lc", "li", "lk", "gov.lk", "sch.lk", "net.lk", "int.lk", "com.lk", "org.lk", "edu.lk", "ngo.lk", "soc.lk", "web.lk", "ltd.lk", "assn.lk", "grp.lk", "hotel.lk", "ac.lk", "lr", "com.lr", "edu.lr", "gov.lr", "org.lr", "net.lr", "ls", "ac.ls", "biz.ls", "co.ls", "edu.ls", "gov.ls", "info.ls", "net.ls", "org.ls", "sc.ls", "lt", "gov.lt", "lu", "lv", "com.lv", "edu.lv", "gov.lv", "org.lv", "mil.lv", "id.lv", "net.lv", "asn.lv", "conf.lv", "ly", "com.ly", "net.ly", "gov.ly", "plc.ly", "edu.ly", "sch.ly", "med.ly", "org.ly", "id.ly", "ma", "co.ma", "net.ma", "gov.ma", "org.ma", "ac.ma", "press.ma", "mc", "tm.mc", "asso.mc", "md", "me", "co.me", "net.me", "org.me", "edu.me", "ac.me", "gov.me", "its.me", "priv.me", "mg", "org.mg", "nom.mg", "gov.mg", "prd.mg", "tm.mg", "edu.mg", "mil.mg", "com.mg", "co.mg", "mh", "mil", "mk", "com.mk", "org.mk", "net.mk", "edu.mk", "gov.mk", "inf.mk", "name.mk", "ml", "com.ml", "edu.ml", "gouv.ml", "gov.ml", "net.ml", "org.ml", "presse.ml", "*.mm", "mn", "gov.mn", "edu.mn", "org.mn", "mo", "com.mo", "net.mo", "org.mo", "edu.mo", "gov.mo", "mobi", "mp", "mq", "mr", "gov.mr", "ms", "com.ms", "edu.ms", "gov.ms", "net.ms", "org.ms", "mt", "com.mt", "edu.mt", "net.mt", "org.mt", "mu", "com.mu", "net.mu", "org.mu", "gov.mu", "ac.mu", "co.mu", "or.mu", "museum", "academy.museum", "agriculture.museum", "air.museum", "airguard.museum", "alabama.museum", "alaska.museum", "amber.museum", "ambulance.museum", "american.museum", "americana.museum", "americanantiques.museum", "americanart.museum", "amsterdam.museum", "and.museum", "annefrank.museum", "anthro.museum", "anthropology.museum", "antiques.museum", "aquarium.museum", "arboretum.museum", "archaeological.museum", "archaeology.museum", "architecture.museum", "art.museum", "artanddesign.museum", "artcenter.museum", "artdeco.museum", "arteducation.museum", "artgallery.museum", "arts.museum", "artsandcrafts.museum", "asmatart.museum", "assassination.museum", "assisi.museum", "association.museum", "astronomy.museum", "atlanta.museum", "austin.museum", "australia.museum", "automotive.museum", "aviation.museum", "axis.museum", "badajoz.museum", "baghdad.museum", "bahn.museum", "bale.museum", "baltimore.museum", "barcelona.museum", "baseball.museum", "basel.museum", "baths.museum", "bauern.museum", "beauxarts.museum", "beeldengeluid.museum", "bellevue.museum", "bergbau.museum", "berkeley.museum", "berlin.museum", "bern.museum", "bible.museum", "bilbao.museum", "bill.museum", "birdart.museum", "birthplace.museum", "bonn.museum", "boston.museum", "botanical.museum", "botanicalgarden.museum", "botanicgarden.museum", "botany.museum", "brandywinevalley.museum", "brasil.museum", "bristol.museum", "british.museum", "britishcolumbia.museum", "broadcast.museum", "brunel.museum", "brussel.museum", "brussels.museum", "bruxelles.museum", "building.museum", "burghof.museum", "bus.museum", "bushey.museum", "cadaques.museum", "california.museum", "cambridge.museum", "can.museum", "canada.museum", "capebreton.museum", "carrier.museum", "cartoonart.museum", "casadelamoneda.museum", "castle.museum", "castres.museum", "celtic.museum", "center.museum", "chattanooga.museum", "cheltenham.museum", "chesapeakebay.museum", "chicago.museum", "children.museum", "childrens.museum", "childrensgarden.museum", "chiropractic.museum", "chocolate.museum", "christiansburg.museum", "cincinnati.museum", "cinema.museum", "circus.museum", "civilisation.museum", "civilization.museum", "civilwar.museum", "clinton.museum", "clock.museum", "coal.museum", "coastaldefence.museum", "cody.museum", "coldwar.museum", "collection.museum", "colonialwilliamsburg.museum", "coloradoplateau.museum", "columbia.museum", "columbus.museum", "communication.museum", "communications.museum", "community.museum", "computer.museum", "computerhistory.museum", "comunicações.museum", "contemporary.museum", "contemporaryart.museum", "convent.museum", "copenhagen.museum", "corporation.museum", "correios-e-telecomunicações.museum", "corvette.museum", "costume.museum", "countryestate.museum", "county.museum", "crafts.museum", "cranbrook.museum", "creation.museum", "cultural.museum", "culturalcenter.museum", "culture.museum", "cyber.museum", "cymru.museum", "dali.museum", "dallas.museum", "database.museum", "ddr.museum", "decorativearts.museum", "delaware.museum", "delmenhorst.museum", "denmark.museum", "depot.museum", "design.museum", "detroit.museum", "dinosaur.museum", "discovery.museum", "dolls.museum", "donostia.museum", "durham.museum", "eastafrica.museum", "eastcoast.museum", "education.museum", "educational.museum", "egyptian.museum", "eisenbahn.museum", "elburg.museum", "elvendrell.museum", "embroidery.museum", "encyclopedic.museum", "england.museum", "entomology.museum", "environment.museum", "environmentalconservation.museum", "epilepsy.museum", "essex.museum", "estate.museum", "ethnology.museum", "exeter.museum", "exhibition.museum", "family.museum", "farm.museum", "farmequipment.museum", "farmers.museum", "farmstead.museum", "field.museum", "figueres.museum", "filatelia.museum", "film.museum", "fineart.museum", "finearts.museum", "finland.museum", "flanders.museum", "florida.museum", "force.museum", "fortmissoula.museum", "fortworth.museum", "foundation.museum", "francaise.museum", "frankfurt.museum", "franziskaner.museum", "freemasonry.museum", "freiburg.museum", "fribourg.museum", "frog.museum", "fundacio.museum", "furniture.museum", "gallery.museum", "garden.museum", "gateway.museum", "geelvinck.museum", "gemological.museum", "geology.museum", "georgia.museum", "giessen.museum", "glas.museum", "glass.museum", "gorge.museum", "grandrapids.museum", "graz.museum", "guernsey.museum", "halloffame.museum", "hamburg.museum", "handson.museum", "harvestcelebration.museum", "hawaii.museum", "health.museum", "heimatunduhren.museum", "hellas.museum", "helsinki.museum", "hembygdsforbund.museum", "heritage.museum", "histoire.museum", "historical.museum", "historicalsociety.museum", "historichouses.museum", "historisch.museum", "historisches.museum", "history.museum", "historyofscience.museum", "horology.museum", "house.museum", "humanities.museum", "illustration.museum", "imageandsound.museum", "indian.museum", "indiana.museum", "indianapolis.museum", "indianmarket.museum", "intelligence.museum", "interactive.museum", "iraq.museum", "iron.museum", "isleofman.museum", "jamison.museum", "jefferson.museum", "jerusalem.museum", "jewelry.museum", "jewish.museum", "jewishart.museum", "jfk.museum", "journalism.museum", "judaica.museum", "judygarland.museum", "juedisches.museum", "juif.museum", "karate.museum", "karikatur.museum", "kids.museum", "koebenhavn.museum", "koeln.museum", "kunst.museum", "kunstsammlung.museum", "kunstunddesign.museum", "labor.museum", "labour.museum", "lajolla.museum", "lancashire.museum", "landes.museum", "lans.museum", "läns.museum", "larsson.museum", "lewismiller.museum", "lincoln.museum", "linz.museum", "living.museum", "livinghistory.museum", "localhistory.museum", "london.museum", "losangeles.museum", "louvre.museum", "loyalist.museum", "lucerne.museum", "luxembourg.museum", "luzern.museum", "mad.museum", "madrid.museum", "mallorca.museum", "manchester.museum", "mansion.museum", "mansions.museum", "manx.museum", "marburg.museum", "maritime.museum", "maritimo.museum", "maryland.museum", "marylhurst.museum", "media.museum", "medical.museum", "medizinhistorisches.museum", "meeres.museum", "memorial.museum", "mesaverde.museum", "michigan.museum", "midatlantic.museum", "military.museum", "mill.museum", "miners.museum", "mining.museum", "minnesota.museum", "missile.museum", "missoula.museum", "modern.museum", "moma.museum", "money.museum", "monmouth.museum", "monticello.museum", "montreal.museum", "moscow.museum", "motorcycle.museum", "muenchen.museum", "muenster.museum", "mulhouse.museum", "muncie.museum", "museet.museum", "museumcenter.museum", "museumvereniging.museum", "music.museum", "national.museum", "nationalfirearms.museum", "nationalheritage.museum", "nativeamerican.museum", "naturalhistory.museum", "naturalhistorymuseum.museum", "naturalsciences.museum", "nature.museum", "naturhistorisches.museum", "natuurwetenschappen.museum", "naumburg.museum", "naval.museum", "nebraska.museum", "neues.museum", "newhampshire.museum", "newjersey.museum", "newmexico.museum", "newport.museum", "newspaper.museum", "newyork.museum", "niepce.museum", "norfolk.museum", "north.museum", "nrw.museum", "nuernberg.museum", "nuremberg.museum", "nyc.museum", "nyny.museum", "oceanographic.museum", "oceanographique.museum", "omaha.museum", "online.museum", "ontario.museum", "openair.museum", "oregon.museum", "oregontrail.museum", "otago.museum", "oxford.museum", "pacific.museum", "paderborn.museum", "palace.museum", "paleo.museum", "palmsprings.museum", "panama.museum", "paris.museum", "pasadena.museum", "pharmacy.museum", "philadelphia.museum", "philadelphiaarea.museum", "philately.museum", "phoenix.museum", "photography.museum", "pilots.museum", "pittsburgh.museum", "planetarium.museum", "plantation.museum", "plants.museum", "plaza.museum", "portal.museum", "portland.museum", "portlligat.museum", "posts-and-telecommunications.museum", "preservation.museum", "presidio.museum", "press.museum", "project.museum", "public.museum", "pubol.museum", "quebec.museum", "railroad.museum", "railway.museum", "research.museum", "resistance.museum", "riodejaneiro.museum", "rochester.museum", "rockart.museum", "roma.museum", "russia.museum", "saintlouis.museum", "salem.museum", "salvadordali.museum", "salzburg.museum", "sandiego.museum", "sanfrancisco.museum", "santabarbara.museum", "santacruz.museum", "santafe.museum", "saskatchewan.museum", "satx.museum", "savannahga.museum", "schlesisches.museum", "schoenbrunn.museum", "schokoladen.museum", "school.museum", "schweiz.museum", "science.museum", "scienceandhistory.museum", "scienceandindustry.museum", "sciencecenter.museum", "sciencecenters.museum", "science-fiction.museum", "sciencehistory.museum", "sciences.museum", "sciencesnaturelles.museum", "scotland.museum", "seaport.museum", "settlement.museum", "settlers.museum", "shell.museum", "sherbrooke.museum", "sibenik.museum", "silk.museum", "ski.museum", "skole.museum", "society.museum", "sologne.museum", "soundandvision.museum", "southcarolina.museum", "southwest.museum", "space.museum", "spy.museum", "square.museum", "stadt.museum", "stalbans.museum", "starnberg.museum", "state.museum", "stateofdelaware.museum", "station.museum", "steam.museum", "steiermark.museum", "stjohn.museum", "stockholm.museum", "stpetersburg.museum", "stuttgart.museum", "suisse.museum", "surgeonshall.museum", "surrey.museum", "svizzera.museum", "sweden.museum", "sydney.museum", "tank.museum", "tcm.museum", "technology.museum", "telekommunikation.museum", "television.museum", "texas.museum", "textile.museum", "theater.museum", "time.museum", "timekeeping.museum", "topology.museum", "torino.museum", "touch.museum", "town.museum", "transport.museum", "tree.museum", "trolley.museum", "trust.museum", "trustee.museum", "uhren.museum", "ulm.museum", "undersea.museum", "university.museum", "usa.museum", "usantiques.museum", "usarts.museum", "uscountryestate.museum", "usculture.museum", "usdecorativearts.museum", "usgarden.museum", "ushistory.museum", "ushuaia.museum", "uslivinghistory.museum", "utah.museum", "uvic.museum", "valley.museum", "vantaa.museum", "versailles.museum", "viking.museum", "village.museum", "virginia.museum", "virtual.museum", "virtuel.museum", "vlaanderen.museum", "volkenkunde.museum", "wales.museum", "wallonie.museum", "war.museum", "washingtondc.museum", "watchandclock.museum", "watch-and-clock.museum", "western.museum", "westfalen.museum", "whaling.museum", "wildlife.museum", "williamsburg.museum", "windmill.museum", "workshop.museum", "york.museum", "yorkshire.museum", "yosemite.museum", "youth.museum", "zoological.museum", "zoology.museum", "ירושלים.museum", "иком.museum", "mv", "aero.mv", "biz.mv", "com.mv", "coop.mv", "edu.mv", "gov.mv", "info.mv", "int.mv", "mil.mv", "museum.mv", "name.mv", "net.mv", "org.mv", "pro.mv", "mw", "ac.mw", "biz.mw", "co.mw", "com.mw", "coop.mw", "edu.mw", "gov.mw", "int.mw", "museum.mw", "net.mw", "org.mw", "mx", "com.mx", "org.mx", "gob.mx", "edu.mx", "net.mx", "my", "com.my", "net.my", "org.my", "gov.my", "edu.my", "mil.my", "name.my", "mz", "ac.mz", "adv.mz", "co.mz", "edu.mz", "gov.mz", "mil.mz", "net.mz", "org.mz", "na", "info.na", "pro.na", "name.na", "school.na", "or.na", "dr.na", "us.na", "mx.na", "ca.na", "in.na", "cc.na", "tv.na", "ws.na", "mobi.na", "co.na", "com.na", "org.na", "name", "nc", "asso.nc", "nom.nc", "ne", "net", "nf", "com.nf", "net.nf", "per.nf", "rec.nf", "web.nf", "arts.nf", "firm.nf", "info.nf", "other.nf", "store.nf", "ng", "com.ng", "edu.ng", "gov.ng", "i.ng", "mil.ng", "mobi.ng", "name.ng", "net.ng", "org.ng", "sch.ng", "ni", "ac.ni", "biz.ni", "co.ni", "com.ni", "edu.ni", "gob.ni", "in.ni", "info.ni", "int.ni", "mil.ni", "net.ni", "nom.ni", "org.ni", "web.ni", "nl", "no", "fhs.no", "vgs.no", "fylkesbibl.no", "folkebibl.no", "museum.no", "idrett.no", "priv.no", "mil.no", "stat.no", "dep.no", "kommune.no", "herad.no", "aa.no", "ah.no", "bu.no", "fm.no", "hl.no", "hm.no", "jan-mayen.no", "mr.no", "nl.no", "nt.no", "of.no", "ol.no", "oslo.no", "rl.no", "sf.no", "st.no", "svalbard.no", "tm.no", "tr.no", "va.no", "vf.no", "gs.aa.no", "gs.ah.no", "gs.bu.no", "gs.fm.no", "gs.hl.no", "gs.hm.no", "gs.jan-mayen.no", "gs.mr.no", "gs.nl.no", "gs.nt.no", "gs.of.no", "gs.ol.no", "gs.oslo.no", "gs.rl.no", "gs.sf.no", "gs.st.no", "gs.svalbard.no", "gs.tm.no", "gs.tr.no", "gs.va.no", "gs.vf.no", "akrehamn.no", "åkrehamn.no", "algard.no", "ålgård.no", "arna.no", "brumunddal.no", "bryne.no", "bronnoysund.no", "brønnøysund.no", "drobak.no", "drøbak.no", "egersund.no", "fetsund.no", "floro.no", "florø.no", "fredrikstad.no", "hokksund.no", "honefoss.no", "hønefoss.no", "jessheim.no", "jorpeland.no", "jørpeland.no", "kirkenes.no", "kopervik.no", "krokstadelva.no", "langevag.no", "langevåg.no", "leirvik.no", "mjondalen.no", "mjøndalen.no", "mo-i-rana.no", "mosjoen.no", "mosjøen.no", "nesoddtangen.no", "orkanger.no", "osoyro.no", "osøyro.no", "raholt.no", "råholt.no", "sandnessjoen.no", "sandnessjøen.no", "skedsmokorset.no", "slattum.no", "spjelkavik.no", "stathelle.no", "stavern.no", "stjordalshalsen.no", "stjørdalshalsen.no", "tananger.no", "tranby.no", "vossevangen.no", "afjord.no", "åfjord.no", "agdenes.no", "al.no", "ål.no", "alesund.no", "ålesund.no", "alstahaug.no", "alta.no", "áltá.no", "alaheadju.no", "álaheadju.no", "alvdal.no", "amli.no", "åmli.no", "amot.no", "åmot.no", "andebu.no", "andoy.no", "andøy.no", "andasuolo.no", "ardal.no", "årdal.no", "aremark.no", "arendal.no", "ås.no", "aseral.no", "åseral.no", "asker.no", "askim.no", "askvoll.no", "askoy.no", "askøy.no", "asnes.no", "åsnes.no", "audnedaln.no", "aukra.no", "aure.no", "aurland.no", "aurskog-holand.no", "aurskog-høland.no", "austevoll.no", "austrheim.no", "averoy.no", "averøy.no", "balestrand.no", "ballangen.no", "balat.no", "bálát.no", "balsfjord.no", "bahccavuotna.no", "báhccavuotna.no", "bamble.no", "bardu.no", "beardu.no", "beiarn.no", "bajddar.no", "bájddar.no", "baidar.no", "báidár.no", "berg.no", "bergen.no", "berlevag.no", "berlevåg.no", "bearalvahki.no", "bearalváhki.no", "bindal.no", "birkenes.no", "bjarkoy.no", "bjarkøy.no", "bjerkreim.no", "bjugn.no", "bodo.no", "bodø.no", "badaddja.no", "bådåddjå.no", "budejju.no", "bokn.no", "bremanger.no", "bronnoy.no", "brønnøy.no", "bygland.no", "bykle.no", "barum.no", "bærum.no", "bo.telemark.no", "bø.telemark.no", "bo.nordland.no", "bø.nordland.no", "bievat.no", "bievát.no", "bomlo.no", "bømlo.no", "batsfjord.no", "båtsfjord.no", "bahcavuotna.no", "báhcavuotna.no", "dovre.no", "drammen.no", "drangedal.no", "dyroy.no", "dyrøy.no", "donna.no", "dønna.no", "eid.no", "eidfjord.no", "eidsberg.no", "eidskog.no", "eidsvoll.no", "eigersund.no", "elverum.no", "enebakk.no", "engerdal.no", "etne.no", "etnedal.no", "evenes.no", "evenassi.no", "evenášši.no", "evje-og-hornnes.no", "farsund.no", "fauske.no", "fuossko.no", "fuoisku.no", "fedje.no", "fet.no", "finnoy.no", "finnøy.no", "fitjar.no", "fjaler.no", "fjell.no", "flakstad.no", "flatanger.no", "flekkefjord.no", "flesberg.no", "flora.no", "fla.no", "flå.no", "folldal.no", "forsand.no", "fosnes.no", "frei.no", "frogn.no", "froland.no", "frosta.no", "frana.no", "fræna.no", "froya.no", "frøya.no", "fusa.no", "fyresdal.no", "forde.no", "førde.no", "gamvik.no", "gangaviika.no", "gáŋgaviika.no", "gaular.no", "gausdal.no", "gildeskal.no", "gildeskål.no", "giske.no", "gjemnes.no", "gjerdrum.no", "gjerstad.no", "gjesdal.no", "gjovik.no", "gjøvik.no", "gloppen.no", "gol.no", "gran.no", "grane.no", "granvin.no", "gratangen.no", "grimstad.no", "grong.no", "kraanghke.no", "kråanghke.no", "grue.no", "gulen.no", "hadsel.no", "halden.no", "halsa.no", "hamar.no", "hamaroy.no", "habmer.no", "hábmer.no", "hapmir.no", "hápmir.no", "hammerfest.no", "hammarfeasta.no", "hámmárfeasta.no", "haram.no", "hareid.no", "harstad.no", "hasvik.no", "aknoluokta.no", "ákŋoluokta.no", "hattfjelldal.no", "aarborte.no", "haugesund.no", "hemne.no", "hemnes.no", "hemsedal.no", "heroy.more-og-romsdal.no", "herøy.møre-og-romsdal.no", "heroy.nordland.no", "herøy.nordland.no", "hitra.no", "hjartdal.no", "hjelmeland.no", "hobol.no", "hobøl.no", "hof.no", "hol.no", "hole.no", "holmestrand.no", "holtalen.no", "holtålen.no", "hornindal.no", "horten.no", "hurdal.no", "hurum.no", "hvaler.no", "hyllestad.no", "hagebostad.no", "hægebostad.no", "hoyanger.no", "høyanger.no", "hoylandet.no", "høylandet.no", "ha.no", "hå.no", "ibestad.no", "inderoy.no", "inderøy.no", "iveland.no", "jevnaker.no", "jondal.no", "jolster.no", "jølster.no", "karasjok.no", "karasjohka.no", "kárášjohka.no", "karlsoy.no", "galsa.no", "gálsá.no", "karmoy.no", "karmøy.no", "kautokeino.no", "guovdageaidnu.no", "klepp.no", "klabu.no", "klæbu.no", "kongsberg.no", "kongsvinger.no", "kragero.no", "kragerø.no", "kristiansand.no", "kristiansund.no", "krodsherad.no", "krødsherad.no", "kvalsund.no", "rahkkeravju.no", "ráhkkerávju.no", "kvam.no", "kvinesdal.no", "kvinnherad.no", "kviteseid.no", "kvitsoy.no", "kvitsøy.no", "kvafjord.no", "kvæfjord.no", "giehtavuoatna.no", "kvanangen.no", "kvænangen.no", "navuotna.no", "návuotna.no", "kafjord.no", "kåfjord.no", "gaivuotna.no", "gáivuotna.no", "larvik.no", "lavangen.no", "lavagis.no", "loabat.no", "loabát.no", "lebesby.no", "davvesiida.no", "leikanger.no", "leirfjord.no", "leka.no", "leksvik.no", "lenvik.no", "leangaviika.no", "leaŋgaviika.no", "lesja.no", "levanger.no", "lier.no", "lierne.no", "lillehammer.no", "lillesand.no", "lindesnes.no", "lindas.no", "lindås.no", "lom.no", "loppa.no", "lahppi.no", "láhppi.no", "lund.no", "lunner.no", "luroy.no", "lurøy.no", "luster.no", "lyngdal.no", "lyngen.no", "ivgu.no", "lardal.no", "lerdal.no", "lærdal.no", "lodingen.no", "lødingen.no", "lorenskog.no", "lørenskog.no", "loten.no", "løten.no", "malvik.no", "masoy.no", "måsøy.no", "muosat.no", "muosát.no", "mandal.no", "marker.no", "marnardal.no", "masfjorden.no", "meland.no", "meldal.no", "melhus.no", "meloy.no", "meløy.no", "meraker.no", "meråker.no", "moareke.no", "moåreke.no", "midsund.no", "midtre-gauldal.no", "modalen.no", "modum.no", "molde.no", "moskenes.no", "moss.no", "mosvik.no", "malselv.no", "målselv.no", "malatvuopmi.no", "málatvuopmi.no", "namdalseid.no", "aejrie.no", "namsos.no", "namsskogan.no", "naamesjevuemie.no", "nååmesjevuemie.no", "laakesvuemie.no", "nannestad.no", "narvik.no", "narviika.no", "naustdal.no", "nedre-eiker.no", "nes.akershus.no", "nes.buskerud.no", "nesna.no", "nesodden.no", "nesseby.no", "unjarga.no", "unjárga.no", "nesset.no", "nissedal.no", "nittedal.no", "nord-aurdal.no", "nord-fron.no", "nord-odal.no", "norddal.no", "nordkapp.no", "davvenjarga.no", "davvenjárga.no", "nordre-land.no", "nordreisa.no", "raisa.no", "ráisa.no", "nore-og-uvdal.no", "notodden.no", "naroy.no", "nærøy.no", "notteroy.no", "nøtterøy.no", "odda.no", "oksnes.no", "øksnes.no", "oppdal.no", "oppegard.no", "oppegård.no", "orkdal.no", "orland.no", "ørland.no", "orskog.no", "ørskog.no", "orsta.no", "ørsta.no", "os.hedmark.no", "os.hordaland.no", "osen.no", "osteroy.no", "osterøy.no", "ostre-toten.no", "østre-toten.no", "overhalla.no", "ovre-eiker.no", "øvre-eiker.no", "oyer.no", "øyer.no", "oygarden.no", "øygarden.no", "oystre-slidre.no", "øystre-slidre.no", "porsanger.no", "porsangu.no", "porsáŋgu.no", "porsgrunn.no", "radoy.no", "radøy.no", "rakkestad.no", "rana.no", "ruovat.no", "randaberg.no", "rauma.no", "rendalen.no", "rennebu.no", "rennesoy.no", "rennesøy.no", "rindal.no", "ringebu.no", "ringerike.no", "ringsaker.no", "rissa.no", "risor.no", "risør.no", "roan.no", "rollag.no", "rygge.no", "ralingen.no", "rælingen.no", "rodoy.no", "rødøy.no", "romskog.no", "rømskog.no", "roros.no", "røros.no", "rost.no", "røst.no", "royken.no", "røyken.no", "royrvik.no", "røyrvik.no", "rade.no", "råde.no", "salangen.no", "siellak.no", "saltdal.no", "salat.no", "sálát.no", "sálat.no", "samnanger.no", "sande.more-og-romsdal.no", "sande.møre-og-romsdal.no", "sande.vestfold.no", "sandefjord.no", "sandnes.no", "sandoy.no", "sandøy.no", "sarpsborg.no", "sauda.no", "sauherad.no", "sel.no", "selbu.no", "selje.no", "seljord.no", "sigdal.no", "siljan.no", "sirdal.no", "skaun.no", "skedsmo.no", "ski.no", "skien.no", "skiptvet.no", "skjervoy.no", "skjervøy.no", "skierva.no", "skiervá.no", "skjak.no", "skjåk.no", "skodje.no", "skanland.no", "skånland.no", "skanit.no", "skánit.no", "smola.no", "smøla.no", "snillfjord.no", "snasa.no", "snåsa.no", "snoasa.no", "snaase.no", "snåase.no", "sogndal.no", "sokndal.no", "sola.no", "solund.no", "songdalen.no", "sortland.no", "spydeberg.no", "stange.no", "stavanger.no", "steigen.no", "steinkjer.no", "stjordal.no", "stjørdal.no", "stokke.no", "stor-elvdal.no", "stord.no", "stordal.no", "storfjord.no", "omasvuotna.no", "strand.no", "stranda.no", "stryn.no", "sula.no", "suldal.no", "sund.no", "sunndal.no", "surnadal.no", "sveio.no", "svelvik.no", "sykkylven.no", "sogne.no", "søgne.no", "somna.no", "sømna.no", "sondre-land.no", "søndre-land.no", "sor-aurdal.no", "sør-aurdal.no", "sor-fron.no", "sør-fron.no", "sor-odal.no", "sør-odal.no", "sor-varanger.no", "sør-varanger.no", "matta-varjjat.no", "mátta-várjjat.no", "sorfold.no", "sørfold.no", "sorreisa.no", "sørreisa.no", "sorum.no", "sørum.no", "tana.no", "deatnu.no", "time.no", "tingvoll.no", "tinn.no", "tjeldsund.no", "dielddanuorri.no", "tjome.no", "tjøme.no", "tokke.no", "tolga.no", "torsken.no", "tranoy.no", "tranøy.no", "tromso.no", "tromsø.no", "tromsa.no", "romsa.no", "trondheim.no", "troandin.no", "trysil.no", "trana.no", "træna.no", "trogstad.no", "trøgstad.no", "tvedestrand.no", "tydal.no", "tynset.no", "tysfjord.no", "divtasvuodna.no", "divttasvuotna.no", "tysnes.no", "tysvar.no", "tysvær.no", "tonsberg.no", "tønsberg.no", "ullensaker.no", "ullensvang.no", "ulvik.no", "utsira.no", "vadso.no", "vadsø.no", "cahcesuolo.no", "čáhcesuolo.no", "vaksdal.no", "valle.no", "vang.no", "vanylven.no", "vardo.no", "vardø.no", "varggat.no", "várggát.no", "vefsn.no", "vaapste.no", "vega.no", "vegarshei.no", "vegårshei.no", "vennesla.no", "verdal.no", "verran.no", "vestby.no", "vestnes.no", "vestre-slidre.no", "vestre-toten.no", "vestvagoy.no", "vestvågøy.no", "vevelstad.no", "vik.no", "vikna.no", "vindafjord.no", "volda.no", "voss.no", "varoy.no", "værøy.no", "vagan.no", "vågan.no", "voagat.no", "vagsoy.no", "vågsøy.no", "vaga.no", "vågå.no", "valer.ostfold.no", "våler.østfold.no", "valer.hedmark.no", "våler.hedmark.no", "*.np", "nr", "biz.nr", "info.nr", "gov.nr", "edu.nr", "org.nr", "net.nr", "com.nr", "nu", "nz", "ac.nz", "co.nz", "cri.nz", "geek.nz", "gen.nz", "govt.nz", "health.nz", "iwi.nz", "kiwi.nz", "maori.nz", "mil.nz", "māori.nz", "net.nz", "org.nz", "parliament.nz", "school.nz", "om", "co.om", "com.om", "edu.om", "gov.om", "med.om", "museum.om", "net.om", "org.om", "pro.om", "onion", "org", "pa", "ac.pa", "gob.pa", "com.pa", "org.pa", "sld.pa", "edu.pa", "net.pa", "ing.pa", "abo.pa", "med.pa", "nom.pa", "pe", "edu.pe", "gob.pe", "nom.pe", "mil.pe", "org.pe", "com.pe", "net.pe", "pf", "com.pf", "org.pf", "edu.pf", "*.pg", "ph", "com.ph", "net.ph", "org.ph", "gov.ph", "edu.ph", "ngo.ph", "mil.ph", "i.ph", "pk", "com.pk", "net.pk", "edu.pk", "org.pk", "fam.pk", "biz.pk", "web.pk", "gov.pk", "gob.pk", "gok.pk", "gon.pk", "gop.pk", "gos.pk", "info.pk", "pl", "com.pl", "net.pl", "org.pl", "aid.pl", "agro.pl", "atm.pl", "auto.pl", "biz.pl", "edu.pl", "gmina.pl", "gsm.pl", "info.pl", "mail.pl", "miasta.pl", "media.pl", "mil.pl", "nieruchomosci.pl", "nom.pl", "pc.pl", "powiat.pl", "priv.pl", "realestate.pl", "rel.pl", "sex.pl", "shop.pl", "sklep.pl", "sos.pl", "szkola.pl", "targi.pl", "tm.pl", "tourism.pl", "travel.pl", "turystyka.pl", "gov.pl", "ap.gov.pl", "ic.gov.pl", "is.gov.pl", "us.gov.pl", "kmpsp.gov.pl", "kppsp.gov.pl", "kwpsp.gov.pl", "psp.gov.pl", "wskr.gov.pl", "kwp.gov.pl", "mw.gov.pl", "ug.gov.pl", "um.gov.pl", "umig.gov.pl", "ugim.gov.pl", "upow.gov.pl", "uw.gov.pl", "starostwo.gov.pl", "pa.gov.pl", "po.gov.pl", "psse.gov.pl", "pup.gov.pl", "rzgw.gov.pl", "sa.gov.pl", "so.gov.pl", "sr.gov.pl", "wsa.gov.pl", "sko.gov.pl", "uzs.gov.pl", "wiih.gov.pl", "winb.gov.pl", "pinb.gov.pl", "wios.gov.pl", "witd.gov.pl", "wzmiuw.gov.pl", "piw.gov.pl", "wiw.gov.pl", "griw.gov.pl", "wif.gov.pl", "oum.gov.pl", "sdn.gov.pl", "zp.gov.pl", "uppo.gov.pl", "mup.gov.pl", "wuoz.gov.pl", "konsulat.gov.pl", "oirm.gov.pl", "augustow.pl", "babia-gora.pl", "bedzin.pl", "beskidy.pl", "bialowieza.pl", "bialystok.pl", "bielawa.pl", "bieszczady.pl", "boleslawiec.pl", "bydgoszcz.pl", "bytom.pl", "cieszyn.pl", "czeladz.pl", "czest.pl", "dlugoleka.pl", "elblag.pl", "elk.pl", "glogow.pl", "gniezno.pl", "gorlice.pl", "grajewo.pl", "ilawa.pl", "jaworzno.pl", "jelenia-gora.pl", "jgora.pl", "kalisz.pl", "kazimierz-dolny.pl", "karpacz.pl", "kartuzy.pl", "kaszuby.pl", "katowice.pl", "kepno.pl", "ketrzyn.pl", "klodzko.pl", "kobierzyce.pl", "kolobrzeg.pl", "konin.pl", "konskowola.pl", "kutno.pl", "lapy.pl", "lebork.pl", "legnica.pl", "lezajsk.pl", "limanowa.pl", "lomza.pl", "lowicz.pl", "lubin.pl", "lukow.pl", "malbork.pl", "malopolska.pl", "mazowsze.pl", "mazury.pl", "mielec.pl", "mielno.pl", "mragowo.pl", "naklo.pl", "nowaruda.pl", "nysa.pl", "olawa.pl", "olecko.pl", "olkusz.pl", "olsztyn.pl", "opoczno.pl", "opole.pl", "ostroda.pl", "ostroleka.pl", "ostrowiec.pl", "ostrowwlkp.pl", "pila.pl", "pisz.pl", "podhale.pl", "podlasie.pl", "polkowice.pl", "pomorze.pl", "pomorskie.pl", "prochowice.pl", "pruszkow.pl", "przeworsk.pl", "pulawy.pl", "radom.pl", "rawa-maz.pl", "rybnik.pl", "rzeszow.pl", "sanok.pl", "sejny.pl", "slask.pl", "slupsk.pl", "sosnowiec.pl", "stalowa-wola.pl", "skoczow.pl", "starachowice.pl", "stargard.pl", "suwalki.pl", "swidnica.pl", "swiebodzin.pl", "swinoujscie.pl", "szczecin.pl", "szczytno.pl", "tarnobrzeg.pl", "tgory.pl", "turek.pl", "tychy.pl", "ustka.pl", "walbrzych.pl", "warmia.pl", "warszawa.pl", "waw.pl", "wegrow.pl", "wielun.pl", "wlocl.pl", "wloclawek.pl", "wodzislaw.pl", "wolomin.pl", "wroclaw.pl", "zachpomor.pl", "zagan.pl", "zarow.pl", "zgora.pl", "zgorzelec.pl", "pm", "pn", "gov.pn", "co.pn", "org.pn", "edu.pn", "net.pn", "post", "pr", "com.pr", "net.pr", "org.pr", "gov.pr", "edu.pr", "isla.pr", "pro.pr", "biz.pr", "info.pr", "name.pr", "est.pr", "prof.pr", "ac.pr", "pro", "aaa.pro", "aca.pro", "acct.pro", "avocat.pro", "bar.pro", "cpa.pro", "eng.pro", "jur.pro", "law.pro", "med.pro", "recht.pro", "ps", "edu.ps", "gov.ps", "sec.ps", "plo.ps", "com.ps", "org.ps", "net.ps", "pt", "net.pt", "gov.pt", "org.pt", "edu.pt", "int.pt", "publ.pt", "com.pt", "nome.pt", "pw", "co.pw", "ne.pw", "or.pw", "ed.pw", "go.pw", "belau.pw", "py", "com.py", "coop.py", "edu.py", "gov.py", "mil.py", "net.py", "org.py", "qa", "com.qa", "edu.qa", "gov.qa", "mil.qa", "name.qa", "net.qa", "org.qa", "sch.qa", "re", "asso.re", "com.re", "nom.re", "ro", "arts.ro", "com.ro", "firm.ro", "info.ro", "nom.ro", "nt.ro", "org.ro", "rec.ro", "store.ro", "tm.ro", "www.ro", "rs", "ac.rs", "co.rs", "edu.rs", "gov.rs", "in.rs", "org.rs", "ru", "ac.ru", "edu.ru", "gov.ru", "int.ru", "mil.ru", "test.ru", "rw", "ac.rw", "co.rw", "coop.rw", "gov.rw", "mil.rw", "net.rw", "org.rw", "sa", "com.sa", "net.sa", "org.sa", "gov.sa", "med.sa", "pub.sa", "edu.sa", "sch.sa", "sb", "com.sb", "edu.sb", "gov.sb", "net.sb", "org.sb", "sc", "com.sc", "gov.sc", "net.sc", "org.sc", "edu.sc", "sd", "com.sd", "net.sd", "org.sd", "edu.sd", "med.sd", "tv.sd", "gov.sd", "info.sd", "se", "a.se", "ac.se", "b.se", "bd.se", "brand.se", "c.se", "d.se", "e.se", "f.se", "fh.se", "fhsk.se", "fhv.se", "g.se", "h.se", "i.se", "k.se", "komforb.se", "kommunalforbund.se", "komvux.se", "l.se", "lanbib.se", "m.se", "n.se", "naturbruksgymn.se", "o.se", "org.se", "p.se", "parti.se", "pp.se", "press.se", "r.se", "s.se", "t.se", "tm.se", "u.se", "w.se", "x.se", "y.se", "z.se", "sg", "com.sg", "net.sg", "org.sg", "gov.sg", "edu.sg", "per.sg", "sh", "com.sh", "net.sh", "gov.sh", "org.sh", "mil.sh", "si", "sj", "sk", "sl", "com.sl", "net.sl", "edu.sl", "gov.sl", "org.sl", "sm", "sn", "art.sn", "com.sn", "edu.sn", "gouv.sn", "org.sn", "perso.sn", "univ.sn", "so", "com.so", "net.so", "org.so", "sr", "st", "co.st", "com.st", "consulado.st", "edu.st", "embaixada.st", "gov.st", "mil.st", "net.st", "org.st", "principe.st", "saotome.st", "store.st", "su", "sv", "com.sv", "edu.sv", "gob.sv", "org.sv", "red.sv", "sx", "gov.sx", "sy", "edu.sy", "gov.sy", "net.sy", "mil.sy", "com.sy", "org.sy", "sz", "co.sz", "ac.sz", "org.sz", "tc", "td", "tel", "tf", "tg", "th", "ac.th", "co.th", "go.th", "in.th", "mi.th", "net.th", "or.th", "tj", "ac.tj", "biz.tj", "co.tj", "com.tj", "edu.tj", "go.tj", "gov.tj", "int.tj", "mil.tj", "name.tj", "net.tj", "nic.tj", "org.tj", "test.tj", "web.tj", "tk", "tl", "gov.tl", "tm", "com.tm", "co.tm", "org.tm", "net.tm", "nom.tm", "gov.tm", "mil.tm", "edu.tm", "tn", "com.tn", "ens.tn", "fin.tn", "gov.tn", "ind.tn", "intl.tn", "nat.tn", "net.tn", "org.tn", "info.tn", "perso.tn", "tourism.tn", "edunet.tn", "rnrt.tn", "rns.tn", "rnu.tn", "mincom.tn", "agrinet.tn", "defense.tn", "turen.tn", "to", "com.to", "gov.to", "net.to", "org.to", "edu.to", "mil.to", "tr", "av.tr", "bbs.tr", "bel.tr", "biz.tr", "com.tr", "dr.tr", "edu.tr", "gen.tr", "gov.tr", "info.tr", "mil.tr", "k12.tr", "kep.tr", "name.tr", "net.tr", "org.tr", "pol.tr", "tel.tr", "tsk.tr", "tv.tr", "web.tr", "nc.tr", "gov.nc.tr", "tt", "co.tt", "com.tt", "org.tt", "net.tt", "biz.tt", "info.tt", "pro.tt", "int.tt", "coop.tt", "jobs.tt", "mobi.tt", "travel.tt", "museum.tt", "aero.tt", "name.tt", "gov.tt", "edu.tt", "tv", "tw", "edu.tw", "gov.tw", "mil.tw", "com.tw", "net.tw", "org.tw", "idv.tw", "game.tw", "ebiz.tw", "club.tw", "網路.tw", "組織.tw", "商業.tw", "tz", "ac.tz", "co.tz", "go.tz", "hotel.tz", "info.tz", "me.tz", "mil.tz", "mobi.tz", "ne.tz", "or.tz", "sc.tz", "tv.tz", "ua", "com.ua", "edu.ua", "gov.ua", "in.ua", "net.ua", "org.ua", "cherkassy.ua", "cherkasy.ua", "chernigov.ua", "chernihiv.ua", "chernivtsi.ua", "chernovtsy.ua", "ck.ua", "cn.ua", "cr.ua", "crimea.ua", "cv.ua", "dn.ua", "dnepropetrovsk.ua", "dnipropetrovsk.ua", "dominic.ua", "donetsk.ua", "dp.ua", "if.ua", "ivano-frankivsk.ua", "kh.ua", "kharkiv.ua", "kharkov.ua", "kherson.ua", "khmelnitskiy.ua", "khmelnytskyi.ua", "kiev.ua", "kirovograd.ua", "km.ua", "kr.ua", "krym.ua", "ks.ua", "kv.ua", "kyiv.ua", "lg.ua", "lt.ua", "lugansk.ua", "lutsk.ua", "lv.ua", "lviv.ua", "mk.ua", "mykolaiv.ua", "nikolaev.ua", "od.ua", "odesa.ua", "odessa.ua", "pl.ua", "poltava.ua", "rivne.ua", "rovno.ua", "rv.ua", "sb.ua", "sebastopol.ua", "sevastopol.ua", "sm.ua", "sumy.ua", "te.ua", "ternopil.ua", "uz.ua", "uzhgorod.ua", "vinnica.ua", "vinnytsia.ua", "vn.ua", "volyn.ua", "yalta.ua", "zaporizhzhe.ua", "zaporizhzhia.ua", "zhitomir.ua", "zhytomyr.ua", "zp.ua", "zt.ua", "ug", "co.ug", "or.ug", "ac.ug", "sc.ug", "go.ug", "ne.ug", "com.ug", "org.ug", "uk", "ac.uk", "co.uk", "gov.uk", "ltd.uk", "me.uk", "net.uk", "nhs.uk", "org.uk", "plc.uk", "police.uk", "*.sch.uk", "us", "dni.us", "fed.us", "isa.us", "kids.us", "nsn.us", "ak.us", "al.us", "ar.us", "as.us", "az.us", "ca.us", "co.us", "ct.us", "dc.us", "de.us", "fl.us", "ga.us", "gu.us", "hi.us", "ia.us", "id.us", "il.us", "in.us", "ks.us", "ky.us", "la.us", "ma.us", "md.us", "me.us", "mi.us", "mn.us", "mo.us", "ms.us", "mt.us", "nc.us", "nd.us", "ne.us", "nh.us", "nj.us", "nm.us", "nv.us", "ny.us", "oh.us", "ok.us", "or.us", "pa.us", "pr.us", "ri.us", "sc.us", "sd.us", "tn.us", "tx.us", "ut.us", "vi.us", "vt.us", "va.us", "wa.us", "wi.us", "wv.us", "wy.us", "k12.ak.us", "k12.al.us", "k12.ar.us", "k12.as.us", "k12.az.us", "k12.ca.us", "k12.co.us", "k12.ct.us", "k12.dc.us", "k12.de.us", "k12.fl.us", "k12.ga.us", "k12.gu.us", "k12.ia.us", "k12.id.us", "k12.il.us", "k12.in.us", "k12.ks.us", "k12.ky.us", "k12.la.us", "k12.ma.us", "k12.md.us", "k12.me.us", "k12.mi.us", "k12.mn.us", "k12.mo.us", "k12.ms.us", "k12.mt.us", "k12.nc.us", "k12.ne.us", "k12.nh.us", "k12.nj.us", "k12.nm.us", "k12.nv.us", "k12.ny.us", "k12.oh.us", "k12.ok.us", "k12.or.us", "k12.pa.us", "k12.pr.us", "k12.ri.us", "k12.sc.us", "k12.tn.us", "k12.tx.us", "k12.ut.us", "k12.vi.us", "k12.vt.us", "k12.va.us", "k12.wa.us", "k12.wi.us", "k12.wy.us", "cc.ak.us", "cc.al.us", "cc.ar.us", "cc.as.us", "cc.az.us", "cc.ca.us", "cc.co.us", "cc.ct.us", "cc.dc.us", "cc.de.us", "cc.fl.us", "cc.ga.us", "cc.gu.us", "cc.hi.us", "cc.ia.us", "cc.id.us", "cc.il.us", "cc.in.us", "cc.ks.us", "cc.ky.us", "cc.la.us", "cc.ma.us", "cc.md.us", "cc.me.us", "cc.mi.us", "cc.mn.us", "cc.mo.us", "cc.ms.us", "cc.mt.us", "cc.nc.us", "cc.nd.us", "cc.ne.us", "cc.nh.us", "cc.nj.us", "cc.nm.us", "cc.nv.us", "cc.ny.us", "cc.oh.us", "cc.ok.us", "cc.or.us", "cc.pa.us", "cc.pr.us", "cc.ri.us", "cc.sc.us", "cc.sd.us", "cc.tn.us", "cc.tx.us", "cc.ut.us", "cc.vi.us", "cc.vt.us", "cc.va.us", "cc.wa.us", "cc.wi.us", "cc.wv.us", "cc.wy.us", "lib.ak.us", "lib.al.us", "lib.ar.us", "lib.as.us", "lib.az.us", "lib.ca.us", "lib.co.us", "lib.ct.us", "lib.dc.us", "lib.fl.us", "lib.ga.us", "lib.gu.us", "lib.hi.us", "lib.ia.us", "lib.id.us", "lib.il.us", "lib.in.us", "lib.ks.us", "lib.ky.us", "lib.la.us", "lib.ma.us", "lib.md.us", "lib.me.us", "lib.mi.us", "lib.mn.us", "lib.mo.us", "lib.ms.us", "lib.mt.us", "lib.nc.us", "lib.nd.us", "lib.ne.us", "lib.nh.us", "lib.nj.us", "lib.nm.us", "lib.nv.us", "lib.ny.us", "lib.oh.us", "lib.ok.us", "lib.or.us", "lib.pa.us", "lib.pr.us", "lib.ri.us", "lib.sc.us", "lib.sd.us", "lib.tn.us", "lib.tx.us", "lib.ut.us", "lib.vi.us", "lib.vt.us", "lib.va.us", "lib.wa.us", "lib.wi.us", "lib.wy.us", "pvt.k12.ma.us", "chtr.k12.ma.us", "paroch.k12.ma.us", "ann-arbor.mi.us", "cog.mi.us", "dst.mi.us", "eaton.mi.us", "gen.mi.us", "mus.mi.us", "tec.mi.us", "washtenaw.mi.us", "uy", "com.uy", "edu.uy", "gub.uy", "mil.uy", "net.uy", "org.uy", "uz", "co.uz", "com.uz", "net.uz", "org.uz", "va", "vc", "com.vc", "net.vc", "org.vc", "gov.vc", "mil.vc", "edu.vc", "ve", "arts.ve", "co.ve", "com.ve", "e12.ve", "edu.ve", "firm.ve", "gob.ve", "gov.ve", "info.ve", "int.ve", "mil.ve", "net.ve", "org.ve", "rec.ve", "store.ve", "tec.ve", "web.ve", "vg", "vi", "co.vi", "com.vi", "k12.vi", "net.vi", "org.vi", "vn", "com.vn", "net.vn", "org.vn", "edu.vn", "gov.vn", "int.vn", "ac.vn", "biz.vn", "info.vn", "name.vn", "pro.vn", "health.vn", "vu", "com.vu", "edu.vu", "net.vu", "org.vu", "wf", "ws", "com.ws", "net.ws", "org.ws", "gov.ws", "edu.ws", "yt", "امارات", "հայ", "বাংলা", "бг", "бел", "中国", "中國", "الجزائر", "مصر", "ею", "გე", "ελ", "香港", "公司.香港", "教育.香港", "政府.香港", "個人.香港", "網絡.香港", "組織.香港", "ಭಾರತ", "ଭାରତ", "ভাৰত", "भारतम्", "भारोत", "ڀارت", "ഭാരതം", "भारत", "بارت", "بھارت", "భారత్", "ભારત", "ਭਾਰਤ", "ভারত", "இந்தியா", "ایران", "ايران", "عراق", "الاردن", "한국", "қаз", "ලංකා", "இலங்கை", "المغرب", "мкд", "мон", "澳門", "澳门", "مليسيا", "عمان", "پاکستان", "پاكستان", "فلسطين", "срб", "пр.срб", "орг.срб", "обр.срб", "од.срб", "упр.срб", "ак.срб", "рф", "قطر", "السعودية", "السعودیة", "السعودیۃ", "السعوديه", "سودان", "新加坡", "சிங்கப்பூர்", "سورية", "سوريا", "ไทย", "ศึกษา.ไทย", "ธุรกิจ.ไทย", "รัฐบาล.ไทย", "ทหาร.ไทย", "เน็ต.ไทย", "องค์กร.ไทย", "تونس", "台灣", "台湾", "臺灣", "укр", "اليمن", "xxx", "*.ye", "ac.za", "agric.za", "alt.za", "co.za", "edu.za", "gov.za", "grondar.za", "law.za", "mil.za", "net.za", "ngo.za", "nis.za", "nom.za", "org.za", "school.za", "tm.za", "web.za", "zm", "ac.zm", "biz.zm", "co.zm", "com.zm", "edu.zm", "gov.zm", "info.zm", "mil.zm", "net.zm", "org.zm", "sch.zm", "zw", "ac.zw", "co.zw", "gov.zw", "mil.zw", "org.zw", "aaa", "aarp", "abarth", "abb", "abbott", "abbvie", "abc", "able", "abogado", "abudhabi", "academy", "accenture", "accountant", "accountants", "aco", "actor", "adac", "ads", "adult", "aeg", "aetna", "afamilycompany", "afl", "africa", "agakhan", "agency", "aig", "aigo", "airbus", "airforce", "airtel", "akdn", "alfaromeo", "alibaba", "alipay", "allfinanz", "allstate", "ally", "alsace", "alstom", "americanexpress", "americanfamily", "amex", "amfam", "amica", "amsterdam", "analytics", "android", "anquan", "anz", "aol", "apartments", "app", "apple", "aquarelle", "arab", "aramco", "archi", "army", "art", "arte", "asda", "associates", "athleta", "attorney", "auction", "audi", "audible", "audio", "auspost", "author", "auto", "autos", "avianca", "aws", "axa", "azure", "baby", "baidu", "banamex", "bananarepublic", "band", "bank", "bar", "barcelona", "barclaycard", "barclays", "barefoot", "bargains", "baseball", "basketball", "bauhaus", "bayern", "bbc", "bbt", "bbva", "bcg", "bcn", "beats", "beauty", "beer", "bentley", "berlin", "best", "bestbuy", "bet", "bharti", "bible", "bid", "bike", "bing", "bingo", "bio", "black", "blackfriday", "blockbuster", "blog", "bloomberg", "blue", "bms", "bmw", "bnl", "bnpparibas", "boats", "boehringer", "bofa", "bom", "bond", "boo", "book", "booking", "bosch", "bostik", "boston", "bot", "boutique", "box", "bradesco", "bridgestone", "broadway", "broker", "brother", "brussels", "budapest", "bugatti", "build", "builders", "business", "buy", "buzz", "bzh", "cab", "cafe", "cal", "call", "calvinklein", "cam", "camera", "camp", "cancerresearch", "canon", "capetown", "capital", "capitalone", "car", "caravan", "cards", "care", "career", "careers", "cars", "cartier", "casa", "case", "caseih", "cash", "casino", "catering", "catholic", "cba", "cbn", "cbre", "cbs", "ceb", "center", "ceo", "cern", "cfa", "cfd", "chanel", "channel", "charity", "chase", "chat", "cheap", "chintai", "christmas", "chrome", "chrysler", "church", "cipriani", "circle", "cisco", "citadel", "citi", "citic", "city", "cityeats", "claims", "cleaning", "click", "clinic", "clinique", "clothing", "cloud", "club", "clubmed", "coach", "codes", "coffee", "college", "cologne", "comcast", "commbank", "community", "company", "compare", "computer", "comsec", "condos", "construction", "consulting", "contact", "contractors", "cooking", "cookingchannel", "cool", "corsica", "country", "coupon", "coupons", "courses", "credit", "creditcard", "creditunion", "cricket", "crown", "crs", "cruise", "cruises", "csc", "cuisinella", "cymru", "cyou", "dabur", "dad", "dance", "data", "date", "dating", "datsun", "day", "dclk", "dds", "deal", "dealer", "deals", "degree", "delivery", "dell", "deloitte", "delta", "democrat", "dental", "dentist", "desi", "design", "dev", "dhl", "diamonds", "diet", "digital", "direct", "directory", "discount", "discover", "dish", "diy", "dnp", "docs", "doctor", "dodge", "dog", "domains", "dot", "download", "drive", "dtv", "dubai", "duck", "dunlop", "duns", "dupont", "durban", "dvag", "dvr", "earth", "eat", "eco", "edeka", "education", "email", "emerck", "energy", "engineer", "engineering", "enterprises", "epson", "equipment", "ericsson", "erni", "esq", "estate", "esurance", "etisalat", "eurovision", "eus", "events", "everbank", "exchange", "expert", "exposed", "express", "extraspace", "fage", "fail", "fairwinds", "faith", "family", "fan", "fans", "farm", "farmers", "fashion", "fast", "fedex", "feedback", "ferrari", "ferrero", "fiat", "fidelity", "fido", "film", "final", "finance", "financial", "fire", "firestone", "firmdale", "fish", "fishing", "fit", "fitness", "flickr", "flights", "flir", "florist", "flowers", "fly", "foo", "food", "foodnetwork", "football", "ford", "forex", "forsale", "forum", "foundation", "fox", "free", "fresenius", "frl", "frogans", "frontdoor", "frontier", "ftr", "fujitsu", "fujixerox", "fun", "fund", "furniture", "futbol", "fyi", "gal", "gallery", "gallo", "gallup", "game", "games", "gap", "garden", "gbiz", "gdn", "gea", "gent", "genting", "george", "ggee", "gift", "gifts", "gives", "giving", "glade", "glass", "gle", "global", "globo", "gmail", "gmbh", "gmo", "gmx", "godaddy", "gold", "goldpoint", "golf", "goo", "goodyear", "goog", "google", "gop", "got", "grainger", "graphics", "gratis", "green", "gripe", "grocery", "group", "guardian", "gucci", "guge", "guide", "guitars", "guru", "hair", "hamburg", "hangout", "haus", "hbo", "hdfc", "hdfcbank", "health", "healthcare", "help", "helsinki", "here", "hermes", "hgtv", "hiphop", "hisamitsu", "hitachi", "hiv", "hkt", "hockey", "holdings", "holiday", "homedepot", "homegoods", "homes", "homesense", "honda", "honeywell", "horse", "hospital", "host", "hosting", "hot", "hoteles", "hotels", "hotmail", "house", "how", "hsbc", "hughes", "hyatt", "hyundai", "ibm", "icbc", "ice", "icu", "ieee", "ifm", "ikano", "imamat", "imdb", "immo", "immobilien", "inc", "industries", "infiniti", "ing", "ink", "institute", "insurance", "insure", "intel", "international", "intuit", "investments", "ipiranga", "irish", "iselect", "ismaili", "ist", "istanbul", "itau", "itv", "iveco", "jaguar", "java", "jcb", "jcp", "jeep", "jetzt", "jewelry", "jio", "jll", "jmp", "jnj", "joburg", "jot", "joy", "jpmorgan", "jprs", "juegos", "juniper", "kaufen", "kddi", "kerryhotels", "kerrylogistics", "kerryproperties", "kfh", "kia", "kim", "kinder", "kindle", "kitchen", "kiwi", "koeln", "komatsu", "kosher", "kpmg", "kpn", "krd", "kred", "kuokgroup", "kyoto", "lacaixa", "ladbrokes", "lamborghini", "lamer", "lancaster", "lancia", "lancome", "land", "landrover", "lanxess", "lasalle", "lat", "latino", "latrobe", "law", "lawyer", "lds", "lease", "leclerc", "lefrak", "legal", "lego", "lexus", "lgbt", "liaison", "lidl", "life", "lifeinsurance", "lifestyle", "lighting", "like", "lilly", "limited", "limo", "lincoln", "linde", "link", "lipsy", "live", "living", "lixil", "llc", "loan", "loans", "locker", "locus", "loft", "lol", "london", "lotte", "lotto", "love", "lpl", "lplfinancial", "ltd", "ltda", "lundbeck", "lupin", "luxe", "luxury", "macys", "madrid", "maif", "maison", "makeup", "man", "management", "mango", "map", "market", "marketing", "markets", "marriott", "marshalls", "maserati", "mattel", "mba", "mckinsey", "med", "media", "meet", "melbourne", "meme", "memorial", "men", "menu", "merckmsd", "metlife", "miami", "microsoft", "mini", "mint", "mit", "mitsubishi", "mlb", "mls", "mma", "mobile", "mobily", "moda", "moe", "moi", "mom", "monash", "money", "monster", "mopar", "mormon", "mortgage", "moscow", "moto", "motorcycles", "mov", "movie", "movistar", "msd", "mtn", "mtr", "mutual", "nab", "nadex", "nagoya", "nationwide", "natura", "navy", "nba", "nec", "netbank", "netflix", "network", "neustar", "new", "newholland", "news", "next", "nextdirect", "nexus", "nfl", "ngo", "nhk", "nico", "nike", "nikon", "ninja", "nissan", "nissay", "nokia", "northwesternmutual", "norton", "now", "nowruz", "nowtv", "nra", "nrw", "ntt", "nyc", "obi", "observer", "off", "office", "okinawa", "olayan", "olayangroup", "oldnavy", "ollo", "omega", "one", "ong", "onl", "online", "onyourside", "ooo", "open", "oracle", "orange", "organic", "origins", "osaka", "otsuka", "ott", "ovh", "page", "panasonic", "paris", "pars", "partners", "parts", "party", "passagens", "pay", "pccw", "pet", "pfizer", "pharmacy", "phd", "philips", "phone", "photo", "photography", "photos", "physio", "piaget", "pics", "pictet", "pictures", "pid", "pin", "ping", "pink", "pioneer", "pizza", "place", "play", "playstation", "plumbing", "plus", "pnc", "pohl", "poker", "politie", "porn", "pramerica", "praxi", "press", "prime", "prod", "productions", "prof", "progressive", "promo", "properties", "property", "protection", "pru", "prudential", "pub", "pwc", "qpon", "quebec", "quest", "qvc", "racing", "radio", "raid", "read", "realestate", "realtor", "realty", "recipes", "red", "redstone", "redumbrella", "rehab", "reise", "reisen", "reit", "reliance", "ren", "rent", "rentals", "repair", "report", "republican", "rest", "restaurant", "review", "reviews", "rexroth", "rich", "richardli", "ricoh", "rightathome", "ril", "rio", "rip", "rmit", "rocher", "rocks", "rodeo", "rogers", "room", "rsvp", "rugby", "ruhr", "run", "rwe", "ryukyu", "saarland", "safe", "safety", "sakura", "sale", "salon", "samsclub", "samsung", "sandvik", "sandvikcoromant", "sanofi", "sap", "sarl", "sas", "save", "saxo", "sbi", "sbs", "sca", "scb", "schaeffler", "schmidt", "scholarships", "school", "schule", "schwarz", "science", "scjohnson", "scor", "scot", "search", "seat", "secure", "security", "seek", "select", "sener", "services", "ses", "seven", "sew", "sex", "sexy", "sfr", "shangrila", "sharp", "shaw", "shell", "shia", "shiksha", "shoes", "shop", "shopping", "shouji", "show", "showtime", "shriram", "silk", "sina", "singles", "site", "ski", "skin", "sky", "skype", "sling", "smart", "smile", "sncf", "soccer", "social", "softbank", "software", "sohu", "solar", "solutions", "song", "sony", "soy", "space", "sport", "spot", "spreadbetting", "srl", "srt", "stada", "staples", "star", "starhub", "statebank", "statefarm", "stc", "stcgroup", "stockholm", "storage", "store", "stream", "studio", "study", "style", "sucks", "supplies", "supply", "support", "surf", "surgery", "suzuki", "swatch", "swiftcover", "swiss", "sydney", "symantec", "systems", "tab", "taipei", "talk", "taobao", "target", "tatamotors", "tatar", "tattoo", "tax", "taxi", "tci", "tdk", "team", "tech", "technology", "telefonica", "temasek", "tennis", "teva", "thd", "theater", "theatre", "tiaa", "tickets", "tienda", "tiffany", "tips", "tires", "tirol", "tjmaxx", "tjx", "tkmaxx", "tmall", "today", "tokyo", "tools", "top", "toray", "toshiba", "total", "tours", "town", "toyota", "toys", "trade", "trading", "training", "travel", "travelchannel", "travelers", "travelersinsurance", "trust", "trv", "tube", "tui", "tunes", "tushu", "tvs", "ubank", "ubs", "uconnect", "unicom", "university", "uno", "uol", "ups", "vacations", "vana", "vanguard", "vegas", "ventures", "verisign", "versicherung", "vet", "viajes", "video", "vig", "viking", "villas", "vin", "vip", "virgin", "visa", "vision", "vistaprint", "viva", "vivo", "vlaanderen", "vodka", "volkswagen", "volvo", "vote", "voting", "voto", "voyage", "vuelos", "wales", "walmart", "walter", "wang", "wanggou", "warman", "watch", "watches", "weather", "weatherchannel", "webcam", "weber", "website", "wed", "wedding", "weibo", "weir", "whoswho", "wien", "wiki", "williamhill", "win", "windows", "wine", "winners", "wme", "wolterskluwer", "woodside", "work", "works", "world", "wow", "wtc", "wtf", "xbox", "xerox", "xfinity", "xihuan", "xin", "कॉम", "セール", "佛山", "慈善", "集团", "在线", "大众汽车", "点看", "คอม", "八卦", "موقع", "公益", "公司", "香格里拉", "网站", "移动", "我爱你", "москва", "католик", "онлайн", "сайт", "联通", "קום", "时尚", "微博", "淡马锡", "ファッション", "орг", "नेट", "ストア", "삼성", "商标", "商店", "商城", "дети", "ポイント", "新闻", "工行", "家電", "كوم", "中文网", "中信", "娱乐", "谷歌", "電訊盈科", "购物", "クラウド", "通販", "网店", "संगठन", "餐厅", "网络", "ком", "诺基亚", "食品", "飞利浦", "手表", "手机", "ارامكو", "العليان", "اتصالات", "بازار", "موبايلي", "ابوظبي", "كاثوليك", "همراه", "닷컴", "政府", "شبكة", "بيتك", "عرب", "机构", "组织机构", "健康", "招聘", "рус", "珠宝", "大拿", "みんな", "グーグル", "世界", "書籍", "网址", "닷넷", "コム", "天主教", "游戏", "vermögensberater", "vermögensberatung", "企业", "信息", "嘉里大酒店", "嘉里", "广东", "政务", "xyz", "yachts", "yahoo", "yamaxun", "yandex", "yodobashi", "yoga", "yokohama", "you", "youtube", "yun", "zappos", "zara", "zero", "zip", "zone", "zuerich", "cc.ua", "inf.ua", "ltd.ua", "beep.pl", "barsy.ca", "*.compute.estate", "*.alces.network", "alwaysdata.net", "cloudfront.net", "*.compute.amazonaws.com", "*.compute-1.amazonaws.com", "*.compute.amazonaws.com.cn", "us-east-1.amazonaws.com", "cn-north-1.eb.amazonaws.com.cn", "cn-northwest-1.eb.amazonaws.com.cn", "elasticbeanstalk.com", "ap-northeast-1.elasticbeanstalk.com", "ap-northeast-2.elasticbeanstalk.com", "ap-northeast-3.elasticbeanstalk.com", "ap-south-1.elasticbeanstalk.com", "ap-southeast-1.elasticbeanstalk.com", "ap-southeast-2.elasticbeanstalk.com", "ca-central-1.elasticbeanstalk.com", "eu-central-1.elasticbeanstalk.com", "eu-west-1.elasticbeanstalk.com", "eu-west-2.elasticbeanstalk.com", "eu-west-3.elasticbeanstalk.com", "sa-east-1.elasticbeanstalk.com", "us-east-1.elasticbeanstalk.com", "us-east-2.elasticbeanstalk.com", "us-gov-west-1.elasticbeanstalk.com", "us-west-1.elasticbeanstalk.com", "us-west-2.elasticbeanstalk.com", "*.elb.amazonaws.com", "*.elb.amazonaws.com.cn", "s3.amazonaws.com", "s3-ap-northeast-1.amazonaws.com", "s3-ap-northeast-2.amazonaws.com", "s3-ap-south-1.amazonaws.com", "s3-ap-southeast-1.amazonaws.com", "s3-ap-southeast-2.amazonaws.com", "s3-ca-central-1.amazonaws.com", "s3-eu-central-1.amazonaws.com", "s3-eu-west-1.amazonaws.com", "s3-eu-west-2.amazonaws.com", "s3-eu-west-3.amazonaws.com", "s3-external-1.amazonaws.com", "s3-fips-us-gov-west-1.amazonaws.com", "s3-sa-east-1.amazonaws.com", "s3-us-gov-west-1.amazonaws.com", "s3-us-east-2.amazonaws.com", "s3-us-west-1.amazonaws.com", "s3-us-west-2.amazonaws.com", "s3.ap-northeast-2.amazonaws.com", "s3.ap-south-1.amazonaws.com", "s3.cn-north-1.amazonaws.com.cn", "s3.ca-central-1.amazonaws.com", "s3.eu-central-1.amazonaws.com", "s3.eu-west-2.amazonaws.com", "s3.eu-west-3.amazonaws.com", "s3.us-east-2.amazonaws.com", "s3.dualstack.ap-northeast-1.amazonaws.com", "s3.dualstack.ap-northeast-2.amazonaws.com", "s3.dualstack.ap-south-1.amazonaws.com", "s3.dualstack.ap-southeast-1.amazonaws.com", "s3.dualstack.ap-southeast-2.amazonaws.com", "s3.dualstack.ca-central-1.amazonaws.com", "s3.dualstack.eu-central-1.amazonaws.com", "s3.dualstack.eu-west-1.amazonaws.com", "s3.dualstack.eu-west-2.amazonaws.com", "s3.dualstack.eu-west-3.amazonaws.com", "s3.dualstack.sa-east-1.amazonaws.com", "s3.dualstack.us-east-1.amazonaws.com", "s3.dualstack.us-east-2.amazonaws.com", "s3-website-us-east-1.amazonaws.com", "s3-website-us-west-1.amazonaws.com", "s3-website-us-west-2.amazonaws.com", "s3-website-ap-northeast-1.amazonaws.com", "s3-website-ap-southeast-1.amazonaws.com", "s3-website-ap-southeast-2.amazonaws.com", "s3-website-eu-west-1.amazonaws.com", "s3-website-sa-east-1.amazonaws.com", "s3-website.ap-northeast-2.amazonaws.com", "s3-website.ap-south-1.amazonaws.com", "s3-website.ca-central-1.amazonaws.com", "s3-website.eu-central-1.amazonaws.com", "s3-website.eu-west-2.amazonaws.com", "s3-website.eu-west-3.amazonaws.com", "s3-website.us-east-2.amazonaws.com", "t3l3p0rt.net", "tele.amune.org", "apigee.io", "on-aptible.com", "user.party.eus", "pimienta.org", "poivron.org", "potager.org", "sweetpepper.org", "myasustor.com", "go-vip.co", "go-vip.net", "wpcomstaging.com", "myfritz.net", "*.awdev.ca", "*.advisor.ws", "b-data.io", "backplaneapp.io", "app.banzaicloud.io", "betainabox.com", "bnr.la", "blackbaudcdn.net", "boomla.net", "boxfuse.io", "square7.ch", "bplaced.com", "bplaced.de", "square7.de", "bplaced.net", "square7.net", "browsersafetymark.io", "uk0.bigv.io", "dh.bytemark.co.uk", "vm.bytemark.co.uk", "mycd.eu", "carrd.co", "crd.co", "uwu.ai", "ae.org", "ar.com", "br.com", "cn.com", "com.de", "com.se", "de.com", "eu.com", "gb.com", "gb.net", "hu.com", "hu.net", "jp.net", "jpn.com", "kr.com", "mex.com", "no.com", "qc.com", "ru.com", "sa.com", "se.net", "uk.com", "uk.net", "us.com", "uy.com", "za.bz", "za.com", "africa.com", "gr.com", "in.net", "us.org", "co.com", "c.la", "certmgr.org", "xenapponazure.com", "discourse.group", "virtueeldomein.nl", "cleverapps.io", "*.lcl.dev", "*.stg.dev", "c66.me", "cloud66.ws", "cloud66.zone", "jdevcloud.com", "wpdevcloud.com", "cloudaccess.host", "freesite.host", "cloudaccess.net", "cloudcontrolled.com", "cloudcontrolapp.com", "workers.dev", "wnext.app", "co.ca", "*.otap.co", "co.cz", "c.cdn77.org", "cdn77-ssl.net", "r.cdn77.net", "rsc.cdn77.org", "ssl.origin.cdn77-secure.org", "cloudns.asia", "cloudns.biz", "cloudns.club", "cloudns.cc", "cloudns.eu", "cloudns.in", "cloudns.info", "cloudns.org", "cloudns.pro", "cloudns.pw", "cloudns.us", "cloudeity.net", "cnpy.gdn", "co.nl", "co.no", "webhosting.be", "hosting-cluster.nl", "dyn.cosidns.de", "dynamisches-dns.de", "dnsupdater.de", "internet-dns.de", "l-o-g-i-n.de", "dynamic-dns.info", "feste-ip.net", "knx-server.net", "static-access.net", "realm.cz", "*.cryptonomic.net", "cupcake.is", "cyon.link", "cyon.site", "daplie.me", "localhost.daplie.me", "dattolocal.com", "dattorelay.com", "dattoweb.com", "mydatto.com", "dattolocal.net", "mydatto.net", "biz.dk", "co.dk", "firm.dk", "reg.dk", "store.dk", "*.dapps.earth", "*.bzz.dapps.earth", "debian.net", "dedyn.io", "dnshome.de", "online.th", "shop.th", "drayddns.com", "dreamhosters.com", "mydrobo.com", "drud.io", "drud.us", "duckdns.org", "dy.fi", "tunk.org", "dyndns-at-home.com", "dyndns-at-work.com", "dyndns-blog.com", "dyndns-free.com", "dyndns-home.com", "dyndns-ip.com", "dyndns-mail.com", "dyndns-office.com", "dyndns-pics.com", "dyndns-remote.com", "dyndns-server.com", "dyndns-web.com", "dyndns-wiki.com", "dyndns-work.com", "dyndns.biz", "dyndns.info", "dyndns.org", "dyndns.tv", "at-band-camp.net", "ath.cx", "barrel-of-knowledge.info", "barrell-of-knowledge.info", "better-than.tv", "blogdns.com", "blogdns.net", "blogdns.org", "blogsite.org", "boldlygoingnowhere.org", "broke-it.net", "buyshouses.net", "cechire.com", "dnsalias.com", "dnsalias.net", "dnsalias.org", "dnsdojo.com", "dnsdojo.net", "dnsdojo.org", "does-it.net", "doesntexist.com", "doesntexist.org", "dontexist.com", "dontexist.net", "dontexist.org", "doomdns.com", "doomdns.org", "dvrdns.org", "dyn-o-saur.com", "dynalias.com", "dynalias.net", "dynalias.org", "dynathome.net", "dyndns.ws", "endofinternet.net", "endofinternet.org", "endoftheinternet.org", "est-a-la-maison.com", "est-a-la-masion.com", "est-le-patron.com", "est-mon-blogueur.com", "for-better.biz", "for-more.biz", "for-our.info", "for-some.biz", "for-the.biz", "forgot.her.name", "forgot.his.name", "from-ak.com", "from-al.com", "from-ar.com", "from-az.net", "from-ca.com", "from-co.net", "from-ct.com", "from-dc.com", "from-de.com", "from-fl.com", "from-ga.com", "from-hi.com", "from-ia.com", "from-id.com", "from-il.com", "from-in.com", "from-ks.com", "from-ky.com", "from-la.net", "from-ma.com", "from-md.com", "from-me.org", "from-mi.com", "from-mn.com", "from-mo.com", "from-ms.com", "from-mt.com", "from-nc.com", "from-nd.com", "from-ne.com", "from-nh.com", "from-nj.com", "from-nm.com", "from-nv.com", "from-ny.net", "from-oh.com", "from-ok.com", "from-or.com", "from-pa.com", "from-pr.com", "from-ri.com", "from-sc.com", "from-sd.com", "from-tn.com", "from-tx.com", "from-ut.com", "from-va.com", "from-vt.com", "from-wa.com", "from-wi.com", "from-wv.com", "from-wy.com", "ftpaccess.cc", "fuettertdasnetz.de", "game-host.org", "game-server.cc", "getmyip.com", "gets-it.net", "go.dyndns.org", "gotdns.com", "gotdns.org", "groks-the.info", "groks-this.info", "ham-radio-op.net", "here-for-more.info", "hobby-site.com", "hobby-site.org", "home.dyndns.org", "homedns.org", "homeftp.net", "homeftp.org", "homeip.net", "homelinux.com", "homelinux.net", "homelinux.org", "homeunix.com", "homeunix.net", "homeunix.org", "iamallama.com", "in-the-band.net", "is-a-anarchist.com", "is-a-blogger.com", "is-a-bookkeeper.com", "is-a-bruinsfan.org", "is-a-bulls-fan.com", "is-a-candidate.org", "is-a-caterer.com", "is-a-celticsfan.org", "is-a-chef.com", "is-a-chef.net", "is-a-chef.org", "is-a-conservative.com", "is-a-cpa.com", "is-a-cubicle-slave.com", "is-a-democrat.com", "is-a-designer.com", "is-a-doctor.com", "is-a-financialadvisor.com", "is-a-geek.com", "is-a-geek.net", "is-a-geek.org", "is-a-green.com", "is-a-guru.com", "is-a-hard-worker.com", "is-a-hunter.com", "is-a-knight.org", "is-a-landscaper.com", "is-a-lawyer.com", "is-a-liberal.com", "is-a-libertarian.com", "is-a-linux-user.org", "is-a-llama.com", "is-a-musician.com", "is-a-nascarfan.com", "is-a-nurse.com", "is-a-painter.com", "is-a-patsfan.org", "is-a-personaltrainer.com", "is-a-photographer.com", "is-a-player.com", "is-a-republican.com", "is-a-rockstar.com", "is-a-socialist.com", "is-a-soxfan.org", "is-a-student.com", "is-a-teacher.com", "is-a-techie.com", "is-a-therapist.com", "is-an-accountant.com", "is-an-actor.com", "is-an-actress.com", "is-an-anarchist.com", "is-an-artist.com", "is-an-engineer.com", "is-an-entertainer.com", "is-by.us", "is-certified.com", "is-found.org", "is-gone.com", "is-into-anime.com", "is-into-cars.com", "is-into-cartoons.com", "is-into-games.com", "is-leet.com", "is-lost.org", "is-not-certified.com", "is-saved.org", "is-slick.com", "is-uberleet.com", "is-very-bad.org", "is-very-evil.org", "is-very-good.org", "is-very-nice.org", "is-very-sweet.org", "is-with-theband.com", "isa-geek.com", "isa-geek.net", "isa-geek.org", "isa-hockeynut.com", "issmarterthanyou.com", "isteingeek.de", "istmein.de", "kicks-ass.net", "kicks-ass.org", "knowsitall.info", "land-4-sale.us", "lebtimnetz.de", "leitungsen.de", "likes-pie.com", "likescandy.com", "merseine.nu", "mine.nu", "misconfused.org", "mypets.ws", "myphotos.cc", "neat-url.com", "office-on-the.net", "on-the-web.tv", "podzone.net", "podzone.org", "readmyblog.org", "saves-the-whales.com", "scrapper-site.net", "scrapping.cc", "selfip.biz", "selfip.com", "selfip.info", "selfip.net", "selfip.org", "sells-for-less.com", "sells-for-u.com", "sells-it.net", "sellsyourhome.org", "servebbs.com", "servebbs.net", "servebbs.org", "serveftp.net", "serveftp.org", "servegame.org", "shacknet.nu", "simple-url.com", "space-to-rent.com", "stuff-4-sale.org", "stuff-4-sale.us", "teaches-yoga.com", "thruhere.net", "traeumtgerade.de", "webhop.biz", "webhop.info", "webhop.net", "webhop.org", "worse-than.tv", "writesthisblog.com", "ddnss.de", "dyn.ddnss.de", "dyndns.ddnss.de", "dyndns1.de", "dyn-ip24.de", "home-webserver.de", "dyn.home-webserver.de", "myhome-server.de", "ddnss.org", "definima.net", "definima.io", "bci.dnstrace.pro", "ddnsfree.com", "ddnsgeek.com", "giize.com", "gleeze.com", "kozow.com", "loseyourip.com", "ooguy.com", "theworkpc.com", "casacam.net", "dynu.net", "accesscam.org", "camdvr.org", "freeddns.org", "mywire.org", "webredirect.org", "myddns.rocks", "blogsite.xyz", "dynv6.net", "e4.cz", "mytuleap.com", "onred.one", "staging.onred.one", "enonic.io", "customer.enonic.io", "eu.org", "al.eu.org", "asso.eu.org", "at.eu.org", "au.eu.org", "be.eu.org", "bg.eu.org", "ca.eu.org", "cd.eu.org", "ch.eu.org", "cn.eu.org", "cy.eu.org", "cz.eu.org", "de.eu.org", "dk.eu.org", "edu.eu.org", "ee.eu.org", "es.eu.org", "fi.eu.org", "fr.eu.org", "gr.eu.org", "hr.eu.org", "hu.eu.org", "ie.eu.org", "il.eu.org", "in.eu.org", "int.eu.org", "is.eu.org", "it.eu.org", "jp.eu.org", "kr.eu.org", "lt.eu.org", "lu.eu.org", "lv.eu.org", "mc.eu.org", "me.eu.org", "mk.eu.org", "mt.eu.org", "my.eu.org", "net.eu.org", "ng.eu.org", "nl.eu.org", "no.eu.org", "nz.eu.org", "paris.eu.org", "pl.eu.org", "pt.eu.org", "q-a.eu.org", "ro.eu.org", "ru.eu.org", "se.eu.org", "si.eu.org", "sk.eu.org", "tr.eu.org", "uk.eu.org", "us.eu.org", "eu-1.evennode.com", "eu-2.evennode.com", "eu-3.evennode.com", "eu-4.evennode.com", "us-1.evennode.com", "us-2.evennode.com", "us-3.evennode.com", "us-4.evennode.com", "twmail.cc", "twmail.net", "twmail.org", "mymailer.com.tw", "url.tw", "apps.fbsbx.com", "ru.net", "adygeya.ru", "bashkiria.ru", "bir.ru", "cbg.ru", "com.ru", "dagestan.ru", "grozny.ru", "kalmykia.ru", "kustanai.ru", "marine.ru", "mordovia.ru", "msk.ru", "mytis.ru", "nalchik.ru", "nov.ru", "pyatigorsk.ru", "spb.ru", "vladikavkaz.ru", "vladimir.ru", "abkhazia.su", "adygeya.su", "aktyubinsk.su", "arkhangelsk.su", "armenia.su", "ashgabad.su", "azerbaijan.su", "balashov.su", "bashkiria.su", "bryansk.su", "bukhara.su", "chimkent.su", "dagestan.su", "east-kazakhstan.su", "exnet.su", "georgia.su", "grozny.su", "ivanovo.su", "jambyl.su", "kalmykia.su", "kaluga.su", "karacol.su", "karaganda.su", "karelia.su", "khakassia.su", "krasnodar.su", "kurgan.su", "kustanai.su", "lenug.su", "mangyshlak.su", "mordovia.su", "msk.su", "murmansk.su", "nalchik.su", "navoi.su", "north-kazakhstan.su", "nov.su", "obninsk.su", "penza.su", "pokrovsk.su", "sochi.su", "spb.su", "tashkent.su", "termez.su", "togliatti.su", "troitsk.su", "tselinograd.su", "tula.su", "tuva.su", "vladikavkaz.su", "vladimir.su", "vologda.su", "channelsdvr.net", "fastly-terrarium.com", "fastlylb.net", "map.fastlylb.net", "freetls.fastly.net", "map.fastly.net", "a.prod.fastly.net", "global.prod.fastly.net", "a.ssl.fastly.net", "b.ssl.fastly.net", "global.ssl.fastly.net", "fastpanel.direct", "fastvps-server.com", "fhapp.xyz", "fedorainfracloud.org", "fedorapeople.org", "cloud.fedoraproject.org", "app.os.fedoraproject.org", "app.os.stg.fedoraproject.org", "mydobiss.com", "filegear.me", "filegear-au.me", "filegear-de.me", "filegear-gb.me", "filegear-ie.me", "filegear-jp.me", "filegear-sg.me", "firebaseapp.com", "flynnhub.com", "flynnhosting.net", "freebox-os.com", "freeboxos.com", "fbx-os.fr", "fbxos.fr", "freebox-os.fr", "freeboxos.fr", "freedesktop.org", "*.futurecms.at", "*.ex.futurecms.at", "*.in.futurecms.at", "futurehosting.at", "futuremailing.at", "*.ex.ortsinfo.at", "*.kunden.ortsinfo.at", "*.statics.cloud", "service.gov.uk", "gehirn.ne.jp", "usercontent.jp", "lab.ms", "github.io", "githubusercontent.com", "gitlab.io", "glitch.me", "cloudapps.digital", "london.cloudapps.digital", "homeoffice.gov.uk", "ro.im", "shop.ro", "goip.de", "run.app", "a.run.app", "*.0emm.com", "appspot.com", "blogspot.ae", "blogspot.al", "blogspot.am", "blogspot.ba", "blogspot.be", "blogspot.bg", "blogspot.bj", "blogspot.ca", "blogspot.cf", "blogspot.ch", "blogspot.cl", "blogspot.co.at", "blogspot.co.id", "blogspot.co.il", "blogspot.co.ke", "blogspot.co.nz", "blogspot.co.uk", "blogspot.co.za", "blogspot.com", "blogspot.com.ar", "blogspot.com.au", "blogspot.com.br", "blogspot.com.by", "blogspot.com.co", "blogspot.com.cy", "blogspot.com.ee", "blogspot.com.eg", "blogspot.com.es", "blogspot.com.mt", "blogspot.com.ng", "blogspot.com.tr", "blogspot.com.uy", "blogspot.cv", "blogspot.cz", "blogspot.de", "blogspot.dk", "blogspot.fi", "blogspot.fr", "blogspot.gr", "blogspot.hk", "blogspot.hr", "blogspot.hu", "blogspot.ie", "blogspot.in", "blogspot.is", "blogspot.it", "blogspot.jp", "blogspot.kr", "blogspot.li", "blogspot.lt", "blogspot.lu", "blogspot.md", "blogspot.mk", "blogspot.mr", "blogspot.mx", "blogspot.my", "blogspot.nl", "blogspot.no", "blogspot.pe", "blogspot.pt", "blogspot.qa", "blogspot.re", "blogspot.ro", "blogspot.rs", "blogspot.ru", "blogspot.se", "blogspot.sg", "blogspot.si", "blogspot.sk", "blogspot.sn", "blogspot.td", "blogspot.tw", "blogspot.ug", "blogspot.vn", "cloudfunctions.net", "cloud.goog", "codespot.com", "googleapis.com", "googlecode.com", "pagespeedmobilizer.com", "publishproxy.com", "withgoogle.com", "withyoutube.com", "fin.ci", "free.hr", "caa.li", "ua.rs", "conf.se", "hashbang.sh", "hasura.app", "hasura-app.io", "hepforge.org", "herokuapp.com", "herokussl.com", "myravendb.com", "ravendb.community", "ravendb.me", "development.run", "ravendb.run", "bpl.biz", "orx.biz", "ng.city", "ng.ink", "biz.gl", "col.ng", "gen.ng", "ltd.ng", "sch.so", "häkkinen.fi", "*.moonscale.io", "moonscale.net", "iki.fi", "dyn-berlin.de", "in-berlin.de", "in-brb.de", "in-butter.de", "in-dsl.de", "in-dsl.net", "in-dsl.org", "in-vpn.de", "in-vpn.net", "in-vpn.org", "biz.at", "info.at", "info.cx", "ac.leg.br", "al.leg.br", "am.leg.br", "ap.leg.br", "ba.leg.br", "ce.leg.br", "df.leg.br", "es.leg.br", "go.leg.br", "ma.leg.br", "mg.leg.br", "ms.leg.br", "mt.leg.br", "pa.leg.br", "pb.leg.br", "pe.leg.br", "pi.leg.br", "pr.leg.br", "rj.leg.br", "rn.leg.br", "ro.leg.br", "rr.leg.br", "rs.leg.br", "sc.leg.br", "se.leg.br", "sp.leg.br", "to.leg.br", "pixolino.com", "ipifony.net", "mein-iserv.de", "test-iserv.de", "myjino.ru", "*.hosting.myjino.ru", "*.landing.myjino.ru", "*.spectrum.myjino.ru", "*.vps.myjino.ru", "*.triton.zone", "*.cns.joyent.com", "js.org", "kaas.gg", "khplay.nl", "keymachine.de", "knightpoint.systems", "co.krd", "edu.krd", "git-repos.de", "lcube-server.de", "svn-repos.de", "leadpages.co", "lpages.co", "lpusercontent.com", "co.business", "co.education", "co.events", "co.financial", "co.network", "co.place", "co.technology", "app.lmpm.com", "linkitools.space", "linkyard.cloud", "linkyard-cloud.ch", "members.linode.com", "nodebalancer.linode.com", "we.bs", "loginline.app", "loginline.dev", "loginline.io", "loginline.services", "loginline.site", "krasnik.pl", "leczna.pl", "lubartow.pl", "lublin.pl", "poniatowa.pl", "swidnik.pl", "uklugs.org", "glug.org.uk", "lug.org.uk", "lugs.org.uk", "barsy.bg", "barsy.co.uk", "barsyonline.co.uk", "barsycenter.com", "barsyonline.com", "barsy.club", "barsy.de", "barsy.eu", "barsy.in", "barsy.info", "barsy.io", "barsy.me", "barsy.menu", "barsy.mobi", "barsy.net", "barsy.online", "barsy.org", "barsy.pro", "barsy.pub", "barsy.shop", "barsy.site", "barsy.support", "barsy.uk", "*.magentosite.cloud", "mayfirst.info", "mayfirst.org", "hb.cldmail.ru", "miniserver.com", "memset.net", "cloud.metacentrum.cz", "custom.metacentrum.cz", "flt.cloud.muni.cz", "usr.cloud.muni.cz", "meteorapp.com", "eu.meteorapp.com", "co.pl", "azurecontainer.io", "azurewebsites.net", "azure-mobile.net", "cloudapp.net", "mozilla-iot.org", "bmoattachments.org", "net.ru", "org.ru", "pp.ru", "ui.nabu.casa", "pony.club", "of.fashion", "on.fashion", "of.football", "in.london", "of.london", "for.men", "and.mom", "for.mom", "for.one", "for.sale", "of.work", "to.work", "nctu.me", "bitballoon.com", "netlify.com", "4u.com", "ngrok.io", "nh-serv.co.uk", "nfshost.com", "dnsking.ch", "mypi.co", "n4t.co", "001www.com", "ddnslive.com", "myiphost.com", "forumz.info", "16-b.it", "32-b.it", "64-b.it", "soundcast.me", "tcp4.me", "dnsup.net", "hicam.net", "now-dns.net", "ownip.net", "vpndns.net", "dynserv.org", "now-dns.org", "x443.pw", "now-dns.top", "ntdll.top", "freeddns.us", "crafting.xyz", "zapto.xyz", "nsupdate.info", "nerdpol.ovh", "blogsyte.com", "brasilia.me", "cable-modem.org", "ciscofreak.com", "collegefan.org", "couchpotatofries.org", "damnserver.com", "ddns.me", "ditchyourip.com", "dnsfor.me", "dnsiskinky.com", "dvrcam.info", "dynns.com", "eating-organic.net", "fantasyleague.cc", "geekgalaxy.com", "golffan.us", "health-carereform.com", "homesecuritymac.com", "homesecuritypc.com", "hopto.me", "ilovecollege.info", "loginto.me", "mlbfan.org", "mmafan.biz", "myactivedirectory.com", "mydissent.net", "myeffect.net", "mymediapc.net", "mypsx.net", "mysecuritycamera.com", "mysecuritycamera.net", "mysecuritycamera.org", "net-freaks.com", "nflfan.org", "nhlfan.net", "no-ip.ca", "no-ip.co.uk", "no-ip.net", "noip.us", "onthewifi.com", "pgafan.net", "point2this.com", "pointto.us", "privatizehealthinsurance.net", "quicksytes.com", "read-books.org", "securitytactics.com", "serveexchange.com", "servehumour.com", "servep2p.com", "servesarcasm.com", "stufftoread.com", "ufcfan.org", "unusualperson.com", "workisboring.com", "3utilities.com", "bounceme.net", "ddns.net", "ddnsking.com", "gotdns.ch", "hopto.org", "myftp.biz", "myftp.org", "myvnc.com", "no-ip.biz", "no-ip.info", "no-ip.org", "noip.me", "redirectme.net", "servebeer.com", "serveblog.net", "servecounterstrike.com", "serveftp.com", "servegame.com", "servehalflife.com", "servehttp.com", "serveirc.com", "serveminecraft.net", "servemp3.com", "servepics.com", "servequake.com", "sytes.net", "webhop.me", "zapto.org", "stage.nodeart.io", "nodum.co", "nodum.io", "pcloud.host", "nyc.mn", "nom.ae", "nom.af", "nom.ai", "nom.al", "nym.by", "nym.bz", "nom.cl", "nom.gd", "nom.ge", "nom.gl", "nym.gr", "nom.gt", "nym.gy", "nom.hn", "nym.ie", "nom.im", "nom.ke", "nym.kz", "nym.la", "nym.lc", "nom.li", "nym.li", "nym.lt", "nym.lu", "nym.me", "nom.mk", "nym.mn", "nym.mx", "nom.nu", "nym.nz", "nym.pe", "nym.pt", "nom.pw", "nom.qa", "nym.ro", "nom.rs", "nom.si", "nym.sk", "nom.st", "nym.su", "nym.sx", "nom.tj", "nym.tw", "nom.ug", "nom.uy", "nom.vc", "nom.vg", "cya.gg", "cloudycluster.net", "nid.io", "opencraft.hosting", "operaunite.com", "outsystemscloud.com", "ownprovider.com", "own.pm", "ox.rs", "oy.lc", "pgfog.com", "pagefrontapp.com", "art.pl", "gliwice.pl", "krakow.pl", "poznan.pl", "wroc.pl", "zakopane.pl", "pantheonsite.io", "gotpantheon.com", "mypep.link", "on-web.fr", "*.platform.sh", "*.platformsh.site", "co.bn", "xen.prgmr.com", "priv.at", "prvcy.page", "*.dweb.link", "protonet.io", "chirurgiens-dentistes-en-france.fr", "byen.site", "instantcloud.cn", "ras.ru", "qa2.com", "dev-myqnapcloud.com", "alpha-myqnapcloud.com", "myqnapcloud.com", "*.quipelements.com", "vapor.cloud", "vaporcloud.io", "rackmaze.com", "rackmaze.net", "*.on-rancher.cloud", "*.on-rio.io", "readthedocs.io", "rhcloud.com", "app.render.com", "onrender.com", "repl.co", "repl.run", "resindevice.io", "devices.resinstaging.io", "hzc.io", "wellbeingzone.eu", "ptplus.fit", "wellbeingzone.co.uk", "git-pages.rit.edu", "sandcats.io", "logoip.de", "logoip.com", "schokokeks.net", "scrysec.com", "firewall-gateway.com", "firewall-gateway.de", "my-gateway.de", "my-router.de", "spdns.de", "spdns.eu", "firewall-gateway.net", "my-firewall.org", "myfirewall.org", "spdns.org", "*.s5y.io", "*.sensiosite.cloud", "biz.ua", "co.ua", "pp.ua", "shiftedit.io", "myshopblocks.com", "mo-siemens.io", "1kapp.com", "appchizi.com", "applinzi.com", "sinaapp.com", "vipsinaapp.com", "siteleaf.net", "bounty-full.com", "alpha.bounty-full.com", "beta.bounty-full.com", "stackhero-network.com", "static.land", "dev.static.land", "sites.static.land", "apps.lair.io", "*.stolos.io", "spacekit.io", "customer.speedpartner.de", "api.stdlib.com", "storj.farm", "utwente.io", "soc.srcf.net", "user.srcf.net", "temp-dns.com", "applicationcloud.io", "scapp.io", "syncloud.it", "diskstation.me", "dscloud.biz", "dscloud.me", "dscloud.mobi", "dsmynas.com", "dsmynas.net", "dsmynas.org", "familyds.com", "familyds.net", "familyds.org", "i234.me", "myds.me", "synology.me", "vpnplus.to", "taifun-dns.de", "gda.pl", "gdansk.pl", "gdynia.pl", "med.pl", "sopot.pl", "edugit.org", "telebit.app", "telebit.io", "*.telebit.xyz", "gwiddle.co.uk", "thingdustdata.com", "cust.dev.thingdust.io", "cust.disrec.thingdust.io", "cust.prod.thingdust.io", "cust.testing.thingdust.io", "arvo.network", "azimuth.network", "bloxcms.com", "townnews-staging.com", "12hp.at", "2ix.at", "4lima.at", "lima-city.at", "12hp.ch", "2ix.ch", "4lima.ch", "lima-city.ch", "trafficplex.cloud", "de.cool", "12hp.de", "2ix.de", "4lima.de", "lima-city.de", "1337.pictures", "clan.rip", "lima-city.rocks", "webspace.rocks", "lima.zone", "*.transurl.be", "*.transurl.eu", "*.transurl.nl", "tuxfamily.org", "dd-dns.de", "diskstation.eu", "diskstation.org", "dray-dns.de", "draydns.de", "dyn-vpn.de", "dynvpn.de", "mein-vigor.de", "my-vigor.de", "my-wan.de", "syno-ds.de", "synology-diskstation.de", "synology-ds.de", "uber.space", "*.uberspace.de", "hk.com", "hk.org", "ltd.hk", "inc.hk", "virtualuser.de", "virtual-user.de", "lib.de.us", "2038.io", "router.management", "v-info.info", "voorloper.cloud", "wafflecell.com", "wedeploy.io", "wedeploy.me", "wedeploy.sh", "remotewd.com", "wmflabs.org", "half.host", "xnbay.com", "u2.xnbay.com", "u2-local.xnbay.com", "cistron.nl", "demon.nl", "xs4all.space", "official.academy", "yolasite.com", "ybo.faith", "yombo.me", "homelink.one", "ybo.party", "ybo.review", "ybo.science", "ybo.trade", "nohost.me", "noho.st", "za.net", "za.org", "now.sh", "bss.design", "basicserver.io", "virtualserver.io", "site.builder.nu", "enterprisecloud.nu", "zone.id" ]; }, function(module, exports, __webpack_require__) { "use strict"; - var Store = __webpack_require__(476).Store, permuteDomain = __webpack_require__(477).permuteDomain, pathMatch = __webpack_require__(478).pathMatch, util = __webpack_require__(0); + var Store = __webpack_require__(518).Store, permuteDomain = __webpack_require__(519).permuteDomain, pathMatch = __webpack_require__(520).pathMatch, util = __webpack_require__(0); function MemoryCookieStore() { Store.call(this), this.idx = {}; } @@ -93310,7 +99021,7 @@ }).getSerialize = serializer; }, function(module, exports, __webpack_require__) { "use strict"; - var http = __webpack_require__(11), https = __webpack_require__(21), url = __webpack_require__(6), util = __webpack_require__(0), stream = __webpack_require__(3), zlib = __webpack_require__(45), aws2 = __webpack_require__(1049), aws4 = __webpack_require__(1050), httpSignature = __webpack_require__(1052), mime = __webpack_require__(89), caseless = __webpack_require__(237), ForeverAgent = __webpack_require__(1069), FormData = __webpack_require__(1070), extend = __webpack_require__(147), isstream = __webpack_require__(492), isTypedArray = __webpack_require__(168).strict, helpers = __webpack_require__(230), cookies = __webpack_require__(473), getProxyFromURI = __webpack_require__(1077), Querystring = __webpack_require__(1078).Querystring, Har = __webpack_require__(1081).Har, Auth = __webpack_require__(1137).Auth, OAuth = __webpack_require__(1138).OAuth, hawk = __webpack_require__(1140), Multipart = __webpack_require__(1141).Multipart, Redirect = __webpack_require__(1142).Redirect, Tunnel = __webpack_require__(1143).Tunnel, now = __webpack_require__(1145), Buffer = __webpack_require__(25).Buffer, safeStringify = helpers.safeStringify, isReadStream = helpers.isReadStream, toBase64 = helpers.toBase64, defer = helpers.defer, copy = helpers.copy, version = helpers.version, globalCookieJar = cookies.jar(), globalPool = {}; + var http = __webpack_require__(11), https = __webpack_require__(21), url = __webpack_require__(7), util = __webpack_require__(0), stream = __webpack_require__(3), zlib = __webpack_require__(43), aws2 = __webpack_require__(1133), aws4 = __webpack_require__(1134), httpSignature = __webpack_require__(1136), mime = __webpack_require__(78), caseless = __webpack_require__(268), ForeverAgent = __webpack_require__(1153), FormData = __webpack_require__(1154), extend = __webpack_require__(157), isstream = __webpack_require__(534), isTypedArray = __webpack_require__(185).strict, helpers = __webpack_require__(261), cookies = __webpack_require__(515), getProxyFromURI = __webpack_require__(1161), Querystring = __webpack_require__(1162).Querystring, Har = __webpack_require__(1165).Har, Auth = __webpack_require__(1221).Auth, OAuth = __webpack_require__(1222).OAuth, hawk = __webpack_require__(1224), Multipart = __webpack_require__(1225).Multipart, Redirect = __webpack_require__(1226).Redirect, Tunnel = __webpack_require__(1227).Tunnel, now = __webpack_require__(1229), Buffer = __webpack_require__(26).Buffer, safeStringify = helpers.safeStringify, isReadStream = helpers.isReadStream, toBase64 = helpers.toBase64, defer = helpers.defer, copy = helpers.copy, version = helpers.version, globalCookieJar = cookies.jar(), globalPool = {}; function requestToJSON() { return { uri: this.uri, @@ -93787,7 +99498,7 @@ Request.defaultProxyHeaderExclusiveList = Tunnel.defaultProxyHeaderExclusiveList.slice(), Request.prototype.toJSON = requestToJSON, module.exports = Request; }, function(module, exports, __webpack_require__) { - var crypto = __webpack_require__(9), parse = __webpack_require__(6).parse, keys = [ "acl", "location", "logging", "notification", "partNumber", "policy", "requestPayment", "torrent", "uploadId", "uploads", "versionId", "versioning", "versions", "website" ]; + var crypto = __webpack_require__(6), parse = __webpack_require__(7).parse, keys = [ "acl", "location", "logging", "notification", "partNumber", "policy", "requestPayment", "torrent", "uploadId", "uploads", "versionId", "versioning", "versions", "website" ]; function authorization(options) { return "AWS " + options.key + ":" + sign(options); } @@ -93824,7 +99535,7 @@ })), path + (buf.length ? "?" + buf.sort().join("&") : ""); }; }, function(module, exports, __webpack_require__) { - var aws4 = exports, url = __webpack_require__(6), querystring = __webpack_require__(24), crypto = __webpack_require__(9), credentialsCache = __webpack_require__(1051)(1e3); + var aws4 = exports, url = __webpack_require__(7), querystring = __webpack_require__(24), crypto = __webpack_require__(6), credentialsCache = __webpack_require__(1135)(1e3); function hmac(key, string, encoding) { return crypto.createHmac("sha256", key).update(string, "utf8").digest(encoding); } @@ -93975,7 +99686,7 @@ this.lastNode == node ? this.lastNode = node.prev : null != node.next && (node.next.prev = node.prev); }; }, function(module, exports, __webpack_require__) { - var parser = __webpack_require__(1053), signer = __webpack_require__(1061), verify = __webpack_require__(1068), utils = __webpack_require__(150); + var parser = __webpack_require__(1137), signer = __webpack_require__(1145), verify = __webpack_require__(1152), utils = __webpack_require__(163); module.exports = { parse: parser.parseRequest, parseRequest: parser.parseRequest, @@ -93991,7 +99702,7 @@ verifyHMAC: verify.verifyHMAC }; }, function(module, exports, __webpack_require__) { - var assert = __webpack_require__(15), util = __webpack_require__(0), utils = __webpack_require__(150), HttpSignatureError = (utils.HASH_ALGOS, + var assert = __webpack_require__(15), util = __webpack_require__(0), utils = __webpack_require__(163), HttpSignatureError = (utils.HASH_ALGOS, utils.PK_ALGOS, utils.HttpSignatureError), InvalidAlgorithmError = utils.InvalidAlgorithmError, validateAlgorithm = utils.validateAlgorithm; function ExpiredRequestError(message) { HttpSignatureError.call(this, message, ExpiredRequestError); @@ -94101,14 +99812,14 @@ } }; }, function(module, exports, __webpack_require__) { - var errors = __webpack_require__(232), types = __webpack_require__(233), Reader = __webpack_require__(1055), Writer = __webpack_require__(1056); + var errors = __webpack_require__(263), types = __webpack_require__(264), Reader = __webpack_require__(1139), Writer = __webpack_require__(1140); for (var t in module.exports = { Reader: Reader, Writer: Writer }, types) types.hasOwnProperty(t) && (module.exports[t] = types[t]); for (var e in errors) errors.hasOwnProperty(e) && (module.exports[e] = errors[e]); }, function(module, exports, __webpack_require__) { - var assert = __webpack_require__(22), Buffer = __webpack_require__(14).Buffer, ASN1 = __webpack_require__(233), newInvalidAsn1Error = __webpack_require__(232).newInvalidAsn1Error; + var assert = __webpack_require__(25), Buffer = __webpack_require__(14).Buffer, ASN1 = __webpack_require__(264), newInvalidAsn1Error = __webpack_require__(263).newInvalidAsn1Error; function Reader(data) { if (!data || !Buffer.isBuffer(data)) throw new TypeError("data must be a node Buffer"); this._buf = data, this._size = data.length, this._len = 0, this._offset = 0; @@ -94197,7 +99908,7 @@ return 128 == (128 & fb) && 4 !== i && (value -= 1 << 8 * i), value >> 0; }, module.exports = Reader; }, function(module, exports, __webpack_require__) { - var assert = __webpack_require__(22), Buffer = __webpack_require__(14).Buffer, ASN1 = __webpack_require__(233), newInvalidAsn1Error = __webpack_require__(232).newInvalidAsn1Error, DEFAULT_OPTS = { + var assert = __webpack_require__(25), Buffer = __webpack_require__(14).Buffer, ASN1 = __webpack_require__(264), newInvalidAsn1Error = __webpack_require__(263).newInvalidAsn1Error, DEFAULT_OPTS = { size: 1024, growthFactor: 8 }; @@ -94306,12 +100017,12 @@ } }, module.exports = Writer; }, function(module, exports, __webpack_require__) { - var crypto = __webpack_require__(9), BigInteger = __webpack_require__(98).BigInteger, Buffer = (__webpack_require__(151).ECPointFp, + var crypto = __webpack_require__(6), BigInteger = __webpack_require__(110).BigInteger, Buffer = (__webpack_require__(164).ECPointFp, __webpack_require__(14).Buffer); function unstupid(hex, len) { return hex.length >= len ? hex : unstupid("0" + hex, len); } - exports.ECCurves = __webpack_require__(1058), exports.ECKey = function(curve, key, isPublic) { + exports.ECCurves = __webpack_require__(1142), exports.ECKey = function(curve, key, isPublic) { var priv, c = curve(), n = c.getN(), bytes = Math.floor(n.bitLength() / 8); if (key) if (isPublic) curve = c.getCurve(), this.P = curve.decodePointHex(key.toString("hex")); else { if (key.length != bytes) return !1; @@ -94329,7 +100040,7 @@ }); }; }, function(module, exports, __webpack_require__) { - var BigInteger = __webpack_require__(98).BigInteger, ECCurveFp = __webpack_require__(151).ECCurveFp; + var BigInteger = __webpack_require__(110).BigInteger, ECCurveFp = __webpack_require__(164).ECCurveFp; function X9ECParameters(curve, g, n, h) { this.curve = curve, this.g = g, this.n = n, this.h = h; } @@ -94425,8 +100136,8 @@ fromBuffer: fromBuffer, toBuffer: toBuffer }; - var assert = __webpack_require__(15), SSHBuffer = __webpack_require__(100), crypto = __webpack_require__(9), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(30), Key = __webpack_require__(26), Identity = (__webpack_require__(28), - __webpack_require__(103)), rfc4253 = __webpack_require__(57), Signature = __webpack_require__(48), utils = __webpack_require__(27), Certificate = __webpack_require__(102), TYPES = { + var assert = __webpack_require__(15), SSHBuffer = __webpack_require__(112), crypto = __webpack_require__(6), Buffer = __webpack_require__(14).Buffer, algs = __webpack_require__(31), Key = __webpack_require__(27), Identity = (__webpack_require__(29), + __webpack_require__(115)), rfc4253 = __webpack_require__(63), Signature = __webpack_require__(53), utils = __webpack_require__(28), Certificate = __webpack_require__(114), TYPES = { user: 1, host: 2 }; @@ -94542,7 +100253,7 @@ throw new Error("Unsupported key type " + key.type); } }, function(module, exports, __webpack_require__) { - var x509 = __webpack_require__(484); + var x509 = __webpack_require__(526); module.exports = { read: function(buf, options) { "string" != typeof buf && (assert.buffer(buf, "buf"), buf = buf.toString("ascii")); @@ -94567,12 +100278,12 @@ return o += buf.write("-----END CERTIFICATE-----\n", o), buf.slice(0, o); } }; - var assert = __webpack_require__(15), Buffer = (__webpack_require__(49), __webpack_require__(14).Buffer); - __webpack_require__(30), __webpack_require__(27), __webpack_require__(26), __webpack_require__(28), - __webpack_require__(56), __webpack_require__(103), __webpack_require__(48), __webpack_require__(102); + var assert = __webpack_require__(15), Buffer = (__webpack_require__(54), __webpack_require__(14).Buffer); + __webpack_require__(31), __webpack_require__(28), __webpack_require__(27), __webpack_require__(29), + __webpack_require__(62), __webpack_require__(115), __webpack_require__(53), __webpack_require__(114); }, function(module, exports, __webpack_require__) { - var assert = __webpack_require__(15), crypto = __webpack_require__(9), util = (__webpack_require__(11), - __webpack_require__(0)), sshpk = __webpack_require__(231), jsprim = __webpack_require__(1062), utils = __webpack_require__(150), sprintf = __webpack_require__(0).format, HASH_ALGOS = utils.HASH_ALGOS, PK_ALGOS = utils.PK_ALGOS, InvalidAlgorithmError = utils.InvalidAlgorithmError, HttpSignatureError = utils.HttpSignatureError, validateAlgorithm = utils.validateAlgorithm, AUTHZ_FMT = 'Signature keyId="%s",algorithm="%s",headers="%s",signature="%s"'; + var assert = __webpack_require__(15), crypto = __webpack_require__(6), util = (__webpack_require__(11), + __webpack_require__(0)), sshpk = __webpack_require__(262), jsprim = __webpack_require__(1146), utils = __webpack_require__(163), sprintf = __webpack_require__(0).format, HASH_ALGOS = utils.HASH_ALGOS, PK_ALGOS = utils.PK_ALGOS, InvalidAlgorithmError = utils.InvalidAlgorithmError, HttpSignatureError = utils.HttpSignatureError, validateAlgorithm = utils.validateAlgorithm, AUTHZ_FMT = 'Signature keyId="%s",algorithm="%s",headers="%s",signature="%s"'; function MissingHeaderError(message) { HttpSignatureError.call(this, message, MissingHeaderError); } @@ -94702,7 +100413,7 @@ }; }, function(module, exports, __webpack_require__) { var mod_assert = __webpack_require__(15), mod_extsprintf = (__webpack_require__(0), - __webpack_require__(1063)), mod_verror = __webpack_require__(1064), mod_jsonschema = __webpack_require__(1067); + __webpack_require__(1147)), mod_verror = __webpack_require__(1148), mod_jsonschema = __webpack_require__(1151); function hasKey(obj, key) { return mod_assert.equal(typeof key, "string"), Object.prototype.hasOwnProperty.call(obj, key); } @@ -94865,7 +100576,7 @@ return rv; } }, function(module, exports, __webpack_require__) { - var mod_assert = __webpack_require__(22), mod_util = __webpack_require__(0); + var mod_assert = __webpack_require__(25), mod_util = __webpack_require__(0); function jsSprintf(fmt) { var flags, width, precision, conversion, left, pad, sign, arg, match, regex = [ "([^%]*)", "%", "(['\\-+ #0]*?)", "([1-9]\\d*)?", "(\\.([1-9]\\d*))?", "[lhjztL]*?", "([diouxXfFeEgGaAcCsSp%jr])" ].join(""), re = new RegExp(regex), args = Array.prototype.slice.call(arguments, 1), ret = "", argn = 1; for (mod_assert.equal("string", typeof fmt); null !== (match = re.exec(fmt)); ) if (ret += match[1], @@ -94928,7 +100639,7 @@ args.unshift(process.stdout), jsFprintf.apply(null, args); }, exports.fprintf = jsFprintf; }, function(module, exports, __webpack_require__) { - var mod_assertplus = __webpack_require__(15), mod_util = __webpack_require__(0), mod_extsprintf = __webpack_require__(1065), mod_isError = __webpack_require__(1066).isError, sprintf = mod_extsprintf.sprintf; + var mod_assertplus = __webpack_require__(15), mod_util = __webpack_require__(0), mod_extsprintf = __webpack_require__(1149), mod_isError = __webpack_require__(1150).isError, sprintf = mod_extsprintf.sprintf; function parseConstructorArguments(args) { var argv, options, sprintf_args, k; if (mod_assertplus.object(args, "args"), mod_assertplus.bool(args.strict, "args.strict"), @@ -95031,7 +100742,7 @@ return mod_isError(c) && (this.jse_cause = c), this.jse_cause; }; }, function(module, exports, __webpack_require__) { - var mod_assert = __webpack_require__(22), mod_util = __webpack_require__(0); + var mod_assert = __webpack_require__(25), mod_util = __webpack_require__(0); function jsSprintf(ofmt) { var flags, width, precision, conversion, left, pad, sign, arg, match, convposn, curconv, regex = [ "([^%]*)", "%", "(['\\-+ #0]*?)", "([1-9]\\d*)?", "(\\.([1-9]\\d*))?", "[lhjztL]*?", "([diouxXfFeEgGaAcCsSp%jr])" ].join(""), re = new RegExp(regex), args = Array.prototype.slice.call(arguments, 1), fmt = ofmt, ret = "", argn = 1, posn = 0; for (mod_assert.equal("string", typeof fmt, "first argument must be a format string"); null !== (match = re.exec(fmt)); ) if (ret += match[1], @@ -95271,7 +100982,7 @@ })(); }.apply(exports, []), void 0 === __WEBPACK_AMD_DEFINE_RESULT__ || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__); }, function(module, exports, __webpack_require__) { - var assert = __webpack_require__(15), crypto = __webpack_require__(9), sshpk = __webpack_require__(231), utils = __webpack_require__(150), validateAlgorithm = (utils.HASH_ALGOS, + var assert = __webpack_require__(15), crypto = __webpack_require__(6), sshpk = __webpack_require__(262), utils = __webpack_require__(163), validateAlgorithm = (utils.HASH_ALGOS, utils.PK_ALGOS, utils.InvalidAlgorithmError, utils.HttpSignatureError, utils.validateAlgorithm); module.exports = { verifySignature: function(parsedSignature, pubkey) { @@ -95297,7 +101008,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = ForeverAgent, ForeverAgent.SSL = ForeverAgentSSL; - var util = __webpack_require__(0), Agent = __webpack_require__(11).Agent, net = __webpack_require__(42), tls = __webpack_require__(92), AgentSSL = __webpack_require__(21).Agent; + var util = __webpack_require__(0), Agent = __webpack_require__(11).Agent, net = __webpack_require__(39), tls = __webpack_require__(70), AgentSSL = __webpack_require__(21).Agent; function getConnectionName(host, port) { return "string" == typeof host ? host + ":" + port : host.host + ":" + host.port + ":" + (host.localAddress ? host.localAddress + ":" : ":"); } @@ -95342,7 +101053,7 @@ tls.connect(options); }, ForeverAgentSSL.prototype.addRequestNoreuse = AgentSSL.prototype.addRequest; }, function(module, exports, __webpack_require__) { - var CombinedStream = __webpack_require__(485), util = __webpack_require__(0), path = __webpack_require__(4), http = __webpack_require__(11), https = __webpack_require__(21), parseUrl = __webpack_require__(6).parse, fs = __webpack_require__(2), mime = __webpack_require__(89), asynckit = __webpack_require__(1072), populate = __webpack_require__(1076); + var CombinedStream = __webpack_require__(527), util = __webpack_require__(0), path = __webpack_require__(5), http = __webpack_require__(11), https = __webpack_require__(21), parseUrl = __webpack_require__(7).parse, fs = __webpack_require__(2), mime = __webpack_require__(78), asynckit = __webpack_require__(1156), populate = __webpack_require__(1160); function FormData(options) { if (!(this instanceof FormData)) return new FormData; for (var option in this._overheadLength = 0, this._valueLength = 0, this._valuesToMeasure = [], @@ -95489,12 +101200,12 @@ }; }, function(module, exports, __webpack_require__) { module.exports = { - parallel: __webpack_require__(1073), - serial: __webpack_require__(1075), - serialOrdered: __webpack_require__(491) + parallel: __webpack_require__(1157), + serial: __webpack_require__(1159), + serialOrdered: __webpack_require__(533) }; }, function(module, exports, __webpack_require__) { - var iterate = __webpack_require__(486), initState = __webpack_require__(489), terminator = __webpack_require__(490); + var iterate = __webpack_require__(528), initState = __webpack_require__(531), terminator = __webpack_require__(532); module.exports = function(list, iterator, callback) { for (var state = initState(list); state.index < (state.keyedList || list).length; ) iterate(list, iterator, state, (function(error, result) { error ? callback(error, result) : 0 !== Object.keys(state.jobs).length || callback(null, state.results); @@ -95507,7 +101218,7 @@ nextTick ? nextTick(fn) : setTimeout(fn, 0); }; }, function(module, exports, __webpack_require__) { - var serialOrdered = __webpack_require__(491); + var serialOrdered = __webpack_require__(533); module.exports = function(list, iterator, callback) { return serialOrdered(list, iterator, null, callback); }; @@ -95542,7 +101253,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var qs = __webpack_require__(493), querystring = __webpack_require__(24); + var qs = __webpack_require__(535), querystring = __webpack_require__(24); function Querystring(request) { this.request = request, this.lib = null, this.useQuerystring = null, this.parseOptions = null, this.stringifyOptions = null; @@ -95561,7 +101272,7 @@ }, Querystring.prototype.unescape = querystring.unescape, exports.Querystring = Querystring; }, function(module, exports, __webpack_require__) { "use strict"; - var utils = __webpack_require__(494), formats = __webpack_require__(495), arrayPrefixGenerators = { + var utils = __webpack_require__(536), formats = __webpack_require__(537), arrayPrefixGenerators = { brackets: function(prefix) { return prefix + "[]"; }, @@ -95621,7 +101332,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var utils = __webpack_require__(494), has = Object.prototype.hasOwnProperty, defaults = { + var utils = __webpack_require__(536), has = Object.prototype.hasOwnProperty, defaults = { allowDots: !1, allowPrototypes: !1, arrayLimit: 20, @@ -95684,7 +101395,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var fs = __webpack_require__(2), qs = __webpack_require__(24), validate = __webpack_require__(1082), extend = __webpack_require__(147); + var fs = __webpack_require__(2), qs = __webpack_require__(24), validate = __webpack_require__(1166), extend = __webpack_require__(157); function Har(request) { this.request = request; } @@ -95741,14 +101452,14 @@ }))) : req.postData.text && (options.body = req.postData.text), options; }, exports.Har = Har; }, function(module, exports, __webpack_require__) { - var ajv, Ajv = __webpack_require__(1083), HARError = __webpack_require__(1116), schemas = __webpack_require__(1117); + var ajv, Ajv = __webpack_require__(1167), HARError = __webpack_require__(1200), schemas = __webpack_require__(1201); function validate(name, data) { data = data || {}; var validate = (ajv = ajv || (function() { var ajv = new Ajv({ allErrors: !0 }); - return ajv.addMetaSchema(__webpack_require__(1136)), ajv.addSchema(schemas), ajv; + return ajv.addMetaSchema(__webpack_require__(1220)), ajv.addSchema(schemas), ajv; })()).getSchema(name + ".json"); return new Promise((function(resolve, reject) { validate(data) ? resolve(data) : reject(new HARError(validate.errors)); @@ -95793,7 +101504,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var compileSchema = __webpack_require__(1084), resolve = __webpack_require__(238), Cache = __webpack_require__(1088), SchemaObject = __webpack_require__(496), stableStringify = __webpack_require__(497), formats = __webpack_require__(1089), rules = __webpack_require__(1090), $dataMetaSchema = __webpack_require__(1111), util = __webpack_require__(80); + var compileSchema = __webpack_require__(1168), resolve = __webpack_require__(269), Cache = __webpack_require__(1172), SchemaObject = __webpack_require__(538), stableStringify = __webpack_require__(539), formats = __webpack_require__(1173), rules = __webpack_require__(1174), $dataMetaSchema = __webpack_require__(1195), util = __webpack_require__(91); module.exports = Ajv, Ajv.prototype.validate = function(schemaKeyRef, data) { var v; if ("string" == typeof schemaKeyRef) { @@ -95928,11 +101639,11 @@ var _validate = schemaObj.validate, result = _validate.apply(this, arguments); return callValidate.errors = _validate.errors, result; } - }, Ajv.prototype.compileAsync = __webpack_require__(1112); - var customKeyword = __webpack_require__(1113); + }, Ajv.prototype.compileAsync = __webpack_require__(1196); + var customKeyword = __webpack_require__(1197); Ajv.prototype.addKeyword = customKeyword.add, Ajv.prototype.getKeyword = customKeyword.get, Ajv.prototype.removeKeyword = customKeyword.remove, Ajv.prototype.validateKeyword = customKeyword.validate; - var errorClasses = __webpack_require__(240); + var errorClasses = __webpack_require__(271); Ajv.ValidationError = errorClasses.Validation, Ajv.MissingRefError = errorClasses.MissingRef, Ajv.$dataMetaSchema = $dataMetaSchema; var META_SCHEMA_ID = "http://json-schema.org/draft-07/schema", META_IGNORE_OPTIONS = [ "removeAdditional", "useDefaults", "coerceTypes", "strictDefaults" ], META_SUPPORT_DATA = [ "/properties" ]; @@ -95972,9 +101683,9 @@ } })(this), (function(self) { var $dataSchema; - if (self._opts.$data && ($dataSchema = __webpack_require__(1115), self.addMetaSchema($dataSchema, $dataSchema.$id, !0)), + if (self._opts.$data && ($dataSchema = __webpack_require__(1199), self.addMetaSchema($dataSchema, $dataSchema.$id, !0)), !1 !== self._opts.meta) { - var metaSchema = __webpack_require__(503); + var metaSchema = __webpack_require__(545); self._opts.$data && (metaSchema = $dataMetaSchema(metaSchema, META_SUPPORT_DATA)), self.addMetaSchema(metaSchema, META_SCHEMA_ID, !0), self._refs["http://json-schema.org/schema"] = META_SCHEMA_ID; } @@ -96013,7 +101724,7 @@ function noop() {} }, function(module, exports, __webpack_require__) { "use strict"; - var resolve = __webpack_require__(238), util = __webpack_require__(80), errorClasses = __webpack_require__(240), stableStringify = __webpack_require__(497), validateGenerator = __webpack_require__(498), ucs2length = util.ucs2length, equal = __webpack_require__(239), ValidationError = errorClasses.Validation; + var resolve = __webpack_require__(269), util = __webpack_require__(91), errorClasses = __webpack_require__(271), stableStringify = __webpack_require__(539), validateGenerator = __webpack_require__(540), ucs2length = util.ucs2length, equal = __webpack_require__(270), ValidationError = errorClasses.Validation; function checkCompiling(schema, root, baseId) { var index = compIndex.call(this, schema, root, baseId); return index >= 0 ? { @@ -96757,7 +102468,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var util = __webpack_require__(80), DATE = /^(\d\d\d\d)-(\d\d)-(\d\d)$/, DAYS = [ 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ], TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i, HOSTNAME = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i, URI = /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i, URITEMPLATE = /^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i, URL = /^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i, UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i, JSON_POINTER = /^(?:\/(?:[^~/]|~0|~1)*)*$/, JSON_POINTER_URI_FRAGMENT = /^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i, RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/; + var util = __webpack_require__(91), DATE = /^(\d\d\d\d)-(\d\d)-(\d\d)$/, DAYS = [ 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ], TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i, HOSTNAME = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i, URI = /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i, URITEMPLATE = /^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i, URL = /^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i, UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i, JSON_POINTER = /^(?:\/(?:[^~/]|~0|~1)*)*$/, JSON_POINTER_URI_FRAGMENT = /^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i, RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/; function formats(mode) { return mode = "full" == mode ? "full" : "fast", util.copy(formats[mode]); } @@ -96828,7 +102539,7 @@ } }, function(module, exports, __webpack_require__) { "use strict"; - var ruleModules = __webpack_require__(1091), toHash = __webpack_require__(80).toHash; + var ruleModules = __webpack_require__(1175), toHash = __webpack_require__(91).toHash; module.exports = function() { var RULES = [ { type: "number", @@ -96876,34 +102587,34 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = { - $ref: __webpack_require__(1092), - allOf: __webpack_require__(1093), - anyOf: __webpack_require__(1094), - $comment: __webpack_require__(1095), - const: __webpack_require__(1096), - contains: __webpack_require__(1097), - dependencies: __webpack_require__(1098), - enum: __webpack_require__(1099), - format: __webpack_require__(1100), - if: __webpack_require__(1101), - items: __webpack_require__(1102), - maximum: __webpack_require__(499), - minimum: __webpack_require__(499), - maxItems: __webpack_require__(500), - minItems: __webpack_require__(500), - maxLength: __webpack_require__(501), - minLength: __webpack_require__(501), - maxProperties: __webpack_require__(502), - minProperties: __webpack_require__(502), - multipleOf: __webpack_require__(1103), - not: __webpack_require__(1104), - oneOf: __webpack_require__(1105), - pattern: __webpack_require__(1106), - properties: __webpack_require__(1107), - propertyNames: __webpack_require__(1108), - required: __webpack_require__(1109), - uniqueItems: __webpack_require__(1110), - validate: __webpack_require__(498) + $ref: __webpack_require__(1176), + allOf: __webpack_require__(1177), + anyOf: __webpack_require__(1178), + $comment: __webpack_require__(1179), + const: __webpack_require__(1180), + contains: __webpack_require__(1181), + dependencies: __webpack_require__(1182), + enum: __webpack_require__(1183), + format: __webpack_require__(1184), + if: __webpack_require__(1185), + items: __webpack_require__(1186), + maximum: __webpack_require__(541), + minimum: __webpack_require__(541), + maxItems: __webpack_require__(542), + minItems: __webpack_require__(542), + maxLength: __webpack_require__(543), + minLength: __webpack_require__(543), + maxProperties: __webpack_require__(544), + minProperties: __webpack_require__(544), + multipleOf: __webpack_require__(1187), + not: __webpack_require__(1188), + oneOf: __webpack_require__(1189), + pattern: __webpack_require__(1190), + properties: __webpack_require__(1191), + propertyNames: __webpack_require__(1192), + required: __webpack_require__(1193), + uniqueItems: __webpack_require__(1194), + validate: __webpack_require__(540) }; }, function(module, exports, __webpack_require__) { "use strict"; @@ -97611,7 +103322,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var MissingRefError = __webpack_require__(240).MissingRef; + var MissingRefError = __webpack_require__(271).MissingRef; module.exports = function compileAsync(schema, meta, callback) { var self = this; if ("function" != typeof this._opts.loadSchema) throw new Error("options.loadSchema should be a function"); @@ -97658,7 +103369,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i, customRuleCode = __webpack_require__(1114), metaSchema = __webpack_require__(503); + var IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i, customRuleCode = __webpack_require__(1198), metaSchema = __webpack_require__(545); module.exports = { add: function(keyword, definition) { var RULES = this.RULES; @@ -97864,24 +103575,24 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = { - afterRequest: __webpack_require__(1118), - beforeRequest: __webpack_require__(1119), - browser: __webpack_require__(1120), - cache: __webpack_require__(1121), - content: __webpack_require__(1122), - cookie: __webpack_require__(1123), - creator: __webpack_require__(1124), - entry: __webpack_require__(1125), - har: __webpack_require__(1126), - header: __webpack_require__(1127), - log: __webpack_require__(1128), - page: __webpack_require__(1129), - pageTimings: __webpack_require__(1130), - postData: __webpack_require__(1131), - query: __webpack_require__(1132), - request: __webpack_require__(1133), - response: __webpack_require__(1134), - timings: __webpack_require__(1135) + afterRequest: __webpack_require__(1202), + beforeRequest: __webpack_require__(1203), + browser: __webpack_require__(1204), + cache: __webpack_require__(1205), + content: __webpack_require__(1206), + cookie: __webpack_require__(1207), + creator: __webpack_require__(1208), + entry: __webpack_require__(1209), + har: __webpack_require__(1210), + header: __webpack_require__(1211), + log: __webpack_require__(1212), + page: __webpack_require__(1213), + pageTimings: __webpack_require__(1214), + postData: __webpack_require__(1215), + query: __webpack_require__(1216), + request: __webpack_require__(1217), + response: __webpack_require__(1218), + timings: __webpack_require__(1219) }; }, function(module) { module.exports = { @@ -98602,7 +104313,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var caseless = __webpack_require__(237), uuid = __webpack_require__(148), helpers = __webpack_require__(230), md5 = helpers.md5, toBase64 = helpers.toBase64; + var caseless = __webpack_require__(268), uuid = __webpack_require__(158), helpers = __webpack_require__(261), md5 = helpers.md5, toBase64 = helpers.toBase64; function Auth(request) { this.request = request, this.hasAuth = !1, this.sentAuth = !1, this.bearerToken = null, this.user = null, this.pass = null; @@ -98663,7 +104374,7 @@ }, exports.Auth = Auth; }, function(module, exports, __webpack_require__) { "use strict"; - var url = __webpack_require__(6), qs = __webpack_require__(493), caseless = __webpack_require__(237), uuid = __webpack_require__(148), oauth = __webpack_require__(1139), crypto = __webpack_require__(9), Buffer = __webpack_require__(25).Buffer; + var url = __webpack_require__(7), qs = __webpack_require__(535), caseless = __webpack_require__(268), uuid = __webpack_require__(158), oauth = __webpack_require__(1223), crypto = __webpack_require__(6), Buffer = __webpack_require__(26).Buffer; function OAuth(request) { this.request = request, this.params = null; } @@ -98722,7 +104433,7 @@ } }, exports.OAuth = OAuth; }, function(module, exports, __webpack_require__) { - var crypto = __webpack_require__(9); + var crypto = __webpack_require__(6); function sha(key, body, algorithm) { return crypto.createHmac(algorithm, key).update(body).digest("base64"); } @@ -98789,7 +104500,7 @@ }, exports.rfc3986 = rfc3986, exports.generateBase = generateBase; }, function(module, exports, __webpack_require__) { "use strict"; - var crypto = __webpack_require__(9); + var crypto = __webpack_require__(6); exports.calculateMac = function(credentials, opts) { var normalized = "hawk.1.header\n" + opts.ts + "\n" + opts.nonce + "\n" + (opts.method || "").toUpperCase() + "\n" + opts.resource + "\n" + opts.host.toLowerCase() + "\n" + opts.port + "\n" + (opts.hash || "") + "\n"; return opts.ext && (normalized += opts.ext.replace("\\", "\\\\").replace("\n", "\\n")), @@ -98821,7 +104532,7 @@ }; }, function(module, exports, __webpack_require__) { "use strict"; - var uuid = __webpack_require__(148), CombinedStream = __webpack_require__(485), isstream = __webpack_require__(492), Buffer = __webpack_require__(25).Buffer; + var uuid = __webpack_require__(158), CombinedStream = __webpack_require__(527), isstream = __webpack_require__(534), Buffer = __webpack_require__(26).Buffer; function Multipart(request) { this.request = request, this.boundary = uuid(), this.chunked = !1, this.body = null; } @@ -98855,7 +104566,7 @@ }, exports.Multipart = Multipart; }, function(module, exports, __webpack_require__) { "use strict"; - var url = __webpack_require__(6), isUrl = /^https?:/; + var url = __webpack_require__(7), isUrl = /^https?:/; function Redirect(request) { this.request = request, this.followRedirect = !0, this.followRedirects = !0, this.followAllRedirects = !1, this.followOriginalHttpMethod = !1, this.allowRedirect = function() { @@ -98909,7 +104620,7 @@ }, exports.Redirect = Redirect; }, function(module, exports, __webpack_require__) { "use strict"; - var url = __webpack_require__(6), tunnel = __webpack_require__(1144), defaultProxyHeaderWhiteList = [ "accept", "accept-charset", "accept-encoding", "accept-language", "accept-ranges", "cache-control", "content-encoding", "content-language", "content-location", "content-md5", "content-range", "content-type", "connection", "date", "expect", "max-forwards", "pragma", "referer", "te", "user-agent", "via" ], defaultProxyHeaderExclusiveList = [ "proxy-authorization" ]; + var url = __webpack_require__(7), tunnel = __webpack_require__(1228), defaultProxyHeaderWhiteList = [ "accept", "accept-charset", "accept-encoding", "accept-language", "accept-ranges", "cache-control", "content-encoding", "content-language", "content-location", "content-md5", "content-range", "content-type", "connection", "date", "expect", "max-forwards", "pragma", "referer", "te", "user-agent", "via" ], defaultProxyHeaderExclusiveList = [ "proxy-authorization" ]; function Tunnel(request) { this.request = request, this.proxyHeaderWhiteList = defaultProxyHeaderWhiteList, this.proxyHeaderExclusiveList = [], void 0 !== request.tunnel && (this.tunnelOverride = request.tunnel); @@ -98964,8 +104675,8 @@ exports.Tunnel = Tunnel; }, function(module, exports, __webpack_require__) { "use strict"; - __webpack_require__(42); - var debug, tls = __webpack_require__(92), http = __webpack_require__(11), https = __webpack_require__(21), events = __webpack_require__(5), assert = __webpack_require__(22), util = __webpack_require__(0), Buffer = __webpack_require__(25).Buffer; + __webpack_require__(39); + var debug, tls = __webpack_require__(70), http = __webpack_require__(11), https = __webpack_require__(21), events = __webpack_require__(4), assert = __webpack_require__(25), util = __webpack_require__(0), Buffer = __webpack_require__(26).Buffer; function TunnelingAgent(options) { var self = this; self.options = options || {}, self.proxyOptions = self.options.proxy || {}, self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets, @@ -99101,27 +104812,68 @@ }, loadTime = (new Date).getTime()); }).call(this); }, function(module, exports, __webpack_require__) { - const request = __webpack_require__(229); - module.exports = async function(url) { - return new Promise(((resolve, reject) => { - const req = request({ - url: url, - followRedirect: !0, - maxRedirects: 5, - strictSSL: !1 - }); - req.on("response", (function(d) { - req.abort(), d.headers["content-length"] ? resolve(d.headers["content-length"]) : reject("Could not retrieve content-length from ranged request"); - })).on("error", reject); - })); - }; -}, function(module, exports, __webpack_require__) { - const mime = __webpack_require__(63); + const mime = __webpack_require__(45); module.exports = function(rarInnerFile) { return mime.lookup(rarInnerFile.name) || "application/octet-stream"; }; }, function(module, exports, __webpack_require__) { - const store = __webpack_require__(241), getRouter = __webpack_require__(1149), getZipStream = __webpack_require__(504); + const store = __webpack_require__(162), parseQuery = __webpack_require__(272), cryptojs = __webpack_require__(6), ee = __webpack_require__(4), lzDecompress = __webpack_require__(77).decompressFromEncodedURIComponent, initEmitter = new ee; + module.exports = { + createKey: function(archiveType, orderRegex, orderDefault, req, res) { + function storeDataToKey(arr, newKey) { + if (newKey && null !== store.get(newKey)) return newKey; + arr = arr.map((el => Array.isArray(el) ? !!el[0] && (el[1] ? { + url: el[0], + bytes: el[1] + } : { + url: el[0] + }) : el)).filter((el => !!el)), orderRegex && (arr = arr.sort(((first, second) => { + const firstMatch = ((first || {}).url || first || "").split("?")[0].match(orderRegex), secondMatch = ((second || {}).url || second || "").split("?")[0].match(orderRegex); + return +(firstMatch && firstMatch[1] || orderDefault || 0) - +(secondMatch && secondMatch[1] || orderDefault || 0); + }))); + const key = store.set(arr, newKey); + return initEmitter.emit(key), key; + } + if ("POST" === req.method) { + if (!Array.isArray(req.body)) return res.statusCode = 500, res.setHeader("Content-Type", "text/plain"), + void res.end("Cannot parse JSON data, err 1"); + const key = storeDataToKey(req.body, req.params.createKey); + res.setHeader("Content-Length", JSON.stringify({ + key: key + }).length + ""), res.setHeader("Content-Type", "application/json"), res.end(JSON.stringify({ + key: key + })); + } else { + if (!req.query.lz) return res.statusCode = 500, res.setHeader("Content-Type", "text/plain"), + void res.end("Cannot parse JSON data, err 2"); + let lzData = !1; + try { + lzData = JSON.parse(lzDecompress(req.query.lz)); + } catch (e) {} + if (!lzData || !lzData.urls || !lzData.urls.length) return res.statusCode = 500, + res.setHeader("Content-Type", "text/plain"), void res.end("Cannot parse JSON data, err 3"); + const hashKey = (txt = req.query.lz, cryptojs.createHash("sha256").update(txt).digest("hex")); + storeDataToKey(lzData.urls, hashKey), opts = (function(lzData) { + let opts = {}; + return lzData.fileMustInclude && (opts.fileMustInclude = lzData.fileMustInclude), + lzData.maxFiles && lzData.maxFiles > 0 && (opts.maxFiles = lzData.maxFiles), lzData.fileIdx && lzData.fileIdx > -1 && (opts.fileIdx = lzData.fileIdx), + !!Object.keys(opts).length && opts; + })(lzData), res.statusCode = 302, res.setHeader("Location", `/${archiveType}/stream?key=${hashKey}` + (opts ? "&o=" + encodeURIComponent(JSON.stringify(opts)) : "")), + res.end(); + } + var txt; + }, + waitForKey: function(req) { + return new Promise(((resolve, reject) => { + const key = parseQuery(req).query.key; + key ? null === store.get(key) ? initEmitter.addListener(key, (function gotData() { + initEmitter.removeListener(key, gotData), resolve(); + })) : resolve() : reject(Error("No stream key provided")); + })); + } + }; +}, function(module, exports, __webpack_require__) { + const store = __webpack_require__(166), getRouter = __webpack_require__(1233), getZipStream = __webpack_require__(546); module.exports = { router: getRouter, create: zipUrls => { @@ -99141,79 +104893,166 @@ } }; }, function(module, exports, __webpack_require__) { - const getContentType = __webpack_require__(1150), getZipStream = __webpack_require__(504), bodyParser = __webpack_require__(106), Router = __webpack_require__(469), store = __webpack_require__(241); + const getContentType = __webpack_require__(1234), getZipStream = __webpack_require__(546), bodyParser = __webpack_require__(50), Router = __webpack_require__(108), store = __webpack_require__(166), parseQuery = __webpack_require__(276), keyHandler = (new (__webpack_require__(4)), + __webpack_require__(1282)), orderRegex = /\.Z(\d\d?\d?\d?\d?)$/i; module.exports = function() { const router = Router(); - return router.use(bodyParser.json()), router.post("/create", ((req, res) => { - Array.isArray(req.body) || res.status(500).send("Cannot parse JSON data"); - const key = store.set(req.body); - res.setHeader("Content-Length", JSON.stringify({ - key: key - }).length + ""), res.setHeader("Content-Type", "application/json"), res.end(JSON.stringify({ - key: key - })); - })), router.get("/stream", (async (req, res) => { - let file; + router.use(bodyParser.json()), router.post("/create/:createKey", keyHandler.createKey.bind(null, "zip", orderRegex, 99999)), + router.all("/create", keyHandler.createKey.bind(null, "zip", orderRegex, 99999)); + const fileVars = {}; + return router.get("/stream", (async (req, res) => { try { - file = await getZipStream(req); + await keyHandler.waitForKey(req); } catch (e) { return console.error(e), res.statusCode = 500, void res.end(); } - const contentLength = file.uncompressedSize; - return ((req || {}).headers || {}).range && "bytes=0-" !== req.headers.range && req.headers.range !== "bytes=0-" + (contentLength - 1) ? (res.statusCode = 405, - void res.end()) : "HEAD" === req.method ? (res.statusCode = 204, res.setHeader("Content-Length", contentLength + ""), - res.setHeader("Content-Type", getContentType({ - name: file.path - })), void res.end()) : (res.statusCode = 200, res.setHeader("Content-Type", getContentType({ - name: file.path - })), res.setHeader("Content-Length", contentLength), void file.stream().pipe(res)); + let file, contentLength; + const parsed = parseQuery(req), key = parsed.query.key; + if (!fileVars[key]) { + try { + file = await getZipStream(req); + } catch (e) { + return console.error(e), res.statusCode = 500, void res.end(); + } + if (!file) { + const errMsg = "There was an error with the zip parser."; + return console.error(Error(errMsg)), res.statusCode = 500, void res.end(errMsg); + } + if (contentLength = file.uncompressedSize, 0 === file.compressionMethod) { + let entryVars = null; + try { + entryVars = await file.entryVars(); + } catch (e) { + return console.error(e), res.statusCode = 500, void res.end((e || {}).message || "Unknown error with zip parser"); + } + fileVars[key] = { + offset: file.offsetToLocalFileHeader + 30 + entryVars.fileNameLength + entryVars.extraFieldLength + (1 & file.flags ? 12 : 0), + size: file.uncompressedSize || entryVars.uncompressedSize, + filename: entryVars.fileName, + innerFile: file.inner + }; + } + } + if (fileVars[key]) { + const offset = fileVars[key].offset, size = fileVars[key].size, filename = fileVars[key].filename; + let url = !1; + const zipUrls = store.get(key); + if (zipUrls) url = zipUrls[0]; else { + if (!parsed.query.r) return res.statusCode = 500, void res.end(); + url = parsed.query.r; + } + if ("OPTIONS" === req.method && req.headers["access-control-request-headers"]) return res.writeHead(200, { + "Access-Control-Allow-Origin": req.headers.origin, + "Access-Control-Allow-Methods": "POST, GET, OPTIONS", + "Access-Control-Allow-Headers": req.headers["access-control-request-headers"], + "Access-Control-Max-Age": "1728000" + }), res.end(); + const range = req.headers.range || null, mimeType = getContentType({ + name: filename + }); + let start = null, end = null; + if (range) { + let parts = range.replace(/bytes=/, "").split("-"); + if (start = parts[0], end = parts[1], start = parseInt(start, 10), end = end ? parseInt(end, 10) : size - 1, + !isNaN(start) && isNaN(end) && (end = size - 1), isNaN(start) && !isNaN(end) && (start = size - end, + end = size - 1), start >= size || end >= size || start < 0 || end < 0) return res.writeHead(416, { + "Content-Range": `bytes */${size}` + }), res.end(); + if (res.writeHead(206, { + "Access-Control-Allow-Origin": req.headers.origin || "*", + "Content-Range": `bytes ${start}-${end}/${size}`, + "Accept-Ranges": "bytes", + "Content-Length": end - start + 1 + "", + "Content-Type": mimeType, + "transferMode.dlna.org": "Streaming", + "contentFeatures.dlna.org": "DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000" + }), "HEAD" === req.method) return res.end(); + } else if (res.writeHead(200, { + "Access-Control-Allow-Origin": req.headers.origin || "*", + "Content-Length": size + "", + "Content-Type": mimeType, + "Accept-Ranges": "bytes", + "transferMode.dlna.org": "Streaming", + "contentFeatures.dlna.org": "DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000" + }), "HEAD" === req.method) return res.end(); + url.url; + let rangeStart = 0, rangeEnd = size; + start || end ? (rangeStart = start + offset, rangeEnd = end + offset) : (rangeStart = offset, + rangeEnd = size + offset); + let stream = null; + try { + stream = await fileVars[key].innerFile.createReadStream({ + start: rangeStart, + end: rangeEnd + }); + } catch (e) { + return console.error(e), res.statusCode = 500, void res.end((e || {}).message || "Unknown error with zip parser"); + } + stream.pipe(res); + } else { + if (((req || {}).headers || {}).range && "bytes=0-" !== req.headers.range && req.headers.range !== "bytes=0-" + (contentLength - 1)) return res.statusCode = 405, + void res.end(); + if ("HEAD" === req.method) return res.statusCode = 204, res.setHeader("Content-Length", contentLength + ""), + res.setHeader("Content-Type", getContentType({ + name: file.path + })), void res.end(); + res.statusCode = 200, res.setHeader("Content-Type", getContentType({ + name: file.path + })), res.setHeader("Content-Length", contentLength); + let fileStream = null; + try { + fileStream = await file.stream(); + } catch (e) { + return console.error(e), res.statusCode = 500, void res.end((e || {}).message || "Unknown error with zip parser"); + } + req.on("close", (function() { + fileStream.destroy ? fileStream.destroy() : fileStream.unpipe && fileStream.unpipe(); + })), fileStream.pipe(res); + } })), router; }; }, function(module, exports, __webpack_require__) { - const mime = __webpack_require__(63); + const mime = __webpack_require__(45); module.exports = function(rarInnerFile) { return mime.lookup(rarInnerFile.name) || "application/octet-stream"; }; }, function(module, exports, __webpack_require__) { "use strict"; - exports.Open = __webpack_require__(1152); + exports.Open = __webpack_require__(1236); }, function(module, exports, __webpack_require__) { - var directory = __webpack_require__(1153), Stream = __webpack_require__(3); - Stream.Writable && Stream.Writable.prototype.destroy || (Stream = __webpack_require__(77)), + var directory = __webpack_require__(1237), Stream = __webpack_require__(3); + Stream.Writable && Stream.Writable.prototype.destroy || (Stream = __webpack_require__(88)), module.exports = { - url: function(request, params, options) { + url: function(innerFile, params, options) { if ("string" == typeof params && (params = { url: params }), !params.url) throw "URL missing"; - params.headers = params.headers || {}; - var source = { + return params.headers = params.headers || {}, directory({ stream: function(offset, length) { - var options = Object.create(params); - return options.headers = Object.create(params.headers), options.headers.range = "bytes=" + offset + "-" + (length || ""), - request(options); + return innerFile.createReadStream({ + start: offset, + end: length ? offset + length : innerFile.length - 1 + }); }, size: function() { - return new Promise((function(resolve, reject) { - var req = request(params); - req.on("response", (function(d) { - req.abort(), d.headers["content-length"] ? resolve(d.headers["content-length"]) : reject(new Error("Missing content length header")); - })).on("error", reject); - })); + return Promise.resolve(innerFile.length); + }, + opts: function() { + return options; } - }; - return directory(source, options); + }, options); } }; }, function(module, exports, __webpack_require__) { - var binary = __webpack_require__(242), PullStream = __webpack_require__(505), unzip = __webpack_require__(1158), Promise = __webpack_require__(1161), BufferStream = __webpack_require__(1193), parseExtraField = __webpack_require__(506), Buffer = __webpack_require__(153), path = __webpack_require__(4), Writer = __webpack_require__(1194).Writer, parseDateTime = __webpack_require__(507), signature = Buffer.alloc(4); - signature.writeUInt32LE(101010256, 0), module.exports = function(source, options) { + var PullStream = __webpack_require__(547), unzip = __webpack_require__(1238), Promise = __webpack_require__(1241), BufferStream = __webpack_require__(1273), parseExtraField = __webpack_require__(549), Buffer = __webpack_require__(167), path = __webpack_require__(5), Writer = __webpack_require__(1274).Writer, parseDateTime = __webpack_require__(550), entryVars = __webpack_require__(548), parseBuffer = __webpack_require__(273), signature = Buffer.alloc(4); + signature.writeUInt32LE(101010256, 0), module.exports = async function(source, options) { var sourceSize, crxHeader, startOffset, vars, endDir = PullStream(), records = PullStream(), tailSize = options && options.tailSize || 80; - return options && options.crx && (crxHeader = (function(source) { - var sourceStream = source.stream(0).pipe(PullStream()); + return options && options.crx && (crxHeader = await (async function(source) { + var sourceStream = (await source.stream(0)).pipe(PullStream()); return sourceStream.pull(4).then((function(data) { var crxHeader; if (875721283 === data.readUInt32LE(0)) return sourceStream.pull(12).then((function(data) { - crxHeader = binary.parse(data).word32lu("version").word32lu("pubKeyLength").word32lu("signatureLength").vars; + crxHeader = parseBuffer.parse(data, [ [ "version", 4 ], [ "pubKeyLength", 4 ], [ "signatureLength", 4 ] ]); })).then((function() { return sourceStream.pull(crxHeader.pubKeyLength + crxHeader.signatureLength); })).then((function(data) { @@ -99221,8 +105060,8 @@ crxHeader.size = 16 + crxHeader.pubKeyLength + crxHeader.signatureLength, crxHeader; })); })); - })(source)), source.size().then((function(size) { - return sourceSize = size, source.stream(Math.max(0, size - tailSize)).on("error", (function(error) { + })(source)), source.size().then((async function(size) { + return sourceSize = size, (await source.stream(Math.max(0, size - tailSize))).on("error", (function(error) { endDir.emit("error", error); })).pipe(endDir), endDir.pull(signature); })).then((function() { @@ -99230,20 +105069,30 @@ directory: endDir.pull(22), crxHeader: crxHeader }); - })).then((function(d) { + })).then((async function(d) { var data = d.directory; - if (startOffset = d.crxHeader && d.crxHeader.size || 0, 65535 == (vars = binary.parse(data).word32lu("signature").word16lu("diskNumber").word16lu("diskStart").word16lu("numberOfRecordsOnDisk").word16lu("numberOfRecords").word32lu("sizeOfCentralDirectory").word32lu("offsetToStartOfCentralDirectory").word16lu("commentLength").vars).numberOfRecords || 65535 == vars.numberOfRecords || 4294967295 == vars.offsetToStartOfCentralDirectory) { + if (startOffset = d.crxHeader && d.crxHeader.size || 0, 65535 == (vars = parseBuffer.parse(data, [ [ "signature", 4 ], [ "diskNumber", 2 ], [ "diskStart", 2 ], [ "numberOfRecordsOnDisk", 2 ], [ "numberOfRecords", 2 ], [ "sizeOfCentralDirectory", 4 ], [ "offsetToStartOfCentralDirectory", 4 ], [ "commentLength", 2 ] ])).diskNumber || 65535 == vars.numberOfRecords || 4294967295 == vars.offsetToStartOfCentralDirectory) { const zip64CDLSize = 20, zip64CDLOffset = sourceSize - (tailSize - endDir.match + zip64CDLSize), zip64CDLStream = PullStream(); - return source.stream(zip64CDLOffset).pipe(zip64CDLStream), zip64CDLStream.pull(zip64CDLSize).then((function(d) { - return (function(source, zip64CDL) { - var d64loc = binary.parse(zip64CDL).word32lu("signature").word32lu("diskNumber").word64lu("offsetToStartOfCentralDirectory").word32lu("numberOfDisks").vars; + let scStream = !1; + const opts = source.opts(); + if (opts.multiVolume) { + const fullFileSize = await source.size(); + scStream = await source.stream(fullFileSize - opts.lastVolumeSize + zip64CDLOffset + opts.volumesCount); + } else scStream = await source.stream(zip64CDLOffset); + return scStream.pipe(zip64CDLStream), zip64CDLStream.pull(zip64CDLSize).then((function(d) { + return (async function(source, zip64CDL) { + var d64loc = parseBuffer.parse(zip64CDL, [ [ "signature", 4 ], [ "diskNumber", 4 ], [ "offsetToStartOfCentralDirectory", 8 ], [ "numberOfDisks", 4 ] ]); if (117853008 != d64loc.signature) throw new Error("invalid zip64 end of central dir locator signature (0x07064b50): 0x" + d64loc.signature.toString(16)); - var dir64 = PullStream(); - return source.stream(d64loc.offsetToStartOfCentralDirectory).pipe(dir64), dir64.pull(56); + var dir64 = PullStream(), opts = source.opts(), scStream = !1; + if (opts.multiVolume) { + const fullFileSize = await source.size(); + scStream = await source.stream(fullFileSize - opts.lastVolumeSize + d64loc.offsetToStartOfCentralDirectory + opts.volumesCount); + } else scStream = await source.stream(d64loc.offsetToStartOfCentralDirectory); + return scStream.pipe(dir64), dir64.pull(56); })(source, d); })).then((function(dir64record) { vars = (function(dir64record) { - var vars = binary.parse(dir64record).word32lu("signature").word64lu("sizeOfCentralDirectory").word16lu("version").word16lu("versionsNeededToExtract").word32lu("diskNumber").word32lu("diskStart").word64lu("numberOfRecordsOnDisk").word64lu("numberOfRecords").word64lu("sizeOfCentralDirectory").word64lu("offsetToStartOfCentralDirectory").vars; + var vars = parseBuffer.parse(dir64record, [ [ "signature", 4 ], [ "sizeOfCentralDirectory", 8 ], [ "version", 2 ], [ "versionsNeededToExtract", 2 ], [ "diskNumber", 4 ], [ "diskStart", 4 ], [ "numberOfRecordsOnDisk", 8 ], [ "numberOfRecords", 8 ], [ "sizeOfCentralDirectory", 8 ], [ "offsetToStartOfCentralDirectory", 8 ] ]); if (101075792 != vars.signature) throw new Error("invalid zip64 end of central dir locator signature (0x06064b50): 0x0" + vars.signature.toString(16)); return vars; })(dir64record); @@ -99254,8 +105103,14 @@ if (vars.commentLength) return endDir.pull(vars.commentLength).then((function(comment) { vars.comment = comment.toString("utf8"); })); - })).then((function() { - return source.stream(vars.offsetToStartOfCentralDirectory).pipe(records), vars.extract = function(opts) { + })).then((async function() { + let scStream = !1; + const opts = source.opts(); + if (opts.multiVolume) { + const fullFileSize = await source.size(); + scStream = await source.stream(fullFileSize - opts.lastVolumeSize + vars.offsetToStartOfCentralDirectory + opts.volumesCount); + } else scStream = await source.stream(vars.offsetToStartOfCentralDirectory); + return scStream.pipe(records), vars.extract = function(opts) { if (!opts || !opts.path) throw new Error("PATH_MISSING"); return opts.path = path.resolve(path.normalize(opts.path)), vars.files.then((function(files) { return Promise.map(files, (function(entry) { @@ -99267,8 +105122,8 @@ }) : Writer({ path: extractPath }); - return new Promise((function(resolve, reject) { - entry.stream(opts.password).on("error", reject).pipe(writer).on("close", resolve).on("error", reject); + return new Promise((async function(resolve, reject) { + (await entry.stream(opts.password)).on("error", reject).pipe(writer).on("close", resolve).on("error", reject); })); } } @@ -99278,7 +105133,7 @@ })); }, vars.files = Promise.mapSeries(Array(vars.numberOfRecords), (function() { return records.pull(46).then((function(data) { - var vars = binary.parse(data).word32lu("signature").word16lu("versionMadeBy").word16lu("versionsNeededToExtract").word16lu("flags").word16lu("compressionMethod").word16lu("lastModifiedTime").word16lu("lastModifiedDate").word32lu("crc32").word32lu("compressedSize").word32lu("uncompressedSize").word16lu("fileNameLength").word16lu("extraFieldLength").word16lu("fileCommentLength").word16lu("diskNumber").word16lu("internalFileAttributes").word32lu("externalFileAttributes").word32lu("offsetToLocalFileHeader").vars; + var vars = vars = parseBuffer.parse(data, [ [ "signature", 4 ], [ "versionMadeBy", 2 ], [ "versionsNeededToExtract", 2 ], [ "flags", 2 ], [ "compressionMethod", 2 ], [ "lastModifiedTime", 2 ], [ "lastModifiedDate", 2 ], [ "crc32", 4 ], [ "compressedSize", 4 ], [ "uncompressedSize", 4 ], [ "fileNameLength", 2 ], [ "extraFieldLength", 2 ], [ "fileCommentLength", 2 ], [ "diskNumber", 2 ], [ "internalFileAttributes", 2 ], [ "externalFileAttributes", 4 ], [ "offsetToLocalFileHeader", 4 ] ]); return vars.offsetToLocalFileHeader += startOffset, vars.lastModifiedDateTime = parseDateTime(vars.lastModifiedDate, vars.lastModifiedTime), records.pull(vars.fileNameLength).then((function(fileNameBuffer) { return vars.pathBuffer = fileNameBuffer, vars.path = fileNameBuffer.toString("utf8"), @@ -99287,7 +105142,12 @@ return vars.extra = parseExtraField(extraField, vars), records.pull(vars.fileCommentLength); })).then((function(comment) { return vars.comment = comment, vars.type = 0 === vars.uncompressedSize && /[\/\\]$/.test(vars.path) ? "Directory" : "File", - vars.stream = function(_password) { + vars.entryVars = async function() { + var file = PullStream(); + return (await source.stream(vars.offsetToLocalFileHeader, null, vars)).pipe(file).on("error", (function(e) { + entry.emit("error", e); + })), entryVars(file); + }, vars.stream = async function(_password) { return unzip(source, vars.offsetToLocalFileHeader, _password, vars); }, vars.buffer = function(_password) { return BufferStream(vars.stream(_password)); @@ -99298,386 +105158,17 @@ })); }; }, function(module, exports, __webpack_require__) { - var Traverse = __webpack_require__(1155), EventEmitter = __webpack_require__(5).EventEmitter; - function Chainsaw(builder) { - var saw = Chainsaw.saw(builder, {}), r = builder.call(saw.handlers, saw); - return void 0 !== r && (saw.handlers = r), saw.record(), saw.chain(); - } - module.exports = Chainsaw, Chainsaw.light = function(builder) { - var saw = Chainsaw.saw(builder, {}), r = builder.call(saw.handlers, saw); - return void 0 !== r && (saw.handlers = r), saw.chain(); - }, Chainsaw.saw = function(builder, handlers) { - var saw = new EventEmitter; - return saw.handlers = handlers, saw.actions = [], saw.chain = function() { - var ch = Traverse(saw.handlers).map((function(node) { - if (this.isRoot) return node; - var ps = this.path; - "function" == typeof node && this.update((function() { - return saw.actions.push({ - path: ps, - args: [].slice.call(arguments) - }), ch; - })); - })); - return process.nextTick((function() { - saw.emit("begin"), saw.next(); - })), ch; - }, saw.pop = function() { - return saw.actions.shift(); - }, saw.next = function() { - var action = saw.pop(); - if (action) { - if (!action.trap) { - var node = saw.handlers; - action.path.forEach((function(key) { - node = node[key]; - })), node.apply(saw.handlers, action.args); - } - } else saw.emit("end"); - }, saw.nest = function(cb) { - var args = [].slice.call(arguments, 1), autonext = !0; - "boolean" == typeof cb && (autonext = cb, cb = args.shift()); - var s = Chainsaw.saw(builder, {}), r = builder.call(s.handlers, s); - void 0 !== r && (s.handlers = r), void 0 !== saw.step && s.record(), cb.apply(s.chain(), args), - !1 !== autonext && s.on("end", saw.next); - }, saw.record = function() { - !(function(saw) { - saw.step = 0, saw.pop = function() { - return saw.actions[saw.step++]; - }, saw.trap = function(name, cb) { - var ps = Array.isArray(name) ? name : [ name ]; - saw.actions.push({ - path: ps, - step: saw.step, - cb: cb, - trap: !0 - }); - }, saw.down = function(name) { - var ps = (Array.isArray(name) ? name : [ name ]).join("/"), i = saw.actions.slice(saw.step).map((function(x) { - return !(x.trap && x.step <= saw.step) && x.path.join("/") == ps; - })).indexOf(!0); - i >= 0 ? saw.step += i : saw.step = saw.actions.length; - var act = saw.actions[saw.step - 1]; - act && act.trap ? (saw.step = act.step, act.cb()) : saw.next(); - }, saw.jump = function(step) { - saw.step = step, saw.next(); - }; - })(saw); - }, [ "trap", "down", "jump" ].forEach((function(method) { - saw[method] = function() { - throw new Error("To use the trap, down and jump features, please call record() first to start recording actions."); - }; - })), saw; - }; -}, function(module, exports) { - function Traverse(obj) { - if (!(this instanceof Traverse)) return new Traverse(obj); - this.value = obj; - } - function walk(root, cb, immutable) { - var path = [], parents = [], alive = !0; - return (function walker(node_) { - var node = immutable ? copy(node_) : node_, modifiers = {}, state = { - node: node, - node_: node_, - path: [].concat(path), - parent: parents.slice(-1)[0], - key: path.slice(-1)[0], - isRoot: 0 === path.length, - level: path.length, - circular: null, - update: function(x) { - state.isRoot || (state.parent.node[state.key] = x), state.node = x; - }, - delete: function() { - delete state.parent.node[state.key]; - }, - remove: function() { - Array.isArray(state.parent.node) ? state.parent.node.splice(state.key, 1) : delete state.parent.node[state.key]; - }, - before: function(f) { - modifiers.before = f; - }, - after: function(f) { - modifiers.after = f; - }, - pre: function(f) { - modifiers.pre = f; - }, - post: function(f) { - modifiers.post = f; - }, - stop: function() { - alive = !1; - } - }; - if (!alive) return state; - if ("object" == typeof node && null !== node) { - state.isLeaf = 0 == Object.keys(node).length; - for (var i = 0; i < parents.length; i++) if (parents[i].node_ === node_) { - state.circular = parents[i]; - break; - } - } else state.isLeaf = !0; - state.notLeaf = !state.isLeaf, state.notRoot = !state.isRoot; - var ret = cb.call(state, state.node); - if (void 0 !== ret && state.update && state.update(ret), modifiers.before && modifiers.before.call(state, state.node), - "object" == typeof state.node && null !== state.node && !state.circular) { - parents.push(state); - var keys = Object.keys(state.node); - keys.forEach((function(key, i) { - path.push(key), modifiers.pre && modifiers.pre.call(state, state.node[key], key); - var child = walker(state.node[key]); - immutable && Object.hasOwnProperty.call(state.node, key) && (state.node[key] = child.node), - child.isLast = i == keys.length - 1, child.isFirst = 0 == i, modifiers.post && modifiers.post.call(state, child), - path.pop(); - })), parents.pop(); - } - return modifiers.after && modifiers.after.call(state, state.node), state; - })(root).node; - } - function copy(src) { - var dst; - return "object" == typeof src && null !== src ? (dst = Array.isArray(src) ? [] : src instanceof Date ? new Date(src) : src instanceof Boolean ? new Boolean(src) : src instanceof Number ? new Number(src) : src instanceof String ? new String(src) : Object.create(Object.getPrototypeOf(src)), - Object.keys(src).forEach((function(key) { - dst[key] = src[key]; - })), dst) : src; - } - module.exports = Traverse, Traverse.prototype.get = function(ps) { - for (var node = this.value, i = 0; i < ps.length; i++) { - var key = ps[i]; - if (!Object.hasOwnProperty.call(node, key)) { - node = void 0; - break; - } - node = node[key]; - } - return node; - }, Traverse.prototype.set = function(ps, value) { - for (var node = this.value, i = 0; i < ps.length - 1; i++) { - var key = ps[i]; - Object.hasOwnProperty.call(node, key) || (node[key] = {}), node = node[key]; - } - return node[ps[i]] = value, value; - }, Traverse.prototype.map = function(cb) { - return walk(this.value, cb, !0); - }, Traverse.prototype.forEach = function(cb) { - return this.value = walk(this.value, cb, !1), this.value; - }, Traverse.prototype.reduce = function(cb, init) { - var skip = 1 === arguments.length, acc = skip ? this.value : init; - return this.forEach((function(x) { - this.isRoot && skip || (acc = cb.call(this, acc, x)); - })), acc; - }, Traverse.prototype.deepEqual = function(obj) { - if (1 !== arguments.length) throw new Error("deepEqual requires exactly one object to compare against"); - var equal = !0, node = obj; - return this.forEach((function(y) { - var notEqual = function() { - equal = !1; - }.bind(this); - if (!this.isRoot) { - if ("object" != typeof node) return notEqual(); - node = node[this.key]; - } - var x = node; - this.post((function() { - node = x; - })); - var toS = function(o) { - return Object.prototype.toString.call(o); - }; - if (this.circular) Traverse(obj).get(this.circular.path) !== x && notEqual(); else if (typeof x != typeof y) notEqual(); else if (null === x || null === y || void 0 === x || void 0 === y) x !== y && notEqual(); else if (x.__proto__ !== y.__proto__) notEqual(); else if (x === y) ; else if ("function" == typeof x) x instanceof RegExp ? x.toString() != y.toString() && notEqual() : x !== y && notEqual(); else if ("object" == typeof x) if ("[object Arguments]" === toS(y) || "[object Arguments]" === toS(x)) toS(x) !== toS(y) && notEqual(); else if (x instanceof Date || y instanceof Date) x instanceof Date && y instanceof Date && x.getTime() === y.getTime() || notEqual(); else { - var kx = Object.keys(x), ky = Object.keys(y); - if (kx.length !== ky.length) return notEqual(); - for (var i = 0; i < kx.length; i++) { - var k = kx[i]; - Object.hasOwnProperty.call(y, k) || notEqual(); - } - } - })), equal; - }, Traverse.prototype.paths = function() { - var acc = []; - return this.forEach((function(x) { - acc.push(this.path); - })), acc; - }, Traverse.prototype.nodes = function() { - var acc = []; - return this.forEach((function(x) { - acc.push(this.node); - })), acc; - }, Traverse.prototype.clone = function() { - var parents = [], nodes = []; - return (function clone(src) { - for (var i = 0; i < parents.length; i++) if (parents[i] === src) return nodes[i]; - if ("object" == typeof src && null !== src) { - var dst = copy(src); - return parents.push(src), nodes.push(dst), Object.keys(src).forEach((function(key) { - dst[key] = clone(src[key]); - })), parents.pop(), nodes.pop(), dst; - } - return src; - })(this.value); - }, Object.keys(Traverse.prototype).forEach((function(key) { - Traverse[key] = function(obj) { - var args = [].slice.call(arguments, 1), t = Traverse(obj); - return t[key].apply(t, args); - }; - })); -}, function(module, exports) { - function Buffers(bufs) { - if (!(this instanceof Buffers)) return new Buffers(bufs); - this.buffers = bufs || [], this.length = this.buffers.reduce((function(size, buf) { - return size + buf.length; - }), 0); - } - module.exports = Buffers, Buffers.prototype.push = function() { - for (var i = 0; i < arguments.length; i++) if (!Buffer.isBuffer(arguments[i])) throw new TypeError("Tried to push a non-buffer"); - for (i = 0; i < arguments.length; i++) { - var buf = arguments[i]; - this.buffers.push(buf), this.length += buf.length; - } - return this.length; - }, Buffers.prototype.unshift = function() { - for (var i = 0; i < arguments.length; i++) if (!Buffer.isBuffer(arguments[i])) throw new TypeError("Tried to unshift a non-buffer"); - for (i = 0; i < arguments.length; i++) { - var buf = arguments[i]; - this.buffers.unshift(buf), this.length += buf.length; - } - return this.length; - }, Buffers.prototype.copy = function(dst, dStart, start, end) { - return this.slice(start, end).copy(dst, dStart, 0, end - start); - }, Buffers.prototype.splice = function(i, howMany) { - var buffers = this.buffers, index = i >= 0 ? i : this.length - i, reps = [].slice.call(arguments, 2); - for ((void 0 === howMany || howMany > this.length - index) && (howMany = this.length - index), - i = 0; i < reps.length; i++) this.length += reps[i].length; - for (var removed = new Buffers, startBytes = 0, ii = 0; ii < buffers.length && startBytes + buffers[ii].length < index; ii++) startBytes += buffers[ii].length; - if (index - startBytes > 0) { - var start = index - startBytes; - if (start + howMany < buffers[ii].length) { - removed.push(buffers[ii].slice(start, start + howMany)); - var orig = buffers[ii], buf0 = new Buffer(start); - for (i = 0; i < start; i++) buf0[i] = orig[i]; - var buf1 = new Buffer(orig.length - start - howMany); - for (i = start + howMany; i < orig.length; i++) buf1[i - howMany - start] = orig[i]; - if (reps.length > 0) { - var reps_ = reps.slice(); - reps_.unshift(buf0), reps_.push(buf1), buffers.splice.apply(buffers, [ ii, 1 ].concat(reps_)), - ii += reps_.length, reps = []; - } else buffers.splice(ii, 1, buf0, buf1), ii += 2; - } else removed.push(buffers[ii].slice(start)), buffers[ii] = buffers[ii].slice(0, start), - ii++; - } - for (reps.length > 0 && (buffers.splice.apply(buffers, [ ii, 0 ].concat(reps)), - ii += reps.length); removed.length < howMany; ) { - var buf = buffers[ii], len = buf.length, take = Math.min(len, howMany - removed.length); - take === len ? (removed.push(buf), buffers.splice(ii, 1)) : (removed.push(buf.slice(0, take)), - buffers[ii] = buffers[ii].slice(take)); - } - return this.length -= removed.length, removed; - }, Buffers.prototype.slice = function(i, j) { - var buffers = this.buffers; - void 0 === j && (j = this.length), void 0 === i && (i = 0), j > this.length && (j = this.length); - for (var startBytes = 0, si = 0; si < buffers.length && startBytes + buffers[si].length <= i; si++) startBytes += buffers[si].length; - for (var target = new Buffer(j - i), ti = 0, ii = si; ti < j - i && ii < buffers.length; ii++) { - var len = buffers[ii].length, start = 0 === ti ? i - startBytes : 0, end = ti + len >= j - i ? Math.min(start + (j - i) - ti, len) : len; - buffers[ii].copy(target, ti, start, end), ti += end - start; - } - return target; - }, Buffers.prototype.pos = function(i) { - if (i < 0 || i >= this.length) throw new Error("oob"); - for (var l = i, bi = 0, bu = null; ;) { - if (l < (bu = this.buffers[bi]).length) return { - buf: bi, - offset: l - }; - l -= bu.length, bi++; - } - }, Buffers.prototype.get = function(i) { - var pos = this.pos(i); - return this.buffers[pos.buf].get(pos.offset); - }, Buffers.prototype.set = function(i, b) { - var pos = this.pos(i); - return this.buffers[pos.buf].set(pos.offset, b); - }, Buffers.prototype.indexOf = function(needle, offset) { - if ("string" == typeof needle) needle = new Buffer(needle); else if (!(needle instanceof Buffer)) throw new Error("Invalid type for a search string"); - if (!needle.length) return 0; - if (!this.length) return -1; - var mstart, i = 0, j = 0, match = 0, pos = 0; - if (offset) { - var p = this.pos(offset); - i = p.buf, j = p.offset, pos = offset; - } - for (;;) { - for (;j >= this.buffers[i].length; ) if (j = 0, ++i >= this.buffers.length) return -1; - if (this.buffers[i][j] == needle[match]) { - if (0 == match && (mstart = { - i: i, - j: j, - pos: pos - }), ++match == needle.length) return mstart.pos; - } else 0 != match && (i = mstart.i, j = mstart.j, pos = mstart.pos, match = 0); - j++, pos++; - } - }, Buffers.prototype.toBuffer = function() { - return this.slice(); - }, Buffers.prototype.toString = function(encoding, start, end) { - return this.slice(start, end).toString(encoding); - }; -}, function(module, exports) { - module.exports = function(store) { - function getset(name, value) { - var node = vars.store, keys = name.split("."); - keys.slice(0, -1).forEach((function(k) { - void 0 === node[k] && (node[k] = {}), node = node[k]; - })); - var key = keys[keys.length - 1]; - return 1 == arguments.length ? node[key] : node[key] = value; - } - var vars = { - get: function(name) { - return getset(name); - }, - set: function(name, value) { - return getset(name, value); - }, - store: store || {} - }; - return vars; - }; -}, function(module, exports, __webpack_require__) { - var Decrypt = __webpack_require__(1159), PullStream = __webpack_require__(505), Stream = __webpack_require__(3), binary = __webpack_require__(242), zlib = __webpack_require__(45), parseExtraField = __webpack_require__(506), Buffer = __webpack_require__(153), parseDateTime = __webpack_require__(507); - Stream.Writable && Stream.Writable.prototype.destroy || (Stream = __webpack_require__(77)), - module.exports = function(source, offset, _password, directoryVars) { - var file = PullStream(), entry = Stream.PassThrough(), req = source.stream(offset); + __webpack_require__(1239); + var PullStream = __webpack_require__(547), Stream = __webpack_require__(3), zlib = __webpack_require__(43), Buffer = __webpack_require__(167), entryVars = __webpack_require__(548); + Stream.Writable && Stream.Writable.prototype.destroy || (Stream = __webpack_require__(88)), + module.exports = async function(source, offset, _password, directoryVars) { + var file = PullStream(), entry = Stream.PassThrough(), req = await source.stream(offset); return req.pipe(file).on("error", (function(e) { entry.emit("error", e); - })), entry.vars = file.pull(30).then((function(data) { - var vars = binary.parse(data).word32lu("signature").word16lu("versionsNeededToExtract").word16lu("flags").word16lu("compressionMethod").word16lu("lastModifiedTime").word16lu("lastModifiedDate").word32lu("crc32").word32lu("compressedSize").word32lu("uncompressedSize").word16lu("fileNameLength").word16lu("extraFieldLength").vars; - return vars.lastModifiedDateTime = parseDateTime(vars.lastModifiedDate, vars.lastModifiedTime), - file.pull(vars.fileNameLength).then((function(fileName) { - return vars.fileName = fileName.toString("utf8"), file.pull(vars.extraFieldLength); - })).then((function(extraField) { - var checkEncryption; - return vars.extra = parseExtraField(extraField, vars), directoryVars && directoryVars.compressedSize && (vars = directoryVars), - 1 & vars.flags && (checkEncryption = file.pull(12).then((function(header) { - if (!_password) throw new Error("MISSING_PASSWORD"); - var decrypt = Decrypt(); - String(_password).split("").forEach((function(d) { - decrypt.update(d); - })); - for (var i = 0; i < header.length; i++) header[i] = decrypt.decryptByte(header[i]); - vars.decrypt = decrypt, vars.compressedSize -= 12; - var check = 8 & vars.flags ? vars.lastModifiedTime >> 8 & 255 : vars.crc32 >> 24 & 255; - if (header[11] !== check) throw new Error("BAD_PASSWORD"); - return vars; - }))), Promise.resolve(checkEncryption).then((function() { - return entry.emit("vars", vars), vars; - })); - })); - })), entry.vars.then((function(vars) { + })), entry.vars = entryVars(file, entry, directoryVars), entry.vars.then((async function(vars) { var eof, fileSizeKnown = !(8 & vars.flags) || vars.compressedSize > 0, inflater = vars.compressionMethod ? zlib.createInflateRaw() : Stream.PassThrough(); fileSizeKnown ? (entry.size = vars.uncompressedSize, eof = vars.compressedSize) : (eof = Buffer.alloc(4)).writeUInt32LE(134695760, 0); - var stream = file.stream(eof); + var stream = await file.stream(eof); vars.decrypt && (stream = stream.pipe(vars.decrypt.stream())), stream.pipe(inflater).on("error", (function(err) { entry.emit("error", err); })).pipe(entry).on("finish", (function() { @@ -99688,7 +105179,7 @@ })), entry; }; }, function(module, exports, __webpack_require__) { - var table, bigInt = __webpack_require__(1160), Stream = __webpack_require__(3); + var table, bigInt = __webpack_require__(1240), Stream = __webpack_require__(3); function crc(ch, crc) { return table || (function() { var c, n, k; @@ -99702,7 +105193,7 @@ if (!(this instanceof Decrypt)) return new Decrypt; this.key0 = 305419896, this.key1 = 591751049, this.key2 = 878082192; } - Stream.Writable && Stream.Writable.prototype.destroy || (Stream = __webpack_require__(77)), + Stream.Writable && Stream.Writable.prototype.destroy || (Stream = __webpack_require__(88)), Decrypt.prototype.update = function(h) { this.key0 = crc(h, this.key0), this.key1 = bigInt(this.key0).and(255).and(4294967295).add(this.key1), this.key1 = bigInt(this.key1).multiply(134775813).add(1).and(4294967295).value, @@ -100416,12 +105907,12 @@ module.hasOwnProperty("exports") && (module.exports = bigInt), void 0 === (__WEBPACK_AMD_DEFINE_RESULT__ = function() { return bigInt; }.call(exports, __webpack_require__, exports, module)) || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__); - }).call(this, __webpack_require__(62)(module)); + }).call(this, __webpack_require__(69)(module)); }, function(module, exports, __webpack_require__) { "use strict"; var old; "undefined" != typeof Promise && (old = Promise); - var bluebird = __webpack_require__(1162)(); + var bluebird = __webpack_require__(1242)(); bluebird.noConflict = function() { try { Promise === bluebird && (Promise = old); @@ -100446,17 +105937,17 @@ } : function() { return null; }, util.notEnumerableProp(Promise, "_getDomain", getDomain); - var es5 = __webpack_require__(81), Async = __webpack_require__(1163), async = new Async; + var es5 = __webpack_require__(92), Async = __webpack_require__(1243), async = new Async; es5.defineProperty(Promise, "_async", { value: async }); - var errors = __webpack_require__(58), TypeError = Promise.TypeError = errors.TypeError; + var errors = __webpack_require__(64), TypeError = Promise.TypeError = errors.TypeError; Promise.RangeError = errors.RangeError; var CancellationError = Promise.CancellationError = errors.CancellationError; Promise.TimeoutError = errors.TimeoutError, Promise.OperationalError = errors.OperationalError, Promise.RejectionError = errors.OperationalError, Promise.AggregateError = errors.AggregateError; - var INTERNAL = function() {}, APPLY = {}, NEXT_FILTER = {}, tryConvertToPromise = __webpack_require__(1166)(Promise, INTERNAL), PromiseArray = __webpack_require__(1167)(Promise, INTERNAL, tryConvertToPromise, apiRejection, Proxyable), Context = __webpack_require__(1168)(Promise), createContext = Context.create, debug = __webpack_require__(1169)(Promise, Context), PassThroughHandlerContext = (debug.CapturedTrace, - __webpack_require__(1170)(Promise, tryConvertToPromise)), catchFilter = __webpack_require__(1171)(NEXT_FILTER), nodebackForPromise = __webpack_require__(508), errorObj = util.errorObj, tryCatch = util.tryCatch; + var INTERNAL = function() {}, APPLY = {}, NEXT_FILTER = {}, tryConvertToPromise = __webpack_require__(1246)(Promise, INTERNAL), PromiseArray = __webpack_require__(1247)(Promise, INTERNAL, tryConvertToPromise, apiRejection, Proxyable), Context = __webpack_require__(1248)(Promise), createContext = Context.create, debug = __webpack_require__(1249)(Promise, Context), PassThroughHandlerContext = (debug.CapturedTrace, + __webpack_require__(1250)(Promise, tryConvertToPromise)), catchFilter = __webpack_require__(1251)(NEXT_FILTER), nodebackForPromise = __webpack_require__(551), errorObj = util.errorObj, tryCatch = util.tryCatch; function Promise(executor) { this._bitField = 0, this._fulfillmentHandler0 = void 0, this._rejectionHandler0 = void 0, this._promise0 = void 0, this._receiver0 = void 0, executor !== INTERNAL && ((function(self, executor) { @@ -100726,19 +106217,19 @@ reject: deferReject }; }, util.notEnumerableProp(Promise, "_makeSelfResolutionError", makeSelfResolutionError), - __webpack_require__(1172)(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug), - __webpack_require__(1173)(Promise, INTERNAL, tryConvertToPromise, debug), __webpack_require__(1174)(Promise, PromiseArray, apiRejection, debug), - __webpack_require__(1175)(Promise), __webpack_require__(1176)(Promise), __webpack_require__(1177)(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain), - Promise.Promise = Promise, Promise.version = "3.4.7", __webpack_require__(1178)(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug), - __webpack_require__(1179)(Promise), __webpack_require__(1180)(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug), - __webpack_require__(1181)(Promise, INTERNAL, debug), __webpack_require__(1182)(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug), - __webpack_require__(1183)(Promise), __webpack_require__(1184)(Promise, INTERNAL), - __webpack_require__(1185)(Promise, PromiseArray, tryConvertToPromise, apiRejection), - __webpack_require__(1186)(Promise, INTERNAL, tryConvertToPromise, apiRejection), - __webpack_require__(1187)(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug), - __webpack_require__(1188)(Promise, PromiseArray, debug), __webpack_require__(1189)(Promise, PromiseArray, apiRejection), - __webpack_require__(1190)(Promise, INTERNAL), __webpack_require__(1191)(Promise, INTERNAL), - __webpack_require__(1192)(Promise), util.toFastProperties(Promise), util.toFastProperties(Promise.prototype), + __webpack_require__(1252)(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug), + __webpack_require__(1253)(Promise, INTERNAL, tryConvertToPromise, debug), __webpack_require__(1254)(Promise, PromiseArray, apiRejection, debug), + __webpack_require__(1255)(Promise), __webpack_require__(1256)(Promise), __webpack_require__(1257)(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain), + Promise.Promise = Promise, Promise.version = "3.4.7", __webpack_require__(1258)(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug), + __webpack_require__(1259)(Promise), __webpack_require__(1260)(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug), + __webpack_require__(1261)(Promise, INTERNAL, debug), __webpack_require__(1262)(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug), + __webpack_require__(1263)(Promise), __webpack_require__(1264)(Promise, INTERNAL), + __webpack_require__(1265)(Promise, PromiseArray, tryConvertToPromise, apiRejection), + __webpack_require__(1266)(Promise, INTERNAL, tryConvertToPromise, apiRejection), + __webpack_require__(1267)(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug), + __webpack_require__(1268)(Promise, PromiseArray, debug), __webpack_require__(1269)(Promise, PromiseArray, apiRejection), + __webpack_require__(1270)(Promise, INTERNAL), __webpack_require__(1271)(Promise, INTERNAL), + __webpack_require__(1272)(Promise), util.toFastProperties(Promise), util.toFastProperties(Promise.prototype), fillTypes({ a: 1 }), fillTypes({ @@ -100757,7 +106248,7 @@ } catch (e) { firstLineError = e; } - var schedule = __webpack_require__(1164), Queue = __webpack_require__(1165), util = __webpack_require__(17); + var schedule = __webpack_require__(1244), Queue = __webpack_require__(1245), util = __webpack_require__(17); function Async() { this._customScheduler = !1, this._isTickUsed = !1, this._lateQueue = new Queue(16), this._normalQueue = new Queue(16), this._haveDrainedQueues = !1, this._trampolineEnabled = !0; @@ -100834,7 +106325,7 @@ }, module.exports = Async, module.exports.firstLineError = firstLineError; }, function(module, exports, __webpack_require__) { "use strict"; - var schedule, div, opts, toggleScheduled, div2, util = __webpack_require__(17), NativePromise = util.getNativePromise(); + var schedule, util = __webpack_require__(17), NativePromise = util.getNativePromise(); if (util.isNode && "undefined" == typeof MutationObserver) { var GlobalSetImmediate = global.setImmediate, ProcessNextTick = process.nextTick; schedule = util.isRecentNode ? function(fn) { @@ -100853,16 +106344,19 @@ setTimeout(fn, 0); } : function() { throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n"); - } : (div = document.createElement("div"), opts = { - attributes: !0 - }, toggleScheduled = !1, div2 = document.createElement("div"), new MutationObserver((function() { - div.classList.toggle("foo"), toggleScheduled = !1; - })).observe(div2, opts), function(fn) { - var o = new MutationObserver((function() { - o.disconnect(), fn(); - })); - o.observe(div, opts), toggleScheduled || (toggleScheduled = !0, div2.classList.toggle("foo")); - }); + } : (function() { + var div = document.createElement("div"), opts = { + attributes: !0 + }, toggleScheduled = !1, div2 = document.createElement("div"); + return new MutationObserver((function() { + div.classList.toggle("foo"), toggleScheduled = !1; + })).observe(div2, opts), function(fn) { + var o = new MutationObserver((function() { + o.disconnect(), fn(); + })); + o.observe(div, opts), toggleScheduled || (toggleScheduled = !0, div2.classList.toggle("foo")); + }; + })(); module.exports = schedule; }, function(module, exports, __webpack_require__) { "use strict"; @@ -101052,7 +106546,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, Context) { - var unhandledRejectionHandled, possiblyUnhandledRejection, printWarning, getDomain = Promise._getDomain, async = Promise._async, Warning = __webpack_require__(58).Warning, util = __webpack_require__(17), canAttachTrace = util.canAttachTrace, bluebirdFramePattern = /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/, nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/, parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/, stackFramePattern = null, formatStack = null, indentStackFrames = !1, debugging = !(0 == util.env("BLUEBIRD_DEBUG") || !util.env("BLUEBIRD_DEBUG") && "development" !== util.env("NODE_ENV")), warnings = !(0 == util.env("BLUEBIRD_WARNINGS") || !debugging && !util.env("BLUEBIRD_WARNINGS")), longStackTraces = !(0 == util.env("BLUEBIRD_LONG_STACK_TRACES") || !debugging && !util.env("BLUEBIRD_LONG_STACK_TRACES")), wForgottenReturn = 0 != util.env("BLUEBIRD_W_FORGOTTEN_RETURN") && (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); + var unhandledRejectionHandled, possiblyUnhandledRejection, printWarning, getDomain = Promise._getDomain, async = Promise._async, Warning = __webpack_require__(64).Warning, util = __webpack_require__(17), canAttachTrace = util.canAttachTrace, bluebirdFramePattern = /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/, nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/, parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/, stackFramePattern = null, formatStack = null, indentStackFrames = !1, debugging = !(0 == util.env("BLUEBIRD_DEBUG") || !util.env("BLUEBIRD_DEBUG") && "development" !== util.env("NODE_ENV")), warnings = !(0 == util.env("BLUEBIRD_WARNINGS") || !debugging && !util.env("BLUEBIRD_WARNINGS")), longStackTraces = !(0 == util.env("BLUEBIRD_LONG_STACK_TRACES") || !debugging && !util.env("BLUEBIRD_LONG_STACK_TRACES")), wForgottenReturn = 0 != util.env("BLUEBIRD_W_FORGOTTEN_RETURN") && (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); Promise.prototype.suppressUnhandledRejections = function() { var target = this._target(); target._bitField = -1048577 & target._bitField | 524288; @@ -101586,7 +107080,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(NEXT_FILTER) { - var util = __webpack_require__(17), getKeys = __webpack_require__(81).keys, tryCatch = util.tryCatch, errorObj = util.errorObj; + var util = __webpack_require__(17), getKeys = __webpack_require__(92).keys, tryCatch = util.tryCatch, errorObj = util.errorObj; return function(instances, cb, promise) { return function(e) { var boundTo = promise._boundValue(); @@ -102000,7 +107494,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug) { - var util = __webpack_require__(17), TypeError = __webpack_require__(58).TypeError, inherits = __webpack_require__(17).inherits, errorObj = util.errorObj, tryCatch = util.tryCatch, NULL = {}; + var util = __webpack_require__(17), TypeError = __webpack_require__(64).TypeError, inherits = __webpack_require__(17).inherits, errorObj = util.errorObj, tryCatch = util.tryCatch, NULL = {}; function thrower(e) { setTimeout((function() { throw e; @@ -102160,7 +107654,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug) { - var TypeError = __webpack_require__(58).TypeError, util = __webpack_require__(17), errorObj = util.errorObj, tryCatch = util.tryCatch, yieldHandlers = []; + var TypeError = __webpack_require__(64).TypeError, util = __webpack_require__(17), errorObj = util.errorObj, tryCatch = util.tryCatch, yieldHandlers = []; function PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) { if (debug.cancellation()) { var internal = new Promise(INTERNAL), _finallyPromise = this._finallyPromise = new Promise(INTERNAL); @@ -102278,7 +107772,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, INTERNAL) { - var THIS = {}, util = __webpack_require__(17), nodebackForPromise = __webpack_require__(508), withAppended = util.withAppended, maybeWrapAsError = util.maybeWrapAsError, canEvaluate = util.canEvaluate, TypeError = __webpack_require__(58).TypeError, defaultPromisified = { + var THIS = {}, util = __webpack_require__(17), nodebackForPromise = __webpack_require__(551), withAppended = util.withAppended, maybeWrapAsError = util.maybeWrapAsError, canEvaluate = util.canEvaluate, TypeError = __webpack_require__(64).TypeError, defaultPromisified = { __isPromisified__: !0 }, noCopyPropsPattern = new RegExp("^(?:" + [ "arity", "length", "name", "arguments", "caller", "callee", "prototype", "__isPromisified__" ].join("|") + ")$"), defaultFilter = function(name) { return util.isIdentifier(name) && "_" !== name.charAt(0) && "constructor" !== name; @@ -102383,7 +107877,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, PromiseArray, tryConvertToPromise, apiRejection) { - var Es6Map, util = __webpack_require__(17), isObject = util.isObject, es5 = __webpack_require__(81); + var Es6Map, util = __webpack_require__(17), isObject = util.isObject, es5 = __webpack_require__(92); "function" == typeof Map && (Es6Map = Map); var mapToEntries = (function() { var index = 0, size = 0; @@ -102555,7 +108049,7 @@ }, function(module, exports, __webpack_require__) { "use strict"; module.exports = function(Promise, PromiseArray, apiRejection) { - var util = __webpack_require__(17), RangeError = __webpack_require__(58).RangeError, AggregateError = __webpack_require__(58).AggregateError, isArray = util.isArray, CANCELLATION = {}; + var util = __webpack_require__(17), RangeError = __webpack_require__(64).RangeError, AggregateError = __webpack_require__(64).AggregateError, isArray = util.isArray, CANCELLATION = {}; function SomePromiseArray(values) { this.constructor$(values), this._howMany = 0, this._unwrap = !1, this._initialized = !1; } @@ -102656,8 +108150,8 @@ }; }; }, function(module, exports, __webpack_require__) { - var Stream = __webpack_require__(3), Buffer = __webpack_require__(153); - Stream.Writable && Stream.Writable.prototype.destroy || (Stream = __webpack_require__(77)), + var Stream = __webpack_require__(3), Buffer = __webpack_require__(167); + Stream.Writable && Stream.Writable.prototype.destroy || (Stream = __webpack_require__(88)), module.exports = function(entry) { return new Promise((function(resolve, reject) { var chunks = [], bufferStream = Stream.Transform().on("finish", (function() { @@ -102669,26 +108163,26 @@ })); }; }, function(module, exports, __webpack_require__) { - exports.Abstract = __webpack_require__(243), exports.Reader = __webpack_require__(82), - exports.Writer = __webpack_require__(104), exports.File = { - Reader: __webpack_require__(511), - Writer: __webpack_require__(516) + exports.Abstract = __webpack_require__(274), exports.Reader = __webpack_require__(93), + exports.Writer = __webpack_require__(116), exports.File = { + Reader: __webpack_require__(554), + Writer: __webpack_require__(559) }, exports.Dir = { - Reader: __webpack_require__(510), - Writer: __webpack_require__(514) + Reader: __webpack_require__(553), + Writer: __webpack_require__(557) }, exports.Link = { - Reader: __webpack_require__(509), - Writer: __webpack_require__(515) + Reader: __webpack_require__(552), + Writer: __webpack_require__(558) }, exports.Proxy = { - Reader: __webpack_require__(512), - Writer: __webpack_require__(517) + Reader: __webpack_require__(555), + Writer: __webpack_require__(560) }, exports.Reader.Dir = exports.DirReader = exports.Dir.Reader, exports.Reader.File = exports.FileReader = exports.File.Reader, exports.Reader.Link = exports.LinkReader = exports.Link.Reader, exports.Reader.Proxy = exports.ProxyReader = exports.Proxy.Reader, exports.Writer.Dir = exports.DirWriter = exports.Dir.Writer, exports.Writer.File = exports.FileWriter = exports.File.Writer, exports.Writer.Link = exports.LinkWriter = exports.Link.Writer, exports.Writer.Proxy = exports.ProxyWriter = exports.Proxy.Writer, - exports.collect = __webpack_require__(244); + exports.collect = __webpack_require__(275); }, function(module, exports, __webpack_require__) { - var constants = __webpack_require__(1196), origCwd = process.cwd, cwd = null, platform = process.env.GRACEFUL_FS_PLATFORM || process.platform; + var constants = __webpack_require__(1276), origCwd = process.cwd, cwd = null, platform = process.env.GRACEFUL_FS_PLATFORM || process.platform; process.cwd = function() { return cwd || (cwd = origCwd.call(process)), cwd; }; @@ -102897,7 +108391,7 @@ }; }, function(module, exports, __webpack_require__) { module.exports = SocketReader; - var inherits = __webpack_require__(7), Reader = __webpack_require__(82); + var inherits = __webpack_require__(8), Reader = __webpack_require__(93); function SocketReader(props) { if (!(this instanceof SocketReader)) throw new Error("SocketReader must be called as constructor."); if ("Socket" !== props.type || !props.Socket) throw new Error("Non-socket type " + props.type); @@ -102906,4 +108400,3533 @@ inherits(SocketReader, Reader), SocketReader.prototype._read = function() { this._paused || this._ended || (this.emit("end"), this.emit("close"), this._ended = !0); }; +}, function(module, exports, __webpack_require__) { + const needle = __webpack_require__(73), getContentLength = __webpack_require__(1281); + module.exports = async function(url, lengths) { + return new Promise((async (resolve, reject) => { + let contentLength = !1; + "object" == typeof url && (contentLength = url.bytes, url = url.url); + let fileName = url.split("/").pop(); + if ((fileName || "").includes(".") ? (fileName = decodeURIComponent(fileName), fileName.includes("?") && (fileName = fileName.split("?")[0])) : fileName = "archive.zip", + !contentLength) if (lengths.length > 1 && !fileName.match(/\.zip$/i) && lengths[0] === lengths[1]) contentLength = lengths[0]; else try { + contentLength = await getContentLength(url), contentLength = parseInt(contentLength); + } catch (e) { + return console.error(e), void reject(e); + } + resolve({ + length: contentLength, + name: fileName, + createReadStream: range => { + const opts = { + follow_max: 5, + rejectUnauthorized: !1 + }; + return Object.values(range).length && (range.start = range.start || 0, range.end = range.end || 0, + (range.end > contentLength - 1 || 0 === range.end) && (range.end = ""), opts.headers = { + range: `bytes=${range.start}-${range.end}` + }), needle.get(url, opts); + } + }); + })); + }; +}, function(module, exports, __webpack_require__) { + const request = __webpack_require__(61); + module.exports = async function(url) { + return new Promise(((resolve, reject) => { + const req = request({ + url: url, + followRedirect: !0, + maxRedirects: 5, + strictSSL: !1 + }); + req.on("response", (function(d) { + req.abort(), d.headers["content-length"] ? resolve(d.headers["content-length"]) : reject("Could not retrieve content-length from ranged request"); + })).on("error", reject); + })); + }; +}, function(module, exports, __webpack_require__) { + const store = __webpack_require__(166), parseQuery = __webpack_require__(276), cryptojs = __webpack_require__(6), ee = __webpack_require__(4), lzDecompress = __webpack_require__(77).decompressFromEncodedURIComponent, initEmitter = new ee; + module.exports = { + createKey: function(archiveType, orderRegex, orderDefault, req, res) { + function storeDataToKey(arr, newKey) { + if (newKey && null !== store.get(newKey)) return newKey; + arr = arr.map((el => Array.isArray(el) ? !!el[0] && (el[1] ? { + url: el[0], + bytes: el[1] + } : { + url: el[0] + }) : el)).filter((el => !!el)), orderRegex && (arr = arr.sort(((first, second) => { + const firstMatch = ((first || {}).url || first || "").split("?")[0].match(orderRegex), secondMatch = ((second || {}).url || second || "").split("?")[0].match(orderRegex); + return +(firstMatch && firstMatch[1] || orderDefault || 0) - +(secondMatch && secondMatch[1] || orderDefault || 0); + }))); + const key = store.set(arr, newKey); + return initEmitter.emit(key), key; + } + if ("POST" === req.method) { + if (!Array.isArray(req.body)) return res.statusCode = 500, res.setHeader("Content-Type", "text/plain"), + void res.end("Cannot parse JSON data, err 1"); + const key = storeDataToKey(req.body, req.params.createKey); + res.setHeader("Content-Length", JSON.stringify({ + key: key + }).length + ""), res.setHeader("Content-Type", "application/json"), res.end(JSON.stringify({ + key: key + })); + } else { + if (!req.query.lz) return res.statusCode = 500, res.setHeader("Content-Type", "text/plain"), + void res.end("Cannot parse JSON data, err 2"); + let lzData = !1; + try { + lzData = JSON.parse(lzDecompress(req.query.lz)); + } catch (e) {} + if (!lzData || !lzData.urls || !lzData.urls.length) return res.statusCode = 500, + res.setHeader("Content-Type", "text/plain"), void res.end("Cannot parse JSON data, err 3"); + const hashKey = (txt = req.query.lz, cryptojs.createHash("sha256").update(txt).digest("hex")); + storeDataToKey(lzData.urls, hashKey), opts = (function(lzData) { + let opts = {}; + return lzData.fileMustInclude && (opts.fileMustInclude = lzData.fileMustInclude), + lzData.maxFiles && lzData.maxFiles > 0 && (opts.maxFiles = lzData.maxFiles), lzData.fileIdx && lzData.fileIdx > -1 && (opts.fileIdx = lzData.fileIdx), + !!Object.keys(opts).length && opts; + })(lzData), res.statusCode = 302, res.setHeader("Location", `/${archiveType}/stream?key=${hashKey}` + (opts ? "&o=" + encodeURIComponent(JSON.stringify(opts)) : "")), + res.end(); + } + var txt; + }, + waitForKey: function(req) { + return new Promise(((resolve, reject) => { + const key = parseQuery(req).query.key; + key ? null === store.get(key) ? initEmitter.addListener(key, (function gotData() { + initEmitter.removeListener(key, gotData), resolve(); + })) : resolve() : reject(Error("No stream key provided")); + })); + } + }; +}, function(module, exports, __webpack_require__) { + const store = __webpack_require__(169), getRouter = __webpack_require__(1284), getRarStream = __webpack_require__(561); + module.exports = { + router: getRouter, + create: rarUrls => { + if (!rarUrls || !Array.isArray(rarUrls)) throw Error('"rarUrls" is undefined or not an array'); + return store.set(rarUrls); + }, + file: async (key, opts) => { + if (!key) throw Error('Missing "key"'); + return await getRarStream({ + url: key, + query: { + o: JSON.stringify(opts || {}), + key: key + } + }); + } + }; +}, function(module, exports, __webpack_require__) { + const Router = __webpack_require__(108), bodyParser = __webpack_require__(50), getRarStream = __webpack_require__(561), getContentType = __webpack_require__(1289), keyHandler = (__webpack_require__(169), + __webpack_require__(278), new (__webpack_require__(4)), __webpack_require__(1290)), orderRegex = /\.7Z\.(\d\d?\d?\d?\d?)$/i; + module.exports = function() { + const router = Router(); + return router.use(bodyParser.json()), router.post("/create/:createKey", keyHandler.createKey.bind(null, "7zip", orderRegex, 0)), + router.all("/create", keyHandler.createKey.bind(null, "7zip", orderRegex, 0)), router.get("/stream", (async (req, res) => { + try { + await keyHandler.waitForKey(req); + } catch (e) { + return console.error(e), res.statusCode = 500, void res.end(); + } + let rarInnerFile; + try { + rarInnerFile = await getRarStream(req); + } catch (e) { + return console.error(e), res.statusCode = 500, void res.end(); + } + if (!rarInnerFile) { + const errMsg = "There was an error with the 7zip parser."; + return console.error(Error(errMsg)), res.statusCode = 500, void res.end(errMsg); + } + if ("HEAD" === req.method) return res.statusCode = 204, res.setHeader("Accept-Ranges", "bytes"), + res.setHeader("Content-Length", rarInnerFile.length + ""), res.setHeader("Content-Type", getContentType(rarInnerFile)), + void res.end(); + const fileSize = rarInnerFile.length, range = req.headers.range; + let start = 0, end = fileSize - 1; + if (res.setHeader("Accept-Ranges", "bytes"), res.setHeader("Content-Type", getContentType(rarInnerFile)), + Object.values(range || {}).length) { + const parts = range.replace(/bytes=/, "").split("-"); + start = parseInt(parts[0], 10) || 0, end = parts[1] ? parseInt(parts[1], 10) : fileSize - 1, + res.statusCode = 206, res.setHeader("Content-Range", `bytes ${start}-${end}/${fileSize}`); + const chunksize = end - start + 1; + res.setHeader("Content-Length", chunksize + ""); + } else res.statusCode = 200, res.setHeader("Content-Length", fileSize + ""); + const readable = await rarInnerFile.createReadStream({ + start: start, + end: end + }); + req.on("close", (function() { + readable.stream.request.abort(); + })), readable.pipe(res); + })), router; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + function _optionalChain(ops) { + let lastAccessLHS, value = ops[0], i = 1; + for (;i < ops.length; ) { + const op = ops[i], fn = ops[i + 1]; + if (i += 2, ("optionalAccess" === op || "optionalCall" === op) && null == value) return; + "access" === op || "optionalAccess" === op ? (lastAccessLHS = value, value = fn(value)) : "call" !== op && "optionalCall" !== op || (value = fn(((...args) => value.call(lastAccessLHS, ...args))), + lastAccessLHS = void 0); + } + return value; + } + Object.defineProperty(exports, "__esModule", { + value: !0 + }); + var _events = __webpack_require__(4), ZXX_EXTENSION = /\.7Z\.(\d\d?\d?\d?\d?)$|\.7Z$/i, A7Z_EXTENSION = /\.7Z$/i, PARTXX_A7Z_EXTENSION = /\.PART(\d\d?\d?\d?\d?)\.7Z$/i, makeRarFileBundle = (fileMedias = []) => ((fileMedias = []) => fileMedias.filter((file => file.name && file.name.match(PARTXX_A7Z_EXTENSION))).length > 0)(fileMedias) ? new class { + constructor(fileMedias = []) { + this.fileMedias = fileMedias, this.fileMedias.length > 0 && (this.filter(), this.sort()); + } + filter() { + this.fileMedias = this.fileMedias.filter((file => file.name.match(PARTXX_A7Z_EXTENSION))); + } + sort() { + this.fileMedias.sort(((first, second) => { + const firstMatch = first.name.match(PARTXX_A7Z_EXTENSION), secondMatch = second.name.match(PARTXX_A7Z_EXTENSION); + return +(firstMatch && firstMatch[1] || 0) - +(secondMatch && secondMatch[1] || 0); + })); + } + get length() { + return this.fileMedias.length; + } + get fileNames() { + return this.fileMedias.map((file => file.name)); + } + get files() { + return this.fileMedias; + } + }(fileMedias) : new class { + constructor(fileMedias = []) { + this.fileMedias = fileMedias, this.fileMedias.length > 0 && (this.filter(), this.sort()); + } + filter() { + this.fileMedias = this.fileMedias.filter((file => file.name && file.name.match(ZXX_EXTENSION))); + } + sort() { + this.fileMedias.sort(((first, second) => { + if (first.name.match(A7Z_EXTENSION)) return -1; + if (second.name.match(A7Z_EXTENSION)) return 1; + { + const firstMatch = first.name.match(ZXX_EXTENSION), secondMatch = second.name.match(ZXX_EXTENSION); + return +(firstMatch && firstMatch[1] || 0) - +(secondMatch && secondMatch[1] || 0); + } + })); + } + get length() { + return this.fileMedias.length; + } + get fileNames() { + return this.fileMedias.map((file => file.name)); + } + get files() { + return this.fileMedias; + } + }(fileMedias), RarFileChunk = class _RarFileChunk { + constructor(fileMedia, startOffset, endOffset) { + this.fileMedia = fileMedia, this.startOffset = startOffset, this.endOffset = endOffset; + } + padEnd(endPadding) { + return new _RarFileChunk(this.fileMedia, this.startOffset, this.endOffset - endPadding); + } + padStart(startPadding) { + return new _RarFileChunk(this.fileMedia, this.startOffset + startPadding, this.endOffset); + } + get length() { + return Math.max(0, this.endOffset - this.startOffset); + } + getStream() { + return this.fileMedia.createReadStream({ + start: this.startOffset, + end: this.endOffset + }); + } + }, _stream = __webpack_require__(3), InnerFileStream = class extends _stream.Readable { + constructor(rarFileChunks, options) { + super(options), this.rarFileChunks = rarFileChunks; + } + pushData(data) { + this.push(data) || _optionalChain([ this, "access", _ => _.stream, "optionalAccess", _2 => _2.pause, "call", _3 => _3() ]); + } + get isStarted() { + return !!this.stream; + } + async next() { + const chunk = this.rarFileChunks.shift(); + chunk ? (this.stream = await chunk.getStream(), _optionalChain([ this, "access", _4 => _4.stream, "optionalAccess", _5 => _5.on, "call", _6 => _6("data", (data => this.pushData(data))) ]), + _optionalChain([ this, "access", _7 => _7.stream, "optionalAccess", _8 => _8.on, "call", _9 => _9("end", (() => this.next())) ])) : this.push(null); + } + _read() { + this.isStarted ? _optionalChain([ this, "access", _10 => _10.stream, "optionalAccess", _11 => _11.resume, "call", _12 => _12() ]) : this.next(); + } + }, streamToBuffer = async stream => new Promise(((resolve, reject) => { + const buffers = []; + stream.on("error", reject), stream.on("data", (data => buffers.push(data))), stream.on("end", (() => resolve(Buffer.concat(buffers)))); + })), lzma = (function(obj) { + if (obj && obj.__esModule) return obj; + var newObj = {}; + if (null != obj) for (var key in obj) Object.prototype.hasOwnProperty.call(obj, key) && (newObj[key] = obj[key]); + return newObj.default = obj, newObj; + })(__webpack_require__(1286)), nodeMajorVersion = parseInt((((process || {}).version || "").split(".")[0] || "").substring(1)); + function subarray(buff, start, end) { + return buff[nodeMajorVersion < 16 ? "slice" : "subarray"](start, end); + } + function readBigUInt64LE(buffer, offset) { + return buffer.readUInt32LE(offset) + 4294967296 * buffer.readUInt32LE(offset + 4); + } + var CompressionMethods_COPY = [ 0 ], CompressionMethods_LZMA = [ 3, 1, 1 ], CompressionMethods_LZMA2 = [ 33 ]; + function isCompressionMethod(methodId, expectedMethod) { + if (!methodId || !expectedMethod) return !1; + if (methodId.length !== expectedMethod.length) return !1; + for (let i = 0; i < methodId.length; i++) if (methodId[i] !== expectedMethod[i]) return !1; + return !0; + } + var RarFilesPackage = class extends _events.EventEmitter { + constructor(fileMedias) { + super(), this.rarFileBundle = makeRarFileBundle(fileMedias); + } + async parseFiles(rarFiles, opts) { + let _files = []; + try { + _files = await (async function(a7zFiles) { + let _files = []; + const parserState = { + _pointer: 0, + _buffer: null + }; + async function readFromVolumes(absoluteOffset, length) { + const target = (function(a7zFiles, targetAbsoluteOffset) { + let totalBytesScanned = 0; + for (let i = 0; i < a7zFiles.length; i++) { + const currentVolume = a7zFiles[i], currentVolumeSize = currentVolume.length; + if (targetAbsoluteOffset < totalBytesScanned + currentVolumeSize) { + const relativeOffsetInVolume = targetAbsoluteOffset - totalBytesScanned; + return console.log(`Offset ${targetAbsoluteOffset} is in volume ${i} (${currentVolume.name}) at position ${relativeOffsetInVolume}.`), + { + volumeIndex: i, + volumeFile: currentVolume, + offset: relativeOffsetInVolume + }; + } + totalBytesScanned += currentVolumeSize; + } + return console.error("Error: The target offset is outside the bounds of the archive."), + null; + })(a7zFiles, absoluteOffset); + if (!target) throw new Error(`Offset ${absoluteOffset} is out of bounds.`); + const stream = await target.volumeFile.createReadStream({ + start: target.offset, + end: target.offset + length + }); + return streamToBuffer(stream); + } + class MyBuffer { + constructor(buffer) { + this.buffer = buffer, this.offset = 0; + } + readByte() { + return this.buffer[this.offset++]; + } + read(length) { + const result = this.buffer.slice(this.offset, this.offset + length); + return this.offset += length, result; + } + } + function readByte() { + return parserState._buffer[parserState._pointer++]; + } + function read(bytes) { + const toReturn = subarray(parserState._buffer, parserState._pointer, parserState._pointer + bytes); + return parserState._pointer += bytes, toReturn; + } + function readUint64() { + const buff = parserState._buffer; + let firstByte = buff[parserState._pointer], mask = 128, value = 0; + parserState._pointer++; + for (let i = 0; i < 8; i++) { + if (0 == (firstByte & mask)) return value += (firstByte & mask - 1) * Math.pow(256, i), + value; + const nextByte = buff[parserState._pointer]; + parserState._pointer++, value += nextByte * Math.pow(256, i), mask >>>= 1; + } + return value; + } + function _parseFolder() { + const folder = { + totalInputStreams: 0, + totalOutputStreams: 0, + coders: [] + }, NumCoders = readUint64(); + for (let i = 0; i < NumCoders; i++) { + const magicbyte = readByte(), isComplex = 0 != (16 & magicbyte), hasAttributes = 0 != (32 & magicbyte), coder = { + decompressionMethodId: read(15 & magicbyte), + NumInStreams: 1, + NumOutStreams: 1 + }; + if (isComplex && (coder.NumInStreams = readUint64(), coder.NumOutStreams = readUint64()), + folder.totalInputStreams += coder.NumInStreams, folder.totalOutputStreams += coder.NumOutStreams, + hasAttributes) { + const property_size = readUint64(); + coder.properties = read(property_size); + } + folder.coders[i] = coder; + } + const NumBindPairs = folder.totalOutputStreams - 1; + folder.bindPairs = []; + for (let k = 0; k < NumBindPairs; k++) folder.bindPairs[k] = { + inIndex: readUint64(), + outIndex: readUint64() + }; + const NumPackedStreams = folder.totalInputStreams - NumBindPairs; + if (folder.packedStreams = [], 1 === NumPackedStreams) { + let last = 0; + for (let i = 0; i < folder.totalInputStreams; i++) { + let found = !1; + for (let j = 0; j < folder.bindPairs.length; j++) folder.bindPairs[j].inIndex === i && (found = !0); + found || (last = i); + } + folder.packedStreams[0] = last; + } else for (let i = 0; i < NumPackedStreams; i++) folder.packedStreams[i] = readUint64(); + return folder; + } + function _parseDigest(num) { + const digest = []; + if (0 === readByte()) throw new Error("CRC digest all undefined not implemented"); + for (let i = 0; i < num; i++) digest[i] = read(4); + return digest; + } + function _parseStreamInfo() { + const stream = {}; + let prop = readByte(); + if (6 === prop && (stream.PackInfo = (function() { + const packet = { + PackPos: readUint64(), + NumPackStreams: readUint64(), + size: [], + CRC: [] + }; + let pack_property = readByte(); + if (9 === pack_property) { + for (let i = 0; i < packet.NumPackStreams; i++) packet.size[i] = readUint64(); + pack_property = readByte(); + } + if (10 === pack_property && (packet.CRC = _parseDigest(packet.NumPackStreams), pack_property = readByte()), + 0 !== pack_property) throw new Error("ERROR Parsing Pack Info"); + return packet; + })(), prop = readByte()), 7 === prop && (stream.UnPackInfo = (function() { + if (11 !== readByte()) throw new Error("No folder property found in UnPackInfo"); + const unpack = { + NumFolders: readUint64() + }; + if (0 === readByte()) { + unpack.folders = []; + for (let i = 0; i < unpack.NumFolders; i++) unpack.folders[i] = _parseFolder(); + } else unpack.DataStreamIndex = readUint64(); + if (12 !== readByte()) throw new Error("No kCodersUnPackSize property found"); + for (let i = 0; i < unpack.NumFolders; i++) { + unpack.folders[i].UnPackSize = []; + for (let j = 0; j < unpack.folders[i].totalOutputStreams; j++) unpack.folders[i].UnPackSize[j] = readUint64(); + } + let next = readByte(); + if (10 === next && (unpack.CRC = _parseDigest(unpack.NumFolders), next = readByte()), + 0 !== next) throw new Error("No kEnd property found at end of UnPackInfo"); + return unpack; + })(), prop = readByte()), 8 === prop && (stream.SubStreamInfo = (function(stream) { + const substream = {}, num = stream.UnPackInfo.NumFolders; + let prop = readByte(); + if (13 === prop) { + substream.NumUnPackStream = []; + for (let i = 0; i < num; i++) substream.NumUnPackStream[i] = readUint64(); + prop = readByte(); + } else { + substream.NumUnPackStream = []; + for (let i = 0; i < num; i++) substream.NumUnPackStream[i] = 1; + } + let totalSubstreams = 0; + for (let i = 0; i < substream.NumUnPackStream.length; i++) totalSubstreams += substream.NumUnPackStream[i]; + if (9 === prop) { + substream.size = []; + for (let i = 0; i < num; i++) { + const numStreams = substream.NumUnPackStream[i]; + if (0 !== numStreams) if (1 === numStreams) substream.size.push(stream.UnPackInfo.folders[i].UnPackSize[0]); else { + let sum2 = 0; + for (let j = 0; j < numStreams - 1; j++) { + const size = readUint64(); + substream.size.push(size), sum2 += size; + } + const lastSize = stream.UnPackInfo.folders[i].UnPackSize[0] - sum2; + substream.size.push(lastSize); + } + } + prop = readByte(); + } else { + substream.size = []; + for (let i = 0; i < num; i++) { + const numStreams = substream.NumUnPackStream[i], folderSize = stream.UnPackInfo.folders[i].UnPackSize[0]; + if (1 === numStreams) substream.size.push(folderSize); else if (numStreams > 1) for (let j = 0; j < numStreams; j++) substream.size.push(Math.floor(folderSize / numStreams)); + } + } + if (10 === prop && (substream.CRC = _parseDigest(totalSubstreams), prop = readByte()), + 0 !== prop) throw new Error("No kEnd found in SubStreamInfo"); + return substream; + })(stream), prop = readByte()), 0 !== prop) throw new Error("No kEnd found in StreamInfo"); + return stream; + } + function _parseFilesInfo() { + const numFiles = readUint64(), files = []; + for (let i = 0; i < numFiles; i++) files[i] = { + name: "" + }; + let prop; + for (;0 !== (prop = readByte()); ) { + const size = readUint64(); + switch (prop) { + case 17: + if (0 !== readByte()) throw new Error("External file names not supported"); + const names = read(size - 1).toString("utf16le").split("\0"); + for (let j = 0; j < files.length; j++) files[j].name = names[j] || ""; + break; + + case 14: + const emptyStreamData = read(size); + for (let i = 0; i < numFiles; i++) files[i].isEmptyStream = 0 != (emptyStreamData[Math.floor(i / 8)] >>> 7 - i % 8 & 1); + break; + + default: + read(size); + } + } + return files; + } + const signatureHeader = await readFromVolumes(0, 32), expectedSig = Buffer.from ? Buffer.from([ 55, 122, 188, 175, 39, 28 ]) : new Buffer([ 55, 122, 188, 175, 39, 28 ]); + if (!subarray(signatureHeader, 0, 6).equals(expectedSig)) throw new Error("Invalid 7-Zip signature."); + const _NextHeaderOffset = signatureHeader.readBigUInt64LE ? signatureHeader.readBigUInt64LE(12) : readBigUInt64LE(signatureHeader, 12), _NextHeaderSize = signatureHeader.readBigUInt64LE ? signatureHeader.readBigUInt64LE(20) : readBigUInt64LE(signatureHeader, 20), absoluteHeaderPosition = 32 + Number(_NextHeaderOffset); + let mainHeaderBlock = await readFromVolumes(absoluteHeaderPosition, Number(_NextHeaderSize)); + parserState._buffer = mainHeaderBlock, parserState._pointer = 0; + let header_Type = readByte(); + if (23 === header_Type) { + const encodedHeaderStreamInfo = _parseStreamInfo(), folder = encodedHeaderStreamInfo.UnPackInfo.folders[0], packPos = encodedHeaderStreamInfo.PackInfo.PackPos, packSize = encodedHeaderStreamInfo.PackInfo.size[0], compressedHeaderData = await readFromVolumes(32 + packPos, packSize), methodId = folder.coders[0].decompressionMethodId; + let decompressedHeader; + if (isCompressionMethod(methodId, CompressionMethods_LZMA)) { + const propertiesStream = { + data: folder.coders[0].properties, + offset: 0, + readByte: function() { + return this.data[this.offset++]; + } + }, inStream = { + data: compressedHeaderData, + offset: 0, + readByte: function() { + return this.data[this.offset++]; + } + }, outStream = { + data: [], + offset: 0, + writeByte: function(value) { + this.data[this.offset++] = value; + } + }, outSize = Number(folder.UnPackSize[0]); + decompressedHeader = await new Promise(((resolve, reject) => { + try { + lzma.decompress(propertiesStream, inStream, outStream, outSize), resolve(Buffer.from ? Buffer.from(outStream.data) : new Buffer(outStream.data)); + } catch (e) { + reject(e); + } + })); + } else if (isCompressionMethod(methodId, CompressionMethods_LZMA2)) decompressedHeader = (function(properties, compressedData) { + const p = 63 & properties[0], dictSize = 40 === p ? 4294967295 : (2 | 1 & p) << p / 2 + 11 >>> 0, outBuffers = [], buffer = new MyBuffer(compressedData); + let control; + for (;0 !== (control = buffer.readByte()); ) if (1 === control) { + const length = buffer.read(2).readUInt16BE(0) + 1; + outBuffers.push(buffer.read(length)); + } else { + if (!(control >= 128)) throw new Error(`LZMA2 control byte ${control} is unsupported!`); + { + const uncompressedLength = buffer.read(2).readUInt16BE(0) + 1 | (31 & control) << 16, compressedLength = buffer.read(2).readUInt16BE(0) + 1, lclppb = buffer.readByte(), lzmaStream = buffer.read(compressedLength), packetBuffer = Buffer.alloc ? Buffer.alloc(13 + compressedLength) : new Buffer(13 + compressedLength); + Buffer.alloc || packetBuffer.fill(0), packetBuffer.writeUInt8(lclppb, 0), packetBuffer.writeUInt32LE(dictSize, 1), + packetBuffer.writeUInt32LE(4294967295 & uncompressedLength, 5), packetBuffer.writeUInt32LE(uncompressedLength / 4294967296 >>> 0, 9), + (Buffer.from ? Buffer.from(lzmaStream) : lzmaStream).copy(packetBuffer, 13); + const propertiesStream = { + data: packetBuffer.slice(0, 5), + offset: 0, + readByte: function() { + return this.data[this.offset++]; + } + }, inStream = { + data: packetBuffer.slice(13), + offset: 0, + readByte: function() { + return this.data[this.offset++]; + } + }, outStream = { + data: [], + offset: 0, + writeByte: function(value) { + this.data[this.offset++] = value; + } + }; + lzma.decompress(propertiesStream, inStream, outStream, uncompressedLength), outBuffers.push(Buffer.from ? Buffer.from(outStream.data) : new Buffer(outStream.data)); + } + } + return Buffer.concat(outBuffers); + })(folder.coders[0].properties, compressedHeaderData); else { + if (!isCompressionMethod(methodId, CompressionMethods_COPY)) { + const methodStr = methodId.reduce(((str, byte, index) => { + const hexStr = byte.toString(16); + return str + "0x" + (hexStr.padStart ? hexStr.padStart(2, "0") : ("0" + hexStr).slice(-2)) + (index < methodId.length - 1 ? " " : ""); + }), ""); + throw new Error(`Unsupported header compression method: ${methodStr}`); + } + decompressedHeader = compressedHeaderData; + } + parserState._buffer = decompressedHeader, parserState._pointer = 0, header_Type = readByte(); + } + if (1 !== header_Type) throw new Error(`Could not find a valid Header block. Expected 0x01 but found 0x${header_Type.toString(16)}`); + return await (async function() { + const header = { + FilesInfo: [] + }; + for (;;) { + const prop = readByte(); + if (0 === prop) break; + switch (prop) { + case 4: + header.MainStreamInfo = _parseStreamInfo(); + break; + + case 5: + header.FilesInfo = _parseFilesInfo(); + break; + + case 2: + case 3: + console.log(`[DEBUG] Skipping property 0x${prop.toString(16)}`), read(readUint64()); + break; + + default: + throw new Error(`Unsupported header property ID: 0x${prop.toString(16)}`); + } + } + if (!header.MainStreamInfo || !header.FilesInfo || 0 === header.FilesInfo.length) return header; + if (!header.MainStreamInfo.SubStreamInfo) { + header.MainStreamInfo.SubStreamInfo = { + size: [], + NumUnPackStream: [] + }; + for (let i = 0; i < header.MainStreamInfo.UnPackInfo.NumFolders; i++) header.MainStreamInfo.SubStreamInfo.NumUnPackStream[i] = 1, + header.MainStreamInfo.SubStreamInfo.size.push(header.MainStreamInfo.UnPackInfo.folders[i].UnPackSize[0]); + } + const fileSizes = header.MainStreamInfo.SubStreamInfo.size || []; + let nonEmptyIndex = 0, folderIndex = 0, filesInCurrentFolder = 0, maxFilesInFolder = header.MainStreamInfo.SubStreamInfo.NumUnPackStream[folderIndex] || 1, currentOffsetInFolder = 0; + for (let i = 0; i < header.FilesInfo.length; i++) { + const fileInfo = header.FilesInfo[i]; + if (fileInfo.isEmptyStream) _files.push({ + name: fileInfo.name, + data: { + folder: { + coders: [ { + decompressionMethodId: Buffer.from ? Buffer.from([ 0 ]) : new Buffer([ 0 ]) + } ] + }, + offset: 0, + length: 0, + folderIndex: -1, + packOffset: 0, + packSize: 0 + } + }); else { + filesInCurrentFolder >= maxFilesInFolder && folderIndex < header.MainStreamInfo.UnPackInfo.NumFolders - 1 && (folderIndex++, + filesInCurrentFolder = 0, currentOffsetInFolder = 0, maxFilesInFolder = header.MainStreamInfo.SubStreamInfo.NumUnPackStream[folderIndex] || 1); + const folder = header.MainStreamInfo.UnPackInfo.folders[folderIndex], fileSize = fileSizes[nonEmptyIndex] || 0; + let packOffsetForFolder = 32 + header.MainStreamInfo.PackInfo.PackPos; + for (let j = 0; j < folderIndex; j++) packOffsetForFolder += header.MainStreamInfo.PackInfo.size[j] || 0; + _files.push({ + name: fileInfo.name, + data: { + folder: folder, + offset: currentOffsetInFolder, + length: fileSize, + folderIndex: folderIndex, + packOffset: packOffsetForFolder, + packSize: header.MainStreamInfo.PackInfo.size[folderIndex] || 0 + } + }), currentOffsetInFolder += fileSize, nonEmptyIndex++, filesInCurrentFolder++; + } + } + return header; + })(), _files; + })(rarFiles); + } catch (e) { + throw e; + } + function getFileChunks(file) { + if (console.log(file.name, "file.name"), console.log(file.data.folder.coders[0].decompressionMethodId, "decompressionMethodId"), + 0 !== file.data.folder.coders[0].decompressionMethodId[0]) throw new Error("Decompression is not implemented"); + let fileByteCount = 0, k = 0; + if (0 === file.data.packOffset) k = 1; else for (;file.data.packOffset > fileByteCount; ) fileByteCount += rarFiles[k].length, + k++; + let fileChunksBytes = 0; + const chunks = []; + let leftFromFile = file.data.length; + for (let o = k - 1; fileChunksBytes < file.data.length && rarFiles[o]; o++) { + if (o === k - 1) { + const offBy = file.data.packOffset - (k - 1) * rarFiles[0].length, tillThis = offBy + file.data.length > rarFiles[o].length ? rarFiles[o].length : offBy + file.data.length; + leftFromFile -= rarFiles[o].length, chunks.push({ + name: file.name, + compression: ((((file.data || {}).folder || {}).coders || [])[0] || {}).decompressionMethodId || [], + fileHead: file, + chunk: new RarFileChunk(rarFiles[o], offBy, tillThis - 1) + }), rarFiles[0].length; + } else { + const offBy = 0, tillThis = leftFromFile < rarFiles[o].length ? leftFromFile : rarFiles[o].length; + leftFromFile -= rarFiles[o].length, chunks.push({ + name: file.name, + compression: ((((file.data || {}).folder || {}).coders || [])[0] || {}).decompressionMethodId || [], + fileHead: file, + chunk: new RarFileChunk(rarFiles[o], offBy, tillThis - 1) + }); + } + fileChunksBytes += rarFiles[o].length; + } + return chunks; + } + console.log(_files, "_files"); + const countAllFiles = _files.length; + let filteredFiles = [], countFiles = 0, retrievedFiles = 0; + for (let i = 0; _files[i]; i++) { + if (opts.filter) { + if (opts.filter(_files[i].name, countFiles) && (filteredFiles.push(_files[i]), retrievedFiles++, + opts.hasOwnProperty("maxFiles") && retrievedFiles === opts.maxFiles)) break; + } else filteredFiles.push(_files[i]); + countFiles++; + } + return this.emit("file-parsed", rarFiles[0]), console.log(filteredFiles, "filteredFiles"), + console.log({ + chunks: filteredFiles.map((el => getFileChunks(el))).flat(), + count: countAllFiles + }), { + chunks: filteredFiles.map((el => getFileChunks(el))).flat(), + count: countAllFiles + }; + } + async parse(opts) { + opts = opts || {}, this.emit("parsing-start", this.rarFileBundle); + const {files: files} = this.rarFileBundle, {chunks: chunks, count: count} = await this.parseFiles(files, opts), grouped = (fn = f => f.name, + object = chunks.reduce(((prev, curr) => { + const groupKey = fn(curr), group = prev[groupKey] || []; + return group.push(curr), { + ...prev, + [groupKey]: group + }; + }), {}), mapper = value => value.map((v => [ v.chunk, v.compression ])), Object.fromEntries(Object.entries(object).map((([key, value]) => [ key, mapper(value) ])))); + var object, mapper, fn; + const innerFiles = Object.entries(grouped).map((([name, data]) => new class { + constructor(name, rarFileChunks, compression) { + this.name = name, this.rarFileChunks = rarFileChunks, this.length = rarFileChunks.map((c => c.length)).reduce(((s, n) => s + n)), + this.compression = compression, this.chunkMap = this.calculateChunkMap(rarFileChunks), + this.name = name; + } + async readToEnd() { + const stream = await this.createReadStream({ + start: 0, + end: this.length - 1 + }); + return streamToBuffer(stream); + } + getChunksToStream(fileStart, fileEnd) { + const {index: startIndex, start: startOffset} = this.findMappedChunk(fileStart); + let {index: endIndex, end: endOffset} = this.findMappedChunk(fileEnd); + const chunksToStream = this.rarFileChunks.slice(startIndex, endIndex + 1), last = chunksToStream.length - 1; + chunksToStream[0] = chunksToStream[0].padStart(Math.abs(startOffset - fileStart)); + let diff = Math.abs(endOffset - fileEnd); + return diff === this.rarFileChunks.length && (diff = 0), 0 !== diff && (chunksToStream[last] = chunksToStream[last].padEnd(diff)), + chunksToStream; + } + createReadStream(interval) { + interval || (interval = { + start: 0, + end: this.length - 1 + }); + let {start: start, end: end} = interval; + if (start < 0 || end >= this.length) throw Error("Illegal start/end offset"); + return Promise.resolve(new InnerFileStream(this.getChunksToStream(start, end))); + } + calculateChunkMap(rarFileChunks) { + const chunkMap = []; + let index = 0, fileOffset = 0; + for (const chunk of rarFileChunks) { + const start = fileOffset, end = fileOffset + chunk.length; + fileOffset = end + 1, chunkMap.push({ + index: index, + start: start, + end: end, + chunk: chunk + }), index++; + } + return chunkMap; + } + findMappedChunk(offset) { + let selectedMap = this.chunkMap[0]; + for (const chunkMapping of this.chunkMap) if (offset >= chunkMapping.start && offset <= chunkMapping.end) { + selectedMap = chunkMapping; + break; + } + return selectedMap; + } + }(name, data.map((data2 => data2[0])), data[0][1]))); + return this.emit("parsing-complete", innerFiles), innerFiles; + } + }, _path = __webpack_require__(5), _fs = __webpack_require__(2); + exports.LocalFileMedia = class { + constructor(path) { + this.path = path, this.name = _path.basename.call(void 0, path), this.length = _fs.statSync.call(void 0, path).size; + } + createReadStream(interval) { + return Promise.resolve(_fs.createReadStream.call(void 0, this.path, interval)); + } + }, exports.RarFilesPackage = RarFilesPackage; +}, function(module, exports) { + var LZMA = LZMA || {}; + LZMA.OutWindow = function() { + this._windowSize = 0; + }, LZMA.OutWindow.prototype.create = function(windowSize) { + this._buffer && this._windowSize === windowSize || (this._buffer = []), this._windowSize = windowSize, + this._pos = 0, this._streamPos = 0; + }, LZMA.OutWindow.prototype.flush = function() { + var size = this._pos - this._streamPos; + if (0 !== size) { + for (;size--; ) this._stream.writeByte(this._buffer[this._streamPos++]); + this._pos >= this._windowSize && (this._pos = 0), this._streamPos = this._pos; + } + }, LZMA.OutWindow.prototype.releaseStream = function() { + this.flush(), this._stream = null; + }, LZMA.OutWindow.prototype.setStream = function(stream) { + this.releaseStream(), this._stream = stream; + }, LZMA.OutWindow.prototype.init = function(solid) { + solid || (this._streamPos = 0, this._pos = 0); + }, LZMA.OutWindow.prototype.copyBlock = function(distance, len) { + var pos = this._pos - distance - 1; + for (pos < 0 && (pos += this._windowSize); len--; ) pos >= this._windowSize && (pos = 0), + this._buffer[this._pos++] = this._buffer[pos++], this._pos >= this._windowSize && this.flush(); + }, LZMA.OutWindow.prototype.putByte = function(b) { + this._buffer[this._pos++] = b, this._pos >= this._windowSize && this.flush(); + }, LZMA.OutWindow.prototype.getByte = function(distance) { + var pos = this._pos - distance - 1; + return pos < 0 && (pos += this._windowSize), this._buffer[pos]; + }, LZMA.RangeDecoder = function() {}, LZMA.RangeDecoder.prototype.setStream = function(stream) { + this._stream = stream; + }, LZMA.RangeDecoder.prototype.releaseStream = function() { + this._stream = null; + }, LZMA.RangeDecoder.prototype.init = function() { + var i = 5; + for (this._code = 0, this._range = -1; i--; ) this._code = this._code << 8 | this._stream.readByte(); + }, LZMA.RangeDecoder.prototype.decodeDirectBits = function(numTotalBits) { + for (var t, result = 0, i = numTotalBits; i--; ) this._range >>>= 1, t = this._code - this._range >>> 31, + this._code -= this._range & t - 1, result = result << 1 | 1 - t, 0 == (4278190080 & this._range) && (this._code = this._code << 8 | this._stream.readByte(), + this._range <<= 8); + return result; + }, LZMA.RangeDecoder.prototype.decodeBit = function(probs, index) { + var prob = probs[index], newBound = (this._range >>> 11) * prob; + return (2147483648 ^ this._code) < (2147483648 ^ newBound) ? (this._range = newBound, + probs[index] += 2048 - prob >>> 5, 0 == (4278190080 & this._range) && (this._code = this._code << 8 | this._stream.readByte(), + this._range <<= 8), 0) : (this._range -= newBound, this._code -= newBound, probs[index] -= prob >>> 5, + 0 == (4278190080 & this._range) && (this._code = this._code << 8 | this._stream.readByte(), + this._range <<= 8), 1); + }, LZMA.initBitModels = function(probs, len) { + for (;len--; ) probs[len] = 1024; + }, LZMA.BitTreeDecoder = function(numBitLevels) { + this._models = [], this._numBitLevels = numBitLevels; + }, LZMA.BitTreeDecoder.prototype.init = function() { + LZMA.initBitModels(this._models, 1 << this._numBitLevels); + }, LZMA.BitTreeDecoder.prototype.decode = function(rangeDecoder) { + for (var m = 1, i = this._numBitLevels; i--; ) m = m << 1 | rangeDecoder.decodeBit(this._models, m); + return m - (1 << this._numBitLevels); + }, LZMA.BitTreeDecoder.prototype.reverseDecode = function(rangeDecoder) { + for (var bit, m = 1, symbol = 0, i = 0; i < this._numBitLevels; ++i) m = m << 1 | (bit = rangeDecoder.decodeBit(this._models, m)), + symbol |= bit << i; + return symbol; + }, LZMA.reverseDecode2 = function(models, startIndex, rangeDecoder, numBitLevels) { + for (var bit, m = 1, symbol = 0, i = 0; i < numBitLevels; ++i) m = m << 1 | (bit = rangeDecoder.decodeBit(models, startIndex + m)), + symbol |= bit << i; + return symbol; + }, LZMA.LenDecoder = function() { + this._choice = [], this._lowCoder = [], this._midCoder = [], this._highCoder = new LZMA.BitTreeDecoder(8), + this._numPosStates = 0; + }, LZMA.LenDecoder.prototype.create = function(numPosStates) { + for (;this._numPosStates < numPosStates; ++this._numPosStates) this._lowCoder[this._numPosStates] = new LZMA.BitTreeDecoder(3), + this._midCoder[this._numPosStates] = new LZMA.BitTreeDecoder(3); + }, LZMA.LenDecoder.prototype.init = function() { + var i = this._numPosStates; + for (LZMA.initBitModels(this._choice, 2); i--; ) this._lowCoder[i].init(), this._midCoder[i].init(); + this._highCoder.init(); + }, LZMA.LenDecoder.prototype.decode = function(rangeDecoder, posState) { + return 0 === rangeDecoder.decodeBit(this._choice, 0) ? this._lowCoder[posState].decode(rangeDecoder) : 0 === rangeDecoder.decodeBit(this._choice, 1) ? 8 + this._midCoder[posState].decode(rangeDecoder) : 16 + this._highCoder.decode(rangeDecoder); + }, LZMA.Decoder2 = function() { + this._decoders = []; + }, LZMA.Decoder2.prototype.init = function() { + LZMA.initBitModels(this._decoders, 768); + }, LZMA.Decoder2.prototype.decodeNormal = function(rangeDecoder) { + var symbol = 1; + do { + symbol = symbol << 1 | rangeDecoder.decodeBit(this._decoders, symbol); + } while (symbol < 256); + return 255 & symbol; + }, LZMA.Decoder2.prototype.decodeWithMatchByte = function(rangeDecoder, matchByte) { + var matchBit, bit, symbol = 1; + do { + if (matchBit = matchByte >> 7 & 1, matchByte <<= 1, symbol = symbol << 1 | (bit = rangeDecoder.decodeBit(this._decoders, (1 + matchBit << 8) + symbol)), + matchBit !== bit) { + for (;symbol < 256; ) symbol = symbol << 1 | rangeDecoder.decodeBit(this._decoders, symbol); + break; + } + } while (symbol < 256); + return 255 & symbol; + }, LZMA.LiteralDecoder = function() {}, LZMA.LiteralDecoder.prototype.create = function(numPosBits, numPrevBits) { + var i; + if (!this._coders || this._numPrevBits !== numPrevBits || this._numPosBits !== numPosBits) for (this._numPosBits = numPosBits, + this._posMask = (1 << numPosBits) - 1, this._numPrevBits = numPrevBits, this._coders = [], + i = 1 << this._numPrevBits + this._numPosBits; i--; ) this._coders[i] = new LZMA.Decoder2; + }, LZMA.LiteralDecoder.prototype.init = function() { + for (var i = 1 << this._numPrevBits + this._numPosBits; i--; ) this._coders[i].init(); + }, LZMA.LiteralDecoder.prototype.getDecoder = function(pos, prevByte) { + return this._coders[((pos & this._posMask) << this._numPrevBits) + ((255 & prevByte) >>> 8 - this._numPrevBits)]; + }, LZMA.Decoder = function() { + this._outWindow = new LZMA.OutWindow, this._rangeDecoder = new LZMA.RangeDecoder, + this._isMatchDecoders = [], this._isRepDecoders = [], this._isRepG0Decoders = [], + this._isRepG1Decoders = [], this._isRepG2Decoders = [], this._isRep0LongDecoders = [], + this._posSlotDecoder = [], this._posDecoders = [], this._posAlignDecoder = new LZMA.BitTreeDecoder(4), + this._lenDecoder = new LZMA.LenDecoder, this._repLenDecoder = new LZMA.LenDecoder, + this._literalDecoder = new LZMA.LiteralDecoder, this._dictionarySize = -1, this._dictionarySizeCheck = -1, + this._posSlotDecoder[0] = new LZMA.BitTreeDecoder(6), this._posSlotDecoder[1] = new LZMA.BitTreeDecoder(6), + this._posSlotDecoder[2] = new LZMA.BitTreeDecoder(6), this._posSlotDecoder[3] = new LZMA.BitTreeDecoder(6); + }, LZMA.Decoder.prototype.setDictionarySize = function(dictionarySize) { + return !(dictionarySize < 0 || (this._dictionarySize !== dictionarySize && (this._dictionarySize = dictionarySize, + this._dictionarySizeCheck = Math.max(this._dictionarySize, 1), this._outWindow.create(Math.max(this._dictionarySizeCheck, 4096))), + 0)); + }, LZMA.Decoder.prototype.setLcLpPb = function(lc, lp, pb) { + var numPosStates = 1 << pb; + return !(lc > 8 || lp > 4 || pb > 4 || (this._literalDecoder.create(lp, lc), this._lenDecoder.create(numPosStates), + this._repLenDecoder.create(numPosStates), this._posStateMask = numPosStates - 1, + 0)); + }, LZMA.Decoder.prototype.init = function() { + var i = 4; + for (this._outWindow.init(!1), LZMA.initBitModels(this._isMatchDecoders, 192), LZMA.initBitModels(this._isRep0LongDecoders, 192), + LZMA.initBitModels(this._isRepDecoders, 12), LZMA.initBitModels(this._isRepG0Decoders, 12), + LZMA.initBitModels(this._isRepG1Decoders, 12), LZMA.initBitModels(this._isRepG2Decoders, 12), + LZMA.initBitModels(this._posDecoders, 114), this._literalDecoder.init(); i--; ) this._posSlotDecoder[i].init(); + this._lenDecoder.init(), this._repLenDecoder.init(), this._posAlignDecoder.init(), + this._rangeDecoder.init(); + }, LZMA.Decoder.prototype.decode = function(inStream, outStream, outSize) { + var posState, decoder2, len, distance, posSlot, numDirectBits, state = 0, rep0 = 0, rep1 = 0, rep2 = 0, rep3 = 0, nowPos64 = 0, prevByte = 0; + for (this._rangeDecoder.setStream(inStream), this._outWindow.setStream(outStream), + this.init(); outSize < 0 || nowPos64 < outSize; ) if (posState = nowPos64 & this._posStateMask, + 0 === this._rangeDecoder.decodeBit(this._isMatchDecoders, (state << 4) + posState)) decoder2 = this._literalDecoder.getDecoder(nowPos64++, prevByte), + prevByte = state >= 7 ? decoder2.decodeWithMatchByte(this._rangeDecoder, this._outWindow.getByte(rep0)) : decoder2.decodeNormal(this._rangeDecoder), + this._outWindow.putByte(prevByte), state = state < 4 ? 0 : state - (state < 10 ? 3 : 6); else { + if (1 === this._rangeDecoder.decodeBit(this._isRepDecoders, state)) len = 0, 0 === this._rangeDecoder.decodeBit(this._isRepG0Decoders, state) ? 0 === this._rangeDecoder.decodeBit(this._isRep0LongDecoders, (state << 4) + posState) && (state = state < 7 ? 9 : 11, + len = 1) : (0 === this._rangeDecoder.decodeBit(this._isRepG1Decoders, state) ? distance = rep1 : (0 === this._rangeDecoder.decodeBit(this._isRepG2Decoders, state) ? distance = rep2 : (distance = rep3, + rep3 = rep2), rep2 = rep1), rep1 = rep0, rep0 = distance), 0 === len && (len = 2 + this._repLenDecoder.decode(this._rangeDecoder, posState), + state = state < 7 ? 8 : 11); else if (rep3 = rep2, rep2 = rep1, rep1 = rep0, len = 2 + this._lenDecoder.decode(this._rangeDecoder, posState), + state = state < 7 ? 7 : 10, (posSlot = this._posSlotDecoder[len <= 5 ? len - 2 : 3].decode(this._rangeDecoder)) >= 4) { + if (rep0 = (2 | 1 & posSlot) << (numDirectBits = (posSlot >> 1) - 1), posSlot < 14) rep0 += LZMA.reverseDecode2(this._posDecoders, rep0 - posSlot - 1, this._rangeDecoder, numDirectBits); else if (rep0 += this._rangeDecoder.decodeDirectBits(numDirectBits - 4) << 4, + (rep0 += this._posAlignDecoder.reverseDecode(this._rangeDecoder)) < 0) { + if (-1 === rep0) break; + return !1; + } + } else rep0 = posSlot; + if (rep0 >= nowPos64 || rep0 >= this._dictionarySizeCheck) return !1; + this._outWindow.copyBlock(rep0, len), nowPos64 += len, prevByte = this._outWindow.getByte(0); + } + return this._outWindow.flush(), this._outWindow.releaseStream(), this._rangeDecoder.releaseStream(), + !0; + }, LZMA.Decoder.prototype.setDecoderProperties = function(properties) { + var value, lc, lp, pb, dictionarySize; + return !(properties.size < 5) && (lc = (value = properties.readByte()) % 9, lp = (value = ~~(value / 9)) % 5, + pb = ~~(value / 5), !!this.setLcLpPb(lc, lp, pb) && (dictionarySize = properties.readByte(), + dictionarySize |= properties.readByte() << 8, dictionarySize |= properties.readByte() << 16, + dictionarySize += 16777216 * properties.readByte(), this.setDictionarySize(dictionarySize))); + }, LZMA.decompress = function(properties, inStream, outStream, outSize) { + var decoder = new LZMA.Decoder; + if (!decoder.setDecoderProperties(properties)) throw "Incorrect stream properties"; + if (!decoder.decode(inStream, outStream, outSize)) throw "Error in data stream"; + return !0; + }, LZMA.decompressFile = function(inStream, outStream) { + var outSize, decoder = new LZMA.Decoder; + if (!decoder.setDecoderProperties(inStream)) throw "Incorrect stream properties"; + if (outSize = inStream.readByte(), outSize |= inStream.readByte() << 8, outSize |= inStream.readByte() << 16, + outSize += 16777216 * inStream.readByte(), inStream.readByte(), inStream.readByte(), + inStream.readByte(), inStream.readByte(), !decoder.decode(inStream, outStream, outSize)) throw "Error in data stream"; + return !0; + }, module.exports = LZMA; +}, function(module, exports, __webpack_require__) { + const needle = __webpack_require__(73), getContentLength = __webpack_require__(1288); + module.exports = async function(url, lengths, isLast) { + return new Promise((async (resolve, reject) => { + let contentLength = !1; + "object" == typeof url && (contentLength = url.bytes, url = url.url); + let fileName = url.split("/").pop(); + if ((fileName || "").includes(".") ? (fileName = decodeURIComponent(fileName), fileName.includes("?") && (fileName = fileName.split("?")[0])) : fileName = "archive.7z", + !contentLength) if (lengths.length > 1 && lengths[0] === lengths[1] && !isLast) contentLength = lengths[0]; else try { + contentLength = await getContentLength(url); + } catch (e) { + return console.error(e), void reject(e); + } + resolve({ + length: parseInt(contentLength), + name: fileName, + createReadStream: range => { + const opts = { + follow_max: 5, + rejectUnauthorized: !1 + }; + return Object.values(range).length && (range.start = range.start || 0, range.end = range.end || 0, + (range.end > contentLength - 1 || 0 === range.end) && (range.end = ""), opts.headers = { + range: `bytes=${range.start}-${range.end}` + }), needle.get(url, opts); + } + }); + })); + }; +}, function(module, exports, __webpack_require__) { + const request = __webpack_require__(61); + module.exports = async function(url) { + return new Promise(((resolve, reject) => { + const req = request({ + url: url, + followRedirect: !0, + maxRedirects: 5, + strictSSL: !1 + }); + req.on("response", (function(d) { + req.abort(), d.headers["content-length"] ? resolve(d.headers["content-length"]) : reject("Could not retrieve content-length from ranged request"); + })).on("error", reject); + })); + }; +}, function(module, exports, __webpack_require__) { + const mime = __webpack_require__(45); + module.exports = function(rarInnerFile) { + return mime.lookup(rarInnerFile.name) || "application/octet-stream"; + }; +}, function(module, exports, __webpack_require__) { + const store = __webpack_require__(169), parseQuery = __webpack_require__(278), cryptojs = __webpack_require__(6), ee = __webpack_require__(4), lzDecompress = __webpack_require__(77).decompressFromEncodedURIComponent, initEmitter = new ee; + module.exports = { + createKey: function(archiveType, orderRegex, orderDefault, req, res) { + function storeDataToKey(arr, newKey) { + if (newKey && null !== store.get(newKey)) return newKey; + arr = arr.map((el => Array.isArray(el) ? !!el[0] && (el[1] ? { + url: el[0], + bytes: el[1] + } : { + url: el[0] + }) : el)).filter((el => !!el)), orderRegex && (arr = arr.sort(((first, second) => { + const firstMatch = ((first || {}).url || first || "").split("?")[0].match(orderRegex), secondMatch = ((second || {}).url || second || "").split("?")[0].match(orderRegex); + return +(firstMatch && firstMatch[1] || orderDefault || 0) - +(secondMatch && secondMatch[1] || orderDefault || 0); + }))); + const key = store.set(arr, newKey); + return initEmitter.emit(key), key; + } + if ("POST" === req.method) { + if (!Array.isArray(req.body)) return res.statusCode = 500, res.setHeader("Content-Type", "text/plain"), + void res.end("Cannot parse JSON data, err 1"); + const key = storeDataToKey(req.body, req.params.createKey); + res.setHeader("Content-Length", JSON.stringify({ + key: key + }).length + ""), res.setHeader("Content-Type", "application/json"), res.end(JSON.stringify({ + key: key + })); + } else { + if (!req.query.lz) return res.statusCode = 500, res.setHeader("Content-Type", "text/plain"), + void res.end("Cannot parse JSON data, err 2"); + let lzData = !1; + try { + lzData = JSON.parse(lzDecompress(req.query.lz)); + } catch (e) {} + if (!lzData || !lzData.urls || !lzData.urls.length) return res.statusCode = 500, + res.setHeader("Content-Type", "text/plain"), void res.end("Cannot parse JSON data, err 3"); + const hashKey = (txt = req.query.lz, cryptojs.createHash("sha256").update(txt).digest("hex")); + storeDataToKey(lzData.urls, hashKey), opts = (function(lzData) { + let opts = {}; + return lzData.fileMustInclude && (opts.fileMustInclude = lzData.fileMustInclude), + lzData.maxFiles && lzData.maxFiles > 0 && (opts.maxFiles = lzData.maxFiles), lzData.fileIdx && lzData.fileIdx > -1 && (opts.fileIdx = lzData.fileIdx), + !!Object.keys(opts).length && opts; + })(lzData), res.statusCode = 302, res.setHeader("Location", `/${archiveType}/stream?key=${hashKey}` + (opts ? "&o=" + encodeURIComponent(JSON.stringify(opts)) : "")), + res.end(); + } + var txt; + }, + waitForKey: function(req) { + return new Promise(((resolve, reject) => { + const key = parseQuery(req).query.key; + key ? null === store.get(key) ? initEmitter.addListener(key, (function gotData() { + initEmitter.removeListener(key, gotData), resolve(); + })) : resolve() : reject(Error("No stream key provided")); + })); + } + }; +}, function(module, exports, __webpack_require__) { + const store = __webpack_require__(170), getRouter = __webpack_require__(1292), getTarStream = __webpack_require__(562); + module.exports = { + router: getRouter, + create: tarUrls => { + if (!tarUrls || !Array.isArray(tarUrls)) throw Error('"tarUrls" is undefined or not an array'); + return store.set(tarUrls); + }, + file: async (key, opts) => { + if (!key) throw Error('Missing "key"'); + const file = await getTarStream({ + url: key, + query: { + o: JSON.stringify(opts || {}), + key: key + } + }); + return file.createReadStream = () => file.stream(), file; + } + }; +}, function(module, exports, __webpack_require__) { + const getContentType = __webpack_require__(1293), getTarStream = __webpack_require__(562), bodyParser = __webpack_require__(50), Router = __webpack_require__(108), store = __webpack_require__(170), parseQuery = __webpack_require__(279), keyHandler = (new (__webpack_require__(4)), + __webpack_require__(1297)), orderRegex = /\.TAR\.(\d\d?\d?\d?\d?)$/i; + module.exports = function() { + const router = Router(); + router.use(bodyParser.json()), router.post("/create/:createKey", keyHandler.createKey.bind(null, "tar", orderRegex, 0)), + router.all("/create", keyHandler.createKey.bind(null, "tar", orderRegex, 0)); + const fileVars = {}; + return router.get("/stream", (async (req, res) => { + try { + await keyHandler.waitForKey(req); + } catch (e) { + return console.error(e), res.statusCode = 500, void res.end(); + } + let file, contentLength; + const parsed = parseQuery(req), key = parsed.query.key; + if (!fileVars[key]) { + try { + file = await getTarStream(req); + } catch (e) { + return console.error(e), res.statusCode = 500, void res.end(); + } + if (!file) { + const errMsg = "There was an error with the tar parser."; + return console.error(Error(errMsg)), res.statusCode = 500, void res.end(errMsg); + } + contentLength = file.header.size, fileVars[key] = { + offset: file.header.dataOffset, + size: file.header.size, + filename: file.header.name, + innerFile: file._source + }; + } + const offset = fileVars[key].offset, size = fileVars[key].size, filename = fileVars[key].filename; + let url = !1; + const tarUrls = store.get(key); + if (tarUrls) url = tarUrls[0]; else { + if (!parsed.query.r) return res.statusCode = 500, void res.end(); + url = parsed.query.r; + } + if ("OPTIONS" === req.method && req.headers["access-control-request-headers"]) return res.writeHead(200, { + "Access-Control-Allow-Origin": req.headers.origin, + "Access-Control-Allow-Methods": "POST, GET, OPTIONS", + "Access-Control-Allow-Headers": req.headers["access-control-request-headers"], + "Access-Control-Max-Age": "1728000" + }), res.end(); + const range = req.headers.range || null, mimeType = getContentType({ + name: filename + }); + let start = null, end = null; + if (range) { + let parts = range.replace(/bytes=/, "").split("-"); + if (start = parts[0], end = parts[1], start = parseInt(start, 10), end = end ? parseInt(end, 10) : size - 1, + !isNaN(start) && isNaN(end) && (end = size - 1), isNaN(start) && !isNaN(end) && (start = size - end, + end = size - 1), start >= size || end >= size || start < 0 || end < 0) return res.writeHead(416, { + "Content-Range": `bytes */${size}` + }), res.end(); + if (res.writeHead(206, { + "Access-Control-Allow-Origin": req.headers.origin || "*", + "Content-Range": `bytes ${start}-${end}/${size}`, + "Accept-Ranges": "bytes", + "Content-Length": end - start + 1 + "", + "Content-Type": mimeType, + "transferMode.dlna.org": "Streaming", + "contentFeatures.dlna.org": "DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000" + }), "HEAD" === req.method) return res.end(); + } else if (res.writeHead(200, { + "Access-Control-Allow-Origin": req.headers.origin || "*", + "Content-Length": size + "", + "Content-Type": mimeType, + "Accept-Ranges": "bytes", + "transferMode.dlna.org": "Streaming", + "contentFeatures.dlna.org": "DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000" + }), "HEAD" === req.method) return res.end(); + url.url; + let rangeStart = 0, rangeEnd = size; + start || end ? (rangeStart = start + offset, rangeEnd = end + offset) : (rangeStart = offset, + rangeEnd = size + offset); + let stream = null; + try { + stream = await fileVars[key].innerFile.createReadStream({ + start: rangeStart, + end: rangeEnd + }); + } catch (e) { + return console.error(e), res.statusCode = 500, void res.end((e || {}).message || "Unknown error with tar parser"); + } + stream.pipe(res); + })), router; + }; +}, function(module, exports, __webpack_require__) { + const mime = __webpack_require__(45); + module.exports = function(rarInnerFile) { + return mime.lookup(rarInnerFile.name) || "application/octet-stream"; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + const util = __webpack_require__(0), events = __webpack_require__(4), stream = __webpack_require__(3); + function overflow(size) { + return (size &= 511) && 512 - size; + } + function safeAdd(a, b) { + var res = a + b; + if (res > Number.MAX_SAFE_INTEGER) throw new Error("Integer overflow in tar stream"); + return res; + } + function BufferList() { + this.buffered = 0, this.shifted = 0, this.buffers = [], this._offset = 0; + } + function createRangeStream(source, opts) { + opts || (opts = {}); + var start = opts.start || 0, end = "number" == typeof opts.end ? opts.end : source.length - 1, readable = new stream.Readable({ + objectMode: !1, + highWaterMark: 524288 + }), position = start, currentStream = null, pendingChunks = [], isReading = !1, isDestroyed = !1; + async function startReading() { + if (!(isReading || position >= end)) { + isReading = !0; + var remaining, readSize = (remaining = end - position) <= 0 ? 0 : remaining < 65536 ? remaining : Math.min(remaining, 524288); + if (0 === readSize) return isReading = !1, void readable.push(null); + var readEnd = safeAdd(position, readSize), readOpts = { + start: position, + end: readEnd + }; + currentStream && currentStream.removeAllListeners(), (currentStream = await source.createReadStream(readOpts)).on("data", (function(chunk) { + position = safeAdd(position, chunk.length), pendingChunks.push(chunk); + })).on("end", (function() { + currentStream = null, isReading = !1, processPendingChunks(), position < end && !1 !== readable._readableState.flowing ? process.nextTick(startReading) : position >= end && 0 === pendingChunks.length && readable.push(null); + })).on("error", (function(err) { + currentStream = null, isReading = !1, readable.emit("error", err); + })); + } + } + function processPendingChunks() { + for (;pendingChunks.length > 0; ) { + var chunk = pendingChunks.shift(); + if (!readable.push(chunk)) break; + } + } + return readable.isPaused = function() { + return !1 === this._readableState.flowing; + }, readable.destroy = function(err) { + if (!isDestroyed) return isDestroyed = !0, currentStream && ("function" == typeof currentStream.destroy && currentStream.destroy(), + currentStream.removeAllListeners(), currentStream = null), pendingChunks = [], err && this.emit("error", err), + this.emit("close"), this; + }, readable._read = function() { + processPendingChunks(), 0 !== pendingChunks.length || isReading || startReading(); + }, readable; + } + function Entry(header, offset, source) { + stream.Readable.call(this, { + objectMode: !1 + }), this.header = header, this.offset = offset, this.dataOffset = header.dataOffset, + this._source = source; + } + function TarReader(source) { + if (!(this instanceof TarReader)) return new TarReader(source); + if (events.EventEmitter.call(this), !source || "function" != typeof source.createReadStream) throw new Error("Source must have a createReadStream method"); + this._source = source, this._position = 0, this._buffer = new BufferList, this._currentHeader = null, + this._currentEntry = null, this._missing = 0, this._longHeader = !1, this._locked = !1, + this._finished = !1, this._pax = null, this._paxGlobal = null, this._gnuLongPath = null, + this._gnuLongLinkPath = null, this._filenameEncoding = "utf8", this._allowUnknownFormat = !1, + this._stream = null, this._reading = !1, this._ended = !1; + var self = this; + process.nextTick((async function() { + await self._start(); + })); + } + BufferList.prototype.push = function(buffer) { + this.buffered = safeAdd(this.buffered, buffer.length), this.buffers.push(buffer); + }, BufferList.prototype.shiftFirst = function(size) { + return 0 === this.buffered ? null : this._next(size); + }, BufferList.prototype.shift = function(size) { + if (size > this.buffered) return null; + if (0 === size) return Buffer.alloc(0); + var chunk = this._next(size); + if (size === chunk.length) return chunk; + for (var chunks = [ chunk ], totalSize = chunk.length; (size -= chunk.length) > 0; ) totalSize = safeAdd(totalSize, (chunk = this._next(size)).length), + chunks.push(chunk); + return Buffer.concat(chunks, totalSize); + }, BufferList.prototype._next = function(size) { + var buf = this.buffers[0], rem = buf.length - this._offset; + if (size >= rem) { + var sub = this._offset ? buf.slice(this._offset) : buf; + return this.buffers.shift(), this._offset = 0, this.buffered -= rem, this.shifted = safeAdd(this.shifted, rem), + sub; + } + this.buffered -= size, this.shifted = safeAdd(this.shifted, size); + var result = buf.slice(this._offset, this._offset + size); + return this._offset += size, result; + }, util.inherits(Entry, stream.Readable), Entry.prototype._read = async function() { + if (this._readStream) this._readStream.resume(); else { + if (0 === this.header.size) return void this.push(null); + var dataOffset = this.dataOffset, dataEnd = safeAdd(dataOffset, this.header.size); + this._readStream = await createRangeStream(this._source, { + start: dataOffset, + end: dataEnd + }); + var self = this; + this._readStream.on("data", (function(chunk) { + self.push(chunk) || self._readStream.pause(); + })), this._readStream.on("end", (function() { + self.push(null); + })), this._readStream.on("error", (function(err) { + self.emit("error", err); + })); + } + }, Entry.prototype.createReadStream = function(file, opts) { + opts || (opts = {}); + var relativeStart = opts.start || 0, relativeEnd = "number" == typeof opts.end ? opts.end : file.header.size; + relativeStart < 0 && (relativeStart = 0), relativeEnd > file.header.size && (relativeEnd = file.header.size); + var absoluteStart = safeAdd(file.dataOffset, relativeStart), absoluteEnd = safeAdd(file.dataOffset, relativeEnd); + return createRangeStream(file._source, { + start: absoluteStart, + end: absoluteEnd + }); + }, util.inherits(TarReader, events.EventEmitter), TarReader.prototype._destroy = function() { + this._stream && (this._stream.destroy(), this._stream = null), this._buffer = new BufferList, + this._currentHeader = null, this._currentEntry = null, this._missing = 0, this._longHeader = !1, + this._locked = !1, this._finished = !0, this._ended = !0; + }, TarReader.prototype._initStream = async function(startPosition) { + var self = this; + self._stream = await createRangeStream(self._source, { + start: startPosition + }), self._stream.on("data", (function(chunk) { + self._buffer.push(chunk), self._position = safeAdd(self._position, chunk.length), + self._locked ? self._stream.pause() : self._update(); + })), self._stream.on("end", (function() { + self._ended = !0, self._checkEnd(); + })), self._stream.on("error", (function(err) { + self.emit("error", err); + })); + }, TarReader.prototype._start = async function() { + await this._initStream(0); + }, TarReader.prototype._checkEnd = function() { + if (this._ended && !this._reading && 0 === this._buffer.buffered) { + if (this._locked) return; + this.emit("finish"); + } + }, TarReader.prototype._unlock = function(err) { + if (this._locked = !1, err) this.emit("error", err); else { + var self = this; + process.nextTick((function() { + if (self._currentHeader && self._currentHeader.size > 0) { + var headerOffset = self._currentHeader.offset, entrySize = self._currentHeader.size, remainder = entrySize % 512, padding = remainder > 0 ? 512 - remainder : 0, nextHeaderPosition = headerOffset + 512 + entrySize; + padding > 0 && (nextHeaderPosition += padding), nextHeaderPosition % 512 != 0 && (nextHeaderPosition = 512 * Math.ceil(nextHeaderPosition / 512)), + self._buffer = new BufferList, self._missing = 0, self._position = nextHeaderPosition, + self._currentHeader = null, self._currentEntry = null, self._stream && (self._stream.removeAllListeners("data"), + self._stream.removeAllListeners("end"), self._stream.removeAllListeners("error"), + "function" == typeof self._stream.destroy && self._stream.destroy(), self._stream = null), + self._initStream(nextHeaderPosition); + } else self._stream && self._stream.isPaused && self._stream.isPaused() && self._stream.resume(), + self._update(); + self._checkEnd(); + })); + } + }, TarReader.prototype._update = function() { + if (!this._reading) { + this._reading = !0; + for (var continueReading = !0; continueReading && this._buffer.buffered > 0; ) if (this._missing > 0) { + if (null !== this._currentEntry) { + continueReading = this._consumeEntryData(); + continue; + } + if (!0 === this._longHeader) { + if (this._missing > this._buffer.buffered) break; + continueReading = this._consumeLongHeader(); + continue; + } + var ignore = this._buffer.shiftFirst(Math.min(this._missing, this._buffer.buffered)); + null !== ignore && (this._missing -= ignore.length); + } else { + if (this._buffer.buffered < 512) break; + null === this._currentEntry && !1 !== this._consumeHeader() || (continueReading = !1); + } + this._reading = !1, this._checkEnd(); + } + }, TarReader.prototype._getAbsolutePosition = function() { + return this._position - this._buffer.buffered + this._buffer.shifted; + }, TarReader.prototype._consumeHeader = function() { + if (this._locked) return !1; + var headerBuf = this._buffer.shift(512); + if (!headerBuf) return !1; + for (var currentHeaderPosition = this._buffer.shifted - 512, absolutePosition = this._getAbsolutePosition() - 512, empty = !0, i = 0; i < 512; i++) if (0 !== headerBuf[i]) { + empty = !1; + break; + } + if (empty) return this._missing = 0, !0; + try { + this._currentHeader = (function(buf, filenameEncoding, allowUnknownFormat) { + var typeflag = 0 === buf[156] ? 0 : buf[156] - ZERO_OFFSET, name = decodeStr(buf, 0, 100, filenameEncoding), mode = decodeOct(buf, 100, 8), uid = decodeOct(buf, 108, 8), gid = decodeOct(buf, 116, 8), size = decodeOct(buf, 124, 12), mtime = decodeOct(buf, 136, 12), type = (function(flag) { + switch (flag) { + case 0: + return "file"; + + case 1: + return "link"; + + case 2: + return "symlink"; + + case 3: + return "character-device"; + + case 4: + return "block-device"; + + case 5: + return "directory"; + + case 6: + return "fifo"; + + case 7: + return "contiguous-file"; + + case 72: + return "pax-header"; + + case 55: + return "pax-global-header"; + + case 27: + return "gnu-long-link-path"; + + case 28: + case 30: + return "gnu-long-path"; + } + return null; + })(typeflag), linkname = 0 === buf[157] ? null : decodeStr(buf, 157, 100, filenameEncoding), uname = decodeStr(buf, 265, 32), gname = decodeStr(buf, 297, 32), devmajor = decodeOct(buf, 329, 8), devminor = decodeOct(buf, 337, 8), c = (function(block) { + for (var sum = 256, i = 0; i < 148; i++) sum += block[i]; + for (var j = 156; j < 512; j++) sum += block[j]; + return sum; + })(buf); + if (256 === c) return null; + if (c !== decodeOct(buf, 148, 8)) throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?"); + if ((function(buf) { + for (var i = 0; i < 6; i++) if (buf[257 + i] !== USTAR_MAGIC[i]) return !1; + return !0; + })(buf)) buf[345] && (name = decodeStr(buf, 345, 155, filenameEncoding) + "/" + name); else if ((function(buf) { + for (var i = 0; i < 6; i++) if (buf[257 + i] !== GNU_MAGIC[i]) return !1; + for (var j = 0; j < 2; j++) if (buf[263 + j] !== GNU_VER[j]) return !1; + return !0; + })(buf)) ; else if (!allowUnknownFormat) throw new Error("Invalid tar header: unknown format."); + return 0 === typeflag && name && "/" === name[name.length - 1] && (typeflag = 5), + { + name: name, + mode: mode, + uid: uid, + gid: gid, + size: size, + mtime: new Date(1e3 * mtime), + type: type, + linkname: linkname, + uname: uname, + gname: gname, + devmajor: devmajor, + devminor: devminor, + pax: null + }; + })(headerBuf, this._filenameEncoding, this._allowUnknownFormat); + } catch (err) { + return this.emit("error", err), !1; + } + if (!this._currentHeader) return !0; + switch (this._currentHeader.type) { + case "gnu-long-path": + case "gnu-long-link-path": + case "pax-global-header": + case "pax-header": + return this._longHeader = !0, this._missing = this._currentHeader.size, !0; + } + this._locked = !0, this._applyLongHeaders(); + var entryPosition = currentHeaderPosition; + if (safeAdd(entryPosition, 512), this._currentHeader.offset = entryPosition, this._currentHeader.dataOffset = absolutePosition, + 0 === this._currentHeader.size || "directory" === this._currentHeader.type) { + var entry = new Entry(this._currentHeader, entryPosition, this._source); + this._currentEntry = null; + var self = this; + return this._stream && this._stream.pause(), this.emit("entry", this._currentHeader, entry, (function(err) { + self._unlock(err); + })), !0; + } + return this._currentEntry = new Entry(this._currentHeader, entryPosition, this._source), + this._missing = this._currentHeader.size, self = this, this._stream && this._stream.pause(), + this.emit("entry", this._currentHeader, this._currentEntry, (function(err) { + self._unlock(err); + })), !1; + }, TarReader.prototype._consumeEntryData = function() { + var skipSize = Math.min(this._missing, this._buffer.buffered); + if (this._buffer.shift(skipSize), this._missing -= skipSize, 0 === this._missing) { + var padding = overflow(this._currentHeader.size); + if (padding > 0) { + var paddingToSkip = Math.min(padding, this._buffer.buffered); + this._buffer.shift(paddingToSkip), this._missing = padding - paddingToSkip; + } + if (0 === this._missing) return this._currentEntry = null, !0; + } + return this._buffer.buffered > 0; + }, TarReader.prototype._consumeLongHeader = function() { + this._longHeader = !1, this._missing = overflow(this._currentHeader.size); + var buf = this._buffer.shift(this._currentHeader.size); + try { + this._decodeLongHeader(buf); + } catch (err) { + return this.emit("error", err), !1; + } + return !0; + }, TarReader.prototype._applyLongHeaders = function() { + this._gnuLongPath && (this._currentHeader.name = this._gnuLongPath, this._gnuLongPath = null), + this._gnuLongLinkPath && (this._currentHeader.linkname = this._gnuLongLinkPath, + this._gnuLongLinkPath = null), this._pax && (this._pax.path && (this._currentHeader.name = this._pax.path), + this._pax.linkpath && (this._currentHeader.linkname = this._pax.linkpath), this._pax.size && (this._currentHeader.size = parseInt(this._pax.size, 10)), + this._currentHeader.pax = this._pax, this._pax = null); + }, TarReader.prototype._decodeLongHeader = function(buf) { + switch (this._currentHeader.type) { + case "gnu-long-path": + this._gnuLongPath = decodeLongPath(buf, this._filenameEncoding); + break; + + case "gnu-long-link-path": + this._gnuLongLinkPath = decodeLongPath(buf, this._filenameEncoding); + break; + + case "pax-global-header": + this._paxGlobal = decodePax(buf); + break; + + case "pax-header": + this._pax = null === this._paxGlobal ? decodePax(buf) : Object.assign({}, this._paxGlobal, decodePax(buf)); + } + }; + const ZERO_OFFSET = "0".charCodeAt(0), USTAR_MAGIC = new Buffer([ 117, 115, 116, 97, 114, 0 ]), GNU_MAGIC = (new Buffer([ ZERO_OFFSET, ZERO_OFFSET ]), + new Buffer([ 117, 115, 116, 97, 114, 32 ])), GNU_VER = new Buffer([ 32, 0 ]); + function decodeLongPath(buf, encoding) { + return decodeStr(buf, 0, buf.length, encoding); + } + function decodePax(buf) { + for (var result = {}, i = 0; i < buf.length; ) { + for (var start = i; i < buf.length && 32 !== buf[i]; ) i++; + var len = parseInt(buf.slice(start, i).toString(), 10); + if (!len) return result; + i++; + var pair = buf.slice(i, start + len - 1).toString(), keyIndex = pair.indexOf("="); + if (-1 === keyIndex) return result; + result[pair.slice(0, keyIndex)] = pair.slice(keyIndex + 1), i = start + len; + } + return result; + } + function indexOf(block, num, offset, end) { + for (;offset < end; offset++) if (block[offset] === num) return offset; + return end; + } + function decodeOct(val, offset, length) { + if (128 & (val = val.slice(offset, offset + length))[offset = 0]) return (function(buf) { + var positive; + if (128 === buf[0]) positive = !0; else { + if (255 !== buf[0]) return null; + positive = !1; + } + var i, tuple = []; + for (i = buf.length - 1; i > 0; i--) { + var byte = buf[i]; + positive ? tuple.push(byte) : tuple.push(255 - byte); + } + var sum = 0, l = tuple.length; + for (i = 0; i < l; i++) { + var power = Math.pow(256, i); + if (isFinite(power)) sum += tuple[i] * power; else { + for (var curr = tuple[i], j = 0; j < i; j++) if (curr *= 256, !isFinite(curr)) return positive ? Number.MAX_SAFE_INTEGER : -Number.MAX_SAFE_INTEGER; + sum += curr; + } + if (!isFinite(sum)) return positive ? Number.MAX_SAFE_INTEGER : -Number.MAX_SAFE_INTEGER; + } + return positive ? sum : -1 * sum; + })(val); + for (;offset < val.length && 32 === val[offset]; ) offset++; + for (var end = (index = indexOf(val, 32, offset, val.length), len = val.length, + defaultValue = val.length, "number" != typeof index ? defaultValue : (index = ~~index) >= len ? len : index >= 0 || (index += len) >= 0 ? index : 0); offset < end && 0 === val[offset]; ) offset++; + return end === offset ? 0 : parseInt(val.slice(offset, end).toString(), 8); + var index, len, defaultValue; + } + function decodeStr(val, offset, length, encoding) { + return val.slice(offset, indexOf(val, 0, offset, offset + length)).toString(encoding); + } + module.exports = TarReader; +}, function(module, exports, __webpack_require__) { + const needle = __webpack_require__(73), getContentLength = __webpack_require__(1296); + module.exports = async function(url, lengths) { + return new Promise((async (resolve, reject) => { + let contentLength = !1; + "object" == typeof url && (contentLength = url.bytes, url = url.url); + let fileName = url.split("/").pop(); + if ((fileName || "").includes(".") ? (fileName = decodeURIComponent(fileName), fileName.includes("?") && (fileName = fileName.split("?")[0])) : fileName = "archive.tar", + !contentLength) if (lengths.length > 1 && !fileName.match(/\.tar$/i) && lengths[0] === lengths[1]) contentLength = lengths[0]; else try { + contentLength = await getContentLength(url), contentLength = parseInt(contentLength); + } catch (e) { + return console.error(e), void reject(e); + } + resolve({ + length: contentLength, + name: fileName, + createReadStream: range => { + const opts = { + follow_max: 5, + rejectUnauthorized: !1 + }; + return Object.values(range).length && (range.start = range.start || 0, range.end = range.end || 0, + (range.end > contentLength - 1 || 0 === range.end) && (range.end = ""), opts.headers = { + range: `bytes=${range.start}-${range.end}` + }), needle.get(url, opts); + } + }); + })); + }; +}, function(module, exports, __webpack_require__) { + const request = __webpack_require__(61); + module.exports = async function(url) { + return new Promise(((resolve, reject) => { + const req = request({ + url: url, + followRedirect: !0, + maxRedirects: 5, + strictSSL: !1 + }); + req.on("response", (function(d) { + req.abort(), d.headers["content-length"] ? resolve(d.headers["content-length"]) : reject("Could not retrieve content-length from ranged request"); + })).on("error", reject); + })); + }; +}, function(module, exports, __webpack_require__) { + const store = __webpack_require__(170), parseQuery = __webpack_require__(279), cryptojs = __webpack_require__(6), ee = __webpack_require__(4), lzDecompress = __webpack_require__(77).decompressFromEncodedURIComponent, initEmitter = new ee; + module.exports = { + createKey: function(archiveType, orderRegex, orderDefault, req, res) { + function storeDataToKey(arr, newKey) { + if (newKey && null !== store.get(newKey)) return newKey; + arr = arr.map((el => Array.isArray(el) ? !!el[0] && (el[1] ? { + url: el[0], + bytes: el[1] + } : { + url: el[0] + }) : el)).filter((el => !!el)), orderRegex && (arr = arr.sort(((first, second) => { + const firstMatch = ((first || {}).url || first || "").split("?")[0].match(orderRegex), secondMatch = ((second || {}).url || second || "").split("?")[0].match(orderRegex); + return +(firstMatch && firstMatch[1] || orderDefault || 0) - +(secondMatch && secondMatch[1] || orderDefault || 0); + }))); + const key = store.set(arr, newKey); + return initEmitter.emit(key), key; + } + if ("POST" === req.method) { + if (!Array.isArray(req.body)) return res.statusCode = 500, res.setHeader("Content-Type", "text/plain"), + void res.end("Cannot parse JSON data, err 1"); + const key = storeDataToKey(req.body, req.params.createKey); + res.setHeader("Content-Length", JSON.stringify({ + key: key + }).length + ""), res.setHeader("Content-Type", "application/json"), res.end(JSON.stringify({ + key: key + })); + } else { + if (!req.query.lz) return res.statusCode = 500, res.setHeader("Content-Type", "text/plain"), + void res.end("Cannot parse JSON data, err 2"); + let lzData = !1; + try { + lzData = JSON.parse(lzDecompress(req.query.lz)); + } catch (e) {} + if (!lzData || !lzData.urls || !lzData.urls.length) return res.statusCode = 500, + res.setHeader("Content-Type", "text/plain"), void res.end("Cannot parse JSON data, err 3"); + const hashKey = (txt = req.query.lz, cryptojs.createHash("sha256").update(txt).digest("hex")); + storeDataToKey(lzData.urls, hashKey), opts = (function(lzData) { + let opts = {}; + return lzData.fileMustInclude && (opts.fileMustInclude = lzData.fileMustInclude), + lzData.maxFiles && lzData.maxFiles > 0 && (opts.maxFiles = lzData.maxFiles), lzData.fileIdx && lzData.fileIdx > -1 && (opts.fileIdx = lzData.fileIdx), + !!Object.keys(opts).length && opts; + })(lzData), res.statusCode = 302, res.setHeader("Location", `/${archiveType}/stream?key=${hashKey}` + (opts ? "&o=" + encodeURIComponent(JSON.stringify(opts)) : "")), + res.end(); + } + var txt; + }, + waitForKey: function(req) { + return new Promise(((resolve, reject) => { + const key = parseQuery(req).query.key; + key ? null === store.get(key) ? initEmitter.addListener(key, (function gotData() { + initEmitter.removeListener(key, gotData), resolve(); + })) : resolve() : reject(Error("No stream key provided")); + })); + } + }; +}, function(module, exports, __webpack_require__) { + const store = __webpack_require__(171), getRouter = __webpack_require__(1299), getTarStream = __webpack_require__(563); + module.exports = { + router: getRouter, + create: tarUrls => { + if (!tarUrls || !Array.isArray(tarUrls)) throw Error('"tarUrls" is undefined or not an array'); + return store.set(tarUrls); + }, + file: async (key, opts) => { + if (!key) throw Error('Missing "key"'); + const file = await getTarStream({ + url: key, + query: { + o: JSON.stringify(opts || {}), + key: key + } + }); + return file.createReadStream = () => file.stream(), file; + } + }; +}, function(module, exports, __webpack_require__) { + const getContentType = __webpack_require__(1300), getTarStream = __webpack_require__(563), bodyParser = __webpack_require__(50), Router = __webpack_require__(108), parseQuery = (__webpack_require__(171), + __webpack_require__(280)), stream = __webpack_require__(3), ee = __webpack_require__(4), keyHandler = __webpack_require__(1304), orderRegex = /\.(\d\d?\d?\d?\d?)$/i; + module.exports = function() { + const router = Router(); + return router.use(bodyParser.json()), router.post("/create/:createKey", keyHandler.createKey.bind(null, "tgz", orderRegex, 0)), + router.all("/create", keyHandler.createKey.bind(null, "tgz", orderRegex, 0)), router.get("/stream", (async (req, res) => { + try { + await keyHandler.waitForKey(req); + } catch (e) { + return console.error(e), res.statusCode = 500, void res.end(); + } + let file; + parseQuery(req).query.key; + try { + file = await getTarStream(req); + } catch (e) { + return console.error(e), res.statusCode = 500, void res.end(); + } + if (!file) { + const errMsg = "There was an error with the gzip parser."; + return console.error(Error(errMsg)), res.statusCode = 500, void res.end(errMsg); + } + const contentLength = file._fileSize || 0, filename = file._filename || "video"; + if (((req || {}).headers || {}).range) if (contentLength) { + if ("bytes=0-" !== req.headers.range && req.headers.range !== "bytes=0-" + (contentLength - 1)) return res.statusCode = 405, + void res.end(); + } else if ("bytes=0-" !== req.headers.range) return res.statusCode = 405, void res.end(); + if ("HEAD" === req.method) return res.statusCode = 204, contentLength && res.setHeader("Content-Length", contentLength + ""), + res.setHeader("Content-Type", "video" !== filename ? getContentType({ + name: filename + }) : "application/octet-stream"), res.setHeader("Accept-Ranges", "none"), void res.end(); + if (res.statusCode = 200, res.setHeader("Content-Type", "video" !== filename ? getContentType({ + name: filename + }) : "application/octet-stream"), contentLength && res.setHeader("Content-Length", contentLength), + res.setHeader("Accept-Ranges", "none"), req.on("close", (function() { + file.destroy ? file.destroy() : file.unpipe && file.unpipe(); + })), file.unlockStream) { + const evEmitter = new ee; + let chunkBuffer = Buffer.alloc(0), bufferSize = 0; + file.on("data", (function(chunk) { + bufferSize += chunk.length, chunkBuffer = Buffer.concat([ chunkBuffer, chunk ], bufferSize), + evEmitter.emit("chunk"), 31457280 > bufferSize && file.lockStream(); + })); + let stopped = !1; + const readable = new stream.Readable; + readable._read = async () => { + if (stopped) readable.push(null); else { + let data = null; + try { + data = await (async function() { + return new Promise(((resolve, reject) => { + function answerBuffer(chkBuffer) { + resolve(chkBuffer), chunkBuffer = Buffer.alloc(0), bufferSize = 0, file.unlockStream(); + } + bufferSize ? answerBuffer(chunkBuffer) : (file.unlockStream(), evEmitter.addListener("chunk", (function chunked() { + answerBuffer(chunkBuffer), evEmitter.removeListener("chunk", chunked); + }))); + })); + })(); + } catch (e) { + return console.error(e), void (readable.destroy ? readable.destroy() : (readable.unpipe && readable.unpipe(), + readable._destroy && readable._destroy())); + } + readable.push(data); + } + }, readable._destroy = () => { + stopped = !0; + }, readable.pipe(res).on("error", (err => { + console.log("pipeline error", err), readable.destroy ? readable.destroy() : (readable.unpipe && readable.unpipe(), + readable._destroy && readable._destroy()); + })), file.unlockStream(); + } else file.pipe(res); + })), router; + }; +}, function(module, exports, __webpack_require__) { + const mime = __webpack_require__(45); + module.exports = function(rarInnerFile) { + return mime.lookup(rarInnerFile.name) || "application/octet-stream"; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + const util = __webpack_require__(0), events = __webpack_require__(4), stream = __webpack_require__(3); + function overflow(size) { + return (size &= 511) && 512 - size; + } + function safeAdd(a, b) { + var res = a + b; + if (res > Number.MAX_SAFE_INTEGER) throw new Error("Integer overflow in tar stream"); + return res; + } + function BufferList() { + this.buffered = 0, this.shifted = 0, this.buffers = [], this._offset = 0; + } + function EntryStream(entry) { + stream.Readable.call(this, { + objectMode: !1 + }), this._entry = entry, this._buffer = new BufferList, this._needBytes = entry.header.size, + this._destroyed = !1, this._finished = !1, this._onData = chunk => { + this.write(chunk); + }, this._onEnd = () => { + this.end(); + }, this._entry.on("data", this._onData), this._entry.on("end", this._onEnd); + } + function Entry(header) { + stream.PassThrough.call(this, { + objectMode: !1 + }), this.header = header, this._needBytes = this.header.size, this._destroyed = !1; + } + function TarReader(inputStream) { + if (!(this instanceof TarReader)) return new TarReader(inputStream); + if (events.EventEmitter.call(this), !inputStream || "function" != typeof inputStream.on || "function" != typeof inputStream.pause || "function" != typeof inputStream.resume) throw new Error("Input must be a readable stream"); + this._stream = inputStream, this._position = 0, this._buffer = new BufferList, this._currentHeader = null, + this._currentEntry = null, this._missing = 0, this._longHeader = !1, this._locked = !1, + this._finished = !1, this._pax = null, this._paxGlobal = null, this._gnuLongPath = null, + this._gnuLongLinkPath = null, this._filenameEncoding = "utf8", this._allowUnknownFormat = !1, + this._paused = !1, this._reading = !1, this._ended = !1, this._destroyed = !1; + var self = this; + process.nextTick((function() { + self._start(); + })); + } + BufferList.prototype.push = function(buffer) { + this.buffered = safeAdd(this.buffered, buffer.length), this.buffers.push(buffer); + }, BufferList.prototype.shiftFirst = function(size) { + return 0 === this.buffered ? null : this._next(size); + }, BufferList.prototype.shift = function(size) { + if (size > this.buffered) return null; + if (0 === size) return Buffer.alloc(0); + var chunk = this._next(size); + if (size === chunk.length) return chunk; + for (var chunks = [ chunk ], totalSize = chunk.length; (size -= chunk.length) > 0; ) totalSize = safeAdd(totalSize, (chunk = this._next(size)).length), + chunks.push(chunk); + return Buffer.concat(chunks, totalSize); + }, BufferList.prototype._next = function(size) { + var buf = this.buffers[0], rem = buf.length - this._offset; + if (size >= rem) { + var sub = this._offset ? buf.slice(this._offset) : buf; + return this.buffers.shift(), this._offset = 0, this.buffered -= rem, this.shifted = safeAdd(this.shifted, rem), + sub; + } + this.buffered -= size, this.shifted = safeAdd(this.shifted, size); + var result = buf.slice(this._offset, this._offset + size); + return this._offset += size, result; + }, util.inherits(EntryStream, stream.Readable), EntryStream.prototype._read = function(size) { + if (!this._destroyed) { + if (this._buffer.buffered > 0) { + const readSize = Math.min(size, this._buffer.buffered), chunk = this._buffer.shift(readSize); + if (!this.push(chunk)) return; + } + 0 !== this._needBytes || this._finished || (this._finished = !0, this.push(null)), + this.emit("drain"); + } + }, EntryStream.prototype.write = function(data) { + if (this._destroyed) return !1; + const remaining = Math.min(data.length, this._needBytes); + if (remaining > 0) { + const chunk = data.slice(0, remaining); + return this._buffer.push(chunk), this._needBytes -= chunk.length, !0; + } + return !0; + }, EntryStream.prototype.end = function() { + this._destroyed || (this._needBytes > 0 && this.emit("error", new Error("Premature end of stream")), + this._finished || (this._finished = !0, this.push(null))); + }, EntryStream.prototype.destroy = function() { + this._destroyed || (this._destroyed = !0, this._buffer = new BufferList, this._entry.removeListener("data", this._onData), + this._entry.removeListener("end", this._onEnd), this.emit("close")); + }, Entry.prototype.digestMissing = function(data) { + if (this._destroyed) return !1; + const remaining = Math.min(data.length, this._needBytes); + if (remaining > 0) { + const chunk = data.slice(0, remaining); + return this._needBytes -= chunk.length, !0; + } + return !0; + }, util.inherits(Entry, stream.PassThrough), Entry.prototype.createReadStream = function() { + return new EntryStream(this); + }, util.inherits(TarReader, events.EventEmitter), TarReader.prototype._start = function() { + if (!this._destroyed) { + var self = this; + this._stream.on("data", (function(chunk) { + self._destroyed || (self._buffer.push(chunk), self._position = safeAdd(self._position, chunk.length), + self._locked || self._paused ? self._stream.pause() : self._update()); + })), this._stream.on("end", (function() { + self._destroyed || (self._ended = !0, self._checkEnd()); + })), this._stream.on("error", (function(err) { + self._destroyed || self.emit("error", err); + })); + } + }, TarReader.prototype.pause = function() { + this._paused = !0, this._stream.pause(); + }, TarReader.prototype.resume = function() { + this._paused = !1, this._locked || (this._stream.resume(), this._update()); + }, TarReader.prototype.destroy = function() { + this._destroyed || (this._destroyed = !0, this._currentEntry && (this._currentEntry.destroy(), + this._currentEntry = null), this._stream && "function" == typeof this._stream.destroy && this._stream.destroy(), + this._buffer = new BufferList, this.emit("close")); + }, TarReader.prototype._checkEnd = function() { + if (!this._destroyed && this._ended && !this._reading && 0 === this._buffer.buffered) { + if (this._locked) return; + this._finished || (this._finished = !0, this.emit("finish")); + } + }, TarReader.prototype._unlock = function(err) { + this._destroyed || (this._locked = !1, err ? this.emit("error", err) : this._paused || (this._stream.resume(), + process.nextTick(function() { + this._destroyed || (this._update(), this._checkEnd()); + }.bind(this)))); + }, TarReader.prototype._update = function() { + if (!this._destroyed && !this._reading && !this._paused) { + this._reading = !0; + for (var continueReading = !0; continueReading && this._buffer.buffered > 0; ) if (null === this._currentEntry) if (this._missing > 0) { + if (!0 === this._longHeader) { + if (this._missing > this._buffer.buffered) break; + continueReading = this._consumeLongHeader(); + continue; + } + var ignore = this._buffer.shiftFirst(Math.min(this._missing, this._buffer.buffered)); + null !== ignore && (this._missing -= ignore.length); + } else { + if (this._buffer.buffered < 512) break; + !1 === this._consumeHeader() && (continueReading = !1); + } else continueReading = this._feedEntryData(); + this._reading = !1, this._checkEnd(); + } + }, TarReader.prototype._getAbsolutePosition = function() { + return this._position - this._buffer.buffered + this._buffer.shifted; + }, TarReader.prototype._consumeHeader = function() { + if (this._destroyed) return !1; + if (this._locked) return !1; + var headerBuf = this._buffer.shift(512); + if (!headerBuf) return !1; + for (var currentHeaderPosition = this._buffer.shifted - 512, absolutePosition = this._getAbsolutePosition() - 512, empty = !0, i = 0; i < 512; i++) if (0 !== headerBuf[i]) { + empty = !1; + break; + } + if (empty) return this._missing = 0, !0; + try { + this._currentHeader = (function(buf, filenameEncoding, allowUnknownFormat) { + var typeflag = 0 === buf[156] ? 0 : buf[156] - ZERO_OFFSET, name = decodeStr(buf, 0, 100, filenameEncoding), mode = decodeOct(buf, 100, 8), uid = decodeOct(buf, 108, 8), gid = decodeOct(buf, 116, 8), size = decodeOct(buf, 124, 12), mtime = decodeOct(buf, 136, 12), type = (function(flag) { + switch (flag) { + case 0: + return "file"; + + case 1: + return "link"; + + case 2: + return "symlink"; + + case 3: + return "character-device"; + + case 4: + return "block-device"; + + case 5: + return "directory"; + + case 6: + return "fifo"; + + case 7: + return "contiguous-file"; + + case 72: + return "pax-header"; + + case 55: + return "pax-global-header"; + + case 27: + return "gnu-long-link-path"; + + case 28: + case 30: + return "gnu-long-path"; + } + return null; + })(typeflag), linkname = 0 === buf[157] ? null : decodeStr(buf, 157, 100, filenameEncoding), uname = decodeStr(buf, 265, 32), gname = decodeStr(buf, 297, 32), devmajor = decodeOct(buf, 329, 8), devminor = decodeOct(buf, 337, 8), c = (function(block) { + for (var sum = 256, i = 0; i < 148; i++) sum += block[i]; + for (var j = 156; j < 512; j++) sum += block[j]; + return sum; + })(buf); + if (256 === c) return null; + if (c !== decodeOct(buf, 148, 8)) throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?"); + if ((function(buf) { + for (var i = 0; i < 6; i++) if (buf[257 + i] !== USTAR_MAGIC[i]) return !1; + return !0; + })(buf)) buf[345] && (name = decodeStr(buf, 345, 155, filenameEncoding) + "/" + name); else if ((function(buf) { + for (var i = 0; i < 6; i++) if (buf[257 + i] !== GNU_MAGIC[i]) return !1; + for (var j = 0; j < 2; j++) if (buf[263 + j] !== GNU_VER[j]) return !1; + return !0; + })(buf)) ; else if (!allowUnknownFormat) throw new Error("Invalid tar header: unknown format."); + return 0 === typeflag && name && "/" === name[name.length - 1] && (typeflag = 5), + { + name: name, + mode: mode, + uid: uid, + gid: gid, + size: size, + mtime: new Date(1e3 * mtime), + type: type, + linkname: linkname, + uname: uname, + gname: gname, + devmajor: devmajor, + devminor: devminor, + pax: null + }; + })(headerBuf, this._filenameEncoding, this._allowUnknownFormat); + } catch (err) { + return this.emit("error", err), !1; + } + if (!this._currentHeader) return !0; + switch (this._currentHeader.type) { + case "gnu-long-path": + case "gnu-long-link-path": + case "pax-global-header": + case "pax-header": + return this._longHeader = !0, this._missing = this._currentHeader.size, !0; + } + this._locked = !0, this._applyLongHeaders(); + var entryPosition = currentHeaderPosition; + if (safeAdd(entryPosition, 512), this._currentHeader.offset = entryPosition, this._currentHeader.dataOffset = absolutePosition, + this._interestedAfter = absolutePosition + this._currentHeader.size, 0 === this._currentHeader.size || "directory" === this._currentHeader.type) { + var entry = new Entry(this._currentHeader); + entry.end(), this._currentEntry = null; + var self = this; + return this._stream.pause(), this._skipping = !1, this.emit("entry", this._currentHeader, entry, (function(err) { + self._skipping = !0, self._unlock(err); + })), !0; + } + return this._currentEntry = new Entry(this._currentHeader), self = this, this._currentEntry.on("drain", (function() { + self._update(); + })), this._stream.pause(), this._currentEntry.unlockStream = function() { + self._interestedAfter = !1, self._locked = !1, self._stream.resume(); + }, this._currentEntry.lockStream = function() { + self._locked = !0, self._stream.pause(); + }, this._skipping = !1, this.emit("entry", this._currentHeader, this._currentEntry, (function(err) { + self._skipping = !0, self._unlock(err); + })), !1; + }, TarReader.prototype._feedEntryData = function() { + if (!this._currentEntry || this._destroyed) return !1; + const entrySize = this._currentHeader.size, bytesNeeded = this._currentEntry._needBytes; + if (0 === bytesNeeded) { + const padding = overflow(entrySize); + if (padding > 0) { + const paddingToSkip = Math.min(padding, this._buffer.buffered); + if (this._buffer.shift(paddingToSkip), this._missing = padding - paddingToSkip, + this._missing > 0) return this._buffer.buffered > 0; + } + return this._currentEntry = null, !0; + } + const available = Math.min(bytesNeeded, this._buffer.buffered); + if (0 === available) return !1; + const chunk = this._buffer.shift(available); + if (this._skipping) { + if (!this._currentEntry.digestMissing(chunk)) return !1; + } else if (!this._currentEntry.write(chunk)) return !1; + return this._buffer.buffered > 0; + }, TarReader.prototype._consumeLongHeader = function() { + if (this._destroyed) return !1; + this._longHeader = !1; + var size = this._missing; + this._missing = overflow(size); + var buf = this._buffer.shift(size); + try { + this._decodeLongHeader(buf); + } catch (err) { + return this.emit("error", err), !1; + } + return !0; + }, TarReader.prototype._applyLongHeaders = function() { + this._gnuLongPath && (this._currentHeader.name = this._gnuLongPath, this._gnuLongPath = null), + this._gnuLongLinkPath && (this._currentHeader.linkname = this._gnuLongLinkPath, + this._gnuLongLinkPath = null), this._pax && (this._pax.path && (this._currentHeader.name = this._pax.path), + this._pax.linkpath && (this._currentHeader.linkname = this._pax.linkpath), this._pax.size && (this._currentHeader.size = parseInt(this._pax.size, 10)), + this._currentHeader.pax = this._pax, this._pax = null); + }, TarReader.prototype._decodeLongHeader = function(buf) { + switch (this._currentHeader.type) { + case "gnu-long-path": + this._gnuLongPath = decodeLongPath(buf, this._filenameEncoding); + break; + + case "gnu-long-link-path": + this._gnuLongLinkPath = decodeLongPath(buf, this._filenameEncoding); + break; + + case "pax-global-header": + this._paxGlobal = decodePax(buf); + break; + + case "pax-header": + this._pax = null === this._paxGlobal ? decodePax(buf) : Object.assign({}, this._paxGlobal, decodePax(buf)); + } + }; + const ZERO_OFFSET = "0".charCodeAt(0), USTAR_MAGIC = new Buffer([ 117, 115, 116, 97, 114, 0 ]), GNU_MAGIC = (new Buffer([ ZERO_OFFSET, ZERO_OFFSET ]), + new Buffer([ 117, 115, 116, 97, 114, 32 ])), GNU_VER = new Buffer([ 32, 0 ]); + function decodeLongPath(buf, encoding) { + return decodeStr(buf, 0, buf.length, encoding); + } + function decodePax(buf) { + for (var result = {}, i = 0; i < buf.length; ) { + for (var start = i; i < buf.length && 32 !== buf[i]; ) i++; + var len = parseInt(buf.slice(start, i).toString(), 10); + if (!len) return result; + i++; + var pair = buf.slice(i, start + len - 1).toString(), keyIndex = pair.indexOf("="); + if (-1 === keyIndex) return result; + result[pair.slice(0, keyIndex)] = pair.slice(keyIndex + 1), i = start + len; + } + return result; + } + function indexOf(block, num, offset, end) { + for (;offset < end; offset++) if (block[offset] === num) return offset; + return end; + } + function decodeOct(val, offset, length) { + if (128 & (val = val.slice(offset, offset + length))[offset = 0]) return (function(buf) { + var positive; + if (128 === buf[0]) positive = !0; else { + if (255 !== buf[0]) return null; + positive = !1; + } + var i, tuple = []; + for (i = buf.length - 1; i > 0; i--) { + var byte = buf[i]; + positive ? tuple.push(byte) : tuple.push(255 - byte); + } + var sum = 0, l = tuple.length; + for (i = 0; i < l; i++) { + var power = Math.pow(256, i); + if (isFinite(power)) sum += tuple[i] * power; else { + for (var curr = tuple[i], j = 0; j < i; j++) if (curr *= 256, !isFinite(curr)) return positive ? Number.MAX_SAFE_INTEGER : -Number.MAX_SAFE_INTEGER; + sum += curr; + } + if (!isFinite(sum)) return positive ? Number.MAX_SAFE_INTEGER : -Number.MAX_SAFE_INTEGER; + } + return positive ? sum : -1 * sum; + })(val); + for (;offset < val.length && 32 === val[offset]; ) offset++; + for (var end = (index = indexOf(val, 32, offset, val.length), len = val.length, + defaultValue = val.length, "number" != typeof index ? defaultValue : (index = ~~index) >= len ? len : index >= 0 || (index += len) >= 0 ? index : 0); offset < end && 0 === val[offset]; ) offset++; + return end === offset ? 0 : parseInt(val.slice(offset, end).toString(), 8); + var index, len, defaultValue; + } + function decodeStr(val, offset, length, encoding) { + return val.slice(offset, indexOf(val, 0, offset, offset + length)).toString(encoding); + } + module.exports = TarReader; +}, function(module, exports, __webpack_require__) { + const needle = __webpack_require__(73), getContentLength = __webpack_require__(1303); + module.exports = async function(url, lengths) { + return new Promise((async (resolve, reject) => { + let contentLength = !1; + "object" == typeof url && (contentLength = url.bytes, url = url.url); + let fileName = url.split("/").pop(); + if ((fileName || "").includes(".") ? (fileName = decodeURIComponent(fileName), fileName.includes("?") && (fileName = fileName.split("?")[0])) : fileName = "archive.gz", + !contentLength) if (lengths.length > 1 && !fileName.match(/\.t?gz$/i) && lengths[0] === lengths[1]) contentLength = lengths[0]; else try { + contentLength = await getContentLength(url), contentLength = parseInt(contentLength); + } catch (e) { + return console.error(e), void reject(e); + } + resolve({ + length: contentLength, + name: fileName, + createReadStream: range => { + const opts = { + follow_max: 5, + rejectUnauthorized: !1 + }; + return Object.values(range).length && (range.start = range.start || 0, range.end = range.end || 0, + (range.end > contentLength - 1 || 0 === range.end) && (range.end = ""), opts.headers = { + range: `bytes=${range.start}-${range.end}` + }), needle.get(url, opts); + } + }); + })); + }; +}, function(module, exports, __webpack_require__) { + const request = __webpack_require__(61); + module.exports = async function(url) { + return new Promise(((resolve, reject) => { + const req = request({ + url: url, + followRedirect: !0, + maxRedirects: 5, + strictSSL: !1 + }); + req.on("response", (function(d) { + req.abort(), d.headers["content-length"] ? resolve(d.headers["content-length"]) : reject("Could not retrieve content-length from ranged request"); + })).on("error", reject); + })); + }; +}, function(module, exports, __webpack_require__) { + const store = __webpack_require__(171), parseQuery = __webpack_require__(280), cryptojs = __webpack_require__(6), ee = __webpack_require__(4), lzDecompress = __webpack_require__(77).decompressFromEncodedURIComponent, initEmitter = new ee; + module.exports = { + createKey: function(archiveType, orderRegex, orderDefault, req, res) { + function storeDataToKey(arr, newKey) { + if (newKey && null !== store.get(newKey)) return newKey; + arr = arr.map((el => Array.isArray(el) ? !!el[0] && (el[1] ? { + url: el[0], + bytes: el[1] + } : { + url: el[0] + }) : el)).filter((el => !!el)), orderRegex && (arr = arr.sort(((first, second) => { + const firstMatch = ((first || {}).url || first || "").split("?")[0].match(orderRegex), secondMatch = ((second || {}).url || second || "").split("?")[0].match(orderRegex); + return +(firstMatch && firstMatch[1] || orderDefault || 0) - +(secondMatch && secondMatch[1] || orderDefault || 0); + }))); + const key = store.set(arr, newKey); + return initEmitter.emit(key), key; + } + if ("POST" === req.method) { + if (!Array.isArray(req.body)) return res.statusCode = 500, res.setHeader("Content-Type", "text/plain"), + void res.end("Cannot parse JSON data, err 1"); + const key = storeDataToKey(req.body, req.params.createKey); + res.setHeader("Content-Length", JSON.stringify({ + key: key + }).length + ""), res.setHeader("Content-Type", "application/json"), res.end(JSON.stringify({ + key: key + })); + } else { + if (!req.query.lz) return res.statusCode = 500, res.setHeader("Content-Type", "text/plain"), + void res.end("Cannot parse JSON data, err 2"); + let lzData = !1; + try { + lzData = JSON.parse(lzDecompress(req.query.lz)); + } catch (e) {} + if (!lzData || !lzData.urls || !lzData.urls.length) return res.statusCode = 500, + res.setHeader("Content-Type", "text/plain"), void res.end("Cannot parse JSON data, err 3"); + const hashKey = (txt = req.query.lz, cryptojs.createHash("sha256").update(txt).digest("hex")); + storeDataToKey(lzData.urls, hashKey), opts = (function(lzData) { + let opts = {}; + return lzData.fileMustInclude && (opts.fileMustInclude = lzData.fileMustInclude), + lzData.maxFiles && lzData.maxFiles > 0 && (opts.maxFiles = lzData.maxFiles), lzData.fileIdx && lzData.fileIdx > -1 && (opts.fileIdx = lzData.fileIdx), + !!Object.keys(opts).length && opts; + })(lzData), res.statusCode = 302, res.setHeader("Location", `/${archiveType}/stream?key=${hashKey}` + (opts ? "&o=" + encodeURIComponent(JSON.stringify(opts)) : "")), + res.end(); + } + var txt; + }, + waitForKey: function(req) { + return new Promise(((resolve, reject) => { + const key = parseQuery(req).query.key; + key ? null === store.get(key) ? initEmitter.addListener(key, (function gotData() { + initEmitter.removeListener(key, gotData), resolve(); + })) : resolve() : reject(Error("No stream key provided")); + })); + } + }; +}, function(module, exports, __webpack_require__) { + const {Client: Client, AccessOptions: AccessOptions} = __webpack_require__(1306), {PassThrough: PassThrough, Readable: Readable} = __webpack_require__(3), {basename: basename, dirname: dirname} = __webpack_require__(5), getContentType = __webpack_require__(1307), router = (__webpack_require__(50), + __webpack_require__(241)()), initEmitter = new (__webpack_require__(4)), lzDecompress = __webpack_require__(77).decompressFromEncodedURIComponent, cryptojs = __webpack_require__(6), shimURL = __webpack_require__(1308).URL, streams = {}, creatingKey = {}, initKeys = {}; + async function prepare(url, opts = {}) { + const filepath = decodeURIComponent(url.pathname); + if (!filepath) throw new TypeError('No "pathname"!'); + const client = new Client(0); + try { + const {host: host, port: port, user: user, password: password} = (function(url) { + return { + host: url.hostname || url.host || "localhost", + port: parseInt(url.port || "0", 10) || 21, + user: url.username ? decodeURIComponent(url.username) : void 0, + password: url.password ? decodeURIComponent(url.password) : void 0 + }; + })(url); + return await client.access({ + host: host, + port: port, + user: user, + password: password, + ...opts + }), { + client: client, + filepath: filepath + }; + } catch (err) { + throw client.close(), err; + } + } + module.exports = { + router: function() { + function getUniqueId() { + const idStr = "" + Math.random().toString(16).slice(2); + return streams[idStr] ? getUniqueId() : idStr; + } + function waitForKeyData(req, forceKey) { + return new Promise(((resolve, reject) => { + const key = `init-${forceKey || req.query.key}`; + key ? initKeys[key] ? resolve(key) : initEmitter.addListener(key, (function gotData() { + initEmitter.removeListener(key, gotData), resolve(key); + })) : reject(Error("No stream key provided")); + })); + } + async function createKeyHandler(req, res) { + let ftpUrl = !1, lzKey = !1; + if ("POST" === req.method) { + if (!req.body || !req.body.ftpUrl) return void res.status(500).send("Cannot parse JSON data, err 1"); + ftpUrl = req.body.ftpUrl; + } else { + if (!req.query.lz) return void res.status(500).send("Cannot parse JSON data, err 2"); + let lzData = !1; + try { + lzData = JSON.parse(lzDecompress(req.query.lz)); + } catch (e) {} + if (!lzData) return void res.status(500).send("Cannot parse JSON data, err 3"); + if (txt = req.query.lz, lzKey = cryptojs.createHash("sha256").update(txt).digest("hex"), + (streams[lzKey] || {}).missingInitPieces) return res.statusCode = 500, void res.end(); + if (creatingKey[lzKey]) { + try { + await waitForKeyData(req, lzKey); + } catch (e) { + return console.error(e), res.statusCode = 500, void res.end(); + } + return (streams[lzKey] || {}).missingInitPieces ? (res.statusCode = 500, void res.end()) : void res.redirect(initKeys[`init-${lzKey}`].serverPath); + } + creatingKey[lzKey] = !0, ftpUrl = lzData.ftpUrl; + } + var txt; + const key = lzKey || req.params.createKey || getUniqueId(), ftpConnOpts = (function(uri, opts = {}) { + const url = "string" == typeof uri ? new shimURL(uri) : uri, protocol = url.protocol.replace(/:$/, ""); + if ("ftp" === protocol) return { + url: url, + opts: opts + }; + if ("ftps" === protocol) return opts.secure = !0, opts.secureOptions = { + rejectUnauthorized: !1 + }, { + url: url, + opts: opts + }; + throw Error("unknown protocol"); + })(ftpUrl); + try { + streams[key] = await (async function(url, opts = {}) { + const {cache: cache} = opts; + let lastModified; + try { + const {client: client, filepath: filepath} = await prepare(url, opts); + if (!client) throw Error("no client"); + try { + lastModified = await client.lastMod(filepath); + } catch (err) { + if (550 === (err || {}).code) throw Error("not found"); + } + if (!lastModified) { + const list = await client.list(dirname(filepath)), name = basename(filepath), entry = list.find((e => e.name === name)); + entry && (lastModified = entry.modifiedAt); + } + if (!lastModified) throw Error("not found"); + if ((cache || {}).lastModified && lastModified && +cache.lastModified == +lastModified) throw Error("not modified"); + const size = await client.size(filepath), features = await client.features(); + return { + client: client, + filepath: filepath, + size: size, + mime: getContentType({ + name: filepath + }) || "application/octet-stream", + features: features, + lastModified: lastModified, + supportsSeek: !!Object.fromEntries(features || []).REST + }; + } catch (err) { + throw err; + } + })(ftpConnOpts.url, ftpConnOpts.opts); + } catch (e) { + return console.error(e), res.statusCode = 500, void res.end(); + } + streams[key].ftpOpts = ftpConnOpts, await streams[key].client.close(), delete streams[key].client; + const filename = basename(streams[key].filepath); + streams[key].streamUrl = `/ftp/stream/${key}/${filename}`, initKeys[`init-${key}`] = { + serverPath: streams[key].streamUrl + }, "POST" === req.method ? (res.setHeader("Content-Length", JSON.stringify({ + key: key + }).length + ""), res.setHeader("Content-Type", "application/json"), res.end(JSON.stringify({ + key: key + }))) : (delete creatingKey[key], res.redirect(streams[key].streamUrl)); + } + return router.post("/create/:createKey", createKeyHandler), router.all("/create", createKeyHandler), + router.all("/:fileName", createKeyHandler), router.get("/stream/:key/:fileName", (async (req, res) => { + const key = ((req || {}).params || {}).key; + if (!key) return console.error(Error("ftp stream key missing")), res.statusCode = 500, + void res.end(); + const {size: size, mime: mime, filepath: filepath, lastModified: lastModified, supportsSeek: supportsSeek} = streams[key], range = ((req || {}).headers || {}).range || null, origin = ((req || {}).headers || {}).origin || "*"; + let start = null, end = null, diff = null; + if (!supportsSeek && range && "bytes=0-" !== range && range !== "bytes=0-" + (size - 1)) return res.statusCode = 405, + void res.end(); + if (range) { + let parts = range.replace(/bytes=/, "").split("-"); + parts[0] && (start = parseInt(parts[0], 10)), (parts[1] || "").split("/")[0] && (end = parseInt(parts[1], 10)), + end || (end = size - 1), null !== start && null !== end && (diff = end - start), + res.writeHead(206, { + "Access-Control-Allow-Origin": origin, + "Content-Range": `bytes ${start}-${end || ""}/${size}`, + "Accept-Ranges": "bytes", + "Content-Length": end - start + 1 + "", + "Content-Type": mime, + "transferMode.dlna.org": "Streaming", + "contentFeatures.dlna.org": "DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000" + }); + } else res.writeHead(200, { + "Access-Control-Allow-Origin": origin, + "Content-Length": size + "", + "Content-Type": mime, + "Accept-Ranges": supportsSeek ? "bytes" : "none", + "transferMode.dlna.org": "Streaming", + "contentFeatures.dlna.org": "DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000" + }); + if ("HEAD" === req.method) return res.end(); + const ftpConn = await prepare(streams[key].ftpOpts.url, streams[key].ftpOpts.opts); + ftpConn.stream = (function(client, filepath, lastModified, startAt) { + const stream = new PassThrough, rs = stream; + return client.downloadTo(stream, filepath, startAt).then((result => { + client.close(); + })).catch((e => {})), rs.lastModified = lastModified, rs; + })(ftpConn.client, filepath, lastModified, start), ftpConn.stream.pipe(res).on("error", (err => { + console.log("pipeline error", err), ftpConn.client.close(); + })), req.on("close", (async () => { + ftpConn.client.close(); + })); + })), router.get("/stream", (async (req, res) => { + try { + await waitForKeyData(req); + } catch (e) { + return console.error(e), res.statusCode = 500, void res.end(); + } + res.redirect(initKeys[`init-${req.query.key}`].serverPath); + })), router; + } + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + var util = __webpack_require__(0), fs = __webpack_require__(2), path = __webpack_require__(5), net = __webpack_require__(39), tls = __webpack_require__(70), stream = __webpack_require__(3), _promisify = util.promisify || function(fn) { + return function() { + var args = Array.prototype.slice.call(arguments), self = this; + return new Promise((function(resolve, reject) { + args.push((function(err, result) { + err ? reject(err) : resolve(result); + })), fn.apply(self, args); + })); + }; + }; + Object.assign || (Object.assign = function(target) { + if (null == target) throw new TypeError("Cannot convert undefined or null to object"); + for (var to = Object(target), index = 1; index < arguments.length; index++) { + var nextSource = arguments[index]; + if (null != nextSource) for (var nextKey in nextSource) Object.prototype.hasOwnProperty.call(nextSource, nextKey) && (to[nextKey] = nextSource[nextKey]); + } + return to; + }); + var fsReadDir = _promisify(fs.readdir), fsMkDir = _promisify(fs.mkdir), fsStat = _promisify(fs.stat), fsOpen = _promisify(fs.open), fsClose = _promisify(fs.close), fsUnlink = _promisify(fs.unlink), FileType = { + Unknown: 0, + File: 1, + Directory: 2, + SymbolicLink: 3 + }; + function FileInfo(name) { + this.name = name, this.type = FileType.Unknown, this.size = 0, this.rawModifiedAt = "", + this.modifiedAt = void 0, this.permissions = void 0, this.hardLinkCount = void 0, + this.link = void 0, this.group = void 0, this.user = void 0, this.uniqueID = void 0; + } + function FTPError(res) { + Error.captureStackTrace(this, this.constructor), this.name = this.constructor.name, + this.message = res.message, this.code = res.code; + } + function positiveCompletion(code) { + return code >= 200 && code < 300; + } + function positiveIntermediate(code) { + return code >= 300 && code < 400; + } + function describeTLS(socket) { + return socket instanceof tls.TLSSocket ? socket.getProtocol() || "Server socket or disconnected client socket" : "No encryption"; + } + function describeAddress(socket) { + return "IPv6" === socket.remoteFamily ? "[" + socket.remoteAddress + "]:" + socket.remotePort : socket.remoteAddress + ":" + socket.remotePort; + } + function ipIsPrivateV4Address(ip) { + ip || (ip = ""), 0 === ip.indexOf("::ffff:") && (ip = ip.substr(7)); + var octets = ip.split(".").map((function(o) { + return parseInt(o, 10); + })); + return 10 === octets[0] || 172 === octets[0] && octets[1] >= 16 && octets[1] <= 31 || 192 === octets[0] && 168 === octets[1] || "127.0.0.1" === ip; + } + function StringWriter() { + stream.Writable.call(this), this.buf = Buffer.alloc ? Buffer.alloc(0) : new Buffer(0); + } + function ProgressTracker() { + this.bytesOverall = 0, this.intervalMs = 500, this.onStop = noop, this.onHandle = noop; + } + function noop() {} + function FTPContext(timeout, encoding) { + this.timeout = timeout || 0, this.verbose = !1, this.ipFamily = void 0, this.tlsOptions = {}, + this._partialResponse = "", this._encoding = encoding || "utf8", this._socket = this.socket = this._newSocket(), + this._dataSocket = void 0, this._closingError = void 0, this._task = void 0; + } + FileInfo.prototype.isDirectory = function() { + return this.type === FileType.Directory; + }, FileInfo.prototype.isSymbolicLink = function() { + return this.type === FileType.SymbolicLink; + }, FileInfo.prototype.isFile = function() { + return this.type === FileType.File; + }, Object.defineProperty(FileInfo.prototype, "date", { + get: function() { + return this.rawModifiedAt; + }, + set: function(value) { + this.rawModifiedAt = value; + } + }), FileInfo.UnixPermission = { + Read: 4, + Write: 2, + Execute: 1 + }, FTPError.prototype = Object.create(Error.prototype), FTPError.prototype.constructor = FTPError, + util.inherits(StringWriter, stream.Writable), StringWriter.prototype._write = function(chunk, encoding, callback) { + chunk instanceof Buffer ? (this.buf = Buffer.concat([ this.buf, chunk ]), callback(null)) : callback(new Error("StringWriter expects chunks of type 'Buffer'.")); + }, StringWriter.prototype.getText = function(encoding) { + return this.buf.toString(encoding); + }, ProgressTracker.prototype.reportTo = function(onHandle) { + this.onHandle = onHandle || noop; + }, ProgressTracker.prototype.start = function(socket, name, type) { + var self = this, lastBytes = 0; + function updateFunc() { + var bytes = socket.bytesRead + socket.bytesWritten; + self.bytesOverall += bytes - lastBytes, lastBytes = bytes, self.onHandle({ + name: name, + type: type, + bytes: bytes, + bytesOverall: self.bytesOverall + }); + } + var id = setInterval(updateFunc, this.intervalMs); + this.onStop = function(stopWithUpdate) { + clearInterval(id), stopWithUpdate && updateFunc(), updateFunc = noop; + }, updateFunc(); + }, ProgressTracker.prototype.stop = function() { + this.onStop(!1); + }, ProgressTracker.prototype.updateAndStop = function() { + this.onStop(!0); + }, FTPContext.prototype.close = function() { + var message = this._task ? "User closed client during task" : "User closed client"; + this.closeWithError(new Error(message)); + }, FTPContext.prototype.closeWithError = function(err) { + this._closingError || (this._closingError = err, this._closeControlSocket(), this._closeSocket(this._dataSocket), + this._passToHandler(err), this._stopTrackingTask()); + }, Object.defineProperty(FTPContext.prototype, "closed", { + get: function() { + return void 0 === this.socket.remoteAddress || void 0 !== this._closingError; + } + }), FTPContext.prototype.reset = function() { + this.socket = this._newSocket(); + }, Object.defineProperty(FTPContext.prototype, "socket", { + get: function() { + return this._socket; + }, + set: function(socket) { + var self = this; + this.dataSocket = void 0, this.tlsOptions = {}, this._partialResponse = "", this._socket && (socket && socket.localPort === this._socket.localPort ? this._removeSocketListeners(this.socket) : this._closeControlSocket()), + socket && (this._closingError = void 0, socket.setTimeout(0), socket.setEncoding(this._encoding), + socket.setKeepAlive(!0), socket.on("data", (function(data) { + self._onControlSocketData(data); + })), socket.on("end", (function() { + self.closeWithError(new Error("Server sent FIN packet unexpectedly, closing connection.")); + })), socket.on("close", (function(hadError) { + hadError || self.closeWithError(new Error("Server closed connection unexpectedly.")); + })), this._setupDefaultErrorHandlers(socket, "control socket")), this._socket = socket; + } + }), Object.defineProperty(FTPContext.prototype, "dataSocket", { + get: function() { + return this._dataSocket; + }, + set: function(socket) { + this._closeSocket(this._dataSocket), socket && (socket.setTimeout(0), this._setupDefaultErrorHandlers(socket, "data socket")), + this._dataSocket = socket; + } + }), Object.defineProperty(FTPContext.prototype, "encoding", { + get: function() { + return this._encoding; + }, + set: function(encoding) { + this._encoding = encoding, this.socket && this.socket.setEncoding(encoding); + } + }), Object.defineProperty(FTPContext.prototype, "hasTLS", { + get: function() { + return "encrypted" in this._socket; + } + }), FTPContext.prototype.send = function(command) { + var message = 0 === command.indexOf("PASS") ? "> PASS ###" : "> " + command; + this.log(message), this._socket.write(command + "\r\n", this.encoding); + }, FTPContext.prototype.request = function(command) { + return this.handle(command, (function(res, task) { + res instanceof Error ? task.reject(res) : task.resolve(res); + })); + }, FTPContext.prototype.handle = function(command, responseHandler) { + var self = this; + if (this._task) { + var err = new Error("User launched a task while another one is still running. Forgot to use 'await' or '.then()'?"); + err.stack += "\nRunning task launched at: " + this._task.stack, this.closeWithError(err); + } + return new Promise((function(resolveTask, rejectTask) { + if (self._task = { + stack: (new Error).stack || "Unknown call stack", + responseHandler: responseHandler, + resolver: { + resolve: function(arg) { + self._stopTrackingTask(), resolveTask(arg); + }, + reject: function(err) { + self._stopTrackingTask(), rejectTask(err); + } + } + }, self._closingError) { + var err = new Error("Client is closed because " + self._closingError.message); + return err.stack += "\nClosing reason: " + self._closingError.stack, err.code = void 0 !== self._closingError.code ? self._closingError.code : "0", + void self._passToHandler(err); + } + self.socket.setTimeout(self.timeout), command && self.send(command); + })); + }, FTPContext.prototype.log = function(message) { + this.verbose && console.log(message); + }, FTPContext.prototype._stopTrackingTask = function() { + this.socket.setTimeout(0), this._task = void 0; + }, FTPContext.prototype._onControlSocketData = function(chunk) { + this.log("< " + chunk); + var parsed = (function(text) { + for (var tokenRegex, lines = text.split(/\r?\n/).filter((function(str) { + return "" !== str.trim(); + })), messages = [], startAt = 0, i = 0; i < lines.length; i++) { + var line = lines[i]; + if (tokenRegex) tokenRegex.test(line) && (tokenRegex = void 0, messages.push(lines.slice(startAt, i + 1).join("\n"))); else if (/^\d\d\d-/.test(line)) { + var token = line.substr(0, 3); + tokenRegex = new RegExp("^" + token + "(?:$| )"), startAt = i; + } else /^\d\d\d(?:$| )/.test(line) && messages.push(line); + } + return { + messages: messages, + rest: tokenRegex ? lines.slice(startAt).join("\n") + "\n" : "" + }; + })(this._partialResponse + chunk); + this._partialResponse = parsed.rest; + for (var i = 0; i < parsed.messages.length; i++) { + var message = parsed.messages[i], code = parseInt(message.substr(0, 3), 10), response = { + code: code, + message: message + }, err = code >= 400 ? new FTPError(response) : void 0; + this._passToHandler(err || response); + } + }, FTPContext.prototype._passToHandler = function(response) { + this._task && this._task.responseHandler(response, this._task.resolver); + }, FTPContext.prototype._setupDefaultErrorHandlers = function(socket, identifier) { + var self = this; + socket.once("error", (function(error) { + error.message += " (" + identifier + ")", self.closeWithError(error); + })), socket.once("close", (function(hadError) { + hadError && self.closeWithError(new Error("Socket closed due to transmission error (" + identifier + ")")); + })), socket.once("timeout", (function() { + socket.destroy(), self.closeWithError(new Error("Timeout (" + identifier + ")")); + })); + }, FTPContext.prototype._closeControlSocket = function() { + this._removeSocketListeners(this._socket), this._socket.on("error", (function() {})), + this.send("QUIT"), this._closeSocket(this._socket); + }, FTPContext.prototype._closeSocket = function(socket) { + socket && (this._removeSocketListeners(socket), socket.on("error", (function() {})), + socket.destroy()); + }, FTPContext.prototype._removeSocketListeners = function(socket) { + socket.removeAllListeners(), socket.removeAllListeners("timeout"), socket.removeAllListeners("data"), + socket.removeAllListeners("end"), socket.removeAllListeners("error"), socket.removeAllListeners("close"), + socket.removeAllListeners("connect"); + }, FTPContext.prototype._newSocket = function() { + return new net.Socket; + }; + var RE_LINE_DOS = new RegExp("(\\S+)\\s+(\\S+)\\s+(?:()|([0-9]+))\\s+(\\S.*)"); + function parseLineDOS(line) { + var groups = line.match(RE_LINE_DOS); + if (groups) { + var name = groups[5]; + if ("." !== name && ".." !== name) { + var file = new FileInfo(name); + return "" === groups[3] ? (file.type = FileType.Directory, file.size = 0) : (file.type = FileType.File, + file.size = parseInt(groups[4], 10)), file.rawModifiedAt = groups[1] + " " + groups[2], + file; + } + } + } + var RE_LINE_UNIX = new RegExp("([bcdelfmpSs-])(((r|-)(w|-)([xsStTL-]))((r|-)(w|-)([xsStTL-]))((r|-)(w|-)([xsStTL-]?)))\\+?\\s*(\\d+)\\s+(?:(\\S+(?:\\s\\S+)*?)\\s+)?(?:(\\S+(?:\\s\\S+)*)\\s+)?(\\d+(?:,\\s*\\d+)?)\\s+((?:\\d+[-/]\\d+[-/]\\d+)|(?:\\S{3}\\s+\\d{1,2})|(?:\\d{1,2}\\s+\\S{3})|(?:\\d{1,2}月\\s+\\d{1,2}日))\\s+((?:\\d+(?::\\d+)?)|(?:\\d{4}年))\\s(.*)"); + function parseLineUnix(line) { + var groups = line.match(RE_LINE_UNIX); + if (groups) { + var name = groups[21]; + if ("." !== name && ".." !== name) { + var file = new FileInfo(name); + switch (file.size = parseInt(groups[18], 10), file.user = groups[16], file.group = groups[17], + file.hardLinkCount = parseInt(groups[15], 10), file.rawModifiedAt = groups[19] + " " + groups[20], + file.permissions = { + user: parseMode(groups[4], groups[5], groups[6]), + group: parseMode(groups[8], groups[9], groups[10]), + world: parseMode(groups[12], groups[13], groups[14]) + }, groups[1].charAt(0)) { + case "d": + file.type = FileType.Directory; + break; + + case "e": + case "l": + file.type = FileType.SymbolicLink; + break; + + case "b": + case "c": + case "f": + case "-": + file.type = FileType.File; + break; + + default: + file.type = FileType.Unknown; + } + if (file.isSymbolicLink()) { + var end = name.indexOf(" -> "); + -1 !== end && (file.name = name.substring(0, end), file.link = name.substring(end + 4)); + } + return file; + } + } + function parseMode(r, w, x) { + var value = 0; + "-" !== r && (value += FileInfo.UnixPermission.Read), "-" !== w && (value += FileInfo.UnixPermission.Write); + var execToken = x.charAt(0); + return "-" !== execToken && execToken.toUpperCase() !== execToken && (value += FileInfo.UnixPermission.Execute), + value; + } + } + function parseMLSxDate(fact) { + return new Date(Date.UTC(+fact.slice(0, 4), +fact.slice(4, 6) - 1, +fact.slice(6, 8), +fact.slice(8, 10), +fact.slice(10, 12), +fact.slice(12, 14), +fact.slice(15, 18))); + } + function parseLineMLSD(line) { + var pos = line.indexOf(" "), packedFacts = line.substr(0, pos), name = line.substr(pos + 1); + if ("" !== name && "." !== name && ".." !== name) { + var info = new FileInfo(name), facts = packedFacts.split(";"), factHandlers = { + size: function(v) { + info.size = parseInt(v, 10); + }, + sizd: function(v) { + info.size = parseInt(v, 10); + }, + unique: function(v) { + info.uniqueID = v; + }, + modify: function(v) { + info.modifiedAt = parseMLSxDate(v), info.rawModifiedAt = info.modifiedAt.toISOString(); + }, + type: function(v) { + if (0 === v.indexOf("OS.unix=slink")) return info.type = FileType.SymbolicLink, + info.link = v.substr(v.indexOf(":") + 1), 1; + switch (v) { + case "file": + info.type = FileType.File; + break; + + case "dir": + info.type = FileType.Directory; + break; + + case "OS.unix=symlink": + info.type = FileType.SymbolicLink; + break; + + case "cdir": + case "pdir": + return 2; + + default: + info.type = FileType.Unknown; + } + return 1; + }, + "unix.mode": function(v) { + var digits = v.substr(-3); + info.permissions = { + user: parseInt(digits[0], 10), + group: parseInt(digits[1], 10), + world: parseInt(digits[2], 10) + }; + }, + "unix.ownername": function(v) { + info.user = v; + }, + "unix.owner": function(v) { + info.user || (info.user = v); + }, + "unix.groupname": function(v) { + info.group = v; + }, + "unix.group": function(v) { + info.group || (info.group = v); + } + }; + factHandlers["unix.uid"] = factHandlers["unix.owner"], factHandlers["unix.gid"] = factHandlers["unix.group"]; + for (var i = 0; i < facts.length; i++) { + var factPos = facts[i].indexOf("="); + if (-1 !== factPos) { + var factName = facts[i].substr(0, factPos).toLowerCase(), factValue = facts[i].substr(factPos + 1), handler = factHandlers[factName]; + if (handler && 2 === handler(factValue)) return; + } + } + return info; + } + } + function transformListMLSD(files) { + for (var nonLinksByID = {}, i = 0; i < files.length; i++) { + var file = files[i]; + !file.isSymbolicLink() && file.uniqueID && (nonLinksByID[file.uniqueID] = file); + } + for (var resolved = [], j = 0; j < files.length; j++) { + var f = files[j]; + if (f.isSymbolicLink() && f.uniqueID && !f.link) { + var target = nonLinksByID[f.uniqueID]; + target && (f.link = target.name); + } + -1 === f.name.indexOf("/") && resolved.push(f); + } + return resolved; + } + function parseList(rawList) { + var lines = rawList.split(/\r?\n/).filter((function(s) { + return "" !== s.trim() && 0 !== s.indexOf("total"); + })); + if (0 === lines.length) return []; + var parser, line, testLine = lines[lines.length - 1]; + if (/^\d{2}/.test(line = testLine) && RE_LINE_DOS.test(line)) parser = { + parse: parseLineDOS, + transform: function(f) { + return f; + } + }; else if ((function(line) { + return RE_LINE_UNIX.test(line); + })(testLine)) parser = { + parse: parseLineUnix, + transform: function(f) { + return f; + } + }; else { + if (!(function(line) { + return /^\S+=\S+;/.test(line) || 0 === line.indexOf(" "); + })(testLine)) throw new Error("This library only supports MLSD, Unix- or DOS-style directory listing."); + parser = { + parse: parseLineMLSD, + transform: transformListMLSD + }; + } + for (var files = [], i = 0; i < lines.length; i++) { + var info = parser.parse(lines[i]); + info && files.push(info); + } + return parser.transform(files); + } + function TransferResolver(ftp, progress) { + this.ftp = ftp, this.progress = progress, this.response = void 0, this.dataTransferDone = !1; + } + function pipeline(source, destination, callback) { + function cleanup() { + source.removeListener("error", onError), destination.removeListener("error", onError), + destination.removeListener("finish", onFinish); + } + function onError(err) { + cleanup(), callback(err); + } + function onFinish() { + cleanup(), callback(); + } + source.pipe(destination), source.once("error", onError), destination.once("error", onError), + destination.once("finish", onFinish); + } + function enterPassiveModeIPv6(ftp) { + return ftp.request("EPSV").then((function(res) { + var groups = res.message.match(/[|!]{3}(.+)[|!]/); + if (!groups || !groups[1]) throw new Error("Can't parse EPSV response: " + res.message); + var port = parseInt(groups[1], 10); + if (isNaN(port)) throw new Error("Can't parse EPSV port: " + res.message); + var host = ftp.socket.remoteAddress; + if (!host) throw new Error("Control socket is disconnected."); + return connectForPassiveTransfer(host, port, ftp).then((function() { + return res; + })); + })); + } + function enterPassiveModeIPv4(ftp) { + return ftp.request("PASV").then((function(res) { + var groups = res.message.match(/([-\d]+,[-\d]+,[-\d]+,[-\d]+),([-\d]+),([-\d]+)/); + if (!groups || 4 !== groups.length) throw new Error("Can't parse PASV response: " + res.message); + var host = groups[1].replace(/,/g, "."), port = 256 * (255 & parseInt(groups[2], 10)) + (255 & parseInt(groups[3], 10)), controlHost = ftp.socket.remoteAddress; + return ipIsPrivateV4Address(host) && controlHost && !ipIsPrivateV4Address(controlHost) && (host = controlHost), + connectForPassiveTransfer(host, port, ftp).then((function() { + return res; + })); + })); + } + function connectForPassiveTransfer(host, port, ftp) { + return new Promise((function(resolve, reject) { + var socket = ftp._newSocket(), handleConnErr = function(err) { + err.message = "Can't open data connection in passive mode: " + err.message, reject(err); + }, handleTimeout = function() { + socket.destroy(), reject(new Error("Timeout when trying to open data connection to " + host + ":" + port)); + }; + socket.setTimeout(ftp.timeout), socket.on("error", handleConnErr), socket.on("timeout", handleTimeout), + socket.connect({ + port: port, + host: host, + family: ftp.ipFamily + }, (function() { + ftp.socket instanceof tls.TLSSocket && (socket = tls.connect(Object.assign({}, ftp.tlsOptions, { + socket: socket, + session: ftp.socket.getSession() + }))), socket.removeListener("error", handleConnErr), socket.removeListener("timeout", handleTimeout), + ftp.dataSocket = socket, resolve(); + })); + })); + } + function downloadTo(destination, config) { + if (!config.ftp.dataSocket) throw new Error("Download will be initiated but no data connection is available."); + var resolver = new TransferResolver(config.ftp, config.tracker); + return config.ftp.handle(config.command, (function(res, task) { + if (res instanceof Error) resolver.onError(task, res); else if (150 === res.code || 125 === res.code) { + var dataSocket = config.ftp.dataSocket; + if (!dataSocket) return void resolver.onError(task, new Error("Download should begin but no data connection is available.")); + config.ftp.log("Downloading from " + describeAddress(dataSocket) + " (" + describeTLS(dataSocket) + ")"), + resolver.onDataStart(config.remotePath, config.type), pipeline(dataSocket, destination, (function(err) { + err ? resolver.onError(task, err) : resolver.onDataDone(task); + })); + } else 350 === res.code ? config.ftp.send("RETR " + config.remotePath) : positiveCompletion(res.code) ? resolver.onControlDone(task, res) : positiveIntermediate(res.code) && resolver.onUnexpectedRequest(res); + })); + } + function Client(timeout) { + this.availableListCommands = [ "LIST -a", "LIST" ], this.ftp = new FTPContext(timeout || 3e4), + this.prepareTransfer = this._enterFirstCompatibleMode([ enterPassiveModeIPv6, enterPassiveModeIPv4 ]), + this.parseList = parseList, this._progressTracker = new ProgressTracker; + } + function ignoreError(func) { + return Promise.resolve().then(func).catch((function() {})); + } + function promiseAllSequential(items, iterator) { + return items.reduce((function(promise, item) { + return promise.then((function() { + return iterator(item); + })); + }), Promise.resolve()); + } + TransferResolver.prototype.onDataStart = function(name, type) { + if (!this.ftp.dataSocket) throw new Error("Data transfer should start but there is no data connection."); + this.ftp.socket.setTimeout(0), this.ftp.dataSocket.setTimeout(this.ftp.timeout), + this.progress.start(this.ftp.dataSocket, name, type); + }, TransferResolver.prototype.onDataDone = function(task) { + this.progress.updateAndStop(), this.ftp.socket.setTimeout(this.ftp.timeout), this.ftp.dataSocket && this.ftp.dataSocket.setTimeout(0), + this.dataTransferDone = !0, this.tryResolve(task); + }, TransferResolver.prototype.onControlDone = function(task, response) { + this.response = response, this.tryResolve(task); + }, TransferResolver.prototype.onError = function(task, err) { + this.progress.updateAndStop(), this.ftp.socket.setTimeout(this.ftp.timeout), this.ftp.dataSocket = void 0, + task.reject(err); + }, TransferResolver.prototype.onUnexpectedRequest = function(response) { + this.ftp.closeWithError(new Error("Unexpected FTP response: " + response.message)); + }, TransferResolver.prototype.tryResolve = function(task) { + this.dataTransferDone && this.response && (this.ftp.dataSocket = void 0, task.resolve(this.response)); + }, Client.prototype.close = function() { + this.ftp.close(), this._progressTracker.stop(); + }, Object.defineProperty(Client.prototype, "closed", { + get: function() { + return this.ftp.closed; + } + }), Client.prototype.connect = function(host, port) { + var self = this; + return host = host || "localhost", port = port || 21, this.ftp.reset(), this.ftp.socket.connect({ + host: host, + port: port, + family: this.ftp.ipFamily + }, (function() { + self.ftp.log("Connected to " + describeAddress(self.ftp.socket) + " (" + describeTLS(self.ftp.socket) + ")"); + })), this._handleConnectResponse(); + }, Client.prototype.connectImplicitTLS = function(host, port, tlsOptions) { + var self = this; + return host = host || "localhost", port = port || 21, tlsOptions = tlsOptions || {}, + this.ftp.reset(), this.ftp.socket = tls.connect(port, host, tlsOptions, (function() { + self.ftp.log("Connected to " + describeAddress(self.ftp.socket) + " (" + describeTLS(self.ftp.socket) + ")"); + })), this.ftp.tlsOptions = tlsOptions, this._handleConnectResponse(); + }, Client.prototype._handleConnectResponse = function() { + return this.ftp.handle(void 0, (function(res, task) { + res instanceof Error ? task.reject(res) : positiveCompletion(res.code) ? task.resolve(res) : task.reject(new FTPError(res)); + })); + }, Client.prototype.send = function(command, ignoreErrorCodesDEPRECATED) { + return ignoreErrorCodesDEPRECATED ? (this.ftp.log("Deprecated: use sendIgnoringError instead"), + this.sendIgnoringError(command)) : this.ftp.request(command); + }, Client.prototype.sendIgnoringError = function(command) { + return this.ftp.handle(command, (function(res, task) { + res instanceof FTPError ? task.resolve({ + code: res.code, + message: res.message + }) : res instanceof Error ? task.reject(res) : task.resolve(res); + })); + }, Client.prototype.useTLS = function(options, command) { + var self = this; + return options = options || {}, command = command || "AUTH TLS", this.send(command).then((function(ret) { + return (function(socket, options) { + return new Promise((function(resolve, reject) { + var tlsOptions = Object.assign({}, options, { + socket: socket + }), tlsSocket = tls.connect(tlsOptions, (function() { + !1 === tlsOptions.rejectUnauthorized || tlsSocket.authorized ? (tlsSocket.removeAllListeners("error"), + resolve(tlsSocket)) : reject(tlsSocket.authorizationError); + })).once("error", (function(error) { + reject(error); + })); + })); + })(self.ftp.socket, options).then((function(tlsSocket) { + return self.ftp.socket = tlsSocket, self.ftp.tlsOptions = options, self.ftp.log("Control socket is using: " + describeTLS(self.ftp.socket)), + ret; + })); + })); + }, Client.prototype.login = function(user, password) { + var self = this; + return user = user || "anonymous", password = password || "guest", this.ftp.log("Login security: " + describeTLS(this.ftp.socket)), + this.ftp.handle("USER " + user, (function(res, task) { + res instanceof Error ? task.reject(res) : positiveCompletion(res.code) ? task.resolve(res) : 331 === res.code ? self.ftp.send("PASS " + password) : task.reject(new FTPError(res)); + })); + }, Client.prototype.useDefaultSettings = function() { + var self = this; + return this.features().then((function(features) { + var supportsMLSD = features.has("MLST"); + return self.availableListCommands = supportsMLSD ? [ "MLSD", "LIST -a", "LIST" ] : [ "LIST -a", "LIST" ], + self.send("TYPE I").then((function() { + return self.sendIgnoringError("STRU F"); + })).then((function() { + return self.sendIgnoringError("OPTS UTF8 ON"); + })).then((function() { + if (supportsMLSD) return self.sendIgnoringError("OPTS MLST type;size;modify;unique;unix.mode;unix.owner;unix.group;unix.ownername;unix.groupname;"); + })).then((function() { + if (self.ftp.hasTLS) return self.sendIgnoringError("PBSZ 0").then((function() { + return self.sendIgnoringError("PROT P"); + })); + })); + })); + }, Client.prototype.access = function(options) { + var self = this, useExplicitTLS = !0 === (options = options || {}).secure; + return ("implicit" === options.secure ? this.connectImplicitTLS(options.host, options.port, options.secureOptions) : this.connect(options.host, options.port)).then((function(welcome) { + if (useExplicitTLS) { + var secureOptions = options.secureOptions || {}; + return secureOptions.host = secureOptions.host || options.host, self.useTLS(secureOptions).then((function() { + return welcome; + })); + } + return welcome; + })).then((function(welcome) { + return self.sendIgnoringError("OPTS UTF8 ON").then((function() { + return welcome; + })); + })).then((function(welcome) { + return self.login(options.user, options.password).then((function() { + return welcome; + })); + })).then((function(welcome) { + return self.useDefaultSettings().then((function() { + return welcome; + })); + })); + }, Client.prototype.pwd = function() { + return this.send("PWD").then((function(res) { + var parsed = res.message.match(/"(.+)"/); + if (!parsed || !parsed[1]) throw new Error("Can't parse response to command 'PWD': " + res.message); + return parsed[1]; + })); + }, Client.prototype.features = function() { + return this.sendIgnoringError("FEAT").then((function(res) { + var line, features = new Map; + if (res.code < 400 && (line = res.message, /^\d\d\d-/.test(line))) for (var lines = res.message.split("\n").slice(1, -1), i = 0; i < lines.length; i++) { + var entry = lines[i].trim().split(" "); + features.set(entry[0], entry[1] || ""); + } + return features; + })); + }, Client.prototype.cd = function(path) { + var self = this; + return this.protectWhitespace(path).then((function(validPath) { + return self.send("CWD " + validPath); + })); + }, Client.prototype.cdup = function() { + return this.send("CDUP"); + }, Client.prototype.lastMod = function(path) { + var self = this; + return this.protectWhitespace(path).then((function(validPath) { + return self.send("MDTM " + validPath); + })).then((function(res) { + return parseMLSxDate(res.message.slice(4)); + })); + }, Client.prototype.size = function(path) { + var self = this; + return this.protectWhitespace(path).then((function(validPath) { + var command = "SIZE " + validPath; + return self.send(command).then((function(res) { + var size = parseInt(res.message.slice(4), 10); + if (isNaN(size)) throw new Error("Can't parse response to command '" + command + "': " + res.message); + return size; + })); + })); + }, Client.prototype.rename = function(srcPath, destPath) { + var self = this; + return Promise.all([ this.protectWhitespace(srcPath), this.protectWhitespace(destPath) ]).then((function(paths) { + return self.send("RNFR " + paths[0]).then((function() { + return self.send("RNTO " + paths[1]); + })); + })); + }, Client.prototype.remove = function(path, ignoreErrorCodes) { + var self = this; + return this.protectWhitespace(path).then((function(validPath) { + return ignoreErrorCodes ? self.sendIgnoringError("DELE " + validPath) : self.send("DELE " + validPath); + })); + }, Client.prototype.trackProgress = function(handler) { + this._progressTracker.bytesOverall = 0, this._progressTracker.reportTo(handler); + }, Client.prototype.uploadFrom = function(source, toRemotePath, options) { + return this._uploadWithCommand(source, toRemotePath, "STOR", options || {}); + }, Client.prototype.appendFrom = function(source, toRemotePath, options) { + return this._uploadWithCommand(source, toRemotePath, "APPE", options || {}); + }, Client.prototype._uploadWithCommand = function(source, remotePath, command, options) { + return "string" == typeof source ? this._uploadLocalFile(source, remotePath, command, options) : this._uploadFromStream(source, remotePath, command); + }, Client.prototype._uploadLocalFile = function(localPath, remotePath, command, options) { + var fd, self = this; + return fsOpen(localPath, "r").then((function(openedFd) { + fd = openedFd; + var source = fs.createReadStream("", { + fd: fd, + start: options.localStart, + end: options.localEndInclusive, + autoClose: !1 + }); + return self._uploadFromStream(source, remotePath, command).then((function(result) { + return ignoreError((function() { + return fsClose(fd); + })).then((function() { + return result; + })); + })).catch((function(err) { + return ignoreError((function() { + return fsClose(fd); + })).then((function() { + throw err; + })); + })); + })); + }, Client.prototype._uploadFromStream = function(source, remotePath, command) { + var self = this, onError = function(err) { + self.ftp.closeWithError(err); + }; + return source.once("error", onError), this.protectWhitespace(remotePath).then((function(validPath) { + return self.prepareTransfer(self.ftp).then((function() { + return (function(source, config) { + var resolver = new TransferResolver(config.ftp, config.tracker), fullCommand = config.command + " " + config.remotePath; + return config.ftp.handle(fullCommand, (function(res, task) { + if (res instanceof Error) resolver.onError(task, res); else if (150 === res.code || 125 === res.code) { + var dataSocket = config.ftp.dataSocket; + if (!dataSocket) return void resolver.onError(task, new Error("Upload should begin but no data connection is available.")); + function startUpload() { + config.ftp.log("Uploading to " + describeAddress(dataSocket) + " (" + describeTLS(dataSocket) + ")"), + resolver.onDataStart(config.remotePath, config.type), pipeline(source, dataSocket, (function(err) { + err ? resolver.onError(task, err) : resolver.onDataDone(task); + })); + } + "getCipher" in dataSocket && !dataSocket.getCipher() ? dataSocket.once("secureConnect", startUpload) : startUpload(); + } else positiveCompletion(res.code) ? resolver.onControlDone(task, res) : positiveIntermediate(res.code) && resolver.onUnexpectedRequest(res); + })); + })(source, { + ftp: self.ftp, + tracker: self._progressTracker, + command: command, + remotePath: validPath, + type: "upload" + }); + })); + })).then((function(result) { + return source.removeListener("error", onError), result; + })).catch((function(err) { + throw source.removeListener("error", onError), err; + })); + }, Client.prototype.downloadTo = function(destination, fromRemotePath, startAt) { + return startAt = startAt || 0, "string" == typeof destination ? this._downloadToFile(destination, fromRemotePath, startAt) : this._downloadToStream(destination, fromRemotePath, startAt); + }, Client.prototype._downloadToFile = function(localPath, remotePath, startAt) { + var fd, self = this, appendingToLocalFile = startAt > 0; + return fsOpen(localPath, appendingToLocalFile ? "r+" : "w").then((function(openedFd) { + fd = openedFd; + var destination = fs.createWriteStream("", { + fd: fd, + start: startAt, + autoClose: !1 + }); + return self._downloadToStream(destination, remotePath, startAt).then((function(result) { + return ignoreError((function() { + return fsClose(fd); + })).then((function() { + return result; + })); + })).catch((function(err) { + return ignoreError((function() { + return fsStat(localPath); + })).then((function(stats) { + var hasData = stats && stats.size > 0; + if (!appendingToLocalFile && !hasData) return ignoreError((function() { + return fsUnlink(localPath); + })); + })).then((function() { + return ignoreError((function() { + return fsClose(fd); + })); + })).then((function() { + throw err; + })); + })); + })); + }, Client.prototype._downloadToStream = function(destination, remotePath, startAt) { + var self = this, onError = function(err) { + self.ftp.closeWithError(err); + }; + return destination.once("error", onError), this.protectWhitespace(remotePath).then((function(validPath) { + return self.prepareTransfer(self.ftp).then((function() { + var command = startAt > 0 ? "REST " + startAt : "RETR " + validPath; + return downloadTo(destination, { + ftp: self.ftp, + tracker: self._progressTracker, + command: command, + remotePath: validPath, + type: "download" + }); + })); + })).then((function(result) { + return destination.removeListener("error", onError), destination.end(), result; + })).catch((function(err) { + throw destination.removeListener("error", onError), destination.end(), err; + })); + }, Client.prototype.list = function(path) { + var self = this; + return path = path || "", this.protectWhitespace(path).then((function(validPath) { + var lastError, candidates = self.availableListCommands; + return (function tryNext(index) { + if (index >= candidates.length) throw lastError; + var candidate = candidates[index], command = "" === validPath ? candidate : candidate + " " + validPath; + return self.prepareTransfer(self.ftp).then((function() { + return self._requestListWithCommand(command); + })).then((function(parsedList) { + return self.availableListCommands = [ candidate ], parsedList; + })).catch((function(err) { + if (!(err instanceof FTPError)) throw err; + return lastError = err, tryNext(index + 1); + })); + })(0); + })); + }, Client.prototype._requestListWithCommand = function(command) { + var self = this, buffer = new StringWriter; + return downloadTo(buffer, { + ftp: this.ftp, + tracker: this._progressTracker, + command: command, + remotePath: "", + type: "list" + }).then((function() { + var text = buffer.getText(self.ftp.encoding); + return self.ftp.log(text), self.parseList(text); + })); + }, Client.prototype.removeDir = function(remoteDirPath) { + var self = this; + return this._exitAtCurrentDirectory((function() { + return self.cd(remoteDirPath).then((function() { + return self.pwd(); + })).then((function(absoluteDirPath) { + return self.clearWorkingDir().then((function() { + if ("/" !== absoluteDirPath) return self.cdup().then((function() { + return self.removeEmptyDir(absoluteDirPath); + })); + })); + })); + })); + }, Client.prototype.clearWorkingDir = function() { + var self = this; + return this.list().then((function(files) { + return promiseAllSequential(files, (function(file) { + return file.isDirectory() ? self.cd(file.name).then((function() { + return self.clearWorkingDir(); + })).then((function() { + return self.cdup(); + })).then((function() { + return self.removeEmptyDir(file.name); + })) : self.remove(file.name); + })); + })); + }, Client.prototype.uploadFromDir = function(localDirPath, remoteDirPath) { + var self = this; + return this._exitAtCurrentDirectory((function() { + return remoteDirPath ? self.ensureDir(remoteDirPath).then((function() { + return self._uploadToWorkingDir(localDirPath); + })) : self._uploadToWorkingDir(localDirPath); + })); + }, Client.prototype._uploadToWorkingDir = function(localDirPath) { + var self = this; + return fsReadDir(localDirPath).then((function(files) { + return promiseAllSequential(files, (function(file) { + var fullPath = path.join(localDirPath, file); + return fsStat(fullPath).then((function(stats) { + return stats.isFile() ? self.uploadFrom(fullPath, file) : stats.isDirectory() ? self._openDir(file).then((function() { + return self._uploadToWorkingDir(fullPath); + })).then((function() { + return self.cdup(); + })) : void 0; + })); + })); + })); + }, Client.prototype.downloadToDir = function(localDirPath, remoteDirPath) { + var self = this; + return this._exitAtCurrentDirectory((function() { + return (remoteDirPath ? self.cd(remoteDirPath) : Promise.resolve()).then((function() { + return self._downloadFromWorkingDir(localDirPath); + })); + })); + }, Client.prototype._downloadFromWorkingDir = function(localDirPath) { + var dirPath, self = this; + return (dirPath = localDirPath, fsStat(dirPath).catch((function() { + return targetDir = dirPath, sep = path.sep, initDir = path.isAbsolute(targetDir) ? sep : "", + targetDir.split(sep).reduce((function(parentDir, childDir) { + var curDir = path.resolve(parentDir, childDir); + return fsStat(curDir).catch((function(err) { + if ("ENOENT" === err.code) return fsMkDir(curDir); + if ("EEXIST" === err.code) return Promise.resolve(); + throw err; + })).then((function() { + return curDir; + })); + }), initDir); + var targetDir, sep, initDir; + }))).then((function() { + return self.list(); + })).then((function(files) { + return promiseAllSequential(files, (function(file) { + var localPath = path.join(localDirPath, file.name); + return file.isDirectory() ? self.cd(file.name).then((function() { + return self._downloadFromWorkingDir(localPath); + })).then((function() { + return self.cdup(); + })) : file.isFile() ? self.downloadTo(localPath, file.name) : void 0; + })); + })); + }, Client.prototype.ensureDir = function(remoteDirPath) { + var self = this, promise = Promise.resolve(); + 0 === remoteDirPath.indexOf("/") && (promise = this.cd("/")); + var names = remoteDirPath.split("/").filter((function(name) { + return "" !== name; + })); + return promise.then((function() { + return promiseAllSequential(names, (function(name) { + return self._openDir(name); + })); + })); + }, Client.prototype._openDir = function(dirName) { + var self = this; + return this.sendIgnoringError("MKD " + dirName).then((function() { + return self.cd(dirName); + })); + }, Client.prototype.removeEmptyDir = function(path) { + var self = this; + return this.protectWhitespace(path).then((function(validPath) { + return self.send("RMD " + validPath); + })); + }, Client.prototype.protectWhitespace = function(path) { + return 0 !== path.indexOf(" ") ? Promise.resolve(path) : this.pwd().then((function(pwd) { + return ("/" === pwd.charAt(pwd.length - 1) ? pwd : pwd + "/") + path; + })); + }, Client.prototype._exitAtCurrentDirectory = function(func) { + var userDir, self = this; + return this.pwd().then((function(dir) { + return userDir = dir, func(); + })).then((function(result) { + return self.closed ? result : ignoreError((function() { + return self.cd(userDir); + })).then((function() { + return result; + })); + })).catch((function(err) { + if (!self.closed) return ignoreError((function() { + return self.cd(userDir); + })).then((function() { + throw err; + })); + throw err; + })); + }, Client.prototype._enterFirstCompatibleMode = function(strategies) { + var self = this; + return function(ftp) { + var lastError; + return ftp.log("Trying to find optimal transfer strategy..."), (function tryStrategy(index) { + if (index >= strategies.length) throw new Error("None of the available transfer strategies work. Last error: " + lastError); + return strategies[index](ftp).then((function(res) { + return ftp.log("Optimal transfer strategy found."), self.prepareTransfer = strategies[index], + res; + })).catch((function(err) { + return lastError = err, tryStrategy(index + 1); + })); + })(0); + }; + }, Client.prototype.upload = function(source, toRemotePath, options) { + return this.ftp.log("Warning: upload() has been deprecated, use uploadFrom()."), + this.uploadFrom(source, toRemotePath, options); + }, Client.prototype.append = function(source, toRemotePath, options) { + return this.ftp.log("Warning: append() has been deprecated, use appendFrom()."), + this.appendFrom(source, toRemotePath, options); + }, Client.prototype.download = function(destination, fromRemotePath, startAt) { + return this.ftp.log("Warning: download() has been deprecated, use downloadTo()."), + this.downloadTo(destination, fromRemotePath, startAt); + }, Client.prototype.uploadDir = function(localDirPath, remoteDirPath) { + return this.ftp.log("Warning: uploadDir() has been deprecated, use uploadFromDir()."), + this.uploadFromDir(localDirPath, remoteDirPath); + }, Client.prototype.downloadDir = function(localDirPath) { + return this.ftp.log("Warning: downloadDir() has been deprecated, use downloadToDir()."), + this.downloadToDir(localDirPath); + }, exports.Client = Client, exports.FTPContext = FTPContext, exports.FTPError = FTPError, + exports.FileInfo = FileInfo, exports.FileType = FileType, exports.parseList = parseList, + exports.enterPassiveModeIPv4 = enterPassiveModeIPv4, exports.enterPassiveModeIPv6 = enterPassiveModeIPv6, + exports.default = { + Client: Client, + FTPContext: FTPContext, + FTPError: FTPError, + FileInfo: FileInfo, + FileType: FileType, + parseList: parseList, + enterPassiveModeIPv4: enterPassiveModeIPv4, + enterPassiveModeIPv6: enterPassiveModeIPv6 + }; +}, function(module, exports, __webpack_require__) { + const mime = __webpack_require__(45); + module.exports = function(obj) { + return mime.lookup(obj.name) || "application/octet-stream"; + }; +}, function(module, exports, __webpack_require__) { + "use strict"; + function URLSearchParams(init) { + if (this._params = [], init) if ("string" == typeof init) { + 0 === init.indexOf("?") && (init = init.slice(1)); + for (var pairs = init.split("&"), i = 0; i < pairs.length; i++) { + var pair = pairs[i]; + if ("" !== pair) { + var key, value, separatorIndex = pair.indexOf("="); + -1 === separatorIndex ? (key = pair, value = "") : (key = pair.slice(0, separatorIndex), + value = pair.slice(separatorIndex + 1)), key = decodeURIComponent(key.replace(/\+/g, " ")), + value = decodeURIComponent(value.replace(/\+/g, " ")), this._params.push([ key, value ]); + } + } + } else if ("object" == typeof init && null !== init) for (var prop in init) Object.prototype.hasOwnProperty.call(init, prop) && this._params.push([ prop, String(init[prop]) ]); + } + function URL(urlString, base) { + if (!(this instanceof URL)) throw new TypeError("Failed to construct 'URL': Please use the 'new' operator."); + if (base) throw new Error("Base URL is not fully supported in this shim."); + var match = /^(?:([a-z][a-z0-9+.-]*):)?(?:\/\/)?(?:([^:@]*)?(?::([^:@]*))?@)?((?:[a-z0-9\u00a1-\uffff-.]*)*)(?::(\d*))?((?:\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?$/i.exec(urlString); + if (!match) throw new TypeError("Invalid URL: " + urlString); + var self = this; + self._protocol = match[1] ? match[1].toLowerCase() + ":" : "", self._username = match[2] ? decodeURIComponent(match[2]) : "", + self._password = match[3] ? decodeURIComponent(match[3]) : "", self._hostname = match[4] ? match[4].toLowerCase() : "", + self._port = match[5] || "", self._pathname = match[6] || (match[4] ? "/" : ""), + self._search = match[8] ? "?" + match[8] : "", self._hash = match[9] ? "#" + match[9] : "", + self._searchParams = new URLSearchParams(self._search), Object.defineProperty(this, "search", { + get: function() { + var s = self._searchParams.toString(); + return s ? "?" + s : ""; + }, + set: function(value) { + self._searchParams = new URLSearchParams(value); + } + }), Object.defineProperty(this, "href", { + get: function() { + var href = self.protocol + "//"; + return (self.username || self.password) && (href += self.username, self.password && (href += ":" + self.password), + href += "@"), href += self.hostname, self.port && (href += ":" + self.port), href + (self.pathname + self.search + self.hash); + }, + set: function(value) { + var newUrl = new URL(value); + self._protocol = newUrl._protocol, self._username = newUrl._username, self._password = newUrl._password, + self._hostname = newUrl._hostname, self._port = newUrl._port, self._pathname = newUrl._pathname, + self.search = newUrl._search, self._hash = newUrl._hash; + } + }); + } + URLSearchParams.prototype.append = function(name, value) { + this._params.push([ name, value ]); + }, URLSearchParams.prototype.delete = function(name) { + this._params = this._params.filter((function(pair) { + return pair[0] !== name; + })); + }, URLSearchParams.prototype.get = function(name) { + for (var i = 0; i < this._params.length; i++) if (this._params[i][0] === name) return this._params[i][1]; + return null; + }, URLSearchParams.prototype.getAll = function(name) { + for (var result = [], i = 0; i < this._params.length; i++) this._params[i][0] === name && result.push(this._params[i][1]); + return result; + }, URLSearchParams.prototype.has = function(name) { + for (var i = 0; i < this._params.length; i++) if (this._params[i][0] === name) return !0; + return !1; + }, URLSearchParams.prototype.set = function(name, value) { + for (var found = !1, i = 0; i < this._params.length; i++) this._params[i][0] === name && (found ? (this._params.splice(i, 1), + i--) : (this._params[i][1] = value, found = !0)); + found || this.append(name, value); + }, URLSearchParams.prototype.toString = function() { + return this._params.map((function(pair) { + return encodeURIComponent(pair[0]).replace(/%20/g, "+") + "=" + encodeURIComponent(pair[1]).replace(/%20/g, "+"); + })).join("&"); + }; + for (var readonly_props = [ "protocol", "hostname", "port", "pathname", "hash", "searchParams", "username", "password" ], j = 0; j < readonly_props.length; j++) !(function(prop) { + Object.defineProperty(URL.prototype, prop, { + get: function() { + return this["_" + prop]; + }, + enumerable: !0 + }); + })(readonly_props[j]); + Object.defineProperty(URL.prototype, "host", { + get: function() { + return this._hostname + (this._port ? ":" + this._port : ""); + }, + enumerable: !0 + }), Object.defineProperty(URL.prototype, "origin", { + get: function() { + return this._protocol + "//" + this.host; + }, + enumerable: !0 + }), URL.prototype.toString = function() { + return this.href; + }, URL.prototype.toJSON = function() { + return this.href; + }, module.exports = { + URL: URL, + URLSearchParams: URLSearchParams + }; } ]); \ No newline at end of file