diff --git a/.idea/workspace.xml b/.idea/workspace.xml index e0d16a9..754fd2d 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,11 +2,18 @@ + + + + + + + - - + + @@ -26,45 +33,31 @@ - + - + - - - - - - - - - - - - - + + - + - - + + - + - - - @@ -76,10 +69,10 @@ - + - + @@ -134,13 +127,13 @@ @@ -238,7 +231,11 @@ - + + + + - - @@ -503,7 +501,11 @@ 1361463362223 1361463362223 - @@ -585,7 +587,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -705,13 +679,6 @@ - - - - - - - @@ -740,9 +707,37 @@ + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + diff --git a/lib/deflate.min.js b/lib/deflate.min.js deleted file mode 100644 index a6e4153..0000000 --- a/lib/deflate.min.js +++ /dev/null @@ -1,32 +0,0 @@ -/** @license zlib.js 2012 - imaya [ https://github.com/imaya/zlib.js ] The MIT License */ -(function() {'use strict';var j=void 0,z=!0,da=this;function ea(a,c){var b=a.split("."),g=da;!(b[0]in g)&&g.execScript&&g.execScript("var "+b[0]);for(var d;b.length&&(d=b.shift());)!b.length&&c!==j?g[d]=c:g=g[d]?g[d]:g[d]={}};var F="undefined"!==typeof Uint8Array&&"undefined"!==typeof Uint16Array&&"undefined"!==typeof Uint32Array;function G(a,c){this.index="number"===typeof c?c:0;this.e=0;this.buffer=a instanceof(F?Uint8Array:Array)?a:new (F?Uint8Array:Array)(32768);if(2*this.buffer.length<=this.index)throw Error("invalid index");this.buffer.length<=this.index&&fa(this)}function fa(a){var c=a.buffer,b,g=c.length,d=new (F?Uint8Array:Array)(g<<1);if(F)d.set(c);else for(b=0;b>>8&255]<<16|O[a>>>16&255]<<8|O[a>>>24&255])>>32-c:O[a]>>8-c);if(8>c+e)f=f<>c-l-1&1,8===++e&&(e=0,g[d++]=O[f],f=0,d===g.length&&(g=fa(this)));g[d]=f;this.buffer=g;this.e=e;this.index=d};G.prototype.finish=function(){var a=this.buffer,c=this.index,b;0P;++P){for(var R=P,S=R,ha=7,R=R>>>1;R;R>>>=1)S<<=1,S|=R&1,--ha;ga[P]=(S<>>0}var O=ga;var ia=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759, -2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977, -2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755, -2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956, -3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270, -936918E3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];F&&new Uint32Array(ia);function ja(a){this.buffer=new (F?Uint16Array:Array)(2*a);this.length=0}ja.prototype.getParent=function(a){return 2*((a-2)/4|0)};ja.prototype.push=function(a,c){var b,g,d=this.buffer,e;b=this.length;d[this.length++]=c;for(d[this.length++]=a;0d[g])e=d[b],d[b]=d[g],d[g]=e,e=d[b+1],d[b+1]=d[g+1],d[g+1]=e,b=g;else break;return this.length}; -ja.prototype.pop=function(){var a,c,b=this.buffer,g,d,e;c=b[0];a=b[1];this.length-=2;b[0]=b[this.length];b[1]=b[this.length+1];for(e=0;;){d=2*e+2;if(d>=this.length)break;d+2b[d]&&(d+=2);if(b[d]>b[e])g=b[e],b[e]=b[d],b[d]=g,g=b[e+1],b[e+1]=b[d+1],b[d+1]=g;else break;e=d}return{index:a,value:c,length:this.length}};function ma(a){var c=a.length,b=0,g=Number.POSITIVE_INFINITY,d,e,f,l,s,k,r,m,h;for(m=0;mb&&(b=a[m]),a[m]>=1;for(h=k;hV;V++)switch(z){case 143>=V:T.push([V+48,8]);break;case 255>=V:T.push([V-144+400,9]);break;case 279>=V:T.push([V-256+0,7]);break;case 287>=V:T.push([V-280+192,8]);break;default:throw"invalid literal: "+V;} -na.prototype.f=function(){var a,c,b,g,d=this.input;switch(this.d){case 0:b=0;for(g=d.length;b>>8&255;h[n++]=k&255;h[n++]=k>>>8&255;if(F)h.set(e,n),n+=e.length,h=h.subarray(0,n);else{r=0;for(m=e.length;rv)for(;0v?v:138,E>v-3&&E=E?(J[H++]=17,J[H++]=E-3,M[17]++):(J[H++]=18,J[H++]=E-11,M[18]++),v-=E;else if(J[H++]=K[t],M[K[t]]++,v--,3>v)for(;0v?v:6,E>v-3&&ED;D++)qa[D]=ka[$[D]];for(B=19;4=a:return[265,a-11,1];case 14>=a:return[266,a-13,1];case 16>=a:return[267,a-15,1];case 18>=a:return[268,a-17,1];case 22>=a:return[269,a-19,2];case 26>=a:return[270,a-23,2];case 30>=a:return[271,a-27,2];case 34>=a:return[272,a- -31,2];case 42>=a:return[273,a-35,3];case 50>=a:return[274,a-43,3];case 58>=a:return[275,a-51,3];case 66>=a:return[276,a-59,3];case 82>=a:return[277,a-67,4];case 98>=a:return[278,a-83,4];case 114>=a:return[279,a-99,4];case 130>=a:return[280,a-115,4];case 162>=a:return[281,a-131,5];case 194>=a:return[282,a-163,5];case 226>=a:return[283,a-195,5];case 257>=a:return[284,a-227,5];case 258===a:return[285,a-258,0];default:throw"invalid length: "+a;}}var ya=[],xa,za; -for(xa=3;258>=xa;xa++)za=wa(),ya[xa]=za[2]<<24|za[1]<<16|za[0];var Aa=F?new Uint32Array(ya):ya; -function ra(a,c){function b(a,c){var b=a.k,d=[],e=0,g;g=Aa[a.length];d[e++]=g&65535;d[e++]=g>>16&255;d[e++]=g>>24;var f;switch(z){case 1===b:f=[0,b-1,0];break;case 2===b:f=[1,b-2,0];break;case 3===b:f=[2,b-3,0];break;case 4===b:f=[3,b-4,0];break;case 6>=b:f=[4,b-5,1];break;case 8>=b:f=[5,b-7,1];break;case 12>=b:f=[6,b-9,2];break;case 16>=b:f=[7,b-13,2];break;case 24>=b:f=[8,b-17,3];break;case 32>=b:f=[9,b-25,3];break;case 48>=b:f=[10,b-33,4];break;case 64>=b:f=[11,b-49,4];break;case 96>=b:f=[12,b- -65,5];break;case 128>=b:f=[13,b-97,5];break;case 192>=b:f=[14,b-129,6];break;case 256>=b:f=[15,b-193,6];break;case 384>=b:f=[16,b-257,7];break;case 512>=b:f=[17,b-385,7];break;case 768>=b:f=[18,b-513,8];break;case 1024>=b:f=[19,b-769,8];break;case 1536>=b:f=[20,b-1025,9];break;case 2048>=b:f=[21,b-1537,9];break;case 3072>=b:f=[22,b-2049,10];break;case 4096>=b:f=[23,b-3073,10];break;case 6144>=b:f=[24,b-4097,11];break;case 8192>=b:f=[25,b-6145,11];break;case 12288>=b:f=[26,b-8193,12];break;case 16384>= -b:f=[27,b-12289,12];break;case 24576>=b:f=[28,b-16385,13];break;case 32768>=b:f=[29,b-24577,13];break;default:throw"invalid distance";}g=f;d[e++]=g[0];d[e++]=g[1];d[e++]=g[2];var i,k;i=0;for(k=d.length;i=e;)q[e++]=0;for(e=0;29>=e;)u[e++]=0}q[256]=1;g=0;for(d=c.length;g=d){m&&b(m,-1);e=0;for(f=d-g;ep&&g+pi&&(A=x,i=p);if(258===p)break}r=new va(i,g-A);m?m.length2*h[i-1]+n[i]&&(h[i]=2*h[i-1]+n[i]),q[i]=Array(h[i]),u[i]=Array(h[i]);for(A=0;Al[A]?(q[i][p]=C,u[i][p]=m,B+=2): -(q[i][p]=l[A],u[i][p]=A,++A);I[i]=0;1===n[i]&&b(i)}s=w;k=0;for(r=f.length;k>>=1}return c};var Ba=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];F&&new Uint16Array(Ba);var Ca=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,258,258];F&&new Uint16Array(Ca);var Da=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0];F&&new Uint8Array(Da);var Ea=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577];F&&new Uint16Array(Ea); -var Fa=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];F&&new Uint8Array(Fa);var Ta=new (F?Uint8Array:Array)(288),W,Ua;W=0;for(Ua=Ta.length;W=W?8:255>=W?9:279>=W?7:8;ma(Ta);var Va=new (F?Uint8Array:Array)(30),Wa,Xa;Wa=0;for(Xa=Va.length;Wa=X?8:255>=X?9:279>=X?7:8;ma(cb);var eb=new (F?Uint8Array:Array)(30),fb,gb;fb=0;for(gb=eb.length;fb>>0;s=k}for(var h=1,n=0,w=s.length,q,u=0;0>>0;this.j.c=l;f=this.j.f();l=f.length;F&&(f=new Uint8Array(f.buffer),f.length<=l+4&&(this.a=new Uint8Array(f.length+4),this.a.set(f),f=this.a),f=f.subarray(0,l+4));f[l++]=e>>24&255;f[l++]=e>>16&255;f[l++]=e>>8&255;f[l++]=e&255;return f};ea("Zlib.Deflate",hb);ea("Zlib.Deflate.compress",function(a,c){return(new hb(a,c)).f()});ea("Zlib.Deflate.prototype.compress",hb.prototype.f);var jb={NONE:Y.NONE,FIXED:Y.h,DYNAMIC:Y.g},kb,lb,Z,mb;if(Object.keys)kb=Object.keys(jb);else for(lb in kb=[],Z=0,jb)kb[Z++]=lb;Z=0;for(mb=kb.length;Zt;++t)for(var u=t,ba=7,u=u>>>1;u;u>>>=1)--ba;var v={k:function(a,b,c){return v.update(a,0,b,c)},update:function(a,b,c,d){for(var e=v.w,f="number"===typeof c?c:c=0,g="number"===typeof d?d:a.length,b=b^4294967295,f=g&7;f--;++c)b=b>>>8^e[(b^a[c])&255];for(f=g>>3;f--;c+=8)b=b>>>8^e[(b^a[c])&255],b=b>>>8^e[(b^a[c+1])&255],b=b>>>8^e[(b^a[c+2])&255],b=b>>>8^e[(b^a[c+3])&255],b=b>>>8^e[(b^a[c+4])&255],b=b>>>8^e[(b^a[c+5])&255],b=b>>>8^e[(b^a[c+6])&255],b=b>>>8^e[(b^a[c+7])&255];return(b^4294967295)>>>0}},ca=v,w,y=[0,1996959894,3993919788,2567524794, -124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304, -3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486, -2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580, -2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221, -2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918E3,2847714899,3736837829,1202900863, -817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];w=s?new Uint32Array(y):y;ca.w=w;function da(){};function z(a){var b=a.length,c=0,d=Number.POSITIVE_INFINITY,e,f,g,i,l,m,r,h,j;for(h=0;hc&&(c=a[h]),a[h]>=1;for(j=m;jB;B++)switch(!0){case 143>=B:A.push([B+48,8]);break;case 255>=B:A.push([B-144+400,9]);break;case 279>=B:A.push([B-256+0,7]);break;case 287>=B:A.push([B-280+192,8]);break;default:k("invalid literal: "+B)} -function ea(){var a=C;switch(!0){case 3===a:return[257,a-3,0];case 4===a:return[258,a-4,0];case 5===a:return[259,a-5,0];case 6===a:return[260,a-6,0];case 7===a:return[261,a-7,0];case 8===a:return[262,a-8,0];case 9===a:return[263,a-9,0];case 10===a:return[264,a-10,0];case 12>=a:return[265,a-11,1];case 14>=a:return[266,a-13,1];case 16>=a:return[267,a-15,1];case 18>=a:return[268,a-17,1];case 22>=a:return[269,a-19,2];case 26>=a:return[270,a-23,2];case 30>=a:return[271,a-27,2];case 34>=a:return[272,a- -31,2];case 42>=a:return[273,a-35,3];case 50>=a:return[274,a-43,3];case 58>=a:return[275,a-51,3];case 66>=a:return[276,a-59,3];case 82>=a:return[277,a-67,4];case 98>=a:return[278,a-83,4];case 114>=a:return[279,a-99,4];case 130>=a:return[280,a-115,4];case 162>=a:return[281,a-131,5];case 194>=a:return[282,a-163,5];case 226>=a:return[283,a-195,5];case 257>=a:return[284,a-227,5];case 258===a:return[285,a-258,0];default:k("invalid length: "+a)}}var E=[],C,F; -for(C=3;258>=C;C++)F=ea(),E[C]=F[2]<<24|F[1]<<16|F[0];s&&new Uint32Array(E);function G(a,b){this.h=[];this.i=32768;this.d=this.f=this.c=this.n=0;this.input=s?new Uint8Array(a):a;this.o=!1;this.j=H;this.v=!1;if(b||!(b={}))b.index&&(this.c=b.index),b.bufferSize&&(this.i=b.bufferSize),b.bufferType&&(this.j=b.bufferType),b.resize&&(this.v=b.resize);switch(this.j){case I:this.a=32768;this.b=new (s?Uint8Array:Array)(32768+this.i+258);break;case H:this.a=0;this.b=new (s?Uint8Array:Array)(this.i);this.e=this.D;this.q=this.A;this.l=this.C;break;default:k(Error("invalid inflate mode"))}} -var I=0,H=1; -G.prototype.m=function(){for(;!this.o;){var a=J(this,3);a&1&&(this.o=!0);a>>>=1;switch(a){case 0:var b=this.input,c=this.c,d=this.b,e=this.a,f=n,g=n,i=n,l=d.length,m=n;this.d=this.f=0;f=b[c++];f===n&&k(Error("invalid uncompressed block header: LEN (first byte)"));g=f;f=b[c++];f===n&&k(Error("invalid uncompressed block header: LEN (second byte)"));g|=f<<8;f=b[c++];f===n&&k(Error("invalid uncompressed block header: NLEN (first byte)"));i=f;f=b[c++];f===n&&k(Error("invalid uncompressed block header: NLEN (second byte)"));i|= -f<<8;g===~i&&k(Error("invalid uncompressed block header: length verify"));c+g>b.length&&k(Error("input buffer is broken"));switch(this.j){case I:for(;e+g>d.length;){m=l-e;g-=m;if(s)d.set(b.subarray(c,c+m),e),e+=m,c+=m;else for(;m--;)d[e++]=b[c++];this.a=e;d=this.e();e=this.a}break;case H:for(;e+g>d.length;)d=this.e({s:2});break;default:k(Error("invalid inflate mode"))}if(s)d.set(b.subarray(c,c+g),e),e+=g,c+=g;else for(;g--;)d[e++]=b[c++];this.c=c;this.a=e;this.b=d;break;case 1:this.l(fa,ga);break; -case 2:ha(this);break;default:k(Error("unknown BTYPE: "+a))}}return this.q()}; -var L=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],M=s?new Uint16Array(L):L,ia=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,258,258],ja=s?new Uint16Array(ia):ia,ka=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0],N=s?new Uint8Array(ka):ka,la=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],ma=s?new Uint16Array(la):la,na=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11, -11,12,12,13,13],O=s?new Uint8Array(na):na,Q=new (s?Uint8Array:Array)(288),S,oa;S=0;for(oa=Q.length;S=S?8:255>=S?9:279>=S?7:8;var fa=z(Q),T=new (s?Uint8Array:Array)(30),U,pa;U=0;for(pa=T.length;U>>b;a.d=d-b;a.c=f;return g} -function V(a,b){for(var c=a.f,d=a.d,e=a.input,f=a.c,g=b[0],i=b[1],l,m,r;d>>16;a.f=c>>r;a.d=d-r;a.c=f;return m&65535} -function ha(a){function b(a,b,c){var d,e,f,g;for(g=0;gf)d>=e&&(this.a=d,c=this.e(),d=this.a),c[d++]=f;else{g=f-257;l=ja[g];0=e&&(this.a=d,c=this.e(),d=this.a);for(;l--;)c[d]=c[d++-i]}for(;8<=this.d;)this.d-=8,this.c--;this.a=d}; -G.prototype.C=function(a,b){var c=this.b,d=this.a;this.r=a;for(var e=c.length,f,g,i,l;256!==(f=V(this,a));)if(256>f)d>=e&&(c=this.e(),e=c.length),c[d++]=f;else{g=f-257;l=ja[g];0e&&(c=this.e(),e=c.length);for(;l--;)c[d]=c[d++-i]}for(;8<=this.d;)this.d-=8,this.c--;this.a=d}; -G.prototype.e=function(){var a=new (s?Uint8Array:Array)(this.a-32768),b=this.a-32768,c,d,e=this.b;if(s)a.set(e.subarray(32768,a.length));else{c=0;for(d=a.length;cc;++c)e[c]=e[b+c];this.a=32768;return e}; -G.prototype.D=function(a){var b,c=this.input.length/this.c+1|0,d,e,f,g=this.input,i=this.b;a&&("number"===typeof a.s&&(c=a.s),"number"===typeof a.z&&(c+=a.z));2>c?(d=(g.length-this.c)/this.r[2],f=258*(d/2)|0,e=fb&&(this.b.length=b),a=this.b);return this.buffer=a};function W(a){this.input=a;this.c=0;this.member=[]} -W.prototype.m=function(){for(var a=this.input.length;this.c>>0;v.k(e)!==r&&k(Error("invalid CRC-32 checksum: 0x"+v.k(e).toString(16)+" / 0x"+r.toString(16))); -b.H=c=(h[j++]|h[j++]<<8|h[j++]<<16|h[j++]<<24)>>>0;(e.length&4294967295)!==c&&k(Error("invalid input size: "+(e.length&4294967295)+" / "+c));this.member.push(b);this.c=j}var D=this.member,q,K,P=0,R=0,x;q=0;for(K=D.length;q=Y?8:255>=Y?9:279>=Y?7:8;z(X);var Z=new (s?Uint8Array:Array)(30),$,wa;$=0;for(wa=Z.length;$>>8&255]<<16|K[b>>>16&255]<<8|K[b>>>24&255])>>32-c:K[b]>>8-c);if(8>c+e)l=l<>c-m-1&1,8===++e&&(e=0,a[g++]=K[l],l=0,g===a.length&&(a=ea(this)));a[g]=l;this.buffer=a;this.f=e;this.index=g};G.prototype.finish=function(){var b=this.buffer,c=this.index,f;0P;++P){for(var Q=P,S=Q,ia=7,Q=Q>>>1;Q;Q>>>=1)S<<=1,S|=Q&1,--ia;ha[P]=(S<>>0}var K=ha;function ja(b,c,f){var a,g="number"===typeof c?c:c=0,e="number"===typeof f?f:b.length;a=-1;for(g=e&7;g--;++c)a=a>>>8^T[(a^b[c])&255];for(g=e>>3;g--;c+=8)a=a>>>8^T[(a^b[c])&255],a=a>>>8^T[(a^b[c+1])&255],a=a>>>8^T[(a^b[c+2])&255],a=a>>>8^T[(a^b[c+3])&255],a=a>>>8^T[(a^b[c+4])&255],a=a>>>8^T[(a^b[c+5])&255],a=a>>>8^T[(a^b[c+6])&255],a=a>>>8^T[(a^b[c+7])&255];return(a^4294967295)>>>0} -var T,ka=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759, -2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977, -2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755, -2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956, -3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270, -936918E3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];T=B?new Uint32Array(ka):ka;function ma(b){this.buffer=new (B?Uint16Array:Array)(2*b);this.length=0}ma.prototype.getParent=function(b){return 2*((b-2)/4|0)};ma.prototype.push=function(b,c){var f,a,g=this.buffer,e;f=this.length;g[this.length++]=c;for(g[this.length++]=b;0g[a])e=g[f],g[f]=g[a],g[a]=e,e=g[f+1],g[f+1]=g[a+1],g[a+1]=e,f=a;else break;return this.length}; -ma.prototype.pop=function(){var b,c,f=this.buffer,a,g,e;c=f[0];b=f[1];this.length-=2;f[0]=f[this.length];f[1]=f[this.length+1];for(e=0;;){g=2*e+2;if(g>=this.length)break;g+2f[g]&&(g+=2);if(f[g]>f[e])a=f[e],f[e]=f[g],f[g]=a,a=f[e+1],f[e+1]=f[g+1],f[g+1]=a;else break;e=g}return{index:b,value:c,length:this.length}};function na(b){var c=b.length,f=0,a=Number.POSITIVE_INFINITY,g,e,l,m,h,d,r,n,j;for(n=0;nf&&(f=b[n]),b[n]>=1;for(j=d;jW;W++)switch(y){case 143>=W:V.push([W+48,8]);break;case 255>=W:V.push([W-144+400,9]);break;case 279>=W:V.push([W-256+0,7]);break;case 287>=W:V.push([W-280+192,8]);break;default:throw"invalid literal: "+W;} -pa.prototype.g=function(){var b,c,f,a,g=this.input;switch(this.h){case 0:f=0;for(a=g.length;f>>8&255;j[q++]=d&255;j[q++]=d>>>8&255;if(B)j.set(e,q),q+=e.length,j=j.subarray(0,q);else{r=0;for(n=e.length;ru)for(;0u?u:138,F>u-3&&F=F?(J[H++]=17,J[H++]=F-3,N[17]++):(J[H++]=18,J[H++]=F-11,N[18]++),u-=F;else if(J[H++]=L[t],N[L[t]]++,u--,3>u)for(;0u?u:6,F>u-3&&FE;E++)la[E]=fa[Z[E]];for(A=19;4=b:return[265,b-11,1];case 14>=b:return[266,b-13,1];case 16>=b:return[267,b-15,1];case 18>=b:return[268,b-17,1];case 22>=b:return[269,b-19,2];case 26>=b:return[270,b-23,2];case 30>=b:return[271,b-27,2];case 34>=b:return[272,b- -31,2];case 42>=b:return[273,b-35,3];case 50>=b:return[274,b-43,3];case 58>=b:return[275,b-51,3];case 66>=b:return[276,b-59,3];case 82>=b:return[277,b-67,4];case 98>=b:return[278,b-83,4];case 114>=b:return[279,b-99,4];case 130>=b:return[280,b-115,4];case 162>=b:return[281,b-131,5];case 194>=b:return[282,b-163,5];case 226>=b:return[283,b-195,5];case 257>=b:return[284,b-227,5];case 258===b:return[285,b-258,0];default:throw"invalid length: "+b;}}var xa=[],wa,ya; -for(wa=3;258>=wa;wa++)ya=va(),xa[wa]=ya[2]<<24|ya[1]<<16|ya[0];var za=B?new Uint32Array(xa):xa; -function ra(b,c){function f(b,c){var a=b.k,e=[],g=0,f;f=za[b.length];e[g++]=f&65535;e[g++]=f>>16&255;e[g++]=f>>24;var d;switch(y){case 1===a:d=[0,a-1,0];break;case 2===a:d=[1,a-2,0];break;case 3===a:d=[2,a-3,0];break;case 4===a:d=[3,a-4,0];break;case 6>=a:d=[4,a-5,1];break;case 8>=a:d=[5,a-7,1];break;case 12>=a:d=[6,a-9,2];break;case 16>=a:d=[7,a-13,2];break;case 24>=a:d=[8,a-17,3];break;case 32>=a:d=[9,a-25,3];break;case 48>=a:d=[10,a-33,4];break;case 64>=a:d=[11,a-49,4];break;case 96>=a:d=[12,a- -65,5];break;case 128>=a:d=[13,a-97,5];break;case 192>=a:d=[14,a-129,6];break;case 256>=a:d=[15,a-193,6];break;case 384>=a:d=[16,a-257,7];break;case 512>=a:d=[17,a-385,7];break;case 768>=a:d=[18,a-513,8];break;case 1024>=a:d=[19,a-769,8];break;case 1536>=a:d=[20,a-1025,9];break;case 2048>=a:d=[21,a-1537,9];break;case 3072>=a:d=[22,a-2049,10];break;case 4096>=a:d=[23,a-3073,10];break;case 6144>=a:d=[24,a-4097,11];break;case 8192>=a:d=[25,a-6145,11];break;case 12288>=a:d=[26,a-8193,12];break;case 16384>= -a:d=[27,a-12289,12];break;case 24576>=a:d=[28,a-16385,13];break;case 32768>=a:d=[29,a-24577,13];break;default:throw"invalid distance";}f=d;e[g++]=f[0];e[g++]=f[1];e[g++]=f[2];var h,i;h=0;for(i=e.length;h=e;)s[e++]=0;for(e=0;29>=e;)w[e++]=0}s[256]=1;a=0;for(g=c.length;a=g){n&&f(n,-1);e=0;for(l=g-a;ep&&a+pi&&(z=v,i=p);if(258===p)break}r=new ua(i,a-z);n?n.length2*j[i-1]+q[i]&&(j[i]=2*j[i-1]+q[i]),s[i]=Array(j[i]),w[i]=Array(j[i]);for(z=0;zm[z]?(s[i][p]=C,w[i][p]=n,A+=2): -(s[i][p]=m[z],w[i][p]=z,++z);I[i]=0;1===q[i]&&f(i)}h=D;d=0;for(r=l.length;d>>=1}return c};function Aa(b,c){this.input=b;this.c=this.i=0;this.d={};c&&(c.flags&&(this.d=c.flags),"string"===typeof c.filename&&(this.filename=c.filename),"string"===typeof c.comment&&(this.l=c.comment),c.deflateOptions&&(this.e=c.deflateOptions));this.e||(this.e={})} -Aa.prototype.g=function(){var b,c,f,a,g,e,l,m,h=new (B?Uint8Array:Array)(32768),d=0,r=this.input,n=this.i,j=this.filename,q=this.l;h[d++]=31;h[d++]=139;h[d++]=8;b=0;this.d.fname&&(b|=Ba);this.d.fcomment&&(b|=Ca);this.d.fhcrc&&(b|=Qa);h[d++]=b;c=(Date.now?Date.now():+new Date)/1E3|0;h[d++]=c&255;h[d++]=c>>>8&255;h[d++]=c>>>16&255;h[d++]=c>>>24&255;h[d++]=0;h[d++]=Ra;if(this.d.fname!==k){l=0;for(m=j.length;l>>8&255),h[d++]=e&255;h[d++]=0}if(this.d.comment){l= -0;for(m=q.length;l>>8&255),h[d++]=e&255;h[d++]=0}this.d.fhcrc&&(f=ja(h,0,d)&65535,h[d++]=f&255,h[d++]=f>>>8&255);this.e.outputBuffer=h;this.e.outputIndex=d;g=new pa(r,this.e);h=g.g();d=g.c;B&&(d+8>h.buffer.byteLength?(this.b=new Uint8Array(d+8),this.b.set(new Uint8Array(h.buffer)),h=this.b):h=new Uint8Array(h.buffer));a=ja(r,k,k);h[d++]=a&255;h[d++]=a>>>8&255;h[d++]=a>>>16&255;h[d++]=a>>>24&255;m=r.length;h[d++]=m&255;h[d++]=m>>>8&255;h[d++]=m>>>16&255;h[d++]= -m>>>24&255;this.i=n;B&&d=X?8:255>=X?9:279>=X?7:8;na(Xa);var Za=new (B?Uint8Array:Array)(30),$a,ab;$a=0;for(ab=Za.length;$a=Y?8:255>=Y?9:279>=Y?7:8;na(gb);var ib=new (B?Uint8Array:Array)(30),jb,kb;jb=0;for(kb=ib.length;jbr;++r)for(var t=r,ba=7,t=t>>>1;t;t>>>=1)--ba;var ca=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759, -2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977, -2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755, -2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956, -3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270, -936918E3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];q&&new Uint32Array(ca);function u(a){var d=a.length,b=0,c=Number.POSITIVE_INFINITY,f,e,g,h,j,k,n,m,s;for(m=0;mb&&(b=a[m]),a[m]>=1;for(s=k;sw;w++)switch(!0){case 143>=w:v.push([w+48,8]);break;case 255>=w:v.push([w-144+400,9]);break;case 279>=w:v.push([w-256+0,7]);break;case 287>=w:v.push([w-280+192,8]);break;default:i("invalid literal: "+w)} -function da(){var a=x;switch(!0){case 3===a:return[257,a-3,0];case 4===a:return[258,a-4,0];case 5===a:return[259,a-5,0];case 6===a:return[260,a-6,0];case 7===a:return[261,a-7,0];case 8===a:return[262,a-8,0];case 9===a:return[263,a-9,0];case 10===a:return[264,a-10,0];case 12>=a:return[265,a-11,1];case 14>=a:return[266,a-13,1];case 16>=a:return[267,a-15,1];case 18>=a:return[268,a-17,1];case 22>=a:return[269,a-19,2];case 26>=a:return[270,a-23,2];case 30>=a:return[271,a-27,2];case 34>=a:return[272,a- -31,2];case 42>=a:return[273,a-35,3];case 50>=a:return[274,a-43,3];case 58>=a:return[275,a-51,3];case 66>=a:return[276,a-59,3];case 82>=a:return[277,a-67,4];case 98>=a:return[278,a-83,4];case 114>=a:return[279,a-99,4];case 130>=a:return[280,a-115,4];case 162>=a:return[281,a-131,5];case 194>=a:return[282,a-163,5];case 226>=a:return[283,a-195,5];case 257>=a:return[284,a-227,5];case 258===a:return[285,a-258,0];default:i("invalid length: "+a)}}var y=[],x,z; -for(x=3;258>=x;x++)z=da(),y[x]=z[2]<<24|z[1]<<16|z[0];q&&new Uint32Array(y);function A(a,d){this.g=[];this.h=32768;this.d=this.f=this.a=this.l=0;this.input=q?new Uint8Array(a):a;this.m=!1;this.i=B;this.r=!1;if(d||!(d={}))d.index&&(this.a=d.index),d.bufferSize&&(this.h=d.bufferSize),d.bufferType&&(this.i=d.bufferType),d.resize&&(this.r=d.resize);switch(this.i){case C:this.b=32768;this.c=new (q?Uint8Array:Array)(32768+this.h+258);break;case B:this.b=0;this.c=new (q?Uint8Array:Array)(this.h);this.e=this.z;this.n=this.v;this.j=this.w;break;default:i(Error("invalid inflate mode"))}} -var C=0,B=1,D={t:C,s:B}; -A.prototype.k=function(){for(;!this.m;){var a=E(this,3);a&1&&(this.m=!0);a>>>=1;switch(a){case 0:var d=this.input,b=this.a,c=this.c,f=this.b,e=l,g=l,h=l,j=c.length,k=l;this.d=this.f=0;e=d[b++];e===l&&i(Error("invalid uncompressed block header: LEN (first byte)"));g=e;e=d[b++];e===l&&i(Error("invalid uncompressed block header: LEN (second byte)"));g|=e<<8;e=d[b++];e===l&&i(Error("invalid uncompressed block header: NLEN (first byte)"));h=e;e=d[b++];e===l&&i(Error("invalid uncompressed block header: NLEN (second byte)"));h|= -e<<8;g===~h&&i(Error("invalid uncompressed block header: length verify"));b+g>d.length&&i(Error("input buffer is broken"));switch(this.i){case C:for(;f+g>c.length;){k=j-f;g-=k;if(q)c.set(d.subarray(b,b+k),f),f+=k,b+=k;else for(;k--;)c[f++]=d[b++];this.b=f;c=this.e();f=this.b}break;case B:for(;f+g>c.length;)c=this.e({p:2});break;default:i(Error("invalid inflate mode"))}if(q)c.set(d.subarray(b,b+g),f),f+=g,b+=g;else for(;g--;)c[f++]=d[b++];this.a=b;this.b=f;this.c=c;break;case 1:this.j(ea,fa);break; -case 2:ga(this);break;default:i(Error("unknown BTYPE: "+a))}}return this.n()}; -var F=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],G=q?new Uint16Array(F):F,H=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,258,258],I=q?new Uint16Array(H):H,J=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0],K=q?new Uint8Array(J):J,L=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],M=q?new Uint16Array(L):L,N=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13, -13],O=q?new Uint8Array(N):N,P=new (q?Uint8Array:Array)(288),Q,R;Q=0;for(R=P.length;Q=Q?8:255>=Q?9:279>=Q?7:8;var ea=u(P),S=new (q?Uint8Array:Array)(30),T,U;T=0;for(U=S.length;T>>d;a.d=c-d;a.a=e;return g} -function V(a,d){for(var b=a.f,c=a.d,f=a.input,e=a.a,g=d[0],h=d[1],j,k,n;c>>16;a.f=b>>n;a.d=c-n;a.a=e;return k&65535} -function ga(a){function d(a,b,c){var d,e,f,g;for(g=0;ge)c>=f&&(this.b=c,b=this.e(),c=this.b),b[c++]=e;else{g=e-257;j=I[g];0=f&&(this.b=c,b=this.e(),c=this.b);for(;j--;)b[c]=b[c++-h]}for(;8<=this.d;)this.d-=8,this.a--;this.b=c}; -A.prototype.w=function(a,d){var b=this.c,c=this.b;this.o=a;for(var f=b.length,e,g,h,j;256!==(e=V(this,a));)if(256>e)c>=f&&(b=this.e(),f=b.length),b[c++]=e;else{g=e-257;j=I[g];0f&&(b=this.e(),f=b.length);for(;j--;)b[c]=b[c++-h]}for(;8<=this.d;)this.d-=8,this.a--;this.b=c}; -A.prototype.e=function(){var a=new (q?Uint8Array:Array)(this.b-32768),d=this.b-32768,b,c,f=this.c;if(q)a.set(f.subarray(32768,a.length));else{b=0;for(c=a.length;bb;++b)f[b]=f[d+b];this.b=32768;return f}; -A.prototype.z=function(a){var d,b=this.input.length/this.a+1|0,c,f,e,g=this.input,h=this.c;a&&("number"===typeof a.p&&(b=a.p),"number"===typeof a.u&&(b+=a.u));2>b?(c=(g.length-this.a)/this.o[2],e=258*(c/2)|0,f=ed&&(this.c.length=d),a=this.c);return this.buffer=a};function W(a,d){var b,c;this.input=a;this.a=0;if(d||!(d={}))d.index&&(this.a=d.index),d.verify&&(this.A=d.verify);b=a[this.a++];c=a[this.a++];switch(b&15){case ha:this.method=ha;break;default:i(Error("unsupported compression method"))}0!==((b<<8)+c)%31&&i(Error("invalid fcheck flag:"+((b<<8)+c)%31));c&32&&i(Error("fdict flag is not supported"));this.q=new A(a,{index:this.a,bufferSize:d.bufferSize,bufferType:d.bufferType,resize:d.resize})} -W.prototype.k=function(){var a=this.input,d,b;d=this.q.k();this.a=this.q.a;if(this.A){b=(a[this.a++]<<24|a[this.a++]<<16|a[this.a++]<<8|a[this.a++])>>>0;var c=d;if("string"===typeof c){var f=c.split(""),e,g;e=0;for(g=f.length;e>>0;c=f}for(var h=1,j=0,k=c.length,n,m=0;0>>0&&i(Error("invalid adler-32 checksum"))}return d};p("Zlib.Inflate",W);p("Zlib.Inflate.BufferType",D); -D.ADAPTIVE=D.s;D.BLOCK=D.t;p("Zlib.Inflate.prototype.decompress",W.prototype.k);var ia=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];q&&new Uint16Array(ia);var ja=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,258,258];q&&new Uint16Array(ja);var ka=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0];q&&new Uint8Array(ka);var la=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577];q&&new Uint16Array(la); -var ma=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];q&&new Uint8Array(ma);var X=new (q?Uint8Array:Array)(288),Y,na;Y=0;for(na=X.length;Y=Y?8:255>=Y?9:279>=Y?7:8;u(X);var Z=new (q?Uint8Array:Array)(30),$,oa;$=0;for(oa=Z.length;$>>8&255]<<16|J[a>>>16&255]<<8|J[a>>>24&255])>>32-c:J[a]>>8-c);if(8>c+e)g=g<>c-h-1&1,8===++e&&(e=0,d[f++]=J[g],g=0,f===d.length&&(d=this.f()));d[f]=g;this.buffer=d;this.m=e;this.index=f};ca.prototype.finish=function(){var a=this.buffer,c=this.index,b;0ea;++ea){for(var L=ea,fa=L,ka=7,L=L>>>1;L;L>>>=1)fa<<=1,fa|=L&1,--ka;da[ea]=(fa<>>0}var J=da;function la(a,c,b){var d,f="number"===typeof c?c:c=0,e="number"===typeof b?b:a.length;d=-1;for(f=e&7;f--;++c)d=d>>>8^N[(d^a[c])&255];for(f=e>>3;f--;c+=8)d=d>>>8^N[(d^a[c])&255],d=d>>>8^N[(d^a[c+1])&255],d=d>>>8^N[(d^a[c+2])&255],d=d>>>8^N[(d^a[c+3])&255],d=d>>>8^N[(d^a[c+4])&255],d=d>>>8^N[(d^a[c+5])&255],d=d>>>8^N[(d^a[c+6])&255],d=d>>>8^N[(d^a[c+7])&255];return(d^4294967295)>>>0} +var N,ma=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759, +2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977, +2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755, +2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956, +3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270, +936918E3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];N=F?new Uint32Array(ma):ma;function na(a,c){var b,d,f,e;if(Object.keys)b=Object.keys(c);else for(d in b=[],f=0,c)b[f++]=d;f=0;for(e=b.length;ff[d])e=f[b],f[b]=f[d],f[d]=e,e=f[b+1],f[b+1]=f[d+1],f[d+1]=e,b=d;else break;return this.length}; +oa.prototype.pop=function(){var a,c,b=this.buffer,d,f,e;c=b[0];a=b[1];this.length-=2;b[0]=b[this.length];b[1]=b[this.length+1];for(e=0;;){f=2*e+2;if(f>=this.length)break;f+2b[f]&&(f+=2);if(b[f]>b[e])d=b[e],b[e]=b[f],b[f]=d,d=b[e+1],b[e+1]=b[f+1],b[f+1]=d;else break;e=f}return{index:a,value:c,length:this.length}};function T(a){var c=a.length,b=0,d=Number.POSITIVE_INFINITY,f,e,g,h,j,i,r,l,k;for(l=0;lb&&(b=a[l]),a[l]>=1;for(k=i;kU;U++)switch(u){case 143>=U:ua.push([U+48,8]);break;case 255>=U:ua.push([U-144+400,9]);break;case 279>=U:ua.push([U-256+0,7]);break;case 287>=U:ua.push([U-280+192,8]);break;default:m("invalid literal: "+U)} +pa.prototype.g=function(){var a,c,b,d,f=this.input;switch(this.k){case 0:b=0;for(d=f.length;b>>8&255;k[q++]=i&255;k[q++]=i>>>8&255;if(F)k.set(e,q),q+=e.length,k=k.subarray(0,q);else{r=0;for(l=e.length;rz)for(;0z?z:138,I>z-3&&I=I?(M[K++]=17,M[K++]=I-3,Q[17]++):(M[K++]=18,M[K++]=I-11,Q[18]++),z-=I;else if(M[K++]=O[y],Q[O[y]]++,z--,3>z)for(;0z?z:6,I>z-3&&IH;H++)Aa[H]=qa[ga[H]];for(D=19;4=a:return[265,a-11,1];case 14>=a:return[266,a-13,1];case 16>=a:return[267,a-15,1];case 18>=a:return[268,a-17,1];case 22>=a:return[269,a-19,2];case 26>=a:return[270,a-23,2];case 30>=a:return[271,a-27,2];case 34>=a:return[272,a- +31,2];case 42>=a:return[273,a-35,3];case 50>=a:return[274,a-43,3];case 58>=a:return[275,a-51,3];case 66>=a:return[276,a-59,3];case 82>=a:return[277,a-67,4];case 98>=a:return[278,a-83,4];case 114>=a:return[279,a-99,4];case 130>=a:return[280,a-115,4];case 162>=a:return[281,a-131,5];case 194>=a:return[282,a-163,5];case 226>=a:return[283,a-195,5];case 257>=a:return[284,a-227,5];case 258===a:return[285,a-258,0];default:m("invalid length: "+a)}}var Ca=[],Ba,Ea; +for(Ba=3;258>=Ba;Ba++)Ea=za(),Ca[Ba]=Ea[2]<<24|Ea[1]<<16|Ea[0];var Fa=F?new Uint32Array(Ca):Ca; +function va(a,c){function b(a,c){var b=a.P,d=[],e=0,f;f=Fa[a.length];d[e++]=f&65535;d[e++]=f>>16&255;d[e++]=f>>24;var g;switch(u){case 1===b:g=[0,b-1,0];break;case 2===b:g=[1,b-2,0];break;case 3===b:g=[2,b-3,0];break;case 4===b:g=[3,b-4,0];break;case 6>=b:g=[4,b-5,1];break;case 8>=b:g=[5,b-7,1];break;case 12>=b:g=[6,b-9,2];break;case 16>=b:g=[7,b-13,2];break;case 24>=b:g=[8,b-17,3];break;case 32>=b:g=[9,b-25,3];break;case 48>=b:g=[10,b-33,4];break;case 64>=b:g=[11,b-49,4];break;case 96>=b:g=[12,b- +65,5];break;case 128>=b:g=[13,b-97,5];break;case 192>=b:g=[14,b-129,6];break;case 256>=b:g=[15,b-193,6];break;case 384>=b:g=[16,b-257,7];break;case 512>=b:g=[17,b-385,7];break;case 768>=b:g=[18,b-513,8];break;case 1024>=b:g=[19,b-769,8];break;case 1536>=b:g=[20,b-1025,9];break;case 2048>=b:g=[21,b-1537,9];break;case 3072>=b:g=[22,b-2049,10];break;case 4096>=b:g=[23,b-3073,10];break;case 6144>=b:g=[24,b-4097,11];break;case 8192>=b:g=[25,b-6145,11];break;case 12288>=b:g=[26,b-8193,12];break;case 16384>= +b:g=[27,b-12289,12];break;case 24576>=b:g=[28,b-16385,13];break;case 32768>=b:g=[29,b-24577,13];break;default:m("invalid distance")}f=g;d[e++]=f[0];d[e++]=f[1];d[e++]=f[2];var h,i;h=0;for(i=d.length;h=e;)v[e++]=0;for(e=0;29>=e;)x[e++]=0}v[256]=1;d=0;for(f=c.length;d=f){l&&b(l,-1);e=0;for(g=f-d;es&&d+sn&&(C=B,n=s);if(258===s)break}r=new ya(n,d-C);l?l.length2*k[n-1]+q[n]&&(k[n]=2*k[n-1]+q[n]),v[n]=Array(k[n]),x[n]=Array(k[n]);for(C=0;Ch[C]?(v[n][s]=E,x[n][s]=l,D+=2): +(v[n][s]=h[C],x[n][s]=C,++C);G[n]=0;1===q[n]&&b(n)}j=t;i=0;for(r=g.length;i>>=1}return c};function Ga(a,c){this.input=a;this.b=this.c=0;this.i={};c&&(c.flags&&(this.i=c.flags),"string"===typeof c.filename&&(this.filename=c.filename),"string"===typeof c.comment&&(this.A=c.comment),c.deflateOptions&&(this.l=c.deflateOptions));this.l||(this.l={})} +Ga.prototype.g=function(){var a,c,b,d,f,e,g,h,j=new (F?Uint8Array:Array)(32768),i=0,r=this.input,l=this.c,k=this.filename,q=this.A;j[i++]=31;j[i++]=139;j[i++]=8;a=0;this.i.fname&&(a|=Ha);this.i.fcomment&&(a|=Ia);this.i.fhcrc&&(a|=Ja);j[i++]=a;c=(Date.now?Date.now():+new Date)/1E3|0;j[i++]=c&255;j[i++]=c>>>8&255;j[i++]=c>>>16&255;j[i++]=c>>>24&255;j[i++]=0;j[i++]=Ka;if(this.i.fname!==p){g=0;for(h=k.length;g>>8&255),j[i++]=e&255;j[i++]=0}if(this.i.comment){g= +0;for(h=q.length;g>>8&255),j[i++]=e&255;j[i++]=0}this.i.fhcrc&&(b=la(j,0,i)&65535,j[i++]=b&255,j[i++]=b>>>8&255);this.l.outputBuffer=j;this.l.outputIndex=i;f=new pa(r,this.l);j=f.g();i=f.b;F&&(i+8>j.buffer.byteLength?(this.a=new Uint8Array(i+8),this.a.set(new Uint8Array(j.buffer)),j=this.a):j=new Uint8Array(j.buffer));d=la(r,p,p);j[i++]=d&255;j[i++]=d>>>8&255;j[i++]=d>>>16&255;j[i++]=d>>>24&255;h=r.length;j[i++]=h&255;j[i++]=h>>>8&255;j[i++]=h>>>16&255;j[i++]= +h>>>24&255;this.c=l;F&&i>>=1;switch(a){case 0:var c=this.input,b=this.c,d=this.a,f=this.b,e=p,g=p,h=p,j=d.length,i=p;this.e=this.j=0;e=c[b++];e===p&&m(Error("invalid uncompressed block header: LEN (first byte)"));g=e;e=c[b++];e===p&&m(Error("invalid uncompressed block header: LEN (second byte)"));g|=e<<8;e=c[b++];e===p&&m(Error("invalid uncompressed block header: NLEN (first byte)"));h=e;e=c[b++];e===p&&m(Error("invalid uncompressed block header: NLEN (second byte)"));h|= +e<<8;g===~h&&m(Error("invalid uncompressed block header: length verify"));b+g>c.length&&m(Error("input buffer is broken"));switch(this.r){case Ma:for(;f+g>d.length;){i=j-f;g-=i;if(F)d.set(c.subarray(b,b+i),f),f+=i,b+=i;else for(;i--;)d[f++]=c[b++];this.b=f;d=this.f();f=this.b}break;case La:for(;f+g>d.length;)d=this.f({F:2});break;default:m(Error("invalid inflate mode"))}if(F)d.set(c.subarray(b,b+g),f),f+=g,b+=g;else for(;g--;)d[f++]=c[b++];this.c=b;this.b=f;this.a=d;break;case 1:this.s(Oa,Pa);break; +case 2:Qa(this);break;default:m(Error("unknown BTYPE: "+a))}}return this.B()}; +var db=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],eb=F?new Uint16Array(db):db,fb=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,258,258],gb=F?new Uint16Array(fb):fb,hb=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0],ib=F?new Uint8Array(hb):hb,jb=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],kb=F?new Uint16Array(jb):jb,lb=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10, +10,11,11,12,12,13,13],mb=F?new Uint8Array(lb):lb,nb=new (F?Uint8Array:Array)(288),Y,ob;Y=0;for(ob=nb.length;Y=Y?8:255>=Y?9:279>=Y?7:8;var Oa=T(nb),pb=new (F?Uint8Array:Array)(30),qb,rb;qb=0;for(rb=pb.length;qb>>c;a.e=d-c;a.c=e;return g} +function sb(a,c){for(var b=a.j,d=a.e,f=a.input,e=a.c,g=c[0],h=c[1],j,i,r;d>>16;a.j=b>>r;a.e=d-r;a.c=e;return i&65535} +function Qa(a){function c(a,c,b){var d,e,f,g;for(g=0;ge)d>=f&&(this.b=d,b=this.f(),d=this.b),b[d++]=e;else{g=e-257;j=gb[g];0=f&&(this.b=d,b=this.f(),d=this.b);for(;j--;)b[d]=b[d++-h]}for(;8<=this.e;)this.e-=8,this.c--;this.b=d}; +V.prototype.S=function(a,c){var b=this.a,d=this.b;this.C=a;for(var f=b.length,e,g,h,j;256!==(e=sb(this,a));)if(256>e)d>=f&&(b=this.f(),f=b.length),b[d++]=e;else{g=e-257;j=gb[g];0f&&(b=this.f(),f=b.length);for(;j--;)b[d]=b[d++-h]}for(;8<=this.e;)this.e-=8,this.c--;this.b=d}; +V.prototype.f=function(){var a=new (F?Uint8Array:Array)(this.b-32768),c=this.b-32768,b,d,f=this.a;if(F)a.set(f.subarray(32768,a.length));else{b=0;for(d=a.length;bb;++b)f[b]=f[c+b];this.b=32768;return f}; +V.prototype.T=function(a){var c,b=this.input.length/this.c+1|0,d,f,e,g=this.input,h=this.a;a&&("number"===typeof a.F&&(b=a.F),"number"===typeof a.O&&(b+=a.O));2>b?(d=(g.length-this.c)/this.C[2],e=258*(d/2)|0,f=ec&&(this.a.length=c),a=this.a);return this.buffer=a};function tb(a){this.input=a;this.c=0;this.t=[];this.D=!1}tb.prototype.W=function(){this.D||this.h();return this.t.slice()}; +tb.prototype.h=function(){for(var a=this.input.length;this.c>>0;la(f,p,p)!==r&&m(Error("invalid CRC-32 checksum: 0x"+la(f,p,p).toString(16)+ +" / 0x"+r.toString(16)));c.ca=b=(l[k++]|l[k++]<<8|l[k++]<<16|l[k++]<<24)>>>0;(f.length&4294967295)!==b&&m(Error("invalid input size: "+(f.length&4294967295)+" / "+b));this.t.push(c);this.c=k}this.D=u;var q=this.t,t,v,x=0,G=0,w;t=0;for(v=q.length;t=Z?8:255>=Z?9:279>=Z?7:8;T(zb);var Bb=new (F?Uint8Array:Array)(30),Cb,Db;Cb=0;for(Db=Bb.length;Cb>>0;a=c}for(var f=1,e=0,g=a.length,h,j=0;0>>0};function Fb(a,c){this.input=a;this.a=new (F?Uint8Array:Array)(32768);this.k=$.o;var b={},d;if((c||!(c={}))&&"number"===typeof c.compressionType)this.k=c.compressionType;for(d in c)b[d]=c[d];b.outputBuffer=this.a;this.J=new pa(this.input,b)}var $=ta; +Fb.prototype.g=function(){var a,c,b,d,f,e,g,h=0;g=this.a;a=Gb;switch(a){case Gb:c=Math.LOG2E*Math.log(32768)-8;break;default:m(Error("invalid compression method"))}b=c<<4|a;g[h++]=b;switch(a){case Gb:switch(this.k){case $.NONE:f=0;break;case $.v:f=1;break;case $.o:f=2;break;default:m(Error("unsupported compression type"))}break;default:m(Error("invalid compression method"))}d=f<<6|0;g[h++]=d|31-(256*b+d)%31;e=Eb(this.input);this.J.b=h;g=this.J.g();h=g.length;F&&(g=new Uint8Array(g.buffer),g.length<= +h+4&&(this.a=new Uint8Array(g.length+4),this.a.set(g),g=this.a),g=g.subarray(0,h+4));g[h++]=e>>24&255;g[h++]=e>>16&255;g[h++]=e>>8&255;g[h++]=e&255;return g};A("Zlib.Deflate",Fb);A("Zlib.Deflate.compress",function(a,c){return(new Fb(a,c)).g()});A("Zlib.Deflate.prototype.compress",Fb.prototype.g);na("Zlib.Deflate.CompressionType",{NONE:$.NONE,FIXED:$.v,DYNAMIC:$.o});function Hb(a,c){var b,d;this.input=a;this.c=0;if(c||!(c={}))c.index&&(this.c=c.index),c.verify&&(this.Z=c.verify);b=a[this.c++];d=a[this.c++];switch(b&15){case Gb:this.method=Gb;break;default:m(Error("unsupported compression method"))}0!==((b<<8)+d)%31&&m(Error("invalid fcheck flag:"+((b<<8)+d)%31));d&32&&m(Error("fdict flag is not supported"));this.K=new V(a,{index:this.c,bufferSize:c.bufferSize,bufferType:c.bufferType,resize:c.resize})} +Hb.prototype.h=function(){var a=this.input,c,b;c=this.K.h();this.c=this.K.c;this.Z&&(b=(a[this.c++]<<24|a[this.c++]<<16|a[this.c++]<<8|a[this.c++])>>>0,b!==Eb(c)&&m(Error("invalid adler-32 checksum")));return c};A("Zlib.Inflate",Hb);A("Zlib.Inflate.prototype.decompress",Hb.prototype.h);na("Zlib.Inflate.BufferType",{ADAPTIVE:Na.M,BLOCK:Na.N});var Gb=8;}).call(this); diff --git a/main.js b/main.js index 75649e4..832e56b 100644 --- a/main.js +++ b/main.js @@ -1,50 +1,26 @@ require.config({ paths: { jquery: "lib/jquery", - tmxjs: "src", - gzip: "lib/gzip.min", - gunzip: "lib/gunzip.min", - deflate: "lib/deflate.min", - inflate: "lib/inflate.min" + zlib: "lib/zlib.min", + tmxjs: "src" }, shim: { - gzip: { exports: "Zlib.Gzip" }, - gunzip: { exports: "Zlib.Gunzip" }, - deflate: { exports: "Zlib.Deflate" }, - inflate: { exports: "Zlib.Inflate" } + zlib: { exports: "Zlib" } } }); require([ - "gzip", - "gunzip", - "deflate", - "inflate", "jquery", "tmxjs/map", "tmxjs/util/util" ], function ( - Gzip, - Gunzip, - Deflate, - Inflate, $, Map, U ) { var url = "examples/desert_export.tmx"; var options = { - dir: url.split("/").slice(0, -1) || ".", - compression: { - gzip: { - compress: function (bytes) { return new Gzip(bytes).compress(); }, - decompress: function (bytes) { return new Gunzip(bytes).decompress(); } - }, - zlib: { - compress: function (bytes) { return new Deflate(bytes).compress(); }, - decompress: function (bytes) { return new Inflate(bytes).decompress(); } - } - } + dir: url.split("/").slice(0, -1) || "." }; $.get(url, {}, null, "xml") diff --git a/src/tile-layer.js b/src/tile-layer.js index 455f043..f111db4 100644 --- a/src/tile-layer.js +++ b/src/tile-layer.js @@ -1,5 +1,6 @@ define([ "jquery", + "zlib", "./cell", "./layer", "./util/base64", @@ -7,6 +8,7 @@ define([ "./util/util" ], function ( $, + Zlib, Cell, Layer, Base64, @@ -191,8 +193,10 @@ define([ content = Base64.encode(bytes); break; case TileLayer.Format.BASE64_GZIP: + content = Base64.encode(new Zlib.Gzip(bytes).compress()); + break; case TileLayer.Format.BASE64_ZLIB: - content = Base64.encode(options.compression[compression].compress(bytes)); + content = Base64.encode(new Zlib.Deflate(bytes).compress()); break; } dataEl.text(content); @@ -218,47 +222,55 @@ define([ tileLayer.properties[$(this).attr("name")] = $(this).attr("value"); }); - layerElement.find("data:first").each(function () { - var handleBase64 = function (options) { - var decompress = function (data) { return data }; - var compression = $(this).attr("compression"); - if (compression) { - if (!options.compression[compression] || !options.compression[compression].decompress) { - throw new Error("Could not find decompressor for compression: " + compression); - } - tileLayer.format += compression; - decompress = options.compression[compression].decompress; - } - var flippedGlobalIds = []; - var bytes = decompress(Base64.decode($.trim($(this).text()))); - for (var n = 0; n < bytes.length; n += 4) { - var flippedGlobalId = 0; - flippedGlobalId += bytes[n + 0] << 0; - flippedGlobalId += bytes[n + 1] << 8; - flippedGlobalId += bytes[n + 2] << 16; - flippedGlobalId += bytes[n + 3] << 24; - flippedGlobalIds.push(flippedGlobalId); + var decodeBase64 = function (dataEl) { + var base64String = $.trim(dataEl.text()); + var bytes = Base64.decode(base64String); + var compression = dataEl.attr("compression"); + if (compression) { + tileLayer.format += compression; + switch (compression) { + case "gzip": + bytes = new Zlib.Gunzip(bytes).decompress(); + break; + case "zlib": + bytes = new Zlib.Inflate(bytes).decompress(); + break; + default: + throw new Error("Unsupported format: " + tileLayer.format); } - return flippedGlobalIds; - }; - var handleCSV = function (options) { - var flippedGlobalIds = []; - $.each($(this).text().split(","), function(n) { - flippedGlobalIds.push(parseInt(this)); - }); - return flippedGlobalIds; - }; + } + var flippedGlobalIds = []; + for (var n = 0; n < bytes.length; n += 4) { + var flippedGlobalId = 0; + flippedGlobalId += bytes[n + 0] << 0; + flippedGlobalId += bytes[n + 1] << 8; + flippedGlobalId += bytes[n + 2] << 16; + flippedGlobalId += bytes[n + 3] << 24; + flippedGlobalIds.push(flippedGlobalId); + } + return flippedGlobalIds; + }; + var decodeCSV = function (dataEl) { + var flippedGlobalIds = []; + $.each(dataEl.text().split(","), function(n) { + flippedGlobalIds.push(parseInt(this)); + }); + return flippedGlobalIds; + }; + + layerElement.find("data:first").each(function () { + var dataEl = $(this); var flippedGlobalIds = []; - var encoding = $(this).attr("encoding"); + var encoding = dataEl.attr("encoding"); if (encoding) { tileLayer.format = encoding; switch (encoding) { case "base64": - flippedGlobalIds = handleBase64.call(this, options); + flippedGlobalIds = decodeBase64(dataEl); break; case "csv": - flippedGlobalIds = handleCSV.call(this, options); + flippedGlobalIds = decodeCSV(dataEl); break; default: throw new Error("Unsupported encoding: " + encoding); diff --git a/test/nodeunit.js b/test/lib/nodeunit.js similarity index 100% rename from test/nodeunit.js rename to test/lib/nodeunit.js diff --git a/lib/underscore.js b/test/lib/underscore.js similarity index 100% rename from lib/underscore.js rename to test/lib/underscore.js diff --git a/test/main.js b/test/main.js index 96352bf..db8a11d 100644 --- a/test/main.js +++ b/test/main.js @@ -1,12 +1,13 @@ require.config({ paths: { jquery: "../lib/jquery", - underscore: "../lib/underscore", + underscore: "./lib/underscore", + nodeunit: "./lib/nodeunit", tmxjs: "../src" }, shim: { - nodeunit: { exports: "nodeunit" }, - underscore: { exports: "_" } + underscore: { exports: "_" }, + nodeunit: { exports: "nodeunit" } } }); diff --git a/test/util/base64.js b/test/util/base64.js index 35df1e1..b059548 100644 --- a/test/util/base64.js +++ b/test/util/base64.js @@ -21,8 +21,8 @@ define(["underscore", "tmxjs/util/base64"], function(_, Base64) { var bytes = _.map(_.toArray(message), function(ch) { return ch.charCodeAt(0); }); var encodedMessage = Base64.encode(bytes); var decodedBytes = Base64.decode(encodedMessage); - var decodedMessage = _.map(decodedBytes, function (b) { return String.fromCharCode(b); }).join(); - test.equals(decodedMessage, message, "Should equal the original message"); + var decodedMessage = _.map(decodedBytes, function (b) { return String.fromCharCode(b); }).join(""); + test.equals(decodedMessage, message); test.done(); } };