www.digitalmars.com         C & C++   DMDScript  

c++ - Bubble sort bechmark

reply "Javier Gutiérrez" <nikkho nospam.hotmail.com> writes:
I have done a simple benchmark using a bubble sort algorithm with diferent
compilers.
All the tests have been run in and AMD K7 at 1050 Mhz using Windows XP Pro.
Here are my results:


COMPILER  TIME SIZE COMMAND LINE
C++ Builder 6  6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c
CoderWarrior 7.2 Pro 4647 36.864 Within the IDE
DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c
Visual C++ .NET  3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D
"WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4
/nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO
/SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj
Watcom C++ 11.0c beta 6209 39.424
WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c



    Why is DMC performing relativelly bad in speed terms? Have I set up the
compiler switches correctly?
    Great executable size achieved!


-
Int.c ----------------------------------------------------------------------
------------------
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define SORT_ITER 10
#define SORT_SIZE 10000
void TestSort (void);
void InitSort (int gaiTab[]);
void DoSort(int gaiTab[]);



void main (void)
{
 TestSort();
}

void TestSort (void)
{
 int i;
 int *aiTab;
 clock_t clkStart, clkStop;

 printf("Testing Int -> Bubble sort ");
 aiTab=(int *) malloc(SORT_SIZE*sizeof(int));
 clkStart=clock();
 for (i=SORT_ITER; i>=0; i--)
    {
  InitSort(aiTab);
  DoSort(aiTab);
      }
      clkStop=clock();
      printf("%d ms.\n", (((clkStop-clkStart)*1000)/CLK_TCK));
 free(aiTab);

}

void InitSort (int paiTab[])
{
   int iCont;

   for (iCont=SORT_SIZE; iCont>=0; iCont--)
    paiTab[iCont]=SORT_SIZE-iCont;
}

void DoSort (int paiTab[])
{
 int Swap;
 int Temp,I;

 do
 {
  Swap = 0;
  for (I = 0; I<SORT_SIZE; I++)
  if (paiTab[I] > paiTab[I+1])
  {
   Temp = paiTab[I];
   paiTab[I] = paiTab[I+1];
   paiTab[I+1] = Temp;
   Swap = 1;
  }
 }
 while (Swap);
}
Mar 31 2002
next sibling parent reply Jan Knepper <jan smartsoft.cc> writes:
I think you have a trade-off here.
You run full optimization, and that takes time with DMC++...
Now do the same test and remove the optimizer switches from the compilers...
Jan



"Javier Gutiérrez" wrote:

 I have done a simple benchmark using a bubble sort algorithm with diferent
 compilers.
 All the tests have been run in and AMD K7 at 1050 Mhz using Windows XP Pro.
 Here are my results:

 COMPILER  TIME SIZE COMMAND LINE
 C++ Builder 6  6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c
 CoderWarrior 7.2 Pro 4647 36.864 Within the IDE
 DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c
 Visual C++ .NET  3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D
 "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4
 /nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO
 /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj
 Watcom C++ 11.0c beta 6209 39.424
 WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c

     Why is DMC performing relativelly bad in speed terms? Have I set up the
 compiler switches correctly?
     Great executable size achieved!
Mar 31 2002
parent reply "Javier Gutiérrez" <nikkho nospam.hotmail.com> writes:
    Hi Jan,

    The times shown are execution times, not compilation times.


"Jan Knepper" <jan smartsoft.cc> escribió en el mensaje
news:3CA704A5.2AC65F61 smartsoft.cc...
 I think you have a trade-off here.
 You run full optimization, and that takes time with DMC++...
 Now do the same test and remove the optimizer switches from the
compilers...
 Jan



 "Javier Gutiérrez" wrote:

 I have done a simple benchmark using a bubble sort algorithm with
diferent
 compilers.
 All the tests have been run in and AMD K7 at 1050 Mhz using Windows XP
Pro.
 Here are my results:

 COMPILER  TIME SIZE COMMAND LINE
 C++ Builder 6  6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c
 CoderWarrior 7.2 Pro 4647 36.864 Within the IDE
 DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c
 Visual C++ .NET  3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D
 "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4
 /nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO
 /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj
 Watcom C++ 11.0c beta 6209 39.424
 WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c

     Why is DMC performing relativelly bad in speed terms? Have I set up
the
 compiler switches correctly?
     Great executable size achieved!
Mar 31 2002
parent reply Jan Knepper <jan smartsoft.cc> writes:
Sorry, Which version of the compiler are you using?



"Javier Gutiérrez" wrote:

     Hi Jan,

     The times shown are execution times, not compilation times.

 "Jan Knepper" <jan smartsoft.cc> escribió en el mensaje
 news:3CA704A5.2AC65F61 smartsoft.cc...
 I think you have a trade-off here.
 You run full optimization, and that takes time with DMC++...
 Now do the same test and remove the optimizer switches from the
compilers...
 Jan



 "Javier Gutiérrez" wrote:

 I have done a simple benchmark using a bubble sort algorithm with
diferent
 compilers.
 All the tests have been run in and AMD K7 at 1050 Mhz using Windows XP
Pro.
 Here are my results:

 COMPILER  TIME SIZE COMMAND LINE
 C++ Builder 6  6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c
 CoderWarrior 7.2 Pro 4647 36.864 Within the IDE
 DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c
 Visual C++ .NET  3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D
 "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4
 /nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO
 /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj
 Watcom C++ 11.0c beta 6209 39.424
 WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c

     Why is DMC performing relativelly bad in speed terms? Have I set up
the
 compiler switches correctly?
     Great executable size achieved!
Mar 31 2002
parent "Javier Gutiérrez" <nikkho nospam.hotmail.com> writes:
    I' am using 8.27.5


"Jan Knepper" <jan smartsoft.cc> escribió en el mensaje
news:3CA706FD.A89EDE17 smartsoft.cc...
 Sorry, Which version of the compiler are you using?



 "Javier Gutiérrez" wrote:

     Hi Jan,

     The times shown are execution times, not compilation times.

 "Jan Knepper" <jan smartsoft.cc> escribió en el mensaje
 news:3CA704A5.2AC65F61 smartsoft.cc...
 I think you have a trade-off here.
 You run full optimization, and that takes time with DMC++...
 Now do the same test and remove the optimizer switches from the
compilers...
 Jan



 "Javier Gutiérrez" wrote:

 I have done a simple benchmark using a bubble sort algorithm with
diferent
 compilers.
 All the tests have been run in and AMD K7 at 1050 Mhz using Windows
XP
 Pro.
 Here are my results:

 COMPILER  TIME SIZE COMMAND LINE
 C++ Builder 6  6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS
Int.c
 CoderWarrior 7.2 Pro 4647 36.864 Within the IDE
 DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c
 Visual C++ .NET  3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA
/D
 "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy
/W4
 /nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO
/NOLOGO
 /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86
Int.obj
 Watcom C++ 11.0c beta 6209 39.424
 WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt
Int.c
     Why is DMC performing relativelly bad in speed terms? Have I set
up
 the
 compiler switches correctly?
     Great executable size achieved!
Mar 31 2002
prev sibling parent reply "Walter" <walter digitalmars.com> writes:
I suppose it depends on what code is generated by the other compilers.
Here's what DMC generates for the critical loop:

_DoSort:
                push    EBX
                mov     EDX,8[ESP]
                push    ESI
                push    EDI
L97:            xor     EDI,EDI
                xor     EBX,EBX
L9B:            mov     ECX,[EBX*4][EDX]
                mov     EAX,4[EBX*4][EDX]
                cmp     ECX,EAX
                jle     LB4
                mov     [EBX*4][EDX],EAX
                mov     ESI,ECX
                mov     EDI,1
                mov     4[EBX*4][EDX],ESI
LB4:            inc     EBX
                cmp     EBX,02710h
                jb      L9B
                test    EDI,EDI
                jne     L97
                pop     EDI
                pop     ESI
                pop     EBX
                ret
"Javier Gutiérrez" <nikkho nospam.hotmail.com> wrote in message
news:a86p82$1m3o$1 digitaldaemon.com...
 I have done a simple benchmark using a bubble sort algorithm with diferent
 compilers.
 All the tests have been run in and AMD K7 at 1050 Mhz using Windows XP
Pro.
 Here are my results:


 COMPILER  TIME SIZE COMMAND LINE
 C++ Builder 6  6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c
 CoderWarrior 7.2 Pro 4647 36.864 Within the IDE
 DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c
 Visual C++ .NET  3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D
 "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4
 /nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO
 /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj
 Watcom C++ 11.0c beta 6209 39.424
 WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c



     Why is DMC performing relativelly bad in speed terms? Have I set up
the
 compiler switches correctly?
     Great executable size achieved!


 -
Int.c ----------------------------------------------------------------------
 ------------------
 #include <stdio.h>
 #include <stdlib.h>
 #include <time.h>

 #define SORT_ITER 10
 #define SORT_SIZE 10000
 void TestSort (void);
 void InitSort (int gaiTab[]);
 void DoSort(int gaiTab[]);



 void main (void)
 {
  TestSort();
 }

 void TestSort (void)
 {
  int i;
  int *aiTab;
  clock_t clkStart, clkStop;

  printf("Testing Int -> Bubble sort ");
  aiTab=(int *) malloc(SORT_SIZE*sizeof(int));
  clkStart=clock();
  for (i=SORT_ITER; i>=0; i--)
     {
   InitSort(aiTab);
   DoSort(aiTab);
       }
       clkStop=clock();
       printf("%d ms.\n", (((clkStop-clkStart)*1000)/CLK_TCK));
  free(aiTab);

 }

 void InitSort (int paiTab[])
 {
    int iCont;

    for (iCont=SORT_SIZE; iCont>=0; iCont--)
     paiTab[iCont]=SORT_SIZE-iCont;
 }

 void DoSort (int paiTab[])
 {
  int Swap;
  int Temp,I;

  do
  {
   Swap = 0;
   for (I = 0; I<SORT_SIZE; I++)
   if (paiTab[I] > paiTab[I+1])
   {
    Temp = paiTab[I];
    paiTab[I] = paiTab[I+1];
    paiTab[I+1] = Temp;
    Swap = 1;
   }
  }
  while (Swap);
 }
Mar 31 2002
next sibling parent "Javier Gutiérrez" <nikkho nospam.hotmail.com> writes:
    Attached are all the executables compressed using zip.

"Walter" <walter digitalmars.com> escribió en el mensaje
news:a87f9l$20q3$1 digitaldaemon.com...
 I suppose it depends on what code is generated by the other compilers.
 Here's what DMC generates for the critical loop:

 _DoSort:
                 push    EBX
                 mov     EDX,8[ESP]
                 push    ESI
                 push    EDI
 L97:            xor     EDI,EDI
                 xor     EBX,EBX
 L9B:            mov     ECX,[EBX*4][EDX]
                 mov     EAX,4[EBX*4][EDX]
                 cmp     ECX,EAX
                 jle     LB4
                 mov     [EBX*4][EDX],EAX
                 mov     ESI,ECX
                 mov     EDI,1
                 mov     4[EBX*4][EDX],ESI
 LB4:            inc     EBX
                 cmp     EBX,02710h
                 jb      L9B
                 test    EDI,EDI
                 jne     L97
                 pop     EDI
                 pop     ESI
                 pop     EBX
                 ret
 "Javier Gutiérrez" <nikkho nospam.hotmail.com> wrote in message
 news:a86p82$1m3o$1 digitaldaemon.com...
 I have done a simple benchmark using a bubble sort algorithm with
diferent
 compilers.
 All the tests have been run in and AMD K7 at 1050 Mhz using Windows XP
Pro.
 Here are my results:


 COMPILER  TIME SIZE COMMAND LINE
 C++ Builder 6  6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c
 CoderWarrior 7.2 Pro 4647 36.864 Within the IDE
 DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c
 Visual C++ .NET  3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D
 "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4
 /nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO
 /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj
 Watcom C++ 11.0c beta 6209 39.424
 WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c



     Why is DMC performing relativelly bad in speed terms? Have I set up
the
 compiler switches correctly?
     Great executable size achieved!


 -
Int.c ----------------------------------------------------------------------
 ------------------
 #include <stdio.h>
 #include <stdlib.h>
 #include <time.h>

 #define SORT_ITER 10
 #define SORT_SIZE 10000
 void TestSort (void);
 void InitSort (int gaiTab[]);
 void DoSort(int gaiTab[]);



 void main (void)
 {
  TestSort();
 }

 void TestSort (void)
 {
  int i;
  int *aiTab;
  clock_t clkStart, clkStop;

  printf("Testing Int -> Bubble sort ");
  aiTab=(int *) malloc(SORT_SIZE*sizeof(int));
  clkStart=clock();
  for (i=SORT_ITER; i>=0; i--)
     {
   InitSort(aiTab);
   DoSort(aiTab);
       }
       clkStop=clock();
       printf("%d ms.\n", (((clkStop-clkStart)*1000)/CLK_TCK));
  free(aiTab);

 }

 void InitSort (int paiTab[])
 {
    int iCont;

    for (iCont=SORT_SIZE; iCont>=0; iCont--)
     paiTab[iCont]=SORT_SIZE-iCont;
 }

 void DoSort (int paiTab[])
 {
  int Swap;
  int Temp,I;

  do
  {
   Swap = 0;
   for (I = 0; I<SORT_SIZE; I++)
   if (paiTab[I] > paiTab[I+1])
   {
    Temp = paiTab[I];
    paiTab[I] = paiTab[I+1];
    paiTab[I+1] = Temp;
    Swap = 1;
   }
  }
  while (Swap);
 }
begin 666 Executables.zip M1=8PVCT,,) A,TD 8B1DHI,8S,,98("!&1 Y/T D"?&1 P B4CBT$T>F\<D M`SHUG7&CJ[ONZKIFHVYT=77W<UU"U A,!!(?2U C"6HP9K7))(J)$D(><\^I M[N&5^%W_^W_W_O>_]YNDN^MQZE35J5.G3E6=*N87.!B681 E/'X_P]0PTL_& M:[AB^]2'UA<5ZXHW%:_AN<+[RXHCPO5,; [#S&.#F8U77[($\'8PN]AAK&(D M_">5;&&8IT.9__)?YI+%"_L\6""NO]R!'Q3YOFEKBPJYPOZR,BIX- V&`VK4 M39^9MW!)KASP/#PCY08:`C?M_HJ*OH"ZH<3H:]>Z:?;BLO5K^FE \WWB!GQ9 MS'___K?^O>^[M =^??Y.[$X>RCB>/$9HSU^45ZI\WL:('T&(\["RQO8LP]1B M7Q._AQ>I%WNA<Q$O:187H;]YCK 6OM6MV\Z+'1 3UT8:ZCL4<2WU'4$LOJCW MN9GO+ECA]= 8X0B4;^D2TO V]G+/<PA%NHQ'!&U:KG+'"&>=TMS&7Z ^PI^] M=Q7B%&8IB8KD*DFG[RNIOOEYSG-*SW1])/E*6*S7$J6^YNQ+4)[H(%K= GN\ M ^F%^2T+T3ROV;\$$I*FZCHNV-GS<66HL:[S$):A=)CSWSW.:]J*X+>Q:_FC M>O;;&,,98ZM+KT^;^C[ KE0+$<WPA6)I?0KC$1*!H4+$81K&682'(PD%,%^W MFKVAJRFYL+[.<WIHW0YQ'V A"G"$0^.3(.=A_3W8`OEY2YWG5.0TD% I_ M0 M CR)"I*H)UW !:L**.Z\6D14 QA$#I(4>"7ZD\;J.DW5Q3[J"A&Z-RCI;.;O M;97!^]!M...:T-](M&$Z3= (05H;LRQS<?;"^;KLN[,G3TZ(U^7QY5,7KWVH M6%>QN8(K?FB:;M*:.%WV^ V;[6L?*.5T]V_6Y6^^O["B>(IN=OF::3JC.25E M:KS!8)BFRRPKTU& "IV]N*+87EE<-(WR.S1^BS!*3 2YX,_6TG99M'09=#G! M2M0TA<KY;P,0)A3H< F0NQ=$&/W=]4HNTO6!X]^]+M%5'J%FW\&DKAD1!W21 M0*0N\5XU97X_%^TNB7"<Z75]Y8+O>TK2Y5H5(?X!E(7N&6H=%UR++"9L5X=] M!\4AV]52B4 ++=' _NR/. ,1P=^"T[NW`YQ0O[XZ-I$O2 NQVI !KXQEF'T( M`+UJ1+5?4]T%15O'3O-'S7H<H UW ![AC]H$;F/K/ _VIJ ?WK9AV'X((PW$ M^\=?06B]J)V [5^R[ZF7D42E2D!3LA<]$F/L^PT-K^]5N=H !,JU[QD)<AX4 M`M%Z`$/$IZ"X).(^"? ^K, =>J2L.WK?=$#AN M?3$'H0H,YE/U.\R''T;C C&N<T <%XZAW]5, O%EWTH(`+8Q4WJ7+O\/&_,. MOI92FKR]\LU^BJ&;=!'K<D A/G0[%'9J$3AKD!,I^^RA8X 0A82J;N4TI,78 M+A9=\?O)6 P2(F9)TDA#FHW=XER,,&&08/5(A= L [P6(Z?444Z1A*U0EP], MF1PF9E!TT1"1+_,X_6&_,)['QOP=CG:SAIGK-;M^B64YY?BR1\B.=%Z&H>\` M#GT0\RB/0G6U5IBI-I_8&"S,G&1L]VS4"5KSL<J1YI.5"O*18%.9N_CS9'6D M;RX!R-71V7%'R>IH9Z_6'NN)49'5:C**J'#DGJL4<E4D7T56J$B!TC?2OS!& M3ENNU#RZ"VN6.<GLU>S:"$[?K5 1\*Q#LF3J`('Y(\VC*Q%J>XPP(]K8ZEG( M7OJ>U)M[*B:!/ZZ'/6+NV1A\ $JJ(+9-T'8WL-PT9Z^?4T')V);9_#EA!F88 M;"0,DF>Y4E :/0>$(ED:;;Y2H4I;H*T,( NT:0LB\1M)"9:?1QKVXD!E; >= M(<+<8 \C7L *I-Y%(#I0I+J="X9&\(60*#K<U7%!0"1/ <[9,*4IZP=DDJ:L M,]+GG/3IP \IZ!&R/B8%5YWB%%+0011-2 76G;3 :"_U*=2HE'JG]?U7 -MX M5*F>1K70. ^X\#H_S MK21;HL4ME_Q^* SZT ')Q"<G0 U;1!-54U O`L6U08CV9 _3]YC;*D*,=5(. MSCI+FB+ %2):H*;FY HE:=9?)XI /W2^_FA#G>-,%U% )9^JFX!]6M;)!OZ, M==ZA^JGSG!8UMEP XL*F1* P=0RF,22[$CT3=<K9I%LK>0,(=EJR:4"5I%< M(LGQG?Z]VZ_\L"V<*GZ=Y=CY<K0P$4 HMJFZ>YO*V:A>6-V]M:?:OTU#H5 3 ME:CK>12++ 9-H%IL\,%7`*MG61!I >3UIQ6W-=3W*$B]1WF-3O9[<)[10R<9 M%Y:H(*9#B M=N*XZ<GI$9==]OO%MR"&G+OW)OR(_.">,.)/H$.<Z7&==DG.HTI7%#J$J,^ M]0ZVO$1'SI(:7)017[[ ]X-X&2_YG $?J0?_*#K$U4S!V>%IR,\'K;S7 +.) M%4K"DKFJIDQ<DV"$;%6C+1(_H&E201.!4,+<B4[O&% P?V?L)J;$-V3-&4:V M")SFUMT-N'&!2.JK2_MFJ< VA[!\;!W;2+.C O!N0278E+1$W;8(&S\*WBH^ MPMQEUUACH6(5"F.K> 9P9I-FR/,8:9,G4/ET`/(*60%E.2N +,>"BC"*AJ-J M*G6-SU!<2OIR=Y9:P=]> TM"XDP#PSCFJ'6#H>^EHSL =&Y2 ;0$Z?,Z`!_ M523GE7!^ICM+?8"!R>)^&Y_FF!.A%12-3(1P5XZ0I21WV01[),D"H<B/ X0E M&MJY(F^6 934%2VDSA36*4DJI%>3=<KJ>CXX;5TD37[G?Y*\+\Q8YVJ3 H;P M4U4(C 3"L50HTY>Z)^4XKDW 1AA;28?K+($0_Z>=N)I OA)"/(OU]Y'I\(AB M& :]"ZGNRR$A[AP_0KJFZZ.J8$ ;`7&6<DWU!BBS&S+M]NJXA=U>!S=.&.UL M4)'1A_-Z(*5V(E% MJ"2\X[.ST"1[?;:-%4B=HH09YV2A BY5Q&N#TQ3O039 MQG+$"=.<[RK)-&')T'H^-+084$$E&2XL& HX?0B 9YZ^3&ZJ(FBJ(L]T?8H8 M/;H;5/Q8QU;]:!T_VKE5KV2V:VI1UI$._Z?^>7JE[RQB]*S4IU37;1^-C.,> MY?\4<.GF9 .+Z:I;=YR%='I,9^A/I_>=!>:(<ERIX!.ZI^MC=3#C^(I<WMT` MW/4]\+9O`22:Q&R?B1 GNI<P%.>D.3F <Y+O*\>5?+X_01TF&"LE&#T P3S] MU<$M,9A&QP:U9AU.E8Z3DXW9HW6B!;I)4S;MS8Z4NWA]/\N!YEO=NDU+/G4_ MK4(1YDB9QL\!-Z)VE\(,^-I=_&T#T:L`?: ,? -6U2"L*M^7;JUG%NOH76 ? MIWGD%UC:WC+[L,K)CMZ-W$14OAV]I=QDR3$;(B8Z>N=Q5LD_ \M&AWMNK..( MSN::&TN#Y\9J?6;')C:)-SDV*1+YN]T/CG-\P,) [GIP'(7/'P<S(M+LRA\G M)W"09MEEDUPX[RQIRHJ%&D8[KDSE0QQS8E6^+,>5.ZB3]24[KDSF1[G7Q8) M=?E<\/WJFJL UC?.<47'CW1OB>UN4O(C79<=1Q2N.;$^E>.* 1_A*AAMD_"] M1?%=`"$+;19"CI%3I.&Q>F,=.3[1'9M5U<Z%FGMPM>"[4"S-HJ4AJ$Q^`?W, MQZT49*(P"F'^*L-T`,QG$ E*-N 0J R%KEH16./!S#XA M9'?;8W5Q1V8;ZR[\Y=*QV:& /L^"P3J*?.N)F>2)C)OKGN.?,\LUES5?X"]Z MJ_Q\:-,,%?+NP7"JSI.C5$$7=T#IW>/)>U5G.)5[$9M9U<KW`#S#Q3>RTXQU M0KDJL_K\]MN-K270U12"1?_ I^& $F2.PM% <(VP(819W/I%(\M AV,=FJH2 M&[A+& YX`M5R+_+/=O1.X]G9;J/CNID;[KIXW>NZ-1 -T+[?('VQXB?<]]SB M;9?KA%GZN)/"ADEQ1X5-4^(N"*6&N%YA>6+<V;B3U:W; ]EC9)9>UFWW2&.W M$EBG2<B?1#X M'<LUNQ;"MS+,4L25=4X'9W?F.);3"6-PQ!TC9%\%542X"X>]NX2<JS!$*3MC MKV*V*D%AS!(R=9[E+%FA:U2&3*4%B!-B]*!&*2]]= F[I2>;!<4(5P5 1A#L MR6&A!XNT,%,OK=2K?'>Z,V/W*SG-0$23?2/V*[B( 4$Z=V84[5^6(GNAYI%A MA9X2S:[?`WQEB>4!S2._H VKJ?H[PA[#Z)F(>BL&YR/JIQBI7?\>A*CC$/4: M3=5)Q/9'!,_55*6BYRGTY-B5E=-]$99L3=5T\'<Z FC;:F$*TM^0[R%I20/I MO+E+\]A^^)*')PTL(2!AN53*&1HG[FUIJ=; W>D+I6S$Q6(SY[)D$3:SH<_C MB0R!)G<IJ%B'<JWGQ[ 7Q1[$ 1Q7V2(&I7)N5ODY96/F:-WNDQ#Q6 /;Y7YX M'&GJ;F2Y)(AD^"B:MX;FS:LF-F+O\:T0%NE(!WM!C-;3/);S9J#X=]"\/ -- MI:%%[(./`WCL<9#B>" %[G[ WJ74A%!Q\=,>:+$&(!(0Q]RV+92TQ;603#V6 M45/]""Y9-(O_ZI6 `U1R;H9BC09:0?]JRE1&2%.E3"56UU$8>UGNI:1->/ J MA8JCC7D0AQWLZ1?HEH1X#K MVD,VQA52?5Y3]0P541CJ=HR'4#U MP&Q(WGSK$I\<C[L0.!9HAI0<BHVB>G 052Z1HT+D6 V,QC53W!89!>55B.X[ M8,ZH<!>PH-OPYX=N($OC'*GOVSUS%T88SW<?!J&\!2>;WSB^^<Z=J79MCMBO MT%3]$1MHLTI8K:INUU3A(K3PL)*< DY3]2 N?Y[75._ ]KE(>H5,K3CN#KE2 M?(1[A=KQGHZ\ZUJA]L5 ?XZNP;41\=HXJ$:AVO&^[FUL/5>AFOTT[CC_EB]- M`I0Y^,8_;$Q<B\?.HA6!":-9K^^!VFA<):*+65U8?2]45B,M':W$I:,_Q> > MZQF SMHKPKO^M$+\! #WH MA9T]_64T=H.><1LM7?X, +(\CGM M/3>:/.'6\_2!%*[2P6A*:8:VVEY!'70 M(CF5Y%<&S1!'?PGRT7J&XE":KV_]1)A*BWN>PY7$G ZZN )HA3JD5XWC+1O3 M68[<42>Y&ZG;V:&I[U &/P\AOGR &^#O? $K_3R4V6?>0[^=3TCI]R#TA#WT MV[E="JN#O'TC]DC?A_;4M+QM"ZR;+2%>*#V'=<Y7D49S"Y?F_ 5(HTDU;P"0 M> )7*M$_7)P($VV8I=%]JR I=ARBG[P$$$Q'TE:H_-EJR5#C)_)P_D+-5-Z5 MEJWBY&9[`9OM\!A 4Z%>0"K4? 3 `T0`_P; W]M'>PBH>IPN0 +SY9%&\)^A MG'C*[P_L`>8)8[&,SBM^/ W*\!F4H42(P UBXBW9V<LX['J'%;>2E16W`1 W MVGE%L7$$H8ED>.+U_1NB`ML&4EP??J<5O7Y>WF40Q^/Z/M"!BR<G!0?NA(OK MB'E O(X1: F6R8A :J>N;N=42/$ICP>V0SUR#N)SN/Y4!V3I0S\2T7<`9%,P MK0GNN4CS6.QC.ZVX27HFWL9(-B('/S/:F /GX'7H,+S>:8'7VWJ(KID"KUI+ M/&Z0HR0F$50PF;KP;?T!WU-5N->NIKOYD^!]\'F /E"'N*XB+BUXWU8BKFC$ MU' $"^3Y'4.YT]F E0+,)_GO:5>3O.(2*)FX'_A:](;+`D**H?) =M;UP=-N MPT"I;1-GQD(A&ZN[>75-,%W_AK[B2Q*B$(GY:(5.'A$\,30UV\5>;*)<`,-\ MEKG-?H&84BCM$NF>.5)P;V+ =":PWM\8* ?&&%NKVRO'>M2_E[;4I,(Y+4%^ M3D5Q-F^]D$9SMZ>0EF,];(M-Q&51BC4M^)_0GRN#Q9W8 MC9Q^%+5,\451Y#Y$[OM2`B>)OY+*2EID>X \3V0U8MB+T?)N:<'0<$&I*)!L M!XB7''?VL/:P2JVS1\%I?='0A2/SUG7[5'GK?O0%Y:W[`3CE8^"4-%KIBO"] M4KY/^X*I+ >B+B C).*LD_]!,H-DCH ;,R.$L=,A,IO0#SGANTN(LKV,XZOE M96E\?92.N31L'X:1E7NN$NJ7:]A,Y<:BO+U(.K'MFM^_KALR>3ZP:QN,ZD*P M6 &%$A<`2ZW[\2:QN)0M&C#VAYO MU4)-(JR""8MI;*_NWJXS=M,:"9:09=FR;!*F8K2S46GV;3U-8\5U)U! TGK* M`E+X94O7^?/7L=1LJ08)]B[$OPSQH+.%RC"DJZ1I^O;K '>/3K9X&:"?45'? M2)J&KI%EPBC6<1RG+E".:#E^&6FN[U1<>-'=[/ RZ,(+JT-)"U+(>\/^ST3( MM/.P;M60_>W2YN?IR/KFX_)FX"VE'T,(9OIL .F4_E9H ?:!&_72&O4IM\K8 M7G6$4^'R<=5YOL>S(<P=[E)!T$C'90.O<FQA-X%F?'&&+<OW-90DAO14PZ . MLWUSK<$8O>L0722QCJ5IG\6TK^*,,'N\ NO/0-$[,2I7VW*7G"]B*[=Z,*I M7VT'NAY'5^(?P873G5H7NK:AZV-TH2%[K7X?N+ 8M5O!13J$%6K1"=V^] W9 M`D5SJS -D<:\&,AC' H>QE.EQY;(]<!,?VB76(23W%Q)2"]7H=JD?$)6:G8> M/H9M'Q(,TC'#V1.B>70<B[:'^NHJ2-,]$VE[T(VT/HK:CT!WN]&%$^?.M]#U M2* E#E:A"V>9!W%$H>8VPLQ))8+VX$YP KIYHI<//^C"N*URP/<0\! &/ O M]L90&=$4*R\>H#FOPXIQH/ ] (445NL,[8YO=ACK2LAJ7>>?J W1FVA3Q,VA M4UER K0)HV&*\ I54>^&49,SX) YV=D3Q$TD;:X(Q ==' !DW%P86 JI5J^Z ML'S8.K]L3X<:?C]2V:2(NNEX!3+NF&3P1Y8O-M896XL$F#B1-IA M*_CE(CS9"O&O:%D>I/ =#NVW9PPY M%:Q=A5COD;&^$TKE,LS#O++5=Q2:B9&Q^ [8KQ?<U!Y% M\K6ZO%"-'"++W3 M-T4P"KDJ\T74,Y G6JI;^3,2(F-=_YR=>$OQ0,PZ)E?8 -/*'Z2!539B3TH; M00]6259UOB"ZM\ %D0+E4'V:>+N]0?P4:IQ ;+WT/8"%]4W&#E MY0F<M!FEAZG:+%WU$4TUXO7LHN95+] B<*.$;*U R4$;*T&9LQ]+,D(*VB,% M/0:?>K^VOD<;UV0\?XCVIBEZND9?IE<13J\&<();[(OUD=!%RO0ZL>T$W=B- MMD"/MKY7&]>"A(;I2KX.MT2J6S75?T<!GJ\U?[(]G+8-M2C25!_'X$710G8T M!&*HN47CL6,>H'W1?"% -YY:ZUQ#FQ1J)5FG-4#SID$F.V8.`-V>ZLL0LG5" M? P*SG$!BHC::Y0G(_8^(579W+"=S9HC9,:8&W:$TK2R$0&H2]AFDUAJ$?ID M U+KKS*U5E-JG3S83X<KPEIUW"<8-Q/B0N(:`L$2<9:IC=U(FK%XE"CNI/F3 M<5W U%WD89WS<$Q KQ1DP1)AEDJP WIJ_GYK)'^+,$LIK%.:.[>J^&$"DZ;8 M%BR-E6WW#E2()9E8_PZUJWSZP5!Z*JOMTB7R1?VW"G+)V'H(!5!<$X1ULSWD MOC"V'D0'Z;ITD6U:Z--07UPCY$M#Y$ \2T8^.J =CD5&L0CQ.2J4A!!J80:& M*C'TX$,H*'O($H:FK"=71+1TC0,M?ML8S^-8,](B>GK]_F"$G,UZYU2W;SUW M"#LAF1_IV4D-:N^-$=?UTL8)/H2=]0`N:0(SMDG"+7(&=%/S1UM9&\G1:MY1 MQE,Z]N%0[LF-!!7H??^0Q1;XY;FC$E_%*26\'*>O.CM8%PV ZP92G.,H2Z.E M"-=QQ]?7$,PD 07FRCO/H8+HGH"AW8=Q__:P0E.-&\=N"NGX4$$ZI$1TW2N7 M4(!9H/V+X;=(=N?'T7"LKL_^6:"E!5Z5TF*!:VDYE])CDFY=U1E-=2X,$!* M:P(61*IBOWDNXB/'W-'&5L<5 _U61XIY8^2#K>'&=G>TC3WI3G&>-3C\AHIO MR AY7(.<(V$23\_7:1TIJ3R;0[YU+V&J6KD81^\4[A9'[U28:/9.YB+0,BG8 M.NX<QF+0[,))F<4LG?<`PJM!U1%!,5:B< R/6M0#K[JUY%U';RH_#B!4-G$$ M!AD Z'HJK\9VM8G7<0!^%QA&C8<#E7%H4*="8=%G?PU U$^M^+2 =860CRZU MDV B. ]'WANP9UHJV< ?<^L.43.NJW/D<K,7'6GS^:!L8S>6DK2!4!0)9MH` MDLF+9 HGIVWBN6L4K5)/6%S/()E*:K21"9+->5B+DIE*Z5KDIKV4]<8BZTVE M<O K-'MO%C\&'():+YAH?$/<A^YHB?$<5Z;P$;6HBMC$)DH%=ZK$G [_%/X! M:!+07&CL/AHTI!,,UM^IS%/1 VZX;^)1CME']T\VAN-2LGJHVK^(G,AU':\_ M8>0H2/E7_%3\#QQ__5&X1R%0JW; VEN%!4IALUH(V?E-$,PX]R72<W7_"O+- M/X"6[#LOMP%TQ:3N3'40?XMD96_R(B?#L+7\'32"]]WAK!\CP=G;:E(AY!W$ M) X/ !D]LW0'Q] #WL96 M6^F'_?V3'OELC%>J0RTUU5= #I-!_S"_QRE) ^\[]VRUXTB0:ZY:B"9CA"BL M#ZT4T4JX9#QY MYX"1TI8K.96 ^O<WOHM2E+2OTR;B_C8]JT2\(C47Q+V*N^D1)KE>=&N??.K< MI(9YOV32CX?#W/=%&+N[#VNY,.B-O:>0IG0CG.XZ-8O1HR1#Q>&D`68!,/"+ M( ]Y ?(6CMOG*R ZK!%:3\5%25OM8C>P'3B;;-0RM3LS0L7A-B+R3?\.>]>- MUO; _Z1!7E3(5:).4!-Q0^">FN$W"0O#YD1I2JOE'1"M*A R/VWHMD7H^-N% M+*VXC7(R-]I=$.%X3^<JB.CVAO(JUPEJ*QIQD_U_:C,(JGD==Q?=>U#DKF/Q MO1Z&(3VH> DDR+W+ B,P"E1])B#Y<H8[TS_;-<-?5<?_ /))/GL(,P:KX3S MX=5UVT(NM34JIF:)O\?6;AZP ITG[4//0\W <E4ZHSZH/I+!X'08-A;K+9ZM M^D1/F9[=W08^VV-UQE;#F1=?)%BZQ?I)+KT>`*9X. ""(*AV(AI!,L)<I7"; MF!8%'+=424+(0B49!V6?XG:483UR\*Q]8DYU.U\/LZ$4AJ\%O\V=XY_OJ6!= M03#LV MNM1ZZ3CJ%^ $'<&SB)U)+'J>G8$!I$.,H01Q'E:%2AL%/X/^HZ!X^DSW,T]B MX5? PD?'S1O Y]!_D'$0\+.QKG/%R 'T=_84;E4Y>[;L"'**NK[R8;T_K:[; M1.^?`+9\G^J^?EXGVQN 0.^2NV.;&!-)5_AHW9S6KK^ T(K!^,-_H2M36M(+ MHNDOMCX ><S(7P9J3V1 O !Z3>C#CO-$U8 L#HSJSR(M1L^%2V8_(5"Q0:" M4 3 AO(K"+#C`T S4B+-X2LR:2"%^$N43MW;M?L=O-KQO /D8+/X$83EKY.( MME2(<>4/H$:P.!_*1?,"^8![*'WH1TGHBP/HJ19,=^D$]2XTC,F5UMO"Q?!1 MLLD9:1L -_(UKX/J)A;_DT["0F%PZKWD]P^<K]+S5^08'4];1 L`^NZ'<2%" M]05PNA&!&)"]6-\Z\1$THFBGEB*2`4J_^4E[P )I`XJ0RY<"]>O;LY2TGX"1 MS5 #J!W5[=RPM&PE%R+<!NE_[,?Q-.+X^R6TN5$SW 1)91*R5>*/UZ6*\*LD MP#H MPN:,HF,)MF(W,(+O-CS4;%>ZL_-(EGHOT 6F;/A6X*TJ<B;-JP;I')(BB5 ' M*5#F&K/R650:^(LRF)RGE!=D$RO,40MCJH](F20=1*5!O!L_)Z'Y3O=Q-"TG M(+W-V"H?!!3#OO+[Y>8GSF^'' /N_(T?-TUN<AY7J9?51*5>B-+"L GSIIV] MA\PT!:VW*1)C:]Q[LG5'_5<*5A37_ !TA>G(5"S*/ 21E*M^O7]/OJS02<65 MN][&CW5]X/C YBK%1FX?1KDJG$(XY 6Q.NH2E'MDWH39%ZV1N=D^&D:ZRZSF M_H>L^U/[!"O>&8*WB]1CIYR*MT,8C\!\GH PHQ_M-GB6LU7=H"2W^2YFNA-( M6U4W?Y;01'$B*$.47U;\0Y[/RH?C]^6^TV=IXZQ3LLUB\C^HM%Q,F "UL=MX MA*(?0WI)S(ALM];FRO=7M?(_.NN5;NT,<'U->IJHX1Z#A^ N>I0:8^N^KK>I M9\B0![A8/L:Y"1>12P1;>(E5"PQ48AW)5(90<GJ-U,82Q; TZCNMD:^A^=P= MZYA27#E9%P1:`%N*NY"EVI>HI$Z$KKH/H9S6Z!MA%0AK*XT>`(M0B/\<G=Q M?J* ]D6(P[M'W(%NA/$R[:>'VA/C=F,H6KTH^6B/DJXK"T_'(*/MH6_*C^K/ M1ROZL36X1"H6#HJF0;B6X^Q50%%Z _A "14VEK2?GB?AB*/II 1C<9802!". M6[UJW.H-E7;(<'^,VNLXK%6OX9[MK=" 92MI^_Q3,F,,;0S&*-98]SQ^J;UA M'SPW!MIW,+S*T.J*JJ+-2A/0?0G9-J3/MK&SF]K74IE?HZ#VD3C U2.!)F A M"HY\W<9LNA?X\K*"&^>\',2-$>^\3F7!".<5!:^N_8-T^4L(7447O\'%IZ-4 M+7H2G.(^"394; 6'+UBZ*Z.+[K$]O\K&/ G/*S_SH746'P&LGGRL<>^PC?.G M7BL68\*P/LK(>Y]X;5NMJJ\3>!*U*" \VY=[_H:\[FQ0P0RHMY3OJ,V%ACRX M:16J$V_0'6:T`L ;T6 _$9^3=J7NH&MUM!02N]FO!KR4X];0R2",:;4BH#IH MG\:UT&5:I=[WRQ+G-F#EV MJI'W:SAA1[ I*=K]05R82VNK/ZJ:S5]<!'41;X.X%<XO [CA+NULB-S SN:" M7+D*[Q[Z V0/[!_'J8C68U/.YG_ -%SJ;"Z.:$FN<C;)59%<-1>=DJLCN1 2 M4;P8#SD"&P?D4ZZYHV),7,>EMJ6Y,FCC\K20594AX <;9;7N%Z35YS$<SZ_ M/S<?EY0/7D59%A.STX>W'TS%UXZN>Y8C.O$D1*$5G&JR4O^D8%/Z.P:=I[C9 M^0KH>DZK\G647"$PJ7P=%:EG44N1;XBZ+7!#U/A:E% UTD6&])(H37^(&/,% M=CTQ6%H6H^.#A,<?]3R./"V=N_X^2#FEECHO2 M0 =[U+$^)3D1]WW?/10P)2 8LIZZ!)6EOBGI"*D_MYZ3IZ2^5?*$=&K+7U = M;60_\BP-;0SA8.;<YNS0S!'QQ%&]3^G*8LU'>1_IJ>]1-LY038.XQAEA'+7S M=\T()ST0(#Z.5C M'<87W+">B$J+]3!=:QG9M]*BDBUCO-(:CWH/KC1LE?8M^;Y('#EN9D]$-]T: M<6%C."1;CO.R1NFFJI[K-.AI*:B:!EWC)QYD`6.-[A!.B\2";[#UC74D" ^[ M$;JBV>FGH%?Y)8- [P;0&C3$^QMK<^W!0"L.T-LOU& ??PL"WZ"!5VG V]*) M&#SZ2<_1[:.8]TEV$,&2J4Y'+IZR6"D;!\M=+E(Z)C,HZS>_AE(><1?I0T $ M?$(9_KCS.LO?(A.&% O-WN1LB6E(`!/6NBDV[,BF$'$6"JQ+)RZU.T\P8AH] M W:IS7D2PJ1OV)'-D8%HW'"3W5Y1T^\)) D[PH^9RXW.-G^T,8S4DY:XUDL7 M'T>3`7(T[HC7?,P>PX\T>S<.CVLCWK C<:V2\ ^N]E\]>M2[9.FRN&YRB?S( MMH\X8A^5`_ _;E2:O97?]8SH'N&?O^GV8R>.M<>UW7KT1_NW+ U1'^L\ULZV MC3A:\9V/?E$_(UVD=_6J>_NYJKJ55X+ VP.3H5ZTA'Y!]/MW]B*1*X-K\2/L M>AOG[CW18J886".CNJ>\!B V2L=?`NN=HE) ]-?AX^VWEU9*RRMH!2=?0 KL M$'B67261>F&DX_1U<XOFD6%8:K4^KH4]1G(8X5:T<PRG=S-VSL>#ZEY64WV" MWIY'#Y\+F<K=)U'_H44K25NL5_/C!1-ZZ'T'4>;K&U5"")J$;0P3*E48R/N$ M,B/&%?7P6]#SES#FC M!,1 MV'1? ,XJHT]T1D.M)'M9N2(N :\RG Q\0)-'.^Q>!W'K9X8EM86%#XR M:O=)W/ N,9_\&=7VSXC&I=LZI7AQ/RXI]N42,%R4FV[ _7![_%&JUW$>Z8]2 MRU\M_2Y:2E<D58()XTD$?1MP6BXHA B$W8<O$E[=#D%!`DVV#U MDP[R8]R',,VX*+X>PC#TQ MXLM0"<5=E)-_#I([\;J?#D.[L=45DTBQB<^&2M9M(#IZQ MZB\K')9;&2Y8C/J3W]^DH!VZ08G[H_Q1.55 O:T"IM: C:%[+UV$&=DI&?Y+ MJ_3T' J&-S'RN ]=L*$GT0?J/_XHG!."[B;I=2NQ!MR7_?M8 ?UL+PP&$_9C MTZOU,!9,)-\DG<AX!G E!CI8HOY2R_B3X[O"6L W,)5(.G'W,U*\=/< O2 Q M5L5-IW'CP3=U+P4)\=V.PW(^JB .:?% :6ZKC!!O[44PVJ&]LDS&/DOJC=V M,/8 /6C:)J[;)^W10\M3QAAS&AD2IHMW-[*XQA;L2,4KP=% $HW3?+A1O-1/ MN^D1?AAHRGB>_\47<%\-[_]<M%0^78)G;*! I?+"?2GJ-'C\*TQT7*;E+ZYN M!]UVV/"YWR_==DCO.D0;X,-TIC]+6*65%[D6J(,O4".3&9%0C&8HAB?G!Q Q M>-V+.6JJ[H<"B%/?A23?D'EZ'6X0`[8-B&VZ?I*Q?7<;!"4^5G=H$[TY/OIU MFR3T,E]\\05"O?*&`9H:D6_$>"#Y MW%=P7M?R49A$Z][".OR(R[^<#W(V*$"-\TQ!&W+&<,383J^S0-6(-)F[MHU) M^ST.%96*O[*D3?/Z%^P5L[<"/%F^3],B]3S5MX2M>G6U'VIS"]IEL[QF)YI= MVHUAQCI7BU-<5N"UK -P>Q\XAE1 R):!(343;C ^TZ?_1)-WZ>*?I/M%ZFNM MSWS[4YL;N%+DJ6 ;E0J<[K=BOM+1 [DV<3JB]>)Y`3QH0EK$_WA.'N,&88_\ M*=Q!*_61C4&,3XDHT/ R%[4A[&%U] PD*LGBZN>D&_S$I> `43L*6EC+\$_C M*!;(A(CBD]+YAJ&5<UI[J%I4!B!14'C/<A:4!\WK7O'19^4[86^5!I?D]AO* MKGD=:$W.BNI R=87E8,6J+/$;2$W)H!XAFIJT8/VI_I68_L;C$"#X ML)M'.%*MG JZ85;5$?XBCJZ!FJAE5(XM+*-YLD[SEDA5,[DQ,_&Z%KRK4%J: M/?>R'O5K]! -3%Y,=(,.)CUM(#H6BMG/W(2O`AG*BNA/\14 :9%W_,1GCH/> M_2A'`M'2W$V[EZJNRDET?J,>T%[2R8%/I.)WOH?V0'>2*U5G-%7_E*X/4HA7 MVI%WP!DD=H'37*^IQC^/!&VHJ78S ;U(<BGNTWJ_` ^*E&' :/(]G0=E*F%2 MXR7)+[2&PI6)!M(A/H?E;3.TBI^ PQ6)?QA'28Z*CV)PLZ%;/(3!G!(-O[X" M&N96; S,]ZMGJ3EU=K<-5W?%U]X"XJ-YQM>RY6G;$)O"?.)U![EOMV3:0RP% M6C!3B=7?TL66_I5!9T\FVI<5[ ARUNF\$CV5E)ZG >G3I8EDJU =3.D)ZOI< M:9LJ&N+;Q$/!5!(.`^='U'[<]SDX)TG;;$K0SW&G7T$G`7*U\!X:F/:WB$$2 M'C4XGP9G-FGP=4+M[[G1_G )3D?(YT;$F5)]OK(`IN5<-%V0 4ELEWA %IG2 M2,]0D[*^]0%2+^W888>6AT?Q% Y13?V2MAB'QN8^41*80\<U'^OQ3*&7`WAR M%.+F7U,K_,%B)P`+LN:H>.D4\- R!6DI:5). WR:3E&"9K%U]/!:G4(T(8XF M(>O^W] Q3UM]GG\36TP[>%B#R M:!J>-46!7H,:JGC 2:3] +8+)-Z'*8 *V'N6DL3H.[D`A^(=9] 9'JJNV[$: M^Y<,/ NOO;PA=-!8 PBH67>)H"%72J!R527R?9H*\5G<Y*E'=Y"X!]PEYGI^ M+A*/3Y++T177`H*\^CQWNQ!+NNC26BZ,<<(LI;,.N_SW( %&/T5GV!-LOMN1 MW$*VPND%JM?QOY/'!=ZYM^>F8P*U?S$W<+:*21[+&'-3Y7C/1K_'$KW[Y,*0 MQQJN+5AXK+/DXHLCCLR867+QA="K],*/XZ1I]TF(Q4W2BR_B5B=$R?WXF<\- MSZ ^_;GN&6]^GL/Z,MTU'%VKVPY3SDG;<0/C55P5&OO&Z_1/3>Q]$Z=Y;P71 M+4$/;BG2%+R7GC^C*TA59_ADUP0,-G1/KLMM_^J$1;_<?=C0: GBPT2T9W,U M9P;PCL.S6D.+%>Y>SH*^F/(>VJH`!E<;S<YU5!H&XUK03 '2H<(2YQU '2;_ M_:WN)C^G)B==R]GZLRJLE&O,/0/LW7&I`_MO*[WK`Z],J&[7/%))M1R&'PGZ M2C"5ZL8Z<DXV/I8*>RMF.(0"J+MR5AA5T,9C'>N9?Y4T+<*9'FG+S5NGVHN; M-;GR]3%X8!R/8 DY5TM(".F1T=/^)[OS%RTK$53DHQ+S4;S4I$1(I39;?BZT M65R[AVJV[^+"R4M8>3^O-';[)I,>\<,!8%E[9&DZ$BKW]\?EM37YN'BDGKP' MH_%G']R-^XM]MA29PFCH[Z#WI$"1%3UT</ H\0_5,6+%+^4[<MK%Z![93 -J M.07O66U&>VRHKN^=&PY4E5 +&7M8B74+LY%:Q _M'R6YST"'%$]\^\7E$W4G M[C?INX>^:^A[#WT_3]\&^OZ8OCOH>PI]4QOA"9_1=PM]GZ'O*OI^ [ZGTS=' MWQ;Z?I6^7?3=1=]/TO=B^BZB[_OH>S=][Z?O3?0]B[X/T[>>OFWT74??\^ [ MA;XWT/=5^FZF[S+Z+J5O!WVOI.^GZ7LY?6^E[W_2=R)]Y]+W^_2-9UG^5_TL M_7_ZDU$_P3#ZQQEF^H"P6R!LRN,W3ZN7_QYL/'QM\.3"LPJ><GCPDNLGX7D5 M2YGWP/,</*_"TPQ/&SQ?P],-C_K7D->O__]5SR7Y.7D)\=.*RLJ8N3EY"W+F MR1Z6R2XMM"_9L*'8GHE_2SF[;'U%\:S"\J*R8D;!9-N+"[GBG,KB< YB V3_ MC+5EQ9F,4O8M+H5/$<,$,].+RXJYXFS[6F[MFL*R_.(UW-KUY4R('"ZE"F5R MXN*<\LJU]O7E#T M!%6;M[8<2J(9$K*,T=(0WFX'=-/7VJ%HZ^V;H=XC!H3+)9Q=Q(P<$!HHZ: ; MP "0B<30&XO*1&$XUFKQY W%S&CJX\O*< NYT 6%#T$1F5LP;%YA!9=CMZ^W M,TPT]:\'PN%?`F686]$_?WT17T;)*Z<:<V/H,H:YK3]4:E^ C,&PA3GSD5IC MT8W5RRPJLF,C,+$8DL\5R>S C$,_9ERPOKP8J6I_J%!J/1W&+(6&H;[QS.QR M:-["LK5;;N"&VYEYQ865-P0S=S#SUA=".]QO+Z0TUS/S^3)N;=9F8+#UR]86 M%2.;,A.8?&RS\HKU9<79G+U,*IF=F8CA`RB\M-"^%O\*>29SYT_$+&,FT1AD MJ\ LHW]E>QJZD5F9N]&%A"HLXXL9`_KR`SXC\Y/(F'AFZ5H[QQ>6R1 3`GZ* M-3' 6\07VS<SC(E95KB6F['>G ],5E:\\/YU0&,FB0D0<?'Z/LHRR<PR: C* M)?_]Y[+_/_=C69997%S!`1_H9I=SNJGINBS^?F!^7<5Z.Z=C)A3I'JJ8)NVQ M5%'\4.&&TO7V8AW^6?N?"9/?%\"7`\R#Q47XEXPW0F]]0+=^8WFQ'?%(8]?T MUSRH6U]9;"\I6[]1!Z]"2I8-V-_#BP M&I[#BG"Z0FET'Y03IH<JED%J8+W_X=28%D;-!XKME->*BOLXC28OA]+CH/J? MZ;/S&.JG#OAEKYXQ>U[.ZMD+9BP<Z,;E?28S:\'"O/F9\W2+<_+FSUZ0N7CV MX>FZ1I2-B?R?>/"WQV#K>V[R<_S?7)O=9INDK$F_(/RQ-_S"U8-_*7T_.6 Y M YMK83>)R\E?_+^VDCG3%_^OIC->88=WB^'=>$ KO/\+ORKVQC9XH'3MN ?+ M'BI?O^%A>P7'5V[<M!G_IA%C6V2CS\^%_[EPD7+[!61VT'^![,:K!OSR#W'C M5R%_!_KQ2G/\IK+2-WB('[_LD'0#T^-UZNA_"KYTW9]J- MES68\'=R["FWT MP9_N)1NCAV<*/(GP6%Z23N(P82P[+$09'!RL" H9'JP/4;&QMXV,B J*TD>I MHZ*B0D*B_"'^*+6_[Q<UX*<>Z(G"V% _&Q4<&A)V^Z !"6(`"^(:R]ZA'J:D MLT>. !_$:_#WV%<IPU=E;XYX__WWU6JO05TK_G'8E*+QPP!/^+X-UG#R^[:P M55F_" .486]\]I$*Q*RJ2IN%?TPV=&M7?>BCCSX:&LKGAD)6H;1 NVSTV3&2 MT3T[$MRZW%A\NU; NR4/W_>MIF_D&D79=G1W(4SX9R9XCQ-3,*2L`-Z1NY?; M_EM+^.^?5A*B>H/3,,IXOW&]<:.QVB 8GS;N-1XR-AH5\:KX)?&%\<_%[XNO MBV^,UR8L2"A+<":0A%\E_"'A3PFO)1Q,R$A<EK _L3-188HPZ4W33-FFA::E MII6F-:8RTQ;3HZ8G3"^8_FSZ#U.-Z6V3U_0OT\>F=E.'Z6O3!=,UDS)I9%)& M4G[2JJ3BI*U)!Y,^3?HJ24SJ3KJ2%)(<D3PR>4SRA.2TY 7)BY,?2'XH>7.R M(_FWR2\GOY[<DGP^N3LY)&5<RITI4:G6U*=27TS]-'5'VA=I*RU_LQ18*ZU_ MM"K3H]+'IR]-+TQ?E[XAG4_?F_YZ^B?IWZ1'9<1F9&>4951E_"V#T>&*.<., MOB!^4_RC\;^-?R7^G?B3\;[X[^.OQ(]-2$Z8E< E/)6P-V%_PC\2CB8<2_ Z MX<>$:8E)B?,3"Q(W)NY(_&7BJXD'$M])_#BQ M[36]!FWPCJG)]('IF.F4Z8SIK.D*M$!X4FR2/BDNZ>ZDQ*14:(V<I-(D+FE+ MTFO0&I_3]KB:I$B^)7ER<GKR].1%R<N2'TQ^)/F7R2\FOYW\??*EY.O)MZ9, MS/>;UYL=YFKS[\U_-[>9>\U'H.V^3]6G34Y+2DM/>S[M2-HO+-667UI^:]EG M><WR#TN]Y3W+2<MWEEY+L%5M'64=8QUOO=MZO_4A:Y759=UMW6-]TOJT]5GK MMQK,ADQ#H6&=P6UXPO"6X9^&!D.SX6N#SS M,8F+$N]-_$7BKQ/W)MJ!T]RTE__5]"%PUB53&/ 4]NH-295)GJ0C2?]*:D_Z M+NG'I-ZD*<G)R9;D_.3"Y%>2OTC^)KDKN0<X2).R.,6>LA%HM"?EURG/IKR8 M\CK0J3:E+N5?*6)*N#G2/-$\P[S&7&[>8W[._*[YC#DUU98Z-W5UZL94=^J> MU'VIT](2TQ:D+4DK2+LO;4O:SK1'TAY+>R[ME;1/TSY/^PYH&0V4M%BF`\V0 M>R9;$ZPVZQSK(NN]UB+KM]8+UEGI\])STQ>G+T]?F7Y?>E%Z:7H92 TN?4_Z MS>I,GYH^,_UH& &]<%K2S*3RI(JDJJ1]T+O.0?_2I.Q.^6U*;XH%>&./^:CY M:_.WYFYS2*HZ=4SJN-2IJ?&I<U+GIY6D5:;M2"-IKZ:]"_7UI2DL&LM42YAU MI=UC\5C^;;E 28">6VLUI*>D6].S*:?>G[X^?7/Z,\"KKZ3_1WI=^H5T!91R M!$M"4H(AX:X$?4)L0G3"R 1U0D "D] ;_P.TAQA_.OZS^./Q+?%'XP_''XJO MB?];_*OQ+\4_'_^[^"?C'XMWQ>^*WQI?&;\A?EU\4?RJ^.7Q>?'S0'[;XE/C M,<- _C;C3^8?, YGZ"QZ2Y&EU'(T0VOMS6B!OO>L]7GK?NNKUC>L;UIKK*H, M``!);G1?5D,N97AE[%AO=!15EJ].5Y(*74D5T-%&HW2&J(P9732B<!JDD>X0 M(!TZ!#H M1I,H`P1<C,*Z88?%:CM'XMB;=* WM?=6=2 X,V<_[8<])^^<JO?J]^Z[[[[[ M[KWOW?*MV\=8&89AX=%UACG"F,7-_._E-#Q%,]\M8 X5_*[TB*7Z=Z6K6S>_ MX&SO>.ZICL>?<?[X\6>??4YR/M'B[)"?=6Y^UNE96>=\YKDG6^XO+)Q2EN7A MN])SON"U7W6./]_]^KU.FU%?[F2Q_J=CG5.,OG_H7&C [W8^8-1O=')0K]K\ MXU8<-RZ3W\LPU18K\_[E7RT8QP88P6*SY$/GC84MF XO$9Z-V=6*YC>;'3-> M,W^7I8-B-=YB]EN\CHL3='+H:8:9S?P?E(VFOO]<N5]JV29!_<\U68'\WQ,, MBA.XW-_QY./2X[#B\;4[QW5PHX VW/>;9,R/2N 5RO(*_1%=E)DLDV6R3);) MVO6'G3;B3Y/VS#L6!$7:G %L"O%GR!P3\K-TC &)I)W-0AQM9\VA+&GGLB!/ MVSD3Y$ [GP6!(6^"/&D7LZ"=MHLF"#SM6=!!V^TF:"?MCBQ80ML=)N [259 M[OT,H[T%+>4X1X>TMY&QIAY%^#T;?.RCIRJBQ.)6$NQ"\1Z&V?E=0/O',5U7 MCK,KY-]KKP!)^8>;HZA0VG/DK.\)<201NYI'/XAI,ZVG5[6>QIF: '] ^P'* M=YQO;FJ<*)'V- A9$;V.!*A4QD6&I?N4A67[W8PU(!=K2> >B38$I"E^;0K+ M?*)-O?%Q05%P>;IKK A?6VT!S6XSI)9G189E2Z5)99'RE(\$Y?)0X(;\G"&_ MLJ.,'=CZ`UTJ8[5?X_[!R%OF>\HX230PE!&Q+T%7^MQ^F!Q 3OL02!L:XG6! M^J/;0F[0\GH4-:UZRAQ^(' $M/T"*+^>]FN]1:A_1W,3C:\'H4\#BQPI5_O\ MIC4B*4RA>BO9 \RK4 <X4LQB8PN_^[*^"P;,34._,IHC\;M/XE\6$X -<-8/ M#F M>/GUN3Q4^EP.WEHJ T[%TR$B7Y ?O"3G!;3.6T&P7\(K64Z] Y2C!<37[Z_5 M-LY 6>,4=D'N5X*7&"3^"1*_"B_%E]'I1VK+"4V$Q<!&X];DR(7*0MR;W ZV M\$(-%&:8H3!NO8Z-Z 9Q9-KJ!D7?;-? C,?1ECBM+F.5NUCX8)2[.*P.VO?C M4%*(#M.=ZX W_H-SQP] M\J'#O!&W9F<1E>7L>5^?O=5_$W74:!$[:Y8Q]<P M+;BL,BA2'T<7BP$J\_5TK'P[KWR4B5T1Z*G-O2R8B[K'X '!B&^(%BT;CEF( M+R-$/H...K7D`3J=K$G10(:L2=,UJ>$/+*21EZ7857:Y<G71%FO;HG5T!>M: MP<F/*5>=[^$OPA=FT(_/)M7J'';D;.F&(YZQ`GD6"% Z(UFB+A^XWK/_R'& M\L8N4$JG3QB+ 18[H?W"7:& P,A%]&-#IV MK1.H&ECX?M?X_EH-&W(7B-2;(7G$,R=#O4,Z)T1&`#V QA:)"N$+*&!A"7S1 M;%:)H>U+&+E V<B.&8BRC=/ES77 "NV\?LZ ]';QYA/+,'):;) X&XH-Y- > MYOIF.)-,[H7H4_45NBLF/Z1ZB!]FP:"#X+ HLT$45[<,0:$YKI ^:'ALE $V MX<G32 VGDT?)3E;/-6:I%!4.0E93LWD"&][,U07H\V)]Q?FDM6] "<3441K? M?P/;I_XUT\XPKJMD36;K$OIQ^:E8 E>7BHN5JK2N= ["::FK^S)0$1'J*[K> M[<X,X:>?[0YIT,"/7)QGF?P)70,6E\Y- T#J2IY4L60QIRZ'!D<6L\J3;WK M-= ['+<($2\TK)^[OA/VNBSHK)G8*+M,&5U$?.DM>6V+&J"FS:RKF9.7**/9 M,'<;NEM:K;88<6X?QKF[S3 W4XD-3.S<O^][H6XE!]P(-EBZBR/;.>H3RT]: M?!DEF&&$UWZ)_AC,0%2)Z>Q*15^D5C^0P:C73!M3:LDUTBA"G,3QC2)IX, * M% /+" [>K 9.KN^JSH= ,AV"B0[!))]]H204G([!Y-3$8*)Z]GGHJ:33Z!/5 M#E".:R6>*V/7SY63$/FDO'%]%]TX5VJ,<R7O3RH;SA70]U8CYF[E "N&75FT MRAER71YS0E]*Y;^EVU&5Y"5#ORO M<_,-M9Y$M1JAN69 0N?VZVJMF:!6KTBLQ./(P!7AAGG; 7Y""%1BMRH7A^K M_CUIAW50URQ?>M:8[91L4^)V5V.&-'(=7T$ME]$ODE-OHIB"%/U(H+GZA3!> M;\D=!L,E(A65JSH$",E.]Q +HCOV><8'/DP-:-::M-*28=0J#WU EIRRG:-R ML0*0#H3ON((KN!M64&#TW MM9R3-X";&18:O)N>0O_)J#OF 2F2QL%9&SH]!)XQ0:Z OD&X%I3:DC\"IS+) M` 2U2$!JN:Q<3:;!VJX;;'!6*& #Q1D6"<YTI< UP78S!3LZ/7BE`)+"&W9; M\!+>R-3W.[-V:]R7SGY3\ C$MTBO9"-32/54C 40(N4A:Q^Z.T / K>G:%&D M5]UN(8_*M[GNP!-8G :\7,9M0<[/WG8!(9SZ&&O8_HD3$- A-[-%90?<B.W0 M%BO.C'Q+^Z'%0WTVN9CVT W0L[I,1*POT7>^[^N^?ENOG!KYC Z-/%GF``I/ MF7WDLK6OH\ %=%NYCGP7T&ZQU%2< 8-T_0<B<R); )*#F41 M0% W<M&8E0..=JO9NF ]BV,/?/H*GIF2 'FA?AKN^Y*1-<"%V\ARX4C7%CN, M1$#JV#V&B:=Q"[#M'OLYMIN 6,^]!$PVC53RO$7VU=6K"R(7, =<Q+R'9Z?L MK-/F?FNDN21?GJY6VMMR2"5'\M:22 >I9).%=!'9R<$UH<D!%\I-NVOXG*G- M`21 AX" H2D^O)AW0QZ^G6.D,GT9N\U&IW;FZ!;A[6B2%XY&X=[UN ,S+"6M MPR&=%]?S,&8%Z%!R.AQD75Y.]_':84R.'M6!3Y!G=GW5U! ?7LJ[87>'Z.=2 MMHYX(582[R#Q0I M6>26>S$%4WPIG7B/$^\)XKT`Z2J$5N+M3QP&&N"F:$[)I6A6Z3Y%XZ295572 M-/ 2(C_/PV0SS27VF TV\8K9L"2"T CYTJ&$9"(YB:<1N78OY.!>D84C ;HS M$5CC!4&MS8X>:;R0\.;A??>"</03O&9Z%I\&BL0<)&A),8E[LCSNO)E'2E + M0[/A3+P/C:[\!0_+]M NRT-RT=*E0! ";2?^'GH65!CX P;>,KH+\2[$GQ3" M(0FLC%-EK2NNK?IO7>^:N13X7X<6`92X(]?<F?13PMY*,!TEW2*H>,=0TFN% MO?WX[R/\+XAK2X0PA4_8M'7P!!2-%R+_!HG\IA%O> XGL[A^B+/*J"[GO /6 M=GM/X S)E8JV3EJK: 72\2HA8K<:V^7N] Y.P?.B,7T4+_V1+X5P:0Y&7I%: M:"VKQ""_%A,/`]3ESG0:_&$(,C0G Q4E>E!=$^Q*NH]6L7 `W#WL'>6$8_C[ MIQ7L\=A!P.8'4SN=8*FYC4#AU^X=-$.A]U,I'_4[E+228 IE 4SR..0WNIPB M/'J?S('V+96P/P'M$SO$NL1'^ M8`[O%'UF*EBN$?XMF8]Z+JJ0F]/CP6=!5 M8:F,> =?7^6OK].> =U08G.4T?FD,8JL=UJMOM.=137_T][7 $5U78N>F3G M$0=G5%!4C!.#S0_&$D<2R( 9` /8BAT<F8$:4")#AA&!#N M;YO>K_?[>IL0FS[;^-JTO36F]<;!,8"I;=3X4A)M0A*:''-,BM'P$Y'SUMKG MFC$4UK(S(6B"CB57"MR%-*X_C;LT%-9SLV'*!&VBTVL2QT?(V:3,]0O-" L6 MM:"#R7O(+KXUAZ)RRT"U+]MS)Y"U$[J'Q,-(H#E M8%1I-JI>U9'"SE%L LR=$X]]``#W.:H,%.:.);!E^K$^FT'U&3,7P=(6-XGC M4.S)\-.I5FKI'5;J(7 "N&YPKX*+`_ ;X#HI<G;D]"96<'%D&*582W=SG-!] M`%.\M%TLG:OPIP-7!3P>]=+.0 :FB0]-28CQ+BP%D>7LBZ6P!*283 0&]%J^ MR\0?IUM'^_9:J:8/(=D#R<+QKI$8 ?;W=T#X$_[])0(]"$((BR.LXV?(D.GA MUM%>P&PZAT*0B,<1+=G+'[?BH?C%'" X[-E7B2<M>G+JP<[S-%7B27-2NA*/ M]GT$H.6>[V9 2W\.!0+'A<IV'V-:\,2GK-$ Q"K4%.S+YM!F<CGC- _E9V6L MTCQ!K>L$+ :Q#F"L\;TCJ5")EY9C3;J%$:A*G%J5'MHR[KM\)!V35]TLF6\V M4ILKN+E0N9X8K" N">5 OSQ,;H) UA3OD\F<0X"&`$P1`+DM$F=/1 $ :M4H MD?+TFDDI#S9TAQ,EO;,NZ&O]RS 1 'GR(W-\EX7!KO=UEN\BR."_`S/AO04_ M'O"X%\'SA CD%W,BF1WB,P VFC24YX<D[3NSL83ETK(-01NP!X(EWR\N B+* M[/+]WJMRDE690JO!"SXK0AV5A2XN '5!]*U(Q[$)T /WJ)W&W>[!_A(]D*$S M\W$KT6- 'B W01MPP'&\A!*F4^2A)B]ZX-N9-9N='5QEY;OTP56_18CE3SXI M2%N#M)_$>AMI0-&:3_I/ OB!ZG,9XP>A?1YN--=B.#U?R<"RLEZ<10`P=.20 M_QHW+,QH'?TN186$C$N0P.E[8M#G<1/:T3JZ'U(BL%:$/=HZ^L]1,#RMD-:W MCGX_"N9'V(.MH\$HV%Z$?:5U](DH&%[^2G-:1[^'L' %UH'WAZ0F7D9^K2Q MZ"4W Y8KW!PI?74VJREPBHOU,/I!-E;3$?M F/LP2/\'&K+;Q8OOPN"/6*Z5 M!;+Q HV+P1)*%1(ETCU.<6 FWFS;6M9DE[$+2L07`=\2!MV3?<!I%^<;B;[7 M&9W!_1J2Z9;'9 K/HD"P,K2]CD?-S 1"K%6Z7"B]0Y+P%(=O9J(K(^O,YW/- M\Z'_+*PJ*+T[[I$".?9KW)4.INTD6XCYN' L/QO*9S/]Y]D5 +; </C,T%ZE MLF[S)O6^WN%TF>6L[$MDKQ4+07QJ698'Q!1&^)+U<9Q1"A/LQ.M;2T\ (Q6 M^$']&LP"&>(Q VVLL.P`WN/"_,-+7=SUH(;%Q9V%4!>TN1"RM^!-Z7GSD"7L MJ[-N$[K96;J7J[.2N5'%^T3(+H7L#H<CK=MQ9L1J=SH< ;S459!'M$CLRA(Q M_+8RZ_-2C>P=#D<)F BD`I;\9V"/LR!B%)O>`O87>"35*( #E6$CWO"');OE MY^80ZP^ N [S]J 92%E9F+^4Y\'&BW>]K= \D'N:($ .H!34$Q.";WR%(]B. M:-+"EBTTQ3-RMS4F7DA %%".6KLPS=+E>Q=F0S O50][0BT:$_!-J6M WO> M-I-7:A&(4RLQ+[H2AN *O \\1*'4]'LI5B AL^P?VI,OZ%"2N[^CB!KJTK K MAKH8;B94TZ/(9;<)/5&BWZO\.TN"=*\P,\ `?GLA76#CPR"C-/VNW'R^$U&" M!T$:1J3QH$+C>87&\[=*8PW2.'7*<W"ME:KJ)*]#X0EJH MX!;ML"1[;&/ -4"['PG:!JM0ZZ;"H$Y4!1(P6(8KM#B<C:>1C;.&^W2 9M-^ MZDF!LH>+ ^M2F=:+F'0O?ODU"MJEM%[AA%\CO",P I6V0U5.`1-RH>4!'C8T M#A/YB[1/S_?K=+URJC]T/W1\:O H).\'WXK^:8"- 3-!Y(XS';'M<1WYFO8" M34>^%LBV%VCY;AW?0XB?FB >7#N)2[ T?+>6[]$BUD\GL/8K.'PWXO ]&DQM M!7\$_!'PQ\ ?"])!\LK9H&XDTALR-OH$N-/ !AX %]L5FT^&]V,-H\-*ZU4( MTG!,UF62,4'D_8] N 7<07 =^;H[SK07Z/B/2>_]C?3>KZ-(8]U4G,FQ^A P MR2BT1V'NC\(#I,DQ^UC'_PVK;-CKA+D\E?88U(&&H!Y<(K 4<*G EH-[*(N, M30KT=0KXR> G Y\(?B+X1O"-X.O!UX// ,^ 3X-/3QT;I8]*X7L+N 9P;5E1 M8Y.O UI'C06)3QV':-B4L</+" MAKCZ=.106>KM&8P1]D+#U_B6&E_*Z:+[? MI8<S0(ZVT&X#WW\]D*\'(72]WL3_0=X,>?AJF K$$DLXU>"0F^$4EU/D?L I MLAW'.<4SV&B\R&$T+K82.D]8`U)A8):P/CEM9*U?#JRG]R2X[ YQ-EI)V/12 MH>&[-&TA=KT"X/ B8,+P-V+_J_F=/#Z^1W>:'Y3-Q_DN^F>41M/*BD+.&.1< MV3; IOX,5!J*G?LS5&U8K?3'8(Z,I:1UA8,YXQ.AZQ.A,36$.J2-<8+$UTVN MQS9D9=2VXR5AM5"DKVX=E:F=*]L9V.6DS& 14^R4,U;Y0=? &+M7$[3I[0!H M:L=M&*4Z2S<;D\4Q;$)/C :R3W(HZ#EY6$OXTFO 2WU`SP, RT4#R;$$%%H MKSLC%9#K2:.P$18DX'S!]60BN9XT3EQ/ZG<R/H,%<'?,6)\&"8LVIB::ST.( MBQ0S6LMB8FV;X!!_2D1./ZRA-&?$5DFQ4D(HMY3/1IM9BET`.N1[RMP^),UR M>"F7>%&= F29.5U>7<7$BLZ+6M%?';+J>3;!+B[ PE<R)H"?CRQ:3[!D5<] M_D4BDEYNU I_TOVIV"[&S%:.$KGY?+<Q0F'0J *U%6&%4!HY*CN 7UVCVJ"^ M.%:;L+(D&OJZ=J*A;_<\78/]VT#ZUW MY&E3`)X&] _8<4Z_KMJE'MC83HQ+-T[D>03S)'A6*X #I1#MQ"\8 =5X%\TN M#A:-%7OUP:+!8J\&)-U'E,38(1LH20L4,U?:%]]2-,<DW0W++ -"M+2DTZ[ MS9-/H[$$.ZMSHP*(<2!$QE-)O<PQ#M!0VJV4>EU_RB4TI3)2781;D)7O4AG, MW B#R8XP&$C_4GYR!_"3A0H_F37)3W;+4D)P][C$!'=?EW3!W<A ]&H9BSMF M\W%B; Y7*X'N`BTU$=D<;E?]*'ZJ=^&1UO< O],!:Y1-31SNUA&CF%0C-Q/D M4\K AJ 1!O]./)!0:WWO3Z!^[%)>I&'O%1-8?2&+XLP1F :-X\ <\DTS^#T; MPRZOU1PJ._8TS+(KS_W<'#KPDP"LM2<A>F _?!U['J+//??<9N70.#EF\M 8 M#XR M)C1;Q6H%_>)GT&92LMT9)$1AHQ)?F*T8?2,<H-=A2YE(=BI9Q3\G3,$9B\;Q MX.V*BO?+!.3$C^ MT3X;%H>Z\KR6=CP=,G;LBT'J[>TAH"*EH.AD5)),F 1$ MI?=:GL9$"AM_5,J#L1O)\2W 1[ZY,S%"I+>ERZ226,*/5/KF\B/?WCDK0J>W MY:))ZH^B\I)RHEPA=L/VJMJNI4Q8:H 8QIC/\^/C,"ZNP.(M9'?OB=FB'NC( M/9\)!;./\:'TA[/Q)L#W4 M#X UUX=0`OX:2K!(ZIC==M;0AC?7AL,YLN'PV8MH=!Y-)ZC?T/4.'2 ?^7GP M7PNA$ATZX8IT=X<3.=-78$(9#G]FZ=F9*)2,='PO'=*9_=BA5DO/CD_S\SMB M6H[ON)J3T[);AJG^=5Q]/4H*8\W&->N[+'2+/B!"\ 6RD; 4&UB,OCD46512 M0A89)G:6R &N^*]C:!HGZ4"64D8:^+[XYA".-4\.%6% O==%&B\%>F(N39P! MW +N8.%_IO^OO67]?^W?K?\KM,> #C0 M#O&,'G<5&E*=#C M>LK%KR4!CSS(]:_+P'OQKK +E.5 BJ(LZX3+_/M+NM[7=>2ETP<U 7+1T(86 M_*"5-!L#S5<#S9<XT.PN(NP 4:1=KF(QDS3,*.ATW:!?MQC:?D',C$!?UJ,] MW6 M:)7QAZ*:7L<[8,R1-N*E K9!NTN)V 6=O"I=N8 %27J!8!O4V*Y:>IJ2 M7A7$)ZG.!*I0_8#MJA2>H",=`5%=_.M,4*:D;$$W!#UE96':Z%LR%QK:W 9V MK>C)^.M. 6Q"?EZ:[1)LNLLP0BFI,Q0M>I+S]P\BYY\\EFK,CCZ3$D[S[RX9 MM)BN"^$O;BZYO23FN>1U&?%_O4P40-1L`CD,F\"OU3,].<F8)LV&"!W,280$ MQ<<08\)TPBE^?1"+6.W5B25_D>53T0\YN(&1]I]EOV$.=8#ZY M;X#DS^K3SD24+VX(IF _H^M"SPC>*[![PK;$QEYY#K+'*W ?(A[1PG!^*\>I M0K[>Q;\J'[22$U3IP8,\N\HI9GR(QTTCXK_ /,73U/,SR+F+/]0<`\C2'"$_ M!9>[71SI NI7IU!E0 ]?K0=5/$S>XO>?+W%Q:).>*'YV'+KN(KY' >4E^X<X MO4/LZD+ <C2O4$Z)E!-1<G)D>!S5/8?X-$Q80?1_5&9HVX^F-,K;VH5.1XGH M?X68ZD 5:.&:=)]3=/Q1/5)B[Q)RQPI!&] *W7:'2V1 /G2()8049-SY,F9, M]LO<:N55[R]ZPQL)L2E3Z80^!3HEX ,D?Z+_(VYQ='[')(&[(L=8"R/'6+.= MHO,T6;8&_R*8!5*FT"/=#PK/>/_.!83*C?EA*L^+Y$YPBLE*;NZ4.52QN7S3 MQ%OLW$(<0)AB)Y0C<!C+,5Z<41%V2C2^<3Y)](?DO75OIF<++E'/``C2Y[,6 MMZ,.E.EPF(?RG9Y'MJEWJ0XYZ2<*-V<"&8 B)4W>=<.R1Q REZSRQ#V+A*)$ MV.S79B:SC-7R!]"W3\HPB]*Z-+;$SG9R&:XUM%U W2AL:#N'PXV:SSC9(0. MZY3W!\HO9)6;.(8H5P&;R>&0N4386$"%*D\U_" 4I%_&[=LN<R8YZ6EREQW ML'</X D;WF(/V1)H]MZL\A1%=;,TIQB>^"4YQTB1N>0;LUY\DERSCFE):QY2 ML&:/?D:XA&2,=-I,!CL-F STF>4:=X?,A<1-I"$CEFOL?1"%7-]1<O78>LD! M`!=RD1EP*KH"`5O($N9H\Y#T MN"-9Y;WL'2[QE:-0F+10R:-,K*GMRBH_A?U[2GP:,?&W`0Z)5_ME.>Q-\;3C MVCT$$?-05L8^7+L9>*2 ES!D];KDI$.1A9N][_,+=Y^Z<#OW11;FAS ONPUM M[U+JPB0':EP__JX!ESPQ?,E.IU)16).<:<J:3%;7)$S\/K]L:,-7LLBK=BD/ M"6%U6&S]ZEX9X,X!HW.*J:.*+3!.Z*3(V-3#F)N'E-G<!UQQO MDEJ<^P"U< MY2TN5EB,,U1HQDT 5LC&)CK$-T"1)"\1$:,92P][&UJ(!HN,,"?U=I>HI=4Q MA9K\)8!#EAA MN8Q)*&6$!CUJ62LL;&HJ>U=PU0Y!_YL`Z#J!0CW?]!N:XN9XR)N">;]A1/SA M67GC;Q I7/4$N6 C/_:R*6P.50G$XJ)U-XT%<4:A6"]LT&<5,UP,J5O84?Q[ MJQ_F5KP:`!T)7U+-I0/;]&6;0(M"T8)(U"#UT7^T`PJ[*(<?O==WF1^9ZUO, MCZ3N3%9DW 1BY4'_<:,?;T0`$,X^BJ=#L M'0V(RZ2EDU(ZJ+8E8]+\+Y+4^5=D?)L?QU+1&:%J)417%"X'5RO:8IRB*Q*M M3\,^P&?*[,J(H>L2<RBMES6N99FUW%R[]ZK$V+V?2CJ[=TA.^O<M)+,^%L^_ M;J(G1&M"BVZXG0_27:1$G4"%ORAWF%B]-:4F6K(QOX%'<U'%S&D8NS6B[))N M30="-2XQ&+DB7\W+&I =92TW#U M)E[I8T$$?> CEW 2K?)T+57I- 7"'CNC1'SQ.O9[TLT;6[YI0G %>77Q089= M(.] Q&TOR')U:[5^^)HY5!:(Q9<4\^D*]27]B%+2XOZ,\L:2\XFK= ]M1!X/ M;..H4C<B!,=CDO ++5[_*5;*C>^BL D"U ^1"=]Y?HJ. Z),?Z#Y M56 CYKG B480!J$!N4ZO1CSP#A:L_"+/2D"R1Z-9>KA9H$Z)NW^+DDYSOV3D MF_MD-A[DT8 &WU8^DM5\ 8USB*6_5= _;*1"T0`.Y4'H2_'I-X SDWE1"+S5 M:-;_B.$OIDLZ%-Q'95:/[V+2.8 B_87_[-X*3CO<1W N\'DT P!N7%&-.[S+ M' HVCU<_!RQ.9'ARA$^UV^+;BV9NQDT4%HM&O8RRC:DW45YMT!:/]U!?'<;Y MAQKDZ]5\\SC%O3ID&V/8D] )>):/IA6:/7HO4RS.03.?LI/A3GSSTG"8+N3[ MN^UZ>]%8J13?XKX.]<5?.L"*HD 0+(I7K#B M<%YP3>#V _L)N.?!A<"]#NX3</HZBDH%MP;<1G!5X/: VP_NQ^">!Q<"]PJX MU\&]"VX('%,/Y8%;":X07 4X+[AO ]L/[FEPOP9W`MQI</W / :'/U8S!]S2 M!J4]RZI,VQM7Q%,;W8UL3=UCIK5UK.G>-::'N4<?K76;&NM]K(G H>5K=Z*5 M>C-1F56Q^ ?3VDCI8JE8K9&VV6PQ^&2DDY_2ITQW9=I+XQCJ ?1TEQT$29,) M;5<-:_?5;W4W-E+4]L:M]3ZW>T55;2WEX^K8FNUND]OGJ_=!E1- D]ZX[AL. MAP+!*.58N[X *DKE?:,H9^WZ2<B&^]-79B;$WVOBZBJQ]6R]J::NAJVIK*WY MMMOD<5<V*/D0[P'$PW_7X*ZKYQ[SF!H;*K>Z3=50=FW]SIJHC)5L37W=9+[[ M;YJOD:WZDGP9F*^!\[E-.VI\+%=9:ZKFZK8BCFEK96TM042\53>EO[F^S V] M]ROB/' #SG:NEJUA/3YW917TT-9M-^+?O%_43/C_%0`](9[\SXS*AH;:FJVD MCTR>RD:3S_TM#F8P%,1ZW*8-ZF2 AK!NW_::.FBS"=I<4V>JK(-:<8W8 3LK M=Z^(M]>Z*QO=V%2V<BM+<D?1OK/1U, U-. J8-V5VTE]ML.<`TH0W$YP5D3Z M/CWKIFUPU\&HU==M=]>Q (VXF3?%K?0]QB%BXP3=E8A;75M?259H0WT-K%', M"I J=Y72AT4U6WWUC?75K,E90UJ7FY8VT0_K:A[U5?IV(UX\SG,5;,,AN#T^ MC,AN8_K<YZZ)C^D6/H7 4[[LT_8%GZD8K5$?S2U^HO/OC?IH;_$3R6N:WB)O MCY&Z$8('.0I_&%]MI;395JK '=F[735U5?4['2QAH O:73[OO&H%_:*M9.< M#XS7[:L#YMH(-7>O,)DV3B9'_GU38V6UNW8WV5!JZC 02':YMW)DGZJLPVVP MXF_2(-.M-RC^2QID^J(&P5.BUF^BYM65-;4HPD2U#N?'IT56:K1H<C\IVVBE M/V3[3S6%()GE X ,;=/ JG'L!A%I^T;8^W,:\VMJW1BB_D:P<FI!*J,>0ZRB M^BJNUET(HUOKAB5X'==;;OWV[0!85U,'H%[$<KI]C3 );+#FKA *>2!_^>IW M4Y=)+!>$-A;*+=4Y%7F55*,D$E.*HT8)[ :W$GV.BA;O`QJ57^145?F(O'^? M;F-DADWH`%]%K%S.YP.)*0+<H7/!='-C"ZD?DW:S54IS*,H]V4),7P\2#K3Q M85U)G8= 5-EV;74WX/2&9)C0%/4>A56W34IP#M8'<EAC#O40TOI\`C5PDQPN MJD;GJJERYWHJ?1OKBU B?G W=-(W-2J7(P(9K/4OINNBJ,^T#C>K-"6W'J0X MX'&(2\9R=X.;^I'2VDKHXP9DI#G4"NTZD!)5`1!:*A'NF0LJ6A/B?L-6A.'+ M9(SMF(4Z3^77<HT>I*DP)>CERU N0NSUA&7 /-86<V[?;KO;1]AUW5:E0I#T M$M+=6+-UFUK#E5$CM)'(\FNK8"U]?MP`?(W,!P>H6R _:-?E%D&$-!YJ7JR= MZ+&-]9%NI&Z/QH(>>DKI`8QACT"^9Z9"`.=7V UL;4G=3M ]*+W.,65^+*=R M:^L;U=E/E9.1J0<-RZUT)[4I,H.ATLC$\ VIB95%^J\\ D$ZB**^;MNPWK8N M_;2JFWZFGUM]<+XT5"FVK'E5BAEC,OAXD-^R5?E7:AO!GPU^*OAH]$2!/Q>\ M<X]:*?Q';C\"?P'.:? 7 K\:_$7 TX\J+\Y= 'F^"_Q3X.-E]%'POPW^(?#Q M9>_NO9$+G9^^K?B=SRI^ZU/]V 64=4\+\0\"?M>!-P^8;C)>K>.*;U7]W]XB M?H[J'P;\5Y\9>&8A]==GQ&<VW9S^GDX2*H8!*7ZSXDT3M?E-[YLK/X__6M]; MODNE7Z:67:O"MV-;*7(E0^:^3ZUKK(K?HM:Y5?7WJNF\FMZFTH$Y2ZR ?JS& M2P,$% `"`` `4V!_+,?%:#E^,P``'&8```H```!);G1?1$TN97AE[7T+6!1' M-.7LFKU)ULVZN1J3O=GLWL3=3;(^- J,`5'B*]D8-9OXBMMD3-:H`11T_G.J M>Q#CWKWYOG__[___^]E^55U==>K4J5-U3IU358/%<Q]A- S#L S/! (,<P/2 M0R!8F/_^>01"2?F/Q26UY74)94NJS<D)"0G&H7>;C[X=\<&H[9H9'XQBK(4, M,T.CO:7>*>8G]5&:<"M3`!\)2EY' II>QBBM\_ *82AM^(0RD4IB&R56S<.' M5N'L6? 1Y 6^(V^% ^Q''L OF66</36OGT>Q$&;>AJ_I =KRI36/J6UM4-^/ MWM[N`XO+'Q4?5WC<W_>*V^!:F#O M^G&LF8?E94L6E^=7+JJ=55,L+A663%HI(%Q!^=)RH1QQ(I"]7)BRJ'KQTO+\ M&K%:8)0<++36+*D6RFLI14MK'KW9;%GM$J5Z?XE*`%(P8U&=4%A;6U.K?N=; MIU97U"CIAPJ+\ZUJ?IZ2HKCR:ZKK:A1J:!\6*P1A>?[2FKKR_L_)2ZH7TQPU M/7E);9T0[ A#F;;DB?)9-04U=06+!/JA0LXL7]$/6"(L+:U>#IG8_J(EPN2: M6CMP;6GY0X]6E3^&+,BO+8?J]O(G%BVKK*E5L)<`UQ;5W<Q4^U%<LUA<2KDQ M<]$3"F0_KV?5! = Y8586UM>+<RJ!/2+IRZF- /G"JN?7%);4_T$%"GC5Z=R MFL?*Z^H&TJYP-R\X7C5// $9,Y94TZQB`%[T>/FDFA5YS/3"DIF%,\S)#Q3, MF,&4V M+U.3_+W)UY_F?^%AE- AF^ZQV1Z6PS,+(,6! 5%HV,8P\`E)2JUP- MKUUHH4 %1MZUEW/(2: [Y<D03X=OS\F5%^2I`)188.2LE1L0R<%0A+!"IFNO M.8&XL?B]F7Y'096I&#W"0?1A**V0VE1G 5C[8XPU$,L[;P0"KKV\54X%3D)3 MKIZ $ 4E%E>/1M#Y M<VG=^.T:2CVMX(,6>++4R&=C+_4>$6*UB(+A ,$3$(RL[,D%I=/1`<-C:L=J MIB["DY!L+]BS0E[V3Y373Y77!N7UG/+ZF?+Z-^6EQ9<C>P2^*K)?Q-="O[!C M'33G'[O#A:]1.Y[!U_ =]?B*V>'&EVY'([ZT.SS(KQ&L8&%VPQ S;5I,XN-/ M(B-TF!U%LW7![&%D!(?9+,WF MDAII.>D\(8UPU.' S#PN&$+G$$/ 3^^L/H M"R8(YVD7AI-H3 <&NVAA'XG#EVLB(YX'),]0<!PCG2,0AY\X#U/E<S )L[$- M.CIQ?"A_*&$[D=Z+%0&V]&UH4H HD7LCU G.D6 >>&25KT(=J; O"*JCH"L` M&&VJ0_Y+%L-L?1 %^:^8NHKJZP-(/7.J8NM^^&B6^8JMK9C[&T!88=%[4!=6 M]!SIJ=BZ'3#LJ M:N/(J[I!1.]J8\]^(Q7U0?F75)8#J;2#YS-!;GV5AS"]'[([0/?HMAB ;R0: M`: :&H$I9T8VZGUQL%T>!7VT`.\T/F=FMO!W4X!<=F8RPI BAQP6+&IUYC#B MU][8]U! 2/1>4)8E-OF75'MQTON>)KW[1=3H#QMC060":Z+;"GY%12 _HW?5 M&6:FP6:]O8(PSB%70?\L^9I6`(4V?AUL4!J/Q*&&HNH)E*O/\Y4PBE(UA,SX M%6.3-T C^4JUKTOE==>I8" Z30?Z$?77%N11&:%<=:9GBX,=\C7=35X`F^ * M1CX#O MK7 O,$X'/=1)<5 *0T 1I]CEYZE&9J560!2Y\*:RH5CL4LJ.(GG1+4UWD!%8 MU,;NHFMCWW54U_/F8+_J+_! --%NHPH%Q$WOG X96W"Y(]&X])&4>F?.:+T[ M!;*K[G?()<I:`FW'5.4ZY/S I]X]!"!P84\?*:0TQHYT7ILH1#JO/2QHG=<> M%$.]3VOTNW4C;7(SSZAC&9[OS!K)J"^QPQ,0]&4.6.;B2^3-%*VNM2 K%I?B MG912&O6[]1G']6[*F*L)0KCK:H00X \M\O^E`>85!-YTTID[6M2V%AAUFL99 MOTAL.=*#Q*Z)F D&7FL8L[8;,<'JI6UP!/RU3L'(:_P_<H*1PHAEB*(1& >X M0Z6XW<M08<S#M:^RHP[U/Q=<3.AZ6'^!!3[ $!*W,5:#MO77"H"6HU\=/?W3 M&R35W,E4, S^06#ZZ M0$%]T#C8>2UA+>\^*NCR&H<Y>Q/6LC"L5^:19A_8.4*_Z8$I;*M*4\F"[,L? M!U& ,> M,BR<JR(Y96[R7ZK89+7*3\$<^:F%GUWQ*Y]<C99^$^^3RR&A78^K MTZYR74A"(1",%DH%F([ ':W5(EDPTU-L#KF5:F.=%6:Y`6PW: /RKJQW*'XQ MT:ND`%AG`_^'.FH]0 15V.%2/"TEX?#Q M:)AT"PWL_PX-X"+=I*)O`!4='66V+0R855%->L_=P*(]:)GMV P4)1YZ_"QO M;NJ[_,8.ZN-&(]B<A=2OE;ZP(?'SN5+RA"[PX7Q<F*4+U& %=XE%QU ,4[PJ M6++0H>.DR.UXJN%3ZY8"N:*.^O9^+B!R\GX3PPS$`W/ =8&'485V+#HPS:L" MIUT<Y5K-,P*'A1;>'X93R<);26&/5;Z7^L50=!%:\__'XI_20R(8 84+5+O? MNGT[\,!NE:='42\W%CMGVX69)?;*L5-A<K='TWT( UW^#SI\AB[M7BBV"!%V M>8[J2 "'%+\*K5CI8!L]4D+_%Y=W:3)'%G"20P?*:HYT D0O!474?":D1*X= M#E MPX,NUMOE]8J%X=H;"Q1 J\,D!"DP&JTR+M14VRN%WMH^"1:3C)&U4>A^M2BY M)"=S):M_%D^3T!XG.0\U_SVTJ/EOH9F]M8-I3HLTLK\!1*[TR!X FN8OH4<; M9,EP6X^&!'MD$![#D2"K`-$,HU$:3B8XO)-8FQ7+Y%TPC<L /T$N5*8'$*[K MRD,-N!M 5P>V``9VP3SDK")G(-O1^/9:^TKD/P%349E/CV<89_:J=: D8JN8 M&UI,5O$[G/"2&\%X:=.B_^E4?5<55(A4`+X"`%_E,C,D[XU7MH90]S<T4F4; M5:4)Q&'ZMGSFUOSUC<%U%%/JU I].FOB&4J_=E]=$&:?LL1TO!V*'CSN3;C/ MB$4DQ-7"NIN$>/<YX>[?P +!"$9)XVIF?X.6EW *>^YKT-!7TM$&38--HV;! M\^;U]:>N]Z=NJ*E&BO /-\&5<6D$.7 ]5,P O*N)3=\OC 9KXP?I!X61[BXA MIOE+'K+N BP.LF+<7>(GX-.X9!9"*(00WQ1?(V\!F&[W47$[^CO_Y3Z&^2HU MV$BA3MU4`'UFE3WHI/VCO8R&(/B O0RK'>>O53ZG;*M88+J"3=_R]4T')$8= M%)VMQ"Z_I\YY'VHP%&ZM<S4L,Z ]FE#RA%S347* ,48Z/"8`H%W.E3!Q62'6 M/N\J?1^E=>P`6N.#M.(I2>/DT)D-1:$/W:3VJUNH7:A0FPX(GSU)!KF^9B4] M[M]\SQ308D5:9T(K#X4^-. -+Y7BZY=?ZU/A8.Y5ONT"5^9YG+B!N LQBCI0 MI474O,B3:$S4G\:"S(/"(+DA .Z;>().MLI? \ZK?!VC?2XT1V5H;3/6('$? M05QY"J)77H-R*>X-A'H3HE;M66B1D6=2)YW;OF&=L -)99]3"-^*1*%=$JYV M$]DWM>_2F]U'$J^2(V0?Z2:KN:GD\TMO/D3VPZA>?FT'#O,]^R^_2ETID'93 M4R-J)RJ38UAES]MJQ:'1OP7VIR+Z;5]2T8>%BS6*8=!!( 0U`/A_E'YYHD91 M`:P1G4I43& *F4Z:CFZAGDK*!D^7,"QCID&,(MDT)_[G_B63ZJ^A-U-[4GF+ M$40W'I=BZ6F#E,]*=9PT/7XA\:G;UD%^N2X8 <B1X60U3\T;4LQYQ4!#CBL0 M*89[VE>&3N\^/I,TFX]V=Y-]SI8DY[6,-:'.EO"&H5%-XOF9K6'C0R^3#Q(/ MOEW^E>+Z-.;KC/=FA8C)&76<,)Z8R70N\1MA*+'S#EN MJ>/:\NGU(,GL#Y7JV*Y\7<)N%$$QQ-1EE]M55ZP59[Y]UT:TB^44)1- 76CO M9 RGGW9Y$^;[$B!=WXM;^K4?S?-59<ES?J :&+B^P<IE'X]H'+^H/X.>2%EH M2W./UM44"4N9?!AL?5+:E\&^ $ZF&'DQP+Z WJ4_JW\]% =+2FE_64*)/.02 MG<SR!J7^=R""(TGGB XHH 3850(<H2UE00JN4$=!-P:/;*3"'M?J'LVPINY/ M28.G-83 ^D273Y OX!CJL-QJPR48_$!U+YC*70&U4.-!<'58'%_B!8%P5%[) M`O,MEXHICV*T,L1T$J0&5NU6]F[L-8B'515<0W<S7FH3AB,B,LSE`PN>V/M( MT G<"FZ^=K>D.("&KO<YX3[]'B!5:D&"U2)$GE._V*C#RW[PIE=]_..ZWN>% M :]<_(K!+Q:^LO%+NST+7EBK= >>)),+]1=PHXV4\L R;^&F-L\RD(.-="IT M2,6'VSQ"`*EG&/WNX8%"\*/T;CWZ>KUCA*?T[UXFV8:U%J:K8+G&*:218MZ9 MP>C=7T< 1A 2.M EUD IIQQVZMVGH"A <1*1U^\>"2A1]1RH/XV 9;8!H._< MJR=)^*&KYW[A?MSBF _U_47U!ZE__G[]09QU_O?J#Z M,-&ETE RK<_3+A5O6!FAM-4]?T,_/?X);84;Z+TC>>^PX";Z/:1X S=6`IJ\ ML^R'I=(-"FEV>4L01/QK6R'=WG3U/J#W8*K^H%,9!06OJ_=^\;[O4K!1+^%6 M4_WYM< 2%4%G&&YZRD7]C<\DQ1L'-KXQV+CQ9N/^^^H/\ .YYNI=*L;5G_^[ MPNKZ R T"B'(SZ7"85=/)3)PAE#LZIDIS''U3!8J73U5PG)7SU-Z-Q[YNGH$ MG4N4/"#Q MU[N;:&*QWOU "":6Z-WWTL2C>O?3-%&C=Z^B"5'O?H8FENG=_TX3LZ$)FEBA M=^^AB0J]>SW>P.B9K'>[:*)<[WZ*) KU[A_3Q.-Z=R5-%.G="VEBD=[MH(D\ MO;N8)JKU[O.0Z'P=C+SN5APU\;[N5N2PF.4MCE68;7/(7_2B9245?BKF^E,4 M0"$&`*!HOUIT2BSU3U/J"HG>TECPXM_JKQ5!HM-!I*3B3TGIIR7R'[Y!-TO& MP[ '`529+U!A33^N"!(W#BN4GB M3R:E:J<5V6B<U <5&XHW017_?+7M8?VB4T&P_%R%5'P.*/5GJ=V_BQ3'H HM MCFVT]7F+-S64;H*>^T>08K6K2F$%P5*H77I.*CYU:\>4C4, <CV8*COQ6!JX M+95>!(:O!E=4\JQ"XZ;4*16ZI=(&S]&U]ZP"X:L;04J=A)9UG^C^Q'6"42[9 M4"!_B"D K?Z(%'\$2,9> ^IMG7^!TATAM*F+_A_L1!T%C7 ^%O1[\E&A<SLB ME4(8)7+0^4%(B4V^WH.#AQ [7Z2>`PJ?,A"B046Q$3 !W!6X'=&T_D9%[T'? M )Z=?']WR,?. R% 0OVF'Z=:,5:97,]!_AA<($Q'I<+UW:V('31 X7K3T:A" M=U1I0T2+$ M5`*L0OF<*78/V%,)+H4>(<O4N`Y:>WP,<\98>(//7F]JCYKNC MBANDTBL1QT$L48H_)H57ZL] NV"N2"]4HA7]'L:,$$^*KWA+?9G[Q2&TU3]. MS0>*KRC];A 6T:+W./! 3$\*-X+>Y=4N<P$TN:[XPR%J+3R0Y"WNV(EK<>*^ MW(H/D](-T*ZW6"ZQD=(.$ )\;RQQV -Q&^C&5[S4YEHM!\0"4GI8<U0J/0R5 M;%XOF KR`1XE&W(V0%O>4MF&]:V(`"R(`3 2%!S"G[M;$Z <N0IC=7X68HX4 M=Z#X M602EXAG/R37IFE]AS>Y6>B/H_NF>DRO&0"5J-I4HJ,20WR<,K!\*H/Z/_TOT MYY >N '3 7A26G^\Z:3&?-E_4_H?F_QJ0H2.\=;W ="?(Y7KFVTN7HT^O6_ MH>LDH"QI+.Y3<>Y$CR6S!18:'/Y B' W*=;9H-7BZ[=""-6*&96?.5]>]9)_ M6&URQS>JFS];T"I7,6PVJXPW=H'B.;X-03HX>0'0(>NI!NZ3CUSJIP`W!6CC M.-K8\%UDL/Y=;)DVS&5%"YU9PX4?^%PK`<]9F]PY)&B![?4I3=+8.57'M^51 M7Q/W=1QETGYP9-'%YZ5)7!LJ=J9M$BUW/<6Q=1R]W";5<J06KYQ$DU;]6SYI M7W\5C:_E0S3MD((INYP[4L$?J=#Y M$3XOL$O'X.+4?=G+6KPLWCED-)^HYPPV/*V3#H M.9M!72\^PUR70.;QF9^(WSK((?D>Y"7NWT2IIQP<('.0`_* 4#P2$4(">A Y MK3=?!^MYD^JW`5T7T,.2#D M3I0J'3C;">1 F?QORL&>H;^^>HC%*SXI\A:;K[^!IGI=^&Y\^6%"[]*J`Z)I MEQ49.P`T\IZ ,!&"UKN<<G3G%G"8R$')P0%?2N25*->AY*!\BE%'+0H^?MK_ MA&Q =#AU1ZB *GJ +*61UK);%ZJU4ES>:F,)R#M5EU_^U1^4'R$**FE? 67 MI_+;)S7+]RN8=$ 41X9K1BK8EK%TBN%-;PH;O$],-*'-])P7^IJG<Q [7R9- MTI&G=:2.EY;S]("#ZB&== !/4N4/ 1<[L%&ZTRI-Y\ !G!\..8RBQD-5*H]$ MDX ;H <HK3W&Y8."][74_0\\1XZ15ZN<W8UC Y<D 8WQ$B?-9J5E7!GT9N,- M-_O::!(OD>KW:/$&J5?GV0!?F?1>\/+P>>KV_ AZ91AZZ?*QIB:)?DHQ\^B^ M[' :F11K891;3QT=E<OP'C&=;;]2;K //4KE% JKKLNCU#OP]+[W23 ."HSQ MF4YZ4U[H !+O. I AC;JAI.AML89PT.4E\:F()P*_=D92M'QF _U>XH9;^S4 MS _7?H [<N3SYK/:K?2 [H][`0WEO9< A5*J&[*EZ%6K+>H%><[G:DXHRE2Z MLGYB_^UXCAZWT+O_>$QMS!R!"(4:4(\Z5^]U(=O5>T.8Y)]V2S^'0C\E"FAJ M:M-B4W05UZY24_17%W I/Q!WF-Y9\0\)Q'4H*0ZXQD%+G%W^^0W52!&H$.*E M&1HKE W.I3+YJ^-HIO??>!V*4S\0MQ>/M$!R&["J:[VJ4DSMY(^8;HS,/"C& MP!<M:9RFD:;S=,O6U1)2?^W4:MP^=]V(6:5WW3"NC=Q.7=-\WC^Z_L:?(;EJ M2/V-_?!>&[F'.K%/\WYN)[8KV7D%H[+]VV&5K<?I&L8:119O 9%8(]7?D_BV M=>O5']_,5O3K;?:IP4[F<Z[>K+IYI)B/:A>L7:X+0%BL6 G6LJLW5.^* -I; MD-BH)G&LK02DMU"VVDH"*;\:NP:8^1, >^Z<J"9A."F4X74W-8IM)?; 81 [ M_U?F)O]7E8A#GH7 M"A"O=U= G;Z1X7ALMBV2W V[]*88.LE_=:'K&BAXZ$1G/MV*`%>8#RV]6.MR MM;#Z=6AYN,[TE93 Z 4V4E23 K<WKEX!G=E6N QJ;2'B#K T%IX 2''R(UM MD8 [52KN(X<2#Y)KH4<R2WN6)SI77] (XT S/9 C^URG0R^_>F]%6U$ .K*( M$_>)(V K .HIEN!MI( M^?.\7]./H?\T)XB<F2J$$E[P%9,\_>07E+()Q;V M!Y%RN>[G0 0HEGB;_!I53K&FHW;)'B\OQ_MX"? [HT+ :Y<_I"WS2"$`^:JZ ME$5J*W*\ZEOU8QQ^J,O7UB3X\/F4\P?6TTY8+\*NT+JN9JV*KHJ0Q3Z5A[[6 M3:&N4WVB=COUR%J[/]&<JALK-4N7/?'#ZOVX.5'WK6>8U'G?Z<1(3;*T5[-/ M^IOF/)W7:%8O6#C/YVD7.;#UAW2?]6V ]]#GND\_UWTV](AO`]E'6KK/*A\. MKK&S\5!C;_))R. V%!XY>^3(CZ^2;V".[R>?F)LJ?K$A\QL]_KR<T:^C%T!Z M1-I6GE4_`"8V"/,XPBAIGSSWYD=_O<PCXJ 2\]%,GQ"V/'3:7-^DN<HX :5Q M, /,$6%NQH "$"AQ>$7]*J,AP"RWHN<"%HNA0:/<=T[WHGV:&DLO)3I(-/W1 M4T4&./06L%?R&+''IYP=/FPTU/?BAF!MJ7(+"'!-(A]ZP7)J_I)KF$4O[$>W M%A ',8ZJ$!*-ZZ47O"X !)I_59FX RO0QE<\0.5*0M#V]%%K)4.+'5D3706J M8A']N2;GUT.GUEJ8"L+.H56"U]O5<VB2KWO=)42_3N]<?G&*Z K0,*IZ.3U/ M+N?I7::C40<E4&*S\&=M*TXK2DTYQYSC0RN8`W7) 5N7CS\ B+;*FP&S\S%= MJ=.INZPQ]>C'HF ;E*,^:1EZ]89&F\YY)MEY+43OP3OY_960V4(.S"/,`-[9 M0 KV$,<HOQTU$!NH;EX;W"R*V&513&FNDIYRX:\'JQAE;R!9^6TK0.56::I8 M8AM"<;\C$*908Y FV5BE&SA+Z<$\\H3>DP`(J [4':S 5.Q0IAB/D]$IA!NO MZS12OJX1Q]WDO*K1>] _IP,K6H&W"BOP:H7*Y<%*=^RR53$[_??3!>U::) K MVMW(%<H1!\*-O:YR0GP?9DV!H)6_QJ&OX\C3!I+/2^8RAU4^A/LR^2S^/*P] MLWEM8L9T5AP"W>")7=?5XA0B879][J<70-3;'\%]2A1+:9_B]SBJV$K4[>AB M6-'7VA1C"=X%CE(<8&6)TAKKJ9"#P&*J?B6+6_.K2M3ZE1RO_,:YO[Y.'%&) M&V7TJA%?$HC;'&-A!F)$U38"<4G#I3A\J_L,2 /4*[>QDO <MP6_`Q96,<VY M%[3',Q5[/$FU?,4LL,<5V[!G &UX0J/:ACI2V$-M-;"WNQ6C[MSEH%%WGEXS M%.8M)/L3#VV+-G==>E/O&0WYF=?T+C32G+F1HI]T2ZO[`F X4R $P5M&F=?J M4)"J8YVX$:]T]]M+:G<[\:Z D,CSII&SXMN[^]F1N5<,_057D;GVD"D,*85 M['CZ&XQ $' +H[:ZT1^NMNNZP0 FZA0`R;<8]T'28\C!Q$-"M$J%WMV(^S-M M.QIOH_';--Y.XS_3N(G&>VF\C\8=-#Y,XX]H_ F-/Z7Q*1J?H[%,XPLTODCC M*S3NH7$?C?$79($Q+(TY&NMHS-,XEL8&&L?3.('&1AJ/I3'N[-QY[CS_NF=6 M>9VPI/KQA*G50L+XG(1)XJ./+BU/J*NI%1*8,8L3GJA[())Y$O0#ZHD?C;(P MRT?]HQG(]?]MN)M/2'1D_U\42BC'OYL4'<E$1\ZL$1+*JVO$QRL3GBA_HJ9V MT0TYB\L7?Q?W,NL=C_(VFVMH2$AH"&O01H=%A.LX780N,CR*TPV-'JH/X:,' M#QD2,BHZ-20O.C_$.K DVAY=-G1.U-+H)Q*6Q==&/#G4&5D?N2["-=0=_=Q] M>8VM_W?V5!]G6<,Y^Y3\1]:M7%>_[J5U#ZV;O8[=<H/;<D/);]YZ8NOIK=>V M;MNZ8RM;?X/+F\LM>HJKO_'=?$!%JQQZY=PKG:_<>.6+5^17+%OSM[[URO97 M6/>'[">?L:>N<J8U4)6QG5APXL<GUIQ8>*+JQ',G-IVPG)AZXM50AAG,*C[. MRM_:7P7?B*=!+=\(;YOZI_WQM4DM_YU:_F=X8[[;;&'>-EH8&=:4WSDLS$>. M-&='3FS.?3DY.=:<E)R7LM_(WI7=D?W7[,[LWNR_9Z_+?BX[)OM0UCM9;V6] MGK4FJR%K9^;AS*\S7\Z<DIF5F9+YP\S1F0<GMDQ\9^);$Z]D?)UQ/*,MXS<9 M*6U<VNBT^+3H-$W:^=13J>VIOM3?I_XV]874GZ8VICI3GTY=DOI8ZI34M-3Q MJ0FI0U-[4LZE'$[9F?*[E%^G-*3\.&5^RHOFS>:3YB_-U\RA*=$I,2F)*4DI MA\WMYF;S.^;?F25SL7F2.<V<:+[;'&O^+"G4%&<:8SJ>5&PJ,N69$DR\*3[I MI5RP=!B9,NTO.8MR:G)6Y[AS"K(_R&K*^A/TN3+KD:S)63E9J5GW9R5D7<]\ M_Y;^B_27TU]-_T/ZFO2O)ER:$)$^-)U/OSKABPGO35 WP31A\(2/TAY.FYTV M8FXU'S:_:=YI?M'\BMECKC4_92XREYCGF"O-B\UWF?<F"\FOF'), TU'DW8F M_3'IY:212=-S\9 SB_93SCV>^V%N1^[[N<VY[^;^+/>7N9MSW\K];:XPT3;Q M[&/9]^0DYJ3G3,D9E',E^^WLK1,W3)PW,6?BO1,'3Y0S3F3\*6-)ABUC2L;H ME,R4^U).FSO,V\W^Y+O-9Y.WFII-'::/3)^9LI)KDI]/?C7YC>1MR6.3>TW? MP'C>;RHQ+3'5F.I-CYEF0Z\C31>3FI/>32I-FI)D2HI*:LO%_]1D*5"?F12? M:;WI&9/3])1),%6;*DV/FAXV.4Q6TS13`?#W'M/])JVI*^DO22U)OTA:FS0_ M:4;2Z&3\?SR4_W/$D"MDC<M*SS)D[3-O3GHU*3X7CV7QAQX/)R]+7II<F;PX M`*1A?RSE7B^6]4<```"0```*````26YT7T-7+F5X9>V]"UQ31_8X?A,N$C$0 M5%!4U*BA B(FX95 R TO!46)(B"*#Q00E-="KM(6*_:"Y7J;7=MMM]UNN]7: M&+=#DOZ/<?.*2ZJ5E545*ZKRRY3+\\O+*RS*987**K9<65*N3,[(5)95%!2& M A;W[H3X*"EJ:7A50;XEGZ(2*%??H<_4LK[U !NF\,*:Y9A^M'M L%Z!FWHB M0Q>;GJ4H>_ 4\L+OLQ^%"< WO^L-=:W)2NH]OXD4Y1AHK2>"P=MVX'OH`9[^ MW8R&0VO/;](<TM <WJYBJXD2:C?00M &_8V'Y+QA`U^Z 7X/IZPI'MO5GF X MQ/XCK6'_VI<O7MQDKP14H8?-Q4%(C <A1Y9M'RF2(H2IA%H5+5A4,B%/)>?V MF DA4HY)"$[BF%!7"Y$E"-^DC `$+W'XUAE4E$4&]:0.J>9LPUG+,!. <[SI M3C=]Y:Z'L[DFY(J$<&42:T"B%%Q3ES"XX1" E:_U)$PCU(0[O+KQUZKDUH4' MC> =$0Z9"SPI]X#R4G8 MHMX'05VCV5%M' C _S8`=:0]HE(T_ A)1(?:K.WK[GQ6AGD^J.'2`>95 /DN MEEVE%?5ODH1$T; -F[R [ />NIH U1OSH,EU:(+:MNXZ-%E+$A)VD&-US_B( MZ4*ZRL0GJY20EY*FN0S9? V'X,4?NA*$,"!'SG^)$V>?A&*G-!QE0X$ F']( MEW^%912W)X1O)90X%'T':9-B.P#B[/.Y3N6:2*>J80_,[H9#NU M`13(:] 17'..8[ACR&T2`OJ4:XZ9EM9PMG$$NYUSRMC!(N'>=7JUQ3-MVCZ) M&C*2I>QD&/P "KBA!$[(6.R8'V6AG: >.*<?*Q>;>7*E*ID4:IE"6SV 7CR9 M].,T-F" V'V_OA3P-H(C#I1J[<\(:( (:!"R-ZU1D :%!+-E."2G !:ZG7]( MB(0=`:63'6,< V_K(.F_GY2EH5S)MW:3T6O\L_C3( *:RUQ[)'>J<V/*<&&1 M$L8S:&/*"$5%BHS(0$H0=#IP8TJ L-8/QQJ)RX"$3/&0K07'`'L"LT&Q#OBS MSXL:E")G)X(4H&8.ZI&"`&OA);X3T"]J[K5^]1[_:AC_U,=!9ZV5XV0-\18G M%% _Z%$D")B0A?*E!J&#R #R M)L4ZF&?66DQ85'XPK(0:Q;I:5>!#OK?ZC/RW)JN6PN#G4>8BJ+=,S'"R<B<K M,]N=8 -!QUG0DX8T1<,3N)Y.AU4W&!4O=X(:V&1AH(/J!.NTZVP`W[)S*:QC M+[WHF'MK_8/,8C$SWC'T]LDM\ >;=['#H&8EUG3X]Y8_R+5 KJ("B%=40 <5 M%= G107VT,5.PVQ%P],NVH:+M)VD!NZV)/70- + U(AD9#ODO M+7V/WHL^8"G:!ND2&*00#L M;)O?.V0K=JG7_]"QCJ*:;M**7?L\)5U.I]D^]ZK3R>T)1(+S^29V`*BT2 <J M2Z.$[_ ]=URB.1!Z`!6!5/'\;NZD9-P!5C(=IJ1*\>AJ)_0-:2/SW #S'/H5 M#D%#NDOT>PTHF#OG'Q3,QU4".:[8106C$V?Q)HO%5)1_:*^[Q_J ZUD?[C;( M_= /:/]F-AS*09] [9 E12U)X*CN2Z(E^Y(\U0N;-VU,HA7;6_4?U0Y;`LO? MG?BM#WI*OIJ>L5%1UW2 [JHG&ZW8;K/.])2TNJJDZCM7>];IU);+^DYVB&+G M="<PTF'NL:]VD!$S05/%\S8LBNHK_R)DJJGNZD"Q`DO7[V<'SG#XN,:O2=VH M$D7%V<6*BLL+%15.G& &F"H%HA);2918L?,M%>X'N"*S73L!$&R?IS);2U5S M$[HXVW7%]H.*[<^ ,[+^>^1YPU'+H%NZM.B6!EWH1CYZ0^IR`VELCUH=[5:_ MW4V_(JO1'!*G7-:]B/:_I61_U2-_M_3K(K?X?PG]C7>G_]%[T8^C:1(^(% R M4HLD,&) A2FV-W/V%*YSO.*1W1[HA35\\CC2`W7U'0_YH$QEF^T&T*VYN: ] MC$5<9U>MEV*73=]1BU:O#FP M9EPYT]0VEN]HNB:5'.0OK-KOW71N;& KK6[T(G6 &$K^F=1PF?V8NRZMW0?K MM(D<^).:T6 #FXJ]LA'MENV[%=L_2I6TH:H1^9.:MG$$5&D<R_Y,6$,6`& E M6E3A0%,"T";*9P`:9&U7)'WM5RB+!"?U2\A&&ZWM*TBTM4AZA$BQ'12 8M<\ ME9%O)52ME6IL<4#E0_=-QB%I0C;/,=LCKSF=. :IBEUYJFFYN:&'774)XZ<! MP)^,_H+^&/S6'G$$];.^9J1 N?[+VBN:LXZ1[M;'C(TC4AK'ZO>N'4E&"JJV M?Z'1J_9GM^LS=J+7^#EB8 MT/, -KABW7I(XPXSQ#JGQ+50P?Q2BW8UH-E7KUH,%91DP2*+55NZ%_!O93"8 M;#I[UE `WTGE`C!U+KN2V^\4 '"-[<(;.V["ZAG:"DI)W6!3U*N D1F;H V> M!=3+(;?!%W))Y[A6YVTBU6U_]+?_!M,6!#E2A&_1W Z;'7L/N-84?ZM%E9Z- M: DF!BKJRTB.5%%/D_H2RQ+X(74ODBJT9399;!L\2+&BOHLBV8KZWW:W/$-R M/!3U)R QY1$< /IA`V!6!\+/'?X_J!5SW34/RQC<"!O!I?C+A$7^7'.GD$0+ M/G98X6MO_ G-\2"'JI^:.E+KN;/$:.?W-5Q6U*NATV GZD(OMKWDX5K?P,4S MUUWW8(<3"K/\<1=6"D9<S_[9=9H=1;HURY]KZA02:$%#NF6!; WA;7=T[#IV M[)WNKES'CFWO>:/9J??LV)ES8L=""7UW[=VN]EZ]FROMZ5V+]-;^9:W*[,E2 M>TC<+)Y-66* R/G\%?Z(QJ;_[,(;K$<&?[5AOZ(^#VJ$GN<_;LO$A?%._0F: MB+^BL;V/6NC"&Z$?MTV6]#D_0 MR"G"=!&\_"BENO._[T[NXSV:;H[EJ^FV-N1CM_P2T"BZ7<B.C9+W)>*&:5[; MG>*_4]2_)PISNI25[U"33332? >":A07AXW3*,-DB]PPQ2(S*!4-#V.+#TB) MFJU9*<GN3>S$>Q'KLA^GS73$6T7P*R7FWA""[Z782?OI<;6J>;4? J4=E=F' M /ONU;QG_J93[%+'_'[6'U 7E^"Z:!7CVV <=P\DO$VD[UT)N/FX\U6GHQ0- M\ N<I/TBI_OV"M^V1"=>77"_/Y"LDF4+T(4LH50ES\H&!MEE(U!/^.GWL31O MO>=/Z#G M+$0O0_1*1.^'Z /MSXP&A\26FUO;W_PC\/JS7W;*CL D],UV!KQE(QI5;4U7 MA86V*GPYF\?ON9,>D --G5(KW8"5):UF% ES5O'Q,!-E5U[&Y<</6O-[G0$[ MH#UO[[=#S M`?-(SDNMJ_RLT^PKJ954ICG+? B7K-EV;H\_/U,&Y=SQSBS)X4Q8N%H()/M! M^,G-7=2WDYD`6B9DRK.YDYTYDJ]!2(D),Z3A$*O2V%J2R $X<8GZL5^E_%> M2=_*[ZN.<;-^">OD A=6V%<MY??IOV)]-3:^6M9S/JYOK?H&>-MIKAHX)\=> MDI/1PAPYO$H^`E[J1[*>9+ ,1 M*XIJ22!L=?CS-B$)N<\GR 0R:'R"O&\' M4;1 I&FN58(X^$2:]Q8/.#PX;SQ)\:<LHSAO0#L8T#J&W7X_P)H\N(N7-=_C M6P%D8P8(A R)3D0)Z4U19 [>H(#A\R,2/DSPXX<*'OQ\6E#P,VF0[D!^K,.+ M&*B>Y-;58[. L^MOXGVZ:L^=&&7;$V"9Y/?F-IQE1Y(ETJW]EIUE'W'=Z42^ MY>9FP?H& L+;44TU]])_6=;5"NPC<O2F&3"8D3$>8*$,S,ZTUSAQAZW!QN]E MD6L(GK/)W$F"2%\.T(<< +'P!P)Q-KF(%'DF3 4N^ -<HDE[K^_=]%FN]= W MU3&I%WTI,JY3MGH >$9Z#U"A'DCP5+;5!6L3DG6W*Q)HO\ :T)DMS*?-W/<W M,^T?`29KDE^N0.7RNS67-?NYDU)6DM"PWQ(`$Q-T'"A>KLFN;P5/1T(V*RUX MC4*>:;9_= ,YD6GW" 3E*"*%^2E'&?+'\VV8Z6 E!?*A_!R:GP6:2J"?JP0? M1',(Q3>2I,D.XS[ZRF7 E8K?JSDTJ^&L8 -N$_![K?.OS.)NR%8ON-5_:Y 1 M5' %S?\D^?F7);C=LMLS]5^[DE5O\GMGZ<]4C[JU_[TW<98UR* _`S66T/QW M5>=X1<MTVL4Z%<RVE 1R0: ?+K^+9W<Y&AOT1G;QM25WU*B+EQTP410[I% . M5%7Y=]K'KA&TXA)DH^<J_K*7L_FCZZ:R2VZ(?K <G.*)L!+1_JM'`)6TBR*" MCK.U(S*\8 4XJO\*52/BPE35X2YI`$E0_,6B M ?EPJE7=Z%0',;+N>RWGB8 M)$JW-;M+<U:0XO&7)*7AK,7;.KM+D C%,IA+TSJ%$.YT)[>WDUM'4ZPGOX;F M P#PYA58P\NEW*'*`%%9 9>QCYQ98,]Q76C8SP9J;.[U-W?UL]4>4,A=3<:Q MY$Y*P"J7F,C23(1_,,S/9)4.U'OW%-"?4VP(A0F-Q[Y;4-)N?K9ZS-T16A]2 MHMT>F)-IWPX^%8AF+O?#S5R8:RLN]?03Z>L'L;C^$\;\#E5 M;K-O%;Y9`,&08Q_J0QQCA6\/M[?<N,MP\9WB^MEPR!(/BW=?PP(XP)]''GA M5T7O)'!.IOT`Z989K"7N^$VS??U%U]&C[FXB<0_]#OYYQV'BGQ/OG$;1"T+1 MDZ/H^4-WB&.-QP0*7[/]]:MXE60%*$F%+]A+_#Z7W]SQK_K-/?AWNM 3P<]V M?2;/XB\2:W'PHMOM+[-03-MC8$V,FYS+V]F.;/LDP'[+2[;'$6+>QIGK#HE] M(;2]"X^S^--9.Z"QTVPN/C[71!4XHS"[ \F"P%HGE/'B^<_!:9!E3\85?9' M`P#FQ"&X)6-1%)LRH.#W<K)!8Y&M=-K/RK'2]%%0:?P8BMKB]RWN*\C %_A6 M/SMX5/'A?L7KUQ6O'_C\S,&6*Q?)+D:3XB^=5PI4_I)KH<U\*T#W&W&0.PS6 MPA)L_(OPCP?\WH#N0 M,/>]OQ.ZN\GNF;K*YBT$+(4*DMU')PD!>9!:M=];\M'12=_NY^+G$PLQX-O] MCJ%WV _?7KW[!";GHUR[V H.]2)_Q;K"UJ*6E/9U'HIU90<4Z]8>5ZQC#PL) MDH/< 8^:TL'I*$N >%4IMF__=N"&AB/X]LJR'?C]C<-GTPX/<M]Y!]H8?%,J M4JSP;?$D`P?X_G!D[;DC9>W'4N1'3ARQ';ET9/^Q(T?:O]U_.+ `R. /?S=? MJMAEDMKEN-GL60QYAX_\X;OC?UPM_\:GDM0H<J9*N79?ON,[BXI^=Z!+?Z1M MG">G&_]I.T,7K3^I4!2M_TBM+N+].)MTQ?=2QPENC^^1LG- XY!^:-Q2^ +. M#Z MU>L&P%=W IE1M[^NJ,DQH-&[\< ,>.]Y]<ZCZ1F-(UW8[SI_B<,$-C:H;XW3 MC9V,]JGF*'2NYP*_!=RZWKX1W^*84\0Q%(M>>M ^.I!RI/6ZW]O)M4B+!)DU MZ[%?R D`+&39]UC?(]&4!7%3S\']\DARFF&DR$G*?W "(-KO.CQ=74EENCW M>)<6#SA8[Y7.3/MK--EBMJC,Z'C.:[AL&5'WH _%#BT"NZZHR>Y5Q!WW4KQS M`$SM"?V9HKI;]BMW3<IZVB\/%Z^#D>]JDCQM=EIS5B5Y%U]!MM%E97TW)M$V M+OW4E5+HJGWW"-=IM67,W>D$D)FJ3KFD,4EFMPZ#WA M%; :$N:CYX/ ND$TX&Y-.EY8(S7K?T;)G1DB9"KU!]E!XIVX^N-DEU 5>C"T ME4\*ZSX?2 K3G-5WX*6=U31O447>ZC2K(E>&+:-1',PKO7/LO\$=^+W8J;,6 M+U-H)[82ZT2+( .V=TB.V3Y1/&E7 S29/)(AU*I,DRWDCI]:DAF"'[ `D-"D MJV#XN:KD]A(2KU[--(> G1GO #C352KR%0D*L-N9HNLS75WZ';>EH0K_E68_ MU^E7.R+T*G?"PT*'MEY\D6_BCGLTM4DOO 2B!)8`Y/32YZB?-(<:;#EL ,:V MY,[OG_ 6<D(!-I2U5N&\<>&-+M;#FB MY3W[<T7 AQ8UG8%9>1)FY6X T2O3_LAH-'"/" O-=??[4991<^Q1Z(LY(N[4 M=5$N<RC=KJ\-^]=ZBS7HQD1/OM7A+:Z1'ERK$RE:*;$?06ZW>-J/B984Y*Q M416IS>YV'6_;,U'X%A\^W#VPW>ZC8BPZ[+FDY)Y.G2B"Z"'%(^IN! 05N<,' MU=BQ??"XDF0D?>T)8\3)8[;'(+W]H+F'?_Q+NM<7[:O>T"I>#BX9J!YG`"9: MK#E F-+BL1)>KH?Q;R%C"KG_'GL(?= GO +HADW "K >6(9=WO,+N_S+^.\, M:/TE\(C\=,!4<+J3'XL2*KLN4C 5%:<4%9<5%6?[?-\'B#X!1%RG<RN"N<O^ ME-OSP[O=TFB^)WTLTD?H`NK.`G5W[']MP;:$O0>02A\1U"_G<F:V0-H`'7/Z MQ"A9C%+%MNGBFUF,YHF9\XF<S,QSMB0%B 5!8J04(Y58+41\"Q,CM9 9*;;5 MDYPA6 :11J)]JK$UWVO_T7SDWOMS9%RX3LIRNWUD%M3V'0XTC'+Y#O:\PC>K MQ1/KXG/7-=5ES]\2/R+Z<]QL0*+X$9N+WV<Q-5P&-0=*SYX$_28,SB72CY7P M=2=,U9<.D^AM.XE>/XY'V)FTL-:/.UD$EGHH>/=D$); Y%T(4W<1T2S..^VG M]7'+J\N. POQVT \T19^ W] 9X[9VM )((O5T >SO>:HTREF$%^I&/^H2G$Q M%G7WSR4E(G$5(G$5(G$5A#B ME!3CWZ_)= 8<AQ%$S]! =J6=`:?$=2V.&^04]4X_8[>5AN75_?T-G%ANV[BL MK1W*+^YZ".OZ^P*$<LUEUP)$N *P[#O!)1 "G? A5)![/.('ZYJSN]!&</=] MF&^.,\ .74OA6 *Y&P-JSP%79/;3/\) =U*Y6^TP.2T XBLO.P/:\89=*1H0 M66;[UINN"P.CMV =3N9TC'5W_PH_/X['&KR7X(/QO 1:0IKL,WE2 .J!;E3M MB&HVH/K9A6H>H (O7=>-:LB6=A<J_^[[FP3^:,SF/80I&.]+`?CMM^"/[(;? MT0W_D M^+<('=^[PC1[X'6[A^V V+Q$",-Z7"/ [7/!QBZ\3K$,/HFXZ4 DT M\WDJI6-D]_WE_4[^NUZWCTV2YKJX>(N=/^88[KJ?S/_4IWQOW5J*8G\,/:;P M3<FRY_W HEX%<F+Q`=9GFNU_OD"V25H\VP$U%FS!A.#G"+YC?B/\KS2V:;T0 M[*Z+!?C3K)%O$P5HOWK:Z=0<VMIUS 4G5PATJ+K[OP6S^>\03- FC2VQ;T<H M-'<O'7.9NYAH\22OU%WL8'L]*&/-Y0]Q5N 17D GD#R-VQO(W213P%[_ ]/Y MW2&2\>T:&]Z/WHH5B'J^A;./_A41\*=AA,$6&XW58;VI)!\QO51_$Y>7#Y\E M0#S'XFL?Z^I%UIN$+*K)1 [$R'F7DXP3K L<6 >N"C0N\A4BHRI$ME401L'Z MAVSK=X&"\<=Q) -T^I8$ -HG6K_PDY5 $JT]I5A7]H5B'?N-/?VD2Q\ K>PX M^P<W$ =4J"C\1%'!?J.H*/OBUM\5P.^+G0&R)E1+&AO112X^*7QA"IOM-TZX M#KZWHNRR6GOI7>"Y6]^2%#L]S,4A.*R/V5W"YVC[FZ3;/K/'$>6JJ'\9LHBT MBLQN2>D DF[8)+)3<[FM6.+F^QFPJ/(4.VTN%.$N%):0I(V#ZO=;_!4[FUQ% M0[NQG][G14UO"Y:(]-7%C6<7)I&+9&U>B. V_\4PG VJ>U RGAVVSVO\=*Y9 MI/JVWQ+Y&HJ,&G]]=*_A^93I-;RO#C M6(4P76G-"0,KIHH<KUBGAPD9Z4*.<HY9\)IK=N8DB]\"> H98?P W)[#O_-P M4G9 W0,^E&7T2HG],A 4+28:74RN5;Q]X*) XPQ9W0DO-G"1D!CD[N]/"54A MI4[OS4I,4*/ZPIW'5> ?RH[\\OLI/D2U_0L74\CXXR9I-NZ29N$V*1[CX1>= M`_!<QC(&V//5^3O8TVT?N<XRV!C<U/^IVY ,72GIM?%N?ZK_]MQ-">N3J;EL MSX1Y)TE6!>8*JPP-9RW3A:1T:[K*WRQX9,\Q.[]$*;%9-'WA,F[ WJ;?D+[. MQB39OB0Y,LF?3PIRM19O&?\KYV?S5&KR_0PQRIMONJ['_ <?SY#S6;S!OB,9 M5A^W^\-Z&2MI3N1L,N[:A-H+=^XF9(L;E"'KKU'=WUW?9DBN'2303Z*_`2LV M-]39Z.*;YX*=V72/&TGN_#LU*)'D]<Z>+H (II,> '2F=O^1)E7/'VF"+OE_ MZVH\P7/!0\,<^RQ1:JQDN +#LC/)=;D`OR:RQZ*B^+T6\0Z=RGX"$.7"5%!V M[2%_T8",%F ""E65%+O7[_9 BUA1_."A5_<([KMM*+C?/UB/?T)!XOX08ZT" MHBPLK'2_TAP%:3=I+O-7'?=MVB Q^+ C\8AAAO[+ZL%U]TN\V4$)23TV3 (8 M*]/XG_$V0-7G0&>R'M"QH0A.LGJ\(/[1$U5=K<3IPPX%D9*L= +V9/LILELE MX.(HB[_:YAAR^_Q[4ZK8;KN+D4' X[TS\HV7?"X`W2]V+<ZC: #OH8'&O =Q M\!;V^_V>/-ONCS<K.IVYK.]B5^6>\V5#MGWU- M!?^$LH[<Q=U?W_2]?T6._^YQ/ ,#U._>?I X,0*!-\/<V0=O2H _=SE/(.MW MXK]S?$5D][ _ 7YVF%T#KMT M/*J\B2$ EX(I(&;AEW6B(=!]'<,?$HN)L8!"U7/^W8=_7*>$E6?:BRZ3:SP. MCTV:RVCX7+[D,GP&`UEHH2QVP2:W/PA,OCH(O^<DN;V_'^OY/IF[+G&G?FL] M$++*_F][HXR8T'_R)KOW%\%3SLUT_A.,\'M^]-QG?\6G`W?03 M9?MD"*^.] M4MXJI,I /IEIL3ZL5:?!2^L$+^TX>&E !9?9W6X`<?$UP!X3N&FL/TZ V^5G M"Q8[/?'7*B<?'0LI,JL\;7U3[9=XZ1<X,X)\6RG7V-PA`,!VW7&0EG;W7<3R MVM).VMM)^P[2OA/K=V'[2Z0]]3HN#J MW,/RQW>(`[$<XB"(3;DF2HGY"TR4"N+-BTQ4",8K3508UH-8C?56F:A(S(=8 MA_4A-F YQ":(G?W_"8__/O\'GWF%U9:2\A7*M'*+<HI1F< N6U9:J*RNJ+(H M^<;3."5M-AK#U)22<O*_C. K)J?,3IA-\LOSRS'&5U>RSU,SU$3-\K\5WH/W M" BOW9;_[X0S0^Y=IQN_MZO^[?C=P9CFRC_?B\8I;G!B.FFPB2IPA3F]TNZ" MP15']\J;#R$FP$0E_ O!_Q?F80CM)U_=*XWXEPP''?$O!/]?F(=A9C_Y6;W2 MB%\V#O37 MD,(+2'C':6!UR0.%2Y3QRN"",&59?LT2?">OWM3 29-2YL[-F#MIDC*QM&+Y M*B4IJV:K*TN6EU2PU:7W*TOSJU84DLH(*Y-=)E:$&9QO4097]H'14UJ47U): M` (JJ HK0>] WNW$DV<L%4<MH&JHIZBWJ2^HB]1 B5HR6U(FP1(#M9"ZGWJ: MVDY]25VBAD TD Q)N223+2_(OY^B9E6(\3RVL!H3.84%Y6(*\HK9*E>2FE95 M0E*9^1:VRI7WS1,FZA2$= B7(%!/PKH(P1_"C/QR-K_J?FI:X;(JDH!G5G[5 M7;&Z.XM*+ES>DS8`OF0(9 CS(2R%4 "A%((%0BV$1 B;(#P+H::F1BD&^!=+ MWGEHERO?%;]I^'?78[)G(''&I7 ^9#C<^J'AL'^7P7 I*+[UA;CX]F$+XC?, MJ8E_)U2(_]#WF?C8PR_'/['AG?BI(_?%K_SM%_$O7C 9'Z<['[^QP!E_Z?T! M<XPS_IACC/1?;-RYKL XZ,1*8YSN5\;RAC7&YM:UQBF2AXT31S08EX8U&D_' M.8U/3I(P-Q9+F8N/>3 /--/,4Q<]F?3Q7LQS&3+&^N! 9NR?O)GLSP8QT5?D M3--H7^9ZHH+YL<B/>80?S'S[ZA#F_ MRJ]&,CL;1S%>SP<QX]\:S0QM'<-\\_589EV[DG%VC6,6RR<PSX]4,<T3 YE/ M(^YCFHP3F3^FAC E<T*9";F3F,^63&;*"\,8Z<HIS&_*PIF RJG,T[]2,X%5 M&H8_ZA'V2'1$V++?5H<=W_!26-G5XV$?GPR<,O[CC"E?15FGO->^:\K$,FGX MIF1-^!/G*L,[WML:GM'X;?AU_?"I3?RLJ36O"U-_]=6'4W=))6IJ_E3UF#GE MZIL7MZBOCOY&W?)D .;%V3,U>:$;->=;WM<(.J=F?^44;?M[J[1=FLW:!>\= M/S,MZKTICT0IWGLGZLS;5Z-"_Q8:[?EB4?3C'SP;?6' E]$Y>_QB]+N38T9O M;XBQOO]VC(*Z$O/BUQ-U(1,*=(J!?] ->.>0;IA6H5__?*+^R<1Z_9.[_Z[_ M<,XE?;SLOECFE?S8:0M^'_M(V8'8B!=]XG8\;(KS__SAN!&?_37NVU?/QYV. MZ.64JB]/I> >'C7M[PLSI]W<\IMIS\0T3SO_"CU]<$;D]-?]V.DW^3]-?R;W MY/2QAT:DKO2;DWIJR*]3)X]H2IVK]TCS7:!->W]%59KQ_1?37CGU7=K;]P7. M6/_Q[!EC&Q^=\4=JUXR_?R*96;M2/3-\7\7,^O,OS!16'YO9L6Y8^NE'T].W M2H3TTV<_2)<54+-FU(7/^FERV:RFL"VSPA5'9S4=\Y_]R+P9LPO6\;//'7]O M]F,W;\Q>^8>PC/:G5V:TE3Z?L>Z-PQE!IJ'F>>-3S=F21O.K1W:8/S-<-W_Z M_J0Y WV*YYS]ZW-S5LW[YYR?_S1X;MSEE+EECVR8._#P]KGO/-PYM^A$2";R M=R6SK;"8>6MW$?-T<"&C__5RIJ8KG]%5+F7RVA8S^U<L8I8Y%C*^E 7,WR2Y M3/03.<SZR=G, RWS&)_B3&:<SUQF\W8SPQ9D,!N'S6;^\4DZ$_+(3*8Q90;S MFODV=BJ3D![.3%XZA7E\=1BS\C>3F==>G<3,: UE&'L(L]X[A/&<.I'9DW4? M\_9#P<QGKZ 8[Z\F,(L'3&":8\8SFE7CF"V;E8SWX;%,T>"QS.OI8Y C_&CF M1&L0TS0PB*E,'\78-XUD)GPU ADY= 336AS(W/?6<"9<,ISY.F,8$[PY !EX M9 "S<>8`)F:7)R.+]&2NO4(SLG$TH_Z]!U,QQ(.Q/2IEQLFDS*_K)0PME3!U M=;A^4DSOM>XB'<5TAUMK:UUWWBXQG^3M<M7?U1VZ\S#NKBOF=\/OO5;7]=1_ M];/2Z- 3+T6R)U]]-ZEPQ(ZSQ]<;CD5-B/NA[;F=/RYZZ4-L=U21QDBZ'RD^ MDCL>6M;W4?<\KHS-Y*ES\XCE2\EC<O- Z?_];3J)U(/V'. E&^ ]2.[CJ_ ; M/&2H?\"PX8$C1HX*&CUFK'+<^ FJX/LFAH1.FAPV)7RJ6J.-B(R*CM'I8^,, M\4;&E+]L>4%AT8KBDI6K2LO**RI_555M85>OJ;G_ 85YBQ8O6=I_^8.U:Q]: M5[?^8:Z^8<,CC?Q&X5'KKW^SZ;''?_O$D[][ZNG?/_.'9Y_[X_.;M[RP]<67 M_O3GEU]Y];5MK[_QES?_^K>_O_7V]G=VO/O>^Q]\N'.7K6EW\YZ]^UI:]W_T M\2?_^/2S`P</??[%E__\ZO"1KX]^<^S;[XZ?./G]J=,__&AO.^-H/WONIX[S M%RY>^OGRE<ZKUZYWW;CI_(_[GY"8E)PR;7IJVHR9Z;-F9YCGS,V<EY6=,S]W M =C__LO__]'__\!>Q4)G]^S;+.TVJEL]NU/79*Z4Z5FY*V5N5KA2JDM#Q%3= M[YX>)J:4'^P<(:9"5IT+$E-7I4\J2<KT3M)[$TC*[Z4O[/>1U*0?ZQ^;A*FZ M:(34LFU['36O)YBHN >&OW/?5X>3P5G;5JZMV?!(JHEZ*\>;&5;\RDP3M>7L M)Y^.VOWY;-/F>G]3_IS<^KFFUI=&;'KWI8J7LDRQ"N6EB;_Y^-/YIOJ!3W36 MZ)GU>:;3 ]Z-_LKK-UN6F+Z=O8+^Q_X+^Y>9?C=^?8JIMJ*KT/3'MRLGO_SZ MWN=*3%_^Z3-GVMB:W9^;MOK_8>^PU_[^4WS"\4?;ZO9/?^^W+R>\-OR'=9.W M0^\GK?[^DPNA4^O7WY?\N?>FH]3$%Y_?E-PS6NO0Q]G\ HDZOA49TYA ;3[< MD!.Y.LDU)B8FT40MAK 6PK.N0'SCJA5L66&Y15E:4FU16BHJE*45Y2M / NK MRDJJJTLJRI4%A>4EA>BTS2VLKF"KEA<JP8NNK*C*!X_[?B5;GK\ZOZ0T?UDI M\;D3\PN4126EA="J>GE52:6EH K\ZM4ET&H96WT_^-O*Y<4EI07XOU8O+ZRN M*ZR!#E03_/D%!54`6LPG7<(M$U<]<T5UB06[E5)5!;3E`!Z *+\J?[FEL$I9 MQZ>BJC=96$8HAMH6R"2\3ZDI7*XLJJ JR^_I#M M*H/<6>X'/N=7 OA45I4 MI**Y992)+.GHRYYPP;+*\J+2E:P501X7QY5HH1; M$&UB5<4J8&IE264ARB);:NDM-2B?^053*LI!V GG>GB>6;*B' 2SFS546FEI MX0K(J"XL7$7UXK=+U*FL\E7E%6O*>QHD55545T\1J29CC^?'KCI$.I4AP06A MW?K:=CP Q40- ' U69R[JKM8&;+/363SA\1NGKHBT!40E"O$<KP1A.!"[ ;S MD OFH5\&LP- XGW#NUE#LH,NF =_&<SD5TS_1\RE/\)2< 3"H9DFU^XG106Y MXC&WQ>[R7CYBHHHAS%L`NC-S'F5.GM>S[X8Q*N)9.<J<DO((K7(N6VXI*2.R ME53! C)$>5Q1"&)77 6RAC,,Q(C\1^]9Y<7YY06X;5Q8L[RP$J4W5AFLUM5X M)UBZ%5VLLN<A)>0>0D^[E.YVA)YQU9:"V-AE^05+>N"-&]>3WRNOGWIW9KOR M1\;!Z?QI7?=^7E^1[% GECO_Y?K!P'UQ3U7<Q\T+#X= 4>%YLS+QZ^EP2UDE MYEN6F: :".N6B3SYU/6WVY(R9F6:4Y*HY64%X84UA=3RBC)0\P7A$%/*J<LI MI5*L%^["K-MFH SW".O$IT\ZJ=N<6R6>!?\G]N$M/MWM^?? I\V>EC8[;5ZN MZXPRY,YVKMW<_Y?O`$PU49L9$V5*`MVV",:B%-*E)NJ_S__\QV"[E;ZVFZ+> M)."9!"$10AX$"X0-$'X'X06D`<(^"(< '(?0OMNU-C?_W\5;0:6 ]9U4!08[ M+(B9A<O%A>);27IA_NK"._(?!8NUQ&)V65O/2J:75BS++TU LY3:ZGJ;5E4( MZ^X&R?1"R[R2Y:M ^47;_8!T7FFU6)$ZB&E2[1"FH&)V?BE;2$W!-NGYU1;1 M<: ^Q]+,[M*!6)K$5E6!)=M-02F5S%:6EJ!-G$H68VJO)*T<B ;/X8$[R"]& M")F6`E=5: 2^IY2O+JFJ*$?[.--2!8Y)-=5$(7%W%B10"\#R+07S_7;(6\&C M5Y3 %"4KT<.X"C$/+" 2#L7V?%2M)9)`97GHD?$,3-E[NR4] AM> &X3U2S MZCUB9\0NC[7&;HUM-;89KQD]F0 FF5G._)'Y"]/,7,05$^P!/""EU1/4I>H= MNDNZY_1;XR5&;V.,<89QBW$<,Y&9`JUT3#R3Q*0R6!GMD''14Z+'QTR*B8HQ M!M[P:\,3AFL&*MXS?E!\8/RX^(GQNOB&^,G&!XTO&4\9VXTIS'IF([.)V<.< M8BXPE%D\U$Y0SU";U?/5B]75Z ?4CZI]-:,U*DVSYGN-7>.O':--TB[7/J1M MU#ZI?4;[ G9QQ/T1#T=\%"&-G!&9';DH<F7DALBFR-"HE*BE4:51]5%_BGHC MZIVHCZ.^BOHI:D"T;_3PZ,G1,=$9T471Y=%KHKEH:W1;],UH:8Q7S(R8C)C\ MX_1)>K/^+_K/]-.!#T6Q%;%L[".QS;&?Q5Z-5<6EQ6V(>R/NK; ]<6UQM&%! M_)+X O _Q9^(_S'^;/S%^,[X&_$>1IE1R Q OL<Q6$I1M1!YJ$>IDS3+-8]H M6C03M97:Q[37M,]'M$3((GTB5T3^.?)OD4<C?XQLCTR/>C9J6O3,Z W1MABO M6+_8X;$38L-!OG;%?A_K$3<T+C$N/VY%W -QI^,D!B^#CV M6J<VJ$WJ9'6J.AW&9QZ,4)YZJ;I 70S26JFVJ&O4M>HZ=;V:VD11^'],;U:_ MJ'Y9O4W]IOHM]0[U!VJ;>H^Z5?V)^H#Z"_5A]3?JX^I3:KNZ7=VAOJ3N5'>I M*0VMD6GD&C^-OR90$Z11PJB':,(T:DVD1J<Q:$P E:F:=(U9,T\S7Y.G6:HI MT!1K2C65&HNF1E.KJ=/4:QHUCVHV:9[0/*UY5K-9\Z+F9<TVS9N:MS0[-!]H M;)H]FE;-)YH#FB\TAV%^'M><`HEJUW1H+FDZ-5T:2DMK95JYUD_KKPW4!FF5 M6I4V1!NF56LCM3JM06O2)FM3M>E:LW:>=KXV3[M46Z MUI;""%FT-=I:;9VV MQV%NV;7MV [M)6VGMDM+1= 1L AYA%^$?T1 1%"$,D(5$1(1%J&.B(S011 B M3!')$:D1Z1'FB'DP%_,BED84P&Q41JFB0J+"HM11D5&ZJ)>CMD6]&?56U(ZH M#Z)L47NB6J,^B3H0]474_)B\&&HS1:'#DA MNDI=H^Y1W2;=T[H/='MTW^B.ZTZ!E/OI`_5J?:1>IS?IG]8_J]^L/ZS_1G\J MMCVV,[8KMC.N*XXRF S)AE1#NL M7%15VOB=#V"$P1D%%95L5"P4K8'A>_ 8P%'\&!T8`4W)4,"1$ CN-2U1Z$)Y MN4ZY?>RVJ^WF6KOMUNY6VQ:56P &FF5HK5&:FEE=&BI2&E GY_\\Y]X9!K.V M?=_?^_O_W]^_ 7/ON><\YSG/><YSGO.<CWNNY18K):<H2DEI*(^'HEHI\6>B M87C(D *UDGM6Y [QRPD+R$]!!8L>O0R9*85)"77273N,BM+**(O$Q$>5/T* MH^TFNK+.5[ S(F^H]FO U9:6T"427+\$=^![<-:;UOO!(9>1MLYKX"OS P.> M$GQO?0_.=%-M667U6 D.>$JJZ\CW\Z5^_OW\^__HY]26KTG-B8G)7;ITT<[> MAQRB+6PZ9DC5!;=> 1#A?8_'0^+R*E3"=D!J%9Z':T ;$]SZ'0*\" !6JR<! MWXU07^N1228 2X /`"_?(SP!"?FAUU #V82;X;K")BS&VY)F5_V70C-$QW19 M[:V8_%E(SAY0V80 3+SZUI6 NX#O MKXL[`,96:' 9CO%F%;]<R:N,']0'<Q%<KO(U[+*RV39EXR5,MN7C9A=S_-:5 MS[[C)J21&X>>X ZDFSW0T]H-Y0+V..K=?+%*>'\\136?8&RO(EG.Q6PZ`E.T MRD-2.8T.<\\KX<^9*&L%1?YD]F5A*&0O1T- >9=94%'<!(]Y -/ I<CN' M, MB[[!!#W0,JJ.+DU-75-2NKJDDO0E?P9"AOOYX1\IY\G6`:R_(< 0J.Q34:04 MO$7%C?&8AUJ1>N2-G+><+.5",1G6E$353DI-84E\F>EF4?[4UA%JYUYMC!&G M(M3FBM26;5I;5D.OKZ[Z'H5[M'_'2D%?!/%1OCI<=L57AUA?)B!5T$,Y' 4] M7CX!=^"?<(L;UP8R0&J:"T4O;SY9NI?PZE.O/)ULW8WI=Z)T;AB25\CM"" L M!&>PUP_YCD,?_Z&B9]'"P6/3/X2BHW5D`[VW_GZ*X *;VQBEH<T9Q%W?*A,% M3-0!_"6^IT)I1ZNCB%=8!2- \_V<H=FE>:2-/2,C AW'EJ:B[],)TC0Y&(3 M0 `><&OX=_FNF/>%*13J5.>XQ Z,;OP*K]!\#P M.KC90P>R]5J*%'F%_6.$?6L'%*P'&C*&F>U?0)A-Z-B!O+$KGL>'%_$AR#Z% M//P)P0NTG)S-H.A0-A,:/&_1LBDBS !O>8H[ $ZO7'K&+8.T*XC,BL]6OV>U M%9I3OF?<< B#BI?D6= '^ 8&-<5 ,!;KC-170&(IF\*^A!X[G3TK0*?<BKZ M%C]O(NT(LMB;^[S41BIDPE]1LUV=+X3_<CA\F7_X5C'\>W3MW G_.[L"3%(^ M'3O9=/13=*!G')+1 77RBAK5X7B^7=&F"&C"M&T#G$G)F51LN](XK 8+<W8/ MW S'_$ ,ASBKDLM5=0S768&*;S>X&CTH*W4J]J"G]T- W6528>:<5<TE8T58 ME=!5A&X!+-SV'1BQ<R?R8!R&-!^C5=P]^.P,V-L``7LQU/'HPT0:.05[QJWH M83N4;#I203&S^ 0D3.%B.Q7L9VY'CG(O1O"=PZ!")'"'[53R77,0"RNH8SH= M5AD7QIYU=\T-4Z+:-08 ECH-WZTXIAA'"M ^X SDQSV,R!8JN45*SJ;BX;I" M>&),;OZ;F/.\%O)FOU ;SV\D7$*8F7H2RK_)[E=R:BUYZ)JK)>3Q*O9CMS&4 M=GHTH!X^PW*SZ8^22 D6OH,AU%Y\\-93&)$?15O [T T9B"PHI^_CM3X"4V3 M&N2#SU'RW3%AQO,:]FLL<NAN3* QAB*:.B4_`:O#CIF2F(4*C>*X+U(#D:$8 MN6#PZ M?YQ7Q'0K.H0#E[!MTY/YXS%A,I*TT"8HH/."=F9HZWT<"Z!X!>4> '\E`D]O M;$J%,>9*D4WXHUMBDW,^2FCV,(/60',F&(6;12:$HO\^\"/ 1%DZ05PPE%_$ MJ7 HI8%?QJK!$_,N:("YX#TNO#SD\<Q,D#C!`P^$UR&$!U6S^"%US&%4.R'X M>:L;=$#C)93+VF!04L)B0%7<8170ZELAZ3,"K&GZ%FN^S<VK7/OEM ':)R3^ MWZ)"_PH5GP\X1"W&+ 85Z*__-/Q1?QT]2M+1^4K^%B6W7(FJ#JXY M-0TZ#W0J9+E%I90S-_Y831N/; RR"A^AP2CINCP;*'7H=\SNQ X%FD&?H.IR MF-W\NP+G(M(<RIK=2M:I!&'C5KA!%%=*/"0L1!NCN".=,'N45?B3.&09R>M" M8NLP*%^OHTJXHJX+>I7TR8&.6Q7L)VZO$E5!5W\WZ)85QNNDKN"PXA!T-=X> M&;AO;*=OX-M9W161>:5:Y7?^=0*B#M72NYQHC!W(M_;&2]NQ%E;S^]DVE0\5 MU%R;RFA2TD.0'#IE)=_N3-N#G MN^Q72H[TET>(:#E6R+A)CA5*+C)8DI-,Q2$%Z>;8_0,\1(!T`)9;L!\'+!)M MHP`_-^Y:DALAWDD`9(OR* ("%<[)SHF.0E.^\!6TG!50R:,*!0,.9)QRJ9O< MR_IW^? HD)Y_W%*,1CF165!N%C3&8(0^K.+8BR!6+XMBQ>Y78!5,`MDR'F9 M_ZIZ/T6NZMG/9&AU\\GLYVZV2ZDX;3RLN>\ VEZ>9A=7[Z87((S;2(RNVD"^ MSLO>1./04(=T=WC3W2:E0ZDJ4O(=BLZ8=U$O[SX/_0<HED[N5K>?'B?URZ"U M"=4>8A.F8G+H)VD8$8$ WH,9.=?Q-C\UKX;L CUB;V0!_W'1! 'M!=DYC0Z; M!FF<[3 VZO"._6;/,)&QO+ AE&"QVM^+DD)62B'"QVHRF);*BF/N?5"M0F3 M6U_Z[^:+>G!DC%-B!Q1H+="323EM`JYN0!E=9K6,#K()]_1A)?L*3&:R) QG M5IK BO9-<&&V9"KI25' ";) ' +'4[,?$3%`VX<JH)%A4W(HN6/'NT]VNN^ M\"3:"(H+3ZR^U0]& C!>J9U*S_G.08_V.+9H/ 2.?Q/3L5\IV*\5%YYT.T>[ M\=F'! A"3(3?12UF4,9:0-AR9K ==(>'+B[G AR+)[C+N?ER/FC_%PHZAPOB MYBL7TGINOHJ;KUY(W\C-UW+SPQ?24[CY$=S\R(7T.&Z^CIL?M9!6<_.CN?FS M'=OT"YF#G(S+<F-VQ1V<3+RS9Q5TR/: *V_2`>7<W D>,52D!: H!_T#Y7)? MF>*\#D!=)K>''N,R?>>AU2[3%0\=E!OE=KZ<FYO++XY2YL;LE_*T0:8OXUQV M="W9\NTY<O"-;\E60.^P/4<!(WMX#ES '.U4H "L])81ZTX+L '5QWJ46^); MZ)!"& /L()I6S7<0!4[H(_/D3F4VVR8O9Y,IQH5:4K(#H3?XD,SE]! .X1QM M-]]I_&#CF M*T>Y=R;.E.9H47'FC(5FE!.)K:!TW1ZP.!2EZ[ IT!X[2M?M!>T\:U9V3LXF M>RQ_P)/P!+0[6U%A =7#A'L8K8=1>QB5D',[MNOPXEM7KV0/*#M\\P!\O=HU M7REC)MB-T$CM<2^8*/MDN BNA>(<OEGE,I'X-(Q?AO'I&']<BB]0N;+52HC/ MNAVATA'*F3L,E4VD*E+X6NYEV 1[`8(_CN ;$7R?"$X$+U+H] 'B`.E^[(21 MIK$$CUKXHQ^>E8CG<\3S-.*A<R4)4Q,)P^1+(;GA&, (V&2B6*EY8[-'TX0S ME"A:FF87Z6JB?K"V^]!H-$<KZI2<68 D2K _$[EZH0 ($B9ZJ6$R7?/52DW3 M:!D[&*&_(D1%4'0:,A$XW(U%=6-1SV-1N?FDJ+A4`OF(-\P+<G%_)^5"7\_6 M+L*G\\3JF"+-W*_G)R *E5 71!)5,'[F9;B4PVAMPE'*6ZM0?6[25+ )SB17 M`26:E^X.5%P6R9M GX)H+R+:+Q%MOI?"6P,5I\K9K03F>H31HB)0HB*X28)Y M+4CS6EC.?&,WP3L*1+QO>.G$6_MFK5B\84*=< $:E)J72%U#W4Q_Q[5?2]L; MAO)+E*!5Q=J,MPD-0,X*:Z&P">]\]_(656HP,[[I$#VV MTR'FG.9A7/>3ZH<]<*#UX(MD.1QR% ZC+(-%S1=KF7B'^>15"]]_C\.!&5?P MS0>X+.4K)S'(TLV-X<W=?,%!G S N+>X+- GW:"Z%FKYXFZG`BZ\N8>+;$:, MA'L;%4H)4*K&FF("T&Z\3=1^#AC?%*+>:[KDU7LD. NBQWJC(<^RD='37EGP M=06 9U<\+DD->(/0\P4$>8><$2^1]B'\=<#C>05AC>,P%3U1FGH 3^C'Y4EA MQRT4)=R>0_G-+4AB(^2=!&H>QT'\=ZV8 9%DA:NN>!?FD!D1^ULOD>U,[ VX M$4A>15%[^S]$^O JDORA6'8O?6Z)OM% G_#E"5\>_#B2,%4.W78"TE AJU * M\CT8X.D62K.]5 Z)M2+N.8 6/ 9<J*- *%_ [9PK^&*W?3?9C30'<FAL(QMC M";29>K(<:_SLTI>CB>5')IX5Z4<N?3V:#H(;!(^&SN9=82<D%W9#OHW&[RBJ MC0EGT[6MN$0>8 ^'NW ,_"O8]"&L"CH"+.%\&-=YQN$S:5C$EJD`H;H*8& $ M;E ,-.YG1O&4%,%>]- 74V2TDA_EO,!3G,SI["V\G<S1?,+W>LY '590^79C M,I8I_79QOTD!Q(1)]8RR8;SNY#X351M MHZYR!E?(A'H"&M,8]= 92.T!,[L(9Z+45A\M#U2 56]B`H1_`"S?.3P'T'A M"."E71-FE3& $!!:<4FX$;'V?D61/2O9["5Y'4KO*?*L<BD?^1 `5;2V0EZ! M\U]Y0I)'[$5 F*ULQD 3,QY2XN(GQ%XD=K2ZEZSH#I M+8'STH*94+#V.Q6A.9V*X!RG8KLBQ_$(1O.'8]YLO.B!DM>/XCMCNHQF;>V1 MX2A',_KRR*X3X7XQ*X<#PV(^,';0XUD8]0:P;WJ<,-P8BBEP*[KY=N=XF7E( MPJ6Y9R,::.:A&+-[N,,5+2=%)V[X\.ZC,GCX!&31J[.A23K!_!JKH$=C5TNK M; )NMUPQG^V(X#O93EP0/D/FI8E1.LS<$*C=-W%C(S2'" I'#KQ%FP>#PWQ> MV8SU914FK\?]2BHA*) T&K [A]N2UDI D:EIQ#A4%TMR+\H0&?BH 3 E'8S+ MX$([:*X5Y8UKQU[P`,MM:L>B<+*<"P,[.9W1[-F8VA5P\K")VF+!I2!F8I'0 M<(),(F'+*F<7C57"Z.6 QSF.,W PUKP;; "MC G &)6TKNO7$Q:*8XI10IVX M;:L\=>4$FJ1?A6S:, TH4S%!#ENX,8P9`P;0(I4C)]RH`*/"IN3"T+;DZ]2* M#U MS_R3:"Z_]>P GMH;W4HV%7H'(<5D$%*OPB+3B: [R1305!L,8:Q"ICA18R*= MPF,X.K>XYY,1[VD89^-J7.]]9/L#SK+,-W;6YJ 1]Z;B2/.A+=<U'P/S^DU/ MB)5Q,QA",VV"_ OO$DXD3C_VBJ(*CR S+7.-'F>05'-^\Y%MKZ "<XYB4RE: M#T8UM^%BNB.\&1_H4,Q:E4LV*C,7H)&-E7KC-8[P!K+&Z%S.!>)$AIOM5':9 MAQ"ET>S>>M-S,M!8_%A7IXI6-!S2N3H;&+ WN#IU^&S:/GH>*$S6/*0$Z&W' M]I^16^U(9Z&P^W-IM\FM8B<-E<8>>('09A6:2W'CHE2(0([T.ET!42"]RS-P M<QVW+$KI6!P%*D96BJ/FN5&I/!V5AA-$^!H,/YX+C\*-;.HHAYIC]RN-!S7- M.'/4-3=*B;V3X<3KI 214?5I+>/G&=I<[3HZ()0"<][5;D*?#GT-=% H;MUT M0D #H-7DL!\K0 YR&K9+"6FW'. CHQQ*TJLYP;S(X7!=0.HC^R'S_1_+\PI) MG$VGW\:ZG] X&NGS/HZ&1Q 0. ,;;_"<]GAR<&K^LGQK)WM L:06O#I 2V3Z M+"C^5G$KY]X=)TV4YK6=S_X3=S<XPP>!X4^\#H+X<5<`1N%"Q-XMH'B)J-F$ MD-%\U=:L0D?!E7Q>DR?\XE/"&]F=*EF2:SZHHNL:+ ?3`0V70YFP(F'^)5$) M:(BJK^&+U [+E<$/N2)581X/VBY4I,%1Z)$5><F8Y",#TK==]$NO1QJ<LT ) MZ=6+#C MS+9'L$.*+<Y6'%HZ;+<ZP_F#G7(/`)A$B(4R`)',AW.:UW+&2R:6C G$CMWS MG1U'KMA_T4%D=A 4Z[%\'(U^2OBF=>1$:%[+A60.,=DH""AOO,V;TF&+<&5C M1D"9+S A]0K'H ^"R!3`1)"5Q .`1"W4 V)K"IO^T$[FK0:]FXK1>MY6RFH MXU%\L''1JCNAD[#RMN7Y_")KGLUC6R8.9H*Z<FZ3B9MQ<ZP^^]J&<Q1W6ZU; M8.C])&D[.:6D<]8:;:LVJ %%BUFU71GBR;%Z<E:)<QN%+P>1K<^XU9MM"^*/ MLV<U[*7 ^J"&=OUVK3. H3UINW;_5\H%N<V'ZC\6U]L:#YRYA-O:Q$$>UVP" MZ>":T\A5?QDG^U3<(_'HL: Y1S+*#BX6!#C,$=CI<<US(:AERKRF$YJF_: 6 M&R[/8%0M4_"6/ \EVM7P"] 12CJB(8.BPQR/8';Y-F&BN+8,*1W-&&2U"8'2 M:9OF 03P\X<;]I\Q'&LY:CC4TE(+TLU>G'3G,4^40V\V4?O [087.L]$/0/W M(KAO`/<:N,/ 3H'KA_!=\Z&O`U</[EYP7^1"Q[C01,U98**>`C<-W&/ >A>; MJ%S+L#L. MOB 2QF/\0C=GZ:Z?SM9W4_6AO+E[L >&*9"Q,Q!G]0K<I'WVXA(K.Z34-./> MXE8< DX4 A1O0O??N]*+_7>(W3+D'SO4FTZHUXI%T^-<P3LX_T6>V<^_[KU. M[G%[`=X `+$$2:(7B9P N>*%V4- DC7-CX)G'L3X4M\'`5WF RJRNQ\\^!*8 M,Q0\6J+O>K<7?(*R:CCD'"7%/B<;[$(BZ0BH'A5OCN2M(,<]O-7-%9SLQ5WY M UV8F)Y%JL\<V72(Q+U'PP#TO5]SYAZ <]X.?F ,XL.M !$HIF_RI2B').5< MH9C1N ++A/ %N';HG,*^HVPQ?V*%H=Y!&+\)>1[FI(?I$>XB;^U$(*QF!Z[; M?Z&<B$R,Y0!GZ>]-PR5 D7J'(Q?'MU "`4:B E4($'NSSF8K1("<7'8\ B 0 MW_M+&>$NI&84( 82HY,(*DND"%?.9P'KFHFWJWDAXJ"ZS.?$A4FAR]Q&FA=V M12.2M62!*MI.DG42?B$T:"5O`NZ:64^72B'2+V7#U L4$]UE%DI!63FOE[(Q MSLH<#BQROHV#ND M'.Q"G/3-.$K<.I.(R:&31$S:0!0:4N8P"H^EC3>[C>:VK:/X`G=,`?0'_6(< M'4A$)Q*JOR%Y#AV M_TRS6VP;M):444>K2.EBF% I)01[S$*+S"J<&91RA8;C=H[QDJ,7NL0(0,J: M^W&\?XX(2PU PK:]CRMX ;>T<99GG#F\>1]KWB<OY[7Y#LN?\X2G`J2:>9:M M\] D+I,6QUM>`(%BZ]LH.H,WMT&IG!'?HU\GD5G0QD+;A_'_1U (!P+E`4_E M4BR.!=V(_5SO[P9]?9O8CDCW) "KS +_"+%4M+UW`9"D%\="7N4\,6'*.5GO M;8-HQ B\ T &]UKA62+**CSDDK+K\YC[6JBF-N:<1(N QZA_HCE$K1"-^4 1 MJ32OAB_HBO,R8\CD&=AI;^!.I7EL1X213*W5?NZ=;,&YXL N,E?,7M)N4X,F M^&(TK5E(ASMCV2^L=.1">JKS1CX7[4L8QILB>!B'\]8(/EL%=PQ6B\$F+;Y4 MY[73[3A&)1.Q ^).2FENK;%>A2^8:!X4IV5)F)WRPAX>`5NA(X$O^ (Q3$G" M;_ P#Z"GNQH'!J7[<\'+`Q$V>$1^.C'P6TH*)#P0PS[V"R,\$(/?I/S3R\7 M?_C#ON M>[&:S.BD\>,(DKM 6#P1XI!W]5K-Z[A[3&DAB#J<$V! Z["H\BMD>14RX4_Y MA+PKTSND.3;O/&.!6IQ:'(7C5"6T>4(D6. J5Z,X.IC-7I)OF4P&G23;"KFU M8A0OMPK-^>0=6G$:BYB=.-GL`Y,A6'"><.L(,'']:N=.O_5>). $Y"V^%8)G MH308*88LXY9WD=&7^!K$<*''D U2AUI"RCG1RG;6P[ BS'6/2'$6>T6^90;" MPORB"D\A%!]ZB?NMY(WD-N (.W)[?X?'/WRZ%!>;[A+G=QQ2NDZGQE^,9"83 M_R;;#KT?].K)%/-)3">'NZZTUB*P( B'<14?*V>VE(/(8A/?X4QSIOH58%2A MH\.(+S2FX^C09 7;39EPK6W_RN%YUP$<C'/F`<,)LC][F--;9.*6;4V3^'ZB MC]0<Y'429%K>F +53QB$^_+$=M<2O%T=`5[6K)83>Q#K`0\ZPF2UA^ !T3D* M!O)Q`4R;)Q8556V%!U=H1/F 0N>*A3Y!PW! &)(S0C$LAS -U3-2_SJIQM? M`0:J- %>A^42'CH !Q4A$LV3^244N6^7X*X5MR1Q $=,_2"I73>^+*G=B.3B MG*S!!30YPB,<YDM&QET_KD6U/;CI$(/O6Y29YF7G0. 6)Q82B[4=0I?ZL4A- M2JTXR"NCB.?HBA7M*JI 7%];%17.+XZ*"#G M_1#G!4(.P=,' R?8#RAV4,;WOHS6(Z0TN(Z>.7KLZ/&C[QN_JPVY4VF\4!L0 M &K%]PH0)!7 )U'/=_+O_V )'H2<SU^C" ;(]^:?4 3$/A);PT7=EC$-%TU; MP* WM'7PW>^>A9OFR?9WSW3XX +W7[J>;^_ VW_][E"'YB_=[U[JN#I=N^'8 MNP*)^T+<DC% (QWNOCZ/IS[DQ)PSRTU4+YHUC9?FAE'45G6KZZ").A'=BR8) M='<`TH< -V*C;&\^5J_DVP=[^(/LQT'[AQ1/R1QJCH^TF" -5SP`OKG$-U0. MWESPEG/%;EIS8LY.1+IAX-2A$_4#NXX.X9 ->]FG9!BY>V0D!&I?_ .&S;PZ M]-EKAKYRS= #UPP]<LW0GFN&GKU6:&L?X8\O%% 2` \]Z4/ )J<"O"NE(S^N MP#W]:$A[.>B;#S:X";QG! 71GAE*<E61JQJN=BU<A%E3\ 0-NQ']4T3_)O2/ M2^5=YBL9IA,;7%)A4:'PRZ)4Y8UWJ3),=.")6:>3=W7PP9Q*? 7/"W,B^H-/ M</?SA,[ .?.0605J:(W'0!FK!C_D"M2.XGU\UZ]!UY$HH<SM\6Q7^(7D" _ M<,JL`ECV$L4<8X<HYFWGA$4MBK3 >A7;IM\>.,^IDL.XS04^1\$^XX?,V<Y MT/U::0#EI?F<^-H 6&;!Y2]O-96_6I'I5)6_?"6G_-6WC6"HE/-6%7^IO/%S MJJ&<JP?/6<^V<C!VMS&:$QO4'Q6?V_61^5POFA_EQC?KQO#F",[<SYLCH0OM M(*0K`-=MIB$U;/TE4'Z Y8,S3 W<G,'#J;R<\;ZT0-Z[(6]40G5NL4!5;LMM MA2+'47 2.'*6O..CEG(4;8^*$F!3L/?4$TF.PWWG0[')2D:#BQT1G MX5 (F.J#WW#SE'P W +Y]EN],D3D1P0,'/Q885:C( ?RER 9/';A$Z1J][T_ MYF4L&FD5HX5;^\$J:+ \G]8V7%['C'&.6FH<K%6"::EMV.;1T]^T:%.+/(QL MG,>,Y>N'!D\W>[9.!;'HXLQJ9P2$-'NV!8D[H8(;Z ?-C'*^!XQS<Z3547 P M^;\.'HVYR!^];W!_KYSO\KU&1]Z';[QRQ3]]A9B^^B>EWT:,4$BG1/$#BN?1 M,7"=KVE^#G7,E>\T.Y[R*AMII[<"),K8KWE )P&(UCR VT&:7=LF="KT.2T% MKNUA.<TN>A0^S8-F.&CP.,P'G:,A> D3),;/-[5HFXXQ?8KZ(6.]NCX2='O, M._Q%Q6!1A=XF]':1-57%Z27T%&?D$GHBJC8FS(9V?TM!>+Z $C=M\#U &C)* MS BDGZP10TXM6A/D`-<F,)=:+*[M(3G "_:&,2Z";:J(S1*>)[PBO8'6XU03 M'1K88L9V!3DUG-4UO&E&PC>K!D\A YR06TQ.XQ4\66Y+T.M*LN.-O5(*? 69 M5B6[WSJ51LJA-(+1Z:&G\IU$E'\]>'%10[M>>MH>MA0"N,YF#W-Z1)M%1H. MG2&L4PY&%<K_N'+V[BMZ^JMR7EMNM%UA%! EO7<GM8'=8AN(_!)GTJD5T+<. M6I3EK7"SVH0A(ABJ7K+"(PJ]!/C*= +XRH-PR[<)[TB [WNE6U7>I9A#L1UR MNYT3Q- E3, PZ'Q\HQ&8#R;DQY+H3QDI^E\=$$7? \*O<TY90D\NQ]>:F' B M>=THY86-X]>^QC&&1-+!Y;P9<"A$'H27LV=UY>R;9JFTF]6#I[RL=B)I,>C[ M7_Q:7YL!NPK?]H.>EIQ\>+++[,9M/EWFH3!LO.9!<"Y9I_E;N ^ NP!F5-]K MP'1/EUD0EY).< 5GRKF"<YSE+6 O?;U2G]'A,?=A%7D*U"OX'A.CA 2XG:;W M`%^1)5OH4\.M(M:&>I>,B6BH_Y:BQ[*7%VB:&G ][?(23=.G<J3>16E>,W<8 M>YC(QGI2+DWSWXCP;E7RQW%JBBMP.Y] +^LU.\A+<Y=3- ^0K:E./8COMMF\ M^:WF$^5<!!U,MNWT$K/AB,>+K*D<"V1Q]]Z*X5=&;=/R08HVA[)!T<$%]>)" MS5?VCH+G5\M(H[NB:<+.2<J747",V^!A+Y=!-5\V,[=TF??)R.;$B$VK1O"' MK=]'T>. W[L\AS/O0\8.R)P]P&/Z72CTEJE0X&V1_/N*8X[P!Q4?LAW=_.7& MRV28]W>H:IGS+XC*YBG0DE69O 8R9S!XVE5\`4RU,< ^;^7W/HDCE_H+%&V& MB+<`X[8&\ 5#H)6/\V8WR&=,>YYB2&B^`.)UHO[D+F <":!DE7R7$]Q CU7( M^(9$=4-4_> 3&TZ>V-!]ZB*".M72TR%\(BMLHR#D S/XR!= C]LG"R;O*PH< M>1<<R)'QYC-<EA(:^#DH JHW3'H75,"&OV4TZH-AOOB7P/F[$7*/==(%$LFT MN;=?\2T8^?95V I];_4]I:1G>!).XL SH0>NY;Q-E>^I4WH,%3+A%)Y6<B#B MQ0_^YQ3<2^;V_R<57.:%GQ7<?T'!/?'5#RJXXK[_Q0KNR(\IN /_TPKN[(\I M_2)804ZK64$)& -\$<[9?('J`SE.13JG0N5_)"/>\3 S`1P9(!P9DCCB=I ' MS.F](B//,GC&T4SO5V21N6,&1O*6_ !9F\>SOEMK`77<;3C6DA>D. ;$X4#L M34?X44=XGB/\%YK7,0P"%>W\P?T7M7]"/V?IHQ4H)O5J&(6-YNO[8M"GV8%; MHEA/V-: U\/(&T\Q3!\,8'+Y4]#VE MUJ6:UPNN< 4])\P]/GQ+G2F.I9X\H?(:Z3=. ?:XE"0-'YF49#T?"W8'.15T M((]4$_L%;A()AX:L>-_ XC^$1M"IH!;!N&$B;^[7O*AO_ RYR+IDS2Y-<R(D M^>*^F&+UL B KNDDKXS&%(3'?-A\8NMX% K+R3QA]$O2RV G.Y41`-?GFSS] M.=EL(4KZT4N;%>PQB A\A%? __2"5^"]QS'U7;5>(![O">80,TJ8J,?W09V3 MV"O?P=,[-Y,G-7O%S02)&Z[T4*U0FCYKH3!!3W94A-G[H4L1IN(AS+C6W$$V M?[RR\Z2)ZI13INQT&1[Z,P"\:/H=F>3IDVGN?01G22SGG5/(.0N.G;C;P!G0 M10^^-RB-,?; ,WB$_3?A*S:'KHQXGSA]>(^05:C_4/Q4 /2^HT5-7GZ&`D6X M6'$_Q8R&35"64:;F0TP,W^V\$>/V?Z+2O% C"SEE/,S(^6Z3,QA#Q8>6"%/3 M">:??+OO73CQ_4$5:%.'6<N9W<Y(Z".>Q_<9ZM4Q0TO!>)N(1S[>\'?QM2>S M:7'4V#P MFH/*:.P<\9WUXHY67%7RKJ&HR7Y=?,6W747MW)D']J R2O =`.\7M)J7NO&5 MNZ!6?"'LE [^O7R[:B/0_M?9Y#TL`&+3HG "%>.=`:UXKO4MXOLAY!R ]";( MB1(_,-+\.K:+] 8,T30_3PV_8;:6%-;1C$FL8)]5`?:*58Y'\#E?^*6XTD;V MI9?GQ^32DYQ1(B 9(DT3_=(;"<1/YDR#AV$:#R FLA/5WHI$W$ H5 AXXM&* MCHKQPK 0; RG\?,ZXEKR\#M ME DETK-W[1 4EY8;]^A;.$+9N_LMW_JA>(PEC'JD[:(_%":M/PJ'<?VQ[S!Y M3Q;,%RZT'_Q[!PZ+"-&L8=/[3B$GMN!<R=ZV4QA]"E/M RL?^CCDG2<D_HV< M-\A==P`"[;/O,E%[,!4,H<=A%N+;P^&$">O$;9R>4,3BU.*)<B(NCH3LP<O> MP(/)*DS:+1W0"% WO(7O$[K)^;F%_!7VD$=:2;QPWR!_E._:WROWK27>"L/Z M4WL(Y\81+D;N] 2 9[7O *4!G(PJ=CN8(=!OG$)\)5$<<3OE' 4?TB)+T]&N M+=A6*#PMUB^!%\GY8IC.R8286;0R+9,)(.M>D&*S7XIA.I_AQX-QX EL]M!A M9(\>V&<>(O'("37R94#B"Q_2D$+1H4 D*"X->:?%>ZP8*JX]8O%HC56XXS?B M*X_C#OK+"+X_6*#B50TIJQ M/Y/7MXP&<^ #KP M>5DY.Z2CS\-U%-W'AY6SP,9HB!L!,(T.* =!_%**GX+Q$T< ""$("-3G6/O[ MG 8F*-K8-KE5L/Y:E("W) DX 1) HP1,P;>">P^+$D R5)3SU/<H`D'XNT\0 M\I$>9C:2 ++0X:U9,:%$Z6<2I3,03.<E<Q9N&!WR$XM[1R8>48Q'^?'E^)(* M&R ?*1^[KRT?Y2P(B$8L`XLB,O,J$=FYYRV?C% >E63D+3\9\8H(8%K%`/V; MY=,8-1]<WB6;1K&4$C\$)HI)H 1S$\*L8FXD,*L(3+1S(D9NEE.T%L6BG!^% M^7:*ST+CKR1;>,][I[SG[6S L#W=ON?B7Y'RHAY^C^CA;JG<Y)QY-AT?*::. M42\K$D[]4BH*H> $V>=['/=1\N,P:;Y-V/T'TMDY=8BNFW035F'7'\4I<]F2 M>6R'DE> ]PO'K<H*)7==#X#DV(0O?R'-+(,12+"23XY(Y$<C+LR15T;Q C.8 M*Z;8-Y3SYBM.VP23C\)>9ZPW3X0;<D9:A6EBQG0 K^""G,HE;!>>:N\CXI0? M)\-(T<+%G3_<.(P03]2'L<G?KI#OC*CM'R._]KNP7DC2O<(I\? P&)*9WB8G M8QB#Q3,TV*' +1?(_GYQGK&?G+YJP,.8<<-7`<YI<)8AGDK?"6;VMDSQJ-#T M`'RX3M/T#CS,`7N_0=.$*PBYXJ<X>O&SA7.N`QA-$^I[5KB#CNOM!5] M<>3 M0W$7VNMHHO7^QB^T&4/Q?2:R2\T;BB:NN ?B#F\0;I=Y?0$&W0I/V[S 3BL\ MX=<'7B4KX]GPA"?#B9_BBX>G\;ZG&^!I N\I`IXB?$_2J9+DO-3XQR* Y^P5 M&7D#Y Y\64+<WE!N.,9>EG'A))X.9B\K<-%!SB0+S'&P;3.OQ\\+X>;'/&'3 M<?&--W._%??,\>K'L![S/,?Q!* #ZL'WIV[2.<,<!?VXW=P728;\0R/6Z,FI MGCF6`Y(\ ^WL9[^2UR;!A8[#B]P9).P8 +%,%)C:D[_%C>>3\)05DLQPK.4A M.]PKJ/Q"3[?OE$#O MJG8JR+0 .4&6F<R?-A:[ZV[F.U-S9(S"8Y.S'8$04OL5V"[%;K;CDO'RG6/\ M$1"(*LF8M.4+<K*)S\; S93SM.P9V5X<L ISWP-TA;I\?DEDGE#WOC .G1=M MY^FM?.'L?&&%N,+'+S'E\?/2("P9<HO/(VOT[ &M,-%;HE1^0M?<7RFQ1BNH MTBT*,"0O B'Y;8-Q&A/P_+0<9\#S.A+1U$:K4KO!`!W%?(.1RAQOL!+2? MI MOA'PG$JKC8Q6GHP$KZ<0\H<N2'\>17HJ/PXU- P;<&22MP?'*B*(VBJ$GA</ MWB05SA[8MTRX&S"XYD;-EM%!.(VBAZ8=3"R;N1W"ZY%DX.EM`R]&BLW<^_R, M_[.T0_6W)$R%840C>._XW4%A*D3&!&R!>NX0OB9'U*"7LB\^0LZ([)F,*N44 M7/?B\8'2:8)X1B3QX"A8/#K/>W*B38A]0.QU$QHO8V]ZYVCA5<[C<36 PI?1 M`<)ST!Z%IR"(W4Z"A-W YQM0*T/C7CE\!F,3A!L?Q7!&(]S)><^%O ( -N'$ M1/01.\?5T0!Q 1CW',8]BG%NIQC7I:5+V4^"%M&AB^B)B^AIK%-.1SMO+H(2 M$.-63= !S0<?>UNP2WO'<(SOA"?G- G*N;&U]0BQ43;88S&;+LSF-<SF$3$; MYS)O'N&+Z C,(](YM:A0&HXD%18A%CW_OHCW1A+CU+URY(AT#FPQ8OT(L;Z' M/*:<9R+H(+'SEQM.N,Q:.1W8>!AE<0^1X60Y,QV/</_+$\2&*Q(/6++B0>H5 M,* 2'A%W= ]V8A* ]"VD]#ND]!PI_Q?B).QG04OHT"7T^"5T)/9D4YW1- ^C M\I#U M]&6$BT.X20 W5B)AN (F805,<<X 6:BQ88 ^[+7-DL<7\DK*.U(E3,/CW',1 M;R;B?:67X/7.*[2U/O&V>/#KN-]"$X4F^4VSM]G*A4_!WWR"AH9B"U2\2W:( M+HPGL%&<-9D<V1S.9>E(5 2W, JB.DUF!.W,GBLK!.$!&'9_?IX0]1O",4FP M9'2(>,PJ'HE;;A,6_9[80[PEWG-'!&^.]]2$\P7QGEHM"5&3$!4)46)(+.33 MQY-DA>_&D44L<NBJU+'Q;['[E7D%A47Y-NLRSQTZZ*'O<'ONB 2^>.X(]]RA MLP>>Y2WJYD/,^"[SLS>00<4+<F(7.BS/<N8V=H%2WGHW+E?=+7W)^JAP^$] M!-3#UC_XZN%1<3VP=!TWWO^0<'+^)BGU3:Z<27(ZBL\)YQ.PKARV?,U+N;/S MDUSSU'(Z7//2O-E6S\;H0D^=21 M8NO,,5.^.<A^_,9'\1!7/\ Q_<*A1H!H M)?8!H(\.Q#X,T6]%],M$],(3C=X*%'Z-WC .WWV ^!P0*G?I.CZ1?/AY CT1 MD^_"Y(]B\G%B<F-=-"BP)(Q[!>-^CW$7STGKHGC8B.8EJY;/P \\E//AVG(N M3VL3UQUL'EOD"E]?H/$PR I91:#PV$4Q<?$07S_ ,_T 9F;0-6X^7\UOH/BS M9\_*'(ORQ9$]U(J,+PCG Q6 NA:9H.*4? 8P]"D]'4S,&O(]A*>TM,Z5HY;1 M\ PDN>$30K*$P6EZ2 L5AP=YV5<CS!*$627"( *(? 0C&S&R'",S/Y'*/(3[ MIX9 SL*%G,>DV1GF1OP`2$$_AGJ8(>&6/008QVN6(:.EGPZ2,BYRF(>L6)P= M#Q.(W '\\DY.!)3C]RA:-J71% [4X[G(]J<Q\^V8>?M9`DTR/;+;F^E$;W;. MQ[W92=E FX !+9X^NEF-`OX.HGL#T3V/Z.K.>L]&]F#OI/+40O,>0K+"77Y< MUCI7%$GA'STDVE2YP.&)13!PRL/0KH?\Z\098[P;.3^(F7V"F;V%F06*F7DQ M/21B(F^;1T$-*N I5[= *-'BRU(+GDN-D&ERPAUG'L!1*7;"^%U1\,>033#B M)Y&TO;AFA]\L<). -/PV%(]V=;B\G-N,+SVP7\AJ(]DO%)I[+J,%95NH:<(I M_MZW\2*(;ZVC^,Z5*_=&0RLL[\H:*Z-LT#N\C*KU5:)?+4.O8IQ0_P0.AXM7 M=!!O[C?J 7$O P5B#SP*C/L"&??V&;&6Q ,P-Z90^ M.7A=Z"B-7..<3`MU\ M.)1-R2MEY#M MC3(6JS7-AX=W``*K)85_GSA\]0UY\ C'.C&,5Y#N<^6(CW:P'2KG+#Y'B<?) M\AW.&Z#I;E1#I:H\&Y7">;*-.5SZN&(PVQ'.&BGFJ&_.1-P'A?V6-5+\$A&_ M606F=,Q\):EQ-;]0S>&A4*K&9-_Q]9/ 0!1R#I 3#EW9RD"ZAO16PMO2<K1% MU9B"?3ZSA+\>RIKKG(''TK ]-6J/`9CHJ47U"[VZL,Q+'1.%GU$'RHZ#BI\B M'L2H%?LUX<KO/![Q`V'BL&TW47IJ_"(6?O!X.SY>T+RD3(*FR';*0>22N((^ M\/&6/O9B .8^HQPG(1VN1TS4PD=-U-9?F:CCX$;_4GQ&1S9V-7Y!#N0/Z)V% M*-5)G.4<VZDD>R?/"?P5Z058`0\5TS3A,.M:!EZ,5/HO1]>&$*Z18_3'D6^7 M8\[ \4UZ$9]0)![[9$/_8K=T)I.ZG,=MQ58M6]^G8"9XF $H`RD)B) 6"^* M^2?=-?S5AE!2 A0YDTW2I)$*4PJ/_0I(ZL'3Q[U&J%LR0MVB$5IZGABAA14! M%0JA6MPUW^IKL:3M\IU\,;2^`>&SKSV>WK=$0TGDC*;IGZ3T:-OSN,OE)&H9 M7'8X)&]NJX\0I15KRP+\,0_!H$ +(_*ET#B MQ9,-B[SMV1,"[?D);,];L#WO. M=WH\T,G*H8>8C&]2OXOXGD9\>2(^]NYH[#XB,7(0(S_$R/B3?B8B7L.A$43P M8 O611?B(%3H[A<-2Y5D:([;+3Y'4L+-+J\-"N'?[?(9H!, _"J;WKM6'H%F M4+W*.0<TDZ*+?&U-SE-\F"L;^AT8:D213X.A&0[J<RSIS"(-+ORX>7%XW>'A MJ?ULNSI?5 C"VX0672\>A!33PYK[U<[?D<_!96D59C0N\ P>Z&7C<%,=2ZP, MDFD&9MJ%F?X5,QWOEVF1F.D2*5,*,D44?IDN%S/%XFB:,B%G+WVHQD%3]$MP M`'Y)\C 6<Q864PT7H;)'^M"22I+GMS"^$N-C,7ZQ%&]38W>\4L7?K6OV`-B_ M$&P+ M4AV(P>2>RU>)I0U^ &-V?6 +%0PR\%K![XW7DA=P)]E.8^&E,S&)B MUD<PZP52UCEJ]HR5';+2^$)U+GLW='?HRR"%#N%M*L5Q_D-^,GXX2QM3-Q2S MFOZ\%BQH5Q:I^"T(]#H";4$ VT /DM':( N*T!&IV)O)H/\Y=![B1D1'"V( M;(7[OI.&:OT\4(#Y M[\8/4I[%%2<%9^[CZY2#G6 MWT'DSR'R]>])M=3'6R%!WV#G M^1" DY! ]#L M ]G]0_Q^$"T,&*I0V17'R7[%9N^G5*2D^"$^G,V?,4!E49X90^3J)E=*AE<E MN:K(54VN6G(-)]<(<HTD5QVY1I%K-+G.)E<]N<:3:S*YII&KB5SGDFLNN2XF M5RNY+B/7Y>2ZBEQO(]=2<K63:R6YUI K3:Z;R'4+N3:0:Q.Y;B?7'>2ZDUP? M)M?=Y/HXN3X!UW__RZZNK2RI*M7EQ,3HYNARJFLVUZY?9Z=U<7I]G,X765U; M,5$'P"W?:J+P\T 4-7381+7AQJHW3=> ;5E9';V^:IUN016MFY.ARV;6K*DL MYAS _#ELF M1E%KH"JJ2C=LH.RUI>MK5Z^Y:6VJ;G%U2>GB]6MJ2VHWZZ:FZS9L**VLU'D! M=>4EZRO+2H<3FK(EG\FVN6Y^&6TIVQ!UQQVUZT=&S*LM*Y-B:C:.C,HO*ZFL MK%[KBUWOI3O2KYQ1$TQ4&KAEX. )6 :3^%U*7!C!BU;ZOJ2.^M[7*[<_;_(Y M[^^]*(D/P"?\TBG^SOP`SQY_?B3/_._>M/AKFB'6KQ<W_CJEL*B_FZ ,_- Z MN*J_B_%5U;JJD UEI;JR36O+:K 5Z&A[;?6=5=2:DA\())SZ?I2YMK:ZEJJ] MD8]Q5\5>.U'<M8(7V%;;EN47Y$2O*:DK0P!+2=WM,Z\)`:79>$T(;T1.94E= MW4UTS=IYE27KZG0WZ'+FK<[-LJW.SK*9;?X)HJ.9JKKUZZJ VZM7EY?4ZF;- MW$B70+NWTK4S5\Z)+=:EI^OT_BE\'*&K:Y9MK $X; QZW0TWZ'ST^:*N222] M%?3[9%Z%QE?*'T7CR^R_Q_:2TM(1&')*JFZD=26E%4P=K5N+U:U#D MPV6TT25K;]<MW5A66UY9?>=4*BKUA]*/DE\[/% N:O2K?W*Y^%WAGW\__W[^ M_?S[G_W%X>4VT$22^U_],XGC*2I,+E<&!*I4JO!Q86&CY0'CY5-FSH[&'[D% M!,R<,&&T_T\S>[I\MF86Q(5-CI3+`S3R"=&SPF9)L=-'!P1,F#XC M1/_X`)T\+%(9.%H*EX.[(2(B,"S !PJ L6%^OP`"-2O,#T3\38\(N]9/[H?( MFR -N,G 9H)+!;<$W&W -H';#N[WX/X![AUP_> ".TQ4.+ H< 9P\>!BH1QD MY `6V(*JC265ZTMUY4S56C*RJ&(VK"FKI994Z^J8M79=.0SZ= `) \2RM71U MPQB&H)+0PZ /<.E*:LNJ2G1T;4F='8"6`-*RJFIFG5VW <3[J!,?=6M $'2[ MY5^[CB'T9=6NTU6N!\.4!K:M6;^.,F\J6RM1JRLCH[F<VNJZNCDB.H"MNOV: M+(9\UMK75Y;J:FJKL6PDLY(:>*JI75]"E^D6W+P4R L6;G4EII-F6S [AACB M8G6LK](Q=674//0C295 *2E$74T)9E]63NM(+9+"+:BL+%M74JFK*RN[G8+A M>^F<ZJK*S2*FNLUUP*]A6I'R.BJ[MOIVH+EF?4T994'!\7$BOZR.J:3],B4T ME%36`MK-,-(%)H$ `2O6([&E$(J53RWU%H6(8 T*&M13J:_R)'8`,VA )T/J M?25RD<HF(BDEK"V[ P')*!U.MH:I$V6DQ$]F%M2->*3F>KVD3"ATFZF"JMNK M8(0O$9BJHX(I*KJ*J:R<"7>JBF*H2OB;B2II_'C9^ GCX2>GQBN4XT<%>'_C MO0!N'[ WP!T&=Q3<O\!]".XTN,_ ]8,;`B<[:**"P8T&-Q;<>'"3P$T!-PW< MA[J92J5FY*;.L*3.L%$S-MP\H_3F&9NI&5FS=3.R=3-*X;:"RK)05 MEJ:XJ M+=E,+6/*ZO!>5%9:)?J6V9E:XIE7NQYOMA*:J24>AJ2 A) *4R L B$,1E,+ M2ZJ8$E!$\\K6U!*/I:1VK9W* IZD$OR;J85,51E<*C=36<PZI Y2E8%B)1WY M`[R^2RK)9]JMEGS6#HWDBQJ0IL(;?OGH>-&GV_?:1-&G?/W0Y/OC3;_]1TW, M4W]YX['UIG_]X1W/ NLWM;]K.K.CM^'0_%<>>BKK_E,7'[OLW/KGO)RN7XS^ M$X6N5'+ PRJZ7)>J*Z^L+B&K#S75$")U^75$XV-7"=52M[:DZJ=!PJ\&<8/; M(KG_J7SBB-G;L$TL8/^VX9)Z/-NV><CO:^GN\>!9:6T^F.$VX4W7+ZYQ] ]M M;9E19\G.L>E$PPL9O+YJ/;T>3,.[D,M98+[5$ -%7&.!WGZV:%3!':H"[M0, M).-&6HXSX+ V:TT5UG\E&E#K:DLV ,$#IE65;XT.?\LWF7SNZO4W,C_J-1M! ME( 5&S; 6A^AWVOUZ3820^<G0/KF7$="UH 17#XBQ4 M^XU%Q-'*?]Z_BK.FN'X3 ML7Q%4N"K<RX-N9^-HY,<G&[0BY5M_C_],[_OT\ M;=/;(^>B6^__]VE:KTHS]=>F'RU3RJ__/4[U$1&G"OQ] %\%_JOGGZ-1=G#M MC2[]K^"*WE!>]1\G6KN6KLT25T;$]2_(V?\9I!87:[R/A&&^5<+%,(;RQFRJ M]/E*:\DRTJ92<WX^CG.0C.'HTKJUWX^&48BXP',52"YHM"P1Q%Y*7Q,$1KRX M"V!D90Q'2QQ99EF]P+;:NBQ_)%,V7!7[??26?PLA+F8AVN&P[)(Z'\]$PN=D M510? ZZUSEM.HTB,6.65,A(;&MR]I8F>NRRG<!ZVV\*LQ5O$AWSS,GB8>8U4 M_UDA_2'FK_'U(+-F9>?D;++C+'--./3JNBWDJL?=,;IM-V$_KR4KR+N3X!JP M*1NNRH$,N 9'W(97O1VOB]?B5;L!KK)(&J]/W E710U:<?)^M#D5K0V()_H^ MO,;C5;</\Z(VX4XAW0[,438]!OU_)OF^D$0 <S#M$,$3O0W]R=M,/T_M_/S[ M^???_YTQ4;O!\<_^W*+^?_RE^8U&GY')*#P M<'W W.!&RV54%+ T< O!+0=7#FX+N)W =H/[*[ V<,? G04W`$ZID%%:<#IP MB>"RP2T!=RLX&MR]X!X$]V=P^\ =`?<AN'/ SN,'Y)4R*A+<;'"IX*S 5BE% MNBO OA%<D_3\OY7N1?YS0P5U9;62E\R +"ZIH\7MI;A:O&D]F3G"62,2FY5C ME69*"LMJ<:'7O"E+?,X1YUT6KZ\J\X:(BZ;+[+BTMZ#T!V=8Q'!<!B0V-T7E MLI(:*<1&E]323,V"JO+J+&](J2]K\1E)1CJ+I)!EZ]?>+MK.4JFMF%SB)0[J MEJW?(*:NK%Y34BDN $-&-$/HP-RS<$))\N.^:0SWVY--2F-A*NGUV9OILF75 M1>M+RW+L)5A!^27KZ\I\0SV$RZ<K"\ $O??8:U4U557EN70M9720% ,1^Y9 M<?J7!&"(&.TKR;+*.B]9Z)?(`A]6?4DE(SW9AI\*JNP$1:F/'LA$PE^X'OA: M6H'(S-S%H#Y(X_GY][_M!_6Z&*IUM#Y,/UF?K5^B+]&OTS?I7]&_H3^M_U9_ M)&H3)R3F)!8EEB;>D?B7Q'\F'DW\(O&KQ('$H<0KB?(D59(Z:6S2E*2$)$O2 M^J2[DNY->B#IR:27DEY+.I T.EF7')N<F+PDN2AY7?)CR7]*?B$Y*V5U2EW* MCI0C*9^D]*>X4JZDC$V].34I-2=U0>JRU-M2-Z9N3>52'TC]3>H?4M],O9": M;,PTWFHL-]8:-QFW&Q\V[C*>,FK2[&F/I>U->SKM[VG=:1/3B]*/I9].'YMQ M7496AB5C><9]&8Z,1S(>RS!F+LZ\)7-GYJ.93V:V9[Z9^47F^<R+F5<RR98+ M" _MG:'7Z]?KZ_3WZW^M;]>'Q+X5^V'LI[$9<0OC;HN3Q8?%)\5;XPOC5\:7 MHU*C4F>FSC:F&O<:GS(>,AXQ?FT<,$Y)FYY6GG9[6EYZ8?JWZ9?2&S*:,UHR M= *=O\EX/./)C+]D[,OX5\9G&<Z,\9F3,V,S$S.W9SHRG\E\3ERMU5- [U'4 MM_I[8G\;^TSLB['ML<[8_M (H'1YW.UQN^->BML7UQ?7;'C(\"C4[I3XQ/B- MPH&$?R5D0CG^E/ <U/';B:> CCV)JJ3BI(8D+NG!I%\F_3;I]TE/)3V3](^D M^7KFD<S>S&\SO?LHMZ-^TZOT$_71(.M5^KOT]^AY_<>QG\=>B+T4*XO3Q%T7 M-RWNYKCTN.RXTKCU<7?%M<:]$>>.2S3\(5Z7,#M!GQ"?D)R0EF!*F)N0F[ X MP0JUMAS*?%M":8(=ZJ\F 4[8E+ EH2&A*6%[PHZ$G0D/)SR:\';*5RF-Z;]) M4[)3<E.6I"Q+69%2EG)'2GW*+U*>-AY)>R\M,",T8Q[(,B7MB[62_*?HHX / M/PXD_BN0%2HA.&$"R$H"<* QX?X$66)ZXNV)]8DMB8%)-R6E)9F3EB85)*T& MF6A-ZDCJ3KJ8%) \)ODZ://KDVN3ZY/O3?YE\N[DT)1P4L;;H(QU*=M2FE): MZMK4RM0'4P^ -G WM="XUN Q)J3EIM%IN].6IY>E7Y^Q`B1I5P:5.2IS8N;, M^G?UI_0;8N^(96(WQ];'-L8VQ^;'U<;='_>'N(ZX0(/&$&:89)AA,!H6&PH- M6PW_`&[MCW\S_E_QY^*-"14 /_4 -[],"$Z<DMB<N"/QP<3IP)N$I,*D6Y+: MD[N23R5_DIP$+61ARGS0D"&ICI1=*8^GF%,70ID>3WTR]6#JV]!F=,89QOXT MHW%26FE:=9HBW9Q>D?%-QK=I;,;VC!LS9V?>F\EGO $:3)WY<>9G6):=%(7G M/TI^+:4C94SJ^-2EH)L/I!Y*769<8;S/N,-8E5:7=G_:0VG_2'LE[7S:8-KX M],GIOTC_9?K'Z9^EFS+,&6LRUH$6WI%Q.*,[(RTS*_-QT,#BGA.*HDD=3-3? MH.&(X3W#AP:**'J4]WA]LCY-;](OUEOUR_2K]+?I2_5V?27PC]9OTF\%S7*O M'HY[/.ZIN&?B7HA[*TZ(&X ;`LI5!K5!"Y1'&"*!ML<-W8DG$\\D]B5225%) MGQF?F9R9EFG*G)N9"WV9-7-9YO+,59FW 7S;,RLS:S+IS$T YPV93=!;[("> M[F'HZW8#M\5]%.2?&D 82G G4(G*1%6B&GKS\,2(Q,A$76)4XNQ$?6)\8G)B M6J(I<6[B\L15B;=!+V]/K$RL2:03-R5N26Q(;$K<#E*],_'AQ$<3=R<^GOA$ MXE.)SR0^F_A"8FOBOL2VQ .)!Q/?2NQ.?"^QAY3T7*(`I56"7:!-"D^*2(I, MHE*4*:H4=8H]I3*E)H5.69ZZ*O6D\0ST$H*QS] /?>.CT)9WI+>E#Z2'9SR; M'DW\+=#X9Z#PQ43<]R*]QJI70B_RLPGY\^_GW\^_GW\__W[^_?S[W_7[/U!+ M``` `,"!R%<``$EN=%]60RYE>&502P$"% `4``(`" !38'\LQ\5H.7XS```< M9 ``" ```````````" `P(&(E ``26YT7T1-+F5X95!+`0(4`!0`` `(`*1A
=%]"0RYE>&502P4&``````4`!0`8`0``FH !````
` end
Mar 31 2002
prev sibling next sibling parent reply "Javier Gutiérrez" <nikkho nospam.hotmail.com> writes:
    Above is the one generated by C++ Builder 6, and VC++ .NET.
    The only think I see is the offset calculation, Borland adds 4 to the
offset, while DMC adds 1, and mul it in the Mov. As far as I know, it should
result in the same speed...
    But in fact Borland code is faster, 6168 ms against 7390 ms for DMC.

    As VC++ .NET, it seems the loop has been unrolled... Maybe this is the
great advantage from 3374 ms...
    Why DMC have not unrolled it?


C++ Builder 6
--------------------------------------------------------------------------
_DoSort proc near
 14:
 push ebp
 mov ebp,esp
 push ebx
 push esi
 15:
 xor esi,esi
 xor edx,edx
 mov eax,dword ptr [ebp+8]
 16:
 mov ebx,dword ptr [eax+4]
 mov ecx,dword ptr [eax]
 cmp ebx,ecx
 jge       short  18
 mov dword ptr [eax],ebx
 mov dword ptr [eax+4],ecx
 mov esi,1
 18:
 inc edx
 add eax,4
 cmp edx,10000
 jl        short  16
 test esi,esi
 jne       short  15
 21:
 pop esi
 pop ebx
 pop ebp
 ret
_DoSort endp


VC++ .NET
----------------------------------------------------------------------------
------------
 DoSort 4 PROC NEAR     ; COMDAT
 push ebx
 push esi
 push edi
 lea ebx, DWORD PTR [ecx+8]
$L1304:
 xor ecx, ecx
 mov eax, ebx
 mov edi, 1000    ; 000003e8H
$L1307:
 mov edx, DWORD PTR [eax-4]
 mov esi, DWORD PTR [eax-8]
 cmp esi, edx
 jle SHORT $L1308
 mov DWORD PTR [eax-8], edx
 mov DWORD PTR [eax-4], esi
 mov ecx, 1
$L1308:
 mov edx, DWORD PTR [eax]
 mov esi, DWORD PTR [eax-4]
 cmp esi, edx
 jle SHORT $L1332
 mov DWORD PTR [eax-4], edx
 mov DWORD PTR [eax], esi
 mov ecx, 1
$L1332:
 mov edx, DWORD PTR [eax+4]
 mov esi, DWORD PTR [eax]
 cmp esi, edx
 jle SHORT $L1333
 mov DWORD PTR [eax], edx
 mov DWORD PTR [eax+4], esi
 mov ecx, 1
$L1333:
 mov edx, DWORD PTR [eax+8]
 mov esi, DWORD PTR [eax+4]
 cmp esi, edx
 jle SHORT $L1334
 mov DWORD PTR [eax+4], edx
 mov DWORD PTR [eax+8], esi
 mov ecx, 1
$L1334:
 mov edx, DWORD PTR [eax+12]
 mov esi, DWORD PTR [eax+8]
 cmp esi, edx
 jle SHORT $L1335
 mov DWORD PTR [eax+8], edx
 mov DWORD PTR [eax+12], esi
 mov ecx, 1
$L1335:
 mov edx, DWORD PTR [eax+16]
 mov esi, DWORD PTR [eax+12]
 cmp esi, edx
 jle SHORT $L1336
 mov DWORD PTR [eax+12], edx
 mov DWORD PTR [eax+16], esi
 mov ecx, 1
$L1336:
 mov edx, DWORD PTR [eax+20]
 mov esi, DWORD PTR [eax+16]
 cmp esi, edx
 jle SHORT $L1337
 mov DWORD PTR [eax+16], edx
 mov DWORD PTR [eax+20], esi
 mov ecx, 1
$L1337:
 mov edx, DWORD PTR [eax+24]
 mov esi, DWORD PTR [eax+20]
 cmp esi, edx
 jle SHORT $L1338
 mov DWORD PTR [eax+20], edx
 mov DWORD PTR [eax+24], esi
 mov ecx, 1
$L1338:
 mov edx, DWORD PTR [eax+28]
 mov esi, DWORD PTR [eax+24]
 cmp esi, edx
 jle SHORT $L1339
 mov DWORD PTR [eax+24], edx
 mov DWORD PTR [eax+28], esi
 mov ecx, 1
$L1339:
 mov edx, DWORD PTR [eax+32]
 mov esi, DWORD PTR [eax+28]
 cmp esi, edx
 jle SHORT $L1340
 mov DWORD PTR [eax+28], edx
 mov DWORD PTR [eax+32], esi
 mov ecx, 1
$L1340:
 add eax, 40     ; 00000028H
 dec edi
 jne $L1307
 test ecx, ecx
 jne $L1304
 pop edi
 pop esi
 pop ebx
 ret 0
 DoSort 4 ENDP




"Walter" <walter digitalmars.com> escribió en el mensaje
news:a87f9l$20q3$1 digitaldaemon.com...
 I suppose it depends on what code is generated by the other compilers.
 Here's what DMC generates for the critical loop:

 _DoSort:
                 push    EBX
                 mov     EDX,8[ESP]
                 push    ESI
                 push    EDI
 L97:            xor     EDI,EDI
                 xor     EBX,EBX
 L9B:            mov     ECX,[EBX*4][EDX]
                 mov     EAX,4[EBX*4][EDX]
                 cmp     ECX,EAX
                 jle     LB4
                 mov     [EBX*4][EDX],EAX
                 mov     ESI,ECX
                 mov     EDI,1
                 mov     4[EBX*4][EDX],ESI
 LB4:            inc     EBX
                 cmp     EBX,02710h
                 jb      L9B
                 test    EDI,EDI
                 jne     L97
                 pop     EDI
                 pop     ESI
                 pop     EBX
                 ret
 "Javier Gutiérrez" <nikkho nospam.hotmail.com> wrote in message
 news:a86p82$1m3o$1 digitaldaemon.com...
 I have done a simple benchmark using a bubble sort algorithm with
diferent
 compilers.
 All the tests have been run in and AMD K7 at 1050 Mhz using Windows XP
Pro.
 Here are my results:


 COMPILER  TIME SIZE COMMAND LINE
 C++ Builder 6  6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c
 CoderWarrior 7.2 Pro 4647 36.864 Within the IDE
 DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c
 Visual C++ .NET  3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D
 "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4
 /nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO
 /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj
 Watcom C++ 11.0c beta 6209 39.424
 WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c



     Why is DMC performing relativelly bad in speed terms? Have I set up
the
 compiler switches correctly?
     Great executable size achieved!


 -
Int.c ----------------------------------------------------------------------
 ------------------
 #include <stdio.h>
 #include <stdlib.h>
 #include <time.h>

 #define SORT_ITER 10
 #define SORT_SIZE 10000
 void TestSort (void);
 void InitSort (int gaiTab[]);
 void DoSort(int gaiTab[]);



 void main (void)
 {
  TestSort();
 }

 void TestSort (void)
 {
  int i;
  int *aiTab;
  clock_t clkStart, clkStop;

  printf("Testing Int -> Bubble sort ");
  aiTab=(int *) malloc(SORT_SIZE*sizeof(int));
  clkStart=clock();
  for (i=SORT_ITER; i>=0; i--)
     {
   InitSort(aiTab);
   DoSort(aiTab);
       }
       clkStop=clock();
       printf("%d ms.\n", (((clkStop-clkStart)*1000)/CLK_TCK));
  free(aiTab);

 }

 void InitSort (int paiTab[])
 {
    int iCont;

    for (iCont=SORT_SIZE; iCont>=0; iCont--)
     paiTab[iCont]=SORT_SIZE-iCont;
 }

 void DoSort (int paiTab[])
 {
  int Swap;
  int Temp,I;

  do
  {
   Swap = 0;
   for (I = 0; I<SORT_SIZE; I++)
   if (paiTab[I] > paiTab[I+1])
   {
    Temp = paiTab[I];
    paiTab[I] = paiTab[I+1];
    paiTab[I+1] = Temp;
    Swap = 1;
   }
  }
  while (Swap);
 }
Mar 31 2002
parent reply "John Culver" <jculver btinternet.spamless.com> writes:
Hi,
    From my testing I doubt the speed difference is in the code generated in
DoSort() :

    When I compiled with the following 2 fixes:
    in DoSort() loop should be :
      for (I = 0; I<(SORT_SIZE-1); I++)      // I=0..I<SORT_SIZE produces
incorrect
results and reads and writes unallocated memory which could introduce unknown
delays
    and in TestSort() loop should be :
      for (i=SORT_ITER; i>0; i--)  // strictly should be i>0  to generate
SORT_ITER
loops rather than SORT_ITER+1

I get the following results for my system : Athlon 1.33 / Win98 SE (yuk!) / DMC
8.25

With the code as is (fixed) I get approx.  5500ms ()
If I manually unroll the i loop in TestSort() the appropriate 10 time I
consistently
get  execution times of only 4000ms !!!

Note that DoSort() and InitSort() have 100% identical code in this case
(according to
obj2asm).

So the unrolled code is noticably more efficient, so it looks like the
identical and
apparently efficent code in DoSort() is being stuffed up by something else.
Perhaps my
Athlons instruction translation techniques are doing something very different
due to
the context (remember it's NOT really an x86 processor - it is really a risc86
faking
it), perhaps it's caches are messed up by the CS or SP alignment ?? It certainly
doesn't look like the low speed is the compiler generating poor code, as the
same code
generates 2 very different speeds in only subtly different contexts.

Unfortunately, these days if you do a one task computational benchmark you are
more
likely to discover some subtle feature of your processor, not of your compiler.


JohnC
PS To clarify things : I love AMD products (well processors and chipsets)


======= int.c (revised, and with brutal UNROLL option - see #define UNROLL ...
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define SORT_ITER 10
#define SORT_SIZE 10000
void TestSort (void);
void InitSort (int gaiTab[]);
void DoSort(int gaiTab[]);

// #define UNROLL 1

void main (void)
{
 TestSort();
}

void TestSort (void)
{
 int i;
 int *aiTab;
 clock_t clkStart, clkStop;

 printf("Testing Int -> Bubble sort ");
 aiTab=(int *) malloc(SORT_SIZE*sizeof(int));
 clkStart=clock();
#ifndef UNROLL
for (i=SORT_ITER; i>0; i--)  // strictly should be i>0
#endif
    {
  InitSort(aiTab);
  DoSort(aiTab);
#ifdef UNROLL
  InitSort(aiTab);
  DoSort(aiTab);
  InitSort(aiTab);
  DoSort(aiTab);
  InitSort(aiTab);
  DoSort(aiTab);
  InitSort(aiTab);
  DoSort(aiTab);
  InitSort(aiTab);
  DoSort(aiTab);
  InitSort(aiTab);
  DoSort(aiTab);
  InitSort(aiTab);
  DoSort(aiTab);
  InitSort(aiTab);
  DoSort(aiTab);
  InitSort(aiTab);
  DoSort(aiTab);
#endif
    }
      clkStop=clock();
      printf("%d ms.\n", (((clkStop-clkStart)*1000)/CLK_TCK));
 free(aiTab);

}

void InitSort (int paiTab[])
{
   int iCont;

   for (iCont=SORT_SIZE; iCont>=0; iCont--)
    paiTab[iCont]=SORT_SIZE-iCont;
}


void DoSort (int paiTab[])
{
 int Swap;
 int Temp,I;

 do
 {
  Swap = 0;
  for (I = 0; I<(SORT_SIZE-1); I++)      // I=0..I<SORT_SIZE produces incorrect
results
and reads and writes unallocated memory
  if (paiTab[I] > paiTab[I+1])
  {
   Temp = paiTab[I];
   paiTab[I] = paiTab[I+1];
   paiTab[I+1] = Temp;
   Swap = 1;
  }
 }
 while (Swap);
}
=======


"Javier Gutiérrez" <nikkho nospam.hotmail.com> wrote in message
news:a882ek$2atl$1 digitaldaemon.com...
     Above is the one generated by C++ Builder 6, and VC++ .NET.
     The only think I see is the offset calculation, Borland adds 4 to the
 offset, while DMC adds 1, and mul it in the Mov. As far as I know, it should
 result in the same speed...
     But in fact Borland code is faster, 6168 ms against 7390 ms for DMC.

     As VC++ .NET, it seems the loop has been unrolled... Maybe this is the
 great advantage from 3374 ms...
     Why DMC have not unrolled it?


 C++ Builder 6
 --------------------------------------------------------------------------
Mar 30 2002
parent "Walter" <walter digitalmars.com> writes:
Hmm. The cpu specs advertise that complex addressing modes don't add extra
time. Perhaps this is not true. -Walter

"John Culver" <jculver btinternet.spamless.com> wrote in message
news:a8844q$2c0c$1 digitaldaemon.com...
 Hi,
     From my testing I doubt the speed difference is in the code generated
in DoSort() :
     When I compiled with the following 2 fixes:
     in DoSort() loop should be :
       for (I = 0; I<(SORT_SIZE-1); I++)      // I=0..I<SORT_SIZE produces
incorrect
 results and reads and writes unallocated memory which could introduce
unknown delays
     and in TestSort() loop should be :
       for (i=SORT_ITER; i>0; i--)  // strictly should be i>0  to generate
SORT_ITER
 loops rather than SORT_ITER+1

 I get the following results for my system : Athlon 1.33 / Win98 SE (yuk!)
/ DMC 8.25
 With the code as is (fixed) I get approx.  5500ms ()
 If I manually unroll the i loop in TestSort() the appropriate 10 time I
consistently
 get  execution times of only 4000ms !!!

 Note that DoSort() and InitSort() have 100% identical code in this case
(according to
 obj2asm).

 So the unrolled code is noticably more efficient, so it looks like the
identical and
 apparently efficent code in DoSort() is being stuffed up by something
else. Perhaps my
 Athlons instruction translation techniques are doing something very
different due to
 the context (remember it's NOT really an x86 processor - it is really a
risc86 faking
 it), perhaps it's caches are messed up by the CS or SP alignment ?? It
certainly
 doesn't look like the low speed is the compiler generating poor code, as
the same code
 generates 2 very different speeds in only subtly different contexts.

 Unfortunately, these days if you do a one task computational benchmark you
are more
 likely to discover some subtle feature of your processor, not of your
compiler.
 JohnC
 PS To clarify things : I love AMD products (well processors and chipsets)


 ======= int.c (revised, and with brutal UNROLL option - see #define UNROLL
...
 #include <stdio.h>
 #include <stdlib.h>
 #include <time.h>

 #define SORT_ITER 10
 #define SORT_SIZE 10000
 void TestSort (void);
 void InitSort (int gaiTab[]);
 void DoSort(int gaiTab[]);

 // #define UNROLL 1

 void main (void)
 {
  TestSort();
 }

 void TestSort (void)
 {
  int i;
  int *aiTab;
  clock_t clkStart, clkStop;

  printf("Testing Int -> Bubble sort ");
  aiTab=(int *) malloc(SORT_SIZE*sizeof(int));
  clkStart=clock();
 #ifndef UNROLL
 for (i=SORT_ITER; i>0; i--)  // strictly should be i>0
 #endif
     {
   InitSort(aiTab);
   DoSort(aiTab);
 #ifdef UNROLL
   InitSort(aiTab);
   DoSort(aiTab);
   InitSort(aiTab);
   DoSort(aiTab);
   InitSort(aiTab);
   DoSort(aiTab);
   InitSort(aiTab);
   DoSort(aiTab);
   InitSort(aiTab);
   DoSort(aiTab);
   InitSort(aiTab);
   DoSort(aiTab);
   InitSort(aiTab);
   DoSort(aiTab);
   InitSort(aiTab);
   DoSort(aiTab);
   InitSort(aiTab);
   DoSort(aiTab);
 #endif
     }
       clkStop=clock();
       printf("%d ms.\n", (((clkStop-clkStart)*1000)/CLK_TCK));
  free(aiTab);

 }

 void InitSort (int paiTab[])
 {
    int iCont;

    for (iCont=SORT_SIZE; iCont>=0; iCont--)
     paiTab[iCont]=SORT_SIZE-iCont;
 }


 void DoSort (int paiTab[])
 {
  int Swap;
  int Temp,I;

  do
  {
   Swap = 0;
   for (I = 0; I<(SORT_SIZE-1); I++)      // I=0..I<SORT_SIZE produces
incorrect results
 and reads and writes unallocated memory
   if (paiTab[I] > paiTab[I+1])
   {
    Temp = paiTab[I];
    paiTab[I] = paiTab[I+1];
    paiTab[I+1] = Temp;
    Swap = 1;
   }
  }
  while (Swap);
 }
 =======


 "Javier Gutiérrez" <nikkho nospam.hotmail.com> wrote in message
 news:a882ek$2atl$1 digitaldaemon.com...
     Above is the one generated by C++ Builder 6, and VC++ .NET.
     The only think I see is the offset calculation, Borland adds 4 to
the
 offset, while DMC adds 1, and mul it in the Mov. As far as I know, it
should
 result in the same speed...
     But in fact Borland code is faster, 6168 ms against 7390 ms for DMC.

     As VC++ .NET, it seems the loop has been unrolled... Maybe this is
the
 great advantage from 3374 ms...
     Why DMC have not unrolled it?


 C++ Builder 6
--------------------------------------------------------------------------
Apr 01 2002
prev sibling parent "Javier Gutiérrez" <nikkho nospam.hotmail.com> writes:
    Watcom code:
    It seems very similar to Borland one...

DoSort_:
    push      ebx
    push      ecx
    push      edx
    push      esi
    push      ebp
    mov       esi,eax
    mov       ebp,00000001H
    lea       ebx,9c40H[esi]
L$3:
    mov       eax,esi
    xor       ecx,ecx
L$4:
    mov       edx,dword ptr [eax]
    cmp       edx,dword ptr 4H[eax]
    jg        L$6
L$5:
    add       eax,00000004H
    cmp       eax,ebx
    jne       L$4
    test      ecx,ecx
    jne       L$3
    pop       ebp
    pop       esi
    pop       edx
    pop       ecx
    pop       ebx
    ret


"Walter" <walter digitalmars.com> escribió en el mensaje
news:a87f9l$20q3$1 digitaldaemon.com...
 I suppose it depends on what code is generated by the other compilers.
 Here's what DMC generates for the critical loop:

 _DoSort:
                 push    EBX
                 mov     EDX,8[ESP]
                 push    ESI
                 push    EDI
 L97:            xor     EDI,EDI
                 xor     EBX,EBX
 L9B:            mov     ECX,[EBX*4][EDX]
                 mov     EAX,4[EBX*4][EDX]
                 cmp     ECX,EAX
                 jle     LB4
                 mov     [EBX*4][EDX],EAX
                 mov     ESI,ECX
                 mov     EDI,1
                 mov     4[EBX*4][EDX],ESI
 LB4:            inc     EBX
                 cmp     EBX,02710h
                 jb      L9B
                 test    EDI,EDI
                 jne     L97
                 pop     EDI
                 pop     ESI
                 pop     EBX
                 ret
 "Javier Gutiérrez" <nikkho nospam.hotmail.com> wrote in message
 news:a86p82$1m3o$1 digitaldaemon.com...
 I have done a simple benchmark using a bubble sort algorithm with
diferent
 compilers.
 All the tests have been run in and AMD K7 at 1050 Mhz using Windows XP
Pro.
 Here are my results:


 COMPILER  TIME SIZE COMMAND LINE
 C++ Builder 6  6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c
 CoderWarrior 7.2 Pro 4647 36.864 Within the IDE
 DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c
 Visual C++ .NET  3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D
 "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4
 /nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO
 /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj
 Watcom C++ 11.0c beta 6209 39.424
 WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c



     Why is DMC performing relativelly bad in speed terms? Have I set up
the
 compiler switches correctly?
     Great executable size achieved!


 -
Int.c ----------------------------------------------------------------------
 ------------------
 #include <stdio.h>
 #include <stdlib.h>
 #include <time.h>

 #define SORT_ITER 10
 #define SORT_SIZE 10000
 void TestSort (void);
 void InitSort (int gaiTab[]);
 void DoSort(int gaiTab[]);



 void main (void)
 {
  TestSort();
 }

 void TestSort (void)
 {
  int i;
  int *aiTab;
  clock_t clkStart, clkStop;

  printf("Testing Int -> Bubble sort ");
  aiTab=(int *) malloc(SORT_SIZE*sizeof(int));
  clkStart=clock();
  for (i=SORT_ITER; i>=0; i--)
     {
   InitSort(aiTab);
   DoSort(aiTab);
       }
       clkStop=clock();
       printf("%d ms.\n", (((clkStop-clkStart)*1000)/CLK_TCK));
  free(aiTab);

 }

 void InitSort (int paiTab[])
 {
    int iCont;

    for (iCont=SORT_SIZE; iCont>=0; iCont--)
     paiTab[iCont]=SORT_SIZE-iCont;
 }

 void DoSort (int paiTab[])
 {
  int Swap;
  int Temp,I;

  do
  {
   Swap = 0;
   for (I = 0; I<SORT_SIZE; I++)
   if (paiTab[I] > paiTab[I+1])
   {
    Temp = paiTab[I];
    paiTab[I] = paiTab[I+1];
    paiTab[I+1] = Temp;
    Swap = 1;
   }
  }
  while (Swap);
 }
Mar 31 2002