Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- return(function(...)local a,b,c,d,e,r,g,h,i,j,k,l,m,n,o,p,q,s,t,u,L,R,G;a,b,c,d=string.byte,string.char,math.floor,table.concat;e=loadstring or load;if debug and debug.getinfo then local __gi=debug.getinfo(e);if not __gi or __gi.what~="C" then error("decompression error: load hook detected")end end;r={};h=1;for i=35,126 do if i~=64 and i~=92 then r[a(b(i))]=h-1;h=h+1 end end;g={};j=1;s="GG&##Ff&r<o4Vr;HQ'{G8EFhR|9->R-t/_(ct9$Ob^9^TOt7~#_//jcXF?-6GcW<KO%Q%%qllR>*,E{O*f$:%}bCtcFlX>a6RcoJi4*;^q}JX['G#[Fqo,+aUSG.Rxs'1(]>NdH7cZ}L_+*{;,q~=,f'_a`cXBTUp(_qU^vF|cb,xx(3I|5VEumrDQiE?A9eIK<cn#sBWuL276_^m4>T{.$%KI=?c5*`8q(04TFK_O:7X1)]d46*dM$jy>tC.?6ix<mcq:MbJ'EbJfbwHPAFj^zM=(lW>WvIi3`6[:FxuQ,ZyUFxCZ0;#>,X[<'yH)jF6LzbLeGq`91~GY9&:or`u&I&[yBB070#m^;.U0*A'8(,KR9lP.=&,X.$4(&;:dJAUoZUbC3WDk?cLAI2*R$MX.a4'/im5IE*80$eIxQd1`dM&AyNOq8#^MD#J:LyM.hSvc8LqmMfHrm*,*TU_:RK4I=-u,>pN94^6|(pc)B](%A08fUHX;kPa:)__vMlOI'OZtO[K8LR+6aKNn:?(U6'b9%3BYzJE{-X(#%H0$DKkvBEj25Si+}44YK7_R}oamId~)A5gWT15D~oEa)G&YDoPSjPO}H>JJ9$wHCc)s0eMnQaX.$*R~d6?E'O^d'U:u:+fOQV*?YpqePOSlCN;Oc62'Js#;Z8>a9ArEb4PF?Zm3DN&Q;9#3bO$ZT6S|0e%UGsJi$Cu^_zw>+#cH*'f:Vp9&Ptt5[*Hu(Y4pGcxqorM4yqpAwb}(>n5S.PU'ODcn1oL;Cu#<+zy7SBE4uhDeD'f0a,LhSay+rc3z&(*IdQ:b7Ax|8]J/M^W&A$*T-<]KaZAVA%3LT=~'{|7*,n{>d/2C,n4|jKAi>xB8RU0JQU,3V2dKU+k'}5'w]^#RpM;QY1yA*>>xW{UZ<OGW4tmrd4jf&*l;aT[5C;['oz?h#[GWe%6r+fPs4xx5W+u89(JsvJw5Nr:m|v:6ooH2Wy,iU9GNHl4Zt4/>stJ2(_/2:GguHrdTlx6Eq?w>%3%A/Y:|s~A2(YvWR.~b,YW.ERD53zS,EUJ*w/m?:ueewASN*=F5gnkUd{M;'V[(%NN/}mP[u?USz}o#*Zb}U+s4%aFWr7-^{11yHHto-X$xFm/Al;*P-)kY9wyQt19vGdCMsXIdA-{78>&G+LGKh;0amm1%0Ynr8jZ(_W}?onH`v]y#v%4s0T(D15D]vL`E4]{E{>mO%?gJC8oQ+SA:-R&7qxN}-,3eBd%w[8^lIB<Z.t}<O;>vB#88.wQapei/rZqdLgcfb9KFME]]I5_Wv,}Z_FEN_c(lv[/T6GxG~I4(Z+<Oq5Tx(G+vtt%c7{}SML7>(3UV3o6*T9MfduM&.V`J'KqgCW;=tff7nUAyPhMJ$;~6CqXB<.K%hNBR'w+^YAlM=Q%Y/0wH%s#;<6tS).8&}JUe9;110j(K7lIjuG[T)mBR/Pu6035<#oUk8]5b,ZFj>qd4h0mV56M;BF1[|F(;y$AK^wpHJ?Z_;J5z)x%n7N,?2G_.:^Yc$(kVPMIw5ZD`O,T#-J/SL-vEH=KAUdX]6}xkU--lJ`4-<wT|n(,0>YjW%Nrnr&<D*s.Fd6t$=%oV_pb$M?ilSdPtNXLK0O*=W{h]g876_J,4Pr#?{irMQ)1_O1nHg)1C:>[eDCs3C>pEN]$0owM616s$EhJv6>/6ec^;YX1~2LN?_6;x]e%vF%4&fYC?zi*,yN#u3f:_zIcX<<X.S9D;NNRxeM#D-XuE/iWprjFGO[:-ZPF%L.3Y:YX/|duGeUu.^(tyPNSr<g:Zu/sGdcD2ao]gUZCSdh*88ZI#[m$7[]Y:O>MO5Qa0$U+a-BGqLwVP7N5G?k0UH}4N+be4Z]+z#;c1L+_zMWbQTC^V2rs9U6u?QQ[n_1W&=929Jre6t&[E5$IO.I'%_QP[*67G^-c%Ocd6TXxBv;o|%)?Zn'0k9BPC.raD%59UU0*RT>t+PP=9[zY^wbm#.qE9<`sMVR;^^$s'L}aR(P[:/)App+Ej%_g136ESa`/CH]IS1/%~7~_L0e9sD)}+l08BG2ID9*>E]T?4[0o,fdZ7//8CG,8-M5VcY1}VG[eq6kY,.OM8MmK<5UUr#%w|M(.fuMJ]CI)r/?[VV7ks:]L$c.-Q^8vADOnA'KF|n]b~WyCLRY>/+e?/ACVC|r?>?],PI1.](1=B%d`:'ZQ93$)JcMO=^:4xEC3/%A0$A&>OO5yNUFmS2^jfe<2Ua&5Z9/G,969E9D<Fl9-hO74cCk{#UcB1hTqq+:Tfn(tdeX7gW:J>GHLP|gc95m{#<MdIN3ve`_mGg5f)r/r#z#^0P6wb;N7OgX)#a[h>sKMA#H_B;csySR5vdsyK-0_BCf'?Ic;/}<aa)yI7tPg>RWP%g1)odU.(iZE(SjphWX5KJ<twgYCOnh_0g^amG++fE?|+&-C}iqbM+Nm0ZfQ.$La8)>)KC3I,Mo-kbY(F.].bU>>XSPX/+',XK[k]zO({5iIJe_b=-',wKm*T'$1)A`=OO9pRi^=gB~`K}62g^[_dQow-YdIP42|4BY)VJ{K5rT~/Soli:66K;P'VbTSoNANb>6^X]l-;VGfuG?diBYdVvY`_#^tI:[.^7Q7F(5`+N}BGAM40v02O?n%1P#ScHkMF>sauQR`r~_9r?FdLSJ6'(lB+=Y,Z=y8_QKpMZil{7I4X*/M(vY2hf77MKlbvB^z05$jMY3edX4v_V3u=e,i;6X5q(rUDnNV$^|$~D&i#&J*Ky;Hfo+TMHg?<4GX&3b#U*^D6v8YI3Bd&HD2:_dCCsq:MpcaUX2oqN(TmqTkBs_8)d/XBv*]]6Q#<K:F9b%,2fO.Ekot6?ETS.eYVx`ert8p;cCKLTdItP/`(6,`s~rD*(&wMLb`sa5ZT2XL?IoA)V6u=JPSs,<p#XMK/=0G`*<IsK&V35=n8{j'mY6A2'Fu;<yVN;NPa-VWo0>1Y+d~8Z$#piNbHws;W.cn#+DE$Iw`oaZ<Z:s=;G:{7P`8m>upk^*}4xR;Py9qd^o)_BznP3R|`$d?lJ~TX~vt,0l[4?*Mj7pAJbgb*$TPy<YA8hA,g<~ASgpn(.WBXAmJ^^^{}|BX1asF]uX[D4;?NJf%6bDCfN)E.8g5`IWLx'?;J6TKUKb#*wSvVBKniFDMx/G>nS7>6NOP9Dw*_&f:VJ0'P:O2]CJ~x=OW$~2Dokd'K*=Y:>d2~Y:N`k8jNx4W=NC5Qwdb7Z-VCD-lSw^Ip1+ZPDmY?&%&9KWkp*I8{K_hb.~)Vedzp15(TgJ:)(S(+}c[$<=PsLJ(VJy+}_JQJ+xWddnF?,+9z-}d>pdd/lqM9O'm:EBYe+xQ=6PE'88uIcvYo}(<'XkQ4.s~V/*YVDT'yl$PiR1e~L2`Hc'Hx_WM2A_~%8q>u2p|0sFz+1m*m/B?*v/-sb+i`0QgdV}n?'0C',1LmJP-*(=`W0/]M&Q0,}#N_Rq$PF93~5VB|S?~~/pPW)O>2=./C93Tas-zh6E&z18n0tVu,?eUUjc{.Z%64K-^3#={^3:denNBz~,V}-8=ecc#u`r)u^$Wx7B'4,&Oege`.5'yKKZqvBEHRLMqbRN3C?>rMjeP.e/dxF{%UBryi=JrA{Mw_:P'vUL;6FkJX,aDFqc&P|&+}}sn5+4(M0t-|w<`lJK&(I_nJpC*IWLd,]P08]fBr*%SP}y$Mc3#$t;cP66.CC~'f)5K3%(5&]')S*PNuBar.TY_p`0w0WM}dB(?IIfk8D?]h_[j/qWwUnZO+x.XB#3>D%AxBpcudVGJN)?f>HLai_2h<aAp4Ok?^Omv8B*Jj_F]JTIh0l1c(d$>`5-to-T`E~OCLAz8ck?1BGT8eaP#?cee|(C$4:n-a{2D0J:L3o9E(]:RT{*vIS`?_X~}UE/JavW-z]$ub<q',E4YEQ$~|4C>#Bs.:XwwuTI[kA#HsL9T$ED$7{~7NZ6bRX_k;??.`Rmq.s1Cu=hp8WT0w)bD}MQ3RPc,RJ#~:3a*<TSQgO]`C;a=a<A3';MX$[f#0Nv:RZA=--<z.qO>:p[d=RctAlN>~`3|<m,kZ|w6rhAIY?9DjN)B]YLqICtEquMo=sl-m'ZxF.U?`Ra)n7lH1).{zL=.&8VOav[BvVv[^$JJt]#Kb&b%Kh%NRzy,;O*%99_1nH<h5X;U#wgUL/gJ_?80(Q^492;B<AW724HMq7K3?5F,b8>Lg/714%S=<QF67MXzF0J<C.:(C1hGBJy<,3MPQ_=B=a}o8{g8;Wrd7DRz,vkQ4bJA`JvvlJ'Xq|#3<f}CdbYHA*>=0>s[57Ea2Td/W/e,'uHGv;Dn+:duy42T;jI0fm9L|X:/J)G;*jg$[{cDCq5K3dT#ZUW#8%RQeFUjF,..nPTkd;5w.sn-m9~bSd6k8C(&>EA%SKHN60W=dZxKkc#u=-e)7?X(4i~]8AaGHfzC3m<voRKaK6v-G{X;F'd;g+EERCNP;]wC#y=E##f)n:cmLLo/_1nDWS?VN98~*Hd*>:|Y'+qu4JX'U)UsbW.$>3[=bCoEC|:7*,,AlSB<;fgSLDb(BM<-b*6%l5?-^)M`0_VfQK}ORQpgIM1J~xt&-ht_5RE|j0zXW(TiQ}8B#RJ`]bBg}W-|Dldt%3YCT<aH/wU3b+2VRJe$#FpbQw3K)(szz5Y;.RSKyXc8B[GLHGD'pdgQ26)5F5~/Hq##(9JaV,c..z4WO]hOV7OV2=h[Z*wC{5c:s:)`sDh1Nui]uDU$GDN>.xRcHlTYUg8quHvF[N7eUnH0N_.}I2GEsHwMc;JMR2&&)qq8Z>bwX>z<>}R7]GqMK=v`-R1hTa70:RKjb>zL^}+>eMWyV.c.|m7qJx`1gU5uW#`uFQ&F[w/1~dY^u?l_UM3Dd+M5{tMZ`-U8YLD5^^~nzT_'(V[b<=h_s'k^4bd6S]N1kQ1'ijc=xn'*LHNf_T8<cW'NXF~`<E+),:BUpIs*R=7(s=7AT5NMUvK,(SGRCS6v#i-1~bW>W~cZX?dJ65G;eHGC$T3'ZqYUaF4(^_Z*#AmY9bwRPg=KOOv9jK(zJXzT)-3*=B=EW`#aac0B-;`$r+9>4|w*6F{iK:ZuO^&Tz-3Q:d{yq+:sjQ,dfxi,SaM3=i&~c4Yq&b;|x##f]&Ui[o5>3:Q5S85/oFe.o(P}0818;>=Ibq*r$h0Tx/-pK%:l:.=_;59>%%RN9~JI;%KPk:Z=tRR0te<`{iFwO#Tv}$XFO}$yu|UOh10^B[[WY$fZT1fMCW6'9PnE;(#6[]E,q7.T46m.A8fa9P`J2R%dFl_b>q4J;U5vIHD3#7].60%[99v)Rm[7Ap~ZlEYb]DO3l>l5;~~tFaWRc7m%A7MPbs8?T.YhD<m#ke9BJf3O0b[:kacT`W}uED1I]RKk|gtea7*[d<iEL=+)NJbwkr,W'cYG)VpTmWY5oi(zuc(#MO=5*0xq/I*XuOR*UJ5)w&im`&<O&)tWZx)3#iBLINX9^1<&V(Lq/{%3bHwX?F-%.|/dB#Ggz^,bAzqSy?;^K(|Z<Zu*]k#3`k'MSfM#&eGuxd-Brd,>R.8W5<],7Uz',Ye)*D)8$59NI1A`K'`98]?Zed3#1[$'ZKx[?5%%x*Csvb'b:64R,7$7(2m$sI%bcj)Sxl6EMpS#SwP<q[.sD03Z0`]'DYEV/D#ZVD.Q,KbJ(_><FKWHYFU8<8y3-7Wr<tG[kRPH69oU`AihMp6n^.n)A}?EX9,'p2vO%mR3+Xs5b>bwN3I_Q0_`=LAK}'v<pFHR*'O0)Kfw8seQzz0Uf|:QC1$9~-^=E+]E:5C.U8t(D=Q_LPDh4&F_qPcDCQVcCXmRKIu5FpCP-`K1W;xj-M2W3'$>pcd|7'iACpY+UMn?LUG=vF/ls(j97`//LbeZ19.k&T6dRO&=|Uz0?eBbTM;|3R.|^OhZ6MD`M86<Ue>fqv$iJ^?>g}~T>z4&j+#.bO'3G<3FxFRr^}/?,JGlzxesEOu+_YoqTE$L{R?RflamK,CRfk1QTR]imC+WJk3)rx2[mZox?j%]#W70uuS1KOYB-ZTa(BIuA#t(j06~:wE_KIRIQ2Y8V349_w7*rhm#Vp}5P:&NWBQ[.qNXsP2bVLn6Po^$_9=ubbKfhu>+k:18O|zLP;,(Uk[6k7GO6JeqPT|#$*E)]rQ}M]Z)-a3d[^f%Fj0nK,GM2YmX$_Y0bE%W}g8Ra`->7^T2;h2)(Pk+$6Uu%M5&[d4&YbJ<+o,Df,-O'j;~I_P4[*3sb}0)i`[``:nZpS[?{EDpX+&D*c'm-rr}T27J,(X1.&P-w#%pd`$'4G-su]%=`2a<5o2qdn|DjE}=i8JHn.D'N}b)'>V{eY^'xl7+gFRC^i1-$KKmH[pV;+c|)Q<)T2p[DkM$>JXEF?X*N&H+A,Bj*;cjN/c`HO3)_>y)sw~uBmNW3ctu(%$%VVD$Ih3hcO0|f&0P9yOnX9s9jV#LdSd6oPFphpM%XI:Lv6/z:*#G&?XO6T*$6i5$=}YPN0B/UJs5B0MdZ'<$]>5{]yNS`'c7FSemEeg^#Y+77D}hS4``P;O3$Yg6d[)l.'OS}4YcfmPE2Od5T9/fBt=A')qQEoMGk4pbG?^Q*,jXX0ZC]z5jtaYSZtmq28$KxRelPj9^KK?+Rq6E9?LXETc%%R,B*c8:JJmqLwY=*4^hv%]5M)3NIGx4/R[?i&}t3OTOo^O2*H.}/|:LC*ZNx;)'G0c)~064cWT:?;%TooKNnEac'A,:#6/qfK#%_AK=IuP*-Q.$ISRYH^*HS5WE4A+Gc{s3UmvsA(S5e:[be?<K_Hkwajiul^ElDQ_v&TH&+M`B]Kt~2GvM=H8HQEX-7|tVe+>S_?fsYo2;AMV6Pbh+>.4>WG#ve??]2cC]MYIAe/%x,*t1.09ENCM#=]sOY:iG4KD::i`DIIh9DRE=Jp}|.3Pdb>5t]s<OcTS'_#(&*`c;H|<nrUhH~SFIN3uIAPI[ptLpD$W_mX4s]}MRS>FA_rWyF<`[Z%'sD|%-06?*7M4rz4&'H{R,SdxOx?07?o4JxXF++7(r,J}Bu>Bs&tW7)NQ5Ri*qbP&Bb<fsr>_]U.=d.VP14jV(t.|</D$LlP04<f5(FQ$}303U9O*G)kW3'~?[[,Sf40N3Ix0/'1~<^~oQN`Dbz'U1.E)bFdKENF$]PxMpxVD]3I1~#VQ2YQC]d5px2Ze1BG+##R^Ja1y4fI:qq$2GyM2Ob6Y65xrA%hIake5?8)#A'FY_nwQ[c$VOQ>L=r~dc6f_*0Vo48Y,1)Gi+T'Y2X{c9aS&C#r&273lCw_Uqa]t589j63u]`<Mrhq6/V1<]<EFTA?'&k6>b1l>*ONcQ4HaHXVn52(Zx'urc_s_u>Oq<9-cN]UE+#tw<Ihp8Wn[M$CLb*yV,9=7C3UhiY_N+7K5(&u[f_YmZmeLB&7wiY]z70eNp:P>Y$#;RU.6U3flpMAAD[;16*&YB+ARJ8Q'**s0g%Y$QbX`d/X~MX_S.7J;T{fW%&GAqDIq04;d3Sm/WN3d%p}]`6Z&EC^~ZX'>Bj?y3d+1`:mo$u*%_#f/vSIE`$1D+X=w6EViN2z1qb7+*owvb(0($=1|)AeBi3p{d4&;5A~6r=X;1-|={b1%Y'4>r=pCK-9D9;%7}j|{RbWsB_v`ZPT?n_E,(sm6dA#<1`WwvuFP*.~4ETAO)srIC8]AHeO_<afeE>3*dHiUJeM5zs8'dMwY7QuCcVC'kdg>ppA?6=I0Co+J=,kQPJTPNBBG~/UYO~p%]>~4zKs#cJ4,.L+Q2473A_8Q+#>GL^5B&DZ.w<dnPPptrH4,p9)jE;_a[pQa/H{sLC*f}8$94{nCkudrEnJv%A`Xm%`5+S5Nv8_6-%%VLNjYOmFQ_u|G+Npk^8{fiEpFot4N0uSD8F0#<XhU4b`-_v%?.,WDuI(25[fV$6.9Y2,oIq0GR4G`5`vBZFTiPibuRwuBX'=YNu9?DUvs6vCT3Qx0D`a=Xmh+GULOlCV??4x*bC2OC-U3L6)f/><0R'Id}|xx7CP$R.$f%^M)ac/MBhI=cC}XN+x%Of].I,7'f--)0La+C7A^1YLZtGT06<gjJMFS_+FyiU_nw#G#D3f]AFIk+Q:6Nu*C?W)1hD0#V#<9tSJ9f?J5N2JLTD7?0L_*pd?v7z17#j;/jLN?X1Ea}'Xes~W;u51J2ljm?NMXuW*%p[%&s2|*vUyJXg`O9Ai#Y_16$8#UN^VF%SN};eERv-(I)c*?0x>d*i{G.#h('+9[y-sE#&.[/mVw$$7%EH4{[Ix35Q5T$BP{;(q^]9#K=o{DaCqS$2es}EfJ^5V<pCc7zqDueqXoT.YI?7^.4JqLbQx.PU$qpeGiWg<&eh05|WfKZqhUG81w3L=AkzC]]*RE)FQkPe6i0-I7scV>E4kYcwI(8X9Vxu/:r}t;J]w$_~&^dJF<*n<M[);DX&.AKHvT:ce=J~2mmf{Znw;HW/npYA&dwc-fao&6aAk1Z7dP'*jhIN_HfY[X`)G^Nm<W(IVi[^+];wT]1BmlHB)z%&pDR#Oyx';PqzHO8Dj)c+U'9#M[8R:T?GAJYaj4FfDG8x%K'z^6jd5G2Zb=]0o0nzI3xn3)";while j<=#s do k=r[a(s,j)]+r[a(s,j+1)]*90+r[a(s,j+2)]*8100+r[a(s,j+3)]*729000+r[a(s,j+4)]*65610000;j=j+5;for l=1,4 do g[#g+1]=k%256;k=c(k/256)end end;G=#g;m=g[1]+g[2]*256+g[3]*65536+g[4]*16777216;n="";local pos,range,code,isM,isRp,isG0,isG1,isG2,isRL,litP,lenP,rlnP,dP,out,outN,st,mB,r0,r1,r2,r3,newP,rdB,dBit,dDir,dTree,dTreeR,dLen,SO,dDist,dLit,LNS,nSM,nSR,nSSR,ism,irp,ig0,ig1,ig2,irl,lS,lC,dist,ln,start,ii,by,aM,ch;newP=function(N)local t={}for j=0,N-1 do t[j]=1024 end return t end;pos=6;range=0xFFFFFFFF;code=0;for j=1,4 do local bb=g[pos]or 0 pos=pos+1 code=((code<<8)|bb)&0xFFFFFFFF end;rdB=function()local bb=g[pos]or 0 pos=pos+1 return bb end;dBit=function(probs,index)local pp=probs[index]local bound=(range>>11)*pp local r if code<bound then range=bound probs[index]=pp+((2048-pp)>>5)r=0 else code=code-bound range=range-bound probs[index]=pp-(pp>>5)r=1 end if range<0x1000000 then range=(range<<8)&0xFFFFFFFF code=((code<<8)|rdB())&0xFFFFFFFF end return r end;dDir=function(numBits)local result=0 for j=1,numBits do range=range>>1 local t2 if code>=range then code=code-range t2=1 else t2=0 end result=(result<<1)|t2 if range<0x1000000 then range=(range<<8)&0xFFFFFFFF code=((code<<8)|rdB())&0xFFFFFFFF end end return result end;dTree=function(probs,base,numBits)local mm=1 for j=1,numBits do mm=(mm<<1)|dBit(probs,base+mm)end return mm-(1<<numBits)end;dTreeR=function(probs,base,numBits)local mm=1 local symbol=0 for j=0,numBits-1 do local bb=dBit(probs,base+mm)mm=(mm<<1)|bb symbol=symbol|(bb<<j)end return symbol end;dLen=function(probs)if dBit(probs,0)==0 then return dTree(probs,2,3)end if dBit(probs,1)==0 then return 8+dTree(probs,10,3)end return 16+dTree(probs,18,8)end;SO={};do local cursor=0 for slot=0,13 do SO[slot]=cursor if slot>=4 then cursor=cursor+(1<<((slot>>1)-1))end end end;dDist=function(distP,lenClass2)local slot=dTree(distP.perLenClass[lenClass2],0,6)if slot<4 then return slot end local footerBits=(slot>>1)-1 local base=(2|(slot&1))<<footerBits if slot<14 then base=base+dTreeR(distP.special,SO[slot],footerBits)else base=base+(dDir(footerBits-4)<<4)base=base+dTreeR(distP.align,0,4)end return base end;dLit=function(probs,mByte,afterM)local context=1 if afterM then for j=7,0,-1 do local matchBit=(mByte>>j)&1 local bb=dBit(probs,((1+matchBit)<<8)+context)context=(context<<1)|bb if matchBit~=bb then while context<0x100 do context=(context<<1)|dBit(probs,context)end break end end else while context<0x100 do context=(context<<1)|dBit(probs,context)end end return context&0xFF end;LNS={[0]=0,0,0,0,1,2,3,4,5,6,4,5};nSM=function(s2)if s2<7 then return 7 else return 10 end end;nSR=function(s2)if s2<7 then return 8 else return 11 end end;nSSR=function(s2)if s2<7 then return 9 else return 11 end end;isM=newP(12);isRp=newP(12);isG0=newP(12);isG1=newP(12);isG2=newP(12);isRL=newP(12);litP=newP(0x300);lenP=newP(2+8+8+256);rlnP=newP(2+8+8+256);dP={perLenClass={},special=newP(128),align=newP(16)};for j=0,3 do dP.perLenClass[j]=newP(64)end;out={};outN=0;st=0;mB=0;r0=1;r1=1;r2=1;r3=1;while outN<m do ism=dBit(isM,st);if ism==0 then aM=st>=7;by=dLit(litP,mB,aM);outN=outN+1;out[outN]=by;mB=by;st=LNS[st]else irp=dBit(isRp,st);if irp==0 then lS=dLen(lenP);lC=lS<4 and lS or 3;dist=dDist(dP,lC)+1;r3=r2;r2=r1;r1=r0;r0=dist;ln=lS+2;st=nSM(st)else ig0=dBit(isG0,st);if ig0==0 then irl=dBit(isRL,st);if irl==0 then ln=1;st=nSSR(st)else lS=dLen(rlnP);ln=lS+2;st=nSR(st)end else ig1=dBit(isG1,st);if ig1==0 then dist=r1;r1=r0;r0=dist else ig2=dBit(isG2,st);if ig2==0 then dist=r2;r2=r1;r1=r0;r0=dist else dist=r3;r3=r2;r2=r1;r1=r0;r0=dist end end;lS=dLen(rlnP);ln=lS+2;st=nSR(st)end end;start=outN-r0;for ii=1,ln do outN=outN+1;out[outN]=out[start+ii]end;mB=out[outN]end end;ch={};for ii=1,outN do ch[ii]=b(out[ii])end;n=d(ch);local ok,q=pcall(e,n);if not(ok and type(q)=="function")then error("decompression error: "..tostring(q))end;return q(...)end)(...)
Advertisement
Add Comment
Please, Sign In to add comment