UNPKG

@flomon-ui/jsmpeg

Version:
1 lines 121 kB
!function(A,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(A="undefined"!=typeof globalThis?globalThis:A||self).JSMpeg=t()}(this,(function(){"use strict";class A{constructor(A,t){this.url=A,this.destination=null,this.request=null,this.streaming=!1,this.completed=!1,this.established=!1,this.progress=0,this.onEstablishedCallback=t.onSourceEstablished,this.onCompletedCallback=t.onSourceCompleted,t.hookOnEstablished&&(this.hookOnEstablished=t.hookOnEstablished)}connect(A){this.destination=A}start(){this.request=new XMLHttpRequest,this.request.onreadystatechange=function(){this.request.readyState===this.request.DONE&&200===this.request.status&&this.onLoad(this.request.response)}.bind(this),this.request.onprogress=this.onProgress.bind(this),this.request.open("GET",this.url),this.request.responseType="arraybuffer",this.request.send()}resume(){}destroy(){this.request.abort()}onProgress(A){this.progress=A.loaded/A.total}onLoad(A){this.established=!0,this.completed=!0,this.progress=1,this.hookOnEstablished&&this.hookOnEstablished(),this.onEstablishedCallback&&this.onEstablishedCallback(this),this.onCompletedCallback&&this.onCompletedCallback(this),this.destination&&this.destination.write(A)}}var t=".canvas,.playButton,.poster,.unmuteButton{height:100%;left:0;position:absolute;top:0;width:100%;z-index:1}.playButton{-ms-flex-pack:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;justify-content:center}.canvas,.poster{display:block}.poster.hidden{display:none}.playButton,.unmuteButton{-webkit-tap-highlight-color:rgba(255,0,0,0);cursor:pointer;opacity:.7}.hidden.playButton,.hidden.unmuteButton{display:none}.playButton{z-index:10}.playButton>svg{fill:#fff;height:12vw;max-height:60px;max-width:60px;width:12vw}.unmuteButton{-ms-flex-pack:end;-ms-flex-align:end;-webkit-align-items:flex-end;align-items:flex-end;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-end;justify-content:flex-end;z-index:10}.unmuteButton>svg{fill:#fff;height:9vw;margin:0 15px 15px 0;max-height:40px;max-width:40px;width:9vw}";!function(A,t){void 0===t&&(t={});var i=t.insertAt;if(A&&"undefined"!=typeof document){var e=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css","top"===i&&e.firstChild?e.insertBefore(s,e.firstChild):e.appendChild(s),s.styleSheet?s.styleSheet.cssText=A:s.appendChild(document.createTextNode(A))}}(t);class i{constructor(A){this.canvas=A.canvas||document.createElement("canvas"),this.width=this.canvas.width,this.height=this.canvas.height,this.enabled=!0,this.context=this.canvas.getContext("2d")}destroy(){}resize(A,t){this.width=0|A,this.height=0|t,this.canvas.width=this.width,this.canvas.height=this.height,this.imageData=this.context.getImageData(0,0,this.width,this.height),l(this.imageData.data,255)}renderProgress(A){const t=this.canvas.width,i=this.canvas.height,e=this.context;e.fillStyle="#222",e.fillRect(0,0,t,i),e.fillStyle="#fff",e.fillRect(0,i-i*A,t,i*A)}render(A,t,i){this.YCbCrToRGBA(A,t,i,this.imageData.data),this.context.putImageData(this.imageData,0,0)}YCbCrToRGBA(A,t,i,e){if(!this.enabled)return;const s=this.width+15>>4<<4,I=s>>1;let g=0,o=s;const B=s+(s-this.width);let C=0;const a=I-(this.width>>1);let Q=0,E=4*this.width;const h=4*this.width,r=this.width>>1,n=this.height>>1;let d,c,l,w,D;for(let s=0;s<n;s++){for(let s=0;s<r;s++){d=t[C],c=i[C],C++,l=d+(103*d>>8)-179,w=(88*c>>8)-44+(183*d>>8)-91,D=c+(198*c>>8)-227;const s=A[g++],I=A[g++];e[Q]=s+l,e[Q+1]=s-w,e[Q+2]=s+D,e[Q+4]=I+l,e[Q+5]=I-w,e[Q+6]=I+D,Q+=8;const B=A[o++],a=A[o++];e[E]=B+l,e[E+1]=B-w,e[E+2]=B+D,e[E+4]=a+l,e[E+5]=a-w,e[E+6]=a+D,E+=8}g+=B,o+=B,Q+=h,E+=h,C+=a}}}class e{constructor(A){this.destination=null,this.canPlay=!1,this.collectTimestamps=!A.streaming,this.bytesWritten=0,this.timestamps=[],this.timestampIndex=0,this.startTime=0,this.decodedTime=0,Object.defineProperty(this,"currentTime",{get:this.getCurrentTime})}destroy(){}connect(A){this.destination=A}bufferGetIndex(){return this.bits.index}bufferSetIndex(A){this.bits.index=A}bufferWrite(A){return this.bits.write(A)}write(A,t){this.collectTimestamps&&(0===this.timestamps.length&&(this.startTime=A,this.decodedTime=A),this.timestamps.push({index:this.bytesWritten<<3,time:A})),this.bytesWritten+=this.bufferWrite(t),this.canPlay=!0}seek(A){if(!this.collectTimestamps)return;this.timestampIndex=0;for(let t=0;t<this.timestamps.length&&!(this.timestamps[t].time>A);t++)this.timestampIndex=t;const t=this.timestamps[this.timestampIndex];t?(this.bufferSetIndex(t.index),this.decodedTime=t.time):(this.bits.index=0,this.decodedTime=this.startTime)}decode(){this.advanceDecodedTime(0)}advanceDecodedTime(A){if(this.collectTimestamps){let A=-1;const t=this.bufferGetIndex();for(let i=this.timestampIndex;i<this.timestamps.length&&!(this.timestamps[i].index>t);i++)A=i;if(-1!==A&&A!==this.timestampIndex)return this.timestampIndex=A,void(this.decodedTime=this.timestamps[this.timestampIndex].time)}this.decodedTime+=A}getCurrentTime(){return this.decodedTime}}class s{constructor(A,t){"object"==typeof A?(this.bytes=A instanceof Uint8Array?A:new Uint8Array(A),this.byteLength=this.bytes.length):(this.bytes=new Uint8Array(A||1048576),this.byteLength=0),this.mode=t||s.MODE.EXPAND,this.index=0}resize(A){const t=new Uint8Array(A);0!==this.byteLength&&(this.byteLength=Math.min(this.byteLength,A),t.set(this.bytes,0,this.byteLength)),this.bytes=t,this.index=Math.min(this.index,this.byteLength<<3)}evict(A){const t=this.index>>3,i=this.bytes.length-this.byteLength;if(this.index===this.byteLength<<3||A>i+t)return this.byteLength=0,void(this.index=0);0!==t&&(this.bytes.copyWithin?this.bytes.copyWithin(0,t,this.byteLength):this.bytes.set(this.bytes.subarray(t,this.byteLength)),this.byteLength-=t,this.index-=t<<3)}write(A){const t="object"==typeof A[0];let i=0;const e=this.bytes.length-this.byteLength;if(t){i=0;for(let t=0;t<A.length;t++)i+=A[t].byteLength}else i=A.byteLength;if(i>e)if(this.mode===s.MODE.EXPAND){const A=Math.max(2*this.bytes.length,i-e);this.resize(A)}else this.evict(i);if(t)for(let t=0;t<A.length;t++)this.appendSingleBuffer(A[t]);else this.appendSingleBuffer(A);return i}appendSingleBuffer(A){A=A instanceof Uint8Array?A:new Uint8Array(A),this.bytes.set(A,this.byteLength),this.byteLength+=A.length}findNextStartCode(){for(let A=this.index+7>>3;A<this.byteLength;A++)if(0===this.bytes[A]&&0===this.bytes[A+1]&&1===this.bytes[A+2])return this.index=A+4<<3,this.bytes[A+3];return this.index=this.byteLength<<3,-1}findStartCode(A){const t=this.findNextStartCode();return t===A||-1===t?t:-1}nextBytesAreStartCode(){const A=this.index+7>>3;return A>=this.byteLength||0===this.bytes[A]&&0===this.bytes[A+1]&&1===this.bytes[A+2]}peek(A){let t=this.index,i=0;for(;A;){const e=8-(7&t),s=e<A?e:A,I=e-s;i=i<<s|(this.bytes[t>>3]&255>>8-s<<I)>>I,t+=s,A-=s}return i}read(A){const t=this.peek(A);return this.index+=A,t}skip(A){return this.index+=A}rewind(A){this.index=Math.max(this.index-A,0)}has(A){return(this.byteLength<<3)-this.index>=A}}s.MODE={EVICT:1,EXPAND:2};class I extends e{constructor(A){super(A),this.onDecodeCallback=A.onAudioDecode;const t=A.audioBufferSize||131072,i=A.streaming?s.MODE.EVICT:s.MODE.EXPAND;this.bits=new s(t,i),this.left=new Float32Array(1152),this.right=new Float32Array(1152),this.sampleRate=44100,this.D=new Float32Array(1024),this.D.set(I.SYNTHESIS_WINDOW,0),this.D.set(I.SYNTHESIS_WINDOW,512),this.V=[new Float32Array(1024),new Float32Array(1024)],this.U=new Int32Array(32),this.VPos=0,this.allocation=[new Array(32),new Array(32)],this.scaleFactorInfo=[new Uint8Array(32),new Uint8Array(32)],this.scaleFactor=[new Array(32),new Array(32)],this.sample=[new Array(32),new Array(32)];for(let A=0;A<2;A++)for(let t=0;t<32;t++)this.scaleFactor[A][t]=[0,0,0],this.sample[A][t]=[0,0,0]}decode(){const A=c(),t=this.bits.index>>3;if(t>=this.bits.byteLength)return!1;const i=this.decodeFrame(this.left,this.right);if(this.bits.index=t+i<<3,!i)return!1;this.destination&&this.destination.play(this.sampleRate,this.left,this.right),this.advanceDecodedTime(this.left.length/this.sampleRate);const e=c()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,e),!0}getCurrentTime(){const A=this.destination?this.destination.enqueuedTime:0;return this.decodedTime-A}decodeFrame(A,t){const i=this.bits.read(11),e=this.bits.read(2),s=this.bits.read(2),g=!this.bits.read(1);if(i!==I.FRAME_SYNC||e!==I.VERSION.MPEG_1||s!==I.LAYER.II)return 0;let o=this.bits.read(4)-1;if(o>13)return 0;let B=this.bits.read(2),C=I.SAMPLE_RATE[B];if(3===B)return 0;e===I.VERSION.MPEG_2&&(B+=4,o+=14);const a=this.bits.read(1);this.bits.read(1);const Q=this.bits.read(2);let E=0;Q===I.MODE.JOINT_STEREO?E=this.bits.read(2)+1<<2:(this.bits.skip(2),E=Q===I.MODE.MONO?0:32),this.bits.skip(4),g&&this.bits.skip(16);const h=I.BIT_RATE[o];C=I.SAMPLE_RATE[B];const r=144e3*h/C+a|0;let n=0,d=0;if(e===I.VERSION.MPEG_2)n=2,d=30;else{const A=Q===I.MODE.MONO?0:1,t=I.QUANT_LUT_STEP_1[A][o];n=I.QUANT_LUT_STEP_2[t][B],d=63&n,n>>=6}E>d&&(E=d);for(let A=0;A<E;A++)this.allocation[0][A]=this.readAllocation(A,n),this.allocation[1][A]=this.readAllocation(A,n);for(let A=E;A<d;A++)this.allocation[0][A]=this.allocation[1][A]=this.readAllocation(A,n);const c=Q===I.MODE.MONO?1:2;for(let A=0;A<d;A++){for(let t=0;t<c;t++)this.allocation[t][A]&&(this.scaleFactorInfo[t][A]=this.bits.read(2));Q===I.MODE.MONO&&(this.scaleFactorInfo[1][A]=this.scaleFactorInfo[0][A])}for(let A=0;A<d;A++){for(let t=0;t<c;t++)if(this.allocation[t][A]){const i=this.scaleFactor[t][A];switch(this.scaleFactorInfo[t][A]){case 0:i[0]=this.bits.read(6),i[1]=this.bits.read(6),i[2]=this.bits.read(6);break;case 1:i[0]=i[1]=this.bits.read(6),i[2]=this.bits.read(6);break;case 2:i[0]=i[1]=i[2]=this.bits.read(6);break;case 3:i[0]=this.bits.read(6),i[1]=i[2]=this.bits.read(6)}}Q===I.MODE.MONO&&(this.scaleFactor[1][A][0]=this.scaleFactor[0][A][0],this.scaleFactor[1][A][1]=this.scaleFactor[0][A][1],this.scaleFactor[1][A][2]=this.scaleFactor[0][A][2])}let w=0;for(let i=0;i<3;i++)for(let e=0;e<4;e++){for(let A=0;A<E;A++)this.readSamples(0,A,i),this.readSamples(1,A,i);for(let A=E;A<d;A++)this.readSamples(0,A,i),this.sample[1][A][0]=this.sample[0][A][0],this.sample[1][A][1]=this.sample[0][A][1],this.sample[1][A][2]=this.sample[0][A][2];for(let A=d;A<32;A++)this.sample[0][A][0]=0,this.sample[0][A][1]=0,this.sample[0][A][2]=0,this.sample[1][A][0]=0,this.sample[1][A][1]=0,this.sample[1][A][2]=0;for(let i=0;i<3;i++){this.VPos=this.VPos-64&1023;for(let e=0;e<2;e++){I.MatrixTransform(this.sample[e],i,this.V[e],this.VPos),l(this.U,0);let s=512-(this.VPos>>1),g=this.VPos%128>>1;for(;g<1024;){for(let A=0;A<32;++A)this.U[A]+=this.D[s++]*this.V[e][g++];g+=96,s+=32}for(g=1120-g,s-=480;g<1024;){for(let A=0;A<32;++A)this.U[A]+=this.D[s++]*this.V[e][g++];g+=96,s+=32}const o=0===e?A:t;for(let A=0;A<32;A++)o[w+A]=this.U[A]/2147418112}w+=32}}return this.sampleRate=C,r}readAllocation(A,t){const i=I.QUANT_LUT_STEP_3[t][A],e=I.QUANT_LUT_STEP4[15&i][this.bits.read(i>>4)];return e?I.QUANT_TAB[e-1]:0}readSamples(A,t,i){const e=this.allocation[A][t];let s=this.scaleFactor[A][t][i];const g=this.sample[A][t];let o=0;if(!e)return void(g[0]=g[1]=g[2]=0);if(63===s)s=0;else{const A=s/3|0;s=I.SCALEFACTOR_BASE[s%3]+(1<<A>>1)>>A}let B=e.levels;e.group?(o=this.bits.read(e.bits),g[0]=o%B,o=o/B|0,g[1]=o%B,g[2]=o/B|0):(g[0]=this.bits.read(e.bits),g[1]=this.bits.read(e.bits),g[2]=this.bits.read(e.bits));const C=65536/(B+1)|0;B=(B+1>>1)-1,o=(B-g[0])*C,g[0]=o*(s>>12)+(o*(4095&s)+2048>>12)>>12,o=(B-g[1])*C,g[1]=o*(s>>12)+(o*(4095&s)+2048>>12)>>12,o=(B-g[2])*C,g[2]=o*(s>>12)+(o*(4095&s)+2048>>12)>>12}static MatrixTransform(A,t,i,e){let s,I,g,o,B,C,a,Q,E,h,r,n,d,c,l,w,D,u,p,m,y,R,k,G,F,b,M,q,S,f,N,L,J;s=A[0][t]+A[31][t],I=.500602998235*(A[0][t]-A[31][t]),g=A[1][t]+A[30][t],o=.505470959898*(A[1][t]-A[30][t]),B=A[2][t]+A[29][t],C=.515447309923*(A[2][t]-A[29][t]),a=A[3][t]+A[28][t],Q=.53104259109*(A[3][t]-A[28][t]),E=A[4][t]+A[27][t],h=.553103896034*(A[4][t]-A[27][t]),r=A[5][t]+A[26][t],n=.582934968206*(A[5][t]-A[26][t]),d=A[6][t]+A[25][t],c=.622504123036*(A[6][t]-A[25][t]),l=A[7][t]+A[24][t],w=.674808341455*(A[7][t]-A[24][t]),D=A[8][t]+A[23][t],u=.744536271002*(A[8][t]-A[23][t]),p=A[9][t]+A[22][t],m=.839349645416*(A[9][t]-A[22][t]),y=A[10][t]+A[21][t],R=.972568237862*(A[10][t]-A[21][t]),k=A[11][t]+A[20][t],G=1.16943993343*(A[11][t]-A[20][t]),F=A[12][t]+A[19][t],b=1.48416461631*(A[12][t]-A[19][t]),M=A[13][t]+A[18][t],q=2.05778100995*(A[13][t]-A[18][t]),S=A[14][t]+A[17][t],f=3.40760841847*(A[14][t]-A[17][t]),N=A[15][t]+A[16][t],L=10.1900081235*(A[15][t]-A[16][t]),J=s+N,N=.502419286188*(s-N),s=g+S,S=.52249861494*(g-S),g=B+M,M=.566944034816*(B-M),B=a+F,F=.64682178336*(a-F),a=E+k,k=.788154623451*(E-k),E=r+y,y=1.06067768599*(r-y),r=d+p,p=1.72244709824*(d-p),d=l+D,D=5.10114861869*(l-D),l=J+d,d=.509795579104*(J-d),J=s+r,s=.601344886935*(s-r),r=g+E,E=.899976223136*(g-E),g=B+a,a=2.56291544774*(B-a),B=l+g,l=.541196100146*(l-g),g=J+r,r=1.30656296488*(J-r),J=B+g,B=.707106781187*(B-g),g=l+r,l=.707106781187*(l-r),g+=l,r=d+a,d=.541196100146*(d-a),a=s+E,E=1.30656296488*(s-E),s=r+a,a=.707106781187*(r-a),r=d+E,d=.707106781187*(d-E),r+=d,s+=r,r+=a,a+=d,E=N+D,N=.509795579104*(N-D),D=S+p,S=.601344886935*(S-p),p=M+y,y=.899976223136*(M-y),M=F+k,k=2.56291544774*(F-k),F=E+M,E=.541196100146*(E-M),M=D+p,p=1.30656296488*(D-p),D=F+M,M=.707106781187*(F-M),F=E+p,p=.707106781187*(E-p),F+=p,E=N+k,N=.541196100146*(N-k),k=S+y,y=1.30656296488*(S-y),S=E+k,k=.707106781187*(E-k),E=N+y,N=.707106781187*(N-y),E+=N,S+=E,E+=k,k+=N,D+=S,S+=F,F+=E,E+=M,M+=k,k+=p,p+=N,y=I+L,I=.502419286188*(I-L),L=o+f,o=.52249861494*(o-f),f=C+q,q=.566944034816*(C-q),C=Q+b,Q=.64682178336*(Q-b),b=h+G,h=.788154623451*(h-G),G=n+R,R=1.06067768599*(n-R),n=c+m,m=1.72244709824*(c-m),c=w+u,w=5.10114861869*(w-u),u=y+c,c=.509795579104*(y-c),y=L+n,L=.601344886935*(L-n),n=f+G,G=.899976223136*(f-G),f=C+b,b=2.56291544774*(C-b),C=u+f,u=.541196100146*(u-f),f=y+n,n=1.30656296488*(y-n),y=C+f,f=.707106781187*(C-f),C=u+n,n=.707106781187*(u-n),C+=n,u=c+b,b=.541196100146*(c-b),c=L+G,G=1.30656296488*(L-G),L=u+c,c=.707106781187*(u-c),u=b+G,G=.707106781187*(b-G),u+=G,L+=u,u+=c,b=c+G,c=I+w,I=.509795579104*(I-w),w=o+m,o=.601344886935*(o-m),m=q+R,R=.899976223136*(q-R),q=Q+h,h=2.56291544774*(Q-h),Q=c+q,c=.541196100146*(c-q),q=w+m,m=1.30656296488*(w-m),w=Q+q,q=.707106781187*(Q-q),Q=c+m,m=.707106781187*(c-m),Q+=m,c=I+h,I=.541196100146*(I-h),h=o+R,R=1.30656296488*(o-R),o=c+h,h=.707106781187*(c-h),c=I+R,I=.707106781187*(I-R),c+=I,o+=c,c+=h,h+=I,w+=o,o+=Q,Q+=c,c+=q,q+=h,h+=m,m+=I,y+=w,w+=L,L+=o,o+=C,C+=Q,Q+=u,u+=c,c+=f,f+=q,q+=b,b+=h,h+=n,n+=m,m+=G,G+=I,i[e+48]=-J,i[e+49]=i[e+47]=-y,i[e+50]=i[e+46]=-D,i[e+51]=i[e+45]=-w,i[e+52]=i[e+44]=-s,i[e+53]=i[e+43]=-L,i[e+54]=i[e+42]=-S,i[e+55]=i[e+41]=-o,i[e+56]=i[e+40]=-g,i[e+57]=i[e+39]=-C,i[e+58]=i[e+38]=-F,i[e+59]=i[e+37]=-Q,i[e+60]=i[e+36]=-r,i[e+61]=i[e+35]=-u,i[e+62]=i[e+34]=-E,i[e+63]=i[e+33]=-c,i[e+32]=-B,i[e+0]=B,i[e+31]=-f,i[e+1]=f,i[e+30]=-M,i[e+2]=M,i[e+29]=-q,i[e+3]=q,i[e+28]=-a,i[e+4]=a,i[e+27]=-b,i[e+5]=b,i[e+26]=-k,i[e+6]=k,i[e+25]=-h,i[e+7]=h,i[e+24]=-l,i[e+8]=l,i[e+23]=-n,i[e+9]=n,i[e+22]=-p,i[e+10]=p,i[e+21]=-m,i[e+11]=m,i[e+20]=-d,i[e+12]=d,i[e+19]=-G,i[e+13]=G,i[e+18]=-N,i[e+14]=N,i[e+17]=-I,i[e+15]=I,i[e+16]=0}}I.FRAME_SYNC=2047,I.VERSION={MPEG_2_5:0,MPEG_2:2,MPEG_1:3},I.LAYER={III:1,II:2,I:3},I.MODE={STEREO:0,JOINT_STEREO:1,DUAL_CHANNEL:2,MONO:3},I.SAMPLE_RATE=new Uint16Array([44100,48e3,32e3,0,22050,24e3,16e3,0]),I.BIT_RATE=new Uint16Array([32,48,56,64,80,96,112,128,160,192,224,256,320,384,8,16,24,32,40,48,56,64,80,96,112,128,144,160]),I.SCALEFACTOR_BASE=new Uint32Array([33554432,26632170,21137968]),I.SYNTHESIS_WINDOW=new Float32Array([0,-.5,-.5,-.5,-.5,-.5,-.5,-1,-1,-1,-1,-1.5,-1.5,-2,-2,-2.5,-2.5,-3,-3.5,-3.5,-4,-4.5,-5,-5.5,-6.5,-7,-8,-8.5,-9.5,-10.5,-12,-13,-14.5,-15.5,-17.5,-19,-20.5,-22.5,-24.5,-26.5,-29,-31.5,-34,-36.5,-39.5,-42.5,-45.5,-48.5,-52,-55.5,-58.5,-62.5,-66,-69.5,-73.5,-77,-80.5,-84.5,-88,-91.5,-95,-98,-101,-104,106.5,109,111,112.5,113.5,114,114,113.5,112,110.5,107.5,104,100,94.5,88.5,81.5,73,63.5,53,41.5,28.5,14.5,-1,-18,-36,-55.5,-76.5,-98.5,-122,-147,-173.5,-200.5,-229.5,-259.5,-290.5,-322.5,-355.5,-389.5,-424,-459.5,-495.5,-532,-568.5,-605,-641.5,-678,-714,-749,-783.5,-817,-849,-879.5,-908.5,-935,-959.5,-981,-1000.5,-1016,-1028.5,-1037.5,-1042.5,-1043.5,-1040,-1031.5,1018.5,1e3,976,946.5,911,869.5,822,767.5,707,640,565.5,485,397,302.5,201,92.5,-22.5,-144,-272.5,-407,-547.5,-694,-846,-1003,-1165,-1331.5,-1502,-1675.5,-1852.5,-2031.5,-2212.5,-2394,-2576.5,-2758.5,-2939.5,-3118.5,-3294.5,-3467.5,-3635.5,-3798.5,-3955,-4104.5,-4245.5,-4377.5,-4499,-4609.5,-4708,-4792.5,-4863.5,-4919,-4958,-4979.5,-4983,-4967.5,-4931.5,-4875,-4796,-4694.5,-4569.5,-4420,-4246,-4046,-3820,-3567,3287,2979.5,2644,2280.5,1888,1467.5,1018.5,541,35,-499,-1061,-1650,-2266.5,-2909,-3577,-4270,-4987.5,-5727.5,-6490,-7274,-8077.5,-8899.5,-9739,-10594.5,-11464.5,-12347,-13241,-14144.5,-15056,-15973.5,-16895.5,-17820,-18744.5,-19668,-20588,-21503,-22410.5,-23308.5,-24195,-25068.5,-25926.5,-26767,-27589,-28389,-29166.5,-29919,-30644.5,-31342,-32009.5,-32645,-33247,-33814.5,-34346,-34839.5,-35295,-35710,-36084.5,-36417.5,-36707.5,-36954,-37156.5,-37315,-37428,-37496,37519,37496,37428,37315,37156.5,36954,36707.5,36417.5,36084.5,35710,35295,34839.5,34346,33814.5,33247,32645,32009.5,31342,30644.5,29919,29166.5,28389,27589,26767,25926.5,25068.5,24195,23308.5,22410.5,21503,20588,19668,18744.5,17820,16895.5,15973.5,15056,14144.5,13241,12347,11464.5,10594.5,9739,8899.5,8077.5,7274,6490,5727.5,4987.5,4270,3577,2909,2266.5,1650,1061,499,-35,-541,-1018.5,-1467.5,-1888,-2280.5,-2644,-2979.5,3287,3567,3820,4046,4246,4420,4569.5,4694.5,4796,4875,4931.5,4967.5,4983,4979.5,4958,4919,4863.5,4792.5,4708,4609.5,4499,4377.5,4245.5,4104.5,3955,3798.5,3635.5,3467.5,3294.5,3118.5,2939.5,2758.5,2576.5,2394,2212.5,2031.5,1852.5,1675.5,1502,1331.5,1165,1003,846,694,547.5,407,272.5,144,22.5,-92.5,-201,-302.5,-397,-485,-565.5,-640,-707,-767.5,-822,-869.5,-911,-946.5,-976,-1e3,1018.5,1031.5,1040,1043.5,1042.5,1037.5,1028.5,1016,1000.5,981,959.5,935,908.5,879.5,849,817,783.5,749,714,678,641.5,605,568.5,532,495.5,459.5,424,389.5,355.5,322.5,290.5,259.5,229.5,200.5,173.5,147,122,98.5,76.5,55.5,36,18,1,-14.5,-28.5,-41.5,-53,-63.5,-73,-81.5,-88.5,-94.5,-100,-104,-107.5,-110.5,-112,-113.5,-114,-114,-113.5,-112.5,-111,-109,106.5,104,101,98,95,91.5,88,84.5,80.5,77,73.5,69.5,66,62.5,58.5,55.5,52,48.5,45.5,42.5,39.5,36.5,34,31.5,29,26.5,24.5,22.5,20.5,19,17.5,15.5,14.5,13,12,10.5,9.5,8.5,8,7,6.5,5.5,5,4.5,4,3.5,3.5,3,2.5,2.5,2,2,1.5,1.5,1,1,1,1,.5,.5,.5,.5,.5,.5]),I.QUANT_LUT_STEP_1=[[0,0,1,1,1,2,2,2,2,2,2,2,2,2],[0,0,0,0,0,0,1,1,1,2,2,2,2,2]],I.QUANT_TAB={A:91,B:94,C:8,D:12},I.QUANT_LUT_STEP_2=[[I.QUANT_TAB.C,I.QUANT_TAB.C,I.QUANT_TAB.D],[I.QUANT_TAB.A,I.QUANT_TAB.A,I.QUANT_TAB.A],[I.QUANT_TAB.B,I.QUANT_TAB.A,I.QUANT_TAB.B]],I.QUANT_LUT_STEP_3=[[68,68,52,52,52,52,52,52,52,52,52,52],[67,67,67,66,66,66,66,66,66,66,66,49,49,49,49,49,49,49,49,49,49,49,49,32,32,32,32,32,32,32],[69,69,69,69,52,52,52,52,52,52,52,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36]],I.QUANT_LUT_STEP4=[[0,1,2,17],[0,1,2,3,4,5,6,17],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17],[0,1,3,5,6,7,8,9,10,11,12,13,14,15,16,17],[0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,17],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]],I.QUANT_TAB=[{levels:3,group:1,bits:5},{levels:5,group:1,bits:7},{levels:7,group:0,bits:3},{levels:9,group:1,bits:10},{levels:15,group:0,bits:4},{levels:31,group:0,bits:5},{levels:63,group:0,bits:6},{levels:127,group:0,bits:7},{levels:255,group:0,bits:8},{levels:511,group:0,bits:9},{levels:1023,group:0,bits:10},{levels:2047,group:0,bits:11},{levels:4095,group:0,bits:12},{levels:8191,group:0,bits:13},{levels:16383,group:0,bits:14},{levels:32767,group:0,bits:15},{levels:65535,group:0,bits:16}];class g extends e{constructor(A){super(A),this.onDecodeCallback=A.onAudioDecode,this.module=A.wasmModule,this.bufferSize=A.audioBufferSize||131072,this.bufferMode=A.streaming?s.MODE.EVICT:s.MODE.EXPAND,this.sampleRate=0}initializeWasmDecoder(){this.module.instance&&(this.instance=this.module.instance,this.functions=this.module.instance.exports,this.decoder=this.functions._mp2_decoder_create(this.bufferSize,this.bufferMode))}destroy(){this.decoder&&this.functions._mp2_decoder_destroy(this.decoder)}bufferGetIndex(){if(this.decoder)return this.functions._mp2_decoder_get_index(this.decoder)}bufferSetIndex(A){this.decoder&&this.functions._mp2_decoder_set_index(this.decoder,A)}bufferWrite(A){this.decoder||this.initializeWasmDecoder();let t=0;for(let i=0;i<A.length;i++)t+=A[i].length;let i=this.functions._mp2_decoder_get_write_ptr(this.decoder,t);for(let t=0;t<A.length;t++)this.instance.heapU8.set(A[t],i),i+=A[t].length;return this.functions._mp2_decoder_did_write(this.decoder,t),t}decode(){const A=c();if(!this.decoder)return!1;if(0===this.functions._mp2_decoder_decode(this.decoder))return!1;if(this.sampleRate||(this.sampleRate=this.functions._mp2_decoder_get_sample_rate(this.decoder)),this.destination){const A=this.functions._mp2_decoder_get_left_channel_ptr(this.decoder),t=this.functions._mp2_decoder_get_right_channel_ptr(this.decoder),i=A/Float32Array.BYTES_PER_ELEMENT,e=t/Float32Array.BYTES_PER_ELEMENT,s=this.instance.heapF32.subarray(i,i+g.SAMPLES_PER_FRAME),I=this.instance.heapF32.subarray(e,e+g.SAMPLES_PER_FRAME);this.destination.play(this.sampleRate,s,I)}this.advanceDecodedTime(g.SAMPLES_PER_FRAME/this.sampleRate);const t=c()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,t),!0}getCurrentTime(){const A=this.destination?this.destination.enqueuedTime:0;return this.decodedTime-A}}g.SAMPLES_PER_FRAME=1152;class o extends e{constructor(A){super(A),this.onDecodeCallback=A.onVideoDecode;const t=A.videoBufferSize||524288,i=A.streaming?s.MODE.EVICT:s.MODE.EXPAND;this.bits=new s(t,i),this.customIntraQuantMatrix=new Uint8Array(64),this.customNonIntraQuantMatrix=new Uint8Array(64),this.blockData=new Int32Array(64),this.currentFrame=0,this.decodeFirstFrame=!1!==A.decodeFirstFrame}write(A,t){if(e.prototype.write.call(this,A,t),!this.hasSequenceHeader){if(-1===this.bits.findStartCode(o.START.SEQUENCE))return!1;this.decodeSequenceHeader(),this.decodeFirstFrame&&this.decode()}}decode(){const A=c();if(!this.hasSequenceHeader)return!1;if(-1===this.bits.findStartCode(o.START.PICTURE))return!1;this.decodePicture(),this.advanceDecodedTime(1/this.frameRate);const t=c()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,t),!0}readHuffman(A){let t=0;do{t=A[t+this.bits.read(1)]}while(t>=0&&0!==A[t]);return A[t+2]}decodeSequenceHeader(){const A=this.bits.read(12),t=this.bits.read(12);if(this.bits.skip(4),this.frameRate=o.PICTURE_RATE[this.bits.read(4)],this.bits.skip(30),A===this.width&&t===this.height||(this.width=A,this.height=t,this.initBuffers(),this.destination&&this.destination.resize(A,t)),this.bits.read(1)){for(let A=0;A<64;A++)this.customIntraQuantMatrix[o.ZIG_ZAG[A]]=this.bits.read(8);this.intraQuantMatrix=this.customIntraQuantMatrix}if(this.bits.read(1)){for(let A=0;A<64;A++){const t=o.ZIG_ZAG[A];this.customNonIntraQuantMatrix[t]=this.bits.read(8)}this.nonIntraQuantMatrix=this.customNonIntraQuantMatrix}this.hasSequenceHeader=!0}initBuffers(){this.intraQuantMatrix=o.DEFAULT_INTRA_QUANT_MATRIX,this.nonIntraQuantMatrix=o.DEFAULT_NON_INTRA_QUANT_MATRIX,this.mbWidth=this.width+15>>4,this.mbHeight=this.height+15>>4,this.mbSize=this.mbWidth*this.mbHeight,this.codedWidth=this.mbWidth<<4,this.codedHeight=this.mbHeight<<4,this.codedSize=this.codedWidth*this.codedHeight,this.halfWidth=this.mbWidth<<3,this.halfHeight=this.mbHeight<<3,this.currentY=new Uint8ClampedArray(this.codedSize),this.currentY32=new Uint32Array(this.currentY.buffer),this.currentCr=new Uint8ClampedArray(this.codedSize>>2),this.currentCr32=new Uint32Array(this.currentCr.buffer),this.currentCb=new Uint8ClampedArray(this.codedSize>>2),this.currentCb32=new Uint32Array(this.currentCb.buffer),this.forwardY=new Uint8ClampedArray(this.codedSize),this.forwardY32=new Uint32Array(this.forwardY.buffer),this.forwardCr=new Uint8ClampedArray(this.codedSize>>2),this.forwardCr32=new Uint32Array(this.forwardCr.buffer),this.forwardCb=new Uint8ClampedArray(this.codedSize>>2),this.forwardCb32=new Uint32Array(this.forwardCb.buffer)}decodePicture(){if(this.currentFrame++,this.bits.skip(10),this.pictureType=this.bits.read(3),this.bits.skip(16),this.pictureType<=0||this.pictureType>=o.PICTURE_TYPE.B)return;if(this.pictureType===o.PICTURE_TYPE.PREDICTIVE){if(this.fullPelForward=this.bits.read(1),this.forwardFCode=this.bits.read(3),0===this.forwardFCode)return;this.forwardRSize=this.forwardFCode-1,this.forwardF=1<<this.forwardRSize}let A=0;do{A=this.bits.findNextStartCode()}while(A===o.START.EXTENSION||A===o.START.USER_DATA);for(;A>=o.START.SLICE_FIRST&&A<=o.START.SLICE_LAST;)this.decodeSlice(255&A),A=this.bits.findNextStartCode();if(-1!==A&&this.bits.rewind(32),this.destination&&this.destination.render(this.currentY,this.currentCr,this.currentCb,!0),this.pictureType===o.PICTURE_TYPE.INTRA||this.pictureType===o.PICTURE_TYPE.PREDICTIVE){const A=this.forwardY,t=this.forwardY32,i=this.forwardCr,e=this.forwardCr32,s=this.forwardCb,I=this.forwardCb32;this.forwardY=this.currentY,this.forwardY32=this.currentY32,this.forwardCr=this.currentCr,this.forwardCr32=this.currentCr32,this.forwardCb=this.currentCb,this.forwardCb32=this.currentCb32,this.currentY=A,this.currentY32=t,this.currentCr=i,this.currentCr32=e,this.currentCb=s,this.currentCb32=I}}decodeSlice(A){for(this.sliceBegin=!0,this.macroblockAddress=(A-1)*this.mbWidth-1,this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0,this.dcPredictorY=128,this.dcPredictorCr=128,this.dcPredictorCb=128,this.quantizerScale=this.bits.read(5);this.bits.read(1);)this.bits.skip(8);do{this.decodeMacroblock()}while(!this.bits.nextBytesAreStartCode())}decodeMacroblock(){let A=0,t=this.readHuffman(o.MACROBLOCK_ADDRESS_INCREMENT);for(;34===t;)t=this.readHuffman(o.MACROBLOCK_ADDRESS_INCREMENT);for(;35===t;)A+=33,t=this.readHuffman(o.MACROBLOCK_ADDRESS_INCREMENT);if(A+=t,this.sliceBegin)this.sliceBegin=!1,this.macroblockAddress+=A;else{if(this.macroblockAddress+A>=this.mbSize)return;for(A>1&&(this.dcPredictorY=128,this.dcPredictorCr=128,this.dcPredictorCb=128,this.pictureType===o.PICTURE_TYPE.PREDICTIVE&&(this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0));A>1;)this.macroblockAddress++,this.mbRow=this.macroblockAddress/this.mbWidth|0,this.mbCol=this.macroblockAddress%this.mbWidth,this.copyMacroblock(this.motionFwH,this.motionFwV,this.forwardY,this.forwardCr,this.forwardCb),A--;this.macroblockAddress++}this.mbRow=this.macroblockAddress/this.mbWidth|0,this.mbCol=this.macroblockAddress%this.mbWidth;const i=o.MACROBLOCK_TYPE[this.pictureType];this.macroblockType=this.readHuffman(i),this.macroblockIntra=1&this.macroblockType,this.macroblockMotFw=8&this.macroblockType,0!=(16&this.macroblockType)&&(this.quantizerScale=this.bits.read(5)),this.macroblockIntra?(this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0):(this.dcPredictorY=128,this.dcPredictorCr=128,this.dcPredictorCb=128,this.decodeMotionVectors(),this.copyMacroblock(this.motionFwH,this.motionFwV,this.forwardY,this.forwardCr,this.forwardCb));const e=0!=(2&this.macroblockType)?this.readHuffman(o.CODE_BLOCK_PATTERN):this.macroblockIntra?63:0;for(let A=0,t=32;A<6;A++)0!=(e&t)&&this.decodeBlock(A),t>>=1}decodeMotionVectors(){let A,t,i=0;this.macroblockMotFw?(A=this.readHuffman(o.MOTION),0!==A&&1!==this.forwardF?(i=this.bits.read(this.forwardRSize),t=(Math.abs(A)-1<<this.forwardRSize)+i+1,A<0&&(t=-t)):t=A,this.motionFwHPrev+=t,this.motionFwHPrev>(this.forwardF<<4)-1?this.motionFwHPrev-=this.forwardF<<5:this.motionFwHPrev<-this.forwardF<<4&&(this.motionFwHPrev+=this.forwardF<<5),this.motionFwH=this.motionFwHPrev,this.fullPelForward&&(this.motionFwH<<=1),A=this.readHuffman(o.MOTION),0!==A&&1!==this.forwardF?(i=this.bits.read(this.forwardRSize),t=(Math.abs(A)-1<<this.forwardRSize)+i+1,A<0&&(t=-t)):t=A,this.motionFwVPrev+=t,this.motionFwVPrev>(this.forwardF<<4)-1?this.motionFwVPrev-=this.forwardF<<5:this.motionFwVPrev<-this.forwardF<<4&&(this.motionFwVPrev+=this.forwardF<<5),this.motionFwV=this.motionFwVPrev,this.fullPelForward&&(this.motionFwV<<=1)):this.pictureType===o.PICTURE_TYPE.PREDICTIVE&&(this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0)}copyMacroblock(A,t,i,e,s){let I,g,o,B,C,a,Q,E,h;const r=this.currentY32,n=this.currentCb32,d=this.currentCr32;let c,l,w,D,u,p,m,y,R,k;if(I=this.codedWidth,g=I-16,o=A>>1,B=t>>1,C=1==(1&A),a=1==(1&t),Q=((this.mbRow<<4)+B)*I+(this.mbCol<<4)+o,E=this.mbRow*I+this.mbCol<<2,h=E+(I<<2),C)if(a)for(;E<h;){for(l=i[Q]+i[Q+I],Q++,c=0;c<4;c++)w=i[Q]+i[Q+I],Q++,D=l+w+2>>2&255,l=i[Q]+i[Q+I],Q++,D|=l+w+2<<6&65280,w=i[Q]+i[Q+I],Q++,D|=l+w+2<<14&16711680,l=i[Q]+i[Q+I],Q++,D|=l+w+2<<22&4278190080,r[E++]=D;E+=g>>2,Q+=g-1}else for(;E<h;){for(l=i[Q++],c=0;c<4;c++)w=i[Q++],D=l+w+1>>1&255,l=i[Q++],D|=l+w+1<<7&65280,w=i[Q++],D|=l+w+1<<15&16711680,l=i[Q++],D|=l+w+1<<23&4278190080,r[E++]=D;E+=g>>2,Q+=g-1}else if(a)for(;E<h;){for(c=0;c<4;c++)D=i[Q]+i[Q+I]+1>>1&255,Q++,D|=i[Q]+i[Q+I]+1<<7&65280,Q++,D|=i[Q]+i[Q+I]+1<<15&16711680,Q++,D|=i[Q]+i[Q+I]+1<<23&4278190080,Q++,r[E++]=D;E+=g>>2,Q+=g}else for(;E<h;){for(c=0;c<4;c++)D=i[Q],Q++,D|=i[Q]<<8,Q++,D|=i[Q]<<16,Q++,D|=i[Q]<<24,Q++,r[E++]=D;E+=g>>2,Q+=g}if(I=this.halfWidth,g=I-8,o=A/2>>1,B=t/2>>1,C=1==(A/2&1),a=1==(t/2&1),Q=((this.mbRow<<3)+B)*I+(this.mbCol<<3)+o,E=this.mbRow*I+this.mbCol<<1,h=E+(I<<1),C)if(a)for(;E<h;){for(u=e[Q]+e[Q+I],y=s[Q]+s[Q+I],Q++,c=0;c<2;c++)p=e[Q]+e[Q+I],R=s[Q]+s[Q+I],Q++,m=u+p+2>>2&255,k=y+R+2>>2&255,u=e[Q]+e[Q+I],y=s[Q]+s[Q+I],Q++,m|=u+p+2<<6&65280,k|=y+R+2<<6&65280,p=e[Q]+e[Q+I],R=s[Q]+s[Q+I],Q++,m|=u+p+2<<14&16711680,k|=y+R+2<<14&16711680,u=e[Q]+e[Q+I],y=s[Q]+s[Q+I],Q++,m|=u+p+2<<22&4278190080,k|=y+R+2<<22&4278190080,d[E]=m,n[E]=k,E++;E+=g>>2,Q+=g-1}else for(;E<h;){for(u=e[Q],y=s[Q],Q++,c=0;c<2;c++)p=e[Q],R=s[Q++],m=u+p+1>>1&255,k=y+R+1>>1&255,u=e[Q],y=s[Q++],m|=u+p+1<<7&65280,k|=y+R+1<<7&65280,p=e[Q],R=s[Q++],m|=u+p+1<<15&16711680,k|=y+R+1<<15&16711680,u=e[Q],y=s[Q++],m|=u+p+1<<23&4278190080,k|=y+R+1<<23&4278190080,d[E]=m,n[E]=k,E++;E+=g>>2,Q+=g-1}else if(a)for(;E<h;){for(c=0;c<2;c++)m=e[Q]+e[Q+I]+1>>1&255,k=s[Q]+s[Q+I]+1>>1&255,Q++,m|=e[Q]+e[Q+I]+1<<7&65280,k|=s[Q]+s[Q+I]+1<<7&65280,Q++,m|=e[Q]+e[Q+I]+1<<15&16711680,k|=s[Q]+s[Q+I]+1<<15&16711680,Q++,m|=e[Q]+e[Q+I]+1<<23&4278190080,k|=s[Q]+s[Q+I]+1<<23&4278190080,Q++,d[E]=m,n[E]=k,E++;E+=g>>2,Q+=g}else for(;E<h;){for(c=0;c<2;c++)m=e[Q],k=s[Q],Q++,m|=e[Q]<<8,k|=s[Q]<<8,Q++,m|=e[Q]<<16,k|=s[Q]<<16,Q++,m|=e[Q]<<24,k|=s[Q]<<24,Q++,d[E]=m,n[E]=k,E++;E+=g>>2,Q+=g}}decodeBlock(A){let t,i=0;if(this.macroblockIntra){let e,s;if(A<4?(e=this.dcPredictorY,s=this.readHuffman(o.DCT_DC_SIZE_LUMINANCE)):(e=4===A?this.dcPredictorCr:this.dcPredictorCb,s=this.readHuffman(o.DCT_DC_SIZE_CHROMINANCE)),s>0){const A=this.bits.read(s);this.blockData[0]=0!=(A&1<<s-1)?e+A:e+(-1<<s|A+1)}else this.blockData[0]=e;A<4?this.dcPredictorY=this.blockData[0]:4===A?this.dcPredictorCr=this.blockData[0]:this.dcPredictorCb=this.blockData[0],this.blockData[0]<<=8,t=this.intraQuantMatrix,i=1}else t=this.nonIntraQuantMatrix;let e,s,I,g=0;for(;;){let A=0;const e=this.readHuffman(o.DCT_COEFF);if(1===e&&i>0&&0===this.bits.read(1))break;65535===e?(A=this.bits.read(6),g=this.bits.read(8),0===g?g=this.bits.read(8):128===g?g=this.bits.read(8)-256:g>128&&(g-=256)):(A=e>>8,g=255&e,this.bits.read(1)&&(g=-g)),i+=A;const s=o.ZIG_ZAG[i];i++,g<<=1,this.macroblockIntra||(g+=g<0?-1:1),g=g*this.quantizerScale*t[s]>>4,0==(1&g)&&(g-=g>0?1:-1),g>2047?g=2047:g<-2048&&(g=-2048),this.blockData[s]=g*o.PREMULTIPLIER_MATRIX[s]}A<4?(e=this.currentY,I=this.codedWidth-8,s=this.mbRow*this.codedWidth+this.mbCol<<4,0!=(1&A)&&(s+=8),0!=(2&A)&&(s+=this.codedWidth<<3)):(e=4===A?this.currentCb:this.currentCr,I=(this.codedWidth>>1)-8,s=(this.mbRow*this.codedWidth<<2)+(this.mbCol<<3)),this.macroblockIntra?1===i?(o.CopyValueToDestination(this.blockData[0]+128>>8,e,s,I),this.blockData[0]=0):(o.IDCT(this.blockData),o.CopyBlockToDestination(this.blockData,e,s,I),l(this.blockData,0)):1===i?(o.AddValueToDestination(this.blockData[0]+128>>8,e,s,I),this.blockData[0]=0):(o.IDCT(this.blockData),o.AddBlockToDestination(this.blockData,e,s,I),l(this.blockData,0)),i=0}static CopyBlockToDestination(A,t,i,e){for(let s=0;s<64;s+=8,i+=e+8)t[i+0]=A[s+0],t[i+1]=A[s+1],t[i+2]=A[s+2],t[i+3]=A[s+3],t[i+4]=A[s+4],t[i+5]=A[s+5],t[i+6]=A[s+6],t[i+7]=A[s+7]}static AddBlockToDestination(A,t,i,e){for(let s=0;s<64;s+=8,i+=e+8)t[i+0]+=A[s+0],t[i+1]+=A[s+1],t[i+2]+=A[s+2],t[i+3]+=A[s+3],t[i+4]+=A[s+4],t[i+5]+=A[s+5],t[i+6]+=A[s+6],t[i+7]+=A[s+7]}static CopyValueToDestination(A,t,i,e){for(let s=0;s<64;s+=8,i+=e+8)t[i+0]=A,t[i+1]=A,t[i+2]=A,t[i+3]=A,t[i+4]=A,t[i+5]=A,t[i+6]=A,t[i+7]=A}static AddValueToDestination(A,t,i,e){for(let s=0;s<64;s+=8,i+=e+8)t[i+0]+=A,t[i+1]+=A,t[i+2]+=A,t[i+3]+=A,t[i+4]+=A,t[i+5]+=A,t[i+6]+=A,t[i+7]+=A}static IDCT(A){let t,i,e,s,I,g,o,B,C,a,Q,E,h,r,n,d,c,l;for(let w=0;w<8;++w)t=A[32+w],i=A[16+w]+A[48+w],e=A[40+w]-A[24+w],g=A[8+w]+A[56+w],o=A[24+w]+A[40+w],s=A[8+w]-A[56+w],I=g+o,B=A[0+w],h=(473*s-196*e+128>>8)-I,C=h-(362*(g-o)+128>>8),a=B-t,Q=(362*(A[16+w]-A[48+w])+128>>8)-i,E=B+t,r=a+Q,n=E+i,d=a-Q,c=E-i,l=-C-(473*e+196*s+128>>8),A[0+w]=I+n,A[8+w]=h+r,A[16+w]=d-C,A[24+w]=c-l,A[32+w]=c+l,A[40+w]=C+d,A[48+w]=r-h,A[56+w]=n-I;for(let w=0;w<64;w+=8)t=A[4+w],i=A[2+w]+A[6+w],e=A[5+w]-A[3+w],g=A[1+w]+A[7+w],o=A[3+w]+A[5+w],s=A[1+w]-A[7+w],I=g+o,B=A[0+w],h=(473*s-196*e+128>>8)-I,C=h-(362*(g-o)+128>>8),a=B-t,Q=(362*(A[2+w]-A[6+w])+128>>8)-i,E=B+t,r=a+Q,n=E+i,d=a-Q,c=E-i,l=-C-(473*e+196*s+128>>8),A[0+w]=I+n+128>>8,A[1+w]=h+r+128>>8,A[2+w]=d-C+128>>8,A[3+w]=c-l+128>>8,A[4+w]=c+l+128>>8,A[5+w]=C+d+128>>8,A[6+w]=r-h+128>>8,A[7+w]=n-I+128>>8}}o.prototype.frameRate=30,o.prototype.currentY=null,o.prototype.currentCr=null,o.prototype.currentCb=null,o.prototype.pictureType=0,o.prototype.forwardY=null,o.prototype.forwardCr=null,o.prototype.forwardCb=null,o.prototype.fullPelForward=!1,o.prototype.forwardFCode=0,o.prototype.forwardRSize=0,o.prototype.forwardF=0,o.prototype.quantizerScale=0,o.prototype.sliceBegin=!1,o.prototype.macroblockAddress=0,o.prototype.mbRow=0,o.prototype.mbCol=0,o.prototype.macroblockType=0,o.prototype.macroblockIntra=!1,o.prototype.macroblockMotFw=!1,o.prototype.motionFwH=0,o.prototype.motionFwV=0,o.prototype.motionFwHPrev=0,o.prototype.motionFwVPrev=0,o.prototype.dcPredictorY=0,o.prototype.dcPredictorCr=0,o.prototype.dcPredictorCb=0,o.prototype.blockData=null,o.PICTURE_RATE=[0,23.976,24,25,29.97,30,50,59.94,60,0,0,0,0,0,0,0],o.ZIG_ZAG=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),o.DEFAULT_INTRA_QUANT_MATRIX=new Uint8Array([8,16,19,22,26,27,29,34,16,16,22,24,27,29,34,37,19,22,26,27,29,34,34,38,22,22,26,27,29,34,37,40,22,26,27,29,32,35,40,48,26,27,29,32,35,40,48,58,26,27,29,34,38,46,56,69,27,29,35,38,46,56,69,83]),o.DEFAULT_NON_INTRA_QUANT_MATRIX=new Uint8Array([16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]),o.PREMULTIPLIER_MATRIX=new Uint8Array([32,44,42,38,32,25,17,9,44,62,58,52,44,35,24,12,42,58,55,49,42,33,23,12,38,52,49,44,38,30,20,10,32,44,42,38,32,25,17,9,25,35,33,30,25,20,14,7,17,24,23,20,17,14,9,5,9,12,12,10,9,7,5,2]),o.MACROBLOCK_ADDRESS_INCREMENT=new Int16Array([3,6,0,9,12,0,0,0,1,15,18,0,21,24,0,27,30,0,33,36,0,0,0,3,0,0,2,39,42,0,45,48,0,0,0,5,0,0,4,51,54,0,57,60,0,0,0,7,0,0,6,63,66,0,69,72,0,75,78,0,81,84,0,-1,87,0,-1,90,0,93,96,0,99,102,0,105,108,0,111,114,0,0,0,9,0,0,8,117,120,0,123,126,0,129,132,0,135,138,0,0,0,15,0,0,14,0,0,13,0,0,12,0,0,11,0,0,10,141,-1,0,-1,144,0,147,150,0,153,156,0,159,162,0,165,168,0,171,174,0,177,180,0,183,-1,0,-1,186,0,189,192,0,195,198,0,201,204,0,207,210,0,213,216,0,219,222,0,0,0,21,0,0,20,0,0,19,0,0,18,0,0,17,0,0,16,0,0,35,0,0,34,0,0,33,0,0,32,0,0,31,0,0,30,0,0,29,0,0,28,0,0,27,0,0,26,0,0,25,0,0,24,0,0,23,0,0,22]),o.MACROBLOCK_TYPE_INTRA=new Int8Array([3,6,0,-1,9,0,0,0,1,0,0,17]),o.MACROBLOCK_TYPE_PREDICTIVE=new Int8Array([3,6,0,9,12,0,0,0,10,15,18,0,0,0,2,21,24,0,0,0,8,27,30,0,33,36,0,-1,39,0,0,0,18,0,0,26,0,0,1,0,0,17]),o.MACROBLOCK_TYPE_B=new Int8Array([3,6,0,9,15,0,12,18,0,24,21,0,0,0,12,27,30,0,0,0,14,39,42,0,36,33,0,0,0,4,0,0,6,54,48,0,45,51,0,0,0,8,0,0,10,-1,57,0,0,0,1,60,63,0,0,0,30,0,0,17,0,0,22,0,0,26]),o.MACROBLOCK_TYPE=[null,o.MACROBLOCK_TYPE_INTRA,o.MACROBLOCK_TYPE_PREDICTIVE,o.MACROBLOCK_TYPE_B],o.CODE_BLOCK_PATTERN=new Int16Array([6,3,0,9,18,0,12,15,0,24,33,0,36,39,0,27,21,0,30,42,0,60,57,0,54,48,0,69,51,0,81,75,0,63,84,0,45,66,0,72,78,0,0,0,60,105,120,0,132,144,0,114,108,0,126,141,0,87,93,0,117,96,0,0,0,32,135,138,0,99,123,0,129,102,0,0,0,4,90,111,0,0,0,8,0,0,16,0,0,44,150,168,0,0,0,28,0,0,52,0,0,62,183,177,0,156,180,0,0,0,1,165,162,0,0,0,61,0,0,56,171,174,0,0,0,2,0,0,40,153,186,0,0,0,48,192,189,0,147,159,0,0,0,20,0,0,12,240,249,0,0,0,63,231,225,0,195,219,0,252,198,0,0,0,24,0,0,36,0,0,3,207,261,0,243,237,0,204,213,0,210,234,0,201,228,0,216,222,0,258,255,0,264,246,0,-1,282,0,285,291,0,0,0,33,0,0,9,318,330,0,306,348,0,0,0,5,0,0,10,279,267,0,0,0,6,0,0,18,0,0,17,0,0,34,339,357,0,309,312,0,270,276,0,327,321,0,351,354,0,303,297,0,294,288,0,300,273,0,342,345,0,315,324,0,336,333,0,363,375,0,0,0,41,0,0,14,0,0,21,372,366,0,360,369,0,0,0,11,0,0,19,0,0,7,0,0,35,0,0,13,0,0,50,0,0,49,0,0,58,0,0,37,0,0,25,0,0,45,0,0,57,0,0,26,0,0,29,0,0,38,0,0,53,0,0,23,0,0,43,0,0,46,0,0,42,0,0,22,0,0,54,0,0,51,0,0,15,0,0,30,0,0,39,0,0,47,0,0,55,0,0,27,0,0,59,0,0,31]),o.MOTION=new Int16Array([3,6,0,12,9,0,0,0,0,18,15,0,24,21,0,0,0,-1,0,0,1,27,30,0,36,33,0,0,0,2,0,0,-2,42,45,0,48,39,0,60,54,0,0,0,3,0,0,-3,51,57,0,-1,69,0,81,75,0,78,63,0,72,66,0,96,84,0,87,93,0,-1,99,0,108,105,0,0,0,-4,90,102,0,0,0,4,0,0,-7,0,0,5,111,123,0,0,0,-5,0,0,7,114,120,0,126,117,0,0,0,-6,0,0,6,153,162,0,150,147,0,135,138,0,156,141,0,129,159,0,132,144,0,0,0,10,0,0,9,0,0,8,0,0,-8,171,198,0,0,0,-9,180,192,0,168,183,0,165,186,0,174,189,0,0,0,-10,177,195,0,0,0,12,0,0,16,0,0,13,0,0,14,0,0,11,0,0,15,0,0,-16,0,0,-12,0,0,-14,0,0,-15,0,0,-11,0,0,-13]),o.DCT_DC_SIZE_LUMINANCE=new Int8Array([6,3,0,18,15,0,9,12,0,0,0,1,0,0,2,27,24,0,21,30,0,0,0,0,36,33,0,0,0,4,0,0,3,39,42,0,0,0,5,0,0,6,48,45,0,51,-1,0,0,0,7,0,0,8]),o.DCT_DC_SIZE_CHROMINANCE=new Int8Array([6,3,0,12,9,0,18,15,0,24,21,0,0,0,2,0,0,1,0,0,0,30,27,0,0,0,3,36,33,0,0,0,4,42,39,0,0,0,5,48,45,0,0,0,6,51,-1,0,0,0,7,0,0,8]),o.DCT_COEFF=new Int32Array([3,6,0,12,9,0,0,0,1,21,24,0,18,15,0,39,27,0,33,30,0,42,36,0,0,0,257,60,66,0,54,63,0,48,57,0,0,0,513,51,45,0,0,0,2,0,0,3,81,75,0,87,93,0,72,78,0,96,90,0,0,0,1025,69,84,0,0,0,769,0,0,258,0,0,1793,0,0,65535,0,0,1537,111,108,0,0,0,1281,105,102,0,117,114,0,99,126,0,120,123,0,156,150,0,162,159,0,144,147,0,129,135,0,138,132,0,0,0,2049,0,0,4,0,0,514,0,0,2305,153,141,0,165,171,0,180,168,0,177,174,0,183,186,0,0,0,2561,0,0,3329,0,0,6,0,0,259,0,0,5,0,0,770,0,0,2817,0,0,3073,228,225,0,201,210,0,219,213,0,234,222,0,216,231,0,207,192,0,204,189,0,198,195,0,243,261,0,273,240,0,246,237,0,249,258,0,279,276,0,252,255,0,270,282,0,264,267,0,0,0,515,0,0,260,0,0,7,0,0,1026,0,0,1282,0,0,4097,0,0,3841,0,0,3585,315,321,0,333,342,0,312,291,0,375,357,0,288,294,0,-1,369,0,285,303,0,318,363,0,297,306,0,339,309,0,336,348,0,330,300,0,372,345,0,351,366,0,327,354,0,360,324,0,381,408,0,417,420,0,390,378,0,435,438,0,384,387,0,0,0,2050,396,402,0,465,462,0,0,0,8,411,399,0,429,432,0,453,414,0,426,423,0,0,0,10,0,0,9,0,0,11,0,0,5377,0,0,1538,0,0,771,0,0,5121,0,0,1794,0,0,4353,0,0,4609,0,0,4865,444,456,0,0,0,1027,459,450,0,0,0,261,393,405,0,0,0,516,447,441,0,516,519,0,486,474,0,510,483,0,504,498,0,471,537,0,507,501,0,522,513,0,534,531,0,468,477,0,492,495,0,549,546,0,525,528,0,0,0,263,0,0,2562,0,0,2306,0,0,5633,0,0,5889,0,0,6401,0,0,6145,0,0,1283,0,0,772,0,0,13,0,0,12,0,0,14,0,0,15,0,0,517,0,0,6657,0,0,262,540,543,0,480,489,0,588,597,0,0,0,27,609,555,0,606,603,0,0,0,19,0,0,22,591,621,0,0,0,18,573,576,0,564,570,0,0,0,20,552,582,0,0,0,21,558,579,0,0,0,23,612,594,0,0,0,25,0,0,24,600,615,0,0,0,31,0,0,30,0,0,28,0,0,29,0,0,26,0,0,17,0,0,16,567,618,0,561,585,0,654,633,0,0,0,37,645,648,0,0,0,36,630,636,0,0,0,34,639,627,0,663,666,0,657,624,0,651,642,0,669,660,0,0,0,35,0,0,267,0,0,40,0,0,268,0,0,266,0,0,32,0,0,264,0,0,265,0,0,38,0,0,269,0,0,270,0,0,33,0,0,39,0,0,7937,0,0,6913,0,0,7681,0,0,4098,0,0,7425,0,0,7169,0,0,271,0,0,274,0,0,273,0,0,272,0,0,1539,0,0,2818,0,0,3586,0,0,3330,0,0,3074,0,0,3842]),o.PICTURE_TYPE={INTRA:1,PREDICTIVE:2,B:3},o.START={SEQUENCE:179,SLICE_FIRST:1,SLICE_LAST:175,PICTURE:0,EXTENSION:181,USER_DATA:178};class B extends e{constructor(A){super(A),this.onDecodeCallback=A.onVideoDecode,this.module=A.wasmModule,this.bufferSize=A.videoBufferSize||524288,this.bufferMode=A.streaming?s.MODE.EVICT:s.MODE.EXPAND,this.decodeFirstFrame=!1!==A.decodeFirstFrame,this.hasSequenceHeader=!1}initializeWasmDecoder(){this.module.instance&&(this.instance=this.module.instance,this.functions=this.module.instance.exports,this.decoder=this.functions._mpeg1_decoder_create(this.bufferSize,this.bufferMode))}destroy(){this.decoder&&this.functions._mpeg1_decoder_destroy(this.decoder)}bufferGetIndex(){if(this.decoder)return this.functions._mpeg1_decoder_get_index(this.decoder)}bufferSetIndex(A){this.decoder&&this.functions._mpeg1_decoder_set_index(this.decoder,A)}bufferWrite(A){this.decoder||this.initializeWasmDecoder();let t=0;for(let i=0;i<A.length;i++)t+=A[i].length;let i=this.functions._mpeg1_decoder_get_write_ptr(this.decoder,t);for(let t=0;t<A.length;t++)this.instance.heapU8.set(A[t],i),i+=A[t].length;return this.functions._mpeg1_decoder_did_write(this.decoder,t),t}write(A,t){e.prototype.write.call(this,A,t),!this.hasSequenceHeader&&this.functions._mpeg1_decoder_has_sequence_header(this.decoder)&&this.loadSequnceHeader()}loadSequnceHeader(){if(this.hasSequenceHeader=!0,this.frameRate=this.functions._mpeg1_decoder_get_frame_rate(this.decoder),this.codedSize=this.functions._mpeg1_decoder_get_coded_size(this.decoder),this.destination){const A=this.functions._mpeg1_decoder_get_width(this.decoder),t=this.functions._mpeg1_decoder_get_height(this.decoder);this.destination.resize(A,t)}this.decodeFirstFrame&&this.decode()}decode(){const A=c();if(!this.decoder)return!1;if(!this.functions._mpeg1_decoder_decode(this.decoder))return!1;if(this.destination){const A=this.functions._mpeg1_decoder_get_y_ptr(this.decoder),t=this.functions._mpeg1_decoder_get_cr_ptr(this.decoder),i=this.functions._mpeg1_decoder_get_cb_ptr(this.decoder),e=this.instance.heapU8.subarray(A,A+this.codedSize),s=this.instance.heapU8.subarray(t,t+(this.codedSize>>2)),I=this.instance.heapU8.subarray(i,i+(this.codedSize>>2));this.destination.render(e,s,I,!1)}this.advanceDecodedTime(1/this.frameRate);const t=c()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,t),!0}}class C{constructor(){this.bits=null,this.leftoverBytes=null,this.guessVideoFrameEnd=!0,this.pidsToStreamIds={},this.pesPacketInfo={},this.startTime=0,this.currentTime=0}connect(A,t){this.pesPacketInfo[A]={destination:t,currentLength:0,totalLength:0,pts:0,buffers:[]}}write(A){if(this.leftoverBytes){const t=A.byteLength+this.leftoverBytes.byteLength;this.bits=new s(t),this.bits.write([this.leftoverBytes,A])}else this.bits=new s(A);for(;this.bits.has(1504)&&this.parsePacket(););const t=this.bits.byteLength-(this.bits.index>>3);this.leftoverBytes=t>0?this.bits.bytes.subarray(this.bits.index>>3):null}parsePacket(){if(71!==this.bits.read(8)&&!this.resync())return!1;const A=187+(this.bits.index>>3);this.bits.read(1);const t=this.bits.read(1);this.bits.read(1);const i=this.bits.read(13);this.bits.read(2);const e=this.bits.read(2);this.bits.read(4);let s=this.pidsToStreamIds[i];if(t&&s){const A=this.pesPacketInfo[s];A&&A.currentLength&&this.packetComplete(A)}if(1&e){if(2&e){const A=this.bits.read(8);this.bits.skip(A<<3)}if(t&&this.bits.nextBytesAreStartCode()){this.bits.skip(24),s=this.bits.read(8),this.pidsToStreamIds[i]=s;const A=this.bits.read(16);this.bits.skip(8);const t=this.bits.read(2);this.bits.skip(6);const e=this.bits.read(8),I=this.bits.index+(e<<3),g=this.pesPacketInfo[s];if(g){let i=0;if(2&t){this.bits.skip(4);const A=this.bits.read(3);this.bits.skip(1);const t=this.bits.read(15);this.bits.skip(1);const e=this.bits.read(15);this.bits.skip(1),i=(1073741824*A+32768*t+e)/9e4,this.currentTime=i,-1===this.startTime&&(this.startTime=i)}const s=A?A-e-3:0;this.packetStart(g,i,s)}this.bits.index=I}if(s){const i=this.pesPacketInfo[s];if(i){const s=this.bits.index>>3,I=!t&&2&e;(this.packetAddData(i,s,A)||this.guessVideoFrameEnd&&I)&&this.packetComplete(i)}}}return this.bits.index=A<<3,!0}resync(){if(!this.bits.has(9024))return!1;const A=this.bits.index>>3;for(let t=0;t<187;t++)if(71===this.bits.bytes[A+t]){let i=!0;for(let e=1;e<5;e++)if(71!==this.bits.bytes[A+t+188*e]){i=!1;break}if(i)return this.bits.index=A+t+1<<3,!0}return this.bits.skip(1496),!1}packetStart(A,t,i){A.totalLength=i,A.currentLength=0,A.pts=t}packetAddData(A,t,i){return A.buffers.push(this.bits.bytes.subarray(t,i)),A.currentLength+=i-t,0!==A.totalLength&&A.currentLength>=A.totalLength}packetComplete(A){A.destination.write(A.pts,A.buffers),A.totalLength=0,A.currentLength=0,A.buffers=[]}}C.STREAM={PACK_HEADER:186,SYSTEM_HEADER:187,PROGRAM_MAP:188,PRIVATE_1:189,PADDING:190,PRIVATE_2:191,AUDIO_1:192,VIDEO_1:224,DIRECTORY:255};class a{constructor(){this.stackSize=5242880,this.pageSize=65536,this.onInitCallback=null,this.ready=!1}write(A){this.loadFromBuffer(A,this.onInitCallback)}loadFromFile(t,i){this.onInitCallback=i;const e=new A(t,{});e.connect(this),e.start()}loadFromBuffer(A,t){if(this.moduleInfo=this.readDylinkSection(A),!this.moduleInfo)return void(this.callback&&this.callback(null));this.memory=new WebAssembly.Memory({initial:256});const i={memory:this.memory,memoryBase:0,__memory_base:0,table:new WebAssembly.Table({initial:this.moduleInfo.tableSize,element:"anyfunc"}),tableBase:0,__table_base:0,abort:this.c_abort.bind(this),___assert_fail:this.c_assertFail.bind(this),_sbrk:this.c_sbrk.bind(this)};this.brk=this.align(this.moduleInfo.memorySize+this.stackSize),WebAssembly.instantiate(A,{env:i}).then((A=>{this.instance=A.instance,this.instance.exports.__post_instantiate&&this.instance.exports.__post_instantiate(),this.createHeapViews(),this.ready=!0,t&&t(this)}))}createHeapViews(){this.instance.heapU8=new Uint8Array(this.memory.buffer),this.instance.heapU32=new Uint32Array(this.memory.buffer),this.instance.heapF32=new Float32Array(this.memory.buffer)}align(A){const t=Math.pow(2,this.moduleInfo.memoryAlignment);return Math.ceil(A/t)*t}c_sbrk(A){const t=this.brk;if(this.brk+=A,this.brk>this.memory.buffer.byteLength){const A=this.brk-this.memory.buffer.byteLength,t=Math.ceil(A/this.pageSize);this.memory.grow(t),this.createHeapViews()}return t}c_abort(A){}c_assertFail(A){}readDylinkSection(A){const t=new Uint8Array(A);let i=0;const e=()=>{let A=0,e=1;for(;;){const s=t[i++];if(A+=(127&s)*e,e*=128,!(128&s))return A}},s=A=>{for(let e=0;e<A.length;e++){const s="string"==typeof A[e]?A[e].charCodeAt(0):A[e];if(t[i++]!==s)return!1}return!0};return s([0,"a","s","m"])?(i=9,e(),s([6,"d","y","l","i","n","k"])?{memorySize:e(),memoryAlignment:e(),tableSize:e(),tableAlignment:e()}:null):null}static IsSupported(){return!!window.WebAssembly}static GetModule(){return a.CACHED_MODULE=a.CACHED_MODULE||new a,a.CACHED_MODULE}}var Q="AGFzbQEAAAAADwZkeWxpbmuA0MACBAAAAAE0CWAEf39/fwBgAX8Bf2ACf38Bf2ABfwBgAn9/AGABfwF9YAZ/f39/f38AYAN/f38Bf2AAAAJGBANlbnYOX19fYXNzZXJ0X2ZhaWwAAANlbnYFX3NicmsAAQNlbnYNX19tZW1vcnlfYmFzZQN/AANlbnYGbWVtb3J5AgCAAgM9PAIDAgEEBAMBBQEBAQEBAQEDBAMGAwQAAwAAAAIDAgEEBAEBAQEBAAACAwIBAgECAQEBAQMEAwMCBwcHCAYLAn8BQQALfwFBAAsHggYfEl9fcG9zdF9pbnN0YW50aWF0ZQA9BV9mcmVlADgHX21hbGxvYwAxB19tZW1jcHkAOghfbWVtbW92ZQA7B19tZW1zZXQAPBNfbXAyX2RlY29kZXJfY3JlYXRlAB0TX21wMl9kZWNvZGVyX2RlY29kZQAmFF9tcDJfZGVjb2Rlcl9kZXN0cm95AB4WX21wMl9kZWNvZGVyX2RpZF93cml0ZQAiFl9tcDJfZGVjb2Rlcl9nZXRfaW5kZXgAICFfbXAyX2RlY29kZXJfZ2V0X2xlZnRfY2hhbm5lbF9wdHIAJCJfbXAyX2RlY29kZXJfZ2V0X3JpZ2h0X2NoYW5uZWxfcHRyACUcX21wMl9kZWNvZGVyX2dldF9zYW1wbGVfcmF0ZQAjGl9tcDJfZGVjb2Rlcl9nZXRfd3JpdGVfcHRyAB8WX21wMl9kZWNvZGVyX3NldF9pbmRleAAhFV9tcGVnMV9kZWNvZGVyX2NyZWF0ZQACFV9tcGVnMV9kZWNvZGVyX2RlY29kZQARFl9tcGVnMV9kZWNvZGVyX2Rlc3Ryb3kAAxhfbXBlZzFfZGVjb2Rlcl9kaWRfd3JpdGUABxlfbXBlZzFfZGVjb2Rlcl9nZXRfY2JfcHRyABAdX21wZWcxX2RlY29kZXJfZ2V0X2NvZGVkX3NpemUACxlfbXBlZzFfZGVjb2Rlcl9nZXRfY3JfcHRyAA8dX21wZWcxX2RlY29kZXJfZ2V0X2ZyYW1lX3JhdGUAChlfbXBlZzFfZGVjb2Rlcl9nZXRfaGVpZ2h0AA0YX21wZWcxX2RlY29kZXJfZ2V0X2luZGV4AAUYX21wZWcxX2RlY29kZXJfZ2V0X3dpZHRoAAwcX21wZWcxX2RlY29kZXJfZ2V0X3dyaXRlX3B0cgAEGF9tcGVnMV9kZWNvZGVyX2dldF95X3B0cgAOIl9tcGVnMV9kZWNvZGVyX2hhc19zZXF1ZW5jZV9oZWFkZXIACRhfbXBlZzFfZGVjb2Rlcl9zZXRfaW5kZXgABgql2AE8IQEBf0GcBBAxIgJBAEGcBBA8GiACIAAgARAqNgKAASACC08AIAAoAoABECsgAEFAaygCAEUEQCAAEDgPCyAAKAKEARA4IAAoAogBEDggACgCjAEQOCAAKAKQARA4IAAoApQBEDggACgCmAEQOCAAEDgLDAAgACgCgAEgARAsCwsAIAAoAoABKAIECw0AIAAoAoABIAE2AgQLOQEBfyAAKAKAASICIAEgAigCDGo2AgwgAEFAaygCAARADwsgACgCgAFBswEQLkF/RgRADwsgABAIC6sGAQt/IAAoAgQhAiAAKAIIIQMgACAAKAKAAUEMEDA2AgQgACAAKAKAAUEMEDA2AgggACgCgAEiASABKAIEQQRqNgIEIAAoAoABQQQQMCEBIAAjACABQQJ0aigCADYCACAAKAKAASIBIAEoAgRBHmo2AgQgACgCgAFBARAwBEBBACEBA0AgACgCgAFBCBAwQf8BcSEEIAEjAEFAa2otAAAgAEGcA2pqIAQ6AAAgAUEBaiIBQcAARw0ACwUgACMAKQKAATcCnAMgACMAKQKIATcCpAMgACMAKQKQATcCrAMgACMAKQKYATcCtAMgACMAKQKgATcCvAMgACMAKQKoATcCxAMgACMAKQKwATcCzAMgACMAKQK4ATcC1AMLIAAoAoABQQEQMARAQQAhAQNAIAEjAEFAa2otAAAgAEHcA2pqIAAoAoABQQgQMDoAACABQQFqIgFBwABHDQALBSAAQpCgwICBgoSIEDcC3AMgAEKQoMCAgYKEiBA3AuQDIABCkKDAgIGChIgQNwLsAyAAQpCgwICBgoSIEDcC9