>>=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+="".concat(l,">"),o+="<".concat(b,">"),l=b):(o+="<".concat(b,">"),l=b),o+='')):(l&&(o+="".concat(l,">"),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.tagName + '>';\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 += `${isList}>`\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 += `${isList}>`\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":"kPAAe,SAASA,EAAgBC,EAAKC,EAAKC,GAWhD,OAVID,KAAOD,EACTG,OAAOC,eAAeJ,EAAKC,EAAK,CAC9BC,MAAOA,EACPG,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZP,EAAIC,GAAOC,EAENF,CACT,CCZA,SAASQ,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQZ,EAAKa,GACpE,IACE,IAAIC,EAAON,EAAIR,GAAKa,GAChBZ,EAAQa,EAAKb,KAIlB,CAHC,MAAOc,GAEP,YADAL,EAAOK,EAER,CACGD,EAAKE,KACPP,EAAQR,GAERgB,QAAQR,QAAQR,GAAOiB,KAAKP,EAAOC,EAEvC,CACe,SAASO,EAAkBC,GACxC,OAAO,WACL,IAAIC,EAAOC,KACTC,EAAOC,UACT,OAAO,IAAIP,SAAQ,SAAUR,EAASC,GACpC,IAAIF,EAAMY,EAAGK,MAAMJ,EAAME,GACzB,SAASZ,EAAMV,GACbM,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,OAAQX,EACjE,CACD,SAASW,EAAOc,GACdnB,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,QAASc,EAClE,CACDf,OAAMgB,EACZ,GACA,CACA,0iBC7BA,SAASC,EAAQ7B,GAGf,OAAQ8B,EAAAC,QAAiBF,EAAU,mBAAqBG,QAAU,iBAAmBA,OAAOC,SAAW,SAAUjC,GAC/G,cAAcA,CACf,EAAG,SAAUA,GACZ,OAAOA,GAAO,mBAAqBgC,QAAUhC,EAAIkC,cAAgBF,QAAUhC,IAAQgC,OAAOG,UAAY,gBAAkBnC,CACzH,EAAE8B,EAA4BC,QAAAK,YAAA,EAAMN,EAAOC,QAAiB,QAAID,EAAOC,QAAUF,EAAQ7B,EAC3F,CACD8B,EAAAC,QAAiBF,EAASC,EAA4BC,QAAAK,YAAA,EAAMN,EAAOC,QAAiB,QAAID,EAAOC,wBCT/F,IAAIF,EAAUQ,UAAgC,QAC9C,SAASC,IAEPR,EAAiBC,QAAAO,EAAsB,WACrC,OAAOP,CACX,EAAKD,EAAAC,QAAAK,YAA4B,EAAMN,EAAOC,QAAiB,QAAID,EAAOC,QACxE,IAAIA,EAAU,CAAE,EACdQ,EAAKpC,OAAOgC,UACZK,EAASD,EAAGE,eACZrC,EAAiBD,OAAOC,gBAAkB,SAAUJ,EAAKC,EAAKyC,GAC5D1C,EAAIC,GAAOyC,EAAKxC,KACjB,EACDyC,EAAU,mBAAqBX,OAASA,OAAS,CAAE,EACnDY,EAAiBD,EAAQV,UAAY,aACrCY,EAAsBF,EAAQG,eAAiB,kBAC/CC,EAAoBJ,EAAQK,aAAe,gBAC7C,SAASC,EAAOjD,EAAKC,EAAKC,GACxB,OAAOC,OAAOC,eAAeJ,EAAKC,EAAK,CACrCC,MAAOA,EACPG,YAAY,EACZC,cAAc,EACdC,UAAU,IACRP,EAAIC,EACT,CACD,IACEgD,EAAO,CAAA,EAAI,GAKZ,CAJC,MAAOtB,GACPsB,EAAS,SAAgBjD,EAAKC,EAAKC,GACjC,OAAOF,EAAIC,GAAOC,CACxB,CACG,CACD,SAASgD,EAAKC,EAASC,EAAS9B,EAAM+B,GACpC,IAAIC,EAAiBF,GAAWA,EAAQjB,qBAAqBoB,EAAYH,EAAUG,EACjFC,EAAYrD,OAAOsD,OAAOH,EAAenB,WACzCuB,EAAU,IAAIC,EAAQN,GAAe,IACvC,OAAOjD,EAAeoD,EAAW,UAAW,CAC1CtD,MAAO0D,EAAiBT,EAAS7B,EAAMoC,KACrCF,CACL,CACD,SAASK,EAASxC,EAAIrB,EAAKc,GACzB,IACE,MAAO,CACLgD,KAAM,SACNhD,IAAKO,EAAG0C,KAAK/D,EAAKc,GAOrB,CALC,MAAOa,GACP,MAAO,CACLmC,KAAM,QACNhD,IAAKa,EAER,CACF,CACDI,EAAQmB,KAAOA,EACf,IAAIc,EAAmB,CAAA,EACvB,SAAST,IAAc,CACvB,SAASU,IAAsB,CAC/B,SAASC,IAA+B,CACxC,IAAIC,EAAoB,CAAA,EACxBlB,EAAOkB,EAAmBvB,GAAgB,WACxC,OAAOrB,IACX,IACE,IAAI6C,EAAWjE,OAAOkE,eACpBC,EAA0BF,GAAYA,EAASA,EAASG,EAAO,MACjED,GAA2BA,IAA4B/B,GAAMC,EAAOuB,KAAKO,EAAyB1B,KAAoBuB,EAAoBG,GAC1I,IAAIE,EAAKN,EAA2B/B,UAAYoB,EAAUpB,UAAYhC,OAAOsD,OAAOU,GACpF,SAASM,EAAsBtC,GAC7B,CAAC,OAAQ,QAAS,UAAUuC,SAAQ,SAAUC,GAC5C1B,EAAOd,EAAWwC,GAAQ,SAAU7D,GAClC,OAAOS,KAAKqD,QAAQD,EAAQ7D,EACpC,GACA,GACG,CACD,SAAS+D,EAAcrB,EAAWsB,GAChC,SAASC,EAAOJ,EAAQ7D,EAAKJ,EAASC,GACpC,IAAIqE,EAASnB,EAASL,EAAUmB,GAASnB,EAAW1C,GACpD,GAAI,UAAYkE,EAAOlB,KAAM,CAC3B,IAAImB,EAASD,EAAOlE,IAClBZ,EAAQ+E,EAAO/E,MACjB,OAAOA,GAAS,UAAY2B,EAAQ3B,IAAUsC,EAAOuB,KAAK7D,EAAO,WAAa4E,EAAYpE,QAAQR,EAAMgF,SAAS/D,MAAK,SAAUjB,GAC9H6E,EAAO,OAAQ7E,EAAOQ,EAASC,EAChC,IAAE,SAAUgB,GACXoD,EAAO,QAASpD,EAAKjB,EAASC,EACxC,IAAamE,EAAYpE,QAAQR,GAAOiB,MAAK,SAAUgE,GAC7CF,EAAO/E,MAAQiF,EAAWzE,EAAQuE,EACnC,IAAE,SAAUjE,GACX,OAAO+D,EAAO,QAAS/D,EAAON,EAASC,EACjD,GACO,CACDA,EAAOqE,EAAOlE,IACf,CACD,IAAIsE,EACJhF,EAAemB,KAAM,UAAW,CAC9BrB,MAAO,SAAeyE,EAAQ7D,GAC5B,SAASuE,IACP,OAAO,IAAIP,GAAY,SAAUpE,EAASC,GACxCoE,EAAOJ,EAAQ7D,EAAKJ,EAASC,EACzC,GACS,CACD,OAAOyE,EAAkBA,EAAkBA,EAAgBjE,KAAKkE,EAA4BA,GAA8BA,GAC3H,GAEJ,CACD,SAASzB,EAAiBT,EAAS7B,EAAMoC,GACvC,IAAI4B,EAAQ,iBACZ,OAAO,SAAUX,EAAQ7D,GACvB,GAAI,cAAgBwE,EAAO,MAAM,IAAIC,MAAM,gCAC3C,GAAI,cAAgBD,EAAO,CACzB,GAAI,UAAYX,EAAQ,MAAM7D,EAC9B,OAAO0E,GACR,CACD,IAAK9B,EAAQiB,OAASA,EAAQjB,EAAQ5C,IAAMA,IAAO,CACjD,IAAI2E,EAAW/B,EAAQ+B,SACvB,GAAIA,EAAU,CACZ,IAAIC,EAAiBC,EAAoBF,EAAU/B,GACnD,GAAIgC,EAAgB,CAClB,GAAIA,IAAmB1B,EAAkB,SACzC,OAAO0B,CACR,CACF,CACD,GAAI,SAAWhC,EAAQiB,OAAQjB,EAAQkC,KAAOlC,EAAQmC,MAAQnC,EAAQ5C,SAAS,GAAI,UAAY4C,EAAQiB,OAAQ,CAC7G,GAAI,mBAAqBW,EAAO,MAAMA,EAAQ,YAAa5B,EAAQ5C,IACnE4C,EAAQoC,kBAAkBpC,EAAQ5C,IAC5C,KAAe,WAAa4C,EAAQiB,QAAUjB,EAAQqC,OAAO,SAAUrC,EAAQ5C,KACvEwE,EAAQ,YACR,IAAIN,EAASnB,EAASV,EAAS7B,EAAMoC,GACrC,GAAI,WAAasB,EAAOlB,KAAM,CAC5B,GAAIwB,EAAQ5B,EAAQzC,KAAO,YAAc,iBAAkB+D,EAAOlE,MAAQkD,EAAkB,SAC5F,MAAO,CACL9D,MAAO8E,EAAOlE,IACdG,KAAMyC,EAAQzC,KAEjB,CACD,UAAY+D,EAAOlB,OAASwB,EAAQ,YAAa5B,EAAQiB,OAAS,QAASjB,EAAQ5C,IAAMkE,EAAOlE,IACjG,CACP,CACG,CACD,SAAS6E,EAAoBF,EAAU/B,GACrC,IAAIiB,EAASc,EAASxD,SAASyB,EAAQiB,QACvC,QAAI/C,IAAc+C,EAAQ,CACxB,GAAIjB,EAAQ+B,SAAW,KAAM,UAAY/B,EAAQiB,OAAQ,CACvD,GAAIc,EAASxD,SAAiB,SAAMyB,EAAQiB,OAAS,SAAUjB,EAAQ5C,SAAMc,EAAW+D,EAAoBF,EAAU/B,GAAU,UAAYA,EAAQiB,QAAS,OAAOX,EACpKN,EAAQiB,OAAS,QAASjB,EAAQ5C,IAAM,IAAIkF,UAAU,iDACvD,CACD,OAAOhC,CACR,CACD,IAAIgB,EAASnB,EAASc,EAAQc,EAASxD,SAAUyB,EAAQ5C,KACzD,GAAI,UAAYkE,EAAOlB,KAAM,OAAOJ,EAAQiB,OAAS,QAASjB,EAAQ5C,IAAMkE,EAAOlE,IAAK4C,EAAQ+B,SAAW,KAAMzB,EACjH,IAAIjD,EAAOiE,EAAOlE,IAClB,OAAOC,EAAOA,EAAKE,MAAQyC,EAAQ+B,EAASQ,YAAclF,EAAKb,MAAOwD,EAAQwC,KAAOT,EAASU,QAAS,WAAazC,EAAQiB,SAAWjB,EAAQiB,OAAS,OAAQjB,EAAQ5C,SAAMc,GAAY8B,EAAQ+B,SAAW,KAAMzB,GAAoBjD,GAAQ2C,EAAQiB,OAAS,QAASjB,EAAQ5C,IAAM,IAAIkF,UAAU,oCAAqCtC,EAAQ+B,SAAW,KAAMzB,EACpW,CACD,SAASoC,EAAaC,GACpB,IAAIC,EAAQ,CACVC,OAAQF,EAAK,IAEf,KAAKA,IAASC,EAAME,SAAWH,EAAK,IAAK,KAAKA,IAASC,EAAMG,WAAaJ,EAAK,GAAIC,EAAMI,SAAWL,EAAK,IAAK9E,KAAKoF,WAAWC,KAAKN,EACpI,CACD,SAASO,EAAcP,GACrB,IAAItB,EAASsB,EAAMQ,YAAc,GACjC9B,EAAOlB,KAAO,gBAAiBkB,EAAOlE,IAAKwF,EAAMQ,WAAa9B,CAC/D,CACD,SAASrB,EAAQN,GACf9B,KAAKoF,WAAa,CAAC,CACjBJ,OAAQ,SACNlD,EAAYqB,QAAQ0B,EAAc7E,MAAOA,KAAKwF,OAAM,EACzD,CACD,SAASxC,EAAOyC,GACd,GAAIA,EAAU,CACZ,IAAIC,EAAiBD,EAASpE,GAC9B,GAAIqE,EAAgB,OAAOA,EAAelD,KAAKiD,GAC/C,GAAI,mBAAqBA,EAASd,KAAM,OAAOc,EAC/C,IAAKE,MAAMF,EAASG,QAAS,CAC3B,IAAIC,GAAK,EACPlB,EAAO,SAASA,IACd,OAASkB,EAAIJ,EAASG,QACpB,GAAI3E,EAAOuB,KAAKiD,EAAUI,GAAI,OAAOlB,EAAKhG,MAAQ8G,EAASI,GAAIlB,EAAKjF,MAAO,EAAIiF,EAEjF,OAAOA,EAAKhG,WAAQ0B,EAAWsE,EAAKjF,MAAO,EAAIiF,CAC3D,EACQ,OAAOA,EAAKA,KAAOA,CACpB,CACF,CACD,MAAO,CACLA,KAAMV,EAET,CACD,SAASA,IACP,MAAO,CACLtF,WAAO0B,EACPX,MAAM,EAET,CACD,OAAOgD,EAAkB9B,UAAY+B,EAA4B9D,EAAeoE,EAAI,cAAe,CACjGtE,MAAOgE,EACP5D,cAAc,IACZF,EAAe8D,EAA4B,cAAe,CAC5DhE,MAAO+D,EACP3D,cAAc,IACZ2D,EAAkBoD,YAAcpE,EAAOiB,EAA4BnB,EAAmB,qBAAsBhB,EAAQuF,oBAAsB,SAAUC,GACtJ,IAAIC,EAAO,mBAAqBD,GAAUA,EAAOrF,YACjD,QAASsF,IAASA,IAASvD,GAAqB,uBAAyBuD,EAAKH,aAAeG,EAAKC,MACtG,EAAK1F,EAAQ2F,KAAO,SAAUH,GAC1B,OAAOpH,OAAOwH,eAAiBxH,OAAOwH,eAAeJ,EAAQrD,IAA+BqD,EAAOK,UAAY1D,EAA4BjB,EAAOsE,EAAQxE,EAAmB,sBAAuBwE,EAAOpF,UAAYhC,OAAOsD,OAAOe,GAAK+C,CAC9O,EAAKxF,EAAQ8F,MAAQ,SAAU/G,GAC3B,MAAO,CACLoE,QAASpE,EAEf,EAAK2D,EAAsBI,EAAc1C,WAAYc,EAAO4B,EAAc1C,UAAWU,GAAqB,WACtG,OAAOtB,IACR,IAAGQ,EAAQ8C,cAAgBA,EAAe9C,EAAQ+F,MAAQ,SAAU3E,EAASC,EAAS9B,EAAM+B,EAAayB,QACxG,IAAWA,IAAgBA,EAAc5D,SACzC,IAAI6G,EAAO,IAAIlD,EAAc3B,EAAKC,EAASC,EAAS9B,EAAM+B,GAAcyB,GACxE,OAAO/C,EAAQuF,oBAAoBlE,GAAW2E,EAAOA,EAAK7B,OAAO/E,MAAK,SAAU8D,GAC9E,OAAOA,EAAOhE,KAAOgE,EAAO/E,MAAQ6H,EAAK7B,MAC/C,GACG,EAAEzB,EAAsBD,GAAKvB,EAAOuB,EAAIzB,EAAmB,aAAcE,EAAOuB,EAAI5B,GAAgB,WACnG,OAAOrB,IACR,IAAG0B,EAAOuB,EAAI,YAAY,WACzB,MAAO,oBACR,IAAGzC,EAAQiG,KAAO,SAAUC,GAC3B,IAAIC,EAAS/H,OAAO8H,GAClBD,EAAO,GACT,IAAK,IAAI/H,KAAOiI,EACdF,EAAKpB,KAAK3G,GAEZ,OAAO+H,EAAKG,UAAW,SAASjC,IAC9B,KAAO8B,EAAKb,QAAS,CACnB,IAAIlH,EAAM+H,EAAKI,MACf,GAAInI,KAAOiI,EAAQ,OAAOhC,EAAKhG,MAAQD,EAAKiG,EAAKjF,MAAO,EAAIiF,CAC7D,CACD,OAAOA,EAAKjF,MAAO,EAAIiF,CAC7B,CACG,EAAEnE,EAAQwC,OAASA,EAAQZ,EAAQxB,UAAY,CAC9CD,YAAayB,EACboD,MAAO,SAAesB,GACpB,GAAI9G,KAAK+G,KAAO,EAAG/G,KAAK2E,KAAO,EAAG3E,KAAKqE,KAAOrE,KAAKsE,WAAQjE,EAAWL,KAAKN,MAAO,EAAIM,KAAKkE,SAAW,KAAMlE,KAAKoD,OAAS,OAAQpD,KAAKT,SAAMc,EAAWL,KAAKoF,WAAWjC,QAAQmC,IAAiBwB,EAAe,IAAK,IAAIZ,KAAQlG,KAC/N,MAAQkG,EAAKc,OAAO,IAAM/F,EAAOuB,KAAKxC,KAAMkG,KAAUP,OAAOO,EAAKe,MAAM,MAAQjH,KAAKkG,QAAQ7F,EAEhG,EACD6G,KAAM,WACJlH,KAAKN,MAAO,EACZ,IAAIyH,EAAanH,KAAKoF,WAAW,GAAGG,WACpC,GAAI,UAAY4B,EAAW5E,KAAM,MAAM4E,EAAW5H,IAClD,OAAOS,KAAKoH,IACb,EACD7C,kBAAmB,SAA2B8C,GAC5C,GAAIrH,KAAKN,KAAM,MAAM2H,EACrB,IAAIlF,EAAUnC,KACd,SAASsH,EAAOC,EAAKC,GACnB,OAAO/D,EAAOlB,KAAO,QAASkB,EAAOlE,IAAM8H,EAAWlF,EAAQwC,KAAO4C,EAAKC,IAAWrF,EAAQiB,OAAS,OAAQjB,EAAQ5C,SAAMc,KAAcmH,CAC3I,CACD,IAAK,IAAI3B,EAAI7F,KAAKoF,WAAWQ,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAId,EAAQ/E,KAAKoF,WAAWS,GAC1BpC,EAASsB,EAAMQ,WACjB,GAAI,SAAWR,EAAMC,OAAQ,OAAOsC,EAAO,OAC3C,GAAIvC,EAAMC,QAAUhF,KAAK+G,KAAM,CAC7B,IAAIU,EAAWxG,EAAOuB,KAAKuC,EAAO,YAChC2C,EAAazG,EAAOuB,KAAKuC,EAAO,cAClC,GAAI0C,GAAYC,EAAY,CAC1B,GAAI1H,KAAK+G,KAAOhC,EAAME,SAAU,OAAOqC,EAAOvC,EAAME,UAAU,GAC9D,GAAIjF,KAAK+G,KAAOhC,EAAMG,WAAY,OAAOoC,EAAOvC,EAAMG,WACvD,MAAM,GAAIuC,GACT,GAAIzH,KAAK+G,KAAOhC,EAAME,SAAU,OAAOqC,EAAOvC,EAAME,UAAU,OACzD,CACL,IAAKyC,EAAY,MAAM,IAAI1D,MAAM,0CACjC,GAAIhE,KAAK+G,KAAOhC,EAAMG,WAAY,OAAOoC,EAAOvC,EAAMG,WACvD,CACF,CACF,CACF,EACDV,OAAQ,SAAgBjC,EAAMhD,GAC5B,IAAK,IAAIsG,EAAI7F,KAAKoF,WAAWQ,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAId,EAAQ/E,KAAKoF,WAAWS,GAC5B,GAAId,EAAMC,QAAUhF,KAAK+G,MAAQ9F,EAAOuB,KAAKuC,EAAO,eAAiB/E,KAAK+G,KAAOhC,EAAMG,WAAY,CACjG,IAAIyC,EAAe5C,EACnB,KACD,CACF,CACD4C,IAAiB,UAAYpF,GAAQ,aAAeA,IAASoF,EAAa3C,QAAUzF,GAAOA,GAAOoI,EAAazC,aAAeyC,EAAe,MAC7I,IAAIlE,EAASkE,EAAeA,EAAapC,WAAa,CAAA,EACtD,OAAO9B,EAAOlB,KAAOA,EAAMkB,EAAOlE,IAAMA,EAAKoI,GAAgB3H,KAAKoD,OAAS,OAAQpD,KAAK2E,KAAOgD,EAAazC,WAAYzC,GAAoBzC,KAAK4H,SAASnE,EAC3J,EACDmE,SAAU,SAAkBnE,EAAQ0B,GAClC,GAAI,UAAY1B,EAAOlB,KAAM,MAAMkB,EAAOlE,IAC1C,MAAO,UAAYkE,EAAOlB,MAAQ,aAAekB,EAAOlB,KAAOvC,KAAK2E,KAAOlB,EAAOlE,IAAM,WAAakE,EAAOlB,MAAQvC,KAAKoH,KAAOpH,KAAKT,IAAMkE,EAAOlE,IAAKS,KAAKoD,OAAS,SAAUpD,KAAK2E,KAAO,OAAS,WAAalB,EAAOlB,MAAQ4C,IAAanF,KAAK2E,KAAOQ,GAAW1C,CACrQ,EACDoF,OAAQ,SAAgB3C,GACtB,IAAK,IAAIW,EAAI7F,KAAKoF,WAAWQ,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAId,EAAQ/E,KAAKoF,WAAWS,GAC5B,GAAId,EAAMG,aAAeA,EAAY,OAAOlF,KAAK4H,SAAS7C,EAAMQ,WAAYR,EAAMI,UAAWG,EAAcP,GAAQtC,CACpH,CACF,EACDqF,MAAS,SAAgB9C,GACvB,IAAK,IAAIa,EAAI7F,KAAKoF,WAAWQ,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAId,EAAQ/E,KAAKoF,WAAWS,GAC5B,GAAId,EAAMC,SAAWA,EAAQ,CAC3B,IAAIvB,EAASsB,EAAMQ,WACnB,GAAI,UAAY9B,EAAOlB,KAAM,CAC3B,IAAIwF,EAAStE,EAAOlE,IACpB+F,EAAcP,EACf,CACD,OAAOgD,CACR,CACF,CACD,MAAM,IAAI/D,MAAM,wBACjB,EACDgE,cAAe,SAAuBvC,EAAUf,EAAYE,GAC1D,OAAO5E,KAAKkE,SAAW,CACrBxD,SAAUsC,EAAOyC,GACjBf,WAAYA,EACZE,QAASA,GACR,SAAW5E,KAAKoD,SAAWpD,KAAKT,SAAMc,GAAYoC,CACtD,GACAjC,CACJ,CACDD,EAAAC,QAAiBO,EAAqBR,EAA4BC,QAAAK,YAAA,EAAMN,EAAOC,QAAiB,QAAID,EAAOC,YCxT3G,IAAIyH,EAAUnH,EAAwCN,UACtD0H,EAAiBD,EAGjB,IACEE,mBAAqBF,CAOvB,CANE,MAAOG,GACmB,iBAAfC,WACTA,WAAWF,mBAAqBF,EAEhCK,SAAS,IAAK,yBAAdA,CAAwCL,EAE5C,eCdAM,EAAkC,oBAAXC,OAAyBA,OACpB,oBAATzI,KAAuBA,KACZ,oBAAX0I,OAAyBA,OAAS,CAAE,ECDnDC,EAAS,GACTC,EAAY,GACZC,EAA4B,oBAAfC,WAA6BA,WAAaC,MACvDC,GAAS,EACb,SAASC,IACPD,GAAS,EAET,IADA,IAAIE,EAAO,mEACFpD,EAAI,EAAGqD,EAAMD,EAAKrD,OAAQC,EAAIqD,IAAOrD,EAC5C6C,EAAO7C,GAAKoD,EAAKpD,GACjB8C,EAAUM,EAAKE,WAAWtD,IAAMA,EAGlC8C,EAAU,IAAIQ,WAAW,IAAM,GAC/BR,EAAU,IAAIQ,WAAW,IAAM,EACjC,CAmDA,SAASC,EAAaC,EAAOC,EAAOC,GAGlC,IAFA,IAAIC,EALoBC,EAMpBC,EAAS,GACJ7D,EAAIyD,EAAOzD,EAAI0D,EAAK1D,GAAK,EAChC2D,GAAOH,EAAMxD,IAAM,KAAOwD,EAAMxD,EAAI,IAAM,GAAMwD,EAAMxD,EAAI,GAC1D6D,EAAOrE,KARFqD,GADiBe,EASMD,IART,GAAK,IAAQd,EAAOe,GAAO,GAAK,IAAQf,EAAOe,GAAO,EAAI,IAAQf,EAAa,GAANe,IAU9F,OAAOC,EAAOC,KAAK,GACrB,CAEO,SAASC,EAAeP,GAI7B,IAAIG,EAHCT,GACHC,IAUF,IAPA,IAAIE,EAAMG,EAAMzD,OACZiE,EAAaX,EAAM,EACnBQ,EAAS,GACTI,EAAQ,GACRC,EAAiB,MAGZlE,EAAI,EAAGmE,EAAOd,EAAMW,EAAYhE,EAAImE,EAAMnE,GAAKkE,EACtDD,EAAMzE,KAAK+D,EAAYC,EAAOxD,EAAIA,EAAIkE,EAAkBC,EAAOA,EAAQnE,EAAIkE,IAmB7E,OAfmB,IAAfF,GACFL,EAAMH,EAAMH,EAAM,GAClBQ,GAAUhB,EAAOc,GAAO,GACxBE,GAAUhB,EAAQc,GAAO,EAAK,IAC9BE,GAAU,MACc,IAAfG,IACTL,GAAOH,EAAMH,EAAM,IAAM,GAAMG,EAAMH,EAAM,GAC3CQ,GAAUhB,EAAOc,GAAO,IACxBE,GAAUhB,EAAQc,GAAO,EAAK,IAC9BE,GAAUhB,EAAQc,GAAO,EAAK,IAC9BE,GAAU,KAGZI,EAAMzE,KAAKqE,GAEJI,EAAMH,KAAK,GACpB,CC5GO,SAASM,EAAMC,EAAQC,EAAQC,EAAMC,EAAMC,GAChD,IAAIC,EAAGC,EACHC,EAAgB,EAATH,EAAaD,EAAO,EAC3BK,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBE,GAAS,EACT/E,EAAIuE,EAAQE,EAAS,EAAK,EAC1BO,EAAIT,GAAQ,EAAI,EAChBU,EAAIZ,EAAOC,EAAStE,GAOxB,IALAA,GAAKgF,EAELN,EAAIO,GAAM,IAAOF,GAAU,EAC3BE,KAAQF,EACRA,GAASH,EACFG,EAAQ,EAAGL,EAAQ,IAAJA,EAAUL,EAAOC,EAAStE,GAAIA,GAAKgF,EAAGD,GAAS,GAKrE,IAHAJ,EAAID,GAAM,IAAOK,GAAU,EAC3BL,KAAQK,EACRA,GAASP,EACFO,EAAQ,EAAGJ,EAAQ,IAAJA,EAAUN,EAAOC,EAAStE,GAAIA,GAAKgF,EAAGD,GAAS,GAErE,GAAU,IAANL,EACFA,EAAI,EAAII,MACH,IAAIJ,IAAMG,EACf,OAAOF,EAAIO,IAAsBC,KAAdF,GAAK,EAAI,GAE5BN,GAAQS,KAAKC,IAAI,EAAGb,GACpBE,GAAQI,CACT,CACD,OAAQG,GAAK,EAAI,GAAKN,EAAIS,KAAKC,IAAI,EAAGX,EAAIF,EAC5C,CAEO,SAASc,EAAOjB,EAAQvL,EAAOwL,EAAQC,EAAMC,EAAMC,GACxD,IAAIC,EAAGC,EAAGY,EACNX,EAAgB,EAATH,EAAaD,EAAO,EAC3BK,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBW,EAAe,KAAThB,EAAcY,KAAKC,IAAI,GAAI,IAAMD,KAAKC,IAAI,GAAI,IAAM,EAC1DrF,EAAIuE,EAAO,EAAKE,EAAS,EACzBO,EAAIT,EAAO,GAAK,EAChBU,EAAInM,EAAQ,GAAgB,IAAVA,GAAe,EAAIA,EAAQ,EAAK,EAAI,EAmC1D,IAjCAA,EAAQsM,KAAKK,IAAI3M,GAEbgH,MAAMhH,IAAUA,IAAUqM,KAC5BR,EAAI7E,MAAMhH,GAAS,EAAI,EACvB4L,EAAIG,IAEJH,EAAIU,KAAKM,MAAMN,KAAKO,IAAI7M,GAASsM,KAAKQ,KAClC9M,GAASyM,EAAIH,KAAKC,IAAI,GAAIX,IAAM,IAClCA,IACAa,GAAK,IAGLzM,GADE4L,EAAII,GAAS,EACNU,EAAKD,EAELC,EAAKJ,KAAKC,IAAI,EAAG,EAAIP,IAEpBS,GAAK,IACfb,IACAa,GAAK,GAGHb,EAAII,GAASD,GACfF,EAAI,EACJD,EAAIG,GACKH,EAAII,GAAS,GACtBH,GAAK7L,EAAQyM,EAAI,GAAKH,KAAKC,IAAI,EAAGb,GAClCE,GAAQI,IAERH,EAAI7L,EAAQsM,KAAKC,IAAI,EAAGP,EAAQ,GAAKM,KAAKC,IAAI,EAAGb,GACjDE,EAAI,IAIDF,GAAQ,EAAGH,EAAOC,EAAStE,GAAS,IAAJ2E,EAAU3E,GAAKgF,EAAGL,GAAK,IAAKH,GAAQ,GAI3E,IAFAE,EAAKA,GAAKF,EAAQG,EAClBC,GAAQJ,EACDI,EAAO,EAAGP,EAAOC,EAAStE,GAAS,IAAJ0E,EAAU1E,GAAKgF,EAAGN,GAAK,IAAKE,GAAQ,GAE1EP,EAAOC,EAAStE,EAAIgF,IAAU,IAAJC,CAC5B,CCpFA,IAAIY,EAAW,CAAE,EAACA,SAElBC,EAAe7C,MAAM8C,SAAW,SAAUC,GACxC,MAA6B,kBAAtBH,EAASlJ,KAAKqJ,EACvB,ECmCAC,EAAOC,yBAAqD1L,IAA/BmI,EAAOuD,qBAChCvD,EAAOuD,oBAMX,IAAIC,EAAcC,IAmBlB,SAASA,IACP,OAAOH,EAAOC,oBACV,WACA,UACL,CAED,SAASG,EAAcC,EAAMvG,GAC3B,GAAIqG,IAAerG,EACjB,MAAM,IAAIwG,WAAW,8BAcvB,OAZIN,EAAOC,qBAETI,EAAO,IAAItD,WAAWjD,IACjBS,UAAYyF,EAAOlL,WAGX,OAATuL,IACFA,EAAO,IAAIL,EAAOlG,IAEpBuG,EAAKvG,OAASA,GAGTuG,CACR,CAYM,SAASL,EAAQvM,EAAK8M,EAAkBzG,GAC7C,KAAKkG,EAAOC,qBAAyB/L,gBAAgB8L,GACnD,OAAO,IAAIA,EAAOvM,EAAK8M,EAAkBzG,GAI3C,GAAmB,iBAARrG,EAAkB,CAC3B,GAAgC,iBAArB8M,EACT,MAAM,IAAIrI,MACR,qEAGJ,OAAOsI,EAAYtM,KAAMT,EAC1B,CACD,OAAOgN,EAAKvM,KAAMT,EAAK8M,EAAkBzG,EAC1C,CAUD,SAAS2G,EAAMJ,EAAMxN,EAAO0N,EAAkBzG,GAC5C,GAAqB,iBAAVjH,EACT,MAAM,IAAI8F,UAAU,yCAGtB,MAA2B,oBAAhB+H,aAA+B7N,aAAiB6N,YA6H7D,SAA0BL,EAAMM,EAAOC,EAAY9G,GAGjD,GAFA6G,EAAME,WAEFD,EAAa,GAAKD,EAAME,WAAaD,EACvC,MAAM,IAAIN,WAAW,6BAGvB,GAAIK,EAAME,WAAaD,GAAc9G,GAAU,GAC7C,MAAM,IAAIwG,WAAW,6BAIrBK,OADiBpM,IAAfqM,QAAuCrM,IAAXuF,EACtB,IAAIiD,WAAW4D,QACHpM,IAAXuF,EACD,IAAIiD,WAAW4D,EAAOC,GAEtB,IAAI7D,WAAW4D,EAAOC,EAAY9G,GAGxCkG,EAAOC,qBAETI,EAAOM,GACFpG,UAAYyF,EAAOlL,UAGxBuL,EAAOS,EAAcT,EAAMM,GAE7B,OAAON,CACR,CAxJUU,CAAgBV,EAAMxN,EAAO0N,EAAkBzG,GAGnC,iBAAVjH,EAwFb,SAAqBwN,EAAMW,EAAQC,GACT,iBAAbA,GAAsC,KAAbA,IAClCA,EAAW,QAGb,IAAKjB,EAAOkB,WAAWD,GACrB,MAAM,IAAItI,UAAU,8CAGtB,IAAImB,EAAwC,EAA/B+G,EAAWG,EAAQC,GAG5BE,GAFJd,EAAOD,EAAaC,EAAMvG,IAERuF,MAAM2B,EAAQC,GAE5BE,IAAWrH,IAIbuG,EAAOA,EAAKlF,MAAM,EAAGgG,IAGvB,OAAOd,CACR,CA7GUe,CAAWf,EAAMxN,EAAO0N,GAsJnC,SAAqBF,EAAM1N,GACzB,GAAI0O,EAAiB1O,GAAM,CACzB,IAAIyK,EAA4B,EAAtBkE,EAAQ3O,EAAImH,QAGtB,OAAoB,KAFpBuG,EAAOD,EAAaC,EAAMjD,IAEjBtD,QAITnH,EAAI4O,KAAKlB,EAAM,EAAG,EAAGjD,GAHZiD,CAKV,CAED,GAAI1N,EAAK,CACP,GAA4B,oBAAhB+N,aACR/N,EAAIyL,kBAAkBsC,aAAgB,WAAY/N,EACpD,MAA0B,iBAAfA,EAAImH,SAg9CLc,EAh9CkCjI,EAAImH,SAi9CrCc,EAh9CFwF,EAAaC,EAAM,GAErBS,EAAcT,EAAM1N,GAG7B,GAAiB,WAAbA,EAAI8D,MAAqBqJ,EAAQnN,EAAI6O,MACvC,OAAOV,EAAcT,EAAM1N,EAAI6O,KAElC,CAu8CH,IAAgB5G,EAr8Cd,MAAM,IAAIjC,UAAU,qFACrB,CA/KQ8I,CAAWpB,EAAMxN,EACzB,CA2BD,SAAS6O,EAAYC,GACnB,GAAoB,iBAATA,EACT,MAAM,IAAIhJ,UAAU,oCACf,GAAIgJ,EAAO,EAChB,MAAM,IAAIrB,WAAW,uCAExB,CA0BD,SAASE,EAAaH,EAAMsB,GAG1B,GAFAD,EAAWC,GACXtB,EAAOD,EAAaC,EAAMsB,EAAO,EAAI,EAAoB,EAAhBL,EAAQK,KAC5C3B,EAAOC,oBACV,IAAK,IAAIlG,EAAI,EAAGA,EAAI4H,IAAQ5H,EAC1BsG,EAAKtG,GAAK,EAGd,OAAOsG,CACR,CAuCD,SAASS,EAAeT,EAAMM,GAC5B,IAAI7G,EAAS6G,EAAM7G,OAAS,EAAI,EAA4B,EAAxBwH,EAAQX,EAAM7G,QAClDuG,EAAOD,EAAaC,EAAMvG,GAC1B,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQC,GAAK,EAC/BsG,EAAKtG,GAAgB,IAAX4G,EAAM5G,GAElB,OAAOsG,CACR,CA8DD,SAASiB,EAASxH,GAGhB,GAAIA,GAAUqG,IACZ,MAAM,IAAIG,WAAW,0DACaH,IAAaP,SAAS,IAAM,UAEhE,OAAgB,EAAT9F,CACR,CASD,SAASuH,EAAkBO,GACzB,QAAe,MAALA,IAAaA,EAAEC,UAC1B,CA0ED,SAAShB,EAAYG,EAAQC,GAC3B,GAAII,EAAiBL,GACnB,OAAOA,EAAOlH,OAEhB,GAA2B,oBAAhB4G,aAA6D,mBAAvBA,YAAYoB,SACxDpB,YAAYoB,OAAOd,IAAWA,aAAkBN,aACnD,OAAOM,EAAOH,WAEM,iBAAXG,IACTA,EAAS,GAAKA,GAGhB,IAAI5D,EAAM4D,EAAOlH,OACjB,GAAY,IAARsD,EAAW,OAAO,EAItB,IADA,IAAI2E,GAAc,IAEhB,OAAQd,GACN,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAO7D,EACT,IAAK,OACL,IAAK,QACL,UAAK7I,EACH,OAAOyN,GAAYhB,GAAQlH,OAC7B,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAa,EAANsD,EACT,IAAK,MACH,OAAOA,IAAQ,EACjB,IAAK,SACH,OAAO6E,GAAcjB,GAAQlH,OAC/B,QACE,GAAIiI,EAAa,OAAOC,GAAYhB,GAAQlH,OAC5CmH,GAAY,GAAKA,GAAUiB,cAC3BH,GAAc,EAGrB,CAGD,SAASI,EAAclB,EAAUzD,EAAOC,GACtC,IAAIsE,GAAc,EAclB,SALcxN,IAAViJ,GAAuBA,EAAQ,KACjCA,EAAQ,GAINA,EAAQtJ,KAAK4F,OACf,MAAO,GAOT,SAJYvF,IAARkJ,GAAqBA,EAAMvJ,KAAK4F,UAClC2D,EAAMvJ,KAAK4F,QAGT2D,GAAO,EACT,MAAO,GAOT,IAHAA,KAAS,KACTD,KAAW,GAGT,MAAO,GAKT,IAFKyD,IAAUA,EAAW,UAGxB,OAAQA,GACN,IAAK,MACH,OAAOmB,EAASlO,KAAMsJ,EAAOC,GAE/B,IAAK,OACL,IAAK,QACH,OAAO4E,EAAUnO,KAAMsJ,EAAOC,GAEhC,IAAK,QACH,OAAO6E,EAAWpO,KAAMsJ,EAAOC,GAEjC,IAAK,SACL,IAAK,SACH,OAAO8E,EAAYrO,KAAMsJ,EAAOC,GAElC,IAAK,SACH,OAAO+E,EAAYtO,KAAMsJ,EAAOC,GAElC,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAOgF,EAAavO,KAAMsJ,EAAOC,GAEnC,QACE,GAAIsE,EAAa,MAAM,IAAIpJ,UAAU,qBAAuBsI,GAC5DA,GAAYA,EAAW,IAAIiB,cAC3BH,GAAc,EAGrB,CAMD,SAASW,EAAMd,EAAGe,EAAGjE,GACnB,IAAI3E,EAAI6H,EAAEe,GACVf,EAAEe,GAAKf,EAAElD,GACTkD,EAAElD,GAAK3E,CACR,CAkID,SAAS6I,EAAsBxE,EAAQxD,EAAKgG,EAAYK,EAAU4B,GAEhE,GAAsB,IAAlBzE,EAAOtE,OAAc,OAAQ,EAmBjC,GAhB0B,iBAAf8G,GACTK,EAAWL,EACXA,EAAa,GACJA,EAAa,WACtBA,EAAa,WACJA,GAAc,aACvBA,GAAc,YAEhBA,GAAcA,EACV/G,MAAM+G,KAERA,EAAaiC,EAAM,EAAKzE,EAAOtE,OAAS,GAItC8G,EAAa,IAAGA,EAAaxC,EAAOtE,OAAS8G,GAC7CA,GAAcxC,EAAOtE,OAAQ,CAC/B,GAAI+I,EAAK,OAAQ,EACZjC,EAAaxC,EAAOtE,OAAS,CACnC,MAAM,GAAI8G,EAAa,EAAG,CACzB,IAAIiC,EACC,OAAQ,EADJjC,EAAa,CAEvB,CAQD,GALmB,iBAARhG,IACTA,EAAMoF,EAAOS,KAAK7F,EAAKqG,IAIrBI,EAAiBzG,GAEnB,OAAmB,IAAfA,EAAId,QACE,EAEHgJ,EAAa1E,EAAQxD,EAAKgG,EAAYK,EAAU4B,GAClD,GAAmB,iBAARjI,EAEhB,OADAA,GAAY,IACRoF,EAAOC,qBACiC,mBAAjClD,WAAWjI,UAAUiO,QAC1BF,EACK9F,WAAWjI,UAAUiO,QAAQrM,KAAK0H,EAAQxD,EAAKgG,GAE/C7D,WAAWjI,UAAUkO,YAAYtM,KAAK0H,EAAQxD,EAAKgG,GAGvDkC,EAAa1E,EAAQ,CAAExD,GAAOgG,EAAYK,EAAU4B,GAG7D,MAAM,IAAIlK,UAAU,uCACrB,CAED,SAASmK,EAAc/C,EAAKnF,EAAKgG,EAAYK,EAAU4B,GACrD,IA0BI9I,EA1BAkJ,EAAY,EACZC,EAAYnD,EAAIjG,OAChBqJ,EAAYvI,EAAId,OAEpB,QAAiBvF,IAAb0M,IAEe,UADjBA,EAAWmC,OAAOnC,GAAUiB,gBACY,UAAbjB,GACV,YAAbA,GAAuC,aAAbA,GAAyB,CACrD,GAAIlB,EAAIjG,OAAS,GAAKc,EAAId,OAAS,EACjC,OAAQ,EAEVmJ,EAAY,EACZC,GAAa,EACbC,GAAa,EACbvC,GAAc,CACf,CAGH,SAASzC,EAAMkF,EAAKtJ,GAClB,OAAkB,IAAdkJ,EACKI,EAAItJ,GAEJsJ,EAAIC,aAAavJ,EAAIkJ,EAE/B,CAGD,GAAIJ,EAAK,CACP,IAAIU,GAAc,EAClB,IAAKxJ,EAAI6G,EAAY7G,EAAImJ,EAAWnJ,IAClC,GAAIoE,EAAK4B,EAAKhG,KAAOoE,EAAKvD,GAAqB,IAAhB2I,EAAoB,EAAIxJ,EAAIwJ,IAEzD,IADoB,IAAhBA,IAAmBA,EAAaxJ,GAChCA,EAAIwJ,EAAa,IAAMJ,EAAW,OAAOI,EAAaN,OAEtC,IAAhBM,IAAmBxJ,GAAKA,EAAIwJ,GAChCA,GAAc,OAKlB,IADI3C,EAAauC,EAAYD,IAAWtC,EAAasC,EAAYC,GAC5DpJ,EAAI6G,EAAY7G,GAAK,EAAGA,IAAK,CAEhC,IADA,IAAIyJ,GAAQ,EACHC,EAAI,EAAGA,EAAIN,EAAWM,IAC7B,GAAItF,EAAK4B,EAAKhG,EAAI0J,KAAOtF,EAAKvD,EAAK6I,GAAI,CACrCD,GAAQ,EACR,KACD,CAEH,GAAIA,EAAO,OAAOzJ,CACnB,CAGH,OAAQ,CACT,CAcD,SAAS2J,EAAUL,EAAKrC,EAAQ3C,EAAQvE,GACtCuE,EAASsF,OAAOtF,IAAW,EAC3B,IAAIuF,EAAYP,EAAIvJ,OAASuE,EACxBvE,GAGHA,EAAS6J,OAAO7J,IACH8J,IACX9J,EAAS8J,GAJX9J,EAAS8J,EASX,IAAIC,EAAS7C,EAAOlH,OACpB,GAAI+J,EAAS,GAAM,EAAG,MAAM,IAAIlL,UAAU,sBAEtCmB,EAAS+J,EAAS,IACpB/J,EAAS+J,EAAS,GAEpB,IAAK,IAAI9J,EAAI,EAAGA,EAAID,IAAUC,EAAG,CAC/B,IAAI+J,EAASC,SAAS/C,EAAOgD,OAAW,EAAJjK,EAAO,GAAI,IAC/C,GAAIF,MAAMiK,GAAS,OAAO/J,EAC1BsJ,EAAIhF,EAAStE,GAAK+J,CACnB,CACD,OAAO/J,CACR,CAED,SAASkK,EAAWZ,EAAKrC,EAAQ3C,EAAQvE,GACvC,OAAOoK,GAAWlC,GAAYhB,EAAQqC,EAAIvJ,OAASuE,GAASgF,EAAKhF,EAAQvE,EAC1E,CAED,SAASqK,EAAYd,EAAKrC,EAAQ3C,EAAQvE,GACxC,OAAOoK,GAq6BT,SAAuBE,GAErB,IADA,IAAIC,EAAY,GACPtK,EAAI,EAAGA,EAAIqK,EAAItK,SAAUC,EAEhCsK,EAAU9K,KAAyB,IAApB6K,EAAI/G,WAAWtD,IAEhC,OAAOsK,CACR,CA56BmBC,CAAatD,GAASqC,EAAKhF,EAAQvE,EACtD,CAED,SAASyK,EAAalB,EAAKrC,EAAQ3C,EAAQvE,GACzC,OAAOqK,EAAWd,EAAKrC,EAAQ3C,EAAQvE,EACxC,CAED,SAAS0K,EAAanB,EAAKrC,EAAQ3C,EAAQvE,GACzC,OAAOoK,GAAWjC,GAAcjB,GAASqC,EAAKhF,EAAQvE,EACvD,CAED,SAAS2K,EAAWpB,EAAKrC,EAAQ3C,EAAQvE,GACvC,OAAOoK,GAk6BT,SAAyBE,EAAKM,GAG5B,IAFA,IAAIpF,EAAGqF,EAAIC,EACPP,EAAY,GACPtK,EAAI,EAAGA,EAAIqK,EAAItK,WACjB4K,GAAS,GAAK,KADa3K,EAIhC4K,GADArF,EAAI8E,EAAI/G,WAAWtD,KACT,EACV6K,EAAKtF,EAAI,IACT+E,EAAU9K,KAAKqL,GACfP,EAAU9K,KAAKoL,GAGjB,OAAON,CACR,CAh7BmBQ,CAAe7D,EAAQqC,EAAIvJ,OAASuE,GAASgF,EAAKhF,EAAQvE,EAC7E,CAiFD,SAAS0I,EAAaa,EAAK7F,EAAOC,GAChC,OAAc,IAAVD,GAAeC,IAAQ4F,EAAIvJ,OACtBgL,EAAqBzB,GAErByB,EAAqBzB,EAAIlI,MAAMqC,EAAOC,GAEhD,CAED,SAAS4E,EAAWgB,EAAK7F,EAAOC,GAC9BA,EAAM0B,KAAK4F,IAAI1B,EAAIvJ,OAAQ2D,GAI3B,IAHA,IAAIuH,EAAM,GAENjL,EAAIyD,EACDzD,EAAI0D,GAAK,CACd,IAQMwH,EAAYC,EAAWC,EAAYC,EARrCC,EAAYhC,EAAItJ,GAChBuL,EAAY,KACZC,EAAoBF,EAAY,IAAQ,EACvCA,EAAY,IAAQ,EACpBA,EAAY,IAAQ,EACrB,EAEJ,GAAItL,EAAIwL,GAAoB9H,EAG1B,OAAQ8H,GACN,KAAK,EACCF,EAAY,MACdC,EAAYD,GAEd,MACF,KAAK,EAEyB,MAAV,KADlBJ,EAAa5B,EAAItJ,EAAI,OAEnBqL,GAA6B,GAAZC,IAAqB,EAAoB,GAAbJ,GACzB,MAClBK,EAAYF,GAGhB,MACF,KAAK,EACHH,EAAa5B,EAAItJ,EAAI,GACrBmL,EAAY7B,EAAItJ,EAAI,GACQ,MAAV,IAAbkL,IAAsD,MAAV,IAAZC,KACnCE,GAA6B,GAAZC,IAAoB,IAAoB,GAAbJ,IAAsB,EAAmB,GAAZC,GACrD,OAAUE,EAAgB,OAAUA,EAAgB,SACtEE,EAAYF,GAGhB,MACF,KAAK,EACHH,EAAa5B,EAAItJ,EAAI,GACrBmL,EAAY7B,EAAItJ,EAAI,GACpBoL,EAAa9B,EAAItJ,EAAI,GACO,MAAV,IAAbkL,IAAsD,MAAV,IAAZC,IAAsD,MAAV,IAAbC,KAClEC,GAA6B,GAAZC,IAAoB,IAAqB,GAAbJ,IAAsB,IAAmB,GAAZC,IAAqB,EAAoB,GAAbC,GAClF,OAAUC,EAAgB,UAC5CE,EAAYF,GAMJ,OAAdE,GAGFA,EAAY,MACZC,EAAmB,GACVD,EAAY,QAErBA,GAAa,MACbN,EAAIzL,KAAK+L,IAAc,GAAK,KAAQ,OACpCA,EAAY,MAAqB,KAAZA,GAGvBN,EAAIzL,KAAK+L,GACTvL,GAAKwL,CACN,CAED,OAQF,SAAgCC,GAC9B,IAAIpI,EAAMoI,EAAW1L,OACrB,GAAIsD,GAAOqI,EACT,OAAOrC,OAAOsC,aAAarR,MAAM+O,OAAQoC,GAI3C,IAAIR,EAAM,GACNjL,EAAI,EACR,KAAOA,EAAIqD,GACT4H,GAAO5B,OAAOsC,aAAarR,MACzB+O,OACAoC,EAAWrK,MAAMpB,EAAGA,GAAK0L,IAG7B,OAAOT,CACR,CAxBQW,CAAsBX,EAC9B,CA12BDhF,EAAO4F,SAAW,KAGlB5F,EAAO6F,SAAW,SAAU9F,GAE1B,OADAA,EAAIxF,UAAYyF,EAAOlL,UAChBiL,CACR,EA0BDC,EAAOS,KAAO,SAAU5N,EAAO0N,EAAkBzG,GAC/C,OAAO2G,EAAK,KAAM5N,EAAO0N,EAAkBzG,EAC5C,EAEGkG,EAAOC,sBACTD,EAAOlL,UAAUyF,UAAYwC,WAAWjI,UACxCkL,EAAOzF,UAAYwC,WACG,oBAAXpI,QAA0BA,OAAOmR,SACxC9F,EAAOrL,OAAOmR,UAqCpB9F,EAAO+F,MAAQ,SAAUpE,EAAMqE,EAAM/E,GACnC,OArBF,SAAgBZ,EAAMsB,EAAMqE,EAAM/E,GAEhC,OADAS,EAAWC,GACPA,GAAQ,EACHvB,EAAaC,EAAMsB,QAEfpN,IAATyR,EAIyB,iBAAb/E,EACVb,EAAaC,EAAMsB,GAAMqE,KAAKA,EAAM/E,GACpCb,EAAaC,EAAMsB,GAAMqE,KAAKA,GAE7B5F,EAAaC,EAAMsB,EAC3B,CAOQoE,CAAM,KAAMpE,EAAMqE,EAAM/E,EAChC,EAgBDjB,EAAOQ,YAAc,SAAUmB,GAC7B,OAAOnB,EAAY,KAAMmB,EAC1B,EAID3B,EAAOiG,gBAAkB,SAAUtE,GACjC,OAAOnB,EAAY,KAAMmB,EAC1B,EA+GD3B,EAAOkG,SAAWA,GAKlBlG,EAAOmG,QAAU,SAAkBC,EAAGxE,GACpC,IAAKP,EAAiB+E,KAAO/E,EAAiBO,GAC5C,MAAM,IAAIjJ,UAAU,6BAGtB,GAAIyN,IAAMxE,EAAG,OAAO,EAKpB,IAHA,IAAIyE,EAAID,EAAEtM,OACNwM,EAAI1E,EAAE9H,OAEDC,EAAI,EAAGqD,EAAM+B,KAAK4F,IAAIsB,EAAGC,GAAIvM,EAAIqD,IAAOrD,EAC/C,GAAIqM,EAAErM,KAAO6H,EAAE7H,GAAI,CACjBsM,EAAID,EAAErM,GACNuM,EAAI1E,EAAE7H,GACN,KACD,CAGH,OAAIsM,EAAIC,GAAW,EACfA,EAAID,EAAU,EACX,CACR,EAEDrG,EAAOkB,WAAa,SAAqBD,GACvC,OAAQmC,OAAOnC,GAAUiB,eACvB,IAAK,MACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO,EACT,QACE,OAAO,EAEZ,EAEDlC,EAAOuG,OAAS,SAAiBC,EAAM1M,GACrC,IAAKgG,EAAQ0G,GACX,MAAM,IAAI7N,UAAU,+CAGtB,GAAoB,IAAhB6N,EAAK1M,OACP,OAAOkG,EAAO+F,MAAM,GAGtB,IAAIhM,EACJ,QAAexF,IAAXuF,EAEF,IADAA,EAAS,EACJC,EAAI,EAAGA,EAAIyM,EAAK1M,SAAUC,EAC7BD,GAAU0M,EAAKzM,GAAGD,OAItB,IAAIsE,EAAS4B,EAAOQ,YAAY1G,GAC5B2M,EAAM,EACV,IAAK1M,EAAI,EAAGA,EAAIyM,EAAK1M,SAAUC,EAAG,CAChC,IAAIsJ,EAAMmD,EAAKzM,GACf,IAAKsH,EAAiBgC,GACpB,MAAM,IAAI1K,UAAU,+CAEtB0K,EAAI9B,KAAKnD,EAAQqI,GACjBA,GAAOpD,EAAIvJ,MACZ,CACD,OAAOsE,CACR,EA6CD4B,EAAOa,WAAaA,EA0EpBb,EAAOlL,UAAU+M,WAAY,EAQ7B7B,EAAOlL,UAAU4R,OAAS,WACxB,IAAItJ,EAAMlJ,KAAK4F,OACf,GAAIsD,EAAM,GAAM,EACd,MAAM,IAAIkD,WAAW,6CAEvB,IAAK,IAAIvG,EAAI,EAAGA,EAAIqD,EAAKrD,GAAK,EAC5B2I,EAAKxO,KAAM6F,EAAGA,EAAI,GAEpB,OAAO7F,IACR,EAED8L,EAAOlL,UAAU6R,OAAS,WACxB,IAAIvJ,EAAMlJ,KAAK4F,OACf,GAAIsD,EAAM,GAAM,EACd,MAAM,IAAIkD,WAAW,6CAEvB,IAAK,IAAIvG,EAAI,EAAGA,EAAIqD,EAAKrD,GAAK,EAC5B2I,EAAKxO,KAAM6F,EAAGA,EAAI,GAClB2I,EAAKxO,KAAM6F,EAAI,EAAGA,EAAI,GAExB,OAAO7F,IACR,EAED8L,EAAOlL,UAAU8R,OAAS,WACxB,IAAIxJ,EAAMlJ,KAAK4F,OACf,GAAIsD,EAAM,GAAM,EACd,MAAM,IAAIkD,WAAW,6CAEvB,IAAK,IAAIvG,EAAI,EAAGA,EAAIqD,EAAKrD,GAAK,EAC5B2I,EAAKxO,KAAM6F,EAAGA,EAAI,GAClB2I,EAAKxO,KAAM6F,EAAI,EAAGA,EAAI,GACtB2I,EAAKxO,KAAM6F,EAAI,EAAGA,EAAI,GACtB2I,EAAKxO,KAAM6F,EAAI,EAAGA,EAAI,GAExB,OAAO7F,IACR,EAED8L,EAAOlL,UAAU8K,SAAW,WAC1B,IAAI9F,EAAuB,EAAd5F,KAAK4F,OAClB,OAAe,IAAXA,EAAqB,GACA,IAArB1F,UAAU0F,OAAqBuI,EAAUnO,KAAM,EAAG4F,GAC/CqI,EAAa9N,MAAMH,KAAME,UACjC,EAED4L,EAAOlL,UAAU+R,OAAS,SAAiBjF,GACzC,IAAKP,EAAiBO,GAAI,MAAM,IAAIjJ,UAAU,6BAC9C,OAAIzE,OAAS0N,GACsB,IAA5B5B,EAAOmG,QAAQjS,KAAM0N,EAC7B,EAED5B,EAAOlL,UAAUgS,QAAU,WACzB,IAAI1C,EAAM,GAMV,OAJIlQ,KAAK4F,OAAS,IAChBsK,EAAMlQ,KAAK0L,SAAS,MAAO,EA9jBA,IA8jBQmH,MAAM,SAASlJ,KAAK,KACnD3J,KAAK4F,OA/jBkB,KA+jBJsK,GAAO,UAEzB,WAAaA,EAAM,GAC3B,EAEDpE,EAAOlL,UAAUqR,QAAU,SAAkBa,EAAQxJ,EAAOC,EAAKwJ,EAAWC,GAC1E,IAAK7F,EAAiB2F,GACpB,MAAM,IAAIrO,UAAU,6BAgBtB,QAbcpE,IAAViJ,IACFA,EAAQ,QAEEjJ,IAARkJ,IACFA,EAAMuJ,EAASA,EAAOlN,OAAS,QAEfvF,IAAd0S,IACFA,EAAY,QAEE1S,IAAZ2S,IACFA,EAAUhT,KAAK4F,QAGb0D,EAAQ,GAAKC,EAAMuJ,EAAOlN,QAAUmN,EAAY,GAAKC,EAAUhT,KAAK4F,OACtE,MAAM,IAAIwG,WAAW,sBAGvB,GAAI2G,GAAaC,GAAW1J,GAASC,EACnC,OAAO,EAET,GAAIwJ,GAAaC,EACf,OAAQ,EAEV,GAAI1J,GAASC,EACX,OAAO,EAQT,GAAIvJ,OAAS8S,EAAQ,OAAO,EAS5B,IAPA,IAAIX,GAJJa,KAAa,IADbD,KAAe,GAMXX,GAPJ7I,KAAS,IADTD,KAAW,GASPJ,EAAM+B,KAAK4F,IAAIsB,EAAGC,GAElBa,EAAWjT,KAAKiH,MAAM8L,EAAWC,GACjCE,EAAaJ,EAAO7L,MAAMqC,EAAOC,GAE5B1D,EAAI,EAAGA,EAAIqD,IAAOrD,EACzB,GAAIoN,EAASpN,KAAOqN,EAAWrN,GAAI,CACjCsM,EAAIc,EAASpN,GACbuM,EAAIc,EAAWrN,GACf,KACD,CAGH,OAAIsM,EAAIC,GAAW,EACfA,EAAID,EAAU,EACX,CACR,EA4HDrG,EAAOlL,UAAUuS,SAAW,SAAmBzM,EAAKgG,EAAYK,GAC9D,OAAoD,IAA7C/M,KAAK6O,QAAQnI,EAAKgG,EAAYK,EACtC,EAEDjB,EAAOlL,UAAUiO,QAAU,SAAkBnI,EAAKgG,EAAYK,GAC5D,OAAO2B,EAAqB1O,KAAM0G,EAAKgG,EAAYK,GAAU,EAC9D,EAEDjB,EAAOlL,UAAUkO,YAAc,SAAsBpI,EAAKgG,EAAYK,GACpE,OAAO2B,EAAqB1O,KAAM0G,EAAKgG,EAAYK,GAAU,EAC9D,EAiDDjB,EAAOlL,UAAUuK,MAAQ,SAAgB2B,EAAQ3C,EAAQvE,EAAQmH,GAE/D,QAAe1M,IAAX8J,EACF4C,EAAW,OACXnH,EAAS5F,KAAK4F,OACduE,EAAS,OAEJ,QAAe9J,IAAXuF,GAA0C,iBAAXuE,EACxC4C,EAAW5C,EACXvE,EAAS5F,KAAK4F,OACduE,EAAS,MAEJ,KAAIiJ,SAASjJ,GAWlB,MAAM,IAAInG,MACR,2EAXFmG,GAAkB,EACdiJ,SAASxN,IACXA,GAAkB,OACDvF,IAAb0M,IAAwBA,EAAW,UAEvCA,EAAWnH,EACXA,OAASvF,EAOZ,CAED,IAAIqP,EAAY1P,KAAK4F,OAASuE,EAG9B,SAFe9J,IAAXuF,GAAwBA,EAAS8J,KAAW9J,EAAS8J,GAEpD5C,EAAOlH,OAAS,IAAMA,EAAS,GAAKuE,EAAS,IAAOA,EAASnK,KAAK4F,OACrE,MAAM,IAAIwG,WAAW,0CAGlBW,IAAUA,EAAW,QAG1B,IADA,IAAIc,GAAc,IAEhB,OAAQd,GACN,IAAK,MACH,OAAOyC,EAASxP,KAAM8M,EAAQ3C,EAAQvE,GAExC,IAAK,OACL,IAAK,QACH,OAAOmK,EAAU/P,KAAM8M,EAAQ3C,EAAQvE,GAEzC,IAAK,QACH,OAAOqK,EAAWjQ,KAAM8M,EAAQ3C,EAAQvE,GAE1C,IAAK,SACL,IAAK,SACH,OAAOyK,EAAYrQ,KAAM8M,EAAQ3C,EAAQvE,GAE3C,IAAK,SAEH,OAAO0K,EAAYtQ,KAAM8M,EAAQ3C,EAAQvE,GAE3C,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO2K,EAAUvQ,KAAM8M,EAAQ3C,EAAQvE,GAEzC,QACE,GAAIiI,EAAa,MAAM,IAAIpJ,UAAU,qBAAuBsI,GAC5DA,GAAY,GAAKA,GAAUiB,cAC3BH,GAAc,EAGrB,EAED/B,EAAOlL,UAAUyS,OAAS,WACxB,MAAO,CACL9Q,KAAM,SACN+K,KAAMxE,MAAMlI,UAAUqG,MAAMzE,KAAKxC,KAAKsT,MAAQtT,KAAM,GAEvD,EAsFD,IAAIuR,EAAuB,KAoB3B,SAASnD,EAAYe,EAAK7F,EAAOC,GAC/B,IAAIgK,EAAM,GACVhK,EAAM0B,KAAK4F,IAAI1B,EAAIvJ,OAAQ2D,GAE3B,IAAK,IAAI1D,EAAIyD,EAAOzD,EAAI0D,IAAO1D,EAC7B0N,GAAOrE,OAAOsC,aAAsB,IAATrC,EAAItJ,IAEjC,OAAO0N,CACR,CAED,SAASlF,EAAac,EAAK7F,EAAOC,GAChC,IAAIgK,EAAM,GACVhK,EAAM0B,KAAK4F,IAAI1B,EAAIvJ,OAAQ2D,GAE3B,IAAK,IAAI1D,EAAIyD,EAAOzD,EAAI0D,IAAO1D,EAC7B0N,GAAOrE,OAAOsC,aAAarC,EAAItJ,IAEjC,OAAO0N,CACR,CAED,SAASrF,EAAUiB,EAAK7F,EAAOC,GAC7B,IAAIL,EAAMiG,EAAIvJ,SAET0D,GAASA,EAAQ,KAAGA,EAAQ,KAC5BC,GAAOA,EAAM,GAAKA,EAAML,KAAKK,EAAML,GAGxC,IADA,IAAIsK,EAAM,GACD3N,EAAIyD,EAAOzD,EAAI0D,IAAO1D,EAC7B2N,GAAOC,GAAMtE,EAAItJ,IAEnB,OAAO2N,CACR,CAED,SAASjF,EAAcY,EAAK7F,EAAOC,GAGjC,IAFA,IAAImK,EAAQvE,EAAIlI,MAAMqC,EAAOC,GACzBuH,EAAM,GACDjL,EAAI,EAAGA,EAAI6N,EAAM9N,OAAQC,GAAK,EACrCiL,GAAO5B,OAAOsC,aAAakC,EAAM7N,GAAoB,IAAf6N,EAAM7N,EAAI,IAElD,OAAOiL,CACR,CAyCD,SAAS6C,EAAaxJ,EAAQyJ,EAAKhO,GACjC,GAAKuE,EAAS,GAAO,GAAKA,EAAS,EAAG,MAAM,IAAIiC,WAAW,sBAC3D,GAAIjC,EAASyJ,EAAMhO,EAAQ,MAAM,IAAIwG,WAAW,wCACjD,CA8JD,SAASyH,EAAU1E,EAAKxQ,EAAOwL,EAAQyJ,EAAKE,EAAKjD,GAC/C,IAAK1D,EAAiBgC,GAAM,MAAM,IAAI1K,UAAU,+CAChD,GAAI9F,EAAQmV,GAAOnV,EAAQkS,EAAK,MAAM,IAAIzE,WAAW,qCACrD,GAAIjC,EAASyJ,EAAMzE,EAAIvJ,OAAQ,MAAM,IAAIwG,WAAW,qBACrD,CAiDD,SAAS2H,GAAmB5E,EAAKxQ,EAAOwL,EAAQ6J,GAC1CrV,EAAQ,IAAGA,EAAQ,MAASA,EAAQ,GACxC,IAAK,IAAIkH,EAAI,EAAG0J,EAAItE,KAAK4F,IAAI1B,EAAIvJ,OAASuE,EAAQ,GAAItE,EAAI0J,IAAK1J,EAC7DsJ,EAAIhF,EAAStE,IAAMlH,EAAS,KAAS,GAAKqV,EAAenO,EAAI,EAAIA,MAClC,GAA5BmO,EAAenO,EAAI,EAAIA,EAE7B,CA4BD,SAASoO,GAAmB9E,EAAKxQ,EAAOwL,EAAQ6J,GAC1CrV,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GAC5C,IAAK,IAAIkH,EAAI,EAAG0J,EAAItE,KAAK4F,IAAI1B,EAAIvJ,OAASuE,EAAQ,GAAItE,EAAI0J,IAAK1J,EAC7DsJ,EAAIhF,EAAStE,GAAMlH,IAAuC,GAA5BqV,EAAenO,EAAI,EAAIA,GAAU,GAElE,CAiJD,SAASqO,GAAc/E,EAAKxQ,EAAOwL,EAAQyJ,EAAKE,EAAKjD,GACnD,GAAI1G,EAASyJ,EAAMzE,EAAIvJ,OAAQ,MAAM,IAAIwG,WAAW,sBACpD,GAAIjC,EAAS,EAAG,MAAM,IAAIiC,WAAW,qBACtC,CAED,SAAS+H,GAAYhF,EAAKxQ,EAAOwL,EAAQ6J,EAAcI,GAKrD,OAJKA,GACHF,GAAa/E,EAAKxQ,EAAOwL,EAAQ,GAEnCkK,EAAclF,EAAKxQ,EAAOwL,EAAQ6J,EAAc,GAAI,GAC7C7J,EAAS,CACjB,CAUD,SAASmK,GAAanF,EAAKxQ,EAAOwL,EAAQ6J,EAAcI,GAKtD,OAJKA,GACHF,GAAa/E,EAAKxQ,EAAOwL,EAAQ,GAEnCkK,EAAclF,EAAKxQ,EAAOwL,EAAQ6J,EAAc,GAAI,GAC7C7J,EAAS,CACjB,CAhdD2B,EAAOlL,UAAUqG,MAAQ,SAAgBqC,EAAOC,GAC9C,IAoBIgL,EApBArL,EAAMlJ,KAAK4F,OAqBf,IApBA0D,IAAUA,GAGE,GACVA,GAASJ,GACG,IAAGI,EAAQ,GACdA,EAAQJ,IACjBI,EAAQJ,IANVK,OAAclJ,IAARkJ,EAAoBL,IAAQK,GASxB,GACRA,GAAOL,GACG,IAAGK,EAAM,GACVA,EAAML,IACfK,EAAML,GAGJK,EAAMD,IAAOC,EAAMD,GAGnBwC,EAAOC,qBACTwI,EAASvU,KAAKwU,SAASlL,EAAOC,IACvBlD,UAAYyF,EAAOlL,cACrB,CACL,IAAI6T,EAAWlL,EAAMD,EACrBiL,EAAS,IAAIzI,EAAO2I,OAAUpU,GAC9B,IAAK,IAAIwF,EAAI,EAAGA,EAAI4O,IAAY5O,EAC9B0O,EAAO1O,GAAK7F,KAAK6F,EAAIyD,EAExB,CAED,OAAOiL,CACR,EAUDzI,EAAOlL,UAAU8T,WAAa,SAAqBvK,EAAQwC,EAAYyH,GACrEjK,GAAkB,EAClBwC,GAA0B,EACrByH,GAAUT,EAAYxJ,EAAQwC,EAAY3M,KAAK4F,QAKpD,IAHA,IAAIc,EAAM1G,KAAKmK,GACXwK,EAAM,EACN9O,EAAI,IACCA,EAAI8G,IAAegI,GAAO,MACjCjO,GAAO1G,KAAKmK,EAAStE,GAAK8O,EAG5B,OAAOjO,CACR,EAEDoF,EAAOlL,UAAUgU,WAAa,SAAqBzK,EAAQwC,EAAYyH,GACrEjK,GAAkB,EAClBwC,GAA0B,EACrByH,GACHT,EAAYxJ,EAAQwC,EAAY3M,KAAK4F,QAKvC,IAFA,IAAIc,EAAM1G,KAAKmK,IAAWwC,GACtBgI,EAAM,EACHhI,EAAa,IAAMgI,GAAO,MAC/BjO,GAAO1G,KAAKmK,IAAWwC,GAAcgI,EAGvC,OAAOjO,CACR,EAEDoF,EAAOlL,UAAUiU,UAAY,SAAoB1K,EAAQiK,GAEvD,OADKA,GAAUT,EAAYxJ,EAAQ,EAAGnK,KAAK4F,QACpC5F,KAAKmK,EACb,EAED2B,EAAOlL,UAAUkU,aAAe,SAAuB3K,EAAQiK,GAE7D,OADKA,GAAUT,EAAYxJ,EAAQ,EAAGnK,KAAK4F,QACpC5F,KAAKmK,GAAWnK,KAAKmK,EAAS,IAAM,CAC5C,EAED2B,EAAOlL,UAAUwO,aAAe,SAAuBjF,EAAQiK,GAE7D,OADKA,GAAUT,EAAYxJ,EAAQ,EAAGnK,KAAK4F,QACnC5F,KAAKmK,IAAW,EAAKnK,KAAKmK,EAAS,EAC5C,EAED2B,EAAOlL,UAAUmU,aAAe,SAAuB5K,EAAQiK,GAG7D,OAFKA,GAAUT,EAAYxJ,EAAQ,EAAGnK,KAAK4F,SAElC5F,KAAKmK,GACTnK,KAAKmK,EAAS,IAAM,EACpBnK,KAAKmK,EAAS,IAAM,IACD,SAAnBnK,KAAKmK,EAAS,EACpB,EAED2B,EAAOlL,UAAUoU,aAAe,SAAuB7K,EAAQiK,GAG7D,OAFKA,GAAUT,EAAYxJ,EAAQ,EAAGnK,KAAK4F,QAEpB,SAAf5F,KAAKmK,IACTnK,KAAKmK,EAAS,IAAM,GACrBnK,KAAKmK,EAAS,IAAM,EACrBnK,KAAKmK,EAAS,GACjB,EAED2B,EAAOlL,UAAUqU,UAAY,SAAoB9K,EAAQwC,EAAYyH,GACnEjK,GAAkB,EAClBwC,GAA0B,EACrByH,GAAUT,EAAYxJ,EAAQwC,EAAY3M,KAAK4F,QAKpD,IAHA,IAAIc,EAAM1G,KAAKmK,GACXwK,EAAM,EACN9O,EAAI,IACCA,EAAI8G,IAAegI,GAAO,MACjCjO,GAAO1G,KAAKmK,EAAStE,GAAK8O,EAM5B,OAFIjO,IAFJiO,GAAO,OAESjO,GAAOuE,KAAKC,IAAI,EAAG,EAAIyB,IAEhCjG,CACR,EAEDoF,EAAOlL,UAAUsU,UAAY,SAAoB/K,EAAQwC,EAAYyH,GACnEjK,GAAkB,EAClBwC,GAA0B,EACrByH,GAAUT,EAAYxJ,EAAQwC,EAAY3M,KAAK4F,QAKpD,IAHA,IAAIC,EAAI8G,EACJgI,EAAM,EACNjO,EAAM1G,KAAKmK,IAAWtE,GACnBA,EAAI,IAAM8O,GAAO,MACtBjO,GAAO1G,KAAKmK,IAAWtE,GAAK8O,EAM9B,OAFIjO,IAFJiO,GAAO,OAESjO,GAAOuE,KAAKC,IAAI,EAAG,EAAIyB,IAEhCjG,CACR,EAEDoF,EAAOlL,UAAUuU,SAAW,SAAmBhL,EAAQiK,GAErD,OADKA,GAAUT,EAAYxJ,EAAQ,EAAGnK,KAAK4F,QACtB,IAAf5F,KAAKmK,IAC0B,GAA5B,IAAOnK,KAAKmK,GAAU,GADKnK,KAAKmK,EAE1C,EAED2B,EAAOlL,UAAUwU,YAAc,SAAsBjL,EAAQiK,GACtDA,GAAUT,EAAYxJ,EAAQ,EAAGnK,KAAK4F,QAC3C,IAAIc,EAAM1G,KAAKmK,GAAWnK,KAAKmK,EAAS,IAAM,EAC9C,OAAc,MAANzD,EAAsB,WAANA,EAAmBA,CAC5C,EAEDoF,EAAOlL,UAAUyU,YAAc,SAAsBlL,EAAQiK,GACtDA,GAAUT,EAAYxJ,EAAQ,EAAGnK,KAAK4F,QAC3C,IAAIc,EAAM1G,KAAKmK,EAAS,GAAMnK,KAAKmK,IAAW,EAC9C,OAAc,MAANzD,EAAsB,WAANA,EAAmBA,CAC5C,EAEDoF,EAAOlL,UAAU0U,YAAc,SAAsBnL,EAAQiK,GAG3D,OAFKA,GAAUT,EAAYxJ,EAAQ,EAAGnK,KAAK4F,QAEnC5F,KAAKmK,GACVnK,KAAKmK,EAAS,IAAM,EACpBnK,KAAKmK,EAAS,IAAM,GACpBnK,KAAKmK,EAAS,IAAM,EACxB,EAED2B,EAAOlL,UAAU2U,YAAc,SAAsBpL,EAAQiK,GAG3D,OAFKA,GAAUT,EAAYxJ,EAAQ,EAAGnK,KAAK4F,QAEnC5F,KAAKmK,IAAW,GACrBnK,KAAKmK,EAAS,IAAM,GACpBnK,KAAKmK,EAAS,IAAM,EACpBnK,KAAKmK,EAAS,EAClB,EAED2B,EAAOlL,UAAU4U,YAAc,SAAsBrL,EAAQiK,GAE3D,OADKA,GAAUT,EAAYxJ,EAAQ,EAAGnK,KAAK4F,QACpC6P,EAAazV,KAAMmK,GAAQ,EAAM,GAAI,EAC7C,EAED2B,EAAOlL,UAAU8U,YAAc,SAAsBvL,EAAQiK,GAE3D,OADKA,GAAUT,EAAYxJ,EAAQ,EAAGnK,KAAK4F,QACpC6P,EAAazV,KAAMmK,GAAQ,EAAO,GAAI,EAC9C,EAED2B,EAAOlL,UAAU+U,aAAe,SAAuBxL,EAAQiK,GAE7D,OADKA,GAAUT,EAAYxJ,EAAQ,EAAGnK,KAAK4F,QACpC6P,EAAazV,KAAMmK,GAAQ,EAAM,GAAI,EAC7C,EAED2B,EAAOlL,UAAUgV,aAAe,SAAuBzL,EAAQiK,GAE7D,OADKA,GAAUT,EAAYxJ,EAAQ,EAAGnK,KAAK4F,QACpC6P,EAAazV,KAAMmK,GAAQ,EAAO,GAAI,EAC9C,EAQD2B,EAAOlL,UAAUiV,YAAc,SAAsBlX,EAAOwL,EAAQwC,EAAYyH,IAC9EzV,GAASA,EACTwL,GAAkB,EAClBwC,GAA0B,EACrByH,IAEHP,EAAS7T,KAAMrB,EAAOwL,EAAQwC,EADf1B,KAAKC,IAAI,EAAG,EAAIyB,GAAc,EACO,GAGtD,IAAIgI,EAAM,EACN9O,EAAI,EAER,IADA7F,KAAKmK,GAAkB,IAARxL,IACNkH,EAAI8G,IAAegI,GAAO,MACjC3U,KAAKmK,EAAStE,GAAMlH,EAAQgW,EAAO,IAGrC,OAAOxK,EAASwC,CACjB,EAEDb,EAAOlL,UAAUkV,YAAc,SAAsBnX,EAAOwL,EAAQwC,EAAYyH,IAC9EzV,GAASA,EACTwL,GAAkB,EAClBwC,GAA0B,EACrByH,IAEHP,EAAS7T,KAAMrB,EAAOwL,EAAQwC,EADf1B,KAAKC,IAAI,EAAG,EAAIyB,GAAc,EACO,GAGtD,IAAI9G,EAAI8G,EAAa,EACjBgI,EAAM,EAEV,IADA3U,KAAKmK,EAAStE,GAAa,IAARlH,IACVkH,GAAK,IAAM8O,GAAO,MACzB3U,KAAKmK,EAAStE,GAAMlH,EAAQgW,EAAO,IAGrC,OAAOxK,EAASwC,CACjB,EAEDb,EAAOlL,UAAUmV,WAAa,SAAqBpX,EAAOwL,EAAQiK,GAMhE,OALAzV,GAASA,EACTwL,GAAkB,EACbiK,GAAUP,EAAS7T,KAAMrB,EAAOwL,EAAQ,EAAG,IAAM,GACjD2B,EAAOC,sBAAqBpN,EAAQsM,KAAKM,MAAM5M,IACpDqB,KAAKmK,GAAmB,IAARxL,EACTwL,EAAS,CACjB,EAUD2B,EAAOlL,UAAUoV,cAAgB,SAAwBrX,EAAOwL,EAAQiK,GAUtE,OATAzV,GAASA,EACTwL,GAAkB,EACbiK,GAAUP,EAAS7T,KAAMrB,EAAOwL,EAAQ,EAAG,MAAQ,GACpD2B,EAAOC,qBACT/L,KAAKmK,GAAmB,IAARxL,EAChBqB,KAAKmK,EAAS,GAAMxL,IAAU,GAE9BoV,GAAkB/T,KAAMrB,EAAOwL,GAAQ,GAElCA,EAAS,CACjB,EAED2B,EAAOlL,UAAUqV,cAAgB,SAAwBtX,EAAOwL,EAAQiK,GAUtE,OATAzV,GAASA,EACTwL,GAAkB,EACbiK,GAAUP,EAAS7T,KAAMrB,EAAOwL,EAAQ,EAAG,MAAQ,GACpD2B,EAAOC,qBACT/L,KAAKmK,GAAWxL,IAAU,EAC1BqB,KAAKmK,EAAS,GAAc,IAARxL,GAEpBoV,GAAkB/T,KAAMrB,EAAOwL,GAAQ,GAElCA,EAAS,CACjB,EASD2B,EAAOlL,UAAUsV,cAAgB,SAAwBvX,EAAOwL,EAAQiK,GAYtE,OAXAzV,GAASA,EACTwL,GAAkB,EACbiK,GAAUP,EAAS7T,KAAMrB,EAAOwL,EAAQ,EAAG,WAAY,GACxD2B,EAAOC,qBACT/L,KAAKmK,EAAS,GAAMxL,IAAU,GAC9BqB,KAAKmK,EAAS,GAAMxL,IAAU,GAC9BqB,KAAKmK,EAAS,GAAMxL,IAAU,EAC9BqB,KAAKmK,GAAmB,IAARxL,GAEhBsV,GAAkBjU,KAAMrB,EAAOwL,GAAQ,GAElCA,EAAS,CACjB,EAED2B,EAAOlL,UAAUuV,cAAgB,SAAwBxX,EAAOwL,EAAQiK,GAYtE,OAXAzV,GAASA,EACTwL,GAAkB,EACbiK,GAAUP,EAAS7T,KAAMrB,EAAOwL,EAAQ,EAAG,WAAY,GACxD2B,EAAOC,qBACT/L,KAAKmK,GAAWxL,IAAU,GAC1BqB,KAAKmK,EAAS,GAAMxL,IAAU,GAC9BqB,KAAKmK,EAAS,GAAMxL,IAAU,EAC9BqB,KAAKmK,EAAS,GAAc,IAARxL,GAEpBsV,GAAkBjU,KAAMrB,EAAOwL,GAAQ,GAElCA,EAAS,CACjB,EAED2B,EAAOlL,UAAUwV,WAAa,SAAqBzX,EAAOwL,EAAQwC,EAAYyH,GAG5E,GAFAzV,GAASA,EACTwL,GAAkB,GACbiK,EAAU,CACb,IAAIiC,EAAQpL,KAAKC,IAAI,EAAG,EAAIyB,EAAa,GAEzCkH,EAAS7T,KAAMrB,EAAOwL,EAAQwC,EAAY0J,EAAQ,GAAIA,EACvD,CAED,IAAIxQ,EAAI,EACJ8O,EAAM,EACN2B,EAAM,EAEV,IADAtW,KAAKmK,GAAkB,IAARxL,IACNkH,EAAI8G,IAAegI,GAAO,MAC7BhW,EAAQ,GAAa,IAAR2X,GAAsC,IAAzBtW,KAAKmK,EAAStE,EAAI,KAC9CyQ,EAAM,GAERtW,KAAKmK,EAAStE,IAAOlH,EAAQgW,GAAQ,GAAK2B,EAAM,IAGlD,OAAOnM,EAASwC,CACjB,EAEDb,EAAOlL,UAAU2V,WAAa,SAAqB5X,EAAOwL,EAAQwC,EAAYyH,GAG5E,GAFAzV,GAASA,EACTwL,GAAkB,GACbiK,EAAU,CACb,IAAIiC,EAAQpL,KAAKC,IAAI,EAAG,EAAIyB,EAAa,GAEzCkH,EAAS7T,KAAMrB,EAAOwL,EAAQwC,EAAY0J,EAAQ,GAAIA,EACvD,CAED,IAAIxQ,EAAI8G,EAAa,EACjBgI,EAAM,EACN2B,EAAM,EAEV,IADAtW,KAAKmK,EAAStE,GAAa,IAARlH,IACVkH,GAAK,IAAM8O,GAAO,MACrBhW,EAAQ,GAAa,IAAR2X,GAAsC,IAAzBtW,KAAKmK,EAAStE,EAAI,KAC9CyQ,EAAM,GAERtW,KAAKmK,EAAStE,IAAOlH,EAAQgW,GAAQ,GAAK2B,EAAM,IAGlD,OAAOnM,EAASwC,CACjB,EAEDb,EAAOlL,UAAU4V,UAAY,SAAoB7X,EAAOwL,EAAQiK,GAO9D,OANAzV,GAASA,EACTwL,GAAkB,EACbiK,GAAUP,EAAS7T,KAAMrB,EAAOwL,EAAQ,EAAG,KAAO,KAClD2B,EAAOC,sBAAqBpN,EAAQsM,KAAKM,MAAM5M,IAChDA,EAAQ,IAAGA,EAAQ,IAAOA,EAAQ,GACtCqB,KAAKmK,GAAmB,IAARxL,EACTwL,EAAS,CACjB,EAED2B,EAAOlL,UAAU6V,aAAe,SAAuB9X,EAAOwL,EAAQiK,GAUpE,OATAzV,GAASA,EACTwL,GAAkB,EACbiK,GAAUP,EAAS7T,KAAMrB,EAAOwL,EAAQ,EAAG,OAAS,OACrD2B,EAAOC,qBACT/L,KAAKmK,GAAmB,IAARxL,EAChBqB,KAAKmK,EAAS,GAAMxL,IAAU,GAE9BoV,GAAkB/T,KAAMrB,EAAOwL,GAAQ,GAElCA,EAAS,CACjB,EAED2B,EAAOlL,UAAU8V,aAAe,SAAuB/X,EAAOwL,EAAQiK,GAUpE,OATAzV,GAASA,EACTwL,GAAkB,EACbiK,GAAUP,EAAS7T,KAAMrB,EAAOwL,EAAQ,EAAG,OAAS,OACrD2B,EAAOC,qBACT/L,KAAKmK,GAAWxL,IAAU,EAC1BqB,KAAKmK,EAAS,GAAc,IAARxL,GAEpBoV,GAAkB/T,KAAMrB,EAAOwL,GAAQ,GAElCA,EAAS,CACjB,EAED2B,EAAOlL,UAAU+V,aAAe,SAAuBhY,EAAOwL,EAAQiK,GAYpE,OAXAzV,GAASA,EACTwL,GAAkB,EACbiK,GAAUP,EAAS7T,KAAMrB,EAAOwL,EAAQ,EAAG,YAAa,YACzD2B,EAAOC,qBACT/L,KAAKmK,GAAmB,IAARxL,EAChBqB,KAAKmK,EAAS,GAAMxL,IAAU,EAC9BqB,KAAKmK,EAAS,GAAMxL,IAAU,GAC9BqB,KAAKmK,EAAS,GAAMxL,IAAU,IAE9BsV,GAAkBjU,KAAMrB,EAAOwL,GAAQ,GAElCA,EAAS,CACjB,EAED2B,EAAOlL,UAAUgW,aAAe,SAAuBjY,EAAOwL,EAAQiK,GAapE,OAZAzV,GAASA,EACTwL,GAAkB,EACbiK,GAAUP,EAAS7T,KAAMrB,EAAOwL,EAAQ,EAAG,YAAa,YACzDxL,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GACxCmN,EAAOC,qBACT/L,KAAKmK,GAAWxL,IAAU,GAC1BqB,KAAKmK,EAAS,GAAMxL,IAAU,GAC9BqB,KAAKmK,EAAS,GAAMxL,IAAU,EAC9BqB,KAAKmK,EAAS,GAAc,IAARxL,GAEpBsV,GAAkBjU,KAAMrB,EAAOwL,GAAQ,GAElCA,EAAS,CACjB,EAeD2B,EAAOlL,UAAUiW,aAAe,SAAuBlY,EAAOwL,EAAQiK,GACpE,OAAOD,GAAWnU,KAAMrB,EAAOwL,GAAQ,EAAMiK,EAC9C,EAEDtI,EAAOlL,UAAUkW,aAAe,SAAuBnY,EAAOwL,EAAQiK,GACpE,OAAOD,GAAWnU,KAAMrB,EAAOwL,GAAQ,EAAOiK,EAC/C,EAUDtI,EAAOlL,UAAUmW,cAAgB,SAAwBpY,EAAOwL,EAAQiK,GACtE,OAAOE,GAAYtU,KAAMrB,EAAOwL,GAAQ,EAAMiK,EAC/C,EAEDtI,EAAOlL,UAAUoW,cAAgB,SAAwBrY,EAAOwL,EAAQiK,GACtE,OAAOE,GAAYtU,KAAMrB,EAAOwL,GAAQ,EAAOiK,EAChD,EAGDtI,EAAOlL,UAAUyM,KAAO,SAAeyF,EAAQmE,EAAa3N,EAAOC,GAQjE,GAPKD,IAAOA,EAAQ,GACfC,GAAe,IAARA,IAAWA,EAAMvJ,KAAK4F,QAC9BqR,GAAenE,EAAOlN,SAAQqR,EAAcnE,EAAOlN,QAClDqR,IAAaA,EAAc,GAC5B1N,EAAM,GAAKA,EAAMD,IAAOC,EAAMD,GAG9BC,IAAQD,EAAO,OAAO,EAC1B,GAAsB,IAAlBwJ,EAAOlN,QAAgC,IAAhB5F,KAAK4F,OAAc,OAAO,EAGrD,GAAIqR,EAAc,EAChB,MAAM,IAAI7K,WAAW,6BAEvB,GAAI9C,EAAQ,GAAKA,GAAStJ,KAAK4F,OAAQ,MAAM,IAAIwG,WAAW,6BAC5D,GAAI7C,EAAM,EAAG,MAAM,IAAI6C,WAAW,2BAG9B7C,EAAMvJ,KAAK4F,SAAQ2D,EAAMvJ,KAAK4F,QAC9BkN,EAAOlN,OAASqR,EAAc1N,EAAMD,IACtCC,EAAMuJ,EAAOlN,OAASqR,EAAc3N,GAGtC,IACIzD,EADAqD,EAAMK,EAAMD,EAGhB,GAAItJ,OAAS8S,GAAUxJ,EAAQ2N,GAAeA,EAAc1N,EAE1D,IAAK1D,EAAIqD,EAAM,EAAGrD,GAAK,IAAKA,EAC1BiN,EAAOjN,EAAIoR,GAAejX,KAAK6F,EAAIyD,QAEhC,GAAIJ,EAAM,MAAS4C,EAAOC,oBAE/B,IAAKlG,EAAI,EAAGA,EAAIqD,IAAOrD,EACrBiN,EAAOjN,EAAIoR,GAAejX,KAAK6F,EAAIyD,QAGrCT,WAAWjI,UAAUsW,IAAI1U,KACvBsQ,EACA9S,KAAKwU,SAASlL,EAAOA,EAAQJ,GAC7B+N,GAIJ,OAAO/N,CACR,EAMD4C,EAAOlL,UAAUkR,KAAO,SAAepL,EAAK4C,EAAOC,EAAKwD,GAEtD,GAAmB,iBAARrG,EAAkB,CAS3B,GARqB,iBAAV4C,GACTyD,EAAWzD,EACXA,EAAQ,EACRC,EAAMvJ,KAAK4F,QACa,iBAAR2D,IAChBwD,EAAWxD,EACXA,EAAMvJ,KAAK4F,QAEM,IAAfc,EAAId,OAAc,CACpB,IAAIqD,EAAOvC,EAAIyC,WAAW,GACtBF,EAAO,MACTvC,EAAMuC,EAET,CACD,QAAiB5I,IAAb0M,GAA8C,iBAAbA,EACnC,MAAM,IAAItI,UAAU,6BAEtB,GAAwB,iBAAbsI,IAA0BjB,EAAOkB,WAAWD,GACrD,MAAM,IAAItI,UAAU,qBAAuBsI,EAE9C,KAAyB,iBAARrG,IAChBA,GAAY,KAId,GAAI4C,EAAQ,GAAKtJ,KAAK4F,OAAS0D,GAAStJ,KAAK4F,OAAS2D,EACpD,MAAM,IAAI6C,WAAW,sBAGvB,GAAI7C,GAAOD,EACT,OAAOtJ,KAQT,IAAI6F,EACJ,GANAyD,KAAkB,EAClBC,OAAclJ,IAARkJ,EAAoBvJ,KAAK4F,OAAS2D,IAAQ,EAE3C7C,IAAKA,EAAM,GAGG,iBAARA,EACT,IAAKb,EAAIyD,EAAOzD,EAAI0D,IAAO1D,EACzB7F,KAAK6F,GAAKa,MAEP,CACL,IAAIgN,EAAQvG,EAAiBzG,GACzBA,EACAoH,GAAY,IAAIhC,EAAOpF,EAAKqG,GAAUrB,YACtCxC,EAAMwK,EAAM9N,OAChB,IAAKC,EAAI,EAAGA,EAAI0D,EAAMD,IAASzD,EAC7B7F,KAAK6F,EAAIyD,GAASoK,EAAM7N,EAAIqD,EAE/B,CAED,OAAOlJ,IACR,EAKD,IAAImX,GAAoB,qBAmBxB,SAAS1D,GAAOhF,GACd,OAAIA,EAAI,GAAW,IAAMA,EAAE/C,SAAS,IAC7B+C,EAAE/C,SAAS,GACnB,CAED,SAASoC,GAAahB,EAAQ0D,GAE5B,IAAIY,EADJZ,EAAQA,GAASxF,IAMjB,IAJA,IAAIpF,EAASkH,EAAOlH,OAChBwR,EAAgB,KAChB1D,EAAQ,GAEH7N,EAAI,EAAGA,EAAID,IAAUC,EAAG,CAI/B,IAHAuL,EAAYtE,EAAO3D,WAAWtD,IAGd,OAAUuL,EAAY,MAAQ,CAE5C,IAAKgG,EAAe,CAElB,GAAIhG,EAAY,MAAQ,EAEjBZ,GAAS,IAAM,GAAGkD,EAAMrO,KAAK,IAAM,IAAM,KAC9C,QACD,CAAM,GAAIQ,EAAI,IAAMD,EAAQ,EAEtB4K,GAAS,IAAM,GAAGkD,EAAMrO,KAAK,IAAM,IAAM,KAC9C,QACD,CAGD+R,EAAgBhG,EAEhB,QACD,CAGD,GAAIA,EAAY,MAAQ,EACjBZ,GAAS,IAAM,GAAGkD,EAAMrO,KAAK,IAAM,IAAM,KAC9C+R,EAAgBhG,EAChB,QACD,CAGDA,EAAkE,OAArDgG,EAAgB,OAAU,GAAKhG,EAAY,MACzD,MAAUgG,IAEJ5G,GAAS,IAAM,GAAGkD,EAAMrO,KAAK,IAAM,IAAM,KAMhD,GAHA+R,EAAgB,KAGZhG,EAAY,IAAM,CACpB,IAAKZ,GAAS,GAAK,EAAG,MACtBkD,EAAMrO,KAAK+L,EACZ,MAAM,GAAIA,EAAY,KAAO,CAC5B,IAAKZ,GAAS,GAAK,EAAG,MACtBkD,EAAMrO,KACJ+L,GAAa,EAAM,IACP,GAAZA,EAAmB,IAEtB,MAAM,GAAIA,EAAY,MAAS,CAC9B,IAAKZ,GAAS,GAAK,EAAG,MACtBkD,EAAMrO,KACJ+L,GAAa,GAAM,IACnBA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,IAEtB,KAAM,MAAIA,EAAY,SASrB,MAAM,IAAIpN,MAAM,sBARhB,IAAKwM,GAAS,GAAK,EAAG,MACtBkD,EAAMrO,KACJ+L,GAAa,GAAO,IACpBA,GAAa,GAAM,GAAO,IAC1BA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,IAItB,CACF,CAED,OAAOsC,CACR,CA4BD,SAAS3F,GAAemC,GACtB,OHjuDK,SAAsBmH,GAI3B,IAAIxR,EAAG0J,EAAG+H,EAAG9N,EAAK+N,EAAc1L,EAH3B9C,GACHC,IAGF,IAAIE,EAAMmO,EAAIzR,OAEd,GAAIsD,EAAM,EAAI,EACZ,MAAM,IAAIlF,MAAM,kDAQlBuT,EAAgC,MAAjBF,EAAInO,EAAM,GAAa,EAAqB,MAAjBmO,EAAInO,EAAM,GAAa,EAAI,EAGrE2C,EAAM,IAAIjD,EAAU,EAANM,EAAU,EAAIqO,GAG5BD,EAAIC,EAAe,EAAIrO,EAAM,EAAIA,EAEjC,IAAIsO,EAAI,EAER,IAAK3R,EAAI,EAAG0J,EAAI,EAAG1J,EAAIyR,EAAGzR,GAAK,EAAG0J,GAAK,EACrC/F,EAAOb,EAAU0O,EAAIlO,WAAWtD,KAAO,GAAO8C,EAAU0O,EAAIlO,WAAWtD,EAAI,KAAO,GAAO8C,EAAU0O,EAAIlO,WAAWtD,EAAI,KAAO,EAAK8C,EAAU0O,EAAIlO,WAAWtD,EAAI,IAC/JgG,EAAI2L,KAAQhO,GAAO,GAAM,IACzBqC,EAAI2L,KAAQhO,GAAO,EAAK,IACxBqC,EAAI2L,KAAa,IAANhO,EAYb,OATqB,IAAjB+N,GACF/N,EAAOb,EAAU0O,EAAIlO,WAAWtD,KAAO,EAAM8C,EAAU0O,EAAIlO,WAAWtD,EAAI,KAAO,EACjFgG,EAAI2L,KAAa,IAANhO,GACe,IAAjB+N,IACT/N,EAAOb,EAAU0O,EAAIlO,WAAWtD,KAAO,GAAO8C,EAAU0O,EAAIlO,WAAWtD,EAAI,KAAO,EAAM8C,EAAU0O,EAAIlO,WAAWtD,EAAI,KAAO,EAC5HgG,EAAI2L,KAAQhO,GAAO,EAAK,IACxBqC,EAAI2L,KAAa,IAANhO,GAGNqC,CACT,CGsrDS4L,CAjIT,SAAsBvH,GAIpB,IAFAA,EAUF,SAAqBA,GACnB,OAAIA,EAAIwH,KAAaxH,EAAIwH,OAClBxH,EAAIyH,QAAQ,aAAc,GAClC,CAbOC,CAAW1H,GAAKyH,QAAQR,GAAmB,KAEzCvR,OAAS,EAAG,MAAO,GAE3B,KAAOsK,EAAItK,OAAS,GAAM,GACxBsK,GAAY,IAEd,OAAOA,CACR,CAuH2B2H,CAAY3H,GACvC,CAED,SAASF,GAAY8H,EAAKC,EAAK5N,EAAQvE,GACrC,IAAK,IAAIC,EAAI,EAAGA,EAAID,KACbC,EAAIsE,GAAU4N,EAAInS,QAAYC,GAAKiS,EAAIlS,UADhBC,EAE5BkS,EAAIlS,EAAIsE,GAAU2N,EAAIjS,GAExB,OAAOA,CACR,CAUM,SAASmM,GAASvT,GACvB,OAAc,MAAPA,MAAkBA,EAAIkP,WAAaqK,GAAavZ,IAQzD,SAAuBA,GACrB,MAAkC,mBAApBA,EAAI+W,aAAmD,mBAAd/W,EAAIwI,OAAwB+Q,GAAavZ,EAAIwI,MAAM,EAAG,GAC9G,CAVgEgR,CAAaxZ,GAC7E,CAED,SAASuZ,GAAcvZ,GACrB,QAASA,EAAIkC,aAAmD,mBAA7BlC,EAAIkC,YAAYqR,UAA2BvT,EAAIkC,YAAYqR,SAASvT,EACxG,wDA9vD8B,oCAwTxB,SAAqBmH,GAI1B,OAHKA,GAAUA,IACbA,EAAS,GAEJkG,EAAO+F,OAAOjM,EACtB,sBCvUD,SAASsS,KACL,MAAM,IAAIlU,MAAM,kCACnB,CACD,SAASmU,KACL,MAAM,IAAInU,MAAM,oCACnB,CACD,IAAIoU,GAAmBF,GACnBG,GAAqBF,GAQzB,SAASG,GAAWC,GAChB,GAAIH,KAAqBI,WAErB,OAAOA,WAAWD,EAAK,GAG3B,IAAKH,KAAqBF,KAAqBE,KAAqBI,WAEhE,OADAJ,GAAmBI,WACZA,WAAWD,EAAK,GAE3B,IAEI,OAAOH,GAAiBG,EAAK,EAShC,CARC,MAAMhO,GACJ,IAEI,OAAO6N,GAAiB5V,KAAK,KAAM+V,EAAK,EAI3C,CAHC,MAAMhO,GAEJ,OAAO6N,GAAiB5V,KAAKxC,KAAMuY,EAAK,EAC3C,CACJ,CAGJ,CA/BgC,mBAAtB/P,EAAOgQ,aACdJ,GAAmBI,YAEY,mBAAxBhQ,EAAOiQ,eACdJ,GAAqBI,cAuDzB,IAEIC,GAFAC,GAAQ,GACRC,IAAW,EAEXC,IAAc,EAElB,SAASC,KACAF,IAAaF,KAGlBE,IAAW,EACPF,GAAa9S,OACb+S,GAAQD,GAAarG,OAAOsG,IAE5BE,IAAc,EAEdF,GAAM/S,QACNmT,KAEP,CAED,SAASA,KACL,IAAIH,GAAJ,CAGA,IAAII,EAAUV,GAAWQ,IACzBF,IAAW,EAGX,IADA,IAAI1P,EAAMyP,GAAM/S,OACVsD,GAAK,CAGP,IAFAwP,GAAeC,GACfA,GAAQ,KACCE,GAAa3P,GACdwP,IACAA,GAAaG,IAAYI,MAGjCJ,IAAc,EACd3P,EAAMyP,GAAM/S,MACf,CACD8S,GAAe,KACfE,IAAW,EAnEf,SAAyBM,GACrB,GAAIb,KAAuBI,aAEvB,OAAOA,aAAaS,GAGxB,IAAKb,KAAuBF,KAAwBE,KAAuBI,aAEvE,OADAJ,GAAqBI,aACdA,aAAaS,GAExB,IAEWb,GAAmBa,EAU7B,CATC,MAAO3O,GACL,IAEI,OAAO8N,GAAmB7V,KAAK,KAAM0W,EAKxC,CAJC,MAAO3O,GAGL,OAAO8N,GAAmB7V,KAAKxC,KAAMkZ,EACxC,CACJ,CAIJ,CA0CGC,CAAgBH,EAlBf,CAmBJ,CACM,SAASI,GAASb,GACrB,IAAItY,EAAO,IAAI6I,MAAM5I,UAAU0F,OAAS,GACxC,GAAI1F,UAAU0F,OAAS,EACnB,IAAK,IAAIC,EAAI,EAAGA,EAAI3F,UAAU0F,OAAQC,IAClC5F,EAAK4F,EAAI,GAAK3F,UAAU2F,GAGhC8S,GAAMtT,KAAK,IAAIgU,GAAKd,EAAKtY,IACJ,IAAjB0Y,GAAM/S,QAAiBgT,IACvBN,GAAWS,GAElB,CAED,SAASM,GAAKd,EAAK9L,GACfzM,KAAKuY,IAAMA,EACXvY,KAAKyM,MAAQA,CAChB,CACD4M,GAAKzY,UAAUqY,IAAM,WACjBjZ,KAAKuY,IAAIpY,MAAM,KAAMH,KAAKyM,QAY9B,SAAS6M,KAAS,CAEX,IAAIC,GAAKD,GACLE,GAAcF,GACdG,GAAOH,GACPI,GAAMJ,GACNK,GAAiBL,GACjBM,GAAqBN,GACrBO,GAAOP,GAalB,IAAIQ,GAActR,EAAOsR,aAAe,CAAE,EACtCC,GACFD,GAAYE,KACZF,GAAYG,QACZH,GAAYI,OACZJ,GAAYK,MACZL,GAAYM,WACZ,WAAY,OAAO,IAAKC,MAAQC,SAAW,EAmB7C,IAAIC,GAAY,IAAIF,KAOL,IAAAG,GAAA,CACbpB,SAAUA,GACVqB,MAlEiB,UAmEjBC,SAjEmB,EAkEnBC,IAjEe,CAAA,EAkEfC,KAjEgB,GAkEhBC,QAjEmB,GAkEnBC,SAjEoB,CAAA,EAkEpBvB,GAAIA,GACJC,YAAaA,GACbC,KAAMA,GACNC,IAAKA,GACLC,eAAgBA,GAChBC,mBAAoBA,GACpBC,KAAMA,GACNkB,QA3DK,SAAiB7U,GACpB,MAAM,IAAIlC,MAAM,mCACnB,EA0DCgX,IAxDK,WAAkB,MAAO,GAAK,EAyDnCC,MAxDK,SAAgBtM,GACnB,MAAM,IAAI3K,MAAM,mCAwDlBkX,MAtDK,WAAmB,OAAO,CAAI,EAuDnCC,OAzCK,SAAgBC,GACrB,IAAIC,EAA6C,KAAjCtB,GAAevX,KAAKsX,IAChCwB,EAAUrQ,KAAKM,MAAM8P,GACrBE,EAActQ,KAAKM,MAAO8P,EAAU,EAAG,KAS3C,OARID,IACFE,GAAoBF,EAAkB,IACtCG,GAA4BH,EAAkB,IAC9B,IACdE,IACAC,GAAe,MAGZ,CAACD,EAAQC,EACjB,EA6BCC,SAnFoB,UAoFpBC,QA9EmB,CAAA,EA+EnBC,OA9EkB,CAAA,EA+ElBC,OA7BK,WAGL,OAFkB,IAAItB,KACEE,IACX,GACd,mBC5LD,SAASqB,KAAkB,CAG3B,SAASC,KACPA,GAAa7S,KAAKxG,KAAKxC,KACzB,CA4CA,SAAS8b,GAAiB3P,GACxB,YAA2B9L,IAAvB8L,EAAK4P,cACAF,GAAaG,oBACf7P,EAAK4P,aACd,CAWA,SAASE,GAASC,EAASC,EAAMpc,GAC/B,GAAIoc,EACFD,EAAQ1Z,KAAKzC,QAIb,IAFA,IAAImJ,EAAMgT,EAAQtW,OACdwW,EAAYC,GAAWH,EAAShT,GAC3BrD,EAAI,EAAGA,EAAIqD,IAAOrD,EACzBuW,EAAUvW,GAAGrD,KAAKzC,EAExB,CACA,SAASuc,GAAQJ,EAASC,EAAMpc,EAAMwc,GACpC,GAAIJ,EACFD,EAAQ1Z,KAAKzC,EAAMwc,QAInB,IAFA,IAAIrT,EAAMgT,EAAQtW,OACdwW,EAAYC,GAAWH,EAAShT,GAC3BrD,EAAI,EAAGA,EAAIqD,IAAOrD,EACzBuW,EAAUvW,GAAGrD,KAAKzC,EAAMwc,EAE9B,CACA,SAASC,GAAQN,EAASC,EAAMpc,EAAMwc,EAAME,GAC1C,GAAIN,EACFD,EAAQ1Z,KAAKzC,EAAMwc,EAAME,QAIzB,IAFA,IAAIvT,EAAMgT,EAAQtW,OACdwW,EAAYC,GAAWH,EAAShT,GAC3BrD,EAAI,EAAGA,EAAIqD,IAAOrD,EACzBuW,EAAUvW,GAAGrD,KAAKzC,EAAMwc,EAAME,EAEpC,CACA,SAASC,GAAUR,EAASC,EAAMpc,EAAMwc,EAAME,EAAME,GAClD,GAAIR,EACFD,EAAQ1Z,KAAKzC,EAAMwc,EAAME,EAAME,QAI/B,IAFA,IAAIzT,EAAMgT,EAAQtW,OACdwW,EAAYC,GAAWH,EAAShT,GAC3BrD,EAAI,EAAGA,EAAIqD,IAAOrD,EACzBuW,EAAUvW,GAAGrD,KAAKzC,EAAMwc,EAAME,EAAME,EAE1C,CAEA,SAASC,GAASV,EAASC,EAAMpc,EAAME,GACrC,GAAIkc,EACFD,EAAQ/b,MAAMJ,EAAME,QAIpB,IAFA,IAAIiJ,EAAMgT,EAAQtW,OACdwW,EAAYC,GAAWH,EAAShT,GAC3BrD,EAAI,EAAGA,EAAIqD,IAAOrD,EACzBuW,EAAUvW,GAAG1F,MAAMJ,EAAME,EAE/B,CAuEA,SAAS4c,GAAa/J,EAAQvQ,EAAMua,EAAUC,GAC5C,IAAIvS,EACAwS,EACAC,EA4De1S,EA1DnB,GAAwB,mBAAbuS,EACT,MAAM,IAAIrY,UAAU,0CAoBtB,IAlBAuY,EAASlK,EAAOoK,UAOVF,EAAOG,cACTrK,EAAO+G,KAAK,cAAetX,EACfua,EAASA,SAAWA,EAASA,SAAWA,GAIpDE,EAASlK,EAAOoK,SAElBD,EAAWD,EAAOza,KAblBya,EAASlK,EAAOoK,QAAU,IAAItB,GAC9B9I,EAAOsK,aAAe,GAenBH,GAmBH,GAdwB,mBAAbA,EAETA,EAAWD,EAAOza,GAAQwa,EAAU,CAACD,EAAUG,GACX,CAACA,EAAUH,GAG3CC,EACFE,EAASI,QAAQP,GAEjBG,EAAS5X,KAAKyX,IAKbG,EAASK,SACZ9S,EAAIsR,GAAiBhJ,KACZtI,EAAI,GAAKyS,EAASrX,OAAS4E,EAAG,CACrCyS,EAASK,QAAS,EAClB,IAAIC,EAAI,IAAIvZ,MAAM,+CACEiZ,EAASrX,OAAS,IAAMrD,EAD1B,qEAGlBgb,EAAErX,KAAO,8BACTqX,EAAEC,QAAU1K,EACZyK,EAAEhb,KAAOA,EACTgb,EAAEE,MAAQR,EAASrX,OAQN2E,EAPDgT,EAQM,mBAAjBG,QAAQC,KAAsBD,QAAQC,KAAKpT,GAAKmT,QAAQlS,IAAIjB,EAP9D,OA7BH0S,EAAWD,EAAOza,GAAQua,IACxBhK,EAAOsK,aAgCX,OAAOtK,CACT,CAeA,SAAS8K,GAAU9K,EAAQvQ,EAAMua,GAC/B,IAAIe,GAAQ,EACZ,SAASC,IACPhL,EAAO6G,eAAepX,EAAMub,GACvBD,IACHA,GAAQ,EACRf,EAAS3c,MAAM2S,EAAQ5S,WAE1B,CAED,OADA4d,EAAEhB,SAAWA,EACNgB,CACT,CA0JA,SAASC,GAAcxb,GACrB,IAAIya,EAAShd,KAAKkd,QAElB,GAAIF,EAAQ,CACV,IAAIgB,EAAahB,EAAOza,GAExB,GAA0B,mBAAfyb,EACT,OAAO,EACF,GAAIA,EACT,OAAOA,EAAWpY,MAErB,CAED,OAAO,CACT,CAaA,SAASyW,GAAWxQ,EAAKhG,GAEvB,IADA,IAAIwH,EAAO,IAAIvE,MAAMjD,GACdA,KACLwH,EAAKxH,GAAKgG,EAAIhG,GAChB,OAAOwH,CACT,CA1cAuO,GAAchb,UAAYhC,OAAOsD,OAAO,MAUxC2Z,GAAaA,aAAeA,GAE5BA,GAAaoC,cAAe,EAE5BpC,GAAajb,UAAUsd,YAAS7d,EAChCwb,GAAajb,UAAUsc,aAAU7c,EACjCwb,GAAajb,UAAUmb,mBAAgB1b,EAIvCwb,GAAaG,oBAAsB,GAEnCH,GAAa7S,KAAO,WAClBhJ,KAAKke,OAAS,KACVrC,GAAaoC,cA9BfC,UAgCWC,OAKRne,KAAKkd,SAAWld,KAAKkd,UAAYte,OAAOkE,eAAe9C,MAAMkd,UAChEld,KAAKkd,QAAU,IAAItB,GACnB5b,KAAKod,aAAe,GAGtBpd,KAAK+b,cAAgB/b,KAAK+b,oBAAiB1b,CAC7C,EAIAwb,GAAajb,UAAUwd,gBAAkB,SAAyB3P,GAChE,GAAiB,iBAANA,GAAkBA,EAAI,GAAK9I,MAAM8I,GAC1C,MAAM,IAAIhK,UAAU,0CAEtB,OADAzE,KAAK+b,cAAgBtN,EACdzO,IACT,EAQA6b,GAAajb,UAAUyd,gBAAkB,WACvC,OAAOvC,GAAiB9b,KAC1B,EA2DA6b,GAAajb,UAAUiZ,KAAO,SAActX,GAC1C,IAAI+b,EAAIpC,EAAShT,EAAKjJ,EAAM4F,EAAGmX,EAAQkB,EAEnCK,EAAoB,UAAThc,EAGf,GADAya,EAAShd,KAAKkd,QAEZqB,EAAWA,GAA2B,MAAhBvB,EAAOvd,WAC1B,IAAK8e,EACR,OAAO,EAKT,GAHAL,EAASle,KAAKke,OAGVK,EAAS,CAEX,GADAD,EAAKpe,UAAU,IACXge,EAOG,IAAII,aAActa,MACvB,MAAMsa,EAGN,IAAIle,EAAM,IAAI4D,MAAM,yCAA2Csa,EAAK,KAEpE,MADAle,EAAI+B,QAAUmc,EACRle,CACP,CACD,OAdOke,IACHA,EAAK,IAAIta,MAAM,wCACjBsa,EAAGE,cAAgBxe,KACnBse,EAAGJ,OAASA,EACZI,EAAGG,cAAe,EAClBP,EAAOrE,KAAK,QAASyE,IAShB,CACR,CAID,KAFApC,EAAUc,EAAOza,IAGf,OAAO,EAET,IAAI4Z,EAA0B,mBAAZD,EAElB,OADAhT,EAAMhJ,UAAU0F,QAGd,KAAK,EACHqW,GAASC,EAASC,EAAMnc,MACxB,MACF,KAAK,EACHsc,GAAQJ,EAASC,EAAMnc,KAAME,UAAU,IACvC,MACF,KAAK,EACHsc,GAAQN,EAASC,EAAMnc,KAAME,UAAU,GAAIA,UAAU,IACrD,MACF,KAAK,EACHwc,GAAUR,EAASC,EAAMnc,KAAME,UAAU,GAAIA,UAAU,GAAIA,UAAU,IACrE,MAEF,QAEE,IADAD,EAAO,IAAI6I,MAAMI,EAAM,GAClBrD,EAAI,EAAGA,EAAIqD,EAAKrD,IACnB5F,EAAK4F,EAAI,GAAK3F,UAAU2F,GAC1B+W,GAASV,EAASC,EAAMnc,KAAMC,GAMlC,OAAO,CACT,EAoEA4b,GAAajb,UAAU4Y,YAAc,SAAqBjX,EAAMua,GAC9D,OAAOD,GAAa7c,KAAMuC,EAAMua,GAAU,EAC5C,EAEAjB,GAAajb,UAAU2Y,GAAKsC,GAAajb,UAAU4Y,YAEnDqC,GAAajb,UAAU8d,gBACnB,SAAyBnc,EAAMua,GAC7B,OAAOD,GAAa7c,KAAMuC,EAAMua,GAAU,EAChD,EAeAjB,GAAajb,UAAU6Y,KAAO,SAAclX,EAAMua,GAChD,GAAwB,mBAAbA,EACT,MAAM,IAAIrY,UAAU,0CAEtB,OADAzE,KAAKuZ,GAAGhX,EAAMqb,GAAU5d,KAAMuC,EAAMua,IAC7B9c,IACT,EAEA6b,GAAajb,UAAU+d,oBACnB,SAA6Bpc,EAAMua,GACjC,GAAwB,mBAAbA,EACT,MAAM,IAAIrY,UAAU,0CAEtB,OADAzE,KAAK0e,gBAAgBnc,EAAMqb,GAAU5d,KAAMuC,EAAMua,IAC1C9c,IACb,EAGA6b,GAAajb,UAAU+Y,eACnB,SAAwBpX,EAAMua,GAC5B,IAAIxK,EAAM0K,EAAQ4B,EAAU/Y,EAAGgZ,EAE/B,GAAwB,mBAAb/B,EACT,MAAM,IAAIrY,UAAU,0CAGtB,KADAuY,EAAShd,KAAKkd,SAEZ,OAAOld,KAGT,KADAsS,EAAO0K,EAAOza,IAEZ,OAAOvC,KAET,GAAIsS,IAASwK,GAAaxK,EAAKwK,UAAYxK,EAAKwK,WAAaA,EAC/B,KAAtB9c,KAAKod,aACTpd,KAAKkd,QAAU,IAAItB,WAEZoB,EAAOza,GACVya,EAAOrD,gBACT3Z,KAAK6Z,KAAK,iBAAkBtX,EAAM+P,EAAKwK,UAAYA,SAElD,GAAoB,mBAATxK,EAAqB,CAGrC,IAFAsM,GAAY,EAEP/Y,EAAIyM,EAAK1M,OAAQC,KAAM,GAC1B,GAAIyM,EAAKzM,KAAOiX,GACXxK,EAAKzM,GAAGiX,UAAYxK,EAAKzM,GAAGiX,WAAaA,EAAW,CACvD+B,EAAmBvM,EAAKzM,GAAGiX,SAC3B8B,EAAW/Y,EACX,KACD,CAGH,GAAI+Y,EAAW,EACb,OAAO5e,KAET,GAAoB,IAAhBsS,EAAK1M,OAAc,CAErB,GADA0M,EAAK,QAAKjS,EACkB,KAAtBL,KAAKod,aAET,OADApd,KAAKkd,QAAU,IAAItB,GACZ5b,YAEAgd,EAAOza,EAE1B,MA+GA,SAAmB+P,EAAMwM,GACvB,IAAK,IAAIjZ,EAAIiZ,EAAOC,EAAIlZ,EAAI,EAAG4I,EAAI6D,EAAK1M,OAAQmZ,EAAItQ,EAAG5I,GAAK,EAAGkZ,GAAK,EAClEzM,EAAKzM,GAAKyM,EAAKyM,GACjBzM,EAAKzL,KACP,CAlHUmY,CAAU1M,EAAMsM,GAGd5B,EAAOrD,gBACT3Z,KAAK6Z,KAAK,iBAAkBtX,EAAMsc,GAAoB/B,EACzD,CAED,OAAO9c,IACb,EAEA6b,GAAajb,UAAUgZ,mBACnB,SAA4BrX,GAC1B,IAAI6Z,EAAWY,EAGf,KADAA,EAAShd,KAAKkd,SAEZ,OAAOld,KAGT,IAAKgd,EAAOrD,eAUV,OATyB,IAArBzZ,UAAU0F,QACZ5F,KAAKkd,QAAU,IAAItB,GACnB5b,KAAKod,aAAe,GACXJ,EAAOza,KACY,KAAtBvC,KAAKod,aACTpd,KAAKkd,QAAU,IAAItB,UAEZoB,EAAOza,IAEXvC,KAIT,GAAyB,IAArBE,UAAU0F,OAAc,CAE1B,IADA,IACgBlH,EADZ+H,EAAO7H,OAAO6H,KAAKuW,GACdnX,EAAI,EAAQA,EAAIY,EAAKb,SAAUC,EAE1B,oBADZnH,EAAM+H,EAAKZ,KAEX7F,KAAK4Z,mBAAmBlb,GAK1B,OAHAsB,KAAK4Z,mBAAmB,kBACxB5Z,KAAKkd,QAAU,IAAItB,GACnB5b,KAAKod,aAAe,EACbpd,IACR,CAID,GAAyB,mBAFzBoc,EAAYY,EAAOza,IAGjBvC,KAAK2Z,eAAepX,EAAM6Z,QACrB,GAAIA,EAET,GACEpc,KAAK2Z,eAAepX,EAAM6Z,EAAUA,EAAUxW,OAAS,UAChDwW,EAAU,IAGrB,OAAOpc,IACb,EAEA6b,GAAajb,UAAUwb,UAAY,SAAmB7Z,GACpD,IAAIyb,EACAzK,EACAyJ,EAAShd,KAAKkd,QAclB,OALI3J,EAPCyJ,IAGHgB,EAAahB,EAAOza,IAGW,mBAAfyb,EACR,CAACA,EAAWlB,UAAYkB,GAmDpC,SAAyBnS,GAEvB,IADA,IAAI0H,EAAM,IAAIzK,MAAM+C,EAAIjG,QACfC,EAAI,EAAGA,EAAI0N,EAAI3N,SAAUC,EAChC0N,EAAI1N,GAAKgG,EAAIhG,GAAGiX,UAAYjR,EAAIhG,GAElC,OAAO0N,CACT,CAvDY0L,CAAgBjB,GARlB,GAWDzK,CACT,EAEAsI,GAAakC,cAAgB,SAASP,EAASjb,GAC7C,MAAqC,mBAA1Bib,EAAQO,cACVP,EAAQO,cAAcxb,GAEtBwb,GAAcvb,KAAKgb,EAASjb,EAEvC,EAEAsZ,GAAajb,UAAUmd,cAAgBA,GAiBvClC,GAAajb,UAAUse,WAAa,WAClC,OAAOlf,KAAKod,aAAe,EAAI+B,QAAQC,QAAQpf,KAAKkd,SAAW,EACjE,oEC5aAmC,GAtB6B,mBAAlBzgB,OAAOsD,OACL,SAAkB+D,EAAMqZ,GAEjCrZ,EAAKsZ,OAASD,EACdrZ,EAAKrF,UAAYhC,OAAOsD,OAAOod,EAAU1e,UAAW,CAClDD,YAAa,CACXhC,MAAOsH,EACPnH,YAAY,EACZE,UAAU,EACVD,cAAc,IAGtB,EAEa,SAAkBkH,EAAMqZ,GACjCrZ,EAAKsZ,OAASD,EACd,IAAIE,EAAW,WAAc,EAC7BA,EAAS5e,UAAY0e,EAAU1e,UAC/BqF,EAAKrF,UAAY,IAAI4e,EACrBvZ,EAAKrF,UAAUD,YAAcsF,CAC9B,ECDCwZ,GAAe,WACZ,SAASC,GAAOC,GACrB,IAAKC,GAASD,GAAI,CAEhB,IADA,IAAIE,EAAU,GACLha,EAAI,EAAGA,EAAI3F,UAAU0F,OAAQC,IACpCga,EAAQxa,KAAKuN,GAAQ1S,UAAU2F,KAEjC,OAAOga,EAAQlW,KAAK,IACrB,CAEG9D,EAAI,EAmBR,IAnBA,IACI5F,EAAOC,UACPgJ,EAAMjJ,EAAK2F,OACXsK,EAAMhB,OAAOyQ,GAAGhI,QAAQ8H,IAAc,SAAStN,GACjD,GAAU,OAANA,EAAY,MAAO,IACvB,GAAItM,GAAKqD,EAAK,OAAOiJ,EACrB,OAAQA,GACN,IAAK,KAAM,OAAOjD,OAAOjP,EAAK4F,MAC9B,IAAK,KAAM,OAAO4J,OAAOxP,EAAK4F,MAC9B,IAAK,KACH,IACE,OAAOia,KAAKC,UAAU9f,EAAK4F,KAG5B,CAFC,MAAOma,GACP,MAAO,YACR,CACH,QACE,OAAO7N,EAEZ,IACQA,EAAIlS,EAAK4F,GAAIA,EAAIqD,EAAKiJ,EAAIlS,IAAO4F,GACpCoa,GAAO9N,KAAO+N,GAAS/N,GACzBjC,GAAO,IAAMiC,EAEbjC,GAAO,IAAM0C,GAAQT,GAGzB,OAAOjC,EAOF,SAASiQ,GAAUrgB,EAAIsgB,GAE5B,GAAIC,GAAY7X,EAAOgS,SACrB,OAAO,WACL,OAAO2F,GAAUrgB,EAAIsgB,GAAKjgB,MAAMH,KAAME,YAI1C,IAA8B,IAA1Bsa,GAAQ8F,cACV,OAAOxgB,EAGT,IAAIwd,GAAS,EAeb,OAdA,WACE,IAAKA,EAAQ,CACX,GAAI9C,GAAQ+F,iBACV,MAAM,IAAIvc,MAAMoc,GACP5F,GAAQgG,iBACjB9C,QAAQ+C,MAAML,GAEd1C,QAAQje,MAAM2gB,GAEhB9C,GAAS,CACV,CACD,OAAOxd,EAAGK,MAAMH,KAAME,UACvB,EAMH,IACIwgB,GADAC,GAAS,CAAA,EAEN,SAASC,GAAS1J,GAIvB,GAHImJ,GAAYK,MACdA,GAAelG,GAAQG,IAAIkG,YAAc,IAC3C3J,EAAMA,EAAI4J,eACLH,GAAOzJ,GACV,GAAI,IAAI6J,OAAO,MAAQ7J,EAAM,MAAO,KAAK8J,KAAKN,IAAe,CAE3DC,GAAOzJ,GAAO,WACZ,IAAIkJ,EAAMV,GAAOvf,MAAM,KAAMD,WAC7Bwd,QAAQje,MAAM,YAAayX,EAHnB,EAG6BkJ,SAGvCO,GAAOzJ,GAAO,aAGlB,OAAOyJ,GAAOzJ,GAYT,SAAStE,GAAQnU,EAAKwiB,GAE3B,IAAIC,EAAM,CACRC,KAAM,GACNC,QAASC,IAkBX,OAfInhB,UAAU0F,QAAU,IAAGsb,EAAII,MAAQphB,UAAU,IAC7CA,UAAU0F,QAAU,IAAGsb,EAAIK,OAASrhB,UAAU,IAC9CshB,GAAUP,GAEZC,EAAIO,WAAaR,EACRA,GAETS,GAAQR,EAAKD,GAGXZ,GAAYa,EAAIO,cAAaP,EAAIO,YAAa,GAC9CpB,GAAYa,EAAII,SAAQJ,EAAII,MAAQ,GACpCjB,GAAYa,EAAIK,UAASL,EAAIK,QAAS,GACtClB,GAAYa,EAAIS,iBAAgBT,EAAIS,eAAgB,GACpDT,EAAIK,SAAQL,EAAIE,QAAUQ,IACvBC,GAAYX,EAAKziB,EAAKyiB,EAAII,MAClC,CAiCD,SAASM,GAAiB1R,EAAK4R,GAC7B,IAAIC,EAAQnP,GAAQoP,OAAOF,GAE3B,OAAIC,EACK,KAAYnP,GAAQ2O,OAAOQ,GAAO,GAAK,IAAM7R,EAC7C,KAAY0C,GAAQ2O,OAAOQ,GAAO,GAAK,IAEvC7R,CAEV,CAGD,SAASmR,GAAenR,EAAK4R,GAC3B,OAAO5R,CACR,CAcD,SAAS2R,GAAYX,EAAKviB,EAAOsjB,GAG/B,GAAIf,EAAIS,eACJhjB,GACAujB,GAAWvjB,EAAMiU,UAEjBjU,EAAMiU,UAAYA,MAEhBjU,EAAMgC,aAAehC,EAAMgC,YAAYC,YAAcjC,GAAQ,CACjE,IAAI4U,EAAM5U,EAAMiU,QAAQqP,EAAcf,GAItC,OAHKtB,GAASrM,KACZA,EAAMsO,GAAYX,EAAK3N,EAAK0O,IAEvB1O,CACR,CAGD,IAAI4O,EA+FN,SAAyBjB,EAAKviB,GAC5B,GAAI0hB,GAAY1hB,GACd,OAAOuiB,EAAIE,QAAQ,YAAa,aAClC,GAAIxB,GAASjhB,GAAQ,CACnB,IAAIyjB,EAAS,IAAOtC,KAAKC,UAAUphB,GAAOgZ,QAAQ,SAAU,IAClBA,QAAQ,KAAM,OACdA,QAAQ,OAAQ,KAAO,IACjE,OAAOuJ,EAAIE,QAAQgB,EAAQ,SAC5B,CACD,GAAIC,GAAS1jB,GACX,OAAOuiB,EAAIE,QAAQ,GAAKziB,EAAO,UACjC,GAAI6iB,GAAU7iB,GACZ,OAAOuiB,EAAIE,QAAQ,GAAKziB,EAAO,WAEjC,GAAIshB,GAAOthB,GACT,OAAOuiB,EAAIE,QAAQ,OAAQ,OAC9B,CA/GiBkB,CAAgBpB,EAAKviB,GACrC,GAAIwjB,EACF,OAAOA,EAIT,IAAI1b,EAAO7H,OAAO6H,KAAK9H,GACnB4jB,EApCN,SAAqB9V,GACnB,IAAI+V,EAAO,CAAA,EAMX,OAJA/V,EAAMtJ,SAAQ,SAASuD,EAAK+b,GAC1BD,EAAK9b,IAAO,CACb,IAEM8b,CACR,CA4BmBE,CAAYjc,GAQ9B,GANIya,EAAIO,aACNhb,EAAO7H,OAAO+jB,oBAAoBhkB,IAKhCikB,GAAQjkB,KACJ8H,EAAKoI,QAAQ,YAAc,GAAKpI,EAAKoI,QAAQ,gBAAkB,GACrE,OAAOgU,GAAYlkB,GAIrB,GAAoB,IAAhB8H,EAAKb,OAAc,CACrB,GAAIsc,GAAWvjB,GAAQ,CACrB,IAAIuH,EAAOvH,EAAMuH,KAAO,KAAOvH,EAAMuH,KAAO,GAC5C,OAAOgb,EAAIE,QAAQ,YAAclb,EAAO,IAAK,UAC9C,CACD,GAAI4c,GAASnkB,GACX,OAAOuiB,EAAIE,QAAQL,OAAOngB,UAAU8K,SAASlJ,KAAK7D,GAAQ,UAE5D,GAAIokB,GAAOpkB,GACT,OAAOuiB,EAAIE,QAAQ/G,KAAKzZ,UAAU8K,SAASlJ,KAAK7D,GAAQ,QAE1D,GAAIikB,GAAQjkB,GACV,OAAOkkB,GAAYlkB,EAEtB,CAED,IA2CI+K,EA3CAsZ,EAAO,GAAIvW,GAAQ,EAAOwW,EAAS,CAAC,IAAK,MAGzCrX,GAAQjN,KACV8N,GAAQ,EACRwW,EAAS,CAAC,IAAK,MAIbf,GAAWvjB,MAEbqkB,EAAO,cADCrkB,EAAMuH,KAAO,KAAOvH,EAAMuH,KAAO,IACf,KAkB5B,OAdI4c,GAASnkB,KACXqkB,EAAO,IAAMjC,OAAOngB,UAAU8K,SAASlJ,KAAK7D,IAI1CokB,GAAOpkB,KACTqkB,EAAO,IAAM3I,KAAKzZ,UAAUsiB,YAAY1gB,KAAK7D,IAI3CikB,GAAQjkB,KACVqkB,EAAO,IAAMH,GAAYlkB,IAGP,IAAhB8H,EAAKb,QAAkB6G,GAAyB,GAAhB9N,EAAMiH,OAItCqc,EAAe,EACba,GAASnkB,GACJuiB,EAAIE,QAAQL,OAAOngB,UAAU8K,SAASlJ,KAAK7D,GAAQ,UAEnDuiB,EAAIE,QAAQ,WAAY,YAInCF,EAAIC,KAAK9b,KAAK1G,GAIZ+K,EADE+C,EAsCN,SAAqByU,EAAKviB,EAAOsjB,EAAcM,EAAa9b,GAE1D,IADA,IAAIiD,EAAS,GACJ7D,EAAI,EAAGyR,EAAI3Y,EAAMiH,OAAQC,EAAIyR,IAAKzR,EACrC3E,GAAevC,EAAOuQ,OAAOrJ,IAC/B6D,EAAOrE,KAAK8d,GAAejC,EAAKviB,EAAOsjB,EAAcM,EACjDrT,OAAOrJ,IAAI,IAEf6D,EAAOrE,KAAK,IAShB,OANAoB,EAAKtD,SAAQ,SAASzE,GACfA,EAAImU,MAAM,UACbnJ,EAAOrE,KAAK8d,GAAejC,EAAKviB,EAAOsjB,EAAcM,EACjD7jB,GAAK,GAEZ,IACMgL,CACR,CAtDY0Z,CAAYlC,EAAKviB,EAAOsjB,EAAcM,EAAa9b,GAEnDA,EAAK4c,KAAI,SAAS3kB,GACzB,OAAOykB,GAAejC,EAAKviB,EAAOsjB,EAAcM,EAAa7jB,EAAK+N,EACnE,IAGHyU,EAAIC,KAAKta,MA6GX,SAA8B6C,EAAQsZ,EAAMC,GAQ1C,GANavZ,EAAO4Z,QAAO,SAASvc,EAAMwc,GAGxC,OADIA,EAAI1U,QAAQ,MACT9H,EAAOwc,EAAI5L,QAAQ,kBAAmB,IAAI/R,OAAS,CAC3D,GAAE,GAEU,GACX,OAAOqd,EAAO,IACG,KAATD,EAAc,GAAKA,EAAO,OAC3B,IACAtZ,EAAOC,KAAK,SACZ,IACAsZ,EAAO,GAGhB,OAAOA,EAAO,GAAKD,EAAO,IAAMtZ,EAAOC,KAAK,MAAQ,IAAMsZ,EAAO,EAClE,CA7HQO,CAAqB9Z,EAAQsZ,EAAMC,IAxBjCA,EAAO,GAAKD,EAAOC,EAAO,EAyBpC,CAsBD,SAASJ,GAAYlkB,GACnB,MAAO,IAAMqF,MAAMpD,UAAU8K,SAASlJ,KAAK7D,GAAS,GACrD,CAuBD,SAASwkB,GAAejC,EAAKviB,EAAOsjB,EAAcM,EAAa7jB,EAAK+N,GAClE,IAAIvG,EAAMgK,EAAK/O,EAsCf,IArCAA,EAAOvC,OAAO6kB,yBAAyB9kB,EAAOD,IAAQ,CAAEC,MAAOA,EAAMD,KAC5DglB,IAELxT,EADE/O,EAAK+V,IACDgK,EAAIE,QAAQ,kBAAmB,WAE/BF,EAAIE,QAAQ,WAAY,WAG5BjgB,EAAK+V,MACPhH,EAAMgR,EAAIE,QAAQ,WAAY,YAG7BlgB,GAAeqhB,EAAa7jB,KAC/BwH,EAAO,IAAMxH,EAAM,KAEhBwR,IACCgR,EAAIC,KAAKtS,QAAQ1N,EAAKxC,OAAS,GAE/BuR,EADE+P,GAAOgC,GACHJ,GAAYX,EAAK/f,EAAKxC,MAAO,MAE7BkjB,GAAYX,EAAK/f,EAAKxC,MAAOsjB,EAAe,IAE5CpT,QAAQ,OAAS,IAErBqB,EADEzD,EACIyD,EAAIyT,MAAM,MAAMN,KAAI,SAASO,GACjC,MAAO,KAAOA,CACf,IAAEja,KAAK,MAAMmG,OAAO,GAEf,KAAOI,EAAIyT,MAAM,MAAMN,KAAI,SAASO,GACxC,MAAO,MAAQA,CAChB,IAAEja,KAAK,OAIZuG,EAAMgR,EAAIE,QAAQ,aAAc,YAGhCf,GAAYna,GAAO,CACrB,GAAIuG,GAAS/N,EAAImU,MAAM,SACrB,OAAO3C,GAEThK,EAAO4Z,KAAKC,UAAU,GAAKrhB,IAClBmU,MAAM,iCACb3M,EAAOA,EAAK4J,OAAO,EAAG5J,EAAKN,OAAS,GACpCM,EAAOgb,EAAIE,QAAQlb,EAAM,UAEzBA,EAAOA,EAAKyR,QAAQ,KAAM,OACdA,QAAQ,OAAQ,KAChBA,QAAQ,WAAY,KAChCzR,EAAOgb,EAAIE,QAAQlb,EAAM,UAE5B,CAED,OAAOA,EAAO,KAAOgK,CACtB,CA0BM,SAAStE,GAAQiY,GACtB,OAAO/a,MAAM8C,QAAQiY,EACtB,CAEM,SAASrC,GAAUjiB,GACxB,MAAsB,kBAARA,CACf,CAEM,SAAS0gB,GAAO1gB,GACrB,OAAe,OAARA,CACR,CAEM,SAASukB,GAAkBvkB,GAChC,OAAc,MAAPA,CACR,CAEM,SAAS8iB,GAAS9iB,GACvB,MAAsB,iBAARA,CACf,CAEM,SAASqgB,GAASrgB,GACvB,MAAsB,iBAARA,CACf,CAEM,SAASwkB,GAASxkB,GACvB,MAAsB,iBAARA,CACf,CAEM,SAAS8gB,GAAY9gB,GAC1B,YAAe,IAARA,CACR,CAEM,SAASujB,GAASkB,GACvB,OAAO9D,GAAS8D,IAA8B,oBAAvBC,GAAeD,EACvC,CAEM,SAAS9D,GAAS3gB,GACvB,MAAsB,iBAARA,GAA4B,OAARA,CACnC,CAEM,SAASwjB,GAAOlY,GACrB,OAAOqV,GAASrV,IAA4B,kBAAtBoZ,GAAepZ,EACtC,CAEM,SAAS+X,GAAQrY,GACtB,OAAO2V,GAAS3V,KACW,mBAAtB0Z,GAAe1Z,IAA2BA,aAAavG,MAC7D,CAEM,SAASke,GAAW3iB,GACzB,MAAsB,mBAARA,CACf,CAEM,SAAS2kB,GAAY3kB,GAC1B,OAAe,OAARA,GACe,kBAARA,GACQ,iBAARA,GACQ,iBAARA,GACQ,iBAARA,QACQ,IAARA,CACf,CAEM,SAASyS,GAASmS,GACvB,OAAOC,GAAgBD,EACxB,CAED,SAASF,GAAeI,GACtB,OAAOzlB,OAAOgC,UAAU8K,SAASlJ,KAAK6hB,EACvC,CAGD,SAASC,GAAI7V,GACX,OAAOA,EAAI,GAAK,IAAMA,EAAE/C,SAAS,IAAM+C,EAAE/C,SAAS,GACnD,CAlXDkH,GAAQ2O,OAAS,CACfgD,KAAS,CAAC,EAAG,IACbC,OAAW,CAAC,EAAG,IACfC,UAAc,CAAC,EAAG,IAClBC,QAAY,CAAC,EAAG,IAChBC,MAAU,CAAC,GAAI,IACfC,KAAS,CAAC,GAAI,IACdC,MAAU,CAAC,GAAI,IACfC,KAAS,CAAC,GAAI,IACdC,KAAS,CAAC,GAAI,IACdC,MAAU,CAAC,GAAI,IACfC,QAAY,CAAC,GAAI,IACjBC,IAAQ,CAAC,GAAI,IACbC,OAAW,CAAC,GAAI,KAIlBvS,GAAQoP,OAAS,CACfoD,QAAW,OACXC,OAAU,SACVC,QAAW,SACXjlB,UAAa,OACbklB,KAAQ,OACRzY,OAAU,QACV0Y,KAAQ,UAERC,OAAU,OA2VZ,IAAIC,GAAS,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,MAAO,MAAO,OAG5B,SAASC,KACP,IAAI9a,EAAI,IAAIwP,KACRuL,EAAO,CAACtB,GAAIzZ,EAAEgb,YACNvB,GAAIzZ,EAAEib,cACNxB,GAAIzZ,EAAEkb,eAAepc,KAAK,KACtC,MAAO,CAACkB,EAAEmb,UAAWN,GAAO7a,EAAEob,YAAaL,GAAMjc,KAAK,IACvD,CAIM,SAAS6B,KACdkS,QAAQlS,IAAI,UAAWma,KAAajG,GAAOvf,MAAM,KAAMD,WACxD,CAmBM,SAASwhB,GAAQwE,EAAQC,GAE9B,IAAKA,IAAQjG,GAASiG,GAAM,OAAOD,EAInC,IAFA,IAAIzf,EAAO7H,OAAO6H,KAAK0f,GACnBtgB,EAAIY,EAAKb,OACNC,KACLqgB,EAAOzf,EAAKZ,IAAMsgB,EAAI1f,EAAKZ,IAE7B,OAAOqgB,EAGT,SAAShlB,GAAezC,EAAK2nB,GAC3B,OAAOxnB,OAAOgC,UAAUM,eAAesB,KAAK/D,EAAK2nB,EAClD,CAEc,IAAAC,GAAA,CACbC,SAAUA,GACV5E,QAASA,GACTlW,IAAKA,GACLwG,SAAUA,GACVkS,YAAaA,GACbhC,WAAYA,GACZU,QAASA,GACTG,OAAQA,GACR7C,SAAUA,GACV4C,SAAUA,GACVzC,YAAaA,GACb0D,SAAUA,GACVnE,SAAUA,GACVyC,SAAUA,GACVyB,kBAAmBA,GACnB7D,OAAQA,GACRuB,UAAWA,GACX5V,QAASA,GACTgH,QAASA,GACTuN,UAAWA,GACXT,OAAQA,GACRkB,SAAUA,8TChlBZ,SAAS2F,KACPvmB,KAAKwmB,KAAO,KACZxmB,KAAKymB,KAAO,KACZzmB,KAAK4F,OAAS,CAChB,CAEA2gB,GAAW3lB,UAAUyE,KAAO,SAAUqhB,GACpC,IAAI3hB,EAAQ,CAAEuI,KAAMoZ,EAAG/hB,KAAM,MACzB3E,KAAK4F,OAAS,EAAG5F,KAAKymB,KAAK9hB,KAAOI,EAAW/E,KAAKwmB,KAAOzhB,EAC7D/E,KAAKymB,KAAO1hB,IACV/E,KAAK4F,MACT,EAEA2gB,GAAW3lB,UAAUyc,QAAU,SAAUqJ,GACvC,IAAI3hB,EAAQ,CAAEuI,KAAMoZ,EAAG/hB,KAAM3E,KAAKwmB,MACd,IAAhBxmB,KAAK4F,SAAc5F,KAAKymB,KAAO1hB,GACnC/E,KAAKwmB,KAAOzhB,IACV/E,KAAK4F,MACT,EAEA2gB,GAAW3lB,UAAU+lB,MAAQ,WAC3B,GAAoB,IAAhB3mB,KAAK4F,OAAT,CACA,IAAI2N,EAAMvT,KAAKwmB,KAAKlZ,KAGpB,OAFoB,IAAhBtN,KAAK4F,OAAc5F,KAAKwmB,KAAOxmB,KAAKymB,KAAO,KAAUzmB,KAAKwmB,KAAOxmB,KAAKwmB,KAAK7hB,OAC7E3E,KAAK4F,OACA2N,CAJuB,CAKhC,EAEAgT,GAAW3lB,UAAUgmB,MAAQ,WAC3B5mB,KAAKwmB,KAAOxmB,KAAKymB,KAAO,KACxBzmB,KAAK4F,OAAS,CAChB,EAEA2gB,GAAW3lB,UAAU+I,KAAO,SAAUmB,GACpC,GAAoB,IAAhB9K,KAAK4F,OAAc,MAAO,GAG9B,IAFA,IAAIihB,EAAI7mB,KAAKwmB,KACTjT,EAAM,GAAKsT,EAAEvZ,KACVuZ,EAAIA,EAAEliB,MACX4O,GAAOzI,EAAI+b,EAAEvZ,KACd,OAAOiG,CACV,EAEAgT,GAAW3lB,UAAUyR,OAAS,SAAU5D,GACtC,GAAoB,IAAhBzO,KAAK4F,OAAc,OAAOkG,EAAO+F,MAAM,GAC3C,GAAoB,IAAhB7R,KAAK4F,OAAc,OAAO5F,KAAKwmB,KAAKlZ,KAIxC,IAHA,IAAIiG,EAAMzH,EAAOQ,YAAYmC,IAAM,GAC/BoY,EAAI7mB,KAAKwmB,KACT3gB,EAAI,EACDghB,GACLA,EAAEvZ,KAAKD,KAAKkG,EAAK1N,GACjBA,GAAKghB,EAAEvZ,KAAK1H,OACZihB,EAAIA,EAAEliB,KAER,OAAO4O,CACT,ECpCA,IAAIuT,GAAmBhb,EAAOkB,YACzB,SAASD,GACP,OAAQA,GAAYA,EAASiB,eAC3B,IAAK,MAAO,IAAK,OAAQ,IAAK,QAAS,IAAK,QAAS,IAAK,SAAU,IAAK,SAAU,IAAK,OAAQ,IAAK,QAAS,IAAK,UAAW,IAAK,WAAY,IAAK,MAAO,OAAO,EAClK,QAAS,OAAO,EAEnB,EAiBC,SAAS+Y,GAAcha,GAG5B,OAFA/M,KAAK+M,UAAYA,GAAY,QAAQiB,cAAc2J,QAAQ,OAAQ,IAfrE,SAAwB5K,GACtB,GAAIA,IAAa+Z,GAAiB/Z,GAChC,MAAM,IAAI/I,MAAM,qBAAuB+I,EAE3C,CAYEia,CAAeja,GACP/M,KAAK+M,UACX,IAAK,OAEH/M,KAAKinB,cAAgB,EACrB,MACF,IAAK,OACL,IAAK,UAEHjnB,KAAKinB,cAAgB,EACrBjnB,KAAKknB,qBAAuBC,GAC5B,MACF,IAAK,SAEHnnB,KAAKinB,cAAgB,EACrBjnB,KAAKknB,qBAAuBE,GAC5B,MACF,QAEE,YADApnB,KAAKmL,MAAQkc,IAMjBrnB,KAAKsnB,WAAa,IAAIxb,EAAO,GAE7B9L,KAAKunB,aAAe,EAEpBvnB,KAAKwnB,WAAa,CACpB,CAmIA,SAASH,GAAiBnd,GACxB,OAAOA,EAAOwB,SAAS1L,KAAK+M,SAC9B,CAEA,SAASoa,GAA0Bjd,GACjClK,KAAKunB,aAAerd,EAAOtE,OAAS,EACpC5F,KAAKwnB,WAAaxnB,KAAKunB,aAAe,EAAI,CAC5C,CAEA,SAASH,GAA2Bld,GAClClK,KAAKunB,aAAerd,EAAOtE,OAAS,EACpC5F,KAAKwnB,WAAaxnB,KAAKunB,aAAe,EAAI,CAC5C,CAnIAR,GAAcnmB,UAAUuK,MAAQ,SAASjB,GAGvC,IAFA,IAAIud,EAAU,GAEPznB,KAAKwnB,YAAY,CAEtB,IAAIE,EAAaxd,EAAOtE,QAAU5F,KAAKwnB,WAAaxnB,KAAKunB,aACrDvnB,KAAKwnB,WAAaxnB,KAAKunB,aACvBrd,EAAOtE,OAMX,GAHAsE,EAAOmD,KAAKrN,KAAKsnB,WAAYtnB,KAAKunB,aAAc,EAAGG,GACnD1nB,KAAKunB,cAAgBG,EAEjB1nB,KAAKunB,aAAevnB,KAAKwnB,WAE3B,MAAO,GAWT,GAPAtd,EAASA,EAAOjD,MAAMygB,EAAWxd,EAAOtE,WAMpC+hB,GAHJF,EAAUznB,KAAKsnB,WAAWrgB,MAAM,EAAGjH,KAAKwnB,YAAY9b,SAAS1L,KAAK+M,WAG3C5D,WAAWse,EAAQ7hB,OAAS,KACnC,OAAU+hB,GAAY,OAAtC,CAQA,GAHA3nB,KAAKunB,aAAevnB,KAAKwnB,WAAa,EAGhB,IAAlBtd,EAAOtE,OACT,OAAO6hB,EAET,KAPC,CAHCznB,KAAKwnB,YAAcxnB,KAAKinB,cACxBQ,EAAU,EAUb,CAGDznB,KAAKknB,qBAAqBhd,GAE1B,IAAIX,EAAMW,EAAOtE,OACb5F,KAAKwnB,aAEPtd,EAAOmD,KAAKrN,KAAKsnB,WAAY,EAAGpd,EAAOtE,OAAS5F,KAAKunB,aAAche,GACnEA,GAAOvJ,KAAKunB,cAKd,IACII,EADApe,GAFJke,GAAWvd,EAAOwB,SAAS1L,KAAK+M,SAAU,EAAGxD,IAE3B3D,OAAS,EAG3B,IAFI+hB,EAAWF,EAAQte,WAAWI,KAElB,OAAUoe,GAAY,MAAQ,CAC5C,IAAIla,EAAOzN,KAAKinB,cAKhB,OAJAjnB,KAAKwnB,YAAc/Z,EACnBzN,KAAKunB,cAAgB9Z,EACrBzN,KAAKsnB,WAAWja,KAAKrN,KAAKsnB,WAAY7Z,EAAM,EAAGA,GAC/CvD,EAAOmD,KAAKrN,KAAKsnB,WAAY,EAAG,EAAG7Z,GAC5Bga,EAAQG,UAAU,EAAGre,EAC7B,CAGD,OAAOke,CACT,EAMAV,GAAcnmB,UAAUsmB,qBAAuB,SAAShd,GAMtD,IAJA,IAAIrE,EAAKqE,EAAOtE,QAAU,EAAK,EAAIsE,EAAOtE,OAInCC,EAAI,EAAGA,IAAK,CACjB,IAAIuF,EAAIlB,EAAOA,EAAOtE,OAASC,GAK/B,GAAS,GAALA,GAAUuF,GAAK,GAAK,EAAM,CAC5BpL,KAAKwnB,WAAa,EAClB,KACD,CAGD,GAAI3hB,GAAK,GAAKuF,GAAK,GAAK,GAAM,CAC5BpL,KAAKwnB,WAAa,EAClB,KACD,CAGD,GAAI3hB,GAAK,GAAKuF,GAAK,GAAK,GAAM,CAC5BpL,KAAKwnB,WAAa,EAClB,KACD,CACF,CACDxnB,KAAKunB,aAAe1hB,CACtB,EAEAkhB,GAAcnmB,UAAU2I,IAAM,SAASW,GACrC,IAAI4G,EAAM,GAIV,GAHI5G,GAAUA,EAAOtE,SACnBkL,EAAM9Q,KAAKmL,MAAMjB,IAEflK,KAAKunB,aAAc,CACrB,IAAIM,EAAK7nB,KAAKunB,aACVpY,EAAMnP,KAAKsnB,WACXQ,EAAM9nB,KAAK+M,SACf+D,GAAO3B,EAAIlI,MAAM,EAAG4gB,GAAInc,SAASoc,EAClC,CAED,OAAOhX,CACT,EC1MAiX,GAASC,cAAgBA,GAQzB,IAAIC,GAAQrH,GAAS,UAwBrB,SAASoH,GAAcE,EAASC,GAE9BD,EAAUA,GAAW,GAIrBloB,KAAKooB,aAAeF,EAAQE,WAExBD,aAAkBE,KAAQroB,KAAKooB,WAAapoB,KAAKooB,cAAgBF,EAAQI,oBAI7E,IAAIC,EAAML,EAAQM,cACdC,EAAazoB,KAAKooB,WAAa,GAAK,MACxCpoB,KAAKwoB,cAAgBD,GAAe,IAARA,EAAYA,EAAME,EAG9CzoB,KAAKwoB,gBAAmBxoB,KAAKwoB,cAK7BxoB,KAAKkK,OAAS,IAAIqc,GAClBvmB,KAAK4F,OAAS,EACd5F,KAAK0oB,MAAQ,KACb1oB,KAAK2oB,WAAa,EAClB3oB,KAAK4oB,QAAU,KACf5oB,KAAK6oB,OAAQ,EACb7oB,KAAK8oB,YAAa,EAClB9oB,KAAK+oB,SAAU,EAMf/oB,KAAKgpB,MAAO,EAIZhpB,KAAKipB,cAAe,EACpBjpB,KAAKkpB,iBAAkB,EACvBlpB,KAAKmpB,mBAAoB,EACzBnpB,KAAKopB,iBAAkB,EAKvBppB,KAAKqpB,gBAAkBnB,EAAQmB,iBAAmB,OAIlDrpB,KAAKspB,QAAS,EAGdtpB,KAAKupB,WAAa,EAGlBvpB,KAAKwpB,aAAc,EAEnBxpB,KAAKypB,QAAU,KACfzpB,KAAK+M,SAAW,KACZmb,EAAQnb,WACV/M,KAAKypB,QAAU,IAAI1C,GAAcmB,EAAQnb,UACzC/M,KAAK+M,SAAWmb,EAAQnb,SAE3B,CAEM,SAASgb,GAASG,GAEvB,KAAMloB,gBAAgB+nB,IAAW,OAAO,IAAIA,GAASG,GAErDloB,KAAK0pB,eAAiB,IAAI1B,GAAcE,EAASloB,MAGjDA,KAAK2pB,UAAW,EAEZzB,GAAmC,mBAAjBA,EAAQje,OAAqBjK,KAAK4pB,MAAQ1B,EAAQje,MAExE4R,GAAarZ,KAAKxC,KACnB,CA8BD,SAAS6pB,GAAiB1B,EAAQpkB,EAAO+lB,EAAO/c,EAAUgd,GACxD,IAAIzL,EA6MN,SAAsBva,EAAO+lB,GAC3B,IAAIxL,EAAK,KACJ8F,GAAgB0F,IAA2B,iBAAVA,GAAlC,MAAwDA,GAA0C/lB,EAAMqkB,aAC1G9J,EAAK,IAAI7Z,UAAU,oCAErB,OAAO6Z,CACR,CAnNU0L,CAAajmB,EAAO+lB,GAC7B,GAAIxL,EACF6J,EAAOtO,KAAK,QAASyE,QAChB,GAAc,OAAVwL,EACT/lB,EAAMglB,SAAU,EAiNpB,SAAoBZ,EAAQpkB,GAC1B,GAAIA,EAAM8kB,MAAO,OACjB,GAAI9kB,EAAM0lB,QAAS,CACjB,IAAIK,EAAQ/lB,EAAM0lB,QAAQlgB,MACtBugB,GAASA,EAAMlkB,SACjB7B,EAAMmG,OAAO7E,KAAKykB,GAClB/lB,EAAM6B,QAAU7B,EAAMqkB,WAAa,EAAI0B,EAAMlkB,OAEhD,CACD7B,EAAM8kB,OAAQ,EAGdoB,GAAa9B,EACd,CA7NG+B,CAAW/B,EAAQpkB,QACd,GAAIA,EAAMqkB,YAAc0B,GAASA,EAAMlkB,OAAS,EACrD,GAAI7B,EAAM8kB,QAAUkB,EAAY,CAC9B,IAAIxf,EAAI,IAAIvG,MAAM,2BAClBmkB,EAAOtO,KAAK,QAAStP,EACtB,MAAM,GAAIxG,EAAM+kB,YAAciB,EAAY,CACzC,IAAII,EAAK,IAAInmB,MAAM,oCACnBmkB,EAAOtO,KAAK,QAASsQ,OAChB,CACL,IAAIC,GACArmB,EAAM0lB,SAAYM,GAAehd,IACnC+c,EAAQ/lB,EAAM0lB,QAAQte,MAAM2e,GAC5BM,GAAWrmB,EAAMqkB,YAA+B,IAAjB0B,EAAMlkB,QAGlCmkB,IAAYhmB,EAAMglB,SAAU,GAI5BqB,IAECrmB,EAAM6kB,SAA4B,IAAjB7kB,EAAM6B,SAAiB7B,EAAMilB,MAChDb,EAAOtO,KAAK,OAAQiQ,GACpB3B,EAAOle,KAAK,KAGZlG,EAAM6B,QAAU7B,EAAMqkB,WAAa,EAAI0B,EAAMlkB,OACzCmkB,EAAYhmB,EAAMmG,OAAOmT,QAAQyM,GAAY/lB,EAAMmG,OAAO7E,KAAKykB,GAE/D/lB,EAAMklB,cAAcgB,GAAa9B,KA2N/C,SAAuBA,EAAQpkB,GACxBA,EAAMylB,cACTzlB,EAAMylB,aAAc,EACpBpQ,GAASiR,GAAgBlC,EAAQpkB,GAEpC,CA5NKumB,CAAcnC,EAAQpkB,EACvB,MACSgmB,IACVhmB,EAAMglB,SAAU,GAGlB,OAUF,SAAsBhlB,GACpB,OAAQA,EAAM8kB,QAAU9kB,EAAMklB,cAAgBllB,EAAM6B,OAAS7B,EAAMykB,eAAkC,IAAjBzkB,EAAM6B,OAC3F,CAZQ2kB,CAAaxmB,EACrB,CAlLDuiB,GAASyB,GAAUlM,IA4GnBkM,GAASnnB,UAAUyE,KAAO,SAAUykB,EAAO/c,GACzC,IAAIhJ,EAAQ/D,KAAK0pB,eAUjB,OARK3lB,EAAMqkB,YAA+B,iBAAV0B,IAC9B/c,EAAWA,GAAYhJ,EAAMslB,mBACZtlB,EAAMgJ,WACrB+c,EAAQhe,EAAOS,KAAKud,EAAO/c,GAC3BA,EAAW,IAIR8c,GAAiB7pB,KAAM+D,EAAO+lB,EAAO/c,GAAU,IAIxDgb,GAASnnB,UAAUyc,QAAU,SAAUyM,GAErC,OAAOD,GAAiB7pB,KADZA,KAAK0pB,eACoBI,EAAO,IAAI,IAGlD/B,GAASnnB,UAAU4pB,SAAW,WAC5B,OAAuC,IAAhCxqB,KAAK0pB,eAAed,SA+D7Bb,GAASnnB,UAAU6pB,YAAc,SAAU3C,GAGzC,OAFA9nB,KAAK0pB,eAAeD,QAAU,IAAI1C,GAAce,GAChD9nB,KAAK0pB,eAAe3c,SAAW+a,EACxB9nB,MAIT,IAAI0qB,GAAU,QAoBd,SAASC,GAAclc,EAAG1K,GACxB,OAAI0K,GAAK,GAAsB,IAAjB1K,EAAM6B,QAAgB7B,EAAM8kB,MAAc,EACpD9kB,EAAMqkB,WAAmB,EACzB3Z,GAAMA,EAEJ1K,EAAM6kB,SAAW7kB,EAAM6B,OAAe7B,EAAMmG,OAAOsc,KAAKlZ,KAAK1H,OAAmB7B,EAAM6B,QAGxF6I,EAAI1K,EAAMykB,gBAAezkB,EAAMykB,cA3BrC,SAAiC/Z,GAc/B,OAbIA,GAAKic,GACPjc,EAAIic,IAIJjc,IACAA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,GACXA,KAEKA,CACR,CAYoDmc,CAAwBnc,IACvEA,GAAK1K,EAAM6B,OAAe6I,EAEzB1K,EAAM8kB,MAIJ9kB,EAAM6B,QAHX7B,EAAMklB,cAAe,EACd,GAGV,CAiID,SAASgB,GAAa9B,GACpB,IAAIpkB,EAAQokB,EAAOuB,eACnB3lB,EAAMklB,cAAe,EAChBllB,EAAMmlB,kBACTjB,GAAM,eAAgBlkB,EAAM6kB,SAC5B7kB,EAAMmlB,iBAAkB,EACpBnlB,EAAMilB,KAAM5P,GAASyR,GAAe1C,GAAa0C,GAAc1C,GAEtE,CAED,SAAS0C,GAAc1C,GACrBF,GAAM,iBACNE,EAAOtO,KAAK,YACZiR,GAAK3C,EACN,CAeD,SAASkC,GAAelC,EAAQpkB,GAE9B,IADA,IAAImF,EAAMnF,EAAM6B,QACR7B,EAAMglB,UAAYhlB,EAAM6kB,UAAY7kB,EAAM8kB,OAAS9kB,EAAM6B,OAAS7B,EAAMykB,gBAC9EP,GAAM,wBACNE,EAAOle,KAAK,GACRf,IAAQnF,EAAM6B,SAELsD,EAAMnF,EAAM6B,OAE3B7B,EAAMylB,aAAc,CACrB,CAoOD,SAASuB,GAAiBhrB,GACxBkoB,GAAM,4BACNloB,EAAKkK,KAAK,EACX,CAqBD,SAAS+gB,GAAQ7C,EAAQpkB,GAClBA,EAAMglB,UACTd,GAAM,iBACNE,EAAOle,KAAK,IAGdlG,EAAMqlB,iBAAkB,EACxBrlB,EAAMwlB,WAAa,EACnBpB,EAAOtO,KAAK,UACZiR,GAAK3C,GACDpkB,EAAM6kB,UAAY7kB,EAAMglB,SAASZ,EAAOle,KAAK,EAClD,CAYD,SAAS6gB,GAAK3C,GACZ,IAAIpkB,EAAQokB,EAAOuB,eAEnB,IADAzB,GAAM,OAAQlkB,EAAM6kB,SACb7kB,EAAM6kB,SAA6B,OAAlBT,EAAOle,SAChC,CAwED,SAASghB,GAASxc,EAAG1K,GAEnB,OAAqB,IAAjBA,EAAM6B,OAAqB,MAG3B7B,EAAMqkB,WAAY7U,EAAMxP,EAAMmG,OAAOyc,SAAkBlY,GAAKA,GAAK1K,EAAM6B,QAEtD2N,EAAfxP,EAAM0lB,QAAe1lB,EAAMmG,OAAOP,KAAK,IAAqC,IAAxB5F,EAAMmG,OAAOtE,OAAoB7B,EAAMmG,OAAOsc,KAAKlZ,KAAgBvJ,EAAMmG,OAAOmI,OAAOtO,EAAM6B,QACrJ7B,EAAMmG,OAAO0c,SAGbrT,EASJ,SAAyB9E,EAAG6D,EAAM4Y,GAChC,IAAI3X,EACA9E,EAAI6D,EAAKkU,KAAKlZ,KAAK1H,QAErB2N,EAAMjB,EAAKkU,KAAKlZ,KAAKrG,MAAM,EAAGwH,GAC9B6D,EAAKkU,KAAKlZ,KAAOgF,EAAKkU,KAAKlZ,KAAKrG,MAAMwH,IAGtC8E,EAFS9E,IAAM6D,EAAKkU,KAAKlZ,KAAK1H,OAExB0M,EAAKqU,QAGLuE,EASV,SAA8Bzc,EAAG6D,GAC/B,IAAIuU,EAAIvU,EAAKkU,KACTpb,EAAI,EACJmI,EAAMsT,EAAEvZ,KACZmB,GAAK8E,EAAI3N,OACT,KAAOihB,EAAIA,EAAEliB,MAAM,CACjB,IAAIuL,EAAM2W,EAAEvZ,KACR6d,EAAK1c,EAAIyB,EAAItK,OAASsK,EAAItK,OAAS6I,EAGvC,GAFI0c,IAAOjb,EAAItK,OAAQ2N,GAAOrD,EAASqD,GAAOrD,EAAIjJ,MAAM,EAAGwH,GAEjD,KADVA,GAAK0c,GACQ,CACPA,IAAOjb,EAAItK,UACXwF,EACEyb,EAAEliB,KAAM2N,EAAKkU,KAAOK,EAAEliB,KAAU2N,EAAKkU,KAAOlU,EAAKmU,KAAO,OAE5DnU,EAAKkU,KAAOK,EACZA,EAAEvZ,KAAO4C,EAAIjJ,MAAMkkB,IAErB,KACD,GACC/f,CACH,CAED,OADAkH,EAAK1M,QAAUwF,EACRmI,CACR,CAjCsB6X,CAAqB3c,EAAG6D,GAsC/C,SAAwB7D,EAAG6D,GACzB,IAAIiB,EAAMzH,EAAOQ,YAAYmC,GACzBoY,EAAIvU,EAAKkU,KACTpb,EAAI,EACRyb,EAAEvZ,KAAKD,KAAKkG,GACZ9E,GAAKoY,EAAEvZ,KAAK1H,OACZ,KAAOihB,EAAIA,EAAEliB,MAAM,CACjB,IAAIwK,EAAM0X,EAAEvZ,KACR6d,EAAK1c,EAAIU,EAAIvJ,OAASuJ,EAAIvJ,OAAS6I,EAGvC,GAFAU,EAAI9B,KAAKkG,EAAKA,EAAI3N,OAAS6I,EAAG,EAAG0c,GAEvB,KADV1c,GAAK0c,GACQ,CACPA,IAAOhc,EAAIvJ,UACXwF,EACEyb,EAAEliB,KAAM2N,EAAKkU,KAAOK,EAAEliB,KAAU2N,EAAKkU,KAAOlU,EAAKmU,KAAO,OAE5DnU,EAAKkU,KAAOK,EACZA,EAAEvZ,KAAO6B,EAAIlI,MAAMkkB,IAErB,KACD,GACC/f,CACH,CAED,OADAkH,EAAK1M,QAAUwF,EACRmI,CACR,CA/DsD8X,CAAe5c,EAAG6D,GAEvE,OAAOiB,CACR,CAvBS+X,CAAgB7c,EAAG1K,EAAMmG,OAAQnG,EAAM0lB,SAGxClW,GAVP,IAAIA,CAWL,CAiFD,SAASgY,GAAYpD,GACnB,IAAIpkB,EAAQokB,EAAOuB,eAInB,GAAI3lB,EAAM6B,OAAS,EAAG,MAAM,IAAI5B,MAAM,8CAEjCD,EAAM+kB,aACT/kB,EAAM8kB,OAAQ,EACdzP,GAASoS,GAAeznB,EAAOokB,GAElC,CAED,SAASqD,GAAcznB,EAAOokB,GAEvBpkB,EAAM+kB,YAA+B,IAAjB/kB,EAAM6B,SAC7B7B,EAAM+kB,YAAa,EACnBX,EAAOwB,UAAW,EAClBxB,EAAOtO,KAAK,OAEf,CAQD,SAAShL,GAAQ4c,EAAItZ,GACnB,IAAK,IAAItM,EAAI,EAAGyR,EAAImU,EAAG7lB,OAAQC,EAAIyR,EAAGzR,IACpC,GAAI4lB,EAAG5lB,KAAOsM,EAAG,OAAOtM,EAE1B,OAAQ,CACT,CCl3BD,SAAS6lB,KAAQ,CAEjB,SAASC,GAAS7B,EAAO/c,EAAU6e,GACjC5rB,KAAK8pB,MAAQA,EACb9pB,KAAK+M,SAAWA,EAChB/M,KAAK6rB,SAAWD,EAChB5rB,KAAK2E,KAAO,IACd,CAEA,SAASmnB,GAAc5D,EAASC,GAC9BvpB,OAAOC,eAAemB,KAAM,SAAU,CACpC0jB,IAAKvD,IAAU,WACb,OAAOngB,KAAK+rB,WAClB,GAAO,gFAEL7D,EAAUA,GAAW,GAIrBloB,KAAKooB,aAAeF,EAAQE,WAExBD,aAAkBE,KAAQroB,KAAKooB,WAAapoB,KAAKooB,cAAgBF,EAAQ8D,oBAK7E,IAAIzD,EAAML,EAAQM,cACdC,EAAazoB,KAAKooB,WAAa,GAAK,MACxCpoB,KAAKwoB,cAAgBD,GAAe,IAARA,EAAYA,EAAME,EAG9CzoB,KAAKwoB,gBAAmBxoB,KAAKwoB,cAE7BxoB,KAAKisB,WAAY,EAEjBjsB,KAAKksB,QAAS,EAEdlsB,KAAK6oB,OAAQ,EAEb7oB,KAAKmsB,UAAW,EAKhB,IAAIC,GAAqC,IAA1BlE,EAAQmE,cACvBrsB,KAAKqsB,eAAiBD,EAKtBpsB,KAAKqpB,gBAAkBnB,EAAQmB,iBAAmB,OAKlDrpB,KAAK4F,OAAS,EAGd5F,KAAKssB,SAAU,EAGftsB,KAAKusB,OAAS,EAMdvsB,KAAKgpB,MAAO,EAKZhpB,KAAKwsB,kBAAmB,EAGxBxsB,KAAKysB,QAAU,SAAUnO,IA8M3B,SAAiB6J,EAAQ7J,GACvB,IAAIva,EAAQokB,EAAOuE,eACf1D,EAAOjlB,EAAMilB,KACb4C,EAAK7nB,EAAM4oB,QAIf,GAdF,SAA4B5oB,GAC1BA,EAAMuoB,SAAU,EAChBvoB,EAAM4oB,QAAU,KAChB5oB,EAAM6B,QAAU7B,EAAM6oB,SACtB7oB,EAAM6oB,SAAW,CACnB,CAOEC,CAAmB9oB,GAEfua,GAtBN,SAAsB6J,EAAQpkB,EAAOilB,EAAM1K,EAAIsN,KAC3C7nB,EAAM+oB,UACJ9D,EAAM5P,GAASwS,EAAItN,GAASsN,EAAGtN,GAEnC6J,EAAOuE,eAAeK,cAAe,EACrC5E,EAAOtO,KAAK,QAASyE,EACvB,CAgBU0O,CAAa7E,EAAQpkB,EAAOilB,EAAM1K,EAAIsN,OAAS,CAErD,IAAIO,EAAWc,GAAWlpB,GAErBooB,GAAapoB,EAAMwoB,QAAWxoB,EAAMyoB,mBAAoBzoB,EAAMmpB,iBACjEC,GAAYhF,EAAQpkB,GAGlBilB,EAEA5P,GAASgU,GAAYjF,EAAQpkB,EAAOooB,EAAUP,GAG9CwB,GAAWjF,EAAQpkB,EAAOooB,EAAUP,EAEzC,CACH,CApOIa,CAAQtE,EAAQ7J,EACpB,EAGEte,KAAK2sB,QAAU,KAGf3sB,KAAK4sB,SAAW,EAEhB5sB,KAAKktB,gBAAkB,KACvBltB,KAAKqtB,oBAAsB,KAI3BrtB,KAAK8sB,UAAY,EAIjB9sB,KAAKstB,aAAc,EAGnBttB,KAAK+sB,cAAe,EAGpB/sB,KAAKutB,qBAAuB,EAI5BvtB,KAAKwtB,mBAAqB,IAAIC,GAAcztB,KAC9C,CAaO,SAAS0tB,GAASxF,GAIvB,KAAMloB,gBAAgB0tB,IAAe1tB,gBAAgBqoB,IAAS,OAAO,IAAIqF,GAASxF,GAElFloB,KAAK0sB,eAAiB,IAAIZ,GAAc5D,EAASloB,MAGjDA,KAAKhB,UAAW,EAEZkpB,IAC2B,mBAAlBA,EAAQ/c,QAAsBnL,KAAK2tB,OAASzF,EAAQ/c,OAEjC,mBAAnB+c,EAAQ0F,SAAuB5tB,KAAK6tB,QAAU3F,EAAQ0F,SAGnE/R,GAAarZ,KAAKxC,KACpB,CAyHA,SAAS8tB,GAAQ3F,EAAQpkB,EAAO6pB,EAAQ1kB,EAAK4gB,EAAO/c,EAAU6e,GAC5D7nB,EAAM6oB,SAAW1jB,EACjBnF,EAAM4oB,QAAUf,EAChB7nB,EAAMuoB,SAAU,EAChBvoB,EAAMilB,MAAO,EACT4E,EAAQzF,EAAO0F,QAAQ/D,EAAO/lB,EAAM0oB,SAActE,EAAOwF,OAAO7D,EAAO/c,EAAUhJ,EAAM0oB,SAC3F1oB,EAAMilB,MAAO,CACf,CA0CA,SAASoE,GAAWjF,EAAQpkB,EAAOooB,EAAUP,GACtCO,GASP,SAAsBhE,EAAQpkB,GACP,IAAjBA,EAAM6B,QAAgB7B,EAAMkoB,YAC9BloB,EAAMkoB,WAAY,EAClB9D,EAAOtO,KAAK,SAEhB,CAdiBkU,CAAa5F,EAAQpkB,GACpCA,EAAM+oB,YACNlB,IACAoC,GAAY7F,EAAQpkB,EACtB,CAaA,SAASopB,GAAYhF,EAAQpkB,GAC3BA,EAAMyoB,kBAAmB,EACzB,IAAIznB,EAAQhB,EAAMmpB,gBAElB,GAAI/E,EAAO0F,SAAW9oB,GAASA,EAAMJ,KAAM,CAEzC,IAAI2S,EAAIvT,EAAMwpB,qBACVrjB,EAAS,IAAIpB,MAAMwO,GACnB2W,EAASlqB,EAAMypB,mBACnBS,EAAOlpB,MAAQA,EAGf,IADA,IAAI0Y,EAAQ,EACL1Y,GACLmF,EAAOuT,GAAS1Y,EAChBA,EAAQA,EAAMJ,KACd8Y,GAAS,EAGXqQ,GAAQ3F,EAAQpkB,GAAO,EAAMA,EAAM6B,OAAQsE,EAAQ,GAAI+jB,EAAOpmB,QAI9D9D,EAAM+oB,YACN/oB,EAAMspB,oBAAsB,KACxBY,EAAOtpB,MACTZ,EAAMypB,mBAAqBS,EAAOtpB,KAClCspB,EAAOtpB,KAAO,MAEdZ,EAAMypB,mBAAqB,IAAIC,GAAc1pB,EAEnD,KAAS,CAEL,KAAOgB,GAAO,CACZ,IAAI+kB,EAAQ/kB,EAAM+kB,MACd/c,EAAWhI,EAAMgI,SACjB6e,EAAK7mB,EAAM8mB,SASf,GANAiC,GAAQ3F,EAAQpkB,GAAO,EAFbA,EAAMqkB,WAAa,EAAI0B,EAAMlkB,OAEJkkB,EAAO/c,EAAU6e,GACpD7mB,EAAQA,EAAMJ,KAKVZ,EAAMuoB,QACR,KAEH,CAEa,OAAVvnB,IAAgBhB,EAAMspB,oBAAsB,KACjD,CAEDtpB,EAAMwpB,qBAAuB,EAC7BxpB,EAAMmpB,gBAAkBnoB,EACxBhB,EAAMyoB,kBAAmB,CAC3B,CAgCA,SAASS,GAAWlpB,GAClB,OAAOA,EAAMmoB,QAA2B,IAAjBnoB,EAAM6B,QAA0C,OAA1B7B,EAAMmpB,kBAA6BnpB,EAAMooB,WAAapoB,EAAMuoB,OAC3G,CAEA,SAAS4B,GAAU/F,EAAQpkB,GACpBA,EAAMupB,cACTvpB,EAAMupB,aAAc,EACpBnF,EAAOtO,KAAK,aAEhB,CAEA,SAASmU,GAAY7F,EAAQpkB,GAC3B,IAAIoqB,EAAOlB,GAAWlpB,GAUtB,OATIoqB,IACsB,IAApBpqB,EAAM+oB,WACRoB,GAAU/F,EAAQpkB,GAClBA,EAAMooB,UAAW,EACjBhE,EAAOtO,KAAK,WAEZqU,GAAU/F,EAAQpkB,IAGfoqB,CACT,CAcA,SAASV,GAAc1pB,GACrB,IAAIqqB,EAAQpuB,KAEZA,KAAK2E,KAAO,KACZ3E,KAAK+E,MAAQ,KAEb/E,KAAK6H,OAAS,SAAUzH,GACtB,IAAI2E,EAAQqpB,EAAMrpB,MAElB,IADAqpB,EAAMrpB,MAAQ,KACPA,GAAO,CACZ,IAAI6mB,EAAK7mB,EAAM8mB,SACf9nB,EAAM+oB,YACNlB,EAAGxrB,GACH2E,EAAQA,EAAMJ,IACf,CACGZ,EAAMypB,mBACRzpB,EAAMypB,mBAAmB7oB,KAAOypB,EAEhCrqB,EAAMypB,mBAAqBY,CAEjC,CACA,CDxOArG,GAASnnB,UAAUqJ,KAAO,SAAUwE,GAClCwZ,GAAM,OAAQxZ,GACdA,EAAIoB,SAASpB,EAAG,IAChB,IAAI1K,EAAQ/D,KAAK0pB,eACb2E,EAAQ5f,EAOZ,GALU,IAANA,IAAS1K,EAAMmlB,iBAAkB,GAK3B,IAANza,GAAW1K,EAAMklB,eAAiBllB,EAAM6B,QAAU7B,EAAMykB,eAAiBzkB,EAAM8kB,OAGjF,OAFAZ,GAAM,qBAAsBlkB,EAAM6B,OAAQ7B,EAAM8kB,OAC3B,IAAjB9kB,EAAM6B,QAAgB7B,EAAM8kB,MAAO0C,GAAYvrB,MAAWiqB,GAAajqB,MACpE,KAMT,GAAU,KAHVyO,EAAIkc,GAAclc,EAAG1K,KAGNA,EAAM8kB,MAEnB,OADqB,IAAjB9kB,EAAM6B,QAAc2lB,GAAYvrB,MAC7B,KA0BT,IA4BIuT,EA5BA+a,EAASvqB,EAAMklB,aAiDnB,OAhDAhB,GAAM,gBAAiBqG,IAGF,IAAjBvqB,EAAM6B,QAAgB7B,EAAM6B,OAAS6I,EAAI1K,EAAMykB,gBAEjDP,GAAM,6BADNqG,GAAS,GAMPvqB,EAAM8kB,OAAS9kB,EAAMglB,QAEvBd,GAAM,mBADNqG,GAAS,GAEAA,IACTrG,GAAM,WACNlkB,EAAMglB,SAAU,EAChBhlB,EAAMilB,MAAO,EAEQ,IAAjBjlB,EAAM6B,SAAc7B,EAAMklB,cAAe,GAE7CjpB,KAAK4pB,MAAM7lB,EAAMykB,eACjBzkB,EAAMilB,MAAO,EAGRjlB,EAAMglB,UAASta,EAAIkc,GAAc0D,EAAOtqB,KAMnC,QAFDwP,EAAP9E,EAAI,EAASwc,GAASxc,EAAG1K,GAAkB,OAG7CA,EAAMklB,cAAe,EACrBxa,EAAI,GAEJ1K,EAAM6B,QAAU6I,EAGG,IAAjB1K,EAAM6B,SAGH7B,EAAM8kB,QAAO9kB,EAAMklB,cAAe,GAGnCoF,IAAU5f,GAAK1K,EAAM8kB,OAAO0C,GAAYvrB,OAGlC,OAARuT,GAAcvT,KAAK6Z,KAAK,OAAQtG,GAE7BA,GA0ETwU,GAASnnB,UAAUgpB,MAAQ,SAAUnb,GACnCzO,KAAK6Z,KAAK,QAAS,IAAI7V,MAAM,qBAG/B+jB,GAASnnB,UAAU2tB,KAAO,SAAUC,EAAMC,GACxC,IAAI3W,EAAM9X,KACN+D,EAAQ/D,KAAK0pB,eAEjB,OAAQ3lB,EAAM4kB,YACZ,KAAK,EACH5kB,EAAM2kB,MAAQ8F,EACd,MACF,KAAK,EACHzqB,EAAM2kB,MAAQ,CAAC3kB,EAAM2kB,MAAO8F,GAC5B,MACF,QACEzqB,EAAM2kB,MAAMrjB,KAAKmpB,GAGrBzqB,EAAM4kB,YAAc,EACpBV,GAAM,wBAAyBlkB,EAAM4kB,WAAY8F,GAEjD,IAEIC,GAFUD,IAA6B,IAAjBA,EAASllB,IAEfolB,EAAQC,EAI5B,SAASC,EAASlF,GAChB1B,GAAM,YACF0B,IAAa7R,GACf8W,GAEH,CAED,SAASD,IACP1G,GAAM,SACNuG,EAAKjlB,KACN,CAbGxF,EAAM+kB,WAAY1P,GAASsV,GAAY5W,EAAI2B,KAAK,MAAOiV,GAE3DF,EAAKjV,GAAG,SAAUsV,GAiBlB,IAAIC,EA4FN,SAAqBhX,GACnB,OAAO,WACL,IAAI/T,EAAQ+T,EAAI4R,eAChBzB,GAAM,cAAelkB,EAAMwlB,YACvBxlB,EAAMwlB,YAAYxlB,EAAMwlB,aACH,IAArBxlB,EAAMwlB,YAAoBzR,EAAIsE,UAAU,QAAQxW,SAClD7B,EAAM6kB,SAAU,EAChBkC,GAAKhT,IAGV,CAtGeiX,CAAYjX,GAC1B0W,EAAKjV,GAAG,QAASuV,GAEjB,IAAIE,GAAY,EAChB,SAASJ,IACP3G,GAAM,WAENuG,EAAK7U,eAAe,QAASsV,GAC7BT,EAAK7U,eAAe,SAAUuV,GAC9BV,EAAK7U,eAAe,QAASmV,GAC7BN,EAAK7U,eAAe,QAASwV,GAC7BX,EAAK7U,eAAe,SAAUkV,GAC9B/W,EAAI6B,eAAe,MAAOgV,GAC1B7W,EAAI6B,eAAe,MAAOiV,GAC1B9W,EAAI6B,eAAe,OAAQyV,GAE3BJ,GAAY,GAORjrB,EAAMwlB,YAAgBiF,EAAK9B,iBAAkB8B,EAAK9B,eAAeT,WAAY6C,GAClF,CAMD,IAAIO,GAAsB,EAE1B,SAASD,EAAOtF,GACd7B,GAAM,UACNoH,GAAsB,GAElB,IADMb,EAAKrjB,MAAM2e,IACCuF,KAKM,IAArBtrB,EAAM4kB,YAAoB5kB,EAAM2kB,QAAU8F,GAAQzqB,EAAM4kB,WAAa,IAAqC,IAAhC9Z,GAAQ9K,EAAM2kB,MAAO8F,MAAkBQ,IACpH/G,GAAM,8BAA+BnQ,EAAI4R,eAAeH,YACxDzR,EAAI4R,eAAeH,aACnB8F,GAAsB,GAExBvX,EAAIwX,QAEP,CAID,SAASH,EAAQ7Q,GArenB,IAAiC/b,EAse7B0lB,GAAM,UAAW3J,GACjBiR,IACAf,EAAK7U,eAAe,QAASwV,GACQ,KAzeR5sB,EAyeL,QAANisB,EAxeLpS,UAAU7Z,GAAMqD,SAweW4oB,EAAK3U,KAAK,QAASyE,EAC5D,CAMD,SAAS2Q,IACPT,EAAK7U,eAAe,SAAUuV,GAC9BK,GACD,CAED,SAASL,IACPjH,GAAM,YACNuG,EAAK7U,eAAe,QAASsV,GAC7BM,GACD,CAGD,SAASA,IACPtH,GAAM,UACNnQ,EAAIyX,OAAOf,EACZ,CAWD,OA1DA1W,EAAIyB,GAAG,OAAQ6V,GAlejB,SAAyB5R,EAASgS,EAAO1vB,GAGvC,GAAuC,mBAA5B0d,EAAQkB,gBACjB,OAAOlB,EAAQkB,gBAAgB8Q,EAAO1vB,GAMjC0d,EAAQN,SAAYM,EAAQN,QAAQsS,GAEhC1mB,MAAM8C,QAAQ4R,EAAQN,QAAQsS,IACrChS,EAAQN,QAAQsS,GAAOnS,QAAQvd,GAE/B0d,EAAQN,QAAQsS,GAAS,CAAC1vB,EAAI0d,EAAQN,QAAQsS,IAJ9ChS,EAAQjE,GAAGiW,EAAO1vB,EAMvB,CA8eC4e,CAAgB8P,EAAM,QAASW,GAO/BX,EAAK/U,KAAK,QAASwV,GAMnBT,EAAK/U,KAAK,SAAUyV,GAQpBV,EAAK3U,KAAK,OAAQ/B,GAGb/T,EAAM6kB,UACTX,GAAM,eACNnQ,EAAI2X,UAGCjB,GAeTzG,GAASnnB,UAAU2uB,OAAS,SAAUf,GACpC,IAAIzqB,EAAQ/D,KAAK0pB,eAGjB,GAAyB,IAArB3lB,EAAM4kB,WAAkB,OAAO3oB,KAGnC,GAAyB,IAArB+D,EAAM4kB,WAER,OAAI6F,GAAQA,IAASzqB,EAAM2kB,QAEtB8F,IAAMA,EAAOzqB,EAAM2kB,OAGxB3kB,EAAM2kB,MAAQ,KACd3kB,EAAM4kB,WAAa,EACnB5kB,EAAM6kB,SAAU,EACZ4F,GAAMA,EAAK3U,KAAK,SAAU7Z,OARWA,KAc3C,IAAKwuB,EAAM,CAET,IAAIkB,EAAQ3rB,EAAM2kB,MACdxf,EAAMnF,EAAM4kB,WAChB5kB,EAAM2kB,MAAQ,KACd3kB,EAAM4kB,WAAa,EACnB5kB,EAAM6kB,SAAU,EAEhB,IAAK,IAAI+G,EAAK,EAAGA,EAAKzmB,EAAKymB,IACzBD,EAAMC,GAAI9V,KAAK,SAAU7Z,MAC1B,OAAOA,IACT,CAGD,IAAI6F,EAAIgJ,GAAQ9K,EAAM2kB,MAAO8F,GAC7B,OAAW,IAAP3oB,IAEJ9B,EAAM2kB,MAAMkH,OAAO/pB,EAAG,GACtB9B,EAAM4kB,YAAc,EACK,IAArB5kB,EAAM4kB,aAAkB5kB,EAAM2kB,MAAQ3kB,EAAM2kB,MAAM,IAEtD8F,EAAK3U,KAAK,SAAU7Z,OANCA,MAavB+nB,GAASnnB,UAAU2Y,GAAK,SAAUsW,EAAI/vB,GACpC,IAAIgR,EAAM+K,GAAajb,UAAU2Y,GAAG/W,KAAKxC,KAAM6vB,EAAI/vB,GAEnD,GAAW,SAAP+vB,GAEkC,IAAhC7vB,KAAK0pB,eAAed,SAAmB5oB,KAAKyvB,cAC3C,GAAW,aAAPI,EAAmB,CAC5B,IAAI9rB,EAAQ/D,KAAK0pB,eACZ3lB,EAAM+kB,YAAe/kB,EAAMolB,oBAC9BplB,EAAMolB,kBAAoBplB,EAAMklB,cAAe,EAC/CllB,EAAMmlB,iBAAkB,EACnBnlB,EAAMglB,QAEAhlB,EAAM6B,QACfqkB,GAAajqB,MAFboZ,GAAS2R,GAAkB/qB,MAKhC,CAED,OAAO8Q,GAETiX,GAASnnB,UAAU4Y,YAAcuO,GAASnnB,UAAU2Y,GASpDwO,GAASnnB,UAAU6uB,OAAS,WAC1B,IAAI1rB,EAAQ/D,KAAK0pB,eAMjB,OALK3lB,EAAM6kB,UACTX,GAAM,UACNlkB,EAAM6kB,SAAU,EAMpB,SAAgBT,EAAQpkB,GACjBA,EAAMqlB,kBACTrlB,EAAMqlB,iBAAkB,EACxBhQ,GAAS4R,GAAS7C,EAAQpkB,GAE7B,CAVG0rB,CAAOzvB,KAAM+D,IAER/D,MAuBT+nB,GAASnnB,UAAU0uB,MAAQ,WAOzB,OANArH,GAAM,wBAAyBjoB,KAAK0pB,eAAed,UAC/C,IAAU5oB,KAAK0pB,eAAed,UAChCX,GAAM,SACNjoB,KAAK0pB,eAAed,SAAU,EAC9B5oB,KAAK6Z,KAAK,UAEL7Z,MAYT+nB,GAASnnB,UAAUe,KAAO,SAAUwmB,GAClC,IAAIpkB,EAAQ/D,KAAK0pB,eACboG,GAAS,EAET/vB,EAAOC,KA2BX,IAAK,IAAI6F,KA1BTsiB,EAAO5O,GAAG,OAAO,WAEf,GADA0O,GAAM,eACFlkB,EAAM0lB,UAAY1lB,EAAM8kB,MAAO,CACjC,IAAIiB,EAAQ/lB,EAAM0lB,QAAQlgB,MACtBugB,GAASA,EAAMlkB,QAAQ7F,EAAKsF,KAAKykB,EACtC,CAED/pB,EAAKsF,KAAK,KACX,IAED8iB,EAAO5O,GAAG,QAAQ,SAAUuQ,IAC1B7B,GAAM,gBACFlkB,EAAM0lB,UAASK,EAAQ/lB,EAAM0lB,QAAQte,MAAM2e,IAG3C/lB,EAAMqkB,YAAe,MAAA0B,KAAyD/lB,EAAMqkB,YAAgB0B,GAAUA,EAAMlkB,UAE9G7F,EAAKsF,KAAKykB,KAElBgG,GAAS,EACT3H,EAAOmH,SAEV,IAIanH,OACI9nB,IAAZL,KAAK6F,IAAyC,mBAAdsiB,EAAOtiB,KACzC7F,KAAK6F,GAAK,SAAUzC,GAClB,OAAO,WACL,OAAO+kB,EAAO/kB,GAAQjD,MAAMgoB,EAAQjoB,WAEvC,CAJS,CAIR2F,IAoBN,OAgIF,SAAiB4lB,EAAI9L,GACnB,IAAK,IAAI9Z,EAAI,EAAGyR,EAAImU,EAAG7lB,OAAQC,EAAIyR,EAAGzR,IACpC8Z,EAAE8L,EAAG5lB,GAAIA,EAEZ,CAlJC1C,CADa,CAAC,QAAS,QAAS,UAAW,QAAS,WACpC,SAAU0sB,GACxB1H,EAAO5O,GAAGsW,EAAI9vB,EAAK8Z,KAAKkW,KAAKhwB,EAAM8vB,GACpC,IAID9vB,EAAK6pB,MAAQ,SAAUnb,GACrBwZ,GAAM,gBAAiBxZ,GACnBqhB,IACFA,GAAS,EACT3H,EAAOsH,WAIJ1vB,GAITgoB,GAASiI,UAAY/E,GCjvBrByC,GAAS5B,cAAgBA,GAIzBxF,GAASoH,GAAU7R,IA6GnBiQ,GAAclrB,UAAUmrB,UAAY,WAGlC,IAFA,IAAIkE,EAAUjwB,KAAKktB,gBACf1Z,EAAM,GACHyc,GACLzc,EAAInO,KAAK4qB,GACTA,EAAUA,EAAQtrB,KAEpB,OAAO6O,CACT,EAwBAka,GAAS9sB,UAAU2tB,KAAO,WACxBvuB,KAAK6Z,KAAK,QAAS,IAAI7V,MAAM,6BAC/B,EAiCA0pB,GAAS9sB,UAAUuK,MAAQ,SAAU2e,EAAO/c,EAAU6e,GACpD,IAAI7nB,EAAQ/D,KAAK0sB,eACbnZ,GAAM,EAgBV,MAdwB,mBAAbxG,IACT6e,EAAK7e,EACLA,EAAW,MAGTjB,EAAOkG,SAAS8X,GAAQ/c,EAAW,SAAmBA,IAAUA,EAAWhJ,EAAMslB,iBAEnE,mBAAPuC,IAAmBA,EAAKF,IAE/B3nB,EAAM8kB,MA5CZ,SAAuBV,EAAQyD,GAC7B,IAAItN,EAAK,IAAIta,MAAM,mBAEnBmkB,EAAOtO,KAAK,QAASyE,GACrBlF,GAASwS,EAAItN,EACf,CAuCmB4R,CAAclwB,KAAM4rB,GAhCvC,SAAoBzD,EAAQpkB,EAAO+lB,EAAO8B,GACxC,IAAIuE,GAAQ,EACR7R,GAAK,EAcT,OAVc,OAAVwL,EACFxL,EAAK,IAAI7Z,UAAU,uCACTqH,EAAOkG,SAAS8X,IAA2B,iBAAVA,QAAgCzpB,IAAVypB,GAAwB/lB,EAAMqkB,aAC/F9J,EAAK,IAAI7Z,UAAU,oCAEjB6Z,IACF6J,EAAOtO,KAAK,QAASyE,GACrBlF,GAASwS,EAAItN,GACb6R,GAAQ,GAEHA,CACT,CAeoDC,CAAWpwB,KAAM+D,EAAO+lB,EAAO8B,KAC/E7nB,EAAM+oB,YACNvZ,EAwCJ,SAAuB4U,EAAQpkB,EAAO+lB,EAAO/c,EAAU6e,GACrD9B,EAXF,SAAqB/lB,EAAO+lB,EAAO/c,GAC5BhJ,EAAMqkB,aAAsC,IAAxBrkB,EAAMsoB,eAA4C,iBAAVvC,IAC/DA,EAAQhe,EAAOS,KAAKud,EAAO/c,IAE7B,OAAO+c,CACT,CAMUuG,CAAYtsB,EAAO+lB,EAAO/c,GAE9BjB,EAAOkG,SAAS8X,KAAQ/c,EAAW,UACvC,IAAI7D,EAAMnF,EAAMqkB,WAAa,EAAI0B,EAAMlkB,OAEvC7B,EAAM6B,QAAUsD,EAEhB,IAAIqK,EAAMxP,EAAM6B,OAAS7B,EAAMykB,cAE1BjV,IAAKxP,EAAMkoB,WAAY,GAE5B,GAAIloB,EAAMuoB,SAAWvoB,EAAMwoB,OAAQ,CACjC,IAAI+D,EAAOvsB,EAAMspB,oBACjBtpB,EAAMspB,oBAAsB,IAAI1B,GAAS7B,EAAO/c,EAAU6e,GACtD0E,EACFA,EAAK3rB,KAAOZ,EAAMspB,oBAElBtpB,EAAMmpB,gBAAkBnpB,EAAMspB,oBAEhCtpB,EAAMwpB,sBAAwB,CAClC,MACIO,GAAQ3F,EAAQpkB,GAAO,EAAOmF,EAAK4gB,EAAO/c,EAAU6e,GAGtD,OAAOrY,CACT,CAlEUgd,CAAcvwB,KAAM+D,EAAO+lB,EAAO/c,EAAU6e,IAG7CrY,CACT,EAEAma,GAAS9sB,UAAU4vB,KAAO,WACZxwB,KAAK0sB,eAEXH,QACR,EAEAmB,GAAS9sB,UAAU6vB,OAAS,WAC1B,IAAI1sB,EAAQ/D,KAAK0sB,eAEb3oB,EAAMwoB,SACRxoB,EAAMwoB,SAEDxoB,EAAMuoB,SAAYvoB,EAAMwoB,QAAWxoB,EAAMooB,UAAapoB,EAAMyoB,mBAAoBzoB,EAAMmpB,iBAAiBC,GAAYntB,KAAM+D,GAElI,EAEA2pB,GAAS9sB,UAAU8vB,mBAAqB,SAA4B3jB,GAGlE,GADwB,iBAAbA,IAAuBA,EAAWA,EAASiB,iBAChD,CAAC,MAAO,OAAQ,QAAS,QAAS,SAAU,SAAU,OAAQ,QAAS,UAAW,WAAY,OAAOa,SAAS9B,EAAW,IAAIiB,gBAAkB,GAAI,MAAM,IAAIvJ,UAAU,qBAAuBsI,GAEpM,OADA/M,KAAK0sB,eAAerD,gBAAkBtc,EAC/B/M,IACT,EAoKA0tB,GAAS9sB,UAAU+sB,OAAS,SAAU7D,EAAO/c,EAAU6e,GACrDA,EAAG,IAAI5nB,MAAM,mBACf,EAEA0pB,GAAS9sB,UAAUitB,QAAU,KAE7BH,GAAS9sB,UAAU2I,IAAM,SAAUugB,EAAO/c,EAAU6e,GAClD,IAAI7nB,EAAQ/D,KAAK0sB,eAEI,mBAAV5C,GACT8B,EAAK9B,EACLA,EAAQ,KACR/c,EAAW,MACkB,mBAAbA,IAChB6e,EAAK7e,EACLA,EAAW,MAGT+c,SAAuC9pB,KAAKmL,MAAM2e,EAAO/c,GAGzDhJ,EAAMwoB,SACRxoB,EAAMwoB,OAAS,EACfvsB,KAAKywB,UAIF1sB,EAAMmoB,QAAWnoB,EAAMooB,UA4B9B,SAAqBhE,EAAQpkB,EAAO6nB,GAClC7nB,EAAMmoB,QAAS,EACf8B,GAAY7F,EAAQpkB,GAChB6nB,IACE7nB,EAAMooB,SAAU/S,GAASwS,GAASzD,EAAO1O,KAAK,SAAUmS,IAE9D7nB,EAAM8kB,OAAQ,EACdV,EAAOnpB,UAAW,CACpB,CApCwC2xB,CAAY3wB,KAAM+D,EAAO6nB,EACjE,EC/ZAtF,GAAS+B,GAAQN,IAGjB,IADA,IAAIthB,GAAO7H,OAAO6H,KAAKinB,GAAS9sB,WACvB8lB,GAAI,EAAGA,GAAIjgB,GAAKb,OAAQ8gB,KAAK,CACpC,IAAItjB,GAASqD,GAAKigB,IACb2B,GAAOznB,UAAUwC,MAASilB,GAAOznB,UAAUwC,IAAUsqB,GAAS9sB,UAAUwC,IAC/E,CAEO,SAASilB,GAAOH,GACrB,KAAMloB,gBAAgBqoB,IAAS,OAAO,IAAIA,GAAOH,GAEjDH,GAASvlB,KAAKxC,KAAMkoB,GACpBwF,GAASlrB,KAAKxC,KAAMkoB,GAEhBA,IAAgC,IAArBA,EAAQyB,WAAoB3pB,KAAK2pB,UAAW,GAEvDzB,IAAgC,IAArBA,EAAQlpB,WAAoBgB,KAAKhB,UAAW,GAE3DgB,KAAK4wB,eAAgB,EACjB1I,IAAqC,IAA1BA,EAAQ0I,gBAAyB5wB,KAAK4wB,eAAgB,GAErE5wB,KAAKyZ,KAAK,MAAOkV,GACnB,CAGA,SAASA,KAGH3uB,KAAK4wB,eAAiB5wB,KAAK0sB,eAAe7D,OAI9CzP,GAASyX,GAAS7wB,KACpB,CAEA,SAAS6wB,GAAQ9wB,GACfA,EAAKwJ,KACP,CCKA,SAASunB,GAAe3I,GACtBnoB,KAAK+wB,eAAiB,SAAUzS,EAAIhR,GAClC,OAUJ,SAAwB6a,EAAQ7J,EAAIhR,GAClC,IAAI0jB,EAAK7I,EAAO8I,gBAChBD,EAAGE,cAAe,EAElB,IAAItF,EAAKoF,EAAGrE,QAEZ,IAAKf,EAAI,OAAOzD,EAAOtO,KAAK,QAAS,IAAI7V,MAAM,kCAE/CgtB,EAAGG,WAAa,KAChBH,EAAGrE,QAAU,KAETrf,SAAqC6a,EAAO9iB,KAAKiI,GAErDse,EAAGtN,GAEH,IAAI8S,EAAKjJ,EAAOuB,eAChB0H,EAAGrI,SAAU,GACTqI,EAAGnI,cAAgBmI,EAAGxrB,OAASwrB,EAAG5I,gBACpCL,EAAOyB,MAAMwH,EAAG5I,cAEpB,CA9BWuI,CAAe5I,EAAQ7J,EAAIhR,EACtC,EAEEtN,KAAKqxB,eAAgB,EACrBrxB,KAAKkxB,cAAe,EACpBlxB,KAAK2sB,QAAU,KACf3sB,KAAKmxB,WAAa,KAClBnxB,KAAKsxB,cAAgB,IACvB,CAwBO,SAASC,GAAUrJ,GACxB,KAAMloB,gBAAgBuxB,IAAY,OAAO,IAAIA,GAAUrJ,GAEvDG,GAAO7lB,KAAKxC,KAAMkoB,GAElBloB,KAAKixB,gBAAkB,IAAIH,GAAe9wB,MAG1C,IAAImoB,EAASnoB,KAGbA,KAAK0pB,eAAeT,cAAe,EAKnCjpB,KAAK0pB,eAAeV,MAAO,EAEvBd,IAC+B,mBAAtBA,EAAQsJ,YAA0BxxB,KAAKyxB,WAAavJ,EAAQsJ,WAE1C,mBAAlBtJ,EAAQwJ,QAAsB1xB,KAAK2xB,OAASzJ,EAAQwJ,QAGjE1xB,KAAKyZ,KAAK,aAAa,WACM,mBAAhBzZ,KAAK2xB,OAAuB3xB,KAAK2xB,QAAO,SAAUrT,GAC3D5e,GAAKyoB,EAAQ7J,EACnB,IAAY5e,GAAKyoB,EACjB,GACA,CAgDA,SAASzoB,GAAKyoB,EAAQ7J,GACpB,GAAIA,EAAI,OAAO6J,EAAOtO,KAAK,QAASyE,GAIpC,IAAIsT,EAAKzJ,EAAOuE,eACZsE,EAAK7I,EAAO8I,gBAEhB,GAAIW,EAAGhsB,OAAQ,MAAM,IAAI5B,MAAM,8CAE/B,GAAIgtB,EAAGE,aAAc,MAAM,IAAIltB,MAAM,kDAErC,OAAOmkB,EAAO9iB,KAAK,KACrB,CCvKO,SAASwsB,GAAY3J,GAC1B,KAAMloB,gBAAgB6xB,IAAc,OAAO,IAAIA,GAAY3J,GAE3DqJ,GAAU/uB,KAAKxC,KAAMkoB,EACvB,CCcA,SAAS4J,KACPC,GAAGvvB,KAAKxC,KACV,CFqBAsmB,GAASiL,GAAWlJ,IAmEpBkJ,GAAU3wB,UAAUyE,KAAO,SAAUykB,EAAO/c,GAE1C,OADA/M,KAAKixB,gBAAgBI,eAAgB,EAC9BhJ,GAAOznB,UAAUyE,KAAK7C,KAAKxC,KAAM8pB,EAAO/c,EACjD,EAYAwkB,GAAU3wB,UAAU6wB,WAAa,SAAU3H,EAAO/c,EAAU6e,GAC1D,MAAM,IAAI5nB,MAAM,kBAClB,EAEAutB,GAAU3wB,UAAU+sB,OAAS,SAAU7D,EAAO/c,EAAU6e,GACtD,IAAIoF,EAAKhxB,KAAKixB,gBAId,GAHAD,EAAGrE,QAAUf,EACboF,EAAGG,WAAarH,EAChBkH,EAAGM,cAAgBvkB,GACdikB,EAAGE,aAAc,CACpB,IAAIE,EAAKpxB,KAAK0pB,gBACVsH,EAAGK,eAAiBD,EAAGnI,cAAgBmI,EAAGxrB,OAASwrB,EAAG5I,gBAAexoB,KAAK4pB,MAAMwH,EAAG5I,cACxF,CACH,EAKA+I,GAAU3wB,UAAUgpB,MAAQ,SAAUnb,GACpC,IAAIuiB,EAAKhxB,KAAKixB,gBAEQ,OAAlBD,EAAGG,YAAuBH,EAAGrE,UAAYqE,EAAGE,cAC9CF,EAAGE,cAAe,EAClBlxB,KAAKyxB,WAAWT,EAAGG,WAAYH,EAAGM,cAAeN,EAAGD,iBAIpDC,EAAGK,eAAgB,CAEvB,EC1JA/K,GAASuL,GAAaN,IAQtBM,GAAYjxB,UAAU6wB,WAAa,SAAU3H,EAAO/c,EAAU6e,GAC5DA,EAAG,KAAM9B,EACX,ECNAxD,GAASwL,GAAQC,IACjBD,GAAO/J,SAAWA,GAClB+J,GAAOpE,SAAWA,GAClBoE,GAAOzJ,OAASA,GAChByJ,GAAOP,UAAYA,GACnBO,GAAOD,YAAcA,GAGrBC,GAAOA,OAASA,GAYhBA,GAAOlxB,UAAU2tB,KAAO,SAASC,EAAMtG,GACrC,IAAI8J,EAAShyB,KAEb,SAASovB,EAAOtF,GACV0E,EAAKxvB,WACH,IAAUwvB,EAAKrjB,MAAM2e,IAAUkI,EAAO1C,OACxC0C,EAAO1C,OAGZ,CAID,SAASR,IACHkD,EAAOrI,UAAYqI,EAAOvC,QAC5BuC,EAAOvC,QAEV,CANDuC,EAAOzY,GAAG,OAAQ6V,GAQlBZ,EAAKjV,GAAG,QAASuV,GAIZN,EAAKyD,UAAc/J,IAA2B,IAAhBA,EAAQ3e,MACzCyoB,EAAOzY,GAAG,MAAOoV,GACjBqD,EAAOzY,GAAG,QAAS0V,IAGrB,IAAIiD,GAAW,EACf,SAASvD,IACHuD,IACJA,GAAW,EAEX1D,EAAKjlB,MACN,CAGD,SAAS0lB,IACHiD,IACJA,GAAW,EAEiB,mBAAjB1D,EAAK2D,SAAwB3D,EAAK2D,UAC9C,CAGD,SAAShD,EAAQ7Q,GAEf,GADAsQ,IACwC,IAApCmD,GAAGhU,cAAc/d,KAAM,SACzB,MAAMse,CAET,CAMD,SAASsQ,IACPoD,EAAOrY,eAAe,OAAQyV,GAC9BZ,EAAK7U,eAAe,QAASmV,GAE7BkD,EAAOrY,eAAe,MAAOgV,GAC7BqD,EAAOrY,eAAe,QAASsV,GAE/B+C,EAAOrY,eAAe,QAASwV,GAC/BX,EAAK7U,eAAe,QAASwV,GAE7B6C,EAAOrY,eAAe,MAAOiV,GAC7BoD,EAAOrY,eAAe,QAASiV,GAE/BJ,EAAK7U,eAAe,QAASiV,EAC9B,CAUD,OA5BAoD,EAAOzY,GAAG,QAAS4V,GACnBX,EAAKjV,GAAG,QAAS4V,GAmBjB6C,EAAOzY,GAAG,MAAOqV,GACjBoD,EAAOzY,GAAG,QAASqV,GAEnBJ,EAAKjV,GAAG,QAASqV,GAEjBJ,EAAK3U,KAAK,OAAQmY,GAGXxD,CACT,+MC3GuB,IAAZhU,KACNA,GAAQK,SAC0B,IAAnCL,GAAQK,QAAQhM,QAAQ,QACW,IAAnC2L,GAAQK,QAAQhM,QAAQ,QAAqD,IAArC2L,GAAQK,QAAQhM,QAAQ,SAClEujB,WAAiB,CAAEhZ,SAKrB,SAAkBtZ,EAAIyc,EAAME,EAAME,GAChC,GAAkB,mBAAP7c,EACT,MAAM,IAAI2E,UAAU,0CAEtB,IACIxE,EAAM4F,EADNqD,EAAMhJ,UAAU0F,OAEpB,OAAQsD,GACR,KAAK,EACL,KAAK,EACH,OAAOmpB,GAAiBvyB,GAC1B,KAAK,EACH,OAAOuyB,IAAiB,WACtBvyB,EAAG0C,KAAK,KAAM+Z,EACf,IACH,KAAK,EACH,OAAO8V,IAAiB,WACtBvyB,EAAG0C,KAAK,KAAM+Z,EAAME,EACrB,IACH,KAAK,EACH,OAAO4V,IAAiB,WACtBvyB,EAAG0C,KAAK,KAAM+Z,EAAME,EAAME,EAC3B,IACH,QAGE,IAFA1c,EAAO,IAAI6I,MAAMI,EAAM,GACvBrD,EAAI,EACGA,EAAI5F,EAAK2F,QACd3F,EAAK4F,KAAO3F,UAAU2F,GAExB,OAAOwsB,IAAiB,WACtBvyB,EAAGK,MAAM,KAAMF,EAChB,IAEL,GAnCEmyB,GAAA5xB,QAAiBga,yFCRnBja,EAAAC,QAAiBM,iGCCjB,IAAIoJ,EAASpJ,GACTgL,EAAS5B,EAAO4B,OAGpB,SAASwmB,EAAWxa,EAAKC,GACvB,IAAK,IAAIrZ,KAAOoZ,EACdC,EAAIrZ,GAAOoZ,EAAIpZ,EAElB,CASD,SAAS6zB,EAAYhzB,EAAK8M,EAAkBzG,GAC1C,OAAOkG,EAAOvM,EAAK8M,EAAkBzG,EACtC,CAVGkG,EAAOS,MAAQT,EAAO+F,OAAS/F,EAAOQ,aAAeR,EAAOiG,gBAC9DxR,UAAiB2J,GAGjBooB,EAAUpoB,EAAQ1J,GAClBA,SAAiB+xB,GAQnBD,EAAUxmB,EAAQymB,GAElBA,EAAWhmB,KAAO,SAAUhN,EAAK8M,EAAkBzG,GACjD,GAAmB,iBAARrG,EACT,MAAM,IAAIkF,UAAU,iCAEtB,OAAOqH,EAAOvM,EAAK8M,EAAkBzG,EACtC,EAED2sB,EAAW1gB,MAAQ,SAAUpE,EAAMqE,EAAM/E,GACvC,GAAoB,iBAATU,EACT,MAAM,IAAIhJ,UAAU,6BAEtB,IAAI0K,EAAMrD,EAAO2B,GAUjB,YATapN,IAATyR,EACsB,iBAAb/E,EACToC,EAAI2C,KAAKA,EAAM/E,GAEfoC,EAAI2C,KAAKA,GAGX3C,EAAI2C,KAAK,GAEJ3C,CACR,EAEDojB,EAAWjmB,YAAc,SAAUmB,GACjC,GAAoB,iBAATA,EACT,MAAM,IAAIhJ,UAAU,6BAEtB,OAAOqH,EAAO2B,EACf,EAED8kB,EAAWxgB,gBAAkB,SAAUtE,GACrC,GAAoB,iBAATA,EACT,MAAM,IAAIhJ,UAAU,6BAEtB,OAAOyF,EAAOsoB,WAAW/kB,EAC3B,yEC2CA,SAASwW,EAAeI,GACtB,OAAOzlB,OAAOgC,UAAU8K,SAASlJ,KAAK6hB,EACxC,aA5EeoO,GAAA7mB,QANf,SAAiBrM,GACf,OAAIuJ,MAAM8C,QACD9C,MAAM8C,QAAQrM,GAEQ,mBAAxB0kB,EAAe1kB,EACvB,EAMgBkzB,GAAAjR,UAHjB,SAAmBjiB,GACjB,MAAsB,kBAARA,CACf,EAMakzB,GAAAxS,OAHd,SAAgB1gB,GACd,OAAe,OAARA,CACR,EAMwBkzB,GAAA3O,kBAHzB,SAA2BvkB,GACzB,OAAc,MAAPA,CACR,EAMekzB,GAAApQ,SAHhB,SAAkB9iB,GAChB,MAAsB,iBAARA,CACf,EAMekzB,GAAA7S,SAHhB,SAAkBrgB,GAChB,MAAsB,iBAARA,CACf,EAMekzB,GAAA1O,SAHhB,SAAkBxkB,GAChB,MAAsB,iBAARA,CACf,EAMkBkzB,GAAApS,YAHnB,SAAqB9gB,GACnB,YAAe,IAARA,CACR,EAMekzB,GAAA3P,SAHhB,SAAkBkB,GAChB,MAA8B,oBAAvBC,EAAeD,EACvB,EAMeyO,GAAAvS,SAHhB,SAAkB3gB,GAChB,MAAsB,iBAARA,GAA4B,OAARA,CACnC,EAMakzB,GAAA1P,OAHd,SAAgBlY,GACd,MAA6B,kBAAtBoZ,EAAepZ,EACvB,EAMc4nB,GAAA7P,QAHf,SAAiBrY,GACf,MAA8B,mBAAtB0Z,EAAe1Z,IAA2BA,aAAavG,KAChE,EAMiByuB,GAAAvQ,WAHlB,SAAoB3iB,GAClB,MAAsB,mBAARA,CACf,EAWkBkzB,GAAAvO,YARnB,SAAqB3kB,GACnB,OAAe,OAARA,GACe,kBAARA,GACQ,iBAARA,GACQ,iBAARA,GACQ,iBAARA,QACQ,IAARA,CACf,EAGDkzB,GAAAzgB,SAAmBlR,GAAkBgL,OAAOkG,0GCtG5C,IACE,IAAIygB,EAAO3xB,GAEX,GAA6B,mBAAlB2xB,EAAKnM,SAAyB,KAAM,GAC/C/lB,EAAiBC,QAAAiyB,EAAKnM,QAIxB,CAHE,MAAO/b,GAEPhK,EAAAC,mBCP2B,mBAAlB5B,OAAOsD,OAEhBwwB,GAAAlyB,QAAiB,SAAkByF,EAAMqZ,GACnCA,IACFrZ,EAAKsZ,OAASD,EACdrZ,EAAKrF,UAAYhC,OAAOsD,OAAOod,EAAU1e,UAAW,CAClDD,YAAa,CACXhC,MAAOsH,EACPnH,YAAY,EACZE,UAAU,EACVD,cAAc,KAIxB,EAGE2zB,GAAAlyB,QAAiB,SAAkByF,EAAMqZ,GACvC,GAAIA,EAAW,CACbrZ,EAAKsZ,OAASD,EACd,IAAIE,EAAW,WAAc,EAC7BA,EAAS5e,UAAY0e,EAAU1e,UAC/BqF,EAAKrF,UAAY,IAAI4e,EACrBvZ,EAAKrF,UAAUD,YAAcsF,CAC9B,CACF,cDjBH,6GEJA,IAAI6F,EAAShL,KAAuBgL,OAChC2mB,EAAOE,GAMXpyB,EAAAC,QAAiB,WACf,SAAS+lB,KAVX,SAAyBqM,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIpuB,UAAU,oCAAyC,CAWrJquB,CAAgB9yB,KAAMumB,GAEtBvmB,KAAKwmB,KAAO,KACZxmB,KAAKymB,KAAO,KACZzmB,KAAK4F,OAAS,CACf,CAoDD,OAlDA2gB,EAAW3lB,UAAUyE,KAAO,SAAcqhB,GACxC,IAAI3hB,EAAQ,CAAEuI,KAAMoZ,EAAG/hB,KAAM,MACzB3E,KAAK4F,OAAS,EAAG5F,KAAKymB,KAAK9hB,KAAOI,EAAW/E,KAAKwmB,KAAOzhB,EAC7D/E,KAAKymB,KAAO1hB,IACV/E,KAAK4F,MACX,EAEE2gB,EAAW3lB,UAAUyc,QAAU,SAAiBqJ,GAC9C,IAAI3hB,EAAQ,CAAEuI,KAAMoZ,EAAG/hB,KAAM3E,KAAKwmB,MACd,IAAhBxmB,KAAK4F,SAAc5F,KAAKymB,KAAO1hB,GACnC/E,KAAKwmB,KAAOzhB,IACV/E,KAAK4F,MACX,EAEE2gB,EAAW3lB,UAAU+lB,MAAQ,WAC3B,GAAoB,IAAhB3mB,KAAK4F,OAAT,CACA,IAAI2N,EAAMvT,KAAKwmB,KAAKlZ,KAGpB,OAFoB,IAAhBtN,KAAK4F,OAAc5F,KAAKwmB,KAAOxmB,KAAKymB,KAAO,KAAUzmB,KAAKwmB,KAAOxmB,KAAKwmB,KAAK7hB,OAC7E3E,KAAK4F,OACA2N,CAJuB,CAKlC,EAEEgT,EAAW3lB,UAAUgmB,MAAQ,WAC3B5mB,KAAKwmB,KAAOxmB,KAAKymB,KAAO,KACxBzmB,KAAK4F,OAAS,CAClB,EAEE2gB,EAAW3lB,UAAU+I,KAAO,SAAcmB,GACxC,GAAoB,IAAhB9K,KAAK4F,OAAc,MAAO,GAG9B,IAFA,IAAIihB,EAAI7mB,KAAKwmB,KACTjT,EAAM,GAAKsT,EAAEvZ,KACVuZ,EAAIA,EAAEliB,MACX4O,GAAOzI,EAAI+b,EAAEvZ,KACd,OAAOiG,CACZ,EAEEgT,EAAW3lB,UAAUyR,OAAS,SAAgB5D,GAC5C,GAAoB,IAAhBzO,KAAK4F,OAAc,OAAOkG,EAAO+F,MAAM,GAC3C,GAAoB,IAAhB7R,KAAK4F,OAAc,OAAO5F,KAAKwmB,KAAKlZ,KAIxC,IAHA,IApDgBwK,EAAKhF,EAAQ3I,EAoDzBoJ,EAAMzH,EAAOQ,YAAYmC,IAAM,GAC/BoY,EAAI7mB,KAAKwmB,KACT3gB,EAAI,EACDghB,GAvDS/O,EAwDH+O,EAAEvZ,KAxDMwF,EAwDAS,EAxDQpJ,EAwDHtE,EAvD5BiS,EAAIzK,KAAKyF,EAAQ3I,GAwDbtE,GAAKghB,EAAEvZ,KAAK1H,OACZihB,EAAIA,EAAEliB,KAER,OAAO4O,CACX,EAESgT,CACT,CA5DiB,GA8DbkM,GAAQA,EAAK7f,SAAW6f,EAAK7f,QAAQmgB,SACvCxyB,EAAOC,QAAQI,UAAU6xB,EAAK7f,QAAQmgB,QAAU,WAC9C,IAAIt0B,EAAMg0B,EAAK7f,QAAQ,CAAEhN,OAAQ5F,KAAK4F,SACtC,OAAO5F,KAAKW,YAAYuF,KAAO,IAAMzH,CACzC,uDCzEA,IAAIu0B,EAAMlyB,KA8DV,SAASmyB,EAAYlzB,EAAMK,GACzBL,EAAK8Z,KAAK,QAASzZ,EACpB,QAED8yB,GAAiB,CACff,QA/DF,SAAiB/xB,EAAKwrB,GACpB,IAAIwC,EAAQpuB,KAERmzB,EAAoBnzB,KAAK0pB,gBAAkB1pB,KAAK0pB,eAAe0J,UAC/DC,EAAoBrzB,KAAK0sB,gBAAkB1sB,KAAK0sB,eAAe0G,UAEnE,OAAID,GAAqBE,GACnBzH,EACFA,EAAGxrB,IACMA,GAASJ,KAAK0sB,gBAAmB1sB,KAAK0sB,eAAeK,cAC9DiG,EAAI5Z,SAAS6Z,EAAajzB,KAAMI,GAE3BJ,OAMLA,KAAK0pB,iBACP1pB,KAAK0pB,eAAe0J,WAAY,GAI9BpzB,KAAK0sB,iBACP1sB,KAAK0sB,eAAe0G,WAAY,GAGlCpzB,KAAKszB,SAASlzB,GAAO,MAAM,SAAUA,IAC9BwrB,GAAMxrB,GACT4yB,EAAI5Z,SAAS6Z,EAAa7E,EAAOhuB,GAC7BguB,EAAM1B,iBACR0B,EAAM1B,eAAeK,cAAe,IAE7BnB,GACTA,EAAGxrB,EAET,IAESJ,KACR,EAyBCuzB,UAvBF,WACMvzB,KAAK0pB,iBACP1pB,KAAK0pB,eAAe0J,WAAY,EAChCpzB,KAAK0pB,eAAeX,SAAU,EAC9B/oB,KAAK0pB,eAAeb,OAAQ,EAC5B7oB,KAAK0pB,eAAeZ,YAAa,GAG/B9oB,KAAK0sB,iBACP1sB,KAAK0sB,eAAe0G,WAAY,EAChCpzB,KAAK0sB,eAAe7D,OAAQ,EAC5B7oB,KAAK0sB,eAAeR,QAAS,EAC7BlsB,KAAK0sB,eAAeP,UAAW,EAC/BnsB,KAAK0sB,eAAeK,cAAe,EAEtC,yCCnCD,IAAIiG,EAAMlyB,KAeV,SAAS2sB,EAAc1pB,GACrB,IAAIqqB,EAAQpuB,KAEZA,KAAK2E,KAAO,KACZ3E,KAAK+E,MAAQ,KACb/E,KAAK6H,OAAS,YAolBhB,SAAwB2rB,EAASzvB,EAAO3D,GACtC,IAAI2E,EAAQyuB,EAAQzuB,MACpByuB,EAAQzuB,MAAQ,KAChB,KAAOA,GAAO,CACZ,IAAI6mB,EAAK7mB,EAAM8mB,SACf9nB,EAAM+oB,YACNlB,EAAGxrB,GACH2E,EAAQA,EAAMJ,IACf,CACGZ,EAAMypB,mBACRzpB,EAAMypB,mBAAmB7oB,KAAO6uB,EAEhCzvB,EAAMypB,mBAAqBgG,CAE9B,CAjmBGC,CAAerF,EAAOrqB,GAEzB,CApBa2vB,GAAGhG,EAwBjB,IAIIrF,EAJAsL,EAA+GX,EAAI5Z,SAOvHsU,EAAS5B,cAAgBA,EAGzB,IAAI2G,EAAO7zB,OAAOsD,OAAOywB,MACzBF,EAAKnM,SAAWsN,KAIhB,IAAIC,EAAe,CACjB1T,sBCnEY2T,GAAGhzB,GAAgBqf,YDwE7B2R,EAASiC,KAKTjoB,EAASkoB,KAAuBloB,OAChCmoB,EAAgBzrB,EAAOK,YAAc,WAAY,EAUrD,IA2IIqrB,EA3IAC,EAAcC,KAIlB,SAAS1I,IAAQ,CAEjB,SAASI,EAAc5D,EAASC,GAC9BE,EAASA,GAAUgM,KAEnBnM,EAAUA,GAAW,GAOrB,IAAIoM,EAAWnM,aAAkBE,EAIjCroB,KAAKooB,aAAeF,EAAQE,WAExBkM,IAAUt0B,KAAKooB,WAAapoB,KAAKooB,cAAgBF,EAAQ8D,oBAK7D,IAAIzD,EAAML,EAAQM,cACd+L,EAAcrM,EAAQsM,sBACtB/L,EAAazoB,KAAKooB,WAAa,GAAK,MAElBpoB,KAAKwoB,cAAvBD,GAAe,IAARA,EAAgCA,EAAa+L,IAAaC,GAA+B,IAAhBA,GAAyCA,EAAsC9L,EAGnKzoB,KAAKwoB,cAAgBvd,KAAKM,MAAMvL,KAAKwoB,eAGrCxoB,KAAKy0B,aAAc,EAGnBz0B,KAAKisB,WAAY,EAEjBjsB,KAAKksB,QAAS,EAEdlsB,KAAK6oB,OAAQ,EAEb7oB,KAAKmsB,UAAW,EAGhBnsB,KAAKozB,WAAY,EAKjB,IAAIhH,GAAqC,IAA1BlE,EAAQmE,cACvBrsB,KAAKqsB,eAAiBD,EAKtBpsB,KAAKqpB,gBAAkBnB,EAAQmB,iBAAmB,OAKlDrpB,KAAK4F,OAAS,EAGd5F,KAAKssB,SAAU,EAGftsB,KAAKusB,OAAS,EAMdvsB,KAAKgpB,MAAO,EAKZhpB,KAAKwsB,kBAAmB,EAGxBxsB,KAAKysB,QAAU,SAAUnO,IA4R3B,SAAiB6J,EAAQ7J,GACvB,IAAIva,EAAQokB,EAAOuE,eACf1D,EAAOjlB,EAAMilB,KACb4C,EAAK7nB,EAAM4oB,QAIf,GAdF,SAA4B5oB,GAC1BA,EAAMuoB,SAAU,EAChBvoB,EAAM4oB,QAAU,KAChB5oB,EAAM6B,QAAU7B,EAAM6oB,SACtB7oB,EAAM6oB,SAAW,CAClB,CAOCC,CAAmB9oB,GAEfua,GAtCN,SAAsB6J,EAAQpkB,EAAOilB,EAAM1K,EAAIsN,KAC3C7nB,EAAM+oB,UAEJ9D,GAGFgK,EAAI5Z,SAASwS,EAAItN,GAGjB0U,EAAI5Z,SAAS4U,EAAa7F,EAAQpkB,GAClCokB,EAAOuE,eAAeK,cAAe,EACrC5E,EAAOtO,KAAK,QAASyE,KAIrBsN,EAAGtN,GACH6J,EAAOuE,eAAeK,cAAe,EACrC5E,EAAOtO,KAAK,QAASyE,GAGrB0P,EAAY7F,EAAQpkB,GAEvB,CAgBSipB,CAAa7E,EAAQpkB,EAAOilB,EAAM1K,EAAIsN,OAAS,CAErD,IAAIO,EAAWc,EAAWlpB,GAErBooB,GAAapoB,EAAMwoB,QAAWxoB,EAAMyoB,mBAAoBzoB,EAAMmpB,iBACjEC,EAAYhF,EAAQpkB,GAGlBilB,EAEF2K,EAAWvG,EAAYjF,EAAQpkB,EAAOooB,EAAUP,GAGhDwB,EAAWjF,EAAQpkB,EAAOooB,EAAUP,EAEvC,CACF,CAlTGa,CAAQtE,EAAQ7J,IAIlBte,KAAK2sB,QAAU,KAGf3sB,KAAK4sB,SAAW,EAEhB5sB,KAAKktB,gBAAkB,KACvBltB,KAAKqtB,oBAAsB,KAI3BrtB,KAAK8sB,UAAY,EAIjB9sB,KAAKstB,aAAc,EAGnBttB,KAAK+sB,cAAe,EAGpB/sB,KAAKutB,qBAAuB,EAI5BvtB,KAAKwtB,mBAAqB,IAAIC,EAAcztB,KAC7C,CAyCD,SAAS0tB,EAASxF,GAUhB,GATAG,EAASA,GAAUgM,OASdH,EAAgB1xB,KAAKkrB,EAAU1tB,OAAWA,gBAAgBqoB,GAC7D,OAAO,IAAIqF,EAASxF,GAGtBloB,KAAK0sB,eAAiB,IAAIZ,EAAc5D,EAASloB,MAGjDA,KAAKhB,UAAW,EAEZkpB,IAC2B,mBAAlBA,EAAQ/c,QAAsBnL,KAAK2tB,OAASzF,EAAQ/c,OAEjC,mBAAnB+c,EAAQ0F,SAAuB5tB,KAAK6tB,QAAU3F,EAAQ0F,QAElC,mBAApB1F,EAAQiK,UAAwBnyB,KAAKszB,SAAWpL,EAAQiK,SAEtC,mBAAlBjK,EAAQwM,QAAsB10B,KAAK20B,OAASzM,EAAQwM,QAGjE5C,EAAOtvB,KAAKxC,KACb,CA+ID,SAAS8tB,EAAQ3F,EAAQpkB,EAAO6pB,EAAQ1kB,EAAK4gB,EAAO/c,EAAU6e,GAC5D7nB,EAAM6oB,SAAW1jB,EACjBnF,EAAM4oB,QAAUf,EAChB7nB,EAAMuoB,SAAU,EAChBvoB,EAAMilB,MAAO,EACT4E,EAAQzF,EAAO0F,QAAQ/D,EAAO/lB,EAAM0oB,SAActE,EAAOwF,OAAO7D,EAAO/c,EAAUhJ,EAAM0oB,SAC3F1oB,EAAMilB,MAAO,CACd,CA0DD,SAASoE,EAAWjF,EAAQpkB,EAAOooB,EAAUP,GACtCO,GASP,SAAsBhE,EAAQpkB,GACP,IAAjBA,EAAM6B,QAAgB7B,EAAMkoB,YAC9BloB,EAAMkoB,WAAY,EAClB9D,EAAOtO,KAAK,SAEf,CAdgBkU,CAAa5F,EAAQpkB,GACpCA,EAAM+oB,YACNlB,IACAoC,EAAY7F,EAAQpkB,EACrB,CAaD,SAASopB,EAAYhF,EAAQpkB,GAC3BA,EAAMyoB,kBAAmB,EACzB,IAAIznB,EAAQhB,EAAMmpB,gBAElB,GAAI/E,EAAO0F,SAAW9oB,GAASA,EAAMJ,KAAM,CAEzC,IAAI2S,EAAIvT,EAAMwpB,qBACVrjB,EAAS,IAAIpB,MAAMwO,GACnB2W,EAASlqB,EAAMypB,mBACnBS,EAAOlpB,MAAQA,EAIf,IAFA,IAAI0Y,EAAQ,EACRmX,GAAa,EACV7vB,GACLmF,EAAOuT,GAAS1Y,EACXA,EAAM8vB,QAAOD,GAAa,GAC/B7vB,EAAQA,EAAMJ,KACd8Y,GAAS,EAEXvT,EAAO0qB,WAAaA,EAEpB9G,EAAQ3F,EAAQpkB,GAAO,EAAMA,EAAM6B,OAAQsE,EAAQ,GAAI+jB,EAAOpmB,QAI9D9D,EAAM+oB,YACN/oB,EAAMspB,oBAAsB,KACxBY,EAAOtpB,MACTZ,EAAMypB,mBAAqBS,EAAOtpB,KAClCspB,EAAOtpB,KAAO,MAEdZ,EAAMypB,mBAAqB,IAAIC,EAAc1pB,GAE/CA,EAAMwpB,qBAAuB,MACxB,CAEL,KAAOxoB,GAAO,CACZ,IAAI+kB,EAAQ/kB,EAAM+kB,MACd/c,EAAWhI,EAAMgI,SACjB6e,EAAK7mB,EAAM8mB,SAUf,GAPAiC,EAAQ3F,EAAQpkB,GAAO,EAFbA,EAAMqkB,WAAa,EAAI0B,EAAMlkB,OAEJkkB,EAAO/c,EAAU6e,GACpD7mB,EAAQA,EAAMJ,KACdZ,EAAMwpB,uBAKFxpB,EAAMuoB,QACR,KAEH,CAEa,OAAVvnB,IAAgBhB,EAAMspB,oBAAsB,KACjD,CAEDtpB,EAAMmpB,gBAAkBnoB,EACxBhB,EAAMyoB,kBAAmB,CAC1B,CAgCD,SAASS,EAAWlpB,GAClB,OAAOA,EAAMmoB,QAA2B,IAAjBnoB,EAAM6B,QAA0C,OAA1B7B,EAAMmpB,kBAA6BnpB,EAAMooB,WAAapoB,EAAMuoB,OAC1G,CACD,SAASwI,EAAU3M,EAAQpkB,GACzBokB,EAAOwM,QAAO,SAAUv0B,GACtB2D,EAAM+oB,YACF1sB,GACF+nB,EAAOtO,KAAK,QAASzZ,GAEvB2D,EAAMupB,aAAc,EACpBnF,EAAOtO,KAAK,aACZmU,EAAY7F,EAAQpkB,EACrB,GACF,CAcD,SAASiqB,EAAY7F,EAAQpkB,GAC3B,IAAIoqB,EAAOlB,EAAWlpB,GAQtB,OAPIoqB,KAfN,SAAmBhG,EAAQpkB,GACpBA,EAAMupB,aAAgBvpB,EAAM0wB,cACF,mBAAlBtM,EAAOwM,QAChB5wB,EAAM+oB,YACN/oB,EAAM0wB,aAAc,EACpBzB,EAAI5Z,SAAS0b,EAAW3M,EAAQpkB,KAEhCA,EAAMupB,aAAc,EACpBnF,EAAOtO,KAAK,cAGjB,CAKGqU,CAAU/F,EAAQpkB,GACM,IAApBA,EAAM+oB,YACR/oB,EAAMooB,UAAW,EACjBhE,EAAOtO,KAAK,YAGTsU,CACR,QA1hBDsE,EAAKnM,SAASoH,EAAUoE,GAmHxBhG,EAAclrB,UAAUmrB,UAAY,WAGlC,IAFA,IAAIkE,EAAUjwB,KAAKktB,gBACf1Z,EAAM,GACHyc,GACLzc,EAAInO,KAAK4qB,GACTA,EAAUA,EAAQtrB,KAEpB,OAAO6O,GAGT,WACE,IACE5U,OAAOC,eAAeitB,EAAclrB,UAAW,SAAU,CACvD8iB,IAAKmQ,EAAa1T,WAAU,WAC1B,OAAOngB,KAAK+rB,WACb,GAAE,6EAAmF,YAE5E,CAAZ,MAAO/L,GAAK,CACf,CARD,GAasB,mBAAXvf,QAAyBA,OAAOs0B,aAAiE,mBAA3CzsB,SAAS1H,UAAUH,OAAOs0B,cACzFb,EAAkB5rB,SAAS1H,UAAUH,OAAOs0B,aAC5Cn2B,OAAOC,eAAe6uB,EAAUjtB,OAAOs0B,YAAa,CAClDp2B,MAAO,SAAUgI,GACf,QAAIutB,EAAgB1xB,KAAKxC,KAAM2G,IAC3B3G,OAAS0tB,IAEN/mB,GAAUA,EAAO+lB,0BAA0BZ,EACnD,KAGHoI,EAAkB,SAAUvtB,GAC1B,OAAOA,aAAkB3G,MAqC7B0tB,EAAS9sB,UAAU2tB,KAAO,WACxBvuB,KAAK6Z,KAAK,QAAS,IAAI7V,MAAM,+BA8B/B0pB,EAAS9sB,UAAUuK,MAAQ,SAAU2e,EAAO/c,EAAU6e,GACpD,IAnOqBntB,EAmOjBsF,EAAQ/D,KAAK0sB,eACbnZ,GAAM,EACNshB,GAAS9wB,EAAMqkB,aArOE3pB,EAqO0BqrB,EApOxChe,EAAOkG,SAASvT,IAAQA,aAAew1B,GAwP9C,OAlBIY,IAAU/oB,EAAOkG,SAAS8X,KAC5BA,EA3OJ,SAA6BA,GAC3B,OAAOhe,EAAOS,KAAKud,EACpB,CAyOWkL,CAAoBlL,IAGN,mBAAb/c,IACT6e,EAAK7e,EACLA,EAAW,MAGT8nB,EAAO9nB,EAAW,SAAmBA,IAAUA,EAAWhJ,EAAMslB,iBAElD,mBAAPuC,IAAmBA,EAAKF,GAE/B3nB,EAAM8kB,MA7CZ,SAAuBV,EAAQyD,GAC7B,IAAItN,EAAK,IAAIta,MAAM,mBAEnBmkB,EAAOtO,KAAK,QAASyE,GACrB0U,EAAI5Z,SAASwS,EAAItN,EAClB,CAwCkB4R,CAAclwB,KAAM4rB,IAAaiJ,GAnCpD,SAAoB1M,EAAQpkB,EAAO+lB,EAAO8B,GACxC,IAAIuE,GAAQ,EACR7R,GAAK,EAYT,OAVc,OAAVwL,EACFxL,EAAK,IAAI7Z,UAAU,uCACO,iBAAVqlB,QAAgCzpB,IAAVypB,GAAwB/lB,EAAMqkB,aACpE9J,EAAK,IAAI7Z,UAAU,oCAEjB6Z,IACF6J,EAAOtO,KAAK,QAASyE,GACrB0U,EAAI5Z,SAASwS,EAAItN,GACjB6R,GAAQ,GAEHA,CACR,CAoB4DC,CAAWpwB,KAAM+D,EAAO+lB,EAAO8B,MACxF7nB,EAAM+oB,YACNvZ,EAkDJ,SAAuB4U,EAAQpkB,EAAO8wB,EAAO/K,EAAO/c,EAAU6e,GAC5D,IAAKiJ,EAAO,CACV,IAAII,EAtBR,SAAqBlxB,EAAO+lB,EAAO/c,GAC5BhJ,EAAMqkB,aAAsC,IAAxBrkB,EAAMsoB,eAA4C,iBAAVvC,IAC/DA,EAAQhe,EAAOS,KAAKud,EAAO/c,IAE7B,OAAO+c,CACR,CAiBkBuG,CAAYtsB,EAAO+lB,EAAO/c,GACrC+c,IAAUmL,IACZJ,GAAQ,EACR9nB,EAAW,SACX+c,EAAQmL,EAEX,CACD,IAAI/rB,EAAMnF,EAAMqkB,WAAa,EAAI0B,EAAMlkB,OAEvC7B,EAAM6B,QAAUsD,EAEhB,IAAIqK,EAAMxP,EAAM6B,OAAS7B,EAAMykB,cAE1BjV,IAAKxP,EAAMkoB,WAAY,GAE5B,GAAIloB,EAAMuoB,SAAWvoB,EAAMwoB,OAAQ,CACjC,IAAI+D,EAAOvsB,EAAMspB,oBACjBtpB,EAAMspB,oBAAsB,CAC1BvD,MAAOA,EACP/c,SAAUA,EACV8nB,MAAOA,EACPhJ,SAAUD,EACVjnB,KAAM,MAEJ2rB,EACFA,EAAK3rB,KAAOZ,EAAMspB,oBAElBtpB,EAAMmpB,gBAAkBnpB,EAAMspB,oBAEhCtpB,EAAMwpB,sBAAwB,OAE9BO,EAAQ3F,EAAQpkB,GAAO,EAAOmF,EAAK4gB,EAAO/c,EAAU6e,GAGtD,OAAOrY,CACR,CAvFSgd,CAAcvwB,KAAM+D,EAAO8wB,EAAO/K,EAAO/c,EAAU6e,IAGpDrY,GAGTma,EAAS9sB,UAAU4vB,KAAO,WACZxwB,KAAK0sB,eAEXH,UAGRmB,EAAS9sB,UAAU6vB,OAAS,WAC1B,IAAI1sB,EAAQ/D,KAAK0sB,eAEb3oB,EAAMwoB,SACRxoB,EAAMwoB,SAEDxoB,EAAMuoB,SAAYvoB,EAAMwoB,QAAWxoB,EAAMooB,UAAapoB,EAAMyoB,mBAAoBzoB,EAAMmpB,iBAAiBC,EAAYntB,KAAM+D,KAIlI2pB,EAAS9sB,UAAU8vB,mBAAqB,SAA4B3jB,GAGlE,GADwB,iBAAbA,IAAuBA,EAAWA,EAASiB,iBAChD,CAAC,MAAO,OAAQ,QAAS,QAAS,SAAU,SAAU,OAAQ,QAAS,UAAW,WAAY,OAAOa,SAAS9B,EAAW,IAAIiB,gBAAkB,GAAI,MAAM,IAAIvJ,UAAU,qBAAuBsI,GAEpM,OADA/M,KAAK0sB,eAAerD,gBAAkBtc,EAC/B/M,MAUTpB,OAAOC,eAAe6uB,EAAS9sB,UAAW,wBAAyB,CAIjE9B,YAAY,EACZ4kB,IAAK,WACH,OAAO1jB,KAAK0sB,eAAelE,aAC5B,IA6LHkF,EAAS9sB,UAAU+sB,OAAS,SAAU7D,EAAO/c,EAAU6e,GACrDA,EAAG,IAAI5nB,MAAM,iCAGf0pB,EAAS9sB,UAAUitB,QAAU,KAE7BH,EAAS9sB,UAAU2I,IAAM,SAAUugB,EAAO/c,EAAU6e,GAClD,IAAI7nB,EAAQ/D,KAAK0sB,eAEI,mBAAV5C,GACT8B,EAAK9B,EACLA,EAAQ,KACR/c,EAAW,MACkB,mBAAbA,IAChB6e,EAAK7e,EACLA,EAAW,MAGT+c,SAAuC9pB,KAAKmL,MAAM2e,EAAO/c,GAGzDhJ,EAAMwoB,SACRxoB,EAAMwoB,OAAS,EACfvsB,KAAKywB,UAIF1sB,EAAMmoB,QAAWnoB,EAAMooB,UA0C9B,SAAqBhE,EAAQpkB,EAAO6nB,GAClC7nB,EAAMmoB,QAAS,EACf8B,EAAY7F,EAAQpkB,GAChB6nB,IACE7nB,EAAMooB,SAAU6G,EAAI5Z,SAASwS,GAASzD,EAAO1O,KAAK,SAAUmS,IAElE7nB,EAAM8kB,OAAQ,EACdV,EAAOnpB,UAAW,CACnB,CAlDuC2xB,CAAY3wB,KAAM+D,EAAO6nB,IAoEjEhtB,OAAOC,eAAe6uB,EAAS9sB,UAAW,YAAa,CACrD8iB,IAAK,WACH,YAA4BrjB,IAAxBL,KAAK0sB,gBAGF1sB,KAAK0sB,eAAe0G,SAC5B,EACDlc,IAAK,SAAUvY,GAGRqB,KAAK0sB,iBAMV1sB,KAAK0sB,eAAe0G,UAAYz0B,EACjC,IAGH+uB,EAAS9sB,UAAUuxB,QAAUgC,EAAYhC,QACzCzE,EAAS9sB,UAAUs0B,WAAaf,EAAYZ,UAC5C7F,EAAS9sB,UAAU0yB,SAAW,SAAUlzB,EAAKwrB,GAC3C5rB,KAAKuJ,MACLqiB,EAAGxrB,0CE/oBL,IAAI4yB,EAAMlyB,KAINq0B,EAAav2B,OAAO6H,MAAQ,SAAUhI,GACxC,IAAIgI,EAAO,GACX,IAAK,IAAI/H,KAAOD,EACdgI,EAAKpB,KAAK3G,GACX,OAAO+H,CACV,EAGc2uB,GAAG/M,EAGjB,IAAIoK,EAAO7zB,OAAOsD,OAAOywB,MACzBF,EAAKnM,SAAWsN,KAGhB,IAAI7L,EAAWsN,KACX3H,EAAWqG,KAEftB,EAAKnM,SAAS+B,EAAQN,GAKpB,IADA,IAAIthB,EAAO0uB,EAAWzH,EAAS9sB,WACtB8lB,EAAI,EAAGA,EAAIjgB,EAAKb,OAAQ8gB,IAAK,CACpC,IAAItjB,EAASqD,EAAKigB,GACb2B,EAAOznB,UAAUwC,KAASilB,EAAOznB,UAAUwC,GAAUsqB,EAAS9sB,UAAUwC,GAC9E,CAGH,SAASilB,EAAOH,GACd,KAAMloB,gBAAgBqoB,GAAS,OAAO,IAAIA,EAAOH,GAEjDH,EAASvlB,KAAKxC,KAAMkoB,GACpBwF,EAASlrB,KAAKxC,KAAMkoB,GAEhBA,IAAgC,IAArBA,EAAQyB,WAAoB3pB,KAAK2pB,UAAW,GAEvDzB,IAAgC,IAArBA,EAAQlpB,WAAoBgB,KAAKhB,UAAW,GAE3DgB,KAAK4wB,eAAgB,EACjB1I,IAAqC,IAA1BA,EAAQ0I,gBAAyB5wB,KAAK4wB,eAAgB,GAErE5wB,KAAKyZ,KAAK,MAAOkV,EAClB,CAaD,SAASA,IAGH3uB,KAAK4wB,eAAiB5wB,KAAK0sB,eAAe7D,OAI9CmK,EAAI5Z,SAASyX,EAAS7wB,KACvB,CAED,SAAS6wB,EAAQ9wB,GACfA,EAAKwJ,KACN,QAvBD3K,OAAOC,eAAewpB,EAAOznB,UAAW,wBAAyB,CAI/D9B,YAAY,EACZ4kB,IAAK,WACH,OAAO1jB,KAAK0sB,eAAelE,aAC5B,IAkBH5pB,OAAOC,eAAewpB,EAAOznB,UAAW,YAAa,CACnD8iB,IAAK,WACH,YAA4BrjB,IAAxBL,KAAK0pB,qBAAwDrpB,IAAxBL,KAAK0sB,iBAGvC1sB,KAAK0pB,eAAe0J,WAAapzB,KAAK0sB,eAAe0G,UAC7D,EACDlc,IAAK,SAAUvY,QAGe0B,IAAxBL,KAAK0pB,qBAAwDrpB,IAAxBL,KAAK0sB,iBAM9C1sB,KAAK0pB,eAAe0J,UAAYz0B,EAChCqB,KAAK0sB,eAAe0G,UAAYz0B,EACjC,IAGH0pB,EAAOznB,UAAU0yB,SAAW,SAAUlzB,EAAKwrB,GACzC5rB,KAAKqF,KAAK,MACVrF,KAAKuJ,MAELypB,EAAI5Z,SAASwS,EAAIxrB,4ECxGnB,IAAI0L,EAAShL,KAAuBgL,OAGhCkB,EAAalB,EAAOkB,YAAc,SAAUD,GAE9C,QADAA,EAAW,GAAKA,IACIA,EAASiB,eAC3B,IAAK,MAAM,IAAK,OAAO,IAAK,QAAQ,IAAK,QAAQ,IAAK,SAAS,IAAK,SAAS,IAAK,OAAO,IAAK,QAAQ,IAAK,UAAU,IAAK,WAAW,IAAK,MACxI,OAAO,EACT,QACE,OAAO,EAEb,EA0CA,SAAS+Y,EAAcha,GAErB,IAAIoe,EACJ,OAFAnrB,KAAK+M,SAXP,SAA2B+a,GACzB,IAAIwN,EA/BN,SAA4BxN,GAC1B,IAAKA,EAAK,MAAO,OAEjB,IADA,IAAIyN,IAEF,OAAQzN,GACN,IAAK,OACL,IAAK,QACH,MAAO,OACT,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,MAAO,UACT,IAAK,SACL,IAAK,SACH,MAAO,SACT,IAAK,SACL,IAAK,QACL,IAAK,MACH,OAAOA,EACT,QACE,GAAIyN,EAAS,OACbzN,GAAO,GAAKA,GAAK9Z,cACjBunB,GAAU,EAIlB,CAIaC,CAAmB1N,GAC9B,GAAoB,iBAATwN,IAAsBxpB,EAAOkB,aAAeA,IAAeA,EAAW8a,IAAO,MAAM,IAAI9jB,MAAM,qBAAuB8jB,GAC/H,OAAOwN,GAAQxN,CAChB,CAOiB2N,CAAkB1oB,GAE1B/M,KAAK+M,UACX,IAAK,UACH/M,KAAK01B,KAAOC,EACZ31B,KAAKuJ,IAAMqsB,EACXzK,EAAK,EACL,MACF,IAAK,OACHnrB,KAAK61B,SAAWC,EAChB3K,EAAK,EACL,MACF,IAAK,SACHnrB,KAAK01B,KAAOK,EACZ/1B,KAAKuJ,IAAMysB,EACX7K,EAAK,EACL,MACF,QAGE,OAFAnrB,KAAKmL,MAAQ8qB,OACbj2B,KAAKuJ,IAAM2sB,GAGfl2B,KAAKm2B,SAAW,EAChBn2B,KAAKo2B,UAAY,EACjBp2B,KAAKq2B,SAAWvqB,EAAOQ,YAAY6e,EACpC,CAmCD,SAASmL,EAAcC,GACrB,OAAIA,GAAQ,IAAa,EAAWA,GAAQ,GAAM,EAAa,EAAWA,GAAQ,GAAM,GAAa,EAAWA,GAAQ,GAAM,GAAa,EACpIA,GAAQ,GAAM,GAAQ,GAAK,CACnC,CA0DD,SAAST,EAAa3mB,GACpB,IAAI0X,EAAI7mB,KAAKo2B,UAAYp2B,KAAKm2B,SAC1BK,EAtBN,SAA6Bz2B,EAAMoP,EAAK0X,GACtC,GAAwB,MAAV,IAAT1X,EAAI,IAEP,OADApP,EAAKo2B,SAAW,EACT,IAET,GAAIp2B,EAAKo2B,SAAW,GAAKhnB,EAAIvJ,OAAS,EAAG,CACvC,GAAwB,MAAV,IAATuJ,EAAI,IAEP,OADApP,EAAKo2B,SAAW,EACT,IAET,GAAIp2B,EAAKo2B,SAAW,GAAKhnB,EAAIvJ,OAAS,GACZ,MAAV,IAATuJ,EAAI,IAEP,OADApP,EAAKo2B,SAAW,EACT,GAGZ,CACF,CAKSM,CAAoBz2B,KAAMmP,GAClC,YAAU9O,IAANm2B,EAAwBA,EACxBx2B,KAAKm2B,UAAYhnB,EAAIvJ,QACvBuJ,EAAI9B,KAAKrN,KAAKq2B,SAAUxP,EAAG,EAAG7mB,KAAKm2B,UAC5Bn2B,KAAKq2B,SAAS3qB,SAAS1L,KAAK+M,SAAU,EAAG/M,KAAKo2B,aAEvDjnB,EAAI9B,KAAKrN,KAAKq2B,SAAUxP,EAAG,EAAG1X,EAAIvJ,aAClC5F,KAAKm2B,UAAYhnB,EAAIvJ,QACtB,CA0BD,SAAS+vB,EAAUxmB,EAAKtJ,GACtB,IAAKsJ,EAAIvJ,OAASC,GAAK,GAAM,EAAG,CAC9B,IAAI2wB,EAAIrnB,EAAIzD,SAAS,UAAW7F,GAChC,GAAI2wB,EAAG,CACL,IAAIprB,EAAIorB,EAAErtB,WAAWqtB,EAAE5wB,OAAS,GAChC,GAAIwF,GAAK,OAAUA,GAAK,MAKtB,OAJApL,KAAKm2B,SAAW,EAChBn2B,KAAKo2B,UAAY,EACjBp2B,KAAKq2B,SAAS,GAAKlnB,EAAIA,EAAIvJ,OAAS,GACpC5F,KAAKq2B,SAAS,GAAKlnB,EAAIA,EAAIvJ,OAAS,GAC7B4wB,EAAEvvB,MAAM,GAAI,EAEtB,CACD,OAAOuvB,CACR,CAID,OAHAx2B,KAAKm2B,SAAW,EAChBn2B,KAAKo2B,UAAY,EACjBp2B,KAAKq2B,SAAS,GAAKlnB,EAAIA,EAAIvJ,OAAS,GAC7BuJ,EAAIzD,SAAS,UAAW7F,EAAGsJ,EAAIvJ,OAAS,EAChD,CAID,SAASgwB,EAASzmB,GAChB,IAAIqnB,EAAIrnB,GAAOA,EAAIvJ,OAAS5F,KAAKmL,MAAMgE,GAAO,GAC9C,GAAInP,KAAKm2B,SAAU,CACjB,IAAI5sB,EAAMvJ,KAAKo2B,UAAYp2B,KAAKm2B,SAChC,OAAOK,EAAIx2B,KAAKq2B,SAAS3qB,SAAS,UAAW,EAAGnC,EACjD,CACD,OAAOitB,CACR,CAED,SAAST,EAAW5mB,EAAKtJ,GACvB,IAAI4I,GAAKU,EAAIvJ,OAASC,GAAK,EAC3B,OAAU,IAAN4I,EAAgBU,EAAIzD,SAAS,SAAU7F,IAC3C7F,KAAKm2B,SAAW,EAAI1nB,EACpBzO,KAAKo2B,UAAY,EACP,IAAN3nB,EACFzO,KAAKq2B,SAAS,GAAKlnB,EAAIA,EAAIvJ,OAAS,IAEpC5F,KAAKq2B,SAAS,GAAKlnB,EAAIA,EAAIvJ,OAAS,GACpC5F,KAAKq2B,SAAS,GAAKlnB,EAAIA,EAAIvJ,OAAS,IAE/BuJ,EAAIzD,SAAS,SAAU7F,EAAGsJ,EAAIvJ,OAAS6I,GAC/C,CAED,SAASunB,EAAU7mB,GACjB,IAAIqnB,EAAIrnB,GAAOA,EAAIvJ,OAAS5F,KAAKmL,MAAMgE,GAAO,GAC9C,OAAInP,KAAKm2B,SAAiBK,EAAIx2B,KAAKq2B,SAAS3qB,SAAS,SAAU,EAAG,EAAI1L,KAAKm2B,UACpEK,CACR,CAGD,SAASP,EAAY9mB,GACnB,OAAOA,EAAIzD,SAAS1L,KAAK+M,SAC1B,CAED,SAASmpB,EAAU/mB,GACjB,OAAOA,GAAOA,EAAIvJ,OAAS5F,KAAKmL,MAAMgE,GAAO,EAC/C,QA1NqBunB,GAAA3P,cAAGA,EA6BxBA,EAAcnmB,UAAUuK,MAAQ,SAAUgE,GACxC,GAAmB,IAAfA,EAAIvJ,OAAc,MAAO,GAC7B,IAAI4wB,EACA3wB,EACJ,GAAI7F,KAAKm2B,SAAU,CAEjB,QAAU91B,KADVm2B,EAAIx2B,KAAK61B,SAAS1mB,IACG,MAAO,GAC5BtJ,EAAI7F,KAAKm2B,SACTn2B,KAAKm2B,SAAW,CACpB,MACItwB,EAAI,EAEN,OAAIA,EAAIsJ,EAAIvJ,OAAe4wB,EAAIA,EAAIx2B,KAAK01B,KAAKvmB,EAAKtJ,GAAK7F,KAAK01B,KAAKvmB,EAAKtJ,GAC/D2wB,GAAK,EACd,EAEAzP,EAAcnmB,UAAU2I,IAwGxB,SAAiB4F,GACf,IAAIqnB,EAAIrnB,GAAOA,EAAIvJ,OAAS5F,KAAKmL,MAAMgE,GAAO,GAC9C,OAAInP,KAAKm2B,SAAiBK,EAAI,IACvBA,CACR,EAzGDzP,EAAcnmB,UAAU80B,KA0FxB,SAAkBvmB,EAAKtJ,GACrB,IAAI8wB,EArEN,SAA6B52B,EAAMoP,EAAKtJ,GACtC,IAAI0J,EAAIJ,EAAIvJ,OAAS,EACrB,GAAI2J,EAAI1J,EAAG,OAAO,EAClB,IAAIslB,EAAKmL,EAAcnnB,EAAII,IAC3B,GAAI4b,GAAM,EAER,OADIA,EAAK,IAAGprB,EAAKo2B,SAAWhL,EAAK,GAC1BA,EAET,KAAM5b,EAAI1J,IAAa,IAARslB,EAAW,OAAO,EAEjC,IADAA,EAAKmL,EAAcnnB,EAAII,MACb,EAER,OADI4b,EAAK,IAAGprB,EAAKo2B,SAAWhL,EAAK,GAC1BA,EAET,KAAM5b,EAAI1J,IAAa,IAARslB,EAAW,OAAO,EAEjC,IADAA,EAAKmL,EAAcnnB,EAAII,MACb,EAIR,OAHI4b,EAAK,IACI,IAAPA,EAAUA,EAAK,EAAOprB,EAAKo2B,SAAWhL,EAAK,GAE1CA,EAET,OAAO,CACR,CA8CayL,CAAoB52B,KAAMmP,EAAKtJ,GAC3C,IAAK7F,KAAKm2B,SAAU,OAAOhnB,EAAIzD,SAAS,OAAQ7F,GAChD7F,KAAKo2B,UAAYO,EACjB,IAAIptB,EAAM4F,EAAIvJ,QAAU+wB,EAAQ32B,KAAKm2B,UAErC,OADAhnB,EAAI9B,KAAKrN,KAAKq2B,SAAU,EAAG9sB,GACpB4F,EAAIzD,SAAS,OAAQ7F,EAAG0D,EAChC,EA9FDwd,EAAcnmB,UAAUi1B,SAAW,SAAU1mB,GAC3C,GAAInP,KAAKm2B,UAAYhnB,EAAIvJ,OAEvB,OADAuJ,EAAI9B,KAAKrN,KAAKq2B,SAAUr2B,KAAKo2B,UAAYp2B,KAAKm2B,SAAU,EAAGn2B,KAAKm2B,UACzDn2B,KAAKq2B,SAAS3qB,SAAS1L,KAAK+M,SAAU,EAAG/M,KAAKo2B,WAEvDjnB,EAAI9B,KAAKrN,KAAKq2B,SAAUr2B,KAAKo2B,UAAYp2B,KAAKm2B,SAAU,EAAGhnB,EAAIvJ,QAC/D5F,KAAKm2B,UAAYhnB,EAAIvJ,MACvB,wCC9GA,IAAIotB,EAAMlyB,KAGI+1B,GAAG9O,EAGjB,IAIIM,EAJAzc,kCC/BJ,IAAIF,EAAW,CAAE,EAACA,gBAElBorB,GAAiBhuB,MAAM8C,SAAW,SAAUC,GAC1C,MAA6B,kBAAtBH,EAASlJ,KAAKqJ,ID4BT8mB,GAOd5K,EAASC,cAAgBA,EAGhB4L,GAAkB/X,aAE3B,IAAIkb,EAAkB,SAAUvZ,EAASjb,GACvC,OAAOib,EAAQpB,UAAU7Z,GAAMqD,QAK7BksB,EAASuD,KAKTvpB,EAASioB,KAAuBjoB,OAChCmoB,EAAgBzrB,EAAOK,YAAc,WAAY,EAWrD,IAAI4pB,EAAO7zB,OAAOsD,OAAO8xB,MACzBvB,EAAKnM,SAAW8N,KAIhB,IAAI4C,EAAY3C,GACZpM,OAAQ,EAEVA,EADE+O,GAAaA,EAAUpW,SACjBoW,EAAUpW,SAAS,UAEnB,WAAY,EAItB,IAEImG,EAFAR,EAAa0Q,KACb9C,EAAc+C,KAGlBzE,EAAKnM,SAASyB,EAAU+J,GAExB,IAAIqF,EAAe,CAAC,QAAS,QAAS,UAAW,QAAS,UAc1D,SAASnP,EAAcE,EAASC,GAG9BD,EAAUA,GAAW,GAOrB,IAAIoM,EAAWnM,aATfE,EAASA,GAAU+O,MAanBp3B,KAAKooB,aAAeF,EAAQE,WAExBkM,IAAUt0B,KAAKooB,WAAapoB,KAAKooB,cAAgBF,EAAQI,oBAI7D,IAAIC,EAAML,EAAQM,cACd6O,EAAcnP,EAAQoP,sBACtB7O,EAAazoB,KAAKooB,WAAa,GAAK,MAElBpoB,KAAKwoB,cAAvBD,GAAe,IAARA,EAAgCA,EAAa+L,IAAa+C,GAA+B,IAAhBA,GAAyCA,EAAsC5O,EAGnKzoB,KAAKwoB,cAAgBvd,KAAKM,MAAMvL,KAAKwoB,eAKrCxoB,KAAKkK,OAAS,IAAIqc,EAClBvmB,KAAK4F,OAAS,EACd5F,KAAK0oB,MAAQ,KACb1oB,KAAK2oB,WAAa,EAClB3oB,KAAK4oB,QAAU,KACf5oB,KAAK6oB,OAAQ,EACb7oB,KAAK8oB,YAAa,EAClB9oB,KAAK+oB,SAAU,EAMf/oB,KAAKgpB,MAAO,EAIZhpB,KAAKipB,cAAe,EACpBjpB,KAAKkpB,iBAAkB,EACvBlpB,KAAKmpB,mBAAoB,EACzBnpB,KAAKopB,iBAAkB,EAGvBppB,KAAKozB,WAAY,EAKjBpzB,KAAKqpB,gBAAkBnB,EAAQmB,iBAAmB,OAGlDrpB,KAAKupB,WAAa,EAGlBvpB,KAAKwpB,aAAc,EAEnBxpB,KAAKypB,QAAU,KACfzpB,KAAK+M,SAAW,KACZmb,EAAQnb,WACLga,IAAeA,EAAgBwQ,KAA2BxQ,eAC/D/mB,KAAKypB,QAAU,IAAI1C,EAAcmB,EAAQnb,UACzC/M,KAAK+M,SAAWmb,EAAQnb,SAE3B,CAED,SAASgb,EAASG,GAGhB,GAFAG,EAASA,GAAU+O,OAEbp3B,gBAAgB+nB,GAAW,OAAO,IAAIA,EAASG,GAErDloB,KAAK0pB,eAAiB,IAAI1B,EAAcE,EAASloB,MAGjDA,KAAK2pB,UAAW,EAEZzB,IAC0B,mBAAjBA,EAAQje,OAAqBjK,KAAK4pB,MAAQ1B,EAAQje,MAE9B,mBAApBie,EAAQiK,UAAwBnyB,KAAKszB,SAAWpL,EAAQiK,UAGrEL,EAAOtvB,KAAKxC,KACb,CA0DD,SAAS6pB,EAAiB1B,EAAQ2B,EAAO/c,EAAUgd,EAAYyN,GAC7D,IAKMlZ,EALFva,EAAQokB,EAAOuB,eACL,OAAVI,GACF/lB,EAAMglB,SAAU,EA0NpB,SAAoBZ,EAAQpkB,GAC1B,GAAIA,EAAM8kB,MAAO,OACjB,GAAI9kB,EAAM0lB,QAAS,CACjB,IAAIK,EAAQ/lB,EAAM0lB,QAAQlgB,MACtBugB,GAASA,EAAMlkB,SACjB7B,EAAMmG,OAAO7E,KAAKykB,GAClB/lB,EAAM6B,QAAU7B,EAAMqkB,WAAa,EAAI0B,EAAMlkB,OAEhD,CACD7B,EAAM8kB,OAAQ,EAGdoB,EAAa9B,EACd,CAtOG+B,CAAW/B,EAAQpkB,KAGdyzB,IAAgBlZ,EA2CzB,SAAsBva,EAAO+lB,GAC3B,IAAIxL,EApPiB7f,EAqPFqrB,EApPZhe,EAAOkG,SAASvT,IAAQA,aAAew1B,GAoPA,iBAAVnK,QAAgCzpB,IAAVypB,GAAwB/lB,EAAMqkB,aACtF9J,EAAK,IAAI7Z,UAAU,oCAtPvB,IAAuBhG,EAwPrB,OAAO6f,CACR,CAjD6B0L,CAAajmB,EAAO+lB,IAC1CxL,EACF6J,EAAOtO,KAAK,QAASyE,GACZva,EAAMqkB,YAAc0B,GAASA,EAAMlkB,OAAS,GAChC,iBAAVkkB,GAAuB/lB,EAAMqkB,YAAcxpB,OAAOkE,eAAegnB,KAAWhe,EAAOlL,YAC5FkpB,EAhNR,SAA6BA,GAC3B,OAAOhe,EAAOS,KAAKud,EACpB,CA8MekL,CAAoBlL,IAG1BC,EACEhmB,EAAM+kB,WAAYX,EAAOtO,KAAK,QAAS,IAAI7V,MAAM,qCAA0CyzB,EAAStP,EAAQpkB,EAAO+lB,GAAO,GACrH/lB,EAAM8kB,MACfV,EAAOtO,KAAK,QAAS,IAAI7V,MAAM,6BAE/BD,EAAMglB,SAAU,EACZhlB,EAAM0lB,UAAY1c,GACpB+c,EAAQ/lB,EAAM0lB,QAAQte,MAAM2e,GACxB/lB,EAAMqkB,YAA+B,IAAjB0B,EAAMlkB,OAAc6xB,EAAStP,EAAQpkB,EAAO+lB,GAAO,GAAYQ,EAAcnC,EAAQpkB,IAE7G0zB,EAAStP,EAAQpkB,EAAO+lB,GAAO,KAGzBC,IACVhmB,EAAMglB,SAAU,IAIpB,OAgCF,SAAsBhlB,GACpB,OAAQA,EAAM8kB,QAAU9kB,EAAMklB,cAAgBllB,EAAM6B,OAAS7B,EAAMykB,eAAkC,IAAjBzkB,EAAM6B,OAC3F,CAlCQ2kB,CAAaxmB,EACrB,CAED,SAAS0zB,EAAStP,EAAQpkB,EAAO+lB,EAAOC,GAClChmB,EAAM6kB,SAA4B,IAAjB7kB,EAAM6B,SAAiB7B,EAAMilB,MAChDb,EAAOtO,KAAK,OAAQiQ,GACpB3B,EAAOle,KAAK,KAGZlG,EAAM6B,QAAU7B,EAAMqkB,WAAa,EAAI0B,EAAMlkB,OACzCmkB,EAAYhmB,EAAMmG,OAAOmT,QAAQyM,GAAY/lB,EAAMmG,OAAO7E,KAAKykB,GAE/D/lB,EAAMklB,cAAcgB,EAAa9B,IAEvCmC,EAAcnC,EAAQpkB,EACvB,CAxGDnF,OAAOC,eAAekpB,EAASnnB,UAAW,YAAa,CACrD8iB,IAAK,WACH,YAA4BrjB,IAAxBL,KAAK0pB,gBAGF1pB,KAAK0pB,eAAe0J,SAC5B,EACDlc,IAAK,SAAUvY,GAGRqB,KAAK0pB,iBAMV1pB,KAAK0pB,eAAe0J,UAAYz0B,EACjC,IAGHopB,EAASnnB,UAAUuxB,QAAUgC,EAAYhC,QACzCpK,EAASnnB,UAAUs0B,WAAaf,EAAYZ,UAC5CxL,EAASnnB,UAAU0yB,SAAW,SAAUlzB,EAAKwrB,GAC3C5rB,KAAKqF,KAAK,MACVumB,EAAGxrB,IAOL2nB,EAASnnB,UAAUyE,KAAO,SAAUykB,EAAO/c,GACzC,IACIyqB,EADAzzB,EAAQ/D,KAAK0pB,eAgBjB,OAbK3lB,EAAMqkB,WAUToP,GAAiB,EATI,iBAAV1N,KACT/c,EAAWA,GAAYhJ,EAAMslB,mBACZtlB,EAAMgJ,WACrB+c,EAAQhe,EAAOS,KAAKud,EAAO/c,GAC3BA,EAAW,IAEbyqB,GAAiB,GAMd3N,EAAiB7pB,KAAM8pB,EAAO/c,GAAU,EAAOyqB,IAIxDzP,EAASnnB,UAAUyc,QAAU,SAAUyM,GACrC,OAAOD,EAAiB7pB,KAAM8pB,EAAO,MAAM,GAAM,IAwEnD/B,EAASnnB,UAAU4pB,SAAW,WAC5B,OAAuC,IAAhCxqB,KAAK0pB,eAAed,SAI7Bb,EAASnnB,UAAU6pB,YAAc,SAAU3C,GAIzC,OAHKf,IAAeA,EAAgBwQ,KAA2BxQ,eAC/D/mB,KAAK0pB,eAAeD,QAAU,IAAI1C,EAAce,GAChD9nB,KAAK0pB,eAAe3c,SAAW+a,EACxB9nB,MAIT,IAAI0qB,EAAU,QAoBd,SAASC,EAAclc,EAAG1K,GACxB,OAAI0K,GAAK,GAAsB,IAAjB1K,EAAM6B,QAAgB7B,EAAM8kB,MAAc,EACpD9kB,EAAMqkB,WAAmB,EACzB3Z,GAAMA,EAEJ1K,EAAM6kB,SAAW7kB,EAAM6B,OAAe7B,EAAMmG,OAAOsc,KAAKlZ,KAAK1H,OAAmB7B,EAAM6B,QAGxF6I,EAAI1K,EAAMykB,gBAAezkB,EAAMykB,cA3BrC,SAAiC/Z,GAc/B,OAbIA,GAAKic,EACPjc,EAAIic,GAIJjc,IACAA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,GACXA,KAEKA,CACR,CAYoDmc,CAAwBnc,IACvEA,GAAK1K,EAAM6B,OAAe6I,EAEzB1K,EAAM8kB,MAIJ9kB,EAAM6B,QAHX7B,EAAMklB,cAAe,EACd,GAGV,CAyHD,SAASgB,EAAa9B,GACpB,IAAIpkB,EAAQokB,EAAOuB,eACnB3lB,EAAMklB,cAAe,EAChBllB,EAAMmlB,kBACTjB,EAAM,eAAgBlkB,EAAM6kB,SAC5B7kB,EAAMmlB,iBAAkB,EACpBnlB,EAAMilB,KAAMgK,EAAI5Z,SAASyR,EAAe1C,GAAa0C,EAAc1C,GAE1E,CAED,SAAS0C,EAAc1C,GACrBF,EAAM,iBACNE,EAAOtO,KAAK,YACZiR,EAAK3C,EACN,CAQD,SAASmC,EAAcnC,EAAQpkB,GACxBA,EAAMylB,cACTzlB,EAAMylB,aAAc,EACpBwJ,EAAI5Z,SAASiR,EAAgBlC,EAAQpkB,GAExC,CAED,SAASsmB,EAAelC,EAAQpkB,GAE9B,IADA,IAAImF,EAAMnF,EAAM6B,QACR7B,EAAMglB,UAAYhlB,EAAM6kB,UAAY7kB,EAAM8kB,OAAS9kB,EAAM6B,OAAS7B,EAAMykB,gBAC9EP,EAAM,wBACNE,EAAOle,KAAK,GACRf,IAAQnF,EAAM6B,SAELsD,EAAMnF,EAAM6B,OAE3B7B,EAAMylB,aAAc,CACrB,CAwOD,SAASuB,EAAiBhrB,GACxBkoB,EAAM,4BACNloB,EAAKkK,KAAK,EACX,CAqBD,SAAS+gB,EAAQ7C,EAAQpkB,GAClBA,EAAMglB,UACTd,EAAM,iBACNE,EAAOle,KAAK,IAGdlG,EAAMqlB,iBAAkB,EACxBrlB,EAAMwlB,WAAa,EACnBpB,EAAOtO,KAAK,UACZiR,EAAK3C,GACDpkB,EAAM6kB,UAAY7kB,EAAMglB,SAASZ,EAAOle,KAAK,EAClD,CAYD,SAAS6gB,EAAK3C,GACZ,IAAIpkB,EAAQokB,EAAOuB,eAEnB,IADAzB,EAAM,OAAQlkB,EAAM6kB,SACb7kB,EAAM6kB,SAA6B,OAAlBT,EAAOle,SAChC,CAkFD,SAASghB,EAASxc,EAAG1K,GAEnB,OAAqB,IAAjBA,EAAM6B,OAAqB,MAG3B7B,EAAMqkB,WAAY7U,EAAMxP,EAAMmG,OAAOyc,SAAkBlY,GAAKA,GAAK1K,EAAM6B,QAEtD2N,EAAfxP,EAAM0lB,QAAe1lB,EAAMmG,OAAOP,KAAK,IAAqC,IAAxB5F,EAAMmG,OAAOtE,OAAoB7B,EAAMmG,OAAOsc,KAAKlZ,KAAgBvJ,EAAMmG,OAAOmI,OAAOtO,EAAM6B,QACrJ7B,EAAMmG,OAAO0c,SAGbrT,EASJ,SAAyB9E,EAAG6D,EAAM4Y,GAChC,IAAI3X,EACA9E,EAAI6D,EAAKkU,KAAKlZ,KAAK1H,QAErB2N,EAAMjB,EAAKkU,KAAKlZ,KAAKrG,MAAM,EAAGwH,GAC9B6D,EAAKkU,KAAKlZ,KAAOgF,EAAKkU,KAAKlZ,KAAKrG,MAAMwH,IAGtC8E,EAFS9E,IAAM6D,EAAKkU,KAAKlZ,KAAK1H,OAExB0M,EAAKqU,QAGLuE,EASV,SAA8Bzc,EAAG6D,GAC/B,IAAIuU,EAAIvU,EAAKkU,KACTpb,EAAI,EACJmI,EAAMsT,EAAEvZ,KACZmB,GAAK8E,EAAI3N,OACT,KAAOihB,EAAIA,EAAEliB,MAAM,CACjB,IAAIuL,EAAM2W,EAAEvZ,KACR6d,EAAK1c,EAAIyB,EAAItK,OAASsK,EAAItK,OAAS6I,EAGvC,GAFI0c,IAAOjb,EAAItK,OAAQ2N,GAAOrD,EAASqD,GAAOrD,EAAIjJ,MAAM,EAAGwH,GAEjD,KADVA,GAAK0c,GACQ,CACPA,IAAOjb,EAAItK,UACXwF,EACEyb,EAAEliB,KAAM2N,EAAKkU,KAAOK,EAAEliB,KAAU2N,EAAKkU,KAAOlU,EAAKmU,KAAO,OAE5DnU,EAAKkU,KAAOK,EACZA,EAAEvZ,KAAO4C,EAAIjJ,MAAMkkB,IAErB,KACD,GACC/f,CACH,CAED,OADAkH,EAAK1M,QAAUwF,EACRmI,CACR,CAjCsB6X,CAAqB3c,EAAG6D,GAsC/C,SAAwB7D,EAAG6D,GACzB,IAAIiB,EAAMzH,EAAOQ,YAAYmC,GACzBoY,EAAIvU,EAAKkU,KACTpb,EAAI,EACRyb,EAAEvZ,KAAKD,KAAKkG,GACZ9E,GAAKoY,EAAEvZ,KAAK1H,OACZ,KAAOihB,EAAIA,EAAEliB,MAAM,CACjB,IAAIwK,EAAM0X,EAAEvZ,KACR6d,EAAK1c,EAAIU,EAAIvJ,OAASuJ,EAAIvJ,OAAS6I,EAGvC,GAFAU,EAAI9B,KAAKkG,EAAKA,EAAI3N,OAAS6I,EAAG,EAAG0c,GAEvB,KADV1c,GAAK0c,GACQ,CACPA,IAAOhc,EAAIvJ,UACXwF,EACEyb,EAAEliB,KAAM2N,EAAKkU,KAAOK,EAAEliB,KAAU2N,EAAKkU,KAAOlU,EAAKmU,KAAO,OAE5DnU,EAAKkU,KAAOK,EACZA,EAAEvZ,KAAO6B,EAAIlI,MAAMkkB,IAErB,KACD,GACC/f,CACH,CAED,OADAkH,EAAK1M,QAAUwF,EACRmI,CACR,CA/DsD8X,CAAe5c,EAAG6D,GAEvE,OAAOiB,CACR,CAvBS+X,CAAgB7c,EAAG1K,EAAMmG,OAAQnG,EAAM0lB,SAGxClW,GAVP,IAAIA,CAWL,CAiFD,SAASgY,EAAYpD,GACnB,IAAIpkB,EAAQokB,EAAOuB,eAInB,GAAI3lB,EAAM6B,OAAS,EAAG,MAAM,IAAI5B,MAAM,8CAEjCD,EAAM+kB,aACT/kB,EAAM8kB,OAAQ,EACdmK,EAAI5Z,SAASoS,EAAeznB,EAAOokB,GAEtC,CAED,SAASqD,EAAcznB,EAAOokB,GAEvBpkB,EAAM+kB,YAA+B,IAAjB/kB,EAAM6B,SAC7B7B,EAAM+kB,YAAa,EACnBX,EAAOwB,UAAW,EAClBxB,EAAOtO,KAAK,OAEf,CAED,SAAShL,EAAQ4c,EAAItZ,GACnB,IAAK,IAAItM,EAAI,EAAGyR,EAAImU,EAAG7lB,OAAQC,EAAIyR,EAAGzR,IACpC,GAAI4lB,EAAG5lB,KAAOsM,EAAG,OAAOtM,EAE1B,OAAQ,CACV,QAroBAkiB,EAASnnB,UAAUqJ,KAAO,SAAUwE,GAClCwZ,EAAM,OAAQxZ,GACdA,EAAIoB,SAASpB,EAAG,IAChB,IAAI1K,EAAQ/D,KAAK0pB,eACb2E,EAAQ5f,EAOZ,GALU,IAANA,IAAS1K,EAAMmlB,iBAAkB,GAK3B,IAANza,GAAW1K,EAAMklB,eAAiBllB,EAAM6B,QAAU7B,EAAMykB,eAAiBzkB,EAAM8kB,OAGjF,OAFAZ,EAAM,qBAAsBlkB,EAAM6B,OAAQ7B,EAAM8kB,OAC3B,IAAjB9kB,EAAM6B,QAAgB7B,EAAM8kB,MAAO0C,EAAYvrB,MAAWiqB,EAAajqB,MACpE,KAMT,GAAU,KAHVyO,EAAIkc,EAAclc,EAAG1K,KAGNA,EAAM8kB,MAEnB,OADqB,IAAjB9kB,EAAM6B,QAAc2lB,EAAYvrB,MAC7B,KA0BT,IA4BIuT,EA5BA+a,EAASvqB,EAAMklB,aAiDnB,OAhDAhB,EAAM,gBAAiBqG,IAGF,IAAjBvqB,EAAM6B,QAAgB7B,EAAM6B,OAAS6I,EAAI1K,EAAMykB,gBAEjDP,EAAM,6BADNqG,GAAS,GAMPvqB,EAAM8kB,OAAS9kB,EAAMglB,QAEvBd,EAAM,mBADNqG,GAAS,GAEAA,IACTrG,EAAM,WACNlkB,EAAMglB,SAAU,EAChBhlB,EAAMilB,MAAO,EAEQ,IAAjBjlB,EAAM6B,SAAc7B,EAAMklB,cAAe,GAE7CjpB,KAAK4pB,MAAM7lB,EAAMykB,eACjBzkB,EAAMilB,MAAO,EAGRjlB,EAAMglB,UAASta,EAAIkc,EAAc0D,EAAOtqB,KAMnC,QAFDwP,EAAP9E,EAAI,EAASwc,EAASxc,EAAG1K,GAAkB,OAG7CA,EAAMklB,cAAe,EACrBxa,EAAI,GAEJ1K,EAAM6B,QAAU6I,EAGG,IAAjB1K,EAAM6B,SAGH7B,EAAM8kB,QAAO9kB,EAAMklB,cAAe,GAGnCoF,IAAU5f,GAAK1K,EAAM8kB,OAAO0C,EAAYvrB,OAGlC,OAARuT,GAAcvT,KAAK6Z,KAAK,OAAQtG,GAE7BA,GAkETwU,EAASnnB,UAAUgpB,MAAQ,SAAUnb,GACnCzO,KAAK6Z,KAAK,QAAS,IAAI7V,MAAM,gCAG/B+jB,EAASnnB,UAAU2tB,KAAO,SAAUC,EAAMC,GACxC,IAAI3W,EAAM9X,KACN+D,EAAQ/D,KAAK0pB,eAEjB,OAAQ3lB,EAAM4kB,YACZ,KAAK,EACH5kB,EAAM2kB,MAAQ8F,EACd,MACF,KAAK,EACHzqB,EAAM2kB,MAAQ,CAAC3kB,EAAM2kB,MAAO8F,GAC5B,MACF,QACEzqB,EAAM2kB,MAAMrjB,KAAKmpB,GAGrBzqB,EAAM4kB,YAAc,EACpBV,EAAM,wBAAyBlkB,EAAM4kB,WAAY8F,GAEjD,IAEIC,IAFUD,IAA6B,IAAjBA,EAASllB,MAAkBilB,IAAShU,GAAQkd,QAAUlJ,IAAShU,GAAQmd,OAE7EhJ,EAAQY,EAI5B,SAASV,EAASlF,EAAUiO,GAC1B3P,EAAM,YACF0B,IAAa7R,GACX8f,IAAwC,IAA1BA,EAAWC,aAC3BD,EAAWC,YAAa,EAoB5B5P,EAAM,WAENuG,EAAK7U,eAAe,QAASsV,GAC7BT,EAAK7U,eAAe,SAAUuV,GAC9BV,EAAK7U,eAAe,QAASmV,GAC7BN,EAAK7U,eAAe,QAASwV,GAC7BX,EAAK7U,eAAe,SAAUkV,GAC9B/W,EAAI6B,eAAe,MAAOgV,GAC1B7W,EAAI6B,eAAe,MAAO4V,GAC1BzX,EAAI6B,eAAe,OAAQyV,GAE3BJ,GAAY,GAORjrB,EAAMwlB,YAAgBiF,EAAK9B,iBAAkB8B,EAAK9B,eAAeT,WAAY6C,IAlClF,CAED,SAASH,IACP1G,EAAM,SACNuG,EAAKjlB,KACN,CAhBGxF,EAAM+kB,WAAYkK,EAAI5Z,SAASsV,GAAY5W,EAAI2B,KAAK,MAAOiV,GAE/DF,EAAKjV,GAAG,SAAUsV,GAoBlB,IAAIC,EA4FN,SAAqBhX,GACnB,OAAO,WACL,IAAI/T,EAAQ+T,EAAI4R,eAChBzB,EAAM,cAAelkB,EAAMwlB,YACvBxlB,EAAMwlB,YAAYxlB,EAAMwlB,aACH,IAArBxlB,EAAMwlB,YAAoBwN,EAAgBjf,EAAK,UACjD/T,EAAM6kB,SAAU,EAChBkC,EAAKhT,IAGV,CAtGeiX,CAAYjX,GAC1B0W,EAAKjV,GAAG,QAASuV,GAEjB,IAAIE,GAAY,EA2BhB,IAAIK,GAAsB,EAE1B,SAASD,EAAOtF,GACd7B,EAAM,UACNoH,GAAsB,GAElB,IADMb,EAAKrjB,MAAM2e,IACCuF,KAKM,IAArBtrB,EAAM4kB,YAAoB5kB,EAAM2kB,QAAU8F,GAAQzqB,EAAM4kB,WAAa,IAAqC,IAAhC9Z,EAAQ9K,EAAM2kB,MAAO8F,MAAkBQ,IACpH/G,EAAM,8BAA+BnQ,EAAI4R,eAAeH,YACxDzR,EAAI4R,eAAeH,aACnB8F,GAAsB,GAExBvX,EAAIwX,QAEP,CAID,SAASH,EAAQ7Q,GACf2J,EAAM,UAAW3J,GACjBiR,IACAf,EAAK7U,eAAe,QAASwV,GACU,IAAnC4H,EAAgBvI,EAAM,UAAgBA,EAAK3U,KAAK,QAASyE,EAC9D,CAMD,SAAS2Q,IACPT,EAAK7U,eAAe,SAAUuV,GAC9BK,GACD,CAED,SAASL,IACPjH,EAAM,YACNuG,EAAK7U,eAAe,QAASsV,GAC7BM,GACD,CAGD,SAASA,IACPtH,EAAM,UACNnQ,EAAIyX,OAAOf,EACZ,CAWD,OA1DA1W,EAAIyB,GAAG,OAAQ6V,GA9gBjB,SAAyB5R,EAASgS,EAAO1vB,GAGvC,GAAuC,mBAA5B0d,EAAQkB,gBAAgC,OAAOlB,EAAQkB,gBAAgB8Q,EAAO1vB,GAMpF0d,EAAQN,SAAYM,EAAQN,QAAQsS,GAAuC5jB,EAAQ4R,EAAQN,QAAQsS,IAAShS,EAAQN,QAAQsS,GAAOnS,QAAQvd,GAAS0d,EAAQN,QAAQsS,GAAS,CAAC1vB,EAAI0d,EAAQN,QAAQsS,IAAtJhS,EAAQjE,GAAGiW,EAAO1vB,EACpE,CAiiBC4e,CAAgB8P,EAAM,QAASW,GAO/BX,EAAK/U,KAAK,QAASwV,GAMnBT,EAAK/U,KAAK,SAAUyV,GAQpBV,EAAK3U,KAAK,OAAQ/B,GAGb/T,EAAM6kB,UACTX,EAAM,eACNnQ,EAAI2X,UAGCjB,GAeTzG,EAASnnB,UAAU2uB,OAAS,SAAUf,GACpC,IAAIzqB,EAAQ/D,KAAK0pB,eACbkO,EAAa,CAAEC,YAAY,GAG/B,GAAyB,IAArB9zB,EAAM4kB,WAAkB,OAAO3oB,KAGnC,GAAyB,IAArB+D,EAAM4kB,WAER,OAAI6F,GAAQA,IAASzqB,EAAM2kB,QAEtB8F,IAAMA,EAAOzqB,EAAM2kB,OAGxB3kB,EAAM2kB,MAAQ,KACd3kB,EAAM4kB,WAAa,EACnB5kB,EAAM6kB,SAAU,EACZ4F,GAAMA,EAAK3U,KAAK,SAAU7Z,KAAM43B,IARK53B,KAc3C,IAAKwuB,EAAM,CAET,IAAIkB,EAAQ3rB,EAAM2kB,MACdxf,EAAMnF,EAAM4kB,WAChB5kB,EAAM2kB,MAAQ,KACd3kB,EAAM4kB,WAAa,EACnB5kB,EAAM6kB,SAAU,EAEhB,IAAK,IAAI/iB,EAAI,EAAGA,EAAIqD,EAAKrD,IACvB6pB,EAAM7pB,GAAGgU,KAAK,SAAU7Z,KAAM43B,GAC/B,OAAO53B,IACT,CAGD,IAAI8e,EAAQjQ,EAAQ9K,EAAM2kB,MAAO8F,GACjC,OAAe,IAAX1P,IAEJ/a,EAAM2kB,MAAMkH,OAAO9Q,EAAO,GAC1B/a,EAAM4kB,YAAc,EACK,IAArB5kB,EAAM4kB,aAAkB5kB,EAAM2kB,MAAQ3kB,EAAM2kB,MAAM,IAEtD8F,EAAK3U,KAAK,SAAU7Z,KAAM43B,IAND53B,MAa3B+nB,EAASnnB,UAAU2Y,GAAK,SAAUsW,EAAI/vB,GACpC,IAAIgR,EAAMghB,EAAOlxB,UAAU2Y,GAAG/W,KAAKxC,KAAM6vB,EAAI/vB,GAE7C,GAAW,SAAP+vB,GAEkC,IAAhC7vB,KAAK0pB,eAAed,SAAmB5oB,KAAKyvB,cAC3C,GAAW,aAAPI,EAAmB,CAC5B,IAAI9rB,EAAQ/D,KAAK0pB,eACZ3lB,EAAM+kB,YAAe/kB,EAAMolB,oBAC9BplB,EAAMolB,kBAAoBplB,EAAMklB,cAAe,EAC/CllB,EAAMmlB,iBAAkB,EACnBnlB,EAAMglB,QAEAhlB,EAAM6B,QACfqkB,EAAajqB,MAFbgzB,EAAI5Z,SAAS2R,EAAkB/qB,MAKpC,CAED,OAAO8Q,GAETiX,EAASnnB,UAAU4Y,YAAcuO,EAASnnB,UAAU2Y,GASpDwO,EAASnnB,UAAU6uB,OAAS,WAC1B,IAAI1rB,EAAQ/D,KAAK0pB,eAMjB,OALK3lB,EAAM6kB,UACTX,EAAM,UACNlkB,EAAM6kB,SAAU,EAMpB,SAAgBT,EAAQpkB,GACjBA,EAAMqlB,kBACTrlB,EAAMqlB,iBAAkB,EACxB4J,EAAI5Z,SAAS4R,EAAS7C,EAAQpkB,GAEjC,CAVG0rB,CAAOzvB,KAAM+D,IAER/D,MAuBT+nB,EAASnnB,UAAU0uB,MAAQ,WAOzB,OANArH,EAAM,wBAAyBjoB,KAAK0pB,eAAed,UAC/C,IAAU5oB,KAAK0pB,eAAed,UAChCX,EAAM,SACNjoB,KAAK0pB,eAAed,SAAU,EAC9B5oB,KAAK6Z,KAAK,UAEL7Z,MAYT+nB,EAASnnB,UAAUe,KAAO,SAAUwmB,GAClC,IAAIiG,EAAQpuB,KAER+D,EAAQ/D,KAAK0pB,eACboG,GAAS,EA4Bb,IAAK,IAAIjqB,KA1BTsiB,EAAO5O,GAAG,OAAO,WAEf,GADA0O,EAAM,eACFlkB,EAAM0lB,UAAY1lB,EAAM8kB,MAAO,CACjC,IAAIiB,EAAQ/lB,EAAM0lB,QAAQlgB,MACtBugB,GAASA,EAAMlkB,QAAQwoB,EAAM/oB,KAAKykB,EACvC,CAEDsE,EAAM/oB,KAAK,KACZ,IAED8iB,EAAO5O,GAAG,QAAQ,SAAUuQ,IAC1B7B,EAAM,gBACFlkB,EAAM0lB,UAASK,EAAQ/lB,EAAM0lB,QAAQte,MAAM2e,IAG3C/lB,EAAMqkB,YAAe,MAAA0B,KAAyD/lB,EAAMqkB,YAAgB0B,GAAUA,EAAMlkB,UAE9GwoB,EAAM/oB,KAAKykB,KAEnBgG,GAAS,EACT3H,EAAOmH,SAEV,IAIanH,OACI9nB,IAAZL,KAAK6F,IAAyC,mBAAdsiB,EAAOtiB,KACzC7F,KAAK6F,GAAK,SAAUzC,GAClB,OAAO,WACL,OAAO+kB,EAAO/kB,GAAQjD,MAAMgoB,EAAQjoB,WAEvC,CAJS,CAIR2F,IAKN,IAAK,IAAI4I,EAAI,EAAGA,EAAI0oB,EAAavxB,OAAQ6I,IACvC0Z,EAAO5O,GAAG4d,EAAa1oB,GAAIzO,KAAK6Z,KAAKkW,KAAK/vB,KAAMm3B,EAAa1oB,KAa/D,OARAzO,KAAK4pB,MAAQ,SAAUnb,GACrBwZ,EAAM,gBAAiBxZ,GACnBqhB,IACFA,GAAS,EACT3H,EAAOsH,WAIJzvB,MAGTpB,OAAOC,eAAekpB,EAASnnB,UAAW,wBAAyB,CAIjE9B,YAAY,EACZ4kB,IAAK,WACH,OAAO1jB,KAAK0pB,eAAelB,aAC5B,IAIHT,EAASiI,UAAY/E,wCExzBP6M,GAAGvG,EAEjB,IAAIlJ,EAASvnB,KAGT2xB,EAAO7zB,OAAOsD,OAAOywB,MAMzB,SAAS5B,EAAezS,EAAIhR,GAC1B,IAAI0jB,EAAKhxB,KAAKixB,gBACdD,EAAGE,cAAe,EAElB,IAAItF,EAAKoF,EAAGrE,QAEZ,IAAKf,EACH,OAAO5rB,KAAK6Z,KAAK,QAAS,IAAI7V,MAAM,yCAGtCgtB,EAAGG,WAAa,KAChBH,EAAGrE,QAAU,KAED,MAARrf,GACFtN,KAAKqF,KAAKiI,GAEZse,EAAGtN,GAEH,IAAI8S,EAAKpxB,KAAK0pB,eACd0H,EAAGrI,SAAU,GACTqI,EAAGnI,cAAgBmI,EAAGxrB,OAASwrB,EAAG5I,gBACpCxoB,KAAK4pB,MAAMwH,EAAG5I,cAEjB,CAED,SAAS+I,EAAUrJ,GACjB,KAAMloB,gBAAgBuxB,GAAY,OAAO,IAAIA,EAAUrJ,GAEvDG,EAAO7lB,KAAKxC,KAAMkoB,GAElBloB,KAAKixB,gBAAkB,CACrBF,eAAgBA,EAAehB,KAAK/vB,MACpCqxB,eAAe,EACfH,cAAc,EACdvE,QAAS,KACTwE,WAAY,KACZG,cAAe,MAIjBtxB,KAAK0pB,eAAeT,cAAe,EAKnCjpB,KAAK0pB,eAAeV,MAAO,EAEvBd,IAC+B,mBAAtBA,EAAQsJ,YAA0BxxB,KAAKyxB,WAAavJ,EAAQsJ,WAE1C,mBAAlBtJ,EAAQwJ,QAAsB1xB,KAAK2xB,OAASzJ,EAAQwJ,QAIjE1xB,KAAKuZ,GAAG,YAAa2U,EACtB,CAED,SAASA,IACP,IAAIE,EAAQpuB,KAEe,mBAAhBA,KAAK2xB,OACd3xB,KAAK2xB,QAAO,SAAUrT,EAAIhR,GACxB5N,EAAK0uB,EAAO9P,EAAIhR,EACtB,IAEI5N,EAAKM,KAAM,KAAM,KAEpB,CAyDD,SAASN,EAAKyoB,EAAQ7J,EAAIhR,GACxB,GAAIgR,EAAI,OAAO6J,EAAOtO,KAAK,QAASyE,GAOpC,GALY,MAARhR,GACF6a,EAAO9iB,KAAKiI,GAIV6a,EAAOuE,eAAe9mB,OAAQ,MAAM,IAAI5B,MAAM,8CAElD,GAAImkB,EAAO8I,gBAAgBC,aAAc,MAAM,IAAIltB,MAAM,kDAEzD,OAAOmkB,EAAO9iB,KAAK,KACrB,QA9IAotB,EAAKnM,SAAWsN,KAGhBnB,EAAKnM,SAASiL,EAAWlJ,GAuEzBkJ,EAAU3wB,UAAUyE,KAAO,SAAUykB,EAAO/c,GAE1C,OADA/M,KAAKixB,gBAAgBI,eAAgB,EAC9BhJ,EAAOznB,UAAUyE,KAAK7C,KAAKxC,KAAM8pB,EAAO/c,EACjD,EAYAwkB,EAAU3wB,UAAU6wB,WAAa,SAAU3H,EAAO/c,EAAU6e,GAC1D,MAAM,IAAI5nB,MAAM,kCAClB,EAEAutB,EAAU3wB,UAAU+sB,OAAS,SAAU7D,EAAO/c,EAAU6e,GACtD,IAAIoF,EAAKhxB,KAAKixB,gBAId,GAHAD,EAAGrE,QAAUf,EACboF,EAAGG,WAAarH,EAChBkH,EAAGM,cAAgBvkB,GACdikB,EAAGE,aAAc,CACpB,IAAIE,EAAKpxB,KAAK0pB,gBACVsH,EAAGK,eAAiBD,EAAGnI,cAAgBmI,EAAGxrB,OAASwrB,EAAG5I,gBAAexoB,KAAK4pB,MAAMwH,EAAG5I,cACxF,CACH,EAKA+I,EAAU3wB,UAAUgpB,MAAQ,SAAUnb,GACpC,IAAIuiB,EAAKhxB,KAAKixB,gBAEQ,OAAlBD,EAAGG,YAAuBH,EAAGrE,UAAYqE,EAAGE,cAC9CF,EAAGE,cAAe,EAClBlxB,KAAKyxB,WAAWT,EAAGG,WAAYH,EAAGM,cAAeN,EAAGD,iBAIpDC,EAAGK,eAAgB,CAEvB,EAEAE,EAAU3wB,UAAU0yB,SAAW,SAAUlzB,EAAKwrB,GAC5C,IAAImM,EAAS/3B,KAEbqoB,EAAOznB,UAAU0yB,SAAS9wB,KAAKxC,KAAMI,GAAK,SAAU43B,GAClDpM,EAAGoM,GACHD,EAAOle,KAAK,QAChB,GACA,kDCtMA,IAAIiY,EAAShxB,GACuB,YAAhC0Z,GAAQG,IAAIsd,iBAAiCnG,GAC/CvxB,EAAAC,QAAiBsxB,GACjBtxB,EAAUD,EAAAC,QAAiBsxB,EAAO/J,UACfA,SAAA+J,EAAO/J,SAC1BvnB,EAAmBktB,SAAAoE,EAAOpE,SAC1BltB,EAAiB6nB,OAAAyJ,EAAOzJ,OACxB7nB,EAAoB+wB,UAAAO,EAAOP,UAC3B/wB,EAAsBqxB,YAAAC,EAAOD,YAC7BrxB,EAAAsxB,OAAiBA,KAEjBtxB,EAAUD,EAAiBC,QAAAmyB,MACVb,OAAAA,GAAUtxB,EAC3BA,EAAAunB,SAAmBvnB,EACnBA,EAAAktB,SAAmBkG,KACnBpzB,EAAA6nB,OAAiBgN,KACjB70B,EAAA+wB,UAAoBwC,KACpBvzB,EAAAqxB,4CCUYqG,GAAGrG,EAEjB,IAAIN,EAAYzwB,KAGZ2xB,EAAO7zB,OAAOsD,OAAOywB,MAMzB,SAASd,EAAY3J,GACnB,KAAMloB,gBAAgB6xB,GAAc,OAAO,IAAIA,EAAY3J,GAE3DqJ,EAAU/uB,KAAKxC,KAAMkoB,EACtB,QATDuK,EAAKnM,SAAWsN,KAGhBnB,EAAKnM,SAASuL,EAAaN,GAQ3BM,EAAYjxB,UAAU6wB,WAAa,SAAU3H,EAAO/c,EAAU6e,GAC5DA,EAAG,KAAM9B,OD5BakK,gCEPxB,GARcmE,GAAAC,QAAG,EACJD,GAAA1rB,OAAG,EACF0rB,GAAArrB,QAAG,EACEqrB,GAAAE,YAA0B,oBAAhB7rB,aAAqD,oBAAf3D,WACnEyvB,GAAAC,YAAqB,EAErBD,GAAAE,WAA2C,oBAAf3vB,WAED,oBAAhB2D,YACP8rB,GAAAG,MAAe,MAEd,CACD,IAAIvuB,GAAS,IAAIsC,YAAY,GAC7B,IACI8rB,GAAAG,KAEY,IAFG,IAAIC,KAAK,CAACxuB,IAAS,CAC9B3H,KAAM,oBACPkL,IAYN,CAVD,MAAOlD,GACH,IACI,IACIouB,GAAU,IADA54B,KAAK64B,aAAe74B,KAAK84B,mBAAqB94B,KAAK+4B,gBAAkB/4B,KAAKg5B,eAExFJ,GAAQK,OAAO9uB,IACHouB,GAAAG,KAA+C,IAA5CE,GAAQM,QAAQ,mBAAmBxrB,IAIrD,CAFD,MAAOlD,GACH+tB,GAAAG,MAAe,CAClB,CACJ,CACJ,CAED,oBAC2B33B,KAA2BinB,QAGtD,CAFE,MAAMxd,GACJ+tB,GAAAY,YAAqB,CACzB,iDCpCA,IAAIC,EAAQr4B,KACRw3B,EAAU3F,GAEVyG,EAAU,2EAIAhB,GAAAiB,OAAG,SAASC,GAMtB,IALA,IACIC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EADpCnwB,EAAS,GAET7D,EAAI,EAAGqD,EAAMowB,EAAM1zB,OAAQk0B,EAAiB5wB,EAE5C0C,EAAqC,WAA3ButB,EAAMY,UAAUT,GACvBzzB,EAAIyzB,EAAM1zB,QACbk0B,EAAiB5wB,EAAMrD,EAElB+F,GAKD2tB,EAAOD,EAAMzzB,KACb2zB,EAAO3zB,EAAIqD,EAAMowB,EAAMzzB,KAAO,EAC9B4zB,EAAO5zB,EAAIqD,EAAMowB,EAAMzzB,KAAO,IAN9B0zB,EAAOD,EAAMnwB,WAAWtD,KACxB2zB,EAAO3zB,EAAIqD,EAAMowB,EAAMnwB,WAAWtD,KAAO,EACzC4zB,EAAO5zB,EAAIqD,EAAMowB,EAAMnwB,WAAWtD,KAAO,GAO7C6zB,EAAOH,GAAQ,EACfI,GAAgB,EAAPJ,IAAa,EAAMC,GAAQ,EACpCI,EAAOE,EAAiB,GAAc,GAAPN,IAAc,EAAMC,GAAQ,EAAM,GACjEI,EAAOC,EAAiB,EAAY,GAAPL,EAAa,GAE1C/vB,EAAOrE,KAAK+zB,EAAQpyB,OAAO0yB,GAAQN,EAAQpyB,OAAO2yB,GAAQP,EAAQpyB,OAAO4yB,GAAQR,EAAQpyB,OAAO6yB,IAIpG,OAAOnwB,EAAOC,KAAK,GACvB,EAGcyuB,GAAA4B,OAAG,SAASV,GACtB,IAAIC,EAAMC,EAAMC,EACNE,EAAMC,EAAMC,EAClBh0B,EAAI,EAAGo0B,EAAc,EAErBC,EAAgB,QAEpB,GAAIZ,EAAMxpB,OAAO,EAAGoqB,EAAct0B,UAAYs0B,EAO1C,MAAM,IAAIl2B,MAAM,mDAKpB,IAgBI0F,EAhBAywB,EAA6B,GAFjCb,EAAQA,EAAM3hB,QAAQ,mBAAoB,KAElB/R,OAAa,EAOrC,GANG0zB,EAAMtyB,OAAOsyB,EAAM1zB,OAAS,KAAOwzB,EAAQpyB,OAAO,KACjDmzB,IAEDb,EAAMtyB,OAAOsyB,EAAM1zB,OAAS,KAAOwzB,EAAQpyB,OAAO,KACjDmzB,IAEAA,EAAc,GAAM,EAOpB,MAAM,IAAIn2B,MAAM,6CASpB,IALI0F,EADA4uB,EAAQE,WACC,IAAI3vB,WAAuB,EAAZsxB,GAEf,IAAIrxB,MAAkB,EAAZqxB,GAGhBt0B,EAAIyzB,EAAM1zB,QAOb2zB,EALOH,EAAQvqB,QAAQyqB,EAAMtyB,OAAOnB,OAKpB,GAJhB8zB,EAAOP,EAAQvqB,QAAQyqB,EAAMtyB,OAAOnB,QAIN,EAC9B2zB,GAAgB,GAAPG,IAAc,GAJvBC,EAAOR,EAAQvqB,QAAQyqB,EAAMtyB,OAAOnB,QAIC,EACrC4zB,GAAgB,EAAPG,IAAa,GAJtBC,EAAOT,EAAQvqB,QAAQyqB,EAAMtyB,OAAOnB,OAMpC6D,EAAOuwB,KAAiBV,EAEX,KAATK,IACAlwB,EAAOuwB,KAAiBT,GAEf,KAATK,IACAnwB,EAAOuwB,KAAiBR,GAKhC,OAAO/vB,MCtGX,gBAAA0wB,GAAiB,CAMbC,QAAS,EAOTC,cAAe,SAAShtB,EAAMP,GAC1B,GAAIjB,EAAOS,MAAQT,EAAOS,OAAS1D,WAAW0D,KAC1C,OAAOT,EAAOS,KAAKe,EAAMP,GAEzB,GAAoB,iBAATO,EAGP,MAAM,IAAItJ,MAAM,4CAEpB,OAAO,IAAI8H,EAAOwB,EAAMP,EAE/B,EAMDwtB,YAAa,SAAU9sB,GACnB,GAAI3B,EAAO+F,MACP,OAAO/F,EAAO+F,MAAMpE,GAEpB,IAAI0B,EAAM,IAAIrD,EAAO2B,GAErB,OADA0B,EAAI2C,KAAK,GACF3C,CAEd,EAMD6C,SAAW,SAAStE,GAChB,OAAO0W,GAAgB1W,EAC1B,EAED8sB,SAAW,SAAU/7B,GACjB,OAAOA,GACe,mBAAXA,EAAI8a,IACU,mBAAd9a,EAAI6wB,OACW,mBAAf7wB,EAAIgxB,MAClB,GClDL,IAAIgL,GAAa,KAEbA,GADmB,oBAAZ96B,QACMA,wCCNjB,IAAI+6B,kCCAJ,IAEIC,EA6CA/hB,EA/CAgiB,EAAWpyB,EAAOqyB,kBAAoBryB,EAAOsyB,uBAK/C,GAAIF,EAAU,CACZ,IAAIG,EAAS,EACTC,EAAW,IAAIJ,EAASxhB,GACxB6hB,EAAUzyB,EAAO0yB,SAASC,eAAe,IAC7CH,EAASI,QAAQH,EAAS,CACxBI,eAAe,IAEjBV,EAAgB,WACdM,EAAQ3tB,KAAQytB,IAAWA,EAAS,EAEvC,MAAM,GAAKvyB,EAAO8yB,mBAAiD,IAA1B9yB,EAAO+yB,eAO/CZ,EADS,aAAcnyB,GAAU,uBAAwBA,EAAO0yB,SAASM,cAAc,UACvE,WAId,IAAIC,EAAWjzB,EAAO0yB,SAASM,cAAc,UAC7CC,EAASC,mBAAqB,WAC5BtiB,IAEAqiB,EAASC,mBAAqB,KAC9BD,EAASE,WAAWC,YAAYH,GAChCA,EAAW,MAEbjzB,EAAO0yB,SAASW,gBAAgBC,YAAYL,IAG9B,WACdjjB,WAAWY,EAAU,QAvBwD,CAC/E,IAAI2iB,EAAU,IAAIvzB,EAAO+yB,eACzBQ,EAAQC,MAAMC,UAAY7iB,EAC1BuhB,EAAgB,WACdoB,EAAQG,MAAMC,YAAY,GAE7B,CA2BH,IAAIxjB,EAAQ,GAEZ,SAASS,IAEP,IAAIvT,EAAGu2B,EADPxjB,GAAW,EAGX,IADA,IAAI1P,EAAMyP,EAAM/S,OACTsD,GAAK,CAIV,IAHAkzB,EAAWzjB,EACXA,EAAQ,GACR9S,GAAK,IACIA,EAAIqD,GACXkzB,EAASv2B,KAEXqD,EAAMyP,EAAM/S,MACb,CACDgT,GAAW,CACZ,QAEayjB,GACd,SAAmBC,GACQ,IAArB3jB,EAAMtT,KAAKi3B,IAAgB1jB,GAC7B+hB,GAEJ,EDvEgB75B,GAGhB,SAASy7B,IAAa,CAEtB,IAAIC,EAAW,CAAA,EAEXC,EAAW,CAAC,YACZC,EAAY,CAAC,aACbC,EAAU,CAAC,WASf,SAASh9B,EAAQi9B,GACf,GAAwB,mBAAbA,EACT,MAAM,IAAIn4B,UAAU,+BAEtBzE,KAAK+D,MAAQ44B,EACb38B,KAAK2Y,MAAQ,GACb3Y,KAAK68B,aAAU,EAKXD,IAAaL,GACfO,EAAsB98B,KAAM48B,EAE/B,CA8CD,SAASG,EAAUC,EAASC,EAAaC,GACvCl9B,KAAKg9B,QAAUA,EACY,mBAAhBC,IACTj9B,KAAKi9B,YAAcA,EACnBj9B,KAAKm9B,cAAgBn9B,KAAKo9B,oBAEF,mBAAfF,IACTl9B,KAAKk9B,WAAaA,EAClBl9B,KAAKq9B,aAAer9B,KAAKs9B,kBAE5B,CAcD,SAASC,EAAOP,EAASQ,EAAM7+B,GAC7B+7B,GAAU,WACR,IAAI+C,EACJ,IACEA,EAAcD,EAAK7+B,EAGpB,CAFC,MAAO4L,GACP,OAAOiyB,EAASp9B,OAAO49B,EAASzyB,EACjC,CACGkzB,IAAgBT,EAClBR,EAASp9B,OAAO49B,EAAS,IAAIv4B,UAAU,uCAEvC+3B,EAASr9B,QAAQ69B,EAASS,EAE7B,GACF,CA2CD,SAASC,EAAQj/B,GAEf,IAAImB,EAAOnB,GAAOA,EAAImB,KACtB,GAAInB,IAAuB,iBAARA,GAAmC,mBAARA,IAAuC,mBAATmB,EAC1E,OAAO,WACLA,EAAKO,MAAM1B,EAAKyB,WAGrB,CAED,SAAS48B,EAAsB/8B,EAAM49B,GAEnC,IAAI5C,GAAS,EACb,SAAS6C,EAAQj/B,GACXo8B,IAGJA,GAAS,EACTyB,EAASp9B,OAAOW,EAAMpB,GACvB,CAED,SAASk/B,EAAUl/B,GACbo8B,IAGJA,GAAS,EACTyB,EAASr9B,QAAQY,EAAMpB,GACxB,CAMD,IAAI+E,EAASpB,GAJb,WACEq7B,EAASE,EAAWD,EACrB,IAGqB,UAAlBl6B,EAAOo6B,QACTF,EAAQl6B,EAAO/E,MAElB,CAED,SAAS2D,EAASk7B,EAAM7+B,GACtB,IAAI6U,EAAM,CAAA,EACV,IACEA,EAAI7U,MAAQ6+B,EAAK7+B,GACjB6U,EAAIsqB,OAAS,SAId,CAHC,MAAOvzB,GACPiJ,EAAIsqB,OAAS,QACbtqB,EAAI7U,MAAQ4L,CACb,CACD,OAAOiJ,CACR,QAhMa6oB,GAAG18B,EAkBjBA,EAAQiB,UAAUm9B,QAAU,SAAUlS,GACpC,GAAwB,mBAAbA,EACT,OAAO7rB,KAET,IAAI6mB,EAAI7mB,KAAKW,YACb,OAAOX,KAAKJ,MAEZ,SAAiBjB,GAIf,OAAOkoB,EAAE1nB,QAAQ0sB,KAAYjsB,MAH7B,WACE,OAAOjB,CACR,GAEF,IACD,SAAgBq/B,GAId,OAAOnX,EAAE1nB,QAAQ0sB,KAAYjsB,MAH7B,WACE,MAAMo+B,CACP,GAEF,KAEHr+B,EAAQiB,UAAUkH,MAAQ,SAAUo1B,GAClC,OAAOl9B,KAAKJ,KAAK,KAAMs9B,IAEzBv9B,EAAQiB,UAAUhB,KAAO,SAAUq9B,EAAaC,GAC9C,GAA2B,mBAAhBD,GAA8Bj9B,KAAK+D,QAAU24B,GAChC,mBAAfQ,GAA6Bl9B,KAAK+D,QAAU04B,EACnD,OAAOz8B,KAET,IAAIg9B,EAAU,IAAIh9B,KAAKW,YAAY47B,GAcnC,OAPIv8B,KAAK+D,QAAU44B,EAEjBY,EAAOP,EADQh9B,KAAK+D,QAAU24B,EAAYO,EAAcC,EAC9Bl9B,KAAK68B,SAE/B78B,KAAK2Y,MAAMtT,KAAK,IAAI03B,EAAUC,EAASC,EAAaC,IAG/CF,GAaTD,EAAUn8B,UAAUu8B,cAAgB,SAAUx+B,GAC5C69B,EAASr9B,QAAQa,KAAKg9B,QAASr+B,IAEjCo+B,EAAUn8B,UAAUw8B,mBAAqB,SAAUz+B,GACjD4+B,EAAOv9B,KAAKg9B,QAASh9B,KAAKi9B,YAAat+B,IAEzCo+B,EAAUn8B,UAAUy8B,aAAe,SAAU1+B,GAC3C69B,EAASp9B,OAAOY,KAAKg9B,QAASr+B,IAEhCo+B,EAAUn8B,UAAU08B,kBAAoB,SAAU3+B,GAChD4+B,EAAOv9B,KAAKg9B,QAASh9B,KAAKk9B,WAAYv+B,IAmBxC69B,EAASr9B,QAAU,SAAUY,EAAMpB,GACjC,IAAI+E,EAASpB,EAASo7B,EAAS/+B,GAC/B,GAAsB,UAAlB+E,EAAOo6B,OACT,OAAOtB,EAASp9B,OAAOW,EAAM2D,EAAO/E,OAEtC,IAAIg/B,EAAWj6B,EAAO/E,MAEtB,GAAIg/B,EACFb,EAAsB/8B,EAAM49B,OACvB,CACL59B,EAAKgE,MAAQ24B,EACb38B,EAAK88B,QAAUl+B,EAGf,IAFA,IAAIkH,GAAK,EACLqD,EAAMnJ,EAAK4Y,MAAM/S,SACZC,EAAIqD,GACXnJ,EAAK4Y,MAAM9S,GAAGs3B,cAAcx+B,EAE/B,CACD,OAAOoB,GAETy8B,EAASp9B,OAAS,SAAUW,EAAMN,GAChCM,EAAKgE,MAAQ04B,EACb18B,EAAK88B,QAAUp9B,EAaf,IAFA,IAAIoG,GAAK,EACLqD,EAAMnJ,EAAK4Y,MAAM/S,SACZC,EAAIqD,GACXnJ,EAAK4Y,MAAM9S,GAAGw3B,aAAa59B,GAE7B,OAAOM,GAsDTJ,EAAQR,QACR,SAAiBR,GACf,OAAIA,aAAiBqB,KACZrB,EAEF69B,EAASr9B,QAAQ,IAAIa,KAAKu8B,GAAW59B,EAC7C,EAEDgB,EAAQP,OACR,SAAgB4+B,GACd,IAAIhB,EAAU,IAAIh9B,KAAKu8B,GACvB,OAAOC,EAASp9B,OAAO49B,EAASgB,EACjC,EAEDr+B,EAAQs+B,IACR,SAAax4B,GACX,IAAI1F,EAAOC,KACX,GAAiD,mBAA7CpB,OAAOgC,UAAU8K,SAASlJ,KAAKiD,GACjC,OAAOzF,KAAKZ,OAAO,IAAIqF,UAAU,qBAGnC,IAAIyE,EAAMzD,EAASG,OACfm1B,GAAS,EACb,IAAK7xB,EACH,OAAOlJ,KAAKb,QAAQ,IAQtB,IALA,IAAI6D,EAAS,IAAI8F,MAAMI,GACnBg1B,EAAW,EACXr4B,GAAK,EACLm3B,EAAU,IAAIh9B,KAAKu8B,KAEd12B,EAAIqD,GACXi1B,EAAY14B,EAASI,GAAIA,GAE3B,OAAOm3B,EACP,SAASmB,EAAYx/B,EAAOkH,GAC1B9F,EAAKZ,QAAQR,GAAOiB,MAMpB,SAAwBw+B,GACtBp7B,EAAO6C,GAAKu4B,IACNF,IAAah1B,GAAQ6xB,IACzBA,GAAS,EACTyB,EAASr9B,QAAQ69B,EAASh6B,GAE7B,IAZwC,SAAUvD,GAC5Cs7B,IACHA,GAAS,EACTyB,EAASp9B,OAAO49B,EAASv9B,GAE5B,GAQF,CACF,EAEDE,EAAQ0+B,KACR,SAAc54B,GACZ,IAAI1F,EAAOC,KACX,GAAiD,mBAA7CpB,OAAOgC,UAAU8K,SAASlJ,KAAKiD,GACjC,OAAOzF,KAAKZ,OAAO,IAAIqF,UAAU,qBAGnC,IAAIyE,EAAMzD,EAASG,OACfm1B,GAAS,EACb,IAAK7xB,EACH,OAAOlJ,KAAKb,QAAQ,IAMtB,IAHA,IAOkBR,EAPdkH,GAAK,EACLm3B,EAAU,IAAIh9B,KAAKu8B,KAEd12B,EAAIqD,GAIKvK,EAHP8G,EAASI,GAIlB9F,EAAKZ,QAAQR,GAAOiB,MAAK,SAAU0+B,GAC5BvD,IACHA,GAAS,EACTyB,EAASr9B,QAAQ69B,EAASsB,GAE7B,IAAE,SAAU7+B,GACNs7B,IACHA,GAAS,EACTyB,EAASp9B,OAAO49B,EAASv9B,GAE5B,IAZH,OAAOu9B,CAcT,KDhSiBl8B,GAMjB,OAAAy9B,GAAiB,CACb5+B,QAAS86B,+CGdb,IAAInC,EAAUx3B,GACVs3B,EAASzF,KACTyH,EAAcxG,GACd2K,EAAWlJ,GAkEf,SAASmJ,EAASlF,GACd,OAAOA,CACV,CAQD,SAASmF,EAAkBvuB,EAAKzD,GAC5B,IAAK,IAAI5G,EAAI,EAAGA,EAAIqK,EAAItK,SAAUC,EAC9B4G,EAAM5G,GAAyB,IAApBqK,EAAI/G,WAAWtD,GAE9B,OAAO4G,CACV,CA/CDjM,EAAAk+B,QAAkB,SAASC,EAAMp8B,GAC7B/B,EAAQo+B,aAAa,QAErB,IAEI,OAAO,IAAIlG,KAAK,CAACiG,GAAO,CACpBp8B,KAAMA,GAiBb,CAdD,MAAOgI,GAEH,IAEI,IACIouB,EAAU,IADA54B,KAAK64B,aAAe74B,KAAK84B,mBAAqB94B,KAAK+4B,gBAAkB/4B,KAAKg5B,eAGxF,OADAJ,EAAQK,OAAO2F,GACRhG,EAAQM,QAAQ12B,EAM1B,CAJD,MAAOgI,GAGH,MAAM,IAAIvG,MAAM,kCACnB,CACJ,CAGL,EA4BA,IAAI66B,EAAsB,CAUtBC,iBAAkB,SAASryB,EAAOlK,EAAMunB,GACpC,IAAIpmB,EAAS,GAAIqb,EAAI,EAAG7V,EAAMuD,EAAM7G,OAEpC,GAAIsD,GAAO4gB,EACP,OAAO5a,OAAOsC,aAAarR,MAAM,KAAMsM,GAE3C,KAAOsS,EAAI7V,GACM,UAAT3G,GAA6B,eAATA,EACpBmB,EAAO2B,KAAK6J,OAAOsC,aAAarR,MAAM,KAAMsM,EAAMxF,MAAM8X,EAAG9T,KAAK4F,IAAIkO,EAAI+K,EAAO5gB,MAG/ExF,EAAO2B,KAAK6J,OAAOsC,aAAarR,MAAM,KAAMsM,EAAM+H,SAASuK,EAAG9T,KAAK4F,IAAIkO,EAAI+K,EAAO5gB,MAEtF6V,GAAK+K,EAET,OAAOpmB,EAAOiG,KAAK,GACtB,EAQDo1B,gBAAiB,SAAStyB,GAEtB,IADA,IAAIuyB,EAAY,GACRn5B,EAAI,EAAGA,EAAI4G,EAAM7G,OAAQC,IAC7Bm5B,GAAa9vB,OAAOsC,aAAa/E,EAAM5G,IAE3C,OAAOm5B,CACV,EACDC,eAAiB,CAIbzG,WAAa,WACT,IACI,OAAOF,EAAQE,YAA4E,IAA9DtpB,OAAOsC,aAAarR,MAAM,KAAM,IAAI0I,WAAW,IAAIjD,MAGnF,CAFC,MAAO2E,GACL,OAAO,CACV,CACJ,CANY,GAUbguB,WAAa,WACT,IACI,OAAOD,EAAQC,YAAqF,IAAvErpB,OAAOsC,aAAarR,MAAM,KAAMi6B,EAAYG,YAAY,IAAI30B,MAG5F,CAFC,MAAO2E,GACL,OAAO,CACV,CACJ,CANY,KAerB,SAAS20B,EAAkBzyB,GAWvB,IAAIqd,EAAQ,MACRvnB,EAAO/B,EAAQu5B,UAAUttB,GACzB0yB,GAAc,EAOlB,GANa,eAAT58B,EACA48B,EAAcN,EAAoBI,eAAezG,WACjC,eAATj2B,IACP48B,EAAcN,EAAoBI,eAAe1G,YAGjD4G,EACA,KAAOrV,EAAQ,GACX,IACI,OAAO+U,EAAoBC,iBAAiBryB,EAAOlK,EAAMunB,EAG5D,CAFC,MAAOvf,GACLuf,EAAQ7e,KAAKM,MAAMue,EAAQ,EAC9B,CAMT,OAAO+U,EAAoBE,gBAAgBtyB,EAC9C,CAWD,SAAS2yB,EAAqBC,EAAWC,GACrC,IAAK,IAAIz5B,EAAI,EAAGA,EAAIw5B,EAAUz5B,OAAQC,IAClCy5B,EAAQz5B,GAAKw5B,EAAUx5B,GAE3B,OAAOy5B,CACV,CAdD9+B,EAAA++B,kBAA4BL,EAiB5B,IAAI1N,EAAY,CAAA,EAGhBA,EAAkB,OAAI,CAClB1kB,OAAU0xB,EACV/xB,MAAS,SAAS6sB,GACd,OAAOmF,EAAkBnF,EAAO,IAAIxwB,MAAMwwB,EAAM1zB,QACnD,EACDyyB,YAAe,SAASiB,GACpB,OAAO9H,EAAkB,OAAc,WAAE8H,GAAOpvB,MACnD,EACDsuB,WAAc,SAASc,GACnB,OAAOmF,EAAkBnF,EAAO,IAAIzwB,WAAWywB,EAAM1zB,QACxD,EACD2yB,WAAc,SAASe,GACnB,OAAOmF,EAAkBnF,EAAOc,EAAYG,YAAYjB,EAAM1zB,QACjE,GAIL4rB,EAAiB,MAAI,CACjB1kB,OAAUoyB,EACVzyB,MAAS+xB,EACTnG,YAAe,SAASiB,GACpB,OAAO,IAAKzwB,WAAWywB,GAAQpvB,MAClC,EACDsuB,WAAc,SAASc,GACnB,OAAO,IAAIzwB,WAAWywB,EACzB,EACDf,WAAc,SAASe,GACnB,OAAOc,EAAYE,cAAchB,EACpC,GAIL9H,EAAuB,YAAI,CACvB1kB,OAAU,SAASwsB,GACf,OAAO4F,EAAkB,IAAIr2B,WAAWywB,GAC3C,EACD7sB,MAAS,SAAS6sB,GACd,OAAO8F,EAAqB,IAAIv2B,WAAWywB,GAAQ,IAAIxwB,MAAMwwB,EAAM3sB,YACtE,EACD0rB,YAAemG,EACfhG,WAAc,SAASc,GACnB,OAAO,IAAIzwB,WAAWywB,EACzB,EACDf,WAAc,SAASe,GACnB,OAAOc,EAAYE,cAAc,IAAIzxB,WAAWywB,GACnD,GAIL9H,EAAsB,WAAI,CACtB1kB,OAAUoyB,EACVzyB,MAAS,SAAS6sB,GACd,OAAO8F,EAAqB9F,EAAO,IAAIxwB,MAAMwwB,EAAM1zB,QACtD,EACDyyB,YAAe,SAASiB,GACpB,OAAOA,EAAMpvB,MAChB,EACDsuB,WAAcgG,EACdjG,WAAc,SAASe,GACnB,OAAOc,EAAYE,cAAchB,EACpC,GAIL9H,EAAsB,WAAI,CACtB1kB,OAAUoyB,EACVzyB,MAAS,SAAS6sB,GACd,OAAO8F,EAAqB9F,EAAO,IAAIxwB,MAAMwwB,EAAM1zB,QACtD,EACDyyB,YAAe,SAASiB,GACpB,OAAO9H,EAAsB,WAAc,WAAE8H,GAAOpvB,MACvD,EACDsuB,WAAc,SAASc,GACnB,OAAO8F,EAAqB9F,EAAO,IAAIzwB,WAAWywB,EAAM1zB,QAC3D,EACD2yB,WAAciG,GAWlBh+B,EAAAg/B,YAAsB,SAASC,EAAYnG,GAMvC,GALKA,IAGDA,EAAQ,KAEPmG,EACD,OAAOnG,EAEX94B,EAAQo+B,aAAaa,GACrB,IAAIC,EAAYl/B,EAAQu5B,UAAUT,GAElC,OADa9H,EAAUkO,GAAWD,GAAYnG,EAElD,EAUA94B,EAAkBrB,QAAA,SAASwgC,GAGvB,IAFA,IAAI71B,EAAQ61B,EAAKhc,MAAM,KACnBjgB,EAAS,GACJob,EAAQ,EAAGA,EAAQhV,EAAMlE,OAAQkZ,IAAS,CAC/C,IAAI6f,EAAO70B,EAAMgV,GAEJ,MAAT6f,GAA0B,KAATA,GAAyB,IAAV7f,GAAeA,IAAUhV,EAAMlE,OAAS,IAExD,OAAT+4B,EACPj7B,EAAOmD,MAEPnD,EAAO2B,KAAKs5B,GAEnB,CACD,OAAOj7B,EAAOiG,KAAK,IACvB,EAQAnJ,EAAoBu5B,UAAA,SAAST,GACzB,MAAqB,iBAAVA,EACA,SAEmC,mBAA1C16B,OAAOgC,UAAU8K,SAASlJ,KAAK82B,GACxB,QAEPhB,EAAQC,YAAc6B,EAAYpoB,SAASsnB,GACpC,aAEPhB,EAAQE,YAAcc,aAAiBzwB,WAChC,aAEPyvB,EAAQD,aAAeiB,aAAiB9sB,YACjC,mBADX,CAGJ,EAOAhM,EAAuBo+B,aAAA,SAASr8B,GAE5B,IADgB+1B,EAAQ/1B,EAAKyL,eAEzB,MAAM,IAAIhK,MAAMzB,EAAO,qCAE/B,EAEA/B,EAAAo/B,iBAA2B,MAC3Bp/B,EAA2Bq/B,kBAAC,EAO5Br/B,EAAiBs/B,OAAA,SAAS5vB,GACtB,IACIjH,EAAMpD,EADNiL,EAAM,GAEV,IAAKjL,EAAI,EAAGA,GAAKqK,GAAO,IAAItK,OAAQC,IAEhCiL,GAAO,QADP7H,EAAOiH,EAAI/G,WAAWtD,IACC,GAAK,IAAM,IAAMoD,EAAKyC,SAAS,IAAIoV,cAE9D,OAAOhQ,CACX,EAOAtQ,EAAAu/B,MAAgB,SAASlU,EAAU5rB,EAAMF,GACrCu7B,cAAa,WACTzP,EAAS1rB,MAAMJ,GAAQ,KAAME,GAAQ,GAC7C,GACA,EAQAO,EAAA8lB,SAAmB,SAAUrgB,EAAMqZ,GAC/B,IAAI0gB,EAAM,aACVA,EAAIp/B,UAAY0e,EAAU1e,UAC1BqF,EAAKrF,UAAY,IAAIo/B,CACzB,EAQAx/B,EAAAy/B,OAAiB,WACb,IAAiBp6B,EAAGq6B,EAAhBx8B,EAAS,CAAA,EACb,IAAKmC,EAAI,EAAGA,EAAI3F,UAAU0F,OAAQC,IAC9B,IAAKq6B,KAAQhgC,UAAU2F,GACfjH,OAAOgC,UAAUM,eAAesB,KAAKtC,UAAU2F,GAAIq6B,SAAiC,IAAjBx8B,EAAOw8B,KAC1Ex8B,EAAOw8B,GAAQhgC,UAAU2F,GAAGq6B,IAIxC,OAAOx8B,CACX,EAWAlD,EAAyB2/B,eAAA,SAASj6B,EAAMk6B,EAAWC,EAAUC,EAAyBC,GAyBlF,OAtBchC,EAAS5+B,QAAQR,QAAQihC,GAAWxgC,MAAK,SAAS0N,GAK5D,OAFagrB,EAAQG,OAASnrB,aAAgBorB,OAA8F,IAAtF,CAAC,gBAAiB,iBAAiB7pB,QAAQjQ,OAAOgC,UAAU8K,SAASlJ,KAAK8K,MAE5F,oBAAfkzB,WACV,IAAIjC,EAAS5+B,SAAQ,SAAUR,EAASC,GAC3C,IAAIqhC,EAAS,IAAID,WAEjBC,EAAOC,OAAS,SAASn2B,GACrBpL,EAAQoL,EAAEuI,OAAOpP,OACrC,EACgB+8B,EAAOtR,QAAU,SAAS5kB,GACtBnL,EAAOmL,EAAEuI,OAAOrT,MACpC,EACgBghC,EAAOE,kBAAkBrzB,EACzC,IAEmBA,CAEnB,IAEmB1N,MAAK,SAAS0N,GACzB,IA1ce4C,EA0cX0wB,EAAWpgC,EAAQu5B,UAAUzsB,GAEjC,OAAKszB,GAOY,gBAAbA,EACAtzB,EAAO9M,EAAQg/B,YAAY,aAAclyB,GACrB,WAAbszB,IACHL,EACAjzB,EAAO8qB,EAAO4B,OAAO1sB,GAEhB+yB,IAE2B,IAA5BC,IAGAhzB,EAvdTmxB,EAPYvuB,EA8dkB5C,EA5djCgrB,EAAQE,WACC,IAAI3vB,WAAWqH,EAAItK,QAEnB,IAAIkD,MAAMoH,EAAItK,WA6dhB0H,GArBIixB,EAAS5+B,QAAQP,OACpB,IAAI4E,MAAM,2BAA6BkC,EAA7B,8EAqB1B,YCneA,SAAS26B,GAAc36B,GAEnBlG,KAAKkG,KAAOA,GAAQ,UAEpBlG,KAAK8gC,WAAa,GAElB9gC,KAAK+gC,eAAiB,KAEtB/gC,KAAKghC,gBAAkB,GAEvBhhC,KAAKwqB,UAAW,EAEhBxqB,KAAKihC,YAAa,EAElBjhC,KAAKkhC,UAAW,EAEhBlhC,KAAKmhC,WAAa,CACd7zB,KAAO,GACP/D,IAAM,GACN9J,MAAQ,IAGZO,KAAKohC,SAAW,IACpB,ECvCC,SAAU54B,EAAQnI,GAGf,IAAImI,EAAO8yB,aAAX,CAIA,IAII+F,EA6HIC,EAZAvF,EArBAwF,EACAC,EAjGJC,EAAa,EACbC,EAAgB,CAAA,EAChBC,GAAwB,EACxBC,EAAMp5B,EAAO0yB,SAoJb2G,EAAWjjC,OAAOkE,gBAAkBlE,OAAOkE,eAAe0F,GAC9Dq5B,EAAWA,GAAYA,EAASrpB,WAAaqpB,EAAWr5B,EAGf,qBAArC,CAAA,EAAGkD,SAASlJ,KAAKgG,EAAOgS,SApFxB6mB,EAAoB,SAAS/5B,GACzB+qB,IAAiB,WAAcyP,EAAax6B,EAAU,MAI9D,WAGI,GAAIkB,EAAO2zB,cAAgB3zB,EAAOu5B,cAAe,CAC7C,IAAIC,GAA4B,EAC5BC,EAAez5B,EAAOyzB,UAM1B,OALAzzB,EAAOyzB,UAAY,WACf+F,GAA4B,GAEhCx5B,EAAO2zB,YAAY,GAAI,KACvB3zB,EAAOyzB,UAAYgG,EACZD,CACV,CACJ,CAsEUE,GAIA15B,EAAO+yB,iBA9CVQ,EAAU,IAAIR,gBACVS,MAAMC,UAAY,SAASzM,GAE/BsS,EADatS,EAAMliB,OAIvB+zB,EAAoB,SAAS/5B,GACzBy0B,EAAQG,MAAMC,YAAY70B,KA2CvBs6B,GAAO,uBAAwBA,EAAIpG,cAAc,WAtCpD8F,EAAOM,EAAI/F,gBACfwF,EAAoB,SAAS/5B,GAGzB,IAAI66B,EAASP,EAAIpG,cAAc,UAC/B2G,EAAOzG,mBAAqB,WACxBoG,EAAax6B,GACb66B,EAAOzG,mBAAqB,KAC5B4F,EAAK1F,YAAYuG,GACjBA,EAAS,MAEbb,EAAKxF,YAAYqG,KAKrBd,EAAoB,SAAS/5B,GACzBkR,WAAWspB,EAAc,EAAGx6B,KAlD5Bi6B,EAAgB,gBAAkBt2B,KAAKm3B,SAAW,IAClDZ,EAAkB,SAAShS,GACvBA,EAAMwC,SAAWxpB,GACK,iBAAfgnB,EAAMliB,MACyB,IAAtCkiB,EAAMliB,KAAKuB,QAAQ0yB,IACnBO,GAActS,EAAMliB,KAAKrG,MAAMs6B,EAAc37B,UAIjD4C,EAAO65B,iBACP75B,EAAO65B,iBAAiB,UAAWb,GAAiB,GAEpDh5B,EAAO85B,YAAY,YAAad,GAGpCH,EAAoB,SAAS/5B,GACzBkB,EAAO2zB,YAAYoF,EAAgBj6B,EAAQ,OAgEnDu6B,EAASvG,aA1KT,SAAsBzP,GAEI,mBAAbA,IACTA,EAAW,IAAIvjB,SAAS,GAAKujB,IAI/B,IADA,IAAI5rB,EAAO,IAAI6I,MAAM5I,UAAU0F,OAAS,GAC/BC,EAAI,EAAGA,EAAI5F,EAAK2F,OAAQC,IAC7B5F,EAAK4F,GAAK3F,UAAU2F,EAAI,GAG5B,IAAIy2B,EAAO,CAAEzQ,SAAUA,EAAU5rB,KAAMA,GAGvC,OAFAyhC,EAAcD,GAAcnF,EAC5B+E,EAAkBI,GACXA,GACR,EA4JDI,EAASU,eAAiBA,CAnLzB,CAyBD,SAASA,EAAej7B,UACbo6B,EAAcp6B,EACxB,CAwBD,SAASw6B,EAAax6B,GAGlB,GAAIq6B,EAGAnpB,WAAWspB,EAAc,EAAGx6B,OACzB,CACH,IAAIg1B,EAAOoF,EAAcp6B,GACzB,GAAIg1B,EAAM,CACNqF,GAAwB,EACxB,KAjCZ,SAAarF,GACT,IAAIzQ,EAAWyQ,EAAKzQ,SAChB5rB,EAAOq8B,EAAKr8B,KAChB,OAAQA,EAAK2F,QACb,KAAK,EACDimB,IACA,MACJ,KAAK,EACDA,EAAS5rB,EAAK,IACd,MACJ,KAAK,EACD4rB,EAAS5rB,EAAK,GAAIA,EAAK,IACvB,MACJ,KAAK,EACD4rB,EAAS5rB,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAChC,MACJ,QACI4rB,EAAS1rB,WAnDrB,EAmDsCF,GAGjC,CAcegZ,CAAIqjB,EAIP,CAHS,QACNiG,EAAej7B,GACfq6B,GAAwB,CAC3B,CACJ,CACJ,CACJ,EA3EL,CAyLkB,oBAAT5hC,KAAuDC,EAAgBD,MDhJnEyiC,GAAC5hC,UAAY,CAKtByE,KAAO,SAAUykB,GACb9pB,KAAK6Z,KAAK,OAAQiQ,EACrB,EAKDvgB,IAAM,WACF,GAAIvJ,KAAKihC,WACL,OAAO,EAGXjhC,KAAK0xB,QACL,IACI1xB,KAAK6Z,KAAK,OACV7Z,KAAKyiC,UACLziC,KAAKihC,YAAa,CAGrB,CAFC,MAAO12B,GACLvK,KAAK6Z,KAAK,QAAStP,EACtB,CACD,OAAO,CACV,EAMD9K,MAAQ,SAAU8K,GACd,OAAIvK,KAAKihC,aAINjhC,KAAKwqB,SACJxqB,KAAK+gC,eAAiBx2B,GAEtBvK,KAAKihC,YAAa,EAElBjhC,KAAK6Z,KAAK,QAAStP,GAKhBvK,KAAKohC,UACJphC,KAAKohC,SAAS3hC,MAAM8K,GAGxBvK,KAAKyiC,YAEF,EACV,EAODlpB,GAAK,SAAUrT,EAAM4W,GAEjB,OADA9c,KAAKmhC,WAAWj7B,GAAMb,KAAKyX,GACpB9c,IACV,EAIDyiC,QAAU,WACNziC,KAAK8gC,WAAa9gC,KAAK+gC,eAAiB/gC,KAAKghC,gBAAkB,KAC/DhhC,KAAKmhC,WAAa,EACrB,EAMDtnB,KAAO,SAAU3T,EAAM3G,GACnB,GAAIS,KAAKmhC,WAAWj7B,GAChB,IAAI,IAAIL,EAAI,EAAGA,EAAI7F,KAAKmhC,WAAWj7B,GAAMN,OAAQC,IAC7C7F,KAAKmhC,WAAWj7B,GAAML,GAAGrD,KAAKxC,KAAMT,EAG/C,EAMDgvB,KAAO,SAAU5pB,GACb,OAAOA,EAAK+9B,iBAAiB1iC,KAChC,EASD0iC,iBAAmB,SAAUtB,GACzB,GAAIphC,KAAKkhC,SACL,MAAM,IAAIl9B,MAAM,eAAiBhE,KAAO,4BAI5CA,KAAK8gC,WAAaM,EAASN,WAE3B9gC,KAAK2iC,kBACL3iC,KAAKohC,SAAYA,EACjB,IAAIrhC,EAAOC,KAUX,OATAohC,EAAS7nB,GAAG,QAAQ,SAAUuQ,GAC1B/pB,EAAK6iC,aAAa9Y,EAC9B,IACQsX,EAAS7nB,GAAG,OAAO,WACfxZ,EAAKwJ,KACjB,IACQ63B,EAAS7nB,GAAG,SAAS,SAAUhP,GAC3BxK,EAAKN,MAAM8K,EACvB,IACevK,IACV,EAKDsvB,MAAQ,WACJ,OAAGtvB,KAAKwqB,WAAYxqB,KAAKihC,aAGzBjhC,KAAKwqB,UAAW,EAEbxqB,KAAKohC,UACJphC,KAAKohC,SAAS9R,SAEX,EACV,EAKDG,OAAS,WACL,IAAIzvB,KAAKwqB,UAAYxqB,KAAKihC,WACtB,OAAO,EAEXjhC,KAAKwqB,UAAW,EAGhB,IAAIqY,GAAY,EAShB,OARG7iC,KAAK+gC,iBACJ/gC,KAAKP,MAAMO,KAAK+gC,gBAChB8B,GAAY,GAEb7iC,KAAKohC,UACJphC,KAAKohC,SAAS3R,UAGVoT,CACX,EAIDnR,MAAQ,WAAc,EAKtBkR,aAAe,SAAS9Y,GACpB9pB,KAAKqF,KAAKykB,EACb,EAODgZ,eAAiB,SAAUpkC,EAAKC,GAG5B,OAFAqB,KAAKghC,gBAAgBtiC,GAAOC,EAC5BqB,KAAK2iC,kBACE3iC,IACV,EAID2iC,gBAAkB,WACd,IAAI,IAAIjkC,KAAOsB,KAAKghC,gBACXpiC,OAAOgC,UAAUM,eAAesB,KAAKxC,KAAKghC,gBAAiBtiC,KAGhEsB,KAAK8gC,WAAWpiC,GAAOsB,KAAKghC,gBAAgBtiC,GAEnD,EAMDqkC,KAAM,WACF,GAAI/iC,KAAKkhC,SACL,MAAM,IAAIl9B,MAAM,eAAiBhE,KAAO,4BAE5CA,KAAKkhC,UAAW,EACZlhC,KAAKohC,UACLphC,KAAKohC,SAAS2B,MAErB,EAMDr3B,SAAW,WACP,IAAIs3B,EAAK,UAAYhjC,KAAKkG,KAC1B,OAAIlG,KAAKohC,SACEphC,KAAKohC,SAAW,OAAS4B,EAEzBA,CAEd,GAGL,IAAAC,GAAiBpC,gBEtPjB,IAdA,IAAI1H,EAAQr4B,KACRw3B,EAAU3F,GACVyH,EAAcxG,GACdiN,EAAgBxL,GAUhB6N,EAAW,IAAIp6B,MAAM,KAChBjD,EAAE,EAAGA,EAAE,IAAKA,IACjBq9B,EAASr9B,GAAMA,GAAK,IAAM,EAAIA,GAAK,IAAM,EAAIA,GAAK,IAAM,EAAIA,GAAK,IAAM,EAAIA,GAAK,IAAM,EAAI,EAE9Fq9B,EAAS,KAAKA,EAAS,KAAK,EAkL5B,SAASC,IACLtC,EAAcr+B,KAAKxC,KAAM,gBAEzBA,KAAKojC,SAAW,IACnB,CA2DD,SAASC,IACLxC,EAAcr+B,KAAKxC,KAAM,eAC5B,CA9FDQ,EAAA8iC,WAAqB,SAAoBpzB,GACrC,OAAIooB,EAAQC,WACD6B,EAAYE,cAAcpqB,EAAK,SApJ7B,SAAUA,GACvB,IAAIf,EAAK/D,EAAGm4B,EAAIC,EAAO39B,EAAG49B,EAAUvzB,EAAItK,OAAQ89B,EAAU,EAG1D,IAAKF,EAAQ,EAAGA,EAAQC,EAASD,IAER,QAAZ,OADTp4B,EAAI8E,EAAI/G,WAAWq6B,MACaA,EAAM,EAAIC,GAEhB,QAAZ,OADVF,EAAKrzB,EAAI/G,WAAWq6B,EAAM,OAEtBp4B,EAAI,OAAYA,EAAI,OAAW,KAAOm4B,EAAK,OAC3CC,KAGRE,GAAWt4B,EAAI,IAAO,EAAIA,EAAI,KAAQ,EAAIA,EAAI,MAAU,EAAI,EAWhE,IANI+D,EADAmpB,EAAQE,WACF,IAAI3vB,WAAW66B,GAEf,IAAI56B,MAAM46B,GAIf79B,EAAE,EAAG29B,EAAQ,EAAG39B,EAAI69B,EAASF,IAET,QAAZ,OADTp4B,EAAI8E,EAAI/G,WAAWq6B,MACaA,EAAM,EAAIC,GAEhB,QAAZ,OADVF,EAAKrzB,EAAI/G,WAAWq6B,EAAM,OAEtBp4B,EAAI,OAAYA,EAAI,OAAW,KAAOm4B,EAAK,OAC3CC,KAGJp4B,EAAI,IAEJ+D,EAAItJ,KAAOuF,EACJA,EAAI,MAEX+D,EAAItJ,KAAO,IAAQuF,IAAM,EACzB+D,EAAItJ,KAAO,IAAY,GAAJuF,GACZA,EAAI,OAEX+D,EAAItJ,KAAO,IAAQuF,IAAM,GACzB+D,EAAItJ,KAAO,IAAQuF,IAAM,EAAI,GAC7B+D,EAAItJ,KAAO,IAAY,GAAJuF,IAGnB+D,EAAItJ,KAAO,IAAQuF,IAAM,GACzB+D,EAAItJ,KAAO,IAAQuF,IAAM,GAAK,GAC9B+D,EAAItJ,KAAO,IAAQuF,IAAM,EAAI,GAC7B+D,EAAItJ,KAAO,IAAY,GAAJuF,GAI3B,OAAO+D,CACX,CAgGWw0B,CAAWzzB,EACtB,EASA1P,EAAAojC,WAAqB,SAAoBz0B,GACrC,OAAImpB,EAAQC,WACDY,EAAMqG,YAAY,aAAcrwB,GAAKzD,SAAS,SA9E5C,SAAUyD,GACvB,IAAItJ,EAAG2N,EAAKpI,EAAGy4B,EACX36B,EAAMiG,EAAIvJ,OAKVk+B,EAAW,IAAIh7B,MAAU,EAAJI,GAEzB,IAAKsK,EAAI,EAAG3N,EAAE,EAAGA,EAAEqD,GAGf,IAFAkC,EAAI+D,EAAItJ,MAEA,IAAQi+B,EAAStwB,KAASpI,OAIlC,IAFAy4B,EAAQX,EAAS93B,IAEL,EAAK04B,EAAStwB,KAAS,MAAQ3N,GAAKg+B,EAAM,MAAtD,CAKA,IAFAz4B,GAAe,IAAVy4B,EAAc,GAAiB,IAAVA,EAAc,GAAO,EAExCA,EAAQ,GAAKh+B,EAAIqD,GACpBkC,EAAKA,GAAK,EAAiB,GAAX+D,EAAItJ,KACpBg+B,IAIAA,EAAQ,EAAKC,EAAStwB,KAAS,MAE/BpI,EAAI,MACJ04B,EAAStwB,KAASpI,GAElBA,GAAK,MACL04B,EAAStwB,KAAS,MAAWpI,GAAK,GAAM,KACxC04B,EAAStwB,KAAS,MAAc,KAAJpI,EAlBoC,CAgCxE,OATI04B,EAASl+B,SAAW4N,IACjBswB,EAAStvB,SACRsvB,EAAWA,EAAStvB,SAAS,EAAGhB,GAEhCswB,EAASl+B,OAAS4N,GAKnB2lB,EAAMoG,kBAAkBuE,EACnC,CAkCWC,CAFP50B,EAAMgqB,EAAMqG,YAAYlH,EAAQE,WAAa,aAAe,QAASrpB,GAGzE,EAWAgqB,EAAM7S,SAAS6c,EAAkBtC,GAKjCsC,EAAiBviC,UAAUgiC,aAAe,SAAU9Y,GAEhD,IAAIxc,EAAO6rB,EAAMqG,YAAYlH,EAAQE,WAAa,aAAe,QAAS1O,EAAMxc,MAGhF,GAAItN,KAAKojC,UAAYpjC,KAAKojC,SAASx9B,OAAQ,CACvC,GAAG0yB,EAAQE,WAAY,CACnB,IAAIwL,EAAe12B,GACnBA,EAAO,IAAIzE,WAAWm7B,EAAap+B,OAAS5F,KAAKojC,SAASx9B,SACrDsR,IAAIlX,KAAKojC,SAAU,GACxB91B,EAAK4J,IAAI8sB,EAAchkC,KAAKojC,SAASx9B,OACjD,MACY0H,EAAOtN,KAAKojC,SAAS/wB,OAAO/E,GAEhCtN,KAAKojC,SAAW,IACnB,CAED,IAAIa,EA3IS,SAAS90B,EAAK2E,GAC3B,IAAIvB,EAOJ,KALAuB,EAAMA,GAAO3E,EAAIvJ,QACPuJ,EAAIvJ,SAAUkO,EAAM3E,EAAIvJ,QAGlC2M,EAAMuB,EAAI,EACHvB,GAAO,GAA2B,MAAV,IAAXpD,EAAIoD,KAAyBA,IAIjD,OAAIA,EAAM,GAIE,IAARA,EAJkBuB,EAMdvB,EAAM2wB,EAAS/zB,EAAIoD,IAAQuB,EAAOvB,EAAMuB,CACpD,CAwHuBowB,CAAW52B,GAC1B62B,EAAa72B,EACb22B,IAAiB32B,EAAK1H,SAClB0yB,EAAQE,YACR2L,EAAa72B,EAAKkH,SAAS,EAAGyvB,GAC9BjkC,KAAKojC,SAAW91B,EAAKkH,SAASyvB,EAAc32B,EAAK1H,UAEjDu+B,EAAa72B,EAAKrG,MAAM,EAAGg9B,GAC3BjkC,KAAKojC,SAAW91B,EAAKrG,MAAMg9B,EAAc32B,EAAK1H,UAItD5F,KAAKqF,KAAK,CACNiI,KAAO9M,EAAQojC,WAAWO,GAC1BC,KAAOta,EAAMsa,MAErB,EAKAjB,EAAiBviC,UAAU8wB,MAAQ,WAC5B1xB,KAAKojC,UAAYpjC,KAAKojC,SAASx9B,SAC9B5F,KAAKqF,KAAK,CACNiI,KAAO9M,EAAQojC,WAAW5jC,KAAKojC,UAC/BgB,KAAO,CAAE,IAEbpkC,KAAKojC,SAAW,KAExB,EACA5iC,EAAA2iC,iBAA2BA,EAS3BhK,EAAM7S,SAAS+c,EAAkBxC,GAKjCwC,EAAiBziC,UAAUgiC,aAAe,SAAU9Y,GAChD9pB,KAAKqF,KAAK,CACNiI,KAAO9M,EAAQ8iC,WAAWxZ,EAAMxc,MAChC82B,KAAOta,EAAMsa,MAErB,EACA5jC,EAAA6iC,iBAA2BA,MChR3B,IAAIxC,GAAgB//B,GAChBq4B,GAAQxG,KAOZ,SAAS0R,GAAcC,GACnBzD,GAAcr+B,KAAKxC,KAAM,oBAAsBskC,GAC/CtkC,KAAKskC,SAAWA,CACpB,CACAnL,GAAM7S,SAAS+d,GAAexD,IAK9BwD,GAAczjC,UAAUgiC,aAAe,SAAU9Y,GAC7C9pB,KAAKqF,KAAK,CACNiI,KAAO6rB,GAAMqG,YAAYx/B,KAAKskC,SAAUxa,EAAMxc,MAC9C82B,KAAOta,EAAMsa,MAErB,EACA,UAAAG,GAAiBF,GCvBjB,IAAIlL,GAAQr4B,KACRujC,GAAgB1R,GAChBkO,GAAgBjN,GAChBwE,GAAS/C,KAETkJ,GAAWvK,GAEXwQ,GAA4B,KAChC,GAJczQ,GAIFmF,WACR,IACIsL,mCCVR,IAAIzc,EAAWjnB,KAA2BinB,SAa1C,SAASyc,EAA0BC,EAAQvc,EAASwc,GAChD3c,EAASvlB,KAAKxC,KAAMkoB,GACpBloB,KAAK2kC,QAAUF,EAEf,IAAI1kC,EAAOC,KACXykC,EAAOlrB,GAAG,QAAQ,SAAUjM,EAAM82B,GACzBrkC,EAAKsF,KAAKiI,IACXvN,EAAK4kC,QAAQrV,QAEdoV,GACCA,EAASN,EAErB,IACS7qB,GAAG,SAAS,SAAShP,GAClBxK,EAAK8Z,KAAK,QAAStP,EAC/B,IACSgP,GAAG,OAAO,WACPxZ,EAAKsF,KAAK,KACtB,GACC,QA9BWstB,KACNrM,SAASke,EAA2Bzc,GAgC1Cyc,EAA0B5jC,UAAUgpB,MAAQ,WACxC5pB,KAAK2kC,QAAQlV,QACjB,EAEAmV,GAAiBJ,ED7BmBpQ,EAG/B,CAFC,MAAM7pB,GAEP,CA+DL,SAASs6B,GAAWJ,EAAQK,GACxB,OAAO,IAAIvG,GAAS5+B,SAAQ,SAAUR,EAASC,GAC3C,IAAI2lC,EAAY,GACZC,EAAYP,EAAOQ,cACnBC,EAAaT,EAAOU,YACpBC,EAAWX,EAAOY,UACtBZ,EACKlrB,GAAG,QAAQ,SAAUjM,EAAM82B,GACxBW,EAAU1/B,KAAKiI,GACZw3B,GACCA,EAAeV,MAGtB7qB,GAAG,SAAS,SAASnZ,GAClB2kC,EAAY,GACZ3lC,EAAOgB,MAEVmZ,GAAG,OAAO,WACP,IACI,IAAI7V,EAtExB,SAA4BnB,EAAM+iC,EAASF,GACvC,OAAO7iC,GACP,IAAK,OACD,OAAO42B,GAAMuF,QAAQvF,GAAMqG,YAAY,cAAe8F,GAAUF,GACpE,IAAK,SACD,OAAOhN,GAAOiB,OAAOiM,GACzB,QACI,OAAOnM,GAAMqG,YAAYj9B,EAAM+iC,GAEtC,CA6DgCC,CAAmBL,EApDpD,SAAiB3iC,EAAMwiC,GACnB,IAAIl/B,EAAGiZ,EAAQ,EAAGhO,EAAM,KAAMqpB,EAAc,EAC5C,IAAIt0B,EAAI,EAAGA,EAAIk/B,EAAUn/B,OAAQC,IAC7Bs0B,GAAe4K,EAAUl/B,GAAGD,OAEhC,OAAOrD,GACP,IAAK,SACD,OAAOwiC,EAAUp7B,KAAK,IAC1B,IAAK,QACD,OAAOb,MAAMlI,UAAUyR,OAAOlS,MAAM,GAAI4kC,GAC5C,IAAK,aAED,IADAj0B,EAAM,IAAIjI,WAAWsxB,GACjBt0B,EAAI,EAAGA,EAAIk/B,EAAUn/B,OAAQC,IAC7BiL,EAAIoG,IAAI6tB,EAAUl/B,GAAIiZ,GACtBA,GAASimB,EAAUl/B,GAAGD,OAE1B,OAAOkL,EACX,IAAK,aACD,OAAOhF,EAAOuG,OAAO0yB,GACzB,QACI,MAAM,IAAI/gC,MAAM,8BAAiCzB,EAAO,KAE/D,CA8B+D8P,CAAO2yB,EAAWD,GAAYK,GAC1EjmC,EAAQuE,EAGX,CAFC,MAAO6G,GACLnL,EAAOmL,EACV,CACDw6B,EAAY,MAEftV,QACR,GACJ,CASD,SAAS+V,GAAaC,EAAQhG,EAAY2F,GACtC,IAAIM,EAAejG,EACnB,OAAOA,GACP,IAAK,OACL,IAAK,cACDiG,EAAe,aACf,MACJ,IAAK,SACDA,EAAe,SAInB,IAEI1lC,KAAKilC,cAAgBS,EAErB1lC,KAAKmlC,YAAc1F,EAEnBz/B,KAAKqlC,UAAYD,EACjBjM,GAAMyF,aAAa8G,GACnB1lC,KAAK2lC,QAAUF,EAAOlX,KAAK,IAAI8V,GAAcqB,IAG7CD,EAAO1C,MAIV,CAHC,MAAMx4B,GACJvK,KAAK2lC,QAAU,IAAI9E,GAAc,SACjC7gC,KAAK2lC,QAAQlmC,MAAM8K,EACtB,CACJ,CAEWq7B,GAAChlC,UAAY,CAOrBikC,WAAa,SAAUH,GACnB,OAAOG,GAAW7kC,KAAM0kC,EAC3B,EAODnrB,GAAK,SAAUssB,EAAK/lC,GAChB,IAAIC,EAAOC,KAWX,MATW,SAAR6lC,EACC7lC,KAAK2lC,QAAQpsB,GAAGssB,GAAK,SAAU/b,GAC3BhqB,EAAG0C,KAAKzC,EAAM+pB,EAAMxc,KAAMwc,EAAMsa,KACnC,IAEDpkC,KAAK2lC,QAAQpsB,GAAGssB,GAAK,WACjB1M,GAAM4G,MAAMjgC,EAAII,UAAWH,EAC9B,IAEEC,IACV,EAKDyvB,OAAS,WAEL,OADA0J,GAAM4G,MAAM//B,KAAK2lC,QAAQlW,OAAQ,GAAIzvB,KAAK2lC,SACnC3lC,IACV,EAKDsvB,MAAQ,WAEJ,OADAtvB,KAAK2lC,QAAQrW,QACNtvB,IACV,EAMD8lC,eAAiB,SAAUpB,GAEvB,GADAvL,GAAMyF,aAAa,cACM,eAArB5+B,KAAKmlC,YAKL,MAAM,IAAInhC,MAAMhE,KAAKmlC,YAAc,oCAGvC,OAAO,IAAIX,GAA0BxkC,KAAM,CACvCooB,WAAkC,eAArBpoB,KAAKmlC,aACnBT,EACN,GAIL,IAAAqB,GAAiBP,OEpNHQ,QAAG,EACHA,QAAG,EACNA,KAAG,EACOA,eAAG,EACZA,KAAG,KACIA,YAAG,KACIA,mBAAG,KACdA,QAAG,KACKA,gBAAG,KAC1BA,eAAyB,MCRrB7M,GAAQr4B,KACR+/B,GAAgBlO,GAWpB,SAASsT,GAAWC,GAChBrF,GAAcr+B,KAAKxC,KAAM,cACzB,IAAID,EAAOC,KACXA,KAAKmmC,aAAc,EACnBnmC,KAAK8e,MAAQ,EACb9e,KAAK8T,IAAM,EACX9T,KAAKsN,KAAO,KACZtN,KAAKuC,KAAO,GAEZvC,KAAKomC,gBAAiB,EAEtBF,EAAMtmC,MAAK,SAAU0N,GACjBvN,EAAKomC,aAAc,EACnBpmC,EAAKuN,KAAOA,EACZvN,EAAK+T,IAAMxG,GAAQA,EAAK1H,QAAU,EAClC7F,EAAKwC,KAAO42B,GAAMY,UAAUzsB,GACxBvN,EAAKyqB,UACLzqB,EAAKsmC,gBAEZ,IAAE,SAAU97B,GACTxK,EAAKN,MAAM8K,EACnB,GACA,CAEA4uB,GAAM7S,SAAS2f,GAAYpF,IAK3BoF,GAAWrlC,UAAU6hC,QAAU,WAC3B5B,GAAcjgC,UAAU6hC,QAAQjgC,KAAKxC,MACrCA,KAAKsN,KAAO,IAChB,EAKA24B,GAAWrlC,UAAU6uB,OAAS,WAC1B,QAAIoR,GAAcjgC,UAAU6uB,OAAOjtB,KAAKxC,SAInCA,KAAKomC,gBAAkBpmC,KAAKmmC,cAC7BnmC,KAAKomC,gBAAiB,EACtBjN,GAAM4G,MAAM//B,KAAKqmC,eAAgB,GAAIrmC,QAElC,EACX,EAKAimC,GAAWrlC,UAAUylC,eAAiB,WAClCrmC,KAAKomC,gBAAiB,EACnBpmC,KAAKwqB,UAAYxqB,KAAKihC,aAGzBjhC,KAAKsmC,QACDtmC,KAAKihC,aACL9H,GAAM4G,MAAM//B,KAAKqmC,eAAgB,GAAIrmC,MACrCA,KAAKomC,gBAAiB,GAE9B,EAKAH,GAAWrlC,UAAU0lC,MAAQ,WAEzB,GAAGtmC,KAAKwqB,UAAYxqB,KAAKihC,WACrB,OAAO,EAGX,IACI3zB,EAAO,KAAMi5B,EAAYt7B,KAAK4F,IAAI7Q,KAAK8T,IAAK9T,KAAK8e,MAjFhC,OAkFrB,GAAI9e,KAAK8e,OAAS9e,KAAK8T,IAEnB,OAAO9T,KAAKuJ,MAEZ,OAAOvJ,KAAKuC,MACZ,IAAK,SACD+K,EAAOtN,KAAKsN,KAAKsa,UAAU5nB,KAAK8e,MAAOynB,GACvC,MACJ,IAAK,aACDj5B,EAAOtN,KAAKsN,KAAKkH,SAASxU,KAAK8e,MAAOynB,GACtC,MACJ,IAAK,QACL,IAAK,aACDj5B,EAAOtN,KAAKsN,KAAKrG,MAAMjH,KAAK8e,MAAOynB,GAIvC,OADAvmC,KAAK8e,MAAQynB,EACNvmC,KAAKqF,KAAK,CACbiI,KAAOA,EACP82B,KAAO,CACHoC,QAAUxmC,KAAK8T,IAAM9T,KAAK8e,MAAQ9e,KAAK8T,IAAM,IAAM,IAInE,EAEA,IAAA2yB,GAAiBR,GCjHb9M,GAAQr4B,KAuBZ,IAAI4lC,GAfJ,WAGI,IAFA,IAAIt7B,EAAGu7B,EAAQ,GAEPl4B,EAAG,EAAGA,EAAI,IAAKA,IAAI,CACvBrD,EAAIqD,EACJ,IAAI,IAAIsQ,EAAG,EAAGA,EAAI,EAAGA,IACjB3T,EAAQ,EAAFA,EAAQ,WAAcA,IAAM,EAAOA,IAAM,EAEnDu7B,EAAMl4B,GAAKrD,CACd,CAED,OAAOu7B,CACX,CAGeC,GAuCf,IAAAC,GAAiB,SAAsBvN,EAAOwN,GAC1C,YAAqB,IAAVxN,GAA0BA,EAAM1zB,OAIF,WAA3BuzB,GAAMY,UAAUT,GAzClC,SAAewN,EAAK33B,EAAKjG,EAAKqJ,GAC1B,IAAIw0B,EAAIL,GAAUn9B,EAAMgJ,EAAMrJ,EAE9B49B,IAAc,EAEd,IAAK,IAAIjhC,EAAI0M,EAAK1M,EAAI0D,EAAK1D,IACvBihC,EAAOA,IAAQ,EAAKC,EAAmB,KAAhBD,EAAM33B,EAAItJ,KAGrC,OAAgB,EAARihC,CACZ,CAkCeE,CAAU,EAAJF,EAAOxN,EAAOA,EAAM1zB,OAAQ,GApBjD,SAAkBkhC,EAAK52B,EAAKhH,EAAKqJ,GAC7B,IAAIw0B,EAAIL,GAAUn9B,EAAMgJ,EAAMrJ,EAE9B49B,IAAc,EAEd,IAAK,IAAIjhC,EAAI0M,EAAK1M,EAAI0D,EAAK1D,IACvBihC,EAAOA,IAAQ,EAAKC,EAA8B,KAA3BD,EAAM52B,EAAI/G,WAAWtD,KAGhD,OAAgB,EAARihC,CACZ,CAYeG,CAAa,EAAJH,EAAOxN,EAAOA,EAAM1zB,OAAQ,GARrC,CAUf,EC1EIi7B,GAAgB//B,GAChBkmC,GAAQrU,GAOZ,SAASuU,KACLrG,GAAcr+B,KAAKxC,KAAM,cACzBA,KAAK8iC,eAAe,QAAS,EACjC,CATYlP,KAUNtN,SAAS4gB,GAAYrG,IAK3BqG,GAAWtmC,UAAUgiC,aAAe,SAAU9Y,GAC1C9pB,KAAK8gC,WAAWkG,MAAQA,GAAMld,EAAMxc,KAAMtN,KAAK8gC,WAAWkG,OAAS,GACnEhnC,KAAKqF,KAAKykB,EACd,EACA,IAAAqd,GAAiBD,GCrBb/N,GAAQr4B,KACR+/B,GAAgBlO,GAOpB,SAASyU,GAAgBC,GACrBxG,GAAcr+B,KAAKxC,KAAM,uBAAyBqnC,GAClDrnC,KAAKqnC,SAAWA,EAChBrnC,KAAK8iC,eAAeuE,EAAU,EAClC,CACAlO,GAAM7S,SAAS8gB,GAAiBvG,IAKhCuG,GAAgBxmC,UAAUgiC,aAAe,SAAU9Y,GAC/C,GAAGA,EAAO,CACN,IAAIlkB,EAAS5F,KAAK8gC,WAAW9gC,KAAKqnC,WAAa,EAC/CrnC,KAAK8gC,WAAW9gC,KAAKqnC,UAAYzhC,EAASkkB,EAAMxc,KAAK1H,MACxD,CACDi7B,GAAcjgC,UAAUgiC,aAAapgC,KAAKxC,KAAM8pB,EACpD,EACA,ICzBIyU,GAAWz9B,GACXmlC,GAAatT,GACbuU,GAAatT,GACbwT,GDsBaA,GCXjB,SAASE,GAAiBC,EAAgBC,EAAkBR,EAAOS,EAAan6B,GAC5EtN,KAAKunC,eAAiBA,EACtBvnC,KAAKwnC,iBAAmBA,EACxBxnC,KAAKgnC,MAAQA,EACbhnC,KAAKynC,YAAcA,EACnBznC,KAAK0nC,kBAAoBp6B,CAC7B,CAEgBq6B,GAAC/mC,UAAY,CAKzBgnC,iBAAkB,WACd,IAAInC,EAAS,IAAIQ,GAAW1H,GAAS5+B,QAAQR,QAAQa,KAAK0nC,oBACrDnZ,KAAKvuB,KAAKynC,YAAYI,oBACtBtZ,KAAK,IAAI6Y,GAAgB,gBAE1Bj7B,EAAOnM,KAMX,OALAylC,EAAOlsB,GAAG,OAAO,WACb,GAAIvZ,KAAK8gC,WAAwB,cAAM30B,EAAKq7B,iBACxC,MAAM,IAAIxjC,MAAM,wCAEhC,IACeyhC,CACV,EAKDqC,oBAAqB,WACjB,OAAO,IAAI7B,GAAW1H,GAAS5+B,QAAQR,QAAQa,KAAK0nC,oBAC/C5E,eAAe,iBAAkB9iC,KAAKunC,gBACtCzE,eAAe,mBAAoB9iC,KAAKwnC,kBACxC1E,eAAe,QAAS9iC,KAAKgnC,OAC7BlE,eAAe,cAAe9iC,KAAKynC,YAE3C,GAWWE,GAACI,iBAAmB,SAAUC,EAAoBP,EAAaQ,GAC3E,OAAOD,EACFzZ,KAAK,IAAI2Y,IACT3Y,KAAK,IAAI6Y,GAAgB,qBACzB7Y,KAAKkZ,EAAYS,eAAeD,IAChC1Z,KAAK,IAAI6Y,GAAgB,mBACzBtE,eAAe,cAAe2E,EACvC,EAEA,IAAAU,GAAiBb,GCvEb9B,GAAe1kC,GACfmlC,GAAatT,GACbyV,GAAOxU,EACP0T,GAAmBjS,GACnBwL,GAAgB9M,GAShBsU,GAAY,SAASniC,EAAMoH,EAAM4a,GACjCloB,KAAKkG,KAAOA,EACZlG,KAAK2O,IAAMuZ,EAAQvZ,IACnB3O,KAAKwlB,KAAO0C,EAAQ1C,KACpBxlB,KAAKsoC,QAAUpgB,EAAQogB,QACvBtoC,KAAKuoC,gBAAkBrgB,EAAQqgB,gBAC/BvoC,KAAKwoC,eAAiBtgB,EAAQsgB,eAE9BxoC,KAAKyoC,MAAQn7B,EACbtN,KAAK0oC,YAAcxgB,EAAQygB,OAE3B3oC,KAAKkoB,QAAU,CACXuf,YAAcvf,EAAQuf,YACtBQ,mBAAqB/f,EAAQ+f,mBAErC,EAESW,GAAChoC,UAAY,CAMlBioC,eAAgB,SAAUtmC,GACtB,IAAImB,EAAS,KAAM+7B,EAAa,SAChC,IACI,IAAKl9B,EACD,MAAM,IAAIyB,MAAM,6BAGpB,IAAI8kC,EAAkC,YADtCrJ,EAAal9B,EAAKyL,gBAC+C,SAAfyxB,EAC/B,iBAAfA,GAAgD,SAAfA,IACjCA,EAAa,UAEjB/7B,EAAS1D,KAAK+oC,oBAEd,IAAIC,GAAmBhpC,KAAK0oC,YAExBM,IAAoBF,IACpBplC,EAASA,EAAO6qB,KAAK,IAAI6Z,GAAK/E,oBAE7B2F,GAAmBF,IACpBplC,EAASA,EAAO6qB,KAAK,IAAI6Z,GAAKjF,kBAKrC,CAHC,MAAO54B,IACL7G,EAAS,IAAIm9B,GAAc,UACpBphC,MAAM8K,EAChB,CAED,OAAO,IAAIi7B,GAAa9hC,EAAQ+7B,EAAY,GAC/C,EAQDl5B,MAAO,SAAUhE,EAAM0mC,GACnB,OAAOjpC,KAAK6oC,eAAetmC,GAAMsiC,WAAWoE,EAC/C,EAQDC,WAAY,SAAU3mC,EAAM0mC,GACxB,OAAOjpC,KAAK6oC,eAAetmC,GAAQ,cAAcujC,eAAemD,EACnE,EASDE,gBAAiB,SAAU1B,EAAaQ,GACpC,GACIjoC,KAAKyoC,iBAAiBnB,IACtBtnC,KAAKyoC,MAAMhB,YAAY2B,QAAU3B,EAAY2B,MAE7C,OAAOppC,KAAKyoC,MAAMX,sBAElB,IAAIpkC,EAAS1D,KAAK+oC,oBAIlB,OAHI/oC,KAAK0oC,cACLhlC,EAASA,EAAO6qB,KAAK,IAAI6Z,GAAK/E,mBAE3BiE,GAAiBS,iBAAiBrkC,EAAQ+jC,EAAaQ,EAErE,EAMDc,kBAAoB,WAChB,OAAI/oC,KAAKyoC,iBAAiBnB,GACftnC,KAAKyoC,MAAMb,mBACX5nC,KAAKyoC,iBAAiB5H,GACtB7gC,KAAKyoC,MAEL,IAAIxC,GAAWjmC,KAAKyoC,MAElC,GAQL,IALA,IAAIY,GAAiB,CAAC,SAAU,WAAY,eAAgB,eAAgB,iBACxEC,GAAY,WACZ,MAAM,IAAItlC,MAAM,6EACpB,EAEQ6B,GAAI,EAAGA,GAAIwjC,GAAezjC,OAAQC,KACtCwiC,GAAUznC,UAAUyoC,GAAexjC,KAAMyjC,GAE7C,IAAAC,GAAiBlB,wCCjIjB,IAAImB,EAAmC,oBAAf3gC,YACgB,oBAAhB4gC,aACe,oBAAfC,WAExB,SAASC,EAAKlrC,EAAKC,GACjB,OAAOE,OAAOgC,UAAUM,eAAesB,KAAK/D,EAAKC,EAClD,CAED8B,EAAiBopC,OAAA,SAAUnrC,GAEzB,IADA,IAAIorC,EAAU/gC,MAAMlI,UAAUqG,MAAMzE,KAAKtC,UAAW,GAC7C2pC,EAAQjkC,QAAQ,CACrB,IAAIosB,EAAS6X,EAAQljB,QACrB,GAAKqL,EAAL,CAEA,GAAsB,iBAAXA,EACT,MAAM,IAAIvtB,UAAUutB,EAAS,sBAG/B,IAAK,IAAInL,KAAKmL,EACR2X,EAAK3X,EAAQnL,KACfpoB,EAAIooB,GAAKmL,EAAOnL,GARM,CAW3B,CAED,OAAOpoB,CACT,EAIA+B,EAAAspC,UAAoB,SAAU36B,EAAK1B,GACjC,OAAI0B,EAAIvJ,SAAW6H,EAAe0B,EAC9BA,EAAIqF,SAAmBrF,EAAIqF,SAAS,EAAG/G,IAC3C0B,EAAIvJ,OAAS6H,EACN0B,EACT,EAGA,IAAI46B,EAAU,CACZC,SAAU,SAAUxb,EAAM1W,EAAKmyB,EAAU/gC,EAAKghC,GAC5C,GAAIpyB,EAAItD,UAAYga,EAAKha,SACvBga,EAAKtX,IAAIY,EAAItD,SAASy1B,EAAUA,EAAW/gC,GAAMghC,QAInD,IAAK,IAAIrkC,EAAI,EAAGA,EAAIqD,EAAKrD,IACvB2oB,EAAK0b,EAAYrkC,GAAKiS,EAAImyB,EAAWpkC,EAExC,EAEDskC,cAAe,SAAUC,GACvB,IAAIvkC,EAAGyR,EAAGpO,EAAKqJ,EAAKuX,EAAOpmB,EAI3B,IADAwF,EAAM,EACDrD,EAAI,EAAGyR,EAAI8yB,EAAOxkC,OAAQC,EAAIyR,EAAGzR,IACpCqD,GAAOkhC,EAAOvkC,GAAGD,OAMnB,IAFAlC,EAAS,IAAImF,WAAWK,GACxBqJ,EAAM,EACD1M,EAAI,EAAGyR,EAAI8yB,EAAOxkC,OAAQC,EAAIyR,EAAGzR,IACpCikB,EAAQsgB,EAAOvkC,GACfnC,EAAOwT,IAAI4S,EAAOvX,GAClBA,GAAOuX,EAAMlkB,OAGf,OAAOlC,CACR,GAGC2mC,EAAY,CACdL,SAAU,SAAUxb,EAAM1W,EAAKmyB,EAAU/gC,EAAKghC,GAC5C,IAAK,IAAIrkC,EAAI,EAAGA,EAAIqD,EAAKrD,IACvB2oB,EAAK0b,EAAYrkC,GAAKiS,EAAImyB,EAAWpkC,EAExC,EAEDskC,cAAe,SAAUC,GACvB,MAAO,GAAG/3B,OAAOlS,MAAM,GAAIiqC,EAC5B,GAMH5pC,EAAmB8pC,SAAA,SAAU/wB,GACvBA,GACF/Y,EAAA+pC,KAAgB1hC,WAChBrI,EAAAgqC,MAAgBf,YAChBjpC,EAAAiqC,MAAgBf,WAChBlpC,EAAQopC,OAAOppC,EAASupC,KAExBvpC,EAAA+pC,KAAgBzhC,MAChBtI,EAAAgqC,MAAgB1hC,MAChBtI,EAAAiqC,MAAgB3hC,MAChBtI,EAAQopC,OAAOppC,EAAS6pC,GAE5B,EAEA7pC,EAAQ8pC,SAASd,8BCjFbrQ,GAAQr4B,GAqBZ,SAAS4pC,GAAKv7B,GAA6B,IAAtB,IAAIjG,EAAMiG,EAAIvJ,SAAiBsD,GAAO,GAAKiG,EAAIjG,GAAO,CAAM,CAIjF,IAiBIyhC,GAAgB,IAGhBC,GAAgBD,IAGhBE,GAAgB,GAShBC,GAAgB,GA2BhBC,GACF,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAEvDC,GACF,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAEhEC,GACF,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAEnCC,GACF,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAgB3CC,GAAgB,IAAIriC,MAAM,KAC1BsiC,GAACD,IAOL,IAAIE,GAAgB,IAAIviC,MAAM+hC,IAC1BO,GAACC,IAKL,IAAIC,GAAgB,IAAIxiC,MAjBJ,KAkBhBsiC,GAACE,IAML,IAAIC,GAAgB,IAAIziC,MAAM0iC,KAC1BJ,GAACG,IAGL,IAAIE,GAAgB,IAAI3iC,MAhGJ,IAiGhBsiC,GAACK,IAGL,IAkBIC,GACAC,GACAC,GApBAC,GAAgB,IAAI/iC,MAAM+hC,IAK9B,SAASiB,GAAeC,EAAaC,EAAYC,EAAYC,EAAOC,GAElEnsC,KAAK+rC,YAAeA,EACpB/rC,KAAKgsC,WAAeA,EACpBhsC,KAAKisC,WAAeA,EACpBjsC,KAAKksC,MAAeA,EACpBlsC,KAAKmsC,WAAeA,EAGpBnsC,KAAKosC,UAAeL,GAAeA,EAAYnmC,MACjD,CAQA,SAASymC,GAASC,EAAUC,GAC1BvsC,KAAKssC,SAAWA,EAChBtsC,KAAKwsC,SAAW,EAChBxsC,KAAKusC,UAAYA,CACnB,CAIA,SAASE,GAAOC,GACd,OAAOA,EAAO,IAAMpB,GAAWoB,GAAQpB,GAAW,KAAOoB,IAAS,GACpE,CAOA,SAASC,GAAU7hC,EAAGyS,GAGpBzS,EAAE8hC,YAAY9hC,EAAE+hC,WAAmB,IAAN,EAC7B/hC,EAAE8hC,YAAY9hC,EAAE+hC,WAActvB,IAAM,EAAK,GAC3C,CAOA,SAASuvB,GAAUhiC,EAAGnM,EAAOiH,GACvBkF,EAAEiiC,SApIY,GAoIWnnC,GAC3BkF,EAAEkiC,QAAWruC,GAASmM,EAAEiiC,SAAY,MACpCJ,GAAU7hC,EAAGA,EAAEkiC,QACfliC,EAAEkiC,OAASruC,GAvIK,GAuIgBmM,EAAEiiC,SAClCjiC,EAAEiiC,UAAYnnC,EAxIE,KA0IhBkF,EAAEkiC,QAAWruC,GAASmM,EAAEiiC,SAAY,MACpCjiC,EAAEiiC,UAAYnnC,EAElB,CAGA,SAASqnC,GAAUniC,EAAGM,EAAG8hC,GACvBJ,GAAUhiC,EAAGoiC,EAAS,EAAJ9hC,GAAiB8hC,EAAS,EAAJ9hC,EAAQ,GAClD,CAQA,SAAS+hC,GAAWlkC,EAAMC,GACxB,IAAI4H,EAAM,EACV,GACEA,GAAc,EAAP7H,EACPA,KAAU,EACV6H,IAAQ,UACC5H,EAAM,GACjB,OAAO4H,IAAQ,CACjB,CA+HA,SAASs8B,GAAUF,EAAMV,EAAUa,GAKjC,IAEIC,EACA7+B,EAHA8+B,EAAY,IAAIzkC,MAAMgiC,IACtB7hC,EAAO,EAOX,IAAKqkC,EAAO,EAAGA,GAAQxC,GAAUwC,IAC/BC,EAAUD,GAAQrkC,EAAQA,EAAOokC,EAASC,EAAO,IAAO,EAS1D,IAAK7+B,EAAI,EAAIA,GAAK+9B,EAAU/9B,IAAK,CAC/B,IAAIvF,EAAMgkC,EAAS,EAAJz+B,EAAQ,GACX,IAARvF,IAEJgkC,EAAS,EAAJz+B,GAAkB0+B,GAAWI,EAAUrkC,KAAQA,GAIrD,CACH,CA8GA,SAASskC,GAAW1iC,GAClB,IAAI2D,EAGJ,IAAKA,EAAI,EAAGA,EAAIm8B,GAAUn8B,IAAO3D,EAAE2iC,UAAc,EAAJh/B,GAAkB,EAC/D,IAAKA,EAAI,EAAGA,EAAIo8B,GAAUp8B,IAAO3D,EAAE4iC,UAAc,EAAJj/B,GAAkB,EAC/D,IAAKA,EAAI,EAAGA,EA9bM,GA8bQA,IAAO3D,EAAE6iC,QAAY,EAAJl/B,GAAkB,EAE7D3D,EAAE2iC,UAAUG,KAA0B,EACtC9iC,EAAE+iC,QAAU/iC,EAAEgjC,WAAa,EAC3BhjC,EAAEijC,SAAWjjC,EAAEkjC,QAAU,CAC3B,CAMA,SAASC,GAAUnjC,GAEbA,EAAEiiC,SAAW,EACfJ,GAAU7hC,EAAGA,EAAEkiC,QACNliC,EAAEiiC,SAAW,IAEtBjiC,EAAE8hC,YAAY9hC,EAAE+hC,WAAa/hC,EAAEkiC,QAEjCliC,EAAEkiC,OAAS,EACXliC,EAAEiiC,SAAW,CACf,CA6BA,SAASmB,GAAQhB,EAAMz+B,EAAGjE,EAAG8W,GAC3B,IAAI6sB,EAAU,EAAJ1/B,EACN2/B,EAAU,EAAJ5jC,EACV,OAAQ0iC,EAAKiB,GAAgBjB,EAAKkB,IAC1BlB,EAAKiB,KAAkBjB,EAAKkB,IAAiB9sB,EAAM7S,IAAM6S,EAAM9W,EACzE,CAQA,SAAS6jC,GAAWvjC,EAAGoiC,EAAMnuB,GAO3B,IAFA,IAAI2H,EAAI5b,EAAEwjC,KAAKvvB,GACXxP,EAAIwP,GAAK,EACNxP,GAAKzE,EAAEyjC,WAERh/B,EAAIzE,EAAEyjC,UACRL,GAAQhB,EAAMpiC,EAAEwjC,KAAK/+B,EAAI,GAAIzE,EAAEwjC,KAAK/+B,GAAIzE,EAAEwW,QAC1C/R,KAGE2+B,GAAQhB,EAAMxmB,EAAG5b,EAAEwjC,KAAK/+B,GAAIzE,EAAEwW,SAGlCxW,EAAEwjC,KAAKvvB,GAAKjU,EAAEwjC,KAAK/+B,GACnBwP,EAAIxP,EAGJA,IAAM,EAERzE,EAAEwjC,KAAKvvB,GAAK2H,CACd,CASA,SAAS8nB,GAAe1jC,EAAG2jC,EAAOC,GAKhC,IAAIhC,EACAiC,EAEA1lC,EACA2lC,EAFAC,EAAK,EAIT,GAAmB,IAAf/jC,EAAEijC,SACJ,GACErB,EAAQ5hC,EAAE8hC,YAAY9hC,EAAEgkC,MAAa,EAALD,IAAW,EAAM/jC,EAAE8hC,YAAY9hC,EAAEgkC,MAAa,EAALD,EAAS,GAClFF,EAAK7jC,EAAE8hC,YAAY9hC,EAAEikC,MAAQF,GAC7BA,IAEa,IAATnC,EACFO,GAAUniC,EAAG6jC,EAAIF,IAKjBxB,GAAUniC,GADV7B,EAAOsiC,GAAaoD,IACAhE,GAAW,EAAG8D,GAEpB,KADdG,EAAQ7D,GAAY9hC,KAGlB6jC,GAAUhiC,EADV6jC,GAAMlD,GAAYxiC,GACD2lC,GAMnB3B,GAAUniC,EAHV7B,EAAOwjC,KADPC,GAImBgC,GAEL,KADdE,EAAQ5D,GAAY/hC,KAGlB6jC,GAAUhiC,EADV4hC,GAAQb,GAAU5iC,GACC2lC,UAQhBC,EAAK/jC,EAAEijC,UAGlBd,GAAUniC,EA1jBM,IA0jBQ2jC,EAC1B,CAWA,SAASO,GAAWlkC,EAAG3J,GAIrB,IAIIsN,EAAGjE,EAEHspB,EANAoZ,EAAW/rC,EAAKmrC,SAChB2C,EAAW9tC,EAAKorC,UAAUR,YAC1BK,EAAYjrC,EAAKorC,UAAUH,UAC3BF,EAAW/qC,EAAKorC,UAAUL,MAE1BM,GAAY,EAUhB,IAHA1hC,EAAEyjC,SAAW,EACbzjC,EAAEokC,SAxmBgB,IA0mBbzgC,EAAI,EAAGA,EAAIy9B,EAAOz9B,IACQ,IAAzBy+B,EAAS,EAAJz+B,IACP3D,EAAEwjC,OAAOxjC,EAAEyjC,UAAY/B,EAAW/9B,EAClC3D,EAAEwW,MAAM7S,GAAK,GAGby+B,EAAS,EAAJz+B,EAAQ,GAAa,EAS9B,KAAO3D,EAAEyjC,SAAW,GAElBrB,EAAY,GADZpZ,EAAOhpB,EAAEwjC,OAAOxjC,EAAEyjC,UAAa/B,EAAW,IAAMA,EAAW,IACjC,EAC1B1hC,EAAEwW,MAAMwS,GAAQ,EAChBhpB,EAAE+iC,UAEEzB,IACFthC,EAAEgjC,YAAcmB,EAAa,EAAPnb,EAAW,IASrC,IALA3yB,EAAKqrC,SAAWA,EAKX/9B,EAAK3D,EAAEyjC,UAAY,EAAc9/B,GAAK,EAAGA,IAAO4/B,GAAWvjC,EAAGoiC,EAAMz+B,GAKzEqlB,EAAOoY,EACP,GAGEz9B,EAAI3D,EAAEwjC,KAAK,GACXxjC,EAAEwjC,KAAK,GAAiBxjC,EAAEwjC,KAAKxjC,EAAEyjC,YACjCF,GAAWvjC,EAAGoiC,EAAM,GAGpB1iC,EAAIM,EAAEwjC,KAAK,GAEXxjC,EAAEwjC,OAAOxjC,EAAEokC,UAAYzgC,EACvB3D,EAAEwjC,OAAOxjC,EAAEokC,UAAY1kC,EAGvB0iC,EAAY,EAAPpZ,GAAqBoZ,EAAS,EAAJz+B,GAAkBy+B,EAAS,EAAJ1iC,GACtDM,EAAEwW,MAAMwS,IAAShpB,EAAEwW,MAAM7S,IAAM3D,EAAEwW,MAAM9W,GAAKM,EAAEwW,MAAM7S,GAAK3D,EAAEwW,MAAM9W,IAAM,EACvE0iC,EAAS,EAAJz+B,EAAQ,GAAay+B,EAAS,EAAJ1iC,EAAQ,GAAaspB,EAGpDhpB,EAAEwjC,KAAK,GAAiBxa,IACxBua,GAAWvjC,EAAGoiC,EAAM,SAEbpiC,EAAEyjC,UAAY,GAEvBzjC,EAAEwjC,OAAOxjC,EAAEokC,UAAYpkC,EAAEwjC,KAAK,GAjehC,SAAoBxjC,EAAG3J,GAIrB,IAOIguC,EACA1gC,EAAGjE,EACH8iC,EACA8B,EACAzvB,EAXAutB,EAAkB/rC,EAAKmrC,SACvBE,EAAkBrrC,EAAKqrC,SACvByC,EAAkB9tC,EAAKorC,UAAUR,YACjCK,EAAkBjrC,EAAKorC,UAAUH,UACjCwC,EAAkBztC,EAAKorC,UAAUP,WACjChpB,EAAkB7hB,EAAKorC,UAAUN,WACjCE,EAAkBhrC,EAAKorC,UAAUJ,WAMjCkD,EAAW,EAEf,IAAK/B,EAAO,EAAGA,GAAQxC,GAAUwC,IAC/BxiC,EAAEuiC,SAASC,GAAQ,EAQrB,IAFAJ,EAA0B,EAArBpiC,EAAEwjC,KAAKxjC,EAAEokC,UAAgB,GAAa,EAEtCC,EAAIrkC,EAAEokC,SAAW,EAAGC,EAjOP,IAiOsBA,KAEtC7B,EAAOJ,EAA+B,EAA1BA,EAAS,GADrBz+B,EAAI3D,EAAEwjC,KAAKa,IACc,GAAiB,GAAa,GAC5ChD,IACTmB,EAAOnB,EACPkD,KAEFnC,EAAS,EAAJz+B,EAAQ,GAAa6+B,EAGtB7+B,EAAI+9B,IAER1hC,EAAEuiC,SAASC,KACX8B,EAAQ,EACJ3gC,GAAKuU,IACPosB,EAAQR,EAAMngC,EAAIuU,IAEpBrD,EAAIutB,EAAS,EAAJz+B,GACT3D,EAAE+iC,SAAWluB,GAAK2tB,EAAO8B,GACrBhD,IACFthC,EAAEgjC,YAAcnuB,GAAKsvB,EAAU,EAAJxgC,EAAQ,GAAa2gC,KAGpD,GAAiB,IAAbC,EAAJ,CAMA,EAAG,CAED,IADA/B,EAAOnB,EAAa,EACQ,IAArBrhC,EAAEuiC,SAASC,IAAeA,IACjCxiC,EAAEuiC,SAASC,KACXxiC,EAAEuiC,SAASC,EAAO,IAAM,EACxBxiC,EAAEuiC,SAASlB,KAIXkD,GAAY,CAChB,OAAWA,EAAW,GAOpB,IAAK/B,EAAOnB,EAAqB,IAATmB,EAAYA,IAElC,IADA7+B,EAAI3D,EAAEuiC,SAASC,GACF,IAAN7+B,IACLjE,EAAIM,EAAEwjC,OAAOa,IACL3C,IACJU,EAAS,EAAJ1iC,EAAQ,KAAe8iC,IAE9BxiC,EAAE+iC,UAAYP,EAAOJ,EAAS,EAAJ1iC,EAAQ,IAAc0iC,EAAS,EAAJ1iC,GACrD0iC,EAAS,EAAJ1iC,EAAQ,GAAa8iC,GAE5B7+B,IAjC2B,CAoCjC,CAgZE6gC,CAAWxkC,EAAG3J,GAGdisC,GAAUF,EAAMV,EAAU1hC,EAAEuiC,SAC9B,CAOA,SAASkC,GAAUzkC,EAAGoiC,EAAMV,GAK1B,IAAI/9B,EAEA+gC,EADAC,GAAW,EAGXC,EAAUxC,EAAK,GAEfzvB,EAAQ,EACRkyB,EAAY,EACZC,EAAY,EAQhB,IANgB,IAAZF,IACFC,EAAY,IACZC,EAAY,GAEd1C,EAAsB,GAAhBV,EAAW,GAAS,GAAa,MAElC/9B,EAAI,EAAGA,GAAK+9B,EAAU/9B,IACzB+gC,EAASE,EACTA,EAAUxC,EAAe,GAATz+B,EAAI,GAAS,KAEvBgP,EAAQkyB,GAAaH,IAAWE,IAG3BjyB,EAAQmyB,EACjB9kC,EAAE6iC,QAAiB,EAAT6B,IAAwB/xB,EAEd,IAAX+xB,GAELA,IAAWC,GAAW3kC,EAAE6iC,QAAiB,EAAT6B,KACpC1kC,EAAE6iC,QAAQkC,OAEDpyB,GAAS,GAClB3S,EAAE6iC,QAAQmC,MAGVhlC,EAAE6iC,QAAQoC,MAGZtyB,EAAQ,EACRgyB,EAAUD,EAEM,IAAZE,GACFC,EAAY,IACZC,EAAY,GAEHJ,IAAWE,GACpBC,EAAY,EACZC,EAAY,IAGZD,EAAY,EACZC,EAAY,GAGlB,CAOA,SAASI,GAAUllC,EAAGoiC,EAAMV,GAK1B,IAAI/9B,EAEA+gC,EADAC,GAAW,EAGXC,EAAUxC,EAAK,GAEfzvB,EAAQ,EACRkyB,EAAY,EACZC,EAAY,EAQhB,IALgB,IAAZF,IACFC,EAAY,IACZC,EAAY,GAGTnhC,EAAI,EAAGA,GAAK+9B,EAAU/9B,IAIzB,GAHA+gC,EAASE,EACTA,EAAUxC,EAAe,GAATz+B,EAAI,GAAS,OAEvBgP,EAAQkyB,GAAaH,IAAWE,GAAtC,CAGO,GAAIjyB,EAAQmyB,EACjB,GAAK3C,GAAUniC,EAAG0kC,EAAQ1kC,EAAE6iC,eAA+B,KAAVlwB,QAE7B,IAAX+xB,GACLA,IAAWC,IACbxC,GAAUniC,EAAG0kC,EAAQ1kC,EAAE6iC,SACvBlwB,KAGFwvB,GAAUniC,EA1wBE,GA0wBUA,EAAE6iC,SACxBb,GAAUhiC,EAAG2S,EAAQ,EAAG,IAEfA,GAAS,IAClBwvB,GAAUniC,EA3wBE,GA2wBYA,EAAE6iC,SAC1Bb,GAAUhiC,EAAG2S,EAAQ,EAAG,KAGxBwvB,GAAUniC,EA5wBE,GA4wBcA,EAAE6iC,SAC5Bb,GAAUhiC,EAAG2S,EAAQ,GAAI,IAG3BA,EAAQ,EACRgyB,EAAUD,EACM,IAAZE,GACFC,EAAY,IACZC,EAAY,GAEHJ,IAAWE,GACpBC,EAAY,EACZC,EAAY,IAGZD,EAAY,EACZC,EAAY,EAdb,CAiBL,CAnuBIxE,GAACS,IAu1BL,IAAIoE,IAAmB,EA4BvB,SAASC,GAAiBplC,EAAGqE,EAAKghC,EAAY7f,GAM5Cwc,GAAUhiC,EAAG,GAAuBwlB,EAAO,EAAI,GAAI,GAzfrD,SAAoBxlB,EAAGqE,EAAKjG,EAAKknC,GAM/BnC,GAAUnjC,GAENslC,IACFzD,GAAU7hC,EAAG5B,GACbyjC,GAAU7hC,GAAI5B,IAKhBiwB,GAAM6Q,SAASl/B,EAAE8hC,YAAa9hC,EAAErC,OAAQ0G,EAAKjG,EAAK4B,EAAE+hC,SACpD/hC,EAAE+hC,SAAW3jC,CACf,CAyeEmnC,CAAWvlC,EAAGqE,EAAKghC,GAAY,EACjC,CAmKgBG,GAAAC,SAlMhB,SAAkBzlC,GAGXmlC,MAxmBP,WACE,IAAIxhC,EACA6+B,EACA1nC,EACAqD,EACAyjC,EACAW,EAAW,IAAIvkC,MAAMgiC,IAiBzB,IADAllC,EAAS,EACJqD,EAAO,EAAGA,EAAOunC,GAAkBvnC,IAEtC,IADAwiC,GAAYxiC,GAAQrD,EACf6I,EAAI,EAAGA,EAAK,GAAKs8B,GAAY9hC,GAAQwF,IACxC88B,GAAa3lC,KAAYqD,EAY7B,IAJAsiC,GAAa3lC,EAAS,GAAKqD,EAG3ByjC,EAAO,EACFzjC,EAAO,EAAGA,EAAO,GAAIA,IAExB,IADA4iC,GAAU5iC,GAAQyjC,EACbj+B,EAAI,EAAGA,EAAK,GAAKu8B,GAAY/hC,GAAQwF,IACxC68B,GAAWoB,KAAUzjC,EAKzB,IADAyjC,IAAS,EACFzjC,EAAO4hC,GAAS5hC,IAErB,IADA4iC,GAAU5iC,GAAQyjC,GAAQ,EACrBj+B,EAAI,EAAGA,EAAK,GAAMu8B,GAAY/hC,GAAQ,EAAKwF,IAC9C68B,GAAW,IAAMoB,KAAUzjC,EAM/B,IAAKqkC,EAAO,EAAGA,GAAQxC,GAAUwC,IAC/BD,EAASC,GAAQ,EAInB,IADA7+B,EAAI,EACGA,GAAK,KACV08B,GAAiB,EAAJ18B,EAAQ,GAAa,EAClCA,IACA4+B,EAAS,KAEX,KAAO5+B,GAAK,KACV08B,GAAiB,EAAJ18B,EAAQ,GAAa,EAClCA,IACA4+B,EAAS,KAEX,KAAO5+B,GAAK,KACV08B,GAAiB,EAAJ18B,EAAQ,GAAa,EAClCA,IACA4+B,EAAS,KAEX,KAAO5+B,GAAK,KACV08B,GAAiB,EAAJ18B,EAAQ,GAAa,EAClCA,IACA4+B,EAAS,KASX,IAHAD,GAAUjC,GAAcP,IAAayC,GAGhC5+B,EAAI,EAAGA,EAAIo8B,GAASp8B,IACvB48B,GAAiB,EAAJ58B,EAAQ,GAAa,EAClC48B,GAAiB,EAAJ58B,GAAkB0+B,GAAW1+B,EAAG,GAI/Ci9B,GAAgB,IAAII,GAAeX,GAAcJ,GAAaJ,IAAcC,GAASE,IACrFa,GAAgB,IAAIG,GAAeT,GAAcL,GAAa,EAAYH,GAASC,IACnFc,GAAiB,IAAIE,GAAe,IAAIhjC,MAAM,GAAImiC,GAAc,EA/a9C,GAiBF,EAialB,CAugBIwF,GACAR,IAAmB,GAGrBnlC,EAAE4lC,OAAU,IAAIrE,GAASvhC,EAAE2iC,UAAW/B,IACtC5gC,EAAE6lC,OAAU,IAAItE,GAASvhC,EAAE4iC,UAAW/B,IACtC7gC,EAAE8lC,QAAU,IAAIvE,GAASvhC,EAAE6iC,QAAS/B,IAEpC9gC,EAAEkiC,OAAS,EACXliC,EAAEiiC,SAAW,EAGbS,GAAW1iC,EACb,EAkLwBwlC,GAAAJ,iBAAGA,GACJI,GAAAO,gBAnJvB,SAAyB/lC,EAAGqE,EAAKghC,EAAY7f,GAM3C,IAAIwgB,EAAUC,EACVC,EAAc,EAGdlmC,EAAEmmC,MAAQ,GAnhCY,IAshCpBnmC,EAAEomC,KAAKC,YACTrmC,EAAEomC,KAAKC,UArGb,SAA0BrmC,GAKxB,IACI2D,EADA2iC,EAAa,WAIjB,IAAK3iC,EAAI,EAAGA,GAAK,GAAIA,IAAK2iC,KAAgB,EACxC,GAAkB,EAAbA,GAAoD,IAAhCtmC,EAAE2iC,UAAc,EAAJh/B,GACnC,OAh8BsB,EAq8B1B,GAAoC,IAAhC3D,EAAE2iC,UAAU,KAA0D,IAAjC3iC,EAAE2iC,UAAU,KAChB,IAAjC3iC,EAAE2iC,UAAU,IACd,OAt8BwB,EAw8B1B,IAAKh/B,EAAI,GAAIA,EAAIk8B,GAAUl8B,IACzB,GAAoC,IAAhC3D,EAAE2iC,UAAc,EAAJh/B,GACd,OA18BsB,EAi9B1B,OAl9B0B,CAm9B5B,CAuEyB4iC,CAAiBvmC,IAItCkkC,GAAWlkC,EAAGA,EAAE4lC,QAIhB1B,GAAWlkC,EAAGA,EAAE6lC,QAUhBK,EAnMJ,SAAuBlmC,GACrB,IAAIkmC,EAgBJ,IAbAzB,GAAUzkC,EAAGA,EAAE2iC,UAAW3iC,EAAE4lC,OAAOlE,UACnC+C,GAAUzkC,EAAGA,EAAE4iC,UAAW5iC,EAAE6lC,OAAOnE,UAGnCwC,GAAWlkC,EAAGA,EAAE8lC,SASXI,EAAcM,GAAcN,GAAe,GACW,IAArDlmC,EAAE6iC,QAAgC,EAAxBzC,GAAS8F,GAAmB,GADOA,KAUnD,OAJAlmC,EAAE+iC,SAAW,GAAKmD,EAAc,GAAK,EAAI,EAAI,EAItCA,CACT,CAuKkBO,CAAczmC,GAG5BgmC,EAAYhmC,EAAE+iC,QAAU,EAAI,IAAO,GACnCkD,EAAejmC,EAAEgjC,WAAa,EAAI,IAAO,IAMtBgD,IAAYA,EAAWC,IAI1CD,EAAWC,EAAcZ,EAAa,EAGnCA,EAAa,GAAKW,IAAuB,IAAT3hC,EASnC+gC,GAAiBplC,EAAGqE,EAAKghC,EAAY7f,GA1kCb,IA4kCfxlB,EAAE0mC,UAAwBT,IAAgBD,GAEnDhE,GAAUhiC,EAAG,GAAuBwlB,EAAO,EAAI,GAAI,GACnDke,GAAe1jC,EAAGqgC,GAAcE,MAGhCyB,GAAUhiC,EAAG,GAAoBwlB,EAAO,EAAI,GAAI,GAjMpD,SAAwBxlB,EAAG2mC,EAAQC,EAAQC,GAIzC,IAAIC,EASJ,IAHA9E,GAAUhiC,EAAG2mC,EAAS,IAAK,GAC3B3E,GAAUhiC,EAAG4mC,EAAS,EAAK,GAC3B5E,GAAUhiC,EAAG6mC,EAAU,EAAI,GACtBC,EAAO,EAAGA,EAAOD,EAASC,IAE7B9E,GAAUhiC,EAAGA,EAAE6iC,QAAyB,EAAjBzC,GAAS0G,GAAY,GAAY,GAI1D5B,GAAUllC,EAAGA,EAAE2iC,UAAWgE,EAAS,GAGnCzB,GAAUllC,EAAGA,EAAE4iC,UAAWgE,EAAS,EAErC,CA0KIG,CAAe/mC,EAAGA,EAAE4lC,OAAOlE,SAAW,EAAG1hC,EAAE6lC,OAAOnE,SAAW,EAAGwE,EAAc,GAC9ExC,GAAe1jC,EAAGA,EAAE2iC,UAAW3iC,EAAE4iC,YAMnCF,GAAW1iC,GAEPwlB,GACF2d,GAAUnjC,EAId,EAmEiBwlC,GAAAwB,UA7DjB,SAAmBhnC,EAAG4hC,EAAMiC,GAmD1B,OA5CA7jC,EAAE8hC,YAAY9hC,EAAEgkC,MAAqB,EAAbhkC,EAAEijC,UAAqBrB,IAAS,EAAK,IAC7D5hC,EAAE8hC,YAAY9hC,EAAEgkC,MAAqB,EAAbhkC,EAAEijC,SAAe,GAAY,IAAPrB,EAE9C5hC,EAAE8hC,YAAY9hC,EAAEikC,MAAQjkC,EAAEijC,UAAiB,IAALY,EACtC7jC,EAAEijC,WAEW,IAATrB,EAEF5hC,EAAE2iC,UAAe,EAALkB,MAEZ7jC,EAAEkjC,UAEFtB,IAKA5hC,EAAE2iC,UAA8C,GAAnClC,GAAaoD,GAAMhE,GAAW,MAC3C7/B,EAAE4iC,UAAyB,EAAfjB,GAAOC,OA0Bb5hC,EAAEijC,WAAajjC,EAAEinC,YAAc,CAKzC,EAMAzB,GAAA0B,UAhKA,SAAmBlnC,GACjBgiC,GAAUhiC,EAAGmnC,EAAmB,GAChChF,GAAUniC,EAz8BM,IAy8BQqgC,IA5yB1B,SAAkBrgC,GACG,KAAfA,EAAEiiC,UACJJ,GAAU7hC,EAAGA,EAAEkiC,QACfliC,EAAEkiC,OAAS,EACXliC,EAAEiiC,SAAW,GAEJjiC,EAAEiiC,UAAY,IACvBjiC,EAAE8hC,YAAY9hC,EAAE+hC,WAAwB,IAAX/hC,EAAEkiC,OAC/BliC,EAAEkiC,SAAW,EACbliC,EAAEiiC,UAAY,EAElB,CAkyBEmF,CAASpnC,EACX,ECv/BA,IAAAqnC,GAzBA,SAAiBC,EAAOjjC,EAAKjG,EAAKqJ,GAKhC,IAJA,IAAI8/B,EAAc,MAARD,EAAiB,EACvBE,EAAOF,IAAU,GAAM,MAAS,EAChC3jC,EAAI,EAEO,IAARvF,GAAW,CAKhBA,GADAuF,EAAIvF,EAAM,IAAO,IAAOA,EAGxB,GAEEopC,EAAMA,GADND,EAAMA,EAAKljC,EAAIoD,KAAS,GACR,UACP9D,GAEX4jC,GAAM,MACNC,GAAM,KACP,CAED,OAAQD,EAAMC,GAAM,GAAM,CAC5B,ECNA,IAAI5L,GAfJ,WAGE,IAFA,IAAIt7B,EAAGu7B,EAAQ,GAENl4B,EAAI,EAAGA,EAAI,IAAKA,IAAK,CAC5BrD,EAAIqD,EACJ,IAAK,IAAIsQ,EAAI,EAAGA,EAAI,EAAGA,IACrB3T,EAAU,EAAJA,EAAU,WAAcA,IAAM,EAAOA,IAAM,EAEnDu7B,EAAMl4B,GAAKrD,CACZ,CAED,OAAOu7B,CACT,CAGeC,GAiBf,IC69BI2L,GD79BJ1L,GAdA,SAAeC,EAAK33B,EAAKjG,EAAKqJ,GAC5B,IAAIw0B,EAAIL,GACJn9B,EAAMgJ,EAAMrJ,EAEhB49B,IAAQ,EAER,IAAK,IAAIjhC,EAAI0M,EAAK1M,EAAI0D,EAAK1D,IACzBihC,EAAOA,IAAQ,EAAKC,EAAmB,KAAhBD,EAAM33B,EAAItJ,KAGnC,OAAgB,EAARihC,CACV,EElCA0L,GAAiB,CACf,EAAQ,kBACR,EAAQ,aACR,EAAQ,GACR,KAAQ,aACR,KAAQ,eACR,KAAQ,aACR,KAAQ,sBACR,KAAQ,eACR,KAAQ,wBDTNrZ,GAAUr4B,GACV2xC,GAAU9f,GACV+f,GAAU9e,GACVoT,GAAU3R,GACVjV,GAAU2T,GAuBV4e,IAAmB,EAwDnBnH,GAAY,IACZoH,OAQAC,GAAa,IACbC,GAAa,IACbC,GAAe,IASnB,SAAS3yC,GAAI8wC,EAAM8B,GAEjB,OADA9B,EAAK9wB,IAAMA,GAAI4yB,GACRA,CACT,CAEA,SAASpB,GAAKjyB,GACZ,OAAQ,GAAO,IAAM,EAAM,EAAI,EAAI,EACrC,CAEA,SAAS+qB,GAAKv7B,GAA6B,IAAtB,IAAIjG,EAAMiG,EAAIvJ,SAAiBsD,GAAO,GAAKiG,EAAIjG,GAAO,CAAM,CASjF,SAAS+pC,GAAc/B,GACrB,IAAIpmC,EAAIomC,EAAKntC,MAGTmF,EAAM4B,EAAE+hC,QACR3jC,EAAMgoC,EAAKgC,YACbhqC,EAAMgoC,EAAKgC,WAED,IAARhqC,IAEJiwB,GAAM6Q,SAASkH,EAAKxnC,OAAQoB,EAAE8hC,YAAa9hC,EAAEqoC,YAAajqC,EAAKgoC,EAAKkC,UACpElC,EAAKkC,UAAYlqC,EACjB4B,EAAEqoC,aAAejqC,EACjBgoC,EAAKmC,WAAanqC,EAClBgoC,EAAKgC,WAAahqC,EAClB4B,EAAE+hC,SAAW3jC,EACK,IAAd4B,EAAE+hC,UACJ/hC,EAAEqoC,YAAc,GAEpB,CAGA,SAASG,GAAiBxoC,EAAGwlB,GAC3BmiB,GAAM5B,gBAAgB/lC,EAAIA,EAAEyoC,aAAe,EAAIzoC,EAAEyoC,aAAe,EAAIzoC,EAAE0oC,SAAW1oC,EAAEyoC,YAAajjB,GAChGxlB,EAAEyoC,YAAczoC,EAAE0oC,SAClBP,GAAcnoC,EAAEomC,KAClB,CAGA,SAASuC,GAAS3oC,EAAG4C,GACnB5C,EAAE8hC,YAAY9hC,EAAE+hC,WAAan/B,CAC/B,CAQA,SAASgmC,GAAY5oC,EAAG4C,GAGtB5C,EAAE8hC,YAAY9hC,EAAE+hC,WAAcn/B,IAAM,EAAK,IACzC5C,EAAE8hC,YAAY9hC,EAAE+hC,WAAiB,IAAJn/B,CAC/B,CA4CA,SAASimC,GAAc7oC,EAAG8oC,GACxB,IAEI/gC,EACA3J,EAHA2qC,EAAe/oC,EAAEgpC,iBACjBC,EAAOjpC,EAAE0oC,SAGTQ,EAAWlpC,EAAEmpC,YACbC,EAAappC,EAAEopC,WACf79B,EAASvL,EAAE0oC,SAAY1oC,EAAEqpC,OAASvB,GAClC9nC,EAAE0oC,UAAY1oC,EAAEqpC,OAASvB,IAAiB,EAE1CwB,EAAOtpC,EAAErC,OAET4rC,EAAQvpC,EAAEwpC,OACVvtC,EAAQ+D,EAAE/D,KAMVwtC,EAASzpC,EAAE0oC,SAAWhI,GACtBgJ,EAAaJ,EAAKL,EAAOC,EAAW,GACpCS,EAAaL,EAAKL,EAAOC,GAQzBlpC,EAAEmpC,aAAenpC,EAAE4pC,aACrBb,IAAiB,GAKfK,EAAappC,EAAE6pC,YAAaT,EAAappC,EAAE6pC,WAI/C,GAaE,GAAIP,GAXJvhC,EAAQ+gC,GAWSI,KAAkBS,GAC/BL,EAAKvhC,EAAQmhC,EAAW,KAAOQ,GAC/BJ,EAAKvhC,KAA0BuhC,EAAKL,IACpCK,IAAOvhC,KAAwBuhC,EAAKL,EAAO,GAH/C,CAaAA,GAAQ,EACRlhC,IAMA,UAESuhC,IAAOL,KAAUK,IAAOvhC,IAAUuhC,IAAOL,KAAUK,IAAOvhC,IAC1DuhC,IAAOL,KAAUK,IAAOvhC,IAAUuhC,IAAOL,KAAUK,IAAOvhC,IAC1DuhC,IAAOL,KAAUK,IAAOvhC,IAAUuhC,IAAOL,KAAUK,IAAOvhC,IAC1DuhC,IAAOL,KAAUK,IAAOvhC,IAAUuhC,IAAOL,KAAUK,IAAOvhC,IAC1DkhC,EAAOQ,GAOhB,GAHArrC,EAAMsiC,IAAa+I,EAASR,GAC5BA,EAAOQ,EAAS/I,GAEZtiC,EAAM8qC,EAAU,CAGlB,GAFAlpC,EAAE8pC,YAAchB,EAChBI,EAAW9qC,EACPA,GAAOgrC,EACT,MAEFM,EAAaJ,EAAKL,EAAOC,EAAW,GACpCS,EAAaL,EAAKL,EAAOC,EAC1B,CApCA,SAqCOJ,EAAY7sC,EAAK6sC,EAAYS,IAAUh+B,GAA4B,KAAjBw9B,GAE5D,OAAIG,GAAYlpC,EAAE6pC,UACTX,EAEFlpC,EAAE6pC,SACX,CAaA,SAASE,GAAY/pC,GACnB,IACI+b,EAAGpY,EAAGjE,EAAGsqC,EAAM5kC,EArJHghC,EAAM/hC,EAAK7F,EAAOmE,EAC9BvE,EAmJA6rC,EAAUjqC,EAAEqpC,OAKhB,EAAG,CAqBD,GApBAW,EAAOhqC,EAAEkqC,YAAclqC,EAAE6pC,UAAY7pC,EAAE0oC,SAoBnC1oC,EAAE0oC,UAAYuB,GAAWA,EAAUnC,IAAgB,CAErDzZ,GAAM6Q,SAASl/B,EAAErC,OAAQqC,EAAErC,OAAQssC,EAASA,EAAS,GACrDjqC,EAAE8pC,aAAeG,EACjBjqC,EAAE0oC,UAAYuB,EAEdjqC,EAAEyoC,aAAewB,EAUjBluB,EADApY,EAAI3D,EAAEmqC,UAEN,GACEzqC,EAAIM,EAAE0b,OAAOK,GACb/b,EAAE0b,KAAKK,GAAMrc,GAAKuqC,EAAUvqC,EAAIuqC,EAAU,UACjCtmC,GAGXoY,EADApY,EAAIsmC,EAEJ,GACEvqC,EAAIM,EAAE/D,OAAO8f,GACb/b,EAAE/D,KAAK8f,GAAMrc,GAAKuqC,EAAUvqC,EAAIuqC,EAAU,UAIjCtmC,GAEXqmC,GAAQC,CACT,CACD,GAAwB,IAApBjqC,EAAEomC,KAAKgE,SACT,MAmBF,GApOchE,EAgODpmC,EAAEomC,KAhOK/hC,EAgOCrE,EAAErC,OAhOEa,EAgOMwB,EAAE0oC,SAAW1oC,EAAE6pC,UAhOdlnC,EAgOyBqnC,EA/NvD5rC,YAAMgoC,EAAKgE,UAELznC,IAAQvE,EAAMuE,GA6NtBgB,EA5NU,IAARvF,EAAoB,GAExBgoC,EAAKgE,UAAYhsC,EAGjBiwB,GAAM6Q,SAAS76B,EAAK+hC,EAAK5X,MAAO4X,EAAKiE,QAASjsC,EAAKI,GAC3B,IAApB4nC,EAAKntC,MAAMpC,KACbuvC,EAAKkB,MAAQM,GAAQxB,EAAKkB,MAAOjjC,EAAKjG,EAAKI,GAGhB,IAApB4nC,EAAKntC,MAAMpC,OAClBuvC,EAAKkB,MAAQpL,GAAMkK,EAAKkB,MAAOjjC,EAAKjG,EAAKI,IAG3C4nC,EAAKiE,SAAWjsC,EAChBgoC,EAAKkE,UAAYlsC,EAEVA,GA4ML4B,EAAE6pC,WAAalmC,EAGX3D,EAAE6pC,UAAY7pC,EAAEuqC,QAjUR,EA0UV,IARAnlC,EAAMpF,EAAE0oC,SAAW1oC,EAAEuqC,OACrBvqC,EAAEwqC,MAAQxqC,EAAErC,OAAOyH,GAGnBpF,EAAEwqC,OAAUxqC,EAAEwqC,OAASxqC,EAAEyqC,WAAczqC,EAAErC,OAAOyH,EAAM,IAAMpF,EAAE0qC,UAIvD1qC,EAAEuqC,SAEPvqC,EAAEwqC,OAAUxqC,EAAEwqC,OAASxqC,EAAEyqC,WAAczqC,EAAErC,OAAOyH,EA5UxC,EA4U0D,IAAMpF,EAAE0qC,UAE1E1qC,EAAE/D,KAAKmJ,EAAMpF,EAAEwpC,QAAUxpC,EAAE0b,KAAK1b,EAAEwqC,OAClCxqC,EAAE0b,KAAK1b,EAAEwqC,OAASplC,EAClBA,IACApF,EAAEuqC,WACEvqC,EAAE6pC,UAAY7pC,EAAEuqC,OAlVZ,MA2VhB,OAAWvqC,EAAE6pC,UAAY/B,IAAqC,IAApB9nC,EAAEomC,KAAKgE,SAsCjD,CA6GA,SAASO,GAAa3qC,EAAG4mB,GAIvB,IAHA,IAAIgkB,EACAC,IAEK,CAMP,GAAI7qC,EAAE6pC,UAAY/B,GAAe,CAE/B,GADAiC,GAAY/pC,GACRA,EAAE6pC,UAAY/B,IAjkBF,IAikBmBlhB,EACjC,OA7egB,EA+elB,GAAoB,IAAhB5mB,EAAE6pC,UACJ,KAEH,CAyBD,GApBAe,EAAY,EACR5qC,EAAE6pC,WAtgBM,IAwgBV7pC,EAAEwqC,OAAUxqC,EAAEwqC,OAASxqC,EAAEyqC,WAAczqC,EAAErC,OAAOqC,EAAE0oC,SAxgBxC,EAwgB+D,IAAM1oC,EAAE0qC,UACjFE,EAAY5qC,EAAE/D,KAAK+D,EAAE0oC,SAAW1oC,EAAEwpC,QAAUxpC,EAAE0b,KAAK1b,EAAEwqC,OACrDxqC,EAAE0b,KAAK1b,EAAEwqC,OAASxqC,EAAE0oC,UAOJ,IAAdkC,GAA4B5qC,EAAE0oC,SAAWkC,GAAe5qC,EAAEqpC,OAASvB,KAKrE9nC,EAAE8qC,aAAejC,GAAc7oC,EAAG4qC,IAGhC5qC,EAAE8qC,cAzhBM,EAqiBV,GAPAD,EAASlD,GAAMX,UAAUhnC,EAAGA,EAAE0oC,SAAW1oC,EAAE8pC,YAAa9pC,EAAE8qC,aA9hBhD,GAgiBV9qC,EAAE6pC,WAAa7pC,EAAE8qC,aAKb9qC,EAAE8qC,cAAgB9qC,EAAE+qC,gBAAuC/qC,EAAE6pC,WAriBvD,EAqiB+E,CACvF7pC,EAAE8qC,eACF,GACE9qC,EAAE0oC,WAEF1oC,EAAEwqC,OAAUxqC,EAAEwqC,OAASxqC,EAAEyqC,WAAczqC,EAAErC,OAAOqC,EAAE0oC,SA1iB5C,EA0iBmE,IAAM1oC,EAAE0qC,UACjFE,EAAY5qC,EAAE/D,KAAK+D,EAAE0oC,SAAW1oC,EAAEwpC,QAAUxpC,EAAE0b,KAAK1b,EAAEwqC,OACrDxqC,EAAE0b,KAAK1b,EAAEwqC,OAASxqC,EAAE0oC,eAKQ,KAAnB1oC,EAAE8qC,cACb9qC,EAAE0oC,UACH,MAEC1oC,EAAE0oC,UAAY1oC,EAAE8qC,aAChB9qC,EAAE8qC,aAAe,EACjB9qC,EAAEwqC,MAAQxqC,EAAErC,OAAOqC,EAAE0oC,UAErB1oC,EAAEwqC,OAAUxqC,EAAEwqC,OAASxqC,EAAEyqC,WAAczqC,EAAErC,OAAOqC,EAAE0oC,SAAW,IAAM1oC,EAAE0qC,eAavEG,EAASlD,GAAMX,UAAUhnC,EAAG,EAAGA,EAAErC,OAAOqC,EAAE0oC,WAE1C1oC,EAAE6pC,YACF7pC,EAAE0oC,WAEJ,GAAImC,IAEFrC,GAAiBxoC,GAAG,GACK,IAArBA,EAAEomC,KAAKgC,WACT,OAjkBgB,CAqkBrB,CAED,OADApoC,EAAEuqC,OAAWvqC,EAAE0oC,SAAQ,EAAsB1oC,EAAE0oC,SAAWsC,EAvpBtC,IAwpBhBpkB,GAEF4hB,GAAiBxoC,GAAG,GACK,IAArBA,EAAEomC,KAAKgC,UAxkBS,EACA,GA6kBlBpoC,EAAEijC,WAEJuF,GAAiBxoC,GAAG,GACK,IAArBA,EAAEomC,KAAKgC,WAnlBS,EACA,CAwlBxB,CAOA,SAAS6C,GAAajrC,EAAG4mB,GAOvB,IANA,IAAIgkB,EACAC,EAEAK,IAGK,CAMP,GAAIlrC,EAAE6pC,UAAY/B,GAAe,CAE/B,GADAiC,GAAY/pC,GACRA,EAAE6pC,UAAY/B,IApsBF,IAosBmBlhB,EACjC,OAhnBgB,EAknBlB,GAAoB,IAAhB5mB,EAAE6pC,UAAmB,KAC1B,CAyCD,GApCAe,EAAY,EACR5qC,EAAE6pC,WAvoBM,IAyoBV7pC,EAAEwqC,OAAUxqC,EAAEwqC,OAASxqC,EAAEyqC,WAAczqC,EAAErC,OAAOqC,EAAE0oC,SAzoBxC,EAyoB+D,IAAM1oC,EAAE0qC,UACjFE,EAAY5qC,EAAE/D,KAAK+D,EAAE0oC,SAAW1oC,EAAEwpC,QAAUxpC,EAAE0b,KAAK1b,EAAEwqC,OACrDxqC,EAAE0b,KAAK1b,EAAEwqC,OAASxqC,EAAE0oC,UAMtB1oC,EAAEmpC,YAAcnpC,EAAE8qC,aAClB9qC,EAAEmrC,WAAanrC,EAAE8pC,YACjB9pC,EAAE8qC,aAAeE,EAEC,IAAdJ,GAA0B5qC,EAAEmpC,YAAcnpC,EAAE+qC,gBAC5C/qC,EAAE0oC,SAAWkC,GAAc5qC,EAAEqpC,OAASvB,KAKxC9nC,EAAE8qC,aAAejC,GAAc7oC,EAAG4qC,GAG9B5qC,EAAE8qC,cAAgB,IAvsBA,IAwsBlB9qC,EAAE0mC,UA/pBI,IA+pBwB1mC,EAAE8qC,cAA8B9qC,EAAE0oC,SAAW1oC,EAAE8pC,YAAc,QAK7F9pC,EAAE8qC,aAAeE,IAMjBhrC,EAAEmpC,aA1qBM,GA0qBsBnpC,EAAE8qC,cAAgB9qC,EAAEmpC,YAAa,CACjE+B,EAAalrC,EAAE0oC,SAAW1oC,EAAE6pC,UA3qBlB,EAkrBVgB,EAASlD,GAAMX,UAAUhnC,EAAGA,EAAE0oC,SAAW,EAAI1oC,EAAEmrC,WAAYnrC,EAAEmpC,YAlrBnD,GAwrBVnpC,EAAE6pC,WAAa7pC,EAAEmpC,YAAc,EAC/BnpC,EAAEmpC,aAAe,EACjB,KACQnpC,EAAE0oC,UAAYwC,IAElBlrC,EAAEwqC,OAAUxqC,EAAEwqC,OAASxqC,EAAEyqC,WAAczqC,EAAErC,OAAOqC,EAAE0oC,SA7rB5C,EA6rBmE,IAAM1oC,EAAE0qC,UACjFE,EAAY5qC,EAAE/D,KAAK+D,EAAE0oC,SAAW1oC,EAAEwpC,QAAUxpC,EAAE0b,KAAK1b,EAAEwqC,OACrDxqC,EAAE0b,KAAK1b,EAAEwqC,OAASxqC,EAAE0oC,gBAGK,KAAlB1oC,EAAEmpC,aAKb,GAJAnpC,EAAEorC,gBAAkB,EACpBprC,EAAE8qC,aAAeE,EACjBhrC,EAAE0oC,WAEEmC,IAEFrC,GAAiBxoC,GAAG,GACK,IAArBA,EAAEomC,KAAKgC,WACT,OA7rBc,CAksBxB,MAAW,GAAIpoC,EAAEorC,iBAgBX,IATAP,EAASlD,GAAMX,UAAUhnC,EAAG,EAAGA,EAAErC,OAAOqC,EAAE0oC,SAAW,MAInDF,GAAiBxoC,GAAG,GAGtBA,EAAE0oC,WACF1oC,EAAE6pC,YACuB,IAArB7pC,EAAEomC,KAAKgC,UACT,OAntBgB,OAytBlBpoC,EAAEorC,gBAAkB,EACpBprC,EAAE0oC,WACF1oC,EAAE6pC,WAEL,CAUD,OARI7pC,EAAEorC,kBAGJP,EAASlD,GAAMX,UAAUhnC,EAAG,EAAGA,EAAErC,OAAOqC,EAAE0oC,SAAW,IAErD1oC,EAAEorC,gBAAkB,GAEtBprC,EAAEuqC,OAASvqC,EAAE0oC,SAAWsC,EAAgBhrC,EAAE0oC,SAAWsC,EAvzBjC,IAwzBhBpkB,GAEF4hB,GAAiBxoC,GAAG,GACK,IAArBA,EAAEomC,KAAKgC,UAxuBS,EACA,GA6uBlBpoC,EAAEijC,WAEJuF,GAAiBxoC,GAAG,GACK,IAArBA,EAAEomC,KAAKgC,WAnvBS,EACA,CAyvBxB,CAgKA,SAASiD,GAAOC,EAAaC,EAAUC,EAAaC,EAAW/Y,GAC7Dx9B,KAAKo2C,YAAcA,EACnBp2C,KAAKq2C,SAAWA,EAChBr2C,KAAKs2C,YAAcA,EACnBt2C,KAAKu2C,UAAYA,EACjBv2C,KAAKw9B,KAAOA,CACd,CA8CA,SAASgZ,KACPx2C,KAAKkxC,KAAO,KACZlxC,KAAK89B,OAAS,EACd99B,KAAK4sC,YAAc,KACnB5sC,KAAKy2C,iBAAmB,EACxBz2C,KAAKmzC,YAAc,EACnBnzC,KAAK6sC,QAAU,EACf7sC,KAAK2B,KAAO,EACZ3B,KAAK02C,OAAS,KACd12C,KAAK22C,QAAU,EACf32C,KAAKoD,OAjgCW,EAkgChBpD,KAAK42C,YAAc,EAEnB52C,KAAKm0C,OAAS,EACdn0C,KAAK62C,OAAS,EACd72C,KAAKs0C,OAAS,EAEdt0C,KAAKyI,OAAS,KAQdzI,KAAKg1C,YAAc,EAKnBh1C,KAAK+G,KAAO,KAMZ/G,KAAKwmB,KAAO,KAEZxmB,KAAKs1C,MAAQ,EACbt1C,KAAKi1C,UAAY,EACjBj1C,KAAK82C,UAAY,EACjB92C,KAAKw1C,UAAY,EAEjBx1C,KAAKu1C,WAAa,EAOlBv1C,KAAKuzC,YAAc,EAKnBvzC,KAAK41C,aAAe,EACpB51C,KAAKi2C,WAAa,EAClBj2C,KAAKk2C,gBAAkB,EACvBl2C,KAAKwzC,SAAW,EAChBxzC,KAAK40C,YAAc,EACnB50C,KAAK20C,UAAY,EAEjB30C,KAAKi0C,YAAc,EAKnBj0C,KAAK8zC,iBAAmB,EAMxB9zC,KAAK61C,eAAiB,EAYtB71C,KAAKixC,MAAQ,EACbjxC,KAAKwxC,SAAW,EAEhBxxC,KAAK00C,WAAa,EAGlB10C,KAAKk0C,WAAa,EAYlBl0C,KAAKytC,UAAa,IAAItU,GAAMqR,MAAMuM,MAClC/2C,KAAK0tC,UAAa,IAAIvU,GAAMqR,MAAM,KAClCxqC,KAAK2tC,QAAa,IAAIxU,GAAMqR,MAAM,IAClCE,GAAK1qC,KAAKytC,WACV/C,GAAK1qC,KAAK0tC,WACVhD,GAAK1qC,KAAK2tC,SAEV3tC,KAAK0wC,OAAW,KAChB1wC,KAAK2wC,OAAW,KAChB3wC,KAAK4wC,QAAW,KAGhB5wC,KAAKqtC,SAAW,IAAIlU,GAAMqR,MAAMM,IAIhC9qC,KAAKsuC,KAAO,IAAInV,GAAMqR,MAAM,KAC5BE,GAAK1qC,KAAKsuC,MAEVtuC,KAAKuuC,SAAW,EAChBvuC,KAAKkvC,SAAW,EAKhBlvC,KAAKshB,MAAQ,IAAI6X,GAAMqR,MAAM,KAC7BE,GAAK1qC,KAAKshB,OAIVthB,KAAK+uC,MAAQ,EAEb/uC,KAAK+xC,YAAc,EAoBnB/xC,KAAK+tC,SAAW,EAEhB/tC,KAAK8uC,MAAQ,EAMb9uC,KAAK6tC,QAAU,EACf7tC,KAAK8tC,WAAa,EAClB9tC,KAAKguC,QAAU,EACfhuC,KAAKq1C,OAAS,EAGdr1C,KAAKgtC,OAAS,EAIdhtC,KAAK+sC,SAAW,CAalB,CAGA,SAASiK,GAAiB9F,GACxB,IAAIpmC,EAEJ,OAAKomC,GAASA,EAAKntC,OAInBmtC,EAAKkE,SAAWlE,EAAKmC,UAAY,EACjCnC,EAAKC,UAhsCqB,GAksC1BrmC,EAAIomC,EAAKntC,OACP8oC,QAAU,EACZ/hC,EAAEqoC,YAAc,EAEZroC,EAAEnJ,KAAO,IACXmJ,EAAEnJ,MAAQmJ,EAAEnJ,MAGdmJ,EAAEgzB,OAAUhzB,EAAEnJ,KArqCC,GAqqCmBmxC,GAClC5B,EAAKkB,MAAoB,IAAXtnC,EAAEnJ,KACd,EAEA,EACFmJ,EAAE8rC,WAvvCkB,EAwvCpBnE,GAAMlC,SAASzlC,GA5uCK,GAwtCX1K,GAAI8wC,EAAMyB,GAsBrB,CAGA,SAASsE,GAAa/F,GACpB,IAlPepmC,EAkPXyI,EAAMyjC,GAAiB9F,GAI3B,OAtvCoB,IAmvChB39B,KAnPWzI,EAoPLomC,EAAKntC,OAnPbixC,YAAc,EAAIlqC,EAAEqpC,OAGtBzJ,GAAK5/B,EAAE0b,MAIP1b,EAAE+qC,eAAiBtD,GAAoBznC,EAAEmmC,OAAOoF,SAChDvrC,EAAE4pC,WAAanC,GAAoBznC,EAAEmmC,OAAOmF,YAC5CtrC,EAAEopC,WAAa3B,GAAoBznC,EAAEmmC,OAAOqF,YAC5CxrC,EAAEgpC,iBAAmBvB,GAAoBznC,EAAEmmC,OAAOsF,UAElDzrC,EAAE0oC,SAAW,EACb1oC,EAAEyoC,YAAc,EAChBzoC,EAAE6pC,UAAY,EACd7pC,EAAEuqC,OAAS,EACXvqC,EAAE8qC,aAAe9qC,EAAEmpC,YAAc6B,EACjChrC,EAAEorC,gBAAkB,EACpBprC,EAAEwqC,MAAQ,GAmOH/hC,CACT,CAWA,SAAS2jC,GAAahG,EAAMD,EAAO7tC,EAAQ+zC,EAAYC,EAAU5F,GAC/D,IAAKN,EACH,OAAOyB,GAET,IAAIhxC,EAAO,EAiBX,IAxwC0B,IAyvCtBsvC,IACFA,EAAQ,GAGNkG,EAAa,GACfx1C,EAAO,EACPw1C,GAAcA,GAGPA,EAAa,KACpBx1C,EAAO,EACPw1C,GAAc,IAIZC,EAAW,GAAKA,EAlvCF,GALF,IAuvCgCh0C,GAC9C+zC,EAAa,GAAKA,EAAa,IAAMlG,EAAQ,GAAKA,EAAQ,GAC1DO,EAAW,GAAKA,EApwCQ,EAqwCxB,OAAOpxC,GAAI8wC,EAAMyB,IAIA,IAAfwE,IACFA,EAAa,GAIf,IAAIrsC,EAAI,IAAI0rC,GA0CZ,OAxCAtF,EAAKntC,MAAQ+G,EACbA,EAAEomC,KAAOA,EAETpmC,EAAEnJ,KAAOA,EACTmJ,EAAE4rC,OAAS,KACX5rC,EAAE+rC,OAASM,EACXrsC,EAAEqpC,OAAS,GAAKrpC,EAAE+rC,OAClB/rC,EAAEwpC,OAASxpC,EAAEqpC,OAAS,EAEtBrpC,EAAEgsC,UAAYM,EAAW,EACzBtsC,EAAEmqC,UAAY,GAAKnqC,EAAEgsC,UACrBhsC,EAAE0qC,UAAY1qC,EAAEmqC,UAAY,EAC5BnqC,EAAEyqC,eAAiBzqC,EAAEgsC,UAtvCP,EAsvC+B,GAtvC/B,GAwvCdhsC,EAAErC,OAAS,IAAI0wB,GAAMoR,KAAgB,EAAXz/B,EAAEqpC,QAC5BrpC,EAAE0b,KAAO,IAAI2S,GAAMqR,MAAM1/B,EAAEmqC,WAC3BnqC,EAAE/D,KAAO,IAAIoyB,GAAMqR,MAAM1/B,EAAEqpC,QAK3BrpC,EAAEinC,YAAc,GAAMqF,EAAW,EAEjCtsC,EAAE2rC,iBAAmC,EAAhB3rC,EAAEinC,YAIvBjnC,EAAE8hC,YAAc,IAAIzT,GAAMoR,KAAKz/B,EAAE2rC,kBAIjC3rC,EAAEgkC,MAAQ,EAAIhkC,EAAEinC,YAGhBjnC,EAAEikC,MAAQ,EAAUjkC,EAAEinC,YAEtBjnC,EAAEmmC,MAAQA,EACVnmC,EAAE0mC,SAAWA,EACb1mC,EAAE1H,OAASA,EAEJ6zC,GAAa/F,EACtB,CAjWAqB,GAAsB,CAEpB,IAAI4D,GAAO,EAAG,EAAG,EAAG,GAxiBtB,SAAwBrrC,EAAG4mB,GAIzB,IAAI2lB,EAAiB,MAOrB,IALIA,EAAiBvsC,EAAE2rC,iBAAmB,IACxCY,EAAiBvsC,EAAE2rC,iBAAmB,KAI/B,CAEP,GAAI3rC,EAAE6pC,WAAa,EAAG,CAUpB,GADAE,GAAY/pC,GACQ,IAAhBA,EAAE6pC,WA1eU,IA0eSjjB,EACvB,OAtZgB,EAyZlB,GAAoB,IAAhB5mB,EAAE6pC,UACJ,KAGH,CAID7pC,EAAE0oC,UAAY1oC,EAAE6pC,UAChB7pC,EAAE6pC,UAAY,EAGd,IAAI2C,EAAYxsC,EAAEyoC,YAAc8D,EAEhC,IAAmB,IAAfvsC,EAAE0oC,UAAkB1oC,EAAE0oC,UAAY8D,KAEpCxsC,EAAE6pC,UAAY7pC,EAAE0oC,SAAW8D,EAC3BxsC,EAAE0oC,SAAW8D,EAEbhE,GAAiBxoC,GAAG,GACK,IAArBA,EAAEomC,KAAKgC,WACT,OA9agB,EAubpB,GAAIpoC,EAAE0oC,SAAW1oC,EAAEyoC,aAAgBzoC,EAAEqpC,OAASvB,KAE5CU,GAAiBxoC,GAAG,GACK,IAArBA,EAAEomC,KAAKgC,WACT,OA3bgB,CA+brB,CAID,OAFApoC,EAAEuqC,OAAS,EAlhBS,IAohBhB3jB,GAEF4hB,GAAiBxoC,GAAG,GACK,IAArBA,EAAEomC,KAAKgC,UApcS,EACA,IA0clBpoC,EAAE0oC,SAAW1oC,EAAEyoC,cAEjBD,GAAiBxoC,GAAG,GAChBA,EAAEomC,KAAKgC,WAhdS,EAudxB,IAgdE,IAAIiD,GAAO,EAAG,EAAG,EAAG,EAAGV,IACvB,IAAIU,GAAO,EAAG,EAAG,GAAI,EAAGV,IACxB,IAAIU,GAAO,EAAG,EAAG,GAAI,GAAIV,IAEzB,IAAIU,GAAO,EAAG,EAAG,GAAI,GAAIJ,IACzB,IAAII,GAAO,EAAG,GAAI,GAAI,GAAIJ,IAC1B,IAAII,GAAO,EAAG,GAAI,IAAK,IAAKJ,IAC5B,IAAII,GAAO,EAAG,GAAI,IAAK,IAAKJ,IAC5B,IAAII,GAAO,GAAI,IAAK,IAAK,KAAMJ,IAC/B,IAAII,GAAO,GAAI,IAAK,IAAK,KAAMJ,KA2xBdwB,GAAAC,YApcnB,SAAqBtG,EAAMD,GACzB,OAAOiG,GAAahG,EAAMD,EAjzCV,EAOF,GAEI,EAnBQ,EA4zC5B,EAmcoBsG,GAAAL,aAAGA,GACHK,GAAAN,aAAGA,GACCM,GAAAP,iBAAGA,GACHO,GAAAE,iBA9hBxB,SAA0BvG,EAAM1qB,GAC9B,OAAK0qB,GAASA,EAAKntC,MACK,IAApBmtC,EAAKntC,MAAMpC,KAAqBgxC,IACpCzB,EAAKntC,MAAM2yC,OAASlwB,EA7vCA,GA2vCemsB,EAIrC,EA0hBe4E,GAAAG,QApcf,SAAiBxG,EAAMxf,GACrB,IAAIimB,EAAW7sC,EACX8sC,EAAKlxC,EAET,IAAKwqC,IAASA,EAAKntC,OACjB2tB,EAj2CkB,GAi2CCA,EAAQ,EAC3B,OAAOwf,EAAO9wC,GAAI8wC,EAAMyB,IAAkBA,GAK5C,GAFA7nC,EAAIomC,EAAKntC,OAEJmtC,EAAKxnC,SACJwnC,EAAK5X,OAA2B,IAAlB4X,EAAKgE,UACpBpqC,EAAEgzB,SAAWiV,IA12CE,IA02CcrhB,EAChC,OAAOtxB,GAAI8wC,EAA0B,IAAnBA,EAAKgC,WA51CL,EA41CsCP,IAQ1D,GALA7nC,EAAEomC,KAAOA,EACTyG,EAAY7sC,EAAE8rC,WACd9rC,EAAE8rC,WAAallB,EAvyCA,KA0yCX5mB,EAAEgzB,OAEJ,GAAe,IAAXhzB,EAAEnJ,KACJuvC,EAAKkB,MAAQ,EACbqB,GAAS3oC,EAAG,IACZ2oC,GAAS3oC,EAAG,KACZ2oC,GAAS3oC,EAAG,GACPA,EAAE4rC,QAaLjD,GAAS3oC,GAAIA,EAAE4rC,OAAOhhB,KAAO,EAAI,IACpB5qB,EAAE4rC,OAAOmB,KAAO,EAAI,IACnB/sC,EAAE4rC,OAAO9H,MAAY,EAAJ,IACjB9jC,EAAE4rC,OAAOxwC,KAAW,EAAJ,IAChB4E,EAAE4rC,OAAOpO,QAAc,GAAJ,IAEjCmL,GAAS3oC,EAAmB,IAAhBA,EAAE4rC,OAAO9wB,MACrB6tB,GAAS3oC,EAAIA,EAAE4rC,OAAO9wB,MAAQ,EAAK,KACnC6tB,GAAS3oC,EAAIA,EAAE4rC,OAAO9wB,MAAQ,GAAM,KACpC6tB,GAAS3oC,EAAIA,EAAE4rC,OAAO9wB,MAAQ,GAAM,KACpC6tB,GAAS3oC,EAAe,IAAZA,EAAEmmC,MAAc,EACfnmC,EAAE0mC,UAv3CK,GAu3CyB1mC,EAAEmmC,MAAQ,EAC1C,EAAI,GACjBwC,GAAS3oC,EAAiB,IAAdA,EAAE4rC,OAAOoB,IACjBhtC,EAAE4rC,OAAO9H,OAAS9jC,EAAE4rC,OAAO9H,MAAMhpC,SACnC6tC,GAAS3oC,EAA2B,IAAxBA,EAAE4rC,OAAO9H,MAAMhpC,QAC3B6tC,GAAS3oC,EAAIA,EAAE4rC,OAAO9H,MAAMhpC,QAAU,EAAK,MAEzCkF,EAAE4rC,OAAOmB,OACX3G,EAAKkB,MAAQpL,GAAMkK,EAAKkB,MAAOtnC,EAAE8hC,YAAa9hC,EAAE+hC,QAAS,IAE3D/hC,EAAE6rC,QAAU,EACZ7rC,EAAEgzB,OAn1CQ,KAizCV2V,GAAS3oC,EAAG,GACZ2oC,GAAS3oC,EAAG,GACZ2oC,GAAS3oC,EAAG,GACZ2oC,GAAS3oC,EAAG,GACZ2oC,GAAS3oC,EAAG,GACZ2oC,GAAS3oC,EAAe,IAAZA,EAAEmmC,MAAc,EACfnmC,EAAE0mC,UAt2CK,GAs2CyB1mC,EAAEmmC,MAAQ,EAC1C,EAAI,GACjBwC,GAAS3oC,EA7yCH,GA8yCNA,EAAEgzB,OAASgV,QA6Bf,CACE,IAAI1C,EA13CQ,GA03CiBtlC,EAAE+rC,OAAS,GAAM,IAAO,EAYrDzG,IATItlC,EAAE0mC,UA14CgB,GA04Cc1mC,EAAEmmC,MAAQ,EAC9B,EACLnmC,EAAEmmC,MAAQ,EACL,EACO,IAAZnmC,EAAEmmC,MACG,EAEA,IAEU,EACP,IAAfnmC,EAAE0oC,WAAkBpD,GAx2CZ,IAy2CZA,GAAU,GAAMA,EAAS,GAEzBtlC,EAAEgzB,OAASgV,GACXY,GAAY5oC,EAAGslC,GAGI,IAAftlC,EAAE0oC,WACJE,GAAY5oC,EAAGomC,EAAKkB,QAAU,IAC9BsB,GAAY5oC,EAAgB,MAAbomC,EAAKkB,QAEtBlB,EAAKkB,MAAQ,CACd,CAIH,GAr3CgB,KAq3CZtnC,EAAEgzB,OACJ,GAAIhzB,EAAE4rC,OAAO9H,MAAqB,CAGhC,IAFAgJ,EAAM9sC,EAAE+hC,QAED/hC,EAAE6rC,SAAmC,MAAxB7rC,EAAE4rC,OAAO9H,MAAMhpC,UAC7BkF,EAAE+hC,UAAY/hC,EAAE2rC,mBACd3rC,EAAE4rC,OAAOmB,MAAQ/sC,EAAE+hC,QAAU+K,IAC/B1G,EAAKkB,MAAQpL,GAAMkK,EAAKkB,MAAOtnC,EAAE8hC,YAAa9hC,EAAE+hC,QAAU+K,EAAKA,IAEjE3E,GAAc/B,GACd0G,EAAM9sC,EAAE+hC,QACJ/hC,EAAE+hC,UAAY/hC,EAAE2rC,oBAItBhD,GAAS3oC,EAA+B,IAA5BA,EAAE4rC,OAAO9H,MAAM9jC,EAAE6rC,UAC7B7rC,EAAE6rC,UAEA7rC,EAAE4rC,OAAOmB,MAAQ/sC,EAAE+hC,QAAU+K,IAC/B1G,EAAKkB,MAAQpL,GAAMkK,EAAKkB,MAAOtnC,EAAE8hC,YAAa9hC,EAAE+hC,QAAU+K,EAAKA,IAE7D9sC,EAAE6rC,UAAY7rC,EAAE4rC,OAAO9H,MAAMhpC,SAC/BkF,EAAE6rC,QAAU,EACZ7rC,EAAEgzB,OA34CO,GA64CZ,MAEChzB,EAAEgzB,OA/4CS,GAk5Cf,GAl5Ce,KAk5CXhzB,EAAEgzB,OACJ,GAAIhzB,EAAE4rC,OAAOxwC,KAAoB,CAC/B0xC,EAAM9sC,EAAE+hC,QAGR,EAAG,CACD,GAAI/hC,EAAE+hC,UAAY/hC,EAAE2rC,mBACd3rC,EAAE4rC,OAAOmB,MAAQ/sC,EAAE+hC,QAAU+K,IAC/B1G,EAAKkB,MAAQpL,GAAMkK,EAAKkB,MAAOtnC,EAAE8hC,YAAa9hC,EAAE+hC,QAAU+K,EAAKA,IAEjE3E,GAAc/B,GACd0G,EAAM9sC,EAAE+hC,QACJ/hC,EAAE+hC,UAAY/hC,EAAE2rC,kBAAkB,CACpC/vC,EAAM,EACN,KACD,CAIDA,EADEoE,EAAE6rC,QAAU7rC,EAAE4rC,OAAOxwC,KAAKN,OACkB,IAAxCkF,EAAE4rC,OAAOxwC,KAAKiD,WAAW2B,EAAE6rC,WAE3B,EAERlD,GAAS3oC,EAAGpE,EACpB,OAAuB,IAARA,GAELoE,EAAE4rC,OAAOmB,MAAQ/sC,EAAE+hC,QAAU+K,IAC/B1G,EAAKkB,MAAQpL,GAAMkK,EAAKkB,MAAOtnC,EAAE8hC,YAAa9hC,EAAE+hC,QAAU+K,EAAKA,IAErD,IAARlxC,IACFoE,EAAE6rC,QAAU,EACZ7rC,EAAEgzB,OAh7CU,GAk7Cf,MAEChzB,EAAEgzB,OAp7CY,GAu7ClB,GAv7CkB,KAu7CdhzB,EAAEgzB,OACJ,GAAIhzB,EAAE4rC,OAAOpO,QAAuB,CAClCsP,EAAM9sC,EAAE+hC,QAGR,EAAG,CACD,GAAI/hC,EAAE+hC,UAAY/hC,EAAE2rC,mBACd3rC,EAAE4rC,OAAOmB,MAAQ/sC,EAAE+hC,QAAU+K,IAC/B1G,EAAKkB,MAAQpL,GAAMkK,EAAKkB,MAAOtnC,EAAE8hC,YAAa9hC,EAAE+hC,QAAU+K,EAAKA,IAEjE3E,GAAc/B,GACd0G,EAAM9sC,EAAE+hC,QACJ/hC,EAAE+hC,UAAY/hC,EAAE2rC,kBAAkB,CACpC/vC,EAAM,EACN,KACD,CAIDA,EADEoE,EAAE6rC,QAAU7rC,EAAE4rC,OAAOpO,QAAQ1iC,OACkB,IAA3CkF,EAAE4rC,OAAOpO,QAAQn/B,WAAW2B,EAAE6rC,WAE9B,EAERlD,GAAS3oC,EAAGpE,EACpB,OAAuB,IAARA,GAELoE,EAAE4rC,OAAOmB,MAAQ/sC,EAAE+hC,QAAU+K,IAC/B1G,EAAKkB,MAAQpL,GAAMkK,EAAKkB,MAAOtnC,EAAE8hC,YAAa9hC,EAAE+hC,QAAU+K,EAAKA,IAErD,IAARlxC,IACFoE,EAAEgzB,OAAS+U,GAEd,MAEC/nC,EAAEgzB,OAAS+U,GAsBf,GAnBI/nC,EAAEgzB,SAAW+U,KACX/nC,EAAE4rC,OAAOmB,MACP/sC,EAAE+hC,QAAU,EAAI/hC,EAAE2rC,kBACpBxD,GAAc/B,GAEZpmC,EAAE+hC,QAAU,GAAK/hC,EAAE2rC,mBACrBhD,GAAS3oC,EAAgB,IAAbomC,EAAKkB,OACjBqB,GAAS3oC,EAAIomC,EAAKkB,OAAS,EAAK,KAChClB,EAAKkB,MAAQ,EACbtnC,EAAEgzB,OAASgV,KAIbhoC,EAAEgzB,OAASgV,IAMG,IAAdhoC,EAAE+hC,SAEJ,GADAoG,GAAc/B,GACS,IAAnBA,EAAKgC,UAQP,OADApoC,EAAE8rC,YAAc,EA5jDA,OAokDb,GAAsB,IAAlB1F,EAAKgE,UAAkBtD,GAAKlgB,IAAUkgB,GAAK+F,IA5kDlC,IA6kDlBjmB,EACA,OAAOtxB,GAAI8wC,GA/jDO,GAmkDpB,GAAIpmC,EAAEgzB,SAAWiV,IAAkC,IAAlB7B,EAAKgE,SACpC,OAAO90C,GAAI8wC,GApkDO,GAykDpB,GAAsB,IAAlBA,EAAKgE,UAAkC,IAAhBpqC,EAAE6pC,WA5lDT,IA6lDjBjjB,GAAwB5mB,EAAEgzB,SAAWiV,GAAe,CACrD,IAAIgF,EA/jDoB,IA+jDVjtC,EAAE0mC,SAxqBpB,SAAsB1mC,EAAG4mB,GAGvB,IAFA,IAAIikB,IAEK,CAEP,GAAoB,IAAhB7qC,EAAE6pC,YACJE,GAAY/pC,GACQ,IAAhBA,EAAE6pC,WAAiB,CACrB,GA97Bc,IA87BVjjB,EACF,OA12Bc,EA42BhB,KACD,CAUH,GANA5mB,EAAE8qC,aAAe,EAGjBD,EAASlD,GAAMX,UAAUhnC,EAAG,EAAGA,EAAErC,OAAOqC,EAAE0oC,WAC1C1oC,EAAE6pC,YACF7pC,EAAE0oC,WACEmC,IAEFrC,GAAiBxoC,GAAG,GACK,IAArBA,EAAEomC,KAAKgC,WACT,OA33BgB,CA+3BrB,CAED,OADApoC,EAAEuqC,OAAS,EAj9BS,IAk9BhB3jB,GAEF4hB,GAAiBxoC,GAAG,GACK,IAArBA,EAAEomC,KAAKgC,UAl4BS,EACA,GAu4BlBpoC,EAAEijC,WAEJuF,GAAiBxoC,GAAG,GACK,IAArBA,EAAEomC,KAAKgC,WA74BS,EACA,CAk5BxB,CAsnBmD8E,CAAaltC,EAAG4mB,GA9jDvC,IA+jDrB5mB,EAAE0mC,SAxwBT,SAAqB1mC,EAAG4mB,GAOtB,IANA,IAAIikB,EACA5uC,EACAgtC,EAAMQ,EAENH,EAAOtpC,EAAErC,SAEJ,CAKP,GAAIqC,EAAE6pC,WAAanJ,GAAW,CAE5B,GADAqJ,GAAY/pC,GACRA,EAAE6pC,WAAanJ,IAr2BH,IAq2BgB9Z,EAC9B,OAjxBgB,EAmxBlB,GAAoB,IAAhB5mB,EAAE6pC,UAAmB,KAC1B,CAID,GADA7pC,EAAE8qC,aAAe,EACb9qC,EAAE6pC,WAtyBM,GAsyBoB7pC,EAAE0oC,SAAW,IAE3CzsC,EAAOqtC,EADPL,EAAOjpC,EAAE0oC,SAAW,MAEPY,IAAOL,IAAShtC,IAASqtC,IAAOL,IAAShtC,IAASqtC,IAAOL,GAAO,CAC3EQ,EAASzpC,EAAE0oC,SAAWhI,GACtB,UAESzkC,IAASqtC,IAAOL,IAAShtC,IAASqtC,IAAOL,IACzChtC,IAASqtC,IAAOL,IAAShtC,IAASqtC,IAAOL,IACzChtC,IAASqtC,IAAOL,IAAShtC,IAASqtC,IAAOL,IACzChtC,IAASqtC,IAAOL,IAAShtC,IAASqtC,IAAOL,IACzCA,EAAOQ,GAChBzpC,EAAE8qC,aAAepK,IAAa+I,EAASR,GACnCjpC,EAAE8qC,aAAe9qC,EAAE6pC,YACrB7pC,EAAE8qC,aAAe9qC,EAAE6pC,UAEtB,CAuBH,GAlBI7pC,EAAE8qC,cA3zBM,GA+zBVD,EAASlD,GAAMX,UAAUhnC,EAAG,EAAGA,EAAE8qC,aA/zBvB,GAi0BV9qC,EAAE6pC,WAAa7pC,EAAE8qC,aACjB9qC,EAAE0oC,UAAY1oC,EAAE8qC,aAChB9qC,EAAE8qC,aAAe,IAKjBD,EAASlD,GAAMX,UAAUhnC,EAAG,EAAGA,EAAErC,OAAOqC,EAAE0oC,WAE1C1oC,EAAE6pC,YACF7pC,EAAE0oC,YAEAmC,IAEFrC,GAAiBxoC,GAAG,GACK,IAArBA,EAAEomC,KAAKgC,WACT,OAn0BgB,CAu0BrB,CAED,OADApoC,EAAEuqC,OAAS,EAz5BS,IA05BhB3jB,GAEF4hB,GAAiBxoC,GAAG,GACK,IAArBA,EAAEomC,KAAKgC,UA10BS,EACA,GA+0BlBpoC,EAAEijC,WAEJuF,GAAiBxoC,GAAG,GACK,IAArBA,EAAEomC,KAAKgC,WAr1BS,EACA,CA01BxB,CA+qB8B+E,CAAYntC,EAAG4mB,GACrC6gB,GAAoBznC,EAAEmmC,OAAOzT,KAAK1yB,EAAG4mB,GAKzC,GA9gDoB,IA2gDhBqmB,GA1gDgB,IA0gDgBA,IAClCjtC,EAAEgzB,OAASiV,IA9gDO,IAghDhBgF,GA9gDgB,IA8gDWA,EAK7B,OAJuB,IAAnB7G,EAAKgC,YACPpoC,EAAE8rC,YAAc,GA3lDF,EAumDlB,GA7hDoB,IA6hDhBmB,IAlnDc,IAmnDZrmB,EACF+gB,GAAMT,UAAUlnC,GAhnDF,IAknDP4mB,IAEP+gB,GAAMvC,iBAAiBplC,EAAG,EAAG,GAAG,GAtnDlB,IA0nDV4mB,IAEFgZ,GAAK5/B,EAAE0b,MAEa,IAAhB1b,EAAE6pC,YACJ7pC,EAAE0oC,SAAW,EACb1oC,EAAEyoC,YAAc,EAChBzoC,EAAEuqC,OAAS,KAIjBpC,GAAc/B,GACS,IAAnBA,EAAKgC,WAEP,OADApoC,EAAE8rC,YAAc,EA9nDF,CAkoDnB,CAID,OA9oDoB,IA8oDhBllB,EAtoDgB,EAuoDhB5mB,EAAEnJ,MAAQ,EAtoDM,GAyoDL,IAAXmJ,EAAEnJ,MACJ8xC,GAAS3oC,EAAgB,IAAbomC,EAAKkB,OACjBqB,GAAS3oC,EAAIomC,EAAKkB,OAAS,EAAK,KAChCqB,GAAS3oC,EAAIomC,EAAKkB,OAAS,GAAM,KACjCqB,GAAS3oC,EAAIomC,EAAKkB,OAAS,GAAM,KACjCqB,GAAS3oC,EAAmB,IAAhBomC,EAAKkE,UACjB3B,GAAS3oC,EAAIomC,EAAKkE,UAAY,EAAK,KACnC3B,GAAS3oC,EAAIomC,EAAKkE,UAAY,GAAM,KACpC3B,GAAS3oC,EAAIomC,EAAKkE,UAAY,GAAM,OAIpC1B,GAAY5oC,EAAGomC,EAAKkB,QAAU,IAC9BsB,GAAY5oC,EAAgB,MAAbomC,EAAKkB,QAGtBa,GAAc/B,GAIVpmC,EAAEnJ,KAAO,IAAKmJ,EAAEnJ,MAAQmJ,EAAEnJ,MAET,IAAdmJ,EAAE+hC,QAhqDW,EACA,EAgqDtB,EAyHkB0K,GAAAW,WAvHlB,SAAoBhH,GAClB,IAAIpT,EAEJ,OAAKoT,GAAsBA,EAAKntC,MArmDjB,MAymDf+5B,EAASoT,EAAKntC,MAAM+5B,SAxmDJ,KA0mDdA,GAzmDa,KA0mDbA,GAzmDgB,KA0mDhBA,GACAA,IAAW+U,IACX/U,IAAWgV,IACXhV,IAAWiV,GAEJ3yC,GAAI8wC,EAAMyB,KAGnBzB,EAAKntC,MAAQ,KAEN+5B,IAAWgV,GAAa1yC,GAAI8wC,GAnrDf,GALA,GAuqDXyB,EAkBX,EAkG4B4E,GAAAY,qBA3F5B,SAA8BjH,EAAMkH,GAClC,IAEIttC,EACAoF,EAAKzB,EACL9M,EACA02C,EACA1zC,EACA20B,EACAgf,EARAC,EAAaH,EAAWxyC,OAU5B,IAAKsrC,IAAsBA,EAAKntC,MAC9B,OAAO4uC,GAMT,GAAa,KAFbhxC,GADAmJ,EAAIomC,EAAKntC,OACApC,OAEmB,IAATA,GAjpDJ,KAipDkBmJ,EAAEgzB,QAA0BhzB,EAAE6pC,UAC7D,OAAOhC,GAmCT,IA/Ba,IAAThxC,IAEFuvC,EAAKkB,MAAQM,GAAQxB,EAAKkB,MAAOgG,EAAYG,EAAY,IAG3DztC,EAAEnJ,KAAO,EAGL42C,GAAcztC,EAAEqpC,SACL,IAATxyC,IAEF+oC,GAAK5/B,EAAE0b,MACP1b,EAAE0oC,SAAW,EACb1oC,EAAEyoC,YAAc,EAChBzoC,EAAEuqC,OAAS,GAIbiD,EAAU,IAAInf,GAAMoR,KAAKz/B,EAAEqpC,QAC3Bhb,GAAM6Q,SAASsO,EAASF,EAAYG,EAAaztC,EAAEqpC,OAAQrpC,EAAEqpC,OAAQ,GACrEiE,EAAaE,EACbC,EAAaztC,EAAEqpC,QAGjBkE,EAAQnH,EAAKgE,SACbvwC,EAAOusC,EAAKiE,QACZ7b,EAAQ4X,EAAK5X,MACb4X,EAAKgE,SAAWqD,EAChBrH,EAAKiE,QAAU,EACfjE,EAAK5X,MAAQ8e,EACbvD,GAAY/pC,GACLA,EAAE6pC,WA3rDK,GA2rDmB,CAC/BzkC,EAAMpF,EAAE0oC,SACR/kC,EAAI3D,EAAE6pC,YACN,GAEE7pC,EAAEwqC,OAAUxqC,EAAEwqC,OAASxqC,EAAEyqC,WAAczqC,EAAErC,OAAOyH,EAhsDtC,EAgsDwD,IAAMpF,EAAE0qC,UAE1E1qC,EAAE/D,KAAKmJ,EAAMpF,EAAEwpC,QAAUxpC,EAAE0b,KAAK1b,EAAEwqC,OAElCxqC,EAAE0b,KAAK1b,EAAEwqC,OAASplC,EAClBA,YACSzB,GACX3D,EAAE0oC,SAAWtjC,EACbpF,EAAE6pC,UAAYmB,EACdjB,GAAY/pC,EACb,CAWD,OAVAA,EAAE0oC,UAAY1oC,EAAE6pC,UAChB7pC,EAAEyoC,YAAczoC,EAAE0oC,SAClB1oC,EAAEuqC,OAASvqC,EAAE6pC,UACb7pC,EAAE6pC,UAAY,EACd7pC,EAAE8qC,aAAe9qC,EAAEmpC,YAAc6B,EACjChrC,EAAEorC,gBAAkB,EACpBhF,EAAKiE,QAAUxwC,EACfusC,EAAK5X,MAAQA,EACb4X,EAAKgE,SAAWmD,EAChBvtC,EAAEnJ,KAAOA,EA/wDW,CAixDtB,EAWmB41C,GAAAiB,YAAG,+CEp0DlBrf,GAAQr4B,GAQR23C,IAAe,EACfC,IAAmB,EAEvB,IAAMxpC,OAAOsC,aAAarR,MAAM,KAAM,CAAE,GAA4C,CAApC,MAAOw4C,GAAMF,IAAe,CAAQ,CACpF,IAAMvpC,OAAOsC,aAAarR,MAAM,KAAM,IAAI0I,WAAW,GAA+C,CAAxC,MAAO8vC,GAAMD,IAAmB,CAAQ,CAOpG,IADA,IAAIxV,GAAW,IAAI/J,GAAMoR,KAAK,KACrBqO,GAAI,EAAGA,GAAI,IAAKA,KACvB1V,GAAS0V,IAAMA,IAAK,IAAM,EAAIA,IAAK,IAAM,EAAIA,IAAK,IAAM,EAAIA,IAAK,IAAM,EAAIA,IAAK,IAAM,EAAI,EA4D5F,SAASC,GAAc1pC,EAAKjG,GAI1B,GAAIA,EAAM,QACHiG,EAAIqF,UAAYkkC,KAAuBvpC,EAAIqF,UAAYikC,IAC1D,OAAOvpC,OAAOsC,aAAarR,MAAM,KAAMg5B,GAAM2Q,UAAU36B,EAAKjG,IAKhE,IADA,IAAIxF,EAAS,GACJmC,EAAI,EAAGA,EAAIqD,EAAKrD,IACvBnC,GAAUwL,OAAOsC,aAAarC,EAAItJ,IAEpC,OAAOnC,CACT,CAzEAw/B,GAAS,KAAOA,GAAS,KAAO,EAId4V,GAAAnV,WAAG,SAAUzzB,GAC7B,IAAIf,EAAK/D,EAAGm4B,EAAIC,EAAO39B,EAAG49B,EAAUvzB,EAAItK,OAAQ89B,EAAU,EAG1D,IAAKF,EAAQ,EAAGA,EAAQC,EAASD,IAEV,QAAZ,OADTp4B,EAAI8E,EAAI/G,WAAWq6B,MACaA,EAAQ,EAAIC,GAEpB,QAAZ,OADVF,EAAKrzB,EAAI/G,WAAWq6B,EAAQ,OAE1Bp4B,EAAI,OAAYA,EAAI,OAAW,KAAOm4B,EAAK,OAC3CC,KAGJE,GAAWt4B,EAAI,IAAO,EAAIA,EAAI,KAAQ,EAAIA,EAAI,MAAU,EAAI,EAO9D,IAHA+D,EAAM,IAAIgqB,GAAMoR,KAAK7G,GAGhB79B,EAAI,EAAG29B,EAAQ,EAAG39B,EAAI69B,EAASF,IAEb,QAAZ,OADTp4B,EAAI8E,EAAI/G,WAAWq6B,MACaA,EAAQ,EAAIC,GAEpB,QAAZ,OADVF,EAAKrzB,EAAI/G,WAAWq6B,EAAQ,OAE1Bp4B,EAAI,OAAYA,EAAI,OAAW,KAAOm4B,EAAK,OAC3CC,KAGAp4B,EAAI,IAEN+D,EAAItJ,KAAOuF,EACFA,EAAI,MAEb+D,EAAItJ,KAAO,IAAQuF,IAAM,EACzB+D,EAAItJ,KAAO,IAAY,GAAJuF,GACVA,EAAI,OAEb+D,EAAItJ,KAAO,IAAQuF,IAAM,GACzB+D,EAAItJ,KAAO,IAAQuF,IAAM,EAAI,GAC7B+D,EAAItJ,KAAO,IAAY,GAAJuF,IAGnB+D,EAAItJ,KAAO,IAAQuF,IAAM,GACzB+D,EAAItJ,KAAO,IAAQuF,IAAM,GAAK,GAC9B+D,EAAItJ,KAAO,IAAQuF,IAAM,EAAI,GAC7B+D,EAAItJ,KAAO,IAAY,GAAJuF,GAIvB,OAAO+D,CACT,EAsBqB2pC,GAAAD,cAAG,SAAU1pC,GAChC,OAAO0pC,GAAc1pC,EAAKA,EAAIvJ,OAChC,EAIqBkzC,GAAAC,cAAG,SAAU7oC,GAEhC,IADA,IAAIf,EAAM,IAAIgqB,GAAMoR,KAAKr6B,EAAItK,QACpBC,EAAI,EAAGqD,EAAMiG,EAAIvJ,OAAQC,EAAIqD,EAAKrD,IACzCsJ,EAAItJ,GAAKqK,EAAI/G,WAAWtD,GAE1B,OAAOsJ,CACT,EAIA2pC,GAAA/U,WAAqB,SAAU50B,EAAK2E,GAClC,IAAIjO,EAAG2N,EAAKpI,EAAGy4B,EACX36B,EAAM4K,GAAO3E,EAAIvJ,OAKjBk+B,EAAW,IAAIh7B,MAAY,EAANI,GAEzB,IAAKsK,EAAM,EAAG3N,EAAI,EAAGA,EAAIqD,GAGvB,IAFAkC,EAAI+D,EAAItJ,MAEA,IAAQi+B,EAAStwB,KAASpI,OAIlC,IAFAy4B,EAAQX,GAAS93B,IAEL,EAAK04B,EAAStwB,KAAS,MAAQ3N,GAAKg+B,EAAQ,MAAxD,CAKA,IAFAz4B,GAAe,IAAVy4B,EAAc,GAAiB,IAAVA,EAAc,GAAO,EAExCA,EAAQ,GAAKh+B,EAAIqD,GACtBkC,EAAKA,GAAK,EAAiB,GAAX+D,EAAItJ,KACpBg+B,IAIEA,EAAQ,EAAKC,EAAStwB,KAAS,MAE/BpI,EAAI,MACN04B,EAAStwB,KAASpI,GAElBA,GAAK,MACL04B,EAAStwB,KAAS,MAAWpI,GAAK,GAAM,KACxC04B,EAAStwB,KAAS,MAAc,KAAJpI,EAlBwC,CAsBxE,OAAOytC,GAAc/U,EAAUtwB,EACjC,EASAslC,GAAA5U,WAAqB,SAAU/0B,EAAK2E,GAClC,IAAIvB,EAOJ,KALAuB,EAAMA,GAAO3E,EAAIvJ,QACPuJ,EAAIvJ,SAAUkO,EAAM3E,EAAIvJ,QAGlC2M,EAAMuB,EAAM,EACLvB,GAAO,GAA2B,MAAV,IAAXpD,EAAIoD,KAAyBA,IAIjD,OAAIA,EAAM,GAIE,IAARA,EAJkBuB,EAMdvB,EAAM2wB,GAAS/zB,EAAIoD,IAAQuB,EAAOvB,EAAMuB,CAClD,EC5IA,IAAAklC,GAzBA,WAEEh5C,KAAKs5B,MAAQ,KACbt5B,KAAKm1C,QAAU,EAEfn1C,KAAKk1C,SAAW,EAEhBl1C,KAAKo1C,SAAW,EAEhBp1C,KAAK0J,OAAS,KACd1J,KAAKozC,SAAW,EAEhBpzC,KAAKkzC,UAAY,EAEjBlzC,KAAKqzC,UAAY,EAEjBrzC,KAAKogB,IAAM,GAEXpgB,KAAK+D,MAAQ,KAEb/D,KAAKmxC,UAAY,EAEjBnxC,KAAKoyC,MAAQ,CACf,ECzCI6G,GAAen4C,GACfq4B,GAAexG,GACfmmB,GAAellB,GACfxT,GAAeiV,GACf6jB,GAAenlB,GAEfroB,GAAW9M,OAAOgC,UAAU8K,SA8GhC,SAASytC,GAAQjxB,GACf,KAAMloB,gBAAgBm5C,IAAU,OAAO,IAAIA,GAAQjxB,GAEnDloB,KAAKkoB,QAAUiR,GAAMyQ,OAAO,CAC1BqH,OAtGwB,EAuGxB7tC,OAnGc,EAoGdg2C,UAAW,MACXjC,WAAY,GACZC,SAAU,EACV5F,SAzGwB,EA0GxB6H,GAAI,IACHnxB,GAAW,CAAA,GAEd,IAAIoxB,EAAMt5C,KAAKkoB,QAEXoxB,EAAIC,KAAQD,EAAInC,WAAa,EAC/BmC,EAAInC,YAAcmC,EAAInC,WAGfmC,EAAIE,MAASF,EAAInC,WAAa,GAAOmC,EAAInC,WAAa,KAC7DmC,EAAInC,YAAc,IAGpBn3C,KAAKI,IAAS,EACdJ,KAAKogB,IAAS,GACdpgB,KAAK6oB,OAAS,EACd7oB,KAAKoqC,OAAS,GAEdpqC,KAAKkxC,KAAO,IAAIgI,GAChBl5C,KAAKkxC,KAAKgC,UAAY,EAEtB,IAAIpV,EAASmb,GAAa/B,aACxBl3C,KAAKkxC,KACLoI,EAAIrI,MACJqI,EAAIl2C,OACJk2C,EAAInC,WACJmC,EAAIlC,SACJkC,EAAI9H,UAGN,GA9IoB,IA8IhB1T,EACF,MAAM,IAAI95B,MAAMoc,GAAI0d,IAOtB,GAJIwb,EAAIlJ,QACN6I,GAAaxB,iBAAiBz3C,KAAKkxC,KAAMoI,EAAIlJ,QAG3CkJ,EAAIlB,WAAY,CAClB,IAAIqB,EAaJ,GATEA,EAF4B,iBAAnBH,EAAIlB,WAENU,GAAQnV,WAAW2V,EAAIlB,YACa,yBAAlC1sC,GAASlJ,KAAK82C,EAAIlB,YACpB,IAAIvvC,WAAWywC,EAAIlB,YAEnBkB,EAAIlB,WA/JK,KAkKlBta,EAASmb,GAAad,qBAAqBn4C,KAAKkxC,KAAMuI,IAGpD,MAAM,IAAIz1C,MAAMoc,GAAI0d,IAGtB99B,KAAK05C,WAAY,CAClB,CACH,CAuKA,SAAShC,GAAQpe,EAAOpR,GACtB,IAAIyxB,EAAW,IAAIR,GAAQjxB,GAK3B,GAHAyxB,EAASt0C,KAAKi0B,GAAO,GAGjBqgB,EAASv5C,IAAO,MAAMu5C,EAASv5B,KAAOA,GAAIu5B,EAASv5C,KAEvD,OAAOu5C,EAASj2C,MAClB,CAjJAy1C,GAAQv4C,UAAUyE,KAAO,SAAUiI,EAAMssC,GACvC,IAEI9b,EAAQ+b,EAFR3I,EAAOlxC,KAAKkxC,KACZkI,EAAYp5C,KAAKkoB,QAAQkxB,UAG7B,GAAIp5C,KAAK6oB,MAAS,OAAO,EAEzBgxB,EAASD,MAAWA,EAAQA,GAAkB,IAATA,EAlNjB,EADA,EAsNA,iBAATtsC,EAET4jC,EAAK5X,MAAQwf,GAAQnV,WAAWr2B,GACC,yBAAxB5B,GAASlJ,KAAK8K,GACvB4jC,EAAK5X,MAAQ,IAAIzwB,WAAWyE,GAE5B4jC,EAAK5X,MAAQhsB,EAGf4jC,EAAKiE,QAAU,EACfjE,EAAKgE,SAAWhE,EAAK5X,MAAM1zB,OAE3B,EAAG,CAQD,GAPuB,IAAnBsrC,EAAKgC,YACPhC,EAAKxnC,OAAS,IAAIyvB,GAAMoR,KAAK6O,GAC7BlI,EAAKkC,SAAW,EAChBlC,EAAKgC,UAAYkG,GAlOD,KAoOlBtb,EAASmb,GAAavB,QAAQxG,EAAM2I,KArOlB,IAuOa/b,EAG7B,OAFA99B,KAAK85C,MAAMhc,GACX99B,KAAK6oB,OAAQ,GACN,EAEc,IAAnBqoB,EAAKgC,YAAsC,IAAlBhC,EAAKgE,UA9OhB,IA8OmC2E,GA1OnC,IA0OyDA,KACjD,WAApB75C,KAAKkoB,QAAQmxB,GACfr5C,KAAK+5C,OAAOjB,GAAQD,cAAc1f,GAAM2Q,UAAUoH,EAAKxnC,OAAQwnC,EAAKkC,YAEpEpzC,KAAK+5C,OAAO5gB,GAAM2Q,UAAUoH,EAAKxnC,OAAQwnC,EAAKkC,WAGtD,QAAYlC,EAAKgE,SAAW,GAAwB,IAAnBhE,EAAKgC,YAlPhB,IAkPoCpV,GAGxD,OAxPoB,IAwPhB+b,GACF/b,EAASmb,GAAaf,WAAWl4C,KAAKkxC,MACtClxC,KAAK85C,MAAMhc,GACX99B,KAAK6oB,OAAQ,EAzPK,IA0PXiV,GAxPW,IA4PhB+b,IACF75C,KAAK85C,MA/Pa,GAgQlB5I,EAAKgC,UAAY,GACV,EAIX,EAYAiG,GAAQv4C,UAAUm5C,OAAS,SAAUjwB,GACnC9pB,KAAKoqC,OAAO/kC,KAAKykB,EACnB,EAaAqvB,GAAQv4C,UAAUk5C,MAAQ,SAAUhc,GAhSd,IAkShBA,IACsB,WAApB99B,KAAKkoB,QAAQmxB,GACfr5C,KAAK0D,OAAS1D,KAAKoqC,OAAOzgC,KAAK,IAE/B3J,KAAK0D,OAASy1B,GAAMgR,cAAcnqC,KAAKoqC,SAG3CpqC,KAAKoqC,OAAS,GACdpqC,KAAKI,IAAM09B,EACX99B,KAAKogB,IAAMpgB,KAAKkxC,KAAK9wB,GACvB,EA+Ee45B,GAAAb,QAAGA,GACHa,GAAAtC,QAAGA,GACAsC,GAAAC,WAxBlB,SAAoB3gB,EAAOpR,GAGzB,OAFAA,EAAUA,GAAW,IACbqxB,KAAM,EACP7B,GAAQpe,EAAOpR,EACxB,EAqBA8xB,GAAAR,KAVA,SAAclgB,EAAOpR,GAGnB,OAFAA,EAAUA,GAAW,IACbsxB,MAAO,EACR9B,GAAQpe,EAAOpR,EACxB,kBCpXIiR,GAAQr4B,GAERo5C,GAAU,GASVC,GAAQ,CACV,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACrD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAG3DC,GAAO,CACT,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAGtDC,GAAQ,CACV,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IACtD,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAClD,KAAM,MAAO,MAAO,MAAO,EAAG,GAG5BC,GAAO,CACT,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpC,GAAI,GAAI,GAAI,GAAI,GAAI,IC9BlBnhB,GAAgBr4B,GAChB4xC,GAAgB/f,GAChBqU,GAAgBpT,GAChB2mB,GCoCa,SAAsBrJ,EAAM5nC,GAC3C,IAAIvF,EACAy2C,EACAlqB,EACAmqB,EACA7C,EACAruC,EAEAmxC,EAEAC,EACAC,EACAC,EAEAC,EACAC,EACAzN,EACA0N,EACAC,EACAC,EACAC,EACAC,EACAC,EAEAnyC,EACAwjC,EACAngC,EACA+uC,EAGAhiB,EAAO5vB,EAGX3F,EAAQmtC,EAAKntC,MAEby2C,EAAMtJ,EAAKiE,QACX7b,EAAQ4X,EAAK5X,MACbhJ,EAAOkqB,GAAOtJ,EAAKgE,SAAW,GAC9BuF,EAAOvJ,EAAKkC,SACZ1pC,EAASwnC,EAAKxnC,OACdkuC,EAAM6C,GAAQnxC,EAAQ4nC,EAAKgC,WAC3B3pC,EAAMkxC,GAAQvJ,EAAKgC,UAAY,KAE/BwH,EAAO32C,EAAM22C,KAEbC,EAAQ52C,EAAM42C,MACdC,EAAQ72C,EAAM62C,MACdC,EAAQ92C,EAAM82C,MACdC,EAAW/2C,EAAM0E,OACjBsyC,EAAOh3C,EAAMg3C,KACbzN,EAAOvpC,EAAMupC,KACb0N,EAAQj3C,EAAMw3C,QACdN,EAAQl3C,EAAMy3C,SACdN,GAAS,GAAKn3C,EAAM03C,SAAW,EAC/BN,GAAS,GAAKp3C,EAAM23C,UAAY,EAMhCC,EACA,EAAG,CACGrO,EAAO,KACTyN,GAAQzhB,EAAMkhB,MAAUlN,EACxBA,GAAQ,EACRyN,GAAQzhB,EAAMkhB,MAAUlN,EACxBA,GAAQ,GAGV8N,EAAOJ,EAAMD,EAAOG,GAEpBU,EACA,OAAS,CAKP,GAHAb,KADAM,EAAKD,IAAS,GAEd9N,GAAQ+N,EAEG,KADXA,EAAMD,IAAS,GAAM,KAKnB1xC,EAAO+wC,KAAiB,MAAPW,MAEd,MAAS,GAALC,GAwKJ,IAAkB,IAAR,GAALA,GAAgB,CACxBD,EAAOJ,GAAc,MAAPI,IAA8BL,GAAS,GAAKM,GAAM,IAChE,SAASO,CACV,CACI,GAAS,GAALP,EAAS,CAEhBt3C,EAAM61C,KAtSH,GAuSH,MAAM+B,CACP,CAECzK,EAAK9wB,IAAM,8BACXrc,EAAM61C,KA5SJ,GA6SF,MAAM+B,CACP,CApLCzyC,EAAa,MAAPkyC,GACNC,GAAM,MAEA/N,EAAO+N,IACTN,GAAQzhB,EAAMkhB,MAAUlN,EACxBA,GAAQ,GAEVpkC,GAAO6xC,GAAS,GAAKM,GAAM,EAC3BN,KAAUM,EACV/N,GAAQ+N,GAGN/N,EAAO,KACTyN,GAAQzhB,EAAMkhB,MAAUlN,EACxBA,GAAQ,EACRyN,GAAQzhB,EAAMkhB,MAAUlN,EACxBA,GAAQ,GAEV8N,EAAOH,EAAMF,EAAOI,GAEpBU,EACA,OAAS,CAMP,GAJAd,KADAM,EAAKD,IAAS,GAEd9N,GAAQ+N,IAGC,IAFTA,EAAMD,IAAS,GAAM,MAiIhB,IAAkB,IAAR,GAALC,GAAgB,CACxBD,EAAOH,GAAc,MAAPG,IAA8BL,GAAS,GAAKM,GAAM,IAChE,SAASQ,CACV,CAEC3K,EAAK9wB,IAAM,wBACXrc,EAAM61C,KA1RR,GA2RE,MAAM+B,CACP,CA1HC,GAZAjP,EAAc,MAAP0O,EAEH9N,GADJ+N,GAAM,MAEJN,GAAQzhB,EAAMkhB,MAAUlN,GACxBA,GAAQ,GACG+N,IACTN,GAAQzhB,EAAMkhB,MAAUlN,EACxBA,GAAQ,KAGZZ,GAAQqO,GAAS,GAAKM,GAAM,GAEjBX,EAAM,CACfxJ,EAAK9wB,IAAM,gCACXrc,EAAM61C,KApKV,GAqKI,MAAM+B,CACP,CAMD,GAJAZ,KAAUM,EACV/N,GAAQ+N,EAGJ3O,GADJ2O,EAAKZ,EAAO7C,GACG,CAEb,IADAyD,EAAK3O,EAAO2O,GACHT,GACH72C,EAAM+3C,KAAM,CACd5K,EAAK9wB,IAAM,gCACXrc,EAAM61C,KAjLd,GAkLQ,MAAM+B,CACP,CA0BH,GAFApvC,EAAO,EACP+uC,EAAcR,EACA,IAAVD,GAEF,GADAtuC,GAAQouC,EAAQU,EACZA,EAAKnyC,EAAK,CACZA,GAAOmyC,EACP,GACE3xC,EAAO+wC,KAAUK,EAASvuC,aACjB8uC,GACX9uC,EAAOkuC,EAAO/N,EACd4O,EAAc5xC,CACf,OAEE,GAAImxC,EAAQQ,GAGf,GAFA9uC,GAAQouC,EAAQE,EAAQQ,GACxBA,GAAMR,GACG3xC,EAAK,CACZA,GAAOmyC,EACP,GACE3xC,EAAO+wC,KAAUK,EAASvuC,aACjB8uC,GAEX,GADA9uC,EAAO,EACHsuC,EAAQ3xC,EAAK,CAEfA,GADAmyC,EAAKR,EAEL,GACEnxC,EAAO+wC,KAAUK,EAASvuC,aACjB8uC,GACX9uC,EAAOkuC,EAAO/N,EACd4O,EAAc5xC,CACf,CACF,OAID,GADA6C,GAAQsuC,EAAQQ,EACZA,EAAKnyC,EAAK,CACZA,GAAOmyC,EACP,GACE3xC,EAAO+wC,KAAUK,EAASvuC,aACjB8uC,GACX9uC,EAAOkuC,EAAO/N,EACd4O,EAAc5xC,CACf,CAEH,KAAOR,EAAM,GACXQ,EAAO+wC,KAAUa,EAAY/uC,KAC7B7C,EAAO+wC,KAAUa,EAAY/uC,KAC7B7C,EAAO+wC,KAAUa,EAAY/uC,KAC7BrD,GAAO,EAELA,IACFQ,EAAO+wC,KAAUa,EAAY/uC,KACzBrD,EAAM,IACRQ,EAAO+wC,KAAUa,EAAY/uC,MAGlC,KACI,CACHA,EAAOkuC,EAAO/N,EACd,GACEhjC,EAAO+wC,KAAU/wC,EAAO6C,KACxB7C,EAAO+wC,KAAU/wC,EAAO6C,KACxB7C,EAAO+wC,KAAU/wC,EAAO6C,KACxBrD,GAAO,QACAA,EAAM,GACXA,IACFQ,EAAO+wC,KAAU/wC,EAAO6C,KACpBrD,EAAM,IACRQ,EAAO+wC,KAAU/wC,EAAO6C,MAG7B,CAYH,KACD,CAeF,CAED,KACD,CACF,OAAQiuC,EAAMlqB,GAAQmqB,EAAOlxC,GAI9BixC,GADAtxC,EAAMokC,GAAQ,EAGdyN,IAAS,IADTzN,GAAQpkC,GAAO,IACO,EAGtBgoC,EAAKiE,QAAUqF,EACftJ,EAAKkC,SAAWqH,EAChBvJ,EAAKgE,SAAYsF,EAAMlqB,EAAYA,EAAOkqB,EAAZ,EAAmB,GAAKA,EAAMlqB,GAC5D4gB,EAAKgC,UAAauH,EAAOlxC,EAAaA,EAAMkxC,EAAb,IAAqB,KAAOA,EAAOlxC,GAClExF,EAAMg3C,KAAOA,EACbh3C,EAAMupC,KAAOA,CAEf,ED/TIyO,GD6Ba,SAAuBx5C,EAAMy5C,EAAMC,EAAYC,EAAOvV,EAAOwV,EAAaC,EAAMn7B,GAE/F,IAYIo7B,EACAvqC,EACAwqC,EACAC,EACA53C,EAIA4E,EAMAizC,EAAWC,EAASC,EA1BpBpP,EAAOrsB,EAAKqsB,KAGZpkC,EAAM,EACNyzC,EAAM,EACN9rC,EAAM,EAAGiD,EAAM,EACf8oC,EAAO,EACPC,EAAO,EACPC,EAAO,EACPC,EAAO,EACPC,EAAO,EACPC,EAAO,EAMPj6B,EAAO,KACPk6B,EAAa,EAGbz/B,EAAQ,IAAI0b,GAAMqR,MAAM0P,IACxBiD,EAAO,IAAIhkB,GAAMqR,MAAM0P,IACvBtL,EAAQ,KACRwO,EAAc,EAoClB,IAAKl0C,EAAM,EAAGA,GAAOgxC,GAAShxC,IAC5BuU,EAAMvU,GAAO,EAEf,IAAKyzC,EAAM,EAAGA,EAAMT,EAAOS,IACzBl/B,EAAMu+B,EAAKC,EAAaU,MAK1B,IADAC,EAAOtP,EACFx5B,EAAMomC,GAASpmC,GAAO,GACN,IAAf2J,EAAM3J,GADkBA,KAM9B,GAHI8oC,EAAO9oC,IACT8oC,EAAO9oC,GAEG,IAARA,EAaF,OATA6yB,EAAMwV,KAAiB,SAMvBxV,EAAMwV,KAAiB,SAEvBl7B,EAAKqsB,KAAO,EACL,EAET,IAAKz8B,EAAM,EAAGA,EAAMiD,GACC,IAAf2J,EAAM5M,GADaA,KASzB,IANI+rC,EAAO/rC,IACT+rC,EAAO/rC,GAITksC,EAAO,EACF7zC,EAAM,EAAGA,GAAOgxC,GAAShxC,IAG5B,GAFA6zC,IAAS,GACTA,GAAQt/B,EAAMvU,IACH,EACT,OAAQ,EAGZ,GAAI6zC,EAAO,IAtID,IAsIOx6C,GAA0B,IAARuR,GACjC,OAAQ,EAKV,IADAqpC,EAAK,GAAK,EACLj0C,EAAM,EAAGA,EAAMgxC,GAAShxC,IAC3Bi0C,EAAKj0C,EAAM,GAAKi0C,EAAKj0C,GAAOuU,EAAMvU,GAIpC,IAAKyzC,EAAM,EAAGA,EAAMT,EAAOS,IACM,IAA3BX,EAAKC,EAAaU,KACpBP,EAAKe,EAAKnB,EAAKC,EAAaU,OAAWA,GAmE3C,GAtNU,IAyLNp6C,GACFygB,EAAO4rB,EAAQwN,EACf7yC,EAAM,IA1LC,IA4LEhH,GACTygB,EAAOm3B,GACP+C,GAAc,IACdtO,EAAQwL,GACRgD,GAAe,IACf7zC,EAAM,MAGNyZ,EAAOq3B,GACPzL,EAAQ0L,GACR/wC,GAAO,GAIT0zC,EAAO,EACPN,EAAM,EACNzzC,EAAM2H,EACNlM,EAAOw3C,EACPU,EAAOD,EACPE,EAAO,EACPR,GAAO,EAEPC,GADAS,EAAO,GAAKJ,GACE,EAlNL,IAqNJr6C,GAAiBy6C,EA1NN,KAMN,IAqNPz6C,GAAkBy6C,EA1NJ,IA2Nf,OAAO,EAIT,OAAS,CAEPR,EAAYtzC,EAAM4zC,EACdV,EAAKO,GAAOpzC,GACdkzC,EAAU,EACVC,EAAWN,EAAKO,IAETP,EAAKO,GAAOpzC,GACnBkzC,EAAU7N,EAAMwO,EAAchB,EAAKO,IACnCD,EAAW15B,EAAKk6B,EAAad,EAAKO,MAGlCF,EAAU,GACVC,EAAW,GAIbL,EAAO,GAAMnzC,EAAM4zC,EAEnBjsC,EADAiB,EAAO,GAAK+qC,EAEZ,GAEElW,EAAMhiC,GAAQs4C,GAAQH,IADtBhrC,GAAQuqC,IAC+BG,GAAa,GAAOC,GAAW,GAAMC,EAAU,QACtE,IAAT5qC,GAIT,IADAuqC,EAAO,GAAMnzC,EAAM,EACZ+zC,EAAOZ,GACZA,IAAS,EAWX,GATa,IAATA,GACFY,GAAQZ,EAAO,EACfY,GAAQZ,GAERY,EAAO,EAITN,IACqB,KAAfl/B,EAAMvU,GAAY,CACtB,GAAIA,IAAQ4K,EAAO,MACnB5K,EAAM8yC,EAAKC,EAAaG,EAAKO,GAC9B,CAGD,GAAIzzC,EAAM0zC,IAASK,EAAOV,KAAUD,EAAK,CAYvC,IAVa,IAATQ,IACFA,EAAOF,GAITj4C,GAAQkM,EAIRksC,EAAO,IADPF,EAAO3zC,EAAM4zC,GAEND,EAAOC,EAAOhpC,MACnBipC,GAAQt/B,EAAMo/B,EAAOC,KACT,IACZD,IACAE,IAAS,EAKX,GADAC,GAAQ,GAAKH,EA5RR,IA6RAt6C,GAAiBy6C,EAlSV,KAMN,IA6RHz6C,GAAkBy6C,EAlSR,IAmSX,OAAO,EAQTrW,EAJA2V,EAAMW,EAAOV,GAICK,GAAQ,GAAOC,GAAQ,GAAOl4C,EAAOw3C,EAAc,CAClE,CACF,CAeD,OAVa,IAATc,IAIFtW,EAAMhiC,EAAOs4C,GAAU/zC,EAAM4zC,GAAS,GAAO,IAAM,GAAK,GAK1D77B,EAAKqsB,KAAOsP,EACL,CACT,EClSIjK,IAAmB,EAyBZ0K,GAAO,GAkBXC,GAAM,GAiBb,SAASC,GAAQ3E,GACf,OAAWA,IAAM,GAAM,MACbA,IAAM,EAAK,SACP,MAAJA,IAAe,KACX,IAAJA,IAAa,GACzB,CAGA,SAAS4E,KACPx9C,KAAK45C,KAAO,EACZ55C,KAAKswB,MAAO,EACZtwB,KAAK2B,KAAO,EACZ3B,KAAKy9C,UAAW,EAChBz9C,KAAK09C,MAAQ,EACb19C,KAAK06C,KAAO,EACZ16C,KAAK29C,MAAQ,EACb39C,KAAK22B,MAAQ,EAEb32B,KAAKwmB,KAAO,KAGZxmB,KAAK49C,MAAQ,EACb59C,KAAK26C,MAAQ,EACb36C,KAAK46C,MAAQ,EACb56C,KAAK66C,MAAQ,EACb76C,KAAKyI,OAAS,KAGdzI,KAAK+6C,KAAO,EACZ/6C,KAAKstC,KAAO,EAGZttC,KAAK4F,OAAS,EACd5F,KAAKmK,OAAS,EAGdnK,KAAK4uC,MAAQ,EAGb5uC,KAAKu7C,QAAU,KACfv7C,KAAKw7C,SAAW,KAChBx7C,KAAKy7C,QAAU,EACfz7C,KAAK07C,SAAW,EAGhB17C,KAAK69C,MAAQ,EACb79C,KAAK89C,KAAO,EACZ99C,KAAK+9C,MAAQ,EACb/9C,KAAKg+C,KAAO,EACZh+C,KAAK2E,KAAO,KAEZ3E,KAAKg8C,KAAO,IAAI7iB,GAAMqR,MAAM,KAC5BxqC,KAAKo8C,KAAO,IAAIjjB,GAAMqR,MAAM,KAO5BxqC,KAAKi+C,OAAS,KACdj+C,KAAKk+C,QAAU,KACfl+C,KAAK87C,KAAO,EACZ97C,KAAKm+C,KAAO,EACZn+C,KAAKo+C,IAAM,CACb,CAEA,SAASC,GAAiBnN,GACxB,IAAIntC,EAEJ,OAAKmtC,GAASA,EAAKntC,OACnBA,EAAQmtC,EAAKntC,MACbmtC,EAAKkE,SAAWlE,EAAKmC,UAAYtvC,EAAM4yB,MAAQ,EAC/Cua,EAAK9wB,IAAM,GACPrc,EAAMpC,OACRuvC,EAAKkB,MAAqB,EAAbruC,EAAMpC,MAErBoC,EAAM61C,KA1HM,EA2HZ71C,EAAMusB,KAAO,EACbvsB,EAAM05C,SAAW,EACjB15C,EAAM22C,KAAO,MACb32C,EAAMyiB,KAAO,KACbziB,EAAMg3C,KAAO,EACbh3C,EAAMupC,KAAO,EAEbvpC,EAAMw3C,QAAUx3C,EAAMk6C,OAAS,IAAI9kB,GAAMsR,MA7FzB,KA8FhB1mC,EAAMy3C,SAAWz3C,EAAMm6C,QAAU,IAAI/kB,GAAMsR,MA7F1B,KA+FjB1mC,EAAM+3C,KAAO,EACb/3C,EAAMo6C,MAAQ,EAxJM,GAqIexL,EAsBrC,CAEA,SAAS2L,GAAapN,GACpB,IAAIntC,EAEJ,OAAKmtC,GAASA,EAAKntC,QACnBA,EAAQmtC,EAAKntC,OACP42C,MAAQ,EACd52C,EAAM62C,MAAQ,EACd72C,EAAM82C,MAAQ,EACPwD,GAAiBnN,IALWyB,EAOrC,CAEA,SAAS4L,GAAcrN,EAAMiG,GAC3B,IAAIx1C,EACAoC,EAGJ,OAAKmtC,GAASA,EAAKntC,OACnBA,EAAQmtC,EAAKntC,MAGTozC,EAAa,GACfx1C,EAAO,EACPw1C,GAAcA,IAGdx1C,EAA2B,GAAnBw1C,GAAc,GAClBA,EAAa,KACfA,GAAc,KAKdA,IAAeA,EAAa,GAAKA,EAAa,IACzCxE,IAEY,OAAjB5uC,EAAM0E,QAAmB1E,EAAM65C,QAAUzG,IAC3CpzC,EAAM0E,OAAS,MAIjB1E,EAAMpC,KAAOA,EACboC,EAAM65C,MAAQzG,EACPmH,GAAapN,KA1BeyB,EA2BrC,CAEA,SAAS6L,GAAatN,EAAMiG,GAC1B,IAAI5jC,EACAxP,EAEJ,OAAKmtC,GAGLntC,EAAQ,IAAIy5C,GAIZtM,EAAKntC,MAAQA,EACbA,EAAM0E,OAAS,KAvNK,KAwNpB8K,EAAMgrC,GAAcrN,EAAMiG,MAExBjG,EAAKntC,MAAQ,MAERwP,GAbao/B,EActB,CAiBA,IAEI8L,GAAQC,GAFRC,IAAS,EAIb,SAASC,GAAY76C,GAEnB,GAAI46C,GAAQ,CACV,IAAIhC,EAOJ,IALA8B,GAAS,IAAItlB,GAAMsR,MAAM,KACzBiU,GAAU,IAAIvlB,GAAMsR,MAAM,IAG1BkS,EAAM,EACCA,EAAM,KAAO54C,EAAMi4C,KAAKW,KAAS,EACxC,KAAOA,EAAM,KAAO54C,EAAMi4C,KAAKW,KAAS,EACxC,KAAOA,EAAM,KAAO54C,EAAMi4C,KAAKW,KAAS,EACxC,KAAOA,EAAM,KAAO54C,EAAMi4C,KAAKW,KAAS,EAMxC,IAJAZ,GArRO,EAqRch4C,EAAMi4C,KAAM,EAAG,IAAKyC,GAAU,EAAG16C,EAAMq4C,KAAM,CAAE9O,KAAM,IAG1EqP,EAAM,EACCA,EAAM,IAAM54C,EAAMi4C,KAAKW,KAAS,EAEvCZ,GA1RQ,EA0Rah4C,EAAMi4C,KAAM,EAAG,GAAM0C,GAAS,EAAG36C,EAAMq4C,KAAM,CAAE9O,KAAM,IAG1EqR,IAAS,CACV,CAED56C,EAAMw3C,QAAUkD,GAChB16C,EAAM03C,QAAU,EAChB13C,EAAMy3C,SAAWkD,GACjB36C,EAAM23C,SAAW,CACnB,CAiBA,SAASmD,GAAa3N,EAAMp5B,EAAKvO,EAAK8D,GACpC,IAAIq/B,EACA3oC,EAAQmtC,EAAKntC,MAqCjB,OAlCqB,OAAjBA,EAAM0E,SACR1E,EAAM42C,MAAQ,GAAK52C,EAAM65C,MACzB75C,EAAM82C,MAAQ,EACd92C,EAAM62C,MAAQ,EAEd72C,EAAM0E,OAAS,IAAI0wB,GAAMoR,KAAKxmC,EAAM42C,QAIlCttC,GAAQtJ,EAAM42C,OAChBxhB,GAAM6Q,SAASjmC,EAAM0E,OAAQqP,EAAKvO,EAAMxF,EAAM42C,MAAO52C,EAAM42C,MAAO,GAClE52C,EAAM82C,MAAQ,EACd92C,EAAM62C,MAAQ72C,EAAM42C,SAGpBjO,EAAO3oC,EAAM42C,MAAQ52C,EAAM82C,OAChBxtC,IACTq/B,EAAOr/B,GAGT8rB,GAAM6Q,SAASjmC,EAAM0E,OAAQqP,EAAKvO,EAAM8D,EAAMq/B,EAAM3oC,EAAM82C,QAC1DxtC,GAAQq/B,IAGNvT,GAAM6Q,SAASjmC,EAAM0E,OAAQqP,EAAKvO,EAAM8D,EAAMA,EAAM,GACpDtJ,EAAM82C,MAAQxtC,EACdtJ,EAAM62C,MAAQ72C,EAAM42C,QAGpB52C,EAAM82C,OAASnO,EACX3oC,EAAM82C,QAAU92C,EAAM42C,QAAS52C,EAAM82C,MAAQ,GAC7C92C,EAAM62C,MAAQ72C,EAAM42C,QAAS52C,EAAM62C,OAASlO,KAG7C,CACT,CAsoCoBoS,GAAAR,aAAGA,GACFQ,GAAAP,cAAGA,GACAO,GAAAT,iBAAGA,GACRS,GAAAC,YApvCnB,SAAqB7N,GACnB,OAAOsN,GAAatN,EArKN,GAsKhB,EAmvCoB4N,GAAAN,aAAGA,GACRM,GAAAE,QAzoCf,SAAiB9N,EAAMxf,GACrB,IAAI3tB,EACAu1B,EAAO5vB,EACP/E,EACAs6C,EACAjB,EAAMjB,EACNhC,EACAzN,EACAkN,EAAKC,EACLptC,EACAd,EACA+uC,EAEAkB,EAAWC,EAASC,EAEpBwC,EAAWC,EAASC,EACpBl2C,EACAqK,EAEA0N,EAEAxS,EATA2sC,EAAO,EAMPiE,EAAO,IAAIlmB,GAAMoR,KAAK,GAKtB+U,EACF,CAAE,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,IAGlE,IAAKpO,IAASA,EAAKntC,QAAUmtC,EAAKxnC,SAC5BwnC,EAAK5X,OAA2B,IAAlB4X,EAAKgE,SACvB,OAAOvC,IAGT5uC,EAAQmtC,EAAKntC,OACH61C,OAASyD,KAAQt5C,EAAM61C,KA/Uf,IAmVlBqF,EAAM/N,EAAKkC,SACX1pC,EAASwnC,EAAKxnC,OACdqzC,EAAO7L,EAAKgC,UACZvuC,EAAOusC,EAAKiE,QACZ7b,EAAQ4X,EAAK5X,MACb0kB,EAAO9M,EAAKgE,SACZ6F,EAAOh3C,EAAMg3C,KACbzN,EAAOvpC,EAAMupC,KAGbkN,EAAMwD,EACNvD,EAAOsC,EACPxpC,EA7XoB,EA+XpBgsC,EACA,OACE,OAAQx7C,EAAM61C,MACZ,KAhXQ,EAiXN,GAAmB,IAAf71C,EAAMpC,KAAY,CACpBoC,EAAM61C,KAtWI,GAuWV,KACD,CAED,KAAOtM,EAAO,IAAI,CAChB,GAAa,IAAT0Q,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CACT,CAED,GAAkB,EAAbvpC,EAAMpC,MAAsB,QAATo5C,EAAiB,CACvCh3C,EAAM45C,MAAQ,EAEd0B,EAAK,GAAY,IAAPtE,EACVsE,EAAK,GAAMtE,IAAS,EAAK,IACzBh3C,EAAM45C,MAAQ3W,GAAMjjC,EAAM45C,MAAO0B,EAAM,EAAG,GAI1CtE,EAAO,EACPzN,EAAO,EAEPvpC,EAAM61C,KAxYD,EAyYL,KACD,CAKD,GAJA71C,EAAM25C,MAAQ,EACV35C,EAAMyiB,OACRziB,EAAMyiB,KAAK9mB,MAAO,KAED,EAAbqE,EAAMpC,UACA,IAAPo5C,IAA2B,IAAMA,GAAQ,IAAM,GAAI,CACtD7J,EAAK9wB,IAAM,yBACXrc,EAAM61C,KAAO0D,GACb,KACD,CACD,GA7ZU,IA6ZE,GAAPvC,GAAwC,CAC3C7J,EAAK9wB,IAAM,6BACXrc,EAAM61C,KAAO0D,GACb,KACD,CAMD,GAHAhQ,GAAQ,EAERpkC,EAAiC,GAAnB,IAHd6xC,KAAU,IAIU,IAAhBh3C,EAAM65C,MACR75C,EAAM65C,MAAQ10C,OAEX,GAAIA,EAAMnF,EAAM65C,MAAO,CAC1B1M,EAAK9wB,IAAM,sBACXrc,EAAM61C,KAAO0D,GACb,KACD,CACDv5C,EAAM22C,KAAO,GAAKxxC,EAElBgoC,EAAKkB,MAAQruC,EAAM45C,MAAQ,EAC3B55C,EAAM61C,KAAc,IAAPmB,EAlaL,GAka6BsC,GAErCtC,EAAO,EACPzN,EAAO,EAEP,MACF,KAhbS,EAkbP,KAAOA,EAAO,IAAI,CAChB,GAAa,IAAT0Q,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CACT,CAGD,GADAvpC,EAAM25C,MAAQ3C,EAjcJ,IAkcS,IAAdh3C,EAAM25C,OAA8B,CACvCxM,EAAK9wB,IAAM,6BACXrc,EAAM61C,KAAO0D,GACb,KACD,CACD,GAAkB,MAAdv5C,EAAM25C,MAAgB,CACxBxM,EAAK9wB,IAAM,2BACXrc,EAAM61C,KAAO0D,GACb,KACD,CACGv5C,EAAMyiB,OACRziB,EAAMyiB,KAAKkP,KAASqlB,GAAQ,EAAK,GAEjB,IAAdh3C,EAAM25C,QAER2B,EAAK,GAAY,IAAPtE,EACVsE,EAAK,GAAMtE,IAAS,EAAK,IACzBh3C,EAAM45C,MAAQ3W,GAAMjjC,EAAM45C,MAAO0B,EAAM,EAAG,IAI5CtE,EAAO,EACPzN,EAAO,EAEPvpC,EAAM61C,KAjdA,EAmdR,KAndQ,EAqdN,KAAOtM,EAAO,IAAI,CAChB,GAAa,IAAT0Q,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CACT,CAEGvpC,EAAMyiB,OACRziB,EAAMyiB,KAAKZ,KAAOm1B,GAEF,IAAdh3C,EAAM25C,QAER2B,EAAK,GAAY,IAAPtE,EACVsE,EAAK,GAAMtE,IAAS,EAAK,IACzBsE,EAAK,GAAMtE,IAAS,GAAM,IAC1BsE,EAAK,GAAMtE,IAAS,GAAM,IAC1Bh3C,EAAM45C,MAAQ3W,GAAMjjC,EAAM45C,MAAO0B,EAAM,EAAG,IAI5CtE,EAAO,EACPzN,EAAO,EAEPvpC,EAAM61C,KA3eF,EA6eN,KA7eM,EA+eJ,KAAOtM,EAAO,IAAI,CAChB,GAAa,IAAT0Q,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CACT,CAEGvpC,EAAMyiB,OACRziB,EAAMyiB,KAAKg5B,OAAiB,IAAPzE,EACrBh3C,EAAMyiB,KAAKsxB,GAAMiD,GAAQ,GAET,IAAdh3C,EAAM25C,QAER2B,EAAK,GAAY,IAAPtE,EACVsE,EAAK,GAAMtE,IAAS,EAAK,IACzBh3C,EAAM45C,MAAQ3W,GAAMjjC,EAAM45C,MAAO0B,EAAM,EAAG,IAI5CtE,EAAO,EACPzN,EAAO,EAEPvpC,EAAM61C,KApgBC,EAsgBT,KAtgBS,EAugBP,GAAkB,KAAd71C,EAAM25C,MAAgB,CAExB,KAAOpQ,EAAO,IAAI,CAChB,GAAa,IAAT0Q,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CACT,CAEDvpC,EAAM6B,OAASm1C,EACXh3C,EAAMyiB,OACRziB,EAAMyiB,KAAKi5B,UAAY1E,GAEP,IAAdh3C,EAAM25C,QAER2B,EAAK,GAAY,IAAPtE,EACVsE,EAAK,GAAMtE,IAAS,EAAK,IACzBh3C,EAAM45C,MAAQ3W,GAAMjjC,EAAM45C,MAAO0B,EAAM,EAAG,IAI5CtE,EAAO,EACPzN,EAAO,CAER,MACQvpC,EAAMyiB,OACbziB,EAAMyiB,KAAKooB,MAAQ,MAErB7qC,EAAM61C,KAliBC,EAoiBT,KApiBS,EAqiBP,GAAkB,KAAd71C,EAAM25C,SACRrwC,EAAOtJ,EAAM6B,QACFo4C,IAAQ3wC,EAAO2wC,GACtB3wC,IACEtJ,EAAMyiB,OACRtd,EAAMnF,EAAMyiB,KAAKi5B,UAAY17C,EAAM6B,OAC9B7B,EAAMyiB,KAAKooB,QAEd7qC,EAAMyiB,KAAKooB,MAAQ,IAAI9lC,MAAM/E,EAAMyiB,KAAKi5B,YAE1CtmB,GAAM6Q,SACJjmC,EAAMyiB,KAAKooB,MACXtV,EACA30B,EAGA0I,EAEAnE,IAMc,IAAdnF,EAAM25C,QACR35C,EAAM45C,MAAQ3W,GAAMjjC,EAAM45C,MAAOrkB,EAAOjsB,EAAM1I,IAEhDq5C,GAAQ3wC,EACR1I,GAAQ0I,EACRtJ,EAAM6B,QAAUyH,GAEdtJ,EAAM6B,QAAU,MAAM25C,EAE5Bx7C,EAAM6B,OAAS,EACf7B,EAAM61C,KAtkBA,EAwkBR,KAxkBQ,EAykBN,GAAkB,KAAd71C,EAAM25C,MAAgB,CACxB,GAAa,IAATM,EAAc,MAAMuB,EACxBlyC,EAAO,EACP,GAEEnE,EAAMowB,EAAM30B,EAAO0I,KAEftJ,EAAMyiB,MAAQtd,GACbnF,EAAM6B,OAAS,QAClB7B,EAAMyiB,KAAKtgB,MAAQgJ,OAAOsC,aAAatI,UAElCA,GAAOmE,EAAO2wC,GAOvB,GALkB,IAAdj6C,EAAM25C,QACR35C,EAAM45C,MAAQ3W,GAAMjjC,EAAM45C,MAAOrkB,EAAOjsB,EAAM1I,IAEhDq5C,GAAQ3wC,EACR1I,GAAQ0I,EACJnE,EAAO,MAAMq2C,CAClB,MACQx7C,EAAMyiB,OACbziB,EAAMyiB,KAAKtgB,KAAO,MAEpBnC,EAAM6B,OAAS,EACf7B,EAAM61C,KAhmBG,EAkmBX,KAlmBW,EAmmBT,GAAkB,KAAd71C,EAAM25C,MAAgB,CACxB,GAAa,IAATM,EAAc,MAAMuB,EACxBlyC,EAAO,EACP,GACEnE,EAAMowB,EAAM30B,EAAO0I,KAEftJ,EAAMyiB,MAAQtd,GACbnF,EAAM6B,OAAS,QAClB7B,EAAMyiB,KAAK8hB,SAAWp5B,OAAOsC,aAAatI,UAErCA,GAAOmE,EAAO2wC,GAMvB,GALkB,IAAdj6C,EAAM25C,QACR35C,EAAM45C,MAAQ3W,GAAMjjC,EAAM45C,MAAOrkB,EAAOjsB,EAAM1I,IAEhDq5C,GAAQ3wC,EACR1I,GAAQ0I,EACJnE,EAAO,MAAMq2C,CAClB,MACQx7C,EAAMyiB,OACbziB,EAAMyiB,KAAK8hB,QAAU,MAEvBvkC,EAAM61C,KAvnBA,EAynBR,KAznBQ,EA0nBN,GAAkB,IAAd71C,EAAM25C,MAAgB,CAExB,KAAOpQ,EAAO,IAAI,CAChB,GAAa,IAAT0Q,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CACT,CAED,GAAIyN,KAAwB,MAAdh3C,EAAM45C,OAAiB,CACnCzM,EAAK9wB,IAAM,sBACXrc,EAAM61C,KAAO0D,GACb,KACD,CAEDvC,EAAO,EACPzN,EAAO,CAER,CACGvpC,EAAMyiB,OACRziB,EAAMyiB,KAAKqxB,KAAS9zC,EAAM25C,OAAS,EAAK,EACxC35C,EAAMyiB,KAAK9mB,MAAO,GAEpBwxC,EAAKkB,MAAQruC,EAAM45C,MAAQ,EAC3B55C,EAAM61C,KAAOyD,GACb,MACF,KAnpBU,GAqpBR,KAAO/P,EAAO,IAAI,CAChB,GAAa,IAAT0Q,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CACT,CAED4D,EAAKkB,MAAQruC,EAAM45C,MAAQJ,GAAQxC,GAEnCA,EAAO,EACPzN,EAAO,EAEPvpC,EAAM61C,KAhqBA,GAkqBR,KAlqBQ,GAmqBN,GAAuB,IAAnB71C,EAAM05C,SASR,OAPAvM,EAAKkC,SAAW6L,EAChB/N,EAAKgC,UAAY6J,EACjB7L,EAAKiE,QAAUxwC,EACfusC,EAAKgE,SAAW8I,EAChBj6C,EAAMg3C,KAAOA,EACbh3C,EAAMupC,KAAOA,EApsBD,EAwsBd4D,EAAKkB,MAAQruC,EAAM45C,MAAQ,EAC3B55C,EAAM61C,KAAOyD,GAEf,KAAKA,GACH,GArtBc,IAqtBV3rB,GAptBU,IAotBWA,EAAqB,MAAM6tB,EAEtD,KAlrBc,GAmrBZ,GAAIx7C,EAAMusB,KAAM,CAEdyqB,KAAiB,EAAPzN,EACVA,GAAe,EAAPA,EAERvpC,EAAM61C,KA1qBD,GA2qBL,KACD,CAED,KAAOtM,EAAO,GAAG,CACf,GAAa,IAAT0Q,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CACT,CAQD,OANAvpC,EAAMusB,KAAe,EAAPyqB,EAGdzN,GAAQ,EAGQ,GAJhByN,KAAU,IAKR,KAAK,EAGHh3C,EAAM61C,KA5sBE,GA6sBR,MACF,KAAK,EAKH,GAJAgF,GAAY76C,GAGZA,EAAM61C,KA5sBI,GA3CA,IAwvBNloB,EAAmB,CAErBqpB,KAAU,EACVzN,GAAQ,EAER,MAAMiS,CACP,CACD,MACF,KAAK,EAGHx7C,EAAM61C,KA3tBC,GA4tBP,MACF,KAAK,EACH1I,EAAK9wB,IAAM,qBACXrc,EAAM61C,KAAO0D,GAGjBvC,KAAU,EACVzN,GAAQ,EAER,MACF,KAzuBc,GA+uBZ,IAJAyN,KAAiB,EAAPzN,EACVA,GAAe,EAAPA,EAGDA,EAAO,IAAI,CAChB,GAAa,IAAT0Q,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CACT,CAED,IAAY,MAAPyN,KAAqBA,IAAS,GAAM,OAAS,CAChD7J,EAAK9wB,IAAM,+BACXrc,EAAM61C,KAAO0D,GACb,KACD,CASD,GARAv5C,EAAM6B,OAAgB,MAAPm1C,EAIfA,EAAO,EACPzN,EAAO,EAEPvpC,EAAM61C,KAjwBK,GAtCG,IAwyBVloB,EAAqB,MAAM6tB,EAEjC,KApwBa,GAqwBXx7C,EAAM61C,KApwBI,GAswBZ,KAtwBY,GAwwBV,GADAvsC,EAAOtJ,EAAM6B,OACH,CAGR,GAFIyH,EAAO2wC,IAAQ3wC,EAAO2wC,GACtB3wC,EAAO0vC,IAAQ1vC,EAAO0vC,GACb,IAAT1vC,EAAc,MAAMkyC,EAExBpmB,GAAM6Q,SAAStgC,EAAQ4vB,EAAO30B,EAAM0I,EAAM4xC,GAE1CjB,GAAQ3wC,EACR1I,GAAQ0I,EACR0vC,GAAQ1vC,EACR4xC,GAAO5xC,EACPtJ,EAAM6B,QAAUyH,EAChB,KACD,CAEDtJ,EAAM61C,KAAOyD,GACb,MACF,KAxxBa,GA0xBX,KAAO/P,EAAO,IAAI,CAChB,GAAa,IAAT0Q,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CACT,CAkBD,GAhBAvpC,EAAM+5C,KAAkC,KAAnB,GAAP/C,GAEdA,KAAU,EACVzN,GAAQ,EAERvpC,EAAMg6C,MAAmC,GAAnB,GAAPhD,GAEfA,KAAU,EACVzN,GAAQ,EAERvpC,EAAM85C,MAAmC,GAAnB,GAAP9C,GAEfA,KAAU,EACVzN,GAAQ,EAGJvpC,EAAM+5C,KAAO,KAAO/5C,EAAMg6C,MAAQ,GAAI,CACxC7M,EAAK9wB,IAAM,sCACXrc,EAAM61C,KAAO0D,GACb,KACD,CAGDv5C,EAAMi6C,KAAO,EACbj6C,EAAM61C,KAxzBO,GA0zBf,KA1zBe,GA2zBb,KAAO71C,EAAMi6C,KAAOj6C,EAAM85C,OAAO,CAE/B,KAAOvQ,EAAO,GAAG,CACf,GAAa,IAAT0Q,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CACT,CAEDvpC,EAAMi4C,KAAKsD,EAAMv7C,EAAMi6C,SAAmB,EAAPjD,EAEnCA,KAAU,EACVzN,GAAQ,CAET,CACD,KAAOvpC,EAAMi6C,KAAO,IAClBj6C,EAAMi4C,KAAKsD,EAAMv7C,EAAMi6C,SAAW,EAapC,GAPAj6C,EAAMw3C,QAAUx3C,EAAMk6C,OACtBl6C,EAAM03C,QAAU,EAEhBx6B,EAAO,CAAEqsB,KAAMvpC,EAAM03C,SACrBloC,EAAMwoC,GA74BF,EA64BuBh4C,EAAMi4C,KAAM,EAAG,GAAIj4C,EAAMw3C,QAAS,EAAGx3C,EAAMq4C,KAAMn7B,GAC5Eld,EAAM03C,QAAUx6B,EAAKqsB,KAEjB/5B,EAAK,CACP29B,EAAK9wB,IAAM,2BACXrc,EAAM61C,KAAO0D,GACb,KACD,CAEDv5C,EAAMi6C,KAAO,EACbj6C,EAAM61C,KA91BQ,GAg2BhB,KAh2BgB,GAi2Bd,KAAO71C,EAAMi6C,KAAOj6C,EAAM+5C,KAAO/5C,EAAMg6C,OAAO,CAC5C,KAGEtB,GAFArB,EAAOr3C,EAAMw3C,QAAQR,GAAS,GAAKh3C,EAAM03C,SAAW,MAEhC,GAAM,IAC1BiB,EAAkB,MAAPtB,KAFXoB,EAAYpB,IAAS,KAIF9N,IANZ,CAQP,GAAa,IAAT0Q,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CAET,CACD,GAAIoP,EAAW,GAEb3B,KAAUyB,EACVlP,GAAQkP,EAERz4C,EAAMi4C,KAAKj4C,EAAMi6C,QAAUtB,MAExB,CACH,GAAiB,KAAbA,EAAiB,CAGnB,IADAjuC,EAAI+tC,EAAY,EACTlP,EAAO7+B,GAAG,CACf,GAAa,IAATuvC,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CACT,CAMD,GAHAyN,KAAUyB,EACVlP,GAAQkP,EAEW,IAAfz4C,EAAMi6C,KAAY,CACpB9M,EAAK9wB,IAAM,4BACXrc,EAAM61C,KAAO0D,GACb,KACD,CACDp0C,EAAMnF,EAAMi4C,KAAKj4C,EAAMi6C,KAAO,GAC9B3wC,EAAO,GAAY,EAAP0tC,GAEZA,KAAU,EACVzN,GAAQ,CAET,MACI,GAAiB,KAAboP,EAAiB,CAGxB,IADAjuC,EAAI+tC,EAAY,EACTlP,EAAO7+B,GAAG,CACf,GAAa,IAATuvC,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CACT,CAIDA,GAAQkP,EAERtzC,EAAM,EACNmE,EAAO,GAAY,GAJnB0tC,KAAUyB,IAMVzB,KAAU,EACVzN,GAAQ,CAET,KACI,CAGH,IADA7+B,EAAI+tC,EAAY,EACTlP,EAAO7+B,GAAG,CACf,GAAa,IAATuvC,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CACT,CAIDA,GAAQkP,EAERtzC,EAAM,EACNmE,EAAO,IAAa,KAJpB0tC,KAAUyB,IAMVzB,KAAU,EACVzN,GAAQ,CAET,CACD,GAAIvpC,EAAMi6C,KAAO3wC,EAAOtJ,EAAM+5C,KAAO/5C,EAAMg6C,MAAO,CAChD7M,EAAK9wB,IAAM,4BACXrc,EAAM61C,KAAO0D,GACb,KACD,CACD,KAAOjwC,KACLtJ,EAAMi4C,KAAKj4C,EAAMi6C,QAAU90C,CAE9B,CACF,CAGD,GAAInF,EAAM61C,OAAS0D,GAAO,MAG1B,GAAwB,IAApBv5C,EAAMi4C,KAAK,KAAY,CACzB9K,EAAK9wB,IAAM,uCACXrc,EAAM61C,KAAO0D,GACb,KACD,CAcD,GATAv5C,EAAM03C,QAAU,EAEhBx6B,EAAO,CAAEqsB,KAAMvpC,EAAM03C,SACrBloC,EAAMwoC,GA/gCH,EA+gCuBh4C,EAAMi4C,KAAM,EAAGj4C,EAAM+5C,KAAM/5C,EAAMw3C,QAAS,EAAGx3C,EAAMq4C,KAAMn7B,GAGnFld,EAAM03C,QAAUx6B,EAAKqsB,KAGjB/5B,EAAK,CACP29B,EAAK9wB,IAAM,8BACXrc,EAAM61C,KAAO0D,GACb,KACD,CAaD,GAXAv5C,EAAM23C,SAAW,EAGjB33C,EAAMy3C,SAAWz3C,EAAMm6C,QACvBj9B,EAAO,CAAEqsB,KAAMvpC,EAAM23C,UACrBnoC,EAAMwoC,GA/hCF,EA+hCuBh4C,EAAMi4C,KAAMj4C,EAAM+5C,KAAM/5C,EAAMg6C,MAAOh6C,EAAMy3C,SAAU,EAAGz3C,EAAMq4C,KAAMn7B,GAG/Fld,EAAM23C,SAAWz6B,EAAKqsB,KAGlB/5B,EAAK,CACP29B,EAAK9wB,IAAM,wBACXrc,EAAM61C,KAAO0D,GACb,KACD,CAGD,GADAv5C,EAAM61C,KAn/BQ,GA3CA,IA+hCVloB,EAAqB,MAAM6tB,EAEjC,KAt/BgB,GAu/Bdx7C,EAAM61C,KAt/BO,GAw/Bf,KAx/Be,GAy/Bb,GAAIoE,GAAQ,GAAKjB,GAAQ,IAAK,CAE5B7L,EAAKkC,SAAW6L,EAChB/N,EAAKgC,UAAY6J,EACjB7L,EAAKiE,QAAUxwC,EACfusC,EAAKgE,SAAW8I,EAChBj6C,EAAMg3C,KAAOA,EACbh3C,EAAMupC,KAAOA,EAEbiN,GAAarJ,EAAMuJ,GAEnBwE,EAAM/N,EAAKkC,SACX1pC,EAASwnC,EAAKxnC,OACdqzC,EAAO7L,EAAKgC,UACZvuC,EAAOusC,EAAKiE,QACZ7b,EAAQ4X,EAAK5X,MACb0kB,EAAO9M,EAAKgE,SACZ6F,EAAOh3C,EAAMg3C,KACbzN,EAAOvpC,EAAMupC,KAGTvpC,EAAM61C,OAASyD,KACjBt5C,EAAMo6C,MAAQ,GAEhB,KACD,CAED,IADAp6C,EAAMo6C,KAAO,EAIX1B,GAFArB,EAAOr3C,EAAMw3C,QAAQR,GAAS,GAAKh3C,EAAM03C,SAAW,MAEhC,GAAM,IAC1BiB,EAAkB,MAAPtB,KAFXoB,EAAYpB,IAAS,KAIJ9N,IANV,CAQP,GAAa,IAAT0Q,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CAET,CACD,GAAImP,GAAgC,IAAV,IAAVA,GAAuB,CAIrC,IAHAyC,EAAY1C,EACZ2C,EAAU1C,EACV2C,EAAW1C,EAKTD,GAHArB,EAAOr3C,EAAMw3C,QAAQ6D,IACXrE,GAAS,GAAMmE,EAAYC,GAAY,IAAoCD,OAEjE,GAAM,IAC1BxC,EAAkB,MAAPtB,IAEN8D,GAJL1C,EAAYpB,IAAS,KAIU9N,IAPxB,CASP,GAAa,IAAT0Q,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CAET,CAEDyN,KAAUmE,EACV5R,GAAQ4R,EAERn7C,EAAMo6C,MAAQe,CACf,CAOD,GALAnE,KAAUyB,EACVlP,GAAQkP,EAERz4C,EAAMo6C,MAAQ3B,EACdz4C,EAAM6B,OAAS82C,EACC,IAAZD,EAAe,CAIjB14C,EAAM61C,KAhkCK,GAikCX,KACD,CACD,GAAc,GAAV6C,EAAc,CAEhB14C,EAAMo6C,MAAQ,EACdp6C,EAAM61C,KAAOyD,GACb,KACD,CACD,GAAc,GAAVZ,EAAc,CAChBvL,EAAK9wB,IAAM,8BACXrc,EAAM61C,KAAO0D,GACb,KACD,CACDv5C,EAAM6qC,MAAkB,GAAV6N,EACd14C,EAAM61C,KAnlCU,GAqlClB,KArlCkB,GAslChB,GAAI71C,EAAM6qC,MAAO,CAGf,IADAngC,EAAI1K,EAAM6qC,MACHtB,EAAO7+B,GAAG,CACf,GAAa,IAATuvC,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CACT,CAEDvpC,EAAM6B,QAAUm1C,GAAS,GAAKh3C,EAAM6qC,OAAS,EAE7CmM,KAAUh3C,EAAM6qC,MAChBtB,GAAQvpC,EAAM6qC,MAEd7qC,EAAMo6C,MAAQp6C,EAAM6qC,KACrB,CAED7qC,EAAMq6C,IAAMr6C,EAAM6B,OAClB7B,EAAM61C,KAxmCQ,GA0mChB,KA1mCgB,GA2mCd,KAGE6C,GAFArB,EAAOr3C,EAAMy3C,SAAST,GAAS,GAAKh3C,EAAM23C,UAAY,MAElC,GAAM,IAC1BgB,EAAkB,MAAPtB,KAFXoB,EAAYpB,IAAS,KAIF9N,IANZ,CAQP,GAAa,IAAT0Q,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CAET,CACD,GAAyB,IAAV,IAAVmP,GAAuB,CAI1B,IAHAyC,EAAY1C,EACZ2C,EAAU1C,EACV2C,EAAW1C,EAKTD,GAHArB,EAAOr3C,EAAMy3C,SAAS4D,IACZrE,GAAS,GAAMmE,EAAYC,GAAY,IAAoCD,OAEjE,GAAM,IAC1BxC,EAAkB,MAAPtB,IAEN8D,GAJL1C,EAAYpB,IAAS,KAIU9N,IAPxB,CASP,GAAa,IAAT0Q,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CAET,CAEDyN,KAAUmE,EACV5R,GAAQ4R,EAERn7C,EAAMo6C,MAAQe,CACf,CAMD,GAJAnE,KAAUyB,EACVlP,GAAQkP,EAERz4C,EAAMo6C,MAAQ3B,EACA,GAAVC,EAAc,CAChBvL,EAAK9wB,IAAM,wBACXrc,EAAM61C,KAAO0D,GACb,KACD,CACDv5C,EAAMoG,OAASuyC,EACf34C,EAAM6qC,MAAoB,GAAZ,EACd7qC,EAAM61C,KA7pCW,GA+pCnB,KA/pCmB,GAgqCjB,GAAI71C,EAAM6qC,MAAO,CAGf,IADAngC,EAAI1K,EAAM6qC,MACHtB,EAAO7+B,GAAG,CACf,GAAa,IAATuvC,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CACT,CAEDvpC,EAAMoG,QAAU4wC,GAAS,GAAKh3C,EAAM6qC,OAAS,EAE7CmM,KAAUh3C,EAAM6qC,MAChBtB,GAAQvpC,EAAM6qC,MAEd7qC,EAAMo6C,MAAQp6C,EAAM6qC,KACrB,CAED,GAAI7qC,EAAMoG,OAASpG,EAAM22C,KAAM,CAC7BxJ,EAAK9wB,IAAM,gCACXrc,EAAM61C,KAAO0D,GACb,KACD,CAGDv5C,EAAM61C,KAxrCS,GA0rCjB,KA1rCiB,GA2rCf,GAAa,IAATmD,EAAc,MAAMwC,EAExB,GADAlyC,EAAOotC,EAAOsC,EACVh5C,EAAMoG,OAASkD,EAAM,CAEvB,IADAA,EAAOtJ,EAAMoG,OAASkD,GACXtJ,EAAM62C,OACX72C,EAAM+3C,KAAM,CACd5K,EAAK9wB,IAAM,gCACXrc,EAAM61C,KAAO0D,GACb,KACD,CAiBCjwC,EAAOtJ,EAAM82C,OACfxtC,GAAQtJ,EAAM82C,MACdtuC,EAAOxI,EAAM42C,MAAQttC,GAGrBd,EAAOxI,EAAM82C,MAAQxtC,EAEnBA,EAAOtJ,EAAM6B,SAAUyH,EAAOtJ,EAAM6B,QACxC01C,EAAcv3C,EAAM0E,MACrB,MAEC6yC,EAAc5xC,EACd6C,EAAO0yC,EAAMl7C,EAAMoG,OACnBkD,EAAOtJ,EAAM6B,OAEXyH,EAAO0vC,IAAQ1vC,EAAO0vC,GAC1BA,GAAQ1vC,EACRtJ,EAAM6B,QAAUyH,EAChB,GACE3D,EAAOu1C,KAAS3D,EAAY/uC,aACnBc,GACU,IAAjBtJ,EAAM6B,SAAgB7B,EAAM61C,KA9uCnB,IA+uCb,MACF,KA3uCe,GA4uCb,GAAa,IAATmD,EAAc,MAAMwC,EACxB71C,EAAOu1C,KAASl7C,EAAM6B,OACtBm3C,IACAh5C,EAAM61C,KApvCO,GAqvCb,MACF,KAhvCS,GAivCP,GAAI71C,EAAMpC,KAAM,CAEd,KAAO2rC,EAAO,IAAI,CAChB,GAAa,IAAT0Q,EAAc,MAAMuB,EACxBvB,IAEAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CACT,CAaD,GAXAmN,GAAQsC,EACR7L,EAAKmC,WAAaoH,EAClB12C,EAAM4yB,OAAS8jB,EACXA,IACFvJ,EAAKkB,MAAQruC,EAAM45C,MAEd55C,EAAM25C,MAAQ1W,GAAMjjC,EAAM45C,MAAOj0C,EAAQ+wC,EAAMwE,EAAMxE,GAAQ/H,GAAQ3uC,EAAM45C,MAAOj0C,EAAQ+wC,EAAMwE,EAAMxE,IAG7GA,EAAOsC,GAEFh5C,EAAM25C,MAAQ3C,EAAOwC,GAAQxC,MAAWh3C,EAAM45C,MAAO,CACxDzM,EAAK9wB,IAAM,uBACXrc,EAAM61C,KAAO0D,GACb,KACD,CAEDvC,EAAO,EACPzN,EAAO,CAGR,CACDvpC,EAAM61C,KAhxCE,GAkxCV,KAlxCU,GAmxCR,GAAI71C,EAAMpC,MAAQoC,EAAM25C,MAAO,CAE7B,KAAOpQ,EAAO,IAAI,CAChB,GAAa,IAAT0Q,EAAc,MAAMuB,EACxBvB,IACAjD,GAAQzhB,EAAM30B,MAAW2oC,EACzBA,GAAQ,CACT,CAED,GAAIyN,KAAwB,WAAdh3C,EAAM4yB,OAAqB,CACvCua,EAAK9wB,IAAM,yBACXrc,EAAM61C,KAAO0D,GACb,KACD,CAEDvC,EAAO,EACPzN,EAAO,CAGR,CACDvpC,EAAM61C,KAtyCA,GAwyCR,KAxyCQ,GAyyCNrmC,EAt1Cc,EAu1Cd,MAAMgsC,EACR,KAAKjC,GACH/pC,GAr1Cc,EAs1Cd,MAAMgsC,EACR,KA5yCO,GA6yCL,OAv1Cc,EA01ChB,QACE,OAAO5M,GA4Cb,OA9BAzB,EAAKkC,SAAW6L,EAChB/N,EAAKgC,UAAY6J,EACjB7L,EAAKiE,QAAUxwC,EACfusC,EAAKgE,SAAW8I,EAChBj6C,EAAMg3C,KAAOA,EACbh3C,EAAMupC,KAAOA,GAGTvpC,EAAM42C,OAAUF,IAASvJ,EAAKgC,WAAanvC,EAAM61C,KAAO0D,KACvCv5C,EAAM61C,KA50Cd,IApDO,IAg4CuBloB,KACrCmtB,GAAa3N,EAAMA,EAAKxnC,OAAQwnC,EAAKkC,SAAUqH,EAAOvJ,EAAKgC,WAKjEsH,GAAOtJ,EAAKgE,SACZuF,GAAQvJ,EAAKgC,UACbhC,EAAKkE,UAAYoF,EACjBtJ,EAAKmC,WAAaoH,EAClB12C,EAAM4yB,OAAS8jB,EACX12C,EAAMpC,MAAQ84C,IAChBvJ,EAAKkB,MAAQruC,EAAM45C,MAChB55C,EAAM25C,MAAQ1W,GAAMjjC,EAAM45C,MAAOj0C,EAAQ+wC,EAAMvJ,EAAKkC,SAAWqH,GAAQ/H,GAAQ3uC,EAAM45C,MAAOj0C,EAAQ+wC,EAAMvJ,EAAKkC,SAAWqH,IAE/HvJ,EAAKC,UAAYptC,EAAMupC,MAAQvpC,EAAMusB,KAAO,GAAK,IAC9BvsB,EAAM61C,OAASyD,GAAO,IAAM,IAn2C3B,KAo2CDt5C,EAAM61C,MAz2CR,KAy2CyB71C,EAAM61C,KAAiB,IAAM,IACzD,IAARY,GAAsB,IAATC,GAl5CC,IAk5Cc/oB,IA14Cd,IA04CqCne,IACvDA,GAp4CkB,GAs4CbA,CACT,EAwEkBurC,GAAAY,WAtElB,SAAoBxO,GAElB,IAAKA,IAASA,EAAKntC,MACjB,OAAO4uC,GAGT,IAAI5uC,EAAQmtC,EAAKntC,MAKjB,OAJIA,EAAM0E,SACR1E,EAAM0E,OAAS,MAEjByoC,EAAKntC,MAAQ,KA15CO,CA45CtB,EA2DwB+6C,GAAAa,iBAzDxB,SAA0BzO,EAAM1qB,GAC9B,IAAIziB,EAGJ,OAAKmtC,GAASA,EAAKntC,MAEM,IAAP,GADlBA,EAAQmtC,EAAKntC,OACFpC,MAA0BgxC,IAGrC5uC,EAAMyiB,KAAOA,EACbA,EAAK9mB,MAAO,EAx6CQ,GAk6CeizC,EAQrC,EA8C4BmM,GAAAc,qBA5C5B,SAA8B1O,EAAMkH,GAClC,IAEIr0C,EAFAw0C,EAAaH,EAAWxyC,OAO5B,OAAKsrC,GAAyBA,EAAKntC,MAGhB,KAFnBA,EAAQmtC,EAAKntC,OAEHpC,MA35CE,KA25CYoC,EAAM61C,KACrBjH,GA55CG,KAg6CR5uC,EAAM61C,MAGClH,GAFA,EAEgB0F,EAAYG,EAAY,KAClCx0C,EAAM45C,OA37CH,EAi8CdkB,GAAa3N,EAAMkH,EAAYG,EAAYA,IAE/Cx0C,EAAM61C,KAx5CG,IA1CS,IAq8CpB71C,EAAM05C,SAAW,EA38CG,GAo7C+C9K,EA0BrE,EAWmBmM,GAAAe,YAAG,qCEp/CtB,IAAAC,GAAiB,CAGfC,WAAoB,EACpBC,gBAAoB,EACpBC,aAAoB,EACpBC,aAAoB,EACpBC,SAAoB,EACpBC,QAAoB,EACpBC,QAAoB,EAKpBC,KAAoB,EACpBC,aAAoB,EACpBC,YAAoB,EACpBC,SAAoB,EACpB9N,gBAAoB,EACpB+N,cAAoB,EAEpBC,aAAoB,EAIpBC,iBAA0B,EAC1BC,aAA0B,EAC1BC,mBAA0B,EAC1BC,uBAA0B,EAG1BC,WAA0B,EAC1BC,eAA0B,EAC1BC,MAA0B,EAC1BC,QAA0B,EAC1BC,mBAA0B,EAG1BC,SAA0B,EAC1BC,OAA0B,EAE1BC,UAA0B,EAG1BC,WAA0B,GCR5B,ICtDIC,GAAe3gD,GACfq4B,GAAexG,GACfmmB,GAAellB,GACfxoB,GAAeiqB,GACfjV,GAAe2T,GACfmlB,GAAellB,GACf0tB,GDYJ,WAEE1hD,KAAK01B,KAAa,EAElB11B,KAAK4lB,KAAa,EAElB5lB,KAAKw/C,OAAa,EAElBx/C,KAAK83C,GAAa,EAElB93C,KAAK4uC,MAAa,KAElB5uC,KAAKy/C,UAAa,EAWlBz/C,KAAKkG,KAAa,GAIlBlG,KAAKsoC,QAAa,GAIlBtoC,KAAK63C,KAAa,EAElB73C,KAAKN,MAAa,CACpB,EC5CIgM,GAAW9M,OAAOgC,UAAU8K,SAiFhC,SAASi2C,GAAQz5B,GACf,KAAMloB,gBAAgB2hD,IAAU,OAAO,IAAIA,GAAQz5B,GAEnDloB,KAAKkoB,QAAUiR,GAAMyQ,OAAO,CAC1BwP,UAAW,MACXjC,WAAY,EACZkC,GAAI,IACHnxB,GAAW,CAAA,GAEd,IAAIoxB,EAAMt5C,KAAKkoB,QAIXoxB,EAAIC,KAAQD,EAAInC,YAAc,GAAOmC,EAAInC,WAAa,KACxDmC,EAAInC,YAAcmC,EAAInC,WACC,IAAnBmC,EAAInC,aAAoBmC,EAAInC,YAAc,OAI3CmC,EAAInC,YAAc,GAAOmC,EAAInC,WAAa,KACzCjvB,GAAWA,EAAQivB,aACvBmC,EAAInC,YAAc,IAKfmC,EAAInC,WAAa,IAAQmC,EAAInC,WAAa,IAGf,IAAR,GAAjBmC,EAAInC,cACPmC,EAAInC,YAAc,IAItBn3C,KAAKI,IAAS,EACdJ,KAAKogB,IAAS,GACdpgB,KAAK6oB,OAAS,EACd7oB,KAAKoqC,OAAS,GAEdpqC,KAAKkxC,KAAS,IAAIgI,GAClBl5C,KAAKkxC,KAAKgC,UAAY,EAEtB,IAAIpV,EAAU2jB,GAAajD,aACzBx+C,KAAKkxC,KACLoI,EAAInC,YAGN,GAAIrZ,IAAW1yB,GAAEk1C,KACf,MAAM,IAAIt8C,MAAMoc,GAAI0d,IAQtB,GALA99B,KAAKowC,OAAS,IAAIsR,GAElBD,GAAa9B,iBAAiB3/C,KAAKkxC,KAAMlxC,KAAKowC,QAG1CkJ,EAAIlB,aAEwB,iBAAnBkB,EAAIlB,WACbkB,EAAIlB,WAAaU,GAAQnV,WAAW2V,EAAIlB,YACG,yBAAlC1sC,GAASlJ,KAAK82C,EAAIlB,cAC3BkB,EAAIlB,WAAa,IAAIvvC,WAAWywC,EAAIlB,aAElCkB,EAAIC,MACNzb,EAAS2jB,GAAa7B,qBAAqB5/C,KAAKkxC,KAAMoI,EAAIlB,eAC3ChtC,GAAEk1C,MACf,MAAM,IAAIt8C,MAAMoc,GAAI0d,GAI5B,CA4NA,SAASkhB,GAAQ1lB,EAAOpR,GACtB,IAAI05B,EAAW,IAAID,GAAQz5B,GAK3B,GAHA05B,EAASv8C,KAAKi0B,GAAO,GAGjBsoB,EAASxhD,IAAO,MAAMwhD,EAASxhC,KAAOA,GAAIwhC,EAASxhD,KAEvD,OAAOwhD,EAASl+C,MAClB,CAvMAi+C,GAAQ/gD,UAAUyE,KAAO,SAAUiI,EAAMssC,GACvC,IAGI9b,EAAQ+b,EACRgI,EAAep7B,EAAMq7B,EAJrB5Q,EAAOlxC,KAAKkxC,KACZkI,EAAYp5C,KAAKkoB,QAAQkxB,UACzBhB,EAAap4C,KAAKkoB,QAAQkwB,WAM1B2J,GAAgB,EAEpB,GAAI/hD,KAAK6oB,MAAS,OAAO,EACzBgxB,EAASD,MAAWA,EAAQA,GAAkB,IAATA,EAAiBxuC,GAAE+0C,SAAW/0C,GAAE20C,WAGjD,iBAATzyC,EAET4jC,EAAK5X,MAAQwf,GAAQC,cAAczrC,GACF,yBAAxB5B,GAASlJ,KAAK8K,GACvB4jC,EAAK5X,MAAQ,IAAIzwB,WAAWyE,GAE5B4jC,EAAK5X,MAAQhsB,EAGf4jC,EAAKiE,QAAU,EACfjE,EAAKgE,SAAWhE,EAAK5X,MAAM1zB,OAE3B,EAAG,CAkBD,GAjBuB,IAAnBsrC,EAAKgC,YACPhC,EAAKxnC,OAAS,IAAIyvB,GAAMoR,KAAK6O,GAC7BlI,EAAKkC,SAAW,EAChBlC,EAAKgC,UAAYkG,IAGnBtb,EAAS2jB,GAAazC,QAAQ9N,EAAM9lC,GAAE20C,eAEvB30C,GAAEo1C,aAAepI,IAC9Bta,EAAS2jB,GAAa7B,qBAAqB5/C,KAAKkxC,KAAMkH,IAGpDta,IAAW1yB,GAAEu1C,cAAiC,IAAlBoB,IAC9BjkB,EAAS1yB,GAAEk1C,KACXyB,GAAgB,GAGdjkB,IAAW1yB,GAAEm1C,cAAgBziB,IAAW1yB,GAAEk1C,KAG5C,OAFAtgD,KAAK85C,MAAMhc,GACX99B,KAAK6oB,OAAQ,GACN,EAGLqoB,EAAKkC,WACgB,IAAnBlC,EAAKgC,WAAmBpV,IAAW1yB,GAAEm1C,eAAmC,IAAlBrP,EAAKgE,UAAmB2E,IAAUzuC,GAAE+0C,UAAYtG,IAAUzuC,GAAE60C,gBAE5F,WAApBjgD,KAAKkoB,QAAQmxB,IAEfwI,EAAgB/I,GAAQ5U,WAAWgN,EAAKxnC,OAAQwnC,EAAKkC,UAErD3sB,EAAOyqB,EAAKkC,SAAWyO,EACvBC,EAAUhJ,GAAQ/U,WAAWmN,EAAKxnC,OAAQm4C,GAG1C3Q,EAAKkC,SAAW3sB,EAChByqB,EAAKgC,UAAYkG,EAAY3yB,EACzBA,GAAQ0S,GAAM6Q,SAASkH,EAAKxnC,OAAQwnC,EAAKxnC,OAAQm4C,EAAep7B,EAAM,GAE1EzmB,KAAK+5C,OAAO+H,IAGZ9hD,KAAK+5C,OAAO5gB,GAAM2Q,UAAUoH,EAAKxnC,OAAQwnC,EAAKkC,aAY9B,IAAlBlC,EAAKgE,UAAqC,IAAnBhE,EAAKgC,YAC9B6O,GAAgB,EAGtB,QAAY7Q,EAAKgE,SAAW,GAAwB,IAAnBhE,EAAKgC,YAAoBpV,IAAW1yB,GAAEm1C,cAOrE,OALIziB,IAAW1yB,GAAEm1C,eACf1G,EAAQzuC,GAAE+0C,UAIRtG,IAAUzuC,GAAE+0C,UACdriB,EAAS2jB,GAAa/B,WAAW1/C,KAAKkxC,MACtClxC,KAAK85C,MAAMhc,GACX99B,KAAK6oB,OAAQ,EACNiV,IAAW1yB,GAAEk1C,MAIlBzG,IAAUzuC,GAAE60C,eACdjgD,KAAK85C,MAAM1uC,GAAEk1C,MACbpP,EAAKgC,UAAY,GACV,EAIX,EAYAyO,GAAQ/gD,UAAUm5C,OAAS,SAAUjwB,GACnC9pB,KAAKoqC,OAAO/kC,KAAKykB,EACnB,EAaA63B,GAAQ/gD,UAAUk5C,MAAQ,SAAUhc,GAE9BA,IAAW1yB,GAAEk1C,OACS,WAApBtgD,KAAKkoB,QAAQmxB,GAGfr5C,KAAK0D,OAAS1D,KAAKoqC,OAAOzgC,KAAK,IAE/B3J,KAAK0D,OAASy1B,GAAMgR,cAAcnqC,KAAKoqC,SAG3CpqC,KAAKoqC,OAAS,GACdpqC,KAAKI,IAAM09B,EACX99B,KAAKogB,IAAMpgB,KAAKkxC,KAAK9wB,GACvB,EA+Ee4hC,GAAAL,QAAGA,GACHK,GAAAhD,QAAGA,GACAgD,GAAAC,WAnBlB,SAAoB3oB,EAAOpR,GAGzB,OAFAA,EAAUA,GAAW,IACbqxB,KAAM,EACPyF,GAAQ1lB,EAAOpR,EACxB,EAgBA85B,GAAAE,OAAkBlD,GCnalB,IAMImD,GAAO,CAAA,GAEXvY,EARgB9oC,GAA8B8oC,QAQvCuY,GANSxvB,GACAiB,GACAyB,IAMhB,ICZI+sB,GAAwC,oBAAfv5C,YAAuD,oBAAhB4gC,aAAwD,oBAAhB4Y,YAExGF,GDUaA,GCTbhpB,GAAQxG,KACRkO,GAAgBjN,GAEhB0uB,GAAaF,GAAiB,aAAe,QAUjD,SAASG,GAAYC,EAAQt6B,GACzB2Y,GAAcr+B,KAAKxC,KAAM,eAAiBwiD,GAE1CxiD,KAAKyiD,MAAQ,KACbziD,KAAK0iD,YAAcF,EACnBxiD,KAAK2iD,aAAez6B,EAGpBloB,KAAKokC,KAAO,EAChB,CAjBawe,GAAAxZ,MAAG,OAmBhBjQ,GAAM7S,SAASi8B,GAAa1hB,IAK5B0hB,GAAY3hD,UAAUgiC,aAAe,SAAU9Y,GAC3C9pB,KAAKokC,KAAOta,EAAMsa,KACC,OAAfpkC,KAAKyiD,OACLziD,KAAK6iD,cAET7iD,KAAKyiD,MAAMp9C,KAAK8zB,GAAMqG,YAAY8iB,GAAYx4B,EAAMxc,OAAO,EAC/D,EAKAi1C,GAAY3hD,UAAU8wB,MAAQ,WAC1BmP,GAAcjgC,UAAU8wB,MAAMlvB,KAAKxC,MAChB,OAAfA,KAAKyiD,OACLziD,KAAK6iD,cAET7iD,KAAKyiD,MAAMp9C,KAAK,IAAI,EACxB,EAIAk9C,GAAY3hD,UAAU6hC,QAAU,WAC5B5B,GAAcjgC,UAAU6hC,QAAQjgC,KAAKxC,MACrCA,KAAKyiD,MAAQ,IACjB,EAQAF,GAAY3hD,UAAUiiD,YAAc,WAChC7iD,KAAKyiD,MAAQ,IAAIN,GAAKniD,KAAK0iD,aAAa,CACpCnJ,KAAK,EACLtI,MAAOjxC,KAAK2iD,aAAa1R,QAAU,IAEvC,IAAIlxC,EAAOC,KACXA,KAAKyiD,MAAM1I,OAAS,SAASzsC,GACzBvN,EAAKsF,KAAK,CACNiI,KAAOA,EACP82B,KAAOrkC,EAAKqkC,MAExB,CACA,EAEsBwe,GAAA1a,eAAG,SAAUD,GAC/B,OAAO,IAAIsa,GAAY,UAAWta,EACtC,EACA2a,GAAA/a,iBAA2B,WACvB,OAAO,IAAI0a,GAAY,UAAW,CAAA,EACtC,EClFA,IAAI1hB,GAAgB//B,GAEpBgiD,GAAAC,MAAgB,CACZ3Z,MAAO,OACPlB,eAAiB,WACb,OAAO,IAAIrH,GAAc,oBAC5B,EACDgH,iBAAmB,WACf,OAAO,IAAIhH,GAAc,sBAC5B,GAELiiB,GAAAE,QAAkBrwB,WCZOswB,kBAAG,OACDA,oBAAG,OACDA,sBAAG,OACOA,gCAAG,OACPA,4BAAG,OACtCA,gBAA0B,SCJtB9pB,GAAQr4B,KACR+/B,GAAgBlO,GAChByV,GAAOxU,EACPoT,GAAQ3R,GACR6tB,GAAYnvB,GASZovB,GAAW,SAASC,EAAK1vC,GACzB,IAAc7N,EAAVw9C,EAAM,GACV,IAAKx9C,EAAI,EAAGA,EAAI6N,EAAO7N,IACnBw9C,GAAOn0C,OAAOsC,aAAmB,IAAN4xC,GAC3BA,KAAc,EAElB,OAAOC,CACX,EAyDIC,GAAmB,SAASxiB,EAAYyiB,EAAiBC,EAAgBr5C,EAAQqR,EAAUioC,GAC3F,IAUIC,EACAC,EAXAC,EAAO9iB,EAAiB,KACxB2G,EAAc3G,EAAwB,YACtC+iB,EAAoBJ,IAAmBrb,GAAK9E,WAC5CwgB,EAAkB3qB,GAAMqG,YAAY,SAAUikB,EAAeG,EAAK19C,OAClE69C,EAAqB5qB,GAAMqG,YAAY,SAAU4I,GAAK9E,WAAWsgB,EAAK19C,OACtEoiC,EAAUsb,EAAKtb,QACf0b,EAAiB7qB,GAAMqG,YAAY,SAAUikB,EAAenb,IAC5D2b,EAAoB9qB,GAAMqG,YAAY,SAAU4I,GAAK9E,WAAWgF,IAChE4b,EAAqBH,EAAmBn+C,SAAWg+C,EAAK19C,KAAKN,OAC7Du+C,EAAoBF,EAAkBr+C,SAAW0iC,EAAQ1iC,OAGzDw+C,EAAc,GACdC,EAAwB,GACxBC,EAA2B,GAC3B31C,EAAMi1C,EAAKj1C,IACX6W,EAAOo+B,EAAKp+B,KAGZ++B,EAAW,CACXvd,MAAQ,EACRO,eAAiB,EACjBC,iBAAmB,GAKlB+b,IAAmBC,IACpBe,EAASvd,MAAQlG,EAAkB,MACnCyjB,EAAShd,eAAiBzG,EAA2B,eACrDyjB,EAAS/c,iBAAmB1G,EAA6B,kBAG7D,IAAI0jB,EAAU,EACVjB,IAIAiB,GAAW,GAEVX,IAAsBK,IAAsBC,IAE7CK,GAAW,MAIf,IAvFyCjc,EAAiBkc,EAEtD/gD,EAqFAghD,EAAc,EACdC,EAAgB,EAChBh2C,IAEA+1C,GAAe,IAEH,SAAblpC,GACCmpC,EAAgB,IAChBD,IA/FqCnc,EA+FOqb,EAAKrb,gBA/FKkc,EA+FY91C,EA7FlEjL,EAAS6kC,EACRA,IAID7kC,EAAS+gD,EAAQ,MAAS,QAEb,MAAT/gD,IAAoB,MAwFxBihD,EAAgB,GAChBD,GAvE4B,IAuEed,EAAKpb,gBAvE1B,IA+E1Bkb,EAAUl+B,EAAKo/B,cACflB,IAAqB,EACrBA,GAAoBl+B,EAAKq/B,gBACzBnB,IAAqB,EACrBA,GAAoBl+B,EAAKs/B,gBAAkB,EAE3CnB,EAAUn+B,EAAKu/B,iBAAmB,KAClCpB,IAAqB,EACrBA,GAAqBn+B,EAAKw/B,cAAgB,EAC1CrB,IAAqB,EACrBA,GAAoBn+B,EAAKy/B,aAErBf,IAUAG,EAEIlB,GAAS,EAAG,GAEZA,GAASnc,GAAM8c,GAAkB,GAEjCC,EAEJK,GAEI,KAEAjB,GAASkB,EAAsBz+C,OAAQ,GAEvCy+C,GAGLF,IAECG,EAEInB,GAAS,EAAG,GAEZA,GAASnc,GAAMgd,GAAiB,GAEhCC,EAEJG,GAEI,KAEAjB,GAASmB,EAAyB1+C,OAAQ,GAE1C0+C,GAGR,IAAIlU,EAAS,GAgDb,OA7CAA,GAAU,OAEVA,GAAU+S,GAASqB,EAAS,GAE5BpU,GAAU3I,EAAY2B,MAEtBgH,GAAU+S,GAASO,EAAS,GAE5BtT,GAAU+S,GAASQ,EAAS,GAE5BvT,GAAU+S,GAASoB,EAASvd,MAAO,GAEnCoJ,GAAU+S,GAASoB,EAAShd,eAAgB,GAE5C6I,GAAU+S,GAASoB,EAAS/c,iBAAkB,GAE9C4I,GAAU+S,GAASW,EAAgBl+C,OAAQ,GAE3CwqC,GAAU+S,GAASiB,EAAYx+C,OAAQ,GA2BhC,CACHs/C,WAzBahC,GAAUiC,kBAAoB/U,EAAS0T,EAAkBM,EA0BtEgB,UAxBYlC,GAAUmC,oBAEtBlC,GAASwB,EAAe,GAExBvU,EAEA+S,GAASa,EAAep+C,OAAQ,GANpBs9C,WAYZC,GAASuB,EAAa,GAEtBvB,GAASh5C,EAAQ,GAEjB25C,EAEAM,EAEAJ,EAMR,EA2CIsB,GAA0B,SAAUxkB,GAUpC,OARaoiB,GAAUqC,gBAEnBpC,GAASriB,EAAkB,MAAG,GAE9BqiB,GAASriB,EAA2B,eAAG,GAEvCqiB,GAASriB,EAA6B,iBAAG,EAGjD,EAWA,SAAS0kB,GAAcC,EAAand,EAAS9sB,EAAUioC,GACnD5iB,GAAcr+B,KAAKxC,KAAM,iBAEzBA,KAAK0lD,aAAe,EAEpB1lD,KAAK2lD,WAAard,EAElBtoC,KAAK4lD,YAAcpqC,EAEnBxb,KAAKyjD,eAAiBA,EAEtBzjD,KAAKylD,YAAcA,EAKnBzlD,KAAK6kC,YAAa,EAElB7kC,KAAK6lD,cAAgB,GAErB7lD,KAAK8lD,WAAa,GAElB9lD,KAAK+lD,oBAAsB,EAE3B/lD,KAAKgmD,aAAe,EAGpBhmD,KAAKimD,YAAc,KAInBjmD,KAAKkmD,SAAW,EACpB,CACA/sB,GAAM7S,SAASk/B,GAAe3kB,IAK9B2kB,GAAc5kD,UAAUyE,KAAO,SAAUykB,GAErC,IAAIq8B,EAAqBr8B,EAAMsa,KAAKoC,SAAW,EAC3Cwf,EAAehmD,KAAKgmD,aACpBI,EAAiBpmD,KAAKkmD,SAAStgD,OAEhC5F,KAAK6kC,WACJ7kC,KAAK6lD,cAAcxgD,KAAKykB,IAExB9pB,KAAK0lD,cAAgB57B,EAAMxc,KAAK1H,OAEhCi7B,GAAcjgC,UAAUyE,KAAK7C,KAAKxC,KAAM,CACpCsN,KAAOwc,EAAMxc,KACb82B,KAAO,CACH6hB,YAAcjmD,KAAKimD,YACnBzf,QAAUwf,GAAgBG,EAAqB,KAAOH,EAAeI,EAAiB,IAAMJ,EAAe,OAI3H,EAMAR,GAAc5kD,UAAUylD,aAAe,SAAUvlB,GAC7C9gC,KAAK+lD,oBAAsB/lD,KAAK0lD,aAChC1lD,KAAKimD,YAAcnlB,EAAiB,KAAE56B,KAEtC,IAAIq9C,EAAkBvjD,KAAKylD,cAAgB3kB,EAAiB,KAAEnyB,IAG9D,GAAG40C,EAAiB,CAChB,IAAI9/C,EAAS6/C,GAAiBxiB,EAAYyiB,GAAiB,EAAOvjD,KAAK+lD,oBAAqB/lD,KAAK4lD,YAAa5lD,KAAKyjD,gBACnHzjD,KAAKqF,KAAK,CACNiI,KAAO7J,EAAOyhD,WACd9gB,KAAO,CAACoC,QAAQ,IAE5B,MAEQxmC,KAAK6kC,YAAa,CAE1B,EAMA2gB,GAAc5kD,UAAU0lD,aAAe,SAAUxlB,GAC7C9gC,KAAK6kC,YAAa,EAClB,IAAI0e,EAAkBvjD,KAAKylD,cAAgB3kB,EAAiB,KAAEnyB,IAC1DlL,EAAS6/C,GAAiBxiB,EAAYyiB,GAAiB,EAAMvjD,KAAK+lD,oBAAqB/lD,KAAK4lD,YAAa5lD,KAAKyjD,gBAGlH,GADAzjD,KAAK8lD,WAAWzgD,KAAK5B,EAAO2hD,WACzB7B,EAECvjD,KAAKqF,KAAK,CACNiI,KAAOg4C,GAAwBxkB,GAC/BsD,KAAO,CAACoC,QAAQ,YASpB,IAJAxmC,KAAKqF,KAAK,CACNiI,KAAO7J,EAAOyhD,WACd9gB,KAAO,CAACoC,QAAQ,KAEdxmC,KAAK6lD,cAAcjgD,QACrB5F,KAAKqF,KAAKrF,KAAK6lD,cAAcl/B,SAGrC3mB,KAAKimD,YAAc,IACvB,EAKAT,GAAc5kD,UAAU8wB,MAAQ,WAG5B,IADA,IAAI60B,EAAiBvmD,KAAK0lD,aAClB7/C,EAAI,EAAGA,EAAI7F,KAAK8lD,WAAWlgD,OAAQC,IACvC7F,KAAKqF,KAAK,CACNiI,KAAOtN,KAAK8lD,WAAWjgD,GACvBu+B,KAAO,CAACoC,QAAQ,OAGxB,IAAIggB,EAAmBxmD,KAAK0lD,aAAea,EAEvCE,EApL0B,SAAUT,EAAcQ,EAAkBD,EAAgBje,EAASmb,GACjG,IACIO,EAAiB7qB,GAAMqG,YAAY,SAAUikB,EAAenb,IAqBhE,OAlBS4a,GAAUwD,sBAAVxD,WAMLC,GAAS6C,EAAc,GAEvB7C,GAAS6C,EAAc,GAEvB7C,GAASqD,EAAkB,GAE3BrD,GAASoD,EAAgB,GAEzBpD,GAASa,EAAep+C,OAAQ,GAEhCo+C,CAGR,CA4JiB2C,CAA4B3mD,KAAK8lD,WAAWlgD,OAAQ4gD,EAAkBD,EAAgBvmD,KAAK2lD,WAAY3lD,KAAKyjD,gBAEzHzjD,KAAKqF,KAAK,CACNiI,KAAOm5C,EACPriB,KAAO,CAACoC,QAAQ,MAExB,EAKAgf,GAAc5kD,UAAUgmD,kBAAoB,WACxC5mD,KAAKohC,SAAWphC,KAAKkmD,SAASv/B,QAC9B3mB,KAAKqmD,aAAarmD,KAAKohC,SAASN,YAC5B9gC,KAAKwqB,SACLxqB,KAAKohC,SAAS9R,QAEdtvB,KAAKohC,SAAS3R,QAEtB,EAKA+1B,GAAc5kD,UAAU8hC,iBAAmB,SAAUtB,GACjDphC,KAAKkmD,SAAS7gD,KAAK+7B,GACnB,IAAIrhC,EAAOC,KAgBX,OAdAohC,EAAS7nB,GAAG,QAAQ,SAAUuQ,GAC1B/pB,EAAK6iC,aAAa9Y,EAC1B,IACIsX,EAAS7nB,GAAG,OAAO,WACfxZ,EAAKumD,aAAavmD,EAAKqhC,SAASN,YAC7B/gC,EAAKmmD,SAAStgD,OACb7F,EAAK6mD,oBAEL7mD,EAAKwJ,KAEjB,IACI63B,EAAS7nB,GAAG,SAAS,SAAUhP,GAC3BxK,EAAKN,MAAM8K,EACnB,IACWvK,IACX,EAKAwlD,GAAc5kD,UAAU6uB,OAAS,WAC7B,QAAIoR,GAAcjgC,UAAU6uB,OAAOjtB,KAAKxC,SAInCA,KAAKohC,UAAYphC,KAAKkmD,SAAStgD,QAChC5F,KAAK4mD,qBACE,GAEN5mD,KAAKohC,UAAaphC,KAAKkmD,SAAStgD,QAAW5F,KAAK+gC,oBAArD,GACI/gC,KAAKuJ,OACE,GAEf,EAKAi8C,GAAc5kD,UAAUnB,MAAQ,SAAU8K,GACtC,IAAIs/B,EAAU7pC,KAAKkmD,SACnB,IAAIrlB,GAAcjgC,UAAUnB,MAAM+C,KAAKxC,KAAMuK,GACzC,OAAO,EAEX,IAAI,IAAI1E,EAAI,EAAGA,EAAIgkC,EAAQjkC,OAAQC,IAC/B,IACIgkC,EAAQhkC,GAAGpG,MAAM8K,EAGpB,CAFC,MAAMA,GAEP,CAEL,OAAO,CACX,EAKAi7C,GAAc5kD,UAAUmiC,KAAO,WAC3BlC,GAAcjgC,UAAUmiC,KAAKvgC,KAAKxC,MAElC,IADA,IAAI6pC,EAAU7pC,KAAKkmD,SACXrgD,EAAI,EAAGA,EAAIgkC,EAAQjkC,OAAQC,IAC/BgkC,EAAQhkC,GAAGk9B,MAEnB,EAEA,ICxhBI8jB,GAAe/lD,GACf0kD,GDuhBaA,GC/fjBsB,GAAAC,eAAyB,SAAUC,EAAK9+B,EAASogB,GAE7C,IAAI2e,EAAgB,IAAIzB,GAAct9B,EAAQu9B,YAAand,EAASpgB,EAAQ1M,SAAU0M,EAAQu7B,gBAC1FuC,EAAe,EACnB,IAEIgB,EAAI7jD,SAAQ,SAAU+jD,EAActD,GAChCoC,IACA,IAAIve,EAxBK,SAAU0f,EAAiBC,GAE5C,IAAIC,EAAkBF,GAAmBC,EACrC3f,EAAcof,GAAaQ,GAC/B,IAAK5f,EACD,MAAM,IAAIzjC,MAAMqjD,EAAkB,wCAEtC,OAAO5f,CACX,CAgB8B6f,CAAe1D,EAAK17B,QAAQuf,YAAavf,EAAQuf,aAC/DQ,EAAqB2b,EAAK17B,QAAQ+f,oBAAsB/f,EAAQ+f,oBAAsB,GACtFt5B,EAAMi1C,EAAKj1C,IAAK6W,EAAOo+B,EAAKp+B,KAEhCo+B,EAAKza,gBAAgB1B,EAAaQ,GAC7BnF,eAAe,OAAQ,CACpB58B,KAAOghD,EACPv4C,IAAMA,EACN6W,KAAOA,EACP8iB,QAAUsb,EAAKtb,SAAW,GAC1BC,gBAAkBqb,EAAKrb,gBACvBC,eAAiBob,EAAKpb,iBAEzBja,KAAK04B,EACtB,IACQA,EAAcjB,aAAeA,CAGhC,CAFC,MAAOz7C,GACL08C,EAAcxnD,MAAM8K,EACvB,CAED,OAAO08C,CACX,ECtDA,IAAI9tB,GAAQr4B,KACR+/B,GAAgBlO,GAQpB,SAAS40B,GAAyBC,EAAUr/B,GACxC0Y,GAAcr+B,KAAKxC,KAAM,mCAAqCwnD,GAC9DxnD,KAAKynD,gBAAiB,EACtBznD,KAAK0nD,YAAYv/B,EACrB,CAEAgR,GAAM7S,SAASihC,GAA0B1mB,IAOzC0mB,GAAyB3mD,UAAU8mD,YAAc,SAAUv/B,GACvD,IAAIpoB,EAAOC,KACXA,KAAK2nD,QAAUx/B,EACfA,EAAOmH,QACPnH,EACK5O,GAAG,QAAQ,SAAUuQ,GAClB/pB,EAAKsF,KAAK,CACNiI,KAAMwc,EACNsa,KAAO,CACHoC,QAAU,IAG9B,IACSjtB,GAAG,SAAS,SAAUhP,GAChBxK,EAAKyqB,SACJxqB,KAAK+gC,eAAiBx2B,EAEtBxK,EAAKN,MAAM8K,EAE3B,IACSgP,GAAG,OAAO,WACJxZ,EAAKyqB,SACJzqB,EAAK0nD,gBAAiB,EAEtB1nD,EAAKwJ,KAErB,GACA,EACAg+C,GAAyB3mD,UAAU0uB,MAAQ,WACvC,QAAIuR,GAAcjgC,UAAU0uB,MAAM9sB,KAAKxC,QAGvCA,KAAK2nD,QAAQr4B,SACN,EACX,EACAi4B,GAAyB3mD,UAAU6uB,OAAS,WACxC,QAAIoR,GAAcjgC,UAAU6uB,OAAOjtB,KAAKxC,QAIrCA,KAAKynD,eACJznD,KAAKuJ,MAELvJ,KAAK2nD,QAAQl4B,UAGV,EACX,EAEA,IAAAm4B,GAAiBL,GCxEbnf,GAAOtnC,EACPq4B,GAAQxG,KACRkO,GAAgBjN,GAChB4R,GAAenQ,GACfwyB,GAAW9zB,GACXuT,GAAmBtT,GACnBqU,GAAYjU,GACZ0zB,GAAWzzB,GACX+F,GAAcnD,GACdswB,GAA2BrwB,GAW3B6wB,GAAU,SAAS7hD,EAAMoH,EAAM06C,GAE/B,IACIC,EADArnB,EAAWzH,GAAMY,UAAUzsB,GAQ3B+W,EAAI8U,GAAM8G,OAAO+nB,GAAmB,CAAA,EAAIH,IAC5CxjC,EAAEmB,KAAOnB,EAAEmB,MAAQ,IAAInL,KACD,OAAlBgK,EAAEojB,cACFpjB,EAAEojB,YAAcpjB,EAAEojB,YAAY3mB,eAGD,iBAAtBuD,EAAEkkB,kBACTlkB,EAAEkkB,gBAAkB14B,SAASwU,EAAEkkB,gBAAiB,IAIhDlkB,EAAEkkB,iBAAwC,MAApBlkB,EAAEkkB,kBACxBlkB,EAAE1V,KAAM,GAGR0V,EAAEmkB,gBAAsC,GAAnBnkB,EAAEmkB,iBACvBnkB,EAAE1V,KAAM,GAGR0V,EAAE1V,MACFzI,EAAOgiD,GAAmBhiD,IAE1Bme,EAAE8jC,gBAAkBF,EAASG,GAAaliD,KAC1CmiD,GAAU7lD,KAAKxC,KAAMioD,GAAQ,GAGjC,IAAIjf,EAA+B,WAAbpI,IAAsC,IAAbvc,EAAEskB,SAAiC,IAAbtkB,EAAE+T,OAClE4vB,QAAqD,IAA3BA,EAAgBrf,SAC3CtkB,EAAEskB,QAAUK,IAIS17B,aAAgBg6B,IAA+C,IAA1Bh6B,EAAKk6B,kBAE1CnjB,EAAE1V,MAAQrB,GAAwB,IAAhBA,EAAK1H,UAC5Cye,EAAE+T,QAAS,EACX/T,EAAEskB,QAAS,EACXr7B,EAAO,GACP+W,EAAEojB,YAAc,QAChB7G,EAAW,UAOf,IAAI0nB,EAAmB,KAEnBA,EADAh7C,aAAgBg6B,IAAoBh6B,aAAgBuzB,GACjCvzB,EACZ8sB,GAAYC,QAAUD,GAAYI,SAASltB,GAC/B,IAAIi6C,GAAyBrhD,EAAMoH,GAEnC6rB,GAAMgH,eAAej6B,EAAMoH,EAAM+W,EAAEskB,OAAQtkB,EAAEkkC,sBAAuBlkC,EAAE+T,QAG7F,IAAIzxB,EAAS,IAAI0hC,GAAUniC,EAAMoiD,EAAkBjkC,GACnDrkB,KAAKwoD,MAAMtiD,GAAQS,CAavB,EAQIyhD,GAAe,SAAUzoB,GACF,MAAnBA,EAAK14B,OAAO,KACZ04B,EAAOA,EAAK/X,UAAU,EAAG+X,EAAK/5B,OAAS,IAE3C,IAAI6iD,EAAY9oB,EAAK7wB,YAAY,KACjC,OAAQ25C,EAAY,EAAK9oB,EAAK/X,UAAU,EAAG6gC,GAAa,EAC5D,EAQIP,GAAqB,SAASvoB,GAK9B,MAHuB,MAAnBA,EAAK14B,OAAO,KACZ04B,GAAQ,KAELA,CACX,EAUI0oB,GAAY,SAASniD,EAAMiiD,GAY3B,OAXAA,OAA0C,IAAlBA,EAAiCA,EAAgBN,GAASM,cAElFjiD,EAAOgiD,GAAmBhiD,GAGrBlG,KAAKwoD,MAAMtiD,IACZ6hD,GAAQvlD,KAAKxC,KAAMkG,EAAM,KAAM,CAC3ByI,KAAK,EACLw5C,cAAeA,IAGhBnoD,KAAKwoD,MAAMtiD,EACtB,EAQA,SAAS4c,GAASnc,GACd,MAAkD,oBAA3C/H,OAAOgC,UAAU8K,SAASlJ,KAAKmE,EAC1C,CAGA,IAAI6M,GAAM,CAINk1C,KAAM,WACF,MAAM,IAAI1kD,MAAM,6EACnB,EASDb,QAAS,SAASyoB,GACd,IAAI47B,EAAUN,EAActD,EAG5B,IAAK4D,KAAYxnD,KAAKwoD,MAClB5E,EAAO5jD,KAAKwoD,MAAMhB,IAClBN,EAAeM,EAASvgD,MAAMjH,KAAK48C,KAAKh3C,OAAQ4hD,EAAS5hD,UACrC4hD,EAASvgD,MAAM,EAAGjH,KAAK48C,KAAKh3C,UAAY5F,KAAK48C,MAC7DhxB,EAAGs7B,EAActD,EAG5B,EASD+E,OAAQ,SAASC,GACb,IAAIllD,EAAS,GAOb,OANA1D,KAAKmD,SAAQ,SAAU+jD,EAAcniD,GAC7B6jD,EAAO1B,EAAcniD,IACrBrB,EAAO2B,KAAKN,EAG5B,IACerB,CACV,EAWDkgD,KAAM,SAAS19C,EAAMoH,EAAM+W,GACvB,GAAyB,IAArBnkB,UAAU0F,OAAc,CACxB,GAAIkd,GAAS5c,GAAO,CAChB,IAAIuf,EAASvf,EACb,OAAOlG,KAAK2oD,QAAO,SAASzB,EAActD,GACtC,OAAQA,EAAKj1C,KAAO8W,EAAOzE,KAAKkmC,EACpD,GACa,CAEG,IAAIzoD,EAAMuB,KAAKwoD,MAAMxoD,KAAK48C,KAAO12C,GACjC,OAAIzH,IAAQA,EAAIkQ,IACLlQ,EAEA,IAGlB,CAKD,OAHIyH,EAAOlG,KAAK48C,KAAO12C,EACnB6hD,GAAQvlD,KAAKxC,KAAMkG,EAAMoH,EAAM+W,GAE5BrkB,IACV,EAOD6oD,OAAQ,SAAStpD,GACb,IAAKA,EACD,OAAOS,KAGX,GAAI8iB,GAASvjB,GACT,OAAOS,KAAK2oD,QAAO,SAASzB,EAActD,GACtC,OAAOA,EAAKj1C,KAAOpP,EAAIyhB,KAAKkmC,EAC5C,IAIQ,IAAIhhD,EAAOlG,KAAK48C,KAAOr9C,EACnBupD,EAAYT,GAAU7lD,KAAKxC,KAAMkG,GAGjCqN,EAAMvT,KAAK+oD,QAEf,OADAx1C,EAAIqpC,KAAOkM,EAAU5iD,KACdqN,CACV,EAODy1C,OAAQ,SAAS9iD,GACbA,EAAOlG,KAAK48C,KAAO12C,EACnB,IAAI09C,EAAO5jD,KAAKwoD,MAAMtiD,GAStB,GARK09C,IAEsB,MAAnB19C,EAAKe,OAAO,KACZf,GAAQ,KAEZ09C,EAAO5jD,KAAKwoD,MAAMtiD,IAGlB09C,IAASA,EAAKj1C,WAEP3O,KAAKwoD,MAAMtiD,QAMlB,IAHA,IAAI+iD,EAAOjpD,KAAK2oD,QAAO,SAASzB,EAActD,GAC1C,OAAOA,EAAK19C,KAAKe,MAAM,EAAGf,EAAKN,UAAYM,CAC3D,IACqBL,EAAI,EAAGA,EAAIojD,EAAKrjD,OAAQC,WACtB7F,KAAKwoD,MAAMS,EAAKpjD,GAAGK,MAIlC,OAAOlG,IACV,EAKD8nD,SAAU,WACN,MAAM,IAAI9jD,MAAM,6EACnB,EASDklD,uBAAwB,SAAShhC,GAC7B,IAAIud,EAAQxkB,EAAO,GACnB,IAoBI,IAnBAA,EAAOkY,GAAM8G,OAAO/X,GAAW,CAAA,EAAI,CAC/Bu9B,aAAa,EACbhe,YAAa,QACbQ,mBAAqB,KACrB1lC,KAAM,GACNiZ,SAAU,MACV8sB,QAAS,KACTlD,SAAU,kBACVqe,eAAgBrb,GAAK9E,cAGpB/gC,KAAO0e,EAAK1e,KAAKyL,cACtBiT,EAAKwmB,YAAcxmB,EAAKwmB,YAAY3mB,cAGnB,iBAAdG,EAAK1e,OACJ0e,EAAK1e,KAAO,WAGX0e,EAAK1e,KACN,MAAM,IAAIyB,MAAM,6BAGpBm1B,GAAMyF,aAAa3d,EAAK1e,MAIF,WAAlB0e,EAAKzF,UACa,YAAlByF,EAAKzF,UACa,UAAlByF,EAAKzF,UACa,UAAlByF,EAAKzF,WAELyF,EAAKzF,SAAW,QAEE,UAAlByF,EAAKzF,WACLyF,EAAKzF,SAAW,OAGpB,IAAI8sB,EAAUrnB,EAAKqnB,SAAWtoC,KAAKsoC,SAAW,GAC9C7C,EAASqiB,GAASf,eAAe/mD,KAAMihB,EAAMqnB,EAIhD,CAHC,MAAO/9B,IACLk7B,EAAS,IAAI5E,GAAc,UACpBphC,MAAM8K,EAChB,CACD,OAAO,IAAIi7B,GAAaC,EAAQxkB,EAAK1e,MAAQ,SAAU0e,EAAKmkB,SAC/D,EAKD+jB,cAAe,SAASjhC,EAAS+gB,GAC7B,OAAOjpC,KAAKkpD,uBAAuBhhC,GAAS2c,WAAWoE,EAC1D,EAKDmgB,mBAAoB,SAASlhC,EAAS+gB,GAKlC,OAJA/gB,EAAUA,GAAW,IACR3lB,OACT2lB,EAAQ3lB,KAAO,cAEZvC,KAAKkpD,uBAAuBhhC,GAAS4d,eAAemD,EAC9D,GAELtiC,GAAiB6M,GC9Xb2lB,GAAQr4B,KAEZ,SAASuoD,GAAW/7C,GAChBtN,KAAKsN,KAAOA,EACZtN,KAAK4F,OAAS0H,EAAK1H,OACnB5F,KAAK8e,MAAQ,EACb9e,KAAK0qC,KAAO,CAChB,CACU4e,GAAC1oD,UAAY,CAMnB+S,YAAa,SAASxJ,GAClBnK,KAAKupD,WAAWvpD,KAAK8e,MAAQ3U,EAChC,EAMDo/C,WAAY,SAASC,GACjB,GAAIxpD,KAAK4F,OAAS5F,KAAK0qC,KAAO8e,GAAYA,EAAW,EACjD,MAAM,IAAIxlD,MAAM,sCAAwChE,KAAK4F,OAAS,mBAAsB,EAAY,qBAE/G,EAMD6jD,SAAU,SAASD,GACfxpD,KAAKupD,WAAWC,GAChBxpD,KAAK8e,MAAQ0qC,CAChB,EAMDE,KAAM,SAASj7C,GACXzO,KAAKypD,SAASzpD,KAAK8e,MAAQrQ,EAC9B,EAMDk7C,OAAQ,WAEP,EAMDC,QAAS,SAASn8C,GACd,IACI5H,EADAnC,EAAS,EAGb,IADA1D,KAAK2T,YAAYlG,GACZ5H,EAAI7F,KAAK8e,MAAQrR,EAAO,EAAG5H,GAAK7F,KAAK8e,MAAOjZ,IAC7CnC,GAAUA,GAAU,GAAK1D,KAAK2pD,OAAO9jD,GAGzC,OADA7F,KAAK8e,OAASrR,EACP/J,CACV,EAMDmmD,WAAY,SAASp8C,GACjB,OAAO0rB,GAAMqG,YAAY,SAAUx/B,KAAK8pD,SAASr8C,GACpD,EAMDq8C,SAAU,WAET,EAMDC,qBAAsB,WAErB,EAMDC,sBAAuB,WAEtB,EAKDC,SAAU,WACN,IAAIC,EAAUlqD,KAAK4pD,QAAQ,GAC3B,OAAO,IAAIvvC,KAAKA,KAAK8vC,IACU,MAAzBD,GAAW,GAAM,MACjBA,GAAW,GAAM,IAAQ,EAC1BA,GAAW,GAAM,GACjBA,GAAW,GAAM,GACjBA,GAAW,EAAK,IACN,GAAVA,IAAmB,GAC3B,GAEL,IAAAE,GAAiBf,GClHbA,GAAavoD,GAGjB,SAASupD,GAAY/8C,GACjB+7C,GAAW7mD,KAAKxC,KAAMsN,GACtB,IAAI,IAAIzH,EAAI,EAAGA,EAAI7F,KAAKsN,KAAK1H,OAAQC,IACjCyH,EAAKzH,GAAe,IAAVyH,EAAKzH,EAEvB,CAPY8sB,KAQNrM,SAAS+jC,GAAahB,IAI5BgB,GAAYzpD,UAAU+oD,OAAS,SAAS9jD,GACpC,OAAO7F,KAAKsN,KAAKtN,KAAK0qC,KAAO7kC,EACjC,EAIAwkD,GAAYzpD,UAAUmpD,qBAAuB,SAASO,GAKlD,IAJA,IAAIC,EAAOD,EAAInhD,WAAW,GACtBqhD,EAAOF,EAAInhD,WAAW,GACtBshD,EAAOH,EAAInhD,WAAW,GACtBuhD,EAAOJ,EAAInhD,WAAW,GACjBtD,EAAI7F,KAAK4F,OAAS,EAAGC,GAAK,IAAKA,EACpC,GAAI7F,KAAKsN,KAAKzH,KAAO0kD,GAAQvqD,KAAKsN,KAAKzH,EAAI,KAAO2kD,GAAQxqD,KAAKsN,KAAKzH,EAAI,KAAO4kD,GAAQzqD,KAAKsN,KAAKzH,EAAI,KAAO6kD,EACxG,OAAO7kD,EAAI7F,KAAK0qC,KAIxB,OAAQ,CACZ,EAIA2f,GAAYzpD,UAAUopD,sBAAwB,SAAUM,GACpD,IAAIC,EAAOD,EAAInhD,WAAW,GACtBqhD,EAAOF,EAAInhD,WAAW,GACtBshD,EAAOH,EAAInhD,WAAW,GACtBuhD,EAAOJ,EAAInhD,WAAW,GACtBmE,EAAOtN,KAAK8pD,SAAS,GACzB,OAAOS,IAASj9C,EAAK,IAAMk9C,IAASl9C,EAAK,IAAMm9C,IAASn9C,EAAK,IAAMo9C,IAASp9C,EAAK,EACrF,EAIA+8C,GAAYzpD,UAAUkpD,SAAW,SAASr8C,GAEtC,GADAzN,KAAK2T,YAAYlG,GACL,IAATA,EACC,MAAO,GAEX,IAAI/J,EAAS1D,KAAKsN,KAAKrG,MAAMjH,KAAK0qC,KAAO1qC,KAAK8e,MAAO9e,KAAK0qC,KAAO1qC,KAAK8e,MAAQrR,GAE9E,OADAzN,KAAK8e,OAASrR,EACP/J,CACX,EACA,IAAAinD,GAAiBN,GCvDbhB,GAAavoD,GAGjB,SAAS8pD,GAAat9C,GAClB+7C,GAAW7mD,KAAKxC,KAAMsN,EAC1B,CAJYqlB,KAKNrM,SAASskC,GAAcvB,IAI7BuB,GAAahqD,UAAU+oD,OAAS,SAAS9jD,GACrC,OAAO7F,KAAKsN,KAAKnE,WAAWnJ,KAAK0qC,KAAO7kC,EAC5C,EAIA+kD,GAAahqD,UAAUmpD,qBAAuB,SAASO,GACnD,OAAOtqD,KAAKsN,KAAKwB,YAAYw7C,GAAOtqD,KAAK0qC,IAC7C,EAIAkgB,GAAahqD,UAAUopD,sBAAwB,SAAUM,GAErD,OAAOA,IADItqD,KAAK8pD,SAAS,EAE7B,EAIAc,GAAahqD,UAAUkpD,SAAW,SAASr8C,GACvCzN,KAAK2T,YAAYlG,GAEjB,IAAI/J,EAAS1D,KAAKsN,KAAKrG,MAAMjH,KAAK0qC,KAAO1qC,KAAK8e,MAAO9e,KAAK0qC,KAAO1qC,KAAK8e,MAAQrR,GAE9E,OADAzN,KAAK8e,OAASrR,EACP/J,CACX,EACA,IAAAmnD,GAAiBD,GCpCbP,GAAcvpD,GAGlB,SAASgqD,GAAiBx9C,GACtB+8C,GAAY7nD,KAAKxC,KAAMsN,EAC3B,CAJYqlB,KAKNrM,SAASwkC,GAAkBT,IAIjCS,GAAiBlqD,UAAUkpD,SAAW,SAASr8C,GAE3C,GADAzN,KAAK2T,YAAYlG,GACL,IAATA,EAEC,OAAO,IAAI5E,WAAW,GAE1B,IAAInF,EAAS1D,KAAKsN,KAAKkH,SAASxU,KAAK0qC,KAAO1qC,KAAK8e,MAAO9e,KAAK0qC,KAAO1qC,KAAK8e,MAAQrR,GAEjF,OADAzN,KAAK8e,OAASrR,EACP/J,CACX,EACA,IAAAqnD,GAAiBD,GCpBbA,GAAmBhqD,GAGvB,SAASkqD,GAAiB19C,GACtBw9C,GAAiBtoD,KAAKxC,KAAMsN,EAChC,CAJYqlB,KAKNrM,SAAS0kC,GAAkBF,IAKjCE,GAAiBpqD,UAAUkpD,SAAW,SAASr8C,GAC3CzN,KAAK2T,YAAYlG,GACjB,IAAI/J,EAAS1D,KAAKsN,KAAKrG,MAAMjH,KAAK0qC,KAAO1qC,KAAK8e,MAAO9e,KAAK0qC,KAAO1qC,KAAK8e,MAAQrR,GAE9E,OADAzN,KAAK8e,OAASrR,EACP/J,CACX,EACA,IAAAunD,GAAiBD,GChBb7xB,GAAQr4B,KACRw3B,GAAU3F,GACV03B,GAAcz2B,GACdg3B,GAAev1B,GACf21B,GAAmBj3B,GACnB+2B,GAAmB92B,GAOvBk3B,GAAiB,SAAU59C,GACvB,IAAI/K,EAAO42B,GAAMY,UAAUzsB,GAE3B,OADA6rB,GAAMyF,aAAar8B,GACN,WAATA,GAAsB+1B,GAAQE,WAGrB,eAATj2B,EACO,IAAIyoD,GAAiB19C,GAE5BgrB,GAAQE,WACD,IAAIsyB,GAAiB3xB,GAAMqG,YAAY,aAAclyB,IAEzD,IAAI+8C,GAAYlxB,GAAMqG,YAAY,QAASlyB,IARvC,IAAIs9C,GAAat9C,EAShC,EC1BI49C,GAAYpqD,GACZq4B,GAAQxG,KACR2U,GAAmB1T,GACnBu3B,GAAU91B,GACV+S,GAAOrU,EACP8yB,GAAe7yB,GACfsE,GAAUlE,GA6Bd,SAASg3B,GAASljC,EAASmjC,GACvBrrD,KAAKkoB,QAAUA,EACfloB,KAAKqrD,YAAcA,CACvB,CACQC,GAAC1qD,UAAY,CAKjB2qD,YAAa,WAET,OAAmC,IAAZ,EAAfvrD,KAAKwrD,QAChB,EAKDC,QAAS,WAEL,OAAmC,OAAZ,KAAfzrD,KAAKwrD,QAChB,EAKDE,cAAe,SAASjrB,GACpB,IAAIgH,EAAakkB,EAyBjB,GAlBAlrB,EAAOipB,KAAK,IAYZ1pD,KAAK4rD,eAAiBnrB,EAAOmpB,QAAQ,GACrC+B,EAAyBlrB,EAAOmpB,QAAQ,GAExC5pD,KAAK6rD,SAAWprB,EAAOqpB,SAAS9pD,KAAK4rD,gBACrCnrB,EAAOipB,KAAKiC,IAEiB,IAAzB3rD,KAAKunC,iBAAoD,IAA3BvnC,KAAKwnC,iBACnC,MAAM,IAAIxjC,MAAM,sIAIpB,GADAyjC,EA1Ec,SAASqkB,GAC3B,IAAK,IAAI1oD,KAAUyjD,GACf,GAAKjoD,OAAOgC,UAAUM,eAAesB,KAAKqkD,GAAczjD,IAGpDyjD,GAAazjD,GAAQgmC,QAAU0iB,EAC/B,OAAOjF,GAAazjD,GAG5B,OAAO,IACX,CAgEsB2oD,CAAgB/rD,KAAK8rD,mBACf,OAAhBrkB,EACA,MAAM,IAAIzjC,MAAM,+BAAiCm1B,GAAM2G,OAAO9/B,KAAK8rD,mBAAqB,0BAA4B3yB,GAAMqG,YAAY,SAAUx/B,KAAK6rD,UAAY,KAErK7rD,KAAKgsD,aAAe,IAAI1kB,GAAiBtnC,KAAKunC,eAAgBvnC,KAAKwnC,iBAAkBxnC,KAAKgnC,MAAOS,EAAahH,EAAOqpB,SAAS9pD,KAAKunC,gBACtI,EAMD0kB,gBAAiB,SAASxrB,GACtBzgC,KAAK2kD,cAAgBlkB,EAAOmpB,QAAQ,GACpCnpB,EAAOipB,KAAK,GAEZ1pD,KAAKwrD,QAAU/qB,EAAOmpB,QAAQ,GAC9B5pD,KAAK8rD,kBAAoBrrB,EAAOopB,WAAW,GAC3C7pD,KAAKwlB,KAAOib,EAAOwpB,WACnBjqD,KAAKgnC,MAAQvG,EAAOmpB,QAAQ,GAC5B5pD,KAAKunC,eAAiB9G,EAAOmpB,QAAQ,GACrC5pD,KAAKwnC,iBAAmB/G,EAAOmpB,QAAQ,GACvC,IAAIgC,EAAiBnrB,EAAOmpB,QAAQ,GAQpC,GAPA5pD,KAAKksD,kBAAoBzrB,EAAOmpB,QAAQ,GACxC5pD,KAAKmsD,kBAAoB1rB,EAAOmpB,QAAQ,GACxC5pD,KAAKosD,gBAAkB3rB,EAAOmpB,QAAQ,GACtC5pD,KAAKqsD,uBAAyB5rB,EAAOmpB,QAAQ,GAC7C5pD,KAAKssD,uBAAyB7rB,EAAOmpB,QAAQ,GAC7C5pD,KAAKusD,kBAAoB9rB,EAAOmpB,QAAQ,GAEpC5pD,KAAKurD,cACL,MAAM,IAAIvnD,MAAM,mCAIpBy8B,EAAOipB,KAAKkC,GACZ5rD,KAAKwsD,gBAAgB/rB,GACrBzgC,KAAKysD,qBAAqBhsB,GAC1BzgC,KAAK0sD,YAAcjsB,EAAOqpB,SAAS9pD,KAAKmsD,kBAC3C,EAKDQ,kBAAmB,WACf3sD,KAAKuoC,gBAAkB,KACvBvoC,KAAKwoC,eAAiB,KACtB,IAAIokB,EAAS5sD,KAAK2kD,eAAiB,EAKnC3kD,KAAK2O,OAAoC,GAA9B3O,KAAKssD,wBArIN,IAuIPM,IAEC5sD,KAAKwoC,eAA+C,GAA9BxoC,KAAKssD,wBAxIpB,IA2IRM,IACC5sD,KAAKuoC,gBAAmBvoC,KAAKssD,wBAA0B,GAAM,OAK5DtsD,KAAK2O,KAAsC,MAA/B3O,KAAK6sD,YAAY5lD,OAAO,KACrCjH,KAAK2O,KAAM,EAElB,EAMD89C,qBAAsB,WAClB,GAAKzsD,KAAKokD,YAAY,GAAtB,CAKA,IAAI0I,EAAc5B,GAAUlrD,KAAKokD,YAAY,GAAQzlD,OAIjDqB,KAAKwnC,mBAAqBrO,GAAM0G,mBAChC7/B,KAAKwnC,iBAAmBslB,EAAYlD,QAAQ,IAE5C5pD,KAAKunC,iBAAmBpO,GAAM0G,mBAC9B7/B,KAAKunC,eAAiBulB,EAAYlD,QAAQ,IAE1C5pD,KAAKusD,oBAAsBpzB,GAAM0G,mBACjC7/B,KAAKusD,kBAAoBO,EAAYlD,QAAQ,IAE7C5pD,KAAKosD,kBAAoBjzB,GAAM0G,mBAC/B7/B,KAAKosD,gBAAkBU,EAAYlD,QAAQ,GAjB9C,CAmBJ,EAKD4C,gBAAiB,SAAS/rB,GACtB,IACIssB,EACAC,EACAC,EAHA1jD,EAAMk3B,EAAO3hB,MAAQ9e,KAAKksD,kBAS9B,IAJKlsD,KAAKokD,cACNpkD,KAAKokD,YAAc,IAGhB3jB,EAAO3hB,MAAQ,EAAIvV,GACtBwjD,EAAetsB,EAAOmpB,QAAQ,GAC9BoD,EAAmBvsB,EAAOmpB,QAAQ,GAClCqD,EAAkBxsB,EAAOqpB,SAASkD,GAElChtD,KAAKokD,YAAY2I,GAAgB,CAC7BG,GAAIH,EACJnnD,OAAQonD,EACRruD,MAAOsuD,GAIfxsB,EAAOgpB,SAASlgD,EACnB,EAID4jD,WAAY,WACR,IAAIC,EAAkB90B,GAAQE,WAAa,aAAe,QAC1D,GAAIx4B,KAAKyrD,UACLzrD,KAAK6sD,YAAczkB,GAAKxE,WAAW5jC,KAAK6rD,UACxC7rD,KAAKqtD,eAAiBjlB,GAAKxE,WAAW5jC,KAAK0sD,iBACxC,CACH,IAAIY,EAAQttD,KAAKutD,4BACjB,GAAc,OAAVD,EACAttD,KAAK6sD,YAAcS,MAChB,CAEH,IAAIE,EAAqBr0B,GAAMqG,YAAY4tB,EAAiBptD,KAAK6rD,UACjE7rD,KAAK6sD,YAAc7sD,KAAKqrD,YAAYoC,eAAeD,EACtD,CAED,IAAIE,EAAW1tD,KAAK2tD,+BACpB,GAAiB,OAAbD,EACA1tD,KAAKqtD,eAAiBK,MACnB,CAEH,IAAIE,EAAoBz0B,GAAMqG,YAAY4tB,EAAiBptD,KAAK0sD,aAChE1sD,KAAKqtD,eAAiBrtD,KAAKqrD,YAAYoC,eAAeG,EACzD,CACJ,CACJ,EAMDL,0BAA2B,WACvB,IAAIM,EAAa7tD,KAAKokD,YAAY,OAClC,GAAIyJ,EAAY,CACZ,IAAIf,EAAc5B,GAAU2C,EAAWlvD,OAGvC,OAA+B,IAA3BmuD,EAAYlD,QAAQ,IAKpBuB,GAAQnrD,KAAK6rD,YAAciB,EAAYlD,QAAQ,GAJxC,KAQJxhB,GAAKxE,WAAWkpB,EAAYhD,SAAS+D,EAAWjoD,OAAS,GACnE,CACD,OAAO,IACV,EAMD+nD,6BAA8B,WAC1B,IAAIG,EAAgB9tD,KAAKokD,YAAY,OACrC,GAAI0J,EAAe,CACf,IAAIhB,EAAc5B,GAAU4C,EAAcnvD,OAG1C,OAA+B,IAA3BmuD,EAAYlD,QAAQ,IAKpBuB,GAAQnrD,KAAK0sD,eAAiBI,EAAYlD,QAAQ,GAJ3C,KAQJxhB,GAAKxE,WAAWkpB,EAAYhD,SAASgE,EAAcloD,OAAS,GACtE,CACD,OAAO,IACV,GAEL,IAAAmoD,GAAiB3C,GCnSbF,GAAYpqD,GACZq4B,GAAQxG,KACR23B,GAAM12B,GACNw3B,GAAW/1B,GACXiD,GAAUvE,GAOd,SAASi6B,GAAW3C,GAChBrrD,KAAKwoD,MAAQ,GACbxoD,KAAKqrD,YAAcA,CACvB,CACU4C,GAACrtD,UAAY,CAMnBstD,eAAgB,SAASC,GACrB,IAAKnuD,KAAKygC,OAAOupB,sBAAsBmE,GAAoB,CACvDnuD,KAAKygC,OAAO3hB,OAAS,EACrB,IAAIokC,EAAYljD,KAAKygC,OAAOopB,WAAW,GACvC,MAAM,IAAI7lD,MAAM,+CAAsDm1B,GAAM2G,OAAOojB,GAAa,cAAgB/pB,GAAM2G,OAAOquB,GAAqB,IACrJ,CACJ,EAODC,YAAa,SAASC,EAAYF,GAC9B,IAAIG,EAAetuD,KAAKygC,OAAO3hB,MAC/B9e,KAAKygC,OAAOgpB,SAAS4E,GACrB,IACI3qD,EADY1D,KAAKygC,OAAOopB,WAAW,KACZsE,EAE3B,OADAnuD,KAAKygC,OAAOgpB,SAAS6E,GACd5qD,CACV,EAID6qD,sBAAuB,WACnBvuD,KAAKwuD,WAAaxuD,KAAKygC,OAAOmpB,QAAQ,GACtC5pD,KAAKyuD,wBAA0BzuD,KAAKygC,OAAOmpB,QAAQ,GACnD5pD,KAAK0uD,4BAA8B1uD,KAAKygC,OAAOmpB,QAAQ,GACvD5pD,KAAK2uD,kBAAoB3uD,KAAKygC,OAAOmpB,QAAQ,GAC7C5pD,KAAK4uD,eAAiB5uD,KAAKygC,OAAOmpB,QAAQ,GAC1C5pD,KAAK6uD,iBAAmB7uD,KAAKygC,OAAOmpB,QAAQ,GAE5C5pD,KAAK8uD,iBAAmB9uD,KAAKygC,OAAOmpB,QAAQ,GAI5C,IAAIjE,EAAa3lD,KAAKygC,OAAOqpB,SAAS9pD,KAAK8uD,kBACvC1B,EAAkB90B,GAAQE,WAAa,aAAe,QAGtDu2B,EAAgB51B,GAAMqG,YAAY4tB,EAAiBzH,GACvD3lD,KAAK2lD,WAAa3lD,KAAKqrD,YAAYoC,eAAesB,EACrD,EAODC,2BAA4B,WACxBhvD,KAAKivD,sBAAwBjvD,KAAKygC,OAAOmpB,QAAQ,GACjD5pD,KAAKygC,OAAOipB,KAAK,GAGjB1pD,KAAKwuD,WAAaxuD,KAAKygC,OAAOmpB,QAAQ,GACtC5pD,KAAKyuD,wBAA0BzuD,KAAKygC,OAAOmpB,QAAQ,GACnD5pD,KAAK0uD,4BAA8B1uD,KAAKygC,OAAOmpB,QAAQ,GACvD5pD,KAAK2uD,kBAAoB3uD,KAAKygC,OAAOmpB,QAAQ,GAC7C5pD,KAAK4uD,eAAiB5uD,KAAKygC,OAAOmpB,QAAQ,GAC1C5pD,KAAK6uD,iBAAmB7uD,KAAKygC,OAAOmpB,QAAQ,GAE5C5pD,KAAKkvD,oBAAsB,GAM3B,IALA,IAEInC,EACAC,EACAC,EAJAkC,EAAgBnvD,KAAKivD,sBAAwB,GACrC,EAIGE,GACXpC,EAAe/sD,KAAKygC,OAAOmpB,QAAQ,GACnCoD,EAAmBhtD,KAAKygC,OAAOmpB,QAAQ,GACvCqD,EAAkBjtD,KAAKygC,OAAOqpB,SAASkD,GACvChtD,KAAKkvD,oBAAoBnC,GAAgB,CACrCG,GAAIH,EACJnnD,OAAQonD,EACRruD,MAAOsuD,EAGlB,EAIDmC,kCAAmC,WAI/B,GAHApvD,KAAKqvD,6BAA+BrvD,KAAKygC,OAAOmpB,QAAQ,GACxD5pD,KAAKsvD,mCAAqCtvD,KAAKygC,OAAOmpB,QAAQ,GAC9D5pD,KAAKuvD,WAAavvD,KAAKygC,OAAOmpB,QAAQ,GAClC5pD,KAAKuvD,WAAa,EAClB,MAAM,IAAIvrD,MAAM,sCAEvB,EAIDwrD,eAAgB,WACZ,IAAI3pD,EAAG+9C,EACP,IAAK/9C,EAAI,EAAGA,EAAI7F,KAAKwoD,MAAM5iD,OAAQC,IAC/B+9C,EAAO5jD,KAAKwoD,MAAM3iD,GAClB7F,KAAKygC,OAAOgpB,SAAS7F,EAAK2I,mBAC1BvsD,KAAKkuD,eAAe5D,GAAInF,mBACxBvB,EAAK8H,cAAc1rD,KAAKygC,QACxBmjB,EAAKuJ,aACLvJ,EAAK+I,mBAEZ,EAID8C,eAAgB,WACZ,IAAI7L,EAGJ,IADA5jD,KAAKygC,OAAOgpB,SAASzpD,KAAK6uD,kBACnB7uD,KAAKygC,OAAOupB,sBAAsBM,GAAIjF,uBACzCzB,EAAO,IAAIwH,GAAS,CAChBsE,MAAO1vD,KAAK0vD,OACb1vD,KAAKqrD,cACHY,gBAAgBjsD,KAAKygC,QAC1BzgC,KAAKwoD,MAAMnjD,KAAKu+C,GAGpB,GAAI5jD,KAAK2uD,oBAAsB3uD,KAAKwoD,MAAM5iD,QACP,IAA3B5F,KAAK2uD,mBAAiD,IAAtB3uD,KAAKwoD,MAAM5iD,OAG3C,MAAM,IAAI5B,MAAM,kCAAoChE,KAAK2uD,kBAAoB,gCAAkC3uD,KAAKwoD,MAAM5iD,OAOrI,EAID+pD,iBAAkB,WACd,IAAIxlD,EAASnK,KAAKygC,OAAOspB,qBAAqBO,GAAI5D,uBAClD,GAAIv8C,EAAS,EAQT,MAFiBnK,KAAKouD,YAAY,EAAG9D,GAAInF,mBAG/B,IAAInhD,MAAM,2IAGV,IAAIA,MAAM,sDAIxBhE,KAAKygC,OAAOgpB,SAASt/C,GACrB,IAAIylD,EAAwBzlD,EAe5B,GAdAnK,KAAKkuD,eAAe5D,GAAI5D,uBACxB1mD,KAAKuuD,wBAaDvuD,KAAKwuD,aAAer1B,GAAMyG,kBAAoB5/B,KAAKyuD,0BAA4Bt1B,GAAMyG,kBAAoB5/B,KAAK0uD,8BAAgCv1B,GAAMyG,kBAAoB5/B,KAAK2uD,oBAAsBx1B,GAAMyG,kBAAoB5/B,KAAK4uD,iBAAmBz1B,GAAM0G,kBAAoB7/B,KAAK6uD,mBAAqB11B,GAAM0G,iBAAkB,CAcjU,GAbA7/B,KAAK0vD,OAAQ,GAYbvlD,EAASnK,KAAKygC,OAAOspB,qBAAqBO,GAAIuF,kCACjC,EACT,MAAM,IAAI7rD,MAAM,wEAOpB,GALAhE,KAAKygC,OAAOgpB,SAASt/C,GACrBnK,KAAKkuD,eAAe5D,GAAIuF,iCACxB7vD,KAAKovD,qCAGApvD,KAAKouD,YAAYpuD,KAAKsvD,mCAAoChF,GAAIwF,+BAE/D9vD,KAAKsvD,mCAAqCtvD,KAAKygC,OAAOspB,qBAAqBO,GAAIwF,6BAC3E9vD,KAAKsvD,mCAAqC,GAC1C,MAAM,IAAItrD,MAAM,gEAGxBhE,KAAKygC,OAAOgpB,SAASzpD,KAAKsvD,oCAC1BtvD,KAAKkuD,eAAe5D,GAAIwF,6BACxB9vD,KAAKgvD,4BACR,CAED,IAAIe,EAAgC/vD,KAAK6uD,iBAAmB7uD,KAAK4uD,eAC7D5uD,KAAK0vD,QACLK,GAAiC,GACjCA,GAAiC,GAAmD/vD,KAAKivD,uBAG7F,IAAIplD,EAAa+lD,EAAwBG,EAEzC,GAAIlmD,EAAa,EAET7J,KAAKouD,YAAYwB,EAAuBtF,GAAIjF,uBAM5CrlD,KAAKygC,OAAOiK,KAAO7gC,QAEpB,GAAIA,EAAa,EACpB,MAAM,IAAI7F,MAAM,0BAA4BiH,KAAKK,IAAIzB,GAAc,UAE1E,EACDmmD,cAAe,SAAS1iD,GACpBtN,KAAKygC,OAASyqB,GAAU59C,EAC3B,EAKDo7C,KAAM,SAASp7C,GACXtN,KAAKgwD,cAAc1iD,GACnBtN,KAAK2vD,mBACL3vD,KAAKyvD,iBACLzvD,KAAKwvD,gBACR,GAGL,IAAAS,GAAiBjC,GCnQb70B,GAAQr4B,KACRy9B,GAAW5L,GACXyV,GAAOxU,EACPo6B,GAAa34B,GACb6R,GAAanT,GACbqG,GAAcpG,GAOlB,SAASk8B,GAAgBnC,GACrB,OAAO,IAAIxvB,GAAS5+B,SAAQ,SAAUR,EAASC,GAC3C,IAAIqmC,EAASsoB,EAAS/B,aAAapkB,mBAAmBrZ,KAAK,IAAI2Y,IAC/DzB,EAAOlsB,GAAG,SAAS,SAAUhP,GACzBnL,EAAOmL,EACnB,IACagP,GAAG,OAAO,WACHksB,EAAO3E,WAAWkG,QAAU+mB,EAAS/B,aAAahlB,MAClD5nC,EAAO,IAAI4E,MAAM,mCAEjB7E,GAEpB,IACaswB,QACb,GACA,CCtBA,SAAS0gC,KAEL,KAAKnwD,gBAAgBmwD,IACjB,OAAO,IAAIA,GAGf,GAAGjwD,UAAU0F,OACT,MAAM,IAAI5B,MAAM,kGAWpBhE,KAAKwoD,MAAQ5pD,OAAOsD,OAAO,MAE3BlC,KAAKsoC,QAAU,KAGftoC,KAAK48C,KAAO,GACZ58C,KAAK+oD,MAAQ,WACT,IAAIqH,EAAS,IAAID,GACjB,IAAK,IAAItqD,KAAK7F,KACa,mBAAZA,KAAK6F,KACZuqD,EAAOvqD,GAAK7F,KAAK6F,IAGzB,OAAOuqD,CACf,CACA,CACAD,GAAMvvD,UAAYE,GAClBqvD,GAAMvvD,UAAUyvD,UDXC,SAAU/iD,EAAM4a,GAC7B,IAAI8+B,EAAMhnD,KASV,OARAkoB,EAAUiR,GAAM8G,OAAO/X,GAAW,CAAA,EAAI,CAClCkQ,QAAQ,EACRk4B,YAAY,EACZ/H,uBAAuB,EACvBJ,eAAe,EACfsF,eAAgBrlB,GAAKxE,aAGrBxJ,GAAYC,QAAUD,GAAYI,SAASltB,GACpCixB,GAAS5+B,QAAQP,OAAO,IAAI4E,MAAM,yDAGtCm1B,GAAMgH,eAAe,sBAAuB7yB,GAAM,EAAM4a,EAAQqgC,sBAAuBrgC,EAAQkQ,QACjGx4B,MAAK,SAAU0N,GACZ,IAAI2iD,EAAa,IAAIjC,GAAW9lC,GAEhC,OADA+nC,EAAWvH,KAAKp7C,GACT2iD,CACV,IAAErwD,MAAK,SAAoBqwD,GACxB,IAAIM,EAAW,CAAChyB,GAAS5+B,QAAQR,QAAQ8wD,IACrCzH,EAAQyH,EAAWzH,MACvB,GAAItgC,EAAQooC,WACR,IAAK,IAAIzqD,EAAI,EAAGA,EAAI2iD,EAAM5iD,OAAQC,IAC9B0qD,EAASlrD,KAAK6qD,GAAgB1H,EAAM3iD,KAG5C,OAAO04B,GAAS5+B,QAAQs+B,IAAIsyB,EAC/B,IAAE3wD,MAAK,SAAkB4wD,GAGtB,IAFA,IAAIP,EAAaO,EAAQ7pC,QACrB6hC,EAAQyH,EAAWzH,MACd3iD,EAAI,EAAGA,EAAI2iD,EAAM5iD,OAAQC,IAAK,CACnC,IAAIyzB,EAAQkvB,EAAM3iD,GAEd4qD,EAAan3B,EAAMuzB,YACnB6D,EAAWv3B,GAAMh6B,QAAQm6B,EAAMuzB,aAEnC7F,EAAIpD,KAAK8M,EAAUp3B,EAAM0yB,aAAc,CACnCrjB,QAAQ,EACR4f,uBAAuB,EACvB/iC,KAAM8T,EAAM9T,KACZ7W,IAAK2qB,EAAM3qB,IACX25B,QAAShP,EAAM+zB,eAAeznD,OAAS0zB,EAAM+zB,eAAiB,KAC9D9kB,gBAAiBjP,EAAMiP,gBACvBC,eAAgBlP,EAAMkP,eACtB2f,cAAejgC,EAAQigC,gBAEtB7uB,EAAM3qB,MACPq4C,EAAIpD,KAAK8M,GAAUC,mBAAqBF,EAE/C,CAKD,OAJIR,EAAWtK,WAAW//C,SACtBohD,EAAI1e,QAAU2nB,EAAWtK,YAGtBqB,CACnB,GACA,EC7CAmJ,GAAM73B,QAAU1E,GAChBu8B,GAAMtI,SAAWxyB,GAIjB86B,GAAMt1C,QAAU,SAEhBs1C,GAAME,UAAY,SAAU/qB,EAASpd,GACjC,OAAO,IAAIioC,IAAQE,UAAU/qB,EAASpd,EAC1C,EAEAioC,GAAM5xB,SAAWxK,GACjB,IAAAsI,GAAiB8zB,GCtDF,SAAS7vD,GAAQ7B,GAG9B,OAAO6B,GAAU,mBAAqBG,QAAU,iBAAmBA,OAAOC,SAAW,SAAUjC,GAC7F,cAAcA,CACf,EAAG,SAAUA,GACZ,OAAOA,GAAO,mBAAqBgC,QAAUhC,EAAIkC,cAAgBF,QAAUhC,IAAQgC,OAAOG,UAAY,gBAAkBnC,CAC5H,EAAK6B,GAAQ7B,EACb,CCsCA,SAASmyD,GAAMC,EAAG3oC,GAId,IAAI3V,GAFJ2V,EAAUA,GAAW,IAEH3V,KAAO,EACrBu+C,IAAiB5oC,EAAQ4oC,aACzBC,IAAmB7oC,EAAQ6oC,eAG3BC,EAAgB,IAAI7nD,WAAW,GAE/B8nD,EAAiB,IAAI9nD,WAAW,GAChC+nD,EAAU,IAAI/nD,WAAW,GACzBgoD,EAAU,IAAIhoD,WAAW,GACzBioD,EAAgB,IAAIjoD,WAAW,GAC/BkoD,EAAgB,IAAIloD,WAAW,GAC/BmoD,EAAgB,IAAInoD,WAAW,GAC/BooD,EAAsB,IAAIpoD,WAAW,GACrCqoD,EAAuB,IAAIroD,WAAW,GAM1C,SAASsoD,EAAcC,GAEnB,IADA,IAAIC,EAAW,GACRd,EAAEt+C,IACL,GAAIs+C,EAAE1nD,WAAWoJ,IAAQy+C,EAAe,CACpC,GAAIH,EAAE1nD,WAAWoJ,EAAM,KAAO4+C,EAAS,CACnC,IAAIS,EAAar/C,EAAM,EAIvB,GAHAA,EAAMs+C,EAAEhiD,QApBL,IAoB2B0D,IAGI,GADnBs+C,EAAEjpC,UAAUgqC,EAAYr/C,GAC1B1D,QAAQ6iD,GAAgB,CACjC,IAAIG,EAAahB,EAAEjpC,UAAU,EAAGrV,GAAKoR,MAAM,MAC3C,MAAM,IAAI3f,MACN,gCAAkC6tD,EAAWjsD,OAAS,GACtD,cAAgBisD,EAAWA,EAAWjsD,OAAS,GAAGA,OAAS,GAC3D,WAAairD,EAAEt+C,GAEtB,CAID,OAFIA,EAAM,IAAGA,GAAO,GAEbo/C,CAC3B,CAAuB,GAAId,EAAE1nD,WAAWoJ,EAAM,KAAO6+C,EAAe,CAChD,GAAIP,EAAE1nD,WAAWoJ,EAAM,IAAM2+C,EAAS,CAElC,MAAMY,EAAkBv/C,EACxB,MAAgB,IAATA,IAAgBs+C,EAAE1nD,WAAWoJ,KAAS0+C,GAAkBJ,EAAE1nD,WAAWoJ,EAAM,IAAM2+C,GAAWL,EAAE1nD,WAAWoJ,EAAM,IAAM2+C,IAAmB,GAAR3+C,IACnIA,EAAMs+C,EAAEhiD,QAxCb,IAwCmC0D,EAAM,IAE3B,IAATA,IACAA,EAAMs+C,EAAEjrD,QAERkrD,GACAa,EAAStsD,KAAKwrD,EAAEjpC,UAAUkqC,EAAiBv/C,EAAM,GAE7E,KAA2B,IACHs+C,EAAE1nD,WAAWoJ,EAAM,KAAOg/C,GAC1BV,EAAE1nD,WAAWoJ,EAAM,KAAOg/C,GACa,UAAvCV,EAAE/gD,OAAOyC,EAAM,EAAG,GAAGvE,cACvB,CAEE,IAAI+jD,EAAgBlB,EAAEhiD,QAAQ,MAAO0D,IACf,GAAlBw/C,GACAJ,EAAStsD,KAAKwrD,EAAE/gD,OAAOyC,EAAM,IAC7BA,EAAMs+C,EAAEjrD,SAER+rD,EAAStsD,KAAKwrD,EAAEjpC,UAAUrV,EAAM,EAAGw/C,IACnCx/C,EAAMw/C,EAAgB,GAE1B,QACxB,CAA2B,CAEH,MAAMC,EAAez/C,EAAM,EAC3BA,GAAO,EAEP,IADA,IAAI0/C,GAAa,GACTpB,EAAE1nD,WAAWoJ,KAAS0+C,IAAiC,IAAfgB,IAAwBpB,EAAEt+C,IAClEs+C,EAAE1nD,WAAWoJ,KAASg/C,EACtBU,GAAa,GACS,IAAfA,GAAuBpB,EAAE1nD,WAAWoJ,KAASi/C,IACpDS,GAAa,GAEjB1/C,IAEJo/C,EAAStsD,KAAKwrD,EAAEjpC,UAAUoqC,EAAcz/C,GAC3C,EACDA,IACA,QACH,CACD,IAAIuhB,EAAOo+B,IACXP,EAAStsD,KAAKyuB,GACU,MAApBA,EAAK49B,QAAQ,KACbC,EAAStsD,QAAQyuB,EAAK69B,UACtB79B,EAAK69B,SAAW,GAEpC,KAAmB,CACH,IAAIj8B,EAAOy8B,IACX,GAAIpB,EACIr7B,EAAK9vB,OAAS,GACd+rD,EAAStsD,KAAKqwB,OAEf,CACH,IAAI08B,EAAU18B,EAAKhe,OACf06C,EAAQxsD,OAAS,GACjB+rD,EAAStsD,KAAK+sD,EAErB,CACD7/C,GACH,CAEL,OAAOo/C,CACV,CAKD,SAASQ,IACL,IAAI7oD,EAAQiJ,EAIZ,OAFa,KADbA,EAAMs+C,EAAEhiD,QAhHM,IAgHe0D,GAAO,KAEhCA,EAAMs+C,EAAEjrD,QACLirD,EAAE5pD,MAAMqC,EAAOiJ,EAAM,EAC/B,CAMD,SAAS8/C,IAEL,IADA,IAAI/oD,EAAQiJ,GAC2B,IAJ1B,aAIK1D,QAAQgiD,EAAEt+C,KAAgBs+C,EAAEt+C,IAC1CA,IAEJ,OAAOs+C,EAAE5pD,MAAMqC,EAAOiJ,EACzB,CAKD,IAAI+/C,EAAepqC,EAAQqqC,cAAgB,CAAC,MAAO,KAAM,QAAS,OAAQ,OAAQ,MAElF,SAASL,IACL3/C,IACA,MAAMm/C,EAAUW,IACVG,EAAa,CAAA,EACnB,IAAIb,EAAW,GAGf,KAAOd,EAAE1nD,WAAWoJ,KAAS0+C,GAAkBJ,EAAEt+C,IAAM,CACnD,IAAInH,EAAIylD,EAAE1nD,WAAWoJ,GACrB,GAAKnH,EAAI,IAAMA,EAAI,IAAQA,EAAI,IAAMA,EAAI,IAAM,CAK3C,IAHA,IAAIlF,EAAOmsD,IAEPppD,EAAO4nD,EAAE1nD,WAAWoJ,GACjBtJ,GAAQA,IAASooD,GAAiBpoD,IAASqoD,KAAoBroD,EAAO,IAAMA,EAAO,IAAQA,EAAO,IAAMA,EAAO,MAASA,IAASgoD,GACpI1+C,IACAtJ,EAAO4nD,EAAE1nD,WAAWoJ,GAExB,GAAItJ,IAASooD,GAAiBpoD,IAASqoD,EAAe,CAClD,IAAI3yD,EAAQ8zD,IACZ,IAAa,IAATlgD,EACA,MAAO,CACHm/C,UACAc,aACAb,WAG5B,MACoBhzD,EAAQ,KACR4T,IAEJigD,EAAWtsD,GAAQvH,CACtB,CACD4T,GACH,CAED,GAAIs+C,EAAE1nD,WAAWoJ,EAAM,KAAO4+C,EAC1B,GAAe,UAAXO,EAAqB,CACrB,IAAIpoD,EAAQiJ,EAAM,EAClBA,EAAMs+C,EAAEhiD,QAAQ,aAAa0D,GAC7Bo/C,EAAW,CAACd,EAAE5pD,MAAMqC,EAAOiJ,IAC3BA,GAAO,CACvB,MAAmB,GAAe,SAAXm/C,EAAoB,CACvBpoD,EAAQiJ,EAAM,EAClBA,EAAMs+C,EAAEhiD,QAAQ,WAAY0D,GAC5Bo/C,EAAW,CAACd,EAAE5pD,MAAMqC,EAAOiJ,IAC3BA,GAAO,CACV,MAA6C,IAAnC+/C,EAAazjD,QAAQ6iD,IAC5Bn/C,IACAo/C,EAAWF,EAAcC,IAEzBn/C,SAGJA,IAEJ,MAAO,CACHm/C,UACAc,aACAb,WAEP,CAMD,SAASc,IACL,IAAIC,EAAY7B,EAAEt+C,GACdogD,EAAWpgD,EAAM,EAErB,OADAA,EAAMs+C,EAAEhiD,QAAQ6jD,EAAWC,GACpB9B,EAAE5pD,MAAM0rD,EAAUpgD,EAC5B,CAcD,IARQikB,EAQJhjB,EAAM,KACV,QAA0BnT,IAAtB6nB,EAAQ0qC,UAAyB,CACjC1qC,EAAQ2qC,SAAW3qC,EAAQ2qC,UAAY,KAGvC,IAFIr/C,EAAM,IAEyB,KAb/BgjB,WAAI,IAAIzV,OAAO,MAAQmH,EAAQ2qC,SAAW,aAAe3qC,EAAQ0qC,UAAY,SAASE,KAAKjC,GAavFt+C,EAZJikB,EACOA,EAAE1X,OAED,KAWK,KADbvM,EAAMs+C,EAAE/hD,YAAY,IAAKyD,KAErBiB,EAAInO,KAAK6sD,KAEbrB,EAAIA,EAAE/gD,OAAOyC,GACbA,EAAM,CAElB,MACQiB,EADO0U,EAAQgqC,UACTA,IAEAT,EAAc,IAOxB,OAJIvpC,EAAQygC,SACRn1C,EAAMm1C,GAAOn1C,EAAK0U,EAAQygC,SAG1BzgC,EAAQ6qC,SACDA,GAASjqD,MAAM8C,QAAQ4H,GAAOA,EAAM,CAACA,KAG5C0U,EAAQ8qC,SACRx/C,EAAIjB,IAAMA,GAGPiB,EACX,CAUA,SAASu/C,GAASpB,GACd,IAAIn+C,EAAM,CAAA,EACV,IAAKm+C,EAAS/rD,OACV,MAAO,GAGX,GAAwB,IAApB+rD,EAAS/rD,QAAsC,iBAAf+rD,EAAS,GACzC,OAAOA,EAAS,GAgBpB,IAAK,IAAI9rD,KAbT8rD,EAASxuD,SAAQ,SAAS8vD,GACtB,GAAqB,iBAAVA,EAAX,CAGKz/C,EAAIy/C,EAAMvB,WACXl+C,EAAIy/C,EAAMvB,SAAW,IACzB,IAAIzI,EAAO8J,GAASE,EAAMtB,UAC1Bn+C,EAAIy/C,EAAMvB,SAASrsD,KAAK4jD,GACpBrqD,OAAO6H,KAAKwsD,EAAMT,YAAY5sD,QAA0B,iBAATqjD,IAC/CA,EAAKiK,YAAcD,EAAMT,WAN5B,CAQT,IAEkBh/C,EACW,GAAjBA,EAAI3N,GAAGD,SACP4N,EAAI3N,GAAK2N,EAAI3N,GAAG,IAIxB,OAAO2N,CACX,CAwCA,SAASm1C,GAAOgJ,EAAUhyC,EAAGwzC,EAAO,EAAGxzB,EAAO,IAC1C,IAAInsB,EAAM,GAQV,OAPAm+C,EAASxuD,SAAQ,SAAS8vD,EAAOptD,GAE7B,GADsB,iBAAX,GAAuB8Z,EAAEszC,EAAOptD,EAAGstD,EAAMxzB,IAAOnsB,EAAInO,KAAK4tD,GAChEA,EAAMtB,SAAU,CAChB,IAAI1I,EAAON,GAAOsK,EAAMtB,SAAUhyC,EAAGwzC,EAAO,GAAIxzB,EAAOA,EAAO,IAAM,IAAM95B,EAAI,IAAMotD,EAAMvB,SAC1Fl+C,EAAMA,EAAInB,OAAO42C,EACpB,CACT,IACWz1C,CACX,4lDC3YA,IAAI4/C,GAAkB,EAEf,SAASC,GAAiB1B,GAAiC,IAAvB2B,EAAmBpzD,UAAA0F,OAAA,QAAAvF,IAAAH,UAAA,GAAAA,UAAA,GAAA,CAAA,EACtDsT,EAAM,CAAA,EACZ,IAAKm+C,EAAS/rD,OAAQ,OAAO4N,EAE7B,GAAwB,IAApBm+C,EAAS/rD,QAAuC,iBAAhB+rD,EAAS,GAC3C,OAAO/yD,OAAO6H,KAAK6sD,GAAkB1tD,OAAS,CAC5C2tD,MAAKC,GAAA,CAAIlU,MAAO8T,MAAsBE,GACtC30D,MAAOgzD,EAAS,IACdA,EAAS,GACd,IAC2B8B,EAD3BC,EAAAC,GACmBhC,GAAQ,IAA5B,IAA8B+B,EAAA5oD,MAAA2oD,EAAAC,EAAAjlD,KAAA/O,MAAA,CAAA,IAAnBuzD,EAAKQ,EAAA90D,MACd,GAAqB,WAAjB2B,GAAO2yD,GAAoB,OAC/B,GAAsB,SAAlBA,EAAMvB,QAAV,CAEKl+C,EAAIy/C,EAAMvB,WAAUl+C,EAAIy/C,EAAMvB,SAAW,IAE9C,IAAMzI,EAAOoK,GAAiBJ,EAAMtB,UAAY,GAAIsB,EAAMT,YAC1Dh/C,EAAIy/C,EAAMvB,SAASrsD,KAAK4jD,GAEpBrqD,OAAO6H,KAAKwsD,EAAMT,YAAY5sD,SAChCqjD,EAAKsK,MAAKC,GAAA,CAAKlU,MAAO8T,MAAsBH,EAAMT,YARtB,CAUhC,CAAC,CAAA,MAAApyD,GAAAszD,EAAAnpD,EAAAnK,EAAA,CAAA,QAAAszD,EAAA/zC,GAAA,CACD,IAAK,IAAMszC,KAASz/C,EACQ,IAAtBA,EAAIy/C,GAAOrtD,SAAc4N,EAAIy/C,GAASz/C,EAAIy/C,GAAO,IAGvD,OAAOz/C,CACT,CAEA,SAAsBogD,GAAWC,EAAAC,GAAA,OAAAC,GAAA5zD,MAAAH,KAAAE,UAAA,CAQhC,SAAA6zD,KAAA,OAAAA,GARMl0D,EAAAkB,EAAAoF,MAAA,SAAA6tD,EAA2BhN,EAAKQ,GAAQ,IAAAl6C,EAAA,OAAAvM,EAAAY,MAAA,SAAAsyD,GAAA,OAAA,OAAAA,EAAAltD,KAAAktD,EAAAtvD,MAAA,KAAA,EAAA,OAAAsvD,EAAAltD,KAAA,EAAAktD,EAAAtvD,KAAA,EAExBqiD,EAAIpD,KAAK4D,GAAUjhD,MAAM,UAAS,KAAA,EAA3C,OAAJ+G,EAAI2mD,EAAA5vD,KACHgvD,EAAAA,OAAAA,SAAAA,GAAiBa,GAAW5mD,KAAM,KAAA,EAAA,OAAA2mD,EAAAltD,KAAA,EAAAktD,EAAAE,GAAAF,EAAA,MAAA,GAAAA,EAAAzvD,OAAA,SAGlC,MAAI,KAAA,GAAA,IAAA,MAAA,OAAAyvD,EAAA/sD,OAAA,GAAA8sD,EAAA,KAAA,CAAA,CAAA,EAAA,IAEd,MAAA7zD,MAAAH,KAAAE,UAAA,CCzCD,SAASI,GAAQ7B,GAGf,OAAO6B,GAAU,mBAAqBG,QAAU,iBAAmBA,OAAOC,SAAW,SAAUjC,GAC7F,cAAcA,CACf,EAAG,SAAUA,GACZ,OAAOA,GAAO,mBAAqBgC,QAAUhC,EAAIkC,cAAgBF,QAAUhC,IAAQgC,OAAOG,UAAY,gBAAkBnC,CAC5H,EAAK6B,GAAQ7B,EACb,CAKA,IAAI21D,GAAW,OACXC,GAAY,OAChB,SAASC,GAAUC,EAAOtzC,GAKxB,GAHAA,EAAOA,GAAQ,IADfszC,EAAQA,GAAgB,cAIHD,GACnB,OAAOC,EAGT,KAAMv0D,gBAAgBs0D,IACpB,OAAO,IAAIA,GAAUC,EAAOtzC,GAE9B,IAAIuzC,EAmRN,SAAoBD,GAClB,IAAIC,EAAM,CACRh+B,EAAG,EACH1Y,EAAG,EACHpQ,EAAG,GAEDwE,EAAI,EACJpH,EAAI,KACJ4b,EAAI,KACJpP,EAAI,KACJm9C,GAAK,EACL/0C,GAAS,EACO,iBAAT60C,IACTA,EAmuBJ,SAA6BA,GAC3BA,EAAQA,EAAM58C,QAAQy8C,GAAU,IAAIz8C,QAAQ08C,GAAW,IAAIrmD,cAC3D,IAkBI6E,EAlBA6hD,GAAQ,EACZ,GAAIC,GAAMJ,GACRA,EAAQI,GAAMJ,GACdG,GAAQ,OACH,GAAa,eAATH,EACT,MAAO,CACL/9B,EAAG,EACH1Y,EAAG,EACHpQ,EAAG,EACHwE,EAAG,EACHwN,OAAQ,QASZ,GAAI7M,EAAQ+hD,GAASJ,IAAI1B,KAAKyB,GAC5B,MAAO,CACL/9B,EAAG3jB,EAAM,GACTiL,EAAGjL,EAAM,GACTnF,EAAGmF,EAAM,IAGb,GAAIA,EAAQ+hD,GAASC,KAAK/B,KAAKyB,GAC7B,MAAO,CACL/9B,EAAG3jB,EAAM,GACTiL,EAAGjL,EAAM,GACTnF,EAAGmF,EAAM,GACTX,EAAGW,EAAM,IAGb,GAAIA,EAAQ+hD,GAASE,IAAIhC,KAAKyB,GAC5B,MAAO,CACLplB,EAAGt8B,EAAM,GACT/H,EAAG+H,EAAM,GACTyE,EAAGzE,EAAM,IAGb,GAAIA,EAAQ+hD,GAASG,KAAKjC,KAAKyB,GAC7B,MAAO,CACLplB,EAAGt8B,EAAM,GACT/H,EAAG+H,EAAM,GACTyE,EAAGzE,EAAM,GACTX,EAAGW,EAAM,IAGb,GAAIA,EAAQ+hD,GAASI,IAAIlC,KAAKyB,GAC5B,MAAO,CACLplB,EAAGt8B,EAAM,GACT/H,EAAG+H,EAAM,GACT6T,EAAG7T,EAAM,IAGb,GAAIA,EAAQ+hD,GAASK,KAAKnC,KAAKyB,GAC7B,MAAO,CACLplB,EAAGt8B,EAAM,GACT/H,EAAG+H,EAAM,GACT6T,EAAG7T,EAAM,GACTX,EAAGW,EAAM,IAGb,GAAIA,EAAQ+hD,GAASM,KAAKpC,KAAKyB,GAC7B,MAAO,CACL/9B,EAAG2+B,GAAgBtiD,EAAM,IACzBiL,EAAGq3C,GAAgBtiD,EAAM,IACzBnF,EAAGynD,GAAgBtiD,EAAM,IACzBX,EAAGkjD,GAAoBviD,EAAM,IAC7B6M,OAAQg1C,EAAQ,OAAS,QAG7B,GAAI7hD,EAAQ+hD,GAASS,KAAKvC,KAAKyB,GAC7B,MAAO,CACL/9B,EAAG2+B,GAAgBtiD,EAAM,IACzBiL,EAAGq3C,GAAgBtiD,EAAM,IACzBnF,EAAGynD,GAAgBtiD,EAAM,IACzB6M,OAAQg1C,EAAQ,OAAS,OAG7B,GAAI7hD,EAAQ+hD,GAASU,KAAKxC,KAAKyB,GAC7B,MAAO,CACL/9B,EAAG2+B,GAAgBtiD,EAAM,GAAK,GAAKA,EAAM,IACzCiL,EAAGq3C,GAAgBtiD,EAAM,GAAK,GAAKA,EAAM,IACzCnF,EAAGynD,GAAgBtiD,EAAM,GAAK,GAAKA,EAAM,IACzCX,EAAGkjD,GAAoBviD,EAAM,GAAK,GAAKA,EAAM,IAC7C6M,OAAQg1C,EAAQ,OAAS,QAG7B,GAAI7hD,EAAQ+hD,GAASW,KAAKzC,KAAKyB,GAC7B,MAAO,CACL/9B,EAAG2+B,GAAgBtiD,EAAM,GAAK,GAAKA,EAAM,IACzCiL,EAAGq3C,GAAgBtiD,EAAM,GAAK,GAAKA,EAAM,IACzCnF,EAAGynD,GAAgBtiD,EAAM,GAAK,GAAKA,EAAM,IACzC6M,OAAQg1C,EAAQ,OAAS,OAG7B,OAAO,CACT,CAx0BYc,CAAoBjB,IAER,UAAlBj0D,GAAQi0D,KACNkB,GAAelB,EAAM/9B,IAAMi/B,GAAelB,EAAMz2C,IAAM23C,GAAelB,EAAM7mD,IA2CjE8oB,EA1CG+9B,EAAM/9B,EA0CN1Y,EA1CSy2C,EAAMz2C,EA0CZpQ,EA1Ce6mD,EAAM7mD,EAAvC8mD,EA2CG,CACLh+B,EAAqB,IAAlBk/B,GAAQl/B,EAAG,KACd1Y,EAAqB,IAAlB43C,GAAQ53C,EAAG,KACdpQ,EAAqB,IAAlBgoD,GAAQhoD,EAAG,MA7CZ+mD,GAAK,EACL/0C,EAAwC,MAA/BxQ,OAAOqlD,EAAM/9B,GAAG1mB,QAAQ,GAAa,OAAS,OAC9C2lD,GAAelB,EAAMplB,IAAMsmB,GAAelB,EAAMzpD,IAAM2qD,GAAelB,EAAM7tC,IACpF5b,EAAI6qD,GAAoBpB,EAAMzpD,GAC9B4b,EAAIivC,GAAoBpB,EAAM7tC,GAC9B8tC,EA6JN,SAAkBrlB,EAAGrkC,EAAG4b,GACtByoB,EAAsB,EAAlBumB,GAAQvmB,EAAG,KACfrkC,EAAI4qD,GAAQ5qD,EAAG,KACf4b,EAAIgvC,GAAQhvC,EAAG,KACf,IAAI7gB,EAAIoF,KAAKM,MAAM4jC,GACjBxvB,EAAIwvB,EAAItpC,EACRghB,EAAIH,GAAK,EAAI5b,GACb8tC,EAAIlyB,GAAK,EAAI/G,EAAI7U,GACjBi8B,EAAIrgB,GAAK,GAAK,EAAI/G,GAAK7U,GACvB8qD,EAAM/vD,EAAI,EAIZ,MAAO,CACL2wB,EAAO,IAJH,CAAC9P,EAAGkyB,EAAG/xB,EAAGA,EAAGkgB,EAAGrgB,GAAGkvC,GAKvB93C,EAAO,IAJH,CAACipB,EAAGrgB,EAAGA,EAAGkyB,EAAG/xB,EAAGA,GAAG+uC,GAKvBloD,EAAO,IAJH,CAACmZ,EAAGA,EAAGkgB,EAAGrgB,EAAGA,EAAGkyB,GAAGgd,GAM3B,CA/KYC,CAAStB,EAAMplB,EAAGrkC,EAAG4b,GAC3B+tC,GAAK,EACL/0C,EAAS,OACA+1C,GAAelB,EAAMplB,IAAMsmB,GAAelB,EAAMzpD,IAAM2qD,GAAelB,EAAMj9C,KACpFxM,EAAI6qD,GAAoBpB,EAAMzpD,GAC9BwM,EAAIq+C,GAAoBpB,EAAMj9C,GAC9Bk9C,EAgFN,SAAkBrlB,EAAGrkC,EAAGwM,GACtB,IAAIkf,EAAG1Y,EAAGpQ,EAIV,SAASooD,EAAQjvC,EAAG+xB,EAAG7R,GAGrB,OAFIA,EAAI,IAAGA,GAAK,GACZA,EAAI,IAAGA,GAAK,GACZA,EAAI,EAAI,EAAUlgB,EAAc,GAAT+xB,EAAI/xB,GAASkgB,EACpCA,EAAI,GAAc6R,EAClB7R,EAAI,EAAI,EAAUlgB,GAAK+xB,EAAI/xB,IAAM,EAAI,EAAIkgB,GAAK,EAC3ClgB,CACR,CACD,GAXAsoB,EAAIumB,GAAQvmB,EAAG,KACfrkC,EAAI4qD,GAAQ5qD,EAAG,KACfwM,EAAIo+C,GAAQp+C,EAAG,KASL,IAANxM,EACF0rB,EAAI1Y,EAAIpQ,EAAI4J,MACP,CACL,IAAIshC,EAAIthC,EAAI,GAAMA,GAAK,EAAIxM,GAAKwM,EAAIxM,EAAIwM,EAAIxM,EACxC+b,EAAI,EAAIvP,EAAIshC,EAChBpiB,EAAIs/B,EAAQjvC,EAAG+xB,EAAGzJ,EAAI,EAAI,GAC1BrxB,EAAIg4C,EAAQjvC,EAAG+xB,EAAGzJ,GAClBzhC,EAAIooD,EAAQjvC,EAAG+xB,EAAGzJ,EAAI,EAAI,EAC3B,CACD,MAAO,CACL3Y,EAAO,IAAJA,EACH1Y,EAAO,IAAJA,EACHpQ,EAAO,IAAJA,EAEP,CA3GYqoD,CAASxB,EAAMplB,EAAGrkC,EAAGwM,GAC3Bm9C,GAAK,EACL/0C,EAAS,OAEP60C,EAAMrzD,eAAe,OACvBgR,EAAIqiD,EAAMriD,IAyBhB,IAAkBskB,EAAG1Y,EAAGpQ,EArBtB,OADAwE,EAAI8jD,GAAW9jD,GACR,CACLuiD,GAAIA,EACJ/0C,OAAQ60C,EAAM70C,QAAUA,EACxB8W,EAAGvrB,KAAK4F,IAAI,IAAK5F,KAAK6I,IAAI0gD,EAAIh+B,EAAG,IACjC1Y,EAAG7S,KAAK4F,IAAI,IAAK5F,KAAK6I,IAAI0gD,EAAI12C,EAAG,IACjCpQ,EAAGzC,KAAK4F,IAAI,IAAK5F,KAAK6I,IAAI0gD,EAAI9mD,EAAG,IACjCwE,EAAGA,EAEP,CAjUY+jD,CAAW1B,GACrBv0D,KAAKk2D,eAAiB3B,EAAOv0D,KAAKm2D,GAAK3B,EAAIh+B,EAAGx2B,KAAKo2D,GAAK5B,EAAI12C,EAAG9d,KAAKq2D,GAAK7B,EAAI9mD,EAAG1N,KAAKs2D,GAAK9B,EAAItiD,EAAGlS,KAAKu2D,QAAUtrD,KAAKurD,MAAM,IAAMx2D,KAAKs2D,IAAM,IAAKt2D,KAAKy2D,QAAUx1C,EAAKvB,QAAU80C,EAAI90C,OACnL1f,KAAK02D,cAAgBz1C,EAAK01C,aAMtB32D,KAAKm2D,GAAK,IAAGn2D,KAAKm2D,GAAKlrD,KAAKurD,MAAMx2D,KAAKm2D,KACvCn2D,KAAKo2D,GAAK,IAAGp2D,KAAKo2D,GAAKnrD,KAAKurD,MAAMx2D,KAAKo2D,KACvCp2D,KAAKq2D,GAAK,IAAGr2D,KAAKq2D,GAAKprD,KAAKurD,MAAMx2D,KAAKq2D,KAC3Cr2D,KAAK42D,IAAMpC,EAAIC,EACjB,CA8UA,SAASoC,GAASrgC,EAAG1Y,EAAGpQ,GACtB8oB,EAAIk/B,GAAQl/B,EAAG,KACf1Y,EAAI43C,GAAQ53C,EAAG,KACfpQ,EAAIgoD,GAAQhoD,EAAG,KACf,IAEIyhC,EACFrkC,EAHEgJ,EAAM7I,KAAK6I,IAAI0iB,EAAG1Y,EAAGpQ,GACvBmD,EAAM5F,KAAK4F,IAAI2lB,EAAG1Y,EAAGpQ,GAGrB4J,GAAKxD,EAAMjD,GAAO,EACpB,GAAIiD,GAAOjD,EACTs+B,EAAIrkC,EAAI,MACH,CACL,IAAID,EAAIiJ,EAAMjD,EAEd,OADA/F,EAAIwM,EAAI,GAAMzM,GAAK,EAAIiJ,EAAMjD,GAAOhG,GAAKiJ,EAAMjD,GACvCiD,GACN,KAAK0iB,EACH2Y,GAAKrxB,EAAIpQ,GAAK7C,GAAKiT,EAAIpQ,EAAI,EAAI,GAC/B,MACF,KAAKoQ,EACHqxB,GAAKzhC,EAAI8oB,GAAK3rB,EAAI,EAClB,MACF,KAAK6C,EACHyhC,GAAK3Y,EAAI1Y,GAAKjT,EAAI,EAGtBskC,GAAK,CACN,CACD,MAAO,CACLA,EAAGA,EACHrkC,EAAGA,EACHwM,EAAGA,EAEP,CAuCA,SAASw/C,GAAStgC,EAAG1Y,EAAGpQ,GACtB8oB,EAAIk/B,GAAQl/B,EAAG,KACf1Y,EAAI43C,GAAQ53C,EAAG,KACfpQ,EAAIgoD,GAAQhoD,EAAG,KACf,IAEIyhC,EACFrkC,EAHEgJ,EAAM7I,KAAK6I,IAAI0iB,EAAG1Y,EAAGpQ,GACvBmD,EAAM5F,KAAK4F,IAAI2lB,EAAG1Y,EAAGpQ,GAGrBgZ,EAAI5S,EACFjJ,EAAIiJ,EAAMjD,EAEd,GADA/F,EAAY,IAARgJ,EAAY,EAAIjJ,EAAIiJ,EACpBA,GAAOjD,EACTs+B,EAAI,MACC,CACL,OAAQr7B,GACN,KAAK0iB,EACH2Y,GAAKrxB,EAAIpQ,GAAK7C,GAAKiT,EAAIpQ,EAAI,EAAI,GAC/B,MACF,KAAKoQ,EACHqxB,GAAKzhC,EAAI8oB,GAAK3rB,EAAI,EAClB,MACF,KAAK6C,EACHyhC,GAAK3Y,EAAI1Y,GAAKjT,EAAI,EAGtBskC,GAAK,CACN,CACD,MAAO,CACLA,EAAGA,EACHrkC,EAAGA,EACH4b,EAAGA,EAEP,CA8BA,SAASqwC,GAASvgC,EAAG1Y,EAAGpQ,EAAGspD,GACzB,IAAI3T,EAAM,CAAC4T,GAAKhsD,KAAKurD,MAAMhgC,GAAG9qB,SAAS,KAAMurD,GAAKhsD,KAAKurD,MAAM14C,GAAGpS,SAAS,KAAMurD,GAAKhsD,KAAKurD,MAAM9oD,GAAGhC,SAAS,MAG3G,OAAIsrD,GAAc3T,EAAI,GAAGr8C,OAAO,IAAMq8C,EAAI,GAAGr8C,OAAO,IAAMq8C,EAAI,GAAGr8C,OAAO,IAAMq8C,EAAI,GAAGr8C,OAAO,IAAMq8C,EAAI,GAAGr8C,OAAO,IAAMq8C,EAAI,GAAGr8C,OAAO,GAC3Hq8C,EAAI,GAAGr8C,OAAO,GAAKq8C,EAAI,GAAGr8C,OAAO,GAAKq8C,EAAI,GAAGr8C,OAAO,GAEtDq8C,EAAI15C,KAAK,GAClB,CAmBA,SAASutD,GAAc1gC,EAAG1Y,EAAGpQ,EAAGwE,GAE9B,MADU,CAAC+kD,GAAKE,GAAoBjlD,IAAK+kD,GAAKhsD,KAAKurD,MAAMhgC,GAAG9qB,SAAS,KAAMurD,GAAKhsD,KAAKurD,MAAM14C,GAAGpS,SAAS,KAAMurD,GAAKhsD,KAAKurD,MAAM9oD,GAAGhC,SAAS,MAC9H/B,KAAK,GAClB,CAqBA,SAASytD,GAAY7C,EAAO8C,GAC1BA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIvC,EAAMR,GAAUC,GAAO+C,QAG3B,OAFAxC,EAAIhqD,GAAKusD,EAAS,IAClBvC,EAAIhqD,EAAIysD,GAAQzC,EAAIhqD,GACbwpD,GAAUQ,EACnB,CACA,SAAS0C,GAAUjD,EAAO8C,GACxBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIvC,EAAMR,GAAUC,GAAO+C,QAG3B,OAFAxC,EAAIhqD,GAAKusD,EAAS,IAClBvC,EAAIhqD,EAAIysD,GAAQzC,EAAIhqD,GACbwpD,GAAUQ,EACnB,CACA,SAAS2C,GAAWlD,GAClB,OAAOD,GAAUC,GAAOmD,WAAW,IACrC,CACA,SAASC,GAASpD,EAAO8C,GACvBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIvC,EAAMR,GAAUC,GAAO+C,QAG3B,OAFAxC,EAAIx9C,GAAK+/C,EAAS,IAClBvC,EAAIx9C,EAAIigD,GAAQzC,EAAIx9C,GACbg9C,GAAUQ,EACnB,CACA,SAAS8C,GAAUrD,EAAO8C,GACxBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAI7C,EAAMF,GAAUC,GAAOsD,QAI3B,OAHArD,EAAIh+B,EAAIvrB,KAAK6I,IAAI,EAAG7I,KAAK4F,IAAI,IAAK2jD,EAAIh+B,EAAIvrB,KAAKurD,OAAca,EAAS,IAAjB,OACrD7C,EAAI12C,EAAI7S,KAAK6I,IAAI,EAAG7I,KAAK4F,IAAI,IAAK2jD,EAAI12C,EAAI7S,KAAKurD,OAAca,EAAS,IAAjB,OACrD7C,EAAI9mD,EAAIzC,KAAK6I,IAAI,EAAG7I,KAAK4F,IAAI,IAAK2jD,EAAI9mD,EAAIzC,KAAKurD,OAAca,EAAS,IAAjB,OAC9C/C,GAAUE,EACnB,CACA,SAASsD,GAAQvD,EAAO8C,GACtBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIvC,EAAMR,GAAUC,GAAO+C,QAG3B,OAFAxC,EAAIx9C,GAAK+/C,EAAS,IAClBvC,EAAIx9C,EAAIigD,GAAQzC,EAAIx9C,GACbg9C,GAAUQ,EACnB,CAIA,SAASiD,GAAMxD,EAAO8C,GACpB,IAAIvC,EAAMR,GAAUC,GAAO+C,QACvBU,GAAOlD,EAAI3lB,EAAIkoB,GAAU,IAE7B,OADAvC,EAAI3lB,EAAI6oB,EAAM,EAAI,IAAMA,EAAMA,EACvB1D,GAAUQ,EACnB,CAOA,SAASmD,GAAY1D,GACnB,IAAIO,EAAMR,GAAUC,GAAO+C,QAE3B,OADAxC,EAAI3lB,GAAK2lB,EAAI3lB,EAAI,KAAO,IACjBmlB,GAAUQ,EACnB,CACA,SAASoD,GAAO3D,EAAOlvC,GACrB,GAAI1f,MAAM0f,IAAWA,GAAU,EAC7B,MAAM,IAAIrhB,MAAM,gDAKlB,IAHA,IAAI8wD,EAAMR,GAAUC,GAAO+C,QACvB5zD,EAAS,CAAC4wD,GAAUC,IACpB4D,EAAO,IAAM9yC,EACRxf,EAAI,EAAGA,EAAIwf,EAAQxf,IAC1BnC,EAAO2B,KAAKivD,GAAU,CACpBnlB,GAAI2lB,EAAI3lB,EAAItpC,EAAIsyD,GAAQ,IACxBrtD,EAAGgqD,EAAIhqD,EACPwM,EAAGw9C,EAAIx9C,KAGX,OAAO5T,CACT,CACA,SAAS00D,GAAiB7D,GACxB,IAAIO,EAAMR,GAAUC,GAAO+C,QACvBnoB,EAAI2lB,EAAI3lB,EACZ,MAAO,CAACmlB,GAAUC,GAAQD,GAAU,CAClCnlB,GAAIA,EAAI,IAAM,IACdrkC,EAAGgqD,EAAIhqD,EACPwM,EAAGw9C,EAAIx9C,IACLg9C,GAAU,CACZnlB,GAAIA,EAAI,KAAO,IACfrkC,EAAGgqD,EAAIhqD,EACPwM,EAAGw9C,EAAIx9C,IAEX,CACA,SAAS+gD,GAAW9D,EAAO/D,EAAS8H,GAClC9H,EAAUA,GAAW,EACrB8H,EAASA,GAAU,GACnB,IAAIxD,EAAMR,GAAUC,GAAO+C,QACvB34B,EAAO,IAAM25B,EACb/kD,EAAM,CAAC+gD,GAAUC,IACrB,IAAKO,EAAI3lB,GAAK2lB,EAAI3lB,GAAKxQ,EAAO6xB,GAAW,GAAK,KAAO,MAAOA,GAC1DsE,EAAI3lB,GAAK2lB,EAAI3lB,EAAIxQ,GAAQ,IACzBprB,EAAIlO,KAAKivD,GAAUQ,IAErB,OAAOvhD,CACT,CACA,SAASglD,GAAehE,EAAO/D,GAC7BA,EAAUA,GAAW,EAOrB,IANA,IAAIwE,EAAMV,GAAUC,GAAOiE,QACvBrpB,EAAI6lB,EAAI7lB,EACVrkC,EAAIkqD,EAAIlqD,EACR4b,EAAIsuC,EAAItuC,EACNnT,EAAM,GACNklD,EAAe,EAAIjI,EAChBA,KACLj9C,EAAIlO,KAAKivD,GAAU,CACjBnlB,EAAGA,EACHrkC,EAAGA,EACH4b,EAAGA,KAELA,GAAKA,EAAI+xC,GAAgB,EAE3B,OAAOllD,CACT,CA1nBA+gD,GAAU1zD,UAAY,CACpB83D,OAAQ,WACN,OAAO14D,KAAK24D,gBAAkB,GAC/B,EACDC,QAAS,WACP,OAAQ54D,KAAK04D,QACd,EACDG,QAAS,WACP,OAAO74D,KAAK42D,GACb,EACDkC,iBAAkB,WAChB,OAAO94D,KAAKk2D,cACb,EACD6C,UAAW,WACT,OAAO/4D,KAAKy2D,OACb,EACDuC,SAAU,WACR,OAAOh5D,KAAKs2D,EACb,EACDqC,cAAe,WAEb,IAAInE,EAAMx0D,KAAK63D,QACf,OAAgB,IAARrD,EAAIh+B,EAAkB,IAARg+B,EAAI12C,EAAkB,IAAR02C,EAAI9mD,GAAW,GACpD,EACDurD,aAAc,WAEZ,IACIC,EAAOC,EAAOC,EADd5E,EAAMx0D,KAAK63D,QAQf,OANAqB,EAAQ1E,EAAIh+B,EAAI,IAChB2iC,EAAQ3E,EAAI12C,EAAI,IAChBs7C,EAAQ5E,EAAI9mD,EAAI,IAIT,OAHHwrD,GAAS,OAAaA,EAAQ,MAAejuD,KAAKC,KAAKguD,EAAQ,MAAS,MAAO,MAG/D,OAFhBC,GAAS,OAAaA,EAAQ,MAAeluD,KAAKC,KAAKiuD,EAAQ,MAAS,MAAO,MAElD,OAD7BC,GAAS,OAAaA,EAAQ,MAAenuD,KAAKC,KAAKkuD,EAAQ,MAAS,MAAO,KAEpF,EACDC,SAAU,SAAkB16D,GAG1B,OAFAqB,KAAKs2D,GAAKN,GAAWr3D,GACrBqB,KAAKu2D,QAAUtrD,KAAKurD,MAAM,IAAMx2D,KAAKs2D,IAAM,IACpCt2D,IACR,EACDw4D,MAAO,WACL,IAAIxD,EAAM8B,GAAS92D,KAAKm2D,GAAIn2D,KAAKo2D,GAAIp2D,KAAKq2D,IAC1C,MAAO,CACLlnB,EAAW,IAAR6lB,EAAI7lB,EACPrkC,EAAGkqD,EAAIlqD,EACP4b,EAAGsuC,EAAItuC,EACPxU,EAAGlS,KAAKs2D,GAEX,EACDgD,YAAa,WACX,IAAItE,EAAM8B,GAAS92D,KAAKm2D,GAAIn2D,KAAKo2D,GAAIp2D,KAAKq2D,IACtClnB,EAAIlkC,KAAKurD,MAAc,IAARxB,EAAI7lB,GACrBrkC,EAAIG,KAAKurD,MAAc,IAARxB,EAAIlqD,GACnB4b,EAAIzb,KAAKurD,MAAc,IAARxB,EAAItuC,GACrB,OAAkB,GAAX1mB,KAAKs2D,GAAU,OAASnnB,EAAI,KAAOrkC,EAAI,MAAQ4b,EAAI,KAAO,QAAUyoB,EAAI,KAAOrkC,EAAI,MAAQ4b,EAAI,MAAQ1mB,KAAKu2D,QAAU,GAC9H,EACDe,MAAO,WACL,IAAIxC,EAAM+B,GAAS72D,KAAKm2D,GAAIn2D,KAAKo2D,GAAIp2D,KAAKq2D,IAC1C,MAAO,CACLlnB,EAAW,IAAR2lB,EAAI3lB,EACPrkC,EAAGgqD,EAAIhqD,EACPwM,EAAGw9C,EAAIx9C,EACPpF,EAAGlS,KAAKs2D,GAEX,EACDiD,YAAa,WACX,IAAIzE,EAAM+B,GAAS72D,KAAKm2D,GAAIn2D,KAAKo2D,GAAIp2D,KAAKq2D,IACtClnB,EAAIlkC,KAAKurD,MAAc,IAAR1B,EAAI3lB,GACrBrkC,EAAIG,KAAKurD,MAAc,IAAR1B,EAAIhqD,GACnBwM,EAAIrM,KAAKurD,MAAc,IAAR1B,EAAIx9C,GACrB,OAAkB,GAAXtX,KAAKs2D,GAAU,OAASnnB,EAAI,KAAOrkC,EAAI,MAAQwM,EAAI,KAAO,QAAU63B,EAAI,KAAOrkC,EAAI,MAAQwM,EAAI,MAAQtX,KAAKu2D,QAAU,GAC9H,EACD9iD,MAAO,SAAeujD,GACpB,OAAOD,GAAS/2D,KAAKm2D,GAAIn2D,KAAKo2D,GAAIp2D,KAAKq2D,GAAIW,EAC5C,EACDwC,YAAa,SAAqBxC,GAChC,MAAO,IAAMh3D,KAAKyT,MAAMujD,EACzB,EACDyC,OAAQ,SAAgBC,GACtB,OAgZJ,SAAmBljC,EAAG1Y,EAAGpQ,EAAGwE,EAAGwnD,GAC7B,IAAIrW,EAAM,CAAC4T,GAAKhsD,KAAKurD,MAAMhgC,GAAG9qB,SAAS,KAAMurD,GAAKhsD,KAAKurD,MAAM14C,GAAGpS,SAAS,KAAMurD,GAAKhsD,KAAKurD,MAAM9oD,GAAGhC,SAAS,KAAMurD,GAAKE,GAAoBjlD,KAG1I,GAAIwnD,GAAcrW,EAAI,GAAGr8C,OAAO,IAAMq8C,EAAI,GAAGr8C,OAAO,IAAMq8C,EAAI,GAAGr8C,OAAO,IAAMq8C,EAAI,GAAGr8C,OAAO,IAAMq8C,EAAI,GAAGr8C,OAAO,IAAMq8C,EAAI,GAAGr8C,OAAO,IAAMq8C,EAAI,GAAGr8C,OAAO,IAAMq8C,EAAI,GAAGr8C,OAAO,GAC1K,OAAOq8C,EAAI,GAAGr8C,OAAO,GAAKq8C,EAAI,GAAGr8C,OAAO,GAAKq8C,EAAI,GAAGr8C,OAAO,GAAKq8C,EAAI,GAAGr8C,OAAO,GAEhF,OAAOq8C,EAAI15C,KAAK,GAClB,CAxZWgwD,CAAU35D,KAAKm2D,GAAIn2D,KAAKo2D,GAAIp2D,KAAKq2D,GAAIr2D,KAAKs2D,GAAIoD,EACtD,EACDE,aAAc,SAAsBF,GAClC,MAAO,IAAM15D,KAAKy5D,OAAOC,EAC1B,EACD7B,MAAO,WACL,MAAO,CACLrhC,EAAGvrB,KAAKurD,MAAMx2D,KAAKm2D,IACnBr4C,EAAG7S,KAAKurD,MAAMx2D,KAAKo2D,IACnB1oD,EAAGzC,KAAKurD,MAAMx2D,KAAKq2D,IACnBnkD,EAAGlS,KAAKs2D,GAEX,EACDuD,YAAa,WACX,OAAkB,GAAX75D,KAAKs2D,GAAU,OAASrrD,KAAKurD,MAAMx2D,KAAKm2D,IAAM,KAAOlrD,KAAKurD,MAAMx2D,KAAKo2D,IAAM,KAAOnrD,KAAKurD,MAAMx2D,KAAKq2D,IAAM,IAAM,QAAUprD,KAAKurD,MAAMx2D,KAAKm2D,IAAM,KAAOlrD,KAAKurD,MAAMx2D,KAAKo2D,IAAM,KAAOnrD,KAAKurD,MAAMx2D,KAAKq2D,IAAM,KAAOr2D,KAAKu2D,QAAU,GACtO,EACDuD,gBAAiB,WACf,MAAO,CACLtjC,EAAGvrB,KAAKurD,MAA8B,IAAxBd,GAAQ11D,KAAKm2D,GAAI,MAAc,IAC7Cr4C,EAAG7S,KAAKurD,MAA8B,IAAxBd,GAAQ11D,KAAKo2D,GAAI,MAAc,IAC7C1oD,EAAGzC,KAAKurD,MAA8B,IAAxBd,GAAQ11D,KAAKq2D,GAAI,MAAc,IAC7CnkD,EAAGlS,KAAKs2D,GAEX,EACDyD,sBAAuB,WACrB,OAAkB,GAAX/5D,KAAKs2D,GAAU,OAASrrD,KAAKurD,MAA8B,IAAxBd,GAAQ11D,KAAKm2D,GAAI,MAAc,MAAQlrD,KAAKurD,MAA8B,IAAxBd,GAAQ11D,KAAKo2D,GAAI,MAAc,MAAQnrD,KAAKurD,MAA8B,IAAxBd,GAAQ11D,KAAKq2D,GAAI,MAAc,KAAO,QAAUprD,KAAKurD,MAA8B,IAAxBd,GAAQ11D,KAAKm2D,GAAI,MAAc,MAAQlrD,KAAKurD,MAA8B,IAAxBd,GAAQ11D,KAAKo2D,GAAI,MAAc,MAAQnrD,KAAKurD,MAA8B,IAAxBd,GAAQ11D,KAAKq2D,GAAI,MAAc,MAAQr2D,KAAKu2D,QAAU,GACpW,EACDyD,OAAQ,WACN,OAAgB,IAAZh6D,KAAKs2D,GACA,gBAELt2D,KAAKs2D,GAAK,KAGP2D,GAASlD,GAAS/2D,KAAKm2D,GAAIn2D,KAAKo2D,GAAIp2D,KAAKq2D,IAAI,MAAU,EAC/D,EACD6D,SAAU,SAAkBC,GAC1B,IAAIC,EAAa,IAAMlD,GAAcl3D,KAAKm2D,GAAIn2D,KAAKo2D,GAAIp2D,KAAKq2D,GAAIr2D,KAAKs2D,IACjE+D,EAAmBD,EACnBzD,EAAe32D,KAAK02D,cAAgB,qBAAuB,GAC/D,GAAIyD,EAAa,CACf,IAAIrvD,EAAIwpD,GAAU6F,GAClBE,EAAmB,IAAMnD,GAAcpsD,EAAEqrD,GAAIrrD,EAAEsrD,GAAItrD,EAAEurD,GAAIvrD,EAAEwrD,GAC5D,CACD,MAAO,8CAAgDK,EAAe,iBAAmByD,EAAa,gBAAkBC,EAAmB,GAC5I,EACD3uD,SAAU,SAAkBgU,GAC1B,IAAI46C,IAAc56C,EAClBA,EAASA,GAAU1f,KAAKy2D,QACxB,IAAI8D,GAAkB,EAClBC,EAAWx6D,KAAKs2D,GAAK,GAAKt2D,KAAKs2D,IAAM,EAEzC,OADwBgE,IAAaE,GAAwB,QAAX96C,GAA+B,SAAXA,GAAgC,SAAXA,GAAgC,SAAXA,GAAgC,SAAXA,GAAgC,SAAXA,GAS3I,QAAXA,IACF66C,EAAkBv6D,KAAK65D,eAEV,SAAXn6C,IACF66C,EAAkBv6D,KAAK+5D,yBAEV,QAAXr6C,GAA+B,SAAXA,IACtB66C,EAAkBv6D,KAAKw5D,eAEV,SAAX95C,IACF66C,EAAkBv6D,KAAKw5D,aAAY,IAEtB,SAAX95C,IACF66C,EAAkBv6D,KAAK45D,cAAa,IAEvB,SAAXl6C,IACF66C,EAAkBv6D,KAAK45D,gBAEV,SAAXl6C,IACF66C,EAAkBv6D,KAAKg6D,UAEV,QAAXt6C,IACF66C,EAAkBv6D,KAAKu5D,eAEV,QAAX75C,IACF66C,EAAkBv6D,KAAKs5D,eAElBiB,GAAmBv6D,KAAKw5D,eAhCd,SAAX95C,GAAiC,IAAZ1f,KAAKs2D,GACrBt2D,KAAKg6D,SAEPh6D,KAAK65D,aA8Bf,EACD9Q,MAAO,WACL,OAAOuL,GAAUt0D,KAAK0L,WACvB,EACD+uD,mBAAoB,SAA4B36D,EAAIG,GAClD,IAAIs0D,EAAQz0D,EAAGK,MAAM,KAAM,CAACH,MAAMqS,OAAO,GAAGpL,MAAMzE,KAAKvC,KAKvD,OAJAD,KAAKm2D,GAAK5B,EAAM4B,GAChBn2D,KAAKo2D,GAAK7B,EAAM6B,GAChBp2D,KAAKq2D,GAAK9B,EAAM8B,GAChBr2D,KAAKq5D,SAAS9E,EAAM+B,IACbt2D,IACR,EACD06D,QAAS,WACP,OAAO16D,KAAKy6D,mBAAmB9C,GAAUz3D,UAC1C,EACDy6D,SAAU,WACR,OAAO36D,KAAKy6D,mBAAmB7C,GAAW13D,UAC3C,EACD06D,OAAQ,WACN,OAAO56D,KAAKy6D,mBAAmB3C,GAAS53D,UACzC,EACDw3D,WAAY,WACV,OAAO13D,KAAKy6D,mBAAmBrD,GAAal3D,UAC7C,EACD26D,SAAU,WACR,OAAO76D,KAAKy6D,mBAAmBjD,GAAWt3D,UAC3C,EACD46D,UAAW,WACT,OAAO96D,KAAKy6D,mBAAmBhD,GAAYv3D,UAC5C,EACD66D,KAAM,WACJ,OAAO/6D,KAAKy6D,mBAAmB1C,GAAO73D,UACvC,EACD86D,kBAAmB,SAA2Bl7D,EAAIG,GAChD,OAAOH,EAAGK,MAAM,KAAM,CAACH,MAAMqS,OAAO,GAAGpL,MAAMzE,KAAKvC,IACnD,EACDg7D,UAAW,WACT,OAAOj7D,KAAKg7D,kBAAkB3C,GAAYn4D,UAC3C,EACDg7D,WAAY,WACV,OAAOl7D,KAAKg7D,kBAAkB/C,GAAa/3D,UAC5C,EACDi7D,cAAe,WACb,OAAOn7D,KAAKg7D,kBAAkBzC,GAAgBr4D,UAC/C,EACDk7D,gBAAiB,WACf,OAAOp7D,KAAKg7D,kBAAkB5C,GAAkBl4D,UACjD,EAKDm7D,MAAO,WACL,OAAOr7D,KAAKg7D,kBAAkB9C,GAAQ,CAAC,GACxC,EACDoD,OAAQ,WACN,OAAOt7D,KAAKg7D,kBAAkB9C,GAAQ,CAAC,GACxC,GAKH5D,GAAUiH,UAAY,SAAUhH,EAAOtzC,GACrC,GAAsB,UAAlB3gB,GAAQi0D,GAAoB,CAC9B,IAAIiH,EAAW,CAAA,EACf,IAAK,IAAI31D,KAAK0uD,EACRA,EAAMrzD,eAAe2E,KAErB21D,EAAS31D,GADD,MAANA,EACY0uD,EAAM1uD,GAEN8vD,GAAoBpB,EAAM1uD,KAI9C0uD,EAAQiH,CACT,CACD,OAAOlH,GAAUC,EAAOtzC,EAC1B,EA+PAqzC,GAAU3hD,OAAS,SAAU8oD,EAAQC,GACnC,SAAKD,IAAWC,IACTpH,GAAUmH,GAAQ5B,eAAiBvF,GAAUoH,GAAQ7B,aAC9D,EACAvF,GAAUlyB,OAAS,WACjB,OAAOkyB,GAAUiH,UAAU,CACzB/kC,EAAGvrB,KAAKm3B,SACRtkB,EAAG7S,KAAKm3B,SACR10B,EAAGzC,KAAKm3B,UAEZ,EAiIAkyB,GAAUqH,IAAM,SAAUF,EAAQC,EAAQrE,GACxCA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIuE,EAAOtH,GAAUmH,GAAQ5D,QACzBgE,EAAOvH,GAAUoH,GAAQ7D,QACzBhxC,EAAIwwC,EAAS,IAOjB,OAAO/C,GANI,CACT99B,GAAIqlC,EAAKrlC,EAAIolC,EAAKplC,GAAK3P,EAAI+0C,EAAKplC,EAChC1Y,GAAI+9C,EAAK/9C,EAAI89C,EAAK99C,GAAK+I,EAAI+0C,EAAK99C,EAChCpQ,GAAImuD,EAAKnuD,EAAIkuD,EAAKluD,GAAKmZ,EAAI+0C,EAAKluD,EAChCwE,GAAI2pD,EAAK3pD,EAAI0pD,EAAK1pD,GAAK2U,EAAI+0C,EAAK1pD,GAGpC,EAQAoiD,GAAUwH,YAAc,SAAUL,EAAQC,GACxC,IAAIK,EAAKzH,GAAUmH,GACfl4B,EAAK+wB,GAAUoH,GACnB,OAAQzwD,KAAK6I,IAAIioD,EAAG9C,eAAgB11B,EAAG01B,gBAAkB,MAAShuD,KAAK4F,IAAIkrD,EAAG9C,eAAgB11B,EAAG01B,gBAAkB,IACrH,EAYA3E,GAAU0H,WAAa,SAAUP,EAAQC,EAAQO,GAC/C,IACIC,EAAY1oD,EADZsoD,EAAcxH,GAAUwH,YAAYL,EAAQC,GAIhD,OAFAloD,GAAM,GACN0oD,EAqbF,SAA4BC,GAG1B,IAAIlrB,EAAOxjC,EAKXwjC,IAJAkrB,EAAQA,GAAS,CACflrB,MAAO,KACPxjC,KAAM,UAEOwjC,OAAS,MAAMnwB,cAC9BrT,GAAQ0uD,EAAM1uD,MAAQ,SAASO,cACjB,OAAVijC,GAA4B,QAAVA,IACpBA,EAAQ,MAEG,UAATxjC,GAA6B,UAATA,IACtBA,EAAO,SAET,MAAO,CACLwjC,MAAOA,EACPxjC,KAAMA,EAEV,CAzce2uD,CAAmBH,IACbhrB,MAAQirB,EAAWzuD,MACpC,IAAK,UACL,IAAK,WACH+F,EAAMsoD,GAAe,IACrB,MACF,IAAK,UACHtoD,EAAMsoD,GAAe,EACrB,MACF,IAAK,WACHtoD,EAAMsoD,GAAe,EAGzB,OAAOtoD,CACT,EAWA8gD,GAAU+H,aAAe,SAAUC,EAAWC,EAAWt8D,GACvD,IAEI67D,EACAU,EAAuBvrB,EAAOxjC,EAH9BgvD,EAAY,KACZC,EAAY,EAIhBF,GADAv8D,EAAOA,GAAQ,IACcu8D,sBAC7BvrB,EAAQhxC,EAAKgxC,MACbxjC,EAAOxN,EAAKwN,KACZ,IAAK,IAAI5H,EAAI,EAAGA,EAAI02D,EAAU32D,OAAQC,KACpCi2D,EAAcxH,GAAUwH,YAAYQ,EAAWC,EAAU12D,KACvC62D,IAChBA,EAAYZ,EACZW,EAAYnI,GAAUiI,EAAU12D,KAGpC,OAAIyuD,GAAU0H,WAAWM,EAAWG,EAAW,CAC7CxrB,MAAOA,EACPxjC,KAAMA,MACD+uD,EACEC,GAEPx8D,EAAKu8D,uBAAwB,EACtBlI,GAAU+H,aAAaC,EAAW,CAAC,OAAQ,QAASr8D,GAE/D,EAKA,IAAI00D,GAAQL,GAAUK,MAAQ,CAC5BgI,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,SACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRp4C,MAAO,MACPq4C,eAAgB,SAChBp4C,KAAM,MACNq4C,WAAY,SACZC,MAAO,SACPC,UAAW,SACXC,YAAa,SACbC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,SAChBC,SAAU,SACVC,QAAS,SACT94C,KAAM,MACN+4C,SAAU,SACVC,SAAU,SACVC,cAAe,SACfC,SAAU,SACVC,UAAW,SACXC,SAAU,SACVC,UAAW,SACXC,YAAa,SACbC,eAAgB,SAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,SACTC,WAAY,SACZC,aAAc,SACdC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,SAAU,SACVC,YAAa,SACbC,QAAS,SACTC,QAAS,SACTC,WAAY,SACZC,UAAW,SACXC,YAAa,SACbC,YAAa,SACbC,QAAS,MACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,SACN96C,MAAO,SACP+6C,YAAa,SACbn7C,KAAM,SACNo7C,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,SACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,SACfC,aAAc,SACdC,eAAgB,MAChBC,eAAgB,MAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,SACXC,MAAO,SACP18C,QAAS,MACT28C,OAAQ,SACRC,iBAAkB,SAClBC,WAAY,SACZC,aAAc,SACdC,aAAc,SACdC,eAAgB,SAChBC,gBAAiB,SACjBC,kBAAmB,SACnBC,gBAAiB,SACjBC,gBAAiB,SACjBC,aAAc,SACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,UAAW,SACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,SACRC,cAAe,SACf3+C,IAAK,MACL4+C,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,SACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,SACTC,UAAW,SACXC,UAAW,SACXC,UAAW,SACXC,KAAM,SACNC,YAAa,SACbC,UAAW,SACXC,IAAK,SACLC,KAAM,SACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPzgD,MAAO,MACP0gD,WAAY,SACZlgD,OAAQ,MACRmgD,YAAa,UAIXrL,GAAW3F,GAAU2F,SAMzB,SAAc51C,GACZ,IAAIkhD,EAAU,CAAA,EACd,IAAK,IAAI1/D,KAAKwe,EACRA,EAAEnjB,eAAe2E,KACnB0/D,EAAQlhD,EAAExe,IAAMA,GAGpB,OAAO0/D,CACT,CAdoCC,CAAK7Q,IAiBzC,SAASqB,GAAW9jD,GAKlB,OAJAA,EAAIuzD,WAAWvzD,IACXvM,MAAMuM,IAAMA,EAAI,GAAKA,EAAI,KAC3BA,EAAI,GAECA,CACT,CAGA,SAASwjD,GAAQjnD,EAAGqF,IA+BpB,SAAwBrF,GACtB,MAAmB,iBAALA,IAAoC,GAAnBA,EAAEI,QAAQ,MAAgC,IAAlB42D,WAAWh3D,EACpE,EAhCMi3D,CAAej3D,KAAIA,EAAI,QAC3B,IAAIk3D,EAkCN,SAAsBl3D,GACpB,MAAoB,iBAANA,IAAqC,GAAnBA,EAAEI,QAAQ,IAC5C,CApCuB+2D,CAAan3D,GASlC,OARAA,EAAIxD,KAAK4F,IAAIiD,EAAK7I,KAAK6I,IAAI,EAAG2xD,WAAWh3D,KAGrCk3D,IACFl3D,EAAIoB,SAASpB,EAAIqF,EAAK,IAAM,KAI1B7I,KAAKK,IAAImD,EAAIqF,GAAO,KACf,EAIFrF,EAAIqF,EAAM2xD,WAAW3xD,EAC9B,CAGA,SAASyjD,GAAQ7wD,GACf,OAAOuE,KAAK4F,IAAI,EAAG5F,KAAK6I,IAAI,EAAGpN,GACjC,CAGA,SAASyuD,GAAgBzuD,GACvB,OAAOmJ,SAASnJ,EAAK,GACvB,CAcA,SAASuwD,GAAK7rD,GACZ,OAAmB,GAAZA,EAAExF,OAAc,IAAMwF,EAAI,GAAKA,CACxC,CAGA,SAASuqD,GAAoBlnD,GAI3B,OAHIA,GAAK,IACPA,EAAQ,IAAJA,EAAU,KAETA,CACT,CAGA,SAAS0oD,GAAoBtsD,GAC3B,OAAOI,KAAKurD,MAAsB,IAAhBiP,WAAW56D,IAAUa,SAAS,GAClD,CAEA,SAAS0pD,GAAoBjmB,GAC3B,OAAOgmB,GAAgBhmB,GAAK,GAC9B,CACA,IAQM02B,GAKAC,GACAC,GAdFnR,IAaEkR,GAAoB,eALpBD,GAAW,8CAKoC,aAAeA,GAAW,aAAeA,GAAW,YACnGE,GAAoB,cAAgBF,GAAW,aAAeA,GAAW,aAAeA,GAAW,aAAeA,GAAW,YAC1H,CACLA,SAAU,IAAI9kD,OAAO8kD,IACrBrR,IAAK,IAAIzzC,OAAO,MAAQ+kD,IACxBjR,KAAM,IAAI9zC,OAAO,OAASglD,IAC1BjR,IAAK,IAAI/zC,OAAO,MAAQ+kD,IACxB/Q,KAAM,IAAIh0C,OAAO,OAASglD,IAC1B/Q,IAAK,IAAIj0C,OAAO,MAAQ+kD,IACxB7Q,KAAM,IAAIl0C,OAAO,OAASglD,IAC1BxQ,KAAM,uDACNF,KAAM,uDACNC,KAAM,uEACNJ,KAAM,yEAOV,SAASO,GAAelB,GACtB,QAASK,GAASiR,SAAS/S,KAAKyB,EAClC,yhCC1hCO,SAASyR,GAAkBC,GAWhC,IAVA,IAQIn8C,EAREo8C,EAAY,mEACZxyD,EAAQ,IAAI7K,WAAWo9D,GACvBt5D,EAAa+G,EAAM/G,WACnBw5D,EAAgBx5D,EAAa,EAC7By5D,EAAaz5D,EAAaw5D,EAE5B/tC,EAAS,GAIJvyB,EAAI,EAAGA,EAAIugE,EAAYvgE,GAAQ,EAMtCuyB,GAAU8tC,GAJG,UADbp8C,EAASpW,EAAM7N,IAAM,GAAO6N,EAAM7N,EAAI,IAAM,EAAK6N,EAAM7N,EAAI,MACjC,IAIDqgE,GAHZ,OAARp8C,IAAmB,IAGgBo8C,GAF3B,KAARp8C,IAAiB,GAEiCo8C,EAD3C,GAARp8C,GAkBN,OAdsB,IAAlBq8C,EAIF/tC,GAAU8tC,GAFG,KADbp8C,EAAQpW,EAAM0yD,MACO,GAEIF,GADZ,EAARp8C,IAAc,GACqB,KAEf,IAAlBq8C,IAKP/tC,GAAU8tC,GAHG,OADbp8C,EAASpW,EAAM0yD,IAAe,EAAK1yD,EAAM0yD,EAAa,MAC/B,IAGEF,GAFZ,KAARp8C,IAAiB,GAEkBo8C,GAD3B,GAARp8C,IAAe,GACmC,KAGlDsO,CACT,CAEO,SAASiuC,GAAqB7e,GACnC,OAAOA,EAAS13C,OAA6C,KAAnC03C,EAAS14C,YAAY,OAAS,GAC1D,CAEO,SAASw3D,GAAYxyC,EAAM0J,GAChC,IAAK1J,EAAM,OAAOA,EAElB,IAAIpwB,EAAS,GACb,GAAIowB,EAAKnzB,cAAgBmI,MACvB,IAAK,IAAIjD,EAAI,EAAGA,EAAIiuB,EAAKluB,OAAQC,IAC/BnC,GAAU85B,EAAK1J,EAAKjuB,GAAIA,QAGvBnC,GAAU85B,EAAK1J,EAAM,GAE1B,OAAOpwB,CACT,CAEO,SAAS6iE,GAAkBzyC,EAAM6L,GACtC,GAAIA,EAAKh/B,cAAgBmI,MAAO,MAAM9E,MAAM,0CAE5C,IAAK8vB,EAAM,OAAOA,EAAI,IAEA2/B,EAFAC,EAAAC,GAEJh0B,GAAI,IAAtB,IAAwB+zB,EAAA5oD,MAAA2oD,EAAAC,EAAAjlD,KAAA/O,MAAA,CAEtB,KADAo0B,EAAOA,EADK2/B,EAAA90D,QAED,OAAOm1B,CACpB,CAAC,CAAA,MAAA1zB,GAAAszD,EAAAnpD,EAAAnK,EAAA,CAAA,QAAAszD,EAAA/zC,GAAA,CAED,OAAOmU,CACT,CAEO,SAAS0yC,GAAeC,GAC7B,OAAKA,EACEx7D,KAAKurD,MAAMiQ,EAAQ,KADP,CAErB,CAEO,SAASC,GAAWhxC,GACzB,IAAMrS,EAAM,CACV,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,UAEP,OAAOqS,EAAK/d,QAAQ,YAAY,SAAAnN,GAAC,OAAI6Y,EAAI7Y,KAC3C,CAEO,SAASm8D,GAAYC,GAC1B,IAAIxhC,EAAW,GACf,OAAQwhC,EAAW54D,eACjB,IAAK,MACL,IAAK,OACHo3B,EAAW,aACX,MACF,IAAK,MACHA,EAAW,YACX,MACF,IAAK,MACHA,EAAW,YACX,MACF,IAAK,MACHA,EAAW,cACX,MACF,IAAK,MACHA,EAAW,cACX,MACF,IAAK,MACHA,EAAW,gBACX,MACF,IAAK,MACHA,EAAW,YACX,MACF,IAAK,OACHA,EAAW,aACX,MACF,IAAK,MACHA,EAAW,YACX,MACF,IAAK,MACHA,EAAW,YACX,MACF,IAAK,MACHA,EAAW,YACX,MACF,IAAK,MACHA,EAAW,YACX,MACF,IAAK,MACHA,EAAW,aACX,MACF,IAAK,MACHA,EAAW,YACX,MACF,IAAK,MAGL,IAAK,OACHA,EAAW,aAIf,OAAOA,CACT,CAEO,SAASyhC,GAAYC,GAE1B,MADiB,6TACD9lD,KAAK8lD,EACvB,CAEO,SAASrzD,GAAMhF,GAEpB,IADA,IAAI40C,EAAM50C,EAAE/C,SAAS,IACd23C,EAAIz9C,OAAS,GAClBy9C,EAAM,IAAMA,EAEd,OAAOA,CACT,CCtJO,SAAS0jB,GAAwBC,EAAWC,EAASC,EAAQC,GAClE,IAAI5S,EACA6S,EACJ,GAAIF,EAAQE,EAAuBF,MAC9B,CACH,IAAIG,EAAed,GAAkBU,EAAsB,aAAG,CAAC,QAAS,cAAe,uBAAwB,UAC7FG,EAAdC,KAEFA,EAAed,GAAkBU,EAA4B,mBAAG,CAAC,cAAe,cAAe,uBAAwB,YAG9FV,GAAkBU,EAA4B,mBAAG,CAAC,cAAe,WAAY,UAG1G,CACA,IAAMK,EAAcN,EAAUl3D,OAAO,GACrC,GAAoB,UAAhBw3D,GAA2BH,EAAO5S,EAAQ4S,MACzC,CACH,GAAIC,EACF,OAAQE,GACN,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACHN,EAAY,KAAOI,EAAqBE,QAO5C,OAAQN,GACN,IAAK,MACHA,EAAY,QACZ,MACF,IAAK,MACHA,EAAY,QACZ,MACF,IAAK,MACHA,EAAY,QACZ,MACF,IAAK,MACHA,EAAY,QAMlB,IAAMO,EAAUhB,GAAkBU,EAAsB,aAAG,CAAC,UAAW,kBAAmB,cAAeD,MACzGzS,EAAQgS,GAAkBgB,EAAS,CAAC,YAAa,QAAS,UAC5CA,IAAShT,EAAQgS,GAAkBgB,EAAS,CAAC,WAAY,QAAS,YAClF,CACA,OAAOhT,CACT,CCnDO,SAASiT,GAAU1zC,EAAM2zC,EAAQR,GACtC,IAAMS,EAAW5zC,EAAK,UAAU,QAE5B6zC,EAAc93D,SAAS02D,GAAkBmB,EAAU,CAAC,QAAS,OAAS,MACtE/hE,MAAMgiE,KACMA,EAAVD,GACgB,QAAXD,EADmB,EAET,GAGrB,IAAIG,EAAcrB,GAAkBmB,EAAU,CAAC,cAAe,YAAa,QAAS,QACpF,IAAKE,EAAa,CAChB,IAAMC,EAAgBtB,GAAkBmB,EAAU,CAAC,cAAe,gBAElEE,EAAcb,GADI,KAAOR,GAAkBsB,EAAe,CAAC,QAAS,QACnBZ,EACnD,CAEA,IAAKW,EAAa,CAChB,IAAMC,EAAgBtB,GAAkBzyC,EAAM,CAAC,UAAW,UAAW,gBAIrE,GAFA8zC,EAAcb,GADI,KAAOR,GAAkBsB,EAAe,CAAC,QAAS,QACnBZ,GAEhC,CACf,IAAIa,EAAQvB,GAAkBsB,EAAe,CAAC,UAAW,QAAS,QAElE,GAAIC,EAAO,CACTA,EAAQj4D,SAASi4D,GAAS,IAE1B,IAAMvT,EAAQD,GAAU,IAAMsT,GAAatQ,QAC3CsQ,EAActT,GAAU,CAAEnlB,EAAGolB,EAAMplB,EAAGrkC,EAAGypD,EAAMzpD,EAAGwM,EAAGi9C,EAAMj9C,EAAIwwD,EAAO51D,EAAGqiD,EAAMriD,IAAKuB,OACtF,CACF,CACF,CAGKm0D,EADAA,EACkBA,IAAAA,OAAAA,GADS,OAGhC,IACIG,EAAa,QACbC,EAAkB,IACtB,OAHazB,GAAkBmB,EAAU,CAAC,aAAc,QAAS,SAI/D,IAAK,QACHK,EAAa,QACbC,EAAkB,IAClB,MACF,IAAK,OACHD,EAAa,SACbC,EAAkB,IAClB,MACF,IAAK,UACHD,EAAa,SACbC,EAAkB,aAClB,MACF,IAAK,MACHD,EAAa,SACbC,EAAkB,OAClB,MACF,IAAK,SACHD,EAAa,SACbC,EAAkB,QAClB,MACF,IAAK,eACHD,EAAa,SACbC,EAAkB,oBAClB,MACF,IAAK,UACHD,EAAa,SACbC,EAAkB,OAClB,MACF,IAAK,aACHD,EAAa,SACbC,EAAkB,aAClB,MACF,IAAK,gBACHD,EAAa,SACbC,EAAkB,mBAClB,MACF,IAAK,SACHD,EAAa,SACbC,EAAkB,OAKtB,MAAO,CACLJ,YAAAA,EACAD,YAAAA,EACAI,WAAAA,EACAC,gBAAAA,EAEJ,CC5FO,SAASC,GAASC,EAAIC,EAAInQ,GAG/B,OAFIA,EAAM,IAAGA,GAAO,GAChBA,GAAO,IAAGA,GAAO,GACjBA,EAAM,GAAWmQ,EAAKD,GAAMlQ,EAAMkQ,EAC7BlQ,EAAM,EAAUmQ,EAChBnQ,EAAM,GAAWmQ,EAAKD,IAAO,EAAIlQ,GAAOkQ,EAC1CA,CACT,CCaO,SAASE,GAAYt0C,GAC1B,IAAIu0C,EAAW,GAQf,OAPIv0C,EAAK,cAAau0C,EAAW,WAC7Bv0C,EAAK,iBAAgBu0C,EAAW,cAChCv0C,EAAK,gBAAeu0C,EAAW,iBAC/Bv0C,EAAK,gBAAeu0C,EAAW,gBAC/Bv0C,EAAK,gBAAeu0C,EAAW,YAC/Bv0C,EAAK,eAAcu0C,EAAW,cAE3BA,CACT,CAEA,SAAsBC,GAAUzU,EAAAC,EAAAyU,GAAA,OAAAC,GAAAroE,MAAAH,KAAAE,UAAA,CAiC/B,SAAAsoE,KAAA,OAAAA,GAAA3oE,EAAAkB,EAAAoF,MAjCM,SAA0B5D,EAAAA,EAAMuxB,EAAMmzC,GAAO,IAAAwB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAA/nE,EAAAY,MAAA,SAAAsyD,GAAA,OAAA,OAAAA,EAAAltD,KAAAktD,EAAAtvD,MAAA,KAAA,EAkBjD,GAhBK+jE,EAAM50C,EAAK,UAAiB,MAAE,WAEvB,YAATvxB,GAA+B,UAATA,EACxBomE,EAAUpC,GAAkBU,EAAS,CAAC,cAAeyB,EAAK,WAE1C,kBAATnmE,EACPomE,EAAUpC,GAAkBU,EAAS,CAAC,eAAgByB,EAAK,WAE3C,kBAATnmE,EACPomE,EAAUpC,GAAkBU,EAAS,CAAC,eAAgByB,EAAK,WAE3C,YAATnmE,EACPomE,EAAUpC,GAAkBU,EAAS,CAAC,cAAeyB,EAAK,WAE1C,cAATnmE,IACPomE,EAAUpC,GAAkBU,EAAS,CAAC,gBAAiByB,EAAK,YAEzDC,EAAO,CAAA1U,EAAAtvD,KAAA,EAAA,KAAA,CAAA,OAAAsvD,EAAAzvD,OAAA,SAASmkE,GAAO,KAAA,EAEgC,GAA5DF,EAAMlC,GAAkBU,EAAS,CAAC,gBAAiB0B,IAC3C,CAAA1U,EAAAtvD,KAAA,GAAA,KAAA,CAGiC,GAFvCgkE,EAAUjC,GAAWiC,GAGN,SADTC,EAASD,EAAQhlD,MAAM,KAAK9c,OACd,CAAAotD,EAAAtvD,KAAA,GAAA,KAAA,CAAA,OAAAsvD,EAAAzvD,OAAA,cAASnE,GAAS,KAAA,GAAA,OAAA4zD,EAAAtvD,KAAA,GAETsiE,EAAa,IAAErjB,KAAK+kB,GAASpiE,MAAM,eAAc,KAAA,GAAxEsiE,EAAc5U,EAAA5vD,KACdykE,EAAcnC,GAAYiC,GAChCH,iBAAcK,EAAW,YAAAz2D,OAAW2zD,GAAkB6C,IAAiB,KAAA,GAAA,OAAA5U,EAAAzvD,OAAA,SAElEikE,GAAG,KAAA,GAAA,IAAA,MAAA,OAAAxU,EAAA/sD,OAAA,GAAA8sD,EACX,KAAAwU,GAAAroE,MAAAH,KAAAE,UAAA,CAED,SAAsB6oE,GAAYC,EAAAC,EAAAC,GAAA,OAAAC,GAAAhpE,MAAAH,KAAAE,UAAA,CAcjC,SAAAipE,KAAA,OAAAA,GAAAtpE,EAAAkB,EAAAoF,MAdM,SAA4BijE,EAAAA,EAAMC,EAAOpC,GAAO,IAAAqC,EAAAC,EAAAC,EAAAC,EAAA,OAAA1oE,EAAAY,MAAA,SAAA+nE,GAAA,OAAA,OAAAA,EAAA3iE,KAAA2iE,EAAA/kE,MAAA,KAAA,EAAA,OAAA+kE,EAAA/kE,KAAA,EAC7B2jE,GAAWe,EAAOD,EAAK,cAAenC,GAAQ,KAAA,EAOrE,OAPKqC,EAASI,EAAArlE,KACTklE,EAAYH,EAAK,cAAc,UAE/BI,EAAiBjD,GAAkBgD,EAAW,CAAC,gBAAiB,UAClEE,EAAU,EACVD,GAAkBA,EAAoB,KAA+B,KAA1BA,EAAoB,MACjEC,EAAU55D,SAAS25D,EAAoB,KAAK,KAGvCE,EAAAllE,OAAA,SAAA,CACL8kE,UAAAA,EACAG,QAAAA,IACD,KAAA,EAAA,IAAA,MAAA,OAAAC,EAAAxiE,OAAA,GAAAyiE,EACF,MAAAxpE,MAAAH,KAAAE,UAAA,CAEM,SAAS0pE,GAAkBR,EAAMjC,EAAO0C,EAAoB5C,GACjE,GAAImC,EAAM,CAKR,IAJA,IAAMU,EAAUV,EAAK,cACfW,EAAQD,EAAQ,WAAW,QAC3BE,EAAY,GAETnkE,EAAI,EAAGA,EAAIkkE,EAAMnkE,OAAQC,IAAK,CACrC,IAAMokE,EAAWC,GAAaH,EAAMlkE,GAAIgkE,EAAmB,eAAe,YAAmB,MAAG1C,EAAOF,GACjG10D,EAAMg0D,GAAkBwD,EAAMlkE,GAAI,CAAC,QAAS,QAElDmkE,EAAUnkE,GAAK,CACb0M,IAAKA,EAAOA,EAAM,IAAO,IAAO,GAChCgiD,MAAO0V,EAEX,CACA,IAAME,EAAML,EAAQ,SAChBM,EAAM,GAMV,OALID,IACFC,EAAM5D,GAAe2D,EAAW,MAAO,KACvCC,GAAY,IAGP,CACLA,IAAAA,EACA7oD,OAAQyoD,EAAUK,MAAK,SAACn4D,EAAGxE,GAAC,OAAKmC,SAASqC,EAAEK,KAAO1C,SAASnC,EAAE6E,IAAI,IAErE,CACI,OAAI40D,GACwB,IAAxBA,EAAMt4D,QAAQ,KAAW,IAAAwD,OAAO80D,GAAUA,EAE5C,IACT,CAEA,SAAsBmD,GAAsBC,GAAA,OAAAC,GAAArqE,MAAAH,KAAAE,UAAA,CAwS3C,SAAAsqE,KAAA,OAAAA,GAAA3qE,EAAAkB,EAAAoF,MAxSM,WAAsC8gE,GAAO,IAAAwD,EAAAC,EAAAb,EAAAT,EAAAuB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA3D,EAAA4D,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAnE,EAAA1kD,EAAA8oD,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA9F,EAAA+F,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAA,OAAAhtE,EAAAY,MAAA,SAAAqsE,GAAA,OAAA,OAAAA,EAAAjnE,KAAAinE,EAAArpE,MAAA,KAAA,EAStB,GARtB8lE,EAAexD,EAAsB,aACrCyD,EAAqBzD,EAA4B,mBACjD4C,EAAqB5C,EAA4B,mBAEnDmC,EAAO7C,GAAkBkE,EAAc,CAAC,QAAS,SAAU,OAAQ,WACnEE,EAAQpE,GAAkBkE,EAAc,CAAC,QAAS,SAAU,OAAQ,YAEpEG,EAAa,OACbC,EAAiB,SAEjBzB,EAAI,CAAA4E,EAAArpE,KAAA,GAAA,KAAA,CAC6B,GAEjB,gBAFZmmE,EAAY1C,GAAYgB,IAEA,CAAA4E,EAAArpE,KAAA,GAAA,KAAA,CACtBomE,EAAU3B,EAAK,gBAEf/B,EAAed,GAAkBkE,EAAc,CAAC,QAAS,cAAe,uBAAwB,WACpFO,EAAY3D,GAEtBA,EAAed,GAAkBmE,EAAoB,CAAC,cAAe,cAAe,uBAAwB,UAChGM,EAAd3D,GACad,GAAkBsD,EAAoB,CAAC,cAAe,WAAY,WAE/EqB,EAAWhB,GAAaa,EAASC,OAAW3qE,EAAW4mE,GAC7D2D,EAAaM,EAAQ8C,EAAArpE,KAAA,GAAA,MAAA,KAAA,GAAA,GAEA,kBAAdmmE,EAA6B,CAAAkD,EAAArpE,KAAA,GAAA,KAAA,CAER,iBADtBwmE,EAAevB,GAAkBR,OAAM/oE,EAAWwpE,EAAoB5C,IAE1E2D,EAAaO,EAENA,IACPP,EAAaO,EACbN,EAAiB,YAClBmD,EAAArpE,KAAA,GAAA,MAAA,KAAA,GAAA,GAEoB,aAAdmmE,EAAwB,CAAAkD,EAAArpE,KAAA,GAAA,KAAA,CAAA,OAAAqpE,EAAArpE,KAAA,GACZokE,GAAaK,EAAM,UAAWnC,GAAQ,KAAA,GAAzD2D,EAAUoD,EAAA3pE,KACVwmE,EAAiB,QAAO,KAAA,GAAAmD,EAAArpE,KAAA,IAAA,MAAA,KAAA,GAAA,IAGnBgmE,EAAK,CAAAqD,EAAArpE,KAAA,GAAA,KAAA,EAEN0iE,EAAed,GAAkBkE,EAAc,CAAC,QAAS,cAAe,uBAAwB,WACpFO,EAAY3D,GAEtBA,EAAed,GAAkBmE,EAAoB,CAAC,cAAe,cAAe,uBAAwB,UAChGM,EAAd3D,GACad,GAAkBsD,EAAoB,CAAC,cAAe,WAAY,WAE/E1C,EAAQ+C,GAAaS,EAAOK,OAAW3qE,EAAW4mE,IAClDxkD,EAAMhT,OAAOk7D,EAAa,MAAO,MAE7B,MACFY,EAAU9oD,EAAM,IAChB+oD,EAAYvE,EAAsB,aAAE,WAAW,mBAAmB,eAAe,oBACjFwE,EAAY,GAClB7sE,OAAO6H,KAAK+kE,GAAWroE,SAAQ,SAAAzE,GAC7B,IAAMuvE,EAAezC,EAAU9sE,GAC/B,GAAY,UAARA,EACF,GAAIuvE,EAAattE,cAAgBmI,MAC/B,IAAK,IAAIjD,EAAI,EAAGA,EAAIooE,EAAaroE,OAAQC,IAAK,CAC5C,IAAMpH,EAAM,CAAA,EACZA,EAAIC,GAAOuvE,EAAapoE,GACpBooE,EAAapoE,GAAU,QACzBpH,EAAU,KAAIwvE,EAAapoE,GAAU,MAAS,MAC9CpH,EAAW,MAAI,CACb6gD,MAAS2uB,EAAapoE,GAAU,MAAS,QAG7C4lE,EAAUpmE,KAAK5G,EACjB,KAEG,CACH,IAAMA,EAAM,CAAA,EACZA,EAAIC,GAAOuvE,EACPA,EAAoB,QACtBxvE,EAAU,KAAIwvE,EAAoB,MAAS,MAC3CxvE,EAAW,MAAI,CACb6gD,MAAS2uB,EAAoB,MAAS,QAG1CxC,EAAUpmE,KAAK5G,EACjB,CAEJ,KACMitE,EAAcD,EAAUxkE,MAAM,IACxBojE,MAAK,SAACn4D,EAAGxE,GAAC,OAAKwE,EAAEg8D,KAAOxgE,EAAEwgE,QAChCvC,EAAeD,EAAYH,EAAU,GAEzB,gBADZT,EAAY1C,GAAYuD,KAEtBZ,EAAUY,EAAa,eACvBT,EAAWhB,GAAaa,EAASC,OAAW3qE,EAAW4mE,GAC7D2D,EAAaM,GAEQ,kBAAdJ,IAEqB,iBADtBK,EAAevB,GAAkB+B,EAAcxE,EAAO0C,EAAoB5C,IAE9E2D,EAAaO,EAENA,IACPP,EAAaO,EACbN,EAAiB,cAGtBmD,EAAArpE,KAAA,IAAA,MAAA,KAAA,GAS2F,GAN5FykE,EAAO7C,GAAkBmE,EAAoB,CAAC,cAAe,SAAU,OAAQ,WAC/EC,EAAQpE,GAAkBmE,EAAoB,CAAC,cAAe,SAAU,OAAQ,YAG1ErD,EAAed,GAAkBmE,EAAoB,CAAC,cAAe,cAAe,uBAAwB,UAChGM,EAAd3D,GACad,GAAkBsD,EAAoB,CAAC,cAAe,WAAY,WAE/ET,EAAI,CAAA4E,EAAArpE,KAAA,GAAA,KAAA,CAC6B,GACjB,gBADZmmE,EAAY1C,GAAYgB,IACA,CAAA4E,EAAArpE,KAAA,GAAA,KAAA,CACtBomE,EAAU3B,EAAK,eACf8B,EAAWhB,GAAaa,EAASC,OAAW3qE,EAAW4mE,GAC7D2D,EAAaM,EAAQ8C,EAAArpE,KAAA,GAAA,MAAA,KAAA,GAAA,GAEA,kBAAdmmE,EAA6B,CAAAkD,EAAArpE,KAAA,GAAA,KAAA,CAER,iBADtBwmE,EAAevB,GAAkBR,OAAM/oE,EAAWwpE,EAAoB5C,IAE1E2D,EAAaO,EAENA,IACPP,EAAaO,EACbN,EAAiB,YAClBmD,EAAArpE,KAAA,GAAA,MAAA,KAAA,GAAA,GAEoB,aAAdmmE,EAAwB,CAAAkD,EAAArpE,KAAA,GAAA,KAAA,CAAA,OAAAqpE,EAAArpE,KAAA,GACZokE,GAAaK,EAAM,gBAAiBnC,GAAQ,KAAA,GAA/D2D,EAAUoD,EAAA3pE,KACVwmE,EAAiB,QAAO,KAAA,GAAAmD,EAAArpE,KAAA,IAAA,MAAA,KAAA,GAAA,IAGnBgmE,EAAK,CAAAqD,EAAArpE,KAAA,GAAA,KAAA,CAE6B,GADnCwiE,EAAQ+C,GAAaS,EAAOK,OAAW3qE,EAAW4mE,MAClDxkD,EAAMhT,OAAOk7D,EAAa,MAAO,MAE7B,KAAI,CAAAqD,EAAArpE,KAAA,GAAA,KAAA,CAoC+B,GAnCrC4mE,EAAU9oD,EAAM,IAChB+oD,EAAYvE,EAAsB,aAAE,WAAW,mBAAmB,eAAe,oBACjFwE,EAAY,GAClB7sE,OAAO6H,KAAK+kE,GAAWroE,SAAQ,SAAAzE,GAC7B,IAAMuvE,EAAezC,EAAU9sE,GAC/B,GAAY,UAARA,EACF,GAAIuvE,EAAattE,cAAgBmI,MAC/B,IAAK,IAAIjD,EAAI,EAAGA,EAAIooE,EAAaroE,OAAQC,IAAK,CAC5C,IAAMpH,EAAM,CAAA,EACZA,EAAIC,GAAOuvE,EAAapoE,GACpBooE,EAAapoE,GAAU,QACzBpH,EAAU,KAAIwvE,EAAapoE,GAAU,MAAS,MAC9CpH,EAAW,MAAI,CACb6gD,MAAS2uB,EAAapoE,GAAU,MAAS,QAG7C4lE,EAAUpmE,KAAK5G,EACjB,KAEG,CACH,IAAMA,EAAM,CAAA,EACZA,EAAIC,GAAOuvE,EACPA,EAAoB,QACtBxvE,EAAU,KAAIwvE,EAAoB,MAAS,MAC3CxvE,EAAW,MAAI,CACb6gD,MAAS2uB,EAAoB,MAAS,QAG1CxC,EAAUpmE,KAAK5G,EACjB,CAEJ,KACMitE,EAAcD,EAAUxkE,MAAM,IACxBojE,MAAK,SAACn4D,EAAGxE,GAAC,OAAKwE,EAAEg8D,KAAOxgE,EAAEwgE,QAChCvC,EAAeD,EAAYH,EAAU,GAEzB,gBADZT,EAAY1C,GAAYuD,IACA,CAAAqC,EAAArpE,KAAA,GAAA,KAAA,CACtBomE,EAAUY,EAAa,eACvBT,EAAWhB,GAAaa,EAASC,OAAW3qE,EAAW4mE,GAC7D2D,EAAaM,EAAQ8C,EAAArpE,KAAA,GAAA,MAAA,KAAA,GAAA,GAEA,kBAAdmmE,EAA6B,CAAAkD,EAAArpE,KAAA,GAAA,KAAA,CAER,iBADtBwmE,EAAevB,GAAkB+B,EAAcxE,EAAO0C,EAAoB5C,IAE9E2D,EAAaO,EAENA,IACPP,EAAaO,EACbN,EAAiB,YAClBmD,EAAArpE,KAAA,GAAA,MAAA,KAAA,GAAA,GAEoB,aAAdmmE,EAAwB,CAAAkD,EAAArpE,KAAA,GAAA,KAAA,CAAA,OAAAqpE,EAAArpE,KAAA,GACZokE,GAAa4C,EAAc,UAAW1E,GAAQ,KAAA,GAAjE2D,EAAUoD,EAAA3pE,KACVwmE,EAAiB,QAAO,KAAA,GAAAmD,EAAArpE,KAAA,IAAA,MAAA,KAAA,GAQ8D,GAH1FykE,EAAO7C,GAAkBsD,EAAoB,CAAC,cAAe,SAAU,OAAQ,WAC/Ec,EAAQpE,GAAkBsD,EAAoB,CAAC,cAAe,SAAU,OAAQ,YAE1E3C,EAASX,GAAkBsD,EAAoB,CAAC,cAAe,WAAY,WAC7ET,EAAI,CAAA4E,EAAArpE,KAAA,IAAA,KAAA,CAC6B,GACjB,gBADZmmE,EAAY1C,GAAYgB,IACA,CAAA4E,EAAArpE,KAAA,IAAA,KAAA,CACtBomE,EAAU3B,EAAK,eACf8B,EAAWhB,GAAaa,EAAS7D,OAAQ7mE,EAAW4mE,GAC1D2D,EAAaM,EAAQ8C,EAAArpE,KAAA,IAAA,MAAA,KAAA,IAAA,GAEA,kBAAdmmE,EAA6B,CAAAkD,EAAArpE,KAAA,IAAA,KAAA,CAER,iBADtBwmE,EAAevB,GAAkBR,OAAM/oE,EAAWwpE,EAAoB5C,IAE1E2D,EAAaO,EAENA,IACPP,EAAaO,EACbN,EAAiB,YAClBmD,EAAArpE,KAAA,IAAA,MAAA,KAAA,IAAA,GAEoB,aAAdmmE,EAAwB,CAAAkD,EAAArpE,KAAA,IAAA,KAAA,CAAA,OAAAqpE,EAAArpE,KAAA,IACZokE,GAAaK,EAAM,gBAAiBnC,GAAQ,KAAA,IAA/D2D,EAAUoD,EAAA3pE,KACVwmE,EAAiB,QAAO,KAAA,IAAAmD,EAAArpE,KAAA,IAAA,MAAA,KAAA,IAAA,IAGnBgmE,EAAK,CAAAqD,EAAArpE,KAAA,IAAA,KAAA,CAE6B,GADnCwiE,EAAQ+C,GAAaS,EAAOzD,OAAQ7mE,EAAW4mE,MAC/CxkD,GAAMhT,OAAOk7D,EAAa,MAAO,MAE7B,KAAI,CAAAqD,EAAArpE,KAAA,IAAA,KAAA,CAoC+B,GAnCrC4mE,GAAU9oD,GAAM,IAChB+oD,GAAYvE,EAAsB,aAAE,WAAW,mBAAmB,eAAe,oBACjFwE,GAAY,GAClB7sE,OAAO6H,KAAK+kE,IAAWroE,SAAQ,SAAAzE,GAC7B,IAAMuvE,EAAezC,GAAU9sE,GAC/B,GAAY,UAARA,EACF,GAAIuvE,EAAattE,cAAgBmI,MAC/B,IAAK,IAAIjD,EAAI,EAAGA,EAAIooE,EAAaroE,OAAQC,IAAK,CAC5C,IAAMpH,EAAM,CAAA,EACZA,EAAIC,GAAOuvE,EAAapoE,GACpBooE,EAAapoE,GAAU,QACzBpH,EAAU,KAAIwvE,EAAapoE,GAAU,MAAS,MAC9CpH,EAAW,MAAI,CACb6gD,MAAS2uB,EAAapoE,GAAU,MAAS,QAG7C4lE,GAAUpmE,KAAK5G,EACjB,KAEG,CACH,IAAMA,EAAM,CAAA,EACZA,EAAIC,GAAOuvE,EACPA,EAAoB,QACtBxvE,EAAU,KAAIwvE,EAAoB,MAAS,MAC3CxvE,EAAW,MAAI,CACb6gD,MAAS2uB,EAAoB,MAAS,QAG1CxC,GAAUpmE,KAAK5G,EACjB,CAEJ,KACMitE,GAAcD,GAAUxkE,MAAM,IACxBojE,MAAK,SAACn4D,EAAGxE,GAAC,OAAKwE,EAAEg8D,KAAOxgE,EAAEwgE,QAChCvC,GAAeD,GAAYH,GAAU,GAEzB,gBADZT,GAAY1C,GAAYuD,KACA,CAAAqC,EAAArpE,KAAA,IAAA,KAAA,CACtBomE,GAAUY,GAAa,eACvBT,GAAWhB,GAAaa,GAASC,OAAW3qE,EAAW4mE,GAC7D2D,EAAaM,GAAQ8C,EAAArpE,KAAA,IAAA,MAAA,KAAA,IAAA,GAEA,kBAAdmmE,GAA6B,CAAAkD,EAAArpE,KAAA,IAAA,KAAA,CAER,iBADtBwmE,GAAevB,GAAkB+B,GAAcxE,EAAO0C,EAAoB5C,IAE9E2D,EAAaO,GAENA,KACPP,EAAaO,GACbN,EAAiB,YAClBmD,EAAArpE,KAAA,IAAA,MAAA,KAAA,IAAA,GAEoB,aAAdmmE,GAAwB,CAAAkD,EAAArpE,KAAA,IAAA,KAAA,CAAA,OAAAqpE,EAAArpE,KAAA,IACZokE,GAAa4C,GAAc,UAAW1E,GAAQ,KAAA,IAAjE2D,EAAUoD,EAAA3pE,KACVwmE,EAAiB,QAAO,KAAA,IAAA,OAM3BmD,EAAAxpE,OAAA,SAAA,CACLjC,KAAMsoE,EACNlsE,MAAOisE,IACR,KAAA,IAAA,IAAA,MAAA,OAAAoD,EAAA9mE,OAAA,GAAAinE,EACF,KAAA3D,GAAArqE,MAAAH,KAAAE,UAAA,CAEM,SAASkuE,GAAat6C,EAAMu6C,EAAWpH,GAC5C,GAAIV,GAAkBzyC,EAAM,CAAC,SAAU,aACrC,OAAOu6C,EAAY,OAAS,GAG9B,IAAIC,GACCA,IACHA,EAAY/H,GAAkBzyC,EAAM,CAAC,SAAU,cAAe,YAAa,QAAS,SAGjFw6C,KAEHA,EAAYvH,GADM,KAAOR,GAAkBzyC,EAAM,CAAC,SAAU,cAAe,cAAe,QAAS,QACpDmzC,IAG5CqH,IAEHA,EAAYvH,GADM,KAAOR,GAAkBzyC,EAAM,CAAC,UAAW,YAAa,cAAe,QAAS,QACnDmzC,IAGjD,GAAIqH,EAAW,CACbA,EAAS,IAAAj8D,OAAOi8D,GAEhB,IAAIC,EAAS1+D,SAAS02D,GAAkBzyC,EAAM,CAAC,SAAU,cAAe,cAAe,WAAY,QAAS,SAAW,IACnH06C,EAAS3+D,SAAS02D,GAAkBzyC,EAAM,CAAC,SAAU,cAAe,cAAe,WAAY,QAAS,SAAW,IACnHnuB,MAAM4oE,KAASA,EAAS,GACxB5oE,MAAM6oE,KAASA,EAAS,GAE5B,IAAMja,EAAQD,GAAUga,GAAWhX,QAC7BmX,EAAMla,EAAMj9C,EAAIi3D,EAASC,EAC/B,OAAOla,GAAU,CAAEnlB,EAAGolB,EAAMplB,EAAGrkC,EAAGypD,EAAMzpD,EAAGwM,EAAGm3D,EAAKv8D,EAAGqiD,EAAMriD,IAAKsnD,aACnE,CAEA,OAAI6U,EAAkB,OACfC,CACT,CAEO,SAASpE,GAAawE,EAAWxH,EAAQC,EAAOF,GACrD,IAAKyH,EAAW,OAAOA,EAEvB,IACIC,ED/RAtrB,EAGEurB,EC2RFra,EAAQ,UAGZ,GAAIma,EAAU,aAEZna,EAAQgS,GADRoI,EAAUD,EAAU,aACe,CAAC,QAAS,aAE1C,GAAIA,EAAU,eAAgB,CAGjCna,EAAQwS,GADU,KAAOR,GADzBoI,EAAUD,EAAU,eACgC,CAAC,QAAS,QACnBzH,EAASC,EAAQC,IAAU,SACxE,MACK,GAAIuH,EAAU,cAAe,CAEhC,IAAMG,GADNF,EAAUD,EAAU,eACoB,MAClCxpD,GAA+C,IAAxC2pD,EAAoB,EAAEhgE,QAAQ,KAAeggE,EAAoB,EAAElrD,MAAM,KAAKgD,QAAUkoD,EAAoB,EACnH7pD,GAAiD,IAAxC6pD,EAAoB,EAAEhgE,QAAQ,KAAeggE,EAAoB,EAAElrD,MAAM,KAAKgD,QAAUkoD,EAAoB,EACrH/pD,GAAgD,IAAxC+pD,EAAoB,EAAEhgE,QAAQ,KAAeggE,EAAoB,EAAElrD,MAAM,KAAKgD,QAAUkoD,EAAoB,EAC1Hta,EAAQ9gD,GAAahE,OAAOyV,GAAO,IAArB,KAA6BzR,GAAahE,OAAOuV,GAAS,IAAvB,KAA+BvR,GAAahE,OAAOqV,GAAQ,IAAtB,IACxF,MACK,GAAI4pD,EAAU,aAAc,CAE/B,IAAMI,EAAUvI,GADhBoI,EAAUD,EAAU,aACuB,CAAC,QAAS,SDhTrC,KADZE,EAFY,CAAC,QAAS,YAAa,eAAgB,OAAQ,aAAc,QAAS,QAAS,SAAU,QAAS,iBAAkB,OAAQ,aAAc,QAAS,YAAa,YAAa,aAAc,YAAa,QAAS,iBAAkB,WAAY,UAAW,OAAQ,WAAY,WAAY,gBAAiB,WAAY,WAAY,YAAa,YAAa,cAAe,iBAAkB,aAAc,aAAc,UAAW,aAAc,eAAgB,gBAAiB,gBAAiB,gBAAiB,gBAAiB,aAAc,WAAY,cAAe,UAAW,UAAW,aAAc,YAAa,cAAe,cAAe,UAAW,YAAa,aAAc,OAAQ,YAAa,OAAQ,OAAQ,QAAS,cAAe,WAAY,UAAW,YAAa,SAAU,QAAS,QAAS,WAAY,gBAAiB,YAAa,eAAgB,YAAa,aAAc,YAAa,uBAAwB,YAAa,YAAa,aAAc,YAAa,cAAe,gBAAiB,eAAgB,iBAAkB,iBAAkB,iBAAkB,cAAe,OAAQ,YAAa,QAAS,UAAW,SAAU,mBAAoB,aAAc,eAAgB,eAAgB,iBAAkB,kBAAmB,oBAAqB,kBAAmB,kBAAmB,eAAgB,YAAa,YAAa,WAAY,cAAe,OAAQ,UAAW,QAAS,YAAa,SAAU,YAAa,SAAU,gBAAiB,YAAa,gBAAiB,gBAAiB,aAAc,YAAa,OAAQ,OAAQ,OAAQ,aAAc,SAAU,gBAAiB,MAAO,YAAa,YAAa,cAAe,SAAU,aAAc,WAAY,WAAY,SAAU,SAAU,UAAW,YAAa,YAAa,YAAa,OAAQ,cAAe,YAAa,MAAO,OAAQ,UAAW,SAAU,YAAa,SAAU,QAAS,QAAS,aAAc,SAAU,eAE52D//D,QCkTAigE,MDjTNzrB,EAFJ,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UAEt7CurB,ICiTlCra,EDhTKlR,CCiTP,MACK,GAAIqrB,EAAU,YAAa,CAE9B,IAAMG,GADNF,EAAUD,EAAU,aACoB,MAIlCK,ED5dH,SAAkB/W,EAAKgX,EAAKC,GACjC,IAAI9G,EAQED,EAAa,EAAR+G,GALT9G,EADE8G,GAAS,GACNA,GAASD,EAAM,GAGfC,EAAQD,EAAOC,EAAQD,GAM9B,MAAO,CAAEx4C,EAH6B,IAA5ByxC,GAASC,EAAIC,EAAU,GARjCnQ,GAAY,KAWAl6C,EAFsB,IAAxBmqD,GAASC,EAAIC,EAAInQ,GAEZtqD,EADuB,IAA5Bu6D,GAASC,EAAIC,EAAInQ,EAAM,GAEnC,CC8coBjC,CAHJtmD,OAAOo/D,EAAsB,KAAK,IAClCp/D,QAAkD,IAA1Co/D,EAAsB,IAAEhgE,QAAQ,KAAeggE,EAAsB,IAAElrD,MAAM,KAAKgD,QAAUkoD,EAAsB,KAAK,IAC/Hp/D,QAAkD,IAA1Co/D,EAAsB,IAAEhgE,QAAQ,KAAeggE,EAAsB,IAAElrD,MAAM,KAAKgD,QAAUkoD,EAAsB,KAAK,KAE3Ita,EAAQ9gD,GAAMs7D,EAAQv4C,GAAK/iB,GAAMs7D,EAAQjxD,GAAKrK,GAAMs7D,EAAQrhE,EAC9D,MACK,GAAIghE,EAAU,YAAa,CAE9B,IAAMQ,EAAS3I,GADfoI,EAAUD,EAAU,YACsB,CAAC,QAAS,YAChDQ,IAAQ3a,EAAQ2a,EACtB,CAEA,IAAIC,GAAU,EACRC,EAAQv/D,SAAS02D,GAAkBoI,EAAS,CAAC,UAAW,QAAS,SAAW,IAClF,IAAKhpE,MAAMypE,GAAQ,CACjB,IAAMC,EAAW/a,GAAUC,GAC3B8a,EAAShW,SAAS+V,GAClB7a,EAAQ8a,EAAS5V,SACjB0V,GAAU,CACZ,CAEA,IAAMG,EAASz/D,SAAS02D,GAAkBoI,EAAS,CAAC,WAAY,QAAS,SAAW,IAC/EhpE,MAAM2pE,KACT/a,ED5XG,SAAqBgb,EAAQC,EAAYL,GAC9C,IAAM5a,EAAQD,GAAUib,GAAQjY,QAC5BmY,EAASlb,EAAMplB,EAAIqgC,EAEvB,OADIC,GAAU,MAAKA,GAAkB,KACjCN,EACK7a,GAAU,CACfnlB,EAAGsgC,EACH3kE,EAAGypD,EAAMzpD,EACTwM,EAAGi9C,EAAMj9C,EACTpF,EAAGqiD,EAAMriD,IACRunD,SAGEnF,GAAU,CACfnlB,EAAGsgC,EACH3kE,EAAGypD,EAAMzpD,EACTwM,EAAGi9C,EAAMj9C,EACTpF,EAAGqiD,EAAMriD,IACRuB,OACL,CCyWYi8D,CAAYnb,EAAO+a,EAAQH,IAErC,IAAMZ,EAAS1+D,SAAS02D,GAAkBoI,EAAS,CAAC,WAAY,QAAS,SAAW,IAC/EhpE,MAAM4oE,KACTha,EDrZG,SAAqBgb,EAAQC,EAAYL,GAC9C,IAAM5a,EAAQD,GAAUib,GAAQjY,QAC5BqY,EAASpb,EAAMj9C,EAAIk4D,EAEvB,OADIG,GAAU,IAAGA,EAAS,GACtBR,EACK7a,GAAU,CACfnlB,EAAGolB,EAAMplB,EACTrkC,EAAGypD,EAAMzpD,EACTwM,EAAGq4D,EACHz9D,EAAGqiD,EAAMriD,IACRunD,SAGEnF,GAAU,CACfnlB,EAAGolB,EAAMplB,EACTrkC,EAAGypD,EAAMzpD,EACTwM,EAAGq4D,EACHz9D,EAAGqiD,EAAMriD,IACRuB,OACL,CCkYYm8D,CAAYrb,EAAOga,EAAQY,IAErC,IAAMX,EAAS3+D,SAAS02D,GAAkBoI,EAAS,CAAC,WAAY,QAAS,SAAW,IAC/EhpE,MAAM6oE,KACTja,ED9bG,SAAqBgb,EAAQplE,EAAQglE,GAC1C,IAAM5a,EAAQD,GAAUib,GAAQjY,QAC1BmX,EAAMtkE,EAASoqD,EAAMj9C,EAC3B,OAAIm3D,GAAO,EACLU,EACK7a,GAAU,CACfnlB,EAAGolB,EAAMplB,EACTrkC,EAAGypD,EAAMzpD,EACTwM,EAAG,EACHpF,EAAGqiD,EAAMriD,IACRunD,SAGEnF,GAAU,CACfnlB,EAAGolB,EAAMplB,EACTrkC,EAAGypD,EAAMzpD,EACTwM,EAAG,EACHpF,EAAGqiD,EAAMriD,IACRuB,QAED07D,EACK7a,GAAU,CACfnlB,EAAGolB,EAAMplB,EACTrkC,EAAGypD,EAAMzpD,EACTwM,EAAGm3D,EACHv8D,EAAGqiD,EAAMriD,IACRunD,SAGEnF,GAAU,CACfnlB,EAAGolB,EAAMplB,EACTrkC,EAAGypD,EAAMzpD,EACTwM,EAAGm3D,EACHv8D,EAAGqiD,EAAMriD,IACRuB,OACL,CC2ZYo8D,CAAYtb,EAAOia,EAAQW,IAErC,IAAMW,EAASjgE,SAAS02D,GAAkBoI,EAAS,CAAC,WAAY,QAAS,SAAW,IAC/EhpE,MAAMmqE,KACTvb,EDnXG,SAAqBgb,EAAQC,EAAYL,GAC9C,IAAM5a,EAAQD,GAAUib,GAAQjY,QAC5ByY,EAASxb,EAAMzpD,EAAI0kE,EAEvB,OADIO,GAAU,IAAGA,EAAS,GACtBZ,EACK7a,GAAU,CACfnlB,EAAGolB,EAAMplB,EACTrkC,EAAGilE,EACHz4D,EAAGi9C,EAAMj9C,EACTpF,EAAGqiD,EAAMriD,IACRunD,SAGEnF,GAAU,CACfnlB,EAAGolB,EAAMplB,EACTrkC,EAAGilE,EACHz4D,EAAGi9C,EAAMj9C,EACTpF,EAAGqiD,EAAMriD,IACRuB,OACL,CCgWYu8D,CAAYzb,EAAOub,EAAQX,IAErC,IAAMrH,EAAQj4D,SAAS02D,GAAkBoI,EAAS,CAAC,UAAW,QAAS,SAAW,IAC7EhpE,MAAMmiE,KACTvT,EDhfG,SAAoBgb,EAAQU,EAAYd,GAC7C,IAAM5a,EAAQD,GAAUib,GAAQjY,QAC5B2Y,GAAc,IAAGA,EAAa,GAClC,IAAMN,EAAS1kE,KAAK4F,IAAI0jD,EAAMj9C,EAAI24D,EAAY,GAC9C,OAAId,EACK7a,GAAU,CACfnlB,EAAGolB,EAAMplB,EACTrkC,EAAGypD,EAAMzpD,EACTwM,EAAGq4D,EACHz9D,EAAGqiD,EAAMriD,IACRunD,SAGEnF,GAAU,CACfnlB,EAAGolB,EAAMplB,EACTrkC,EAAGypD,EAAMzpD,EACTwM,EAAGq4D,EACHz9D,EAAGqiD,EAAMriD,IACRuB,OACL,CC6dYy8D,CAAW3b,EAAOuT,EAAOqH,IAEnC,IAAMgB,EAAOtgE,SAAS02D,GAAkBoI,EAAS,CAAC,SAAU,QAAS,SAAW,IAOhF,OANKhpE,MAAMwqE,KACT5b,ED/dG,SAAmBgb,EAAQa,EAAWjB,GAC3C,IAAM5a,EAAQD,GAAUib,GAAQjY,QAC5B8Y,GAAa,IAAGA,EAAY,GAChC,IAAMT,EAASpb,EAAMj9C,EAAI84D,GAAa,EAAIA,GAC1C,OAAIjB,EACK7a,GAAU,CACfnlB,EAAGolB,EAAMplB,EACTrkC,EAAGypD,EAAMzpD,EACTwM,EAAGq4D,EACHz9D,EAAGqiD,EAAMriD,IACRunD,SAGEnF,GAAU,CACfnlB,EAAGolB,EAAMplB,EACTrkC,EAAGypD,EAAMzpD,EACTwM,EAAGq4D,EACHz9D,EAAGqiD,EAAMriD,IACRuB,OACL,CC4cY48D,CAAU9b,EAAO4b,EAAMhB,IAG7B5a,IAAiC,IAAxBA,EAAM1lD,QAAQ,OAAa0lD,EAAQ,IAAMA,GAE/CA,CACT,CCnhBA,SAAS+b,GAAiBC,GACxB,IAAMC,EAAU,GAChB,IAAKD,EAAS,OAAOC,EAErB,GAAID,EAAQ,UAAW,CACrB,IAAIE,EAAU,GACdnK,GAAYiK,EAAQ,UAAU,YAAY,cAAc,SAAS,SAAAG,GAE/D,OADAD,EAAQprE,KAAKogE,WAAWiL,EAAU,SAC3B,EACT,IACAF,EAAQnrE,KAAKorE,GACbA,EAAU,GACVnK,GAAYiK,EAAQ,UAAU,YAAY,cAAc,SAAS,SAAAG,GAE/D,OADAD,EAAQprE,KAAKogE,WAAWiL,EAAU,SAC3B,EACT,IACAF,EAAQnrE,KAAKorE,EACf,MAEEnK,GAAYiK,GAAS,SAACG,EAAW5xD,GAC/B,IAAM2xD,EAAU,GACVE,EAAUpK,GAAkBmK,EAAW,CAAC,OAAQ,WAAY,aAAc,OAAQ,SAAW5xD,EAE7F8xD,EAAW,CAAA,EA6BjB,OA5BIrK,GAAkBmK,EAAW,CAAC,QAAS,WAAY,aAAc,SACnEpK,GAAYoK,EAAU,SAAS,YAAY,cAAc,SAAS,SAAAA,GAEhE,OADAE,EAASF,EAAiB,MAAO,KAAKA,EAAU,OACzC,EACT,IAEOnK,GAAkBmK,EAAW,CAAC,QAAS,WAAY,aAAc,UACxEpK,GAAYoK,EAAU,SAAS,YAAY,cAAc,SAAS,SAAAA,GAEhE,OADAE,EAASF,EAAiB,MAAO,KAAKA,EAAU,OACzC,EACT,IAGEnK,GAAkBmK,EAAW,CAAC,QAAS,WAAY,aAAc,UACnEpK,GAAYoK,EAAU,SAAS,YAAY,cAAc,SAAS,SAAAA,GAKhE,OAJAD,EAAQprE,KAAK,CACX8M,EAAGu+D,EAAiB,MAAO,IAC3Bt+D,EAAGqzD,WAAWiL,EAAU,UAEnB,EACT,IAGFF,EAAQnrE,KAAK,CACX3G,IAAKiyE,EACL3tE,OAAQytE,EACRI,QAASD,IAEJ,EACT,IAGF,OAAOJ,CACT,CAEO,SAASM,GAAaC,GAC3B,IAAIC,EAAQ,KACZ,IAAK,IAAMtyE,KAAOqyE,EAChB,OAAQryE,GACN,IAAK,cACHsyE,EAAQ,CACNzuE,KAAM,YACN+K,KAAMgjE,GAAiBS,EAASryE,GAAK,UACrCuyE,SAAU1K,GAAkBwK,EAASryE,GAAM,CAAC,aAAc,QAAS,QACnEwa,SAAQ63D,EAASryE,GAAK,aAExB,MACF,IAAK,gBACHsyE,EAAQ,CACNzuE,KAAM,cACN+K,KAAMgjE,GAAiBS,EAASryE,GAAK,UACrCuyE,SAAU1K,GAAkBwK,EAASryE,GAAM,CAAC,aAAc,QAAS,SAErE,MACF,IAAK,aACHsyE,EAAQ,CACNzuE,KAAM,WACN+K,KAAMgjE,GAAiBS,EAASryE,GAAK,UACrCuyE,SAAU1K,GAAkBwK,EAASryE,GAAM,CAAC,aAAc,QAAS,QACnEwyE,OAAQ3K,GAAkBwK,EAASryE,GAAM,CAAC,WAAY,QAAS,SAEjE,MACF,IAAK,eACHsyE,EAAQ,CACNzuE,KAAM,aACN+K,KAAMgjE,GAAiBS,EAASryE,GAAK,UACrCuyE,SAAU1K,GAAkBwK,EAASryE,GAAM,CAAC,aAAc,QAAS,QACnEwyE,OAAQ3K,GAAkBwK,EAASryE,GAAM,CAAC,WAAY,QAAS,SAEjE,MACF,IAAK,aACHsyE,EAAQ,CACNzuE,KAAM,WACN+K,KAAMgjE,GAAiBS,EAASryE,GAAK,WAEvC,MACF,IAAK,eACHsyE,EAAQ,CACNzuE,KAAM,aACN+K,KAAMgjE,GAAiBS,EAASryE,GAAK,WAEvC,MACF,IAAK,kBACHsyE,EAAQ,CACNzuE,KAAM,gBACN+K,KAAMgjE,GAAiBS,EAASryE,GAAK,UACrCyyE,SAAU5K,GAAkBwK,EAASryE,GAAM,CAAC,aAAc,QAAS,SAErE,MACF,IAAK,cACHsyE,EAAQ,CACNzuE,KAAM,YACN+K,KAAMgjE,GAAiBS,EAASryE,GAAK,UACrCuyE,SAAU1K,GAAkBwK,EAASryE,GAAM,CAAC,aAAc,QAAS,SAErE,MACF,IAAK,gBACHsyE,EAAQ,CACNzuE,KAAM,cACN+K,KAAMgjE,GAAiBS,EAASryE,GAAK,UACrCuyE,SAAU1K,GAAkBwK,EAASryE,GAAM,CAAC,aAAc,QAAS,SAErE,MACF,IAAK,iBACHsyE,EAAQ,CACNzuE,KAAM,eACN+K,KAAMgjE,GAAiBS,EAASryE,GAAK,UACrCqjB,MAAOwkD,GAAkBwK,EAASryE,GAAM,CAAC,iBAAkB,QAAS,SAEtE,MACF,IAAK,gBACHsyE,EAAQ,CACNzuE,KAAM,cACN+K,KAAMgjE,GAAiBS,EAASryE,GAAK,WAEvC,MACF,IAAK,eACHsyE,EAAQ,CACNzuE,KAAM,aACN+K,KAAMgjE,GAAiBS,EAASryE,GAAK,UACrCqjB,MAAOwkD,GAAkBwK,EAASryE,GAAM,CAAC,eAAgB,QAAS,SAEpE,MACF,IAAK,iBACHsyE,EAAQ,CACNzuE,KAAM,eACN+K,KAAMgjE,GAAiBS,EAASryE,GAAK,WAEvC,MACF,IAAK,mBACHsyE,EAAQ,CACNzuE,KAAM,iBACN+K,KAAMgjE,GAAiBS,EAASryE,GAAK,WAEvC,MACF,IAAK,eACHsyE,EAAQ,CACNzuE,KAAM,aACN+K,KAAMgjE,GAAiBS,EAASryE,GAAK,WAO7C,OAAOsyE,CACT,CC1KO,SAASI,GAAmBt9C,EAAMu9C,EAAO9uE,EAAM0kE,GACpD,IAAIqK,EAAO/K,GAAkBzyC,EAAM,CAAC,QAAS,QAAS,SAGtD,GAFKw9C,IAAMA,EAAO/K,GAAkB8K,EAAO,CAAC,QAAS,QAAS,WAEzDC,EACH,GAAa,UAAT/uE,GAA6B,aAATA,GAAgC,aAATA,EAAqB,CAClE,IAAIgvE,EAAS,EACPC,EAAUjL,GAAkB8K,EAAO,CAAC,QAAS,QAAS,QACxDG,IACFD,EAAS1hE,SAAS2hE,GAAW,GAE/B,IAAMC,EAAS,QAAUF,EAAS,OAClCD,EAAO/K,GAAkBU,EAAS,CAAC,oBAAqB,YAAa1kE,EAAM,WAAY,aAAckvE,EAAQ,QAAS,YAC3GH,EAAO/K,GAAkBU,EAAS,CAAC,oBAAqB,YAAa1kE,EAAM,WAAY,aAAckvE,EAAQ,QAAS,UAC5HH,IAAMA,EAAO/K,GAAkBU,EAAS,CAAC,wBAAyB,eAAgBwK,EAAQ,QAAS,UACnGH,GAAiB,aAAT/uE,IACX+uE,EAAO/K,GAAkBU,EAAS,CAAC,wBAAyB,cAAewK,EAAQ,QAAS,SAEhG,MAEEH,EAAO/K,GAAkBU,EADT,SAAT1kE,EAC2B,CAAC,wBAAyB,cAAe,YAAa,QAAS,QAG/D,CAAC,oBAAqB,YAAaA,EAAM,WAAY,aAAc,YAAa,QAAS,SAI/H,IAAImvE,EAAQ,OACZ,GAAIJ,EACF,OAAQA,GACN,IAAK,IACHI,EAAQ,OACR,MACF,IAAK,IACHA,EAAQ,QACR,MACF,IAAK,MACHA,EAAQ,SACR,MACF,IAAK,OAGL,IAAK,OACHA,EAAQ,UACR,MACF,QACEA,EAAQ,UAGd,OAAOA,CACT,CCpDO,IAEMC,GADsB,GADF,OCE1B,SAASC,GAAYC,EAAaC,EAAmBC,GAC1D,IAAIr4D,EAMJ,OAJIm4D,EAAan4D,EAAMm4D,EAAY,SAAgB,MAC1CC,EAAmBp4D,EAAMo4D,EAAkB,SAAgB,MAC3DC,IAAmBr4D,EAAMq4D,EAAkB,SAAgB,OAE/Dr4D,EAEE,CACLiiC,IAAK9rC,SAAS6J,EAAO,GAAKi4D,GAC1B50B,KAAMltC,SAAS6J,EAAO,GAAKi4D,IAJZ,CAAEh2B,IAAK,EAAGoB,KAAM,EAMnC,CAEO,SAASi1B,GAAQH,EAAaC,EAAmBC,GACtD,IAAIn+D,EAMJ,OAJIi+D,EAAaj+D,EAAMi+D,EAAY,SAAgB,MAC1CC,EAAmBl+D,EAAMk+D,EAAkB,SAAgB,MAC3DC,IAAmBn+D,EAAMm+D,EAAkB,SAAgB,OAE/Dn+D,EAEE,CACLq+D,MAAOpiE,SAAS+D,EAAQ,IAAK+9D,GAC7BO,OAAQriE,SAAS+D,EAAQ,IAAK+9D,IAJf,CAAEM,MAAO,EAAGC,OAAQ,EAMvC,CC3BO,SAASC,GAAUr+C,EAAMmzC,GAC9B,IAAMmL,EAAclI,GAAap2C,OAAMzzB,OAAWA,EAAW4mE,GACvDoL,EAAiBv+C,EAAY,MAC7BnlB,EAAM0jE,EAAoB,IAAKxiE,SAASwiE,EAAoB,KAAK,IAAS,EAC1E3lC,EAAO78B,SAASwiE,EAAqB,MAAKV,GAC1CW,EAAUD,EAAwB,QAAIxiE,SAASwiE,EAAwB,SAAKV,GAAoB,GAChGY,EAAK7lC,EAAOzhC,KAAKunE,IAAI7jE,EAAM1D,KAAKwnE,GAAK,KAG3C,MAAO,CACLtjC,EAHSzC,EAAOzhC,KAAKynE,IAAI/jE,EAAM1D,KAAKwnE,GAAK,KAIzC/rD,EAAG6rD,EACHI,KAAML,EACN/d,MAAO6d,EAEX,yhCCFO,SAASQ,GAAYC,EAAcC,EAAQhB,EAAmBvvE,EAAM0kE,GACzE,IAAK4L,EAAc,MAAO,GAE1B,IAS0Bpf,EATtB/9B,EAAO,GAELq9C,EAAaxM,GAAkBuM,EAAQ,CAAC,UAAW,cAEnDzB,EAAQwB,EAAa,OAGvBG,EAAS,GAAEtf,EAAAC,GAFA0d,EAAM1wE,cAAgBmI,MAAQuoE,EAAQ,CAACA,IAI5B,IAA1B,IAA4B3d,EAAA5oD,MAAA2oD,EAAAC,EAAAjlD,KAAA/O,MAAA,CAAA,IAAjB2xE,EAAK5d,EAAA90D,MACVs0E,EAAQ5B,EAAM,OACd6B,EAAU7B,EAAM,SAChB8B,EAAS9B,EAAM,QACf4B,IACFA,EAASA,EAAMtyE,cAAgBmI,MAASmqE,EAAQ,CAACA,GAE7CC,IACFA,EAAWA,EAAQvyE,cAAgBmI,MAASoqE,EAAU,CAACA,GACvDD,EAAQA,EAAM5gE,OAAO6gE,IAEnBC,KACFA,EAAUA,EAAOxyE,cAAgBmI,MAASqqE,EAAS,CAACA,IAC7ChwE,SAAQ,SAAAiwE,GAAI,OAAIA,EAAK7wE,KAAO,QAE/B4wE,EAAOvtE,OAAS,GAAGutE,EAAOxsD,SAC9BssD,EAAQA,EAAM5gE,OAAO8gE,IACf9I,MAAK,SAACn4D,EAAGxE,GACb,OAAKwE,EAAEqhD,QAAU7lD,EAAE6lD,OACZrhD,EAAEqhD,MAAMjU,MAAQ5xC,EAAE6lD,MAAMjU,KACjC,MAIJ,IAAMoyB,EAAQN,GAAmBC,EAAOyB,EAAQvwE,EAAM0kE,GAEhDoM,EAAWC,GAAYjC,GAqB7B,GApBIgC,GACGL,EAIIA,GAAUA,IAAWK,IAC5B39C,GAAI,KAAArjB,OAAS2gE,EAAS,KACtBt9C,GAAI,IAAArjB,OAAQghE,EAAW,KACvBL,EAASK,IANT39C,GAAI,IAAArjB,OAAQghE,EAAW,KACvBL,EAASK,GAOX39C,GAAI,0BAAArjB,OAA8Bq/D,EAAU,SAGxCsB,IACFt9C,GAAI,KAAArjB,OAAS2gE,EAAS,KACtBA,EAAS,IAEXt9C,GAAI,yBAAArjB,OAA6Bq/D,EAAU,QAGxCuB,EACA,CAAA,IAC0BM,EAD1BC,EAAA7f,GACqBsf,GAAK,IAA7B,IAA+BO,EAAA1oE,MAAAyoE,EAAAC,EAAA/kE,KAAA/O,MAAA,CAC7Bg2B,GAAQ+9C,GADUF,EAAA50E,MACgB0yE,EAAOwB,EAAcE,EAAYjB,EAAmBvvE,EAAM0kE,EAC9F,CAAC,CAAA,MAAA7mE,GAAAozE,EAAAjpE,EAAAnK,EAAA,CAAA,QAAAozE,EAAA7zD,GAAA,CACH,MALY+V,GAAQ+9C,GAAepC,EAAOyB,EAAQD,EAAcE,EAAYjB,EAAmBvvE,EAAM0kE,GAOvFvxC,GAAV29C,EAAkB,QACT,MACf,CAAC,CAAA,MAAAjzE,GAAAszD,EAAAnpD,EAAAnK,EAAA,CAAA,QAAAszD,EAAA/zC,GAAA,CACD,OAAO+V,CACT,CAEO,SAAS49C,GAAYx/C,GAC1B,IAAM4/C,EAAU5/C,EAAK,SACrB,OAAK4/C,EAEDA,EAAQ,YAAoB,KAC5BA,EAAQ,eAAuB,KAE5B,GALc,EAMvB,CAEO,SAASD,GAAe3/C,EAAMu9C,EAAOwB,EAAcE,EAAYjB,EAAmBvvE,EAAM0kE,GAC7F,IAAM0M,EAAWd,EAAa,cACxBe,EAAwB3M,EAA+B,sBAEzD4M,EAAM,EAEJrC,EAAUjL,GADA8K,EAAM,SACqB,CAAC,QAAS,aACrChxE,IAAZmxE,IAAuBqC,EAAMhkE,SAAS2hE,GAAW,GAErD,IAAI97C,EAAO5B,EAAK,OACI,iBAAT4B,IAAmBA,EAAO6wC,GAAkBzyC,EAAM,CAAC,QAAS,SACnD,iBAAT4B,IAAmBA,EAAO,UAErC,IAAIo+C,EAAY,GACVC,ECxFD,SAAsBjgD,EAAMu9C,EAAOsC,EAAUZ,EAAYc,EAAK5M,GACnE,IACY1S,EADNyf,EAAUzN,GAAkBzyC,EAAM,CAAC,UASzC,GAPIkgD,GAEa,eADN5L,GAAY4L,KAGnBzf,EAAQ2V,GADc8J,EAAQ,oBACM3zE,OAAWA,EAAW4mE,KAGzD1S,GAASgS,GAAkBoN,EAAU,CAAC,QAAUE,EAAM,MAAO,aAAc,CAC9E,IAAMI,EAAiB1N,GAAkBoN,EAAU,CAAC,QAAUE,EAAM,MAAO,aAE5D,eADNzL,GAAY6L,KAGnB1f,EAAQ2V,GADc+J,EAAe,oBACD5zE,OAAWA,EAAW4mE,GAE9D,CACA,IAAK1S,EAAO,CACV,IAAM2f,EAAU3N,GAAkB8K,EAAO,CAAC,UAAW,cACjD6C,IAAS3f,EAAQ2V,GAAagK,OAAS7zE,OAAWA,EAAW4mE,KAC5D1S,GAASwe,IAAYxe,EAAQ2V,GAAa6I,OAAY1yE,OAAWA,EAAW4mE,GACnF,CACA,OAAO1S,GAAS,EAClB,CDgEoB4f,CAAargD,EAAMu9C,EAAOsC,EAAUZ,EAAYc,EAAK5M,GACjEmN,EC/DD,SAAqBtgD,EAAMg+C,EAAmBvvE,EAAMqxE,GACzD,IAAIQ,EAUEC,EANN,GAFI9N,GAAkBzyC,EAAM,CAAC,QAAS,QAAS,SAAQsgD,EAAW7N,GAAkBzyC,EAAM,CAAC,QAAS,QAAS,OAAS,KAEjHnuB,MAAMyuE,KAAcA,EAAW,CAClC,IAAMC,EAAK9N,GAAkBuL,EAAmB,CAAC,WAAY,aAAc,YAAa,WAAY,QAAS,OAC7GsC,EAAWvkE,SAASwkE,GAAM,GAC5B,CAwBA,OAtBI1uE,MAAMyuE,IAAcA,IAET,UAAT7xE,GAA6B,aAATA,GAAgC,aAATA,EAC7C8xE,EAAK9N,GAAkBqN,EAAuB,CAAC,eAAgB,YAAa,WAAY,QAAS,OAEjF,SAATrxE,EACP8xE,EAAK9N,GAAkBqN,EAAuB,CAAC,cAAe,YAAa,WAAY,QAAS,OAEhF,OAATrxE,GAA0B,WAATA,EACxB8xE,EAAK,OAEG9xE,IACR8xE,EAAK9N,GAAkBqN,EAAuB,CAAC,eAAgB,YAAa,WAAY,QAAS,QAE/FS,IAAID,EAAWvkE,SAASwkE,GAAM,MAGnB9N,GAAkBzyC,EAAM,CAAC,QAAS,QAAS,eAC3CnuB,MAAMyuE,KAAWA,GAAY,KAE9CA,EAAYzuE,MAAMyuE,KAAcA,EAAY,GAAKA,GAE/B,IACpB,CD8BmBE,CAAYxgD,EAAMg+C,EAAmBvvE,EAAMqxE,GACtDW,EC9GD,SAAqBzgD,EAAMvxB,EAAM0kE,GACtC,IAAIuN,EAAWjO,GAAkBzyC,EAAM,CAAC,QAAS,UAAW,QAAS,aAErE,IAAK0gD,EAAU,CACb,IAAMC,EAAiBlO,GAAkBU,EAAsB,aAAG,CAAC,UAAW,kBAAmB,iBAG/FuN,EAAWjO,GAAkBkO,EADlB,UAATlyE,GAA6B,aAATA,GAAgC,aAATA,EACA,CAAC,cAAe,UAAW,QAAS,YAGpC,CAAC,cAAe,UAAW,QAAS,YAKrF,CAEA,OAAOiyE,GAAY,EACrB,CD4FmBE,CAAY5gD,EAAMvxB,EAAM0kE,GACnC0N,EC9BD,SAAqB7gD,GAC1B,MAA4D,MAArDyyC,GAAkBzyC,EAAM,CAAC,QAAS,QAAS,MAAgB,OAAS,EAC7E,CD4BmB8gD,CAAY9gD,GACvB+gD,EC3BD,SAAuB/gD,GAC5B,MAA4D,MAArDyyC,GAAkBzyC,EAAM,CAAC,QAAS,QAAS,MAAgB,SAAW,EAC/E,CDyBqBghD,CAAchhD,GAC3BihD,ECxBD,SAA2BjhD,GAChC,MAA4D,QAArDyyC,GAAkBzyC,EAAM,CAAC,QAAS,QAAS,MAAkB,YAAc,EACpF,CDsByBkhD,CAAkBlhD,GACnCmhD,ECrBD,SAA+BnhD,GACpC,MAAiE,cAA1DyyC,GAAkBzyC,EAAM,CAAC,QAAS,QAAS,WAA6B,eAAiB,EAClG,CDmB6BohD,CAAsBphD,GAC3CqhD,EClBD,SAAsBrhD,GAC3B,IAAMshD,EAAM7O,GAAkBzyC,EAAM,CAAC,QAAS,QAAS,QACvD,OAAOshD,EAAOvlE,SAASulE,GAAO,IAAM,KAAQ,EAC9C,CDeoBC,CAAavhD,GACzBwhD,ECRD,SAAuBxhD,EAAMmzC,GAClC,IAAMsO,EAAYhP,GAAkBzyC,EAAM,CAAC,QAAS,cAAe,gBACnE,GAAIyhD,EAAW,CACb,IAAMD,EAASnD,GAAUoD,EAAWtO,GACpC,GAAIqO,EAAQ,CACV,IAAQnmC,EAAsBmmC,EAAtBnmC,EAAGzoB,EAAmB4uD,EAAnB5uD,EAAGisD,EAAgB2C,EAAhB3C,KAAMpe,EAAU+gB,EAAV/gB,MACpB,IAAK5uD,MAAM+gB,KAAO/gB,MAAMwpC,GACtB,OAAOA,EAAI,MAAQzoB,EAAI,OAASisD,EAAOA,EAAO,KAAO,IAAM,IAAMpe,CAErE,CACF,CACA,MAAO,EACT,CDJiBihB,CAAc1hD,EAAMmzC,GAC7BwO,ECfD,SAA0B3hD,GAC/B,IAAM4hD,EAAWnP,GAAkBzyC,EAAM,CAAC,QAAS,QAAS,aAC5D,OAAK4hD,EACE7lE,SAAS6lE,GAAY,EAAI,QAAU,MADpB,EAExB,CDWoBC,CAAiB7hD,GAE/BigD,IAAWD,GAAS,UAAAzhE,OAAc0hE,EAAY,MAC9CK,IAAUN,GAAS,cAAAzhE,OAAkB+hE,EAAW,MAChDG,IAAUT,GAAS,gBAAAzhE,OAAoBkiE,EAAW,MAClDI,IAAUb,GAAS,gBAAAzhE,OAAoBsiE,EAAW,MAClDE,IAAYf,GAAS,eAAAzhE,OAAmBwiE,EAAa,MACrDE,IAAgBjB,GAAS,oBAAAzhE,OAAwB0iE,EAAiB,MAClEE,IAAoBnB,GAAS,yBAAAzhE,OAA6B4iE,EAAqB,MAC/EE,IAAWrB,GAAS,mBAAAzhE,OAAuB8iE,EAAY,MACvDM,IAAW3B,GAAS,mBAAAzhE,OAAuBojE,EAAY,MACvDH,IAAQxB,GAAS,gBAAAzhE,OAAoBijE,EAAS,MAElD,IAAMM,EAASrP,GAAkBzyC,EAAM,CAAC,QAAS,eAAgB,QAAS,SAC1E,GAAI8hD,EAAQ,CACV,IAAMC,EAAU5O,EAAqB,YAAE2O,GAAgB,OACvD,MAAA,gBAAAvjE,OAAuByhE,EAAuB+B,eAAAA,OAAAA,+BAA4BngD,EAAK/d,QAAQ,MAAO,4BAA4BA,QAAQ,MAAO,UAAS,cACpJ,CACA,MAAA,gBAAAtF,OAAuByhE,EAAcp+C,MAAAA,OAAAA,EAAK/d,QAAQ,MAAO,4BAA4BA,QAAQ,MAAO,UAAS,UAC/G,CE1IO,SAASm+D,GAASC,EAAIC,EAAIC,EAAIC,EAAIC,EAAOC,EAAQC,GACtD,IAAIC,EACA7P,EAAQ0P,EACZ,GAAIC,GAAUD,EACZ,KAAO1P,GAAS2P,GAAQ,CACtB,IAAMG,EAAU9P,GAASx7D,KAAKwnE,GAAK,KAC7BtgE,EAAI4jE,EAAK9qE,KAAKynE,IAAI6D,GAAWN,EAC7B7jE,EAAI4jE,EAAK/qE,KAAKunE,IAAI+D,GAAWL,EAC/BzP,IAAU0P,IACZG,EAAQ,KAAOnkE,EAAI,IAAMC,GAE3BkkE,GAAS,KAAOnkE,EAAI,IAAMC,EAC1Bq0D,GACF,MAGA,KAAOA,EAAQ2P,GAAQ,CACrB,IAAMG,EAAU9P,GAASx7D,KAAKwnE,GAAK,KAC7BtgE,EAAI4jE,EAAK9qE,KAAKynE,IAAI6D,GAAWN,EAC7B7jE,EAAI4jE,EAAK/qE,KAAKunE,IAAI+D,GAAWL,EAC/BzP,IAAU0P,IACZG,EAAQ,MAAQnkE,EAAI,IAAMC,GAE5BkkE,GAAS,MAAQnkE,EAAI,IAAMC,EAC3Bq0D,GACF,CAGF,OADA6P,GAAUD,EAAU,KAAO,EAE7B,CCcO,SAASG,GAAmBC,EAAQC,EAAcC,EAAY1P,GACnE,IAIIqH,EACAyF,EACAY,EAQEiC,EAOFC,EArBEC,EAAUvQ,GAAkBkQ,EAAQ,CAAC,QAAS,YAC9CM,EAAUxQ,GAAkBkQ,EAAQ,CAAC,QAAS,aAC9CO,EAASzQ,GAAkBkQ,EAAQ,CAAC,QAAS,WAC7CQ,EAAS1Q,GAAkBkQ,EAAQ,CAAC,QAAS,WAK7CS,EAAa3Q,GAAkBkQ,EAAQ,CAAC,WAC1CS,IAEF5I,EAAYF,GADI,CAAE,SAAU8I,QACM72E,EAAW4mE,IAE1CqH,IAECqI,IAAYC,EAAkBrQ,GAAkBmQ,EAAc,CAACC,EAAY,YAAa,SAAU,iBAClGC,IACFtI,EAAYpE,GAAa0M,OAAiBv2E,OAAWA,EAAW4mE,KAWpE,OANI0P,IAAYE,EAAatQ,GAAkBmQ,EAAc,CAACC,EAAY,iBACtEE,IACF9C,EAAY7J,GAAa2M,OAAYx2E,OAAWA,EAAW4mE,GACL,OAAlDV,GAAkBsQ,EAAY,CAAC,QAAS,QAAgBlC,GAAW,IAGlE,CACLrG,UAAAA,EACAyF,UAAAA,EACAY,SAAAA,EACAmC,QAASA,GAAWA,OAAUz2E,EAC9B02E,QAASA,GAAWA,OAAU12E,EAC9B22E,OAAQA,GAAUA,OAAS32E,EAC3B42E,OAAQA,GAAUA,OAAS52E,EAE/B,CAEO,SAAS82E,GAAkBC,EAASvxE,EAAGwxE,EAAgBX,EAAczP,GAC1E,IAAIqH,EACAyF,EACAY,EAEJ,GAAI+B,GAAgBA,EAAa,cAAe,CAC9C,IAAME,EAAkBrQ,GAAkBmQ,EAAc,CAAC,aAAc,YAAa,SAAU,gBAC9F,GAAIE,EAAiB,CACnB,IAAMU,EAAkBpN,GAAa0M,OAAiBv2E,OAAWA,EAAW4mE,GACxEqQ,IAAiBhJ,EAAYgJ,EACnC,CACA,IAAMT,EAAatQ,GAAkBmQ,EAAc,CAAC,aAAc,gBAClE,GAAIG,EAAY,CACd,IAAMU,EAAkBrN,GAAa2M,OAAYx2E,OAAWA,EAAW4mE,GACnEsQ,IAAiBxD,EAAYwD,GACqB,OAAlDhR,GAAkBsQ,EAAY,CAAC,QAAS,QAAgBlC,GAAW,EACzE,CACF,CACA,GAAU,IAAN9uE,GAA+C,IAApCwxE,EAA8B,eAAWX,EAAc,CACpE,IAAME,EAAkBrQ,GAAkBmQ,EAAc,CAAC,aAAc,YAAa,SAAU,gBAC9F,GAAIE,EAAiB,CACnB,IAAMU,EAAkBpN,GAAa0M,OAAiBv2E,OAAWA,EAAW4mE,GACxEqQ,IAAiBhJ,EAAYgJ,EACnC,CACA,IAAMT,EAAatQ,GAAkBmQ,EAAc,CAAC,aAAc,gBAClE,GAAIG,EAAY,CACd,IAAMU,EAAkBrN,GAAa2M,OAAYx2E,OAAWA,EAAW4mE,GACnEsQ,IAAiBxD,EAAYwD,GACqB,OAAlDhR,GAAkBsQ,EAAY,CAAC,QAAS,QAAgBlC,GAAW,EACzE,CACF,MACK,GAAI9uE,EAAI,GAAyC,IAApCwxE,EAA8B,eAAWX,EAAc,CAEvE,GADApI,EAAY,GACPzoE,EAAI,GAAO,GAAK6wE,EAAa,YAAa,CAC7C,IAAME,EAAkBrQ,GAAkBmQ,EAAc,CAAC,WAAY,YAAa,SAAU,gBAC5F,GAAIE,EAAiB,CACnB,IAAMU,EAAkBpN,GAAa0M,OAAiBv2E,OAAWA,EAAW4mE,GACxEqQ,IAAiBhJ,EAAYgJ,EACnC,CACA,IAAMT,EAAatQ,GAAkBmQ,EAAc,CAAC,WAAY,gBAChE,GAAIG,EAAY,CACd,IAAMU,EAAkBrN,GAAa2M,OAAYx2E,OAAWA,EAAW4mE,GACnEsQ,IAAiBxD,EAAYwD,EACnC,CACsD,OAAlDhR,GAAkBsQ,EAAY,CAAC,QAAS,QAAgBlC,GAAW,EACzE,CACA,GAAK9uE,EAAI,GAAO,GAAK6wE,EAAa,YAAa,CAC7C,IAAME,EAAkBrQ,GAAkBmQ,EAAc,CAAC,WAAY,YAAa,SAAU,gBAC5F,GAAIE,EAAiB,CACnB,IAAMU,EAAkBpN,GAAa0M,OAAiBv2E,OAAWA,EAAW4mE,GACxEqQ,IAAiBhJ,EAAYgJ,EACnC,CACA,IAAMT,EAAatQ,GAAkBmQ,EAAc,CAAC,WAAY,gBAChE,GAAIG,EAAY,CACd,IAAMU,EAAkBrN,GAAa2M,OAAYx2E,OAAWA,EAAW4mE,GACnEsQ,IAAiBxD,EAAYwD,GACqB,OAAlDhR,GAAkBsQ,EAAY,CAAC,QAAS,QAAgBlC,GAAW,EACzE,CACF,CACF,CACA,GAAI9uE,IAAOuxE,EAAQxxE,OAAS,GAAyC,IAAnCyxE,EAA6B,cAAWX,EAAc,CACtF,IAAME,EAAkBrQ,GAAkBmQ,EAAc,CAAC,YAAa,YAAa,SAAU,gBAC7F,GAAIE,EAAiB,CACnB,IAAMU,EAAkBpN,GAAa0M,OAAiBv2E,OAAWA,EAAW4mE,GACxEqQ,IACFhJ,EAAYgJ,EAEhB,CACA,IAAMT,EAAatQ,GAAkBmQ,EAAc,CAAC,YAAa,gBACjE,GAAIG,EAAY,CACd,IAAMU,EAAkBrN,GAAa2M,OAAYx2E,OAAWA,EAAW4mE,GACnEsQ,IAAiBxD,EAAYwD,GACqB,OAAlDhR,GAAkBsQ,EAAY,CAAC,QAAS,QAAgBlC,GAAW,EACzE,CACF,CAEA,MAAO,CACLrG,UAAAA,EACAyF,UAAAA,EACAY,SAAAA,EAEJ,4lDCnIC,SAAA6C,KAAA,OAAAA,GAAA33E,EAAAkB,EAAAoF,MArBM,WAAqBy9C,GAAI,IAAA6zB,EAAAzwB,EAAA0wB,EAAAC,EAAA1F,EAAAC,EAAA0F,EAAAC,EAAAC,EAAAC,EAAAvwB,EAAAwwB,EAAA,OAAAj3E,EAAAY,MAAA,SAAAsyD,GAAA,OAAA,OAAAA,EAAAltD,KAAAktD,EAAAtvD,MAAA,KAAA,EACb,OAAX8yE,EAAS,GAAExjB,EAAAtvD,KAAA,EAECwrD,GAAME,UAAUzM,GAAK,KAAA,EAA9B,OAAHoD,EAAGiN,EAAA5vD,KAAA4vD,EAAAtvD,KAAA,EAEeszE,GAAgBjxB,GAAI,KAAA,EAA7B,OAAT0wB,EAASzjB,EAAA5vD,KAAA4vD,EAAAtvD,KAAA,EACmCuzE,GAAalxB,GAAI,KAAA,EAA5B,OAA4B2wB,EAAA1jB,EAAA5vD,KAA3D4tE,IAAAA,MAAOC,IAAAA,OAAQ0F,IAAAA,iBAAgB3jB,EAAAtvD,KAAA,GACZwzE,GAAUnxB,GAAI,KAAA,GAAnC6wB,EAAY5jB,EAAA5vD,KAAAyzE,EAEKJ,GAAAA,EAAUD,QAAMxjB,EAAAltD,KAAA,GAAA+wE,EAAAhtE,IAAA,KAAA,GAAA,IAAAitE,EAAAD,EAAArpE,KAAA/O,KAAA,CAAAu0D,EAAAtvD,KAAA,GAAA,KAAA,CAApB,OAAR6iD,EAAQuwB,EAAAp5E,MAAAs1D,EAAAtvD,KAAA,GACSyzE,GAAmBpxB,EAAKQ,EAAUqwB,EAAcD,GAAiB,KAAA,GAArFI,EAAW/jB,EAAA5vD,KACjBozE,EAAOpyE,KAAK2yE,GAAY,KAAA,GAAA/jB,EAAAtvD,KAAA,GAAA,MAAA,KAAA,GAAAsvD,EAAAtvD,KAAA,GAAA,MAAA,KAAA,GAAAsvD,EAAAltD,KAAA,GAAAktD,EAAAE,GAAAF,EAAA,MAAA,IAAA6jB,EAAAvtE,EAAA0pD,EAAAE,IAAA,KAAA,GAAA,OAAAF,EAAAltD,KAAA,GAAA+wE,EAAAn4D,IAAAs0C,EAAApsD,OAAA,IAAA,KAAA,GAAA,OAGnBosD,EAAAzvD,OAAA,SAAA,CACLizE,OAAAA,EACAhqE,KAAM,CACJwkE,MAAAA,EACAC,OAAAA,KAEH,KAAA,GAAA,IAAA,MAAA,OAAAje,EAAA/sD,OAAA,GAAA8sD,EAAA,KAAA,CAAA,CAAA,GAAA,GAAA,GAAA,KACF,MAAA7zD,MAAAH,KAAAE,UAAA,CAAA,SAEc+3E,GAAenkB,GAAA,OAAAukB,GAAAl4E,MAAAH,KAAAE,UAAA,CAAA,SAAAm4E,KA8B7B,OA9B6BA,GAAAx4E,EAAAkB,EAAAoF,MAA9B,WAA+B6gD,GAAG,IAAAsxB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAvF,EAAAwF,EAAA,OAAA73E,EAAAY,MAAA,SAAA+nE,GAAA,OAAA,OAAAA,EAAA3iE,KAAA2iE,EAAA/kE,MAAA,KAAA,EAAA,OAAA+kE,EAAA/kE,KAAA,EACDivD,GAAY5M,EAAK,uBAAsB,KAAA,EAAhEsxB,EAAgB5O,EAAArlE,KAChBk0E,EAASD,EAAwB,MAAY,SAC/CE,EAAiB,GACjBC,EAAuB,GAAEC,EAAA/kB,GAEV4kB,GAAM7O,EAAA3iE,KAAA,EAAA2xE,EAAA5tE,IAAA,KAAA,EAAA,IAAA6tE,EAAAD,EAAAjqE,KAAA/O,KAAA,CAAAgqE,EAAA/kE,KAAA,GAAA,KAAA,CAAdyuE,EAAIuF,EAAAh6E,MAAA+qE,EAAAvV,GACLif,EAAY,MAAe,YAAC1J,EAC7B/kE,KAAA,2EAAA+kE,EAAAvV,MAGA,sFAA8E,GAAA,GAAA,MAAA,KAAA,GAFzB,OAAxDqkB,EAAenzE,KAAK+tE,EAAY,MAAY,SAAEtjE,OAAO,IAAG45D,EAAAllE,OAAA,QAAA,IAAA,KAAA,GAGM,OAA9Di0E,EAAqBpzE,KAAK+tE,EAAY,MAAY,SAAEtjE,OAAO,IAAG45D,EAAAllE,OAAA,QAAA,IAAA,KAAA,GAAAklE,EAAA/kE,KAAA,EAAA,MAAA,KAAA,GAAA+kE,EAAA/kE,KAAA,GAAA,MAAA,KAAA,GAAA+kE,EAAA3iE,KAAA,GAAA2iE,EAAAxB,GAAAwB,EAAA,MAAA,GAAAgP,EAAAnuE,EAAAm/D,EAAAxB,IAAA,KAAA,GAAA,OAAAwB,EAAA3iE,KAAA,GAAA2xE,EAAA/4D,IAAA+pD,EAAA7hE,OAAA,IAAA,KAAA,GAYN,OANxD+wE,EAAe,SAACC,EAAIC,GAGxB,OAFY,aAAahmB,KAAK+lB,GAAI,IACtB,aAAa/lB,KAAKgmB,GAAI,IAGpCN,EAAiBA,EAAenO,KAAKuO,GACrCH,EAAuBA,EAAqBpO,KAAKuO,GAE1ClP,EAAAllE,OAAA,SAAA,CACLizE,OAAQe,EACRO,aAAcN,IACf,KAAA,GAAA,IAAA,MAAA,OAAA/O,EAAAxiE,OAAA,GAAAyiE,EAAA,KAAA,CAAA,CAAA,EAAA,GAAA,GAAA,KACF,MAAAxpE,MAAAH,KAAAE,UAAA,CAAA,SAEcg4E,GAAY3P,GAAA,OAAAyQ,GAAA74E,MAAAH,KAAAE,UAAA,CAAA,SAAA84E,KAS1B,OAT0BA,GAAAn5E,EAAAkB,EAAAoF,MAA3B,WAA4B6gD,GAAG,IAAA1hB,EAAA2zC,EAAArB,EAAA,OAAA72E,EAAAY,MAAA,SAAAqsE,GAAA,OAAA,OAAAA,EAAAjnE,KAAAinE,EAAArpE,MAAA,KAAA,EAAA,OAAAqpE,EAAArpE,KAAA,EACPivD,GAAY5M,EAAK,wBAAuB,KAAA,EAEU,OAFlE1hB,EAAO0oC,EAAA3pE,KACP40E,EAAa3zC,EAAQ,kBAAkB,WAAkB,MACzDsyC,EAAmBtyC,EAAQ,kBAAkB,sBAC5C0oC,EAAAxpE,OAAA,SAAA,CACLytE,MAAOpiE,SAASopE,EAAe,IAAKtH,GACpCO,OAAQriE,SAASopE,EAAe,IAAKtH,GACrCiG,iBAAAA,IACD,KAAA,EAAA,IAAA,MAAA,OAAA5J,EAAA9mE,OAAA,GAAAinE,EACF,MAAAhuE,MAAAH,KAAAE,UAAA,CAAA,SAEci4E,GAASnP,GAAA,OAAAkQ,GAAA/4E,MAAAH,KAAAE,UAAA,CAAA,SAAAg5E,KAmBvB,OAnBuBA,GAAAr5E,EAAAkB,EAAAoF,MAAxB,WAAyB6gD,GAAG,IAAAmyB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAz4E,EAAAY,MAAA,SAAA83E,GAAA,OAAA,OAAAA,EAAA1yE,KAAA0yE,EAAA90E,MAAA,KAAA,EAAA,OAAA80E,EAAA90E,KAAA,EACEivD,GAAY5M,EAAK,mCAAkC,KAAA,EACP,GADlEmyB,EAAaM,EAAAp1E,MACb+0E,EAAoBD,EAA6B,cAAgB,cAGjDx4E,cAAgBmI,MAAK,CAAA2wE,EAAA90E,KAAA,GAAA,KAAA,CAAA20E,EAAA3lB,GACVylB,GAAiBK,EAAA1yE,KAAA,EAAAuyE,EAAAxuE,IAAA,KAAA,EAAA,IAAAyuE,EAAAD,EAAA7qE,KAAA/O,KAAA,CAAA+5E,EAAA90E,KAAA,GAAA,KAAA,CAArB,GACiB,+EADjC60E,EAAgBD,EAAA56E,OACG,MAAQ,KAAiF,CAAA86E,EAAA90E,KAAA,GAAA,KAAA,CACrE,OAA9C00E,EAAWG,EAAwB,MAAU,OAACC,EAAAj1E,OAAA,QAAA,IAAA,KAAA,GAAAi1E,EAAA90E,KAAA,EAAA,MAAA,KAAA,GAAA80E,EAAA90E,KAAA,GAAA,MAAA,KAAA,GAAA80E,EAAA1yE,KAAA,GAAA0yE,EAAAtlB,GAAAslB,EAAA,MAAA,GAAAH,EAAA/uE,EAAAkvE,EAAAtlB,IAAA,KAAA,GAAA,OAAAslB,EAAA1yE,KAAA,GAAAuyE,EAAA35D,IAAA85D,EAAA5xE,OAAA,IAAA,KAAA,GAAA4xE,EAAA90E,KAAA,GAAA,MAAA,KAAA,GAKJ,8EAAvCy0E,EAAyB,MAAQ,OACxCC,EAAWD,EAAyB,MAAU,QAC/C,KAAA,GAAA,GACIC,EAAQ,CAAAI,EAAA90E,KAAA,GAAA,KAAA,CAAA,MAAQX,MAA+B,0BAAA,KAAA,GAAA,OAAAy1E,EAAA90E,KAAA,GAEvCivD,GAAY5M,EAAK,OAASqyB,GAAS,KAAA,GAAA,OAAAI,EAAAj1E,OAAA,SAAAi1E,EAAAp1E,MAAA,KAAA,GAAA,IAAA,MAAA,OAAAo1E,EAAAvyE,OAAA,GAAAwyE,EAAA,KAAA,CAAA,CAAA,EAAA,GAAA,GAAA,KACjD,MAAAv5E,MAAAH,KAAAE,UAAA,CAAA,SAEck4E,GAAkBnP,EAAAC,EAAAqB,EAAAoP,GAAA,OAAAC,GAAAz5E,MAAAH,KAAAE,UAAA,CAsOjC,SAAA05E,KA7CC,OA6CDA,GAAA/5E,EAAAkB,EAAAoF,MAtOA,WAAkC6gD,EAAK6yB,EAAahC,EAAcD,GAAgB,IAAAkC,EAAAC,EAAAX,EAAAY,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA3P,EAAA4P,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAhR,EAAA+J,EAAAkH,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA7R,EAAA8R,EAAAtV,EAAAuV,GAAAC,GAAAC,GAAAC,GAAAC,GAAA9oD,GAAAvgB,GAAAspE,GAAA,OAAA97E,EAAAY,MAAA,SAAAm7E,GAAA,OAAA,OAAAA,EAAA/1E,KAAA+1E,EAAAn4E,MAAA,KAAA,EACG,OAA7Em1E,EAAUD,EAAYliE,QAAQ,eAAgB,sBAAwB,QAAOmlE,EAAAn4E,KAAA,EAC1DivD,GAAY5M,EAAK8yB,GAAQ,KAAA,EAI5B,GAJhBC,EAAU+C,EAAAz4E,KACZ+0E,EAAoBW,EAA0B,cAAgB,aAC9DC,EAAiB,GACjBC,EAAkB,GAChBC,EAAc,CAAA,EAEhBd,EAAkBz4E,cAAgBmI,MAAK,CAAAg0E,EAAAn4E,KAAA,GAAA,KAAA,CAAAw1E,EAAAxmB,GACLylB,GAAiB0D,EAAA/1E,KAAA,GAAAozE,EAAArvE,IAAA,KAAA,GAAA,IAAAsvE,EAAAD,EAAA1rE,KAAA/O,KAAA,CAAAo9E,EAAAn4E,KAAA,GAAA,KAAA,CAA1C01E,EAAqBD,EAAAz7E,MAAAm+E,EAAA3oB,GACtBkmB,EAA6B,MAAQ,KAACyC,EACvCn4E,KAAA,oFAAAm4E,EAAA3oB,GAGA,GAAA,0EAAA2oB,EAAA3oB,GAOA,IAAA,mFAAA2oB,EAAA3oB,IACA,oFACA,8EAD2E2oB,EAAA3oB,IACA2oB,EAAA3oB,OACI,MAAA,KAAA,GAZF,OAAhF6lB,EAAiBK,EAA6B,MAAU,OAAE1iE,QAAQ,MAAO,QAAOmlE,EAAAt4E,OAAA,QAAA,IAAA,KAAA,GAO/E,OAJDy1E,EAAkBI,EAA6B,MAAU,OAAE1iE,QAAQ,MAAO,QAC1EuiE,EAAYG,EAA6B,MAAM,IAAK,CAClD93E,KAAM83E,EAA6B,MAAQ,KAAE1iE,QAAQ,uEAAwE,IAC7H7E,OAAQunE,EAA6B,MAAU,OAAE1iE,QAAQ,MAAO,SACjEmlE,EAAAt4E,OAAA,QAAA,IAAA,KAAA,GAOD01E,EAAYG,EAA6B,MAAM,IAAK,CAClD93E,KAAM83E,EAA6B,MAAQ,KAAE1iE,QAAQ,uEAAwE,IAC7H7E,OAAQunE,EAA6B,MAAU,OAAE1iE,QAAQ,MAAO,SACjE,KAAA,GAAAmlE,EAAAn4E,KAAA,GAAA,MAAA,KAAA,GAAAm4E,EAAAn4E,KAAA,GAAA,MAAA,KAAA,GAAAm4E,EAAA/1E,KAAA,GAAA+1E,EAAA5U,GAAA4U,EAAA,MAAA,IAAA3C,EAAA5vE,EAAAuyE,EAAA5U,IAAA,KAAA,GAAA,OAAA4U,EAAA/1E,KAAA,GAAAozE,EAAAx6D,IAAAm9D,EAAAj1E,OAAA,IAAA,KAAA,GAAAi1E,EAAAn4E,KAAA,GAAA,MAAA,KAAA,GAIJq1E,EAAiBZ,EAAyB,MAAU,OAAEzhE,QAAQ,MAAO,QAAO,KAAA,GAAA,OAAAmlE,EAAAn4E,KAAA,GAEhDivD,GAAY5M,EAAKgzB,GAAe,KAAA,GAAzC,OAAlBtP,EAAkBoS,EAAAz4E,KAAAy4E,EAAAn4E,KAAA,GACQo4E,GAAWrS,GAAmB,KAAA,GAE+D,OAFvH4P,EAAiBwC,EAAAz4E,KAEjBk2E,EAAyBP,EAAeriE,QAAQ,2BAA4B,kCAAoC,QAAOmlE,EAAAn4E,KAAA,GACzFivD,GAAY5M,EAAKuzB,GAAuB,KAAA,GAIrD,GAJjBC,EAAqBsC,EAAAz4E,KAC3B+0E,EAAoBoB,EAAqC,cAAgB,aAErEC,EAAiB,GACfC,EAAe,CAAA,EACjBtB,EAAkBz4E,cAAgBmI,MAAK,CAAAg0E,EAAAn4E,KAAA,GAAA,KAAA,CAAAg2E,EAAAhnB,GACLylB,GAAiB0D,EAAA/1E,KAAA,GAAA4zE,EAAA7vE,IAAA,KAAA,GAAA,IAAA8vE,EAAAD,EAAAlsE,KAAA/O,KAAA,CAAAo9E,EAAAn4E,KAAA,GAAA,KAAA,CAA1C01E,EAAqBO,EAAAj8E,MAAAm+E,EAAA3U,GACtBkS,EAA6B,MAAQ,KAACyC,EAAAn4E,KACvC,oFADuCm4E,EAAA3U,GAC0C,GAAA,GAAA,MAAA,KAAA,GACJ,OAAhFsS,EAAiBJ,EAA6B,MAAU,OAAE1iE,QAAQ,MAAO,QAAOmlE,EAAAt4E,OAAA,QAAA,IAAA,KAAA,GAGhFk2E,EAAaL,EAA6B,MAAM,IAAK,CACnD93E,KAAM83E,EAA6B,MAAQ,KAAE1iE,QAAQ,uEAAwE,IAC7H7E,OAAQunE,EAA6B,MAAU,OAAE1iE,QAAQ,MAAO,SACjE,KAAA,GAAAmlE,EAAAn4E,KAAA,GAAA,MAAA,KAAA,GAAAm4E,EAAAn4E,KAAA,GAAA,MAAA,KAAA,GAAAm4E,EAAA/1E,KAAA,GAAA+1E,EAAAE,GAAAF,EAAA,MAAA,IAAAnC,EAAApwE,EAAAuyE,EAAAE,IAAA,KAAA,GAAA,OAAAF,EAAA/1E,KAAA,GAAA4zE,EAAAh7D,IAAAm9D,EAAAj1E,OAAA,IAAA,KAAA,GAAAi1E,EAAAn4E,KAAA,GAAA,MAAA,KAAA,GAIJ81E,EAAiBrB,EAAyB,MAAU,OAAEzhE,QAAQ,MAAO,QAAO,KAAA,GAAA,OAAAmlE,EAAAn4E,KAAA,GAEhDivD,GAAY5M,EAAKyzB,GAAe,KAAA,GAI4D,OAJvH5Q,EAAkBiT,EAAAz4E,KAClBuvE,EAAwBrN,GAAkBsD,EAAoB,CAAC,cAAe,eAC9EiR,EAAoBiC,GAAWlT,GAE/BkR,EAAyBN,EAAe9iE,QAAQ,2BAA4B,kCAAoC,QAAOmlE,EAAAn4E,KAAA,GACzFivD,GAAY5M,EAAK+zB,GAAuB,KAAA,GAIrD,GAJjBC,EAAqB8B,EAAAz4E,KAC3B+0E,EAAoB4B,EAAqC,cAAgB,aAErEC,EAAgB,GACdC,EAAe,CAAA,EACjB9B,EAAkBz4E,cAAgBmI,MAAK,CAAAg0E,EAAAn4E,KAAA,IAAA,KAAA,CAAAw2E,EAAAxnB,GACLylB,GAAiB0D,EAAA/1E,KAAA,GAAAo0E,EAAArwE,IAAA,KAAA,GAAA,IAAAswE,EAAAD,EAAA1sE,KAAA/O,KAAA,CAAAo9E,EAAAn4E,KAAA,GAAA,KAAA,CAA1C01E,EAAqBe,EAAAz8E,MAAAm+E,EAAAG,GACtB5C,EAA6B,MAAQ,KAACyC,EAAAn4E,KACvC,8EADuCm4E,EAAAG,GACoC,GAAA,GAAA,MAAA,KAAA,GAAA,OAAAH,EAAAt4E,OAAA,QAAA,IAAA,KAAA,GAG9E02E,EAAab,EAA6B,MAAM,IAAK,CACnD93E,KAAM83E,EAA6B,MAAQ,KAAE1iE,QAAQ,uEAAwE,IAC7H7E,OAAQunE,EAA6B,MAAU,OAAE1iE,QAAQ,MAAO,SACjE,KAAA,GAAAmlE,EAAAn4E,KAAA,GAAA,MAAA,KAAA,GAAAm4E,EAAAn4E,KAAA,IAAA,MAAA,KAAA,IAAAm4E,EAAA/1E,KAAA,IAAA+1E,EAAAI,GAAAJ,EAAA,MAAA,IAAA3B,EAAA5wE,EAAAuyE,EAAAI,IAAA,KAAA,IAAA,OAAAJ,EAAA/1E,KAAA,IAAAo0E,EAAAx7D,IAAAm9D,EAAAj1E,OAAA,KAAA,KAAA,IAAAi1E,EAAAn4E,KAAA,IAAA,MAAA,KAAA,IAIJs2E,EAAgB7B,EAAyB,MAAU,OAAEzhE,QAAQ,MAAO,QAAO,KAAA,IAE1D,GAAhB2jE,EAAc,CAAA,GAChBL,EAAa,CAAA6B,EAAAn4E,KAAA,IAAA,KAAA,CAE0E,OADnF42E,EAAYN,EAAct3D,MAAM,KAAK9c,MACrC20E,EAAmBP,EAActjE,QAAQ4jE,EAAW,SAAWA,GAAa,QAAOuB,EAAAn4E,KAAA,IAC3DivD,GAAY5M,EAAKw0B,GAAiB,KAAA,IAChE,IADMC,EAAeqB,EAAAz4E,QAEnB+0E,EAAoBqC,EAA+B,cAAgB,cAEjE,GAAIrC,EAAkBz4E,cAAgBmI,MAAO,CAAA4yE,EAAA/nB,GACPylB,GAAiB,IAArD,IAAuDsC,EAAA5wE,MAAA6wE,EAAAD,EAAAjtE,KAAA/O,MAA5C26E,EAAqBsB,EAAAh9E,MAC9B28E,EAAYjB,EAA6B,MAAM,IAAK,CAClD93E,KAAQ83E,EAA6B,MAAQ,KAAE1iE,QAAQ,uEAAwE,IAC/H7E,OAAUunE,EAA6B,MAAU,OAAE1iE,QAAQ,MAAO,QAErE,CAAA,MAAAvX,GAAAs7E,EAAAnxE,EAAAnK,EAAA,CAAA,QAAAs7E,EAAA/7D,GAAA,CACH,MAEE27D,EAAYlC,EAAyB,MAAM,IAAK,CAC9C72E,KAAQ62E,EAAyB,MAAQ,KAAEzhE,QAAQ,uEAAwE,IAC3H7E,OAAUsmE,EAAyB,MAAU,OAAEzhE,QAAQ,MAAO,SAIrE,KAAA,IAIuB,GADpBkkE,EAAgB,CAAA,EAClBC,EAAoB,CAAA,GACpB7B,EAAe,CAAA6C,EAAAn4E,KAAA,IAAA,KAAA,CAE0E,OADrFo3E,EAAW9B,EAAgBt2D,MAAM,KAAK9c,MACtCm1E,EAAqB/B,EAAgBtiE,QAAQokE,EAAU,SAAWA,GAAY,QAAOe,EAAAn4E,KAAA,IACjEivD,GAAY5M,EAAKizB,GAAgB,KAAA,IAK1D,OALD6B,EAAiBgB,EAAAz4E,OACQy3E,GAAqBA,IAE5CG,GADIA,EAA4Bn8D,KAAKC,UAAU+7D,IACOnkE,QAAQ,QAAS,MACvEmkE,EAAoBh8D,KAAK8wC,MAAMqrB,IAChCa,EAAAn4E,KAAA,IAC8BivD,GAAY5M,EAAKg1B,GAAmB,KAAA,IACnE,GADME,EAAgBY,EAAAz4E,KAGpB,IADA+0E,EAAoB8C,EAAgC,cAAgB,cAC9Cv7E,cAAgBmI,MAAO,CAAAqzE,EAAAxoB,GACPylB,GAAiB,IAArD,IAAuD+C,EAAArxE,MAAAsxE,EAAAD,EAAA1tE,KAAA/O,MAA5C26E,EAAqB+B,EAAAz9E,MAC9Bk9E,EAAcxB,EAA6B,MAAM,IAAK,CACpD93E,KAAQ83E,EAA6B,MAAQ,KAAE1iE,QAAQ,uEAAwE,IAC/H7E,OAAUunE,EAA6B,MAAU,OAAE1iE,QAAQ,MAAO,QAErE,CAAA,MAAAvX,GAAA+7E,EAAA5xE,EAAAnK,EAAA,CAAA,QAAA+7E,EAAAx8D,GAAA,CACH,MAEEk8D,EAAczC,EAAyB,MAAM,IAAK,CAChD72E,KAAQ62E,EAAyB,MAAQ,KAAEzhE,QAAQ,uEAAwE,IAC3H7E,OAAUsmE,EAAyB,MAAU,OAAEzhE,QAAQ,MAAO,SAGnE,KAAA,IAAA,OAAAmlE,EAAAn4E,KAAA,IAGuBivD,GAAY5M,EAAK,uBAAsB,KAAA,IAAhD,OAAXs1B,EAAWQ,EAAAz4E,KAAAy4E,EAAAn4E,KAAA,IAEUivD,GAAY5M,EAAK6yB,GAAY,KAAA,IAoBxD,OApBMpP,EAAYqS,EAAAz4E,KACZk4E,EAAQ9R,EAAa,SAAS,UAAU,YACxCxD,EAAU,CACdjgB,IAAAA,EACA0jB,mBAAAA,EACA4P,kBAAAA,EACAzQ,mBAAAA,EACAiR,kBAAAA,EACArQ,aAAAA,EACA6R,YAAAA,EACApC,YAAAA,EACAtG,sBAAAA,EACA8G,aAAAA,EACAQ,aAAAA,EACArD,aAAAA,EACAyD,YAAAA,EACAQ,kBAAAA,EACAD,cAAAA,EACAjE,iBAAAA,GAEFkF,EAAAn4E,KAAA,IACsB2lE,GAAuBrD,GAAQ,KAAA,IAA/CuV,GAAOM,EAAAz4E,KAEPo4E,GAAW,GAAEK,EAAAK,GAAAp8E,EAAA0F,KACG81E,GAAK,KAAA,IAAA,IAAAO,EAAAM,GAAAN,EAAAK,MAAAz9E,KAAA,CAAAo9E,EAAAn4E,KAAA,IAAA,KAAA,CAAT,GAAP+3E,GAAOI,EAAAM,GAAAz+E,MACZ49E,EAAMG,IAAS/7E,cAAgBmI,MAAK,CAAAg0E,EAAAn4E,KAAA,IAAA,KAAA,CAAAg4E,GACnBJ,GAAAA,EAAMG,KAAQI,EAAA/1E,KAAA,IAAA41E,GAAA7xE,IAAA,KAAA,IAAA,IAAA8xE,GAAAD,GAAAluE,KAAA/O,KAAA,CAAAo9E,EAAAn4E,KAAA,IAAA,KAAA,CAAlB,OAAJmvB,GAAI8oD,GAAAj+E,MAAAm+E,EAAAn4E,KAAA,IACK04E,GAAoBX,GAAS5oD,GAAMmzC,EAAS,SAAQ,KAAA,KAAhE1zD,GAAGupE,EAAAz4E,OACAo4E,GAASp3E,KAAKkO,IAAI,KAAA,IAAAupE,EAAAn4E,KAAA,IAAA,MAAA,KAAA,IAAAm4E,EAAAn4E,KAAA,IAAA,MAAA,KAAA,IAAAm4E,EAAA/1E,KAAA,IAAA+1E,EAAAQ,GAAAR,EAAA,MAAA,KAAAH,GAAApyE,EAAAuyE,EAAAQ,IAAA,KAAA,IAAA,OAAAR,EAAA/1E,KAAA,IAAA41E,GAAAh9D,IAAAm9D,EAAAj1E,OAAA,KAAA,KAAA,IAAAi1E,EAAAn4E,KAAA,IAAA,MAAA,KAAA,IAAA,OAAAm4E,EAAAn4E,KAAA,IAIX04E,GAAoBX,GAASH,EAAMG,IAAUzV,EAAS,SAAQ,KAAA,KAA1E1zD,GAAGupE,EAAAz4E,OACAo4E,GAASp3E,KAAKkO,IAAI,KAAA,IAAAupE,EAAAn4E,KAAA,IAAA,MAAA,KAAA,IAAA,OAIxBm4E,EAAAt4E,OAAA,SAAA,CACLsN,KAAM0qE,GACNC,SAAAA,KACD,KAAA,IAAA,IAAA,MAAA,OAAAK,EAAA51E,OAAA,GAAAq2E,EAAA,KAAA,CAAA,CAAA,GAAA,GAAA,GAAA,IAAA,CAAA,GAAA,GAAA,GAAA,IAAA,CAAA,GAAA,IAAA,IAAA,KAAA,CAAA,IAAA,IAAA,IAAA,MACF,KAAA3D,GAAAz5E,MAAAH,KAAAE,UAAA,CA+CD,SAAS68E,GAAWz3C,GAClB,IACMk4C,EAAal4C,EADN1mC,OAAO6H,KAAK6+B,GACO,IAAI,UAAU,YACxCm4C,EAAU,CAAA,EACVC,EAAW,CAAA,EACXC,EAAY,CAAA,EAElB,IAAK,IAAMj/E,KAAO8+E,EAChB,GAAY,gBAAR9+E,GAAiC,cAARA,EAA7B,CAEA,IAAMk/E,EAAaJ,EAAW9+E,GAE9B,GAAIk/E,EAAWj9E,cAAgBmI,MAAO,CAAA,IACG2qD,EADHC,EAAAC,GACPiqB,GAAU,IAAvC,IAAyClqB,EAAA5oD,MAAA2oD,EAAAC,EAAAjlD,KAAA/O,MAAA,CAAA,IAA9Bm+E,EAAcpqB,EAAA90D,MACjBm/E,EAAaD,EAAe,YAC5B3wB,EAAKqZ,GAAkBuX,EAAY,CAAC,UAAW,QAAS,OACxDr7D,EAAM8jD,GAAkBuX,EAAY,CAAC,SAAU,OAAQ,QAAS,QAChEv7E,EAAOgkE,GAAkBuX,EAAY,CAAC,SAAU,OAAQ,QAAS,SAEnE5wB,IAAIuwB,EAAQvwB,GAAM2wB,GAClBp7D,IAAKi7D,EAASj7D,GAAOo7D,GACrBt7E,IAAMo7E,EAAUp7E,GAAQs7E,EAC9B,CAAC,CAAA,MAAAz9E,GAAAszD,EAAAnpD,EAAAnK,EAAA,CAAA,QAAAszD,EAAA/zC,GAAA,CACH,KACK,CACH,IAAMm+D,EAAaF,EAAW,YACxB1wB,EAAKqZ,GAAkBuX,EAAY,CAAC,UAAW,QAAS,OACxDr7D,EAAM8jD,GAAkBuX,EAAY,CAAC,SAAU,OAAQ,QAAS,QAChEv7E,EAAOgkE,GAAkBuX,EAAY,CAAC,SAAU,OAAQ,QAAS,SAEnE5wB,IAAIuwB,EAAQvwB,GAAM0wB,GAClBn7D,IAAKi7D,EAASj7D,GAAOm7D,GACrBr7E,IAAMo7E,EAAUp7E,GAAQq7E,EAC9B,CAzBkD,CA4BpD,MAAO,CAAEH,QAAAA,EAASC,SAAAA,EAAUC,UAAAA,EAC9B,CAAC,SAEcN,GAAmBU,EAAAC,EAAAC,EAAAC,GAAA,OAAAC,GAAAh+E,MAAAH,KAAAE,UAAA,CAAA,SAAAi+E,KA0BjC,OA1BiCA,GAAAt+E,EAAAkB,EAAAoF,MAAlC,WAAmCu2E,EAAS0B,EAAWnX,EAASj1C,GAAM,IAAAqsD,EAAA,OAAAt9E,EAAAY,MAAA,SAAA28E,GAAA,OAAA,OAAAA,EAAAv3E,KAAAu3E,EAAA35E,MAAA,KAAA,EAAA25E,EAAAnqB,GAG5DuoB,EAAO4B,EACR35E,KAAA,SAAA25E,EAAAnqB,GAGA,EAAA,YAAAmqB,EAAAnqB,GAGA,EAAA,UAAAmqB,EAAAnqB,KAGA,wBAAgB,EAGhB,YAHgBmqB,EAAAnqB,GAGP,GAGT,wBAHSmqB,EAAAnqB,GAGY,GAAA,GAAA,MAAA,KAAA,EAdwB,OAAhDkqB,EAAOE,GAAcH,EAAWnX,EAASj1C,GAAOssD,EAAA95E,OAAA,QAAA,IAAA,KAAA,EAGG,OAAnD65E,EAAOG,GAAiBJ,EAAWnX,GAAgBqX,EAAA95E,OAAA,QAAA,IAAA,KAAA,EAGF,OAAjD65E,EAAOI,GAAeL,EAAWnX,EAASj1C,GAAOssD,EAAA95E,OAAA,QAAA,IAAA,KAAA,EAAA,OAAA85E,EAAA35E,KAAA,GAGpC+5E,GAAwBN,EAAWnX,EAASj1C,GAAO,KAAA,GAGL,KAAA,GAGoC,KAAA,GAA3F,OAAJqsD,EAAIC,EAAAj6E,KAAAi6E,EAAA95E,OAAA,QAAA,IANA,KAAA,GAAA,OAAA85E,EAAA35E,KAAA,GAGSg6E,GAAmBP,EAAWnX,EAASj1C,GAAhD,KAAA,GAAA,OAAAssD,EAAA35E,KAAA,GAGSg6E,GAAmBpY,GAAkB6X,EAAW,CAAC,gBAAiBnX,EAASj1C,GAApF,KAAA,GAAA,OAAAssD,EAAA95E,OAAA,SAKD65E,GAAI,KAAA,GAAA,IAAA,MAAA,OAAAC,EAAAp3E,OAAA,GAAA03E,EACZ,MAAAz+E,MAAAH,KAAAE,UAAA,CAAA,SAEcy+E,GAAkBE,EAAAC,EAAAC,GAAA,OAAAC,GAAA7+E,MAAAH,KAAAE,UAAA,CAAA,SAAA8+E,KAgDhC,OAhDgCA,GAAAn/E,EAAAkB,EAAAoF,MAAjC,SAAkC2tB,EAAAA,EAAMmzC,EAASj1C,GAAM,IAAAitD,EAAA9sE,EAAAC,EAAA8sE,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA5tD,EAAA6tD,EAAAhD,EAAAC,EAAAgD,EAAAC,EAAAvM,EAAA7/D,EAAAqsE,EAAA,OAAA7+E,EAAAY,MAAA,SAAAk+E,GAAA,OAAA,OAAAA,EAAA94E,KAAA84E,EAAAl7E,MAAA,KAAA,EACY,GAA3Ds6E,EAAW1Y,GAAkBzyC,EAAM,CAAC,YAAa,WAC1C,CAAA+rD,EAAAl7E,KAAA,EAAA,KAAA,CAAA,OAAAk7E,EAAAr7E,OAAA,SAAS,MAAI,KAAA,EAEpB2N,EAAItC,SAASovE,EAAS,SAAgB,MAAK,GAAKtN,GAChDv/D,EAAIvC,SAASovE,EAAS,SAAgB,MAAK,GAAKtN,GAChDuN,EAAMrvE,SAASovE,EAAS,WAAkB,MAAK,GAAKtN,GACpDwN,EAAMtvE,SAASovE,EAAS,WAAkB,MAAK,GAAKtN,GACpDyN,EAAKvvE,SAASovE,EAAS,SAAgB,MAAM,IAAKtN,GAClD0N,EAAKxvE,SAASovE,EAAS,SAAgB,MAAM,IAAKtN,GAClD2N,EAAOzvE,SAASovE,EAAS,WAAkB,MAAM,IAAKtN,GACtD4N,EAAO1vE,SAASovE,EAAS,WAAkB,MAAM,IAAKtN,IAExD6N,EAASjZ,GAAkB0Y,EAAU,CAAC,QAAS,SAAW,KAClDO,EAAShZ,GAAegZ,IAE9B5tD,EAAKwtD,EAAKE,EACVG,EAAKJ,EAAKE,EAEV9C,EAAW,GAAEoD,EAAA1rB,GAAApzD,EAAA0F,KACGqtB,GAAI,KAAA,GAAA,IAAA+rD,EAAA3X,GAAA2X,EAAA1rB,MAAAz0D,KAAA,CAAAmgF,EAAAl7E,KAAA,GAAA,KAAA,CAAR,GAAP+3E,EAAOmD,EAAA3X,GAAAvpE,MACZm1B,EAAK4oD,GAAS/7E,cAAgBmI,MAAK,CAAA+2E,EAAAl7E,KAAA,GAAA,KAAA,CAAA+6E,EAClB5rD,GAAAA,EAAK4oD,IAAQmD,EAAA94E,KAAA,GAAA24E,EAAA50E,IAAA,KAAA,GAAA,IAAA60E,EAAAD,EAAAjxE,KAAA/O,KAAA,CAAAmgF,EAAAl7E,KAAA,GAAA,KAAA,CAAjB,OAAJyuE,EAAIuM,EAAAhhF,MAAAkhF,EAAAl7E,KAAA,GACK04E,GAAoBX,EAAStJ,EAAMnM,EAASj1C,GAAO,KAAA,IAA/Dze,EAAGssE,EAAAx7E,OACAo4E,EAASp3E,KAAKkO,GAAI,KAAA,GAAAssE,EAAAl7E,KAAA,GAAA,MAAA,KAAA,GAAAk7E,EAAAl7E,KAAA,GAAA,MAAA,KAAA,GAAAk7E,EAAA94E,KAAA,GAAA84E,EAAA1X,GAAA0X,EAAA,MAAA,IAAAH,EAAAn1E,EAAAs1E,EAAA1X,IAAA,KAAA,GAAA,OAAA0X,EAAA94E,KAAA,GAAA24E,EAAA//D,IAAAkgE,EAAAh4E,OAAA,IAAA,KAAA,GAAAg4E,EAAAl7E,KAAA,GAAA,MAAA,KAAA,GAAA,OAAAk7E,EAAAl7E,KAAA,GAIX04E,GAAoBX,EAAS5oD,EAAK4oD,GAAUzV,EAASj1C,GAAO,KAAA,IAAxEze,EAAGssE,EAAAx7E,OACAo4E,EAASp3E,KAAKkO,GAAI,KAAA,GAAAssE,EAAAl7E,KAAA,GAAA,MAAA,KAAA,GAAA,OAIxBk7E,EAAAr7E,OAAA,SAAA,CACLjC,KAAM,QACNo5C,IAAKvpC,EACL2qC,KAAM5qC,EACN8/D,MAAOmN,EACPlN,OAAQmN,EACRG,OAAAA,EACA/C,SAAUA,EAASp5D,KAAI,SAAA4X,GAAO,OAAAu4B,GAAAA,GAAA,CAAA,EACzBv4B,GAAO,CAAA,EAAA,CACV8hB,MAAO9hB,EAAQ8hB,KAAOmiC,GAAOttD,EAC7B+pB,KAAM1gB,EAAQ0gB,IAAMwjC,GAAOM,EAC3BxN,MAAOh3C,EAAQg3C,MAAQrgD,EACvBsgD,OAAQj3C,EAAQi3C,OAASuN,SAE5B,KAAA,GAAA,IAAA,MAAA,OAAAI,EAAA34E,OAAA,GAAA44E,EAAA,KAAA,CAAA,CAAA,GAAA,GAAA,GAAA,KACF,KAAAd,GAAA7+E,MAAAH,KAAAE,UAAA,CAED,SAASq+E,GAAczqD,EAAMmzC,EAASj1C,GACpC,IAII8/C,EAAmBC,EAJjB7rE,EAAOqgE,GAAkBzyC,EAAM,CAAC,WAAY,UAAW,QAAS,SAChErR,EAAM8jD,GAAkBzyC,EAAM,CAAC,WAAY,SAAU,OAAQ,QAAS,QACxEvxB,EAAOgkE,GAAkBzyC,EAAM,CAAC,WAAY,SAAU,OAAQ,QAAS,UAIvEvxB,GAEAuvE,EAAoB7K,EAA2B,kBAAa,UAAE1kE,GAC9DwvE,EAAoB9K,EAA2B,kBAAa,UAAE1kE,IAOzDkgB,IACPqvD,EAAoB7K,EAA2B,kBAAY,SAAExkD,GAC7DsvD,EAAoB9K,EAA2B,kBAAY,SAAExkD,IAG1DlgB,IAEc,MADAgkE,GAAkBzyC,EAAM,CAAC,WAAY,YAAa,QAAS,YACtDvxB,EAAO,QAU/B,OARKA,IAAMA,EAAOgkE,GAAkBuL,EAAmB,CAAC,WAAY,SAAU,OAAQ,QAAS,UAC1FvvE,IAAMA,EAAOgkE,GAAkBwL,EAAmB,CAAC,WAAY,SAAU,OAAQ,QAAS,UAE1FxvE,IACyBA,EAAb,cAAXyvB,EAA+B,UACvB,OAGP+tD,GAASjsD,EAAMg+C,EAAmBC,EAAmB7rE,EAAM3D,EAAM0kE,EAC1E,CAEA,SAASuX,GAAiB1qD,EAAMmzC,GAI9B,OAAO8Y,GAASjsD,OAAMzzB,OAAWA,EAHpByzB,EAAK,eAAe,WAAkB,MAAQ,UACHzzB,IAA1CyzB,EAAK,eAAe,UAAU,aAAyBzzB,EAAYyzB,EAAK,YAAY,UAAU,QAAe,MAAQ,KAE3EmzC,EAC1D,CAEA,SAAS8Y,GAASjsD,EAAMg+C,EAAmBC,EAAmB7rE,EAAM3D,EAAM0kE,GACxE,IAiBI+Y,EAjBEC,EAAW,CAAC,SAAU,UACtBC,EAAgB3Z,GAAkBzyC,EAAMmsD,GACxCE,EAAsB5Z,GAAkBuL,EAAmBmO,GAC3DG,EAAsB7Z,GAAkBwL,EAAmBkO,GAE3DI,EAAW9Z,GAAkBzyC,EAAM,CAAC,SAAU,aAAc,QAAS,SACrEwsD,EAAe/Z,GAAkBzyC,EAAM,CAAC,SAAU,eAExDysD,EAAsB3O,GAAYsO,EAAeC,EAAqBC,GAA9DzkC,IAAAA,IAAKoB,IAAAA,KACbyjC,EAA0BxO,GAAQkO,EAAeC,EAAqBC,GAA9DnO,IAAAA,MAAOC,IAAAA,OAETuO,EAAmE,MAAzDla,GAAkB2Z,EAAe,CAAC,QAAS,UACrDQ,EAAmE,MAAzDna,GAAkB2Z,EAAe,CAAC,QAAS,UAErDV,EAAShZ,GAAeD,GAAkB2Z,EAAe,CAAC,QAAS,SAEnES,EAAgBpa,GAAkBzyC,EAAM,CAAC,aAE/C,GAAI6sD,EAAe,CACjB,IAAMC,EAAera,GAAkBoa,EAAe,CAAC,QAAS,QAC5DC,IAAcZ,EAAYxZ,GAAeoa,GAAgB,SAE1DZ,EAAYR,EAEjB,IAAIl6C,EAAU,GACVxR,EAAK,cAAawR,EAAUstC,GAAY9+C,EAAK,YAAaA,EAAMg+C,EAAmBvvE,EAAM0kE,IAE7F,IAGIqO,EAHJuL,EAAkErZ,GAAU1zC,EAAMvxB,EAAM0kE,GAAhFW,IAAAA,YAAaD,IAAAA,YAAaI,IAAAA,WAAYC,IAAAA,gBACxCsG,EAAYF,GAAat6C,OAAMzzB,EAAW4mE,IAAY,GAGtD6Z,EAAgBva,GAAkBzyC,EAAM,CAAC,SAAU,cAAe,gBACpEgtD,IAAexL,EAASnD,GAAU2O,EAAe7Z,IAErD,IAAM8Z,ER3dD,SAA0BjtD,EAAMg+C,EAAmBC,GACxD,IAAIiP,EAASza,GAAkBzyC,EAAM,CAAC,WAAY,WAAY,QAAS,WAQvE,OAPKktD,IACHA,EAASza,GAAkBuL,EAAmB,CAAC,WAAY,WAAY,QAAS,cAE9EkP,EAASza,GAAkBwL,EAAmB,CAAC,WAAY,WAAY,QAAS,cACnEiP,EAAS,KAGP,QAAXA,EAAoB,MAAqB,MAAXA,EAAkB,OAAS,IACnE,CQidiBC,CAAiBntD,EAAMg+C,EAAmBC,GACnDmP,EAAoF,WAAvE3a,GAAkBzyC,EAAM,CAAC,WAAY,WAAY,QAAS,SAEvExmB,EAAO,CACXyvC,KAAAA,EACApB,IAAAA,EACAs2B,MAAAA,EACAC,OAAAA,EACAtK,YAAAA,EACAD,YAAAA,EACAI,WAAAA,EACAoZ,sBAAuBnZ,EACvBsG,UAAAA,EACAhpC,QAAAA,EACAm7C,QAAAA,EACAC,QAAAA,EACAlB,OAAAA,EACAuB,OAAAA,EACA76E,KAAAA,GAKF,GAFIovE,IAAQhoE,EAAKgoE,OAASA,GAEtBgL,GAAyB,YAAT/9E,EAAoB,CACtC,IAAMqR,EAAM2yD,GAAkB2Z,EAAe,CAAC,QAAS,UAGjDr1E,EF3gBH,SAA4By1E,EAAc/iE,EAAG4xB,GAClD,IAAMiyC,EAAc7a,GAAkB+Z,EAAc,CAAC,cACjDe,EAAY9a,GAAkB6a,EAAa,CAAC,WAE5Ct4E,MAAM8C,QAAQy1E,KAAYA,EAAYA,EAAUx6E,OAEpD,IAAMy6E,EAAOzxE,SAASwxE,EAAiB,MAAK,GACtCE,EAAO1xE,SAASwxE,EAAiB,MAAK,GACtCtL,EAAc,IAATuL,EAAa,EAAK,EAAIA,EAAQ/jE,EACnCy4D,EAAc,IAATuL,EAAa,EAAK,EAAIA,EAAQpyC,EACrCtkC,EAAI,GAEJ22E,EAAajb,GAAkB8a,EAAW,CAAC,aAEzCI,EAAYJ,EAAU,UACxBK,EAAkBL,EAAU,gBAC1BM,EAAaN,EAAU,WACzBO,EAAYrb,GAAkB8a,EAAW,CAAC,YACzCv4E,MAAM8C,QAAQ41E,KAAaA,EAAa,CAACA,IAE9C,IAAMK,EAAe,GACrB,GAAIL,EAAW57E,OAAS,EAAG,CAqCzB,GApCAhH,OAAO6H,KAAK+6E,GAAYr+E,SAAQ,SAAAzE,GAC9B,IAAMojF,EAAeN,EAAW9iF,GAAK,QACjCojF,GACFljF,OAAO6H,KAAKq7E,GAAc3+E,SAAQ,SAAAzE,GAChC,IAAMqjF,EAAaD,EAAapjF,GAC1BsjF,EAAMD,IACNE,EAAMF,IACNziC,EAAQyiC,QACdF,EAAax8E,KAAK,CAChB9C,KAAM,QACN4P,EAAG6vE,EACH5vE,EAAG6vE,EACH3iC,MAAAA,GAEJ,GAEJ,IACImiC,GACF7iF,OAAO6H,KAAKg7E,GAAWt+E,SAAQ,SAAAzE,GAC7B,IAAMwjF,EAAaT,EAAU/iF,GAAK,QAC9BwjF,GACFtjF,OAAO6H,KAAKy7E,GAAY/+E,SAAQ,SAAAzE,GAC9B,IAAMyjF,EAAWD,EAAWxjF,GACtB0jF,EAAMD,IACNE,EAAMF,IACN7iC,EAAQ6iC,QACdN,EAAax8E,KAAK,CAChB9C,KAAM,OACN4P,EAAGiwE,EACHhwE,EAAGiwE,EACH/iC,MAAAA,GAEJ,GAEJ,IAEEoiC,EAAiB,CACnB,IAAMY,EAAuB,GACxBx5E,MAAM8C,QAAQ81E,KACjBA,EAAkB,CAACA,IAErB9iF,OAAO6H,KAAKi7E,GAAiBv+E,SAAQ,SAAAzE,GACnC4jF,EAAqBj9E,KAAKq8E,EAAgBhjF,GAAK,QACjD,IAEA4jF,EAAqBn/E,SAAQ,SAAAzE,GAC3B,IAAM6jF,EAAU,GAChB7jF,EAAIyE,SAAQ,SAAAq/E,GACV,IAAMC,EAAS,CACbtwE,EAAGqwE,EAAU,MAAK,EAClBpwE,EAAGowE,EAAU,MAAK,GAEpBD,EAAQl9E,KAAKo9E,EACf,IACA,IAAMnjC,EAAQ5gD,EAAI,GAAU,MAAS,MACrCmjF,EAAax8E,KAAK,CAChB9C,KAAM,aACNmgF,QAASH,EACTjjC,MAAAA,GAEJ,GACF,CACA,GAAIqiC,EAAY,CACd,IAAMgB,EAAkBhB,EAAkB,MACpCriC,EAAQqjC,EAAuB,MAC/BC,EAAKD,EAAoB,GACzBE,EAAKF,EAAoB,GACzBxM,EAAQwM,EAAuB,MAC/BG,EAAQH,EAAuB,MACjCI,EAAQ,EACRC,EAAQ,EACNC,EAAc1c,GAAkBob,EAAY,CAAC,OAAQ,UACvDsB,IACFF,EAAQE,EAAe,EACvBD,EAAQC,EAAe,GAEzBpB,EAAax8E,KAAK,CAChB9C,KAAM,QACNqgF,GAAIA,EACJC,GAAIA,EACJ1M,MAAOA,EACP2M,MAAOA,EACPC,MAAOA,EACPC,MAAOA,EACP1jC,MAAAA,GAEJ,CACIsiC,IACG94E,MAAM8C,QAAQg2E,KAAYA,EAAY,CAACA,IAC5ChjF,OAAO6H,KAAKm7E,GAAWz+E,SAAQ,WAC7B0+E,EAAax8E,KAAK,CAChB9C,KAAM,QACN+8C,MAAOt0C,KAEX,KAGF62E,EAAaxX,MAAK,SAACn4D,EAAGxE,GAAC,OAAKwE,EAAEotC,MAAQ5xC,EAAE4xC,SAGxC,IADA,IAAIvgC,EAAI,EACDA,EAAI8iE,EAAaj8E,QAAQ,CAC9B,GAA6B,UAAzBi8E,EAAa9iE,GAAGxc,KAGlBsI,GAAK,KAFOgF,SAASgyE,EAAa9iE,GAAG5M,GAAK4jE,EAExB,IADNlmE,SAASgyE,EAAa9iE,GAAG3M,GAAK4jE,OAGvC,GAA6B,SAAzB6L,EAAa9iE,GAAGxc,KAGvBsI,GAAK,KAFMgF,SAASgyE,EAAa9iE,GAAG5M,GAAK4jE,EAExB,IADNlmE,SAASgyE,EAAa9iE,GAAG3M,GAAK4jE,OAGtC,GAA6B,eAAzB6L,EAAa9iE,GAAGxc,KAOvBsI,GAAK,KANOgF,SAASgyE,EAAa9iE,GAAG2jE,QAAQ,GAAGvwE,GAAK4jE,EAMnC,IALNlmE,SAASgyE,EAAa9iE,GAAG2jE,QAAQ,GAAGtwE,GAAK4jE,EAKvB,IAJlBnmE,SAASgyE,EAAa9iE,GAAG2jE,QAAQ,GAAGvwE,GAAK4jE,EAIX,IAH9BlmE,SAASgyE,EAAa9iE,GAAG2jE,QAAQ,GAAGtwE,GAAK4jE,EAGC,IAF1CnmE,SAASgyE,EAAa9iE,GAAG2jE,QAAQ,GAAGvwE,GAAK4jE,EAEa,IADtDlmE,SAASgyE,EAAa9iE,GAAG2jE,QAAQ,GAAGtwE,GAAK4jE,OAGlD,GAA6B,UAAzB6L,EAAa9iE,GAAGxc,KAAkB,CACzC,IAAMqgF,EAAK/yE,SAASgyE,EAAa9iE,GAAG6jE,IAAM7M,EACpC8M,EAAKhzE,SAASgyE,EAAa9iE,GAAG8jE,IAAM7M,EACpCG,EAAQtmE,SAASgyE,EAAa9iE,GAAGo3D,OAAS,IAGhDtrE,GAAKirE,GAAS+M,EAAID,EAAIC,EAAID,EAAIzM,EADfA,EADDtmE,SAASgyE,EAAa9iE,GAAG+jE,OAAS,KAEH,EAC/C,KACkC,UAAzBjB,EAAa9iE,GAAGxc,OAAkBsI,GAAK,KAChDkU,GACF,CACF,CAEA,OAAOlU,CACT,CE+Wcq4E,CAAmB5C,EAFnBzwE,SAAS+D,EAAQ,IAAK+9D,GACtB9hE,SAAS+D,EAAQ,IAAK+9D,IAGhC,OAAAne,GAAAA,GAAA,CAAA,EACKlmD,GAAI,CAAA,EAAA,CACP/K,KAAM,QACN89E,SAAU,SACV1gD,KAAM90B,GAEV,CACA,OAOA2oD,GAAAA,GAAA,CAAA,EACKlmD,GAAI,CAAA,GARL+yE,GAAsB,QAAT99E,GAAmBA,EAQ3B,CACPA,KAAM,OACN2+E,WAAAA,EACA1B,OAAQQ,GATC,CACPz9E,KAAM,QACN89E,SAAAA,GASN,CAAC,SAEc5B,GAAc0E,EAAAC,EAAAC,GAAA,OAAAC,GAAAnjF,MAAAH,KAAAE,UAAA,CAAA,SAAAojF,KAwG5B,OAxG4BA,GAAAzjF,EAAAkB,EAAAoF,MAA7B,SAA8B2tB,EAAAA,EAAMmzC,EAASj1C,GAAM,IAAAuxD,EAAAC,EAAAC,EAAA7c,EAAA5f,EAAA6hB,EAAAoW,EAAA75C,EAAAs+C,EAAA/nC,EAAAoB,EAAA4mC,EAAA1R,EAAAC,EAAAp6D,EAAA2oE,EAAAC,EAAAlB,EAAAoE,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAA3jF,EAAAY,MAAA,SAAAgjF,GAAA,OAAA,OAAAA,EAAA59E,KAAA49E,EAAAhgF,MAAA,KAAA,EASvB,OAPM4+E,EAAjB,kBAAXvxD,EAAqCi1C,EAAsB,aAC3C,kBAAXj1C,EAAqCi1C,EAAsB,aACtDA,EAAqB,YAE7Buc,EAAM1vD,EAAK,cAAc,UAAiB,MAAE,WAC5C2vD,EAAUF,EAAOC,GAAa,OAC9B5c,EAAaP,GAAqBod,GAASz1E,cAC3Cg5C,EAAMigB,EAAa,IAAC0d,EAAAhgF,KAAA,EACGqiD,EAAIpD,KAAK6/B,GAASl9E,MAAM,eAAc,KAAA,EAiB7C,GAjBhBsiE,EAAc8b,EAAAtgF,KACd46E,EAAWnrD,EAAK,UAAU,UAE1BsR,EAAWuhC,GAAYC,GAAW8c,EAClB9R,GAAYqN,OAAU5+E,OAAWA,GAA/Cs7C,EAAAA,EAAAA,IAAKoB,IAAAA,KAAI4mC,EACS3R,GAAQiN,OAAU5+E,OAAWA,GAA/C4xE,EAAAA,EAAAA,MAAOC,IAAAA,OACTp6D,iBAAcstB,EAAQ,YAAA/yB,OAAW2zD,GAAkB6C,IAEnD4X,EAA8D,MAApDla,GAAkB0Y,EAAU,CAAC,QAAS,UAChDyB,EAA8D,MAApDna,GAAkB0Y,EAAU,CAAC,QAAS,UAElDO,EAAS,GACPoE,EAAard,GAAkBzyC,EAAM,CAAC,SAAU,SAAU,QAAS,WACzD0rD,EAAShZ,GAAeod,IAElCC,EAAYtd,GAAkBzyC,EAAM,CAAC,YAAa,SAAU,gBAE9DswD,GAAa,GAEbP,EAAS,CAAAc,EAAAhgF,KAAA,GAAA,KAAA,CAE2B,GADtCm/E,EAAWD,EAAiB,MAAE,WAE1Bhd,GADJkd,EAAYR,EAAOO,GAAkB,QACX,CAAAa,EAAAhgF,KAAA,GAAA,KAAA,CACxBo/E,EAAYrd,GAAWqd,GACvBK,GAAa,EAAIO,EAAAhgF,KAAA,GAAA,MAAA,KAAA,GAG2C,GACvC,SADrBq/E,EAAe3d,GAAqB0d,GAAW/1E,gBACA,SAAjBg2E,GAA4C,QAAjBA,EAAsB,CAAAW,EAAAhgF,KAAA,GAAA,KAAA,CAAA,OAAAggF,EAAAhgF,KAAA,GACrDqiD,EAAIpD,KAAKmgC,GAAWx9E,MAAM,eAAc,KAAA,GAAhE29E,EAAeS,EAAAtgF,KACf4/E,EAAgBtd,GAAYqd,GAC5BG,EAAYS,IAAIC,gBAAgB,IAAInsD,KAAK,CAACwrD,GAAkB,CAC1D3hF,KAAM0hF,KACL,KAAA,GAKwE,KAA3EI,EAAY9d,GAAkBzyC,EAAM,CAAC,YAAa,SAAU,iBAErD,CAAA6wD,EAAAhgF,KAAA,GAAA,KAAA,CAGiD,GAF5D2/E,EAAWD,EAAiB,MAAE,UAC9BE,EAAYhB,EAAOe,GAAkB,OAEhB,SADrBE,EAAene,GAAqBke,GAAWv2E,gBACA,QAAjBw2E,GAA2C,QAAjBA,EAAsB,CAAAG,EAAAhgF,KAAA,GAAA,KAAA,CAAA,OAAAggF,EAAAhgF,KAAA,GACpDqiD,EAAIpD,KAAK2gC,GAAWh+E,MAAM,eAAc,KAAA,GAAhEk+E,EAAeE,EAAAtgF,KACfqgF,EAAYE,IAAIC,gBAAgB,IAAInsD,KAAK,CAAC+rD,KAAkB,KAAA,GAAA,IAI5DZ,GAAcO,EAAU,CAAAO,EAAAhgF,KAAA,GAAA,KAAA,CAAA,OACnBggF,EAAAngF,OAAA,SAAA,CACLjC,KAAM,QACNo5C,IAAAA,EACAoB,KAAAA,EACAk1B,MAAAA,EACAC,OAAAA,EACAsN,OAAAA,EACA/mD,KAAM0rD,IACP,KAAA,GAAA,IAECN,IAAaO,EAAU,CAAAO,EAAAhgF,KAAA,GAAA,KAAA,CAAA,OAClBggF,EAAAngF,OAAA,SAAA,CACLjC,KAAM,QACNo5C,IAAAA,EACAoB,KAAAA,EACAk1B,MAAAA,EACAC,OAAAA,EACAsN,OAAAA,EACA1nE,IAAKisE,IACN,KAAA,GAAA,IAECM,EAAS,CAAAM,EAAAhgF,KAAA,GAAA,KAAA,CAAA,OACJggF,EAAAngF,OAAA,SAAA,CACLjC,KAAM,QACNo5C,IAAAA,EACAoB,KAAAA,EACAk1B,MAAAA,EACAC,OAAAA,EACAsN,OAAAA,EACA/mD,KAAMisD,IACP,KAAA,GAAA,OAEIC,EAAAngF,OAAA,SAAA,CACLjC,KAAM,QACNo5C,IAAAA,EACAoB,KAAAA,EACAk1B,MAAAA,EACAC,OAAAA,EACAsN,OAAAA,EACA1nE,IAAAA,EACA2oE,QAAAA,EACAC,QAAAA,IACD,KAAA,GAAA,IAAA,MAAA,OAAAiE,EAAAz9E,OAAA,GAAA49E,EACF,KAAAxB,GAAAnjF,MAAAH,KAAAE,UAAA,CAAA,SAEcw+E,GAAuBqG,EAAAC,EAAAC,GAAA,OAAAC,GAAA/kF,MAAAH,KAAAE,UAAA,CAAA,SAAAglF,KAsBrC,OAtBqCA,GAAArlF,EAAAkB,EAAAoF,MAAtC,SAAuC2tB,EAAAA,EAAMmzC,EAASj1C,GAAM,IAAAmzD,EAAAzhF,EAAA0hF,EAAA,OAAArkF,EAAAY,MAAA,SAAA0jF,GAAA,OAAA,OAAAA,EAAAt+E,KAAAs+E,EAAA1gF,MAAA,KAAA,EACpDwgF,EAAiB5e,GAAkBzyC,EAAM,CAAC,YAAa,gBAAiB,QAAS,QAAOuxD,EAAAlxB,GAGtFgxB,EAAcE,EAAA1gF,KACf,2DADe0gF,EAAAlxB,GAIf,EAAA,2DAAAkxB,EAAAlxB,GAGA,EAAA,6DAAAkxB,EAAAlxB,MAGA,mEAA2D,GAAA,GAAA,MAAA,KAAA,EAR9B,OAAhCzwD,EAAS4hF,GAASxxD,EAAMmzC,GAAQoe,EAAA7gF,OAAA,QAAA,IAAA,KAAA,EAAA,OAAA6gF,EAAA1gF,KAAA,EAGjB4gF,GAASzxD,EAAMmzC,GAAQ,KAAA,EAAhC,OAANvjE,EAAM2hF,EAAAhhF,KAAAghF,EAAA7gF,OAAA,QAAA,IAAA,KAAA,GAG4B,OAAlCd,EAAS8hF,GAAW1xD,EAAMmzC,GAAQoe,EAAA7gF,OAAA,QAAA,IAAA,KAAA,GAKkB,OAFhD4gF,EAAa7e,GAAkBzyC,EAAM,CAAC,YAAa,gBAAiB,sBAAuB,cAAe,cAEzG6qD,GAAmByG,EAAYne,EAASj1C,GAD5BozD,EAAa7e,GAAkBzyC,EAAM,CAAC,YAAa,gBAAiB,aACjCuxD,EAAA7gF,OAAA,QAAA,IAAA,KAAA,GAAA,OAAA6gF,EAAA7gF,OAAA,SAIjDd,GAAM,KAAA,GAAA,IAAA,MAAA,OAAA2hF,EAAAn+E,OAAA,GAAAu+E,EACd,KAAAP,GAAA/kF,MAAAH,KAAAE,UAAA,CAED,SAASolF,GAASxxD,EAAMmzC,GACtB,IAsBIyP,EAqBAgP,EA3CEC,EAAYpf,GAAkBzyC,EAAM,CAAC,YAAa,gBAAiB,UACnEmrD,EAAW1Y,GAAkBzyC,EAAM,CAAC,WAC1C8xD,EAAsBhU,GAAYqN,OAAU5+E,OAAWA,GAA/Cs7C,IAAAA,IAAKoB,IAAAA,KACb8oC,EAA0B7T,GAAQiN,OAAU5+E,OAAWA,GAA/C4xE,IAAAA,MAAOC,IAAAA,OAET4T,EAAWvf,GAAkBzyC,EAAM,CAAC,YAAa,gBAAiB,QAAS,YAE3EiyD,EAAeD,EAAgB,MAAIA,EAAgB,MAAY,cAAIzlF,EACnE2lF,EAAeF,EAAgB,MAAIA,EAAgB,MAAY,cAAIzlF,EACnE4lF,EAAcH,EAAgB,MAAIA,EAAgB,MAAW,aAAIzlF,EACjE6lF,EAAcJ,EAAgB,MAAIA,EAAgB,MAAW,aAAIzlF,EACjE8lF,EAAcL,EAAgB,MAAIA,EAAgB,MAAW,aAAIzlF,EACjE+lF,EAAcN,EAAgB,MAAIA,EAAgB,MAAW,aAAIzlF,EACjEg3E,EAAiB,CACrBgP,cAAgBN,GAAiC,MAAjBA,EAAwB,EAAI,EAC5DO,cAAgBN,GAAiC,MAAjBA,EAAwB,EAAI,EAC5DO,aAAeN,GAA+B,MAAhBA,EAAuB,EAAI,EACzDO,aAAeN,GAA+B,MAAhBA,EAAuB,EAAI,EACzDO,cAAgBN,GAA+B,MAAhBA,EAAuB,EAAI,EAC1DO,cAAgBN,GAA+B,MAAhBA,EAAuB,EAAI,GAItDO,EAAcb,EAAS,kBAC7B,GAAIa,EAAa,CACf,IAAMC,EAAe3f,EAAqB,YAAE,iBAAiB,cAC7D,GAAI2f,EACF,GAAIA,EAAajmF,cAAgBmI,MAC/B,IAAK,IAAIiW,EAAI,EAAGA,EAAI6nE,EAAahhF,OAAQmZ,IACnC6nE,EAAa7nE,GAAU,MAAW,UAAM4nE,IAC1CjQ,EAAekQ,EAAa7nE,SAK5B6nE,EAAoB,MAAW,UAAMD,IACvCjQ,EAAekQ,EAIvB,CACIlQ,IAAcA,EAA6B,eAAIW,GAGnD,IAAMwP,EAAUtgB,GAAkBmQ,EAAc,CAAC,aAAc,cACzDoQ,EAAgBvgB,GAAkBsgB,EAAS,CAAC,YAClD,GAAIC,EAAe,CACjB,IAAMC,EDlvBH,SAAyBjzD,EAAMmzC,GACpC,IAAM+f,EAAe,CAAA,EACrB,GAAIlzD,EAAK,YAAa,CACpB,IAKMmzD,EAASzf,GALH,CACV,SAAU,CACR,OAAQ1zC,EAAK,YAAY,eAGCzzB,EAAW4mE,GACzC+f,EAAaE,OAASD,CACxB,CACA,GAAInzD,EAAK,SAAU,CACjB,IAKMmzD,EAASzf,GALH,CACV,SAAU,CACR,OAAQ1zC,EAAK,SAAS,eAGIzzB,EAAW4mE,GACzC+f,EAAarrC,IAAMsrC,CACrB,CACA,GAAInzD,EAAK,WAAY,CACnB,IAKMmzD,EAASzf,GALH,CACV,SAAU,CACR,OAAQ1zC,EAAK,WAAW,eAGEzzB,EAAW4mE,GACzC+f,EAAaG,MAAQF,CACvB,CACA,GAAInzD,EAAK,UAAW,CAClB,IAKMmzD,EAASzf,GALH,CACV,SAAU,CACR,OAAQ1zC,EAAK,UAAU,eAGGzzB,EAAW4mE,GACzC+f,EAAajqC,KAAOkqC,CACtB,CACA,OAAOD,CACT,CC2sBwBI,CAAgBN,EAAe7f,GAC/C8f,IAAarB,EAAaqB,EAAYG,QAAUH,EAAYhqC,MAAQgqC,EAAYI,OAASJ,EAAYprC,IAC3G,CAEA,IAAI0rC,EAAc,GACdC,EAAsB/gB,GAAkBmQ,EAAc,CAAC,UAAW,cAClE4Q,IACFD,EAAcnd,GAAaod,OAAqBjnF,OAAWA,EAAW4mE,SAE5C5mE,IAAxBinF,IAEFD,EAAcnd,GADdod,EAAsB/gB,GAAkBmQ,EAAc,CAAC,aAAc,YAAa,SAAU,qBAC5Cr2E,OAAWA,EAAW4mE,IAGxE,IAAImQ,EAAUuO,EAAU,QACpBvO,EAAQz2E,cAAgBmI,QAAOsuE,EAAU,CAACA,IAG9C,IADA,IAAM9pE,EAAO,GACJzH,EAAI,EAAGA,EAAIuxE,EAAQxxE,OAAQC,IAAK,CACvC,IAAM0hF,EAASnQ,EAAQvxE,GAMnBsxE,EAAAA,GAAkBC,EAASvxE,EAAGwxE,EAAgBX,EAAczP,GAH9DqH,IAAAA,UACAyF,IAAAA,UACAY,IAAAA,SAGI6S,EAAUD,EAAO,QACjBE,EAAK,GAEX,GAAID,EAAQ7mF,cAAgBmI,MAC1B,IAAK,IAAIyG,EAAI,EAAGA,EAAIi4E,EAAQ5hF,OAAQ2J,IAAK,CACvC,IAAMknE,EAAS+Q,EAAQj4E,GACnBm4E,OAAO,EACX,GAAU,IAANn4E,GAA+C,IAApC8nE,EAA8B,cAC3CqQ,EAAU,aAC6B,IAAnCrQ,EAA6B,cAAWxxE,IAAOuxE,EAAQxxE,OAAS,GAAM2gE,GAAkBmQ,EAAc,CAAC,aACzGgR,EAAU,WAEiC,IAApCrQ,EAA8B,eAAiB,IAANxxE,GAChD0gE,GAAkBmQ,EAAc,CAAC,eACjCgR,EAAU,iBAGT,GACFn4E,EAAI,GAAyC,IAApC8nE,EAA8B,gBACF,IAApCA,EAA8B,eAAiB,IAANxxE,KACN,IAAnCwxE,EAA6B,cAAWxxE,IAAOuxE,EAAQxxE,OAAS,IAClE2J,IAAOi4E,EAAQ5hF,OAAS,GAEnB2J,EAAI,GAAO,EAAG,CACjB,IAAIo4E,EAAYphB,GAAkBmQ,EAAc,CAAC,kBAC/Br2E,IAAdsnF,GACFA,EAAYphB,GAAkBmQ,EAAc,CAAC,gBAC9BgR,EAAU,YAEtBA,EAAU,UACjB,CAEEn4E,IAAOi4E,EAAQ5hF,OAAS,GAAyC,IAAnCyxE,EAA6B,eAC7DqQ,EAAU,YAC6B,IAAnCrQ,EAA6B,cAAWxxE,IAAOuxE,EAAQxxE,OAAS,GAAM2gE,GAAkBmQ,EAAc,CAAC,aACzGgR,EAAU,WAEiC,IAApCrQ,EAA8B,eAAiB,IAANxxE,GAAW0gE,GAAkBmQ,EAAc,CAAC,eAC5FgR,EAAU,aAGd,IAAMhyD,EAAOk9C,GAAY6D,EAAO,YAAaA,OAAQp2E,OAAWA,EAAW4mE,GACrE2gB,EAAOpR,GAAmBC,EAAQC,EAAcgR,EAASzgB,GACzD4gB,EAAK,CAAEnyD,KAAAA,GACTkyD,EAAK9Q,UAAS+Q,EAAG/Q,QAAU8Q,EAAK9Q,SAChC8Q,EAAK7Q,UAAS8Q,EAAG9Q,QAAU6Q,EAAK7Q,SAChC6Q,EAAK5Q,SAAQ6Q,EAAG7Q,OAAS4Q,EAAK5Q,QAC9B4Q,EAAK3Q,SAAQ4Q,EAAG5Q,OAAS2Q,EAAK3Q,SAC9B2Q,EAAKjT,UAAYA,KAAUkT,EAAGlT,SAAWiT,EAAKjT,UAAYA,IAC1DiT,EAAK7T,WAAaA,KAAW8T,EAAG9T,UAAY6T,EAAK7T,WAAaA,IAC9D6T,EAAKtZ,WAAaA,GAAa+Y,KAAaQ,EAAGvZ,UAAYsZ,EAAKtZ,WAAaA,GAAa+Y,GAE9FI,EAAGpiF,KAAKwiF,EACV,KAEG,CACH,IAAIH,OAAO,EACX,GAAwC,IAApCrQ,EAA8B,eAA8C,IAAnCA,EAA6B,aACxEqQ,EAAU,kBAEP,GAAwC,IAApCrQ,EAA8B,eAA8C,IAAnCA,EAA6B,aAAS,CACtF,IAAIsQ,EAAYphB,GAAkBmQ,EAAc,CAAC,cAC5CiR,IACHA,EAAYphB,GAAkBmQ,EAAc,CAAC,iBAG1CgR,EAAU,WACjB,CACuC,IAAnCrQ,EAA6B,cAA8C,IAAnCA,EAA6B,eACvEqQ,EAAU,aAGZ,IAAMhyD,EAAOk9C,GAAY4U,EAAQ,YAAaA,OAASnnF,OAAWA,EAAW4mE,GACvE2gB,EAAOpR,GAAmBgR,EAAS9Q,EAAcgR,EAASzgB,GAC1D4gB,EAAK,CAAEnyD,KAAAA,GACTkyD,EAAK9Q,UAAS+Q,EAAG/Q,QAAU8Q,EAAK9Q,SAChC8Q,EAAK7Q,UAAS8Q,EAAG9Q,QAAU6Q,EAAK7Q,SAChC6Q,EAAK5Q,SAAQ6Q,EAAG7Q,OAAS4Q,EAAK5Q,QAC9B4Q,EAAK3Q,SAAQ4Q,EAAG5Q,OAAS2Q,EAAK3Q,SAC9B2Q,EAAKjT,UAAYA,KAAUkT,EAAGlT,SAAWiT,EAAKjT,UAAYA,IAC1DiT,EAAK7T,WAAaA,KAAW8T,EAAG9T,UAAY6T,EAAK7T,WAAaA,IAC9D6T,EAAKtZ,WAAaA,GAAa+Y,KAAaQ,EAAGvZ,UAAYsZ,EAAKtZ,WAAaA,GAAa+Y,GAE9FI,EAAGpiF,KAAKwiF,EACV,CACAv6E,EAAKjI,KAAKoiF,EACZ,CAEA,OAAAj0B,GAAA,CACEjxD,KAAM,QACNo5C,IAAAA,EACAoB,KAAAA,EACAk1B,MAAAA,EACAC,OAAAA,EACA5kE,KAAAA,GACIo4E,GAAc,CAAA,EAEtB,CAAC,SAEcH,GAAQuC,EAAAC,GAAA,OAAAC,GAAA7nF,MAAAH,KAAAE,UAAA,CAAA,SAAA8nF,KA8BtB,OA9BsBA,GAAvBnoF,EAAAkB,EAAAoF,MAAA,SAAA8hF,EAAwBn0D,EAAMmzC,GAAO,IAAAgY,EAAAiJ,EAAAvsC,EAAAoB,EAAAorC,EAAAlW,EAAAC,EAAAsR,EAAA4E,EAAA9iD,EAAAyrC,EAAAC,EAAA1jE,EAAA,OAAAvM,EAAAY,MAAA,SAAA0mF,GAAA,OAAA,OAAAA,EAAAthF,KAAAshF,EAAA1jF,MAAA,KAAA,EAMkB,OAL/Cs6E,EAAW1Y,GAAkBzyC,EAAM,CAAC,WAAUo0D,EAC9BtW,GAAYqN,OAAU5+E,OAAWA,GAA/Cs7C,EAAAA,EAAAA,IAAKoB,IAAAA,KAAIorC,EACSnW,GAAQiN,OAAU5+E,OAAWA,GAA/C4xE,EAAAA,EAAAA,MAAOC,IAAAA,OAETsR,EAAM1vD,EAAK,aAAa,iBAAiB,WAAkB,MAAE,QAC7Ds0D,EAAUnhB,EAAqB,YAAEuc,GAAa,OAAC6E,EAAA1jF,KAAA,EAC/BivD,GAAYqT,EAAa,IAAGmhB,GAAQ,KAAA,EAGtB,GAH9B9iD,EAAO+iD,EAAAhkF,KACP0sE,EAAWxK,GAAkBjhC,EAAS,CAAC,eAAgB,UAAW,eAElE0rC,EAAQF,GAAaC,GAEjB,CAAAsX,EAAA1jF,KAAA,GAAA,KAAA,CAAA,OAAA0jF,EAAA7jF,OAAA,SAAS,CAAE,GAAA,KAAA,GAekC,OAbjD8I,EAAO,CACX/K,KAAM,QACNo5C,IAAAA,EACAoB,KAAAA,EACAk1B,MAAAA,EACAC,OAAAA,EACA5kE,KAAM0jE,EAAM1jE,KACZg7E,UAAWtX,EAAMzuE,WAEElC,IAAjB2wE,EAAM93D,SAAsB5L,EAAK4L,OAAS83D,EAAM93D,aAC/B7Y,IAAjB2wE,EAAME,SAAsB5jE,EAAK4jE,OAASF,EAAME,aAC7B7wE,IAAnB2wE,EAAMG,WAAwB7jE,EAAK6jE,SAAWH,EAAMG,eACjC9wE,IAAnB2wE,EAAMC,WAAwB3jE,EAAK2jE,SAAWD,EAAMC,eACpC5wE,IAAhB2wE,EAAMjvD,QAAqBzU,EAAKyU,MAAQivD,EAAMjvD,OAAKsmE,EAAA7jF,OAAA,SAEhD8I,GAAI,KAAA,GAAA,IAAA,MAAA,OAAA+6E,EAAAnhF,OAAA,GAAA+gF,EACZ,KAAAD,GAAA7nF,MAAAH,KAAAE,UAAA,CAED,SAASslF,GAAW1xD,EAAMmzC,GACxB,IAAMgY,EAAW1Y,GAAkBzyC,EAAM,CAAC,WAC1Cy0D,EAAsB3W,GAAYqN,OAAU5+E,OAAWA,GAA/C08C,IAAAA,KAAMpB,IAAAA,IACd6sC,EAA0BxW,GAAQiN,OAAU5+E,OAAWA,GAA/C4xE,IAAAA,MAAOC,IAAAA,OAETuW,EAAgBliB,GAAkBU,EAA2B,kBAAG,CAAC,YAAa,WAAY,SAC1FwV,EAAW,GACjB,GAAIgM,EAAe,CAAA,IACelV,EADfC,EAAA7f,GACE80B,GAAa,IAAhC,IAAkCjV,EAAA1oE,MAAAyoE,EAAAC,EAAA/kE,KAAA/O,MAAA,CAAA,IAC1BgpF,EAAKnK,GADEhL,EAAA50E,MACkBsoE,EAAS,aACpCyhB,GAAIjM,EAASp3E,KAAKqjF,EACxB,CAAC,CAAA,MAAAtoF,GAAAozE,EAAAjpE,EAAAnK,EAAA,CAAA,QAAAozE,EAAA7zD,GAAA,CACH,CAEA,MAAO,CACLpd,KAAM,UACNw6C,KAAAA,EACApB,IAAAA,EACAs2B,MAAAA,EACAC,OAAAA,EACAuK,SAAAA,EAEJ,SA55BA,SAA2B5oB,GAAA,OAAA2jB,GAAAr3E,MAAAH,KAAAE,UAAA"}
\ 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.tagName + '>';\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 += `${isList}>`\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 += `${isList}>`\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']