From dfe82e40e8b1fa723459e0e9e70911de879d8034 Mon Sep 17 00:00:00 2001 From: alessandro-bugatti Date: Fri, 24 Mar 2017 21:22:01 +0100 Subject: [PATCH] Add Mandelbrot with color lesson --- .../0031_mandelbrot_colors/images/screen.png | Bin 0 -> 66303 bytes lessons/0031_mandelbrot_colors/main.cpp | 85 ++++++++++++++++++ lessons/0031_mandelbrot_colors/readme.md | 14 +++ lessons/0031_mandelbrot_colors/vsgl2.cbp | 74 +++++++++++++++ 4 files changed, 173 insertions(+) create mode 100644 lessons/0031_mandelbrot_colors/images/screen.png create mode 100644 lessons/0031_mandelbrot_colors/main.cpp create mode 100644 lessons/0031_mandelbrot_colors/readme.md create mode 100644 lessons/0031_mandelbrot_colors/vsgl2.cbp diff --git a/lessons/0031_mandelbrot_colors/images/screen.png b/lessons/0031_mandelbrot_colors/images/screen.png new file mode 100644 index 0000000000000000000000000000000000000000..e61992b7aa85369e0c0308affae03693aee5ccb6 GIT binary patch literal 66303 zcmb5VdpMKv|35CKrW2MDB{TOhg`5&$4#Vy_j}9bqN=P9>4r3H^+-6SYP?=LH5u%(U z$0$Uo$T6p!&&==k`@G-R=lj?9y1svy>z;W$&&Stm6cZ!8BL@W!vazup0r5B@8yhFo+1QSL+WXnp zcrVw1jcqpz#A%xQTF>l|{sshQ^oIZ14NKfMW7j&%(Bk5IZgTKB&xwN~CQRopbB1M} zb79D-0VzA0RM9f3)Ryv1u-8G`PSEYUSYc28ceIPbt7$i!OR0jZLeHBcm1o~{`ukLR zz58%?eSUUj-Kux#L;7IvimJTRt@gIm6u+aY$tm&^jawBRTRRWc#sk|^Ha?U7WNhdQ z6EIl}V$1Y`G&ykjo1XChyj1jLqJI4MVR_+2T;$FF{AKxDW0bn&|M6Lw&0P5E|Ni4& z(a52=osH`GKYFb04E2=Vp+?px?tAy{+2m)%sc-(x{GS&!>d<&S^fO38|w?<)f+L~gDX2&R>Mb`Go1g*zZj~EB6Pq4VL+kcdH-jLQl-D6>Q z7Pza&2Dj~nS(&?kv8?$n>`J^at9p>NdI`JIH%(gMW^K)#M$`g<@ShfE{thpX4DSBf zs`)5x8B?fSdzc|jl+3iEk`vmY@!hxu=`>rus8f((2~4Bs&Lhz zDJ7*7xr$ojOZh3JFZQoi{$rv>du&frXQEcgm?)RclhOvrCxo|rc1J(LgBCyTrg85s zk;c|Y>*Bi&yCdN?3o<*a+||SHcWd}j>uKDBECcrHo!Q-vk8sw%dpncdyW`cn;zy%~ zJ~I2@LwcfN8Kms4k2Z$7XS`e1wys7T>x#E>VQrMxFN~~gGGxer{lUctv>C`}Us>thQaX)oSKSURCnkE9Z$c&$<8jsaJXxM;CS$zHbY=@ju^uGq-DSU};nR zcl*THMo}tbLp1NYMNdcKRzhv<1iSPE2@rODlL?bQO{eEnh{w`p;=g-|(RQOO@{H3D3LwMw!Oz#Tk z+^Ln7FW#gJj(KgehGUal#~Fa7)YOO4Jaw zWgWgmGT*x=LzPnQY>W}fQPlHRFCKg?+pui28 zi4FW}fchEXd(-n3|H+mMPvR6ii*Kd-t4j3pRV%nf>7A$*X3@AwESc?U>~=PGeoK9O z9J}t1-A)wV?8R>PkhazW*4;>>K7s4^N&h-X02#ZHHW#oyK$`C2#;%xQO9(J*;wzam z!fBBu-=v>bdA)0jBZ(xo+fEMGMm&vsxiOIu_qnoQ`kh}@`7PZ1&MeUa>t8Xqbam{y zisJUh5s{3JrG$a@*`U?++kwKQ&wq!m4*WOo_6Gcqk4H6%{JFH;R~{!pCN0P9HgoSz zk~WtzxPC+08^{Q1@7SKL-Vw+MT2HB7QNnKjs$P009Q1FFm9|E!sa|={>VZ3~ofuiEam1-y3{x>~tL@6`xQXs8hcm5a$O+z;LgWY%?m%W=o+7(`( z@7>+B*|n1zQ2(v>q0al!|51ig*CJ5sKCJdZKYkV6HKP#6YY(1=r@aWw$qf15PhD4k z@n6^2t5^%${}09L|61j$_-Y3?Gqw`=mj+lNbJAIir11kmwQGsQ2L@B`3)*g>lCM}3 zFa=tKi&>07`sVzrA__eFcoMPYER}A68I#2aZhkMj2J0f|W5!ZIt}Mo488e6_X$6p- zA3+cKOc;^ica)ex;%q-rTU-P^=n^|6vQ)(}`=Po`xoK&N$x=Oq0U5;f3_kAkgm~Qf z*UzAb7{*D6tX?E{$7dH_gF_HOc^X0!Ggbl?4yRm0lbvfJs1w9_nJhl>hFGVeTzK{) z0%lAAUt7gDVZ-X!&He%oVB$0*MdR8vApofSXU4M!V5s%8CzwT$D0VHP?W2MY%C08ZMS&VRia}dJEJoF~2B@9r9d(Py+ z6NzUc`P?CXV7UPXFW-9x5)TiYI$ld`(Wa8`__@*N8K0OB&-IEo6jz$?p39nf!e_1z z(#?!Szq^*7!BowLK;#^gm>QM@#1l_}y!2LYeBr;}<}iKCM-*oV5eXXf#hOoysW5-| z$n5cOgGzS9P?=d)abAa8R+$%lx%b}vNN0DzpeQY`H)gBn-)9(F4rWqg_4*R|j@>iV zdCTzRCz_no0c6Y3;8ZEn&9#GRZ&oVa&~)7tV(BM?52o)yr~Zrt?)9SFNCnIh^HOv} z>-9Z;e}?g`6H)-K^5bC7T}{bWYp^l@j$UM1Z#L>0pOX4A@u%LFDy5gCP1+`MM$e@-j47 zmkI>Ag4350%*WN}v2GBM&HFtnebIbP1Q2)*eWW54^PqaEdRY%^7gY7QI8BkcI2Yp; z-Fks}?IU_m=?%=G%Pj~HxNC@z7V*$t59%dtbOdc2u3qEcnMvxpiwScUUd5~Y9`hvr z{1v%p={v+4Nk7HK5t7j?-{hOrZPk znVg8-A3i%T*SZ=id@x>AjW?L?34Ihi@7x4+HISQmfhaBBFl)Bw@Kw48FJ|SVDK(W~ zCnK3Wj`}MX0hjAs6WwjP=bNM^j2;yLx9{)%;I58C%EdTxQ;^I>E3KE|{_*|#<|aRs?Z+<>elijvZLs_ZZU&RdP$iXzQ_de8bcxG5b>S{7!ZZ6coo?yuom zk^?80o8|m@M-p1W!kv?l_|~a>1_b3tjK6DIh!AWZp-QaVKF(Y1URDZdz+cMt!GwX44HRflK% zL+7ekUjFs?skubvg)7pc4ZAofdiX^+BZ)?6^nx1QVd5lMceCYbR9Y00y(#aHAAey7 zwwKfSX}tOG*Wik;KGFYd63w%giMrMjA5YfCOi<}-XF&S9$G}aymH~*(%m`NG-Bwdg zT1%y3p3yxW7oRaXqP08ZL#h}IlHny8G zAp=Es%Q2b?2{S=QEdK`OAa*R;85j1tr^UvV5QJvhnRL0oS{HktmIfYl9+XCZUy{PR z63z!c4V02s`W=zw>J6;bh`1F2ciTMF! zj<}yCUXo6Na=T+A)98B32_~?08vvCLBt1u4F>A&kb%>Hu*>zz;x||acLwuUa11dPl zvrNB`m3M)qubiu_US{A_&b$XoCOx4JoA`h*^)}0jKzJEPKrrsR^IFz99<=(I4fm89 z%GhbZuG3(wEF0DuX}0@q>kwaEd8L$zg+L1PaP$?qz<;hUGjS?n5Z0Wh${v>PRBqNC zO+q$=6@Nbk#lREMg<5|V`om$U04x58Z4f3P;_!s!4dcE4Mk>_Wx>Qfu?{&unEBhgV zX@6gzcu6K_PcU)jQAttQ|5ckksZoQnE;v679VbSPAP#Jt;xr6_c}o>+4e z+F&2Spqva`jV=QJEvM78(nHLOcH>CH1r>1z7tdfu?1ZpqG|YAB8(MO3x~49>z;OpJ6BOJGra5rUu03PE2#>=Y80fiR!M~-j zruKaRFU%GEV3 z;-B|y*;kKVn#+tKZCu^1i_<-QSvsM2O?;O0veBMt|InC7lFTrJa+emdQPR`Ld_+mVGhU`}?%>}SGJ)~*!YxZz8p<1Ou zBvU2WJgE`ixSGxkx(p?xRKqEgtUHE;+Z_go$k%xC{b&r~7{7*x0gNWcjO(iX;0$vf zN$H?|1VW`rH5JkOUDV(r^FhB8&Ry$x4cS|^N<1&Faxd_W0BHOfT;F3Ltba)xAhg_8oc_s&&EcP`jq zQt>Y8`-EVp$8V0jj!MZrT%`AlJ=`}=;vj@uuKZZP6Cr)MT|~gkR{I|tW_!|RiDNFu z=f-}a(SHToEjG*2bkbzf?#>*d$rT*p(=&``JDA|{PyZzcZOTh((swSTd(D~#`M_Cx zS`Oni*gSO{zxWmn-sw57gZZ;KQRW*G^-Om^+7&OHq9b8>+r$mlVz)~|hS zE5WMrn~f9F5%+- zNr4P8vo~RflHE1qiy;o@Pfltt@@VaxJKQy15^A|>&J|XS%{!B7-k3x0ud~MQEFa(N zn>h1A8AXbieU*YBPpKHC&5{nF={H04lifk6Zx9r4P@sN{@avHnQbxev1vuLvzc&Ei zS1`=gx8lT%zz34#u`y66li^B5biAUC4haGj3vC3mo^jSG@?=@A6y=$N32L1`sIQ|M zn}G@$8Zd-};mA`L%X?#tE{Rg3ZT^#o0z*cBiYLn|lyS$J25|Nwxga)>5F1?lvdJ$> z0diBi(UB#NuK8J;m8cPntxb4=|J_RoGPB&wO*~Tto6xPksyo%%f!BFk0p!W=$x~i| z0%31-5J@F~G65(@nAO+l9I+av!{rV(d58Q&*3EHlMm!r|^IrcjQEDd8rLOrh9`|zX zKHkmo9y4g?jybGVpQfUT=|!Rwt^!;&CHT&wL_n7UTxsW%bvL~q@)Xh3lwov8_#;@~ zJ2IUyVB~19g(m(oApXkGc9HQ1R_2^upsrbyyVv#0_hV=kl9&yfDBzqcs8x(ZoRvi% zw(6|mG(y0mHy1>|{gi5(WA|)4k3AL2N7!%6je<{}Ox1Q#f?!shpk_S%N%!A97{3ZR z%p?RO=?cmfbvOqqZ@+tpz$v~w)^WIZ(xNArWxW*+!bVp zc*8igBt@khdJ6lhW74}{uD|iGu-$sv9IJ{OyIVOJBn)jw%WZMH*mJxvoA>v+TInr^ zoUuAD3(%b&%HiFKs|Jw=;s`o#RgdI_BzYbo+DW`m(7@Y4LlKq&m>f%zb{Dz7&nsl4 zL<8pSa!sx&cZjr&WrYup#jRN>!6zc1x}US-O|0C5OX|*s;Eu#W?xD(==dlN;{a<8hcjWHg^^a^>H?_I zLxt%9%9eEvgfbY)HhNsdQ91yBn%G!E68yyho4dC?HRqRvt;N_vIyoRqZt?<5rx}MA zpZKM4b2(Tu-Sv6H%yTGSZIBe@ddLP^B^1@%+AcMFQVc;-Far zPBa&;>Et)GLbYr++AeED;g~5 z*gaujza^=%uLd_@Qz0S#?OTOrdG^D9PZTm-*V&|S){1~$*YE>Nv&&Sg08$7h~n2hTAgEOiHIsiQ2Hn>Ob4i? z@rV#2j%B(=@F5!gn;C}^GCRT&Q&4b(0xo_Q87%GJIK)@@RiP)-tfL8801^D4neeN1 z8u1sJtlCrz8*kEMr?Z%=P+{=(x(Ah~f6T`gkorQ(0}KdN@5R6dk!==+2i3wX8@C&`vSaP&6kefuxWB_iFPPDa?}6LCCZS9fa>F^FVl)b z;h;(>G(*pd((Jm_AW!&67j%R=1+vFRGQ)jN6A`IhmU>Y-DE3e+&ZO>h-gVs`>RIO3 zg7WKjAo~p%?**f2R7h&)Sob_%g_#EI20OZ-zba`1A>a^H`pI?bZjXn`nRu^gXkh*W zX)4bjvWkz0;^#e0)j^t~SMr0vQP~EZ!A2;cj7-sHo-7}+ykztdrGZbZZy6)Zr9qK( z4(*i{-rlJJhEY%yW(_9oG8I$ufOI2#8rh-hF2FVdBLp zJ+FrXg{orYXMxsHQ=B5VDh)FKWkVy9bi7x^dsN9ZM5Ew3G`cH^D%R}LD23$EsuTy$ z#L7N`WwRO8?gL}pY1%JOa^cE&wBAg{-z<07kfWbZr>RxnitCL)PCMLyi(z+%J$;Tc zI`pJ&z$#OvL(fm|Qz+=@aP1NG8&hk|4XSMKDuib1s^fVvSV2te-uAFuCGSrHln&-J@UG|Xs6hDu|D8b?{qd|j5e0KOt8w0+=#Z$o@m@2~485iY zG?chP>b#0p`~Y>moZXAE7{7lZz>&se)G#6!nw<`ST6KU9{3tP$3U*SpVtPchgS})8 zQKR&+w?T;`M%GMIrLeb#Uvpn%2;O343CCF*aDrZ8XeNh2LUpxtEn52h5#>Bd2vF6ziHUmFN4^D2Gf`snCOv0aLGc}bID4c7=W?tUxe^B%q*e;b5Qg}eR}gj0q5va8 zm_IUuZW<*^fTQm^vt!zq6d0OqckbuC&N5Gk3>S4kr&nekQJR5%$FvM_t`5jrq zOgA`kNyNxtL?M54zLRuB`9MokjQG;{G2pVDc=^-wX&VwsTV%c>;U&hReDp!BDeX9X zBrOSYaq)OT;$F_Z>8G}j4^#f>LH8}s_|Oh#V~e3^4N+aBsBM2Jtz#qx~R1Togu zS~_o2aV|J$k#aC#YyrkY9L9zNr(>g#1_G&C$vB=#&ES(`UCws(@Nf3r24v1ntITkJ zvMbE{6MQSv8J{s~G_RaVrduZNOVs2^30HaX#@r`P8gk3tOq$(9ITRz3#1Ra%4yf_> zCZhad#7=Aygs+bTc&+G~5dJrBl4?O^v$j^5IMuABW72w6ulLg8eMJ?=!+2z8V}Rfv z#yLVnO2+2Co-dOgQ>H7av7AhM--zy@yP8w?;&dZ3b0A&mfk$$nt;W88-$BYWFP_3e z&~F=9vDfOjgZl%`sb*QxPee?&KMz(KE#2iD)0?3xr}rs2a2IN`6od*#iqF%bUe6>a z*01BXL>Ca(&A&3~offO765EJ(n>@j+TD#3met7VBZ4ut({GO^@3XBL>;FaR+(n8ft?0 zp>x%0xXxd406 zHzAhs5cK$U>L}_DaX1x47Tl-3Us)|bgW^GXsBkpxch9{uMR8W5&;n@>wG#e40pO`f z?~)DiGU%oE_q_&pmU;2AYtZq}!x%xCb=M4nnQU)ZOdp6LSaDk45j7b6H;++?rimn~~qj0KV$D_dxX>B{X1$ zpPjR2230r_Pg}o0tq(JGObpO^!udZE#86sI%)2t4wFA%)kR{0@R+ zy!hq~OMrHlA%6iyd#l*r&_-ht+GqqBGcV4X!)&6v;e_%*01cKB*8*_a<8p*uhR>1^I2^~U_yF(mI z$`0SfK>DmHXO>p#5u?laF|pb@^UdIaO6ZhiU-ry(HZxSE63Ev>cfgeu*Dy42;ieip zLvo0S8IKmmH@Tb3(H-mjM|Ub(z=Bj)J{d_yXn8cRs}Y@(cA_kweGM$NNHua_l-A$$T~UGzky< z(dcb`e5Y(m5xX?`*;5_h(T7`9+Ibw_=eznx9@cWfM#!2|eVmgnUO>p9T0mswl#UUv zCcbg*WZn@sohf~Pv4&Jvt)B&O^^5YfB+sK54MrTOxz*3CFTF}6S2F-XeFKYq6a%^@ zzm{$-57L2ZDwmY))Zm!(P1E6|$mp{2ipLu$&Jv-N@1jrK?U%>wzY!HV6iTQ2VRGnX ztqm27iA@xv9tyU<*P(?x1tVz(!g3DFNlFNeD#+S}@u|1ogG<-KCAL~8Jy$b!bYOY$ z+R&Ek;>F42HzFnPpvLiT0rQ&I5lJ#Pp71v-RqNn>bUgdAA|7>+CUy z2}d)!^)2)dvOA{mCBGL#=ep7m|I+bt9?=+yI`sad6y)OCYC{};>0?MV6mpN=Joi6A z#onwA08H5bB76;?bPxxsw7Y_C>ra@ha(-e!eQ1XZEyg(_1yXM76YYMT z1(7|}QCwMljR-F;f(K0z#^yl-5)jeB-m8HM+1xlCv!B5J{sd&5Z9d`_G_1^>fv!dx z5L5ffkwY9*gg?d=pH>Ay4!s5`c87?FU-F<}552zLgA$^Ria0zeth3(88)i~nzIN_> zCk4s@n|&w4zUo1PWbL%fcUh+WJDdwg4z+(flRjK0NNoGSh#YDMn=2Xi%y#S8cy{O% zJItL6WAQHyfag#h9ERCNt=ypmrrm_d3Cqz?JGSkvpj10A_-#zu_D#6MZpU$m*GZnd z8>w1ThvEp4#~Sg4(+ElOB{B3m@hDBj&qD8D8FWrmV@Z@#ef0X+f^wT&sy3ZUX^k2o z%j-~2X;T4agsGfvdp1suBieULW)#|g1YM$<)pv(X)lWP3*uK0+i|rL8UboPm5|1;8 z6wqg`dvhJH6`~^opqm?MAM?dI2c*D|T^`Irnl_<=Qap2l>6S*I$7&n+@k(DbgLy-% zQ(+EiWBl+y{0;G@dvMgp2$`G)ML}N*dZ{l$ekpqeqolV|+v6m$qsP<)tqk&a)OISr`` zh2A2H<%uRO;cKBDgzBS;v5FKo4IeciI@L#Yg`~H2Z5#EsBb+x%a#bhf92-0edFf}G zk#eJQxgR5F=r@^9=)(9{p--sq&MN!ky;3_wN=nc~;g1L2S#=-q z2Gy3Hs4NHSPvaK=+HilKIm}0cu$pB6HN6w@oegyK?mkY_~q;N6CEhsK<$bM>cERc--Swq9;@ejr+b%=HIQcX%lt5ri?CDueDd zoc~4V>lQNR8v>0fBPMpLj}y_h@xgd?I2$E`_B>^%<5xQ-*C1(lOg#*D3-xCoNX41R zMM#JkekdINW()in)Q7sCy8L(M)hMCN`^nP;x7({v6`3rbBb}uop02xl3{*8G#gyAP zS7NFRh|!lGMGgspU^O2;t;EXc;0tJL=S8E}hcPuh#XN35q3hNq9Ve&)rxDd}{6{Ph z!Sm}EkgsTZO%63iuoMAZ}~%yLvw3x zg+3+yy(B(%TJT!pidkdRn$_SPSrFK}DFGDHf?~l;lPx(3KIq_ar^~6i=*A5K4xYI3fL-c*^?ONX5 z-kq@;k<_)87C5F?Sw2%UZCp^Y9W8|UZ9ts44z)gyfqfDM`cqU#e_~C=33*@RTXYjU zq=@S>m&J(DWqJv{klujfG6z%rgt8X|rtNkj_G#7l+vrZ4)p@Eu7ZR1?&VM@V9{7UQ znB-}&VPcVTfOp(0yQS=ejSboDA_8@DKqHNeGs(<}&M)GYw({5Uxg>gZ23iA=d-Yz* z<5#9v-dylHXqh3e&wUgdgVII5@Im);3C z$r9~3n>8Te%NBVxMP;;=v*WaAw(DT=8v$+NPmp=dHzIQA2wo0ixqG9<8{D^O*%q8O z@34=+0~|nbP^e)V2tb5zFd^5e?y{V%fNs0*Yv5=E+w}1Lp0&N>ptX$G8V>lljE&Uk0bj$k+|=-!XT}|OUdm8sa*e_|GB;q;Jamou zB00&j37Teqj6M<%t6lTyX~;iYU|;K*`ta5z^|<%O*wx?r!wRl8vdO;KW|&T|I9?0y zPmD@T4xH&>%6+MN7U-0rEEX{NN3pBK#&R%P1hWbdRaK$krUk%A6lhO*jeTI&_`2Py zG4icrGv))-=%sX7E_OdNl%9HWW4v?$m>!@jC*tSgmo3T;xb9B!WEb8Y|Mrk^QwUw4 zKfi*Zy=r6ZqiF00Su6l+uA|`n)#e8R+U32ODn8~uZH*5!mN*)<8y|9EZ!tnW zi;h-~w;psHSDV!w7*}h3xMeQ>E0$Xg{RO(o9JD(nL8)W_{gXD_@ zWF-nTr|yhxGJ}2Hh;NO2JK2m+033)gq^#ugv*l+~L{WqaK<~!=9A-W)hRvm0_eFzz zM!b8m6#6#5(jUqU-}u99HtOF#Ze6j#s&!!-7}Y7;^p?8b!IOSwDaZ2TIxG^qn){9G zBUViKU-H*}NQvwCvA?4m-9g?wLDzt;G{oeZSoe4vQ%$G1lrR6vt3YU$2-mWVfcF*I z>D}$Hu8q_SjTPNW1CEyrCVbl-jO8Ag=L{av-eR&YtM_PMdKP3+aQF1{3M*}Vp#Mj6 zVL}`0fmCN{!wmOK^;F`{sD<}u`K@M8OP@$l%ziX6!0H9cmy>>yF(K~#*7Fkad<7@w znz*W;2H`~dd9VV|MWCuV!rkYeIEXy|qX=e90s+4{3V7M+?;JEb(gSLal^}X>j;gwr zJ!_O%f>_wUyPTt!wVI4e&bKtWwipGzt@xy{8tzT_2b=!hQE4LH1{Kl%6VpBd`=*Qw zLRLP)ijLNYeb9@Rc!gWOf;7h$^gqT?vCn$r%QuLb-bGTsmS1?jN_+VwPgqKJ>(>>goANuGw{tT}jbVW~ zRpwW#jL%IEfQ3NAb6jLRC35I9pefN|ICTxWB#rbvM5G$|-sHzPm#NYKd=J2#j+Oy< z>0HfECxN^4BDz{LBP^DIR53_`)7s3667#td?70$pTT{Po{&=i^%F&Lb;Mo|ouPzE! zW+D>KuyOQZT(b~HJ$DT25uN;#vYE0ZBAU+usMNUj%*~;L5hr60EY?+>|L~~H#t$uBD`LnxqJq@dTi>~ z;Jb5MZ|p}hxG0CdR(a)%S#o=}6q=rTiicTbIGhJn-;!py2OM`?a$M}Eln}XULyn78 z8hw5D`m^d2H*bDe)tOE%L^Uw@;t`m;Mv~-HG>7M^!gPA2FRXP3b7 zPR}Mz%Kd)_3UYopr?G!~Ze4sPyRZ`Dd?(J+PdRwZ`yk&Nv`_EwY`ig6u$+T(_AU0q z>QRA_l8&=H7bpr#AMUsaRb1J*pMUGpNM*llW31oBH=A;qa_juC(I=C4k{r9Ozn`fb z3|`CgKi`^J^=#*sO`lBvQwJ(5KXAd@FCQ<xN;o!&M4B4CDirCSS_XbhWbtpaL)?!zK`bKuWA z4xDTKAi*)_6@nBfI+C7K!`1wn`E^ZaeY4WvaSa zrHEa3HO?>gVA0X^%e(Z`C5l68?mySJXWw0b-2c~Utc`GEOlkB@&x-X_`}T!fH;VO3 zl;AaZ9tvYL8kk~deiJ~5v1fjhLEohyn|0Z<9A>x#fvcOTj?@c1 zXo1TqJuk*2E=}vAB>1OslD_HeL+7jGj_%va+xcU$Qu868imTOBX(qn)w(?fCu4nl)HvrKkG zKhl)KXQrbwf0(YyXcY5~E#fAceB_sh7l?4)pAVh`9S96W1XC|FI69qr+K(GBr-&4w zLu>Lbq=PS@1F3q#3nw*v!d-P+0ri~I(qZ(0Q9@Uk-`G0_Rz_&k zb;VMW9MB;nYGXvtPz>qlk_*-fhIy(>?u__~=+96N?9nghK7Fc02dAgiBtN^%XX~`g zvtV{TYnE*`qEzSOfY$!Njgowe@Ro@{i07R@hfZyMR+tSh=o$%~U;iU3*6<39EP$#k zI|#Jc(^a(l_%X@9j&WDGF4WAnu@yLI)lmaz=YxBr!$h0_ix{@e+g#B1C`h`8{EUY= zt*1Y8#mwCHdgM^=+SBY67VlIY%2*MNY?A>mldspI&r^n!-6d(BS2kAR_URXLd%Qa0CPNuwZ#qd5Fc3f<_Og83b+(LKW1^FoBuCIu`Q0; zYp~?)FJKluq$um~`3c`UF-*IbjyoC@YZ-y=dqErr|9UFm)howo0&$Equ0twQx2e(y zK1#%B#53nG7~rAt;xgj9^OdxR9J;@*rSocYp{9xSaYgWIulwXb6Ws@lp9$Rw(Fs)X zO#=!yP%?9Bz|&ccQ|kS=f@3)rereVv$kZZqT<^*4X?@gR#8|EkT7kQ@NWEXt?lZqc ze@^MXJ4qeM5AHl2S_)n})YDM<*QsCJrl6o&QCEDeSjA! z$~M)YQ>fQuWjq@^<)4e;TL9-YX zw!Dl&wdAc&L5r%rIW)qs4nh;Z;7T99r{f+1oPfTdccgMAo-cQ`{%~>5`LT`^6#khW z6)*u%{OU%Ngt{Qb}9d<8(yog6z5*&MAt{sQ1O5n8C~z^rhdef5vuKgCzvRxpN60>911_l7M`(^X@aA;%0RTZz&ws#*eu)Xt}AYy=B@ z^KA)u#zf*z5KaQem;|i&2*r!C951AQ+aZjmMSo70Ym+lQgScVIeVY;Q)Kc*P_O9Z@ zy$r4->F}Y-sAuy*B9la6L^zDcs;4_BCx22O!5)#km|v7jBKKsiD7Q^d=ltqoRmyO= zWdzlg@(=^L?9~__QNE7!n~cDC!3TXZn2WP90ym8vBL^KKp_`x0Qzmw%i)MBrAoZ;( z?Jj4|TSm09+T+`jm@lyGBI?li!(dZGbq-ydlgbXukG$zOjcHwrf=GKjuV-=hcyb); zS=I0hpNPKd?wlWq@9nGDzUk8Btd|6q@`PQKNf{=77H7(}&-=Zeb!MbiX;j;*bX_xA z2&T2@8z1=;-F#eA6x8jLc_*6`7|-5$CZ%@eboRO-9S&UwCtQ;b1y0bz-&CV)X}I4P zD$?7HMM8Bs`$|74d>O&2ao~|1gy1JZe;HnWH@uDrxfw#`v~l9e=ZT65#U0H$*za($ zcgB7st(JB23z@6S7;9lVFnQ7}x_N4Ay4 z4_nxMhK$G$e3RI6xG-FFkBIC)EB`h<^pH&*+9Xvnlwd{B0{BLwzFn&Bvp)+w$bU-H zG=}0g#^tZqy$?n-7&a#XwO&_~Bv^GGNsbO)F!0X|4Czlw5Ba8&KFKW|O5Nl+pRq}I zhS%QqS+C4<%CFowUq7 z&B&L$o_xq5waNmvAAo)9D6IkZQLw90O*V~%tTiL0l(BW*qA8>;axx9S>m@{90O6@yOP^(+toND;9G8f4F*OV-1VH!`P8M zbrBDf2!CA7BShH@Q@VnZ?Ksx!0s4T}+xi8haj`OR9C>h{_QJEv6 z9t2$iuJ>R5^Nrh}jW_DyGGqcQW`rh83&-eHEK7RkeeO>o!UF&&0FRqcVyJJNkUk9M$RZ=$O z-;g9U`iC2i#bP5Qb@HB7Gb0U0kBPGNdLyjC_<@p~snu~5DA7e%_8=>yr9<##yKK;x zT6h-vYIn)M4T101ykD7pb&G}iABSMThAn2hk=F++?XaN%^7o`wx!C%nJr8`WL3g|I zwAsPtvO>!n@$o_~pV*~|(i2XB(&}O}g#$0Jl2kRbye&H!(+0p+cI6cbS@pa&xO~3? zot+zN>tjjlod55gKtj{!yjNupTlKgtqujAKgEI<#RtiuEiweT&4yLgl2L61{l)#3A zXBzYakGMSm`2aLXtJkVNR+0>R3&X|B5;#+DqlII5M3`W5|JHb=9bOLkP8aYOPST9S z+`;b#OI}d=?jm#La+91^YbieEuXU&u?leS1fR~gz1Q*!rid7D?Tn&n&FX&;J^<^G0 zCM`W zu#RLE&al-MGaAplMcb)I55GgykSJF3F;bL>XTVB=JQD8=7XPI+u`9n^ke0dd@gmAJ z>lq{1aMo-$%s_994RK%PJR;N<7dItSbc{!Y83>~*p)v$%l>unfr&>uiFbO1}48PeW zk*B(XR7D9U`!a&MC)OkmnNK)ov_UmR7cqrbCBxLl`($GT0hs*KKMKep(g72zgP7vi z+&o>@k?zzRqn8v|I3;UrJ|s^EFiHlrr*AD9GJ?`Hpk@Sa#d_b00Y%AB7vDMFMzh;p zHCGb=9E-w8=`W#0{G-`kaVtH6bQf*dv zUn^=|Ex450Z3xBIZeTakcXrBuk z{Y2DQkBgrdiF}y53Uq_NYCNArOJPV7Lx`ecgQHDt{q_I*dR#ZUhQD;X5rVjF8+-Qk zCX-3GoO8r)3ZgoK4nItbN=9(NUhdpF z>m2Pr`rJ;H#35jgwZ;J{UQ~`h5^M;;{^=&Ac-vrIp6OuoCaKvv+BY;BBIrYA@Xb1= zvK^&x2rHv;aXnhmPz!YABUu{^x^|VbVJN&g^LE4rl>RjwcnX7ClrIPd7FDiH85K%zLVgP?&Qap8AgQQS?5+UGx6aL%@9(dC-6tj?XK4;As!nq zpg9lCi=&o{A)0>|w15}LAl5{J*iU`3+Vka&iK>ojEOks7dvX zQ4vTJ0yG!KLGijzz}r3-4vQnPUAH#i%j5qVXyQSG^fhJ?15cgUefMNfZrUv^O~g_O zT)_rmWb}d5XjJrtW|+`I1FQyNC+0`-RzpA^=`c|Y{Lh(GZ@?2V_Gh2g zDTv@+QbQ*Z)H~4RDBOVt6|fUg<(8TZfi7N%(MTzq9i@<;DSLHA>VtaA6+3qiubpJ4 zPrnmsdvO+h+6v6&YfIzNHG-JLoP=T5u3${FhXMASZ41qwQ>>ujnANN`BXDqF`Bpz= zEcFkp8F(0n;k-NTh_LBRk+w|E3Q@#8fw{Z?`;8X@8N*6l4QP~y8+OB{C4ATE`~kGRHApuen{^9i)=4JJ0f{d+xwC>XIPg8wE$;C(ixj_9`u z=k(|=BLcRN!Adg)jm||gobM127CvUqYP@)JaU5$LzuY7 z=De8?;U^X%e-ERAZ?JI*1F}Y^$D)V8($)qvWV0l z6&9})K4d$|Fp%0=V5ORGe-)svcYJ}P2-FfUggg9A8P+x018K|bU( zu<;~hPVbQU_$OwcT32vUAvn|J@2WYR9eWkW*$zQW2{_yWfN12&Xqa`Nh{6)!dH2`S zBRWJ?6iujLZ$*3rmf)d>dQ@ukL{I^JJd>~wFL>BU7`K6>C#~(apr?2-lR7x0fG>FOGf<)in3B!c$5H!kFiriEiL4S|>8dX-4iLAyS zUt|Yu;`ufVd(am*V$`GQe!rl)o77(W4`YR-6Z-s~?td=<7)=6~8h4xzcZfi9QZeWz zD2V_pP0oKyGYups&y8O}lt{|Zyw@g#8gDFef}e4lc-#AG$m$X8DM=B{OM>3*eRTwM zHJ&DHX8<%UFT1_1H1t6d0%V!@d)g{V-pV^715?r8OgsQ=+N_mu+Zx42N172+ql&5B z)qPO6@R$tUMw9KI#_*(HsA60Kg+wsphqCLeEfVvRVeH70nD;-M<2bjJx-0plYm1dx zBXv)!Scoir5R}@epMD`}LR0-_ZlRq%2p(<)bbD39u<-`u+d0*l45C7aPhyzSDKyI- zCzjr8P_{zzRg#Mc?VuJpuPo1qU95y-p79X$j7T-Q_BGcX$O*aV9{VPMD@)9~r6Y|C zSeq6*ay6(kdTXndZ&zCC*YHpE1zVVE`mZPe*TOi~$T-#y&$%b|1lVQR!tQ^&JWwv= z7vqCo4S@}+)k6@W0wT1|v=6yZI8|9RHB<<_cC5>4d|u>X%%xnR$U|msOX$0O6Eo>X zT{Z>p%Z!|A&kzf0{Zh+EK|I5&dMc_xK43#l>?0Fmd3`ePnhaL&`-`d{fhk=FD}eJB z&q+9Q6)rP6X*ZdS3O|ddGq!ZBO3E$hKPm*P+L$wR3P%0F1Qpfc!Xr^Q5>ZU(qk7)d+zK=}8WUHBpI@|-Ta zJxOEqd=3+at|sd`iG9H@1ekOJi8Uz&rO|4?t$foZoK)zU=F#8SG){5!M_VoLI1TD+lb1XLR58(c=nfSO& z>+4@2m&M;_zLBTAsqtp|>-DF&8u|cy9)zZ%X1O(`P02I%;QKS?H0+-^V=xE3FW0+A z!b3mW;_0@`%_;G3^k{|Jbj21-s$czgWZ|77wip&)miO<5gqBo%uOc&%KM>gu%HOZ0 z`5qhVxQon$0c*BjnQyLkdgL&<(R}?G@!Tk@?C;5;){t-v!a2A9-|}{C9Jiud(|xsq z!`kQR%M@n(w1Csb1L1TsdGa~TDo|9R-;o?;>|(l@pR)Ni-uSxm*qR2u>a>z=a1%-I z!NJHj$TT@E+mXhSaJu;>*XbNGIG&lvE~%trtv_}h`M29G=Pxe-m4oL%`d#JO;if^b z;yGIZS0R?9S0RkU=y$neUVd=F&RMrUoS))ZlJ}MUx9e9@a8Q|2lkKfOxLFf1d@+LF zC0Uzrt;oJ&NP`#Lk8lXF)x_kJwt_r$o7ROxj%I67|7fXZ&#mKGx(sqMp>4uqZSS;W zbEUVJe*N#C+zGsQt?L7s?oW0os}{XuRg_aU^2eHe%jg{0{rLm{Oe!QhuKRmle4r(X zZOI^g@k7e2xU z#^t8CP2dWT*3bEhA}?WHnDM|Lnu=v*n=qc5F6vK6jEeAwOQbi;%S=R%$9VFPjlv=b z1`tIBa&nXH>Meb$kQ+@VEO9(;Si?K5@qUQ%r;Em%TaP}zt7S+p)ACo(ic!aoS#*7Qcvjm992~wNa*?qM>a&Kqb%J!y#OnTwlcuy zk+$yan`nS9$#Vl)TL)J1zC338%2XluYK<>&FR<802E?-ZIhIWeY-<#0ZJArnHKha| z{^HlqeyqzK;nX<+a-}p&kQFULfn0ULl1CxAk{@nf&CD0-d~I z^4!LY#7?*Mm^&k*0WlUiZYf<}2G|VNu=3?Y7Cq6FP*xt|#g2Uxc3OeZcRY z$*y_ISu~uj|DdNOMU6aP&Z;E_Gdq&5f1+l0@mH;hP^uq`t4*==UNdG}U9OZBf;{D* zwfZ2KAId5TyuPq=C*^q|PP{_HCYTMHVMG|fl*Vxyou$^B5W5rT5L#~j1Pn?N6L8Uv z)zjR*A23qUos(W(t;=kv6qWV#IfJMS;*&_{w*u+HKYUoni_yf!Cwxd|{zz>jmqN!^ z91s3eVlO@|Gx)Au?%l>-=Rez!R|R<78`J(9&}dkgBrcwTz^2wB zw0~!tY#(k(k2dPn)s3?;#_oPy1iRYwX^fA;E$kAKrg4$gL18{HAAkmR18QZq<9At zZ>#c}F9BOUi$8yk3^Q5GA1Z0>H$#742?{C?2o8|>^o|Q_`JoZQvAYi5`^`6a%CGrX z)~qR##~1Z;3-$LZfbYgPdk6qTdFrRFgF#@6GE?T{Ca_esb%dFAk&#dYPn^bP%tDw{ zR*cxhjL&T5tV36(7~UR20)$(r@?y@8wnMwlxqB~*X$D*s;nC+FSVTF!p?p=5q;6n! zd9<2C-a0si+-8ukvwi=}^-_}dc(Im$u;Os)M&8j`Lvdhc{_p;%eGG%{@qKl3Y6a@0 zf8s9%Gb9V^E=uB9hhn(qMYR+6C?vR$#Z~I(i`}A)H)77Mtc8EniZ_2~7~u1PK@{L1 z5W{>cNRIepjTN~lN$nsS2=_&@Wox(YqJ{98%Wm2jvilU#LezBZL*v>dsu&F|`{YT! ziT0|m^(nh^?61P{D`>xx$66;}l|xFca8iE_Yz(LwdmlI!k~9sWYJ_Ke01D1-9E`Nl z>hX0l9$aLPyB)RP>aF4yGSVsUz~g1SDYMXfLpU8&Xq^kYk%WfS`k-09d+~&l)>4O; zwS75t9}IgfSp*f$S2zzRC(3+!W;D1Px&C@LEqLgY?r!GZ^ijqL9Luw-E565D^)GS7 z_^%jeP_hc`V_nd}t_0XOy-1KKQCKH>T%uwJq~a*{4m1HSU(N$9Xj>2$7RBvQPFX20 z7k%guUgprDOKx>qZb5by(9279p|{|F^|JU+FASg;0QFx>{SL?ZA~DdR;eg>VKD(bX z_bh=I!NA}00~>^U*F?A^v{n9RUsbQR_^2wz**b1C!}LeM31S}`9n@XKda(P|M4LSb zj??(TG$m)}!Hih&n;8Vx?{cHA-W@+{>rm&=^FO`PxWyH$)EI*M(%5uhxES}gt6YyuO3^EY2|2J9j@10b*!rv}{CT6ed z%G6O+mpvl#dua8h;X{qX|019TJF}H9kP}v+>(7@5;j`6RhAv2KXKl>&x|;&#)*@2@ zYgsiuW}p-@X_e@-VulfZ!uWp1xGuTXa2HWCl#E{UB?Eb&WWG0nQvPF?8`njSicjV_ z;l*MMoTqQR{BA*7t!T9aEUy4L2C z=6u-)aPE49xFcVKjf1To1a8L7%*l#mVF;PG+Mc}ez!sJY^{&pGvQ;@RD zVZkD}QY5_kalblunla1*v%ynMMa*elHrQJ96ZqxWZ}2sNZb(g+&8`%r)@>qoreO1D_JV2_@y zNH0I&kzH9p!thUhiB0a!58oP8GvLJjk>8Ut(RE*P1<9K&29ss0 zd+58 sW12Rg+u8WY}?B=_tl$O8>20VusDZ}!lAjsUtc88@^|h{Z$FS(3v6BQb-B z`~1H8gS!H0QWdQ zw_FA$5aY)L=9P@l=EZT3=a{4E)o6<-%J{O=_5FW60USZ1_SObe7Anpk+G(jZ*laG%rNMJkxuF%Iva-7X7He;)@Vho}U5} z8h5@68nba+W?+qHU2&oN?vj9$ZR{!>?fGocpz!u870@nmG}Ghg$Ld<&p1wd=VNk)5 zhFVEF{Ot!2dAb$+6aV!>;|F_-uLIc2`k$s|Jhjb=wu;ELr?!T`JK+x}Dyni|CO^Uy zM&NbH$_6jX4) zY5!%#S1f2clM~gqSbZffhicu^7@gS7EZ$##swz>G~hd_P1@+r-x*LjLC{*+X5Z~BD(Ed~u;F&r+=uwtG^F>s!Lf4jfscUQ~I9K#P*80l6@Yit&^LO8NJ6nt!SR14>oB@c!Mt3 z*YzXW1s&?v5YtE0%$n$c^zuG})-UG+#|4^S18PDU;{txgf2DKNY}#i8{FSn*>|S+S zB!Qe);?DJ)ntL$39oIt?KBTG%uhX6sJ!Mbg%ni7C41WZkQ&|j9Gd$op16Y!m$Iye1 zS+H8bP1wOdVL)q6<8ynp^+c8poctx&&msA92N3W$2({YY!GYnRhReN>sX)D)w|sr# zY3Rz?edO&==b5XU-m(ceRjIGhP(^$9$_k8&uDV#BT$fs(Xe*{k*Q7X=x+jHut($fyv6JuFMx zdtV@^IV)UcoI0V?zo7G0FmG=ynw-3_c*y_l{K7qpc)$0JYs!5jtp$tV^XeBz?>(B> ztOfnP4UM(vMgiH&t>b3A#&N3e=P#g@j}2`rKp?@1cg zaCCgW(0m@I&J|5_JE)IjyNFpKB_*60zW_I`$Qff3xD8O(|PUGS* zo=Qpc?d@oo(W+Ajj=Fo>c4F5XUYC_u`Ks=HPt5rVjd9M1{f~I^){Aoy$8V)bsSB2) zlZhWA&v9hkzKC(Sbak<^yH31fWg?^9$!+jj!MIMK{7`j`uqt=Hv|2!5`NmmDI@E7fRFv1NvC`@IkhWR=}eiz5HRAKk#3 zFZ(J>{K{L~kKtL^i?o7Wzpg7nKZ0OgTGM8hkf1M5E!iOG154eb#iM-W-&*4yM<2k& zGDc2~U*By`lIdF$GkvCF0PyNA@a=nJtVJK=78#NXV+&$!1Qt~qzw)JT6+!oIf=pnY zgYRW^evgxNYoo@N#HLUYPoSPMp)h)L_N6>D^%GVRP2c-DHO7fELF6!xKtnx-6L{_%GSYpx z=q+A6x>~jk|Ml*U!JSdy;`@~b4{bXCi=dc{?m-Vv1I|plclcIIe2swmh0iJ@UyrZ( z02H~nNh`2Q7|furi&W*7!n<_mUO{e;v2dM8*m-Kc6cFaZR`fY4+2~_0rrX(Bqr9h! zK1It#V4<1m42`C1Sg0uvYrZq0;5-zXC0?wZ`g^5OJU|!p!GxqY`|2<975zxQpUlf8 zNU3+}v2Dfs-cjkKO!T%uOE=XktCcv%FCj;NpA9Dn-fE6n$-1eJa1(mGRhX47!U$?J zYP+0d7aJ&7QTX3#{<{gfMbKW($RIv;2Xa{k4|Y<<%pwdTHWKMDoJ)CXOxj{aG$KYF z9FRh==GXQm@X*p)ogM{dNkmiPla&}r^x=#{mb%-9u(0?IncS}S`xl8ttB0^q*5Yc! zm2I<-9GB3+YoS|}kMQuLjzi1D(L0IWVmzGh|5PM+SS`FPdljuTxX9%Wu(yx+XWb~< z^Dq6rpyc-J1Bu4`59j=J>@=8oSyj$_5Fn<_a>FEq$STKf^unw;p`AEbjBy-Di2)3F zD&;HF=!kNzpriSry}oodj3ci!TVEN??Py#JsB>sJLWylXY)cv!NqEQqOK;dhG{WS1 ztsy}>o7(wOS)BWWADRUT5F__!H&#FW8{M*fGCaP&-hC(5NT`1#r6R3fWn%Sf=qTtm zONZpRymqNROSy`#$7x$dTCC*^k_6cDSOyMgL1|Tq99!aeU!XXZAMr#ny)w_^fuxOj z3_(Tro8pI(&t53+W;9==(B0uBj)Dh7_L1UHXq7|+>${z%nG%&UgH>IP8;Ltp1IxzG zZ&==TY1z93cKQi#CIJK}T-*MhJ{Ilx02N8NyVgS9!?l#%`hrlvTx;b(Z*p9@Fob_i zF=*3Ex|>sR&p7iyYQZR9#Tv{E!#urb-SY_ZAiY@n(lO-!s&*R^g>ZoiX+{uoeT_1H zI)(O!JsRmxirUJUzk(4c@ay267z~nhlXL-br|L~8(NYrq-u1$(B(w>?mxmSaAJr8d zLtMWV7Cc?}FsclMNvuBE(w|It#>5i(SGafYG-10Grq9duF*9!%_Iz`RjTC5CvHO~J zZQHIZTeGHG7$5+C`WR5l=>Mk{dJvkC%%Cq|9mO8w%OW7%Rg|o0oG)9Uo6D|69cGZz zDz7HykA9n;<`U6!7rFgl-fOwGN$c&^BTB9BZ|Lgta}SiqpF5e)k}pZ#PILj%>GI#; z+wKzKKB|d{rHQY*nopN4t}g%s46K^C`g!P8a{?M(D7pV?Bq>LFd+BVPC&E;fC7nNs zDs-7=u!P{p%=p$#Ta@`=u7oBuFYG?BcVzP>-V>lz)w{MrJnMzsB=MT_Q*}#wJWuw zZKkLgRaw zdbnoLV=TML3a@KLL87$=Lz#ta;v1Hu@a7sH_jNnmDCh!@X%SDrNewUi>Sszvue9xU zVN_Gv!4ekZ(iNGv^`esM2pTLkYUFQli{zU;N|=+PRx9Uao~;sAzYiWt>c zRex+aX2O3f(Zqx!4O`Cgu469Od$7kcXXqZQ;eq*OvBoMOar2bcx(nFO_(kbUN02EL z(W`SNBov%o7iv;^B_Skj)d7$d8g_wvo<3y zCyfZ9zJ0pc)&6vG`IizzoUw3n_yUm@Eir_U0($6nllp)FD5>q@ek~9WRT>>!&U8xO zE6%Z%DkPbkFA%O>AF5%q{CiJfcc7G*0) zG=jNfaKfcBnq5e~182Ni)Emr16w%Q3Ps+M4PjEL`)*MV{eGzr8C4cpzSk}}%b#~PA z3`pmFF=v94059C}b5EXRG=VEJKOPlueL3|pUtQ8{8Negssiu0+vSl%Z!Sr@uy}?F)2qP!w{#oUbzXw4g;D^MSe!)HXYaIV9GFC(pGpDOCnUSQ@B zfU+e&r+s7BPJ$X*rtAm}L#DC%W4!phcJ;PboTH%ux1W#B%WP#XwvY@^N{4W5>CS=I z)0&Ujuye{>9^c*4XBQ2rIL$%JLB42YF)YehoLwHKTj1ft`5VHn-}ohI)F34hm)jRbhjed9Ks?`Kjr4-KX-)_*SHxjQygL3z-0((k+oiv}0IIg=Tr3Rd ztBK@(iOUiS=Vf$K{P+7jSj*SAo@b7|EYoj=j^$(U^7601mxojo6Y9$uBSA4-l`-*V z>%)zNYDTui;@Q;!ncc1D*e;0ydm34WdG4YV56*wj9eBE_YvTA852P0?Ov^(61eo{# z%3hLezVuh7Xvc_n4rh=Tm!};zaCJW3JdZcud~vSc*yB;agY@4AOTz^%%N8qbt5JtQ zM_{MxBQ6_?S#b;pv6_c-G|!o~JGlxhx7*KE01NQDmtyY z{JQXnV%*l>As{VWaI3|6O@RF6F+wuH%~b3*P_Ku9eR+mGRryoR(@x(c7&*A zEO-fh{3@q!Xns}L7E-`j!TG*JnSxPG3GZ;3M=nrEw@?8`uG-R=fh#kzkEO6$pERLcAu`-gTj+Fv_INDZNjVaF#^bha)W#0M?b$SmA4Jq@`J z6tH&mt7Cqo3^z%(UD~`;w6A1-oP`Jj$deZC#^&jQmeYOv3kS+8Sz(5wJxftM&~w;z z2+Fg@D(?BWcf*_Ww;#X=$$G|}{x!f{nGu5dzHk|eek-B;y=YGI>kgZFdGDOXFC<5l z((zp#X*{r;!oYI2j#GOyxn%%XYSX6(I8W0uV34*cb%%6))Y7NA@cnQ0J4xq@7=2%v z{M&qpn<1h4Wsp%)G(?R=IMs7^D2`9dChfL9Vo$Ttu4_pU+wmcsqBna{CV@}qRJbB} zPer{*Wwqvb=708&em#dA<%gK^G`Sm_E7xZ7-xm6#K?<=E8vPia7CmOALbS^_^+eL& zrD18m%iI@+zrwAf@m0&*)x%+lHynDElM2!bfD$>iopG{y0*L4nV;LJj(cZdL)92&V z^(m)MP#=`ST@MMF{)2g7kv5yK%Xzkrr_j#a+ah6-5F&j7tOj7FkGH4#IVB#xh?<^z zLaX%Em|qxohGMcU9=`s!+>sEm!7Ula_bKr-6}!u77aOM7F$O8ZFm(FNt1onrJeqwD z0YDb<<*gRB@AVj#6^QkUv2$$h`&c%~Y*#(>+VU2+%`@W=p*{BQ7`u77t=z><(v#-x z!#`(x^?I8A0UP;?ujG_zpL194ZDJEF2oDR5)}@Ar`D!Q79s1#d++N#1WUKrtNBoKw zT2~Tvb28oDe>czV-4*G^arDU>@N+7CeS~VXM)Oi``M>#j5%!b)sKaDl(OW>Nf7_|6 zak?h>)7fdiu|ZQsj}<|3dE})5{U2V8u;tI+lh*>&bj}rnghPBa6Erss#YWK6nF)tN zVNY#7hP%;$-ODe)*dcsMKy^p6-MHOD7(8F?eN`!{EYn;HC_$ZhGJ^@OM6KCuI(~Vn zp&i=i-$fZgeW?hx@Wp)_AopExtC_7=0L`+*S9jMo*5Ic$Ey&H7L@ zC=uGF0zY?6e&c&uSp>d5S zF^(Sl4i-8MDe;&AM7VVzD8jSEMX@u^(ha^PCAkG>ne7uvZE42A_i}8M95joI#1#9d zmP?01MIdAFyy&^|quEOrJMCmI7hQ#3xZ3Kf=Vw|JMn*mHNgG8Y<<@^1fl^?qSKbfq0bF=MxVOP)y=L639OVfnF%P~Ys39{R zUDG(XPZ#ywRU1FrGj}~00IU_WfHkJ;Lxkxz`|B3eprP?}4QGzI%+3%60JVLfNxZT; zd)Qxd3fOzvAhY^!_o0*4pp?t1S4vy{6O+N>Ih*j87r^ze$P-b)?;WabL^L7i$W-}S z!rVW!sH@*;tMlXRHwyY!$cJg{+R0|xMpAq2dM*HX5X8PyW4!mCuTiK2PIbowQE1K4 zb}2iocER;-bt!|W4@wlLI1hBYmy-;2mqjr6ku5xYSx{JLz=wNt zC^v+rvc%YGmmZfmE%L-bv&0pGN&o>-u`2Xpa*8zo8WwLyu=Vm~d4EVznFeOAMJ#8a zQ$Ih!idc3(43efbTCWKEnC!`zC0q>)CsH|?s{h-1Jik88jWQhSKDo0MI7t32 z3HygC4URBQPAdYM0pQ_Xk#cOsLBC;K)wK+wu1_ywBh{En!+;YS1Vt5W4%*xFM)0n~ z$$yasXN}?~Rl)_&>KW&~1{6ZFwnqQrFmww1;Q1FOAZ!{4n4cyw{nU?6Am#=I>X4${ z?{mRx1p+pdJa-EyZJ6|Fyz0;sQb+`1D>myv*qzhg&WsYDqNqog01Oqs!zQdz(-kV?HnCoxL^N(}r+~ zn+JI+0EqU#9ptV+d2Fj<>ey05H*ZVZbzbc_-77+zl8-p-`bzh&os~AgpykEIx40CYQuoRCox>a1umdr zahWLpH4p*tD;q%hAgG8NvgpOv+$!|E1Mtw5>%zqVo{_O(IdKy>)(Vs>)3R`f6z|J5 zMhB07&5}OpY|*^SU=S^R%86}LL6!K6EYB-K4gGmF(;L9Cl{SkL6*kjT)d%2RTO zPw0jb4{2jNz`2p+eMNCXdo7t=c1c5JP~Ao*AzkNGo4M1g>w_FuF(AZ+-32H;zNsfZ zJ_dvY1J$6+Y7kDFea6ApNW|?>H{92YDX|a!K+?N-y7CiHAjRi)wa7tn=yS6G-G6pc zZ}m>X8x>JL^Ul2KdTrpAJz`WMQZX#>Zi)8A8X*mIdWY^q{RNC`CNNXeSwNG|$6ej= zF&AO}wKtnlAAxhZ9|N6*AG|bMmA|r{k(h<~ZoR>pe=s@?EFhYPoAG7%*P-S~>vKIc zsy6#U{j7{{6Lmv?H0e!gVe}&yTXLrF2=mShYu!IqfWbMKz_89_UBvRao?>76xp(WelNM}2#lnmaVPwZ;W1 zYydPkoYg&l(C+Mj38ramrEc-nm?(Yo`3>BUu){SiA>bOQK8BHa4*cf^(h}C|7yQN$f>({zI!M# zGcFGRsV7uN*fnh>8DUeuAsd{@OpKGPly zs}(Et;%~iF?1KhC!VozpW-2WTw{Tj?a%M8Dm)2BTuzS-z)&)P!OJo2Vq8Bunt6lTd zFKr)hj2gZCCt$8$L!ULK2@D5gMiVkSGM@nMtizu0g+ntmy|WZq_XC|rdJ6oEsh3xU z#ZI&1D1iQ(wrqQyFQ0^1bIOKm185uIdi-VA{3j>+E$+XfhVp={jsF5ub%Gkzd)$k33k@X?qbq)!Jq0qlyW zDc}r8C5!-+6x2ExlV32PVZ+5xrdQFu+SJ%_u30e{m~Lv-oEN>t8V)_p@cz!(OiD6O zG=Z&SfWe)Zo<}<3-xbgo{;rXAeZ?OT3=FA2X-#nO`~(|Iu5r^R5#4+8;!A^H_-{UC z^W~mT3gGGV3gblnP%b|Iv00@odZAwH`6v|?ndPr{C}2Pd8?N@@D!P)wQpUiUO))Re zh0))cEf-E_s!}M$*@g}K8@FAW1Khe6A#m2{;egCe<|E!8TEpzuY<+&`Ou6xLeIG2X z?sz^*M5@tD`Mim&Fra35k>q?k$6Z=hUfDh1(f%Sg>}{hEFfvngo_mWWAZAjJ6(%Tt zy&RZ2qV$XybRYjY#$LQ*gd7|27#ps{F!cHX3=Y-%T6v`a@9+z53uMFkDx5j-7c()I1e_ zUf00d1~jBwq4SDa?1nfwU=J;Rbkm7K|J>=5MA3v0yXG6Ry`O0DW4lK=%z`Vzmh#n2rqHQe zT_1tG6d|JipR3XKvQi??$^@x~5dctsxh&~#-``ZMK4MWbWOHx+I-N!b-T=5r3NQ~e z%mhgR@WI!-C9t%xI^j|$)~5WfsH&Vd=!wttQyZ)^fQh=pxC3rh0$54O1sh*omwzRg zo6M~wnvQhVg4IB#kdh%FM8kGHm)>eGwPzGkO604Cg%P$CV7X|R9g+e#m^VWt1{0-b zQZJXHH0rj3bF}ZQ-x)moldv1esL=c2Dq~)Eu0dWBoiTW4=)b^@8K2SWi6zZ@YACY1iT}&kI58@@Ti!-%+TT%X z$7qM^3+okPB){MI$|y5r^0X)M!-Xumd%!@MFF=et6m+IDeCZ1X7AC#z+4Y0K=YpR% ziB_}%4Rw{H#yb^y^ey1#n|$p2@e1_Q$(tw25xj*4KL9MvHbVkPIFR9@NRT-bJS-mM z-CXu3Z#ILqH6~AYxf~vT*vbAejJ?Q>#Q;%AGU)#rZ=Do^2Wf6)X>XM{0=Co@Zk6)* z4<{D>>SbvVqXClJbPjNL+&87i+4ko!SY?^!E0qOU?rJ#=2b*n4lcygO2ia{>@4@PM6cm~(xuzXcJ%njo{r)h8?JQ6yj)_i%1KfN!t5^>V9ZYo({L zlZDu=*qQbm-S9C=N=G_)iJXvQFh1skxp4lKf9F?DekWSgOcgnT;5H}kfs7FbCI}yh zN!pPj%?ls?{1kluC@&!KE4|vf_Fw9Uc7MYuLJw6wGc$b??BiH5UwW#gomM;2_hF-K z6#>+_9&ryG0V+86Nr$3B02}lq@H8qTE=3Mj;YHMvNS<_Oq1TaizmKn?StN?Da#}1y z_~)INm~ky7ob;S1)EC8);*Rf1_v^(kITK?f6^bIB8|6wg%Qmny%jY9sN^)-%<@ieo zan_A4JN}Cwg{bF*xryE8>WdEfwEm_Ta8L@@xV^apl7sXbth*-U_QY<5&1)EMy@3rzxwK!LDkr9K$z6oBLi;&HNyMu1IJ!i1li>>)jJw z`&a+{e}(4(kuKhv8l^O{{bwf}m_HnyHE$Q~nWP+<1PnV@ywH2s<@<6CFqD(Y>Q#rr zeM`czXA?VTf<6k_Kl!c;H9|Gg{EcdN)L+4pLLWOe0CIRC2amIMp`eEzkV z>GtjW{AzDRaQwgwXVMmT-FytxV=&fyhVO9{f3C7W>#Mg~sR7Iq=ZW&Hyz~&unQ48j zXua;+QDEA%K4P}89K3^fr7;%YfcJDMS$G-vN49dxX-9^4G|%T1(Ugb3316lEmN5Z2 zJnpZ|(-l!Nr!k)!Ty#}^VeF_~o0xi`ih0|33^aAV6YA_hX8X=6+u_^1NYqHpb+PBA zzHH`Xsmm2O>IwX;-n{c4-W)QEMDpWVYiwjTPTUqk4i_C5Si12{Z{rGz^OeX7byz`; z|C=vT{z))>>R{yGxN}>~@eGxcIY-I>mJchCns&h7tUbO|L(W!Bvv`-+m9|v9Q_U_M z29aSc|7ApvCI80D|I=oP{B3#>M*4m9kZ(_(gsZRqdUA?&rM@6muVTYfoP zxjO%culI0hs@vARDFG6s2Bb*|A(SZ6YoynNE?^HuiioIm=^z1VQbItQlqjKDKolv8 zAQ+@dS3nWzMNq0p_fCBG+2`!@-S7SbYt1#+oMV>pjNh~4@XjF*naAW+{#)=c=wNd> z#5>47-P<*Kiv^{eAz$Stjkj%OLnV~JEcD}W)C7J;lT~tgC4ZFh;J5Szz4{|ybm$Q* zdGzWD>lVRxCq~!_rYV#bcHxyVc5;QsiF%FeT$lTAg?-_2xOJpT^TB?J2Ij|O%*Ckh z+^DE0Q3K6bVbui0?I-u$;dx($<4ZVa$$l-6p674CuXp5Q*H=~JvA=XP(sKW z=LDRnVvW7=*#0W@Re6tV5UWg-3?WX$375B?;~y2x!9Qr(MPa*j<52J}RFVl^**gAQ z(kHjvHl#Gka}GdcFZ?!+VOCiCGxyVx7`A31k`>6!y$+;xHIR>1nm#*5q*09 z$D;?7o{BrmH61i@f^@OuvgGJl&I5ik;7uqV(I&op$0e<&7O(=EN9u0U4h3%19PWdz zM}{MR*ehh^F7g>0T2b!QAb)h#QA{>EW)WUq930weTI`fx*V{+OG7T5zt@4_z-QDLi~Qty@jogK71d(=#SL zHHspVmK^Q=8Q5h1#E(d+ev@j6AERhWf~~7B4eI2=ZHj9}yl2ScA3grU`o9om_rJM( zB4h4BkwG$%i5$%Fh=>2|voz=uS$y6g0^r~DdfE2NFN2Zmb3BgRtt1))h(0nF|K4Xw z-X&vCyk>Ma9+Ep@ee?ruuWmMzv&=fn7AUMqvPtq+x#-p{hKhScpJN!12E%i zywv7?HTvG)!#{ck*u&=ja-#VT=Qm4!VX#)BkC!GOpYC0x2st#LuznsDy+ykc1b2Vq zfm?j7`gs}Xa?3&fkUU|DXXHOR=1QDziUeit1vsBL+@SMEc(>#ME~Z`NYw`Y z+KrPF3Tk&aidnANdL+5vLw)t^`QFf5%oTg=5)B~Mh4Ip@Xvf(ivFG7mvzk5H5sS|IzK1JUM;(@iVLPdb z-Di@-QjBM9KL&44WAj$#QzAA-6UcH-}G)6)mbI2Q*FF~F{XpC23$ zuHa?cJdD-@jYj#J3KdtM-1QcMAyo^X(t&3@5_Tdt{ zb6CS?DJgp%sooDi#|uK+xB$f@=&ZGKUGxYa`vl#*V4ALhl~|-sZ12Ja7b`J>#`=u} zPMsufq^E#7#b$fKdCYW6DQVlkQf4{mWY&8j>h-C?fe$l5WL8^7aH`d5OxGP1m6U0B z?C2qCAW}!K#@|mMV;M$rY~_0_t|`q;vaWH++;&QWB5y;F<>^hvu=pJ3#ihMnO@t~G zIKILh6(jgbeTsx!qp+VgI3BdziMgn~z8RA`WS}ih^#x2H>+0yy)@(UOeH4Mbx3H}| zGn>B4)qXdl_AWHRmi!cVbc30~=y!Y!!9D?(0`R2-a)E$R2j4yV_+#I)=H=?IP%M{~ zS%V5~L{sWNK}8B^mpSzvcvl3JL^>&bEo%bvB?&vKQQ-bwFIn^(F}5viT4(KnPoYb% zuSZ8G(dPiQ-3t#ms+-CTw8yTRr^-0<5>&emFKbYsmM{*H7u^^#igtba_8aRA)QJr|!wt?>bIg}e`EkoQwC z7_@P0Rn$!67JcJ*NFn7b$@Z-W>G<*mT+#w}{bh+_XtO-$2B)q|*By&IgY~Z8UGLoO z%764@5d#blTiu;AO+-0eg8aMf#Wr)~m|1GJPQA14@OUSV?Kri5(`n`zItndPB3OVO zO9Pwr--syW(OVT1`e)~?3oqUkxZ-4j5aiMocyp6cmrhwAZb|-PZL|w9x$wcQG0O`s z(ema)&qKS{{LHG&-CSJyPq_uz^T8;rI-Weoi}1%9A%=A^vJdt``PJk1R17(+wJf&7 zNTK4Z%ABKVEPBT`3W;o8_E=UA)-g3n55r!|BVw0X?s`nKi5d)VkCQ>Ltb(T!voP3v~*aSm<>gP!<$ULXqpzp+UNA9^t(3p1t?jZ0q5v_ z@Pa)t65A(D9P1LFOhh*cDgo?FQMZ*s+wW5>Cg;TB2;1kAPiY2S2|pQ;2q4BTL@=vD zco){+VXJhQ2Q<}1-Hi{_AMQTz4RXf*N8>5>P-SYXm5F+kGLMVz8(o>1% zEeZXJ8p;v`ej&(e-hK;B`i0wLgu!0;m|DwWGDQHxnm^$QVT0*+9W04$;vLdY)So;9T;AWmw;2sIyW%MM~31K}Y;Fff&Lo-w<#8 zynto;okMw_vBJn4Yd|!TSzSA=p>@AGfaPh*FYH=Yb@c3I{*%V)TeA%J-VV{z4qEc8 z=ExrXduPmuIRc8$H6%GTB%;u2NH*jz^JcO6T& zM($conqafKDMYk=$R2mGrQc=Sb+IXE;SvGhjIh$jRv0kb|P8SlH@)s(%I*L-`| zVzEf*@gqGt#)q=t0MYRR2_n5w@{XcH4?}CZv*~^AdSkYMy~FX@mdauvHAGYmI(xle zhe6#FY!-grBB`pm0p{MqXT>tQ{P;nd>bJ*6sp1@=23Bi#TtqLK>VLcR@E6905gkk9 zvo>WwVBV^cMspC7W#APuMotZhHMG6aSxk3$#LB_c0wa`UCdbJ68 z0d>J>n9qGmb3oi9=eISUMhHeGLSM0fJfH!Ge3sA)4dI=MvkhlV>C_wa6xvp2{SuAX zKr$B6PGlJzw(YthCq@NC{KZ`<-2JW zC>lypd8BzIE?A|-V>{e&iaN$wAn?Cr;3mOTh&v^E5pbnn~* zRgDQc$-ak8NM{)juD=OymxROB0Ib)HemXY=9Mu|z7`0@e^)l29$SWEQ$on&&JvbDx zL^#syv11Ss(~`RRz>}x3&A;O=NLS{bByqhxW5@x}P)Ex2MD7e?EiS8Q5uX6h-QIsC z>wznHp2fT6+bmnVYv;W(ReN%sL<3EBHlALrWl=zurcTryCY5+bOE(YQQz{eq46Y+p z(U$0QoF#4UU{C%oJJzOwr=4N^J5ma~hO5lyx5YInkL)D&;?jkEfzvfEl22hJ3O73v#IC9H!1msG|%MG7QoeXUA!Wu0raUQ<8)GoDQQ1x zBieCMDWEGKu(u%roKBkITGF*CsRnsZE%3=v>M7ieE~ub!?rFC{jnTkOloK@~<`eR6`gYw&e9|b^p*v_tLOGy zF$Gaatgo_mJIZ1fj%DKd?g!T`=Ss7x)sbVJaCAu>XvZk;9S-!u(>vSQK6YvhERQ0L zXiLCsvrtM&E(7K4-hxdvAX*H)cjl{TSDZ%moUwu4`*Wq+?5}t$53FlN=PnDAL(&BL zfL1#g_E*N^CxGFF*~223$D?~V88VHCI?vc#QrJ3F)y9iCtKUH%d~>m`Hh%uWog47X z>_cciR$^lAA`n~GqhwjJv!l0wSm?+Mw@+NRg&acH{xn`pWwmQA^cEJJRAaK|0su}5 zwQwejX<>{K19X5`*`^uKNu*jMPV|U|N7mQXZ6%Bpo{^IgQ);2V_T)ZREpP9Nw!w#Q z9~b;b*yzO9KEz3@#&GDU^Wf7Xc^1URBB0J26viek;Oigc-|Z|A14;4(R7AYEs9&~M5DiRJAufI8 zhPn31D3(p7sm*yAhp*yYA<6L&%hnSQg7(h)ux!tMVAb0xm^_@Wrj1&IrYsR zVY=dfb%~fSa4Eo4oee%<3IGS7GMfcfDm=^4K~T+NIh+Z zD>GS9yjR_ju>^}n%!j^;pLhmwZ;}NZ- z@eUQ}s|C8B;O{7FuP=tr?`JoGEg8Q{?^h~S$%lLUZoSdi`W|3n&#lFReJ)|cWGk{> z@~gp?Ac6w27`UHYU;EYynZ(=ngBn1znSsFaXh{iXdi)HC8F zk#V6uNhO(&L6~4wza!g1m2^UE8;M0x6@8A@-OV-XULVc!k(P?pt^xrT3955j zGY0yx4>Btbqtd@M*rKta7KtbsQU%bNpXy0MHxkx<+r<6-UHFclhS#nF^>7fY&4Gjs zO^ZCIpF2?wEAZABQWt*X*7Tac+Q&+zYdf2F5Y{CSjagS)4zx2y%wO;>`W9(Ze0EPR z<#Doj6o+^&krdX&m&YAw+?rL^FvK^7B+nKg}IsJH>rb@EeaV7KD_GP>z6yq$oTz1u&0rF z!z^>be!iT^*r%&ZO=r6+une zYgQbHvlOnmk|-8~mP~DJ^UgnFqs1_@kjbHoC4mButglgnG(9cHegh;j0J=7F>n>mQ zGh*`YZ9^!OE)MN&%oQOl1eB*4~Ao5MGT2>x!QFav0m{AT&+?xe8F4k7b z;rw7Arh`JH!+|)V9ykRCqBbDV)Iufr{oHB7Je(n>e-O<=PjkE9Y$(Yf34)>~w>Lzi zuv{yjBV0xvNDCA}L_P*zQYWYxtIj2zfImc;aiLOwRf@zZHnDN&8bSXSBV~u1(fQ-M zFPD1=pMy1YSkx&gyuRW9_B*z<+;Osd@TUJu9TJx=_TdKe-wxvFX*#wgkKdC38~Xt1 z9|1-f#M>z2xcvU5pn#DMcMO{)tZ)eNW58qd*92T#A@>gmk4jE z;fN|}#fk_66*N78+8`nTbA3%ZODFWOsL!_J?p4}dbz}N7%ZhyVgbJ>`EV{@n%$09t z#zN=5yZpQa1~i>RI=@D5wn!NN=2pq@%r;CT0A2GzBWq1cO0|&!LY8U8?M~p0odjyl z^c|X8WGC{lfs&Uztpl zbrkx~zdxG9W3Bb+)QnF@nUSP;a2yZEN|r^C_?sn>0su0)Q*jK>s9sLe?JypJ_6wdH ztGKst$U|t+X_4+RSM&_BzaJzwV`XI@?hY1IlYbh-x@LRWpi{<9w!#m5t!Hne;;5Z!fP=5U z6%2DxpDijcRs48teSQwkfwfmGAds1wpZ4vf2-$4fw4NbU>>mebT^;GQt&&_N-;BAc zYz@~|${xHmGMxniM^EyRqc6ODgIQbH(#Iy}+t)Jkf7yPjAi z=8ZILPz5C!hd8XN6uYjmUI&TU_Uo9ijnq}RaCT9LAa(y!g^!$h4^(uQXe5FL(2+N= zF-0Nw+3X+BD&V>m5pKdI1{b^gRyF+0UZyrvU5jR;b+U(vS{u_i z+QD^V-9wYp-MN#403BsQP(7VoG*H{>cwsZ%Uo>s$*kZ9@gV2p5k*?~vl4vWWp_65&xjR~p zHtE2N-QLeEWl&;*m|rx>%AZP@5;6&ljRFW&MqCui+?sM)9^!e+Ckfs^lBz}2Sg^or zr9qyD$GSs>9=22~73BZA=qgGs)%e_v204*NP{E6nYc8F68D?)2-d^y%|MZ)+&x=B{ z-s-V+7Fl0P5|`3s#y`m~EsP%)@S1A&?DXUQZ}q#ihYf2L|8bV`9yF{^@`|x{y*_N& zOYV*?5(xTp>p1#SQ$>y5?S0nBQ@CQwrrVDdYHsp#Nm}S?-8o+qJy66IgbIA7Irdmk zZ|1Vy#ou3Q-CY|3P@2+@pFiu4URFi6HJI*6i4Ba%&R!NFK^`S@tq0;wKF4(Ejtoow z*wwfJl-ig6pOw!VdWU^?*hI!x8Gnniq045?r;ed65Q%-47oH@etOzB^$yNx%HU_%) zZe6iz^5*?biiWW1|?_*?rW{^}Y*&^whmIafd zxlbHKLA$e(Wq$DFBt?hpD0dmtc{M*CmDGowwb>?~LdE`&wv&xRSf5RjSnFD|m$*SM zCA(O>H^}hsl6%wIdi$0qyB-ar$lC50 z)D+C8JH;QFc0EXLML|%n)7t10!{=mbnh$n#xICKZW?^%+K#INd*^^I;rNZZ9Keb>5 zc02sE&ehq5R}5X4^T=v7rv$N2%+P#1`Kv|VxzWGy?)Ud8kLO>4yn$&i@BH?iOWro} z9aEW;V_hC-rs8^ZTjS9tE`U{e0%#j5WvS(&%AszzxV<82mL267bg@;a3vjh0nzckZ zxnNYE6Q<-2I4(Ge$smz+g_*v5iw%)=YomFwXx6m zXRohqsQ?7gGwF3x;s1XKghlqQx%U5?0g(po3)<3OdXNMb1pYE0=*Hs5vjnjmcsS|| zR3tCk<`Mo_E0lA9sKlP_>&$}}ZH?~PxH5oxXQK-=-bL3zVNN`! z=KeE9!gpHtX16DqzYzD*3tX?r6<&X2Q?W?ZP{|}!Pf(_whB=Gu@vV1-)BTc6J^K|X zWy=r*s;g58JGa!$6B);okKYQ)UH@-TMg8r=Msin!Mt+wEjSOU>UDoizLh&qkw)tGY z^MD#`L#uE{P|jQ^r~8LczRg`fAOGu3A+yGU7xI69uFgC$F$1}GW+u<|3N_^hLK)cT ziB`UP&0nVPG{W1_vG&B{rtz2lUop~m`6^i%6dcaZoC!O%o^{>)bMeY6$T!uF3XEP> z*)f93uR_e^3$Um$IaM~KuQT8sI;|Ha`b&RyDI*=(SU`G*T5;aGVSVEyK@eM)m5c}}!We(t() z%081ER=Bjp>mS2`tpAIJ2^RuM=3GLa&T4(P3@1i_fya*EJ!m@Zh#{dGM5?frI}=pdsk>f8UCzp6_9d)1VM&zuxHNYwI{>v$nKlXYG4wZrAuiV?fZSBNJwCi8tkb*a2#1K|k znu0!gWs%A8XBNeZjYdq_k!=7}L^x6+F2z3Zi@z|q>jcc~ zi+7gsF156@+W4!xX4jnSkasPUJsUs)eOLHc=wdZ#`oa&c=X}9CzuC(nZAG)$qnBF%H^$OXZbt}aatPO?M7pPpetJO zQH3)jjHK~(6E(a+x9(z}R%A!3*6NMa+s)yt`D8*VIuN1oS#mSQGvDk~N#b$(FA)1h z#gBgkW-BitPrl}nt?50urhR*=XsT2N!HEyKR+4TlbB9lcAH{=y@B2f&!mUf9n^RI# zwpj2YXFc+7)4V{_mO#^5NJ@eIl63=>L>>$`OgKwx#zK!g)D?%H=syGmDNcA>ijsHcJLa3yA#<@|AdhVhl z0DDe{^bZM+0@!n^ew8R#{t|8l6@cLaY+b5fJk8bc*oE~==L!CzY_Dkb*I$PQZiB)l zk4sN3?MBCmKDvHsty$5j?f*exGlLE0jmy!4`?l*J{vs{cZ4{{f6pj(GaIT*1#I5AL z1&rP#Pi2CdG2Zqc%9$8I5FWuzRwI=^M;}2*w?|5bWJ+MTap5Lp$~d14oDBei01PSJ z;_wR%{DE;5{O8<5QgMzntvZrbc3Li32#A+Ysf{N1V_)KQ0z^#1xnryT}G znlh$Jj>SOV=Ngsd2Z623P|Uzvs<2%~Gp}_q=Y662PUjBp?E?Zpt8V^%)u>bky$d}I6Ks9h@>ZNmT`MMrvU%HLST z?*)$L*b2M-toa_blM3+}nhX zdo!unT~s}rt?b~v16Yhov(#g{pI>-~mcSfFZ+Z6R(|cp-dE-PJHtTqZL$6W|9IR6f zSiLyr&c-{su2lc?V!ICTVl+W17?wi82Ao+HCTbU3;xK23-L458=q~>{>N9o{-okZl z=^MuxS&!fHH~yT)?Mhw|vOZVEYLN5R^jV&65UY^7bWxn|6twX6&TI8@CX@^|5N^n2Aai#Me|poEh{Y-<;_JEsbc zWIP5af-QPFqa};|{nJLj{K6C*OyYk~{hYW9&<7M<*8J=OzH^+T>bO$jdnn&bg=0Ud zh8!9bA%v3k-qR>k)Pg>;)ZeTaKYB!#YvxP|Z|J4L8Y4Pl=lBCaocy00(qG@&2gP-> z+@T2Cyx*Z*CHDIg@Fw>llmamJ2r}nTZ^$j_5p-g2G||~}tgSX@f zR9C@i&<(#u0SB0L*bVRUY9Y;LTlv!qC_kQPte9)rdMUkm)z3HMu7!IIDR75;m=@+t zSI8`GH@n(fX1x}i6W*(D9bg`@e<$t~-mvoAnIzLB?|JVdIG(_o$%_$tlCD`6Z^Tkw zy{-Us@k3;5D0;}hm90{Lm7Y%-H8y`&O8&muG?wv#h=X;!GWBGSGgY}ov!yRvo7eD} zLZArXB_GGl15oN%{1N&t$}&zErbpZ=F5-NSCV(?1rp7TNAiipe+Nt*2X4hmK;V5Tf zNRtZPdG7wdfwxtxy1j<;(C%0EOr__FIj4gvJXf@SjCw?wpnK>mBU3f=<5}_H%_H<- zL4%ow`-Kp!yYrOceLBI)w)%9~A_~rdIldWw(o&Sl8iWWuqRw2d5sL`dC2zYUK&J#BdD-HWhxc?jGe# z$BQ&%cPbo{hB=S5ol>-4;a?|a)`sW3VBf>DtiuB~?$~-`;cc0xtKa=6LHW$T+jJGQ zDRVIHj%j2T%pu+miJha+yU*t>eAj3mlE;0i7cVm-Klg|jQ8g-ts=##sK$#8uW%QK0 zHroSCR%xXYpYk^^zBRP~nD^i$`6uHZDFU4zVaDg`jk#ctuDjuN3Hj8Gg~%-%w}5bjc5 z9|JB=O1{S5(t0~I0tRK4@Ys~SF$IE}AGCr!_7z+vD%7UrL+`Dt`nfy05Y4yiIYH3w za4}d{!9z44%v0$n=~ss@3#<}GsilbJcyybvyzy%5Wy~`Ty*R+(O`EA=(-M1+Rw=Fz z0?BrO-3=q*H3e`>7UBQ|?n-0*JX5ewcRmm*DrA)R!LU7(*Y{Y6=)E($k9FQ1Xihfd z>3?q2FSVC|>#oq4-TtKN^Zl&uxe8r{HVqR9R+RU4h>sNbO9vjbGK2)tw;_`Z4)E>C zZlxKN+k2#yhEtFZ9j9LPyE&?AOG~<{B@ejjv%aYhe_|{e|5cq5BaMe3#Do2j?Firy zcO?gtJ^O3sa(P5bV9-kuW~I-n1;!MAO?r2SOsg>UYh2Ay6-OR?KX1lASmT$(vB^lX z&KI#0Xjat2Y9O?vt^^A9`Hh|E4zxE3)ab{=sV1D7R&}~RInk9pJ(w^~PeLu8&aw_* zdm(yChK5M0$FK{<8ho(3;D_*6`!LtpjQ^d#>hnT&X;E=$sIDu_Ue8}?_3h)$LKW0i zeP${S!haMcB^DJrHKeSg=$&qz&-52IU-5!TCNz06!KV)`C0u!PGSNrCJ7&1}yqd3s z`Y&m4K_>+$`|W_TKb+Tby)9WX0*f0v#fr;GF0*KJ%jwCyQ}@#b>uRTeaR}WN=GDK~ zWA-R2I{A+aqum1p8;&u|fJpNp4p9=bP1o#>Fk;-6A5J$gL8rurGjVVZUXT=F-Kd>d zrA{ScSFu-xPxkDL@GQClDzUuW44=>U5ik*~I(}eDzog9SPTdet50ITdWy_rS^gSYVVvMqKq1Lh#%oeL~4Ts)R*M}cd?u;R!7|2(%J zhh4z~(O}HO03DH|wvy|=04@Hv-tlFD{#QSBkAKOS-x6-7f3mVk*J?nlR!P%C&-@x! zJ=n+@*2&ER9&rC*cX24SkpzYvBmZUCVY%rC#T9JzJx$-QSlfEJ|F{`FKJ>P8Jd z#gC<0r)iDjMObMPlwl1O8M->|M-10^H3Z49zWoA1g=XqxRZ6r_l)KJnPClCJHwS8x z!}dpe^aMs}-1*0{V;+yX0)H9s%30{cf0~V09h!|qB51i2F(+0O1>TCZ?>62A1OLcQ zZR2kd(ycMA?TyZ+xa>4w?_f$9mavv)=qb7nLY_LhMjSSj50ER&FT6vT$Wgsb_3wnf zyEH7h+$nLqq{}AswL@w)bcZW^~E% z#Q>^*r&9~tx+qw0j?&OMaW(2LqA>CmU+(MZRNeiXATw+CE|J;iK`k8oin{T+2epFH zLmG?9^Q}|B2F3%y`M+#nBnZUmL$?`xh`4gEa#xInG5KBZgZZl{_xzggSXT$iRKW3T z$6)NeI6C0SQpz>{E5LeBM+v8+E&QRX;Ln(6L^ij@gCU-b=MnRNHi8;xd{lJYAX{{C z5EJI?@cAmQ1YP3fS!4@Va;Eoj!r%Urj2{xlC2jD%cmM{N8p?gyr4=)Pw+s^OU)5k> zujOLzmmxrW8(ii;>(FTwMwqZ*#Gm}0Yj&p;Y|W}p0UT@?*`}FF+pR}y-Il3qC(}Ga zSAJ}8oGOgsCY+83eFzHNs02Ef==TQIJAYuKZ!imD>-V<5`?-Tk|I&b{Q$ElD z3Af{F+b!7rrM($`4pA6|7cn5zPN&Ni!VU(wiqiKVEYij^V17N8P1pf$Q>~%#w$iIx zq)B#4pfYaNi{v9YY5)<9KQzgz-^5;f5}U=U<9Us{M)9vqyp zL+?f&bnztG47Z_+=XH7t3;<7CB!tALE9M?fn8R;q2mW43w^+**bM-I& z7E9e+xQA_8=R+f2L*ZSppOD~ovJA5^qunqO6PbN z?nv)j(?KsKG3q6lB3o(=5@zCGgIV%loyJ-_n#moyX~JA;+C?^dD{-5vms1f=s~UxH zfeH=KoYtpH)iZ+N1YXUuqYWV0B4uLnG-5GbJ#zw=X_6G?-xv^sH0AGEm!}vlzF~h{ zU_vLdS|vAX_jlN`p2#!{ftvmvHM;v(R9rn)u z$4k%SHkJlo(fWd*-GgEvF~mo?L@FK6mNRLK6CJo_Y5%73s_qCmEY+f--L&+fL9?A-_neFy@3EYP^dNA! zI(A$Gn90Mge<-qx7${^q?q4ID=E^9~PtUSOJpehf{rXn3JJP+Oc)_ z)y!p!av2G&=8g-BD+ONtuE_dNZTq798)^#9ER^#Qbh5a0y(aZ1SYFf9cZpQs;P&25 zIF`E$xQkW;%X&@XU2##AsFxVD&_9t`fkftv)`v@F#RjPh6;Z_w*P*bD(?cSJZ)Kp< zg*V)cSp0eA9jF`zV`9-8c1~~06tX5cD0~@M`Av@3+`3rnLuD~gF6b*^2{LNY3%S*ur87QdKu;oj(0i}3141fX;tN;UIOJU@JphlqyW!> z@kzkzi)(^Q_dt8CBeg@vNBB9|Z33yW9@oS%eH-lar3o;-J9!yJoGv_-41}>WhyKh3+fMIU?LyTDTm`{oQVokpKv1&MoIasi zx}7x=!GVSZ%u}s2kChFi?~(}LGAK0lRF<*iPIA^-4fU)7ws}J7s6tyCLM&SG0+{4S zN&xUp(ymxHg2Mh9N@z{t_O!0gp=1HeS@=I+Oe#4i>R;+}%$jDD#2uZvGOp^ic(ulPqE)q|yJ8mIvZ>U?q*7JupjCZ8={X595$=n{+PjV=MhbFfF zdLqU8bUg!_VZlK`g@Axh&Ncf^+l~_}n=R-s9?dEn z?D}tCMkO*g*F=1j4PTDX7%*N~q|&AEqq`|;;4iK5u>&mJ`Fyt|!@H;0 zCg77h8IQi5hCXyJ_qDY`W}%3b!BerO+k)XMBY%!g3n0RFE(h$0?x&{e7)|i!&G|M| z^_{D`pVjbGZCqZgC7Zj%AR)yg@H~iAV!$|f6}^ZRs(K>E&;p*m#Ub3rB@>b6te^&J zP*~H>W3>_w3U`hFX1?Ja?7^=5qih z&|y%?$FkszL$Sj^&&NNS7L;MqWExg}m2Wyb77SJeU_;HF^PIIzEHed1>vP1~N-LUa zBf1l?8zFXd{yAvzLhBCIv4{o+`PaYl)~~a3rqg^k%|)#cq0Rrp)0z42Cm)!lqQ9hJ zem_nlO!IV+LlgN2C1q}Rivr(rWCX!rN=)dDSZ#XB1S$T~0dGyT%^#^rWT~tl3DktF z@TE?gB$yMOCgj^hEyaKy0$V3*gYWRiQf6K zTqXj`XxF0An88(tcy4J~SH>CVKpo4#72bS7JOq>=ZKd{N)!Gp4F{sw%dkZ&PtnKdw zDaP%@{e0M{g1_HccGdCqC_*nHPocEo$Ntx;+pVw^G+IVCA+i-=sc~3Qkm?grTndg1 zbWJCSgjw-GEBh$WtxOT}hQ#Tnp0`_NjzAE~uz(_a6u`q@H!WA(^FhBdBgh)T<-b0? zoBLtABJ#H(B>jH%u$G>hp;reYP#R$rsDYD*SudT6UTYozD><+zZfybaftxQsn_Eq` ziGE$6cu!q;;|`n-N1!~Ie(yM@(j}{rySTLcCB)z{j?rGMer=oqDY`_MK6TSPkh%#EhEd{na8i#KHDlByyx+X&o ztl+Cztk~@u#t9c&IKO#8rVo2YI4{Slemw*by3#)cRlxQcw<+IN3=%2=}5z?}{;yj3pTQeZ5CcQGtZ) zDU>9KS|YnoS4byPY_T? zd1a}IeT-BN`PbFyqIuU%OUgN{VD11vrGmSZTX=&D#=Bkz1xE0`$8fgZ#2lG57uhf2Zsf-AB^`tgmva2``Y_7(=1`K!15VkUr8@vzP zu{`TYJMBMjzJ+^M;IB;tz$-YxFKin46(4>frlUheP4mfu^g9*w3B3-*{fu97@HWL6 zb2v0X49!@yRUO^BnhAC$Yo|A3RX>6CmK=n#w$fzcZ4k#FOs91kg9S7dcHcCKNwCJ?$G7Z}VqD^D2tCX7kAz2~|9x41*Re zXM$?Y>B1#;&nnk%6!JQ>iyX`*Ov&`x=8`#FTV$eiCW#zK7Ze|#Q7Q{1kTCE zfRn14lD~_5>?1R8B z$=i&s1dP7J`t9~O13eOQK@Q`S^lit60OV0OM6yv2(EJigkIr|%U)lFqenf&o&_AS! zAMpzU=4oc)8|q)2qh|sy?xy;?X~nZvfsPC_1n4qxp7Bi;M?K0l1geQ^}nW+ z>R+kh>MD#P&e$d=jOXF{51T^;ouX59?%&Nx1=THNI6q8Z0gFWHlB6sAU&I-ipI0T6 zp-NMawj*YG=VL8Cst+|3)@i8V&y^HN_CpapJCn569D*6+?;G^)ntsWJmAr3-O;J5j+(SoXIle{Q8@OBI+DM|H(;#v`&X zz;Pmtu3tF2>6ajW51xqy+*w$RL77cc?jybGF_pbzYK_UvSWwP&yw6=YzOeVsI!a6X zN3|bwdA&;2<y;Lo*YZ0(t!1=ssT2G8NQ*yMLJceuZ--RhE3yJ1^$Yddj!ko{$Dqh)Em zbcL)z{ijW$UNz2v{7pX3UAiRjZ7HR5Jnmda&wSDX4~tO$@n`EJtxu2K}fqv?gc%CNEFrysq4P`!Ynwp@B?}m+GFLW3nhenP9T)xdZV|Z%*4?*Gr&ZrGD5K0#!8W{fmx= z2e6BopXTH$Dhh5{?*48-RfX-qzUTqBXz9*iso&zrtVwS}uSk@@j69b0%@R2KY*JaO zN&v1o8;SLj96rHM4213x`jqlDFV8EAvskd7@Gf3l7bHC?Skv@N$nbx`DlS(26rwSq z_{W_cj&4t*GCtAAB^$K83cFOKRweYAc$a)6gW5U6R!n0NY9D_rEM~J^N?FVk%I9iz ztms2Sm_%uPiOAL_`-A7!2k7kUoQ9DXY^KfCY3-=3+Xr7$Yx$Ni&P;LvKGw>6 z&$X?4KhrA?=QnfffD&0pOLFF(=qo`n7|{z)LKbm3_h_)kI3!4Nn{e4IZi`n+t9 zNw9Q}N|oUHb9)j8Og_mLrNoY9w!>d2srF_bG|sW#jGs=Cm8vRo7W6?NiEDur3#&~-X2;*}>3^cZj^VIE6B0yfIg~I+3esuAi=(AP2j^45x z8Q#asO8qnFT)v%({k+579{V5#y*XO^AzcLMdbAH)cf%n(ZG|;71^_kn+nBzO&(5diOT3J=GM7)62{|E zWl|}o-?_m(j^i!aE8}3$>ZB4hVEXM%Tuks-vb^3LoYKdWzn#dbUA$QCm`8Udo!ArU z-X_v+xuOosgqZ0WWB3g>Y+SoqL&TjX+HW@3e@;OYo_s49BJXDpxV=f=eOr0@lEI_U z>6}{~RaJPxX+_lkDe2ndng0I2SWLtw*WBisdoCYxoBLf6DwoJ*Ol3lHzh%f=hjOc2 zDkYJ*)N*Ic=B|roC}c^QdyHIvZ{MFk=kb1>bDpo)d7angoY(7OU_PGZoz!H3nJu%X z%x&e4eK$&t>HOc0^7yVp7JT=4-35nb`SML7D zpNy187kG5@ZLL+FMO}%vzh9Ff-N%sQn5r1kEs5hCsEq#j-_JE(g4{y=uY39p(e^k{x5eKc6gHDNCZTz2nQ)qd&j&iQ?Yo{(L2+kgd(|wfILiD%+&e=+X;@ zIeneVq!B(O_|OMvD}T)as{c^>%)E}3=u5!H{?Ri(yGNFnr4e7+uoEA?v2X_J zhgY&H0WB zuLxU5BLlNji?-Ii4>5y}k}paA?*DfjPB|m*Xti<01Zg1SCxh%S18EQzq{DAC#`Tw+ zn@JvJQyOfMOUi5Fk&rS#nT|`}Zs}RjmjdpKuVyS7mo?6W-m|{YciDbSV6N@IhF;7U zN1ak3#uG%2fm6GL>X_l(ks=5D&Avc??(t?gYUaeM^9P@T6Jz3XieY{6b)8EW_N+=AxRXmfkgy&?MfiG+4!LXI+f!;Jh2%*#kr9mmm5Aq0FiB;UqsOjnEA z{?w^`=a7vZn0?WOk@+&AGWfdv4LrK@#H!P_SAk`m@!oJpgXg;o{pts^ zaovzID18k)TPD)j-MTA(KE7ORXFk|?XF2KTBY*pyv)(3da(a%W!}`nt`-yY0q`RTg z5QtAZ@(GVnndQx&0d|G%9O9R*h}zcNLs117G`G)~qK3oOScW;%x+DCJe*Dt8vDQw1 zSB3|fWOxSX@yq=Vr*jslpV9F&7&S(c&6A{%)w~aG;JEh4hjktlT=*NUSMeG$i=~mp zZRanCGoFOYvsV}t)y93&Mb=oU$@Es3r9XL?K1-6mB{zC$(PbWA!4%2ic;9ZQi%UK# zat>ylqYBY3g-YeU;896?^hf%}PooCY&(cwnvVF{7iX+lt>{eEj$piJt19U&Tn{g;p zW+NTBGkc~w9z~F2tLwmO3Bo;qYtXC7Xz_}(mVGC-XuV~AF!WFQ^{h!>K%wQd(;YxR z=F$jY?maZG`g>AU2J5)q+Xp307iQ<~&H-s&;JQtf zIDkQ7+$&{A?pp~i(;uG9S*M$)@hYC-10pBB&-4welJbF6$PZg#9FekB*WMG^HmdPlPhzwxjDg!L=$G2D0M84)?bOM z(gCj?&bo4s#;)|c0eFP!7ngLqV>4j$vQ>%_3V&<|iY$u%J%wsX8~fP-m$j}*lHw(` zYEoM+w}UCev9Tnr$X6;+{5+=RZ9EDE`J9q!Jdb0#pq}IKVmlt>G6!na~ z*euYp(5U-bw~Pc#!)8v};+Mnc%X6^Yo4hHY7xOZD(r%rvGH%s8iFzl-^NuI~GIJ}) zv&_uM?-eJQ!^G%r;p>gZpfumQnaRrLRjx0^skurPSgIvEM`SyAK-JqIRh@Z$R{Qud zbKa|{r2h7g^5Kj58`jKUAG|Z1?7YGjJE9R*p&M}}Vu&1W^p}NfN{(hXL_SKo+rZUs z!6~n?dW(BfYt@x9Rk{1om+}63&Vbrp(rRZmTX5`^1*OWcSK4`V_L99M83mweGP_BX zvg3l{xXej%KrSfi3AqQr~C2cBWLzV+oK^8hvFZ21I#})(6)WP}r zQ8|JZr>~OU@9grRdY-MEoMII)78S_T%IjFjHL|?m3PV|g;yT+697~Mfc;X`7KXdxn zfGP}N()opf`Mq)r)D+D7m(`QAkfayLN z(-{n}xF2;IxmFta9Hs`@5o(tBBQGK6`j9sYCtdA3XKkKljuU;gr<;31`b^a)t#=;3 z%IMo>;R>N1U0T$Fj~$nGI1_(NRPJ@KAL;*?3Z>$uB$#Dx=71$-TWlE)m!qIA+5hsu z(eR;Yn=oB#vboZGmejC1Yk3`xMU7LHTsZ8y2gw^FIbH>SCZoKD?wD2vB@;HS{8<*?mf)`cX7deaP?lEqxKn(ceQyniX)IbSW zBC2Xj?zxY5HPn>p{^A&PpF!DAC)i1B^#T{AcoZ5LDF+pYRYA*$$@88G>F3jUS1FFi zPav3WLLAA;g+NZfAQEOD`H@YARMmBR3 z3}k`Q$;PVY5cwaQ9za2!o&*!H9Z(m(Q&RLrXc65e@FwGlX2oH|>CgDYy8%b9Z5N+* z^a;Fc_Po_D-*M3~Qx9BElkBR;6ti+!a*5zgpYZDMuZpHWO z_YYW3$v!L9aorJNOX;LHSXbvNyDw@*6|`8cs<+CyyHt45{Br|f?Zx9`&sMLyS*D*$ z;~lqqDcPjqICowqSNEPy39tJH>68DG&t=;d_urFU``7%C5}|Oby|VmnDVm|CHcyhd z47|$#dD!<4|A&nY^g_3$HR}oV`}r>BfM2y-3|p@i z0f

hzavd$ByAo|3qQ$owpWtd{SKj=Bi&mJj|Yvuh6=eIhMd69d)+1I_KWGw5n06 z=djcmBD=;8PSQw(fRl}uh^n)`J~Fy2^L8S_L(;4z_bgwv-abt}trB|;W3?T69JydN*ZSrj5#0kSWXiOeiUyEAX&w9{I zV(G7@XwRx>8a#+_iOnQM%EN<65NSpv0_;t^2+Q?75f530Rw~ zo_0+?SB0hDC)Lyx>p##WF>M5x(wfX})Im8i{k124p0V4tYcI96^22gfWCfUTec&0y z)IJ|RVYRokb+jf-PfECwk^|8f((AJv@=G$h*hq*B4F5EglGTchmkcsG-%tEqyNSB!cHLyHVrf=vT|t<4t`K#9I$g9bdw^>;puVn1-NNRN z1OiGm4c^~3n!XY;F9@pa+#7-o+6p$-YVIQjR`$r zB#8mnT)=EvwMZJ6=HRx@S~2I0^7=Nj`%pd|b9z;1DwX0h`ckS<&EGb2kDZVq$o(5? zOT7=Bp)z#{=ut)UMK@>sKB=8edYS5#B3@}+d;&qK4vv0wA=Mqu#6cL;eT~iip_!Dd z>fN{d8d4)DGG6^Qh8iA20(37mbm2FuX5uU@&ScGp#1c*9(F!KoqhK>nM47OC%(J5W z;@<_8;2@oOc66#x-R=%AvMVwabMnjAF@LFzb?qT0^yedML4rd6qpcM~ zWaPgDw$weXj-_X$e*g?yEK$U>C`cND=vALI_sNB`t$PmfpM`A-%-czAr&T=uucq*| zRUTRN;f&|eD9*|!yoUTGUzJ9_2s`0IM{jjKG20oK-#Y($XWHZ=MF$mgsXh*In$f1M zF6_kkOx{kOHQ&k-spl8IJm+Ez*0T~zNg*gInY4&0|87KYJvOq-+7LIxh}vbTJ6)@^ z_}6UUmZJSL^kmG%5>bLBP@m%EC}tzhBfbFgZlMccT|;GvyFK{EwKrJjODmS>sMSZTPlALS9q@9b=qOpV zh^g?Q;jHvaQcqduuc)3N2Fw@9vuLCYomIDu%pc|PEohwP8xD|G1VzDN>(1b=!`&`T z(~peAh>4CkGcAkQ^embccse<7AEQaV9~u#Eq%En}wK9zM=Hkfv+;h@N!UdNrm5r&0 z{w{(sMpu!?T-AEm?P4@&{Tom;U!o=pRVsKH@-Fa5WvUQMBBj_jt_!mhp46AXd`@ev zeJc@#0YcmqQy&~jLRV}C69myj?#4JX9vt7#fL`cM>CN3`&x7v~#$nfDmAEvX44tAp zF)#Wj{U8S1aECO}rD^gJ|4$Fq3Fi@J$?hgC>yXJbQcyiZ>L>Kk_gt}8`1T;7Hkb@1EC2$*rieC;`+9qmROR8!pI*Eo&kCa3402q%c3dLY5iTQtZ?<(!7ndS2 z84qp&{ZoYa+eNUs|5P=Q{C55h;zfarGr#LIhhiy~{hJUaI5@zA0Za{qzqHVBfC^&h z!&!tw%dEi<8cJk*E@@%D7mH?&baVX*sOu8k0-yrTIe;1CZ0b@jxYPQ7Q?37cI*`bt zWb$T0rE{T%6m{l5KzA7Z+BnsnPUt8NeA0zq5Wy!b_m@8L_ogk0uoH@W^)3=0qf}e< z^t4M-M5%=heZQk0-5ZsxON9k-o(L-6`OvvPg~P$iM=(^W-N=aGgclsSgB#Ga*vyN= zA{!3`eVTl7aPFyIKO^{(Ljm!liQw&*drLF?eQ0!dc0%Mp_)~y4UEvYob-FBiUFW@@ zsV#b=#S)z)tj4Z@d5nl$l__aumX%jW@00D9u5Q+&k|i_}w(i_iS?GK-#^xWYQ%`PT zGCY&#eog#cyB~P6;~iVfN=a5$70wDwQo{c=s~Ki(Zf#5&7orjlJ@|z^xXbmt7Rck04Nwp&%(7uj-NMuaReSeMvR4~1{5h}^FM$P46TRP^Jw7k!P%wvaMpv|` zNTqQM)79A!w@0pOH?D8faPfPgsIRNooe>}8kqfINcD`y*VM90GehHd58`L!eNp(*R zBeuK=BkR5e*xikvk;2cQhD$yD5r~CW9`w5URIVfindJHOJa~Ebh$|y|LykFy>A7Su zr?Fisk44+7Y=|V2PM{4etL&VM#?9I2r|Ab{e|!(I!AH&Le7~w$DQ5bkpsGPv{sL^L zRIKaa;fI>a^gnJme=g$~I{>^wz+|EY;!Vu~@Vc8kA#V40ISA>6>FsJvwkck5k8FlF z4pvfUV&mr3gMlV=*B&taR7XyO<>%5|d(!LM*96%eHV5gv!RF$F7v}EPl4(fSB6eRL zjA6VdJv9;!P7dUl3U@*oPNc(ANBT&8fDu)XS-t`dXgr}7@59#qqCqe+CB>5ap&D~q zN4f+$h_kDEm45Ghy)&-5+USkbYreRxXp?wy7`SH_)d9a!vEgQf{EKm36Wke~y@5zC z?lwF($)SH8LUtO^Q^TC0H-Y248$ZE2Wr+6~eWKA&A99+V;F7ZJ4h%^+9~tc11&40WBV^~7h7#J|*h z*FsCIRz^awx?WVtCs50ZbRk?-|13w6j*`Jgsk%0gM27FVr2Fm9u$GBBRIL;T;%i-P{%}*x+_G8R2kT%z zN!HP}-Ldnpr+%u1dVXX5V5w9l4_ejr~ah_XdH+s)BDc`9?u3?O8J%bpL z0w2Db=8zo-ZX~cT5?4Lwnw@TNhi!j|h7@Wl@dt#lkIL|TxV-J}i}+Rm2*1wMx+LB! z>2@rFZPdQeD-y{GyodqSn||B`&&70egY3;OpM*G=??cRCD+(a?=h=fz29^HB9zVmu z#y;59f1;j*K%Q$Lxp7g$y&#pt?3|wlgj-0l2so*mR{gQs@4|j5eS-=f?0EVss&99=3F{%*KQ7d=jfL%P{VScSa=jS; zD@X|xI3+l>5>Owvk3xw|*_x<^`{{WT`B8OQs}sgsPD)~>e~cX!u0=z_`Azu3l7&xL z)j@+n6hUW?gWAJVdW6~84`1w0U#AXV6&LS8$#{~52#4AM|1J;eJHHk1c{nw%PWdjF zShuX+u-wi+g&QT2aBvwAO$z0oNkyM-Th9`8Hw23H<*M1(UP_0akg~wW zrZ;7+V#$0d`*3epi4U8d*!`W<2$}71umK0bZN&NO-MixZ?(}+`|CB5VzjYRsU?42q z$S8nhVjD`-0a;-pZ!a0`vGem_H&ubtHXOmpqt6%EwvyfDgUq2y)<$0`K6Uixk?{>#@?b^6Ma>0^Ba7~C81`&6i+A{c&!SWDg8Ie zAvmidI0npMGE?5JzTLjHb$iO&cPjieex@`n>r&YxNM=u+=zl&OTH53b;cMTYr1VO` z9WCI@w&q-kX4)aZGu$^hZ;BeqO%7_uW-=wfcM1i4@wt0ZTOK{Jwcb^OO`>g24a+T$mT|!8{;3jR!e!LCEPx50*Wr4Q)!y#8Vzp}) zaFjwaMq2W%NfxHMi7uh}vX+Cx7`X^GMrS#V4uS99E;>4S5wh{#a_03ktUG{3r+tXc z;;%+!Q50MX+DHDp7I$(%5DnkA@f5&Pqu+%YHUt7gz5s^&2n9~99F+g@kW_&0Iom#o z>zOIG<5Ha+*~oDBsa%k)SQRqH$0$cH`M&H1ytWGtEIG#I;ou>^^{ zmV^7IwcUF#Qha)e?v?&lkE$y^fp;HZ3^&$=ELicNLvG@~9PgJkV84vS)P0O3F~6b{ zoI*C`o?0BV{FboFga#2kOIplRge9DDe_0x1>%cWf4ntcCJGU7;`>i@i!RGTTh2S_X zVQS%b>aGI5HY<=UgG$in5Dv(el@Ltz*SiDo9)=BCg0-_{Wce%kwy51Fc|AsO8k=Mm z8%bsxA!M;mcwi8c%Q4%f(awd}O(&U?HTX43PCATB-L^R?pb;`O ztrlRp1C4shD$CSdgT{?6e!VDBc;?Xt`wl;V)uz$->x^V74>w#auK{F)N_i@W2pNo zCyy_jdYh3wTV2GW*7wA4@jtcO$ei)hcjJIlmwmA1(jDBIUlY1(W0_Mvj-V1T2MV=JCls5q|9w^SnPHSED(vL7q=*o9u_&E_9(M z_HFNH_ess|xM|$q5;wcenoHjT|HRW7bj9(K$Iy3viElGTC@<>+-zP5zS^Cq+LV#S2 zp(?Whx!MnTE12Ay_a`?c9j69Pdv^+szVq}`HLS*|7ldf9N}e!Ksdgpqwx)NT8p+=K zuE*>>^~VEWCR&mu+KbZlD|Ce^YyL=&V z)&OLVpsz&^_EFV^$C(m0p)T83q1xv_fyH{)Bb-osfFFwkLK1T*Kn{iQNtP%A7q~tF z;`V6B`v*d)+ydU@rDj#L68WkMu-J0%@SL(Vu1}9p zp42aIs7zI650M^d0HQEY%@(UasizG%nzJ8#ywwYPM|nA_?r`G7{NNOYS(_BElC!l= zeQlvdqYz(!H|%%c6v@S&11+z27c^3LANx$ri{j6V7H6^f=R-0F8$=C&wU#$&=zR?8 zo%2=6D3|AVdYS6{$NPa;ARGkb$e5xEgWH{o##x`+ai2*V5~Ni9XoiAg+VHU@ZxsjJ1zgL)r8@MAl8>+*WY&-lOI?l+mx2V%E= zpKu2Ba$kbTkN5Y9;u?t{z{L;ZCpZ9J3juJNbtGeIJdGs`QGJI~ZSyky#JK-S`g`g@*BB!vjMN`jbjYi?qM5jn-iCOP1rFMK0kfD5cmHFwbv#b?`c?p!01OAVBE1GdD!O;jo!^SYT%D;#F+B~RQvwyA{ArkR zf1G_qQ|czYhpL;9zbtNv7@b!Hn7ur4MhXD5u30z(t?be@W`HB2qIf ziB!puM&zc5`MgY>1pK!cIOu48G+}3VU=&B3jhvy;8jp8Z?pwMu^)OhP@wB}q*^Ag! zDt8RS#}XImnqd>93dhS&f-Zi?h{o`u0mepf{~h_^A9S|(OcFydFbV~~htKx(+v|3q z{@vu_K|{Msl>m;geD-jWs~JWkxj0_tp1k%)0^q3=)arL4)6Xo)A=Zt2AQneAJS;rg z`MU(e^q%T=Mtm$FQ%wEo+kAL#kreoaRY?iK_51K!fOEz6si~Dh5Ir+dv6?gdaIn@A40)Ck+*h$ zrqAlOeXFEmAjEMHvPsrf$#|ROL*L@Vf5&!}rbax3WJV^!(~hTDQ{5Qp^00SU10h!| zcFhBOeiI@+X_F$>7<0rZOxV->a-oC24idXh*Fl2+#Tq})S&adQhfQ4J%pUZims531 z2JzcaYUpY<0O9$DbB@HxrLM3rerP~LR}?byr31F}^9v3*GrPuI7PZ=`Rr3qEH8}>v zc+FBcE|0iz!6gBZb`Hb8XH7fA{n_>q%Y#0Ho~XDH@2P*_C7lRoVC@$s&M5c%<6wJ?caQ@Flv%hPJ5?fY{iM@#{LSx8r9BRgaulE3zkPx>FU0Q8yMlTAhbZfS z8_3vk!yQPiC{V?!>S%aO=WbDPbfsF5wuH*R;weyl-^>cIjRFn(OPv9I?2-j1NK$;+ zJ^=MGU6Ra4G!RN*aHhdVNKLVRca|58=Cjj`t~IGUyfcQ#f&2^#u*d<|OudEt98=5f z4^sp=U_YG4DtEpm`=g%3=fTV7jyaw`aYotaQh0gm*^G?$E=&5KO>d2{K;TSjtRiX_ zkD#a_*2BMLhyCNub_*M={!r@I<&f({nVBTmPlFw|PyO2mc>4NRTJ3!O{D-ie%)l@9 z^$V9{0lri3!zYd>+g4rQ<&xApA_d=X5xf7=5*GdL84^@XK;W~jXaQyQ)t!F`T47JV ziD}&DiwfKOrZST>HLvS_W1RkBm{#l8a7-2xI0%rni#;zPST7Ot*&N7O#5?;ut7qjX zm4_d;G(%lJQB1QSpqcTDVx84=><7Olu>>;8r`Mwsw{DPTTzg&3MLWw~?dD(*Jt#e} z2Ows-qIyH&V>Wj)={RLM(M{Jc+=8p^E&qxEXj* z3J|%vt>)L(@dumoTZ&oHh;GoVTyV=h{CbcRsx=M`zu@C$qB_U2)PGDz`$l3fndg6W zAc)MXsIA`$AZK&0l%jSdH+*(CuC4k`wb+^Me%kC_y!d-}TEkSd2EN^ZP|CgT0#Gqs zViy9aSlvi8@8d!26ak2n`E##^e7(BQCz!~|Y+H5SoT?%Z#HmY7mXJ! z&xWuc1ESQ%n>9){)0!4J#iwf06_JeF{B_S)#SecP#>V}}p#UyEEzPti?;ETK7|q+w zW(jTI#IX-o>D#o8$!K+aAj5Yrstqt#LoPFtvs?zaUitfZZ)B^XFJcuoy{dt3=oo#; zjABB%5hO)ZxNoZ|eweu+{t4~i?K3gO%GXhxN4o-@hb^)0*RETV@cpHzqwI0uNZ}eP zeFub*S?CikPumcj5(o$2OqAX!IXrGALuu$@2qc+xCMP2272HZ~k*b~TUjQqB9L?DVc-Z|P>Fx)?kFx>yO z5V2%%im)DU!Jz*7{o&JUr6-w^Rli&(Foi`F1AwPdA8Px^>&=#?^$t`=LyE;5f3G7Y z`kts2odDrZ|D;FW-pL2QBX4F`O*Mw8_u>g+sF|#J0N-=I_P;PPOI?>7!{zF-ifATWY@I8f@Wy zAKouD?Z-ybsEaHfl&lh#3gjd_US^ruW~veDd91nAm`GdhUP(~KFNIQfr<0b;>fH_F zfl*b6rEAdD2A02{T!};8pT@H4DW-MIICPF{=PAM|quTLHDdpd{6;Trf4O?w&Q|Ayu zdUuXLBbDwSf3}(H+Bf9qeU;=zm%yYO+p#%=-9VI?w|t3sk${FU;0poZiyJUNTpY9@ zW^IF96iYv2jntHDLNAsbz?1~;33cY>bzDD%egk!s;kP8{0N^O#pJYPRTPlw;shrUXhel&qVEd^Qb!3qaqlb-gmC{y?Rmo@P=A$!ua5hDqM=V_TI1PBBt92cl`~ zwXkUpHv2~y8V=gqB2S^eFZ7A6PNLu|{frMTr0kO~06q^>y`bv~dO6}*fL`VI66|@K z>cMSnpxV-DP!~UrGn_8?KGP>gpF|xj_cQ8UNTdWn&YI+fwIy$Ovu#S%&qfg?IT3BH zAaxciri~My`Ovh?*+{)`&k{K4{Y3QC!)53Cr&<4;fE8WvPqHE^E-@wW@*6rSkv`Ji zJ|8j3xsV=wy9gJ4yJ;r-yS+a)=n}q`f!uRc@~7=f0UBh-hsB2I9$s$9d~8Mg!lzaF z5|0+JN96HT>+#kHimWs2#xbaXx~;$Rc<$c2T6jZXewea}E*`Z)(KT$>^FEhHTak3A zOJ#f-d|Jfuhx1Nz=e6KF;7OX>0Hy!jM8}yyYNUa)iK=8gf%P$v&YnHG#cze=Y^(y; zICUNE86Io{+NcO;Hal~)aJ03>nx_UL@5wPD3+lGkZs9wL>RJyv0s9I15cM&ws7G@4 zq0*y^+>NI`oFb&_PYYcHX9t}U`ik;CICKC{BBD~2_n=e*p23Nx10Z;ArtimcnW(`J z0%A}9Erw8}ARtkV*f<9F)}BKzOe57jK>@TJ(l$`AEr*)H%%f`JErE$58wqlALK#W+ z^_a!z@-48)i#wcM>205nvgzYtyURUdJ&GtHERm7wGD2F202IrdpO&h*zEAENJHM01 zNw;42ld#G}x+f4?U0U~F)Y|D_gDo8{H2CT9OtJZhYRR4lECkGl2^gPRFZ#zBr5YRa zvp+00*UuW7)FK&+{y-WbDoog^vvIGqr(oeGYKnYUixnpUV309U4tz7`9mMbY(kJVF z^=!3}(OjLS7q+!|$)K#>Pg`=z-VJrg#KcUqHZ#654Twf-0I+q5w^2+Ps{GKH2I?Xy zvU+VwkI5T*bQ2{^)_hw5^Lv!^esd3x!8MR$&G3N;QLTF#hBmej?^i=6jVS}0)yGMz%RE!*KZcJQgPlRm9>9Co^pHL& z1L*h&Xw3ru(q;IB;Mro7Ed8dGC_uu20*GwAqVT??E=Nwg%j>}2m7~`vz1|j7+c#5S zLI&Ne-54LWhI1SrG^uf-#eq*;%Cd4}ju&G&Q7-79WXC`nUnu-O?Mh`}!X}EEJ^<_% zL7&cp)>)-3Q?)Q#6WTlMfP`!F3ad(aed3|lhlx$q)vq3Jl@KefNDG%PqB_15A*@A- z15R~Gu3^?MV2;O;S#QUw*;zrBIRKBG>Jl|qhUa9(8n*Lazgt^w)) z_Fe{xQx9;L%%0|*ZV3tEH;VA5%QL)b6zH*3jG>saV;W&CXRe>CKQCOJtpLDS=#>=m z?TPv4{0Uu5+ywRBJ;T)5nf*@*Ulq;Fo~E510f=03_8t^2^QL_giWNYo5im`sgkRI9 zl`2O13X}~7N#%_@=3rS?sW}_eM}T~juI}~h9ev@@5erjQH9@E|A}KQ2eB6Ob%c9kV z{K}O5|6l!*qCrZ13@@xqc0cKnMvNf3&M+O*#4P+%N;d=law&dJ1SO)=S}6hE>%m~E z>rNO-K5wk2okFI-matNiwM5n +#include +#include "../../vsgl2.h" + +using namespace std; +using namespace vsgl2; +using namespace vsgl2::general; +using namespace vsgl2::video; +using namespace vsgl2::utils; + +const int RADIUS = 10E12; +const int MAX_ITERATIONS = 50; + +const double X_BEGIN = -2; +const double Y_BEGIN = -1.25; +const double X_END= 0.5; +const double Y_END= 1.25; +const double X_RANGE = X_END - X_BEGIN; +const double Y_RANGE = Y_END - Y_BEGIN; + + +struct Complex{ + double real, imm; +}; + +Complex sum(Complex r, Complex s) +{ + Complex result; + result.real = r.real + s.real; + result.imm= r.imm + s.imm; + return result; +} + +Complex multiply(Complex a, Complex b) +{ + Complex result; + result.real = a.real*b.real - a.imm*b.imm; + result.imm = a.real*b.imm + a.imm*b.real; + return result; +} + +double mod(Complex c) +{ + return sqrt(c.real*c.real + c.imm*c.imm); +} + +int diverge(Complex C) +{ + int i; + Complex Z; + Z.real = 0; + Z.imm = 0; + for (i = 0; i < MAX_ITERATIONS && mod(Z) < RADIUS; i++) + Z = sum(multiply(Z,Z),C); + return i; +} + +int main(int argc, char* argv[]) { + int i, j; + init(); + //create the window and show it + set_window(640,640,"Vsgl2 Mandelbrot"); + //Iterate on a region of the plane to + //draw the Mandelbrot set + for (i = 0; i < get_window_height() ; i++) + for (j = 0; j < get_window_width() ; j++) + { + Complex c; + c.real = i*X_RANGE/get_window_width() + X_BEGIN; + c.imm = j*Y_RANGE/get_window_height() + Y_BEGIN; + int n = diverge(c); + draw_point(i,j, + Color(128 + n*128/MAX_ITERATIONS , + n*128/MAX_ITERATIONS, + n*768/MAX_ITERATIONS%256, + 255)); + } + //update the screen + update(); + //the program waits for any button to be pressed + wait_for_button_pressed(); + //close the library and clean up everything + close(); + return 0; +} diff --git a/lessons/0031_mandelbrot_colors/readme.md b/lessons/0031_mandelbrot_colors/readme.md new file mode 100644 index 0000000..a84d8c3 --- /dev/null +++ b/lessons/0031_mandelbrot_colors/readme.md @@ -0,0 +1,14 @@ +# Mandelbrot set with colors +This example extends the one about Mandelbrot set adding colors to the image, obtaining the following result + +![Mandelbrot set colored](./images/screen.png) + +The coloring is obtained changing the returned value from the ```diverge``` function: this time the number of iterations where Z becomes too large (greater than RADIUS) will be returned and this number will be turned into a color using the following formula: +```c +int n = diverge(c); +draw_point(i,j, + Color(128 + n*128/MAX_ITERATIONS , + n*128/MAX_ITERATIONS, + n*768/MAX_ITERATIONS%256, + 255)); +``` diff --git a/lessons/0031_mandelbrot_colors/vsgl2.cbp b/lessons/0031_mandelbrot_colors/vsgl2.cbp new file mode 100644 index 0000000..f1b184c --- /dev/null +++ b/lessons/0031_mandelbrot_colors/vsgl2.cbp @@ -0,0 +1,74 @@ + + + + + +