rlp@cbosgd.UUCP (J. Knapp) (05/04/86)
Here is a type of fractal generation program that you've probably not seen yet. It generates something like a topographical map of a random relief. The relief is divided into 15 altitude zones, each with a different color. The resulting maps can be very pretty. This is a TTP application. Run the program without parameters and you will get the usage directions. The algorithm is due to (who else) Benoit Mandelbrot. It is based on the "Brownian plane-to-line" function of Paul Levy. note: This program is public-domain. I put no restrictions on its use. Comments/improvements are welcome. ----------------------------------------------------------------------- begin 666 levy.ttp M8!H ':* "9O 0CRP 9D1!ZP" 0H(4 M&"A(4T(D2 P0 IG $ #! (&< H,$ )9@ #%*(4T)JXF .8,$ \ M9P K P0 #YG ":#! /6<*#! )6=*8 QE*(< !R !(0#$$ .6X:!$$ M,&T4XX O .6 T)_0@5*(4T)K ":8-Q*@&< )(,@ ! !N!B \ $ "/ M !M\F _WI2B' <@ 2$ Q! #EN& 1! #!M$N. +P#E@-"?T(%2B%-":U1@ MWDJ 9TX,@ " !N!B \ ( "/ !LQF _SA#^0 9A!@ (0_D &7P M<A]2B%-":R0,$ @9P#_& P0 EG /\0#! "F< _P@2V%')_^!P\6 )A* M0FL&%-A1RO_\0AHB*P 8TJL '" /D+D &WRD($D.0 ;,9F"B0 !(( ! M8 X,@@ " !N!B0\ ( "8!EHO6@M:Y !M\B\#+PM"9S\\ $I.04J 9P8P M//_98#P@ BY!W\+?^0 ;?(CP0 9C CP0 9C0CP 9CA.N0 ,.(O#$OY M #EZ"Q-3KD !&\< !.N0 -\H_ #\\ $Q.06#\("\ !&#J !.5O]T80 ( M#DAN_Y1(;O^62&[_F$AN_^A(;O_T2&[_^$AN_^Q(;O_P+RX #"\N AA @2 M3^\ *$IN_Y9G "&2&[_=$AY !F2&$ !6A0CTAY !F2$AN_Y@]0/_J80 . MJ%"/2H!J)G !+P!.N0 3+!8CS N_^I(P"\ 80 ,1%B/< $O $ZY =M%B/ M2'D &9(< 8O $ZY !-3%"/< $O $ZY !,L%B/,"[_ZDC +P!A P,6(]" MITZY =M%B/+R[_]$ZY 6S%B/("[_\.. (B[_[$ZY !.3"\ 3KD "%4 M6(\M0/_\2H!F+$AY !F:$AY !RXDZY :W%"/< $O $ZY !,L%B/< $O M $ZY =M%B/+R[_["\N__ O+O_\80 #)$_O Q(;O]T2'D &9(80 $=E"/ M/4#_ZDC ,B[_Z$C!-"[_E$C"+P(O 2\N__@O+O_L+R[_\"\N__PO &$ (Y/ M[P <2H!G,# N_^I(P#(N_Y1(P2\!+R[_["\N__ O+O_\+P!A 2\3^\ %' ! M+P!.N0 3+!8CTAN_W1(;O^880 ,;%"/2H!J)G !+P!.N0 3+!8CS N_^I( MP"\ 80 *]%B/< $O $ZY =M%B/,"[_ZDC +P!A K:6(]"ITZY =M%B/ M3EY.=4Y6__A(>0 9GM.N0 '!18CT*N__P@+O_\L*X &&P +1.N0 $Y@D M/#_@ !V $ZY !.%&P6+RX %"\N ! O+@ ,80 E$_O Q@%"\N !0O+@ 0 M+RX #&$ 3Q/[P ,2FX 'F=&2J[__&= ,"X 'DC +T " N__PB+P 3KD M $W$2H%F)# N I(P#(N ")(P2\!+RX %"\N ! O+@ ,+P!A .N3^\ %' " M+P!P 2\ 3KD $S^4(]*@&<*80 %5G 3EY.=5*N__Q@ /]$< %.7DYU3E;_ MZ$CG PPL+@ 02&[_[$AN__ O+@ 0+RX #&$ 91/[P 0("X #%. (BX $$ZY M !.3.. (&X "-' *$CC@2!,T<$J2" N PO0 04X M0 ,2J\ $&=<(B[_ M\$ZY !.3." T*[_["X 2D=J GX ( =(P+"N !!L+.. V<"YS60,($Q4C# 0 M4D P@&#P( 9(P"] !#C@)O ("\ $.. XX"9P&">( 8B!DC!XX&9P9O!8)!, MWS# 3EY.=4Y6_^A(YP,,+"X $$AN_^Q(;O_P+RX $"\N QA #63^\ $" N M Q3@"(N !!.N0 3DSC@"!N C1P"A(XX$@3-'!*D@@+@ ,+T $%. +4 M#$JO !!G7"(N__!.N0 3DS@@-"N_^PN $I':@)^ " '2,"PK@ 0;"SC@-G MN<UD#"!,5(PP$%- ,(!@\" &2, O0 0XX";P" O !#C@.. F<!@GB &(@9( MP>.!F<&;P6"03-\PP$Y>3G5.5O_X2.< #"IN @@+@ ,(BX $$ZY !.3.. M(&X "-' *$B[S&0&0E54C6#V3-\P $Y>3G5.5O_@0J[__$*N__A.N0 $Y@D M/$ !V $ZY !'F"0\/_ '8 3KD $@P3KD $,L+4#__$ZY !"Q("! M9\I.N0 $YA.N0 0RPM0/_X3KD !.8+T " N @O00 $3KD $*<)"\ M "8O 1.N0 1YA.N0 0N@M0/_T3KD !.8+T " N PO00 $3KD $*< M)"\ "8O 1.N0 1YA.N0 0N@M0/_P("[_^$ZY !"Q"0\0' '8 3KD M $>8+T " N__PO00 $3KD $+$+T "" O O00 ,(B\ !"0O @F+P , M3KD $;L3KD $+H(&X $"" (( B+O_T3KD $Y,(CP $ 3KD $W$(B[_ M\)* (&X %""!3EY.=4Y6__1A =<0F[__CU __PP+O_^#$ $&PV2, O0 MXX @0-'\ !R#G#_+P O+P $< <O "]( !!.N0 34Q/[P ,(&\ !#" 4F[_ M_F# 0F[__C N__X,0 0;"9(P.. (&X #-' (D#3_ 9H@P$4C XX B;@ ( MT\ PD5)N__Y@T"\N QP!B\ 3KD $U,4(\P+O_\3EY.=4Y6_@Y(YPD,2FX M&F<*+7P &;H_^A@""U\ !FJ/_H2&[_\DAN__ O+@ 4+RX $"\N QA $P M3^\ %$*N__0@+O_T#( 0; G.. (B[_].6!(&[_Z-'!,B[_\$C!-"[_ M\DC"DH(O0 0(! O00 @3KD $+$+T )" O " O00 H3KD $*<)B\ )"@O M "@O0 L( ,O00 P(@0O0@ <)"\ +"8O #!.N0 1Y@O0 @("\ '"]! "1. MN0 0IPD+P @)B\ )$ZY !(*$ZY !"Z"(O ! ]@!C(4J[_]& _UHP+O_F M4D ]0/_F*FX #$*N__@@+O_XL*X $&Q:0J[__" N__RPK@ 4;"I)[O_(?@ P M%3(45(RP06T$4D=@\B N__SC@$'N_CC1P#"'5(U2KO_\8,PP+@ *2, O+@ 4 M+R[_^$AN_C@O &$ !@I/[P 04J[_^&"<3-\PD$Y>3G5.5O_X2.< #"!N @P M$")N !0R@")N !@RD"I(("X #"(N !!.N0 3DSC@"!-T< H2+O,9" P%2!N M !0R$+!!;P(P@# 5(&X &#(0L$%L C" 5(U@W$S?, !.7DYU3E;__G "+P!P M 2\ 3KD $S^4(]*@&<4< (O "\ 3KD $S^4(\=0/__8-A.7DYU3E;_^' M(&X '""\ "' <R!N !@@@"!N ! @O 4 @;@ 4(+P #((&X ($)02'D M &<K2'D &<H+RX )"U __Q.N0 .3A/[P ,< @;@ H,( @;@ L,(!P 2U M__@@+O_XL*X "&P >CE@"!N S1P")0$!$, M9@ !U" N__CE@"!N S1 MP")04HD0$4B 2, B/ ( $@0 AK &@L+L8"&;P3OL8!@ $E@ &$ M :6 7P !88 !4@ 'A@ %* 66 2 !Y8 !& $1@ M #@ 9& -@ !&8 I@ &9@ "> 56 '( !U8 :@ M $Y@ ^ ;F #8 !38 "@ '-@ "("[_^.6 (&X #-' (E!4 MB2\)3KD $JT6(\@;@ <((!@ #X("[_^.6 (&X #-' (E!4B2\)3KD $JT M6(\@;@ 8((!@ #4("[_^.6 (&X #-' (E!4B2\)3KD $J(6(\@;@ @,(!@ M "P("[_^.6 (&X #-' (E!4B2\)2'D &<T+RX )$ZY Y.$_O Q@ "& M("[_^.6 (&X #-' (E!4B2\)2'D &<W+RX )$ZY Y.$_O P@;@ H,+P M 6!4("[_^.6 (&X #-' (E!4B2\)3KD $J(6(\@;@ 4((!@,B N__CE@"!N M S1P")05(DO"4ZY !*B%B/(&X $"" 8! @;@ L,+P 6 &< $M0/_\4J[_ M^& _A @+@ ((B[_^+* 9@13@&8&< $M0/_\2J[__&< @I(>0 9SU(>0 M9SI(>0 <N).N0 &MQ/[P ,2'D &=72'D &=42'D '+B3KD !K<3^\ M#$AY !G<4AY !G;DAY !RXDZY :W$_O Q(>0 9YA(>0 9Y5(>0 M<N).N0 &MQ/[P ,2'D &>_2'D &>\2'D '+B3KD !K<3^\ #$AY !G MYDAY !GXTAY !RXDZY :W$_O Q(>0 :!%(>0 : Y(>0 <N).N0 M&MQ/[P ,2'D &@Z2'D &@W2'D '+B3KD !K<3^\ #$AY !H94AY !H M8DAY !RXDZY :W$_O Q(>0 :)!(>0 :(U(>0 <N).N0 &MQ/[P , M2'D &B[2'D &BX2'D '+B3KD !K<3^\ #$AY !HYTAY !HY$AY !R MXDZY :W$_O Q(>0 :1-(>0 :1!(>0 <N).N0 &MQ/[P ,2'D &DA M2'D &D>2'D '+B3KD !K<3^\ #$AY !I,TAY !I,$AY !RXDZY : MW$_O Q(>0 :5E(>0 :59(>0 <N).N0 &MQ/[P ,2'D &EM2'D &EJ M2'D '+B3KD !K<3^\ #$AY !IEDAY !RXDZY :W%"/< $O $ZY !, ML%B/< $O $ZY =M%B/3EY.=4Y6 P+@ *2, O $ZY !:DEB/0J=P 2\ M<!4O $ZY !-3$_O Q(>0 <@YP!B\ 3KD $U,4(\P+@ *2, O $ZY !/ MA%B/3KD %U(3EY.=4Y6_VQ.N0 7 !"KO]P#*X *_W!L$B N_W#C@%*N M_W ]O !".9@Y#U\ +_^DAN_W1(;O_^2&[_YDZY !/&$_O PP+O_^2, O M $ZY !:OEB/< O "\ <!4O $ZY !-3$_O PP+O_^2, O $ZY !/J%B/ M,"[__DC <@$O 2\ 3KD %;44(\P+O_^3EY.=4Y6__Q(YP$$*FX #"XN ! ] M1__\+BX %#U'__X@!R('4T$N 3U'__Y*0&<\,"X "DC (@=(P>.!($W1P3(0 M2,$O 2\ 3KD %<T4(\P+@ *2,!(;O_\<@$O 2\ 3KD %"F3^\ #&"T3-\@ M@$Y>3G5.5O_R< (O $ZY !-3%B/0F[_\B\\ "! 2\N @M0/_\3KD "F> M4(\M0/_X2H!J("\N A(>0 :;!(>0 <N).N0 &MQ/[P ,</].7DYU< (O M $AN__(O+O_X3KD "U<3^\ #'(@+P$O+@ ,+R[_^"U __1.N0 +5Q/[P , MT:[_]"\\ !] "\N__PO+O_X3KD "U<3^\ #"(N__30@2U __0,@ ?2)G M*B\ 2'D &G%2'D '+B3KD !K<3^\ #"\N__A.N0 +_18CW#_3EY.=2\N M__A.N0 +_18CW 3EY.=4Y6__(O/ @ O+@ (3KD "F>4(\M0/_\2H!J M("\N A(>0 :>Y(>0 <N).N0 &MQ/[P ,</].7DYU< (O $ZY !-3%B/ M<@(O 4AN__8O+O_\+4#_\DZY L+D_O QR("\!+RX #"\N__PM0/_X3KD M "PN3^\ #-&N__@O/ ?0 O+O_R+R[__$ZY L+D_O PB+O_XT($M0/_X M#( 'TB9RHO $AY !J TAY !RXDZY :W$_O PO+O_\3KD "_T6(]P M_TY>3G4O+O_\3KD "_T6(]P $Y>3G5.5O_N0KD '(R< $CP <BX,N0 M " '(N; B"!N @0$$B 2,!2@") T_P &SF$!$( #9P92K@ (8-X@ M;@ ($!!* &=:(#D '(NY8!2N0 <BX@0-'\ !R,B"N @@;@ ($!!(@$C M2H!G&%* (D#3_ ;.80$0@ -F!E*N A@VB!N @0$'( $(%2K@ ('4#_ M_TH 9@#_<$YQ2'D '*R2'D &HJ2'D &7P3KD !YN3^\ #!(Y !F$"U M__8, 0 ^9R)(>0 <LI(>0 :BQ(>0 9A!.N0 'FY/[P ,+4#_\F @2'D M '+*2'D &HN2'D &813KD !YN3^\ #"U __)(>0 <N)(>0 :C%(>0 M:C!.N0 'FY/[P ,+4#_[DJ 9@QP 2\ 3KD #!T6(]*KO_V9AXO+O_N2'D M &HS3KD !J"4(]P 2\ 3KD !VT6(\O.0 ;,Y.N0 )M!8CR\ +R[_]DZY M =9%"/(&[_]A H ! " #W$4 $$JN__)F'B\N_^Y(>0 :DI.N0 &H)0 MCW !+P!.N0 ';18CTAY !R,B\Y !R+DZY !S%"/0J=.N0 ';18CTY> M3G4 $Y6_\A(;O_D2&[_Z$AN__1"IV$ ]9/[P 02&[_V"\N_^1(;O_H2&[_ M]&$ !3A/[P 0< O "\ 2&[_V' "+P!A .H3^\ $" N_^!.N0 0H M0/_0 M+4'_U"0\0/ '8 3KD $;L+4#_R" N_]PM0?_,3KD $* +4#_T"U!_]0D M+O_()B[_S$ZY !(*"0\0/ '8 3KD $;L+4#_R" N_]@M0?_,3KD $* M+4#_T"U!_]0D+O_()B[_S$ZY !(*"0\0/ '8 3KD $;L3EY.=4Y6_]1( M;O_P2&[_]$*G< $O &$ OY/[P 02&[_Y"\N__!(;O_T+RX "&$ !&!/[P 0 M("[_Y"!N @@@%B(("[_Z"" 6(@@+O_L(( @+O_L3KD $* +4#_W"U!_^ D M/$#P !V $ZY !&["U _]0@+O_H+4'_V$ZY !"@"U _]PM0?_@)"[_U"8N M_]A.N0 2"@D/$#P !V $ZY !&["U _]0@+O_D+4'_V$ZY !"@"U _]PM M0?_@)"[_U"8N_]A.N0 2"@D/$#P !V $ZY !&[$Y>3G5.5O_42&[_Y$AN M_^A(;O_T0J=A (B3^\ $$AN_]@O+O_D2&[_Z$AN__1A .$3^\ $' +P O M $AN_]AP B\ 80 !]$_O ! @+O_<<A M0/_4XZ" KO_@ H!_____3EY.=4Y6 M_^!(;O_P2&[_]$*G< $O &$ <!/[P 02&[_Y"\N__!(;O_T+RX "&$ R)/ M[P 0(&X """N_^18B" N_^@@@%B(("[_["" ("[_Z'(0+4#_X..@@*[_[ * M?____TY>3G5.5O_42&[_Y$AN_^A(;O_T0J=A %<3^\ $$AN_]@O+O_D2&[_ MZ$AN__1A *^3^\ $' +P O $AN_]AP B\ 80 !+D_O ! @+O_<<A M0/_4 MXZ" KO_@3EY.=4Y6_^!(;O_P2&[_]$*G< $O &$ 0!/[P 02&[_Y"\N__!( M;O_T+RX "&$ F)/[P 0(&X """N_^18B" N_^@@@%B(("[_["" ("[_Z'(0 M+4#_X..@@*[_[$Y>3G5.5O_T<! B+@ (X*$"@0 __\M0?_T("X " * #_ M_RU __@M? ,P[__' +P O "\ < 4O &$ 'Q/[P 0< O "\ 2&[_]' " M+P!A !F3^\ $$Y>3G5.5@ < O "\ +P!P!2\ 80 2D_O !!P "\ +P O M+@ (< 0O &$ #1/[P 03EY.=4Y6 @;@ (T/P #")N C2_ 8+PDO""\N M AP R\ 80A/[P 03EY.=4Y6 !(YP @$"X "TB 2, ,@ 9D %,Y8!. M^P@"8 %F %Q@ "L8 @& ,1@ $((&X #""Y !J;EB((+D &IR M6(@@N0 :G8B;@ 0(KD &IZ6(DBN0 :GY8B2*Y !J@B1N !0DN0 :H8M M2 ,+4D $& /(@;@ 0(+D &IZ6(@@N0 :GY8B""Y !J@B)N !0BN0 M:H8M2 08 QB!N ! CT :GI8B"/0 !J?EB((] &J"(FX %"/1 !J MABU( ! @;@ ,(] &IN6(@CT :G)8B"/0 !J=BU( Q@?"/Y !J;@ M:F(C^0 :G( &IF(_D &IV !J:B!N PCT :FY8B"/0 !J<EB((] M &IV0_D &IB( E,WP0 3EY.=7 %(\ &IZ(_P -[L !J?B/\ #F;0 M:H)P"R/ !JAF .2'D &J*3KD !P46(],WP0 3EY.=4Y6__ @;@ ,("@ M"")N @B*0 (3KD $Z<T*X $'00+4#_].2@ H /__)"[_] *" #__RU M__ @* $3KD $Z<T*[_\'80+4#_^.:@ H /__)B[_^ *# #__RU __ @ M$$ZY !.G-"N__ "@ /__\M0/_\("@ ""(I 1.N0 3IS0@W80+4#_^.:@ M H /__)B[_^ *# #__RU __ @* $3KD $Z<(B[__-* TJ[_\ *! #_ M_R 1+4'__"(H A.N0 3IPB+O_\TH "@0 __\"@0 __\@;@ 4(($A0P $ M(4( "$Y>3G5.5O_\(&X "! 02(!(P%*N @M0/_\2H!G.B(Y !RTE.!(\$ M '+22H%K%"!Y !RRE*Y !RRA" 2(!(P&#$2'D '+*+R[__$ZY C*E"/ M8+ @.0 <M)3@"/ !RTDJ :Q8@>0 <LI2N0 <LIP"A" 2(!(P& 22'D M '+*< HO $ZY C*E"/3EY.=4Y6__A"KO_X(&X "! 02(!(P%*N @M0/_\ M2H!G-"!N PB* (4X$A00 (2H%K#")04I 2@$B 2,!@$"\N PO+O_\3KD M ",J4(\M0/_X8+8@+O_X3EY.=4Y6_NQ(YP @0>X $"U(_^P@;@ ,$!!* &< M 19(@$C 4H@M0/_X+4@ # R )68 ,80$ P "5F/$B 2,!2K@ ,(&X M""(H A3@2%! @M0/_X2H%K#")04I 2@$B 2,!@JB\N @O+O_X3KD ",J M4(]@F$AN__1(;O_L2&[^["\N Q.N0 .?1/[P 0+4#_\$J 9P#_=D*N__PM M0 ,("[__+"N__1L /]B(&X ""(H A3@2%! A*@6L4(E!2D$7N_NS5P! 2 M$H!(@$C 8!Q![O[LT>[__! 02(!(P"\N @O $ZY C*E"/4J[__&"L(&X M"" H A3@"% A*@&L2(E!2D" N__@2@$B 2,!@ /[V+RX ""\N__A.N0 M(RI0CV _N),WP0 3EY.=4Y6_NQ![@ ,+4C_["!N @0$$H 9P !-$B 2,!2 MB"U __@M2 (#( E9@ VA 0# )69&2(!(P%*N @B.0 <M)3@2/! M !RTBU __A*@6L4('D '+*4KD '+*$(!(@$C 8*)(>0 <LHO+O_X3KD M ",J4(]@CDAN__1(;O_L2&[^["\N A.N0 .?1/[P 0+4#_\$J 9P#_;$*N M__PM0 (("[__+"N__1L /]8(CD '+24X$CP0 <M)*@6L<('D '+*4KD M '+*0^[^[-/ $!$0@$B 2,!@'D'N_NS1[O_\$!!(@$C 2'D '+*+P!.N0 M(RI0CU*N__Q@HB Y !RTE. (\ '+22H!K&B!Y !RRE*Y !RRB N__@0 M@$B 2,!@ /[:2'D '+*+R[_^$ZY C*E"/8 #^Q$Y>3G4 $Y6 O+@ ( M3KD "#H6(]*K@ ,9@9P $Y>3G4@;@ ($"@ $ ( /L10 0 "!% ! @ M;@ ,(FX ""*((T@ #"-Y !LS@ 2< !.7DYU3E;__$*N__P@+O_\#( 4 M;"!R&$ZY !.3"! T?P '*R+PA.N0 ('I8CU*N__Q@U$*N__P@+O_\L+D M &WJ;! O $ZY O]%B/4J[__&#D+RX #"\N A.N0 ,'10CTY>3G5.5O_X M+7P '*R__P@;O_\L?P '229!(0* 02@!G"@:N &/_\8.(@;O_\L?P M '229@9P $Y>3G4O+O_\+RX #"\N AA"$_O Q.7DYU3E;_ZB!N !!** 0 M9P@O"&$ ?I8CRUY !M[O_T+6X #/_P(&[_\! H %(@$C #( !B9PX, M@ &%F$D*N__1@""U\ " /_T4J[_\"!N__ 0* !# *U?!1 %(@4C! M(&X #! 02(!(P!U!_^\,@ '=G #0#( !R9P @@R 868 10@ M+O_T ( (+T $HN_^]G!'("8 )R 2 O " @0" ! "\\ !I"\ M+RX "$ZY IGD_O PM0/_X4H!F!G 3EY.=7 "+P!"IR\N__A.N0 +R!/ M[P ,2B[_[V<((#P " 8 )P BU __Q@ "D2B[_[V<$< )@ G (B[_](* M+P$O+@ (3KD "F>4(\M0/_X4H!F!G 3EY.=4HN_^]G"" \ @& "< $M M0/_\8%Y*+O_O9P1P F "< $B+O_T@H @0 0 @0 @ O/ :0O 2\N M A.N0 *9Y/[P ,+4#_^%* 9@9P $Y>3G5*+O_O9P@@/ (!@ G "+4#_ M_& &< !.7DYU("[_^'(&3KD $Y,($#1_ =A)** !9Q@([@ "__\@;@ 0 MT/P %B)N ! C2 ,8 @@;@ 00J@ #" N__@@;@ 0$4 $2"H QP "% @A M0 $("[__!% ! @"$Y>3G5.5@ (&X "! H ! ( !9PXO"'#_+P!.N0 M(RI0CR!N @0* 0 @ #$H 9A9*J 29Q O* 2+R@ #$ZY GV%"/D<@B M;@ ((T@ #"-( !)"*0 0$"D $4B 2, O $ZY O]%B/3EY.=4Y6 @;@ ( M$"@ $ @ )G!G 3EY.=2!N A*J 29QH0* 0" V80+R@ $B\H Q. MN0 )]A0CR!N C0_ 6(FX ""-( P0*0 0 !!- !!P "- !(C0 ( M(T !$Y>3G4 $Y6__A*K@ (9@9P $Y>3G4@+@ (6( O "U A.N0 )M!8 MCRU __Q*@&8&< !.7DYU(&[__""N @M2/_X6(@@"$Y>3G5.5O_T("X ""(N M Q.N0 3IPO "U __QAH%B/+4#_]$J 9@9P $Y>3G5"IR\N__PO+O_T3KD M $V@3^\ #" N__1.7DYU3E;__"!N A9B" ((D O$2\ +4#__"U A.N0 M)]A0CTY>3G4 $Y6__@@;@ ($"@ $ ( #!* &<&</].7DYU(&X "$JH !)F M'! H ! ( "9A(O"&$ TY8CTJ 9P9P_TY>3G4@;@ ($"@ $ @ )G"' ! M+4#_^& J(&X "! H ! ( !9P9P_TY>3G4@;@ ($"@ $ $10 0+6@ M$O_X(&X "! H !%(@$C +R[_^"\H PO $ZY L+D_O PM0/_\2H!J$"!N M @0* 0 (!% !!*KO_\9A @;@ ($"@ $ ! 10 02J[__&\.(&X M""%N__P !""H P@;@ ($"@ $ ( #!* &<&</].7DYU(&X "" H 13@"% M 1*@&L*(E!2D' $!%@"B\N AA /[F6(].7DYU3E;_\BUN C_]B!N P0 M* 0 @ ,$H 9P9P_TY>3G4@;@ ,2J@ $F9R$"@ $ @ )F: RN_____P ( M9@9P $Y>3G4O+@ ,80 "%%B/2H!G!G#_3EY.=2!N P0* 0 A% ! @ M* 2(4 "%. (4 "$J :Q B4%*0("X "!* 2(!(P& .+RX #"\N AA /]L M4(].7DYU(&X #! H ! ( "9TH,KO____\ "&8&< !.7DYU("X "!U __\@ M;@ ,$"@ $4B 2,!R 2\!2&[__R\ +4'_\DZY M7$_O QR_RU! @M0/_Z M8 PB!N P0* 0" &<&</].7DYU(&X #! H ! "$4 $ RN____ M_P (9SA*J (;S(@* (4X A0 (2H!K$")04I @+@ ($H!(@$C 8 XO+@ , M+RX "&$ _K!0CW#_+4 "")N P@4;'I QG1$JI AJ""UI !+_\F 0(&X M#" H !*0J (+4#_\B!N P0* 12(!(P"\N__(O* ,+P!.N0 +5Q/[P , M+4#_^F *< M0/_Z+4#_\@RN_______Z9A(@;@ ,$"@ $ " 10 08!H@ M+O_ZL*[_\F<0(&X #! H ! 0$4 $"!N P@* 2(4 "")H P@B2 N M @,@/____]G*"(H A3@2%! A*@6L,(E!2D!* 2(!(P& .+RX #"\N AA M /W44(\@;@ ,$"@ $ ( #!* &<&</].7DYU#*[_______9F!G 3EY.=2 N M__9.7DYU3E8 "!N A*J 29Q 0* 0" V8&< !.7DYU+SD &S.3KD M ";06(\@;@ ((( A0 ,2H!F#G ,(\ &S*</].7DYU(&X ""%Y !LS@ 2 M$"@ $ ( /,10 0< A0 ((4 !$Y>3G4 "/Y !LT@ ;-H@.0 ;-8C MP ;-Y*N0 ;-9F!'#_3G61R")Y !LVB*((WD &S> 0@"$YU0J=A!%B/ M3G5.5O_X2JX "&H&</].7DYUD<@CR ;-(CR ;-8M? (#_^"\\ $ M $ZY PC%B/+4#__$J 9@9P_TY>3G4C[O_\ !LTB/N__@ &S6("X "%. M+4 "$J 9QXO/ ! !.N0 ,(Q8CTJ 9PP@+O_XT;D &S68-1A /] < !. M7DYU3E;__" Y !LWN> 3EY.=4Y6__P@+@ (+P M0/_\8098CTY>3G5.5O_P M2JX "&X&< !.7DYU("X "%Z <@A.N0 3<0M? ;-K_^"!N__@M4/_\+4#_ M\$JN__QG5B N__ @;O_\(B@ !+* ;3:R@&8((F[_^"*08!8@;O_\("@ !)"N M__ A0 $YX#1KO_\("[_\)&Y !LWB!N__P@"$Y>3G4M;O_\__@@;O_\+5#_ M_&"D("[_\.> +P!.N0 ,(Q8CRU __1*@&=&2KD &S69A CP ;-(C[O_P M !LUF F(#D &S6YX @>0 ;-+1P")N__0M2/_\L\AF"B N__#1N0 ;-8@ M+O_T3EY.=7 3EY.=4Y6__P@+@ ,+P O+@ (+4#__&$&4(].7DYU3E;_Y$JN M QN!G#_3EY.=2!N @@+@ ,7H!R"$ZY !-Q"U _^3G@"U(_^S1P" N_^31 MN0 ;-XM? ;-K_]")N__0M4?_\+4C_Z$JN__QG #H(&[__" H 3G@-' M+4C_^"!N__RQ[O_H8Q@B;O_L(H@C;O_D 0@;O_T((EP $Y>3G4@;O_\L>[_ MZ&8>(F[_["*0("[_Y-"H 0C0 $(&[_]"")< !.7DYU(&[_[+'N__AD$" N M_^21N0 ;-YP_TY>3G4@;O_LL>[_^&90(&[__$J09QP@;O_H(F[__+'18Q @ M+O_DD;D &S></].7DYU("[_Y"!N__S1J $2I!G%B!N_^@B;O_\L=%F"B H M 31J0 $(I!P $Y>3G4M;O_\__0M;O_X__ @;O_\+5#__& _Q0@;O_T(*[_ M[)'((F[_["*((V[_Y $( A.7DYU3E8 $JN AK)" N BPN0 ;>IL&'(& M3KD $Y,($#1_ =A(0$ @ =F#G )(\ &S*< !.7DYU("X "'(&3KD M $Y,($#1_ =A(@"$Y>3G5.5O_P0J[__" N__RPN0 ;>IL''(&3KD $Y, M($#1_ =A(0$$H 9P92KO_\8-@@+O_\L+D &WJ9@YP&"/ !LRG#_3EY. M=2 N__QR!DZY !.3"! T?P '82(#D &SB H ( (BX #+. +4 #"U( M__ ( /9P1P$& "< @ ( @;O_P$( @+@ , H ##( "9SX, M@ %G$DJ 9E8@;O_P$! ! $(!@7 @N , #V<$< A@ G ( @ M(&[_\!(02(%(P8* $(%@. @N , #V<$< A@ G ( !@(&[_\!(02(%( MP8* $(%@%"!N__!"$' 6(\ &S*</].7DYU< @;O_P$4 2!N @0$$H M9A8@;O_P$7P 0 !0J@ B N__Q.7DYU0J[_^" N__@,@ !AL1G()3KD M $Y,($#1_ :J)2B"\(+RX "$ZY !.U%"/2H!F'" N__AR"4ZY !.3"! MT?P &JB(F[_\!-0 %2KO_X8*X(+@ ! YG#"\N A.N0 ,_98CP@N , M#V<$< )@"B N P"@ ,O "\N A.N0 ,210CR!N__ A0 "2KD &9 M9T @+@ , H , 2H!G%D*G+RX "$ZY R\%"/(&[_\"% )*N0 9D!G M2G "(\ &S*(&[_\$(0</].7DYU("X # * % R % &8D(&[_\"\H M ).N0 ,V!8CW 1(\ &S*(&[_\$(0</].7DYU("[__$Y>3G5.5@ ("X M# * " " # 2(N P"@?__?_\O 2\ +RX "&$ _7I/[P ,3EY.=4Y6 M_]Y*K@ 0:@YP%B/ !LRG#_3EY.=2\N AA /S\6(\M0/_B2H!F!G#_3EY. M=2!N_^(0* !2(!(P R !60 .3E@$[[" )@ 28 #F I@ #. M8 B\N ! O+@ ,(&[_XB\H ).N0 -#1/[P ,+4#_^DJY !F0&<*2H!F M!G#_3EY.=2!N_^(0$ @ 1G"" N__I.7DYU< M0/_V+4#_\B N__:PKO_Z M;%H@;@ ,T<!2KO_V$! =0/__2(!(P R #6?:#( :9B0@+O_VD*[_ M^E. <@$O 2\ +RX "&$ @!/[P ,("[_\DY>3G4@;@ ,T>[_\E*N__(0KO__ M8)Q*KO_R9@A*KO_Z9@#_0B N__).7DYU</].7DYU3E;_XDJN !!J#G 6(\ M &S*</].7DYU+RX "&$ ^\Y8CRU _^9*@&8&</].7DYU(&[_YA H %(@$C M#( %9 !<N6 3OL( F !)@ .8 "F 9@ %0(&[_YA 0" M V<2< (O $*G+RX "&$ 4Q/[P ,(&[_YA 0" !&<P+RX $"\N PO* " M3KD #1V3^\ #"U __9*N0 9D!G!G#_3EY.=2 N__9.7DYU0B[__G +4#_ M]BU __(M0/_N("[_]K"N !!L "0(&X #-' 4J[_]A 0'4#__PP IF$@PN M W__F<*'7P #?__4Z[_]B!N__+1_ =)(@+O_R4H 2+O__$($M0/_R'4'_ M_@R @&VF+P!(>0 =)(@;O_F+R@ DZY T=D_O PM0/_JL*[_\F<& M< !.7DYU2KD &9 9P9P_TY>3G5"KO_R8 #_:$JN__)G.B\N__)(>0 =)(@ M;O_F+R@ DZY T=D_O PM0/_JL*[_\F<&< !.7DYU2KD &9 9P9P_TY> M3G4@+O_V3EY.=2 N !!.7DYU<!,CP ;,IP_TY>3G5.5O_N+RX "&$ ^AY8 MCRU __)*@&8&</].7DYU(&[_\A H %* &<&< !.7DYU+RX $"\N P@;O_R M+R@ DZY TO$_O PM0/_Z2KD &9 9PYP%B/ !LRG#_3EY.=0RN M @ 09F!*KO_Z9UH@;O_R$! ( $9DX@+O_Z4X M0/_V2J[_]FLT0J<O+O_V M+RX "&$ _V9/[P ,2H!G'G !+P!(;O__+RX "&$ _%Q/[P ,2H!F!E.N__9@ MQB N__92@$Y>3G4@+O_Z3EY.=4Y6__0O+@ (80#Y2EB/+4#_^$J 9@9P_TY> M3G5"KO_\(&[_^"\H ).N0 ,V!8CTJY !F0&<&</\M0/_\(&[_^$(0("[_ M_$Y>3G5.5O_<+RX "$ZY S]EB/2KD &9 9P9P_TY>3G5P $Y>3G5.5@ M+RX "&'26(].7DYU3E8 "\N PO+@ (3KD '$4(].7DYU3E;_]" N BP MN0 9CAO!G 3EY.=2!Y !F-" N C1N0 9C21N0 9C@@"$Y>3G5.5O_\ M+RX "&'$6(\M0/_\2H!G!$Y>3G4@?/____\@"$Y>3G5.5O_X(#D &8TD+D M &8PT;D &8X(_D &8P !F-)'((\@ &S:(\@ &S2(\@ &S>(\@ &S6 M( A.7DYU !.5O_T80 &3 *N P ,+RX ""\Y !KEBU __AA ;\4(\@ M;@ ($A M0/_\2@%F!G $+4#__" N__P,@ 5D "<XX!.^P@"8 A@'F X M8%)@8$JN QF %@0?H$!B)N__@C2 $8 !- RN 0 ,9@ !1$'Z! @B M;O_X(T@ !& 1@,K@ $ #&8 2A!^@0L(F[_^"-( 1@ #\0?H%E")N M__@C2 $8 [ RN 0 ,9A!!^@40(F[_^"-( 1@ #20?H$,B)N__@C M2 $8 P@RN 0 ,9BX@+@ (<A O0 XJ!"IR\O 0O '(#+P%R/"\! M3KD $QH3^\ %"/ !F0&!H("X "'(0+T .*@<@(O 2\O 0O '(#+P%R M/2\!3KD $QH3^\ %"/ !F0$J :C8,K@ ( #&8L("X "'(0+T .*@ M0J<O+P $+P!R R\!<CPO 4ZY !,:$_O !0CP 9D!*N0 9D!K-"!N__@A M>0 9D "$'Z F@B;O_X(T@ !"!N__@@N0 =@8CR =@9"N0 9D @"$Y> M3G4O+O_X80 $U%B/< !.7DYU3E;_^&$ !( B+@ (=! O00 Y*%"IR\O 0O M 70#+P)T/"\"+4#__$ZY !,:$_O !0CP 9D!*@&H0+R[__&$ !(A8CW M3EY.=2!N__PA>0 9D "$/Z =@A20 $(+D '8&(\@ '8&3EY.=4Y6__Q( MYP @+7D '8&__Q*K@ (9@IP $S?! !.7DYU(&[__+'N AF#"!N @CT M=@9@'B!N__P@$")N BSP&<&+4#__&#L(&X "")N__PBD$'Z 6PD;@ ((FH M!+/(9APO*@ (< $O ' ^+P!.N0 3&A/[P ,(\ &9 2KD &9 5\!$ $B M2,!,WP0 3EY.=4Y6__P@+@ (<A O0 XJ O+P +P!R B\!<D$O 4ZY !, M:$_O ! CP 9D!*@%?!1 %(@4C!( %.7DYU3E8 $JN AF&D*G+RX $"\N M PO+@ (80 !VD_O !!.7DYU(FX ""!I 1"IR\N ! O+@ ,+PE.D$_O !!. M7DYU3E8 $JN AF'' !+P O+@ 0+RX #"\N AA )D3^\ $$Y>3G4B;@ ( M(&D !' !+P O+@ 0+RX #"\)3I!/[P 03EY.=4Y6 !(YP @2JX "&8*< !, MWP0 3EY.=4'Z $PD;@ ((FH !+/(9PIP $S?! !.7DYU<! B+@ ,X*$O+@ 0 M(&X ""\H @O+@ ,+P%P!"\ <$(O $ZY !,:$_O !A,WP0 3EY.=4Y6__!* MK@ 49P1P0& "<#]R$"0N !#BHB(N QV$"]! 3FH2\O 0O 2\N ! O B!N M @O* (=@4O R\ +4#__$ZY !,:$_O !PM0/_X2H!J#"/ !F0' 3EY. M=2 N__A.7DYU3E;__D*G< ,O $ZY !,:%"/(&X #!" < %.7DYU3E;__$*N M__P@+O_\L*X $&PF(&X #-' $!!(@$C +P!R 2\!<@0O 4ZY !,:$_O Q2 MKO_\8- @+@ 03EY.=4Y6__Q"KO_\("[__+"N !!L)B!N S1P! 02(!(P"\ M<@$O 7(%+P%.N0 3&A/[P ,4J[__�("X $$Y>3G5.5O]V("X $ R M?VP$4X!@ G!]'4#_@$'N_X @"'(0XJ O""\ <@(O 7(*+P%.N0 3&A/[P 0 M< HO ' !+P!P B\ 3KD $QH3^\ #! N_X%(@$C <@(M0?]X+4#_?" N_WQ4 M@"(N_WBR@&P^$#88@!U _W<, -9@8=? *_W<,+@ :_W=F#" N_WA5@$2 M3EY.=2 N_WA5@"!N S1P!"N_W=2KO]X8+0@+O]\#( !]; H@;@ ,T< 0 MO *("[_?%* 3EY.=4Y6__I"KO_\("[__+"N !!L4"!N S1P! 0'4#_^TB M2, ,@ IF%G -+P!P 2\ < (O $ZY !,:$_O P0+O_[2(!(P"\ <@$O M 7("+P%.N0 3&A/[P ,4J[__&"F("X $$Y>3G5.5@ 2JX %&<&("X $& " M< !.7DYU3E;__$*N__P@+O_\#( 3;BIR#$ZY !.3"! T?P '462J@ M!&8.($#1_ =18@"$Y>3G52KO_\8,IP $Y>3G5.5@ (&X "$*H 1.7DYU M2KD '8&9PXO.0 =@9A /N&6(]@ZDYU3E8 ! N L, !A;1(, !Z;@P$ M !A!@ 04Y>3G40+@ +3EY.=4Y6__X0+@ +2(!(P"\ 8<A8CQ(N ](@4C! M+P$?0 $8;98CQ(O "R &8$< %@ G 3EY.=4Y6_^IP 2U __QP_RU __AP M "U __ M0/_T(&X #-'N__!*$&<&4J[_\&#N0J[_[" N_^P@;@ (T<!*$&< M )8@;@ (T< 0$!U _^M*KO_\9U(, ]9P8, L9A8@+O_P4X B+O_XLH!F M"" N__1.7DYU("[_^%* $B[_ZTB!2,$@;@ ,T< 4$$B"2,(O B\!+4#_^&$ M_S)0CTJ 9@1"KO_\$"[_ZPP "QG!@P #UF#' !+4#__'#_+4#_^ PN "S_ MZV8$4J[_]%*N_^Q@ /]>2J[__&<6("[_\%. (B[_^+* 9@@@+O_T3EY.=7#_ M3EY.=0 3E;^Z$'N ! M2/_H+6X "/_L(&X #! 02@!G ",2(!(P%*(+4#_ M^"U( P,@ "5F8A 0# )680(FX "!* 4JX #%*N A@QDAN__1(;O_H M2&[^Z"\N Q.N0 .?1/[P 0+4#_\$J 9Z1"KO_\+4 #" N__RPKO_T;))! M[O[HT< B;@ ($I!2K@ (4J[__&#@("[_^"!N @0@%*N A@ /]L(&X "$(0 M( B0KO_L+4#_]$Y>3G5.5O^T2.< (' +4#_Z'+_+4'_Y'(@+4'_X"!N @2 M$"U __ M0/_<+4#_[ P! "UF"G !4JX ""U __ @;@ ($!!(@$C +T !%* M($#1_ ;.80$ @ )G: RO , $9@9P,"U _^ @;@ ($!!(@$C 4JX M" * #RU _]P@;@ ($!!(@$C 4H B0-/\ !LYA 1" F<D("[_W'(* M3KD $Y,$A!(@4C!4JX " *! #]"!+4#_W&# (&X "! 0# +F9(4JX M"$*N_^0@;@ ($!!(@$C 4H B0-/\ !LYA 1" F<D("[_Y'(*3KD $Y, M$A!(@4C!4JX " *! #]"!+4#_Y&# (&X "! 0# ;&8*< %2K@ (+4#_ M[$*N_] @;@ ($!!(@$C <D@$@0 AK *(L+L8"&;P3OL8!@ &9@ )N M 96 F !G8 "4 &-@ (J <V =( !O8 !6 'A@ M #< =6 #@ !D8 DJN_^QG#B)N ! @45B1+5#_S& ,(FX $"!1 M6)$M4/_,2J[_S&HH< $M0/_H8"!*KO_L9PXB;@ 0(%%8D2U0_\Q@#")N ! @ M45B1+5#_S' ++4#__" N_\QR"DZY !-Q"U!__A*@6H$1*[_^%.N__P@+O_X M!H P(B[__!V &+@@+O_,<@I.N0 3<0M0/_,2J[_S&:\#*X !_^AF M#E.N__P@+O_\';P +0BX0>[_N" N__S1P'(+DH M0?_T+4C_T& 79*KO_L M9PXB;@ 0(%%8D2U0_\Q@#")N ! @45B1+5#_S' (+4#__%.N__P@+O_, H M /($#1_ :YH@+O_\'9 (N" N_\SH@ * #____RU _\Q*KO_,9LQ![O^X M("[__-' <@B2@"U!__0M2/_08 ! DJN_^QG#B)N ! @45B1+5#_S& ,(FX M$"!16)$M4/_,< LM0/_\4Z[__" N_\P"@ <&@ # B+O_\'8 8N" N M_\SF@ * '____RU _\Q*KO_,9LY![O^X("[__-' <@N2@"U!__0M2/_08 MD RN_______D9@@M? ,C_Y")N ! @45B1(E M2?_0L_P 9@@M? M:ZK_T$*N__0@+O_TL*[_Y&Q0(&[_T-' $!!* &=$4J[_]&#D0>[_N' !+4#_ M]"1N ! B4EB2(!$=0/^X+4C_T& @< (M0/_48!A"KO_48!)P 2U _]1@"G M3-\$ $Y>3G5*KO_09P TDJN_]QG"B N_]RPKO_T; 8M;O_T_]P@+O_TD:[_ MW$*N__Q*KO_P9T@@+O_T4X M0/_T2H!K&"!N S1[O_\4J[__")N_] 0D5*N M_]!@VB N_]Q3@"U _]Q*@&M<(&X #-'N__Q2KO_\("[_X!" 8-X@+O_<4X M M0/_<2H!K%"!N S1[O_\4J[__" N_^ 0@&#>("[_]%. +4#_]$J :Q@@;@ , MT>[__%*N__PB;O_0$)%2KO_08-H@;@ 4(*[__"!N A2B" (3-\$ $Y>3G4, MKO______Y&8&< 8M0/_D#*X 4_^1M!' 38 0@+O_D+4#_]%* #*X ! M_]17P40!2(%(P4AN_[A(;O_H2&[_V"\!+P @;@ 0+Q!.N0 0U!/[P 8(&X M$%"00>[_N"(N_]@M0/_T+4'__"U(_]!*@6H$1*[__ RN O_49AI*KO_T M9PX,K@ ;__&T$< !@ G !+4#_U$JN__1G!%.N_]AP "U __Q*KO_H9P12 MKO_\2J[_U&<J("[_Y%* (B[__-"!+4#__$JN_]AK"" N_]C1KO_\2J[_Y&= M4J[__& Z("[_Y%R T:[__$JN_]AJ"" N_]A$@& $("[_V"U __@,@ &-O M!%*N__P,K@ ^?_^&\$4J[__$JN__!F-" N_]RPKO_\;RH@+O_\D:[_W" N M_]Q3@"U _]Q*@&L4("[_X"!N P0@%*N Q2KO_\8-Y*KO_H9PP@;@ ,$+P M+5*N Q*KO_49P !!DJN_]AJ<"!N P0O P4H@0O N4H@M2 ,("[_Y%. M+4#_Y$J :P !Y" N_]A2@"U _]A*@&H.(&X #!"\ #!2K@ ,8-0@+O_T4X M M0/_T2H!K%"!N_] B;@ ,$I!2KO_04JX #&"R(&X #!"\ #!2K@ ,8*0@+O_8 M4Z[_V$J :S @+O_T4X M0/_T2H!K%"!N_] B;@ ,$I!2KO_04JX #(&X M#!"\ #!2K@ ,8,1*KO_D9PP@;@ ,$+P +E*N P@+O_D4X M0/_D2H!K $Z M("[_]%. +4#_]$J :Q0@;O_0(FX #!*04J[_T%*N Q@SB!N P0O P4JX M#&# ("[_]%. +4#_]$J :Q0@;O_0(FX #!*04J[_T%*N Q@#"!N P0O P M4JX #"!N P0O N4JX #" N_^13@"U _^1*@&LP("[_]%. +4#_]$J :Q0@ M;O_0(FX #!*04J[_T%*N Q@T"!N P0O P4JX #&#"(&X #!"\ $52B"U( M Q*KO_8:@X0O M4JX #$2N_]A@#"!N P0O K4JX #' ++4#_]%.N__0@ M+O_8<@I.N0 3<0&@0 # @+O_T'8$(N" N_]AR"DZY !-Q"U _]@,K@ M G_]&[(2J[_V&;"("[_] R "VP24J[_]"!N P0M@BX4JX #&#B#*X M !__!F-" N_]RPKO_\;RH@+O_\D:[_W" N_]Q3@"U _]Q*@&L4("[_X"!N M P0@%*N Q2KO_\8-X@;@ 4(*[__"!N A2B" (3-\$ $Y>3G4 '+P)" M@70?3KD $G>)!].=0 "B\"0H%T'TJ :@9$@ C" !].N0 M2=XD'TYU DO DZY !(]"0!<@!.N0 2=XD'TYU M !$O B0 "(( 'TJ"9@1P & B3KD $FH4D)O\@1" "!K"'#_ M"( 'V $1$+DJ$J":@)$@"0?3G4 ""\"3KD $FH(@). MN0 218D'TYU #H $Y0_^).40 2.=_,"1H @@&B(2 M3KD $FH0FD "$)I 8O (.?9@XD: <)B@ #%.#8 ^%)",T( !$A",T( M"$)&-"D !&=<:A)60FL8"D( ]5I 1A $ 8$AA $R4FD !F 2= 35:0 $ M80 ZF$ /)3:0 &2H!KQ%-I 3CB>.08/)"0D)&+P"#GV<480 TDI&9@P, M0@ !9@93:0 &8.P&!@ P$X8@"E)"#$( %&O4=@$D* ,2J@ $&<.*#P ! MU&D !E-":SIX% Q" !)L,C@"&C$@"P8% 4,!0 Y;R(3O P( M2,2 *&C$@ M"E-":NA2:0 &4T-Z +JH !!G E*$)&@ '$?Q, H@!&<>4T0V! 1# !1K G@3 M%-M1S/_\2D-K"!3\ #!1R__Z)&@ &$*22FD "&<"4Y(D: 40H$R*0 &2,$D M@4S?#/Y.64Y83G7BB.*1!$( 6;V3G5\ $CG, D "8!XXGCD..6XXGCD..6 MTH/1@F0 12AN.)XY#CEDS? Q.=2\"= _/ ! XXGCD..2#$( "FT(!(( M *4H%35V;H3^\ B0?3G5.4/_T3E$ $CG?C!P '( ,T #- (S0 $ M,T !F$ 70,!@ P9@@ :2 1@[@P& "UF"@!I@ !&$ 58,!@ P;3X, M!@ Y;C@ :2 0S1@ */"D !IUI (O *?\ &<&4FD F#.80#_.CPI M H"A@ _2AD*&T89@N P& "YF#$II 9F8%)I 9@I@P& &5G!@P& &5F M3F$ / ,!@ K9PP,!@ M9@H :1 1A #:# 8 ,&TN# 8 .6XH.BD ./I M #CZ0 VVD ./I "1@ /W6D QI#_\ &W,XND #\I 0"7R 9@HD M: 40I)@ ""-"D #\I 0"7Q 9P)$0M5I (O (.?9U0S? _ !*@&L* MXXGCD%-I !@\DII )G(&L4= 35:0 80#^7&$ _F13:0 "8-9A /Z&4FD M F#,= T*0 /RD ! )?@ !G! C" !].N0 2=XD: 8), D@21H !0DO M %P # I A,WP1^3EE.6$YU+"@ "&<*(7P A.=4CG_. D: 03I(\ M $S?!S\S1@ (4Z@ #&8( &D( $3G4_*0 $ E\( &<"?/].=0 M *TCG/P O @)7?_^'GV86+SP #3KD $K@3^\ !$* 0H%@1"\ E=_ M_X.?9SHO DZY !)J"@ *@$L B ?(@-.N0 2:C-0I1&2$9(0KU"2$(L "X! M0H!"@4*#81 @ 6$,3KD $G>3-\ _$YU/SP ('( XXE*@V8*N(9E$&8$NH=E M"IJ'F89D E.#4H'CC>.4XY-35V;<3^\ DYU "1(YS\ M+P "5W__LY]G5"\" E=__[>?9@9"@$*!8$0O DZY !)J"@ *@$L B ?(@-. MN0 2:C41DA&2$*]0DA"+ N 4* 0H%"@V$<+@9A&$J#9PCBD^*0XI%20DZY M !)WDS? /Q.=3\\ "#BD^*0XI'BGV0$TH71A$##4U=F[%2/3G4 M #-(YS\ 0H=@"DCG/P N/( H @B$ !\O!(>?9P G"@ "(0 'R\$ M@Y]F"B "(@._@& (8O DZY !)J"@ *@$L B ?(@-.N0 2:@F!C8"ED9L M'D1##$, 0&T(( 0B!20&8$Y30^*(XI%1R__Z-@9@&&<4#$, 0&T$OX)@-%-# MXHSBE5'+__HV K6&OX9K#M*%T81D&N*0XI%20V 2FH&9@&0("$, 'T2%0(0@ M!"(%) -.N0 2=Y,WP#\3G4 "TB * ?____V<62$%(P0*! M@ !__^Y)!$$ ?^&(", 'TYU+P)*@&=,44$O *?_P &<<4D'BB.*2+P " MG_\ !F\$J":@A2@&#>4T'CB @ !=G]@9! ']O' Q! /]L)@B !?O23\! M2$&"7TA!0D& @20?3G4O/ %.N0 2N!"@& :+SP "3KD $K@(#Q_ M@ 2H%J! C !]/[P $8,P #DD * ?____V8(< !R '0 M8")(0DC"Z$("@H !_\$0@/_+P)T"N.)XY!1RO_Z", 'R0?3G4O R\ @Y]G M9 1" M*@&8(( %"@01" " O *?_^ &<D4D+BB.*1XI,O *?_^ &;N M2H-J#E*!9 I2@TT+CB>.0" %&?T!D(#_V\>#$('_VPH H #___Z4H_ M D)"2$*$7TA"@((F'TYU+SP !3KD $K@< !@&"\\ DZY !*X# \ M?_!(0H!"2$!"0$_O 1R &#, $Y6__PO+@ (3KD $PX6(]( M;O_\+P M0 (3KD $KP4(\@+O_\3EY.=0 3E;__"\N A.N0 3#A8CTAN M__PO "U A.N0 2Y10CR N__Q.7DYU !.5@ (^X " =@Y.7DYU3E;_ M\' (&X "!(0+4#__"U __@M0/_P# $ +68,<@$M0?_X+4'_\& 2(&X "! 0 M# *V8&< $M0/_X("[_^"!N C1P!(02(%(P5*!($'1_ ;.82$ @! )G M+" N__QR"DZY !.3"!N C1[O_X4J[_^!(02(%(P02! ,-"!+4#__&"R M2J[_\&<$1*[__"!N P@KO_\("[_^$Y>3G5.5O_P< @;@ ($A M0/_X+4#_ M\"U __P, 0 M9@QP 2U __@M0/_P8!(@;@ ($! , K9@9P 2U __@@+O_X M(&X "-' $A!(@4C!4H$@0='\ !LYA(0" $ F<L("[__'(*3KD $Y,(&X M"-'N__A2KO_X$A!(@4C!!($ PT($M0/_\8+)*KO_P9P1$KO_\(&X #""N M__P@+O_X3EY.=4Y6 @;@ ($!!(@$C 4H B0-/\ !LYA 1" V<&4JX M"&#>("X "$Y>3G4 $Y6 !(YW_\*D]"N0 9D!P!Y!N [E0$[[ (_+@ J M/RX )C\N "(_+@ >/RX &C\N !8_+@ 2/RX "DY!+DU,WS_^3EY.=4/Y !K MKB// !V"B!/,"\ !N- $C$ ! Q %G B2(!30#0 5$+E0B0P( ! 6< M @O F 0_ E- :N0_* &3D$N>0 =@I.=4/Y !L7B// !V"B!/,"\ M!N- $C$ ! Q %G B2(!30#0 5$+E0B0P( ! 6< @O F 0_ E- M:N0_* &3DTN>0 =@I.=4/Y !L=B// !V"B!/,"\ !N- $C$ ! Q %G M B2(!30#0 5$+E0B0P( ! 6< @O F 0_ E- :N0_* &3DXN>0 M=@I.=0 "2!O 0@+P (;PHB+P ,$,%3@&;Z3G4 M%$CG/ J 6<R:@)$@2@ 9RAJ D2 0H)V'^. XY*T@64$E(%2@%'+__(B KF% M:@)$@+.$:@A$@6 $0H%"@$S? #Q.=0 .2.?P "\ "( M'TJ?:@1$@4" +P((@@ ?2I]J!$2#0(*P@F8"LH-,WP /3G4 M !1(YW@ * "SA$J 9S!J D2 ) !*@68$0H!@(FH"1($F ,;!2$+$P4A"0D+6 M@DA!P,%(0$) T(-*A&H"1(!,WP >3G4 #TCG< D &<@ M2H%F!$* 8!@F ,;!2$+$P4A"0D+6@DA!P,%(0$) T(-,WP .3G4 M 3E8 "!N @0$"!N P2$+ !9A1* &8&< !.7DYU4JX "%*N Q@W"!N M @0$$B 2, @;@ ,$A!(@4C!D(%.7DYU !!^0 780A;P , PB;P (,5$ M."%O 0 !$)H "XQ? + #(Q? !D "Q.N0 77!!^0 781#Z !$(4D !$/H M!$0A20 ,(F\ "#*H #@R/ +(F\ #$/I %@O"D7H!D0RVE')__PD7TC 3G5! M^0 780Q;P & #A": N0F@ ,C%\ &4 +$ZY !=<$C 3G5!^0 780Q;P & M #A": N0F@ ,C%\ , +$ZY !=<$C 3G5!^0 780Q;P * $0Q;P & #A" M: N,7P 0 R,7P =P L3KD %UP,"@$1$C 3G5!^0 780Q;P * $0Q;P & M #A": N,7P 0 R,7P > L3KD %UP2,!.=4'Y !=A"%O P "#%O H M1#%O 8 .#%\ ( +C%\ $ ,C%\ ($ +$ZY !=<$'Y !=A$/H D0A20 ( M2,!.=0 0?D %V$(6\ # (,6\ "@ N,6\ !@ X0F@ ,C%\ 8 +$ZY != M<$'Y !=A$/H D0A20 (2,!.=4'Y !=A"%O P "#%O H +C%O 8 .$)H M #(Q? ' "Q.N0 77!!^0 781#Z )$(4D "$C 3G5!^0 780Q;P . D8Q M;P * D0Q;P & #AR_R)O !!2@4H99OHQ00 R< B;P 0+PI%Z !$$!DTP%') M__HD7S%\ $ +C%\ @ +$ZY !=<$C 3G5!^0 780A;P , @Q;P * "XQ M;P & #A": R,7P "0 L3KD %UP0?D %V$0^@"1"%) A(P$YU0?D %V$ M(6\ ' $,6\ &@! ("\ %"% #XQ;P 2 #PB+P ,(4$ .B%O @ "#%O 8 M.#%\ ( +L'!(4 ,C%\ H +$ZY !=<$'Y !=A$/H $0A20 $0^@"1"%) M A(P$YU0?D %V$,6\ #@!$,6\ "@)&,6\ !@)$,6\ @ X,7P 0 N,7P M 0 R,7P 9P L3KD %UP2,!.=4'Y !=A"%O @ "#%O 8 .#%\ ( +D)H M #(Q? !R "Q.N0 77!!^0 781#Z )$(4D "$C 3G5!^0 780A;P ( @Q M;P & #@Q? " "Y": R,7P 0 V,7P "P L3KD %UP0?D %V$0^@"1"%) M A(P$YU0?D %V$,6\ &@!&,6\ %@!$,6\ $@)0,6\ #@)&,6\ "@)$,6\ M!@ X,7P ! N,7P @ R,7P @ V0F@"2$)H DI": ),0F@"3D)H E(Q? + M "Q.N0 77!(P$YU0?D %V$,6\ &@!&,6\ %@!$,6\ $@)0,6\ #@)&,6\ M"@)$,6\ !@ X,7P ! N,7P @ R,7P P V0F@"2$)H DI": ),0F@"3D)H M E(Q? + "Q.N0 77!(P$YU0?D %V$,6\ $@),,6\ #@)&,6\ "@)$,6\ M!@ X,7P P N0F@ ,C%\ 0 -D)H DA": )*0F@"3C%\ L +$ZY !=<$C M3G5!^0 780Q;P > $8Q;P : $0Q;P 6 DHQ;P 2 D@Q;P . D8Q;P * D0Q M;P & #@Q? " "XQ? " #(Q? & #8Q? + "Q.N0 77!(P$YU0?D %V$ M,6\ '@!&,6\ &@!$,6\ %@)*,6\ $@)(,6\ #@)&,6\ "@)$,6\ !@ X,7P M @ N,7P @ R,7P !P V,7P "P L3KD %UP2,!.=4'Y !=A#%O !8"2C%O M !("2#%O X"1C%O H"1#%O 8 .#%\ ( +D)H #(Q? % #8Q? + "Q. MN0 77!(P$YU0?D %V$(6\ " (,6\ !@ X,7P @ N0F@ ,C%\ @ -C%\ M L +$ZY !=<$'Y !=A$/H D0A20 (2,!.=4'Y !=A"%O @ "#%O 8 M.#%\ ( +D)H #(Q? ) #8Q? + "Q.N0 77!!^0 781#Z )$(4D "$C M3G5!^0 780Q;P > $8Q;P : $0Q;P 6 D@Q;P . D8Q;P * D0Q;P & #@Q M? " "YR_R)O !!2@4H99OHQ00 R< B;P 0+PI%Z !($!DTP%')__HD7P9H M ( ,C%\ H -C%\ L +$ZY !=<$C 3G5!^0 780Q;P * $0Q;P & #A" M: N,7P 0 R,7P ( L3KD %UP,"@$1$C 3G5!^0 780Q;P * $0Q;P & M #@R/ "(F\ #$/I O"D7H $8TV5')__PD7T)H "XQ? $ #(Q? . "Q. MN0 77!(P$YU0?D %V$,6\ "@!$,6\ !@ X0F@ +C%\ $ ,C%\ \ +$ZY M !=<# H!$1(P$YU0?D %V$,6\ "@!$,6\ !@ X0F@ +C%\ $ ,C%\ '$ M+$ZY !=<$C 3G5!^0 780Q;P * D0Q;P & #A": )&,7P 0 N0F@ ,C%\ M ! +$ZY !=<# H!D1(P$YU0?D %V$,6\ "@!$,6\ !@ X0F@ +C%\ $ M,C%\ !$ +$ZY !=<# H!$1(P$YU0?D %V$,6\ #@!&,6\ "@!$,6\ !@ X M0F@ +C%\ ( ,C%\ &P +$ZY !=<$C 3G5!^0 780Q;P * $0Q;P & #A" M: N,7P 0 R,7P $@ L3KD %UP,"@$1$C 3G5!^0 780Q;P * D8Q;P & M #@Q? ! "Y": R,7P $P L3KD %UP,"@&1DC 3G5!^0 780Q;P * $0Q M;P & #A": N,7P 0 R,7P % L3KD %UP,"@$1$C 3G5!^0 780Q;P * M D8Q;P & #A": )$,7P 0 N0F@ ,C%\ P +$ZY !=<$'Y !=A")O PR MJ 9$(F\ $#*H!D8B;P 4,J@&2")O !@RJ 9*2,!.=4'Y !=A#%O H 1#%O M 8 .$)H "XQ? ! #(Q? !K "Q.N0 77!!^0 780B;P ,,J@&1")O ! R MJ 9&(F\ %#*H!D@B;P 8,J@&2C H!$1(P$YU0?D %V$,6\ "@!$,6\ !@ X M0F@ +C%\ $ ,C%\ T +$ZY !=<# H!$1(P$YU0?D %V$,6\ "@!$,6\ M!@ X0F@ +C%\ $ ,C%\ !4 +$ZY !=<# H!$1(P$YU0?D %V$,6\ "@!$ M,6\ !@ X0F@ +C%\ $ ,C%\ !8 +$ZY !=<# H!$1(P$YU0?D %V$,6\ M"@!$,6\ !@ X0F@ +C%\ $ ,C%\ &H +$ZY !=<# H!$1(P$YU0?D %V$ M,6\ #@!&,6\ "@!$,6\ !@ X0F@ +C%\ ( ,C%\ "< +$ZY !=<$'Y != MA")O ! RJ 1$(F\ %#*H!$9(P$YU0?D %V$,6\ "@!$,6\ !@ X0F@ +C%\ M $ ,C%\ !< +$ZY !=<# H!$1(P$YU0?D %V$,6\ "@!$,6\ !@ X0F@ M+C%\ $ ,C%\ !@ +$ZY !=<# H!$1(P$YU0?D %V$,6\ "@!$,6\ !@ X M0F@ +C%\ $ ,C%\ !D +$ZY !=<# H!$1(P$YU0?D %V$,6\ "@!$,6\ M!@ X0F@ +C%\ $ ,C%\ &@ +$ZY !=<# H!$1(P$YU0?D %V$("\ ".F M(4 ,B%O 0 !#%O ( .$)H "XQ? !P "Q.N0 77!!^0 781#Z !$(4D M!$C 3G4 $'Y !=A"%O @ !#%O 8 .$)H "XQ? E #(Q? !O "Q.N0 M77!!^0 781#Z !$(4D !$C 3G5!^0 780A;P ( #HQ;P & #A": N0F@ M,C%\ '8 +$ZY !=<$'Y !=A")O ! RJ !$(F\ #"*H #Y(P$YU0?D %V$ M,6\ "@!$,6\ !@ X0F@ +C%\ $ ,C%\ 'H +$ZY !=<$C 3G5!^0 780Q M;P & #A": N0F@ ,C%\ 'L +$ZY !=<$C 3G5!^0 780Q;P & #A": N M0F@ ,C%\ 'P +$ZY !=<$'Y !=A")O @RJ 1$(F\ ##*H!D0B;P 0,J@& M1DC 3G5!^0 780A;P ( #HQ;P & #A": N0F@ ,C%\ 'T +$ZY !=<$'Y M !=A")O PBJ ^2,!.=4'Y !=A"%O @ .C%O 8 .$)H "Y": R,7P M?@ L3KD %UP0?D %V$(F\ #"*H #Y(P$YU0?D %V$(6\ " Z,6\ !@ X M0F@ +D)H #(Q? !_ "Q.N0 77!!^0 780B;P ,(J@ /DC 3G5!^0 780Q M;P & #A": N0F@ ,C%\ ( +$ZY !=<$'Y !=A")O @RJ 1$2,!.=0 M0?D %V80F@ &C%\ $ '$)H !XQ? * !A.N0 77HP* 0P2,!.=4'Y != MF"%O P",#%O H ,C%O 8 ,#%\ ( &C%\ $ '#%\ $ 'C%\ L &$ZY M !=>C H!#!(P$YU0?D %V8(6\ # (P,6\ "@ R,6\ !@ P,7P @ :,7P M 0 <,7P 0 >,7P # 83KD %UZ,"@$,$C 3G5!^0 79@Q;P & #!": : M,7P 0 <0F@ 'C%\ T &$ZY !=>C H!#!(P$YU0?D %V8,6\ #@ R,6\ M"@ P(6\ ! (P,7P @ :,7P 0 <,7P 0 >,7P #@ 83KD %UZ,"@$,$C M3G5!^0 79@Q;P * # A;P $ C Q? ! !HQ? ! !PQ? ! !XQ? / !A. MN0 77HP* 0P2,!.=4'Y !=F$)H !HQ? ! !Q": >,7P $P 83KD %UZ M,"@$,$C 3G4B"# \ '-.0DYU(@@P/ #(3D).=0 7; %W( !?R 8<@ M &/( !=L 9<@ %W( !AR 7\@ &/( M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M , ! %!F %4 1 T 0 !0!#(% M0P93!$0%50=W3F]T(&5N;W5G:"!M96UO<GD* '=O<FMI;F<N+BX* " M , !@ $ < !0 ( D "@ + X # / T 0 ^&9F:/H #ZS,S,^ MS,S-/N9F9C\ _#,S-/R9F9C\S,S,_0 /TS,S3]9F9H_9F9F/W,S,S^ M /IF9FC\,S,T_)F9F/RX4>S\UPH\_/7"D/T4>N#]9F9H_84>N/VCU MPS]N%'L_<S,S/WA1[#]]<*0_@ )7, ;&5V>2YP:3$ )7, )7, )7, 5%10 M('!A<F%M971E<B!U<V%G93H*"@ E<P!N=6UB97(@;V8@:71E<F%T:6]N<SH* M "5S " @("UN/$X^(&UU<W0@86QW87ES(&)E('-P96-I9FEE9 H* "5S &]P M=&EO;F%L;'D@6V1E9F%U;'0@=F%L=65S(&EN("@I73H* "5S "US/&EN=#X@ M<V5T<R!R86YD;VT@<V5E9" H,C(Q,3DU-2D* "5S "UX/#$M,S(P/B C(&]F M(&AO<FEZ;VYT86P@<&EX96QS("@S,C I"@ E<P M>3PQ+3(P,#X@(R!O9B!V M97)T:6-A;"!P:7AE;',@*#(P,"D* "5S "UU/$X^('5P9&%T92!S8W)E96X@ M979E<GD@3B!I=&5R871I;VYS"@ E<P @(" @(" H9&5F875L=#H@;VYL>2!U M<&1A=&4@=VAE;B!D;VYE*0H )7, +68\9FEL96YA;64^('-A=F4M9FEL92!N M86UE("AL979Y+G!I,2D* "5S "UD/&9I;&4^(&1I<W!L87D@<')E=FEO=7-L M>2US=&]R960@9FEL90H )7, +6D@=&\@9V5N97)A=&4@:7-L86YD+61O;6EN M871E9"!R96QI968*"@ E<P!E>&%M<&QE<SH* "5S " @("UN,3 P,# @+6D* M "5S " @("UN,3 P("US.3,T.30Y,#,Y," M9F-O87-T+G!I,0H )7, (" @ M+61C;V%S="YP:3$*"@ E<P!P<F5S<R!A;GD@:V5Y('1O(&%B;W)T(')U;B!I M;B!P<F]G<F5S<PH* '!R97-S(&%N>2!K97D@=&\@8V]N=&EN=64 ;W!E;B!O M9B G)7,G(&9A:6QE9 H 9FEL92!W<FET92!E<G)O<CH@;VYL>2 E9"!B>71E M<R!W<FET=&5N"@!O<&5N(&]F("<E<R<@9F%I;&5D"@!F:6QE('=R:71E(&5R M<F]R.B!O;FQY("5D(&)Y=&5S(')E860* !R '< 80 80!#86XG="!O<&5N M('-T9&EN(&9I;&4* $-A;B=T(&]P96X@<W1D;W5T(&9I;&4* M 4 -[L #F;0 L*7W9A;&)A;FLZ($EM M<"X@17)R;W( !8V]N.@ !0T]..@ "<')N.@ "4%)..@ M ";'-T.@ "3%-4.@ ";'!T.@ "3%!4.@ ";'!T,3H M "3%!4,3H #875X.@ #0558.@ #8V]M.@ #0T]-.@ M #8V]M,3H #0T]-,3H #<F1R.@ #4D12.@ #<'5N.@ M #4%5..@ $;G5L.@ $3E5,.@ $;G5L;#H $3E5,3#H M !!6$DZ+$%83SHL3%-4.BQ.24PZ+$-/3CH]*@ !K>C Q,C,T-38W.#E! M0D-$148 ! 0 ! $ 0$! 0 ! M $! $! M 0 $ ! @ 0( 0$! 0$! 0(! @ ! M!@,& P$! 0,! P $ @$" 0$! 08##@0! 0 0( M 8# @,! 0 ! $ @(% @( ! $ 0 $& P ! P,! 0 " M P<#!P " @(" $ !@<# #! ,' @$! (" $ 0 " $ M 0@$ 0$ 0 ( 0$ " M " @(" @(" @("@H*"@H(" @(" @(" @(" @(" @(" @2! 0$! 0 M$! 0$! 0$! 0$(2$A(2$A(2$A(00$! 0$! 0@8&!@8&! 0$! 0$! 0$! 0$! M 0$! 0$! 0$0$! 0$!""@H*"@H(" @(" @(" @(" @(" @(" @(" A 0$! @ M(" @(" @(" @*"@H*"@@(" @(" @(" @(" @(" @("!($! 0$! 0$! 0$! 0 M$! 0A(2$A(2$A(2$A! 0$! 0$!"!@8&!@8$! 0$! 0$! 0$! 0$! 0$! 0$! M 1 0$! 0$(*"@H*"@@(" @(" @(" @(" @(" @(" @("$! 0$" 4 M " M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M &DD(*"D@()B(&!@8&" @(7 P<&@@*#!@,$@@0!@8,#"!H'AH8$ 88#E V M4C".,'0N#@X&"@H&"A(.!@H2#@8.#A(>!A(,.A8P(AX*7!(F$@X&N$820@8. M 0(D)"0*( HF(D8&!@8*!@8&"@8&!@H&!@8*!@8&"@8&!@H&!@8*!@8&"@8& M!@H&!@8*!@8&"@8&!@H&!@8*!@8&"@8&!@H&!@8*!@8&"@8&# P8$@H*$ @. M.!(2$A14&!P:% 8&'!H<'@8&#A(<% 8&%!@:'!X&!@X2$@@*&!X("!PN!@8& M"A &!@80!@8&#@8&!A82!@P(!@XB!@P(!@8*6A82%@X2%@Y:%A(6#A(6#@$! M@ @("@@("A8(" H2" @*#@@(# 0&! 8$"@@(!A(*"@@(!B0J*!PH($0("@8. M"@H("@80"E"$&F(Z5 @.!@X*&B@("@8D" X("@84"AHZ) @(%@H6$ P>.JXB M.E8Z"&PF)$!4-B@LI %JON(&&! D! 8&!@X()@84& @:$!8Z!E H$ @(" @8 M2A8&A"YZ"@@0$@@8"@@6"A((!JY(" X2"" D$!P0"BP*6&0.O(H.8"0.&B . M&B!*#@JF""0(,!0."@8T!@8&! @&!@8B\@HF"C *!@P8!@9$"AX0!A(F0@H& M- KR5!(>/$!(%KX<1 @.* @!Q*Y$%$ 4^BYXV &. 0'F&I@F&@HH-@@N 0$! M&H@<$")J$"QL$&R6$-(0+!(:$AA:%) 44B@^!D (!D (!D !B"H&/!H*&@HB M#B(**@84(@82(@822@HB!A)&!AHP"B(&$B@&$E8*5@I "D@*2 HZ"B@&$B@& M$F@*(@X\"B(.(@HF#B(.* HB#B(.(@XF!BHB!BXB#B(.(@XB#B@&&B(.(@XB M#B(.)@84(@82( 8:(@H:"AH&(B &$B &$B &$AH&%!H., XP#B ., XJ#AH@ :! 0$! 0$! 0$! $! 0$! 0$! 0$! 0$!!@ & end
rlp@cbosgd.UUCP (J. Knapp) (05/04/86)
Here is the source code for the uuencoded file 'levy.ttp' posted previously: ---------------------------------------------------------------------------- /* * levy.ttp: Brownian Relief Fractal Generation Program for the Atari 520ST * * This program is distributed in the public domain with no restrictions on * its use. * * The algorithm implemented herein is described in B. B. Mandelbrot "Fractals: * Form, Chance, and Dimension" (Freeman 1977) p. 207. It was first defined * by P. Levy "Processus Stochastiques et Mouvement Brownien" (Paris: * Gauthier-Villars 1948). * * program author: J. M. Knapp AT&T Bell Labs Columbus OH (cbosgd!nscs!jmk) * * Background (from Mandelbrot): * * [The Brownian model of the landscape] finally provides us with our * long-sought example of a curve that (a) is devoid of self intersections, * (b) is practically devoid of self contacts, (c) has fractal dimension * clearly greater than 1, and (d) is isotropic. * * More precisely, the dimension of these coastlines is 3/2, which is of * course much higher than most of Richardson's values [e.g. 1.26 for the * coast of Britain]. The Brownian artificial coastline is therefore * limited in its applicability. It recalls northern Canada, Indonesian * Islands, perhaps western Scotland, and the Aegean. It is applicable to * other examples as well, but certainly not to all. * * It is a pity, because a relief of dimension D=5/2 and coastlines of * dimension 3/2 would have been easy to explain. Indeed, the Brown-Levy * function is an excellent approximation of the relief that would have * been created by superimposing independent rectilinear faults. The * generative model proceeds simply as follows. Starting with a horizontal * plateau, break it along a straight line chosen at random to introduce * a kind of cliff, a random difference between the levels of the two * sides of the break. Then start all over again, ad infinitum. The * process merely generalizes the Poisson process. With no need for * mathematical or physical details, we can see that the argument seizes * at least one aspect of tectonic evolution... * * From B.B. Mandelbrot "Fractals: Form, Chance, and Dimension" * */ #include <stdio.h> #include <math.h> #include <fcntl.h> /* PUT YOUR ST HEADER FILES HERE */ /* the following are Lattice C header files */ #include <gemlib.h> #include <osbind.h> #define TRUE 1 #define FALSE 0 #define NX 320 /* max number of horizontal pixels */ #define NY 200 /* max number of vertical pixels */ #define NCOLOR 15 /* number of colors excluding background */ #define GRMODE 0 /* graphics mode 0 (320x200) */ #define SAVEFILE "levy.pi1" /* DEGAS default save-file */ #define FSIZE 32034 /* size of DEGAS save-file */ #define SEED 2211955 /* default pseudorandom seed */ /* help */ #define US0 "TTP parameter usage:\n\n" #define US1 "number of iterations:\n" #define US1a " -n<N> must always be specified\n\n" #define US2 "optionally [default values in ()]:\n" #define US3 "-s<int> sets random seed (2211955)\n" #define US4 "-x<1-320> # of horizontal pixels (320)\n" #define US5 "-y<1-200> # of vertical pixels (200)\n" #define US6 "-u<N> update screen every N iterations\n" #define US7 " (default: only update when done)\n" #define US8 "-f<filename> save-file name (levy.pi1)\n" #define US9 "-d<file> display previously-stored file\n" #define US9a "-i to generate island-dominated relief\n\n" #define US10 "examples:\n" #define US11 " -n10000 -i\n" #define US12 " -n100 -s9349490390 -fcoast.pi1\n" #define US13 " -dcoast.pi1\n\n" #define US14 "press any key to abort run in progress\n\n" /* VDI globals */ short contrl[12], intin[128], intout[128], ptsin[128], ptsout[128] ; short oldpalette[16] ; /* storage for old palette */ /*************/ main(argc,argv) int argc ; char *argv[] ; { short *relief ; /* pointer to 'relief' data structure */ long ncyc ; /* number of iterations of generation process */ long iseed ; /* pseudorandom seed */ int xl, yl ; /* extent of each axis of screen region */ short handle ; /* VDI screen handle */ short update ; /* screen update every 'update' iterations */ char fname[80] ; /* save-file */ short loadf ; /* load flag: if true then load & display pic */ short island ; /* if true --> generate island-dominated relief */ /* VDI palette (increasing altitude) */ static short palette[NCOLOR+1] = { 0x000, 0x003, 0x004, 0x005, 0x660, 0x550, 0x440, 0x340, 0x040, 0x050, 0x432, 0x543, 0x653, 0x444, 0x555, 0x777 } ; short xpalette[NCOLOR+1] ; /* palette xlated to VDI ordering */ short cginit(), cgopen() ; /* begin */ conflush() ; /* clear console input buffer */ /* process argv[] options */ options(argc,argv,&xl,&yl,&ncyc,&iseed,&update,fname,&loadf,&island) ; if (loadf) /* load and display DEGAS file */ { handle = cginit(palette,xpalette) ; /* open screen */ if (readfrac(fname,palette) < 0) /* send file data to physbase */ { gemdos(0x1) ; /* PAKTC */ cgclose(handle) ; /* file read error */ exit(1) ; } Setpallette(palette) ; /* set new palette */ gemdos(0x1) ; /* PAKTC */ cgclose(handle) ; /* done, restore screen */ exit(0) ; } /* generate new relief */ srand48(iseed) ; /* randomize */ /* allocate 'relief' data structure */ if((relief = (short *)malloc(sizeof(short)*xl*yl)) == 0) { fprintf(stderr,"Not enough memory\n") ; gemdos(0x1) ; /* PAKTC */ exit(1) ; } level(relief,xl,yl) ; /* initialize to level 'plain' */ handle = cginit(palette,xpalette) ; /* initialize graphics device */ if (cycle(handle,relief,xl,yl,ncyc,update,island)) /* generate relief */ { plotrel(handle,relief,xl,yl,island) ; /* plot relief */ gemdos(0x1) ; } if (writefrac(fname,xpalette) < 0) /* save screen to DEGAS file */ { gemdos(0x1) ; cgclose(handle) ; /* file write error, clean up & quit */ exit(1) ; } cgclose(handle) ; /* close graphics device */ exit(0) ; /* done */ } /* fractal generation routine */ int cycle(handle,relief,xl,yl,ncyc,update,island) short handle ; short *relief ; int xl, yl ; long ncyc ; short update ; short island ; { int icyc ; /* cycle counter */ printf("working...\n") ; for (icyc = 0 ; icyc < ncyc ; icyc++) { if (drand48() < .5) /* either inc or dec half-plane */ inc_hplane(relief,xl,yl) ; else dec_hplane(relief,xl,yl) ; if (update && icyc && !(icyc % update)) plotrel(handle,relief,xl,yl,island) ; /* update screen */ if (Bconstat(2)) { conflush() ; /* a key was pressed, flush and abort */ return(FALSE) ; } } return(TRUE) ; } /* increment half-plane */ inc_hplane(relief,xl,yl) short *relief ; int xl, yl ; { register short *endcolp, *ap ; /* end-of-column pointer, array pointer */ register short iy, ryl ; /* row index, reg yl holder */ int m, b ; /* slope & intercept of random line */ ryl = yl ; /* put yl in register */ rndmb(xl,yl,&m,&b) ; /* get random line parameters m & b */ ap = relief + yl * (xl - 1) ; /* point to beginning of last column */ endcolp = ap + yl ; /* point to end of last column */ /* increment all elements below random line */ while (xl--) /* for all columns */ { iy = ((m * xl) >> 8) + b ; /* starting y-value to increment */ if(iy < 0) iy = 0 ; /* can't start before 0th element! */ if (iy < yl) /* no action if past last element in col */ { ap += iy ; /* point to 1st value to inc */ while(ap < endcolp) /* increment rest of column */ (*(ap++))++ ; endcolp -= ryl ; /* point to end of previous column */ ap -= (ryl << 1) ; /* point to beginning of previous column */ } else { ap -= ryl ; /* point to end of previous column */ endcolp -= ryl ; /* point to beginning of previous column */ } } } /* decrement half-plane */ dec_hplane(relief,xl,yl) short *relief ; int xl, yl ; { register short *endcolp, *ap ; /* end-of-column pointer, array pointer */ register short iy, ryl ; /* row index, reg yl holder */ int m, b ; /* slope & intercept of random line */ ryl = yl ; /* put yl in register */ rndmb(xl,yl,&m,&b) ; /* get random line parameters m & b */ ap = relief + yl * (xl - 1) ; /* point to beginning of last column */ endcolp = ap + yl ; /* point to end of last column */ /* decrement all elements to right of random line */ while (xl--) /* for all columns */ { iy = ((m * xl) >> 8) + b ; /* starting y-value to decrement */ if(iy < 0) iy = 0 ; /* can't start before 0th element! */ if (iy < yl) /* no action if past last element in col */ { ap += iy ; /* point to 1st value to dec */ while(ap < endcolp) /* decrement rest of column */ (*(ap++))-- ; endcolp -= ryl ; /* point to end of previous column */ ap -= (ryl << 1) ; /* point to beginning of previous column */ } else { ap -= ryl ; /* point to end of previous column */ endcolp -= ryl ; /* point to beginning of previous column */ } } } /* set all elements to 0 (level plane) */ level(relief,xl,yl) short *relief ; int xl, yl ; { register short *ap, *endp ; /* array pointer, end pointer */ ap = relief ; endp = relief + xl*yl ; while (ap < endp) *(ap++) = 0 ; } /* return slope (m) and intercept (b) of random line through plane */ /* (slope is scaled by 256) */ rndmb(xl,yl,m,b) int xl, yl ; int *m, *b ; { float dx, dy ; /* delta-x, delta-y */ int x0, y0 ; /* random point on plane */ double drand48() ; dx = 0 ; dy = 0 ; while((dx = 2.0*drand48() - 1.0) == 0) ; /* prevent division by 0 */ dy = drand48() ; x0 = xl*drand48() ; y0 = yl*drand48() ; /* (x0,y0) random point */ *m = (256.0*dy)/dx ; *b = y0 - (*m*x0)/256 ; /* calculate y-intercept */ } /* initialize screen device */ short cginit(palette,xpalette) short *palette, *xpalette ; { /* translation from color index to palette index PI = ctrans[CI] */ static short ctrans[NCOLOR+1] = { 0, 2, 3, 6, 4, 7, 5, 8, 9, 10, 11, 14, 12, 15, 13, 1 } ; short colind ; /* color index */ short handle ; /* screen handle */ short cgopen() ; handle = cgopen() ; /* save old palette */ for (colind = 0 ; colind < NCOLOR+1 ; colind++) oldpalette[colind] = Setcolor(colind,-1) ; /* initialize color look-up table */ for (colind = 0 ; colind < NCOLOR+1 ; colind++) xpalette[colind] = palette[ctrans[colind]] ; Setpallette(xpalette) ; return(handle) ; } /* plot relief */ plotrel(handle,relief,xl,yl,island) short handle ; short *relief ; int xl, yl ; short island ; { int iy, ix, icol ; /* row index, column index, color index */ short minval, maxval ; /* min, max altitude */ register short *ap ; /* array pointer */ /* extents of color regions (increasing altitude): */ /* continental relief */ static float cext_con[NCOLOR+1] = { 0, .15, .25, .35, .40, .45, .50, .55, .65, .70, .75, .80, .85, .90, .95, 1.00 } ; /* island relief */ static float cext_ile[NCOLOR+1] = { 0, .30, .55, .65, .68, .71, .74, .77, .85, .88, .91, .93, .95, .97, .99, 1.00 } ; float *cext ; /* integer (absolute altitude) extents of color regions */ short icext[NCOLOR+1] ; /* set extents pointer */ if (island) cext = cext_ile ; else cext = cext_con ; minmax(relief,xl,yl,&maxval,&minval) ; /* find max and min altitude */ /* calculate integer extents */ for (icol = 0 ; icol < NCOLOR+1 ; icol++) icext[icol] = minval + cext[icol] * (maxval - minval) ; icext[NCOLOR]++ ; /* tricky: bump last value by one */ ap = relief ; /* point to beginning */ for (ix= 0 ; ix < xl ; ix++) /* for all columns */ { register short colm[NY] ; /* color indices for screen column */ for (iy = 0 ; iy < yl ; iy++) /* for all rows */ { register short *cp, colind ; /* color pointer, color index */ cp = icext ; /* point to color region 0 */ colind = 0 ; while(*ap >= *(cp++)) colind++ ; colm[iy] = colind ; ap++ ; } column(handle,colm,ix,yl) ; /* plot column */ } } /* find maximum & minimum values of altitude */ minmax(relief,xl,yl,maxval,minval) short *relief ; int xl, yl ; short *maxval, *minval ; { register short *ap, *endp ; /* array pointer, end pointer */ *maxval = *relief ; *minval = *relief ; ap = relief ; endp = ap + xl*yl ; while (ap < endp) { if (*ap > *maxval) *maxval = *ap ; if (*ap < *minval) *minval = *ap ; ap++ ; } } /* flush any characters in console input buffer */ conflush() { char ch ; while(Bconstat(2)) ch = Bconin(2) ; } /* process argv options */ options(argc,argv,xl,yl,ncyc,iseed,update,fname,loadf,island) int argc ; char *argv[] ; int *xl, *yl ; long *ncyc ; long *iseed ; short *update ; char *fname ; short *loadf ; short *island ; { int help ; int optind ; /* set defaults */ help = FALSE ; *iseed = SEED ; *ncyc = 0 ; *xl = NX ; *yl = NY ; *update = 0 ; sprintf(fname,"%s",SAVEFILE) ; *loadf = FALSE ; *island = FALSE ; optind = 1 ; while ((optind < argc) && (*argv[optind] == '-')) { switch(*(argv[optind]+1)) { case 's': case 'S': *iseed = atol(argv[optind]+2); break; case 'n': case 'N': *ncyc = atol(argv[optind]+2); break; case 'u': case 'U': *update = atoi(argv[optind]+2) ; break ; case 'f': case 'F': sprintf(fname,"%s",argv[optind]+2) ; break ; case 'd': case 'D': sprintf(fname,"%s",argv[optind]+2) ; *loadf = TRUE ; break ; case 'y': case 'Y': *yl = atoi(argv[optind]+2) ; break ; case 'x': case 'X': *xl = atoi(argv[optind]+2) ; break ; case 'i': case 'I': *island = TRUE ; break ; default: help = TRUE ; break ; } optind += 1 ; } if((optind != argc) || (argc == 1 )) help = TRUE ; if( help ) { fprintf(stderr,"%s", US0); fprintf(stderr,"%s", US1); fprintf(stderr,"%s", US1a) ; fprintf(stderr,"%s", US2); fprintf(stderr,"%s", US3); fprintf(stderr,"%s", US4); fprintf(stderr,"%s", US5); fprintf(stderr,"%s", US6); fprintf(stderr,"%s", US7); fprintf(stderr,"%s", US8); fprintf(stderr,"%s", US9); fprintf(stderr,"%s", US9a) ; fprintf(stderr,"%s", US10); fprintf(stderr,"%s", US11); fprintf(stderr,"%s", US12); fprintf(stderr,"%s", US13); fprintf(stderr,"%s", US14) ; fprintf(stderr,"press any key to continue") ; gemdos(0x1) ; exit(1); } } /* close graphics screen and enable cursors */ cgclose(handle) short handle ; { v_show_c(handle) ; Cursconf(1,0) ; Setpallette(oldpalette) ; v_clsvwk(handle) ; appl_exit() ; } /* open graphics screen and disable cursors */ short cgopen() { short handle ; short work_in[12], work_out[57] ; int iwk, set_type ; appl_init() ; for (iwk = 0 ; iwk < 10 ; work_in[iwk++] = 1) ; work_in[10] = 2 ; /* raster coordinates */ v_opnvwk(work_in,&handle,work_out) ; v_hide_c(handle) ; /* bye mouse */ Cursconf(0,0) ; /* bye cursor */ v_clrwk(handle) ; /* clear screen */ set_type = vsm_type(handle,1) ; /* marker type = point */ return(handle) ; } /* plot column on graphics screen */ column(handle,colm,ix,npoints) short handle ; register short *colm ; int ix ; int npoints ; { register short pxy[2] ; *pxy = ix ; *(pxy+1) = npoints ; while((*(pxy+1))--) { vsm_color(handle,colm[*(pxy+1)]) ; v_pmarker(handle,1,pxy) ; } } /* save screen data to disk in DEGAS format */ int writefrac(fname,palette) char *fname ; short *palette ; { char *scrnp ; int fd, n ; short gmode[1] ; scrnp = (char *)Physbase() ; /* get pointer to display frame */ *gmode = GRMODE ; if ((fd = open(fname, O_RAW | O_CREAT | O_WRONLY)) < 0) { fprintf(stderr,"open of '%s' failed\n",fname) ; return(-1) ; } n = write(fd, gmode, 2) ; /* write graphics mode */ n += write(fd, palette, 32) ; /* write palette */ if ((n += write(fd, scrnp, 32000)) != FSIZE) /* write screen */ { fprintf(stderr,"file write error: only %d bytes written\n",n) ; close(fd) ; return(-1) ; } close(fd) ; return(0) ; } /* read file (DEGAS format) */ int readfrac(fname,palette) char *fname ; short *palette ; { int fd, n ; short gmode[1] ; char *scrnp ; if ((fd = open(fname, O_RAW | O_RDONLY)) < 0) { fprintf(stderr,"open of '%s' failed\n",fname) ; return(-1) ; } scrnp = (char *)Physbase() ; n = read(fd, gmode, 2) ; /* read graphics mode */ n += read(fd, palette, 32) ; /* read palette */ if ((n += read(fd, scrnp, 32000)) != FSIZE) /* read screen */ { fprintf(stderr,"file write error: only %d bytes read\n",n) ; close(fd) ; return(-1) ; } close(fd) ; return(0) ; }
turner@imagen.UUCP (05/08/86)
> Here is a type of fractal generation program that you've probably not > seen yet. It generates something like a topographical map of a random > relief. The relief is divided into 15 altitude zones, each with a different > color. The resulting maps can be very pretty. This is a TTP application. > Run the program without parameters and you will get the usage directions. > > The algorithm is due to (who else) Benoit Mandelbrot. It is based on > the "Brownian plane-to-line" function of Paul Levy. > > note: This program is public-domain. I put no restrictions on its use. > Comments/improvements are welcome. ~~~~~~~~~~~~~~~~~~~~~~~~~\ lineater, \~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ the program looks good, how about posting the sources for us poor hackers still learning about fractals ? -- ---- "If only you could see what I've seen with your eyes" -Blade Runner Name: James M. Turner (not the James M. Turner at Lisp Machine Inc.) Mail: Imagen Corp. 2650 San Tomas Expressway, P.O. Box 58101 Santa Clara, CA 95052-8101 AT&T: (408) 986-9400 UUCP: ...{decvax,ucbvax}!decwrl!imagen!turner CompuServe: 76327,1575 GEnie : D-ARCANGEL
turner@imagen.UUCP (05/08/86)
> > Here is the source code for the uuencoded file 'levy.ttp' posted previously: > ---------------------------------------------------------------------------- *** REPLACE THIS LINE WITH YOUR MESSAGE *** foot-in-mouth alert, foot-in-mouth alert, please ignore my previous posting re: posting the sources, i should look before i leap, sorry -- ---- "If only you could see what I've seen with your eyes" -Blade Runner Name: James M. Turner (not the James M. Turner at Lisp Machine Inc.) Mail: Imagen Corp. 2650 San Tomas Expressway, P.O. Box 58101 Santa Clara, CA 95052-8101 AT&T: (408) 986-9400 UUCP: ...{decvax,ucbvax}!decwrl!imagen!turner CompuServe: 76327,1575 GEnie : D-ARCANGEL