{"version":3,"sources":["webpack:///./node_modules/string-convert/camel2hyphen.js","webpack:///./node_modules/sha.js/sha.js","webpack:///./node_modules/url/url.js","webpack:///./node_modules/shallowequal/index.js","webpack:///./node_modules/uint8arrays/cjs/src/index.js","webpack:///./node_modules/swarm-js/lib/api-browser.js","webpack:///./node_modules/url/util.js","webpack:///./node_modules/sha.js/sha512.js","webpack:///./node_modules/strict-uri-encode/index.js","webpack:///./node_modules/tinycolor2/tinycolor.js","webpack:///./node_modules/uint8arrays/cjs/src/alloc.js","webpack:///./node_modules/swarm-js/lib/swarm-hash.js","webpack:///./node_modules/sha.js/index.js","webpack:///./node_modules/sha.js/sha224.js","webpack:///./node_modules/string_decoder/lib/string_decoder.js","webpack:///./node_modules/sha.js/sha1.js","webpack:///./node_modules/strip-hex-prefix/src/index.js","webpack:///./node_modules/stream-http/lib/request.js","webpack:///./node_modules/stream-http/index.js","webpack:///./node_modules/swarm-js/node_modules/eth-lib/lib/array.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/swarm-js/node_modules/eth-lib/lib/hash.js","webpack:///./node_modules/skeleton-loader-vue/dist/skeleton-loader-vue.esm.js","webpack:///./node_modules/sha.js/sha256.js","webpack:///./node_modules/uint8arrays/cjs/src/concat.js","webpack:///./node_modules/stream-http/lib/capability.js","webpack:///./node_modules/swarm-js/lib/swarm.js","webpack:///./node_modules/uint8arrays/cjs/src/equals.js","webpack:///./node_modules/sha.js/hash.js","webpack:///./node_modules/sha.js/sha384.js","webpack:///./node_modules/uint8arrays/cjs/src/compare.js","webpack:///./node_modules/swarm-js/node_modules/eth-lib/lib/bytes.js","webpack:///./node_modules/uint8arrays/cjs/src/from-string.js","webpack:///./node_modules/shallow-equal/arrays/index.js","webpack:///./node_modules/uint8arrays/cjs/src/util/bases.js","webpack:///./node_modules/stream-http/lib/response.js","webpack:///./node_modules/uint8arrays/cjs/src/util/as-uint8array.js","webpack:///./node_modules/url-set-query/index.js","webpack:///./node_modules/stream-browserify/index.js","webpack:///./node_modules/to-arraybuffer/index.js","webpack:///./node_modules/uint8arrays/cjs/src/xor.js","webpack:///./node_modules/swarm-js/lib/pick.js","webpack:///./node_modules/uint8arrays/cjs/src/to-string.js","webpack:///./node_modules/split-on-first/index.js"],"names":["module","exports","str","replace","match","toLowerCase","inherits","r","Hash","Buffer","K","W","Array","Sha","this","init","_w","call","rotl5","num","rotl30","ft","s","b","c","d","prototype","_a","_b","_c","_d","_e","_update","M","a","e","i","readInt32BE","j","t","_hash","H","allocUnsafe","writeInt32BE","punycode","util","Url","protocol","slashes","auth","host","port","hostname","hash","search","query","pathname","path","href","parse","urlParse","resolve","source","relative","resolveObject","format","obj","isString","protocolPattern","portPattern","simplePathPattern","unwise","concat","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","querystring","url","parseQueryString","slashesDenoteHost","isObject","u","TypeError","queryIndex","indexOf","splitter","uSplit","split","rest","join","trim","length","simplePath","exec","substr","proto","lowerProto","atSign","hostEnd","hec","lastIndexOf","slice","decodeURIComponent","parseHost","ipv6Hostname","hostparts","l","part","newpart","k","charCodeAt","validParts","notHost","bit","push","unshift","toASCII","p","h","ae","esc","encodeURIComponent","escape","qm","Object","keys","stringify","charAt","rel","result","tkeys","tk","tkey","rkeys","rk","rkey","v","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","pop","isNullOrUndefined","authInHost","isNull","last","hasTrailingSlash","up","splice","isAbsolute","objA","objB","compare","compareContext","ret","keysA","keysB","bHasOwnProperty","hasOwnProperty","bind","idx","key","valueA","valueB","defineProperty","value","equals","fromString","toString","xor","unavailable","fs","readFile","files","download","safeDownloadArchived","directoryTree","os","platform","arch","child_process","spawn","mimetype","lookup","request","bytes","pick","swarm","defaultArchives","downloadUrl","arg","Sha512","Ch","x","y","z","maj","sigma0","xl","sigma1","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","ah","bh","ch","dh","eh","fh","gh","hh","al","bl","cl","dl","el","fl","gl","hl","xh","gamma0","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","writeInt64BE","offset","toUpperCase","Math","trimLeft","trimRight","tinyCounter","mathRound","round","mathMin","min","mathMax","max","mathRandom","random","tinycolor","color","opts","rgb","g","ok","stringInputToObject","isValidCSSUnit","bound01","rgbToRgb","String","convertToPercentage","hsvToRgb","hue2rgb","q","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","rgbToHsl","rgbToHsv","floor","f","mod","rgbToHex","allow3Char","hex","pad2","rgbaToArgbHex","convertDecimalToHex","desaturate","amount","hsl","toHsl","clamp01","saturate","greyscale","lighten","brighten","toRgb","darken","spin","hue","complement","triad","tetrad","splitcomplement","analogous","results","slices","monochromatic","hsv","toHsv","modification","isDark","getBrightness","isLight","isValid","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","pow","setAlpha","toHsvString","toHslString","toHex","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","clone","_applyModification","fn","args","apply","arguments","_applyCombination","fromRatio","newColor","color1","color2","mix","rgb1","rgb2","readability","c1","c2","isReadable","wcag2","wcag2Parms","out","parms","level","size","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","names","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","o","flipped","flip","parseFloat","isNaN","n","isOnePointZero","processPercent","isPercentage","parseInt","abs","val","parseIntFromHex","convertHexToDecimal","matchers","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","RegExp","rgba","hsla","hsva","hex3","hex6","hex4","hex8","named","asUint8array","alloc","globalThis","asUint8Array","Uint8Array","keccak","keccak256","Bytes","swarmHashBlock","data","lengthEncoded","reverse","pad","fromNumber","flatten","swarmHash","fromUint8Array","maxSize","innerNodes","algorithm","Algorithm","Error","sha","sha1","sha224","sha256","sha384","sha512","Sha256","Sha224","_f","_h","isEncoding","encoding","StringDecoder","nb","enc","nenc","retried","_normalizeEncoding","normalizeEncoding","text","utf16Text","end","utf16End","fillLast","utf8FillLast","base64Text","base64End","write","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","buf","self","utf8CheckExtraBytes","copy","total","utf8CheckIncomplete","Sha1","rotl1","isHexPrefixed","response","stream","toArrayBuffer","IncomingMessage","rStates","readyStates","ClientRequest","preferBinary","Writable","_opts","_body","_headers","setHeader","headers","forEach","name","useFetch","mode","capability","abortController","overrideMimeType","_mode","fetch","mozchunkedarraybuffer","msstream","arraybuffer","vbArray","decideMode","_fetchTimer","on","_onFinish","lowerName","unsafeHeaders","getHeader","header","removeHeader","_destroyed","headersObj","body","method","blobConstructor","global","Blob","map","buffer","type","headersList","keyName","isArray","signal","controller","AbortController","_fetchAbortController","requestTimeout","setTimeout","emit","abort","credentials","withCredentials","then","_fetchResponse","_connect","reason","clearTimeout","xhr","_xhr","XMLHttpRequest","open","err","process","nextTick","responseType","timeout","ontimeout","setRequestHeader","_response","onreadystatechange","readyState","LOADING","DONE","_onXHRProgress","onprogress","onerror","send","status","statusValid","_write","chunk","cb","destroy","flushHeaders","setNoDelay","setSocketKeepAlive","extend","statusCodes","http","defaultProtocol","location","req","get","Agent","defaultMaxSockets","globalAgent","STATUS_CODES","METHODS","generate","replicate","J","I","chunksOf","extendStatics","setPrototypeOf","__proto__","__extends","__","constructor","create","__assign","assign","__rest","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","target","desc","getOwnPropertyDescriptor","Reflect","decorate","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","adopt","Promise","reject","fulfilled","step","next","rejected","done","__generator","_","label","sent","trys","ops","verb","Symbol","iterator","op","__createBinding","m","k2","__exportStar","__values","__read","ar","error","__spread","__spreadArrays","il","jl","__await","__asyncGenerator","asyncIterator","resume","fulfill","settle","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__importStar","__esModule","default","__importDefault","__classPrivateFieldGet","receiver","privateMap","has","__classPrivateFieldSet","set","HEX_CHARS","KECCAK_PADDING","SHIFT","RC","update","state","message","code","blocks","byteCount","blockCount","outputBlocks","index","reset","block","start","lastByteIndex","c0","c3","c4","c5","c6","c7","c8","c9","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","b16","b17","b18","b19","b20","b21","b22","b23","b24","b25","b26","b27","b28","b29","b30","b31","b32","b33","b34","b35","b36","b37","b38","b39","b40","b41","b42","b43","b44","b45","b46","b47","b48","b49","bits","msg","Keccak","keccak512","keccak256s","keccak512s","script","props","height","Number","width","animation","computed","bindClass","mounted","background","loader","$el","style","setProperty","normalizeComponent","template","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","options","hook","render","staticRenderFns","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","existing","beforeCreate","isOldIE","navigator","test","userAgent","id","css","group","media","styles","ids","Set","sources","btoa","unescape","JSON","element","document","createElement","setAttribute","HEAD","head","getElementsByTagName","appendChild","styleSheet","cssText","filter","Boolean","textNode","createTextNode","nodes","childNodes","removeChild","insertBefore","addStyle","__vue_component__","_vm","$createElement","_self","staticClass","class","inject","__vue_is_functional_template__","__vue_module_identifier__","undefined","script$1","rounded","radius","borderRadius","__vue_component__$1","__vue_is_functional_template__$1","__vue_module_identifier__$1","__vue_component__$2","attrs","loaderWidth","loaderHeight","components","CircleLoader","SquareLoader","waveColor","__vue_scope_id__$2","__vue_is_functional_template__$2","__vue_module_identifier__$2","install","Vue","installed","component","T1","T2","arrays","reduce","acc","curr","output","arr","writableStream","isFunction","WritableStream","ArrayBuffer","getXHR","XDomainRequest","checkTypeSupport","haveArrayBuffer","haveSlice","VBArray","_ref","toMap","vals","rawUrl","swarmUrl","downloadData","arrayBuffer","statusCode","downloadEntries","routes","downloadEntry","entry","contentType","impureInsert","entries","all","downloadRoutes","route","downloadDirectory","paths","hashs","types","datas","downloadDataToDisk","filePath","downloadDirectoryToDisk","dirPath","routingTable","downloads","uploadData","params","uploadToManifest","file","attempt","slashRoute","opt","uploadFile","uploadDirectory","uploadFileFromDisk","directory","uploadRoute","uploadDataFromDisk","uploadDirectoryFromDisk","defaultPath","fullPaths","_key","merge","_upload","kind","defaultFile","_download","isDirectory","isDir","downloadBinary","archives","system","archive","archiveUrl","archiveMD5","binaryMD5","startProcess","swarmSetup","hasString","account","password","dataDir","ensApi","privateKey","swarmProcess","binPath","handleProcessOutput","stdin","stdout","stderr","stopProcess","removeAllListeners","kill","killTimeout","once","_isAvailable","uncurry","uint8Array","string","toUint8Array","at","isAvailable","upload","local","useAPI","onData","onProgress","byteLength","blockSize","finalSize","_block","_finalSize","_blockSize","_len","from","accum","assigned","remainder","digest","rem","fill","writeUInt32BE","lowBits","highBits","SHA512","Sha384","toArray","fromArray","rnd","window","crypto","getRandomValues","randomBytes","bs","rev","padRight","fromAscii","ascii","toAscii","fromCharCode","makeByte","uint8","ci","toNumber","fromNat","bn","toNat","bases","base","decoder","decode","prefix","arrA","arrB","len","basics","createCodec","encode","encoder","TextDecoder","TextEncoder","substring","BASES","utf8","base16","latin1","binary","UNSENT","OPENED","HEADERS_RECEIVED","fetchTimer","Readable","rawHeaders","trailers","rawTrailers","statusMessage","statusText","writable","_resumeFetch","close","pipeTo","catch","reader","getReader","read","_pos","responseURL","getAllResponseHeaders","matches","_charset","mimeType","charsetMatch","_read","responseBody","responseText","newData","MSStreamReader","onload","readAsArrayBuffer","byteOffset","Stream","EE","EventEmitter","Duplex","Transform","PassThrough","pipe","dest","ondata","pause","ondrain","readable","_isStdio","onend","onclose","didOnEnd","er","cleanup","listenerCount","removeListener","isBuffer","arrayCopy","picker","fileInput","fileLoader","totalFiles","loadedFiles","FileReader","webkitRelativePath","_path","addEventListener","webkitdirectory","mozdirectory","msdirectory","odirectory","mouseEvent","createEvent","initEvent","dispatchEvent","array","separator","separatorIndex"],"mappings":"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","file":"js/chunk-vendors~ec8c427e.007ab6aa.js","sourcesContent":["var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar compare = require('./compare.js');\nvar concat = require('./concat.js');\nvar equals = require('./equals.js');\nvar fromString = require('./from-string.js');\nvar toString = require('./to-string.js');\nvar xor = require('./xor.js');\n\n\n\nexports.compare = compare.compare;\nexports.concat = concat.concat;\nexports.equals = equals.equals;\nexports.fromString = fromString.fromString;\nexports.toString = toString.toString;\nexports.xor = xor.xor;\n","var unavailable = function unavailable() {\n throw \"This swarm.js function isn't available on the browser.\";\n};\n\nvar fs = {\n readFile: unavailable\n};\nvar files = {\n download: unavailable,\n safeDownloadArchived: unavailable,\n directoryTree: unavailable\n};\nvar os = {\n platform: unavailable,\n arch: unavailable\n};\nvar path = {\n join: unavailable,\n slice: unavailable\n};\nvar child_process = {\n spawn: unavailable\n};\nvar mimetype = {\n lookup: unavailable\n};\nvar defaultArchives = {};\nvar downloadUrl = null;\n\nvar request = require(\"xhr-request\");\n\nvar bytes = require(\"eth-lib/lib/bytes\");\n\nvar hash = require(\"./swarm-hash.js\");\n\nvar pick = require(\"./pick.js\");\n\nvar swarm = require(\"./swarm\");\n\nmodule.exports = swarm({\n fs: fs,\n files: files,\n os: os,\n path: path,\n child_process: child_process,\n defaultArchives: defaultArchives,\n mimetype: mimetype,\n request: request,\n downloadUrl: downloadUrl,\n bytes: bytes,\n hash: hash,\n pick: pick\n});","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n","// TinyColor v1.4.2\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar asUint8array = require('./util/as-uint8array.js');\n\nfunction alloc(size = 0) {\n if (globalThis.Buffer != null && globalThis.Buffer.alloc != null) {\n return asUint8array.asUint8Array(globalThis.Buffer.alloc(size));\n }\n return new Uint8Array(size);\n}\nfunction allocUnsafe(size = 0) {\n if (globalThis.Buffer != null && globalThis.Buffer.allocUnsafe != null) {\n return asUint8array.asUint8Array(globalThis.Buffer.allocUnsafe(size));\n }\n return new Uint8Array(size);\n}\n\nexports.alloc = alloc;\nexports.allocUnsafe = allocUnsafe;\n","// Thanks https://github.com/axic/swarmhash\nvar keccak = require(\"eth-lib/lib/hash\").keccak256;\n\nvar Bytes = require(\"eth-lib/lib/bytes\");\n\nvar swarmHashBlock = function swarmHashBlock(length, data) {\n var lengthEncoded = Bytes.reverse(Bytes.pad(6, Bytes.fromNumber(length)));\n var bytes = Bytes.flatten([lengthEncoded, \"0x0000\", data]);\n return keccak(bytes).slice(2);\n}; // (Bytes | Uint8Array | String) -> String\n\n\nvar swarmHash = function swarmHash(data) {\n if (typeof data === \"string\" && data.slice(0, 2) !== \"0x\") {\n data = Bytes.fromString(data);\n } else if (typeof data !== \"string\" && data.length !== undefined) {\n data = Bytes.fromUint8Array(data);\n }\n\n var length = Bytes.length(data);\n\n if (length <= 4096) {\n return swarmHashBlock(length, data);\n }\n\n var maxSize = 4096;\n\n while (maxSize * (4096 / 32) < length) {\n maxSize *= 4096 / 32;\n }\n\n var innerNodes = [];\n\n for (var i = 0; i < length; i += maxSize) {\n var size = maxSize < length - i ? maxSize : length - i;\n innerNodes.push(swarmHash(Bytes.slice(data, i, i + size)));\n }\n\n return swarmHashBlock(length, Bytes.flatten(innerNodes));\n};\n\nmodule.exports = swarmHash;","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","var isHexPrefixed = require('is-hex-prefixed');\n\n/**\n * Removes '0x' from a given `String` is present\n * @param {String} str the string value\n * @return {String|Optional} a string by pass if necessary\n */\nmodule.exports = function stripHexPrefix(str) {\n if (typeof str !== 'string') {\n return str;\n }\n\n return isHexPrefixed(str) ? str.slice(2) : str;\n}\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar response = require('./response')\nvar stream = require('readable-stream')\nvar toArrayBuffer = require('to-arraybuffer')\n\nvar IncomingMessage = response.IncomingMessage\nvar rStates = response.readyStates\n\nfunction decideMode (preferBinary, useFetch) {\n\tif (capability.fetch && useFetch) {\n\t\treturn 'fetch'\n\t} else if (capability.mozchunkedarraybuffer) {\n\t\treturn 'moz-chunked-arraybuffer'\n\t} else if (capability.msstream) {\n\t\treturn 'ms-stream'\n\t} else if (capability.arraybuffer && preferBinary) {\n\t\treturn 'arraybuffer'\n\t} else if (capability.vbArray && preferBinary) {\n\t\treturn 'text:vbarray'\n\t} else {\n\t\treturn 'text'\n\t}\n}\n\nvar ClientRequest = module.exports = function (opts) {\n\tvar self = this\n\tstream.Writable.call(self)\n\n\tself._opts = opts\n\tself._body = []\n\tself._headers = {}\n\tif (opts.auth)\n\t\tself.setHeader('Authorization', 'Basic ' + new Buffer(opts.auth).toString('base64'))\n\tObject.keys(opts.headers).forEach(function (name) {\n\t\tself.setHeader(name, opts.headers[name])\n\t})\n\n\tvar preferBinary\n\tvar useFetch = true\n\tif (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) {\n\t\t// If the use of XHR should be preferred. Not typically needed.\n\t\tuseFetch = false\n\t\tpreferBinary = true\n\t} else if (opts.mode === 'prefer-streaming') {\n\t\t// If streaming is a high priority but binary compatibility and\n\t\t// the accuracy of the 'content-type' header aren't\n\t\tpreferBinary = false\n\t} else if (opts.mode === 'allow-wrong-content-type') {\n\t\t// If streaming is more important than preserving the 'content-type' header\n\t\tpreferBinary = !capability.overrideMimeType\n\t} else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n\t\t// Use binary if text streaming may corrupt data or the content-type header, or for speed\n\t\tpreferBinary = true\n\t} else {\n\t\tthrow new Error('Invalid value for opts.mode')\n\t}\n\tself._mode = decideMode(preferBinary, useFetch)\n\tself._fetchTimer = null\n\n\tself.on('finish', function () {\n\t\tself._onFinish()\n\t})\n}\n\ninherits(ClientRequest, stream.Writable)\n\nClientRequest.prototype.setHeader = function (name, value) {\n\tvar self = this\n\tvar lowerName = name.toLowerCase()\n\t// This check is not necessary, but it prevents warnings from browsers about setting unsafe\n\t// headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n\t// http-browserify did it, so I will too.\n\tif (unsafeHeaders.indexOf(lowerName) !== -1)\n\t\treturn\n\n\tself._headers[lowerName] = {\n\t\tname: name,\n\t\tvalue: value\n\t}\n}\n\nClientRequest.prototype.getHeader = function (name) {\n\tvar header = this._headers[name.toLowerCase()]\n\tif (header)\n\t\treturn header.value\n\treturn null\n}\n\nClientRequest.prototype.removeHeader = function (name) {\n\tvar self = this\n\tdelete self._headers[name.toLowerCase()]\n}\n\nClientRequest.prototype._onFinish = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\tvar opts = self._opts\n\n\tvar headersObj = self._headers\n\tvar body = null\n\tif (opts.method !== 'GET' && opts.method !== 'HEAD') {\n\t\tif (capability.arraybuffer) {\n\t\t\tbody = toArrayBuffer(Buffer.concat(self._body))\n\t\t} else if (capability.blobConstructor) {\n\t\t\tbody = new global.Blob(self._body.map(function (buffer) {\n\t\t\t\treturn toArrayBuffer(buffer)\n\t\t\t}), {\n\t\t\t\ttype: (headersObj['content-type'] || {}).value || ''\n\t\t\t})\n\t\t} else {\n\t\t\t// get utf8 string\n\t\t\tbody = Buffer.concat(self._body).toString()\n\t\t}\n\t}\n\n\t// create flattened list of headers\n\tvar headersList = []\n\tObject.keys(headersObj).forEach(function (keyName) {\n\t\tvar name = headersObj[keyName].name\n\t\tvar value = headersObj[keyName].value\n\t\tif (Array.isArray(value)) {\n\t\t\tvalue.forEach(function (v) {\n\t\t\t\theadersList.push([name, v])\n\t\t\t})\n\t\t} else {\n\t\t\theadersList.push([name, value])\n\t\t}\n\t})\n\n\tif (self._mode === 'fetch') {\n\t\tvar signal = null\n\t\tvar fetchTimer = null\n\t\tif (capability.abortController) {\n\t\t\tvar controller = new AbortController()\n\t\t\tsignal = controller.signal\n\t\t\tself._fetchAbortController = controller\n\n\t\t\tif ('requestTimeout' in opts && opts.requestTimeout !== 0) {\n\t\t\t\tself._fetchTimer = global.setTimeout(function () {\n\t\t\t\t\tself.emit('requestTimeout')\n\t\t\t\t\tif (self._fetchAbortController)\n\t\t\t\t\t\tself._fetchAbortController.abort()\n\t\t\t\t}, opts.requestTimeout)\n\t\t\t}\n\t\t}\n\n\t\tglobal.fetch(self._opts.url, {\n\t\t\tmethod: self._opts.method,\n\t\t\theaders: headersList,\n\t\t\tbody: body || undefined,\n\t\t\tmode: 'cors',\n\t\t\tcredentials: opts.withCredentials ? 'include' : 'same-origin',\n\t\t\tsignal: signal\n\t\t}).then(function (response) {\n\t\t\tself._fetchResponse = response\n\t\t\tself._connect()\n\t\t}, function (reason) {\n\t\t\tglobal.clearTimeout(self._fetchTimer)\n\t\t\tif (!self._destroyed)\n\t\t\t\tself.emit('error', reason)\n\t\t})\n\t} else {\n\t\tvar xhr = self._xhr = new global.XMLHttpRequest()\n\t\ttry {\n\t\t\txhr.open(self._opts.method, self._opts.url, true)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Can't set responseType on really old browsers\n\t\tif ('responseType' in xhr)\n\t\t\txhr.responseType = self._mode.split(':')[0]\n\n\t\tif ('withCredentials' in xhr)\n\t\t\txhr.withCredentials = !!opts.withCredentials\n\n\t\tif (self._mode === 'text' && 'overrideMimeType' in xhr)\n\t\t\txhr.overrideMimeType('text/plain; charset=x-user-defined')\n\n\t\tif ('requestTimeout' in opts) {\n\t\t\txhr.timeout = opts.requestTimeout\n\t\t\txhr.ontimeout = function () {\n\t\t\t\tself.emit('requestTimeout')\n\t\t\t}\n\t\t}\n\n\t\theadersList.forEach(function (header) {\n\t\t\txhr.setRequestHeader(header[0], header[1])\n\t\t})\n\n\t\tself._response = null\n\t\txhr.onreadystatechange = function () {\n\t\t\tswitch (xhr.readyState) {\n\t\t\t\tcase rStates.LOADING:\n\t\t\t\tcase rStates.DONE:\n\t\t\t\t\tself._onXHRProgress()\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Necessary for streaming in Firefox, since xhr.response is ONLY defined\n\t\t// in onprogress, not in onreadystatechange with xhr.readyState = 3\n\t\tif (self._mode === 'moz-chunked-arraybuffer') {\n\t\t\txhr.onprogress = function () {\n\t\t\t\tself._onXHRProgress()\n\t\t\t}\n\t\t}\n\n\t\txhr.onerror = function () {\n\t\t\tif (self._destroyed)\n\t\t\t\treturn\n\t\t\tself.emit('error', new Error('XHR error'))\n\t\t}\n\n\t\ttry {\n\t\t\txhr.send(body)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t}\n}\n\n/**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\nfunction statusValid (xhr) {\n\ttry {\n\t\tvar status = xhr.status\n\t\treturn (status !== null && status !== 0)\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\nClientRequest.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tif (!statusValid(self._xhr) || self._destroyed)\n\t\treturn\n\n\tif (!self._response)\n\t\tself._connect()\n\n\tself._response._onXHRProgress()\n}\n\nClientRequest.prototype._connect = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\n\tself._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._fetchTimer)\n\tself._response.on('error', function(err) {\n\t\tself.emit('error', err)\n\t})\n\n\tself.emit('response', self._response)\n}\n\nClientRequest.prototype._write = function (chunk, encoding, cb) {\n\tvar self = this\n\n\tself._body.push(chunk)\n\tcb()\n}\n\nClientRequest.prototype.abort = ClientRequest.prototype.destroy = function () {\n\tvar self = this\n\tself._destroyed = true\n\tglobal.clearTimeout(self._fetchTimer)\n\tif (self._response)\n\t\tself._response._destroyed = true\n\tif (self._xhr)\n\t\tself._xhr.abort()\n\telse if (self._fetchAbortController)\n\t\tself._fetchAbortController.abort()\n}\n\nClientRequest.prototype.end = function (data, encoding, cb) {\n\tvar self = this\n\tif (typeof data === 'function') {\n\t\tcb = data\n\t\tdata = undefined\n\t}\n\n\tstream.Writable.prototype.end.call(self, data, encoding, cb)\n}\n\nClientRequest.prototype.flushHeaders = function () {}\nClientRequest.prototype.setTimeout = function () {}\nClientRequest.prototype.setNoDelay = function () {}\nClientRequest.prototype.setSocketKeepAlive = function () {}\n\n// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\nvar unsafeHeaders = [\n\t'accept-charset',\n\t'accept-encoding',\n\t'access-control-request-headers',\n\t'access-control-request-method',\n\t'connection',\n\t'content-length',\n\t'cookie',\n\t'cookie2',\n\t'date',\n\t'dnt',\n\t'expect',\n\t'host',\n\t'keep-alive',\n\t'origin',\n\t'referer',\n\t'te',\n\t'trailer',\n\t'transfer-encoding',\n\t'upgrade',\n\t'via'\n]\n","var ClientRequest = require('./lib/request')\nvar response = require('./lib/response')\nvar extend = require('xtend')\nvar statusCodes = require('builtin-status-codes')\nvar url = require('url')\n\nvar http = exports\n\nhttp.request = function (opts, cb) {\n\tif (typeof opts === 'string')\n\t\topts = url.parse(opts)\n\telse\n\t\topts = extend(opts)\n\n\t// Normally, the page is loaded from http or https, so not specifying a protocol\n\t// will result in a (valid) protocol-relative url. However, this won't work if\n\t// the protocol is something else, like 'file:'\n\tvar defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''\n\n\tvar protocol = opts.protocol || defaultProtocol\n\tvar host = opts.hostname || opts.host\n\tvar port = opts.port\n\tvar path = opts.path || '/'\n\n\t// Necessary for IPv6 addresses\n\tif (host && host.indexOf(':') !== -1)\n\t\thost = '[' + host + ']'\n\n\t// This may be a relative url. The browser should always be able to interpret it correctly.\n\topts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path\n\topts.method = (opts.method || 'GET').toUpperCase()\n\topts.headers = opts.headers || {}\n\n\t// Also valid opts.auth, opts.mode\n\n\tvar req = new ClientRequest(opts)\n\tif (cb)\n\t\treq.on('response', cb)\n\treturn req\n}\n\nhttp.get = function get (opts, cb) {\n\tvar req = http.request(opts, cb)\n\treq.end()\n\treturn req\n}\n\nhttp.ClientRequest = ClientRequest\nhttp.IncomingMessage = response.IncomingMessage\n\nhttp.Agent = function () {}\nhttp.Agent.defaultMaxSockets = 4\n\nhttp.globalAgent = new http.Agent()\n\nhttp.STATUS_CODES = statusCodes\n\nhttp.METHODS = [\n\t'CHECKOUT',\n\t'CONNECT',\n\t'COPY',\n\t'DELETE',\n\t'GET',\n\t'HEAD',\n\t'LOCK',\n\t'M-SEARCH',\n\t'MERGE',\n\t'MKACTIVITY',\n\t'MKCOL',\n\t'MOVE',\n\t'NOTIFY',\n\t'OPTIONS',\n\t'PATCH',\n\t'POST',\n\t'PROPFIND',\n\t'PROPPATCH',\n\t'PURGE',\n\t'PUT',\n\t'REPORT',\n\t'SEARCH',\n\t'SUBSCRIBE',\n\t'TRACE',\n\t'UNLOCK',\n\t'UNSUBSCRIBE'\n]","var generate = function generate(num, fn) {\n var a = [];\n for (var i = 0; i < num; ++i) {\n a.push(fn(i));\n }return a;\n};\n\nvar replicate = function replicate(num, val) {\n return generate(num, function () {\n return val;\n });\n};\n\nvar concat = function concat(a, b) {\n return a.concat(b);\n};\n\nvar flatten = function flatten(a) {\n var r = [];\n for (var j = 0, J = a.length; j < J; ++j) {\n for (var i = 0, I = a[j].length; i < I; ++i) {\n r.push(a[j][i]);\n }\n }return r;\n};\n\nvar chunksOf = function chunksOf(n, a) {\n var b = [];\n for (var i = 0, l = a.length; i < l; i += n) {\n b.push(a.slice(i, i + n));\n }return b;\n};\n\nmodule.exports = {\n generate: generate,\n replicate: replicate,\n concat: concat,\n flatten: flatten,\n chunksOf: chunksOf\n};","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","// This was ported from https://github.com/emn178/js-sha3, with some minor\n// modifications and pruning. It is licensed under MIT:\n//\n// Copyright 2015-2016 Chen, Yi-Cyuan\n// \n// Permission is hereby granted, free of charge, to any person obtaining\n// a copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to\n// permit persons to whom the Software is furnished to do so, subject to\n// the following conditions:\n// \n// The above copyright notice and this permission notice shall be\n// included in all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar HEX_CHARS = '0123456789abcdef'.split('');\nvar KECCAK_PADDING = [1, 256, 65536, 16777216];\nvar SHIFT = [0, 8, 16, 24];\nvar RC = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649, 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0, 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771, 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648, 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648];\n\nvar Keccak = function Keccak(bits) {\n return {\n blocks: [],\n reset: true,\n block: 0,\n start: 0,\n blockCount: 1600 - (bits << 1) >> 5,\n outputBlocks: bits >> 5,\n s: function (s) {\n return [].concat(s, s, s, s, s);\n }([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n };\n};\n\nvar update = function update(state, message) {\n var length = message.length,\n blocks = state.blocks,\n byteCount = state.blockCount << 2,\n blockCount = state.blockCount,\n outputBlocks = state.outputBlocks,\n s = state.s,\n index = 0,\n i,\n code;\n\n // update\n while (index < length) {\n if (state.reset) {\n state.reset = false;\n blocks[0] = state.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (typeof message !== \"string\") {\n for (i = state.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = state.start; index < length && i < byteCount; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | code >> 6) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code & 0x3f) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | code >> 12) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code >> 6 & 0x3f) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code & 0x3f) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + ((code & 0x3ff) << 10 | message.charCodeAt(++index) & 0x3ff);\n blocks[i >> 2] |= (0xf0 | code >> 18) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code >> 12 & 0x3f) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code >> 6 & 0x3f) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code & 0x3f) << SHIFT[i++ & 3];\n }\n }\n }\n state.lastByteIndex = i;\n if (i >= byteCount) {\n state.start = i - byteCount;\n state.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n state.reset = true;\n } else {\n state.start = i;\n }\n }\n\n // finalize\n i = state.lastByteIndex;\n blocks[i >> 2] |= KECCAK_PADDING[i & 3];\n if (state.lastByteIndex === byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n\n // toString\n var hex = '',\n i = 0,\n j = 0,\n block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex += HEX_CHARS[block >> 4 & 0x0F] + HEX_CHARS[block & 0x0F] + HEX_CHARS[block >> 12 & 0x0F] + HEX_CHARS[block >> 8 & 0x0F] + HEX_CHARS[block >> 20 & 0x0F] + HEX_CHARS[block >> 16 & 0x0F] + HEX_CHARS[block >> 28 & 0x0F] + HEX_CHARS[block >> 24 & 0x0F];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n return \"0x\" + hex;\n};\n\nvar f = function f(s) {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ (c2 << 1 | c3 >>> 31);\n l = c9 ^ (c3 << 1 | c2 >>> 31);\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ (c4 << 1 | c5 >>> 31);\n l = c1 ^ (c5 << 1 | c4 >>> 31);\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ (c6 << 1 | c7 >>> 31);\n l = c3 ^ (c7 << 1 | c6 >>> 31);\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ (c8 << 1 | c9 >>> 31);\n l = c5 ^ (c9 << 1 | c8 >>> 31);\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ (c0 << 1 | c1 >>> 31);\n l = c7 ^ (c1 << 1 | c0 >>> 31);\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = s[11] << 4 | s[10] >>> 28;\n b33 = s[10] << 4 | s[11] >>> 28;\n b14 = s[20] << 3 | s[21] >>> 29;\n b15 = s[21] << 3 | s[20] >>> 29;\n b46 = s[31] << 9 | s[30] >>> 23;\n b47 = s[30] << 9 | s[31] >>> 23;\n b28 = s[40] << 18 | s[41] >>> 14;\n b29 = s[41] << 18 | s[40] >>> 14;\n b20 = s[2] << 1 | s[3] >>> 31;\n b21 = s[3] << 1 | s[2] >>> 31;\n b2 = s[13] << 12 | s[12] >>> 20;\n b3 = s[12] << 12 | s[13] >>> 20;\n b34 = s[22] << 10 | s[23] >>> 22;\n b35 = s[23] << 10 | s[22] >>> 22;\n b16 = s[33] << 13 | s[32] >>> 19;\n b17 = s[32] << 13 | s[33] >>> 19;\n b48 = s[42] << 2 | s[43] >>> 30;\n b49 = s[43] << 2 | s[42] >>> 30;\n b40 = s[5] << 30 | s[4] >>> 2;\n b41 = s[4] << 30 | s[5] >>> 2;\n b22 = s[14] << 6 | s[15] >>> 26;\n b23 = s[15] << 6 | s[14] >>> 26;\n b4 = s[25] << 11 | s[24] >>> 21;\n b5 = s[24] << 11 | s[25] >>> 21;\n b36 = s[34] << 15 | s[35] >>> 17;\n b37 = s[35] << 15 | s[34] >>> 17;\n b18 = s[45] << 29 | s[44] >>> 3;\n b19 = s[44] << 29 | s[45] >>> 3;\n b10 = s[6] << 28 | s[7] >>> 4;\n b11 = s[7] << 28 | s[6] >>> 4;\n b42 = s[17] << 23 | s[16] >>> 9;\n b43 = s[16] << 23 | s[17] >>> 9;\n b24 = s[26] << 25 | s[27] >>> 7;\n b25 = s[27] << 25 | s[26] >>> 7;\n b6 = s[36] << 21 | s[37] >>> 11;\n b7 = s[37] << 21 | s[36] >>> 11;\n b38 = s[47] << 24 | s[46] >>> 8;\n b39 = s[46] << 24 | s[47] >>> 8;\n b30 = s[8] << 27 | s[9] >>> 5;\n b31 = s[9] << 27 | s[8] >>> 5;\n b12 = s[18] << 20 | s[19] >>> 12;\n b13 = s[19] << 20 | s[18] >>> 12;\n b44 = s[29] << 7 | s[28] >>> 25;\n b45 = s[28] << 7 | s[29] >>> 25;\n b26 = s[38] << 8 | s[39] >>> 24;\n b27 = s[39] << 8 | s[38] >>> 24;\n b8 = s[48] << 14 | s[49] >>> 18;\n b9 = s[49] << 14 | s[48] >>> 18;\n\n s[0] = b0 ^ ~b2 & b4;\n s[1] = b1 ^ ~b3 & b5;\n s[10] = b10 ^ ~b12 & b14;\n s[11] = b11 ^ ~b13 & b15;\n s[20] = b20 ^ ~b22 & b24;\n s[21] = b21 ^ ~b23 & b25;\n s[30] = b30 ^ ~b32 & b34;\n s[31] = b31 ^ ~b33 & b35;\n s[40] = b40 ^ ~b42 & b44;\n s[41] = b41 ^ ~b43 & b45;\n s[2] = b2 ^ ~b4 & b6;\n s[3] = b3 ^ ~b5 & b7;\n s[12] = b12 ^ ~b14 & b16;\n s[13] = b13 ^ ~b15 & b17;\n s[22] = b22 ^ ~b24 & b26;\n s[23] = b23 ^ ~b25 & b27;\n s[32] = b32 ^ ~b34 & b36;\n s[33] = b33 ^ ~b35 & b37;\n s[42] = b42 ^ ~b44 & b46;\n s[43] = b43 ^ ~b45 & b47;\n s[4] = b4 ^ ~b6 & b8;\n s[5] = b5 ^ ~b7 & b9;\n s[14] = b14 ^ ~b16 & b18;\n s[15] = b15 ^ ~b17 & b19;\n s[24] = b24 ^ ~b26 & b28;\n s[25] = b25 ^ ~b27 & b29;\n s[34] = b34 ^ ~b36 & b38;\n s[35] = b35 ^ ~b37 & b39;\n s[44] = b44 ^ ~b46 & b48;\n s[45] = b45 ^ ~b47 & b49;\n s[6] = b6 ^ ~b8 & b0;\n s[7] = b7 ^ ~b9 & b1;\n s[16] = b16 ^ ~b18 & b10;\n s[17] = b17 ^ ~b19 & b11;\n s[26] = b26 ^ ~b28 & b20;\n s[27] = b27 ^ ~b29 & b21;\n s[36] = b36 ^ ~b38 & b30;\n s[37] = b37 ^ ~b39 & b31;\n s[46] = b46 ^ ~b48 & b40;\n s[47] = b47 ^ ~b49 & b41;\n s[8] = b8 ^ ~b0 & b2;\n s[9] = b9 ^ ~b1 & b3;\n s[18] = b18 ^ ~b10 & b12;\n s[19] = b19 ^ ~b11 & b13;\n s[28] = b28 ^ ~b20 & b22;\n s[29] = b29 ^ ~b21 & b23;\n s[38] = b38 ^ ~b30 & b32;\n s[39] = b39 ^ ~b31 & b33;\n s[48] = b48 ^ ~b40 & b42;\n s[49] = b49 ^ ~b41 & b43;\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n};\n\nvar keccak = function keccak(bits) {\n return function (str) {\n var msg;\n if (str.slice(0, 2) === \"0x\") {\n msg = [];\n for (var i = 2, l = str.length; i < l; i += 2) {\n msg.push(parseInt(str.slice(i, i + 2), 16));\n }\n } else {\n msg = str;\n }\n return update(Keccak(bits, bits), msg);\n };\n};\n\nmodule.exports = {\n keccak256: keccak(256),\n keccak512: keccak(512),\n keccak256s: keccak(256),\n keccak512s: keccak(512)\n};","//\n//\n//\n//\nvar script = {\n props: {\n height: {\n type: [Number, String],\n default: 100\n },\n width: {\n type: [Number, String],\n default: 100\n },\n color: {\n type: String,\n default: 'rgba(0, 0, 0, 0.12)'\n },\n animation: {\n type: String,\n default: 'wave'\n }\n },\n computed: {\n bindClass() {\n return `animation--${this.animation}`;\n }\n\n },\n\n mounted() {\n const width = typeof this.width === 'number' ? `${this.width}px` : this.width;\n const height = typeof this.width === 'number' ? `${this.height}px` : this.height;\n const background = `${this.color}`;\n const loader = this.$el;\n loader.style.setProperty('width', width);\n loader.style.setProperty('height', height);\n loader.style.setProperty('background-color', background);\n }\n\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nconst isOldIE = typeof navigator !== 'undefined' &&\r\n /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\r\nfunction createInjector(context) {\r\n return (id, style) => addStyle(id, style);\r\n}\r\nlet HEAD;\r\nconst styles = {};\r\nfunction addStyle(id, css) {\r\n const group = isOldIE ? css.media || 'default' : id;\r\n const style = styles[group] || (styles[group] = { ids: new Set(), styles: [] });\r\n if (!style.ids.has(id)) {\r\n style.ids.add(id);\r\n let code = css.source;\r\n if (css.map) {\r\n // https://developer.chrome.com/devtools/docs/javascript-debugging\r\n // this makes source maps inside style tags work properly in Chrome\r\n code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */';\r\n // http://stackoverflow.com/a/26603875\r\n code +=\r\n '\\n/*# sourceMappingURL=data:application/json;base64,' +\r\n btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) +\r\n ' */';\r\n }\r\n if (!style.element) {\r\n style.element = document.createElement('style');\r\n style.element.type = 'text/css';\r\n if (css.media)\r\n style.element.setAttribute('media', css.media);\r\n if (HEAD === undefined) {\r\n HEAD = document.head || document.getElementsByTagName('head')[0];\r\n }\r\n HEAD.appendChild(style.element);\r\n }\r\n if ('styleSheet' in style.element) {\r\n style.styles.push(code);\r\n style.element.styleSheet.cssText = style.styles\r\n .filter(Boolean)\r\n .join('\\n');\r\n }\r\n else {\r\n const index = style.ids.size - 1;\r\n const textNode = document.createTextNode(code);\r\n const nodes = style.element.childNodes;\r\n if (nodes[index])\r\n style.element.removeChild(nodes[index]);\r\n if (nodes.length)\r\n style.element.insertBefore(textNode, nodes[index]);\r\n else\r\n style.element.appendChild(textNode);\r\n }\r\n }\r\n}\n\n/* script */\nconst __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function () {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('div', {\n staticClass: \"loader loader--circle\",\n class: _vm.bindClass\n });\n};\n\nvar __vue_staticRenderFns__ = [];\n/* style */\n\nconst __vue_inject_styles__ = function (inject) {\n if (!inject) return;\n inject(\"data-v-c49d1d20_0\", {\n source: \".loader--circle[data-v-c49d1d20]{overflow:hidden;width:100px;height:100px;background-color:red;border-radius:50%;position:relative}.loader--circle[data-v-c49d1d20]::before{content:\\\"\\\";display:block;position:absolute;left:0;right:0;bottom:0;top:0}\",\n map: undefined,\n media: undefined\n });\n};\n/* scoped */\n\n\nconst __vue_scope_id__ = \"data-v-c49d1d20\";\n/* module identifier */\n\nconst __vue_module_identifier__ = undefined;\n/* functional template */\n\nconst __vue_is_functional_template__ = false;\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nconst __vue_component__ = /*#__PURE__*/normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, createInjector, undefined, undefined);\n\n//\n//\n//\n//\nvar script$1 = {\n props: {\n height: {\n type: [Number, String],\n default: 100\n },\n width: {\n type: [Number, String],\n default: 200\n },\n color: {\n type: String,\n default: 'rgba(0, 0, 0, 0.12)'\n },\n animation: {\n type: String,\n default: 'wave'\n },\n type: {\n type: String,\n default: 'rect'\n },\n rounded: {\n type: Boolean,\n default: false\n },\n radius: {\n type: [Number, String],\n default: 0\n }\n },\n computed: {\n style() {\n return {\n width: typeof this.width === 'number' ? `${this.width}px` : this.width,\n height: typeof this.width === 'number' ? `${this.height}px` : this.height,\n 'background-color': `${this.color}`,\n 'border-radius': this.rounded ? `${this.radius}px` : 0\n };\n },\n\n bindClass() {\n return `animation--${this.animation} shape--${this.type} shape--${this.rounded ? 'round' : 'flat'}`;\n }\n\n },\n\n mounted() {\n const width = typeof this.width === 'number' ? `${this.width}px` : this.width;\n const height = typeof this.width === 'number' ? `${this.height}px` : this.height;\n const background = `${this.color}`;\n const borderRadius = this.rounded ? `${this.radius}px` : 0;\n const loader = this.$el;\n loader.style.setProperty('width', width);\n loader.style.setProperty('height', height);\n loader.style.setProperty('background-color', background);\n loader.style.setProperty('border-radius', borderRadius);\n }\n\n};\n\n/* script */\nconst __vue_script__$1 = script$1;\n/* template */\n\nvar __vue_render__$1 = function () {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('div', {\n staticClass: \"loader\",\n class: _vm.bindClass\n });\n};\n\nvar __vue_staticRenderFns__$1 = [];\n/* style */\n\nconst __vue_inject_styles__$1 = function (inject) {\n if (!inject) return;\n inject(\"data-v-39eb697a_0\", {\n source: \".loader[data-v-39eb697a]{overflow:hidden;position:relative}.loader[data-v-39eb697a]::before{content:\\\"\\\";display:block;position:absolute;left:0;right:0;bottom:0;top:0}.shape--text[data-v-39eb697a]{height:20px}.shape--round[data-v-39eb697a]{border-radius:8px}\",\n map: undefined,\n media: undefined\n });\n};\n/* scoped */\n\n\nconst __vue_scope_id__$1 = \"data-v-39eb697a\";\n/* module identifier */\n\nconst __vue_module_identifier__$1 = undefined;\n/* functional template */\n\nconst __vue_is_functional_template__$1 = false;\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nconst __vue_component__$1 = /*#__PURE__*/normalizeComponent({\n render: __vue_render__$1,\n staticRenderFns: __vue_staticRenderFns__$1\n}, __vue_inject_styles__$1, __vue_script__$1, __vue_scope_id__$1, __vue_is_functional_template__$1, __vue_module_identifier__$1, false, createInjector, undefined, undefined);\n\n//\nvar script$2 = {\n components: {\n CircleLoader: __vue_component__,\n SquareLoader: __vue_component__$1\n },\n props: {\n type: {\n type: String,\n default: 'rect'\n },\n size: {\n type: [Number, String]\n },\n animation: {\n type: String,\n default: 'wave'\n },\n height: {\n type: [Number, String]\n },\n width: {\n type: [Number, String]\n },\n color: {\n type: String,\n default: 'rgba(0, 0, 0, 0.12)'\n },\n waveColor: {\n type: String\n },\n rounded: {\n type: Boolean,\n default: false\n },\n radius: {\n type: [Number, String],\n default: 8\n }\n },\n computed: {\n loaderWidth() {\n if (this.size) {\n return this.size;\n } else {\n return this.width;\n }\n },\n\n loaderHeight() {\n if (this.size) {\n return this.size;\n } else {\n return this.height;\n }\n }\n\n },\n\n mounted() {\n if (this.waveColor) {\n this.$el.style.setProperty('--gradient-color', this.waveColor);\n }\n }\n\n};\n\n/* script */\nconst __vue_script__$2 = script$2;\n/* template */\n\nvar __vue_render__$2 = function () {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _vm.type === 'circle' ? _c('circle-loader', {\n attrs: {\n \"width\": _vm.loaderWidth,\n \"height\": _vm.loaderHeight,\n \"animation\": _vm.animation,\n \"color\": _vm.color\n }\n }) : _c('square-loader', {\n attrs: {\n \"width\": _vm.loaderWidth,\n \"height\": _vm.loaderHeight,\n \"animation\": _vm.animation,\n \"type\": _vm.type,\n \"color\": _vm.color,\n \"rounded\": _vm.rounded,\n \"radius\": _vm.radius\n }\n });\n};\n\nvar __vue_staticRenderFns__$2 = [];\n/* style */\n\nconst __vue_inject_styles__$2 = function (inject) {\n if (!inject) return;\n inject(\"data-v-28d24b2c_0\", {\n source: \".loader{width:fit-content;cursor:wait;--gradient-color:rgba(255, 255, 255, 0.5)}@keyframes fade{0%{opacity:1}50%{opacity:.4}100%{opacity:1}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(.85)}100%{transform:scale(1)}}@keyframes pulse-x{0%{transform:scaleX(1)}50%{transform:scaleX(.75)}100%{transform:scaleX(1)}}@keyframes pulse-y{0%{transform:scaleY(1)}50%{transform:scaleY(.75)}100%{transform:scaleY(1)}}@keyframes wave{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}.animation--fade{animation:fade 1.5s linear .5s infinite}.animation--wave::before{background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);background:linear-gradient(90deg,transparent,var(--gradient-color),transparent);animation:wave 1.5s linear .5s infinite}.animation--pulse-x{animation:pulse-x 1.5s linear .5s infinite}.animation--pulse-y{animation:pulse-y 1.5s linear .5s infinite}.animation--pulse{animation:pulse 1.5s linear .5s infinite}\",\n map: undefined,\n media: undefined\n });\n};\n/* scoped */\n\n\nconst __vue_scope_id__$2 = undefined;\n/* module identifier */\n\nconst __vue_module_identifier__$2 = undefined;\n/* functional template */\n\nconst __vue_is_functional_template__$2 = false;\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nconst __vue_component__$2 = /*#__PURE__*/normalizeComponent({\n render: __vue_render__$2,\n staticRenderFns: __vue_staticRenderFns__$2\n}, __vue_inject_styles__$2, __vue_script__$2, __vue_scope_id__$2, __vue_is_functional_template__$2, __vue_module_identifier__$2, false, createInjector, undefined, undefined);\n\n// Import vue components\n\nconst install = function installSkeletonLoaderVue(Vue) {\n if (install.installed) return;\n install.installed = true;\n Vue.component('skeleton-loader-vue', __vue_component__$2);\n}; // Create module definition for Vue.use()\n\n__vue_component__$2.install = install; // Export component by default\n\nexport default __vue_component__$2;\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar alloc = require('./alloc.js');\nvar asUint8array = require('./util/as-uint8array.js');\n\nfunction concat(arrays, length) {\n if (!length) {\n length = arrays.reduce((acc, curr) => acc + curr.length, 0);\n }\n const output = alloc.allocUnsafe(length);\n let offset = 0;\n for (const arr of arrays) {\n output.set(arr, offset);\n offset += arr.length;\n }\n return asUint8array.asUint8Array(output);\n}\n\nexports.concat = concat;\n","exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)\n\nexports.writableStream = isFunction(global.WritableStream)\n\nexports.abortController = isFunction(global.AbortController)\n\nexports.blobConstructor = false\ntry {\n\tnew Blob([new ArrayBuffer(1)])\n\texports.blobConstructor = true\n} catch (e) {}\n\n// The xhr request to example.com may violate some restrictive CSP configurations,\n// so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n// and assume support for certain features below.\nvar xhr\nfunction getXHR () {\n\t// Cache the xhr value\n\tif (xhr !== undefined) return xhr\n\n\tif (global.XMLHttpRequest) {\n\t\txhr = new global.XMLHttpRequest()\n\t\t// If XDomainRequest is available (ie only, where xhr might not work\n\t\t// cross domain), use the page location. Otherwise use example.com\n\t\t// Note: this doesn't actually make an http request.\n\t\ttry {\n\t\t\txhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')\n\t\t} catch(e) {\n\t\t\txhr = null\n\t\t}\n\t} else {\n\t\t// Service workers don't have XHR\n\t\txhr = null\n\t}\n\treturn xhr\n}\n\nfunction checkTypeSupport (type) {\n\tvar xhr = getXHR()\n\tif (!xhr) return false\n\ttry {\n\t\txhr.responseType = type\n\t\treturn xhr.responseType === type\n\t} catch (e) {}\n\treturn false\n}\n\n// For some strange reason, Safari 7.0 reports typeof global.ArrayBuffer === 'object'.\n// Safari 7.1 appears to have fixed this bug.\nvar haveArrayBuffer = typeof global.ArrayBuffer !== 'undefined'\nvar haveSlice = haveArrayBuffer && isFunction(global.ArrayBuffer.prototype.slice)\n\n// If fetch is supported, then arraybuffer will be supported too. Skip calling\n// checkTypeSupport(), since that calls getXHR().\nexports.arraybuffer = exports.fetch || (haveArrayBuffer && checkTypeSupport('arraybuffer'))\n\n// These next two tests unavoidably show warnings in Chrome. Since fetch will always\n// be used if it's available, just return false for these to avoid the warnings.\nexports.msstream = !exports.fetch && haveSlice && checkTypeSupport('ms-stream')\nexports.mozchunkedarraybuffer = !exports.fetch && haveArrayBuffer &&\n\tcheckTypeSupport('moz-chunked-arraybuffer')\n\n// If fetch is supported, then overrideMimeType will be supported too. Skip calling\n// getXHR().\nexports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)\n\nexports.vbArray = isFunction(global.VBArray)\n\nfunction isFunction (value) {\n\treturn typeof value === 'function'\n}\n\nxhr = null // Help gc\n","// TODO: this is a temporary fix to hide those libraries from the browser. A\n// slightly better long-term solution would be to split this file into two,\n// separating the functions that are used on Node.js from the functions that\n// are used only on the browser.\nmodule.exports = function (_ref) {\n var fs = _ref.fs,\n files = _ref.files,\n os = _ref.os,\n path = _ref.path,\n child_process = _ref.child_process,\n mimetype = _ref.mimetype,\n defaultArchives = _ref.defaultArchives,\n request = _ref.request,\n downloadUrl = _ref.downloadUrl,\n bytes = _ref.bytes,\n hash = _ref.hash,\n pick = _ref.pick;\n\n // ∀ a . String -> JSON -> Map String a -o Map String a\n // Inserts a key/val pair in an object impurely.\n var impureInsert = function impureInsert(key) {\n return function (val) {\n return function (map) {\n return map[key] = val, map;\n };\n };\n }; // String -> JSON -> Map String JSON\n // Merges an array of keys and an array of vals into an object.\n\n\n var toMap = function toMap(keys) {\n return function (vals) {\n var map = {};\n\n for (var i = 0, l = keys.length; i < l; ++i) {\n map[keys[i]] = vals[i];\n }\n\n return map;\n };\n }; // ∀ a . Map String a -> Map String a -> Map String a\n // Merges two maps into one.\n\n\n var merge = function merge(a) {\n return function (b) {\n var map = {};\n\n for (var key in a) {\n map[key] = a[key];\n }\n\n for (var _key in b) {\n map[_key] = b[_key];\n }\n\n return map;\n };\n }; // ∀ a . [a] -> [a] -> Bool\n\n\n var equals = function equals(a) {\n return function (b) {\n if (a.length !== b.length) {\n return false;\n } else {\n for (var i = 0, l = a.length; i < l; ++i) {\n if (a[i] !== b[i]) return false;\n }\n }\n\n return true;\n };\n }; // String -> String -> String\n\n\n var rawUrl = function rawUrl(swarmUrl) {\n return function (hash) {\n return \"\".concat(swarmUrl, \"/bzz-raw:/\").concat(hash);\n };\n }; // String -> String -> Promise Uint8Array\n // Gets the raw contents of a Swarm hash address.\n\n\n var downloadData = function downloadData(swarmUrl) {\n return function (hash) {\n return new Promise(function (resolve, reject) {\n request(rawUrl(swarmUrl)(hash), {\n responseType: \"arraybuffer\"\n }, function (err, arrayBuffer, response) {\n if (err) {\n return reject(err);\n }\n\n if (response.statusCode >= 400) {\n return reject(new Error(\"Error \".concat(response.statusCode, \".\")));\n }\n\n return resolve(new Uint8Array(arrayBuffer));\n });\n });\n };\n }; // type Entry = {\"type\": String, \"hash\": String}\n // type File = {\"type\": String, \"data\": Uint8Array}\n // String -> String -> Promise (Map String Entry)\n // Solves the manifest of a Swarm address recursively.\n // Returns a map from full paths to entries.\n\n\n var downloadEntries = function downloadEntries(swarmUrl) {\n return function (hash) {\n var search = function search(hash) {\n return function (path) {\n return function (routes) {\n // Formats an entry to the Swarm.js type.\n var format = function format(entry) {\n return {\n type: entry.contentType,\n hash: entry.hash\n };\n }; // To download a single entry:\n // if type is bzz-manifest, go deeper\n // if not, add it to the routing table\n\n\n var downloadEntry = function downloadEntry(entry) {\n if (entry.path === undefined) {\n return Promise.resolve();\n } else {\n return entry.contentType === \"application/bzz-manifest+json\" ? search(entry.hash)(path + entry.path)(routes) : Promise.resolve(impureInsert(path + entry.path)(format(entry))(routes));\n }\n }; // Downloads the initial manifest and then each entry.\n\n\n return downloadData(swarmUrl)(hash).then(function (text) {\n return JSON.parse(toString(text)).entries;\n }).then(function (entries) {\n return Promise.all(entries.map(downloadEntry));\n }).then(function () {\n return routes;\n });\n };\n };\n };\n\n return search(hash)(\"\")({});\n };\n }; // String -> String -> Promise (Map String String)\n // Same as `downloadEntries`, but returns only hashes (no types).\n\n\n var downloadRoutes = function downloadRoutes(swarmUrl) {\n return function (hash) {\n return downloadEntries(swarmUrl)(hash).then(function (entries) {\n return toMap(Object.keys(entries))(Object.keys(entries).map(function (route) {\n return entries[route].hash;\n }));\n });\n };\n }; // String -> String -> Promise (Map String File)\n // Gets the entire directory tree in a Swarm address.\n // Returns a promise mapping paths to file contents.\n\n\n var downloadDirectory = function downloadDirectory(swarmUrl) {\n return function (hash) {\n return downloadEntries(swarmUrl)(hash).then(function (entries) {\n var paths = Object.keys(entries);\n var hashs = paths.map(function (path) {\n return entries[path].hash;\n });\n var types = paths.map(function (path) {\n return entries[path].type;\n });\n var datas = hashs.map(downloadData(swarmUrl));\n\n var files = function files(datas) {\n return datas.map(function (data, i) {\n return {\n type: types[i],\n data: data\n };\n });\n };\n\n return Promise.all(datas).then(function (datas) {\n return toMap(paths)(files(datas));\n });\n });\n };\n }; // String -> String -> String -> Promise String\n // Gets the raw contents of a Swarm hash address.\n // Returns a promise with the downloaded file path.\n\n\n var downloadDataToDisk = function downloadDataToDisk(swarmUrl) {\n return function (hash) {\n return function (filePath) {\n return files.download(rawUrl(swarmUrl)(hash))(filePath);\n };\n };\n }; // String -> String -> String -> Promise (Map String String)\n // Gets the entire directory tree in a Swarm address.\n // Returns a promise mapping paths to file contents.\n\n\n var downloadDirectoryToDisk = function downloadDirectoryToDisk(swarmUrl) {\n return function (hash) {\n return function (dirPath) {\n return downloadRoutes(swarmUrl)(hash).then(function (routingTable) {\n var downloads = [];\n\n for (var route in routingTable) {\n if (route.length > 0) {\n var filePath = path.join(dirPath, route);\n downloads.push(downloadDataToDisk(swarmUrl)(routingTable[route])(filePath));\n }\n\n ;\n }\n\n ;\n return Promise.all(downloads).then(function () {\n return dirPath;\n });\n });\n };\n };\n }; // String -> Uint8Array -> Promise String\n // Uploads raw data to Swarm.\n // Returns a promise with the uploaded hash.\n\n\n var uploadData = function uploadData(swarmUrl) {\n return function (data) {\n return new Promise(function (resolve, reject) {\n var params = {\n body: typeof data === \"string\" ? fromString(data) : data,\n method: \"POST\"\n };\n request(\"\".concat(swarmUrl, \"/bzz-raw:/\"), params, function (err, data) {\n if (err) {\n return reject(err);\n }\n\n return resolve(data);\n });\n });\n };\n }; // String -> String -> String -> File -> Promise String\n // Uploads a file to the Swarm manifest at a given hash, under a specific\n // route. Returns a promise containing the uploaded hash.\n // FIXME: for some reasons Swarm-Gateways is sometimes returning\n // error 404 (bad request), so we retry up to 3 times. Why?\n\n\n var uploadToManifest = function uploadToManifest(swarmUrl) {\n return function (hash) {\n return function (route) {\n return function (file) {\n var attempt = function attempt(n) {\n var slashRoute = route[0] === \"/\" ? route : \"/\" + route;\n var url = \"\".concat(swarmUrl, \"/bzz:/\").concat(hash).concat(slashRoute);\n var opt = {\n method: \"PUT\",\n headers: {\n \"Content-Type\": file.type\n },\n body: file.data\n };\n return new Promise(function (resolve, reject) {\n request(url, opt, function (err, data) {\n if (err) {\n return reject(err);\n }\n\n if (data.indexOf(\"error\") !== -1) {\n return reject(data);\n }\n\n return resolve(data);\n });\n })[\"catch\"](function (e) {\n return n > 0 && attempt(n - 1);\n });\n };\n\n return attempt(3);\n };\n };\n };\n }; // String -> {type: String, data: Uint8Array} -> Promise String\n\n\n var uploadFile = function uploadFile(swarmUrl) {\n return function (file) {\n return uploadDirectory(swarmUrl)({\n \"\": file\n });\n };\n }; // String -> String -> Promise String\n\n\n var uploadFileFromDisk = function uploadFileFromDisk(swarmUrl) {\n return function (filePath) {\n return fs.readFile(filePath).then(function (data) {\n return uploadFile(swarmUrl)({\n type: mimetype.lookup(filePath),\n data: data\n });\n });\n };\n }; // String -> Map String File -> Promise String\n // Uploads a directory to Swarm. The directory is\n // represented as a map of routes and files.\n // A default path is encoded by having a \"\" route.\n\n\n var uploadDirectory = function uploadDirectory(swarmUrl) {\n return function (directory) {\n return uploadData(swarmUrl)(\"{}\").then(function (hash) {\n var uploadRoute = function uploadRoute(route) {\n return function (hash) {\n return uploadToManifest(swarmUrl)(hash)(route)(directory[route]);\n };\n };\n\n var uploadToHash = function uploadToHash(hash, route) {\n return hash.then(uploadRoute(route));\n };\n\n return Object.keys(directory).reduce(uploadToHash, Promise.resolve(hash));\n });\n };\n }; // String -> Promise String\n\n\n var uploadDataFromDisk = function uploadDataFromDisk(swarmUrl) {\n return function (filePath) {\n return fs.readFile(filePath).then(uploadData(swarmUrl));\n };\n }; // String -> Nullable String -> String -> Promise String\n\n\n var uploadDirectoryFromDisk = function uploadDirectoryFromDisk(swarmUrl) {\n return function (defaultPath) {\n return function (dirPath) {\n return files.directoryTree(dirPath).then(function (fullPaths) {\n return Promise.all(fullPaths.map(function (path) {\n return fs.readFile(path);\n })).then(function (datas) {\n var paths = fullPaths.map(function (path) {\n return path.slice(dirPath.length);\n });\n var types = fullPaths.map(function (path) {\n return mimetype.lookup(path) || \"text/plain\";\n });\n return toMap(paths)(datas.map(function (data, i) {\n return {\n type: types[i],\n data: data\n };\n }));\n });\n }).then(function (directory) {\n return merge(defaultPath ? {\n \"\": directory[defaultPath]\n } : {})(directory);\n }).then(uploadDirectory(swarmUrl));\n };\n };\n }; // String -> UploadInfo -> Promise String\n // Simplified multi-type upload which calls the correct\n // one based on the type of the argument given.\n\n\n var _upload = function upload(swarmUrl) {\n return function (arg) {\n // Upload raw data from browser\n if (arg.pick === \"data\") {\n return pick.data().then(uploadData(swarmUrl)); // Upload a file from browser\n } else if (arg.pick === \"file\") {\n return pick.file().then(uploadFile(swarmUrl)); // Upload a directory from browser\n } else if (arg.pick === \"directory\") {\n return pick.directory().then(uploadDirectory(swarmUrl)); // Upload directory/file from disk\n } else if (arg.path) {\n switch (arg.kind) {\n case \"data\":\n return uploadDataFromDisk(swarmUrl)(arg.path);\n\n case \"file\":\n return uploadFileFromDisk(swarmUrl)(arg.path);\n\n case \"directory\":\n return uploadDirectoryFromDisk(swarmUrl)(arg.defaultFile)(arg.path);\n }\n\n ; // Upload UTF-8 string or raw data (buffer)\n } else if (arg.length || typeof arg === \"string\") {\n return uploadData(swarmUrl)(arg); // Upload directory with JSON\n } else if (arg instanceof Object) {\n return uploadDirectory(swarmUrl)(arg);\n }\n\n return Promise.reject(new Error(\"Bad arguments\"));\n };\n }; // String -> String -> Nullable String -> Promise (String | Uint8Array | Map String Uint8Array)\n // Simplified multi-type download which calls the correct function based on\n // the type of the argument given, and on whether the Swwarm address has a\n // directory or a file.\n\n\n var _download = function download(swarmUrl) {\n return function (hash) {\n return function (path) {\n return isDirectory(swarmUrl)(hash).then(function (isDir) {\n if (isDir) {\n return path ? downloadDirectoryToDisk(swarmUrl)(hash)(path) : downloadDirectory(swarmUrl)(hash);\n } else {\n return path ? downloadDataToDisk(swarmUrl)(hash)(path) : downloadData(swarmUrl)(hash);\n }\n });\n };\n };\n }; // String -> Promise String\n // Downloads the Swarm binaries into a path. Returns a promise that only\n // resolves when the exact Swarm file is there, and verified to be correct.\n // If it was already there to begin with, skips the download.\n\n\n var downloadBinary = function downloadBinary(path, archives) {\n var system = os.platform().replace(\"win32\", \"windows\") + \"-\" + (os.arch() === \"x64\" ? \"amd64\" : \"386\");\n var archive = (archives || defaultArchives)[system];\n var archiveUrl = downloadUrl + archive.archive + \".tar.gz\";\n var archiveMD5 = archive.archiveMD5;\n var binaryMD5 = archive.binaryMD5;\n return files.safeDownloadArchived(archiveUrl)(archiveMD5)(binaryMD5)(path);\n }; // type SwarmSetup = {\n // account : String,\n // password : String,\n // dataDir : String,\n // binPath : String,\n // ensApi : String,\n // onDownloadProgress : Number ~> (),\n // archives : [{\n // archive: String,\n // binaryMD5: String,\n // archiveMD5: String\n // }]\n // }\n // SwarmSetup ~> Promise Process\n // Starts the Swarm process.\n\n\n var startProcess = function startProcess(swarmSetup) {\n return new Promise(function (resolve, reject) {\n var spawn = child_process.spawn;\n\n var hasString = function hasString(str) {\n return function (buffer) {\n return ('' + buffer).indexOf(str) !== -1;\n };\n };\n\n var account = swarmSetup.account,\n password = swarmSetup.password,\n dataDir = swarmSetup.dataDir,\n ensApi = swarmSetup.ensApi,\n privateKey = swarmSetup.privateKey;\n var STARTUP_TIMEOUT_SECS = 3;\n var WAITING_PASSWORD = 0;\n var STARTING = 1;\n var LISTENING = 2;\n var PASSWORD_PROMPT_HOOK = \"Passphrase\";\n var LISTENING_HOOK = \"Swarm http proxy started\";\n var state = WAITING_PASSWORD;\n var swarmProcess = spawn(swarmSetup.binPath, ['--bzzaccount', account || privateKey, '--datadir', dataDir, '--ens-api', ensApi]);\n\n var handleProcessOutput = function handleProcessOutput(data) {\n if (state === WAITING_PASSWORD && hasString(PASSWORD_PROMPT_HOOK)(data)) {\n setTimeout(function () {\n state = STARTING;\n swarmProcess.stdin.write(password + '\\n');\n }, 500);\n } else if (hasString(LISTENING_HOOK)(data)) {\n state = LISTENING;\n clearTimeout(timeout);\n resolve(swarmProcess);\n }\n };\n\n swarmProcess.stdout.on('data', handleProcessOutput);\n swarmProcess.stderr.on('data', handleProcessOutput); //swarmProcess.on('close', () => setTimeout(restart, 2000));\n\n var restart = function restart() {\n return startProcess(swarmSetup).then(resolve)[\"catch\"](reject);\n };\n\n var error = function error() {\n return reject(new Error(\"Couldn't start swarm process.\"));\n };\n\n var timeout = setTimeout(error, 20000);\n });\n }; // Process ~> Promise ()\n // Stops the Swarm process.\n\n\n var stopProcess = function stopProcess(process) {\n return new Promise(function (resolve, reject) {\n process.stderr.removeAllListeners('data');\n process.stdout.removeAllListeners('data');\n process.stdin.removeAllListeners('error');\n process.removeAllListeners('error');\n process.removeAllListeners('exit');\n process.kill('SIGINT');\n var killTimeout = setTimeout(function () {\n return process.kill('SIGKILL');\n }, 8000);\n process.once('close', function () {\n clearTimeout(killTimeout);\n resolve();\n });\n });\n }; // SwarmSetup -> (SwarmAPI -> Promise ()) -> Promise ()\n // Receives a Swarm configuration object and a callback function. It then\n // checks if a local Swarm node is running. If no local Swarm is found, it\n // downloads the Swarm binaries to the dataDir (if not there), checksums,\n // starts the Swarm process and calls the callback function with an API\n // object using the local node. That callback must return a promise which\n // will resolve when it is done using the API, so that this function can\n // close the Swarm process properly. Returns a promise that resolves when the\n // user is done with the API and the Swarm process is closed.\n // TODO: check if Swarm process is already running (improve `isAvailable`)\n\n\n var local = function local(swarmSetup) {\n return function (useAPI) {\n return _isAvailable(\"http://localhost:8500\").then(function (isAvailable) {\n return isAvailable ? useAPI(at(\"http://localhost:8500\")).then(function () {}) : downloadBinary(swarmSetup.binPath, swarmSetup.archives).onData(function (data) {\n return (swarmSetup.onProgress || function () {})(data.length);\n }).then(function () {\n return startProcess(swarmSetup);\n }).then(function (process) {\n return useAPI(at(\"http://localhost:8500\")).then(function () {\n return process;\n });\n }).then(stopProcess);\n });\n };\n }; // String ~> Promise Bool\n // Returns true if Swarm is available on `url`.\n // Perfoms a test upload to determine that.\n // TODO: improve this?\n\n\n var _isAvailable = function isAvailable(swarmUrl) {\n var testFile = \"test\";\n var testHash = \"c9a99c7d326dcc6316f32fe2625b311f6dc49a175e6877681ded93137d3569e7\";\n return uploadData(swarmUrl)(testFile).then(function (hash) {\n return hash === testHash;\n })[\"catch\"](function () {\n return false;\n });\n }; // String -> String ~> Promise Bool\n // Returns a Promise which is true if that Swarm address is a directory.\n // Determines that by checking that it (i) is a JSON, (ii) has a .entries.\n // TODO: improve this?\n\n\n var isDirectory = function isDirectory(swarmUrl) {\n return function (hash) {\n return downloadData(swarmUrl)(hash).then(function (data) {\n try {\n return !!JSON.parse(toString(data)).entries;\n } catch (e) {\n return false;\n }\n });\n };\n }; // Uncurries a function; used to allow the f(x,y,z) style on exports.\n\n\n var uncurry = function uncurry(f) {\n return function (a, b, c, d, e) {\n var p; // Hardcoded because efficiency (`arguments` is very slow).\n\n if (typeof a !== \"undefined\") p = f(a);\n if (typeof b !== \"undefined\") p = f(b);\n if (typeof c !== \"undefined\") p = f(c);\n if (typeof d !== \"undefined\") p = f(d);\n if (typeof e !== \"undefined\") p = f(e);\n return p;\n };\n }; // () -> Promise Bool\n // Not sure how to mock Swarm to test it properly. Ideas?\n\n\n var test = function test() {\n return Promise.resolve(true);\n }; // Uint8Array -> String\n\n\n var toString = function toString(uint8Array) {\n return bytes.toString(bytes.fromUint8Array(uint8Array));\n }; // String -> Uint8Array\n\n\n var fromString = function fromString(string) {\n return bytes.toUint8Array(bytes.fromString(string));\n }; // String -> SwarmAPI\n // Fixes the `swarmUrl`, returning an API where you don't have to pass it.\n\n\n var at = function at(swarmUrl) {\n return {\n download: function download(hash, path) {\n return _download(swarmUrl)(hash)(path);\n },\n downloadData: uncurry(downloadData(swarmUrl)),\n downloadDataToDisk: uncurry(downloadDataToDisk(swarmUrl)),\n downloadDirectory: uncurry(downloadDirectory(swarmUrl)),\n downloadDirectoryToDisk: uncurry(downloadDirectoryToDisk(swarmUrl)),\n downloadEntries: uncurry(downloadEntries(swarmUrl)),\n downloadRoutes: uncurry(downloadRoutes(swarmUrl)),\n isAvailable: function isAvailable() {\n return _isAvailable(swarmUrl);\n },\n upload: function upload(arg) {\n return _upload(swarmUrl)(arg);\n },\n uploadData: uncurry(uploadData(swarmUrl)),\n uploadFile: uncurry(uploadFile(swarmUrl)),\n uploadFileFromDisk: uncurry(uploadFile(swarmUrl)),\n uploadDataFromDisk: uncurry(uploadDataFromDisk(swarmUrl)),\n uploadDirectory: uncurry(uploadDirectory(swarmUrl)),\n uploadDirectoryFromDisk: uncurry(uploadDirectoryFromDisk(swarmUrl)),\n uploadToManifest: uncurry(uploadToManifest(swarmUrl)),\n pick: pick,\n hash: hash,\n fromString: fromString,\n toString: toString\n };\n };\n\n return {\n at: at,\n local: local,\n download: _download,\n downloadBinary: downloadBinary,\n downloadData: downloadData,\n downloadDataToDisk: downloadDataToDisk,\n downloadDirectory: downloadDirectory,\n downloadDirectoryToDisk: downloadDirectoryToDisk,\n downloadEntries: downloadEntries,\n downloadRoutes: downloadRoutes,\n isAvailable: _isAvailable,\n startProcess: startProcess,\n stopProcess: stopProcess,\n upload: _upload,\n uploadData: uploadData,\n uploadDataFromDisk: uploadDataFromDisk,\n uploadFile: uploadFile,\n uploadFileFromDisk: uploadFileFromDisk,\n uploadDirectory: uploadDirectory,\n uploadDirectoryFromDisk: uploadDirectoryFromDisk,\n uploadToManifest: uploadToManifest,\n pick: pick,\n hash: hash,\n fromString: fromString,\n toString: toString\n };\n};","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction equals(a, b) {\n if (a === b) {\n return true;\n }\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n for (let i = 0; i < a.byteLength; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n\nexports.equals = equals;\n","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction compare(a, b) {\n for (let i = 0; i < a.byteLength; i++) {\n if (a[i] < b[i]) {\n return -1;\n }\n if (a[i] > b[i]) {\n return 1;\n }\n }\n if (a.byteLength > b.byteLength) {\n return 1;\n }\n if (a.byteLength < b.byteLength) {\n return -1;\n }\n return 0;\n}\n\nexports.compare = compare;\n","var A = require(\"./array.js\");\n\nvar at = function at(bytes, index) {\n return parseInt(bytes.slice(index * 2 + 2, index * 2 + 4), 16);\n};\n\nvar random = function random(bytes) {\n var rnd = void 0;\n if (typeof window !== \"undefined\" && window.crypto && window.crypto.getRandomValues) rnd = window.crypto.getRandomValues(new Uint8Array(bytes));else if (typeof require !== \"undefined\") rnd = require(\"c\" + \"rypto\").randomBytes(bytes);else throw \"Safe random numbers not available.\";\n var hex = \"0x\";\n for (var i = 0; i < bytes; ++i) {\n hex += (\"00\" + rnd[i].toString(16)).slice(-2);\n }return hex;\n};\n\nvar length = function length(a) {\n return (a.length - 2) / 2;\n};\n\nvar flatten = function flatten(a) {\n return \"0x\" + a.reduce(function (r, s) {\n return r + s.slice(2);\n }, \"\");\n};\n\nvar slice = function slice(i, j, bs) {\n return \"0x\" + bs.slice(i * 2 + 2, j * 2 + 2);\n};\n\nvar reverse = function reverse(hex) {\n var rev = \"0x\";\n for (var i = 0, l = length(hex); i < l; ++i) {\n rev += hex.slice((l - i) * 2, (l - i + 1) * 2);\n }\n return rev;\n};\n\nvar pad = function pad(l, hex) {\n return hex.length === l * 2 + 2 ? hex : pad(l, \"0x\" + \"0\" + hex.slice(2));\n};\n\nvar padRight = function padRight(l, hex) {\n return hex.length === l * 2 + 2 ? hex : padRight(l, hex + \"0\");\n};\n\nvar toArray = function toArray(hex) {\n var arr = [];\n for (var i = 2, l = hex.length; i < l; i += 2) {\n arr.push(parseInt(hex.slice(i, i + 2), 16));\n }return arr;\n};\n\nvar fromArray = function fromArray(arr) {\n var hex = \"0x\";\n for (var i = 0, l = arr.length; i < l; ++i) {\n var b = arr[i];\n hex += (b < 16 ? \"0\" : \"\") + b.toString(16);\n }\n return hex;\n};\n\nvar toUint8Array = function toUint8Array(hex) {\n return new Uint8Array(toArray(hex));\n};\n\nvar fromUint8Array = function fromUint8Array(arr) {\n return fromArray([].slice.call(arr, 0));\n};\n\nvar fromNumber = function fromNumber(num) {\n var hex = num.toString(16);\n return hex.length % 2 === 0 ? \"0x\" + hex : \"0x0\" + hex;\n};\n\nvar toNumber = function toNumber(hex) {\n return parseInt(hex.slice(2), 16);\n};\n\nvar concat = function concat(a, b) {\n return a.concat(b.slice(2));\n};\n\nvar fromNat = function fromNat(bn) {\n return bn === \"0x0\" ? \"0x\" : bn.length % 2 === 0 ? bn : \"0x0\" + bn.slice(2);\n};\n\nvar toNat = function toNat(bn) {\n return bn[2] === \"0\" ? \"0x\" + bn.slice(3) : bn;\n};\n\nvar fromAscii = function fromAscii(ascii) {\n var hex = \"0x\";\n for (var i = 0; i < ascii.length; ++i) {\n hex += (\"00\" + ascii.charCodeAt(i).toString(16)).slice(-2);\n }return hex;\n};\n\nvar toAscii = function toAscii(hex) {\n var ascii = \"\";\n for (var i = 2; i < hex.length; i += 2) {\n ascii += String.fromCharCode(parseInt(hex.slice(i, i + 2), 16));\n }return ascii;\n};\n\n// From https://gist.github.com/pascaldekloe/62546103a1576803dade9269ccf76330\nvar fromString = function fromString(s) {\n var makeByte = function makeByte(uint8) {\n var b = uint8.toString(16);\n return b.length < 2 ? \"0\" + b : b;\n };\n var bytes = \"0x\";\n for (var ci = 0; ci != s.length; ci++) {\n var c = s.charCodeAt(ci);\n if (c < 128) {\n bytes += makeByte(c);\n continue;\n }\n if (c < 2048) {\n bytes += makeByte(c >> 6 | 192);\n } else {\n if (c > 0xd7ff && c < 0xdc00) {\n if (++ci == s.length) return null;\n var c2 = s.charCodeAt(ci);\n if (c2 < 0xdc00 || c2 > 0xdfff) return null;\n c = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff);\n bytes += makeByte(c >> 18 | 240);\n bytes += makeByte(c >> 12 & 63 | 128);\n } else {\n // c <= 0xffff\n bytes += makeByte(c >> 12 | 224);\n }\n bytes += makeByte(c >> 6 & 63 | 128);\n }\n bytes += makeByte(c & 63 | 128);\n }\n return bytes;\n};\n\nvar toString = function toString(bytes) {\n var s = '';\n var i = 0;\n var l = length(bytes);\n while (i < l) {\n var c = at(bytes, i++);\n if (c > 127) {\n if (c > 191 && c < 224) {\n if (i >= l) return null;\n c = (c & 31) << 6 | at(bytes, i) & 63;\n } else if (c > 223 && c < 240) {\n if (i + 1 >= l) return null;\n c = (c & 15) << 12 | (at(bytes, i) & 63) << 6 | at(bytes, ++i) & 63;\n } else if (c > 239 && c < 248) {\n if (i + 2 >= l) return null;\n c = (c & 7) << 18 | (at(bytes, i) & 63) << 12 | (at(bytes, ++i) & 63) << 6 | at(bytes, ++i) & 63;\n } else return null;\n ++i;\n }\n if (c <= 0xffff) s += String.fromCharCode(c);else if (c <= 0x10ffff) {\n c -= 0x10000;\n s += String.fromCharCode(c >> 10 | 0xd800);\n s += String.fromCharCode(c & 0x3FF | 0xdc00);\n } else return null;\n }\n return s;\n};\n\nmodule.exports = {\n random: random,\n length: length,\n concat: concat,\n flatten: flatten,\n slice: slice,\n reverse: reverse,\n pad: pad,\n padRight: padRight,\n fromAscii: fromAscii,\n toAscii: toAscii,\n fromString: fromString,\n toString: toString,\n fromNumber: fromNumber,\n toNumber: toNumber,\n fromNat: fromNat,\n toNat: toNat,\n fromArray: fromArray,\n toArray: toArray,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array\n};","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar bases = require('./util/bases.js');\nvar asUint8array = require('./util/as-uint8array.js');\n\nfunction fromString(string, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n if ((encoding === 'utf8' || encoding === 'utf-8') && globalThis.Buffer != null && globalThis.Buffer.from != null) {\n return asUint8array.asUint8Array(globalThis.Buffer.from(string, 'utf-8'));\n }\n return base.decoder.decode(`${ base.prefix }${ string }`);\n}\n\nexports.fromString = fromString;\n","'use strict';\n\nfunction shallowEqualArrays(arrA, arrB) {\n if (arrA === arrB) {\n return true;\n }\n\n if (!arrA || !arrB) {\n return false;\n }\n\n var len = arrA.length;\n\n if (arrB.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n if (arrA[i] !== arrB[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqualArrays;\n","'use strict';\n\nvar basics = require('multiformats/basics');\nvar alloc = require('../alloc.js');\n\nfunction createCodec(name, prefix, encode, decode) {\n return {\n name,\n prefix,\n encoder: {\n name,\n prefix,\n encode\n },\n decoder: { decode }\n };\n}\nconst string = createCodec('utf8', 'u', buf => {\n const decoder = new TextDecoder('utf8');\n return 'u' + decoder.decode(buf);\n}, str => {\n const encoder = new TextEncoder();\n return encoder.encode(str.substring(1));\n});\nconst ascii = createCodec('ascii', 'a', buf => {\n let string = 'a';\n for (let i = 0; i < buf.length; i++) {\n string += String.fromCharCode(buf[i]);\n }\n return string;\n}, str => {\n str = str.substring(1);\n const buf = alloc.allocUnsafe(str.length);\n for (let i = 0; i < str.length; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n});\nconst BASES = {\n utf8: string,\n 'utf-8': string,\n hex: basics.bases.base16,\n latin1: ascii,\n ascii: ascii,\n binary: ascii,\n ...basics.bases\n};\n\nmodule.exports = BASES;\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar stream = require('readable-stream')\n\nvar rStates = exports.readyStates = {\n\tUNSENT: 0,\n\tOPENED: 1,\n\tHEADERS_RECEIVED: 2,\n\tLOADING: 3,\n\tDONE: 4\n}\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, fetchTimer) {\n\tvar self = this\n\tstream.Readable.call(self)\n\n\tself._mode = mode\n\tself.headers = {}\n\tself.rawHeaders = []\n\tself.trailers = {}\n\tself.rawTrailers = []\n\n\t// Fake the 'close' event, but only once 'end' fires\n\tself.on('end', function () {\n\t\t// The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n\t\tprocess.nextTick(function () {\n\t\t\tself.emit('close')\n\t\t})\n\t})\n\n\tif (mode === 'fetch') {\n\t\tself._fetchResponse = response\n\n\t\tself.url = response.url\n\t\tself.statusCode = response.status\n\t\tself.statusMessage = response.statusText\n\t\t\n\t\tresponse.headers.forEach(function (header, key){\n\t\t\tself.headers[key.toLowerCase()] = header\n\t\t\tself.rawHeaders.push(key, header)\n\t\t})\n\n\t\tif (capability.writableStream) {\n\t\t\tvar writable = new WritableStream({\n\t\t\t\twrite: function (chunk) {\n\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\tif (self._destroyed) {\n\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t} else if(self.push(new Buffer(chunk))) {\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself._resumeFetch = resolve\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tclose: function () {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.push(null)\n\t\t\t\t},\n\t\t\t\tabort: function (err) {\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tresponse.body.pipeTo(writable).catch(function (err) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\t\t}\n\t\t// fallback for when writableStream or pipeTo aren't available\n\t\tvar reader = response.body.getReader()\n\t\tfunction read () {\n\t\t\treader.read().then(function (result) {\n\t\t\t\tif (self._destroyed)\n\t\t\t\t\treturn\n\t\t\t\tif (result.done) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tself.push(null)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.push(new Buffer(result.value))\n\t\t\t\tread()\n\t\t\t}).catch(function (err) {\n\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\tif (!self._destroyed)\n\t\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t}\n\t\tread()\n\t} else {\n\t\tself._xhr = xhr\n\t\tself._pos = 0\n\n\t\tself.url = xhr.responseURL\n\t\tself.statusCode = xhr.status\n\t\tself.statusMessage = xhr.statusText\n\t\tvar headers = xhr.getAllResponseHeaders().split(/\\r?\\n/)\n\t\theaders.forEach(function (header) {\n\t\t\tvar matches = header.match(/^([^:]+):\\s*(.*)/)\n\t\t\tif (matches) {\n\t\t\t\tvar key = matches[1].toLowerCase()\n\t\t\t\tif (key === 'set-cookie') {\n\t\t\t\t\tif (self.headers[key] === undefined) {\n\t\t\t\t\t\tself.headers[key] = []\n\t\t\t\t\t}\n\t\t\t\t\tself.headers[key].push(matches[2])\n\t\t\t\t} else if (self.headers[key] !== undefined) {\n\t\t\t\t\tself.headers[key] += ', ' + matches[2]\n\t\t\t\t} else {\n\t\t\t\t\tself.headers[key] = matches[2]\n\t\t\t\t}\n\t\t\t\tself.rawHeaders.push(matches[1], matches[2])\n\t\t\t}\n\t\t})\n\n\t\tself._charset = 'x-user-defined'\n\t\tif (!capability.overrideMimeType) {\n\t\t\tvar mimeType = self.rawHeaders['mime-type']\n\t\t\tif (mimeType) {\n\t\t\t\tvar charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/)\n\t\t\t\tif (charsetMatch) {\n\t\t\t\t\tself._charset = charsetMatch[1].toLowerCase()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!self._charset)\n\t\t\t\tself._charset = 'utf-8' // best guess\n\t\t}\n\t}\n}\n\ninherits(IncomingMessage, stream.Readable)\n\nIncomingMessage.prototype._read = function () {\n\tvar self = this\n\n\tvar resolve = self._resumeFetch\n\tif (resolve) {\n\t\tself._resumeFetch = null\n\t\tresolve()\n\t}\n}\n\nIncomingMessage.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tvar xhr = self._xhr\n\n\tvar response = null\n\tswitch (self._mode) {\n\t\tcase 'text:vbarray': // For IE9\n\t\t\tif (xhr.readyState !== rStates.DONE)\n\t\t\t\tbreak\n\t\t\ttry {\n\t\t\t\t// This fails in IE8\n\t\t\t\tresponse = new global.VBArray(xhr.responseBody).toArray()\n\t\t\t} catch (e) {}\n\t\t\tif (response !== null) {\n\t\t\t\tself.push(new Buffer(response))\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Falls through in IE8\t\n\t\tcase 'text':\n\t\t\ttry { // This will fail when readyState = 3 in IE9. Switch mode and wait for readyState = 4\n\t\t\t\tresponse = xhr.responseText\n\t\t\t} catch (e) {\n\t\t\t\tself._mode = 'text:vbarray'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif (response.length > self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = new Buffer(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(new Buffer(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tself.push(null)\n\t}\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction asUint8Array(buf) {\n if (globalThis.Buffer != null) {\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n return buf;\n}\n\nexports.asUint8Array = asUint8Array;\n","module.exports = urlSetQuery\nfunction urlSetQuery (url, query) {\n if (query) {\n // remove optional leading symbols\n query = query.trim().replace(/^(\\?|#|&)/, '')\n\n // don't append empty query\n query = query ? ('?' + query) : query\n\n var parts = url.split(/[\\?\\#]/)\n var start = parts[0]\n if (query && /\\:\\/\\/[^\\/]*$/.test(start)) {\n // e.g. http://foo.com -> http://foo.com/\n start = start + '/'\n }\n var match = url.match(/(\\#.*)$/)\n url = start + query\n if (match) { // add hash back in\n url = url + match[0]\n }\n }\n return url\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","var Buffer = require('buffer').Buffer\n\nmodule.exports = function (buf) {\n\t// If the buffer is backed by a Uint8Array, a faster version will work\n\tif (buf instanceof Uint8Array) {\n\t\t// If the buffer isn't a subarray, return the underlying ArrayBuffer\n\t\tif (buf.byteOffset === 0 && buf.byteLength === buf.buffer.byteLength) {\n\t\t\treturn buf.buffer\n\t\t} else if (typeof buf.buffer.slice === 'function') {\n\t\t\t// Otherwise we need to get a proper copy\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength)\n\t\t}\n\t}\n\n\tif (Buffer.isBuffer(buf)) {\n\t\t// This is the slow version that will work with any Buffer\n\t\t// implementation (even in old browsers)\n\t\tvar arrayCopy = new Uint8Array(buf.length)\n\t\tvar len = buf.length\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tarrayCopy[i] = buf[i]\n\t\t}\n\t\treturn arrayCopy.buffer\n\t} else {\n\t\tthrow new Error('Argument must be a Buffer')\n\t}\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar alloc = require('./alloc.js');\nvar asUint8array = require('./util/as-uint8array.js');\n\nfunction xor(a, b) {\n if (a.length !== b.length) {\n throw new Error('Inputs should have the same length');\n }\n const result = alloc.allocUnsafe(a.length);\n for (let i = 0; i < a.length; i++) {\n result[i] = a[i] ^ b[i];\n }\n return asUint8array.asUint8Array(result);\n}\n\nexports.xor = xor;\n","var picker = function picker(type) {\n return function () {\n return new Promise(function (resolve, reject) {\n var fileLoader = function fileLoader(e) {\n var directory = {};\n var totalFiles = e.target.files.length;\n var loadedFiles = 0;\n [].map.call(e.target.files, function (file) {\n var reader = new FileReader();\n\n reader.onload = function (e) {\n var data = new Uint8Array(e.target.result);\n\n if (type === \"directory\") {\n var path = file.webkitRelativePath;\n directory[path.slice(path.indexOf(\"/\") + 1)] = {\n type: \"text/plain\",\n data: data\n };\n if (++loadedFiles === totalFiles) resolve(directory);\n } else if (type === \"file\") {\n var _path = file.webkitRelativePath;\n resolve({\n \"type\": mimetype.lookup(_path),\n \"data\": data\n });\n } else {\n resolve(data);\n }\n };\n\n reader.readAsArrayBuffer(file);\n });\n };\n\n var fileInput;\n\n if (type === \"directory\") {\n fileInput = document.createElement(\"input\");\n fileInput.addEventListener(\"change\", fileLoader);\n fileInput.type = \"file\";\n fileInput.webkitdirectory = true;\n fileInput.mozdirectory = true;\n fileInput.msdirectory = true;\n fileInput.odirectory = true;\n fileInput.directory = true;\n } else {\n fileInput = document.createElement(\"input\");\n fileInput.addEventListener(\"change\", fileLoader);\n fileInput.type = \"file\";\n }\n\n ;\n var mouseEvent = document.createEvent(\"MouseEvents\");\n mouseEvent.initEvent(\"click\", true, false);\n fileInput.dispatchEvent(mouseEvent);\n });\n };\n};\n\nmodule.exports = {\n data: picker(\"data\"),\n file: picker(\"file\"),\n directory: picker(\"directory\")\n};","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar bases = require('./util/bases.js');\n\nfunction toString(array, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n if ((encoding === 'utf8' || encoding === 'utf-8') && globalThis.Buffer != null && globalThis.Buffer.from != null) {\n return globalThis.Buffer.from(array.buffer, array.byteOffset, array.byteLength).toString('utf8');\n }\n return base.encoder.encode(array).substring(1);\n}\n\nexports.toString = toString;\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n"],"sourceRoot":""}