[comp.binaries.mac] Macintosh Technical Notes - 68 Searching All Directories

bytebug@dhw68k.cts.com (Roger L. Long) (01/06/89)

[68 Searching All Directories on an HFS Volume (10/88)]

This Technical Note  provides  a  simple  algorithm  for  searching  all
directories on an HFS volume.

Changes since March 1, 1988:  Previously we  stopped  the  whole  search
when  we  encountered  any  error,  which  caused trouble with privilege
errors  on  AppleShare  volumes.   Now  an  error  will  only  stop  the
enumeration of a particular catalog.

---
(This file must be converted with BinHex 4.0)

:#P41)$!f1#jcDA3!8dP8)90*9#%!N!3L[!#3"(F38dP8)3!"!!!L[(*-BA8"!*!
)!KS`0MJJ8f9KFQ0S)%&XE#"%DA*PBh4[FQPPF`!!!`!*MFi!!2fB!!NGVJ!$A0`
!#BGD!eS""J!N!!%!N!-*(FKA6e*%68&$33%!RdV!kjpr[Z)!N!BmH!#3"L)f!!$
'PJ#3"PMQ!!`!L!BJ!)!"!",qq`IJ(lq##AFJ!J#2BN)FI!!Jd*L`Bd+%#C%!%0P
4J$B"+2k&qbG13$i"4JBF+B"L`%-"(8@56'J5*F5%C$SD$%"8k)N(%!ekA&S53)B
!N!#@!Q&+Y5T6R"d!B'@D`Jm!'!P$N!!!i!!!$`$arXN$3%pY!'(q`LKXZ*!!SG+
I6%8B!`!KB3#4!Y3#-#'iVEbhF6h@CEJ-!!B!M4m[GB'R39m!+9`48#DBm&V$Ea8
$5*!!d!*2$J0`"QKJ81$SdJ9C"dc))1&PS3d8c!DJ'd!&!%hU"9Pf`aJSHZ9#2"J
al`d1H*lHR,RGj3%0H*qQ@'"bkmHC"d&825"#Kd1*)aJ+`"Mc!!Qp0e-H@0&bldZ
E[Ujlrel3"m3,&@f%NBBE+Vc3`&5ZN3D!D48NF%FDG+!"3K0j$!'&%##3!2%'#%+
8FFD!$359)'bVYCD3!)+QPEJELNl*mim+!YMb`JQ!U!&+0DqXm8J)mN!JcbX[`!2
0LV!eC!d!-`cJ#`!00"(%%8PB''8%!Ic$"`CprEDDA+k9j4X!-BaJ!`ikJ!$#&'@
%)FFBD!ai"JK"X-%'#%5N)8FCBp$aKKaTP$%(#'qi!8)BJL*Ka"3J@2%''h@d88B
$)1cQTCB0*04P3VqeJ'BCJl)aaaXk**!!K"YcT%%'Tdf%-FD!HXk""JXJ8)%'TdD
N`3DUK)Ca4KPb0*!!"J!5*$3TE`lJp*X'`kD3!%!#91#*KKYTM"('R%km33HRBYT
3*TePA#Y('`1k#F)9EE,C`"Z5BZV8XJR8HZZCHFaaE4XJT2&R%(QQBFHMPJUV,Jh
,0XXQY0*5Dbff0Yb`EDeZN!!KES5F5L2%VA2-83BC)"Lak+Pb6&2TT9qZeLpCkVj
`"CpdA#ZS'(Q%UN3Dp"V"jm9X%-VaXN6J@8BEB[!+JJ`c`"T$$MM88'QkAfT3"4a
NK(%Y'D'bQqUD%XBJ00%iI1c[PbK)8BBGpPi-!XZK5K(Y'Kc@E1Hb6q6j4XpbJ'#
eh&KV6I+A)pIfj@mCB0I(!hIF%XS$+&!!a$cIp$$!&d83)FmR1`Jj-SZV8B2dEf$
)DQqXcK)m,3M9AJX#((+m!IDTIiB"3UPY`2(ZY'IX#5%Dp*UajqTT8LhZY(-kI+I
E-rmCk+#&(JU#(BXf@SB,GJr,cK"S%,VVRk@k-3DZ9-Yp03jNQJR&R@#r8FFFE13
"`KfFb[X'((#)$I(jD#bDIZjX`Pq'S1L$F2mBiV[KVGL%-Kq[5LF(@0fKA"+5e[M
F9lSkL1&G$iV3k2J%YP[Y5Rpb)+$`""8%pYeU#Y'ldr'5jkJjZ-"-eES$m6")`22
CDNk"+YrUp!3(%,c[IXU6Jp25-,`hQ'&3Se-6(D*9KjV&69TdQ*CdQ!H!XC!!a5#
r1F#`%1!!+$*T@!kSiTFf-+c9-'4%#iT0hM!9J&+Nd)E4Sm2j1"@pI3%4#Ah5SHi
+PM&EF@S+mCSAV#!%JJ#CVfFJF)21+UBQmqN*GfUUhr[Da+Y%SX&mYSZE'HaS3M0
G)3K5F%)5R(#%E@RZ6p*D'DG8Ybmj'"*QR1)IU4SP,Y+piAS9!j5J9'I%#b+28Bi
k)3L1F,p'bXPmFfKI'0EJ*PMP3Aaa#i-(SlA$iEP+I'c!@"L3!'FU41V1$@qkha"
&H%[Pc3&@GbUIZ!BNVc4KE(L6T0MBbM"133866fQBj"JbC#Fmk5Pi)%$"(-,J+(V
qlTlQ#m1IhUG-ec&cL)'#eHd'K-D)2G"2&X1BlD,*UfQN!&"a'eiE(cBV%#a3NJ1
5+#9G+-%T*,&KDX+BZjEA!$F!LcEU+J-$V0J'[9%+"EZa+3#+8B@'qD`*KpUM6r%
JYS*jbSBEqX+&H%Q(PBl+GZH$*XEZ4)Fkb%&3!iTNJ"!k5c')6ifm!d%kr54,)(j
SAi,UCLl0e&11JF"38i$9qrECcfX0,!eaU!1RBQJqUPU9929bJeDEfG@[LR@N$(h
I'+ak*rrjdjjlbJ2c)K8X!1L8!hScM3TdZTSbj"46!NL%V$M9KMI)#`5U4'ZI((Z
(-"Kb3aCc*"$TF+IddEB1HE)UTcBA33QTlRG@,C8EBdXeABj@PM+%`m(mPiE2ZI+
Kp1SY%)%V"q(16lDELj!!dqUPaP"ke')HV5%YV3@S(mT,9@J,TUU@CkEMRXS-B5L
L'XmlK[6#BEePI9qU9Z8rddTSFcKB`JiDHUG)PX'!E*`QT`j*fpH#B!eP+%-0jjV
%qST9KrfF3i$NC0`frDN-H1#RkcLP)E*U9idXdjref'"DMSibYjqMVR9"d-!K#M+
`3(49'H5%aZek0hl4l+0TeHM$KKj26Fepk%$6Z%BAmPL3!"H6+aV'Pb%-lp#SIEd
BEPfmZM6SBDmrT$"k,ma2pXE+`rS,FH[HYF!0bP!'0KKE(UiP220@f,li6C-L8@R
N'Jq)8c,f8iHhDkmpGPHUeUaI$'!!!a$FDPp(2C@%mdQkEY("I(9`!a[5!1(bAG4
Qb-8dH1(-D$R6ZE`c(,0kVmHm,m)dC!e`Y@A9p3`Sh%UJR(+$YD+eB#BIm(jprZU
I8IZ'%SjYc'BS(EeNA%cZJL"k!ph3''iGYrITfJdYB$%GlB$N-$b8KE#Uh[AkR+C
2#HV%`Dk$M90CjQ0E10R&TM'HJM[1*@pAU8*JkK#FpY30qI@U!"68!2HNJeJ$`!1
[rSdC-JZ!01M8&3cI"@F0lKUGMU!)EXLKdmU`lb5bq!`SD%1&,Z3#(K*"$R@53a+
)N!##(9$m4,"C33)'U)-HJ!!'!pl$Y(2(`Y[p@e$$DqdIdGZ(PlmQM&lml*F`F!p
BZ%J&p*K#IGT!!6&mB!KL8--A[U-#&ad0M+CKem`paDQ[`ha"rl!%!24Kkh,RHYI
MRYDRHUc'BpDKMq1EElIk1()KP2`0*dpj%M#QC`N0XCpf4feBmDe[IJ[f$4hHh1C
kTN$`aK-%M1p@arX0JPh4i8pChG0@H9KBG30aV)D@Ge@[#[Sh')%06QK82YmheN!
f#QiA6@a(kFSTE41@lNBf1FVYY2)*ISf(ij2K+aF,Kck4JBP#5$J!5X"`'ZJ8#3b
[JNlA`(!mk(38$&H&6VI"F(*-A0Bf$8!6RR"MDmfUfQh#*P,2jl6k4E*HIrUeS",
2*MbKMICf0#JT`bGLS'jN*3CmG%J@XeXrC(I9i%Da!eD(p5khScS6a6'kP!AL%dJ
4KM'(e(m@KS"U4!05aLQ6C!B5G'ZR95TR!#hb4#JS"L'kj$@1`M1m8S+amJD,iP9
i-$Cm&#$3!JG&p(Yq*NM#)`GZp6iL#(U#!Mkm!PjliPE`4LrRK9*)#!*M`QL0TQY
*a&@$4JI9N!"rM`4%3J!K9#![+!!%)QFKIXG$VaF%!jJ'BX!#-j!!Hhqb3-pRF*@
9ILL3!&N"-!6RTh5r-3*)`#ZlY@5!*Q`haP"0!!9A!!*3)&!&8h$STbj*9h(UJJ'
Pi"d()!2`N!!*G%!2Rd!%p9!%p4!$C,!-mr!,GX-L(Z%#8#!&6c!%M9-&8P!%))"
a134#1mB'+#"i4%!&m%%rD+!$6"!S(q)r,GH+X%%!9S"*c"K'%'!%6P"Q8@05FL!
$09!$,NFNB83"DhJK86-%rABKAM-'h3Kf6%*cE$-&4C!!35iRDb`5!5*h"83JMJP
JMqD)*r(SMDCK!X,SF5[e63%j,5N(@F%6+UcL)Eb5MQHA)NE()M@3!!#a1)ZeH)Z
jQ('1SN2AdR&+"(+qXh,#L#D19#BXKNfXXScb#"X&N!!!cbJ&%GQ-bl)(d@JDkLJ
!01Q2!"!"#4"5)+D3!2l$N!"bd)rU5!%1dLE[JJ)K)!6UTLGZJ!)TX)`kk4'Aq*!
!!+!"#G!Kb3J#Hk#,'lPa([Pa4DH6$E!X2SN(05Fh4'Q9l()R`N3(-4P'$m!Ze'L
00RF#*p#01ZN"l"+1EHKkJMG8DAQ@$RPdTT%"p`!06rF!4I!$G@!2d@!%)8!20Q!
#T@!2F2!M36)NkMJ"'%F'1j!!!&fTNEc#Lh*5G#Z*G(&T!@1TMUXK%ZTB!Za#FcD
h9*VRH,D6KRl*!NB3"%cJMLUTNb+MNaM!,NR`3`-%!MDRDqm)Im"@N`$J!f*hH@9
)"fG)"lVCGhrhKR%iKhAB8)+LP3be"rR64U2N6keTP6)RGJA*"JF*2(db"cAARZp
j6r'j!M'`PSB*!#JJGJRJPBh8N8lcN5'RRF)(M&+TMM$JRl4jF`2'P6ZR*MdA0cp
A9N,REQZ3!*llf5"LpjPF5CeQ+#qSUC-Jd+&Nab%H-TlPU@#RCdFDbL)Li*rY1C!
!D6QM)l8#DJQG-q#IHr"qR*)rr&0%''08dk@)[HCMaACIGj)kUpP%rMP$I#*rdZ@
AIeH0MJ)&Y18&,`SE%Z#IRjPc1fBar3'G&X!ZCcQB3`8#1*UId&QF#C!!D8-d*bL
3!*`mi!1"p!E0QD"@LC9IDLDMUA%#kR(5XD@UQCUQ33(Lk3DL#D"bB*TX3+LQ`C-
f5M&TLA00HJ(-BLd'@8r`k5H9UTmXJTAeH)prDD9PJ+9aNjDDa!5&b5*%-(-CP*B
AJJ4-T5LqU)CjS)p#`*Zq#CbKZ3HHCf6[&9pXS%CU93BRm#Gfi$9Q%(YY!+QaBDL
q`CkDbJB$UDBfakE5@UBpq3DQLUTT#34ek5LY#KXjB*C[B!A-kUaT1DSNad2fU+j
Pd+b0mU[hTfYh!#[$+PmMa!BXd+3akTm*B$&U&#(CY5%(Y&f*eeVq!kePfDIN16X
MUSi[m*qNbC%F0k!IK`*Q-!G53!F)QR2[8cVNp@Jl0V&@fDA,dJ5Q8`E#L!)b!!-
X%,0kZTqQ8DCA%&*[F!HSZV+jUV0h8+jKj"G'&iLBq#85%!$Q-!#Zm9)k!!##!!#
Q%!"9K!B"X!`#!!&CDa8U!RC3)L9$3#9TaaZM-L'1#!*$8(##'+eV1`%M-#$69JH
R!J)mF'RYBd*Si!1AqVBV*VHF`J0jG6CNS%0hi!*jZlG`bbKcb`0,LNb`C,Kk+ke
ZQlKq5lHficpi'lNk@3&m'lH,qb!0Xl1Cfk56flH,kbJC0lVEfVQ+qlIAJJG2)i1
(Uj-8`,U9b`0ISdfMUj1PklPr1eDUUj-@B,Z,HereT5Z#0VY&5Ear@i14"ER3@CA
l+EdXBJ28K$'-#TBD+ae3'CVXmKpLY5HYGB@R-QeUmRX&%Ve0fJ,J5hZ,`Q+JqbE
FaLIHTNi2`Q1!G!BX*JDINll55Vf`831'BNIpYLaqkEh,!Vlhpckf53HEphL+af2
qUj-c`#CU`Ll0@QCES)dfd!8)$,kZJeq("'3Lp5jZd'i6V)iXm%abS%DX%M$91T!
!25#cp-QTpZNR-bbd%#QY"a!J!`+963V!#l)(`++d!p!E,a8$!+!&8#Ze!2!-!(!
2!3!#Ia%!F4!!Q5!!*U$&d-Q6jdJ(ICQVA`bUX#%!#G#QSJ)YG(!%1Q3'+'!#FI"
m%!-&Hd)(0FXL$T!!aK#L-CME[G$C!Hh#++j5"'MeHA0D5RP!b0S%+c!JP6S*!AT
-"cNEZRF`"hkXNhNm+K$5"$KNbAF-'`[!,%@JbGMTb$GjaMSj!JQ!*R6`a@pFMer
-!M8JXk4'Kl0-Kc63b'3F4P13!!!8-XNDSN)fj`4PF!I![,-S!#hqDJ+`E%mX)!*
F!!F[d`E*1Lj!+`)XF&X(*V-SF-`m5eXTd!*@!epNa`+kE(ElDC5X6-FYM!+r$,5
I(%CQ$*dRN!!!i%Z`i69r4*UpJIU4)*!!`RZD!&6+3pp+@mST9UDU``XLd!DDVZX
UHcCRU6U*PHhE8IYDV2fU22pX)$S*-2bFXB)+FKhlX5'E`#S3E#@EZh15[MSjccU
C"0Ma![)!#[F3"r*!"a"J$bE`$'XJ$m"3!rF!"jIJ#+C`$j!!X!)38!)Q!!U1D3r
I)!B88!$3F!fK!!KM!!QA%!6#3!9a!!LD+6Nk13#LfD6lkG,U@+,11T+dj5BS-+P
q`J)Cl#MaE"U3!-bbqr+b-6Zcjkb652#I1Q3aVQ`#+"$(,M$(GG`#2U"F,Ic&8HQ
pi0Y)i*@`DS5(m`G)%#0#,+f1)C!!!#FA"RH!M@`0cA$3RR@N6MBR!X&CP*a0Z+#
064aVUR20YZTS!JQ3!0E`XGDZAF2r*$Y[(GGP%0YehE*i,E1j(0[eh0QIMGXJ*pU
NACqmr5HRRGT@DC6)hGSL$GX+,F4dlF[#r3B`+l-fX0HD[GUHEGdS)0T$X'N@*Sb
jL!F3JYUK'F6bABQ`*Uf'f3GN`5lpm4pK@JDCEC92m"mY-1!%AZ!'IZ!)RZ!+[Z!
-RZ!XlBrrfk3PF,dC#DJJ6D!K'Bc$k%JTd+4*Zl4)(#a+c-44D`T2(-96A-9AR-9
DfaID6F3IcKXG)H*,h-3Q$X956-9)B-9BV-9DV0d!d!)$'cmY(&KUe*0$e32jqEd
RIApZ'*LRdS-![CqEr36ZQ%%P#UY$+AB9c5RM8`IpDb!4,Ud%N!!!'J+GIX%!Y4%
!DVi8!-23E,LG8!jL0NHB*SdlNceK(A@@'kfqdVS&i*Xr81D"'k)KD,3jZ@Y+0X4
R%G*!Cr!UA@BpR0*iG-"j2pGkVqHX1'D`Ic**1dB'8miLQ`hRl`Tia%F%0TIK)dQ
-m5fYUUcPYCP[YeRTMrI+I3IAF[IEZlc$QfZ@2c5R@0i$biQR'A4469VQBkf64F$
N)+!'H4HqFA-UT9A0q`4K#1CN[@-[)@a)(69@,h#"2R2#aKEU4G)4+(!!8"!T*k!
2!#!##5(H9VRXbr+1Z"EBJbh(Xm,1G)$BLYh+pY6BpRc5%CT4T[Fq0A0DiXiTj"j
'&BXcV+hFVeeQ,FIX$K0-0F2YZBE#BLkF65S$c!k#rpIY!HJdDef!ThCri#i(mI-
''22IqmN#C[VV+&#JFHk'E!#(*Hm$2N!$&f8#0iF(-"!$&bAXFY2K(#qYQ$U6rU%
#+qT'UZ-l#fmD8A2R6AqH[S13!(NJ9'0`*kKEX#,r,N%DP((MmLbb!G6UFFk06bZ
3!+dZp`%8h+%AUldK6I1PAY,J'fKp2MQ`%30LPj`4(CVJ1r!6URTrCD'ZKD(TLh!
+UYp,IhNc2p#ZGr2GUI-m$`)q$`0!(`2+QDdT32D`dIFRLXiXiUDLZI49hk+hi[P
K0*(-I[S@D%GDcrADC'5e&rEHdZI5bU%`,*!!0mVf68VEVCp+L,CTT`@!lq+MHDq
1DElQEGi4(+f10f#@DEVfDKR`JEAe1c2llm2RpdITR"Ie!-!"bl,I*qhiIMrXHCV
m+DZd4jI%0RlL1DlL2GlL(F'D4@`1-Ti30%lL6ScM+ElM+bjVE5ha*l"Q$L*EG(8
&$6Jk0!#YcPfk!`$VVYh0KD2e'eC"fm%eI@5BT!rG!R`5MjS!0*N'@XLI610@i-S
k-6!J)2%XN!"$pbH+N!#Cd8"halXB1L8e4$i(FHNrG3D)(#XjXcVDakS`!hPJGk5
D&LBZ3Y)jZ@`p4P#-0*!!GHTDcF'42Sq!i9!#R3)+'%iU-&V5jm-GX4N(*QTFLB0
rrir(XELYPE4Z`Sc$BZc2+UM"qjFDZ#!fQ')#m$DX`Bl`($j"!X!1EH!HI))K8!m
HJ"#3!!IRi!X3J5G!(N34%CJ(Vk!(*)"30)T+d5P+4I-!&Yb$Ah!()%!-b!!#!!T
8!J&`#ak"k)-01q!,L-*45!T,S5NmKDJ`&DV#8GJ!F!V)q!fKF"A+`PP)#dpK!fJ
HkL),e-*Gb!Y9iB43&Dc#[h#1Zd*(3SHIB"I`S!(m"XN`,(D!&[N09'"BA!%XJ6I
-A3)J!#1!2h%!#IKUq0-"i!$C-!!`!FZL"!a#EDJ0j`i$V)##J!8!!"%SKbAK!@5
&!2!!N!!#2E5(pE!Jj-0lU!raS6rXK`#4(r*$[j!!$`A!!iKD"T%3"-3XSK8F3#%
S#!a4!$L!33!4bi*%R!K8bb*1a)TB%"E!!ZL)(c%MPJ3(S""&SN3XL3a4*)T%[q!
43D*,$!!Y%5D'a*K)%fHL643+,C%PhN5Cq"*VBNrFL6k4*`V&S%J8JD*4r)P)F5J
H4D@B&)YL8`b*+C%KqS@S@"DBSP9dLPGa+@,&VDJ9Zq*6r)TC%5ab4E(S&F1L@4b
,Cl%XSX@8L"EESPTmLf3a,UC&ZHJ@Af*%h)JVF3lUaEh)&rZLArb,J$%`#XE"5"J
,Sf%mM)Ja-5V'a9J98!!#)!ICm!*B!@i)!&L!Z6X!*#!ETS#0B!G)!P+`M2d*!Q4
$!6!@'!!6-!K)B3I`T`6!!%BM@1!"Ta%!)!8P`*m3!$iBM@c!XX4'T*!!"@SM2"L
0H-!GMN2C#!$3J$G%!D14&`!!'V!E!F!Gm)De5bY8"",3(!f"0fb0"i%#4+IQ@!Q
m)3,)KJ0!#ZK'e!J!5)%ha)B(`3X!!'0%(QH"0`3!i"%60*(Q+!ciN`(J"q"41FU
!jNJ38)!"Z)hmU6iDJGLB%-#"0f3"f9!$0!,+L"3-T(qN"pQ3!!"X3p0S%"$11l#
2[a%!%!#FSJCL)`m3'Ik4(84)54!!+-"`I!!")!RB4h53!!e43%BBN!!'SBUd3rm
)'3&!!C!!"CCP#4J%)a!!c)"p"!ICX!$iJJ$!#jD!X!J!V-!qFS0XH!$d3)id##S
J!1J#qiJ0Q+4ej!B$)%B'!(*J(kP"0N3!BZ"*!J!i%!$@JRq%"Pr5$3J!5U!MbB)
!#*2qN4PN``@!%aK!Qi34F-!q)S-j@4EN3CCdNjV!2K+$E+Jhl+4"S*1S`$i#!d*
C'ea!$$L8!X!pqNGH3#LIPJeiP'jb5IK(A%!Smk5Kl!K9j0`KJ@`)!QLMZlX)6m3
rdJ*#53X#!"$iNf@"4rT(@*!!$4X!24#61!!!8)%!i"pC36DXLQ3!9J)!4X!V$3!
Ub)B2)#KmbV+J#BSP+8#@HG)&Y-QbJ!U+*5K!PTj!6#B%@m!V$`!6L"3TN!!bIN4
Zk4mj3D4i!-`!!1!!62N4Jd'aa!54!J)3!,,!,J%!-bL@P#"H"JX08#q[3E'%"2(
5-RU!HLN1LL8ML*Hd%328bhC3,"&"[!b6(+"HiS0L53MLT9F)HSFb!'4*r`J)iU8
VX#cXNQS95ci3,kFN%!LC6m%rpL#q`1iXS9))!#5J@cDD`C!!%8iP!&J!-,0BUT'
GC"NMjXYm!Gf5#%3+%a!+a'8!!*VqXBEX*$8!-M1Q$LL@Ff)RfB%Q%M+,3,'8%$X
T8#V-M!N&LLA'f%NiNJ+%c#e3,-&!T)J!Hi&ICN`c8#bj`0PdN!!KmiVj4bb!8e#
!$iK1)C-2m-S*!!U'jM!B$#(c%"4,+N"Ce#-$#*NNdMmq3!R!0$(Qc3`!RD"BINY
J%5J2CmDXP[i4#9!@%bF#3ZBX+*C#%eJJJj%3-SHNI`3#N@)#p)9,Q6'63E(N!DR
6#!!!'4!bU8'aa!'T-cMUJ*!!q3f+*3e)R6K5EQ4-G4!!6S!D!!HT8aS!!"83-ZY
"m93$f#"e2J3@`#j9Jr'N"T'#!Z!8(e!pFDEaK!ECddFk5NKT!CiR-mLHP#$m9Fm
3m$b43ID%"3"!H0j-!F!#RLFab*j$SR0#bK[`2)&"pP`,*+"k#S(Rb3XL438`$CC
cIMB"ALN"5)!"GAF$%e*LJHG*#`cS92#Cmh--2%pBB%#j3,ZVRQlJHE)#!qS9!LL
Nc!22%a8B8&%!!*a!p53%cj-8'0#+B$Rr36-3!)q!9b)!KkN9G)-&U*GD!39-!"i
D!)*R[D56aY0F,SKY+$mrSJ83!-B6ALk)Xd!%kQ8)J+*U)&mZ#%"3'HXP#m#L!(0
"*-QYH6-"`!h!SJGc34#$p9J[K3!@jD%53!8F(%aC&TS!&L8%NI&Z,NX!X!@`+##
)M,6a8bD%0)!5$J!2b)BR!"Y3aV*!5)dR(iL-MJ!!8)"Tk4a4JJ6!!*'4KAl+MeJ
),'Pd[!!I-i+@88KJ588M!,J!k9*rPY&0B%Qai`9`"ard8%SY5rSG(80I%+8I-4C
B8[5)!9a!r+bA[-#5`NI(i!6QU#`p"LJK!Z"(aj!!'jXS!*!!"XN83')!4Q"-bfJ
h5+B3dM'SJQVk%G&"-Xf3!"KJG$V6HC!!6%@NBd!(h"3!q)0NbL+GJN")S$Jc!56
6'TN"JJ8m,C(*&%Jk"B4c-M2Q"dLQ5p)T'-k3!!NM8%!%U**1J@QZbiaC!j+TPh3
+QM4N!S&NLLDG`XIXTipc#5461HN8B#Rhc*K@)*RZbDYN'9RRi``$bA43AU8`H8r
C3$*GP&I*T8L!N!"j"e##GSb-`I'H#J+8-!'@D35)&2Hd%5465RP+Q@M)a!6*P&C
H*9bJ2M2Q+%LQ[[)U@BjlkJU5kE'm5JC5PH,-A*!!6*mP!0J!1)'-iNaLN!"-Vq9
Ae3$m+@3qJf6+#E,K"SJqD[0aRJ5$LJRFUJF9U`'J(#465Z"@kF###*R`)*P#!VH
U#*VQip`(bC34Z&@e-clRT`&)TSM!VDj4,e!p)d!baD2K$i*@6`k3!%crD2LE#[!
8LLE64aVqaL(YK*3b)*RLJ@c)!8TSpH`"bC31X&B@fN3&!"*)TR#!YGC(%cSrTd!
bC31X&Ippe2RT"C)T'XL'(D!d9Np#LJ)N!"&BKad!,'"81NN(NLNB3+i+-E6qJ@6
+"C!!De4JRT!!8K%N8bb!A+GNA+@6Qp#J8J(NDMQN328%"FN8#Q4$$f!#ZLLNA!A
*P!R-9r')5f0%-Kf9"mG69XpJN!"-LF"mc3L1mb-ZJ!&J8)(!I%f5jh9"-0J)F%J
2cPiiV@8d"%aB($"Im8%kC3%6PJCN``q!31[P$CL`-'$%ZVX)+`3Q,))%!"rJ,&"
2@GS%*LabK,('%Ci#!#``B62M6K)*Z"3!M!%'+`%iE%(J"(p9PVS""MX"+QS!!!X
k0Jp-@"!`BPI"%UZAK)$*JX2i@4Cdl#0JXTJdIU,9"!X!0!'6T3$Vm!&Xdb"E#SM
XHLd)hX#`IN4B`'!T!!PBK`bJCY*4!,!,Q+`T$3"RJ3(X!9QD$*JXHJ3"*QkKPP&
U`'5(+3L)Xc1fM(i$)VY-03!AeE(UJ-J#b""J'Ka![D`(4$DEGS!mk@NcjN&SVKN
b"-J![*Na&fac0DF53#6F8`Y!C0YT#-J)CL"NDYMQ@L0$J$L`Vim6a$CAI5S#bN*
MaCNRYVN'e!*JiZjTLffZ#&8%L)3QURk)l%10!,UKe$j1(YYF+kS)Q*T3)'31fHE
+85f!2fLUMh2*0YH4+J*qEEM0Q&+fZDV8%E"UGfI'c,,0&DBk'MNE!,jXFb@U)b!
imS#3!'PQQbZRK)qd!!#B9*cCCT[VUS5aPcCNdYRQUP4(J$f)TBqcccEAU%S#(N-
9cCM'J-KH94,J38e!b)`'40DVNS#S09aa*TCXVQD9"!!$Xa!bc`'4EDY0j#(BfmI
T*jYVAE8Xf9*XCXaq3'6jk[3aPG86!4$C`6TpFZ0d&3!6J-JU9Yr`%'UV"b#bNAA
kT-X%+`"5!*(&V"pJ%ML'kNN$L+aR03(D83K8cap!C%QV#CL-*KG5+J%LL`I@i3"
JGeT9!&3"*XX0eU%%f!Kj&```@3!C!*4RD&d$6"BCV--!S!jqDB`8!(D!b"jA'1Y
A2b@-`,F5J!aN3a0`ETd"V"3!VS$)AYH$!%X93*XX#(*dC!3!fXJ6H%+N5!McdV,
Jb0BV'dFRl%d)%8!bF)5Gj#0[,l#J!KfK0e`!Y%Tl,m"C+,i+-5(d"Jh`#MU#JZJ
!AQ&NI!"U1M*!3!&`[JN""'b#M[!4!8!)3'*k)`6Nb9FM!Sl[V'PhaR&VL)!Mm@T
'3'jX[ihheC3!'p!4Y12d5C,C0b'8J)H3!"!NJ`R)PV6A"+5$M[!E)'#kI$8m)$J
bJJ*!"J!QG!!!!:
---