From: lockheimer@twics.com (Hiroshi Lockheimer) Subject: CTCPNetwork 1.0; Asynchronous MacTCP Class ©1995 Hiroshi Lockheimer CTCPNetwork is a minimalist's approach to asynchronous MacTCP connections. I've stolen many of CTCPNetwork's ideas from various code floating around the net, namely: PowerTCP by Dmitry Boldyrev, the NewsWatcher source by John Norstad, and Peter Lewis' stuff in Pascal. CTCPNetwork is quite similar to PowerTCP, but one of my objectives in writing CTCPNetwork was to improve on the error handling. You are free to use CTCPNetwork, no strings attached, although I would appreciate some credit in your about box or wherever appropriate. Oh, and CTCPNetwork is most likely NOT bug free. :-) Use at your own risk. Anyway, please send bugs/comments/whatever to: lockheimer@twics.com Enjoy! Hiroshi Lockheimer (This file must be converted with BinHex 4.0) :%8083e"1CA4hEh*V)-3ZFfPd!&0*9%46593K!*!%)!J!N!3qJP0*9#%!!3!!)!K b6'&e!J)!N!-@R@%J)!e$9%036Q9dGfpbDb$%!*!5Hi!!!!%B!$-"ZJ$r!*!$!`# 3$iB!!!)Jrj!%!3#XTfkaV+c)e!#3"SH0!*!'(i)!N!VF`!d0$N083e"1CA4hEh* V,Q0`!*!49Z3!N"%@!!!9+!#3!aB!N!4849K868e$3`!!V+GZNDbZ)YF!!!'D!!" Zl`#3!id!!"1PNZ&NB!#3"RYZ%3!)(03FJKKiqiDh,V`Kqf8l1V`p8icT@De$V32 *9!lQBU![*FSpMUH*#"PX(bUVrEDDING2(P`M@b%(IjCaQS@R3Tl@2%Y%U2JLJiG Bf"6bSjXm'E2id92+[H"XH&ifQRI%8SJ@V*XLlDiEAE#USe"S!mJI#(Ce0-RISe8 VKrYLTLJeZqCaS`@e0JN!$NjAmLY""J"hNf2,HZA,M[a#ER&Pk8,BfE@`)`YlEp1 Z*-q62$i$@01&i[2Lq+rMG"pK%D3Yj"H#IJ3!GAeRhk!hf@ek$9Ui2@%,@rJ9)lI `@mLqcJJ!fC43eA13!&fR)fij"[kDR8jMqqRflQ1C(FA*`DBrEZ"2#2&[0hlpklm Api-N6SH"H"Ml"d-CM'3La1d`&%Q`2ma5NFK8*SHb[iNfR!6!r&BQD4"(iXEQGAa QU%)[6F8J6X3NPH)Sb)ELNHF$[mC'BqG3*NR3Pq,+I5rUKa+[[[VUUbYL-)Rm$'f N`NY&*'9IpT[0A`@4(dkS@)Rqm!THpZ8JL+6B$U@Ah!N"I#YG&e'l39fhdQ'FC#) 3Ym6eQrMjXBKZLPE,(hU*@'ZRlFq$DpHqS-IYQmfQ*S9iNRPCi)Y(FY3$S25NfH3 qL'Ufr@ih[CX%3(&2$Kj24QKMimE0jTj-*f(fkHlZSYMM2I9i0iPp9)Z#m'DM55A L,"JFFmQkB[l@9U5#$hDfip%iP%36+MZ[@KBSDrrQIMpCS)L2p""&rR!Ge!P#r[& -8f,$*I"(NY$i9d%!48%@H'(`HbNq6jP[AcJ*HYhfS(hC-)!%D9%4FH4,dC-3"bP m2!qLIH&&ab,1KK",biZm*$Ab@B"'iV'-d)h8%LEk62je%44BdQX&T`![S803YU) Zj$F18C)kfT2C*#'0L`4N%&)9$)5%2J)%+U9k%hKA&KCq2!Rl)SSc3-KpN6EZ2,Q A*-f+dKA$@ZhQ(jS0VN,Gd%r)3BcI0jZ0CJ10YkC#4NV@&LMDb1YeZcYS9j9TAIR GH22"lZk9GA'eUJ`9EA!rZZa(ZXmfRM854Ybmj9,S[M'AaFIbU2MHUPjcdENUSQ$ eT&9pc@ZHD++U2(Y)p@G[Z)XT'B!,Xl)&XD6hciK0"Q@&qmhQ-kH"L")`-NdIbkq bHiFbbT`,8TV)XI3bf3q2a5#*4q)iRL4#-K"K()pch4bb[4283+Q[A#NYY6",*T* d-1p`V!#@ICC*UYGXhSPM1,eSVRFc-LM9dp8%H%NL!Zi1[$#9B#ZCRR[KETB)iM@ q+JVG%N4rpE*YR0(QPrHPemr9XUa(%JIkXeKf1KS`&Qf&&qQHlTcJ*4RTGZr+,bG b)PXYp#P(e+PYL849ppf'2e3L#H[X$k[10lBbIrbEciCHKZE*dh8kbX1Nj+Q(m-j q')-k*,1q"rH0`YYi!F0clc$VdM2#6(Y"NXX!aGG8KrPhd+&qAb+P)0MTrB[d-jC cJSTPdTEFf"VY(%Ad1lIj")2XYj3&D235k4h`*`JSGf$JHLU684""BJJ`+N8Jqh% 8S9q5"`)j-c8BD0F!STGSiY(G)"d$b5FC%"`C10qJMkSD3e15Ih3k"aK`l*01bL6 lL0p-a@CMkmZ(3A4!rXbq)[TcY9,(mP,+pr2cplV$&BQ2-hl@$,hVCGjY6(%1[E$ ND"r2Q*dH[A868210f1$4(M5E!&S+63hNBfmNRmDhqhfSGCT$fHR-R[,-3+QVmSF 9Z$#V&EMPG`+hH[r[i'Vqfl)!q(kFCJqL3EbCC0&f$+f(("3ZQaP4&j`*8!@S-YF Y99Vr[@MC3p(2VhmK0+-NV06h631I1'QG8QeGI0qm`EY8cEiN$T)FfU,Id&ehrc3 Q-'Uk9drG)(5[!2f4lRj%(2KIXXq)pMpNehmrFEkN2%eXcP4qaAUDD94Jk9,8b(C Y3Td8iX!$#Ia0ahiVkXja04)KhVQ#pG150DU2`$%2(YH`HM8VI#FbFq"BC-SCBq- C3H+#m#ZZ!!QVJ$Df"I-%UdCk,Q`,2`c56(*"Ti%6,iB9PJblGcE([FdJ9VlMa,Z mQK69Jj++[bmVDrkH$F`@$,i%EHNhEFNha,hG3hVNM,Q,aqH@XacKb98VdmF[hDZ EJIp6NAGYX2L*M(LH9%kkl$1(#0YUU2p#-``FeB38NmC@UhA86qp&@A)-I&I3qHQ ZPhLMc46pEk)H#VIE'eYMr,aTl929f(qdSV$jQIeQQMKP[hRQSQ$rI"4`-FNfFeb -jEqPZb&A)Rf*STZ*IhKR-KKmTaARa4mL*980RMqi[CUQ2bYAjG2I#md8c[m6Qdm MP@VXPfU$$#+R[a!XS53BjP5)Hc"$8-`$K1cZ&dQAXP9d@X@89$%MVYaQ2qL,)r5 Q8cXkH212MS-N%i8hSmRBcC!!"84U#6U*a&+d$eT4hP4N-FG9EF)Scc,eP4cSG0m JR+4$$MBC[GD42ilH[-hm[BMhkIM1HEa2-dDPR%jcU##jeUkpH**"5ql+e%q#F3D KV$0hT&4RiG5A2Fa6GXZikZXH6T0f&a&@p&2%XMi*[AdNG"(Z,9p4@#X[9calkJ@ KlF*)B,I,Bj-mcGGf'k6fDNea$c4i9rN!J4&3LV5C$iieDq@`(f(dm*%Ce!JLrXe L-P*jTT`T)d-bAF4T`)k[h3Id1'G&fEG5e00dPp[!!%f(l`p-)'&G)'H,q@$EPH# )i(bmimJI*R%86e)%1cQlM1&'$NhZK&!mpT'lBlpM)p!HciqB0#[2NaHS$BrTU0m TfRRZIqCTKC`b%,1#2[51q)145D4iY)K#kl#dMI'Gaa*1%Xc0el1G5"iTdGG28$a )UI4mQU"LTjYQ[+Q!QBrm8CRD#H*a6kcKrbeap@3ZJ5VM(ZCQ00iSE"5+R6UVUPM Z)5Y2@C6`8j8ciE%f3$Q8"&(a([$PrN%lLBdYb#jqPdfSN3QTbqBN($r&TJUB3qU (85,lHPS+-F1J(f6(aT&NCGhcQSNFaCQN8!CEQ&`D,XZ49(!jqU!V!9R,krP!Tc5 8ZhI!f5b*`pXTe,693RqM1q%"M5#[UUBG"bCc)Bqdm',0bH!P#(jP*Z!P%!Sr%"M b`!T3BSM5P2PkK$1,SHFLXi*rF4i%!4!BB"+!13rH1!UX#,'YX4C%*$U8(LTFL$8 KV`*Ll"[X%rB0kkXJQcB8G4$*'JU6Zl+50VG"h5kBS*TU@HcBAb`66[Q!YCiHVBZ @MKEEXRNZi%2)XGZp&mebb`Y3&0Uc%(1KbVPTFa[)VJTDZ4RdeCVe-CNARIkK"6B McapLlZD1F1k+)qcBCjVSe$$QHD61,@()Gl&Yb3RJb)R-S32%!TX-NlY"M5Pi*(J 6!Tj$4&QG,`GT)Np)FBBJ(KqVqZJ0)SYqX-NU`XFJ@qPcdCiiSZeCN!"RDRYGM$$ @3&p,e9iR*ma`D@0-l6hHHAU[Lhijh!5N!8H!Td&8FSZ6YYTS8"(Bd6&Qcd%2b4( D[a9JkCL+6(MKbJqBAXJiShBQS"%`"GaHXr%%9S+'GdJ(l@G$GJPN!X`$-SVA5`Y JpZiBUjP2Xp@H&PXTL(LFT0lVG&Lc8B68J1aRGjp32-Zm@@YhZeJCK&UmE+ce$pD 5F+PjMpdZYSLTF",*(IScYDk*'`LfK4T%$M#SPrD4!GQq44+1VAS*3dk1#JeGbkk RUH0ifU+M%V0PK4J8'S9jVpUMq&!b868jLIZQ8GU#9D$J2M"I0TlSPV"I"-X[[SY 6LYp03VR86j03'i)N35ZilqB`GX@XM6Ee6@L&P#["i%fR,Eh-JaXb+pmQ#0i2,Rb H6f+Y*LK8EII1ZM&1*YJ(@jBLR%+$Q@-dMmedfQhTJTY)T5@NHb$EIcP!XRJ&IRV &KEClUicCP'JU-@63S!QRqDBQQX8'aZ,P1[C4r9l'!eV8N!"A8alKJce$8D2eiai TIp%aY+GXP@T`Qfp8[&C`4NLpHkhIKEJUpYm5PK!VdAabSTRZ!lfF,KK`0ma$2), K3L$c99jUU&!)@5,h[34K9-cr)E'6L#BKR8QN!lGkb**,mFAmmN)G5lMHbZ189bS ipYqLjMT`bi[Y%ik*%"'KmpieZcDmDVf4`pfJ[5U2r%IY6B2p#-&G0!,93"`Ddd) X)59G2D,RH[bi,[Ua9,+*"LK6NJ6S6JPhX&"Z4i)-6bRQX*!!iFAQ&VH%$$-k[`b [@&fqRekT@Yq1Ve`%1Yp`'JKpPFKb0mLmMVIC[0`qH)q[BNMj4pVQCX0eLMdpfY' SPb#c3+IY[$SmpFA@3-i*I"1c@`PheC'*cC@jZErQj%icFQk!d0Z2Q6IR5H#YfT[ RIT!![9cNM1cP1[K@pBVbTHkGV%rmIpfV1TSQer@A[bVIE1RLZI*4'3e#hVKE)1l T2*'q)TSS2Kr6#Ya-ZJVfeN3d(q&*5#@%bcaRVBa9Z[2PD&4h`AYa2N3&bTcQQfh cdm%-Kj2b0larZjM-e&'R-NY!&AM%IclXH4jT!JTeM1$E(-(V)-%X5E!00$,H[P3 12rL4f4!PbYP+$`r8BUMRp@K"eLea3*pN3VQiC6@S4E'#Tpl*XbaS8b8Q(+4Kd@5 aRZ&PN!""el-ThHN5XZNS#5f9XbBUAj4J(&p0hRKc&Zd*8qdY%Qkk'kiehf`chiE P52!0e9iCji0eU0e#JPePY)#-I%4IfPcU`MNFaJ%#h[aVCJ@QHh0QdpKbBEi$3BA h&+,kjFZK*LRAh#1reE[LP)"hP`4F(K,3k-IUpf)$I,%1N!#dG5k@HYAMRdi-D$` 64d-B20c'881i@#RI0NJCqF8r[H4ZMSEQadYCVXbI%ZCRMJ-"4UYUCD2c`EE2a"G ,bcKa`FFdQ+c'IdT[XI'H9&F,N[+,mp5`pC%f1'b+@6&D,&bZGLc1hE8b8qBH#YG "TX)LiCB)8qcjKlp%+F`55Dah()&h1P$a@br%C46`rX"RpZa&$fE-`#UZL2fQf1Q -i@dBii9cHT(*+'H%Xj8HVe6(PH$8LkfScJH[-)VlP-kU%imYcrIMT%pME-c%BcD &IjF5F'UCRcPcC8aE39!NS+d`2jMiDL(XZld-(lAdZX#VDKp*NNUB4TR5)q`mB"S cK[6U$QdPTCIYL[(fU)Kme8$HU0j8LP-lJ#V`&)Pha(4S&R1J6XI1,M)j`N)F$aX Gp%E60&BT0ckc4@hZM5MJaKc$LSXF#RkY2q8MSiA18Ak%UZ4BA5hU9X#GhmDLR2k IA&CKXi`*lh5`-CBZ*D(K$IYadT12(hkbPG,JRKDF%QilJd%Ub6l4bSQ'GIhj3r3 kS@@SV4,([-#kZ2+l#*Hrh-!(JGrAfffaT5lS-3LrN!!!$IB5LrcC%`mlE1UR2q1 8+*ciSTdF*ceCkAE[dj9%YRLjZRS'ijPUe8+%8h)S1H+(Qq,MlEdY0BJj%l8e+bc ADX$cM%8"p-D8%V3jT&L(AjqR8'&ae)NG"dM8Ull[IaVak'l*TaQVLkDZUCLJAB, FkDLpZ,!Zm%)Xd@P',LL8!`6)"iLE+QN$YJLX-1E+fk!iq4+Zb4p)*2j*CJS2HM' (KiLHPjY4EHX(ZIK!VPA2hj'+Z&+2[J[Zkp4ZKU85bZ5`"9$Mm5@'PImi4j!!,-K c*ZNKSZjaLCPf+INX8$fG9R%D$2lU"FGkd63Zc(%aZ(Uppk-[HZ6SpHTR4-kUj$1 'I`QRFBVXQP6*+(KDB+N2lD%P5b%!6-bY2'6ddGI*36`,j`r&!",UBc8!U,J#rkr @jR*!MT*EME8KrB6ca5"!T6BEDcC&3Y1!Aid6EhrNB9X$([C&be4XBjr36lGaf-l BBrij)qBf'"ECcGIZ#(&44d5Gk!IJFKcS4d8(k%FHjb)RD-DKd!kXmX$H!B#PcqY L6'L-LVHU@U0KfAp58DdH`+JN"I5j8$hBIJ6(6RX3%5If4q0(kIkT*K93k"8'ZJq 4ee4$,3Y"&G1SCYZ0NlX1kLKEUC!!mib%2P5*A,fLk30l-T+p!#QRL$DQdp11e!N !laB5U'Z3!'Eh##b[-(VI@hQkd@9heQkqlkmq21LX`qSSJT*8jhF4Q1P9ASUc0#Z cFBV40*!!kMT)XFchilXQA-H2KYBCB%M1R-L-+)@IeA%4H!6m8SF8U)I6)!RICk' qYqQRMTVm-GBbM8c3+9&r&K+(JBTFl(C`&Q6j)4&(3iVQPp+JBr2ji4cjp)V$b93 k[a82!Nd(1l!#cB"$1(NK!+qZAMV2hXqFSRhX3'$MbF)"9`BC+q"HXA&jP0*XFID 5LX9V&i)bkRdpcJ-#6QmDkdQm`Dd+ALm-dL'"2YmbcRXHe!jL@ZFqjk5jB`1j&Me S-&ardqdPEr1$I-"-&`,lV-Yh(M"`GV%BlmqZpPLG-3`*,$lh,DkM@FAqA-XLb'` k)@'-kAJ9A1NiTQef*M4dGdHJBRjI#&b`cR`Kf8"@'RY+MVcM5fk@Nr[[-eX,FCh 'VG`)%U[Z((%a++`kX%5dTQI69G[2D1XRGUFk!M6@((4b)Drk-MTAJVVQKmJj'FK RllCc!P$,GR1TN!$fp$T(!X8iXHFqF1pQL3Za)IEp5D,@G12GFJ$h!q&iRDeCMd4 &2mN[mq3!jFM$BN(brMAFX&!BkG(9R`KK(U9GURcKArP6X9"mXE#5hdbhjkhVVUU TcQ,j%Em`3FT,D@$Se)*E(Llq-l+8X%Vd%mj*T6iT,KCa2[R81A%T%)m,Z!`1L$( $3LG"HlGlQ(pkQ(rkI,BTNc`0-!HLKP19Rk9a,!P$U5a+-I6bS#(BKS-6C)SE@`a @Z$['I!,&,!&Tf-1h(+R,BrJ6,clR,jam@-lrb`1*8'Cjk`4&4mZACQm'ckjjVQS 4qVU!b((J$FT`Nj[!'5`ZEUfiLZjCY'Nq9d)"LYU[8jEQ0)88RJKNQk+LQ(ANe3Y 5,`QXbY*8[0cjBKH0kG8[dpbCAYCD`rCeKC[VJ,Tf9ZpNS#kk,kKVSG"ArE`@f"9 &Tb5d+lY0l-(`VZTChFa6mqj[$C!$3e4$8%jPG(G[FQXZD(!!N"((3J#3%BB!!"` f!*!$&J#3"&4&@&40680$!!#XTfkMV+iJa!!!!CS!!"$F!*!$a3!!"GPrr[5'!*! '#lm4!!JFe"b#'(!3bNfYT5QqL2-)S"TD%eTRCFUieU(@J@3U"h-ad*IQF@a04-K Jqe$C@C'fEVqM*`qZQDf3!)0R@YidYIDlKE2mR-QdQSPND-e0+4(DQ+9&daDhS"$ e-2HS*4i9Dm8Kl,#c+V41)bb9CZ,"NI4d,-P!UQdUj'R0Xd5%QP+R(Jqad"0Ld31 HiE2id92+2HTXH$JEc6YL+HaDl*XLlDiEAE#USe$R[SJr%1cUD*+r4kY@$[I&6&& UGXhM4JYUE4)-6[(Nm33C`13BHEkbPDb%bQb5EbXMal6MK"lKG#$cZiiF*j`m!-@ Ik`0`LMm["[$&0R[#)XMM"2d)!,kq3G+AfHF4PQ6!#1X)FKMC+lN93+`QH$)F`ZJ l!lpi1)c'*q2*!EF[P$jEQdIi!i#reZrI[`-l3LXc&l#RNV-j&cRA!)qc$,5BcDd "c3hA#jkZSBV[%[MbM'XMP)6eY4YaI+h3E*Bc8$,Kq#TNNT8TKiH2da4Y-,pQc#* VEIkS[GeR#9T,0r'eP%q&j0(CCMQGFRdXAR&bZRFEqV"qiqEYk`eKV2+FbI3%l9D PIFDbNNGhdB%NBmE!q%"C-49FEe3(P*lkT['T)$m-X%c-*)`JCmRGHfGaE&m@(*@ #Q5YY!GNrC@aQ0XL-D$KXS`K61SaM,XXFAXF4ABU-D)3D`Bd"!DAb($$F1XD%DF2 hd%MM850BGk##lL#M3f!@(Sk2(MRH%8qi@$MLTZEXc&&(F02C85F*D5!NT-bbq!f k[(*aHm'Pr9R)e$Nj((*k"m)BQ#TG)b$RbCa*BA,SV(dUIIc5lB9epRVAT,)3$Ke QR#NMj+b#h(53!#U!,bGD*H#8Ma@k0L,9JHMS*ecR3M,,+rkYVrbDk44XB3!HDbd @,(-D4R$lUi3@kQ2-FRkL3R%&'AHFM'1VrD(M"-+*)Q$Jh(8FZ[4R$R4BF,N50B) I(BZ1adT+RP!Kp6"p'[VADfjckU(hhN&h+bmmGdmBbaf2,,R[L2l'qhD+TA#TDph h9A9HTjQ[3$ljeEN$(A1C8SVUFUL$6jHKapJjiPBJ(#@,mmUbZNaFCf(D1(-&j&m Q9NF4RZ06eFGq34!6Mf+rP%,A4hdX*prkRP8pJcVp!`d&1pHUa*d%@!C#8rG1Z5Q B"19-F))SM3JrGD2NYhDFr,k"LMcP"`2q2Rl6Z,C4qpNBfDqId-RhMMrCcZ#eXpC Rik+5Bh+r38ApjcJ,cR`@m*Dk(PqHRk#Z$4HkZ[8MQa42ITNcfpAr'9l'8DBN64B Ll'1&X"NRb(#BFLbCe1#Lmi8CF2A!JLMU%r63aFNc%k@aKJSP8qadZ%bF$`Jkek@ $6+GSi2rhZD"3#e@FKQ639$)d'ETPKq[(+P+cHiMlX-Ji&4D9[FX"i4&GR')XcMX #$@c'iCYDDqY#+3dZ4*i#j35LZQV*m,F3(m,Gb36rIPkEY-aY29RE8INk,XV66#3 2+1XiQ4-i20l@f%&NV44@S)*A[(FGM3chQdTPR%P()-24QJ2q2qZL[q3d1XE%+`Y h(2ZfD5hS9CXA)qArZj%8YLda&d,ENQA%rA-*pRU#6UIdida"DIAE!(aDm)EqNSM 2%[`m%R*('8Z6kSTqc[Hl"k9rS93$TTGJ5LeJ$b'+$JC!EBq2Hec1l2`YZI(Q'(0 @'SU2IjPXNP(9fe[ba3acmHQ8RDq[UhKeQh)9M8Xph9cYXPL04bbXJQD`j9Jr5c3 eMemZcS@&%QQih",BpSCr1+ifh`TD$@kHrKZiaT63CEJ!%TD"Nl4eF(6%6CPC+Vp Hf!acc-#ZR#VScqN[bKZ!cdH*Rm4)*jkdjEJ8e(dVk0@$$A!Uq-I"4Gdhha-'S8i MiV9+9d6V[PTJ2Sb5064iYc[Haq38K1Q,*#rfM@[Gi&5)dGA5UEb[jP+IrSAm+)X P`P0-8#M[S'-(2k4Pr,*+I*lqVSL2#VTk#3VH9G)R!D(UI&Pm3,4IDVi9adHK9+c T&jh#S,cDM8mFE%LPUI(VSBhkkHr!cbemaAmA(EEm#N#ackX["R6T&TGVJp`p1I8 KqYA!Mm`@GDFqiY1$NVMKhSIZk@6L%-YDh'K%e1d@1&hE09SZqS9JK,VXR!EiC#G eEMS-2H+FaMeam9&fZ@rpm+`ZHmX9M*9aq%*bPjaZEGBd(mZ@LHIph%&pN!$Sq`L PU2VJd*U"dDMpH!$HMhmXDRR[A4Td(eK$!kbX@kV`lPeX&65,HT+H1VZ@AcQqfGA brJ[9%NM()9MKSdNqfI4fr"m!!!d0"P*PB@4YCA4hEh*V,QK`!*!4kIB!N"!9+!! !(jJ!N!-@!*!%9%9B9%e03d-!!+bXb05XVK[-!!!"QJ!!![3!!!%&!!!"l6YfB"` !N!Dki"%!#"c8())Bm,5%Q2kP-)2F1&$1B39GDPH"I(ZR3HjfPfih(6`jZe)5cU" G28jB%a%bf$j8eT(-jcLXaBHZmAIdj-%eXa9b-'i+-2ENSpZFrR"UIZb$I%HHE$T IdlGL`TY3[eE6ClZ8Fe`I2M!eCiF$8`[hIDheQi"[[bAj9T-be+TPXjC3-,NhlK2 B-rN@*bh8prP"9'3ke6CPN!#80)HhC`l0(16`Dk+#TcMm32pS&REil9Z'XHC21kK #RYBm5d5Sq'`bJ"L)KF&3'$hSfA)@2hT+Z@N!RVfbdE`MPN+dB0d8DAIGk)*9(B9 #'d$q3,#VSdRq(UeD1G`A-d@Tf6@2'bfSY8P4HTIHBI2K+%3"N!#DR#+FQ+V40!4 Yr!L''6q`3%q!mIQcI%JSA%Vb`m!0X[`KIjBlk!rMHZ3mC"&dHaL!)A#(Xd-H"X% 3j-,!k[B3-(KJ+16cB$m-KC-"%*VV4A`JM'(3&`*ClP!fJ"PJL5!+q9kI1``b%-` #%6IbmbSfp2T!4K#kX6q8#G`)FL%[`)a2'2*K'3LjXhc"E#e``+J2mFUpE'$)mQ1 8$9V"S$FEq5)bRJBfAc6FbBdpM!q"-153!-I(Spk'6!MB)!TMYeFQG"1cYJm6`T% [kJrA)ef0-M+!2`3FlV$((53GAZrK!mk25D9qPMrS4[`+XKidB6U(!3cjq)i(T1P H(hi)BarT1!44j-pTFf%c)F@MJ*p&*S8cL8)jYEN)333BdNa!J,T3f!9bC!5iL0M RihQMX'qT"LiL)VA&")Ec6$!CTqZ9!AF3-j!!bf5!'83K&r6Q,0Ieq0emHe'@6qK "2UmImpeFN!"aJ$XGN[TkX"mJpK1b'6G#9L(Q2N3m&DG``K![A-ce*!B`M%(3(b# cC$Dl#k4cQ6PP)A&A,J'J!bR-`VQD863%N!!r(##peN2C8AHf$,""mJA!8PaLKQL Zm-#X,&m)Ka94KRK6$3R8#SA"a%IU+cMUpi56#BF*MD%q-,ZQ8,Mk8`El!3!K)3e $9%036Q9dGfpbDb$%!*!@!4J!-`'k!2m!N!-"!!!F0J#3"aB!N!1'!!!#)2q3"!% !V+GZXDbXb03!N!D(M3#3"Km5!*!+ES,!D3!!: