From 758435fd63d29e01862c68a46c7b85ead848b723 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Mon, 19 Nov 2012 22:15:09 -0500 Subject: [PATCH] draw spinning quad with a texture instead of smoothed colors --- assets/shaders/fragment.glsl | 5 +- assets/shaders/vertex.glsl | 6 +-- res/drawable/texture.jpg | Bin 0 -> 33825 bytes .../holtrop/opengltest/MainOpenGL.java | 3 +- .../holtrop/opengltest/MyGLSurfaceView.java | 6 ++- .../holtrop/opengltest/MyRenderer.java | 47 ++++++++++++++---- 6 files changed, 47 insertions(+), 20 deletions(-) create mode 100644 res/drawable/texture.jpg diff --git a/assets/shaders/fragment.glsl b/assets/shaders/fragment.glsl index 35ee8d4..bc16219 100644 --- a/assets/shaders/fragment.glsl +++ b/assets/shaders/fragment.glsl @@ -1,7 +1,8 @@ -varying vec3 color_i; +varying vec2 tex_coord_i; +uniform sampler2D tex; void main() { - gl_FragColor = vec4(color_i, 1); + gl_FragColor = texture2D(tex, tex_coord_i); } diff --git a/assets/shaders/vertex.glsl b/assets/shaders/vertex.glsl index 2c1f708..42402b9 100644 --- a/assets/shaders/vertex.glsl +++ b/assets/shaders/vertex.glsl @@ -2,11 +2,11 @@ uniform mat4 projection; uniform mat4 modelview; attribute vec3 pos; -attribute vec3 color; -varying vec3 color_i; +attribute vec2 tex_coord; +varying vec2 tex_coord_i; void main() { gl_Position = projection * modelview * vec4(pos, 1); - color_i = color; + tex_coord_i = tex_coord; } diff --git a/res/drawable/texture.jpg b/res/drawable/texture.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9d5c6544a485ef1f0817c2de12fa38d54fb0dd0c GIT binary patch literal 33825 zcmb4qWl$T=6KK%l6nB0Uf(IxTv}lpw76=5lV!^dYffkBOkRnBk1P?C7wRmwYP+Uq2 z6xY}Phd1x@+uND@u(L9EJ2xx0Pm50*fahw;5M=-c1_nU&-vT_X02BdOn3(^=e}MfD zaqw_(u(5Fno;}0GBO)LoA|xOrBqkw$PE0~ZLP+?W`Z*Z|B^4DF5h)EVH6<-MB^BlW zgkWI(|-UVcGmWic9 zRR?5&}Zd$Nqao zTG!2R7yjUff%co;X#~rP+CWQNjpR*+`c;o3ZT;XS8EV~*$G`1#^9k_TA_n-mBRQn2 zbkuPRTB*7$T%s#Q$G?sFtgt^pDfChQW^jw90f!sJ!s~Nsf3qY1r81W)twC}`L9m6I zC(cET?UHSRy9XNWdN}q<25e^+V`?zmcpr!y>b_f*rR1L`_>3&+YxOhI{4_^7)>clx z7Y(J4k*g7E$~TT>xd41vUW1YN_7`tKKR~r-2z>JT-8KS7?PkwKsmO~ZkNg|belr{p z@q+-YkN5t){`c?Tq)4|kwp_!DM@0J3jmyaEbR{!QVd46htUE?w16{!%KO6hcj8lX_ zl;(10gA^xeF20PJWH+_NxpV(T6Qi1&69cWC2fs3n&QOw1{8n@4mP4I^bD@(ED8UeL)V^JW&3W-nl&FIf5} zdyfuYhe^#jtu^0_-a?!tP*%DI<={73Jol0wQnmxzK-IB#zRJUdF$Nj}LxMbFYv^IX zy=;NfBbPmqgse=j_CW`^*7;hLWJnT7em&$}&@=2dQjR;WiMB43<3T3t#L;FnMzXbP znhN+w6!0$ic#lqACc?|XB&74OMX}t6-OVvY8-=-X(AiC@*}So~7k^?AFY|u5ddM~M z@bG58EaZ)F`r9_q_C%e9%uw8&&Xw2@*&t;IrxO2MJl(uA&^uXCH?xY}&J^@8Y{k#i z-I}!cR9hYv3OG~ZA z$}eyQZq5?tiQ7r>(Gp>umKc@d1ga849@pZ=dTwg!^TqdvotJC``5ic|j)HIbJF4?X z%MVk8P{q7NZb0`IY_o2AoXlz!X+jLID>oqdvjoF^_8cX%40{nhO|#Dm11e+o6muqd z4MnN8_@mGJ{W*HC$#l#5pkAZ8gLAKDL==viDk1zwD6_;O<9`X{rY3}ES|>vqrTp0?w=4r0ecIZ> z^K^!I(^G?EAOP0H!hd-#UI7*y7K0UNQFAvDJ`t$kOrI{-6htk-Ri2vYPZ2=C(|3_L z5;K0=QLKcZ^pHn&%#Fi?7<5+lhWpTr&|M+tvMVRLaY+1a;|JwwyMPE&(RX6n>J(Zq z$5Q$}HkPJBl~92{Eeu<{#`f($v8heoR(4XABXekHIh~HYQ$xLp2?zV!Zi6GKDpU39 zQqxsYc6qz92Kl(E5!q_ZSi|c>$6<=FpHsrpvuRYq=%hgmq!_Tm{Ep13iy_bw3ejl} z|6MV5<{*?z;-N`NJ{f@Rz4>~28}3}4NWd8Gl@PpyQ$cOb45hu^bJavp{3lmlL(3Uwy>tY%dih& z=a?An-f59jaYD#c%L}h&tYPsHm)M&x8>vzt)y4{aUk0c1G}SPy*x0k7O_;lzD>r|) zs2jswJ`fEn0g>5K&C{lz>;ZR+?jhGp?U{3y#Hm%96h@tnqI|aYRokVim&XbU2Zq!q zJ`}ACp6+GfNQ5KxJeyx{Z@-rOZ0+!o>;?S(l5wMED~B+<$D69r7~379F72rm{W4v9 zCZ(aNac2Ah&a8BA<-4SO@S=Gm60WE}Cp=1QGQul#8x7=AE^5{7I`-(i>JO?yJ+#^Q zPq)9tilGm%7G#Hko^wTSLW46x-MXn+9!|gK*cH0A$&4QC6cq|df2jIJsQl`6l4ezR z3uF9*@DDmGOfTu%w!E@BCrJ}9s-!%o;E*Q`|2buR6fhRXKxQ-1ZN(H<@dQxPQ`a?2 zC@fV|w=@6AQ=7fK{l25~&ZBmPXr{ogV2j20>|~ZI)jlD|S_~C{9kHU$@e6~7 zb}wK=Aphe4{d?(vS5Uz>32J=u%?zGJ0N=%ME#4=9cC1ETwul#shdsUSY*d73Ob4Q3 z>9%#a__sxh(Whl2e1PWSla76wj-n_uC>f&l1ASVRQKrZEL%Kze1zK4+6mI0m4HCA-U_x^lI! zx{t(N$k;XQwdzE@-KbWvgnCQi!hiz2j)y8Y;IYj|g!=1)>K>5?d8qz^@r2g%DS1e` zsCQkv9ae3!PMM5bUF_X+zPS1%X;6e?g-Mpd&4D)?fU`p6bR37JQe854GU_yjXlG90+rFGFJWTz@ zK@gIhAAl7|?$&$`Z;Cs|PtTU9pnBEjb(YK(?i9_z^J^55Ia%Av+c{4oz7I^Z6;3~Y zpz_qy&iOt7N)py6e*&PASJLD7s)xMFBCF-PnfFVj#(DnUU*t*;R!gcsMqnvS4dPaa zBy2%|i92E&3_lIShVCP{C9QeBaKCNJO6S%}7#n7>@d)H`BCA?t8teujS_eQ%DruQQ z+r~C{l)hg-h@ey09G@Y(-+Orly71#(&wnL7518rTE9$4tf^ZdOi0T_i@Ul`97f049 z=ILU^lCohO_9Y(BKeEYd<@iamQO5A7Hn25CZQE?1X%=y)u_kB+vm=$V)nEV(YFcAm z)}na&<*5d~2Bd=125I2CTxO))SeDD^veJK`vF}N@-eX@`!|@3_S8uL*G|$98@zO9bhtkkA%uj$gPUes8U`ZdiQK#7q zl&Utoi)9QSA=wB+TZ-51{}<;*#mPhTJE?-vpcZ<$gK{W~dNW0-ly$kd`0JZ?s9UUr z4JJGC#uHR8Rz{pYxs+6tECS^(t2}##`a67Y?W7gyXzu>}VC;xzud*~ z&l&S6wFXOROs0YYKA-3HC7`LHn1}HX)Ha113^{CnV|)evJOO&2@3K0Slodp>VKv0U zfpKagA7fGMq3fQQC(<@_A#piyB_@HssKQbE1ln<}vJAx~oK?O#l{2J#%YTXDF`t%~ zj68eBw??ge03;(qwfMxtUOiIaeBb8n(+NUn1@@&~D>$dUT1K?7!zjKv1kcXGs3JJx zV>X#DFnh~Nk^nJ;jq)NGX%8cSol*rvNc=;mTEL_{by8oRcm;W*?ayW&7oCE??Dy|IS#^SR`sREOi~$ONug&wOUn zYoJ%eW8aS)_|KN?oxjB}_JUupqcuhg@IHEYQf9vtbA1+$yGIeIG3Og+Tx?(F zJ;z#jNUkpVJUW=hasdQey#cNdOi1dp8`Ij1mD9)d8LQbRz`_gj>5D*O;PvGd3iN3h zG=Jy4mwW3twg|K}o?S#ZHBlqZM~cB1%kdGUvBe6Yj5t)#l~J{N@$*3_C&lcp$kbBN-3KnTmJc`osG}BG50@4gbdiH}tX_ zhaY$5UMl68I?-8W@xe6h>#xGFZwzim)A&tyT<7oIFC3vXOA_NWcWomHV`(L zdb3B9q;`B&@Nw8rKOD<5f%*cILSr6#r1);ui#k6lIfGO5y6zKT;^jGe=NPG$Q(z)! zB2?-Cs!k}(&3d0=N5gV+hRYC7=r7}#3olAGr;>b+I}IZKHtQnR*s@|3J|56uQ&T8Z zWU>}=2$0p4$0kJLpEQfzow@55huO8+9Y6`>)nD3$+s-V@4l^gaK9kA~SR^9i)NpoF z4ZhZ!csrq#GjHh#T>6f(vAQqyYJN7{)%jxQk-h!haM)hedwyh-eauTkZ+*70f@o{a z$OYW)cN={iYs3&+tj`90#)cf+YxbT1iZbjxTJPMX_^S89^w1k)sn{~(Ul=y_SUI8h z|MHxd8E;bA3sAoffLNAcKYW||Vz*pgIM!1zQcaahYjo3uhKnNHpyM}9_cp*Dr-bC$ z07&(y=gT~Sd+--f0#AT_4vjia=W;4ivwJb|9d$p;*=Pp~vmtWEKvNx7g&(DSGER7C z;2eMy9{x^z+??D=lx08tY?p~n#R9Z0$gasWrS`3!+Smunni5To9o!y#BJpzioX|Bx z4G_t=OAtUem8F)UuSaa+O8jf^l1QMdiKl2k8{*)WQo{S<;8zE=T{_R_{^->1isCtw z0Rx$wNlxdxP0ihrqPX+Fc2jfXpCB0+W=t6~lO!7`G#lK!&rM#+WaT)1bdA-hponfbvizrprmotNM~uI5G8_&+mdz|^Vr7hfX9w}l*3e=C{{)J!~Hn+ue< zn)gwPO1Q$p91D*7CyRUeQm-2)`XAcif5Un%ozE>k?c_)p!KJm+qn&I&bxx3F)F%St zFV}y)LYob^NcDV@EI6o)2{;-1h zFTqwR=Pn8MCa=i8P=j*$T5{1h1?scnMuR%rhUw8_418`y!sqylOwF7j{=I|x z0q91msqL5NafF1-X(Uv#oAe)MOCOzEo&Y_OWk0|;LsR83rN!KTA!d>$Kok_$IPic= z2l52Sj<30UbgxNsku@u#8k2lX+la}nV0qi}#ku_J>sr2#EEMRbJ0hOM5*nW8$6o}8t3KnR z)Py#!bWdZ`|f*Y`ZAxc&P}oG{kLo#cEE6*lCdN4=YPzJq?%aa?a1uTx+=m z8RahD!!c%y1P*x_d{=&`Zu>K2?Hk?dfAXPrOuk@pKz`Z%8DD6uq)~QeF#6&=C(+wY;g-3(YXnJa}zUUu259(3aBq1B6tEsH)AMuRh`oADb-L5jDOCGwlmWel?Y@h zbB`6hwz^#Eh;F7HKo-A-k7tx0^;1pLnhwACObz>_ngpNiUS38t4jqr5K(o%A%Y-WO zV-)n1;0n_i%hvduD&cOEd9LoMGFWEpdKUpVCDvqC)RI~|i1X~6rmjSB$WI(mJGyXt ziH@M96lia1zbn4s_qJiVT>Pe$I}5`9$_q0pYWXWAXF;x191$8Nk`}ttE3t57@Dt!+ ztF)p%54`XNJMGO549713vr;D+;n+3(C6Le)F}P}h3;vO>>3zxL^PjH#H1r0cd^=|ZZJ;hj!SAB$P(va%HTe}*H)p8(Aq z*S=N8;%)xmsa<9IZ)H|R4#1LF16_qr9Zl@**$aEE}q_)o;|$?3d0-bz?>^i?~A$UXKgb2rfL?Vk*tIr?(aBb znxZU9({ldanQN|^9<4FwY}Hs@jv`~aMz!Atgv6}(o}hfD$6H;W ze2&Zzx2m`GDEnf3btw(eH8YZpu<~)|f29%sU9wsxc(jRHseKWKj`fHP+p-3w_+KsL#GA1jF}QJ!=+8bozh9ht5c9^h)J zVvR>Lq}=q=k5hMm8Lp$@P#V?mcoaHztdzA$ZEv-@w4MN3ms@fAL+#;^b1x^FvPt}e ztQ_jsQNu6e2`w~7$sWlUI$DObPhXb}Pr)jj-m03sZN^{6+gHjYj>r&{A{&Tr_a9u7 zJ9%ZeOGrgbWv3eH(#GzkZA8TyG)BlmbhIkuT|*SAK;v{j&?o3w(1PW*#r< zFkP)Q)#~~sBRw|uD687<3x*wonD>MuT4TvXg{2}YECdJ&7XE-p((KOzYE#6iM6m#lYBbJbrK0 zT$&h^?P7?gD;T$l81vB-tny@o^@kJ={`{A{9X0KCQ-rnWe~p^^?lCI{EppZ`n}Rhs zvn;9oL6LblKj(8tT=wriR`-UJ+o}kcB8|Hg;>*H;WP-nyoL5;|0XbpoJ-tVFpo1Un zv6_%qN~V9K%(IN5rqwlSb6z|*xgFvdBfebkY2weSM0%uK)XThqYwL1YFwAH|$XR>X zDiNq~h=HD8E3?3#NP`rzGtWDgSGF^+%nZEW3Cb_=GS)!xkK3|a679AD<1L%>>qNPL zlul!nI`63b)NeQF1l{T>SZ|dz{zcQ);loK6`?)Jw;wAG47e}mM^x?Ro3TxCw$|`-r z<#t44)T+sjTq`G;(@Nnm&_b8bmOu5pRXPnbc~}56psSpnrql{@K?HwH6nCu~m{_=f zOs+3>+C%OC+I1arHJmfB|Bjj7D(xwf4PVi$ipaVv7jcWn?-OKt1v5J+EYEt~{>K!9 ze)uaD{D5Q2vOh8Kvz|Kk7tSJ*%B-&U?H3({4{m&0VTNr*KMT+NQ2TOrC`|iMcVGtc=H&@R zbYwqXzoT~|_>f1vZ2L*Tsp=paR&X23#1bmd+!%TFfMzV)9=2F1($&ozV3JG7|J1^R zA;z;x_@{R32_O)c=Aiv+R4GGuSvk&+GvYnZtSJ}EdZ3&0b*D(xJ`Y6yoB)ZkmuN&- z)yOqsRIn0;uzpel*d;H*OT;aLYpW1k;$V~*@J^zRXx7Mx%e@t<6v2P{G zW3XSX5;l=;JyNz#(;1}`&ZN~YlLH$OiLZych0j@1<@{HSE?#RyCWAGa*ESHArh#}LK6J;`LJAz`9# zXz+?xg*D><@|AUY=Z746cb?PjHi3R_F|+(%jqYcJad}%VyMzyfq^)`#c5-g}6B%kYE&+LSq@&4) zxuT>`gV3|Vh<$rFRV&M**gD}bbw!&nJLr^My0yfIlJYy3d+pbiKrJO1}6CR03&i(99TbU}JS<{}W(@VgHU8ZNqjbbRE3$fcAT`& zO}X;(R7dYfJONIrNbmUz)f@CxfVw#B!LPxatE)K=&D{;*TOul4x!iwIhmP^81s+}d z8MDKla`vrkgIBeWi~LSyQH3*Y^qixIMl9n-{IGmfE}vq(C(L~BY&qy|QwuUIxZEe9 z6Kz?^Z4eKN)0-NgXk| z0MeX5!|WxV)smpW$g(U}Gupwa9x=~uVld*eX`!Q4++0210}Z4TbrBu{{4(gQ67euV zP}+tHe7T9zL7+~EtF|RdBx8l`CG21oWszXJ*xhGiY7lDoKGhJ>=U_bWv%u#9amDtV zO?^3>$phJMyq`}Ca|Q}V+J@Qqq|}vJL!8s<(prI}%&Og~9k)X9IuAKJ)B3xk*xnyh z{xYG`^9A+Vn%(^yyMBA56^BZGwdAQrMRiznJz)N%w!$h;8Tj}ZxLMAZyp19@cy7ch zDh}Z^w@Z){xsiGTn2K1hg>e_vX_;VJC1-J_z$srt?fEuNuP%H1E!XefZ;sllrfn7b zSaGC7V;02j*Y5(iEcSVl%wr@o*zDi>%wo*fW5%g$B$m*rwY95RCM9$;u4t)~ z=uBnUp~5hiD_-7G-Ia}D6|>tEN#oYFLcW=)!jV)lm*bbUO{d<-RUBT4iTbOoVKnRJ z)53=M^CvigD?gj6jRMuld!fmvH~v;4-PFGN~-UWBJkpipvY;VeW$mO&}j2v@;zywW#{ZVnb> zGHeEu?7T{He<+QR1;AvQX}*%*%DsEB7B28DvqIDQP^D-6S(U@)Sn?WwKOlW`jmcP{ zq(vy~-+ehor$e-)gGnQr5esF!)`ba7-rxk16;;;rD;E$*3>#Cx`FiCu4(+*cec-|_ zH!PWM^ZBb-n(0u%u41i)Sw%!Gt+@pH4Bf0f4|b)_QikdU$|>U!__e?n7vDu4KM1zG z!E8bfORu1w086*S1=;LQSLguhXP7F0WFO28q)6V;$IYZqoL>liLJX_vrAu^yNMFcj zP-n!WO(_B_n|vI0VVuti-se-FHO4+VJDn*KMmv7ez@VD$?QVSF^AwXIjiZl!#?3l= z*qIlJ^R~Uoi94+W(?1Q;F>pb+zVh&rM^cRYy>Li=*!h4;s@Ukd(OcvG@|xe&3$hCc zw3Cz~Cr`wr?*hl*!Gl^UOJ6Tp zUxhE2__eBLoJ*n7tgqOd2Vx-phL!@>J@r-FF?#6<&|iL259&pR7U}962z|3DVUE;w z(`89)1rHQ#^}2lCohQqC0_fFeeT)H*c@Dnrh@Gjgl~H{AZhBFc($L{QHn80~rB@%t zM4jCxxFtqrN~tZyrX%VZ;!jr`+eyD0($I1&MDPM^0i1g|oKlLqHN;K23x|NI(JS{S zM+4LXBQsdgd&k2AXYOjDElMK!<8EpRbqqUTy3O!b`~%uw$$@d_E6KUhfXiPAlavg8 zGboEM7kavUh~CZ8&C{>>;iOtxS+6nduJmoL|Jm}P+7YzD{i@o#s-Y?d0BGtqx%>0` zW!k>&8T;_*o9#mm+lp`=FdwHc5UmUV6ydBd?}d2S;hqgk+}h3kM_Ke%UwIg^8cax; z^fDf}7`yrexTk3xzcewA+&+2(EHPdZQne$|ue zYRKcCzkd2Q%ENVWvr)eDN=sN0@yH)b;>$iO2h-zEGYbY&b_S>Yzd3WD z`J%WIWR)MsbhEdj(BMO7ri-1=DD)|4>ZbGC{oDfcggngBj3cT1%)#xu%!U2 zoQI3&=uJYdglsgrZEX;6ICJimbZ~`n2F?YzKS`80^6qDV&YaU=b5*X2AkCX+ zhyVUD{cHU;4z>o~Lu(fw z(>xkU7vfq@>N-QA?VQN7iNcZsrx8z^GSo-YtbtJon-FSNb$2U|g~4QTF3GdO4%t># z&kZa*mRBdrE2FXd%n({tFkW@&>C2XW8aI|g>v>!5#8@v@DKxIa#QWM@tqhc$zbGrK z9p7^QS7usK-SB(tZ0ndPj{I28n`x^^)k7FLT@yxCQKD{Bc8D(<4dhm0B_WZ0!l`a- zOT>4~iSddxT}Ae_Z@khcNUO!}g`4kvctd1|j>4z%jVN?=j9P@UCIv`A2~X+4l))_! zi3t49SUW*WJZ&|E<8h{Mr^F%v?Z#rg1^uernX}0irYu#R0o}j zuX$i1y3n6VL!}$A=ISBojB4qK5f|0NPk?WZEwxQtS+-eL%)JYu8t6$1=(m^yq6O^Z z#)fN_a6Hb_k0aepxdf6l5tWe&0L-UAqoh(Sh z=(M!3>9lSIcbo`_ydR=gaEuixno%q=OWVTuoVN=1#NG4g5_g%$Aw0h>9R6!nK^0kk-bwZ7ZQ+wPjRGsT8pvTu1}`S{2yARu>X%jzW8t-$zS zBH1CAJ!?ArO+v%i#>{SlV?5K~xXMIrqBye=U~EP3PbgH#@C2 zH&fuq7U?&?JRaUc*hMcd*17Uju{eu=WTNvtq_J|fyz5#gTuiK4Oq`S# z*WwE>bJqKTcZRGa=196;UswYw%IgR)Ss=h~ya)Jh5u^>*W*3Dz=Dj(e`@a|{_GK;B!nlGar9M~AUByA*s*$bXmFRbRpqSA#hg%eur}ix zIasKp@;m})@lNwbW{dHqVM1vnUrf1)nrtRgEIDFH6g7*tynUC_F|k;uiA=5iB5=C@ zqCCAYx8S_u#f@)V-8g#`oZ*j6*RPjnb0Q!!TdM<;Hlk_cB%bfnPSLB%<%fK|wLmnd z{Q5hqga8G!x5~G*@f`W|N%_|t3w(&zm1^p1>nSMIl1lk%-f2J+O}SP3Ms-@CnP8Sd zqn`ZZNrHw)W!Mh@4(&@`FZ7+KSTDy7$+Gh^5fmznhjltu2|Eqbu*mj>b+BBS)N{&J z(#C}(k0lib=NstDG(JkIi^!^6RU4!rb1PXaE^D_cNS=B=KU^lQi`G<+ZK ze+Jj6y7Wzio_f`fU@^m;PY~R}{(!6Auipg&=qiqcZab5{WQF7uRv{zUDp#YTz;zGr(4wqvfjRXB0}7doM$7o9 zpj6(m!eJNvhqQcyYdDvS?`=BJYp-YFG=nz~{EpX23qIx!GFF9NaNZ%zG#v`#?X|0w zICJqBa`j*PWwz<`wLIU5REdjPr%A6}gWgpWmKS&`1iU~&%yv|FjR*#g-Ep4)dyg$F z55fjRno2m{v*(Vw84L1^2pxiav=3O|LiBQbdGxwB?m|u++2K$|Scp+Lp?C=DPYG_> z?Ok6W%BVRJ1AFAm4yh;+3(x2eF?@P1Z^eog%}>{ys;ar_#qpG_YlcUZOsGGR4TASY0c;0BP4?myk4sq|M&Pn*3AS z(g*&6bTlWv@zv#nDo5{x4r||%e>E^ouZ3g&YsPfk+lVO_w$FNXP<>2s zCacf|o_3*ocKqe4drs!NYg2i)O3s=qpwaw=at)WoYpE-H3q8;P1YYG zl{f?|W_&w`tPYsF{rf-_s-(0wV)~QVOl&i4dmjvX438LqlInmj2e|Y9f{#FJ_x>DG z&;X|M(Ky0D8f6yy@o=gX_MgH|AeXn!kLf1DVqohDxbyyJ#J#ZH zxtEg2=xWMrmwNxGo7B4?EM0F8pog+yftB;20xTQpCnjqN7AKBNT1el0UJaL~q7rO7 zIMLdjXZ!mQWMxsC{!;b3u8i}4uDVj#dTjPA@fHv;<8iI{>Z$V9;=lrx=e&<_kxsf% z0&i25a*r$QZ!5?Aiq&QRiw}m{$Cf5Bxfhg$5FC)bUbIh(9Nz)+9ArFPlP zV4?fW!&9O;wc$im#BeDNiVPYsNG;>&*hx_Kv4`qWve4k}ZVQxpT=iPHI2}JrH@}kG z^U%gNNKv96t6>N=YrLg}B?lg?hijrgU3Fiaf6IjZ)t{f#i%ZtvIye#;r6X_37_HTN zCDs_9nB+UKB`p-h;1I!Y$L?yS1hiEVw_=>qYsFM?Zt?%qRDr4Xa(mJ1!@ss;PfOPY zS><^04<4d_!E}BOm36w1o@yUvWt}pg*Felt*h-x3`}}n+qumDgqTQ0e{c$D*nPEw* zk+YO%E(=|`a(hHS>Vh1WoytayRH&m4cua+d)w0x_);51BohP~A^!yh@py>A|WqTx& z+pt>2dOr0V)CaxZGp#xM*0=E+0O5(;Ctj{mB<*ATX?^HYD6GX}0I@7Dq6Ag84X?ro z1O8Lxq&$=TLNS>1EuOC1j5ohj9^J4p?a9Z3)3*1ML+tvoBVQzSw62)FRr%>R&?|?lMK9-v%li!mMI2(eqVgh#(sVPf5jOtA+-+F) znE;}zQ}}_-()QXXBY8GhDWf6G<|8QN#DF=cTaJEjSmsfS+(gyEda?LkEx^k}g3ipQ zG^*Se;Aht{jGb8CZ9b1)p{vx1{#qyKYv+f|rJVx??+AU$SRVy|n`22-X=N8(Cn79P zB1^LMAlZ6F9LFL*=|}KyLuV=dXy*DY7Oin%o9e*4HkA=(Ou-`N>oAFk$T zdbKS&a(eAvll(@C@-M#LzTt2w8qKqtLp~oFXH-YUx_}VHEsI`3Z$_tTf6Zjr2J_`? zO9WHWC669*+wvrGmN9S5R$05?tp>vBykgsgb&-qo{1L-hYUM?TL7fI44xU5E1k22g zY`mHt-PeI#{pMuBX`?4wyfsyZvE}>hrIMojk%p}sp_){J(6Vx(XN+Z*0ln&c`w#qH=u4oVGXv zh^9l4pT46mEGfA9U-zyrVt38KmD^CkOfmKRkHM_AF0~`2@F1oJYJ>aPd-fLA!Bta= zz)i=NL|qrd?4O>ym3l;LJXsj!2>$IJ>w#|EdqRwVH%=;RrK@Q|Z1*52udYHgBvvd; z-j7O{oyiF`jQ5)+zTABR1lj+Xqx1Ojk=J3X>cB0{soaTc%X}%#tWdY3x_Q-Pn{e%_ z`|d5_7XLudmL#-MgO#@Nd&dT*%3ETjyI^nzA`(AC`<5zt=f5IxG<^3ejF9?C7f{8#!A* zAHciG2Z~=wz#A!2JfyjB9f%)qM|9IVS$dD6+UUc1oLb&Yoc$E0cmmMn%;xQ|6MBMg zHJev(Jm>J8eev=NJnP|n5)=DeN9Sy6=s$RxUAi^SnD}Up#}x}w{R&lc-5L9~>bQbY zr)Oh6I;9agCY%Xl$Xw;BnClkjaKP$myw~}ErM21lx1wA}1!JFt5}N33A0*Nsj-vei zi)k#R;MT?yPVfT#w-;NR$I@80%|&OclOid?qi-VvcazY#G4d|jKG*GCVkbpjC$4#q0bKHk~o zNoh;vXN&KfJNJm%YwqPwOP8QVy`MXqI==pJOe5xWco8+yH;EzvNyj(SuCC20_Pk4$ zeIQ4PB46=)DZLW0Q-@HxDE>PkzDqPG!F^*4=}@)?J891d(I8&QD@7(Mg%-d7W*fxS z&D!Md4*uu;S?6~d(O=dFq!AxWkLn?1JPY80a?F%k4Y_kP2%_iLv_1=eAG*CQq#L`G zmAyfw;X0+B6Vzm$|CpiaR=BPHa};JT<%B%LOWvW|_Lv!r&{ZH7>xe7? z244T&-txL9rSh?33Yf(by$<>NrGGQGkT!2e6_*{D1kW~wXa5a^6H;A%8-LI;*4eC% zG=Z@5==;xQ9O(ISx(c+QIfJ~HuyA-)&-K2P7K+UinP;*ALh)q`yt+CbuSK)PRHnvr zdS;Q+4G=I?RPviJHdt@SbtaDl5AiXac!EmGMie4KIp$>Jz`Yyy{7kjBttcPR&tU2j z1aq4p$&lp3Tk^)WY#7?bs?%b_NejE+B{X{lf9~HEj|TS@EL1pi7LUITu}2;2tGw>w zNBM~PM3H2#ZO*gyrR@c|8ye5}D?DHs8bUO9EV+#skpxlu-w%u-=P8{P%q}>Q1+_hn z2s$u&?8NROGtJD%I>t(gBZVcBt%Nrmfcn4 zOIPX?(oFOJo6hm;TA^EwfPE)@Srw_Pj_r~>QZ$N^FEd!NI^2oBcf0PDCaF(CJTq#$ z5F9Dni8P5izpoy}$`mr|!7%%2M=zW((durv3asX=IICHrr5ZV6o&Tco7^5UW%}SP;iEzS zd$BA5nD-%qv&AM7*PKZMvM@s(=zY8QDDQ3Rn6<*83x7A<(*-Ak%<4m$i}&`BX|qh# zSSRfTj+vQ|`fc(cv*JdCy6_Jt%h+F}^E4N9%u&E4 zRZr36r<>PZ@a2$!HL^ZeuZj7~`1~MXl=e){;rwM+ILQC68yn_(zZe{qSql5i1V?N_ zBO$vvK8VgK`l~obWl=VGd`Q+ssKCU&WSsSpU0ryl3{%tIe{tD4R36Cm@XK#Ck-D#( zta)il5*LOl9Jl@eA@4Mu9;V~iFK~0?yy?u>W?Nxgdz~X(NczQx+D2E#JUJpJGLrB4 z0Ddy@cS1*O^8Q7piM`2A9IQ_+CP%IvTA2qfeIlcq(IyP)C`f)rAF5+;EC4-s{2?S+ z$<4}Wa-IK!ysk*emzIgz%HT9h*R~aiOn+?liEj_20bkD&;?=|L7_KvfDPjdo6{a1% zA|4ozAFt}VZd!j9)&7-uM@S)r$o}2SaPegyGCpygOCWgreOW@sZ}Gl&RV;^e6745* zgEMSUASQ!|qb{8_NUkkSzX$8Gb8%l{l0C91w*+P{a;7MG8Cae5DfXit@z8A|EzdHJ zK1*eq0A@YTvHJ^WR7Y4-O><*Sd}a2@SEsgs#gpl*&yFo z?mMpSXkKygxSX0wjo@+It|`6Ayd%T2wSOIX`(yl<(r>jSoT_0laqhR&W5l8k+(!l*K)2pLN`~!Nfzg)<<%C~rznbE@#Zz? zsm-~I_zJRJ2OSqmd2{q zz4sr`(`*XI>X?Hw+~gE1QCt8(Kf*OAA6ohaNi0D*6&SjVNSTbV`C!GCS<_heu9Av%(Ux+4Z^*lZW_pi{YI;to z&;#b}MQ+{LGn|MPIFUFVRjH+|vN&>nb*CtqNy_VL*`^Cw zbk5w?)FEB|O5+8uRg!5TQ_; zKaLAd^>ZHL+@*XLfU1d%pa9{U76>Zf-_ScP)?CIc?={7PW)yozd z+0UNb#h@G#a1O!ECk5!VfPG@|fQBO6QPixN(FKFy`06yF+T&6&u7fru-}y^8()Syi z32M3b!d?+gJzMD~<*s_?78#;?NAsbBjXs<45}Wx{ka&yQr2yU54Him&c(cEwxoJ$B`$PV|@W{k7;q$#4dA4aZe%`ZYT$8 zBx;Htp@|TQU75%Z1+9A=hqfo9TZClEB$+E-m5gqNNAsA|5;F{z6Ho!4YonN05^=Yl z?`fvF*GdX}4A#w3V{^z7FZ-^5GqBa8~D5$EBenW9(GQW~?JrS)2gL zHm*1iCzR84J&j56oXS2_=CE%aGE;2bY*|?*-|MTBD2e@E#5YSNkczLS_>zF^4@e^~ zykGs7(`T$DG;%obs|Zs;t^5IW>`7>mHz86|^>UEb()3Gy{h`xWqn#;(k^W?mOB|U& zth3Gb1KKp@8>LBi?+*$yB_bprc~R-~Ah$f>J219I$iG2A36_&&gqwo>dLPHz78yGY zmGgu6KUI~u*^9pd{sy-UHi+TIa9q1(4NeukobFStSkarbb^%dh4E^?HTMx4TBUifg zwWN)|9P}7DtDM8)u$Z|hx(Zu_{|O{{^*dlbxh$e>uh^+*jFU3cPE zYR@aWV>D!=S+a?1*GP6#RH`F3Ci)J z$M|=d!O_!F$^uu+!dRfCa!d|}<#m(2)bY0CZ?bbrR*G=A(>aX?!rrN^t*NOwYoZx@ zecGm2-A@X1-*Nf380z_BSt0RC!w>MwsbGwvWuG-QzfMYN5Qe|D{Qa&r!1*G6j5{@d08iRstDnROEsj@%_k?D z?a154*iVrU#27vm=VE85r>2rHj7FtU>lxg4Ra=q)s6kS7^R?pauszOU^HEP6`BVeVt3@*mN8(3ckmtx*<6i%R?mPCr9F(^sWw`*%V z6Jz9nZ-uN_!1~^y%xOrSE2dD)%CQK&HnH4)i(%>Udw9mH3$1|Z^U9-@%}E78)k;iv zXyjs-C7EmwkStB^FJWvJp3JDmxv_}^lyJzBx_~5#tJ1Bgvqy4v^Y6*AxWH@JQ?nHP zbD2_CRBDnZ%pz4X&g{|(cLv%NhAh7PTK@phWe_({Cr9dzxtabG!B+-sVyqRWBdw3> z$N^=GQL!uZ*xX$I08CBC?L+eV*oT=^(`LUQ)7I3(T`W2tmbRs%?!|BjWJV)UHsI}l zJL4qQP>rXCc^zd|X)Q%0RrSvtYAKSc3WiC6D#V!g2WHYQy~7Jz0=pQ5dDV4ZVJt70 zPdv2@k)zq85sd><5*qr!xdiXEj~F}1uj``P&Z4TT%kt{+P%`@CPNJCLf zWseN7Op(>eB&juQ)}54(Pt&xTef02x_6HBaKlTwevY7Mmm#VXxo~p{yY{q#ZluJ%f z6$>WCkQFF+(DVmYYLFbX>Z`4D+lFM>;zQFEn&LbSRDjr%$=8@AF@3T-<+%b=ew z$nyFrGb&)v#*~dzu(z$oknGOG(x5ON`yK(r)-aJ-XDllXQ$V!y){z8l0EU_gqeC+l zVQ;e=l17oW{Mg`Cn+SOLL830Uca=Mpb(DARARV??$qL|G{3ibZZ9>miL(Mb^QzoCRy)1+Sfl_Q<5e;B$% z8!YMSyxT@)9&HcH)Fxw56e%6Ifmnq;pK*V`y^aKKvOMbD1|^|Gm_;kh`Uuzm020^x zSa}BaK5*&Mz>gzGM%UBD4t4U?Ge}J-J;&XN4oUQYeZbgmZMHf5so=kf?tm51&}Gw8 z{Jl-;qfbRE9_Mz%o9VT|B-s9b*fDkoqjcR$(QDHhGzf-PC{s!BG~DhE;IQ&I-wA-E z_6q7#Q72AUQ`63rwbd~YivJWkIBytcO`7FNVE^jlK74dO}j{Cljfy zs-~MWnmU%+l|M!jAv}i0Qx#?u1dztq|Ku_q>#E9vf6VetqqvJ z^4$7?zUIe!a1w1$*u0BA;mm$Gk-u93UtT`Ls#vUq_ zi76&un{iD3ts1Kt?b;J+7(4&iZZEkh?0u3h%Iu! zk}U94Kvkq>QMhK<>9N~`;Oq`FP2ko%{4UEW7^?E=+cd9*l!Ee?PU}W4tab#WUr@MP04^2pVYm&7I^v3J3I$fI1JRQdO#2WikIwLMn{{Wx!{{Yx& zTjZuax_KNJ?8_C4dPqByZLRx@ZHr3?gjZ*obqum~4P+3ewsYT#3FWYsGyIo7N#vW)9Lk4kA z(~obKov9^B8)vdFl_PI*cJttjN;a>t=9U{dbTo8vWi<6LcWNtTleVza>03s8=~8_} zSlpk@u*tqn0}Uz)SGHOFDrFE=8KWRa6Ul8rlX6YA1AC5dz3^ihHY<{>1K&0oghG~j z5VVN5jwoCW18`K54YnX^7T{pG)}BnIdq#O^Q+8Q{w*fKcGJzScjF0$8Zrjw?u+-#XS`ef0+5~(yBPvO9?lXiZ28mfFk>-`h~r)RsR66 z9Reqcr00@7Q&i?GDa^&<(HxDaThHFfFSOc{G07~;ps)>JwPft%JGs3_Z zpIMpYTkWdWDX}AqU-~M;pyiFTbq-mZbn8V&PW8i2ZdhRiP7##p?cCfqs1K{n?!aMb z-Gx4pn=XSS{tHSm0!EM?yR)YTk2;`-Q;wD=#S;W!_ zSW@?zKn0kTacdt*QX1b)u#^5HL-`}#t%eNKG|k?NEs8YxsTH0AL6EW8w;){Gz~_78 zq6-L|B!(VwIcoYT7gC{mRG1|DGf|MAWgZ6BcWm2H07M02=@{`{Hq{Y~D*rBb~-&h6JRBqrFH$X;v38i{Jb} zY9`;c`16OWCv=OI;Q4jXkkoe^7|XACfw|ZpsEd1FYx%}%NM-05B?VP&RI#6zFsLmf zN~*D-`nU2)+}Llq#&|-iZG^I{v-p)H^^-|YS2{F_1uHl^+zm{mZ*BJ23@z5QQn8WC z;Z|Ky{9di*qKHXPOC*fw71m`U%MfL-^ToXFfi|9l1lC#YHC&OcEk9^1?Wn991-Amg z+Q1)u_QyqbM(7b+5P9VWG*v)J3mCT?Zo>omF?}*1q)DUfvIx!hvfOif6Sw-~Q)aY+ zIcHGP<&>bTl*kw<7B1G@Z^jpkACfvJOFRm_LTYK_m-HP~5H*UP4Uf1ZfsTJ8ZkOrN z3d=dz%9frPU72NyN`oAUQLR^LsF6C(ZnknG^Yt5rb&yv?R`UTZcfK->~=bS_}5DYYdJPoz_I zo~5GcS?OCd>PCX5N{Ao$ZiEdr$wXCFzNHQqf93OQ3pGi0I0aIw>CwgPeLQcC zHn@Tb@*Xo@lgp|zDJN;>hqX8h6l?~R1eMr%8*g)Q?O}(5bd4&?pBiP!%RlRGT}qve{-I)TY%6@ey%bAqXNsRLn!mS5BKg@MmUW#YO;PGV2qHBA zE&WAyvA*8O*y}XF(tKn_%;HDsY@But`;nGngmMMI(|&DiW#h(JK1|^UYrZf1)GZ}$ zOG#9!!?znqte4ux?Y;Lq+Sm)n&|i}BW~b_IovD@P%(99o5=}wbVIDXP1;vQCzaQTW z;M3Tg(^?B>na@dOxfLXjK}59m$Qmf+rZK4;6X^tt0tfCfE;6>PrN)z?Mw74lZz!** zzD<Twcte8y-)w!*P?tV7RQKOg|Q=DJoo3`$OMaFfB4lde3_U1MaPE}8Or*@q%(TDI!4PW zMO3;%$MVPY&Bny(@J`3=hj5ZjrYe$doI}<9Y;tVMt1qOaNsTBP^r- z#mQS`W#r?8fl+m|AH+=JgC{e$F3iP&9^fb2_xHs%S zdE9yNfa2FvE7r~{bw^(+v} zLscytwDCqY)2^pF4Zv2g+T-8)Z;E_LX2o7c@j$QkgQRjwStyes%HfeFU34^5!OJ^X z?xhCyAf5g2el+&M&8;IPMt{;BODerqQBPKg1aWDkc}AOklw0w88|{tp$EFT)?HRsz zqT+bvrRjrFGnRD+FFI@w(nA2e_#|MzAL*3eXy4L(Rgu=$nm6gVs3|69qmnO>2#QJF zeI%-oPW%4=d@Q_boWa+H7rWkCF1TnK;P~PMcFU|eeoFZPvZ#01Q zU1!tPbhQgr(j{bgbeLtQLK{i23IV$UY(~IZ$7^6x_6wTD1@f-A$*5tDlAZ+04243+ zPYI26Ey>m7TYE9vpSA*uy9<*`M5ODCibna0xFv$5*%hUX5hoxLK`P&#aQNwoa_t~~ zY1P?e^@}R>%vDi?sLeP+4%Q;dZht>}916wEL(~+lPa}T?$>f>Ph~)|*5tF{k zc-VXU;H&n*$$BS}^(IZ3WEt*vUy#vc)p>Pfl$DSO$zI}xA(rcMq!32j-q*qVT1lG; zJ3^WGosvaYQxud`B3T&PVjojoZ*i$X-qzUfVTRzv%>%{wFzaqiUtCi)fp?V`r6*|mXswsDOP=o-U$5oE!kA5+FXpX}(8?+9A zW`%%83*-yzcK-k)gP>ueNDVwr1ya$KA%aE^(|yX?`;mJCaei@|^cDIP_>E6RS5=kiF>(8-l{5n_b}chq+8tZ+)yYAtfNHn_I-@y+lRw?TYVZpm7Dv=N7oRHO*lM{PGFe@)5rx7_o# z3(&j3>yW`VQfU)FJYkqZ(SwU@=U5;r&4?|fY(O3$Ou z^IXQAppmH^z#zMTL~mjlufZnZ3v4g%fYLIs7fHT(O_9S>)Ur#J)zwtWA*Cln_G0v- z1sowK-;M3K#!8JRWiOeE$tr3kpD(+C+`6y~*RwI)dED`R>~6kzC#${L*KDYj+Z z)asfdkOc&>K8U!s=X1Th;!@DdWuFwfng;56`ZuSkRV-r)V$lr1X(XX7Za@|`VdCQ0 zlp@EQu7otsspF>0Y8Iw=`;AfQl2!{CeLRisPMd;G)@yQb?QX?d!VS`OT~tuC#vhrA z<})2cno3F@*4PjUu<>FnKKKqPpr+OUooSb5aAqATU6fN!v^80@rlPkkr*vfjBXw6i zTp1-Ax7&^_iB`*hHE3_8>KeH#0bcCW#dVPh4(2k})EClkeoB*TZlrL^p2;=RKCY~x zmV$DV%||NALwvuL1-Uu{#-zZxln+%&n_%cq0CH{+I(6L}Q$(7hxFEC1%{( z+wEb0P&e4x{NNb`L_PTI@rjX!kRyy2Z%vN(x}CSNH}*IxgPJYtIvIc1j+0Xo(^RTU zc^S2aQ?}&uak>5Qk$+|uzNi6J99dNAMDe6D#A8LJLb11`57h+RZO;7IjgA>)6-Iig zsHm%2PxqCYL;=;WxFc(LzaD%Yhn86o_39!KrNnY9sH6mI5J&`Hf-H8oz44o{q|ZAr zM;l2nk^~xpScVLy-l2XhZTLR-7zQQ^)s^&W(p?KPa!_A^waxZBeUF?0k-D84K!~~} z8k<(N1;8KyYmx}tgNPS*9sjKYJr($_a7udF~u0gfM&Gz$!@jw2xY;Py?YKmu~?Z(xT5d*0xB4TgnbL@Qo z08AcT3&$1&n>tp4R22UJFsjAWpH23)zid85qaJyk$2Ae8Ej&=qV(~yil0YC9AYAeW z{sF?*XwBXV;*Oq24zDsYE}ceDNdQ;{-*5E6s=yv{8KB7^tF5S%*3TTV#~Q23fdEiG zfWf#N3tsl#`(aurp2oQ9p0DAZMDjCBELG(pnnx_)kEEZ!Ki3G-Q^4xnEr|K1e+Z>n zU@=K23{aI|g6i$NSc~6b?0tpkgkZD!uq{0V^2JIWjPD|ifz-`qVtrRT6Tbfdd=M38 z1r}(8wUcHQRMAHiPbQ^Cdv5n6k-5Is7ax7Hvty$#&WWRnjy0aDNGchbVT3U#e%qTX zT-=?%$eUr#m9A6Oxhk=kMJ-%G#1X6^$l~gt5}@0TeDiEdf5nX-{p=?n`1Lu_nL zpHpc#c1;ANYFMizf+ha|ibS$Ts?odx+FikG5VtGt1^FDAw`0=`WgS4Z`2yweX7w~` z$nd1HKHD(utbh=1r&8Q+za(&4peC#tQJ4J0(^gfqb2Ji_j751Rr?|GHWIK(?-+Oz3 zgs0H=vrA{WjHr}Vb4evUPDzG%mfN@0acv~;a5mVUcf}%=7=kI|pq2>C%2sI51f@+V#1VZ!o9p)QeXMb0 zO0Z+6mX#T)pk@IzF!_RPHyd2}xFmhA&L8!Q{S6=bb=2%*mGarqS^HzTB3P5l5(wCz zafz=aeUHLki9f?^?kdw6$-aP5wCT`J);h0a^ot&DF}cQr##f@)dLO9t5B}U^StMQN zMFfu^`h~XsZ?*?Gn}ZMae?(?geIb?Qlql97TB|r);Z(aik>4 z(0xNlerA^{^q~URA((NgRf)K@_Xl8YiZ3i1;+T)cI=UfK@Uy9Yc@j*a-3bB{q&!MI z6aF9H5AsEJF9|n-%ASDgDnozZ^%4u{yePh{^(~J2w*ZfA_rk9%A7Oqut)f(a4f>9* zH;~Y~M!*?6?i3FeVW|HA<*Nv1#NJv*4!XNy?`c8T0bL~N=^(rlKuB>CHI z_QWAHl2%%9e4C+4t0n4H9jUU}OLqxWN{HE({{Z}P(5DY%I8V`z9*fWF9(9v0nHKg> zRAqlR8*qQN4>%=uFA3dI=4J5vsAHBQxm80zFLN7)Hu6YT9^-svO zl8*dT6UPps6qeG*@Cmv6{xEsPV9FACqkTU^buDa@JakVadP4UlvcB9fLf0eT8{~rQ z%f~-Kk?`v|rs+DYx~`>`u1Wi_#fuAwo< zR+Pd5N5=PzohA|_Oss?kCcKbGtX`|WHGnh&#lQe7Tp-wHa8 z2@9r6r5u!#9gKf^_+wJEA<%h8RaxdwBguPKk)ihnoUzP0CEb>->y}08C zQz`?ufB_af;6E%HbTaYDG%8>PzY2P7T6wl;}DOM zs`@D5v!6%sbE>N<+MwkU(k)84mJaM+rb>-VsMs(Z1-Co!aQuN@&C+}v>MZ2R0#ej9 zBxk!E(*;C`kUbH(^?xnxeTTn{yp#?KjoClKtnI05-E#RU%vWCIfCjN6-odU;#2#&Y z6)-rO+u=`F(&lU=r;1Xp7|Le}U`NtL_P+cN=EHNaa5YQtr>rZAMJ`U4C;^aG#ty|# zoyObyAGNT4MHi7@j!j@Ql>8~p<><`%l0hsra>$*ek&c(`o$qah?O@ySy|J9vB*Pd! zEejO?00{c6yN?D^ivpg^rbh}%w;&R3FKxlaK4@ym{8M?OBtHoHmMIuZm&Ve#I@q!? zKWp4yo<9EoY#){$!SPK!3ljWA&g2rsJ$R>@Ko&maFBu@6wE))(U~D|{F+Mgrb<;P} zd{e2*AYnYU5K0Is+g9y0hQx!u<8T4|o^iM|1uW$KEtmCTE=fUAOr`-TGR;;X?mUr@ z0wSLSQ2?+TadC5nLrW~j{?^b%MNqVJ&zM%q;5SsXDv4N5~!bd(68nTZEbH$P6xxEJ+r;}Y?t%TEGzXHe&Po7727R>D<@ zsr17L7dE+I#DKrbE;l&07{rarN11MOn$<#O%xdaHRMQn$X~0XWt-xk2sJV4z-sGLU zVJR&Xw)Qd7wOuoJYNo45eOGZI&@Ay4z zZq&1xCy+)o=tON?64y4|snctlb8I?_eFKx#m}~Q>S2m!IsMA%{Qa5saxa3T_#RKD1I#*#qd3iku{(-UGEB5^)D-}tkUd0wTik#G-A2a^#ZZa6wlTxh zLo;X~fhr)e{X0F@OQ_u2+?}}nh9u&>6y(4^5;}^0ot3GbW?ESyj?$xgZrZNE9nFXU zlVCZ=JSvLM{{TW}P1baI-AXh$mS;UK6cR0==PqcYg*ZHzgEHGAziJCBJsp=|PZ9?Zy^8k0g*V|38qa58C=j&#- z_?4Se<@Jv7tkQN-HK39}B_x8j1d9MUzbBkh<8&w6Xyr6@^(ShFGtmhy+Tkq3wZ)0B zB%TK(-+^pVrO=8^VGyj2DvQeWl2FVnbW?)Ns0D?9;MiRL*j)$lqx6U$widO(Q>m}L$J*xzuO%f|z#<&GE~$xJRMgd?F^#CGf>WeGu(LUPTToHO z$pCHV2X7*#kQ?HCZC+c`8I^xcMKx7T8yLkbjAW8UTNxipo3OF6fB?7W0=Zx-E|TB; z{{YC*m{r!&($M6Fx!}y|Ss`j^<#N>ig?BA$4UN>T?QjLg9x3)L>yt}a{{YaVRXsd) zRMRw2S7uW}WQlT!?g(aK>TT_?1fE9%;}lvZ^6R<>R zMU#M=B1Q2_ow80GP*R*s(|w?fWIR4Bxs z?z0IbI)y-ccKrK(4Y|id$~(Gb05Qbe zc(RG|RD)l|a|yDrCzd*Ga4{_;!p*JpjYoUgd=I`AG_*5K?E5CEizI*dRd+H=6s-oA zV<9hNr&Wjq*lM@m3op>cYK-3!pb+()Thm3`g_1cXy|ui=1FSazx$(cAF%^_i>{W^L zI*DnS=2t~kymEa`#cT;8_O|~3V}BSZQ`%Q?Rw=7iK@-{0j^O%2l7s~+*52QoAJcz8 z$_iZPCC>BnnbO2kTE$ue9D+b;!VSucdbYiY2KNUINduLKsPjsNtddlk8L6c7$r`gr zrozPRJvRsMdtf9M!ZEZ_tvYLF_uk>+XPQY=#`QRCN7W0Zuy{P!P(Ya+V zQBjz5{dCboT=dZfiCvfVnx}6@kV}R(xbuCmyj#tbj8(jhnZ8jK1!_G#IH}0#)nsad zow&=ktsvga#C|RS0~BAR{{T#B(~>ShK4(#;m31JeS!85pa%@(_?sq#A$>(efc4|}) z$)%pZKNGyID^j7=9FnmnH5MqN=_1DV)I4*0<1;U80sjEhK4&&*o>9@Sc4&n>cBWQX zj=LS3lG<;-7vFuc&Es8`o6v)lJd`CHn_ul5pzlV8r#M-nQ z%v{5k_ncE8noiJ;ePc=!bGa5bAb2AFaEmw?37h29xu#NS>n56-X(F^$PJpa89HNgG z0`?n(nVcFeNrvkJ+U zccz663~>UdN?Elvt{UW?d~e1yRp@Co*-E_y4K#UQ%g`#A+R;lWEQ&Oa>$QMqB}&{M z7V&I0Y+JHa5Y@+q`vgGf@a3SZHz{+E-Q2lG`6*csQ)yMT&1a$mi9te3o$>4XxyY z1x+V?MYmIP^>J(1Vjeuk*=hd(ARTQ*RUJJzhFDpHg>5z(++SA%-;wskk|Nj^pE;kr zjSQ6V%1alX6QIg>8g35O1n=hf&-4TDO=r|!!xjp-k*X0EM~x!_pe~X|l>lo2Sdr$~ zl%tZVnCa>hG3o(2!&54ml(cTaN~p0U8|owgHodR=;UyN((Ulsy{&ubEdYu5o=^RLc zKn9_v;O}Ba{DM3TLOLxiiP27wBg)QJH*Z@KY)!pa@V48{x94myKeH22e3aA6O%#%M zVo3@sCZb8*f|I$h7aZ+>d;=E6Lg8s?(g7?{w1pm47h=ZXlYb0Zd=0+%H|W%R4qj>E zRY;F1~*;z_z{Gb!y5rY1!BJW2=s?Lm(Qi^=A(v|NR zsUZLtoN~ik>8WgJ`jp$qQgj zg|VH1S7FGiYIADZg`--EB)pKlWji&hIUTgUhyMT|Ndy}lVQSVzjMl!IuClEok;OGL znauRgT6%{?(5H46U0P2YZf;4#D+T@(N!2w}FY{FtuTe->R0&d}R;67m4zHvVPt$#i zT#|Rm2PnTK&*Pwymn)Ad?#j|LR0F3>LgAE#8x_=Ve;W@1>d^Ha;{`}BwBGXpY3W=3Q5seLem2%TU#s|NqCfKpK7AvTb2c0Jk zZRMJgc2Na%#vz;%3A&|0tA>lT@p^%{0Qnc+?S`hs zRGtxjUy{CWQe&g2j#{!VDTKPGJMLAN_7@l2o10*At)Y}t)5+Ph+6wCW{GFwYoYJC_ z3Q~<1c3CAK`%0i)$s}w!B%cP$9pHAKWpL0*->Isqh8ldnMi-jvsodRFLn$Cw6Zo;< zk%!vIs*zt(EKi_tvYt&5^O*BS%^>vo<;rflYYd0+7&A)<1|8+lQE>% z1%25PpaCB@3`XRV2`BAt1}Lj6o9PDVa~!fZiWQm~op4yn_b4ncq$Zo2g|@rjPa9%Z znPp~tu+3kcL6;OPf<&64j-C(EGB41oK(R&kVmDLn1`BG8lW*OB`40R`g}>WFC`yuK zhBu8A+!nH-Al|?!AaC!m^M&!hsNPTIVmI-a zMCtY!$$DT`v%H+`MDVOzsOv{tj2r1!O$sG%R zqp}}JupP^fq!2C1wfD9Hb_%9q%d1Q0)bYs!O7T@5*r$DRx!21d=D1=!a!=b6l&MhZ zX2ze2l%@KS>L!jxM~xL$R{b&+ZRiROik(CM0Oll>EEI1db$(p5lg{*-^BDGaleRT5 zAQl=<=VDZi!+03k=+}54a*BG`sVg2eg{fsAI}IJ3NW#RM5%##)+YAd~DwwM&E~yNa zF|68k$m*d%*==G4jqQI2?|^GY8kL}^g(j-3B%-QF9!vNH`mNxL@CNu~06upW0i`e6 zgIgl14aLYqdmqO8cs_W>TQbTD{0yynzlgbfvPNR4DtfOJ_bS&rKfclNO359G`+ zBp2A~dEHEr=J}Rj?wN&gd8y+oQi~)Fu!&R+)al%xs^5%SI!Kep`-|B>Q&U5dJso8f zbXkE$SgInH;WjJW1-H02BHZ6^wJXrJ>X{G^L7a9?}n*AyH17#i$df&5M2b=GYCbk55A9#cq>oKZvwd(n$wyY_(x_ zbiJjFSgpz2FFu{f$1HOeT7StSom1v?*?m7}Qq)5nU>aG8x|RBr4ZTIJ^)Khn9Vw^l-I z_K&>;@ny8C@clJVz^dq$CfcoiByYDn3}amqs?VdTh7&y+JTn7fEt=qu19H0?AI=6t zvif}96D(A*Q6j?DMC_`fn^{GN7X7i9K{>{A@?A|2PG#9mB(Qv;udk@6jEEIlLW-yP zL!N9-;EN03*RXr^k83LFBBfXb4pg+Nw(WL=pq?8_`bWLF-}{Yd*Ly6>I*n;`#@R6x z`n8#%b&1z=zW3ja!L~LA`!2%^*4;j-Bnu4DP5%H8Bw!LrKKpKOVsCH074a74y&pGR zds_i28ctMvpAabENKHRY&Do4ItIs5Tq&FczBL1Rx{C(^&*lbj#S)?@4O(ta; zRkRSmScdJkmMoe;e?p_+Y`tn2F=&LU7&n^|M&F!0Edk$b$5WU`EnHPH(9u#<$ZR7KD;Uo<9xq@{-Y_^s z3QYP;?u#*LCwM7dW_1#(qLHX@rrZ(_oDK-eOrlDRu1A6|;IKzNrdZRqw`&kdB#;NS z&+UW8v1a9yT}Ew7B+}DVQB#hnC7nUlRQ)|ePgO;dq*apBcOF#GsoPKq)JNo4jjk<;_f3sdup-v{STn*q znIshzEu~T^WKxVl7a@(mH}=I8S`o`Nux54fq*T|2lcngH7C7S37)NOaqN7uhYYX3C zPWU`p?8)Cj+@IogZ3D=^!t!St%uv(9w(dTgpI8>KUG2yp(+T~t=+R5p_02s+WOSKY zI@qq7W2vkz;N0)AUDV$J*s8lPgRZ7}g`U4J%cn`DWS$yyE>sPQY&h85o;JYFieqLU zihmO6ei>%4QA3r&8?+{BkqELO7YcV9albrU4Fu-4B$|#8fZrN3EX(vBIw;v%%N+F0 zAT44^P57|5KepJX5jhr6d{Fr{hN3*1FInmtM6PL(S>qQ1-lMtLi`wDV33*3L6CqtU3 zYbAWtL>ZnNrkwx_-qs4hZ?(;@wlx~qJFVWLpE<6QNowfmYGp{sn0J-jsJ)ipk4doS zVaT``s?G(L%2ux~hMtT((^k|-{lO(YIat9QUq~bio$r1vd?-_WBR*lDRMXGjl^!Q3 z(bGpIqGto@Vg{!p(|t!s+hyALS4##~Buhn|=f4@Um<29jnq{-l%kw`tk0cSQ#LhPZ zjcXYrakrc;I<{Fxt)wxgaQRda<e)R4hFH5|Sb?!0(Ma9^VE=ecF_S(%$0_B+6u8s(@RMSyV9*HT$a>!i6q-wJ> z5pp$L>ht&*WSX&Dl6OZ__(z_ub)LL*(N&U>$n7_8OffJ}H0r+XVg;02-0_G_QCK_8 z4iz=5!ef`y!B-&k_iANjP~J;11fP2k>xN4?DQ0k@`j(C=p4rX9cK48&*tOV!>2N(e5IrZ!!D-Nm{uw2&N~tQMrjBW+ zB=!P2-K}ld@`r=Z3xl9reHtjL;%us+YNm!LRttBbHvlixz-~>6JN`W3S{*ylS}G%U z1kj}4M2?0^BJekbReX?TJ-vu3P%78Z(^QqOBzcIN(H_M2#s$bkYH449An{ z+ScRW1y+F5+rf@1)u+qmTABXJdecHnNapMZ#vC=310Mr*xvvq!5 zGl^>El8!i|iWD~%^tX-xBXV&5IbouHMU*2&)4?hJS!$zbA!wpkmguG%-G$eUypypT z;rSsc_G9Y0YM5ZAlPQjtTEOw0GBS}ICDciNMSwRa*lbC|MYMsf@`_2tqq#`lYx(LXtF)E%z4v@YqVlS$R6`RDz$U zI&pgmJwT&W2z>#xfxiR`-A&H+$1}^bsbOGOuj(@lD3Ux8)W*T8G_!W&zS>gYYd1bD zED0wRQLK`da4#A22T5txF;d;Kpd{*IcPG;jHnSTG@$~t_Flvk$4IX_zPvnC(N{USK zs-8)zsia-j@;FtvxLrV8{(qxsU=3#>nk>dh;)*jtDS5`8^DtO~k*Kh3{Q+2WYm#=t z)rHy!Wi;@~oyI$lF#%*|P}T&S6Rk~{5=E5Taef9C*ngtFqk^Dkd7WNjS=79S2b_I);t_>f#t7TPBhX{D}?j1^7G-u_lvv zDI1p9Gx%Wb$(T^QX*nw#l@D`0MUI;Qn}n}GlR}baa8%0m%_PG0Uw&UnC9kT(fw{#ZBYbi^{1wcq*Q>Jig(I13X=IbIBe5e(3VJ2H&5SD6KCnM@~eV0|pU@kWRS!^~No$yt(GjY5#6tJ~?v+2xGSIWc* zWsrvoH`1$fVZRPcdP;q3Nf6+)DPFgIx*Z%xkQb9?(6Hhl`! zD`1?mpQ!3O(=%$?DwCN4cU7P~d~9>W1I(7NMh*kG**O)F}hWN{Lz zu7am#ArRW;%YJ-b*e~=6f8-$sXwzDqC?%v)t2511+5!W1K=%hzpKF^FfnA_wZ1$R( z2F%1^hE~+Hn)^$ADyYl0=WV&$0xK+8 zJsj?xj78mA7?`heBq{+|!2z3Z1dp-j6j4_~w$*^DbBUzwB~w$>Lh>;vz}?070E=lH zZ~nNoV+2#vFUqrg!lqatSv!i;DHO3E_-s8lRcnJ~;`aTy#F|vfCexwfhpDn^`Z(o= zohl?iY_uu_z_S}2CyTHEmA$R~AmdD`o2vrFD9p20eKJb(OcbP&suC^>X*anWkQV+e zz`&Ai1~RN0zBoQ<7g|8j)HO{!lrYHxMs)y;glc19xgx|~#@_g(65Q{HV0m7cR~$FLm+==EMaDoIzhE(R?W7i8F`I-HPT>8p#n> zHw?-Gg}Dg6#@p@pwhm&=^=hmwUD16-SYxV&j#ZhEyvb32(`$c(3$^dS+ta1@uPqBz?o&1W6EGnh#;G2E9bPrZpd3)p+$rjlZ`+tHrBkEv&#B#R=bsG^mQ zn1qah3l3j>z_qL_2eCIeLbMU-4wKL7DkGAnk@D%|s##|4MhKF``a#w7TX4IaX26ji zt?8`5XEn08sF@~m=weN5z}y5IZEO31wk)0~NyXj~j*BVI(pf3s$m^D@M59qa3H0y$ z*KS*JVPod|&B+hNv{f%i^+sb=`Z--dk>v`FGYbHx+WXiGTycJUVR<3cTP+<0oLA9L zER-gB1cWc?G&`=`kPe-Ki(eVfuqcZ4e+_d;n6uDSGOT5qnc^&l#^toy$D51ajxKOH z(j7vc8M3e8{{T_f&{O6Hj=s8C43k7+rLl<^8wEpc78`;E%Xz}`4-|}9N5ej&j0syK ztEpL zY%`o&6O5v%BC0I5yG*7$qP)wYqBB%0$Do@Xuf31B-`d3EIj7iT28>27sLZM)zDF%n zFf9|bjIg0muDzsY z7|uu)_!s!!(Am93MnzPVVzz~#ikxYHMeKsZ+}sXuv69Fnn`q{hoiWt;Opayg zy5S`8#?kghu(#E!^&9E@F!29WK_-N(n>bj}om$Z=f3@D^nt)Ac; zt^Heo4%_d5-YE{FO)<;jcT8s)mSL7wQBi7!3TWwGD7468C^u8MEWWSkFwki#1k;r? zAU{gyRR*L!LsF6(#;X*1kgoc*i-GTOIs4yg+V)DHqWUa@K1wJ=IW=r?A_SI2i(SgE zfJKGA{Mz2f8|n&dxO_IwYv_`3ljc*#1(rgFMJ}Wp=;ZBx0{A@A!Z#Mo@q9kb^VsB$ zJffyl3EK*=2vwf<0`0lvo$bS5b4#-*H__5M