From 431b0bed4bc2645ece19fcd9504c5056251546f6 Mon Sep 17 00:00:00 2001 From: tA Date: Sat, 7 Dec 2019 20:38:45 +1300 Subject: [PATCH] initial commit --- README.md | 35 ++++++++++++++++++++++++++++++++ lindenmayer.rkt | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ test-plant.png | Bin 0 -> 30790 bytes 3 files changed, 97 insertions(+) create mode 100644 README.md create mode 100644 lindenmayer.rkt create mode 100644 test-plant.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..83263a2 --- /dev/null +++ b/README.md @@ -0,0 +1,35 @@ +# Lindenmayer Turtle Generator + +draws a lindenmayer system using simple turtle graphics. + +currently very basic, models the following system: + +``` +# genesis +X + +# rules +F -> FF +X -> X -> F-[[X]+X]+F[+FX]-X +``` + +is also slow and badly written, ¯\_(ツ)_/¯ + +## dependencies + +``` +raco pkg install htdp-lib +raco pkg install pict-lib +``` + +## running + +> WARNING: will overwrite 'test-plant.png' in working directory + +``` +racket lindenmayer.rkt +``` + +## author + +theArborist diff --git a/lindenmayer.rkt b/lindenmayer.rkt new file mode 100644 index 0000000..25e990a --- /dev/null +++ b/lindenmayer.rkt @@ -0,0 +1,62 @@ +#lang racket + +(require graphics/value-turtles) +(require file/convertible) + +(define forward 3) +(define theta 20) +(define generations 6) + +(define (tend sym) + (cond + [(eq? sym 'F) '(F F)] + [(eq? sym 'X) '(F m l l X r p X r p F l p F X r m X)] + [else `(,sym)])) + +(define (season plant) + (foldr append '() + (map tend plant))) + +(define (grow seed years) + (if (<= years 0) + seed + (grow (season seed) (- years 1)))) + +(define init-turtle + (set-pen-width (turtles 600 800 300 400 (/ pi -2)) + 1)) +(define state '()) + +(define (step-turtle op turtle) + (cond + [(eq? op 'F) (draw forward turtle)] + [(eq? op 'm) (turn theta turtle)] + [(eq? op 'p) (turn (* -1 theta) turtle)] + [(eq? op 'l) (begin (set! state + (cons (turtle-state turtle) + state)) + turtle)] + [(eq? op 'r) (restore-turtle-state turtle + (begin (let ([s (car state)]) + (set! state (cdr state)) + s)))] + [else turtle])) + +(define (run-turtle plant turtle) + (if (null? plant) + turtle + (run-turtle (cdr plant) + (step-turtle (car plant) turtle)))) + +(define (write-plant turtle filename) + (let ([file (open-output-file filename #:exists 'replace)] + [pict (convert (turtles-pict turtle) 'png-bytes)]) + (write-bytes pict file))) + +(define (test-plant) + (let ([plant (grow '(X) generations)]) + (begin (set! state '()) + (write-plant (run-turtle plant init-turtle) + "test-plant.png")))) + +(test-plant) diff --git a/test-plant.png b/test-plant.png new file mode 100644 index 0000000000000000000000000000000000000000..71cfb0e0ef787ed3e40b115357f8da41aba9445a GIT binary patch literal 30790 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
JBZE}zCIx*6QUyptx zz`MABfQVmpoOTat8)NbO;=_QuxP;(BTgz12`?a3z;l|YuM;AYh=k%OgG-D2pzAR zuTPk{m5rk1UT=t{E5;1`AC!tg- zA2A|3YJ-aXW@;&|?EU>vkgN6#h!7V!yZlije=Zw|% ziHil`kJYl7{aUqw_UI*|r?ss_b;P#b;+!36Ih2{4`{6X_+{P%6)ceZc&L zm>o{q3GqY#A5Fs%eiK(zb$q+3+<=Lal1lxCnY)O+9`96vm9I^Kmd=ZNaN*AFqdvvj z-Y&Uc)*D3l+|qK}r3CN9n?Zkiiz{)J2ut=%BtL~epQ_;}j!Uyg{os)t9L-%&#d>t~+ugL$*tY#G{8^Pe&m z(sC-O``4+3iVNuxbU!1TY585CT&MJuma|$aBtdm>dvAW6~ zaW9K0{p2Kq=zcJ`3U{o`b2aMt@fml`is+>x^UCj=n79`x;CMdCiqyUgZyp@@?Q8UY zTvt?7bnxJ(>ld@5S*}6C3-#er`p6Rd#8z#q2Q~8i*_!3|mxkRS(uTR?AwY&VyfsxR4-MDCdiL>?UhtW=*LssP@JK%(sOZ{|*z)$M$ z|Fj|3-+rmjkV`Sf)#Q4W4*1th&h|YM?KIt)dld%{`uI)zpt0!_DSZBA@YsG$7)^${ zJdP)$ZI)^Bp(#!EX{45LD#{%4_)Yb;70aJ_A5VQ#+T|zoWo?*s8escVPPS7W<;OFD zDCJH;*;Va<-=$npTf%z4fx5KUBQ(~LWBr}5lOC#url()$`tAugQ`!;d6rsI7h+c$` zeUe1{Zytn|Ib^)7K1>Fq&c&L4Gu}W@s78PuZ041phC@t6%i&Ji2wmqdMbTP6{sgqn zCl1B1Gp~sJJ+OHGDXx{cC6QHk{=|fi{P_-Zd#lDeQ&=Ws-QKHq?8LpX@#=!{e%#12 z&{RsOM$j-$PN%jO(W+31M?3p5E_^Gkl9q4JZ)dIUvj*EV0z$ruB++_R*phTGPii)% zd6ALA*;dbj_{<6?Tsp*f zviUqudA$b&arg^$A*dGVMM z+g$MxDUD?qqbOPF@h<(V}>w!2};AYD!&j9W==nJzW8xNLtuII^a)Faf~My4%WJt6P{y@P z^5+=|JetVJlVe$PU=xJl<=-7u_*Z(Ib#}W~etM?aI1{ zl+s1(va$NzgcyIH%;J6|3uWq)L6Zs1_fPi|Y86ZKkEV3DamyMApY4z;$)If8TAkWo zF~5}8<-tNx{JYv~r6RZ}gtDB6c%OpipWWz@WE|CBt&%y;XDZ5}i?QNCvRSQ{Ak_h52bh>&kp;tgF!{UQ1Nsg;0~bRKWeH zcF)TYX}gxKjjwl?R&rErCs5i-?pmJ?TqwLOX3&>PtizdXmlf$~vd^u&zLCt|QSSy8 z<&-uh%Wc4{gTQ>)suEOpN-QhCjR;CndY)?=q}=kZnUre8^5hpMtPl18%$f6SE8x3~ zyCuhs8ZirLLzL4e9v&8qQ0=58@NP`Q$HX5o9~G z1+HW$E@TpRu0U`ouW!aae=Rdbj=rs;b~0lmV|jRbU0%WLzOUO;&`Ctap9 zlKyCiS0Fy?nr)FPjr@m9zPXr+jx|FE9&tJ7V(e9v3eJ+&s2qm|T;E`Z9ps!QxGf@jHNxHChqAg@6ce(*Ei`hbABaggPk(?8!MZ@1_^ z(6|YuBfqa#U98KWZpH%`m#NRlKj;QNpAB>Yq`9^vQK5dUOQDYnP@qj{eN3Fst;Bo4 z)@KgY9*0-nyK@joBoJ7}v}=2ZeBWHj|2W5)w<5v=8)NDB`rh;^)Sb0^_(z5i3LIXq z8GL?F`DGv{f3`I>ORm_eZd{&@j;`uVFDb;VTjF4^mxgy^rQbpB1Kpk7=Yp!~=}LT3 zlVX%u@$$Q~=7Y;?9qzzbDyYZI79T}iI)%!Cr(fLIa{T$2rzZ>$_@TPUm$`;=GOlpk z+4_g9=xvMjn+OvZAJR}9mqW1Atgk?t!qT`K&5f3g1K}Uj-MwO$IS_hCL6PUTTiHs> z_W2PG`|udh=hn|D!r@jY8S-y;26GH=$F={`+tbr-E5M|0NAO}VudXVW*pq>#s$(n4 z(2xpeT(xL6JEtgA2DRJ@2X-p8hWK5O12Q}x!1eh)d{Jy_D~ilJ)KopoVc@jiS+sQ> zqfgIrrvR>FEy+)tIE#&pP#MGB{DAyP|Jm7%H&MZxK3N|tJGcVbZ^Ur)RirdWCw}Cy z75O&2S5#vO@w*mNi1AAbu%b%FCk<78oLKuNnmL?vX0M*OO0tr$`{1skPFHGYX{mh5 z4CsU(5*x@sh;f;j7lBL3=SH_PK8-KVz4|*8Dqfxv_4||+$R_FxZZ-kq=bMk=(A5s2 zY3&7}Ih`|B^q<3W9k#2U7=PypCAgO8Gb7ym_4hT>_jAttd6<$q0Wvepkt5I8(pE3_ zJ2eE)!mq<+YGNf~VQxv31N5@OR_R5sBH@NXGo1u0Rha?28Czg($EQD`oZ4EJn*UiB zkZQz|klCJxp+cKJASt4;bJYyy zGlg9CJ&en~rQ)u@v8LB^M&Qc+#k|fSgT*fO`3y?&4xM^~JAPBg6A4(_m9)YYZ~B&J zPtHOpz9NtAkteh4bZ>J*jl_+=fG5Z1*Qq3=%;qfxRx`f9=dVOJKab4EXSYv5@R2$k z%ri2EVzZ}DmW#3Y-i*HHZu4;5DlyFS_ z8br{*bWYyl1`AJLrA+1m<=$S{zC{<_nYCi#A~Yb00Sf+aI~WCD-uoBcCl zull3Y71aNJ(_X-qT+Su~X<-^FR)ccIbj%gp zbK9K@uulD$DonT@GFoqyJ)BX?XHBs!L5Zxl zH7eC|8+QZSa@1Zw(?^+n1$n*&X6UU|&*y&~Y!W=X$!2{N=-Fs(P>5E?xh`w^mpV4c zz{1-;qHu0Ih$GAm`>pPuaj~dnhZ|f*7C=9IWST&E&$agAcjM$4?XR=Rz@>Y=yiU`T zN6Sc%U(dg!$h{0-=5K+{4iu%oRUy@sUrFqQ8v@B$)>x0WWMW|lV^&5}>pTRG+mwtW z>0IgCqvnq%v`xnS0;YnA0xe%FF?6aDyMkAG^*kJgUN+Yp$^KnRyUebzXcBLs)5-He z-DTNSDs0^KcY7}}Ji;OrYrP6XHS?cz=y>3B_S^}cDkxkLBYkduB+Pd|)WZli z;`5x0jR$A&9-9dnyF}bzU4rwJRQ;66kcK|Tp>=UW7w(bP(SBBn1N<0a))9nEY@&rcNrP%7L9tHBEzNn zm4Hk}cC_Qtkbe5|B;-y}sho~`okIdgENXF<~*l^j)8DyJ=W8g7XI8@snh*g z5GDo7I?wN2n0F8{a}jvGa9!$yaEDvTIFOoz%AB?h7!{RNsRc4+_JK}3ngb{puCevW zwY4R`N_!Jo>Z?y|1y`OOwgk#~2(UwV5d;<>@ZW1gNvTprqSk>CEoG z`HY0C#?AkCi1b6%2WwP$Rzw{JkBChRWr7K1--0UPg!hvHJy@2JTQ4`4usNRBJ%w zU0^rgLC_~tZ$FN2$aVG74KVNSEllCc zhGoaN&wnvGr?u-766`;nV*PQayeccn*#Sx2e(JZ7m&IXU(6N z=M9B!%n>F6V|X}qAE9o49NBGp+7^OhI7yG#%^iImGa*YWDoI|dn>T*2t@m5U)z}Ya zkB=riAv*XihCd#uMav)JVN;mjXbPgH+RS(TXaXDjZGPGn+^i za}Onje{X&-GzzPnXZZ}T6SY2;zzu%>$>__rqA$7qcMxzlIekd>P3gF8kq>Ll!AjJf zR&<`l)CLc;G}=dXzWDJ@I!;s@45W#GW!$Z4Y#DqOjY5jxsI5y+()GxwQq%liR`faw z4^jg=!X)QRn%?ofjs@_)LlQq*x(&5$-gF!(JXz{fOt9B~s)7|TVoUls+DmaG(t<8%+%;+p~lRferRsT?WCk&*b~~V@bitump(6r^yLW}bKOlyPtk_8+=-#G zlDah_wiUfs?TH(t8rlXqYik@Fif0q0(LlNKpVYzJgs|y&pBJHC5Jw&oOlejBcYlmn0KT|Kw@ewEEy_ai0EPYuqYA_ zzrw1pYi>=0pEcKENn^Ls9pRAN1UL0a2LF;aTS(Ud-G zGoI&lir);L8tXic>CeS|ZRY%Bf(pi8EF*CoSxA(s1*$h+n4)Yo!9Y&;q^DaR&ojG- zkxx!T8aRtVKx%@?|JUAEcEuGe?IMFiumpDrAvh$syCqm~m*5&ScyMhrxr} z4DK+vyWYup&wJOp|KWa`wRX?0>aMQtuC98j_LuRvXpiB(w}Sxo))&q0D(UMu2E{!` zT%Uh-C`X}s&OZM-;=?O^_s{NA#M6jHJ7fbx=Qm5g9B6X19j1DV5d3nsd`UNUUjQW< zr;_vJ-PGM9I2{z8PxqFrLdOC@x`9rq)@^=ai?)+3WCd$}TI{C<-7np`;7I}2x){wlkjE^{R#NvkMNiLJn zj0?-s#Z1G>B^Xm%8)NM@JBSGs<+6haph%4FT8r)zrSy;tWcJPjUQDB3Qc<^!!@*kUH(^OJ)JE2P|<+&Oam>y z$$sv~b0RsS@2*h4!9E^9Vf~~YUi)HnRCFARy0{%thpH(wJIaQJpJMDx?z(YxMXz1J zrcG3J(CmL1XzF^o7fhy(F;S2yEvB!tz9N5jabWX=V7TPg<%reu$|~1`OMhvNqn-+{^lcuWL4IlPZm4g;=*@WW0N?ji zyzd=s0=Ygz3TX!s4D^IaL8iga?l^qtGsOBeI)>#|vp8`xgWT&g51W}ugP)au9ri|o zU&+}PE8iC@kT$q~{R=@*LPK3e@^EsAcxtUzE3R{LWM(_8Lpm8F_A=YF{e;ahEu6$P zI5<>FnS$)KZ5`5g!WdIWdcTPGKC0&Rjr`N@P@$tI;7$j=$9Z`{`=PderV_>OBQe*R z$zsnUBz72F;Nvq}Bt;$^n9BEwSBnR_KJ#5#n<6?h_4+4rO`p!EYkUnloMV?^XltcJmkrJa*v7@+Q_hnDJU=OjSV9Wa;3TnuCu3IrR?KyUr9<7G(x;h zr}TE~aQZ|V^tbV_UGG~z4{ZSStmC0Y@PV0g{O!ALC%qM>O;@bzkkr0uJhLM3BYt6< zy9lqHcvzKCJE2M;Gze`F_wkfUm(qlj>TQl@=ZNo-ck>B#mr-nF$b9f^suvXz6MoU+ zcY_#@)*yHVTtlJ3;gu4$E+*9Nz9nM12kN)q^*J0B2u-B~WxU~ma^%pg+CvoIUIh~? zG;c{2By*S6(rO})&>9+x4k;u@@S(SS73JL*wy*-EllLRR zor5d7wR6kNoiU+Ys$^V8uCM?);p6Eah3P@y4fmZN0^U=)WnQ<<7hD7PD1@EpPk)!jbZ~AeURZy>OM(dz+M8}EaNd@)4GkRoTCcvYmV-?tbP05SL`wBzjmzOx~il$EvguF z8>h8x660w$fIa5?jEu_(Gj1WkCr7i2mhrf1d9+N7NAz=V$*aH7C*6@PhEu|1Jr8i3 zhHj-derjLW)b8e|9HgL)8d|0X@MMH-)-pabt}#x`6|{eAoXlYnf;bi#t6vy09Wg;@ zhei&B;dzcs{2Gj8iiSzGPmUwQ2cs0?eG82AA%+s1K*92$!@zB=FXzD3_w5v?VuFxH z(&2TENXK|%^t-yVm_gmE<(-FTzi-QV&2TY~D%E+N`}|$(DPY_kMLzj}i^LxH)U%CT zl`86gM%R)QpHtm8cg)7W^oq!U_Y=8o=ng~kXykhH*tn4;Z7)3u9Jl?4nVY`8QI7tx zD1$faEDhLk71lR1B#*P`1A6ju)PLfay-&rRxmQ(JvP|E=*N6F5*?=bhsjyeqWhr6(^DswR64QF638; z=Yp$WVRG?X0tAxbv0K(pls%C(cC4R5;rPid_JzKtIqKDPMG8b?k!uGyS27A2I_b&S z7U70&sLPrSFk6q&ZP-$X>bD-jzj}au!`awie6b1P> zlS346r@NOp2IUQ&tZK1@hB37l53sG5;fQIgroj!*BN?x=A}mdp_>=BMEyX|wf)m3% z{h8W2%(dUYf87c9#Cm3DI=XcI`*>*N5j7$FPQ>3(#^A;fPDvt+G%S0S%O3)-G-rwp zP`hg)an6+D#9$NSe2syD)=x!GHfG{{7I1)Gm{S(~9tmWPnr~ba(C|JX!O&TfwvX`Q zmduVnS#$F;l2rh|+)AClba^_ny8(d!ct={ayGcqFsW*9so zHsI7^|C$uHXlXLSOAXuWlZM73@V?@2MqcGl(s#g0nA|OF8@X_qV$}lHQAcW2NOc|c ziAcbud?&xrfve>5QRF#~+M;G_5rh^NE+>^MniAsvVTIUmUY_&WdQ25~dpUCj$3I^A znW`)?Rh+E_+te`cToZCZW$Q;JpVj!ARccm>ZiY z6Q;Hne(Z^S@Z;OmsU^L$b@V0`(_s_>vp$A3R{+tyl?L6%8)QDnFXmxKEjI|cU!lYInntC|GJ!c$#|<3#eGp@n=Ph~*t)){={`md1=RrvaY4j%0`g3uMlV`W*sU6Je~?K&#!%T~9q*#rM5}^w{7wGd&46@v%VznB zn94&r(=U9K7v&FxIu<@?_~S@Nf;e;O6)QOtHc;!HRU${O7>N=lk}_i2BsuK55CB*Xce)*9b*Vh!2=xFb9?$SH4} z8iQ~u#iq4b4!AYeu!9-?!a~EmRn?cGh%q(tE+Cz1rgLMn)agLiIwN3QbL(FV>eQd8 z3(KB7H18U9JZ;y);#SK5`&Nrx3d1Mf_hg~-m1Sa5H3S>HnKmQmZ^P=g_pSr(Q&Ng; zk8;icY~gii(06VWmLcm6(L`bA>l}2buk!1kNC*9o`GcI{j`2 zZesjmsvo=gbLxhr1JSG>XbL@4F==M`y++d~dO_ZP`NLk`JGVA9s#{4Z+!=B`JH zJR0GRSg75K^#eDaA13RlH}`H`Ma+|mcS*>HA|@+e!OE2A+7|!IfJ5D@V7%kxn8YU> zjN9yeHRWIk*6WM=A>nvZ=r{(?;S$7Nu3(eb62!_(?#WF@|G*6MexB7oqTg5xWCfCG z1CR}F7b?iUM{=NsE2LF_bfYLvEA6-u{YC%w^rEJIu(MRlSwfuX{b|&cwx=J-RTm9i zklD3Aw}r615EsCcn_ee&bEaPak`g0tco$*B6*lgiLjA*y`W#dQ`S{kN4R?Ew!c{91 zwl5*UNNZa(f{lc2{}^iCm({b{O^(y>5A{p@ zg!>Uj_{-U~=QDXF*S6MZ=sgvKq88F6Hn^B;Y32`%?w;Q9-Lx<2r~8;;)?eN9VY02H zhSX!y5Z%nnorhO#z^0`rK!JxSeV8Ge9^V4L^qT zZ?^Ek=#8MG@)#4p0aIsEh?HZyY3E(QEKoyKjoQ;QMMa>}&WvI)h;6 zNy<>&^Kfe5-QpWYvfX9;_vMinMX~&KLfB;AE+b+fKO)2Vl0tUD)2SZPd`*gfi-Gqc zn|t^GAd@yv3MgvOLufMs{`l4mX2=P$txmO?zVYCA{zRVuJ?x}A|GWVddsVV{(^~K# zdTSJ>B{RRxCpa+(}Z{w#>Hf!;)YLLUmn zbX7?$0UA0VJcHr^--&NT@b8+?F{I=&pm^pGod8@#!q_E{drxreFLl`3uBU z^=J^$`t2#XA6B()aB>4Sdz=Vk+&EXOH-y<{xxXeg$R3>$drUc6wP$&dt561R7Zwfc zm~8nN>U=^8iWCkl)=~upIb&U7Kk&}*94b_sQw2WChOlcF!}4SEPNU7Sr&_$j%C#KM zi8C^>HxNB;lQEW;aX1_hur6f!7lA+B%VVj{gbQJiz=7H?HM|19AZ%~8`DD`^wbK09 zbuAk6FilJYy+C;HF&dEUmIg2bT+|TLBApFsezLAceb+U!q0thB|Ec&sJHFv11MQo#;Cc`A?@?4ZN zaeFZn&F#3uv_v|w&i&dx$jpv^iz#P=&@#G}<+5RzM)K~}hwI*MjdfTep@9_S3XYJP z?=TBd53`-3L@pj>JPjf9?~Si^P<# zJdV&6_|4W!>#_N>1AS$j%p9~X(2X5bf;B4f;!pZ^WQ8wo`hu#=4}Hu@b>_uT6wyWTe~+{j)7 zKta8r11zcfA3Nx}^vAXpXddxn#F*xh4^n-HnV-m_{Rx>~+s69~98Pg$0$(*Zn9_ap zMf?h~WBe&{)(ll9LurMpSkg32ImYhLZDj~YjjbHZ=icUgNpl2NzaTC6KOS=wsi&^* ze|A5>aC4oyeo+0&{>Ks^=nmbT&Q)784}49fTF%kFWN(gL>R$PHN z@5&o=ZEg&a#%DQvOPu+XVnZJqS57Exj!i8!@YhEkUhzF2^yoH0*XNH&rXew%UNX=( zQU^OHqFV3_vLAbAiSWfb|#0a<^&t0q;EyQ_iAu23};7(ig%yu3nGuJFD+jt@*oh$$vg(Gw5y?U_g&!(3} z7KuM@18_h)V(h?td6B3N z`!lSnCj~Fsos8+IJX0$RR88|8H{yh}OCTF^mPr)f2NEbppS&In`cMDMx0H|>Y8EWsSRjIB_CH2Tm{@i>}0y7+GS{aAQS-Kf!kM8B>2=)6h3$Dr-Pac!dl&b2Z7y3^Ul} zj|3;RQH$mp@HxDnxM@f-l`Kq#RVAdqdKHO`j4T_sjTSI`7Xc;P50EPBUBGD;-RSg1 zEXC8Q#R_cJlH6hI$2#ZLbYs&Xw9*))#&|JeZTFAR{;^cFXAd>Ymu>!2{bUA)R?=d5 zPma&oSTc1DALO@^aGK=GimBJ31FDL|H{s*6(O#PP?po5QsL7ToRv0X>I`nSM2=0)C zE5QkBxR|Haf>K{`{ICy)aVCun7?5q`q$7eb(A#)$M)sM{a5gK?cY)kF8@(+&KvGAc z;P1}?!X_LZLig%pKN2wjP&*~kc+tMwB`@pOcMNiT`tIjB z$!Jx~#Lh0($jACsRTFC7^w3VT;N`nw59pBMR8}|kV>;?N9={2iX`>8Ry(1D1PQs66 zgG@B-j25Vf^rrbA+_pYaoW9Q6{pt3FPQ@aDZ5 zR@v!MpNh;)Wbgi$8*=uoGENnceZzauIywSvgTkjIb|%$RD04xQSzDzcGoFshpGAl# z2LQEy&dT6OOBjmd2LzI>&}dK1A`gNOp||IrW2v-^e<*sLolxMLsEsYxAf_3(Cnv(s zt749p^Aqgv|MXaR`Qg9Uvz&hn&IB*dp@zDo;ze~qxJ9N@pPW7Q1uzx526Inh)^}WJ zv{gJb4Tmv?rdSRL7#g1n(gjeo3i&L^H5m#lvk-EY^0Z z>|F^ap{Zz$MLQ|KSppq)@n6}v=v1%$lGM>!C+hI!r}~kxvgi^;Qv(L4`=vH~=N0VF zj(x~cNOS!550~Wh6Xtx$rpZ0ImJBX`_sT~_H12+ECtK=*0sJp4DeP;d>|*b-u9=#6 zOS1u?rzMOYy$6U(}Ig@ksT7Yr-@|aChX(&fxyOQqRUL5m^^E9M&@}Erehyr z7y6&ZN&`%Hf+@oEN8Pi+c!)20EN{U zq+;Sgs9v|rPdgB^-Y#J=)^JDl_}UlRP%$V2SpGr<9sv9zi?0v8<{jK8Fo?3-U`nb` z-h_gQDsRQ<%#Os{4K9&|PXF@yVzPmCj=iwOOeT$38&96v%Et~2PAIN>Q`k3(YZk^^ z@jsoZEYc!0r7FWTU{|iX+q$b*)O`O|8*}H3+D(PJc$uAHg8KWr= zvJcL3ws8z{kG}T(ZPh>l+<0hcS|h6+(}PxG zMKLBAPYB2I#)y#zJu4N;9@CkG85El*tKA}QabO80dfL6EMim_h8&SSkhMs4v>*-<1 zm+{bF;y+voCa{7y^gzuY2zwj$N8L--%OPFzyYsLh? zB2Ix5Ze#~c7W$N}C|$FrEJ=YgZpO{JhC6r-U9iLmMa##xR^h-f8-up0&M2F!HZEac znEUx1Jcxs@W|RPz99>dXNb`3ro3$4l2|pp(AtO2hZlFZ(7_)ZGoukkT>gpa|)@d1Q z#ffp&{E=RmCtf1{dtezXppeC+qcCP7>QWf$U}b1?b@@$l-_H~&02+2GQ?IXO(V$^W z?JcxGuR_^ks=4PtdY10-A}?!!mXIk8eJoWd6Co4GGyQt&ffXP51r&5ip0N*0z-qWs zCY1=+#Vxw!qDK`$u0-YSPaRwBSF(z@jkeZHh`KAxv2;0_&A^vfa zbR^%Ns|doK5<*=(2XXtbQL;MIG-)IER*b)1ux z?Wt^XRs#3VZY(J$#QJpIUrG~RF7PmBJb-qIOnSm6WOHb%dQ%ex@o>8cxQock;-mN zkZ~w0smuWK#c&#&m*u|sG_cH19H#DuoglUYl?5IX1{_jo=I(IDyS(kl=}wjmA6Eb7 zc-wt=T<+_>r8K+K?Lw*du5PVg#sQe~DiTHLy405>YN6#sR%Y`E4~to)u?LR1CcQJ( z?*o05gu!ETM8n3zoG?J=$1&pqptC7|BVZ<1Q3D@fB0N7CSUBa#@w^soIHC{OFzX^1 zb!ACFSW|b^C9J5@Pfdwf&cd6~4e0ny@8pJtZ|=yRiOl*Aml_j`xN3MyG*0w6+Jih* zfuuFtfG50ZSx0ivJ^aN_aW-|U*uK}o%#Frs$?7-Wpc$Rn*naPFbHlO}j%hz4|4kHL z-qyMLN}~)6*0H`QpUWk@6?wQtn&;aLJJfmp0fm~W+8@Jd0~ChL@!aO73sEIC*M;Oi zWr-e0^Y#u=(4Cv_@z)|wA-0P8kw$eXR<(tb4VuZIBIX{3$+4Z#2%G`;X~TF0A}5NE znroxNzV`FCnMv&u8^O@Lm9QWJ77D~kN{A44++HTn_y2_Iy{l(Ca6LsEXG1b5d3{Y2 z#q5imWCi|}er`3(BQJ=1Y6il=5$^x{MgS$EI2oS4ZtxcRL)xrTBoPyHr+o#Jdy9Pd z#@gXMZNQ;jzY}vOU~5U{*$8%2#lX(PT#?^lF>_e^=w<%oWMp0M?jrEei?;qBypX|u zHlzI)&)H5$E`Sd z_VBASC#&#>eJt^rTle~9~!xo&fL)o*<| z?>Se5 zEfwQL2?X=%o~j^_S6()Me1?|azsvJ2hRw02ZDZXBjB1K9V0L8?j$2q<7|{coU{Mpw zR0E&QflRXHiXs)*Z7U7u@I3EMhqUr_;zsstnFRQC1{u2S`vuP_-V!U~H=s%*{BIB% zAqn?d4iSo5Tm@H~Gu&2C-}UL4G^z~ye-J)~p^(RgKe59Bo#eL-BAvB58HiDfDLN`> zeV#v56*r<8soifGpO>r9aeG4($axM>KEgtmu;u^T(86sDZa_O|4#XTlt0#ozw$<7zcgqdNPSQ>ZS=JV|@kLy5AlV6Pozg$0LbS`4o0zq@%JzDKucX zqwGX2m?8@7%02*`-KGLBY6m4gI(yr04203 zfnQ1_rrb0S)!2xy^QONtIUNB|ntaFcrRzINDj;6BF)DnF@csqFx3lGn*$`Y_5@-gyHrQOV+7FGoI0b4ffyRIdH+q99&+9(klox-#s zqR0X2K==ek#VB%RruXQhXm&&MVer!mvWJ#d;cn$_i#0~&xhkd8ld2!`-{nQ8(I5f$ zG0o+Pa*z(_YXV2>5j&_WI!3R=tt|dzjvrsgHh>onkLo6NbfMmB!XuZD^bWfM(4&qU z{^w3XpKRBksm>?$jw@aRwxmYB+M`!0&xtrf$zerzQ6BzEKq_|nN3$JBn`?#r4+nR~ z=+c_{hw)gg5Mg^mua8!TTi0%&!wz|L{9*`rG3?Y?a?ZoRd%Qc7d_#M%@BS@-gEQqs z3@bSdMelYcs_}L>cIr8#)J|umH~3qHQzUe0m04*1B@hr4Q3TKSDV_)9Vju=Ig>iIlRxj?nZ84# zbAG4lZ)9I^g77AAiEh95f_Qmkn`Pe(qTm&lb-f778PQ&WE7e*1pkB&fG6> zTGqkprzatuAL&V)SF|PCV#|2&6>f)LR6I_&E{OF<%>g5xqQr zx$o#g0Zr@^6P3-`#G2Ols}SqzvEAi9T@b0&&Xv2d=nlhDqo>9t%3ST;OS>>1wdTY~ z7TeWVTL+MOow9AqY1)-K+PJe&Ur*v(TG~I8eWNLD%a?5U{BvW~VrS&rwe7L$B~c;P zqp!+Y;w#5Il}edNELGSBM@<2i0zW@S%it*N#gKe8dVRe|kI;`cy!MnQ$yaO_4Tr1b zt1o}@Z~t0YRwYgB`pQj*mwpvqVsQB7hjY?mDe9LumYi>AzPp{;b`)<&_mn;f4NUND z-RM-Kd;aCU|8aq+u3T(HGX@UZwpADxVXLCoDb8 zX96san8ldc3ulG^q5Z`qh`JQ8ZMKh9y^#ZbgjFt-q%x9#D<$1i!#DN__g>o|@#>j+ zV!tM@bl_T;%5Zqc$m4mK`ZYS2Wwm^fsPJji*v4ZwC*-!K4p7sbW+0KCp4Hy(tudXl z-4P6)I?Tc?D~+g?)8X3AQV2LJ_+FTW{pyCiY}x>E(qm&Gq~sbZI79{?TsE$mVcCS%P%`=(OM>5$BbE z`{6@E=+5Btv^;$@XoX6;<`4Aaz4n5{g=rjinT`^K2ZQ|KrrJ6=MSX5WSKrUP`6m91 z%Pob9)8ql`W3Y65H>Rj!n5=UwqMzgVoQJeBa$mY;~1(<+Ze z(821l(NW*LC$G*BCqyB65a3CAu@&uJQd-|$a`UrQp%2s*D;bXuBVB9aM0(1yaV4rR zns8|1b`$;q&h^(!S|V|&8(%rLT?P3MyZZe7%BVas+ehXHxSm4-!Y`|j2~Qr&PI4$V z+5N)_&2!B5`b$9XtQ&?1z53PccmJV!PN~eYD#R*6F{f3>GCXcl=w9bZc;R+C8gt&x zo7Jc=tuIj-opPlq{z{SL(pH-J)*|HgHuPwWWO0v=i?-c8>*+kADQF@q+$7t~R$mMo z!J)ML`8DX3AamPOt#+{SScEL#14qg(wSm@)@*MN7bAmmp$vMk?&qMOT#FZ!Kr)WP9 zH!>wJB}>yk&uZ#KS8wmno9eSx>8TL~SodSz_h8tO5mSvbsn2bB8Tfinfj(OqPkQYT zvQnZ#2Bc<{W&vzjo{cU4!=`XaOTAQZOj=R>dh2qVkW8d>7tw3eK8#R(%uP7Cer;@Z zU{B%gL{1y&x4L|>@)Mgq-Kfq>gB`-plxkJaUzlpVMa<1N)?CW81ykJuOM3^mh%9C1 z@?`}{dlz5wsKZoEttdFPP+3ryr0=mFu4jf!yk+M2JJLE_6K-bICa1$=VoEEFqVXw6 zY~{891Be&ti-Vv;#ErVI5~M4>!CtCjOYz>>SwFPHyQLJoewTjd=0H5w(6xGu4WW{c zcB4Fz+R(YqcDsptLWV(!lZ8Y|59q40(2%hBo@C})2yU_W2XW zn?+kJ1UXS>z&c&ITK%2<#LK6}uX>9Qtnqi`O~Gy^q~IG$EU_e#3is~O{6#AZG1M*F z?JgwaFe&&=owg5eGIexI?&j<+QBVY5GZK82z1S$qhz7}D6`s?JhELz}si?ax%1OEx zJq5|==W+TZ1zJ7F@S3{B8Xn1b9kvurKPiY*zElJb3r3Q zIczG`Fo#Zt4FX|ZpF*JH+Mke2B7j&FWrh2nDhc7lg%WFM@9p;SQ4W=8c5;;?Uhu9@ zi74IitX<_Wq$AQ!m~9`p{op0;bU!i;sv2MnTww|X)La7QG!TvoV@cbc?uc{ zRga#Tn<$7*U*(XS2oh#ayh>|7<6(`aMm1@-Jnh*U+ZzavdOnyq>!jWvDVfCl367XN zxg}W)Us?c%Kr~Ar3Bozn-YhGt$q|bN_w?+yq1@bbxgPpBWh|xd^<3jK6u=T?HF)jN8nQveI_SN)_fG%T;8wt7fykwf~8xmM-Hk{3^&`dy< z9f;bQm9<5^7r`PEiEHUjf?;D)2b4v+dDdqlt6i#dtf4*^kLuWE?uD)jI6V%fI-9ku zRy;aju5GTK;~eZ;I!L?p++t@}%GFX08`c_2%=OBj)$3oQ(|CPBQzyMPgT$<7s|pf@ z?t!IFtwrkZwgt&nA1k)ABof?0vS)&OZiBhAFmGQ9KI*oKCDTWnx>|u-^nKCB+|;*1 z+CWgeT*cGN+ zVQj1!YMw6kG{~6~LU#MpSH3j(x_`=*Eg=~{e^*xz;83Yw`}MMgN$6sdZjFz<(ec3` z^Njz*F^nr;X0GeQ&&VfZ5lHE8=6lI$b8ETSVNIqOu5v3~8PFjiT}N4oUrvWpL{iqf zMa8BO?WHcRfDfN_PW`nZF@-j}{21*bUj;Eot|*e&T8aDjhb7HsTzw8Dq;I=6TK!6e z4t3;|tVF{L&-A&A`5A6CP-C<-rW}{lAi*CP=1=z753=E7>zE3H#|HF#X%@w@>OCw{~J@6c~_v(6_4HX%-pShn@3j5rXln%- zlEp(Np=|G)A`;Gh_CFmXy+WDW9nHO_b8(N;2SebS(|>y*Sb$xFq3p|p4E;)4dzWT| zL_iYRW3e^9pB^_}#ep`pjpwKKF4Lhp)5aD7)YIf)i)fpDY46m+I!;eF^-s%*8ZwQI zev|+e>-yDSS>sn4yxIjl-?OGYRD2I1x(RM3)MIO!pY5CEJCLN;C>LWBF(@ggtJ3UN z$t(5ASJz6A<`?rjVmvM4AKxHYd-w`o4KBV2;YyakM(4@T)f@+X9-eSecD<3bHax^- zN_DXg_}QFQQKC}@arbbOplpjQNVe4+xvSi#lQ*2(2{~N&r;^f#)W8X?qH*y_U(wCP@t%Mhv zGMp;^8rRO!uG1+$yfzHUe#E#B58xT0tnZMSX8XOc;rNO!=aA~s_@vWbw9}N-F*<5M zbg?{laeWC^XjPrg7&|IRU)%VS@S;8KC-0e;-eJ=1%Crr6W#QpUy=3qVF*4wtL*+xiqBT-$}4fxVqfva2`FfoPJ@w zuc@6G*c-{%W?~cI(#^V!ZoPTJl@qZx7vbLK@0~{2Rwwm#<$Jth4{QFo51}J>8Sh}SdPR`yS_dwDDy5~K@v6#C<%LS4Z^yaC zDDcZnN3a{9z^N4uVLISoCE_#JZ zF5T&gv;{Q$n=L^(i_q|-!UjlJOQuu@3mhul%lr?D*&KX5ja3pQ2$+-ImeO z%8d1Ur~BcuQCq)WC@O{M`+}Ga782t|ZdSep+OE7!fLu1E)0%#QujcgU@s=@sK@nDw z7Mdn3ILi=B2h`!Tb!oXSW<&V<1l(KOgr=UVPj!Qw*=?%Ry$Qax!Z)%ZC~?>UJnzR_ zY_{F)mMzT*W1HQwy%$QN@dc}#E)aSUhfov*-kUdSuUfyvI9GCQUQ{Hk@@>#=)sn)c z;hA}0&@DVZ*mFJp^|#R&uDZ?W0}l*GQs^rDqf5MsAlI05Oq8^b6u-n~s6}jz2MCPX_RCXN3QA#Y8U{VH8Jekugp~^o_Qmx8Fe{fda-q-fv}@ zsEQJaV1Hjg=*hs7NGUV2fj0**A19TtDP}cRBwvxG5Kv)rwlk`YTxpoX+E4%vxRzR# z0ToDT@YVH^lDtV!H#yyHn|+~=``6};40S@|1xRT)ob6IHWPhD=o~Sp9WFJEEyR!fM z--h?;ea))VYt|Q_KaWFaa2KLyDgI^?$Jq2MoW{n=1Qdv70qZQd)H9C>`GliKJNWg1 z>+ohEB3J|~rOY?|Wx}T#q z;LXHCn)<50VEz%pX?N=eBh1sib+5wo4b_Tqmf z$?~fLNy`)VP7fG?nObX+K+g6UrdqFQw?F=RypIA(aQMPegrn~Umtxcj(`F}U(!L@g4W_62xdjOrmH zD~li}I~JITDLLDT|2?{+@~A^Bj5_GS02_mU~5JH|8UuYNvRMeKoc3JDvbUG zEdH}#dCxa6B|;%KfdAJ9%S?L%YeVaqCJ;BVNj0^Czo6=63d(2y00)}~O`II|Jz-8k ze?gpfkkJN*sIZm}TpB4(`vvc!8w#8}QV&xs{?ZAYXbF`E96Jw{$Ih<;q#-~L6E;k_ z-=k8%jbfo1{QM_=v9rI3Ft%s`C~(d&o)oajgl!HN-O~s#t%2`e_Fqp%fejQNP$dWx sdHVk+_y1-0KZ=6gumbO|dM|QAS;1YcaGn7BJ}{h|)K|$$aif6$1K$ic$N&HU literal 0 HcmV?d00001