From 715e1432e633057480cb5dff7f74a87b89ee992b Mon Sep 17 00:00:00 2001 From: zz <1171051090@qq.com> Date: Sun, 8 Sep 2024 22:00:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A1=AB=E5=85=85=E9=A2=9C=E8=89=B2=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dist/index.js | 2 +- dist/index.js.map | 2 +- dist/index.umd.js | 2 +- dist/index.umd.js.map | 2 +- src/fill.js | 6 +++--- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/dist/index.js b/dist/index.js index f5483ef..4cf1445 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,2 +1,2 @@ -function t(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function e(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function r(t){return function(){var r=this,n=arguments;return new Promise((function(i,a){var o=t.apply(r,n);function s(t){e(o,i,a,s,u,"next",t)}function u(t){e(o,i,a,s,u,"throw",t)}s(void 0)}))}}var n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function i(t){var e=t.default;if("function"==typeof e){var r=function(){return e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach((function(e){var n=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(r,e,n.get?n:{enumerable:!0,get:function(){return t[e]}})})),r}var a={exports:{}},o={exports:{}};!function(t){function e(r){return t.exports=e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,e(r)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports}(o),function(t){var e=o.exports.default;function r(){t.exports=r=function(){return n},t.exports.__esModule=!0,t.exports.default=t.exports;var n={},i=Object.prototype,a=i.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},s="function"==typeof Symbol?Symbol:{},u=s.iterator||"@@iterator",l=s.asyncIterator||"@@asyncIterator",f=s.toStringTag||"@@toStringTag";function h(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{h({},"")}catch(t){h=function(t,e,r){return t[e]=r}}function c(t,e,r,n){var i=e&&e.prototype instanceof g?e:g,a=Object.create(i.prototype),s=new R(n||[]);return o(a,"_invoke",{value:S(t,r,s)}),a}function d(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}n.wrap=c;var p={};function g(){}function b(){}function v(){}var m={};h(m,u,(function(){return this}));var y=Object.getPrototypeOf,w=y&&y(y(O([])));w&&w!==i&&a.call(w,u)&&(m=w);var _=v.prototype=g.prototype=Object.create(m);function k(t){["next","throw","return"].forEach((function(e){h(t,e,(function(t){return this._invoke(e,t)}))}))}function x(t,r){function n(i,o,s,u){var l=d(t[i],t,o);if("throw"!==l.type){var f=l.arg,h=f.value;return h&&"object"==e(h)&&a.call(h,"__await")?r.resolve(h.__await).then((function(t){n("next",t,s,u)}),(function(t){n("throw",t,s,u)})):r.resolve(h).then((function(t){f.value=t,s(f)}),(function(t){return n("throw",t,s,u)}))}u(l.arg)}var i;o(this,"_invoke",{value:function(t,e){function a(){return new r((function(r,i){n(t,e,r,i)}))}return i=i?i.then(a,a):a()}})}function S(t,e,r){var n="suspendedStart";return function(i,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===i)throw a;return T()}for(r.method=i,r.arg=a;;){var o=r.delegate;if(o){var s=C(o,r);if(s){if(s===p)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var u=d(t,e,r);if("normal"===u.type){if(n=r.done?"completed":"suspendedYield",u.arg===p)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n="completed",r.method="throw",r.arg=u.arg)}}}function C(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,C(t,e),"throw"===e.method))return p;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var n=d(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,p;var i=n.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,p):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,p)}function A(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function E(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function R(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(A,this),this.reset(!0)}function O(t){if(t){var e=t[u];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,n=function e(){for(;++r=0;--n){var i=this.tryEntries[n],o=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var s=a.call(i,"catchLoc"),u=a.call(i,"finallyLoc");if(s&&u){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&a.call(n,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;E(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:O(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),p}},n}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}(a);var s=a.exports(),u=s;try{regeneratorRuntime=s}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=s:Function("r","regeneratorRuntime = r")(s)}var l={},f={},h="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},c=[],d=[],p="undefined"!=typeof Uint8Array?Uint8Array:Array,g=!1;function b(){g=!0;for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e=0,r=t.length;e>18&63]+c[i>>12&63]+c[i>>6&63]+c[63&i]);return a.join("")}function m(t){var e;g||b();for(var r=t.length,n=r%3,i="",a=[],o=16383,s=0,u=r-n;su?u:s+o));return 1===n?(e=t[r-1],i+=c[e>>2],i+=c[e<<4&63],i+="=="):2===n&&(e=(t[r-2]<<8)+t[r-1],i+=c[e>>10],i+=c[e>>4&63],i+=c[e<<2&63],i+="="),a.push(i),a.join("")}function y(t,e,r,n,i){var a,o,s=8*i-n-1,u=(1<>1,f=-7,h=r?i-1:0,c=r?-1:1,d=t[e+h];for(h+=c,a=d&(1<<-f)-1,d>>=-f,f+=s;f>0;a=256*a+t[e+h],h+=c,f-=8);for(o=a&(1<<-f)-1,a>>=-f,f+=n;f>0;o=256*o+t[e+h],h+=c,f-=8);if(0===a)a=1-l;else{if(a===u)return o?NaN:1/0*(d?-1:1);o+=Math.pow(2,n),a-=l}return(d?-1:1)*o*Math.pow(2,a-n)}function w(t,e,r,n,i,a){var o,s,u,l=8*a-i-1,f=(1<>1,c=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:a-1,p=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=f):(o=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-o))<1&&(o--,u*=2),(e+=o+h>=1?c/u:c*Math.pow(2,1-h))*u>=2&&(o++,u/=2),o+h>=f?(s=0,o=f):o+h>=1?(s=(e*u-1)*Math.pow(2,i),o+=h):(s=e*Math.pow(2,h-1)*Math.pow(2,i),o=0));i>=8;t[r+d]=255&s,d+=p,s/=256,i-=8);for(o=o<0;t[r+d]=255&o,d+=p,o/=256,l-=8);t[r+d-p]|=128*g}var _={}.toString,k=Array.isArray||function(t){return"[object Array]"==_.call(t)};A.TYPED_ARRAY_SUPPORT=void 0===h.TYPED_ARRAY_SUPPORT||h.TYPED_ARRAY_SUPPORT;var x=S();function S(){return A.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function C(t,e){if(S()=S())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+S().toString(16)+" bytes");return 0|t}function M(t){return!(null==t||!t._isBuffer)}function I(t,e){if(M(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return at(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return ot(t).length;default:if(n)return at(t).length;e=(""+e).toLowerCase(),n=!0}}function P(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return V(this,e,r);case"utf8":case"utf-8":return q(this,e,r);case"ascii":return Y(this,e,r);case"latin1":case"binary":return G(this,e,r);case"base64":return Z(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return K(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function B(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function D(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=A.from(e,n)),M(e))return 0===e.length?-1:z(t,e,r,n,i);if("number"==typeof e)return e&=255,A.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):z(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function z(t,e,r,n,i){var a,o=1,s=t.length,u=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;o=2,s/=2,u/=2,r/=2}function l(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(i){var f=-1;for(a=r;as&&(r=s-u),a=r;a>=0;a--){for(var h=!0,c=0;ci&&(n=i):n=i;var a=e.length;if(a%2!=0)throw new TypeError("Invalid hex string");n>a/2&&(n=a/2);for(var o=0;o>8,i=r%256,a.push(i),a.push(n);return a}(e,t.length-r),t,r,n)}function Z(t,e,r){return 0===e&&r===t.length?m(t):m(t.slice(e,r))}function q(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:l>223?3:l>191?2:1;if(i+h<=r)switch(h){case 1:l<128&&(f=l);break;case 2:128==(192&(a=t[i+1]))&&(u=(31&l)<<6|63&a)>127&&(f=u);break;case 3:a=t[i+1],o=t[i+2],128==(192&a)&&128==(192&o)&&(u=(15&l)<<12|(63&a)<<6|63&o)>2047&&(u<55296||u>57343)&&(f=u);break;case 4:a=t[i+1],o=t[i+2],s=t[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(u=(15&l)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&u<1114112&&(f=u)}null===f?(f=65533,h=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),i+=h}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);var r="",n=0;for(;n0&&(t=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(t+=" ... ")),""},A.prototype.compare=function(t,e,r,n,i){if(!M(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var a=(i>>>=0)-(n>>>=0),o=(r>>>=0)-(e>>>=0),s=Math.min(a,o),u=this.slice(n,i),l=t.slice(e,r),f=0;fi)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return j(this,t,e,r);case"utf8":case"utf-8":return F(this,t,e,r);case"ascii":return N(this,t,e,r);case"latin1":case"binary":return U(this,t,e,r);case"base64":return H(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return W(this,t,e,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},A.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Y(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",a=e;ar)throw new RangeError("Trying to access beyond buffer length")}function $(t,e,r,n,i,a){if(!M(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function J(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,a=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function Q(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,a=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function tt(t,e,r,n,i,a){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function et(t,e,r,n,i){return i||tt(t,0,r,4),w(t,e,r,n,23,4),r+4}function rt(t,e,r,n,i){return i||tt(t,0,r,8),w(t,e,r,n,52,8),r+8}A.prototype.slice=function(t,e){var r,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e0&&(i*=256);)n+=this[t+--e]*i;return n},A.prototype.readUInt8=function(t,e){return e||X(t,1,this.length),this[t]},A.prototype.readUInt16LE=function(t,e){return e||X(t,2,this.length),this[t]|this[t+1]<<8},A.prototype.readUInt16BE=function(t,e){return e||X(t,2,this.length),this[t]<<8|this[t+1]},A.prototype.readUInt32LE=function(t,e){return e||X(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},A.prototype.readUInt32BE=function(t,e){return e||X(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},A.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||X(t,e,this.length);for(var n=this[t],i=1,a=0;++a=(i*=128)&&(n-=Math.pow(2,8*e)),n},A.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||X(t,e,this.length);for(var n=e,i=1,a=this[t+--n];n>0&&(i*=256);)a+=this[t+--n]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*e)),a},A.prototype.readInt8=function(t,e){return e||X(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},A.prototype.readInt16LE=function(t,e){e||X(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},A.prototype.readInt16BE=function(t,e){e||X(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},A.prototype.readInt32LE=function(t,e){return e||X(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},A.prototype.readInt32BE=function(t,e){return e||X(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},A.prototype.readFloatLE=function(t,e){return e||X(t,4,this.length),y(this,t,!0,23,4)},A.prototype.readFloatBE=function(t,e){return e||X(t,4,this.length),y(this,t,!1,23,4)},A.prototype.readDoubleLE=function(t,e){return e||X(t,8,this.length),y(this,t,!0,52,8)},A.prototype.readDoubleBE=function(t,e){return e||X(t,8,this.length),y(this,t,!1,52,8)},A.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e|=0,r|=0,n)||$(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[e]=255&t;++a=0&&(a*=256);)this[e+i]=t/a&255;return e+r},A.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||$(this,t,e,1,255,0),A.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},A.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||$(this,t,e,2,65535,0),A.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):J(this,t,e,!0),e+2},A.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||$(this,t,e,2,65535,0),A.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):J(this,t,e,!1),e+2},A.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||$(this,t,e,4,4294967295,0),A.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):Q(this,t,e,!0),e+4},A.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||$(this,t,e,4,4294967295,0),A.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):Q(this,t,e,!1),e+4},A.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);$(this,t,e,r,i-1,-i)}var a=0,o=1,s=0;for(this[e]=255&t;++a>0)-s&255;return e+r},A.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);$(this,t,e,r,i-1,-i)}var a=r-1,o=1,s=0;for(this[e+a]=255&t;--a>=0&&(o*=256);)t<0&&0===s&&0!==this[e+a+1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},A.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||$(this,t,e,1,127,-128),A.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},A.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||$(this,t,e,2,32767,-32768),A.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):J(this,t,e,!0),e+2},A.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||$(this,t,e,2,32767,-32768),A.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):J(this,t,e,!1),e+2},A.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||$(this,t,e,4,2147483647,-2147483648),A.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):Q(this,t,e,!0),e+4},A.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||$(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),A.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):Q(this,t,e,!1),e+4},A.prototype.writeFloatLE=function(t,e,r){return et(this,t,e,!0,r)},A.prototype.writeFloatBE=function(t,e,r){return et(this,t,e,!1,r)},A.prototype.writeDoubleLE=function(t,e,r){return rt(this,t,e,!0,r)},A.prototype.writeDoubleBE=function(t,e,r){return rt(this,t,e,!1,r)},A.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else if(a<1e3||!A.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(a=e;a55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&a.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function ot(t){return function(t){var e,r,n,i,a,o;g||b();var s=t.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");a="="===t[s-2]?2:"="===t[s-1]?1:0,o=new p(3*s/4-a),n=a>0?s-4:s;var u=0;for(e=0,r=0;e>16&255,o[u++]=i>>8&255,o[u++]=255&i;return 2===a?(i=d[t.charCodeAt(e)]<<2|d[t.charCodeAt(e+1)]>>4,o[u++]=255&i):1===a&&(i=d[t.charCodeAt(e)]<<10|d[t.charCodeAt(e+1)]<<4|d[t.charCodeAt(e+2)]>>2,o[u++]=i>>8&255,o[u++]=255&i),o}(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(nt,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function st(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function ut(t){return null!=t&&(!!t._isBuffer||lt(t)||function(t){return"function"==typeof t.readFloatLE&&"function"==typeof t.slice&<(t.slice(0,0))}(t))}function lt(t){return!!t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}var ft=Object.freeze({__proto__:null,INSPECT_MAX_BYTES:50,kMaxLength:x,Buffer:A,SlowBuffer:function(t){return+t!=t&&(t=0),A.alloc(+t)},isBuffer:ut}),ht={};function ct(){throw new Error("setTimeout has not been defined")}function dt(){throw new Error("clearTimeout has not been defined")}var pt=ct,gt=dt;function bt(t){if(pt===setTimeout)return setTimeout(t,0);if((pt===ct||!pt)&&setTimeout)return pt=setTimeout,setTimeout(t,0);try{return pt(t,0)}catch(e){try{return pt.call(null,t,0)}catch(e){return pt.call(this,t,0)}}}"function"==typeof h.setTimeout&&(pt=setTimeout),"function"==typeof h.clearTimeout&&(gt=clearTimeout);var vt,mt=[],yt=!1,wt=-1;function _t(){yt&&vt&&(yt=!1,vt.length?mt=vt.concat(mt):wt=-1,mt.length&&kt())}function kt(){if(!yt){var t=bt(_t);yt=!0;for(var e=mt.length;e;){for(vt=mt,mt=[];++wt1)for(var r=1;r0&&o.length>i){o.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+e+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=t,u.type=e,u.count=o.length,s=u,"function"==typeof console.warn?console.warn(s):console.log(s)}}else o=a[e]=r,++t._eventsCount;return t}function Gt(t,e,r){var n=!1;function i(){t.removeListener(e,i),n||(n=!0,r.apply(t,arguments))}return i.listener=r,i}function Vt(t){var e=this._events;if(e){var r=e[t];if("function"==typeof r)return 1;if(r)return r.length}return 0}function Kt(t,e){for(var r=new Array(e);e--;)r[e]=t[e];return r}jt.prototype=Object.create(null),Ft.EventEmitter=Ft,Ft.usingDomains=!1,Ft.prototype.domain=void 0,Ft.prototype._events=void 0,Ft.prototype._maxListeners=void 0,Ft.defaultMaxListeners=10,Ft.init=function(){this.domain=null,Ft.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new jt,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Ft.prototype.setMaxListeners=function(t){if("number"!=typeof t||t<0||isNaN(t))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=t,this},Ft.prototype.getMaxListeners=function(){return Nt(this)},Ft.prototype.emit=function(t){var e,r,n,i,a,o,s,u="error"===t;if(o=this._events)u=u&&null==o.error;else if(!u)return!1;if(s=this.domain,u){if(e=arguments[1],!s){if(e instanceof Error)throw e;var l=new Error('Uncaught, unspecified "error" event. ('+e+")");throw l.context=e,l}return e||(e=new Error('Uncaught, unspecified "error" event')),e.domainEmitter=this,e.domain=s,e.domainThrown=!1,s.emit("error",e),!1}if(!(r=o[t]))return!1;var f="function"==typeof r;switch(n=arguments.length){case 1:Ut(r,f,this);break;case 2:Ht(r,f,this,arguments[1]);break;case 3:Wt(r,f,this,arguments[1],arguments[2]);break;case 4:Zt(r,f,this,arguments[1],arguments[2],arguments[3]);break;default:for(i=new Array(n-1),a=1;a0;)if(r[a]===e||r[a].listener&&r[a].listener===e){o=r[a].listener,i=a;break}if(i<0)return this;if(1===r.length){if(r[0]=void 0,0==--this._eventsCount)return this._events=new jt,this;delete n[t]}else!function(t,e){for(var r=e,n=r+1,i=t.length;n0?Reflect.ownKeys(this._events):[]};var Xt=Object.freeze({__proto__:null,default:Ft,EventEmitter:Ft}),$t="function"==typeof Object.create?function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:function(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t},Jt=/%[sdj%]/g;function Qt(t){if(!ge(t)){for(var e=[],r=0;r=i)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}})),o=n[r];r=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),he(e)?r.showHidden=e:e&&Te(r,e),ve(r.showHidden)&&(r.showHidden=!1),ve(r.depth)&&(r.depth=2),ve(r.colors)&&(r.colors=!1),ve(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=ae),se(r,t,r.depth)}function ae(t,e){var r=ie.styles[e];return r?"["+ie.colors[r][0]+"m"+t+"["+ie.colors[r][1]+"m":t}function oe(t,e){return t}function se(t,e,r){if(t.customInspect&&e&&ke(e.inspect)&&e.inspect!==ie&&(!e.constructor||e.constructor.prototype!==e)){var n=e.inspect(r,t);return ge(n)||(n=se(t,n,r)),n}var i=function(t,e){if(ve(e))return t.stylize("undefined","undefined");if(ge(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}if(pe(e))return t.stylize(""+e,"number");if(he(e))return t.stylize(""+e,"boolean");if(ce(e))return t.stylize("null","null")}(t,e);if(i)return i;var a=Object.keys(e),o=function(t){var e={};return t.forEach((function(t,r){e[t]=!0})),e}(a);if(t.showHidden&&(a=Object.getOwnPropertyNames(e)),_e(e)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return ue(e);if(0===a.length){if(ke(e)){var s=e.name?": "+e.name:"";return t.stylize("[Function"+s+"]","special")}if(me(e))return t.stylize(RegExp.prototype.toString.call(e),"regexp");if(we(e))return t.stylize(Date.prototype.toString.call(e),"date");if(_e(e))return ue(e)}var u,l="",f=!1,h=["{","}"];(fe(e)&&(f=!0,h=["[","]"]),ke(e))&&(l=" [Function"+(e.name?": "+e.name:"")+"]");return me(e)&&(l=" "+RegExp.prototype.toString.call(e)),we(e)&&(l=" "+Date.prototype.toUTCString.call(e)),_e(e)&&(l=" "+ue(e)),0!==a.length||f&&0!=e.length?r<0?me(e)?t.stylize(RegExp.prototype.toString.call(e),"regexp"):t.stylize("[Object]","special"):(t.seen.push(e),u=f?function(t,e,r,n,i){for(var a=[],o=0,s=e.length;o60)return r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1];return r[0]+e+" "+t.join(", ")+" "+r[1]}(u,l,h)):h[0]+l+h[1]}function ue(t){return"["+Error.prototype.toString.call(t)+"]"}function le(t,e,r,n,i,a){var o,s,u;if((u=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?s=u.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):u.set&&(s=t.stylize("[Setter]","special")),Le(n,i)||(o="["+i+"]"),s||(t.seen.indexOf(u.value)<0?(s=ce(r)?se(t,u.value,null):se(t,u.value,r-1)).indexOf("\n")>-1&&(s=a?s.split("\n").map((function(t){return" "+t})).join("\n").substr(2):"\n"+s.split("\n").map((function(t){return" "+t})).join("\n")):s=t.stylize("[Circular]","special")),ve(o)){if(a&&i.match(/^\d+$/))return s;(o=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=t.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=t.stylize(o,"string"))}return o+": "+s}function fe(t){return Array.isArray(t)}function he(t){return"boolean"==typeof t}function ce(t){return null===t}function de(t){return null==t}function pe(t){return"number"==typeof t}function ge(t){return"string"==typeof t}function be(t){return"symbol"==typeof t}function ve(t){return void 0===t}function me(t){return ye(t)&&"[object RegExp]"===Ce(t)}function ye(t){return"object"==typeof t&&null!==t}function we(t){return ye(t)&&"[object Date]"===Ce(t)}function _e(t){return ye(t)&&("[object Error]"===Ce(t)||t instanceof Error)}function ke(t){return"function"==typeof t}function xe(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t}function Se(t){return ut(t)}function Ce(t){return Object.prototype.toString.call(t)}function Ae(t){return t<10?"0"+t.toString(10):t.toString(10)}ie.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},ie.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};var Ee=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Re(){var t=new Date,e=[Ae(t.getHours()),Ae(t.getMinutes()),Ae(t.getSeconds())].join(":");return[t.getDate(),Ee[t.getMonth()],e].join(" ")}function Oe(){console.log("%s - %s",Re(),Qt.apply(null,arguments))}function Te(t,e){if(!e||!ye(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t}function Le(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var Me={inherits:$t,_extend:Te,log:Oe,isBuffer:Se,isPrimitive:xe,isFunction:ke,isError:_e,isDate:we,isObject:ye,isRegExp:me,isUndefined:ve,isSymbol:be,isString:ge,isNumber:pe,isNullOrUndefined:de,isNull:ce,isBoolean:he,isArray:fe,inspect:ie,deprecate:te,format:Qt,debuglog:ne},Ie=Object.freeze({__proto__:null,format:Qt,deprecate:te,debuglog:ne,inspect:ie,isArray:fe,isBoolean:he,isNull:ce,isNullOrUndefined:de,isNumber:pe,isString:ge,isSymbol:be,isUndefined:ve,isRegExp:me,isObject:ye,isDate:we,isError:_e,isFunction:ke,isPrimitive:xe,isBuffer:Se,log:Oe,inherits:$t,_extend:Te,default:Me});function Pe(){this.head=null,this.tail=null,this.length=0}Pe.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},Pe.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},Pe.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},Pe.prototype.clear=function(){this.head=this.tail=null,this.length=0},Pe.prototype.join=function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r},Pe.prototype.concat=function(t){if(0===this.length)return A.alloc(0);if(1===this.length)return this.head.data;for(var e=A.allocUnsafe(t>>>0),r=this.head,n=0;r;)r.data.copy(e,n),n+=r.data.length,r=r.next;return e};var Be=A.isEncoding||function(t){switch(t&&t.toLowerCase()){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":return!0;default:return!1}};function De(t){switch(this.encoding=(t||"utf8").toLowerCase().replace(/[-_]/,""),function(t){if(t&&!Be(t))throw new Error("Unknown encoding: "+t)}(t),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=je;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=Fe;break;default:return void(this.write=ze)}this.charBuffer=new A(6),this.charReceived=0,this.charLength=0}function ze(t){return t.toString(this.encoding)}function je(t){this.charReceived=t.length%2,this.charLength=this.charReceived?2:0}function Fe(t){this.charReceived=t.length%3,this.charLength=this.charReceived?3:0}De.prototype.write=function(t){for(var e="";this.charLength;){var r=t.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:t.length;if(t.copy(this.charBuffer,this.charReceived,0,r),this.charReceived+=r,this.charReceived=55296&&i<=56319)){if(this.charReceived=this.charLength=0,0===t.length)return e;break}this.charLength+=this.surrogateSize,e=""}this.detectIncompleteChar(t);var n=t.length;this.charLength&&(t.copy(this.charBuffer,0,t.length-this.charReceived,n),n-=this.charReceived);var i;n=(e+=t.toString(this.encoding,0,n)).length-1;if((i=e.charCodeAt(n))>=55296&&i<=56319){var a=this.surrogateSize;return this.charLength+=a,this.charReceived+=a,this.charBuffer.copy(this.charBuffer,a,0,a),t.copy(this.charBuffer,0,0,a),e.substring(0,n)}return e},De.prototype.detectIncompleteChar=function(t){for(var e=t.length>=3?3:t.length;e>0;e--){var r=t[t.length-e];if(1==e&&r>>5==6){this.charLength=2;break}if(e<=2&&r>>4==14){this.charLength=3;break}if(e<=3&&r>>3==30){this.charLength=4;break}}this.charReceived=e},De.prototype.end=function(t){var e="";if(t&&t.length&&(e=this.write(t)),this.charReceived){var r=this.charReceived,n=this.charBuffer,i=this.encoding;e+=n.slice(0,r).toString(i)}return e},He.ReadableState=Ue;var Ne=ne("stream");function Ue(t,e){t=t||{},this.objectMode=!!t.objectMode,e instanceof gr&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var r=t.highWaterMark,n=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:n,this.highWaterMark=~~this.highWaterMark,this.buffer=new Pe,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(this.decoder=new De(t.encoding),this.encoding=t.encoding)}function He(t){if(!(this instanceof He))return new He(t);this._readableState=new Ue(t,this),this.readable=!0,t&&"function"==typeof t.read&&(this._read=t.read),Ft.call(this)}function We(t,e,r,n,i){var a=function(t,e){var r=null;ut(e)||"string"==typeof e||null==e||t.objectMode||(r=new TypeError("Invalid non-string/buffer chunk"));return r}(e,r);if(a)t.emit("error",a);else if(null===r)e.reading=!1,function(t,e){if(e.ended)return;if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,qe(t)}(t,e);else if(e.objectMode||r&&r.length>0)if(e.ended&&!i){var o=new Error("stream.push() after EOF");t.emit("error",o)}else if(e.endEmitted&&i){var s=new Error("stream.unshift() after end event");t.emit("error",s)}else{var u;!e.decoder||i||n||(r=e.decoder.write(r),u=!e.objectMode&&0===r.length),i||(e.reading=!1),u||(e.flowing&&0===e.length&&!e.sync?(t.emit("data",r),t.read(0)):(e.length+=e.objectMode?1:r.length,i?e.buffer.unshift(r):e.buffer.push(r),e.needReadable&&qe(t))),function(t,e){e.readingMore||(e.readingMore=!0,xt(Ge,t,e))}(t,e)}else i||(e.reading=!1);return function(t){return!t.ended&&(t.needReadable||t.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=8388608?t=8388608:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function qe(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(Ne("emitReadable",e.flowing),e.emittedReadable=!0,e.sync?xt(Ye,t):Ye(t))}function Ye(t){Ne("emit readable"),t.emit("readable"),Xe(t)}function Ge(t,e){for(var r=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):r=function(t,e,r){var n;ta.length?a.length:t;if(o===a.length?i+=a:i+=a.slice(0,t),0===(t-=o)){o===a.length?(++n,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=a.slice(o));break}++n}return e.length-=n,i}(t,e):function(t,e){var r=A.allocUnsafe(t),n=e.head,i=1;n.data.copy(r),t-=n.data.length;for(;n=n.next;){var a=n.data,o=t>a.length?a.length:t;if(a.copy(r,r.length-t,0,o),0===(t-=o)){o===a.length?(++i,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=a.slice(o));break}++i}return e.length-=i,r}(t,e);return n}(t,e.buffer,e.decoder),r);var r}function Je(t){var e=t._readableState;if(e.length>0)throw new Error('"endReadable()" called on non-empty stream');e.endEmitted||(e.ended=!0,xt(Qe,e,t))}function Qe(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function tr(t,e){for(var r=0,n=t.length;r=e.highWaterMark||e.ended))return Ne("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?Je(this):qe(this),null;if(0===(t=Ze(t,e))&&e.ended)return 0===e.length&&Je(this),null;var n,i=e.needReadable;return Ne("need readable",i),(0===e.length||e.length-t0?$e(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&Je(this)),null!==n&&this.emit("data",n),n},He.prototype._read=function(t){this.emit("error",new Error("not implemented"))},He.prototype.pipe=function(t,e){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=t;break;case 1:n.pipes=[n.pipes,t];break;default:n.pipes.push(t)}n.pipesCount+=1,Ne("pipe count=%d opts=%j",n.pipesCount,e);var i=!e||!1!==e.end?o:l;function a(t){Ne("onunpipe"),t===r&&l()}function o(){Ne("onend"),t.end()}n.endEmitted?xt(i):r.once("end",i),t.on("unpipe",a);var s=function(t){return function(){var e=t._readableState;Ne("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&t.listeners("data").length&&(e.flowing=!0,Xe(t))}}(r);t.on("drain",s);var u=!1;function l(){Ne("cleanup"),t.removeListener("close",d),t.removeListener("finish",p),t.removeListener("drain",s),t.removeListener("error",c),t.removeListener("unpipe",a),r.removeListener("end",o),r.removeListener("end",l),r.removeListener("data",h),u=!0,!n.awaitDrain||t._writableState&&!t._writableState.needDrain||s()}var f=!1;function h(e){Ne("ondata"),f=!1,!1!==t.write(e)||f||((1===n.pipesCount&&n.pipes===t||n.pipesCount>1&&-1!==tr(n.pipes,t))&&!u&&(Ne("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,f=!0),r.pause())}function c(e){var r;Ne("onerror",e),g(),t.removeListener("error",c),0===(r="error",t.listeners(r).length)&&t.emit("error",e)}function d(){t.removeListener("finish",p),g()}function p(){Ne("onfinish"),t.removeListener("close",d),g()}function g(){Ne("unpipe"),r.unpipe(t)}return r.on("data",h),function(t,e,r){if("function"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,"error",c),t.once("close",d),t.once("finish",p),t.emit("pipe",r),n.flowing||(Ne("pipe resume"),r.resume()),t},He.prototype.unpipe=function(t){var e=this._readableState;if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this)),this;if(!t){var r=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var i=0;i-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},ir.prototype._write=function(t,e,r){r(new Error("not implemented"))},ir.prototype._writev=null,ir.prototype.end=function(t,e,r){var n=this._writableState;"function"==typeof t?(r=t,t=null,e=null):"function"==typeof e&&(r=e,e=null),null!=t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(t,e,r){e.ending=!0,fr(t,e),r&&(e.finished?xt(r):t.once("finish",r));e.ended=!0,t.writable=!1}(this,n,r)},$t(gr,He);for(var cr=Object.keys(ir.prototype),dr=0;dr0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r},t.prototype.concat=function(t){if(0===this.length)return e.alloc(0);if(1===this.length)return this.head.data;for(var r,n,i,a=e.allocUnsafe(t>>>0),o=this.head,s=0;o;)r=o.data,n=a,i=s,r.copy(n,i),s+=o.data.length,o=o.next;return a},t}(),r&&r.inspect&&r.inspect.custom&&(t.exports.prototype[r.inspect.custom]=function(){var t=r.inspect({length:this.length});return this.constructor.name+" "+t})}(en)),en.exports}function nn(){if(Vr)return Gr;Vr=1;var t=Rr();function e(t,e){t.emit("error",e)}return Gr={destroy:function(r,n){var i=this,a=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;return a||o?(n?n(r):!r||this._writableState&&this._writableState.errorEmitted||t.nextTick(e,this,r),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,(function(r){!n&&r?(t.nextTick(e,i,r),i._writableState&&(i._writableState.errorEmitted=!0)):n&&n(r)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}},Gr}function an(){if(Jr)return $r;Jr=1;var t=Rr();function e(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e,r){var n=t.entry;t.entry=null;for(;n;){var i=n.callback;e.pendingcb--,i(r),n=n.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}(e,t)}}$r=p;var r,i=t.nextTick;p.WritableState=d;var a=Object.create(Fr());a.inherits=qr();var o={deprecate:Xr?Kr:(Xr=1,Kr=Wr.deprecate)},s=Mr(),u=Dr().Buffer,l=n.Uint8Array||function(){};var f,h=nn();function c(){}function d(n,a){r=r||on(),n=n||{};var o=a instanceof r;this.objectMode=!!n.objectMode,o&&(this.objectMode=this.objectMode||!!n.writableObjectMode);var s=n.highWaterMark,u=n.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=s||0===s?s:o&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===n.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=n.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,r){var n=e._writableState,a=n.sync,o=n.writecb;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(n),r)!function(e,r,n,i,a){--r.pendingcb,n?(t.nextTick(a,i),t.nextTick(w,e,r),e._writableState.errorEmitted=!0,e.emit("error",i)):(a(i),e._writableState.errorEmitted=!0,e.emit("error",i),w(e,r))}(e,n,a,r,o);else{var s=m(n);s||n.corked||n.bufferProcessing||!n.bufferedRequest||v(e,n),a?i(b,e,n,s,o):b(e,n,s,o)}}(a,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}function p(t){if(r=r||on(),!(f.call(p,this)||this instanceof r))return new p(t);this._writableState=new d(t,this),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev),"function"==typeof t.destroy&&(this._destroy=t.destroy),"function"==typeof t.final&&(this._final=t.final)),s.call(this)}function g(t,e,r,n,i,a,o){e.writelen=n,e.writecb=o,e.writing=!0,e.sync=!0,r?t._writev(i,e.onwrite):t._write(i,a,e.onwrite),e.sync=!1}function b(t,e,r,n){r||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}(t,e),e.pendingcb--,n(),w(t,e)}function v(t,r){r.bufferProcessing=!0;var n=r.bufferedRequest;if(t._writev&&n&&n.next){var i=r.bufferedRequestCount,a=new Array(i),o=r.corkedRequestsFree;o.entry=n;for(var s=0,u=!0;n;)a[s]=n,n.isBuf||(u=!1),n=n.next,s+=1;a.allBuffers=u,g(t,r,!0,r.length,a,"",o.finish),r.pendingcb++,r.lastBufferedRequest=null,o.next?(r.corkedRequestsFree=o.next,o.next=null):r.corkedRequestsFree=new e(r),r.bufferedRequestCount=0}else{for(;n;){var l=n.chunk,f=n.encoding,h=n.callback;if(g(t,r,!1,r.objectMode?1:l.length,l,f,h),n=n.next,r.bufferedRequestCount--,r.writing)break}null===n&&(r.lastBufferedRequest=null)}r.bufferedRequest=n,r.bufferProcessing=!1}function m(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function y(t,e){t._final((function(r){e.pendingcb--,r&&t.emit("error",r),e.prefinished=!0,t.emit("prefinish"),w(t,e)}))}function w(e,r){var n=m(r);return n&&(!function(e,r){r.prefinished||r.finalCalled||("function"==typeof e._final?(r.pendingcb++,r.finalCalled=!0,t.nextTick(y,e,r)):(r.prefinished=!0,e.emit("prefinish")))}(e,r),0===r.pendingcb&&(r.finished=!0,e.emit("finish"))),n}return a.inherits(p,s),d.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(d.prototype,"buffer",{get:o.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(f=Function.prototype[Symbol.hasInstance],Object.defineProperty(p,Symbol.hasInstance,{value:function(t){return!!f.call(this,t)||this===p&&(t&&t._writableState instanceof d)}})):f=function(t){return t instanceof this},p.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},p.prototype.write=function(e,r,n){var i,a=this._writableState,o=!1,s=!a.objectMode&&(i=e,u.isBuffer(i)||i instanceof l);return s&&!u.isBuffer(e)&&(e=function(t){return u.from(t)}(e)),"function"==typeof r&&(n=r,r=null),s?r="buffer":r||(r=a.defaultEncoding),"function"!=typeof n&&(n=c),a.ended?function(e,r){var n=new Error("write after end");e.emit("error",n),t.nextTick(r,n)}(this,n):(s||function(e,r,n,i){var a=!0,o=!1;return null===n?o=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||r.objectMode||(o=new TypeError("Invalid non-string/buffer chunk")),o&&(e.emit("error",o),t.nextTick(i,o),a=!1),a}(this,a,e,n))&&(a.pendingcb++,o=function(t,e,r,n,i,a){if(!r){var o=function(t,e,r){t.objectMode||!1===t.decodeStrings||"string"!=typeof e||(e=u.from(e,r));return e}(e,n,i);n!==o&&(r=!0,i="buffer",n=o)}var s=e.objectMode?1:n.length;e.length+=s;var l=e.length-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(p.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),p.prototype._write=function(t,e,r){r(new Error("_write() is not implemented"))},p.prototype._writev=null,p.prototype.end=function(e,r,n){var i=this._writableState;"function"==typeof e?(n=e,e=null,r=null):"function"==typeof r&&(n=r,r=null),null!=e&&this.write(e,r),i.corked&&(i.corked=1,this.uncork()),i.ending||i.finished||function(e,r,n){r.ending=!0,w(e,r),n&&(r.finished?t.nextTick(n):e.once("finish",n));r.ended=!0,e.writable=!1}(this,i,n)},Object.defineProperty(p.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),p.prototype.destroy=h.destroy,p.prototype._undestroy=h.undestroy,p.prototype._destroy=function(t,e){this.end(),e(t)},$r}function on(){if(tn)return Qr;tn=1;var t=Rr(),e=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};Qr=u;var r=Object.create(Fr());r.inherits=qr();var n=vn(),i=an();r.inherits(u,n);for(var a=e(i.prototype),o=0;o>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function i(t){var e=this.lastTotal-this.lastNeed,r=function(t,e,r){if(128!=(192&e[0]))return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"�"}}(this,t);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function a(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function o(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function s(t,e){var r=(t.length-e)%3;return 0===r?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function u(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function l(t){return t.toString(this.encoding)}function f(t){return t&&t.length?this.write(t):""}return gn.StringDecoder=r,r.prototype.write=function(t){if(0===t.length)return"";var e,r;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return a>0&&(t.lastNeed=a-1),a;if(--i=0)return a>0&&(t.lastNeed=a-2),a;if(--i=0)return a>0&&(2===a?a=0:t.lastNeed=a-3),a;return 0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var i=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,i),t.toString("utf8",e,i)},r.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length},gn}function vn(){if(ln)return un;ln=1;var t=Rr();un=b;var e,r=function(){if(Cr)return Sr;Cr=1;var t={}.toString;return Sr=Array.isArray||function(e){return"[object Array]"==t.call(e)}}();b.ReadableState=g,Tr.EventEmitter;var i=function(t,e){return t.listeners(e).length},a=Mr(),o=Dr().Buffer,s=n.Uint8Array||function(){};var u=Object.create(Fr());u.inherits=qr();var l=Wr,f=void 0;f=l&&l.debuglog?l.debuglog("stream"):function(){};var h,c=rn(),d=nn();u.inherits(b,a);var p=["error","close","destroy","pause","resume"];function g(t,r){t=t||{};var n=r instanceof(e=e||on());this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var i=t.highWaterMark,a=t.readableHighWaterMark,o=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(a||0===a)?a:o,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new c,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(h||(h=bn().StringDecoder),this.decoder=new h(t.encoding),this.encoding=t.encoding)}function b(t){if(e=e||on(),!(this instanceof b))return new b(t);this._readableState=new g(t,this),this.readable=!0,t&&("function"==typeof t.read&&(this._read=t.read),"function"==typeof t.destroy&&(this._destroy=t.destroy)),a.call(this)}function v(t,e,r,n,i){var a,u=t._readableState;null===e?(u.reading=!1,function(t,e){if(e.ended)return;if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,_(t)}(t,u)):(i||(a=function(t,e){var r;n=e,o.isBuffer(n)||n instanceof s||"string"==typeof e||void 0===e||t.objectMode||(r=new TypeError("Invalid non-string/buffer chunk"));var n;return r}(u,e)),a?t.emit("error",a):u.objectMode||e&&e.length>0?("string"==typeof e||u.objectMode||Object.getPrototypeOf(e)===o.prototype||(e=function(t){return o.from(t)}(e)),n?u.endEmitted?t.emit("error",new Error("stream.unshift() after end event")):m(t,u,e,!0):u.ended?t.emit("error",new Error("stream.push() after EOF")):(u.reading=!1,u.decoder&&!r?(e=u.decoder.write(e),u.objectMode||0!==e.length?m(t,u,e,!1):x(t,u)):m(t,u,e,!1))):n||(u.reading=!1));return function(t){return!t.ended&&(t.needReadable||t.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=y?t=y:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function _(e){var r=e._readableState;r.needReadable=!1,r.emittedReadable||(f("emitReadable",r.flowing),r.emittedReadable=!0,r.sync?t.nextTick(k,e):k(e))}function k(t){f("emit readable"),t.emit("readable"),E(t)}function x(e,r){r.readingMore||(r.readingMore=!0,t.nextTick(S,e,r))}function S(t,e){for(var r=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):r=function(t,e,r){var n;ta.length?a.length:t;if(o===a.length?i+=a:i+=a.slice(0,t),0===(t-=o)){o===a.length?(++n,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=a.slice(o));break}++n}return e.length-=n,i}(t,e):function(t,e){var r=o.allocUnsafe(t),n=e.head,i=1;n.data.copy(r),t-=n.data.length;for(;n=n.next;){var a=n.data,s=t>a.length?a.length:t;if(a.copy(r,r.length-t,0,s),0===(t-=s)){s===a.length?(++i,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=a.slice(s));break}++i}return e.length-=i,r}(t,e);return n}(t,e.buffer,e.decoder),r);var r}function O(e){var r=e._readableState;if(r.length>0)throw new Error('"endReadable()" called on non-empty stream');r.endEmitted||(r.ended=!0,t.nextTick(T,r,e))}function T(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function L(t,e){for(var r=0,n=t.length;r=e.highWaterMark||e.ended))return f("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?O(this):_(this),null;if(0===(t=w(t,e))&&e.ended)return 0===e.length&&O(this),null;var n,i=e.needReadable;return f("need readable",i),(0===e.length||e.length-t0?R(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&O(this)),null!==n&&this.emit("data",n),n},b.prototype._read=function(t){this.emit("error",new Error("_read() is not implemented"))},b.prototype.pipe=function(e,n){var a=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=e;break;case 1:o.pipes=[o.pipes,e];break;default:o.pipes.push(e)}o.pipesCount+=1,f("pipe count=%d opts=%j",o.pipesCount,n);var s=(!n||!1!==n.end)&&e!==Dt.stdout&&e!==Dt.stderr?l:m;function u(t,r){f("onunpipe"),t===a&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,f("cleanup"),e.removeListener("close",b),e.removeListener("finish",v),e.removeListener("drain",h),e.removeListener("error",g),e.removeListener("unpipe",u),a.removeListener("end",l),a.removeListener("end",m),a.removeListener("data",p),c=!0,!o.awaitDrain||e._writableState&&!e._writableState.needDrain||h())}function l(){f("onend"),e.end()}o.endEmitted?t.nextTick(s):a.once("end",s),e.on("unpipe",u);var h=function(t){return function(){var e=t._readableState;f("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&i(t,"data")&&(e.flowing=!0,E(t))}}(a);e.on("drain",h);var c=!1;var d=!1;function p(t){f("ondata"),d=!1,!1!==e.write(t)||d||((1===o.pipesCount&&o.pipes===e||o.pipesCount>1&&-1!==L(o.pipes,e))&&!c&&(f("false write response, pause",a._readableState.awaitDrain),a._readableState.awaitDrain++,d=!0),a.pause())}function g(t){f("onerror",t),m(),e.removeListener("error",g),0===i(e,"error")&&e.emit("error",t)}function b(){e.removeListener("finish",v),m()}function v(){f("onfinish"),e.removeListener("close",b),m()}function m(){f("unpipe"),a.unpipe(e)}return a.on("data",p),function(t,e,n){if("function"==typeof t.prependListener)return t.prependListener(e,n);t._events&&t._events[e]?r(t._events[e])?t._events[e].unshift(n):t._events[e]=[n,t._events[e]]:t.on(e,n)}(e,"error",g),e.once("close",b),e.once("finish",v),e.emit("pipe",a),o.flowing||(f("pipe resume"),a.resume()),e},b.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var a=0;a>2,s=(3&n)<<4|i>>4,u=d>1?(15&i)<<2|a>>6:64,l=d>2?63&a:64,f.push(r.charAt(o)+r.charAt(s)+r.charAt(u)+r.charAt(l));return f.join("")},xn.decode=function(t){var n,i,a,o,s,u,l=0,f=0,h="data:";if(t.substr(0,h.length)===h)throw new Error("Invalid base64 input, it looks like a data url.");var c,d=3*(t=t.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(t.charAt(t.length-1)===r.charAt(64)&&d--,t.charAt(t.length-2)===r.charAt(64)&&d--,d%1!=0)throw new Error("Invalid base64 input, bad content length.");for(c=e.uint8array?new Uint8Array(0|d):new Array(0|d);l>4,i=(15&o)<<4|(s=r.indexOf(t.charAt(l++)))>>2,a=(3&s)<<6|(u=r.indexOf(t.charAt(l++))),c[f++]=n,64!==s&&(c[f++]=i),64!==u&&(c[f++]=a);return c},xn}var Cn,An,En,Rn,On={isNode:!0,newBufferFrom:function(t,e){if(A.from&&A.from!==Uint8Array.from)return A.from(t,e);if("number"==typeof t)throw new Error('The "data" argument must not be a number');return new A(t,e)},allocBuffer:function(t){if(A.alloc)return A.alloc(t);var e=new A(t);return e.fill(0),e},isBuffer:function(t){return ut(t)},isStream:function(t){return t&&"function"==typeof t.on&&"function"==typeof t.pause&&"function"==typeof t.resume}};var Tn=null;Tn="undefined"!=typeof Promise?Promise:function(){if(Rn)return En;Rn=1;var t=function(){if(An)return Cn;An=1;var t,e,r=n.MutationObserver||n.WebKitMutationObserver;if(r){var i=0,a=new r(l),o=n.document.createTextNode("");a.observe(o,{characterData:!0}),t=function(){o.data=i=++i%2}}else if(n.setImmediate||void 0===n.MessageChannel)t="document"in n&&"onreadystatechange"in n.document.createElement("script")?function(){var t=n.document.createElement("script");t.onreadystatechange=function(){l(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},n.document.documentElement.appendChild(t)}:function(){setTimeout(l,0)};else{var s=new n.MessageChannel;s.port1.onmessage=l,t=function(){s.port2.postMessage(0)}}var u=[];function l(){var t,r;e=!0;for(var n=u.length;n;){for(r=u,u=[],t=-1;++t1;)try{return s.stringifyByChunk(e,n,r)}catch(t){r=Math.floor(r/2)}return s.stringifyByChar(e)}function l(t,e){for(var r=0;r "+t:t}};var Bn=Pn;!function(t){for(var e=In(),r=ht,n=On,i=Bn,a=new Array(256),o=0;o<256;o++)a[o]=o>=252?6:o>=248?5:o>=240?4:o>=224?3:o>=192?2:1;a[254]=a[254]=1;function s(){i.call(this,"utf-8 decode"),this.leftOver=null}function u(){i.call(this,"utf-8 encode")}t.utf8encode=function(t){return r.nodebuffer?n.newBufferFrom(t,"utf-8"):function(t){var e,n,i,a,o,s=t.length,u=0;for(a=0;a>>6,e[o++]=128|63&n):n<65536?(e[o++]=224|n>>>12,e[o++]=128|n>>>6&63,e[o++]=128|63&n):(e[o++]=240|n>>>18,e[o++]=128|n>>>12&63,e[o++]=128|n>>>6&63,e[o++]=128|63&n);return e}(t)},t.utf8decode=function(t){return r.nodebuffer?e.transformTo("nodebuffer",t).toString("utf-8"):function(t){var r,n,i,o,s=t.length,u=new Array(2*s);for(n=0,r=0;r4)u[n++]=65533,r+=o-1;else{for(i&=2===o?31:3===o?15:7;o>1&&r1?u[n++]=65533:i<65536?u[n++]=i:(i-=65536,u[n++]=55296|i>>10&1023,u[n++]=56320|1023&i)}return u.length!==n&&(u.subarray?u=u.subarray(0,n):u.length=n),e.applyFromCharCode(u)}(t=e.transformTo(r.uint8array?"uint8array":"array",t))},e.inherits(s,i),s.prototype.processChunk=function(n){var i=e.transformTo(r.uint8array?"uint8array":"array",n.data);if(this.leftOver&&this.leftOver.length){if(r.uint8array){var o=i;(i=new Uint8Array(o.length+this.leftOver.length)).set(this.leftOver,0),i.set(o,this.leftOver.length)}else i=this.leftOver.concat(i);this.leftOver=null}var s=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;r>=0&&128==(192&t[r]);)r--;return r<0||0===r?e:r+a[t[r]]>e?r:e}(i),u=i;s!==i.length&&(r.uint8array?(u=i.subarray(0,s),this.leftOver=i.subarray(s,i.length)):(u=i.slice(0,s),this.leftOver=i.slice(s,i.length))),this.push({data:t.utf8decode(u),meta:n.meta})},s.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:t.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},t.Utf8DecodeWorker=s,e.inherits(u,i),u.prototype.processChunk=function(e){this.push({data:t.utf8encode(e.data),meta:e.meta})},t.Utf8EncodeWorker=u}(l);var Dn=Bn,zn=In();function jn(t){Dn.call(this,"ConvertWorker to "+t),this.destType=t}zn.inherits(jn,Dn),jn.prototype.processChunk=function(t){this.push({data:zn.transformTo(this.destType,t.data),meta:t.meta})};var Fn,Nn,Un=jn;var Hn=In(),Wn=Un,Zn=Bn,qn=Sn(),Yn=Mn,Gn=null;if(ht.nodestream)try{Gn=function(){if(Nn)return Fn;Nn=1;var t=yn().Readable;function e(e,r,n){t.call(this,r),this._helper=e;var i=this;e.on("data",(function(t,e){i.push(t)||i._helper.pause(),n&&n(e)})).on("error",(function(t){i.emit("error",t)})).on("end",(function(){i.push(null)}))}return In().inherits(e,t),e.prototype._read=function(){this._helper.resume()},Fn=e}()}catch(t){}function Vn(t,e){return new Yn.Promise((function(r,n){var i=[],a=t._internalType,o=t._outputType,s=t._mimeType;t.on("data",(function(t,r){i.push(t),e&&e(r)})).on("error",(function(t){i=[],n(t)})).on("end",(function(){try{var t=function(t,e,r){switch(t){case"blob":return Hn.newBlob(Hn.transformTo("arraybuffer",e),r);case"base64":return qn.encode(e);default:return Hn.transformTo(t,e)}}(o,function(t,e){var r,n=0,i=null,a=0;for(r=0;r=this.max)return this.end();switch(this.type){case"string":t=this.data.substring(this.index,e);break;case"uint8array":t=this.data.subarray(this.index,e);break;case"array":case"nodebuffer":t=this.data.slice(this.index,e)}return this.index=e,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})};var ei=ti,ri=In();var ni=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();var ii=function(t,e){return void 0!==t&&t.length?"string"!==ri.getTypeOf(t)?function(t,e,r,n){var i=ni,a=n+r;t^=-1;for(var o=n;o>>8^i[255&(t^e[o])];return-1^t}(0|e,t,t.length,0):function(t,e,r,n){var i=ni,a=n+r;t^=-1;for(var o=n;o>>8^i[255&(t^e.charCodeAt(o))];return-1^t}(0|e,t,t.length,0):0},ai=Bn,oi=ii;function si(){ai.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}In().inherits(si,ai),si.prototype.processChunk=function(t){this.streamInfo.crc32=oi(t.data,this.streamInfo.crc32||0),this.push(t)};var ui=si,li=In(),fi=Bn;function hi(t){fi.call(this,"DataLengthProbe for "+t),this.propName=t,this.withStreamInfo(t,0)}li.inherits(hi,fi),hi.prototype.processChunk=function(t){if(t){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+t.data.length}fi.prototype.processChunk.call(this,t)};var ci=Mn,di=ei,pi=ui,gi=hi;function bi(t,e,r,n,i){this.compressedSize=t,this.uncompressedSize=e,this.crc32=r,this.compression=n,this.compressedContent=i}bi.prototype={getContentWorker:function(){var t=new di(ci.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new gi("data_length")),e=this;return t.on("end",(function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")})),t},getCompressedWorker:function(){return new di(ci.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},bi.createWorkerFrom=function(t,e,r){return t.pipe(new pi).pipe(new gi("uncompressedSize")).pipe(e.compressWorker(r)).pipe(new gi("compressedSize")).withStreamInfo("compression",e)};var vi=bi,mi=Xn,yi=ei,wi=l,_i=vi,ki=Bn,xi=function(t,e,r){this.name=t,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=e,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions}};xi.prototype={internalStream:function(t){var e=null,r="string";try{if(!t)throw new Error("No output type specified.");var n="string"===(r=t.toLowerCase())||"text"===r;"binarystring"!==r&&"text"!==r||(r="string"),e=this._decompressWorker();var i=!this._dataBinary;i&&!n&&(e=e.pipe(new wi.Utf8EncodeWorker)),!i&&n&&(e=e.pipe(new wi.Utf8DecodeWorker))}catch(t){(e=new ki("error")).error(t)}return new mi(e,r,"")},async:function(t,e){return this.internalStream(t).accumulate(e)},nodeStream:function(t,e){return this.internalStream(t||"nodebuffer").toNodejsStream(e)},_compressWorker:function(t,e){if(this._data instanceof _i&&this._data.compression.magic===t.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new wi.Utf8EncodeWorker)),_i.createWorkerFrom(r,t,e)},_decompressWorker:function(){return this._data instanceof _i?this._data.getContentWorker():this._data instanceof ki?this._data:new yi(this._data)}};for(var Si=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],Ci=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},Ai=0;Ai=0;)t[e]=0}var zi=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ji=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Fi=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Ni=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Ui=new Array(576);Di(Ui);var Hi=new Array(60);Di(Hi);var Wi=new Array(512);Di(Wi);var Zi=new Array(256);Di(Zi);var qi=new Array(29);Di(qi);var Yi,Gi,Vi,Ki=new Array(30);function Xi(t,e,r,n,i){this.static_tree=t,this.extra_bits=e,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=t&&t.length}function $i(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function Ji(t){return t<256?Wi[t]:Wi[256+(t>>>7)]}function Qi(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function ta(t,e,r){t.bi_valid>16-r?(t.bi_buf|=e<>16-t.bi_valid,t.bi_valid+=r-16):(t.bi_buf|=e<>>=1,r<<=1}while(--e>0);return r>>>1}function na(t,e,r){var n,i,a=new Array(16),o=0;for(n=1;n<=15;n++)a[n]=o=o+r[n-1]<<1;for(i=0;i<=e;i++){var s=t[2*i+1];0!==s&&(t[2*i]=ra(a[s]++,s))}}function ia(t){var e;for(e=0;e<286;e++)t.dyn_ltree[2*e]=0;for(e=0;e<30;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function aa(t){t.bi_valid>8?Qi(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function oa(t,e,r,n){var i=2*e,a=2*r;return t[i]>1;r>=1;r--)sa(t,a,r);i=u;do{r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],sa(t,a,1),n=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=n,a[2*i]=a[2*r]+a[2*n],t.depth[i]=(t.depth[r]>=t.depth[n]?t.depth[r]:t.depth[n])+1,a[2*r+1]=a[2*n+1]=i,t.heap[1]=i++,sa(t,a,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],function(t,e){var r,n,i,a,o,s,u=e.dyn_tree,l=e.max_code,f=e.stat_desc.static_tree,h=e.stat_desc.has_stree,c=e.stat_desc.extra_bits,d=e.stat_desc.extra_base,p=e.stat_desc.max_length,g=0;for(a=0;a<=15;a++)t.bl_count[a]=0;for(u[2*t.heap[t.heap_max]+1]=0,r=t.heap_max+1;r<573;r++)(a=u[2*u[2*(n=t.heap[r])+1]+1]+1)>p&&(a=p,g++),u[2*n+1]=a,n>l||(t.bl_count[a]++,o=0,n>=d&&(o=c[n-d]),s=u[2*n],t.opt_len+=s*(a+o),h&&(t.static_len+=s*(f[2*n+1]+o)));if(0!==g){do{for(a=p-1;0===t.bl_count[a];)a--;t.bl_count[a]--,t.bl_count[a+1]+=2,t.bl_count[p]--,g-=2}while(g>0);for(a=p;0!==a;a--)for(n=t.bl_count[a];0!==n;)(i=t.heap[--r])>l||(u[2*i+1]!==a&&(t.opt_len+=(a-u[2*i+1])*u[2*i],u[2*i+1]=a),n--)}}(t,e),na(a,l,t.bl_count)}function fa(t,e,r){var n,i,a=-1,o=e[1],s=0,u=7,l=4;for(0===o&&(u=138,l=3),e[2*(r+1)+1]=65535,n=0;n<=r;n++)i=o,o=e[2*(n+1)+1],++s>=7;n<30;n++)for(Ki[n]=i<<7,t=0;t<1<0?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,r=4093624447;for(e=0;e<=31;e++,r>>>=1)if(1&r&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0}(t)),la(t,t.l_desc),la(t,t.d_desc),o=function(t){var e;for(fa(t,t.dyn_ltree,t.l_desc.max_code),fa(t,t.dyn_dtree,t.d_desc.max_code),la(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*Ni[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),i=t.opt_len+3+7>>>3,(a=t.static_len+3+7>>>3)<=i&&(i=a)):i=a=r+5,r+4<=i&&-1!==e?da(t,e,r,n):4===t.strategy||a===i?(ta(t,2+(n?1:0),3),ua(t,Ui,Hi)):(ta(t,4+(n?1:0),3),function(t,e,r,n){var i;for(ta(t,e-257,5),ta(t,r-1,5),ta(t,n-4,4),i=0;i>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&r,t.last_lit++,0===e?t.dyn_ltree[2*r]++:(t.matches++,e--,t.dyn_ltree[2*(Zi[r]+256+1)]++,t.dyn_dtree[2*Ji(e)]++),t.last_lit===t.lit_bufsize-1},Pi._tr_align=function(t){ta(t,2,3),ea(t,256,Ui),function(t){16===t.bi_valid?(Qi(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)};var pa=function(t,e,r,n){for(var i=65535&t|0,a=t>>>16&65535|0,o=0;0!==r;){r-=o=r>2e3?2e3:r;do{a=a+(i=i+e[n++]|0)|0}while(--o);i%=65521,a%=65521}return i|a<<16|0};var ga=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();var ba,va=function(t,e,r,n){var i=ga,a=n+r;t^=-1;for(var o=n;o>>8^i[255&(t^e[o])];return-1^t},ma={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},ya=Li,wa=Pi,_a=pa,ka=va,xa=ma;function Sa(t,e){return t.msg=xa[e],e}function Ca(t){return(t<<1)-(t>4?9:0)}function Aa(t){for(var e=t.length;--e>=0;)t[e]=0}function Ea(t){var e=t.state,r=e.pending;r>t.avail_out&&(r=t.avail_out),0!==r&&(ya.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,0===e.pending&&(e.pending_out=0))}function Ra(t,e){wa._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,Ea(t.strm)}function Oa(t,e){t.pending_buf[t.pending++]=e}function Ta(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function La(t,e){var r,n,i=t.max_chain_length,a=t.strstart,o=t.prev_length,s=t.nice_match,u=t.strstart>t.w_size-262?t.strstart-(t.w_size-262):0,l=t.window,f=t.w_mask,h=t.prev,c=t.strstart+258,d=l[a+o-1],p=l[a+o];t.prev_length>=t.good_match&&(i>>=2),s>t.lookahead&&(s=t.lookahead);do{if(l[(r=e)+o]===p&&l[r+o-1]===d&&l[r]===l[a]&&l[++r]===l[a+1]){a+=2,r++;do{}while(l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&ao){if(t.match_start=e,o=n,n>=s)break;d=l[a+o-1],p=l[a+o]}}}while((e=h[e&f])>u&&0!=--i);return o<=t.lookahead?o:t.lookahead}function Ma(t){var e,r,n,i,a,o,s,u,l,f,h=t.w_size;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=h+(h-262)){ya.arraySet(t.window,t.window,h,h,0),t.match_start-=h,t.strstart-=h,t.block_start-=h,e=r=t.hash_size;do{n=t.head[--e],t.head[e]=n>=h?n-h:0}while(--r);e=r=h;do{n=t.prev[--e],t.prev[e]=n>=h?n-h:0}while(--r);i+=h}if(0===t.strm.avail_in)break;if(o=t.strm,s=t.window,u=t.strstart+t.lookahead,l=i,f=void 0,(f=o.avail_in)>l&&(f=l),r=0===f?0:(o.avail_in-=f,ya.arraySet(s,o.input,o.next_in,f,u),1===o.state.wrap?o.adler=_a(o.adler,s,f,u):2===o.state.wrap&&(o.adler=ka(o.adler,s,f,u)),o.next_in+=f,o.total_in+=f,f),t.lookahead+=r,t.lookahead+t.insert>=3)for(a=t.strstart-t.insert,t.ins_h=t.window[a],t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<=3)if(n=wa._tr_tally(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-3,n=wa._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=i&&(t.ins_h=(t.ins_h<15&&(o=2,n-=16),i<1||i>9||8!==r||n<8||n>15||e<0||e>9||a<0||a>4)return Sa(t,-2);8===n&&(n=9);var s=new Da;return t.state=s,s.strm=t,s.wrap=o,s.gzhead=null,s.w_bits=n,s.w_size=1<t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(Ma(t),0===t.lookahead&&0===e)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var n=t.block_start+r;if((0===t.strstart||t.strstart>=n)&&(t.lookahead=t.strstart-n,t.strstart=n,Ra(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-262&&(Ra(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(Ra(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(Ra(t,!1),t.strm.avail_out),1)})),new Ba(4,4,8,4,Ia),new Ba(4,5,16,8,Ia),new Ba(4,6,32,32,Ia),new Ba(4,4,16,16,Pa),new Ba(8,16,32,32,Pa),new Ba(8,16,128,128,Pa),new Ba(8,32,128,256,Pa),new Ba(32,128,258,1024,Pa),new Ba(32,258,258,4096,Pa)],Ii.deflateInit=function(t,e){return Fa(t,e,8,15,8,0)},Ii.deflateInit2=Fa,Ii.deflateReset=ja,Ii.deflateResetKeep=za,Ii.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?-2:(t.state.gzhead=e,0):-2},Ii.deflate=function(t,e){var r,n,i,a;if(!t||!t.state||e>5||e<0)return t?Sa(t,-2):-2;if(n=t.state,!t.output||!t.input&&0!==t.avail_in||666===n.status&&4!==e)return Sa(t,0===t.avail_out?-5:-2);if(n.strm=t,r=n.last_flush,n.last_flush=e,42===n.status)if(2===n.wrap)t.adler=0,Oa(n,31),Oa(n,139),Oa(n,8),n.gzhead?(Oa(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),Oa(n,255&n.gzhead.time),Oa(n,n.gzhead.time>>8&255),Oa(n,n.gzhead.time>>16&255),Oa(n,n.gzhead.time>>24&255),Oa(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),Oa(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(Oa(n,255&n.gzhead.extra.length),Oa(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(t.adler=ka(t.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(Oa(n,0),Oa(n,0),Oa(n,0),Oa(n,0),Oa(n,0),Oa(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),Oa(n,3),n.status=113);else{var o=8+(n.w_bits-8<<4)<<8;o|=(n.strategy>=2||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(o|=32),o+=31-o%31,n.status=113,Ta(n,o),0!==n.strstart&&(Ta(n,t.adler>>>16),Ta(n,65535&t.adler)),t.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(t.adler=ka(t.adler,n.pending_buf,n.pending-i,i)),Ea(t),i=n.pending,n.pending!==n.pending_buf_size));)Oa(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(t.adler=ka(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(t.adler=ka(t.adler,n.pending_buf,n.pending-i,i)),Ea(t),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}a=n.gzindexi&&(t.adler=ka(t.adler,n.pending_buf,n.pending-i,i)),0===a&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(t.adler=ka(t.adler,n.pending_buf,n.pending-i,i)),Ea(t),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}a=n.gzindexi&&(t.adler=ka(t.adler,n.pending_buf,n.pending-i,i)),0===a&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&Ea(t),n.pending+2<=n.pending_buf_size&&(Oa(n,255&t.adler),Oa(n,t.adler>>8&255),t.adler=0,n.status=113)):n.status=113),0!==n.pending){if(Ea(t),0===t.avail_out)return n.last_flush=-1,0}else if(0===t.avail_in&&Ca(e)<=Ca(r)&&4!==e)return Sa(t,-5);if(666===n.status&&0!==t.avail_in)return Sa(t,-5);if(0!==t.avail_in||0!==n.lookahead||0!==e&&666!==n.status){var s=2===n.strategy?function(t,e){for(var r;;){if(0===t.lookahead&&(Ma(t),0===t.lookahead)){if(0===e)return 1;break}if(t.match_length=0,r=wa._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(Ra(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(Ra(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(Ra(t,!1),0===t.strm.avail_out)?1:2}(n,e):3===n.strategy?function(t,e){for(var r,n,i,a,o=t.window;;){if(t.lookahead<=258){if(Ma(t),t.lookahead<=258&&0===e)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(n=o[i=t.strstart-1])===o[++i]&&n===o[++i]&&n===o[++i]){a=t.strstart+258;do{}while(n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&it.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(r=wa._tr_tally(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=wa._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(Ra(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(Ra(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(Ra(t,!1),0===t.strm.avail_out)?1:2}(n,e):ba[n.level].func(n,e);if(3!==s&&4!==s||(n.status=666),1===s||3===s)return 0===t.avail_out&&(n.last_flush=-1),0;if(2===s&&(1===e?wa._tr_align(n):5!==e&&(wa._tr_stored_block(n,0,0,!1),3===e&&(Aa(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),Ea(t),0===t.avail_out))return n.last_flush=-1,0}return 4!==e?0:n.wrap<=0?1:(2===n.wrap?(Oa(n,255&t.adler),Oa(n,t.adler>>8&255),Oa(n,t.adler>>16&255),Oa(n,t.adler>>24&255),Oa(n,255&t.total_in),Oa(n,t.total_in>>8&255),Oa(n,t.total_in>>16&255),Oa(n,t.total_in>>24&255)):(Ta(n,t.adler>>>16),Ta(n,65535&t.adler)),Ea(t),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?0:1)},Ii.deflateEnd=function(t){var e;return t&&t.state?42!==(e=t.state.status)&&69!==e&&73!==e&&91!==e&&103!==e&&113!==e&&666!==e?Sa(t,-2):(t.state=null,113===e?Sa(t,-3):0):-2},Ii.deflateSetDictionary=function(t,e){var r,n,i,a,o,s,u,l,f=e.length;if(!t||!t.state)return-2;if(2===(a=(r=t.state).wrap)||1===a&&42!==r.status||r.lookahead)return-2;for(1===a&&(t.adler=_a(t.adler,e,f,0)),r.wrap=0,f>=r.w_size&&(0===a&&(Aa(r.head),r.strstart=0,r.block_start=0,r.insert=0),l=new ya.Buf8(r.w_size),ya.arraySet(l,e,f-r.w_size,r.w_size,0),e=l,f=r.w_size),o=t.avail_in,s=t.next_in,u=t.input,t.avail_in=f,t.next_in=0,t.input=e,Ma(r);r.lookahead>=3;){n=r.strstart,i=r.lookahead-2;do{r.ins_h=(r.ins_h<=252?6:qa>=248?5:qa>=240?4:qa>=224?3:qa>=192?2:1;function Ya(t,e){if(e<65534&&(t.subarray&&Wa||!t.subarray&&Ha))return String.fromCharCode.apply(null,Ua.shrinkBuf(t,e));for(var r="",n=0;n>>6,e[a++]=128|63&r):r<65536?(e[a++]=224|r>>>12,e[a++]=128|r>>>6&63,e[a++]=128|63&r):(e[a++]=240|r>>>18,e[a++]=128|r>>>12&63,e[a++]=128|r>>>6&63,e[a++]=128|63&r);return e},Na.buf2binstring=function(t){return Ya(t,t.length)},Na.binstring2buf=function(t){for(var e=new Ua.Buf8(t.length),r=0,n=e.length;r4)s[n++]=65533,r+=a-1;else{for(i&=2===a?31:3===a?15:7;a>1&&r1?s[n++]=65533:i<65536?s[n++]=i:(i-=65536,s[n++]=55296|i>>10&1023,s[n++]=56320|1023&i)}return Ya(s,n)},Na.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;r>=0&&128==(192&t[r]);)r--;return r<0||0===r?e:r+Za[t[r]]>e?r:e};var Ga=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},Va=Ii,Ka=Li,Xa=Na,$a=ma,Ja=Ga,Qa=Object.prototype.toString;function to(t){if(!(this instanceof to))return new to(t);this.options=Ka.assign({level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ja,this.strm.avail_out=0;var r=Va.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(0!==r)throw new Error($a[r]);if(e.header&&Va.deflateSetHeader(this.strm,e.header),e.dictionary){var n;if(n="string"==typeof e.dictionary?Xa.string2buf(e.dictionary):"[object ArrayBuffer]"===Qa.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,0!==(r=Va.deflateSetDictionary(this.strm,n)))throw new Error($a[r]);this._dict_set=!0}}function eo(t,e){var r=new to(e);if(r.push(t,!0),r.err)throw r.msg||$a[r.err];return r.result}to.prototype.push=function(t,e){var r,n,i=this.strm,a=this.options.chunkSize;if(this.ended)return!1;n=e===~~e?e:!0===e?4:0,"string"==typeof t?i.input=Xa.string2buf(t):"[object ArrayBuffer]"===Qa.call(t)?i.input=new Uint8Array(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new Ka.Buf8(a),i.next_out=0,i.avail_out=a),1!==(r=Va.deflate(i,n))&&0!==r)return this.onEnd(r),this.ended=!0,!1;0!==i.avail_out&&(0!==i.avail_in||4!==n&&2!==n)||("string"===this.options.to?this.onData(Xa.buf2binstring(Ka.shrinkBuf(i.output,i.next_out))):this.onData(Ka.shrinkBuf(i.output,i.next_out)))}while((i.avail_in>0||0===i.avail_out)&&1!==r);return 4===n?(r=Va.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,0===r):2!==n||(this.onEnd(0),i.avail_out=0,!0)},to.prototype.onData=function(t){this.chunks.push(t)},to.prototype.onEnd=function(t){0===t&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Ka.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},Mi.Deflate=to,Mi.deflate=eo,Mi.deflateRaw=function(t,e){return(e=e||{}).raw=!0,eo(t,e)},Mi.gzip=function(t,e){return(e=e||{}).gzip=!0,eo(t,e)};var ro={},no={},io=Li,ao=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],oo=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],so=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],uo=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64],lo=Li,fo=pa,ho=va,co=function(t,e){var r,n,i,a,o,s,u,l,f,h,c,d,p,g,b,v,m,y,w,_,k,x,S,C,A;r=t.state,n=t.next_in,C=t.input,i=n+(t.avail_in-5),a=t.next_out,A=t.output,o=a-(e-t.avail_out),s=a+(t.avail_out-257),u=r.dmax,l=r.wsize,f=r.whave,h=r.wnext,c=r.window,d=r.hold,p=r.bits,g=r.lencode,b=r.distcode,v=(1<>>=w=y>>>24,p-=w,0===(w=y>>>16&255))A[a++]=65535&y;else{if(!(16&w)){if(0==(64&w)){y=g[(65535&y)+(d&(1<>>=w,p-=w),p<15&&(d+=C[n++]<>>=w=y>>>24,p-=w,!(16&(w=y>>>16&255))){if(0==(64&w)){y=b[(65535&y)+(d&(1<u){t.msg="invalid distance too far back",r.mode=30;break t}if(d>>>=w,p-=w,k>(w=a-o)){if((w=k-w)>f&&r.sane){t.msg="invalid distance too far back",r.mode=30;break t}if(x=0,S=c,0===h){if(x+=l-w,w<_){_-=w;do{A[a++]=c[x++]}while(--w);x=a-k,S=A}}else if(h2;)A[a++]=S[x++],A[a++]=S[x++],A[a++]=S[x++],_-=3;_&&(A[a++]=S[x++],_>1&&(A[a++]=S[x++]))}else{x=a-k;do{A[a++]=A[x++],A[a++]=A[x++],A[a++]=A[x++],_-=3}while(_>2);_&&(A[a++]=A[x++],_>1&&(A[a++]=A[x++]))}break}}break}}while(n>3,d&=(1<<(p-=_<<3))-1,t.next_in=n,t.next_out=a,t.avail_in=n=1&&0===T[_];_--);if(k>_&&(k=_),0===_)return i[a++]=20971520,i[a++]=20971520,s.bits=1,0;for(w=1;w<_&&0===T[w];w++);for(k0&&(0===t||1!==_))return-1;for(L[1]=0,m=1;m<15;m++)L[m+1]=L[m]+T[m];for(y=0;y852||2===t&&A>592)return 1;for(;;){p=m-S,o[y]d?(g=M[I+o[y]],b=R[O+o[y]]):(g=96,b=0),u=1<>S)+(l-=u)]=p<<24|g<<16|b|0}while(0!==l);for(u=1<>=1;if(0!==u?(E&=u-1,E+=u):E=0,y++,0==--T[m]){if(m===_)break;m=e[r+o[y]]}if(m>k&&(E&h)!==f){for(0===S&&(S=k),c+=w,C=1<<(x=m-S);x+S<_&&!((C-=T[x+S])<=0);)x++,C<<=1;if(A+=1<852||2===t&&A>592)return 1;i[f=E&h]=k<<24|x<<16|c-a|0}}return 0!==E&&(i[c+E]=m-S<<24|64<<16|0),s.bits=k,0};function go(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function bo(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new lo.Buf16(320),this.work=new lo.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function vo(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new lo.Buf32(852),e.distcode=e.distdyn=new lo.Buf32(592),e.sane=1,e.back=-1,0):-2}function mo(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,vo(t)):-2}function yo(t,e){var r,n;return t&&t.state?(n=t.state,e<0?(r=0,e=-e):(r=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?-2:(null!==n.window&&n.wbits!==e&&(n.window=null),n.wrap=r,n.wbits=e,mo(t))):-2}function wo(t,e){var r,n;return t?(n=new bo,t.state=n,n.window=null,0!==(r=yo(t,e))&&(t.state=null),r):-2}var _o,ko,xo=!0;function So(t){if(xo){var e;for(_o=new lo.Buf32(512),ko=new lo.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(po(1,t.lens,0,288,_o,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;po(2,t.lens,0,32,ko,0,t.work,{bits:5}),xo=!1}t.lencode=_o,t.lenbits=9,t.distcode=ko,t.distbits=5}function Co(t,e,r,n){var i,a=t.state;return null===a.window&&(a.wsize=1<=a.wsize?(lo.arraySet(a.window,e,r-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):((i=a.wsize-a.wnext)>n&&(i=n),lo.arraySet(a.window,e,r-n,i,a.wnext),(n-=i)?(lo.arraySet(a.window,e,r-n,n,0),a.wnext=n,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave>>8&255,r.check=ho(r.check,E,2,0),l=0,f=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&l)<<8)+(l>>8))%31){t.msg="incorrect header check",r.mode=30;break}if(8!=(15&l)){t.msg="unknown compression method",r.mode=30;break}if(f-=4,k=8+(15&(l>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){t.msg="invalid window size",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&l,E[1]=l>>>8&255,r.check=ho(r.check,E,2,0)),l=0,f=0,r.mode=3;case 3:for(;f<32;){if(0===s)break t;s--,l+=n[a++]<>>8&255,E[2]=l>>>16&255,E[3]=l>>>24&255,r.check=ho(r.check,E,4,0)),l=0,f=0,r.mode=4;case 4:for(;f<16;){if(0===s)break t;s--,l+=n[a++]<>8),512&r.flags&&(E[0]=255&l,E[1]=l>>>8&255,r.check=ho(r.check,E,2,0)),l=0,f=0,r.mode=5;case 5:if(1024&r.flags){for(;f<16;){if(0===s)break t;s--,l+=n[a++]<>>8&255,r.check=ho(r.check,E,2,0)),l=0,f=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&((d=r.length)>s&&(d=s),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),lo.arraySet(r.head.extra,n,a,d,k)),512&r.flags&&(r.check=ho(r.check,n,d,a)),s-=d,a+=d,r.length-=d),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===s)break t;d=0;do{k=n[a+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k))}while(k&&d>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=12;break;case 10:for(;f<32;){if(0===s)break t;s--,l+=n[a++]<>>=7&f,f-=7&f,r.mode=27;break}for(;f<3;){if(0===s)break t;s--,l+=n[a++]<>>=1)){case 0:r.mode=14;break;case 1:if(So(r),r.mode=20,6===e){l>>>=2,f-=2;break t}break;case 2:r.mode=17;break;case 3:t.msg="invalid block type",r.mode=30}l>>>=2,f-=2;break;case 14:for(l>>>=7&f,f-=7&f;f<32;){if(0===s)break t;s--,l+=n[a++]<>>16^65535)){t.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&l,l=0,f=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(d=r.length){if(d>s&&(d=s),d>u&&(d=u),0===d)break t;lo.arraySet(i,n,a,d,o),s-=d,a+=d,u-=d,o+=d,r.length-=d;break}r.mode=12;break;case 17:for(;f<14;){if(0===s)break t;s--,l+=n[a++]<>>=5,f-=5,r.ndist=1+(31&l),l>>>=5,f-=5,r.ncode=4+(15&l),l>>>=4,f-=4,r.nlen>286||r.ndist>30){t.msg="too many length or distance symbols",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have>>=3,f-=3}for(;r.have<19;)r.lens[R[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=po(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,m=65535&A,!((b=A>>>24)<=f);){if(0===s)break t;s--,l+=n[a++]<>>=b,f-=b,r.lens[r.have++]=m;else{if(16===m){for(C=b+2;f>>=b,f-=b,0===r.have){t.msg="invalid bit length repeat",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&l),l>>>=2,f-=2}else if(17===m){for(C=b+3;f>>=b)),l>>>=3,f-=3}else{for(C=b+7;f>>=b)),l>>>=7,f-=7}if(r.have+d>r.nlen+r.ndist){t.msg="invalid bit length repeat",r.mode=30;break}for(;d--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){t.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=po(1,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=po(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){t.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(s>=6&&u>=258){t.next_out=o,t.avail_out=u,t.next_in=a,t.avail_in=s,r.hold=l,r.bits=f,co(t,c),o=t.next_out,i=t.output,u=t.avail_out,a=t.next_in,n=t.input,s=t.avail_in,l=r.hold,f=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;v=(A=r.lencode[l&(1<>>16&255,m=65535&A,!((b=A>>>24)<=f);){if(0===s)break t;s--,l+=n[a++]<>y)])>>>16&255,m=65535&A,!(y+(b=A>>>24)<=f);){if(0===s)break t;s--,l+=n[a++]<>>=y,f-=y,r.back+=y}if(l>>>=b,f-=b,r.back+=b,r.length=m,0===v){r.mode=26;break}if(32&v){r.back=-1,r.mode=12;break}if(64&v){t.msg="invalid literal/length code",r.mode=30;break}r.extra=15&v,r.mode=22;case 22:if(r.extra){for(C=r.extra;f>>=r.extra,f-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;v=(A=r.distcode[l&(1<>>16&255,m=65535&A,!((b=A>>>24)<=f);){if(0===s)break t;s--,l+=n[a++]<>y)])>>>16&255,m=65535&A,!(y+(b=A>>>24)<=f);){if(0===s)break t;s--,l+=n[a++]<>>=y,f-=y,r.back+=y}if(l>>>=b,f-=b,r.back+=b,64&v){t.msg="invalid distance code",r.mode=30;break}r.offset=m,r.extra=15&v,r.mode=24;case 24:if(r.extra){for(C=r.extra;f>>=r.extra,f-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===u)break t;if(d=c-u,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){t.msg="invalid distance too far back",r.mode=30;break}d>r.wnext?(d-=r.wnext,p=r.wsize-d):p=r.wnext-d,d>r.length&&(d=r.length),g=r.window}else g=i,p=o-r.offset,d=r.length;d>u&&(d=u),u-=d,r.length-=d;do{i[o++]=g[p++]}while(--d);0===r.length&&(r.mode=21);break;case 26:if(0===u)break t;i[o++]=r.length,u--,r.mode=21;break;case 27:if(r.wrap){for(;f<32;){if(0===s)break t;s--,l|=n[a++]<=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Mo,this.strm.avail_out=0;var r=Eo.inflateInit2(this.strm,e.windowBits);if(r!==To.Z_OK)throw new Error(Lo[r]);if(this.header=new Io,Eo.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Oo.string2buf(e.dictionary):"[object ArrayBuffer]"===Po.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(r=Eo.inflateSetDictionary(this.strm,e.dictionary))!==To.Z_OK))throw new Error(Lo[r])}function Do(t,e){var r=new Bo(e);if(r.push(t,!0),r.err)throw r.msg||Lo[r.err];return r.result}Bo.prototype.push=function(t,e){var r,n,i,a,o,s=this.strm,u=this.options.chunkSize,l=this.options.dictionary,f=!1;if(this.ended)return!1;n=e===~~e?e:!0===e?To.Z_FINISH:To.Z_NO_FLUSH,"string"==typeof t?s.input=Oo.binstring2buf(t):"[object ArrayBuffer]"===Po.call(t)?s.input=new Uint8Array(t):s.input=t,s.next_in=0,s.avail_in=s.input.length;do{if(0===s.avail_out&&(s.output=new Ro.Buf8(u),s.next_out=0,s.avail_out=u),(r=Eo.inflate(s,To.Z_NO_FLUSH))===To.Z_NEED_DICT&&l&&(r=Eo.inflateSetDictionary(this.strm,l)),r===To.Z_BUF_ERROR&&!0===f&&(r=To.Z_OK,f=!1),r!==To.Z_STREAM_END&&r!==To.Z_OK)return this.onEnd(r),this.ended=!0,!1;s.next_out&&(0!==s.avail_out&&r!==To.Z_STREAM_END&&(0!==s.avail_in||n!==To.Z_FINISH&&n!==To.Z_SYNC_FLUSH)||("string"===this.options.to?(i=Oo.utf8border(s.output,s.next_out),a=s.next_out-i,o=Oo.buf2string(s.output,i),s.next_out=a,s.avail_out=u-a,a&&Ro.arraySet(s.output,s.output,i,a,0),this.onData(o)):this.onData(Ro.shrinkBuf(s.output,s.next_out)))),0===s.avail_in&&0===s.avail_out&&(f=!0)}while((s.avail_in>0||0===s.avail_out)&&r!==To.Z_STREAM_END);return r===To.Z_STREAM_END&&(n=To.Z_FINISH),n===To.Z_FINISH?(r=Eo.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===To.Z_OK):n!==To.Z_SYNC_FLUSH||(this.onEnd(To.Z_OK),s.avail_out=0,!0)},Bo.prototype.onData=function(t){this.chunks.push(t)},Bo.prototype.onEnd=function(t){t===To.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Ro.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},ro.Inflate=Bo,ro.inflate=Do,ro.inflateRaw=function(t,e){return(e=e||{}).raw=!0,Do(t,e)},ro.ungzip=Do;var zo={};(0,Li.assign)(zo,Mi,ro,Ao);var jo="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,Fo=zo,No=In(),Uo=Bn,Ho=jo?"uint8array":"array";function Wo(t,e){Uo.call(this,"FlateWorker/"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=e,this.meta={}}Ti.magic="\b\0",No.inherits(Wo,Uo),Wo.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(No.transformTo(Ho,t.data),!1)},Wo.prototype.flush=function(){Uo.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},Wo.prototype.cleanUp=function(){Uo.prototype.cleanUp.call(this),this._pako=null},Wo.prototype._createPako=function(){this._pako=new Fo[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},Ti.compressWorker=function(t){return new Wo("Deflate",t)},Ti.uncompressWorker=function(){return new Wo("Inflate",{})};var Zo=Bn;Oi.STORE={magic:"\0\0",compressWorker:function(){return new Zo("STORE compression")},uncompressWorker:function(){return new Zo("STORE decompression")}},Oi.DEFLATE=Ti;var qo={LOCAL_FILE_HEADER:"PK",CENTRAL_FILE_HEADER:"PK",CENTRAL_DIRECTORY_END:"PK",ZIP64_CENTRAL_DIRECTORY_LOCATOR:"PK",ZIP64_CENTRAL_DIRECTORY_END:"PK",DATA_DESCRIPTOR:"PK\b"},Yo=In(),Go=Bn,Vo=l,Ko=ii,Xo=qo,$o=function(t,e){var r,n="";for(r=0;r>>=8;return n},Jo=function(t,e,r,n,i,a){var o,s,u=t.file,l=t.compression,f=a!==Vo.utf8encode,h=Yo.transformTo("string",a(u.name)),c=Yo.transformTo("string",Vo.utf8encode(u.name)),d=u.comment,p=Yo.transformTo("string",a(d)),g=Yo.transformTo("string",Vo.utf8encode(d)),b=c.length!==u.name.length,v=g.length!==d.length,m="",y="",w="",_=u.dir,k=u.date,x={crc32:0,compressedSize:0,uncompressedSize:0};e&&!r||(x.crc32=t.crc32,x.compressedSize=t.compressedSize,x.uncompressedSize=t.uncompressedSize);var S=0;e&&(S|=8),f||!b&&!v||(S|=2048);var C,A,E,R=0,O=0;_&&(R|=16),"UNIX"===i?(O=798,R|=(C=u.unixPermissions,A=_,E=C,C||(E=A?16893:33204),(65535&E)<<16)):(O=20,R|=63&(u.dosPermissions||0)),o=k.getUTCHours(),o<<=6,o|=k.getUTCMinutes(),o<<=5,o|=k.getUTCSeconds()/2,s=k.getUTCFullYear()-1980,s<<=4,s|=k.getUTCMonth()+1,s<<=5,s|=k.getUTCDate(),b&&(y=$o(1,1)+$o(Ko(h),4)+c,m+="up"+$o(y.length,2)+y),v&&(w=$o(1,1)+$o(Ko(p),4)+g,m+="uc"+$o(w.length,2)+w);var T="";return T+="\n\0",T+=$o(S,2),T+=l.magic,T+=$o(o,2),T+=$o(s,2),T+=$o(x.crc32,4),T+=$o(x.compressedSize,4),T+=$o(x.uncompressedSize,4),T+=$o(h.length,2),T+=$o(m.length,2),{fileRecord:Xo.LOCAL_FILE_HEADER+T+h+m,dirRecord:Xo.CENTRAL_FILE_HEADER+$o(O,2)+T+$o(p.length,2)+"\0\0\0\0"+$o(R,4)+$o(n,4)+h+m+p}},Qo=function(t){return Xo.DATA_DESCRIPTOR+$o(t.crc32,4)+$o(t.compressedSize,4)+$o(t.uncompressedSize,4)};function ts(t,e,r,n){Go.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}Yo.inherits(ts,Go),ts.prototype.push=function(t){var e=t.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,Go.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:r?(e+100*(r-n-1))/r:100}}))},ts.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var e=this.streamFiles&&!t.file.dir;if(e){var r=Jo(t,e,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},ts.prototype.closedSource=function(t){this.accumulate=!1;var e=this.streamFiles&&!t.file.dir,r=Jo(t,e,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),e)this.push({data:Qo(t),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},ts.prototype.flush=function(){for(var t=this.bytesWritten,e=0;e0?t.substring(0,e):""},ys=function(t){return"/"!==t.slice(-1)&&(t+="/"),t},ws=function(t,e){return e=void 0!==e?e:hs.createFolders,t=ys(t),this.files[t]||vs.call(this,t,null,{dir:!0,createFolders:e}),this.files[t]};function _s(t){return"[object RegExp]"===Object.prototype.toString.call(t)}var ks={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(t){var e,r,n;for(e in this.files)n=this.files[e],(r=e.slice(this.root.length,e.length))&&e.slice(0,this.root.length)===this.root&&t(r,n)},filter:function(t){var e=[];return this.forEach((function(r,n){t(r,n)&&e.push(n)})),e},file:function(t,e,r){if(1===arguments.length){if(_s(t)){var n=t;return this.filter((function(t,e){return!e.dir&&n.test(t)}))}var i=this.files[this.root+t];return i&&!i.dir?i:null}return t=this.root+t,vs.call(this,t,e,r),this},folder:function(t){if(!t)return this;if(_s(t))return this.filter((function(e,r){return r.dir&&t.test(e)}));var e=this.root+t,r=ws.call(this,e),n=this.clone();return n.root=r.name,n},remove:function(t){t=this.root+t;var e=this.files[t];if(e||("/"!==t.slice(-1)&&(t+="/"),e=this.files[t]),e&&!e.dir)delete this.files[t];else for(var r=this.filter((function(e,r){return r.name.slice(0,t.length)===t})),n=0;n=this.index;e--)r=(r<<8)+this.byteAt(e);return this.index+=t,r},readString:function(t){return Ss.transformTo("string",this.readData(t))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}};var As=Cs,Es=As;function Rs(t){Es.call(this,t);for(var e=0;e=0;--a)if(this.data[a]===e&&this.data[a+1]===r&&this.data[a+2]===n&&this.data[a+3]===i)return a-this.zero;return-1},Rs.prototype.readAndCheckSignature=function(t){var e=t.charCodeAt(0),r=t.charCodeAt(1),n=t.charCodeAt(2),i=t.charCodeAt(3),a=this.readData(4);return e===a[0]&&r===a[1]&&n===a[2]&&i===a[3]},Rs.prototype.readData=function(t){if(this.checkOffset(t),0===t)return[];var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e};var Os=Rs,Ts=As;function Ls(t){Ts.call(this,t)}In().inherits(Ls,Ts),Ls.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},Ls.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},Ls.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},Ls.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e};var Ms=Ls,Is=Os;function Ps(t){Is.call(this,t)}In().inherits(Ps,Is),Ps.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e};var Bs=Ps,Ds=Bs;function zs(t){Ds.call(this,t)}In().inherits(zs,Ds),zs.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e};var js=zs,Fs=In(),Ns=ht,Us=Os,Hs=Ms,Ws=js,Zs=Bs,qs=function(t){var e=Fs.getTypeOf(t);return Fs.checkSupport(e),"string"!==e||Ns.uint8array?"nodebuffer"===e?new Ws(t):Ns.uint8array?new Zs(Fs.transformTo("uint8array",t)):new Us(Fs.transformTo("array",t)):new Hs(t)},Ys=qs,Gs=In(),Vs=vi,Ks=ii,Xs=l,$s=Oi,Js=ht;function Qs(t,e){this.options=t,this.loadOptions=e}Qs.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(t){var e,r;if(t.skip(22),this.fileNameLength=t.readInt(2),r=t.readInt(2),this.fileName=t.readData(this.fileNameLength),t.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(e=function(t){for(var e in $s)if(Object.prototype.hasOwnProperty.call($s,e)&&$s[e].magic===t)return $s[e];return null}(this.compressionMethod),null===e)throw new Error("Corrupted zip : compression "+Gs.pretty(this.compressionMethod)+" unknown (inner file : "+Gs.transformTo("string",this.fileName)+")");this.decompressed=new Vs(this.compressedSize,this.uncompressedSize,this.crc32,e,t.readData(this.compressedSize))},readCentralPart:function(t){this.versionMadeBy=t.readInt(2),t.skip(2),this.bitFlag=t.readInt(2),this.compressionMethod=t.readString(2),this.date=t.readDate(),this.crc32=t.readInt(4),this.compressedSize=t.readInt(4),this.uncompressedSize=t.readInt(4);var e=t.readInt(2);if(this.extraFieldsLength=t.readInt(2),this.fileCommentLength=t.readInt(2),this.diskNumberStart=t.readInt(2),this.internalFileAttributes=t.readInt(2),this.externalFileAttributes=t.readInt(4),this.localHeaderOffset=t.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");t.skip(e),this.readExtraFields(t),this.parseZIP64ExtraField(t),this.fileComment=t.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var t=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0===t&&(this.dosPermissions=63&this.externalFileAttributes),3===t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var t=Ys(this.extraFields[1].value);this.uncompressedSize===Gs.MAX_VALUE_32BITS&&(this.uncompressedSize=t.readInt(8)),this.compressedSize===Gs.MAX_VALUE_32BITS&&(this.compressedSize=t.readInt(8)),this.localHeaderOffset===Gs.MAX_VALUE_32BITS&&(this.localHeaderOffset=t.readInt(8)),this.diskNumberStart===Gs.MAX_VALUE_32BITS&&(this.diskNumberStart=t.readInt(4))}},readExtraFields:function(t){var e,r,n,i=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index+41)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var t,e;for(t=0;t0)this.isSignature(e,nu.CENTRAL_FILE_HEADER)||(this.reader.zero=n);else if(n<0)throw new Error("Corrupted zip: missing "+Math.abs(n)+" bytes.")},prepareReader:function(t){this.reader=eu(t)},load:function(t){this.prepareReader(t),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}};var su=ou,uu=In(),lu=Mn,fu=l,hu=su,cu=ui,du=On;function pu(t){return new lu.Promise((function(e,r){var n=t.decompressed.getContentWorker().pipe(new cu);n.on("error",(function(t){r(t)})).on("end",(function(){n.streamInfo.crc32!==t.decompressed.crc32?r(new Error("Corrupted zip : CRC32 mismatch")):e()})).resume()}))}function gu(){if(!(this instanceof gu))return new gu;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var t=new gu;for(var e in this)"function"!=typeof this[e]&&(t[e]=this[e]);return t}}gu.prototype=xs,gu.prototype.loadAsync=function(t,e){var r=this;return e=uu.extend(e||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:fu.utf8decode}),du.isNode&&du.isStream(t)?lu.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):uu.prepareContent("the loaded zip file",t,!0,e.optimizedBinaryString,e.base64).then((function(t){var r=new hu(e);return r.load(t),r})).then((function(t){var r=[lu.Promise.resolve(t)],n=t.files;if(e.checkCRC32)for(var i=0;i".charCodeAt(0),s="-".charCodeAt(0),u="/".charCodeAt(0),l="!".charCodeAt(0),f="'".charCodeAt(0),h='"'.charCodeAt(0),c="[".charCodeAt(0),d="]".charCodeAt(0);function p(e){for(var f=[];t[r];)if(t.charCodeAt(r)==a){if(t.charCodeAt(r+1)===u){var h=r+2;if(r=t.indexOf(">",r),-1==t.substring(h,r).indexOf(e)){var p=t.substring(0,r).split("\n");throw new Error("Unexpected close tag\nLine: "+(p.length-1)+"\nColumn: "+(p[p.length-1].length+1)+"\nChar: "+t[r])}return r+1&&(r+=1),f}if(t.charCodeAt(r+1)===l){if(t.charCodeAt(r+2)==s){const e=r;for(;-1!==r&&(t.charCodeAt(r)!==o||t.charCodeAt(r-1)!=s||t.charCodeAt(r-2)!=s||-1==r);)r=t.indexOf(">",r+1);-1===r&&(r=t.length),n&&f.push(t.substring(e,r+1))}else{if(t.charCodeAt(r+2)===c&&t.charCodeAt(r+8)===c&&"cdata"===t.substr(r+3,5).toLowerCase()){var b=t.indexOf("]]>",r);-1==b?(f.push(t.substr(r+9)),r=t.length):(f.push(t.substring(r+9,b)),r=b+3);continue}{const e=r+1;r+=2;for(var v=!1;(t.charCodeAt(r)!==o||!0===v)&&t[r];)t.charCodeAt(r)===c?v=!0:!0===v&&t.charCodeAt(r)===d&&(v=!1),r++;f.push(t.substring(e,r))}}r++;continue}var y=m();f.push(y),"?"===y.tagName[0]&&(f.push(...y.children),y.children=[])}else{var w=g();if(i)w.length>0&&f.push(w);else{var _=w.trim();_.length>0&&f.push(_)}r++}return f}function g(){var e=r;return-2===(r=t.indexOf("<",r)-1)&&(r=t.length),t.slice(e,r+1)}function b(){for(var e=r;-1==="\r\n\t>/= ".indexOf(t[r])&&t[r];)r++;return t.slice(e,r)}var v=e.noChildNodes||["img","br","input","meta","link","hr"];function m(){r++;const e=b(),n={};let i=[];for(;t.charCodeAt(r)!==o&&t[r];){var a=t.charCodeAt(r);if(a>64&&a<91||a>96&&a<123){for(var s=b(),l=t.charCodeAt(r);l&&l!==f&&l!==h&&!(l>64&&l<91||l>96&&l<123)&&l!==o;)r++,l=t.charCodeAt(r);if(l===f||l===h){var c=y();if(-1===r)return{tagName:e,attributes:n,children:i}}else c=null,r--;n[s]=c}r++}if(t.charCodeAt(r-1)!==u)if("script"==e){var d=r+1;r=t.indexOf("<\/script>",r),i=[t.slice(d,r)],r+=9}else if("style"==e){d=r+1;r=t.indexOf("",r),i=[t.slice(d,r)],r+=8}else-1===v.indexOf(e)?(r++,i=p(e)):r++;else r++;return{tagName:e,attributes:n,children:i}}function y(){var e=t[r],n=r+1;return r=t.indexOf(e,n),t.slice(n,r)}var w,_=null;if(void 0!==e.attrValue){e.attrName=e.attrName||"id";for(_=[];-1!==(w=void 0,w=new RegExp("\\s"+e.attrName+"\\s*=['\"]"+e.attrValue+"['\"]").exec(t),r=w?w.index:-1);)-1!==(r=t.lastIndexOf("<",r))&&_.push(m()),t=t.substr(r),r=0}else _=e.parseNode?m():p("");return e.filter&&(_=wu(_,e.filter)),e.simplify?yu(Array.isArray(_)?_:[_]):(e.setPos&&(_.pos=r),_)}function yu(t){var e={};if(!t.length)return"";if(1===t.length&&"string"==typeof t[0])return t[0];for(var r in t.forEach((function(t){if("object"==typeof t){e[t.tagName]||(e[t.tagName]=[]);var r=yu(t.children);e[t.tagName].push(r),Object.keys(t.attributes).length&&"string"!=typeof r&&(r._attributes=t.attributes)}})),e)1==e[r].length&&(e[r]=e[r][0]);return e}function wu(t,e,r=0,n=""){var i=[];return t.forEach((function(t,a){if("object"==typeof t&&e(t,a,r,n)&&i.push(t),t.children){var o=wu(t.children,e,r+1,(n?n+".":"")+a+"."+t.tagName);i=i.concat(o)}})),i}function _u(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return ku(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ku(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function ku(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1&&void 0!==arguments[1]?arguments[1]:{},r={};if(!t.length)return r;if(1===t.length&&"string"==typeof t[0])return Object.keys(e).length?{attrs:Su({order:Cu++},e),value:t[0]}:t[0];var n,i=_u(t);try{for(i.s();!(n=i.n()).done;){var a=n.value;if("object"!==vu(a))return;if("?xml"!==a.tagName){r[a.tagName]||(r[a.tagName]=[]);var o=Au(a.children||[],a.attributes);r[a.tagName].push(o),Object.keys(a.attributes).length&&(o.attrs=Su({order:Cu++},a.attributes))}}}catch(t){i.e(t)}finally{i.f()}for(var s in r)1===r[s].length&&(r[s]=r[s][0]);return r}function Eu(t,e){return Ru.apply(this,arguments)}function Ru(){return(Ru=r(u.mark((function t(e,r){var n;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e.file(r).async("string");case 3:return n=t.sent,t.abrupt("return",Au(mu(n)));case 7:return t.prev=7,t.t0=t.catch(0),t.abrupt("return",null);case 10:case"end":return t.stop()}}),t,null,[[0,7]])})))).apply(this,arguments)}function Ou(t){return Ou="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ou(t)}var Tu=/^\s+/,Lu=/\s+$/;function Mu(t,e){if(e=e||{},(t=t||"")instanceof Mu)return t;if(!(this instanceof Mu))return new Mu(t,e);var r=function(t){var e={r:0,g:0,b:0},r=1,n=null,i=null,a=null,o=!1,s=!1;"string"==typeof t&&(t=function(t){t=t.replace(Tu,"").replace(Lu,"").toLowerCase();var e,r=!1;if(Ku[t])t=Ku[t],r=!0;else if("transparent"==t)return{r:0,g:0,b:0,a:0,format:"name"};if(e=ul.rgb.exec(t))return{r:e[1],g:e[2],b:e[3]};if(e=ul.rgba.exec(t))return{r:e[1],g:e[2],b:e[3],a:e[4]};if(e=ul.hsl.exec(t))return{h:e[1],s:e[2],l:e[3]};if(e=ul.hsla.exec(t))return{h:e[1],s:e[2],l:e[3],a:e[4]};if(e=ul.hsv.exec(t))return{h:e[1],s:e[2],v:e[3]};if(e=ul.hsva.exec(t))return{h:e[1],s:e[2],v:e[3],a:e[4]};if(e=ul.hex8.exec(t))return{r:tl(e[1]),g:tl(e[2]),b:tl(e[3]),a:il(e[4]),format:r?"name":"hex8"};if(e=ul.hex6.exec(t))return{r:tl(e[1]),g:tl(e[2]),b:tl(e[3]),format:r?"name":"hex"};if(e=ul.hex4.exec(t))return{r:tl(e[1]+""+e[1]),g:tl(e[2]+""+e[2]),b:tl(e[3]+""+e[3]),a:il(e[4]+""+e[4]),format:r?"name":"hex8"};if(e=ul.hex3.exec(t))return{r:tl(e[1]+""+e[1]),g:tl(e[2]+""+e[2]),b:tl(e[3]+""+e[3]),format:r?"name":"hex"};return!1}(t));"object"==Ou(t)&&(ll(t.r)&&ll(t.g)&&ll(t.b)?(u=t.r,l=t.g,f=t.b,e={r:255*Ju(u,255),g:255*Ju(l,255),b:255*Ju(f,255)},o=!0,s="%"===String(t.r).substr(-1)?"prgb":"rgb"):ll(t.h)&&ll(t.s)&&ll(t.v)?(n=rl(t.s),i=rl(t.v),e=function(t,e,r){t=6*Ju(t,360),e=Ju(e,100),r=Ju(r,100);var n=Math.floor(t),i=t-n,a=r*(1-e),o=r*(1-i*e),s=r*(1-(1-i)*e),u=n%6;return{r:255*[r,o,a,a,s,r][u],g:255*[s,r,r,o,a,a][u],b:255*[a,a,s,r,r,o][u]}}(t.h,n,i),o=!0,s="hsv"):ll(t.h)&&ll(t.s)&&ll(t.l)&&(n=rl(t.s),a=rl(t.l),e=function(t,e,r){var n,i,a;function o(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}if(t=Ju(t,360),e=Ju(e,100),r=Ju(r,100),0===e)n=i=a=r;else{var s=r<.5?r*(1+e):r+e-r*e,u=2*r-s;n=o(u,s,t+1/3),i=o(u,s,t),a=o(u,s,t-1/3)}return{r:255*n,g:255*i,b:255*a}}(t.h,n,a),o=!0,s="hsl"),t.hasOwnProperty("a")&&(r=t.a));var u,l,f;return r=$u(r),{ok:o,format:t.format||s,r:Math.min(255,Math.max(e.r,0)),g:Math.min(255,Math.max(e.g,0)),b:Math.min(255,Math.max(e.b,0)),a:r}}(t);this._originalInput=t,this._r=r.r,this._g=r.g,this._b=r.b,this._a=r.a,this._roundA=Math.round(100*this._a)/100,this._format=e.format||r.format,this._gradientType=e.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=r.ok}function Iu(t,e,r){t=Ju(t,255),e=Ju(e,255),r=Ju(r,255);var n,i,a=Math.max(t,e,r),o=Math.min(t,e,r),s=(a+o)/2;if(a==o)n=i=0;else{var u=a-o;switch(i=s>.5?u/(2-a-o):u/(a+o),a){case t:n=(e-r)/u+(e>1)+720)%360;--e;)n.h=(n.h+i)%360,a.push(Mu(n));return a}function Vu(t,e){e=e||6;for(var r=Mu(t).toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/e;e--;)o.push(Mu({h:n,s:i,v:a})),a=(a+s)%1;return o}Mu.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var t,e,r,n=this.toRgb();return t=n.r/255,e=n.g/255,r=n.b/255,.2126*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.7152*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.0722*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))},setAlpha:function(t){return this._a=$u(t),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var t=Pu(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=Pu(this._r,this._g,this._b),e=Math.round(360*t.h),r=Math.round(100*t.s),n=Math.round(100*t.v);return 1==this._a?"hsv("+e+", "+r+"%, "+n+"%)":"hsva("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var t=Iu(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=Iu(this._r,this._g,this._b),e=Math.round(360*t.h),r=Math.round(100*t.s),n=Math.round(100*t.l);return 1==this._a?"hsl("+e+", "+r+"%, "+n+"%)":"hsla("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHex:function(t){return Bu(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(t){return function(t,e,r,n,i){var a=[el(Math.round(t).toString(16)),el(Math.round(e).toString(16)),el(Math.round(r).toString(16)),el(nl(n))];if(i&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)&&a[3].charAt(0)==a[3].charAt(1))return a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0);return a.join("")}(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return"#"+this.toHex8(t)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(100*Ju(this._r,255))+"%",g:Math.round(100*Ju(this._g,255))+"%",b:Math.round(100*Ju(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*Ju(this._r,255))+"%, "+Math.round(100*Ju(this._g,255))+"%, "+Math.round(100*Ju(this._b,255))+"%)":"rgba("+Math.round(100*Ju(this._r,255))+"%, "+Math.round(100*Ju(this._g,255))+"%, "+Math.round(100*Ju(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(Xu[Bu(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e="#"+Du(this._r,this._g,this._b,this._a),r=e,n=this._gradientType?"GradientType = 1, ":"";if(t){var i=Mu(t);r="#"+Du(i._r,i._g,i._b,i._a)}return"progid:DXImageTransform.Microsoft.gradient("+n+"startColorstr="+e+",endColorstr="+r+")"},toString:function(t){var e=!!t;t=t||this._format;var r=!1,n=this._a<1&&this._a>=0;return e||!n||"hex"!==t&&"hex6"!==t&&"hex3"!==t&&"hex4"!==t&&"hex8"!==t&&"name"!==t?("rgb"===t&&(r=this.toRgbString()),"prgb"===t&&(r=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(r=this.toHexString()),"hex3"===t&&(r=this.toHexString(!0)),"hex4"===t&&(r=this.toHex8String(!0)),"hex8"===t&&(r=this.toHex8String()),"name"===t&&(r=this.toName()),"hsl"===t&&(r=this.toHslString()),"hsv"===t&&(r=this.toHsvString()),r||this.toHexString()):"name"===t&&0===this._a?this.toName():this.toRgbString()},clone:function(){return Mu(this.toString())},_applyModification:function(t,e){var r=t.apply(null,[this].concat([].slice.call(e)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(Nu,arguments)},brighten:function(){return this._applyModification(Uu,arguments)},darken:function(){return this._applyModification(Hu,arguments)},desaturate:function(){return this._applyModification(zu,arguments)},saturate:function(){return this._applyModification(ju,arguments)},greyscale:function(){return this._applyModification(Fu,arguments)},spin:function(){return this._applyModification(Wu,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(Gu,arguments)},complement:function(){return this._applyCombination(Zu,arguments)},monochromatic:function(){return this._applyCombination(Vu,arguments)},splitcomplement:function(){return this._applyCombination(Yu,arguments)},triad:function(){return this._applyCombination(qu,[3])},tetrad:function(){return this._applyCombination(qu,[4])}},Mu.fromRatio=function(t,e){if("object"==Ou(t)){var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]="a"===n?t[n]:rl(t[n]));t=r}return Mu(t,e)},Mu.equals=function(t,e){return!(!t||!e)&&Mu(t).toRgbString()==Mu(e).toRgbString()},Mu.random=function(){return Mu.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},Mu.mix=function(t,e,r){r=0===r?0:r||50;var n=Mu(t).toRgb(),i=Mu(e).toRgb(),a=r/100;return Mu({r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a})},Mu.readability=function(t,e){var r=Mu(t),n=Mu(e);return(Math.max(r.getLuminance(),n.getLuminance())+.05)/(Math.min(r.getLuminance(),n.getLuminance())+.05)},Mu.isReadable=function(t,e,r){var n,i,a=Mu.readability(t,e);switch(i=!1,(n=function(t){var e,r;e=((t=t||{level:"AA",size:"small"}).level||"AA").toUpperCase(),r=(t.size||"small").toLowerCase(),"AA"!==e&&"AAA"!==e&&(e="AA");"small"!==r&&"large"!==r&&(r="small");return{level:e,size:r}}(r)).level+n.size){case"AAsmall":case"AAAlarge":i=a>=4.5;break;case"AAlarge":i=a>=3;break;case"AAAsmall":i=a>=7}return i},Mu.mostReadable=function(t,e,r){var n,i,a,o,s=null,u=0;i=(r=r||{}).includeFallbackColors,a=r.level,o=r.size;for(var l=0;lu&&(u=n,s=Mu(e[l]));return Mu.isReadable(t,s,{level:a,size:o})||!i?s:(r.includeFallbackColors=!1,Mu.mostReadable(t,["#fff","#000"],r))};var Ku=Mu.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},Xu=Mu.hexNames=function(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[t[r]]=r);return e}(Ku);function $u(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function Ju(t,e){(function(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)})(t)&&(t="100%");var r=function(t){return"string"==typeof t&&-1!=t.indexOf("%")}(t);return t=Math.min(e,Math.max(0,parseFloat(t))),r&&(t=parseInt(t*e,10)/100),Math.abs(t-e)<1e-6?1:t%e/parseFloat(e)}function Qu(t){return Math.min(1,Math.max(0,t))}function tl(t){return parseInt(t,16)}function el(t){return 1==t.length?"0"+t:""+t}function rl(t){return t<=1&&(t=100*t+"%"),t}function nl(t){return Math.round(255*parseFloat(t)).toString(16)}function il(t){return tl(t)/255}var al,ol,sl,ul=(ol="[\\s|\\(]+("+(al="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+al+")[,|\\s]+("+al+")\\s*\\)?",sl="[\\s|\\(]+("+al+")[,|\\s]+("+al+")[,|\\s]+("+al+")[,|\\s]+("+al+")\\s*\\)?",{CSS_UNIT:new RegExp(al),rgb:new RegExp("rgb"+ol),rgba:new RegExp("rgba"+sl),hsl:new RegExp("hsl"+ol),hsla:new RegExp("hsla"+sl),hsv:new RegExp("hsv"+ol),hsva:new RegExp("hsva"+sl),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function ll(t){return!!ul.CSS_UNIT.exec(t)}function fl(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return hl(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return hl(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function hl(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r>18]+r[(258048&e)>>12]+r[(4032&e)>>6]+r[63&e];return 1===a?s+=r[(252&(e=n[o]))>>2]+r[(3&e)<<4]+"==":2===a&&(s+=r[(64512&(e=n[o]<<8|n[o+1]))>>10]+r[(1008&e)>>4]+r[(15&e)<<2]+"="),s}function dl(t){return t.substr(2+(~-t.lastIndexOf(".")>>>0))}function pl(t,e){if(!t)return t;var r="";if(t.constructor===Array)for(var n=0;n":">",'"':""","'":"'"};return t.replace(/[&<>"']/g,(function(t){return e[t]}))}function ml(t){var e="";switch(t.toLowerCase()){case"jpg":case"jpeg":e="image/jpeg";break;case"png":e="image/png";break;case"gif":e="image/gif";break;case"emf":e="image/x-emf";break;case"wmf":e="image/x-wmf";break;case"svg":e="image/svg+xml";break;case"mp4":e="video/mp4";break;case"webm":e="video/webm";break;case"ogg":e="video/ogg";break;case"avi":e="video/avi";break;case"mpg":e="video/mpg";break;case"wmv":e="video/wmv";break;case"mp3":e="audio/mpeg";break;case"wav":e="audio/wav";break;case"tif":case"tiff":e="image/tiff"}return e}function yl(t){return/^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/.test(t)}function wl(t){for(var e=t.toString(16);e.length<2;)e="0"+e;return e}function _l(t,e,r,n){var i,a;if(r)a=r;else{var o=gl(e.slideContent,["p:sld","p:clrMapOvr","a:overrideClrMapping","attrs"]);a=o||((o=gl(e.slideLayoutContent,["p:sldLayout","p:clrMapOvr","a:overrideClrMapping","attrs"]))||gl(e.slideMasterContent,["p:sldMaster","p:clrMap","attrs"]))}var s=t.substr(2);if("phClr"===s&&n)i=n;else{if(a)switch(s){case"tx1":case"tx2":case"bg1":case"bg2":t="a:"+a[s]}else switch(t){case"tx1":t="a:dk1";break;case"tx2":t="a:dk2";break;case"bg1":t="a:lt1";break;case"bg2":t="a:lt2"}var u=gl(e.themeContent,["a:theme","a:themeElements","a:clrScheme",t]);!(i=gl(u,["a:srgbClr","attrs","val"]))&&u&&(i=gl(u,["a:sysClr","attrs","lastClr"]))}return i}function kl(t,e,r){var n=t["p:spPr"]["a:ln"],i=parseInt(gl(n,["attrs","w"]))/12700;isNaN(i)&&(i=n||"obj"!==e?0:1);var a=gl(n,["a:solidFill","a:srgbClr","attrs","val"]);if(!a){var o=gl(n,["a:solidFill","a:schemeClr"]);a=_l("a:"+gl(o,["attrs","val"]),r)}if(!a){var s=gl(t,["p:style","a:lnRef","a:schemeClr"]);if(a=_l("a:"+gl(s,["attrs","val"]),r)){var u=gl(s,["a:shade","attrs","val"]);if(u){u=parseInt(u)/1e5;var l=Mu("#"+a).toHsl();a=Mu({h:l.h,s:l.s,l:l.l*u,a:l.a}).toHex()}}}a=a?"#".concat(a):"#000";var f="solid",h="0";switch(gl(n,["a:prstDash","attrs","val"])){case"solid":f="solid",h="0";break;case"dash":f="dashed",h="5";break;case"dashDot":f="dashed",h="5, 5, 1, 5";break;case"dot":f="dotted",h="1, 5";break;case"lgDash":f="dashed",h="10, 5";break;case"lgDashDotDot":f="dotted",h="10, 5, 1, 5, 1, 5";break;case"sysDash":f="dashed",h="5, 2";break;case"sysDashDot":f="dotted",h="5, 2, 1, 5";break;case"sysDashDotDot":f="dotted",h="5, 2, 1, 5, 1, 5";break;case"sysDot":f="dotted",h="2, 5"}return{borderColor:a,borderWidth:i,borderType:f,strokeDasharray:h}}function xl(t,e,r){return r<0&&(r+=6),r>=6&&(r-=6),r<1?(e-t)*r+t:r<3?e:r<4?(e-t)*(4-r)+t:t}function Sl(t){var e="";return t["a:noFill"]&&(e="NO_FILL"),t["a:solidFill"]&&(e="SOLID_FILL"),t["a:gradFill"]&&(e="GRADIENT_FILL"),t["a:pattFill"]&&(e="PATTERN_FILL"),t["a:blipFill"]&&(e="PIC_FILL"),t["a:grpFill"]&&(e="GROUP_FILL"),e}function Cl(t,e,r){return Al.apply(this,arguments)}function Al(){return Al=r(u.mark((function t(e,r,n){var i,a,o,s,l,f;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=r["a:blip"].attrs["r:embed"],"slideBg"===e||"slide"===e?o=gl(n,["slideResObj",a,"target"]):"slideLayoutBg"===e?o=gl(n,["layoutResObj",a,"target"]):"slideMasterBg"===e?o=gl(n,["masterResObj",a,"target"]):"themeBg"===e?o=gl(n,["themeResObj",a,"target"]):"diagramBg"===e&&(o=gl(n,["diagramResObj",a,"target"])),o){t.next=4;break}return t.abrupt("return",o);case 4:if(i=gl(n,["loaded-images",o])){t.next=15;break}if(o=vl(o),"xml"!==(s=o.split(".").pop())){t.next=10;break}return t.abrupt("return",void 0);case 10:return t.next=12,n.zip.file(o).async("arraybuffer");case 12:l=t.sent,f=ml(s),i="data:".concat(f,";base64,").concat(cl(l));case 15:return t.abrupt("return",i);case 16:case"end":return t.stop()}}),t)}))),Al.apply(this,arguments)}function El(t,e,r){return Rl.apply(this,arguments)}function Rl(){return(Rl=r(u.mark((function t(e,r,n){var i,a,o,s;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,Cl(r,e["a:blipFill"],n);case 2:return i=t.sent,a=e["a:blipFill"]["a:blip"],o=gl(a,["a:alphaModFix","attrs"]),s=1,o&&o.amt&&""!==o.amt&&(s=parseInt(o.amt)/1e5),t.abrupt("return",{picBase64:i,opacity:s});case 8:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function Ol(t,e,r,n){if(t){for(var i=t["a:gradFill"],a=i["a:gsLst"]["a:gs"],o=[],s=0;s1e3&&(k=_-1e3,x=e.themeContent["a:theme"]["a:themeElements"]["a:fmtScheme"]["a:bgFillStyleLst"],S=[],Object.keys(x).forEach((function(t){var e=x[t];if("attrs"!==t)if(e.constructor===Array)for(var r=0;r1e3)){t.next=89;break}if(F=j-1e3,N=e.themeContent["a:theme"]["a:themeElements"]["a:fmtScheme"]["a:bgFillStyleLst"],U=[],Object.keys(N).forEach((function(t){var e=N[t];if("attrs"!==t)if(e.constructor===Array)for(var r=0;r1e3)){t.next=142;break}if(et=tt-1e3,rt=e.themeContent["a:theme"]["a:themeElements"]["a:fmtScheme"]["a:bgFillStyleLst"],nt=[],Object.keys(rt).forEach((function(t){var e=rt[t];if("attrs"!==t)if(e.constructor===Array)for(var r=0;r=360&&(i-=360),r?Mu({h:i,s:n.s,l:n.l,a:n.a}).toHex8():Mu({h:i,s:n.s,l:n.l,a:n.a}).toHex()}(s,y,b));var w=parseInt(gl(i,["a:lumMod","attrs","val"]))/1e5;isNaN(w)||(s=function(t,e,r){var n=Mu(t).toHsl(),i=n.l*e;return i>=1&&(i=1),r?Mu({h:n.h,s:n.s,l:i,a:n.a}).toHex8():Mu({h:n.h,s:n.s,l:i,a:n.a}).toHex()}(s,w,b));var _=parseInt(gl(i,["a:lumOff","attrs","val"]))/1e5;isNaN(_)||(s=function(t,e,r){var n=Mu(t).toHsl(),i=e+n.l;return i>=1?r?Mu({h:n.h,s:n.s,l:1,a:n.a}).toHex8():Mu({h:n.h,s:n.s,l:1,a:n.a}).toHex():r?Mu({h:n.h,s:n.s,l:i,a:n.a}).toHex8():Mu({h:n.h,s:n.s,l:i,a:n.a}).toHex()}(s,_,b));var k=parseInt(gl(i,["a:satMod","attrs","val"]))/1e5;isNaN(k)||(s=function(t,e,r){var n=Mu(t).toHsl(),i=n.s*e;return i>=1&&(i=1),r?Mu({h:n.h,s:i,l:n.l,a:n.a}).toHex8():Mu({h:n.h,s:i,l:n.l,a:n.a}).toHex()}(s,k,b));var x=parseInt(gl(i,["a:shade","attrs","val"]))/1e5;isNaN(x)||(s=function(t,e,r){var n=Mu(t).toHsl();e>=1&&(e=1);var i=Math.min(n.l*e,1);return r?Mu({h:n.h,s:n.s,l:i,a:n.a}).toHex8():Mu({h:n.h,s:n.s,l:i,a:n.a}).toHex()}(s,x,b));var S=parseInt(gl(i,["a:tint","attrs","val"]))/1e5;return isNaN(S)||(s=function(t,e,r){var n=Mu(t).toHsl();e>=1&&(e=1);var i=n.l*e+(1-e);return r?Mu({h:n.h,s:n.s,l:i,a:n.a}).toHex8():Mu({h:n.h,s:n.s,l:i,a:n.a}).toHex()}(s,S,b)),s&&-1===s.indexOf("#")&&(s="#"+s),s}function Pl(t){var e=[];if(!t)return e;if(t["c:xVal"]){var r=[];pl(t["c:xVal"]["c:numRef"]["c:numCache"]["c:pt"],(function(t){return r.push(parseFloat(t["c:v"])),""})),e.push(r),r=[],pl(t["c:yVal"]["c:numRef"]["c:numCache"]["c:pt"],(function(t){return r.push(parseFloat(t["c:v"])),""})),e.push(r)}else pl(t,(function(t,r){var n=[],i=gl(t,["c:tx","c:strRef","c:strCache","c:pt","c:v"])||r,a={};return gl(t,["c:cat","c:strRef","c:strCache","c:pt"])?pl(t["c:cat"]["c:strRef"]["c:strCache"]["c:pt"],(function(t){return a[t.attrs.idx]=t["c:v"],""})):gl(t,["c:cat","c:numRef","c:numCache","c:pt"])&&pl(t["c:cat"]["c:numRef"]["c:numCache"]["c:pt"],(function(t){return a[t.attrs.idx]=t["c:v"],""})),gl(t,["c:val","c:numRef","c:numCache","c:pt"])&&pl(t["c:val"]["c:numRef"]["c:numCache"]["c:pt"],(function(t){return n.push({x:t.attrs.idx,y:parseFloat(t["c:v"])}),""})),e.push({key:i,values:n,xlabels:a}),""}));return e}function Bl(t){var e=null;for(var r in t)switch(r){case"c:lineChart":e={type:"lineChart",data:Pl(t[r]["c:ser"]),grouping:gl(t[r],["c:grouping","attrs","val"]),marker:!!t[r]["c:marker"]};break;case"c:line3DChart":e={type:"line3DChart",data:Pl(t[r]["c:ser"]),grouping:gl(t[r],["c:grouping","attrs","val"])};break;case"c:barChart":e={type:"barChart",data:Pl(t[r]["c:ser"]),grouping:gl(t[r],["c:grouping","attrs","val"]),barDir:gl(t[r],["c:barDir","attrs","val"])};break;case"c:bar3DChart":e={type:"bar3DChart",data:Pl(t[r]["c:ser"]),grouping:gl(t[r],["c:grouping","attrs","val"]),barDir:gl(t[r],["c:barDir","attrs","val"])};break;case"c:pieChart":e={type:"pieChart",data:Pl(t[r]["c:ser"])};break;case"c:pie3DChart":e={type:"pie3DChart",data:Pl(t[r]["c:ser"])};break;case"c:doughnutChart":e={type:"doughnutChart",data:Pl(t[r]["c:ser"]),holeSize:gl(t[r],["c:holeSize","attrs","val"])};break;case"c:areaChart":e={type:"areaChart",data:Pl(t[r]["c:ser"]),grouping:gl(t[r],["c:grouping","attrs","val"])};break;case"c:area3DChart":e={type:"area3DChart",data:Pl(t[r]["c:ser"]),grouping:gl(t[r],["c:grouping","attrs","val"])};break;case"c:scatterChart":e={type:"scatterChart",data:Pl(t[r]["c:ser"]),style:gl(t[r],["c:scatterStyle","attrs","val"])};break;case"c:bubbleChart":e={type:"bubbleChart",data:Pl(t[r]["c:ser"])};break;case"c:radarChart":e={type:"radarChart",data:Pl(t[r]["c:ser"]),style:gl(t[r],["c:radarStyle","attrs","val"])};break;case"c:surfaceChart":e={type:"surfaceChart",data:Pl(t[r]["c:ser"])};break;case"c:surface3DChart":e={type:"surface3DChart",data:Pl(t[r]["c:ser"])};break;case"c:stockChart":e={type:"stockChart",data:Pl(t[r]["c:ser"])}}return e}function Dl(t,e,r,n){var i=gl(t,["a:pPr","attrs","algn"]);if(i||(i=gl(e,["a:pPr","attrs","algn"])),!i)if("title"===r||"ctrTitle"===r||"subTitle"===r){var a=1,o=gl(e,["a:pPr","attrs","lvl"]);o&&(a=parseInt(o)+1);var s="a:lvl"+a+"pPr";(i=gl(n,["slideLayoutTables","typeTable",r,"p:txBody","a:lstStyle",s,"attrs","algn"]))||(i=gl(n,["slideMasterTables","typeTable",r,"p:txBody","a:lstStyle",s,"attrs","algn"])),i||(i=gl(n,["slideMasterTextStyles","p:titleStyle",s,"attrs","algn"])),i||"subTitle"!==r||(i=gl(n,["slideMasterTextStyles","p:bodyStyle",s,"attrs","algn"]))}else i=gl(n,"body"===r?["slideMasterTextStyles","p:bodyStyle","a:lvl1pPr","attrs","algn"]:["slideMasterTables","typeTable",r,"p:txBody","a:lstStyle","a:lvl1pPr","attrs","algn"]);var u="left";if(i)switch(i){case"l":u="left";break;case"r":u="right";break;case"ctr":u="center";break;case"just":case"dist":u="justify";break;default:u="inherit"}return u}var zl=72/914400;function jl(t,e,r){var n;return t?n=t["a:off"].attrs:e?n=e["a:off"].attrs:r&&(n=r["a:off"].attrs),n?{top:parseInt(n.y)*zl,left:parseInt(n.x)*zl}:{top:0,left:0}}function Fl(t,e,r){var n;return t?n=t["a:ext"].attrs:e?n=e["a:ext"].attrs:r&&(n=r["a:ext"].attrs),n?{width:parseInt(n.cx)*zl,height:parseInt(n.cy)*zl}:{width:0,height:0}}function Nl(t,e){var r=Il(t,void 0,void 0,e),n=t.attrs,i=n.dir?parseInt(n.dir)/6e4:0,a=parseInt(n.dist)*zl,o=n.blurRad?parseInt(n.blurRad)*zl:"",s=a*Math.sin(i*Math.PI/180);return{h:a*Math.cos(i*Math.PI/180),v:s,blur:o,color:r}}function Ul(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return Hl(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Hl(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Hl(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1&&p.shift(),(c=c.concat(p)).sort((function(t,e){return!t.attrs||!e.attrs||t.attrs.order-e.attrs.order}))));var g=Dl(h,e,n,i),b=Zl(h);if(b?(l?l&&l!==b&&(o+=""),o+="<".concat(b,">"),l=b):(o+="<".concat(b,">"),l=b),o+='
  • ')):(l&&(o+=""),l=""),o+='

    ')),c){var v,m=Ul(c);try{for(m.s();!(v=m.n()).done;){o+=ql(v.value,h,t,s,r,n,i)}}catch(t){m.e(t)}finally{m.f()}}else o+=ql(h,e,t,s,r,n,i);o+=b?"

  • ":"

    "}}catch(t){f.e(t)}finally{f.f()}return o}function Zl(t){var e=t["a:pPr"];return e?e["a:buChar"]?"ul":e["a:buAutoNum"]?"ol":"":""}function ql(t,e,r,n,i,a,o){var s=r["a:lstStyle"],u=o.slideMasterTextStyles,l=1,f=gl(e["a:pPr"],["attrs","lvl"]);void 0!==f&&(l=parseInt(f)+1);var h=t["a:t"];"string"!=typeof h&&(h=gl(t,["a:fld","a:t"])),"string"!=typeof h&&(h=" ");var c="",d=function(t,e,r,n,i,a){var o,s=gl(t,["a:rPr"]);if(s&&"SOLID_FILL"===Sl(s)&&(o=Il(s["a:solidFill"],void 0,void 0,a)),!o&&gl(r,["a:lvl"+i+"pPr","a:defRPr"])){var u=gl(r,["a:lvl"+i+"pPr","a:defRPr"]);"SOLID_FILL"===Sl(u)&&(o=Il(u["a:solidFill"],void 0,void 0,a))}if(!o){var l=gl(e,["p:style","a:fontRef"]);l&&(o=Il(l,void 0,void 0,a)),!o&&n&&(o=Il(n,void 0,void 0,a))}return o||""}(t,e,s,n,l,o),p=function(t,e,r,n){var i,a;if(gl(t,["a:rPr","attrs","sz"])&&(i=gl(t,["a:rPr","attrs","sz"])/100),isNaN(i)||!i){var o=gl(e,["p:txBody","a:lstStyle","a:lvl1pPr","a:defRPr","attrs","sz"]);i=parseInt(o)/100}return!isNaN(i)&&i||("title"===r||"subTitle"===r||"ctrTitle"===r?a=gl(n,["p:titleStyle","a:lvl1pPr","a:defRPr","attrs","sz"]):"body"===r?a=gl(n,["p:bodyStyle","a:lvl1pPr","a:defRPr","attrs","sz"]):"dt"===r||"sldNum"===r?a="1200":r||(a=gl(n,["p:otherStyle","a:lvl1pPr","a:defRPr","attrs","sz"])),a&&(i=parseInt(a)/100)),gl(t,["a:rPr","attrs","baseline"])&&!isNaN(i)&&(i-=10),(i=isNaN(i)||!i?18:i)+"pt"}(t,i,a,u),g=function(t,e,r){var n=gl(t,["a:rPr","a:latin","attrs","typeface"]);if(!n){var i=gl(r.themeContent,["a:theme","a:themeElements","a:fontScheme"]);n=gl(i,"title"===e||"subTitle"===e||"ctrTitle"===e?["a:majorFont","a:latin","attrs","typeface"]:["a:minorFont","a:latin","attrs","typeface"])}return n||""}(t,a,o),b=function(t){return"1"===gl(t,["a:rPr","attrs","b"])?"bold":""}(t),v=function(t){return"1"===gl(t,["a:rPr","attrs","i"])?"italic":""}(t),m=function(t){return"sng"===gl(t,["a:rPr","attrs","u"])?"underline":""}(t),y=function(t){return"sngStrike"===gl(t,["a:rPr","attrs","strike"])?"line-through":""}(t),w=function(t){var e=gl(t,["a:rPr","attrs","spc"]);return e?parseInt(e)/100+"pt":""}(t),_=function(t,e){var r=gl(t,["a:rPr","a:effectLst","a:outerShdw"]);if(r){var n=Nl(r,e);if(n){var i=n.h,a=n.v,o=n.blur,s=n.color;if(!isNaN(a)&&!isNaN(i))return i+"pt "+a+"pt "+(o?o+"pt":"")+" "+s}}return""}(t,o),k=function(t){var e=gl(t,["a:rPr","attrs","baseline"]);return e?parseInt(e)>0?"super":"sub":""}(t);d&&(c+="color: ".concat(d,";")),p&&(c+="font-size: ".concat(p,";")),g&&(c+="font-family: ".concat(g,";")),b&&(c+="font-weight: ".concat(b,";")),v&&(c+="font-style: ".concat(v,";")),m&&(c+="text-decoration: ".concat(m,";")),y&&(c+="text-decoration-line: ".concat(y,";")),w&&(c+="letter-spacing: ".concat(w,";")),k&&(c+="vertical-align: ".concat(k,";")),_&&(c+="text-shadow: ".concat(_,";"));var x=gl(t,["a:rPr","a:hlinkClick","attrs","r:id"]);if(x){var S=o.slideResObj[x].target;return'').concat(h.replace(/\t/g,"    ").replace(/\s/g," "),"")}return'').concat(h.replace(/\t/g,"    ").replace(/\s/g," "),"")}function Yl(t,e,r,n,i,a,o){var s,u=i;if(a>=i)for(;u<=a;){var l=u*(Math.PI/180),f=t+Math.cos(l)*r,h=e+Math.sin(l)*n;u===i&&(s=" M"+f+" "+h),s+=" L"+f+" "+h,u++}else for(;u>a;){var c=u*(Math.PI/180),d=t+Math.cos(c)*r,p=e+Math.sin(c)*n;u===i&&(s=" M "+d+" "+p),s+=" L "+d+" "+p,u--}return s+=o?" z":""}function Gl(t,e,r,n){var i,a,o,s,u,l=gl(t,["attrs","rowSpan"]),f=gl(t,["attrs","gridSpan"]),h=gl(t,["attrs","vMerge"]),c=gl(t,["attrs","hMerge"]),d=gl(t,["a:tcPr"]);d&&(i=Ml({"p:spPr":d},void 0,n));i||(r&&(s=gl(e,[r,"a:tcStyle","a:fill","a:solidFill"])),s&&(i=Il(s,void 0,void 0,n)));return r&&(u=gl(e,[r,"a:tcTxStyle"])),u&&(a=Il(u,void 0,void 0,n),"on"===gl(u,["attrs","b"])&&(o=!0)),{fillColor:i,fontColor:a,fontBold:o,rowSpan:l?+l:void 0,colSpan:f?+f:void 0,vMerge:h?+h:void 0,hMerge:c?+c:void 0}}function Vl(t,e,r,n,i){var a,o,s;if(n&&n["a:wholeTbl"]){var u=gl(n,["a:wholeTbl","a:tcStyle","a:fill","a:solidFill"]);if(u){var l=Il(u,void 0,void 0,i);l&&(a=l)}var f=gl(n,["a:wholeTbl","a:tcTxStyle"]);if(f){var h=Il(f,void 0,void 0,i);h&&(o=h),"on"===gl(f,["attrs","b"])&&(s=!0)}}if(0===e&&1===r.isFrstRowAttr&&n){var c=gl(n,["a:firstRow","a:tcStyle","a:fill","a:solidFill"]);if(c){var d=Il(c,void 0,void 0,i);d&&(a=d)}var p=gl(n,["a:firstRow","a:tcTxStyle"]);if(p){var g=Il(p,void 0,void 0,i);g&&(o=g),"on"===gl(p,["attrs","b"])&&(s=!0)}}else if(e>0&&1===r.isBandRowAttr&&n){if(a="",e%2==0&&n["a:band2H"]){var b=gl(n,["a:band2H","a:tcStyle","a:fill","a:solidFill"]);if(b){var v=Il(b,void 0,void 0,i);v&&(a=v)}var m=gl(n,["a:band2H","a:tcTxStyle"]);if(m){var y=Il(m,void 0,void 0,i);y&&(o=y)}"on"===gl(m,["attrs","b"])&&(s=!0)}if(e%2!=0&&n["a:band1H"]){var w=gl(n,["a:band1H","a:tcStyle","a:fill","a:solidFill"]);if(w){var _=Il(w,void 0,void 0,i);_&&(a=_)}var k=gl(n,["a:band1H","a:tcTxStyle"]);if(k){var x=Il(k,void 0,void 0,i);x&&(o=x),"on"===gl(k,["attrs","b"])&&(s=!0)}}}if(e===t.length-1&&1===r.isLstRowAttr&&n){var S=gl(n,["a:lastRow","a:tcStyle","a:fill","a:solidFill"]);if(S){var C=Il(S,void 0,void 0,i);C&&(a=C)}var A=gl(n,["a:lastRow","a:tcTxStyle"]);if(A){var E=Il(A,void 0,void 0,i);E&&(o=E),"on"===gl(A,["attrs","b"])&&(s=!0)}}return{fillColor:a,fontColor:o,fontBold:s}}function Kl(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Xl(e){for(var r=1;r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Jl(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r0){if(Object.keys(f).forEach((function(t){var e=f[t]["a:pt"];e&&Object.keys(e).forEach((function(t){var r=e[t],n=r.x,i=r.y,a=r.order;g.push({type:"movto",x:n,y:i,order:a})}))})),h&&Object.keys(h).forEach((function(t){var e=h[t]["a:pt"];e&&Object.keys(e).forEach((function(t){var r=e[t],n=r.x,i=r.y,a=r.order;g.push({type:"lnto",x:n,y:i,order:a})}))})),c){var b=[];Array.isArray(c)||(c=[c]),Object.keys(c).forEach((function(t){b.push(c[t]["a:pt"])})),b.forEach((function(t){var e=[];t.forEach((function(t){var r={x:t.attrs.x,y:t.attrs.y};e.push(r)}));var r=t[0].attrs.order;g.push({type:"cubicBezTo",cubBzPt:e,order:r})}))}if(d){var v=d.attrs,m=v.order,y=v.hR,w=v.wR,_=v.stAng,k=v.swAng,x=0,S=0,C=gl(d,["a:pt","attrs"]);C&&(x=C.x,S=C.y),g.push({type:"arcTo",hR:y,wR:w,stAng:_,swAng:k,shftX:x,shftY:S,order:m})}p&&(Array.isArray(p)||(p=[p]),Object.keys(p).forEach((function(){g.push({type:"close",order:1/0})}))),g.sort((function(t,e){return t.order-e.order}));for(var A=0;A0&&1===y.isBandColAttr&&(1!==y.isFrstColAttr||0!==T)&&(1!==y.isLstRowAttr||T!==R.length-1)&&j!==D.length-1&&j%2!=0){var U=gl(r,["a:band2V"]);void 0===U?(U=gl(r,["a:band1V"]))&&(N="a:band2V"):N="a:band2V"}j===D.length-1&&1===y.isLstColAttr&&(N="a:lastCol",1===y.isLstRowAttr&&T===R.length-1&&gl(r,["a:swCell"])?N="a:swCell":1===y.isFrstRowAttr&&0===T&&gl(r,["a:nwCell"])&&(N="a:nwCell"));var H=Wl(F["a:txBody"],F,void 0,void 0,e),W=Gl(F,r,N,e),Z={text:H};W.rowSpan&&(Z.rowSpan=W.rowSpan),W.colSpan&&(Z.colSpan=W.colSpan),W.vMerge&&(Z.vMerge=W.vMerge),W.hMerge&&(Z.hMerge=W.hMerge),(W.fontBold||B)&&(Z.fontBold=W.fontBold||B),(W.fontColor||P)&&(Z.fontColor=W.fontColor||P),(W.fillColor||I||A)&&(Z.fillColor=W.fillColor||I||A),z.push(Z)}else{var q=void 0;if(1===y.isFrstColAttr&&1!==y.isLstRowAttr)q="a:firstCol";else if(1===y.isBandColAttr&&1!==y.isLstRowAttr){var Y=gl(r,["a:band2V"]);(Y||(Y=gl(r,["a:band1V"])))&&(q="a:band2V")}1===y.isLstColAttr&&1!==y.isLstRowAttr&&(q="a:lastCol");var G=Wl(D["a:txBody"],D,void 0,void 0,e),V=Gl(D,r,q,e),K={text:G};V.rowSpan&&(K.rowSpan=V.rowSpan),V.colSpan&&(K.colSpan=V.colSpan),V.vMerge&&(K.vMerge=V.vMerge),V.hMerge&&(K.hMerge=V.hMerge),(V.fontBold||B)&&(K.fontBold=V.fontBold||B),(V.fontColor||P)&&(K.fontColor=V.fontColor||P),(V.fillColor||I||A)&&(K.fillColor=V.fillColor||I||A),z.push(K)}O.push(z)}return Xl({type:"table",top:s,left:u,width:f,height:h,data:O},n||{})}function xf(t,e){return Sf.apply(this,arguments)}function Sf(){return Sf=r(u.mark((function t(e,r){var n,i,a,o,s,l,f,h,c,d,p,g,b;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=gl(e,["p:xfrm"]),i=jl(n,void 0,void 0),a=i.top,o=i.left,s=Fl(n,void 0,void 0),l=s.width,f=s.height,h=e["a:graphic"]["a:graphicData"]["c:chart"].attrs["r:id"],c=r.slideResObj[h].target,t.next=7,Eu(r.zip,c);case 7:if(d=t.sent,p=gl(d,["c:chartSpace","c:chart","c:plotArea"]),g=Bl(p)){t.next=12;break}return t.abrupt("return",{});case 12:return b={type:"chart",top:a,left:o,width:l,height:f,data:g.data,chartType:g.type},void 0!==g.marker&&(b.marker=g.marker),void 0!==g.barDir&&(b.barDir=g.barDir),void 0!==g.holeSize&&(b.holeSize=g.holeSize),void 0!==g.grouping&&(b.grouping=g.grouping),void 0!==g.style&&(b.style=g.style),t.abrupt("return",b);case 19:case"end":return t.stop()}}),t)}))),Sf.apply(this,arguments)}function Cf(t,e){var r=gl(t,["p:xfrm"]),n=jl(r,void 0,void 0),i=n.left,a=n.top,o=Fl(r,void 0,void 0),s=o.width,u=o.height,l=gl(e.digramFileContent,["p:drawing","p:spTree","p:sp"]),f=[];if(l){var h,c=$l(l);try{for(c.s();!(h=c.n()).done;){var d=gf(h.value,e,"diagramBg");d&&f.push(d)}}catch(t){c.e(t)}finally{c.f()}}return{type:"diagram",left:i,top:a,width:s,height:u,elements:f}}export{Ql as parse}; +function t(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function e(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function r(t){return function(){var r=this,n=arguments;return new Promise((function(i,a){var o=t.apply(r,n);function s(t){e(o,i,a,s,u,"next",t)}function u(t){e(o,i,a,s,u,"throw",t)}s(void 0)}))}}var n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function i(t){var e=t.default;if("function"==typeof e){var r=function(){return e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach((function(e){var n=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(r,e,n.get?n:{enumerable:!0,get:function(){return t[e]}})})),r}var a={exports:{}},o={exports:{}};!function(t){function e(r){return t.exports=e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,e(r)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports}(o),function(t){var e=o.exports.default;function r(){t.exports=r=function(){return n},t.exports.__esModule=!0,t.exports.default=t.exports;var n={},i=Object.prototype,a=i.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},s="function"==typeof Symbol?Symbol:{},u=s.iterator||"@@iterator",l=s.asyncIterator||"@@asyncIterator",f=s.toStringTag||"@@toStringTag";function h(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{h({},"")}catch(t){h=function(t,e,r){return t[e]=r}}function c(t,e,r,n){var i=e&&e.prototype instanceof g?e:g,a=Object.create(i.prototype),s=new R(n||[]);return o(a,"_invoke",{value:S(t,r,s)}),a}function d(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}n.wrap=c;var p={};function g(){}function b(){}function v(){}var m={};h(m,u,(function(){return this}));var y=Object.getPrototypeOf,w=y&&y(y(O([])));w&&w!==i&&a.call(w,u)&&(m=w);var _=v.prototype=g.prototype=Object.create(m);function k(t){["next","throw","return"].forEach((function(e){h(t,e,(function(t){return this._invoke(e,t)}))}))}function x(t,r){function n(i,o,s,u){var l=d(t[i],t,o);if("throw"!==l.type){var f=l.arg,h=f.value;return h&&"object"==e(h)&&a.call(h,"__await")?r.resolve(h.__await).then((function(t){n("next",t,s,u)}),(function(t){n("throw",t,s,u)})):r.resolve(h).then((function(t){f.value=t,s(f)}),(function(t){return n("throw",t,s,u)}))}u(l.arg)}var i;o(this,"_invoke",{value:function(t,e){function a(){return new r((function(r,i){n(t,e,r,i)}))}return i=i?i.then(a,a):a()}})}function S(t,e,r){var n="suspendedStart";return function(i,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===i)throw a;return T()}for(r.method=i,r.arg=a;;){var o=r.delegate;if(o){var s=C(o,r);if(s){if(s===p)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var u=d(t,e,r);if("normal"===u.type){if(n=r.done?"completed":"suspendedYield",u.arg===p)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n="completed",r.method="throw",r.arg=u.arg)}}}function C(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,C(t,e),"throw"===e.method))return p;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var n=d(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,p;var i=n.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,p):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,p)}function A(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function E(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function R(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(A,this),this.reset(!0)}function O(t){if(t){var e=t[u];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,n=function e(){for(;++r=0;--n){var i=this.tryEntries[n],o=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var s=a.call(i,"catchLoc"),u=a.call(i,"finallyLoc");if(s&&u){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&a.call(n,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;E(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:O(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),p}},n}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}(a);var s=a.exports(),u=s;try{regeneratorRuntime=s}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=s:Function("r","regeneratorRuntime = r")(s)}var l={},f={},h="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},c=[],d=[],p="undefined"!=typeof Uint8Array?Uint8Array:Array,g=!1;function b(){g=!0;for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e=0,r=t.length;e>18&63]+c[i>>12&63]+c[i>>6&63]+c[63&i]);return a.join("")}function m(t){var e;g||b();for(var r=t.length,n=r%3,i="",a=[],o=16383,s=0,u=r-n;su?u:s+o));return 1===n?(e=t[r-1],i+=c[e>>2],i+=c[e<<4&63],i+="=="):2===n&&(e=(t[r-2]<<8)+t[r-1],i+=c[e>>10],i+=c[e>>4&63],i+=c[e<<2&63],i+="="),a.push(i),a.join("")}function y(t,e,r,n,i){var a,o,s=8*i-n-1,u=(1<>1,f=-7,h=r?i-1:0,c=r?-1:1,d=t[e+h];for(h+=c,a=d&(1<<-f)-1,d>>=-f,f+=s;f>0;a=256*a+t[e+h],h+=c,f-=8);for(o=a&(1<<-f)-1,a>>=-f,f+=n;f>0;o=256*o+t[e+h],h+=c,f-=8);if(0===a)a=1-l;else{if(a===u)return o?NaN:1/0*(d?-1:1);o+=Math.pow(2,n),a-=l}return(d?-1:1)*o*Math.pow(2,a-n)}function w(t,e,r,n,i,a){var o,s,u,l=8*a-i-1,f=(1<>1,c=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:a-1,p=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=f):(o=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-o))<1&&(o--,u*=2),(e+=o+h>=1?c/u:c*Math.pow(2,1-h))*u>=2&&(o++,u/=2),o+h>=f?(s=0,o=f):o+h>=1?(s=(e*u-1)*Math.pow(2,i),o+=h):(s=e*Math.pow(2,h-1)*Math.pow(2,i),o=0));i>=8;t[r+d]=255&s,d+=p,s/=256,i-=8);for(o=o<0;t[r+d]=255&o,d+=p,o/=256,l-=8);t[r+d-p]|=128*g}var _={}.toString,k=Array.isArray||function(t){return"[object Array]"==_.call(t)};A.TYPED_ARRAY_SUPPORT=void 0===h.TYPED_ARRAY_SUPPORT||h.TYPED_ARRAY_SUPPORT;var x=S();function S(){return A.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function C(t,e){if(S()=S())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+S().toString(16)+" bytes");return 0|t}function M(t){return!(null==t||!t._isBuffer)}function I(t,e){if(M(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return at(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return ot(t).length;default:if(n)return at(t).length;e=(""+e).toLowerCase(),n=!0}}function P(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return V(this,e,r);case"utf8":case"utf-8":return q(this,e,r);case"ascii":return Y(this,e,r);case"latin1":case"binary":return G(this,e,r);case"base64":return Z(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return K(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function B(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function D(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=A.from(e,n)),M(e))return 0===e.length?-1:z(t,e,r,n,i);if("number"==typeof e)return e&=255,A.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):z(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function z(t,e,r,n,i){var a,o=1,s=t.length,u=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;o=2,s/=2,u/=2,r/=2}function l(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(i){var f=-1;for(a=r;as&&(r=s-u),a=r;a>=0;a--){for(var h=!0,c=0;ci&&(n=i):n=i;var a=e.length;if(a%2!=0)throw new TypeError("Invalid hex string");n>a/2&&(n=a/2);for(var o=0;o>8,i=r%256,a.push(i),a.push(n);return a}(e,t.length-r),t,r,n)}function Z(t,e,r){return 0===e&&r===t.length?m(t):m(t.slice(e,r))}function q(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:l>223?3:l>191?2:1;if(i+h<=r)switch(h){case 1:l<128&&(f=l);break;case 2:128==(192&(a=t[i+1]))&&(u=(31&l)<<6|63&a)>127&&(f=u);break;case 3:a=t[i+1],o=t[i+2],128==(192&a)&&128==(192&o)&&(u=(15&l)<<12|(63&a)<<6|63&o)>2047&&(u<55296||u>57343)&&(f=u);break;case 4:a=t[i+1],o=t[i+2],s=t[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(u=(15&l)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&u<1114112&&(f=u)}null===f?(f=65533,h=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),i+=h}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);var r="",n=0;for(;n0&&(t=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(t+=" ... ")),""},A.prototype.compare=function(t,e,r,n,i){if(!M(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var a=(i>>>=0)-(n>>>=0),o=(r>>>=0)-(e>>>=0),s=Math.min(a,o),u=this.slice(n,i),l=t.slice(e,r),f=0;fi)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return j(this,t,e,r);case"utf8":case"utf-8":return F(this,t,e,r);case"ascii":return N(this,t,e,r);case"latin1":case"binary":return U(this,t,e,r);case"base64":return H(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return W(this,t,e,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},A.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Y(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",a=e;ar)throw new RangeError("Trying to access beyond buffer length")}function $(t,e,r,n,i,a){if(!M(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function J(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,a=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function Q(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,a=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function tt(t,e,r,n,i,a){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function et(t,e,r,n,i){return i||tt(t,0,r,4),w(t,e,r,n,23,4),r+4}function rt(t,e,r,n,i){return i||tt(t,0,r,8),w(t,e,r,n,52,8),r+8}A.prototype.slice=function(t,e){var r,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e0&&(i*=256);)n+=this[t+--e]*i;return n},A.prototype.readUInt8=function(t,e){return e||X(t,1,this.length),this[t]},A.prototype.readUInt16LE=function(t,e){return e||X(t,2,this.length),this[t]|this[t+1]<<8},A.prototype.readUInt16BE=function(t,e){return e||X(t,2,this.length),this[t]<<8|this[t+1]},A.prototype.readUInt32LE=function(t,e){return e||X(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},A.prototype.readUInt32BE=function(t,e){return e||X(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},A.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||X(t,e,this.length);for(var n=this[t],i=1,a=0;++a=(i*=128)&&(n-=Math.pow(2,8*e)),n},A.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||X(t,e,this.length);for(var n=e,i=1,a=this[t+--n];n>0&&(i*=256);)a+=this[t+--n]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*e)),a},A.prototype.readInt8=function(t,e){return e||X(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},A.prototype.readInt16LE=function(t,e){e||X(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},A.prototype.readInt16BE=function(t,e){e||X(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},A.prototype.readInt32LE=function(t,e){return e||X(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},A.prototype.readInt32BE=function(t,e){return e||X(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},A.prototype.readFloatLE=function(t,e){return e||X(t,4,this.length),y(this,t,!0,23,4)},A.prototype.readFloatBE=function(t,e){return e||X(t,4,this.length),y(this,t,!1,23,4)},A.prototype.readDoubleLE=function(t,e){return e||X(t,8,this.length),y(this,t,!0,52,8)},A.prototype.readDoubleBE=function(t,e){return e||X(t,8,this.length),y(this,t,!1,52,8)},A.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e|=0,r|=0,n)||$(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[e]=255&t;++a=0&&(a*=256);)this[e+i]=t/a&255;return e+r},A.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||$(this,t,e,1,255,0),A.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},A.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||$(this,t,e,2,65535,0),A.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):J(this,t,e,!0),e+2},A.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||$(this,t,e,2,65535,0),A.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):J(this,t,e,!1),e+2},A.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||$(this,t,e,4,4294967295,0),A.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):Q(this,t,e,!0),e+4},A.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||$(this,t,e,4,4294967295,0),A.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):Q(this,t,e,!1),e+4},A.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);$(this,t,e,r,i-1,-i)}var a=0,o=1,s=0;for(this[e]=255&t;++a>0)-s&255;return e+r},A.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);$(this,t,e,r,i-1,-i)}var a=r-1,o=1,s=0;for(this[e+a]=255&t;--a>=0&&(o*=256);)t<0&&0===s&&0!==this[e+a+1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},A.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||$(this,t,e,1,127,-128),A.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},A.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||$(this,t,e,2,32767,-32768),A.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):J(this,t,e,!0),e+2},A.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||$(this,t,e,2,32767,-32768),A.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):J(this,t,e,!1),e+2},A.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||$(this,t,e,4,2147483647,-2147483648),A.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):Q(this,t,e,!0),e+4},A.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||$(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),A.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):Q(this,t,e,!1),e+4},A.prototype.writeFloatLE=function(t,e,r){return et(this,t,e,!0,r)},A.prototype.writeFloatBE=function(t,e,r){return et(this,t,e,!1,r)},A.prototype.writeDoubleLE=function(t,e,r){return rt(this,t,e,!0,r)},A.prototype.writeDoubleBE=function(t,e,r){return rt(this,t,e,!1,r)},A.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else if(a<1e3||!A.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(a=e;a55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&a.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function ot(t){return function(t){var e,r,n,i,a,o;g||b();var s=t.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");a="="===t[s-2]?2:"="===t[s-1]?1:0,o=new p(3*s/4-a),n=a>0?s-4:s;var u=0;for(e=0,r=0;e>16&255,o[u++]=i>>8&255,o[u++]=255&i;return 2===a?(i=d[t.charCodeAt(e)]<<2|d[t.charCodeAt(e+1)]>>4,o[u++]=255&i):1===a&&(i=d[t.charCodeAt(e)]<<10|d[t.charCodeAt(e+1)]<<4|d[t.charCodeAt(e+2)]>>2,o[u++]=i>>8&255,o[u++]=255&i),o}(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(nt,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function st(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function ut(t){return null!=t&&(!!t._isBuffer||lt(t)||function(t){return"function"==typeof t.readFloatLE&&"function"==typeof t.slice&<(t.slice(0,0))}(t))}function lt(t){return!!t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}var ft=Object.freeze({__proto__:null,INSPECT_MAX_BYTES:50,kMaxLength:x,Buffer:A,SlowBuffer:function(t){return+t!=t&&(t=0),A.alloc(+t)},isBuffer:ut}),ht={};function ct(){throw new Error("setTimeout has not been defined")}function dt(){throw new Error("clearTimeout has not been defined")}var pt=ct,gt=dt;function bt(t){if(pt===setTimeout)return setTimeout(t,0);if((pt===ct||!pt)&&setTimeout)return pt=setTimeout,setTimeout(t,0);try{return pt(t,0)}catch(e){try{return pt.call(null,t,0)}catch(e){return pt.call(this,t,0)}}}"function"==typeof h.setTimeout&&(pt=setTimeout),"function"==typeof h.clearTimeout&&(gt=clearTimeout);var vt,mt=[],yt=!1,wt=-1;function _t(){yt&&vt&&(yt=!1,vt.length?mt=vt.concat(mt):wt=-1,mt.length&&kt())}function kt(){if(!yt){var t=bt(_t);yt=!0;for(var e=mt.length;e;){for(vt=mt,mt=[];++wt1)for(var r=1;r0&&o.length>i){o.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+e+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=t,u.type=e,u.count=o.length,s=u,"function"==typeof console.warn?console.warn(s):console.log(s)}}else o=a[e]=r,++t._eventsCount;return t}function Gt(t,e,r){var n=!1;function i(){t.removeListener(e,i),n||(n=!0,r.apply(t,arguments))}return i.listener=r,i}function Vt(t){var e=this._events;if(e){var r=e[t];if("function"==typeof r)return 1;if(r)return r.length}return 0}function Kt(t,e){for(var r=new Array(e);e--;)r[e]=t[e];return r}jt.prototype=Object.create(null),Ft.EventEmitter=Ft,Ft.usingDomains=!1,Ft.prototype.domain=void 0,Ft.prototype._events=void 0,Ft.prototype._maxListeners=void 0,Ft.defaultMaxListeners=10,Ft.init=function(){this.domain=null,Ft.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new jt,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Ft.prototype.setMaxListeners=function(t){if("number"!=typeof t||t<0||isNaN(t))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=t,this},Ft.prototype.getMaxListeners=function(){return Nt(this)},Ft.prototype.emit=function(t){var e,r,n,i,a,o,s,u="error"===t;if(o=this._events)u=u&&null==o.error;else if(!u)return!1;if(s=this.domain,u){if(e=arguments[1],!s){if(e instanceof Error)throw e;var l=new Error('Uncaught, unspecified "error" event. ('+e+")");throw l.context=e,l}return e||(e=new Error('Uncaught, unspecified "error" event')),e.domainEmitter=this,e.domain=s,e.domainThrown=!1,s.emit("error",e),!1}if(!(r=o[t]))return!1;var f="function"==typeof r;switch(n=arguments.length){case 1:Ut(r,f,this);break;case 2:Ht(r,f,this,arguments[1]);break;case 3:Wt(r,f,this,arguments[1],arguments[2]);break;case 4:Zt(r,f,this,arguments[1],arguments[2],arguments[3]);break;default:for(i=new Array(n-1),a=1;a0;)if(r[a]===e||r[a].listener&&r[a].listener===e){o=r[a].listener,i=a;break}if(i<0)return this;if(1===r.length){if(r[0]=void 0,0==--this._eventsCount)return this._events=new jt,this;delete n[t]}else!function(t,e){for(var r=e,n=r+1,i=t.length;n0?Reflect.ownKeys(this._events):[]};var Xt=Object.freeze({__proto__:null,default:Ft,EventEmitter:Ft}),$t="function"==typeof Object.create?function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:function(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t},Jt=/%[sdj%]/g;function Qt(t){if(!ge(t)){for(var e=[],r=0;r=i)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}})),o=n[r];r=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),he(e)?r.showHidden=e:e&&Te(r,e),ve(r.showHidden)&&(r.showHidden=!1),ve(r.depth)&&(r.depth=2),ve(r.colors)&&(r.colors=!1),ve(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=ae),se(r,t,r.depth)}function ae(t,e){var r=ie.styles[e];return r?"["+ie.colors[r][0]+"m"+t+"["+ie.colors[r][1]+"m":t}function oe(t,e){return t}function se(t,e,r){if(t.customInspect&&e&&ke(e.inspect)&&e.inspect!==ie&&(!e.constructor||e.constructor.prototype!==e)){var n=e.inspect(r,t);return ge(n)||(n=se(t,n,r)),n}var i=function(t,e){if(ve(e))return t.stylize("undefined","undefined");if(ge(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}if(pe(e))return t.stylize(""+e,"number");if(he(e))return t.stylize(""+e,"boolean");if(ce(e))return t.stylize("null","null")}(t,e);if(i)return i;var a=Object.keys(e),o=function(t){var e={};return t.forEach((function(t,r){e[t]=!0})),e}(a);if(t.showHidden&&(a=Object.getOwnPropertyNames(e)),_e(e)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return ue(e);if(0===a.length){if(ke(e)){var s=e.name?": "+e.name:"";return t.stylize("[Function"+s+"]","special")}if(me(e))return t.stylize(RegExp.prototype.toString.call(e),"regexp");if(we(e))return t.stylize(Date.prototype.toString.call(e),"date");if(_e(e))return ue(e)}var u,l="",f=!1,h=["{","}"];(fe(e)&&(f=!0,h=["[","]"]),ke(e))&&(l=" [Function"+(e.name?": "+e.name:"")+"]");return me(e)&&(l=" "+RegExp.prototype.toString.call(e)),we(e)&&(l=" "+Date.prototype.toUTCString.call(e)),_e(e)&&(l=" "+ue(e)),0!==a.length||f&&0!=e.length?r<0?me(e)?t.stylize(RegExp.prototype.toString.call(e),"regexp"):t.stylize("[Object]","special"):(t.seen.push(e),u=f?function(t,e,r,n,i){for(var a=[],o=0,s=e.length;o60)return r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1];return r[0]+e+" "+t.join(", ")+" "+r[1]}(u,l,h)):h[0]+l+h[1]}function ue(t){return"["+Error.prototype.toString.call(t)+"]"}function le(t,e,r,n,i,a){var o,s,u;if((u=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?s=u.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):u.set&&(s=t.stylize("[Setter]","special")),Le(n,i)||(o="["+i+"]"),s||(t.seen.indexOf(u.value)<0?(s=ce(r)?se(t,u.value,null):se(t,u.value,r-1)).indexOf("\n")>-1&&(s=a?s.split("\n").map((function(t){return" "+t})).join("\n").substr(2):"\n"+s.split("\n").map((function(t){return" "+t})).join("\n")):s=t.stylize("[Circular]","special")),ve(o)){if(a&&i.match(/^\d+$/))return s;(o=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=t.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=t.stylize(o,"string"))}return o+": "+s}function fe(t){return Array.isArray(t)}function he(t){return"boolean"==typeof t}function ce(t){return null===t}function de(t){return null==t}function pe(t){return"number"==typeof t}function ge(t){return"string"==typeof t}function be(t){return"symbol"==typeof t}function ve(t){return void 0===t}function me(t){return ye(t)&&"[object RegExp]"===Ce(t)}function ye(t){return"object"==typeof t&&null!==t}function we(t){return ye(t)&&"[object Date]"===Ce(t)}function _e(t){return ye(t)&&("[object Error]"===Ce(t)||t instanceof Error)}function ke(t){return"function"==typeof t}function xe(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t}function Se(t){return ut(t)}function Ce(t){return Object.prototype.toString.call(t)}function Ae(t){return t<10?"0"+t.toString(10):t.toString(10)}ie.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},ie.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};var Ee=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Re(){var t=new Date,e=[Ae(t.getHours()),Ae(t.getMinutes()),Ae(t.getSeconds())].join(":");return[t.getDate(),Ee[t.getMonth()],e].join(" ")}function Oe(){console.log("%s - %s",Re(),Qt.apply(null,arguments))}function Te(t,e){if(!e||!ye(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t}function Le(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var Me={inherits:$t,_extend:Te,log:Oe,isBuffer:Se,isPrimitive:xe,isFunction:ke,isError:_e,isDate:we,isObject:ye,isRegExp:me,isUndefined:ve,isSymbol:be,isString:ge,isNumber:pe,isNullOrUndefined:de,isNull:ce,isBoolean:he,isArray:fe,inspect:ie,deprecate:te,format:Qt,debuglog:ne},Ie=Object.freeze({__proto__:null,format:Qt,deprecate:te,debuglog:ne,inspect:ie,isArray:fe,isBoolean:he,isNull:ce,isNullOrUndefined:de,isNumber:pe,isString:ge,isSymbol:be,isUndefined:ve,isRegExp:me,isObject:ye,isDate:we,isError:_e,isFunction:ke,isPrimitive:xe,isBuffer:Se,log:Oe,inherits:$t,_extend:Te,default:Me});function Pe(){this.head=null,this.tail=null,this.length=0}Pe.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},Pe.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},Pe.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},Pe.prototype.clear=function(){this.head=this.tail=null,this.length=0},Pe.prototype.join=function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r},Pe.prototype.concat=function(t){if(0===this.length)return A.alloc(0);if(1===this.length)return this.head.data;for(var e=A.allocUnsafe(t>>>0),r=this.head,n=0;r;)r.data.copy(e,n),n+=r.data.length,r=r.next;return e};var Be=A.isEncoding||function(t){switch(t&&t.toLowerCase()){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":return!0;default:return!1}};function De(t){switch(this.encoding=(t||"utf8").toLowerCase().replace(/[-_]/,""),function(t){if(t&&!Be(t))throw new Error("Unknown encoding: "+t)}(t),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=je;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=Fe;break;default:return void(this.write=ze)}this.charBuffer=new A(6),this.charReceived=0,this.charLength=0}function ze(t){return t.toString(this.encoding)}function je(t){this.charReceived=t.length%2,this.charLength=this.charReceived?2:0}function Fe(t){this.charReceived=t.length%3,this.charLength=this.charReceived?3:0}De.prototype.write=function(t){for(var e="";this.charLength;){var r=t.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:t.length;if(t.copy(this.charBuffer,this.charReceived,0,r),this.charReceived+=r,this.charReceived=55296&&i<=56319)){if(this.charReceived=this.charLength=0,0===t.length)return e;break}this.charLength+=this.surrogateSize,e=""}this.detectIncompleteChar(t);var n=t.length;this.charLength&&(t.copy(this.charBuffer,0,t.length-this.charReceived,n),n-=this.charReceived);var i;n=(e+=t.toString(this.encoding,0,n)).length-1;if((i=e.charCodeAt(n))>=55296&&i<=56319){var a=this.surrogateSize;return this.charLength+=a,this.charReceived+=a,this.charBuffer.copy(this.charBuffer,a,0,a),t.copy(this.charBuffer,0,0,a),e.substring(0,n)}return e},De.prototype.detectIncompleteChar=function(t){for(var e=t.length>=3?3:t.length;e>0;e--){var r=t[t.length-e];if(1==e&&r>>5==6){this.charLength=2;break}if(e<=2&&r>>4==14){this.charLength=3;break}if(e<=3&&r>>3==30){this.charLength=4;break}}this.charReceived=e},De.prototype.end=function(t){var e="";if(t&&t.length&&(e=this.write(t)),this.charReceived){var r=this.charReceived,n=this.charBuffer,i=this.encoding;e+=n.slice(0,r).toString(i)}return e},He.ReadableState=Ue;var Ne=ne("stream");function Ue(t,e){t=t||{},this.objectMode=!!t.objectMode,e instanceof gr&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var r=t.highWaterMark,n=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:n,this.highWaterMark=~~this.highWaterMark,this.buffer=new Pe,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(this.decoder=new De(t.encoding),this.encoding=t.encoding)}function He(t){if(!(this instanceof He))return new He(t);this._readableState=new Ue(t,this),this.readable=!0,t&&"function"==typeof t.read&&(this._read=t.read),Ft.call(this)}function We(t,e,r,n,i){var a=function(t,e){var r=null;ut(e)||"string"==typeof e||null==e||t.objectMode||(r=new TypeError("Invalid non-string/buffer chunk"));return r}(e,r);if(a)t.emit("error",a);else if(null===r)e.reading=!1,function(t,e){if(e.ended)return;if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,qe(t)}(t,e);else if(e.objectMode||r&&r.length>0)if(e.ended&&!i){var o=new Error("stream.push() after EOF");t.emit("error",o)}else if(e.endEmitted&&i){var s=new Error("stream.unshift() after end event");t.emit("error",s)}else{var u;!e.decoder||i||n||(r=e.decoder.write(r),u=!e.objectMode&&0===r.length),i||(e.reading=!1),u||(e.flowing&&0===e.length&&!e.sync?(t.emit("data",r),t.read(0)):(e.length+=e.objectMode?1:r.length,i?e.buffer.unshift(r):e.buffer.push(r),e.needReadable&&qe(t))),function(t,e){e.readingMore||(e.readingMore=!0,xt(Ge,t,e))}(t,e)}else i||(e.reading=!1);return function(t){return!t.ended&&(t.needReadable||t.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=8388608?t=8388608:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function qe(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(Ne("emitReadable",e.flowing),e.emittedReadable=!0,e.sync?xt(Ye,t):Ye(t))}function Ye(t){Ne("emit readable"),t.emit("readable"),Xe(t)}function Ge(t,e){for(var r=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):r=function(t,e,r){var n;ta.length?a.length:t;if(o===a.length?i+=a:i+=a.slice(0,t),0===(t-=o)){o===a.length?(++n,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=a.slice(o));break}++n}return e.length-=n,i}(t,e):function(t,e){var r=A.allocUnsafe(t),n=e.head,i=1;n.data.copy(r),t-=n.data.length;for(;n=n.next;){var a=n.data,o=t>a.length?a.length:t;if(a.copy(r,r.length-t,0,o),0===(t-=o)){o===a.length?(++i,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=a.slice(o));break}++i}return e.length-=i,r}(t,e);return n}(t,e.buffer,e.decoder),r);var r}function Je(t){var e=t._readableState;if(e.length>0)throw new Error('"endReadable()" called on non-empty stream');e.endEmitted||(e.ended=!0,xt(Qe,e,t))}function Qe(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function tr(t,e){for(var r=0,n=t.length;r=e.highWaterMark||e.ended))return Ne("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?Je(this):qe(this),null;if(0===(t=Ze(t,e))&&e.ended)return 0===e.length&&Je(this),null;var n,i=e.needReadable;return Ne("need readable",i),(0===e.length||e.length-t0?$e(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&Je(this)),null!==n&&this.emit("data",n),n},He.prototype._read=function(t){this.emit("error",new Error("not implemented"))},He.prototype.pipe=function(t,e){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=t;break;case 1:n.pipes=[n.pipes,t];break;default:n.pipes.push(t)}n.pipesCount+=1,Ne("pipe count=%d opts=%j",n.pipesCount,e);var i=!e||!1!==e.end?o:l;function a(t){Ne("onunpipe"),t===r&&l()}function o(){Ne("onend"),t.end()}n.endEmitted?xt(i):r.once("end",i),t.on("unpipe",a);var s=function(t){return function(){var e=t._readableState;Ne("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&t.listeners("data").length&&(e.flowing=!0,Xe(t))}}(r);t.on("drain",s);var u=!1;function l(){Ne("cleanup"),t.removeListener("close",d),t.removeListener("finish",p),t.removeListener("drain",s),t.removeListener("error",c),t.removeListener("unpipe",a),r.removeListener("end",o),r.removeListener("end",l),r.removeListener("data",h),u=!0,!n.awaitDrain||t._writableState&&!t._writableState.needDrain||s()}var f=!1;function h(e){Ne("ondata"),f=!1,!1!==t.write(e)||f||((1===n.pipesCount&&n.pipes===t||n.pipesCount>1&&-1!==tr(n.pipes,t))&&!u&&(Ne("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,f=!0),r.pause())}function c(e){var r;Ne("onerror",e),g(),t.removeListener("error",c),0===(r="error",t.listeners(r).length)&&t.emit("error",e)}function d(){t.removeListener("finish",p),g()}function p(){Ne("onfinish"),t.removeListener("close",d),g()}function g(){Ne("unpipe"),r.unpipe(t)}return r.on("data",h),function(t,e,r){if("function"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,"error",c),t.once("close",d),t.once("finish",p),t.emit("pipe",r),n.flowing||(Ne("pipe resume"),r.resume()),t},He.prototype.unpipe=function(t){var e=this._readableState;if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this)),this;if(!t){var r=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var i=0;i-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},ir.prototype._write=function(t,e,r){r(new Error("not implemented"))},ir.prototype._writev=null,ir.prototype.end=function(t,e,r){var n=this._writableState;"function"==typeof t?(r=t,t=null,e=null):"function"==typeof e&&(r=e,e=null),null!=t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(t,e,r){e.ending=!0,fr(t,e),r&&(e.finished?xt(r):t.once("finish",r));e.ended=!0,t.writable=!1}(this,n,r)},$t(gr,He);for(var cr=Object.keys(ir.prototype),dr=0;dr0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r},t.prototype.concat=function(t){if(0===this.length)return e.alloc(0);if(1===this.length)return this.head.data;for(var r,n,i,a=e.allocUnsafe(t>>>0),o=this.head,s=0;o;)r=o.data,n=a,i=s,r.copy(n,i),s+=o.data.length,o=o.next;return a},t}(),r&&r.inspect&&r.inspect.custom&&(t.exports.prototype[r.inspect.custom]=function(){var t=r.inspect({length:this.length});return this.constructor.name+" "+t})}(en)),en.exports}function nn(){if(Vr)return Gr;Vr=1;var t=Rr();function e(t,e){t.emit("error",e)}return Gr={destroy:function(r,n){var i=this,a=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;return a||o?(n?n(r):!r||this._writableState&&this._writableState.errorEmitted||t.nextTick(e,this,r),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,(function(r){!n&&r?(t.nextTick(e,i,r),i._writableState&&(i._writableState.errorEmitted=!0)):n&&n(r)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}},Gr}function an(){if(Jr)return $r;Jr=1;var t=Rr();function e(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e,r){var n=t.entry;t.entry=null;for(;n;){var i=n.callback;e.pendingcb--,i(r),n=n.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}(e,t)}}$r=p;var r,i=t.nextTick;p.WritableState=d;var a=Object.create(Fr());a.inherits=qr();var o={deprecate:Xr?Kr:(Xr=1,Kr=Wr.deprecate)},s=Mr(),u=Dr().Buffer,l=n.Uint8Array||function(){};var f,h=nn();function c(){}function d(n,a){r=r||on(),n=n||{};var o=a instanceof r;this.objectMode=!!n.objectMode,o&&(this.objectMode=this.objectMode||!!n.writableObjectMode);var s=n.highWaterMark,u=n.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=s||0===s?s:o&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===n.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=n.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,r){var n=e._writableState,a=n.sync,o=n.writecb;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(n),r)!function(e,r,n,i,a){--r.pendingcb,n?(t.nextTick(a,i),t.nextTick(w,e,r),e._writableState.errorEmitted=!0,e.emit("error",i)):(a(i),e._writableState.errorEmitted=!0,e.emit("error",i),w(e,r))}(e,n,a,r,o);else{var s=m(n);s||n.corked||n.bufferProcessing||!n.bufferedRequest||v(e,n),a?i(b,e,n,s,o):b(e,n,s,o)}}(a,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}function p(t){if(r=r||on(),!(f.call(p,this)||this instanceof r))return new p(t);this._writableState=new d(t,this),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev),"function"==typeof t.destroy&&(this._destroy=t.destroy),"function"==typeof t.final&&(this._final=t.final)),s.call(this)}function g(t,e,r,n,i,a,o){e.writelen=n,e.writecb=o,e.writing=!0,e.sync=!0,r?t._writev(i,e.onwrite):t._write(i,a,e.onwrite),e.sync=!1}function b(t,e,r,n){r||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}(t,e),e.pendingcb--,n(),w(t,e)}function v(t,r){r.bufferProcessing=!0;var n=r.bufferedRequest;if(t._writev&&n&&n.next){var i=r.bufferedRequestCount,a=new Array(i),o=r.corkedRequestsFree;o.entry=n;for(var s=0,u=!0;n;)a[s]=n,n.isBuf||(u=!1),n=n.next,s+=1;a.allBuffers=u,g(t,r,!0,r.length,a,"",o.finish),r.pendingcb++,r.lastBufferedRequest=null,o.next?(r.corkedRequestsFree=o.next,o.next=null):r.corkedRequestsFree=new e(r),r.bufferedRequestCount=0}else{for(;n;){var l=n.chunk,f=n.encoding,h=n.callback;if(g(t,r,!1,r.objectMode?1:l.length,l,f,h),n=n.next,r.bufferedRequestCount--,r.writing)break}null===n&&(r.lastBufferedRequest=null)}r.bufferedRequest=n,r.bufferProcessing=!1}function m(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function y(t,e){t._final((function(r){e.pendingcb--,r&&t.emit("error",r),e.prefinished=!0,t.emit("prefinish"),w(t,e)}))}function w(e,r){var n=m(r);return n&&(!function(e,r){r.prefinished||r.finalCalled||("function"==typeof e._final?(r.pendingcb++,r.finalCalled=!0,t.nextTick(y,e,r)):(r.prefinished=!0,e.emit("prefinish")))}(e,r),0===r.pendingcb&&(r.finished=!0,e.emit("finish"))),n}return a.inherits(p,s),d.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(d.prototype,"buffer",{get:o.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(f=Function.prototype[Symbol.hasInstance],Object.defineProperty(p,Symbol.hasInstance,{value:function(t){return!!f.call(this,t)||this===p&&(t&&t._writableState instanceof d)}})):f=function(t){return t instanceof this},p.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},p.prototype.write=function(e,r,n){var i,a=this._writableState,o=!1,s=!a.objectMode&&(i=e,u.isBuffer(i)||i instanceof l);return s&&!u.isBuffer(e)&&(e=function(t){return u.from(t)}(e)),"function"==typeof r&&(n=r,r=null),s?r="buffer":r||(r=a.defaultEncoding),"function"!=typeof n&&(n=c),a.ended?function(e,r){var n=new Error("write after end");e.emit("error",n),t.nextTick(r,n)}(this,n):(s||function(e,r,n,i){var a=!0,o=!1;return null===n?o=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||r.objectMode||(o=new TypeError("Invalid non-string/buffer chunk")),o&&(e.emit("error",o),t.nextTick(i,o),a=!1),a}(this,a,e,n))&&(a.pendingcb++,o=function(t,e,r,n,i,a){if(!r){var o=function(t,e,r){t.objectMode||!1===t.decodeStrings||"string"!=typeof e||(e=u.from(e,r));return e}(e,n,i);n!==o&&(r=!0,i="buffer",n=o)}var s=e.objectMode?1:n.length;e.length+=s;var l=e.length-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(p.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),p.prototype._write=function(t,e,r){r(new Error("_write() is not implemented"))},p.prototype._writev=null,p.prototype.end=function(e,r,n){var i=this._writableState;"function"==typeof e?(n=e,e=null,r=null):"function"==typeof r&&(n=r,r=null),null!=e&&this.write(e,r),i.corked&&(i.corked=1,this.uncork()),i.ending||i.finished||function(e,r,n){r.ending=!0,w(e,r),n&&(r.finished?t.nextTick(n):e.once("finish",n));r.ended=!0,e.writable=!1}(this,i,n)},Object.defineProperty(p.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),p.prototype.destroy=h.destroy,p.prototype._undestroy=h.undestroy,p.prototype._destroy=function(t,e){this.end(),e(t)},$r}function on(){if(tn)return Qr;tn=1;var t=Rr(),e=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};Qr=u;var r=Object.create(Fr());r.inherits=qr();var n=vn(),i=an();r.inherits(u,n);for(var a=e(i.prototype),o=0;o>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function i(t){var e=this.lastTotal-this.lastNeed,r=function(t,e,r){if(128!=(192&e[0]))return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"�"}}(this,t);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function a(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function o(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function s(t,e){var r=(t.length-e)%3;return 0===r?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function u(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function l(t){return t.toString(this.encoding)}function f(t){return t&&t.length?this.write(t):""}return gn.StringDecoder=r,r.prototype.write=function(t){if(0===t.length)return"";var e,r;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return a>0&&(t.lastNeed=a-1),a;if(--i=0)return a>0&&(t.lastNeed=a-2),a;if(--i=0)return a>0&&(2===a?a=0:t.lastNeed=a-3),a;return 0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var i=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,i),t.toString("utf8",e,i)},r.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length},gn}function vn(){if(ln)return un;ln=1;var t=Rr();un=b;var e,r=function(){if(Cr)return Sr;Cr=1;var t={}.toString;return Sr=Array.isArray||function(e){return"[object Array]"==t.call(e)}}();b.ReadableState=g,Tr.EventEmitter;var i=function(t,e){return t.listeners(e).length},a=Mr(),o=Dr().Buffer,s=n.Uint8Array||function(){};var u=Object.create(Fr());u.inherits=qr();var l=Wr,f=void 0;f=l&&l.debuglog?l.debuglog("stream"):function(){};var h,c=rn(),d=nn();u.inherits(b,a);var p=["error","close","destroy","pause","resume"];function g(t,r){t=t||{};var n=r instanceof(e=e||on());this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var i=t.highWaterMark,a=t.readableHighWaterMark,o=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(a||0===a)?a:o,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new c,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(h||(h=bn().StringDecoder),this.decoder=new h(t.encoding),this.encoding=t.encoding)}function b(t){if(e=e||on(),!(this instanceof b))return new b(t);this._readableState=new g(t,this),this.readable=!0,t&&("function"==typeof t.read&&(this._read=t.read),"function"==typeof t.destroy&&(this._destroy=t.destroy)),a.call(this)}function v(t,e,r,n,i){var a,u=t._readableState;null===e?(u.reading=!1,function(t,e){if(e.ended)return;if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,_(t)}(t,u)):(i||(a=function(t,e){var r;n=e,o.isBuffer(n)||n instanceof s||"string"==typeof e||void 0===e||t.objectMode||(r=new TypeError("Invalid non-string/buffer chunk"));var n;return r}(u,e)),a?t.emit("error",a):u.objectMode||e&&e.length>0?("string"==typeof e||u.objectMode||Object.getPrototypeOf(e)===o.prototype||(e=function(t){return o.from(t)}(e)),n?u.endEmitted?t.emit("error",new Error("stream.unshift() after end event")):m(t,u,e,!0):u.ended?t.emit("error",new Error("stream.push() after EOF")):(u.reading=!1,u.decoder&&!r?(e=u.decoder.write(e),u.objectMode||0!==e.length?m(t,u,e,!1):x(t,u)):m(t,u,e,!1))):n||(u.reading=!1));return function(t){return!t.ended&&(t.needReadable||t.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=y?t=y:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function _(e){var r=e._readableState;r.needReadable=!1,r.emittedReadable||(f("emitReadable",r.flowing),r.emittedReadable=!0,r.sync?t.nextTick(k,e):k(e))}function k(t){f("emit readable"),t.emit("readable"),E(t)}function x(e,r){r.readingMore||(r.readingMore=!0,t.nextTick(S,e,r))}function S(t,e){for(var r=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):r=function(t,e,r){var n;ta.length?a.length:t;if(o===a.length?i+=a:i+=a.slice(0,t),0===(t-=o)){o===a.length?(++n,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=a.slice(o));break}++n}return e.length-=n,i}(t,e):function(t,e){var r=o.allocUnsafe(t),n=e.head,i=1;n.data.copy(r),t-=n.data.length;for(;n=n.next;){var a=n.data,s=t>a.length?a.length:t;if(a.copy(r,r.length-t,0,s),0===(t-=s)){s===a.length?(++i,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=a.slice(s));break}++i}return e.length-=i,r}(t,e);return n}(t,e.buffer,e.decoder),r);var r}function O(e){var r=e._readableState;if(r.length>0)throw new Error('"endReadable()" called on non-empty stream');r.endEmitted||(r.ended=!0,t.nextTick(T,r,e))}function T(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function L(t,e){for(var r=0,n=t.length;r=e.highWaterMark||e.ended))return f("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?O(this):_(this),null;if(0===(t=w(t,e))&&e.ended)return 0===e.length&&O(this),null;var n,i=e.needReadable;return f("need readable",i),(0===e.length||e.length-t0?R(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&O(this)),null!==n&&this.emit("data",n),n},b.prototype._read=function(t){this.emit("error",new Error("_read() is not implemented"))},b.prototype.pipe=function(e,n){var a=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=e;break;case 1:o.pipes=[o.pipes,e];break;default:o.pipes.push(e)}o.pipesCount+=1,f("pipe count=%d opts=%j",o.pipesCount,n);var s=(!n||!1!==n.end)&&e!==Dt.stdout&&e!==Dt.stderr?l:m;function u(t,r){f("onunpipe"),t===a&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,f("cleanup"),e.removeListener("close",b),e.removeListener("finish",v),e.removeListener("drain",h),e.removeListener("error",g),e.removeListener("unpipe",u),a.removeListener("end",l),a.removeListener("end",m),a.removeListener("data",p),c=!0,!o.awaitDrain||e._writableState&&!e._writableState.needDrain||h())}function l(){f("onend"),e.end()}o.endEmitted?t.nextTick(s):a.once("end",s),e.on("unpipe",u);var h=function(t){return function(){var e=t._readableState;f("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&i(t,"data")&&(e.flowing=!0,E(t))}}(a);e.on("drain",h);var c=!1;var d=!1;function p(t){f("ondata"),d=!1,!1!==e.write(t)||d||((1===o.pipesCount&&o.pipes===e||o.pipesCount>1&&-1!==L(o.pipes,e))&&!c&&(f("false write response, pause",a._readableState.awaitDrain),a._readableState.awaitDrain++,d=!0),a.pause())}function g(t){f("onerror",t),m(),e.removeListener("error",g),0===i(e,"error")&&e.emit("error",t)}function b(){e.removeListener("finish",v),m()}function v(){f("onfinish"),e.removeListener("close",b),m()}function m(){f("unpipe"),a.unpipe(e)}return a.on("data",p),function(t,e,n){if("function"==typeof t.prependListener)return t.prependListener(e,n);t._events&&t._events[e]?r(t._events[e])?t._events[e].unshift(n):t._events[e]=[n,t._events[e]]:t.on(e,n)}(e,"error",g),e.once("close",b),e.once("finish",v),e.emit("pipe",a),o.flowing||(f("pipe resume"),a.resume()),e},b.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var a=0;a>2,s=(3&n)<<4|i>>4,u=d>1?(15&i)<<2|a>>6:64,l=d>2?63&a:64,f.push(r.charAt(o)+r.charAt(s)+r.charAt(u)+r.charAt(l));return f.join("")},xn.decode=function(t){var n,i,a,o,s,u,l=0,f=0,h="data:";if(t.substr(0,h.length)===h)throw new Error("Invalid base64 input, it looks like a data url.");var c,d=3*(t=t.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(t.charAt(t.length-1)===r.charAt(64)&&d--,t.charAt(t.length-2)===r.charAt(64)&&d--,d%1!=0)throw new Error("Invalid base64 input, bad content length.");for(c=e.uint8array?new Uint8Array(0|d):new Array(0|d);l>4,i=(15&o)<<4|(s=r.indexOf(t.charAt(l++)))>>2,a=(3&s)<<6|(u=r.indexOf(t.charAt(l++))),c[f++]=n,64!==s&&(c[f++]=i),64!==u&&(c[f++]=a);return c},xn}var Cn,An,En,Rn,On={isNode:!0,newBufferFrom:function(t,e){if(A.from&&A.from!==Uint8Array.from)return A.from(t,e);if("number"==typeof t)throw new Error('The "data" argument must not be a number');return new A(t,e)},allocBuffer:function(t){if(A.alloc)return A.alloc(t);var e=new A(t);return e.fill(0),e},isBuffer:function(t){return ut(t)},isStream:function(t){return t&&"function"==typeof t.on&&"function"==typeof t.pause&&"function"==typeof t.resume}};var Tn=null;Tn="undefined"!=typeof Promise?Promise:function(){if(Rn)return En;Rn=1;var t=function(){if(An)return Cn;An=1;var t,e,r=n.MutationObserver||n.WebKitMutationObserver;if(r){var i=0,a=new r(l),o=n.document.createTextNode("");a.observe(o,{characterData:!0}),t=function(){o.data=i=++i%2}}else if(n.setImmediate||void 0===n.MessageChannel)t="document"in n&&"onreadystatechange"in n.document.createElement("script")?function(){var t=n.document.createElement("script");t.onreadystatechange=function(){l(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},n.document.documentElement.appendChild(t)}:function(){setTimeout(l,0)};else{var s=new n.MessageChannel;s.port1.onmessage=l,t=function(){s.port2.postMessage(0)}}var u=[];function l(){var t,r;e=!0;for(var n=u.length;n;){for(r=u,u=[],t=-1;++t1;)try{return s.stringifyByChunk(e,n,r)}catch(t){r=Math.floor(r/2)}return s.stringifyByChar(e)}function l(t,e){for(var r=0;r "+t:t}};var Bn=Pn;!function(t){for(var e=In(),r=ht,n=On,i=Bn,a=new Array(256),o=0;o<256;o++)a[o]=o>=252?6:o>=248?5:o>=240?4:o>=224?3:o>=192?2:1;a[254]=a[254]=1;function s(){i.call(this,"utf-8 decode"),this.leftOver=null}function u(){i.call(this,"utf-8 encode")}t.utf8encode=function(t){return r.nodebuffer?n.newBufferFrom(t,"utf-8"):function(t){var e,n,i,a,o,s=t.length,u=0;for(a=0;a>>6,e[o++]=128|63&n):n<65536?(e[o++]=224|n>>>12,e[o++]=128|n>>>6&63,e[o++]=128|63&n):(e[o++]=240|n>>>18,e[o++]=128|n>>>12&63,e[o++]=128|n>>>6&63,e[o++]=128|63&n);return e}(t)},t.utf8decode=function(t){return r.nodebuffer?e.transformTo("nodebuffer",t).toString("utf-8"):function(t){var r,n,i,o,s=t.length,u=new Array(2*s);for(n=0,r=0;r4)u[n++]=65533,r+=o-1;else{for(i&=2===o?31:3===o?15:7;o>1&&r1?u[n++]=65533:i<65536?u[n++]=i:(i-=65536,u[n++]=55296|i>>10&1023,u[n++]=56320|1023&i)}return u.length!==n&&(u.subarray?u=u.subarray(0,n):u.length=n),e.applyFromCharCode(u)}(t=e.transformTo(r.uint8array?"uint8array":"array",t))},e.inherits(s,i),s.prototype.processChunk=function(n){var i=e.transformTo(r.uint8array?"uint8array":"array",n.data);if(this.leftOver&&this.leftOver.length){if(r.uint8array){var o=i;(i=new Uint8Array(o.length+this.leftOver.length)).set(this.leftOver,0),i.set(o,this.leftOver.length)}else i=this.leftOver.concat(i);this.leftOver=null}var s=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;r>=0&&128==(192&t[r]);)r--;return r<0||0===r?e:r+a[t[r]]>e?r:e}(i),u=i;s!==i.length&&(r.uint8array?(u=i.subarray(0,s),this.leftOver=i.subarray(s,i.length)):(u=i.slice(0,s),this.leftOver=i.slice(s,i.length))),this.push({data:t.utf8decode(u),meta:n.meta})},s.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:t.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},t.Utf8DecodeWorker=s,e.inherits(u,i),u.prototype.processChunk=function(e){this.push({data:t.utf8encode(e.data),meta:e.meta})},t.Utf8EncodeWorker=u}(l);var Dn=Bn,zn=In();function jn(t){Dn.call(this,"ConvertWorker to "+t),this.destType=t}zn.inherits(jn,Dn),jn.prototype.processChunk=function(t){this.push({data:zn.transformTo(this.destType,t.data),meta:t.meta})};var Fn,Nn,Un=jn;var Hn=In(),Wn=Un,Zn=Bn,qn=Sn(),Yn=Mn,Gn=null;if(ht.nodestream)try{Gn=function(){if(Nn)return Fn;Nn=1;var t=yn().Readable;function e(e,r,n){t.call(this,r),this._helper=e;var i=this;e.on("data",(function(t,e){i.push(t)||i._helper.pause(),n&&n(e)})).on("error",(function(t){i.emit("error",t)})).on("end",(function(){i.push(null)}))}return In().inherits(e,t),e.prototype._read=function(){this._helper.resume()},Fn=e}()}catch(t){}function Vn(t,e){return new Yn.Promise((function(r,n){var i=[],a=t._internalType,o=t._outputType,s=t._mimeType;t.on("data",(function(t,r){i.push(t),e&&e(r)})).on("error",(function(t){i=[],n(t)})).on("end",(function(){try{var t=function(t,e,r){switch(t){case"blob":return Hn.newBlob(Hn.transformTo("arraybuffer",e),r);case"base64":return qn.encode(e);default:return Hn.transformTo(t,e)}}(o,function(t,e){var r,n=0,i=null,a=0;for(r=0;r=this.max)return this.end();switch(this.type){case"string":t=this.data.substring(this.index,e);break;case"uint8array":t=this.data.subarray(this.index,e);break;case"array":case"nodebuffer":t=this.data.slice(this.index,e)}return this.index=e,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})};var ei=ti,ri=In();var ni=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();var ii=function(t,e){return void 0!==t&&t.length?"string"!==ri.getTypeOf(t)?function(t,e,r,n){var i=ni,a=n+r;t^=-1;for(var o=n;o>>8^i[255&(t^e[o])];return-1^t}(0|e,t,t.length,0):function(t,e,r,n){var i=ni,a=n+r;t^=-1;for(var o=n;o>>8^i[255&(t^e.charCodeAt(o))];return-1^t}(0|e,t,t.length,0):0},ai=Bn,oi=ii;function si(){ai.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}In().inherits(si,ai),si.prototype.processChunk=function(t){this.streamInfo.crc32=oi(t.data,this.streamInfo.crc32||0),this.push(t)};var ui=si,li=In(),fi=Bn;function hi(t){fi.call(this,"DataLengthProbe for "+t),this.propName=t,this.withStreamInfo(t,0)}li.inherits(hi,fi),hi.prototype.processChunk=function(t){if(t){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+t.data.length}fi.prototype.processChunk.call(this,t)};var ci=Mn,di=ei,pi=ui,gi=hi;function bi(t,e,r,n,i){this.compressedSize=t,this.uncompressedSize=e,this.crc32=r,this.compression=n,this.compressedContent=i}bi.prototype={getContentWorker:function(){var t=new di(ci.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new gi("data_length")),e=this;return t.on("end",(function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")})),t},getCompressedWorker:function(){return new di(ci.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},bi.createWorkerFrom=function(t,e,r){return t.pipe(new pi).pipe(new gi("uncompressedSize")).pipe(e.compressWorker(r)).pipe(new gi("compressedSize")).withStreamInfo("compression",e)};var vi=bi,mi=Xn,yi=ei,wi=l,_i=vi,ki=Bn,xi=function(t,e,r){this.name=t,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=e,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions}};xi.prototype={internalStream:function(t){var e=null,r="string";try{if(!t)throw new Error("No output type specified.");var n="string"===(r=t.toLowerCase())||"text"===r;"binarystring"!==r&&"text"!==r||(r="string"),e=this._decompressWorker();var i=!this._dataBinary;i&&!n&&(e=e.pipe(new wi.Utf8EncodeWorker)),!i&&n&&(e=e.pipe(new wi.Utf8DecodeWorker))}catch(t){(e=new ki("error")).error(t)}return new mi(e,r,"")},async:function(t,e){return this.internalStream(t).accumulate(e)},nodeStream:function(t,e){return this.internalStream(t||"nodebuffer").toNodejsStream(e)},_compressWorker:function(t,e){if(this._data instanceof _i&&this._data.compression.magic===t.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new wi.Utf8EncodeWorker)),_i.createWorkerFrom(r,t,e)},_decompressWorker:function(){return this._data instanceof _i?this._data.getContentWorker():this._data instanceof ki?this._data:new yi(this._data)}};for(var Si=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],Ci=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},Ai=0;Ai=0;)t[e]=0}var zi=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ji=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Fi=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Ni=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Ui=new Array(576);Di(Ui);var Hi=new Array(60);Di(Hi);var Wi=new Array(512);Di(Wi);var Zi=new Array(256);Di(Zi);var qi=new Array(29);Di(qi);var Yi,Gi,Vi,Ki=new Array(30);function Xi(t,e,r,n,i){this.static_tree=t,this.extra_bits=e,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=t&&t.length}function $i(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function Ji(t){return t<256?Wi[t]:Wi[256+(t>>>7)]}function Qi(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function ta(t,e,r){t.bi_valid>16-r?(t.bi_buf|=e<>16-t.bi_valid,t.bi_valid+=r-16):(t.bi_buf|=e<>>=1,r<<=1}while(--e>0);return r>>>1}function na(t,e,r){var n,i,a=new Array(16),o=0;for(n=1;n<=15;n++)a[n]=o=o+r[n-1]<<1;for(i=0;i<=e;i++){var s=t[2*i+1];0!==s&&(t[2*i]=ra(a[s]++,s))}}function ia(t){var e;for(e=0;e<286;e++)t.dyn_ltree[2*e]=0;for(e=0;e<30;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function aa(t){t.bi_valid>8?Qi(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function oa(t,e,r,n){var i=2*e,a=2*r;return t[i]>1;r>=1;r--)sa(t,a,r);i=u;do{r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],sa(t,a,1),n=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=n,a[2*i]=a[2*r]+a[2*n],t.depth[i]=(t.depth[r]>=t.depth[n]?t.depth[r]:t.depth[n])+1,a[2*r+1]=a[2*n+1]=i,t.heap[1]=i++,sa(t,a,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],function(t,e){var r,n,i,a,o,s,u=e.dyn_tree,l=e.max_code,f=e.stat_desc.static_tree,h=e.stat_desc.has_stree,c=e.stat_desc.extra_bits,d=e.stat_desc.extra_base,p=e.stat_desc.max_length,g=0;for(a=0;a<=15;a++)t.bl_count[a]=0;for(u[2*t.heap[t.heap_max]+1]=0,r=t.heap_max+1;r<573;r++)(a=u[2*u[2*(n=t.heap[r])+1]+1]+1)>p&&(a=p,g++),u[2*n+1]=a,n>l||(t.bl_count[a]++,o=0,n>=d&&(o=c[n-d]),s=u[2*n],t.opt_len+=s*(a+o),h&&(t.static_len+=s*(f[2*n+1]+o)));if(0!==g){do{for(a=p-1;0===t.bl_count[a];)a--;t.bl_count[a]--,t.bl_count[a+1]+=2,t.bl_count[p]--,g-=2}while(g>0);for(a=p;0!==a;a--)for(n=t.bl_count[a];0!==n;)(i=t.heap[--r])>l||(u[2*i+1]!==a&&(t.opt_len+=(a-u[2*i+1])*u[2*i],u[2*i+1]=a),n--)}}(t,e),na(a,l,t.bl_count)}function fa(t,e,r){var n,i,a=-1,o=e[1],s=0,u=7,l=4;for(0===o&&(u=138,l=3),e[2*(r+1)+1]=65535,n=0;n<=r;n++)i=o,o=e[2*(n+1)+1],++s>=7;n<30;n++)for(Ki[n]=i<<7,t=0;t<1<0?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,r=4093624447;for(e=0;e<=31;e++,r>>>=1)if(1&r&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0}(t)),la(t,t.l_desc),la(t,t.d_desc),o=function(t){var e;for(fa(t,t.dyn_ltree,t.l_desc.max_code),fa(t,t.dyn_dtree,t.d_desc.max_code),la(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*Ni[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),i=t.opt_len+3+7>>>3,(a=t.static_len+3+7>>>3)<=i&&(i=a)):i=a=r+5,r+4<=i&&-1!==e?da(t,e,r,n):4===t.strategy||a===i?(ta(t,2+(n?1:0),3),ua(t,Ui,Hi)):(ta(t,4+(n?1:0),3),function(t,e,r,n){var i;for(ta(t,e-257,5),ta(t,r-1,5),ta(t,n-4,4),i=0;i>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&r,t.last_lit++,0===e?t.dyn_ltree[2*r]++:(t.matches++,e--,t.dyn_ltree[2*(Zi[r]+256+1)]++,t.dyn_dtree[2*Ji(e)]++),t.last_lit===t.lit_bufsize-1},Pi._tr_align=function(t){ta(t,2,3),ea(t,256,Ui),function(t){16===t.bi_valid?(Qi(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)};var pa=function(t,e,r,n){for(var i=65535&t|0,a=t>>>16&65535|0,o=0;0!==r;){r-=o=r>2e3?2e3:r;do{a=a+(i=i+e[n++]|0)|0}while(--o);i%=65521,a%=65521}return i|a<<16|0};var ga=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();var ba,va=function(t,e,r,n){var i=ga,a=n+r;t^=-1;for(var o=n;o>>8^i[255&(t^e[o])];return-1^t},ma={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},ya=Li,wa=Pi,_a=pa,ka=va,xa=ma;function Sa(t,e){return t.msg=xa[e],e}function Ca(t){return(t<<1)-(t>4?9:0)}function Aa(t){for(var e=t.length;--e>=0;)t[e]=0}function Ea(t){var e=t.state,r=e.pending;r>t.avail_out&&(r=t.avail_out),0!==r&&(ya.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,0===e.pending&&(e.pending_out=0))}function Ra(t,e){wa._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,Ea(t.strm)}function Oa(t,e){t.pending_buf[t.pending++]=e}function Ta(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function La(t,e){var r,n,i=t.max_chain_length,a=t.strstart,o=t.prev_length,s=t.nice_match,u=t.strstart>t.w_size-262?t.strstart-(t.w_size-262):0,l=t.window,f=t.w_mask,h=t.prev,c=t.strstart+258,d=l[a+o-1],p=l[a+o];t.prev_length>=t.good_match&&(i>>=2),s>t.lookahead&&(s=t.lookahead);do{if(l[(r=e)+o]===p&&l[r+o-1]===d&&l[r]===l[a]&&l[++r]===l[a+1]){a+=2,r++;do{}while(l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&ao){if(t.match_start=e,o=n,n>=s)break;d=l[a+o-1],p=l[a+o]}}}while((e=h[e&f])>u&&0!=--i);return o<=t.lookahead?o:t.lookahead}function Ma(t){var e,r,n,i,a,o,s,u,l,f,h=t.w_size;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=h+(h-262)){ya.arraySet(t.window,t.window,h,h,0),t.match_start-=h,t.strstart-=h,t.block_start-=h,e=r=t.hash_size;do{n=t.head[--e],t.head[e]=n>=h?n-h:0}while(--r);e=r=h;do{n=t.prev[--e],t.prev[e]=n>=h?n-h:0}while(--r);i+=h}if(0===t.strm.avail_in)break;if(o=t.strm,s=t.window,u=t.strstart+t.lookahead,l=i,f=void 0,(f=o.avail_in)>l&&(f=l),r=0===f?0:(o.avail_in-=f,ya.arraySet(s,o.input,o.next_in,f,u),1===o.state.wrap?o.adler=_a(o.adler,s,f,u):2===o.state.wrap&&(o.adler=ka(o.adler,s,f,u)),o.next_in+=f,o.total_in+=f,f),t.lookahead+=r,t.lookahead+t.insert>=3)for(a=t.strstart-t.insert,t.ins_h=t.window[a],t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<=3)if(n=wa._tr_tally(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-3,n=wa._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=i&&(t.ins_h=(t.ins_h<15&&(o=2,n-=16),i<1||i>9||8!==r||n<8||n>15||e<0||e>9||a<0||a>4)return Sa(t,-2);8===n&&(n=9);var s=new Da;return t.state=s,s.strm=t,s.wrap=o,s.gzhead=null,s.w_bits=n,s.w_size=1<t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(Ma(t),0===t.lookahead&&0===e)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var n=t.block_start+r;if((0===t.strstart||t.strstart>=n)&&(t.lookahead=t.strstart-n,t.strstart=n,Ra(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-262&&(Ra(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(Ra(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(Ra(t,!1),t.strm.avail_out),1)})),new Ba(4,4,8,4,Ia),new Ba(4,5,16,8,Ia),new Ba(4,6,32,32,Ia),new Ba(4,4,16,16,Pa),new Ba(8,16,32,32,Pa),new Ba(8,16,128,128,Pa),new Ba(8,32,128,256,Pa),new Ba(32,128,258,1024,Pa),new Ba(32,258,258,4096,Pa)],Ii.deflateInit=function(t,e){return Fa(t,e,8,15,8,0)},Ii.deflateInit2=Fa,Ii.deflateReset=ja,Ii.deflateResetKeep=za,Ii.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?-2:(t.state.gzhead=e,0):-2},Ii.deflate=function(t,e){var r,n,i,a;if(!t||!t.state||e>5||e<0)return t?Sa(t,-2):-2;if(n=t.state,!t.output||!t.input&&0!==t.avail_in||666===n.status&&4!==e)return Sa(t,0===t.avail_out?-5:-2);if(n.strm=t,r=n.last_flush,n.last_flush=e,42===n.status)if(2===n.wrap)t.adler=0,Oa(n,31),Oa(n,139),Oa(n,8),n.gzhead?(Oa(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),Oa(n,255&n.gzhead.time),Oa(n,n.gzhead.time>>8&255),Oa(n,n.gzhead.time>>16&255),Oa(n,n.gzhead.time>>24&255),Oa(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),Oa(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(Oa(n,255&n.gzhead.extra.length),Oa(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(t.adler=ka(t.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(Oa(n,0),Oa(n,0),Oa(n,0),Oa(n,0),Oa(n,0),Oa(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),Oa(n,3),n.status=113);else{var o=8+(n.w_bits-8<<4)<<8;o|=(n.strategy>=2||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(o|=32),o+=31-o%31,n.status=113,Ta(n,o),0!==n.strstart&&(Ta(n,t.adler>>>16),Ta(n,65535&t.adler)),t.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(t.adler=ka(t.adler,n.pending_buf,n.pending-i,i)),Ea(t),i=n.pending,n.pending!==n.pending_buf_size));)Oa(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(t.adler=ka(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(t.adler=ka(t.adler,n.pending_buf,n.pending-i,i)),Ea(t),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}a=n.gzindexi&&(t.adler=ka(t.adler,n.pending_buf,n.pending-i,i)),0===a&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(t.adler=ka(t.adler,n.pending_buf,n.pending-i,i)),Ea(t),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}a=n.gzindexi&&(t.adler=ka(t.adler,n.pending_buf,n.pending-i,i)),0===a&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&Ea(t),n.pending+2<=n.pending_buf_size&&(Oa(n,255&t.adler),Oa(n,t.adler>>8&255),t.adler=0,n.status=113)):n.status=113),0!==n.pending){if(Ea(t),0===t.avail_out)return n.last_flush=-1,0}else if(0===t.avail_in&&Ca(e)<=Ca(r)&&4!==e)return Sa(t,-5);if(666===n.status&&0!==t.avail_in)return Sa(t,-5);if(0!==t.avail_in||0!==n.lookahead||0!==e&&666!==n.status){var s=2===n.strategy?function(t,e){for(var r;;){if(0===t.lookahead&&(Ma(t),0===t.lookahead)){if(0===e)return 1;break}if(t.match_length=0,r=wa._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(Ra(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(Ra(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(Ra(t,!1),0===t.strm.avail_out)?1:2}(n,e):3===n.strategy?function(t,e){for(var r,n,i,a,o=t.window;;){if(t.lookahead<=258){if(Ma(t),t.lookahead<=258&&0===e)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(n=o[i=t.strstart-1])===o[++i]&&n===o[++i]&&n===o[++i]){a=t.strstart+258;do{}while(n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&it.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(r=wa._tr_tally(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=wa._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(Ra(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(Ra(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(Ra(t,!1),0===t.strm.avail_out)?1:2}(n,e):ba[n.level].func(n,e);if(3!==s&&4!==s||(n.status=666),1===s||3===s)return 0===t.avail_out&&(n.last_flush=-1),0;if(2===s&&(1===e?wa._tr_align(n):5!==e&&(wa._tr_stored_block(n,0,0,!1),3===e&&(Aa(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),Ea(t),0===t.avail_out))return n.last_flush=-1,0}return 4!==e?0:n.wrap<=0?1:(2===n.wrap?(Oa(n,255&t.adler),Oa(n,t.adler>>8&255),Oa(n,t.adler>>16&255),Oa(n,t.adler>>24&255),Oa(n,255&t.total_in),Oa(n,t.total_in>>8&255),Oa(n,t.total_in>>16&255),Oa(n,t.total_in>>24&255)):(Ta(n,t.adler>>>16),Ta(n,65535&t.adler)),Ea(t),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?0:1)},Ii.deflateEnd=function(t){var e;return t&&t.state?42!==(e=t.state.status)&&69!==e&&73!==e&&91!==e&&103!==e&&113!==e&&666!==e?Sa(t,-2):(t.state=null,113===e?Sa(t,-3):0):-2},Ii.deflateSetDictionary=function(t,e){var r,n,i,a,o,s,u,l,f=e.length;if(!t||!t.state)return-2;if(2===(a=(r=t.state).wrap)||1===a&&42!==r.status||r.lookahead)return-2;for(1===a&&(t.adler=_a(t.adler,e,f,0)),r.wrap=0,f>=r.w_size&&(0===a&&(Aa(r.head),r.strstart=0,r.block_start=0,r.insert=0),l=new ya.Buf8(r.w_size),ya.arraySet(l,e,f-r.w_size,r.w_size,0),e=l,f=r.w_size),o=t.avail_in,s=t.next_in,u=t.input,t.avail_in=f,t.next_in=0,t.input=e,Ma(r);r.lookahead>=3;){n=r.strstart,i=r.lookahead-2;do{r.ins_h=(r.ins_h<=252?6:qa>=248?5:qa>=240?4:qa>=224?3:qa>=192?2:1;function Ya(t,e){if(e<65534&&(t.subarray&&Wa||!t.subarray&&Ha))return String.fromCharCode.apply(null,Ua.shrinkBuf(t,e));for(var r="",n=0;n>>6,e[a++]=128|63&r):r<65536?(e[a++]=224|r>>>12,e[a++]=128|r>>>6&63,e[a++]=128|63&r):(e[a++]=240|r>>>18,e[a++]=128|r>>>12&63,e[a++]=128|r>>>6&63,e[a++]=128|63&r);return e},Na.buf2binstring=function(t){return Ya(t,t.length)},Na.binstring2buf=function(t){for(var e=new Ua.Buf8(t.length),r=0,n=e.length;r4)s[n++]=65533,r+=a-1;else{for(i&=2===a?31:3===a?15:7;a>1&&r1?s[n++]=65533:i<65536?s[n++]=i:(i-=65536,s[n++]=55296|i>>10&1023,s[n++]=56320|1023&i)}return Ya(s,n)},Na.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;r>=0&&128==(192&t[r]);)r--;return r<0||0===r?e:r+Za[t[r]]>e?r:e};var Ga=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},Va=Ii,Ka=Li,Xa=Na,$a=ma,Ja=Ga,Qa=Object.prototype.toString;function to(t){if(!(this instanceof to))return new to(t);this.options=Ka.assign({level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ja,this.strm.avail_out=0;var r=Va.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(0!==r)throw new Error($a[r]);if(e.header&&Va.deflateSetHeader(this.strm,e.header),e.dictionary){var n;if(n="string"==typeof e.dictionary?Xa.string2buf(e.dictionary):"[object ArrayBuffer]"===Qa.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,0!==(r=Va.deflateSetDictionary(this.strm,n)))throw new Error($a[r]);this._dict_set=!0}}function eo(t,e){var r=new to(e);if(r.push(t,!0),r.err)throw r.msg||$a[r.err];return r.result}to.prototype.push=function(t,e){var r,n,i=this.strm,a=this.options.chunkSize;if(this.ended)return!1;n=e===~~e?e:!0===e?4:0,"string"==typeof t?i.input=Xa.string2buf(t):"[object ArrayBuffer]"===Qa.call(t)?i.input=new Uint8Array(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new Ka.Buf8(a),i.next_out=0,i.avail_out=a),1!==(r=Va.deflate(i,n))&&0!==r)return this.onEnd(r),this.ended=!0,!1;0!==i.avail_out&&(0!==i.avail_in||4!==n&&2!==n)||("string"===this.options.to?this.onData(Xa.buf2binstring(Ka.shrinkBuf(i.output,i.next_out))):this.onData(Ka.shrinkBuf(i.output,i.next_out)))}while((i.avail_in>0||0===i.avail_out)&&1!==r);return 4===n?(r=Va.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,0===r):2!==n||(this.onEnd(0),i.avail_out=0,!0)},to.prototype.onData=function(t){this.chunks.push(t)},to.prototype.onEnd=function(t){0===t&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Ka.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},Mi.Deflate=to,Mi.deflate=eo,Mi.deflateRaw=function(t,e){return(e=e||{}).raw=!0,eo(t,e)},Mi.gzip=function(t,e){return(e=e||{}).gzip=!0,eo(t,e)};var ro={},no={},io=Li,ao=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],oo=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],so=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],uo=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64],lo=Li,fo=pa,ho=va,co=function(t,e){var r,n,i,a,o,s,u,l,f,h,c,d,p,g,b,v,m,y,w,_,k,x,S,C,A;r=t.state,n=t.next_in,C=t.input,i=n+(t.avail_in-5),a=t.next_out,A=t.output,o=a-(e-t.avail_out),s=a+(t.avail_out-257),u=r.dmax,l=r.wsize,f=r.whave,h=r.wnext,c=r.window,d=r.hold,p=r.bits,g=r.lencode,b=r.distcode,v=(1<>>=w=y>>>24,p-=w,0===(w=y>>>16&255))A[a++]=65535&y;else{if(!(16&w)){if(0==(64&w)){y=g[(65535&y)+(d&(1<>>=w,p-=w),p<15&&(d+=C[n++]<>>=w=y>>>24,p-=w,!(16&(w=y>>>16&255))){if(0==(64&w)){y=b[(65535&y)+(d&(1<u){t.msg="invalid distance too far back",r.mode=30;break t}if(d>>>=w,p-=w,k>(w=a-o)){if((w=k-w)>f&&r.sane){t.msg="invalid distance too far back",r.mode=30;break t}if(x=0,S=c,0===h){if(x+=l-w,w<_){_-=w;do{A[a++]=c[x++]}while(--w);x=a-k,S=A}}else if(h2;)A[a++]=S[x++],A[a++]=S[x++],A[a++]=S[x++],_-=3;_&&(A[a++]=S[x++],_>1&&(A[a++]=S[x++]))}else{x=a-k;do{A[a++]=A[x++],A[a++]=A[x++],A[a++]=A[x++],_-=3}while(_>2);_&&(A[a++]=A[x++],_>1&&(A[a++]=A[x++]))}break}}break}}while(n>3,d&=(1<<(p-=_<<3))-1,t.next_in=n,t.next_out=a,t.avail_in=n=1&&0===T[_];_--);if(k>_&&(k=_),0===_)return i[a++]=20971520,i[a++]=20971520,s.bits=1,0;for(w=1;w<_&&0===T[w];w++);for(k0&&(0===t||1!==_))return-1;for(L[1]=0,m=1;m<15;m++)L[m+1]=L[m]+T[m];for(y=0;y852||2===t&&A>592)return 1;for(;;){p=m-S,o[y]d?(g=M[I+o[y]],b=R[O+o[y]]):(g=96,b=0),u=1<>S)+(l-=u)]=p<<24|g<<16|b|0}while(0!==l);for(u=1<>=1;if(0!==u?(E&=u-1,E+=u):E=0,y++,0==--T[m]){if(m===_)break;m=e[r+o[y]]}if(m>k&&(E&h)!==f){for(0===S&&(S=k),c+=w,C=1<<(x=m-S);x+S<_&&!((C-=T[x+S])<=0);)x++,C<<=1;if(A+=1<852||2===t&&A>592)return 1;i[f=E&h]=k<<24|x<<16|c-a|0}}return 0!==E&&(i[c+E]=m-S<<24|64<<16|0),s.bits=k,0};function go(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function bo(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new lo.Buf16(320),this.work=new lo.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function vo(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new lo.Buf32(852),e.distcode=e.distdyn=new lo.Buf32(592),e.sane=1,e.back=-1,0):-2}function mo(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,vo(t)):-2}function yo(t,e){var r,n;return t&&t.state?(n=t.state,e<0?(r=0,e=-e):(r=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?-2:(null!==n.window&&n.wbits!==e&&(n.window=null),n.wrap=r,n.wbits=e,mo(t))):-2}function wo(t,e){var r,n;return t?(n=new bo,t.state=n,n.window=null,0!==(r=yo(t,e))&&(t.state=null),r):-2}var _o,ko,xo=!0;function So(t){if(xo){var e;for(_o=new lo.Buf32(512),ko=new lo.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(po(1,t.lens,0,288,_o,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;po(2,t.lens,0,32,ko,0,t.work,{bits:5}),xo=!1}t.lencode=_o,t.lenbits=9,t.distcode=ko,t.distbits=5}function Co(t,e,r,n){var i,a=t.state;return null===a.window&&(a.wsize=1<=a.wsize?(lo.arraySet(a.window,e,r-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):((i=a.wsize-a.wnext)>n&&(i=n),lo.arraySet(a.window,e,r-n,i,a.wnext),(n-=i)?(lo.arraySet(a.window,e,r-n,n,0),a.wnext=n,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave>>8&255,r.check=ho(r.check,E,2,0),l=0,f=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&l)<<8)+(l>>8))%31){t.msg="incorrect header check",r.mode=30;break}if(8!=(15&l)){t.msg="unknown compression method",r.mode=30;break}if(f-=4,k=8+(15&(l>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){t.msg="invalid window size",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&l,E[1]=l>>>8&255,r.check=ho(r.check,E,2,0)),l=0,f=0,r.mode=3;case 3:for(;f<32;){if(0===s)break t;s--,l+=n[a++]<>>8&255,E[2]=l>>>16&255,E[3]=l>>>24&255,r.check=ho(r.check,E,4,0)),l=0,f=0,r.mode=4;case 4:for(;f<16;){if(0===s)break t;s--,l+=n[a++]<>8),512&r.flags&&(E[0]=255&l,E[1]=l>>>8&255,r.check=ho(r.check,E,2,0)),l=0,f=0,r.mode=5;case 5:if(1024&r.flags){for(;f<16;){if(0===s)break t;s--,l+=n[a++]<>>8&255,r.check=ho(r.check,E,2,0)),l=0,f=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&((d=r.length)>s&&(d=s),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),lo.arraySet(r.head.extra,n,a,d,k)),512&r.flags&&(r.check=ho(r.check,n,d,a)),s-=d,a+=d,r.length-=d),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===s)break t;d=0;do{k=n[a+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k))}while(k&&d>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=12;break;case 10:for(;f<32;){if(0===s)break t;s--,l+=n[a++]<>>=7&f,f-=7&f,r.mode=27;break}for(;f<3;){if(0===s)break t;s--,l+=n[a++]<>>=1)){case 0:r.mode=14;break;case 1:if(So(r),r.mode=20,6===e){l>>>=2,f-=2;break t}break;case 2:r.mode=17;break;case 3:t.msg="invalid block type",r.mode=30}l>>>=2,f-=2;break;case 14:for(l>>>=7&f,f-=7&f;f<32;){if(0===s)break t;s--,l+=n[a++]<>>16^65535)){t.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&l,l=0,f=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(d=r.length){if(d>s&&(d=s),d>u&&(d=u),0===d)break t;lo.arraySet(i,n,a,d,o),s-=d,a+=d,u-=d,o+=d,r.length-=d;break}r.mode=12;break;case 17:for(;f<14;){if(0===s)break t;s--,l+=n[a++]<>>=5,f-=5,r.ndist=1+(31&l),l>>>=5,f-=5,r.ncode=4+(15&l),l>>>=4,f-=4,r.nlen>286||r.ndist>30){t.msg="too many length or distance symbols",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have>>=3,f-=3}for(;r.have<19;)r.lens[R[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=po(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,m=65535&A,!((b=A>>>24)<=f);){if(0===s)break t;s--,l+=n[a++]<>>=b,f-=b,r.lens[r.have++]=m;else{if(16===m){for(C=b+2;f>>=b,f-=b,0===r.have){t.msg="invalid bit length repeat",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&l),l>>>=2,f-=2}else if(17===m){for(C=b+3;f>>=b)),l>>>=3,f-=3}else{for(C=b+7;f>>=b)),l>>>=7,f-=7}if(r.have+d>r.nlen+r.ndist){t.msg="invalid bit length repeat",r.mode=30;break}for(;d--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){t.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=po(1,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=po(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){t.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(s>=6&&u>=258){t.next_out=o,t.avail_out=u,t.next_in=a,t.avail_in=s,r.hold=l,r.bits=f,co(t,c),o=t.next_out,i=t.output,u=t.avail_out,a=t.next_in,n=t.input,s=t.avail_in,l=r.hold,f=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;v=(A=r.lencode[l&(1<>>16&255,m=65535&A,!((b=A>>>24)<=f);){if(0===s)break t;s--,l+=n[a++]<>y)])>>>16&255,m=65535&A,!(y+(b=A>>>24)<=f);){if(0===s)break t;s--,l+=n[a++]<>>=y,f-=y,r.back+=y}if(l>>>=b,f-=b,r.back+=b,r.length=m,0===v){r.mode=26;break}if(32&v){r.back=-1,r.mode=12;break}if(64&v){t.msg="invalid literal/length code",r.mode=30;break}r.extra=15&v,r.mode=22;case 22:if(r.extra){for(C=r.extra;f>>=r.extra,f-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;v=(A=r.distcode[l&(1<>>16&255,m=65535&A,!((b=A>>>24)<=f);){if(0===s)break t;s--,l+=n[a++]<>y)])>>>16&255,m=65535&A,!(y+(b=A>>>24)<=f);){if(0===s)break t;s--,l+=n[a++]<>>=y,f-=y,r.back+=y}if(l>>>=b,f-=b,r.back+=b,64&v){t.msg="invalid distance code",r.mode=30;break}r.offset=m,r.extra=15&v,r.mode=24;case 24:if(r.extra){for(C=r.extra;f>>=r.extra,f-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===u)break t;if(d=c-u,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){t.msg="invalid distance too far back",r.mode=30;break}d>r.wnext?(d-=r.wnext,p=r.wsize-d):p=r.wnext-d,d>r.length&&(d=r.length),g=r.window}else g=i,p=o-r.offset,d=r.length;d>u&&(d=u),u-=d,r.length-=d;do{i[o++]=g[p++]}while(--d);0===r.length&&(r.mode=21);break;case 26:if(0===u)break t;i[o++]=r.length,u--,r.mode=21;break;case 27:if(r.wrap){for(;f<32;){if(0===s)break t;s--,l|=n[a++]<=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Mo,this.strm.avail_out=0;var r=Eo.inflateInit2(this.strm,e.windowBits);if(r!==To.Z_OK)throw new Error(Lo[r]);if(this.header=new Io,Eo.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Oo.string2buf(e.dictionary):"[object ArrayBuffer]"===Po.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(r=Eo.inflateSetDictionary(this.strm,e.dictionary))!==To.Z_OK))throw new Error(Lo[r])}function Do(t,e){var r=new Bo(e);if(r.push(t,!0),r.err)throw r.msg||Lo[r.err];return r.result}Bo.prototype.push=function(t,e){var r,n,i,a,o,s=this.strm,u=this.options.chunkSize,l=this.options.dictionary,f=!1;if(this.ended)return!1;n=e===~~e?e:!0===e?To.Z_FINISH:To.Z_NO_FLUSH,"string"==typeof t?s.input=Oo.binstring2buf(t):"[object ArrayBuffer]"===Po.call(t)?s.input=new Uint8Array(t):s.input=t,s.next_in=0,s.avail_in=s.input.length;do{if(0===s.avail_out&&(s.output=new Ro.Buf8(u),s.next_out=0,s.avail_out=u),(r=Eo.inflate(s,To.Z_NO_FLUSH))===To.Z_NEED_DICT&&l&&(r=Eo.inflateSetDictionary(this.strm,l)),r===To.Z_BUF_ERROR&&!0===f&&(r=To.Z_OK,f=!1),r!==To.Z_STREAM_END&&r!==To.Z_OK)return this.onEnd(r),this.ended=!0,!1;s.next_out&&(0!==s.avail_out&&r!==To.Z_STREAM_END&&(0!==s.avail_in||n!==To.Z_FINISH&&n!==To.Z_SYNC_FLUSH)||("string"===this.options.to?(i=Oo.utf8border(s.output,s.next_out),a=s.next_out-i,o=Oo.buf2string(s.output,i),s.next_out=a,s.avail_out=u-a,a&&Ro.arraySet(s.output,s.output,i,a,0),this.onData(o)):this.onData(Ro.shrinkBuf(s.output,s.next_out)))),0===s.avail_in&&0===s.avail_out&&(f=!0)}while((s.avail_in>0||0===s.avail_out)&&r!==To.Z_STREAM_END);return r===To.Z_STREAM_END&&(n=To.Z_FINISH),n===To.Z_FINISH?(r=Eo.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===To.Z_OK):n!==To.Z_SYNC_FLUSH||(this.onEnd(To.Z_OK),s.avail_out=0,!0)},Bo.prototype.onData=function(t){this.chunks.push(t)},Bo.prototype.onEnd=function(t){t===To.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Ro.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},ro.Inflate=Bo,ro.inflate=Do,ro.inflateRaw=function(t,e){return(e=e||{}).raw=!0,Do(t,e)},ro.ungzip=Do;var zo={};(0,Li.assign)(zo,Mi,ro,Ao);var jo="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,Fo=zo,No=In(),Uo=Bn,Ho=jo?"uint8array":"array";function Wo(t,e){Uo.call(this,"FlateWorker/"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=e,this.meta={}}Ti.magic="\b\0",No.inherits(Wo,Uo),Wo.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(No.transformTo(Ho,t.data),!1)},Wo.prototype.flush=function(){Uo.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},Wo.prototype.cleanUp=function(){Uo.prototype.cleanUp.call(this),this._pako=null},Wo.prototype._createPako=function(){this._pako=new Fo[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},Ti.compressWorker=function(t){return new Wo("Deflate",t)},Ti.uncompressWorker=function(){return new Wo("Inflate",{})};var Zo=Bn;Oi.STORE={magic:"\0\0",compressWorker:function(){return new Zo("STORE compression")},uncompressWorker:function(){return new Zo("STORE decompression")}},Oi.DEFLATE=Ti;var qo={LOCAL_FILE_HEADER:"PK",CENTRAL_FILE_HEADER:"PK",CENTRAL_DIRECTORY_END:"PK",ZIP64_CENTRAL_DIRECTORY_LOCATOR:"PK",ZIP64_CENTRAL_DIRECTORY_END:"PK",DATA_DESCRIPTOR:"PK\b"},Yo=In(),Go=Bn,Vo=l,Ko=ii,Xo=qo,$o=function(t,e){var r,n="";for(r=0;r>>=8;return n},Jo=function(t,e,r,n,i,a){var o,s,u=t.file,l=t.compression,f=a!==Vo.utf8encode,h=Yo.transformTo("string",a(u.name)),c=Yo.transformTo("string",Vo.utf8encode(u.name)),d=u.comment,p=Yo.transformTo("string",a(d)),g=Yo.transformTo("string",Vo.utf8encode(d)),b=c.length!==u.name.length,v=g.length!==d.length,m="",y="",w="",_=u.dir,k=u.date,x={crc32:0,compressedSize:0,uncompressedSize:0};e&&!r||(x.crc32=t.crc32,x.compressedSize=t.compressedSize,x.uncompressedSize=t.uncompressedSize);var S=0;e&&(S|=8),f||!b&&!v||(S|=2048);var C,A,E,R=0,O=0;_&&(R|=16),"UNIX"===i?(O=798,R|=(C=u.unixPermissions,A=_,E=C,C||(E=A?16893:33204),(65535&E)<<16)):(O=20,R|=63&(u.dosPermissions||0)),o=k.getUTCHours(),o<<=6,o|=k.getUTCMinutes(),o<<=5,o|=k.getUTCSeconds()/2,s=k.getUTCFullYear()-1980,s<<=4,s|=k.getUTCMonth()+1,s<<=5,s|=k.getUTCDate(),b&&(y=$o(1,1)+$o(Ko(h),4)+c,m+="up"+$o(y.length,2)+y),v&&(w=$o(1,1)+$o(Ko(p),4)+g,m+="uc"+$o(w.length,2)+w);var T="";return T+="\n\0",T+=$o(S,2),T+=l.magic,T+=$o(o,2),T+=$o(s,2),T+=$o(x.crc32,4),T+=$o(x.compressedSize,4),T+=$o(x.uncompressedSize,4),T+=$o(h.length,2),T+=$o(m.length,2),{fileRecord:Xo.LOCAL_FILE_HEADER+T+h+m,dirRecord:Xo.CENTRAL_FILE_HEADER+$o(O,2)+T+$o(p.length,2)+"\0\0\0\0"+$o(R,4)+$o(n,4)+h+m+p}},Qo=function(t){return Xo.DATA_DESCRIPTOR+$o(t.crc32,4)+$o(t.compressedSize,4)+$o(t.uncompressedSize,4)};function ts(t,e,r,n){Go.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}Yo.inherits(ts,Go),ts.prototype.push=function(t){var e=t.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,Go.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:r?(e+100*(r-n-1))/r:100}}))},ts.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var e=this.streamFiles&&!t.file.dir;if(e){var r=Jo(t,e,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},ts.prototype.closedSource=function(t){this.accumulate=!1;var e=this.streamFiles&&!t.file.dir,r=Jo(t,e,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),e)this.push({data:Qo(t),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},ts.prototype.flush=function(){for(var t=this.bytesWritten,e=0;e0?t.substring(0,e):""},ys=function(t){return"/"!==t.slice(-1)&&(t+="/"),t},ws=function(t,e){return e=void 0!==e?e:hs.createFolders,t=ys(t),this.files[t]||vs.call(this,t,null,{dir:!0,createFolders:e}),this.files[t]};function _s(t){return"[object RegExp]"===Object.prototype.toString.call(t)}var ks={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(t){var e,r,n;for(e in this.files)n=this.files[e],(r=e.slice(this.root.length,e.length))&&e.slice(0,this.root.length)===this.root&&t(r,n)},filter:function(t){var e=[];return this.forEach((function(r,n){t(r,n)&&e.push(n)})),e},file:function(t,e,r){if(1===arguments.length){if(_s(t)){var n=t;return this.filter((function(t,e){return!e.dir&&n.test(t)}))}var i=this.files[this.root+t];return i&&!i.dir?i:null}return t=this.root+t,vs.call(this,t,e,r),this},folder:function(t){if(!t)return this;if(_s(t))return this.filter((function(e,r){return r.dir&&t.test(e)}));var e=this.root+t,r=ws.call(this,e),n=this.clone();return n.root=r.name,n},remove:function(t){t=this.root+t;var e=this.files[t];if(e||("/"!==t.slice(-1)&&(t+="/"),e=this.files[t]),e&&!e.dir)delete this.files[t];else for(var r=this.filter((function(e,r){return r.name.slice(0,t.length)===t})),n=0;n=this.index;e--)r=(r<<8)+this.byteAt(e);return this.index+=t,r},readString:function(t){return Ss.transformTo("string",this.readData(t))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}};var As=Cs,Es=As;function Rs(t){Es.call(this,t);for(var e=0;e=0;--a)if(this.data[a]===e&&this.data[a+1]===r&&this.data[a+2]===n&&this.data[a+3]===i)return a-this.zero;return-1},Rs.prototype.readAndCheckSignature=function(t){var e=t.charCodeAt(0),r=t.charCodeAt(1),n=t.charCodeAt(2),i=t.charCodeAt(3),a=this.readData(4);return e===a[0]&&r===a[1]&&n===a[2]&&i===a[3]},Rs.prototype.readData=function(t){if(this.checkOffset(t),0===t)return[];var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e};var Os=Rs,Ts=As;function Ls(t){Ts.call(this,t)}In().inherits(Ls,Ts),Ls.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},Ls.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},Ls.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},Ls.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e};var Ms=Ls,Is=Os;function Ps(t){Is.call(this,t)}In().inherits(Ps,Is),Ps.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e};var Bs=Ps,Ds=Bs;function zs(t){Ds.call(this,t)}In().inherits(zs,Ds),zs.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e};var js=zs,Fs=In(),Ns=ht,Us=Os,Hs=Ms,Ws=js,Zs=Bs,qs=function(t){var e=Fs.getTypeOf(t);return Fs.checkSupport(e),"string"!==e||Ns.uint8array?"nodebuffer"===e?new Ws(t):Ns.uint8array?new Zs(Fs.transformTo("uint8array",t)):new Us(Fs.transformTo("array",t)):new Hs(t)},Ys=qs,Gs=In(),Vs=vi,Ks=ii,Xs=l,$s=Oi,Js=ht;function Qs(t,e){this.options=t,this.loadOptions=e}Qs.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(t){var e,r;if(t.skip(22),this.fileNameLength=t.readInt(2),r=t.readInt(2),this.fileName=t.readData(this.fileNameLength),t.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(e=function(t){for(var e in $s)if(Object.prototype.hasOwnProperty.call($s,e)&&$s[e].magic===t)return $s[e];return null}(this.compressionMethod),null===e)throw new Error("Corrupted zip : compression "+Gs.pretty(this.compressionMethod)+" unknown (inner file : "+Gs.transformTo("string",this.fileName)+")");this.decompressed=new Vs(this.compressedSize,this.uncompressedSize,this.crc32,e,t.readData(this.compressedSize))},readCentralPart:function(t){this.versionMadeBy=t.readInt(2),t.skip(2),this.bitFlag=t.readInt(2),this.compressionMethod=t.readString(2),this.date=t.readDate(),this.crc32=t.readInt(4),this.compressedSize=t.readInt(4),this.uncompressedSize=t.readInt(4);var e=t.readInt(2);if(this.extraFieldsLength=t.readInt(2),this.fileCommentLength=t.readInt(2),this.diskNumberStart=t.readInt(2),this.internalFileAttributes=t.readInt(2),this.externalFileAttributes=t.readInt(4),this.localHeaderOffset=t.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");t.skip(e),this.readExtraFields(t),this.parseZIP64ExtraField(t),this.fileComment=t.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var t=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0===t&&(this.dosPermissions=63&this.externalFileAttributes),3===t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var t=Ys(this.extraFields[1].value);this.uncompressedSize===Gs.MAX_VALUE_32BITS&&(this.uncompressedSize=t.readInt(8)),this.compressedSize===Gs.MAX_VALUE_32BITS&&(this.compressedSize=t.readInt(8)),this.localHeaderOffset===Gs.MAX_VALUE_32BITS&&(this.localHeaderOffset=t.readInt(8)),this.diskNumberStart===Gs.MAX_VALUE_32BITS&&(this.diskNumberStart=t.readInt(4))}},readExtraFields:function(t){var e,r,n,i=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index+41)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var t,e;for(t=0;t0)this.isSignature(e,nu.CENTRAL_FILE_HEADER)||(this.reader.zero=n);else if(n<0)throw new Error("Corrupted zip: missing "+Math.abs(n)+" bytes.")},prepareReader:function(t){this.reader=eu(t)},load:function(t){this.prepareReader(t),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}};var su=ou,uu=In(),lu=Mn,fu=l,hu=su,cu=ui,du=On;function pu(t){return new lu.Promise((function(e,r){var n=t.decompressed.getContentWorker().pipe(new cu);n.on("error",(function(t){r(t)})).on("end",(function(){n.streamInfo.crc32!==t.decompressed.crc32?r(new Error("Corrupted zip : CRC32 mismatch")):e()})).resume()}))}function gu(){if(!(this instanceof gu))return new gu;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var t=new gu;for(var e in this)"function"!=typeof this[e]&&(t[e]=this[e]);return t}}gu.prototype=xs,gu.prototype.loadAsync=function(t,e){var r=this;return e=uu.extend(e||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:fu.utf8decode}),du.isNode&&du.isStream(t)?lu.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):uu.prepareContent("the loaded zip file",t,!0,e.optimizedBinaryString,e.base64).then((function(t){var r=new hu(e);return r.load(t),r})).then((function(t){var r=[lu.Promise.resolve(t)],n=t.files;if(e.checkCRC32)for(var i=0;i".charCodeAt(0),s="-".charCodeAt(0),u="/".charCodeAt(0),l="!".charCodeAt(0),f="'".charCodeAt(0),h='"'.charCodeAt(0),c="[".charCodeAt(0),d="]".charCodeAt(0);function p(e){for(var f=[];t[r];)if(t.charCodeAt(r)==a){if(t.charCodeAt(r+1)===u){var h=r+2;if(r=t.indexOf(">",r),-1==t.substring(h,r).indexOf(e)){var p=t.substring(0,r).split("\n");throw new Error("Unexpected close tag\nLine: "+(p.length-1)+"\nColumn: "+(p[p.length-1].length+1)+"\nChar: "+t[r])}return r+1&&(r+=1),f}if(t.charCodeAt(r+1)===l){if(t.charCodeAt(r+2)==s){const e=r;for(;-1!==r&&(t.charCodeAt(r)!==o||t.charCodeAt(r-1)!=s||t.charCodeAt(r-2)!=s||-1==r);)r=t.indexOf(">",r+1);-1===r&&(r=t.length),n&&f.push(t.substring(e,r+1))}else{if(t.charCodeAt(r+2)===c&&t.charCodeAt(r+8)===c&&"cdata"===t.substr(r+3,5).toLowerCase()){var b=t.indexOf("]]>",r);-1==b?(f.push(t.substr(r+9)),r=t.length):(f.push(t.substring(r+9,b)),r=b+3);continue}{const e=r+1;r+=2;for(var v=!1;(t.charCodeAt(r)!==o||!0===v)&&t[r];)t.charCodeAt(r)===c?v=!0:!0===v&&t.charCodeAt(r)===d&&(v=!1),r++;f.push(t.substring(e,r))}}r++;continue}var y=m();f.push(y),"?"===y.tagName[0]&&(f.push(...y.children),y.children=[])}else{var w=g();if(i)w.length>0&&f.push(w);else{var _=w.trim();_.length>0&&f.push(_)}r++}return f}function g(){var e=r;return-2===(r=t.indexOf("<",r)-1)&&(r=t.length),t.slice(e,r+1)}function b(){for(var e=r;-1==="\r\n\t>/= ".indexOf(t[r])&&t[r];)r++;return t.slice(e,r)}var v=e.noChildNodes||["img","br","input","meta","link","hr"];function m(){r++;const e=b(),n={};let i=[];for(;t.charCodeAt(r)!==o&&t[r];){var a=t.charCodeAt(r);if(a>64&&a<91||a>96&&a<123){for(var s=b(),l=t.charCodeAt(r);l&&l!==f&&l!==h&&!(l>64&&l<91||l>96&&l<123)&&l!==o;)r++,l=t.charCodeAt(r);if(l===f||l===h){var c=y();if(-1===r)return{tagName:e,attributes:n,children:i}}else c=null,r--;n[s]=c}r++}if(t.charCodeAt(r-1)!==u)if("script"==e){var d=r+1;r=t.indexOf("<\/script>",r),i=[t.slice(d,r)],r+=9}else if("style"==e){d=r+1;r=t.indexOf("",r),i=[t.slice(d,r)],r+=8}else-1===v.indexOf(e)?(r++,i=p(e)):r++;else r++;return{tagName:e,attributes:n,children:i}}function y(){var e=t[r],n=r+1;return r=t.indexOf(e,n),t.slice(n,r)}var w,_=null;if(void 0!==e.attrValue){e.attrName=e.attrName||"id";for(_=[];-1!==(w=void 0,w=new RegExp("\\s"+e.attrName+"\\s*=['\"]"+e.attrValue+"['\"]").exec(t),r=w?w.index:-1);)-1!==(r=t.lastIndexOf("<",r))&&_.push(m()),t=t.substr(r),r=0}else _=e.parseNode?m():p("");return e.filter&&(_=wu(_,e.filter)),e.simplify?yu(Array.isArray(_)?_:[_]):(e.setPos&&(_.pos=r),_)}function yu(t){var e={};if(!t.length)return"";if(1===t.length&&"string"==typeof t[0])return t[0];for(var r in t.forEach((function(t){if("object"==typeof t){e[t.tagName]||(e[t.tagName]=[]);var r=yu(t.children);e[t.tagName].push(r),Object.keys(t.attributes).length&&"string"!=typeof r&&(r._attributes=t.attributes)}})),e)1==e[r].length&&(e[r]=e[r][0]);return e}function wu(t,e,r=0,n=""){var i=[];return t.forEach((function(t,a){if("object"==typeof t&&e(t,a,r,n)&&i.push(t),t.children){var o=wu(t.children,e,r+1,(n?n+".":"")+a+"."+t.tagName);i=i.concat(o)}})),i}function _u(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return ku(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ku(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function ku(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1&&void 0!==arguments[1]?arguments[1]:{},r={};if(!t.length)return r;if(1===t.length&&"string"==typeof t[0])return Object.keys(e).length?{attrs:Su({order:Cu++},e),value:t[0]}:t[0];var n,i=_u(t);try{for(i.s();!(n=i.n()).done;){var a=n.value;if("object"!==vu(a))return;if("?xml"!==a.tagName){r[a.tagName]||(r[a.tagName]=[]);var o=Au(a.children||[],a.attributes);r[a.tagName].push(o),Object.keys(a.attributes).length&&(o.attrs=Su({order:Cu++},a.attributes))}}}catch(t){i.e(t)}finally{i.f()}for(var s in r)1===r[s].length&&(r[s]=r[s][0]);return r}function Eu(t,e){return Ru.apply(this,arguments)}function Ru(){return(Ru=r(u.mark((function t(e,r){var n;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e.file(r).async("string");case 3:return n=t.sent,t.abrupt("return",Au(mu(n)));case 7:return t.prev=7,t.t0=t.catch(0),t.abrupt("return",null);case 10:case"end":return t.stop()}}),t,null,[[0,7]])})))).apply(this,arguments)}function Ou(t){return Ou="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ou(t)}var Tu=/^\s+/,Lu=/\s+$/;function Mu(t,e){if(e=e||{},(t=t||"")instanceof Mu)return t;if(!(this instanceof Mu))return new Mu(t,e);var r=function(t){var e={r:0,g:0,b:0},r=1,n=null,i=null,a=null,o=!1,s=!1;"string"==typeof t&&(t=function(t){t=t.replace(Tu,"").replace(Lu,"").toLowerCase();var e,r=!1;if(Ku[t])t=Ku[t],r=!0;else if("transparent"==t)return{r:0,g:0,b:0,a:0,format:"name"};if(e=ul.rgb.exec(t))return{r:e[1],g:e[2],b:e[3]};if(e=ul.rgba.exec(t))return{r:e[1],g:e[2],b:e[3],a:e[4]};if(e=ul.hsl.exec(t))return{h:e[1],s:e[2],l:e[3]};if(e=ul.hsla.exec(t))return{h:e[1],s:e[2],l:e[3],a:e[4]};if(e=ul.hsv.exec(t))return{h:e[1],s:e[2],v:e[3]};if(e=ul.hsva.exec(t))return{h:e[1],s:e[2],v:e[3],a:e[4]};if(e=ul.hex8.exec(t))return{r:tl(e[1]),g:tl(e[2]),b:tl(e[3]),a:il(e[4]),format:r?"name":"hex8"};if(e=ul.hex6.exec(t))return{r:tl(e[1]),g:tl(e[2]),b:tl(e[3]),format:r?"name":"hex"};if(e=ul.hex4.exec(t))return{r:tl(e[1]+""+e[1]),g:tl(e[2]+""+e[2]),b:tl(e[3]+""+e[3]),a:il(e[4]+""+e[4]),format:r?"name":"hex8"};if(e=ul.hex3.exec(t))return{r:tl(e[1]+""+e[1]),g:tl(e[2]+""+e[2]),b:tl(e[3]+""+e[3]),format:r?"name":"hex"};return!1}(t));"object"==Ou(t)&&(ll(t.r)&&ll(t.g)&&ll(t.b)?(u=t.r,l=t.g,f=t.b,e={r:255*Ju(u,255),g:255*Ju(l,255),b:255*Ju(f,255)},o=!0,s="%"===String(t.r).substr(-1)?"prgb":"rgb"):ll(t.h)&&ll(t.s)&&ll(t.v)?(n=rl(t.s),i=rl(t.v),e=function(t,e,r){t=6*Ju(t,360),e=Ju(e,100),r=Ju(r,100);var n=Math.floor(t),i=t-n,a=r*(1-e),o=r*(1-i*e),s=r*(1-(1-i)*e),u=n%6;return{r:255*[r,o,a,a,s,r][u],g:255*[s,r,r,o,a,a][u],b:255*[a,a,s,r,r,o][u]}}(t.h,n,i),o=!0,s="hsv"):ll(t.h)&&ll(t.s)&&ll(t.l)&&(n=rl(t.s),a=rl(t.l),e=function(t,e,r){var n,i,a;function o(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}if(t=Ju(t,360),e=Ju(e,100),r=Ju(r,100),0===e)n=i=a=r;else{var s=r<.5?r*(1+e):r+e-r*e,u=2*r-s;n=o(u,s,t+1/3),i=o(u,s,t),a=o(u,s,t-1/3)}return{r:255*n,g:255*i,b:255*a}}(t.h,n,a),o=!0,s="hsl"),t.hasOwnProperty("a")&&(r=t.a));var u,l,f;return r=$u(r),{ok:o,format:t.format||s,r:Math.min(255,Math.max(e.r,0)),g:Math.min(255,Math.max(e.g,0)),b:Math.min(255,Math.max(e.b,0)),a:r}}(t);this._originalInput=t,this._r=r.r,this._g=r.g,this._b=r.b,this._a=r.a,this._roundA=Math.round(100*this._a)/100,this._format=e.format||r.format,this._gradientType=e.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=r.ok}function Iu(t,e,r){t=Ju(t,255),e=Ju(e,255),r=Ju(r,255);var n,i,a=Math.max(t,e,r),o=Math.min(t,e,r),s=(a+o)/2;if(a==o)n=i=0;else{var u=a-o;switch(i=s>.5?u/(2-a-o):u/(a+o),a){case t:n=(e-r)/u+(e>1)+720)%360;--e;)n.h=(n.h+i)%360,a.push(Mu(n));return a}function Vu(t,e){e=e||6;for(var r=Mu(t).toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/e;e--;)o.push(Mu({h:n,s:i,v:a})),a=(a+s)%1;return o}Mu.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var t,e,r,n=this.toRgb();return t=n.r/255,e=n.g/255,r=n.b/255,.2126*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.7152*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.0722*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))},setAlpha:function(t){return this._a=$u(t),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var t=Pu(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=Pu(this._r,this._g,this._b),e=Math.round(360*t.h),r=Math.round(100*t.s),n=Math.round(100*t.v);return 1==this._a?"hsv("+e+", "+r+"%, "+n+"%)":"hsva("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var t=Iu(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=Iu(this._r,this._g,this._b),e=Math.round(360*t.h),r=Math.round(100*t.s),n=Math.round(100*t.l);return 1==this._a?"hsl("+e+", "+r+"%, "+n+"%)":"hsla("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHex:function(t){return Bu(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(t){return function(t,e,r,n,i){var a=[el(Math.round(t).toString(16)),el(Math.round(e).toString(16)),el(Math.round(r).toString(16)),el(nl(n))];if(i&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)&&a[3].charAt(0)==a[3].charAt(1))return a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0);return a.join("")}(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return"#"+this.toHex8(t)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(100*Ju(this._r,255))+"%",g:Math.round(100*Ju(this._g,255))+"%",b:Math.round(100*Ju(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*Ju(this._r,255))+"%, "+Math.round(100*Ju(this._g,255))+"%, "+Math.round(100*Ju(this._b,255))+"%)":"rgba("+Math.round(100*Ju(this._r,255))+"%, "+Math.round(100*Ju(this._g,255))+"%, "+Math.round(100*Ju(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(Xu[Bu(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e="#"+Du(this._r,this._g,this._b,this._a),r=e,n=this._gradientType?"GradientType = 1, ":"";if(t){var i=Mu(t);r="#"+Du(i._r,i._g,i._b,i._a)}return"progid:DXImageTransform.Microsoft.gradient("+n+"startColorstr="+e+",endColorstr="+r+")"},toString:function(t){var e=!!t;t=t||this._format;var r=!1,n=this._a<1&&this._a>=0;return e||!n||"hex"!==t&&"hex6"!==t&&"hex3"!==t&&"hex4"!==t&&"hex8"!==t&&"name"!==t?("rgb"===t&&(r=this.toRgbString()),"prgb"===t&&(r=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(r=this.toHexString()),"hex3"===t&&(r=this.toHexString(!0)),"hex4"===t&&(r=this.toHex8String(!0)),"hex8"===t&&(r=this.toHex8String()),"name"===t&&(r=this.toName()),"hsl"===t&&(r=this.toHslString()),"hsv"===t&&(r=this.toHsvString()),r||this.toHexString()):"name"===t&&0===this._a?this.toName():this.toRgbString()},clone:function(){return Mu(this.toString())},_applyModification:function(t,e){var r=t.apply(null,[this].concat([].slice.call(e)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(Nu,arguments)},brighten:function(){return this._applyModification(Uu,arguments)},darken:function(){return this._applyModification(Hu,arguments)},desaturate:function(){return this._applyModification(zu,arguments)},saturate:function(){return this._applyModification(ju,arguments)},greyscale:function(){return this._applyModification(Fu,arguments)},spin:function(){return this._applyModification(Wu,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(Gu,arguments)},complement:function(){return this._applyCombination(Zu,arguments)},monochromatic:function(){return this._applyCombination(Vu,arguments)},splitcomplement:function(){return this._applyCombination(Yu,arguments)},triad:function(){return this._applyCombination(qu,[3])},tetrad:function(){return this._applyCombination(qu,[4])}},Mu.fromRatio=function(t,e){if("object"==Ou(t)){var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]="a"===n?t[n]:rl(t[n]));t=r}return Mu(t,e)},Mu.equals=function(t,e){return!(!t||!e)&&Mu(t).toRgbString()==Mu(e).toRgbString()},Mu.random=function(){return Mu.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},Mu.mix=function(t,e,r){r=0===r?0:r||50;var n=Mu(t).toRgb(),i=Mu(e).toRgb(),a=r/100;return Mu({r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a})},Mu.readability=function(t,e){var r=Mu(t),n=Mu(e);return(Math.max(r.getLuminance(),n.getLuminance())+.05)/(Math.min(r.getLuminance(),n.getLuminance())+.05)},Mu.isReadable=function(t,e,r){var n,i,a=Mu.readability(t,e);switch(i=!1,(n=function(t){var e,r;e=((t=t||{level:"AA",size:"small"}).level||"AA").toUpperCase(),r=(t.size||"small").toLowerCase(),"AA"!==e&&"AAA"!==e&&(e="AA");"small"!==r&&"large"!==r&&(r="small");return{level:e,size:r}}(r)).level+n.size){case"AAsmall":case"AAAlarge":i=a>=4.5;break;case"AAlarge":i=a>=3;break;case"AAAsmall":i=a>=7}return i},Mu.mostReadable=function(t,e,r){var n,i,a,o,s=null,u=0;i=(r=r||{}).includeFallbackColors,a=r.level,o=r.size;for(var l=0;lu&&(u=n,s=Mu(e[l]));return Mu.isReadable(t,s,{level:a,size:o})||!i?s:(r.includeFallbackColors=!1,Mu.mostReadable(t,["#fff","#000"],r))};var Ku=Mu.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},Xu=Mu.hexNames=function(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[t[r]]=r);return e}(Ku);function $u(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function Ju(t,e){(function(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)})(t)&&(t="100%");var r=function(t){return"string"==typeof t&&-1!=t.indexOf("%")}(t);return t=Math.min(e,Math.max(0,parseFloat(t))),r&&(t=parseInt(t*e,10)/100),Math.abs(t-e)<1e-6?1:t%e/parseFloat(e)}function Qu(t){return Math.min(1,Math.max(0,t))}function tl(t){return parseInt(t,16)}function el(t){return 1==t.length?"0"+t:""+t}function rl(t){return t<=1&&(t=100*t+"%"),t}function nl(t){return Math.round(255*parseFloat(t)).toString(16)}function il(t){return tl(t)/255}var al,ol,sl,ul=(ol="[\\s|\\(]+("+(al="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+al+")[,|\\s]+("+al+")\\s*\\)?",sl="[\\s|\\(]+("+al+")[,|\\s]+("+al+")[,|\\s]+("+al+")[,|\\s]+("+al+")\\s*\\)?",{CSS_UNIT:new RegExp(al),rgb:new RegExp("rgb"+ol),rgba:new RegExp("rgba"+sl),hsl:new RegExp("hsl"+ol),hsla:new RegExp("hsla"+sl),hsv:new RegExp("hsv"+ol),hsva:new RegExp("hsva"+sl),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function ll(t){return!!ul.CSS_UNIT.exec(t)}function fl(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return hl(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return hl(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function hl(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r>18]+r[(258048&e)>>12]+r[(4032&e)>>6]+r[63&e];return 1===a?s+=r[(252&(e=n[o]))>>2]+r[(3&e)<<4]+"==":2===a&&(s+=r[(64512&(e=n[o]<<8|n[o+1]))>>10]+r[(1008&e)>>4]+r[(15&e)<<2]+"="),s}function dl(t){return t.substr(2+(~-t.lastIndexOf(".")>>>0))}function pl(t,e){if(!t)return t;var r="";if(t.constructor===Array)for(var n=0;n":">",'"':""","'":"'"};return t.replace(/[&<>"']/g,(function(t){return e[t]}))}function ml(t){var e="";switch(t.toLowerCase()){case"jpg":case"jpeg":e="image/jpeg";break;case"png":e="image/png";break;case"gif":e="image/gif";break;case"emf":e="image/x-emf";break;case"wmf":e="image/x-wmf";break;case"svg":e="image/svg+xml";break;case"mp4":e="video/mp4";break;case"webm":e="video/webm";break;case"ogg":e="video/ogg";break;case"avi":e="video/avi";break;case"mpg":e="video/mpg";break;case"wmv":e="video/wmv";break;case"mp3":e="audio/mpeg";break;case"wav":e="audio/wav";break;case"tif":case"tiff":e="image/tiff"}return e}function yl(t){return/^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/.test(t)}function wl(t){for(var e=t.toString(16);e.length<2;)e="0"+e;return e}function _l(t,e,r,n){var i,a;if(r)a=r;else{var o=gl(e.slideContent,["p:sld","p:clrMapOvr","a:overrideClrMapping","attrs"]);a=o||((o=gl(e.slideLayoutContent,["p:sldLayout","p:clrMapOvr","a:overrideClrMapping","attrs"]))||gl(e.slideMasterContent,["p:sldMaster","p:clrMap","attrs"]))}var s=t.substr(2);if("phClr"===s&&n)i=n;else{if(a)switch(s){case"tx1":case"tx2":case"bg1":case"bg2":t="a:"+a[s]}else switch(t){case"tx1":t="a:dk1";break;case"tx2":t="a:dk2";break;case"bg1":t="a:lt1";break;case"bg2":t="a:lt2"}var u=gl(e.themeContent,["a:theme","a:themeElements","a:clrScheme",t]);!(i=gl(u,["a:srgbClr","attrs","val"]))&&u&&(i=gl(u,["a:sysClr","attrs","lastClr"]))}return i}function kl(t,e,r){var n=t["p:spPr"]["a:ln"],i=parseInt(gl(n,["attrs","w"]))/12700;isNaN(i)&&(i=n||"obj"!==e?0:1);var a=gl(n,["a:solidFill","a:srgbClr","attrs","val"]);if(!a){var o=gl(n,["a:solidFill","a:schemeClr"]);a=_l("a:"+gl(o,["attrs","val"]),r)}if(!a){var s=gl(t,["p:style","a:lnRef","a:schemeClr"]);if(a=_l("a:"+gl(s,["attrs","val"]),r)){var u=gl(s,["a:shade","attrs","val"]);if(u){u=parseInt(u)/1e5;var l=Mu("#"+a).toHsl();a=Mu({h:l.h,s:l.s,l:l.l*u,a:l.a}).toHex()}}}a=a?"#".concat(a):"#000";var f="solid",h="0";switch(gl(n,["a:prstDash","attrs","val"])){case"solid":f="solid",h="0";break;case"dash":f="dashed",h="5";break;case"dashDot":f="dashed",h="5, 5, 1, 5";break;case"dot":f="dotted",h="1, 5";break;case"lgDash":f="dashed",h="10, 5";break;case"lgDashDotDot":f="dotted",h="10, 5, 1, 5, 1, 5";break;case"sysDash":f="dashed",h="5, 2";break;case"sysDashDot":f="dotted",h="5, 2, 1, 5";break;case"sysDashDotDot":f="dotted",h="5, 2, 1, 5, 1, 5";break;case"sysDot":f="dotted",h="2, 5"}return{borderColor:a,borderWidth:i,borderType:f,strokeDasharray:h}}function xl(t,e,r){return r<0&&(r+=6),r>=6&&(r-=6),r<1?(e-t)*r+t:r<3?e:r<4?(e-t)*(4-r)+t:t}function Sl(t){var e="";return t["a:noFill"]&&(e="NO_FILL"),t["a:solidFill"]&&(e="SOLID_FILL"),t["a:gradFill"]&&(e="GRADIENT_FILL"),t["a:pattFill"]&&(e="PATTERN_FILL"),t["a:blipFill"]&&(e="PIC_FILL"),t["a:grpFill"]&&(e="GROUP_FILL"),e}function Cl(t,e,r){return Al.apply(this,arguments)}function Al(){return Al=r(u.mark((function t(e,r,n){var i,a,o,s,l,f;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=r["a:blip"].attrs["r:embed"],"slideBg"===e||"slide"===e?o=gl(n,["slideResObj",a,"target"]):"slideLayoutBg"===e?o=gl(n,["layoutResObj",a,"target"]):"slideMasterBg"===e?o=gl(n,["masterResObj",a,"target"]):"themeBg"===e?o=gl(n,["themeResObj",a,"target"]):"diagramBg"===e&&(o=gl(n,["diagramResObj",a,"target"])),o){t.next=4;break}return t.abrupt("return",o);case 4:if(i=gl(n,["loaded-images",o])){t.next=15;break}if(o=vl(o),"xml"!==(s=o.split(".").pop())){t.next=10;break}return t.abrupt("return",void 0);case 10:return t.next=12,n.zip.file(o).async("arraybuffer");case 12:l=t.sent,f=ml(s),i="data:".concat(f,";base64,").concat(cl(l));case 15:return t.abrupt("return",i);case 16:case"end":return t.stop()}}),t)}))),Al.apply(this,arguments)}function El(t,e,r){return Rl.apply(this,arguments)}function Rl(){return(Rl=r(u.mark((function t(e,r,n){var i,a,o,s;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,Cl(r,e["a:blipFill"],n);case 2:return i=t.sent,a=e["a:blipFill"]["a:blip"],o=gl(a,["a:alphaModFix","attrs"]),s=1,o&&o.amt&&""!==o.amt&&(s=parseInt(o.amt)/1e5),t.abrupt("return",{picBase64:i,opacity:s});case 8:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function Ol(t,e,r,n){if(t){for(var i=t["a:gradFill"],a=i["a:gsLst"]["a:gs"],o=[],s=0;s1e3&&(k=_-1e3,x=e.themeContent["a:theme"]["a:themeElements"]["a:fmtScheme"]["a:bgFillStyleLst"],S=[],Object.keys(x).forEach((function(t){var e=x[t];if("attrs"!==t)if(e.constructor===Array)for(var r=0;r1e3)){t.next=89;break}if(F=j-1e3,N=e.themeContent["a:theme"]["a:themeElements"]["a:fmtScheme"]["a:bgFillStyleLst"],U=[],Object.keys(N).forEach((function(t){var e=N[t];if("attrs"!==t)if(e.constructor===Array)for(var r=0;r1e3)){t.next=142;break}if(et=tt-1e3,rt=e.themeContent["a:theme"]["a:themeElements"]["a:fmtScheme"]["a:bgFillStyleLst"],nt=[],Object.keys(rt).forEach((function(t){var e=rt[t];if("attrs"!==t)if(e.constructor===Array)for(var r=0;r=360&&(i-=360),r?Mu({h:i,s:n.s,l:n.l,a:n.a}).toHex8():Mu({h:i,s:n.s,l:n.l,a:n.a}).toHex()}(s,y,b));var w=parseInt(gl(i,["a:lumMod","attrs","val"]))/1e5;isNaN(w)||(s=function(t,e,r){var n=Mu(t).toHsl(),i=n.l*e;return i>=1&&(i=1),r?Mu({h:n.h,s:n.s,l:i,a:n.a}).toHex8():Mu({h:n.h,s:n.s,l:i,a:n.a}).toHex()}(s,w,b));var _=parseInt(gl(i,["a:lumOff","attrs","val"]))/1e5;isNaN(_)||(s=function(t,e,r){var n=Mu(t).toHsl(),i=e+n.l;return i>=1?r?Mu({h:n.h,s:n.s,l:1,a:n.a}).toHex8():Mu({h:n.h,s:n.s,l:1,a:n.a}).toHex():r?Mu({h:n.h,s:n.s,l:i,a:n.a}).toHex8():Mu({h:n.h,s:n.s,l:i,a:n.a}).toHex()}(s,_,b));var k=parseInt(gl(i,["a:satMod","attrs","val"]))/1e5;isNaN(k)||(s=function(t,e,r){var n=Mu(t).toHsl(),i=n.s*e;return i>=1&&(i=1),r?Mu({h:n.h,s:i,l:n.l,a:n.a}).toHex8():Mu({h:n.h,s:i,l:n.l,a:n.a}).toHex()}(s,k,b));var x=parseInt(gl(i,["a:shade","attrs","val"]))/1e5;isNaN(x)||(s=function(t,e,r){var n=Mu(t).toHsl();e>=1&&(e=1);var i=Math.min(n.l*e,1);return r?Mu({h:n.h,s:n.s,l:i,a:n.a}).toHex8():Mu({h:n.h,s:n.s,l:i,a:n.a}).toHex()}(s,x,b));var S=parseInt(gl(i,["a:tint","attrs","val"]))/1e5;return isNaN(S)||(s=function(t,e,r){var n=Mu(t).toHsl();e>=1&&(e=1);var i=n.l*e+(1-e);return r?Mu({h:n.h,s:n.s,l:i,a:n.a}).toHex8():Mu({h:n.h,s:n.s,l:i,a:n.a}).toHex()}(s,S,b)),s&&-1===s.indexOf("#")&&(s="#"+s),s}function Pl(t){var e=[];if(!t)return e;if(t["c:xVal"]){var r=[];pl(t["c:xVal"]["c:numRef"]["c:numCache"]["c:pt"],(function(t){return r.push(parseFloat(t["c:v"])),""})),e.push(r),r=[],pl(t["c:yVal"]["c:numRef"]["c:numCache"]["c:pt"],(function(t){return r.push(parseFloat(t["c:v"])),""})),e.push(r)}else pl(t,(function(t,r){var n=[],i=gl(t,["c:tx","c:strRef","c:strCache","c:pt","c:v"])||r,a={};return gl(t,["c:cat","c:strRef","c:strCache","c:pt"])?pl(t["c:cat"]["c:strRef"]["c:strCache"]["c:pt"],(function(t){return a[t.attrs.idx]=t["c:v"],""})):gl(t,["c:cat","c:numRef","c:numCache","c:pt"])&&pl(t["c:cat"]["c:numRef"]["c:numCache"]["c:pt"],(function(t){return a[t.attrs.idx]=t["c:v"],""})),gl(t,["c:val","c:numRef","c:numCache","c:pt"])&&pl(t["c:val"]["c:numRef"]["c:numCache"]["c:pt"],(function(t){return n.push({x:t.attrs.idx,y:parseFloat(t["c:v"])}),""})),e.push({key:i,values:n,xlabels:a}),""}));return e}function Bl(t){var e=null;for(var r in t)switch(r){case"c:lineChart":e={type:"lineChart",data:Pl(t[r]["c:ser"]),grouping:gl(t[r],["c:grouping","attrs","val"]),marker:!!t[r]["c:marker"]};break;case"c:line3DChart":e={type:"line3DChart",data:Pl(t[r]["c:ser"]),grouping:gl(t[r],["c:grouping","attrs","val"])};break;case"c:barChart":e={type:"barChart",data:Pl(t[r]["c:ser"]),grouping:gl(t[r],["c:grouping","attrs","val"]),barDir:gl(t[r],["c:barDir","attrs","val"])};break;case"c:bar3DChart":e={type:"bar3DChart",data:Pl(t[r]["c:ser"]),grouping:gl(t[r],["c:grouping","attrs","val"]),barDir:gl(t[r],["c:barDir","attrs","val"])};break;case"c:pieChart":e={type:"pieChart",data:Pl(t[r]["c:ser"])};break;case"c:pie3DChart":e={type:"pie3DChart",data:Pl(t[r]["c:ser"])};break;case"c:doughnutChart":e={type:"doughnutChart",data:Pl(t[r]["c:ser"]),holeSize:gl(t[r],["c:holeSize","attrs","val"])};break;case"c:areaChart":e={type:"areaChart",data:Pl(t[r]["c:ser"]),grouping:gl(t[r],["c:grouping","attrs","val"])};break;case"c:area3DChart":e={type:"area3DChart",data:Pl(t[r]["c:ser"]),grouping:gl(t[r],["c:grouping","attrs","val"])};break;case"c:scatterChart":e={type:"scatterChart",data:Pl(t[r]["c:ser"]),style:gl(t[r],["c:scatterStyle","attrs","val"])};break;case"c:bubbleChart":e={type:"bubbleChart",data:Pl(t[r]["c:ser"])};break;case"c:radarChart":e={type:"radarChart",data:Pl(t[r]["c:ser"]),style:gl(t[r],["c:radarStyle","attrs","val"])};break;case"c:surfaceChart":e={type:"surfaceChart",data:Pl(t[r]["c:ser"])};break;case"c:surface3DChart":e={type:"surface3DChart",data:Pl(t[r]["c:ser"])};break;case"c:stockChart":e={type:"stockChart",data:Pl(t[r]["c:ser"])}}return e}function Dl(t,e,r,n){var i=gl(t,["a:pPr","attrs","algn"]);if(i||(i=gl(e,["a:pPr","attrs","algn"])),!i)if("title"===r||"ctrTitle"===r||"subTitle"===r){var a=1,o=gl(e,["a:pPr","attrs","lvl"]);o&&(a=parseInt(o)+1);var s="a:lvl"+a+"pPr";(i=gl(n,["slideLayoutTables","typeTable",r,"p:txBody","a:lstStyle",s,"attrs","algn"]))||(i=gl(n,["slideMasterTables","typeTable",r,"p:txBody","a:lstStyle",s,"attrs","algn"])),i||(i=gl(n,["slideMasterTextStyles","p:titleStyle",s,"attrs","algn"])),i||"subTitle"!==r||(i=gl(n,["slideMasterTextStyles","p:bodyStyle",s,"attrs","algn"]))}else i=gl(n,"body"===r?["slideMasterTextStyles","p:bodyStyle","a:lvl1pPr","attrs","algn"]:["slideMasterTables","typeTable",r,"p:txBody","a:lstStyle","a:lvl1pPr","attrs","algn"]);var u="left";if(i)switch(i){case"l":u="left";break;case"r":u="right";break;case"ctr":u="center";break;case"just":case"dist":u="justify";break;default:u="inherit"}return u}var zl=72/914400;function jl(t,e,r){var n;return t?n=t["a:off"].attrs:e?n=e["a:off"].attrs:r&&(n=r["a:off"].attrs),n?{top:parseInt(n.y)*zl,left:parseInt(n.x)*zl}:{top:0,left:0}}function Fl(t,e,r){var n;return t?n=t["a:ext"].attrs:e?n=e["a:ext"].attrs:r&&(n=r["a:ext"].attrs),n?{width:parseInt(n.cx)*zl,height:parseInt(n.cy)*zl}:{width:0,height:0}}function Nl(t,e){var r=Il(t,void 0,void 0,e),n=t.attrs,i=n.dir?parseInt(n.dir)/6e4:0,a=parseInt(n.dist)*zl,o=n.blurRad?parseInt(n.blurRad)*zl:"",s=a*Math.sin(i*Math.PI/180);return{h:a*Math.cos(i*Math.PI/180),v:s,blur:o,color:r}}function Ul(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return Hl(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Hl(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Hl(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1&&p.shift(),(c=c.concat(p)).sort((function(t,e){return!t.attrs||!e.attrs||t.attrs.order-e.attrs.order}))));var g=Dl(h,e,n,i),b=Zl(h);if(b?(l?l&&l!==b&&(o+=""),o+="<".concat(b,">"),l=b):(o+="<".concat(b,">"),l=b),o+='
  • ')):(l&&(o+=""),l=""),o+='

    ')),c){var v,m=Ul(c);try{for(m.s();!(v=m.n()).done;){o+=ql(v.value,h,t,s,r,n,i)}}catch(t){m.e(t)}finally{m.f()}}else o+=ql(h,e,t,s,r,n,i);o+=b?"

  • ":"

    "}}catch(t){f.e(t)}finally{f.f()}return o}function Zl(t){var e=t["a:pPr"];return e?e["a:buChar"]?"ul":e["a:buAutoNum"]?"ol":"":""}function ql(t,e,r,n,i,a,o){var s=r["a:lstStyle"],u=o.slideMasterTextStyles,l=1,f=gl(e["a:pPr"],["attrs","lvl"]);void 0!==f&&(l=parseInt(f)+1);var h=t["a:t"];"string"!=typeof h&&(h=gl(t,["a:fld","a:t"])),"string"!=typeof h&&(h=" ");var c="",d=function(t,e,r,n,i,a){var o,s=gl(t,["a:rPr"]);if(s&&"SOLID_FILL"===Sl(s)&&(o=Il(s["a:solidFill"],void 0,void 0,a)),!o&&gl(r,["a:lvl"+i+"pPr","a:defRPr"])){var u=gl(r,["a:lvl"+i+"pPr","a:defRPr"]);"SOLID_FILL"===Sl(u)&&(o=Il(u["a:solidFill"],void 0,void 0,a))}if(!o){var l=gl(e,["p:style","a:fontRef"]);l&&(o=Il(l,void 0,void 0,a)),!o&&n&&(o=Il(n,void 0,void 0,a))}return o||""}(t,e,s,n,l,o),p=function(t,e,r,n){var i,a;if(gl(t,["a:rPr","attrs","sz"])&&(i=gl(t,["a:rPr","attrs","sz"])/100),isNaN(i)||!i){var o=gl(e,["p:txBody","a:lstStyle","a:lvl1pPr","a:defRPr","attrs","sz"]);i=parseInt(o)/100}return!isNaN(i)&&i||("title"===r||"subTitle"===r||"ctrTitle"===r?a=gl(n,["p:titleStyle","a:lvl1pPr","a:defRPr","attrs","sz"]):"body"===r?a=gl(n,["p:bodyStyle","a:lvl1pPr","a:defRPr","attrs","sz"]):"dt"===r||"sldNum"===r?a="1200":r||(a=gl(n,["p:otherStyle","a:lvl1pPr","a:defRPr","attrs","sz"])),a&&(i=parseInt(a)/100)),gl(t,["a:rPr","attrs","baseline"])&&!isNaN(i)&&(i-=10),(i=isNaN(i)||!i?18:i)+"pt"}(t,i,a,u),g=function(t,e,r){var n=gl(t,["a:rPr","a:latin","attrs","typeface"]);if(!n){var i=gl(r.themeContent,["a:theme","a:themeElements","a:fontScheme"]);n=gl(i,"title"===e||"subTitle"===e||"ctrTitle"===e?["a:majorFont","a:latin","attrs","typeface"]:["a:minorFont","a:latin","attrs","typeface"])}return n||""}(t,a,o),b=function(t){return"1"===gl(t,["a:rPr","attrs","b"])?"bold":""}(t),v=function(t){return"1"===gl(t,["a:rPr","attrs","i"])?"italic":""}(t),m=function(t){return"sng"===gl(t,["a:rPr","attrs","u"])?"underline":""}(t),y=function(t){return"sngStrike"===gl(t,["a:rPr","attrs","strike"])?"line-through":""}(t),w=function(t){var e=gl(t,["a:rPr","attrs","spc"]);return e?parseInt(e)/100+"pt":""}(t),_=function(t,e){var r=gl(t,["a:rPr","a:effectLst","a:outerShdw"]);if(r){var n=Nl(r,e);if(n){var i=n.h,a=n.v,o=n.blur,s=n.color;if(!isNaN(a)&&!isNaN(i))return i+"pt "+a+"pt "+(o?o+"pt":"")+" "+s}}return""}(t,o),k=function(t){var e=gl(t,["a:rPr","attrs","baseline"]);return e?parseInt(e)>0?"super":"sub":""}(t);d&&(c+="color: ".concat(d,";")),p&&(c+="font-size: ".concat(p,";")),g&&(c+="font-family: ".concat(g,";")),b&&(c+="font-weight: ".concat(b,";")),v&&(c+="font-style: ".concat(v,";")),m&&(c+="text-decoration: ".concat(m,";")),y&&(c+="text-decoration-line: ".concat(y,";")),w&&(c+="letter-spacing: ".concat(w,";")),k&&(c+="vertical-align: ".concat(k,";")),_&&(c+="text-shadow: ".concat(_,";"));var x=gl(t,["a:rPr","a:hlinkClick","attrs","r:id"]);if(x){var S=o.slideResObj[x].target;return'').concat(h.replace(/\t/g,"    ").replace(/\s/g," "),"")}return'').concat(h.replace(/\t/g,"    ").replace(/\s/g," "),"")}function Yl(t,e,r,n,i,a,o){var s,u=i;if(a>=i)for(;u<=a;){var l=u*(Math.PI/180),f=t+Math.cos(l)*r,h=e+Math.sin(l)*n;u===i&&(s=" M"+f+" "+h),s+=" L"+f+" "+h,u++}else for(;u>a;){var c=u*(Math.PI/180),d=t+Math.cos(c)*r,p=e+Math.sin(c)*n;u===i&&(s=" M "+d+" "+p),s+=" L "+d+" "+p,u--}return s+=o?" z":""}function Gl(t,e,r,n){var i,a,o,s,u,l=gl(t,["attrs","rowSpan"]),f=gl(t,["attrs","gridSpan"]),h=gl(t,["attrs","vMerge"]),c=gl(t,["attrs","hMerge"]),d=gl(t,["a:tcPr"]);d&&(i=Ml({"p:spPr":d},void 0,n));i||(r&&(s=gl(e,[r,"a:tcStyle","a:fill","a:solidFill"])),s&&(i=Il(s,void 0,void 0,n)));return r&&(u=gl(e,[r,"a:tcTxStyle"])),u&&(a=Il(u,void 0,void 0,n),"on"===gl(u,["attrs","b"])&&(o=!0)),{fillColor:i,fontColor:a,fontBold:o,rowSpan:l?+l:void 0,colSpan:f?+f:void 0,vMerge:h?+h:void 0,hMerge:c?+c:void 0}}function Vl(t,e,r,n,i){var a,o,s;if(n&&n["a:wholeTbl"]){var u=gl(n,["a:wholeTbl","a:tcStyle","a:fill","a:solidFill"]);if(u){var l=Il(u,void 0,void 0,i);l&&(a=l)}var f=gl(n,["a:wholeTbl","a:tcTxStyle"]);if(f){var h=Il(f,void 0,void 0,i);h&&(o=h),"on"===gl(f,["attrs","b"])&&(s=!0)}}if(0===e&&1===r.isFrstRowAttr&&n){var c=gl(n,["a:firstRow","a:tcStyle","a:fill","a:solidFill"]);if(c){var d=Il(c,void 0,void 0,i);d&&(a=d)}var p=gl(n,["a:firstRow","a:tcTxStyle"]);if(p){var g=Il(p,void 0,void 0,i);g&&(o=g),"on"===gl(p,["attrs","b"])&&(s=!0)}}else if(e>0&&1===r.isBandRowAttr&&n){if(a="",e%2==0&&n["a:band2H"]){var b=gl(n,["a:band2H","a:tcStyle","a:fill","a:solidFill"]);if(b){var v=Il(b,void 0,void 0,i);v&&(a=v)}var m=gl(n,["a:band2H","a:tcTxStyle"]);if(m){var y=Il(m,void 0,void 0,i);y&&(o=y)}"on"===gl(m,["attrs","b"])&&(s=!0)}if(e%2!=0&&n["a:band1H"]){var w=gl(n,["a:band1H","a:tcStyle","a:fill","a:solidFill"]);if(w){var _=Il(w,void 0,void 0,i);_&&(a=_)}var k=gl(n,["a:band1H","a:tcTxStyle"]);if(k){var x=Il(k,void 0,void 0,i);x&&(o=x),"on"===gl(k,["attrs","b"])&&(s=!0)}}}if(e===t.length-1&&1===r.isLstRowAttr&&n){var S=gl(n,["a:lastRow","a:tcStyle","a:fill","a:solidFill"]);if(S){var C=Il(S,void 0,void 0,i);C&&(a=C)}var A=gl(n,["a:lastRow","a:tcTxStyle"]);if(A){var E=Il(A,void 0,void 0,i);E&&(o=E),"on"===gl(A,["attrs","b"])&&(s=!0)}}return{fillColor:a,fontColor:o,fontBold:s}}function Kl(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Xl(e){for(var r=1;r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Jl(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r0){if(Object.keys(f).forEach((function(t){var e=f[t]["a:pt"];e&&Object.keys(e).forEach((function(t){var r=e[t],n=r.x,i=r.y,a=r.order;g.push({type:"movto",x:n,y:i,order:a})}))})),h&&Object.keys(h).forEach((function(t){var e=h[t]["a:pt"];e&&Object.keys(e).forEach((function(t){var r=e[t],n=r.x,i=r.y,a=r.order;g.push({type:"lnto",x:n,y:i,order:a})}))})),c){var b=[];Array.isArray(c)||(c=[c]),Object.keys(c).forEach((function(t){b.push(c[t]["a:pt"])})),b.forEach((function(t){var e=[];t.forEach((function(t){var r={x:t.attrs.x,y:t.attrs.y};e.push(r)}));var r=t[0].attrs.order;g.push({type:"cubicBezTo",cubBzPt:e,order:r})}))}if(d){var v=d.attrs,m=v.order,y=v.hR,w=v.wR,_=v.stAng,k=v.swAng,x=0,S=0,C=gl(d,["a:pt","attrs"]);C&&(x=C.x,S=C.y),g.push({type:"arcTo",hR:y,wR:w,stAng:_,swAng:k,shftX:x,shftY:S,order:m})}p&&(Array.isArray(p)||(p=[p]),Object.keys(p).forEach((function(){g.push({type:"close",order:1/0})}))),g.sort((function(t,e){return t.order-e.order}));for(var A=0;A0&&1===y.isBandColAttr&&(1!==y.isFrstColAttr||0!==T)&&(1!==y.isLstRowAttr||T!==R.length-1)&&j!==D.length-1&&j%2!=0){var U=gl(r,["a:band2V"]);void 0===U?(U=gl(r,["a:band1V"]))&&(N="a:band2V"):N="a:band2V"}j===D.length-1&&1===y.isLstColAttr&&(N="a:lastCol",1===y.isLstRowAttr&&T===R.length-1&&gl(r,["a:swCell"])?N="a:swCell":1===y.isFrstRowAttr&&0===T&&gl(r,["a:nwCell"])&&(N="a:nwCell"));var H=Wl(F["a:txBody"],F,void 0,void 0,e),W=Gl(F,r,N,e),Z={text:H};W.rowSpan&&(Z.rowSpan=W.rowSpan),W.colSpan&&(Z.colSpan=W.colSpan),W.vMerge&&(Z.vMerge=W.vMerge),W.hMerge&&(Z.hMerge=W.hMerge),(W.fontBold||B)&&(Z.fontBold=W.fontBold||B),(W.fontColor||P)&&(Z.fontColor=W.fontColor||P),(W.fillColor||I||A)&&(Z.fillColor=W.fillColor||I||A),z.push(Z)}else{var q=void 0;if(1===y.isFrstColAttr&&1!==y.isLstRowAttr)q="a:firstCol";else if(1===y.isBandColAttr&&1!==y.isLstRowAttr){var Y=gl(r,["a:band2V"]);(Y||(Y=gl(r,["a:band1V"])))&&(q="a:band2V")}1===y.isLstColAttr&&1!==y.isLstRowAttr&&(q="a:lastCol");var G=Wl(D["a:txBody"],D,void 0,void 0,e),V=Gl(D,r,q,e),K={text:G};V.rowSpan&&(K.rowSpan=V.rowSpan),V.colSpan&&(K.colSpan=V.colSpan),V.vMerge&&(K.vMerge=V.vMerge),V.hMerge&&(K.hMerge=V.hMerge),(V.fontBold||B)&&(K.fontBold=V.fontBold||B),(V.fontColor||P)&&(K.fontColor=V.fontColor||P),(V.fillColor||I||A)&&(K.fillColor=V.fillColor||I||A),z.push(K)}O.push(z)}return Xl({type:"table",top:s,left:u,width:f,height:h,data:O},n||{})}function xf(t,e){return Sf.apply(this,arguments)}function Sf(){return Sf=r(u.mark((function t(e,r){var n,i,a,o,s,l,f,h,c,d,p,g,b;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=gl(e,["p:xfrm"]),i=jl(n,void 0,void 0),a=i.top,o=i.left,s=Fl(n,void 0,void 0),l=s.width,f=s.height,h=e["a:graphic"]["a:graphicData"]["c:chart"].attrs["r:id"],c=r.slideResObj[h].target,t.next=7,Eu(r.zip,c);case 7:if(d=t.sent,p=gl(d,["c:chartSpace","c:chart","c:plotArea"]),g=Bl(p)){t.next=12;break}return t.abrupt("return",{});case 12:return b={type:"chart",top:a,left:o,width:l,height:f,data:g.data,chartType:g.type},void 0!==g.marker&&(b.marker=g.marker),void 0!==g.barDir&&(b.barDir=g.barDir),void 0!==g.holeSize&&(b.holeSize=g.holeSize),void 0!==g.grouping&&(b.grouping=g.grouping),void 0!==g.style&&(b.style=g.style),t.abrupt("return",b);case 19:case"end":return t.stop()}}),t)}))),Sf.apply(this,arguments)}function Cf(t,e){var r=gl(t,["p:xfrm"]),n=jl(r,void 0,void 0),i=n.left,a=n.top,o=Fl(r,void 0,void 0),s=o.width,u=o.height,l=gl(e.digramFileContent,["p:drawing","p:spTree","p:sp"]),f=[];if(l){var h,c=$l(l);try{for(c.s();!(h=c.n()).done;){var d=gf(h.value,e,"diagramBg");d&&f.push(d)}}catch(t){c.e(t)}finally{c.f()}}return{type:"diagram",left:i,top:a,width:s,height:u,elements:f}}export{Ql as parse}; //# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map index ca62206..9ed2a9d 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/regenerator/index.js","../node_modules/.pnpm/rollup-plugin-node-globals@1.4.0/node_modules/rollup-plugin-node-globals/src/global.js","../node_modules/.pnpm/buffer-es6@4.9.3/node_modules/buffer-es6/base64.js","../node_modules/.pnpm/buffer-es6@4.9.3/node_modules/buffer-es6/ieee754.js","../node_modules/.pnpm/buffer-es6@4.9.3/node_modules/buffer-es6/isArray.js","../node_modules/.pnpm/buffer-es6@4.9.3/node_modules/buffer-es6/index.js","../node_modules/.pnpm/process-es6@0.11.6/node_modules/process-es6/browser.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/events.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/inherits.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/util.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/buffer-list.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/string-decoder.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/readable.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/writable.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/duplex.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/transform.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/passthrough.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/stream.js","../node_modules/.pnpm/process-nextick-args@2.0.1/node_modules/process-nextick-args/index.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/internal/streams/stream.js","../node_modules/.pnpm/safe-buffer@5.1.2/node_modules/safe-buffer/index.js","../node_modules/.pnpm/core-util-is@1.0.3/node_modules/core-util-is/lib/util.js","../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits.js","../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/internal/streams/BufferList.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/.pnpm/util-deprecate@1.0.2/node_modules/util-deprecate/node.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/.pnpm/string_decoder@1.1.1/node_modules/string_decoder/lib/string_decoder.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/.pnpm/isarray@1.0.0/node_modules/isarray/index.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/readable.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/support.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/base64.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/nodejsUtils.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/external.js","../node_modules/.pnpm/lie@3.3.0/node_modules/lie/lib/index.js","../node_modules/.pnpm/immediate@3.0.6/node_modules/immediate/lib/index.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/utils.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/GenericWorker.js","../node_modules/.pnpm/setimmediate@1.0.5/node_modules/setimmediate/setImmediate.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/utf8.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/ConvertWorker.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/StreamHelper.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/defaults.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/DataWorker.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/crc32.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/Crc32Probe.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/DataLengthProbe.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/compressedObject.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/zipObject.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/common.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/trees.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/adler32.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/crc32.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/deflate.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/messages.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/strings.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/zstream.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/deflate.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inftrees.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inflate.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inffast.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/constants.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/gzheader.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/inflate.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/index.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/flate.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/compressions.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/signature.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/generate/ZipFileWorker.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/generate/index.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/object.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/DataReader.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/ArrayReader.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/StringReader.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/Uint8ArrayReader.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/NodeBufferReader.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/readerFor.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/zipEntry.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/zipEntries.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/load.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/index.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/.pnpm/txml@5.1.1/node_modules/txml/dist/txml.mjs","../src/readXmlFile.js","../node_modules/.pnpm/tinycolor2@1.6.0/node_modules/tinycolor2/esm/tinycolor.js","../src/utils.js","../src/schemeColor.js","../src/border.js","../src/color.js","../src/fill.js","../src/chart.js","../src/align.js","../src/constants.js","../src/position.js","../src/shadow.js","../src/text.js","../src/fontStyle.js","../src/shape.js","../src/table.js","../src/pptxtojson.js"],"sourcesContent":["export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n return ContinueSentinel;\n }\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) {\n keys.push(key);\n }\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","export default (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});\n","\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\nvar inited = false;\nfunction init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n }\n\n revLookup['-'.charCodeAt(0)] = 62\n revLookup['_'.charCodeAt(0)] = 63\n}\n\nexport function toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders)\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len\n\n var L = 0\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]\n arr[L++] = (tmp >> 16) & 0xFF\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[L++] = tmp & 0xFF\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nexport function fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var output = ''\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n output += lookup[tmp >> 2]\n output += lookup[(tmp << 4) & 0x3F]\n output += '=='\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1])\n output += lookup[tmp >> 10]\n output += lookup[(tmp >> 4) & 0x3F]\n output += lookup[(tmp << 2) & 0x3F]\n output += '='\n }\n\n parts.push(output)\n\n return parts.join('')\n}\n","\nexport function read (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexport function write (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nexport default Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\nimport * as base64 from './base64'\nimport * as ieee754 from './ieee754'\nimport isArray from './isArray'\n\nexport var INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : true\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nvar _kMaxLength = kMaxLength()\nexport {_kMaxLength as kMaxLength};\nfunction typedArraySupport () {\n return true;\n // rollup issues\n // try {\n // var arr = new Uint8Array(1)\n // arr.__proto__ = {\n // __proto__: Uint8Array.prototype,\n // foo: function () { return 42 }\n // }\n // return arr.foo() === 42 && // typed array instances can be augmented\n // typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n // arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n // } catch (e) {\n // return false\n // }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nexport function Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n // Object.defineProperty(Buffer, Symbol.species, {\n // value: null,\n // configurable: true\n // })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (internalIsBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nexport function SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\nBuffer.isBuffer = isBuffer;\nfunction internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!internalIsBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (internalIsBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (internalIsBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = internalIsBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nexport function isBuffer(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n}\n\nfunction isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n}\n","// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nexport function nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nexport var title = 'browser';\nexport var platform = 'browser';\nexport var browser = true;\nexport var env = {};\nexport var argv = [];\nexport var version = ''; // empty string to avoid regexp issues\nexport var versions = {};\nexport var release = {};\nexport var config = {};\n\nfunction noop() {}\n\nexport var on = noop;\nexport var addListener = noop;\nexport var once = noop;\nexport var off = noop;\nexport var removeListener = noop;\nexport var removeAllListeners = noop;\nexport var emit = noop;\n\nexport function binding(name) {\n throw new Error('process.binding is not supported');\n}\n\nexport function cwd () { return '/' }\nexport function chdir (dir) {\n throw new Error('process.chdir is not supported');\n};\nexport function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global.performance || {}\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() }\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nexport function hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3\n var seconds = Math.floor(clocktime)\n var nanoseconds = Math.floor((clocktime%1)*1e9)\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0]\n nanoseconds = nanoseconds - previousTimestamp[1]\n if (nanoseconds<0) {\n seconds--\n nanoseconds += 1e9\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nexport function uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nexport default {\n nextTick: nextTick,\n title: title,\n browser: browser,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n};\n","'use strict';\n\nvar domain;\n\n// This constructor is used to store event handlers. Instantiating this is\n// faster than explicitly calling `Object.create(null)` to get a \"clean\" empty\n// object (tested with v8 v4.9).\nfunction EventHandlers() {}\nEventHandlers.prototype = Object.create(null);\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nexport default EventEmitter;\nexport {EventEmitter};\n\n// nodejs oddity\n// require('events') === require('events').EventEmitter\nEventEmitter.EventEmitter = EventEmitter\n\nEventEmitter.usingDomains = false;\n\nEventEmitter.prototype.domain = undefined;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\nEventEmitter.init = function() {\n this.domain = null;\n if (EventEmitter.usingDomains) {\n // if there is an active domain, then attach to it.\n if (domain.active && !(this instanceof domain.Domain)) {\n this.domain = domain.active;\n }\n }\n\n if (!this._events || this._events === Object.getPrototypeOf(this)._events) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || isNaN(n))\n throw new TypeError('\"n\" argument must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\n// These standalone emit* functions are used to optimize calling of event\n// handlers for fast cases because emit() itself often has a variable number of\n// arguments and can be deoptimized because of that. These functions always have\n// the same number of arguments and thus do not get deoptimized, so the code\n// inside them can execute faster.\nfunction emitNone(handler, isFn, self) {\n if (isFn)\n handler.call(self);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self);\n }\n}\nfunction emitOne(handler, isFn, self, arg1) {\n if (isFn)\n handler.call(self, arg1);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1);\n }\n}\nfunction emitTwo(handler, isFn, self, arg1, arg2) {\n if (isFn)\n handler.call(self, arg1, arg2);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2);\n }\n}\nfunction emitThree(handler, isFn, self, arg1, arg2, arg3) {\n if (isFn)\n handler.call(self, arg1, arg2, arg3);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2, arg3);\n }\n}\n\nfunction emitMany(handler, isFn, self, args) {\n if (isFn)\n handler.apply(self, args);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].apply(self, args);\n }\n}\n\nEventEmitter.prototype.emit = function emit(type) {\n var er, handler, len, args, i, events, domain;\n var needDomainExit = false;\n var doError = (type === 'error');\n\n events = this._events;\n if (events)\n doError = (doError && events.error == null);\n else if (!doError)\n return false;\n\n domain = this.domain;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n er = arguments[1];\n if (domain) {\n if (!er)\n er = new Error('Uncaught, unspecified \"error\" event');\n er.domainEmitter = this;\n er.domain = domain;\n er.domainThrown = false;\n domain.emit('error', er);\n } else if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n return false;\n }\n\n handler = events[type];\n\n if (!handler)\n return false;\n\n var isFn = typeof handler === 'function';\n len = arguments.length;\n switch (len) {\n // fast cases\n case 1:\n emitNone(handler, isFn, this);\n break;\n case 2:\n emitOne(handler, isFn, this, arguments[1]);\n break;\n case 3:\n emitTwo(handler, isFn, this, arguments[1], arguments[2]);\n break;\n case 4:\n emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);\n break;\n // slower\n default:\n args = new Array(len - 1);\n for (i = 1; i < len; i++)\n args[i - 1] = arguments[i];\n emitMany(handler, isFn, this, args);\n }\n\n if (needDomainExit)\n domain.exit();\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = target._events;\n if (!events) {\n events = target._events = new EventHandlers();\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (!existing) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] :\n [existing, listener];\n } else {\n // If we've already got an array, just append.\n if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n }\n\n // Check for listener leak\n if (!existing.warned) {\n m = $getMaxListeners(target);\n if (m && m > 0 && existing.length > m) {\n existing.warned = true;\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + type + ' listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n emitWarning(w);\n }\n }\n }\n\n return target;\n}\nfunction emitWarning(e) {\n typeof console.warn === 'function' ? console.warn(e) : console.log(e);\n}\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction _onceWrap(target, type, listener) {\n var fired = false;\n function g() {\n target.removeListener(type, g);\n if (!fired) {\n fired = true;\n listener.apply(target, arguments);\n }\n }\n g.listener = listener;\n return g;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = this._events;\n if (!events)\n return this;\n\n list = events[type];\n if (!list)\n return this;\n\n if (list === listener || (list.listener && list.listener === listener)) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list[0] = undefined;\n if (--this._eventsCount === 0) {\n this._events = new EventHandlers();\n return this;\n } else {\n delete events[type];\n }\n } else {\n spliceOne(list, position);\n }\n\n if (events.removeListener)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events;\n\n events = this._events;\n if (!events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!events.removeListener) {\n if (arguments.length === 0) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n } else if (events[type]) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n for (var i = 0, key; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = new EventHandlers();\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n do {\n this.removeListener(type, listeners[listeners.length - 1]);\n } while (listeners[0]);\n }\n\n return this;\n };\n\nEventEmitter.prototype.listeners = function listeners(type) {\n var evlistener;\n var ret;\n var events = this._events;\n\n if (!events)\n ret = [];\n else {\n evlistener = events[type];\n if (!evlistener)\n ret = [];\n else if (typeof evlistener === 'function')\n ret = [evlistener.listener || evlistener];\n else\n ret = unwrapListeners(evlistener);\n }\n\n return ret;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];\n};\n\n// About 1.5x faster than the two-arg version of Array#splice().\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)\n list[i] = list[k];\n list.pop();\n}\n\nfunction arrayClone(arr, i) {\n var copy = new Array(i);\n while (i--)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n","\nvar inherits;\nif (typeof Object.create === 'function'){\n inherits = function inherits(ctor, superCtor) {\n // implementation from standard node.js 'util' module\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n inherits = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\nexport default inherits;\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.\nimport process from 'process';\nvar formatRegExp = /%[sdj%]/g;\nexport function format(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexport function deprecate(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function() {\n return deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexport function debuglog(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = 0;\n debugs[set] = function() {\n var msg = format.apply(null, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nexport function inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n _extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexport function isArray(ar) {\n return Array.isArray(ar);\n}\n\nexport function isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nexport function isNull(arg) {\n return arg === null;\n}\n\nexport function isNullOrUndefined(arg) {\n return arg == null;\n}\n\nexport function isNumber(arg) {\n return typeof arg === 'number';\n}\n\nexport function isString(arg) {\n return typeof arg === 'string';\n}\n\nexport function isSymbol(arg) {\n return typeof arg === 'symbol';\n}\n\nexport function isUndefined(arg) {\n return arg === void 0;\n}\n\nexport function isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\n\nexport function isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nexport function isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\n\nexport function isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\n\nexport function isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexport function isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\n\nexport function isBuffer(maybeBuf) {\n return Buffer.isBuffer(maybeBuf);\n}\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexport function log() {\n console.log('%s - %s', timestamp(), format.apply(null, arguments));\n}\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nimport inherits from './inherits';\nexport {inherits}\n\nexport function _extend(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nexport default {\n inherits: inherits,\n _extend: _extend,\n log: log,\n isBuffer: isBuffer,\n isPrimitive: isPrimitive,\n isFunction: isFunction,\n isError: isError,\n isDate: isDate,\n isObject: isObject,\n isRegExp: isRegExp,\n isUndefined: isUndefined,\n isSymbol: isSymbol,\n isString: isString,\n isNumber: isNumber,\n isNullOrUndefined: isNullOrUndefined,\n isNull: isNull,\n isBoolean: isBoolean,\n isArray: isArray,\n inspect: inspect,\n deprecate: deprecate,\n format: format,\n debuglog: debuglog\n}\n","import {Buffer} from 'buffer';\n\nexport default BufferList;\n\nfunction BufferList() {\n this.head = null;\n this.tail = null;\n this.length = 0;\n}\n\nBufferList.prototype.push = function (v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n};\n\nBufferList.prototype.unshift = function (v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n};\n\nBufferList.prototype.shift = function () {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n};\n\nBufferList.prototype.clear = function () {\n this.head = this.tail = null;\n this.length = 0;\n};\n\nBufferList.prototype.join = function (s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n};\n\nBufferList.prototype.concat = function (n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n p.data.copy(ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\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\nimport {Buffer} from 'buffer';\nvar isBufferEncoding = Buffer.isEncoding\n || function(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': return true;\n default: return false;\n }\n }\n\n\nfunction assertEncoding(encoding) {\n if (encoding && !isBufferEncoding(encoding)) {\n throw new Error('Unknown encoding: ' + encoding);\n }\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. CESU-8 is handled as part of the UTF-8 encoding.\n//\n// @TODO Handling all encodings inside a single object makes it very difficult\n// to reason about this code, so it should be split up in the future.\n// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code\n// points as used by CESU-8.\nexport function StringDecoder(encoding) {\n this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');\n assertEncoding(encoding);\n switch (this.encoding) {\n case 'utf8':\n // CESU-8 represents each of Surrogate Pair by 3-bytes\n this.surrogateSize = 3;\n break;\n case 'ucs2':\n case 'utf16le':\n // UTF-16 represents each of Surrogate Pair by 2-bytes\n this.surrogateSize = 2;\n this.detectIncompleteChar = utf16DetectIncompleteChar;\n break;\n case 'base64':\n // Base-64 stores 3 bytes in 4 chars, and pads the remainder.\n this.surrogateSize = 3;\n this.detectIncompleteChar = base64DetectIncompleteChar;\n break;\n default:\n this.write = passThroughWrite;\n return;\n }\n\n // Enough space to store all bytes of a single character. UTF-8 needs 4\n // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).\n this.charBuffer = new Buffer(6);\n // Number of bytes received for the current incomplete multi-byte character.\n this.charReceived = 0;\n // Number of bytes expected for the current incomplete multi-byte character.\n this.charLength = 0;\n};\n\n\n// write decodes the given buffer and returns it as JS string that is\n// guaranteed to not contain any partial multi-byte characters. Any partial\n// character found at the end of the buffer is buffered up, and will be\n// returned when calling write again with the remaining bytes.\n//\n// Note: Converting a Buffer containing an orphan surrogate to a String\n// currently works, but converting a String to a Buffer (via `new Buffer`, or\n// Buffer#write) will replace incomplete surrogates with the unicode\n// replacement character. See https://codereview.chromium.org/121173009/ .\nStringDecoder.prototype.write = function(buffer) {\n var charStr = '';\n // if our last write ended with an incomplete multibyte character\n while (this.charLength) {\n // determine how many remaining bytes this buffer has to offer for this char\n var available = (buffer.length >= this.charLength - this.charReceived) ?\n this.charLength - this.charReceived :\n buffer.length;\n\n // add the new bytes to the char buffer\n buffer.copy(this.charBuffer, this.charReceived, 0, available);\n this.charReceived += available;\n\n if (this.charReceived < this.charLength) {\n // still not enough chars in this buffer? wait for more ...\n return '';\n }\n\n // remove bytes belonging to the current character from the buffer\n buffer = buffer.slice(available, buffer.length);\n\n // get the character that was split\n charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);\n\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n var charCode = charStr.charCodeAt(charStr.length - 1);\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n this.charLength += this.surrogateSize;\n charStr = '';\n continue;\n }\n this.charReceived = this.charLength = 0;\n\n // if there are no more bytes in this buffer, just emit our char\n if (buffer.length === 0) {\n return charStr;\n }\n break;\n }\n\n // determine and set charLength / charReceived\n this.detectIncompleteChar(buffer);\n\n var end = buffer.length;\n if (this.charLength) {\n // buffer the incomplete character bytes we got\n buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);\n end -= this.charReceived;\n }\n\n charStr += buffer.toString(this.encoding, 0, end);\n\n var end = charStr.length - 1;\n var charCode = charStr.charCodeAt(end);\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n var size = this.surrogateSize;\n this.charLength += size;\n this.charReceived += size;\n this.charBuffer.copy(this.charBuffer, size, 0, size);\n buffer.copy(this.charBuffer, 0, 0, size);\n return charStr.substring(0, end);\n }\n\n // or just emit the charStr\n return charStr;\n};\n\n// detectIncompleteChar determines if there is an incomplete UTF-8 character at\n// the end of the given buffer. If so, it sets this.charLength to the byte\n// length that character, and sets this.charReceived to the number of bytes\n// that are available for this character.\nStringDecoder.prototype.detectIncompleteChar = function(buffer) {\n // determine how many bytes we have to check at the end of this buffer\n var i = (buffer.length >= 3) ? 3 : buffer.length;\n\n // Figure out if one of the last i bytes of our buffer announces an\n // incomplete char.\n for (; i > 0; i--) {\n var c = buffer[buffer.length - i];\n\n // See http://en.wikipedia.org/wiki/UTF-8#Description\n\n // 110XXXXX\n if (i == 1 && c >> 5 == 0x06) {\n this.charLength = 2;\n break;\n }\n\n // 1110XXXX\n if (i <= 2 && c >> 4 == 0x0E) {\n this.charLength = 3;\n break;\n }\n\n // 11110XXX\n if (i <= 3 && c >> 3 == 0x1E) {\n this.charLength = 4;\n break;\n }\n }\n this.charReceived = i;\n};\n\nStringDecoder.prototype.end = function(buffer) {\n var res = '';\n if (buffer && buffer.length)\n res = this.write(buffer);\n\n if (this.charReceived) {\n var cr = this.charReceived;\n var buf = this.charBuffer;\n var enc = this.encoding;\n res += buf.slice(0, cr).toString(enc);\n }\n\n return res;\n};\n\nfunction passThroughWrite(buffer) {\n return buffer.toString(this.encoding);\n}\n\nfunction utf16DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 2;\n this.charLength = this.charReceived ? 2 : 0;\n}\n\nfunction base64DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 3;\n this.charLength = this.charReceived ? 3 : 0;\n}\n","'use strict';\n\n\nReadable.ReadableState = ReadableState;\nimport EventEmitter from 'events';\nimport {inherits, debuglog} from 'util';\nimport BufferList from './buffer-list';\nimport {StringDecoder} from 'string_decoder';\nimport {Duplex} from './duplex';\nimport {nextTick} from 'process';\n\nvar debug = debuglog('stream');\ninherits(Readable, EventEmitter);\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') {\n return emitter.prependListener(event, fn);\n } else {\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n}\nfunction listenerCount (emitter, type) {\n return emitter.listeners(type).length;\n}\nfunction ReadableState(options, stream) {\n\n options = options || {};\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // when piping, we only care about 'readable' events that happen\n // after read()ing all the bytes and not getting any pushback.\n this.ranOut = false;\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nexport default Readable;\nexport function Readable(options) {\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options && typeof options.read === 'function') this._read = options.read;\n\n EventEmitter.call(this);\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n\n if (!state.objectMode && typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n }\n\n return readableAddChunk(this, state, chunk, encoding, false);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n var state = this._readableState;\n return readableAddChunk(this, state, chunk, '', true);\n};\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\nfunction readableAddChunk(stream, state, chunk, encoding, addToFront) {\n var er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (state.ended && !addToFront) {\n var e = new Error('stream.push() after EOF');\n stream.emit('error', e);\n } else if (state.endEmitted && addToFront) {\n var _e = new Error('stream.unshift() after end event');\n stream.emit('error', _e);\n } else {\n var skipAdd;\n if (state.decoder && !addToFront && !encoding) {\n chunk = state.decoder.write(chunk);\n skipAdd = !state.objectMode && chunk.length === 0;\n }\n\n if (!addToFront) state.reading = false;\n\n // Don't add to the buffer if we've decoded to an empty string chunk and\n // we're not in object mode\n if (!skipAdd) {\n // if we want the data now, just emit it.\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n }\n\n maybeReadMore(stream, state);\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n\n return needMoreData(state);\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction chunkInvalid(state, chunk) {\n var er = null;\n if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false);\n\n var endFn = doEnd ? onend : cleanup;\n if (state.endEmitted) nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable) {\n debug('onunpipe');\n if (readable === src) {\n cleanup();\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', cleanup);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (listenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && src.listeners('data').length) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var _i = 0; _i < len; _i++) {\n dests[_i].emit('unpipe', this);\n }return this;\n }\n\n // try to find the right one.\n var i = indexOf(state.pipes, dest);\n if (i === -1) return this;\n\n state.pipes.splice(i, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = EventEmitter.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this, state);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var state = this._readableState;\n var paused = false;\n\n var self = this;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) self.push(chunk);\n }\n\n self.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = self.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n var events = ['error', 'close', 'destroy', 'pause', 'resume'];\n forEach(events, function (ev) {\n stream.on(ev, self.emit.bind(self, ev));\n });\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n self._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return self;\n};\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction forEach(xs, f) {\n for (var i = 0, l = xs.length; i < l; i++) {\n f(xs[i], i);\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}\n","// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n\nimport {inherits, deprecate} from 'util';\nimport {Buffer} from 'buffer';\nWritable.WritableState = WritableState;\nimport {EventEmitter} from 'events';\nimport {Duplex} from './duplex';\nimport {nextTick} from 'process';\ninherits(Writable, EventEmitter);\n\nfunction nop() {}\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\nfunction WritableState(options, stream) {\n Object.defineProperty(this, 'buffer', {\n get: deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')\n });\n options = options || {};\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function writableStateGetBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\nexport default Writable;\nexport function Writable(options) {\n\n // Writable ctor is applied to Duplexes, though they're not\n // instanceof Writable, they're instanceof Readable.\n if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n }\n\n EventEmitter.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n nextTick(cb, er);\n}\n\n// If we get something that is not a buffer, string, null, or undefined,\n// and we're not in objectMode, then that's an error.\n// Otherwise stream chunks are all considered to be of length=1, and the\n// watermarks determine how many objects to keep in the buffer, rather than\n// how many bytes or characters.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n // Always throw error if a null is written\n // if we are not in object mode then throw\n // if it is not a buffer, string, or undefined.\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, cb) {\n chunk = decodeChunk(state, chunk, encoding);\n\n if (Buffer.isBuffer(chunk)) encoding = 'buffer';\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) nextTick(cb, er);else cb(er);\n\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n nextTick(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n while (entry) {\n buffer[count] = entry;\n entry = entry.next;\n count += 1;\n }\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequestCount = 0;\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished) {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n if (state.pendingcb === 0) {\n prefinish(stream, state);\n state.finished = true;\n stream.emit('finish');\n } else {\n prefinish(stream, state);\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function (err) {\n var entry = _this.entry;\n _this.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = _this;\n } else {\n state.corkedRequestsFree = _this;\n }\n };\n}\n","\nimport {inherits} from 'util';\nimport {nextTick} from 'process';\nimport {Readable} from './readable';\nimport {Writable} from './writable';\n\n\ninherits(Duplex, Readable);\n\nvar keys = Object.keys(Writable.prototype);\nfor (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n}\nexport default Duplex;\nexport function Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n","// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n\nimport {Duplex} from './duplex';\n\n\nimport {inherits} from 'util';\ninherits(Transform, Duplex);\n\nfunction TransformState(stream) {\n this.afterTransform = function (er, data) {\n return afterTransform(stream, er, data);\n };\n\n this.needTransform = false;\n this.transforming = false;\n this.writecb = null;\n this.writechunk = null;\n this.writeencoding = null;\n}\n\nfunction afterTransform(stream, er, data) {\n var ts = stream._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data !== null && data !== undefined) stream.push(data);\n\n cb(er);\n\n var rs = stream._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n stream._read(rs.highWaterMark);\n }\n}\nexport default Transform;\nexport function Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = new TransformState(this);\n\n // when the writable side finishes, then flush out anything remaining.\n var stream = this;\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n this.once('prefinish', function () {\n if (typeof this._flush === 'function') this._flush(function (er) {\n done(stream, er);\n });else done(stream);\n });\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('Not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nfunction done(stream, er) {\n if (er) return stream.emit('error', er);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n var ws = stream._writableState;\n var ts = stream._transformState;\n\n if (ws.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (ts.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}\n","\nimport {Transform} from './transform';\n\nimport {inherits} from 'util';\ninherits(PassThrough, Transform);\nexport default PassThrough;\nexport function PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};\n","import EE from 'events';\nimport {inherits} from 'util';\n\nimport {Duplex} from './readable-stream/duplex.js';\nimport {Readable} from './readable-stream/readable.js';\nimport {Writable} from './readable-stream/writable.js';\nimport {Transform} from './readable-stream/transform.js';\nimport {PassThrough} from './readable-stream/passthrough.js';\ninherits(Stream, EE);\nStream.Readable = Readable;\nStream.Writable = Writable;\nStream.Duplex = Duplex;\nStream.Transform = Transform;\nStream.PassThrough = PassThrough;\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\nexport default Stream;\nexport {Readable,Writable,Duplex,Transform,PassThrough,Stream}\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","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","module.exports = require('stream');\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","\n/**\n * For Node.js, simply re-export the core `util.deprecate` function.\n */\n\nmodule.exports = require('util').deprecate;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// 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}","// 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 pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\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\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","var Stream = require('stream');\nif (process.env.READABLE_STREAM === 'disable' && Stream) {\n module.exports = Stream;\n exports = module.exports = Stream.Readable;\n exports.Readable = Stream.Readable;\n exports.Writable = Stream.Writable;\n exports.Duplex = Stream.Duplex;\n exports.Transform = Stream.Transform;\n exports.PassThrough = Stream.PassThrough;\n exports.Stream = Stream;\n} else {\n exports = module.exports = require('./lib/_stream_readable.js');\n exports.Stream = Stream || exports;\n exports.Readable = exports;\n exports.Writable = require('./lib/_stream_writable.js');\n exports.Duplex = require('./lib/_stream_duplex.js');\n exports.Transform = require('./lib/_stream_transform.js');\n exports.PassThrough = require('./lib/_stream_passthrough.js');\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\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","\"use strict\";\n\nexports.base64 = true;\nexports.array = true;\nexports.string = true;\nexports.arraybuffer = typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\";\nexports.nodebuffer = typeof Buffer !== \"undefined\";\n// contains true if JSZip can read/generate Uint8Array, false otherwise.\nexports.uint8array = typeof Uint8Array !== \"undefined\";\n\nif (typeof ArrayBuffer === \"undefined\") {\n exports.blob = false;\n}\nelse {\n var buffer = new ArrayBuffer(0);\n try {\n exports.blob = new Blob([buffer], {\n type: \"application/zip\"\n }).size === 0;\n }\n catch (e) {\n try {\n var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder;\n var builder = new Builder();\n builder.append(buffer);\n exports.blob = builder.getBlob(\"application/zip\").size === 0;\n }\n catch (e) {\n exports.blob = false;\n }\n }\n}\n\ntry {\n exports.nodestream = !!require(\"readable-stream\").Readable;\n} catch(e) {\n exports.nodestream = false;\n}\n","\"use strict\";\nvar utils = require(\"./utils\");\nvar support = require(\"./support\");\n// private property\nvar _keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\n\n// public method for encoding\nexports.encode = function(input) {\n var output = [];\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\n var i = 0, len = input.length, remainingBytes = len;\n\n var isArray = utils.getTypeOf(input) !== \"string\";\n while (i < input.length) {\n remainingBytes = len - i;\n\n if (!isArray) {\n chr1 = input.charCodeAt(i++);\n chr2 = i < len ? input.charCodeAt(i++) : 0;\n chr3 = i < len ? input.charCodeAt(i++) : 0;\n } else {\n chr1 = input[i++];\n chr2 = i < len ? input[i++] : 0;\n chr3 = i < len ? input[i++] : 0;\n }\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n enc3 = remainingBytes > 1 ? (((chr2 & 15) << 2) | (chr3 >> 6)) : 64;\n enc4 = remainingBytes > 2 ? (chr3 & 63) : 64;\n\n output.push(_keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4));\n\n }\n\n return output.join(\"\");\n};\n\n// public method for decoding\nexports.decode = function(input) {\n var chr1, chr2, chr3;\n var enc1, enc2, enc3, enc4;\n var i = 0, resultIndex = 0;\n\n var dataUrlPrefix = \"data:\";\n\n if (input.substr(0, dataUrlPrefix.length) === dataUrlPrefix) {\n // This is a common error: people give a data url\n // (data:image/png;base64,iVBOR...) with a {base64: true} and\n // wonders why things don't work.\n // We can detect that the string input looks like a data url but we\n // *can't* be sure it is one: removing everything up to the comma would\n // be too dangerous.\n throw new Error(\"Invalid base64 input, it looks like a data url.\");\n }\n\n input = input.replace(/[^A-Za-z0-9+/=]/g, \"\");\n\n var totalLength = input.length * 3 / 4;\n if(input.charAt(input.length - 1) === _keyStr.charAt(64)) {\n totalLength--;\n }\n if(input.charAt(input.length - 2) === _keyStr.charAt(64)) {\n totalLength--;\n }\n if (totalLength % 1 !== 0) {\n // totalLength is not an integer, the length does not match a valid\n // base64 content. That can happen if:\n // - the input is not a base64 content\n // - the input is *almost* a base64 content, with a extra chars at the\n // beginning or at the end\n // - the input uses a base64 variant (base64url for example)\n throw new Error(\"Invalid base64 input, bad content length.\");\n }\n var output;\n if (support.uint8array) {\n output = new Uint8Array(totalLength|0);\n } else {\n output = new Array(totalLength|0);\n }\n\n while (i < input.length) {\n\n enc1 = _keyStr.indexOf(input.charAt(i++));\n enc2 = _keyStr.indexOf(input.charAt(i++));\n enc3 = _keyStr.indexOf(input.charAt(i++));\n enc4 = _keyStr.indexOf(input.charAt(i++));\n\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n\n output[resultIndex++] = chr1;\n\n if (enc3 !== 64) {\n output[resultIndex++] = chr2;\n }\n if (enc4 !== 64) {\n output[resultIndex++] = chr3;\n }\n\n }\n\n return output;\n};\n","\"use strict\";\n\nmodule.exports = {\n /**\n * True if this is running in Nodejs, will be undefined in a browser.\n * In a browser, browserify won't include this file and the whole module\n * will be resolved an empty object.\n */\n isNode : typeof Buffer !== \"undefined\",\n /**\n * Create a new nodejs Buffer from an existing content.\n * @param {Object} data the data to pass to the constructor.\n * @param {String} encoding the encoding to use.\n * @return {Buffer} a new Buffer.\n */\n newBufferFrom: function(data, encoding) {\n if (Buffer.from && Buffer.from !== Uint8Array.from) {\n return Buffer.from(data, encoding);\n } else {\n if (typeof data === \"number\") {\n // Safeguard for old Node.js versions. On newer versions,\n // Buffer.from(number) / Buffer(number, encoding) already throw.\n throw new Error(\"The \\\"data\\\" argument must not be a number\");\n }\n return new Buffer(data, encoding);\n }\n },\n /**\n * Create a new nodejs Buffer with the specified size.\n * @param {Integer} size the size of the buffer.\n * @return {Buffer} a new Buffer.\n */\n allocBuffer: function (size) {\n if (Buffer.alloc) {\n return Buffer.alloc(size);\n } else {\n var buf = new Buffer(size);\n buf.fill(0);\n return buf;\n }\n },\n /**\n * Find out if an object is a Buffer.\n * @param {Object} b the object to test.\n * @return {Boolean} true if the object is a Buffer, false otherwise.\n */\n isBuffer : function(b){\n return Buffer.isBuffer(b);\n },\n\n isStream : function (obj) {\n return obj &&\n typeof obj.on === \"function\" &&\n typeof obj.pause === \"function\" &&\n typeof obj.resume === \"function\";\n }\n};\n","\"use strict\";\n\n// load the global object first:\n// - it should be better integrated in the system (unhandledRejection in node)\n// - the environment may have a custom Promise implementation (see zone.js)\nvar ES6Promise = null;\nif (typeof Promise !== \"undefined\") {\n ES6Promise = Promise;\n} else {\n ES6Promise = require(\"lie\");\n}\n\n/**\n * Let the user use/change some implementations.\n */\nmodule.exports = {\n Promise: ES6Promise\n};\n","'use strict';\nvar immediate = require('immediate');\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n/* istanbul ignore else */\nif (!process.browser) {\n // in which we actually take advantage of JS scoping\n var UNHANDLED = ['UNHANDLED'];\n}\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n /* istanbul ignore else */\n if (!process.browser) {\n this.handled = UNHANDLED;\n }\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype.finally = function (callback) {\n if (typeof callback !== 'function') {\n return this;\n }\n var p = this.constructor;\n return this.then(resolve, reject);\n\n function resolve(value) {\n function yes () {\n return value;\n }\n return p.resolve(callback()).then(yes);\n }\n function reject(reason) {\n function no () {\n throw reason;\n }\n return p.resolve(callback()).then(no);\n }\n};\nPromise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n /* istanbul ignore else */\n if (!process.browser) {\n if (this.handled === UNHANDLED) {\n this.handled = null;\n }\n }\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callRejected = function (value) {\n handlers.reject(this.promise, value);\n};\nQueueItem.prototype.otherCallRejected = function (value) {\n unwrap(this.promise, this.onRejected, value);\n};\n\nfunction unwrap(promise, func, value) {\n immediate(function () {\n var returnValue;\n try {\n returnValue = func(value);\n } catch (e) {\n return handlers.reject(promise, e);\n }\n if (returnValue === promise) {\n handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\n } else {\n handlers.resolve(promise, returnValue);\n }\n });\n}\n\nhandlers.resolve = function (self, value) {\n var result = tryCatch(getThen, value);\n if (result.status === 'error') {\n return handlers.reject(self, result.value);\n }\n var thenable = result.value;\n\n if (thenable) {\n safelyResolveThenable(self, thenable);\n } else {\n self.state = FULFILLED;\n self.outcome = value;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callFulfilled(value);\n }\n }\n return self;\n};\nhandlers.reject = function (self, error) {\n self.state = REJECTED;\n self.outcome = error;\n /* istanbul ignore else */\n if (!process.browser) {\n if (self.handled === UNHANDLED) {\n immediate(function () {\n if (self.handled === UNHANDLED) {\n process.emit('unhandledRejection', error, self);\n }\n });\n }\n }\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callRejected(error);\n }\n return self;\n};\n\nfunction getThen(obj) {\n // Make sure we only access the accessor once as required by the spec\n var then = obj && obj.then;\n if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {\n return function appyThen() {\n then.apply(obj, arguments);\n };\n }\n}\n\nfunction safelyResolveThenable(self, thenable) {\n // Either fulfill, reject or reject with error\n var called = false;\n function onError(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.reject(self, value);\n }\n\n function onSuccess(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.resolve(self, value);\n }\n\n function tryToUnwrap() {\n thenable(onSuccess, onError);\n }\n\n var result = tryCatch(tryToUnwrap);\n if (result.status === 'error') {\n onError(result.value);\n }\n}\n\nfunction tryCatch(func, value) {\n var out = {};\n try {\n out.value = func(value);\n out.status = 'success';\n } catch (e) {\n out.status = 'error';\n out.value = e;\n }\n return out;\n}\n\nPromise.resolve = resolve;\nfunction resolve(value) {\n if (value instanceof this) {\n return value;\n }\n return handlers.resolve(new this(INTERNAL), value);\n}\n\nPromise.reject = reject;\nfunction reject(reason) {\n var promise = new this(INTERNAL);\n return handlers.reject(promise, reason);\n}\n\nPromise.all = all;\nfunction all(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var values = new Array(len);\n var resolved = 0;\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n allResolver(iterable[i], i);\n }\n return promise;\n function allResolver(value, i) {\n self.resolve(value).then(resolveFromAll, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n function resolveFromAll(outValue) {\n values[i] = outValue;\n if (++resolved === len && !called) {\n called = true;\n handlers.resolve(promise, values);\n }\n }\n }\n}\n\nPromise.race = race;\nfunction race(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n resolver(iterable[i]);\n }\n return promise;\n function resolver(value) {\n self.resolve(value).then(function (response) {\n if (!called) {\n called = true;\n handlers.resolve(promise, response);\n }\n }, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n }\n}\n","'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\nif (process.browser) {\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a ', pos);\n children = [S.slice(start, pos)];\n pos += 9;\n } else if (tagName == \"style\") {\n var start = pos + 1;\n pos = S.indexOf('', pos);\n children = [S.slice(start, pos)];\n pos += 8;\n } else if (NoChildNodes.indexOf(tagName) === -1) {\n pos++;\n children = parseChildren(tagName);\n } else {\n pos++;\n }\n } else {\n pos++;\n }\n return {\n tagName,\n attributes,\n children,\n };\n }\n\n /**\n * is parsing a string, that starts with a char and with the same usually ' or \"\n */\n\n function parseString() {\n var startChar = S[pos];\n var startpos = pos + 1;\n pos = S.indexOf(startChar, startpos);\n return S.slice(startpos, pos);\n }\n\n /**\n *\n */\n function findElements() {\n var r = new RegExp('\\\\s' + options.attrName + '\\\\s*=[\\'\"]' + options.attrValue + '[\\'\"]').exec(S);\n if (r) {\n return r.index;\n } else {\n return -1;\n }\n }\n\n var out = null;\n if (options.attrValue !== undefined) {\n options.attrName = options.attrName || 'id';\n var out = [];\n\n while ((pos = findElements()) !== -1) {\n pos = S.lastIndexOf('<', pos);\n if (pos !== -1) {\n out.push(parseNode());\n }\n S = S.substr(pos);\n pos = 0;\n }\n } else if (options.parseNode) {\n out = parseNode();\n } else {\n out = parseChildren('');\n }\n\n if (options.filter) {\n out = filter(out, options.filter);\n }\n\n if (options.simplify) {\n return simplify(Array.isArray(out) ? out : [out]);\n }\n\n if (options.setPos) {\n out.pos = pos;\n }\n\n return out;\n}\n\n/**\n * transform the DomObject to an object that is like the object of PHP`s simple_xmp_load_*() methods.\n * this format helps you to write that is more likely to keep your program working, even if there a small changes in the XML schema.\n * be aware, that it is not possible to reproduce the original xml from a simplified version, because the order of elements is not saved.\n * therefore your program will be more flexible and easier to read.\n *\n * @param {tNode[]} children the childrenList\n */\nfunction simplify(children) {\n var out = {};\n if (!children.length) {\n return '';\n }\n\n if (children.length === 1 && typeof children[0] == 'string') {\n return children[0];\n }\n // map each object\n children.forEach(function(child) {\n if (typeof child !== 'object') {\n return;\n }\n if (!out[child.tagName])\n out[child.tagName] = [];\n var kids = simplify(child.children);\n out[child.tagName].push(kids);\n if (Object.keys(child.attributes).length && typeof kids !== 'string') {\n kids._attributes = child.attributes;\n }\n });\n\n for (var i in out) {\n if (out[i].length == 1) {\n out[i] = out[i][0];\n }\n }\n\n return out;\n}\n\n/**\n * similar to simplify, but lost less\n *\n * @param {tNode[]} children the childrenList\n */\nfunction simplifyLostLess(children, parentAttributes = {}) {\n var out = {};\n if (!children.length) {\n return out;\n }\n\n if (children.length === 1 && typeof children[0] == 'string') {\n return Object.keys(parentAttributes).length ? {\n _attributes: parentAttributes,\n value: children[0]\n } : children[0];\n }\n // map each object\n children.forEach(function(child) {\n if (typeof child !== 'object') {\n return;\n }\n if (!out[child.tagName])\n out[child.tagName] = [];\n var kids = simplifyLostLess(child.children || [], child.attributes);\n out[child.tagName].push(kids);\n if (Object.keys(child.attributes).length) {\n kids._attributes = child.attributes;\n }\n });\n\n return out;\n}\n/**\n * behaves the same way as Array.filter, if the filter method return true, the element is in the resultList\n * @params children{Array} the children of a node\n * @param f{function} the filter method\n */\nfunction filter(children, f, dept = 0, path = '') {\n var out = [];\n children.forEach(function(child, i) {\n if (typeof(child) === 'object' && f(child, i, dept, path)) out.push(child);\n if (child.children) {\n var kids = filter(child.children, f, dept + 1, (path ? path + '.' : '') + i + '.' + child.tagName);\n out = out.concat(kids);\n }\n });\n return out;\n}\n/**\n * stringify a previously parsed string object.\n * this is useful,\n * 1. to remove whitespace\n * 2. to recreate xml data, with some changed data.\n * @param {tNode} O the object to Stringify\n */\nfunction stringify(O) {\n var out = '';\n\n function writeChildren(O) {\n if (O) {\n for (var i = 0; i < O.length; i++) {\n if (typeof O[i] == 'string') {\n out += O[i].trim();\n } else {\n writeNode(O[i]);\n }\n }\n }\n }\n\n function writeNode(N) {\n out += \"<\" + N.tagName;\n for (var i in N.attributes) {\n if (N.attributes[i] === null) {\n out += ' ' + i;\n } else if (N.attributes[i].indexOf('\"') === -1) {\n out += ' ' + i + '=\"' + N.attributes[i].trim() + '\"';\n } else {\n out += ' ' + i + \"='\" + N.attributes[i].trim() + \"'\";\n }\n }\n if (N.tagName[0] === '?') {\n out += '?>';\n return;\n }\n out += '>';\n writeChildren(N.children);\n out += '';\n }\n writeChildren(O);\n\n return out;\n}\n\n/**\n * use this method to read the text content, of some node.\n * It is great if you have mixed content like:\n * this text has some big text and a link\n * @return {string}\n */\nfunction toContentString(tDom) {\n if (Array.isArray(tDom)) {\n var out = '';\n tDom.forEach(function(e) {\n out += ' ' + toContentString(e);\n out = out.trim();\n });\n return out;\n } else if (typeof tDom === 'object') {\n return toContentString(tDom.children)\n } else {\n return ' ' + tDom;\n }\n}\nfunction getElementById(S, id, simplified) {\n var out = parse(S, {\n attrValue: id\n });\n return simplified ? tXml.simplify(out) : out[0];\n}\nfunction getElementsByClassName(S, classname, simplified) {\n const out = parse(S, {\n attrName: 'class',\n attrValue: '[a-zA-Z0-9- ]*' + classname + '[a-zA-Z0-9- ]*'\n });\n return simplified ? tXml.simplify(out) : out;\n}\n\nexport { filter, getElementById, getElementsByClassName, parse, simplify, simplifyLostLess, stringify, toContentString };\n","import * as txml from 'txml/dist/txml.mjs'\r\n\r\nlet cust_attr_order = 0\r\n\r\nexport function simplifyLostLess(children, parentAttributes = {}) {\r\n const out = {}\r\n if (!children.length) return out\r\n\r\n if (children.length === 1 && typeof children[0] === 'string') {\r\n return Object.keys(parentAttributes).length ? {\r\n attrs: { order: cust_attr_order++, ...parentAttributes },\r\n value: children[0],\r\n } : children[0]\r\n }\r\n for (const child of children) {\r\n if (typeof child !== 'object') return\r\n if (child.tagName === '?xml') continue\r\n\r\n if (!out[child.tagName]) out[child.tagName] = []\r\n\r\n const kids = simplifyLostLess(child.children || [], child.attributes)\r\n out[child.tagName].push(kids)\r\n\r\n if (Object.keys(child.attributes).length) {\r\n kids.attrs = { order: cust_attr_order++, ...child.attributes }\r\n }\r\n }\r\n for (const child in out) {\r\n if (out[child].length === 1) out[child] = out[child][0]\r\n }\r\n\r\n return out\r\n}\r\n\r\nexport async function readXmlFile(zip, filename) {\r\n try {\r\n const data = await zip.file(filename).async('string')\r\n return simplifyLostLess(txml.parse(data))\r\n }\r\n catch {\r\n return null\r\n }\r\n}","// This file is autogenerated. It's used to publish ESM to npm.\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\nvar trimLeft = /^\\s+/;\nvar trimRight = /\\s+$/;\nfunction tinycolor(color, opts) {\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 var rgb = inputToRGB(color);\n this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, 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 = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n this._ok = rgb.ok;\n}\ntinycolor.prototype = {\n isDark: function isDark() {\n return this.getBrightness() < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n isValid: function isValid() {\n return this._ok;\n },\n getOriginalInput: function getOriginalInput() {\n return this._originalInput;\n },\n getFormat: function getFormat() {\n return this._format;\n },\n getAlpha: function getAlpha() {\n return this._a;\n },\n getBrightness: function getBrightness() {\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 getLuminance() {\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 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 setAlpha(value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function toHsv() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this._a\n };\n },\n toHsvString: function toHsvString() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function toHsl() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this._a\n };\n },\n toHslString: function toHslString() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function toHex(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function toHexString(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function toHex8(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function toHex8String(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function toRgb() {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a\n };\n },\n toRgbString: function toRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function toPercentageRgb() {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function toPercentageRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function toName() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function toFilter(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 if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function toString(format) {\n var formatSet = !!format;\n format = format || this._format;\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 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 return formattedString || this.toHexString();\n },\n clone: function clone() {\n return tinycolor(this.toString());\n },\n _applyModification: function _applyModification(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 lighten() {\n return this._applyModification(_lighten, arguments);\n },\n brighten: function brighten() {\n return this._applyModification(_brighten, arguments);\n },\n darken: function darken() {\n return this._applyModification(_darken, arguments);\n },\n desaturate: function desaturate() {\n return this._applyModification(_desaturate, arguments);\n },\n saturate: function saturate() {\n return this._applyModification(_saturate, arguments);\n },\n greyscale: function greyscale() {\n return this._applyModification(_greyscale, arguments);\n },\n spin: function spin() {\n return this._applyModification(_spin, arguments);\n },\n _applyCombination: function _applyCombination(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function analogous() {\n return this._applyCombination(_analogous, arguments);\n },\n complement: function complement() {\n return this._applyCombination(_complement, arguments);\n },\n monochromatic: function monochromatic() {\n return this._applyCombination(_monochromatic, arguments);\n },\n splitcomplement: function splitcomplement() {\n return this._applyCombination(_splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function triad() {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function tetrad() {\n return this._applyCombination(polyad, [4]);\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 } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\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 var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\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 if (typeof color == \"string\") {\n color = stringInputToObject(color);\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 } 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 } 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 if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a\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 r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n if (max == min) {\n h = s = 0; // achromatic\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:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l\n };\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 h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\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 if (s === 0) {\n r = g = b = l; // achromatic\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 return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\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 r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n v: v\n };\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]\nfunction hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\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 return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\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 var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\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 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 var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\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 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 var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\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};\ntinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random()\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}\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}\nfunction _greyscale(color) {\n return tinycolor(color).desaturate(100);\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}\nfunction _brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\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}\nfunction polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({\n h: (hsl.h + i * step) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n return result;\n}\nfunction _splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [tinycolor(color), tinycolor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), tinycolor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n}\nfunction _analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\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}\nfunction _monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\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 var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\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 return tinycolor(rgba);\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 out = false;\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// `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 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 if (tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size\n }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\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// 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 if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\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 var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(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 Math.min(1, Math.max(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 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}\nvar matchers = function () {\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 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 color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: \"name\"\n };\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 {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n if (match = matchers.rgba.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsl.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n if (match = matchers.hsla.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsv.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n if (match = matchers.hsva.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\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 return false;\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 || {\n level: \"AA\",\n size: \"small\"\n };\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 {\n level: level,\n size: size\n };\n}\n\nexport { tinycolor as default };\n","export function base64ArrayBuffer(arrayBuffer) {\r\n const encodings = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\r\n const bytes = new Uint8Array(arrayBuffer)\r\n const byteLength = bytes.byteLength\r\n const byteRemainder = byteLength % 3\r\n const mainLength = byteLength - byteRemainder\r\n \r\n let base64 = ''\r\n let a, b, c, d\r\n let chunk\r\n\r\n for (let i = 0; i < mainLength; i = i + 3) {\r\n chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2]\r\n a = (chunk & 16515072) >> 18\r\n b = (chunk & 258048) >> 12\r\n c = (chunk & 4032) >> 6\r\n d = chunk & 63\r\n base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d]\r\n }\r\n\r\n if (byteRemainder === 1) {\r\n chunk = bytes[mainLength]\r\n a = (chunk & 252) >> 2\r\n b = (chunk & 3) << 4\r\n base64 += encodings[a] + encodings[b] + '=='\r\n } \r\n else if (byteRemainder === 2) {\r\n chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1]\r\n a = (chunk & 64512) >> 10\r\n b = (chunk & 1008) >> 4\r\n c = (chunk & 15) << 2\r\n base64 += encodings[a] + encodings[b] + encodings[c] + '='\r\n }\r\n\r\n return base64\r\n}\r\n\r\nexport function extractFileExtension(filename) {\r\n return filename.substr((~-filename.lastIndexOf('.') >>> 0) + 2)\r\n}\r\n\r\nexport function eachElement(node, func) {\r\n if (!node) return node\r\n\r\n let result = ''\r\n if (node.constructor === Array) {\r\n for (let i = 0; i < node.length; i++) {\r\n result += func(node[i], i)\r\n }\r\n } \r\n else result += func(node, 0)\r\n\r\n return result\r\n}\r\n\r\nexport function getTextByPathList(node, path) {\r\n if (path.constructor !== Array) throw Error('Error of path type! path is not array.')\r\n\r\n if (!node) return node\r\n\r\n for (const key of path) {\r\n node = node[key]\r\n if (!node) return node\r\n }\r\n\r\n return node\r\n}\r\n\r\nexport function angleToDegrees(angle) {\r\n if (!angle) return 0\r\n return Math.round(angle / 60000)\r\n}\r\n\r\nexport function escapeHtml(text) {\r\n const map = {\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n \"'\": ''',\r\n }\r\n return text.replace(/[&<>\"']/g, m => map[m])\r\n}\r\n\r\nexport function getMimeType(imgFileExt) {\r\n let mimeType = ''\r\n switch (imgFileExt.toLowerCase()) {\r\n case 'jpg':\r\n case 'jpeg':\r\n mimeType = 'image/jpeg'\r\n break\r\n case 'png':\r\n mimeType = 'image/png'\r\n break\r\n case 'gif':\r\n mimeType = 'image/gif'\r\n break\r\n case 'emf':\r\n mimeType = 'image/x-emf'\r\n break\r\n case 'wmf':\r\n mimeType = 'image/x-wmf'\r\n break\r\n case 'svg':\r\n mimeType = 'image/svg+xml'\r\n break\r\n case 'mp4':\r\n mimeType = 'video/mp4'\r\n break\r\n case 'webm':\r\n mimeType = 'video/webm'\r\n break\r\n case 'ogg':\r\n mimeType = 'video/ogg'\r\n break\r\n case 'avi':\r\n mimeType = 'video/avi'\r\n break\r\n case 'mpg':\r\n mimeType = 'video/mpg'\r\n break\r\n case 'wmv':\r\n mimeType = 'video/wmv'\r\n break\r\n case 'mp3':\r\n mimeType = 'audio/mpeg'\r\n break\r\n case 'wav':\r\n mimeType = 'audio/wav'\r\n break\r\n case 'tif':\r\n mimeType = 'image/tiff'\r\n break\r\n case 'tiff':\r\n mimeType = 'image/tiff'\r\n break\r\n default:\r\n }\r\n return mimeType\r\n}\r\n\r\nexport function isVideoLink(vdoFile) {\r\n const urlRegex = /^(https?|ftp):\\/\\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+\\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\\/($|[a-zA-Z0-9.,?'\\\\+&%$#=~_-]+))*$/\r\n return urlRegex.test(vdoFile)\r\n}\r\n\r\nexport function toHex(n) {\r\n let hex = n.toString(16)\r\n while (hex.length < 2) {\r\n hex = '0' + hex\r\n }\r\n return hex\r\n}","import { getTextByPathList } from './utils'\r\n\r\nexport function getSchemeColorFromTheme(schemeClr, warpObj, clrMap, phClr) {\r\n let color\r\n let slideLayoutClrOvride\r\n if (clrMap) slideLayoutClrOvride = clrMap\r\n else {\r\n let sldClrMapOvr = getTextByPathList(warpObj['slideContent'], ['p:sld', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) slideLayoutClrOvride = sldClrMapOvr\r\n else {\r\n sldClrMapOvr = getTextByPathList(warpObj['slideLayoutContent'], ['p:sldLayout', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) slideLayoutClrOvride = sldClrMapOvr\r\n else {\r\n slideLayoutClrOvride = getTextByPathList(warpObj['slideMasterContent'], ['p:sldMaster', 'p:clrMap', 'attrs'])\r\n }\r\n }\r\n }\r\n const schmClrName = schemeClr.substr(2)\r\n if (schmClrName === 'phClr' && phClr) color = phClr\r\n else {\r\n if (slideLayoutClrOvride) {\r\n switch (schmClrName) {\r\n case 'tx1':\r\n case 'tx2':\r\n case 'bg1':\r\n case 'bg2':\r\n schemeClr = 'a:' + slideLayoutClrOvride[schmClrName]\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n else {\r\n switch (schemeClr) {\r\n case 'tx1':\r\n schemeClr = 'a:dk1'\r\n break\r\n case 'tx2':\r\n schemeClr = 'a:dk2'\r\n break\r\n case 'bg1':\r\n schemeClr = 'a:lt1'\r\n break\r\n case 'bg2':\r\n schemeClr = 'a:lt2'\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n const refNode = getTextByPathList(warpObj['themeContent'], ['a:theme', 'a:themeElements', 'a:clrScheme', schemeClr])\r\n color = getTextByPathList(refNode, ['a:srgbClr', 'attrs', 'val'])\r\n if (!color && refNode) color = getTextByPathList(refNode, ['a:sysClr', 'attrs', 'lastClr'])\r\n }\r\n return color\r\n}","import tinycolor from 'tinycolor2'\r\nimport { getSchemeColorFromTheme } from './schemeColor'\r\nimport { getTextByPathList } from './utils'\r\n\r\nexport function getBorder(node, elType, warpObj) {\r\n const lineNode = node['p:spPr']['a:ln']\r\n\r\n let borderWidth = parseInt(getTextByPathList(lineNode, ['attrs', 'w'])) / 12700\r\n if (isNaN(borderWidth)) {\r\n if (lineNode) borderWidth = 0\r\n else if (elType !== 'obj') borderWidth = 0\r\n else borderWidth = 1\r\n }\r\n\r\n let borderColor = getTextByPathList(lineNode, ['a:solidFill', 'a:srgbClr', 'attrs', 'val'])\r\n if (!borderColor) {\r\n const schemeClrNode = getTextByPathList(lineNode, ['a:solidFill', 'a:schemeClr'])\r\n const schemeClr = 'a:' + getTextByPathList(schemeClrNode, ['attrs', 'val'])\r\n borderColor = getSchemeColorFromTheme(schemeClr, warpObj)\r\n }\r\n\r\n if (!borderColor) {\r\n const schemeClrNode = getTextByPathList(node, ['p:style', 'a:lnRef', 'a:schemeClr'])\r\n const schemeClr = 'a:' + getTextByPathList(schemeClrNode, ['attrs', 'val'])\r\n borderColor = getSchemeColorFromTheme(schemeClr, warpObj)\r\n\r\n if (borderColor) {\r\n let shade = getTextByPathList(schemeClrNode, ['a:shade', 'attrs', 'val'])\r\n\r\n if (shade) {\r\n shade = parseInt(shade) / 100000\r\n \r\n const color = tinycolor('#' + borderColor).toHsl()\r\n borderColor = tinycolor({ h: color.h, s: color.s, l: color.l * shade, a: color.a }).toHex()\r\n }\r\n }\r\n }\r\n\r\n if (!borderColor) borderColor = '#000'\r\n else borderColor = `#${borderColor}`\r\n\r\n const type = getTextByPathList(lineNode, ['a:prstDash', 'attrs', 'val'])\r\n let borderType = 'solid'\r\n let strokeDasharray = '0'\r\n switch (type) {\r\n case 'solid':\r\n borderType = 'solid'\r\n strokeDasharray = '0'\r\n break\r\n case 'dash':\r\n borderType = 'dashed'\r\n strokeDasharray = '5'\r\n break\r\n case 'dashDot':\r\n borderType = 'dashed'\r\n strokeDasharray = '5, 5, 1, 5'\r\n break\r\n case 'dot':\r\n borderType = 'dotted'\r\n strokeDasharray = '1, 5'\r\n break\r\n case 'lgDash':\r\n borderType = 'dashed'\r\n strokeDasharray = '10, 5'\r\n break\r\n case 'lgDashDotDot':\r\n borderType = 'dotted'\r\n strokeDasharray = '10, 5, 1, 5, 1, 5'\r\n break\r\n case 'sysDash':\r\n borderType = 'dashed'\r\n strokeDasharray = '5, 2'\r\n break\r\n case 'sysDashDot':\r\n borderType = 'dotted'\r\n strokeDasharray = '5, 2, 1, 5'\r\n break\r\n case 'sysDashDotDot':\r\n borderType = 'dotted'\r\n strokeDasharray = '5, 2, 1, 5, 1, 5'\r\n break\r\n case 'sysDot':\r\n borderType = 'dotted'\r\n strokeDasharray = '2, 5'\r\n break\r\n default:\r\n }\r\n\r\n return {\r\n borderColor,\r\n borderWidth,\r\n borderType,\r\n strokeDasharray,\r\n }\r\n}","import tinycolor from 'tinycolor2'\r\n\r\nexport function hueToRgb(t1, t2, hue) {\r\n if (hue < 0) hue += 6\r\n if (hue >= 6) hue -= 6\r\n if (hue < 1) return (t2 - t1) * hue + t1\r\n else if (hue < 3) return t2\r\n else if (hue < 4) return (t2 - t1) * (4 - hue) + t1\r\n return t1\r\n}\r\n\r\nexport function hslToRgb(hue, sat, light) {\r\n let t2\r\n hue = hue / 60\r\n if (light <= 0.5) {\r\n t2 = light * (sat + 1)\r\n } \r\n else {\r\n t2 = light + sat - (light * sat)\r\n }\r\n const t1 = light * 2 - t2\r\n const r = hueToRgb(t1, t2, hue + 2) * 255\r\n const g = hueToRgb(t1, t2, hue) * 255\r\n const b = hueToRgb(t1, t2, hue - 2) * 255\r\n return { r, g, b }\r\n}\r\n\r\nexport function applyShade(rgbStr, shadeValue, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n if (shadeValue >= 1) shadeValue = 1\r\n const cacl_l = Math.min(color.l * shadeValue, 1)\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a,\r\n }).toHex()\r\n}\r\n\r\nexport function applyTint(rgbStr, tintValue, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n if (tintValue >= 1) tintValue = 1\r\n const cacl_l = color.l * tintValue + (1 - tintValue)\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a\r\n }).toHex()\r\n}\r\n\r\nexport function applyLumOff(rgbStr, offset, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n const lum = offset + color.l\r\n if (lum >= 1) {\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: 1,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n \r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: 1,\r\n a: color.a\r\n }).toHex()\r\n }\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: lum,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: lum,\r\n a: color.a\r\n }).toHex()\r\n}\r\n\r\nexport function applyLumMod(rgbStr, multiplier, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n let cacl_l = color.l * multiplier\r\n if (cacl_l >= 1) cacl_l = 1\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a\r\n }).toHex()\r\n}\r\n\r\nexport function applyHueMod(rgbStr, multiplier, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n let cacl_h = color.h * multiplier\r\n if (cacl_h >= 360) cacl_h = cacl_h - 360\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: cacl_h,\r\n s: color.s,\r\n l: color.l,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: cacl_h,\r\n s: color.s,\r\n l: color.l,\r\n a: color.a\r\n }).toHex()\r\n}\r\n\r\nexport function applySatMod(rgbStr, multiplier, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n let cacl_s = color.s * multiplier\r\n if (cacl_s >= 1) cacl_s = 1\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: cacl_s,\r\n l: color.l,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: color.h,\r\n s: cacl_s,\r\n l: color.l,\r\n a: color.a\r\n }).toHex()\r\n}\r\n\r\nexport function getColorName2Hex(name) {\r\n let hex\r\n const colorName = ['white', 'AliceBlue', 'AntiqueWhite', 'Aqua', 'Aquamarine', 'Azure', 'Beige', 'Bisque', 'black', 'BlanchedAlmond', 'Blue', 'BlueViolet', 'Brown', 'BurlyWood', 'CadetBlue', 'Chartreuse', 'Chocolate', 'Coral', 'CornflowerBlue', 'Cornsilk', 'Crimson', 'Cyan', 'DarkBlue', 'DarkCyan', 'DarkGoldenRod', 'DarkGray', 'DarkGrey', 'DarkGreen', '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', 'Grey', 'Green', 'GreenYellow', 'HoneyDew', 'HotPink', 'IndianRed', 'Indigo', 'Ivory', 'Khaki', 'Lavender', 'LavenderBlush', 'LawnGreen', 'LemonChiffon', 'LightBlue', 'LightCoral', 'LightCyan', 'LightGoldenRodYellow', 'LightGray', 'LightGrey', 'LightGreen', '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']\r\n const colorHex = ['ffffff', 'f0f8ff', 'faebd7', '00ffff', '7fffd4', 'f0ffff', 'f5f5dc', 'ffe4c4', '000000', 'ffebcd', '0000ff', '8a2be2', 'a52a2a', 'deb887', '5f9ea0', '7fff00', 'd2691e', 'ff7f50', '6495ed', 'fff8dc', 'dc143c', '00ffff', '00008b', '008b8b', 'b8860b', 'a9a9a9', 'a9a9a9', '006400', 'bdb76b', '8b008b', '556b2f', 'ff8c00', '9932cc', '8b0000', 'e9967a', '8fbc8f', '483d8b', '2f4f4f', '2f4f4f', '00ced1', '9400d3', 'ff1493', '00bfff', '696969', '696969', '1e90ff', 'b22222', 'fffaf0', '228b22', 'ff00ff', 'dcdcdc', 'f8f8ff', 'ffd700', 'daa520', '808080', '808080', '008000', 'adff2f', 'f0fff0', 'ff69b4', 'cd5c5c', '4b0082', 'fffff0', 'f0e68c', 'e6e6fa', 'fff0f5', '7cfc00', 'fffacd', 'add8e6', 'f08080', 'e0ffff', 'fafad2', 'd3d3d3', 'd3d3d3', '90ee90', 'ffb6c1', 'ffa07a', '20b2aa', '87cefa', '778899', '778899', 'b0c4de', 'ffffe0', '00ff00', '32cd32', 'faf0e6', 'ff00ff', '800000', '66cdaa', '0000cd', 'ba55d3', '9370db', '3cb371', '7b68ee', '00fa9a', '48d1cc', 'c71585', '191970', 'f5fffa', 'ffe4e1', 'ffe4b5', 'ffdead', '000080', 'fdf5e6', '808000', '6b8e23', 'ffa500', 'ff4500', 'da70d6', 'eee8aa', '98fb98', 'afeeee', 'db7093', 'ffefd5', 'ffdab9', 'cd853f', 'ffc0cb', 'dda0dd', 'b0e0e6', '800080', '663399', 'ff0000', 'bc8f8f', '4169e1', '8b4513', 'fa8072', 'f4a460', '2e8b57', 'fff5ee', 'a0522d', 'c0c0c0', '87ceeb', '6a5acd', '708090', '708090', 'fffafa', '00ff7f', '4682b4', 'd2b48c', '008080', 'd8bfd8', 'ff6347', '40e0d0', 'ee82ee', 'f5deb3', 'ffffff', 'f5f5f5', 'ffff00', '9acd32']\r\n const findIndx = colorName.indexOf(name)\r\n if (findIndx !== -1) hex = colorHex[findIndx]\r\n return hex\r\n}","import tinycolor from 'tinycolor2'\r\nimport { getSchemeColorFromTheme } from './schemeColor'\r\nimport {\r\n applyShade,\r\n applyTint,\r\n applyLumOff,\r\n applyLumMod,\r\n applyHueMod,\r\n applySatMod,\r\n hslToRgb,\r\n getColorName2Hex,\r\n} from './color'\r\n\r\nimport {\r\n base64ArrayBuffer,\r\n getTextByPathList,\r\n angleToDegrees,\r\n escapeHtml,\r\n getMimeType,\r\n toHex,\r\n} from './utils'\r\n\r\nexport function getFillType(node) {\r\n let fillType = ''\r\n if (node['a:noFill']) fillType = 'NO_FILL'\r\n if (node['a:solidFill']) fillType = 'SOLID_FILL'\r\n if (node['a:gradFill']) fillType = 'GRADIENT_FILL'\r\n if (node['a:pattFill']) fillType = 'PATTERN_FILL'\r\n if (node['a:blipFill']) fillType = 'PIC_FILL'\r\n if (node['a:grpFill']) fillType = 'GROUP_FILL'\r\n\r\n return fillType\r\n}\r\n\r\nexport async function getPicFill(type, node, warpObj) {\r\n let img\r\n const rId = node['a:blip']['attrs']['r:embed']\r\n let imgPath\r\n if (type === 'slideBg' || type === 'slide') {\r\n imgPath = getTextByPathList(warpObj, ['slideResObj', rId, 'target'])\r\n }\r\n else if (type === 'slideLayoutBg') {\r\n imgPath = getTextByPathList(warpObj, ['layoutResObj', rId, 'target'])\r\n }\r\n else if (type === 'slideMasterBg') {\r\n imgPath = getTextByPathList(warpObj, ['masterResObj', rId, 'target'])\r\n }\r\n else if (type === 'themeBg') {\r\n imgPath = getTextByPathList(warpObj, ['themeResObj', rId, 'target'])\r\n }\r\n else if (type === 'diagramBg') {\r\n imgPath = getTextByPathList(warpObj, ['diagramResObj', rId, 'target'])\r\n }\r\n if (!imgPath) return imgPath\r\n\r\n img = getTextByPathList(warpObj, ['loaded-images', imgPath])\r\n if (!img) {\r\n imgPath = escapeHtml(imgPath)\r\n\r\n const imgExt = imgPath.split('.').pop()\r\n if (imgExt === 'xml') return undefined\r\n\r\n const imgArrayBuffer = await warpObj['zip'].file(imgPath).async('arraybuffer')\r\n const imgMimeType = getMimeType(imgExt)\r\n img = `data:${imgMimeType};base64,${base64ArrayBuffer(imgArrayBuffer)}`\r\n }\r\n return img\r\n}\r\n\r\nexport async function getBgPicFill(bgPr, sorce, warpObj) {\r\n const picBase64 = await getPicFill(sorce, bgPr['a:blipFill'], warpObj)\r\n const aBlipNode = bgPr['a:blipFill']['a:blip']\r\n\r\n const aphaModFixNode = getTextByPathList(aBlipNode, ['a:alphaModFix', 'attrs'])\r\n let opacity = 1\r\n if (aphaModFixNode && aphaModFixNode['amt'] && aphaModFixNode['amt'] !== '') {\r\n opacity = parseInt(aphaModFixNode['amt']) / 100000\r\n }\r\n\r\n return {\r\n picBase64,\r\n opacity,\r\n }\r\n}\r\n\r\nexport function getBgGradientFill(bgPr, phClr, slideMasterContent, warpObj) {\r\n if (bgPr) {\r\n const grdFill = bgPr['a:gradFill']\r\n const gsLst = grdFill['a:gsLst']['a:gs']\r\n const color_ary = []\r\n \r\n for (let i = 0; i < gsLst.length; i++) {\r\n const lo_color = getSolidFill(gsLst[i], slideMasterContent['p:sldMaster']['p:clrMap']['attrs'], phClr, warpObj)\r\n const pos = getTextByPathList(gsLst[i], ['attrs', 'pos'])\r\n\r\n color_ary[i] = {\r\n pos: pos ? (pos / 1000 + '%') : '',\r\n color: lo_color,\r\n }\r\n }\r\n const lin = grdFill['a:lin']\r\n let rot = 90\r\n if (lin) {\r\n rot = angleToDegrees(lin['attrs']['ang'])\r\n rot = rot + 90\r\n }\r\n\r\n return {\r\n rot,\r\n colors: color_ary.sort((a, b) => parseInt(a.pos) - parseInt(b.pos)),\r\n }\r\n }\r\n else if (phClr) {\r\n return phClr.indexOf('#') === -1 ? `#${phClr}` : phClr\r\n }\r\n return null\r\n}\r\n\r\nexport async function getSlideBackgroundFill(warpObj) {\r\n const slideContent = warpObj['slideContent']\r\n const slideLayoutContent = warpObj['slideLayoutContent']\r\n const slideMasterContent = warpObj['slideMasterContent']\r\n \r\n let bgPr = getTextByPathList(slideContent, ['p:sld', 'p:cSld', 'p:bg', 'p:bgPr'])\r\n let bgRef = getTextByPathList(slideContent, ['p:sld', 'p:cSld', 'p:bg', 'p:bgRef'])\r\n\r\n let background = '#fff'\r\n let backgroundType = 'color'\r\n\r\n if (bgPr) {\r\n const bgFillTyp = getFillType(bgPr)\r\n\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgPr['a:solidFill']\r\n let clrMapOvr\r\n const sldClrMapOvr = getTextByPathList(slideContent, ['p:sld', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) clrMapOvr = sldClrMapOvr\r\n else {\r\n const sldClrMapOvr = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) clrMapOvr = sldClrMapOvr\r\n else clrMapOvr = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:clrMap', 'attrs'])\r\n }\r\n const sldBgClr = getSolidFill(sldFill, clrMapOvr, undefined, warpObj)\r\n background = sldBgClr\r\n }\r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgPr, undefined, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n else if (bgFillTyp === 'PIC_FILL') {\r\n background = await getBgPicFill(bgPr, 'slideBg', warpObj)\r\n backgroundType = 'image'\r\n }\r\n }\r\n else if (bgRef) {\r\n let clrMapOvr\r\n const sldClrMapOvr = getTextByPathList(slideContent, ['p:sld', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) clrMapOvr = sldClrMapOvr\r\n else {\r\n const sldClrMapOvr = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) clrMapOvr = sldClrMapOvr\r\n else clrMapOvr = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:clrMap', 'attrs'])\r\n }\r\n const phClr = getSolidFill(bgRef, clrMapOvr, undefined, warpObj)\r\n const idx = Number(bgRef['attrs']['idx'])\r\n\r\n if (idx > 1000) {\r\n const trueIdx = idx - 1000\r\n const bgFillLst = warpObj['themeContent']['a:theme']['a:themeElements']['a:fmtScheme']['a:bgFillStyleLst']\r\n const sortblAry = []\r\n Object.keys(bgFillLst).forEach(key => {\r\n const bgFillLstTyp = bgFillLst[key]\r\n if (key !== 'attrs') {\r\n if (bgFillLstTyp.constructor === Array) {\r\n for (let i = 0; i < bgFillLstTyp.length; i++) {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp[i]\r\n if (bgFillLstTyp[i]['attrs']) {\r\n obj['idex'] = bgFillLstTyp[i]['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp[i]['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n } \r\n else {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp\r\n if (bgFillLstTyp['attrs']) {\r\n obj['idex'] = bgFillLstTyp['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n }\r\n })\r\n const sortByOrder = sortblAry.slice(0)\r\n sortByOrder.sort((a, b) => a.idex - b.idex)\r\n const bgFillLstIdx = sortByOrder[trueIdx - 1]\r\n const bgFillTyp = getFillType(bgFillLstIdx)\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgFillLstIdx['a:solidFill']\r\n const sldBgClr = getSolidFill(sldFill, clrMapOvr, undefined, warpObj)\r\n background = sldBgClr\r\n } \r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgFillLstIdx, phClr, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n bgPr = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:cSld', 'p:bg', 'p:bgPr'])\r\n bgRef = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:cSld', 'p:bg', 'p:bgRef'])\r\n\r\n let clrMapOvr\r\n const sldClrMapOvr = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) clrMapOvr = sldClrMapOvr\r\n else clrMapOvr = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:clrMap', 'attrs'])\r\n\r\n if (bgPr) {\r\n const bgFillTyp = getFillType(bgPr)\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgPr['a:solidFill']\r\n const sldBgClr = getSolidFill(sldFill, clrMapOvr, undefined, warpObj)\r\n background = sldBgClr\r\n }\r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgPr, undefined, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n else if (bgFillTyp === 'PIC_FILL') {\r\n background = await getBgPicFill(bgPr, 'slideLayoutBg', warpObj)\r\n backgroundType = 'image'\r\n }\r\n }\r\n else if (bgRef) {\r\n const phClr = getSolidFill(bgRef, clrMapOvr, undefined, warpObj)\r\n const idx = Number(bgRef['attrs']['idx'])\r\n \r\n if (idx > 1000) {\r\n const trueIdx = idx - 1000\r\n const bgFillLst = warpObj['themeContent']['a:theme']['a:themeElements']['a:fmtScheme']['a:bgFillStyleLst']\r\n const sortblAry = []\r\n Object.keys(bgFillLst).forEach(key => {\r\n const bgFillLstTyp = bgFillLst[key]\r\n if (key !== 'attrs') {\r\n if (bgFillLstTyp.constructor === Array) {\r\n for (let i = 0; i < bgFillLstTyp.length; i++) {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp[i]\r\n if (bgFillLstTyp[i]['attrs']) {\r\n obj['idex'] = bgFillLstTyp[i]['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp[i]['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n } \r\n else {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp\r\n if (bgFillLstTyp['attrs']) {\r\n obj['idex'] = bgFillLstTyp['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n }\r\n })\r\n const sortByOrder = sortblAry.slice(0)\r\n sortByOrder.sort((a, b) => a.idex - b.idex)\r\n const bgFillLstIdx = sortByOrder[trueIdx - 1]\r\n const bgFillTyp = getFillType(bgFillLstIdx)\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgFillLstIdx['a:solidFill']\r\n const sldBgClr = getSolidFill(sldFill, clrMapOvr, undefined, warpObj)\r\n background = sldBgClr\r\n } \r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgFillLstIdx, phClr, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n else if (bgFillTyp === 'PIC_FILL') {\r\n background = await getBgPicFill(bgFillLstIdx, 'themeBg', warpObj)\r\n backgroundType = 'image'\r\n }\r\n }\r\n }\r\n else {\r\n bgPr = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:cSld', 'p:bg', 'p:bgPr'])\r\n bgRef = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:cSld', 'p:bg', 'p:bgRef'])\r\n\r\n const clrMap = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:clrMap', 'attrs'])\r\n if (bgPr) {\r\n const bgFillTyp = getFillType(bgPr)\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgPr['a:solidFill']\r\n const sldBgClr = getSolidFill(sldFill, clrMap, undefined, warpObj)\r\n background = sldBgClr\r\n }\r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgPr, undefined, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n else if (bgFillTyp === 'PIC_FILL') {\r\n background = await getBgPicFill(bgPr, 'slideMasterBg', warpObj)\r\n backgroundType = 'image'\r\n }\r\n }\r\n else if (bgRef) {\r\n const phClr = getSolidFill(bgRef, clrMap, undefined, warpObj)\r\n const idx = Number(bgRef['attrs']['idx'])\r\n \r\n if (idx > 1000) {\r\n const trueIdx = idx - 1000\r\n const bgFillLst = warpObj['themeContent']['a:theme']['a:themeElements']['a:fmtScheme']['a:bgFillStyleLst']\r\n const sortblAry = []\r\n Object.keys(bgFillLst).forEach(key => {\r\n const bgFillLstTyp = bgFillLst[key]\r\n if (key !== 'attrs') {\r\n if (bgFillLstTyp.constructor === Array) {\r\n for (let i = 0; i < bgFillLstTyp.length; i++) {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp[i]\r\n if (bgFillLstTyp[i]['attrs']) {\r\n obj['idex'] = bgFillLstTyp[i]['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp[i]['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n } \r\n else {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp\r\n if (bgFillLstTyp['attrs']) {\r\n obj['idex'] = bgFillLstTyp['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n }\r\n })\r\n const sortByOrder = sortblAry.slice(0)\r\n sortByOrder.sort((a, b) => a.idex - b.idex)\r\n const bgFillLstIdx = sortByOrder[trueIdx - 1]\r\n const bgFillTyp = getFillType(bgFillLstIdx)\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgFillLstIdx['a:solidFill']\r\n const sldBgClr = getSolidFill(sldFill, clrMapOvr, undefined, warpObj)\r\n background = sldBgClr\r\n } \r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgFillLstIdx, phClr, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n else if (bgFillTyp === 'PIC_FILL') {\r\n background = await getBgPicFill(bgFillLstIdx, 'themeBg', warpObj)\r\n backgroundType = 'image'\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return {\r\n type: backgroundType,\r\n value: background,\r\n }\r\n}\r\n\r\nexport function getShapeFill(node, isSvgMode, warpObj) {\r\n if (getTextByPathList(node, ['p:spPr', 'a:noFill'])) {\r\n return isSvgMode ? 'none' : ''\r\n }\r\n\r\n let fillColor\r\n if (!fillColor) {\r\n fillColor = getTextByPathList(node, ['p:spPr', 'a:solidFill', 'a:srgbClr', 'attrs', 'val'])\r\n }\r\n\r\n if (!fillColor) {\r\n const schemeClr = 'a:' + getTextByPathList(node, ['p:spPr', 'a:solidFill', 'a:schemeClr', 'attrs', 'val'])\r\n fillColor = getSchemeColorFromTheme(schemeClr, warpObj)\r\n }\r\n\r\n if (!fillColor) {\r\n const schemeClr = 'a:' + getTextByPathList(node, ['p:style', 'a:fillRef', 'a:schemeClr', 'attrs', 'val'])\r\n fillColor = getSchemeColorFromTheme(schemeClr, warpObj)\r\n }\r\n\r\n if (fillColor) {\r\n fillColor = `#${fillColor}`\r\n\r\n let lumMod = parseInt(getTextByPathList(node, ['p:spPr', 'a:solidFill', 'a:schemeClr', 'a:lumMod', 'attrs', 'val'])) / 100000\r\n let lumOff = parseInt(getTextByPathList(node, ['p:spPr', 'a:solidFill', 'a:schemeClr', 'a:lumOff', 'attrs', 'val'])) / 100000\r\n if (isNaN(lumMod)) lumMod = 1.0\r\n if (isNaN(lumOff)) lumOff = 0\r\n\r\n const color = tinycolor(fillColor).toHsl()\r\n const lum = color.l * lumMod + lumOff\r\n return tinycolor({ h: color.h, s: color.s, l: lum, a: color.a }).toHexString()\r\n } \r\n\r\n if (isSvgMode) return 'none'\r\n return fillColor\r\n}\r\n\r\nexport function getSolidFill(solidFill, clrMap, phClr, warpObj) {\r\n if (!solidFill) return solidFill\r\n\r\n let color = '#ffffff'\r\n let clrNode\r\n\r\n if (solidFill['a:srgbClr']) {\r\n clrNode = solidFill['a:srgbClr']\r\n color = getTextByPathList(clrNode, ['attrs', 'val'])\r\n } \r\n else if (solidFill['a:schemeClr']) {\r\n clrNode = solidFill['a:schemeClr']\r\n const schemeClr = 'a:' + getTextByPathList(clrNode, ['attrs', 'val'])\r\n color = getSchemeColorFromTheme(schemeClr, warpObj, clrMap, phClr) || '#ffffff'\r\n }\r\n else if (solidFill['a:scrgbClr']) {\r\n clrNode = solidFill['a:scrgbClr']\r\n const defBultColorVals = clrNode['attrs']\r\n const red = (defBultColorVals['r'].indexOf('%') !== -1) ? defBultColorVals['r'].split('%').shift() : defBultColorVals['r']\r\n const green = (defBultColorVals['g'].indexOf('%') !== -1) ? defBultColorVals['g'].split('%').shift() : defBultColorVals['g']\r\n const blue = (defBultColorVals['b'].indexOf('%') !== -1) ? defBultColorVals['b'].split('%').shift() : defBultColorVals['b']\r\n color = toHex(255 * (Number(red) / 100)) + toHex(255 * (Number(green) / 100)) + toHex(255 * (Number(blue) / 100))\r\n } \r\n else if (solidFill['a:prstClr']) {\r\n clrNode = solidFill['a:prstClr']\r\n const prstClr = getTextByPathList(clrNode, ['attrs', 'val'])\r\n color = getColorName2Hex(prstClr)\r\n } \r\n else if (solidFill['a:hslClr']) {\r\n clrNode = solidFill['a:hslClr']\r\n const defBultColorVals = clrNode['attrs']\r\n const hue = Number(defBultColorVals['hue']) / 100000\r\n const sat = Number((defBultColorVals['sat'].indexOf('%') !== -1) ? defBultColorVals['sat'].split('%').shift() : defBultColorVals['sat']) / 100\r\n const lum = Number((defBultColorVals['lum'].indexOf('%') !== -1) ? defBultColorVals['lum'].split('%').shift() : defBultColorVals['lum']) / 100\r\n const hsl2rgb = hslToRgb(hue, sat, lum)\r\n color = toHex(hsl2rgb.r) + toHex(hsl2rgb.g) + toHex(hsl2rgb.b)\r\n } \r\n else if (solidFill['a:sysClr']) {\r\n clrNode = solidFill['a:sysClr']\r\n const sysClr = getTextByPathList(clrNode, ['attrs', 'lastClr'])\r\n if (sysClr) color = sysClr\r\n }\r\n\r\n let isAlpha = false\r\n const alpha = parseInt(getTextByPathList(clrNode, ['a:alpha', 'attrs', 'val'])) / 100000\r\n if (!isNaN(alpha)) {\r\n const al_color = tinycolor(color)\r\n al_color.setAlpha(alpha)\r\n color = al_color.toHex8()\r\n isAlpha = true\r\n }\r\n\r\n const hueMod = parseInt(getTextByPathList(clrNode, ['a:hueMod', 'attrs', 'val'])) / 100000\r\n if (!isNaN(hueMod)) {\r\n color = applyHueMod(color, hueMod, isAlpha)\r\n }\r\n const lumMod = parseInt(getTextByPathList(clrNode, ['a:lumMod', 'attrs', 'val'])) / 100000\r\n if (!isNaN(lumMod)) {\r\n color = applyLumMod(color, lumMod, isAlpha)\r\n }\r\n const lumOff = parseInt(getTextByPathList(clrNode, ['a:lumOff', 'attrs', 'val'])) / 100000\r\n if (!isNaN(lumOff)) {\r\n color = applyLumOff(color, lumOff, isAlpha)\r\n }\r\n const satMod = parseInt(getTextByPathList(clrNode, ['a:satMod', 'attrs', 'val'])) / 100000\r\n if (!isNaN(satMod)) {\r\n color = applySatMod(color, satMod, isAlpha)\r\n }\r\n const shade = parseInt(getTextByPathList(clrNode, ['a:shade', 'attrs', 'val'])) / 100000\r\n if (!isNaN(shade)) {\r\n color = applyShade(color, shade, isAlpha)\r\n }\r\n const tint = parseInt(getTextByPathList(clrNode, ['a:tint', 'attrs', 'val'])) / 100000\r\n if (!isNaN(tint)) {\r\n color = applyTint(color, tint, isAlpha)\r\n }\r\n\r\n if (color && color.indexOf('#') === -1) color = '#' + color\r\n\r\n return color\r\n}","import { eachElement, getTextByPathList } from './utils'\r\n\r\nfunction extractChartData(serNode) {\r\n const dataMat = []\r\n if (!serNode) return dataMat\r\n\r\n if (serNode['c:xVal']) {\r\n let dataRow = []\r\n eachElement(serNode['c:xVal']['c:numRef']['c:numCache']['c:pt'], innerNode => {\r\n dataRow.push(parseFloat(innerNode['c:v']))\r\n return ''\r\n })\r\n dataMat.push(dataRow)\r\n dataRow = []\r\n eachElement(serNode['c:yVal']['c:numRef']['c:numCache']['c:pt'], innerNode => {\r\n dataRow.push(parseFloat(innerNode['c:v']))\r\n return ''\r\n })\r\n dataMat.push(dataRow)\r\n } \r\n else {\r\n eachElement(serNode, (innerNode, index) => {\r\n const dataRow = []\r\n const colName = getTextByPathList(innerNode, ['c:tx', 'c:strRef', 'c:strCache', 'c:pt', 'c:v']) || index\r\n\r\n const rowNames = {}\r\n if (getTextByPathList(innerNode, ['c:cat', 'c:strRef', 'c:strCache', 'c:pt'])) {\r\n eachElement(innerNode['c:cat']['c:strRef']['c:strCache']['c:pt'], innerNode => {\r\n rowNames[innerNode['attrs']['idx']] = innerNode['c:v']\r\n return ''\r\n })\r\n } \r\n else if (getTextByPathList(innerNode, ['c:cat', 'c:numRef', 'c:numCache', 'c:pt'])) {\r\n eachElement(innerNode['c:cat']['c:numRef']['c:numCache']['c:pt'], innerNode => {\r\n rowNames[innerNode['attrs']['idx']] = innerNode['c:v']\r\n return ''\r\n })\r\n }\r\n\r\n if (getTextByPathList(innerNode, ['c:val', 'c:numRef', 'c:numCache', 'c:pt'])) {\r\n eachElement(innerNode['c:val']['c:numRef']['c:numCache']['c:pt'], innerNode => {\r\n dataRow.push({\r\n x: innerNode['attrs']['idx'],\r\n y: parseFloat(innerNode['c:v']),\r\n })\r\n return ''\r\n })\r\n }\r\n\r\n dataMat.push({\r\n key: colName,\r\n values: dataRow,\r\n xlabels: rowNames,\r\n })\r\n return ''\r\n })\r\n }\r\n\r\n return dataMat\r\n}\r\n\r\nexport function getChartInfo(plotArea) {\r\n let chart = null\r\n for (const key in plotArea) {\r\n switch (key) {\r\n case 'c:lineChart':\r\n chart = {\r\n type: 'lineChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n marker: plotArea[key]['c:marker'] ? true : false,\r\n }\r\n break\r\n case 'c:line3DChart':\r\n chart = {\r\n type: 'line3DChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:barChart':\r\n chart = {\r\n type: 'barChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n barDir: getTextByPathList(plotArea[key], ['c:barDir', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:bar3DChart':\r\n chart = {\r\n type: 'bar3DChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n barDir: getTextByPathList(plotArea[key], ['c:barDir', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:pieChart':\r\n chart = {\r\n type: 'pieChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n case 'c:pie3DChart':\r\n chart = {\r\n type: 'pie3DChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n case 'c:doughnutChart':\r\n chart = {\r\n type: 'doughnutChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n holeSize: getTextByPathList(plotArea[key], ['c:holeSize', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:areaChart':\r\n chart = {\r\n type: 'areaChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:area3DChart':\r\n chart = {\r\n type: 'area3DChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:scatterChart':\r\n chart = {\r\n type: 'scatterChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n style: getTextByPathList(plotArea[key], ['c:scatterStyle', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:bubbleChart':\r\n chart = {\r\n type: 'bubbleChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n case 'c:radarChart':\r\n chart = {\r\n type: 'radarChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n style: getTextByPathList(plotArea[key], ['c:radarStyle', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:surfaceChart':\r\n chart = {\r\n type: 'surfaceChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n case 'c:surface3DChart':\r\n chart = {\r\n type: 'surface3DChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n case 'c:stockChart':\r\n chart = {\r\n type: 'stockChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n default:\r\n }\r\n }\r\n\r\n return chart\r\n}","import { getTextByPathList } from './utils'\r\n\r\nexport function getHorizontalAlign(node, pNode, type, warpObj) {\r\n let algn = getTextByPathList(node, ['a:pPr', 'attrs', 'algn'])\r\n if (!algn) algn = getTextByPathList(pNode, ['a:pPr', 'attrs', 'algn'])\r\n\r\n if (!algn) {\r\n if (type === 'title' || type === 'ctrTitle' || type === 'subTitle') {\r\n let lvlIdx = 1\r\n const lvlNode = getTextByPathList(pNode, ['a:pPr', 'attrs', 'lvl'])\r\n if (lvlNode) {\r\n lvlIdx = parseInt(lvlNode) + 1\r\n }\r\n const lvlStr = 'a:lvl' + lvlIdx + 'pPr'\r\n algn = getTextByPathList(warpObj, ['slideLayoutTables', 'typeTable', type, 'p:txBody', 'a:lstStyle', lvlStr, 'attrs', 'algn'])\r\n if (!algn) algn = getTextByPathList(warpObj, ['slideMasterTables', 'typeTable', type, 'p:txBody', 'a:lstStyle', lvlStr, 'attrs', 'algn'])\r\n if (!algn) algn = getTextByPathList(warpObj, ['slideMasterTextStyles', 'p:titleStyle', lvlStr, 'attrs', 'algn'])\r\n if (!algn && type === 'subTitle') {\r\n algn = getTextByPathList(warpObj, ['slideMasterTextStyles', 'p:bodyStyle', lvlStr, 'attrs', 'algn'])\r\n }\r\n } \r\n else if (type === 'body') {\r\n algn = getTextByPathList(warpObj, ['slideMasterTextStyles', 'p:bodyStyle', 'a:lvl1pPr', 'attrs', 'algn'])\r\n } \r\n else {\r\n algn = getTextByPathList(warpObj, ['slideMasterTables', 'typeTable', type, 'p:txBody', 'a:lstStyle', 'a:lvl1pPr', 'attrs', 'algn'])\r\n }\r\n }\r\n\r\n let align = 'left'\r\n if (algn) {\r\n switch (algn) {\r\n case 'l':\r\n align = 'left'\r\n break\r\n case 'r':\r\n align = 'right'\r\n break\r\n case 'ctr':\r\n align = 'center'\r\n break\r\n case 'just':\r\n align = 'justify'\r\n break\r\n case 'dist':\r\n align = 'justify'\r\n break\r\n default:\r\n align = 'inherit'\r\n }\r\n }\r\n return align\r\n}\r\n\r\nexport function getVerticalAlign(node, slideLayoutSpNode, slideMasterSpNode) {\r\n let anchor = getTextByPathList(node, ['p:txBody', 'a:bodyPr', 'attrs', 'anchor'])\r\n if (!anchor) {\r\n anchor = getTextByPathList(slideLayoutSpNode, ['p:txBody', 'a:bodyPr', 'attrs', 'anchor'])\r\n if (!anchor) {\r\n anchor = getTextByPathList(slideMasterSpNode, ['p:txBody', 'a:bodyPr', 'attrs', 'anchor'])\r\n if (!anchor) anchor = 't'\r\n }\r\n }\r\n return (anchor === 'ctr') ? 'mid' : ((anchor === 'b') ? 'down' : 'up')\r\n}","export const RATIO_Inches_EMUs = 914400 // 1英寸 = 914400EMUs\r\nexport const RATIO_Inches_Points = 72 // 1英寸 = 72pt\r\nexport const RATIO_EMUs_Points = RATIO_Inches_Points / RATIO_Inches_EMUs // 1EMUs = (72 / 914400)pt","import { RATIO_EMUs_Points } from './constants'\r\n\r\nexport function getPosition(slideSpNode, slideLayoutSpNode, slideMasterSpNode) {\r\n let off\r\n\r\n if (slideSpNode) off = slideSpNode['a:off']['attrs']\r\n else if (slideLayoutSpNode) off = slideLayoutSpNode['a:off']['attrs']\r\n else if (slideMasterSpNode) off = slideMasterSpNode['a:off']['attrs']\r\n\r\n if (!off) return { top: 0, left: 0 }\r\n\r\n return {\r\n top: parseInt(off['y']) * RATIO_EMUs_Points,\r\n left: parseInt(off['x']) * RATIO_EMUs_Points,\r\n }\r\n}\r\n\r\nexport function getSize(slideSpNode, slideLayoutSpNode, slideMasterSpNode) {\r\n let ext\r\n\r\n if (slideSpNode) ext = slideSpNode['a:ext']['attrs']\r\n else if (slideLayoutSpNode) ext = slideLayoutSpNode['a:ext']['attrs']\r\n else if (slideMasterSpNode) ext = slideMasterSpNode['a:ext']['attrs']\r\n\r\n if (!ext) return { width: 0, height: 0 }\r\n\r\n return {\r\n width: parseInt(ext['cx']) * RATIO_EMUs_Points,\r\n height: parseInt(ext['cy']) * RATIO_EMUs_Points,\r\n }\r\n}","import { getSolidFill } from './fill'\r\nimport { RATIO_EMUs_Points } from './constants'\r\n\r\nexport function getShadow(node, warpObj) {\r\n const chdwClrNode = getSolidFill(node, undefined, undefined, warpObj)\r\n const outerShdwAttrs = node['attrs']\r\n const dir = outerShdwAttrs['dir'] ? (parseInt(outerShdwAttrs['dir']) / 60000) : 0\r\n const dist = parseInt(outerShdwAttrs['dist']) * RATIO_EMUs_Points\r\n const blurRad = outerShdwAttrs['blurRad'] ? parseInt(outerShdwAttrs['blurRad']) * RATIO_EMUs_Points : ''\r\n const vx = dist * Math.sin(dir * Math.PI / 180)\r\n const hx = dist * Math.cos(dir * Math.PI / 180)\r\n\r\n return {\r\n h: hx,\r\n v: vx,\r\n blur: blurRad,\r\n color: chdwClrNode,\r\n }\r\n}","import { getHorizontalAlign } from './align'\r\nimport { getTextByPathList } from './utils'\r\n\r\nimport {\r\n getFontType,\r\n getFontColor,\r\n getFontSize,\r\n getFontBold,\r\n getFontItalic,\r\n getFontDecoration,\r\n getFontDecorationLine,\r\n getFontSpace,\r\n getFontSubscript,\r\n getFontShadow,\r\n} from './fontStyle'\r\n\r\nexport function genTextBody(textBodyNode, spNode, slideLayoutSpNode, type, warpObj) {\r\n if (!textBodyNode) return ''\r\n\r\n let text = ''\r\n\r\n const pFontStyle = getTextByPathList(spNode, ['p:style', 'a:fontRef'])\r\n\r\n const pNode = textBodyNode['a:p']\r\n const pNodes = pNode.constructor === Array ? pNode : [pNode]\r\n\r\n let isList = ''\r\n\r\n for (const pNode of pNodes) {\r\n let rNode = pNode['a:r']\r\n let fldNode = pNode['a:fld']\r\n let brNode = pNode['a:br']\r\n if (rNode) {\r\n rNode = (rNode.constructor === Array) ? rNode : [rNode]\r\n\r\n if (fldNode) {\r\n fldNode = (fldNode.constructor === Array) ? fldNode : [fldNode]\r\n rNode = rNode.concat(fldNode)\r\n }\r\n if (brNode) {\r\n brNode = (brNode.constructor === Array) ? brNode : [brNode]\r\n brNode.forEach(item => item.type = 'br')\r\n \r\n if (brNode.length > 1) brNode.shift()\r\n rNode = rNode.concat(brNode)\r\n rNode.sort((a, b) => {\r\n if (!a.attrs || !b.attrs) return true\r\n return a.attrs.order - b.attrs.order\r\n })\r\n }\r\n }\r\n\r\n const align = getHorizontalAlign(pNode, spNode, type, warpObj)\r\n\r\n const listType = getListType(pNode)\r\n if (listType) {\r\n if (!isList) {\r\n text += `<${listType}>`\r\n isList = listType\r\n }\r\n else if (isList && isList !== listType) {\r\n text += ``\r\n text += `<${listType}>`\r\n isList = listType\r\n }\r\n text += `
  • `\r\n }\r\n else {\r\n if (isList) {\r\n text += ``\r\n isList = ''\r\n }\r\n text += `

    `\r\n }\r\n \r\n if (!rNode) text += genSpanElement(pNode, spNode, textBodyNode, pFontStyle, slideLayoutSpNode, type, warpObj)\r\n else {\r\n for (const rNodeItem of rNode) {\r\n text += genSpanElement(rNodeItem, pNode, textBodyNode, pFontStyle, slideLayoutSpNode, type, warpObj)\r\n }\r\n }\r\n\r\n if (listType) text += '

  • '\r\n else text += '

    '\r\n }\r\n return text\r\n}\r\n\r\nexport function getListType(node) {\r\n const pPrNode = node['a:pPr']\r\n if (!pPrNode) return ''\r\n\r\n if (pPrNode['a:buChar']) return 'ul'\r\n if (pPrNode['a:buAutoNum']) return 'ol'\r\n \r\n return ''\r\n}\r\n\r\nexport function genSpanElement(node, pNode, textBodyNode, pFontStyle, slideLayoutSpNode, type, warpObj) {\r\n const lstStyle = textBodyNode['a:lstStyle']\r\n const slideMasterTextStyles = warpObj['slideMasterTextStyles']\r\n\r\n let lvl = 1\r\n const pPrNode = pNode['a:pPr']\r\n const lvlNode = getTextByPathList(pPrNode, ['attrs', 'lvl'])\r\n if (lvlNode !== undefined) lvl = parseInt(lvlNode) + 1\r\n\r\n let text = node['a:t']\r\n if (typeof text !== 'string') text = getTextByPathList(node, ['a:fld', 'a:t'])\r\n if (typeof text !== 'string') text = ' '\r\n\r\n let styleText = ''\r\n const fontColor = getFontColor(node, pNode, lstStyle, pFontStyle, lvl, warpObj)\r\n const fontSize = getFontSize(node, slideLayoutSpNode, type, slideMasterTextStyles)\r\n const fontType = getFontType(node, type, warpObj)\r\n const fontBold = getFontBold(node)\r\n const fontItalic = getFontItalic(node)\r\n const fontDecoration = getFontDecoration(node)\r\n const fontDecorationLine = getFontDecorationLine(node)\r\n const fontSpace = getFontSpace(node)\r\n const shadow = getFontShadow(node, warpObj)\r\n const subscript = getFontSubscript(node)\r\n\r\n if (fontColor) styleText += `color: ${fontColor};`\r\n if (fontSize) styleText += `font-size: ${fontSize};`\r\n if (fontType) styleText += `font-family: ${fontType};`\r\n if (fontBold) styleText += `font-weight: ${fontBold};`\r\n if (fontItalic) styleText += `font-style: ${fontItalic};`\r\n if (fontDecoration) styleText += `text-decoration: ${fontDecoration};`\r\n if (fontDecorationLine) styleText += `text-decoration-line: ${fontDecorationLine};`\r\n if (fontSpace) styleText += `letter-spacing: ${fontSpace};`\r\n if (subscript) styleText += `vertical-align: ${subscript};`\r\n if (shadow) styleText += `text-shadow: ${shadow};`\r\n\r\n const linkID = getTextByPathList(node, ['a:rPr', 'a:hlinkClick', 'attrs', 'r:id'])\r\n if (linkID) {\r\n const linkURL = warpObj['slideResObj'][linkID]['target']\r\n return `${text.replace(/\\t/g, '    ').replace(/\\s/g, ' ')}`\r\n } \r\n return `${text.replace(/\\t/g, '    ').replace(/\\s/g, ' ')}`\r\n}","import { getTextByPathList } from './utils'\r\nimport { getShadow } from './shadow'\r\nimport { getFillType, getSolidFill } from './fill'\r\n\r\nexport function getFontType(node, type, warpObj) {\r\n let typeface = getTextByPathList(node, ['a:rPr', 'a:latin', 'attrs', 'typeface'])\r\n\r\n if (!typeface) {\r\n const fontSchemeNode = getTextByPathList(warpObj['themeContent'], ['a:theme', 'a:themeElements', 'a:fontScheme'])\r\n\r\n if (type === 'title' || type === 'subTitle' || type === 'ctrTitle') {\r\n typeface = getTextByPathList(fontSchemeNode, ['a:majorFont', 'a:latin', 'attrs', 'typeface'])\r\n } \r\n else if (type === 'body') {\r\n typeface = getTextByPathList(fontSchemeNode, ['a:minorFont', 'a:latin', 'attrs', 'typeface'])\r\n } \r\n else {\r\n typeface = getTextByPathList(fontSchemeNode, ['a:minorFont', 'a:latin', 'attrs', 'typeface'])\r\n }\r\n }\r\n\r\n return typeface || ''\r\n}\r\n\r\nexport function getFontColor(node, pNode, lstStyle, pFontStyle, lvl, warpObj) {\r\n const rPrNode = getTextByPathList(node, ['a:rPr'])\r\n let filTyp, color\r\n if (rPrNode) {\r\n filTyp = getFillType(rPrNode)\r\n if (filTyp === 'SOLID_FILL') {\r\n const solidFillNode = rPrNode['a:solidFill']\r\n color = getSolidFill(solidFillNode, undefined, undefined, warpObj)\r\n }\r\n }\r\n if (!color && getTextByPathList(lstStyle, ['a:lvl' + lvl + 'pPr', 'a:defRPr'])) {\r\n const lstStyledefRPr = getTextByPathList(lstStyle, ['a:lvl' + lvl + 'pPr', 'a:defRPr'])\r\n filTyp = getFillType(lstStyledefRPr)\r\n if (filTyp === 'SOLID_FILL') {\r\n const solidFillNode = lstStyledefRPr['a:solidFill']\r\n color = getSolidFill(solidFillNode, undefined, undefined, warpObj)\r\n }\r\n }\r\n if (!color) {\r\n const sPstyle = getTextByPathList(pNode, ['p:style', 'a:fontRef'])\r\n if (sPstyle) color = getSolidFill(sPstyle, undefined, undefined, warpObj)\r\n if (!color && pFontStyle) color = getSolidFill(pFontStyle, undefined, undefined, warpObj)\r\n }\r\n return color || ''\r\n}\r\n\r\nexport function getFontSize(node, slideLayoutSpNode, type, slideMasterTextStyles) {\r\n let fontSize\r\n\r\n if (getTextByPathList(node, ['a:rPr', 'attrs', 'sz'])) fontSize = getTextByPathList(node, ['a:rPr', 'attrs', 'sz']) / 100\r\n\r\n if ((isNaN(fontSize) || !fontSize)) {\r\n const sz = getTextByPathList(slideLayoutSpNode, ['p:txBody', 'a:lstStyle', 'a:lvl1pPr', 'a:defRPr', 'attrs', 'sz'])\r\n fontSize = parseInt(sz) / 100\r\n }\r\n\r\n if (isNaN(fontSize) || !fontSize) {\r\n let sz\r\n if (type === 'title' || type === 'subTitle' || type === 'ctrTitle') {\r\n sz = getTextByPathList(slideMasterTextStyles, ['p:titleStyle', 'a:lvl1pPr', 'a:defRPr', 'attrs', 'sz'])\r\n } \r\n else if (type === 'body') {\r\n sz = getTextByPathList(slideMasterTextStyles, ['p:bodyStyle', 'a:lvl1pPr', 'a:defRPr', 'attrs', 'sz'])\r\n } \r\n else if (type === 'dt' || type === 'sldNum') {\r\n sz = '1200'\r\n } \r\n else if (!type) {\r\n sz = getTextByPathList(slideMasterTextStyles, ['p:otherStyle', 'a:lvl1pPr', 'a:defRPr', 'attrs', 'sz'])\r\n }\r\n if (sz) fontSize = parseInt(sz) / 100\r\n }\r\n\r\n const baseline = getTextByPathList(node, ['a:rPr', 'attrs', 'baseline'])\r\n if (baseline && !isNaN(fontSize)) fontSize -= 10\r\n\r\n fontSize = (isNaN(fontSize) || !fontSize) ? 18 : fontSize\r\n\r\n return fontSize + 'pt'\r\n}\r\n\r\nexport function getFontBold(node) {\r\n return getTextByPathList(node, ['a:rPr', 'attrs', 'b']) === '1' ? 'bold' : ''\r\n}\r\n\r\nexport function getFontItalic(node) {\r\n return getTextByPathList(node, ['a:rPr', 'attrs', 'i']) === '1' ? 'italic' : ''\r\n}\r\n\r\nexport function getFontDecoration(node) {\r\n return getTextByPathList(node, ['a:rPr', 'attrs', 'u']) === 'sng' ? 'underline' : ''\r\n}\r\n\r\nexport function getFontDecorationLine(node) {\r\n return getTextByPathList(node, ['a:rPr', 'attrs', 'strike']) === 'sngStrike' ? 'line-through' : ''\r\n}\r\n\r\nexport function getFontSpace(node) {\r\n const spc = getTextByPathList(node, ['a:rPr', 'attrs', 'spc'])\r\n return spc ? (parseInt(spc) / 100 + 'pt') : ''\r\n}\r\n\r\nexport function getFontSubscript(node) {\r\n const baseline = getTextByPathList(node, ['a:rPr', 'attrs', 'baseline'])\r\n if (!baseline) return ''\r\n return parseInt(baseline) > 0 ? 'super' : 'sub'\r\n}\r\n\r\nexport function getFontShadow(node, warpObj) {\r\n const txtShadow = getTextByPathList(node, ['a:rPr', 'a:effectLst', 'a:outerShdw'])\r\n if (txtShadow) {\r\n const shadow = getShadow(txtShadow, warpObj)\r\n if (shadow) {\r\n const { h, v, blur, color } = shadow\r\n if (!isNaN(v) && !isNaN(h)) {\r\n return h + 'pt ' + v + 'pt ' + (blur ? blur + 'pt' : '') + ' ' + color\r\n }\r\n }\r\n }\r\n return ''\r\n}","import { getTextByPathList } from './utils'\r\n\r\nexport function shapeArc(cX, cY, rX, rY, stAng, endAng, isClose) {\r\n let dData\r\n let angle = stAng\r\n if (endAng >= stAng) {\r\n while (angle <= endAng) {\r\n const radians = angle * (Math.PI / 180)\r\n const x = cX + Math.cos(radians) * rX\r\n const y = cY + Math.sin(radians) * rY\r\n if (angle === stAng) {\r\n dData = ' M' + x + ' ' + y\r\n }\r\n dData += ' L' + x + ' ' + y\r\n angle++\r\n }\r\n } \r\n else {\r\n while (angle > endAng) {\r\n const radians = angle * (Math.PI / 180)\r\n const x = cX + Math.cos(radians) * rX\r\n const y = cY + Math.sin(radians) * rY\r\n if (angle === stAng) {\r\n dData = ' M ' + x + ' ' + y\r\n }\r\n dData += ' L ' + x + ' ' + y\r\n angle--\r\n }\r\n }\r\n dData += (isClose ? ' z' : '')\r\n return dData\r\n}\r\n\r\nexport function getCustomShapePath(custShapType, w, h) {\r\n const pathLstNode = getTextByPathList(custShapType, ['a:pathLst'])\r\n let pathNodes = getTextByPathList(pathLstNode, ['a:path'])\r\n\r\n if (Array.isArray(pathNodes)) pathNodes = pathNodes.pop()\r\n\r\n const maxX = parseInt(pathNodes['attrs']['w'])\r\n const maxY = parseInt(pathNodes['attrs']['h'])\r\n const cX = maxX === 0 ? 0 : (1 / maxX) * w\r\n const cY = maxY === 0 ? 0 : (1 / maxY) * h\r\n let d = ''\r\n\r\n let moveToNode = getTextByPathList(pathNodes, ['a:moveTo'])\r\n\r\n const lnToNodes = pathNodes['a:lnTo']\r\n let cubicBezToNodes = pathNodes['a:cubicBezTo']\r\n const arcToNodes = pathNodes['a:arcTo']\r\n let closeNode = getTextByPathList(pathNodes, ['a:close'])\r\n if (!Array.isArray(moveToNode)) moveToNode = [moveToNode]\r\n\r\n const multiSapeAry = []\r\n if (moveToNode.length > 0) {\r\n Object.keys(moveToNode).forEach(key => {\r\n const moveToPtNode = moveToNode[key]['a:pt']\r\n if (moveToPtNode) {\r\n Object.keys(moveToPtNode).forEach(key => {\r\n const moveToNoPt = moveToPtNode[key]\r\n const spX = moveToNoPt['attrs', 'x']\r\n const spY = moveToNoPt['attrs', 'y']\r\n const order = moveToNoPt['attrs', 'order']\r\n multiSapeAry.push({\r\n type: 'movto',\r\n x: spX,\r\n y: spY,\r\n order,\r\n })\r\n })\r\n }\r\n })\r\n if (lnToNodes) {\r\n Object.keys(lnToNodes).forEach(key => {\r\n const lnToPtNode = lnToNodes[key]['a:pt']\r\n if (lnToPtNode) {\r\n Object.keys(lnToPtNode).forEach(key => {\r\n const lnToNoPt = lnToPtNode[key]\r\n const ptX = lnToNoPt['attrs', 'x']\r\n const ptY = lnToNoPt['attrs', 'y']\r\n const order = lnToNoPt['attrs', 'order']\r\n multiSapeAry.push({\r\n type: 'lnto',\r\n x: ptX,\r\n y: ptY,\r\n order,\r\n })\r\n })\r\n }\r\n })\r\n }\r\n if (cubicBezToNodes) {\r\n const cubicBezToPtNodesAry = []\r\n if (!Array.isArray(cubicBezToNodes)) {\r\n cubicBezToNodes = [cubicBezToNodes]\r\n }\r\n Object.keys(cubicBezToNodes).forEach(key => {\r\n cubicBezToPtNodesAry.push(cubicBezToNodes[key]['a:pt'])\r\n })\r\n\r\n cubicBezToPtNodesAry.forEach(key => {\r\n const pts_ary = []\r\n key.forEach(pt => {\r\n const pt_obj = {\r\n x: pt['attrs']['x'],\r\n y: pt['attrs']['y'],\r\n }\r\n pts_ary.push(pt_obj)\r\n })\r\n const order = key[0]['attrs']['order']\r\n multiSapeAry.push({\r\n type: 'cubicBezTo',\r\n cubBzPt: pts_ary,\r\n order,\r\n })\r\n })\r\n }\r\n if (arcToNodes) {\r\n const arcToNodesAttrs = arcToNodes['attrs']\r\n const order = arcToNodesAttrs['order']\r\n const hR = arcToNodesAttrs['hR']\r\n const wR = arcToNodesAttrs['wR']\r\n const stAng = arcToNodesAttrs['stAng']\r\n const swAng = arcToNodesAttrs['swAng']\r\n let shftX = 0\r\n let shftY = 0\r\n const arcToPtNode = getTextByPathList(arcToNodes, ['a:pt', 'attrs'])\r\n if (arcToPtNode) {\r\n shftX = arcToPtNode['x']\r\n shftY = arcToPtNode['y']\r\n }\r\n multiSapeAry.push({\r\n type: 'arcTo',\r\n hR: hR,\r\n wR: wR,\r\n stAng: stAng,\r\n swAng: swAng,\r\n shftX: shftX,\r\n shftY: shftY,\r\n order,\r\n })\r\n }\r\n if (closeNode) {\r\n if (!Array.isArray(closeNode)) closeNode = [closeNode]\r\n Object.keys(closeNode).forEach(() => {\r\n multiSapeAry.push({\r\n type: 'close',\r\n order: Infinity,\r\n })\r\n })\r\n }\r\n\r\n multiSapeAry.sort((a, b) => a.order - b.order)\r\n\r\n let k = 0\r\n while (k < multiSapeAry.length) {\r\n if (multiSapeAry[k].type === 'movto') {\r\n const spX = parseInt(multiSapeAry[k].x) * cX\r\n const spY = parseInt(multiSapeAry[k].y) * cY\r\n d += ' M' + spX + ',' + spY\r\n } \r\n else if (multiSapeAry[k].type === 'lnto') {\r\n const Lx = parseInt(multiSapeAry[k].x) * cX\r\n const Ly = parseInt(multiSapeAry[k].y) * cY\r\n d += ' L' + Lx + ',' + Ly\r\n } \r\n else if (multiSapeAry[k].type === 'cubicBezTo') {\r\n const Cx1 = parseInt(multiSapeAry[k].cubBzPt[0].x) * cX\r\n const Cy1 = parseInt(multiSapeAry[k].cubBzPt[0].y) * cY\r\n const Cx2 = parseInt(multiSapeAry[k].cubBzPt[1].x) * cX\r\n const Cy2 = parseInt(multiSapeAry[k].cubBzPt[1].y) * cY\r\n const Cx3 = parseInt(multiSapeAry[k].cubBzPt[2].x) * cX\r\n const Cy3 = parseInt(multiSapeAry[k].cubBzPt[2].y) * cY\r\n d += ' C' + Cx1 + ',' + Cy1 + ' ' + Cx2 + ',' + Cy2 + ' ' + Cx3 + ',' + Cy3\r\n } \r\n else if (multiSapeAry[k].type === 'arcTo') {\r\n const hR = parseInt(multiSapeAry[k].hR) * cX\r\n const wR = parseInt(multiSapeAry[k].wR) * cY\r\n const stAng = parseInt(multiSapeAry[k].stAng) / 60000\r\n const swAng = parseInt(multiSapeAry[k].swAng) / 60000\r\n const endAng = stAng + swAng\r\n d += shapeArc(wR, hR, wR, hR, stAng, endAng, false)\r\n }\r\n else if (multiSapeAry[k].type === 'close') d += 'z'\r\n k++\r\n }\r\n }\r\n\r\n return d\r\n}","import { getShapeFill, getSolidFill } from './fill'\r\nimport { getTextByPathList } from './utils'\r\nimport { getBorder } from './border'\r\n\r\nexport function getTableBorders(node, warpObj) {\r\n const borderStyles = {}\r\n if (node['a:bottom']) {\r\n const obj = {\r\n 'p:spPr': {\r\n 'a:ln': node['a:bottom']['a:ln']\r\n }\r\n }\r\n const border = getBorder(obj, undefined, warpObj)\r\n borderStyles.bottom = border\r\n }\r\n if (node['a:top']) {\r\n const obj = {\r\n 'p:spPr': {\r\n 'a:ln': node['a:top']['a:ln']\r\n }\r\n }\r\n const border = getBorder(obj, undefined, warpObj)\r\n borderStyles.top = border\r\n }\r\n if (node['a:right']) {\r\n const obj = {\r\n 'p:spPr': {\r\n 'a:ln': node['a:right']['a:ln']\r\n }\r\n }\r\n const border = getBorder(obj, undefined, warpObj)\r\n borderStyles.right = border\r\n }\r\n if (node['a:left']) {\r\n const obj = {\r\n 'p:spPr': {\r\n 'a:ln': node['a:left']['a:ln']\r\n }\r\n }\r\n const border = getBorder(obj, undefined, warpObj)\r\n borderStyles.left = border\r\n }\r\n return borderStyles\r\n}\r\n\r\nexport function getTableCellParams(tcNode, thisTblStyle, cellSource, warpObj) {\r\n const rowSpan = getTextByPathList(tcNode, ['attrs', 'rowSpan'])\r\n const colSpan = getTextByPathList(tcNode, ['attrs', 'gridSpan'])\r\n const vMerge = getTextByPathList(tcNode, ['attrs', 'vMerge'])\r\n const hMerge = getTextByPathList(tcNode, ['attrs', 'hMerge'])\r\n let fillColor\r\n let fontColor\r\n let fontBold\r\n\r\n const getCelFill = getTextByPathList(tcNode, ['a:tcPr'])\r\n if (getCelFill) {\r\n const cellObj = { 'p:spPr': getCelFill }\r\n fillColor = getShapeFill(cellObj, undefined, warpObj)\r\n }\r\n if (!fillColor) {\r\n let bgFillschemeClr\r\n if (cellSource) bgFillschemeClr = getTextByPathList(thisTblStyle, [cellSource, 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n }\r\n }\r\n\r\n let rowTxtStyl\r\n if (cellSource) rowTxtStyl = getTextByPathList(thisTblStyle, [cellSource, 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n\r\n return {\r\n fillColor,\r\n fontColor,\r\n fontBold,\r\n rowSpan: rowSpan ? +rowSpan : undefined,\r\n colSpan: colSpan ? +colSpan : undefined,\r\n vMerge: vMerge ? +vMerge : undefined,\r\n hMerge: hMerge ? +hMerge : undefined,\r\n }\r\n}\r\n\r\nexport function getTableRowParams(trNodes, i, tblStylAttrObj, thisTblStyle, warpObj) {\r\n let fillColor\r\n let fontColor\r\n let fontBold\r\n\r\n if (thisTblStyle && thisTblStyle['a:wholeTbl']) {\r\n const bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:wholeTbl', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n const local_fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n if (local_fillColor) fillColor = local_fillColor\r\n }\r\n const rowTxtStyl = getTextByPathList(thisTblStyle, ['a:wholeTbl', 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n const local_fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (local_fontColor) fontColor = local_fontColor\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n }\r\n if (i === 0 && tblStylAttrObj['isFrstRowAttr'] === 1 && thisTblStyle) {\r\n const bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:firstRow', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n const local_fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n if (local_fillColor) fillColor = local_fillColor\r\n }\r\n const rowTxtStyl = getTextByPathList(thisTblStyle, ['a:firstRow', 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n const local_fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (local_fontColor) fontColor = local_fontColor\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n }\r\n else if (i > 0 && tblStylAttrObj['isBandRowAttr'] === 1 && thisTblStyle) {\r\n fillColor = ''\r\n if ((i % 2) === 0 && thisTblStyle['a:band2H']) {\r\n const bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:band2H', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n const local_fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n if (local_fillColor) fillColor = local_fillColor\r\n }\r\n const rowTxtStyl = getTextByPathList(thisTblStyle, ['a:band2H', 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n const local_fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (local_fontColor) fontColor = local_fontColor\r\n }\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n if ((i % 2) !== 0 && thisTblStyle['a:band1H']) {\r\n const bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:band1H', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n const local_fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n if (local_fillColor) fillColor = local_fillColor\r\n }\r\n const rowTxtStyl = getTextByPathList(thisTblStyle, ['a:band1H', 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n const local_fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (local_fontColor) fontColor = local_fontColor\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n }\r\n }\r\n if (i === (trNodes.length - 1) && tblStylAttrObj['isLstRowAttr'] === 1 && thisTblStyle) {\r\n const bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:lastRow', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n const local_fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n if (local_fillColor) {\r\n fillColor = local_fillColor\r\n }\r\n }\r\n const rowTxtStyl = getTextByPathList(thisTblStyle, ['a:lastRow', 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n const local_fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (local_fontColor) fontColor = local_fontColor\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n }\r\n\r\n return {\r\n fillColor,\r\n fontColor,\r\n fontBold,\r\n }\r\n}","import JSZip from 'jszip'\r\nimport { readXmlFile } from './readXmlFile'\r\nimport { getBorder } from './border'\r\nimport { getSlideBackgroundFill, getShapeFill, getSolidFill } from './fill'\r\nimport { getChartInfo } from './chart'\r\nimport { getVerticalAlign } from './align'\r\nimport { getPosition, getSize } from './position'\r\nimport { genTextBody } from './text'\r\nimport { getCustomShapePath } from './shape'\r\nimport { extractFileExtension, base64ArrayBuffer, getTextByPathList, angleToDegrees, getMimeType, isVideoLink, escapeHtml } from './utils'\r\nimport { getShadow } from './shadow'\r\nimport { getTableBorders, getTableCellParams, getTableRowParams } from './table'\r\nimport { RATIO_EMUs_Points } from './constants'\r\n\r\nexport async function parse(file) {\r\n const slides = []\r\n \r\n const zip = await JSZip.loadAsync(file)\r\n\r\n const filesInfo = await getContentTypes(zip)\r\n const { width, height, defaultTextStyle } = await getSlideInfo(zip)\r\n const themeContent = await loadTheme(zip)\r\n\r\n for (const filename of filesInfo.slides) {\r\n const singleSlide = await processSingleSlide(zip, filename, themeContent, defaultTextStyle)\r\n slides.push(singleSlide)\r\n }\r\n\r\n return {\r\n slides,\r\n size: {\r\n width,\r\n height,\r\n },\r\n }\r\n}\r\n\r\nasync function getContentTypes(zip) {\r\n const ContentTypesJson = await readXmlFile(zip, '[Content_Types].xml')\r\n const subObj = ContentTypesJson['Types']['Override']\r\n let slidesLocArray = []\r\n let slideLayoutsLocArray = []\r\n\r\n for (const item of subObj) {\r\n switch (item['attrs']['ContentType']) {\r\n case 'application/vnd.openxmlformats-officedocument.presentationml.slide+xml':\r\n slidesLocArray.push(item['attrs']['PartName'].substr(1))\r\n break\r\n case 'application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml':\r\n slideLayoutsLocArray.push(item['attrs']['PartName'].substr(1))\r\n break\r\n default:\r\n }\r\n }\r\n \r\n const sortSlideXml = (p1, p2) => {\r\n const n1 = +/(\\d+)\\.xml/.exec(p1)[1]\r\n const n2 = +/(\\d+)\\.xml/.exec(p2)[1]\r\n return n1 - n2\r\n }\r\n slidesLocArray = slidesLocArray.sort(sortSlideXml)\r\n slideLayoutsLocArray = slideLayoutsLocArray.sort(sortSlideXml)\r\n \r\n return {\r\n slides: slidesLocArray,\r\n slideLayouts: slideLayoutsLocArray,\r\n }\r\n}\r\n\r\nasync function getSlideInfo(zip) {\r\n const content = await readXmlFile(zip, 'ppt/presentation.xml')\r\n const sldSzAttrs = content['p:presentation']['p:sldSz']['attrs']\r\n const defaultTextStyle = content['p:presentation']['p:defaultTextStyle']\r\n return {\r\n width: parseInt(sldSzAttrs['cx']) * RATIO_EMUs_Points,\r\n height: parseInt(sldSzAttrs['cy']) * RATIO_EMUs_Points,\r\n defaultTextStyle,\r\n }\r\n}\r\n\r\nasync function loadTheme(zip) {\r\n const preResContent = await readXmlFile(zip, 'ppt/_rels/presentation.xml.rels')\r\n const relationshipArray = preResContent['Relationships']['Relationship']\r\n let themeURI\r\n\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipItem of relationshipArray) {\r\n if (relationshipItem['attrs']['Type'] === 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme') {\r\n themeURI = relationshipItem['attrs']['Target']\r\n break\r\n }\r\n }\r\n } \r\n else if (relationshipArray['attrs']['Type'] === 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme') {\r\n themeURI = relationshipArray['attrs']['Target']\r\n }\r\n if (!themeURI) throw Error(`Can't open theme file.`)\r\n\r\n return await readXmlFile(zip, 'ppt/' + themeURI)\r\n}\r\n\r\nasync function processSingleSlide(zip, sldFileName, themeContent, defaultTextStyle) {\r\n const resName = sldFileName.replace('slides/slide', 'slides/_rels/slide') + '.rels'\r\n const resContent = await readXmlFile(zip, resName)\r\n let relationshipArray = resContent['Relationships']['Relationship']\r\n let layoutFilename = ''\r\n let diagramFilename = ''\r\n const slideResObj = {}\r\n\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipArrayItem of relationshipArray) {\r\n switch (relationshipArrayItem['attrs']['Type']) {\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout':\r\n layoutFilename = relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n break\r\n case 'http://schemas.microsoft.com/office/2007/relationships/diagramDrawing':\r\n diagramFilename = relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n slideResObj[relationshipArrayItem['attrs']['Id']] = {\r\n type: relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n target: relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n }\r\n break\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide':\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image':\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart':\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink':\r\n default:\r\n slideResObj[relationshipArrayItem['attrs']['Id']] = {\r\n type: relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n target: relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/'),\r\n }\r\n }\r\n }\r\n } \r\n else layoutFilename = relationshipArray['attrs']['Target'].replace('../', 'ppt/')\r\n\r\n const slideLayoutContent = await readXmlFile(zip, layoutFilename)\r\n const slideLayoutTables = await indexNodes(slideLayoutContent)\r\n\r\n const slideLayoutResFilename = layoutFilename.replace('slideLayouts/slideLayout', 'slideLayouts/_rels/slideLayout') + '.rels'\r\n const slideLayoutResContent = await readXmlFile(zip, slideLayoutResFilename)\r\n relationshipArray = slideLayoutResContent['Relationships']['Relationship']\r\n\r\n let masterFilename = ''\r\n const layoutResObj = {}\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipArrayItem of relationshipArray) {\r\n switch (relationshipArrayItem['attrs']['Type']) {\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster':\r\n masterFilename = relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n break\r\n default:\r\n layoutResObj[relationshipArrayItem['attrs']['Id']] = {\r\n type: relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n target: relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/'),\r\n }\r\n }\r\n }\r\n } \r\n else masterFilename = relationshipArray['attrs']['Target'].replace('../', 'ppt/')\r\n\r\n const slideMasterContent = await readXmlFile(zip, masterFilename)\r\n const slideMasterTextStyles = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:txStyles'])\r\n const slideMasterTables = indexNodes(slideMasterContent)\r\n\r\n const slideMasterResFilename = masterFilename.replace('slideMasters/slideMaster', 'slideMasters/_rels/slideMaster') + '.rels'\r\n const slideMasterResContent = await readXmlFile(zip, slideMasterResFilename)\r\n relationshipArray = slideMasterResContent['Relationships']['Relationship']\r\n\r\n let themeFilename = ''\r\n const masterResObj = {}\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipArrayItem of relationshipArray) {\r\n switch (relationshipArrayItem['attrs']['Type']) {\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme':\r\n break\r\n default:\r\n masterResObj[relationshipArrayItem['attrs']['Id']] = {\r\n type: relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n target: relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/'),\r\n }\r\n }\r\n }\r\n }\r\n else themeFilename = relationshipArray['attrs']['Target'].replace('../', 'ppt/')\r\n\r\n const themeResObj = {}\r\n if (themeFilename) {\r\n const themeName = themeFilename.split('/').pop()\r\n const themeResFileName = themeFilename.replace(themeName, '_rels/' + themeName) + '.rels'\r\n const themeResContent = await readXmlFile(zip, themeResFileName)\r\n if (themeResContent) {\r\n relationshipArray = themeResContent['Relationships']['Relationship']\r\n if (relationshipArray) {\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipArrayItem of relationshipArray) {\r\n themeResObj[relationshipArrayItem['attrs']['Id']] = {\r\n 'type': relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n 'target': relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n }\r\n }\r\n } \r\n else {\r\n themeResObj[relationshipArray['attrs']['Id']] = {\r\n 'type': relationshipArray['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n 'target': relationshipArray['attrs']['Target'].replace('../', 'ppt/')\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n const diagramResObj = {}\r\n let digramFileContent = {}\r\n if (diagramFilename) {\r\n const diagName = diagramFilename.split('/').pop()\r\n const diagramResFileName = diagramFilename.replace(diagName, '_rels/' + diagName) + '.rels'\r\n digramFileContent = await readXmlFile(zip, diagramFilename)\r\n if (digramFileContent && digramFileContent && digramFileContent) {\r\n let digramFileContentObjToStr = JSON.stringify(digramFileContent)\r\n digramFileContentObjToStr = digramFileContentObjToStr.replace(/dsp:/g, 'p:')\r\n digramFileContent = JSON.parse(digramFileContentObjToStr)\r\n }\r\n const digramResContent = await readXmlFile(zip, diagramResFileName)\r\n if (digramResContent) {\r\n relationshipArray = digramResContent['Relationships']['Relationship']\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipArrayItem of relationshipArray) {\r\n diagramResObj[relationshipArrayItem['attrs']['Id']] = {\r\n 'type': relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n 'target': relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n }\r\n }\r\n } \r\n else {\r\n diagramResObj[relationshipArray['attrs']['Id']] = {\r\n 'type': relationshipArray['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n 'target': relationshipArray['attrs']['Target'].replace('../', 'ppt/')\r\n }\r\n }\r\n }\r\n }\r\n\r\n const tableStyles = await readXmlFile(zip, 'ppt/tableStyles.xml')\r\n\r\n const slideContent = await readXmlFile(zip, sldFileName)\r\n const nodes = slideContent['p:sld']['p:cSld']['p:spTree']\r\n const warpObj = {\r\n zip,\r\n slideLayoutContent,\r\n slideLayoutTables,\r\n slideMasterContent,\r\n slideMasterTables,\r\n slideContent,\r\n tableStyles,\r\n slideResObj,\r\n slideMasterTextStyles,\r\n layoutResObj,\r\n masterResObj,\r\n themeContent,\r\n themeResObj,\r\n digramFileContent,\r\n diagramResObj,\r\n defaultTextStyle,\r\n }\r\n // const bgElements = await getBackground(warpObj)\r\n const bgColor = await getSlideBackgroundFill(warpObj)\r\n\r\n const elements = []\r\n for (const nodeKey in nodes) {\r\n if (nodes[nodeKey].constructor === Array) {\r\n for (const node of nodes[nodeKey]) {\r\n const ret = await processNodesInSlide(nodeKey, node, warpObj, 'slide')\r\n if (ret) elements.push(ret)\r\n }\r\n } \r\n else {\r\n const ret = await processNodesInSlide(nodeKey, nodes[nodeKey], warpObj, 'slide')\r\n if (ret) elements.push(ret)\r\n }\r\n }\r\n\r\n return {\r\n fill: bgColor,\r\n elements,\r\n }\r\n}\r\n\r\n// async function getBackground(warpObj) {\r\n// const elements = []\r\n// const slideLayoutContent = warpObj['slideLayoutContent']\r\n// const slideMasterContent = warpObj['slideMasterContent']\r\n// const nodesSldLayout = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:cSld', 'p:spTree'])\r\n// const nodesSldMaster = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:cSld', 'p:spTree'])\r\n\r\n// const showMasterSp = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'attrs', 'showMasterSp'])\r\n// if (nodesSldLayout) {\r\n// for (const nodeKey in nodesSldLayout) {\r\n// if (nodesSldLayout[nodeKey].constructor === Array) {\r\n// for (let i = 0; i < nodesSldLayout[nodeKey].length; i++) {\r\n// const ph_type = getTextByPathList(nodesSldLayout[nodeKey][i], ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'type'])\r\n// if (ph_type !== 'pic') {\r\n// const ret = await processNodesInSlide(nodeKey, nodesSldLayout[nodeKey][i], warpObj, 'slideLayoutBg')\r\n// if (ret) elements.push(ret)\r\n// }\r\n// }\r\n// } \r\n// else {\r\n// const ph_type = getTextByPathList(nodesSldLayout[nodeKey], ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'type'])\r\n// if (ph_type !== 'pic') {\r\n// const ret = await processNodesInSlide(nodeKey, nodesSldLayout[nodeKey], warpObj, 'slideLayoutBg')\r\n// if (ret) elements.push(ret)\r\n// }\r\n// }\r\n// }\r\n// }\r\n// if (nodesSldMaster && (showMasterSp === '1' || showMasterSp)) {\r\n// for (const nodeKey in nodesSldMaster) {\r\n// if (nodesSldMaster[nodeKey].constructor === Array) {\r\n// for (let i = 0; i < nodesSldMaster[nodeKey].length; i++) {\r\n// const ret = await processNodesInSlide(nodeKey, nodesSldMaster[nodeKey][i], warpObj, 'slideMasterBg')\r\n// if (ret) elements.push(ret)\r\n// }\r\n// } \r\n// else {\r\n// const ret = await processNodesInSlide(nodeKey, nodesSldMaster[nodeKey], warpObj, 'slideMasterBg')\r\n// if (ret) elements.push(ret)\r\n// }\r\n// }\r\n// }\r\n// return elements\r\n// }\r\n\r\nfunction indexNodes(content) {\r\n const keys = Object.keys(content)\r\n const spTreeNode = content[keys[0]]['p:cSld']['p:spTree']\r\n const idTable = {}\r\n const idxTable = {}\r\n const typeTable = {}\r\n\r\n for (const key in spTreeNode) {\r\n if (key === 'p:nvGrpSpPr' || key === 'p:grpSpPr') continue\r\n\r\n const targetNode = spTreeNode[key]\r\n\r\n if (targetNode.constructor === Array) {\r\n for (const targetNodeItem of targetNode) {\r\n const nvSpPrNode = targetNodeItem['p:nvSpPr']\r\n const id = getTextByPathList(nvSpPrNode, ['p:cNvPr', 'attrs', 'id'])\r\n const idx = getTextByPathList(nvSpPrNode, ['p:nvPr', 'p:ph', 'attrs', 'idx'])\r\n const type = getTextByPathList(nvSpPrNode, ['p:nvPr', 'p:ph', 'attrs', 'type'])\r\n\r\n if (id) idTable[id] = targetNodeItem\r\n if (idx) idxTable[idx] = targetNodeItem\r\n if (type) typeTable[type] = targetNodeItem\r\n }\r\n } \r\n else {\r\n const nvSpPrNode = targetNode['p:nvSpPr']\r\n const id = getTextByPathList(nvSpPrNode, ['p:cNvPr', 'attrs', 'id'])\r\n const idx = getTextByPathList(nvSpPrNode, ['p:nvPr', 'p:ph', 'attrs', 'idx'])\r\n const type = getTextByPathList(nvSpPrNode, ['p:nvPr', 'p:ph', 'attrs', 'type'])\r\n\r\n if (id) idTable[id] = targetNode\r\n if (idx) idxTable[idx] = targetNode\r\n if (type) typeTable[type] = targetNode\r\n }\r\n }\r\n\r\n return { idTable, idxTable, typeTable }\r\n}\r\n\r\nasync function processNodesInSlide(nodeKey, nodeValue, warpObj, source) {\r\n let json\r\n\r\n switch (nodeKey) {\r\n case 'p:sp': // Shape, Text\r\n json = processSpNode(nodeValue, warpObj, source)\r\n break\r\n case 'p:cxnSp': // Shape, Text\r\n json = processCxnSpNode(nodeValue, warpObj, source)\r\n break\r\n case 'p:pic': // Image, Video, Audio\r\n json = processPicNode(nodeValue, warpObj, source)\r\n break\r\n case 'p:graphicFrame': // Chart, Diagram, Table\r\n json = await processGraphicFrameNode(nodeValue, warpObj, source)\r\n break\r\n case 'p:grpSp':\r\n json = await processGroupSpNode(nodeValue, warpObj, source)\r\n break\r\n case 'mc:AlternateContent':\r\n json = await processGroupSpNode(getTextByPathList(nodeValue, ['mc:Fallback']), warpObj, source)\r\n break\r\n default:\r\n }\r\n\r\n return json\r\n}\r\n\r\nasync function processGroupSpNode(node, warpObj, source) {\r\n const xfrmNode = getTextByPathList(node, ['p:grpSpPr', 'a:xfrm'])\r\n if (!xfrmNode) return null\r\n\r\n const x = parseInt(xfrmNode['a:off']['attrs']['x']) * RATIO_EMUs_Points\r\n const y = parseInt(xfrmNode['a:off']['attrs']['y']) * RATIO_EMUs_Points\r\n const chx = parseInt(xfrmNode['a:chOff']['attrs']['x']) * RATIO_EMUs_Points\r\n const chy = parseInt(xfrmNode['a:chOff']['attrs']['y']) * RATIO_EMUs_Points\r\n const cx = parseInt(xfrmNode['a:ext']['attrs']['cx']) * RATIO_EMUs_Points\r\n const cy = parseInt(xfrmNode['a:ext']['attrs']['cy']) * RATIO_EMUs_Points\r\n const chcx = parseInt(xfrmNode['a:chExt']['attrs']['cx']) * RATIO_EMUs_Points\r\n const chcy = parseInt(xfrmNode['a:chExt']['attrs']['cy']) * RATIO_EMUs_Points\r\n\r\n let rotate = getTextByPathList(xfrmNode, ['attrs', 'rot']) || 0\r\n if (rotate) rotate = angleToDegrees(rotate)\r\n\r\n const ws = cx / chcx\r\n const hs = cy / chcy\r\n\r\n const elements = []\r\n for (const nodeKey in node) {\r\n if (node[nodeKey].constructor === Array) {\r\n for (const item of node[nodeKey]) {\r\n const ret = await processNodesInSlide(nodeKey, item, warpObj, source)\r\n if (ret) elements.push(ret)\r\n }\r\n }\r\n else {\r\n const ret = await processNodesInSlide(nodeKey, node[nodeKey], warpObj, source)\r\n if (ret) elements.push(ret)\r\n }\r\n }\r\n\r\n return {\r\n type: 'group',\r\n top: y,\r\n left: x,\r\n width: cx,\r\n height: cy,\r\n rotate,\r\n elements: elements.map(element => ({\r\n ...element,\r\n left: (element.left - chx) * ws,\r\n top: (element.top - chy) * hs,\r\n width: element.width * ws,\r\n height: element.height * hs,\r\n }))\r\n }\r\n}\r\n\r\nfunction processSpNode(node, warpObj, source) {\r\n const name = getTextByPathList(node, ['p:nvSpPr', 'p:cNvPr', 'attrs', 'name'])\r\n const idx = getTextByPathList(node, ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'idx'])\r\n let type = getTextByPathList(node, ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'type'])\r\n\r\n let slideLayoutSpNode, slideMasterSpNode\r\n\r\n if (type) {\r\n if (idx) {\r\n slideLayoutSpNode = warpObj['slideLayoutTables']['typeTable'][type]\r\n slideMasterSpNode = warpObj['slideMasterTables']['typeTable'][type]\r\n } \r\n else {\r\n slideLayoutSpNode = warpObj['slideLayoutTables']['typeTable'][type]\r\n slideMasterSpNode = warpObj['slideMasterTables']['typeTable'][type]\r\n }\r\n }\r\n else if (idx) {\r\n slideLayoutSpNode = warpObj['slideLayoutTables']['idxTable'][idx]\r\n slideMasterSpNode = warpObj['slideMasterTables']['idxTable'][idx]\r\n }\r\n\r\n if (!type) {\r\n const txBoxVal = getTextByPathList(node, ['p:nvSpPr', 'p:cNvSpPr', 'attrs', 'txBox'])\r\n if (txBoxVal === '1') type = 'text'\r\n }\r\n if (!type) type = getTextByPathList(slideLayoutSpNode, ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'type'])\r\n if (!type) type = getTextByPathList(slideMasterSpNode, ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'type'])\r\n\r\n if (!type) {\r\n if (source === 'diagramBg') type = 'diagram'\r\n else type = 'obj'\r\n }\r\n\r\n return genShape(node, slideLayoutSpNode, slideMasterSpNode, name, type, warpObj)\r\n}\r\n\r\nfunction processCxnSpNode(node, warpObj) {\r\n const name = node['p:nvCxnSpPr']['p:cNvPr']['attrs']['name']\r\n const type = (node['p:nvCxnSpPr']['p:nvPr']['p:ph'] === undefined) ? undefined : node['p:nvSpPr']['p:nvPr']['p:ph']['attrs']['type']\r\n\r\n return genShape(node, undefined, undefined, name, type, warpObj)\r\n}\r\n\r\nfunction genShape(node, slideLayoutSpNode, slideMasterSpNode, name, type, warpObj) {\r\n const xfrmList = ['p:spPr', 'a:xfrm']\r\n const slideXfrmNode = getTextByPathList(node, xfrmList)\r\n const slideLayoutXfrmNode = getTextByPathList(slideLayoutSpNode, xfrmList)\r\n const slideMasterXfrmNode = getTextByPathList(slideMasterSpNode, xfrmList)\r\n\r\n const shapType = getTextByPathList(node, ['p:spPr', 'a:prstGeom', 'attrs', 'prst'])\r\n const custShapType = getTextByPathList(node, ['p:spPr', 'a:custGeom'])\r\n\r\n const { top, left } = getPosition(slideXfrmNode, slideLayoutXfrmNode, slideMasterXfrmNode)\r\n const { width, height } = getSize(slideXfrmNode, slideLayoutXfrmNode, slideMasterXfrmNode)\r\n\r\n const isFlipV = getTextByPathList(slideXfrmNode, ['attrs', 'flipV']) === '1'\r\n const isFlipH = getTextByPathList(slideXfrmNode, ['attrs', 'flipH']) === '1'\r\n\r\n const rotate = angleToDegrees(getTextByPathList(slideXfrmNode, ['attrs', 'rot']))\r\n\r\n const txtXframeNode = getTextByPathList(node, ['p:txXfrm'])\r\n let txtRotate\r\n if (txtXframeNode) {\r\n const txtXframeRot = getTextByPathList(txtXframeNode, ['attrs', 'rot'])\r\n if (txtXframeRot) txtRotate = angleToDegrees(txtXframeRot) + 90\r\n } \r\n else txtRotate = rotate\r\n\r\n let content = ''\r\n if (node['p:txBody']) content = genTextBody(node['p:txBody'], node, slideLayoutSpNode, type, warpObj)\r\n\r\n const { borderColor, borderWidth, borderType, strokeDasharray } = getBorder(node, type, warpObj)\r\n const fillColor = getShapeFill(node, undefined, warpObj) || ''\r\n\r\n let shadow\r\n const outerShdwNode = getTextByPathList(node, ['p:spPr', 'a:effectLst', 'a:outerShdw'])\r\n if (outerShdwNode) shadow = getShadow(outerShdwNode, warpObj)\r\n\r\n const vAlign = getVerticalAlign(node, slideLayoutSpNode, slideMasterSpNode, type)\r\n const isVertical = getTextByPathList(node, ['p:txBody', 'a:bodyPr', 'attrs', 'vert']) === 'eaVert'\r\n\r\n const data = {\r\n left,\r\n top,\r\n width,\r\n height,\r\n borderColor,\r\n borderWidth,\r\n borderType,\r\n borderStrokeDasharray: strokeDasharray,\r\n fillColor,\r\n content,\r\n isFlipV,\r\n isFlipH,\r\n rotate,\r\n vAlign,\r\n name,\r\n }\r\n\r\n if (shadow) data.shadow = shadow\r\n\r\n if (custShapType && type !== 'diagram') {\r\n const ext = getTextByPathList(slideXfrmNode, ['a:ext', 'attrs'])\r\n const w = parseInt(ext['cx']) * RATIO_EMUs_Points\r\n const h = parseInt(ext['cy']) * RATIO_EMUs_Points\r\n const d = getCustomShapePath(custShapType, w, h)\r\n\r\n return {\r\n ...data,\r\n type: 'shape',\r\n shapType: 'custom',\r\n path: d,\r\n }\r\n }\r\n if (shapType && (type === 'obj' || !type)) {\r\n return {\r\n ...data,\r\n type: 'shape',\r\n shapType,\r\n }\r\n }\r\n return {\r\n ...data,\r\n type: 'text',\r\n isVertical,\r\n rotate: txtRotate,\r\n }\r\n}\r\n\r\nasync function processPicNode(node, warpObj, source) {\r\n let resObj\r\n if (source === 'slideMasterBg') resObj = warpObj['masterResObj']\r\n else if (source === 'slideLayoutBg') resObj = warpObj['layoutResObj']\r\n else resObj = warpObj['slideResObj']\r\n \r\n const rid = node['p:blipFill']['a:blip']['attrs']['r:embed']\r\n const imgName = resObj[rid]['target']\r\n const imgFileExt = extractFileExtension(imgName).toLowerCase()\r\n const zip = warpObj['zip']\r\n const imgArrayBuffer = await zip.file(imgName).async('arraybuffer')\r\n const xfrmNode = node['p:spPr']['a:xfrm']\r\n\r\n const mimeType = getMimeType(imgFileExt)\r\n const { top, left } = getPosition(xfrmNode, undefined, undefined)\r\n const { width, height } = getSize(xfrmNode, undefined, undefined)\r\n const src = `data:${mimeType};base64,${base64ArrayBuffer(imgArrayBuffer)}`\r\n\r\n const isFlipV = getTextByPathList(xfrmNode, ['attrs', 'flipV']) === '1'\r\n const isFlipH = getTextByPathList(xfrmNode, ['attrs', 'flipH']) === '1'\r\n\r\n let rotate = 0\r\n const rotateNode = getTextByPathList(node, ['p:spPr', 'a:xfrm', 'attrs', 'rot'])\r\n if (rotateNode) rotate = angleToDegrees(rotateNode)\r\n\r\n const videoNode = getTextByPathList(node, ['p:nvPicPr', 'p:nvPr', 'a:videoFile'])\r\n let videoRid, videoFile, videoFileExt, videoMimeType, uInt8ArrayVideo, videoBlob\r\n let isVdeoLink = false\r\n\r\n if (videoNode) {\r\n videoRid = videoNode['attrs']['r:link']\r\n videoFile = resObj[videoRid]['target']\r\n if (isVideoLink(videoFile)) {\r\n videoFile = escapeHtml(videoFile)\r\n isVdeoLink = true\r\n } \r\n else {\r\n videoFileExt = extractFileExtension(videoFile).toLowerCase()\r\n if (videoFileExt === 'mp4' || videoFileExt === 'webm' || videoFileExt === 'ogg') {\r\n uInt8ArrayVideo = await zip.file(videoFile).async('arraybuffer')\r\n videoMimeType = getMimeType(videoFileExt)\r\n videoBlob = URL.createObjectURL(new Blob([uInt8ArrayVideo], {\r\n type: videoMimeType\r\n }))\r\n }\r\n }\r\n }\r\n\r\n const audioNode = getTextByPathList(node, ['p:nvPicPr', 'p:nvPr', 'a:audioFile'])\r\n let audioRid, audioFile, audioFileExt, uInt8ArrayAudio, audioBlob\r\n if (audioNode) {\r\n audioRid = audioNode['attrs']['r:link']\r\n audioFile = resObj[audioRid]['target']\r\n audioFileExt = extractFileExtension(audioFile).toLowerCase()\r\n if (audioFileExt === 'mp3' || audioFileExt === 'wav' || audioFileExt === 'ogg') {\r\n uInt8ArrayAudio = await zip.file(audioFile).async('arraybuffer')\r\n audioBlob = URL.createObjectURL(new Blob([uInt8ArrayAudio]))\r\n }\r\n }\r\n\r\n if (videoNode && !isVdeoLink) {\r\n return {\r\n type: 'video',\r\n top,\r\n left,\r\n width, \r\n height,\r\n rotate,\r\n blob: videoBlob,\r\n }\r\n } \r\n if (videoNode && isVdeoLink) {\r\n return {\r\n type: 'video',\r\n top,\r\n left,\r\n width, \r\n height,\r\n rotate,\r\n src: videoFile,\r\n }\r\n }\r\n if (audioNode) {\r\n return {\r\n type: 'audio',\r\n top,\r\n left,\r\n width, \r\n height,\r\n rotate,\r\n blob: audioBlob,\r\n }\r\n }\r\n return {\r\n type: 'image',\r\n top,\r\n left,\r\n width, \r\n height,\r\n rotate,\r\n src,\r\n isFlipV,\r\n isFlipH\r\n }\r\n}\r\n\r\nasync function processGraphicFrameNode(node, warpObj, source) {\r\n const graphicTypeUri = getTextByPathList(node, ['a:graphic', 'a:graphicData', 'attrs', 'uri'])\r\n \r\n let result\r\n switch (graphicTypeUri) {\r\n case 'http://schemas.openxmlformats.org/drawingml/2006/table':\r\n result = genTable(node, warpObj)\r\n break\r\n case 'http://schemas.openxmlformats.org/drawingml/2006/chart':\r\n result = await genChart(node, warpObj)\r\n break\r\n case 'http://schemas.openxmlformats.org/drawingml/2006/diagram':\r\n result = genDiagram(node, warpObj)\r\n break\r\n case 'http://schemas.openxmlformats.org/presentationml/2006/ole':\r\n let oleObjNode = getTextByPathList(node, ['a:graphic', 'a:graphicData', 'mc:AlternateContent', 'mc:Fallback', 'p:oleObj'])\r\n if (!oleObjNode) oleObjNode = getTextByPathList(node, ['a:graphic', 'a:graphicData', 'p:oleObj'])\r\n else processGroupSpNode(oleObjNode, warpObj, source)\r\n break\r\n default:\r\n }\r\n return result\r\n}\r\n\r\nfunction genTable(node, warpObj) {\r\n const tableNode = getTextByPathList(node, ['a:graphic', 'a:graphicData', 'a:tbl'])\r\n const xfrmNode = getTextByPathList(node, ['p:xfrm'])\r\n const { top, left } = getPosition(xfrmNode, undefined, undefined)\r\n const { width, height } = getSize(xfrmNode, undefined, undefined)\r\n\r\n const getTblPr = getTextByPathList(node, ['a:graphic', 'a:graphicData', 'a:tbl', 'a:tblPr'])\r\n\r\n const firstRowAttr = getTblPr['attrs'] ? getTblPr['attrs']['firstRow'] : undefined\r\n const firstColAttr = getTblPr['attrs'] ? getTblPr['attrs']['firstCol'] : undefined\r\n const lastRowAttr = getTblPr['attrs'] ? getTblPr['attrs']['lastRow'] : undefined\r\n const lastColAttr = getTblPr['attrs'] ? getTblPr['attrs']['lastCol'] : undefined\r\n const bandRowAttr = getTblPr['attrs'] ? getTblPr['attrs']['bandRow'] : undefined\r\n const bandColAttr = getTblPr['attrs'] ? getTblPr['attrs']['bandCol'] : undefined\r\n const tblStylAttrObj = {\r\n isFrstRowAttr: (firstRowAttr && firstRowAttr === '1') ? 1 : 0,\r\n isFrstColAttr: (firstColAttr && firstColAttr === '1') ? 1 : 0,\r\n isLstRowAttr: (lastRowAttr && lastRowAttr === '1') ? 1 : 0,\r\n isLstColAttr: (lastColAttr && lastColAttr === '1') ? 1 : 0,\r\n isBandRowAttr: (bandRowAttr && bandRowAttr === '1') ? 1 : 0,\r\n isBandColAttr: (bandColAttr && bandColAttr === '1') ? 1 : 0,\r\n }\r\n\r\n let thisTblStyle\r\n const tbleStyleId = getTblPr['a:tableStyleId']\r\n if (tbleStyleId) {\r\n const tbleStylList = warpObj['tableStyles']['a:tblStyleLst']['a:tblStyle']\r\n if (tbleStylList) {\r\n if (tbleStylList.constructor === Array) {\r\n for (let k = 0; k < tbleStylList.length; k++) {\r\n if (tbleStylList[k]['attrs']['styleId'] === tbleStyleId) {\r\n thisTblStyle = tbleStylList[k]\r\n }\r\n }\r\n } \r\n else {\r\n if (tbleStylList['attrs']['styleId'] === tbleStyleId) {\r\n thisTblStyle = tbleStylList\r\n }\r\n }\r\n }\r\n }\r\n if (thisTblStyle) thisTblStyle['tblStylAttrObj'] = tblStylAttrObj\r\n\r\n let tbl_border\r\n const tblStyl = getTextByPathList(thisTblStyle, ['a:wholeTbl', 'a:tcStyle'])\r\n const tblBorderStyl = getTextByPathList(tblStyl, ['a:tcBdr'])\r\n if (tblBorderStyl) {\r\n const tbl_borders = getTableBorders(tblBorderStyl, warpObj)\r\n if (tbl_borders) tbl_border = tbl_borders.bottom || tbl_borders.left || tbl_borders.right || tbl_borders.top\r\n }\r\n\r\n let tbl_bgcolor = ''\r\n let tbl_bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:tblBg', 'a:fillRef'])\r\n if (tbl_bgFillschemeClr) {\r\n tbl_bgcolor = getSolidFill(tbl_bgFillschemeClr, undefined, undefined, warpObj)\r\n }\r\n if (tbl_bgFillschemeClr === undefined) {\r\n tbl_bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:wholeTbl', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n tbl_bgcolor = getSolidFill(tbl_bgFillschemeClr, undefined, undefined, warpObj)\r\n }\r\n\r\n let trNodes = tableNode['a:tr']\r\n if (trNodes.constructor !== Array) trNodes = [trNodes]\r\n \r\n const data = []\r\n for (let i = 0; i < trNodes.length; i++) {\r\n const trNode = trNodes[i]\r\n\r\n const {\r\n fillColor,\r\n fontColor,\r\n fontBold,\r\n } = getTableRowParams(trNodes, i, tblStylAttrObj, thisTblStyle, warpObj)\r\n\r\n const tcNodes = trNode['a:tc']\r\n const tr = []\r\n\r\n if (tcNodes.constructor === Array) {\r\n for (let j = 0; j < tcNodes.length; j++) {\r\n const tcNode = tcNodes[j]\r\n let a_sorce\r\n if (j === 0 && tblStylAttrObj['isFrstColAttr'] === 1) {\r\n a_sorce = 'a:firstCol'\r\n if (tblStylAttrObj['isLstRowAttr'] === 1 && i === (trNodes.length - 1) && getTextByPathList(thisTblStyle, ['a:seCell'])) {\r\n a_sorce = 'a:seCell'\r\n } \r\n else if (tblStylAttrObj['isFrstRowAttr'] === 1 && i === 0 &&\r\n getTextByPathList(thisTblStyle, ['a:neCell'])) {\r\n a_sorce = 'a:neCell'\r\n }\r\n } \r\n else if (\r\n (j > 0 && tblStylAttrObj['isBandColAttr'] === 1) &&\r\n !(tblStylAttrObj['isFrstColAttr'] === 1 && i === 0) &&\r\n !(tblStylAttrObj['isLstRowAttr'] === 1 && i === (trNodes.length - 1)) &&\r\n j !== (tcNodes.length - 1)\r\n ) {\r\n if ((j % 2) !== 0) {\r\n let aBandNode = getTextByPathList(thisTblStyle, ['a:band2V'])\r\n if (aBandNode === undefined) {\r\n aBandNode = getTextByPathList(thisTblStyle, ['a:band1V'])\r\n if (aBandNode) a_sorce = 'a:band2V'\r\n } \r\n else a_sorce = 'a:band2V'\r\n }\r\n }\r\n if (j === (tcNodes.length - 1) && tblStylAttrObj['isLstColAttr'] === 1) {\r\n a_sorce = 'a:lastCol'\r\n if (tblStylAttrObj['isLstRowAttr'] === 1 && i === (trNodes.length - 1) && getTextByPathList(thisTblStyle, ['a:swCell'])) {\r\n a_sorce = 'a:swCell'\r\n } \r\n else if (tblStylAttrObj['isFrstRowAttr'] === 1 && i === 0 && getTextByPathList(thisTblStyle, ['a:nwCell'])) {\r\n a_sorce = 'a:nwCell'\r\n }\r\n }\r\n const text = genTextBody(tcNode['a:txBody'], tcNode, undefined, undefined, warpObj)\r\n const cell = getTableCellParams(tcNode, thisTblStyle, a_sorce, warpObj)\r\n const td = { text }\r\n if (cell.rowSpan) td.rowSpan = cell.rowSpan\r\n if (cell.colSpan) td.colSpan = cell.colSpan\r\n if (cell.vMerge) td.vMerge = cell.vMerge\r\n if (cell.hMerge) td.hMerge = cell.hMerge\r\n if (cell.fontBold || fontBold) td.fontBold = cell.fontBold || fontBold\r\n if (cell.fontColor || fontColor) td.fontColor = cell.fontColor || fontColor\r\n if (cell.fillColor || fillColor || tbl_bgcolor) td.fillColor = cell.fillColor || fillColor || tbl_bgcolor\r\n\r\n tr.push(td)\r\n }\r\n } \r\n else {\r\n let a_sorce\r\n if (tblStylAttrObj['isFrstColAttr'] === 1 && tblStylAttrObj['isLstRowAttr'] !== 1) {\r\n a_sorce = 'a:firstCol'\r\n } \r\n else if (tblStylAttrObj['isBandColAttr'] === 1 && tblStylAttrObj['isLstRowAttr'] !== 1) {\r\n let aBandNode = getTextByPathList(thisTblStyle, ['a:band2V'])\r\n if (!aBandNode) {\r\n aBandNode = getTextByPathList(thisTblStyle, ['a:band1V'])\r\n if (aBandNode) a_sorce = 'a:band2V'\r\n } \r\n else a_sorce = 'a:band2V'\r\n }\r\n if (tblStylAttrObj['isLstColAttr'] === 1 && tblStylAttrObj['isLstRowAttr'] !== 1) {\r\n a_sorce = 'a:lastCol'\r\n }\r\n\r\n const text = genTextBody(tcNodes['a:txBody'], tcNodes, undefined, undefined, warpObj)\r\n const cell = getTableCellParams(tcNodes, thisTblStyle, a_sorce, warpObj)\r\n const td = { text }\r\n if (cell.rowSpan) td.rowSpan = cell.rowSpan\r\n if (cell.colSpan) td.colSpan = cell.colSpan\r\n if (cell.vMerge) td.vMerge = cell.vMerge\r\n if (cell.hMerge) td.hMerge = cell.hMerge\r\n if (cell.fontBold || fontBold) td.fontBold = cell.fontBold || fontBold\r\n if (cell.fontColor || fontColor) td.fontColor = cell.fontColor || fontColor\r\n if (cell.fillColor || fillColor || tbl_bgcolor) td.fillColor = cell.fillColor || fillColor || tbl_bgcolor\r\n\r\n tr.push(td)\r\n }\r\n data.push(tr)\r\n }\r\n\r\n return {\r\n type: 'table',\r\n top,\r\n left,\r\n width,\r\n height,\r\n data,\r\n ...(tbl_border || {}),\r\n }\r\n}\r\n\r\nasync function genChart(node, warpObj) {\r\n const xfrmNode = getTextByPathList(node, ['p:xfrm'])\r\n const { top, left } = getPosition(xfrmNode, undefined, undefined)\r\n const { width, height } = getSize(xfrmNode, undefined, undefined)\r\n\r\n const rid = node['a:graphic']['a:graphicData']['c:chart']['attrs']['r:id']\r\n const refName = warpObj['slideResObj'][rid]['target']\r\n const content = await readXmlFile(warpObj['zip'], refName)\r\n const plotArea = getTextByPathList(content, ['c:chartSpace', 'c:chart', 'c:plotArea'])\r\n\r\n const chart = getChartInfo(plotArea)\r\n\r\n if (!chart) return {}\r\n\r\n const data = {\r\n type: 'chart',\r\n top,\r\n left,\r\n width,\r\n height,\r\n data: chart.data,\r\n chartType: chart.type,\r\n }\r\n if (chart.marker !== undefined) data.marker = chart.marker\r\n if (chart.barDir !== undefined) data.barDir = chart.barDir\r\n if (chart.holeSize !== undefined) data.holeSize = chart.holeSize\r\n if (chart.grouping !== undefined) data.grouping = chart.grouping\r\n if (chart.style !== undefined) data.style = chart.style\r\n\r\n return data\r\n}\r\n\r\nfunction genDiagram(node, warpObj) {\r\n const xfrmNode = getTextByPathList(node, ['p:xfrm'])\r\n const { left, top } = getPosition(xfrmNode, undefined, undefined)\r\n const { width, height } = getSize(xfrmNode, undefined, undefined)\r\n \r\n const dgmDrwSpArray = getTextByPathList(warpObj['digramFileContent'], ['p:drawing', 'p:spTree', 'p:sp'])\r\n const elements = []\r\n if (dgmDrwSpArray) {\r\n for (const item of dgmDrwSpArray) {\r\n const el = processSpNode(item, warpObj, 'diagramBg')\r\n if (el) elements.push(el)\r\n }\r\n }\r\n\r\n return {\r\n type: 'diagram',\r\n left,\r\n top,\r\n width,\r\n height,\r\n elements,\r\n }\r\n}"],"names":["_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","_asyncToGenerator","fn","self","this","args","arguments","apply","err","undefined","_typeof","module","exports","Symbol","iterator","constructor","prototype","__esModule","require$$0","_regeneratorRuntime","Op","hasOwn","hasOwnProperty","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","record","result","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","runtime","regenerator","regeneratorRuntime","accidentalStrictMode","globalThis","Function","global$1","global","window","lookup","revLookup","Arr","Uint8Array","Array","inited","init","code","len","charCodeAt","encodeChunk","uint8","start","end","tmp","num","output","join","fromByteArray","extraBytes","parts","maxChunkLength","len2","read","buffer","offset","isLE","mLen","nBytes","e","m","eLen","eMax","eBias","nBits","d","s","NaN","Infinity","Math","pow","write","c","rt","abs","floor","log","LN2","toString","isArray$1","isArray","arr","Buffer","TYPED_ARRAY_SUPPORT","_kMaxLength","kMaxLength","createBuffer","that","RangeError","encodingOrOffset","allocUnsafe","from","ArrayBuffer","array","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","fromString","internalIsBuffer","checked","copy","data","fromObject","assertSize","size","b","_isBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","bidirectionalIndexOf","dir","arrayIndexOf","indexOf","lastIndexOf","indexSize","arrLength","valLength","String","buf","readUInt16BE","foundIndex","found","j","hexWrite","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","base64.fromByteArray","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","fromCharCode","decodeCodePointsArray","poolSize","_augment","species","alloc","fill","allocUnsafeSlow","isBuffer","compare","a","x","y","concat","list","pos","swap16","swap32","swap64","equals","inspect","match","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","max","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","ieee754.write","writeDouble","newBuf","subarray","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","ieee754.read","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","INVALID_BASE64_RE","leadSurrogate","b64","l","placeHolders","L","base64.toByteArray","trim","replace","stringtrim","base64clean","src","dst","isFastBuffer","isSlowBuffer","defaultSetTimout","defaultClearTimeout","cachedSetTimeout","cachedClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","nextTick","Item","noop","on","addListener","once","off","removeListener","removeAllListeners","emit","performance","performanceNow","now","mozNow","msNow","oNow","webkitNow","Date","getTime","startTime","process","title","browser","env","argv","version","versions","binding","cwd","chdir","umask","hrtime","previousTimestamp","clocktime","seconds","nanoseconds","platform","release","config","uptime","EventHandlers","EventEmitter","$getMaxListeners","_maxListeners","defaultMaxListeners","emitNone","handler","isFn","listeners","arrayClone","emitOne","arg1","emitTwo","arg2","emitThree","arg3","emitMany","_addListener","listener","prepend","events","existing","_events","newListener","_eventsCount","unshift","warned","w","emitter","count","console","warn","_onceWrap","fired","g","listenerCount","evlistener","usingDomains","domain","active","setMaxListeners","getMaxListeners","er","doError","domainEmitter","domainThrown","prependListener","prependOnceListener","position","originalListener","index","k","spliceOne","unwrapListeners","eventNames","Reflect","ownKeys","inherits$2","superCtor","super_","TempCtor","formatRegExp","format","f","isString","objects","JSON","stringify","_","isNull","isObject","deprecate","msg","isUndefined","noDeprecation","throwDeprecation","traceDeprecation","trace","debugEnviron","debugs","debuglog","NODE_DEBUG","toUpperCase","RegExp","test","opts","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","style","styles","recurseTimes","isFunction","primitive","simple","isNumber","formatPrimitive","visibleKeys","hash","idx","arrayToHash","getOwnPropertyNames","isError","formatError","isRegExp","isDate","base","braces","toUTCString","formatProperty","formatArray","map","reduce","cur","reduceToSingleString","getOwnPropertyDescriptor","get","split","line","ar","isNullOrUndefined","isSymbol","re","objectToString","isPrimitive","maybeBuf","Buffer.isBuffer","o","pad","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","special","number","boolean","null","date","regexp","months","timestamp","time","getHours","getMinutes","getSeconds","getDate","getMonth","origin","add","prop","util$1","inherits","BufferList","head","tail","v","shift","clear","p","isBufferEncoding","StringDecoder","assertEncoding","surrogateSize","detectIncompleteChar","utf16DetectIncompleteChar","base64DetectIncompleteChar","passThroughWrite","charBuffer","charReceived","charLength","charStr","available","charCode","substring","cr","enc","Readable","ReadableState","debug","options","stream","objectMode","Duplex","readableObjectMode","hwm","highWaterMark","defaultHwm","pipes","pipesCount","flowing","ended","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","defaultEncoding","ranOut","awaitDrain","readingMore","decoder","_readableState","readable","_read","readableAddChunk","chunk","addToFront","chunkInvalid","emitReadable","onEofChunk","_e","skipAdd","maybeReadMore_","maybeReadMore","needMoreData","isPaused","setEncoding","howMuchToRead","computeNewHighWaterMark","emitReadable_","flow","nReadingNextTick","resume_","fromList","hasStrings","nb","copyFromBufferString","copyFromBuffer","fromListPartial","endReadable","endReadableNT","xs","nop","WriteReq","cb","callback","WritableState","getBuffer","writableObjectMode","needDrain","ending","finished","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","_writableState","writecb","writelen","onwriteStateUpdate","pendingcb","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","corkedRequestsFree","CorkedRequest","Writable","_write","writev","_writev","doWrite","onwriteDrain","finishMaybe","holder","prefinish","need","_this","nOrig","doRead","pipe","dest","pipeOpts","endFn","onend","cleanup","onunpipe","ondrain","pipeOnDrain","cleanedUp","onclose","onfinish","onerror","ondata","increasedAwaitDrain","pause","unpipe","event","resume","dests","_i","splice","ev","paused","bind","_fromList","current","writeAfterEnd","valid","validChunk","decodeChunk","last","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","allowHalfOpen","onEndNT","TransformState","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","Transform","transform","_transform","flush","_flush","ws","PassThrough","Stream","EE","source","_isStdio","didOnEnd","destroy","processNextickArgsModule","process.nextTick","copyProps","SafeBuffer","SlowBuffer","util","inherits_browserModule","require$$1","instance","Constructor","_classCallCheck","custom","pna","emitErrorNT","destroy_1","readableDestroyed","destroyed","writableDestroyed","_destroy","undestroy","corkReq","onCorkedFinish","_stream_writable","asyncWrite","require$$2","internalUtil","node","require$$4","require$$5","OurUint8Array","realHasInstance","destroyImpl","require$$6","require$$7","isDuplex","writableHwm","writableHighWaterMark","finalCalled","final","_final","allBuffers","isBuf","callFinal","hasInstance","_uint8ArrayToBuffer","newChunk","_undestroy","objectKeys","_stream_duplex","require$$3","nenc","retried","_normalizeEncoding","normalizeEncoding","text","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","r","utf8CheckExtraBytes","string_decoder","total","utf8CheckIncomplete","_stream_readable","isarray","EElistenerCount","debugUtil","require$$8","require$$9","kProxyEvents","require$$10","readableHwm","readableHighWaterMark","require$$11","skipChunkCheck","addChunk","MAX_HWM","stdout","stderr","unpipeInfo","hasUnpiped","_stream_transform","_this2","err2","READABLE_STREAM","_stream_passthrough","support","base64","arraybuffer","nodebuffer","uint8array","blob","Blob","builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","append","getBlob","nodestream","utils","_keyStr","encode","input","chr1","chr2","chr3","enc1","enc2","enc3","enc4","remainingBytes","getTypeOf","decode","resultIndex","dataUrlPrefix","totalLength","nodejsUtils","isNode","newBufferFrom","allocBuffer","isStream","ES6Promise","immediate","scheduleDrain","Mutation","MutationObserver","WebKitMutationObserver","called","observer","element","document","createTextNode","observe","characterData","setImmediate","MessageChannel","createElement","scriptEl","onreadystatechange","parentNode","removeChild","documentElement","appendChild","channel","port1","onmessage","port2","postMessage","oldQueue","lib","task","INTERNAL","handlers","REJECTED","FULFILLED","PENDING","resolver","outcome","safelyResolveThenable","QueueItem","promise","onFulfilled","onRejected","callFulfilled","otherCallFulfilled","callRejected","otherCallRejected","unwrap","func","returnValue","getThen","thenable","onError","onSuccess","status","finally","reason","all","resolved","allResolver","outValue","race","response","external","identity","stringToArrayLike","newBlob","part","checkSupport","arrayToStringHelper","stringifyByChunk","stringifyByChar","resultStr","applyCanBeUsed","arrayLikeToString","canUseApply","arrayLikeToArrayLike","arrayFrom","arrayTo","applyFromCharCode","transformTo","outputType","inputType","path","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","delay","Obj","extend","attr","prepareContent","inputData","isBinary","isOptimizedBinaryString","isBase64","FileReader","reader","onload","readAsArrayBuffer","dataType","GenericWorker","streamInfo","generatedError","extraStreamInfo","isFinished","isLocked","_listeners","previous","registerImmediate","html","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","script","random","addEventListener","attachEvent","clearImmediate","cleanUp","registerPrevious","mergeStreamInfo","processChunk","withError","withStreamInfo","lock","me","GenericWorker_1","_utf8len","Utf8DecodeWorker","leftOver","Utf8EncodeWorker","utf8encode","c2","m_pos","str_len","buf_len","string2buf","utf8decode","c_len","utf16buf","buf2string","previousData","nextBoundary","utf8border","usableData","meta","ConvertWorker","destType","ConvertWorker_1","NodejsStreamOutputAdapter","helper","updateCb","_helper","NodejsStreamOutputAdapter_1","accumulate","updateCallback","dataArray","chunkType","_internalType","resultType","_outputType","mimeType","_mimeType","content","transformZipOutput","StreamHelper","worker","internalType","_worker","evt","toNodejsStream","StreamHelper_1","defaults","DataWorker","dataP","dataIsReady","_tickScheduled","_tickAndRepeat","_tick","nextIndex","percent","DataWorker_1","crcTable","table","makeTable","crc32_1","crc","t","crc32","crc32str","Crc32Probe","Crc32Probe_1","DataLengthProbe","propName","CompressedObject","compressedSize","uncompressedSize","compression","compressedContent","getContentWorker","uncompressWorker","getCompressedWorker","createWorkerFrom","uncompressedWorker","compressionOptions","compressWorker","compressedObject","utf8","ZipObject","comment","unixPermissions","dosPermissions","_data","_dataBinary","binary","internalStream","askUnicodeString","_decompressWorker","isUnicodeString","onUpdate","nodeStream","_compressWorker","magic","removedMethods","removedFn","zipObject","TYPED_OK","Uint16Array","Int32Array","_has","assign","sources","shrinkBuf","fnTyped","arraySet","src_offs","dest_offs","flattenChunks","chunks","fnUntyped","setTyped","Buf8","Buf16","Buf32","zero","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","static_dtree","D_CODES","_dist_code","_length_code","MAX_MATCH","base_length","static_l_desc","static_d_desc","static_bl_desc","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","dist","put_short","pending_buf","pending","send_bits","bi_valid","bi_buf","send_code","tree","bi_reverse","gen_codes","bl_count","bits","next_code","MAX_BITS","init_block","LITERALS","dyn_ltree","dyn_dtree","bl_tree","END_BLOCK","opt_len","static_len","last_lit","matches","bi_windup","smaller","_n2","_m2","pqdownheap","heap","heap_len","compress_block","ltree","dtree","lc","extra","lx","d_buf","l_buf","build_tree","stree","heap_max","h","xbits","overflow","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","_tr_stored_block","stored_len","header","copy_block","trees","_tr_init","LENGTH_CODES","L_CODES","tr_static_init","l_desc","d_desc","bl_desc","_tr_flush_block","opt_lenb","static_lenb","max_blindex","level","strm","data_type","black_mask","detect_data_type","BL_CODES","build_bl_tree","strategy","lcodes","dcodes","blcodes","rank","send_all_trees","_tr_tally","lit_bufsize","_tr_align","STATIC_TREES","bi_flush","adler32_1","adler","s1","s2","configuration_table","messages","adler32","errorCode","flush_pending","avail_out","pending_out","next_out","total_out","flush_block_only","block_start","strstart","put_byte","putShortMSB","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","more","_w_size","window_size","hash_size","avail_in","next_in","total_in","insert","ins_h","hash_shift","hash_mask","deflate_fast","hash_head","bflush","match_length","max_lazy_match","MIN_MATCH","deflate_slow","max_insert","prev_match","match_available","Config","good_length","max_lazy","nice_length","max_chain","DeflateState","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","HEAP_SIZE","deflateResetKeep","deflateReset","deflateInit2","windowBits","memLevel","max_block_size","max_start","deflate_1","deflateInit","deflateSetHeader","deflate","old_flush","beg","hcrc","os","bstate","deflate_huff","deflate_rle","deflateEnd","deflateSetDictionary","dictionary","avail","tmpDict","dictLength","deflateInfo","STR_APPLY_OK","STR_APPLY_UIA_OK","__","q","buf2binstring","strings","binstring2buf","zstream","zlib_deflate","ZStream","Deflate","chunkSize","to","opt","raw","gzip","dict","_dict_set","deflator","mode","_mode","onEnd","onData","deflateRaw","lbase","lext","dbase","dext","inflate_fast","_in","_out","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","op","from_source","lencode","distcode","lenbits","distbits","top","dolen","dodist","sane","inflate_table","lens","lens_index","codes","table_index","work","incr","low","mask","here_bits","here_op","here_val","sym","root","curr","drop","left","used","huff","base_index","MAXBITS","offs","extra_index","zswap32","InflateState","havedict","flags","check","wbits","ncode","nlen","ndist","have","lendyn","distdyn","back","was","inflateResetKeep","inflateReset","inflateReset2","inflateInit2","lenfix","distfix","virgin","fixedtables","updatewindow","inflate_1","inflateInit","inflate","put","last_bits","last_op","last_val","hbuf","order","inf_leave","xflags","extra_len","inflateEnd","inflateGetHeader","inflateSetDictionary","inflateInfo","constants","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","zlib_inflate","GZheader","Inflate","inflator","next_out_utf8","utf8str","allowBufError","inflateRaw","ungzip","pako","USE_TYPEDARRAY","Uint32Array","ARRAY_TYPE","FlateWorker","action","_pako","_pakoAction","_pakoOptions","flate","_createPako","compressions","STORE","DEFLATE","signature","decToHex","dec","hex","generateZipParts","streamedContent","streamingEnded","encodeFileName","dosTime","dosDate","file","useCustomEncoding","encodedFileName","utfEncodedFileName","encodedComment","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","extraFields","unicodePathExtraField","unicodeCommentExtraField","dataInfo","bitflag","isDir","extFileAttr","versionMadeBy","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCFullYear","getUTCMonth","getUTCDate","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","generateDataDescriptors","DATA_DESCRIPTOR","ZipFileWorker","streamFiles","bytesWritten","zipComment","zipPlatform","contentBuffer","dirRecords","currentSourceOffset","entriesCount","currentFile","_sources","currentFilePercent","remainingFiles","openedSource","closedSource","localDirLength","centralDirLength","dirEnd","CENTRAL_DIRECTORY_END","generateCentralDirectoryEnd","prepareNextSource","generate","generateWorker","zip","zipFileWorker","relativePath","fileCompression","zipCompression","compressionName","getCompression","NodejsStreamInputAdapter","filename","_upstreamEnded","_bindStream","_stream","NodejsStreamInputAdapter_1","fileAdd","originalOptions","parent","forceTrailingSlash","createFolders","parentFolder","folderAdd","zipObjectContent","optimizedBinaryString","files","lastSlash","load","filter","search","folder","newFolder","clone","remove","kids","generateInternalStream","generateAsync","generateNodeStream","DataReader","checkIndex","newIndex","setIndex","skip","byteAt","readInt","readString","readData","lastIndexOfSignature","readAndCheckSignature","readDate","dostime","UTC","DataReader_1","ArrayReader","sig","sig0","sig1","sig2","sig3","ArrayReader_1","StringReader","StringReader_1","Uint8ArrayReader","Uint8ArrayReader_1","NodeBufferReader","NodeBufferReader_1","readerFor","crc32fn","ZipEntry","loadOptions","isEncrypted","bitFlag","useUTF8","readLocalPart","localExtraFieldsLength","fileNameLength","fileName","compressionMethod","findCompression","decompressed","readCentralPart","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","localHeaderOffset","readExtraFields","parseZIP64ExtraField","fileComment","processAttributes","madeBy","fileNameStr","extraReader","extraFieldId","extraFieldLength","extraFieldValue","id","handleUTF8","decodeParamType","fileCommentStr","upath","findExtraFieldUnicodePath","fileNameByteArray","decodeFileName","ucomment","findExtraFieldUnicodeComment","commentByteArray","upathField","ucommentField","zipEntry","ZipEntries","checkSignature","expectedSignature","isSignature","askedIndex","currentIndex","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","decodeContent","readBlockZip64EndOfCentral","zip64EndOfCentralSize","zip64ExtensibleData","extraDataSize","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","readCentralDir","zip64","readEndOfCentral","endOfCentralDirOffset","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","expectedEndOfCentralDirOffset","prepareReader","zipEntries","checkEntryCRC32","JSZip","newObj","loadAsync","checkCRC32","promises","results","unsafeName","safeName","unsafeOriginalName","parse","S","keepComments","keepWhitespace","openBracketCC","closeBracketCC","minusCC","slashCC","exclamationCC","singleQuoteCC","doubleQuoteCC","openCornerBracketCC","closeCornerBracketCC","parseChildren","tagName","children","closeStart","parsedText","startCommentPos","cdataEndIndex","startDoctype","encapsuled","parseNode","parseText","trimmed","parseName","NoChildNodes","noChildNodes","attributes","parseString","startChar","startpos","attrValue","attrName","exec","simplify","setPos","child","_attributes","dept","cust_attr_order","simplifyLostLess","parentAttributes","attrs","_objectSpread","_step","_iterator","_createForOfIteratorHelper","readXmlFile","_x","_x2","_readXmlFile","_callee","_context","txml","t0","trimLeft","trimRight","tinycolor","color","rgb","ok","named","names","matchers","rgba","hsl","hsla","hsv","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","convertToPercentage","mod","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","round","_format","_gradientType","gradientType","_ok","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","pad2","rgbaToArgbHex","convertDecimalToHex","_desaturate","amount","toHsl","clamp01","_saturate","_greyscale","desaturate","_lighten","_brighten","toRgb","_darken","_spin","hue","_complement","polyad","step","_splitcomplement","_analogous","slices","_monochromatic","toHsv","modification","isDark","getBrightness","isLight","isValid","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","color1","color2","mix","rgb1","rgb2","readability","c1","isReadable","wcag2","wcag2Parms","parms","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","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","greenyellow","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","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","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen","flipped","flip","parseFloat","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","base64ArrayBuffer","arrayBuffer","encodings","byteRemainder","mainLength","extractFileExtension","eachElement","getTextByPathList","angleToDegrees","angle","escapeHtml","getMimeType","imgFileExt","isVideoLink","vdoFile","getSchemeColorFromTheme","schemeClr","warpObj","clrMap","phClr","slideLayoutClrOvride","sldClrMapOvr","schmClrName","refNode","getBorder","elType","lineNode","borderWidth","borderColor","schemeClrNode","shade","borderType","strokeDasharray","hueToRgb","t1","t2","getFillType","fillType","getPicFill","_x3","_getPicFill","img","rId","imgPath","imgExt","imgArrayBuffer","imgMimeType","getBgPicFill","_x4","_x5","_x6","_getBgPicFill","bgPr","sorce","picBase64","aBlipNode","aphaModFixNode","opacity","_context2","_callee2","getBgGradientFill","slideMasterContent","grdFill","gsLst","color_ary","lo_color","getSolidFill","lin","rot","sort","getSlideBackgroundFill","_x7","_getSlideBackgroundFill","slideContent","slideLayoutContent","bgRef","background","backgroundType","bgFillTyp","sldFill","clrMapOvr","_sldClrMapOvr","sldBgClr","gradientFill","_clrMapOvr","_sldClrMapOvr2","_sldClrMapOvr3","trueIdx","bgFillLst","sortblAry","sortByOrder","bgFillLstIdx","_bgFillTyp","_sldFill","_sldBgClr","_gradientFill","_clrMapOvr2","_sldClrMapOvr4","_bgFillTyp2","_sldFill2","_sldBgClr2","_gradientFill2","_phClr","_idx","_trueIdx","_bgFillLst","_sortblAry","_sortByOrder","_bgFillLstIdx","_bgFillTyp3","_sldFill3","_sldBgClr3","_gradientFill3","_bgFillTyp4","_sldFill4","_sldBgClr4","_gradientFill4","_phClr2","_idx2","_trueIdx2","_bgFillLst2","_sortblAry2","_sortByOrder2","_bgFillLstIdx2","_bgFillTyp5","_sldFill5","_sldBgClr5","_gradientFill5","_context3","bgFillLstTyp","idex","_callee3","getShapeFill","isSvgMode","fillColor","lumMod","lumOff","lum","solidFill","clrNode","findIndx","defBultColorVals","prstClr","hsl2rgb","sat","light","sysClr","isAlpha","alpha","al_color","hueMod","rgbStr","multiplier","cacl_h","applyHueMod","cacl_l","applyLumMod","applyLumOff","satMod","cacl_s","applySatMod","shadeValue","applyShade","tint","tintValue","applyTint","extractChartData","serNode","dataMat","dataRow","innerNode","colName","rowNames","xlabels","getChartInfo","plotArea","chart","grouping","barDir","holeSize","getHorizontalAlign","pNode","algn","lvlIdx","lvlNode","lvlStr","align","RATIO_EMUs_Points","getPosition","slideSpNode","slideLayoutSpNode","slideMasterSpNode","getSize","width","height","getShadow","chdwClrNode","outerShdwAttrs","blurRad","vx","sin","PI","cos","blur","genTextBody","textBodyNode","spNode","pFontStyle","isList","rNode","fldNode","brNode","item","listType","getListType","_step2","_iterator2","genSpanElement","pPrNode","lstStyle","slideMasterTextStyles","lvl","styleText","fontColor","rPrNode","lstStyledefRPr","sPstyle","getFontColor","fontSize","sz","getFontSize","fontType","typeface","fontSchemeNode","getFontType","fontBold","getFontBold","fontItalic","getFontItalic","fontDecoration","getFontDecoration","fontDecorationLine","getFontDecorationLine","fontSpace","spc","getFontSpace","shadow","txtShadow","getFontShadow","subscript","baseline","getFontSubscript","linkID","linkURL","shapeArc","cX","cY","rX","rY","stAng","endAng","isClose","dData","radians","getTableCellParams","tcNode","thisTblStyle","cellSource","bgFillschemeClr","rowTxtStyl","rowSpan","colSpan","vMerge","hMerge","getCelFill","getTableRowParams","trNodes","tblStylAttrObj","local_fillColor","local_fontColor","_parse","slides","filesInfo","_yield$getSlideInfo","defaultTextStyle","themeContent","_iterator3","_step3","singleSlide","getContentTypes","getSlideInfo","loadTheme","processSingleSlide","_getContentTypes","ContentTypesJson","subObj","slidesLocArray","slideLayoutsLocArray","_iterator4","_step4","sortSlideXml","p1","p2","slideLayouts","_getSlideInfo","sldSzAttrs","_loadTheme","preResContent","relationshipArray","themeURI","_iterator5","_step5","relationshipItem","_context4","_callee4","_x8","_processSingleSlide","sldFileName","resName","resContent","layoutFilename","diagramFilename","slideResObj","_iterator6","_step6","relationshipArrayItem","slideLayoutTables","slideLayoutResFilename","slideLayoutResContent","masterFilename","layoutResObj","_iterator7","_step7","_relationshipArrayItem","slideMasterTables","slideMasterResFilename","slideMasterResContent","themeFilename","masterResObj","_iterator8","_step8","_relationshipArrayItem2","themeResObj","themeName","themeResFileName","themeResContent","_iterator9","_step9","_relationshipArrayItem3","diagramResObj","digramFileContent","diagName","diagramResFileName","digramFileContentObjToStr","digramResContent","_iterator10","_step10","_relationshipArrayItem4","tableStyles","nodes","bgColor","elements","nodeKey","_iterator11","_step11","_ret","_context5","indexNodes","t3","t4","t5","t6","t7","processNodesInSlide","t8","_callee5","spTreeNode","idTable","idxTable","typeTable","targetNode","targetNodeItem","nvSpPrNode","_x9","_x10","_x11","_x12","_processNodesInSlide","nodeValue","json","_context6","processSpNode","processCxnSpNode","processPicNode","processGraphicFrameNode","processGroupSpNode","_callee6","_x13","_x14","_x15","_processGroupSpNode","xfrmNode","chx","chy","cx","cy","chcx","chcy","rotate","hs","_iterator12","_step12","_ret2","_context7","_callee7","genShape","txtRotate","xfrmList","slideXfrmNode","slideLayoutXfrmNode","slideMasterXfrmNode","shapType","custShapType","_getPosition","_getSize","isFlipV","isFlipH","txtXframeNode","txtXframeRot","_getBorder","outerShdwNode","vAlign","anchor","getVerticalAlign","isVertical","borderStrokeDasharray","pathLstNode","pathNodes","maxX","maxY","moveToNode","lnToNodes","cubicBezToNodes","arcToNodes","closeNode","multiSapeAry","moveToPtNode","moveToNoPt","spX","spY","lnToPtNode","lnToNoPt","ptX","ptY","cubicBezToPtNodesAry","pts_ary","pt","pt_obj","cubBzPt","arcToNodesAttrs","hR","wR","swAng","shftX","shftY","arcToPtNode","getCustomShapePath","_x16","_x17","_x18","_processPicNode","resObj","rid","imgName","_getPosition4","_getSize4","rotateNode","videoNode","videoRid","videoFile","videoFileExt","videoMimeType","uInt8ArrayVideo","videoBlob","isVdeoLink","audioNode","audioRid","audioFile","audioFileExt","uInt8ArrayAudio","audioBlob","_context8","URL","createObjectURL","_callee8","_x19","_x20","_x21","_processGraphicFrameNode","graphicTypeUri","oleObjNode","_context9","genTable","genChart","genDiagram","_callee9","tbl_border","tableNode","_getPosition2","_getSize2","getTblPr","firstRowAttr","firstColAttr","lastRowAttr","lastColAttr","bandRowAttr","bandColAttr","isFrstRowAttr","isFrstColAttr","isLstRowAttr","isLstColAttr","isBandRowAttr","isBandColAttr","tbleStyleId","tbleStylList","tblStyl","tblBorderStyl","tbl_borders","borderStyles","border","bottom","right","getTableBorders","tbl_bgcolor","tbl_bgFillschemeClr","trNode","tcNodes","tr","a_sorce","aBandNode","cell","td","_x22","_x23","_genChart","_callee10","_getPosition5","_getSize5","refName","_context10","chartType","_getPosition3","_getSize3","dgmDrwSpArray","el"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/regenerator/index.js","../node_modules/.pnpm/rollup-plugin-node-globals@1.4.0/node_modules/rollup-plugin-node-globals/src/global.js","../node_modules/.pnpm/buffer-es6@4.9.3/node_modules/buffer-es6/base64.js","../node_modules/.pnpm/buffer-es6@4.9.3/node_modules/buffer-es6/ieee754.js","../node_modules/.pnpm/buffer-es6@4.9.3/node_modules/buffer-es6/isArray.js","../node_modules/.pnpm/buffer-es6@4.9.3/node_modules/buffer-es6/index.js","../node_modules/.pnpm/process-es6@0.11.6/node_modules/process-es6/browser.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/events.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/inherits.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/util.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/buffer-list.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/string-decoder.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/readable.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/writable.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/duplex.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/transform.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/passthrough.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/stream.js","../node_modules/.pnpm/process-nextick-args@2.0.1/node_modules/process-nextick-args/index.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/internal/streams/stream.js","../node_modules/.pnpm/safe-buffer@5.1.2/node_modules/safe-buffer/index.js","../node_modules/.pnpm/core-util-is@1.0.3/node_modules/core-util-is/lib/util.js","../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits.js","../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/internal/streams/BufferList.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/.pnpm/util-deprecate@1.0.2/node_modules/util-deprecate/node.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/.pnpm/string_decoder@1.1.1/node_modules/string_decoder/lib/string_decoder.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/.pnpm/isarray@1.0.0/node_modules/isarray/index.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/readable.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/support.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/base64.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/nodejsUtils.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/external.js","../node_modules/.pnpm/lie@3.3.0/node_modules/lie/lib/index.js","../node_modules/.pnpm/immediate@3.0.6/node_modules/immediate/lib/index.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/utils.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/GenericWorker.js","../node_modules/.pnpm/setimmediate@1.0.5/node_modules/setimmediate/setImmediate.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/utf8.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/ConvertWorker.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/StreamHelper.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/defaults.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/DataWorker.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/crc32.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/Crc32Probe.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/DataLengthProbe.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/compressedObject.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/zipObject.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/common.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/trees.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/adler32.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/crc32.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/deflate.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/messages.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/strings.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/zstream.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/deflate.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inftrees.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inflate.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inffast.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/constants.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/gzheader.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/inflate.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/index.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/flate.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/compressions.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/signature.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/generate/ZipFileWorker.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/generate/index.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/object.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/DataReader.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/ArrayReader.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/StringReader.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/Uint8ArrayReader.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/NodeBufferReader.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/readerFor.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/zipEntry.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/zipEntries.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/load.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/index.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/.pnpm/txml@5.1.1/node_modules/txml/dist/txml.mjs","../src/readXmlFile.js","../node_modules/.pnpm/tinycolor2@1.6.0/node_modules/tinycolor2/esm/tinycolor.js","../src/utils.js","../src/schemeColor.js","../src/border.js","../src/color.js","../src/fill.js","../src/chart.js","../src/align.js","../src/constants.js","../src/position.js","../src/shadow.js","../src/text.js","../src/fontStyle.js","../src/shape.js","../src/table.js","../src/pptxtojson.js"],"sourcesContent":["export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n return ContinueSentinel;\n }\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) {\n keys.push(key);\n }\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","export default (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});\n","\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\nvar inited = false;\nfunction init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n }\n\n revLookup['-'.charCodeAt(0)] = 62\n revLookup['_'.charCodeAt(0)] = 63\n}\n\nexport function toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders)\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len\n\n var L = 0\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]\n arr[L++] = (tmp >> 16) & 0xFF\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[L++] = tmp & 0xFF\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nexport function fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var output = ''\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n output += lookup[tmp >> 2]\n output += lookup[(tmp << 4) & 0x3F]\n output += '=='\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1])\n output += lookup[tmp >> 10]\n output += lookup[(tmp >> 4) & 0x3F]\n output += lookup[(tmp << 2) & 0x3F]\n output += '='\n }\n\n parts.push(output)\n\n return parts.join('')\n}\n","\nexport function read (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexport function write (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nexport default Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\nimport * as base64 from './base64'\nimport * as ieee754 from './ieee754'\nimport isArray from './isArray'\n\nexport var INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : true\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nvar _kMaxLength = kMaxLength()\nexport {_kMaxLength as kMaxLength};\nfunction typedArraySupport () {\n return true;\n // rollup issues\n // try {\n // var arr = new Uint8Array(1)\n // arr.__proto__ = {\n // __proto__: Uint8Array.prototype,\n // foo: function () { return 42 }\n // }\n // return arr.foo() === 42 && // typed array instances can be augmented\n // typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n // arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n // } catch (e) {\n // return false\n // }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nexport function Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n // Object.defineProperty(Buffer, Symbol.species, {\n // value: null,\n // configurable: true\n // })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (internalIsBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nexport function SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\nBuffer.isBuffer = isBuffer;\nfunction internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!internalIsBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (internalIsBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (internalIsBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = internalIsBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nexport function isBuffer(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n}\n\nfunction isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n}\n","// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nexport function nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nexport var title = 'browser';\nexport var platform = 'browser';\nexport var browser = true;\nexport var env = {};\nexport var argv = [];\nexport var version = ''; // empty string to avoid regexp issues\nexport var versions = {};\nexport var release = {};\nexport var config = {};\n\nfunction noop() {}\n\nexport var on = noop;\nexport var addListener = noop;\nexport var once = noop;\nexport var off = noop;\nexport var removeListener = noop;\nexport var removeAllListeners = noop;\nexport var emit = noop;\n\nexport function binding(name) {\n throw new Error('process.binding is not supported');\n}\n\nexport function cwd () { return '/' }\nexport function chdir (dir) {\n throw new Error('process.chdir is not supported');\n};\nexport function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global.performance || {}\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() }\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nexport function hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3\n var seconds = Math.floor(clocktime)\n var nanoseconds = Math.floor((clocktime%1)*1e9)\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0]\n nanoseconds = nanoseconds - previousTimestamp[1]\n if (nanoseconds<0) {\n seconds--\n nanoseconds += 1e9\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nexport function uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nexport default {\n nextTick: nextTick,\n title: title,\n browser: browser,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n};\n","'use strict';\n\nvar domain;\n\n// This constructor is used to store event handlers. Instantiating this is\n// faster than explicitly calling `Object.create(null)` to get a \"clean\" empty\n// object (tested with v8 v4.9).\nfunction EventHandlers() {}\nEventHandlers.prototype = Object.create(null);\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nexport default EventEmitter;\nexport {EventEmitter};\n\n// nodejs oddity\n// require('events') === require('events').EventEmitter\nEventEmitter.EventEmitter = EventEmitter\n\nEventEmitter.usingDomains = false;\n\nEventEmitter.prototype.domain = undefined;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\nEventEmitter.init = function() {\n this.domain = null;\n if (EventEmitter.usingDomains) {\n // if there is an active domain, then attach to it.\n if (domain.active && !(this instanceof domain.Domain)) {\n this.domain = domain.active;\n }\n }\n\n if (!this._events || this._events === Object.getPrototypeOf(this)._events) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || isNaN(n))\n throw new TypeError('\"n\" argument must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\n// These standalone emit* functions are used to optimize calling of event\n// handlers for fast cases because emit() itself often has a variable number of\n// arguments and can be deoptimized because of that. These functions always have\n// the same number of arguments and thus do not get deoptimized, so the code\n// inside them can execute faster.\nfunction emitNone(handler, isFn, self) {\n if (isFn)\n handler.call(self);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self);\n }\n}\nfunction emitOne(handler, isFn, self, arg1) {\n if (isFn)\n handler.call(self, arg1);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1);\n }\n}\nfunction emitTwo(handler, isFn, self, arg1, arg2) {\n if (isFn)\n handler.call(self, arg1, arg2);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2);\n }\n}\nfunction emitThree(handler, isFn, self, arg1, arg2, arg3) {\n if (isFn)\n handler.call(self, arg1, arg2, arg3);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2, arg3);\n }\n}\n\nfunction emitMany(handler, isFn, self, args) {\n if (isFn)\n handler.apply(self, args);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].apply(self, args);\n }\n}\n\nEventEmitter.prototype.emit = function emit(type) {\n var er, handler, len, args, i, events, domain;\n var needDomainExit = false;\n var doError = (type === 'error');\n\n events = this._events;\n if (events)\n doError = (doError && events.error == null);\n else if (!doError)\n return false;\n\n domain = this.domain;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n er = arguments[1];\n if (domain) {\n if (!er)\n er = new Error('Uncaught, unspecified \"error\" event');\n er.domainEmitter = this;\n er.domain = domain;\n er.domainThrown = false;\n domain.emit('error', er);\n } else if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n return false;\n }\n\n handler = events[type];\n\n if (!handler)\n return false;\n\n var isFn = typeof handler === 'function';\n len = arguments.length;\n switch (len) {\n // fast cases\n case 1:\n emitNone(handler, isFn, this);\n break;\n case 2:\n emitOne(handler, isFn, this, arguments[1]);\n break;\n case 3:\n emitTwo(handler, isFn, this, arguments[1], arguments[2]);\n break;\n case 4:\n emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);\n break;\n // slower\n default:\n args = new Array(len - 1);\n for (i = 1; i < len; i++)\n args[i - 1] = arguments[i];\n emitMany(handler, isFn, this, args);\n }\n\n if (needDomainExit)\n domain.exit();\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = target._events;\n if (!events) {\n events = target._events = new EventHandlers();\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (!existing) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] :\n [existing, listener];\n } else {\n // If we've already got an array, just append.\n if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n }\n\n // Check for listener leak\n if (!existing.warned) {\n m = $getMaxListeners(target);\n if (m && m > 0 && existing.length > m) {\n existing.warned = true;\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + type + ' listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n emitWarning(w);\n }\n }\n }\n\n return target;\n}\nfunction emitWarning(e) {\n typeof console.warn === 'function' ? console.warn(e) : console.log(e);\n}\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction _onceWrap(target, type, listener) {\n var fired = false;\n function g() {\n target.removeListener(type, g);\n if (!fired) {\n fired = true;\n listener.apply(target, arguments);\n }\n }\n g.listener = listener;\n return g;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = this._events;\n if (!events)\n return this;\n\n list = events[type];\n if (!list)\n return this;\n\n if (list === listener || (list.listener && list.listener === listener)) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list[0] = undefined;\n if (--this._eventsCount === 0) {\n this._events = new EventHandlers();\n return this;\n } else {\n delete events[type];\n }\n } else {\n spliceOne(list, position);\n }\n\n if (events.removeListener)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events;\n\n events = this._events;\n if (!events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!events.removeListener) {\n if (arguments.length === 0) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n } else if (events[type]) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n for (var i = 0, key; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = new EventHandlers();\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n do {\n this.removeListener(type, listeners[listeners.length - 1]);\n } while (listeners[0]);\n }\n\n return this;\n };\n\nEventEmitter.prototype.listeners = function listeners(type) {\n var evlistener;\n var ret;\n var events = this._events;\n\n if (!events)\n ret = [];\n else {\n evlistener = events[type];\n if (!evlistener)\n ret = [];\n else if (typeof evlistener === 'function')\n ret = [evlistener.listener || evlistener];\n else\n ret = unwrapListeners(evlistener);\n }\n\n return ret;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];\n};\n\n// About 1.5x faster than the two-arg version of Array#splice().\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)\n list[i] = list[k];\n list.pop();\n}\n\nfunction arrayClone(arr, i) {\n var copy = new Array(i);\n while (i--)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n","\nvar inherits;\nif (typeof Object.create === 'function'){\n inherits = function inherits(ctor, superCtor) {\n // implementation from standard node.js 'util' module\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n inherits = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\nexport default inherits;\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.\nimport process from 'process';\nvar formatRegExp = /%[sdj%]/g;\nexport function format(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexport function deprecate(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function() {\n return deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexport function debuglog(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = 0;\n debugs[set] = function() {\n var msg = format.apply(null, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nexport function inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n _extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexport function isArray(ar) {\n return Array.isArray(ar);\n}\n\nexport function isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nexport function isNull(arg) {\n return arg === null;\n}\n\nexport function isNullOrUndefined(arg) {\n return arg == null;\n}\n\nexport function isNumber(arg) {\n return typeof arg === 'number';\n}\n\nexport function isString(arg) {\n return typeof arg === 'string';\n}\n\nexport function isSymbol(arg) {\n return typeof arg === 'symbol';\n}\n\nexport function isUndefined(arg) {\n return arg === void 0;\n}\n\nexport function isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\n\nexport function isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nexport function isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\n\nexport function isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\n\nexport function isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexport function isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\n\nexport function isBuffer(maybeBuf) {\n return Buffer.isBuffer(maybeBuf);\n}\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexport function log() {\n console.log('%s - %s', timestamp(), format.apply(null, arguments));\n}\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nimport inherits from './inherits';\nexport {inherits}\n\nexport function _extend(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nexport default {\n inherits: inherits,\n _extend: _extend,\n log: log,\n isBuffer: isBuffer,\n isPrimitive: isPrimitive,\n isFunction: isFunction,\n isError: isError,\n isDate: isDate,\n isObject: isObject,\n isRegExp: isRegExp,\n isUndefined: isUndefined,\n isSymbol: isSymbol,\n isString: isString,\n isNumber: isNumber,\n isNullOrUndefined: isNullOrUndefined,\n isNull: isNull,\n isBoolean: isBoolean,\n isArray: isArray,\n inspect: inspect,\n deprecate: deprecate,\n format: format,\n debuglog: debuglog\n}\n","import {Buffer} from 'buffer';\n\nexport default BufferList;\n\nfunction BufferList() {\n this.head = null;\n this.tail = null;\n this.length = 0;\n}\n\nBufferList.prototype.push = function (v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n};\n\nBufferList.prototype.unshift = function (v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n};\n\nBufferList.prototype.shift = function () {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n};\n\nBufferList.prototype.clear = function () {\n this.head = this.tail = null;\n this.length = 0;\n};\n\nBufferList.prototype.join = function (s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n};\n\nBufferList.prototype.concat = function (n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n p.data.copy(ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\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\nimport {Buffer} from 'buffer';\nvar isBufferEncoding = Buffer.isEncoding\n || function(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': return true;\n default: return false;\n }\n }\n\n\nfunction assertEncoding(encoding) {\n if (encoding && !isBufferEncoding(encoding)) {\n throw new Error('Unknown encoding: ' + encoding);\n }\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. CESU-8 is handled as part of the UTF-8 encoding.\n//\n// @TODO Handling all encodings inside a single object makes it very difficult\n// to reason about this code, so it should be split up in the future.\n// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code\n// points as used by CESU-8.\nexport function StringDecoder(encoding) {\n this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');\n assertEncoding(encoding);\n switch (this.encoding) {\n case 'utf8':\n // CESU-8 represents each of Surrogate Pair by 3-bytes\n this.surrogateSize = 3;\n break;\n case 'ucs2':\n case 'utf16le':\n // UTF-16 represents each of Surrogate Pair by 2-bytes\n this.surrogateSize = 2;\n this.detectIncompleteChar = utf16DetectIncompleteChar;\n break;\n case 'base64':\n // Base-64 stores 3 bytes in 4 chars, and pads the remainder.\n this.surrogateSize = 3;\n this.detectIncompleteChar = base64DetectIncompleteChar;\n break;\n default:\n this.write = passThroughWrite;\n return;\n }\n\n // Enough space to store all bytes of a single character. UTF-8 needs 4\n // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).\n this.charBuffer = new Buffer(6);\n // Number of bytes received for the current incomplete multi-byte character.\n this.charReceived = 0;\n // Number of bytes expected for the current incomplete multi-byte character.\n this.charLength = 0;\n};\n\n\n// write decodes the given buffer and returns it as JS string that is\n// guaranteed to not contain any partial multi-byte characters. Any partial\n// character found at the end of the buffer is buffered up, and will be\n// returned when calling write again with the remaining bytes.\n//\n// Note: Converting a Buffer containing an orphan surrogate to a String\n// currently works, but converting a String to a Buffer (via `new Buffer`, or\n// Buffer#write) will replace incomplete surrogates with the unicode\n// replacement character. See https://codereview.chromium.org/121173009/ .\nStringDecoder.prototype.write = function(buffer) {\n var charStr = '';\n // if our last write ended with an incomplete multibyte character\n while (this.charLength) {\n // determine how many remaining bytes this buffer has to offer for this char\n var available = (buffer.length >= this.charLength - this.charReceived) ?\n this.charLength - this.charReceived :\n buffer.length;\n\n // add the new bytes to the char buffer\n buffer.copy(this.charBuffer, this.charReceived, 0, available);\n this.charReceived += available;\n\n if (this.charReceived < this.charLength) {\n // still not enough chars in this buffer? wait for more ...\n return '';\n }\n\n // remove bytes belonging to the current character from the buffer\n buffer = buffer.slice(available, buffer.length);\n\n // get the character that was split\n charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);\n\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n var charCode = charStr.charCodeAt(charStr.length - 1);\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n this.charLength += this.surrogateSize;\n charStr = '';\n continue;\n }\n this.charReceived = this.charLength = 0;\n\n // if there are no more bytes in this buffer, just emit our char\n if (buffer.length === 0) {\n return charStr;\n }\n break;\n }\n\n // determine and set charLength / charReceived\n this.detectIncompleteChar(buffer);\n\n var end = buffer.length;\n if (this.charLength) {\n // buffer the incomplete character bytes we got\n buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);\n end -= this.charReceived;\n }\n\n charStr += buffer.toString(this.encoding, 0, end);\n\n var end = charStr.length - 1;\n var charCode = charStr.charCodeAt(end);\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n var size = this.surrogateSize;\n this.charLength += size;\n this.charReceived += size;\n this.charBuffer.copy(this.charBuffer, size, 0, size);\n buffer.copy(this.charBuffer, 0, 0, size);\n return charStr.substring(0, end);\n }\n\n // or just emit the charStr\n return charStr;\n};\n\n// detectIncompleteChar determines if there is an incomplete UTF-8 character at\n// the end of the given buffer. If so, it sets this.charLength to the byte\n// length that character, and sets this.charReceived to the number of bytes\n// that are available for this character.\nStringDecoder.prototype.detectIncompleteChar = function(buffer) {\n // determine how many bytes we have to check at the end of this buffer\n var i = (buffer.length >= 3) ? 3 : buffer.length;\n\n // Figure out if one of the last i bytes of our buffer announces an\n // incomplete char.\n for (; i > 0; i--) {\n var c = buffer[buffer.length - i];\n\n // See http://en.wikipedia.org/wiki/UTF-8#Description\n\n // 110XXXXX\n if (i == 1 && c >> 5 == 0x06) {\n this.charLength = 2;\n break;\n }\n\n // 1110XXXX\n if (i <= 2 && c >> 4 == 0x0E) {\n this.charLength = 3;\n break;\n }\n\n // 11110XXX\n if (i <= 3 && c >> 3 == 0x1E) {\n this.charLength = 4;\n break;\n }\n }\n this.charReceived = i;\n};\n\nStringDecoder.prototype.end = function(buffer) {\n var res = '';\n if (buffer && buffer.length)\n res = this.write(buffer);\n\n if (this.charReceived) {\n var cr = this.charReceived;\n var buf = this.charBuffer;\n var enc = this.encoding;\n res += buf.slice(0, cr).toString(enc);\n }\n\n return res;\n};\n\nfunction passThroughWrite(buffer) {\n return buffer.toString(this.encoding);\n}\n\nfunction utf16DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 2;\n this.charLength = this.charReceived ? 2 : 0;\n}\n\nfunction base64DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 3;\n this.charLength = this.charReceived ? 3 : 0;\n}\n","'use strict';\n\n\nReadable.ReadableState = ReadableState;\nimport EventEmitter from 'events';\nimport {inherits, debuglog} from 'util';\nimport BufferList from './buffer-list';\nimport {StringDecoder} from 'string_decoder';\nimport {Duplex} from './duplex';\nimport {nextTick} from 'process';\n\nvar debug = debuglog('stream');\ninherits(Readable, EventEmitter);\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') {\n return emitter.prependListener(event, fn);\n } else {\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n}\nfunction listenerCount (emitter, type) {\n return emitter.listeners(type).length;\n}\nfunction ReadableState(options, stream) {\n\n options = options || {};\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // when piping, we only care about 'readable' events that happen\n // after read()ing all the bytes and not getting any pushback.\n this.ranOut = false;\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nexport default Readable;\nexport function Readable(options) {\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options && typeof options.read === 'function') this._read = options.read;\n\n EventEmitter.call(this);\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n\n if (!state.objectMode && typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n }\n\n return readableAddChunk(this, state, chunk, encoding, false);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n var state = this._readableState;\n return readableAddChunk(this, state, chunk, '', true);\n};\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\nfunction readableAddChunk(stream, state, chunk, encoding, addToFront) {\n var er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (state.ended && !addToFront) {\n var e = new Error('stream.push() after EOF');\n stream.emit('error', e);\n } else if (state.endEmitted && addToFront) {\n var _e = new Error('stream.unshift() after end event');\n stream.emit('error', _e);\n } else {\n var skipAdd;\n if (state.decoder && !addToFront && !encoding) {\n chunk = state.decoder.write(chunk);\n skipAdd = !state.objectMode && chunk.length === 0;\n }\n\n if (!addToFront) state.reading = false;\n\n // Don't add to the buffer if we've decoded to an empty string chunk and\n // we're not in object mode\n if (!skipAdd) {\n // if we want the data now, just emit it.\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n }\n\n maybeReadMore(stream, state);\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n\n return needMoreData(state);\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction chunkInvalid(state, chunk) {\n var er = null;\n if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false);\n\n var endFn = doEnd ? onend : cleanup;\n if (state.endEmitted) nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable) {\n debug('onunpipe');\n if (readable === src) {\n cleanup();\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', cleanup);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (listenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && src.listeners('data').length) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var _i = 0; _i < len; _i++) {\n dests[_i].emit('unpipe', this);\n }return this;\n }\n\n // try to find the right one.\n var i = indexOf(state.pipes, dest);\n if (i === -1) return this;\n\n state.pipes.splice(i, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = EventEmitter.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this, state);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var state = this._readableState;\n var paused = false;\n\n var self = this;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) self.push(chunk);\n }\n\n self.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = self.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n var events = ['error', 'close', 'destroy', 'pause', 'resume'];\n forEach(events, function (ev) {\n stream.on(ev, self.emit.bind(self, ev));\n });\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n self._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return self;\n};\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction forEach(xs, f) {\n for (var i = 0, l = xs.length; i < l; i++) {\n f(xs[i], i);\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}\n","// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n\nimport {inherits, deprecate} from 'util';\nimport {Buffer} from 'buffer';\nWritable.WritableState = WritableState;\nimport {EventEmitter} from 'events';\nimport {Duplex} from './duplex';\nimport {nextTick} from 'process';\ninherits(Writable, EventEmitter);\n\nfunction nop() {}\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\nfunction WritableState(options, stream) {\n Object.defineProperty(this, 'buffer', {\n get: deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')\n });\n options = options || {};\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function writableStateGetBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\nexport default Writable;\nexport function Writable(options) {\n\n // Writable ctor is applied to Duplexes, though they're not\n // instanceof Writable, they're instanceof Readable.\n if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n }\n\n EventEmitter.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n nextTick(cb, er);\n}\n\n// If we get something that is not a buffer, string, null, or undefined,\n// and we're not in objectMode, then that's an error.\n// Otherwise stream chunks are all considered to be of length=1, and the\n// watermarks determine how many objects to keep in the buffer, rather than\n// how many bytes or characters.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n // Always throw error if a null is written\n // if we are not in object mode then throw\n // if it is not a buffer, string, or undefined.\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, cb) {\n chunk = decodeChunk(state, chunk, encoding);\n\n if (Buffer.isBuffer(chunk)) encoding = 'buffer';\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) nextTick(cb, er);else cb(er);\n\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n nextTick(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n while (entry) {\n buffer[count] = entry;\n entry = entry.next;\n count += 1;\n }\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequestCount = 0;\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished) {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n if (state.pendingcb === 0) {\n prefinish(stream, state);\n state.finished = true;\n stream.emit('finish');\n } else {\n prefinish(stream, state);\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function (err) {\n var entry = _this.entry;\n _this.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = _this;\n } else {\n state.corkedRequestsFree = _this;\n }\n };\n}\n","\nimport {inherits} from 'util';\nimport {nextTick} from 'process';\nimport {Readable} from './readable';\nimport {Writable} from './writable';\n\n\ninherits(Duplex, Readable);\n\nvar keys = Object.keys(Writable.prototype);\nfor (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n}\nexport default Duplex;\nexport function Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n","// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n\nimport {Duplex} from './duplex';\n\n\nimport {inherits} from 'util';\ninherits(Transform, Duplex);\n\nfunction TransformState(stream) {\n this.afterTransform = function (er, data) {\n return afterTransform(stream, er, data);\n };\n\n this.needTransform = false;\n this.transforming = false;\n this.writecb = null;\n this.writechunk = null;\n this.writeencoding = null;\n}\n\nfunction afterTransform(stream, er, data) {\n var ts = stream._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data !== null && data !== undefined) stream.push(data);\n\n cb(er);\n\n var rs = stream._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n stream._read(rs.highWaterMark);\n }\n}\nexport default Transform;\nexport function Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = new TransformState(this);\n\n // when the writable side finishes, then flush out anything remaining.\n var stream = this;\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n this.once('prefinish', function () {\n if (typeof this._flush === 'function') this._flush(function (er) {\n done(stream, er);\n });else done(stream);\n });\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('Not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nfunction done(stream, er) {\n if (er) return stream.emit('error', er);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n var ws = stream._writableState;\n var ts = stream._transformState;\n\n if (ws.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (ts.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}\n","\nimport {Transform} from './transform';\n\nimport {inherits} from 'util';\ninherits(PassThrough, Transform);\nexport default PassThrough;\nexport function PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};\n","import EE from 'events';\nimport {inherits} from 'util';\n\nimport {Duplex} from './readable-stream/duplex.js';\nimport {Readable} from './readable-stream/readable.js';\nimport {Writable} from './readable-stream/writable.js';\nimport {Transform} from './readable-stream/transform.js';\nimport {PassThrough} from './readable-stream/passthrough.js';\ninherits(Stream, EE);\nStream.Readable = Readable;\nStream.Writable = Writable;\nStream.Duplex = Duplex;\nStream.Transform = Transform;\nStream.PassThrough = PassThrough;\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\nexport default Stream;\nexport {Readable,Writable,Duplex,Transform,PassThrough,Stream}\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","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","module.exports = require('stream');\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","\n/**\n * For Node.js, simply re-export the core `util.deprecate` function.\n */\n\nmodule.exports = require('util').deprecate;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// 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}","// 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 pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\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\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","var Stream = require('stream');\nif (process.env.READABLE_STREAM === 'disable' && Stream) {\n module.exports = Stream;\n exports = module.exports = Stream.Readable;\n exports.Readable = Stream.Readable;\n exports.Writable = Stream.Writable;\n exports.Duplex = Stream.Duplex;\n exports.Transform = Stream.Transform;\n exports.PassThrough = Stream.PassThrough;\n exports.Stream = Stream;\n} else {\n exports = module.exports = require('./lib/_stream_readable.js');\n exports.Stream = Stream || exports;\n exports.Readable = exports;\n exports.Writable = require('./lib/_stream_writable.js');\n exports.Duplex = require('./lib/_stream_duplex.js');\n exports.Transform = require('./lib/_stream_transform.js');\n exports.PassThrough = require('./lib/_stream_passthrough.js');\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\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","\"use strict\";\n\nexports.base64 = true;\nexports.array = true;\nexports.string = true;\nexports.arraybuffer = typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\";\nexports.nodebuffer = typeof Buffer !== \"undefined\";\n// contains true if JSZip can read/generate Uint8Array, false otherwise.\nexports.uint8array = typeof Uint8Array !== \"undefined\";\n\nif (typeof ArrayBuffer === \"undefined\") {\n exports.blob = false;\n}\nelse {\n var buffer = new ArrayBuffer(0);\n try {\n exports.blob = new Blob([buffer], {\n type: \"application/zip\"\n }).size === 0;\n }\n catch (e) {\n try {\n var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder;\n var builder = new Builder();\n builder.append(buffer);\n exports.blob = builder.getBlob(\"application/zip\").size === 0;\n }\n catch (e) {\n exports.blob = false;\n }\n }\n}\n\ntry {\n exports.nodestream = !!require(\"readable-stream\").Readable;\n} catch(e) {\n exports.nodestream = false;\n}\n","\"use strict\";\nvar utils = require(\"./utils\");\nvar support = require(\"./support\");\n// private property\nvar _keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\n\n// public method for encoding\nexports.encode = function(input) {\n var output = [];\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\n var i = 0, len = input.length, remainingBytes = len;\n\n var isArray = utils.getTypeOf(input) !== \"string\";\n while (i < input.length) {\n remainingBytes = len - i;\n\n if (!isArray) {\n chr1 = input.charCodeAt(i++);\n chr2 = i < len ? input.charCodeAt(i++) : 0;\n chr3 = i < len ? input.charCodeAt(i++) : 0;\n } else {\n chr1 = input[i++];\n chr2 = i < len ? input[i++] : 0;\n chr3 = i < len ? input[i++] : 0;\n }\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n enc3 = remainingBytes > 1 ? (((chr2 & 15) << 2) | (chr3 >> 6)) : 64;\n enc4 = remainingBytes > 2 ? (chr3 & 63) : 64;\n\n output.push(_keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4));\n\n }\n\n return output.join(\"\");\n};\n\n// public method for decoding\nexports.decode = function(input) {\n var chr1, chr2, chr3;\n var enc1, enc2, enc3, enc4;\n var i = 0, resultIndex = 0;\n\n var dataUrlPrefix = \"data:\";\n\n if (input.substr(0, dataUrlPrefix.length) === dataUrlPrefix) {\n // This is a common error: people give a data url\n // (data:image/png;base64,iVBOR...) with a {base64: true} and\n // wonders why things don't work.\n // We can detect that the string input looks like a data url but we\n // *can't* be sure it is one: removing everything up to the comma would\n // be too dangerous.\n throw new Error(\"Invalid base64 input, it looks like a data url.\");\n }\n\n input = input.replace(/[^A-Za-z0-9+/=]/g, \"\");\n\n var totalLength = input.length * 3 / 4;\n if(input.charAt(input.length - 1) === _keyStr.charAt(64)) {\n totalLength--;\n }\n if(input.charAt(input.length - 2) === _keyStr.charAt(64)) {\n totalLength--;\n }\n if (totalLength % 1 !== 0) {\n // totalLength is not an integer, the length does not match a valid\n // base64 content. That can happen if:\n // - the input is not a base64 content\n // - the input is *almost* a base64 content, with a extra chars at the\n // beginning or at the end\n // - the input uses a base64 variant (base64url for example)\n throw new Error(\"Invalid base64 input, bad content length.\");\n }\n var output;\n if (support.uint8array) {\n output = new Uint8Array(totalLength|0);\n } else {\n output = new Array(totalLength|0);\n }\n\n while (i < input.length) {\n\n enc1 = _keyStr.indexOf(input.charAt(i++));\n enc2 = _keyStr.indexOf(input.charAt(i++));\n enc3 = _keyStr.indexOf(input.charAt(i++));\n enc4 = _keyStr.indexOf(input.charAt(i++));\n\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n\n output[resultIndex++] = chr1;\n\n if (enc3 !== 64) {\n output[resultIndex++] = chr2;\n }\n if (enc4 !== 64) {\n output[resultIndex++] = chr3;\n }\n\n }\n\n return output;\n};\n","\"use strict\";\n\nmodule.exports = {\n /**\n * True if this is running in Nodejs, will be undefined in a browser.\n * In a browser, browserify won't include this file and the whole module\n * will be resolved an empty object.\n */\n isNode : typeof Buffer !== \"undefined\",\n /**\n * Create a new nodejs Buffer from an existing content.\n * @param {Object} data the data to pass to the constructor.\n * @param {String} encoding the encoding to use.\n * @return {Buffer} a new Buffer.\n */\n newBufferFrom: function(data, encoding) {\n if (Buffer.from && Buffer.from !== Uint8Array.from) {\n return Buffer.from(data, encoding);\n } else {\n if (typeof data === \"number\") {\n // Safeguard for old Node.js versions. On newer versions,\n // Buffer.from(number) / Buffer(number, encoding) already throw.\n throw new Error(\"The \\\"data\\\" argument must not be a number\");\n }\n return new Buffer(data, encoding);\n }\n },\n /**\n * Create a new nodejs Buffer with the specified size.\n * @param {Integer} size the size of the buffer.\n * @return {Buffer} a new Buffer.\n */\n allocBuffer: function (size) {\n if (Buffer.alloc) {\n return Buffer.alloc(size);\n } else {\n var buf = new Buffer(size);\n buf.fill(0);\n return buf;\n }\n },\n /**\n * Find out if an object is a Buffer.\n * @param {Object} b the object to test.\n * @return {Boolean} true if the object is a Buffer, false otherwise.\n */\n isBuffer : function(b){\n return Buffer.isBuffer(b);\n },\n\n isStream : function (obj) {\n return obj &&\n typeof obj.on === \"function\" &&\n typeof obj.pause === \"function\" &&\n typeof obj.resume === \"function\";\n }\n};\n","\"use strict\";\n\n// load the global object first:\n// - it should be better integrated in the system (unhandledRejection in node)\n// - the environment may have a custom Promise implementation (see zone.js)\nvar ES6Promise = null;\nif (typeof Promise !== \"undefined\") {\n ES6Promise = Promise;\n} else {\n ES6Promise = require(\"lie\");\n}\n\n/**\n * Let the user use/change some implementations.\n */\nmodule.exports = {\n Promise: ES6Promise\n};\n","'use strict';\nvar immediate = require('immediate');\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n/* istanbul ignore else */\nif (!process.browser) {\n // in which we actually take advantage of JS scoping\n var UNHANDLED = ['UNHANDLED'];\n}\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n /* istanbul ignore else */\n if (!process.browser) {\n this.handled = UNHANDLED;\n }\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype.finally = function (callback) {\n if (typeof callback !== 'function') {\n return this;\n }\n var p = this.constructor;\n return this.then(resolve, reject);\n\n function resolve(value) {\n function yes () {\n return value;\n }\n return p.resolve(callback()).then(yes);\n }\n function reject(reason) {\n function no () {\n throw reason;\n }\n return p.resolve(callback()).then(no);\n }\n};\nPromise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n /* istanbul ignore else */\n if (!process.browser) {\n if (this.handled === UNHANDLED) {\n this.handled = null;\n }\n }\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callRejected = function (value) {\n handlers.reject(this.promise, value);\n};\nQueueItem.prototype.otherCallRejected = function (value) {\n unwrap(this.promise, this.onRejected, value);\n};\n\nfunction unwrap(promise, func, value) {\n immediate(function () {\n var returnValue;\n try {\n returnValue = func(value);\n } catch (e) {\n return handlers.reject(promise, e);\n }\n if (returnValue === promise) {\n handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\n } else {\n handlers.resolve(promise, returnValue);\n }\n });\n}\n\nhandlers.resolve = function (self, value) {\n var result = tryCatch(getThen, value);\n if (result.status === 'error') {\n return handlers.reject(self, result.value);\n }\n var thenable = result.value;\n\n if (thenable) {\n safelyResolveThenable(self, thenable);\n } else {\n self.state = FULFILLED;\n self.outcome = value;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callFulfilled(value);\n }\n }\n return self;\n};\nhandlers.reject = function (self, error) {\n self.state = REJECTED;\n self.outcome = error;\n /* istanbul ignore else */\n if (!process.browser) {\n if (self.handled === UNHANDLED) {\n immediate(function () {\n if (self.handled === UNHANDLED) {\n process.emit('unhandledRejection', error, self);\n }\n });\n }\n }\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callRejected(error);\n }\n return self;\n};\n\nfunction getThen(obj) {\n // Make sure we only access the accessor once as required by the spec\n var then = obj && obj.then;\n if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {\n return function appyThen() {\n then.apply(obj, arguments);\n };\n }\n}\n\nfunction safelyResolveThenable(self, thenable) {\n // Either fulfill, reject or reject with error\n var called = false;\n function onError(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.reject(self, value);\n }\n\n function onSuccess(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.resolve(self, value);\n }\n\n function tryToUnwrap() {\n thenable(onSuccess, onError);\n }\n\n var result = tryCatch(tryToUnwrap);\n if (result.status === 'error') {\n onError(result.value);\n }\n}\n\nfunction tryCatch(func, value) {\n var out = {};\n try {\n out.value = func(value);\n out.status = 'success';\n } catch (e) {\n out.status = 'error';\n out.value = e;\n }\n return out;\n}\n\nPromise.resolve = resolve;\nfunction resolve(value) {\n if (value instanceof this) {\n return value;\n }\n return handlers.resolve(new this(INTERNAL), value);\n}\n\nPromise.reject = reject;\nfunction reject(reason) {\n var promise = new this(INTERNAL);\n return handlers.reject(promise, reason);\n}\n\nPromise.all = all;\nfunction all(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var values = new Array(len);\n var resolved = 0;\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n allResolver(iterable[i], i);\n }\n return promise;\n function allResolver(value, i) {\n self.resolve(value).then(resolveFromAll, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n function resolveFromAll(outValue) {\n values[i] = outValue;\n if (++resolved === len && !called) {\n called = true;\n handlers.resolve(promise, values);\n }\n }\n }\n}\n\nPromise.race = race;\nfunction race(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n resolver(iterable[i]);\n }\n return promise;\n function resolver(value) {\n self.resolve(value).then(function (response) {\n if (!called) {\n called = true;\n handlers.resolve(promise, response);\n }\n }, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n }\n}\n","'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\nif (process.browser) {\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a ', pos);\n children = [S.slice(start, pos)];\n pos += 9;\n } else if (tagName == \"style\") {\n var start = pos + 1;\n pos = S.indexOf('', pos);\n children = [S.slice(start, pos)];\n pos += 8;\n } else if (NoChildNodes.indexOf(tagName) === -1) {\n pos++;\n children = parseChildren(tagName);\n } else {\n pos++;\n }\n } else {\n pos++;\n }\n return {\n tagName,\n attributes,\n children,\n };\n }\n\n /**\n * is parsing a string, that starts with a char and with the same usually ' or \"\n */\n\n function parseString() {\n var startChar = S[pos];\n var startpos = pos + 1;\n pos = S.indexOf(startChar, startpos);\n return S.slice(startpos, pos);\n }\n\n /**\n *\n */\n function findElements() {\n var r = new RegExp('\\\\s' + options.attrName + '\\\\s*=[\\'\"]' + options.attrValue + '[\\'\"]').exec(S);\n if (r) {\n return r.index;\n } else {\n return -1;\n }\n }\n\n var out = null;\n if (options.attrValue !== undefined) {\n options.attrName = options.attrName || 'id';\n var out = [];\n\n while ((pos = findElements()) !== -1) {\n pos = S.lastIndexOf('<', pos);\n if (pos !== -1) {\n out.push(parseNode());\n }\n S = S.substr(pos);\n pos = 0;\n }\n } else if (options.parseNode) {\n out = parseNode();\n } else {\n out = parseChildren('');\n }\n\n if (options.filter) {\n out = filter(out, options.filter);\n }\n\n if (options.simplify) {\n return simplify(Array.isArray(out) ? out : [out]);\n }\n\n if (options.setPos) {\n out.pos = pos;\n }\n\n return out;\n}\n\n/**\n * transform the DomObject to an object that is like the object of PHP`s simple_xmp_load_*() methods.\n * this format helps you to write that is more likely to keep your program working, even if there a small changes in the XML schema.\n * be aware, that it is not possible to reproduce the original xml from a simplified version, because the order of elements is not saved.\n * therefore your program will be more flexible and easier to read.\n *\n * @param {tNode[]} children the childrenList\n */\nfunction simplify(children) {\n var out = {};\n if (!children.length) {\n return '';\n }\n\n if (children.length === 1 && typeof children[0] == 'string') {\n return children[0];\n }\n // map each object\n children.forEach(function(child) {\n if (typeof child !== 'object') {\n return;\n }\n if (!out[child.tagName])\n out[child.tagName] = [];\n var kids = simplify(child.children);\n out[child.tagName].push(kids);\n if (Object.keys(child.attributes).length && typeof kids !== 'string') {\n kids._attributes = child.attributes;\n }\n });\n\n for (var i in out) {\n if (out[i].length == 1) {\n out[i] = out[i][0];\n }\n }\n\n return out;\n}\n\n/**\n * similar to simplify, but lost less\n *\n * @param {tNode[]} children the childrenList\n */\nfunction simplifyLostLess(children, parentAttributes = {}) {\n var out = {};\n if (!children.length) {\n return out;\n }\n\n if (children.length === 1 && typeof children[0] == 'string') {\n return Object.keys(parentAttributes).length ? {\n _attributes: parentAttributes,\n value: children[0]\n } : children[0];\n }\n // map each object\n children.forEach(function(child) {\n if (typeof child !== 'object') {\n return;\n }\n if (!out[child.tagName])\n out[child.tagName] = [];\n var kids = simplifyLostLess(child.children || [], child.attributes);\n out[child.tagName].push(kids);\n if (Object.keys(child.attributes).length) {\n kids._attributes = child.attributes;\n }\n });\n\n return out;\n}\n/**\n * behaves the same way as Array.filter, if the filter method return true, the element is in the resultList\n * @params children{Array} the children of a node\n * @param f{function} the filter method\n */\nfunction filter(children, f, dept = 0, path = '') {\n var out = [];\n children.forEach(function(child, i) {\n if (typeof(child) === 'object' && f(child, i, dept, path)) out.push(child);\n if (child.children) {\n var kids = filter(child.children, f, dept + 1, (path ? path + '.' : '') + i + '.' + child.tagName);\n out = out.concat(kids);\n }\n });\n return out;\n}\n/**\n * stringify a previously parsed string object.\n * this is useful,\n * 1. to remove whitespace\n * 2. to recreate xml data, with some changed data.\n * @param {tNode} O the object to Stringify\n */\nfunction stringify(O) {\n var out = '';\n\n function writeChildren(O) {\n if (O) {\n for (var i = 0; i < O.length; i++) {\n if (typeof O[i] == 'string') {\n out += O[i].trim();\n } else {\n writeNode(O[i]);\n }\n }\n }\n }\n\n function writeNode(N) {\n out += \"<\" + N.tagName;\n for (var i in N.attributes) {\n if (N.attributes[i] === null) {\n out += ' ' + i;\n } else if (N.attributes[i].indexOf('\"') === -1) {\n out += ' ' + i + '=\"' + N.attributes[i].trim() + '\"';\n } else {\n out += ' ' + i + \"='\" + N.attributes[i].trim() + \"'\";\n }\n }\n if (N.tagName[0] === '?') {\n out += '?>';\n return;\n }\n out += '>';\n writeChildren(N.children);\n out += '';\n }\n writeChildren(O);\n\n return out;\n}\n\n/**\n * use this method to read the text content, of some node.\n * It is great if you have mixed content like:\n * this text has some big text and a link\n * @return {string}\n */\nfunction toContentString(tDom) {\n if (Array.isArray(tDom)) {\n var out = '';\n tDom.forEach(function(e) {\n out += ' ' + toContentString(e);\n out = out.trim();\n });\n return out;\n } else if (typeof tDom === 'object') {\n return toContentString(tDom.children)\n } else {\n return ' ' + tDom;\n }\n}\nfunction getElementById(S, id, simplified) {\n var out = parse(S, {\n attrValue: id\n });\n return simplified ? tXml.simplify(out) : out[0];\n}\nfunction getElementsByClassName(S, classname, simplified) {\n const out = parse(S, {\n attrName: 'class',\n attrValue: '[a-zA-Z0-9- ]*' + classname + '[a-zA-Z0-9- ]*'\n });\n return simplified ? tXml.simplify(out) : out;\n}\n\nexport { filter, getElementById, getElementsByClassName, parse, simplify, simplifyLostLess, stringify, toContentString };\n","import * as txml from 'txml/dist/txml.mjs'\r\n\r\nlet cust_attr_order = 0\r\n\r\nexport function simplifyLostLess(children, parentAttributes = {}) {\r\n const out = {}\r\n if (!children.length) return out\r\n\r\n if (children.length === 1 && typeof children[0] === 'string') {\r\n return Object.keys(parentAttributes).length ? {\r\n attrs: { order: cust_attr_order++, ...parentAttributes },\r\n value: children[0],\r\n } : children[0]\r\n }\r\n for (const child of children) {\r\n if (typeof child !== 'object') return\r\n if (child.tagName === '?xml') continue\r\n\r\n if (!out[child.tagName]) out[child.tagName] = []\r\n\r\n const kids = simplifyLostLess(child.children || [], child.attributes)\r\n out[child.tagName].push(kids)\r\n\r\n if (Object.keys(child.attributes).length) {\r\n kids.attrs = { order: cust_attr_order++, ...child.attributes }\r\n }\r\n }\r\n for (const child in out) {\r\n if (out[child].length === 1) out[child] = out[child][0]\r\n }\r\n\r\n return out\r\n}\r\n\r\nexport async function readXmlFile(zip, filename) {\r\n try {\r\n const data = await zip.file(filename).async('string')\r\n return simplifyLostLess(txml.parse(data))\r\n }\r\n catch {\r\n return null\r\n }\r\n}","// This file is autogenerated. It's used to publish ESM to npm.\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\nvar trimLeft = /^\\s+/;\nvar trimRight = /\\s+$/;\nfunction tinycolor(color, opts) {\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 var rgb = inputToRGB(color);\n this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, 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 = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n this._ok = rgb.ok;\n}\ntinycolor.prototype = {\n isDark: function isDark() {\n return this.getBrightness() < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n isValid: function isValid() {\n return this._ok;\n },\n getOriginalInput: function getOriginalInput() {\n return this._originalInput;\n },\n getFormat: function getFormat() {\n return this._format;\n },\n getAlpha: function getAlpha() {\n return this._a;\n },\n getBrightness: function getBrightness() {\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 getLuminance() {\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 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 setAlpha(value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function toHsv() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this._a\n };\n },\n toHsvString: function toHsvString() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function toHsl() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this._a\n };\n },\n toHslString: function toHslString() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function toHex(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function toHexString(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function toHex8(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function toHex8String(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function toRgb() {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a\n };\n },\n toRgbString: function toRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function toPercentageRgb() {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function toPercentageRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function toName() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function toFilter(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 if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function toString(format) {\n var formatSet = !!format;\n format = format || this._format;\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 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 return formattedString || this.toHexString();\n },\n clone: function clone() {\n return tinycolor(this.toString());\n },\n _applyModification: function _applyModification(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 lighten() {\n return this._applyModification(_lighten, arguments);\n },\n brighten: function brighten() {\n return this._applyModification(_brighten, arguments);\n },\n darken: function darken() {\n return this._applyModification(_darken, arguments);\n },\n desaturate: function desaturate() {\n return this._applyModification(_desaturate, arguments);\n },\n saturate: function saturate() {\n return this._applyModification(_saturate, arguments);\n },\n greyscale: function greyscale() {\n return this._applyModification(_greyscale, arguments);\n },\n spin: function spin() {\n return this._applyModification(_spin, arguments);\n },\n _applyCombination: function _applyCombination(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function analogous() {\n return this._applyCombination(_analogous, arguments);\n },\n complement: function complement() {\n return this._applyCombination(_complement, arguments);\n },\n monochromatic: function monochromatic() {\n return this._applyCombination(_monochromatic, arguments);\n },\n splitcomplement: function splitcomplement() {\n return this._applyCombination(_splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function triad() {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function tetrad() {\n return this._applyCombination(polyad, [4]);\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 } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\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 var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\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 if (typeof color == \"string\") {\n color = stringInputToObject(color);\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 } 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 } 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 if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a\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 r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n if (max == min) {\n h = s = 0; // achromatic\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:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l\n };\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 h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\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 if (s === 0) {\n r = g = b = l; // achromatic\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 return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\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 r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n v: v\n };\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]\nfunction hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\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 return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\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 var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\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 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 var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\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 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 var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\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};\ntinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random()\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}\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}\nfunction _greyscale(color) {\n return tinycolor(color).desaturate(100);\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}\nfunction _brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\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}\nfunction polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({\n h: (hsl.h + i * step) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n return result;\n}\nfunction _splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [tinycolor(color), tinycolor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), tinycolor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n}\nfunction _analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\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}\nfunction _monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\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 var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\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 return tinycolor(rgba);\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 out = false;\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// `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 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 if (tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size\n }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\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// 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 if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\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 var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(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 Math.min(1, Math.max(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 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}\nvar matchers = function () {\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 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 color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: \"name\"\n };\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 {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n if (match = matchers.rgba.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsl.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n if (match = matchers.hsla.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsv.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n if (match = matchers.hsva.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\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 return false;\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 || {\n level: \"AA\",\n size: \"small\"\n };\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 {\n level: level,\n size: size\n };\n}\n\nexport { tinycolor as default };\n","export function base64ArrayBuffer(arrayBuffer) {\r\n const encodings = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\r\n const bytes = new Uint8Array(arrayBuffer)\r\n const byteLength = bytes.byteLength\r\n const byteRemainder = byteLength % 3\r\n const mainLength = byteLength - byteRemainder\r\n \r\n let base64 = ''\r\n let a, b, c, d\r\n let chunk\r\n\r\n for (let i = 0; i < mainLength; i = i + 3) {\r\n chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2]\r\n a = (chunk & 16515072) >> 18\r\n b = (chunk & 258048) >> 12\r\n c = (chunk & 4032) >> 6\r\n d = chunk & 63\r\n base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d]\r\n }\r\n\r\n if (byteRemainder === 1) {\r\n chunk = bytes[mainLength]\r\n a = (chunk & 252) >> 2\r\n b = (chunk & 3) << 4\r\n base64 += encodings[a] + encodings[b] + '=='\r\n } \r\n else if (byteRemainder === 2) {\r\n chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1]\r\n a = (chunk & 64512) >> 10\r\n b = (chunk & 1008) >> 4\r\n c = (chunk & 15) << 2\r\n base64 += encodings[a] + encodings[b] + encodings[c] + '='\r\n }\r\n\r\n return base64\r\n}\r\n\r\nexport function extractFileExtension(filename) {\r\n return filename.substr((~-filename.lastIndexOf('.') >>> 0) + 2)\r\n}\r\n\r\nexport function eachElement(node, func) {\r\n if (!node) return node\r\n\r\n let result = ''\r\n if (node.constructor === Array) {\r\n for (let i = 0; i < node.length; i++) {\r\n result += func(node[i], i)\r\n }\r\n } \r\n else result += func(node, 0)\r\n\r\n return result\r\n}\r\n\r\nexport function getTextByPathList(node, path) {\r\n if (path.constructor !== Array) throw Error('Error of path type! path is not array.')\r\n\r\n if (!node) return node\r\n\r\n for (const key of path) {\r\n node = node[key]\r\n if (!node) return node\r\n }\r\n\r\n return node\r\n}\r\n\r\nexport function angleToDegrees(angle) {\r\n if (!angle) return 0\r\n return Math.round(angle / 60000)\r\n}\r\n\r\nexport function escapeHtml(text) {\r\n const map = {\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n \"'\": ''',\r\n }\r\n return text.replace(/[&<>\"']/g, m => map[m])\r\n}\r\n\r\nexport function getMimeType(imgFileExt) {\r\n let mimeType = ''\r\n switch (imgFileExt.toLowerCase()) {\r\n case 'jpg':\r\n case 'jpeg':\r\n mimeType = 'image/jpeg'\r\n break\r\n case 'png':\r\n mimeType = 'image/png'\r\n break\r\n case 'gif':\r\n mimeType = 'image/gif'\r\n break\r\n case 'emf':\r\n mimeType = 'image/x-emf'\r\n break\r\n case 'wmf':\r\n mimeType = 'image/x-wmf'\r\n break\r\n case 'svg':\r\n mimeType = 'image/svg+xml'\r\n break\r\n case 'mp4':\r\n mimeType = 'video/mp4'\r\n break\r\n case 'webm':\r\n mimeType = 'video/webm'\r\n break\r\n case 'ogg':\r\n mimeType = 'video/ogg'\r\n break\r\n case 'avi':\r\n mimeType = 'video/avi'\r\n break\r\n case 'mpg':\r\n mimeType = 'video/mpg'\r\n break\r\n case 'wmv':\r\n mimeType = 'video/wmv'\r\n break\r\n case 'mp3':\r\n mimeType = 'audio/mpeg'\r\n break\r\n case 'wav':\r\n mimeType = 'audio/wav'\r\n break\r\n case 'tif':\r\n mimeType = 'image/tiff'\r\n break\r\n case 'tiff':\r\n mimeType = 'image/tiff'\r\n break\r\n default:\r\n }\r\n return mimeType\r\n}\r\n\r\nexport function isVideoLink(vdoFile) {\r\n const urlRegex = /^(https?|ftp):\\/\\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+\\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\\/($|[a-zA-Z0-9.,?'\\\\+&%$#=~_-]+))*$/\r\n return urlRegex.test(vdoFile)\r\n}\r\n\r\nexport function toHex(n) {\r\n let hex = n.toString(16)\r\n while (hex.length < 2) {\r\n hex = '0' + hex\r\n }\r\n return hex\r\n}","import { getTextByPathList } from './utils'\r\n\r\nexport function getSchemeColorFromTheme(schemeClr, warpObj, clrMap, phClr) {\r\n let color\r\n let slideLayoutClrOvride\r\n if (clrMap) slideLayoutClrOvride = clrMap\r\n else {\r\n let sldClrMapOvr = getTextByPathList(warpObj['slideContent'], ['p:sld', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) slideLayoutClrOvride = sldClrMapOvr\r\n else {\r\n sldClrMapOvr = getTextByPathList(warpObj['slideLayoutContent'], ['p:sldLayout', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) slideLayoutClrOvride = sldClrMapOvr\r\n else {\r\n slideLayoutClrOvride = getTextByPathList(warpObj['slideMasterContent'], ['p:sldMaster', 'p:clrMap', 'attrs'])\r\n }\r\n }\r\n }\r\n const schmClrName = schemeClr.substr(2)\r\n if (schmClrName === 'phClr' && phClr) color = phClr\r\n else {\r\n if (slideLayoutClrOvride) {\r\n switch (schmClrName) {\r\n case 'tx1':\r\n case 'tx2':\r\n case 'bg1':\r\n case 'bg2':\r\n schemeClr = 'a:' + slideLayoutClrOvride[schmClrName]\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n else {\r\n switch (schemeClr) {\r\n case 'tx1':\r\n schemeClr = 'a:dk1'\r\n break\r\n case 'tx2':\r\n schemeClr = 'a:dk2'\r\n break\r\n case 'bg1':\r\n schemeClr = 'a:lt1'\r\n break\r\n case 'bg2':\r\n schemeClr = 'a:lt2'\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n const refNode = getTextByPathList(warpObj['themeContent'], ['a:theme', 'a:themeElements', 'a:clrScheme', schemeClr])\r\n color = getTextByPathList(refNode, ['a:srgbClr', 'attrs', 'val'])\r\n if (!color && refNode) color = getTextByPathList(refNode, ['a:sysClr', 'attrs', 'lastClr'])\r\n }\r\n return color\r\n}","import tinycolor from 'tinycolor2'\r\nimport { getSchemeColorFromTheme } from './schemeColor'\r\nimport { getTextByPathList } from './utils'\r\n\r\nexport function getBorder(node, elType, warpObj) {\r\n const lineNode = node['p:spPr']['a:ln']\r\n\r\n let borderWidth = parseInt(getTextByPathList(lineNode, ['attrs', 'w'])) / 12700\r\n if (isNaN(borderWidth)) {\r\n if (lineNode) borderWidth = 0\r\n else if (elType !== 'obj') borderWidth = 0\r\n else borderWidth = 1\r\n }\r\n\r\n let borderColor = getTextByPathList(lineNode, ['a:solidFill', 'a:srgbClr', 'attrs', 'val'])\r\n if (!borderColor) {\r\n const schemeClrNode = getTextByPathList(lineNode, ['a:solidFill', 'a:schemeClr'])\r\n const schemeClr = 'a:' + getTextByPathList(schemeClrNode, ['attrs', 'val'])\r\n borderColor = getSchemeColorFromTheme(schemeClr, warpObj)\r\n }\r\n\r\n if (!borderColor) {\r\n const schemeClrNode = getTextByPathList(node, ['p:style', 'a:lnRef', 'a:schemeClr'])\r\n const schemeClr = 'a:' + getTextByPathList(schemeClrNode, ['attrs', 'val'])\r\n borderColor = getSchemeColorFromTheme(schemeClr, warpObj)\r\n\r\n if (borderColor) {\r\n let shade = getTextByPathList(schemeClrNode, ['a:shade', 'attrs', 'val'])\r\n\r\n if (shade) {\r\n shade = parseInt(shade) / 100000\r\n \r\n const color = tinycolor('#' + borderColor).toHsl()\r\n borderColor = tinycolor({ h: color.h, s: color.s, l: color.l * shade, a: color.a }).toHex()\r\n }\r\n }\r\n }\r\n\r\n if (!borderColor) borderColor = '#000'\r\n else borderColor = `#${borderColor}`\r\n\r\n const type = getTextByPathList(lineNode, ['a:prstDash', 'attrs', 'val'])\r\n let borderType = 'solid'\r\n let strokeDasharray = '0'\r\n switch (type) {\r\n case 'solid':\r\n borderType = 'solid'\r\n strokeDasharray = '0'\r\n break\r\n case 'dash':\r\n borderType = 'dashed'\r\n strokeDasharray = '5'\r\n break\r\n case 'dashDot':\r\n borderType = 'dashed'\r\n strokeDasharray = '5, 5, 1, 5'\r\n break\r\n case 'dot':\r\n borderType = 'dotted'\r\n strokeDasharray = '1, 5'\r\n break\r\n case 'lgDash':\r\n borderType = 'dashed'\r\n strokeDasharray = '10, 5'\r\n break\r\n case 'lgDashDotDot':\r\n borderType = 'dotted'\r\n strokeDasharray = '10, 5, 1, 5, 1, 5'\r\n break\r\n case 'sysDash':\r\n borderType = 'dashed'\r\n strokeDasharray = '5, 2'\r\n break\r\n case 'sysDashDot':\r\n borderType = 'dotted'\r\n strokeDasharray = '5, 2, 1, 5'\r\n break\r\n case 'sysDashDotDot':\r\n borderType = 'dotted'\r\n strokeDasharray = '5, 2, 1, 5, 1, 5'\r\n break\r\n case 'sysDot':\r\n borderType = 'dotted'\r\n strokeDasharray = '2, 5'\r\n break\r\n default:\r\n }\r\n\r\n return {\r\n borderColor,\r\n borderWidth,\r\n borderType,\r\n strokeDasharray,\r\n }\r\n}","import tinycolor from 'tinycolor2'\r\n\r\nexport function hueToRgb(t1, t2, hue) {\r\n if (hue < 0) hue += 6\r\n if (hue >= 6) hue -= 6\r\n if (hue < 1) return (t2 - t1) * hue + t1\r\n else if (hue < 3) return t2\r\n else if (hue < 4) return (t2 - t1) * (4 - hue) + t1\r\n return t1\r\n}\r\n\r\nexport function hslToRgb(hue, sat, light) {\r\n let t2\r\n hue = hue / 60\r\n if (light <= 0.5) {\r\n t2 = light * (sat + 1)\r\n } \r\n else {\r\n t2 = light + sat - (light * sat)\r\n }\r\n const t1 = light * 2 - t2\r\n const r = hueToRgb(t1, t2, hue + 2) * 255\r\n const g = hueToRgb(t1, t2, hue) * 255\r\n const b = hueToRgb(t1, t2, hue - 2) * 255\r\n return { r, g, b }\r\n}\r\n\r\nexport function applyShade(rgbStr, shadeValue, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n if (shadeValue >= 1) shadeValue = 1\r\n const cacl_l = Math.min(color.l * shadeValue, 1)\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a,\r\n }).toHex()\r\n}\r\n\r\nexport function applyTint(rgbStr, tintValue, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n if (tintValue >= 1) tintValue = 1\r\n const cacl_l = color.l * tintValue + (1 - tintValue)\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a\r\n }).toHex()\r\n}\r\n\r\nexport function applyLumOff(rgbStr, offset, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n const lum = offset + color.l\r\n if (lum >= 1) {\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: 1,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n \r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: 1,\r\n a: color.a\r\n }).toHex()\r\n }\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: lum,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: lum,\r\n a: color.a\r\n }).toHex()\r\n}\r\n\r\nexport function applyLumMod(rgbStr, multiplier, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n let cacl_l = color.l * multiplier\r\n if (cacl_l >= 1) cacl_l = 1\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a\r\n }).toHex()\r\n}\r\n\r\nexport function applyHueMod(rgbStr, multiplier, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n let cacl_h = color.h * multiplier\r\n if (cacl_h >= 360) cacl_h = cacl_h - 360\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: cacl_h,\r\n s: color.s,\r\n l: color.l,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: cacl_h,\r\n s: color.s,\r\n l: color.l,\r\n a: color.a\r\n }).toHex()\r\n}\r\n\r\nexport function applySatMod(rgbStr, multiplier, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n let cacl_s = color.s * multiplier\r\n if (cacl_s >= 1) cacl_s = 1\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: cacl_s,\r\n l: color.l,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: color.h,\r\n s: cacl_s,\r\n l: color.l,\r\n a: color.a\r\n }).toHex()\r\n}\r\n\r\nexport function getColorName2Hex(name) {\r\n let hex\r\n const colorName = ['white', 'AliceBlue', 'AntiqueWhite', 'Aqua', 'Aquamarine', 'Azure', 'Beige', 'Bisque', 'black', 'BlanchedAlmond', 'Blue', 'BlueViolet', 'Brown', 'BurlyWood', 'CadetBlue', 'Chartreuse', 'Chocolate', 'Coral', 'CornflowerBlue', 'Cornsilk', 'Crimson', 'Cyan', 'DarkBlue', 'DarkCyan', 'DarkGoldenRod', 'DarkGray', 'DarkGrey', 'DarkGreen', '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', 'Grey', 'Green', 'GreenYellow', 'HoneyDew', 'HotPink', 'IndianRed', 'Indigo', 'Ivory', 'Khaki', 'Lavender', 'LavenderBlush', 'LawnGreen', 'LemonChiffon', 'LightBlue', 'LightCoral', 'LightCyan', 'LightGoldenRodYellow', 'LightGray', 'LightGrey', 'LightGreen', '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']\r\n const colorHex = ['ffffff', 'f0f8ff', 'faebd7', '00ffff', '7fffd4', 'f0ffff', 'f5f5dc', 'ffe4c4', '000000', 'ffebcd', '0000ff', '8a2be2', 'a52a2a', 'deb887', '5f9ea0', '7fff00', 'd2691e', 'ff7f50', '6495ed', 'fff8dc', 'dc143c', '00ffff', '00008b', '008b8b', 'b8860b', 'a9a9a9', 'a9a9a9', '006400', 'bdb76b', '8b008b', '556b2f', 'ff8c00', '9932cc', '8b0000', 'e9967a', '8fbc8f', '483d8b', '2f4f4f', '2f4f4f', '00ced1', '9400d3', 'ff1493', '00bfff', '696969', '696969', '1e90ff', 'b22222', 'fffaf0', '228b22', 'ff00ff', 'dcdcdc', 'f8f8ff', 'ffd700', 'daa520', '808080', '808080', '008000', 'adff2f', 'f0fff0', 'ff69b4', 'cd5c5c', '4b0082', 'fffff0', 'f0e68c', 'e6e6fa', 'fff0f5', '7cfc00', 'fffacd', 'add8e6', 'f08080', 'e0ffff', 'fafad2', 'd3d3d3', 'd3d3d3', '90ee90', 'ffb6c1', 'ffa07a', '20b2aa', '87cefa', '778899', '778899', 'b0c4de', 'ffffe0', '00ff00', '32cd32', 'faf0e6', 'ff00ff', '800000', '66cdaa', '0000cd', 'ba55d3', '9370db', '3cb371', '7b68ee', '00fa9a', '48d1cc', 'c71585', '191970', 'f5fffa', 'ffe4e1', 'ffe4b5', 'ffdead', '000080', 'fdf5e6', '808000', '6b8e23', 'ffa500', 'ff4500', 'da70d6', 'eee8aa', '98fb98', 'afeeee', 'db7093', 'ffefd5', 'ffdab9', 'cd853f', 'ffc0cb', 'dda0dd', 'b0e0e6', '800080', '663399', 'ff0000', 'bc8f8f', '4169e1', '8b4513', 'fa8072', 'f4a460', '2e8b57', 'fff5ee', 'a0522d', 'c0c0c0', '87ceeb', '6a5acd', '708090', '708090', 'fffafa', '00ff7f', '4682b4', 'd2b48c', '008080', 'd8bfd8', 'ff6347', '40e0d0', 'ee82ee', 'f5deb3', 'ffffff', 'f5f5f5', 'ffff00', '9acd32']\r\n const findIndx = colorName.indexOf(name)\r\n if (findIndx !== -1) hex = colorHex[findIndx]\r\n return hex\r\n}","import tinycolor from 'tinycolor2'\r\nimport { getSchemeColorFromTheme } from './schemeColor'\r\nimport {\r\n applyShade,\r\n applyTint,\r\n applyLumOff,\r\n applyLumMod,\r\n applyHueMod,\r\n applySatMod,\r\n hslToRgb,\r\n getColorName2Hex,\r\n} from './color'\r\n\r\nimport {\r\n base64ArrayBuffer,\r\n getTextByPathList,\r\n angleToDegrees,\r\n escapeHtml,\r\n getMimeType,\r\n toHex,\r\n} from './utils'\r\n\r\nexport function getFillType(node) {\r\n let fillType = ''\r\n if (node['a:noFill']) fillType = 'NO_FILL'\r\n if (node['a:solidFill']) fillType = 'SOLID_FILL'\r\n if (node['a:gradFill']) fillType = 'GRADIENT_FILL'\r\n if (node['a:pattFill']) fillType = 'PATTERN_FILL'\r\n if (node['a:blipFill']) fillType = 'PIC_FILL'\r\n if (node['a:grpFill']) fillType = 'GROUP_FILL'\r\n\r\n return fillType\r\n}\r\n\r\nexport async function getPicFill(type, node, warpObj) {\r\n let img\r\n const rId = node['a:blip']['attrs']['r:embed']\r\n let imgPath\r\n if (type === 'slideBg' || type === 'slide') {\r\n imgPath = getTextByPathList(warpObj, ['slideResObj', rId, 'target'])\r\n }\r\n else if (type === 'slideLayoutBg') {\r\n imgPath = getTextByPathList(warpObj, ['layoutResObj', rId, 'target'])\r\n }\r\n else if (type === 'slideMasterBg') {\r\n imgPath = getTextByPathList(warpObj, ['masterResObj', rId, 'target'])\r\n }\r\n else if (type === 'themeBg') {\r\n imgPath = getTextByPathList(warpObj, ['themeResObj', rId, 'target'])\r\n }\r\n else if (type === 'diagramBg') {\r\n imgPath = getTextByPathList(warpObj, ['diagramResObj', rId, 'target'])\r\n }\r\n if (!imgPath) return imgPath\r\n\r\n img = getTextByPathList(warpObj, ['loaded-images', imgPath])\r\n if (!img) {\r\n imgPath = escapeHtml(imgPath)\r\n\r\n const imgExt = imgPath.split('.').pop()\r\n if (imgExt === 'xml') return undefined\r\n\r\n const imgArrayBuffer = await warpObj['zip'].file(imgPath).async('arraybuffer')\r\n const imgMimeType = getMimeType(imgExt)\r\n img = `data:${imgMimeType};base64,${base64ArrayBuffer(imgArrayBuffer)}`\r\n }\r\n return img\r\n}\r\n\r\nexport async function getBgPicFill(bgPr, sorce, warpObj) {\r\n const picBase64 = await getPicFill(sorce, bgPr['a:blipFill'], warpObj)\r\n const aBlipNode = bgPr['a:blipFill']['a:blip']\r\n\r\n const aphaModFixNode = getTextByPathList(aBlipNode, ['a:alphaModFix', 'attrs'])\r\n let opacity = 1\r\n if (aphaModFixNode && aphaModFixNode['amt'] && aphaModFixNode['amt'] !== '') {\r\n opacity = parseInt(aphaModFixNode['amt']) / 100000\r\n }\r\n\r\n return {\r\n picBase64,\r\n opacity,\r\n }\r\n}\r\n\r\nexport function getBgGradientFill(bgPr, phClr, slideMasterContent, warpObj) {\r\n if (bgPr) {\r\n const grdFill = bgPr['a:gradFill']\r\n const gsLst = grdFill['a:gsLst']['a:gs']\r\n const color_ary = []\r\n \r\n for (let i = 0; i < gsLst.length; i++) {\r\n const lo_color = getSolidFill(gsLst[i], slideMasterContent['p:sldMaster']['p:clrMap']['attrs'], phClr, warpObj)\r\n const pos = getTextByPathList(gsLst[i], ['attrs', 'pos'])\r\n\r\n color_ary[i] = {\r\n pos: pos ? (pos / 1000 + '%') : '',\r\n color: lo_color,\r\n }\r\n }\r\n const lin = grdFill['a:lin']\r\n let rot = 90\r\n if (lin) {\r\n rot = angleToDegrees(lin['attrs']['ang'])\r\n rot = rot + 90\r\n }\r\n\r\n return {\r\n rot,\r\n colors: color_ary.sort((a, b) => parseInt(a.pos) - parseInt(b.pos)),\r\n }\r\n }\r\n else if (phClr) {\r\n return phClr.indexOf('#') === -1 ? `#${phClr}` : phClr\r\n }\r\n return null\r\n}\r\n\r\nexport async function getSlideBackgroundFill(warpObj) {\r\n const slideContent = warpObj['slideContent']\r\n const slideLayoutContent = warpObj['slideLayoutContent']\r\n const slideMasterContent = warpObj['slideMasterContent']\r\n \r\n let bgPr = getTextByPathList(slideContent, ['p:sld', 'p:cSld', 'p:bg', 'p:bgPr'])\r\n let bgRef = getTextByPathList(slideContent, ['p:sld', 'p:cSld', 'p:bg', 'p:bgRef'])\r\n\r\n let background = '#fff'\r\n let backgroundType = 'color'\r\n\r\n if (bgPr) {\r\n const bgFillTyp = getFillType(bgPr)\r\n\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgPr['a:solidFill']\r\n let clrMapOvr\r\n const sldClrMapOvr = getTextByPathList(slideContent, ['p:sld', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) clrMapOvr = sldClrMapOvr\r\n else {\r\n const sldClrMapOvr = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) clrMapOvr = sldClrMapOvr\r\n else clrMapOvr = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:clrMap', 'attrs'])\r\n }\r\n const sldBgClr = getSolidFill(sldFill, clrMapOvr, undefined, warpObj)\r\n background = sldBgClr\r\n }\r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgPr, undefined, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n else if (bgFillTyp === 'PIC_FILL') {\r\n background = await getBgPicFill(bgPr, 'slideBg', warpObj)\r\n backgroundType = 'image'\r\n }\r\n }\r\n else if (bgRef) {\r\n let clrMapOvr\r\n const sldClrMapOvr = getTextByPathList(slideContent, ['p:sld', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) clrMapOvr = sldClrMapOvr\r\n else {\r\n const sldClrMapOvr = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) clrMapOvr = sldClrMapOvr\r\n else clrMapOvr = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:clrMap', 'attrs'])\r\n }\r\n const phClr = getSolidFill(bgRef, clrMapOvr, undefined, warpObj)\r\n const idx = Number(bgRef['attrs']['idx'])\r\n\r\n if (idx > 1000) {\r\n const trueIdx = idx - 1000\r\n const bgFillLst = warpObj['themeContent']['a:theme']['a:themeElements']['a:fmtScheme']['a:bgFillStyleLst']\r\n const sortblAry = []\r\n Object.keys(bgFillLst).forEach(key => {\r\n const bgFillLstTyp = bgFillLst[key]\r\n if (key !== 'attrs') {\r\n if (bgFillLstTyp.constructor === Array) {\r\n for (let i = 0; i < bgFillLstTyp.length; i++) {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp[i]\r\n if (bgFillLstTyp[i]['attrs']) {\r\n obj['idex'] = bgFillLstTyp[i]['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp[i]['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n } \r\n else {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp\r\n if (bgFillLstTyp['attrs']) {\r\n obj['idex'] = bgFillLstTyp['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n }\r\n })\r\n const sortByOrder = sortblAry.slice(0)\r\n sortByOrder.sort((a, b) => a.idex - b.idex)\r\n const bgFillLstIdx = sortByOrder[trueIdx - 1]\r\n const bgFillTyp = getFillType(bgFillLstIdx)\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgFillLstIdx['a:solidFill']\r\n const sldBgClr = getSolidFill(sldFill, clrMapOvr, undefined, warpObj)\r\n background = sldBgClr\r\n } \r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgFillLstIdx, phClr, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n bgPr = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:cSld', 'p:bg', 'p:bgPr'])\r\n bgRef = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:cSld', 'p:bg', 'p:bgRef'])\r\n\r\n let clrMapOvr\r\n const sldClrMapOvr = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) clrMapOvr = sldClrMapOvr\r\n else clrMapOvr = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:clrMap', 'attrs'])\r\n\r\n if (bgPr) {\r\n const bgFillTyp = getFillType(bgPr)\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgPr['a:solidFill']\r\n const sldBgClr = getSolidFill(sldFill, clrMapOvr, undefined, warpObj)\r\n background = sldBgClr\r\n }\r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgPr, undefined, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n else if (bgFillTyp === 'PIC_FILL') {\r\n background = await getBgPicFill(bgPr, 'slideLayoutBg', warpObj)\r\n backgroundType = 'image'\r\n }\r\n }\r\n else if (bgRef) {\r\n const phClr = getSolidFill(bgRef, clrMapOvr, undefined, warpObj)\r\n const idx = Number(bgRef['attrs']['idx'])\r\n \r\n if (idx > 1000) {\r\n const trueIdx = idx - 1000\r\n const bgFillLst = warpObj['themeContent']['a:theme']['a:themeElements']['a:fmtScheme']['a:bgFillStyleLst']\r\n const sortblAry = []\r\n Object.keys(bgFillLst).forEach(key => {\r\n const bgFillLstTyp = bgFillLst[key]\r\n if (key !== 'attrs') {\r\n if (bgFillLstTyp.constructor === Array) {\r\n for (let i = 0; i < bgFillLstTyp.length; i++) {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp[i]\r\n if (bgFillLstTyp[i]['attrs']) {\r\n obj['idex'] = bgFillLstTyp[i]['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp[i]['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n } \r\n else {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp\r\n if (bgFillLstTyp['attrs']) {\r\n obj['idex'] = bgFillLstTyp['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n }\r\n })\r\n const sortByOrder = sortblAry.slice(0)\r\n sortByOrder.sort((a, b) => a.idex - b.idex)\r\n const bgFillLstIdx = sortByOrder[trueIdx - 1]\r\n const bgFillTyp = getFillType(bgFillLstIdx)\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgFillLstIdx['a:solidFill']\r\n const sldBgClr = getSolidFill(sldFill, clrMapOvr, undefined, warpObj)\r\n background = sldBgClr\r\n } \r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgFillLstIdx, phClr, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n else if (bgFillTyp === 'PIC_FILL') {\r\n background = await getBgPicFill(bgFillLstIdx, 'themeBg', warpObj)\r\n backgroundType = 'image'\r\n }\r\n }\r\n }\r\n else {\r\n bgPr = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:cSld', 'p:bg', 'p:bgPr'])\r\n bgRef = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:cSld', 'p:bg', 'p:bgRef'])\r\n\r\n const clrMap = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:clrMap', 'attrs'])\r\n if (bgPr) {\r\n const bgFillTyp = getFillType(bgPr)\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgPr['a:solidFill']\r\n const sldBgClr = getSolidFill(sldFill, clrMap, undefined, warpObj)\r\n background = sldBgClr\r\n }\r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgPr, undefined, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n else if (bgFillTyp === 'PIC_FILL') {\r\n background = await getBgPicFill(bgPr, 'slideMasterBg', warpObj)\r\n backgroundType = 'image'\r\n }\r\n }\r\n else if (bgRef) {\r\n const phClr = getSolidFill(bgRef, clrMap, undefined, warpObj)\r\n const idx = Number(bgRef['attrs']['idx'])\r\n \r\n if (idx > 1000) {\r\n const trueIdx = idx - 1000\r\n const bgFillLst = warpObj['themeContent']['a:theme']['a:themeElements']['a:fmtScheme']['a:bgFillStyleLst']\r\n const sortblAry = []\r\n Object.keys(bgFillLst).forEach(key => {\r\n const bgFillLstTyp = bgFillLst[key]\r\n if (key !== 'attrs') {\r\n if (bgFillLstTyp.constructor === Array) {\r\n for (let i = 0; i < bgFillLstTyp.length; i++) {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp[i]\r\n if (bgFillLstTyp[i]['attrs']) {\r\n obj['idex'] = bgFillLstTyp[i]['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp[i]['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n } \r\n else {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp\r\n if (bgFillLstTyp['attrs']) {\r\n obj['idex'] = bgFillLstTyp['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n }\r\n })\r\n const sortByOrder = sortblAry.slice(0)\r\n sortByOrder.sort((a, b) => a.idex - b.idex)\r\n const bgFillLstIdx = sortByOrder[trueIdx - 1]\r\n const bgFillTyp = getFillType(bgFillLstIdx)\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgFillLstIdx['a:solidFill']\r\n const sldBgClr = getSolidFill(sldFill, clrMapOvr, undefined, warpObj)\r\n background = sldBgClr\r\n } \r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgFillLstIdx, phClr, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n else if (bgFillTyp === 'PIC_FILL') {\r\n background = await getBgPicFill(bgFillLstIdx, 'themeBg', warpObj)\r\n backgroundType = 'image'\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return {\r\n type: backgroundType,\r\n value: background,\r\n }\r\n}\r\n\r\nexport function getShapeFill(node, isSvgMode, warpObj) {\r\n if (getTextByPathList(node, ['p:spPr', 'a:noFill'])) {\r\n return isSvgMode ? 'none' : ''\r\n }\r\n\r\n let fillColor\r\n if (!fillColor) {\r\n fillColor = getTextByPathList(node, ['p:spPr', 'a:solidFill', 'a:srgbClr', 'attrs', 'val'])\r\n }\r\n\r\n if (!fillColor) {\r\n const schemeClr = 'a:' + getTextByPathList(node, ['p:spPr', 'a:solidFill', 'a:schemeClr', 'attrs', 'val'])\r\n fillColor = getSchemeColorFromTheme(schemeClr, warpObj)\r\n }\r\n\r\n if (!fillColor) {\r\n const schemeClr = 'a:' + getTextByPathList(node, ['p:style', 'a:fillRef', 'a:schemeClr', 'attrs', 'val'])\r\n fillColor = getSchemeColorFromTheme(schemeClr, warpObj)\r\n }\r\n\r\n if (fillColor) {\r\n fillColor = `#${fillColor}`\r\n\r\n let lumMod = parseInt(getTextByPathList(node, ['p:spPr', 'a:solidFill', 'a:schemeClr', 'a:lumMod', 'attrs', 'val'])) / 100000\r\n let lumOff = parseInt(getTextByPathList(node, ['p:spPr', 'a:solidFill', 'a:schemeClr', 'a:lumOff', 'attrs', 'val'])) / 100000\r\n if (isNaN(lumMod)) lumMod = 1.0\r\n if (isNaN(lumOff)) lumOff = 0\r\n\r\n const color = tinycolor(fillColor).toHsl()\r\n const lum = color.l * lumMod + lumOff\r\n return tinycolor({ h: color.h, s: color.s, l: lum, a: color.a }).toHexString()\r\n } \r\n\r\n if (isSvgMode) return 'none'\r\n return fillColor\r\n}\r\n\r\nexport function getSolidFill(solidFill, clrMap, phClr, warpObj) {\r\n if (!solidFill) return ''\r\n\r\n let color = ''\r\n let clrNode\r\n\r\n if (solidFill['a:srgbClr']) {\r\n clrNode = solidFill['a:srgbClr']\r\n color = getTextByPathList(clrNode, ['attrs', 'val'])\r\n } \r\n else if (solidFill['a:schemeClr']) {\r\n clrNode = solidFill['a:schemeClr']\r\n const schemeClr = 'a:' + getTextByPathList(clrNode, ['attrs', 'val'])\r\n color = getSchemeColorFromTheme(schemeClr, warpObj, clrMap, phClr) || ''\r\n }\r\n else if (solidFill['a:scrgbClr']) {\r\n clrNode = solidFill['a:scrgbClr']\r\n const defBultColorVals = clrNode['attrs']\r\n const red = (defBultColorVals['r'].indexOf('%') !== -1) ? defBultColorVals['r'].split('%').shift() : defBultColorVals['r']\r\n const green = (defBultColorVals['g'].indexOf('%') !== -1) ? defBultColorVals['g'].split('%').shift() : defBultColorVals['g']\r\n const blue = (defBultColorVals['b'].indexOf('%') !== -1) ? defBultColorVals['b'].split('%').shift() : defBultColorVals['b']\r\n color = toHex(255 * (Number(red) / 100)) + toHex(255 * (Number(green) / 100)) + toHex(255 * (Number(blue) / 100))\r\n } \r\n else if (solidFill['a:prstClr']) {\r\n clrNode = solidFill['a:prstClr']\r\n const prstClr = getTextByPathList(clrNode, ['attrs', 'val'])\r\n color = getColorName2Hex(prstClr)\r\n } \r\n else if (solidFill['a:hslClr']) {\r\n clrNode = solidFill['a:hslClr']\r\n const defBultColorVals = clrNode['attrs']\r\n const hue = Number(defBultColorVals['hue']) / 100000\r\n const sat = Number((defBultColorVals['sat'].indexOf('%') !== -1) ? defBultColorVals['sat'].split('%').shift() : defBultColorVals['sat']) / 100\r\n const lum = Number((defBultColorVals['lum'].indexOf('%') !== -1) ? defBultColorVals['lum'].split('%').shift() : defBultColorVals['lum']) / 100\r\n const hsl2rgb = hslToRgb(hue, sat, lum)\r\n color = toHex(hsl2rgb.r) + toHex(hsl2rgb.g) + toHex(hsl2rgb.b)\r\n } \r\n else if (solidFill['a:sysClr']) {\r\n clrNode = solidFill['a:sysClr']\r\n const sysClr = getTextByPathList(clrNode, ['attrs', 'lastClr'])\r\n if (sysClr) color = sysClr\r\n }\r\n\r\n let isAlpha = false\r\n const alpha = parseInt(getTextByPathList(clrNode, ['a:alpha', 'attrs', 'val'])) / 100000\r\n if (!isNaN(alpha)) {\r\n const al_color = tinycolor(color)\r\n al_color.setAlpha(alpha)\r\n color = al_color.toHex8()\r\n isAlpha = true\r\n }\r\n\r\n const hueMod = parseInt(getTextByPathList(clrNode, ['a:hueMod', 'attrs', 'val'])) / 100000\r\n if (!isNaN(hueMod)) {\r\n color = applyHueMod(color, hueMod, isAlpha)\r\n }\r\n const lumMod = parseInt(getTextByPathList(clrNode, ['a:lumMod', 'attrs', 'val'])) / 100000\r\n if (!isNaN(lumMod)) {\r\n color = applyLumMod(color, lumMod, isAlpha)\r\n }\r\n const lumOff = parseInt(getTextByPathList(clrNode, ['a:lumOff', 'attrs', 'val'])) / 100000\r\n if (!isNaN(lumOff)) {\r\n color = applyLumOff(color, lumOff, isAlpha)\r\n }\r\n const satMod = parseInt(getTextByPathList(clrNode, ['a:satMod', 'attrs', 'val'])) / 100000\r\n if (!isNaN(satMod)) {\r\n color = applySatMod(color, satMod, isAlpha)\r\n }\r\n const shade = parseInt(getTextByPathList(clrNode, ['a:shade', 'attrs', 'val'])) / 100000\r\n if (!isNaN(shade)) {\r\n color = applyShade(color, shade, isAlpha)\r\n }\r\n const tint = parseInt(getTextByPathList(clrNode, ['a:tint', 'attrs', 'val'])) / 100000\r\n if (!isNaN(tint)) {\r\n color = applyTint(color, tint, isAlpha)\r\n }\r\n\r\n if (color && color.indexOf('#') === -1) color = '#' + color\r\n\r\n return color\r\n}","import { eachElement, getTextByPathList } from './utils'\r\n\r\nfunction extractChartData(serNode) {\r\n const dataMat = []\r\n if (!serNode) return dataMat\r\n\r\n if (serNode['c:xVal']) {\r\n let dataRow = []\r\n eachElement(serNode['c:xVal']['c:numRef']['c:numCache']['c:pt'], innerNode => {\r\n dataRow.push(parseFloat(innerNode['c:v']))\r\n return ''\r\n })\r\n dataMat.push(dataRow)\r\n dataRow = []\r\n eachElement(serNode['c:yVal']['c:numRef']['c:numCache']['c:pt'], innerNode => {\r\n dataRow.push(parseFloat(innerNode['c:v']))\r\n return ''\r\n })\r\n dataMat.push(dataRow)\r\n } \r\n else {\r\n eachElement(serNode, (innerNode, index) => {\r\n const dataRow = []\r\n const colName = getTextByPathList(innerNode, ['c:tx', 'c:strRef', 'c:strCache', 'c:pt', 'c:v']) || index\r\n\r\n const rowNames = {}\r\n if (getTextByPathList(innerNode, ['c:cat', 'c:strRef', 'c:strCache', 'c:pt'])) {\r\n eachElement(innerNode['c:cat']['c:strRef']['c:strCache']['c:pt'], innerNode => {\r\n rowNames[innerNode['attrs']['idx']] = innerNode['c:v']\r\n return ''\r\n })\r\n } \r\n else if (getTextByPathList(innerNode, ['c:cat', 'c:numRef', 'c:numCache', 'c:pt'])) {\r\n eachElement(innerNode['c:cat']['c:numRef']['c:numCache']['c:pt'], innerNode => {\r\n rowNames[innerNode['attrs']['idx']] = innerNode['c:v']\r\n return ''\r\n })\r\n }\r\n\r\n if (getTextByPathList(innerNode, ['c:val', 'c:numRef', 'c:numCache', 'c:pt'])) {\r\n eachElement(innerNode['c:val']['c:numRef']['c:numCache']['c:pt'], innerNode => {\r\n dataRow.push({\r\n x: innerNode['attrs']['idx'],\r\n y: parseFloat(innerNode['c:v']),\r\n })\r\n return ''\r\n })\r\n }\r\n\r\n dataMat.push({\r\n key: colName,\r\n values: dataRow,\r\n xlabels: rowNames,\r\n })\r\n return ''\r\n })\r\n }\r\n\r\n return dataMat\r\n}\r\n\r\nexport function getChartInfo(plotArea) {\r\n let chart = null\r\n for (const key in plotArea) {\r\n switch (key) {\r\n case 'c:lineChart':\r\n chart = {\r\n type: 'lineChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n marker: plotArea[key]['c:marker'] ? true : false,\r\n }\r\n break\r\n case 'c:line3DChart':\r\n chart = {\r\n type: 'line3DChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:barChart':\r\n chart = {\r\n type: 'barChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n barDir: getTextByPathList(plotArea[key], ['c:barDir', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:bar3DChart':\r\n chart = {\r\n type: 'bar3DChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n barDir: getTextByPathList(plotArea[key], ['c:barDir', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:pieChart':\r\n chart = {\r\n type: 'pieChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n case 'c:pie3DChart':\r\n chart = {\r\n type: 'pie3DChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n case 'c:doughnutChart':\r\n chart = {\r\n type: 'doughnutChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n holeSize: getTextByPathList(plotArea[key], ['c:holeSize', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:areaChart':\r\n chart = {\r\n type: 'areaChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:area3DChart':\r\n chart = {\r\n type: 'area3DChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:scatterChart':\r\n chart = {\r\n type: 'scatterChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n style: getTextByPathList(plotArea[key], ['c:scatterStyle', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:bubbleChart':\r\n chart = {\r\n type: 'bubbleChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n case 'c:radarChart':\r\n chart = {\r\n type: 'radarChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n style: getTextByPathList(plotArea[key], ['c:radarStyle', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:surfaceChart':\r\n chart = {\r\n type: 'surfaceChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n case 'c:surface3DChart':\r\n chart = {\r\n type: 'surface3DChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n case 'c:stockChart':\r\n chart = {\r\n type: 'stockChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n default:\r\n }\r\n }\r\n\r\n return chart\r\n}","import { getTextByPathList } from './utils'\r\n\r\nexport function getHorizontalAlign(node, pNode, type, warpObj) {\r\n let algn = getTextByPathList(node, ['a:pPr', 'attrs', 'algn'])\r\n if (!algn) algn = getTextByPathList(pNode, ['a:pPr', 'attrs', 'algn'])\r\n\r\n if (!algn) {\r\n if (type === 'title' || type === 'ctrTitle' || type === 'subTitle') {\r\n let lvlIdx = 1\r\n const lvlNode = getTextByPathList(pNode, ['a:pPr', 'attrs', 'lvl'])\r\n if (lvlNode) {\r\n lvlIdx = parseInt(lvlNode) + 1\r\n }\r\n const lvlStr = 'a:lvl' + lvlIdx + 'pPr'\r\n algn = getTextByPathList(warpObj, ['slideLayoutTables', 'typeTable', type, 'p:txBody', 'a:lstStyle', lvlStr, 'attrs', 'algn'])\r\n if (!algn) algn = getTextByPathList(warpObj, ['slideMasterTables', 'typeTable', type, 'p:txBody', 'a:lstStyle', lvlStr, 'attrs', 'algn'])\r\n if (!algn) algn = getTextByPathList(warpObj, ['slideMasterTextStyles', 'p:titleStyle', lvlStr, 'attrs', 'algn'])\r\n if (!algn && type === 'subTitle') {\r\n algn = getTextByPathList(warpObj, ['slideMasterTextStyles', 'p:bodyStyle', lvlStr, 'attrs', 'algn'])\r\n }\r\n } \r\n else if (type === 'body') {\r\n algn = getTextByPathList(warpObj, ['slideMasterTextStyles', 'p:bodyStyle', 'a:lvl1pPr', 'attrs', 'algn'])\r\n } \r\n else {\r\n algn = getTextByPathList(warpObj, ['slideMasterTables', 'typeTable', type, 'p:txBody', 'a:lstStyle', 'a:lvl1pPr', 'attrs', 'algn'])\r\n }\r\n }\r\n\r\n let align = 'left'\r\n if (algn) {\r\n switch (algn) {\r\n case 'l':\r\n align = 'left'\r\n break\r\n case 'r':\r\n align = 'right'\r\n break\r\n case 'ctr':\r\n align = 'center'\r\n break\r\n case 'just':\r\n align = 'justify'\r\n break\r\n case 'dist':\r\n align = 'justify'\r\n break\r\n default:\r\n align = 'inherit'\r\n }\r\n }\r\n return align\r\n}\r\n\r\nexport function getVerticalAlign(node, slideLayoutSpNode, slideMasterSpNode) {\r\n let anchor = getTextByPathList(node, ['p:txBody', 'a:bodyPr', 'attrs', 'anchor'])\r\n if (!anchor) {\r\n anchor = getTextByPathList(slideLayoutSpNode, ['p:txBody', 'a:bodyPr', 'attrs', 'anchor'])\r\n if (!anchor) {\r\n anchor = getTextByPathList(slideMasterSpNode, ['p:txBody', 'a:bodyPr', 'attrs', 'anchor'])\r\n if (!anchor) anchor = 't'\r\n }\r\n }\r\n return (anchor === 'ctr') ? 'mid' : ((anchor === 'b') ? 'down' : 'up')\r\n}","export const RATIO_Inches_EMUs = 914400 // 1英寸 = 914400EMUs\r\nexport const RATIO_Inches_Points = 72 // 1英寸 = 72pt\r\nexport const RATIO_EMUs_Points = RATIO_Inches_Points / RATIO_Inches_EMUs // 1EMUs = (72 / 914400)pt","import { RATIO_EMUs_Points } from './constants'\r\n\r\nexport function getPosition(slideSpNode, slideLayoutSpNode, slideMasterSpNode) {\r\n let off\r\n\r\n if (slideSpNode) off = slideSpNode['a:off']['attrs']\r\n else if (slideLayoutSpNode) off = slideLayoutSpNode['a:off']['attrs']\r\n else if (slideMasterSpNode) off = slideMasterSpNode['a:off']['attrs']\r\n\r\n if (!off) return { top: 0, left: 0 }\r\n\r\n return {\r\n top: parseInt(off['y']) * RATIO_EMUs_Points,\r\n left: parseInt(off['x']) * RATIO_EMUs_Points,\r\n }\r\n}\r\n\r\nexport function getSize(slideSpNode, slideLayoutSpNode, slideMasterSpNode) {\r\n let ext\r\n\r\n if (slideSpNode) ext = slideSpNode['a:ext']['attrs']\r\n else if (slideLayoutSpNode) ext = slideLayoutSpNode['a:ext']['attrs']\r\n else if (slideMasterSpNode) ext = slideMasterSpNode['a:ext']['attrs']\r\n\r\n if (!ext) return { width: 0, height: 0 }\r\n\r\n return {\r\n width: parseInt(ext['cx']) * RATIO_EMUs_Points,\r\n height: parseInt(ext['cy']) * RATIO_EMUs_Points,\r\n }\r\n}","import { getSolidFill } from './fill'\r\nimport { RATIO_EMUs_Points } from './constants'\r\n\r\nexport function getShadow(node, warpObj) {\r\n const chdwClrNode = getSolidFill(node, undefined, undefined, warpObj)\r\n const outerShdwAttrs = node['attrs']\r\n const dir = outerShdwAttrs['dir'] ? (parseInt(outerShdwAttrs['dir']) / 60000) : 0\r\n const dist = parseInt(outerShdwAttrs['dist']) * RATIO_EMUs_Points\r\n const blurRad = outerShdwAttrs['blurRad'] ? parseInt(outerShdwAttrs['blurRad']) * RATIO_EMUs_Points : ''\r\n const vx = dist * Math.sin(dir * Math.PI / 180)\r\n const hx = dist * Math.cos(dir * Math.PI / 180)\r\n\r\n return {\r\n h: hx,\r\n v: vx,\r\n blur: blurRad,\r\n color: chdwClrNode,\r\n }\r\n}","import { getHorizontalAlign } from './align'\r\nimport { getTextByPathList } from './utils'\r\n\r\nimport {\r\n getFontType,\r\n getFontColor,\r\n getFontSize,\r\n getFontBold,\r\n getFontItalic,\r\n getFontDecoration,\r\n getFontDecorationLine,\r\n getFontSpace,\r\n getFontSubscript,\r\n getFontShadow,\r\n} from './fontStyle'\r\n\r\nexport function genTextBody(textBodyNode, spNode, slideLayoutSpNode, type, warpObj) {\r\n if (!textBodyNode) return ''\r\n\r\n let text = ''\r\n\r\n const pFontStyle = getTextByPathList(spNode, ['p:style', 'a:fontRef'])\r\n\r\n const pNode = textBodyNode['a:p']\r\n const pNodes = pNode.constructor === Array ? pNode : [pNode]\r\n\r\n let isList = ''\r\n\r\n for (const pNode of pNodes) {\r\n let rNode = pNode['a:r']\r\n let fldNode = pNode['a:fld']\r\n let brNode = pNode['a:br']\r\n if (rNode) {\r\n rNode = (rNode.constructor === Array) ? rNode : [rNode]\r\n\r\n if (fldNode) {\r\n fldNode = (fldNode.constructor === Array) ? fldNode : [fldNode]\r\n rNode = rNode.concat(fldNode)\r\n }\r\n if (brNode) {\r\n brNode = (brNode.constructor === Array) ? brNode : [brNode]\r\n brNode.forEach(item => item.type = 'br')\r\n \r\n if (brNode.length > 1) brNode.shift()\r\n rNode = rNode.concat(brNode)\r\n rNode.sort((a, b) => {\r\n if (!a.attrs || !b.attrs) return true\r\n return a.attrs.order - b.attrs.order\r\n })\r\n }\r\n }\r\n\r\n const align = getHorizontalAlign(pNode, spNode, type, warpObj)\r\n\r\n const listType = getListType(pNode)\r\n if (listType) {\r\n if (!isList) {\r\n text += `<${listType}>`\r\n isList = listType\r\n }\r\n else if (isList && isList !== listType) {\r\n text += ``\r\n text += `<${listType}>`\r\n isList = listType\r\n }\r\n text += `
  • `\r\n }\r\n else {\r\n if (isList) {\r\n text += ``\r\n isList = ''\r\n }\r\n text += `

    `\r\n }\r\n \r\n if (!rNode) text += genSpanElement(pNode, spNode, textBodyNode, pFontStyle, slideLayoutSpNode, type, warpObj)\r\n else {\r\n for (const rNodeItem of rNode) {\r\n text += genSpanElement(rNodeItem, pNode, textBodyNode, pFontStyle, slideLayoutSpNode, type, warpObj)\r\n }\r\n }\r\n\r\n if (listType) text += '

  • '\r\n else text += '

    '\r\n }\r\n return text\r\n}\r\n\r\nexport function getListType(node) {\r\n const pPrNode = node['a:pPr']\r\n if (!pPrNode) return ''\r\n\r\n if (pPrNode['a:buChar']) return 'ul'\r\n if (pPrNode['a:buAutoNum']) return 'ol'\r\n \r\n return ''\r\n}\r\n\r\nexport function genSpanElement(node, pNode, textBodyNode, pFontStyle, slideLayoutSpNode, type, warpObj) {\r\n const lstStyle = textBodyNode['a:lstStyle']\r\n const slideMasterTextStyles = warpObj['slideMasterTextStyles']\r\n\r\n let lvl = 1\r\n const pPrNode = pNode['a:pPr']\r\n const lvlNode = getTextByPathList(pPrNode, ['attrs', 'lvl'])\r\n if (lvlNode !== undefined) lvl = parseInt(lvlNode) + 1\r\n\r\n let text = node['a:t']\r\n if (typeof text !== 'string') text = getTextByPathList(node, ['a:fld', 'a:t'])\r\n if (typeof text !== 'string') text = ' '\r\n\r\n let styleText = ''\r\n const fontColor = getFontColor(node, pNode, lstStyle, pFontStyle, lvl, warpObj)\r\n const fontSize = getFontSize(node, slideLayoutSpNode, type, slideMasterTextStyles)\r\n const fontType = getFontType(node, type, warpObj)\r\n const fontBold = getFontBold(node)\r\n const fontItalic = getFontItalic(node)\r\n const fontDecoration = getFontDecoration(node)\r\n const fontDecorationLine = getFontDecorationLine(node)\r\n const fontSpace = getFontSpace(node)\r\n const shadow = getFontShadow(node, warpObj)\r\n const subscript = getFontSubscript(node)\r\n\r\n if (fontColor) styleText += `color: ${fontColor};`\r\n if (fontSize) styleText += `font-size: ${fontSize};`\r\n if (fontType) styleText += `font-family: ${fontType};`\r\n if (fontBold) styleText += `font-weight: ${fontBold};`\r\n if (fontItalic) styleText += `font-style: ${fontItalic};`\r\n if (fontDecoration) styleText += `text-decoration: ${fontDecoration};`\r\n if (fontDecorationLine) styleText += `text-decoration-line: ${fontDecorationLine};`\r\n if (fontSpace) styleText += `letter-spacing: ${fontSpace};`\r\n if (subscript) styleText += `vertical-align: ${subscript};`\r\n if (shadow) styleText += `text-shadow: ${shadow};`\r\n\r\n const linkID = getTextByPathList(node, ['a:rPr', 'a:hlinkClick', 'attrs', 'r:id'])\r\n if (linkID) {\r\n const linkURL = warpObj['slideResObj'][linkID]['target']\r\n return `${text.replace(/\\t/g, '    ').replace(/\\s/g, ' ')}`\r\n } \r\n return `${text.replace(/\\t/g, '    ').replace(/\\s/g, ' ')}`\r\n}","import { getTextByPathList } from './utils'\r\nimport { getShadow } from './shadow'\r\nimport { getFillType, getSolidFill } from './fill'\r\n\r\nexport function getFontType(node, type, warpObj) {\r\n let typeface = getTextByPathList(node, ['a:rPr', 'a:latin', 'attrs', 'typeface'])\r\n\r\n if (!typeface) {\r\n const fontSchemeNode = getTextByPathList(warpObj['themeContent'], ['a:theme', 'a:themeElements', 'a:fontScheme'])\r\n\r\n if (type === 'title' || type === 'subTitle' || type === 'ctrTitle') {\r\n typeface = getTextByPathList(fontSchemeNode, ['a:majorFont', 'a:latin', 'attrs', 'typeface'])\r\n } \r\n else if (type === 'body') {\r\n typeface = getTextByPathList(fontSchemeNode, ['a:minorFont', 'a:latin', 'attrs', 'typeface'])\r\n } \r\n else {\r\n typeface = getTextByPathList(fontSchemeNode, ['a:minorFont', 'a:latin', 'attrs', 'typeface'])\r\n }\r\n }\r\n\r\n return typeface || ''\r\n}\r\n\r\nexport function getFontColor(node, pNode, lstStyle, pFontStyle, lvl, warpObj) {\r\n const rPrNode = getTextByPathList(node, ['a:rPr'])\r\n let filTyp, color\r\n if (rPrNode) {\r\n filTyp = getFillType(rPrNode)\r\n if (filTyp === 'SOLID_FILL') {\r\n const solidFillNode = rPrNode['a:solidFill']\r\n color = getSolidFill(solidFillNode, undefined, undefined, warpObj)\r\n }\r\n }\r\n if (!color && getTextByPathList(lstStyle, ['a:lvl' + lvl + 'pPr', 'a:defRPr'])) {\r\n const lstStyledefRPr = getTextByPathList(lstStyle, ['a:lvl' + lvl + 'pPr', 'a:defRPr'])\r\n filTyp = getFillType(lstStyledefRPr)\r\n if (filTyp === 'SOLID_FILL') {\r\n const solidFillNode = lstStyledefRPr['a:solidFill']\r\n color = getSolidFill(solidFillNode, undefined, undefined, warpObj)\r\n }\r\n }\r\n if (!color) {\r\n const sPstyle = getTextByPathList(pNode, ['p:style', 'a:fontRef'])\r\n if (sPstyle) color = getSolidFill(sPstyle, undefined, undefined, warpObj)\r\n if (!color && pFontStyle) color = getSolidFill(pFontStyle, undefined, undefined, warpObj)\r\n }\r\n return color || ''\r\n}\r\n\r\nexport function getFontSize(node, slideLayoutSpNode, type, slideMasterTextStyles) {\r\n let fontSize\r\n\r\n if (getTextByPathList(node, ['a:rPr', 'attrs', 'sz'])) fontSize = getTextByPathList(node, ['a:rPr', 'attrs', 'sz']) / 100\r\n\r\n if ((isNaN(fontSize) || !fontSize)) {\r\n const sz = getTextByPathList(slideLayoutSpNode, ['p:txBody', 'a:lstStyle', 'a:lvl1pPr', 'a:defRPr', 'attrs', 'sz'])\r\n fontSize = parseInt(sz) / 100\r\n }\r\n\r\n if (isNaN(fontSize) || !fontSize) {\r\n let sz\r\n if (type === 'title' || type === 'subTitle' || type === 'ctrTitle') {\r\n sz = getTextByPathList(slideMasterTextStyles, ['p:titleStyle', 'a:lvl1pPr', 'a:defRPr', 'attrs', 'sz'])\r\n } \r\n else if (type === 'body') {\r\n sz = getTextByPathList(slideMasterTextStyles, ['p:bodyStyle', 'a:lvl1pPr', 'a:defRPr', 'attrs', 'sz'])\r\n } \r\n else if (type === 'dt' || type === 'sldNum') {\r\n sz = '1200'\r\n } \r\n else if (!type) {\r\n sz = getTextByPathList(slideMasterTextStyles, ['p:otherStyle', 'a:lvl1pPr', 'a:defRPr', 'attrs', 'sz'])\r\n }\r\n if (sz) fontSize = parseInt(sz) / 100\r\n }\r\n\r\n const baseline = getTextByPathList(node, ['a:rPr', 'attrs', 'baseline'])\r\n if (baseline && !isNaN(fontSize)) fontSize -= 10\r\n\r\n fontSize = (isNaN(fontSize) || !fontSize) ? 18 : fontSize\r\n\r\n return fontSize + 'pt'\r\n}\r\n\r\nexport function getFontBold(node) {\r\n return getTextByPathList(node, ['a:rPr', 'attrs', 'b']) === '1' ? 'bold' : ''\r\n}\r\n\r\nexport function getFontItalic(node) {\r\n return getTextByPathList(node, ['a:rPr', 'attrs', 'i']) === '1' ? 'italic' : ''\r\n}\r\n\r\nexport function getFontDecoration(node) {\r\n return getTextByPathList(node, ['a:rPr', 'attrs', 'u']) === 'sng' ? 'underline' : ''\r\n}\r\n\r\nexport function getFontDecorationLine(node) {\r\n return getTextByPathList(node, ['a:rPr', 'attrs', 'strike']) === 'sngStrike' ? 'line-through' : ''\r\n}\r\n\r\nexport function getFontSpace(node) {\r\n const spc = getTextByPathList(node, ['a:rPr', 'attrs', 'spc'])\r\n return spc ? (parseInt(spc) / 100 + 'pt') : ''\r\n}\r\n\r\nexport function getFontSubscript(node) {\r\n const baseline = getTextByPathList(node, ['a:rPr', 'attrs', 'baseline'])\r\n if (!baseline) return ''\r\n return parseInt(baseline) > 0 ? 'super' : 'sub'\r\n}\r\n\r\nexport function getFontShadow(node, warpObj) {\r\n const txtShadow = getTextByPathList(node, ['a:rPr', 'a:effectLst', 'a:outerShdw'])\r\n if (txtShadow) {\r\n const shadow = getShadow(txtShadow, warpObj)\r\n if (shadow) {\r\n const { h, v, blur, color } = shadow\r\n if (!isNaN(v) && !isNaN(h)) {\r\n return h + 'pt ' + v + 'pt ' + (blur ? blur + 'pt' : '') + ' ' + color\r\n }\r\n }\r\n }\r\n return ''\r\n}","import { getTextByPathList } from './utils'\r\n\r\nexport function shapeArc(cX, cY, rX, rY, stAng, endAng, isClose) {\r\n let dData\r\n let angle = stAng\r\n if (endAng >= stAng) {\r\n while (angle <= endAng) {\r\n const radians = angle * (Math.PI / 180)\r\n const x = cX + Math.cos(radians) * rX\r\n const y = cY + Math.sin(radians) * rY\r\n if (angle === stAng) {\r\n dData = ' M' + x + ' ' + y\r\n }\r\n dData += ' L' + x + ' ' + y\r\n angle++\r\n }\r\n } \r\n else {\r\n while (angle > endAng) {\r\n const radians = angle * (Math.PI / 180)\r\n const x = cX + Math.cos(radians) * rX\r\n const y = cY + Math.sin(radians) * rY\r\n if (angle === stAng) {\r\n dData = ' M ' + x + ' ' + y\r\n }\r\n dData += ' L ' + x + ' ' + y\r\n angle--\r\n }\r\n }\r\n dData += (isClose ? ' z' : '')\r\n return dData\r\n}\r\n\r\nexport function getCustomShapePath(custShapType, w, h) {\r\n const pathLstNode = getTextByPathList(custShapType, ['a:pathLst'])\r\n let pathNodes = getTextByPathList(pathLstNode, ['a:path'])\r\n\r\n if (Array.isArray(pathNodes)) pathNodes = pathNodes.pop()\r\n\r\n const maxX = parseInt(pathNodes['attrs']['w'])\r\n const maxY = parseInt(pathNodes['attrs']['h'])\r\n const cX = maxX === 0 ? 0 : (1 / maxX) * w\r\n const cY = maxY === 0 ? 0 : (1 / maxY) * h\r\n let d = ''\r\n\r\n let moveToNode = getTextByPathList(pathNodes, ['a:moveTo'])\r\n\r\n const lnToNodes = pathNodes['a:lnTo']\r\n let cubicBezToNodes = pathNodes['a:cubicBezTo']\r\n const arcToNodes = pathNodes['a:arcTo']\r\n let closeNode = getTextByPathList(pathNodes, ['a:close'])\r\n if (!Array.isArray(moveToNode)) moveToNode = [moveToNode]\r\n\r\n const multiSapeAry = []\r\n if (moveToNode.length > 0) {\r\n Object.keys(moveToNode).forEach(key => {\r\n const moveToPtNode = moveToNode[key]['a:pt']\r\n if (moveToPtNode) {\r\n Object.keys(moveToPtNode).forEach(key => {\r\n const moveToNoPt = moveToPtNode[key]\r\n const spX = moveToNoPt['attrs', 'x']\r\n const spY = moveToNoPt['attrs', 'y']\r\n const order = moveToNoPt['attrs', 'order']\r\n multiSapeAry.push({\r\n type: 'movto',\r\n x: spX,\r\n y: spY,\r\n order,\r\n })\r\n })\r\n }\r\n })\r\n if (lnToNodes) {\r\n Object.keys(lnToNodes).forEach(key => {\r\n const lnToPtNode = lnToNodes[key]['a:pt']\r\n if (lnToPtNode) {\r\n Object.keys(lnToPtNode).forEach(key => {\r\n const lnToNoPt = lnToPtNode[key]\r\n const ptX = lnToNoPt['attrs', 'x']\r\n const ptY = lnToNoPt['attrs', 'y']\r\n const order = lnToNoPt['attrs', 'order']\r\n multiSapeAry.push({\r\n type: 'lnto',\r\n x: ptX,\r\n y: ptY,\r\n order,\r\n })\r\n })\r\n }\r\n })\r\n }\r\n if (cubicBezToNodes) {\r\n const cubicBezToPtNodesAry = []\r\n if (!Array.isArray(cubicBezToNodes)) {\r\n cubicBezToNodes = [cubicBezToNodes]\r\n }\r\n Object.keys(cubicBezToNodes).forEach(key => {\r\n cubicBezToPtNodesAry.push(cubicBezToNodes[key]['a:pt'])\r\n })\r\n\r\n cubicBezToPtNodesAry.forEach(key => {\r\n const pts_ary = []\r\n key.forEach(pt => {\r\n const pt_obj = {\r\n x: pt['attrs']['x'],\r\n y: pt['attrs']['y'],\r\n }\r\n pts_ary.push(pt_obj)\r\n })\r\n const order = key[0]['attrs']['order']\r\n multiSapeAry.push({\r\n type: 'cubicBezTo',\r\n cubBzPt: pts_ary,\r\n order,\r\n })\r\n })\r\n }\r\n if (arcToNodes) {\r\n const arcToNodesAttrs = arcToNodes['attrs']\r\n const order = arcToNodesAttrs['order']\r\n const hR = arcToNodesAttrs['hR']\r\n const wR = arcToNodesAttrs['wR']\r\n const stAng = arcToNodesAttrs['stAng']\r\n const swAng = arcToNodesAttrs['swAng']\r\n let shftX = 0\r\n let shftY = 0\r\n const arcToPtNode = getTextByPathList(arcToNodes, ['a:pt', 'attrs'])\r\n if (arcToPtNode) {\r\n shftX = arcToPtNode['x']\r\n shftY = arcToPtNode['y']\r\n }\r\n multiSapeAry.push({\r\n type: 'arcTo',\r\n hR: hR,\r\n wR: wR,\r\n stAng: stAng,\r\n swAng: swAng,\r\n shftX: shftX,\r\n shftY: shftY,\r\n order,\r\n })\r\n }\r\n if (closeNode) {\r\n if (!Array.isArray(closeNode)) closeNode = [closeNode]\r\n Object.keys(closeNode).forEach(() => {\r\n multiSapeAry.push({\r\n type: 'close',\r\n order: Infinity,\r\n })\r\n })\r\n }\r\n\r\n multiSapeAry.sort((a, b) => a.order - b.order)\r\n\r\n let k = 0\r\n while (k < multiSapeAry.length) {\r\n if (multiSapeAry[k].type === 'movto') {\r\n const spX = parseInt(multiSapeAry[k].x) * cX\r\n const spY = parseInt(multiSapeAry[k].y) * cY\r\n d += ' M' + spX + ',' + spY\r\n } \r\n else if (multiSapeAry[k].type === 'lnto') {\r\n const Lx = parseInt(multiSapeAry[k].x) * cX\r\n const Ly = parseInt(multiSapeAry[k].y) * cY\r\n d += ' L' + Lx + ',' + Ly\r\n } \r\n else if (multiSapeAry[k].type === 'cubicBezTo') {\r\n const Cx1 = parseInt(multiSapeAry[k].cubBzPt[0].x) * cX\r\n const Cy1 = parseInt(multiSapeAry[k].cubBzPt[0].y) * cY\r\n const Cx2 = parseInt(multiSapeAry[k].cubBzPt[1].x) * cX\r\n const Cy2 = parseInt(multiSapeAry[k].cubBzPt[1].y) * cY\r\n const Cx3 = parseInt(multiSapeAry[k].cubBzPt[2].x) * cX\r\n const Cy3 = parseInt(multiSapeAry[k].cubBzPt[2].y) * cY\r\n d += ' C' + Cx1 + ',' + Cy1 + ' ' + Cx2 + ',' + Cy2 + ' ' + Cx3 + ',' + Cy3\r\n } \r\n else if (multiSapeAry[k].type === 'arcTo') {\r\n const hR = parseInt(multiSapeAry[k].hR) * cX\r\n const wR = parseInt(multiSapeAry[k].wR) * cY\r\n const stAng = parseInt(multiSapeAry[k].stAng) / 60000\r\n const swAng = parseInt(multiSapeAry[k].swAng) / 60000\r\n const endAng = stAng + swAng\r\n d += shapeArc(wR, hR, wR, hR, stAng, endAng, false)\r\n }\r\n else if (multiSapeAry[k].type === 'close') d += 'z'\r\n k++\r\n }\r\n }\r\n\r\n return d\r\n}","import { getShapeFill, getSolidFill } from './fill'\r\nimport { getTextByPathList } from './utils'\r\nimport { getBorder } from './border'\r\n\r\nexport function getTableBorders(node, warpObj) {\r\n const borderStyles = {}\r\n if (node['a:bottom']) {\r\n const obj = {\r\n 'p:spPr': {\r\n 'a:ln': node['a:bottom']['a:ln']\r\n }\r\n }\r\n const border = getBorder(obj, undefined, warpObj)\r\n borderStyles.bottom = border\r\n }\r\n if (node['a:top']) {\r\n const obj = {\r\n 'p:spPr': {\r\n 'a:ln': node['a:top']['a:ln']\r\n }\r\n }\r\n const border = getBorder(obj, undefined, warpObj)\r\n borderStyles.top = border\r\n }\r\n if (node['a:right']) {\r\n const obj = {\r\n 'p:spPr': {\r\n 'a:ln': node['a:right']['a:ln']\r\n }\r\n }\r\n const border = getBorder(obj, undefined, warpObj)\r\n borderStyles.right = border\r\n }\r\n if (node['a:left']) {\r\n const obj = {\r\n 'p:spPr': {\r\n 'a:ln': node['a:left']['a:ln']\r\n }\r\n }\r\n const border = getBorder(obj, undefined, warpObj)\r\n borderStyles.left = border\r\n }\r\n return borderStyles\r\n}\r\n\r\nexport function getTableCellParams(tcNode, thisTblStyle, cellSource, warpObj) {\r\n const rowSpan = getTextByPathList(tcNode, ['attrs', 'rowSpan'])\r\n const colSpan = getTextByPathList(tcNode, ['attrs', 'gridSpan'])\r\n const vMerge = getTextByPathList(tcNode, ['attrs', 'vMerge'])\r\n const hMerge = getTextByPathList(tcNode, ['attrs', 'hMerge'])\r\n let fillColor\r\n let fontColor\r\n let fontBold\r\n\r\n const getCelFill = getTextByPathList(tcNode, ['a:tcPr'])\r\n if (getCelFill) {\r\n const cellObj = { 'p:spPr': getCelFill }\r\n fillColor = getShapeFill(cellObj, undefined, warpObj)\r\n }\r\n if (!fillColor) {\r\n let bgFillschemeClr\r\n if (cellSource) bgFillschemeClr = getTextByPathList(thisTblStyle, [cellSource, 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n }\r\n }\r\n\r\n let rowTxtStyl\r\n if (cellSource) rowTxtStyl = getTextByPathList(thisTblStyle, [cellSource, 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n\r\n return {\r\n fillColor,\r\n fontColor,\r\n fontBold,\r\n rowSpan: rowSpan ? +rowSpan : undefined,\r\n colSpan: colSpan ? +colSpan : undefined,\r\n vMerge: vMerge ? +vMerge : undefined,\r\n hMerge: hMerge ? +hMerge : undefined,\r\n }\r\n}\r\n\r\nexport function getTableRowParams(trNodes, i, tblStylAttrObj, thisTblStyle, warpObj) {\r\n let fillColor\r\n let fontColor\r\n let fontBold\r\n\r\n if (thisTblStyle && thisTblStyle['a:wholeTbl']) {\r\n const bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:wholeTbl', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n const local_fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n if (local_fillColor) fillColor = local_fillColor\r\n }\r\n const rowTxtStyl = getTextByPathList(thisTblStyle, ['a:wholeTbl', 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n const local_fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (local_fontColor) fontColor = local_fontColor\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n }\r\n if (i === 0 && tblStylAttrObj['isFrstRowAttr'] === 1 && thisTblStyle) {\r\n const bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:firstRow', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n const local_fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n if (local_fillColor) fillColor = local_fillColor\r\n }\r\n const rowTxtStyl = getTextByPathList(thisTblStyle, ['a:firstRow', 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n const local_fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (local_fontColor) fontColor = local_fontColor\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n }\r\n else if (i > 0 && tblStylAttrObj['isBandRowAttr'] === 1 && thisTblStyle) {\r\n fillColor = ''\r\n if ((i % 2) === 0 && thisTblStyle['a:band2H']) {\r\n const bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:band2H', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n const local_fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n if (local_fillColor) fillColor = local_fillColor\r\n }\r\n const rowTxtStyl = getTextByPathList(thisTblStyle, ['a:band2H', 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n const local_fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (local_fontColor) fontColor = local_fontColor\r\n }\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n if ((i % 2) !== 0 && thisTblStyle['a:band1H']) {\r\n const bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:band1H', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n const local_fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n if (local_fillColor) fillColor = local_fillColor\r\n }\r\n const rowTxtStyl = getTextByPathList(thisTblStyle, ['a:band1H', 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n const local_fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (local_fontColor) fontColor = local_fontColor\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n }\r\n }\r\n if (i === (trNodes.length - 1) && tblStylAttrObj['isLstRowAttr'] === 1 && thisTblStyle) {\r\n const bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:lastRow', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n const local_fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n if (local_fillColor) {\r\n fillColor = local_fillColor\r\n }\r\n }\r\n const rowTxtStyl = getTextByPathList(thisTblStyle, ['a:lastRow', 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n const local_fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (local_fontColor) fontColor = local_fontColor\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n }\r\n\r\n return {\r\n fillColor,\r\n fontColor,\r\n fontBold,\r\n }\r\n}","import JSZip from 'jszip'\r\nimport { readXmlFile } from './readXmlFile'\r\nimport { getBorder } from './border'\r\nimport { getSlideBackgroundFill, getShapeFill, getSolidFill } from './fill'\r\nimport { getChartInfo } from './chart'\r\nimport { getVerticalAlign } from './align'\r\nimport { getPosition, getSize } from './position'\r\nimport { genTextBody } from './text'\r\nimport { getCustomShapePath } from './shape'\r\nimport { extractFileExtension, base64ArrayBuffer, getTextByPathList, angleToDegrees, getMimeType, isVideoLink, escapeHtml } from './utils'\r\nimport { getShadow } from './shadow'\r\nimport { getTableBorders, getTableCellParams, getTableRowParams } from './table'\r\nimport { RATIO_EMUs_Points } from './constants'\r\n\r\nexport async function parse(file) {\r\n const slides = []\r\n \r\n const zip = await JSZip.loadAsync(file)\r\n\r\n const filesInfo = await getContentTypes(zip)\r\n const { width, height, defaultTextStyle } = await getSlideInfo(zip)\r\n const themeContent = await loadTheme(zip)\r\n\r\n for (const filename of filesInfo.slides) {\r\n const singleSlide = await processSingleSlide(zip, filename, themeContent, defaultTextStyle)\r\n slides.push(singleSlide)\r\n }\r\n\r\n return {\r\n slides,\r\n size: {\r\n width,\r\n height,\r\n },\r\n }\r\n}\r\n\r\nasync function getContentTypes(zip) {\r\n const ContentTypesJson = await readXmlFile(zip, '[Content_Types].xml')\r\n const subObj = ContentTypesJson['Types']['Override']\r\n let slidesLocArray = []\r\n let slideLayoutsLocArray = []\r\n\r\n for (const item of subObj) {\r\n switch (item['attrs']['ContentType']) {\r\n case 'application/vnd.openxmlformats-officedocument.presentationml.slide+xml':\r\n slidesLocArray.push(item['attrs']['PartName'].substr(1))\r\n break\r\n case 'application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml':\r\n slideLayoutsLocArray.push(item['attrs']['PartName'].substr(1))\r\n break\r\n default:\r\n }\r\n }\r\n \r\n const sortSlideXml = (p1, p2) => {\r\n const n1 = +/(\\d+)\\.xml/.exec(p1)[1]\r\n const n2 = +/(\\d+)\\.xml/.exec(p2)[1]\r\n return n1 - n2\r\n }\r\n slidesLocArray = slidesLocArray.sort(sortSlideXml)\r\n slideLayoutsLocArray = slideLayoutsLocArray.sort(sortSlideXml)\r\n \r\n return {\r\n slides: slidesLocArray,\r\n slideLayouts: slideLayoutsLocArray,\r\n }\r\n}\r\n\r\nasync function getSlideInfo(zip) {\r\n const content = await readXmlFile(zip, 'ppt/presentation.xml')\r\n const sldSzAttrs = content['p:presentation']['p:sldSz']['attrs']\r\n const defaultTextStyle = content['p:presentation']['p:defaultTextStyle']\r\n return {\r\n width: parseInt(sldSzAttrs['cx']) * RATIO_EMUs_Points,\r\n height: parseInt(sldSzAttrs['cy']) * RATIO_EMUs_Points,\r\n defaultTextStyle,\r\n }\r\n}\r\n\r\nasync function loadTheme(zip) {\r\n const preResContent = await readXmlFile(zip, 'ppt/_rels/presentation.xml.rels')\r\n const relationshipArray = preResContent['Relationships']['Relationship']\r\n let themeURI\r\n\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipItem of relationshipArray) {\r\n if (relationshipItem['attrs']['Type'] === 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme') {\r\n themeURI = relationshipItem['attrs']['Target']\r\n break\r\n }\r\n }\r\n } \r\n else if (relationshipArray['attrs']['Type'] === 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme') {\r\n themeURI = relationshipArray['attrs']['Target']\r\n }\r\n if (!themeURI) throw Error(`Can't open theme file.`)\r\n\r\n return await readXmlFile(zip, 'ppt/' + themeURI)\r\n}\r\n\r\nasync function processSingleSlide(zip, sldFileName, themeContent, defaultTextStyle) {\r\n const resName = sldFileName.replace('slides/slide', 'slides/_rels/slide') + '.rels'\r\n const resContent = await readXmlFile(zip, resName)\r\n let relationshipArray = resContent['Relationships']['Relationship']\r\n let layoutFilename = ''\r\n let diagramFilename = ''\r\n const slideResObj = {}\r\n\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipArrayItem of relationshipArray) {\r\n switch (relationshipArrayItem['attrs']['Type']) {\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout':\r\n layoutFilename = relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n break\r\n case 'http://schemas.microsoft.com/office/2007/relationships/diagramDrawing':\r\n diagramFilename = relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n slideResObj[relationshipArrayItem['attrs']['Id']] = {\r\n type: relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n target: relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n }\r\n break\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide':\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image':\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart':\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink':\r\n default:\r\n slideResObj[relationshipArrayItem['attrs']['Id']] = {\r\n type: relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n target: relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/'),\r\n }\r\n }\r\n }\r\n } \r\n else layoutFilename = relationshipArray['attrs']['Target'].replace('../', 'ppt/')\r\n\r\n const slideLayoutContent = await readXmlFile(zip, layoutFilename)\r\n const slideLayoutTables = await indexNodes(slideLayoutContent)\r\n\r\n const slideLayoutResFilename = layoutFilename.replace('slideLayouts/slideLayout', 'slideLayouts/_rels/slideLayout') + '.rels'\r\n const slideLayoutResContent = await readXmlFile(zip, slideLayoutResFilename)\r\n relationshipArray = slideLayoutResContent['Relationships']['Relationship']\r\n\r\n let masterFilename = ''\r\n const layoutResObj = {}\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipArrayItem of relationshipArray) {\r\n switch (relationshipArrayItem['attrs']['Type']) {\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster':\r\n masterFilename = relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n break\r\n default:\r\n layoutResObj[relationshipArrayItem['attrs']['Id']] = {\r\n type: relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n target: relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/'),\r\n }\r\n }\r\n }\r\n } \r\n else masterFilename = relationshipArray['attrs']['Target'].replace('../', 'ppt/')\r\n\r\n const slideMasterContent = await readXmlFile(zip, masterFilename)\r\n const slideMasterTextStyles = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:txStyles'])\r\n const slideMasterTables = indexNodes(slideMasterContent)\r\n\r\n const slideMasterResFilename = masterFilename.replace('slideMasters/slideMaster', 'slideMasters/_rels/slideMaster') + '.rels'\r\n const slideMasterResContent = await readXmlFile(zip, slideMasterResFilename)\r\n relationshipArray = slideMasterResContent['Relationships']['Relationship']\r\n\r\n let themeFilename = ''\r\n const masterResObj = {}\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipArrayItem of relationshipArray) {\r\n switch (relationshipArrayItem['attrs']['Type']) {\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme':\r\n break\r\n default:\r\n masterResObj[relationshipArrayItem['attrs']['Id']] = {\r\n type: relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n target: relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/'),\r\n }\r\n }\r\n }\r\n }\r\n else themeFilename = relationshipArray['attrs']['Target'].replace('../', 'ppt/')\r\n\r\n const themeResObj = {}\r\n if (themeFilename) {\r\n const themeName = themeFilename.split('/').pop()\r\n const themeResFileName = themeFilename.replace(themeName, '_rels/' + themeName) + '.rels'\r\n const themeResContent = await readXmlFile(zip, themeResFileName)\r\n if (themeResContent) {\r\n relationshipArray = themeResContent['Relationships']['Relationship']\r\n if (relationshipArray) {\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipArrayItem of relationshipArray) {\r\n themeResObj[relationshipArrayItem['attrs']['Id']] = {\r\n 'type': relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n 'target': relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n }\r\n }\r\n } \r\n else {\r\n themeResObj[relationshipArray['attrs']['Id']] = {\r\n 'type': relationshipArray['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n 'target': relationshipArray['attrs']['Target'].replace('../', 'ppt/')\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n const diagramResObj = {}\r\n let digramFileContent = {}\r\n if (diagramFilename) {\r\n const diagName = diagramFilename.split('/').pop()\r\n const diagramResFileName = diagramFilename.replace(diagName, '_rels/' + diagName) + '.rels'\r\n digramFileContent = await readXmlFile(zip, diagramFilename)\r\n if (digramFileContent && digramFileContent && digramFileContent) {\r\n let digramFileContentObjToStr = JSON.stringify(digramFileContent)\r\n digramFileContentObjToStr = digramFileContentObjToStr.replace(/dsp:/g, 'p:')\r\n digramFileContent = JSON.parse(digramFileContentObjToStr)\r\n }\r\n const digramResContent = await readXmlFile(zip, diagramResFileName)\r\n if (digramResContent) {\r\n relationshipArray = digramResContent['Relationships']['Relationship']\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipArrayItem of relationshipArray) {\r\n diagramResObj[relationshipArrayItem['attrs']['Id']] = {\r\n 'type': relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n 'target': relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n }\r\n }\r\n } \r\n else {\r\n diagramResObj[relationshipArray['attrs']['Id']] = {\r\n 'type': relationshipArray['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n 'target': relationshipArray['attrs']['Target'].replace('../', 'ppt/')\r\n }\r\n }\r\n }\r\n }\r\n\r\n const tableStyles = await readXmlFile(zip, 'ppt/tableStyles.xml')\r\n\r\n const slideContent = await readXmlFile(zip, sldFileName)\r\n const nodes = slideContent['p:sld']['p:cSld']['p:spTree']\r\n const warpObj = {\r\n zip,\r\n slideLayoutContent,\r\n slideLayoutTables,\r\n slideMasterContent,\r\n slideMasterTables,\r\n slideContent,\r\n tableStyles,\r\n slideResObj,\r\n slideMasterTextStyles,\r\n layoutResObj,\r\n masterResObj,\r\n themeContent,\r\n themeResObj,\r\n digramFileContent,\r\n diagramResObj,\r\n defaultTextStyle,\r\n }\r\n // const bgElements = await getBackground(warpObj)\r\n const bgColor = await getSlideBackgroundFill(warpObj)\r\n\r\n const elements = []\r\n for (const nodeKey in nodes) {\r\n if (nodes[nodeKey].constructor === Array) {\r\n for (const node of nodes[nodeKey]) {\r\n const ret = await processNodesInSlide(nodeKey, node, warpObj, 'slide')\r\n if (ret) elements.push(ret)\r\n }\r\n } \r\n else {\r\n const ret = await processNodesInSlide(nodeKey, nodes[nodeKey], warpObj, 'slide')\r\n if (ret) elements.push(ret)\r\n }\r\n }\r\n\r\n return {\r\n fill: bgColor,\r\n elements,\r\n }\r\n}\r\n\r\n// async function getBackground(warpObj) {\r\n// const elements = []\r\n// const slideLayoutContent = warpObj['slideLayoutContent']\r\n// const slideMasterContent = warpObj['slideMasterContent']\r\n// const nodesSldLayout = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:cSld', 'p:spTree'])\r\n// const nodesSldMaster = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:cSld', 'p:spTree'])\r\n\r\n// const showMasterSp = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'attrs', 'showMasterSp'])\r\n// if (nodesSldLayout) {\r\n// for (const nodeKey in nodesSldLayout) {\r\n// if (nodesSldLayout[nodeKey].constructor === Array) {\r\n// for (let i = 0; i < nodesSldLayout[nodeKey].length; i++) {\r\n// const ph_type = getTextByPathList(nodesSldLayout[nodeKey][i], ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'type'])\r\n// if (ph_type !== 'pic') {\r\n// const ret = await processNodesInSlide(nodeKey, nodesSldLayout[nodeKey][i], warpObj, 'slideLayoutBg')\r\n// if (ret) elements.push(ret)\r\n// }\r\n// }\r\n// } \r\n// else {\r\n// const ph_type = getTextByPathList(nodesSldLayout[nodeKey], ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'type'])\r\n// if (ph_type !== 'pic') {\r\n// const ret = await processNodesInSlide(nodeKey, nodesSldLayout[nodeKey], warpObj, 'slideLayoutBg')\r\n// if (ret) elements.push(ret)\r\n// }\r\n// }\r\n// }\r\n// }\r\n// if (nodesSldMaster && (showMasterSp === '1' || showMasterSp)) {\r\n// for (const nodeKey in nodesSldMaster) {\r\n// if (nodesSldMaster[nodeKey].constructor === Array) {\r\n// for (let i = 0; i < nodesSldMaster[nodeKey].length; i++) {\r\n// const ret = await processNodesInSlide(nodeKey, nodesSldMaster[nodeKey][i], warpObj, 'slideMasterBg')\r\n// if (ret) elements.push(ret)\r\n// }\r\n// } \r\n// else {\r\n// const ret = await processNodesInSlide(nodeKey, nodesSldMaster[nodeKey], warpObj, 'slideMasterBg')\r\n// if (ret) elements.push(ret)\r\n// }\r\n// }\r\n// }\r\n// return elements\r\n// }\r\n\r\nfunction indexNodes(content) {\r\n const keys = Object.keys(content)\r\n const spTreeNode = content[keys[0]]['p:cSld']['p:spTree']\r\n const idTable = {}\r\n const idxTable = {}\r\n const typeTable = {}\r\n\r\n for (const key in spTreeNode) {\r\n if (key === 'p:nvGrpSpPr' || key === 'p:grpSpPr') continue\r\n\r\n const targetNode = spTreeNode[key]\r\n\r\n if (targetNode.constructor === Array) {\r\n for (const targetNodeItem of targetNode) {\r\n const nvSpPrNode = targetNodeItem['p:nvSpPr']\r\n const id = getTextByPathList(nvSpPrNode, ['p:cNvPr', 'attrs', 'id'])\r\n const idx = getTextByPathList(nvSpPrNode, ['p:nvPr', 'p:ph', 'attrs', 'idx'])\r\n const type = getTextByPathList(nvSpPrNode, ['p:nvPr', 'p:ph', 'attrs', 'type'])\r\n\r\n if (id) idTable[id] = targetNodeItem\r\n if (idx) idxTable[idx] = targetNodeItem\r\n if (type) typeTable[type] = targetNodeItem\r\n }\r\n } \r\n else {\r\n const nvSpPrNode = targetNode['p:nvSpPr']\r\n const id = getTextByPathList(nvSpPrNode, ['p:cNvPr', 'attrs', 'id'])\r\n const idx = getTextByPathList(nvSpPrNode, ['p:nvPr', 'p:ph', 'attrs', 'idx'])\r\n const type = getTextByPathList(nvSpPrNode, ['p:nvPr', 'p:ph', 'attrs', 'type'])\r\n\r\n if (id) idTable[id] = targetNode\r\n if (idx) idxTable[idx] = targetNode\r\n if (type) typeTable[type] = targetNode\r\n }\r\n }\r\n\r\n return { idTable, idxTable, typeTable }\r\n}\r\n\r\nasync function processNodesInSlide(nodeKey, nodeValue, warpObj, source) {\r\n let json\r\n\r\n switch (nodeKey) {\r\n case 'p:sp': // Shape, Text\r\n json = processSpNode(nodeValue, warpObj, source)\r\n break\r\n case 'p:cxnSp': // Shape, Text\r\n json = processCxnSpNode(nodeValue, warpObj, source)\r\n break\r\n case 'p:pic': // Image, Video, Audio\r\n json = processPicNode(nodeValue, warpObj, source)\r\n break\r\n case 'p:graphicFrame': // Chart, Diagram, Table\r\n json = await processGraphicFrameNode(nodeValue, warpObj, source)\r\n break\r\n case 'p:grpSp':\r\n json = await processGroupSpNode(nodeValue, warpObj, source)\r\n break\r\n case 'mc:AlternateContent':\r\n json = await processGroupSpNode(getTextByPathList(nodeValue, ['mc:Fallback']), warpObj, source)\r\n break\r\n default:\r\n }\r\n\r\n return json\r\n}\r\n\r\nasync function processGroupSpNode(node, warpObj, source) {\r\n const xfrmNode = getTextByPathList(node, ['p:grpSpPr', 'a:xfrm'])\r\n if (!xfrmNode) return null\r\n\r\n const x = parseInt(xfrmNode['a:off']['attrs']['x']) * RATIO_EMUs_Points\r\n const y = parseInt(xfrmNode['a:off']['attrs']['y']) * RATIO_EMUs_Points\r\n const chx = parseInt(xfrmNode['a:chOff']['attrs']['x']) * RATIO_EMUs_Points\r\n const chy = parseInt(xfrmNode['a:chOff']['attrs']['y']) * RATIO_EMUs_Points\r\n const cx = parseInt(xfrmNode['a:ext']['attrs']['cx']) * RATIO_EMUs_Points\r\n const cy = parseInt(xfrmNode['a:ext']['attrs']['cy']) * RATIO_EMUs_Points\r\n const chcx = parseInt(xfrmNode['a:chExt']['attrs']['cx']) * RATIO_EMUs_Points\r\n const chcy = parseInt(xfrmNode['a:chExt']['attrs']['cy']) * RATIO_EMUs_Points\r\n\r\n let rotate = getTextByPathList(xfrmNode, ['attrs', 'rot']) || 0\r\n if (rotate) rotate = angleToDegrees(rotate)\r\n\r\n const ws = cx / chcx\r\n const hs = cy / chcy\r\n\r\n const elements = []\r\n for (const nodeKey in node) {\r\n if (node[nodeKey].constructor === Array) {\r\n for (const item of node[nodeKey]) {\r\n const ret = await processNodesInSlide(nodeKey, item, warpObj, source)\r\n if (ret) elements.push(ret)\r\n }\r\n }\r\n else {\r\n const ret = await processNodesInSlide(nodeKey, node[nodeKey], warpObj, source)\r\n if (ret) elements.push(ret)\r\n }\r\n }\r\n\r\n return {\r\n type: 'group',\r\n top: y,\r\n left: x,\r\n width: cx,\r\n height: cy,\r\n rotate,\r\n elements: elements.map(element => ({\r\n ...element,\r\n left: (element.left - chx) * ws,\r\n top: (element.top - chy) * hs,\r\n width: element.width * ws,\r\n height: element.height * hs,\r\n }))\r\n }\r\n}\r\n\r\nfunction processSpNode(node, warpObj, source) {\r\n const name = getTextByPathList(node, ['p:nvSpPr', 'p:cNvPr', 'attrs', 'name'])\r\n const idx = getTextByPathList(node, ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'idx'])\r\n let type = getTextByPathList(node, ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'type'])\r\n\r\n let slideLayoutSpNode, slideMasterSpNode\r\n\r\n if (type) {\r\n if (idx) {\r\n slideLayoutSpNode = warpObj['slideLayoutTables']['typeTable'][type]\r\n slideMasterSpNode = warpObj['slideMasterTables']['typeTable'][type]\r\n } \r\n else {\r\n slideLayoutSpNode = warpObj['slideLayoutTables']['typeTable'][type]\r\n slideMasterSpNode = warpObj['slideMasterTables']['typeTable'][type]\r\n }\r\n }\r\n else if (idx) {\r\n slideLayoutSpNode = warpObj['slideLayoutTables']['idxTable'][idx]\r\n slideMasterSpNode = warpObj['slideMasterTables']['idxTable'][idx]\r\n }\r\n\r\n if (!type) {\r\n const txBoxVal = getTextByPathList(node, ['p:nvSpPr', 'p:cNvSpPr', 'attrs', 'txBox'])\r\n if (txBoxVal === '1') type = 'text'\r\n }\r\n if (!type) type = getTextByPathList(slideLayoutSpNode, ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'type'])\r\n if (!type) type = getTextByPathList(slideMasterSpNode, ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'type'])\r\n\r\n if (!type) {\r\n if (source === 'diagramBg') type = 'diagram'\r\n else type = 'obj'\r\n }\r\n\r\n return genShape(node, slideLayoutSpNode, slideMasterSpNode, name, type, warpObj)\r\n}\r\n\r\nfunction processCxnSpNode(node, warpObj) {\r\n const name = node['p:nvCxnSpPr']['p:cNvPr']['attrs']['name']\r\n const type = (node['p:nvCxnSpPr']['p:nvPr']['p:ph'] === undefined) ? undefined : node['p:nvSpPr']['p:nvPr']['p:ph']['attrs']['type']\r\n\r\n return genShape(node, undefined, undefined, name, type, warpObj)\r\n}\r\n\r\nfunction genShape(node, slideLayoutSpNode, slideMasterSpNode, name, type, warpObj) {\r\n const xfrmList = ['p:spPr', 'a:xfrm']\r\n const slideXfrmNode = getTextByPathList(node, xfrmList)\r\n const slideLayoutXfrmNode = getTextByPathList(slideLayoutSpNode, xfrmList)\r\n const slideMasterXfrmNode = getTextByPathList(slideMasterSpNode, xfrmList)\r\n\r\n const shapType = getTextByPathList(node, ['p:spPr', 'a:prstGeom', 'attrs', 'prst'])\r\n const custShapType = getTextByPathList(node, ['p:spPr', 'a:custGeom'])\r\n\r\n const { top, left } = getPosition(slideXfrmNode, slideLayoutXfrmNode, slideMasterXfrmNode)\r\n const { width, height } = getSize(slideXfrmNode, slideLayoutXfrmNode, slideMasterXfrmNode)\r\n\r\n const isFlipV = getTextByPathList(slideXfrmNode, ['attrs', 'flipV']) === '1'\r\n const isFlipH = getTextByPathList(slideXfrmNode, ['attrs', 'flipH']) === '1'\r\n\r\n const rotate = angleToDegrees(getTextByPathList(slideXfrmNode, ['attrs', 'rot']))\r\n\r\n const txtXframeNode = getTextByPathList(node, ['p:txXfrm'])\r\n let txtRotate\r\n if (txtXframeNode) {\r\n const txtXframeRot = getTextByPathList(txtXframeNode, ['attrs', 'rot'])\r\n if (txtXframeRot) txtRotate = angleToDegrees(txtXframeRot) + 90\r\n } \r\n else txtRotate = rotate\r\n\r\n let content = ''\r\n if (node['p:txBody']) content = genTextBody(node['p:txBody'], node, slideLayoutSpNode, type, warpObj)\r\n\r\n const { borderColor, borderWidth, borderType, strokeDasharray } = getBorder(node, type, warpObj)\r\n const fillColor = getShapeFill(node, undefined, warpObj) || ''\r\n\r\n let shadow\r\n const outerShdwNode = getTextByPathList(node, ['p:spPr', 'a:effectLst', 'a:outerShdw'])\r\n if (outerShdwNode) shadow = getShadow(outerShdwNode, warpObj)\r\n\r\n const vAlign = getVerticalAlign(node, slideLayoutSpNode, slideMasterSpNode, type)\r\n const isVertical = getTextByPathList(node, ['p:txBody', 'a:bodyPr', 'attrs', 'vert']) === 'eaVert'\r\n\r\n const data = {\r\n left,\r\n top,\r\n width,\r\n height,\r\n borderColor,\r\n borderWidth,\r\n borderType,\r\n borderStrokeDasharray: strokeDasharray,\r\n fillColor,\r\n content,\r\n isFlipV,\r\n isFlipH,\r\n rotate,\r\n vAlign,\r\n name,\r\n }\r\n\r\n if (shadow) data.shadow = shadow\r\n\r\n if (custShapType && type !== 'diagram') {\r\n const ext = getTextByPathList(slideXfrmNode, ['a:ext', 'attrs'])\r\n const w = parseInt(ext['cx']) * RATIO_EMUs_Points\r\n const h = parseInt(ext['cy']) * RATIO_EMUs_Points\r\n const d = getCustomShapePath(custShapType, w, h)\r\n\r\n return {\r\n ...data,\r\n type: 'shape',\r\n shapType: 'custom',\r\n path: d,\r\n }\r\n }\r\n if (shapType && (type === 'obj' || !type)) {\r\n return {\r\n ...data,\r\n type: 'shape',\r\n shapType,\r\n }\r\n }\r\n return {\r\n ...data,\r\n type: 'text',\r\n isVertical,\r\n rotate: txtRotate,\r\n }\r\n}\r\n\r\nasync function processPicNode(node, warpObj, source) {\r\n let resObj\r\n if (source === 'slideMasterBg') resObj = warpObj['masterResObj']\r\n else if (source === 'slideLayoutBg') resObj = warpObj['layoutResObj']\r\n else resObj = warpObj['slideResObj']\r\n \r\n const rid = node['p:blipFill']['a:blip']['attrs']['r:embed']\r\n const imgName = resObj[rid]['target']\r\n const imgFileExt = extractFileExtension(imgName).toLowerCase()\r\n const zip = warpObj['zip']\r\n const imgArrayBuffer = await zip.file(imgName).async('arraybuffer')\r\n const xfrmNode = node['p:spPr']['a:xfrm']\r\n\r\n const mimeType = getMimeType(imgFileExt)\r\n const { top, left } = getPosition(xfrmNode, undefined, undefined)\r\n const { width, height } = getSize(xfrmNode, undefined, undefined)\r\n const src = `data:${mimeType};base64,${base64ArrayBuffer(imgArrayBuffer)}`\r\n\r\n const isFlipV = getTextByPathList(xfrmNode, ['attrs', 'flipV']) === '1'\r\n const isFlipH = getTextByPathList(xfrmNode, ['attrs', 'flipH']) === '1'\r\n\r\n let rotate = 0\r\n const rotateNode = getTextByPathList(node, ['p:spPr', 'a:xfrm', 'attrs', 'rot'])\r\n if (rotateNode) rotate = angleToDegrees(rotateNode)\r\n\r\n const videoNode = getTextByPathList(node, ['p:nvPicPr', 'p:nvPr', 'a:videoFile'])\r\n let videoRid, videoFile, videoFileExt, videoMimeType, uInt8ArrayVideo, videoBlob\r\n let isVdeoLink = false\r\n\r\n if (videoNode) {\r\n videoRid = videoNode['attrs']['r:link']\r\n videoFile = resObj[videoRid]['target']\r\n if (isVideoLink(videoFile)) {\r\n videoFile = escapeHtml(videoFile)\r\n isVdeoLink = true\r\n } \r\n else {\r\n videoFileExt = extractFileExtension(videoFile).toLowerCase()\r\n if (videoFileExt === 'mp4' || videoFileExt === 'webm' || videoFileExt === 'ogg') {\r\n uInt8ArrayVideo = await zip.file(videoFile).async('arraybuffer')\r\n videoMimeType = getMimeType(videoFileExt)\r\n videoBlob = URL.createObjectURL(new Blob([uInt8ArrayVideo], {\r\n type: videoMimeType\r\n }))\r\n }\r\n }\r\n }\r\n\r\n const audioNode = getTextByPathList(node, ['p:nvPicPr', 'p:nvPr', 'a:audioFile'])\r\n let audioRid, audioFile, audioFileExt, uInt8ArrayAudio, audioBlob\r\n if (audioNode) {\r\n audioRid = audioNode['attrs']['r:link']\r\n audioFile = resObj[audioRid]['target']\r\n audioFileExt = extractFileExtension(audioFile).toLowerCase()\r\n if (audioFileExt === 'mp3' || audioFileExt === 'wav' || audioFileExt === 'ogg') {\r\n uInt8ArrayAudio = await zip.file(audioFile).async('arraybuffer')\r\n audioBlob = URL.createObjectURL(new Blob([uInt8ArrayAudio]))\r\n }\r\n }\r\n\r\n if (videoNode && !isVdeoLink) {\r\n return {\r\n type: 'video',\r\n top,\r\n left,\r\n width, \r\n height,\r\n rotate,\r\n blob: videoBlob,\r\n }\r\n } \r\n if (videoNode && isVdeoLink) {\r\n return {\r\n type: 'video',\r\n top,\r\n left,\r\n width, \r\n height,\r\n rotate,\r\n src: videoFile,\r\n }\r\n }\r\n if (audioNode) {\r\n return {\r\n type: 'audio',\r\n top,\r\n left,\r\n width, \r\n height,\r\n rotate,\r\n blob: audioBlob,\r\n }\r\n }\r\n return {\r\n type: 'image',\r\n top,\r\n left,\r\n width, \r\n height,\r\n rotate,\r\n src,\r\n isFlipV,\r\n isFlipH\r\n }\r\n}\r\n\r\nasync function processGraphicFrameNode(node, warpObj, source) {\r\n const graphicTypeUri = getTextByPathList(node, ['a:graphic', 'a:graphicData', 'attrs', 'uri'])\r\n \r\n let result\r\n switch (graphicTypeUri) {\r\n case 'http://schemas.openxmlformats.org/drawingml/2006/table':\r\n result = genTable(node, warpObj)\r\n break\r\n case 'http://schemas.openxmlformats.org/drawingml/2006/chart':\r\n result = await genChart(node, warpObj)\r\n break\r\n case 'http://schemas.openxmlformats.org/drawingml/2006/diagram':\r\n result = genDiagram(node, warpObj)\r\n break\r\n case 'http://schemas.openxmlformats.org/presentationml/2006/ole':\r\n let oleObjNode = getTextByPathList(node, ['a:graphic', 'a:graphicData', 'mc:AlternateContent', 'mc:Fallback', 'p:oleObj'])\r\n if (!oleObjNode) oleObjNode = getTextByPathList(node, ['a:graphic', 'a:graphicData', 'p:oleObj'])\r\n else processGroupSpNode(oleObjNode, warpObj, source)\r\n break\r\n default:\r\n }\r\n return result\r\n}\r\n\r\nfunction genTable(node, warpObj) {\r\n const tableNode = getTextByPathList(node, ['a:graphic', 'a:graphicData', 'a:tbl'])\r\n const xfrmNode = getTextByPathList(node, ['p:xfrm'])\r\n const { top, left } = getPosition(xfrmNode, undefined, undefined)\r\n const { width, height } = getSize(xfrmNode, undefined, undefined)\r\n\r\n const getTblPr = getTextByPathList(node, ['a:graphic', 'a:graphicData', 'a:tbl', 'a:tblPr'])\r\n\r\n const firstRowAttr = getTblPr['attrs'] ? getTblPr['attrs']['firstRow'] : undefined\r\n const firstColAttr = getTblPr['attrs'] ? getTblPr['attrs']['firstCol'] : undefined\r\n const lastRowAttr = getTblPr['attrs'] ? getTblPr['attrs']['lastRow'] : undefined\r\n const lastColAttr = getTblPr['attrs'] ? getTblPr['attrs']['lastCol'] : undefined\r\n const bandRowAttr = getTblPr['attrs'] ? getTblPr['attrs']['bandRow'] : undefined\r\n const bandColAttr = getTblPr['attrs'] ? getTblPr['attrs']['bandCol'] : undefined\r\n const tblStylAttrObj = {\r\n isFrstRowAttr: (firstRowAttr && firstRowAttr === '1') ? 1 : 0,\r\n isFrstColAttr: (firstColAttr && firstColAttr === '1') ? 1 : 0,\r\n isLstRowAttr: (lastRowAttr && lastRowAttr === '1') ? 1 : 0,\r\n isLstColAttr: (lastColAttr && lastColAttr === '1') ? 1 : 0,\r\n isBandRowAttr: (bandRowAttr && bandRowAttr === '1') ? 1 : 0,\r\n isBandColAttr: (bandColAttr && bandColAttr === '1') ? 1 : 0,\r\n }\r\n\r\n let thisTblStyle\r\n const tbleStyleId = getTblPr['a:tableStyleId']\r\n if (tbleStyleId) {\r\n const tbleStylList = warpObj['tableStyles']['a:tblStyleLst']['a:tblStyle']\r\n if (tbleStylList) {\r\n if (tbleStylList.constructor === Array) {\r\n for (let k = 0; k < tbleStylList.length; k++) {\r\n if (tbleStylList[k]['attrs']['styleId'] === tbleStyleId) {\r\n thisTblStyle = tbleStylList[k]\r\n }\r\n }\r\n } \r\n else {\r\n if (tbleStylList['attrs']['styleId'] === tbleStyleId) {\r\n thisTblStyle = tbleStylList\r\n }\r\n }\r\n }\r\n }\r\n if (thisTblStyle) thisTblStyle['tblStylAttrObj'] = tblStylAttrObj\r\n\r\n let tbl_border\r\n const tblStyl = getTextByPathList(thisTblStyle, ['a:wholeTbl', 'a:tcStyle'])\r\n const tblBorderStyl = getTextByPathList(tblStyl, ['a:tcBdr'])\r\n if (tblBorderStyl) {\r\n const tbl_borders = getTableBorders(tblBorderStyl, warpObj)\r\n if (tbl_borders) tbl_border = tbl_borders.bottom || tbl_borders.left || tbl_borders.right || tbl_borders.top\r\n }\r\n\r\n let tbl_bgcolor = ''\r\n let tbl_bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:tblBg', 'a:fillRef'])\r\n if (tbl_bgFillschemeClr) {\r\n tbl_bgcolor = getSolidFill(tbl_bgFillschemeClr, undefined, undefined, warpObj)\r\n }\r\n if (tbl_bgFillschemeClr === undefined) {\r\n tbl_bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:wholeTbl', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n tbl_bgcolor = getSolidFill(tbl_bgFillschemeClr, undefined, undefined, warpObj)\r\n }\r\n\r\n let trNodes = tableNode['a:tr']\r\n if (trNodes.constructor !== Array) trNodes = [trNodes]\r\n \r\n const data = []\r\n for (let i = 0; i < trNodes.length; i++) {\r\n const trNode = trNodes[i]\r\n\r\n const {\r\n fillColor,\r\n fontColor,\r\n fontBold,\r\n } = getTableRowParams(trNodes, i, tblStylAttrObj, thisTblStyle, warpObj)\r\n\r\n const tcNodes = trNode['a:tc']\r\n const tr = []\r\n\r\n if (tcNodes.constructor === Array) {\r\n for (let j = 0; j < tcNodes.length; j++) {\r\n const tcNode = tcNodes[j]\r\n let a_sorce\r\n if (j === 0 && tblStylAttrObj['isFrstColAttr'] === 1) {\r\n a_sorce = 'a:firstCol'\r\n if (tblStylAttrObj['isLstRowAttr'] === 1 && i === (trNodes.length - 1) && getTextByPathList(thisTblStyle, ['a:seCell'])) {\r\n a_sorce = 'a:seCell'\r\n } \r\n else if (tblStylAttrObj['isFrstRowAttr'] === 1 && i === 0 &&\r\n getTextByPathList(thisTblStyle, ['a:neCell'])) {\r\n a_sorce = 'a:neCell'\r\n }\r\n } \r\n else if (\r\n (j > 0 && tblStylAttrObj['isBandColAttr'] === 1) &&\r\n !(tblStylAttrObj['isFrstColAttr'] === 1 && i === 0) &&\r\n !(tblStylAttrObj['isLstRowAttr'] === 1 && i === (trNodes.length - 1)) &&\r\n j !== (tcNodes.length - 1)\r\n ) {\r\n if ((j % 2) !== 0) {\r\n let aBandNode = getTextByPathList(thisTblStyle, ['a:band2V'])\r\n if (aBandNode === undefined) {\r\n aBandNode = getTextByPathList(thisTblStyle, ['a:band1V'])\r\n if (aBandNode) a_sorce = 'a:band2V'\r\n } \r\n else a_sorce = 'a:band2V'\r\n }\r\n }\r\n if (j === (tcNodes.length - 1) && tblStylAttrObj['isLstColAttr'] === 1) {\r\n a_sorce = 'a:lastCol'\r\n if (tblStylAttrObj['isLstRowAttr'] === 1 && i === (trNodes.length - 1) && getTextByPathList(thisTblStyle, ['a:swCell'])) {\r\n a_sorce = 'a:swCell'\r\n } \r\n else if (tblStylAttrObj['isFrstRowAttr'] === 1 && i === 0 && getTextByPathList(thisTblStyle, ['a:nwCell'])) {\r\n a_sorce = 'a:nwCell'\r\n }\r\n }\r\n const text = genTextBody(tcNode['a:txBody'], tcNode, undefined, undefined, warpObj)\r\n const cell = getTableCellParams(tcNode, thisTblStyle, a_sorce, warpObj)\r\n const td = { text }\r\n if (cell.rowSpan) td.rowSpan = cell.rowSpan\r\n if (cell.colSpan) td.colSpan = cell.colSpan\r\n if (cell.vMerge) td.vMerge = cell.vMerge\r\n if (cell.hMerge) td.hMerge = cell.hMerge\r\n if (cell.fontBold || fontBold) td.fontBold = cell.fontBold || fontBold\r\n if (cell.fontColor || fontColor) td.fontColor = cell.fontColor || fontColor\r\n if (cell.fillColor || fillColor || tbl_bgcolor) td.fillColor = cell.fillColor || fillColor || tbl_bgcolor\r\n\r\n tr.push(td)\r\n }\r\n } \r\n else {\r\n let a_sorce\r\n if (tblStylAttrObj['isFrstColAttr'] === 1 && tblStylAttrObj['isLstRowAttr'] !== 1) {\r\n a_sorce = 'a:firstCol'\r\n } \r\n else if (tblStylAttrObj['isBandColAttr'] === 1 && tblStylAttrObj['isLstRowAttr'] !== 1) {\r\n let aBandNode = getTextByPathList(thisTblStyle, ['a:band2V'])\r\n if (!aBandNode) {\r\n aBandNode = getTextByPathList(thisTblStyle, ['a:band1V'])\r\n if (aBandNode) a_sorce = 'a:band2V'\r\n } \r\n else a_sorce = 'a:band2V'\r\n }\r\n if (tblStylAttrObj['isLstColAttr'] === 1 && tblStylAttrObj['isLstRowAttr'] !== 1) {\r\n a_sorce = 'a:lastCol'\r\n }\r\n\r\n const text = genTextBody(tcNodes['a:txBody'], tcNodes, undefined, undefined, warpObj)\r\n const cell = getTableCellParams(tcNodes, thisTblStyle, a_sorce, warpObj)\r\n const td = { text }\r\n if (cell.rowSpan) td.rowSpan = cell.rowSpan\r\n if (cell.colSpan) td.colSpan = cell.colSpan\r\n if (cell.vMerge) td.vMerge = cell.vMerge\r\n if (cell.hMerge) td.hMerge = cell.hMerge\r\n if (cell.fontBold || fontBold) td.fontBold = cell.fontBold || fontBold\r\n if (cell.fontColor || fontColor) td.fontColor = cell.fontColor || fontColor\r\n if (cell.fillColor || fillColor || tbl_bgcolor) td.fillColor = cell.fillColor || fillColor || tbl_bgcolor\r\n\r\n tr.push(td)\r\n }\r\n data.push(tr)\r\n }\r\n\r\n return {\r\n type: 'table',\r\n top,\r\n left,\r\n width,\r\n height,\r\n data,\r\n ...(tbl_border || {}),\r\n }\r\n}\r\n\r\nasync function genChart(node, warpObj) {\r\n const xfrmNode = getTextByPathList(node, ['p:xfrm'])\r\n const { top, left } = getPosition(xfrmNode, undefined, undefined)\r\n const { width, height } = getSize(xfrmNode, undefined, undefined)\r\n\r\n const rid = node['a:graphic']['a:graphicData']['c:chart']['attrs']['r:id']\r\n const refName = warpObj['slideResObj'][rid]['target']\r\n const content = await readXmlFile(warpObj['zip'], refName)\r\n const plotArea = getTextByPathList(content, ['c:chartSpace', 'c:chart', 'c:plotArea'])\r\n\r\n const chart = getChartInfo(plotArea)\r\n\r\n if (!chart) return {}\r\n\r\n const data = {\r\n type: 'chart',\r\n top,\r\n left,\r\n width,\r\n height,\r\n data: chart.data,\r\n chartType: chart.type,\r\n }\r\n if (chart.marker !== undefined) data.marker = chart.marker\r\n if (chart.barDir !== undefined) data.barDir = chart.barDir\r\n if (chart.holeSize !== undefined) data.holeSize = chart.holeSize\r\n if (chart.grouping !== undefined) data.grouping = chart.grouping\r\n if (chart.style !== undefined) data.style = chart.style\r\n\r\n return data\r\n}\r\n\r\nfunction genDiagram(node, warpObj) {\r\n const xfrmNode = getTextByPathList(node, ['p:xfrm'])\r\n const { left, top } = getPosition(xfrmNode, undefined, undefined)\r\n const { width, height } = getSize(xfrmNode, undefined, undefined)\r\n \r\n const dgmDrwSpArray = getTextByPathList(warpObj['digramFileContent'], ['p:drawing', 'p:spTree', 'p:sp'])\r\n const elements = []\r\n if (dgmDrwSpArray) {\r\n for (const item of dgmDrwSpArray) {\r\n const el = processSpNode(item, warpObj, 'diagramBg')\r\n if (el) elements.push(el)\r\n }\r\n }\r\n\r\n return {\r\n type: 'diagram',\r\n left,\r\n top,\r\n width,\r\n height,\r\n elements,\r\n }\r\n}"],"names":["_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","_asyncToGenerator","fn","self","this","args","arguments","apply","err","undefined","_typeof","module","exports","Symbol","iterator","constructor","prototype","__esModule","require$$0","_regeneratorRuntime","Op","hasOwn","hasOwnProperty","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","record","result","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","runtime","regenerator","regeneratorRuntime","accidentalStrictMode","globalThis","Function","global$1","global","window","lookup","revLookup","Arr","Uint8Array","Array","inited","init","code","len","charCodeAt","encodeChunk","uint8","start","end","tmp","num","output","join","fromByteArray","extraBytes","parts","maxChunkLength","len2","read","buffer","offset","isLE","mLen","nBytes","e","m","eLen","eMax","eBias","nBits","d","s","NaN","Infinity","Math","pow","write","c","rt","abs","floor","log","LN2","toString","isArray$1","isArray","arr","Buffer","TYPED_ARRAY_SUPPORT","_kMaxLength","kMaxLength","createBuffer","that","RangeError","encodingOrOffset","allocUnsafe","from","ArrayBuffer","array","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","fromString","internalIsBuffer","checked","copy","data","fromObject","assertSize","size","b","_isBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","bidirectionalIndexOf","dir","arrayIndexOf","indexOf","lastIndexOf","indexSize","arrLength","valLength","String","buf","readUInt16BE","foundIndex","found","j","hexWrite","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","base64.fromByteArray","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","fromCharCode","decodeCodePointsArray","poolSize","_augment","species","alloc","fill","allocUnsafeSlow","isBuffer","compare","a","x","y","concat","list","pos","swap16","swap32","swap64","equals","inspect","match","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","max","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","ieee754.write","writeDouble","newBuf","subarray","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","ieee754.read","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","INVALID_BASE64_RE","leadSurrogate","b64","l","placeHolders","L","base64.toByteArray","trim","replace","stringtrim","base64clean","src","dst","isFastBuffer","isSlowBuffer","defaultSetTimout","defaultClearTimeout","cachedSetTimeout","cachedClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","nextTick","Item","noop","on","addListener","once","off","removeListener","removeAllListeners","emit","performance","performanceNow","now","mozNow","msNow","oNow","webkitNow","Date","getTime","startTime","process","title","browser","env","argv","version","versions","binding","cwd","chdir","umask","hrtime","previousTimestamp","clocktime","seconds","nanoseconds","platform","release","config","uptime","EventHandlers","EventEmitter","$getMaxListeners","_maxListeners","defaultMaxListeners","emitNone","handler","isFn","listeners","arrayClone","emitOne","arg1","emitTwo","arg2","emitThree","arg3","emitMany","_addListener","listener","prepend","events","existing","_events","newListener","_eventsCount","unshift","warned","w","emitter","count","console","warn","_onceWrap","fired","g","listenerCount","evlistener","usingDomains","domain","active","setMaxListeners","getMaxListeners","er","doError","domainEmitter","domainThrown","prependListener","prependOnceListener","position","originalListener","index","k","spliceOne","unwrapListeners","eventNames","Reflect","ownKeys","inherits$2","superCtor","super_","TempCtor","formatRegExp","format","f","isString","objects","JSON","stringify","_","isNull","isObject","deprecate","msg","isUndefined","noDeprecation","throwDeprecation","traceDeprecation","trace","debugEnviron","debugs","debuglog","NODE_DEBUG","toUpperCase","RegExp","test","opts","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","style","styles","recurseTimes","isFunction","primitive","simple","isNumber","formatPrimitive","visibleKeys","hash","idx","arrayToHash","getOwnPropertyNames","isError","formatError","isRegExp","isDate","base","braces","toUTCString","formatProperty","formatArray","map","reduce","cur","reduceToSingleString","getOwnPropertyDescriptor","get","split","line","ar","isNullOrUndefined","isSymbol","re","objectToString","isPrimitive","maybeBuf","Buffer.isBuffer","o","pad","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","special","number","boolean","null","date","regexp","months","timestamp","time","getHours","getMinutes","getSeconds","getDate","getMonth","origin","add","prop","util$1","inherits","BufferList","head","tail","v","shift","clear","p","isBufferEncoding","StringDecoder","assertEncoding","surrogateSize","detectIncompleteChar","utf16DetectIncompleteChar","base64DetectIncompleteChar","passThroughWrite","charBuffer","charReceived","charLength","charStr","available","charCode","substring","cr","enc","Readable","ReadableState","debug","options","stream","objectMode","Duplex","readableObjectMode","hwm","highWaterMark","defaultHwm","pipes","pipesCount","flowing","ended","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","defaultEncoding","ranOut","awaitDrain","readingMore","decoder","_readableState","readable","_read","readableAddChunk","chunk","addToFront","chunkInvalid","emitReadable","onEofChunk","_e","skipAdd","maybeReadMore_","maybeReadMore","needMoreData","isPaused","setEncoding","howMuchToRead","computeNewHighWaterMark","emitReadable_","flow","nReadingNextTick","resume_","fromList","hasStrings","nb","copyFromBufferString","copyFromBuffer","fromListPartial","endReadable","endReadableNT","xs","nop","WriteReq","cb","callback","WritableState","getBuffer","writableObjectMode","needDrain","ending","finished","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","_writableState","writecb","writelen","onwriteStateUpdate","pendingcb","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","corkedRequestsFree","CorkedRequest","Writable","_write","writev","_writev","doWrite","onwriteDrain","finishMaybe","holder","prefinish","need","_this","nOrig","doRead","pipe","dest","pipeOpts","endFn","onend","cleanup","onunpipe","ondrain","pipeOnDrain","cleanedUp","onclose","onfinish","onerror","ondata","increasedAwaitDrain","pause","unpipe","event","resume","dests","_i","splice","ev","paused","bind","_fromList","current","writeAfterEnd","valid","validChunk","decodeChunk","last","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","allowHalfOpen","onEndNT","TransformState","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","Transform","transform","_transform","flush","_flush","ws","PassThrough","Stream","EE","source","_isStdio","didOnEnd","destroy","processNextickArgsModule","process.nextTick","copyProps","SafeBuffer","SlowBuffer","util","inherits_browserModule","require$$1","instance","Constructor","_classCallCheck","custom","pna","emitErrorNT","destroy_1","readableDestroyed","destroyed","writableDestroyed","_destroy","undestroy","corkReq","onCorkedFinish","_stream_writable","asyncWrite","require$$2","internalUtil","node","require$$4","require$$5","OurUint8Array","realHasInstance","destroyImpl","require$$6","require$$7","isDuplex","writableHwm","writableHighWaterMark","finalCalled","final","_final","allBuffers","isBuf","callFinal","hasInstance","_uint8ArrayToBuffer","newChunk","_undestroy","objectKeys","_stream_duplex","require$$3","nenc","retried","_normalizeEncoding","normalizeEncoding","text","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","r","utf8CheckExtraBytes","string_decoder","total","utf8CheckIncomplete","_stream_readable","isarray","EElistenerCount","debugUtil","require$$8","require$$9","kProxyEvents","require$$10","readableHwm","readableHighWaterMark","require$$11","skipChunkCheck","addChunk","MAX_HWM","stdout","stderr","unpipeInfo","hasUnpiped","_stream_transform","_this2","err2","READABLE_STREAM","_stream_passthrough","support","base64","arraybuffer","nodebuffer","uint8array","blob","Blob","builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","append","getBlob","nodestream","utils","_keyStr","encode","input","chr1","chr2","chr3","enc1","enc2","enc3","enc4","remainingBytes","getTypeOf","decode","resultIndex","dataUrlPrefix","totalLength","nodejsUtils","isNode","newBufferFrom","allocBuffer","isStream","ES6Promise","immediate","scheduleDrain","Mutation","MutationObserver","WebKitMutationObserver","called","observer","element","document","createTextNode","observe","characterData","setImmediate","MessageChannel","createElement","scriptEl","onreadystatechange","parentNode","removeChild","documentElement","appendChild","channel","port1","onmessage","port2","postMessage","oldQueue","lib","task","INTERNAL","handlers","REJECTED","FULFILLED","PENDING","resolver","outcome","safelyResolveThenable","QueueItem","promise","onFulfilled","onRejected","callFulfilled","otherCallFulfilled","callRejected","otherCallRejected","unwrap","func","returnValue","getThen","thenable","onError","onSuccess","status","finally","reason","all","resolved","allResolver","outValue","race","response","external","identity","stringToArrayLike","newBlob","part","checkSupport","arrayToStringHelper","stringifyByChunk","stringifyByChar","resultStr","applyCanBeUsed","arrayLikeToString","canUseApply","arrayLikeToArrayLike","arrayFrom","arrayTo","applyFromCharCode","transformTo","outputType","inputType","path","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","delay","Obj","extend","attr","prepareContent","inputData","isBinary","isOptimizedBinaryString","isBase64","FileReader","reader","onload","readAsArrayBuffer","dataType","GenericWorker","streamInfo","generatedError","extraStreamInfo","isFinished","isLocked","_listeners","previous","registerImmediate","html","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","script","random","addEventListener","attachEvent","clearImmediate","cleanUp","registerPrevious","mergeStreamInfo","processChunk","withError","withStreamInfo","lock","me","GenericWorker_1","_utf8len","Utf8DecodeWorker","leftOver","Utf8EncodeWorker","utf8encode","c2","m_pos","str_len","buf_len","string2buf","utf8decode","c_len","utf16buf","buf2string","previousData","nextBoundary","utf8border","usableData","meta","ConvertWorker","destType","ConvertWorker_1","NodejsStreamOutputAdapter","helper","updateCb","_helper","NodejsStreamOutputAdapter_1","accumulate","updateCallback","dataArray","chunkType","_internalType","resultType","_outputType","mimeType","_mimeType","content","transformZipOutput","StreamHelper","worker","internalType","_worker","evt","toNodejsStream","StreamHelper_1","defaults","DataWorker","dataP","dataIsReady","_tickScheduled","_tickAndRepeat","_tick","nextIndex","percent","DataWorker_1","crcTable","table","makeTable","crc32_1","crc","t","crc32","crc32str","Crc32Probe","Crc32Probe_1","DataLengthProbe","propName","CompressedObject","compressedSize","uncompressedSize","compression","compressedContent","getContentWorker","uncompressWorker","getCompressedWorker","createWorkerFrom","uncompressedWorker","compressionOptions","compressWorker","compressedObject","utf8","ZipObject","comment","unixPermissions","dosPermissions","_data","_dataBinary","binary","internalStream","askUnicodeString","_decompressWorker","isUnicodeString","onUpdate","nodeStream","_compressWorker","magic","removedMethods","removedFn","zipObject","TYPED_OK","Uint16Array","Int32Array","_has","assign","sources","shrinkBuf","fnTyped","arraySet","src_offs","dest_offs","flattenChunks","chunks","fnUntyped","setTyped","Buf8","Buf16","Buf32","zero","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","static_dtree","D_CODES","_dist_code","_length_code","MAX_MATCH","base_length","static_l_desc","static_d_desc","static_bl_desc","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","dist","put_short","pending_buf","pending","send_bits","bi_valid","bi_buf","send_code","tree","bi_reverse","gen_codes","bl_count","bits","next_code","MAX_BITS","init_block","LITERALS","dyn_ltree","dyn_dtree","bl_tree","END_BLOCK","opt_len","static_len","last_lit","matches","bi_windup","smaller","_n2","_m2","pqdownheap","heap","heap_len","compress_block","ltree","dtree","lc","extra","lx","d_buf","l_buf","build_tree","stree","heap_max","h","xbits","overflow","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","_tr_stored_block","stored_len","header","copy_block","trees","_tr_init","LENGTH_CODES","L_CODES","tr_static_init","l_desc","d_desc","bl_desc","_tr_flush_block","opt_lenb","static_lenb","max_blindex","level","strm","data_type","black_mask","detect_data_type","BL_CODES","build_bl_tree","strategy","lcodes","dcodes","blcodes","rank","send_all_trees","_tr_tally","lit_bufsize","_tr_align","STATIC_TREES","bi_flush","adler32_1","adler","s1","s2","configuration_table","messages","adler32","errorCode","flush_pending","avail_out","pending_out","next_out","total_out","flush_block_only","block_start","strstart","put_byte","putShortMSB","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","more","_w_size","window_size","hash_size","avail_in","next_in","total_in","insert","ins_h","hash_shift","hash_mask","deflate_fast","hash_head","bflush","match_length","max_lazy_match","MIN_MATCH","deflate_slow","max_insert","prev_match","match_available","Config","good_length","max_lazy","nice_length","max_chain","DeflateState","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","HEAP_SIZE","deflateResetKeep","deflateReset","deflateInit2","windowBits","memLevel","max_block_size","max_start","deflate_1","deflateInit","deflateSetHeader","deflate","old_flush","beg","hcrc","os","bstate","deflate_huff","deflate_rle","deflateEnd","deflateSetDictionary","dictionary","avail","tmpDict","dictLength","deflateInfo","STR_APPLY_OK","STR_APPLY_UIA_OK","__","q","buf2binstring","strings","binstring2buf","zstream","zlib_deflate","ZStream","Deflate","chunkSize","to","opt","raw","gzip","dict","_dict_set","deflator","mode","_mode","onEnd","onData","deflateRaw","lbase","lext","dbase","dext","inflate_fast","_in","_out","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","op","from_source","lencode","distcode","lenbits","distbits","top","dolen","dodist","sane","inflate_table","lens","lens_index","codes","table_index","work","incr","low","mask","here_bits","here_op","here_val","sym","root","curr","drop","left","used","huff","base_index","MAXBITS","offs","extra_index","zswap32","InflateState","havedict","flags","check","wbits","ncode","nlen","ndist","have","lendyn","distdyn","back","was","inflateResetKeep","inflateReset","inflateReset2","inflateInit2","lenfix","distfix","virgin","fixedtables","updatewindow","inflate_1","inflateInit","inflate","put","last_bits","last_op","last_val","hbuf","order","inf_leave","xflags","extra_len","inflateEnd","inflateGetHeader","inflateSetDictionary","inflateInfo","constants","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","zlib_inflate","GZheader","Inflate","inflator","next_out_utf8","utf8str","allowBufError","inflateRaw","ungzip","pako","USE_TYPEDARRAY","Uint32Array","ARRAY_TYPE","FlateWorker","action","_pako","_pakoAction","_pakoOptions","flate","_createPako","compressions","STORE","DEFLATE","signature","decToHex","dec","hex","generateZipParts","streamedContent","streamingEnded","encodeFileName","dosTime","dosDate","file","useCustomEncoding","encodedFileName","utfEncodedFileName","encodedComment","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","extraFields","unicodePathExtraField","unicodeCommentExtraField","dataInfo","bitflag","isDir","extFileAttr","versionMadeBy","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCFullYear","getUTCMonth","getUTCDate","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","generateDataDescriptors","DATA_DESCRIPTOR","ZipFileWorker","streamFiles","bytesWritten","zipComment","zipPlatform","contentBuffer","dirRecords","currentSourceOffset","entriesCount","currentFile","_sources","currentFilePercent","remainingFiles","openedSource","closedSource","localDirLength","centralDirLength","dirEnd","CENTRAL_DIRECTORY_END","generateCentralDirectoryEnd","prepareNextSource","generate","generateWorker","zip","zipFileWorker","relativePath","fileCompression","zipCompression","compressionName","getCompression","NodejsStreamInputAdapter","filename","_upstreamEnded","_bindStream","_stream","NodejsStreamInputAdapter_1","fileAdd","originalOptions","parent","forceTrailingSlash","createFolders","parentFolder","folderAdd","zipObjectContent","optimizedBinaryString","files","lastSlash","load","filter","search","folder","newFolder","clone","remove","kids","generateInternalStream","generateAsync","generateNodeStream","DataReader","checkIndex","newIndex","setIndex","skip","byteAt","readInt","readString","readData","lastIndexOfSignature","readAndCheckSignature","readDate","dostime","UTC","DataReader_1","ArrayReader","sig","sig0","sig1","sig2","sig3","ArrayReader_1","StringReader","StringReader_1","Uint8ArrayReader","Uint8ArrayReader_1","NodeBufferReader","NodeBufferReader_1","readerFor","crc32fn","ZipEntry","loadOptions","isEncrypted","bitFlag","useUTF8","readLocalPart","localExtraFieldsLength","fileNameLength","fileName","compressionMethod","findCompression","decompressed","readCentralPart","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","localHeaderOffset","readExtraFields","parseZIP64ExtraField","fileComment","processAttributes","madeBy","fileNameStr","extraReader","extraFieldId","extraFieldLength","extraFieldValue","id","handleUTF8","decodeParamType","fileCommentStr","upath","findExtraFieldUnicodePath","fileNameByteArray","decodeFileName","ucomment","findExtraFieldUnicodeComment","commentByteArray","upathField","ucommentField","zipEntry","ZipEntries","checkSignature","expectedSignature","isSignature","askedIndex","currentIndex","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","decodeContent","readBlockZip64EndOfCentral","zip64EndOfCentralSize","zip64ExtensibleData","extraDataSize","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","readCentralDir","zip64","readEndOfCentral","endOfCentralDirOffset","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","expectedEndOfCentralDirOffset","prepareReader","zipEntries","checkEntryCRC32","JSZip","newObj","loadAsync","checkCRC32","promises","results","unsafeName","safeName","unsafeOriginalName","parse","S","keepComments","keepWhitespace","openBracketCC","closeBracketCC","minusCC","slashCC","exclamationCC","singleQuoteCC","doubleQuoteCC","openCornerBracketCC","closeCornerBracketCC","parseChildren","tagName","children","closeStart","parsedText","startCommentPos","cdataEndIndex","startDoctype","encapsuled","parseNode","parseText","trimmed","parseName","NoChildNodes","noChildNodes","attributes","parseString","startChar","startpos","attrValue","attrName","exec","simplify","setPos","child","_attributes","dept","cust_attr_order","simplifyLostLess","parentAttributes","attrs","_objectSpread","_step","_iterator","_createForOfIteratorHelper","readXmlFile","_x","_x2","_readXmlFile","_callee","_context","txml","t0","trimLeft","trimRight","tinycolor","color","rgb","ok","named","names","matchers","rgba","hsl","hsla","hsv","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","convertToPercentage","mod","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","round","_format","_gradientType","gradientType","_ok","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","pad2","rgbaToArgbHex","convertDecimalToHex","_desaturate","amount","toHsl","clamp01","_saturate","_greyscale","desaturate","_lighten","_brighten","toRgb","_darken","_spin","hue","_complement","polyad","step","_splitcomplement","_analogous","slices","_monochromatic","toHsv","modification","isDark","getBrightness","isLight","isValid","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","color1","color2","mix","rgb1","rgb2","readability","c1","isReadable","wcag2","wcag2Parms","parms","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","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","greenyellow","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","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","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen","flipped","flip","parseFloat","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","base64ArrayBuffer","arrayBuffer","encodings","byteRemainder","mainLength","extractFileExtension","eachElement","getTextByPathList","angleToDegrees","angle","escapeHtml","getMimeType","imgFileExt","isVideoLink","vdoFile","getSchemeColorFromTheme","schemeClr","warpObj","clrMap","phClr","slideLayoutClrOvride","sldClrMapOvr","schmClrName","refNode","getBorder","elType","lineNode","borderWidth","borderColor","schemeClrNode","shade","borderType","strokeDasharray","hueToRgb","t1","t2","getFillType","fillType","getPicFill","_x3","_getPicFill","img","rId","imgPath","imgExt","imgArrayBuffer","imgMimeType","getBgPicFill","_x4","_x5","_x6","_getBgPicFill","bgPr","sorce","picBase64","aBlipNode","aphaModFixNode","opacity","_context2","_callee2","getBgGradientFill","slideMasterContent","grdFill","gsLst","color_ary","lo_color","getSolidFill","lin","rot","sort","getSlideBackgroundFill","_x7","_getSlideBackgroundFill","slideContent","slideLayoutContent","bgRef","background","backgroundType","bgFillTyp","sldFill","clrMapOvr","_sldClrMapOvr","sldBgClr","gradientFill","_clrMapOvr","_sldClrMapOvr2","_sldClrMapOvr3","trueIdx","bgFillLst","sortblAry","sortByOrder","bgFillLstIdx","_bgFillTyp","_sldFill","_sldBgClr","_gradientFill","_clrMapOvr2","_sldClrMapOvr4","_bgFillTyp2","_sldFill2","_sldBgClr2","_gradientFill2","_phClr","_idx","_trueIdx","_bgFillLst","_sortblAry","_sortByOrder","_bgFillLstIdx","_bgFillTyp3","_sldFill3","_sldBgClr3","_gradientFill3","_bgFillTyp4","_sldFill4","_sldBgClr4","_gradientFill4","_phClr2","_idx2","_trueIdx2","_bgFillLst2","_sortblAry2","_sortByOrder2","_bgFillLstIdx2","_bgFillTyp5","_sldFill5","_sldBgClr5","_gradientFill5","_context3","bgFillLstTyp","idex","_callee3","getShapeFill","isSvgMode","fillColor","lumMod","lumOff","lum","solidFill","clrNode","findIndx","defBultColorVals","prstClr","hsl2rgb","sat","light","sysClr","isAlpha","alpha","al_color","hueMod","rgbStr","multiplier","cacl_h","applyHueMod","cacl_l","applyLumMod","applyLumOff","satMod","cacl_s","applySatMod","shadeValue","applyShade","tint","tintValue","applyTint","extractChartData","serNode","dataMat","dataRow","innerNode","colName","rowNames","xlabels","getChartInfo","plotArea","chart","grouping","barDir","holeSize","getHorizontalAlign","pNode","algn","lvlIdx","lvlNode","lvlStr","align","RATIO_EMUs_Points","getPosition","slideSpNode","slideLayoutSpNode","slideMasterSpNode","getSize","width","height","getShadow","chdwClrNode","outerShdwAttrs","blurRad","vx","sin","PI","cos","blur","genTextBody","textBodyNode","spNode","pFontStyle","isList","rNode","fldNode","brNode","item","listType","getListType","_step2","_iterator2","genSpanElement","pPrNode","lstStyle","slideMasterTextStyles","lvl","styleText","fontColor","rPrNode","lstStyledefRPr","sPstyle","getFontColor","fontSize","sz","getFontSize","fontType","typeface","fontSchemeNode","getFontType","fontBold","getFontBold","fontItalic","getFontItalic","fontDecoration","getFontDecoration","fontDecorationLine","getFontDecorationLine","fontSpace","spc","getFontSpace","shadow","txtShadow","getFontShadow","subscript","baseline","getFontSubscript","linkID","linkURL","shapeArc","cX","cY","rX","rY","stAng","endAng","isClose","dData","radians","getTableCellParams","tcNode","thisTblStyle","cellSource","bgFillschemeClr","rowTxtStyl","rowSpan","colSpan","vMerge","hMerge","getCelFill","getTableRowParams","trNodes","tblStylAttrObj","local_fillColor","local_fontColor","_parse","slides","filesInfo","_yield$getSlideInfo","defaultTextStyle","themeContent","_iterator3","_step3","singleSlide","getContentTypes","getSlideInfo","loadTheme","processSingleSlide","_getContentTypes","ContentTypesJson","subObj","slidesLocArray","slideLayoutsLocArray","_iterator4","_step4","sortSlideXml","p1","p2","slideLayouts","_getSlideInfo","sldSzAttrs","_loadTheme","preResContent","relationshipArray","themeURI","_iterator5","_step5","relationshipItem","_context4","_callee4","_x8","_processSingleSlide","sldFileName","resName","resContent","layoutFilename","diagramFilename","slideResObj","_iterator6","_step6","relationshipArrayItem","slideLayoutTables","slideLayoutResFilename","slideLayoutResContent","masterFilename","layoutResObj","_iterator7","_step7","_relationshipArrayItem","slideMasterTables","slideMasterResFilename","slideMasterResContent","themeFilename","masterResObj","_iterator8","_step8","_relationshipArrayItem2","themeResObj","themeName","themeResFileName","themeResContent","_iterator9","_step9","_relationshipArrayItem3","diagramResObj","digramFileContent","diagName","diagramResFileName","digramFileContentObjToStr","digramResContent","_iterator10","_step10","_relationshipArrayItem4","tableStyles","nodes","bgColor","elements","nodeKey","_iterator11","_step11","_ret","_context5","indexNodes","t3","t4","t5","t6","t7","processNodesInSlide","t8","_callee5","spTreeNode","idTable","idxTable","typeTable","targetNode","targetNodeItem","nvSpPrNode","_x9","_x10","_x11","_x12","_processNodesInSlide","nodeValue","json","_context6","processSpNode","processCxnSpNode","processPicNode","processGraphicFrameNode","processGroupSpNode","_callee6","_x13","_x14","_x15","_processGroupSpNode","xfrmNode","chx","chy","cx","cy","chcx","chcy","rotate","hs","_iterator12","_step12","_ret2","_context7","_callee7","genShape","txtRotate","xfrmList","slideXfrmNode","slideLayoutXfrmNode","slideMasterXfrmNode","shapType","custShapType","_getPosition","_getSize","isFlipV","isFlipH","txtXframeNode","txtXframeRot","_getBorder","outerShdwNode","vAlign","anchor","getVerticalAlign","isVertical","borderStrokeDasharray","pathLstNode","pathNodes","maxX","maxY","moveToNode","lnToNodes","cubicBezToNodes","arcToNodes","closeNode","multiSapeAry","moveToPtNode","moveToNoPt","spX","spY","lnToPtNode","lnToNoPt","ptX","ptY","cubicBezToPtNodesAry","pts_ary","pt","pt_obj","cubBzPt","arcToNodesAttrs","hR","wR","swAng","shftX","shftY","arcToPtNode","getCustomShapePath","_x16","_x17","_x18","_processPicNode","resObj","rid","imgName","_getPosition4","_getSize4","rotateNode","videoNode","videoRid","videoFile","videoFileExt","videoMimeType","uInt8ArrayVideo","videoBlob","isVdeoLink","audioNode","audioRid","audioFile","audioFileExt","uInt8ArrayAudio","audioBlob","_context8","URL","createObjectURL","_callee8","_x19","_x20","_x21","_processGraphicFrameNode","graphicTypeUri","oleObjNode","_context9","genTable","genChart","genDiagram","_callee9","tbl_border","tableNode","_getPosition2","_getSize2","getTblPr","firstRowAttr","firstColAttr","lastRowAttr","lastColAttr","bandRowAttr","bandColAttr","isFrstRowAttr","isFrstColAttr","isLstRowAttr","isLstColAttr","isBandRowAttr","isBandColAttr","tbleStyleId","tbleStylList","tblStyl","tblBorderStyl","tbl_borders","borderStyles","border","bottom","right","getTableBorders","tbl_bgcolor","tbl_bgFillschemeClr","trNode","tcNodes","tr","a_sorce","aBandNode","cell","td","_x22","_x23","_genChart","_callee10","_getPosition5","_getSize5","refName","_context10","chartType","_getPosition3","_getSize3","dgmDrwSpArray","el"],"mappings":"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"} \ No newline at end of file diff --git a/dist/index.umd.js b/dist/index.umd.js index db949fd..746e168 100644 --- a/dist/index.umd.js +++ b/dist/index.umd.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).pptxtojson={})}(this,(function(t){"use strict";function e(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function r(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function n(t){return function(){var e=this,n=arguments;return new Promise((function(i,a){var o=t.apply(e,n);function s(t){r(o,i,a,s,u,"next",t)}function u(t){r(o,i,a,s,u,"throw",t)}s(void 0)}))}}var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function a(t){var e=t.default;if("function"==typeof e){var r=function(){return e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach((function(e){var n=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(r,e,n.get?n:{enumerable:!0,get:function(){return t[e]}})})),r}var o={exports:{}},s={exports:{}};!function(t){function e(r){return t.exports=e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,e(r)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports}(s),function(t){var e=s.exports.default;function r(){t.exports=r=function(){return n},t.exports.__esModule=!0,t.exports.default=t.exports;var n={},i=Object.prototype,a=i.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},s="function"==typeof Symbol?Symbol:{},u=s.iterator||"@@iterator",l=s.asyncIterator||"@@asyncIterator",f=s.toStringTag||"@@toStringTag";function h(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{h({},"")}catch(t){h=function(t,e,r){return t[e]=r}}function c(t,e,r,n){var i=e&&e.prototype instanceof g?e:g,a=Object.create(i.prototype),s=new R(n||[]);return o(a,"_invoke",{value:S(t,r,s)}),a}function d(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}n.wrap=c;var p={};function g(){}function b(){}function v(){}var m={};h(m,u,(function(){return this}));var y=Object.getPrototypeOf,w=y&&y(y(O([])));w&&w!==i&&a.call(w,u)&&(m=w);var _=v.prototype=g.prototype=Object.create(m);function k(t){["next","throw","return"].forEach((function(e){h(t,e,(function(t){return this._invoke(e,t)}))}))}function x(t,r){function n(i,o,s,u){var l=d(t[i],t,o);if("throw"!==l.type){var f=l.arg,h=f.value;return h&&"object"==e(h)&&a.call(h,"__await")?r.resolve(h.__await).then((function(t){n("next",t,s,u)}),(function(t){n("throw",t,s,u)})):r.resolve(h).then((function(t){f.value=t,s(f)}),(function(t){return n("throw",t,s,u)}))}u(l.arg)}var i;o(this,"_invoke",{value:function(t,e){function a(){return new r((function(r,i){n(t,e,r,i)}))}return i=i?i.then(a,a):a()}})}function S(t,e,r){var n="suspendedStart";return function(i,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===i)throw a;return T()}for(r.method=i,r.arg=a;;){var o=r.delegate;if(o){var s=C(o,r);if(s){if(s===p)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var u=d(t,e,r);if("normal"===u.type){if(n=r.done?"completed":"suspendedYield",u.arg===p)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n="completed",r.method="throw",r.arg=u.arg)}}}function C(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,C(t,e),"throw"===e.method))return p;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var n=d(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,p;var i=n.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,p):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,p)}function A(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function E(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function R(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(A,this),this.reset(!0)}function O(t){if(t){var e=t[u];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,n=function e(){for(;++r=0;--n){var i=this.tryEntries[n],o=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var s=a.call(i,"catchLoc"),u=a.call(i,"finallyLoc");if(s&&u){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&a.call(n,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;E(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:O(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),p}},n}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}(o);var u=o.exports(),l=u;try{regeneratorRuntime=u}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=u:Function("r","regeneratorRuntime = r")(u)}var f={},h={},c="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},d=[],p=[],g="undefined"!=typeof Uint8Array?Uint8Array:Array,b=!1;function v(){b=!0;for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e=0,r=t.length;e>18&63]+d[i>>12&63]+d[i>>6&63]+d[63&i]);return a.join("")}function y(t){var e;b||v();for(var r=t.length,n=r%3,i="",a=[],o=16383,s=0,u=r-n;su?u:s+o));return 1===n?(e=t[r-1],i+=d[e>>2],i+=d[e<<4&63],i+="=="):2===n&&(e=(t[r-2]<<8)+t[r-1],i+=d[e>>10],i+=d[e>>4&63],i+=d[e<<2&63],i+="="),a.push(i),a.join("")}function w(t,e,r,n,i){var a,o,s=8*i-n-1,u=(1<>1,f=-7,h=r?i-1:0,c=r?-1:1,d=t[e+h];for(h+=c,a=d&(1<<-f)-1,d>>=-f,f+=s;f>0;a=256*a+t[e+h],h+=c,f-=8);for(o=a&(1<<-f)-1,a>>=-f,f+=n;f>0;o=256*o+t[e+h],h+=c,f-=8);if(0===a)a=1-l;else{if(a===u)return o?NaN:1/0*(d?-1:1);o+=Math.pow(2,n),a-=l}return(d?-1:1)*o*Math.pow(2,a-n)}function _(t,e,r,n,i,a){var o,s,u,l=8*a-i-1,f=(1<>1,c=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:a-1,p=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=f):(o=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-o))<1&&(o--,u*=2),(e+=o+h>=1?c/u:c*Math.pow(2,1-h))*u>=2&&(o++,u/=2),o+h>=f?(s=0,o=f):o+h>=1?(s=(e*u-1)*Math.pow(2,i),o+=h):(s=e*Math.pow(2,h-1)*Math.pow(2,i),o=0));i>=8;t[r+d]=255&s,d+=p,s/=256,i-=8);for(o=o<0;t[r+d]=255&o,d+=p,o/=256,l-=8);t[r+d-p]|=128*g}var k={}.toString,x=Array.isArray||function(t){return"[object Array]"==k.call(t)};E.TYPED_ARRAY_SUPPORT=void 0===c.TYPED_ARRAY_SUPPORT||c.TYPED_ARRAY_SUPPORT;var S=C();function C(){return E.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function A(t,e){if(C()=C())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+C().toString(16)+" bytes");return 0|t}function I(t){return!(null==t||!t._isBuffer)}function P(t,e){if(I(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return st(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return ut(t).length;default:if(n)return st(t).length;e=(""+e).toLowerCase(),n=!0}}function B(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return X(this,e,r);case"utf8":case"utf-8":return Y(this,e,r);case"ascii":return V(this,e,r);case"latin1":case"binary":return K(this,e,r);case"base64":return q(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return $(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function D(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function z(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=E.from(e,n)),I(e))return 0===e.length?-1:j(t,e,r,n,i);if("number"==typeof e)return e&=255,E.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):j(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function j(t,e,r,n,i){var a,o=1,s=t.length,u=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;o=2,s/=2,u/=2,r/=2}function l(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(i){var f=-1;for(a=r;as&&(r=s-u),a=r;a>=0;a--){for(var h=!0,c=0;ci&&(n=i):n=i;var a=e.length;if(a%2!=0)throw new TypeError("Invalid hex string");n>a/2&&(n=a/2);for(var o=0;o>8,i=r%256,a.push(i),a.push(n);return a}(e,t.length-r),t,r,n)}function q(t,e,r){return 0===e&&r===t.length?y(t):y(t.slice(e,r))}function Y(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:l>223?3:l>191?2:1;if(i+h<=r)switch(h){case 1:l<128&&(f=l);break;case 2:128==(192&(a=t[i+1]))&&(u=(31&l)<<6|63&a)>127&&(f=u);break;case 3:a=t[i+1],o=t[i+2],128==(192&a)&&128==(192&o)&&(u=(15&l)<<12|(63&a)<<6|63&o)>2047&&(u<55296||u>57343)&&(f=u);break;case 4:a=t[i+1],o=t[i+2],s=t[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(u=(15&l)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&u<1114112&&(f=u)}null===f?(f=65533,h=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),i+=h}return function(t){var e=t.length;if(e<=G)return String.fromCharCode.apply(String,t);var r="",n=0;for(;n0&&(t=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(t+=" ... ")),""},E.prototype.compare=function(t,e,r,n,i){if(!I(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var a=(i>>>=0)-(n>>>=0),o=(r>>>=0)-(e>>>=0),s=Math.min(a,o),u=this.slice(n,i),l=t.slice(e,r),f=0;fi)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return F(this,t,e,r);case"utf8":case"utf-8":return N(this,t,e,r);case"ascii":return U(this,t,e,r);case"latin1":case"binary":return H(this,t,e,r);case"base64":return W(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Z(this,t,e,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},E.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var G=4096;function V(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",a=e;ar)throw new RangeError("Trying to access beyond buffer length")}function Q(t,e,r,n,i,a){if(!I(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function tt(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,a=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function et(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,a=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function rt(t,e,r,n,i,a){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function nt(t,e,r,n,i){return i||rt(t,0,r,4),_(t,e,r,n,23,4),r+4}function it(t,e,r,n,i){return i||rt(t,0,r,8),_(t,e,r,n,52,8),r+8}E.prototype.slice=function(t,e){var r,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e0&&(i*=256);)n+=this[t+--e]*i;return n},E.prototype.readUInt8=function(t,e){return e||J(t,1,this.length),this[t]},E.prototype.readUInt16LE=function(t,e){return e||J(t,2,this.length),this[t]|this[t+1]<<8},E.prototype.readUInt16BE=function(t,e){return e||J(t,2,this.length),this[t]<<8|this[t+1]},E.prototype.readUInt32LE=function(t,e){return e||J(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},E.prototype.readUInt32BE=function(t,e){return e||J(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},E.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||J(t,e,this.length);for(var n=this[t],i=1,a=0;++a=(i*=128)&&(n-=Math.pow(2,8*e)),n},E.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||J(t,e,this.length);for(var n=e,i=1,a=this[t+--n];n>0&&(i*=256);)a+=this[t+--n]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*e)),a},E.prototype.readInt8=function(t,e){return e||J(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},E.prototype.readInt16LE=function(t,e){e||J(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},E.prototype.readInt16BE=function(t,e){e||J(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},E.prototype.readInt32LE=function(t,e){return e||J(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},E.prototype.readInt32BE=function(t,e){return e||J(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},E.prototype.readFloatLE=function(t,e){return e||J(t,4,this.length),w(this,t,!0,23,4)},E.prototype.readFloatBE=function(t,e){return e||J(t,4,this.length),w(this,t,!1,23,4)},E.prototype.readDoubleLE=function(t,e){return e||J(t,8,this.length),w(this,t,!0,52,8)},E.prototype.readDoubleBE=function(t,e){return e||J(t,8,this.length),w(this,t,!1,52,8)},E.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e|=0,r|=0,n)||Q(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[e]=255&t;++a=0&&(a*=256);)this[e+i]=t/a&255;return e+r},E.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||Q(this,t,e,1,255,0),E.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},E.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||Q(this,t,e,2,65535,0),E.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):tt(this,t,e,!0),e+2},E.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||Q(this,t,e,2,65535,0),E.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):tt(this,t,e,!1),e+2},E.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||Q(this,t,e,4,4294967295,0),E.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):et(this,t,e,!0),e+4},E.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||Q(this,t,e,4,4294967295,0),E.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):et(this,t,e,!1),e+4},E.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);Q(this,t,e,r,i-1,-i)}var a=0,o=1,s=0;for(this[e]=255&t;++a>0)-s&255;return e+r},E.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);Q(this,t,e,r,i-1,-i)}var a=r-1,o=1,s=0;for(this[e+a]=255&t;--a>=0&&(o*=256);)t<0&&0===s&&0!==this[e+a+1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},E.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||Q(this,t,e,1,127,-128),E.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},E.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||Q(this,t,e,2,32767,-32768),E.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):tt(this,t,e,!0),e+2},E.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||Q(this,t,e,2,32767,-32768),E.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):tt(this,t,e,!1),e+2},E.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||Q(this,t,e,4,2147483647,-2147483648),E.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):et(this,t,e,!0),e+4},E.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||Q(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),E.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):et(this,t,e,!1),e+4},E.prototype.writeFloatLE=function(t,e,r){return nt(this,t,e,!0,r)},E.prototype.writeFloatBE=function(t,e,r){return nt(this,t,e,!1,r)},E.prototype.writeDoubleLE=function(t,e,r){return it(this,t,e,!0,r)},E.prototype.writeDoubleBE=function(t,e,r){return it(this,t,e,!1,r)},E.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else if(a<1e3||!E.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(a=e;a55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&a.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function ut(t){return function(t){var e,r,n,i,a,o;b||v();var s=t.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");a="="===t[s-2]?2:"="===t[s-1]?1:0,o=new g(3*s/4-a),n=a>0?s-4:s;var u=0;for(e=0,r=0;e>16&255,o[u++]=i>>8&255,o[u++]=255&i;return 2===a?(i=p[t.charCodeAt(e)]<<2|p[t.charCodeAt(e+1)]>>4,o[u++]=255&i):1===a&&(i=p[t.charCodeAt(e)]<<10|p[t.charCodeAt(e+1)]<<4|p[t.charCodeAt(e+2)]>>2,o[u++]=i>>8&255,o[u++]=255&i),o}(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(at,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function lt(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function ft(t){return null!=t&&(!!t._isBuffer||ht(t)||function(t){return"function"==typeof t.readFloatLE&&"function"==typeof t.slice&&ht(t.slice(0,0))}(t))}function ht(t){return!!t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}var ct=Object.freeze({__proto__:null,INSPECT_MAX_BYTES:50,kMaxLength:S,Buffer:E,SlowBuffer:function(t){return+t!=t&&(t=0),E.alloc(+t)},isBuffer:ft}),dt={};function pt(){throw new Error("setTimeout has not been defined")}function gt(){throw new Error("clearTimeout has not been defined")}var bt=pt,vt=gt;function mt(t){if(bt===setTimeout)return setTimeout(t,0);if((bt===pt||!bt)&&setTimeout)return bt=setTimeout,setTimeout(t,0);try{return bt(t,0)}catch(e){try{return bt.call(null,t,0)}catch(e){return bt.call(this,t,0)}}}"function"==typeof c.setTimeout&&(bt=setTimeout),"function"==typeof c.clearTimeout&&(vt=clearTimeout);var yt,wt=[],_t=!1,kt=-1;function xt(){_t&&yt&&(_t=!1,yt.length?wt=yt.concat(wt):kt=-1,wt.length&&St())}function St(){if(!_t){var t=mt(xt);_t=!0;for(var e=wt.length;e;){for(yt=wt,wt=[];++kt1)for(var r=1;r0&&o.length>i){o.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+e+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=t,u.type=e,u.count=o.length,s=u,"function"==typeof console.warn?console.warn(s):console.log(s)}}else o=a[e]=r,++t._eventsCount;return t}function Kt(t,e,r){var n=!1;function i(){t.removeListener(e,i),n||(n=!0,r.apply(t,arguments))}return i.listener=r,i}function Xt(t){var e=this._events;if(e){var r=e[t];if("function"==typeof r)return 1;if(r)return r.length}return 0}function $t(t,e){for(var r=new Array(e);e--;)r[e]=t[e];return r}Nt.prototype=Object.create(null),Ut.EventEmitter=Ut,Ut.usingDomains=!1,Ut.prototype.domain=void 0,Ut.prototype._events=void 0,Ut.prototype._maxListeners=void 0,Ut.defaultMaxListeners=10,Ut.init=function(){this.domain=null,Ut.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new Nt,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Ut.prototype.setMaxListeners=function(t){if("number"!=typeof t||t<0||isNaN(t))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=t,this},Ut.prototype.getMaxListeners=function(){return Ht(this)},Ut.prototype.emit=function(t){var e,r,n,i,a,o,s,u="error"===t;if(o=this._events)u=u&&null==o.error;else if(!u)return!1;if(s=this.domain,u){if(e=arguments[1],!s){if(e instanceof Error)throw e;var l=new Error('Uncaught, unspecified "error" event. ('+e+")");throw l.context=e,l}return e||(e=new Error('Uncaught, unspecified "error" event')),e.domainEmitter=this,e.domain=s,e.domainThrown=!1,s.emit("error",e),!1}if(!(r=o[t]))return!1;var f="function"==typeof r;switch(n=arguments.length){case 1:Wt(r,f,this);break;case 2:Zt(r,f,this,arguments[1]);break;case 3:qt(r,f,this,arguments[1],arguments[2]);break;case 4:Yt(r,f,this,arguments[1],arguments[2],arguments[3]);break;default:for(i=new Array(n-1),a=1;a0;)if(r[a]===e||r[a].listener&&r[a].listener===e){o=r[a].listener,i=a;break}if(i<0)return this;if(1===r.length){if(r[0]=void 0,0==--this._eventsCount)return this._events=new Nt,this;delete n[t]}else!function(t,e){for(var r=e,n=r+1,i=t.length;n0?Reflect.ownKeys(this._events):[]};var Jt=Object.freeze({__proto__:null,default:Ut,EventEmitter:Ut}),Qt="function"==typeof Object.create?function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:function(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t},te=/%[sdj%]/g;function ee(t){if(!ve(t)){for(var e=[],r=0;r=i)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}})),o=n[r];r=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),de(e)?r.showHidden=e:e&&Me(r,e),ye(r.showHidden)&&(r.showHidden=!1),ye(r.depth)&&(r.depth=2),ye(r.colors)&&(r.colors=!1),ye(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=se),le(r,t,r.depth)}function se(t,e){var r=oe.styles[e];return r?"["+oe.colors[r][0]+"m"+t+"["+oe.colors[r][1]+"m":t}function ue(t,e){return t}function le(t,e,r){if(t.customInspect&&e&&Se(e.inspect)&&e.inspect!==oe&&(!e.constructor||e.constructor.prototype!==e)){var n=e.inspect(r,t);return ve(n)||(n=le(t,n,r)),n}var i=function(t,e){if(ye(e))return t.stylize("undefined","undefined");if(ve(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}if(be(e))return t.stylize(""+e,"number");if(de(e))return t.stylize(""+e,"boolean");if(pe(e))return t.stylize("null","null")}(t,e);if(i)return i;var a=Object.keys(e),o=function(t){var e={};return t.forEach((function(t,r){e[t]=!0})),e}(a);if(t.showHidden&&(a=Object.getOwnPropertyNames(e)),xe(e)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return fe(e);if(0===a.length){if(Se(e)){var s=e.name?": "+e.name:"";return t.stylize("[Function"+s+"]","special")}if(we(e))return t.stylize(RegExp.prototype.toString.call(e),"regexp");if(ke(e))return t.stylize(Date.prototype.toString.call(e),"date");if(xe(e))return fe(e)}var u,l="",f=!1,h=["{","}"];(ce(e)&&(f=!0,h=["[","]"]),Se(e))&&(l=" [Function"+(e.name?": "+e.name:"")+"]");return we(e)&&(l=" "+RegExp.prototype.toString.call(e)),ke(e)&&(l=" "+Date.prototype.toUTCString.call(e)),xe(e)&&(l=" "+fe(e)),0!==a.length||f&&0!=e.length?r<0?we(e)?t.stylize(RegExp.prototype.toString.call(e),"regexp"):t.stylize("[Object]","special"):(t.seen.push(e),u=f?function(t,e,r,n,i){for(var a=[],o=0,s=e.length;o60)return r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1];return r[0]+e+" "+t.join(", ")+" "+r[1]}(u,l,h)):h[0]+l+h[1]}function fe(t){return"["+Error.prototype.toString.call(t)+"]"}function he(t,e,r,n,i,a){var o,s,u;if((u=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?s=u.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):u.set&&(s=t.stylize("[Setter]","special")),Ie(n,i)||(o="["+i+"]"),s||(t.seen.indexOf(u.value)<0?(s=pe(r)?le(t,u.value,null):le(t,u.value,r-1)).indexOf("\n")>-1&&(s=a?s.split("\n").map((function(t){return" "+t})).join("\n").substr(2):"\n"+s.split("\n").map((function(t){return" "+t})).join("\n")):s=t.stylize("[Circular]","special")),ye(o)){if(a&&i.match(/^\d+$/))return s;(o=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=t.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=t.stylize(o,"string"))}return o+": "+s}function ce(t){return Array.isArray(t)}function de(t){return"boolean"==typeof t}function pe(t){return null===t}function ge(t){return null==t}function be(t){return"number"==typeof t}function ve(t){return"string"==typeof t}function me(t){return"symbol"==typeof t}function ye(t){return void 0===t}function we(t){return _e(t)&&"[object RegExp]"===Ee(t)}function _e(t){return"object"==typeof t&&null!==t}function ke(t){return _e(t)&&"[object Date]"===Ee(t)}function xe(t){return _e(t)&&("[object Error]"===Ee(t)||t instanceof Error)}function Se(t){return"function"==typeof t}function Ce(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t}function Ae(t){return ft(t)}function Ee(t){return Object.prototype.toString.call(t)}function Re(t){return t<10?"0"+t.toString(10):t.toString(10)}oe.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},oe.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};var Oe=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Te(){var t=new Date,e=[Re(t.getHours()),Re(t.getMinutes()),Re(t.getSeconds())].join(":");return[t.getDate(),Oe[t.getMonth()],e].join(" ")}function Le(){console.log("%s - %s",Te(),ee.apply(null,arguments))}function Me(t,e){if(!e||!_e(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t}function Ie(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var Pe={inherits:Qt,_extend:Me,log:Le,isBuffer:Ae,isPrimitive:Ce,isFunction:Se,isError:xe,isDate:ke,isObject:_e,isRegExp:we,isUndefined:ye,isSymbol:me,isString:ve,isNumber:be,isNullOrUndefined:ge,isNull:pe,isBoolean:de,isArray:ce,inspect:oe,deprecate:re,format:ee,debuglog:ae},Be=Object.freeze({__proto__:null,format:ee,deprecate:re,debuglog:ae,inspect:oe,isArray:ce,isBoolean:de,isNull:pe,isNullOrUndefined:ge,isNumber:be,isString:ve,isSymbol:me,isUndefined:ye,isRegExp:we,isObject:_e,isDate:ke,isError:xe,isFunction:Se,isPrimitive:Ce,isBuffer:Ae,log:Le,inherits:Qt,_extend:Me,default:Pe});function De(){this.head=null,this.tail=null,this.length=0}De.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},De.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},De.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},De.prototype.clear=function(){this.head=this.tail=null,this.length=0},De.prototype.join=function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r},De.prototype.concat=function(t){if(0===this.length)return E.alloc(0);if(1===this.length)return this.head.data;for(var e=E.allocUnsafe(t>>>0),r=this.head,n=0;r;)r.data.copy(e,n),n+=r.data.length,r=r.next;return e};var ze=E.isEncoding||function(t){switch(t&&t.toLowerCase()){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":return!0;default:return!1}};function je(t){switch(this.encoding=(t||"utf8").toLowerCase().replace(/[-_]/,""),function(t){if(t&&!ze(t))throw new Error("Unknown encoding: "+t)}(t),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=Ne;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=Ue;break;default:return void(this.write=Fe)}this.charBuffer=new E(6),this.charReceived=0,this.charLength=0}function Fe(t){return t.toString(this.encoding)}function Ne(t){this.charReceived=t.length%2,this.charLength=this.charReceived?2:0}function Ue(t){this.charReceived=t.length%3,this.charLength=this.charReceived?3:0}je.prototype.write=function(t){for(var e="";this.charLength;){var r=t.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:t.length;if(t.copy(this.charBuffer,this.charReceived,0,r),this.charReceived+=r,this.charReceived=55296&&i<=56319)){if(this.charReceived=this.charLength=0,0===t.length)return e;break}this.charLength+=this.surrogateSize,e=""}this.detectIncompleteChar(t);var n=t.length;this.charLength&&(t.copy(this.charBuffer,0,t.length-this.charReceived,n),n-=this.charReceived);var i;n=(e+=t.toString(this.encoding,0,n)).length-1;if((i=e.charCodeAt(n))>=55296&&i<=56319){var a=this.surrogateSize;return this.charLength+=a,this.charReceived+=a,this.charBuffer.copy(this.charBuffer,a,0,a),t.copy(this.charBuffer,0,0,a),e.substring(0,n)}return e},je.prototype.detectIncompleteChar=function(t){for(var e=t.length>=3?3:t.length;e>0;e--){var r=t[t.length-e];if(1==e&&r>>5==6){this.charLength=2;break}if(e<=2&&r>>4==14){this.charLength=3;break}if(e<=3&&r>>3==30){this.charLength=4;break}}this.charReceived=e},je.prototype.end=function(t){var e="";if(t&&t.length&&(e=this.write(t)),this.charReceived){var r=this.charReceived,n=this.charBuffer,i=this.encoding;e+=n.slice(0,r).toString(i)}return e},Ze.ReadableState=We;var He=ae("stream");function We(t,e){t=t||{},this.objectMode=!!t.objectMode,e instanceof mr&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var r=t.highWaterMark,n=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:n,this.highWaterMark=~~this.highWaterMark,this.buffer=new De,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(this.decoder=new je(t.encoding),this.encoding=t.encoding)}function Ze(t){if(!(this instanceof Ze))return new Ze(t);this._readableState=new We(t,this),this.readable=!0,t&&"function"==typeof t.read&&(this._read=t.read),Ut.call(this)}function qe(t,e,r,n,i){var a=function(t,e){var r=null;ft(e)||"string"==typeof e||null==e||t.objectMode||(r=new TypeError("Invalid non-string/buffer chunk"));return r}(e,r);if(a)t.emit("error",a);else if(null===r)e.reading=!1,function(t,e){if(e.ended)return;if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,Ve(t)}(t,e);else if(e.objectMode||r&&r.length>0)if(e.ended&&!i){var o=new Error("stream.push() after EOF");t.emit("error",o)}else if(e.endEmitted&&i){var s=new Error("stream.unshift() after end event");t.emit("error",s)}else{var u;!e.decoder||i||n||(r=e.decoder.write(r),u=!e.objectMode&&0===r.length),i||(e.reading=!1),u||(e.flowing&&0===e.length&&!e.sync?(t.emit("data",r),t.read(0)):(e.length+=e.objectMode?1:r.length,i?e.buffer.unshift(r):e.buffer.push(r),e.needReadable&&Ve(t))),function(t,e){e.readingMore||(e.readingMore=!0,Ct(Xe,t,e))}(t,e)}else i||(e.reading=!1);return function(t){return!t.ended&&(t.needReadable||t.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=Ye?t=Ye:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function Ve(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(He("emitReadable",e.flowing),e.emittedReadable=!0,e.sync?Ct(Ke,t):Ke(t))}function Ke(t){He("emit readable"),t.emit("readable"),Qe(t)}function Xe(t,e){for(var r=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):r=function(t,e,r){var n;ta.length?a.length:t;if(o===a.length?i+=a:i+=a.slice(0,t),0===(t-=o)){o===a.length?(++n,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=a.slice(o));break}++n}return e.length-=n,i}(t,e):function(t,e){var r=E.allocUnsafe(t),n=e.head,i=1;n.data.copy(r),t-=n.data.length;for(;n=n.next;){var a=n.data,o=t>a.length?a.length:t;if(a.copy(r,r.length-t,0,o),0===(t-=o)){o===a.length?(++i,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=a.slice(o));break}++i}return e.length-=i,r}(t,e);return n}(t,e.buffer,e.decoder),r);var r}function er(t){var e=t._readableState;if(e.length>0)throw new Error('"endReadable()" called on non-empty stream');e.endEmitted||(e.ended=!0,Ct(rr,e,t))}function rr(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function nr(t,e){for(var r=0,n=t.length;r=e.highWaterMark||e.ended))return He("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?er(this):Ve(this),null;if(0===(t=Ge(t,e))&&e.ended)return 0===e.length&&er(this),null;var n,i=e.needReadable;return He("need readable",i),(0===e.length||e.length-t0?tr(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&er(this)),null!==n&&this.emit("data",n),n},Ze.prototype._read=function(t){this.emit("error",new Error("not implemented"))},Ze.prototype.pipe=function(t,e){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=t;break;case 1:n.pipes=[n.pipes,t];break;default:n.pipes.push(t)}n.pipesCount+=1,He("pipe count=%d opts=%j",n.pipesCount,e);var i=!e||!1!==e.end?o:l;function a(t){He("onunpipe"),t===r&&l()}function o(){He("onend"),t.end()}n.endEmitted?Ct(i):r.once("end",i),t.on("unpipe",a);var s=function(t){return function(){var e=t._readableState;He("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&t.listeners("data").length&&(e.flowing=!0,Qe(t))}}(r);t.on("drain",s);var u=!1;function l(){He("cleanup"),t.removeListener("close",d),t.removeListener("finish",p),t.removeListener("drain",s),t.removeListener("error",c),t.removeListener("unpipe",a),r.removeListener("end",o),r.removeListener("end",l),r.removeListener("data",h),u=!0,!n.awaitDrain||t._writableState&&!t._writableState.needDrain||s()}var f=!1;function h(e){He("ondata"),f=!1,!1!==t.write(e)||f||((1===n.pipesCount&&n.pipes===t||n.pipesCount>1&&-1!==nr(n.pipes,t))&&!u&&(He("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,f=!0),r.pause())}function c(e){var r;He("onerror",e),g(),t.removeListener("error",c),0===(r="error",t.listeners(r).length)&&t.emit("error",e)}function d(){t.removeListener("finish",p),g()}function p(){He("onfinish"),t.removeListener("close",d),g()}function g(){He("unpipe"),r.unpipe(t)}return r.on("data",h),function(t,e,r){if("function"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,"error",c),t.once("close",d),t.once("finish",p),t.emit("pipe",r),n.flowing||(He("pipe resume"),r.resume()),t},Ze.prototype.unpipe=function(t){var e=this._readableState;if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this)),this;if(!t){var r=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var i=0;i-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},sr.prototype._write=function(t,e,r){r(new Error("not implemented"))},sr.prototype._writev=null,sr.prototype.end=function(t,e,r){var n=this._writableState;"function"==typeof t?(r=t,t=null,e=null):"function"==typeof e&&(r=e,e=null),null!=t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(t,e,r){e.ending=!0,dr(t,e),r&&(e.finished?Ct(r):t.once("finish",r));e.ended=!0,t.writable=!1}(this,n,r)},Qt(mr,Ze);for(var gr=Object.keys(sr.prototype),br=0;br0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r},t.prototype.concat=function(t){if(0===this.length)return e.alloc(0);if(1===this.length)return this.head.data;for(var r,n,i,a=e.allocUnsafe(t>>>0),o=this.head,s=0;o;)r=o.data,n=a,i=s,r.copy(n,i),s+=o.data.length,o=o.next;return a},t}(),r&&r.inspect&&r.inspect.custom&&(t.exports.prototype[r.inspect.custom]=function(){var t=r.inspect({length:this.length});return this.constructor.name+" "+t})}(an)),an.exports}function sn(){if($r)return Xr;$r=1;var t=Lr();function e(t,e){t.emit("error",e)}return Xr={destroy:function(r,n){var i=this,a=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;return a||o?(n?n(r):!r||this._writableState&&this._writableState.errorEmitted||t.nextTick(e,this,r),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,(function(r){!n&&r?(t.nextTick(e,i,r),i._writableState&&(i._writableState.errorEmitted=!0)):n&&n(r)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}},Xr}function un(){if(en)return tn;en=1;var t=Lr();function e(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e,r){var n=t.entry;t.entry=null;for(;n;){var i=n.callback;e.pendingcb--,i(r),n=n.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}(e,t)}}tn=p;var r,n=t.nextTick;p.WritableState=d;var a=Object.create(Hr());a.inherits=Vr();var o={deprecate:Qr?Jr:(Qr=1,Jr=Yr.deprecate)},s=Br(),u=Fr().Buffer,l=i.Uint8Array||function(){};var f,h=sn();function c(){}function d(i,a){r=r||ln(),i=i||{};var o=a instanceof r;this.objectMode=!!i.objectMode,o&&(this.objectMode=this.objectMode||!!i.writableObjectMode);var s=i.highWaterMark,u=i.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=s||0===s?s:o&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===i.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=i.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,r){var i=e._writableState,a=i.sync,o=i.writecb;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(i),r)!function(e,r,n,i,a){--r.pendingcb,n?(t.nextTick(a,i),t.nextTick(w,e,r),e._writableState.errorEmitted=!0,e.emit("error",i)):(a(i),e._writableState.errorEmitted=!0,e.emit("error",i),w(e,r))}(e,i,a,r,o);else{var s=m(i);s||i.corked||i.bufferProcessing||!i.bufferedRequest||v(e,i),a?n(b,e,i,s,o):b(e,i,s,o)}}(a,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}function p(t){if(r=r||ln(),!(f.call(p,this)||this instanceof r))return new p(t);this._writableState=new d(t,this),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev),"function"==typeof t.destroy&&(this._destroy=t.destroy),"function"==typeof t.final&&(this._final=t.final)),s.call(this)}function g(t,e,r,n,i,a,o){e.writelen=n,e.writecb=o,e.writing=!0,e.sync=!0,r?t._writev(i,e.onwrite):t._write(i,a,e.onwrite),e.sync=!1}function b(t,e,r,n){r||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}(t,e),e.pendingcb--,n(),w(t,e)}function v(t,r){r.bufferProcessing=!0;var n=r.bufferedRequest;if(t._writev&&n&&n.next){var i=r.bufferedRequestCount,a=new Array(i),o=r.corkedRequestsFree;o.entry=n;for(var s=0,u=!0;n;)a[s]=n,n.isBuf||(u=!1),n=n.next,s+=1;a.allBuffers=u,g(t,r,!0,r.length,a,"",o.finish),r.pendingcb++,r.lastBufferedRequest=null,o.next?(r.corkedRequestsFree=o.next,o.next=null):r.corkedRequestsFree=new e(r),r.bufferedRequestCount=0}else{for(;n;){var l=n.chunk,f=n.encoding,h=n.callback;if(g(t,r,!1,r.objectMode?1:l.length,l,f,h),n=n.next,r.bufferedRequestCount--,r.writing)break}null===n&&(r.lastBufferedRequest=null)}r.bufferedRequest=n,r.bufferProcessing=!1}function m(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function y(t,e){t._final((function(r){e.pendingcb--,r&&t.emit("error",r),e.prefinished=!0,t.emit("prefinish"),w(t,e)}))}function w(e,r){var n=m(r);return n&&(!function(e,r){r.prefinished||r.finalCalled||("function"==typeof e._final?(r.pendingcb++,r.finalCalled=!0,t.nextTick(y,e,r)):(r.prefinished=!0,e.emit("prefinish")))}(e,r),0===r.pendingcb&&(r.finished=!0,e.emit("finish"))),n}return a.inherits(p,s),d.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(d.prototype,"buffer",{get:o.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(f=Function.prototype[Symbol.hasInstance],Object.defineProperty(p,Symbol.hasInstance,{value:function(t){return!!f.call(this,t)||this===p&&(t&&t._writableState instanceof d)}})):f=function(t){return t instanceof this},p.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},p.prototype.write=function(e,r,n){var i,a=this._writableState,o=!1,s=!a.objectMode&&(i=e,u.isBuffer(i)||i instanceof l);return s&&!u.isBuffer(e)&&(e=function(t){return u.from(t)}(e)),"function"==typeof r&&(n=r,r=null),s?r="buffer":r||(r=a.defaultEncoding),"function"!=typeof n&&(n=c),a.ended?function(e,r){var n=new Error("write after end");e.emit("error",n),t.nextTick(r,n)}(this,n):(s||function(e,r,n,i){var a=!0,o=!1;return null===n?o=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||r.objectMode||(o=new TypeError("Invalid non-string/buffer chunk")),o&&(e.emit("error",o),t.nextTick(i,o),a=!1),a}(this,a,e,n))&&(a.pendingcb++,o=function(t,e,r,n,i,a){if(!r){var o=function(t,e,r){t.objectMode||!1===t.decodeStrings||"string"!=typeof e||(e=u.from(e,r));return e}(e,n,i);n!==o&&(r=!0,i="buffer",n=o)}var s=e.objectMode?1:n.length;e.length+=s;var l=e.length-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(p.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),p.prototype._write=function(t,e,r){r(new Error("_write() is not implemented"))},p.prototype._writev=null,p.prototype.end=function(e,r,n){var i=this._writableState;"function"==typeof e?(n=e,e=null,r=null):"function"==typeof r&&(n=r,r=null),null!=e&&this.write(e,r),i.corked&&(i.corked=1,this.uncork()),i.ending||i.finished||function(e,r,n){r.ending=!0,w(e,r),n&&(r.finished?t.nextTick(n):e.once("finish",n));r.ended=!0,e.writable=!1}(this,i,n)},Object.defineProperty(p.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),p.prototype.destroy=h.destroy,p.prototype._undestroy=h.undestroy,p.prototype._destroy=function(t,e){this.end(),e(t)},tn}function ln(){if(nn)return rn;nn=1;var t=Lr(),e=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};rn=u;var r=Object.create(Hr());r.inherits=Vr();var n=wn(),i=un();r.inherits(u,n);for(var a=e(i.prototype),o=0;o>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function i(t){var e=this.lastTotal-this.lastNeed,r=function(t,e,r){if(128!=(192&e[0]))return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"�"}}(this,t);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function a(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function o(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function s(t,e){var r=(t.length-e)%3;return 0===r?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function u(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function l(t){return t.toString(this.encoding)}function f(t){return t&&t.length?this.write(t):""}return mn.StringDecoder=r,r.prototype.write=function(t){if(0===t.length)return"";var e,r;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return a>0&&(t.lastNeed=a-1),a;if(--i=0)return a>0&&(t.lastNeed=a-2),a;if(--i=0)return a>0&&(2===a?a=0:t.lastNeed=a-3),a;return 0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var i=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,i),t.toString("utf8",e,i)},r.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length},mn}function wn(){if(cn)return hn;cn=1;var t=Lr();hn=b;var e,r=function(){if(Rr)return Er;Rr=1;var t={}.toString;return Er=Array.isArray||function(e){return"[object Array]"==t.call(e)}}();b.ReadableState=g,Ir.EventEmitter;var n=function(t,e){return t.listeners(e).length},a=Br(),o=Fr().Buffer,s=i.Uint8Array||function(){};var u=Object.create(Hr());u.inherits=Vr();var l=Yr,f=void 0;f=l&&l.debuglog?l.debuglog("stream"):function(){};var h,c=on(),d=sn();u.inherits(b,a);var p=["error","close","destroy","pause","resume"];function g(t,r){t=t||{};var n=r instanceof(e=e||ln());this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var i=t.highWaterMark,a=t.readableHighWaterMark,o=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(a||0===a)?a:o,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new c,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(h||(h=yn().StringDecoder),this.decoder=new h(t.encoding),this.encoding=t.encoding)}function b(t){if(e=e||ln(),!(this instanceof b))return new b(t);this._readableState=new g(t,this),this.readable=!0,t&&("function"==typeof t.read&&(this._read=t.read),"function"==typeof t.destroy&&(this._destroy=t.destroy)),a.call(this)}function v(t,e,r,n,i){var a,u=t._readableState;null===e?(u.reading=!1,function(t,e){if(e.ended)return;if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,_(t)}(t,u)):(i||(a=function(t,e){var r;n=e,o.isBuffer(n)||n instanceof s||"string"==typeof e||void 0===e||t.objectMode||(r=new TypeError("Invalid non-string/buffer chunk"));var n;return r}(u,e)),a?t.emit("error",a):u.objectMode||e&&e.length>0?("string"==typeof e||u.objectMode||Object.getPrototypeOf(e)===o.prototype||(e=function(t){return o.from(t)}(e)),n?u.endEmitted?t.emit("error",new Error("stream.unshift() after end event")):m(t,u,e,!0):u.ended?t.emit("error",new Error("stream.push() after EOF")):(u.reading=!1,u.decoder&&!r?(e=u.decoder.write(e),u.objectMode||0!==e.length?m(t,u,e,!1):x(t,u)):m(t,u,e,!1))):n||(u.reading=!1));return function(t){return!t.ended&&(t.needReadable||t.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=y?t=y:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function _(e){var r=e._readableState;r.needReadable=!1,r.emittedReadable||(f("emitReadable",r.flowing),r.emittedReadable=!0,r.sync?t.nextTick(k,e):k(e))}function k(t){f("emit readable"),t.emit("readable"),E(t)}function x(e,r){r.readingMore||(r.readingMore=!0,t.nextTick(S,e,r))}function S(t,e){for(var r=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):r=function(t,e,r){var n;ta.length?a.length:t;if(o===a.length?i+=a:i+=a.slice(0,t),0===(t-=o)){o===a.length?(++n,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=a.slice(o));break}++n}return e.length-=n,i}(t,e):function(t,e){var r=o.allocUnsafe(t),n=e.head,i=1;n.data.copy(r),t-=n.data.length;for(;n=n.next;){var a=n.data,s=t>a.length?a.length:t;if(a.copy(r,r.length-t,0,s),0===(t-=s)){s===a.length?(++i,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=a.slice(s));break}++i}return e.length-=i,r}(t,e);return n}(t,e.buffer,e.decoder),r);var r}function O(e){var r=e._readableState;if(r.length>0)throw new Error('"endReadable()" called on non-empty stream');r.endEmitted||(r.ended=!0,t.nextTick(T,r,e))}function T(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function L(t,e){for(var r=0,n=t.length;r=e.highWaterMark||e.ended))return f("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?O(this):_(this),null;if(0===(t=w(t,e))&&e.ended)return 0===e.length&&O(this),null;var n,i=e.needReadable;return f("need readable",i),(0===e.length||e.length-t0?R(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&O(this)),null!==n&&this.emit("data",n),n},b.prototype._read=function(t){this.emit("error",new Error("_read() is not implemented"))},b.prototype.pipe=function(e,i){var a=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=e;break;case 1:o.pipes=[o.pipes,e];break;default:o.pipes.push(e)}o.pipesCount+=1,f("pipe count=%d opts=%j",o.pipesCount,i);var s=(!i||!1!==i.end)&&e!==jt.stdout&&e!==jt.stderr?l:m;function u(t,r){f("onunpipe"),t===a&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,f("cleanup"),e.removeListener("close",b),e.removeListener("finish",v),e.removeListener("drain",h),e.removeListener("error",g),e.removeListener("unpipe",u),a.removeListener("end",l),a.removeListener("end",m),a.removeListener("data",p),c=!0,!o.awaitDrain||e._writableState&&!e._writableState.needDrain||h())}function l(){f("onend"),e.end()}o.endEmitted?t.nextTick(s):a.once("end",s),e.on("unpipe",u);var h=function(t){return function(){var e=t._readableState;f("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&n(t,"data")&&(e.flowing=!0,E(t))}}(a);e.on("drain",h);var c=!1;var d=!1;function p(t){f("ondata"),d=!1,!1!==e.write(t)||d||((1===o.pipesCount&&o.pipes===e||o.pipesCount>1&&-1!==L(o.pipes,e))&&!c&&(f("false write response, pause",a._readableState.awaitDrain),a._readableState.awaitDrain++,d=!0),a.pause())}function g(t){f("onerror",t),m(),e.removeListener("error",g),0===n(e,"error")&&e.emit("error",t)}function b(){e.removeListener("finish",v),m()}function v(){f("onfinish"),e.removeListener("close",b),m()}function m(){f("unpipe"),a.unpipe(e)}return a.on("data",p),function(t,e,n){if("function"==typeof t.prependListener)return t.prependListener(e,n);t._events&&t._events[e]?r(t._events[e])?t._events[e].unshift(n):t._events[e]=[n,t._events[e]]:t.on(e,n)}(e,"error",g),e.once("close",b),e.once("finish",v),e.emit("pipe",a),o.flowing||(f("pipe resume"),a.resume()),e},b.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var a=0;a>2,s=(3&n)<<4|i>>4,u=d>1?(15&i)<<2|a>>6:64,l=d>2?63&a:64,f.push(r.charAt(o)+r.charAt(s)+r.charAt(u)+r.charAt(l));return f.join("")},An.decode=function(t){var n,i,a,o,s,u,l=0,f=0,h="data:";if(t.substr(0,h.length)===h)throw new Error("Invalid base64 input, it looks like a data url.");var c,d=3*(t=t.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(t.charAt(t.length-1)===r.charAt(64)&&d--,t.charAt(t.length-2)===r.charAt(64)&&d--,d%1!=0)throw new Error("Invalid base64 input, bad content length.");for(c=e.uint8array?new Uint8Array(0|d):new Array(0|d);l>4,i=(15&o)<<4|(s=r.indexOf(t.charAt(l++)))>>2,a=(3&s)<<6|(u=r.indexOf(t.charAt(l++))),c[f++]=n,64!==s&&(c[f++]=i),64!==u&&(c[f++]=a);return c},An}var Rn,On,Tn,Ln,Mn={isNode:!0,newBufferFrom:function(t,e){if(E.from&&E.from!==Uint8Array.from)return E.from(t,e);if("number"==typeof t)throw new Error('The "data" argument must not be a number');return new E(t,e)},allocBuffer:function(t){if(E.alloc)return E.alloc(t);var e=new E(t);return e.fill(0),e},isBuffer:function(t){return ft(t)},isStream:function(t){return t&&"function"==typeof t.on&&"function"==typeof t.pause&&"function"==typeof t.resume}};var In=null;In="undefined"!=typeof Promise?Promise:function(){if(Ln)return Tn;Ln=1;var t=function(){if(On)return Rn;On=1;var t,e,r=i.MutationObserver||i.WebKitMutationObserver;if(r){var n=0,a=new r(l),o=i.document.createTextNode("");a.observe(o,{characterData:!0}),t=function(){o.data=n=++n%2}}else if(i.setImmediate||void 0===i.MessageChannel)t="document"in i&&"onreadystatechange"in i.document.createElement("script")?function(){var t=i.document.createElement("script");t.onreadystatechange=function(){l(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},i.document.documentElement.appendChild(t)}:function(){setTimeout(l,0)};else{var s=new i.MessageChannel;s.port1.onmessage=l,t=function(){s.port2.postMessage(0)}}var u=[];function l(){var t,r;e=!0;for(var n=u.length;n;){for(r=u,u=[],t=-1;++t1;)try{return s.stringifyByChunk(e,n,r)}catch(t){r=Math.floor(r/2)}return s.stringifyByChar(e)}function l(t,e){for(var r=0;r "+t:t}};var jn=zn;!function(t){for(var e=Dn(),r=dt,n=Mn,i=jn,a=new Array(256),o=0;o<256;o++)a[o]=o>=252?6:o>=248?5:o>=240?4:o>=224?3:o>=192?2:1;a[254]=a[254]=1;function s(){i.call(this,"utf-8 decode"),this.leftOver=null}function u(){i.call(this,"utf-8 encode")}t.utf8encode=function(t){return r.nodebuffer?n.newBufferFrom(t,"utf-8"):function(t){var e,n,i,a,o,s=t.length,u=0;for(a=0;a>>6,e[o++]=128|63&n):n<65536?(e[o++]=224|n>>>12,e[o++]=128|n>>>6&63,e[o++]=128|63&n):(e[o++]=240|n>>>18,e[o++]=128|n>>>12&63,e[o++]=128|n>>>6&63,e[o++]=128|63&n);return e}(t)},t.utf8decode=function(t){return r.nodebuffer?e.transformTo("nodebuffer",t).toString("utf-8"):function(t){var r,n,i,o,s=t.length,u=new Array(2*s);for(n=0,r=0;r4)u[n++]=65533,r+=o-1;else{for(i&=2===o?31:3===o?15:7;o>1&&r1?u[n++]=65533:i<65536?u[n++]=i:(i-=65536,u[n++]=55296|i>>10&1023,u[n++]=56320|1023&i)}return u.length!==n&&(u.subarray?u=u.subarray(0,n):u.length=n),e.applyFromCharCode(u)}(t=e.transformTo(r.uint8array?"uint8array":"array",t))},e.inherits(s,i),s.prototype.processChunk=function(n){var i=e.transformTo(r.uint8array?"uint8array":"array",n.data);if(this.leftOver&&this.leftOver.length){if(r.uint8array){var o=i;(i=new Uint8Array(o.length+this.leftOver.length)).set(this.leftOver,0),i.set(o,this.leftOver.length)}else i=this.leftOver.concat(i);this.leftOver=null}var s=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;r>=0&&128==(192&t[r]);)r--;return r<0||0===r?e:r+a[t[r]]>e?r:e}(i),u=i;s!==i.length&&(r.uint8array?(u=i.subarray(0,s),this.leftOver=i.subarray(s,i.length)):(u=i.slice(0,s),this.leftOver=i.slice(s,i.length))),this.push({data:t.utf8decode(u),meta:n.meta})},s.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:t.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},t.Utf8DecodeWorker=s,e.inherits(u,i),u.prototype.processChunk=function(e){this.push({data:t.utf8encode(e.data),meta:e.meta})},t.Utf8EncodeWorker=u}(f);var Fn=jn,Nn=Dn();function Un(t){Fn.call(this,"ConvertWorker to "+t),this.destType=t}Nn.inherits(Un,Fn),Un.prototype.processChunk=function(t){this.push({data:Nn.transformTo(this.destType,t.data),meta:t.meta})};var Hn,Wn,Zn=Un;var qn=Dn(),Yn=Zn,Gn=jn,Vn=En(),Kn=Bn,Xn=null;if(dt.nodestream)try{Xn=function(){if(Wn)return Hn;Wn=1;var t=kn().Readable;function e(e,r,n){t.call(this,r),this._helper=e;var i=this;e.on("data",(function(t,e){i.push(t)||i._helper.pause(),n&&n(e)})).on("error",(function(t){i.emit("error",t)})).on("end",(function(){i.push(null)}))}return Dn().inherits(e,t),e.prototype._read=function(){this._helper.resume()},Hn=e}()}catch(t){}function $n(t,e){return new Kn.Promise((function(r,n){var i=[],a=t._internalType,o=t._outputType,s=t._mimeType;t.on("data",(function(t,r){i.push(t),e&&e(r)})).on("error",(function(t){i=[],n(t)})).on("end",(function(){try{var t=function(t,e,r){switch(t){case"blob":return qn.newBlob(qn.transformTo("arraybuffer",e),r);case"base64":return Vn.encode(e);default:return qn.transformTo(t,e)}}(o,function(t,e){var r,n=0,i=null,a=0;for(r=0;r=this.max)return this.end();switch(this.type){case"string":t=this.data.substring(this.index,e);break;case"uint8array":t=this.data.subarray(this.index,e);break;case"array":case"nodebuffer":t=this.data.slice(this.index,e)}return this.index=e,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})};var ii=ni,ai=Dn();var oi=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();var si=function(t,e){return void 0!==t&&t.length?"string"!==ai.getTypeOf(t)?function(t,e,r,n){var i=oi,a=n+r;t^=-1;for(var o=n;o>>8^i[255&(t^e[o])];return-1^t}(0|e,t,t.length,0):function(t,e,r,n){var i=oi,a=n+r;t^=-1;for(var o=n;o>>8^i[255&(t^e.charCodeAt(o))];return-1^t}(0|e,t,t.length,0):0},ui=jn,li=si;function fi(){ui.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}Dn().inherits(fi,ui),fi.prototype.processChunk=function(t){this.streamInfo.crc32=li(t.data,this.streamInfo.crc32||0),this.push(t)};var hi=fi,ci=Dn(),di=jn;function pi(t){di.call(this,"DataLengthProbe for "+t),this.propName=t,this.withStreamInfo(t,0)}ci.inherits(pi,di),pi.prototype.processChunk=function(t){if(t){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+t.data.length}di.prototype.processChunk.call(this,t)};var gi=Bn,bi=ii,vi=hi,mi=pi;function yi(t,e,r,n,i){this.compressedSize=t,this.uncompressedSize=e,this.crc32=r,this.compression=n,this.compressedContent=i}yi.prototype={getContentWorker:function(){var t=new bi(gi.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new mi("data_length")),e=this;return t.on("end",(function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")})),t},getCompressedWorker:function(){return new bi(gi.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},yi.createWorkerFrom=function(t,e,r){return t.pipe(new vi).pipe(new mi("uncompressedSize")).pipe(e.compressWorker(r)).pipe(new mi("compressedSize")).withStreamInfo("compression",e)};var wi=yi,_i=Qn,ki=ii,xi=f,Si=wi,Ci=jn,Ai=function(t,e,r){this.name=t,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=e,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions}};Ai.prototype={internalStream:function(t){var e=null,r="string";try{if(!t)throw new Error("No output type specified.");var n="string"===(r=t.toLowerCase())||"text"===r;"binarystring"!==r&&"text"!==r||(r="string"),e=this._decompressWorker();var i=!this._dataBinary;i&&!n&&(e=e.pipe(new xi.Utf8EncodeWorker)),!i&&n&&(e=e.pipe(new xi.Utf8DecodeWorker))}catch(t){(e=new Ci("error")).error(t)}return new _i(e,r,"")},async:function(t,e){return this.internalStream(t).accumulate(e)},nodeStream:function(t,e){return this.internalStream(t||"nodebuffer").toNodejsStream(e)},_compressWorker:function(t,e){if(this._data instanceof Si&&this._data.compression.magic===t.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new xi.Utf8EncodeWorker)),Si.createWorkerFrom(r,t,e)},_decompressWorker:function(){return this._data instanceof Si?this._data.getContentWorker():this._data instanceof Ci?this._data:new ki(this._data)}};for(var Ei=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],Ri=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},Oi=0;Oi=0;)t[e]=0}var Ni=256,Ui=286,Hi=30,Wi=15,Zi=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],qi=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Yi=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Gi=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Vi=new Array(576);Fi(Vi);var Ki=new Array(60);Fi(Ki);var Xi=new Array(512);Fi(Xi);var $i=new Array(256);Fi($i);var Ji=new Array(29);Fi(Ji);var Qi,ta,ea,ra=new Array(Hi);function na(t,e,r,n,i){this.static_tree=t,this.extra_bits=e,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=t&&t.length}function ia(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function aa(t){return t<256?Xi[t]:Xi[256+(t>>>7)]}function oa(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function sa(t,e,r){t.bi_valid>16-r?(t.bi_buf|=e<>16-t.bi_valid,t.bi_valid+=r-16):(t.bi_buf|=e<>>=1,r<<=1}while(--e>0);return r>>>1}function fa(t,e,r){var n,i,a=new Array(16),o=0;for(n=1;n<=Wi;n++)a[n]=o=o+r[n-1]<<1;for(i=0;i<=e;i++){var s=t[2*i+1];0!==s&&(t[2*i]=la(a[s]++,s))}}function ha(t){var e;for(e=0;e8?oa(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function da(t,e,r,n){var i=2*e,a=2*r;return t[i]>1;r>=1;r--)pa(t,a,r);i=u;do{r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],pa(t,a,1),n=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=n,a[2*i]=a[2*r]+a[2*n],t.depth[i]=(t.depth[r]>=t.depth[n]?t.depth[r]:t.depth[n])+1,a[2*r+1]=a[2*n+1]=i,t.heap[1]=i++,pa(t,a,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],function(t,e){var r,n,i,a,o,s,u=e.dyn_tree,l=e.max_code,f=e.stat_desc.static_tree,h=e.stat_desc.has_stree,c=e.stat_desc.extra_bits,d=e.stat_desc.extra_base,p=e.stat_desc.max_length,g=0;for(a=0;a<=Wi;a++)t.bl_count[a]=0;for(u[2*t.heap[t.heap_max]+1]=0,r=t.heap_max+1;r<573;r++)(a=u[2*u[2*(n=t.heap[r])+1]+1]+1)>p&&(a=p,g++),u[2*n+1]=a,n>l||(t.bl_count[a]++,o=0,n>=d&&(o=c[n-d]),s=u[2*n],t.opt_len+=s*(a+o),h&&(t.static_len+=s*(f[2*n+1]+o)));if(0!==g){do{for(a=p-1;0===t.bl_count[a];)a--;t.bl_count[a]--,t.bl_count[a+1]+=2,t.bl_count[p]--,g-=2}while(g>0);for(a=p;0!==a;a--)for(n=t.bl_count[a];0!==n;)(i=t.heap[--r])>l||(u[2*i+1]!==a&&(t.opt_len+=(a-u[2*i+1])*u[2*i],u[2*i+1]=a),n--)}}(t,e),fa(a,l,t.bl_count)}function va(t,e,r){var n,i,a=-1,o=e[1],s=0,u=7,l=4;for(0===o&&(u=138,l=3),e[2*(r+1)+1]=65535,n=0;n<=r;n++)i=o,o=e[2*(n+1)+1],++s>=7;n0?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,r=4093624447;for(e=0;e<=31;e++,r>>>=1)if(1&r&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e=3&&0===t.bl_tree[2*Gi[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),i=t.opt_len+3+7>>>3,(a=t.static_len+3+7>>>3)<=i&&(i=a)):i=a=r+5,r+4<=i&&-1!==e?wa(t,e,r,n):4===t.strategy||a===i?(sa(t,2+(n?1:0),3),ga(t,Vi,Ki)):(sa(t,4+(n?1:0),3),function(t,e,r,n){var i;for(sa(t,e-257,5),sa(t,r-1,5),sa(t,n-4,4),i=0;i>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&r,t.last_lit++,0===e?t.dyn_ltree[2*r]++:(t.matches++,e--,t.dyn_ltree[2*($i[r]+Ni+1)]++,t.dyn_dtree[2*aa(e)]++),t.last_lit===t.lit_bufsize-1},zi._tr_align=function(t){sa(t,2,3),ua(t,256,Vi),function(t){16===t.bi_valid?(oa(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)};var _a=function(t,e,r,n){for(var i=65535&t|0,a=t>>>16&65535|0,o=0;0!==r;){r-=o=r>2e3?2e3:r;do{a=a+(i=i+e[n++]|0)|0}while(--o);i%=65521,a%=65521}return i|a<<16|0};var ka=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();var xa,Sa=function(t,e,r,n){var i=ka,a=n+r;t^=-1;for(var o=n;o>>8^i[255&(t^e[o])];return-1^t},Ca={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Aa=Pi,Ea=zi,Ra=_a,Oa=Sa,Ta=Ca,La=-2,Ma=258,Ia=262,Pa=103,Ba=113,Da=666;function za(t,e){return t.msg=Ta[e],e}function ja(t){return(t<<1)-(t>4?9:0)}function Fa(t){for(var e=t.length;--e>=0;)t[e]=0}function Na(t){var e=t.state,r=e.pending;r>t.avail_out&&(r=t.avail_out),0!==r&&(Aa.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,0===e.pending&&(e.pending_out=0))}function Ua(t,e){Ea._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,Na(t.strm)}function Ha(t,e){t.pending_buf[t.pending++]=e}function Wa(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function Za(t,e){var r,n,i=t.max_chain_length,a=t.strstart,o=t.prev_length,s=t.nice_match,u=t.strstart>t.w_size-Ia?t.strstart-(t.w_size-Ia):0,l=t.window,f=t.w_mask,h=t.prev,c=t.strstart+Ma,d=l[a+o-1],p=l[a+o];t.prev_length>=t.good_match&&(i>>=2),s>t.lookahead&&(s=t.lookahead);do{if(l[(r=e)+o]===p&&l[r+o-1]===d&&l[r]===l[a]&&l[++r]===l[a+1]){a+=2,r++;do{}while(l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&ao){if(t.match_start=e,o=n,n>=s)break;d=l[a+o-1],p=l[a+o]}}}while((e=h[e&f])>u&&0!=--i);return o<=t.lookahead?o:t.lookahead}function qa(t){var e,r,n,i,a,o,s,u,l,f,h=t.w_size;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=h+(h-Ia)){Aa.arraySet(t.window,t.window,h,h,0),t.match_start-=h,t.strstart-=h,t.block_start-=h,e=r=t.hash_size;do{n=t.head[--e],t.head[e]=n>=h?n-h:0}while(--r);e=r=h;do{n=t.prev[--e],t.prev[e]=n>=h?n-h:0}while(--r);i+=h}if(0===t.strm.avail_in)break;if(o=t.strm,s=t.window,u=t.strstart+t.lookahead,l=i,f=void 0,(f=o.avail_in)>l&&(f=l),r=0===f?0:(o.avail_in-=f,Aa.arraySet(s,o.input,o.next_in,f,u),1===o.state.wrap?o.adler=Ra(o.adler,s,f,u):2===o.state.wrap&&(o.adler=Oa(o.adler,s,f,u)),o.next_in+=f,o.total_in+=f,f),t.lookahead+=r,t.lookahead+t.insert>=3)for(a=t.strstart-t.insert,t.ins_h=t.window[a],t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<=3)if(n=Ea._tr_tally(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-3,n=Ea._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=i&&(t.ins_h=(t.ins_h<15&&(o=2,n-=16),i<1||i>9||8!==r||n<8||n>15||e<0||e>9||a<0||a>4)return za(t,La);8===n&&(n=9);var s=new Ka;return t.state=s,s.strm=t,s.wrap=o,s.gzhead=null,s.w_bits=n,s.w_size=1<t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(qa(t),0===t.lookahead&&0===e)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var n=t.block_start+r;if((0===t.strstart||t.strstart>=n)&&(t.lookahead=t.strstart-n,t.strstart=n,Ua(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-Ia&&(Ua(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(Ua(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(Ua(t,!1),t.strm.avail_out),1)})),new Va(4,4,8,4,Ya),new Va(4,5,16,8,Ya),new Va(4,6,32,32,Ya),new Va(4,4,16,16,Ga),new Va(8,16,32,32,Ga),new Va(8,16,128,128,Ga),new Va(8,32,128,256,Ga),new Va(32,128,258,1024,Ga),new Va(32,258,258,4096,Ga)],Di.deflateInit=function(t,e){return Ja(t,e,8,15,8,0)},Di.deflateInit2=Ja,Di.deflateReset=$a,Di.deflateResetKeep=Xa,Di.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?La:(t.state.gzhead=e,0):La},Di.deflate=function(t,e){var r,n,i,a;if(!t||!t.state||e>5||e<0)return t?za(t,La):La;if(n=t.state,!t.output||!t.input&&0!==t.avail_in||n.status===Da&&4!==e)return za(t,0===t.avail_out?-5:La);if(n.strm=t,r=n.last_flush,n.last_flush=e,42===n.status)if(2===n.wrap)t.adler=0,Ha(n,31),Ha(n,139),Ha(n,8),n.gzhead?(Ha(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),Ha(n,255&n.gzhead.time),Ha(n,n.gzhead.time>>8&255),Ha(n,n.gzhead.time>>16&255),Ha(n,n.gzhead.time>>24&255),Ha(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),Ha(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(Ha(n,255&n.gzhead.extra.length),Ha(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(t.adler=Oa(t.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(Ha(n,0),Ha(n,0),Ha(n,0),Ha(n,0),Ha(n,0),Ha(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),Ha(n,3),n.status=Ba);else{var o=8+(n.w_bits-8<<4)<<8;o|=(n.strategy>=2||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(o|=32),o+=31-o%31,n.status=Ba,Wa(n,o),0!==n.strstart&&(Wa(n,t.adler>>>16),Wa(n,65535&t.adler)),t.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(t.adler=Oa(t.adler,n.pending_buf,n.pending-i,i)),Na(t),i=n.pending,n.pending!==n.pending_buf_size));)Ha(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(t.adler=Oa(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(t.adler=Oa(t.adler,n.pending_buf,n.pending-i,i)),Na(t),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}a=n.gzindexi&&(t.adler=Oa(t.adler,n.pending_buf,n.pending-i,i)),0===a&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(t.adler=Oa(t.adler,n.pending_buf,n.pending-i,i)),Na(t),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}a=n.gzindexi&&(t.adler=Oa(t.adler,n.pending_buf,n.pending-i,i)),0===a&&(n.status=Pa)}else n.status=Pa;if(n.status===Pa&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&Na(t),n.pending+2<=n.pending_buf_size&&(Ha(n,255&t.adler),Ha(n,t.adler>>8&255),t.adler=0,n.status=Ba)):n.status=Ba),0!==n.pending){if(Na(t),0===t.avail_out)return n.last_flush=-1,0}else if(0===t.avail_in&&ja(e)<=ja(r)&&4!==e)return za(t,-5);if(n.status===Da&&0!==t.avail_in)return za(t,-5);if(0!==t.avail_in||0!==n.lookahead||0!==e&&n.status!==Da){var s=2===n.strategy?function(t,e){for(var r;;){if(0===t.lookahead&&(qa(t),0===t.lookahead)){if(0===e)return 1;break}if(t.match_length=0,r=Ea._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(Ua(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(Ua(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(Ua(t,!1),0===t.strm.avail_out)?1:2}(n,e):3===n.strategy?function(t,e){for(var r,n,i,a,o=t.window;;){if(t.lookahead<=Ma){if(qa(t),t.lookahead<=Ma&&0===e)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(n=o[i=t.strstart-1])===o[++i]&&n===o[++i]&&n===o[++i]){a=t.strstart+Ma;do{}while(n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&it.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(r=Ea._tr_tally(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=Ea._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(Ua(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(Ua(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(Ua(t,!1),0===t.strm.avail_out)?1:2}(n,e):xa[n.level].func(n,e);if(3!==s&&4!==s||(n.status=Da),1===s||3===s)return 0===t.avail_out&&(n.last_flush=-1),0;if(2===s&&(1===e?Ea._tr_align(n):5!==e&&(Ea._tr_stored_block(n,0,0,!1),3===e&&(Fa(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),Na(t),0===t.avail_out))return n.last_flush=-1,0}return 4!==e?0:n.wrap<=0?1:(2===n.wrap?(Ha(n,255&t.adler),Ha(n,t.adler>>8&255),Ha(n,t.adler>>16&255),Ha(n,t.adler>>24&255),Ha(n,255&t.total_in),Ha(n,t.total_in>>8&255),Ha(n,t.total_in>>16&255),Ha(n,t.total_in>>24&255)):(Wa(n,t.adler>>>16),Wa(n,65535&t.adler)),Na(t),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?0:1)},Di.deflateEnd=function(t){var e;return t&&t.state?42!==(e=t.state.status)&&69!==e&&73!==e&&91!==e&&e!==Pa&&e!==Ba&&e!==Da?za(t,La):(t.state=null,e===Ba?za(t,-3):0):La},Di.deflateSetDictionary=function(t,e){var r,n,i,a,o,s,u,l,f=e.length;if(!t||!t.state)return La;if(2===(a=(r=t.state).wrap)||1===a&&42!==r.status||r.lookahead)return La;for(1===a&&(t.adler=Ra(t.adler,e,f,0)),r.wrap=0,f>=r.w_size&&(0===a&&(Fa(r.head),r.strstart=0,r.block_start=0,r.insert=0),l=new Aa.Buf8(r.w_size),Aa.arraySet(l,e,f-r.w_size,r.w_size,0),e=l,f=r.w_size),o=t.avail_in,s=t.next_in,u=t.input,t.avail_in=f,t.next_in=0,t.input=e,qa(r);r.lookahead>=3;){n=r.strstart,i=r.lookahead-2;do{r.ins_h=(r.ins_h<=252?6:io>=248?5:io>=240?4:io>=224?3:io>=192?2:1;function ao(t,e){if(e<65534&&(t.subarray&&ro||!t.subarray&&eo))return String.fromCharCode.apply(null,to.shrinkBuf(t,e));for(var r="",n=0;n>>6,e[a++]=128|63&r):r<65536?(e[a++]=224|r>>>12,e[a++]=128|r>>>6&63,e[a++]=128|63&r):(e[a++]=240|r>>>18,e[a++]=128|r>>>12&63,e[a++]=128|r>>>6&63,e[a++]=128|63&r);return e},Qa.buf2binstring=function(t){return ao(t,t.length)},Qa.binstring2buf=function(t){for(var e=new to.Buf8(t.length),r=0,n=e.length;r4)s[n++]=65533,r+=a-1;else{for(i&=2===a?31:3===a?15:7;a>1&&r1?s[n++]=65533:i<65536?s[n++]=i:(i-=65536,s[n++]=55296|i>>10&1023,s[n++]=56320|1023&i)}return ao(s,n)},Qa.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;r>=0&&128==(192&t[r]);)r--;return r<0||0===r?e:r+no[t[r]]>e?r:e};var oo=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},so=Di,uo=Pi,lo=Qa,fo=Ca,ho=oo,co=Object.prototype.toString;function po(t){if(!(this instanceof po))return new po(t);this.options=uo.assign({level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ho,this.strm.avail_out=0;var r=so.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(0!==r)throw new Error(fo[r]);if(e.header&&so.deflateSetHeader(this.strm,e.header),e.dictionary){var n;if(n="string"==typeof e.dictionary?lo.string2buf(e.dictionary):"[object ArrayBuffer]"===co.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,0!==(r=so.deflateSetDictionary(this.strm,n)))throw new Error(fo[r]);this._dict_set=!0}}function go(t,e){var r=new po(e);if(r.push(t,!0),r.err)throw r.msg||fo[r.err];return r.result}po.prototype.push=function(t,e){var r,n,i=this.strm,a=this.options.chunkSize;if(this.ended)return!1;n=e===~~e?e:!0===e?4:0,"string"==typeof t?i.input=lo.string2buf(t):"[object ArrayBuffer]"===co.call(t)?i.input=new Uint8Array(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new uo.Buf8(a),i.next_out=0,i.avail_out=a),1!==(r=so.deflate(i,n))&&0!==r)return this.onEnd(r),this.ended=!0,!1;0!==i.avail_out&&(0!==i.avail_in||4!==n&&2!==n)||("string"===this.options.to?this.onData(lo.buf2binstring(uo.shrinkBuf(i.output,i.next_out))):this.onData(uo.shrinkBuf(i.output,i.next_out)))}while((i.avail_in>0||0===i.avail_out)&&1!==r);return 4===n?(r=so.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,0===r):2!==n||(this.onEnd(0),i.avail_out=0,!0)},po.prototype.onData=function(t){this.chunks.push(t)},po.prototype.onEnd=function(t){0===t&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=uo.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},Bi.Deflate=po,Bi.deflate=go,Bi.deflateRaw=function(t,e){return(e=e||{}).raw=!0,go(t,e)},Bi.gzip=function(t,e){return(e=e||{}).gzip=!0,go(t,e)};var bo={},vo={},mo=Pi,yo=15,wo=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],_o=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],ko=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],xo=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64],So=Pi,Co=_a,Ao=Sa,Eo=function(t,e){var r,n,i,a,o,s,u,l,f,h,c,d,p,g,b,v,m,y,w,_,k,x,S,C,A;r=t.state,n=t.next_in,C=t.input,i=n+(t.avail_in-5),a=t.next_out,A=t.output,o=a-(e-t.avail_out),s=a+(t.avail_out-257),u=r.dmax,l=r.wsize,f=r.whave,h=r.wnext,c=r.window,d=r.hold,p=r.bits,g=r.lencode,b=r.distcode,v=(1<>>=w=y>>>24,p-=w,0===(w=y>>>16&255))A[a++]=65535&y;else{if(!(16&w)){if(0==(64&w)){y=g[(65535&y)+(d&(1<>>=w,p-=w),p<15&&(d+=C[n++]<>>=w=y>>>24,p-=w,!(16&(w=y>>>16&255))){if(0==(64&w)){y=b[(65535&y)+(d&(1<u){t.msg="invalid distance too far back",r.mode=30;break t}if(d>>>=w,p-=w,k>(w=a-o)){if((w=k-w)>f&&r.sane){t.msg="invalid distance too far back",r.mode=30;break t}if(x=0,S=c,0===h){if(x+=l-w,w<_){_-=w;do{A[a++]=c[x++]}while(--w);x=a-k,S=A}}else if(h2;)A[a++]=S[x++],A[a++]=S[x++],A[a++]=S[x++],_-=3;_&&(A[a++]=S[x++],_>1&&(A[a++]=S[x++]))}else{x=a-k;do{A[a++]=A[x++],A[a++]=A[x++],A[a++]=A[x++],_-=3}while(_>2);_&&(A[a++]=A[x++],_>1&&(A[a++]=A[x++]))}break}}break}}while(n>3,d&=(1<<(p-=_<<3))-1,t.next_in=n,t.next_out=a,t.avail_in=n=1&&0===T[_];_--);if(k>_&&(k=_),0===_)return i[a++]=20971520,i[a++]=20971520,s.bits=1,0;for(w=1;w<_&&0===T[w];w++);for(k0&&(0===t||1!==_))return-1;for(L[1]=0,m=1;m852||2===t&&A>592)return 1;for(;;){p=m-S,o[y]d?(g=M[I+o[y]],b=R[O+o[y]]):(g=96,b=0),u=1<>S)+(l-=u)]=p<<24|g<<16|b|0}while(0!==l);for(u=1<>=1;if(0!==u?(E&=u-1,E+=u):E=0,y++,0==--T[m]){if(m===_)break;m=e[r+o[y]]}if(m>k&&(E&h)!==f){for(0===S&&(S=k),c+=w,C=1<<(x=m-S);x+S<_&&!((C-=T[x+S])<=0);)x++,C<<=1;if(A+=1<852||2===t&&A>592)return 1;i[f=E&h]=k<<24|x<<16|c-a|0}}return 0!==E&&(i[c+E]=m-S<<24|64<<16|0),s.bits=k,0},Oo=-2,To=12,Lo=30;function Mo(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function Io(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new So.Buf16(320),this.work=new So.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Po(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new So.Buf32(852),e.distcode=e.distdyn=new So.Buf32(592),e.sane=1,e.back=-1,0):Oo}function Bo(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,Po(t)):Oo}function Do(t,e){var r,n;return t&&t.state?(n=t.state,e<0?(r=0,e=-e):(r=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?Oo:(null!==n.window&&n.wbits!==e&&(n.window=null),n.wrap=r,n.wbits=e,Bo(t))):Oo}function zo(t,e){var r,n;return t?(n=new Io,t.state=n,n.window=null,0!==(r=Do(t,e))&&(t.state=null),r):Oo}var jo,Fo,No=!0;function Uo(t){if(No){var e;for(jo=new So.Buf32(512),Fo=new So.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(Ro(1,t.lens,0,288,jo,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;Ro(2,t.lens,0,32,Fo,0,t.work,{bits:5}),No=!1}t.lencode=jo,t.lenbits=9,t.distcode=Fo,t.distbits=5}function Ho(t,e,r,n){var i,a=t.state;return null===a.window&&(a.wsize=1<=a.wsize?(So.arraySet(a.window,e,r-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):((i=a.wsize-a.wnext)>n&&(i=n),So.arraySet(a.window,e,r-n,i,a.wnext),(n-=i)?(So.arraySet(a.window,e,r-n,n,0),a.wnext=n,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave>>8&255,r.check=Ao(r.check,E,2,0),l=0,f=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&l)<<8)+(l>>8))%31){t.msg="incorrect header check",r.mode=Lo;break}if(8!=(15&l)){t.msg="unknown compression method",r.mode=Lo;break}if(f-=4,k=8+(15&(l>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){t.msg="invalid window size",r.mode=Lo;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&l,E[1]=l>>>8&255,r.check=Ao(r.check,E,2,0)),l=0,f=0,r.mode=3;case 3:for(;f<32;){if(0===s)break t;s--,l+=n[a++]<>>8&255,E[2]=l>>>16&255,E[3]=l>>>24&255,r.check=Ao(r.check,E,4,0)),l=0,f=0,r.mode=4;case 4:for(;f<16;){if(0===s)break t;s--,l+=n[a++]<>8),512&r.flags&&(E[0]=255&l,E[1]=l>>>8&255,r.check=Ao(r.check,E,2,0)),l=0,f=0,r.mode=5;case 5:if(1024&r.flags){for(;f<16;){if(0===s)break t;s--,l+=n[a++]<>>8&255,r.check=Ao(r.check,E,2,0)),l=0,f=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&((d=r.length)>s&&(d=s),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),So.arraySet(r.head.extra,n,a,d,k)),512&r.flags&&(r.check=Ao(r.check,n,d,a)),s-=d,a+=d,r.length-=d),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===s)break t;d=0;do{k=n[a+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k))}while(k&&d>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=To;break;case 10:for(;f<32;){if(0===s)break t;s--,l+=n[a++]<>>=7&f,f-=7&f,r.mode=27;break}for(;f<3;){if(0===s)break t;s--,l+=n[a++]<>>=1)){case 0:r.mode=14;break;case 1:if(Uo(r),r.mode=20,6===e){l>>>=2,f-=2;break t}break;case 2:r.mode=17;break;case 3:t.msg="invalid block type",r.mode=Lo}l>>>=2,f-=2;break;case 14:for(l>>>=7&f,f-=7&f;f<32;){if(0===s)break t;s--,l+=n[a++]<>>16^65535)){t.msg="invalid stored block lengths",r.mode=Lo;break}if(r.length=65535&l,l=0,f=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(d=r.length){if(d>s&&(d=s),d>u&&(d=u),0===d)break t;So.arraySet(i,n,a,d,o),s-=d,a+=d,u-=d,o+=d,r.length-=d;break}r.mode=To;break;case 17:for(;f<14;){if(0===s)break t;s--,l+=n[a++]<>>=5,f-=5,r.ndist=1+(31&l),l>>>=5,f-=5,r.ncode=4+(15&l),l>>>=4,f-=4,r.nlen>286||r.ndist>30){t.msg="too many length or distance symbols",r.mode=Lo;break}r.have=0,r.mode=18;case 18:for(;r.have>>=3,f-=3}for(;r.have<19;)r.lens[R[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=Ro(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg="invalid code lengths set",r.mode=Lo;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,m=65535&A,!((b=A>>>24)<=f);){if(0===s)break t;s--,l+=n[a++]<>>=b,f-=b,r.lens[r.have++]=m;else{if(16===m){for(C=b+2;f>>=b,f-=b,0===r.have){t.msg="invalid bit length repeat",r.mode=Lo;break}k=r.lens[r.have-1],d=3+(3&l),l>>>=2,f-=2}else if(17===m){for(C=b+3;f>>=b)),l>>>=3,f-=3}else{for(C=b+7;f>>=b)),l>>>=7,f-=7}if(r.have+d>r.nlen+r.ndist){t.msg="invalid bit length repeat",r.mode=Lo;break}for(;d--;)r.lens[r.have++]=k}}if(r.mode===Lo)break;if(0===r.lens[256]){t.msg="invalid code -- missing end-of-block",r.mode=Lo;break}if(r.lenbits=9,S={bits:r.lenbits},x=Ro(1,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg="invalid literal/lengths set",r.mode=Lo;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=Ro(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){t.msg="invalid distances set",r.mode=Lo;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(s>=6&&u>=258){t.next_out=o,t.avail_out=u,t.next_in=a,t.avail_in=s,r.hold=l,r.bits=f,Eo(t,c),o=t.next_out,i=t.output,u=t.avail_out,a=t.next_in,n=t.input,s=t.avail_in,l=r.hold,f=r.bits,r.mode===To&&(r.back=-1);break}for(r.back=0;v=(A=r.lencode[l&(1<>>16&255,m=65535&A,!((b=A>>>24)<=f);){if(0===s)break t;s--,l+=n[a++]<>y)])>>>16&255,m=65535&A,!(y+(b=A>>>24)<=f);){if(0===s)break t;s--,l+=n[a++]<>>=y,f-=y,r.back+=y}if(l>>>=b,f-=b,r.back+=b,r.length=m,0===v){r.mode=26;break}if(32&v){r.back=-1,r.mode=To;break}if(64&v){t.msg="invalid literal/length code",r.mode=Lo;break}r.extra=15&v,r.mode=22;case 22:if(r.extra){for(C=r.extra;f>>=r.extra,f-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;v=(A=r.distcode[l&(1<>>16&255,m=65535&A,!((b=A>>>24)<=f);){if(0===s)break t;s--,l+=n[a++]<>y)])>>>16&255,m=65535&A,!(y+(b=A>>>24)<=f);){if(0===s)break t;s--,l+=n[a++]<>>=y,f-=y,r.back+=y}if(l>>>=b,f-=b,r.back+=b,64&v){t.msg="invalid distance code",r.mode=Lo;break}r.offset=m,r.extra=15&v,r.mode=24;case 24:if(r.extra){for(C=r.extra;f>>=r.extra,f-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg="invalid distance too far back",r.mode=Lo;break}r.mode=25;case 25:if(0===u)break t;if(d=c-u,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){t.msg="invalid distance too far back",r.mode=Lo;break}d>r.wnext?(d-=r.wnext,p=r.wsize-d):p=r.wnext-d,d>r.length&&(d=r.length),g=r.window}else g=i,p=o-r.offset,d=r.length;d>u&&(d=u),u-=d,r.length-=d;do{i[o++]=g[p++]}while(--d);0===r.length&&(r.mode=21);break;case 26:if(0===u)break t;i[o++]=r.length,u--,r.mode=21;break;case 27:if(r.wrap){for(;f<32;){if(0===s)break t;s--,l|=n[a++]<=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ko,this.strm.avail_out=0;var r=Zo.inflateInit2(this.strm,e.windowBits);if(r!==Go.Z_OK)throw new Error(Vo[r]);if(this.header=new Xo,Zo.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Yo.string2buf(e.dictionary):"[object ArrayBuffer]"===$o.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(r=Zo.inflateSetDictionary(this.strm,e.dictionary))!==Go.Z_OK))throw new Error(Vo[r])}function Qo(t,e){var r=new Jo(e);if(r.push(t,!0),r.err)throw r.msg||Vo[r.err];return r.result}Jo.prototype.push=function(t,e){var r,n,i,a,o,s=this.strm,u=this.options.chunkSize,l=this.options.dictionary,f=!1;if(this.ended)return!1;n=e===~~e?e:!0===e?Go.Z_FINISH:Go.Z_NO_FLUSH,"string"==typeof t?s.input=Yo.binstring2buf(t):"[object ArrayBuffer]"===$o.call(t)?s.input=new Uint8Array(t):s.input=t,s.next_in=0,s.avail_in=s.input.length;do{if(0===s.avail_out&&(s.output=new qo.Buf8(u),s.next_out=0,s.avail_out=u),(r=Zo.inflate(s,Go.Z_NO_FLUSH))===Go.Z_NEED_DICT&&l&&(r=Zo.inflateSetDictionary(this.strm,l)),r===Go.Z_BUF_ERROR&&!0===f&&(r=Go.Z_OK,f=!1),r!==Go.Z_STREAM_END&&r!==Go.Z_OK)return this.onEnd(r),this.ended=!0,!1;s.next_out&&(0!==s.avail_out&&r!==Go.Z_STREAM_END&&(0!==s.avail_in||n!==Go.Z_FINISH&&n!==Go.Z_SYNC_FLUSH)||("string"===this.options.to?(i=Yo.utf8border(s.output,s.next_out),a=s.next_out-i,o=Yo.buf2string(s.output,i),s.next_out=a,s.avail_out=u-a,a&&qo.arraySet(s.output,s.output,i,a,0),this.onData(o)):this.onData(qo.shrinkBuf(s.output,s.next_out)))),0===s.avail_in&&0===s.avail_out&&(f=!0)}while((s.avail_in>0||0===s.avail_out)&&r!==Go.Z_STREAM_END);return r===Go.Z_STREAM_END&&(n=Go.Z_FINISH),n===Go.Z_FINISH?(r=Zo.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Go.Z_OK):n!==Go.Z_SYNC_FLUSH||(this.onEnd(Go.Z_OK),s.avail_out=0,!0)},Jo.prototype.onData=function(t){this.chunks.push(t)},Jo.prototype.onEnd=function(t){t===Go.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=qo.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},bo.Inflate=Jo,bo.inflate=Qo,bo.inflateRaw=function(t,e){return(e=e||{}).raw=!0,Qo(t,e)},bo.ungzip=Qo;var ts={};(0,Pi.assign)(ts,Bi,bo,Wo);var es="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,rs=ts,ns=Dn(),is=jn,as=es?"uint8array":"array";function os(t,e){is.call(this,"FlateWorker/"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=e,this.meta={}}Ii.magic="\b\0",ns.inherits(os,is),os.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(ns.transformTo(as,t.data),!1)},os.prototype.flush=function(){is.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},os.prototype.cleanUp=function(){is.prototype.cleanUp.call(this),this._pako=null},os.prototype._createPako=function(){this._pako=new rs[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},Ii.compressWorker=function(t){return new os("Deflate",t)},Ii.uncompressWorker=function(){return new os("Inflate",{})};var ss=jn;Mi.STORE={magic:"\0\0",compressWorker:function(){return new ss("STORE compression")},uncompressWorker:function(){return new ss("STORE decompression")}},Mi.DEFLATE=Ii;var us={LOCAL_FILE_HEADER:"PK",CENTRAL_FILE_HEADER:"PK",CENTRAL_DIRECTORY_END:"PK",ZIP64_CENTRAL_DIRECTORY_LOCATOR:"PK",ZIP64_CENTRAL_DIRECTORY_END:"PK",DATA_DESCRIPTOR:"PK\b"},ls=Dn(),fs=jn,hs=f,cs=si,ds=us,ps=function(t,e){var r,n="";for(r=0;r>>=8;return n},gs=function(t,e,r,n,i,a){var o,s,u=t.file,l=t.compression,f=a!==hs.utf8encode,h=ls.transformTo("string",a(u.name)),c=ls.transformTo("string",hs.utf8encode(u.name)),d=u.comment,p=ls.transformTo("string",a(d)),g=ls.transformTo("string",hs.utf8encode(d)),b=c.length!==u.name.length,v=g.length!==d.length,m="",y="",w="",_=u.dir,k=u.date,x={crc32:0,compressedSize:0,uncompressedSize:0};e&&!r||(x.crc32=t.crc32,x.compressedSize=t.compressedSize,x.uncompressedSize=t.uncompressedSize);var S=0;e&&(S|=8),f||!b&&!v||(S|=2048);var C,A,E,R=0,O=0;_&&(R|=16),"UNIX"===i?(O=798,R|=(C=u.unixPermissions,A=_,E=C,C||(E=A?16893:33204),(65535&E)<<16)):(O=20,R|=63&(u.dosPermissions||0)),o=k.getUTCHours(),o<<=6,o|=k.getUTCMinutes(),o<<=5,o|=k.getUTCSeconds()/2,s=k.getUTCFullYear()-1980,s<<=4,s|=k.getUTCMonth()+1,s<<=5,s|=k.getUTCDate(),b&&(y=ps(1,1)+ps(cs(h),4)+c,m+="up"+ps(y.length,2)+y),v&&(w=ps(1,1)+ps(cs(p),4)+g,m+="uc"+ps(w.length,2)+w);var T="";return T+="\n\0",T+=ps(S,2),T+=l.magic,T+=ps(o,2),T+=ps(s,2),T+=ps(x.crc32,4),T+=ps(x.compressedSize,4),T+=ps(x.uncompressedSize,4),T+=ps(h.length,2),T+=ps(m.length,2),{fileRecord:ds.LOCAL_FILE_HEADER+T+h+m,dirRecord:ds.CENTRAL_FILE_HEADER+ps(O,2)+T+ps(p.length,2)+"\0\0\0\0"+ps(R,4)+ps(n,4)+h+m+p}},bs=function(t){return ds.DATA_DESCRIPTOR+ps(t.crc32,4)+ps(t.compressedSize,4)+ps(t.uncompressedSize,4)};function vs(t,e,r,n){fs.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}ls.inherits(vs,fs),vs.prototype.push=function(t){var e=t.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,fs.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:r?(e+100*(r-n-1))/r:100}}))},vs.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var e=this.streamFiles&&!t.file.dir;if(e){var r=gs(t,e,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},vs.prototype.closedSource=function(t){this.accumulate=!1;var e=this.streamFiles&&!t.file.dir,r=gs(t,e,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),e)this.push({data:bs(t),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},vs.prototype.flush=function(){for(var t=this.bytesWritten,e=0;e0?t.substring(0,e):""},Ds=function(t){return"/"!==t.slice(-1)&&(t+="/"),t},zs=function(t,e){return e=void 0!==e?e:Rs.createFolders,t=Ds(t),this.files[t]||Ps.call(this,t,null,{dir:!0,createFolders:e}),this.files[t]};function js(t){return"[object RegExp]"===Object.prototype.toString.call(t)}var Fs={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(t){var e,r,n;for(e in this.files)n=this.files[e],(r=e.slice(this.root.length,e.length))&&e.slice(0,this.root.length)===this.root&&t(r,n)},filter:function(t){var e=[];return this.forEach((function(r,n){t(r,n)&&e.push(n)})),e},file:function(t,e,r){if(1===arguments.length){if(js(t)){var n=t;return this.filter((function(t,e){return!e.dir&&n.test(t)}))}var i=this.files[this.root+t];return i&&!i.dir?i:null}return t=this.root+t,Ps.call(this,t,e,r),this},folder:function(t){if(!t)return this;if(js(t))return this.filter((function(e,r){return r.dir&&t.test(e)}));var e=this.root+t,r=zs.call(this,e),n=this.clone();return n.root=r.name,n},remove:function(t){t=this.root+t;var e=this.files[t];if(e||("/"!==t.slice(-1)&&(t+="/"),e=this.files[t]),e&&!e.dir)delete this.files[t];else for(var r=this.filter((function(e,r){return r.name.slice(0,t.length)===t})),n=0;n=this.index;e--)r=(r<<8)+this.byteAt(e);return this.index+=t,r},readString:function(t){return Us.transformTo("string",this.readData(t))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}};var Ws=Hs,Zs=Ws;function qs(t){Zs.call(this,t);for(var e=0;e=0;--a)if(this.data[a]===e&&this.data[a+1]===r&&this.data[a+2]===n&&this.data[a+3]===i)return a-this.zero;return-1},qs.prototype.readAndCheckSignature=function(t){var e=t.charCodeAt(0),r=t.charCodeAt(1),n=t.charCodeAt(2),i=t.charCodeAt(3),a=this.readData(4);return e===a[0]&&r===a[1]&&n===a[2]&&i===a[3]},qs.prototype.readData=function(t){if(this.checkOffset(t),0===t)return[];var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e};var Ys=qs,Gs=Ws;function Vs(t){Gs.call(this,t)}Dn().inherits(Vs,Gs),Vs.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},Vs.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},Vs.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},Vs.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e};var Ks=Vs,Xs=Ys;function $s(t){Xs.call(this,t)}Dn().inherits($s,Xs),$s.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e};var Js=$s,Qs=Js;function tu(t){Qs.call(this,t)}Dn().inherits(tu,Qs),tu.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e};var eu=tu,ru=Dn(),nu=dt,iu=Ys,au=Ks,ou=eu,su=Js,uu=function(t){var e=ru.getTypeOf(t);return ru.checkSupport(e),"string"!==e||nu.uint8array?"nodebuffer"===e?new ou(t):nu.uint8array?new su(ru.transformTo("uint8array",t)):new iu(ru.transformTo("array",t)):new au(t)},lu=uu,fu=Dn(),hu=wi,cu=si,du=f,pu=Mi,gu=dt;function bu(t,e){this.options=t,this.loadOptions=e}bu.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(t){var e,r;if(t.skip(22),this.fileNameLength=t.readInt(2),r=t.readInt(2),this.fileName=t.readData(this.fileNameLength),t.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(e=function(t){for(var e in pu)if(Object.prototype.hasOwnProperty.call(pu,e)&&pu[e].magic===t)return pu[e];return null}(this.compressionMethod),null===e)throw new Error("Corrupted zip : compression "+fu.pretty(this.compressionMethod)+" unknown (inner file : "+fu.transformTo("string",this.fileName)+")");this.decompressed=new hu(this.compressedSize,this.uncompressedSize,this.crc32,e,t.readData(this.compressedSize))},readCentralPart:function(t){this.versionMadeBy=t.readInt(2),t.skip(2),this.bitFlag=t.readInt(2),this.compressionMethod=t.readString(2),this.date=t.readDate(),this.crc32=t.readInt(4),this.compressedSize=t.readInt(4),this.uncompressedSize=t.readInt(4);var e=t.readInt(2);if(this.extraFieldsLength=t.readInt(2),this.fileCommentLength=t.readInt(2),this.diskNumberStart=t.readInt(2),this.internalFileAttributes=t.readInt(2),this.externalFileAttributes=t.readInt(4),this.localHeaderOffset=t.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");t.skip(e),this.readExtraFields(t),this.parseZIP64ExtraField(t),this.fileComment=t.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var t=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0===t&&(this.dosPermissions=63&this.externalFileAttributes),3===t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var t=lu(this.extraFields[1].value);this.uncompressedSize===fu.MAX_VALUE_32BITS&&(this.uncompressedSize=t.readInt(8)),this.compressedSize===fu.MAX_VALUE_32BITS&&(this.compressedSize=t.readInt(8)),this.localHeaderOffset===fu.MAX_VALUE_32BITS&&(this.localHeaderOffset=t.readInt(8)),this.diskNumberStart===fu.MAX_VALUE_32BITS&&(this.diskNumberStart=t.readInt(4))}},readExtraFields:function(t){var e,r,n,i=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index+41)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var t,e;for(t=0;t0)this.isSignature(e,wu.CENTRAL_FILE_HEADER)||(this.reader.zero=n);else if(n<0)throw new Error("Corrupted zip: missing "+Math.abs(n)+" bytes.")},prepareReader:function(t){this.reader=mu(t)},load:function(t){this.prepareReader(t),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}};var Su=xu,Cu=Dn(),Au=Bn,Eu=f,Ru=Su,Ou=hi,Tu=Mn;function Lu(t){return new Au.Promise((function(e,r){var n=t.decompressed.getContentWorker().pipe(new Ou);n.on("error",(function(t){r(t)})).on("end",(function(){n.streamInfo.crc32!==t.decompressed.crc32?r(new Error("Corrupted zip : CRC32 mismatch")):e()})).resume()}))}function Mu(){if(!(this instanceof Mu))return new Mu;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var t=new Mu;for(var e in this)"function"!=typeof this[e]&&(t[e]=this[e]);return t}}Mu.prototype=Ns,Mu.prototype.loadAsync=function(t,e){var r=this;return e=Cu.extend(e||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:Eu.utf8decode}),Tu.isNode&&Tu.isStream(t)?Au.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):Cu.prepareContent("the loaded zip file",t,!0,e.optimizedBinaryString,e.base64).then((function(t){var r=new Ru(e);return r.load(t),r})).then((function(t){var r=[Au.Promise.resolve(t)],n=t.files;if(e.checkCRC32)for(var i=0;i".charCodeAt(0),s="-".charCodeAt(0),u="/".charCodeAt(0),l="!".charCodeAt(0),f="'".charCodeAt(0),h='"'.charCodeAt(0),c="[".charCodeAt(0),d="]".charCodeAt(0);function p(e){for(var f=[];t[r];)if(t.charCodeAt(r)==a){if(t.charCodeAt(r+1)===u){var h=r+2;if(r=t.indexOf(">",r),-1==t.substring(h,r).indexOf(e)){var p=t.substring(0,r).split("\n");throw new Error("Unexpected close tag\nLine: "+(p.length-1)+"\nColumn: "+(p[p.length-1].length+1)+"\nChar: "+t[r])}return r+1&&(r+=1),f}if(t.charCodeAt(r+1)===l){if(t.charCodeAt(r+2)==s){const e=r;for(;-1!==r&&(t.charCodeAt(r)!==o||t.charCodeAt(r-1)!=s||t.charCodeAt(r-2)!=s||-1==r);)r=t.indexOf(">",r+1);-1===r&&(r=t.length),n&&f.push(t.substring(e,r+1))}else{if(t.charCodeAt(r+2)===c&&t.charCodeAt(r+8)===c&&"cdata"===t.substr(r+3,5).toLowerCase()){var b=t.indexOf("]]>",r);-1==b?(f.push(t.substr(r+9)),r=t.length):(f.push(t.substring(r+9,b)),r=b+3);continue}{const e=r+1;r+=2;for(var v=!1;(t.charCodeAt(r)!==o||!0===v)&&t[r];)t.charCodeAt(r)===c?v=!0:!0===v&&t.charCodeAt(r)===d&&(v=!1),r++;f.push(t.substring(e,r))}}r++;continue}var y=m();f.push(y),"?"===y.tagName[0]&&(f.push(...y.children),y.children=[])}else{var w=g();if(i)w.length>0&&f.push(w);else{var _=w.trim();_.length>0&&f.push(_)}r++}return f}function g(){var e=r;return-2===(r=t.indexOf("<",r)-1)&&(r=t.length),t.slice(e,r+1)}function b(){for(var e=r;-1==="\r\n\t>/= ".indexOf(t[r])&&t[r];)r++;return t.slice(e,r)}var v=e.noChildNodes||["img","br","input","meta","link","hr"];function m(){r++;const e=b(),n={};let i=[];for(;t.charCodeAt(r)!==o&&t[r];){var a=t.charCodeAt(r);if(a>64&&a<91||a>96&&a<123){for(var s=b(),l=t.charCodeAt(r);l&&l!==f&&l!==h&&!(l>64&&l<91||l>96&&l<123)&&l!==o;)r++,l=t.charCodeAt(r);if(l===f||l===h){var c=y();if(-1===r)return{tagName:e,attributes:n,children:i}}else c=null,r--;n[s]=c}r++}if(t.charCodeAt(r-1)!==u)if("script"==e){var d=r+1;r=t.indexOf("<\/script>",r),i=[t.slice(d,r)],r+=9}else if("style"==e){d=r+1;r=t.indexOf("",r),i=[t.slice(d,r)],r+=8}else-1===v.indexOf(e)?(r++,i=p(e)):r++;else r++;return{tagName:e,attributes:n,children:i}}function y(){var e=t[r],n=r+1;return r=t.indexOf(e,n),t.slice(n,r)}var w,_=null;if(void 0!==e.attrValue){e.attrName=e.attrName||"id";for(_=[];-1!==(w=void 0,w=new RegExp("\\s"+e.attrName+"\\s*=['\"]"+e.attrValue+"['\"]").exec(t),r=w?w.index:-1);)-1!==(r=t.lastIndexOf("<",r))&&_.push(m()),t=t.substr(r),r=0}else _=e.parseNode?m():p("");return e.filter&&(_=zu(_,e.filter)),e.simplify?Du(Array.isArray(_)?_:[_]):(e.setPos&&(_.pos=r),_)}function Du(t){var e={};if(!t.length)return"";if(1===t.length&&"string"==typeof t[0])return t[0];for(var r in t.forEach((function(t){if("object"==typeof t){e[t.tagName]||(e[t.tagName]=[]);var r=Du(t.children);e[t.tagName].push(r),Object.keys(t.attributes).length&&"string"!=typeof r&&(r._attributes=t.attributes)}})),e)1==e[r].length&&(e[r]=e[r][0]);return e}function zu(t,e,r=0,n=""){var i=[];return t.forEach((function(t,a){if("object"==typeof t&&e(t,a,r,n)&&i.push(t),t.children){var o=zu(t.children,e,r+1,(n?n+".":"")+a+"."+t.tagName);i=i.concat(o)}})),i}function ju(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return Fu(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Fu(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Fu(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1&&void 0!==arguments[1]?arguments[1]:{},r={};if(!t.length)return r;if(1===t.length&&"string"==typeof t[0])return Object.keys(e).length?{attrs:Uu({order:Hu++},e),value:t[0]}:t[0];var n,i=ju(t);try{for(i.s();!(n=i.n()).done;){var a=n.value;if("object"!==Pu(a))return;if("?xml"!==a.tagName){r[a.tagName]||(r[a.tagName]=[]);var o=Wu(a.children||[],a.attributes);r[a.tagName].push(o),Object.keys(a.attributes).length&&(o.attrs=Uu({order:Hu++},a.attributes))}}}catch(t){i.e(t)}finally{i.f()}for(var s in r)1===r[s].length&&(r[s]=r[s][0]);return r}function Zu(t,e){return qu.apply(this,arguments)}function qu(){return(qu=n(l.mark((function t(e,r){var n;return l.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e.file(r).async("string");case 3:return n=t.sent,t.abrupt("return",Wu(Bu(n)));case 7:return t.prev=7,t.t0=t.catch(0),t.abrupt("return",null);case 10:case"end":return t.stop()}}),t,null,[[0,7]])})))).apply(this,arguments)}function Yu(t){return Yu="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Yu(t)}var Gu=/^\s+/,Vu=/\s+$/;function Ku(t,e){if(e=e||{},(t=t||"")instanceof Ku)return t;if(!(this instanceof Ku))return new Ku(t,e);var r=function(t){var e={r:0,g:0,b:0},r=1,n=null,i=null,a=null,o=!1,s=!1;"string"==typeof t&&(t=function(t){t=t.replace(Gu,"").replace(Vu,"").toLowerCase();var e,r=!1;if(cl[t])t=cl[t],r=!0;else if("transparent"==t)return{r:0,g:0,b:0,a:0,format:"name"};if(e=Cl.rgb.exec(t))return{r:e[1],g:e[2],b:e[3]};if(e=Cl.rgba.exec(t))return{r:e[1],g:e[2],b:e[3],a:e[4]};if(e=Cl.hsl.exec(t))return{h:e[1],s:e[2],l:e[3]};if(e=Cl.hsla.exec(t))return{h:e[1],s:e[2],l:e[3],a:e[4]};if(e=Cl.hsv.exec(t))return{h:e[1],s:e[2],v:e[3]};if(e=Cl.hsva.exec(t))return{h:e[1],s:e[2],v:e[3],a:e[4]};if(e=Cl.hex8.exec(t))return{r:vl(e[1]),g:vl(e[2]),b:vl(e[3]),a:_l(e[4]),format:r?"name":"hex8"};if(e=Cl.hex6.exec(t))return{r:vl(e[1]),g:vl(e[2]),b:vl(e[3]),format:r?"name":"hex"};if(e=Cl.hex4.exec(t))return{r:vl(e[1]+""+e[1]),g:vl(e[2]+""+e[2]),b:vl(e[3]+""+e[3]),a:_l(e[4]+""+e[4]),format:r?"name":"hex8"};if(e=Cl.hex3.exec(t))return{r:vl(e[1]+""+e[1]),g:vl(e[2]+""+e[2]),b:vl(e[3]+""+e[3]),format:r?"name":"hex"};return!1}(t));"object"==Yu(t)&&(Al(t.r)&&Al(t.g)&&Al(t.b)?(u=t.r,l=t.g,f=t.b,e={r:255*gl(u,255),g:255*gl(l,255),b:255*gl(f,255)},o=!0,s="%"===String(t.r).substr(-1)?"prgb":"rgb"):Al(t.h)&&Al(t.s)&&Al(t.v)?(n=yl(t.s),i=yl(t.v),e=function(t,e,r){t=6*gl(t,360),e=gl(e,100),r=gl(r,100);var n=Math.floor(t),i=t-n,a=r*(1-e),o=r*(1-i*e),s=r*(1-(1-i)*e),u=n%6;return{r:255*[r,o,a,a,s,r][u],g:255*[s,r,r,o,a,a][u],b:255*[a,a,s,r,r,o][u]}}(t.h,n,i),o=!0,s="hsv"):Al(t.h)&&Al(t.s)&&Al(t.l)&&(n=yl(t.s),a=yl(t.l),e=function(t,e,r){var n,i,a;function o(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}if(t=gl(t,360),e=gl(e,100),r=gl(r,100),0===e)n=i=a=r;else{var s=r<.5?r*(1+e):r+e-r*e,u=2*r-s;n=o(u,s,t+1/3),i=o(u,s,t),a=o(u,s,t-1/3)}return{r:255*n,g:255*i,b:255*a}}(t.h,n,a),o=!0,s="hsl"),t.hasOwnProperty("a")&&(r=t.a));var u,l,f;return r=pl(r),{ok:o,format:t.format||s,r:Math.min(255,Math.max(e.r,0)),g:Math.min(255,Math.max(e.g,0)),b:Math.min(255,Math.max(e.b,0)),a:r}}(t);this._originalInput=t,this._r=r.r,this._g=r.g,this._b=r.b,this._a=r.a,this._roundA=Math.round(100*this._a)/100,this._format=e.format||r.format,this._gradientType=e.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=r.ok}function Xu(t,e,r){t=gl(t,255),e=gl(e,255),r=gl(r,255);var n,i,a=Math.max(t,e,r),o=Math.min(t,e,r),s=(a+o)/2;if(a==o)n=i=0;else{var u=a-o;switch(i=s>.5?u/(2-a-o):u/(a+o),a){case t:n=(e-r)/u+(e>1)+720)%360;--e;)n.h=(n.h+i)%360,a.push(Ku(n));return a}function hl(t,e){e=e||6;for(var r=Ku(t).toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/e;e--;)o.push(Ku({h:n,s:i,v:a})),a=(a+s)%1;return o}Ku.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var t,e,r,n=this.toRgb();return t=n.r/255,e=n.g/255,r=n.b/255,.2126*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.7152*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.0722*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))},setAlpha:function(t){return this._a=pl(t),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var t=$u(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=$u(this._r,this._g,this._b),e=Math.round(360*t.h),r=Math.round(100*t.s),n=Math.round(100*t.v);return 1==this._a?"hsv("+e+", "+r+"%, "+n+"%)":"hsva("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var t=Xu(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=Xu(this._r,this._g,this._b),e=Math.round(360*t.h),r=Math.round(100*t.s),n=Math.round(100*t.l);return 1==this._a?"hsl("+e+", "+r+"%, "+n+"%)":"hsla("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHex:function(t){return Ju(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(t){return function(t,e,r,n,i){var a=[ml(Math.round(t).toString(16)),ml(Math.round(e).toString(16)),ml(Math.round(r).toString(16)),ml(wl(n))];if(i&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)&&a[3].charAt(0)==a[3].charAt(1))return a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0);return a.join("")}(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return"#"+this.toHex8(t)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(100*gl(this._r,255))+"%",g:Math.round(100*gl(this._g,255))+"%",b:Math.round(100*gl(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*gl(this._r,255))+"%, "+Math.round(100*gl(this._g,255))+"%, "+Math.round(100*gl(this._b,255))+"%)":"rgba("+Math.round(100*gl(this._r,255))+"%, "+Math.round(100*gl(this._g,255))+"%, "+Math.round(100*gl(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(dl[Ju(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e="#"+Qu(this._r,this._g,this._b,this._a),r=e,n=this._gradientType?"GradientType = 1, ":"";if(t){var i=Ku(t);r="#"+Qu(i._r,i._g,i._b,i._a)}return"progid:DXImageTransform.Microsoft.gradient("+n+"startColorstr="+e+",endColorstr="+r+")"},toString:function(t){var e=!!t;t=t||this._format;var r=!1,n=this._a<1&&this._a>=0;return e||!n||"hex"!==t&&"hex6"!==t&&"hex3"!==t&&"hex4"!==t&&"hex8"!==t&&"name"!==t?("rgb"===t&&(r=this.toRgbString()),"prgb"===t&&(r=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(r=this.toHexString()),"hex3"===t&&(r=this.toHexString(!0)),"hex4"===t&&(r=this.toHex8String(!0)),"hex8"===t&&(r=this.toHex8String()),"name"===t&&(r=this.toName()),"hsl"===t&&(r=this.toHslString()),"hsv"===t&&(r=this.toHsvString()),r||this.toHexString()):"name"===t&&0===this._a?this.toName():this.toRgbString()},clone:function(){return Ku(this.toString())},_applyModification:function(t,e){var r=t.apply(null,[this].concat([].slice.call(e)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(nl,arguments)},brighten:function(){return this._applyModification(il,arguments)},darken:function(){return this._applyModification(al,arguments)},desaturate:function(){return this._applyModification(tl,arguments)},saturate:function(){return this._applyModification(el,arguments)},greyscale:function(){return this._applyModification(rl,arguments)},spin:function(){return this._applyModification(ol,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(fl,arguments)},complement:function(){return this._applyCombination(sl,arguments)},monochromatic:function(){return this._applyCombination(hl,arguments)},splitcomplement:function(){return this._applyCombination(ll,arguments)},triad:function(){return this._applyCombination(ul,[3])},tetrad:function(){return this._applyCombination(ul,[4])}},Ku.fromRatio=function(t,e){if("object"==Yu(t)){var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]="a"===n?t[n]:yl(t[n]));t=r}return Ku(t,e)},Ku.equals=function(t,e){return!(!t||!e)&&Ku(t).toRgbString()==Ku(e).toRgbString()},Ku.random=function(){return Ku.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},Ku.mix=function(t,e,r){r=0===r?0:r||50;var n=Ku(t).toRgb(),i=Ku(e).toRgb(),a=r/100;return Ku({r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a})},Ku.readability=function(t,e){var r=Ku(t),n=Ku(e);return(Math.max(r.getLuminance(),n.getLuminance())+.05)/(Math.min(r.getLuminance(),n.getLuminance())+.05)},Ku.isReadable=function(t,e,r){var n,i,a=Ku.readability(t,e);switch(i=!1,(n=function(t){var e,r;e=((t=t||{level:"AA",size:"small"}).level||"AA").toUpperCase(),r=(t.size||"small").toLowerCase(),"AA"!==e&&"AAA"!==e&&(e="AA");"small"!==r&&"large"!==r&&(r="small");return{level:e,size:r}}(r)).level+n.size){case"AAsmall":case"AAAlarge":i=a>=4.5;break;case"AAlarge":i=a>=3;break;case"AAAsmall":i=a>=7}return i},Ku.mostReadable=function(t,e,r){var n,i,a,o,s=null,u=0;i=(r=r||{}).includeFallbackColors,a=r.level,o=r.size;for(var l=0;lu&&(u=n,s=Ku(e[l]));return Ku.isReadable(t,s,{level:a,size:o})||!i?s:(r.includeFallbackColors=!1,Ku.mostReadable(t,["#fff","#000"],r))};var cl=Ku.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},dl=Ku.hexNames=function(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[t[r]]=r);return e}(cl);function pl(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function gl(t,e){(function(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)})(t)&&(t="100%");var r=function(t){return"string"==typeof t&&-1!=t.indexOf("%")}(t);return t=Math.min(e,Math.max(0,parseFloat(t))),r&&(t=parseInt(t*e,10)/100),Math.abs(t-e)<1e-6?1:t%e/parseFloat(e)}function bl(t){return Math.min(1,Math.max(0,t))}function vl(t){return parseInt(t,16)}function ml(t){return 1==t.length?"0"+t:""+t}function yl(t){return t<=1&&(t=100*t+"%"),t}function wl(t){return Math.round(255*parseFloat(t)).toString(16)}function _l(t){return vl(t)/255}var kl,xl,Sl,Cl=(xl="[\\s|\\(]+("+(kl="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+kl+")[,|\\s]+("+kl+")\\s*\\)?",Sl="[\\s|\\(]+("+kl+")[,|\\s]+("+kl+")[,|\\s]+("+kl+")[,|\\s]+("+kl+")\\s*\\)?",{CSS_UNIT:new RegExp(kl),rgb:new RegExp("rgb"+xl),rgba:new RegExp("rgba"+Sl),hsl:new RegExp("hsl"+xl),hsla:new RegExp("hsla"+Sl),hsv:new RegExp("hsv"+xl),hsva:new RegExp("hsva"+Sl),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function Al(t){return!!Cl.CSS_UNIT.exec(t)}function El(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return Rl(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Rl(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Rl(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r>18]+r[(258048&e)>>12]+r[(4032&e)>>6]+r[63&e];return 1===a?s+=r[(252&(e=n[o]))>>2]+r[(3&e)<<4]+"==":2===a&&(s+=r[(64512&(e=n[o]<<8|n[o+1]))>>10]+r[(1008&e)>>4]+r[(15&e)<<2]+"="),s}function Tl(t){return t.substr(2+(~-t.lastIndexOf(".")>>>0))}function Ll(t,e){if(!t)return t;var r="";if(t.constructor===Array)for(var n=0;n":">",'"':""","'":"'"};return t.replace(/[&<>"']/g,(function(t){return e[t]}))}function Bl(t){var e="";switch(t.toLowerCase()){case"jpg":case"jpeg":e="image/jpeg";break;case"png":e="image/png";break;case"gif":e="image/gif";break;case"emf":e="image/x-emf";break;case"wmf":e="image/x-wmf";break;case"svg":e="image/svg+xml";break;case"mp4":e="video/mp4";break;case"webm":e="video/webm";break;case"ogg":e="video/ogg";break;case"avi":e="video/avi";break;case"mpg":e="video/mpg";break;case"wmv":e="video/wmv";break;case"mp3":e="audio/mpeg";break;case"wav":e="audio/wav";break;case"tif":case"tiff":e="image/tiff"}return e}function Dl(t){return/^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/.test(t)}function zl(t){for(var e=t.toString(16);e.length<2;)e="0"+e;return e}function jl(t,e,r,n){var i,a;if(r)a=r;else{var o=Ml(e.slideContent,["p:sld","p:clrMapOvr","a:overrideClrMapping","attrs"]);a=o||((o=Ml(e.slideLayoutContent,["p:sldLayout","p:clrMapOvr","a:overrideClrMapping","attrs"]))||Ml(e.slideMasterContent,["p:sldMaster","p:clrMap","attrs"]))}var s=t.substr(2);if("phClr"===s&&n)i=n;else{if(a)switch(s){case"tx1":case"tx2":case"bg1":case"bg2":t="a:"+a[s]}else switch(t){case"tx1":t="a:dk1";break;case"tx2":t="a:dk2";break;case"bg1":t="a:lt1";break;case"bg2":t="a:lt2"}var u=Ml(e.themeContent,["a:theme","a:themeElements","a:clrScheme",t]);!(i=Ml(u,["a:srgbClr","attrs","val"]))&&u&&(i=Ml(u,["a:sysClr","attrs","lastClr"]))}return i}function Fl(t,e,r){var n=t["p:spPr"]["a:ln"],i=parseInt(Ml(n,["attrs","w"]))/12700;isNaN(i)&&(i=n||"obj"!==e?0:1);var a=Ml(n,["a:solidFill","a:srgbClr","attrs","val"]);if(!a){var o=Ml(n,["a:solidFill","a:schemeClr"]);a=jl("a:"+Ml(o,["attrs","val"]),r)}if(!a){var s=Ml(t,["p:style","a:lnRef","a:schemeClr"]);if(a=jl("a:"+Ml(s,["attrs","val"]),r)){var u=Ml(s,["a:shade","attrs","val"]);if(u){u=parseInt(u)/1e5;var l=Ku("#"+a).toHsl();a=Ku({h:l.h,s:l.s,l:l.l*u,a:l.a}).toHex()}}}a=a?"#".concat(a):"#000";var f="solid",h="0";switch(Ml(n,["a:prstDash","attrs","val"])){case"solid":f="solid",h="0";break;case"dash":f="dashed",h="5";break;case"dashDot":f="dashed",h="5, 5, 1, 5";break;case"dot":f="dotted",h="1, 5";break;case"lgDash":f="dashed",h="10, 5";break;case"lgDashDotDot":f="dotted",h="10, 5, 1, 5, 1, 5";break;case"sysDash":f="dashed",h="5, 2";break;case"sysDashDot":f="dotted",h="5, 2, 1, 5";break;case"sysDashDotDot":f="dotted",h="5, 2, 1, 5, 1, 5";break;case"sysDot":f="dotted",h="2, 5"}return{borderColor:a,borderWidth:i,borderType:f,strokeDasharray:h}}function Nl(t,e,r){return r<0&&(r+=6),r>=6&&(r-=6),r<1?(e-t)*r+t:r<3?e:r<4?(e-t)*(4-r)+t:t}function Ul(t){var e="";return t["a:noFill"]&&(e="NO_FILL"),t["a:solidFill"]&&(e="SOLID_FILL"),t["a:gradFill"]&&(e="GRADIENT_FILL"),t["a:pattFill"]&&(e="PATTERN_FILL"),t["a:blipFill"]&&(e="PIC_FILL"),t["a:grpFill"]&&(e="GROUP_FILL"),e}function Hl(t,e,r){return Wl.apply(this,arguments)}function Wl(){return Wl=n(l.mark((function t(e,r,n){var i,a,o,s,u,f;return l.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=r["a:blip"].attrs["r:embed"],"slideBg"===e||"slide"===e?o=Ml(n,["slideResObj",a,"target"]):"slideLayoutBg"===e?o=Ml(n,["layoutResObj",a,"target"]):"slideMasterBg"===e?o=Ml(n,["masterResObj",a,"target"]):"themeBg"===e?o=Ml(n,["themeResObj",a,"target"]):"diagramBg"===e&&(o=Ml(n,["diagramResObj",a,"target"])),o){t.next=4;break}return t.abrupt("return",o);case 4:if(i=Ml(n,["loaded-images",o])){t.next=15;break}if(o=Pl(o),"xml"!==(s=o.split(".").pop())){t.next=10;break}return t.abrupt("return",void 0);case 10:return t.next=12,n.zip.file(o).async("arraybuffer");case 12:u=t.sent,f=Bl(s),i="data:".concat(f,";base64,").concat(Ol(u));case 15:return t.abrupt("return",i);case 16:case"end":return t.stop()}}),t)}))),Wl.apply(this,arguments)}function Zl(t,e,r){return ql.apply(this,arguments)}function ql(){return(ql=n(l.mark((function t(e,r,n){var i,a,o,s;return l.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,Hl(r,e["a:blipFill"],n);case 2:return i=t.sent,a=e["a:blipFill"]["a:blip"],o=Ml(a,["a:alphaModFix","attrs"]),s=1,o&&o.amt&&""!==o.amt&&(s=parseInt(o.amt)/1e5),t.abrupt("return",{picBase64:i,opacity:s});case 8:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function Yl(t,e,r,n){if(t){for(var i=t["a:gradFill"],a=i["a:gsLst"]["a:gs"],o=[],s=0;s1e3&&(k=_-1e3,x=e.themeContent["a:theme"]["a:themeElements"]["a:fmtScheme"]["a:bgFillStyleLst"],S=[],Object.keys(x).forEach((function(t){var e=x[t];if("attrs"!==t)if(e.constructor===Array)for(var r=0;r1e3)){t.next=89;break}if(F=j-1e3,N=e.themeContent["a:theme"]["a:themeElements"]["a:fmtScheme"]["a:bgFillStyleLst"],U=[],Object.keys(N).forEach((function(t){var e=N[t];if("attrs"!==t)if(e.constructor===Array)for(var r=0;r1e3)){t.next=142;break}if(et=tt-1e3,rt=e.themeContent["a:theme"]["a:themeElements"]["a:fmtScheme"]["a:bgFillStyleLst"],nt=[],Object.keys(rt).forEach((function(t){var e=rt[t];if("attrs"!==t)if(e.constructor===Array)for(var r=0;r=360&&(i-=360),r?Ku({h:i,s:n.s,l:n.l,a:n.a}).toHex8():Ku({h:i,s:n.s,l:n.l,a:n.a}).toHex()}(s,y,b));var w=parseInt(Ml(i,["a:lumMod","attrs","val"]))/1e5;isNaN(w)||(s=function(t,e,r){var n=Ku(t).toHsl(),i=n.l*e;return i>=1&&(i=1),r?Ku({h:n.h,s:n.s,l:i,a:n.a}).toHex8():Ku({h:n.h,s:n.s,l:i,a:n.a}).toHex()}(s,w,b));var _=parseInt(Ml(i,["a:lumOff","attrs","val"]))/1e5;isNaN(_)||(s=function(t,e,r){var n=Ku(t).toHsl(),i=e+n.l;return i>=1?r?Ku({h:n.h,s:n.s,l:1,a:n.a}).toHex8():Ku({h:n.h,s:n.s,l:1,a:n.a}).toHex():r?Ku({h:n.h,s:n.s,l:i,a:n.a}).toHex8():Ku({h:n.h,s:n.s,l:i,a:n.a}).toHex()}(s,_,b));var k=parseInt(Ml(i,["a:satMod","attrs","val"]))/1e5;isNaN(k)||(s=function(t,e,r){var n=Ku(t).toHsl(),i=n.s*e;return i>=1&&(i=1),r?Ku({h:n.h,s:i,l:n.l,a:n.a}).toHex8():Ku({h:n.h,s:i,l:n.l,a:n.a}).toHex()}(s,k,b));var x=parseInt(Ml(i,["a:shade","attrs","val"]))/1e5;isNaN(x)||(s=function(t,e,r){var n=Ku(t).toHsl();e>=1&&(e=1);var i=Math.min(n.l*e,1);return r?Ku({h:n.h,s:n.s,l:i,a:n.a}).toHex8():Ku({h:n.h,s:n.s,l:i,a:n.a}).toHex()}(s,x,b));var S=parseInt(Ml(i,["a:tint","attrs","val"]))/1e5;return isNaN(S)||(s=function(t,e,r){var n=Ku(t).toHsl();e>=1&&(e=1);var i=n.l*e+(1-e);return r?Ku({h:n.h,s:n.s,l:i,a:n.a}).toHex8():Ku({h:n.h,s:n.s,l:i,a:n.a}).toHex()}(s,S,b)),s&&-1===s.indexOf("#")&&(s="#"+s),s}function $l(t){var e=[];if(!t)return e;if(t["c:xVal"]){var r=[];Ll(t["c:xVal"]["c:numRef"]["c:numCache"]["c:pt"],(function(t){return r.push(parseFloat(t["c:v"])),""})),e.push(r),r=[],Ll(t["c:yVal"]["c:numRef"]["c:numCache"]["c:pt"],(function(t){return r.push(parseFloat(t["c:v"])),""})),e.push(r)}else Ll(t,(function(t,r){var n=[],i=Ml(t,["c:tx","c:strRef","c:strCache","c:pt","c:v"])||r,a={};return Ml(t,["c:cat","c:strRef","c:strCache","c:pt"])?Ll(t["c:cat"]["c:strRef"]["c:strCache"]["c:pt"],(function(t){return a[t.attrs.idx]=t["c:v"],""})):Ml(t,["c:cat","c:numRef","c:numCache","c:pt"])&&Ll(t["c:cat"]["c:numRef"]["c:numCache"]["c:pt"],(function(t){return a[t.attrs.idx]=t["c:v"],""})),Ml(t,["c:val","c:numRef","c:numCache","c:pt"])&&Ll(t["c:val"]["c:numRef"]["c:numCache"]["c:pt"],(function(t){return n.push({x:t.attrs.idx,y:parseFloat(t["c:v"])}),""})),e.push({key:i,values:n,xlabels:a}),""}));return e}function Jl(t){var e=null;for(var r in t)switch(r){case"c:lineChart":e={type:"lineChart",data:$l(t[r]["c:ser"]),grouping:Ml(t[r],["c:grouping","attrs","val"]),marker:!!t[r]["c:marker"]};break;case"c:line3DChart":e={type:"line3DChart",data:$l(t[r]["c:ser"]),grouping:Ml(t[r],["c:grouping","attrs","val"])};break;case"c:barChart":e={type:"barChart",data:$l(t[r]["c:ser"]),grouping:Ml(t[r],["c:grouping","attrs","val"]),barDir:Ml(t[r],["c:barDir","attrs","val"])};break;case"c:bar3DChart":e={type:"bar3DChart",data:$l(t[r]["c:ser"]),grouping:Ml(t[r],["c:grouping","attrs","val"]),barDir:Ml(t[r],["c:barDir","attrs","val"])};break;case"c:pieChart":e={type:"pieChart",data:$l(t[r]["c:ser"])};break;case"c:pie3DChart":e={type:"pie3DChart",data:$l(t[r]["c:ser"])};break;case"c:doughnutChart":e={type:"doughnutChart",data:$l(t[r]["c:ser"]),holeSize:Ml(t[r],["c:holeSize","attrs","val"])};break;case"c:areaChart":e={type:"areaChart",data:$l(t[r]["c:ser"]),grouping:Ml(t[r],["c:grouping","attrs","val"])};break;case"c:area3DChart":e={type:"area3DChart",data:$l(t[r]["c:ser"]),grouping:Ml(t[r],["c:grouping","attrs","val"])};break;case"c:scatterChart":e={type:"scatterChart",data:$l(t[r]["c:ser"]),style:Ml(t[r],["c:scatterStyle","attrs","val"])};break;case"c:bubbleChart":e={type:"bubbleChart",data:$l(t[r]["c:ser"])};break;case"c:radarChart":e={type:"radarChart",data:$l(t[r]["c:ser"]),style:Ml(t[r],["c:radarStyle","attrs","val"])};break;case"c:surfaceChart":e={type:"surfaceChart",data:$l(t[r]["c:ser"])};break;case"c:surface3DChart":e={type:"surface3DChart",data:$l(t[r]["c:ser"])};break;case"c:stockChart":e={type:"stockChart",data:$l(t[r]["c:ser"])}}return e}function Ql(t,e,r,n){var i=Ml(t,["a:pPr","attrs","algn"]);if(i||(i=Ml(e,["a:pPr","attrs","algn"])),!i)if("title"===r||"ctrTitle"===r||"subTitle"===r){var a=1,o=Ml(e,["a:pPr","attrs","lvl"]);o&&(a=parseInt(o)+1);var s="a:lvl"+a+"pPr";(i=Ml(n,["slideLayoutTables","typeTable",r,"p:txBody","a:lstStyle",s,"attrs","algn"]))||(i=Ml(n,["slideMasterTables","typeTable",r,"p:txBody","a:lstStyle",s,"attrs","algn"])),i||(i=Ml(n,["slideMasterTextStyles","p:titleStyle",s,"attrs","algn"])),i||"subTitle"!==r||(i=Ml(n,["slideMasterTextStyles","p:bodyStyle",s,"attrs","algn"]))}else i=Ml(n,"body"===r?["slideMasterTextStyles","p:bodyStyle","a:lvl1pPr","attrs","algn"]:["slideMasterTables","typeTable",r,"p:txBody","a:lstStyle","a:lvl1pPr","attrs","algn"]);var u="left";if(i)switch(i){case"l":u="left";break;case"r":u="right";break;case"ctr":u="center";break;case"just":case"dist":u="justify";break;default:u="inherit"}return u}var tf=72/914400;function ef(t,e,r){var n;return t?n=t["a:off"].attrs:e?n=e["a:off"].attrs:r&&(n=r["a:off"].attrs),n?{top:parseInt(n.y)*tf,left:parseInt(n.x)*tf}:{top:0,left:0}}function rf(t,e,r){var n;return t?n=t["a:ext"].attrs:e?n=e["a:ext"].attrs:r&&(n=r["a:ext"].attrs),n?{width:parseInt(n.cx)*tf,height:parseInt(n.cy)*tf}:{width:0,height:0}}function nf(t,e){var r=Xl(t,void 0,void 0,e),n=t.attrs,i=n.dir?parseInt(n.dir)/6e4:0,a=parseInt(n.dist)*tf,o=n.blurRad?parseInt(n.blurRad)*tf:"",s=a*Math.sin(i*Math.PI/180);return{h:a*Math.cos(i*Math.PI/180),v:s,blur:o,color:r}}function af(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return of(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return of(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function of(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1&&p.shift(),(c=c.concat(p)).sort((function(t,e){return!t.attrs||!e.attrs||t.attrs.order-e.attrs.order}))));var g=Ql(h,e,n,i),b=uf(h);if(b?(l?l&&l!==b&&(o+=""),o+="<".concat(b,">"),l=b):(o+="<".concat(b,">"),l=b),o+='
  • ')):(l&&(o+=""),l=""),o+='

    ')),c){var v,m=af(c);try{for(m.s();!(v=m.n()).done;){o+=lf(v.value,h,t,s,r,n,i)}}catch(t){m.e(t)}finally{m.f()}}else o+=lf(h,e,t,s,r,n,i);o+=b?"

  • ":"

    "}}catch(t){f.e(t)}finally{f.f()}return o}function uf(t){var e=t["a:pPr"];return e?e["a:buChar"]?"ul":e["a:buAutoNum"]?"ol":"":""}function lf(t,e,r,n,i,a,o){var s=r["a:lstStyle"],u=o.slideMasterTextStyles,l=1,f=Ml(e["a:pPr"],["attrs","lvl"]);void 0!==f&&(l=parseInt(f)+1);var h=t["a:t"];"string"!=typeof h&&(h=Ml(t,["a:fld","a:t"])),"string"!=typeof h&&(h=" ");var c="",d=function(t,e,r,n,i,a){var o,s=Ml(t,["a:rPr"]);if(s&&"SOLID_FILL"===Ul(s)&&(o=Xl(s["a:solidFill"],void 0,void 0,a)),!o&&Ml(r,["a:lvl"+i+"pPr","a:defRPr"])){var u=Ml(r,["a:lvl"+i+"pPr","a:defRPr"]);"SOLID_FILL"===Ul(u)&&(o=Xl(u["a:solidFill"],void 0,void 0,a))}if(!o){var l=Ml(e,["p:style","a:fontRef"]);l&&(o=Xl(l,void 0,void 0,a)),!o&&n&&(o=Xl(n,void 0,void 0,a))}return o||""}(t,e,s,n,l,o),p=function(t,e,r,n){var i,a;if(Ml(t,["a:rPr","attrs","sz"])&&(i=Ml(t,["a:rPr","attrs","sz"])/100),isNaN(i)||!i){var o=Ml(e,["p:txBody","a:lstStyle","a:lvl1pPr","a:defRPr","attrs","sz"]);i=parseInt(o)/100}return!isNaN(i)&&i||("title"===r||"subTitle"===r||"ctrTitle"===r?a=Ml(n,["p:titleStyle","a:lvl1pPr","a:defRPr","attrs","sz"]):"body"===r?a=Ml(n,["p:bodyStyle","a:lvl1pPr","a:defRPr","attrs","sz"]):"dt"===r||"sldNum"===r?a="1200":r||(a=Ml(n,["p:otherStyle","a:lvl1pPr","a:defRPr","attrs","sz"])),a&&(i=parseInt(a)/100)),Ml(t,["a:rPr","attrs","baseline"])&&!isNaN(i)&&(i-=10),(i=isNaN(i)||!i?18:i)+"pt"}(t,i,a,u),g=function(t,e,r){var n=Ml(t,["a:rPr","a:latin","attrs","typeface"]);if(!n){var i=Ml(r.themeContent,["a:theme","a:themeElements","a:fontScheme"]);n=Ml(i,"title"===e||"subTitle"===e||"ctrTitle"===e?["a:majorFont","a:latin","attrs","typeface"]:["a:minorFont","a:latin","attrs","typeface"])}return n||""}(t,a,o),b=function(t){return"1"===Ml(t,["a:rPr","attrs","b"])?"bold":""}(t),v=function(t){return"1"===Ml(t,["a:rPr","attrs","i"])?"italic":""}(t),m=function(t){return"sng"===Ml(t,["a:rPr","attrs","u"])?"underline":""}(t),y=function(t){return"sngStrike"===Ml(t,["a:rPr","attrs","strike"])?"line-through":""}(t),w=function(t){var e=Ml(t,["a:rPr","attrs","spc"]);return e?parseInt(e)/100+"pt":""}(t),_=function(t,e){var r=Ml(t,["a:rPr","a:effectLst","a:outerShdw"]);if(r){var n=nf(r,e);if(n){var i=n.h,a=n.v,o=n.blur,s=n.color;if(!isNaN(a)&&!isNaN(i))return i+"pt "+a+"pt "+(o?o+"pt":"")+" "+s}}return""}(t,o),k=function(t){var e=Ml(t,["a:rPr","attrs","baseline"]);return e?parseInt(e)>0?"super":"sub":""}(t);d&&(c+="color: ".concat(d,";")),p&&(c+="font-size: ".concat(p,";")),g&&(c+="font-family: ".concat(g,";")),b&&(c+="font-weight: ".concat(b,";")),v&&(c+="font-style: ".concat(v,";")),m&&(c+="text-decoration: ".concat(m,";")),y&&(c+="text-decoration-line: ".concat(y,";")),w&&(c+="letter-spacing: ".concat(w,";")),k&&(c+="vertical-align: ".concat(k,";")),_&&(c+="text-shadow: ".concat(_,";"));var x=Ml(t,["a:rPr","a:hlinkClick","attrs","r:id"]);if(x){var S=o.slideResObj[x].target;return'').concat(h.replace(/\t/g,"    ").replace(/\s/g," "),"")}return'').concat(h.replace(/\t/g,"    ").replace(/\s/g," "),"")}function ff(t,e,r,n,i,a,o){var s,u=i;if(a>=i)for(;u<=a;){var l=u*(Math.PI/180),f=t+Math.cos(l)*r,h=e+Math.sin(l)*n;u===i&&(s=" M"+f+" "+h),s+=" L"+f+" "+h,u++}else for(;u>a;){var c=u*(Math.PI/180),d=t+Math.cos(c)*r,p=e+Math.sin(c)*n;u===i&&(s=" M "+d+" "+p),s+=" L "+d+" "+p,u--}return s+=o?" z":""}function hf(t,e,r,n){var i,a,o,s,u,l=Ml(t,["attrs","rowSpan"]),f=Ml(t,["attrs","gridSpan"]),h=Ml(t,["attrs","vMerge"]),c=Ml(t,["attrs","hMerge"]),d=Ml(t,["a:tcPr"]);d&&(i=Kl({"p:spPr":d},void 0,n));i||(r&&(s=Ml(e,[r,"a:tcStyle","a:fill","a:solidFill"])),s&&(i=Xl(s,void 0,void 0,n)));return r&&(u=Ml(e,[r,"a:tcTxStyle"])),u&&(a=Xl(u,void 0,void 0,n),"on"===Ml(u,["attrs","b"])&&(o=!0)),{fillColor:i,fontColor:a,fontBold:o,rowSpan:l?+l:void 0,colSpan:f?+f:void 0,vMerge:h?+h:void 0,hMerge:c?+c:void 0}}function cf(t,e,r,n,i){var a,o,s;if(n&&n["a:wholeTbl"]){var u=Ml(n,["a:wholeTbl","a:tcStyle","a:fill","a:solidFill"]);if(u){var l=Xl(u,void 0,void 0,i);l&&(a=l)}var f=Ml(n,["a:wholeTbl","a:tcTxStyle"]);if(f){var h=Xl(f,void 0,void 0,i);h&&(o=h),"on"===Ml(f,["attrs","b"])&&(s=!0)}}if(0===e&&1===r.isFrstRowAttr&&n){var c=Ml(n,["a:firstRow","a:tcStyle","a:fill","a:solidFill"]);if(c){var d=Xl(c,void 0,void 0,i);d&&(a=d)}var p=Ml(n,["a:firstRow","a:tcTxStyle"]);if(p){var g=Xl(p,void 0,void 0,i);g&&(o=g),"on"===Ml(p,["attrs","b"])&&(s=!0)}}else if(e>0&&1===r.isBandRowAttr&&n){if(a="",e%2==0&&n["a:band2H"]){var b=Ml(n,["a:band2H","a:tcStyle","a:fill","a:solidFill"]);if(b){var v=Xl(b,void 0,void 0,i);v&&(a=v)}var m=Ml(n,["a:band2H","a:tcTxStyle"]);if(m){var y=Xl(m,void 0,void 0,i);y&&(o=y)}"on"===Ml(m,["attrs","b"])&&(s=!0)}if(e%2!=0&&n["a:band1H"]){var w=Ml(n,["a:band1H","a:tcStyle","a:fill","a:solidFill"]);if(w){var _=Xl(w,void 0,void 0,i);_&&(a=_)}var k=Ml(n,["a:band1H","a:tcTxStyle"]);if(k){var x=Xl(k,void 0,void 0,i);x&&(o=x),"on"===Ml(k,["attrs","b"])&&(s=!0)}}}if(e===t.length-1&&1===r.isLstRowAttr&&n){var S=Ml(n,["a:lastRow","a:tcStyle","a:fill","a:solidFill"]);if(S){var C=Xl(S,void 0,void 0,i);C&&(a=C)}var A=Ml(n,["a:lastRow","a:tcTxStyle"]);if(A){var E=Xl(A,void 0,void 0,i);E&&(o=E),"on"===Ml(A,["attrs","b"])&&(s=!0)}}return{fillColor:a,fontColor:o,fontBold:s}}function df(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function pf(t){for(var r=1;r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function bf(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r0){if(Object.keys(f).forEach((function(t){var e=f[t]["a:pt"];e&&Object.keys(e).forEach((function(t){var r=e[t],n=r.x,i=r.y,a=r.order;g.push({type:"movto",x:n,y:i,order:a})}))})),h&&Object.keys(h).forEach((function(t){var e=h[t]["a:pt"];e&&Object.keys(e).forEach((function(t){var r=e[t],n=r.x,i=r.y,a=r.order;g.push({type:"lnto",x:n,y:i,order:a})}))})),c){var b=[];Array.isArray(c)||(c=[c]),Object.keys(c).forEach((function(t){b.push(c[t]["a:pt"])})),b.forEach((function(t){var e=[];t.forEach((function(t){var r={x:t.attrs.x,y:t.attrs.y};e.push(r)}));var r=t[0].attrs.order;g.push({type:"cubicBezTo",cubBzPt:e,order:r})}))}if(d){var v=d.attrs,m=v.order,y=v.hR,w=v.wR,_=v.stAng,k=v.swAng,x=0,S=0,C=Ml(d,["a:pt","attrs"]);C&&(x=C.x,S=C.y),g.push({type:"arcTo",hR:y,wR:w,stAng:_,swAng:k,shftX:x,shftY:S,order:m})}p&&(Array.isArray(p)||(p=[p]),Object.keys(p).forEach((function(){g.push({type:"close",order:1/0})}))),g.sort((function(t,e){return t.order-e.order}));for(var A=0;A0&&1===y.isBandColAttr&&(1!==y.isFrstColAttr||0!==T)&&(1!==y.isLstRowAttr||T!==R.length-1)&&j!==D.length-1&&j%2!=0){var U=Ml(r,["a:band2V"]);void 0===U?(U=Ml(r,["a:band1V"]))&&(N="a:band2V"):N="a:band2V"}j===D.length-1&&1===y.isLstColAttr&&(N="a:lastCol",1===y.isLstRowAttr&&T===R.length-1&&Ml(r,["a:swCell"])?N="a:swCell":1===y.isFrstRowAttr&&0===T&&Ml(r,["a:nwCell"])&&(N="a:nwCell"));var H=sf(F["a:txBody"],F,void 0,void 0,e),W=hf(F,r,N,e),Z={text:H};W.rowSpan&&(Z.rowSpan=W.rowSpan),W.colSpan&&(Z.colSpan=W.colSpan),W.vMerge&&(Z.vMerge=W.vMerge),W.hMerge&&(Z.hMerge=W.hMerge),(W.fontBold||B)&&(Z.fontBold=W.fontBold||B),(W.fontColor||P)&&(Z.fontColor=W.fontColor||P),(W.fillColor||I||A)&&(Z.fillColor=W.fillColor||I||A),z.push(Z)}else{var q=void 0;if(1===y.isFrstColAttr&&1!==y.isLstRowAttr)q="a:firstCol";else if(1===y.isBandColAttr&&1!==y.isLstRowAttr){var Y=Ml(r,["a:band2V"]);(Y||(Y=Ml(r,["a:band1V"])))&&(q="a:band2V")}1===y.isLstColAttr&&1!==y.isLstRowAttr&&(q="a:lastCol");var G=sf(D["a:txBody"],D,void 0,void 0,e),V=hf(D,r,q,e),K={text:G};V.rowSpan&&(K.rowSpan=V.rowSpan),V.colSpan&&(K.colSpan=V.colSpan),V.vMerge&&(K.vMerge=V.vMerge),V.hMerge&&(K.hMerge=V.hMerge),(V.fontBold||B)&&(K.fontBold=V.fontBold||B),(V.fontColor||P)&&(K.fontColor=V.fontColor||P),(V.fillColor||I||A)&&(K.fillColor=V.fillColor||I||A),z.push(K)}O.push(z)}return pf({type:"table",top:s,left:u,width:f,height:h,data:O},n||{})}function Ff(t,e){return Nf.apply(this,arguments)}function Nf(){return Nf=n(l.mark((function t(e,r){var n,i,a,o,s,u,f,h,c,d,p,g,b;return l.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=Ml(e,["p:xfrm"]),i=ef(n,void 0,void 0),a=i.top,o=i.left,s=rf(n,void 0,void 0),u=s.width,f=s.height,h=e["a:graphic"]["a:graphicData"]["c:chart"].attrs["r:id"],c=r.slideResObj[h].target,t.next=7,Zu(r.zip,c);case 7:if(d=t.sent,p=Ml(d,["c:chartSpace","c:chart","c:plotArea"]),g=Jl(p)){t.next=12;break}return t.abrupt("return",{});case 12:return b={type:"chart",top:a,left:o,width:u,height:f,data:g.data,chartType:g.type},void 0!==g.marker&&(b.marker=g.marker),void 0!==g.barDir&&(b.barDir=g.barDir),void 0!==g.holeSize&&(b.holeSize=g.holeSize),void 0!==g.grouping&&(b.grouping=g.grouping),void 0!==g.style&&(b.style=g.style),t.abrupt("return",b);case 19:case"end":return t.stop()}}),t)}))),Nf.apply(this,arguments)}function Uf(t,e){var r=Ml(t,["p:xfrm"]),n=ef(r,void 0,void 0),i=n.left,a=n.top,o=rf(r,void 0,void 0),s=o.width,u=o.height,l=Ml(e.digramFileContent,["p:drawing","p:spTree","p:sp"]),f=[];if(l){var h,c=gf(l);try{for(c.s();!(h=c.n()).done;){var d=Lf(h.value,e,"diagramBg");d&&f.push(d)}}catch(t){c.e(t)}finally{c.f()}}return{type:"diagram",left:i,top:a,width:s,height:u,elements:f}}t.parse=function(t){return vf.apply(this,arguments)}})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).pptxtojson={})}(this,(function(t){"use strict";function e(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function r(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function n(t){return function(){var e=this,n=arguments;return new Promise((function(i,a){var o=t.apply(e,n);function s(t){r(o,i,a,s,u,"next",t)}function u(t){r(o,i,a,s,u,"throw",t)}s(void 0)}))}}var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function a(t){var e=t.default;if("function"==typeof e){var r=function(){return e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach((function(e){var n=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(r,e,n.get?n:{enumerable:!0,get:function(){return t[e]}})})),r}var o={exports:{}},s={exports:{}};!function(t){function e(r){return t.exports=e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,e(r)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports}(s),function(t){var e=s.exports.default;function r(){t.exports=r=function(){return n},t.exports.__esModule=!0,t.exports.default=t.exports;var n={},i=Object.prototype,a=i.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},s="function"==typeof Symbol?Symbol:{},u=s.iterator||"@@iterator",l=s.asyncIterator||"@@asyncIterator",f=s.toStringTag||"@@toStringTag";function h(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{h({},"")}catch(t){h=function(t,e,r){return t[e]=r}}function c(t,e,r,n){var i=e&&e.prototype instanceof g?e:g,a=Object.create(i.prototype),s=new R(n||[]);return o(a,"_invoke",{value:S(t,r,s)}),a}function d(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}n.wrap=c;var p={};function g(){}function b(){}function v(){}var m={};h(m,u,(function(){return this}));var y=Object.getPrototypeOf,w=y&&y(y(O([])));w&&w!==i&&a.call(w,u)&&(m=w);var _=v.prototype=g.prototype=Object.create(m);function k(t){["next","throw","return"].forEach((function(e){h(t,e,(function(t){return this._invoke(e,t)}))}))}function x(t,r){function n(i,o,s,u){var l=d(t[i],t,o);if("throw"!==l.type){var f=l.arg,h=f.value;return h&&"object"==e(h)&&a.call(h,"__await")?r.resolve(h.__await).then((function(t){n("next",t,s,u)}),(function(t){n("throw",t,s,u)})):r.resolve(h).then((function(t){f.value=t,s(f)}),(function(t){return n("throw",t,s,u)}))}u(l.arg)}var i;o(this,"_invoke",{value:function(t,e){function a(){return new r((function(r,i){n(t,e,r,i)}))}return i=i?i.then(a,a):a()}})}function S(t,e,r){var n="suspendedStart";return function(i,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===i)throw a;return T()}for(r.method=i,r.arg=a;;){var o=r.delegate;if(o){var s=C(o,r);if(s){if(s===p)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var u=d(t,e,r);if("normal"===u.type){if(n=r.done?"completed":"suspendedYield",u.arg===p)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n="completed",r.method="throw",r.arg=u.arg)}}}function C(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,C(t,e),"throw"===e.method))return p;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var n=d(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,p;var i=n.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,p):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,p)}function A(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function E(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function R(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(A,this),this.reset(!0)}function O(t){if(t){var e=t[u];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,n=function e(){for(;++r=0;--n){var i=this.tryEntries[n],o=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var s=a.call(i,"catchLoc"),u=a.call(i,"finallyLoc");if(s&&u){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&a.call(n,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;E(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:O(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),p}},n}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}(o);var u=o.exports(),l=u;try{regeneratorRuntime=u}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=u:Function("r","regeneratorRuntime = r")(u)}var f={},h={},c="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},d=[],p=[],g="undefined"!=typeof Uint8Array?Uint8Array:Array,b=!1;function v(){b=!0;for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e=0,r=t.length;e>18&63]+d[i>>12&63]+d[i>>6&63]+d[63&i]);return a.join("")}function y(t){var e;b||v();for(var r=t.length,n=r%3,i="",a=[],o=16383,s=0,u=r-n;su?u:s+o));return 1===n?(e=t[r-1],i+=d[e>>2],i+=d[e<<4&63],i+="=="):2===n&&(e=(t[r-2]<<8)+t[r-1],i+=d[e>>10],i+=d[e>>4&63],i+=d[e<<2&63],i+="="),a.push(i),a.join("")}function w(t,e,r,n,i){var a,o,s=8*i-n-1,u=(1<>1,f=-7,h=r?i-1:0,c=r?-1:1,d=t[e+h];for(h+=c,a=d&(1<<-f)-1,d>>=-f,f+=s;f>0;a=256*a+t[e+h],h+=c,f-=8);for(o=a&(1<<-f)-1,a>>=-f,f+=n;f>0;o=256*o+t[e+h],h+=c,f-=8);if(0===a)a=1-l;else{if(a===u)return o?NaN:1/0*(d?-1:1);o+=Math.pow(2,n),a-=l}return(d?-1:1)*o*Math.pow(2,a-n)}function _(t,e,r,n,i,a){var o,s,u,l=8*a-i-1,f=(1<>1,c=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:a-1,p=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=f):(o=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-o))<1&&(o--,u*=2),(e+=o+h>=1?c/u:c*Math.pow(2,1-h))*u>=2&&(o++,u/=2),o+h>=f?(s=0,o=f):o+h>=1?(s=(e*u-1)*Math.pow(2,i),o+=h):(s=e*Math.pow(2,h-1)*Math.pow(2,i),o=0));i>=8;t[r+d]=255&s,d+=p,s/=256,i-=8);for(o=o<0;t[r+d]=255&o,d+=p,o/=256,l-=8);t[r+d-p]|=128*g}var k={}.toString,x=Array.isArray||function(t){return"[object Array]"==k.call(t)};E.TYPED_ARRAY_SUPPORT=void 0===c.TYPED_ARRAY_SUPPORT||c.TYPED_ARRAY_SUPPORT;var S=C();function C(){return E.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function A(t,e){if(C()=C())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+C().toString(16)+" bytes");return 0|t}function I(t){return!(null==t||!t._isBuffer)}function P(t,e){if(I(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return st(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return ut(t).length;default:if(n)return st(t).length;e=(""+e).toLowerCase(),n=!0}}function B(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return X(this,e,r);case"utf8":case"utf-8":return Y(this,e,r);case"ascii":return V(this,e,r);case"latin1":case"binary":return K(this,e,r);case"base64":return q(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return $(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function D(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function z(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=E.from(e,n)),I(e))return 0===e.length?-1:j(t,e,r,n,i);if("number"==typeof e)return e&=255,E.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):j(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function j(t,e,r,n,i){var a,o=1,s=t.length,u=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;o=2,s/=2,u/=2,r/=2}function l(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(i){var f=-1;for(a=r;as&&(r=s-u),a=r;a>=0;a--){for(var h=!0,c=0;ci&&(n=i):n=i;var a=e.length;if(a%2!=0)throw new TypeError("Invalid hex string");n>a/2&&(n=a/2);for(var o=0;o>8,i=r%256,a.push(i),a.push(n);return a}(e,t.length-r),t,r,n)}function q(t,e,r){return 0===e&&r===t.length?y(t):y(t.slice(e,r))}function Y(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:l>223?3:l>191?2:1;if(i+h<=r)switch(h){case 1:l<128&&(f=l);break;case 2:128==(192&(a=t[i+1]))&&(u=(31&l)<<6|63&a)>127&&(f=u);break;case 3:a=t[i+1],o=t[i+2],128==(192&a)&&128==(192&o)&&(u=(15&l)<<12|(63&a)<<6|63&o)>2047&&(u<55296||u>57343)&&(f=u);break;case 4:a=t[i+1],o=t[i+2],s=t[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(u=(15&l)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&u<1114112&&(f=u)}null===f?(f=65533,h=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),i+=h}return function(t){var e=t.length;if(e<=G)return String.fromCharCode.apply(String,t);var r="",n=0;for(;n0&&(t=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(t+=" ... ")),""},E.prototype.compare=function(t,e,r,n,i){if(!I(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var a=(i>>>=0)-(n>>>=0),o=(r>>>=0)-(e>>>=0),s=Math.min(a,o),u=this.slice(n,i),l=t.slice(e,r),f=0;fi)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return F(this,t,e,r);case"utf8":case"utf-8":return N(this,t,e,r);case"ascii":return U(this,t,e,r);case"latin1":case"binary":return H(this,t,e,r);case"base64":return W(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Z(this,t,e,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},E.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var G=4096;function V(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",a=e;ar)throw new RangeError("Trying to access beyond buffer length")}function Q(t,e,r,n,i,a){if(!I(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function tt(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,a=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function et(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,a=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function rt(t,e,r,n,i,a){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function nt(t,e,r,n,i){return i||rt(t,0,r,4),_(t,e,r,n,23,4),r+4}function it(t,e,r,n,i){return i||rt(t,0,r,8),_(t,e,r,n,52,8),r+8}E.prototype.slice=function(t,e){var r,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e0&&(i*=256);)n+=this[t+--e]*i;return n},E.prototype.readUInt8=function(t,e){return e||J(t,1,this.length),this[t]},E.prototype.readUInt16LE=function(t,e){return e||J(t,2,this.length),this[t]|this[t+1]<<8},E.prototype.readUInt16BE=function(t,e){return e||J(t,2,this.length),this[t]<<8|this[t+1]},E.prototype.readUInt32LE=function(t,e){return e||J(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},E.prototype.readUInt32BE=function(t,e){return e||J(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},E.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||J(t,e,this.length);for(var n=this[t],i=1,a=0;++a=(i*=128)&&(n-=Math.pow(2,8*e)),n},E.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||J(t,e,this.length);for(var n=e,i=1,a=this[t+--n];n>0&&(i*=256);)a+=this[t+--n]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*e)),a},E.prototype.readInt8=function(t,e){return e||J(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},E.prototype.readInt16LE=function(t,e){e||J(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},E.prototype.readInt16BE=function(t,e){e||J(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},E.prototype.readInt32LE=function(t,e){return e||J(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},E.prototype.readInt32BE=function(t,e){return e||J(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},E.prototype.readFloatLE=function(t,e){return e||J(t,4,this.length),w(this,t,!0,23,4)},E.prototype.readFloatBE=function(t,e){return e||J(t,4,this.length),w(this,t,!1,23,4)},E.prototype.readDoubleLE=function(t,e){return e||J(t,8,this.length),w(this,t,!0,52,8)},E.prototype.readDoubleBE=function(t,e){return e||J(t,8,this.length),w(this,t,!1,52,8)},E.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e|=0,r|=0,n)||Q(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[e]=255&t;++a=0&&(a*=256);)this[e+i]=t/a&255;return e+r},E.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||Q(this,t,e,1,255,0),E.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},E.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||Q(this,t,e,2,65535,0),E.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):tt(this,t,e,!0),e+2},E.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||Q(this,t,e,2,65535,0),E.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):tt(this,t,e,!1),e+2},E.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||Q(this,t,e,4,4294967295,0),E.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):et(this,t,e,!0),e+4},E.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||Q(this,t,e,4,4294967295,0),E.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):et(this,t,e,!1),e+4},E.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);Q(this,t,e,r,i-1,-i)}var a=0,o=1,s=0;for(this[e]=255&t;++a>0)-s&255;return e+r},E.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);Q(this,t,e,r,i-1,-i)}var a=r-1,o=1,s=0;for(this[e+a]=255&t;--a>=0&&(o*=256);)t<0&&0===s&&0!==this[e+a+1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},E.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||Q(this,t,e,1,127,-128),E.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},E.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||Q(this,t,e,2,32767,-32768),E.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):tt(this,t,e,!0),e+2},E.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||Q(this,t,e,2,32767,-32768),E.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):tt(this,t,e,!1),e+2},E.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||Q(this,t,e,4,2147483647,-2147483648),E.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):et(this,t,e,!0),e+4},E.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||Q(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),E.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):et(this,t,e,!1),e+4},E.prototype.writeFloatLE=function(t,e,r){return nt(this,t,e,!0,r)},E.prototype.writeFloatBE=function(t,e,r){return nt(this,t,e,!1,r)},E.prototype.writeDoubleLE=function(t,e,r){return it(this,t,e,!0,r)},E.prototype.writeDoubleBE=function(t,e,r){return it(this,t,e,!1,r)},E.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else if(a<1e3||!E.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(a=e;a55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&a.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function ut(t){return function(t){var e,r,n,i,a,o;b||v();var s=t.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");a="="===t[s-2]?2:"="===t[s-1]?1:0,o=new g(3*s/4-a),n=a>0?s-4:s;var u=0;for(e=0,r=0;e>16&255,o[u++]=i>>8&255,o[u++]=255&i;return 2===a?(i=p[t.charCodeAt(e)]<<2|p[t.charCodeAt(e+1)]>>4,o[u++]=255&i):1===a&&(i=p[t.charCodeAt(e)]<<10|p[t.charCodeAt(e+1)]<<4|p[t.charCodeAt(e+2)]>>2,o[u++]=i>>8&255,o[u++]=255&i),o}(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(at,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function lt(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function ft(t){return null!=t&&(!!t._isBuffer||ht(t)||function(t){return"function"==typeof t.readFloatLE&&"function"==typeof t.slice&&ht(t.slice(0,0))}(t))}function ht(t){return!!t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}var ct=Object.freeze({__proto__:null,INSPECT_MAX_BYTES:50,kMaxLength:S,Buffer:E,SlowBuffer:function(t){return+t!=t&&(t=0),E.alloc(+t)},isBuffer:ft}),dt={};function pt(){throw new Error("setTimeout has not been defined")}function gt(){throw new Error("clearTimeout has not been defined")}var bt=pt,vt=gt;function mt(t){if(bt===setTimeout)return setTimeout(t,0);if((bt===pt||!bt)&&setTimeout)return bt=setTimeout,setTimeout(t,0);try{return bt(t,0)}catch(e){try{return bt.call(null,t,0)}catch(e){return bt.call(this,t,0)}}}"function"==typeof c.setTimeout&&(bt=setTimeout),"function"==typeof c.clearTimeout&&(vt=clearTimeout);var yt,wt=[],_t=!1,kt=-1;function xt(){_t&&yt&&(_t=!1,yt.length?wt=yt.concat(wt):kt=-1,wt.length&&St())}function St(){if(!_t){var t=mt(xt);_t=!0;for(var e=wt.length;e;){for(yt=wt,wt=[];++kt1)for(var r=1;r0&&o.length>i){o.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+e+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=t,u.type=e,u.count=o.length,s=u,"function"==typeof console.warn?console.warn(s):console.log(s)}}else o=a[e]=r,++t._eventsCount;return t}function Kt(t,e,r){var n=!1;function i(){t.removeListener(e,i),n||(n=!0,r.apply(t,arguments))}return i.listener=r,i}function Xt(t){var e=this._events;if(e){var r=e[t];if("function"==typeof r)return 1;if(r)return r.length}return 0}function $t(t,e){for(var r=new Array(e);e--;)r[e]=t[e];return r}Nt.prototype=Object.create(null),Ut.EventEmitter=Ut,Ut.usingDomains=!1,Ut.prototype.domain=void 0,Ut.prototype._events=void 0,Ut.prototype._maxListeners=void 0,Ut.defaultMaxListeners=10,Ut.init=function(){this.domain=null,Ut.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new Nt,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Ut.prototype.setMaxListeners=function(t){if("number"!=typeof t||t<0||isNaN(t))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=t,this},Ut.prototype.getMaxListeners=function(){return Ht(this)},Ut.prototype.emit=function(t){var e,r,n,i,a,o,s,u="error"===t;if(o=this._events)u=u&&null==o.error;else if(!u)return!1;if(s=this.domain,u){if(e=arguments[1],!s){if(e instanceof Error)throw e;var l=new Error('Uncaught, unspecified "error" event. ('+e+")");throw l.context=e,l}return e||(e=new Error('Uncaught, unspecified "error" event')),e.domainEmitter=this,e.domain=s,e.domainThrown=!1,s.emit("error",e),!1}if(!(r=o[t]))return!1;var f="function"==typeof r;switch(n=arguments.length){case 1:Wt(r,f,this);break;case 2:Zt(r,f,this,arguments[1]);break;case 3:qt(r,f,this,arguments[1],arguments[2]);break;case 4:Yt(r,f,this,arguments[1],arguments[2],arguments[3]);break;default:for(i=new Array(n-1),a=1;a0;)if(r[a]===e||r[a].listener&&r[a].listener===e){o=r[a].listener,i=a;break}if(i<0)return this;if(1===r.length){if(r[0]=void 0,0==--this._eventsCount)return this._events=new Nt,this;delete n[t]}else!function(t,e){for(var r=e,n=r+1,i=t.length;n0?Reflect.ownKeys(this._events):[]};var Jt=Object.freeze({__proto__:null,default:Ut,EventEmitter:Ut}),Qt="function"==typeof Object.create?function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:function(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t},te=/%[sdj%]/g;function ee(t){if(!ve(t)){for(var e=[],r=0;r=i)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}})),o=n[r];r=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),de(e)?r.showHidden=e:e&&Me(r,e),ye(r.showHidden)&&(r.showHidden=!1),ye(r.depth)&&(r.depth=2),ye(r.colors)&&(r.colors=!1),ye(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=se),le(r,t,r.depth)}function se(t,e){var r=oe.styles[e];return r?"["+oe.colors[r][0]+"m"+t+"["+oe.colors[r][1]+"m":t}function ue(t,e){return t}function le(t,e,r){if(t.customInspect&&e&&Se(e.inspect)&&e.inspect!==oe&&(!e.constructor||e.constructor.prototype!==e)){var n=e.inspect(r,t);return ve(n)||(n=le(t,n,r)),n}var i=function(t,e){if(ye(e))return t.stylize("undefined","undefined");if(ve(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}if(be(e))return t.stylize(""+e,"number");if(de(e))return t.stylize(""+e,"boolean");if(pe(e))return t.stylize("null","null")}(t,e);if(i)return i;var a=Object.keys(e),o=function(t){var e={};return t.forEach((function(t,r){e[t]=!0})),e}(a);if(t.showHidden&&(a=Object.getOwnPropertyNames(e)),xe(e)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return fe(e);if(0===a.length){if(Se(e)){var s=e.name?": "+e.name:"";return t.stylize("[Function"+s+"]","special")}if(we(e))return t.stylize(RegExp.prototype.toString.call(e),"regexp");if(ke(e))return t.stylize(Date.prototype.toString.call(e),"date");if(xe(e))return fe(e)}var u,l="",f=!1,h=["{","}"];(ce(e)&&(f=!0,h=["[","]"]),Se(e))&&(l=" [Function"+(e.name?": "+e.name:"")+"]");return we(e)&&(l=" "+RegExp.prototype.toString.call(e)),ke(e)&&(l=" "+Date.prototype.toUTCString.call(e)),xe(e)&&(l=" "+fe(e)),0!==a.length||f&&0!=e.length?r<0?we(e)?t.stylize(RegExp.prototype.toString.call(e),"regexp"):t.stylize("[Object]","special"):(t.seen.push(e),u=f?function(t,e,r,n,i){for(var a=[],o=0,s=e.length;o60)return r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1];return r[0]+e+" "+t.join(", ")+" "+r[1]}(u,l,h)):h[0]+l+h[1]}function fe(t){return"["+Error.prototype.toString.call(t)+"]"}function he(t,e,r,n,i,a){var o,s,u;if((u=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?s=u.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):u.set&&(s=t.stylize("[Setter]","special")),Ie(n,i)||(o="["+i+"]"),s||(t.seen.indexOf(u.value)<0?(s=pe(r)?le(t,u.value,null):le(t,u.value,r-1)).indexOf("\n")>-1&&(s=a?s.split("\n").map((function(t){return" "+t})).join("\n").substr(2):"\n"+s.split("\n").map((function(t){return" "+t})).join("\n")):s=t.stylize("[Circular]","special")),ye(o)){if(a&&i.match(/^\d+$/))return s;(o=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=t.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=t.stylize(o,"string"))}return o+": "+s}function ce(t){return Array.isArray(t)}function de(t){return"boolean"==typeof t}function pe(t){return null===t}function ge(t){return null==t}function be(t){return"number"==typeof t}function ve(t){return"string"==typeof t}function me(t){return"symbol"==typeof t}function ye(t){return void 0===t}function we(t){return _e(t)&&"[object RegExp]"===Ee(t)}function _e(t){return"object"==typeof t&&null!==t}function ke(t){return _e(t)&&"[object Date]"===Ee(t)}function xe(t){return _e(t)&&("[object Error]"===Ee(t)||t instanceof Error)}function Se(t){return"function"==typeof t}function Ce(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t}function Ae(t){return ft(t)}function Ee(t){return Object.prototype.toString.call(t)}function Re(t){return t<10?"0"+t.toString(10):t.toString(10)}oe.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},oe.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};var Oe=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Te(){var t=new Date,e=[Re(t.getHours()),Re(t.getMinutes()),Re(t.getSeconds())].join(":");return[t.getDate(),Oe[t.getMonth()],e].join(" ")}function Le(){console.log("%s - %s",Te(),ee.apply(null,arguments))}function Me(t,e){if(!e||!_e(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t}function Ie(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var Pe={inherits:Qt,_extend:Me,log:Le,isBuffer:Ae,isPrimitive:Ce,isFunction:Se,isError:xe,isDate:ke,isObject:_e,isRegExp:we,isUndefined:ye,isSymbol:me,isString:ve,isNumber:be,isNullOrUndefined:ge,isNull:pe,isBoolean:de,isArray:ce,inspect:oe,deprecate:re,format:ee,debuglog:ae},Be=Object.freeze({__proto__:null,format:ee,deprecate:re,debuglog:ae,inspect:oe,isArray:ce,isBoolean:de,isNull:pe,isNullOrUndefined:ge,isNumber:be,isString:ve,isSymbol:me,isUndefined:ye,isRegExp:we,isObject:_e,isDate:ke,isError:xe,isFunction:Se,isPrimitive:Ce,isBuffer:Ae,log:Le,inherits:Qt,_extend:Me,default:Pe});function De(){this.head=null,this.tail=null,this.length=0}De.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},De.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},De.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},De.prototype.clear=function(){this.head=this.tail=null,this.length=0},De.prototype.join=function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r},De.prototype.concat=function(t){if(0===this.length)return E.alloc(0);if(1===this.length)return this.head.data;for(var e=E.allocUnsafe(t>>>0),r=this.head,n=0;r;)r.data.copy(e,n),n+=r.data.length,r=r.next;return e};var ze=E.isEncoding||function(t){switch(t&&t.toLowerCase()){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":return!0;default:return!1}};function je(t){switch(this.encoding=(t||"utf8").toLowerCase().replace(/[-_]/,""),function(t){if(t&&!ze(t))throw new Error("Unknown encoding: "+t)}(t),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=Ne;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=Ue;break;default:return void(this.write=Fe)}this.charBuffer=new E(6),this.charReceived=0,this.charLength=0}function Fe(t){return t.toString(this.encoding)}function Ne(t){this.charReceived=t.length%2,this.charLength=this.charReceived?2:0}function Ue(t){this.charReceived=t.length%3,this.charLength=this.charReceived?3:0}je.prototype.write=function(t){for(var e="";this.charLength;){var r=t.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:t.length;if(t.copy(this.charBuffer,this.charReceived,0,r),this.charReceived+=r,this.charReceived=55296&&i<=56319)){if(this.charReceived=this.charLength=0,0===t.length)return e;break}this.charLength+=this.surrogateSize,e=""}this.detectIncompleteChar(t);var n=t.length;this.charLength&&(t.copy(this.charBuffer,0,t.length-this.charReceived,n),n-=this.charReceived);var i;n=(e+=t.toString(this.encoding,0,n)).length-1;if((i=e.charCodeAt(n))>=55296&&i<=56319){var a=this.surrogateSize;return this.charLength+=a,this.charReceived+=a,this.charBuffer.copy(this.charBuffer,a,0,a),t.copy(this.charBuffer,0,0,a),e.substring(0,n)}return e},je.prototype.detectIncompleteChar=function(t){for(var e=t.length>=3?3:t.length;e>0;e--){var r=t[t.length-e];if(1==e&&r>>5==6){this.charLength=2;break}if(e<=2&&r>>4==14){this.charLength=3;break}if(e<=3&&r>>3==30){this.charLength=4;break}}this.charReceived=e},je.prototype.end=function(t){var e="";if(t&&t.length&&(e=this.write(t)),this.charReceived){var r=this.charReceived,n=this.charBuffer,i=this.encoding;e+=n.slice(0,r).toString(i)}return e},Ze.ReadableState=We;var He=ae("stream");function We(t,e){t=t||{},this.objectMode=!!t.objectMode,e instanceof mr&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var r=t.highWaterMark,n=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:n,this.highWaterMark=~~this.highWaterMark,this.buffer=new De,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(this.decoder=new je(t.encoding),this.encoding=t.encoding)}function Ze(t){if(!(this instanceof Ze))return new Ze(t);this._readableState=new We(t,this),this.readable=!0,t&&"function"==typeof t.read&&(this._read=t.read),Ut.call(this)}function qe(t,e,r,n,i){var a=function(t,e){var r=null;ft(e)||"string"==typeof e||null==e||t.objectMode||(r=new TypeError("Invalid non-string/buffer chunk"));return r}(e,r);if(a)t.emit("error",a);else if(null===r)e.reading=!1,function(t,e){if(e.ended)return;if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,Ve(t)}(t,e);else if(e.objectMode||r&&r.length>0)if(e.ended&&!i){var o=new Error("stream.push() after EOF");t.emit("error",o)}else if(e.endEmitted&&i){var s=new Error("stream.unshift() after end event");t.emit("error",s)}else{var u;!e.decoder||i||n||(r=e.decoder.write(r),u=!e.objectMode&&0===r.length),i||(e.reading=!1),u||(e.flowing&&0===e.length&&!e.sync?(t.emit("data",r),t.read(0)):(e.length+=e.objectMode?1:r.length,i?e.buffer.unshift(r):e.buffer.push(r),e.needReadable&&Ve(t))),function(t,e){e.readingMore||(e.readingMore=!0,Ct(Xe,t,e))}(t,e)}else i||(e.reading=!1);return function(t){return!t.ended&&(t.needReadable||t.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=Ye?t=Ye:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function Ve(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(He("emitReadable",e.flowing),e.emittedReadable=!0,e.sync?Ct(Ke,t):Ke(t))}function Ke(t){He("emit readable"),t.emit("readable"),Qe(t)}function Xe(t,e){for(var r=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):r=function(t,e,r){var n;ta.length?a.length:t;if(o===a.length?i+=a:i+=a.slice(0,t),0===(t-=o)){o===a.length?(++n,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=a.slice(o));break}++n}return e.length-=n,i}(t,e):function(t,e){var r=E.allocUnsafe(t),n=e.head,i=1;n.data.copy(r),t-=n.data.length;for(;n=n.next;){var a=n.data,o=t>a.length?a.length:t;if(a.copy(r,r.length-t,0,o),0===(t-=o)){o===a.length?(++i,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=a.slice(o));break}++i}return e.length-=i,r}(t,e);return n}(t,e.buffer,e.decoder),r);var r}function er(t){var e=t._readableState;if(e.length>0)throw new Error('"endReadable()" called on non-empty stream');e.endEmitted||(e.ended=!0,Ct(rr,e,t))}function rr(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function nr(t,e){for(var r=0,n=t.length;r=e.highWaterMark||e.ended))return He("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?er(this):Ve(this),null;if(0===(t=Ge(t,e))&&e.ended)return 0===e.length&&er(this),null;var n,i=e.needReadable;return He("need readable",i),(0===e.length||e.length-t0?tr(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&er(this)),null!==n&&this.emit("data",n),n},Ze.prototype._read=function(t){this.emit("error",new Error("not implemented"))},Ze.prototype.pipe=function(t,e){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=t;break;case 1:n.pipes=[n.pipes,t];break;default:n.pipes.push(t)}n.pipesCount+=1,He("pipe count=%d opts=%j",n.pipesCount,e);var i=!e||!1!==e.end?o:l;function a(t){He("onunpipe"),t===r&&l()}function o(){He("onend"),t.end()}n.endEmitted?Ct(i):r.once("end",i),t.on("unpipe",a);var s=function(t){return function(){var e=t._readableState;He("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&t.listeners("data").length&&(e.flowing=!0,Qe(t))}}(r);t.on("drain",s);var u=!1;function l(){He("cleanup"),t.removeListener("close",d),t.removeListener("finish",p),t.removeListener("drain",s),t.removeListener("error",c),t.removeListener("unpipe",a),r.removeListener("end",o),r.removeListener("end",l),r.removeListener("data",h),u=!0,!n.awaitDrain||t._writableState&&!t._writableState.needDrain||s()}var f=!1;function h(e){He("ondata"),f=!1,!1!==t.write(e)||f||((1===n.pipesCount&&n.pipes===t||n.pipesCount>1&&-1!==nr(n.pipes,t))&&!u&&(He("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,f=!0),r.pause())}function c(e){var r;He("onerror",e),g(),t.removeListener("error",c),0===(r="error",t.listeners(r).length)&&t.emit("error",e)}function d(){t.removeListener("finish",p),g()}function p(){He("onfinish"),t.removeListener("close",d),g()}function g(){He("unpipe"),r.unpipe(t)}return r.on("data",h),function(t,e,r){if("function"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,"error",c),t.once("close",d),t.once("finish",p),t.emit("pipe",r),n.flowing||(He("pipe resume"),r.resume()),t},Ze.prototype.unpipe=function(t){var e=this._readableState;if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this)),this;if(!t){var r=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var i=0;i-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},sr.prototype._write=function(t,e,r){r(new Error("not implemented"))},sr.prototype._writev=null,sr.prototype.end=function(t,e,r){var n=this._writableState;"function"==typeof t?(r=t,t=null,e=null):"function"==typeof e&&(r=e,e=null),null!=t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(t,e,r){e.ending=!0,dr(t,e),r&&(e.finished?Ct(r):t.once("finish",r));e.ended=!0,t.writable=!1}(this,n,r)},Qt(mr,Ze);for(var gr=Object.keys(sr.prototype),br=0;br0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r},t.prototype.concat=function(t){if(0===this.length)return e.alloc(0);if(1===this.length)return this.head.data;for(var r,n,i,a=e.allocUnsafe(t>>>0),o=this.head,s=0;o;)r=o.data,n=a,i=s,r.copy(n,i),s+=o.data.length,o=o.next;return a},t}(),r&&r.inspect&&r.inspect.custom&&(t.exports.prototype[r.inspect.custom]=function(){var t=r.inspect({length:this.length});return this.constructor.name+" "+t})}(an)),an.exports}function sn(){if($r)return Xr;$r=1;var t=Lr();function e(t,e){t.emit("error",e)}return Xr={destroy:function(r,n){var i=this,a=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;return a||o?(n?n(r):!r||this._writableState&&this._writableState.errorEmitted||t.nextTick(e,this,r),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,(function(r){!n&&r?(t.nextTick(e,i,r),i._writableState&&(i._writableState.errorEmitted=!0)):n&&n(r)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}},Xr}function un(){if(en)return tn;en=1;var t=Lr();function e(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e,r){var n=t.entry;t.entry=null;for(;n;){var i=n.callback;e.pendingcb--,i(r),n=n.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}(e,t)}}tn=p;var r,n=t.nextTick;p.WritableState=d;var a=Object.create(Hr());a.inherits=Vr();var o={deprecate:Qr?Jr:(Qr=1,Jr=Yr.deprecate)},s=Br(),u=Fr().Buffer,l=i.Uint8Array||function(){};var f,h=sn();function c(){}function d(i,a){r=r||ln(),i=i||{};var o=a instanceof r;this.objectMode=!!i.objectMode,o&&(this.objectMode=this.objectMode||!!i.writableObjectMode);var s=i.highWaterMark,u=i.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=s||0===s?s:o&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===i.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=i.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,r){var i=e._writableState,a=i.sync,o=i.writecb;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(i),r)!function(e,r,n,i,a){--r.pendingcb,n?(t.nextTick(a,i),t.nextTick(w,e,r),e._writableState.errorEmitted=!0,e.emit("error",i)):(a(i),e._writableState.errorEmitted=!0,e.emit("error",i),w(e,r))}(e,i,a,r,o);else{var s=m(i);s||i.corked||i.bufferProcessing||!i.bufferedRequest||v(e,i),a?n(b,e,i,s,o):b(e,i,s,o)}}(a,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}function p(t){if(r=r||ln(),!(f.call(p,this)||this instanceof r))return new p(t);this._writableState=new d(t,this),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev),"function"==typeof t.destroy&&(this._destroy=t.destroy),"function"==typeof t.final&&(this._final=t.final)),s.call(this)}function g(t,e,r,n,i,a,o){e.writelen=n,e.writecb=o,e.writing=!0,e.sync=!0,r?t._writev(i,e.onwrite):t._write(i,a,e.onwrite),e.sync=!1}function b(t,e,r,n){r||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}(t,e),e.pendingcb--,n(),w(t,e)}function v(t,r){r.bufferProcessing=!0;var n=r.bufferedRequest;if(t._writev&&n&&n.next){var i=r.bufferedRequestCount,a=new Array(i),o=r.corkedRequestsFree;o.entry=n;for(var s=0,u=!0;n;)a[s]=n,n.isBuf||(u=!1),n=n.next,s+=1;a.allBuffers=u,g(t,r,!0,r.length,a,"",o.finish),r.pendingcb++,r.lastBufferedRequest=null,o.next?(r.corkedRequestsFree=o.next,o.next=null):r.corkedRequestsFree=new e(r),r.bufferedRequestCount=0}else{for(;n;){var l=n.chunk,f=n.encoding,h=n.callback;if(g(t,r,!1,r.objectMode?1:l.length,l,f,h),n=n.next,r.bufferedRequestCount--,r.writing)break}null===n&&(r.lastBufferedRequest=null)}r.bufferedRequest=n,r.bufferProcessing=!1}function m(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function y(t,e){t._final((function(r){e.pendingcb--,r&&t.emit("error",r),e.prefinished=!0,t.emit("prefinish"),w(t,e)}))}function w(e,r){var n=m(r);return n&&(!function(e,r){r.prefinished||r.finalCalled||("function"==typeof e._final?(r.pendingcb++,r.finalCalled=!0,t.nextTick(y,e,r)):(r.prefinished=!0,e.emit("prefinish")))}(e,r),0===r.pendingcb&&(r.finished=!0,e.emit("finish"))),n}return a.inherits(p,s),d.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(d.prototype,"buffer",{get:o.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(f=Function.prototype[Symbol.hasInstance],Object.defineProperty(p,Symbol.hasInstance,{value:function(t){return!!f.call(this,t)||this===p&&(t&&t._writableState instanceof d)}})):f=function(t){return t instanceof this},p.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},p.prototype.write=function(e,r,n){var i,a=this._writableState,o=!1,s=!a.objectMode&&(i=e,u.isBuffer(i)||i instanceof l);return s&&!u.isBuffer(e)&&(e=function(t){return u.from(t)}(e)),"function"==typeof r&&(n=r,r=null),s?r="buffer":r||(r=a.defaultEncoding),"function"!=typeof n&&(n=c),a.ended?function(e,r){var n=new Error("write after end");e.emit("error",n),t.nextTick(r,n)}(this,n):(s||function(e,r,n,i){var a=!0,o=!1;return null===n?o=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||r.objectMode||(o=new TypeError("Invalid non-string/buffer chunk")),o&&(e.emit("error",o),t.nextTick(i,o),a=!1),a}(this,a,e,n))&&(a.pendingcb++,o=function(t,e,r,n,i,a){if(!r){var o=function(t,e,r){t.objectMode||!1===t.decodeStrings||"string"!=typeof e||(e=u.from(e,r));return e}(e,n,i);n!==o&&(r=!0,i="buffer",n=o)}var s=e.objectMode?1:n.length;e.length+=s;var l=e.length-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(p.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),p.prototype._write=function(t,e,r){r(new Error("_write() is not implemented"))},p.prototype._writev=null,p.prototype.end=function(e,r,n){var i=this._writableState;"function"==typeof e?(n=e,e=null,r=null):"function"==typeof r&&(n=r,r=null),null!=e&&this.write(e,r),i.corked&&(i.corked=1,this.uncork()),i.ending||i.finished||function(e,r,n){r.ending=!0,w(e,r),n&&(r.finished?t.nextTick(n):e.once("finish",n));r.ended=!0,e.writable=!1}(this,i,n)},Object.defineProperty(p.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),p.prototype.destroy=h.destroy,p.prototype._undestroy=h.undestroy,p.prototype._destroy=function(t,e){this.end(),e(t)},tn}function ln(){if(nn)return rn;nn=1;var t=Lr(),e=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};rn=u;var r=Object.create(Hr());r.inherits=Vr();var n=wn(),i=un();r.inherits(u,n);for(var a=e(i.prototype),o=0;o>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function i(t){var e=this.lastTotal-this.lastNeed,r=function(t,e,r){if(128!=(192&e[0]))return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"�"}}(this,t);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function a(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function o(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function s(t,e){var r=(t.length-e)%3;return 0===r?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function u(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function l(t){return t.toString(this.encoding)}function f(t){return t&&t.length?this.write(t):""}return mn.StringDecoder=r,r.prototype.write=function(t){if(0===t.length)return"";var e,r;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return a>0&&(t.lastNeed=a-1),a;if(--i=0)return a>0&&(t.lastNeed=a-2),a;if(--i=0)return a>0&&(2===a?a=0:t.lastNeed=a-3),a;return 0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var i=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,i),t.toString("utf8",e,i)},r.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length},mn}function wn(){if(cn)return hn;cn=1;var t=Lr();hn=b;var e,r=function(){if(Rr)return Er;Rr=1;var t={}.toString;return Er=Array.isArray||function(e){return"[object Array]"==t.call(e)}}();b.ReadableState=g,Ir.EventEmitter;var n=function(t,e){return t.listeners(e).length},a=Br(),o=Fr().Buffer,s=i.Uint8Array||function(){};var u=Object.create(Hr());u.inherits=Vr();var l=Yr,f=void 0;f=l&&l.debuglog?l.debuglog("stream"):function(){};var h,c=on(),d=sn();u.inherits(b,a);var p=["error","close","destroy","pause","resume"];function g(t,r){t=t||{};var n=r instanceof(e=e||ln());this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var i=t.highWaterMark,a=t.readableHighWaterMark,o=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(a||0===a)?a:o,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new c,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(h||(h=yn().StringDecoder),this.decoder=new h(t.encoding),this.encoding=t.encoding)}function b(t){if(e=e||ln(),!(this instanceof b))return new b(t);this._readableState=new g(t,this),this.readable=!0,t&&("function"==typeof t.read&&(this._read=t.read),"function"==typeof t.destroy&&(this._destroy=t.destroy)),a.call(this)}function v(t,e,r,n,i){var a,u=t._readableState;null===e?(u.reading=!1,function(t,e){if(e.ended)return;if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,_(t)}(t,u)):(i||(a=function(t,e){var r;n=e,o.isBuffer(n)||n instanceof s||"string"==typeof e||void 0===e||t.objectMode||(r=new TypeError("Invalid non-string/buffer chunk"));var n;return r}(u,e)),a?t.emit("error",a):u.objectMode||e&&e.length>0?("string"==typeof e||u.objectMode||Object.getPrototypeOf(e)===o.prototype||(e=function(t){return o.from(t)}(e)),n?u.endEmitted?t.emit("error",new Error("stream.unshift() after end event")):m(t,u,e,!0):u.ended?t.emit("error",new Error("stream.push() after EOF")):(u.reading=!1,u.decoder&&!r?(e=u.decoder.write(e),u.objectMode||0!==e.length?m(t,u,e,!1):x(t,u)):m(t,u,e,!1))):n||(u.reading=!1));return function(t){return!t.ended&&(t.needReadable||t.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=y?t=y:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function _(e){var r=e._readableState;r.needReadable=!1,r.emittedReadable||(f("emitReadable",r.flowing),r.emittedReadable=!0,r.sync?t.nextTick(k,e):k(e))}function k(t){f("emit readable"),t.emit("readable"),E(t)}function x(e,r){r.readingMore||(r.readingMore=!0,t.nextTick(S,e,r))}function S(t,e){for(var r=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):r=function(t,e,r){var n;ta.length?a.length:t;if(o===a.length?i+=a:i+=a.slice(0,t),0===(t-=o)){o===a.length?(++n,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=a.slice(o));break}++n}return e.length-=n,i}(t,e):function(t,e){var r=o.allocUnsafe(t),n=e.head,i=1;n.data.copy(r),t-=n.data.length;for(;n=n.next;){var a=n.data,s=t>a.length?a.length:t;if(a.copy(r,r.length-t,0,s),0===(t-=s)){s===a.length?(++i,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=a.slice(s));break}++i}return e.length-=i,r}(t,e);return n}(t,e.buffer,e.decoder),r);var r}function O(e){var r=e._readableState;if(r.length>0)throw new Error('"endReadable()" called on non-empty stream');r.endEmitted||(r.ended=!0,t.nextTick(T,r,e))}function T(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function L(t,e){for(var r=0,n=t.length;r=e.highWaterMark||e.ended))return f("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?O(this):_(this),null;if(0===(t=w(t,e))&&e.ended)return 0===e.length&&O(this),null;var n,i=e.needReadable;return f("need readable",i),(0===e.length||e.length-t0?R(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&O(this)),null!==n&&this.emit("data",n),n},b.prototype._read=function(t){this.emit("error",new Error("_read() is not implemented"))},b.prototype.pipe=function(e,i){var a=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=e;break;case 1:o.pipes=[o.pipes,e];break;default:o.pipes.push(e)}o.pipesCount+=1,f("pipe count=%d opts=%j",o.pipesCount,i);var s=(!i||!1!==i.end)&&e!==jt.stdout&&e!==jt.stderr?l:m;function u(t,r){f("onunpipe"),t===a&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,f("cleanup"),e.removeListener("close",b),e.removeListener("finish",v),e.removeListener("drain",h),e.removeListener("error",g),e.removeListener("unpipe",u),a.removeListener("end",l),a.removeListener("end",m),a.removeListener("data",p),c=!0,!o.awaitDrain||e._writableState&&!e._writableState.needDrain||h())}function l(){f("onend"),e.end()}o.endEmitted?t.nextTick(s):a.once("end",s),e.on("unpipe",u);var h=function(t){return function(){var e=t._readableState;f("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&n(t,"data")&&(e.flowing=!0,E(t))}}(a);e.on("drain",h);var c=!1;var d=!1;function p(t){f("ondata"),d=!1,!1!==e.write(t)||d||((1===o.pipesCount&&o.pipes===e||o.pipesCount>1&&-1!==L(o.pipes,e))&&!c&&(f("false write response, pause",a._readableState.awaitDrain),a._readableState.awaitDrain++,d=!0),a.pause())}function g(t){f("onerror",t),m(),e.removeListener("error",g),0===n(e,"error")&&e.emit("error",t)}function b(){e.removeListener("finish",v),m()}function v(){f("onfinish"),e.removeListener("close",b),m()}function m(){f("unpipe"),a.unpipe(e)}return a.on("data",p),function(t,e,n){if("function"==typeof t.prependListener)return t.prependListener(e,n);t._events&&t._events[e]?r(t._events[e])?t._events[e].unshift(n):t._events[e]=[n,t._events[e]]:t.on(e,n)}(e,"error",g),e.once("close",b),e.once("finish",v),e.emit("pipe",a),o.flowing||(f("pipe resume"),a.resume()),e},b.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var a=0;a>2,s=(3&n)<<4|i>>4,u=d>1?(15&i)<<2|a>>6:64,l=d>2?63&a:64,f.push(r.charAt(o)+r.charAt(s)+r.charAt(u)+r.charAt(l));return f.join("")},An.decode=function(t){var n,i,a,o,s,u,l=0,f=0,h="data:";if(t.substr(0,h.length)===h)throw new Error("Invalid base64 input, it looks like a data url.");var c,d=3*(t=t.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(t.charAt(t.length-1)===r.charAt(64)&&d--,t.charAt(t.length-2)===r.charAt(64)&&d--,d%1!=0)throw new Error("Invalid base64 input, bad content length.");for(c=e.uint8array?new Uint8Array(0|d):new Array(0|d);l>4,i=(15&o)<<4|(s=r.indexOf(t.charAt(l++)))>>2,a=(3&s)<<6|(u=r.indexOf(t.charAt(l++))),c[f++]=n,64!==s&&(c[f++]=i),64!==u&&(c[f++]=a);return c},An}var Rn,On,Tn,Ln,Mn={isNode:!0,newBufferFrom:function(t,e){if(E.from&&E.from!==Uint8Array.from)return E.from(t,e);if("number"==typeof t)throw new Error('The "data" argument must not be a number');return new E(t,e)},allocBuffer:function(t){if(E.alloc)return E.alloc(t);var e=new E(t);return e.fill(0),e},isBuffer:function(t){return ft(t)},isStream:function(t){return t&&"function"==typeof t.on&&"function"==typeof t.pause&&"function"==typeof t.resume}};var In=null;In="undefined"!=typeof Promise?Promise:function(){if(Ln)return Tn;Ln=1;var t=function(){if(On)return Rn;On=1;var t,e,r=i.MutationObserver||i.WebKitMutationObserver;if(r){var n=0,a=new r(l),o=i.document.createTextNode("");a.observe(o,{characterData:!0}),t=function(){o.data=n=++n%2}}else if(i.setImmediate||void 0===i.MessageChannel)t="document"in i&&"onreadystatechange"in i.document.createElement("script")?function(){var t=i.document.createElement("script");t.onreadystatechange=function(){l(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},i.document.documentElement.appendChild(t)}:function(){setTimeout(l,0)};else{var s=new i.MessageChannel;s.port1.onmessage=l,t=function(){s.port2.postMessage(0)}}var u=[];function l(){var t,r;e=!0;for(var n=u.length;n;){for(r=u,u=[],t=-1;++t1;)try{return s.stringifyByChunk(e,n,r)}catch(t){r=Math.floor(r/2)}return s.stringifyByChar(e)}function l(t,e){for(var r=0;r "+t:t}};var jn=zn;!function(t){for(var e=Dn(),r=dt,n=Mn,i=jn,a=new Array(256),o=0;o<256;o++)a[o]=o>=252?6:o>=248?5:o>=240?4:o>=224?3:o>=192?2:1;a[254]=a[254]=1;function s(){i.call(this,"utf-8 decode"),this.leftOver=null}function u(){i.call(this,"utf-8 encode")}t.utf8encode=function(t){return r.nodebuffer?n.newBufferFrom(t,"utf-8"):function(t){var e,n,i,a,o,s=t.length,u=0;for(a=0;a>>6,e[o++]=128|63&n):n<65536?(e[o++]=224|n>>>12,e[o++]=128|n>>>6&63,e[o++]=128|63&n):(e[o++]=240|n>>>18,e[o++]=128|n>>>12&63,e[o++]=128|n>>>6&63,e[o++]=128|63&n);return e}(t)},t.utf8decode=function(t){return r.nodebuffer?e.transformTo("nodebuffer",t).toString("utf-8"):function(t){var r,n,i,o,s=t.length,u=new Array(2*s);for(n=0,r=0;r4)u[n++]=65533,r+=o-1;else{for(i&=2===o?31:3===o?15:7;o>1&&r1?u[n++]=65533:i<65536?u[n++]=i:(i-=65536,u[n++]=55296|i>>10&1023,u[n++]=56320|1023&i)}return u.length!==n&&(u.subarray?u=u.subarray(0,n):u.length=n),e.applyFromCharCode(u)}(t=e.transformTo(r.uint8array?"uint8array":"array",t))},e.inherits(s,i),s.prototype.processChunk=function(n){var i=e.transformTo(r.uint8array?"uint8array":"array",n.data);if(this.leftOver&&this.leftOver.length){if(r.uint8array){var o=i;(i=new Uint8Array(o.length+this.leftOver.length)).set(this.leftOver,0),i.set(o,this.leftOver.length)}else i=this.leftOver.concat(i);this.leftOver=null}var s=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;r>=0&&128==(192&t[r]);)r--;return r<0||0===r?e:r+a[t[r]]>e?r:e}(i),u=i;s!==i.length&&(r.uint8array?(u=i.subarray(0,s),this.leftOver=i.subarray(s,i.length)):(u=i.slice(0,s),this.leftOver=i.slice(s,i.length))),this.push({data:t.utf8decode(u),meta:n.meta})},s.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:t.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},t.Utf8DecodeWorker=s,e.inherits(u,i),u.prototype.processChunk=function(e){this.push({data:t.utf8encode(e.data),meta:e.meta})},t.Utf8EncodeWorker=u}(f);var Fn=jn,Nn=Dn();function Un(t){Fn.call(this,"ConvertWorker to "+t),this.destType=t}Nn.inherits(Un,Fn),Un.prototype.processChunk=function(t){this.push({data:Nn.transformTo(this.destType,t.data),meta:t.meta})};var Hn,Wn,Zn=Un;var qn=Dn(),Yn=Zn,Gn=jn,Vn=En(),Kn=Bn,Xn=null;if(dt.nodestream)try{Xn=function(){if(Wn)return Hn;Wn=1;var t=kn().Readable;function e(e,r,n){t.call(this,r),this._helper=e;var i=this;e.on("data",(function(t,e){i.push(t)||i._helper.pause(),n&&n(e)})).on("error",(function(t){i.emit("error",t)})).on("end",(function(){i.push(null)}))}return Dn().inherits(e,t),e.prototype._read=function(){this._helper.resume()},Hn=e}()}catch(t){}function $n(t,e){return new Kn.Promise((function(r,n){var i=[],a=t._internalType,o=t._outputType,s=t._mimeType;t.on("data",(function(t,r){i.push(t),e&&e(r)})).on("error",(function(t){i=[],n(t)})).on("end",(function(){try{var t=function(t,e,r){switch(t){case"blob":return qn.newBlob(qn.transformTo("arraybuffer",e),r);case"base64":return Vn.encode(e);default:return qn.transformTo(t,e)}}(o,function(t,e){var r,n=0,i=null,a=0;for(r=0;r=this.max)return this.end();switch(this.type){case"string":t=this.data.substring(this.index,e);break;case"uint8array":t=this.data.subarray(this.index,e);break;case"array":case"nodebuffer":t=this.data.slice(this.index,e)}return this.index=e,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})};var ii=ni,ai=Dn();var oi=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();var si=function(t,e){return void 0!==t&&t.length?"string"!==ai.getTypeOf(t)?function(t,e,r,n){var i=oi,a=n+r;t^=-1;for(var o=n;o>>8^i[255&(t^e[o])];return-1^t}(0|e,t,t.length,0):function(t,e,r,n){var i=oi,a=n+r;t^=-1;for(var o=n;o>>8^i[255&(t^e.charCodeAt(o))];return-1^t}(0|e,t,t.length,0):0},ui=jn,li=si;function fi(){ui.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}Dn().inherits(fi,ui),fi.prototype.processChunk=function(t){this.streamInfo.crc32=li(t.data,this.streamInfo.crc32||0),this.push(t)};var hi=fi,ci=Dn(),di=jn;function pi(t){di.call(this,"DataLengthProbe for "+t),this.propName=t,this.withStreamInfo(t,0)}ci.inherits(pi,di),pi.prototype.processChunk=function(t){if(t){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+t.data.length}di.prototype.processChunk.call(this,t)};var gi=Bn,bi=ii,vi=hi,mi=pi;function yi(t,e,r,n,i){this.compressedSize=t,this.uncompressedSize=e,this.crc32=r,this.compression=n,this.compressedContent=i}yi.prototype={getContentWorker:function(){var t=new bi(gi.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new mi("data_length")),e=this;return t.on("end",(function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")})),t},getCompressedWorker:function(){return new bi(gi.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},yi.createWorkerFrom=function(t,e,r){return t.pipe(new vi).pipe(new mi("uncompressedSize")).pipe(e.compressWorker(r)).pipe(new mi("compressedSize")).withStreamInfo("compression",e)};var wi=yi,_i=Qn,ki=ii,xi=f,Si=wi,Ci=jn,Ai=function(t,e,r){this.name=t,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=e,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions}};Ai.prototype={internalStream:function(t){var e=null,r="string";try{if(!t)throw new Error("No output type specified.");var n="string"===(r=t.toLowerCase())||"text"===r;"binarystring"!==r&&"text"!==r||(r="string"),e=this._decompressWorker();var i=!this._dataBinary;i&&!n&&(e=e.pipe(new xi.Utf8EncodeWorker)),!i&&n&&(e=e.pipe(new xi.Utf8DecodeWorker))}catch(t){(e=new Ci("error")).error(t)}return new _i(e,r,"")},async:function(t,e){return this.internalStream(t).accumulate(e)},nodeStream:function(t,e){return this.internalStream(t||"nodebuffer").toNodejsStream(e)},_compressWorker:function(t,e){if(this._data instanceof Si&&this._data.compression.magic===t.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new xi.Utf8EncodeWorker)),Si.createWorkerFrom(r,t,e)},_decompressWorker:function(){return this._data instanceof Si?this._data.getContentWorker():this._data instanceof Ci?this._data:new ki(this._data)}};for(var Ei=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],Ri=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},Oi=0;Oi=0;)t[e]=0}var Ni=256,Ui=286,Hi=30,Wi=15,Zi=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],qi=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Yi=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Gi=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Vi=new Array(576);Fi(Vi);var Ki=new Array(60);Fi(Ki);var Xi=new Array(512);Fi(Xi);var $i=new Array(256);Fi($i);var Ji=new Array(29);Fi(Ji);var Qi,ta,ea,ra=new Array(Hi);function na(t,e,r,n,i){this.static_tree=t,this.extra_bits=e,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=t&&t.length}function ia(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function aa(t){return t<256?Xi[t]:Xi[256+(t>>>7)]}function oa(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function sa(t,e,r){t.bi_valid>16-r?(t.bi_buf|=e<>16-t.bi_valid,t.bi_valid+=r-16):(t.bi_buf|=e<>>=1,r<<=1}while(--e>0);return r>>>1}function fa(t,e,r){var n,i,a=new Array(16),o=0;for(n=1;n<=Wi;n++)a[n]=o=o+r[n-1]<<1;for(i=0;i<=e;i++){var s=t[2*i+1];0!==s&&(t[2*i]=la(a[s]++,s))}}function ha(t){var e;for(e=0;e8?oa(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function da(t,e,r,n){var i=2*e,a=2*r;return t[i]>1;r>=1;r--)pa(t,a,r);i=u;do{r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],pa(t,a,1),n=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=n,a[2*i]=a[2*r]+a[2*n],t.depth[i]=(t.depth[r]>=t.depth[n]?t.depth[r]:t.depth[n])+1,a[2*r+1]=a[2*n+1]=i,t.heap[1]=i++,pa(t,a,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],function(t,e){var r,n,i,a,o,s,u=e.dyn_tree,l=e.max_code,f=e.stat_desc.static_tree,h=e.stat_desc.has_stree,c=e.stat_desc.extra_bits,d=e.stat_desc.extra_base,p=e.stat_desc.max_length,g=0;for(a=0;a<=Wi;a++)t.bl_count[a]=0;for(u[2*t.heap[t.heap_max]+1]=0,r=t.heap_max+1;r<573;r++)(a=u[2*u[2*(n=t.heap[r])+1]+1]+1)>p&&(a=p,g++),u[2*n+1]=a,n>l||(t.bl_count[a]++,o=0,n>=d&&(o=c[n-d]),s=u[2*n],t.opt_len+=s*(a+o),h&&(t.static_len+=s*(f[2*n+1]+o)));if(0!==g){do{for(a=p-1;0===t.bl_count[a];)a--;t.bl_count[a]--,t.bl_count[a+1]+=2,t.bl_count[p]--,g-=2}while(g>0);for(a=p;0!==a;a--)for(n=t.bl_count[a];0!==n;)(i=t.heap[--r])>l||(u[2*i+1]!==a&&(t.opt_len+=(a-u[2*i+1])*u[2*i],u[2*i+1]=a),n--)}}(t,e),fa(a,l,t.bl_count)}function va(t,e,r){var n,i,a=-1,o=e[1],s=0,u=7,l=4;for(0===o&&(u=138,l=3),e[2*(r+1)+1]=65535,n=0;n<=r;n++)i=o,o=e[2*(n+1)+1],++s>=7;n0?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,r=4093624447;for(e=0;e<=31;e++,r>>>=1)if(1&r&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e=3&&0===t.bl_tree[2*Gi[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),i=t.opt_len+3+7>>>3,(a=t.static_len+3+7>>>3)<=i&&(i=a)):i=a=r+5,r+4<=i&&-1!==e?wa(t,e,r,n):4===t.strategy||a===i?(sa(t,2+(n?1:0),3),ga(t,Vi,Ki)):(sa(t,4+(n?1:0),3),function(t,e,r,n){var i;for(sa(t,e-257,5),sa(t,r-1,5),sa(t,n-4,4),i=0;i>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&r,t.last_lit++,0===e?t.dyn_ltree[2*r]++:(t.matches++,e--,t.dyn_ltree[2*($i[r]+Ni+1)]++,t.dyn_dtree[2*aa(e)]++),t.last_lit===t.lit_bufsize-1},zi._tr_align=function(t){sa(t,2,3),ua(t,256,Vi),function(t){16===t.bi_valid?(oa(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)};var _a=function(t,e,r,n){for(var i=65535&t|0,a=t>>>16&65535|0,o=0;0!==r;){r-=o=r>2e3?2e3:r;do{a=a+(i=i+e[n++]|0)|0}while(--o);i%=65521,a%=65521}return i|a<<16|0};var ka=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();var xa,Sa=function(t,e,r,n){var i=ka,a=n+r;t^=-1;for(var o=n;o>>8^i[255&(t^e[o])];return-1^t},Ca={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Aa=Pi,Ea=zi,Ra=_a,Oa=Sa,Ta=Ca,La=-2,Ma=258,Ia=262,Pa=103,Ba=113,Da=666;function za(t,e){return t.msg=Ta[e],e}function ja(t){return(t<<1)-(t>4?9:0)}function Fa(t){for(var e=t.length;--e>=0;)t[e]=0}function Na(t){var e=t.state,r=e.pending;r>t.avail_out&&(r=t.avail_out),0!==r&&(Aa.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,0===e.pending&&(e.pending_out=0))}function Ua(t,e){Ea._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,Na(t.strm)}function Ha(t,e){t.pending_buf[t.pending++]=e}function Wa(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function Za(t,e){var r,n,i=t.max_chain_length,a=t.strstart,o=t.prev_length,s=t.nice_match,u=t.strstart>t.w_size-Ia?t.strstart-(t.w_size-Ia):0,l=t.window,f=t.w_mask,h=t.prev,c=t.strstart+Ma,d=l[a+o-1],p=l[a+o];t.prev_length>=t.good_match&&(i>>=2),s>t.lookahead&&(s=t.lookahead);do{if(l[(r=e)+o]===p&&l[r+o-1]===d&&l[r]===l[a]&&l[++r]===l[a+1]){a+=2,r++;do{}while(l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&ao){if(t.match_start=e,o=n,n>=s)break;d=l[a+o-1],p=l[a+o]}}}while((e=h[e&f])>u&&0!=--i);return o<=t.lookahead?o:t.lookahead}function qa(t){var e,r,n,i,a,o,s,u,l,f,h=t.w_size;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=h+(h-Ia)){Aa.arraySet(t.window,t.window,h,h,0),t.match_start-=h,t.strstart-=h,t.block_start-=h,e=r=t.hash_size;do{n=t.head[--e],t.head[e]=n>=h?n-h:0}while(--r);e=r=h;do{n=t.prev[--e],t.prev[e]=n>=h?n-h:0}while(--r);i+=h}if(0===t.strm.avail_in)break;if(o=t.strm,s=t.window,u=t.strstart+t.lookahead,l=i,f=void 0,(f=o.avail_in)>l&&(f=l),r=0===f?0:(o.avail_in-=f,Aa.arraySet(s,o.input,o.next_in,f,u),1===o.state.wrap?o.adler=Ra(o.adler,s,f,u):2===o.state.wrap&&(o.adler=Oa(o.adler,s,f,u)),o.next_in+=f,o.total_in+=f,f),t.lookahead+=r,t.lookahead+t.insert>=3)for(a=t.strstart-t.insert,t.ins_h=t.window[a],t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<=3)if(n=Ea._tr_tally(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-3,n=Ea._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=i&&(t.ins_h=(t.ins_h<15&&(o=2,n-=16),i<1||i>9||8!==r||n<8||n>15||e<0||e>9||a<0||a>4)return za(t,La);8===n&&(n=9);var s=new Ka;return t.state=s,s.strm=t,s.wrap=o,s.gzhead=null,s.w_bits=n,s.w_size=1<t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(qa(t),0===t.lookahead&&0===e)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var n=t.block_start+r;if((0===t.strstart||t.strstart>=n)&&(t.lookahead=t.strstart-n,t.strstart=n,Ua(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-Ia&&(Ua(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(Ua(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(Ua(t,!1),t.strm.avail_out),1)})),new Va(4,4,8,4,Ya),new Va(4,5,16,8,Ya),new Va(4,6,32,32,Ya),new Va(4,4,16,16,Ga),new Va(8,16,32,32,Ga),new Va(8,16,128,128,Ga),new Va(8,32,128,256,Ga),new Va(32,128,258,1024,Ga),new Va(32,258,258,4096,Ga)],Di.deflateInit=function(t,e){return Ja(t,e,8,15,8,0)},Di.deflateInit2=Ja,Di.deflateReset=$a,Di.deflateResetKeep=Xa,Di.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?La:(t.state.gzhead=e,0):La},Di.deflate=function(t,e){var r,n,i,a;if(!t||!t.state||e>5||e<0)return t?za(t,La):La;if(n=t.state,!t.output||!t.input&&0!==t.avail_in||n.status===Da&&4!==e)return za(t,0===t.avail_out?-5:La);if(n.strm=t,r=n.last_flush,n.last_flush=e,42===n.status)if(2===n.wrap)t.adler=0,Ha(n,31),Ha(n,139),Ha(n,8),n.gzhead?(Ha(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),Ha(n,255&n.gzhead.time),Ha(n,n.gzhead.time>>8&255),Ha(n,n.gzhead.time>>16&255),Ha(n,n.gzhead.time>>24&255),Ha(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),Ha(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(Ha(n,255&n.gzhead.extra.length),Ha(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(t.adler=Oa(t.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(Ha(n,0),Ha(n,0),Ha(n,0),Ha(n,0),Ha(n,0),Ha(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),Ha(n,3),n.status=Ba);else{var o=8+(n.w_bits-8<<4)<<8;o|=(n.strategy>=2||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(o|=32),o+=31-o%31,n.status=Ba,Wa(n,o),0!==n.strstart&&(Wa(n,t.adler>>>16),Wa(n,65535&t.adler)),t.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(t.adler=Oa(t.adler,n.pending_buf,n.pending-i,i)),Na(t),i=n.pending,n.pending!==n.pending_buf_size));)Ha(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(t.adler=Oa(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(t.adler=Oa(t.adler,n.pending_buf,n.pending-i,i)),Na(t),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}a=n.gzindexi&&(t.adler=Oa(t.adler,n.pending_buf,n.pending-i,i)),0===a&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(t.adler=Oa(t.adler,n.pending_buf,n.pending-i,i)),Na(t),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}a=n.gzindexi&&(t.adler=Oa(t.adler,n.pending_buf,n.pending-i,i)),0===a&&(n.status=Pa)}else n.status=Pa;if(n.status===Pa&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&Na(t),n.pending+2<=n.pending_buf_size&&(Ha(n,255&t.adler),Ha(n,t.adler>>8&255),t.adler=0,n.status=Ba)):n.status=Ba),0!==n.pending){if(Na(t),0===t.avail_out)return n.last_flush=-1,0}else if(0===t.avail_in&&ja(e)<=ja(r)&&4!==e)return za(t,-5);if(n.status===Da&&0!==t.avail_in)return za(t,-5);if(0!==t.avail_in||0!==n.lookahead||0!==e&&n.status!==Da){var s=2===n.strategy?function(t,e){for(var r;;){if(0===t.lookahead&&(qa(t),0===t.lookahead)){if(0===e)return 1;break}if(t.match_length=0,r=Ea._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(Ua(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(Ua(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(Ua(t,!1),0===t.strm.avail_out)?1:2}(n,e):3===n.strategy?function(t,e){for(var r,n,i,a,o=t.window;;){if(t.lookahead<=Ma){if(qa(t),t.lookahead<=Ma&&0===e)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(n=o[i=t.strstart-1])===o[++i]&&n===o[++i]&&n===o[++i]){a=t.strstart+Ma;do{}while(n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&it.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(r=Ea._tr_tally(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=Ea._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(Ua(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(Ua(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(Ua(t,!1),0===t.strm.avail_out)?1:2}(n,e):xa[n.level].func(n,e);if(3!==s&&4!==s||(n.status=Da),1===s||3===s)return 0===t.avail_out&&(n.last_flush=-1),0;if(2===s&&(1===e?Ea._tr_align(n):5!==e&&(Ea._tr_stored_block(n,0,0,!1),3===e&&(Fa(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),Na(t),0===t.avail_out))return n.last_flush=-1,0}return 4!==e?0:n.wrap<=0?1:(2===n.wrap?(Ha(n,255&t.adler),Ha(n,t.adler>>8&255),Ha(n,t.adler>>16&255),Ha(n,t.adler>>24&255),Ha(n,255&t.total_in),Ha(n,t.total_in>>8&255),Ha(n,t.total_in>>16&255),Ha(n,t.total_in>>24&255)):(Wa(n,t.adler>>>16),Wa(n,65535&t.adler)),Na(t),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?0:1)},Di.deflateEnd=function(t){var e;return t&&t.state?42!==(e=t.state.status)&&69!==e&&73!==e&&91!==e&&e!==Pa&&e!==Ba&&e!==Da?za(t,La):(t.state=null,e===Ba?za(t,-3):0):La},Di.deflateSetDictionary=function(t,e){var r,n,i,a,o,s,u,l,f=e.length;if(!t||!t.state)return La;if(2===(a=(r=t.state).wrap)||1===a&&42!==r.status||r.lookahead)return La;for(1===a&&(t.adler=Ra(t.adler,e,f,0)),r.wrap=0,f>=r.w_size&&(0===a&&(Fa(r.head),r.strstart=0,r.block_start=0,r.insert=0),l=new Aa.Buf8(r.w_size),Aa.arraySet(l,e,f-r.w_size,r.w_size,0),e=l,f=r.w_size),o=t.avail_in,s=t.next_in,u=t.input,t.avail_in=f,t.next_in=0,t.input=e,qa(r);r.lookahead>=3;){n=r.strstart,i=r.lookahead-2;do{r.ins_h=(r.ins_h<=252?6:io>=248?5:io>=240?4:io>=224?3:io>=192?2:1;function ao(t,e){if(e<65534&&(t.subarray&&ro||!t.subarray&&eo))return String.fromCharCode.apply(null,to.shrinkBuf(t,e));for(var r="",n=0;n>>6,e[a++]=128|63&r):r<65536?(e[a++]=224|r>>>12,e[a++]=128|r>>>6&63,e[a++]=128|63&r):(e[a++]=240|r>>>18,e[a++]=128|r>>>12&63,e[a++]=128|r>>>6&63,e[a++]=128|63&r);return e},Qa.buf2binstring=function(t){return ao(t,t.length)},Qa.binstring2buf=function(t){for(var e=new to.Buf8(t.length),r=0,n=e.length;r4)s[n++]=65533,r+=a-1;else{for(i&=2===a?31:3===a?15:7;a>1&&r1?s[n++]=65533:i<65536?s[n++]=i:(i-=65536,s[n++]=55296|i>>10&1023,s[n++]=56320|1023&i)}return ao(s,n)},Qa.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;r>=0&&128==(192&t[r]);)r--;return r<0||0===r?e:r+no[t[r]]>e?r:e};var oo=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},so=Di,uo=Pi,lo=Qa,fo=Ca,ho=oo,co=Object.prototype.toString;function po(t){if(!(this instanceof po))return new po(t);this.options=uo.assign({level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ho,this.strm.avail_out=0;var r=so.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(0!==r)throw new Error(fo[r]);if(e.header&&so.deflateSetHeader(this.strm,e.header),e.dictionary){var n;if(n="string"==typeof e.dictionary?lo.string2buf(e.dictionary):"[object ArrayBuffer]"===co.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,0!==(r=so.deflateSetDictionary(this.strm,n)))throw new Error(fo[r]);this._dict_set=!0}}function go(t,e){var r=new po(e);if(r.push(t,!0),r.err)throw r.msg||fo[r.err];return r.result}po.prototype.push=function(t,e){var r,n,i=this.strm,a=this.options.chunkSize;if(this.ended)return!1;n=e===~~e?e:!0===e?4:0,"string"==typeof t?i.input=lo.string2buf(t):"[object ArrayBuffer]"===co.call(t)?i.input=new Uint8Array(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new uo.Buf8(a),i.next_out=0,i.avail_out=a),1!==(r=so.deflate(i,n))&&0!==r)return this.onEnd(r),this.ended=!0,!1;0!==i.avail_out&&(0!==i.avail_in||4!==n&&2!==n)||("string"===this.options.to?this.onData(lo.buf2binstring(uo.shrinkBuf(i.output,i.next_out))):this.onData(uo.shrinkBuf(i.output,i.next_out)))}while((i.avail_in>0||0===i.avail_out)&&1!==r);return 4===n?(r=so.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,0===r):2!==n||(this.onEnd(0),i.avail_out=0,!0)},po.prototype.onData=function(t){this.chunks.push(t)},po.prototype.onEnd=function(t){0===t&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=uo.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},Bi.Deflate=po,Bi.deflate=go,Bi.deflateRaw=function(t,e){return(e=e||{}).raw=!0,go(t,e)},Bi.gzip=function(t,e){return(e=e||{}).gzip=!0,go(t,e)};var bo={},vo={},mo=Pi,yo=15,wo=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],_o=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],ko=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],xo=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64],So=Pi,Co=_a,Ao=Sa,Eo=function(t,e){var r,n,i,a,o,s,u,l,f,h,c,d,p,g,b,v,m,y,w,_,k,x,S,C,A;r=t.state,n=t.next_in,C=t.input,i=n+(t.avail_in-5),a=t.next_out,A=t.output,o=a-(e-t.avail_out),s=a+(t.avail_out-257),u=r.dmax,l=r.wsize,f=r.whave,h=r.wnext,c=r.window,d=r.hold,p=r.bits,g=r.lencode,b=r.distcode,v=(1<>>=w=y>>>24,p-=w,0===(w=y>>>16&255))A[a++]=65535&y;else{if(!(16&w)){if(0==(64&w)){y=g[(65535&y)+(d&(1<>>=w,p-=w),p<15&&(d+=C[n++]<>>=w=y>>>24,p-=w,!(16&(w=y>>>16&255))){if(0==(64&w)){y=b[(65535&y)+(d&(1<u){t.msg="invalid distance too far back",r.mode=30;break t}if(d>>>=w,p-=w,k>(w=a-o)){if((w=k-w)>f&&r.sane){t.msg="invalid distance too far back",r.mode=30;break t}if(x=0,S=c,0===h){if(x+=l-w,w<_){_-=w;do{A[a++]=c[x++]}while(--w);x=a-k,S=A}}else if(h2;)A[a++]=S[x++],A[a++]=S[x++],A[a++]=S[x++],_-=3;_&&(A[a++]=S[x++],_>1&&(A[a++]=S[x++]))}else{x=a-k;do{A[a++]=A[x++],A[a++]=A[x++],A[a++]=A[x++],_-=3}while(_>2);_&&(A[a++]=A[x++],_>1&&(A[a++]=A[x++]))}break}}break}}while(n>3,d&=(1<<(p-=_<<3))-1,t.next_in=n,t.next_out=a,t.avail_in=n=1&&0===T[_];_--);if(k>_&&(k=_),0===_)return i[a++]=20971520,i[a++]=20971520,s.bits=1,0;for(w=1;w<_&&0===T[w];w++);for(k0&&(0===t||1!==_))return-1;for(L[1]=0,m=1;m852||2===t&&A>592)return 1;for(;;){p=m-S,o[y]d?(g=M[I+o[y]],b=R[O+o[y]]):(g=96,b=0),u=1<>S)+(l-=u)]=p<<24|g<<16|b|0}while(0!==l);for(u=1<>=1;if(0!==u?(E&=u-1,E+=u):E=0,y++,0==--T[m]){if(m===_)break;m=e[r+o[y]]}if(m>k&&(E&h)!==f){for(0===S&&(S=k),c+=w,C=1<<(x=m-S);x+S<_&&!((C-=T[x+S])<=0);)x++,C<<=1;if(A+=1<852||2===t&&A>592)return 1;i[f=E&h]=k<<24|x<<16|c-a|0}}return 0!==E&&(i[c+E]=m-S<<24|64<<16|0),s.bits=k,0},Oo=-2,To=12,Lo=30;function Mo(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function Io(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new So.Buf16(320),this.work=new So.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Po(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new So.Buf32(852),e.distcode=e.distdyn=new So.Buf32(592),e.sane=1,e.back=-1,0):Oo}function Bo(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,Po(t)):Oo}function Do(t,e){var r,n;return t&&t.state?(n=t.state,e<0?(r=0,e=-e):(r=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?Oo:(null!==n.window&&n.wbits!==e&&(n.window=null),n.wrap=r,n.wbits=e,Bo(t))):Oo}function zo(t,e){var r,n;return t?(n=new Io,t.state=n,n.window=null,0!==(r=Do(t,e))&&(t.state=null),r):Oo}var jo,Fo,No=!0;function Uo(t){if(No){var e;for(jo=new So.Buf32(512),Fo=new So.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(Ro(1,t.lens,0,288,jo,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;Ro(2,t.lens,0,32,Fo,0,t.work,{bits:5}),No=!1}t.lencode=jo,t.lenbits=9,t.distcode=Fo,t.distbits=5}function Ho(t,e,r,n){var i,a=t.state;return null===a.window&&(a.wsize=1<=a.wsize?(So.arraySet(a.window,e,r-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):((i=a.wsize-a.wnext)>n&&(i=n),So.arraySet(a.window,e,r-n,i,a.wnext),(n-=i)?(So.arraySet(a.window,e,r-n,n,0),a.wnext=n,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave>>8&255,r.check=Ao(r.check,E,2,0),l=0,f=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&l)<<8)+(l>>8))%31){t.msg="incorrect header check",r.mode=Lo;break}if(8!=(15&l)){t.msg="unknown compression method",r.mode=Lo;break}if(f-=4,k=8+(15&(l>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){t.msg="invalid window size",r.mode=Lo;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&l,E[1]=l>>>8&255,r.check=Ao(r.check,E,2,0)),l=0,f=0,r.mode=3;case 3:for(;f<32;){if(0===s)break t;s--,l+=n[a++]<>>8&255,E[2]=l>>>16&255,E[3]=l>>>24&255,r.check=Ao(r.check,E,4,0)),l=0,f=0,r.mode=4;case 4:for(;f<16;){if(0===s)break t;s--,l+=n[a++]<>8),512&r.flags&&(E[0]=255&l,E[1]=l>>>8&255,r.check=Ao(r.check,E,2,0)),l=0,f=0,r.mode=5;case 5:if(1024&r.flags){for(;f<16;){if(0===s)break t;s--,l+=n[a++]<>>8&255,r.check=Ao(r.check,E,2,0)),l=0,f=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&((d=r.length)>s&&(d=s),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),So.arraySet(r.head.extra,n,a,d,k)),512&r.flags&&(r.check=Ao(r.check,n,d,a)),s-=d,a+=d,r.length-=d),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===s)break t;d=0;do{k=n[a+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k))}while(k&&d>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=To;break;case 10:for(;f<32;){if(0===s)break t;s--,l+=n[a++]<>>=7&f,f-=7&f,r.mode=27;break}for(;f<3;){if(0===s)break t;s--,l+=n[a++]<>>=1)){case 0:r.mode=14;break;case 1:if(Uo(r),r.mode=20,6===e){l>>>=2,f-=2;break t}break;case 2:r.mode=17;break;case 3:t.msg="invalid block type",r.mode=Lo}l>>>=2,f-=2;break;case 14:for(l>>>=7&f,f-=7&f;f<32;){if(0===s)break t;s--,l+=n[a++]<>>16^65535)){t.msg="invalid stored block lengths",r.mode=Lo;break}if(r.length=65535&l,l=0,f=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(d=r.length){if(d>s&&(d=s),d>u&&(d=u),0===d)break t;So.arraySet(i,n,a,d,o),s-=d,a+=d,u-=d,o+=d,r.length-=d;break}r.mode=To;break;case 17:for(;f<14;){if(0===s)break t;s--,l+=n[a++]<>>=5,f-=5,r.ndist=1+(31&l),l>>>=5,f-=5,r.ncode=4+(15&l),l>>>=4,f-=4,r.nlen>286||r.ndist>30){t.msg="too many length or distance symbols",r.mode=Lo;break}r.have=0,r.mode=18;case 18:for(;r.have>>=3,f-=3}for(;r.have<19;)r.lens[R[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=Ro(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg="invalid code lengths set",r.mode=Lo;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,m=65535&A,!((b=A>>>24)<=f);){if(0===s)break t;s--,l+=n[a++]<>>=b,f-=b,r.lens[r.have++]=m;else{if(16===m){for(C=b+2;f>>=b,f-=b,0===r.have){t.msg="invalid bit length repeat",r.mode=Lo;break}k=r.lens[r.have-1],d=3+(3&l),l>>>=2,f-=2}else if(17===m){for(C=b+3;f>>=b)),l>>>=3,f-=3}else{for(C=b+7;f>>=b)),l>>>=7,f-=7}if(r.have+d>r.nlen+r.ndist){t.msg="invalid bit length repeat",r.mode=Lo;break}for(;d--;)r.lens[r.have++]=k}}if(r.mode===Lo)break;if(0===r.lens[256]){t.msg="invalid code -- missing end-of-block",r.mode=Lo;break}if(r.lenbits=9,S={bits:r.lenbits},x=Ro(1,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg="invalid literal/lengths set",r.mode=Lo;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=Ro(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){t.msg="invalid distances set",r.mode=Lo;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(s>=6&&u>=258){t.next_out=o,t.avail_out=u,t.next_in=a,t.avail_in=s,r.hold=l,r.bits=f,Eo(t,c),o=t.next_out,i=t.output,u=t.avail_out,a=t.next_in,n=t.input,s=t.avail_in,l=r.hold,f=r.bits,r.mode===To&&(r.back=-1);break}for(r.back=0;v=(A=r.lencode[l&(1<>>16&255,m=65535&A,!((b=A>>>24)<=f);){if(0===s)break t;s--,l+=n[a++]<>y)])>>>16&255,m=65535&A,!(y+(b=A>>>24)<=f);){if(0===s)break t;s--,l+=n[a++]<>>=y,f-=y,r.back+=y}if(l>>>=b,f-=b,r.back+=b,r.length=m,0===v){r.mode=26;break}if(32&v){r.back=-1,r.mode=To;break}if(64&v){t.msg="invalid literal/length code",r.mode=Lo;break}r.extra=15&v,r.mode=22;case 22:if(r.extra){for(C=r.extra;f>>=r.extra,f-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;v=(A=r.distcode[l&(1<>>16&255,m=65535&A,!((b=A>>>24)<=f);){if(0===s)break t;s--,l+=n[a++]<>y)])>>>16&255,m=65535&A,!(y+(b=A>>>24)<=f);){if(0===s)break t;s--,l+=n[a++]<>>=y,f-=y,r.back+=y}if(l>>>=b,f-=b,r.back+=b,64&v){t.msg="invalid distance code",r.mode=Lo;break}r.offset=m,r.extra=15&v,r.mode=24;case 24:if(r.extra){for(C=r.extra;f>>=r.extra,f-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg="invalid distance too far back",r.mode=Lo;break}r.mode=25;case 25:if(0===u)break t;if(d=c-u,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){t.msg="invalid distance too far back",r.mode=Lo;break}d>r.wnext?(d-=r.wnext,p=r.wsize-d):p=r.wnext-d,d>r.length&&(d=r.length),g=r.window}else g=i,p=o-r.offset,d=r.length;d>u&&(d=u),u-=d,r.length-=d;do{i[o++]=g[p++]}while(--d);0===r.length&&(r.mode=21);break;case 26:if(0===u)break t;i[o++]=r.length,u--,r.mode=21;break;case 27:if(r.wrap){for(;f<32;){if(0===s)break t;s--,l|=n[a++]<=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ko,this.strm.avail_out=0;var r=Zo.inflateInit2(this.strm,e.windowBits);if(r!==Go.Z_OK)throw new Error(Vo[r]);if(this.header=new Xo,Zo.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Yo.string2buf(e.dictionary):"[object ArrayBuffer]"===$o.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(r=Zo.inflateSetDictionary(this.strm,e.dictionary))!==Go.Z_OK))throw new Error(Vo[r])}function Qo(t,e){var r=new Jo(e);if(r.push(t,!0),r.err)throw r.msg||Vo[r.err];return r.result}Jo.prototype.push=function(t,e){var r,n,i,a,o,s=this.strm,u=this.options.chunkSize,l=this.options.dictionary,f=!1;if(this.ended)return!1;n=e===~~e?e:!0===e?Go.Z_FINISH:Go.Z_NO_FLUSH,"string"==typeof t?s.input=Yo.binstring2buf(t):"[object ArrayBuffer]"===$o.call(t)?s.input=new Uint8Array(t):s.input=t,s.next_in=0,s.avail_in=s.input.length;do{if(0===s.avail_out&&(s.output=new qo.Buf8(u),s.next_out=0,s.avail_out=u),(r=Zo.inflate(s,Go.Z_NO_FLUSH))===Go.Z_NEED_DICT&&l&&(r=Zo.inflateSetDictionary(this.strm,l)),r===Go.Z_BUF_ERROR&&!0===f&&(r=Go.Z_OK,f=!1),r!==Go.Z_STREAM_END&&r!==Go.Z_OK)return this.onEnd(r),this.ended=!0,!1;s.next_out&&(0!==s.avail_out&&r!==Go.Z_STREAM_END&&(0!==s.avail_in||n!==Go.Z_FINISH&&n!==Go.Z_SYNC_FLUSH)||("string"===this.options.to?(i=Yo.utf8border(s.output,s.next_out),a=s.next_out-i,o=Yo.buf2string(s.output,i),s.next_out=a,s.avail_out=u-a,a&&qo.arraySet(s.output,s.output,i,a,0),this.onData(o)):this.onData(qo.shrinkBuf(s.output,s.next_out)))),0===s.avail_in&&0===s.avail_out&&(f=!0)}while((s.avail_in>0||0===s.avail_out)&&r!==Go.Z_STREAM_END);return r===Go.Z_STREAM_END&&(n=Go.Z_FINISH),n===Go.Z_FINISH?(r=Zo.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Go.Z_OK):n!==Go.Z_SYNC_FLUSH||(this.onEnd(Go.Z_OK),s.avail_out=0,!0)},Jo.prototype.onData=function(t){this.chunks.push(t)},Jo.prototype.onEnd=function(t){t===Go.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=qo.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},bo.Inflate=Jo,bo.inflate=Qo,bo.inflateRaw=function(t,e){return(e=e||{}).raw=!0,Qo(t,e)},bo.ungzip=Qo;var ts={};(0,Pi.assign)(ts,Bi,bo,Wo);var es="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,rs=ts,ns=Dn(),is=jn,as=es?"uint8array":"array";function os(t,e){is.call(this,"FlateWorker/"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=e,this.meta={}}Ii.magic="\b\0",ns.inherits(os,is),os.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(ns.transformTo(as,t.data),!1)},os.prototype.flush=function(){is.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},os.prototype.cleanUp=function(){is.prototype.cleanUp.call(this),this._pako=null},os.prototype._createPako=function(){this._pako=new rs[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},Ii.compressWorker=function(t){return new os("Deflate",t)},Ii.uncompressWorker=function(){return new os("Inflate",{})};var ss=jn;Mi.STORE={magic:"\0\0",compressWorker:function(){return new ss("STORE compression")},uncompressWorker:function(){return new ss("STORE decompression")}},Mi.DEFLATE=Ii;var us={LOCAL_FILE_HEADER:"PK",CENTRAL_FILE_HEADER:"PK",CENTRAL_DIRECTORY_END:"PK",ZIP64_CENTRAL_DIRECTORY_LOCATOR:"PK",ZIP64_CENTRAL_DIRECTORY_END:"PK",DATA_DESCRIPTOR:"PK\b"},ls=Dn(),fs=jn,hs=f,cs=si,ds=us,ps=function(t,e){var r,n="";for(r=0;r>>=8;return n},gs=function(t,e,r,n,i,a){var o,s,u=t.file,l=t.compression,f=a!==hs.utf8encode,h=ls.transformTo("string",a(u.name)),c=ls.transformTo("string",hs.utf8encode(u.name)),d=u.comment,p=ls.transformTo("string",a(d)),g=ls.transformTo("string",hs.utf8encode(d)),b=c.length!==u.name.length,v=g.length!==d.length,m="",y="",w="",_=u.dir,k=u.date,x={crc32:0,compressedSize:0,uncompressedSize:0};e&&!r||(x.crc32=t.crc32,x.compressedSize=t.compressedSize,x.uncompressedSize=t.uncompressedSize);var S=0;e&&(S|=8),f||!b&&!v||(S|=2048);var C,A,E,R=0,O=0;_&&(R|=16),"UNIX"===i?(O=798,R|=(C=u.unixPermissions,A=_,E=C,C||(E=A?16893:33204),(65535&E)<<16)):(O=20,R|=63&(u.dosPermissions||0)),o=k.getUTCHours(),o<<=6,o|=k.getUTCMinutes(),o<<=5,o|=k.getUTCSeconds()/2,s=k.getUTCFullYear()-1980,s<<=4,s|=k.getUTCMonth()+1,s<<=5,s|=k.getUTCDate(),b&&(y=ps(1,1)+ps(cs(h),4)+c,m+="up"+ps(y.length,2)+y),v&&(w=ps(1,1)+ps(cs(p),4)+g,m+="uc"+ps(w.length,2)+w);var T="";return T+="\n\0",T+=ps(S,2),T+=l.magic,T+=ps(o,2),T+=ps(s,2),T+=ps(x.crc32,4),T+=ps(x.compressedSize,4),T+=ps(x.uncompressedSize,4),T+=ps(h.length,2),T+=ps(m.length,2),{fileRecord:ds.LOCAL_FILE_HEADER+T+h+m,dirRecord:ds.CENTRAL_FILE_HEADER+ps(O,2)+T+ps(p.length,2)+"\0\0\0\0"+ps(R,4)+ps(n,4)+h+m+p}},bs=function(t){return ds.DATA_DESCRIPTOR+ps(t.crc32,4)+ps(t.compressedSize,4)+ps(t.uncompressedSize,4)};function vs(t,e,r,n){fs.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}ls.inherits(vs,fs),vs.prototype.push=function(t){var e=t.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,fs.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:r?(e+100*(r-n-1))/r:100}}))},vs.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var e=this.streamFiles&&!t.file.dir;if(e){var r=gs(t,e,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},vs.prototype.closedSource=function(t){this.accumulate=!1;var e=this.streamFiles&&!t.file.dir,r=gs(t,e,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),e)this.push({data:bs(t),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},vs.prototype.flush=function(){for(var t=this.bytesWritten,e=0;e0?t.substring(0,e):""},Ds=function(t){return"/"!==t.slice(-1)&&(t+="/"),t},zs=function(t,e){return e=void 0!==e?e:Rs.createFolders,t=Ds(t),this.files[t]||Ps.call(this,t,null,{dir:!0,createFolders:e}),this.files[t]};function js(t){return"[object RegExp]"===Object.prototype.toString.call(t)}var Fs={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(t){var e,r,n;for(e in this.files)n=this.files[e],(r=e.slice(this.root.length,e.length))&&e.slice(0,this.root.length)===this.root&&t(r,n)},filter:function(t){var e=[];return this.forEach((function(r,n){t(r,n)&&e.push(n)})),e},file:function(t,e,r){if(1===arguments.length){if(js(t)){var n=t;return this.filter((function(t,e){return!e.dir&&n.test(t)}))}var i=this.files[this.root+t];return i&&!i.dir?i:null}return t=this.root+t,Ps.call(this,t,e,r),this},folder:function(t){if(!t)return this;if(js(t))return this.filter((function(e,r){return r.dir&&t.test(e)}));var e=this.root+t,r=zs.call(this,e),n=this.clone();return n.root=r.name,n},remove:function(t){t=this.root+t;var e=this.files[t];if(e||("/"!==t.slice(-1)&&(t+="/"),e=this.files[t]),e&&!e.dir)delete this.files[t];else for(var r=this.filter((function(e,r){return r.name.slice(0,t.length)===t})),n=0;n=this.index;e--)r=(r<<8)+this.byteAt(e);return this.index+=t,r},readString:function(t){return Us.transformTo("string",this.readData(t))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}};var Ws=Hs,Zs=Ws;function qs(t){Zs.call(this,t);for(var e=0;e=0;--a)if(this.data[a]===e&&this.data[a+1]===r&&this.data[a+2]===n&&this.data[a+3]===i)return a-this.zero;return-1},qs.prototype.readAndCheckSignature=function(t){var e=t.charCodeAt(0),r=t.charCodeAt(1),n=t.charCodeAt(2),i=t.charCodeAt(3),a=this.readData(4);return e===a[0]&&r===a[1]&&n===a[2]&&i===a[3]},qs.prototype.readData=function(t){if(this.checkOffset(t),0===t)return[];var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e};var Ys=qs,Gs=Ws;function Vs(t){Gs.call(this,t)}Dn().inherits(Vs,Gs),Vs.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},Vs.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},Vs.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},Vs.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e};var Ks=Vs,Xs=Ys;function $s(t){Xs.call(this,t)}Dn().inherits($s,Xs),$s.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e};var Js=$s,Qs=Js;function tu(t){Qs.call(this,t)}Dn().inherits(tu,Qs),tu.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e};var eu=tu,ru=Dn(),nu=dt,iu=Ys,au=Ks,ou=eu,su=Js,uu=function(t){var e=ru.getTypeOf(t);return ru.checkSupport(e),"string"!==e||nu.uint8array?"nodebuffer"===e?new ou(t):nu.uint8array?new su(ru.transformTo("uint8array",t)):new iu(ru.transformTo("array",t)):new au(t)},lu=uu,fu=Dn(),hu=wi,cu=si,du=f,pu=Mi,gu=dt;function bu(t,e){this.options=t,this.loadOptions=e}bu.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(t){var e,r;if(t.skip(22),this.fileNameLength=t.readInt(2),r=t.readInt(2),this.fileName=t.readData(this.fileNameLength),t.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(e=function(t){for(var e in pu)if(Object.prototype.hasOwnProperty.call(pu,e)&&pu[e].magic===t)return pu[e];return null}(this.compressionMethod),null===e)throw new Error("Corrupted zip : compression "+fu.pretty(this.compressionMethod)+" unknown (inner file : "+fu.transformTo("string",this.fileName)+")");this.decompressed=new hu(this.compressedSize,this.uncompressedSize,this.crc32,e,t.readData(this.compressedSize))},readCentralPart:function(t){this.versionMadeBy=t.readInt(2),t.skip(2),this.bitFlag=t.readInt(2),this.compressionMethod=t.readString(2),this.date=t.readDate(),this.crc32=t.readInt(4),this.compressedSize=t.readInt(4),this.uncompressedSize=t.readInt(4);var e=t.readInt(2);if(this.extraFieldsLength=t.readInt(2),this.fileCommentLength=t.readInt(2),this.diskNumberStart=t.readInt(2),this.internalFileAttributes=t.readInt(2),this.externalFileAttributes=t.readInt(4),this.localHeaderOffset=t.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");t.skip(e),this.readExtraFields(t),this.parseZIP64ExtraField(t),this.fileComment=t.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var t=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0===t&&(this.dosPermissions=63&this.externalFileAttributes),3===t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var t=lu(this.extraFields[1].value);this.uncompressedSize===fu.MAX_VALUE_32BITS&&(this.uncompressedSize=t.readInt(8)),this.compressedSize===fu.MAX_VALUE_32BITS&&(this.compressedSize=t.readInt(8)),this.localHeaderOffset===fu.MAX_VALUE_32BITS&&(this.localHeaderOffset=t.readInt(8)),this.diskNumberStart===fu.MAX_VALUE_32BITS&&(this.diskNumberStart=t.readInt(4))}},readExtraFields:function(t){var e,r,n,i=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index+41)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var t,e;for(t=0;t0)this.isSignature(e,wu.CENTRAL_FILE_HEADER)||(this.reader.zero=n);else if(n<0)throw new Error("Corrupted zip: missing "+Math.abs(n)+" bytes.")},prepareReader:function(t){this.reader=mu(t)},load:function(t){this.prepareReader(t),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}};var Su=xu,Cu=Dn(),Au=Bn,Eu=f,Ru=Su,Ou=hi,Tu=Mn;function Lu(t){return new Au.Promise((function(e,r){var n=t.decompressed.getContentWorker().pipe(new Ou);n.on("error",(function(t){r(t)})).on("end",(function(){n.streamInfo.crc32!==t.decompressed.crc32?r(new Error("Corrupted zip : CRC32 mismatch")):e()})).resume()}))}function Mu(){if(!(this instanceof Mu))return new Mu;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var t=new Mu;for(var e in this)"function"!=typeof this[e]&&(t[e]=this[e]);return t}}Mu.prototype=Ns,Mu.prototype.loadAsync=function(t,e){var r=this;return e=Cu.extend(e||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:Eu.utf8decode}),Tu.isNode&&Tu.isStream(t)?Au.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):Cu.prepareContent("the loaded zip file",t,!0,e.optimizedBinaryString,e.base64).then((function(t){var r=new Ru(e);return r.load(t),r})).then((function(t){var r=[Au.Promise.resolve(t)],n=t.files;if(e.checkCRC32)for(var i=0;i".charCodeAt(0),s="-".charCodeAt(0),u="/".charCodeAt(0),l="!".charCodeAt(0),f="'".charCodeAt(0),h='"'.charCodeAt(0),c="[".charCodeAt(0),d="]".charCodeAt(0);function p(e){for(var f=[];t[r];)if(t.charCodeAt(r)==a){if(t.charCodeAt(r+1)===u){var h=r+2;if(r=t.indexOf(">",r),-1==t.substring(h,r).indexOf(e)){var p=t.substring(0,r).split("\n");throw new Error("Unexpected close tag\nLine: "+(p.length-1)+"\nColumn: "+(p[p.length-1].length+1)+"\nChar: "+t[r])}return r+1&&(r+=1),f}if(t.charCodeAt(r+1)===l){if(t.charCodeAt(r+2)==s){const e=r;for(;-1!==r&&(t.charCodeAt(r)!==o||t.charCodeAt(r-1)!=s||t.charCodeAt(r-2)!=s||-1==r);)r=t.indexOf(">",r+1);-1===r&&(r=t.length),n&&f.push(t.substring(e,r+1))}else{if(t.charCodeAt(r+2)===c&&t.charCodeAt(r+8)===c&&"cdata"===t.substr(r+3,5).toLowerCase()){var b=t.indexOf("]]>",r);-1==b?(f.push(t.substr(r+9)),r=t.length):(f.push(t.substring(r+9,b)),r=b+3);continue}{const e=r+1;r+=2;for(var v=!1;(t.charCodeAt(r)!==o||!0===v)&&t[r];)t.charCodeAt(r)===c?v=!0:!0===v&&t.charCodeAt(r)===d&&(v=!1),r++;f.push(t.substring(e,r))}}r++;continue}var y=m();f.push(y),"?"===y.tagName[0]&&(f.push(...y.children),y.children=[])}else{var w=g();if(i)w.length>0&&f.push(w);else{var _=w.trim();_.length>0&&f.push(_)}r++}return f}function g(){var e=r;return-2===(r=t.indexOf("<",r)-1)&&(r=t.length),t.slice(e,r+1)}function b(){for(var e=r;-1==="\r\n\t>/= ".indexOf(t[r])&&t[r];)r++;return t.slice(e,r)}var v=e.noChildNodes||["img","br","input","meta","link","hr"];function m(){r++;const e=b(),n={};let i=[];for(;t.charCodeAt(r)!==o&&t[r];){var a=t.charCodeAt(r);if(a>64&&a<91||a>96&&a<123){for(var s=b(),l=t.charCodeAt(r);l&&l!==f&&l!==h&&!(l>64&&l<91||l>96&&l<123)&&l!==o;)r++,l=t.charCodeAt(r);if(l===f||l===h){var c=y();if(-1===r)return{tagName:e,attributes:n,children:i}}else c=null,r--;n[s]=c}r++}if(t.charCodeAt(r-1)!==u)if("script"==e){var d=r+1;r=t.indexOf("<\/script>",r),i=[t.slice(d,r)],r+=9}else if("style"==e){d=r+1;r=t.indexOf("",r),i=[t.slice(d,r)],r+=8}else-1===v.indexOf(e)?(r++,i=p(e)):r++;else r++;return{tagName:e,attributes:n,children:i}}function y(){var e=t[r],n=r+1;return r=t.indexOf(e,n),t.slice(n,r)}var w,_=null;if(void 0!==e.attrValue){e.attrName=e.attrName||"id";for(_=[];-1!==(w=void 0,w=new RegExp("\\s"+e.attrName+"\\s*=['\"]"+e.attrValue+"['\"]").exec(t),r=w?w.index:-1);)-1!==(r=t.lastIndexOf("<",r))&&_.push(m()),t=t.substr(r),r=0}else _=e.parseNode?m():p("");return e.filter&&(_=zu(_,e.filter)),e.simplify?Du(Array.isArray(_)?_:[_]):(e.setPos&&(_.pos=r),_)}function Du(t){var e={};if(!t.length)return"";if(1===t.length&&"string"==typeof t[0])return t[0];for(var r in t.forEach((function(t){if("object"==typeof t){e[t.tagName]||(e[t.tagName]=[]);var r=Du(t.children);e[t.tagName].push(r),Object.keys(t.attributes).length&&"string"!=typeof r&&(r._attributes=t.attributes)}})),e)1==e[r].length&&(e[r]=e[r][0]);return e}function zu(t,e,r=0,n=""){var i=[];return t.forEach((function(t,a){if("object"==typeof t&&e(t,a,r,n)&&i.push(t),t.children){var o=zu(t.children,e,r+1,(n?n+".":"")+a+"."+t.tagName);i=i.concat(o)}})),i}function ju(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return Fu(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Fu(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Fu(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1&&void 0!==arguments[1]?arguments[1]:{},r={};if(!t.length)return r;if(1===t.length&&"string"==typeof t[0])return Object.keys(e).length?{attrs:Uu({order:Hu++},e),value:t[0]}:t[0];var n,i=ju(t);try{for(i.s();!(n=i.n()).done;){var a=n.value;if("object"!==Pu(a))return;if("?xml"!==a.tagName){r[a.tagName]||(r[a.tagName]=[]);var o=Wu(a.children||[],a.attributes);r[a.tagName].push(o),Object.keys(a.attributes).length&&(o.attrs=Uu({order:Hu++},a.attributes))}}}catch(t){i.e(t)}finally{i.f()}for(var s in r)1===r[s].length&&(r[s]=r[s][0]);return r}function Zu(t,e){return qu.apply(this,arguments)}function qu(){return(qu=n(l.mark((function t(e,r){var n;return l.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e.file(r).async("string");case 3:return n=t.sent,t.abrupt("return",Wu(Bu(n)));case 7:return t.prev=7,t.t0=t.catch(0),t.abrupt("return",null);case 10:case"end":return t.stop()}}),t,null,[[0,7]])})))).apply(this,arguments)}function Yu(t){return Yu="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Yu(t)}var Gu=/^\s+/,Vu=/\s+$/;function Ku(t,e){if(e=e||{},(t=t||"")instanceof Ku)return t;if(!(this instanceof Ku))return new Ku(t,e);var r=function(t){var e={r:0,g:0,b:0},r=1,n=null,i=null,a=null,o=!1,s=!1;"string"==typeof t&&(t=function(t){t=t.replace(Gu,"").replace(Vu,"").toLowerCase();var e,r=!1;if(cl[t])t=cl[t],r=!0;else if("transparent"==t)return{r:0,g:0,b:0,a:0,format:"name"};if(e=Cl.rgb.exec(t))return{r:e[1],g:e[2],b:e[3]};if(e=Cl.rgba.exec(t))return{r:e[1],g:e[2],b:e[3],a:e[4]};if(e=Cl.hsl.exec(t))return{h:e[1],s:e[2],l:e[3]};if(e=Cl.hsla.exec(t))return{h:e[1],s:e[2],l:e[3],a:e[4]};if(e=Cl.hsv.exec(t))return{h:e[1],s:e[2],v:e[3]};if(e=Cl.hsva.exec(t))return{h:e[1],s:e[2],v:e[3],a:e[4]};if(e=Cl.hex8.exec(t))return{r:vl(e[1]),g:vl(e[2]),b:vl(e[3]),a:_l(e[4]),format:r?"name":"hex8"};if(e=Cl.hex6.exec(t))return{r:vl(e[1]),g:vl(e[2]),b:vl(e[3]),format:r?"name":"hex"};if(e=Cl.hex4.exec(t))return{r:vl(e[1]+""+e[1]),g:vl(e[2]+""+e[2]),b:vl(e[3]+""+e[3]),a:_l(e[4]+""+e[4]),format:r?"name":"hex8"};if(e=Cl.hex3.exec(t))return{r:vl(e[1]+""+e[1]),g:vl(e[2]+""+e[2]),b:vl(e[3]+""+e[3]),format:r?"name":"hex"};return!1}(t));"object"==Yu(t)&&(Al(t.r)&&Al(t.g)&&Al(t.b)?(u=t.r,l=t.g,f=t.b,e={r:255*gl(u,255),g:255*gl(l,255),b:255*gl(f,255)},o=!0,s="%"===String(t.r).substr(-1)?"prgb":"rgb"):Al(t.h)&&Al(t.s)&&Al(t.v)?(n=yl(t.s),i=yl(t.v),e=function(t,e,r){t=6*gl(t,360),e=gl(e,100),r=gl(r,100);var n=Math.floor(t),i=t-n,a=r*(1-e),o=r*(1-i*e),s=r*(1-(1-i)*e),u=n%6;return{r:255*[r,o,a,a,s,r][u],g:255*[s,r,r,o,a,a][u],b:255*[a,a,s,r,r,o][u]}}(t.h,n,i),o=!0,s="hsv"):Al(t.h)&&Al(t.s)&&Al(t.l)&&(n=yl(t.s),a=yl(t.l),e=function(t,e,r){var n,i,a;function o(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}if(t=gl(t,360),e=gl(e,100),r=gl(r,100),0===e)n=i=a=r;else{var s=r<.5?r*(1+e):r+e-r*e,u=2*r-s;n=o(u,s,t+1/3),i=o(u,s,t),a=o(u,s,t-1/3)}return{r:255*n,g:255*i,b:255*a}}(t.h,n,a),o=!0,s="hsl"),t.hasOwnProperty("a")&&(r=t.a));var u,l,f;return r=pl(r),{ok:o,format:t.format||s,r:Math.min(255,Math.max(e.r,0)),g:Math.min(255,Math.max(e.g,0)),b:Math.min(255,Math.max(e.b,0)),a:r}}(t);this._originalInput=t,this._r=r.r,this._g=r.g,this._b=r.b,this._a=r.a,this._roundA=Math.round(100*this._a)/100,this._format=e.format||r.format,this._gradientType=e.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=r.ok}function Xu(t,e,r){t=gl(t,255),e=gl(e,255),r=gl(r,255);var n,i,a=Math.max(t,e,r),o=Math.min(t,e,r),s=(a+o)/2;if(a==o)n=i=0;else{var u=a-o;switch(i=s>.5?u/(2-a-o):u/(a+o),a){case t:n=(e-r)/u+(e>1)+720)%360;--e;)n.h=(n.h+i)%360,a.push(Ku(n));return a}function hl(t,e){e=e||6;for(var r=Ku(t).toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/e;e--;)o.push(Ku({h:n,s:i,v:a})),a=(a+s)%1;return o}Ku.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var t,e,r,n=this.toRgb();return t=n.r/255,e=n.g/255,r=n.b/255,.2126*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.7152*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.0722*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))},setAlpha:function(t){return this._a=pl(t),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var t=$u(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=$u(this._r,this._g,this._b),e=Math.round(360*t.h),r=Math.round(100*t.s),n=Math.round(100*t.v);return 1==this._a?"hsv("+e+", "+r+"%, "+n+"%)":"hsva("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var t=Xu(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=Xu(this._r,this._g,this._b),e=Math.round(360*t.h),r=Math.round(100*t.s),n=Math.round(100*t.l);return 1==this._a?"hsl("+e+", "+r+"%, "+n+"%)":"hsla("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHex:function(t){return Ju(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(t){return function(t,e,r,n,i){var a=[ml(Math.round(t).toString(16)),ml(Math.round(e).toString(16)),ml(Math.round(r).toString(16)),ml(wl(n))];if(i&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)&&a[3].charAt(0)==a[3].charAt(1))return a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0);return a.join("")}(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return"#"+this.toHex8(t)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(100*gl(this._r,255))+"%",g:Math.round(100*gl(this._g,255))+"%",b:Math.round(100*gl(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*gl(this._r,255))+"%, "+Math.round(100*gl(this._g,255))+"%, "+Math.round(100*gl(this._b,255))+"%)":"rgba("+Math.round(100*gl(this._r,255))+"%, "+Math.round(100*gl(this._g,255))+"%, "+Math.round(100*gl(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(dl[Ju(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e="#"+Qu(this._r,this._g,this._b,this._a),r=e,n=this._gradientType?"GradientType = 1, ":"";if(t){var i=Ku(t);r="#"+Qu(i._r,i._g,i._b,i._a)}return"progid:DXImageTransform.Microsoft.gradient("+n+"startColorstr="+e+",endColorstr="+r+")"},toString:function(t){var e=!!t;t=t||this._format;var r=!1,n=this._a<1&&this._a>=0;return e||!n||"hex"!==t&&"hex6"!==t&&"hex3"!==t&&"hex4"!==t&&"hex8"!==t&&"name"!==t?("rgb"===t&&(r=this.toRgbString()),"prgb"===t&&(r=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(r=this.toHexString()),"hex3"===t&&(r=this.toHexString(!0)),"hex4"===t&&(r=this.toHex8String(!0)),"hex8"===t&&(r=this.toHex8String()),"name"===t&&(r=this.toName()),"hsl"===t&&(r=this.toHslString()),"hsv"===t&&(r=this.toHsvString()),r||this.toHexString()):"name"===t&&0===this._a?this.toName():this.toRgbString()},clone:function(){return Ku(this.toString())},_applyModification:function(t,e){var r=t.apply(null,[this].concat([].slice.call(e)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(nl,arguments)},brighten:function(){return this._applyModification(il,arguments)},darken:function(){return this._applyModification(al,arguments)},desaturate:function(){return this._applyModification(tl,arguments)},saturate:function(){return this._applyModification(el,arguments)},greyscale:function(){return this._applyModification(rl,arguments)},spin:function(){return this._applyModification(ol,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(fl,arguments)},complement:function(){return this._applyCombination(sl,arguments)},monochromatic:function(){return this._applyCombination(hl,arguments)},splitcomplement:function(){return this._applyCombination(ll,arguments)},triad:function(){return this._applyCombination(ul,[3])},tetrad:function(){return this._applyCombination(ul,[4])}},Ku.fromRatio=function(t,e){if("object"==Yu(t)){var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]="a"===n?t[n]:yl(t[n]));t=r}return Ku(t,e)},Ku.equals=function(t,e){return!(!t||!e)&&Ku(t).toRgbString()==Ku(e).toRgbString()},Ku.random=function(){return Ku.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},Ku.mix=function(t,e,r){r=0===r?0:r||50;var n=Ku(t).toRgb(),i=Ku(e).toRgb(),a=r/100;return Ku({r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a})},Ku.readability=function(t,e){var r=Ku(t),n=Ku(e);return(Math.max(r.getLuminance(),n.getLuminance())+.05)/(Math.min(r.getLuminance(),n.getLuminance())+.05)},Ku.isReadable=function(t,e,r){var n,i,a=Ku.readability(t,e);switch(i=!1,(n=function(t){var e,r;e=((t=t||{level:"AA",size:"small"}).level||"AA").toUpperCase(),r=(t.size||"small").toLowerCase(),"AA"!==e&&"AAA"!==e&&(e="AA");"small"!==r&&"large"!==r&&(r="small");return{level:e,size:r}}(r)).level+n.size){case"AAsmall":case"AAAlarge":i=a>=4.5;break;case"AAlarge":i=a>=3;break;case"AAAsmall":i=a>=7}return i},Ku.mostReadable=function(t,e,r){var n,i,a,o,s=null,u=0;i=(r=r||{}).includeFallbackColors,a=r.level,o=r.size;for(var l=0;lu&&(u=n,s=Ku(e[l]));return Ku.isReadable(t,s,{level:a,size:o})||!i?s:(r.includeFallbackColors=!1,Ku.mostReadable(t,["#fff","#000"],r))};var cl=Ku.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},dl=Ku.hexNames=function(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[t[r]]=r);return e}(cl);function pl(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function gl(t,e){(function(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)})(t)&&(t="100%");var r=function(t){return"string"==typeof t&&-1!=t.indexOf("%")}(t);return t=Math.min(e,Math.max(0,parseFloat(t))),r&&(t=parseInt(t*e,10)/100),Math.abs(t-e)<1e-6?1:t%e/parseFloat(e)}function bl(t){return Math.min(1,Math.max(0,t))}function vl(t){return parseInt(t,16)}function ml(t){return 1==t.length?"0"+t:""+t}function yl(t){return t<=1&&(t=100*t+"%"),t}function wl(t){return Math.round(255*parseFloat(t)).toString(16)}function _l(t){return vl(t)/255}var kl,xl,Sl,Cl=(xl="[\\s|\\(]+("+(kl="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+kl+")[,|\\s]+("+kl+")\\s*\\)?",Sl="[\\s|\\(]+("+kl+")[,|\\s]+("+kl+")[,|\\s]+("+kl+")[,|\\s]+("+kl+")\\s*\\)?",{CSS_UNIT:new RegExp(kl),rgb:new RegExp("rgb"+xl),rgba:new RegExp("rgba"+Sl),hsl:new RegExp("hsl"+xl),hsla:new RegExp("hsla"+Sl),hsv:new RegExp("hsv"+xl),hsva:new RegExp("hsva"+Sl),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function Al(t){return!!Cl.CSS_UNIT.exec(t)}function El(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return Rl(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Rl(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Rl(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r>18]+r[(258048&e)>>12]+r[(4032&e)>>6]+r[63&e];return 1===a?s+=r[(252&(e=n[o]))>>2]+r[(3&e)<<4]+"==":2===a&&(s+=r[(64512&(e=n[o]<<8|n[o+1]))>>10]+r[(1008&e)>>4]+r[(15&e)<<2]+"="),s}function Tl(t){return t.substr(2+(~-t.lastIndexOf(".")>>>0))}function Ll(t,e){if(!t)return t;var r="";if(t.constructor===Array)for(var n=0;n":">",'"':""","'":"'"};return t.replace(/[&<>"']/g,(function(t){return e[t]}))}function Bl(t){var e="";switch(t.toLowerCase()){case"jpg":case"jpeg":e="image/jpeg";break;case"png":e="image/png";break;case"gif":e="image/gif";break;case"emf":e="image/x-emf";break;case"wmf":e="image/x-wmf";break;case"svg":e="image/svg+xml";break;case"mp4":e="video/mp4";break;case"webm":e="video/webm";break;case"ogg":e="video/ogg";break;case"avi":e="video/avi";break;case"mpg":e="video/mpg";break;case"wmv":e="video/wmv";break;case"mp3":e="audio/mpeg";break;case"wav":e="audio/wav";break;case"tif":case"tiff":e="image/tiff"}return e}function Dl(t){return/^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/.test(t)}function zl(t){for(var e=t.toString(16);e.length<2;)e="0"+e;return e}function jl(t,e,r,n){var i,a;if(r)a=r;else{var o=Ml(e.slideContent,["p:sld","p:clrMapOvr","a:overrideClrMapping","attrs"]);a=o||((o=Ml(e.slideLayoutContent,["p:sldLayout","p:clrMapOvr","a:overrideClrMapping","attrs"]))||Ml(e.slideMasterContent,["p:sldMaster","p:clrMap","attrs"]))}var s=t.substr(2);if("phClr"===s&&n)i=n;else{if(a)switch(s){case"tx1":case"tx2":case"bg1":case"bg2":t="a:"+a[s]}else switch(t){case"tx1":t="a:dk1";break;case"tx2":t="a:dk2";break;case"bg1":t="a:lt1";break;case"bg2":t="a:lt2"}var u=Ml(e.themeContent,["a:theme","a:themeElements","a:clrScheme",t]);!(i=Ml(u,["a:srgbClr","attrs","val"]))&&u&&(i=Ml(u,["a:sysClr","attrs","lastClr"]))}return i}function Fl(t,e,r){var n=t["p:spPr"]["a:ln"],i=parseInt(Ml(n,["attrs","w"]))/12700;isNaN(i)&&(i=n||"obj"!==e?0:1);var a=Ml(n,["a:solidFill","a:srgbClr","attrs","val"]);if(!a){var o=Ml(n,["a:solidFill","a:schemeClr"]);a=jl("a:"+Ml(o,["attrs","val"]),r)}if(!a){var s=Ml(t,["p:style","a:lnRef","a:schemeClr"]);if(a=jl("a:"+Ml(s,["attrs","val"]),r)){var u=Ml(s,["a:shade","attrs","val"]);if(u){u=parseInt(u)/1e5;var l=Ku("#"+a).toHsl();a=Ku({h:l.h,s:l.s,l:l.l*u,a:l.a}).toHex()}}}a=a?"#".concat(a):"#000";var f="solid",h="0";switch(Ml(n,["a:prstDash","attrs","val"])){case"solid":f="solid",h="0";break;case"dash":f="dashed",h="5";break;case"dashDot":f="dashed",h="5, 5, 1, 5";break;case"dot":f="dotted",h="1, 5";break;case"lgDash":f="dashed",h="10, 5";break;case"lgDashDotDot":f="dotted",h="10, 5, 1, 5, 1, 5";break;case"sysDash":f="dashed",h="5, 2";break;case"sysDashDot":f="dotted",h="5, 2, 1, 5";break;case"sysDashDotDot":f="dotted",h="5, 2, 1, 5, 1, 5";break;case"sysDot":f="dotted",h="2, 5"}return{borderColor:a,borderWidth:i,borderType:f,strokeDasharray:h}}function Nl(t,e,r){return r<0&&(r+=6),r>=6&&(r-=6),r<1?(e-t)*r+t:r<3?e:r<4?(e-t)*(4-r)+t:t}function Ul(t){var e="";return t["a:noFill"]&&(e="NO_FILL"),t["a:solidFill"]&&(e="SOLID_FILL"),t["a:gradFill"]&&(e="GRADIENT_FILL"),t["a:pattFill"]&&(e="PATTERN_FILL"),t["a:blipFill"]&&(e="PIC_FILL"),t["a:grpFill"]&&(e="GROUP_FILL"),e}function Hl(t,e,r){return Wl.apply(this,arguments)}function Wl(){return Wl=n(l.mark((function t(e,r,n){var i,a,o,s,u,f;return l.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=r["a:blip"].attrs["r:embed"],"slideBg"===e||"slide"===e?o=Ml(n,["slideResObj",a,"target"]):"slideLayoutBg"===e?o=Ml(n,["layoutResObj",a,"target"]):"slideMasterBg"===e?o=Ml(n,["masterResObj",a,"target"]):"themeBg"===e?o=Ml(n,["themeResObj",a,"target"]):"diagramBg"===e&&(o=Ml(n,["diagramResObj",a,"target"])),o){t.next=4;break}return t.abrupt("return",o);case 4:if(i=Ml(n,["loaded-images",o])){t.next=15;break}if(o=Pl(o),"xml"!==(s=o.split(".").pop())){t.next=10;break}return t.abrupt("return",void 0);case 10:return t.next=12,n.zip.file(o).async("arraybuffer");case 12:u=t.sent,f=Bl(s),i="data:".concat(f,";base64,").concat(Ol(u));case 15:return t.abrupt("return",i);case 16:case"end":return t.stop()}}),t)}))),Wl.apply(this,arguments)}function Zl(t,e,r){return ql.apply(this,arguments)}function ql(){return(ql=n(l.mark((function t(e,r,n){var i,a,o,s;return l.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,Hl(r,e["a:blipFill"],n);case 2:return i=t.sent,a=e["a:blipFill"]["a:blip"],o=Ml(a,["a:alphaModFix","attrs"]),s=1,o&&o.amt&&""!==o.amt&&(s=parseInt(o.amt)/1e5),t.abrupt("return",{picBase64:i,opacity:s});case 8:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function Yl(t,e,r,n){if(t){for(var i=t["a:gradFill"],a=i["a:gsLst"]["a:gs"],o=[],s=0;s1e3&&(k=_-1e3,x=e.themeContent["a:theme"]["a:themeElements"]["a:fmtScheme"]["a:bgFillStyleLst"],S=[],Object.keys(x).forEach((function(t){var e=x[t];if("attrs"!==t)if(e.constructor===Array)for(var r=0;r1e3)){t.next=89;break}if(F=j-1e3,N=e.themeContent["a:theme"]["a:themeElements"]["a:fmtScheme"]["a:bgFillStyleLst"],U=[],Object.keys(N).forEach((function(t){var e=N[t];if("attrs"!==t)if(e.constructor===Array)for(var r=0;r1e3)){t.next=142;break}if(et=tt-1e3,rt=e.themeContent["a:theme"]["a:themeElements"]["a:fmtScheme"]["a:bgFillStyleLst"],nt=[],Object.keys(rt).forEach((function(t){var e=rt[t];if("attrs"!==t)if(e.constructor===Array)for(var r=0;r=360&&(i-=360),r?Ku({h:i,s:n.s,l:n.l,a:n.a}).toHex8():Ku({h:i,s:n.s,l:n.l,a:n.a}).toHex()}(s,y,b));var w=parseInt(Ml(i,["a:lumMod","attrs","val"]))/1e5;isNaN(w)||(s=function(t,e,r){var n=Ku(t).toHsl(),i=n.l*e;return i>=1&&(i=1),r?Ku({h:n.h,s:n.s,l:i,a:n.a}).toHex8():Ku({h:n.h,s:n.s,l:i,a:n.a}).toHex()}(s,w,b));var _=parseInt(Ml(i,["a:lumOff","attrs","val"]))/1e5;isNaN(_)||(s=function(t,e,r){var n=Ku(t).toHsl(),i=e+n.l;return i>=1?r?Ku({h:n.h,s:n.s,l:1,a:n.a}).toHex8():Ku({h:n.h,s:n.s,l:1,a:n.a}).toHex():r?Ku({h:n.h,s:n.s,l:i,a:n.a}).toHex8():Ku({h:n.h,s:n.s,l:i,a:n.a}).toHex()}(s,_,b));var k=parseInt(Ml(i,["a:satMod","attrs","val"]))/1e5;isNaN(k)||(s=function(t,e,r){var n=Ku(t).toHsl(),i=n.s*e;return i>=1&&(i=1),r?Ku({h:n.h,s:i,l:n.l,a:n.a}).toHex8():Ku({h:n.h,s:i,l:n.l,a:n.a}).toHex()}(s,k,b));var x=parseInt(Ml(i,["a:shade","attrs","val"]))/1e5;isNaN(x)||(s=function(t,e,r){var n=Ku(t).toHsl();e>=1&&(e=1);var i=Math.min(n.l*e,1);return r?Ku({h:n.h,s:n.s,l:i,a:n.a}).toHex8():Ku({h:n.h,s:n.s,l:i,a:n.a}).toHex()}(s,x,b));var S=parseInt(Ml(i,["a:tint","attrs","val"]))/1e5;return isNaN(S)||(s=function(t,e,r){var n=Ku(t).toHsl();e>=1&&(e=1);var i=n.l*e+(1-e);return r?Ku({h:n.h,s:n.s,l:i,a:n.a}).toHex8():Ku({h:n.h,s:n.s,l:i,a:n.a}).toHex()}(s,S,b)),s&&-1===s.indexOf("#")&&(s="#"+s),s}function $l(t){var e=[];if(!t)return e;if(t["c:xVal"]){var r=[];Ll(t["c:xVal"]["c:numRef"]["c:numCache"]["c:pt"],(function(t){return r.push(parseFloat(t["c:v"])),""})),e.push(r),r=[],Ll(t["c:yVal"]["c:numRef"]["c:numCache"]["c:pt"],(function(t){return r.push(parseFloat(t["c:v"])),""})),e.push(r)}else Ll(t,(function(t,r){var n=[],i=Ml(t,["c:tx","c:strRef","c:strCache","c:pt","c:v"])||r,a={};return Ml(t,["c:cat","c:strRef","c:strCache","c:pt"])?Ll(t["c:cat"]["c:strRef"]["c:strCache"]["c:pt"],(function(t){return a[t.attrs.idx]=t["c:v"],""})):Ml(t,["c:cat","c:numRef","c:numCache","c:pt"])&&Ll(t["c:cat"]["c:numRef"]["c:numCache"]["c:pt"],(function(t){return a[t.attrs.idx]=t["c:v"],""})),Ml(t,["c:val","c:numRef","c:numCache","c:pt"])&&Ll(t["c:val"]["c:numRef"]["c:numCache"]["c:pt"],(function(t){return n.push({x:t.attrs.idx,y:parseFloat(t["c:v"])}),""})),e.push({key:i,values:n,xlabels:a}),""}));return e}function Jl(t){var e=null;for(var r in t)switch(r){case"c:lineChart":e={type:"lineChart",data:$l(t[r]["c:ser"]),grouping:Ml(t[r],["c:grouping","attrs","val"]),marker:!!t[r]["c:marker"]};break;case"c:line3DChart":e={type:"line3DChart",data:$l(t[r]["c:ser"]),grouping:Ml(t[r],["c:grouping","attrs","val"])};break;case"c:barChart":e={type:"barChart",data:$l(t[r]["c:ser"]),grouping:Ml(t[r],["c:grouping","attrs","val"]),barDir:Ml(t[r],["c:barDir","attrs","val"])};break;case"c:bar3DChart":e={type:"bar3DChart",data:$l(t[r]["c:ser"]),grouping:Ml(t[r],["c:grouping","attrs","val"]),barDir:Ml(t[r],["c:barDir","attrs","val"])};break;case"c:pieChart":e={type:"pieChart",data:$l(t[r]["c:ser"])};break;case"c:pie3DChart":e={type:"pie3DChart",data:$l(t[r]["c:ser"])};break;case"c:doughnutChart":e={type:"doughnutChart",data:$l(t[r]["c:ser"]),holeSize:Ml(t[r],["c:holeSize","attrs","val"])};break;case"c:areaChart":e={type:"areaChart",data:$l(t[r]["c:ser"]),grouping:Ml(t[r],["c:grouping","attrs","val"])};break;case"c:area3DChart":e={type:"area3DChart",data:$l(t[r]["c:ser"]),grouping:Ml(t[r],["c:grouping","attrs","val"])};break;case"c:scatterChart":e={type:"scatterChart",data:$l(t[r]["c:ser"]),style:Ml(t[r],["c:scatterStyle","attrs","val"])};break;case"c:bubbleChart":e={type:"bubbleChart",data:$l(t[r]["c:ser"])};break;case"c:radarChart":e={type:"radarChart",data:$l(t[r]["c:ser"]),style:Ml(t[r],["c:radarStyle","attrs","val"])};break;case"c:surfaceChart":e={type:"surfaceChart",data:$l(t[r]["c:ser"])};break;case"c:surface3DChart":e={type:"surface3DChart",data:$l(t[r]["c:ser"])};break;case"c:stockChart":e={type:"stockChart",data:$l(t[r]["c:ser"])}}return e}function Ql(t,e,r,n){var i=Ml(t,["a:pPr","attrs","algn"]);if(i||(i=Ml(e,["a:pPr","attrs","algn"])),!i)if("title"===r||"ctrTitle"===r||"subTitle"===r){var a=1,o=Ml(e,["a:pPr","attrs","lvl"]);o&&(a=parseInt(o)+1);var s="a:lvl"+a+"pPr";(i=Ml(n,["slideLayoutTables","typeTable",r,"p:txBody","a:lstStyle",s,"attrs","algn"]))||(i=Ml(n,["slideMasterTables","typeTable",r,"p:txBody","a:lstStyle",s,"attrs","algn"])),i||(i=Ml(n,["slideMasterTextStyles","p:titleStyle",s,"attrs","algn"])),i||"subTitle"!==r||(i=Ml(n,["slideMasterTextStyles","p:bodyStyle",s,"attrs","algn"]))}else i=Ml(n,"body"===r?["slideMasterTextStyles","p:bodyStyle","a:lvl1pPr","attrs","algn"]:["slideMasterTables","typeTable",r,"p:txBody","a:lstStyle","a:lvl1pPr","attrs","algn"]);var u="left";if(i)switch(i){case"l":u="left";break;case"r":u="right";break;case"ctr":u="center";break;case"just":case"dist":u="justify";break;default:u="inherit"}return u}var tf=72/914400;function ef(t,e,r){var n;return t?n=t["a:off"].attrs:e?n=e["a:off"].attrs:r&&(n=r["a:off"].attrs),n?{top:parseInt(n.y)*tf,left:parseInt(n.x)*tf}:{top:0,left:0}}function rf(t,e,r){var n;return t?n=t["a:ext"].attrs:e?n=e["a:ext"].attrs:r&&(n=r["a:ext"].attrs),n?{width:parseInt(n.cx)*tf,height:parseInt(n.cy)*tf}:{width:0,height:0}}function nf(t,e){var r=Xl(t,void 0,void 0,e),n=t.attrs,i=n.dir?parseInt(n.dir)/6e4:0,a=parseInt(n.dist)*tf,o=n.blurRad?parseInt(n.blurRad)*tf:"",s=a*Math.sin(i*Math.PI/180);return{h:a*Math.cos(i*Math.PI/180),v:s,blur:o,color:r}}function af(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return of(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return of(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function of(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1&&p.shift(),(c=c.concat(p)).sort((function(t,e){return!t.attrs||!e.attrs||t.attrs.order-e.attrs.order}))));var g=Ql(h,e,n,i),b=uf(h);if(b?(l?l&&l!==b&&(o+=""),o+="<".concat(b,">"),l=b):(o+="<".concat(b,">"),l=b),o+='
  • ')):(l&&(o+=""),l=""),o+='

    ')),c){var v,m=af(c);try{for(m.s();!(v=m.n()).done;){o+=lf(v.value,h,t,s,r,n,i)}}catch(t){m.e(t)}finally{m.f()}}else o+=lf(h,e,t,s,r,n,i);o+=b?"

  • ":"

    "}}catch(t){f.e(t)}finally{f.f()}return o}function uf(t){var e=t["a:pPr"];return e?e["a:buChar"]?"ul":e["a:buAutoNum"]?"ol":"":""}function lf(t,e,r,n,i,a,o){var s=r["a:lstStyle"],u=o.slideMasterTextStyles,l=1,f=Ml(e["a:pPr"],["attrs","lvl"]);void 0!==f&&(l=parseInt(f)+1);var h=t["a:t"];"string"!=typeof h&&(h=Ml(t,["a:fld","a:t"])),"string"!=typeof h&&(h=" ");var c="",d=function(t,e,r,n,i,a){var o,s=Ml(t,["a:rPr"]);if(s&&"SOLID_FILL"===Ul(s)&&(o=Xl(s["a:solidFill"],void 0,void 0,a)),!o&&Ml(r,["a:lvl"+i+"pPr","a:defRPr"])){var u=Ml(r,["a:lvl"+i+"pPr","a:defRPr"]);"SOLID_FILL"===Ul(u)&&(o=Xl(u["a:solidFill"],void 0,void 0,a))}if(!o){var l=Ml(e,["p:style","a:fontRef"]);l&&(o=Xl(l,void 0,void 0,a)),!o&&n&&(o=Xl(n,void 0,void 0,a))}return o||""}(t,e,s,n,l,o),p=function(t,e,r,n){var i,a;if(Ml(t,["a:rPr","attrs","sz"])&&(i=Ml(t,["a:rPr","attrs","sz"])/100),isNaN(i)||!i){var o=Ml(e,["p:txBody","a:lstStyle","a:lvl1pPr","a:defRPr","attrs","sz"]);i=parseInt(o)/100}return!isNaN(i)&&i||("title"===r||"subTitle"===r||"ctrTitle"===r?a=Ml(n,["p:titleStyle","a:lvl1pPr","a:defRPr","attrs","sz"]):"body"===r?a=Ml(n,["p:bodyStyle","a:lvl1pPr","a:defRPr","attrs","sz"]):"dt"===r||"sldNum"===r?a="1200":r||(a=Ml(n,["p:otherStyle","a:lvl1pPr","a:defRPr","attrs","sz"])),a&&(i=parseInt(a)/100)),Ml(t,["a:rPr","attrs","baseline"])&&!isNaN(i)&&(i-=10),(i=isNaN(i)||!i?18:i)+"pt"}(t,i,a,u),g=function(t,e,r){var n=Ml(t,["a:rPr","a:latin","attrs","typeface"]);if(!n){var i=Ml(r.themeContent,["a:theme","a:themeElements","a:fontScheme"]);n=Ml(i,"title"===e||"subTitle"===e||"ctrTitle"===e?["a:majorFont","a:latin","attrs","typeface"]:["a:minorFont","a:latin","attrs","typeface"])}return n||""}(t,a,o),b=function(t){return"1"===Ml(t,["a:rPr","attrs","b"])?"bold":""}(t),v=function(t){return"1"===Ml(t,["a:rPr","attrs","i"])?"italic":""}(t),m=function(t){return"sng"===Ml(t,["a:rPr","attrs","u"])?"underline":""}(t),y=function(t){return"sngStrike"===Ml(t,["a:rPr","attrs","strike"])?"line-through":""}(t),w=function(t){var e=Ml(t,["a:rPr","attrs","spc"]);return e?parseInt(e)/100+"pt":""}(t),_=function(t,e){var r=Ml(t,["a:rPr","a:effectLst","a:outerShdw"]);if(r){var n=nf(r,e);if(n){var i=n.h,a=n.v,o=n.blur,s=n.color;if(!isNaN(a)&&!isNaN(i))return i+"pt "+a+"pt "+(o?o+"pt":"")+" "+s}}return""}(t,o),k=function(t){var e=Ml(t,["a:rPr","attrs","baseline"]);return e?parseInt(e)>0?"super":"sub":""}(t);d&&(c+="color: ".concat(d,";")),p&&(c+="font-size: ".concat(p,";")),g&&(c+="font-family: ".concat(g,";")),b&&(c+="font-weight: ".concat(b,";")),v&&(c+="font-style: ".concat(v,";")),m&&(c+="text-decoration: ".concat(m,";")),y&&(c+="text-decoration-line: ".concat(y,";")),w&&(c+="letter-spacing: ".concat(w,";")),k&&(c+="vertical-align: ".concat(k,";")),_&&(c+="text-shadow: ".concat(_,";"));var x=Ml(t,["a:rPr","a:hlinkClick","attrs","r:id"]);if(x){var S=o.slideResObj[x].target;return'').concat(h.replace(/\t/g,"    ").replace(/\s/g," "),"")}return'').concat(h.replace(/\t/g,"    ").replace(/\s/g," "),"")}function ff(t,e,r,n,i,a,o){var s,u=i;if(a>=i)for(;u<=a;){var l=u*(Math.PI/180),f=t+Math.cos(l)*r,h=e+Math.sin(l)*n;u===i&&(s=" M"+f+" "+h),s+=" L"+f+" "+h,u++}else for(;u>a;){var c=u*(Math.PI/180),d=t+Math.cos(c)*r,p=e+Math.sin(c)*n;u===i&&(s=" M "+d+" "+p),s+=" L "+d+" "+p,u--}return s+=o?" z":""}function hf(t,e,r,n){var i,a,o,s,u,l=Ml(t,["attrs","rowSpan"]),f=Ml(t,["attrs","gridSpan"]),h=Ml(t,["attrs","vMerge"]),c=Ml(t,["attrs","hMerge"]),d=Ml(t,["a:tcPr"]);d&&(i=Kl({"p:spPr":d},void 0,n));i||(r&&(s=Ml(e,[r,"a:tcStyle","a:fill","a:solidFill"])),s&&(i=Xl(s,void 0,void 0,n)));return r&&(u=Ml(e,[r,"a:tcTxStyle"])),u&&(a=Xl(u,void 0,void 0,n),"on"===Ml(u,["attrs","b"])&&(o=!0)),{fillColor:i,fontColor:a,fontBold:o,rowSpan:l?+l:void 0,colSpan:f?+f:void 0,vMerge:h?+h:void 0,hMerge:c?+c:void 0}}function cf(t,e,r,n,i){var a,o,s;if(n&&n["a:wholeTbl"]){var u=Ml(n,["a:wholeTbl","a:tcStyle","a:fill","a:solidFill"]);if(u){var l=Xl(u,void 0,void 0,i);l&&(a=l)}var f=Ml(n,["a:wholeTbl","a:tcTxStyle"]);if(f){var h=Xl(f,void 0,void 0,i);h&&(o=h),"on"===Ml(f,["attrs","b"])&&(s=!0)}}if(0===e&&1===r.isFrstRowAttr&&n){var c=Ml(n,["a:firstRow","a:tcStyle","a:fill","a:solidFill"]);if(c){var d=Xl(c,void 0,void 0,i);d&&(a=d)}var p=Ml(n,["a:firstRow","a:tcTxStyle"]);if(p){var g=Xl(p,void 0,void 0,i);g&&(o=g),"on"===Ml(p,["attrs","b"])&&(s=!0)}}else if(e>0&&1===r.isBandRowAttr&&n){if(a="",e%2==0&&n["a:band2H"]){var b=Ml(n,["a:band2H","a:tcStyle","a:fill","a:solidFill"]);if(b){var v=Xl(b,void 0,void 0,i);v&&(a=v)}var m=Ml(n,["a:band2H","a:tcTxStyle"]);if(m){var y=Xl(m,void 0,void 0,i);y&&(o=y)}"on"===Ml(m,["attrs","b"])&&(s=!0)}if(e%2!=0&&n["a:band1H"]){var w=Ml(n,["a:band1H","a:tcStyle","a:fill","a:solidFill"]);if(w){var _=Xl(w,void 0,void 0,i);_&&(a=_)}var k=Ml(n,["a:band1H","a:tcTxStyle"]);if(k){var x=Xl(k,void 0,void 0,i);x&&(o=x),"on"===Ml(k,["attrs","b"])&&(s=!0)}}}if(e===t.length-1&&1===r.isLstRowAttr&&n){var S=Ml(n,["a:lastRow","a:tcStyle","a:fill","a:solidFill"]);if(S){var C=Xl(S,void 0,void 0,i);C&&(a=C)}var A=Ml(n,["a:lastRow","a:tcTxStyle"]);if(A){var E=Xl(A,void 0,void 0,i);E&&(o=E),"on"===Ml(A,["attrs","b"])&&(s=!0)}}return{fillColor:a,fontColor:o,fontBold:s}}function df(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function pf(t){for(var r=1;r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function bf(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r0){if(Object.keys(f).forEach((function(t){var e=f[t]["a:pt"];e&&Object.keys(e).forEach((function(t){var r=e[t],n=r.x,i=r.y,a=r.order;g.push({type:"movto",x:n,y:i,order:a})}))})),h&&Object.keys(h).forEach((function(t){var e=h[t]["a:pt"];e&&Object.keys(e).forEach((function(t){var r=e[t],n=r.x,i=r.y,a=r.order;g.push({type:"lnto",x:n,y:i,order:a})}))})),c){var b=[];Array.isArray(c)||(c=[c]),Object.keys(c).forEach((function(t){b.push(c[t]["a:pt"])})),b.forEach((function(t){var e=[];t.forEach((function(t){var r={x:t.attrs.x,y:t.attrs.y};e.push(r)}));var r=t[0].attrs.order;g.push({type:"cubicBezTo",cubBzPt:e,order:r})}))}if(d){var v=d.attrs,m=v.order,y=v.hR,w=v.wR,_=v.stAng,k=v.swAng,x=0,S=0,C=Ml(d,["a:pt","attrs"]);C&&(x=C.x,S=C.y),g.push({type:"arcTo",hR:y,wR:w,stAng:_,swAng:k,shftX:x,shftY:S,order:m})}p&&(Array.isArray(p)||(p=[p]),Object.keys(p).forEach((function(){g.push({type:"close",order:1/0})}))),g.sort((function(t,e){return t.order-e.order}));for(var A=0;A0&&1===y.isBandColAttr&&(1!==y.isFrstColAttr||0!==T)&&(1!==y.isLstRowAttr||T!==R.length-1)&&j!==D.length-1&&j%2!=0){var U=Ml(r,["a:band2V"]);void 0===U?(U=Ml(r,["a:band1V"]))&&(N="a:band2V"):N="a:band2V"}j===D.length-1&&1===y.isLstColAttr&&(N="a:lastCol",1===y.isLstRowAttr&&T===R.length-1&&Ml(r,["a:swCell"])?N="a:swCell":1===y.isFrstRowAttr&&0===T&&Ml(r,["a:nwCell"])&&(N="a:nwCell"));var H=sf(F["a:txBody"],F,void 0,void 0,e),W=hf(F,r,N,e),Z={text:H};W.rowSpan&&(Z.rowSpan=W.rowSpan),W.colSpan&&(Z.colSpan=W.colSpan),W.vMerge&&(Z.vMerge=W.vMerge),W.hMerge&&(Z.hMerge=W.hMerge),(W.fontBold||B)&&(Z.fontBold=W.fontBold||B),(W.fontColor||P)&&(Z.fontColor=W.fontColor||P),(W.fillColor||I||A)&&(Z.fillColor=W.fillColor||I||A),z.push(Z)}else{var q=void 0;if(1===y.isFrstColAttr&&1!==y.isLstRowAttr)q="a:firstCol";else if(1===y.isBandColAttr&&1!==y.isLstRowAttr){var Y=Ml(r,["a:band2V"]);(Y||(Y=Ml(r,["a:band1V"])))&&(q="a:band2V")}1===y.isLstColAttr&&1!==y.isLstRowAttr&&(q="a:lastCol");var G=sf(D["a:txBody"],D,void 0,void 0,e),V=hf(D,r,q,e),K={text:G};V.rowSpan&&(K.rowSpan=V.rowSpan),V.colSpan&&(K.colSpan=V.colSpan),V.vMerge&&(K.vMerge=V.vMerge),V.hMerge&&(K.hMerge=V.hMerge),(V.fontBold||B)&&(K.fontBold=V.fontBold||B),(V.fontColor||P)&&(K.fontColor=V.fontColor||P),(V.fillColor||I||A)&&(K.fillColor=V.fillColor||I||A),z.push(K)}O.push(z)}return pf({type:"table",top:s,left:u,width:f,height:h,data:O},n||{})}function Ff(t,e){return Nf.apply(this,arguments)}function Nf(){return Nf=n(l.mark((function t(e,r){var n,i,a,o,s,u,f,h,c,d,p,g,b;return l.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=Ml(e,["p:xfrm"]),i=ef(n,void 0,void 0),a=i.top,o=i.left,s=rf(n,void 0,void 0),u=s.width,f=s.height,h=e["a:graphic"]["a:graphicData"]["c:chart"].attrs["r:id"],c=r.slideResObj[h].target,t.next=7,Zu(r.zip,c);case 7:if(d=t.sent,p=Ml(d,["c:chartSpace","c:chart","c:plotArea"]),g=Jl(p)){t.next=12;break}return t.abrupt("return",{});case 12:return b={type:"chart",top:a,left:o,width:u,height:f,data:g.data,chartType:g.type},void 0!==g.marker&&(b.marker=g.marker),void 0!==g.barDir&&(b.barDir=g.barDir),void 0!==g.holeSize&&(b.holeSize=g.holeSize),void 0!==g.grouping&&(b.grouping=g.grouping),void 0!==g.style&&(b.style=g.style),t.abrupt("return",b);case 19:case"end":return t.stop()}}),t)}))),Nf.apply(this,arguments)}function Uf(t,e){var r=Ml(t,["p:xfrm"]),n=ef(r,void 0,void 0),i=n.left,a=n.top,o=rf(r,void 0,void 0),s=o.width,u=o.height,l=Ml(e.digramFileContent,["p:drawing","p:spTree","p:sp"]),f=[];if(l){var h,c=gf(l);try{for(c.s();!(h=c.n()).done;){var d=Lf(h.value,e,"diagramBg");d&&f.push(d)}}catch(t){c.e(t)}finally{c.f()}}return{type:"diagram",left:i,top:a,width:s,height:u,elements:f}}t.parse=function(t){return vf.apply(this,arguments)}})); //# sourceMappingURL=index.umd.js.map diff --git a/dist/index.umd.js.map b/dist/index.umd.js.map index dbf928e..9c3fab5 100644 --- a/dist/index.umd.js.map +++ b/dist/index.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"index.umd.js","sources":["../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/regenerator/index.js","../node_modules/.pnpm/rollup-plugin-node-globals@1.4.0/node_modules/rollup-plugin-node-globals/src/global.js","../node_modules/.pnpm/buffer-es6@4.9.3/node_modules/buffer-es6/base64.js","../node_modules/.pnpm/buffer-es6@4.9.3/node_modules/buffer-es6/ieee754.js","../node_modules/.pnpm/buffer-es6@4.9.3/node_modules/buffer-es6/isArray.js","../node_modules/.pnpm/buffer-es6@4.9.3/node_modules/buffer-es6/index.js","../node_modules/.pnpm/process-es6@0.11.6/node_modules/process-es6/browser.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/events.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/inherits.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/util.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/buffer-list.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/string-decoder.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/readable.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/writable.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/duplex.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/transform.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/passthrough.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/stream.js","../node_modules/.pnpm/process-nextick-args@2.0.1/node_modules/process-nextick-args/index.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/internal/streams/stream.js","../node_modules/.pnpm/safe-buffer@5.1.2/node_modules/safe-buffer/index.js","../node_modules/.pnpm/core-util-is@1.0.3/node_modules/core-util-is/lib/util.js","../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits.js","../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/internal/streams/BufferList.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/.pnpm/util-deprecate@1.0.2/node_modules/util-deprecate/node.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/.pnpm/string_decoder@1.1.1/node_modules/string_decoder/lib/string_decoder.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/.pnpm/isarray@1.0.0/node_modules/isarray/index.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/readable.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/support.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/base64.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/nodejsUtils.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/external.js","../node_modules/.pnpm/lie@3.3.0/node_modules/lie/lib/index.js","../node_modules/.pnpm/immediate@3.0.6/node_modules/immediate/lib/index.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/utils.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/GenericWorker.js","../node_modules/.pnpm/setimmediate@1.0.5/node_modules/setimmediate/setImmediate.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/utf8.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/ConvertWorker.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/StreamHelper.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/defaults.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/DataWorker.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/crc32.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/Crc32Probe.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/DataLengthProbe.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/compressedObject.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/zipObject.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/common.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/trees.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/adler32.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/crc32.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/deflate.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/messages.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/strings.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/zstream.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/deflate.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inftrees.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inflate.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inffast.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/constants.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/gzheader.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/inflate.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/index.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/flate.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/compressions.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/signature.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/generate/ZipFileWorker.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/generate/index.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/object.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/DataReader.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/ArrayReader.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/StringReader.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/Uint8ArrayReader.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/NodeBufferReader.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/readerFor.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/zipEntry.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/zipEntries.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/load.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/index.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/.pnpm/txml@5.1.1/node_modules/txml/dist/txml.mjs","../src/readXmlFile.js","../node_modules/.pnpm/tinycolor2@1.6.0/node_modules/tinycolor2/esm/tinycolor.js","../src/utils.js","../src/schemeColor.js","../src/border.js","../src/color.js","../src/fill.js","../src/chart.js","../src/align.js","../src/constants.js","../src/position.js","../src/shadow.js","../src/text.js","../src/fontStyle.js","../src/shape.js","../src/table.js","../src/pptxtojson.js"],"sourcesContent":["export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n return ContinueSentinel;\n }\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) {\n keys.push(key);\n }\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","export default (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});\n","\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\nvar inited = false;\nfunction init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n }\n\n revLookup['-'.charCodeAt(0)] = 62\n revLookup['_'.charCodeAt(0)] = 63\n}\n\nexport function toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders)\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len\n\n var L = 0\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]\n arr[L++] = (tmp >> 16) & 0xFF\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[L++] = tmp & 0xFF\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nexport function fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var output = ''\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n output += lookup[tmp >> 2]\n output += lookup[(tmp << 4) & 0x3F]\n output += '=='\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1])\n output += lookup[tmp >> 10]\n output += lookup[(tmp >> 4) & 0x3F]\n output += lookup[(tmp << 2) & 0x3F]\n output += '='\n }\n\n parts.push(output)\n\n return parts.join('')\n}\n","\nexport function read (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexport function write (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nexport default Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\nimport * as base64 from './base64'\nimport * as ieee754 from './ieee754'\nimport isArray from './isArray'\n\nexport var INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : true\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nvar _kMaxLength = kMaxLength()\nexport {_kMaxLength as kMaxLength};\nfunction typedArraySupport () {\n return true;\n // rollup issues\n // try {\n // var arr = new Uint8Array(1)\n // arr.__proto__ = {\n // __proto__: Uint8Array.prototype,\n // foo: function () { return 42 }\n // }\n // return arr.foo() === 42 && // typed array instances can be augmented\n // typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n // arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n // } catch (e) {\n // return false\n // }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nexport function Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n // Object.defineProperty(Buffer, Symbol.species, {\n // value: null,\n // configurable: true\n // })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (internalIsBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nexport function SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\nBuffer.isBuffer = isBuffer;\nfunction internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!internalIsBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (internalIsBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (internalIsBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = internalIsBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nexport function isBuffer(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n}\n\nfunction isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n}\n","// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nexport function nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nexport var title = 'browser';\nexport var platform = 'browser';\nexport var browser = true;\nexport var env = {};\nexport var argv = [];\nexport var version = ''; // empty string to avoid regexp issues\nexport var versions = {};\nexport var release = {};\nexport var config = {};\n\nfunction noop() {}\n\nexport var on = noop;\nexport var addListener = noop;\nexport var once = noop;\nexport var off = noop;\nexport var removeListener = noop;\nexport var removeAllListeners = noop;\nexport var emit = noop;\n\nexport function binding(name) {\n throw new Error('process.binding is not supported');\n}\n\nexport function cwd () { return '/' }\nexport function chdir (dir) {\n throw new Error('process.chdir is not supported');\n};\nexport function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global.performance || {}\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() }\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nexport function hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3\n var seconds = Math.floor(clocktime)\n var nanoseconds = Math.floor((clocktime%1)*1e9)\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0]\n nanoseconds = nanoseconds - previousTimestamp[1]\n if (nanoseconds<0) {\n seconds--\n nanoseconds += 1e9\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nexport function uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nexport default {\n nextTick: nextTick,\n title: title,\n browser: browser,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n};\n","'use strict';\n\nvar domain;\n\n// This constructor is used to store event handlers. Instantiating this is\n// faster than explicitly calling `Object.create(null)` to get a \"clean\" empty\n// object (tested with v8 v4.9).\nfunction EventHandlers() {}\nEventHandlers.prototype = Object.create(null);\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nexport default EventEmitter;\nexport {EventEmitter};\n\n// nodejs oddity\n// require('events') === require('events').EventEmitter\nEventEmitter.EventEmitter = EventEmitter\n\nEventEmitter.usingDomains = false;\n\nEventEmitter.prototype.domain = undefined;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\nEventEmitter.init = function() {\n this.domain = null;\n if (EventEmitter.usingDomains) {\n // if there is an active domain, then attach to it.\n if (domain.active && !(this instanceof domain.Domain)) {\n this.domain = domain.active;\n }\n }\n\n if (!this._events || this._events === Object.getPrototypeOf(this)._events) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || isNaN(n))\n throw new TypeError('\"n\" argument must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\n// These standalone emit* functions are used to optimize calling of event\n// handlers for fast cases because emit() itself often has a variable number of\n// arguments and can be deoptimized because of that. These functions always have\n// the same number of arguments and thus do not get deoptimized, so the code\n// inside them can execute faster.\nfunction emitNone(handler, isFn, self) {\n if (isFn)\n handler.call(self);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self);\n }\n}\nfunction emitOne(handler, isFn, self, arg1) {\n if (isFn)\n handler.call(self, arg1);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1);\n }\n}\nfunction emitTwo(handler, isFn, self, arg1, arg2) {\n if (isFn)\n handler.call(self, arg1, arg2);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2);\n }\n}\nfunction emitThree(handler, isFn, self, arg1, arg2, arg3) {\n if (isFn)\n handler.call(self, arg1, arg2, arg3);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2, arg3);\n }\n}\n\nfunction emitMany(handler, isFn, self, args) {\n if (isFn)\n handler.apply(self, args);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].apply(self, args);\n }\n}\n\nEventEmitter.prototype.emit = function emit(type) {\n var er, handler, len, args, i, events, domain;\n var needDomainExit = false;\n var doError = (type === 'error');\n\n events = this._events;\n if (events)\n doError = (doError && events.error == null);\n else if (!doError)\n return false;\n\n domain = this.domain;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n er = arguments[1];\n if (domain) {\n if (!er)\n er = new Error('Uncaught, unspecified \"error\" event');\n er.domainEmitter = this;\n er.domain = domain;\n er.domainThrown = false;\n domain.emit('error', er);\n } else if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n return false;\n }\n\n handler = events[type];\n\n if (!handler)\n return false;\n\n var isFn = typeof handler === 'function';\n len = arguments.length;\n switch (len) {\n // fast cases\n case 1:\n emitNone(handler, isFn, this);\n break;\n case 2:\n emitOne(handler, isFn, this, arguments[1]);\n break;\n case 3:\n emitTwo(handler, isFn, this, arguments[1], arguments[2]);\n break;\n case 4:\n emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);\n break;\n // slower\n default:\n args = new Array(len - 1);\n for (i = 1; i < len; i++)\n args[i - 1] = arguments[i];\n emitMany(handler, isFn, this, args);\n }\n\n if (needDomainExit)\n domain.exit();\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = target._events;\n if (!events) {\n events = target._events = new EventHandlers();\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (!existing) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] :\n [existing, listener];\n } else {\n // If we've already got an array, just append.\n if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n }\n\n // Check for listener leak\n if (!existing.warned) {\n m = $getMaxListeners(target);\n if (m && m > 0 && existing.length > m) {\n existing.warned = true;\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + type + ' listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n emitWarning(w);\n }\n }\n }\n\n return target;\n}\nfunction emitWarning(e) {\n typeof console.warn === 'function' ? console.warn(e) : console.log(e);\n}\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction _onceWrap(target, type, listener) {\n var fired = false;\n function g() {\n target.removeListener(type, g);\n if (!fired) {\n fired = true;\n listener.apply(target, arguments);\n }\n }\n g.listener = listener;\n return g;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = this._events;\n if (!events)\n return this;\n\n list = events[type];\n if (!list)\n return this;\n\n if (list === listener || (list.listener && list.listener === listener)) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list[0] = undefined;\n if (--this._eventsCount === 0) {\n this._events = new EventHandlers();\n return this;\n } else {\n delete events[type];\n }\n } else {\n spliceOne(list, position);\n }\n\n if (events.removeListener)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events;\n\n events = this._events;\n if (!events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!events.removeListener) {\n if (arguments.length === 0) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n } else if (events[type]) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n for (var i = 0, key; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = new EventHandlers();\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n do {\n this.removeListener(type, listeners[listeners.length - 1]);\n } while (listeners[0]);\n }\n\n return this;\n };\n\nEventEmitter.prototype.listeners = function listeners(type) {\n var evlistener;\n var ret;\n var events = this._events;\n\n if (!events)\n ret = [];\n else {\n evlistener = events[type];\n if (!evlistener)\n ret = [];\n else if (typeof evlistener === 'function')\n ret = [evlistener.listener || evlistener];\n else\n ret = unwrapListeners(evlistener);\n }\n\n return ret;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];\n};\n\n// About 1.5x faster than the two-arg version of Array#splice().\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)\n list[i] = list[k];\n list.pop();\n}\n\nfunction arrayClone(arr, i) {\n var copy = new Array(i);\n while (i--)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n","\nvar inherits;\nif (typeof Object.create === 'function'){\n inherits = function inherits(ctor, superCtor) {\n // implementation from standard node.js 'util' module\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n inherits = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\nexport default inherits;\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.\nimport process from 'process';\nvar formatRegExp = /%[sdj%]/g;\nexport function format(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexport function deprecate(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function() {\n return deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexport function debuglog(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = 0;\n debugs[set] = function() {\n var msg = format.apply(null, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nexport function inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n _extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexport function isArray(ar) {\n return Array.isArray(ar);\n}\n\nexport function isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nexport function isNull(arg) {\n return arg === null;\n}\n\nexport function isNullOrUndefined(arg) {\n return arg == null;\n}\n\nexport function isNumber(arg) {\n return typeof arg === 'number';\n}\n\nexport function isString(arg) {\n return typeof arg === 'string';\n}\n\nexport function isSymbol(arg) {\n return typeof arg === 'symbol';\n}\n\nexport function isUndefined(arg) {\n return arg === void 0;\n}\n\nexport function isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\n\nexport function isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nexport function isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\n\nexport function isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\n\nexport function isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexport function isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\n\nexport function isBuffer(maybeBuf) {\n return Buffer.isBuffer(maybeBuf);\n}\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexport function log() {\n console.log('%s - %s', timestamp(), format.apply(null, arguments));\n}\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nimport inherits from './inherits';\nexport {inherits}\n\nexport function _extend(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nexport default {\n inherits: inherits,\n _extend: _extend,\n log: log,\n isBuffer: isBuffer,\n isPrimitive: isPrimitive,\n isFunction: isFunction,\n isError: isError,\n isDate: isDate,\n isObject: isObject,\n isRegExp: isRegExp,\n isUndefined: isUndefined,\n isSymbol: isSymbol,\n isString: isString,\n isNumber: isNumber,\n isNullOrUndefined: isNullOrUndefined,\n isNull: isNull,\n isBoolean: isBoolean,\n isArray: isArray,\n inspect: inspect,\n deprecate: deprecate,\n format: format,\n debuglog: debuglog\n}\n","import {Buffer} from 'buffer';\n\nexport default BufferList;\n\nfunction BufferList() {\n this.head = null;\n this.tail = null;\n this.length = 0;\n}\n\nBufferList.prototype.push = function (v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n};\n\nBufferList.prototype.unshift = function (v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n};\n\nBufferList.prototype.shift = function () {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n};\n\nBufferList.prototype.clear = function () {\n this.head = this.tail = null;\n this.length = 0;\n};\n\nBufferList.prototype.join = function (s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n};\n\nBufferList.prototype.concat = function (n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n p.data.copy(ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\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\nimport {Buffer} from 'buffer';\nvar isBufferEncoding = Buffer.isEncoding\n || function(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': return true;\n default: return false;\n }\n }\n\n\nfunction assertEncoding(encoding) {\n if (encoding && !isBufferEncoding(encoding)) {\n throw new Error('Unknown encoding: ' + encoding);\n }\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. CESU-8 is handled as part of the UTF-8 encoding.\n//\n// @TODO Handling all encodings inside a single object makes it very difficult\n// to reason about this code, so it should be split up in the future.\n// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code\n// points as used by CESU-8.\nexport function StringDecoder(encoding) {\n this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');\n assertEncoding(encoding);\n switch (this.encoding) {\n case 'utf8':\n // CESU-8 represents each of Surrogate Pair by 3-bytes\n this.surrogateSize = 3;\n break;\n case 'ucs2':\n case 'utf16le':\n // UTF-16 represents each of Surrogate Pair by 2-bytes\n this.surrogateSize = 2;\n this.detectIncompleteChar = utf16DetectIncompleteChar;\n break;\n case 'base64':\n // Base-64 stores 3 bytes in 4 chars, and pads the remainder.\n this.surrogateSize = 3;\n this.detectIncompleteChar = base64DetectIncompleteChar;\n break;\n default:\n this.write = passThroughWrite;\n return;\n }\n\n // Enough space to store all bytes of a single character. UTF-8 needs 4\n // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).\n this.charBuffer = new Buffer(6);\n // Number of bytes received for the current incomplete multi-byte character.\n this.charReceived = 0;\n // Number of bytes expected for the current incomplete multi-byte character.\n this.charLength = 0;\n};\n\n\n// write decodes the given buffer and returns it as JS string that is\n// guaranteed to not contain any partial multi-byte characters. Any partial\n// character found at the end of the buffer is buffered up, and will be\n// returned when calling write again with the remaining bytes.\n//\n// Note: Converting a Buffer containing an orphan surrogate to a String\n// currently works, but converting a String to a Buffer (via `new Buffer`, or\n// Buffer#write) will replace incomplete surrogates with the unicode\n// replacement character. See https://codereview.chromium.org/121173009/ .\nStringDecoder.prototype.write = function(buffer) {\n var charStr = '';\n // if our last write ended with an incomplete multibyte character\n while (this.charLength) {\n // determine how many remaining bytes this buffer has to offer for this char\n var available = (buffer.length >= this.charLength - this.charReceived) ?\n this.charLength - this.charReceived :\n buffer.length;\n\n // add the new bytes to the char buffer\n buffer.copy(this.charBuffer, this.charReceived, 0, available);\n this.charReceived += available;\n\n if (this.charReceived < this.charLength) {\n // still not enough chars in this buffer? wait for more ...\n return '';\n }\n\n // remove bytes belonging to the current character from the buffer\n buffer = buffer.slice(available, buffer.length);\n\n // get the character that was split\n charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);\n\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n var charCode = charStr.charCodeAt(charStr.length - 1);\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n this.charLength += this.surrogateSize;\n charStr = '';\n continue;\n }\n this.charReceived = this.charLength = 0;\n\n // if there are no more bytes in this buffer, just emit our char\n if (buffer.length === 0) {\n return charStr;\n }\n break;\n }\n\n // determine and set charLength / charReceived\n this.detectIncompleteChar(buffer);\n\n var end = buffer.length;\n if (this.charLength) {\n // buffer the incomplete character bytes we got\n buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);\n end -= this.charReceived;\n }\n\n charStr += buffer.toString(this.encoding, 0, end);\n\n var end = charStr.length - 1;\n var charCode = charStr.charCodeAt(end);\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n var size = this.surrogateSize;\n this.charLength += size;\n this.charReceived += size;\n this.charBuffer.copy(this.charBuffer, size, 0, size);\n buffer.copy(this.charBuffer, 0, 0, size);\n return charStr.substring(0, end);\n }\n\n // or just emit the charStr\n return charStr;\n};\n\n// detectIncompleteChar determines if there is an incomplete UTF-8 character at\n// the end of the given buffer. If so, it sets this.charLength to the byte\n// length that character, and sets this.charReceived to the number of bytes\n// that are available for this character.\nStringDecoder.prototype.detectIncompleteChar = function(buffer) {\n // determine how many bytes we have to check at the end of this buffer\n var i = (buffer.length >= 3) ? 3 : buffer.length;\n\n // Figure out if one of the last i bytes of our buffer announces an\n // incomplete char.\n for (; i > 0; i--) {\n var c = buffer[buffer.length - i];\n\n // See http://en.wikipedia.org/wiki/UTF-8#Description\n\n // 110XXXXX\n if (i == 1 && c >> 5 == 0x06) {\n this.charLength = 2;\n break;\n }\n\n // 1110XXXX\n if (i <= 2 && c >> 4 == 0x0E) {\n this.charLength = 3;\n break;\n }\n\n // 11110XXX\n if (i <= 3 && c >> 3 == 0x1E) {\n this.charLength = 4;\n break;\n }\n }\n this.charReceived = i;\n};\n\nStringDecoder.prototype.end = function(buffer) {\n var res = '';\n if (buffer && buffer.length)\n res = this.write(buffer);\n\n if (this.charReceived) {\n var cr = this.charReceived;\n var buf = this.charBuffer;\n var enc = this.encoding;\n res += buf.slice(0, cr).toString(enc);\n }\n\n return res;\n};\n\nfunction passThroughWrite(buffer) {\n return buffer.toString(this.encoding);\n}\n\nfunction utf16DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 2;\n this.charLength = this.charReceived ? 2 : 0;\n}\n\nfunction base64DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 3;\n this.charLength = this.charReceived ? 3 : 0;\n}\n","'use strict';\n\n\nReadable.ReadableState = ReadableState;\nimport EventEmitter from 'events';\nimport {inherits, debuglog} from 'util';\nimport BufferList from './buffer-list';\nimport {StringDecoder} from 'string_decoder';\nimport {Duplex} from './duplex';\nimport {nextTick} from 'process';\n\nvar debug = debuglog('stream');\ninherits(Readable, EventEmitter);\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') {\n return emitter.prependListener(event, fn);\n } else {\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n}\nfunction listenerCount (emitter, type) {\n return emitter.listeners(type).length;\n}\nfunction ReadableState(options, stream) {\n\n options = options || {};\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // when piping, we only care about 'readable' events that happen\n // after read()ing all the bytes and not getting any pushback.\n this.ranOut = false;\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nexport default Readable;\nexport function Readable(options) {\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options && typeof options.read === 'function') this._read = options.read;\n\n EventEmitter.call(this);\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n\n if (!state.objectMode && typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n }\n\n return readableAddChunk(this, state, chunk, encoding, false);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n var state = this._readableState;\n return readableAddChunk(this, state, chunk, '', true);\n};\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\nfunction readableAddChunk(stream, state, chunk, encoding, addToFront) {\n var er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (state.ended && !addToFront) {\n var e = new Error('stream.push() after EOF');\n stream.emit('error', e);\n } else if (state.endEmitted && addToFront) {\n var _e = new Error('stream.unshift() after end event');\n stream.emit('error', _e);\n } else {\n var skipAdd;\n if (state.decoder && !addToFront && !encoding) {\n chunk = state.decoder.write(chunk);\n skipAdd = !state.objectMode && chunk.length === 0;\n }\n\n if (!addToFront) state.reading = false;\n\n // Don't add to the buffer if we've decoded to an empty string chunk and\n // we're not in object mode\n if (!skipAdd) {\n // if we want the data now, just emit it.\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n }\n\n maybeReadMore(stream, state);\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n\n return needMoreData(state);\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction chunkInvalid(state, chunk) {\n var er = null;\n if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false);\n\n var endFn = doEnd ? onend : cleanup;\n if (state.endEmitted) nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable) {\n debug('onunpipe');\n if (readable === src) {\n cleanup();\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', cleanup);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (listenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && src.listeners('data').length) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var _i = 0; _i < len; _i++) {\n dests[_i].emit('unpipe', this);\n }return this;\n }\n\n // try to find the right one.\n var i = indexOf(state.pipes, dest);\n if (i === -1) return this;\n\n state.pipes.splice(i, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = EventEmitter.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this, state);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var state = this._readableState;\n var paused = false;\n\n var self = this;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) self.push(chunk);\n }\n\n self.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = self.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n var events = ['error', 'close', 'destroy', 'pause', 'resume'];\n forEach(events, function (ev) {\n stream.on(ev, self.emit.bind(self, ev));\n });\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n self._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return self;\n};\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction forEach(xs, f) {\n for (var i = 0, l = xs.length; i < l; i++) {\n f(xs[i], i);\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}\n","// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n\nimport {inherits, deprecate} from 'util';\nimport {Buffer} from 'buffer';\nWritable.WritableState = WritableState;\nimport {EventEmitter} from 'events';\nimport {Duplex} from './duplex';\nimport {nextTick} from 'process';\ninherits(Writable, EventEmitter);\n\nfunction nop() {}\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\nfunction WritableState(options, stream) {\n Object.defineProperty(this, 'buffer', {\n get: deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')\n });\n options = options || {};\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function writableStateGetBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\nexport default Writable;\nexport function Writable(options) {\n\n // Writable ctor is applied to Duplexes, though they're not\n // instanceof Writable, they're instanceof Readable.\n if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n }\n\n EventEmitter.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n nextTick(cb, er);\n}\n\n// If we get something that is not a buffer, string, null, or undefined,\n// and we're not in objectMode, then that's an error.\n// Otherwise stream chunks are all considered to be of length=1, and the\n// watermarks determine how many objects to keep in the buffer, rather than\n// how many bytes or characters.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n // Always throw error if a null is written\n // if we are not in object mode then throw\n // if it is not a buffer, string, or undefined.\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, cb) {\n chunk = decodeChunk(state, chunk, encoding);\n\n if (Buffer.isBuffer(chunk)) encoding = 'buffer';\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) nextTick(cb, er);else cb(er);\n\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n nextTick(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n while (entry) {\n buffer[count] = entry;\n entry = entry.next;\n count += 1;\n }\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequestCount = 0;\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished) {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n if (state.pendingcb === 0) {\n prefinish(stream, state);\n state.finished = true;\n stream.emit('finish');\n } else {\n prefinish(stream, state);\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function (err) {\n var entry = _this.entry;\n _this.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = _this;\n } else {\n state.corkedRequestsFree = _this;\n }\n };\n}\n","\nimport {inherits} from 'util';\nimport {nextTick} from 'process';\nimport {Readable} from './readable';\nimport {Writable} from './writable';\n\n\ninherits(Duplex, Readable);\n\nvar keys = Object.keys(Writable.prototype);\nfor (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n}\nexport default Duplex;\nexport function Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n","// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n\nimport {Duplex} from './duplex';\n\n\nimport {inherits} from 'util';\ninherits(Transform, Duplex);\n\nfunction TransformState(stream) {\n this.afterTransform = function (er, data) {\n return afterTransform(stream, er, data);\n };\n\n this.needTransform = false;\n this.transforming = false;\n this.writecb = null;\n this.writechunk = null;\n this.writeencoding = null;\n}\n\nfunction afterTransform(stream, er, data) {\n var ts = stream._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data !== null && data !== undefined) stream.push(data);\n\n cb(er);\n\n var rs = stream._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n stream._read(rs.highWaterMark);\n }\n}\nexport default Transform;\nexport function Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = new TransformState(this);\n\n // when the writable side finishes, then flush out anything remaining.\n var stream = this;\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n this.once('prefinish', function () {\n if (typeof this._flush === 'function') this._flush(function (er) {\n done(stream, er);\n });else done(stream);\n });\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('Not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nfunction done(stream, er) {\n if (er) return stream.emit('error', er);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n var ws = stream._writableState;\n var ts = stream._transformState;\n\n if (ws.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (ts.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}\n","\nimport {Transform} from './transform';\n\nimport {inherits} from 'util';\ninherits(PassThrough, Transform);\nexport default PassThrough;\nexport function PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};\n","import EE from 'events';\nimport {inherits} from 'util';\n\nimport {Duplex} from './readable-stream/duplex.js';\nimport {Readable} from './readable-stream/readable.js';\nimport {Writable} from './readable-stream/writable.js';\nimport {Transform} from './readable-stream/transform.js';\nimport {PassThrough} from './readable-stream/passthrough.js';\ninherits(Stream, EE);\nStream.Readable = Readable;\nStream.Writable = Writable;\nStream.Duplex = Duplex;\nStream.Transform = Transform;\nStream.PassThrough = PassThrough;\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\nexport default Stream;\nexport {Readable,Writable,Duplex,Transform,PassThrough,Stream}\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","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","module.exports = require('stream');\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","\n/**\n * For Node.js, simply re-export the core `util.deprecate` function.\n */\n\nmodule.exports = require('util').deprecate;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// 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}","// 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 pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\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\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","var Stream = require('stream');\nif (process.env.READABLE_STREAM === 'disable' && Stream) {\n module.exports = Stream;\n exports = module.exports = Stream.Readable;\n exports.Readable = Stream.Readable;\n exports.Writable = Stream.Writable;\n exports.Duplex = Stream.Duplex;\n exports.Transform = Stream.Transform;\n exports.PassThrough = Stream.PassThrough;\n exports.Stream = Stream;\n} else {\n exports = module.exports = require('./lib/_stream_readable.js');\n exports.Stream = Stream || exports;\n exports.Readable = exports;\n exports.Writable = require('./lib/_stream_writable.js');\n exports.Duplex = require('./lib/_stream_duplex.js');\n exports.Transform = require('./lib/_stream_transform.js');\n exports.PassThrough = require('./lib/_stream_passthrough.js');\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\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","\"use strict\";\n\nexports.base64 = true;\nexports.array = true;\nexports.string = true;\nexports.arraybuffer = typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\";\nexports.nodebuffer = typeof Buffer !== \"undefined\";\n// contains true if JSZip can read/generate Uint8Array, false otherwise.\nexports.uint8array = typeof Uint8Array !== \"undefined\";\n\nif (typeof ArrayBuffer === \"undefined\") {\n exports.blob = false;\n}\nelse {\n var buffer = new ArrayBuffer(0);\n try {\n exports.blob = new Blob([buffer], {\n type: \"application/zip\"\n }).size === 0;\n }\n catch (e) {\n try {\n var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder;\n var builder = new Builder();\n builder.append(buffer);\n exports.blob = builder.getBlob(\"application/zip\").size === 0;\n }\n catch (e) {\n exports.blob = false;\n }\n }\n}\n\ntry {\n exports.nodestream = !!require(\"readable-stream\").Readable;\n} catch(e) {\n exports.nodestream = false;\n}\n","\"use strict\";\nvar utils = require(\"./utils\");\nvar support = require(\"./support\");\n// private property\nvar _keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\n\n// public method for encoding\nexports.encode = function(input) {\n var output = [];\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\n var i = 0, len = input.length, remainingBytes = len;\n\n var isArray = utils.getTypeOf(input) !== \"string\";\n while (i < input.length) {\n remainingBytes = len - i;\n\n if (!isArray) {\n chr1 = input.charCodeAt(i++);\n chr2 = i < len ? input.charCodeAt(i++) : 0;\n chr3 = i < len ? input.charCodeAt(i++) : 0;\n } else {\n chr1 = input[i++];\n chr2 = i < len ? input[i++] : 0;\n chr3 = i < len ? input[i++] : 0;\n }\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n enc3 = remainingBytes > 1 ? (((chr2 & 15) << 2) | (chr3 >> 6)) : 64;\n enc4 = remainingBytes > 2 ? (chr3 & 63) : 64;\n\n output.push(_keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4));\n\n }\n\n return output.join(\"\");\n};\n\n// public method for decoding\nexports.decode = function(input) {\n var chr1, chr2, chr3;\n var enc1, enc2, enc3, enc4;\n var i = 0, resultIndex = 0;\n\n var dataUrlPrefix = \"data:\";\n\n if (input.substr(0, dataUrlPrefix.length) === dataUrlPrefix) {\n // This is a common error: people give a data url\n // (data:image/png;base64,iVBOR...) with a {base64: true} and\n // wonders why things don't work.\n // We can detect that the string input looks like a data url but we\n // *can't* be sure it is one: removing everything up to the comma would\n // be too dangerous.\n throw new Error(\"Invalid base64 input, it looks like a data url.\");\n }\n\n input = input.replace(/[^A-Za-z0-9+/=]/g, \"\");\n\n var totalLength = input.length * 3 / 4;\n if(input.charAt(input.length - 1) === _keyStr.charAt(64)) {\n totalLength--;\n }\n if(input.charAt(input.length - 2) === _keyStr.charAt(64)) {\n totalLength--;\n }\n if (totalLength % 1 !== 0) {\n // totalLength is not an integer, the length does not match a valid\n // base64 content. That can happen if:\n // - the input is not a base64 content\n // - the input is *almost* a base64 content, with a extra chars at the\n // beginning or at the end\n // - the input uses a base64 variant (base64url for example)\n throw new Error(\"Invalid base64 input, bad content length.\");\n }\n var output;\n if (support.uint8array) {\n output = new Uint8Array(totalLength|0);\n } else {\n output = new Array(totalLength|0);\n }\n\n while (i < input.length) {\n\n enc1 = _keyStr.indexOf(input.charAt(i++));\n enc2 = _keyStr.indexOf(input.charAt(i++));\n enc3 = _keyStr.indexOf(input.charAt(i++));\n enc4 = _keyStr.indexOf(input.charAt(i++));\n\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n\n output[resultIndex++] = chr1;\n\n if (enc3 !== 64) {\n output[resultIndex++] = chr2;\n }\n if (enc4 !== 64) {\n output[resultIndex++] = chr3;\n }\n\n }\n\n return output;\n};\n","\"use strict\";\n\nmodule.exports = {\n /**\n * True if this is running in Nodejs, will be undefined in a browser.\n * In a browser, browserify won't include this file and the whole module\n * will be resolved an empty object.\n */\n isNode : typeof Buffer !== \"undefined\",\n /**\n * Create a new nodejs Buffer from an existing content.\n * @param {Object} data the data to pass to the constructor.\n * @param {String} encoding the encoding to use.\n * @return {Buffer} a new Buffer.\n */\n newBufferFrom: function(data, encoding) {\n if (Buffer.from && Buffer.from !== Uint8Array.from) {\n return Buffer.from(data, encoding);\n } else {\n if (typeof data === \"number\") {\n // Safeguard for old Node.js versions. On newer versions,\n // Buffer.from(number) / Buffer(number, encoding) already throw.\n throw new Error(\"The \\\"data\\\" argument must not be a number\");\n }\n return new Buffer(data, encoding);\n }\n },\n /**\n * Create a new nodejs Buffer with the specified size.\n * @param {Integer} size the size of the buffer.\n * @return {Buffer} a new Buffer.\n */\n allocBuffer: function (size) {\n if (Buffer.alloc) {\n return Buffer.alloc(size);\n } else {\n var buf = new Buffer(size);\n buf.fill(0);\n return buf;\n }\n },\n /**\n * Find out if an object is a Buffer.\n * @param {Object} b the object to test.\n * @return {Boolean} true if the object is a Buffer, false otherwise.\n */\n isBuffer : function(b){\n return Buffer.isBuffer(b);\n },\n\n isStream : function (obj) {\n return obj &&\n typeof obj.on === \"function\" &&\n typeof obj.pause === \"function\" &&\n typeof obj.resume === \"function\";\n }\n};\n","\"use strict\";\n\n// load the global object first:\n// - it should be better integrated in the system (unhandledRejection in node)\n// - the environment may have a custom Promise implementation (see zone.js)\nvar ES6Promise = null;\nif (typeof Promise !== \"undefined\") {\n ES6Promise = Promise;\n} else {\n ES6Promise = require(\"lie\");\n}\n\n/**\n * Let the user use/change some implementations.\n */\nmodule.exports = {\n Promise: ES6Promise\n};\n","'use strict';\nvar immediate = require('immediate');\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n/* istanbul ignore else */\nif (!process.browser) {\n // in which we actually take advantage of JS scoping\n var UNHANDLED = ['UNHANDLED'];\n}\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n /* istanbul ignore else */\n if (!process.browser) {\n this.handled = UNHANDLED;\n }\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype.finally = function (callback) {\n if (typeof callback !== 'function') {\n return this;\n }\n var p = this.constructor;\n return this.then(resolve, reject);\n\n function resolve(value) {\n function yes () {\n return value;\n }\n return p.resolve(callback()).then(yes);\n }\n function reject(reason) {\n function no () {\n throw reason;\n }\n return p.resolve(callback()).then(no);\n }\n};\nPromise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n /* istanbul ignore else */\n if (!process.browser) {\n if (this.handled === UNHANDLED) {\n this.handled = null;\n }\n }\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callRejected = function (value) {\n handlers.reject(this.promise, value);\n};\nQueueItem.prototype.otherCallRejected = function (value) {\n unwrap(this.promise, this.onRejected, value);\n};\n\nfunction unwrap(promise, func, value) {\n immediate(function () {\n var returnValue;\n try {\n returnValue = func(value);\n } catch (e) {\n return handlers.reject(promise, e);\n }\n if (returnValue === promise) {\n handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\n } else {\n handlers.resolve(promise, returnValue);\n }\n });\n}\n\nhandlers.resolve = function (self, value) {\n var result = tryCatch(getThen, value);\n if (result.status === 'error') {\n return handlers.reject(self, result.value);\n }\n var thenable = result.value;\n\n if (thenable) {\n safelyResolveThenable(self, thenable);\n } else {\n self.state = FULFILLED;\n self.outcome = value;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callFulfilled(value);\n }\n }\n return self;\n};\nhandlers.reject = function (self, error) {\n self.state = REJECTED;\n self.outcome = error;\n /* istanbul ignore else */\n if (!process.browser) {\n if (self.handled === UNHANDLED) {\n immediate(function () {\n if (self.handled === UNHANDLED) {\n process.emit('unhandledRejection', error, self);\n }\n });\n }\n }\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callRejected(error);\n }\n return self;\n};\n\nfunction getThen(obj) {\n // Make sure we only access the accessor once as required by the spec\n var then = obj && obj.then;\n if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {\n return function appyThen() {\n then.apply(obj, arguments);\n };\n }\n}\n\nfunction safelyResolveThenable(self, thenable) {\n // Either fulfill, reject or reject with error\n var called = false;\n function onError(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.reject(self, value);\n }\n\n function onSuccess(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.resolve(self, value);\n }\n\n function tryToUnwrap() {\n thenable(onSuccess, onError);\n }\n\n var result = tryCatch(tryToUnwrap);\n if (result.status === 'error') {\n onError(result.value);\n }\n}\n\nfunction tryCatch(func, value) {\n var out = {};\n try {\n out.value = func(value);\n out.status = 'success';\n } catch (e) {\n out.status = 'error';\n out.value = e;\n }\n return out;\n}\n\nPromise.resolve = resolve;\nfunction resolve(value) {\n if (value instanceof this) {\n return value;\n }\n return handlers.resolve(new this(INTERNAL), value);\n}\n\nPromise.reject = reject;\nfunction reject(reason) {\n var promise = new this(INTERNAL);\n return handlers.reject(promise, reason);\n}\n\nPromise.all = all;\nfunction all(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var values = new Array(len);\n var resolved = 0;\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n allResolver(iterable[i], i);\n }\n return promise;\n function allResolver(value, i) {\n self.resolve(value).then(resolveFromAll, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n function resolveFromAll(outValue) {\n values[i] = outValue;\n if (++resolved === len && !called) {\n called = true;\n handlers.resolve(promise, values);\n }\n }\n }\n}\n\nPromise.race = race;\nfunction race(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n resolver(iterable[i]);\n }\n return promise;\n function resolver(value) {\n self.resolve(value).then(function (response) {\n if (!called) {\n called = true;\n handlers.resolve(promise, response);\n }\n }, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n }\n}\n","'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\nif (process.browser) {\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a ', pos);\n children = [S.slice(start, pos)];\n pos += 9;\n } else if (tagName == \"style\") {\n var start = pos + 1;\n pos = S.indexOf('', pos);\n children = [S.slice(start, pos)];\n pos += 8;\n } else if (NoChildNodes.indexOf(tagName) === -1) {\n pos++;\n children = parseChildren(tagName);\n } else {\n pos++;\n }\n } else {\n pos++;\n }\n return {\n tagName,\n attributes,\n children,\n };\n }\n\n /**\n * is parsing a string, that starts with a char and with the same usually ' or \"\n */\n\n function parseString() {\n var startChar = S[pos];\n var startpos = pos + 1;\n pos = S.indexOf(startChar, startpos);\n return S.slice(startpos, pos);\n }\n\n /**\n *\n */\n function findElements() {\n var r = new RegExp('\\\\s' + options.attrName + '\\\\s*=[\\'\"]' + options.attrValue + '[\\'\"]').exec(S);\n if (r) {\n return r.index;\n } else {\n return -1;\n }\n }\n\n var out = null;\n if (options.attrValue !== undefined) {\n options.attrName = options.attrName || 'id';\n var out = [];\n\n while ((pos = findElements()) !== -1) {\n pos = S.lastIndexOf('<', pos);\n if (pos !== -1) {\n out.push(parseNode());\n }\n S = S.substr(pos);\n pos = 0;\n }\n } else if (options.parseNode) {\n out = parseNode();\n } else {\n out = parseChildren('');\n }\n\n if (options.filter) {\n out = filter(out, options.filter);\n }\n\n if (options.simplify) {\n return simplify(Array.isArray(out) ? out : [out]);\n }\n\n if (options.setPos) {\n out.pos = pos;\n }\n\n return out;\n}\n\n/**\n * transform the DomObject to an object that is like the object of PHP`s simple_xmp_load_*() methods.\n * this format helps you to write that is more likely to keep your program working, even if there a small changes in the XML schema.\n * be aware, that it is not possible to reproduce the original xml from a simplified version, because the order of elements is not saved.\n * therefore your program will be more flexible and easier to read.\n *\n * @param {tNode[]} children the childrenList\n */\nfunction simplify(children) {\n var out = {};\n if (!children.length) {\n return '';\n }\n\n if (children.length === 1 && typeof children[0] == 'string') {\n return children[0];\n }\n // map each object\n children.forEach(function(child) {\n if (typeof child !== 'object') {\n return;\n }\n if (!out[child.tagName])\n out[child.tagName] = [];\n var kids = simplify(child.children);\n out[child.tagName].push(kids);\n if (Object.keys(child.attributes).length && typeof kids !== 'string') {\n kids._attributes = child.attributes;\n }\n });\n\n for (var i in out) {\n if (out[i].length == 1) {\n out[i] = out[i][0];\n }\n }\n\n return out;\n}\n\n/**\n * similar to simplify, but lost less\n *\n * @param {tNode[]} children the childrenList\n */\nfunction simplifyLostLess(children, parentAttributes = {}) {\n var out = {};\n if (!children.length) {\n return out;\n }\n\n if (children.length === 1 && typeof children[0] == 'string') {\n return Object.keys(parentAttributes).length ? {\n _attributes: parentAttributes,\n value: children[0]\n } : children[0];\n }\n // map each object\n children.forEach(function(child) {\n if (typeof child !== 'object') {\n return;\n }\n if (!out[child.tagName])\n out[child.tagName] = [];\n var kids = simplifyLostLess(child.children || [], child.attributes);\n out[child.tagName].push(kids);\n if (Object.keys(child.attributes).length) {\n kids._attributes = child.attributes;\n }\n });\n\n return out;\n}\n/**\n * behaves the same way as Array.filter, if the filter method return true, the element is in the resultList\n * @params children{Array} the children of a node\n * @param f{function} the filter method\n */\nfunction filter(children, f, dept = 0, path = '') {\n var out = [];\n children.forEach(function(child, i) {\n if (typeof(child) === 'object' && f(child, i, dept, path)) out.push(child);\n if (child.children) {\n var kids = filter(child.children, f, dept + 1, (path ? path + '.' : '') + i + '.' + child.tagName);\n out = out.concat(kids);\n }\n });\n return out;\n}\n/**\n * stringify a previously parsed string object.\n * this is useful,\n * 1. to remove whitespace\n * 2. to recreate xml data, with some changed data.\n * @param {tNode} O the object to Stringify\n */\nfunction stringify(O) {\n var out = '';\n\n function writeChildren(O) {\n if (O) {\n for (var i = 0; i < O.length; i++) {\n if (typeof O[i] == 'string') {\n out += O[i].trim();\n } else {\n writeNode(O[i]);\n }\n }\n }\n }\n\n function writeNode(N) {\n out += \"<\" + N.tagName;\n for (var i in N.attributes) {\n if (N.attributes[i] === null) {\n out += ' ' + i;\n } else if (N.attributes[i].indexOf('\"') === -1) {\n out += ' ' + i + '=\"' + N.attributes[i].trim() + '\"';\n } else {\n out += ' ' + i + \"='\" + N.attributes[i].trim() + \"'\";\n }\n }\n if (N.tagName[0] === '?') {\n out += '?>';\n return;\n }\n out += '>';\n writeChildren(N.children);\n out += '';\n }\n writeChildren(O);\n\n return out;\n}\n\n/**\n * use this method to read the text content, of some node.\n * It is great if you have mixed content like:\n * this text has some big text and a link\n * @return {string}\n */\nfunction toContentString(tDom) {\n if (Array.isArray(tDom)) {\n var out = '';\n tDom.forEach(function(e) {\n out += ' ' + toContentString(e);\n out = out.trim();\n });\n return out;\n } else if (typeof tDom === 'object') {\n return toContentString(tDom.children)\n } else {\n return ' ' + tDom;\n }\n}\nfunction getElementById(S, id, simplified) {\n var out = parse(S, {\n attrValue: id\n });\n return simplified ? tXml.simplify(out) : out[0];\n}\nfunction getElementsByClassName(S, classname, simplified) {\n const out = parse(S, {\n attrName: 'class',\n attrValue: '[a-zA-Z0-9- ]*' + classname + '[a-zA-Z0-9- ]*'\n });\n return simplified ? tXml.simplify(out) : out;\n}\n\nexport { filter, getElementById, getElementsByClassName, parse, simplify, simplifyLostLess, stringify, toContentString };\n","import * as txml from 'txml/dist/txml.mjs'\r\n\r\nlet cust_attr_order = 0\r\n\r\nexport function simplifyLostLess(children, parentAttributes = {}) {\r\n const out = {}\r\n if (!children.length) return out\r\n\r\n if (children.length === 1 && typeof children[0] === 'string') {\r\n return Object.keys(parentAttributes).length ? {\r\n attrs: { order: cust_attr_order++, ...parentAttributes },\r\n value: children[0],\r\n } : children[0]\r\n }\r\n for (const child of children) {\r\n if (typeof child !== 'object') return\r\n if (child.tagName === '?xml') continue\r\n\r\n if (!out[child.tagName]) out[child.tagName] = []\r\n\r\n const kids = simplifyLostLess(child.children || [], child.attributes)\r\n out[child.tagName].push(kids)\r\n\r\n if (Object.keys(child.attributes).length) {\r\n kids.attrs = { order: cust_attr_order++, ...child.attributes }\r\n }\r\n }\r\n for (const child in out) {\r\n if (out[child].length === 1) out[child] = out[child][0]\r\n }\r\n\r\n return out\r\n}\r\n\r\nexport async function readXmlFile(zip, filename) {\r\n try {\r\n const data = await zip.file(filename).async('string')\r\n return simplifyLostLess(txml.parse(data))\r\n }\r\n catch {\r\n return null\r\n }\r\n}","// This file is autogenerated. It's used to publish ESM to npm.\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\nvar trimLeft = /^\\s+/;\nvar trimRight = /\\s+$/;\nfunction tinycolor(color, opts) {\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 var rgb = inputToRGB(color);\n this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, 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 = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n this._ok = rgb.ok;\n}\ntinycolor.prototype = {\n isDark: function isDark() {\n return this.getBrightness() < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n isValid: function isValid() {\n return this._ok;\n },\n getOriginalInput: function getOriginalInput() {\n return this._originalInput;\n },\n getFormat: function getFormat() {\n return this._format;\n },\n getAlpha: function getAlpha() {\n return this._a;\n },\n getBrightness: function getBrightness() {\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 getLuminance() {\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 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 setAlpha(value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function toHsv() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this._a\n };\n },\n toHsvString: function toHsvString() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function toHsl() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this._a\n };\n },\n toHslString: function toHslString() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function toHex(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function toHexString(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function toHex8(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function toHex8String(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function toRgb() {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a\n };\n },\n toRgbString: function toRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function toPercentageRgb() {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function toPercentageRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function toName() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function toFilter(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 if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function toString(format) {\n var formatSet = !!format;\n format = format || this._format;\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 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 return formattedString || this.toHexString();\n },\n clone: function clone() {\n return tinycolor(this.toString());\n },\n _applyModification: function _applyModification(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 lighten() {\n return this._applyModification(_lighten, arguments);\n },\n brighten: function brighten() {\n return this._applyModification(_brighten, arguments);\n },\n darken: function darken() {\n return this._applyModification(_darken, arguments);\n },\n desaturate: function desaturate() {\n return this._applyModification(_desaturate, arguments);\n },\n saturate: function saturate() {\n return this._applyModification(_saturate, arguments);\n },\n greyscale: function greyscale() {\n return this._applyModification(_greyscale, arguments);\n },\n spin: function spin() {\n return this._applyModification(_spin, arguments);\n },\n _applyCombination: function _applyCombination(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function analogous() {\n return this._applyCombination(_analogous, arguments);\n },\n complement: function complement() {\n return this._applyCombination(_complement, arguments);\n },\n monochromatic: function monochromatic() {\n return this._applyCombination(_monochromatic, arguments);\n },\n splitcomplement: function splitcomplement() {\n return this._applyCombination(_splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function triad() {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function tetrad() {\n return this._applyCombination(polyad, [4]);\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 } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\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 var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\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 if (typeof color == \"string\") {\n color = stringInputToObject(color);\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 } 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 } 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 if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a\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 r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n if (max == min) {\n h = s = 0; // achromatic\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:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l\n };\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 h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\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 if (s === 0) {\n r = g = b = l; // achromatic\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 return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\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 r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n v: v\n };\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]\nfunction hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\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 return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\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 var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\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 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 var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\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 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 var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\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};\ntinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random()\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}\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}\nfunction _greyscale(color) {\n return tinycolor(color).desaturate(100);\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}\nfunction _brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\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}\nfunction polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({\n h: (hsl.h + i * step) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n return result;\n}\nfunction _splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [tinycolor(color), tinycolor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), tinycolor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n}\nfunction _analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\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}\nfunction _monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\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 var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\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 return tinycolor(rgba);\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 out = false;\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// `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 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 if (tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size\n }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\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// 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 if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\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 var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(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 Math.min(1, Math.max(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 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}\nvar matchers = function () {\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 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 color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: \"name\"\n };\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 {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n if (match = matchers.rgba.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsl.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n if (match = matchers.hsla.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsv.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n if (match = matchers.hsva.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\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 return false;\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 || {\n level: \"AA\",\n size: \"small\"\n };\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 {\n level: level,\n size: size\n };\n}\n\nexport { tinycolor as default };\n","export function base64ArrayBuffer(arrayBuffer) {\r\n const encodings = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\r\n const bytes = new Uint8Array(arrayBuffer)\r\n const byteLength = bytes.byteLength\r\n const byteRemainder = byteLength % 3\r\n const mainLength = byteLength - byteRemainder\r\n \r\n let base64 = ''\r\n let a, b, c, d\r\n let chunk\r\n\r\n for (let i = 0; i < mainLength; i = i + 3) {\r\n chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2]\r\n a = (chunk & 16515072) >> 18\r\n b = (chunk & 258048) >> 12\r\n c = (chunk & 4032) >> 6\r\n d = chunk & 63\r\n base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d]\r\n }\r\n\r\n if (byteRemainder === 1) {\r\n chunk = bytes[mainLength]\r\n a = (chunk & 252) >> 2\r\n b = (chunk & 3) << 4\r\n base64 += encodings[a] + encodings[b] + '=='\r\n } \r\n else if (byteRemainder === 2) {\r\n chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1]\r\n a = (chunk & 64512) >> 10\r\n b = (chunk & 1008) >> 4\r\n c = (chunk & 15) << 2\r\n base64 += encodings[a] + encodings[b] + encodings[c] + '='\r\n }\r\n\r\n return base64\r\n}\r\n\r\nexport function extractFileExtension(filename) {\r\n return filename.substr((~-filename.lastIndexOf('.') >>> 0) + 2)\r\n}\r\n\r\nexport function eachElement(node, func) {\r\n if (!node) return node\r\n\r\n let result = ''\r\n if (node.constructor === Array) {\r\n for (let i = 0; i < node.length; i++) {\r\n result += func(node[i], i)\r\n }\r\n } \r\n else result += func(node, 0)\r\n\r\n return result\r\n}\r\n\r\nexport function getTextByPathList(node, path) {\r\n if (path.constructor !== Array) throw Error('Error of path type! path is not array.')\r\n\r\n if (!node) return node\r\n\r\n for (const key of path) {\r\n node = node[key]\r\n if (!node) return node\r\n }\r\n\r\n return node\r\n}\r\n\r\nexport function angleToDegrees(angle) {\r\n if (!angle) return 0\r\n return Math.round(angle / 60000)\r\n}\r\n\r\nexport function escapeHtml(text) {\r\n const map = {\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n \"'\": ''',\r\n }\r\n return text.replace(/[&<>\"']/g, m => map[m])\r\n}\r\n\r\nexport function getMimeType(imgFileExt) {\r\n let mimeType = ''\r\n switch (imgFileExt.toLowerCase()) {\r\n case 'jpg':\r\n case 'jpeg':\r\n mimeType = 'image/jpeg'\r\n break\r\n case 'png':\r\n mimeType = 'image/png'\r\n break\r\n case 'gif':\r\n mimeType = 'image/gif'\r\n break\r\n case 'emf':\r\n mimeType = 'image/x-emf'\r\n break\r\n case 'wmf':\r\n mimeType = 'image/x-wmf'\r\n break\r\n case 'svg':\r\n mimeType = 'image/svg+xml'\r\n break\r\n case 'mp4':\r\n mimeType = 'video/mp4'\r\n break\r\n case 'webm':\r\n mimeType = 'video/webm'\r\n break\r\n case 'ogg':\r\n mimeType = 'video/ogg'\r\n break\r\n case 'avi':\r\n mimeType = 'video/avi'\r\n break\r\n case 'mpg':\r\n mimeType = 'video/mpg'\r\n break\r\n case 'wmv':\r\n mimeType = 'video/wmv'\r\n break\r\n case 'mp3':\r\n mimeType = 'audio/mpeg'\r\n break\r\n case 'wav':\r\n mimeType = 'audio/wav'\r\n break\r\n case 'tif':\r\n mimeType = 'image/tiff'\r\n break\r\n case 'tiff':\r\n mimeType = 'image/tiff'\r\n break\r\n default:\r\n }\r\n return mimeType\r\n}\r\n\r\nexport function isVideoLink(vdoFile) {\r\n const urlRegex = /^(https?|ftp):\\/\\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+\\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\\/($|[a-zA-Z0-9.,?'\\\\+&%$#=~_-]+))*$/\r\n return urlRegex.test(vdoFile)\r\n}\r\n\r\nexport function toHex(n) {\r\n let hex = n.toString(16)\r\n while (hex.length < 2) {\r\n hex = '0' + hex\r\n }\r\n return hex\r\n}","import { getTextByPathList } from './utils'\r\n\r\nexport function getSchemeColorFromTheme(schemeClr, warpObj, clrMap, phClr) {\r\n let color\r\n let slideLayoutClrOvride\r\n if (clrMap) slideLayoutClrOvride = clrMap\r\n else {\r\n let sldClrMapOvr = getTextByPathList(warpObj['slideContent'], ['p:sld', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) slideLayoutClrOvride = sldClrMapOvr\r\n else {\r\n sldClrMapOvr = getTextByPathList(warpObj['slideLayoutContent'], ['p:sldLayout', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) slideLayoutClrOvride = sldClrMapOvr\r\n else {\r\n slideLayoutClrOvride = getTextByPathList(warpObj['slideMasterContent'], ['p:sldMaster', 'p:clrMap', 'attrs'])\r\n }\r\n }\r\n }\r\n const schmClrName = schemeClr.substr(2)\r\n if (schmClrName === 'phClr' && phClr) color = phClr\r\n else {\r\n if (slideLayoutClrOvride) {\r\n switch (schmClrName) {\r\n case 'tx1':\r\n case 'tx2':\r\n case 'bg1':\r\n case 'bg2':\r\n schemeClr = 'a:' + slideLayoutClrOvride[schmClrName]\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n else {\r\n switch (schemeClr) {\r\n case 'tx1':\r\n schemeClr = 'a:dk1'\r\n break\r\n case 'tx2':\r\n schemeClr = 'a:dk2'\r\n break\r\n case 'bg1':\r\n schemeClr = 'a:lt1'\r\n break\r\n case 'bg2':\r\n schemeClr = 'a:lt2'\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n const refNode = getTextByPathList(warpObj['themeContent'], ['a:theme', 'a:themeElements', 'a:clrScheme', schemeClr])\r\n color = getTextByPathList(refNode, ['a:srgbClr', 'attrs', 'val'])\r\n if (!color && refNode) color = getTextByPathList(refNode, ['a:sysClr', 'attrs', 'lastClr'])\r\n }\r\n return color\r\n}","import tinycolor from 'tinycolor2'\r\nimport { getSchemeColorFromTheme } from './schemeColor'\r\nimport { getTextByPathList } from './utils'\r\n\r\nexport function getBorder(node, elType, warpObj) {\r\n const lineNode = node['p:spPr']['a:ln']\r\n\r\n let borderWidth = parseInt(getTextByPathList(lineNode, ['attrs', 'w'])) / 12700\r\n if (isNaN(borderWidth)) {\r\n if (lineNode) borderWidth = 0\r\n else if (elType !== 'obj') borderWidth = 0\r\n else borderWidth = 1\r\n }\r\n\r\n let borderColor = getTextByPathList(lineNode, ['a:solidFill', 'a:srgbClr', 'attrs', 'val'])\r\n if (!borderColor) {\r\n const schemeClrNode = getTextByPathList(lineNode, ['a:solidFill', 'a:schemeClr'])\r\n const schemeClr = 'a:' + getTextByPathList(schemeClrNode, ['attrs', 'val'])\r\n borderColor = getSchemeColorFromTheme(schemeClr, warpObj)\r\n }\r\n\r\n if (!borderColor) {\r\n const schemeClrNode = getTextByPathList(node, ['p:style', 'a:lnRef', 'a:schemeClr'])\r\n const schemeClr = 'a:' + getTextByPathList(schemeClrNode, ['attrs', 'val'])\r\n borderColor = getSchemeColorFromTheme(schemeClr, warpObj)\r\n\r\n if (borderColor) {\r\n let shade = getTextByPathList(schemeClrNode, ['a:shade', 'attrs', 'val'])\r\n\r\n if (shade) {\r\n shade = parseInt(shade) / 100000\r\n \r\n const color = tinycolor('#' + borderColor).toHsl()\r\n borderColor = tinycolor({ h: color.h, s: color.s, l: color.l * shade, a: color.a }).toHex()\r\n }\r\n }\r\n }\r\n\r\n if (!borderColor) borderColor = '#000'\r\n else borderColor = `#${borderColor}`\r\n\r\n const type = getTextByPathList(lineNode, ['a:prstDash', 'attrs', 'val'])\r\n let borderType = 'solid'\r\n let strokeDasharray = '0'\r\n switch (type) {\r\n case 'solid':\r\n borderType = 'solid'\r\n strokeDasharray = '0'\r\n break\r\n case 'dash':\r\n borderType = 'dashed'\r\n strokeDasharray = '5'\r\n break\r\n case 'dashDot':\r\n borderType = 'dashed'\r\n strokeDasharray = '5, 5, 1, 5'\r\n break\r\n case 'dot':\r\n borderType = 'dotted'\r\n strokeDasharray = '1, 5'\r\n break\r\n case 'lgDash':\r\n borderType = 'dashed'\r\n strokeDasharray = '10, 5'\r\n break\r\n case 'lgDashDotDot':\r\n borderType = 'dotted'\r\n strokeDasharray = '10, 5, 1, 5, 1, 5'\r\n break\r\n case 'sysDash':\r\n borderType = 'dashed'\r\n strokeDasharray = '5, 2'\r\n break\r\n case 'sysDashDot':\r\n borderType = 'dotted'\r\n strokeDasharray = '5, 2, 1, 5'\r\n break\r\n case 'sysDashDotDot':\r\n borderType = 'dotted'\r\n strokeDasharray = '5, 2, 1, 5, 1, 5'\r\n break\r\n case 'sysDot':\r\n borderType = 'dotted'\r\n strokeDasharray = '2, 5'\r\n break\r\n default:\r\n }\r\n\r\n return {\r\n borderColor,\r\n borderWidth,\r\n borderType,\r\n strokeDasharray,\r\n }\r\n}","import tinycolor from 'tinycolor2'\r\n\r\nexport function hueToRgb(t1, t2, hue) {\r\n if (hue < 0) hue += 6\r\n if (hue >= 6) hue -= 6\r\n if (hue < 1) return (t2 - t1) * hue + t1\r\n else if (hue < 3) return t2\r\n else if (hue < 4) return (t2 - t1) * (4 - hue) + t1\r\n return t1\r\n}\r\n\r\nexport function hslToRgb(hue, sat, light) {\r\n let t2\r\n hue = hue / 60\r\n if (light <= 0.5) {\r\n t2 = light * (sat + 1)\r\n } \r\n else {\r\n t2 = light + sat - (light * sat)\r\n }\r\n const t1 = light * 2 - t2\r\n const r = hueToRgb(t1, t2, hue + 2) * 255\r\n const g = hueToRgb(t1, t2, hue) * 255\r\n const b = hueToRgb(t1, t2, hue - 2) * 255\r\n return { r, g, b }\r\n}\r\n\r\nexport function applyShade(rgbStr, shadeValue, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n if (shadeValue >= 1) shadeValue = 1\r\n const cacl_l = Math.min(color.l * shadeValue, 1)\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a,\r\n }).toHex()\r\n}\r\n\r\nexport function applyTint(rgbStr, tintValue, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n if (tintValue >= 1) tintValue = 1\r\n const cacl_l = color.l * tintValue + (1 - tintValue)\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a\r\n }).toHex()\r\n}\r\n\r\nexport function applyLumOff(rgbStr, offset, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n const lum = offset + color.l\r\n if (lum >= 1) {\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: 1,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n \r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: 1,\r\n a: color.a\r\n }).toHex()\r\n }\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: lum,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: lum,\r\n a: color.a\r\n }).toHex()\r\n}\r\n\r\nexport function applyLumMod(rgbStr, multiplier, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n let cacl_l = color.l * multiplier\r\n if (cacl_l >= 1) cacl_l = 1\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a\r\n }).toHex()\r\n}\r\n\r\nexport function applyHueMod(rgbStr, multiplier, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n let cacl_h = color.h * multiplier\r\n if (cacl_h >= 360) cacl_h = cacl_h - 360\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: cacl_h,\r\n s: color.s,\r\n l: color.l,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: cacl_h,\r\n s: color.s,\r\n l: color.l,\r\n a: color.a\r\n }).toHex()\r\n}\r\n\r\nexport function applySatMod(rgbStr, multiplier, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n let cacl_s = color.s * multiplier\r\n if (cacl_s >= 1) cacl_s = 1\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: cacl_s,\r\n l: color.l,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: color.h,\r\n s: cacl_s,\r\n l: color.l,\r\n a: color.a\r\n }).toHex()\r\n}\r\n\r\nexport function getColorName2Hex(name) {\r\n let hex\r\n const colorName = ['white', 'AliceBlue', 'AntiqueWhite', 'Aqua', 'Aquamarine', 'Azure', 'Beige', 'Bisque', 'black', 'BlanchedAlmond', 'Blue', 'BlueViolet', 'Brown', 'BurlyWood', 'CadetBlue', 'Chartreuse', 'Chocolate', 'Coral', 'CornflowerBlue', 'Cornsilk', 'Crimson', 'Cyan', 'DarkBlue', 'DarkCyan', 'DarkGoldenRod', 'DarkGray', 'DarkGrey', 'DarkGreen', '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', 'Grey', 'Green', 'GreenYellow', 'HoneyDew', 'HotPink', 'IndianRed', 'Indigo', 'Ivory', 'Khaki', 'Lavender', 'LavenderBlush', 'LawnGreen', 'LemonChiffon', 'LightBlue', 'LightCoral', 'LightCyan', 'LightGoldenRodYellow', 'LightGray', 'LightGrey', 'LightGreen', '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']\r\n const colorHex = ['ffffff', 'f0f8ff', 'faebd7', '00ffff', '7fffd4', 'f0ffff', 'f5f5dc', 'ffe4c4', '000000', 'ffebcd', '0000ff', '8a2be2', 'a52a2a', 'deb887', '5f9ea0', '7fff00', 'd2691e', 'ff7f50', '6495ed', 'fff8dc', 'dc143c', '00ffff', '00008b', '008b8b', 'b8860b', 'a9a9a9', 'a9a9a9', '006400', 'bdb76b', '8b008b', '556b2f', 'ff8c00', '9932cc', '8b0000', 'e9967a', '8fbc8f', '483d8b', '2f4f4f', '2f4f4f', '00ced1', '9400d3', 'ff1493', '00bfff', '696969', '696969', '1e90ff', 'b22222', 'fffaf0', '228b22', 'ff00ff', 'dcdcdc', 'f8f8ff', 'ffd700', 'daa520', '808080', '808080', '008000', 'adff2f', 'f0fff0', 'ff69b4', 'cd5c5c', '4b0082', 'fffff0', 'f0e68c', 'e6e6fa', 'fff0f5', '7cfc00', 'fffacd', 'add8e6', 'f08080', 'e0ffff', 'fafad2', 'd3d3d3', 'd3d3d3', '90ee90', 'ffb6c1', 'ffa07a', '20b2aa', '87cefa', '778899', '778899', 'b0c4de', 'ffffe0', '00ff00', '32cd32', 'faf0e6', 'ff00ff', '800000', '66cdaa', '0000cd', 'ba55d3', '9370db', '3cb371', '7b68ee', '00fa9a', '48d1cc', 'c71585', '191970', 'f5fffa', 'ffe4e1', 'ffe4b5', 'ffdead', '000080', 'fdf5e6', '808000', '6b8e23', 'ffa500', 'ff4500', 'da70d6', 'eee8aa', '98fb98', 'afeeee', 'db7093', 'ffefd5', 'ffdab9', 'cd853f', 'ffc0cb', 'dda0dd', 'b0e0e6', '800080', '663399', 'ff0000', 'bc8f8f', '4169e1', '8b4513', 'fa8072', 'f4a460', '2e8b57', 'fff5ee', 'a0522d', 'c0c0c0', '87ceeb', '6a5acd', '708090', '708090', 'fffafa', '00ff7f', '4682b4', 'd2b48c', '008080', 'd8bfd8', 'ff6347', '40e0d0', 'ee82ee', 'f5deb3', 'ffffff', 'f5f5f5', 'ffff00', '9acd32']\r\n const findIndx = colorName.indexOf(name)\r\n if (findIndx !== -1) hex = colorHex[findIndx]\r\n return hex\r\n}","import tinycolor from 'tinycolor2'\r\nimport { getSchemeColorFromTheme } from './schemeColor'\r\nimport {\r\n applyShade,\r\n applyTint,\r\n applyLumOff,\r\n applyLumMod,\r\n applyHueMod,\r\n applySatMod,\r\n hslToRgb,\r\n getColorName2Hex,\r\n} from './color'\r\n\r\nimport {\r\n base64ArrayBuffer,\r\n getTextByPathList,\r\n angleToDegrees,\r\n escapeHtml,\r\n getMimeType,\r\n toHex,\r\n} from './utils'\r\n\r\nexport function getFillType(node) {\r\n let fillType = ''\r\n if (node['a:noFill']) fillType = 'NO_FILL'\r\n if (node['a:solidFill']) fillType = 'SOLID_FILL'\r\n if (node['a:gradFill']) fillType = 'GRADIENT_FILL'\r\n if (node['a:pattFill']) fillType = 'PATTERN_FILL'\r\n if (node['a:blipFill']) fillType = 'PIC_FILL'\r\n if (node['a:grpFill']) fillType = 'GROUP_FILL'\r\n\r\n return fillType\r\n}\r\n\r\nexport async function getPicFill(type, node, warpObj) {\r\n let img\r\n const rId = node['a:blip']['attrs']['r:embed']\r\n let imgPath\r\n if (type === 'slideBg' || type === 'slide') {\r\n imgPath = getTextByPathList(warpObj, ['slideResObj', rId, 'target'])\r\n }\r\n else if (type === 'slideLayoutBg') {\r\n imgPath = getTextByPathList(warpObj, ['layoutResObj', rId, 'target'])\r\n }\r\n else if (type === 'slideMasterBg') {\r\n imgPath = getTextByPathList(warpObj, ['masterResObj', rId, 'target'])\r\n }\r\n else if (type === 'themeBg') {\r\n imgPath = getTextByPathList(warpObj, ['themeResObj', rId, 'target'])\r\n }\r\n else if (type === 'diagramBg') {\r\n imgPath = getTextByPathList(warpObj, ['diagramResObj', rId, 'target'])\r\n }\r\n if (!imgPath) return imgPath\r\n\r\n img = getTextByPathList(warpObj, ['loaded-images', imgPath])\r\n if (!img) {\r\n imgPath = escapeHtml(imgPath)\r\n\r\n const imgExt = imgPath.split('.').pop()\r\n if (imgExt === 'xml') return undefined\r\n\r\n const imgArrayBuffer = await warpObj['zip'].file(imgPath).async('arraybuffer')\r\n const imgMimeType = getMimeType(imgExt)\r\n img = `data:${imgMimeType};base64,${base64ArrayBuffer(imgArrayBuffer)}`\r\n }\r\n return img\r\n}\r\n\r\nexport async function getBgPicFill(bgPr, sorce, warpObj) {\r\n const picBase64 = await getPicFill(sorce, bgPr['a:blipFill'], warpObj)\r\n const aBlipNode = bgPr['a:blipFill']['a:blip']\r\n\r\n const aphaModFixNode = getTextByPathList(aBlipNode, ['a:alphaModFix', 'attrs'])\r\n let opacity = 1\r\n if (aphaModFixNode && aphaModFixNode['amt'] && aphaModFixNode['amt'] !== '') {\r\n opacity = parseInt(aphaModFixNode['amt']) / 100000\r\n }\r\n\r\n return {\r\n picBase64,\r\n opacity,\r\n }\r\n}\r\n\r\nexport function getBgGradientFill(bgPr, phClr, slideMasterContent, warpObj) {\r\n if (bgPr) {\r\n const grdFill = bgPr['a:gradFill']\r\n const gsLst = grdFill['a:gsLst']['a:gs']\r\n const color_ary = []\r\n \r\n for (let i = 0; i < gsLst.length; i++) {\r\n const lo_color = getSolidFill(gsLst[i], slideMasterContent['p:sldMaster']['p:clrMap']['attrs'], phClr, warpObj)\r\n const pos = getTextByPathList(gsLst[i], ['attrs', 'pos'])\r\n\r\n color_ary[i] = {\r\n pos: pos ? (pos / 1000 + '%') : '',\r\n color: lo_color,\r\n }\r\n }\r\n const lin = grdFill['a:lin']\r\n let rot = 90\r\n if (lin) {\r\n rot = angleToDegrees(lin['attrs']['ang'])\r\n rot = rot + 90\r\n }\r\n\r\n return {\r\n rot,\r\n colors: color_ary.sort((a, b) => parseInt(a.pos) - parseInt(b.pos)),\r\n }\r\n }\r\n else if (phClr) {\r\n return phClr.indexOf('#') === -1 ? `#${phClr}` : phClr\r\n }\r\n return null\r\n}\r\n\r\nexport async function getSlideBackgroundFill(warpObj) {\r\n const slideContent = warpObj['slideContent']\r\n const slideLayoutContent = warpObj['slideLayoutContent']\r\n const slideMasterContent = warpObj['slideMasterContent']\r\n \r\n let bgPr = getTextByPathList(slideContent, ['p:sld', 'p:cSld', 'p:bg', 'p:bgPr'])\r\n let bgRef = getTextByPathList(slideContent, ['p:sld', 'p:cSld', 'p:bg', 'p:bgRef'])\r\n\r\n let background = '#fff'\r\n let backgroundType = 'color'\r\n\r\n if (bgPr) {\r\n const bgFillTyp = getFillType(bgPr)\r\n\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgPr['a:solidFill']\r\n let clrMapOvr\r\n const sldClrMapOvr = getTextByPathList(slideContent, ['p:sld', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) clrMapOvr = sldClrMapOvr\r\n else {\r\n const sldClrMapOvr = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) clrMapOvr = sldClrMapOvr\r\n else clrMapOvr = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:clrMap', 'attrs'])\r\n }\r\n const sldBgClr = getSolidFill(sldFill, clrMapOvr, undefined, warpObj)\r\n background = sldBgClr\r\n }\r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgPr, undefined, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n else if (bgFillTyp === 'PIC_FILL') {\r\n background = await getBgPicFill(bgPr, 'slideBg', warpObj)\r\n backgroundType = 'image'\r\n }\r\n }\r\n else if (bgRef) {\r\n let clrMapOvr\r\n const sldClrMapOvr = getTextByPathList(slideContent, ['p:sld', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) clrMapOvr = sldClrMapOvr\r\n else {\r\n const sldClrMapOvr = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) clrMapOvr = sldClrMapOvr\r\n else clrMapOvr = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:clrMap', 'attrs'])\r\n }\r\n const phClr = getSolidFill(bgRef, clrMapOvr, undefined, warpObj)\r\n const idx = Number(bgRef['attrs']['idx'])\r\n\r\n if (idx > 1000) {\r\n const trueIdx = idx - 1000\r\n const bgFillLst = warpObj['themeContent']['a:theme']['a:themeElements']['a:fmtScheme']['a:bgFillStyleLst']\r\n const sortblAry = []\r\n Object.keys(bgFillLst).forEach(key => {\r\n const bgFillLstTyp = bgFillLst[key]\r\n if (key !== 'attrs') {\r\n if (bgFillLstTyp.constructor === Array) {\r\n for (let i = 0; i < bgFillLstTyp.length; i++) {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp[i]\r\n if (bgFillLstTyp[i]['attrs']) {\r\n obj['idex'] = bgFillLstTyp[i]['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp[i]['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n } \r\n else {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp\r\n if (bgFillLstTyp['attrs']) {\r\n obj['idex'] = bgFillLstTyp['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n }\r\n })\r\n const sortByOrder = sortblAry.slice(0)\r\n sortByOrder.sort((a, b) => a.idex - b.idex)\r\n const bgFillLstIdx = sortByOrder[trueIdx - 1]\r\n const bgFillTyp = getFillType(bgFillLstIdx)\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgFillLstIdx['a:solidFill']\r\n const sldBgClr = getSolidFill(sldFill, clrMapOvr, undefined, warpObj)\r\n background = sldBgClr\r\n } \r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgFillLstIdx, phClr, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n bgPr = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:cSld', 'p:bg', 'p:bgPr'])\r\n bgRef = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:cSld', 'p:bg', 'p:bgRef'])\r\n\r\n let clrMapOvr\r\n const sldClrMapOvr = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) clrMapOvr = sldClrMapOvr\r\n else clrMapOvr = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:clrMap', 'attrs'])\r\n\r\n if (bgPr) {\r\n const bgFillTyp = getFillType(bgPr)\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgPr['a:solidFill']\r\n const sldBgClr = getSolidFill(sldFill, clrMapOvr, undefined, warpObj)\r\n background = sldBgClr\r\n }\r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgPr, undefined, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n else if (bgFillTyp === 'PIC_FILL') {\r\n background = await getBgPicFill(bgPr, 'slideLayoutBg', warpObj)\r\n backgroundType = 'image'\r\n }\r\n }\r\n else if (bgRef) {\r\n const phClr = getSolidFill(bgRef, clrMapOvr, undefined, warpObj)\r\n const idx = Number(bgRef['attrs']['idx'])\r\n \r\n if (idx > 1000) {\r\n const trueIdx = idx - 1000\r\n const bgFillLst = warpObj['themeContent']['a:theme']['a:themeElements']['a:fmtScheme']['a:bgFillStyleLst']\r\n const sortblAry = []\r\n Object.keys(bgFillLst).forEach(key => {\r\n const bgFillLstTyp = bgFillLst[key]\r\n if (key !== 'attrs') {\r\n if (bgFillLstTyp.constructor === Array) {\r\n for (let i = 0; i < bgFillLstTyp.length; i++) {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp[i]\r\n if (bgFillLstTyp[i]['attrs']) {\r\n obj['idex'] = bgFillLstTyp[i]['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp[i]['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n } \r\n else {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp\r\n if (bgFillLstTyp['attrs']) {\r\n obj['idex'] = bgFillLstTyp['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n }\r\n })\r\n const sortByOrder = sortblAry.slice(0)\r\n sortByOrder.sort((a, b) => a.idex - b.idex)\r\n const bgFillLstIdx = sortByOrder[trueIdx - 1]\r\n const bgFillTyp = getFillType(bgFillLstIdx)\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgFillLstIdx['a:solidFill']\r\n const sldBgClr = getSolidFill(sldFill, clrMapOvr, undefined, warpObj)\r\n background = sldBgClr\r\n } \r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgFillLstIdx, phClr, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n else if (bgFillTyp === 'PIC_FILL') {\r\n background = await getBgPicFill(bgFillLstIdx, 'themeBg', warpObj)\r\n backgroundType = 'image'\r\n }\r\n }\r\n }\r\n else {\r\n bgPr = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:cSld', 'p:bg', 'p:bgPr'])\r\n bgRef = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:cSld', 'p:bg', 'p:bgRef'])\r\n\r\n const clrMap = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:clrMap', 'attrs'])\r\n if (bgPr) {\r\n const bgFillTyp = getFillType(bgPr)\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgPr['a:solidFill']\r\n const sldBgClr = getSolidFill(sldFill, clrMap, undefined, warpObj)\r\n background = sldBgClr\r\n }\r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgPr, undefined, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n else if (bgFillTyp === 'PIC_FILL') {\r\n background = await getBgPicFill(bgPr, 'slideMasterBg', warpObj)\r\n backgroundType = 'image'\r\n }\r\n }\r\n else if (bgRef) {\r\n const phClr = getSolidFill(bgRef, clrMap, undefined, warpObj)\r\n const idx = Number(bgRef['attrs']['idx'])\r\n \r\n if (idx > 1000) {\r\n const trueIdx = idx - 1000\r\n const bgFillLst = warpObj['themeContent']['a:theme']['a:themeElements']['a:fmtScheme']['a:bgFillStyleLst']\r\n const sortblAry = []\r\n Object.keys(bgFillLst).forEach(key => {\r\n const bgFillLstTyp = bgFillLst[key]\r\n if (key !== 'attrs') {\r\n if (bgFillLstTyp.constructor === Array) {\r\n for (let i = 0; i < bgFillLstTyp.length; i++) {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp[i]\r\n if (bgFillLstTyp[i]['attrs']) {\r\n obj['idex'] = bgFillLstTyp[i]['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp[i]['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n } \r\n else {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp\r\n if (bgFillLstTyp['attrs']) {\r\n obj['idex'] = bgFillLstTyp['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n }\r\n })\r\n const sortByOrder = sortblAry.slice(0)\r\n sortByOrder.sort((a, b) => a.idex - b.idex)\r\n const bgFillLstIdx = sortByOrder[trueIdx - 1]\r\n const bgFillTyp = getFillType(bgFillLstIdx)\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgFillLstIdx['a:solidFill']\r\n const sldBgClr = getSolidFill(sldFill, clrMapOvr, undefined, warpObj)\r\n background = sldBgClr\r\n } \r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgFillLstIdx, phClr, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n else if (bgFillTyp === 'PIC_FILL') {\r\n background = await getBgPicFill(bgFillLstIdx, 'themeBg', warpObj)\r\n backgroundType = 'image'\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return {\r\n type: backgroundType,\r\n value: background,\r\n }\r\n}\r\n\r\nexport function getShapeFill(node, isSvgMode, warpObj) {\r\n if (getTextByPathList(node, ['p:spPr', 'a:noFill'])) {\r\n return isSvgMode ? 'none' : ''\r\n }\r\n\r\n let fillColor\r\n if (!fillColor) {\r\n fillColor = getTextByPathList(node, ['p:spPr', 'a:solidFill', 'a:srgbClr', 'attrs', 'val'])\r\n }\r\n\r\n if (!fillColor) {\r\n const schemeClr = 'a:' + getTextByPathList(node, ['p:spPr', 'a:solidFill', 'a:schemeClr', 'attrs', 'val'])\r\n fillColor = getSchemeColorFromTheme(schemeClr, warpObj)\r\n }\r\n\r\n if (!fillColor) {\r\n const schemeClr = 'a:' + getTextByPathList(node, ['p:style', 'a:fillRef', 'a:schemeClr', 'attrs', 'val'])\r\n fillColor = getSchemeColorFromTheme(schemeClr, warpObj)\r\n }\r\n\r\n if (fillColor) {\r\n fillColor = `#${fillColor}`\r\n\r\n let lumMod = parseInt(getTextByPathList(node, ['p:spPr', 'a:solidFill', 'a:schemeClr', 'a:lumMod', 'attrs', 'val'])) / 100000\r\n let lumOff = parseInt(getTextByPathList(node, ['p:spPr', 'a:solidFill', 'a:schemeClr', 'a:lumOff', 'attrs', 'val'])) / 100000\r\n if (isNaN(lumMod)) lumMod = 1.0\r\n if (isNaN(lumOff)) lumOff = 0\r\n\r\n const color = tinycolor(fillColor).toHsl()\r\n const lum = color.l * lumMod + lumOff\r\n return tinycolor({ h: color.h, s: color.s, l: lum, a: color.a }).toHexString()\r\n } \r\n\r\n if (isSvgMode) return 'none'\r\n return fillColor\r\n}\r\n\r\nexport function getSolidFill(solidFill, clrMap, phClr, warpObj) {\r\n if (!solidFill) return solidFill\r\n\r\n let color = '#ffffff'\r\n let clrNode\r\n\r\n if (solidFill['a:srgbClr']) {\r\n clrNode = solidFill['a:srgbClr']\r\n color = getTextByPathList(clrNode, ['attrs', 'val'])\r\n } \r\n else if (solidFill['a:schemeClr']) {\r\n clrNode = solidFill['a:schemeClr']\r\n const schemeClr = 'a:' + getTextByPathList(clrNode, ['attrs', 'val'])\r\n color = getSchemeColorFromTheme(schemeClr, warpObj, clrMap, phClr) || '#ffffff'\r\n }\r\n else if (solidFill['a:scrgbClr']) {\r\n clrNode = solidFill['a:scrgbClr']\r\n const defBultColorVals = clrNode['attrs']\r\n const red = (defBultColorVals['r'].indexOf('%') !== -1) ? defBultColorVals['r'].split('%').shift() : defBultColorVals['r']\r\n const green = (defBultColorVals['g'].indexOf('%') !== -1) ? defBultColorVals['g'].split('%').shift() : defBultColorVals['g']\r\n const blue = (defBultColorVals['b'].indexOf('%') !== -1) ? defBultColorVals['b'].split('%').shift() : defBultColorVals['b']\r\n color = toHex(255 * (Number(red) / 100)) + toHex(255 * (Number(green) / 100)) + toHex(255 * (Number(blue) / 100))\r\n } \r\n else if (solidFill['a:prstClr']) {\r\n clrNode = solidFill['a:prstClr']\r\n const prstClr = getTextByPathList(clrNode, ['attrs', 'val'])\r\n color = getColorName2Hex(prstClr)\r\n } \r\n else if (solidFill['a:hslClr']) {\r\n clrNode = solidFill['a:hslClr']\r\n const defBultColorVals = clrNode['attrs']\r\n const hue = Number(defBultColorVals['hue']) / 100000\r\n const sat = Number((defBultColorVals['sat'].indexOf('%') !== -1) ? defBultColorVals['sat'].split('%').shift() : defBultColorVals['sat']) / 100\r\n const lum = Number((defBultColorVals['lum'].indexOf('%') !== -1) ? defBultColorVals['lum'].split('%').shift() : defBultColorVals['lum']) / 100\r\n const hsl2rgb = hslToRgb(hue, sat, lum)\r\n color = toHex(hsl2rgb.r) + toHex(hsl2rgb.g) + toHex(hsl2rgb.b)\r\n } \r\n else if (solidFill['a:sysClr']) {\r\n clrNode = solidFill['a:sysClr']\r\n const sysClr = getTextByPathList(clrNode, ['attrs', 'lastClr'])\r\n if (sysClr) color = sysClr\r\n }\r\n\r\n let isAlpha = false\r\n const alpha = parseInt(getTextByPathList(clrNode, ['a:alpha', 'attrs', 'val'])) / 100000\r\n if (!isNaN(alpha)) {\r\n const al_color = tinycolor(color)\r\n al_color.setAlpha(alpha)\r\n color = al_color.toHex8()\r\n isAlpha = true\r\n }\r\n\r\n const hueMod = parseInt(getTextByPathList(clrNode, ['a:hueMod', 'attrs', 'val'])) / 100000\r\n if (!isNaN(hueMod)) {\r\n color = applyHueMod(color, hueMod, isAlpha)\r\n }\r\n const lumMod = parseInt(getTextByPathList(clrNode, ['a:lumMod', 'attrs', 'val'])) / 100000\r\n if (!isNaN(lumMod)) {\r\n color = applyLumMod(color, lumMod, isAlpha)\r\n }\r\n const lumOff = parseInt(getTextByPathList(clrNode, ['a:lumOff', 'attrs', 'val'])) / 100000\r\n if (!isNaN(lumOff)) {\r\n color = applyLumOff(color, lumOff, isAlpha)\r\n }\r\n const satMod = parseInt(getTextByPathList(clrNode, ['a:satMod', 'attrs', 'val'])) / 100000\r\n if (!isNaN(satMod)) {\r\n color = applySatMod(color, satMod, isAlpha)\r\n }\r\n const shade = parseInt(getTextByPathList(clrNode, ['a:shade', 'attrs', 'val'])) / 100000\r\n if (!isNaN(shade)) {\r\n color = applyShade(color, shade, isAlpha)\r\n }\r\n const tint = parseInt(getTextByPathList(clrNode, ['a:tint', 'attrs', 'val'])) / 100000\r\n if (!isNaN(tint)) {\r\n color = applyTint(color, tint, isAlpha)\r\n }\r\n\r\n if (color && color.indexOf('#') === -1) color = '#' + color\r\n\r\n return color\r\n}","import { eachElement, getTextByPathList } from './utils'\r\n\r\nfunction extractChartData(serNode) {\r\n const dataMat = []\r\n if (!serNode) return dataMat\r\n\r\n if (serNode['c:xVal']) {\r\n let dataRow = []\r\n eachElement(serNode['c:xVal']['c:numRef']['c:numCache']['c:pt'], innerNode => {\r\n dataRow.push(parseFloat(innerNode['c:v']))\r\n return ''\r\n })\r\n dataMat.push(dataRow)\r\n dataRow = []\r\n eachElement(serNode['c:yVal']['c:numRef']['c:numCache']['c:pt'], innerNode => {\r\n dataRow.push(parseFloat(innerNode['c:v']))\r\n return ''\r\n })\r\n dataMat.push(dataRow)\r\n } \r\n else {\r\n eachElement(serNode, (innerNode, index) => {\r\n const dataRow = []\r\n const colName = getTextByPathList(innerNode, ['c:tx', 'c:strRef', 'c:strCache', 'c:pt', 'c:v']) || index\r\n\r\n const rowNames = {}\r\n if (getTextByPathList(innerNode, ['c:cat', 'c:strRef', 'c:strCache', 'c:pt'])) {\r\n eachElement(innerNode['c:cat']['c:strRef']['c:strCache']['c:pt'], innerNode => {\r\n rowNames[innerNode['attrs']['idx']] = innerNode['c:v']\r\n return ''\r\n })\r\n } \r\n else if (getTextByPathList(innerNode, ['c:cat', 'c:numRef', 'c:numCache', 'c:pt'])) {\r\n eachElement(innerNode['c:cat']['c:numRef']['c:numCache']['c:pt'], innerNode => {\r\n rowNames[innerNode['attrs']['idx']] = innerNode['c:v']\r\n return ''\r\n })\r\n }\r\n\r\n if (getTextByPathList(innerNode, ['c:val', 'c:numRef', 'c:numCache', 'c:pt'])) {\r\n eachElement(innerNode['c:val']['c:numRef']['c:numCache']['c:pt'], innerNode => {\r\n dataRow.push({\r\n x: innerNode['attrs']['idx'],\r\n y: parseFloat(innerNode['c:v']),\r\n })\r\n return ''\r\n })\r\n }\r\n\r\n dataMat.push({\r\n key: colName,\r\n values: dataRow,\r\n xlabels: rowNames,\r\n })\r\n return ''\r\n })\r\n }\r\n\r\n return dataMat\r\n}\r\n\r\nexport function getChartInfo(plotArea) {\r\n let chart = null\r\n for (const key in plotArea) {\r\n switch (key) {\r\n case 'c:lineChart':\r\n chart = {\r\n type: 'lineChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n marker: plotArea[key]['c:marker'] ? true : false,\r\n }\r\n break\r\n case 'c:line3DChart':\r\n chart = {\r\n type: 'line3DChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:barChart':\r\n chart = {\r\n type: 'barChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n barDir: getTextByPathList(plotArea[key], ['c:barDir', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:bar3DChart':\r\n chart = {\r\n type: 'bar3DChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n barDir: getTextByPathList(plotArea[key], ['c:barDir', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:pieChart':\r\n chart = {\r\n type: 'pieChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n case 'c:pie3DChart':\r\n chart = {\r\n type: 'pie3DChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n case 'c:doughnutChart':\r\n chart = {\r\n type: 'doughnutChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n holeSize: getTextByPathList(plotArea[key], ['c:holeSize', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:areaChart':\r\n chart = {\r\n type: 'areaChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:area3DChart':\r\n chart = {\r\n type: 'area3DChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:scatterChart':\r\n chart = {\r\n type: 'scatterChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n style: getTextByPathList(plotArea[key], ['c:scatterStyle', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:bubbleChart':\r\n chart = {\r\n type: 'bubbleChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n case 'c:radarChart':\r\n chart = {\r\n type: 'radarChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n style: getTextByPathList(plotArea[key], ['c:radarStyle', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:surfaceChart':\r\n chart = {\r\n type: 'surfaceChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n case 'c:surface3DChart':\r\n chart = {\r\n type: 'surface3DChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n case 'c:stockChart':\r\n chart = {\r\n type: 'stockChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n default:\r\n }\r\n }\r\n\r\n return chart\r\n}","import { getTextByPathList } from './utils'\r\n\r\nexport function getHorizontalAlign(node, pNode, type, warpObj) {\r\n let algn = getTextByPathList(node, ['a:pPr', 'attrs', 'algn'])\r\n if (!algn) algn = getTextByPathList(pNode, ['a:pPr', 'attrs', 'algn'])\r\n\r\n if (!algn) {\r\n if (type === 'title' || type === 'ctrTitle' || type === 'subTitle') {\r\n let lvlIdx = 1\r\n const lvlNode = getTextByPathList(pNode, ['a:pPr', 'attrs', 'lvl'])\r\n if (lvlNode) {\r\n lvlIdx = parseInt(lvlNode) + 1\r\n }\r\n const lvlStr = 'a:lvl' + lvlIdx + 'pPr'\r\n algn = getTextByPathList(warpObj, ['slideLayoutTables', 'typeTable', type, 'p:txBody', 'a:lstStyle', lvlStr, 'attrs', 'algn'])\r\n if (!algn) algn = getTextByPathList(warpObj, ['slideMasterTables', 'typeTable', type, 'p:txBody', 'a:lstStyle', lvlStr, 'attrs', 'algn'])\r\n if (!algn) algn = getTextByPathList(warpObj, ['slideMasterTextStyles', 'p:titleStyle', lvlStr, 'attrs', 'algn'])\r\n if (!algn && type === 'subTitle') {\r\n algn = getTextByPathList(warpObj, ['slideMasterTextStyles', 'p:bodyStyle', lvlStr, 'attrs', 'algn'])\r\n }\r\n } \r\n else if (type === 'body') {\r\n algn = getTextByPathList(warpObj, ['slideMasterTextStyles', 'p:bodyStyle', 'a:lvl1pPr', 'attrs', 'algn'])\r\n } \r\n else {\r\n algn = getTextByPathList(warpObj, ['slideMasterTables', 'typeTable', type, 'p:txBody', 'a:lstStyle', 'a:lvl1pPr', 'attrs', 'algn'])\r\n }\r\n }\r\n\r\n let align = 'left'\r\n if (algn) {\r\n switch (algn) {\r\n case 'l':\r\n align = 'left'\r\n break\r\n case 'r':\r\n align = 'right'\r\n break\r\n case 'ctr':\r\n align = 'center'\r\n break\r\n case 'just':\r\n align = 'justify'\r\n break\r\n case 'dist':\r\n align = 'justify'\r\n break\r\n default:\r\n align = 'inherit'\r\n }\r\n }\r\n return align\r\n}\r\n\r\nexport function getVerticalAlign(node, slideLayoutSpNode, slideMasterSpNode) {\r\n let anchor = getTextByPathList(node, ['p:txBody', 'a:bodyPr', 'attrs', 'anchor'])\r\n if (!anchor) {\r\n anchor = getTextByPathList(slideLayoutSpNode, ['p:txBody', 'a:bodyPr', 'attrs', 'anchor'])\r\n if (!anchor) {\r\n anchor = getTextByPathList(slideMasterSpNode, ['p:txBody', 'a:bodyPr', 'attrs', 'anchor'])\r\n if (!anchor) anchor = 't'\r\n }\r\n }\r\n return (anchor === 'ctr') ? 'mid' : ((anchor === 'b') ? 'down' : 'up')\r\n}","export const RATIO_Inches_EMUs = 914400 // 1英寸 = 914400EMUs\r\nexport const RATIO_Inches_Points = 72 // 1英寸 = 72pt\r\nexport const RATIO_EMUs_Points = RATIO_Inches_Points / RATIO_Inches_EMUs // 1EMUs = (72 / 914400)pt","import { RATIO_EMUs_Points } from './constants'\r\n\r\nexport function getPosition(slideSpNode, slideLayoutSpNode, slideMasterSpNode) {\r\n let off\r\n\r\n if (slideSpNode) off = slideSpNode['a:off']['attrs']\r\n else if (slideLayoutSpNode) off = slideLayoutSpNode['a:off']['attrs']\r\n else if (slideMasterSpNode) off = slideMasterSpNode['a:off']['attrs']\r\n\r\n if (!off) return { top: 0, left: 0 }\r\n\r\n return {\r\n top: parseInt(off['y']) * RATIO_EMUs_Points,\r\n left: parseInt(off['x']) * RATIO_EMUs_Points,\r\n }\r\n}\r\n\r\nexport function getSize(slideSpNode, slideLayoutSpNode, slideMasterSpNode) {\r\n let ext\r\n\r\n if (slideSpNode) ext = slideSpNode['a:ext']['attrs']\r\n else if (slideLayoutSpNode) ext = slideLayoutSpNode['a:ext']['attrs']\r\n else if (slideMasterSpNode) ext = slideMasterSpNode['a:ext']['attrs']\r\n\r\n if (!ext) return { width: 0, height: 0 }\r\n\r\n return {\r\n width: parseInt(ext['cx']) * RATIO_EMUs_Points,\r\n height: parseInt(ext['cy']) * RATIO_EMUs_Points,\r\n }\r\n}","import { getSolidFill } from './fill'\r\nimport { RATIO_EMUs_Points } from './constants'\r\n\r\nexport function getShadow(node, warpObj) {\r\n const chdwClrNode = getSolidFill(node, undefined, undefined, warpObj)\r\n const outerShdwAttrs = node['attrs']\r\n const dir = outerShdwAttrs['dir'] ? (parseInt(outerShdwAttrs['dir']) / 60000) : 0\r\n const dist = parseInt(outerShdwAttrs['dist']) * RATIO_EMUs_Points\r\n const blurRad = outerShdwAttrs['blurRad'] ? parseInt(outerShdwAttrs['blurRad']) * RATIO_EMUs_Points : ''\r\n const vx = dist * Math.sin(dir * Math.PI / 180)\r\n const hx = dist * Math.cos(dir * Math.PI / 180)\r\n\r\n return {\r\n h: hx,\r\n v: vx,\r\n blur: blurRad,\r\n color: chdwClrNode,\r\n }\r\n}","import { getHorizontalAlign } from './align'\r\nimport { getTextByPathList } from './utils'\r\n\r\nimport {\r\n getFontType,\r\n getFontColor,\r\n getFontSize,\r\n getFontBold,\r\n getFontItalic,\r\n getFontDecoration,\r\n getFontDecorationLine,\r\n getFontSpace,\r\n getFontSubscript,\r\n getFontShadow,\r\n} from './fontStyle'\r\n\r\nexport function genTextBody(textBodyNode, spNode, slideLayoutSpNode, type, warpObj) {\r\n if (!textBodyNode) return ''\r\n\r\n let text = ''\r\n\r\n const pFontStyle = getTextByPathList(spNode, ['p:style', 'a:fontRef'])\r\n\r\n const pNode = textBodyNode['a:p']\r\n const pNodes = pNode.constructor === Array ? pNode : [pNode]\r\n\r\n let isList = ''\r\n\r\n for (const pNode of pNodes) {\r\n let rNode = pNode['a:r']\r\n let fldNode = pNode['a:fld']\r\n let brNode = pNode['a:br']\r\n if (rNode) {\r\n rNode = (rNode.constructor === Array) ? rNode : [rNode]\r\n\r\n if (fldNode) {\r\n fldNode = (fldNode.constructor === Array) ? fldNode : [fldNode]\r\n rNode = rNode.concat(fldNode)\r\n }\r\n if (brNode) {\r\n brNode = (brNode.constructor === Array) ? brNode : [brNode]\r\n brNode.forEach(item => item.type = 'br')\r\n \r\n if (brNode.length > 1) brNode.shift()\r\n rNode = rNode.concat(brNode)\r\n rNode.sort((a, b) => {\r\n if (!a.attrs || !b.attrs) return true\r\n return a.attrs.order - b.attrs.order\r\n })\r\n }\r\n }\r\n\r\n const align = getHorizontalAlign(pNode, spNode, type, warpObj)\r\n\r\n const listType = getListType(pNode)\r\n if (listType) {\r\n if (!isList) {\r\n text += `<${listType}>`\r\n isList = listType\r\n }\r\n else if (isList && isList !== listType) {\r\n text += ``\r\n text += `<${listType}>`\r\n isList = listType\r\n }\r\n text += `
  • `\r\n }\r\n else {\r\n if (isList) {\r\n text += ``\r\n isList = ''\r\n }\r\n text += `

    `\r\n }\r\n \r\n if (!rNode) text += genSpanElement(pNode, spNode, textBodyNode, pFontStyle, slideLayoutSpNode, type, warpObj)\r\n else {\r\n for (const rNodeItem of rNode) {\r\n text += genSpanElement(rNodeItem, pNode, textBodyNode, pFontStyle, slideLayoutSpNode, type, warpObj)\r\n }\r\n }\r\n\r\n if (listType) text += '

  • '\r\n else text += '

    '\r\n }\r\n return text\r\n}\r\n\r\nexport function getListType(node) {\r\n const pPrNode = node['a:pPr']\r\n if (!pPrNode) return ''\r\n\r\n if (pPrNode['a:buChar']) return 'ul'\r\n if (pPrNode['a:buAutoNum']) return 'ol'\r\n \r\n return ''\r\n}\r\n\r\nexport function genSpanElement(node, pNode, textBodyNode, pFontStyle, slideLayoutSpNode, type, warpObj) {\r\n const lstStyle = textBodyNode['a:lstStyle']\r\n const slideMasterTextStyles = warpObj['slideMasterTextStyles']\r\n\r\n let lvl = 1\r\n const pPrNode = pNode['a:pPr']\r\n const lvlNode = getTextByPathList(pPrNode, ['attrs', 'lvl'])\r\n if (lvlNode !== undefined) lvl = parseInt(lvlNode) + 1\r\n\r\n let text = node['a:t']\r\n if (typeof text !== 'string') text = getTextByPathList(node, ['a:fld', 'a:t'])\r\n if (typeof text !== 'string') text = ' '\r\n\r\n let styleText = ''\r\n const fontColor = getFontColor(node, pNode, lstStyle, pFontStyle, lvl, warpObj)\r\n const fontSize = getFontSize(node, slideLayoutSpNode, type, slideMasterTextStyles)\r\n const fontType = getFontType(node, type, warpObj)\r\n const fontBold = getFontBold(node)\r\n const fontItalic = getFontItalic(node)\r\n const fontDecoration = getFontDecoration(node)\r\n const fontDecorationLine = getFontDecorationLine(node)\r\n const fontSpace = getFontSpace(node)\r\n const shadow = getFontShadow(node, warpObj)\r\n const subscript = getFontSubscript(node)\r\n\r\n if (fontColor) styleText += `color: ${fontColor};`\r\n if (fontSize) styleText += `font-size: ${fontSize};`\r\n if (fontType) styleText += `font-family: ${fontType};`\r\n if (fontBold) styleText += `font-weight: ${fontBold};`\r\n if (fontItalic) styleText += `font-style: ${fontItalic};`\r\n if (fontDecoration) styleText += `text-decoration: ${fontDecoration};`\r\n if (fontDecorationLine) styleText += `text-decoration-line: ${fontDecorationLine};`\r\n if (fontSpace) styleText += `letter-spacing: ${fontSpace};`\r\n if (subscript) styleText += `vertical-align: ${subscript};`\r\n if (shadow) styleText += `text-shadow: ${shadow};`\r\n\r\n const linkID = getTextByPathList(node, ['a:rPr', 'a:hlinkClick', 'attrs', 'r:id'])\r\n if (linkID) {\r\n const linkURL = warpObj['slideResObj'][linkID]['target']\r\n return `${text.replace(/\\t/g, '    ').replace(/\\s/g, ' ')}`\r\n } \r\n return `${text.replace(/\\t/g, '    ').replace(/\\s/g, ' ')}`\r\n}","import { getTextByPathList } from './utils'\r\nimport { getShadow } from './shadow'\r\nimport { getFillType, getSolidFill } from './fill'\r\n\r\nexport function getFontType(node, type, warpObj) {\r\n let typeface = getTextByPathList(node, ['a:rPr', 'a:latin', 'attrs', 'typeface'])\r\n\r\n if (!typeface) {\r\n const fontSchemeNode = getTextByPathList(warpObj['themeContent'], ['a:theme', 'a:themeElements', 'a:fontScheme'])\r\n\r\n if (type === 'title' || type === 'subTitle' || type === 'ctrTitle') {\r\n typeface = getTextByPathList(fontSchemeNode, ['a:majorFont', 'a:latin', 'attrs', 'typeface'])\r\n } \r\n else if (type === 'body') {\r\n typeface = getTextByPathList(fontSchemeNode, ['a:minorFont', 'a:latin', 'attrs', 'typeface'])\r\n } \r\n else {\r\n typeface = getTextByPathList(fontSchemeNode, ['a:minorFont', 'a:latin', 'attrs', 'typeface'])\r\n }\r\n }\r\n\r\n return typeface || ''\r\n}\r\n\r\nexport function getFontColor(node, pNode, lstStyle, pFontStyle, lvl, warpObj) {\r\n const rPrNode = getTextByPathList(node, ['a:rPr'])\r\n let filTyp, color\r\n if (rPrNode) {\r\n filTyp = getFillType(rPrNode)\r\n if (filTyp === 'SOLID_FILL') {\r\n const solidFillNode = rPrNode['a:solidFill']\r\n color = getSolidFill(solidFillNode, undefined, undefined, warpObj)\r\n }\r\n }\r\n if (!color && getTextByPathList(lstStyle, ['a:lvl' + lvl + 'pPr', 'a:defRPr'])) {\r\n const lstStyledefRPr = getTextByPathList(lstStyle, ['a:lvl' + lvl + 'pPr', 'a:defRPr'])\r\n filTyp = getFillType(lstStyledefRPr)\r\n if (filTyp === 'SOLID_FILL') {\r\n const solidFillNode = lstStyledefRPr['a:solidFill']\r\n color = getSolidFill(solidFillNode, undefined, undefined, warpObj)\r\n }\r\n }\r\n if (!color) {\r\n const sPstyle = getTextByPathList(pNode, ['p:style', 'a:fontRef'])\r\n if (sPstyle) color = getSolidFill(sPstyle, undefined, undefined, warpObj)\r\n if (!color && pFontStyle) color = getSolidFill(pFontStyle, undefined, undefined, warpObj)\r\n }\r\n return color || ''\r\n}\r\n\r\nexport function getFontSize(node, slideLayoutSpNode, type, slideMasterTextStyles) {\r\n let fontSize\r\n\r\n if (getTextByPathList(node, ['a:rPr', 'attrs', 'sz'])) fontSize = getTextByPathList(node, ['a:rPr', 'attrs', 'sz']) / 100\r\n\r\n if ((isNaN(fontSize) || !fontSize)) {\r\n const sz = getTextByPathList(slideLayoutSpNode, ['p:txBody', 'a:lstStyle', 'a:lvl1pPr', 'a:defRPr', 'attrs', 'sz'])\r\n fontSize = parseInt(sz) / 100\r\n }\r\n\r\n if (isNaN(fontSize) || !fontSize) {\r\n let sz\r\n if (type === 'title' || type === 'subTitle' || type === 'ctrTitle') {\r\n sz = getTextByPathList(slideMasterTextStyles, ['p:titleStyle', 'a:lvl1pPr', 'a:defRPr', 'attrs', 'sz'])\r\n } \r\n else if (type === 'body') {\r\n sz = getTextByPathList(slideMasterTextStyles, ['p:bodyStyle', 'a:lvl1pPr', 'a:defRPr', 'attrs', 'sz'])\r\n } \r\n else if (type === 'dt' || type === 'sldNum') {\r\n sz = '1200'\r\n } \r\n else if (!type) {\r\n sz = getTextByPathList(slideMasterTextStyles, ['p:otherStyle', 'a:lvl1pPr', 'a:defRPr', 'attrs', 'sz'])\r\n }\r\n if (sz) fontSize = parseInt(sz) / 100\r\n }\r\n\r\n const baseline = getTextByPathList(node, ['a:rPr', 'attrs', 'baseline'])\r\n if (baseline && !isNaN(fontSize)) fontSize -= 10\r\n\r\n fontSize = (isNaN(fontSize) || !fontSize) ? 18 : fontSize\r\n\r\n return fontSize + 'pt'\r\n}\r\n\r\nexport function getFontBold(node) {\r\n return getTextByPathList(node, ['a:rPr', 'attrs', 'b']) === '1' ? 'bold' : ''\r\n}\r\n\r\nexport function getFontItalic(node) {\r\n return getTextByPathList(node, ['a:rPr', 'attrs', 'i']) === '1' ? 'italic' : ''\r\n}\r\n\r\nexport function getFontDecoration(node) {\r\n return getTextByPathList(node, ['a:rPr', 'attrs', 'u']) === 'sng' ? 'underline' : ''\r\n}\r\n\r\nexport function getFontDecorationLine(node) {\r\n return getTextByPathList(node, ['a:rPr', 'attrs', 'strike']) === 'sngStrike' ? 'line-through' : ''\r\n}\r\n\r\nexport function getFontSpace(node) {\r\n const spc = getTextByPathList(node, ['a:rPr', 'attrs', 'spc'])\r\n return spc ? (parseInt(spc) / 100 + 'pt') : ''\r\n}\r\n\r\nexport function getFontSubscript(node) {\r\n const baseline = getTextByPathList(node, ['a:rPr', 'attrs', 'baseline'])\r\n if (!baseline) return ''\r\n return parseInt(baseline) > 0 ? 'super' : 'sub'\r\n}\r\n\r\nexport function getFontShadow(node, warpObj) {\r\n const txtShadow = getTextByPathList(node, ['a:rPr', 'a:effectLst', 'a:outerShdw'])\r\n if (txtShadow) {\r\n const shadow = getShadow(txtShadow, warpObj)\r\n if (shadow) {\r\n const { h, v, blur, color } = shadow\r\n if (!isNaN(v) && !isNaN(h)) {\r\n return h + 'pt ' + v + 'pt ' + (blur ? blur + 'pt' : '') + ' ' + color\r\n }\r\n }\r\n }\r\n return ''\r\n}","import { getTextByPathList } from './utils'\r\n\r\nexport function shapeArc(cX, cY, rX, rY, stAng, endAng, isClose) {\r\n let dData\r\n let angle = stAng\r\n if (endAng >= stAng) {\r\n while (angle <= endAng) {\r\n const radians = angle * (Math.PI / 180)\r\n const x = cX + Math.cos(radians) * rX\r\n const y = cY + Math.sin(radians) * rY\r\n if (angle === stAng) {\r\n dData = ' M' + x + ' ' + y\r\n }\r\n dData += ' L' + x + ' ' + y\r\n angle++\r\n }\r\n } \r\n else {\r\n while (angle > endAng) {\r\n const radians = angle * (Math.PI / 180)\r\n const x = cX + Math.cos(radians) * rX\r\n const y = cY + Math.sin(radians) * rY\r\n if (angle === stAng) {\r\n dData = ' M ' + x + ' ' + y\r\n }\r\n dData += ' L ' + x + ' ' + y\r\n angle--\r\n }\r\n }\r\n dData += (isClose ? ' z' : '')\r\n return dData\r\n}\r\n\r\nexport function getCustomShapePath(custShapType, w, h) {\r\n const pathLstNode = getTextByPathList(custShapType, ['a:pathLst'])\r\n let pathNodes = getTextByPathList(pathLstNode, ['a:path'])\r\n\r\n if (Array.isArray(pathNodes)) pathNodes = pathNodes.pop()\r\n\r\n const maxX = parseInt(pathNodes['attrs']['w'])\r\n const maxY = parseInt(pathNodes['attrs']['h'])\r\n const cX = maxX === 0 ? 0 : (1 / maxX) * w\r\n const cY = maxY === 0 ? 0 : (1 / maxY) * h\r\n let d = ''\r\n\r\n let moveToNode = getTextByPathList(pathNodes, ['a:moveTo'])\r\n\r\n const lnToNodes = pathNodes['a:lnTo']\r\n let cubicBezToNodes = pathNodes['a:cubicBezTo']\r\n const arcToNodes = pathNodes['a:arcTo']\r\n let closeNode = getTextByPathList(pathNodes, ['a:close'])\r\n if (!Array.isArray(moveToNode)) moveToNode = [moveToNode]\r\n\r\n const multiSapeAry = []\r\n if (moveToNode.length > 0) {\r\n Object.keys(moveToNode).forEach(key => {\r\n const moveToPtNode = moveToNode[key]['a:pt']\r\n if (moveToPtNode) {\r\n Object.keys(moveToPtNode).forEach(key => {\r\n const moveToNoPt = moveToPtNode[key]\r\n const spX = moveToNoPt['attrs', 'x']\r\n const spY = moveToNoPt['attrs', 'y']\r\n const order = moveToNoPt['attrs', 'order']\r\n multiSapeAry.push({\r\n type: 'movto',\r\n x: spX,\r\n y: spY,\r\n order,\r\n })\r\n })\r\n }\r\n })\r\n if (lnToNodes) {\r\n Object.keys(lnToNodes).forEach(key => {\r\n const lnToPtNode = lnToNodes[key]['a:pt']\r\n if (lnToPtNode) {\r\n Object.keys(lnToPtNode).forEach(key => {\r\n const lnToNoPt = lnToPtNode[key]\r\n const ptX = lnToNoPt['attrs', 'x']\r\n const ptY = lnToNoPt['attrs', 'y']\r\n const order = lnToNoPt['attrs', 'order']\r\n multiSapeAry.push({\r\n type: 'lnto',\r\n x: ptX,\r\n y: ptY,\r\n order,\r\n })\r\n })\r\n }\r\n })\r\n }\r\n if (cubicBezToNodes) {\r\n const cubicBezToPtNodesAry = []\r\n if (!Array.isArray(cubicBezToNodes)) {\r\n cubicBezToNodes = [cubicBezToNodes]\r\n }\r\n Object.keys(cubicBezToNodes).forEach(key => {\r\n cubicBezToPtNodesAry.push(cubicBezToNodes[key]['a:pt'])\r\n })\r\n\r\n cubicBezToPtNodesAry.forEach(key => {\r\n const pts_ary = []\r\n key.forEach(pt => {\r\n const pt_obj = {\r\n x: pt['attrs']['x'],\r\n y: pt['attrs']['y'],\r\n }\r\n pts_ary.push(pt_obj)\r\n })\r\n const order = key[0]['attrs']['order']\r\n multiSapeAry.push({\r\n type: 'cubicBezTo',\r\n cubBzPt: pts_ary,\r\n order,\r\n })\r\n })\r\n }\r\n if (arcToNodes) {\r\n const arcToNodesAttrs = arcToNodes['attrs']\r\n const order = arcToNodesAttrs['order']\r\n const hR = arcToNodesAttrs['hR']\r\n const wR = arcToNodesAttrs['wR']\r\n const stAng = arcToNodesAttrs['stAng']\r\n const swAng = arcToNodesAttrs['swAng']\r\n let shftX = 0\r\n let shftY = 0\r\n const arcToPtNode = getTextByPathList(arcToNodes, ['a:pt', 'attrs'])\r\n if (arcToPtNode) {\r\n shftX = arcToPtNode['x']\r\n shftY = arcToPtNode['y']\r\n }\r\n multiSapeAry.push({\r\n type: 'arcTo',\r\n hR: hR,\r\n wR: wR,\r\n stAng: stAng,\r\n swAng: swAng,\r\n shftX: shftX,\r\n shftY: shftY,\r\n order,\r\n })\r\n }\r\n if (closeNode) {\r\n if (!Array.isArray(closeNode)) closeNode = [closeNode]\r\n Object.keys(closeNode).forEach(() => {\r\n multiSapeAry.push({\r\n type: 'close',\r\n order: Infinity,\r\n })\r\n })\r\n }\r\n\r\n multiSapeAry.sort((a, b) => a.order - b.order)\r\n\r\n let k = 0\r\n while (k < multiSapeAry.length) {\r\n if (multiSapeAry[k].type === 'movto') {\r\n const spX = parseInt(multiSapeAry[k].x) * cX\r\n const spY = parseInt(multiSapeAry[k].y) * cY\r\n d += ' M' + spX + ',' + spY\r\n } \r\n else if (multiSapeAry[k].type === 'lnto') {\r\n const Lx = parseInt(multiSapeAry[k].x) * cX\r\n const Ly = parseInt(multiSapeAry[k].y) * cY\r\n d += ' L' + Lx + ',' + Ly\r\n } \r\n else if (multiSapeAry[k].type === 'cubicBezTo') {\r\n const Cx1 = parseInt(multiSapeAry[k].cubBzPt[0].x) * cX\r\n const Cy1 = parseInt(multiSapeAry[k].cubBzPt[0].y) * cY\r\n const Cx2 = parseInt(multiSapeAry[k].cubBzPt[1].x) * cX\r\n const Cy2 = parseInt(multiSapeAry[k].cubBzPt[1].y) * cY\r\n const Cx3 = parseInt(multiSapeAry[k].cubBzPt[2].x) * cX\r\n const Cy3 = parseInt(multiSapeAry[k].cubBzPt[2].y) * cY\r\n d += ' C' + Cx1 + ',' + Cy1 + ' ' + Cx2 + ',' + Cy2 + ' ' + Cx3 + ',' + Cy3\r\n } \r\n else if (multiSapeAry[k].type === 'arcTo') {\r\n const hR = parseInt(multiSapeAry[k].hR) * cX\r\n const wR = parseInt(multiSapeAry[k].wR) * cY\r\n const stAng = parseInt(multiSapeAry[k].stAng) / 60000\r\n const swAng = parseInt(multiSapeAry[k].swAng) / 60000\r\n const endAng = stAng + swAng\r\n d += shapeArc(wR, hR, wR, hR, stAng, endAng, false)\r\n }\r\n else if (multiSapeAry[k].type === 'close') d += 'z'\r\n k++\r\n }\r\n }\r\n\r\n return d\r\n}","import { getShapeFill, getSolidFill } from './fill'\r\nimport { getTextByPathList } from './utils'\r\nimport { getBorder } from './border'\r\n\r\nexport function getTableBorders(node, warpObj) {\r\n const borderStyles = {}\r\n if (node['a:bottom']) {\r\n const obj = {\r\n 'p:spPr': {\r\n 'a:ln': node['a:bottom']['a:ln']\r\n }\r\n }\r\n const border = getBorder(obj, undefined, warpObj)\r\n borderStyles.bottom = border\r\n }\r\n if (node['a:top']) {\r\n const obj = {\r\n 'p:spPr': {\r\n 'a:ln': node['a:top']['a:ln']\r\n }\r\n }\r\n const border = getBorder(obj, undefined, warpObj)\r\n borderStyles.top = border\r\n }\r\n if (node['a:right']) {\r\n const obj = {\r\n 'p:spPr': {\r\n 'a:ln': node['a:right']['a:ln']\r\n }\r\n }\r\n const border = getBorder(obj, undefined, warpObj)\r\n borderStyles.right = border\r\n }\r\n if (node['a:left']) {\r\n const obj = {\r\n 'p:spPr': {\r\n 'a:ln': node['a:left']['a:ln']\r\n }\r\n }\r\n const border = getBorder(obj, undefined, warpObj)\r\n borderStyles.left = border\r\n }\r\n return borderStyles\r\n}\r\n\r\nexport function getTableCellParams(tcNode, thisTblStyle, cellSource, warpObj) {\r\n const rowSpan = getTextByPathList(tcNode, ['attrs', 'rowSpan'])\r\n const colSpan = getTextByPathList(tcNode, ['attrs', 'gridSpan'])\r\n const vMerge = getTextByPathList(tcNode, ['attrs', 'vMerge'])\r\n const hMerge = getTextByPathList(tcNode, ['attrs', 'hMerge'])\r\n let fillColor\r\n let fontColor\r\n let fontBold\r\n\r\n const getCelFill = getTextByPathList(tcNode, ['a:tcPr'])\r\n if (getCelFill) {\r\n const cellObj = { 'p:spPr': getCelFill }\r\n fillColor = getShapeFill(cellObj, undefined, warpObj)\r\n }\r\n if (!fillColor) {\r\n let bgFillschemeClr\r\n if (cellSource) bgFillschemeClr = getTextByPathList(thisTblStyle, [cellSource, 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n }\r\n }\r\n\r\n let rowTxtStyl\r\n if (cellSource) rowTxtStyl = getTextByPathList(thisTblStyle, [cellSource, 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n\r\n return {\r\n fillColor,\r\n fontColor,\r\n fontBold,\r\n rowSpan: rowSpan ? +rowSpan : undefined,\r\n colSpan: colSpan ? +colSpan : undefined,\r\n vMerge: vMerge ? +vMerge : undefined,\r\n hMerge: hMerge ? +hMerge : undefined,\r\n }\r\n}\r\n\r\nexport function getTableRowParams(trNodes, i, tblStylAttrObj, thisTblStyle, warpObj) {\r\n let fillColor\r\n let fontColor\r\n let fontBold\r\n\r\n if (thisTblStyle && thisTblStyle['a:wholeTbl']) {\r\n const bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:wholeTbl', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n const local_fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n if (local_fillColor) fillColor = local_fillColor\r\n }\r\n const rowTxtStyl = getTextByPathList(thisTblStyle, ['a:wholeTbl', 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n const local_fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (local_fontColor) fontColor = local_fontColor\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n }\r\n if (i === 0 && tblStylAttrObj['isFrstRowAttr'] === 1 && thisTblStyle) {\r\n const bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:firstRow', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n const local_fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n if (local_fillColor) fillColor = local_fillColor\r\n }\r\n const rowTxtStyl = getTextByPathList(thisTblStyle, ['a:firstRow', 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n const local_fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (local_fontColor) fontColor = local_fontColor\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n }\r\n else if (i > 0 && tblStylAttrObj['isBandRowAttr'] === 1 && thisTblStyle) {\r\n fillColor = ''\r\n if ((i % 2) === 0 && thisTblStyle['a:band2H']) {\r\n const bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:band2H', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n const local_fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n if (local_fillColor) fillColor = local_fillColor\r\n }\r\n const rowTxtStyl = getTextByPathList(thisTblStyle, ['a:band2H', 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n const local_fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (local_fontColor) fontColor = local_fontColor\r\n }\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n if ((i % 2) !== 0 && thisTblStyle['a:band1H']) {\r\n const bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:band1H', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n const local_fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n if (local_fillColor) fillColor = local_fillColor\r\n }\r\n const rowTxtStyl = getTextByPathList(thisTblStyle, ['a:band1H', 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n const local_fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (local_fontColor) fontColor = local_fontColor\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n }\r\n }\r\n if (i === (trNodes.length - 1) && tblStylAttrObj['isLstRowAttr'] === 1 && thisTblStyle) {\r\n const bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:lastRow', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n const local_fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n if (local_fillColor) {\r\n fillColor = local_fillColor\r\n }\r\n }\r\n const rowTxtStyl = getTextByPathList(thisTblStyle, ['a:lastRow', 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n const local_fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (local_fontColor) fontColor = local_fontColor\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n }\r\n\r\n return {\r\n fillColor,\r\n fontColor,\r\n fontBold,\r\n }\r\n}","import JSZip from 'jszip'\r\nimport { readXmlFile } from './readXmlFile'\r\nimport { getBorder } from './border'\r\nimport { getSlideBackgroundFill, getShapeFill, getSolidFill } from './fill'\r\nimport { getChartInfo } from './chart'\r\nimport { getVerticalAlign } from './align'\r\nimport { getPosition, getSize } from './position'\r\nimport { genTextBody } from './text'\r\nimport { getCustomShapePath } from './shape'\r\nimport { extractFileExtension, base64ArrayBuffer, getTextByPathList, angleToDegrees, getMimeType, isVideoLink, escapeHtml } from './utils'\r\nimport { getShadow } from './shadow'\r\nimport { getTableBorders, getTableCellParams, getTableRowParams } from './table'\r\nimport { RATIO_EMUs_Points } from './constants'\r\n\r\nexport async function parse(file) {\r\n const slides = []\r\n \r\n const zip = await JSZip.loadAsync(file)\r\n\r\n const filesInfo = await getContentTypes(zip)\r\n const { width, height, defaultTextStyle } = await getSlideInfo(zip)\r\n const themeContent = await loadTheme(zip)\r\n\r\n for (const filename of filesInfo.slides) {\r\n const singleSlide = await processSingleSlide(zip, filename, themeContent, defaultTextStyle)\r\n slides.push(singleSlide)\r\n }\r\n\r\n return {\r\n slides,\r\n size: {\r\n width,\r\n height,\r\n },\r\n }\r\n}\r\n\r\nasync function getContentTypes(zip) {\r\n const ContentTypesJson = await readXmlFile(zip, '[Content_Types].xml')\r\n const subObj = ContentTypesJson['Types']['Override']\r\n let slidesLocArray = []\r\n let slideLayoutsLocArray = []\r\n\r\n for (const item of subObj) {\r\n switch (item['attrs']['ContentType']) {\r\n case 'application/vnd.openxmlformats-officedocument.presentationml.slide+xml':\r\n slidesLocArray.push(item['attrs']['PartName'].substr(1))\r\n break\r\n case 'application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml':\r\n slideLayoutsLocArray.push(item['attrs']['PartName'].substr(1))\r\n break\r\n default:\r\n }\r\n }\r\n \r\n const sortSlideXml = (p1, p2) => {\r\n const n1 = +/(\\d+)\\.xml/.exec(p1)[1]\r\n const n2 = +/(\\d+)\\.xml/.exec(p2)[1]\r\n return n1 - n2\r\n }\r\n slidesLocArray = slidesLocArray.sort(sortSlideXml)\r\n slideLayoutsLocArray = slideLayoutsLocArray.sort(sortSlideXml)\r\n \r\n return {\r\n slides: slidesLocArray,\r\n slideLayouts: slideLayoutsLocArray,\r\n }\r\n}\r\n\r\nasync function getSlideInfo(zip) {\r\n const content = await readXmlFile(zip, 'ppt/presentation.xml')\r\n const sldSzAttrs = content['p:presentation']['p:sldSz']['attrs']\r\n const defaultTextStyle = content['p:presentation']['p:defaultTextStyle']\r\n return {\r\n width: parseInt(sldSzAttrs['cx']) * RATIO_EMUs_Points,\r\n height: parseInt(sldSzAttrs['cy']) * RATIO_EMUs_Points,\r\n defaultTextStyle,\r\n }\r\n}\r\n\r\nasync function loadTheme(zip) {\r\n const preResContent = await readXmlFile(zip, 'ppt/_rels/presentation.xml.rels')\r\n const relationshipArray = preResContent['Relationships']['Relationship']\r\n let themeURI\r\n\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipItem of relationshipArray) {\r\n if (relationshipItem['attrs']['Type'] === 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme') {\r\n themeURI = relationshipItem['attrs']['Target']\r\n break\r\n }\r\n }\r\n } \r\n else if (relationshipArray['attrs']['Type'] === 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme') {\r\n themeURI = relationshipArray['attrs']['Target']\r\n }\r\n if (!themeURI) throw Error(`Can't open theme file.`)\r\n\r\n return await readXmlFile(zip, 'ppt/' + themeURI)\r\n}\r\n\r\nasync function processSingleSlide(zip, sldFileName, themeContent, defaultTextStyle) {\r\n const resName = sldFileName.replace('slides/slide', 'slides/_rels/slide') + '.rels'\r\n const resContent = await readXmlFile(zip, resName)\r\n let relationshipArray = resContent['Relationships']['Relationship']\r\n let layoutFilename = ''\r\n let diagramFilename = ''\r\n const slideResObj = {}\r\n\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipArrayItem of relationshipArray) {\r\n switch (relationshipArrayItem['attrs']['Type']) {\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout':\r\n layoutFilename = relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n break\r\n case 'http://schemas.microsoft.com/office/2007/relationships/diagramDrawing':\r\n diagramFilename = relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n slideResObj[relationshipArrayItem['attrs']['Id']] = {\r\n type: relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n target: relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n }\r\n break\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide':\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image':\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart':\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink':\r\n default:\r\n slideResObj[relationshipArrayItem['attrs']['Id']] = {\r\n type: relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n target: relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/'),\r\n }\r\n }\r\n }\r\n } \r\n else layoutFilename = relationshipArray['attrs']['Target'].replace('../', 'ppt/')\r\n\r\n const slideLayoutContent = await readXmlFile(zip, layoutFilename)\r\n const slideLayoutTables = await indexNodes(slideLayoutContent)\r\n\r\n const slideLayoutResFilename = layoutFilename.replace('slideLayouts/slideLayout', 'slideLayouts/_rels/slideLayout') + '.rels'\r\n const slideLayoutResContent = await readXmlFile(zip, slideLayoutResFilename)\r\n relationshipArray = slideLayoutResContent['Relationships']['Relationship']\r\n\r\n let masterFilename = ''\r\n const layoutResObj = {}\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipArrayItem of relationshipArray) {\r\n switch (relationshipArrayItem['attrs']['Type']) {\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster':\r\n masterFilename = relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n break\r\n default:\r\n layoutResObj[relationshipArrayItem['attrs']['Id']] = {\r\n type: relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n target: relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/'),\r\n }\r\n }\r\n }\r\n } \r\n else masterFilename = relationshipArray['attrs']['Target'].replace('../', 'ppt/')\r\n\r\n const slideMasterContent = await readXmlFile(zip, masterFilename)\r\n const slideMasterTextStyles = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:txStyles'])\r\n const slideMasterTables = indexNodes(slideMasterContent)\r\n\r\n const slideMasterResFilename = masterFilename.replace('slideMasters/slideMaster', 'slideMasters/_rels/slideMaster') + '.rels'\r\n const slideMasterResContent = await readXmlFile(zip, slideMasterResFilename)\r\n relationshipArray = slideMasterResContent['Relationships']['Relationship']\r\n\r\n let themeFilename = ''\r\n const masterResObj = {}\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipArrayItem of relationshipArray) {\r\n switch (relationshipArrayItem['attrs']['Type']) {\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme':\r\n break\r\n default:\r\n masterResObj[relationshipArrayItem['attrs']['Id']] = {\r\n type: relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n target: relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/'),\r\n }\r\n }\r\n }\r\n }\r\n else themeFilename = relationshipArray['attrs']['Target'].replace('../', 'ppt/')\r\n\r\n const themeResObj = {}\r\n if (themeFilename) {\r\n const themeName = themeFilename.split('/').pop()\r\n const themeResFileName = themeFilename.replace(themeName, '_rels/' + themeName) + '.rels'\r\n const themeResContent = await readXmlFile(zip, themeResFileName)\r\n if (themeResContent) {\r\n relationshipArray = themeResContent['Relationships']['Relationship']\r\n if (relationshipArray) {\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipArrayItem of relationshipArray) {\r\n themeResObj[relationshipArrayItem['attrs']['Id']] = {\r\n 'type': relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n 'target': relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n }\r\n }\r\n } \r\n else {\r\n themeResObj[relationshipArray['attrs']['Id']] = {\r\n 'type': relationshipArray['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n 'target': relationshipArray['attrs']['Target'].replace('../', 'ppt/')\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n const diagramResObj = {}\r\n let digramFileContent = {}\r\n if (diagramFilename) {\r\n const diagName = diagramFilename.split('/').pop()\r\n const diagramResFileName = diagramFilename.replace(diagName, '_rels/' + diagName) + '.rels'\r\n digramFileContent = await readXmlFile(zip, diagramFilename)\r\n if (digramFileContent && digramFileContent && digramFileContent) {\r\n let digramFileContentObjToStr = JSON.stringify(digramFileContent)\r\n digramFileContentObjToStr = digramFileContentObjToStr.replace(/dsp:/g, 'p:')\r\n digramFileContent = JSON.parse(digramFileContentObjToStr)\r\n }\r\n const digramResContent = await readXmlFile(zip, diagramResFileName)\r\n if (digramResContent) {\r\n relationshipArray = digramResContent['Relationships']['Relationship']\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipArrayItem of relationshipArray) {\r\n diagramResObj[relationshipArrayItem['attrs']['Id']] = {\r\n 'type': relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n 'target': relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n }\r\n }\r\n } \r\n else {\r\n diagramResObj[relationshipArray['attrs']['Id']] = {\r\n 'type': relationshipArray['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n 'target': relationshipArray['attrs']['Target'].replace('../', 'ppt/')\r\n }\r\n }\r\n }\r\n }\r\n\r\n const tableStyles = await readXmlFile(zip, 'ppt/tableStyles.xml')\r\n\r\n const slideContent = await readXmlFile(zip, sldFileName)\r\n const nodes = slideContent['p:sld']['p:cSld']['p:spTree']\r\n const warpObj = {\r\n zip,\r\n slideLayoutContent,\r\n slideLayoutTables,\r\n slideMasterContent,\r\n slideMasterTables,\r\n slideContent,\r\n tableStyles,\r\n slideResObj,\r\n slideMasterTextStyles,\r\n layoutResObj,\r\n masterResObj,\r\n themeContent,\r\n themeResObj,\r\n digramFileContent,\r\n diagramResObj,\r\n defaultTextStyle,\r\n }\r\n // const bgElements = await getBackground(warpObj)\r\n const bgColor = await getSlideBackgroundFill(warpObj)\r\n\r\n const elements = []\r\n for (const nodeKey in nodes) {\r\n if (nodes[nodeKey].constructor === Array) {\r\n for (const node of nodes[nodeKey]) {\r\n const ret = await processNodesInSlide(nodeKey, node, warpObj, 'slide')\r\n if (ret) elements.push(ret)\r\n }\r\n } \r\n else {\r\n const ret = await processNodesInSlide(nodeKey, nodes[nodeKey], warpObj, 'slide')\r\n if (ret) elements.push(ret)\r\n }\r\n }\r\n\r\n return {\r\n fill: bgColor,\r\n elements,\r\n }\r\n}\r\n\r\n// async function getBackground(warpObj) {\r\n// const elements = []\r\n// const slideLayoutContent = warpObj['slideLayoutContent']\r\n// const slideMasterContent = warpObj['slideMasterContent']\r\n// const nodesSldLayout = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:cSld', 'p:spTree'])\r\n// const nodesSldMaster = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:cSld', 'p:spTree'])\r\n\r\n// const showMasterSp = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'attrs', 'showMasterSp'])\r\n// if (nodesSldLayout) {\r\n// for (const nodeKey in nodesSldLayout) {\r\n// if (nodesSldLayout[nodeKey].constructor === Array) {\r\n// for (let i = 0; i < nodesSldLayout[nodeKey].length; i++) {\r\n// const ph_type = getTextByPathList(nodesSldLayout[nodeKey][i], ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'type'])\r\n// if (ph_type !== 'pic') {\r\n// const ret = await processNodesInSlide(nodeKey, nodesSldLayout[nodeKey][i], warpObj, 'slideLayoutBg')\r\n// if (ret) elements.push(ret)\r\n// }\r\n// }\r\n// } \r\n// else {\r\n// const ph_type = getTextByPathList(nodesSldLayout[nodeKey], ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'type'])\r\n// if (ph_type !== 'pic') {\r\n// const ret = await processNodesInSlide(nodeKey, nodesSldLayout[nodeKey], warpObj, 'slideLayoutBg')\r\n// if (ret) elements.push(ret)\r\n// }\r\n// }\r\n// }\r\n// }\r\n// if (nodesSldMaster && (showMasterSp === '1' || showMasterSp)) {\r\n// for (const nodeKey in nodesSldMaster) {\r\n// if (nodesSldMaster[nodeKey].constructor === Array) {\r\n// for (let i = 0; i < nodesSldMaster[nodeKey].length; i++) {\r\n// const ret = await processNodesInSlide(nodeKey, nodesSldMaster[nodeKey][i], warpObj, 'slideMasterBg')\r\n// if (ret) elements.push(ret)\r\n// }\r\n// } \r\n// else {\r\n// const ret = await processNodesInSlide(nodeKey, nodesSldMaster[nodeKey], warpObj, 'slideMasterBg')\r\n// if (ret) elements.push(ret)\r\n// }\r\n// }\r\n// }\r\n// return elements\r\n// }\r\n\r\nfunction indexNodes(content) {\r\n const keys = Object.keys(content)\r\n const spTreeNode = content[keys[0]]['p:cSld']['p:spTree']\r\n const idTable = {}\r\n const idxTable = {}\r\n const typeTable = {}\r\n\r\n for (const key in spTreeNode) {\r\n if (key === 'p:nvGrpSpPr' || key === 'p:grpSpPr') continue\r\n\r\n const targetNode = spTreeNode[key]\r\n\r\n if (targetNode.constructor === Array) {\r\n for (const targetNodeItem of targetNode) {\r\n const nvSpPrNode = targetNodeItem['p:nvSpPr']\r\n const id = getTextByPathList(nvSpPrNode, ['p:cNvPr', 'attrs', 'id'])\r\n const idx = getTextByPathList(nvSpPrNode, ['p:nvPr', 'p:ph', 'attrs', 'idx'])\r\n const type = getTextByPathList(nvSpPrNode, ['p:nvPr', 'p:ph', 'attrs', 'type'])\r\n\r\n if (id) idTable[id] = targetNodeItem\r\n if (idx) idxTable[idx] = targetNodeItem\r\n if (type) typeTable[type] = targetNodeItem\r\n }\r\n } \r\n else {\r\n const nvSpPrNode = targetNode['p:nvSpPr']\r\n const id = getTextByPathList(nvSpPrNode, ['p:cNvPr', 'attrs', 'id'])\r\n const idx = getTextByPathList(nvSpPrNode, ['p:nvPr', 'p:ph', 'attrs', 'idx'])\r\n const type = getTextByPathList(nvSpPrNode, ['p:nvPr', 'p:ph', 'attrs', 'type'])\r\n\r\n if (id) idTable[id] = targetNode\r\n if (idx) idxTable[idx] = targetNode\r\n if (type) typeTable[type] = targetNode\r\n }\r\n }\r\n\r\n return { idTable, idxTable, typeTable }\r\n}\r\n\r\nasync function processNodesInSlide(nodeKey, nodeValue, warpObj, source) {\r\n let json\r\n\r\n switch (nodeKey) {\r\n case 'p:sp': // Shape, Text\r\n json = processSpNode(nodeValue, warpObj, source)\r\n break\r\n case 'p:cxnSp': // Shape, Text\r\n json = processCxnSpNode(nodeValue, warpObj, source)\r\n break\r\n case 'p:pic': // Image, Video, Audio\r\n json = processPicNode(nodeValue, warpObj, source)\r\n break\r\n case 'p:graphicFrame': // Chart, Diagram, Table\r\n json = await processGraphicFrameNode(nodeValue, warpObj, source)\r\n break\r\n case 'p:grpSp':\r\n json = await processGroupSpNode(nodeValue, warpObj, source)\r\n break\r\n case 'mc:AlternateContent':\r\n json = await processGroupSpNode(getTextByPathList(nodeValue, ['mc:Fallback']), warpObj, source)\r\n break\r\n default:\r\n }\r\n\r\n return json\r\n}\r\n\r\nasync function processGroupSpNode(node, warpObj, source) {\r\n const xfrmNode = getTextByPathList(node, ['p:grpSpPr', 'a:xfrm'])\r\n if (!xfrmNode) return null\r\n\r\n const x = parseInt(xfrmNode['a:off']['attrs']['x']) * RATIO_EMUs_Points\r\n const y = parseInt(xfrmNode['a:off']['attrs']['y']) * RATIO_EMUs_Points\r\n const chx = parseInt(xfrmNode['a:chOff']['attrs']['x']) * RATIO_EMUs_Points\r\n const chy = parseInt(xfrmNode['a:chOff']['attrs']['y']) * RATIO_EMUs_Points\r\n const cx = parseInt(xfrmNode['a:ext']['attrs']['cx']) * RATIO_EMUs_Points\r\n const cy = parseInt(xfrmNode['a:ext']['attrs']['cy']) * RATIO_EMUs_Points\r\n const chcx = parseInt(xfrmNode['a:chExt']['attrs']['cx']) * RATIO_EMUs_Points\r\n const chcy = parseInt(xfrmNode['a:chExt']['attrs']['cy']) * RATIO_EMUs_Points\r\n\r\n let rotate = getTextByPathList(xfrmNode, ['attrs', 'rot']) || 0\r\n if (rotate) rotate = angleToDegrees(rotate)\r\n\r\n const ws = cx / chcx\r\n const hs = cy / chcy\r\n\r\n const elements = []\r\n for (const nodeKey in node) {\r\n if (node[nodeKey].constructor === Array) {\r\n for (const item of node[nodeKey]) {\r\n const ret = await processNodesInSlide(nodeKey, item, warpObj, source)\r\n if (ret) elements.push(ret)\r\n }\r\n }\r\n else {\r\n const ret = await processNodesInSlide(nodeKey, node[nodeKey], warpObj, source)\r\n if (ret) elements.push(ret)\r\n }\r\n }\r\n\r\n return {\r\n type: 'group',\r\n top: y,\r\n left: x,\r\n width: cx,\r\n height: cy,\r\n rotate,\r\n elements: elements.map(element => ({\r\n ...element,\r\n left: (element.left - chx) * ws,\r\n top: (element.top - chy) * hs,\r\n width: element.width * ws,\r\n height: element.height * hs,\r\n }))\r\n }\r\n}\r\n\r\nfunction processSpNode(node, warpObj, source) {\r\n const name = getTextByPathList(node, ['p:nvSpPr', 'p:cNvPr', 'attrs', 'name'])\r\n const idx = getTextByPathList(node, ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'idx'])\r\n let type = getTextByPathList(node, ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'type'])\r\n\r\n let slideLayoutSpNode, slideMasterSpNode\r\n\r\n if (type) {\r\n if (idx) {\r\n slideLayoutSpNode = warpObj['slideLayoutTables']['typeTable'][type]\r\n slideMasterSpNode = warpObj['slideMasterTables']['typeTable'][type]\r\n } \r\n else {\r\n slideLayoutSpNode = warpObj['slideLayoutTables']['typeTable'][type]\r\n slideMasterSpNode = warpObj['slideMasterTables']['typeTable'][type]\r\n }\r\n }\r\n else if (idx) {\r\n slideLayoutSpNode = warpObj['slideLayoutTables']['idxTable'][idx]\r\n slideMasterSpNode = warpObj['slideMasterTables']['idxTable'][idx]\r\n }\r\n\r\n if (!type) {\r\n const txBoxVal = getTextByPathList(node, ['p:nvSpPr', 'p:cNvSpPr', 'attrs', 'txBox'])\r\n if (txBoxVal === '1') type = 'text'\r\n }\r\n if (!type) type = getTextByPathList(slideLayoutSpNode, ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'type'])\r\n if (!type) type = getTextByPathList(slideMasterSpNode, ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'type'])\r\n\r\n if (!type) {\r\n if (source === 'diagramBg') type = 'diagram'\r\n else type = 'obj'\r\n }\r\n\r\n return genShape(node, slideLayoutSpNode, slideMasterSpNode, name, type, warpObj)\r\n}\r\n\r\nfunction processCxnSpNode(node, warpObj) {\r\n const name = node['p:nvCxnSpPr']['p:cNvPr']['attrs']['name']\r\n const type = (node['p:nvCxnSpPr']['p:nvPr']['p:ph'] === undefined) ? undefined : node['p:nvSpPr']['p:nvPr']['p:ph']['attrs']['type']\r\n\r\n return genShape(node, undefined, undefined, name, type, warpObj)\r\n}\r\n\r\nfunction genShape(node, slideLayoutSpNode, slideMasterSpNode, name, type, warpObj) {\r\n const xfrmList = ['p:spPr', 'a:xfrm']\r\n const slideXfrmNode = getTextByPathList(node, xfrmList)\r\n const slideLayoutXfrmNode = getTextByPathList(slideLayoutSpNode, xfrmList)\r\n const slideMasterXfrmNode = getTextByPathList(slideMasterSpNode, xfrmList)\r\n\r\n const shapType = getTextByPathList(node, ['p:spPr', 'a:prstGeom', 'attrs', 'prst'])\r\n const custShapType = getTextByPathList(node, ['p:spPr', 'a:custGeom'])\r\n\r\n const { top, left } = getPosition(slideXfrmNode, slideLayoutXfrmNode, slideMasterXfrmNode)\r\n const { width, height } = getSize(slideXfrmNode, slideLayoutXfrmNode, slideMasterXfrmNode)\r\n\r\n const isFlipV = getTextByPathList(slideXfrmNode, ['attrs', 'flipV']) === '1'\r\n const isFlipH = getTextByPathList(slideXfrmNode, ['attrs', 'flipH']) === '1'\r\n\r\n const rotate = angleToDegrees(getTextByPathList(slideXfrmNode, ['attrs', 'rot']))\r\n\r\n const txtXframeNode = getTextByPathList(node, ['p:txXfrm'])\r\n let txtRotate\r\n if (txtXframeNode) {\r\n const txtXframeRot = getTextByPathList(txtXframeNode, ['attrs', 'rot'])\r\n if (txtXframeRot) txtRotate = angleToDegrees(txtXframeRot) + 90\r\n } \r\n else txtRotate = rotate\r\n\r\n let content = ''\r\n if (node['p:txBody']) content = genTextBody(node['p:txBody'], node, slideLayoutSpNode, type, warpObj)\r\n\r\n const { borderColor, borderWidth, borderType, strokeDasharray } = getBorder(node, type, warpObj)\r\n const fillColor = getShapeFill(node, undefined, warpObj) || ''\r\n\r\n let shadow\r\n const outerShdwNode = getTextByPathList(node, ['p:spPr', 'a:effectLst', 'a:outerShdw'])\r\n if (outerShdwNode) shadow = getShadow(outerShdwNode, warpObj)\r\n\r\n const vAlign = getVerticalAlign(node, slideLayoutSpNode, slideMasterSpNode, type)\r\n const isVertical = getTextByPathList(node, ['p:txBody', 'a:bodyPr', 'attrs', 'vert']) === 'eaVert'\r\n\r\n const data = {\r\n left,\r\n top,\r\n width,\r\n height,\r\n borderColor,\r\n borderWidth,\r\n borderType,\r\n borderStrokeDasharray: strokeDasharray,\r\n fillColor,\r\n content,\r\n isFlipV,\r\n isFlipH,\r\n rotate,\r\n vAlign,\r\n name,\r\n }\r\n\r\n if (shadow) data.shadow = shadow\r\n\r\n if (custShapType && type !== 'diagram') {\r\n const ext = getTextByPathList(slideXfrmNode, ['a:ext', 'attrs'])\r\n const w = parseInt(ext['cx']) * RATIO_EMUs_Points\r\n const h = parseInt(ext['cy']) * RATIO_EMUs_Points\r\n const d = getCustomShapePath(custShapType, w, h)\r\n\r\n return {\r\n ...data,\r\n type: 'shape',\r\n shapType: 'custom',\r\n path: d,\r\n }\r\n }\r\n if (shapType && (type === 'obj' || !type)) {\r\n return {\r\n ...data,\r\n type: 'shape',\r\n shapType,\r\n }\r\n }\r\n return {\r\n ...data,\r\n type: 'text',\r\n isVertical,\r\n rotate: txtRotate,\r\n }\r\n}\r\n\r\nasync function processPicNode(node, warpObj, source) {\r\n let resObj\r\n if (source === 'slideMasterBg') resObj = warpObj['masterResObj']\r\n else if (source === 'slideLayoutBg') resObj = warpObj['layoutResObj']\r\n else resObj = warpObj['slideResObj']\r\n \r\n const rid = node['p:blipFill']['a:blip']['attrs']['r:embed']\r\n const imgName = resObj[rid]['target']\r\n const imgFileExt = extractFileExtension(imgName).toLowerCase()\r\n const zip = warpObj['zip']\r\n const imgArrayBuffer = await zip.file(imgName).async('arraybuffer')\r\n const xfrmNode = node['p:spPr']['a:xfrm']\r\n\r\n const mimeType = getMimeType(imgFileExt)\r\n const { top, left } = getPosition(xfrmNode, undefined, undefined)\r\n const { width, height } = getSize(xfrmNode, undefined, undefined)\r\n const src = `data:${mimeType};base64,${base64ArrayBuffer(imgArrayBuffer)}`\r\n\r\n const isFlipV = getTextByPathList(xfrmNode, ['attrs', 'flipV']) === '1'\r\n const isFlipH = getTextByPathList(xfrmNode, ['attrs', 'flipH']) === '1'\r\n\r\n let rotate = 0\r\n const rotateNode = getTextByPathList(node, ['p:spPr', 'a:xfrm', 'attrs', 'rot'])\r\n if (rotateNode) rotate = angleToDegrees(rotateNode)\r\n\r\n const videoNode = getTextByPathList(node, ['p:nvPicPr', 'p:nvPr', 'a:videoFile'])\r\n let videoRid, videoFile, videoFileExt, videoMimeType, uInt8ArrayVideo, videoBlob\r\n let isVdeoLink = false\r\n\r\n if (videoNode) {\r\n videoRid = videoNode['attrs']['r:link']\r\n videoFile = resObj[videoRid]['target']\r\n if (isVideoLink(videoFile)) {\r\n videoFile = escapeHtml(videoFile)\r\n isVdeoLink = true\r\n } \r\n else {\r\n videoFileExt = extractFileExtension(videoFile).toLowerCase()\r\n if (videoFileExt === 'mp4' || videoFileExt === 'webm' || videoFileExt === 'ogg') {\r\n uInt8ArrayVideo = await zip.file(videoFile).async('arraybuffer')\r\n videoMimeType = getMimeType(videoFileExt)\r\n videoBlob = URL.createObjectURL(new Blob([uInt8ArrayVideo], {\r\n type: videoMimeType\r\n }))\r\n }\r\n }\r\n }\r\n\r\n const audioNode = getTextByPathList(node, ['p:nvPicPr', 'p:nvPr', 'a:audioFile'])\r\n let audioRid, audioFile, audioFileExt, uInt8ArrayAudio, audioBlob\r\n if (audioNode) {\r\n audioRid = audioNode['attrs']['r:link']\r\n audioFile = resObj[audioRid]['target']\r\n audioFileExt = extractFileExtension(audioFile).toLowerCase()\r\n if (audioFileExt === 'mp3' || audioFileExt === 'wav' || audioFileExt === 'ogg') {\r\n uInt8ArrayAudio = await zip.file(audioFile).async('arraybuffer')\r\n audioBlob = URL.createObjectURL(new Blob([uInt8ArrayAudio]))\r\n }\r\n }\r\n\r\n if (videoNode && !isVdeoLink) {\r\n return {\r\n type: 'video',\r\n top,\r\n left,\r\n width, \r\n height,\r\n rotate,\r\n blob: videoBlob,\r\n }\r\n } \r\n if (videoNode && isVdeoLink) {\r\n return {\r\n type: 'video',\r\n top,\r\n left,\r\n width, \r\n height,\r\n rotate,\r\n src: videoFile,\r\n }\r\n }\r\n if (audioNode) {\r\n return {\r\n type: 'audio',\r\n top,\r\n left,\r\n width, \r\n height,\r\n rotate,\r\n blob: audioBlob,\r\n }\r\n }\r\n return {\r\n type: 'image',\r\n top,\r\n left,\r\n width, \r\n height,\r\n rotate,\r\n src,\r\n isFlipV,\r\n isFlipH\r\n }\r\n}\r\n\r\nasync function processGraphicFrameNode(node, warpObj, source) {\r\n const graphicTypeUri = getTextByPathList(node, ['a:graphic', 'a:graphicData', 'attrs', 'uri'])\r\n \r\n let result\r\n switch (graphicTypeUri) {\r\n case 'http://schemas.openxmlformats.org/drawingml/2006/table':\r\n result = genTable(node, warpObj)\r\n break\r\n case 'http://schemas.openxmlformats.org/drawingml/2006/chart':\r\n result = await genChart(node, warpObj)\r\n break\r\n case 'http://schemas.openxmlformats.org/drawingml/2006/diagram':\r\n result = genDiagram(node, warpObj)\r\n break\r\n case 'http://schemas.openxmlformats.org/presentationml/2006/ole':\r\n let oleObjNode = getTextByPathList(node, ['a:graphic', 'a:graphicData', 'mc:AlternateContent', 'mc:Fallback', 'p:oleObj'])\r\n if (!oleObjNode) oleObjNode = getTextByPathList(node, ['a:graphic', 'a:graphicData', 'p:oleObj'])\r\n else processGroupSpNode(oleObjNode, warpObj, source)\r\n break\r\n default:\r\n }\r\n return result\r\n}\r\n\r\nfunction genTable(node, warpObj) {\r\n const tableNode = getTextByPathList(node, ['a:graphic', 'a:graphicData', 'a:tbl'])\r\n const xfrmNode = getTextByPathList(node, ['p:xfrm'])\r\n const { top, left } = getPosition(xfrmNode, undefined, undefined)\r\n const { width, height } = getSize(xfrmNode, undefined, undefined)\r\n\r\n const getTblPr = getTextByPathList(node, ['a:graphic', 'a:graphicData', 'a:tbl', 'a:tblPr'])\r\n\r\n const firstRowAttr = getTblPr['attrs'] ? getTblPr['attrs']['firstRow'] : undefined\r\n const firstColAttr = getTblPr['attrs'] ? getTblPr['attrs']['firstCol'] : undefined\r\n const lastRowAttr = getTblPr['attrs'] ? getTblPr['attrs']['lastRow'] : undefined\r\n const lastColAttr = getTblPr['attrs'] ? getTblPr['attrs']['lastCol'] : undefined\r\n const bandRowAttr = getTblPr['attrs'] ? getTblPr['attrs']['bandRow'] : undefined\r\n const bandColAttr = getTblPr['attrs'] ? getTblPr['attrs']['bandCol'] : undefined\r\n const tblStylAttrObj = {\r\n isFrstRowAttr: (firstRowAttr && firstRowAttr === '1') ? 1 : 0,\r\n isFrstColAttr: (firstColAttr && firstColAttr === '1') ? 1 : 0,\r\n isLstRowAttr: (lastRowAttr && lastRowAttr === '1') ? 1 : 0,\r\n isLstColAttr: (lastColAttr && lastColAttr === '1') ? 1 : 0,\r\n isBandRowAttr: (bandRowAttr && bandRowAttr === '1') ? 1 : 0,\r\n isBandColAttr: (bandColAttr && bandColAttr === '1') ? 1 : 0,\r\n }\r\n\r\n let thisTblStyle\r\n const tbleStyleId = getTblPr['a:tableStyleId']\r\n if (tbleStyleId) {\r\n const tbleStylList = warpObj['tableStyles']['a:tblStyleLst']['a:tblStyle']\r\n if (tbleStylList) {\r\n if (tbleStylList.constructor === Array) {\r\n for (let k = 0; k < tbleStylList.length; k++) {\r\n if (tbleStylList[k]['attrs']['styleId'] === tbleStyleId) {\r\n thisTblStyle = tbleStylList[k]\r\n }\r\n }\r\n } \r\n else {\r\n if (tbleStylList['attrs']['styleId'] === tbleStyleId) {\r\n thisTblStyle = tbleStylList\r\n }\r\n }\r\n }\r\n }\r\n if (thisTblStyle) thisTblStyle['tblStylAttrObj'] = tblStylAttrObj\r\n\r\n let tbl_border\r\n const tblStyl = getTextByPathList(thisTblStyle, ['a:wholeTbl', 'a:tcStyle'])\r\n const tblBorderStyl = getTextByPathList(tblStyl, ['a:tcBdr'])\r\n if (tblBorderStyl) {\r\n const tbl_borders = getTableBorders(tblBorderStyl, warpObj)\r\n if (tbl_borders) tbl_border = tbl_borders.bottom || tbl_borders.left || tbl_borders.right || tbl_borders.top\r\n }\r\n\r\n let tbl_bgcolor = ''\r\n let tbl_bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:tblBg', 'a:fillRef'])\r\n if (tbl_bgFillschemeClr) {\r\n tbl_bgcolor = getSolidFill(tbl_bgFillschemeClr, undefined, undefined, warpObj)\r\n }\r\n if (tbl_bgFillschemeClr === undefined) {\r\n tbl_bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:wholeTbl', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n tbl_bgcolor = getSolidFill(tbl_bgFillschemeClr, undefined, undefined, warpObj)\r\n }\r\n\r\n let trNodes = tableNode['a:tr']\r\n if (trNodes.constructor !== Array) trNodes = [trNodes]\r\n \r\n const data = []\r\n for (let i = 0; i < trNodes.length; i++) {\r\n const trNode = trNodes[i]\r\n\r\n const {\r\n fillColor,\r\n fontColor,\r\n fontBold,\r\n } = getTableRowParams(trNodes, i, tblStylAttrObj, thisTblStyle, warpObj)\r\n\r\n const tcNodes = trNode['a:tc']\r\n const tr = []\r\n\r\n if (tcNodes.constructor === Array) {\r\n for (let j = 0; j < tcNodes.length; j++) {\r\n const tcNode = tcNodes[j]\r\n let a_sorce\r\n if (j === 0 && tblStylAttrObj['isFrstColAttr'] === 1) {\r\n a_sorce = 'a:firstCol'\r\n if (tblStylAttrObj['isLstRowAttr'] === 1 && i === (trNodes.length - 1) && getTextByPathList(thisTblStyle, ['a:seCell'])) {\r\n a_sorce = 'a:seCell'\r\n } \r\n else if (tblStylAttrObj['isFrstRowAttr'] === 1 && i === 0 &&\r\n getTextByPathList(thisTblStyle, ['a:neCell'])) {\r\n a_sorce = 'a:neCell'\r\n }\r\n } \r\n else if (\r\n (j > 0 && tblStylAttrObj['isBandColAttr'] === 1) &&\r\n !(tblStylAttrObj['isFrstColAttr'] === 1 && i === 0) &&\r\n !(tblStylAttrObj['isLstRowAttr'] === 1 && i === (trNodes.length - 1)) &&\r\n j !== (tcNodes.length - 1)\r\n ) {\r\n if ((j % 2) !== 0) {\r\n let aBandNode = getTextByPathList(thisTblStyle, ['a:band2V'])\r\n if (aBandNode === undefined) {\r\n aBandNode = getTextByPathList(thisTblStyle, ['a:band1V'])\r\n if (aBandNode) a_sorce = 'a:band2V'\r\n } \r\n else a_sorce = 'a:band2V'\r\n }\r\n }\r\n if (j === (tcNodes.length - 1) && tblStylAttrObj['isLstColAttr'] === 1) {\r\n a_sorce = 'a:lastCol'\r\n if (tblStylAttrObj['isLstRowAttr'] === 1 && i === (trNodes.length - 1) && getTextByPathList(thisTblStyle, ['a:swCell'])) {\r\n a_sorce = 'a:swCell'\r\n } \r\n else if (tblStylAttrObj['isFrstRowAttr'] === 1 && i === 0 && getTextByPathList(thisTblStyle, ['a:nwCell'])) {\r\n a_sorce = 'a:nwCell'\r\n }\r\n }\r\n const text = genTextBody(tcNode['a:txBody'], tcNode, undefined, undefined, warpObj)\r\n const cell = getTableCellParams(tcNode, thisTblStyle, a_sorce, warpObj)\r\n const td = { text }\r\n if (cell.rowSpan) td.rowSpan = cell.rowSpan\r\n if (cell.colSpan) td.colSpan = cell.colSpan\r\n if (cell.vMerge) td.vMerge = cell.vMerge\r\n if (cell.hMerge) td.hMerge = cell.hMerge\r\n if (cell.fontBold || fontBold) td.fontBold = cell.fontBold || fontBold\r\n if (cell.fontColor || fontColor) td.fontColor = cell.fontColor || fontColor\r\n if (cell.fillColor || fillColor || tbl_bgcolor) td.fillColor = cell.fillColor || fillColor || tbl_bgcolor\r\n\r\n tr.push(td)\r\n }\r\n } \r\n else {\r\n let a_sorce\r\n if (tblStylAttrObj['isFrstColAttr'] === 1 && tblStylAttrObj['isLstRowAttr'] !== 1) {\r\n a_sorce = 'a:firstCol'\r\n } \r\n else if (tblStylAttrObj['isBandColAttr'] === 1 && tblStylAttrObj['isLstRowAttr'] !== 1) {\r\n let aBandNode = getTextByPathList(thisTblStyle, ['a:band2V'])\r\n if (!aBandNode) {\r\n aBandNode = getTextByPathList(thisTblStyle, ['a:band1V'])\r\n if (aBandNode) a_sorce = 'a:band2V'\r\n } \r\n else a_sorce = 'a:band2V'\r\n }\r\n if (tblStylAttrObj['isLstColAttr'] === 1 && tblStylAttrObj['isLstRowAttr'] !== 1) {\r\n a_sorce = 'a:lastCol'\r\n }\r\n\r\n const text = genTextBody(tcNodes['a:txBody'], tcNodes, undefined, undefined, warpObj)\r\n const cell = getTableCellParams(tcNodes, thisTblStyle, a_sorce, warpObj)\r\n const td = { text }\r\n if (cell.rowSpan) td.rowSpan = cell.rowSpan\r\n if (cell.colSpan) td.colSpan = cell.colSpan\r\n if (cell.vMerge) td.vMerge = cell.vMerge\r\n if (cell.hMerge) td.hMerge = cell.hMerge\r\n if (cell.fontBold || fontBold) td.fontBold = cell.fontBold || fontBold\r\n if (cell.fontColor || fontColor) td.fontColor = cell.fontColor || fontColor\r\n if (cell.fillColor || fillColor || tbl_bgcolor) td.fillColor = cell.fillColor || fillColor || tbl_bgcolor\r\n\r\n tr.push(td)\r\n }\r\n data.push(tr)\r\n }\r\n\r\n return {\r\n type: 'table',\r\n top,\r\n left,\r\n width,\r\n height,\r\n data,\r\n ...(tbl_border || {}),\r\n }\r\n}\r\n\r\nasync function genChart(node, warpObj) {\r\n const xfrmNode = getTextByPathList(node, ['p:xfrm'])\r\n const { top, left } = getPosition(xfrmNode, undefined, undefined)\r\n const { width, height } = getSize(xfrmNode, undefined, undefined)\r\n\r\n const rid = node['a:graphic']['a:graphicData']['c:chart']['attrs']['r:id']\r\n const refName = warpObj['slideResObj'][rid]['target']\r\n const content = await readXmlFile(warpObj['zip'], refName)\r\n const plotArea = getTextByPathList(content, ['c:chartSpace', 'c:chart', 'c:plotArea'])\r\n\r\n const chart = getChartInfo(plotArea)\r\n\r\n if (!chart) return {}\r\n\r\n const data = {\r\n type: 'chart',\r\n top,\r\n left,\r\n width,\r\n height,\r\n data: chart.data,\r\n chartType: chart.type,\r\n }\r\n if (chart.marker !== undefined) data.marker = chart.marker\r\n if (chart.barDir !== undefined) data.barDir = chart.barDir\r\n if (chart.holeSize !== undefined) data.holeSize = chart.holeSize\r\n if (chart.grouping !== undefined) data.grouping = chart.grouping\r\n if (chart.style !== undefined) data.style = chart.style\r\n\r\n return data\r\n}\r\n\r\nfunction genDiagram(node, warpObj) {\r\n const xfrmNode = getTextByPathList(node, ['p:xfrm'])\r\n const { left, top } = getPosition(xfrmNode, undefined, undefined)\r\n const { width, height } = getSize(xfrmNode, undefined, undefined)\r\n \r\n const dgmDrwSpArray = getTextByPathList(warpObj['digramFileContent'], ['p:drawing', 'p:spTree', 'p:sp'])\r\n const elements = []\r\n if (dgmDrwSpArray) {\r\n for (const item of dgmDrwSpArray) {\r\n const el = processSpNode(item, warpObj, 'diagramBg')\r\n if (el) elements.push(el)\r\n }\r\n }\r\n\r\n return {\r\n type: 'diagram',\r\n left,\r\n top,\r\n width,\r\n height,\r\n elements,\r\n }\r\n}"],"names":["_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","_asyncToGenerator","fn","self","this","args","arguments","apply","err","undefined","_typeof","module","exports","Symbol","iterator","constructor","prototype","__esModule","require$$0","_regeneratorRuntime","Op","hasOwn","hasOwnProperty","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","record","result","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","runtime","regenerator","regeneratorRuntime","accidentalStrictMode","globalThis","Function","global$1","global","window","lookup","revLookup","Arr","Uint8Array","Array","inited","init","code","len","charCodeAt","encodeChunk","uint8","start","end","tmp","num","output","join","fromByteArray","extraBytes","parts","maxChunkLength","len2","read","buffer","offset","isLE","mLen","nBytes","e","m","eLen","eMax","eBias","nBits","d","s","NaN","Infinity","Math","pow","write","c","rt","abs","floor","log","LN2","toString","isArray$1","isArray","arr","Buffer","TYPED_ARRAY_SUPPORT","_kMaxLength","kMaxLength","createBuffer","that","RangeError","encodingOrOffset","allocUnsafe","from","ArrayBuffer","array","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","fromString","internalIsBuffer","checked","copy","data","fromObject","assertSize","size","b","_isBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","bidirectionalIndexOf","dir","arrayIndexOf","indexOf","lastIndexOf","indexSize","arrLength","valLength","String","buf","readUInt16BE","foundIndex","found","j","hexWrite","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","base64.fromByteArray","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","poolSize","_augment","species","alloc","fill","allocUnsafeSlow","isBuffer","compare","a","x","y","concat","list","pos","swap16","swap32","swap64","equals","inspect","match","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","max","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","ieee754.write","writeDouble","newBuf","subarray","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","ieee754.read","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","INVALID_BASE64_RE","leadSurrogate","b64","l","placeHolders","L","base64.toByteArray","trim","replace","stringtrim","base64clean","src","dst","isFastBuffer","isSlowBuffer","defaultSetTimout","defaultClearTimeout","cachedSetTimeout","cachedClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","nextTick","Item","noop","on","addListener","once","off","removeListener","removeAllListeners","emit","performance","performanceNow","now","mozNow","msNow","oNow","webkitNow","Date","getTime","startTime","process","title","browser","env","argv","version","versions","binding","cwd","chdir","umask","hrtime","previousTimestamp","clocktime","seconds","nanoseconds","platform","release","config","uptime","EventHandlers","EventEmitter","$getMaxListeners","_maxListeners","defaultMaxListeners","emitNone","handler","isFn","listeners","arrayClone","emitOne","arg1","emitTwo","arg2","emitThree","arg3","emitMany","_addListener","listener","prepend","events","existing","_events","newListener","_eventsCount","unshift","warned","w","emitter","count","console","warn","_onceWrap","fired","g","listenerCount","evlistener","usingDomains","domain","active","setMaxListeners","getMaxListeners","er","doError","domainEmitter","domainThrown","prependListener","prependOnceListener","position","originalListener","index","k","spliceOne","unwrapListeners","eventNames","Reflect","ownKeys","inherits$2","superCtor","super_","TempCtor","formatRegExp","format","f","isString","objects","JSON","stringify","_","isNull","isObject","deprecate","msg","isUndefined","noDeprecation","throwDeprecation","traceDeprecation","trace","debugEnviron","debugs","debuglog","NODE_DEBUG","toUpperCase","RegExp","test","opts","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","style","styles","recurseTimes","isFunction","primitive","simple","isNumber","formatPrimitive","visibleKeys","hash","idx","arrayToHash","getOwnPropertyNames","isError","formatError","isRegExp","isDate","base","braces","toUTCString","formatProperty","formatArray","map","reduce","cur","reduceToSingleString","getOwnPropertyDescriptor","get","split","line","ar","isNullOrUndefined","isSymbol","re","objectToString","isPrimitive","maybeBuf","Buffer.isBuffer","o","pad","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","special","number","boolean","null","date","regexp","months","timestamp","time","getHours","getMinutes","getSeconds","getDate","getMonth","origin","add","prop","util$1","inherits","BufferList","head","tail","v","shift","clear","p","isBufferEncoding","StringDecoder","assertEncoding","surrogateSize","detectIncompleteChar","utf16DetectIncompleteChar","base64DetectIncompleteChar","passThroughWrite","charBuffer","charReceived","charLength","charStr","available","charCode","substring","cr","enc","Readable","ReadableState","debug","options","stream","objectMode","Duplex","readableObjectMode","hwm","highWaterMark","defaultHwm","pipes","pipesCount","flowing","ended","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","defaultEncoding","ranOut","awaitDrain","readingMore","decoder","_readableState","readable","_read","readableAddChunk","chunk","addToFront","chunkInvalid","emitReadable","onEofChunk","_e","skipAdd","maybeReadMore_","maybeReadMore","needMoreData","isPaused","setEncoding","MAX_HWM","howMuchToRead","computeNewHighWaterMark","emitReadable_","flow","nReadingNextTick","resume_","fromList","hasStrings","nb","copyFromBufferString","copyFromBuffer","fromListPartial","endReadable","endReadableNT","xs","nop","WriteReq","cb","callback","WritableState","getBuffer","writableObjectMode","needDrain","ending","finished","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","_writableState","writecb","writelen","onwriteStateUpdate","pendingcb","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","corkedRequestsFree","CorkedRequest","Writable","_write","writev","_writev","doWrite","onwriteDrain","finishMaybe","holder","prefinish","need","_this","nOrig","doRead","pipe","dest","pipeOpts","endFn","onend","cleanup","onunpipe","ondrain","pipeOnDrain","cleanedUp","onclose","onfinish","onerror","ondata","increasedAwaitDrain","pause","unpipe","event","resume","dests","_i","splice","ev","paused","bind","_fromList","current","writeAfterEnd","valid","validChunk","decodeChunk","last","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","allowHalfOpen","onEndNT","TransformState","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","Transform","transform","_transform","flush","_flush","ws","PassThrough","Stream","EE","source","_isStdio","didOnEnd","destroy","processNextickArgsModule","process.nextTick","copyProps","SafeBuffer","SlowBuffer","util","inherits_browserModule","require$$1","instance","Constructor","_classCallCheck","custom","pna","emitErrorNT","destroy_1","readableDestroyed","destroyed","writableDestroyed","_destroy","undestroy","corkReq","onCorkedFinish","_stream_writable","asyncWrite","require$$2","internalUtil","node","require$$4","require$$5","OurUint8Array","realHasInstance","destroyImpl","require$$6","require$$7","isDuplex","writableHwm","writableHighWaterMark","finalCalled","final","_final","allBuffers","isBuf","callFinal","hasInstance","_uint8ArrayToBuffer","newChunk","_undestroy","objectKeys","_stream_duplex","require$$3","nenc","retried","_normalizeEncoding","normalizeEncoding","text","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","r","utf8CheckExtraBytes","string_decoder","total","utf8CheckIncomplete","_stream_readable","isarray","EElistenerCount","debugUtil","require$$8","require$$9","kProxyEvents","require$$10","readableHwm","readableHighWaterMark","require$$11","skipChunkCheck","addChunk","stdout","stderr","unpipeInfo","hasUnpiped","_stream_transform","_this2","err2","READABLE_STREAM","_stream_passthrough","support$4","base64","arraybuffer","support","nodebuffer","uint8array","blob","Blob","builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","append","getBlob","nodestream","utils","_keyStr","encode","input","chr1","chr2","chr3","enc1","enc2","enc3","enc4","remainingBytes","getTypeOf","decode","resultIndex","dataUrlPrefix","totalLength","nodejsUtils","isNode","newBufferFrom","allocBuffer","isStream","ES6Promise","immediate","scheduleDrain","Mutation","MutationObserver","WebKitMutationObserver","called","observer","element","document","createTextNode","observe","characterData","setImmediate","MessageChannel","createElement","scriptEl","onreadystatechange","parentNode","removeChild","documentElement","appendChild","channel","port1","onmessage","port2","postMessage","oldQueue","lib","task","INTERNAL","handlers","REJECTED","FULFILLED","PENDING","resolver","outcome","safelyResolveThenable","QueueItem","promise","onFulfilled","onRejected","callFulfilled","otherCallFulfilled","callRejected","otherCallRejected","unwrap","func","returnValue","getThen","thenable","onError","onSuccess","status","finally","reason","all","resolved","allResolver","outValue","race","response","external","identity","stringToArrayLike","newBlob","part","checkSupport","arrayToStringHelper","stringifyByChunk","stringifyByChar","resultStr","applyCanBeUsed","arrayLikeToString","canUseApply","arrayLikeToArrayLike","arrayFrom","arrayTo","applyFromCharCode","transformTo","outputType","inputType","path","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","delay","Obj","extend","attr","prepareContent","inputData","isBinary","isOptimizedBinaryString","isBase64","FileReader","reader","onload","readAsArrayBuffer","dataType","GenericWorker","streamInfo","generatedError","extraStreamInfo","isFinished","isLocked","_listeners","previous","registerImmediate","html","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","script","random","addEventListener","attachEvent","clearImmediate","GenericWorker$b","cleanUp","registerPrevious","mergeStreamInfo","processChunk","withError","withStreamInfo","lock","me","GenericWorker_1","_utf8len","Utf8DecodeWorker","leftOver","Utf8EncodeWorker","utf8encode","c2","m_pos","str_len","buf_len","string2buf","utf8decode","c_len","utf16buf","buf2string","previousData","nextBoundary","utf8border","usableData","meta","ConvertWorker","destType","ConvertWorker_1","NodejsStreamOutputAdapter","helper","updateCb","_helper","NodejsStreamOutputAdapter_1","accumulate","updateCallback","dataArray","chunkType","_internalType","resultType","_outputType","mimeType","_mimeType","content","transformZipOutput","StreamHelper","worker","internalType","_worker","StreamHelper$2","evt","toNodejsStream","StreamHelper_1","defaults$1","DataWorker","dataP","dataIsReady","_tickScheduled","_tickAndRepeat","_tick","nextIndex","percent","DataWorker_1","crcTable","table","makeTable","crc32_1","crc","t","crc32","crc32str","Crc32Probe","Crc32Probe_1","DataLengthProbe","propName","CompressedObject","compressedSize","uncompressedSize","compression","compressedContent","CompressedObject$3","getContentWorker","uncompressWorker","getCompressedWorker","createWorkerFrom","uncompressedWorker","compressionOptions","compressWorker","compressedObject","utf8","ZipObject","comment","unixPermissions","dosPermissions","_data","_dataBinary","binary","ZipObject$1","internalStream","askUnicodeString","_decompressWorker","isUnicodeString","onUpdate","nodeStream","_compressWorker","magic","removedMethods","removedFn","zipObject","TYPED_OK","Uint16Array","Int32Array","_has","assign","sources","shrinkBuf","fnTyped","arraySet","src_offs","dest_offs","flattenChunks","chunks","fnUntyped","setTyped","Buf8","Buf16","Buf32","zero","LITERALS","L_CODES","D_CODES","MAX_BITS","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","zero$1","static_dtree","_dist_code","_length_code","MAX_MATCH","base_length","static_l_desc","static_d_desc","static_bl_desc","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","dist","put_short","pending_buf","pending","send_bits","bi_valid","bi_buf","send_code","tree","bi_reverse","gen_codes","bl_count","bits","next_code","init_block","dyn_ltree","dyn_dtree","bl_tree","END_BLOCK","opt_len","static_len","last_lit","matches","bi_windup","smaller","_n2","_m2","pqdownheap","heap","heap_len","compress_block","ltree","dtree","lc","extra","lx","d_buf","l_buf","build_tree","stree","heap_max","h","xbits","overflow","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","_tr_stored_block","stored_len","header","copy_block","trees$1","_tr_init","LENGTH_CODES","tr_static_init","l_desc","d_desc","bl_desc","_tr_flush_block","opt_lenb","static_lenb","max_blindex","level","strm","data_type","black_mask","detect_data_type","BL_CODES","build_bl_tree","strategy","lcodes","dcodes","blcodes","rank","send_all_trees","_tr_tally","lit_bufsize","_tr_align","STATIC_TREES","bi_flush","adler32_1","adler","s1","s2","configuration_table","messages","trees","adler32","Z_STREAM_ERROR","MIN_LOOKAHEAD","HCRC_STATE","BUSY_STATE","FINISH_STATE","errorCode","flush_pending","avail_out","pending_out","next_out","total_out","flush_block_only","block_start","strstart","put_byte","putShortMSB","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","more","_w_size","window_size","hash_size","avail_in","next_in","total_in","insert","ins_h","hash_shift","hash_mask","deflate_fast","hash_head","bflush","match_length","max_lazy_match","MIN_MATCH","deflate_slow","max_insert","prev_match","match_available","Config","good_length","max_lazy","nice_length","max_chain","DeflateState","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","HEAP_SIZE","deflateResetKeep","deflateReset","deflateInit2","windowBits","memLevel","max_block_size","max_start","deflate$3","deflateInit","deflateSetHeader","deflate","old_flush","beg","hcrc","os","bstate","deflate_huff","deflate_rle","deflateEnd","deflateSetDictionary","dictionary","avail","tmpDict","dictLength","deflateInfo","STR_APPLY_OK","STR_APPLY_UIA_OK","__","q","buf2binstring","strings","binstring2buf","zstream","zlib_deflate","ZStream","Deflate","chunkSize","to","opt","raw","gzip","dict","_dict_set","deflator","mode","_mode","onEnd","onData","deflate$4","deflateRaw","MAXBITS","lbase","lext","dbase","dext","inflate_fast","_in","_out","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","op","from_source","lencode","distcode","lenbits","distbits","top","dolen","dodist","sane","inflate_table","lens","lens_index","codes","table_index","work","incr","low","mask","here_bits","here_op","here_val","sym","root","curr","drop","left","used","huff","base_index","offs","extra_index","TYPE","BAD","zswap32","InflateState","havedict","flags","check","wbits","ncode","nlen","ndist","have","lendyn","distdyn","back","was","inflateResetKeep","inflateReset","inflateReset2","inflateInit2","lenfix","distfix","virgin","fixedtables","updatewindow","inflate$3","inflateInit","inflate","put","last_bits","last_op","last_val","hbuf","order","inf_leave","xflags","extra_len","inflateEnd","inflateGetHeader","inflateSetDictionary","inflateInfo","constants","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","zlib_inflate","GZheader","Inflate","inflator","next_out_utf8","utf8str","allowBufError","inflate$4","inflateRaw","ungzip","pako","USE_TYPEDARRAY","Uint32Array","ARRAY_TYPE","FlateWorker","action","_pako","_pakoAction","_pakoOptions","flate","_createPako","compressions$2","STORE","DEFLATE","signature$1","signature","decToHex","dec","hex","generateZipParts","streamedContent","streamingEnded","encodeFileName","dosTime","dosDate","file","useCustomEncoding","encodedFileName","utfEncodedFileName","encodedComment","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","extraFields","unicodePathExtraField","unicodeCommentExtraField","dataInfo","bitflag","isDir","extFileAttr","versionMadeBy","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCFullYear","getUTCMonth","getUTCDate","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","generateDataDescriptors","DATA_DESCRIPTOR","ZipFileWorker","streamFiles","bytesWritten","zipComment","zipPlatform","contentBuffer","dirRecords","currentSourceOffset","entriesCount","currentFile","_sources","currentFilePercent","remainingFiles","openedSource","closedSource","localDirLength","centralDirLength","dirEnd","CENTRAL_DIRECTORY_END","generateCentralDirectoryEnd","prepareNextSource","compressions","generate$1","generateWorker","zip","zipFileWorker","relativePath","fileCompression","zipCompression","compressionName","getCompression","NodejsStreamInputAdapter","filename","_upstreamEnded","_bindStream","_stream","NodejsStreamInputAdapter_1","defaults","generate","fileAdd","originalOptions","parent","forceTrailingSlash","createFolders","parentFolder","folderAdd","zipObjectContent","optimizedBinaryString","files","lastSlash","load","filter","search","folder","newFolder","clone","remove","kids","generateInternalStream","generateAsync","generateNodeStream","DataReader","DataReader$2","checkIndex","newIndex","setIndex","skip","byteAt","readInt","readString","readData","lastIndexOfSignature","readAndCheckSignature","readDate","dostime","UTC","DataReader_1","ArrayReader","sig","sig0","sig1","sig2","sig3","ArrayReader_1","StringReader","StringReader_1","Uint8ArrayReader","Uint8ArrayReader_1","NodeBufferReader","NodeBufferReader_1","readerFor","crc32fn","ZipEntry","loadOptions","ZipEntry$1","isEncrypted","bitFlag","useUTF8","readLocalPart","localExtraFieldsLength","fileNameLength","fileName","compressionMethod","findCompression","decompressed","readCentralPart","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","localHeaderOffset","readExtraFields","parseZIP64ExtraField","fileComment","processAttributes","madeBy","fileNameStr","extraReader","extraFieldId","extraFieldLength","extraFieldValue","id","handleUTF8","decodeParamType","fileCommentStr","upath","findExtraFieldUnicodePath","fileNameByteArray","decodeFileName","ucomment","findExtraFieldUnicodeComment","commentByteArray","upathField","ucommentField","zipEntry","ZipEntries","ZipEntries$1","checkSignature","expectedSignature","isSignature","askedIndex","currentIndex","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","decodeContent","readBlockZip64EndOfCentral","zip64EndOfCentralSize","zip64ExtensibleData","extraDataSize","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","readCentralDir","zip64","readEndOfCentral","endOfCentralDirOffset","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","expectedEndOfCentralDirOffset","prepareReader","zipEntries","checkEntryCRC32","JSZip","newObj","loadAsync","checkCRC32","promises","results","unsafeName","safeName","unsafeOriginalName","parse","S","keepComments","keepWhitespace","openBracketCC","closeBracketCC","minusCC","slashCC","exclamationCC","singleQuoteCC","doubleQuoteCC","openCornerBracketCC","closeCornerBracketCC","parseChildren","tagName","children","closeStart","parsedText","startCommentPos","cdataEndIndex","startDoctype","encapsuled","parseNode","parseText","trimmed","parseName","NoChildNodes","noChildNodes","attributes","parseString","startChar","startpos","attrValue","attrName","exec","simplify","setPos","child","_attributes","dept","cust_attr_order","simplifyLostLess","parentAttributes","attrs","_objectSpread","_step","_iterator","_createForOfIteratorHelper","readXmlFile","_x","_x2","_readXmlFile","_callee","_context","txml","t0","trimLeft","trimRight","tinycolor","color","rgb","ok","named","names","matchers","rgba","hsl","hsla","hsv","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","convertToPercentage","mod","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","round","_format","_gradientType","gradientType","_ok","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","pad2","rgbaToArgbHex","convertDecimalToHex","_desaturate","amount","toHsl","clamp01","_saturate","_greyscale","desaturate","_lighten","_brighten","toRgb","_darken","_spin","hue","_complement","polyad","step","_splitcomplement","_analogous","slices","_monochromatic","toHsv","modification","isDark","getBrightness","isLight","isValid","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","color1","color2","mix","rgb1","rgb2","readability","c1","isReadable","wcag2","wcag2Parms","parms","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","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","greenyellow","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","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","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen","flipped","flip","parseFloat","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","base64ArrayBuffer","arrayBuffer","encodings","byteRemainder","mainLength","extractFileExtension","eachElement","getTextByPathList","angleToDegrees","angle","escapeHtml","getMimeType","imgFileExt","isVideoLink","vdoFile","getSchemeColorFromTheme","schemeClr","warpObj","clrMap","phClr","slideLayoutClrOvride","sldClrMapOvr","schmClrName","refNode","getBorder","elType","lineNode","borderWidth","borderColor","schemeClrNode","shade","borderType","strokeDasharray","hueToRgb","t1","t2","getFillType","fillType","getPicFill","_x3","_getPicFill","img","rId","imgPath","imgExt","imgArrayBuffer","imgMimeType","getBgPicFill","_x4","_x5","_x6","_getBgPicFill","bgPr","sorce","picBase64","aBlipNode","aphaModFixNode","opacity","_context2","_callee2","getBgGradientFill","slideMasterContent","grdFill","gsLst","color_ary","lo_color","getSolidFill","lin","rot","sort","getSlideBackgroundFill","_x7","_getSlideBackgroundFill","slideContent","slideLayoutContent","bgRef","background","backgroundType","bgFillTyp","sldFill","clrMapOvr","_sldClrMapOvr","sldBgClr","gradientFill","_clrMapOvr","_sldClrMapOvr2","_sldClrMapOvr3","trueIdx","bgFillLst","sortblAry","sortByOrder","bgFillLstIdx","_bgFillTyp","_sldFill","_sldBgClr","_gradientFill","_clrMapOvr2","_sldClrMapOvr4","_bgFillTyp2","_sldFill2","_sldBgClr2","_gradientFill2","_phClr","_idx","_trueIdx","_bgFillLst","_sortblAry","_sortByOrder","_bgFillLstIdx","_bgFillTyp3","_sldFill3","_sldBgClr3","_gradientFill3","_bgFillTyp4","_sldFill4","_sldBgClr4","_gradientFill4","_phClr2","_idx2","_trueIdx2","_bgFillLst2","_sortblAry2","_sortByOrder2","_bgFillLstIdx2","_bgFillTyp5","_sldFill5","_sldBgClr5","_gradientFill5","_context3","bgFillLstTyp","idex","_callee3","getShapeFill","isSvgMode","fillColor","lumMod","lumOff","lum","solidFill","clrNode","findIndx","defBultColorVals","prstClr","hsl2rgb","sat","light","sysClr","isAlpha","alpha","al_color","hueMod","rgbStr","multiplier","cacl_h","applyHueMod","cacl_l","applyLumMod","applyLumOff","satMod","cacl_s","applySatMod","shadeValue","applyShade","tint","tintValue","applyTint","extractChartData","serNode","dataMat","dataRow","innerNode","colName","rowNames","xlabels","getChartInfo","plotArea","chart","grouping","barDir","holeSize","getHorizontalAlign","pNode","algn","lvlIdx","lvlNode","lvlStr","align","RATIO_EMUs_Points","getPosition","slideSpNode","slideLayoutSpNode","slideMasterSpNode","getSize","width","height","getShadow","chdwClrNode","outerShdwAttrs","blurRad","vx","sin","PI","cos","blur","genTextBody","textBodyNode","spNode","pFontStyle","isList","rNode","fldNode","brNode","item","listType","getListType","_step2","_iterator2","genSpanElement","pPrNode","lstStyle","slideMasterTextStyles","lvl","styleText","fontColor","rPrNode","lstStyledefRPr","sPstyle","getFontColor","fontSize","sz","getFontSize","fontType","typeface","fontSchemeNode","getFontType","fontBold","getFontBold","fontItalic","getFontItalic","fontDecoration","getFontDecoration","fontDecorationLine","getFontDecorationLine","fontSpace","spc","getFontSpace","shadow","txtShadow","getFontShadow","subscript","baseline","getFontSubscript","linkID","linkURL","shapeArc","cX","cY","rX","rY","stAng","endAng","isClose","dData","radians","getTableCellParams","tcNode","thisTblStyle","cellSource","bgFillschemeClr","rowTxtStyl","rowSpan","colSpan","vMerge","hMerge","getCelFill","getTableRowParams","trNodes","tblStylAttrObj","local_fillColor","local_fontColor","_parse","slides","filesInfo","_yield$getSlideInfo","defaultTextStyle","themeContent","_iterator3","_step3","singleSlide","getContentTypes","getSlideInfo","loadTheme","processSingleSlide","_getContentTypes","ContentTypesJson","subObj","slidesLocArray","slideLayoutsLocArray","_iterator4","_step4","sortSlideXml","p1","p2","slideLayouts","_getSlideInfo","sldSzAttrs","_loadTheme","preResContent","relationshipArray","themeURI","_iterator5","_step5","relationshipItem","_context4","_callee4","_x8","_processSingleSlide","sldFileName","resName","resContent","layoutFilename","diagramFilename","slideResObj","_iterator6","_step6","relationshipArrayItem","slideLayoutTables","slideLayoutResFilename","slideLayoutResContent","masterFilename","layoutResObj","_iterator7","_step7","_relationshipArrayItem","slideMasterTables","slideMasterResFilename","slideMasterResContent","themeFilename","masterResObj","_iterator8","_step8","_relationshipArrayItem2","themeResObj","themeName","themeResFileName","themeResContent","_iterator9","_step9","_relationshipArrayItem3","diagramResObj","digramFileContent","diagName","diagramResFileName","digramFileContentObjToStr","digramResContent","_iterator10","_step10","_relationshipArrayItem4","tableStyles","nodes","bgColor","elements","nodeKey","_iterator11","_step11","_ret","_context5","indexNodes","t3","t4","t5","t6","t7","processNodesInSlide","t8","_callee5","spTreeNode","idTable","idxTable","typeTable","targetNode","targetNodeItem","nvSpPrNode","_x9","_x10","_x11","_x12","_processNodesInSlide","nodeValue","json","_context6","processSpNode","processCxnSpNode","processPicNode","processGraphicFrameNode","processGroupSpNode","_callee6","_x13","_x14","_x15","_processGroupSpNode","xfrmNode","chx","chy","cx","cy","chcx","chcy","rotate","hs","_iterator12","_step12","_ret2","_context7","_callee7","genShape","txtRotate","xfrmList","slideXfrmNode","slideLayoutXfrmNode","slideMasterXfrmNode","shapType","custShapType","_getPosition","_getSize","isFlipV","isFlipH","txtXframeNode","txtXframeRot","_getBorder","outerShdwNode","vAlign","anchor","getVerticalAlign","isVertical","borderStrokeDasharray","pathLstNode","pathNodes","maxX","maxY","moveToNode","lnToNodes","cubicBezToNodes","arcToNodes","closeNode","multiSapeAry","moveToPtNode","moveToNoPt","spX","spY","lnToPtNode","lnToNoPt","ptX","ptY","cubicBezToPtNodesAry","pts_ary","pt","pt_obj","cubBzPt","arcToNodesAttrs","hR","wR","swAng","shftX","shftY","arcToPtNode","getCustomShapePath","_x16","_x17","_x18","_processPicNode","resObj","rid","imgName","_getPosition4","_getSize4","rotateNode","videoNode","videoRid","videoFile","videoFileExt","videoMimeType","uInt8ArrayVideo","videoBlob","isVdeoLink","audioNode","audioRid","audioFile","audioFileExt","uInt8ArrayAudio","audioBlob","_context8","URL","createObjectURL","_callee8","_x19","_x20","_x21","_processGraphicFrameNode","graphicTypeUri","oleObjNode","_context9","genTable","genChart","genDiagram","_callee9","tbl_border","tableNode","_getPosition2","_getSize2","getTblPr","firstRowAttr","firstColAttr","lastRowAttr","lastColAttr","bandRowAttr","bandColAttr","isFrstRowAttr","isFrstColAttr","isLstRowAttr","isLstColAttr","isBandRowAttr","isBandColAttr","tbleStyleId","tbleStylList","tblStyl","tblBorderStyl","tbl_borders","borderStyles","border","bottom","right","getTableBorders","tbl_bgcolor","tbl_bgFillschemeClr","trNode","tcNodes","tr","a_sorce","aBandNode","cell","td","_x22","_x23","_genChart","_callee10","_getPosition5","_getSize5","refName","_context10","chartType","_getPosition3","_getSize3","dgmDrwSpArray","el"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.umd.js","sources":["../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/regenerator/index.js","../node_modules/.pnpm/rollup-plugin-node-globals@1.4.0/node_modules/rollup-plugin-node-globals/src/global.js","../node_modules/.pnpm/buffer-es6@4.9.3/node_modules/buffer-es6/base64.js","../node_modules/.pnpm/buffer-es6@4.9.3/node_modules/buffer-es6/ieee754.js","../node_modules/.pnpm/buffer-es6@4.9.3/node_modules/buffer-es6/isArray.js","../node_modules/.pnpm/buffer-es6@4.9.3/node_modules/buffer-es6/index.js","../node_modules/.pnpm/process-es6@0.11.6/node_modules/process-es6/browser.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/events.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/inherits.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/util.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/buffer-list.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/string-decoder.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/readable.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/writable.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/duplex.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/transform.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/passthrough.js","../node_modules/.pnpm/rollup-plugin-node-builtins@2.1.2/node_modules/rollup-plugin-node-builtins/src/es6/stream.js","../node_modules/.pnpm/process-nextick-args@2.0.1/node_modules/process-nextick-args/index.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/internal/streams/stream.js","../node_modules/.pnpm/safe-buffer@5.1.2/node_modules/safe-buffer/index.js","../node_modules/.pnpm/core-util-is@1.0.3/node_modules/core-util-is/lib/util.js","../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits.js","../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/internal/streams/BufferList.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/.pnpm/util-deprecate@1.0.2/node_modules/util-deprecate/node.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/.pnpm/string_decoder@1.1.1/node_modules/string_decoder/lib/string_decoder.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/.pnpm/isarray@1.0.0/node_modules/isarray/index.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/readable.js","../node_modules/.pnpm/readable-stream@2.3.7/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/support.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/base64.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/nodejsUtils.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/external.js","../node_modules/.pnpm/lie@3.3.0/node_modules/lie/lib/index.js","../node_modules/.pnpm/immediate@3.0.6/node_modules/immediate/lib/index.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/utils.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/GenericWorker.js","../node_modules/.pnpm/setimmediate@1.0.5/node_modules/setimmediate/setImmediate.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/utf8.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/ConvertWorker.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/StreamHelper.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/defaults.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/DataWorker.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/crc32.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/Crc32Probe.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/stream/DataLengthProbe.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/compressedObject.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/zipObject.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/common.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/trees.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/adler32.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/crc32.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/deflate.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/messages.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/strings.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/zstream.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/deflate.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inftrees.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inflate.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inffast.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/constants.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/gzheader.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/inflate.js","../node_modules/.pnpm/pako@1.0.11/node_modules/pako/index.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/flate.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/compressions.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/signature.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/generate/ZipFileWorker.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/generate/index.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/object.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/DataReader.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/ArrayReader.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/StringReader.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/Uint8ArrayReader.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/NodeBufferReader.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/reader/readerFor.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/zipEntry.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/zipEntries.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/load.js","../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/lib/index.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/.pnpm/txml@5.1.1/node_modules/txml/dist/txml.mjs","../src/readXmlFile.js","../node_modules/.pnpm/tinycolor2@1.6.0/node_modules/tinycolor2/esm/tinycolor.js","../src/utils.js","../src/schemeColor.js","../src/border.js","../src/color.js","../src/fill.js","../src/chart.js","../src/align.js","../src/constants.js","../src/position.js","../src/shadow.js","../src/text.js","../src/fontStyle.js","../src/shape.js","../src/table.js","../src/pptxtojson.js"],"sourcesContent":["export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n return ContinueSentinel;\n }\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) {\n keys.push(key);\n }\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","export default (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});\n","\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\nvar inited = false;\nfunction init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n }\n\n revLookup['-'.charCodeAt(0)] = 62\n revLookup['_'.charCodeAt(0)] = 63\n}\n\nexport function toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders)\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len\n\n var L = 0\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]\n arr[L++] = (tmp >> 16) & 0xFF\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[L++] = tmp & 0xFF\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nexport function fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var output = ''\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n output += lookup[tmp >> 2]\n output += lookup[(tmp << 4) & 0x3F]\n output += '=='\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1])\n output += lookup[tmp >> 10]\n output += lookup[(tmp >> 4) & 0x3F]\n output += lookup[(tmp << 2) & 0x3F]\n output += '='\n }\n\n parts.push(output)\n\n return parts.join('')\n}\n","\nexport function read (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexport function write (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nexport default Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\nimport * as base64 from './base64'\nimport * as ieee754 from './ieee754'\nimport isArray from './isArray'\n\nexport var INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : true\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nvar _kMaxLength = kMaxLength()\nexport {_kMaxLength as kMaxLength};\nfunction typedArraySupport () {\n return true;\n // rollup issues\n // try {\n // var arr = new Uint8Array(1)\n // arr.__proto__ = {\n // __proto__: Uint8Array.prototype,\n // foo: function () { return 42 }\n // }\n // return arr.foo() === 42 && // typed array instances can be augmented\n // typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n // arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n // } catch (e) {\n // return false\n // }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nexport function Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n // Object.defineProperty(Buffer, Symbol.species, {\n // value: null,\n // configurable: true\n // })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (internalIsBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nexport function SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\nBuffer.isBuffer = isBuffer;\nfunction internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!internalIsBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (internalIsBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (internalIsBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = internalIsBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nexport function isBuffer(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n}\n\nfunction isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n}\n","// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nexport function nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nexport var title = 'browser';\nexport var platform = 'browser';\nexport var browser = true;\nexport var env = {};\nexport var argv = [];\nexport var version = ''; // empty string to avoid regexp issues\nexport var versions = {};\nexport var release = {};\nexport var config = {};\n\nfunction noop() {}\n\nexport var on = noop;\nexport var addListener = noop;\nexport var once = noop;\nexport var off = noop;\nexport var removeListener = noop;\nexport var removeAllListeners = noop;\nexport var emit = noop;\n\nexport function binding(name) {\n throw new Error('process.binding is not supported');\n}\n\nexport function cwd () { return '/' }\nexport function chdir (dir) {\n throw new Error('process.chdir is not supported');\n};\nexport function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global.performance || {}\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() }\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nexport function hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3\n var seconds = Math.floor(clocktime)\n var nanoseconds = Math.floor((clocktime%1)*1e9)\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0]\n nanoseconds = nanoseconds - previousTimestamp[1]\n if (nanoseconds<0) {\n seconds--\n nanoseconds += 1e9\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nexport function uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nexport default {\n nextTick: nextTick,\n title: title,\n browser: browser,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n};\n","'use strict';\n\nvar domain;\n\n// This constructor is used to store event handlers. Instantiating this is\n// faster than explicitly calling `Object.create(null)` to get a \"clean\" empty\n// object (tested with v8 v4.9).\nfunction EventHandlers() {}\nEventHandlers.prototype = Object.create(null);\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nexport default EventEmitter;\nexport {EventEmitter};\n\n// nodejs oddity\n// require('events') === require('events').EventEmitter\nEventEmitter.EventEmitter = EventEmitter\n\nEventEmitter.usingDomains = false;\n\nEventEmitter.prototype.domain = undefined;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\nEventEmitter.init = function() {\n this.domain = null;\n if (EventEmitter.usingDomains) {\n // if there is an active domain, then attach to it.\n if (domain.active && !(this instanceof domain.Domain)) {\n this.domain = domain.active;\n }\n }\n\n if (!this._events || this._events === Object.getPrototypeOf(this)._events) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || isNaN(n))\n throw new TypeError('\"n\" argument must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\n// These standalone emit* functions are used to optimize calling of event\n// handlers for fast cases because emit() itself often has a variable number of\n// arguments and can be deoptimized because of that. These functions always have\n// the same number of arguments and thus do not get deoptimized, so the code\n// inside them can execute faster.\nfunction emitNone(handler, isFn, self) {\n if (isFn)\n handler.call(self);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self);\n }\n}\nfunction emitOne(handler, isFn, self, arg1) {\n if (isFn)\n handler.call(self, arg1);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1);\n }\n}\nfunction emitTwo(handler, isFn, self, arg1, arg2) {\n if (isFn)\n handler.call(self, arg1, arg2);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2);\n }\n}\nfunction emitThree(handler, isFn, self, arg1, arg2, arg3) {\n if (isFn)\n handler.call(self, arg1, arg2, arg3);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2, arg3);\n }\n}\n\nfunction emitMany(handler, isFn, self, args) {\n if (isFn)\n handler.apply(self, args);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].apply(self, args);\n }\n}\n\nEventEmitter.prototype.emit = function emit(type) {\n var er, handler, len, args, i, events, domain;\n var needDomainExit = false;\n var doError = (type === 'error');\n\n events = this._events;\n if (events)\n doError = (doError && events.error == null);\n else if (!doError)\n return false;\n\n domain = this.domain;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n er = arguments[1];\n if (domain) {\n if (!er)\n er = new Error('Uncaught, unspecified \"error\" event');\n er.domainEmitter = this;\n er.domain = domain;\n er.domainThrown = false;\n domain.emit('error', er);\n } else if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n return false;\n }\n\n handler = events[type];\n\n if (!handler)\n return false;\n\n var isFn = typeof handler === 'function';\n len = arguments.length;\n switch (len) {\n // fast cases\n case 1:\n emitNone(handler, isFn, this);\n break;\n case 2:\n emitOne(handler, isFn, this, arguments[1]);\n break;\n case 3:\n emitTwo(handler, isFn, this, arguments[1], arguments[2]);\n break;\n case 4:\n emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);\n break;\n // slower\n default:\n args = new Array(len - 1);\n for (i = 1; i < len; i++)\n args[i - 1] = arguments[i];\n emitMany(handler, isFn, this, args);\n }\n\n if (needDomainExit)\n domain.exit();\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = target._events;\n if (!events) {\n events = target._events = new EventHandlers();\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (!existing) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] :\n [existing, listener];\n } else {\n // If we've already got an array, just append.\n if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n }\n\n // Check for listener leak\n if (!existing.warned) {\n m = $getMaxListeners(target);\n if (m && m > 0 && existing.length > m) {\n existing.warned = true;\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + type + ' listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n emitWarning(w);\n }\n }\n }\n\n return target;\n}\nfunction emitWarning(e) {\n typeof console.warn === 'function' ? console.warn(e) : console.log(e);\n}\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction _onceWrap(target, type, listener) {\n var fired = false;\n function g() {\n target.removeListener(type, g);\n if (!fired) {\n fired = true;\n listener.apply(target, arguments);\n }\n }\n g.listener = listener;\n return g;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = this._events;\n if (!events)\n return this;\n\n list = events[type];\n if (!list)\n return this;\n\n if (list === listener || (list.listener && list.listener === listener)) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list[0] = undefined;\n if (--this._eventsCount === 0) {\n this._events = new EventHandlers();\n return this;\n } else {\n delete events[type];\n }\n } else {\n spliceOne(list, position);\n }\n\n if (events.removeListener)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events;\n\n events = this._events;\n if (!events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!events.removeListener) {\n if (arguments.length === 0) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n } else if (events[type]) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n for (var i = 0, key; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = new EventHandlers();\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n do {\n this.removeListener(type, listeners[listeners.length - 1]);\n } while (listeners[0]);\n }\n\n return this;\n };\n\nEventEmitter.prototype.listeners = function listeners(type) {\n var evlistener;\n var ret;\n var events = this._events;\n\n if (!events)\n ret = [];\n else {\n evlistener = events[type];\n if (!evlistener)\n ret = [];\n else if (typeof evlistener === 'function')\n ret = [evlistener.listener || evlistener];\n else\n ret = unwrapListeners(evlistener);\n }\n\n return ret;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];\n};\n\n// About 1.5x faster than the two-arg version of Array#splice().\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)\n list[i] = list[k];\n list.pop();\n}\n\nfunction arrayClone(arr, i) {\n var copy = new Array(i);\n while (i--)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n","\nvar inherits;\nif (typeof Object.create === 'function'){\n inherits = function inherits(ctor, superCtor) {\n // implementation from standard node.js 'util' module\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n inherits = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\nexport default inherits;\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.\nimport process from 'process';\nvar formatRegExp = /%[sdj%]/g;\nexport function format(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexport function deprecate(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function() {\n return deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexport function debuglog(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = 0;\n debugs[set] = function() {\n var msg = format.apply(null, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nexport function inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n _extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexport function isArray(ar) {\n return Array.isArray(ar);\n}\n\nexport function isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nexport function isNull(arg) {\n return arg === null;\n}\n\nexport function isNullOrUndefined(arg) {\n return arg == null;\n}\n\nexport function isNumber(arg) {\n return typeof arg === 'number';\n}\n\nexport function isString(arg) {\n return typeof arg === 'string';\n}\n\nexport function isSymbol(arg) {\n return typeof arg === 'symbol';\n}\n\nexport function isUndefined(arg) {\n return arg === void 0;\n}\n\nexport function isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\n\nexport function isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nexport function isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\n\nexport function isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\n\nexport function isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexport function isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\n\nexport function isBuffer(maybeBuf) {\n return Buffer.isBuffer(maybeBuf);\n}\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexport function log() {\n console.log('%s - %s', timestamp(), format.apply(null, arguments));\n}\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nimport inherits from './inherits';\nexport {inherits}\n\nexport function _extend(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nexport default {\n inherits: inherits,\n _extend: _extend,\n log: log,\n isBuffer: isBuffer,\n isPrimitive: isPrimitive,\n isFunction: isFunction,\n isError: isError,\n isDate: isDate,\n isObject: isObject,\n isRegExp: isRegExp,\n isUndefined: isUndefined,\n isSymbol: isSymbol,\n isString: isString,\n isNumber: isNumber,\n isNullOrUndefined: isNullOrUndefined,\n isNull: isNull,\n isBoolean: isBoolean,\n isArray: isArray,\n inspect: inspect,\n deprecate: deprecate,\n format: format,\n debuglog: debuglog\n}\n","import {Buffer} from 'buffer';\n\nexport default BufferList;\n\nfunction BufferList() {\n this.head = null;\n this.tail = null;\n this.length = 0;\n}\n\nBufferList.prototype.push = function (v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n};\n\nBufferList.prototype.unshift = function (v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n};\n\nBufferList.prototype.shift = function () {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n};\n\nBufferList.prototype.clear = function () {\n this.head = this.tail = null;\n this.length = 0;\n};\n\nBufferList.prototype.join = function (s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n};\n\nBufferList.prototype.concat = function (n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n p.data.copy(ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\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\nimport {Buffer} from 'buffer';\nvar isBufferEncoding = Buffer.isEncoding\n || function(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': return true;\n default: return false;\n }\n }\n\n\nfunction assertEncoding(encoding) {\n if (encoding && !isBufferEncoding(encoding)) {\n throw new Error('Unknown encoding: ' + encoding);\n }\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. CESU-8 is handled as part of the UTF-8 encoding.\n//\n// @TODO Handling all encodings inside a single object makes it very difficult\n// to reason about this code, so it should be split up in the future.\n// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code\n// points as used by CESU-8.\nexport function StringDecoder(encoding) {\n this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');\n assertEncoding(encoding);\n switch (this.encoding) {\n case 'utf8':\n // CESU-8 represents each of Surrogate Pair by 3-bytes\n this.surrogateSize = 3;\n break;\n case 'ucs2':\n case 'utf16le':\n // UTF-16 represents each of Surrogate Pair by 2-bytes\n this.surrogateSize = 2;\n this.detectIncompleteChar = utf16DetectIncompleteChar;\n break;\n case 'base64':\n // Base-64 stores 3 bytes in 4 chars, and pads the remainder.\n this.surrogateSize = 3;\n this.detectIncompleteChar = base64DetectIncompleteChar;\n break;\n default:\n this.write = passThroughWrite;\n return;\n }\n\n // Enough space to store all bytes of a single character. UTF-8 needs 4\n // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).\n this.charBuffer = new Buffer(6);\n // Number of bytes received for the current incomplete multi-byte character.\n this.charReceived = 0;\n // Number of bytes expected for the current incomplete multi-byte character.\n this.charLength = 0;\n};\n\n\n// write decodes the given buffer and returns it as JS string that is\n// guaranteed to not contain any partial multi-byte characters. Any partial\n// character found at the end of the buffer is buffered up, and will be\n// returned when calling write again with the remaining bytes.\n//\n// Note: Converting a Buffer containing an orphan surrogate to a String\n// currently works, but converting a String to a Buffer (via `new Buffer`, or\n// Buffer#write) will replace incomplete surrogates with the unicode\n// replacement character. See https://codereview.chromium.org/121173009/ .\nStringDecoder.prototype.write = function(buffer) {\n var charStr = '';\n // if our last write ended with an incomplete multibyte character\n while (this.charLength) {\n // determine how many remaining bytes this buffer has to offer for this char\n var available = (buffer.length >= this.charLength - this.charReceived) ?\n this.charLength - this.charReceived :\n buffer.length;\n\n // add the new bytes to the char buffer\n buffer.copy(this.charBuffer, this.charReceived, 0, available);\n this.charReceived += available;\n\n if (this.charReceived < this.charLength) {\n // still not enough chars in this buffer? wait for more ...\n return '';\n }\n\n // remove bytes belonging to the current character from the buffer\n buffer = buffer.slice(available, buffer.length);\n\n // get the character that was split\n charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);\n\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n var charCode = charStr.charCodeAt(charStr.length - 1);\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n this.charLength += this.surrogateSize;\n charStr = '';\n continue;\n }\n this.charReceived = this.charLength = 0;\n\n // if there are no more bytes in this buffer, just emit our char\n if (buffer.length === 0) {\n return charStr;\n }\n break;\n }\n\n // determine and set charLength / charReceived\n this.detectIncompleteChar(buffer);\n\n var end = buffer.length;\n if (this.charLength) {\n // buffer the incomplete character bytes we got\n buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);\n end -= this.charReceived;\n }\n\n charStr += buffer.toString(this.encoding, 0, end);\n\n var end = charStr.length - 1;\n var charCode = charStr.charCodeAt(end);\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n var size = this.surrogateSize;\n this.charLength += size;\n this.charReceived += size;\n this.charBuffer.copy(this.charBuffer, size, 0, size);\n buffer.copy(this.charBuffer, 0, 0, size);\n return charStr.substring(0, end);\n }\n\n // or just emit the charStr\n return charStr;\n};\n\n// detectIncompleteChar determines if there is an incomplete UTF-8 character at\n// the end of the given buffer. If so, it sets this.charLength to the byte\n// length that character, and sets this.charReceived to the number of bytes\n// that are available for this character.\nStringDecoder.prototype.detectIncompleteChar = function(buffer) {\n // determine how many bytes we have to check at the end of this buffer\n var i = (buffer.length >= 3) ? 3 : buffer.length;\n\n // Figure out if one of the last i bytes of our buffer announces an\n // incomplete char.\n for (; i > 0; i--) {\n var c = buffer[buffer.length - i];\n\n // See http://en.wikipedia.org/wiki/UTF-8#Description\n\n // 110XXXXX\n if (i == 1 && c >> 5 == 0x06) {\n this.charLength = 2;\n break;\n }\n\n // 1110XXXX\n if (i <= 2 && c >> 4 == 0x0E) {\n this.charLength = 3;\n break;\n }\n\n // 11110XXX\n if (i <= 3 && c >> 3 == 0x1E) {\n this.charLength = 4;\n break;\n }\n }\n this.charReceived = i;\n};\n\nStringDecoder.prototype.end = function(buffer) {\n var res = '';\n if (buffer && buffer.length)\n res = this.write(buffer);\n\n if (this.charReceived) {\n var cr = this.charReceived;\n var buf = this.charBuffer;\n var enc = this.encoding;\n res += buf.slice(0, cr).toString(enc);\n }\n\n return res;\n};\n\nfunction passThroughWrite(buffer) {\n return buffer.toString(this.encoding);\n}\n\nfunction utf16DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 2;\n this.charLength = this.charReceived ? 2 : 0;\n}\n\nfunction base64DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 3;\n this.charLength = this.charReceived ? 3 : 0;\n}\n","'use strict';\n\n\nReadable.ReadableState = ReadableState;\nimport EventEmitter from 'events';\nimport {inherits, debuglog} from 'util';\nimport BufferList from './buffer-list';\nimport {StringDecoder} from 'string_decoder';\nimport {Duplex} from './duplex';\nimport {nextTick} from 'process';\n\nvar debug = debuglog('stream');\ninherits(Readable, EventEmitter);\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') {\n return emitter.prependListener(event, fn);\n } else {\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n}\nfunction listenerCount (emitter, type) {\n return emitter.listeners(type).length;\n}\nfunction ReadableState(options, stream) {\n\n options = options || {};\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // when piping, we only care about 'readable' events that happen\n // after read()ing all the bytes and not getting any pushback.\n this.ranOut = false;\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nexport default Readable;\nexport function Readable(options) {\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options && typeof options.read === 'function') this._read = options.read;\n\n EventEmitter.call(this);\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n\n if (!state.objectMode && typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n }\n\n return readableAddChunk(this, state, chunk, encoding, false);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n var state = this._readableState;\n return readableAddChunk(this, state, chunk, '', true);\n};\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\nfunction readableAddChunk(stream, state, chunk, encoding, addToFront) {\n var er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (state.ended && !addToFront) {\n var e = new Error('stream.push() after EOF');\n stream.emit('error', e);\n } else if (state.endEmitted && addToFront) {\n var _e = new Error('stream.unshift() after end event');\n stream.emit('error', _e);\n } else {\n var skipAdd;\n if (state.decoder && !addToFront && !encoding) {\n chunk = state.decoder.write(chunk);\n skipAdd = !state.objectMode && chunk.length === 0;\n }\n\n if (!addToFront) state.reading = false;\n\n // Don't add to the buffer if we've decoded to an empty string chunk and\n // we're not in object mode\n if (!skipAdd) {\n // if we want the data now, just emit it.\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n }\n\n maybeReadMore(stream, state);\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n\n return needMoreData(state);\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction chunkInvalid(state, chunk) {\n var er = null;\n if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false);\n\n var endFn = doEnd ? onend : cleanup;\n if (state.endEmitted) nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable) {\n debug('onunpipe');\n if (readable === src) {\n cleanup();\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', cleanup);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (listenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && src.listeners('data').length) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var _i = 0; _i < len; _i++) {\n dests[_i].emit('unpipe', this);\n }return this;\n }\n\n // try to find the right one.\n var i = indexOf(state.pipes, dest);\n if (i === -1) return this;\n\n state.pipes.splice(i, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = EventEmitter.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this, state);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var state = this._readableState;\n var paused = false;\n\n var self = this;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) self.push(chunk);\n }\n\n self.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = self.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n var events = ['error', 'close', 'destroy', 'pause', 'resume'];\n forEach(events, function (ev) {\n stream.on(ev, self.emit.bind(self, ev));\n });\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n self._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return self;\n};\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction forEach(xs, f) {\n for (var i = 0, l = xs.length; i < l; i++) {\n f(xs[i], i);\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}\n","// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n\nimport {inherits, deprecate} from 'util';\nimport {Buffer} from 'buffer';\nWritable.WritableState = WritableState;\nimport {EventEmitter} from 'events';\nimport {Duplex} from './duplex';\nimport {nextTick} from 'process';\ninherits(Writable, EventEmitter);\n\nfunction nop() {}\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\nfunction WritableState(options, stream) {\n Object.defineProperty(this, 'buffer', {\n get: deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')\n });\n options = options || {};\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function writableStateGetBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\nexport default Writable;\nexport function Writable(options) {\n\n // Writable ctor is applied to Duplexes, though they're not\n // instanceof Writable, they're instanceof Readable.\n if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n }\n\n EventEmitter.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n nextTick(cb, er);\n}\n\n// If we get something that is not a buffer, string, null, or undefined,\n// and we're not in objectMode, then that's an error.\n// Otherwise stream chunks are all considered to be of length=1, and the\n// watermarks determine how many objects to keep in the buffer, rather than\n// how many bytes or characters.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n // Always throw error if a null is written\n // if we are not in object mode then throw\n // if it is not a buffer, string, or undefined.\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, cb) {\n chunk = decodeChunk(state, chunk, encoding);\n\n if (Buffer.isBuffer(chunk)) encoding = 'buffer';\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) nextTick(cb, er);else cb(er);\n\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n nextTick(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n while (entry) {\n buffer[count] = entry;\n entry = entry.next;\n count += 1;\n }\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequestCount = 0;\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished) {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n if (state.pendingcb === 0) {\n prefinish(stream, state);\n state.finished = true;\n stream.emit('finish');\n } else {\n prefinish(stream, state);\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function (err) {\n var entry = _this.entry;\n _this.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = _this;\n } else {\n state.corkedRequestsFree = _this;\n }\n };\n}\n","\nimport {inherits} from 'util';\nimport {nextTick} from 'process';\nimport {Readable} from './readable';\nimport {Writable} from './writable';\n\n\ninherits(Duplex, Readable);\n\nvar keys = Object.keys(Writable.prototype);\nfor (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n}\nexport default Duplex;\nexport function Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n","// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n\nimport {Duplex} from './duplex';\n\n\nimport {inherits} from 'util';\ninherits(Transform, Duplex);\n\nfunction TransformState(stream) {\n this.afterTransform = function (er, data) {\n return afterTransform(stream, er, data);\n };\n\n this.needTransform = false;\n this.transforming = false;\n this.writecb = null;\n this.writechunk = null;\n this.writeencoding = null;\n}\n\nfunction afterTransform(stream, er, data) {\n var ts = stream._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data !== null && data !== undefined) stream.push(data);\n\n cb(er);\n\n var rs = stream._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n stream._read(rs.highWaterMark);\n }\n}\nexport default Transform;\nexport function Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = new TransformState(this);\n\n // when the writable side finishes, then flush out anything remaining.\n var stream = this;\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n this.once('prefinish', function () {\n if (typeof this._flush === 'function') this._flush(function (er) {\n done(stream, er);\n });else done(stream);\n });\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('Not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nfunction done(stream, er) {\n if (er) return stream.emit('error', er);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n var ws = stream._writableState;\n var ts = stream._transformState;\n\n if (ws.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (ts.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}\n","\nimport {Transform} from './transform';\n\nimport {inherits} from 'util';\ninherits(PassThrough, Transform);\nexport default PassThrough;\nexport function PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};\n","import EE from 'events';\nimport {inherits} from 'util';\n\nimport {Duplex} from './readable-stream/duplex.js';\nimport {Readable} from './readable-stream/readable.js';\nimport {Writable} from './readable-stream/writable.js';\nimport {Transform} from './readable-stream/transform.js';\nimport {PassThrough} from './readable-stream/passthrough.js';\ninherits(Stream, EE);\nStream.Readable = Readable;\nStream.Writable = Writable;\nStream.Duplex = Duplex;\nStream.Transform = Transform;\nStream.PassThrough = PassThrough;\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\nexport default Stream;\nexport {Readable,Writable,Duplex,Transform,PassThrough,Stream}\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","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","module.exports = require('stream');\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","\n/**\n * For Node.js, simply re-export the core `util.deprecate` function.\n */\n\nmodule.exports = require('util').deprecate;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// 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}","// 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 pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\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\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","var Stream = require('stream');\nif (process.env.READABLE_STREAM === 'disable' && Stream) {\n module.exports = Stream;\n exports = module.exports = Stream.Readable;\n exports.Readable = Stream.Readable;\n exports.Writable = Stream.Writable;\n exports.Duplex = Stream.Duplex;\n exports.Transform = Stream.Transform;\n exports.PassThrough = Stream.PassThrough;\n exports.Stream = Stream;\n} else {\n exports = module.exports = require('./lib/_stream_readable.js');\n exports.Stream = Stream || exports;\n exports.Readable = exports;\n exports.Writable = require('./lib/_stream_writable.js');\n exports.Duplex = require('./lib/_stream_duplex.js');\n exports.Transform = require('./lib/_stream_transform.js');\n exports.PassThrough = require('./lib/_stream_passthrough.js');\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\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","\"use strict\";\n\nexports.base64 = true;\nexports.array = true;\nexports.string = true;\nexports.arraybuffer = typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\";\nexports.nodebuffer = typeof Buffer !== \"undefined\";\n// contains true if JSZip can read/generate Uint8Array, false otherwise.\nexports.uint8array = typeof Uint8Array !== \"undefined\";\n\nif (typeof ArrayBuffer === \"undefined\") {\n exports.blob = false;\n}\nelse {\n var buffer = new ArrayBuffer(0);\n try {\n exports.blob = new Blob([buffer], {\n type: \"application/zip\"\n }).size === 0;\n }\n catch (e) {\n try {\n var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder;\n var builder = new Builder();\n builder.append(buffer);\n exports.blob = builder.getBlob(\"application/zip\").size === 0;\n }\n catch (e) {\n exports.blob = false;\n }\n }\n}\n\ntry {\n exports.nodestream = !!require(\"readable-stream\").Readable;\n} catch(e) {\n exports.nodestream = false;\n}\n","\"use strict\";\nvar utils = require(\"./utils\");\nvar support = require(\"./support\");\n// private property\nvar _keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\n\n// public method for encoding\nexports.encode = function(input) {\n var output = [];\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\n var i = 0, len = input.length, remainingBytes = len;\n\n var isArray = utils.getTypeOf(input) !== \"string\";\n while (i < input.length) {\n remainingBytes = len - i;\n\n if (!isArray) {\n chr1 = input.charCodeAt(i++);\n chr2 = i < len ? input.charCodeAt(i++) : 0;\n chr3 = i < len ? input.charCodeAt(i++) : 0;\n } else {\n chr1 = input[i++];\n chr2 = i < len ? input[i++] : 0;\n chr3 = i < len ? input[i++] : 0;\n }\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n enc3 = remainingBytes > 1 ? (((chr2 & 15) << 2) | (chr3 >> 6)) : 64;\n enc4 = remainingBytes > 2 ? (chr3 & 63) : 64;\n\n output.push(_keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4));\n\n }\n\n return output.join(\"\");\n};\n\n// public method for decoding\nexports.decode = function(input) {\n var chr1, chr2, chr3;\n var enc1, enc2, enc3, enc4;\n var i = 0, resultIndex = 0;\n\n var dataUrlPrefix = \"data:\";\n\n if (input.substr(0, dataUrlPrefix.length) === dataUrlPrefix) {\n // This is a common error: people give a data url\n // (data:image/png;base64,iVBOR...) with a {base64: true} and\n // wonders why things don't work.\n // We can detect that the string input looks like a data url but we\n // *can't* be sure it is one: removing everything up to the comma would\n // be too dangerous.\n throw new Error(\"Invalid base64 input, it looks like a data url.\");\n }\n\n input = input.replace(/[^A-Za-z0-9+/=]/g, \"\");\n\n var totalLength = input.length * 3 / 4;\n if(input.charAt(input.length - 1) === _keyStr.charAt(64)) {\n totalLength--;\n }\n if(input.charAt(input.length - 2) === _keyStr.charAt(64)) {\n totalLength--;\n }\n if (totalLength % 1 !== 0) {\n // totalLength is not an integer, the length does not match a valid\n // base64 content. That can happen if:\n // - the input is not a base64 content\n // - the input is *almost* a base64 content, with a extra chars at the\n // beginning or at the end\n // - the input uses a base64 variant (base64url for example)\n throw new Error(\"Invalid base64 input, bad content length.\");\n }\n var output;\n if (support.uint8array) {\n output = new Uint8Array(totalLength|0);\n } else {\n output = new Array(totalLength|0);\n }\n\n while (i < input.length) {\n\n enc1 = _keyStr.indexOf(input.charAt(i++));\n enc2 = _keyStr.indexOf(input.charAt(i++));\n enc3 = _keyStr.indexOf(input.charAt(i++));\n enc4 = _keyStr.indexOf(input.charAt(i++));\n\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n\n output[resultIndex++] = chr1;\n\n if (enc3 !== 64) {\n output[resultIndex++] = chr2;\n }\n if (enc4 !== 64) {\n output[resultIndex++] = chr3;\n }\n\n }\n\n return output;\n};\n","\"use strict\";\n\nmodule.exports = {\n /**\n * True if this is running in Nodejs, will be undefined in a browser.\n * In a browser, browserify won't include this file and the whole module\n * will be resolved an empty object.\n */\n isNode : typeof Buffer !== \"undefined\",\n /**\n * Create a new nodejs Buffer from an existing content.\n * @param {Object} data the data to pass to the constructor.\n * @param {String} encoding the encoding to use.\n * @return {Buffer} a new Buffer.\n */\n newBufferFrom: function(data, encoding) {\n if (Buffer.from && Buffer.from !== Uint8Array.from) {\n return Buffer.from(data, encoding);\n } else {\n if (typeof data === \"number\") {\n // Safeguard for old Node.js versions. On newer versions,\n // Buffer.from(number) / Buffer(number, encoding) already throw.\n throw new Error(\"The \\\"data\\\" argument must not be a number\");\n }\n return new Buffer(data, encoding);\n }\n },\n /**\n * Create a new nodejs Buffer with the specified size.\n * @param {Integer} size the size of the buffer.\n * @return {Buffer} a new Buffer.\n */\n allocBuffer: function (size) {\n if (Buffer.alloc) {\n return Buffer.alloc(size);\n } else {\n var buf = new Buffer(size);\n buf.fill(0);\n return buf;\n }\n },\n /**\n * Find out if an object is a Buffer.\n * @param {Object} b the object to test.\n * @return {Boolean} true if the object is a Buffer, false otherwise.\n */\n isBuffer : function(b){\n return Buffer.isBuffer(b);\n },\n\n isStream : function (obj) {\n return obj &&\n typeof obj.on === \"function\" &&\n typeof obj.pause === \"function\" &&\n typeof obj.resume === \"function\";\n }\n};\n","\"use strict\";\n\n// load the global object first:\n// - it should be better integrated in the system (unhandledRejection in node)\n// - the environment may have a custom Promise implementation (see zone.js)\nvar ES6Promise = null;\nif (typeof Promise !== \"undefined\") {\n ES6Promise = Promise;\n} else {\n ES6Promise = require(\"lie\");\n}\n\n/**\n * Let the user use/change some implementations.\n */\nmodule.exports = {\n Promise: ES6Promise\n};\n","'use strict';\nvar immediate = require('immediate');\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n/* istanbul ignore else */\nif (!process.browser) {\n // in which we actually take advantage of JS scoping\n var UNHANDLED = ['UNHANDLED'];\n}\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n /* istanbul ignore else */\n if (!process.browser) {\n this.handled = UNHANDLED;\n }\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype.finally = function (callback) {\n if (typeof callback !== 'function') {\n return this;\n }\n var p = this.constructor;\n return this.then(resolve, reject);\n\n function resolve(value) {\n function yes () {\n return value;\n }\n return p.resolve(callback()).then(yes);\n }\n function reject(reason) {\n function no () {\n throw reason;\n }\n return p.resolve(callback()).then(no);\n }\n};\nPromise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n /* istanbul ignore else */\n if (!process.browser) {\n if (this.handled === UNHANDLED) {\n this.handled = null;\n }\n }\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callRejected = function (value) {\n handlers.reject(this.promise, value);\n};\nQueueItem.prototype.otherCallRejected = function (value) {\n unwrap(this.promise, this.onRejected, value);\n};\n\nfunction unwrap(promise, func, value) {\n immediate(function () {\n var returnValue;\n try {\n returnValue = func(value);\n } catch (e) {\n return handlers.reject(promise, e);\n }\n if (returnValue === promise) {\n handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\n } else {\n handlers.resolve(promise, returnValue);\n }\n });\n}\n\nhandlers.resolve = function (self, value) {\n var result = tryCatch(getThen, value);\n if (result.status === 'error') {\n return handlers.reject(self, result.value);\n }\n var thenable = result.value;\n\n if (thenable) {\n safelyResolveThenable(self, thenable);\n } else {\n self.state = FULFILLED;\n self.outcome = value;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callFulfilled(value);\n }\n }\n return self;\n};\nhandlers.reject = function (self, error) {\n self.state = REJECTED;\n self.outcome = error;\n /* istanbul ignore else */\n if (!process.browser) {\n if (self.handled === UNHANDLED) {\n immediate(function () {\n if (self.handled === UNHANDLED) {\n process.emit('unhandledRejection', error, self);\n }\n });\n }\n }\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callRejected(error);\n }\n return self;\n};\n\nfunction getThen(obj) {\n // Make sure we only access the accessor once as required by the spec\n var then = obj && obj.then;\n if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {\n return function appyThen() {\n then.apply(obj, arguments);\n };\n }\n}\n\nfunction safelyResolveThenable(self, thenable) {\n // Either fulfill, reject or reject with error\n var called = false;\n function onError(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.reject(self, value);\n }\n\n function onSuccess(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.resolve(self, value);\n }\n\n function tryToUnwrap() {\n thenable(onSuccess, onError);\n }\n\n var result = tryCatch(tryToUnwrap);\n if (result.status === 'error') {\n onError(result.value);\n }\n}\n\nfunction tryCatch(func, value) {\n var out = {};\n try {\n out.value = func(value);\n out.status = 'success';\n } catch (e) {\n out.status = 'error';\n out.value = e;\n }\n return out;\n}\n\nPromise.resolve = resolve;\nfunction resolve(value) {\n if (value instanceof this) {\n return value;\n }\n return handlers.resolve(new this(INTERNAL), value);\n}\n\nPromise.reject = reject;\nfunction reject(reason) {\n var promise = new this(INTERNAL);\n return handlers.reject(promise, reason);\n}\n\nPromise.all = all;\nfunction all(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var values = new Array(len);\n var resolved = 0;\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n allResolver(iterable[i], i);\n }\n return promise;\n function allResolver(value, i) {\n self.resolve(value).then(resolveFromAll, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n function resolveFromAll(outValue) {\n values[i] = outValue;\n if (++resolved === len && !called) {\n called = true;\n handlers.resolve(promise, values);\n }\n }\n }\n}\n\nPromise.race = race;\nfunction race(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n resolver(iterable[i]);\n }\n return promise;\n function resolver(value) {\n self.resolve(value).then(function (response) {\n if (!called) {\n called = true;\n handlers.resolve(promise, response);\n }\n }, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n }\n}\n","'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\nif (process.browser) {\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a ', pos);\n children = [S.slice(start, pos)];\n pos += 9;\n } else if (tagName == \"style\") {\n var start = pos + 1;\n pos = S.indexOf('', pos);\n children = [S.slice(start, pos)];\n pos += 8;\n } else if (NoChildNodes.indexOf(tagName) === -1) {\n pos++;\n children = parseChildren(tagName);\n } else {\n pos++;\n }\n } else {\n pos++;\n }\n return {\n tagName,\n attributes,\n children,\n };\n }\n\n /**\n * is parsing a string, that starts with a char and with the same usually ' or \"\n */\n\n function parseString() {\n var startChar = S[pos];\n var startpos = pos + 1;\n pos = S.indexOf(startChar, startpos);\n return S.slice(startpos, pos);\n }\n\n /**\n *\n */\n function findElements() {\n var r = new RegExp('\\\\s' + options.attrName + '\\\\s*=[\\'\"]' + options.attrValue + '[\\'\"]').exec(S);\n if (r) {\n return r.index;\n } else {\n return -1;\n }\n }\n\n var out = null;\n if (options.attrValue !== undefined) {\n options.attrName = options.attrName || 'id';\n var out = [];\n\n while ((pos = findElements()) !== -1) {\n pos = S.lastIndexOf('<', pos);\n if (pos !== -1) {\n out.push(parseNode());\n }\n S = S.substr(pos);\n pos = 0;\n }\n } else if (options.parseNode) {\n out = parseNode();\n } else {\n out = parseChildren('');\n }\n\n if (options.filter) {\n out = filter(out, options.filter);\n }\n\n if (options.simplify) {\n return simplify(Array.isArray(out) ? out : [out]);\n }\n\n if (options.setPos) {\n out.pos = pos;\n }\n\n return out;\n}\n\n/**\n * transform the DomObject to an object that is like the object of PHP`s simple_xmp_load_*() methods.\n * this format helps you to write that is more likely to keep your program working, even if there a small changes in the XML schema.\n * be aware, that it is not possible to reproduce the original xml from a simplified version, because the order of elements is not saved.\n * therefore your program will be more flexible and easier to read.\n *\n * @param {tNode[]} children the childrenList\n */\nfunction simplify(children) {\n var out = {};\n if (!children.length) {\n return '';\n }\n\n if (children.length === 1 && typeof children[0] == 'string') {\n return children[0];\n }\n // map each object\n children.forEach(function(child) {\n if (typeof child !== 'object') {\n return;\n }\n if (!out[child.tagName])\n out[child.tagName] = [];\n var kids = simplify(child.children);\n out[child.tagName].push(kids);\n if (Object.keys(child.attributes).length && typeof kids !== 'string') {\n kids._attributes = child.attributes;\n }\n });\n\n for (var i in out) {\n if (out[i].length == 1) {\n out[i] = out[i][0];\n }\n }\n\n return out;\n}\n\n/**\n * similar to simplify, but lost less\n *\n * @param {tNode[]} children the childrenList\n */\nfunction simplifyLostLess(children, parentAttributes = {}) {\n var out = {};\n if (!children.length) {\n return out;\n }\n\n if (children.length === 1 && typeof children[0] == 'string') {\n return Object.keys(parentAttributes).length ? {\n _attributes: parentAttributes,\n value: children[0]\n } : children[0];\n }\n // map each object\n children.forEach(function(child) {\n if (typeof child !== 'object') {\n return;\n }\n if (!out[child.tagName])\n out[child.tagName] = [];\n var kids = simplifyLostLess(child.children || [], child.attributes);\n out[child.tagName].push(kids);\n if (Object.keys(child.attributes).length) {\n kids._attributes = child.attributes;\n }\n });\n\n return out;\n}\n/**\n * behaves the same way as Array.filter, if the filter method return true, the element is in the resultList\n * @params children{Array} the children of a node\n * @param f{function} the filter method\n */\nfunction filter(children, f, dept = 0, path = '') {\n var out = [];\n children.forEach(function(child, i) {\n if (typeof(child) === 'object' && f(child, i, dept, path)) out.push(child);\n if (child.children) {\n var kids = filter(child.children, f, dept + 1, (path ? path + '.' : '') + i + '.' + child.tagName);\n out = out.concat(kids);\n }\n });\n return out;\n}\n/**\n * stringify a previously parsed string object.\n * this is useful,\n * 1. to remove whitespace\n * 2. to recreate xml data, with some changed data.\n * @param {tNode} O the object to Stringify\n */\nfunction stringify(O) {\n var out = '';\n\n function writeChildren(O) {\n if (O) {\n for (var i = 0; i < O.length; i++) {\n if (typeof O[i] == 'string') {\n out += O[i].trim();\n } else {\n writeNode(O[i]);\n }\n }\n }\n }\n\n function writeNode(N) {\n out += \"<\" + N.tagName;\n for (var i in N.attributes) {\n if (N.attributes[i] === null) {\n out += ' ' + i;\n } else if (N.attributes[i].indexOf('\"') === -1) {\n out += ' ' + i + '=\"' + N.attributes[i].trim() + '\"';\n } else {\n out += ' ' + i + \"='\" + N.attributes[i].trim() + \"'\";\n }\n }\n if (N.tagName[0] === '?') {\n out += '?>';\n return;\n }\n out += '>';\n writeChildren(N.children);\n out += '';\n }\n writeChildren(O);\n\n return out;\n}\n\n/**\n * use this method to read the text content, of some node.\n * It is great if you have mixed content like:\n * this text has some big text and a link\n * @return {string}\n */\nfunction toContentString(tDom) {\n if (Array.isArray(tDom)) {\n var out = '';\n tDom.forEach(function(e) {\n out += ' ' + toContentString(e);\n out = out.trim();\n });\n return out;\n } else if (typeof tDom === 'object') {\n return toContentString(tDom.children)\n } else {\n return ' ' + tDom;\n }\n}\nfunction getElementById(S, id, simplified) {\n var out = parse(S, {\n attrValue: id\n });\n return simplified ? tXml.simplify(out) : out[0];\n}\nfunction getElementsByClassName(S, classname, simplified) {\n const out = parse(S, {\n attrName: 'class',\n attrValue: '[a-zA-Z0-9- ]*' + classname + '[a-zA-Z0-9- ]*'\n });\n return simplified ? tXml.simplify(out) : out;\n}\n\nexport { filter, getElementById, getElementsByClassName, parse, simplify, simplifyLostLess, stringify, toContentString };\n","import * as txml from 'txml/dist/txml.mjs'\r\n\r\nlet cust_attr_order = 0\r\n\r\nexport function simplifyLostLess(children, parentAttributes = {}) {\r\n const out = {}\r\n if (!children.length) return out\r\n\r\n if (children.length === 1 && typeof children[0] === 'string') {\r\n return Object.keys(parentAttributes).length ? {\r\n attrs: { order: cust_attr_order++, ...parentAttributes },\r\n value: children[0],\r\n } : children[0]\r\n }\r\n for (const child of children) {\r\n if (typeof child !== 'object') return\r\n if (child.tagName === '?xml') continue\r\n\r\n if (!out[child.tagName]) out[child.tagName] = []\r\n\r\n const kids = simplifyLostLess(child.children || [], child.attributes)\r\n out[child.tagName].push(kids)\r\n\r\n if (Object.keys(child.attributes).length) {\r\n kids.attrs = { order: cust_attr_order++, ...child.attributes }\r\n }\r\n }\r\n for (const child in out) {\r\n if (out[child].length === 1) out[child] = out[child][0]\r\n }\r\n\r\n return out\r\n}\r\n\r\nexport async function readXmlFile(zip, filename) {\r\n try {\r\n const data = await zip.file(filename).async('string')\r\n return simplifyLostLess(txml.parse(data))\r\n }\r\n catch {\r\n return null\r\n }\r\n}","// This file is autogenerated. It's used to publish ESM to npm.\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\nvar trimLeft = /^\\s+/;\nvar trimRight = /\\s+$/;\nfunction tinycolor(color, opts) {\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 var rgb = inputToRGB(color);\n this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, 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 = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n this._ok = rgb.ok;\n}\ntinycolor.prototype = {\n isDark: function isDark() {\n return this.getBrightness() < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n isValid: function isValid() {\n return this._ok;\n },\n getOriginalInput: function getOriginalInput() {\n return this._originalInput;\n },\n getFormat: function getFormat() {\n return this._format;\n },\n getAlpha: function getAlpha() {\n return this._a;\n },\n getBrightness: function getBrightness() {\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 getLuminance() {\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 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 setAlpha(value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function toHsv() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this._a\n };\n },\n toHsvString: function toHsvString() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function toHsl() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this._a\n };\n },\n toHslString: function toHslString() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function toHex(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function toHexString(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function toHex8(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function toHex8String(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function toRgb() {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a\n };\n },\n toRgbString: function toRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function toPercentageRgb() {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function toPercentageRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function toName() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function toFilter(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 if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function toString(format) {\n var formatSet = !!format;\n format = format || this._format;\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 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 return formattedString || this.toHexString();\n },\n clone: function clone() {\n return tinycolor(this.toString());\n },\n _applyModification: function _applyModification(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 lighten() {\n return this._applyModification(_lighten, arguments);\n },\n brighten: function brighten() {\n return this._applyModification(_brighten, arguments);\n },\n darken: function darken() {\n return this._applyModification(_darken, arguments);\n },\n desaturate: function desaturate() {\n return this._applyModification(_desaturate, arguments);\n },\n saturate: function saturate() {\n return this._applyModification(_saturate, arguments);\n },\n greyscale: function greyscale() {\n return this._applyModification(_greyscale, arguments);\n },\n spin: function spin() {\n return this._applyModification(_spin, arguments);\n },\n _applyCombination: function _applyCombination(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function analogous() {\n return this._applyCombination(_analogous, arguments);\n },\n complement: function complement() {\n return this._applyCombination(_complement, arguments);\n },\n monochromatic: function monochromatic() {\n return this._applyCombination(_monochromatic, arguments);\n },\n splitcomplement: function splitcomplement() {\n return this._applyCombination(_splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function triad() {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function tetrad() {\n return this._applyCombination(polyad, [4]);\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 } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\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 var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\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 if (typeof color == \"string\") {\n color = stringInputToObject(color);\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 } 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 } 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 if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a\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 r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n if (max == min) {\n h = s = 0; // achromatic\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:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l\n };\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 h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\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 if (s === 0) {\n r = g = b = l; // achromatic\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 return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\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 r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n v: v\n };\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]\nfunction hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\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 return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\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 var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\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 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 var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\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 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 var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\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};\ntinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random()\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}\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}\nfunction _greyscale(color) {\n return tinycolor(color).desaturate(100);\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}\nfunction _brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\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}\nfunction polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({\n h: (hsl.h + i * step) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n return result;\n}\nfunction _splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [tinycolor(color), tinycolor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), tinycolor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n}\nfunction _analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\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}\nfunction _monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\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 var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\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 return tinycolor(rgba);\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 out = false;\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// `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 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 if (tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size\n }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\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// 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 if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\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 var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(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 Math.min(1, Math.max(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 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}\nvar matchers = function () {\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 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 color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: \"name\"\n };\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 {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n if (match = matchers.rgba.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsl.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n if (match = matchers.hsla.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsv.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n if (match = matchers.hsva.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\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 return false;\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 || {\n level: \"AA\",\n size: \"small\"\n };\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 {\n level: level,\n size: size\n };\n}\n\nexport { tinycolor as default };\n","export function base64ArrayBuffer(arrayBuffer) {\r\n const encodings = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\r\n const bytes = new Uint8Array(arrayBuffer)\r\n const byteLength = bytes.byteLength\r\n const byteRemainder = byteLength % 3\r\n const mainLength = byteLength - byteRemainder\r\n \r\n let base64 = ''\r\n let a, b, c, d\r\n let chunk\r\n\r\n for (let i = 0; i < mainLength; i = i + 3) {\r\n chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2]\r\n a = (chunk & 16515072) >> 18\r\n b = (chunk & 258048) >> 12\r\n c = (chunk & 4032) >> 6\r\n d = chunk & 63\r\n base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d]\r\n }\r\n\r\n if (byteRemainder === 1) {\r\n chunk = bytes[mainLength]\r\n a = (chunk & 252) >> 2\r\n b = (chunk & 3) << 4\r\n base64 += encodings[a] + encodings[b] + '=='\r\n } \r\n else if (byteRemainder === 2) {\r\n chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1]\r\n a = (chunk & 64512) >> 10\r\n b = (chunk & 1008) >> 4\r\n c = (chunk & 15) << 2\r\n base64 += encodings[a] + encodings[b] + encodings[c] + '='\r\n }\r\n\r\n return base64\r\n}\r\n\r\nexport function extractFileExtension(filename) {\r\n return filename.substr((~-filename.lastIndexOf('.') >>> 0) + 2)\r\n}\r\n\r\nexport function eachElement(node, func) {\r\n if (!node) return node\r\n\r\n let result = ''\r\n if (node.constructor === Array) {\r\n for (let i = 0; i < node.length; i++) {\r\n result += func(node[i], i)\r\n }\r\n } \r\n else result += func(node, 0)\r\n\r\n return result\r\n}\r\n\r\nexport function getTextByPathList(node, path) {\r\n if (path.constructor !== Array) throw Error('Error of path type! path is not array.')\r\n\r\n if (!node) return node\r\n\r\n for (const key of path) {\r\n node = node[key]\r\n if (!node) return node\r\n }\r\n\r\n return node\r\n}\r\n\r\nexport function angleToDegrees(angle) {\r\n if (!angle) return 0\r\n return Math.round(angle / 60000)\r\n}\r\n\r\nexport function escapeHtml(text) {\r\n const map = {\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n \"'\": ''',\r\n }\r\n return text.replace(/[&<>\"']/g, m => map[m])\r\n}\r\n\r\nexport function getMimeType(imgFileExt) {\r\n let mimeType = ''\r\n switch (imgFileExt.toLowerCase()) {\r\n case 'jpg':\r\n case 'jpeg':\r\n mimeType = 'image/jpeg'\r\n break\r\n case 'png':\r\n mimeType = 'image/png'\r\n break\r\n case 'gif':\r\n mimeType = 'image/gif'\r\n break\r\n case 'emf':\r\n mimeType = 'image/x-emf'\r\n break\r\n case 'wmf':\r\n mimeType = 'image/x-wmf'\r\n break\r\n case 'svg':\r\n mimeType = 'image/svg+xml'\r\n break\r\n case 'mp4':\r\n mimeType = 'video/mp4'\r\n break\r\n case 'webm':\r\n mimeType = 'video/webm'\r\n break\r\n case 'ogg':\r\n mimeType = 'video/ogg'\r\n break\r\n case 'avi':\r\n mimeType = 'video/avi'\r\n break\r\n case 'mpg':\r\n mimeType = 'video/mpg'\r\n break\r\n case 'wmv':\r\n mimeType = 'video/wmv'\r\n break\r\n case 'mp3':\r\n mimeType = 'audio/mpeg'\r\n break\r\n case 'wav':\r\n mimeType = 'audio/wav'\r\n break\r\n case 'tif':\r\n mimeType = 'image/tiff'\r\n break\r\n case 'tiff':\r\n mimeType = 'image/tiff'\r\n break\r\n default:\r\n }\r\n return mimeType\r\n}\r\n\r\nexport function isVideoLink(vdoFile) {\r\n const urlRegex = /^(https?|ftp):\\/\\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+\\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\\/($|[a-zA-Z0-9.,?'\\\\+&%$#=~_-]+))*$/\r\n return urlRegex.test(vdoFile)\r\n}\r\n\r\nexport function toHex(n) {\r\n let hex = n.toString(16)\r\n while (hex.length < 2) {\r\n hex = '0' + hex\r\n }\r\n return hex\r\n}","import { getTextByPathList } from './utils'\r\n\r\nexport function getSchemeColorFromTheme(schemeClr, warpObj, clrMap, phClr) {\r\n let color\r\n let slideLayoutClrOvride\r\n if (clrMap) slideLayoutClrOvride = clrMap\r\n else {\r\n let sldClrMapOvr = getTextByPathList(warpObj['slideContent'], ['p:sld', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) slideLayoutClrOvride = sldClrMapOvr\r\n else {\r\n sldClrMapOvr = getTextByPathList(warpObj['slideLayoutContent'], ['p:sldLayout', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) slideLayoutClrOvride = sldClrMapOvr\r\n else {\r\n slideLayoutClrOvride = getTextByPathList(warpObj['slideMasterContent'], ['p:sldMaster', 'p:clrMap', 'attrs'])\r\n }\r\n }\r\n }\r\n const schmClrName = schemeClr.substr(2)\r\n if (schmClrName === 'phClr' && phClr) color = phClr\r\n else {\r\n if (slideLayoutClrOvride) {\r\n switch (schmClrName) {\r\n case 'tx1':\r\n case 'tx2':\r\n case 'bg1':\r\n case 'bg2':\r\n schemeClr = 'a:' + slideLayoutClrOvride[schmClrName]\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n else {\r\n switch (schemeClr) {\r\n case 'tx1':\r\n schemeClr = 'a:dk1'\r\n break\r\n case 'tx2':\r\n schemeClr = 'a:dk2'\r\n break\r\n case 'bg1':\r\n schemeClr = 'a:lt1'\r\n break\r\n case 'bg2':\r\n schemeClr = 'a:lt2'\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n const refNode = getTextByPathList(warpObj['themeContent'], ['a:theme', 'a:themeElements', 'a:clrScheme', schemeClr])\r\n color = getTextByPathList(refNode, ['a:srgbClr', 'attrs', 'val'])\r\n if (!color && refNode) color = getTextByPathList(refNode, ['a:sysClr', 'attrs', 'lastClr'])\r\n }\r\n return color\r\n}","import tinycolor from 'tinycolor2'\r\nimport { getSchemeColorFromTheme } from './schemeColor'\r\nimport { getTextByPathList } from './utils'\r\n\r\nexport function getBorder(node, elType, warpObj) {\r\n const lineNode = node['p:spPr']['a:ln']\r\n\r\n let borderWidth = parseInt(getTextByPathList(lineNode, ['attrs', 'w'])) / 12700\r\n if (isNaN(borderWidth)) {\r\n if (lineNode) borderWidth = 0\r\n else if (elType !== 'obj') borderWidth = 0\r\n else borderWidth = 1\r\n }\r\n\r\n let borderColor = getTextByPathList(lineNode, ['a:solidFill', 'a:srgbClr', 'attrs', 'val'])\r\n if (!borderColor) {\r\n const schemeClrNode = getTextByPathList(lineNode, ['a:solidFill', 'a:schemeClr'])\r\n const schemeClr = 'a:' + getTextByPathList(schemeClrNode, ['attrs', 'val'])\r\n borderColor = getSchemeColorFromTheme(schemeClr, warpObj)\r\n }\r\n\r\n if (!borderColor) {\r\n const schemeClrNode = getTextByPathList(node, ['p:style', 'a:lnRef', 'a:schemeClr'])\r\n const schemeClr = 'a:' + getTextByPathList(schemeClrNode, ['attrs', 'val'])\r\n borderColor = getSchemeColorFromTheme(schemeClr, warpObj)\r\n\r\n if (borderColor) {\r\n let shade = getTextByPathList(schemeClrNode, ['a:shade', 'attrs', 'val'])\r\n\r\n if (shade) {\r\n shade = parseInt(shade) / 100000\r\n \r\n const color = tinycolor('#' + borderColor).toHsl()\r\n borderColor = tinycolor({ h: color.h, s: color.s, l: color.l * shade, a: color.a }).toHex()\r\n }\r\n }\r\n }\r\n\r\n if (!borderColor) borderColor = '#000'\r\n else borderColor = `#${borderColor}`\r\n\r\n const type = getTextByPathList(lineNode, ['a:prstDash', 'attrs', 'val'])\r\n let borderType = 'solid'\r\n let strokeDasharray = '0'\r\n switch (type) {\r\n case 'solid':\r\n borderType = 'solid'\r\n strokeDasharray = '0'\r\n break\r\n case 'dash':\r\n borderType = 'dashed'\r\n strokeDasharray = '5'\r\n break\r\n case 'dashDot':\r\n borderType = 'dashed'\r\n strokeDasharray = '5, 5, 1, 5'\r\n break\r\n case 'dot':\r\n borderType = 'dotted'\r\n strokeDasharray = '1, 5'\r\n break\r\n case 'lgDash':\r\n borderType = 'dashed'\r\n strokeDasharray = '10, 5'\r\n break\r\n case 'lgDashDotDot':\r\n borderType = 'dotted'\r\n strokeDasharray = '10, 5, 1, 5, 1, 5'\r\n break\r\n case 'sysDash':\r\n borderType = 'dashed'\r\n strokeDasharray = '5, 2'\r\n break\r\n case 'sysDashDot':\r\n borderType = 'dotted'\r\n strokeDasharray = '5, 2, 1, 5'\r\n break\r\n case 'sysDashDotDot':\r\n borderType = 'dotted'\r\n strokeDasharray = '5, 2, 1, 5, 1, 5'\r\n break\r\n case 'sysDot':\r\n borderType = 'dotted'\r\n strokeDasharray = '2, 5'\r\n break\r\n default:\r\n }\r\n\r\n return {\r\n borderColor,\r\n borderWidth,\r\n borderType,\r\n strokeDasharray,\r\n }\r\n}","import tinycolor from 'tinycolor2'\r\n\r\nexport function hueToRgb(t1, t2, hue) {\r\n if (hue < 0) hue += 6\r\n if (hue >= 6) hue -= 6\r\n if (hue < 1) return (t2 - t1) * hue + t1\r\n else if (hue < 3) return t2\r\n else if (hue < 4) return (t2 - t1) * (4 - hue) + t1\r\n return t1\r\n}\r\n\r\nexport function hslToRgb(hue, sat, light) {\r\n let t2\r\n hue = hue / 60\r\n if (light <= 0.5) {\r\n t2 = light * (sat + 1)\r\n } \r\n else {\r\n t2 = light + sat - (light * sat)\r\n }\r\n const t1 = light * 2 - t2\r\n const r = hueToRgb(t1, t2, hue + 2) * 255\r\n const g = hueToRgb(t1, t2, hue) * 255\r\n const b = hueToRgb(t1, t2, hue - 2) * 255\r\n return { r, g, b }\r\n}\r\n\r\nexport function applyShade(rgbStr, shadeValue, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n if (shadeValue >= 1) shadeValue = 1\r\n const cacl_l = Math.min(color.l * shadeValue, 1)\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a,\r\n }).toHex()\r\n}\r\n\r\nexport function applyTint(rgbStr, tintValue, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n if (tintValue >= 1) tintValue = 1\r\n const cacl_l = color.l * tintValue + (1 - tintValue)\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a\r\n }).toHex()\r\n}\r\n\r\nexport function applyLumOff(rgbStr, offset, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n const lum = offset + color.l\r\n if (lum >= 1) {\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: 1,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n \r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: 1,\r\n a: color.a\r\n }).toHex()\r\n }\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: lum,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: lum,\r\n a: color.a\r\n }).toHex()\r\n}\r\n\r\nexport function applyLumMod(rgbStr, multiplier, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n let cacl_l = color.l * multiplier\r\n if (cacl_l >= 1) cacl_l = 1\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: color.h,\r\n s: color.s,\r\n l: cacl_l,\r\n a: color.a\r\n }).toHex()\r\n}\r\n\r\nexport function applyHueMod(rgbStr, multiplier, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n let cacl_h = color.h * multiplier\r\n if (cacl_h >= 360) cacl_h = cacl_h - 360\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: cacl_h,\r\n s: color.s,\r\n l: color.l,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: cacl_h,\r\n s: color.s,\r\n l: color.l,\r\n a: color.a\r\n }).toHex()\r\n}\r\n\r\nexport function applySatMod(rgbStr, multiplier, isAlpha) {\r\n const color = tinycolor(rgbStr).toHsl()\r\n let cacl_s = color.s * multiplier\r\n if (cacl_s >= 1) cacl_s = 1\r\n if (isAlpha) {\r\n return tinycolor({\r\n h: color.h,\r\n s: cacl_s,\r\n l: color.l,\r\n a: color.a\r\n }).toHex8()\r\n }\r\n\r\n return tinycolor({\r\n h: color.h,\r\n s: cacl_s,\r\n l: color.l,\r\n a: color.a\r\n }).toHex()\r\n}\r\n\r\nexport function getColorName2Hex(name) {\r\n let hex\r\n const colorName = ['white', 'AliceBlue', 'AntiqueWhite', 'Aqua', 'Aquamarine', 'Azure', 'Beige', 'Bisque', 'black', 'BlanchedAlmond', 'Blue', 'BlueViolet', 'Brown', 'BurlyWood', 'CadetBlue', 'Chartreuse', 'Chocolate', 'Coral', 'CornflowerBlue', 'Cornsilk', 'Crimson', 'Cyan', 'DarkBlue', 'DarkCyan', 'DarkGoldenRod', 'DarkGray', 'DarkGrey', 'DarkGreen', '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', 'Grey', 'Green', 'GreenYellow', 'HoneyDew', 'HotPink', 'IndianRed', 'Indigo', 'Ivory', 'Khaki', 'Lavender', 'LavenderBlush', 'LawnGreen', 'LemonChiffon', 'LightBlue', 'LightCoral', 'LightCyan', 'LightGoldenRodYellow', 'LightGray', 'LightGrey', 'LightGreen', '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']\r\n const colorHex = ['ffffff', 'f0f8ff', 'faebd7', '00ffff', '7fffd4', 'f0ffff', 'f5f5dc', 'ffe4c4', '000000', 'ffebcd', '0000ff', '8a2be2', 'a52a2a', 'deb887', '5f9ea0', '7fff00', 'd2691e', 'ff7f50', '6495ed', 'fff8dc', 'dc143c', '00ffff', '00008b', '008b8b', 'b8860b', 'a9a9a9', 'a9a9a9', '006400', 'bdb76b', '8b008b', '556b2f', 'ff8c00', '9932cc', '8b0000', 'e9967a', '8fbc8f', '483d8b', '2f4f4f', '2f4f4f', '00ced1', '9400d3', 'ff1493', '00bfff', '696969', '696969', '1e90ff', 'b22222', 'fffaf0', '228b22', 'ff00ff', 'dcdcdc', 'f8f8ff', 'ffd700', 'daa520', '808080', '808080', '008000', 'adff2f', 'f0fff0', 'ff69b4', 'cd5c5c', '4b0082', 'fffff0', 'f0e68c', 'e6e6fa', 'fff0f5', '7cfc00', 'fffacd', 'add8e6', 'f08080', 'e0ffff', 'fafad2', 'd3d3d3', 'd3d3d3', '90ee90', 'ffb6c1', 'ffa07a', '20b2aa', '87cefa', '778899', '778899', 'b0c4de', 'ffffe0', '00ff00', '32cd32', 'faf0e6', 'ff00ff', '800000', '66cdaa', '0000cd', 'ba55d3', '9370db', '3cb371', '7b68ee', '00fa9a', '48d1cc', 'c71585', '191970', 'f5fffa', 'ffe4e1', 'ffe4b5', 'ffdead', '000080', 'fdf5e6', '808000', '6b8e23', 'ffa500', 'ff4500', 'da70d6', 'eee8aa', '98fb98', 'afeeee', 'db7093', 'ffefd5', 'ffdab9', 'cd853f', 'ffc0cb', 'dda0dd', 'b0e0e6', '800080', '663399', 'ff0000', 'bc8f8f', '4169e1', '8b4513', 'fa8072', 'f4a460', '2e8b57', 'fff5ee', 'a0522d', 'c0c0c0', '87ceeb', '6a5acd', '708090', '708090', 'fffafa', '00ff7f', '4682b4', 'd2b48c', '008080', 'd8bfd8', 'ff6347', '40e0d0', 'ee82ee', 'f5deb3', 'ffffff', 'f5f5f5', 'ffff00', '9acd32']\r\n const findIndx = colorName.indexOf(name)\r\n if (findIndx !== -1) hex = colorHex[findIndx]\r\n return hex\r\n}","import tinycolor from 'tinycolor2'\r\nimport { getSchemeColorFromTheme } from './schemeColor'\r\nimport {\r\n applyShade,\r\n applyTint,\r\n applyLumOff,\r\n applyLumMod,\r\n applyHueMod,\r\n applySatMod,\r\n hslToRgb,\r\n getColorName2Hex,\r\n} from './color'\r\n\r\nimport {\r\n base64ArrayBuffer,\r\n getTextByPathList,\r\n angleToDegrees,\r\n escapeHtml,\r\n getMimeType,\r\n toHex,\r\n} from './utils'\r\n\r\nexport function getFillType(node) {\r\n let fillType = ''\r\n if (node['a:noFill']) fillType = 'NO_FILL'\r\n if (node['a:solidFill']) fillType = 'SOLID_FILL'\r\n if (node['a:gradFill']) fillType = 'GRADIENT_FILL'\r\n if (node['a:pattFill']) fillType = 'PATTERN_FILL'\r\n if (node['a:blipFill']) fillType = 'PIC_FILL'\r\n if (node['a:grpFill']) fillType = 'GROUP_FILL'\r\n\r\n return fillType\r\n}\r\n\r\nexport async function getPicFill(type, node, warpObj) {\r\n let img\r\n const rId = node['a:blip']['attrs']['r:embed']\r\n let imgPath\r\n if (type === 'slideBg' || type === 'slide') {\r\n imgPath = getTextByPathList(warpObj, ['slideResObj', rId, 'target'])\r\n }\r\n else if (type === 'slideLayoutBg') {\r\n imgPath = getTextByPathList(warpObj, ['layoutResObj', rId, 'target'])\r\n }\r\n else if (type === 'slideMasterBg') {\r\n imgPath = getTextByPathList(warpObj, ['masterResObj', rId, 'target'])\r\n }\r\n else if (type === 'themeBg') {\r\n imgPath = getTextByPathList(warpObj, ['themeResObj', rId, 'target'])\r\n }\r\n else if (type === 'diagramBg') {\r\n imgPath = getTextByPathList(warpObj, ['diagramResObj', rId, 'target'])\r\n }\r\n if (!imgPath) return imgPath\r\n\r\n img = getTextByPathList(warpObj, ['loaded-images', imgPath])\r\n if (!img) {\r\n imgPath = escapeHtml(imgPath)\r\n\r\n const imgExt = imgPath.split('.').pop()\r\n if (imgExt === 'xml') return undefined\r\n\r\n const imgArrayBuffer = await warpObj['zip'].file(imgPath).async('arraybuffer')\r\n const imgMimeType = getMimeType(imgExt)\r\n img = `data:${imgMimeType};base64,${base64ArrayBuffer(imgArrayBuffer)}`\r\n }\r\n return img\r\n}\r\n\r\nexport async function getBgPicFill(bgPr, sorce, warpObj) {\r\n const picBase64 = await getPicFill(sorce, bgPr['a:blipFill'], warpObj)\r\n const aBlipNode = bgPr['a:blipFill']['a:blip']\r\n\r\n const aphaModFixNode = getTextByPathList(aBlipNode, ['a:alphaModFix', 'attrs'])\r\n let opacity = 1\r\n if (aphaModFixNode && aphaModFixNode['amt'] && aphaModFixNode['amt'] !== '') {\r\n opacity = parseInt(aphaModFixNode['amt']) / 100000\r\n }\r\n\r\n return {\r\n picBase64,\r\n opacity,\r\n }\r\n}\r\n\r\nexport function getBgGradientFill(bgPr, phClr, slideMasterContent, warpObj) {\r\n if (bgPr) {\r\n const grdFill = bgPr['a:gradFill']\r\n const gsLst = grdFill['a:gsLst']['a:gs']\r\n const color_ary = []\r\n \r\n for (let i = 0; i < gsLst.length; i++) {\r\n const lo_color = getSolidFill(gsLst[i], slideMasterContent['p:sldMaster']['p:clrMap']['attrs'], phClr, warpObj)\r\n const pos = getTextByPathList(gsLst[i], ['attrs', 'pos'])\r\n\r\n color_ary[i] = {\r\n pos: pos ? (pos / 1000 + '%') : '',\r\n color: lo_color,\r\n }\r\n }\r\n const lin = grdFill['a:lin']\r\n let rot = 90\r\n if (lin) {\r\n rot = angleToDegrees(lin['attrs']['ang'])\r\n rot = rot + 90\r\n }\r\n\r\n return {\r\n rot,\r\n colors: color_ary.sort((a, b) => parseInt(a.pos) - parseInt(b.pos)),\r\n }\r\n }\r\n else if (phClr) {\r\n return phClr.indexOf('#') === -1 ? `#${phClr}` : phClr\r\n }\r\n return null\r\n}\r\n\r\nexport async function getSlideBackgroundFill(warpObj) {\r\n const slideContent = warpObj['slideContent']\r\n const slideLayoutContent = warpObj['slideLayoutContent']\r\n const slideMasterContent = warpObj['slideMasterContent']\r\n \r\n let bgPr = getTextByPathList(slideContent, ['p:sld', 'p:cSld', 'p:bg', 'p:bgPr'])\r\n let bgRef = getTextByPathList(slideContent, ['p:sld', 'p:cSld', 'p:bg', 'p:bgRef'])\r\n\r\n let background = '#fff'\r\n let backgroundType = 'color'\r\n\r\n if (bgPr) {\r\n const bgFillTyp = getFillType(bgPr)\r\n\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgPr['a:solidFill']\r\n let clrMapOvr\r\n const sldClrMapOvr = getTextByPathList(slideContent, ['p:sld', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) clrMapOvr = sldClrMapOvr\r\n else {\r\n const sldClrMapOvr = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) clrMapOvr = sldClrMapOvr\r\n else clrMapOvr = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:clrMap', 'attrs'])\r\n }\r\n const sldBgClr = getSolidFill(sldFill, clrMapOvr, undefined, warpObj)\r\n background = sldBgClr\r\n }\r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgPr, undefined, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n else if (bgFillTyp === 'PIC_FILL') {\r\n background = await getBgPicFill(bgPr, 'slideBg', warpObj)\r\n backgroundType = 'image'\r\n }\r\n }\r\n else if (bgRef) {\r\n let clrMapOvr\r\n const sldClrMapOvr = getTextByPathList(slideContent, ['p:sld', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) clrMapOvr = sldClrMapOvr\r\n else {\r\n const sldClrMapOvr = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) clrMapOvr = sldClrMapOvr\r\n else clrMapOvr = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:clrMap', 'attrs'])\r\n }\r\n const phClr = getSolidFill(bgRef, clrMapOvr, undefined, warpObj)\r\n const idx = Number(bgRef['attrs']['idx'])\r\n\r\n if (idx > 1000) {\r\n const trueIdx = idx - 1000\r\n const bgFillLst = warpObj['themeContent']['a:theme']['a:themeElements']['a:fmtScheme']['a:bgFillStyleLst']\r\n const sortblAry = []\r\n Object.keys(bgFillLst).forEach(key => {\r\n const bgFillLstTyp = bgFillLst[key]\r\n if (key !== 'attrs') {\r\n if (bgFillLstTyp.constructor === Array) {\r\n for (let i = 0; i < bgFillLstTyp.length; i++) {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp[i]\r\n if (bgFillLstTyp[i]['attrs']) {\r\n obj['idex'] = bgFillLstTyp[i]['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp[i]['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n } \r\n else {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp\r\n if (bgFillLstTyp['attrs']) {\r\n obj['idex'] = bgFillLstTyp['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n }\r\n })\r\n const sortByOrder = sortblAry.slice(0)\r\n sortByOrder.sort((a, b) => a.idex - b.idex)\r\n const bgFillLstIdx = sortByOrder[trueIdx - 1]\r\n const bgFillTyp = getFillType(bgFillLstIdx)\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgFillLstIdx['a:solidFill']\r\n const sldBgClr = getSolidFill(sldFill, clrMapOvr, undefined, warpObj)\r\n background = sldBgClr\r\n } \r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgFillLstIdx, phClr, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n bgPr = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:cSld', 'p:bg', 'p:bgPr'])\r\n bgRef = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:cSld', 'p:bg', 'p:bgRef'])\r\n\r\n let clrMapOvr\r\n const sldClrMapOvr = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:clrMapOvr', 'a:overrideClrMapping', 'attrs'])\r\n if (sldClrMapOvr) clrMapOvr = sldClrMapOvr\r\n else clrMapOvr = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:clrMap', 'attrs'])\r\n\r\n if (bgPr) {\r\n const bgFillTyp = getFillType(bgPr)\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgPr['a:solidFill']\r\n const sldBgClr = getSolidFill(sldFill, clrMapOvr, undefined, warpObj)\r\n background = sldBgClr\r\n }\r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgPr, undefined, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n else if (bgFillTyp === 'PIC_FILL') {\r\n background = await getBgPicFill(bgPr, 'slideLayoutBg', warpObj)\r\n backgroundType = 'image'\r\n }\r\n }\r\n else if (bgRef) {\r\n const phClr = getSolidFill(bgRef, clrMapOvr, undefined, warpObj)\r\n const idx = Number(bgRef['attrs']['idx'])\r\n \r\n if (idx > 1000) {\r\n const trueIdx = idx - 1000\r\n const bgFillLst = warpObj['themeContent']['a:theme']['a:themeElements']['a:fmtScheme']['a:bgFillStyleLst']\r\n const sortblAry = []\r\n Object.keys(bgFillLst).forEach(key => {\r\n const bgFillLstTyp = bgFillLst[key]\r\n if (key !== 'attrs') {\r\n if (bgFillLstTyp.constructor === Array) {\r\n for (let i = 0; i < bgFillLstTyp.length; i++) {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp[i]\r\n if (bgFillLstTyp[i]['attrs']) {\r\n obj['idex'] = bgFillLstTyp[i]['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp[i]['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n } \r\n else {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp\r\n if (bgFillLstTyp['attrs']) {\r\n obj['idex'] = bgFillLstTyp['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n }\r\n })\r\n const sortByOrder = sortblAry.slice(0)\r\n sortByOrder.sort((a, b) => a.idex - b.idex)\r\n const bgFillLstIdx = sortByOrder[trueIdx - 1]\r\n const bgFillTyp = getFillType(bgFillLstIdx)\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgFillLstIdx['a:solidFill']\r\n const sldBgClr = getSolidFill(sldFill, clrMapOvr, undefined, warpObj)\r\n background = sldBgClr\r\n } \r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgFillLstIdx, phClr, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n else if (bgFillTyp === 'PIC_FILL') {\r\n background = await getBgPicFill(bgFillLstIdx, 'themeBg', warpObj)\r\n backgroundType = 'image'\r\n }\r\n }\r\n }\r\n else {\r\n bgPr = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:cSld', 'p:bg', 'p:bgPr'])\r\n bgRef = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:cSld', 'p:bg', 'p:bgRef'])\r\n\r\n const clrMap = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:clrMap', 'attrs'])\r\n if (bgPr) {\r\n const bgFillTyp = getFillType(bgPr)\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgPr['a:solidFill']\r\n const sldBgClr = getSolidFill(sldFill, clrMap, undefined, warpObj)\r\n background = sldBgClr\r\n }\r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgPr, undefined, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n else if (bgFillTyp === 'PIC_FILL') {\r\n background = await getBgPicFill(bgPr, 'slideMasterBg', warpObj)\r\n backgroundType = 'image'\r\n }\r\n }\r\n else if (bgRef) {\r\n const phClr = getSolidFill(bgRef, clrMap, undefined, warpObj)\r\n const idx = Number(bgRef['attrs']['idx'])\r\n \r\n if (idx > 1000) {\r\n const trueIdx = idx - 1000\r\n const bgFillLst = warpObj['themeContent']['a:theme']['a:themeElements']['a:fmtScheme']['a:bgFillStyleLst']\r\n const sortblAry = []\r\n Object.keys(bgFillLst).forEach(key => {\r\n const bgFillLstTyp = bgFillLst[key]\r\n if (key !== 'attrs') {\r\n if (bgFillLstTyp.constructor === Array) {\r\n for (let i = 0; i < bgFillLstTyp.length; i++) {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp[i]\r\n if (bgFillLstTyp[i]['attrs']) {\r\n obj['idex'] = bgFillLstTyp[i]['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp[i]['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n } \r\n else {\r\n const obj = {}\r\n obj[key] = bgFillLstTyp\r\n if (bgFillLstTyp['attrs']) {\r\n obj['idex'] = bgFillLstTyp['attrs']['order']\r\n obj['attrs'] = {\r\n 'order': bgFillLstTyp['attrs']['order']\r\n }\r\n }\r\n sortblAry.push(obj)\r\n }\r\n }\r\n })\r\n const sortByOrder = sortblAry.slice(0)\r\n sortByOrder.sort((a, b) => a.idex - b.idex)\r\n const bgFillLstIdx = sortByOrder[trueIdx - 1]\r\n const bgFillTyp = getFillType(bgFillLstIdx)\r\n if (bgFillTyp === 'SOLID_FILL') {\r\n const sldFill = bgFillLstIdx['a:solidFill']\r\n const sldBgClr = getSolidFill(sldFill, clrMapOvr, undefined, warpObj)\r\n background = sldBgClr\r\n } \r\n else if (bgFillTyp === 'GRADIENT_FILL') {\r\n const gradientFill = getBgGradientFill(bgFillLstIdx, phClr, slideMasterContent, warpObj)\r\n if (typeof gradientFill === 'string') {\r\n background = gradientFill\r\n }\r\n else if (gradientFill) {\r\n background = gradientFill\r\n backgroundType = 'gradient'\r\n }\r\n }\r\n else if (bgFillTyp === 'PIC_FILL') {\r\n background = await getBgPicFill(bgFillLstIdx, 'themeBg', warpObj)\r\n backgroundType = 'image'\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return {\r\n type: backgroundType,\r\n value: background,\r\n }\r\n}\r\n\r\nexport function getShapeFill(node, isSvgMode, warpObj) {\r\n if (getTextByPathList(node, ['p:spPr', 'a:noFill'])) {\r\n return isSvgMode ? 'none' : ''\r\n }\r\n\r\n let fillColor\r\n if (!fillColor) {\r\n fillColor = getTextByPathList(node, ['p:spPr', 'a:solidFill', 'a:srgbClr', 'attrs', 'val'])\r\n }\r\n\r\n if (!fillColor) {\r\n const schemeClr = 'a:' + getTextByPathList(node, ['p:spPr', 'a:solidFill', 'a:schemeClr', 'attrs', 'val'])\r\n fillColor = getSchemeColorFromTheme(schemeClr, warpObj)\r\n }\r\n\r\n if (!fillColor) {\r\n const schemeClr = 'a:' + getTextByPathList(node, ['p:style', 'a:fillRef', 'a:schemeClr', 'attrs', 'val'])\r\n fillColor = getSchemeColorFromTheme(schemeClr, warpObj)\r\n }\r\n\r\n if (fillColor) {\r\n fillColor = `#${fillColor}`\r\n\r\n let lumMod = parseInt(getTextByPathList(node, ['p:spPr', 'a:solidFill', 'a:schemeClr', 'a:lumMod', 'attrs', 'val'])) / 100000\r\n let lumOff = parseInt(getTextByPathList(node, ['p:spPr', 'a:solidFill', 'a:schemeClr', 'a:lumOff', 'attrs', 'val'])) / 100000\r\n if (isNaN(lumMod)) lumMod = 1.0\r\n if (isNaN(lumOff)) lumOff = 0\r\n\r\n const color = tinycolor(fillColor).toHsl()\r\n const lum = color.l * lumMod + lumOff\r\n return tinycolor({ h: color.h, s: color.s, l: lum, a: color.a }).toHexString()\r\n } \r\n\r\n if (isSvgMode) return 'none'\r\n return fillColor\r\n}\r\n\r\nexport function getSolidFill(solidFill, clrMap, phClr, warpObj) {\r\n if (!solidFill) return ''\r\n\r\n let color = ''\r\n let clrNode\r\n\r\n if (solidFill['a:srgbClr']) {\r\n clrNode = solidFill['a:srgbClr']\r\n color = getTextByPathList(clrNode, ['attrs', 'val'])\r\n } \r\n else if (solidFill['a:schemeClr']) {\r\n clrNode = solidFill['a:schemeClr']\r\n const schemeClr = 'a:' + getTextByPathList(clrNode, ['attrs', 'val'])\r\n color = getSchemeColorFromTheme(schemeClr, warpObj, clrMap, phClr) || ''\r\n }\r\n else if (solidFill['a:scrgbClr']) {\r\n clrNode = solidFill['a:scrgbClr']\r\n const defBultColorVals = clrNode['attrs']\r\n const red = (defBultColorVals['r'].indexOf('%') !== -1) ? defBultColorVals['r'].split('%').shift() : defBultColorVals['r']\r\n const green = (defBultColorVals['g'].indexOf('%') !== -1) ? defBultColorVals['g'].split('%').shift() : defBultColorVals['g']\r\n const blue = (defBultColorVals['b'].indexOf('%') !== -1) ? defBultColorVals['b'].split('%').shift() : defBultColorVals['b']\r\n color = toHex(255 * (Number(red) / 100)) + toHex(255 * (Number(green) / 100)) + toHex(255 * (Number(blue) / 100))\r\n } \r\n else if (solidFill['a:prstClr']) {\r\n clrNode = solidFill['a:prstClr']\r\n const prstClr = getTextByPathList(clrNode, ['attrs', 'val'])\r\n color = getColorName2Hex(prstClr)\r\n } \r\n else if (solidFill['a:hslClr']) {\r\n clrNode = solidFill['a:hslClr']\r\n const defBultColorVals = clrNode['attrs']\r\n const hue = Number(defBultColorVals['hue']) / 100000\r\n const sat = Number((defBultColorVals['sat'].indexOf('%') !== -1) ? defBultColorVals['sat'].split('%').shift() : defBultColorVals['sat']) / 100\r\n const lum = Number((defBultColorVals['lum'].indexOf('%') !== -1) ? defBultColorVals['lum'].split('%').shift() : defBultColorVals['lum']) / 100\r\n const hsl2rgb = hslToRgb(hue, sat, lum)\r\n color = toHex(hsl2rgb.r) + toHex(hsl2rgb.g) + toHex(hsl2rgb.b)\r\n } \r\n else if (solidFill['a:sysClr']) {\r\n clrNode = solidFill['a:sysClr']\r\n const sysClr = getTextByPathList(clrNode, ['attrs', 'lastClr'])\r\n if (sysClr) color = sysClr\r\n }\r\n\r\n let isAlpha = false\r\n const alpha = parseInt(getTextByPathList(clrNode, ['a:alpha', 'attrs', 'val'])) / 100000\r\n if (!isNaN(alpha)) {\r\n const al_color = tinycolor(color)\r\n al_color.setAlpha(alpha)\r\n color = al_color.toHex8()\r\n isAlpha = true\r\n }\r\n\r\n const hueMod = parseInt(getTextByPathList(clrNode, ['a:hueMod', 'attrs', 'val'])) / 100000\r\n if (!isNaN(hueMod)) {\r\n color = applyHueMod(color, hueMod, isAlpha)\r\n }\r\n const lumMod = parseInt(getTextByPathList(clrNode, ['a:lumMod', 'attrs', 'val'])) / 100000\r\n if (!isNaN(lumMod)) {\r\n color = applyLumMod(color, lumMod, isAlpha)\r\n }\r\n const lumOff = parseInt(getTextByPathList(clrNode, ['a:lumOff', 'attrs', 'val'])) / 100000\r\n if (!isNaN(lumOff)) {\r\n color = applyLumOff(color, lumOff, isAlpha)\r\n }\r\n const satMod = parseInt(getTextByPathList(clrNode, ['a:satMod', 'attrs', 'val'])) / 100000\r\n if (!isNaN(satMod)) {\r\n color = applySatMod(color, satMod, isAlpha)\r\n }\r\n const shade = parseInt(getTextByPathList(clrNode, ['a:shade', 'attrs', 'val'])) / 100000\r\n if (!isNaN(shade)) {\r\n color = applyShade(color, shade, isAlpha)\r\n }\r\n const tint = parseInt(getTextByPathList(clrNode, ['a:tint', 'attrs', 'val'])) / 100000\r\n if (!isNaN(tint)) {\r\n color = applyTint(color, tint, isAlpha)\r\n }\r\n\r\n if (color && color.indexOf('#') === -1) color = '#' + color\r\n\r\n return color\r\n}","import { eachElement, getTextByPathList } from './utils'\r\n\r\nfunction extractChartData(serNode) {\r\n const dataMat = []\r\n if (!serNode) return dataMat\r\n\r\n if (serNode['c:xVal']) {\r\n let dataRow = []\r\n eachElement(serNode['c:xVal']['c:numRef']['c:numCache']['c:pt'], innerNode => {\r\n dataRow.push(parseFloat(innerNode['c:v']))\r\n return ''\r\n })\r\n dataMat.push(dataRow)\r\n dataRow = []\r\n eachElement(serNode['c:yVal']['c:numRef']['c:numCache']['c:pt'], innerNode => {\r\n dataRow.push(parseFloat(innerNode['c:v']))\r\n return ''\r\n })\r\n dataMat.push(dataRow)\r\n } \r\n else {\r\n eachElement(serNode, (innerNode, index) => {\r\n const dataRow = []\r\n const colName = getTextByPathList(innerNode, ['c:tx', 'c:strRef', 'c:strCache', 'c:pt', 'c:v']) || index\r\n\r\n const rowNames = {}\r\n if (getTextByPathList(innerNode, ['c:cat', 'c:strRef', 'c:strCache', 'c:pt'])) {\r\n eachElement(innerNode['c:cat']['c:strRef']['c:strCache']['c:pt'], innerNode => {\r\n rowNames[innerNode['attrs']['idx']] = innerNode['c:v']\r\n return ''\r\n })\r\n } \r\n else if (getTextByPathList(innerNode, ['c:cat', 'c:numRef', 'c:numCache', 'c:pt'])) {\r\n eachElement(innerNode['c:cat']['c:numRef']['c:numCache']['c:pt'], innerNode => {\r\n rowNames[innerNode['attrs']['idx']] = innerNode['c:v']\r\n return ''\r\n })\r\n }\r\n\r\n if (getTextByPathList(innerNode, ['c:val', 'c:numRef', 'c:numCache', 'c:pt'])) {\r\n eachElement(innerNode['c:val']['c:numRef']['c:numCache']['c:pt'], innerNode => {\r\n dataRow.push({\r\n x: innerNode['attrs']['idx'],\r\n y: parseFloat(innerNode['c:v']),\r\n })\r\n return ''\r\n })\r\n }\r\n\r\n dataMat.push({\r\n key: colName,\r\n values: dataRow,\r\n xlabels: rowNames,\r\n })\r\n return ''\r\n })\r\n }\r\n\r\n return dataMat\r\n}\r\n\r\nexport function getChartInfo(plotArea) {\r\n let chart = null\r\n for (const key in plotArea) {\r\n switch (key) {\r\n case 'c:lineChart':\r\n chart = {\r\n type: 'lineChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n marker: plotArea[key]['c:marker'] ? true : false,\r\n }\r\n break\r\n case 'c:line3DChart':\r\n chart = {\r\n type: 'line3DChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:barChart':\r\n chart = {\r\n type: 'barChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n barDir: getTextByPathList(plotArea[key], ['c:barDir', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:bar3DChart':\r\n chart = {\r\n type: 'bar3DChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n barDir: getTextByPathList(plotArea[key], ['c:barDir', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:pieChart':\r\n chart = {\r\n type: 'pieChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n case 'c:pie3DChart':\r\n chart = {\r\n type: 'pie3DChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n case 'c:doughnutChart':\r\n chart = {\r\n type: 'doughnutChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n holeSize: getTextByPathList(plotArea[key], ['c:holeSize', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:areaChart':\r\n chart = {\r\n type: 'areaChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:area3DChart':\r\n chart = {\r\n type: 'area3DChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n grouping: getTextByPathList(plotArea[key], ['c:grouping', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:scatterChart':\r\n chart = {\r\n type: 'scatterChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n style: getTextByPathList(plotArea[key], ['c:scatterStyle', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:bubbleChart':\r\n chart = {\r\n type: 'bubbleChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n case 'c:radarChart':\r\n chart = {\r\n type: 'radarChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n style: getTextByPathList(plotArea[key], ['c:radarStyle', 'attrs', 'val']),\r\n }\r\n break\r\n case 'c:surfaceChart':\r\n chart = {\r\n type: 'surfaceChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n case 'c:surface3DChart':\r\n chart = {\r\n type: 'surface3DChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n case 'c:stockChart':\r\n chart = {\r\n type: 'stockChart',\r\n data: extractChartData(plotArea[key]['c:ser']),\r\n }\r\n break\r\n default:\r\n }\r\n }\r\n\r\n return chart\r\n}","import { getTextByPathList } from './utils'\r\n\r\nexport function getHorizontalAlign(node, pNode, type, warpObj) {\r\n let algn = getTextByPathList(node, ['a:pPr', 'attrs', 'algn'])\r\n if (!algn) algn = getTextByPathList(pNode, ['a:pPr', 'attrs', 'algn'])\r\n\r\n if (!algn) {\r\n if (type === 'title' || type === 'ctrTitle' || type === 'subTitle') {\r\n let lvlIdx = 1\r\n const lvlNode = getTextByPathList(pNode, ['a:pPr', 'attrs', 'lvl'])\r\n if (lvlNode) {\r\n lvlIdx = parseInt(lvlNode) + 1\r\n }\r\n const lvlStr = 'a:lvl' + lvlIdx + 'pPr'\r\n algn = getTextByPathList(warpObj, ['slideLayoutTables', 'typeTable', type, 'p:txBody', 'a:lstStyle', lvlStr, 'attrs', 'algn'])\r\n if (!algn) algn = getTextByPathList(warpObj, ['slideMasterTables', 'typeTable', type, 'p:txBody', 'a:lstStyle', lvlStr, 'attrs', 'algn'])\r\n if (!algn) algn = getTextByPathList(warpObj, ['slideMasterTextStyles', 'p:titleStyle', lvlStr, 'attrs', 'algn'])\r\n if (!algn && type === 'subTitle') {\r\n algn = getTextByPathList(warpObj, ['slideMasterTextStyles', 'p:bodyStyle', lvlStr, 'attrs', 'algn'])\r\n }\r\n } \r\n else if (type === 'body') {\r\n algn = getTextByPathList(warpObj, ['slideMasterTextStyles', 'p:bodyStyle', 'a:lvl1pPr', 'attrs', 'algn'])\r\n } \r\n else {\r\n algn = getTextByPathList(warpObj, ['slideMasterTables', 'typeTable', type, 'p:txBody', 'a:lstStyle', 'a:lvl1pPr', 'attrs', 'algn'])\r\n }\r\n }\r\n\r\n let align = 'left'\r\n if (algn) {\r\n switch (algn) {\r\n case 'l':\r\n align = 'left'\r\n break\r\n case 'r':\r\n align = 'right'\r\n break\r\n case 'ctr':\r\n align = 'center'\r\n break\r\n case 'just':\r\n align = 'justify'\r\n break\r\n case 'dist':\r\n align = 'justify'\r\n break\r\n default:\r\n align = 'inherit'\r\n }\r\n }\r\n return align\r\n}\r\n\r\nexport function getVerticalAlign(node, slideLayoutSpNode, slideMasterSpNode) {\r\n let anchor = getTextByPathList(node, ['p:txBody', 'a:bodyPr', 'attrs', 'anchor'])\r\n if (!anchor) {\r\n anchor = getTextByPathList(slideLayoutSpNode, ['p:txBody', 'a:bodyPr', 'attrs', 'anchor'])\r\n if (!anchor) {\r\n anchor = getTextByPathList(slideMasterSpNode, ['p:txBody', 'a:bodyPr', 'attrs', 'anchor'])\r\n if (!anchor) anchor = 't'\r\n }\r\n }\r\n return (anchor === 'ctr') ? 'mid' : ((anchor === 'b') ? 'down' : 'up')\r\n}","export const RATIO_Inches_EMUs = 914400 // 1英寸 = 914400EMUs\r\nexport const RATIO_Inches_Points = 72 // 1英寸 = 72pt\r\nexport const RATIO_EMUs_Points = RATIO_Inches_Points / RATIO_Inches_EMUs // 1EMUs = (72 / 914400)pt","import { RATIO_EMUs_Points } from './constants'\r\n\r\nexport function getPosition(slideSpNode, slideLayoutSpNode, slideMasterSpNode) {\r\n let off\r\n\r\n if (slideSpNode) off = slideSpNode['a:off']['attrs']\r\n else if (slideLayoutSpNode) off = slideLayoutSpNode['a:off']['attrs']\r\n else if (slideMasterSpNode) off = slideMasterSpNode['a:off']['attrs']\r\n\r\n if (!off) return { top: 0, left: 0 }\r\n\r\n return {\r\n top: parseInt(off['y']) * RATIO_EMUs_Points,\r\n left: parseInt(off['x']) * RATIO_EMUs_Points,\r\n }\r\n}\r\n\r\nexport function getSize(slideSpNode, slideLayoutSpNode, slideMasterSpNode) {\r\n let ext\r\n\r\n if (slideSpNode) ext = slideSpNode['a:ext']['attrs']\r\n else if (slideLayoutSpNode) ext = slideLayoutSpNode['a:ext']['attrs']\r\n else if (slideMasterSpNode) ext = slideMasterSpNode['a:ext']['attrs']\r\n\r\n if (!ext) return { width: 0, height: 0 }\r\n\r\n return {\r\n width: parseInt(ext['cx']) * RATIO_EMUs_Points,\r\n height: parseInt(ext['cy']) * RATIO_EMUs_Points,\r\n }\r\n}","import { getSolidFill } from './fill'\r\nimport { RATIO_EMUs_Points } from './constants'\r\n\r\nexport function getShadow(node, warpObj) {\r\n const chdwClrNode = getSolidFill(node, undefined, undefined, warpObj)\r\n const outerShdwAttrs = node['attrs']\r\n const dir = outerShdwAttrs['dir'] ? (parseInt(outerShdwAttrs['dir']) / 60000) : 0\r\n const dist = parseInt(outerShdwAttrs['dist']) * RATIO_EMUs_Points\r\n const blurRad = outerShdwAttrs['blurRad'] ? parseInt(outerShdwAttrs['blurRad']) * RATIO_EMUs_Points : ''\r\n const vx = dist * Math.sin(dir * Math.PI / 180)\r\n const hx = dist * Math.cos(dir * Math.PI / 180)\r\n\r\n return {\r\n h: hx,\r\n v: vx,\r\n blur: blurRad,\r\n color: chdwClrNode,\r\n }\r\n}","import { getHorizontalAlign } from './align'\r\nimport { getTextByPathList } from './utils'\r\n\r\nimport {\r\n getFontType,\r\n getFontColor,\r\n getFontSize,\r\n getFontBold,\r\n getFontItalic,\r\n getFontDecoration,\r\n getFontDecorationLine,\r\n getFontSpace,\r\n getFontSubscript,\r\n getFontShadow,\r\n} from './fontStyle'\r\n\r\nexport function genTextBody(textBodyNode, spNode, slideLayoutSpNode, type, warpObj) {\r\n if (!textBodyNode) return ''\r\n\r\n let text = ''\r\n\r\n const pFontStyle = getTextByPathList(spNode, ['p:style', 'a:fontRef'])\r\n\r\n const pNode = textBodyNode['a:p']\r\n const pNodes = pNode.constructor === Array ? pNode : [pNode]\r\n\r\n let isList = ''\r\n\r\n for (const pNode of pNodes) {\r\n let rNode = pNode['a:r']\r\n let fldNode = pNode['a:fld']\r\n let brNode = pNode['a:br']\r\n if (rNode) {\r\n rNode = (rNode.constructor === Array) ? rNode : [rNode]\r\n\r\n if (fldNode) {\r\n fldNode = (fldNode.constructor === Array) ? fldNode : [fldNode]\r\n rNode = rNode.concat(fldNode)\r\n }\r\n if (brNode) {\r\n brNode = (brNode.constructor === Array) ? brNode : [brNode]\r\n brNode.forEach(item => item.type = 'br')\r\n \r\n if (brNode.length > 1) brNode.shift()\r\n rNode = rNode.concat(brNode)\r\n rNode.sort((a, b) => {\r\n if (!a.attrs || !b.attrs) return true\r\n return a.attrs.order - b.attrs.order\r\n })\r\n }\r\n }\r\n\r\n const align = getHorizontalAlign(pNode, spNode, type, warpObj)\r\n\r\n const listType = getListType(pNode)\r\n if (listType) {\r\n if (!isList) {\r\n text += `<${listType}>`\r\n isList = listType\r\n }\r\n else if (isList && isList !== listType) {\r\n text += ``\r\n text += `<${listType}>`\r\n isList = listType\r\n }\r\n text += `
  • `\r\n }\r\n else {\r\n if (isList) {\r\n text += ``\r\n isList = ''\r\n }\r\n text += `

    `\r\n }\r\n \r\n if (!rNode) text += genSpanElement(pNode, spNode, textBodyNode, pFontStyle, slideLayoutSpNode, type, warpObj)\r\n else {\r\n for (const rNodeItem of rNode) {\r\n text += genSpanElement(rNodeItem, pNode, textBodyNode, pFontStyle, slideLayoutSpNode, type, warpObj)\r\n }\r\n }\r\n\r\n if (listType) text += '

  • '\r\n else text += '

    '\r\n }\r\n return text\r\n}\r\n\r\nexport function getListType(node) {\r\n const pPrNode = node['a:pPr']\r\n if (!pPrNode) return ''\r\n\r\n if (pPrNode['a:buChar']) return 'ul'\r\n if (pPrNode['a:buAutoNum']) return 'ol'\r\n \r\n return ''\r\n}\r\n\r\nexport function genSpanElement(node, pNode, textBodyNode, pFontStyle, slideLayoutSpNode, type, warpObj) {\r\n const lstStyle = textBodyNode['a:lstStyle']\r\n const slideMasterTextStyles = warpObj['slideMasterTextStyles']\r\n\r\n let lvl = 1\r\n const pPrNode = pNode['a:pPr']\r\n const lvlNode = getTextByPathList(pPrNode, ['attrs', 'lvl'])\r\n if (lvlNode !== undefined) lvl = parseInt(lvlNode) + 1\r\n\r\n let text = node['a:t']\r\n if (typeof text !== 'string') text = getTextByPathList(node, ['a:fld', 'a:t'])\r\n if (typeof text !== 'string') text = ' '\r\n\r\n let styleText = ''\r\n const fontColor = getFontColor(node, pNode, lstStyle, pFontStyle, lvl, warpObj)\r\n const fontSize = getFontSize(node, slideLayoutSpNode, type, slideMasterTextStyles)\r\n const fontType = getFontType(node, type, warpObj)\r\n const fontBold = getFontBold(node)\r\n const fontItalic = getFontItalic(node)\r\n const fontDecoration = getFontDecoration(node)\r\n const fontDecorationLine = getFontDecorationLine(node)\r\n const fontSpace = getFontSpace(node)\r\n const shadow = getFontShadow(node, warpObj)\r\n const subscript = getFontSubscript(node)\r\n\r\n if (fontColor) styleText += `color: ${fontColor};`\r\n if (fontSize) styleText += `font-size: ${fontSize};`\r\n if (fontType) styleText += `font-family: ${fontType};`\r\n if (fontBold) styleText += `font-weight: ${fontBold};`\r\n if (fontItalic) styleText += `font-style: ${fontItalic};`\r\n if (fontDecoration) styleText += `text-decoration: ${fontDecoration};`\r\n if (fontDecorationLine) styleText += `text-decoration-line: ${fontDecorationLine};`\r\n if (fontSpace) styleText += `letter-spacing: ${fontSpace};`\r\n if (subscript) styleText += `vertical-align: ${subscript};`\r\n if (shadow) styleText += `text-shadow: ${shadow};`\r\n\r\n const linkID = getTextByPathList(node, ['a:rPr', 'a:hlinkClick', 'attrs', 'r:id'])\r\n if (linkID) {\r\n const linkURL = warpObj['slideResObj'][linkID]['target']\r\n return `${text.replace(/\\t/g, '    ').replace(/\\s/g, ' ')}`\r\n } \r\n return `${text.replace(/\\t/g, '    ').replace(/\\s/g, ' ')}`\r\n}","import { getTextByPathList } from './utils'\r\nimport { getShadow } from './shadow'\r\nimport { getFillType, getSolidFill } from './fill'\r\n\r\nexport function getFontType(node, type, warpObj) {\r\n let typeface = getTextByPathList(node, ['a:rPr', 'a:latin', 'attrs', 'typeface'])\r\n\r\n if (!typeface) {\r\n const fontSchemeNode = getTextByPathList(warpObj['themeContent'], ['a:theme', 'a:themeElements', 'a:fontScheme'])\r\n\r\n if (type === 'title' || type === 'subTitle' || type === 'ctrTitle') {\r\n typeface = getTextByPathList(fontSchemeNode, ['a:majorFont', 'a:latin', 'attrs', 'typeface'])\r\n } \r\n else if (type === 'body') {\r\n typeface = getTextByPathList(fontSchemeNode, ['a:minorFont', 'a:latin', 'attrs', 'typeface'])\r\n } \r\n else {\r\n typeface = getTextByPathList(fontSchemeNode, ['a:minorFont', 'a:latin', 'attrs', 'typeface'])\r\n }\r\n }\r\n\r\n return typeface || ''\r\n}\r\n\r\nexport function getFontColor(node, pNode, lstStyle, pFontStyle, lvl, warpObj) {\r\n const rPrNode = getTextByPathList(node, ['a:rPr'])\r\n let filTyp, color\r\n if (rPrNode) {\r\n filTyp = getFillType(rPrNode)\r\n if (filTyp === 'SOLID_FILL') {\r\n const solidFillNode = rPrNode['a:solidFill']\r\n color = getSolidFill(solidFillNode, undefined, undefined, warpObj)\r\n }\r\n }\r\n if (!color && getTextByPathList(lstStyle, ['a:lvl' + lvl + 'pPr', 'a:defRPr'])) {\r\n const lstStyledefRPr = getTextByPathList(lstStyle, ['a:lvl' + lvl + 'pPr', 'a:defRPr'])\r\n filTyp = getFillType(lstStyledefRPr)\r\n if (filTyp === 'SOLID_FILL') {\r\n const solidFillNode = lstStyledefRPr['a:solidFill']\r\n color = getSolidFill(solidFillNode, undefined, undefined, warpObj)\r\n }\r\n }\r\n if (!color) {\r\n const sPstyle = getTextByPathList(pNode, ['p:style', 'a:fontRef'])\r\n if (sPstyle) color = getSolidFill(sPstyle, undefined, undefined, warpObj)\r\n if (!color && pFontStyle) color = getSolidFill(pFontStyle, undefined, undefined, warpObj)\r\n }\r\n return color || ''\r\n}\r\n\r\nexport function getFontSize(node, slideLayoutSpNode, type, slideMasterTextStyles) {\r\n let fontSize\r\n\r\n if (getTextByPathList(node, ['a:rPr', 'attrs', 'sz'])) fontSize = getTextByPathList(node, ['a:rPr', 'attrs', 'sz']) / 100\r\n\r\n if ((isNaN(fontSize) || !fontSize)) {\r\n const sz = getTextByPathList(slideLayoutSpNode, ['p:txBody', 'a:lstStyle', 'a:lvl1pPr', 'a:defRPr', 'attrs', 'sz'])\r\n fontSize = parseInt(sz) / 100\r\n }\r\n\r\n if (isNaN(fontSize) || !fontSize) {\r\n let sz\r\n if (type === 'title' || type === 'subTitle' || type === 'ctrTitle') {\r\n sz = getTextByPathList(slideMasterTextStyles, ['p:titleStyle', 'a:lvl1pPr', 'a:defRPr', 'attrs', 'sz'])\r\n } \r\n else if (type === 'body') {\r\n sz = getTextByPathList(slideMasterTextStyles, ['p:bodyStyle', 'a:lvl1pPr', 'a:defRPr', 'attrs', 'sz'])\r\n } \r\n else if (type === 'dt' || type === 'sldNum') {\r\n sz = '1200'\r\n } \r\n else if (!type) {\r\n sz = getTextByPathList(slideMasterTextStyles, ['p:otherStyle', 'a:lvl1pPr', 'a:defRPr', 'attrs', 'sz'])\r\n }\r\n if (sz) fontSize = parseInt(sz) / 100\r\n }\r\n\r\n const baseline = getTextByPathList(node, ['a:rPr', 'attrs', 'baseline'])\r\n if (baseline && !isNaN(fontSize)) fontSize -= 10\r\n\r\n fontSize = (isNaN(fontSize) || !fontSize) ? 18 : fontSize\r\n\r\n return fontSize + 'pt'\r\n}\r\n\r\nexport function getFontBold(node) {\r\n return getTextByPathList(node, ['a:rPr', 'attrs', 'b']) === '1' ? 'bold' : ''\r\n}\r\n\r\nexport function getFontItalic(node) {\r\n return getTextByPathList(node, ['a:rPr', 'attrs', 'i']) === '1' ? 'italic' : ''\r\n}\r\n\r\nexport function getFontDecoration(node) {\r\n return getTextByPathList(node, ['a:rPr', 'attrs', 'u']) === 'sng' ? 'underline' : ''\r\n}\r\n\r\nexport function getFontDecorationLine(node) {\r\n return getTextByPathList(node, ['a:rPr', 'attrs', 'strike']) === 'sngStrike' ? 'line-through' : ''\r\n}\r\n\r\nexport function getFontSpace(node) {\r\n const spc = getTextByPathList(node, ['a:rPr', 'attrs', 'spc'])\r\n return spc ? (parseInt(spc) / 100 + 'pt') : ''\r\n}\r\n\r\nexport function getFontSubscript(node) {\r\n const baseline = getTextByPathList(node, ['a:rPr', 'attrs', 'baseline'])\r\n if (!baseline) return ''\r\n return parseInt(baseline) > 0 ? 'super' : 'sub'\r\n}\r\n\r\nexport function getFontShadow(node, warpObj) {\r\n const txtShadow = getTextByPathList(node, ['a:rPr', 'a:effectLst', 'a:outerShdw'])\r\n if (txtShadow) {\r\n const shadow = getShadow(txtShadow, warpObj)\r\n if (shadow) {\r\n const { h, v, blur, color } = shadow\r\n if (!isNaN(v) && !isNaN(h)) {\r\n return h + 'pt ' + v + 'pt ' + (blur ? blur + 'pt' : '') + ' ' + color\r\n }\r\n }\r\n }\r\n return ''\r\n}","import { getTextByPathList } from './utils'\r\n\r\nexport function shapeArc(cX, cY, rX, rY, stAng, endAng, isClose) {\r\n let dData\r\n let angle = stAng\r\n if (endAng >= stAng) {\r\n while (angle <= endAng) {\r\n const radians = angle * (Math.PI / 180)\r\n const x = cX + Math.cos(radians) * rX\r\n const y = cY + Math.sin(radians) * rY\r\n if (angle === stAng) {\r\n dData = ' M' + x + ' ' + y\r\n }\r\n dData += ' L' + x + ' ' + y\r\n angle++\r\n }\r\n } \r\n else {\r\n while (angle > endAng) {\r\n const radians = angle * (Math.PI / 180)\r\n const x = cX + Math.cos(radians) * rX\r\n const y = cY + Math.sin(radians) * rY\r\n if (angle === stAng) {\r\n dData = ' M ' + x + ' ' + y\r\n }\r\n dData += ' L ' + x + ' ' + y\r\n angle--\r\n }\r\n }\r\n dData += (isClose ? ' z' : '')\r\n return dData\r\n}\r\n\r\nexport function getCustomShapePath(custShapType, w, h) {\r\n const pathLstNode = getTextByPathList(custShapType, ['a:pathLst'])\r\n let pathNodes = getTextByPathList(pathLstNode, ['a:path'])\r\n\r\n if (Array.isArray(pathNodes)) pathNodes = pathNodes.pop()\r\n\r\n const maxX = parseInt(pathNodes['attrs']['w'])\r\n const maxY = parseInt(pathNodes['attrs']['h'])\r\n const cX = maxX === 0 ? 0 : (1 / maxX) * w\r\n const cY = maxY === 0 ? 0 : (1 / maxY) * h\r\n let d = ''\r\n\r\n let moveToNode = getTextByPathList(pathNodes, ['a:moveTo'])\r\n\r\n const lnToNodes = pathNodes['a:lnTo']\r\n let cubicBezToNodes = pathNodes['a:cubicBezTo']\r\n const arcToNodes = pathNodes['a:arcTo']\r\n let closeNode = getTextByPathList(pathNodes, ['a:close'])\r\n if (!Array.isArray(moveToNode)) moveToNode = [moveToNode]\r\n\r\n const multiSapeAry = []\r\n if (moveToNode.length > 0) {\r\n Object.keys(moveToNode).forEach(key => {\r\n const moveToPtNode = moveToNode[key]['a:pt']\r\n if (moveToPtNode) {\r\n Object.keys(moveToPtNode).forEach(key => {\r\n const moveToNoPt = moveToPtNode[key]\r\n const spX = moveToNoPt['attrs', 'x']\r\n const spY = moveToNoPt['attrs', 'y']\r\n const order = moveToNoPt['attrs', 'order']\r\n multiSapeAry.push({\r\n type: 'movto',\r\n x: spX,\r\n y: spY,\r\n order,\r\n })\r\n })\r\n }\r\n })\r\n if (lnToNodes) {\r\n Object.keys(lnToNodes).forEach(key => {\r\n const lnToPtNode = lnToNodes[key]['a:pt']\r\n if (lnToPtNode) {\r\n Object.keys(lnToPtNode).forEach(key => {\r\n const lnToNoPt = lnToPtNode[key]\r\n const ptX = lnToNoPt['attrs', 'x']\r\n const ptY = lnToNoPt['attrs', 'y']\r\n const order = lnToNoPt['attrs', 'order']\r\n multiSapeAry.push({\r\n type: 'lnto',\r\n x: ptX,\r\n y: ptY,\r\n order,\r\n })\r\n })\r\n }\r\n })\r\n }\r\n if (cubicBezToNodes) {\r\n const cubicBezToPtNodesAry = []\r\n if (!Array.isArray(cubicBezToNodes)) {\r\n cubicBezToNodes = [cubicBezToNodes]\r\n }\r\n Object.keys(cubicBezToNodes).forEach(key => {\r\n cubicBezToPtNodesAry.push(cubicBezToNodes[key]['a:pt'])\r\n })\r\n\r\n cubicBezToPtNodesAry.forEach(key => {\r\n const pts_ary = []\r\n key.forEach(pt => {\r\n const pt_obj = {\r\n x: pt['attrs']['x'],\r\n y: pt['attrs']['y'],\r\n }\r\n pts_ary.push(pt_obj)\r\n })\r\n const order = key[0]['attrs']['order']\r\n multiSapeAry.push({\r\n type: 'cubicBezTo',\r\n cubBzPt: pts_ary,\r\n order,\r\n })\r\n })\r\n }\r\n if (arcToNodes) {\r\n const arcToNodesAttrs = arcToNodes['attrs']\r\n const order = arcToNodesAttrs['order']\r\n const hR = arcToNodesAttrs['hR']\r\n const wR = arcToNodesAttrs['wR']\r\n const stAng = arcToNodesAttrs['stAng']\r\n const swAng = arcToNodesAttrs['swAng']\r\n let shftX = 0\r\n let shftY = 0\r\n const arcToPtNode = getTextByPathList(arcToNodes, ['a:pt', 'attrs'])\r\n if (arcToPtNode) {\r\n shftX = arcToPtNode['x']\r\n shftY = arcToPtNode['y']\r\n }\r\n multiSapeAry.push({\r\n type: 'arcTo',\r\n hR: hR,\r\n wR: wR,\r\n stAng: stAng,\r\n swAng: swAng,\r\n shftX: shftX,\r\n shftY: shftY,\r\n order,\r\n })\r\n }\r\n if (closeNode) {\r\n if (!Array.isArray(closeNode)) closeNode = [closeNode]\r\n Object.keys(closeNode).forEach(() => {\r\n multiSapeAry.push({\r\n type: 'close',\r\n order: Infinity,\r\n })\r\n })\r\n }\r\n\r\n multiSapeAry.sort((a, b) => a.order - b.order)\r\n\r\n let k = 0\r\n while (k < multiSapeAry.length) {\r\n if (multiSapeAry[k].type === 'movto') {\r\n const spX = parseInt(multiSapeAry[k].x) * cX\r\n const spY = parseInt(multiSapeAry[k].y) * cY\r\n d += ' M' + spX + ',' + spY\r\n } \r\n else if (multiSapeAry[k].type === 'lnto') {\r\n const Lx = parseInt(multiSapeAry[k].x) * cX\r\n const Ly = parseInt(multiSapeAry[k].y) * cY\r\n d += ' L' + Lx + ',' + Ly\r\n } \r\n else if (multiSapeAry[k].type === 'cubicBezTo') {\r\n const Cx1 = parseInt(multiSapeAry[k].cubBzPt[0].x) * cX\r\n const Cy1 = parseInt(multiSapeAry[k].cubBzPt[0].y) * cY\r\n const Cx2 = parseInt(multiSapeAry[k].cubBzPt[1].x) * cX\r\n const Cy2 = parseInt(multiSapeAry[k].cubBzPt[1].y) * cY\r\n const Cx3 = parseInt(multiSapeAry[k].cubBzPt[2].x) * cX\r\n const Cy3 = parseInt(multiSapeAry[k].cubBzPt[2].y) * cY\r\n d += ' C' + Cx1 + ',' + Cy1 + ' ' + Cx2 + ',' + Cy2 + ' ' + Cx3 + ',' + Cy3\r\n } \r\n else if (multiSapeAry[k].type === 'arcTo') {\r\n const hR = parseInt(multiSapeAry[k].hR) * cX\r\n const wR = parseInt(multiSapeAry[k].wR) * cY\r\n const stAng = parseInt(multiSapeAry[k].stAng) / 60000\r\n const swAng = parseInt(multiSapeAry[k].swAng) / 60000\r\n const endAng = stAng + swAng\r\n d += shapeArc(wR, hR, wR, hR, stAng, endAng, false)\r\n }\r\n else if (multiSapeAry[k].type === 'close') d += 'z'\r\n k++\r\n }\r\n }\r\n\r\n return d\r\n}","import { getShapeFill, getSolidFill } from './fill'\r\nimport { getTextByPathList } from './utils'\r\nimport { getBorder } from './border'\r\n\r\nexport function getTableBorders(node, warpObj) {\r\n const borderStyles = {}\r\n if (node['a:bottom']) {\r\n const obj = {\r\n 'p:spPr': {\r\n 'a:ln': node['a:bottom']['a:ln']\r\n }\r\n }\r\n const border = getBorder(obj, undefined, warpObj)\r\n borderStyles.bottom = border\r\n }\r\n if (node['a:top']) {\r\n const obj = {\r\n 'p:spPr': {\r\n 'a:ln': node['a:top']['a:ln']\r\n }\r\n }\r\n const border = getBorder(obj, undefined, warpObj)\r\n borderStyles.top = border\r\n }\r\n if (node['a:right']) {\r\n const obj = {\r\n 'p:spPr': {\r\n 'a:ln': node['a:right']['a:ln']\r\n }\r\n }\r\n const border = getBorder(obj, undefined, warpObj)\r\n borderStyles.right = border\r\n }\r\n if (node['a:left']) {\r\n const obj = {\r\n 'p:spPr': {\r\n 'a:ln': node['a:left']['a:ln']\r\n }\r\n }\r\n const border = getBorder(obj, undefined, warpObj)\r\n borderStyles.left = border\r\n }\r\n return borderStyles\r\n}\r\n\r\nexport function getTableCellParams(tcNode, thisTblStyle, cellSource, warpObj) {\r\n const rowSpan = getTextByPathList(tcNode, ['attrs', 'rowSpan'])\r\n const colSpan = getTextByPathList(tcNode, ['attrs', 'gridSpan'])\r\n const vMerge = getTextByPathList(tcNode, ['attrs', 'vMerge'])\r\n const hMerge = getTextByPathList(tcNode, ['attrs', 'hMerge'])\r\n let fillColor\r\n let fontColor\r\n let fontBold\r\n\r\n const getCelFill = getTextByPathList(tcNode, ['a:tcPr'])\r\n if (getCelFill) {\r\n const cellObj = { 'p:spPr': getCelFill }\r\n fillColor = getShapeFill(cellObj, undefined, warpObj)\r\n }\r\n if (!fillColor) {\r\n let bgFillschemeClr\r\n if (cellSource) bgFillschemeClr = getTextByPathList(thisTblStyle, [cellSource, 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n }\r\n }\r\n\r\n let rowTxtStyl\r\n if (cellSource) rowTxtStyl = getTextByPathList(thisTblStyle, [cellSource, 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n\r\n return {\r\n fillColor,\r\n fontColor,\r\n fontBold,\r\n rowSpan: rowSpan ? +rowSpan : undefined,\r\n colSpan: colSpan ? +colSpan : undefined,\r\n vMerge: vMerge ? +vMerge : undefined,\r\n hMerge: hMerge ? +hMerge : undefined,\r\n }\r\n}\r\n\r\nexport function getTableRowParams(trNodes, i, tblStylAttrObj, thisTblStyle, warpObj) {\r\n let fillColor\r\n let fontColor\r\n let fontBold\r\n\r\n if (thisTblStyle && thisTblStyle['a:wholeTbl']) {\r\n const bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:wholeTbl', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n const local_fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n if (local_fillColor) fillColor = local_fillColor\r\n }\r\n const rowTxtStyl = getTextByPathList(thisTblStyle, ['a:wholeTbl', 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n const local_fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (local_fontColor) fontColor = local_fontColor\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n }\r\n if (i === 0 && tblStylAttrObj['isFrstRowAttr'] === 1 && thisTblStyle) {\r\n const bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:firstRow', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n const local_fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n if (local_fillColor) fillColor = local_fillColor\r\n }\r\n const rowTxtStyl = getTextByPathList(thisTblStyle, ['a:firstRow', 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n const local_fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (local_fontColor) fontColor = local_fontColor\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n }\r\n else if (i > 0 && tblStylAttrObj['isBandRowAttr'] === 1 && thisTblStyle) {\r\n fillColor = ''\r\n if ((i % 2) === 0 && thisTblStyle['a:band2H']) {\r\n const bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:band2H', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n const local_fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n if (local_fillColor) fillColor = local_fillColor\r\n }\r\n const rowTxtStyl = getTextByPathList(thisTblStyle, ['a:band2H', 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n const local_fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (local_fontColor) fontColor = local_fontColor\r\n }\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n if ((i % 2) !== 0 && thisTblStyle['a:band1H']) {\r\n const bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:band1H', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n const local_fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n if (local_fillColor) fillColor = local_fillColor\r\n }\r\n const rowTxtStyl = getTextByPathList(thisTblStyle, ['a:band1H', 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n const local_fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (local_fontColor) fontColor = local_fontColor\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n }\r\n }\r\n if (i === (trNodes.length - 1) && tblStylAttrObj['isLstRowAttr'] === 1 && thisTblStyle) {\r\n const bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:lastRow', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n if (bgFillschemeClr) {\r\n const local_fillColor = getSolidFill(bgFillschemeClr, undefined, undefined, warpObj)\r\n if (local_fillColor) {\r\n fillColor = local_fillColor\r\n }\r\n }\r\n const rowTxtStyl = getTextByPathList(thisTblStyle, ['a:lastRow', 'a:tcTxStyle'])\r\n if (rowTxtStyl) {\r\n const local_fontColor = getSolidFill(rowTxtStyl, undefined, undefined, warpObj)\r\n if (local_fontColor) fontColor = local_fontColor\r\n if (getTextByPathList(rowTxtStyl, ['attrs', 'b']) === 'on') fontBold = true\r\n }\r\n }\r\n\r\n return {\r\n fillColor,\r\n fontColor,\r\n fontBold,\r\n }\r\n}","import JSZip from 'jszip'\r\nimport { readXmlFile } from './readXmlFile'\r\nimport { getBorder } from './border'\r\nimport { getSlideBackgroundFill, getShapeFill, getSolidFill } from './fill'\r\nimport { getChartInfo } from './chart'\r\nimport { getVerticalAlign } from './align'\r\nimport { getPosition, getSize } from './position'\r\nimport { genTextBody } from './text'\r\nimport { getCustomShapePath } from './shape'\r\nimport { extractFileExtension, base64ArrayBuffer, getTextByPathList, angleToDegrees, getMimeType, isVideoLink, escapeHtml } from './utils'\r\nimport { getShadow } from './shadow'\r\nimport { getTableBorders, getTableCellParams, getTableRowParams } from './table'\r\nimport { RATIO_EMUs_Points } from './constants'\r\n\r\nexport async function parse(file) {\r\n const slides = []\r\n \r\n const zip = await JSZip.loadAsync(file)\r\n\r\n const filesInfo = await getContentTypes(zip)\r\n const { width, height, defaultTextStyle } = await getSlideInfo(zip)\r\n const themeContent = await loadTheme(zip)\r\n\r\n for (const filename of filesInfo.slides) {\r\n const singleSlide = await processSingleSlide(zip, filename, themeContent, defaultTextStyle)\r\n slides.push(singleSlide)\r\n }\r\n\r\n return {\r\n slides,\r\n size: {\r\n width,\r\n height,\r\n },\r\n }\r\n}\r\n\r\nasync function getContentTypes(zip) {\r\n const ContentTypesJson = await readXmlFile(zip, '[Content_Types].xml')\r\n const subObj = ContentTypesJson['Types']['Override']\r\n let slidesLocArray = []\r\n let slideLayoutsLocArray = []\r\n\r\n for (const item of subObj) {\r\n switch (item['attrs']['ContentType']) {\r\n case 'application/vnd.openxmlformats-officedocument.presentationml.slide+xml':\r\n slidesLocArray.push(item['attrs']['PartName'].substr(1))\r\n break\r\n case 'application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml':\r\n slideLayoutsLocArray.push(item['attrs']['PartName'].substr(1))\r\n break\r\n default:\r\n }\r\n }\r\n \r\n const sortSlideXml = (p1, p2) => {\r\n const n1 = +/(\\d+)\\.xml/.exec(p1)[1]\r\n const n2 = +/(\\d+)\\.xml/.exec(p2)[1]\r\n return n1 - n2\r\n }\r\n slidesLocArray = slidesLocArray.sort(sortSlideXml)\r\n slideLayoutsLocArray = slideLayoutsLocArray.sort(sortSlideXml)\r\n \r\n return {\r\n slides: slidesLocArray,\r\n slideLayouts: slideLayoutsLocArray,\r\n }\r\n}\r\n\r\nasync function getSlideInfo(zip) {\r\n const content = await readXmlFile(zip, 'ppt/presentation.xml')\r\n const sldSzAttrs = content['p:presentation']['p:sldSz']['attrs']\r\n const defaultTextStyle = content['p:presentation']['p:defaultTextStyle']\r\n return {\r\n width: parseInt(sldSzAttrs['cx']) * RATIO_EMUs_Points,\r\n height: parseInt(sldSzAttrs['cy']) * RATIO_EMUs_Points,\r\n defaultTextStyle,\r\n }\r\n}\r\n\r\nasync function loadTheme(zip) {\r\n const preResContent = await readXmlFile(zip, 'ppt/_rels/presentation.xml.rels')\r\n const relationshipArray = preResContent['Relationships']['Relationship']\r\n let themeURI\r\n\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipItem of relationshipArray) {\r\n if (relationshipItem['attrs']['Type'] === 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme') {\r\n themeURI = relationshipItem['attrs']['Target']\r\n break\r\n }\r\n }\r\n } \r\n else if (relationshipArray['attrs']['Type'] === 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme') {\r\n themeURI = relationshipArray['attrs']['Target']\r\n }\r\n if (!themeURI) throw Error(`Can't open theme file.`)\r\n\r\n return await readXmlFile(zip, 'ppt/' + themeURI)\r\n}\r\n\r\nasync function processSingleSlide(zip, sldFileName, themeContent, defaultTextStyle) {\r\n const resName = sldFileName.replace('slides/slide', 'slides/_rels/slide') + '.rels'\r\n const resContent = await readXmlFile(zip, resName)\r\n let relationshipArray = resContent['Relationships']['Relationship']\r\n let layoutFilename = ''\r\n let diagramFilename = ''\r\n const slideResObj = {}\r\n\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipArrayItem of relationshipArray) {\r\n switch (relationshipArrayItem['attrs']['Type']) {\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout':\r\n layoutFilename = relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n break\r\n case 'http://schemas.microsoft.com/office/2007/relationships/diagramDrawing':\r\n diagramFilename = relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n slideResObj[relationshipArrayItem['attrs']['Id']] = {\r\n type: relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n target: relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n }\r\n break\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide':\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image':\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart':\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink':\r\n default:\r\n slideResObj[relationshipArrayItem['attrs']['Id']] = {\r\n type: relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n target: relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/'),\r\n }\r\n }\r\n }\r\n } \r\n else layoutFilename = relationshipArray['attrs']['Target'].replace('../', 'ppt/')\r\n\r\n const slideLayoutContent = await readXmlFile(zip, layoutFilename)\r\n const slideLayoutTables = await indexNodes(slideLayoutContent)\r\n\r\n const slideLayoutResFilename = layoutFilename.replace('slideLayouts/slideLayout', 'slideLayouts/_rels/slideLayout') + '.rels'\r\n const slideLayoutResContent = await readXmlFile(zip, slideLayoutResFilename)\r\n relationshipArray = slideLayoutResContent['Relationships']['Relationship']\r\n\r\n let masterFilename = ''\r\n const layoutResObj = {}\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipArrayItem of relationshipArray) {\r\n switch (relationshipArrayItem['attrs']['Type']) {\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster':\r\n masterFilename = relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n break\r\n default:\r\n layoutResObj[relationshipArrayItem['attrs']['Id']] = {\r\n type: relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n target: relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/'),\r\n }\r\n }\r\n }\r\n } \r\n else masterFilename = relationshipArray['attrs']['Target'].replace('../', 'ppt/')\r\n\r\n const slideMasterContent = await readXmlFile(zip, masterFilename)\r\n const slideMasterTextStyles = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:txStyles'])\r\n const slideMasterTables = indexNodes(slideMasterContent)\r\n\r\n const slideMasterResFilename = masterFilename.replace('slideMasters/slideMaster', 'slideMasters/_rels/slideMaster') + '.rels'\r\n const slideMasterResContent = await readXmlFile(zip, slideMasterResFilename)\r\n relationshipArray = slideMasterResContent['Relationships']['Relationship']\r\n\r\n let themeFilename = ''\r\n const masterResObj = {}\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipArrayItem of relationshipArray) {\r\n switch (relationshipArrayItem['attrs']['Type']) {\r\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme':\r\n break\r\n default:\r\n masterResObj[relationshipArrayItem['attrs']['Id']] = {\r\n type: relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n target: relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/'),\r\n }\r\n }\r\n }\r\n }\r\n else themeFilename = relationshipArray['attrs']['Target'].replace('../', 'ppt/')\r\n\r\n const themeResObj = {}\r\n if (themeFilename) {\r\n const themeName = themeFilename.split('/').pop()\r\n const themeResFileName = themeFilename.replace(themeName, '_rels/' + themeName) + '.rels'\r\n const themeResContent = await readXmlFile(zip, themeResFileName)\r\n if (themeResContent) {\r\n relationshipArray = themeResContent['Relationships']['Relationship']\r\n if (relationshipArray) {\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipArrayItem of relationshipArray) {\r\n themeResObj[relationshipArrayItem['attrs']['Id']] = {\r\n 'type': relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n 'target': relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n }\r\n }\r\n } \r\n else {\r\n themeResObj[relationshipArray['attrs']['Id']] = {\r\n 'type': relationshipArray['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n 'target': relationshipArray['attrs']['Target'].replace('../', 'ppt/')\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n const diagramResObj = {}\r\n let digramFileContent = {}\r\n if (diagramFilename) {\r\n const diagName = diagramFilename.split('/').pop()\r\n const diagramResFileName = diagramFilename.replace(diagName, '_rels/' + diagName) + '.rels'\r\n digramFileContent = await readXmlFile(zip, diagramFilename)\r\n if (digramFileContent && digramFileContent && digramFileContent) {\r\n let digramFileContentObjToStr = JSON.stringify(digramFileContent)\r\n digramFileContentObjToStr = digramFileContentObjToStr.replace(/dsp:/g, 'p:')\r\n digramFileContent = JSON.parse(digramFileContentObjToStr)\r\n }\r\n const digramResContent = await readXmlFile(zip, diagramResFileName)\r\n if (digramResContent) {\r\n relationshipArray = digramResContent['Relationships']['Relationship']\r\n if (relationshipArray.constructor === Array) {\r\n for (const relationshipArrayItem of relationshipArray) {\r\n diagramResObj[relationshipArrayItem['attrs']['Id']] = {\r\n 'type': relationshipArrayItem['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n 'target': relationshipArrayItem['attrs']['Target'].replace('../', 'ppt/')\r\n }\r\n }\r\n } \r\n else {\r\n diagramResObj[relationshipArray['attrs']['Id']] = {\r\n 'type': relationshipArray['attrs']['Type'].replace('http://schemas.openxmlformats.org/officeDocument/2006/relationships/', ''),\r\n 'target': relationshipArray['attrs']['Target'].replace('../', 'ppt/')\r\n }\r\n }\r\n }\r\n }\r\n\r\n const tableStyles = await readXmlFile(zip, 'ppt/tableStyles.xml')\r\n\r\n const slideContent = await readXmlFile(zip, sldFileName)\r\n const nodes = slideContent['p:sld']['p:cSld']['p:spTree']\r\n const warpObj = {\r\n zip,\r\n slideLayoutContent,\r\n slideLayoutTables,\r\n slideMasterContent,\r\n slideMasterTables,\r\n slideContent,\r\n tableStyles,\r\n slideResObj,\r\n slideMasterTextStyles,\r\n layoutResObj,\r\n masterResObj,\r\n themeContent,\r\n themeResObj,\r\n digramFileContent,\r\n diagramResObj,\r\n defaultTextStyle,\r\n }\r\n // const bgElements = await getBackground(warpObj)\r\n const bgColor = await getSlideBackgroundFill(warpObj)\r\n\r\n const elements = []\r\n for (const nodeKey in nodes) {\r\n if (nodes[nodeKey].constructor === Array) {\r\n for (const node of nodes[nodeKey]) {\r\n const ret = await processNodesInSlide(nodeKey, node, warpObj, 'slide')\r\n if (ret) elements.push(ret)\r\n }\r\n } \r\n else {\r\n const ret = await processNodesInSlide(nodeKey, nodes[nodeKey], warpObj, 'slide')\r\n if (ret) elements.push(ret)\r\n }\r\n }\r\n\r\n return {\r\n fill: bgColor,\r\n elements,\r\n }\r\n}\r\n\r\n// async function getBackground(warpObj) {\r\n// const elements = []\r\n// const slideLayoutContent = warpObj['slideLayoutContent']\r\n// const slideMasterContent = warpObj['slideMasterContent']\r\n// const nodesSldLayout = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'p:cSld', 'p:spTree'])\r\n// const nodesSldMaster = getTextByPathList(slideMasterContent, ['p:sldMaster', 'p:cSld', 'p:spTree'])\r\n\r\n// const showMasterSp = getTextByPathList(slideLayoutContent, ['p:sldLayout', 'attrs', 'showMasterSp'])\r\n// if (nodesSldLayout) {\r\n// for (const nodeKey in nodesSldLayout) {\r\n// if (nodesSldLayout[nodeKey].constructor === Array) {\r\n// for (let i = 0; i < nodesSldLayout[nodeKey].length; i++) {\r\n// const ph_type = getTextByPathList(nodesSldLayout[nodeKey][i], ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'type'])\r\n// if (ph_type !== 'pic') {\r\n// const ret = await processNodesInSlide(nodeKey, nodesSldLayout[nodeKey][i], warpObj, 'slideLayoutBg')\r\n// if (ret) elements.push(ret)\r\n// }\r\n// }\r\n// } \r\n// else {\r\n// const ph_type = getTextByPathList(nodesSldLayout[nodeKey], ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'type'])\r\n// if (ph_type !== 'pic') {\r\n// const ret = await processNodesInSlide(nodeKey, nodesSldLayout[nodeKey], warpObj, 'slideLayoutBg')\r\n// if (ret) elements.push(ret)\r\n// }\r\n// }\r\n// }\r\n// }\r\n// if (nodesSldMaster && (showMasterSp === '1' || showMasterSp)) {\r\n// for (const nodeKey in nodesSldMaster) {\r\n// if (nodesSldMaster[nodeKey].constructor === Array) {\r\n// for (let i = 0; i < nodesSldMaster[nodeKey].length; i++) {\r\n// const ret = await processNodesInSlide(nodeKey, nodesSldMaster[nodeKey][i], warpObj, 'slideMasterBg')\r\n// if (ret) elements.push(ret)\r\n// }\r\n// } \r\n// else {\r\n// const ret = await processNodesInSlide(nodeKey, nodesSldMaster[nodeKey], warpObj, 'slideMasterBg')\r\n// if (ret) elements.push(ret)\r\n// }\r\n// }\r\n// }\r\n// return elements\r\n// }\r\n\r\nfunction indexNodes(content) {\r\n const keys = Object.keys(content)\r\n const spTreeNode = content[keys[0]]['p:cSld']['p:spTree']\r\n const idTable = {}\r\n const idxTable = {}\r\n const typeTable = {}\r\n\r\n for (const key in spTreeNode) {\r\n if (key === 'p:nvGrpSpPr' || key === 'p:grpSpPr') continue\r\n\r\n const targetNode = spTreeNode[key]\r\n\r\n if (targetNode.constructor === Array) {\r\n for (const targetNodeItem of targetNode) {\r\n const nvSpPrNode = targetNodeItem['p:nvSpPr']\r\n const id = getTextByPathList(nvSpPrNode, ['p:cNvPr', 'attrs', 'id'])\r\n const idx = getTextByPathList(nvSpPrNode, ['p:nvPr', 'p:ph', 'attrs', 'idx'])\r\n const type = getTextByPathList(nvSpPrNode, ['p:nvPr', 'p:ph', 'attrs', 'type'])\r\n\r\n if (id) idTable[id] = targetNodeItem\r\n if (idx) idxTable[idx] = targetNodeItem\r\n if (type) typeTable[type] = targetNodeItem\r\n }\r\n } \r\n else {\r\n const nvSpPrNode = targetNode['p:nvSpPr']\r\n const id = getTextByPathList(nvSpPrNode, ['p:cNvPr', 'attrs', 'id'])\r\n const idx = getTextByPathList(nvSpPrNode, ['p:nvPr', 'p:ph', 'attrs', 'idx'])\r\n const type = getTextByPathList(nvSpPrNode, ['p:nvPr', 'p:ph', 'attrs', 'type'])\r\n\r\n if (id) idTable[id] = targetNode\r\n if (idx) idxTable[idx] = targetNode\r\n if (type) typeTable[type] = targetNode\r\n }\r\n }\r\n\r\n return { idTable, idxTable, typeTable }\r\n}\r\n\r\nasync function processNodesInSlide(nodeKey, nodeValue, warpObj, source) {\r\n let json\r\n\r\n switch (nodeKey) {\r\n case 'p:sp': // Shape, Text\r\n json = processSpNode(nodeValue, warpObj, source)\r\n break\r\n case 'p:cxnSp': // Shape, Text\r\n json = processCxnSpNode(nodeValue, warpObj, source)\r\n break\r\n case 'p:pic': // Image, Video, Audio\r\n json = processPicNode(nodeValue, warpObj, source)\r\n break\r\n case 'p:graphicFrame': // Chart, Diagram, Table\r\n json = await processGraphicFrameNode(nodeValue, warpObj, source)\r\n break\r\n case 'p:grpSp':\r\n json = await processGroupSpNode(nodeValue, warpObj, source)\r\n break\r\n case 'mc:AlternateContent':\r\n json = await processGroupSpNode(getTextByPathList(nodeValue, ['mc:Fallback']), warpObj, source)\r\n break\r\n default:\r\n }\r\n\r\n return json\r\n}\r\n\r\nasync function processGroupSpNode(node, warpObj, source) {\r\n const xfrmNode = getTextByPathList(node, ['p:grpSpPr', 'a:xfrm'])\r\n if (!xfrmNode) return null\r\n\r\n const x = parseInt(xfrmNode['a:off']['attrs']['x']) * RATIO_EMUs_Points\r\n const y = parseInt(xfrmNode['a:off']['attrs']['y']) * RATIO_EMUs_Points\r\n const chx = parseInt(xfrmNode['a:chOff']['attrs']['x']) * RATIO_EMUs_Points\r\n const chy = parseInt(xfrmNode['a:chOff']['attrs']['y']) * RATIO_EMUs_Points\r\n const cx = parseInt(xfrmNode['a:ext']['attrs']['cx']) * RATIO_EMUs_Points\r\n const cy = parseInt(xfrmNode['a:ext']['attrs']['cy']) * RATIO_EMUs_Points\r\n const chcx = parseInt(xfrmNode['a:chExt']['attrs']['cx']) * RATIO_EMUs_Points\r\n const chcy = parseInt(xfrmNode['a:chExt']['attrs']['cy']) * RATIO_EMUs_Points\r\n\r\n let rotate = getTextByPathList(xfrmNode, ['attrs', 'rot']) || 0\r\n if (rotate) rotate = angleToDegrees(rotate)\r\n\r\n const ws = cx / chcx\r\n const hs = cy / chcy\r\n\r\n const elements = []\r\n for (const nodeKey in node) {\r\n if (node[nodeKey].constructor === Array) {\r\n for (const item of node[nodeKey]) {\r\n const ret = await processNodesInSlide(nodeKey, item, warpObj, source)\r\n if (ret) elements.push(ret)\r\n }\r\n }\r\n else {\r\n const ret = await processNodesInSlide(nodeKey, node[nodeKey], warpObj, source)\r\n if (ret) elements.push(ret)\r\n }\r\n }\r\n\r\n return {\r\n type: 'group',\r\n top: y,\r\n left: x,\r\n width: cx,\r\n height: cy,\r\n rotate,\r\n elements: elements.map(element => ({\r\n ...element,\r\n left: (element.left - chx) * ws,\r\n top: (element.top - chy) * hs,\r\n width: element.width * ws,\r\n height: element.height * hs,\r\n }))\r\n }\r\n}\r\n\r\nfunction processSpNode(node, warpObj, source) {\r\n const name = getTextByPathList(node, ['p:nvSpPr', 'p:cNvPr', 'attrs', 'name'])\r\n const idx = getTextByPathList(node, ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'idx'])\r\n let type = getTextByPathList(node, ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'type'])\r\n\r\n let slideLayoutSpNode, slideMasterSpNode\r\n\r\n if (type) {\r\n if (idx) {\r\n slideLayoutSpNode = warpObj['slideLayoutTables']['typeTable'][type]\r\n slideMasterSpNode = warpObj['slideMasterTables']['typeTable'][type]\r\n } \r\n else {\r\n slideLayoutSpNode = warpObj['slideLayoutTables']['typeTable'][type]\r\n slideMasterSpNode = warpObj['slideMasterTables']['typeTable'][type]\r\n }\r\n }\r\n else if (idx) {\r\n slideLayoutSpNode = warpObj['slideLayoutTables']['idxTable'][idx]\r\n slideMasterSpNode = warpObj['slideMasterTables']['idxTable'][idx]\r\n }\r\n\r\n if (!type) {\r\n const txBoxVal = getTextByPathList(node, ['p:nvSpPr', 'p:cNvSpPr', 'attrs', 'txBox'])\r\n if (txBoxVal === '1') type = 'text'\r\n }\r\n if (!type) type = getTextByPathList(slideLayoutSpNode, ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'type'])\r\n if (!type) type = getTextByPathList(slideMasterSpNode, ['p:nvSpPr', 'p:nvPr', 'p:ph', 'attrs', 'type'])\r\n\r\n if (!type) {\r\n if (source === 'diagramBg') type = 'diagram'\r\n else type = 'obj'\r\n }\r\n\r\n return genShape(node, slideLayoutSpNode, slideMasterSpNode, name, type, warpObj)\r\n}\r\n\r\nfunction processCxnSpNode(node, warpObj) {\r\n const name = node['p:nvCxnSpPr']['p:cNvPr']['attrs']['name']\r\n const type = (node['p:nvCxnSpPr']['p:nvPr']['p:ph'] === undefined) ? undefined : node['p:nvSpPr']['p:nvPr']['p:ph']['attrs']['type']\r\n\r\n return genShape(node, undefined, undefined, name, type, warpObj)\r\n}\r\n\r\nfunction genShape(node, slideLayoutSpNode, slideMasterSpNode, name, type, warpObj) {\r\n const xfrmList = ['p:spPr', 'a:xfrm']\r\n const slideXfrmNode = getTextByPathList(node, xfrmList)\r\n const slideLayoutXfrmNode = getTextByPathList(slideLayoutSpNode, xfrmList)\r\n const slideMasterXfrmNode = getTextByPathList(slideMasterSpNode, xfrmList)\r\n\r\n const shapType = getTextByPathList(node, ['p:spPr', 'a:prstGeom', 'attrs', 'prst'])\r\n const custShapType = getTextByPathList(node, ['p:spPr', 'a:custGeom'])\r\n\r\n const { top, left } = getPosition(slideXfrmNode, slideLayoutXfrmNode, slideMasterXfrmNode)\r\n const { width, height } = getSize(slideXfrmNode, slideLayoutXfrmNode, slideMasterXfrmNode)\r\n\r\n const isFlipV = getTextByPathList(slideXfrmNode, ['attrs', 'flipV']) === '1'\r\n const isFlipH = getTextByPathList(slideXfrmNode, ['attrs', 'flipH']) === '1'\r\n\r\n const rotate = angleToDegrees(getTextByPathList(slideXfrmNode, ['attrs', 'rot']))\r\n\r\n const txtXframeNode = getTextByPathList(node, ['p:txXfrm'])\r\n let txtRotate\r\n if (txtXframeNode) {\r\n const txtXframeRot = getTextByPathList(txtXframeNode, ['attrs', 'rot'])\r\n if (txtXframeRot) txtRotate = angleToDegrees(txtXframeRot) + 90\r\n } \r\n else txtRotate = rotate\r\n\r\n let content = ''\r\n if (node['p:txBody']) content = genTextBody(node['p:txBody'], node, slideLayoutSpNode, type, warpObj)\r\n\r\n const { borderColor, borderWidth, borderType, strokeDasharray } = getBorder(node, type, warpObj)\r\n const fillColor = getShapeFill(node, undefined, warpObj) || ''\r\n\r\n let shadow\r\n const outerShdwNode = getTextByPathList(node, ['p:spPr', 'a:effectLst', 'a:outerShdw'])\r\n if (outerShdwNode) shadow = getShadow(outerShdwNode, warpObj)\r\n\r\n const vAlign = getVerticalAlign(node, slideLayoutSpNode, slideMasterSpNode, type)\r\n const isVertical = getTextByPathList(node, ['p:txBody', 'a:bodyPr', 'attrs', 'vert']) === 'eaVert'\r\n\r\n const data = {\r\n left,\r\n top,\r\n width,\r\n height,\r\n borderColor,\r\n borderWidth,\r\n borderType,\r\n borderStrokeDasharray: strokeDasharray,\r\n fillColor,\r\n content,\r\n isFlipV,\r\n isFlipH,\r\n rotate,\r\n vAlign,\r\n name,\r\n }\r\n\r\n if (shadow) data.shadow = shadow\r\n\r\n if (custShapType && type !== 'diagram') {\r\n const ext = getTextByPathList(slideXfrmNode, ['a:ext', 'attrs'])\r\n const w = parseInt(ext['cx']) * RATIO_EMUs_Points\r\n const h = parseInt(ext['cy']) * RATIO_EMUs_Points\r\n const d = getCustomShapePath(custShapType, w, h)\r\n\r\n return {\r\n ...data,\r\n type: 'shape',\r\n shapType: 'custom',\r\n path: d,\r\n }\r\n }\r\n if (shapType && (type === 'obj' || !type)) {\r\n return {\r\n ...data,\r\n type: 'shape',\r\n shapType,\r\n }\r\n }\r\n return {\r\n ...data,\r\n type: 'text',\r\n isVertical,\r\n rotate: txtRotate,\r\n }\r\n}\r\n\r\nasync function processPicNode(node, warpObj, source) {\r\n let resObj\r\n if (source === 'slideMasterBg') resObj = warpObj['masterResObj']\r\n else if (source === 'slideLayoutBg') resObj = warpObj['layoutResObj']\r\n else resObj = warpObj['slideResObj']\r\n \r\n const rid = node['p:blipFill']['a:blip']['attrs']['r:embed']\r\n const imgName = resObj[rid]['target']\r\n const imgFileExt = extractFileExtension(imgName).toLowerCase()\r\n const zip = warpObj['zip']\r\n const imgArrayBuffer = await zip.file(imgName).async('arraybuffer')\r\n const xfrmNode = node['p:spPr']['a:xfrm']\r\n\r\n const mimeType = getMimeType(imgFileExt)\r\n const { top, left } = getPosition(xfrmNode, undefined, undefined)\r\n const { width, height } = getSize(xfrmNode, undefined, undefined)\r\n const src = `data:${mimeType};base64,${base64ArrayBuffer(imgArrayBuffer)}`\r\n\r\n const isFlipV = getTextByPathList(xfrmNode, ['attrs', 'flipV']) === '1'\r\n const isFlipH = getTextByPathList(xfrmNode, ['attrs', 'flipH']) === '1'\r\n\r\n let rotate = 0\r\n const rotateNode = getTextByPathList(node, ['p:spPr', 'a:xfrm', 'attrs', 'rot'])\r\n if (rotateNode) rotate = angleToDegrees(rotateNode)\r\n\r\n const videoNode = getTextByPathList(node, ['p:nvPicPr', 'p:nvPr', 'a:videoFile'])\r\n let videoRid, videoFile, videoFileExt, videoMimeType, uInt8ArrayVideo, videoBlob\r\n let isVdeoLink = false\r\n\r\n if (videoNode) {\r\n videoRid = videoNode['attrs']['r:link']\r\n videoFile = resObj[videoRid]['target']\r\n if (isVideoLink(videoFile)) {\r\n videoFile = escapeHtml(videoFile)\r\n isVdeoLink = true\r\n } \r\n else {\r\n videoFileExt = extractFileExtension(videoFile).toLowerCase()\r\n if (videoFileExt === 'mp4' || videoFileExt === 'webm' || videoFileExt === 'ogg') {\r\n uInt8ArrayVideo = await zip.file(videoFile).async('arraybuffer')\r\n videoMimeType = getMimeType(videoFileExt)\r\n videoBlob = URL.createObjectURL(new Blob([uInt8ArrayVideo], {\r\n type: videoMimeType\r\n }))\r\n }\r\n }\r\n }\r\n\r\n const audioNode = getTextByPathList(node, ['p:nvPicPr', 'p:nvPr', 'a:audioFile'])\r\n let audioRid, audioFile, audioFileExt, uInt8ArrayAudio, audioBlob\r\n if (audioNode) {\r\n audioRid = audioNode['attrs']['r:link']\r\n audioFile = resObj[audioRid]['target']\r\n audioFileExt = extractFileExtension(audioFile).toLowerCase()\r\n if (audioFileExt === 'mp3' || audioFileExt === 'wav' || audioFileExt === 'ogg') {\r\n uInt8ArrayAudio = await zip.file(audioFile).async('arraybuffer')\r\n audioBlob = URL.createObjectURL(new Blob([uInt8ArrayAudio]))\r\n }\r\n }\r\n\r\n if (videoNode && !isVdeoLink) {\r\n return {\r\n type: 'video',\r\n top,\r\n left,\r\n width, \r\n height,\r\n rotate,\r\n blob: videoBlob,\r\n }\r\n } \r\n if (videoNode && isVdeoLink) {\r\n return {\r\n type: 'video',\r\n top,\r\n left,\r\n width, \r\n height,\r\n rotate,\r\n src: videoFile,\r\n }\r\n }\r\n if (audioNode) {\r\n return {\r\n type: 'audio',\r\n top,\r\n left,\r\n width, \r\n height,\r\n rotate,\r\n blob: audioBlob,\r\n }\r\n }\r\n return {\r\n type: 'image',\r\n top,\r\n left,\r\n width, \r\n height,\r\n rotate,\r\n src,\r\n isFlipV,\r\n isFlipH\r\n }\r\n}\r\n\r\nasync function processGraphicFrameNode(node, warpObj, source) {\r\n const graphicTypeUri = getTextByPathList(node, ['a:graphic', 'a:graphicData', 'attrs', 'uri'])\r\n \r\n let result\r\n switch (graphicTypeUri) {\r\n case 'http://schemas.openxmlformats.org/drawingml/2006/table':\r\n result = genTable(node, warpObj)\r\n break\r\n case 'http://schemas.openxmlformats.org/drawingml/2006/chart':\r\n result = await genChart(node, warpObj)\r\n break\r\n case 'http://schemas.openxmlformats.org/drawingml/2006/diagram':\r\n result = genDiagram(node, warpObj)\r\n break\r\n case 'http://schemas.openxmlformats.org/presentationml/2006/ole':\r\n let oleObjNode = getTextByPathList(node, ['a:graphic', 'a:graphicData', 'mc:AlternateContent', 'mc:Fallback', 'p:oleObj'])\r\n if (!oleObjNode) oleObjNode = getTextByPathList(node, ['a:graphic', 'a:graphicData', 'p:oleObj'])\r\n else processGroupSpNode(oleObjNode, warpObj, source)\r\n break\r\n default:\r\n }\r\n return result\r\n}\r\n\r\nfunction genTable(node, warpObj) {\r\n const tableNode = getTextByPathList(node, ['a:graphic', 'a:graphicData', 'a:tbl'])\r\n const xfrmNode = getTextByPathList(node, ['p:xfrm'])\r\n const { top, left } = getPosition(xfrmNode, undefined, undefined)\r\n const { width, height } = getSize(xfrmNode, undefined, undefined)\r\n\r\n const getTblPr = getTextByPathList(node, ['a:graphic', 'a:graphicData', 'a:tbl', 'a:tblPr'])\r\n\r\n const firstRowAttr = getTblPr['attrs'] ? getTblPr['attrs']['firstRow'] : undefined\r\n const firstColAttr = getTblPr['attrs'] ? getTblPr['attrs']['firstCol'] : undefined\r\n const lastRowAttr = getTblPr['attrs'] ? getTblPr['attrs']['lastRow'] : undefined\r\n const lastColAttr = getTblPr['attrs'] ? getTblPr['attrs']['lastCol'] : undefined\r\n const bandRowAttr = getTblPr['attrs'] ? getTblPr['attrs']['bandRow'] : undefined\r\n const bandColAttr = getTblPr['attrs'] ? getTblPr['attrs']['bandCol'] : undefined\r\n const tblStylAttrObj = {\r\n isFrstRowAttr: (firstRowAttr && firstRowAttr === '1') ? 1 : 0,\r\n isFrstColAttr: (firstColAttr && firstColAttr === '1') ? 1 : 0,\r\n isLstRowAttr: (lastRowAttr && lastRowAttr === '1') ? 1 : 0,\r\n isLstColAttr: (lastColAttr && lastColAttr === '1') ? 1 : 0,\r\n isBandRowAttr: (bandRowAttr && bandRowAttr === '1') ? 1 : 0,\r\n isBandColAttr: (bandColAttr && bandColAttr === '1') ? 1 : 0,\r\n }\r\n\r\n let thisTblStyle\r\n const tbleStyleId = getTblPr['a:tableStyleId']\r\n if (tbleStyleId) {\r\n const tbleStylList = warpObj['tableStyles']['a:tblStyleLst']['a:tblStyle']\r\n if (tbleStylList) {\r\n if (tbleStylList.constructor === Array) {\r\n for (let k = 0; k < tbleStylList.length; k++) {\r\n if (tbleStylList[k]['attrs']['styleId'] === tbleStyleId) {\r\n thisTblStyle = tbleStylList[k]\r\n }\r\n }\r\n } \r\n else {\r\n if (tbleStylList['attrs']['styleId'] === tbleStyleId) {\r\n thisTblStyle = tbleStylList\r\n }\r\n }\r\n }\r\n }\r\n if (thisTblStyle) thisTblStyle['tblStylAttrObj'] = tblStylAttrObj\r\n\r\n let tbl_border\r\n const tblStyl = getTextByPathList(thisTblStyle, ['a:wholeTbl', 'a:tcStyle'])\r\n const tblBorderStyl = getTextByPathList(tblStyl, ['a:tcBdr'])\r\n if (tblBorderStyl) {\r\n const tbl_borders = getTableBorders(tblBorderStyl, warpObj)\r\n if (tbl_borders) tbl_border = tbl_borders.bottom || tbl_borders.left || tbl_borders.right || tbl_borders.top\r\n }\r\n\r\n let tbl_bgcolor = ''\r\n let tbl_bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:tblBg', 'a:fillRef'])\r\n if (tbl_bgFillschemeClr) {\r\n tbl_bgcolor = getSolidFill(tbl_bgFillschemeClr, undefined, undefined, warpObj)\r\n }\r\n if (tbl_bgFillschemeClr === undefined) {\r\n tbl_bgFillschemeClr = getTextByPathList(thisTblStyle, ['a:wholeTbl', 'a:tcStyle', 'a:fill', 'a:solidFill'])\r\n tbl_bgcolor = getSolidFill(tbl_bgFillschemeClr, undefined, undefined, warpObj)\r\n }\r\n\r\n let trNodes = tableNode['a:tr']\r\n if (trNodes.constructor !== Array) trNodes = [trNodes]\r\n \r\n const data = []\r\n for (let i = 0; i < trNodes.length; i++) {\r\n const trNode = trNodes[i]\r\n\r\n const {\r\n fillColor,\r\n fontColor,\r\n fontBold,\r\n } = getTableRowParams(trNodes, i, tblStylAttrObj, thisTblStyle, warpObj)\r\n\r\n const tcNodes = trNode['a:tc']\r\n const tr = []\r\n\r\n if (tcNodes.constructor === Array) {\r\n for (let j = 0; j < tcNodes.length; j++) {\r\n const tcNode = tcNodes[j]\r\n let a_sorce\r\n if (j === 0 && tblStylAttrObj['isFrstColAttr'] === 1) {\r\n a_sorce = 'a:firstCol'\r\n if (tblStylAttrObj['isLstRowAttr'] === 1 && i === (trNodes.length - 1) && getTextByPathList(thisTblStyle, ['a:seCell'])) {\r\n a_sorce = 'a:seCell'\r\n } \r\n else if (tblStylAttrObj['isFrstRowAttr'] === 1 && i === 0 &&\r\n getTextByPathList(thisTblStyle, ['a:neCell'])) {\r\n a_sorce = 'a:neCell'\r\n }\r\n } \r\n else if (\r\n (j > 0 && tblStylAttrObj['isBandColAttr'] === 1) &&\r\n !(tblStylAttrObj['isFrstColAttr'] === 1 && i === 0) &&\r\n !(tblStylAttrObj['isLstRowAttr'] === 1 && i === (trNodes.length - 1)) &&\r\n j !== (tcNodes.length - 1)\r\n ) {\r\n if ((j % 2) !== 0) {\r\n let aBandNode = getTextByPathList(thisTblStyle, ['a:band2V'])\r\n if (aBandNode === undefined) {\r\n aBandNode = getTextByPathList(thisTblStyle, ['a:band1V'])\r\n if (aBandNode) a_sorce = 'a:band2V'\r\n } \r\n else a_sorce = 'a:band2V'\r\n }\r\n }\r\n if (j === (tcNodes.length - 1) && tblStylAttrObj['isLstColAttr'] === 1) {\r\n a_sorce = 'a:lastCol'\r\n if (tblStylAttrObj['isLstRowAttr'] === 1 && i === (trNodes.length - 1) && getTextByPathList(thisTblStyle, ['a:swCell'])) {\r\n a_sorce = 'a:swCell'\r\n } \r\n else if (tblStylAttrObj['isFrstRowAttr'] === 1 && i === 0 && getTextByPathList(thisTblStyle, ['a:nwCell'])) {\r\n a_sorce = 'a:nwCell'\r\n }\r\n }\r\n const text = genTextBody(tcNode['a:txBody'], tcNode, undefined, undefined, warpObj)\r\n const cell = getTableCellParams(tcNode, thisTblStyle, a_sorce, warpObj)\r\n const td = { text }\r\n if (cell.rowSpan) td.rowSpan = cell.rowSpan\r\n if (cell.colSpan) td.colSpan = cell.colSpan\r\n if (cell.vMerge) td.vMerge = cell.vMerge\r\n if (cell.hMerge) td.hMerge = cell.hMerge\r\n if (cell.fontBold || fontBold) td.fontBold = cell.fontBold || fontBold\r\n if (cell.fontColor || fontColor) td.fontColor = cell.fontColor || fontColor\r\n if (cell.fillColor || fillColor || tbl_bgcolor) td.fillColor = cell.fillColor || fillColor || tbl_bgcolor\r\n\r\n tr.push(td)\r\n }\r\n } \r\n else {\r\n let a_sorce\r\n if (tblStylAttrObj['isFrstColAttr'] === 1 && tblStylAttrObj['isLstRowAttr'] !== 1) {\r\n a_sorce = 'a:firstCol'\r\n } \r\n else if (tblStylAttrObj['isBandColAttr'] === 1 && tblStylAttrObj['isLstRowAttr'] !== 1) {\r\n let aBandNode = getTextByPathList(thisTblStyle, ['a:band2V'])\r\n if (!aBandNode) {\r\n aBandNode = getTextByPathList(thisTblStyle, ['a:band1V'])\r\n if (aBandNode) a_sorce = 'a:band2V'\r\n } \r\n else a_sorce = 'a:band2V'\r\n }\r\n if (tblStylAttrObj['isLstColAttr'] === 1 && tblStylAttrObj['isLstRowAttr'] !== 1) {\r\n a_sorce = 'a:lastCol'\r\n }\r\n\r\n const text = genTextBody(tcNodes['a:txBody'], tcNodes, undefined, undefined, warpObj)\r\n const cell = getTableCellParams(tcNodes, thisTblStyle, a_sorce, warpObj)\r\n const td = { text }\r\n if (cell.rowSpan) td.rowSpan = cell.rowSpan\r\n if (cell.colSpan) td.colSpan = cell.colSpan\r\n if (cell.vMerge) td.vMerge = cell.vMerge\r\n if (cell.hMerge) td.hMerge = cell.hMerge\r\n if (cell.fontBold || fontBold) td.fontBold = cell.fontBold || fontBold\r\n if (cell.fontColor || fontColor) td.fontColor = cell.fontColor || fontColor\r\n if (cell.fillColor || fillColor || tbl_bgcolor) td.fillColor = cell.fillColor || fillColor || tbl_bgcolor\r\n\r\n tr.push(td)\r\n }\r\n data.push(tr)\r\n }\r\n\r\n return {\r\n type: 'table',\r\n top,\r\n left,\r\n width,\r\n height,\r\n data,\r\n ...(tbl_border || {}),\r\n }\r\n}\r\n\r\nasync function genChart(node, warpObj) {\r\n const xfrmNode = getTextByPathList(node, ['p:xfrm'])\r\n const { top, left } = getPosition(xfrmNode, undefined, undefined)\r\n const { width, height } = getSize(xfrmNode, undefined, undefined)\r\n\r\n const rid = node['a:graphic']['a:graphicData']['c:chart']['attrs']['r:id']\r\n const refName = warpObj['slideResObj'][rid]['target']\r\n const content = await readXmlFile(warpObj['zip'], refName)\r\n const plotArea = getTextByPathList(content, ['c:chartSpace', 'c:chart', 'c:plotArea'])\r\n\r\n const chart = getChartInfo(plotArea)\r\n\r\n if (!chart) return {}\r\n\r\n const data = {\r\n type: 'chart',\r\n top,\r\n left,\r\n width,\r\n height,\r\n data: chart.data,\r\n chartType: chart.type,\r\n }\r\n if (chart.marker !== undefined) data.marker = chart.marker\r\n if (chart.barDir !== undefined) data.barDir = chart.barDir\r\n if (chart.holeSize !== undefined) data.holeSize = chart.holeSize\r\n if (chart.grouping !== undefined) data.grouping = chart.grouping\r\n if (chart.style !== undefined) data.style = chart.style\r\n\r\n return data\r\n}\r\n\r\nfunction genDiagram(node, warpObj) {\r\n const xfrmNode = getTextByPathList(node, ['p:xfrm'])\r\n const { left, top } = getPosition(xfrmNode, undefined, undefined)\r\n const { width, height } = getSize(xfrmNode, undefined, undefined)\r\n \r\n const dgmDrwSpArray = getTextByPathList(warpObj['digramFileContent'], ['p:drawing', 'p:spTree', 'p:sp'])\r\n const elements = []\r\n if (dgmDrwSpArray) {\r\n for (const item of dgmDrwSpArray) {\r\n const el = processSpNode(item, warpObj, 'diagramBg')\r\n if (el) elements.push(el)\r\n }\r\n }\r\n\r\n return {\r\n type: 'diagram',\r\n left,\r\n top,\r\n width,\r\n height,\r\n elements,\r\n }\r\n}"],"names":["_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","_asyncToGenerator","fn","self","this","args","arguments","apply","err","undefined","_typeof","module","exports","Symbol","iterator","constructor","prototype","__esModule","require$$0","_regeneratorRuntime","Op","hasOwn","hasOwnProperty","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","record","result","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","runtime","regenerator","regeneratorRuntime","accidentalStrictMode","globalThis","Function","global$1","global","window","lookup","revLookup","Arr","Uint8Array","Array","inited","init","code","len","charCodeAt","encodeChunk","uint8","start","end","tmp","num","output","join","fromByteArray","extraBytes","parts","maxChunkLength","len2","read","buffer","offset","isLE","mLen","nBytes","e","m","eLen","eMax","eBias","nBits","d","s","NaN","Infinity","Math","pow","write","c","rt","abs","floor","log","LN2","toString","isArray$1","isArray","arr","Buffer","TYPED_ARRAY_SUPPORT","_kMaxLength","kMaxLength","createBuffer","that","RangeError","encodingOrOffset","allocUnsafe","from","ArrayBuffer","array","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","fromString","internalIsBuffer","checked","copy","data","fromObject","assertSize","size","b","_isBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","bidirectionalIndexOf","dir","arrayIndexOf","indexOf","lastIndexOf","indexSize","arrLength","valLength","String","buf","readUInt16BE","foundIndex","found","j","hexWrite","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","base64.fromByteArray","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","poolSize","_augment","species","alloc","fill","allocUnsafeSlow","isBuffer","compare","a","x","y","concat","list","pos","swap16","swap32","swap64","equals","inspect","match","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","max","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","ieee754.write","writeDouble","newBuf","subarray","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","ieee754.read","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","INVALID_BASE64_RE","leadSurrogate","b64","l","placeHolders","L","base64.toByteArray","trim","replace","stringtrim","base64clean","src","dst","isFastBuffer","isSlowBuffer","defaultSetTimout","defaultClearTimeout","cachedSetTimeout","cachedClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","nextTick","Item","noop","on","addListener","once","off","removeListener","removeAllListeners","emit","performance","performanceNow","now","mozNow","msNow","oNow","webkitNow","Date","getTime","startTime","process","title","browser","env","argv","version","versions","binding","cwd","chdir","umask","hrtime","previousTimestamp","clocktime","seconds","nanoseconds","platform","release","config","uptime","EventHandlers","EventEmitter","$getMaxListeners","_maxListeners","defaultMaxListeners","emitNone","handler","isFn","listeners","arrayClone","emitOne","arg1","emitTwo","arg2","emitThree","arg3","emitMany","_addListener","listener","prepend","events","existing","_events","newListener","_eventsCount","unshift","warned","w","emitter","count","console","warn","_onceWrap","fired","g","listenerCount","evlistener","usingDomains","domain","active","setMaxListeners","getMaxListeners","er","doError","domainEmitter","domainThrown","prependListener","prependOnceListener","position","originalListener","index","k","spliceOne","unwrapListeners","eventNames","Reflect","ownKeys","inherits$2","superCtor","super_","TempCtor","formatRegExp","format","f","isString","objects","JSON","stringify","_","isNull","isObject","deprecate","msg","isUndefined","noDeprecation","throwDeprecation","traceDeprecation","trace","debugEnviron","debugs","debuglog","NODE_DEBUG","toUpperCase","RegExp","test","opts","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","style","styles","recurseTimes","isFunction","primitive","simple","isNumber","formatPrimitive","visibleKeys","hash","idx","arrayToHash","getOwnPropertyNames","isError","formatError","isRegExp","isDate","base","braces","toUTCString","formatProperty","formatArray","map","reduce","cur","reduceToSingleString","getOwnPropertyDescriptor","get","split","line","ar","isNullOrUndefined","isSymbol","re","objectToString","isPrimitive","maybeBuf","Buffer.isBuffer","o","pad","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","special","number","boolean","null","date","regexp","months","timestamp","time","getHours","getMinutes","getSeconds","getDate","getMonth","origin","add","prop","util$1","inherits","BufferList","head","tail","v","shift","clear","p","isBufferEncoding","StringDecoder","assertEncoding","surrogateSize","detectIncompleteChar","utf16DetectIncompleteChar","base64DetectIncompleteChar","passThroughWrite","charBuffer","charReceived","charLength","charStr","available","charCode","substring","cr","enc","Readable","ReadableState","debug","options","stream","objectMode","Duplex","readableObjectMode","hwm","highWaterMark","defaultHwm","pipes","pipesCount","flowing","ended","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","defaultEncoding","ranOut","awaitDrain","readingMore","decoder","_readableState","readable","_read","readableAddChunk","chunk","addToFront","chunkInvalid","emitReadable","onEofChunk","_e","skipAdd","maybeReadMore_","maybeReadMore","needMoreData","isPaused","setEncoding","MAX_HWM","howMuchToRead","computeNewHighWaterMark","emitReadable_","flow","nReadingNextTick","resume_","fromList","hasStrings","nb","copyFromBufferString","copyFromBuffer","fromListPartial","endReadable","endReadableNT","xs","nop","WriteReq","cb","callback","WritableState","getBuffer","writableObjectMode","needDrain","ending","finished","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","_writableState","writecb","writelen","onwriteStateUpdate","pendingcb","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","corkedRequestsFree","CorkedRequest","Writable","_write","writev","_writev","doWrite","onwriteDrain","finishMaybe","holder","prefinish","need","_this","nOrig","doRead","pipe","dest","pipeOpts","endFn","onend","cleanup","onunpipe","ondrain","pipeOnDrain","cleanedUp","onclose","onfinish","onerror","ondata","increasedAwaitDrain","pause","unpipe","event","resume","dests","_i","splice","ev","paused","bind","_fromList","current","writeAfterEnd","valid","validChunk","decodeChunk","last","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","allowHalfOpen","onEndNT","TransformState","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","Transform","transform","_transform","flush","_flush","ws","PassThrough","Stream","EE","source","_isStdio","didOnEnd","destroy","processNextickArgsModule","process.nextTick","copyProps","SafeBuffer","SlowBuffer","util","inherits_browserModule","require$$1","instance","Constructor","_classCallCheck","custom","pna","emitErrorNT","destroy_1","readableDestroyed","destroyed","writableDestroyed","_destroy","undestroy","corkReq","onCorkedFinish","_stream_writable","asyncWrite","require$$2","internalUtil","node","require$$4","require$$5","OurUint8Array","realHasInstance","destroyImpl","require$$6","require$$7","isDuplex","writableHwm","writableHighWaterMark","finalCalled","final","_final","allBuffers","isBuf","callFinal","hasInstance","_uint8ArrayToBuffer","newChunk","_undestroy","objectKeys","_stream_duplex","require$$3","nenc","retried","_normalizeEncoding","normalizeEncoding","text","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","r","utf8CheckExtraBytes","string_decoder","total","utf8CheckIncomplete","_stream_readable","isarray","EElistenerCount","debugUtil","require$$8","require$$9","kProxyEvents","require$$10","readableHwm","readableHighWaterMark","require$$11","skipChunkCheck","addChunk","stdout","stderr","unpipeInfo","hasUnpiped","_stream_transform","_this2","err2","READABLE_STREAM","_stream_passthrough","support$4","base64","arraybuffer","support","nodebuffer","uint8array","blob","Blob","builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","append","getBlob","nodestream","utils","_keyStr","encode","input","chr1","chr2","chr3","enc1","enc2","enc3","enc4","remainingBytes","getTypeOf","decode","resultIndex","dataUrlPrefix","totalLength","nodejsUtils","isNode","newBufferFrom","allocBuffer","isStream","ES6Promise","immediate","scheduleDrain","Mutation","MutationObserver","WebKitMutationObserver","called","observer","element","document","createTextNode","observe","characterData","setImmediate","MessageChannel","createElement","scriptEl","onreadystatechange","parentNode","removeChild","documentElement","appendChild","channel","port1","onmessage","port2","postMessage","oldQueue","lib","task","INTERNAL","handlers","REJECTED","FULFILLED","PENDING","resolver","outcome","safelyResolveThenable","QueueItem","promise","onFulfilled","onRejected","callFulfilled","otherCallFulfilled","callRejected","otherCallRejected","unwrap","func","returnValue","getThen","thenable","onError","onSuccess","status","finally","reason","all","resolved","allResolver","outValue","race","response","external","identity","stringToArrayLike","newBlob","part","checkSupport","arrayToStringHelper","stringifyByChunk","stringifyByChar","resultStr","applyCanBeUsed","arrayLikeToString","canUseApply","arrayLikeToArrayLike","arrayFrom","arrayTo","applyFromCharCode","transformTo","outputType","inputType","path","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","delay","Obj","extend","attr","prepareContent","inputData","isBinary","isOptimizedBinaryString","isBase64","FileReader","reader","onload","readAsArrayBuffer","dataType","GenericWorker","streamInfo","generatedError","extraStreamInfo","isFinished","isLocked","_listeners","previous","registerImmediate","html","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","script","random","addEventListener","attachEvent","clearImmediate","GenericWorker$b","cleanUp","registerPrevious","mergeStreamInfo","processChunk","withError","withStreamInfo","lock","me","GenericWorker_1","_utf8len","Utf8DecodeWorker","leftOver","Utf8EncodeWorker","utf8encode","c2","m_pos","str_len","buf_len","string2buf","utf8decode","c_len","utf16buf","buf2string","previousData","nextBoundary","utf8border","usableData","meta","ConvertWorker","destType","ConvertWorker_1","NodejsStreamOutputAdapter","helper","updateCb","_helper","NodejsStreamOutputAdapter_1","accumulate","updateCallback","dataArray","chunkType","_internalType","resultType","_outputType","mimeType","_mimeType","content","transformZipOutput","StreamHelper","worker","internalType","_worker","StreamHelper$2","evt","toNodejsStream","StreamHelper_1","defaults$1","DataWorker","dataP","dataIsReady","_tickScheduled","_tickAndRepeat","_tick","nextIndex","percent","DataWorker_1","crcTable","table","makeTable","crc32_1","crc","t","crc32","crc32str","Crc32Probe","Crc32Probe_1","DataLengthProbe","propName","CompressedObject","compressedSize","uncompressedSize","compression","compressedContent","CompressedObject$3","getContentWorker","uncompressWorker","getCompressedWorker","createWorkerFrom","uncompressedWorker","compressionOptions","compressWorker","compressedObject","utf8","ZipObject","comment","unixPermissions","dosPermissions","_data","_dataBinary","binary","ZipObject$1","internalStream","askUnicodeString","_decompressWorker","isUnicodeString","onUpdate","nodeStream","_compressWorker","magic","removedMethods","removedFn","zipObject","TYPED_OK","Uint16Array","Int32Array","_has","assign","sources","shrinkBuf","fnTyped","arraySet","src_offs","dest_offs","flattenChunks","chunks","fnUntyped","setTyped","Buf8","Buf16","Buf32","zero","LITERALS","L_CODES","D_CODES","MAX_BITS","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","zero$1","static_dtree","_dist_code","_length_code","MAX_MATCH","base_length","static_l_desc","static_d_desc","static_bl_desc","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","dist","put_short","pending_buf","pending","send_bits","bi_valid","bi_buf","send_code","tree","bi_reverse","gen_codes","bl_count","bits","next_code","init_block","dyn_ltree","dyn_dtree","bl_tree","END_BLOCK","opt_len","static_len","last_lit","matches","bi_windup","smaller","_n2","_m2","pqdownheap","heap","heap_len","compress_block","ltree","dtree","lc","extra","lx","d_buf","l_buf","build_tree","stree","heap_max","h","xbits","overflow","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","_tr_stored_block","stored_len","header","copy_block","trees$1","_tr_init","LENGTH_CODES","tr_static_init","l_desc","d_desc","bl_desc","_tr_flush_block","opt_lenb","static_lenb","max_blindex","level","strm","data_type","black_mask","detect_data_type","BL_CODES","build_bl_tree","strategy","lcodes","dcodes","blcodes","rank","send_all_trees","_tr_tally","lit_bufsize","_tr_align","STATIC_TREES","bi_flush","adler32_1","adler","s1","s2","configuration_table","messages","trees","adler32","Z_STREAM_ERROR","MIN_LOOKAHEAD","HCRC_STATE","BUSY_STATE","FINISH_STATE","errorCode","flush_pending","avail_out","pending_out","next_out","total_out","flush_block_only","block_start","strstart","put_byte","putShortMSB","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","more","_w_size","window_size","hash_size","avail_in","next_in","total_in","insert","ins_h","hash_shift","hash_mask","deflate_fast","hash_head","bflush","match_length","max_lazy_match","MIN_MATCH","deflate_slow","max_insert","prev_match","match_available","Config","good_length","max_lazy","nice_length","max_chain","DeflateState","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","HEAP_SIZE","deflateResetKeep","deflateReset","deflateInit2","windowBits","memLevel","max_block_size","max_start","deflate$3","deflateInit","deflateSetHeader","deflate","old_flush","beg","hcrc","os","bstate","deflate_huff","deflate_rle","deflateEnd","deflateSetDictionary","dictionary","avail","tmpDict","dictLength","deflateInfo","STR_APPLY_OK","STR_APPLY_UIA_OK","__","q","buf2binstring","strings","binstring2buf","zstream","zlib_deflate","ZStream","Deflate","chunkSize","to","opt","raw","gzip","dict","_dict_set","deflator","mode","_mode","onEnd","onData","deflate$4","deflateRaw","MAXBITS","lbase","lext","dbase","dext","inflate_fast","_in","_out","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","op","from_source","lencode","distcode","lenbits","distbits","top","dolen","dodist","sane","inflate_table","lens","lens_index","codes","table_index","work","incr","low","mask","here_bits","here_op","here_val","sym","root","curr","drop","left","used","huff","base_index","offs","extra_index","TYPE","BAD","zswap32","InflateState","havedict","flags","check","wbits","ncode","nlen","ndist","have","lendyn","distdyn","back","was","inflateResetKeep","inflateReset","inflateReset2","inflateInit2","lenfix","distfix","virgin","fixedtables","updatewindow","inflate$3","inflateInit","inflate","put","last_bits","last_op","last_val","hbuf","order","inf_leave","xflags","extra_len","inflateEnd","inflateGetHeader","inflateSetDictionary","inflateInfo","constants","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","zlib_inflate","GZheader","Inflate","inflator","next_out_utf8","utf8str","allowBufError","inflate$4","inflateRaw","ungzip","pako","USE_TYPEDARRAY","Uint32Array","ARRAY_TYPE","FlateWorker","action","_pako","_pakoAction","_pakoOptions","flate","_createPako","compressions$2","STORE","DEFLATE","signature$1","signature","decToHex","dec","hex","generateZipParts","streamedContent","streamingEnded","encodeFileName","dosTime","dosDate","file","useCustomEncoding","encodedFileName","utfEncodedFileName","encodedComment","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","extraFields","unicodePathExtraField","unicodeCommentExtraField","dataInfo","bitflag","isDir","extFileAttr","versionMadeBy","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCFullYear","getUTCMonth","getUTCDate","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","generateDataDescriptors","DATA_DESCRIPTOR","ZipFileWorker","streamFiles","bytesWritten","zipComment","zipPlatform","contentBuffer","dirRecords","currentSourceOffset","entriesCount","currentFile","_sources","currentFilePercent","remainingFiles","openedSource","closedSource","localDirLength","centralDirLength","dirEnd","CENTRAL_DIRECTORY_END","generateCentralDirectoryEnd","prepareNextSource","compressions","generate$1","generateWorker","zip","zipFileWorker","relativePath","fileCompression","zipCompression","compressionName","getCompression","NodejsStreamInputAdapter","filename","_upstreamEnded","_bindStream","_stream","NodejsStreamInputAdapter_1","defaults","generate","fileAdd","originalOptions","parent","forceTrailingSlash","createFolders","parentFolder","folderAdd","zipObjectContent","optimizedBinaryString","files","lastSlash","load","filter","search","folder","newFolder","clone","remove","kids","generateInternalStream","generateAsync","generateNodeStream","DataReader","DataReader$2","checkIndex","newIndex","setIndex","skip","byteAt","readInt","readString","readData","lastIndexOfSignature","readAndCheckSignature","readDate","dostime","UTC","DataReader_1","ArrayReader","sig","sig0","sig1","sig2","sig3","ArrayReader_1","StringReader","StringReader_1","Uint8ArrayReader","Uint8ArrayReader_1","NodeBufferReader","NodeBufferReader_1","readerFor","crc32fn","ZipEntry","loadOptions","ZipEntry$1","isEncrypted","bitFlag","useUTF8","readLocalPart","localExtraFieldsLength","fileNameLength","fileName","compressionMethod","findCompression","decompressed","readCentralPart","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","localHeaderOffset","readExtraFields","parseZIP64ExtraField","fileComment","processAttributes","madeBy","fileNameStr","extraReader","extraFieldId","extraFieldLength","extraFieldValue","id","handleUTF8","decodeParamType","fileCommentStr","upath","findExtraFieldUnicodePath","fileNameByteArray","decodeFileName","ucomment","findExtraFieldUnicodeComment","commentByteArray","upathField","ucommentField","zipEntry","ZipEntries","ZipEntries$1","checkSignature","expectedSignature","isSignature","askedIndex","currentIndex","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","decodeContent","readBlockZip64EndOfCentral","zip64EndOfCentralSize","zip64ExtensibleData","extraDataSize","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","readCentralDir","zip64","readEndOfCentral","endOfCentralDirOffset","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","expectedEndOfCentralDirOffset","prepareReader","zipEntries","checkEntryCRC32","JSZip","newObj","loadAsync","checkCRC32","promises","results","unsafeName","safeName","unsafeOriginalName","parse","S","keepComments","keepWhitespace","openBracketCC","closeBracketCC","minusCC","slashCC","exclamationCC","singleQuoteCC","doubleQuoteCC","openCornerBracketCC","closeCornerBracketCC","parseChildren","tagName","children","closeStart","parsedText","startCommentPos","cdataEndIndex","startDoctype","encapsuled","parseNode","parseText","trimmed","parseName","NoChildNodes","noChildNodes","attributes","parseString","startChar","startpos","attrValue","attrName","exec","simplify","setPos","child","_attributes","dept","cust_attr_order","simplifyLostLess","parentAttributes","attrs","_objectSpread","_step","_iterator","_createForOfIteratorHelper","readXmlFile","_x","_x2","_readXmlFile","_callee","_context","txml","t0","trimLeft","trimRight","tinycolor","color","rgb","ok","named","names","matchers","rgba","hsl","hsla","hsv","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","convertToPercentage","mod","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","round","_format","_gradientType","gradientType","_ok","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","pad2","rgbaToArgbHex","convertDecimalToHex","_desaturate","amount","toHsl","clamp01","_saturate","_greyscale","desaturate","_lighten","_brighten","toRgb","_darken","_spin","hue","_complement","polyad","step","_splitcomplement","_analogous","slices","_monochromatic","toHsv","modification","isDark","getBrightness","isLight","isValid","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","color1","color2","mix","rgb1","rgb2","readability","c1","isReadable","wcag2","wcag2Parms","parms","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","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","greenyellow","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","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","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen","flipped","flip","parseFloat","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","base64ArrayBuffer","arrayBuffer","encodings","byteRemainder","mainLength","extractFileExtension","eachElement","getTextByPathList","angleToDegrees","angle","escapeHtml","getMimeType","imgFileExt","isVideoLink","vdoFile","getSchemeColorFromTheme","schemeClr","warpObj","clrMap","phClr","slideLayoutClrOvride","sldClrMapOvr","schmClrName","refNode","getBorder","elType","lineNode","borderWidth","borderColor","schemeClrNode","shade","borderType","strokeDasharray","hueToRgb","t1","t2","getFillType","fillType","getPicFill","_x3","_getPicFill","img","rId","imgPath","imgExt","imgArrayBuffer","imgMimeType","getBgPicFill","_x4","_x5","_x6","_getBgPicFill","bgPr","sorce","picBase64","aBlipNode","aphaModFixNode","opacity","_context2","_callee2","getBgGradientFill","slideMasterContent","grdFill","gsLst","color_ary","lo_color","getSolidFill","lin","rot","sort","getSlideBackgroundFill","_x7","_getSlideBackgroundFill","slideContent","slideLayoutContent","bgRef","background","backgroundType","bgFillTyp","sldFill","clrMapOvr","_sldClrMapOvr","sldBgClr","gradientFill","_clrMapOvr","_sldClrMapOvr2","_sldClrMapOvr3","trueIdx","bgFillLst","sortblAry","sortByOrder","bgFillLstIdx","_bgFillTyp","_sldFill","_sldBgClr","_gradientFill","_clrMapOvr2","_sldClrMapOvr4","_bgFillTyp2","_sldFill2","_sldBgClr2","_gradientFill2","_phClr","_idx","_trueIdx","_bgFillLst","_sortblAry","_sortByOrder","_bgFillLstIdx","_bgFillTyp3","_sldFill3","_sldBgClr3","_gradientFill3","_bgFillTyp4","_sldFill4","_sldBgClr4","_gradientFill4","_phClr2","_idx2","_trueIdx2","_bgFillLst2","_sortblAry2","_sortByOrder2","_bgFillLstIdx2","_bgFillTyp5","_sldFill5","_sldBgClr5","_gradientFill5","_context3","bgFillLstTyp","idex","_callee3","getShapeFill","isSvgMode","fillColor","lumMod","lumOff","lum","solidFill","clrNode","findIndx","defBultColorVals","prstClr","hsl2rgb","sat","light","sysClr","isAlpha","alpha","al_color","hueMod","rgbStr","multiplier","cacl_h","applyHueMod","cacl_l","applyLumMod","applyLumOff","satMod","cacl_s","applySatMod","shadeValue","applyShade","tint","tintValue","applyTint","extractChartData","serNode","dataMat","dataRow","innerNode","colName","rowNames","xlabels","getChartInfo","plotArea","chart","grouping","barDir","holeSize","getHorizontalAlign","pNode","algn","lvlIdx","lvlNode","lvlStr","align","RATIO_EMUs_Points","getPosition","slideSpNode","slideLayoutSpNode","slideMasterSpNode","getSize","width","height","getShadow","chdwClrNode","outerShdwAttrs","blurRad","vx","sin","PI","cos","blur","genTextBody","textBodyNode","spNode","pFontStyle","isList","rNode","fldNode","brNode","item","listType","getListType","_step2","_iterator2","genSpanElement","pPrNode","lstStyle","slideMasterTextStyles","lvl","styleText","fontColor","rPrNode","lstStyledefRPr","sPstyle","getFontColor","fontSize","sz","getFontSize","fontType","typeface","fontSchemeNode","getFontType","fontBold","getFontBold","fontItalic","getFontItalic","fontDecoration","getFontDecoration","fontDecorationLine","getFontDecorationLine","fontSpace","spc","getFontSpace","shadow","txtShadow","getFontShadow","subscript","baseline","getFontSubscript","linkID","linkURL","shapeArc","cX","cY","rX","rY","stAng","endAng","isClose","dData","radians","getTableCellParams","tcNode","thisTblStyle","cellSource","bgFillschemeClr","rowTxtStyl","rowSpan","colSpan","vMerge","hMerge","getCelFill","getTableRowParams","trNodes","tblStylAttrObj","local_fillColor","local_fontColor","_parse","slides","filesInfo","_yield$getSlideInfo","defaultTextStyle","themeContent","_iterator3","_step3","singleSlide","getContentTypes","getSlideInfo","loadTheme","processSingleSlide","_getContentTypes","ContentTypesJson","subObj","slidesLocArray","slideLayoutsLocArray","_iterator4","_step4","sortSlideXml","p1","p2","slideLayouts","_getSlideInfo","sldSzAttrs","_loadTheme","preResContent","relationshipArray","themeURI","_iterator5","_step5","relationshipItem","_context4","_callee4","_x8","_processSingleSlide","sldFileName","resName","resContent","layoutFilename","diagramFilename","slideResObj","_iterator6","_step6","relationshipArrayItem","slideLayoutTables","slideLayoutResFilename","slideLayoutResContent","masterFilename","layoutResObj","_iterator7","_step7","_relationshipArrayItem","slideMasterTables","slideMasterResFilename","slideMasterResContent","themeFilename","masterResObj","_iterator8","_step8","_relationshipArrayItem2","themeResObj","themeName","themeResFileName","themeResContent","_iterator9","_step9","_relationshipArrayItem3","diagramResObj","digramFileContent","diagName","diagramResFileName","digramFileContentObjToStr","digramResContent","_iterator10","_step10","_relationshipArrayItem4","tableStyles","nodes","bgColor","elements","nodeKey","_iterator11","_step11","_ret","_context5","indexNodes","t3","t4","t5","t6","t7","processNodesInSlide","t8","_callee5","spTreeNode","idTable","idxTable","typeTable","targetNode","targetNodeItem","nvSpPrNode","_x9","_x10","_x11","_x12","_processNodesInSlide","nodeValue","json","_context6","processSpNode","processCxnSpNode","processPicNode","processGraphicFrameNode","processGroupSpNode","_callee6","_x13","_x14","_x15","_processGroupSpNode","xfrmNode","chx","chy","cx","cy","chcx","chcy","rotate","hs","_iterator12","_step12","_ret2","_context7","_callee7","genShape","txtRotate","xfrmList","slideXfrmNode","slideLayoutXfrmNode","slideMasterXfrmNode","shapType","custShapType","_getPosition","_getSize","isFlipV","isFlipH","txtXframeNode","txtXframeRot","_getBorder","outerShdwNode","vAlign","anchor","getVerticalAlign","isVertical","borderStrokeDasharray","pathLstNode","pathNodes","maxX","maxY","moveToNode","lnToNodes","cubicBezToNodes","arcToNodes","closeNode","multiSapeAry","moveToPtNode","moveToNoPt","spX","spY","lnToPtNode","lnToNoPt","ptX","ptY","cubicBezToPtNodesAry","pts_ary","pt","pt_obj","cubBzPt","arcToNodesAttrs","hR","wR","swAng","shftX","shftY","arcToPtNode","getCustomShapePath","_x16","_x17","_x18","_processPicNode","resObj","rid","imgName","_getPosition4","_getSize4","rotateNode","videoNode","videoRid","videoFile","videoFileExt","videoMimeType","uInt8ArrayVideo","videoBlob","isVdeoLink","audioNode","audioRid","audioFile","audioFileExt","uInt8ArrayAudio","audioBlob","_context8","URL","createObjectURL","_callee8","_x19","_x20","_x21","_processGraphicFrameNode","graphicTypeUri","oleObjNode","_context9","genTable","genChart","genDiagram","_callee9","tbl_border","tableNode","_getPosition2","_getSize2","getTblPr","firstRowAttr","firstColAttr","lastRowAttr","lastColAttr","bandRowAttr","bandColAttr","isFrstRowAttr","isFrstColAttr","isLstRowAttr","isLstColAttr","isBandRowAttr","isBandColAttr","tbleStyleId","tbleStylList","tblStyl","tblBorderStyl","tbl_borders","borderStyles","border","bottom","right","getTableBorders","tbl_bgcolor","tbl_bgFillschemeClr","trNode","tcNodes","tr","a_sorce","aBandNode","cell","td","_x22","_x23","_genChart","_callee10","_getPosition5","_getSize5","refName","_context10","chartType","_getPosition3","_getSize3","dgmDrwSpArray","el"],"mappings":"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"} \ No newline at end of file diff --git a/src/fill.js b/src/fill.js index 2626fad..4e2f130 100644 --- a/src/fill.js +++ b/src/fill.js @@ -452,9 +452,9 @@ export function getShapeFill(node, isSvgMode, warpObj) { } export function getSolidFill(solidFill, clrMap, phClr, warpObj) { - if (!solidFill) return solidFill + if (!solidFill) return '' - let color = '#ffffff' + let color = '' let clrNode if (solidFill['a:srgbClr']) { @@ -464,7 +464,7 @@ export function getSolidFill(solidFill, clrMap, phClr, warpObj) { else if (solidFill['a:schemeClr']) { clrNode = solidFill['a:schemeClr'] const schemeClr = 'a:' + getTextByPathList(clrNode, ['attrs', 'val']) - color = getSchemeColorFromTheme(schemeClr, warpObj, clrMap, phClr) || '#ffffff' + color = getSchemeColorFromTheme(schemeClr, warpObj, clrMap, phClr) || '' } else if (solidFill['a:scrgbClr']) { clrNode = solidFill['a:scrgbClr']