Date: Fri, 14 Jan 1994 09:24:27 -0800 To: michael.dautermann@umich.edu From: pradhan@camis.stanford.edu (Malcolm Pradhan) Subject: Re: HyperCard string matching XFCNs >Would it be possible to resend this file as a BinHex file instead >of whatever uuencoding it arrived in? Damn, sorry.I hadn't set Eudora properly. Here 'tis again. -------------- This submission is a HyperCard 2.1 stack demos some string matching routines, including Soundex. The routines can be used to generate simplified versions of a string which can then be used to compare "similar" strings. A "fuzzy" match algorithm is also included, this scores the similarity between 2 strings based on user-defined penalties for character insertion and substitution. These XFCNs are based on code freely available on the net, and are therefore public domain. Sample HyperTalk calls, notes and C source code are in the stack. Regards, Malcolm --------------------------------------------------------- (This file must be converted with BinHex 4.0) :'90dFQPZCb"0BA4MD'PZCb"cG'&MDbjcDA3!8dP84&0*9#%"!!!!0b3!!!!!3jC 6593K!!%!!$FNFNaKG3)!!!!!&J$i$3d98h4bD@jR)%eKG'0SD@jR)(0dB@0V!)! !!!!!!+9fCS`b!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$rrrrr8e4"5eG*6%3 "!+N0'IZTA!mc!!!91!!!PD!!!!MG!!!Y`I$$ZCm!!!!!!!#r`!c!q(*JapE00Tk [hA+FGQ36GJ#FmJJM+cZbX[@lh256qq,TjCPmC5[(8pRDFEf1X,be,SU[MY$@Cb[ c0iX55KKC#EY0q&(#EUYYddhi44Lj,H&N(bXQBB4Y4KKKK"&'+1'%%eSGNdXfZ5e Cf8@1%pk465LAF-)*j8IBTTaZ4LKKK'hkV8`mF*fVE02N%RDEmXKYbXQ%NqH4d5B Sf'4!b3CBJI(!@&dG8#X!"`"jj`"bXF+,GBEeAdb%MZ2CA-GjKGZr-M`V4JdIN!! &HerR),@KFB(rK84,XU&P6i)8'P#`[U&b3q26`@TXXI13!*JjTlCqYa$Jq"X!reG '60c%SD,A$GA"ZYVR1-i9iVKhRm6[LqpZiNjermBJV*`iG$,RU@l10C(k`)6IabC 5JLAUHM+(Fr@pXQ*TQ21BLVLqif'ZlpA&pMd@q0Z(EIDUYdJhJ(A8)jbbKjrEeIL (aV(5[)QMTelf,+KBXbZh`Uf-qEZic+h5A)3!M(aN)8#6EleNG@J6UTa84U@pdYi )'(UN63!HZc-'`[)Bf#'%Ac`dV1k'K4$dZ-"2YN[(R0ZPE@6l8!EX8PVDT+!H3CA eS`SN+JSqfRK&bD#q[4,lbrd33Qh,2Hf9EC!!!%&c%+VlYllYDrercS[rDPl04MV aJZe5KkTX13!43lL@qJqI!6iJb'0HLhZTY#h,CmN#G)IIpL@#ibAr5a((!mjac'Z TV`f)m[!ppBFDmSM'$Shl2eX+(MI`8Vqb[acF5'-R9JDGF!#DHL1#G`dF[23HNDi 1&0B16B9Vqf[E4VSKBLG5HM!p@1K$aRI4ehEc!"F"10Y0[plX0(b)pq#,$3NPAAX T!`FV4iHQdMeHhp8V5HjDJSHeP81C#j9aBiPl++2j3iA-P`U66''56Sp16[!QP,1 &%88f*L"Lp,T"5#VADRqVqFYF8pA6LAaB+`k0Aa"9lA(G(I0IH)J(G9kJE&9R#BU NDPaQ'Y9AVhLpH'8rKR(YKLJZUAqUSD$(JrGL+ZMF5+GK$d&1e1Q2+@AiRK8JYbh 8@r8@[8@8NIV[YP19*lC$&Gk'3GSMV@"B'9++@Fq-2Dr(V45MYU'Tebk#'"1`ldA Y-DdIAkEjJk2)6(hT,drh*e1+ZE*jK+crqfV,b0+eSZ+Z`(ZZZcEAr49X5,QSMPI d-+h-i@RPc1QX6rTbZAmKG469**2aC$QTLl@3!(L5l)LhYj*plFPGXHJqdKk2NlC i,%T@NMh0qdP*-GRCfTcF"dm`cFBNK@-GHhDd*%PF*SRQC21HP[B@P!#6U'H"0ap NJCbUq3$Hp[qmc932$EM"5S*A"`5RdHa2'84)Cpr64qc!(*Xca`Tcl%GcE'U1rI- FbmqajMP@R'1p$pN!XVYYq%Ec0K')qPSrFXil`@`d4arT2%K(rddrrXmX`M,8@G3 0@dcP#HmLdE3@kaUX6e@j61X`Gad*j%B&)GHIUJ"m'jF%a)EHk)e!VQbV($'9%aj Im3XkR9$TKGQq`MId4SbdLhl+"CHTh*mL`I4!HQ#0drLMm*%Z,Y+DeEVl1e9lNql Pe4N[8jpN[5`"`C,emADVX6TDF+q2[US$[UL3!2#Qc8@QF!e5Paj$lq%MpKS`YKP aENHeZ38rjUqc&)2*BZSd5c're&--&mfQ$"QjRmfNM-aK2@@XQmi`,%'FE1TG+G) m!E`(Q1*Vpr8$$p,$0dQ!bai$2ATA2dCqjJMkB8"%2H+MSr&[U#Iek&#DVQ6QIcJ F'##(IG0M`*m462M6',218eDVkV(q+CZKE(82-T5PB2k($'8CrPH'BZaXKQ,XE)C Ll'b'BZaXKQ,XE)CLl'b'BZaXKQ,XE)CLl'b'BZaXKV)-IjZK,-2rb&!N$XD#1,l E[2"(162G$q6,QIUH'BVZ9!*Fe1l)2lFSHRZ(iGP81+A4$JpB96SrDMiRb11%elL %%NijmU0fUTkh+$TfRT2('3R)#Bbl4ERkRUbUjJCp'03jh-iU4XbSBe-GmCUb2)U X"ib8M2,K&"%TjeJ80HIPbb-*d'MC6&cmF04EGCSI*U,QJ[$Si[1X#q`jTQHah-m 29a'T)k&3jq%86Q&b[S,%L6ZpS,!U!5cG&C4$0f$#%c#a$3T1Uq42pBY4HpK(q`( Xbm0kKhrmEGL-Ym*'LFGrEGf4J("Y!,h)Cc$(0[%h2![mEIaId09Lh"S'dqmpTP* DVmV*hr"h'9l"HKK9ENMpKKjh5Z[FT@35kfj'aR3bM93BDi#4$6Tj!DNLV#j'PZ[ N#D6bX#jN*0(*JlJEZieeP*&QR@c&h9-VNYH`rPjMZ-pe1S$81DapM(aI*le)i8` j0P2Z[%lq2e)i8il0P2YjPXaNN!$#QA*XTPa+*cp"#QI+V@#NV*0AN!"bB,8a-SM cDX1-Up&pQ*C(X3icfUhV(N2UIDb$M-c6b8kNcQ!pUI9K8LHh)R88kiZ-[+k698M &D$*Rj+"11T'5X2SBH9SR&fSh#eCJr6kMMfET1cFV4rJEZ"8BjDmV0qPEY4PI[0@ VX8*C'8!CP*B#P%**#8!*&"F$&-1U93#VS+J)S!L99UY+CDT5UDT8SLS9UdUV9+8 L9'T#AeZ`0Z(($k!*E4E#CS3+!92S#A`GkFBC0a'C!q[SaTRhYeNlF6kKEJMe4VC e356IDdl6[FD!Z[Ge@M[2&SC!0SGVhUQ*IIT1M9a@1@,Y6!rk%b'kH6L"fRRS3he ArDfU&b2PT[Yi-r*`dj0pDc[PekJ(ZL1"[qp)lNaU1j)lBerY51jm1V-M'HrlHNG bjpE$(FRiaI[kZqITfC(-Nh#UI+&0kfX$'cBf96Ii'i2251(k,ILq&H&,KkHiH-Z @NY,5-[TqcT0`8Yp)$'$&[rI!-B#+(J!4)kf)kb%4VkaHD4mjbP-G9BrUIVZDQ[l (%PcqkIRFaGMj(Q`$MZkGF"IPH(TpRB4-#Ie2$k'LPhpLajhq!J*'1eaqQFIG9#i "D`M96j!!%l#B3+iE,[qihHEVk1TkiCRQpTfYP[Ti4qcjP[hQF-[c(6YE[K0X*jA i+2k3!%JYqp[r"`!'!0G66eTVCMkcY@jP"N$ap$JGG#[lY8'fe[RKDj*AIT4lYR@ `@DhAiqR,pAbf$YMCEAB,`c1Iqph#-RrKYm4ZiF*pG*ZCHC!!&i1hMm"pF,2Ear" er2bPBr[LYja(&RlCZclEccEFPX`0YjF(qB3#9i11[m@fm(K*$K*iM%!#b5CSJ8F *T*-QH4BY[3Dj+4HrDAED41ECCGE6ic5[5DrPCPi$`UiMQkf$VP[CHHCH2dihh30 bG*0MQa`lLr!'j$Bj6Qk6!5HEh#B$6LDEM$ECC*2I2YQ%4`DF6,CNZXQaPGdQSde Z(b1r[FK[FTX"0HMk'R&[Xmi'C,1-E(+E4@k6jq3ffH6hNFGcJJpJ"A$JCb(%Sid GcMXQi5Y+I!mJp-JSMI1q%JJlRILrFK0#aV,hJrPEJT!!iIG"5&JK)iC-REmEp$f L"SD3!"dV6$Zp+SibmKp5"pCmj5F4dXh(TaJbX``UL%#)X5iL)A&H&!6eI%9iLTj [2P@TRRpmkPcLr1@jAp2caVR*e(Q$RP-'KQ"Hj#JIdRG452c@#%e(k2PV@GIAb0L ,rkfGRIHLSR[`+C6iA43f34DF4i90p*ciFH*RL1f96BPIk8LVAFGJ2048dc5%-6j L&Ta(R)*CPThe2'qq+R"(3m+F8iE[b%Ii9rNMmZfA+ql[,PTlmV%ccZmXr$[cUb) `FaN`p*4)%-2a82N8p(X+6FU*ElP9L-LBiHMp$ClRh``*UaqD)qbmJ#jF1![IM32 IfIkB8dC[[Il@kk2YSbVr"Ver*@LGFf2(Y2kIqBTI[S#B%dmMp,!,-Aqj#A&IQSq iVi!'[DkEb['hPa&UKjR!i)iCZ3KJDQhEaSlTQ8jaF[C6J[VJh)KB!2kBHXrIfKf TQk#!EcPUGkjZ9Z[Llk'bVb2F5HG-0(!U3ZUBBbVaehjPdaI&F*,-,N-MbD!50Y& 'rkX3B5T!rrdj&D9GmE4Vrq6ebEe[Vrcaj(Z6hll`"PcH@!9dq+Gh+5RqjDehhhh hqZ6RiI,-Dip1[[,'ZCFRVapiHp@&bBHZIHfH#j0[[rIHHrYKF[$c!`Y@(D!*Erc ZRFN$EdpHAr@G#j03d&qr-6RjbZ6CQCUSlBZa`VG5EVKMG925Ai*[G@UZ4(1)AkP R"CAX+qh*Z'd)``$L'fJe1SCH&e0PP#+DYf+h,p"GRXK53V-8jk"Mq-,(@5*`XI` aa%+C"r'Gk"jmGM3a95L',!p!92NkGkLV$b'IP`ci`N&TNcpVm@,5+i@)ZlqIK2S NdZd1ZE2mi4$TkHmQJPTk$I&i3ci5$!@F(dC'TL*lTb,6NYIG(pU65QZZja1Bl1D kR,CLe,e$)X&`3#+lh2eK+8Mkh,XNdLP*AL*j3e*!kUCCRL6ZB$!m)+NGNra*b"@ &Y+R`3+F8#'CjHNJTlCMM#4*T`"rD8dCm!6@NpdD)D9!Kl2@X9&aN1JlPTV,FhZ" Z+8#%pRl*(C35E6(G5RV9PK!i(,Hh1p9ETmFMpAF(#i3XDG!65N0[#$)NHfMIlhc 8l`&If0XY$C*LXN(U$RF"3R)"MlFhq$mc-q3d0i1K2S%i4Q%f%GFUI*5Pp`pC)N+ L'#Pr[KE!%Q&DLTZM8)RNS%,ZpRYIH1rH286PUXpDc@Nj+hHS55@QTM3$D6Fb8M# ,dN00Fb$J#`!*-@`49B!hCINl@*N[#HBCpfkDCl`rT*C2*AMpMZi'3&#kP'mhkA, hGiAlh5%*Q-ZjRIKk5-JAF[H6VMjh`0d&$**95`JPk)[L+6*,,`4XMAq-05$MHU3 2K0P3U4V3$%fTAeKZYbp9Vhe!TU9!&j!!Pc6T-d!U'Id6Q!U!"(3)N!$*ZS'eKi& fqA+f%UX3,$HpUc`X*ARLia2i4pk(rhd3%f-&B)"BQR3Ia-,'J3!BRLh%SY4)JRF 4E+4!8!+!ffE'!,!dk@-!am-$Y(Y*8-4$9,[FcFMG40h1BV9D3rReLfi'46i1DT[ 'R*C6dhLM#im5S4MLY`Nf!PSpiqk9D%3SdAm%EUmX+e29NbSTQQ18-4RS)TT!2m4 6Na'GBj!!EZ+)"T3"@Ak$[HKPr2"(@8`R0G05b(39kRN(Gk@(-*V*D!R0Y!`bjD' QYh(mNd`d4+%H,BG-Ek-*R)QcrY!MbG+!-L(,Rl%AmrL[2qQ4C!UK@8`'6'kZipY [pNM*8ZTH#APU)8rRIkZl,9R0+PS0kYjkXip+Vp+IFPS0mR6q5hqNSJDNCa$Z4pr #-RVPSpQ58G#Dk8()G"k2i32ifLHCT1FRNB%1[)VI3I-B)c@l1'G8#`YR+JbKR[F %`m$$fDk!$qC3)e*2++ZANURMP3C$30ZClJmCj11[fY@`cJNq8$YhXpBCic'Hqqr PVRaXb"$pU9(lq(f'k!,p9D2f!A1pd9kBVbh#mPAFj133Am8MaL6#j8ZR%*qV8kr +C'3h!4bRi[18M#+fF#cEX5qE)%0fcQ%j0KkYPH1#a6r,E"NVY"mF-LK)YVp`a'R 3'4VMjV1c3L0)JfU+L9%I3EPBaTG2bI'!HHF,KThMfSbQ4S4PFkQa),k(I9*qpCT HjXbNQK%VM%TmGbBR&PJY14P&"RQ10Ek'1ILD3G"#JMFlLN9Xk$'+TY2a)UbBY"P Q!MPkHF6*TSBi'mRJ&VRA@J`bPcGRGU(jdr%3'jI2AEY6jZih4%d(aKBiDLkY8Ub V9rhpjirYr*jM-Tk[ID$)Q90)l!d%ZV0&9Z*kb"4D-&&f3)R2em*9LlmXNVa+Za` i)LIZRP$bD(E'e%rZqq,3X''B'5E$H*JI&SHjBIQ*ND1L4U-aA+dlT0(F,i,*prY Aef,iff1!$eIiem-`$,h#haj#L"fZm,F(c-B8KDm(I-&dKEmpm"f'+rTIaR%d#Rr r9eFeAd6`h0C#3ME`i1eb+M!bU+91LkfYV@+(9L%3Y"b*XpNj["'Eh)dLdQ%cUDI 4HjUDa#*@@3EKe4#mQG4$K,3j`HQ$4`G22#GIrRAE4D%PliZFihQ0eH'BIrQL[Xe DTEYkhU'lVUpJccZLjB8jV(j0ZRX*,UGS3qR*jjaP1@[+K,ELlT&QNLNd03PPC6P Y3U[4+63C@dqX`8+cSDhS*!Fh5$TY0aU0'@-XE#eBTA'"elVBRMFNbJej-K+&!YP 8DDSdmKfAGBGdbNV)e#-)!M'cBc+VB0KV8)396N&D90Y9ki#l"h0VMGQQ@T1Z$Y, d&"38N!"U9QBh4"'Vk"TBZ5BU1!D&U0iiD()Bp5B(j%'1PXc-c&D4qlQlb(3kFSK $'8UHc&9JI&$`9cC`P3J(1C5S(iNZLdkR8qaQPH9beFr'4U'b+kDr[ZrUSF'LA(P `Rr$cc`RmiM%X$bjfj@ZFmL!kHe['EH*+b(P*KAfqNQ%0ZEcTf4*1M$93#TJ@4dC 'j&JPLmRFeK+G%UZ%qdXUR[*!NFL9MYdaS`$E9-P9S"@ZhNP41bdH2hjF0R-E(ZG j0-[B'Uq(Hm*M##TYKrqAe%S(p424*r)L2lVd`'djllL9q"hT`JH"PjFXM*39LES 6V5F*41+ETS"D%@&BJMJ&RiVA`5e6dVi*I&#j@TRLRhe4e!AAG%831'C!-NXUe)b irjl"B$*d-3rdrA6GJa%dXMTcB8Y,8A`KcQ(ZRqQ"Gi-,kYTJL9PdX696$,keNaL j@&'j`DL2V8L"CL-IXmb2V8L"CYpU[FXH@eCif"jEQHD0SmYErqD8,YBalr&eDjP B@jTPk`b0XG9mJFc&9U5BG#XMadU`D'4L+e+-ZG8QaNTbLC'2V8L5Bjh"#ANGf4a E!EHAe0BI04bfq+('jBe((DZJaL!-I!A5e,@H0h-@hXM-&FfFL6&bDTR6+XrNH!- e!j@d%*!!q@Z2QfUlS'BSV2ACXdP0LReU19+4b&'UQ'56e943b%C,Y(*pQSV+,ZS Urm0$1H-0pLTl,')U2#3l,lp`k0ci0aAbd,Gjplqq-XMJ)fHU3Sh(j[,(UZirM0T EdjdXZcLVBd2VbD+KeV9YaJ,cifeS#&6P$iZD#6Pb(lrKXC00Q'PpE1h4TVZ+q40 V(fL9)6Ib6U[%YS26L*Amj5Y"'E%-dVK0C0b+(c`&LVJ)Ah5KbjTR8EG@[U`4dBX e+HCVCeRCl+r!8@d&'e'UX')YY&K0dDl2$XXS)lY#+rYV)-ePXE5dP"5aceCUj9B f3MJjQah$86D#LC@e+2P%B++&2#GSX%PH!DPB-1l"P`k*RI+JFJ9()eSCFka5l"* `G"aPP*l9eeBJ4Z0#b[l9XSYj50'X2[K1$@4YdHPdc9MlBcNJ1mjrRBhm&KD1P)j (Eaqe'(maMYlp0hkqrPGSq'Gr+jrrh5AP(Rc2qAFI+MKD!dP&b0IVa,XYd2i+-fm 5cA*XGCSZkRRPlK`3h#eQJdNdiGJ8jMCU,AS"+b9BMXdX`%p2'a$(cHC0R*%[P@8 60SZjI%YDPe4P9aTJLV%+D'4U6[lYSLcJNAaFNeElb`TjX9J,e,01MY9#a#@e&E9 miFAV$CEHB$iqXrX`aqBiqRjaf&U9Br@Bp*UI(j[VUM`f%62D[fYaI%rIBY&GCE2 2p,@NZeI,#aF,'Xa22Rk#D5eU(H*10*ff((PXEBj`fR`LXqe%dI%fl[iFBeYP8A0 j6PZ4b6cb9m+TPLPY9UY&NDiHa1YNMBXCBimUq(M@%A3j'arAb4J,KLX-$!(H0() L-H!H"PdC`mHATb3FqVP8Zdal8#Pm3b[-bKHbpDCSi86a"SFM@kmh6KMc(@PepiB G2h5lPLZkPLeSV)*H+p6k#k1Z$GC"IEl@'$9D(C!!K69m&BiFY6+)YL-Mka3XcjF M5!%q@h@3!+p`b0#1LM0Al-$P4A`2-Pa4@(NjT"8PAF[2[hLGcbNajF#5R2hXX,l *ri[$JX0`aRp9VbNpBA@9-dHLVH9k5idHJ&4aM6@FfGQ5*SIeKPKHj`*Z$D@)DC9 'VqB8a9BQTH-'Ibc[,f*dF#+b-F"")H905Rb+jKVaa!C@Jf3P$mrQ&M$6ZZ&,rX) MH"il@c1[dmLP0I&"h5[[N!!)#Uah@(H1RiR0Q8M0MEVRre+-Y$qe[@VKUcpE%GB XEaSqHR(H$Jhqd5rGLL-ephM@ci&NH8dT4&UVi9QAG%$@[R+pGJFHRRcV0e&(LKC 'r-aX4&a'Qc'rKiG0%,Y'YX'-UrKi@Qdpai[)-'UF+eKGcGV-B@Aq1mES#JLmE$H EcI@k6LA52PU'&Udeh02#jmKL(Bbe(i0)TYLZfqlqCZ!VGk1&jk,eGjFJ-8qHCa' J0M[Mf5c[CeBEf4-DB8I1N!!3lb5VdiKl"1FcXaN3#3ChMfMb!6B)#-,3[INFAAa 0HLJ9CTAEH8YmH3UBc4QMYa[JhN!`h&XCUE@('KrrVeGr%Pq@RSKfDIQ[4AV@IZl L5qHU2aY[SYAcG1TCr0+L4jk1Y'4pIZLCp4CAA)$K&+-YM%RPh[YNBfjm@4TJAGc JEb-phaf@AhUdFKb+X(6jE3BfCR`RUk8Lid9A[#V&+d[qpTN)#VeeA`I#VmHATIN cAmcB)EP"4EjB3q$D)#0Ic#U*r[`IG@Z"%'f&e3$e6Cd#"c(ZY,+D%Z4e1UCMpI' `+eFA'dLbRSi3+ppX`-0),&3K0j&L4Z8m)qh@1LUEN!"FU-,`E))@PI3-m`jSI1m Cd&K0L9@EMhSV8qK8KYa%+9!KXeIr1LNGfl6NEl+I`GRb9[m[lj-DI[#P&XU8r5j BI8Hc+dCph-%B$%fZX4cC)'UH"qa9L6!U,h8eCeYBHEj+LiB3iJim5cEBLe*i&ZU N&Vdc3APCq'(JBNrj&life[pLMq@hJ()$m[%NSB)SlDbeE)c*J5&h*C6Z`Aj)6H6 %DT,BDFpiqNI-@-I6FVB-2'"SS!T!PjpLl(AL8T8,$*MAb8Y9-M#)VQ*M4+@$3!b @VY"0MikhCmY&ll0dQ"@,NL`Y3r5`lRZ4ZP0AKmp6QREC,kclUmLkdeA6,-h9GfH AIcIbU+iPlp(U39Hm-6eeb"Zb+pMR2L6TF0ECb(FIeD'21$U&h6*ckN1+cKXZ4-+ HhFr0c-$3,Z+BRdR"fJUV3D`TB9[DfD5BGE(mLESN[p6LL3BUIlHS5,2NV!4Zjbi NK@Y9m#Nh'rSfj,b(bZ,AU5aHAB[dj3"*MjZ9b"8Y(5#8AkG#HI0@Y0f2rkNj6Fi XBkfcBY#IpapG,ilGqaG9Uhl)6Nk`ejrl8ZF2RR!eTa8YNXL%-T(3be9*&2ZUeLM QSkTLVQ@1"GKK%@8mi`TTXQ@YNXdQ'Gb1+H2ik'ARF2(B5kH[j26SAPKhqZ'@Pak YRZFb*i5[SB`GS+*l389[0Nj"IjD9emY,2Q6PiJpCHCeQkB`CT,`*@`c,`%*8+Fi 4cBBmdTJQk(86&C!!F#-cf`95THaiCZ8#*-FU8R4Gj6H0a-TNA$Q24PR5hMY8reV "a81lbk00Pb`1Lq2U[aUa4!ljVqS+,cJL*cCl[e@RFlLi`D2kD`fj9TePI0fPR6r D1GSi*6SlV&&dmFUlJa2iq[PpYI[IH!l9AIhl0lrm1HdrllqUe,j9DXlI0i&UmaG -bYReqAAAAVRqpRY[+e8TL6VZee5lN!"mZC0`SJCa%A4&@qa'ZV&')KBE+LU43@" 3K1r*P&QYR5R8L&9*UPcR,h6j"A`TmNd(UJ@68UGa--!Up1D+19TK49TMIL&@M)0 83c"V(Y0e)FZ%k9V%1SJF@YPP0IS$V1`!Ue,Dl1r8Sf`lXPCSKa@MIeQ+4SpC)L" !AlX-dlQANBEVG"3@ZhKG4%%L"k2V+HM1P0(3DF9$,,[FV&q@BY65ArXlhaj%qkq I(ppRhDFG"cbmqUC@eVkmMhePhqrQr5SI[9D4Ml)MmS*k2Eif("AHMPDPCFTkR%G -*$E(d'"!1P(9qd+V@)`jP5E3pGVjdGJFIe'f-X@9rr8Dp&#$6j(F!*4FB5Dap9- P9mR,16!(PJKf19k9+VfDLkp+eeb,,ikcUbfpMN[m)cm"0p+,$YqJCZG2V'"2HaN U-IfSZRqFZrciUHG+Mcam!Ta*2fJkfC4*6JKJ46X0@Hb-EdNNlkMFE4#*VLa2EU" fXrbU&"BR!%#rZ(63AML4ACh2+I(bp-6rV)`LC-MH#1l4ke8-$k')NQP`99lN+2S T1SK'SM6m5J5"Hkh%G2T3h*lQ[kU@FID`jE$M%Y0d&ma6AfcDfD3KGeNc03A23Qq XHYZ#Mm5R"[@ihJ$ATVpjFa4Z!b"X)qefT-[6@9eQeQc*Xka4JCbQZ#ek9PaQ%fr ,&HIN,p1cdH@EjGaF1He9kP`VQh,P1BZAc8(2,cq0LQGMDPR#*+h2m1bXIaMleD' m@*!!DrPLGcIkjpSk[lc-RMNk2XJicmfeRrr2plbSUacl1IpJbqA,q)H$Hf1PU9( E3dq0IDC-HC,GG))8eAppbFTl[e"@`ZmECrlaF-FF01I6+2a#ZqCT3@cGhrITA6p Sf*!!0Ml&b#&N3Ha'*m*0V2'XCUak#((m8dMja5Jk4Za)`dD'%(0%Jl#,cU*18fi SbUJmLh*EmX(hZMkcLrhqI)99'RlM3VD@@KD9dMR8C6pPLU,YFX@,D0kRB$YHT6e hFBGBTib+$6PR8I@R1!dUGG@NL50'KT!!JMBh3KGkKG[XQM%$lF)j*'pfS5I!SI' c4QM#"5(A45G5Te@)265f!$rrc012Y2rlKqZ4[TiC(5eC[(qmMrhbpjH+5hqmGIY [YYfpm!X$TIZ3!(9IKP1Ni*-K9EAGa-5X,K2A0M8@b1GSiJEGLU68b4ZYFB1$)N5 NE%#&hHN&d@+aJ#[h*B[PUqS@3RHCCTNVXGq)GKR4Y`CfC4UA0Hdm`VQ5ZVa,[jQ -Zd"Gl8@JaiUf-0U2r1S&*rKC6cFXPh#h404-4kK"h`mCTLXM4ZR+#$mUj3Y*39L f8l#-2i[`$6IkMrq2'chMkHe,fG'(2B(Jahld#qV1T8ld933#3`hPYfV,pX%HLMZ Y@qca!K"ZpRFEh3P3Y!A0`hr*T"DG@kprY0-A$Y')*YLpm&0`jQr#$d!@Jm8bP%Q ljEC%Y``Xq9-ZEC6N@IUR20)pCB&P&#A&KB#5b6qMj&-mh'H"#m!!K04GD$ekk-m pd%)q*b,6UVNHV&"am#2!`4rqh)2J!6EF"[XS[[Ylc#TEF%Dk4b[LrEkJe%JClpm Nj6H$DVH&h0fIYQBdXEr"kSVlqa[@02hIr3hAB"+lZ,fK(8p`fSrA0fcVil8Ilfr BLrrae2ATj3fRE[Yhq&26UaZH#SQ)*2Ff0)-6XV#bBGYGL[D$K3hEE%5Eh063-HI 92Nh4Q@%f8U+JdI9B&NfIMd[i`BZr15ec-h$XD1$#0TMNZE+4QmZCb&c`3cr-0q" dS@[P2'cLj[)3fJ1K&3e6U[TDDXaqV6ieEEL@hNG`,H8Fbmqc@*9jQTV8f,5$YH# jpC8ZaC!!9lYBUk30hh8b-eGIQB0)hYE&H(4UQ2,l-e%qJKqG(%(kYNYpQQ$PZ,C TLpCbCDG5RCTjlRHqGUip-m*qZhA@l$ZHN!"l$@pQI&Rrj*BPhd5[MPBRHh4JL'q bma%p'Z&b,*bVE`#)D%e((hj"a&Da1Y@rr33YF2AT8F-STjYV,03qZ88,CZ!Ve4" lfFkbE+X,X@Ilp(M0U-BbGkXCaTdpXK&f,j5bkX$i!--hb[H1E1C4"ZNVJ!SV[Vr PV),ANZT8prFAr*F,l3jmlaX9XaG'qlDqpEcfcLHhI1CEAcmAV8j2d!4bP3E`N9V 3ZCDNGICiZ[(jh'JmeH$m(#@HlZ-L$Ur9`jmA4*I,0AJ6lPGFVN6Y!9ZfpLm@&hA 0qlhZI+mf1MH!ri[H6I6Z4qrH-'mV`VFDcJcm+d%9+"[qYB*CBJRDZ+`5eYm[5pm m!)kKAFZV`)'bK2l(XY%bb08'Yk9S15`TK@F$$V)9%)8eYI#A84hP%0YC6GdK5p( '!8q)[ZjM'Ga-`Q,J1qhVP42p@`&[3,RG2q0Y`iGh)2AD%CG6KCBZ*!YR![M+!D3 II[XfEGfkKDacGM5fUVRicp%JAA([#1U@j"VBP%plR'05D$GGMUrlPje1@%QI)'$ E!3"d&ciRehA&XZ3B`9(Bq)pYqADG-lBjMrTf3HUSZVFh6"T5KF4phC*D`R$!0`! VZdFPReHLQj4(),kQ`c-J`%lN-G,["Q0F#NUTAk*Qkr0jB4P`$R,!0MIBjr(ZD&3 hiKrB!fYRb3ANE'jFed3kk8,UN5jIr`"T$lLlqpaH'eR[fd9U+K0PT"0"29hZ!8p `56$NpX,LkF35-"Z&59ZLbqP`ClqR#jC6MlSpN!"ph0X["B-%'S13!+'JYb5N&K, Y$8M5NL9U9B%!%(B@,Xh++[4iZrV$i(GkA1hULFD"lL9ppG0K!e*SNppC4B2+Cdb JMS20ka[9*"NT&!ji+GD(B+&ZUMI84dNJ5KU6A"%QkfBB!!1XDTN3VE52P&+UF4B 'bl)qQa@3!(Sp3IT#!SRR,ePRAjQP0QQLcp-[NG+&`8@,B00dik+9dkec2#ZcpX0 V!3)6J00hCrX@QL6Zmp1h*""XiMjifd%UT1liMK+r1`LXTqJK9SZ#6HiXG,B3f%3 m+Z()!a@ba+qq(f(%"bQ([,j`EjqD1GiPq42EbrdDdq8c$#!5RCa-B6&GEP-&!'i LIi3PX#[iicqilB*NMB[JAfX+QBcA%)3f,bj,)kU3!#9`!E(#GBTCAIbHJdANLVi F"9r-mclfc[V!R*LGJ3"S,ZXCS18ScPc30)3S5)MS!K4!!KRTDNM@L`5*#9pD!`3 0`'",Yp6M!@eir$0YkcFfEqLJ9EFQ@l&p+FLe,!M#T#STXk(TE(ZDecCh`+V*3VD %e#rG60E[h!`#4j*d9+@6pEX(232K!9ARR!dPk*VHB!'B#Ep"-mZl"a5Nd44)Br$ )!-j`r$-E0c9Xl+#Bp5M4kGk@+,QaI2[8c@-IT%MDlVA4bU1N6T8r)AHCHKp,hFF !mAl#Q!45ZBZ!"LT%YGSk+fbGP8PP41mV#&'Kj(KUkfKeZ!"h@,`RYRQfEl0[KcU 5#e1!Fe1(lU@CckQCBh!aNlPPqlClDHCcN!"C`#IXEVQI+NM@PIqaGLN3iB8#R36 EQ8ql,+"T+%f63Z-8iZP+81I@,e"!BM5i'8#(4P%Ddf!r$6ha!kNH9dYeZc2EJ&M jMH)LLH*3'ZVcfV&BA14@FC%EaE90Gdl+#j@keAZR$Y*a8$eC4HaNa5I0Tm+TMJm Ulk)di3G*2`R6&1l'3QKiJMV8[BfLq6Rk,lCp*J8GdZpX@rmr%J3,U""9imrl2'" had6)+D9cQF-KUY-clJ'i))jRp[Fqk+&6&AElpT8*3C'$"jq-"Gb"2D3ch0-$-c6 +2jY2hbIaQ*S2SXU-i+!a@@X9f*eei&H$i8j!TiS@[Nb'`UV+dAF6c1I%qaNiRqD 8&eI3@bIim4+iP9,I3aGb$X$3,%%(EM6*-p-(6-M1p2XkhIe"8LV",%LE*h4c4"U 3!1MNF,Hp0%P11XLLk`p+2HlH'rBAV#*h"qLm`hdT"50[5(eIKD%i!mEQH[@Q$kD 119*34q$&%Dk1N!!*KSLfKM)LI0U[[YN%e2PHJAL&"(VTFDTEU,$J-IT5&a$PBAH ``lG9#[LQHY&%5MHU1##5Q#hMM!q3!22-TU3%89iP&N!T$4pe-`X5Uck*@m"#YSB )a%cHh[qH&qV!cCZ9B$U%BB@Ef-*(jQcb+)hZP#cqeVlNr%dHT'(LjT6C,'J2`E+ (*LUKcCJ3B%Y3VX"l9maJ'E*La,Il"LiAB2N-5(6SeKM-a6`ka(#Bd%U2ZrNk9Hf 80N!"TaBe9-+J$kVakeK%B'3lb2GEp5Q"SbNKPDIVJ9Xc(Ele-(RiX$HU`E+3!0J G4"MdL*,`E[(L%5e8bqBr+(,3"jAjK4+XkQPKYa[f$dape$E!k0'N)-L'I!&*&3$ [+3[dB5`-,mT`HX"C-#(epk[bXKcfHDqH1F%h-A$RT[90cCY[H#C)*TNAp%6lHhd "m)N!X5#U+)bC-TjGLFH-)%e'm[A!+hr'k&5@h!YFJib5C,5B$*8%5B,"f%Saqi5 C-'QK*JRAPF!&L$0"3!+r`k%PT%PbHdNlM(daN4[ZX8%AB(&ihZ1$N9FB&-ejQ(e 0UKk(B!FV4B#$9F)08P3&+YJRJVCF!$lI(jRfZaLfCmUP5@Sd4G!"!mJLb8CGd'T &`d%Sm"!j"kSL2J8XDX8T'0$Gl1Fh`E[A9'kVX&AD%[pEi"H"AlYY'I`NTL-G6l% iRIdI$J'Y-QXJEPZRVF[@EC0X2ECH@jq0cUM2frTY!cD[c@IcfhED!VDJ,@3,fhE CGYX'EAYXHfP,Y@Pf1(CHfV0Y'Bbl,8pSC,a[1NCE6!D`KDJiRHZS!NCI`2*1f!p kCpK0CeLS$i3d0Z!(iB0A8d'A1D'!fp02UEA1$P),26&pi&PhhGD54-mTJQDUI"& *AE5T19UQFl5V%Fr5%01$hGflh&k3!+RN&!&Ab(!'$8$A`S5dpF",J6$'5)1F"5- hT@DRAXY-9iaj#GS1JbXUdL(&aB38H),ZIRqIQdELk6X'PSf,2%PQT3%1CF9%Q,+ k+D6@%04STJESeq%`,+($pVEjEX(VPUC[Z+&AD#@TkB9Q43)`iM`@R5-qRrrh+%S 'BCJc&&$lJePdcUI@)GH2%[JVE@*,AeH#Z64h-bPaPJ!KZ2fdb)k$T!9QH$"T4"# Q"QN#9N0DrfA$D%)d!5qYiRi5R+#-KQQ2Y8hXI'$H32%`'3L(B"i1[`I"bm-EJUN ,rS!,V4!)0kXBK"!liiA4KDJX+pXaDaf$pb14EY1U$5i,f*dGR'&X3q$ad%,JmE$ NJFIVaclU1,,e4V[[GG0RpbL)i9T#9eK,'LmQUaD[,AEQ4hK%jaQ3!1J&`"JY!6I "`R624kj0Y#!@##Z#$XV89@G2pf4S8*@Q'*CP*6SL`[6(N[(YYV6Fp#SBeQ%%0bj +XM0-%5)@r$3bUA0[CTd,3SP"2hi&-lT$2RGmB5CGF`8f6$X2N!!`lB2j&pK,hJ* &Ekhk%##If!jBVE$H&&2!Id`(@Q`JJ2%!cd-,)$%H,-$F$RCN('e(&ridHYD3!,3 )0f9PFD23&@D6T16i&A51ZdFG&8M&aVP`TaVLKVRa'8T$I@0N,m8*bKReH1(CAJR `*U5kqk@#2dhd!aZQi6G*lrC%I'PZqF`*%r%Mc8fE'T[r-"$AKq5jmh#fpmm2JHh 8qSQCEfI4(Y2kSqKd(d`6HDJ+)X@Jbap'Xr@+61Y--BQ%b5TJ!($EeCiG)FfNL@` #fcGFeRM'Qfd+PRK-*Pp`4i)FRD!A[Z9m1d"m8DI5iB!IP[B5&8M[DF%($f`aXXV k[%%BQ!j#Nc'GT-4+4'!A)KJ5qeJdJSFlISeZdkCK*2[,T"+1*)")cD3KN!#85N2 "#@#QR#FJ3AG!3JP2VbF%9R9+$-Q"6PR43TFT'+P&rA55!"mPdKf3!,``"cN8$JB lhH#[bF!BZD!PT2l$VAHZEqjS!dLFD'k%0Kj)9$qU-Kp[b`CYmSi8#dr8-V6LaM2 YZ#Q(8aM2K+(V,"+l2[Ji#`B-GAHAd1PRA@X*RBV'J2&5AR8L1Tcd''9"4UGKP1X R5Zf"D5Rk-03I6#aL`4b$N!#9mHf'ISqVh)khm4f$-H6)ME)bUFQVU@lFkpNC"VG IS5M9"r0eFGF1qRSpA9-Y0CdmQTimmk)Cd)+fS3p`I5B403cEdmGfddES@&(N-`B l69XrS%lSMeh*d#-h@"@KRFR3IP[5q1q'lNb'(VbCY5-CHYc@qP(Sb@6S(TZkSX! 2E8q'pYP@fpEBlV$GCGZF#Qe,K[ED@QcYYNqpRc@5$!@UFL#*SDX)94c+!JkH9PP q3'49YeN&2`(%45V4(d8!VTT3FB55R*)YN!!5YG59Pd`V%)imXH9I)NmQ)RHSNHe 6"@(3RS@5i9`BkqS+"`)5H#&Bkk%a65VT51B8M13TpBkbU9R"#&!SU*6DJRjP21$ EQ+[#h6Z8KENc19Dd-qeJB0PTFpKUD(%a'(9,%jMFAA(!kUIMJfl0Y8PDcZfKC(X (hG3riV-Zaqf'dA8d!00[EFTabE0h`1heN[A1GFdE`8L"iNRMp'rDf1jXE'hH!#3 j$S0kl*PJ$"lDY(&MJaS)j6($qD5Xe2fMd2!hhXbCD0,EB&r9FbNBZ"m'UKQhPhU #R-q@0*6B5PVJ2!cR-6Mli0`2je0`2JhR9q!%2ZZD5Qi@iRpe(C!!j!#Faq%m#'F rR)IJ2!,R!*`R5rEIV!"XllBL!PRmXqf6XrerY3)*8+kF(A$Z6*kGF1j56aLBjJc [54Z"G4VaP6F(dJJ!*EM6B0Q3!-',0*`Jl$q3!#89"6G%(+,9h3,,,R)84TYF`,P %!3V'Fe"&B9Q'k3Sj3d`+mZh%bdKR3(,[q'!d69QqR%k$`5%U4RPJ,,pX&3Ifdbb +3A4!FZQN&r3KcUF6U5+JXZ0dM**H""18E+UMk@hJK*P*C%2-YL8h0BpHL'$TUQE ,CKKHej6$ir(Q5Tc*Ff,,Rr1FT(Pfh-V$DHj@mfQ@5%@&B"-UEZ9TUkb%2'fhmV4 A98'HpPYj1UUV)8r(V6`lPbq(2$Y[jHPd1#"2jkdmZfTU)-qZrid,JXmpA&#HHlL J22G`3ARZiB,bh--&jEQ(#mTc&aG-CCa&dULP)Dh1#dA0QA5Lp(5[%bjB9VDRVM1 52lAS5IdX)[e%pQN61)*-1Ri3P!+TAXaRSAP-(a!!aNE6k#+8V(@aPd6m#cSS6AA 3M!Eb9FijF0'KV[Fe$[)hJX#"(8BVCafM5QFQ&8VLr8D,rM26*QSiRQrD#$8YH%T F'B2f%iKZCX#N4$*3,B88VQ&-*C9G(fG##j!!$KVfMCQa9j!!NQd-qh'A6FJ,e6H DE)GpYkf`kICaK0N#H"Pq#0k,r`CLZ#X)Db,`[X'V#0mb&pQ225MP@G12!blIiJZ $'4qM9r2%hX,cMq23a+DT4E2H,K4[S49%V9hh4iaYe[Q&9Em)lI4MBASV#IN3-0Z DK$D3!+ZF21hZ3kraQ'SNpQXeVkk'+SM[@!,q$rJDb,K"ZfVKC1Ea-0!pZQI+i)' -TlD$Pk1El*(mkNR@0PR,KkY60'dFh[l-(Am1dQ$$V@3aDAE3Ze2Tj39`UL3m9%' K2-FM,9%Rec[HhlP,98`#H4D+MDK&Y0k!$N-XNGL(S*(K42IC$a0*G33ZGkmM[$c a9-,'SkLbEbHQY+dd,4)2*&TTpN(LVJNUDDkR33"Hj)0QL0kDU@NSe,8%kYJ$GLe HT$!+lq$'LlhKRd%H62BR*2TL(PNI&39bchLN4!FQh([!-E4EK5&jG9)5P)'5-a* 32Rch+!fQU#3`B&5eXBPl+*RJ$"MYmEKJUPHh'bH5pD-'lB"T3$VJ!e9,cB)dd$8 2+QQ-bk!mkA`Y9`e&l(Y"hK&eJc![#*9`*1UQrRheXBMG+%NK6caL,8IqcK%)'NU &0FS3-5!#T`df-X"$K8,Q&MJ)YV$m)0AeILAmjYeKDAIDMFpQ2lCHjAa3"ZmX!X@ "#-F$LkIi&j8$PdK!F(%p8M$c*G5YG,!aXF'1+XP5ijajc$@m'+1HIVHkrL)(++9 H)6R-+@`35`!m4haqDP#E9"[8#eL,KP2YkT1m`E"D)2T&%I#5`N1"jK+k8pfHACj Z-)$"KT@"I@B315J()0*H8eF"Uf`rj3`8#cpSeJqDCkJEX#Fbdf*8fd5P'V6&`+F &db0[RXKi!!CX6+A+r#e0N!"9DV15C8jK3L81YK)!kD-31`a,+-MhCLD%XPJ[l8m Q0ABjEV+kd9KQS+FX-R)8XFBdaV*#"I,R4MXa8hAr2jFG"bRRr-YLede8qJJ#m0K ehc$BBIb`,aa3@6hKJhG-@rD8ejIVDm"*p*)%4MTIFU*JZlm,694@H$,a0RM-K,# AbhMdL%dTX5Jh93S,bHef1Z8`)JA!M$ZIPD3"&HP3%KJ`324$[Ccaq8#3!%99X#J bJ8'YJRIBa)$Y9E1C9fPl23b6Y8#1S)Vcp"hD)$m@Ym3Gf0E#5D1*'U85aNBi#qR BEmLc32-[43,#6T9JZ+&#!9`CA@"q!1@,jHDJ5L-ak*&5"@A-3-BbC)51HA[#e(p &eQ!)2Y8U)K*NrQ)")Nrd*XQ6K%I-*`K9DU`,3cG49Cp3DZ*"eU+Db$qS-(JV!8N 9Yk+hP-q6#AASlp#dd`@MAc8VFH@YJB23Qa'T5[$J,D9hP)X4X9CKl(GMS4"ihT8 #'#p%a4PI,iacD-")V!drZXFc#ESDD*CMCZ6I)XG3dk$aJ-iqB-Mc+9D#G-QT!PZ k3DYbZ"ELD1S&T4f&IU'VZ++'X'Cf*'"FMjjj(ZT5Tp-2XTM+$X-F90IH8*Jb`@p 9cRJV@6cAD#BN9"Xp0`TiKelPE#GD'YG$)9JDJ+EEXG43Y`F'@C5(RJcJ*4,ki6Z TPpL8UFGpaAmFT#1T01BI&3h3)0&GX2BT5Uf&h#he3fBND*!!$(-BIM-l!5c'Y9f 3!#T%!j-U6a1r6VLp-$M"1L#k")9P8ZfL'YRVb(hK#6AdSbIE)@INGImNDC@edGl jR3E[lc(ik2d-8aXl'YE#JkqUdfrPSTF`b#ZRk#bD9$qEMpl4S((&F(S[+01i)J0 F9DEMPUEM+Mq)-prT&VAqmT06,ebJD[C,AQQA'm%,VITJ1K$Yp8&RqQ'+%SH,)N1 lQcll219$hd*QH&i"[4#V"AhP2mRSUpr3SDrqlRQ8Xr0mXKkR`pQf0YA""pH(b31 Jq`#PE(mip(Ir(`!!JP)!!!: --========================_15645840==_--