'=========================================================================== ' Subject: VB5 COMPRESSION ROUTINES Date: 08-31-97 (12:21) ' Author: Hal Foster Code: VBWIN ' Origin: hfoster@hiwaay.net Packet: VBWIN.ABC '=========================================================================== DEFINT A-Z:DIM SHARED K,S,B&,Z&:V1 'Created by PostIt! 7.2 SUB V1:OPEN "O",1,"VB5COMP.ZIP",4^6:Z&=10509:?STRING$(50,177); U"%up()%9%'%%-%[kdBHV3+(6G+.%%fA%%%0%%%%kw%rrfn%sSkwOrf':+tTm9]vC U"NxHZCy<8'6Dsnk53[%h7m#AE-_pC+'r^;d=K94&D(1<;Cg6C%'9c/]0jNsDs.Msw(G/]1)t/5v7lF?] U"<]?Fug5/u>T3C:c5N=3[i$x=L\;=*ZI-tH=*Q9:i\2dMe$R;;Nr'XD$Yh%V8E>Y U"hvWY8c;i;*n+>toWUY[QGWmLXov.1RJ6*$hbN%\ek-DH0Ai#XgDQT U"Q3k?1COA)/cU6whu1B=uq$Y;g4XY'd9[Sf*7/T7K$U[8bkBYB%GN0iHV=J6EZEL U"MQ=\C>Op]TV:vWZ7CH&pPg*FB0$E%OG(X%ms]#Wwrd=rUMl>Dqu.U85^3FT\k%L U"xSi7HTDsH+rNDLD/KQh44iO,=KVo9OTM)nEgqwsskOJjsk%4N,bKJa/TlX:9hta]/WtL\&gTkT-y*K U"L];F7W44f\O6hM*:TBwfZ>pdogd+;Usf]P[VO6H)hnG.O$,/MYvrrgOssmL>35C U"-^>p.oN9jGt9Wv[0f_,gj8J=qY:8M=AnFl->EHR*]-^H05gHhDQF_*PLGm8g U";->gYqF5W+.C\Fy?cN(S+juQ&0<$Cg7NU'i9[(-./^,+qMWVUW9HU>D1,I[Ni9t)<2/]#C7?$iV3F3jo U"75XONot+?:u:3bZph]QSoP:zQ3k9J4Xk$#Yz6tWDgJlS8BUn>0i^U$,nV7_:(&% U"_zhrW$KyM/m+p]GnE5&n6g(_L?hbmHtq'i+X#;AvUX4 U"bS1Q/[<4f3G%Af]-Z#t0i7B/5PSE67O&q3zB./9JhhJI_;^mf8TPFh*Nd;$&J6a U"6nigB9jAP)Rk^;jfKA^.pa4]ekpJjAde<]al+YFA;jCP;t6-999:vg/VW7T6+0^eIX5k?##*HbVs\X;d?e/PT1pM9g;r<$pRAA/#lsjQj=mG[qla,UL+uQY,jYxY06kxG0v U"5vr?NaUhG\b<*s$s3Edtt]^lkBObbH3dhx6VnZxRjBWUtKalqjI[djt]K,zmdu% U"p()9%%'%-.%%SB.H+Z=(xJ%%(%q%%%%1%%%%yjx%yhtr.uS%g\&pPConrEE+x)z U"U'IvUV9Jv)U+YKvU7XZLv,WKvU1WQ/x%0hB*22Bo7/-So3r#suK(7o;h)ow>u2t U"T$V)_01y#-V(S0Fe)qBFQe),KlxoABw2P#_qRDF9ErPF_Ef)aRE6+Ike(25o%$. U"'I=0xbo-^A)7-S%%up()%9%'%#-%%S%BH'M2QL>'%%%S)%%%1%%%%yj%xyht#ru U"S%.guLx;<>LUF5wcx0xF9J()W)L-b3<9JXI<',tnjYp1_s>=r(&Fo*HTbU_uvF' U"Gno\k_aVsl2$KHblhSbmh.:a:%l,ioAGQAA1g>FQiekL\U2mYI>)>f&nC.FsCbt U"=skIw>slMushRvm$n_Cb>uPD(\WbAjL_$]KDdj_kV\]aL6_\I-%Q)Kqo8i.W^5j U"&Me;uR#f\CV?qM&mLH7sgTJ2=3VnXqe7VqgGZ^jU5Gc<2]PH4D%G[kXL*XqB5j0 U"&biWG23?]V_=C6R]'#LouNiU#4'<_5Od7YrDP$ENjI5r=?jfZojy3Hu4i%zA5Q_ U"?Vde9tdm$v1quD$.7GM\#6kQPAVr/fVGBRgxxGzk^D1(HhUO9bq$(WmpFx'xDj;S#W?hwvQF_/H?6< U"n%Vs\yZ=(6*Kl U")N3mR;.dJ1;T]U&Yd:wj?YzEaN%(up(%)9%'[%-%B%gBH8C(;lL#-%%$%Q%%/%% U"%%h%truV%YSgfjxF)d7t#47]xCNxJRjtBl,5cV#a-:X.yMpmfIGWC/fH,Rc=9OD U"4SS;?tIws,_M^Dt=-m/\1D_FadXC^#Ud^#KcClQ3G*^=LsdwhP0i>rVcS3q$Az= U",*ZfO0f#ao8C-ss7lTpvW=N.*&(]mHQq/6d.UBs7Sn?'jvncsug7]TRyunuv/E$ U"JvJ3(mblk3sY.2HCBxgs6CjH)kZbi_#[NfGu)NHjiTwPD=lKBT=y4Vrw[n:T(Wu U"RBa]tAruW,s':=r2^X,JpbCKi(cXhAxTuC?T03T0Wk^*g=RS7mjXaEkz;C8o566 U"D(oi-g,XP%2**iJ0yltcTS&&bYNaSJ>7M_]m*6e'UNQF#nj>kp\Gn2?PbW2U(gb U"-[uaNr\90'+VJt^I_citQApcv\'L#>KgzL/^3[qn<2x93Ikb]AbZl[Fm;*(k]R1 U"XPWktWt1vEjja^O*P(o3FQ>4EP]tkd5,=9%Ona_#\JUdU38%AcwZ88?\UP0=bvs U"U+_#b+>(.TLJ71A:lB5BfB_#77ZIQ)57F+?\Yufs0(BQ>+MR81s'opYaBL=Gl?p U";RV&6;)&kd].hgWy1kU[j39t5]4kVEpa*D=rcfOhoMK(GAOd7Z6VGhhneS1P?M7 U"Zgc-Z^WosCpppW0;W:9uumd2x]f$7oLGXXK?\Z%3^rX.;oTb6=a/U_o-6dXks5L U"g+92-'$$_Nc5*cSRIyO30Z]U$2jD?4jMu703G?]c(-ov&u3DVgq8Q+25RMYg$Xy U"[]b'LVbm':s]JeAroTVG*.%Y+,)UNG]^BJF#e:^#Y:8;kXh05B;umIG*FiFBug+]XURL%1j;WZ9UOoWj]Q5bPZ U"?AeuW%gIPvrkkZS9#i7^IFEL]+W6CPl3pDG;2w-*WcjgVuYm6.P5)oH]]/Dpd>Xh*_7N[CC\%$Qb3fZ7:cn6.ORl/P-iE3dl4QT% U"cIhZbHr0g)Jsp[F=oF8E9XX)KJbJ_Fm0UH(IT4jN^ZHNWHr19zxMb9V=WM+4GXT U",DQ#\[7k$cliTPochbLZ3b:c U"H_$#88S#<+ro^+#q[clLZO7l[_5vlS%KYw3U>2RSfb:9?Mo)?e6j_o91s[pq(o9MMSSL#R*$h]c\/.5aejOg$[>i>9s..Se U"DhK=3/&'1J&rW_lbZU_[em$+;ZNPbNqZpJL](==2iA:HY-t/H1=m5W[;h6+dr)Z U"Z+VZ[YF#_\,F-O[A-,FVS8K94.pi.ltVohb_g\--4TD^Ss,FsctVhPW-VFsOlwp U":]W,2$5<%u#^SyYmDQRFk$5]BA36RD--JKY#XnI_O8Q?Z/_yT<-46Co\0:2I(*g U"oo%Syoe9$ZwYVHK,RSTCSMEYEa5)tf*b1p*+<(*TY-Sf+EI.=P&'&M+=z11Bw_r U"BI&b\fMLZW=g#v'KmX U"k:P'7sH:NB*Q;'aZS6<^QJ\sh42MyXfzg]6H(?XlEGWVj+,0Op6h#g5WcI;%LgY U"B<[DUn$L,[Dbtm::\m:pSx9'_p)7:*cJ?Jnqm'qubE'kd1M]$H3UgfMOTE%Rd*^ U")pz)^ELkHDfu'ZPNIXYbS/lK4:bHfw'qr5c%6&cty1vla&K_QqY?WckN:PxuTiC U"vN3N%wwd$>);R9hTPWjlO&(k[\]fO4ScVYG0V1a=Zv%6pr6ejcv=Ic\Xbk:BCt, U"?u4hVnS?iha&rCreVgMaS#IcXT*=IGD?Goq#(,?X=3WPm5Cu$k-c,FYI?Zrv2:r U"u1)DD,yF[I:]AwJ(,$\pLGLe7Bfo4lPcctUp38-diIJkhA^0tQo$1SXA;dCD0^k U"r_h=bK$X*D&WvY,v8Z/M'$h_&l0=NXh4nnbvr,icBZvwsS*J<&yNwOIn5xgW[? U"U>j<)zm'KK8]kIsh0CBnKl^9&TKhcr#jT$2I&_RKz9Wp%UzbO6wMnz,6FaU(F]R U"Ze5FX'W?Gr$Q4CVj_F'8EP+^Mj,O;32YjzU(c/mkLW[JnjgmhSH_wBG^=3;kENy U"dDPH8+\RD-G#x U"tgdLcnW2H4U#]GD)j9ty3xpD-AC'0'ETlf(;9^3h5%TBv4 U"wJC#ya\r:Re)b.IundP??4faai)#7gnErIoiE5McuPS)s/YFO.R/YGWqsKxLpap U"m-]O4/$cjuVsnx],UpU'x'up%()9%%'%-%'ikBHo:bL-&9*%%%14%%%1%%%%kwr U"f%gtzy%Skwr<>&ht]Tm5vq-xx<7Y_.EGP^IS1%vb3)Apj2m*6anUcp.FjAh46t: U"f'\Z]88(+$G4oY81t?S]%\Hm$XhF0TZKBWW\(='7eT-6<0>SA?G9K]6-S.]BEVR U")Hs0,b>X%9\T[AFBQRIQi8Mr(4[9Vp#Vl32&pK7PIDs2%Pg0p[QH+qU_lDvJ9=j)hD7gvoLSWV+rv0YS,*YJvg9n4cIC. U">R<8O1:b/ZKOV.9>#&\'V\o)qXh0Go;U%L2\Siwm#GW=,Ib_Z$>:[81Mk*JqKuU U".IudR[e2K#&mx*boZsfYs$X.('=Z#fA#DCQi(Z/Rn9&npIs1s##aZ9V\OCk*<7j U"Z3o,=CUEpN8_*7fy..C?R1CSeV>fc6#>8Wr+Ts1WOYve=pGa3&A>/M+Rm#ZBF$% U"+8x(8S%mpA\a2zOTKAni-iSd#CS9DV4rumjV&Y\KaX73'-u.3ChlSzq2Um:dZ&16nGXH2*rSMeYw3PN$fH4lGPBop)-Ze7P*rgph4m)e*ym+lrOUh*QkA*H6ooz;>lh636=G U"?&Ctt?WE.H3WbE30iI8n'LUln/EwZafHNnimlfLyl8aCZp2Ikm)6#x^?lN0B$D[ U"W/V>sB\0ZFUAAZr]^[0R+^?a*J^Pskgs?Q U"nQ1$2?/AP.P=cRV&mp60lpo\xBU?V23-/+iBX,Dc^v#6c:cJFIs4iB)]s=2Ldm^/PKx?HkHOQpCUZ+5;c;WaL[y>,E&9\vW;QNX^ U"PXQIDLY+rm*=%WK%ASAL?+Y_7<6.3)+6qMA/;7RP'&qJkxNs..hnQ_5.:&w%]h( U"13[ch.(gq2-L,Ta7Z&HBO^0*Pg/hKWu9]eVUQAQ+3+j/pj-CcorA) U"#7Vl*&f+I.pJ3aB$dK&Egfi7dQIumYGa*joQI69cO\pnU>FxO(5f;',GiqoH-Ia U"(w4qJzrUH%YT5y-?N=Zd/q>bK%G%i*g&6#<,iqipM22fvi_jHFh[ayEVbNt?xp8 U"0Px3-,8wh&^yurXDd[&Ly?U/klGA]Q7$l;A_yKu^n']m1Z1,=DZmSb0O$kOW9_< U"DGKFwuAo9wQ:rDbr:l4,*8?rFO5k4,/;eWLEm-%GNDq30.dmFAXXVNGAPROI*#p U"6>5R;Z0)0rwjNENFNKB6%75MfA%wp=x?Xp*\Ks684ww%ftLcbXX&7IF0;q&PJ32 U"P3WxXjF50GT\;A[1J8ENtFt#QaX+qq**$];D4A+M]bEZ8ieD^oHb/Zu&v,u?XY,sGWru-f&Sy2HBsxvUa2X0hbr U"QT-pJ9Zu[.^w?D6%':^J9w[N^NStZFgNgqELN.UM<$p- U"-R::8Mrd8^N(/kFiL0gW(FjM8]tTFe'1S1KK,wph=P8<0yhC8f7s*ZW6J9a.=ig U"V6n3d4De]q.]sb(*e4K/M\xa,0kT_+]xCExK U":C3Xp4>,#OUNK8K'qg;9U+?i(DS8iJO,tJ.)fa.30Pdf6p0gUXlTX::kf(rd90U U"]U;tk?I0c%XGO-=QAbh9i=^E698&fVr70eDZy%Ws8ERVz=XF%+i]\3Ave;O+F4q U"JU-'\><,8,ZRHv<;]Op(/nmWW4v:dsG?hvgb3?):Ci8_U%U\N\nyl76tbDmzJ\.LG-5ICu/ZmJ.mjB>>=(PlBi9dbeL&jX%x6b3+gr4h=Bj U"/*MFiKF?3Jhqr^H_^gncDF+:,3_E:=*[JogDnEIk,467FZv?w(D1F8$)x5Hi#i. U"\dS&X;9W$vpZC$]>(=R/4(Wg8'Z*zn1qO[816takq:GY[C&7AZ(=Q>2<_G/ U"(_tiS94L*QhK;h/bF[%jYI$FqWEMYJbfAM,[K?xtytOoieS U"LE%9Oh.0k?)+XVw3V2imURR[x,ejv('/[Qo1a\<+S7:r.2S7?gGi(_lnJ.aQ U"gODOajD_%ky,EKf6,&#vqL+Q;vmqWw2;;,hY5XD>0CB%,VBkBmYeX8SfE(z>9vV U"?tugRoJ-hUs5uc+w&:uCjc^q/KO6ELKm8shp,u4;'[B]8)P?P)exb#&'6I-C7ks U"X&3o2k;#,,PVUnh=K(d.N+>6D2r8MB/*C^>spr91BmrTkf1%]jS2?w]w8LaPM.f U"(xKIWfHXZ4DI)#T-lxCMnF_R=8(f=]<*uBaJ=A2ch8%lHOx-4FB'a'K3IW.s(tV U"5U$yz3KU-7;u':]77oX?B8II8dUxa6<.=;J=._bW1X=>&Bw[xzsm\8x3F0t;Yiu U"62HOCXsgPkiL^nnJ]D4VfqtNVLYcO%>*OEIQvux'g(fwER;X8KOf/'yH3f,D9VK U"aH\$KD\Jwbn#OhAMBJ)Jy6M_4*rlrEZ?>ZJt?Ub_TPGwIm^=\MsRM_qqsdo-l?z U"0rs>,B/&G\g//aWNjnm=P6'Sgj=q'ZD(N)>'&2K6E.KoWYCs7l2q/o4GUN,c=VX U"E9)V[jfe*2N)7JyKPG>PTk\MgXd%SmcX5MC\JSc(n_T+H85?#,h[hK)E\s\EYRc U"J9TENn>]ju_cZfRN?^5c^#^N(sOLeh,pgPiU3.\-[2LZ_WDEQ7i>An?npOE^p%] U"pp1/&1%:bkRID-KK[2Fr#YVqXe-%68g1oYEXDhKyejp%oN'ZKXLX;qhNS>MdX\[ U"G+I,HCg=./g_-y$:A^OOAJaJk9j'/XvaEj'JxUh%MOZdmygxe=qdQ?M?;:FCrgV U"ODr-rrA]7qj:S1&Nj?$6Y1_kuF3L70W-ppcwp.N*wG>Z3DN+4;J=Bl[pjMoV4S% U"jRtb'bVneQPM2d(]OwKwCI);y?o/uVIEH+?9#XT%vc(r(^cLjWXYY]f3,1)Dtts U"SiuI5tyTfwSoaMuGe9),.\Q]NiU,pFgmt%iS?w1vFFfKB2yB;F U"5[P2MmnGUPAT*(:Z3Pd<\yD%uh[7:p^=]>vh[7h%WG&2>0>]1U=^IIp*1BiAW]PuXru/2E&Lg:p'#XSMr?wCrSUWj=vxqd/%sNGs*behWD0ki??9qJqAs.bOdl?rXG3YE0# U"=,HlN\i23<,ib=U&L67ZVj?EG2?fD>HMQ_(k)6K+F^7B;Fb8?JvxCKC5L))8Mn4 U"Ck2\o\lMuB^ff;6mqE&(pF%_ZV9PzL2fj[5ZEmy[Vq.h[337&bUrSw64YwV=*;c U"&ZxHL2filf,CGmuzWc)0ydz/D'dE-%*;R8(Xk^DGe<.q)7,=KSS'R&yB]Yr%'hB U"\W0_(ZMsw'7vc;v*M9;Z->3>Q38Z8gf\l)\Exp/L,'8pJBuJtuL^8l]cfWS4qm- U"s\T1Slp-Hk5C1Uygdj=T\R4.G8eqbS=dfu1zc&4Q'?\u_:+[V$x>.0q_KAam;75 U"kuM.+4B1V0j&1?H^:i$]w2&vARrnm]C=q/[75P'pY^i=E>y(2ROVrj&_.3e#]IG U"]QPSijhcv)+H<;nKrbyxATp=(N#W.[0kYDmfPO0IL37x()47'?KVh6T3sM+m=\S U"I76fc:(CRqx.7JUd$wA3igU1.rR:N5OFg U"_^$4DazuE[bVw*1*7$rI=3kKp>'2E.hKJNd$3>+\5\agtJi/t:R3IG5oZ-WXFG1 U"r'&C&SlFdWOu+yj)>RXqO1m'JD\OP7GNcJVK0Hsd1N<+\u*Sk_]v6TB.$r]6TBb U"J$3vWrEsbT7hx9=$v2PT74^\=GnnAm5VEWWN,komQP5EuL63RuQI%f$;9&e(.D3 U"t4VUJZQ;(n=/=QMCCg3k6e8>5\FgoPH,.&1#R39stt)4GP= U"O*QJf3H0VmA4dQ#*1(TqANekua&q6:(9WRfIw:1l%iXJd[[CP21%m6rNxw;eO73 U"EJ6w6A68oP/hQycDLWUb.9Xua*Ek\<*w?IDJgL_W(3WySgxXX8^EqI/b8QF;([P U"mmEnftDN+V?[XC.LkpP&l?ETn/IM[xPq(u7,ub5RG+eUNqcC'Bw6oa-T5PdnQ,a U",*&9J*hlC42=a_(VoHvu(c4MIB^6Vp$lt4GDOFNYtlB=qlJ#vWLiWvO$CLKls3u U"p^XMrrtK0Wr_y(KltN]lW?J3iQgnm=gBVbwhzBFksJ%%#ez713'*l:\?Z U"bi.C$pM;.*xG7tu;,9g:mP+0)6=\djP*:f0VUiIh-Ou_C3Z]&xrq[b$rMfAwKp% U"(;ds?QI6e?(8Qc,RLZ18]($Qk&1nf*L\*I87pjIyAk'lhkzU=Vcdd^mt$*Rn,hl U",,9_N17lnU#0u3E%s^?-IMCd5=AeNvh89A2HJe%S*U?;>p U"2?\obpsf(^6>b*<]O/vMBW8VtKK?aE?$W%9hmEW[KM*W]-o>Tb;I:8Fm/r U"HoDMAYJ743uhErI6>UYDHhh>cq7:)hh4nLu9eBptc+h8ufgDn7cC7tTp+tG+?h, U"/&<.k.fGe/$iu'K\m]6ObOMx&tVbJfzbR6VaD6cmwLjc0B%s$pR6?(XG6UADGsY(o0=;m=DXkqkz5RWwS=-3?&qPs.? U"$'4]zHb.k*o$p)TU'XlO6P/m0H=vlLk]vMp0fSYKVgRS0h;Hyh/&#?7\dl_YL-r U"/wiq4?(1GrjS7?c5fhQL\T:Tfq*,kC%ITE(l6,>JVYw[dH>up,,kS-UskdqqU+B_xwFVlF%P5LxZ&94b_F U"aP>#+Z1RG3h)[yG1NFs'>zX&%NqSoNGEgTIa>nQ& U"]2iMhm4,%k/1NXyEQJMYg_5Adu12vV/<=#L2t;UqFnHUTrguTT51c2GT%< U"r:Ok]F_y4\;n'x-8PwR6iPfcn:xp;'%%%S)%%%1%%%%%%%%% U"&%E%7%%i+%%%yj%xyht#ruS%%guup%&'9%%9%'%7-%Bg%BH8(/;lL-.%%$Q%%%/ U"%%%%%%%%%&%%E%%%&X.%%%htru%VYSg%fxup%&'9%%9%'%7-%ik7BH:b6L-9*%% U"%14%%%1%%%%%%%%%&%%E%%%%S7%%%kwrf%gtzy%Skwr%up&'%9%/%%%%%%'ikBH U"t,j3[%1%%%%1%%%%1%%%%%%%%%&%E%7%%;<%%%kw%rfgt%zySk(w'up%&'9%%/% U"%%%%%[kdBH,j-3[1%%%%1%%%%0%%%%%%%%%&%%E%%%'q<%%%kwrr%fnsS.kw'u% U"p&'9%%9%'[%-%)&RBHwdWNUQ%3%%3%_%%/%%%%%%%%%&%%E%%%%R=%%%htr%uVX U"S%gfxu%p*+%%%%%-[%-%C%&%%R%L%%%%% END SUB V2 CLOSE:IF S=12AND B&=Z&THEN?" :) Ok!"ELSE?" :( Bad! SUB U(A$):FOR A=1TO LEN(A$):C=ASC(MID$(A$,A))-37:IF C<0THEN C=91+C*32 IF K<4THEN K=C+243ELSE?#1,CHR$(C+(K MOD 3)*86);:K=K\3:B&=B&+1 S=(S+C)AND 255:NEXT:LOCATE,1:?STRING$(B&*50\Z&,219);:END SUB