From a6635a32a31557c1ea26047d682ae9f450783bdd Mon Sep 17 00:00:00 2001 From: hashmis79 <64416180+hashmis79@users.noreply.github.com> Date: Tue, 29 Jun 2021 00:39:55 +0530 Subject: [PATCH] Add using PythonAPI in CoppeliaSim blog (#8) * Added using PythonAPI in CoppeliaSim Blog --- ...1-06-26-using-python-api-in-coppeliasim.md | 222 ++++++++++++++++++ .../PythonAPI_Adding_Script.gif | Bin 0 -> 544616 bytes .../PythonAPI_Final_Code.gif | Bin 0 -> 2753046 bytes .../PythonAPI_StartAPI.gif | Bin 0 -> 252207 bytes 4 files changed, 222 insertions(+) create mode 100644 _posts/2021-06-26-using-python-api-in-coppeliasim.md create mode 100644 assets/posts/using-python-api-in-coppeliasim/PythonAPI_Adding_Script.gif create mode 100644 assets/posts/using-python-api-in-coppeliasim/PythonAPI_Final_Code.gif create mode 100644 assets/posts/using-python-api-in-coppeliasim/PythonAPI_StartAPI.gif diff --git a/_posts/2021-06-26-using-python-api-in-coppeliasim.md b/_posts/2021-06-26-using-python-api-in-coppeliasim.md new file mode 100644 index 0000000..6f2e413 --- /dev/null +++ b/_posts/2021-06-26-using-python-api-in-coppeliasim.md @@ -0,0 +1,222 @@ +--- +layout: post +title: Using PythonAPI in CoppeliaSim +tags: simulation Python API +description: Basic functions and Usage of PythonAPI in CoppeliaSim +--- +-- [Saad Hashmi](https://github.com/hashmis79) +* We can do many simulation tasks in CoppeliaSim, but the biggest turndown is that we will have to learn a whole new language called Lua. To overcome this CoppeliaSim provides us with an API with can connect CoppeliaSim to many languages including Python, C, C++. In this blog, we will be focusing on Setting up the Python API and some of its basic functions. + +We will be covering the basic functions of Python API and their use in simulation +* [Setting Up the Files](#setting-up-the-files) +* [Establishing Communication with V-Rep](#establishing-communication) +* [Retrieving Object Handles in python](#retrieving-object-handles-in-python) +* [Setting Actuator Velocities](#setting-actuator-velocities) +* [Retrieving Image data from Vrep to python](#retrieving-image-data) +* [Putting it all together](#putting-it-all-together) + + +## Setting Up the Files +* For Setting up the API, we should add the necessary files to our working directory that are needed for the API which can be found in the CoppeliaSim installation Folder + +1) Navigate to `CoppeliaRobotics\CoppeliaSimEdu\programming\remoteApiBindings\python\python` and copy all the .py files into the working directory +2) Navigate to `CoppeliaRobotics\CoppeliaSimEdu\programming\remoteApiBindings\lib\lib` + Depending on the System you are on, you can select the folder (Windows, Ubuntu 16/18, MacOS) + copy the .dll, .so, or the .dylib file respectively to your working directory. + +3) The next thing we want to do is that we have to create a threaded script in any component of the scene where you want to implement API. +
+ +
+4) In the Script we should add the following statement in the sysCall_threadmain() function + +```python +simRemoteApi.start(19990) +``` + +**Note: 19999 is the port that will be used for API communications, this can be defined by you.** + +Now you are all set for using the PythonAPI in CoppeliaSim. +## Establishing Communication +* For Establishing Communication we need to follow the following steps : +1) import the `sim` library in the code +2) Add the below statements to the code + +```python +sim.simxFinish(-1) + +clientID = sim.simxStart('127.0.0.1',19990,True,True,5000,5) +``` +**Note: The port being used in the statement should match the port number specified while setting up.** + +* For Testing the establishment of communication you have to run the following code after starting the simulation in CoppeliaSim : +```python +import sim +import sys + +sim.simxFinish(-1) + +clientID=sim.simxStart('127.0.0.1',19990,True,True,5000,5) + +if clientID != -1: + print("Connected to the remote API server") +else: + print("Connection not successful") + sys.exit("Could not connect") +``` +**Note: You have to run the Simulation before you run the Code or else the Connection would not be established** ++ +
+ +## Retrieving Object Handles in python +* Object handles can be considered as a key or an ID which a component possesses. It is used to provide commands to a component(For eg. joint Velocity to a motor). PythonAPI also has an inbuilt function for that: + +```python +sim.simxGetObjectHandle() +``` + +Parameters | +clientID: the client ID objectName: name of the object. operationMode: a remote API function operation mode. Recommended operation mode for this function is sim.simx_opmode_blocking |
+
Return Values | +returnCode: a remote API function return code handle: the Object handle | +
Parameters | +clientID: the client ID jointHandle: handle of the joint targetVelocity: target velocity of the joint (linear or angular velocity depending on the joint-type) operationMode: a remote API function operation mode. Recommended operation mode for this function is sim.simx_opmode_oneshot or sim.simx_opmode_streaming |
+
Return Values | +returnCode: a remote API function return code | +
Parameters | +clientID: the client ID sensorHandle: handle of the vision sensor options: image options, bit-coded:bit0 set: each image pixel is a byte (greyscale image), otherwise each image pixel is a rgb byte-triplet operationMode: a remote API function operation mode. Recommended operation mode for this function is sim.simx_opmode_streaming |
+
Return Values | +returnCode: a remote API function return code resolution: the resolution of the image (x,y) image: the image data |
+
Parameters | +clientID: the client ID operationMode: a remote API function operation mode. Recommended operation mode for this function is sim.simx_opmode_oneshot |
+
Return Values | +returnCode: a remote API function return code | +
+ +
+ +## Finding the rest of the Functions +* You can find the rest of the equivalent functions from the [PythonAPI Functions list](https://www.coppeliarobotics.com/helpFiles/en/remoteApiFunctionsPython.htm). You just have to search the Lua function's name and you will find the Python equivalent function and its description. + +## References Used +* [A video tutorial via a small project by Nikolai](https://youtu.be/SQont-mTnfM) +* [The official API documentation and Functions List provided by CoppeliaSim](https://www.coppeliarobotics.com/helpFiles/en/remoteApiFunctionsPython.htm) +* Learn more about streaming modes [here](https://www.coppeliarobotics.com/helpFiles/en/remoteApiConstants.htm#operationModes) +* For learning CoppeliaSim from scratch, go [here](https://www.youtube.com/watch?v=PwGY8PxQOXY&list=PLjzuoBhdtaXOoqkJUqhYQletLLnJP8vjZ). diff --git a/assets/posts/using-python-api-in-coppeliasim/PythonAPI_Adding_Script.gif b/assets/posts/using-python-api-in-coppeliasim/PythonAPI_Adding_Script.gif new file mode 100644 index 0000000000000000000000000000000000000000..ab9bb5e975be4c33c5faa886900bb3b38f32d000 GIT binary patch literal 544616 zcmeEt_fr$h_jMpuLP9`#dqR;WB_JXQD1?rbD7^|uRlo>H6E%c{CSas@Ls5#TfRxZQ zgchoRbO8f`pwdM|MS1=F9q)I4**iP4J9qESxo75{yC!DFnp&QY?AB~Q0IGmv0Cx$F z&m*1BPg#J2OK|?GNPNF&>V~8wT1wmNRNQN24Rh5~vZ{}*&YV#?cUtk>Ikj_1+nUAS zwY1J?)m+mq{i~yPM(3P{?v2a~3aS@$E?m$(cTrdCqWfiiJskt`nxT@q;l=ZY1{X|> zFPdRA%rcM6iz(*QS1(<_UNSSfbgRq4!o*Td!!lzKhdG1OH^$*i?JX?qEiXAg{q1UZ z#qFYryOX0k)yY#`&NC##>#Dt1;@~wde(xtkKE=_#)|$R0*ZsUa1E{yJ2j04o<{dvBwLm4%=AyZpJ#LV;R37+q`gDE{V?UEp@XU@|DQ%&(1 z6-G|_M>05Jr0aLIB x=Eg#v$72SR`4_R^|NV@Ye5jl+-|rbG3~L zGk|avP6kZb1IUH>1T#9pE?`eruk6&Tue5xA-J#8VaKZ mp)D<|? zSfIP>A4N{mW3f5aj#I)vXw0k{Ab>>RW (sYQaj`Qg^p{ zKh9mNM+VC#z}5Umrf7OVuuZ2PmF;HixuK YvK z*a98=S-U>FxzHXNBM8|p03ftQF4W9=fTNArka$X(Mn%~%|AHx&XT0R$pL=DsifDa@ zw*zYze*b(+*!oud_WZh@$gj~v l=vqPsMehBc2t3s_?lp!){tk~t% U&*gb9; z%PEFje8Q&lc{ILo&&z(sQRw{J=DlF};iQq?G;F0O-?pWcwA}-6j5m*0&(? z7-3KS`)%|kbPM?5Ah6cp@R&+Ivz`{w`Jw37wtw64VVCva-GVnqsRBpmr{4ZOXgmJ1 z^YG2ln)UIo_s4$^-@f_# v9_A4VO{*nsVz~52$p$#sUo6tr6fTkoVb$KWV1kHfcz_-IBvgVw9_q(}?KIsCJB~zB1e4M=lQJEXvLlmnbCdFENrf{>#fM2$!Q@iS s}_crgZraliD;M~AnAt; zyn)V@fQP!%Vfrj^A`4cDhWYEI@9M#7Fi?^i+?fvhgN6m7ax6Z>egKlbqT`b=Waofv ze>w-jpG#4YD+Pmm5Cv_bgK@ZcN@T>VfQY7+nC83!T1!FeY(cwI!8xHqhE`#>Q( 8x5bH4d?GeO8BR@LT~N@kStup(E;_eP^skkQt9jIi%z9-`K1c2rHXT<%D+l6 z!ewgb%ha9AG@{FtzTg^{*)Pl%>NtU=8ywUy$geDXQ$WFr$wRK@a@j9<%|0S10&kTc zYVo6FG2ox8>A#zhYqiL86*u|)Lcx8ZHqN2Qh^O9j RPK? zTc5ShJu94xIzZJh`?#1nF}=|>%>0^xUsZ#1H6y=j2Ape#6`qe@ujvu48Ox8EtbYEU z `OO7ediOF^5Vt#3;QMmi3wjtwJRl9IaaZaV#`zRZ2e1&k6 z@0}+9f~M >z+MZ68ewoJGtU8LMMIdPuM9gV&D7|@>0%zf)r%xcsEZ857 z>N0a=c{MHn9FjE(t97Vm=^;&F93viZQ3aSY1wql~6#ELh&&)|g!|O+33_#0A45uFj z+y!V!dlpqN4k5B=AJLp?dhiBHUG1}|Su}hE(Dp`~v+jK`4c*c(+9rA)IReP7de+`^ zx~}#H{HaUF)SZs$2k_Yf_$->Ui^Ump{FTOYx-MD!wdnQND+R9yPq(kZkxMsTZ)sQW z{C>SD@@D5!NU;OgM- j-)>%sLe8JA3&lW# z^x!eiT7FQ9R|pVy40HwangB;8Vp7vsua^cng9(t7QCI{Xc3!crk^=LmfGsH9ELJ{? z#mS(<8t~A@OK`m*jx+$r{l4a|TKO&j%`mVlXcXc<3UM3iVClhADRA(6n7LwI7X|*` zU~`2CGpMFF6w`NW9>O?g^*)`2rR*?SgUt^tx|0)NNz^WeM{Scx+hAM&el{W%9r-se zX4#o5;|JHr0j@tgTnB`K=P3ir3NIf1;%XioI0g*99O612PSp hI4($kfOMIC63*C1eAZqz6kv#S`^lUNA6w2#kb=c`_k>EXaJMs5@oMGZN}V0Z- )d+u$eNaWKzyh&yZ2(?iCU4$&Q+Kr6yL33=|A++Ye!^)BoI3*yUw-E^B) z-JH5z1PdF66pps9?Nqgk4jtpTj`dzO&vUJyIA<#chj6fGqC*vHT(z7?#^?Z(9+7T| ztVMGXD+il(X8sU3S9Xw1_`yU1ye;NV%?>hXo{Ka*um?aE3vk`U!2RiP>B1`7XfF%H zN!vlDI}bB3)vQZz|FU3d7`Xk;@T*bC-<_DuzLG7yw_fn5dNgO!H0;Yz!;~xR;qg%& z)tL((%|+A8b;d)pE#S1#x9kgxTYnaJHlG=Pcery~0y1oNBIqB6;ePn8r485=v*Q5I zOrwDHQNV^Q)+;dZ%>IAyViqbG)!@Vbb(MAUFN^n{`|+bCXbDUFFAG@0LI*E#6feE% zS^6)SUyfT;U~B0=_vMq~ON#fF*L;>$(w4- Ab_L#VHO_wH57O% z9x}WP`GZHE3W^yRDh}Ei4x;Df2y^`%XdbGK94)FhAL8r+MDHHsx#Fm6NjgwOOw62r zYYhh3eC`gdwt0xU7^(RFwqI-IAdH5JDV`4hqemu~PPqm)?sj~sS^Oe5ZzfG)LsQu5 zx7h11d= ni7}>=$_Rh#jzj^YOGEq ;lPzKQ&dZAHKUEfA{$B!0Y0H z_tgX6`v?Ay53avC2>kH9NL}(04x%(JX^i_}jQ{X;3fZm
S-)5SBW@~TTuQ0b!ka}WyLRZnJ4ALp@xLpB?`ZQvCG9;zG)B8 zMG8CmGdQK6Lm~j4N(YO>5|8Mx2m&Nn51LSbaK}T#sNmm&Z{QrrPBfRnIy8dbd{vIq zP`ss<1-mZKWtEcqB(Kd8w-QXB^gAAf9BW5?$wPeqiR@g2eC+@Jl>mRV@vpXr `T73<#p3lg?nx8he+jOm9A zJSvN~^obqlQHX~NsD3KCV}f+hz<(4)Tn8duo1U+Ab7-rv_i_jZ*);gHh4;)ihJ3Cs zDri=6ZNF`^4&G=Ep6|eT<4Wob6FBA7E7wP3a}j(RCN#pBJ}|imqaUXDs8c#oKuUjW zG_jpHz|% EbXa6+9L~X zcfK!AK9jXB?ugtT()ySn=BaaMul7x7UvQCO{q9!Bhv03ugFAbR0XYdc_oiFh&kJ6@ zZH+!$s@4vlxz$$~C>LFksu9vsp`9!fl28&@A4}#>a-ZYMPQaIt^NzMeDpH-Sq}LFz z?ZHndXONc>%5$jYgn%RcR)VOXbpKQF+ Q$kl zs1le2nb%m*6K4Q7+CRn_o%9L2Y$8Gq8^wYVo{5-BCJ2tnCa`m2+NtcEN|lZukyxGY z#0OGDSQi4DhW`k|Zct+pLL;o@dQ1vT;>y+kz*Ey^IXgp%Qiho2Gh%6u`bfWbl?G|> z1_FqeOcLr93ThOK&kK6>dCJAFe$qZS=nc5SC8$TY*)3S5JAD3jUVoE2esz*x6jJng zyYL~ZCPXoGWU1Ob7bgA{D}2>!t=MTU7x=_=#dEEwCYod>e(z&IU(s#B&Y7ZUk|&6@ zU%F2-7nThSD0KZq8S#$ud)ne#aI;s-uPEYEi{In>kn{c}e#!&vxB bJ)?a=tny#a?z^S~w;q!5S?PR;x) zcMIp@KQ^DLBoLFd!_ehtR2Ve72VHTR22kY@+HX!_cDJ^WCLu9>l27WBPT)jftv(bn zPB9P(S~0!GuH@Z+QZ!^pNHBcX@4rLQxq#-oMGphtbVSTX{SZ4`oR(TF3P MunOOVrYjHKwGF(o~&F9-G(Iht!qZYF(A>)}(3|Hmt^33gDjAuP3t)BJ~ zy5u}Ep4~Vv4mSm`8E3LV=k?r#Nm>@-HJuRKB>f_q8o#f*oF~IEQA$t(CKIR!vN-OR z(RkTn85EvTfNOtxuI003Nbt9USzb1%CYp$dq!(FORA`sb*kwWh#Rm;*+8 H##$Ck#=3(Q*3zM=-ijf z4~PwUQk(wfms`g(;%%QO@X25D`8A$5mHG5sV}RAIR-2-O%!-TO18}h%6Ee(L@Cy%i zU_L$W2@e5kefNt%niJm-|B4HTpRG*1$N2D?aS}K@9V~d>zCL@h#?R=6^JKn#U0UPw zlLWf6z}ysVVDd$T?lZ>^`BMl@JvhhGTl!)wpD8lCmLwMFRafuWBb;3qAEbEfC8Rye zlxeEVc@pS*`kB)}Fn@ialA^!Svl&R*R70_D(Dlo0&XY~qjW2Hp1$t_`45uTZjdBK% zae$rpMtGGDouR7lk@brSO-IC-^!V>0?=j; 4(Alxn-h+vc=RHwK5-wYhDE=d^wJ z9vs=J?Y^5W(AH2J9IrNkG9;AVetGg*z^eAuUsKbsfArkE_r2}v--GEl$6!1GtmDBh zFhhqL w7|~Q;~EExKvZn^c<^btuUppmR ~_!1nmd1neZ8Q$07IQ!m8pM1ZDXs~|gXJO(U7?G#_ZCxizUiv2h3 zq=RFxFS;FA{B=JnBY#C&MBdEI*gj;m38XHh+tLepq4MS)s90*cGub$>=k`jXO4iwq z0IP_(caI@wGao=8ir?r}6&KC|E73p!iXKGpQ=grzmnujijxQJm60W6_v>c)QQQr`J zG(e!2K*7uvOnCj-9`HH2_p?358g*|lftH@Ji0_eCkHY+3V|uyo%|0zV8ZXnq_r0B8 zGmbEsnC=j8iWZIC7u#5Gd#$Ij6Y XUHbw%c(X7})AUKHN*>?Oia zo?Jb$8oiL?nX#`nsh#?(yUeRU6{ 1U#&F3_bHTSS3}8r?Xv4LKcPx(Aq#7!1lu6uD_OuFq zJDh=#Iym0rzY)0OKM{$J*--IU;2e4LdcT7ev-Nn1^F8$9;j91d?VTQhf695yZ}`1x z^FK-PRhb|EQ-IKu28xDzj||HV9;I9k6aD5XxUj3WT`MRo#Pf{t@EKMwidGGArT-%6 zxdWj0G}}XAt>y;xR$rv8_sXrVQ FsNkL^*yy~6~yCEX2H!hP7oJ3G**L#Xpg!o6I&>weEw zQ13mIvB$pAJ;Iw6)r4qMQXmW>B$RMQvpx_FwZ}lCJV56NaXvf{ya&jb3O+{xhX4{b z&2-KI63%#laGF3o$|!&m?~d<_NHK}b?29h%yOU`WnL>` ^;pOTlzHo$~O=qIS zW}=!S?uZe+nPf#~g0v|)keO7-jQCb|9Or6EYG?inR;Y*R!$8xA>i^PLf7%c;gV!uU z(JbSLnPg#>u49%`&P-H?CP^o#F#7X``lZ?W6Zg#uq)qiW`ty!VsVmHMb@NQyfy|Bm zJl_7alxFh0Y4VX|5vc#Etyx9+Kz{eY(|KlPc~P#nIdP(^RMXH+VX)yS-B6UG UDk{w?p&|uEB;7?ab!j)`iC}0z6EWJFIA!s24BX*J=G-+B$dGxsm!eI>X3m!PW zmb#wX+s8;w?pN#`A6h9r8>WrQrjiXDNrK!UO-+!B2k_hu&={R?<}hKR0j%!`Qena_ z<^t^rK>eAfKs3mh0zN*62fEPX?&9KB^{j51j;z{_eDbz>7cg=oG2!`c-&O!gn $Mk?Yn_F(6c?E5(03y95~-72!UhQ&0$;R_eDX(il}0fZ?_G}{)S_G zJ& PNP=pnfz}ar)b?Q{0H`k*udNBfQsd50|5XJ@1{A0UfV>a}RM!M*?7X`X zGmNDrJj6it4|}z9f$9`; V|^{HrB^%&4S$Pe7*Y4ptr@IXcmXNwU$KA?bocjli~Y4pyc!@pj-OAMmlQsbi=m znQRA637Ux?cC^8eZD3@a$IKNuFsWxIQx|OI;ba8^lij9m)*Wq`j#wP&Iz8U6GQOx0 za)S |xOTMi+Am$&5mBiUPUKkZ*L5E5+X1 zV8EC49L*z17J3esS)kjKQ+A`yRYndrFz{szI0!L+W0D-bK)!kib^|Poc95O&NM@C! z`v^yK|Jf_1vo97LLr=M0u61qrGd_2A&|wgHZwKnE88;6H9_vRYxjv`1@j@t$ARct= zSqc=7=XM4pxHytsM#-s(2~mRap@*eW^!U4iMtJ<(a0mItFlr3!_IZIEKZEm!L7X+u zxKY8QPslD*uvO&MQ3S+$l+1a8`(fS0))LpPA&5ObVOtt%g5e4Ah|{J(O_-3sqEKH! zs5fjRkdk1$oH*t5B9u^v_}7uSoN%i)+nD;udxhAs#QxEdsEs3;Qm3x_0PSE`?Fnv_ zKlYbuK?6q9FO iY0wTFba#&40rsGgV>*DQERdOplR1;r`UGT$Cb>QWWp&JC zf#0WCIyOI n|AsM4$O`B z&5hSxoV~DkEs#E2%(qhB }UI3fHY|Q{}!&%dIfLX>}kWucG znJL&&lWbW_awJUWW;s5vBws6bum{XXKXJH|`pKm>PJ4$m{v2dMC;hus_A1GmHe+o+ za~U>Eu>`+wT&R{;jbcI7cZg?3+3!}N)&?N{M4Nj!l7I)BGX8}D3+jqaa3_#`sMCQI z$ct9!iIlVV XEShv|0+@+2x@HXnho&vM`$N)|T*y5n>qC%5E-By-$i@_W zHQdX52K;yP!&YR{*LCqUr=+wNC|(o#l@jpySwihklPxo@uc*B5Fr5%h@epQmIYg@5 z{Y#A|^y$6p;dJ%*u!KMYNb_4+G@Xd{VE<≺%%ab<4+sIlca5?x7voIu~TU4hqo) z+j)=~w;dc|%Y9_$H*O?Q8pxIj`UeErPoHEyk&F%zI4kf}k7K6gbeP!3Y2DT71xLo& zHC1~@Tg*q2*ldpF1_?a-U~<{bKJfetXV0cMGy2EFn)u>Xr^iYwR3q;)qd7zIxj-72 z4>@lV{%JmZ XXpF*$X1D9hMNOra@7t6c8DYo@_B8)n09A=xIren*OJcS zKvt2Yohjd-zo2Xc*b42(@R_L>b0TkU*yydPJQ3!6mlgqlnxIK9V2hEFM&Y$E7gU~+ z$9a{=gg_L@P4RMz8#r+EbF?PZVgeH-m|!9Y4k`jo200BiIZGfvxx;*Go_xfNkW4B; zMmwu!>%Qir w)bP!IyBZ^G!E@kK8zi z^D;{WnJ0owD?#@ %LAn^bZI7eN)GMb5k(Z186h~ zmU?YptxG=tcAc#IRZIiCewG~6G4BvL9Ymh<=l7>if{h%3mnuQ%AJdd6U((%Ku;0wF zvc_uAO}wsQY$=Sb`nu|-oa()!j>t%=z%AG(NmBk9AaURC_a(B6T)Z6<6o@G{&4T@8 ze{8M^@tK(yQUS03CE*T9aYha~+u%UQc&%RN>7JQjUnkR1^8H~_%M*|@K0wKj4!c^c z!EtU?D}i3dI4vNxTV?xPpiF(DOjES$+z~^xGvJ|Wx&bUs+mU2K1>tsXBtNy6xW68r zKps?DV{DRexg<*(iIV!U&u!Y{FWIy }?(X$@;)X?sK{f$ mD{rl?**^|{l|~Lq1z!fhE*057S8L?p zXSmb`FMN4|%TdNgs9nzAUmrVVo~c%Jp0E0voK*?782g07PQg~rrq1?B@~KPwYEG2O zfNwG<1f(5lcy1|o-6;Ll{s#iv3) Zx6JRh#gXATp({L%AN`Obv|Fs& zVG#{Z5mmn$@1)h9fjnjZ!Fzlzb_yqDt?~|vm&2~xRlB^&)W6fTF(ZF$SL4{C*!X3_ zJ+&tKAGdwEEN|7h`21SMzN un85E%OuI)ftvXyS^v)J|oUX@iCjDL?+b gw`$^%|i{)_(l?jvq zqU~Vd*-O=(m6JFlA@YRw)_jw#O^xBH2TEHLuS_9A_(u=y%|7#6Ynv1Sk(%TG+Cgnt zYUiv}rgXk>s!#F8B^yWXKAH9yR4fZtn~@89rVu_$mQZLGeU;+b2Pk_`)w yN)Sd_=0zD4|SE>;AaR zpypG}p&=?~zKvY`=>6`N4w1CfEAfESy#Mjh-Jh%f4#F-foxQMLB3Byb)qe-nqUNje zY`(7d?z}FKnRJF;`Uk1Mmm3_sGh=v`WBq%RpT;Yi<@%DN%XnmC@1HvCPvVFl_e?Hx zEM=Y&dTKk6tkgof^2TN$cR;$NyLm<_dA<&=F?OUGO~HyMc|WxJqB$UzzMsCDxhvl^ zljS^qZ`_OPsh5K6=f+6)H!8a>CB$1Ajvh-l@7YpwGAtaE5+#a5mdH_;$7N;x;jIf& zc_>D&*t7YN#dxVahWiu)XwP%{C2BAE)LMT9#ejpaj6>u&xm+^IxbUd&gxujuGowTv zd%Di$ffs`vr9%{DMWaETk5Z#>Y@lwAfuNDGg2hN*`CU}JlK*9x^Gd1M_ecYF%ns?6 z=8o8>ogvL3?!x=~asO$o^qptwr`@WRQtu%2suz1A{6!4}+D>vm;NMH}mcHgT{I5N` zS~b-L_f}b^1f*Cx*6n9|&237vS1EZZZK}P@^92neJUN;cULz$=+hN!A?}RwlGWdxe zK-+d!;;q_Fp+Gs1vi~iZF)urBk|t2fdki+&ZNN?R@0OTBCu-~XiA>MLpE^_3e<_$J zqp*GD?7*#5ye3L?$iw^gi&wBzPIK+|NzRe4%My=|?98m-&J;OO8 XPvZi;Yv#5o(X}wzALV8fHY^@+#itu}ucv^XFOoOj`KGcludJxBgll zNalJshok=q{z9680v4J&_Sw|b)uJf XOy<^v5blxSQLC@VvpDlu@e#oSw&nWN; gtzpOJ~W`{w_KC6^{PlkQO^^O zbOqjCiHCu?XBFR2mesd>5I%|@CE3h-RKhw9WyF0S#7D&|%jtIvi5du{xIxshB6B@n zac64ASUT4wpjw%pA|L$|uFSE))oHQ({*mPZfnOmebV-rm!vv8LI)_H>QWKE?l&fDN z8_&mS&BC~p+Hr|k-fQB8^YL=8L 2bcAlvE^*8*91vh-xvh)JU!zD%qJJg{6kSB{yQg!k1@LgVw4!P!Q_P2M;0%c`? zx`jf5F(s4pu|{IWa^JAANmePuE5~PfWHkms86n|@B~3OHsjw2Mv7eP;Us@~D;wPkT zfA;6zu{G5Lo^P8Mla8QW8!~eyc@td&n5&tt84t}VPp_Pme!N4Hm8 CAMMt*2CzOkD~rY$ybJix#~2H z1h-jz=s*-mc}Ge-J~EDv(-VB!yNnMON#{W65j@wtL_g9YN~I+!xAkxJeIfQFVaFbL zA9>YJS;ecRl?3^`!b(-I9~+&CZ+LObL8@Vl*(<1P(;F4IEWD`qQPa`J0n3Z!55_$Z z5q<=BCa@#AD*L2r2{6xEHtq<2kP?qXing49Xvz>ok=_aMRQE!yQTlW-X}fp43qOh< zYyQgsyY{2(qBVlTw?|kIQC%;dTQ^SK=e-5PMD-yfJSy+@HCM*v5>Yp5yG|*0KF$c1 z4SF V~i?K`%x-`^cy5|Av687(C95C=l%p(r9f&l_T+l` YGih3sQZ^$wae32A#8TI2bp@k!Vv((L
f0021`F>>oYM2g){?C6EPcpR*<0M5@w6xtG*YOa%4vC0 z&GWdD`%b**=+7z!GMv@@`0r4IiLGQ1RxIqZR%|-MXZfq7Pne~m-U(&SSRr>95mEn! z$d?FUkE0SD?(^8=X`Kjve?#5*5~bu=9I1g$Zh&! P$huk_2oxdjf)42Oq zBinzbmvnWyRE~(MoGBkpok-tjSLBUT26Vad#;F40z~U@Ww7qKkB?Uo)Ge?Y*WP4sq zgENO>t)2GJ7N8ca3p2y6S?=O@6n}ZWw`qcPej*M-vZ$>3aCri#q{;ZxFLEWtPKVVC z{|R|3UE=3|Oz|5fqG`gxg*gI40=s{prxA}8V-p^>be77IDsYe9Hi}2aoXAxlHi9Kq z*)ojR$%%;ky;UPX>O$ 8Z@pf`$i z^3Bn^rB!5B3Rl`b^Q2jv`nn*6w;u)WSJg{Wm~dF`Ov_d*j+(K`XaVKvEw75&8BW58 zm2S_aGow?8vMHuBKM}dBJ;Yi=_jSw5SrfRQefPo=B5LP L+ z+Ze^gtEAMs7)$DYp1D)WdwNo0r#Uf&JyktxtKIM J z%FPkP>p@uox&wQaECy3Jw@C)88HS&lwVh*+0y6KZ)Jv0(4%I5zH`_&MnSOjP@WF zTbN$CMJ%l=o%XTGPn1gbX3P%vZ{yrk9WA|^K Kn&J>4$D6 zzH##No%#Kya>-sBqNECG_sx{jOY+8fkzzy(r;JlsZ=@3oQ%KW%zRKo~Cbi2NZZJ7P z-pAcb4)J}?!$D zP6Wmf^=8xDF)$oQUEJ@gJVC~7l Af)mebnljq-eAZ^e-9 zmXJF#nXAlvha!sAFqHKSr7KUV);}>9%7|1;t>)wt3&BdwoFG05aLs2Xdb4}*XKm95 z^y?DOW+fKfo{>{$E_u6YmMq8dg7Pwx0=<&tB#W^N14`{S3f^6dMwc_zO*Qt}GZnip za`QgQTK)v!eTprWQp;QZIWi@`oU~x>{UuF(DYcS^i|Fr^Br1&2z$y^10L#xiTB-KY zQ0XBa5f66737ByQ)apd{)m)++4SR&E7R+A4lni5vJf+byv7J@Mc3 `o}yG9-C{m4tzcb#? {_+-=F+@vc{ z`jvxoO$uR8x~;V2m$NKppOZ?rz_z7o5bdP?GaJlD7C;Se1G#zqQ-|-Kv rZm1sW{^88S6T z <8YB1= z!48#>V<6737CIexkrKyQG%f6E@*cK{Q%W^%7^XJVN*5BvBH2WAl;%82CKx 0X_f6ewONcA-rCBiR3@5XXO((Uv zGkq^G#O4|4D~=jR#9WMFil%Z(cUnxK>J1I$9GqD`!6{nPcRrtF`V($g6m+Fg$wX-K z1IujhbN{puFD8V2+L-82oOh@H%3V1kmiL*wV)8ZKuSyogyWZGH*vUxLyV)AVj!Xto z|1IwF*Fx_Z6A!m fvcgZnriHg`9UG7noCo0UdN#|yocR1`QrMl-QPjg)T_v27hO;s*2 zv1kXZ5^Qp6w0iH9smGM3!6}&8#_(k!WQ@9Lpfh4;Na@Y!^Hn-hucvNx!!^q`Rcs~k zAz@dp;pxRkX7cf+OHX_&gkO{l)S0XsdHI{BYnhs!@6~8@VlzQzwJ50Yj4XM~nq=}~ zeA)AQ5O*ZRgvRHW1qUQ2a(s;gD^j3?2sdfDVWCeZc_COrd9q}4vb*NYce!`#V bQs`vx^%sPTFigqu)dT(r&4 rjWNqPf( zGYo$7Z=8Ail41TWVC|#^Omb8Gs@7elov|gw6?W!4QTSe76VXsX{gFQrEYbqeKD~dW zp&s%6n|vXgCND#5i0$;Kg7A#JB#d1dLlh9jN>XEkBbs9d&s-#Qr4In3&D42Zti?X{ zJYMNhTwp8ZEf$f($^eqHlv9cKpWt*)8cE%9^@W(kG`brmx{ErR^6?dicYoin^Qccu zu7VbXo!P{>U* IFq=~Q}{IK|3D9#=wesR2kH$E&VDLPJlCLHS$KHc+?=H2IWohp3v z3AXzS=K2aY^6JZ$2{=o~p6FrM94|IOy*kpT50jNam!1qC6bIv>-o028?=v3W|AM0o zu|bAMAT2hOzO#+@>0d{A1WFfGW}+`tgne!$ FQ$G2YAZ;cvv<@%aqriD>V7mGW| zmawd{3{d3cDB5RNnGmru{M5 6LQV z3jW}nij~`0A}Ah zq&-?!c zOz0EAs++4p=COtoRA94_@b-h@;_rqp_pe>=G5(8t+Yy(@`C KSkp7V{_@Yo~uaJE?+;bHl|;`^3v; z#VZTNfs&qme)r#pVPhRS`PS_}72*n|+|%FM*k$uBD+hfXlpavc;+-#_l#TupJJWUB zp!?%!+6xx9;?bb_H0GtwW%QpHG?+$FzJ-9XndVx`yC nsuK V9CpvP+X|ujl g)QQ4bI%^f|R+{@tIXm#>pOmdP()3xE9c`Gk4m^P$yOJkR zXBSe|0kf7iCiU}cpv}O2TzmrR>kGN3ioZOL-d}o}E4MGvP3rUK(I0-{oG$A7_RXi4 z`%*aax0N@K{cIl?zWTAVaQ1uJ+)#oDPu%>+BgaNvH*wvP*~HnZ3bV6iyru&3Luqx% zCmj(JZ}cMHP3k`WTXrMn>xY@v3nFT7bz`z$KEM8={Ha0Im!;A8^zz%R{hiltYIi~w zWd_ppL2jHmJw|| QWoiTCH3S2Gy!ISq?jS&vr_Jad#aEJ4%m!TfG;wCbXx>7kImm%B6V(hSoR}Dns-6 zbz?0mld-?;7|y|?n;GV9N`eK=r&nfACEd!kz$BfX{ld`E^qiB<%=?>M?exrvt4hIb zHbpLr7%GtOU>A!;I1-eUM$qrAOmmP4PRc@{yJ4vU7PvRz$`S#jZO!Kwwt8gL2HhR+X@f{-= zK0Bv8KCBHdt7i5EEjU{_->c`(i?X1i(V^lX#g?V@H1(nA_4KljuAV8U{wvy`TdL}A zB)`#BkR *5h|k$%*lZc%ApdjfiDzRkD=1i0e(;9!<7S6utO`eiX{zIuzy z*Q?6)H5%;*d(e4}vAi6cl(ZS!+Rjg{HQ@wPT$vSb9@-_mqunYF7^^Sy2^*TccY=hW zWnE~?PDFaP1(@v<1ZTI;=`3sAsMJ^2xHEp@ 4vR{7@%BR=`TSy-d)wo6RfRA?U+Vwu=brQ?~O7rFH>p z@0vp;s{>X^{>eIxoAyctbOA8e=S;c9>m#y{xyAkduBk}IEQXjDME?$fh`WV`B;7Se zx3SR|+D3t;mwsk9vt9=|ie1m+5o>U@DB;!6?L@p+EiOX%14H;I_#{C_+F5JfSpoVH zyVz)QV%OLPG?X4slhaz`u`ePZTCx&OhOhC|+=s>>L3pKgIPF#?uhUYq05f?={RSiL z5~y9oU}ITbXf4sf$n<0`Gc7e|NCpWpPqjK6S2!*|^16`C^U-3jyrs+RXp?GlJcG@V zU3qpwe)6SW4!O;;;<@4`mvmEJ=R;>}9*0z)eONRgA#Y#nEn9_3C^geoC2>2Aq+ycA zSyd52b-2^gZF2NKvq_4fk4A6G%Gp-V^@i6AC`Sa#S(QL(eMMEz2Dn_4W}W0H-%`5s z)+1EoDuw)#9y1nHOoQ3@6kKX}nu-Qhg56*jvWl&J2x{h#*r}Z_&Q?y*nOut7?(a{UySafpiQIIEvzv#30W%LpRHen$(E>kYle@(n{RCV)Kr6|cqH^> zo;USLDDTG{0SOddTb`M-Gw0c%ox^q|0ISX=|8`be(<(_mG;cPqT&Ogyn-g*Ice3O@ zP&aNR4iU@YVOEz-_fhc@y*X%>EQCL=H|pF1Q{M%AOlF?BH+jmnWYoC4dQ|scLoWI- z*VL~=AjbnMk8N-#3?msIyglh9$RbDk;mQvtaf0-230a5xX%|=GU_o{R9@6R)jnk@y zBeEw?mVI=xcB)iu{+p(9weo2oZ!K`_-j=o-+v)4x{qPN3{K?H3kQSxO{U6d?4^B;s zS~7-%j3^@it?`pr)}{XbG(WwJU@lw#5E-opYHj+I*}b9(Xz1=} W@F=qV0(p79$E5D6PUEU=^n&ci(n=vbbre|_mTFIzX51xrWLku#)K2n_ z()&yp6Jt4}ronlUTA;ixp_h-;3kXeUqIPq(y}wbF=t7p6W-~Qi^gK;EY0_)$nfJrL zvscmKe<$yRBNawTEmOf?k}JyQHwu=jhjn&>2zOM@E^2Sb@RUggmWg^;+OZ?U=ip2QLt(=~#V#-HT8U~W*zo%b`|*V~Beu9c)~4P|)e#DxkrDe zhBLPZHI8~-MoSr^NHL8nwhFl? Di_B;Wr6ekU=_=PgdHi&9p~L(FRDKAk5g9@! z{yai*1h=bFMCT#jr0Y%OfC?){JR$(DNVtY>?<-)llZk@fB C{JO8@l7A^Qh?our}+f4`MIhh1 zk%ROY?e+)-ls*oXq-YW{7;D~nFCrs^5- !iPa5c^0cbZVail^vpnZ!%&@JxtE>A%lW&&|&ZI}!}y z6f?=is?B&Xk*#}u5NF2Xwicl Ane}#w%8kbE3bN!$_(er}mdU&Ik!|dHv+_sGj^eq-0ofi- zVWBlBkzrlXD@ucjHQRvht)ZryC)dGZN43Tp3b WCM)_4}A|B=s;1gei z24@Oyu89u~3&&=@0^&J@*&siuQd_- b#4#WFwc0%*qIs>3 zf?=}nvfduDZZ#rrq_SPd8-ufw!|{IIP$8A8v9fD0CI3wrmxaZ6tR$yBFu|eTZ@&~| z`K(b5DJS&Gtm!mBnSeiOkk-{`@_BX0669m0w>}LbaQnfm6)`8)cTwxjt*@-B=&;G; zX^@+Mn9Um01|V#=hSnOVz|5%*m=8 Og3#e{hG9y!&z2LVL<8L-$)i9LW2 z |0qHtj;F*WDe)-I4Ux?_)`+RD>jrSi;FOnXYqXZe_L^1^g(S0krgX zRETAu+;^`{?~4r{;<7sp^mf6)sgPYFVk~pxZ|2)PfaJy@a!GxoB1F)DR8O-4WUdJl z_F@z<=CY(fkEsS%X&rq#%RSRhpc;z+A+5x%3 zHfuw*2-k2HJG0HL;zxLidC=Uh94pZJ`-C1WN#X0J9oPbc z67sB+^pIEWnY;lO+)7^(Qkba=HseZc{g*sw2qYCkB%vaE>##QU#EFC8H4z)Y3EWAw z#HLdV(t(YNjt&9CS!Sx$jd7eDoN*N1<8jPcHtrI%b-xfdd6mzA>6$Yrx!wz(T9Xu| zivI*?jRoB7V8D?KIH9Uc5wPTKFS*5#T&0SZa;>n{+qIKgm0Kk4;YG@g&f#j=4Nm0RAtu`>f7yDE1=VipdgDY zkgo|{l|yQJCoHYj{FB$sH~Vs-{=of_rf#!w6Os_t6D=?V9m)Z #E<{hqvsr)f$v$J*DJ z=Hq|Ip=H>n*=HN`^vae!G?Jo~OkoTr)+a~%`eCR31Fb2Pj+~5<9j@KERNa3 2(TRB-4S@%>)Y zWZ@+S@S =&iEPS<60fhuetaMV}%pVg>tC%L={x<8dRW{N%xGX z6f(ass^G%TDd-^Il`1HYVRYqp4Q%_@8mF6_2>0})YJ7q(UsX`*BV#LNXGP=-nq{p? zhyzXBX_ISo{0`KTPzL|Bdq1lh5Bd{v>EE~851|6#y}{8A(k7u-**{a( #RnGZEhkd9YlRtC z3O*EQ)x^a;h_f11g8E#@mX;Ie;PhYRyMz%>{fW2)kV?e~2Lb}!DBo%eG`3_UpT)ax zlEf1MBHoNEzwltD3(u=hnm j z6l_R>9epXxT55HbLCCyS)3D+VPCL4%P`Hh(<}j5f?uv4qw0ivut-k;4sGvy*fv2Qm z#+oo*jlTyF)k}s!sTJ6886&L;X@v $!=OOzM*Gf83CCwwMrM@u|v^PWb zjy^(yI&1xkfa~wsIeLB5vw-*KA6D2gm@n!DTnMTH^;1UcR@MZ&dfD*WP2tF7n8`Oh zcTWZD1*A1^`Z5nlzOZdb_+z<@t4t*Hg_d;7wl^9Zz$dY;Xr4owtVP>l9DOU5?<-b% z#|GSb5=X!=a{QE40r!ix)SNJKZUC`JhMwHi)tiBA|5}lpWD8Q!#wGfxl?q>b%z4ib z`vrx5Q8t^ddm}2gszw;d<|;SY2qsR23*ccO!17APi#Ke1w9o3?9kO?o+WhUzy(~ z#9siBAXX&EUxwQj&t2;|$ D8fZl9vbE`a}~z207FEn z2xjl`6UGS;f5L=v;*U>5$`ucTu0glhphLZoj$R07@9{Km7Y_qge-qx#ES!D=c~bG> zDH|k_D)@b+&>sN#odthV@%GTzN4VF=fqLRrZ~Kc@GT+B1+3?_Ex8xl@`~2R;fTu1g zR^&{KzY_p!rgMQup0G95fcRqmA2voK^h~dBrJ1YhQ{^C7&9I?gt`WY^mc)5cK~SK+ zDuUhg`m;`Jg5yo{rC+H7+0#3z T(!9 zB5fkwPl~URP&Y{M74)6_z|S#Dik>tF*Osf%gO@xifXXcB?hy=zhpkfJoW}#QY>;}k z=0kUl&|f!HWp2W5-q>+MI#dbME5HVVA`!iifhI`@ JVhaupChdWRg)h+?P@xIg#G@M4mT>+3FJZu60A)p}MYf#SKuWoB# z(KT@^HMlnh9yA1>U=Vom!f}88{<%?V1=jpW5ohZ=Cu7&V)Qu|qJW)y*3oiq3f5@mZ z@gI5=62B!`W!x;@-V $(rCO3LV`I`r h#me|5f^{ z>AaffXa-7~cNf`q**b#jbHt}bb<-%PkYfr}u)fKowLqC`=R}>g+gXNHexs9obH4Jq z5}MLnoo(@EqF#h@{!52aG=3~i7@_Rkc))H`6Npu|X*gKqnow$0cF8+m=I*TAs^plc z)>`8IAzM3Wtm5R^??LXG0lE<`O^dHec4vn3vNLq_OM?Ap8q>c+AYu a}GtCM -^l)0WLQT!x=M`iR#KuA4N-q=ZF^k?E7?HR=$L6y6-oKcx3BZRY4&vs~<_FlyR z)M|Cr(?(}Cs}qV_9;s5+U2WT#Xlj) ;}p}L=OUQMlgPUEc4x>KCvgIEwFbV^q_;X$3_X(c_9)}&U|D-Clc zZJ~3ii@uJ}>fnyn>gRYC(zG*Is8$#AO1aT}+OtKYQI`)Rtj?Ev5JLJB?PD)rf}1BI z6lm~*OJ3iLzZ`lm=I1zjQPvWcqMM35QI{%{JC>E&=oTQACD$rzt=i?I7Oh$4A9_&R zxv#G@pDERht5=b7bAvN}fA1n!)p#b!KJ?%&i#~PggGa ky>Sh9O+#+aURc#ap!qD#jtF~5Wde@&- ze_Et5TJ!Km_ea$+%KDH*MZE^=UChZbTr^#K-FYK6=DkH9pPzW>a2AjOa6tND@$9^^ zDsHxhQ=qsZ)CRquS9kx3ahid9TxSh-?;tFh3!V4NM(5jf<=B}o-CnkLJ{)k|Gx%}f z#s96*LCxdu;bYq~|29lgSpUZ3H>_FzIbKtC1dzo){}j@H8v_0Ks7i8=Y;GXgeIjf` zMsj!6++ZlGH+o)1^7C{BhxSqiPpBO-D3%+9Su(ob?R8`D!mw`TkBHHlBj<{V<( z8DctExiPB($kn18Q<}V>+OLFj;hil$oaaPSJ4#jQhiRTGpOC*btez={>k`?F70coV zBziV_nhoSVz1!iJw=|`!Swv4&uVN>~^)F?8CUk*(yA7qTPGow7f@iUAn$PLAcBd>K zmHg= Q|kk}^-tJC;xtNm7!fYnA9A<-9hnR!m;mO2MS6 B`VITxW!qs)s)Ut9X@5gSs!5g^PORLDTLv)T0`m0xD2S rAmX=t@1OC@nlZZK{St o4 zxH@Rz9 q)jv+VfU8(>QATVW-K+e!{(4EY{5Ch73dy{+L=fIYn#qW-(Qj{u*BN|nu=xX+ zulOBaZ}M5m?ly0uT{{PKUBJv>agFYt9S`qwmDFup<969q7TaZV;U0`-c=%K~t=4lZ zPm!S>ZSl7clM&x~0->b&RMf5o4ehP2d~7|oC;|`=<9sLPtE|M^_ZToKlBUDnfWoi7 zQ7u|+i8ot6($o#8Sa_&e&Bmd !%RW)mR{sXifk7>uw*z|2|1~P)xy8>It$w zSb5w;?r*1A*AsheosqZKtn_QEktD+gBYXM0291Fcb>D_Iu!>6vH-QuEkRJq5yaQ;6 zx(^I+V#NcsE`7BcwW$(mN;XwdY3K3W9y-+uXw_<@rk`742)$~Uhz?dN+r=dXE$R*` zxEy*sV5DOo$=bfoyCeAt?5okH$R#gtpE4k8hQ*}0DpociUe0jehg7vn@3MjYX*!A- z*I(kU3#6BCrVVVS56TFI@WnivE3*$6I%&a~BKU8(#GNsda1T}R&2H&_mlsudj{=vG zd%*|(Mu6pL89-X9Dl`0zb*$Hu^KRrxIaDT`bco|qB?E-Snuql!dNUw_c8U9KNs!m} zPjKT^l40eVWo0IH^2;()H}*R3rYZF6ag `m53_d&X_++wr{Ag-+v9(9nNxndMZsG!0| zsvL;RfL$Wr>x4evq!#F%)EBy{D3j}nw&jO!sxW~H^EN==LO6Jw_x;7``bm4rTH4UR zK9MDyo!n9AtNB^(6HWj42Nd7G5S8dw|JGjXvGTLv@x}Lj(QYr0kh!7<;y)h7VcO!Z z$M9K{uopCC4{2t!n=qd8X`h|ox!(jxw{*Db_q=F8UXR3cwwWMm_!Tl6Dy_wc(A1jL zy$}}GaQ4IQ551R%)-MNKB=*U*MN}o d z){D41Svd$T2>R65`WcSvXvL8*wf=j;ZQTi#wNpa%N7AU8wtfj*JFjGCi|Uz-88@d| z86j^p$fF|eT>~4JA{Kw(6b&$u |VVV`{K^CZ}-e^67QbR(U 60LYpZCJ89{xze&oHY2E!Yb|HMWoJ!O3Vm&j872YhN$p?bJb42$; zMSIxz)YsgYZG83vLeJXxPSjm{>2&SCJjARM&(Cl~#-VKmkyMQ3y-VTApT<5hMVlp= z9l?3;Vx_Kjp1M9KQB2{X_iBuNQ*XB89j2m($d*b!tO~Utqf8THP0GX~ScjqI)CqnD zIPNgNq%JQsOEl>QKpJMO%w-_@RiMGOP=A09w(fF1K5S8)=ow})N);)ck;r3Mr(~m! zd=Ou1k#X55*BPwGOmGxQ$|Hm~DjCTwEvgAH9XB&IV<@`%xvdXGjAwbmLv`)LMc)hw z8ewd0?IVZTENNLt%VFv_bzzNliD-sQS1tg}#*Si3ySKzjMQ6z Gpzuy7qwFF~E0N5xvR; zcO0a3F~P@*;nXx}9}P}FNLy}$cCCVj`!bH@!r1!;Da FZo{8v)2_y zLCyd$Lqsr`UHa((_~Aihy%Emff%`wac|MFMmyEsCuHF*QlSAgoWw*GpCh>tJ++=ET z4ZtI*i7q3duUB8Fr3mxtAcydXW(uTmo<&v~rZof9_T#eaNLLF?uNG)ot_*5sRDu`U zjtxPGXn=MbMyra!8 =5JZBO33m0Mz8S&_qi~`A%Zwh-6+n@(P|r zh%{^S@i2%abvd6pPeRlrKoSXV)>K8OaK+4eHM*Qlo_`AcYcdm?GfY&h_;${2#zxjt zI wl#Y@D~lC$hbv(!QEZ7!=_UzgMJr|(DeA1De`(kxv%B|Hpcm1( zED@OtRO!BNpj bdG_4sw%hwDSGtjgdJ4l{*V3n?6*$@)? zhK4@nr7>==k>M@=)Vub1wa3!|9sk4lb$Bu1fh2z?5&H#kN*c-A@6}MFo}FFXd_Z~# zgFH7fRcX+5Z~_k x}|-i>@B>k(zCO}ZrEG_Z>dbzU&)pu~XGp 6-^iUx-0pKZ3i_{9SC& zpNjnQ0}f;} *+PR)s7w#SFX(_{V~Nc zEGG{$bDk3+J!I~*tfY(Z%0AOdFSy9VWklE^F&iBf3s+Zmm6HByW;%=roY(R2DoUS` zh*vT%%oZ8NgQ6< %^F}T9ALB2C3x=;2VGZN9SExME>W%(`j8h%bAS}DM*8 zz%KL^|7p ~F{44HW1i!@p4YTDO4R z#{{tvUl38XHmOXzOCY;~m!+&Wv31d^Uo=AiGQkw&Q%sq}3QevG-s=^8K>^poS%oqI z3=d_uN*@UA;21J?ziMw@?=FLOFAmz2K2PZ3c-iB+l7C5L_&bpF!=}YoyLtN89s`e#?~sk^K(`8<|XxK*f|$#VZC3$0jiN zk83l=&AJ`El%V#D9g`fZ<~}fNdq~Tw2DvbTMRhDn+frd%_Dr6p=O~VdL_a|-yz{z! z(TARb!q(2T(IOAypjECUBk7Kcn 0pRob+k_=EN&>CX2Tql7H7OtBZKP z-^h7XBye1xyLpH|>R2LW;{!W`HY-3}a(v0FT>t90`d8`8F{;^FL0Tk1U5uE>2gQ*J zG44BRyrDJrOQLVT^@kL@eF}}V3;~11qvD-JBC5?4L(Rlr=hlrOb6`AljBsK*vSA6O z87&fJOnUY{?q6h7VF;QA8?baONR$ql%(9v#*PL%m(Dd*GpEKoeyl8YsP_RymS6Pgs zXmZ?c;1aLc5)52UKbyq3?5rZG++W9fGVr=rqK1vQrfxmvM2^^Tk889p%bqKyRxy~o zDg8XvGc~3+BQq`B46?zsy3ZlWiVls>FD6~>#R>_Z7eWwN!%lvX$3~z?7!S0WwBUWN zwM4dWu2FTBy{buOK*kt#WRxRr= t zXae?xp4H?};X5v;{j2hiWAc76db+Q`zrGEAZyuOv2o5GgFZS{FQJP;Q>36JVMxnvw zDt!HvmQUAJRkmBrgc7)lLe9{^zb A8C+Cq`0s4>Hi~24VCDQq9a5j45h0LzR>7ve5CNLMRb@qxUNJYyg`t9@8 zX)};jibe=Hty)SK!qX#Ik8d*!3vH4WREOs@0$6Hxf-6ht>;U5j5nt5}&!Y^NE^yUJ zoE5M7++K*iId^*a&X@0l5wUe0{c}xhmOVs>IyGW=y2gQa5gjn2Z2&R++K) 0jp! z2_cojcsxyb?q)~_3Q3h1?WlbR#dTsI{bEVI#o&DYsy``~%nso_{VHCqP^XlFe#(6Q z e@&rE&3#*G7nX?%d@uDGbHSvwN@maznzB*t;l>}czMmDdl z0~N(;N!gh=t^f2fDSv3CzXcW}!LU%>yK;InMm#Ebq Hi;A`S46)9qnum@D>7LA8&-LeQ ze7Sa!4-dc`bG8dw!g*+(CT%H6vADV(B<(Bq`WR{|91$~Cg^3rwL#>)zSZH9=P9_Kn za%)}O2@+tpN`H4i8qHzkg)CCq$l`6MXXgL>>le(4@It*CAoDd5!Hd{L)sSSJr$yQ? zQR$eu?OWDp%{r^*q8s(A@6|~+de_8m2}jI$L|K9?*K%^_+`e|y0O_7O>Y|?#s?WEA zQ#!1`{#T#iF+~UnEDk(M)Gd**?Ky~$ss%x<&+VG=G+F4IPqC|Ju_1|UKsx|}$j(Dq zO!qKYt+-(m${)=I+keX%%^BwR&>?pO9j8~O){K+kayHejGwY^w#EW}ZirUwE!X!;I z{v!EvBrF?(|FJKAD$)*GYMyNVKC#u|Gn2R0rF&Jht9Y?-CJz-Z-{o%^wQjI@biVb1 zUDex?@7o#5HhCH$V|kViau#_5zFd6Y?d5FhtU^4;A2=yH)jNcgXj#rRIC(0CSS>uf zw(>0cAN10 !fkq$ zi-Qx(q;M$vV*nx^$r#C)-`R4RZsNs01!hAr!xC}7bwT1TiKJv%#j3neE9IsxhstOq zUJ2nEi`gm+^i<|8DY-RwvY|SNpjq O zsCF{&Yf5{y_yugSGbZf8BA1%6Bg$VV?G)<2 br#-aE;|E5hG%gYQq7Z-pXO_Ad zKpDrRak?@|!?8P~gK+b=6)~{Tb$mxf{7|-Bp+f6XvP@-~PKgX7*CjR}Qq*1HtiJTx z7m)zuR~}J~gp#dx-H14(lGf|et;y 9$L_diR>#MV z@!I8Y4?#C`%v@(nczDIe W7b +0AzhO4`)^t@`;S(Uw_j{ z- 9GTDM`i}0_R>Plil$=AUlc7y ;&V!+My&pW&YL z%O<;*9_xCQW6iY_NEsTJG-Pbcd!Gl$%4v^MhT^<6TYbRwL9J;+KCzmDbA$4! L&kXlGB<*j@9M&T7hzYC2>+sF}wAt~o n>l>cwQlK%(Qb`RaXjl2E>VzS*vlJ zpj9^RB71h>HVV|Kf?Z{NhHtaIx7ZCplQKv$0`+BvOcR9Zc5B8HhxS>CPSrAU0T%Jw z8Icq($)%zsD>vSZoAp{^C(6wAi9ey$zwGJ+lmcw^J2GUx&x_ln4NLFAQk }HfuZ_rJw~xC#yx>U)mtaPZ*oEKhyzjqd z3*IR?q5QK?m>I4d^1{RPF<3L@#Gbk5<(?M W5N|;zu*& zK4=tnP)Ru(sOv=K=GkU)Kq>$NDnyXB16xLTUVrQjGVE$w->nlpn(^K;RejSK{UOYJ zPL6RkujEIZQC~*P6KU~3^;`)j#rgQo
5j_R| zIOVzSfZjh?`sPu$#CvJW{pJ3Ej@}#UR-pDGUyzeL%JWH~Ph^6c?|YV##-)=(g~=gl z^%n8SKMfQ2-tJm)h1@^$q8_q%Yw&alx?bVTqsky!MBDkBACW`t{j#*evQMK07v4~9 z+-KunADP%9rX2^_uU#;>?|<#$TWUhId4k}@?RAm-&l9)$&ZBNwZrvz9;*mw SP#l1R)O?k>q2M_H_iZWHZBkwL)i<(7rvPh zJ5VLDTr`MVf CPhq`&$Kt)UhTH7jr``Q4 z#p|17xyP1Lt(P61CjY=zC3oc_$NM2ORH}C5`mS`;{Y!Z#64m|x<$13-z#FGi^JLUh z+NZAy6dxcJj4(XS*MAGvC8x<6&6F|~r_^o~%da$AeVPdW+?E{>^xAhY2kfJ2J6lm# zE-|2=uy*1Rl6Of2vT2DKH_IExzM)wu4T^F+>&R>{Q`3q}v-f*7|Ekj_*81jzpL7`F znHKzV>7zg=rZhZC5vap?5!}|&sAOY%uH~gTRu6t%BcDg^xbx)sy?=h^(w>PfjyN3^ zk C|8O*LvFDF%8RMyz@kGaaKy%!Bfzq+UYFAI^vx%rW}`sTJzkU$M7_Z`l@qG zy|2eEA?1XfKj#Bb!m-zO|FwZj7U!{#cWG6Bf!s4U&Esv9c)j7Sehlxk4cXYZthxgc zH8 Sgg!yz-#0S;mnaq6>ixw0iZ^XL1f$lq-t zY3GW*EULW&GM(u>Dfp|#Z|uZAk&EC;t8&ds=BZd4)Azzj%@uc6C}t_GH@-W_@kb+y z(YdQ93{K`$YTyOE74@dRR3^2{8)l!@a_2(WXYYmqV6GHSaw~6O@gJ*GlI=;c$=%Un z$ ZtDHfKfiR30TxsI7SG7)%z z*_~w#x@Dvu8O@zJk*MFz;fA$v_vbvtR19TBGjc6b@{158{Da0B(+LNO#kJbE4TIWz zslOgU{E?6=0#)GRG2I)-%LHniL0p0iPKzQ=y+)Z}SnvvQ+g-s+; N!*JQ8NLNmhQM_h%ycv$; zSPFGxa-I2^bb-Ku_otbmIZbi#W<(kQK{F;ETb^7+P9vUeiP}Y$|DJG|AF#XsOp;;7 zncz5FqPsI+kAST$LR~q1E4b7YX{JODH6xA~J9~BnC!Js$H3GbariH9>tCBfg$ngX+ z?KT^Cm_N>}JKoAJWr|TEVKBx~47AgbP$U$2CTA@s12?QsyYkjVeGw&2Co}}9Kp6_- zGMobdA*%zcwq}{LY-ig>QtwfObY}_b1_^o#P0lzTQ)2GL5ka}Rvrn7pm&iSrE9f4- z9M7Bs5-EB{bA?P62h`9}<&-9nASlx&Emw`rl9x-bN-pxD!#)aVRK0GGEGhL@1kST( z9u-M$AL@NoG<6cx_I5`vn4D7=GW_M5;nErJ#7rzjF3hZo`XI~RG4C3CWZ8T+eepZp zLpQyMtkoo-6Vof*rc`uE9O-vKPMt^YI|^1e{kV<27=b$fiQanU?*phS8(8#3P{lEM z%jE*2l>!>S$y)m1h7(-5 L96VFAPzAy$0-=6T|JXu#=aJyOpfj~-Coi}0wJax z=E>ZrSU>IEK$eB{q@d&^FPxiYH^-?W4jT%`_jvrBG*0KN`(q yC1p&tyZ2_xS4`E|TITY{(f~^?>u#Fe0Zr+#hG{oV=f1|%?NqxF+I@k9FFQgl z%rp}LxE3F 9=-I02sKJhYIYb6@o zLNJ)OyK8&|X>kCad@5~xQex6{sDzmAQJPX}ks6R((0*9?lHu;{e;4qv(c)97kkZRf zEN`kXKoMYZKFkXMO9n*Q3E*HrKQgBqF`+cZG7dNT%NbPG@Gx>ZA!mRqTb$d&l{-fq zNOt9xzPTJHtL`@fWS2||gIRv>oB_8ddX8|p_;b2caG6o!(M54`)5E&t#0v-AeBR5| z#l#pP%L`b`$dSY#SM_7g5m-*FNL`CI0;<7AJ)+%66{iHd9$ERj6J3Gl`zkA(?z--X z*x!d-p%_cPKIf^#J2mT2hE{mC$?sK+ymBDvTrp=`FJx-R*#<5pWXrt#M?354bq1q< zl_aiD;jB7ww?}NH_vv`Esnkd}eWQ|2NN^g}wqCEM4|_Jdz+r|boXV3Qm$4M(%*Ed7 zrac($C=ARgs{QHkhAmb1V?NJGV0wf33PJKdrM!Ec^W>41pndu4)O+hF!yUVmfq`c? z3HjaniLQZ(uT3V_26)hXcf8U|XB3MzUOUW@JTVsxcv2SGEqR03#P+_)ZhY~&h<+!8 zc^PU-J>n`3eFKkYa{1Lik1Bmx=7!78<6{4F#?QYy0-J>3O^GIcDD>tI%lZ&$R2dPO z6h-`yMeL120*~n2ykV!1K<*$TkaycdeZ}o~azYF`32sVa#E6o~iQ?>)v2RCj1al+* zc83vxHKxgtu9%~N2HDsosSLcV4_Bcp@A*yqrTE$U9mqRu1u Xy~t5|AX>{u~b`EA&s|n4|cR1hd6D!Y3<_!4n(dwIhv*BT|h~`sRVSb z$mW4tN0dg(`9qP*RYk*0*;~cxlLs3F)4M|*;9I?=bLd3rp{IZb!3nFD8@hMFy1>iK z&gfrv{g%MPY`|AI2fJ07eYCa>{lxMYWOu0Zj8JVi{Qk@ZE*G|zKni_Svx93He5*lv zL;7MZ;aLzeRpXbBXn%^#+gTlT>vxmskF3jvelEPECKe&&)3fA@``=+d4=eLSXhb z%&6bqRK!!(NF%EuM35{gm{!5%JI#nN2LAK``jUbBd%*{+@4<(X`}@JRdpi3;Kf8J8 z3GPd6 ocKCWvQbhj($uW}v>=#nR{_M0fQ)lNN72V(DwfR@ug#db39Aaqrn z^j~*QbkmLHCG<6O0~}LZ*r69IT38m4XU(0LiF(9?v;D#vXUn^syW>qk{Hn6=Tf!Em z4H7!Ut4Zv1k8cHz6tSS~LXSf!(Z^t&4Z6EQfhTJ;eP;UOLc6l(>smSAEI;F(nQnd_ z^}DCS!FN~Rm!B5f-cg-4O#CFfx1KR{U>Gbgg1)6_9u-CdK!9R336eZSx1VlVxJu#F zoQt=UWkQo9le=RMu+*ZY=z})W?IdqjH~&U*I!@F-Gcw@r{{W^yS-*B_ul5IPnsdgy!d?+?kiFD!vk`G+RMsz|m;bnAS?Psc z@P(&+2CLwXO-a)_N|d$Agixr2x@eSBPK#BbglzkTXz&HyxR+gwj3Wo@U(f~6CeHBL z48p3SN4?D`S2Nw%<0|?WNmdXs@@q6|1`jWWMjZ3U|7Zr#%^cX%1y;C)mX8>qaHmWj zn`jV`@bEe=tZZ0?lupdDOhcyc=qq=*12nraS6WWt%_iQF%-mQCpNN(n{Q2D^r )boYnw6UXf z(yzT0*1@7U(NfsIMcnAcqPUeX(v4RMhDE)MU$6$)l%7&pYAX8#;+HZya+EfDjyte} zP-qF=FCTAWuHmRGJI)g@9iOGRESj&MT=~oF|EIf2wk%A4N*nAS>_2e@`D~@j_nHSh z(1AU+SPH}rad*06#l{9uxH(pkT~#hUfZ%jWAVE&0P?buUO4UMCt6(W2M66n}XUmo) z%lK@gvX082E%T`CVzOn`o>@yd?IOu$(_Xr4whZO7jxd{LBqpty%W2iBS&Ie@+Do6( zUjCexG2=^+7k{P<8qFFuYa2JR45^F+R}v_=ehtgQYgZH?YRIdXwq8Ac@ft~T7SElm zc>l(MJC`lnJ9FpOnOi4VFuTHr4 TJ-96tQN6?wM!XQYejut|Gf<@YBY~5sa6G!Z8-7aDTxQg7HzoD-OGAI z8+q*5GGG^h_3Fj5moij#P^CI0J`|@+n9NU_^ho`rN|Y#}dSpk@uV%!O9Rmg|7_ehF zv-ffffC38Gi!Q%ZlngN jD-kBxY9*JvBZ;wHBm@iNFw&83^2MF zgVA&yQMZ(WzZ_GHjJoJ@j55 ZN j;@ZqSqj(=_%GgW*xt zO!Ew%MJ44DP`2G^Au%MC1WhzT{~cG=P(v-+=AvYk1wsawUJ6!MAjFVXJfF$~YBuAz z;|?wI{6o$-?0}PvFsvlfNF$8+kw_ta2vSI{yXtx?uesvdE3d%{LM*R$%#nz)%O>K- zA xLb7D6$A7oXEC}aC`z))om~NnbM;7 zE-D;y#Q~>pqr)Myn{vn?BNBDNTtp0jzZlcYGN;&q$ttN(EM+F4e8OIOl~hvR9e2QT zOfSFOr%W&>vsg@ax2z(dE&;-Fi_E v{7fLCo zpn?i3-f@DBoib^)R94H-`%F>IbTpOC_DO>kM#=b;=1?bfWadUX2|e$fKLz^Iaw+j? zVw(_N)aFpNNfniHL2ad}SwTR-L>Wv#Q3D8Mnbm1M@yL^VsJP3sj;VH$Lry&8v?>cD zx)}0=0xBr5yz|UM|Gf0kQ$M})A1IK+8=yoYD _tQ(?7rc@|zD=BWSQ;NB{r(FM#0^;Q!p d}uiUPq0 zBIjReG7i5?$H6V}|0#4?`_eB0bc;MWOci#3gevNGicG-JJeBwaCOCEqMcCmH(*cHs zZiI|r5G-Z-`PnaMqzjk9XeQ5?4x$QIqKouwCqm;%Go+CWo^+%lp$idpfFUEKQHW#} zfsR(NHZ^59s3XC+kr^e03}&=xLrxS)*kojlQrH1DY~uta-1at9s6sq~Oa&|+afe%A z!y;y)q7|F5M2 fCm%9b<< zM5ky)V8Jn6zk)(3vt)rEy40mV#$kimkzgz_h=*Eqx4U?}gB^6S3ufx!4s(oS7`MpA zEViJ47GR(S|I0H#1QhTAZW`d5;Z#5b4B*Wcd;p!^1m`!uS lFHdK?6WkYt!WxN zkq}0R2E;anjYh?Y(Og+_pHJc^Ya`*|&6ZM=x!P!rSX&e_qERq9f(@=RYG5&-p$kG3 ziEZ!k|6?gsp^8<^O^^^FL@}!2)tN+yiW0KOZlWSNHF**zRD252 ve7CB@8!V~jxdEGY~cx8_`(&&Fo!qn;S6^e#Ef{vDJp>p zNl-!(D0a_eIU$MiWP%f)&;%yP14vlF;y}kh3RV6j+NlK0a+nh`>54NP2+8y$P!W!4 z{{`14GhNac#!#9rPE?GH0OJmmU_~nGhKd(bq7+!N10|9%vSJibX(apG;-=HnU+709 zii6NEih-yv`KGK2s_IDo7L%K01!X3Z+1Pe?MHVUJlV_xkDNR|qH%&)ISJO%m7lmi5 zh0P<2ZQvrvyhkUM0@Mjvg&<9VB|=ogXi9{TBQ2Q`EA}aJK>3N2)#T*Vy67sjmQ$L{ zL~B1? H+(y(yn|f74D9U(Q34zfO3>q2Qv|9iZ9ARxQOaTqDpv54 =COeVD;{EV922@2#wdmrQSv7Z`DsxgvD|RrH7Hi@>vZ+94dx(q!P)X;O^z(d zm$X_8FS_{`=z;~^>L%t)%tsf=IMCI{wy li`GeObyn| zl` kV9D9v1zgwI?V|4W?6+I JNy>Eq1LfgFe$Y`gyu^)+Om-|5PKZro(UCF;Lt%-{ z*ocH-DFZSv)}|GMBAiXA%?;_5qIkf 8DOzpou$Z&$X!X`L `8?2s;;%pZCQ8%@YD zTu2S_VxL9LAA-s2kp$e`$H^?ig&;_OOh*ZgOx_`inE{9uA;@kt&_{rTe)Pw(9SAX$ zWp7;G=5^xcF;=FLji!O3E?5I7 F2MQrcGVMccmcMl?+03s4&< zz(5^1ffK-{6F5Qw)W8dHMGU+Hbk)N+umU2`0yxZt|L=TPI<8|soI@+LLU{E z11`A4M?ldPy<%1<&gVF#Yb^!M@Z2vb!Yi~4XkJ7G-PV?55R) PL`Sn&Pc zD6zzsOeHbc$j?N>BXra%N&|q($PLoS(d0?l6~itB1D^ejh>%1P-NF%#%@H+FP8f=y zWf4^^h0^euR_y{#Dvf?%r4~gE72RMjgs6< 7+yg=>bPCaA; zBhbP)yh9`4Li!aaJJ>}#8p6Mg!5g%~Kd=EW@B+jQgRFqVbYAB!>1wX(YOnfgKa9gT z+{3Uw*Lxc4u_9}-vgdR011@l6)cu@Kutb?WLut*HZqNySa?UE)fh7nCZWP;tz64HX z&`;=1NSaPk>Evqy$MZ oSVwv68$Ok7Fi6BkP9Xx_H(AA|)tdzkbPG*M{ z&Fj2w#1$O{q28J!IoVJkN`>;oG+a=;Fluql5(GU8NIu=a3|G;Wtu=JT3xGfn41*xx zfNVNJ2gpJjtN?4)Kn9@2?VO)I+=Dsv6DyQTak|5(fI~kRf+38-7#PAi@Pij5Lbqsv z8=Qd~Xu& Z)$(k|(p`!Y@>VDmjvF zWJLwx3n;zRqA*45s?yRP+L&x6|DlX)ZG2FgeCC}%0}%$ryd;Iw0iV`BA!riC)M-Rs zK}eePY(xkZkgg1Y$V`k1$kmahFCgZd?T~&j>~x$=+0_V3kX7i!h#D%*%#6&)_QEb; ztV7-)Rb7aMNZFABh+u*&9bKJ_co8xT)}j={<#mKx=4>6w$d)cvmTsENG=nN^T`7dZ zDmWD@U;{*Y$&zX;nmr 7J>QMgmIUL>=nXE;LjU^nT`&`O9aLq&0X=q1tc_ z4@%OZW}~D8rL1i(WCJM>!4iOhEVRNLyuhZ4pQki}ER5GV%!)7sE~>D@IrM`){KKlY z*A~309S{N )up?>3(hUcXJztU)9iNP(4|5JDiEA?$uS%d4 z)c6f`V1o)N0xPJ(UlPJJ9BF}k@Arx!#u9^+AuSL70)Gfv)#XPZS}cpKQRo!#$o#@B zq{0bd$PI2R3SniP@nCl7=naObD!rNsM{wc9h%ZR2NEFtTiiE@l(E`(~&Aw&Mequ2I ztTYrun3lpV0A@7!a**WYm8lsnH%y2cGY>v(G)Hpr4Nev9$)VQaXC8&0+{Tje3%mY_ z;NZ(`-Bv;~>Jb))|1;PI@&!lQf`APevGAA!IE;fW%)tWSW^Q&WNZ*b-kOMAc!(5zd zs{VsHC}%5}!#(taJcL(0*aJDFiaAs#9CL0R3w0gev8w3w9s_bxEA>*dZnOHrBQq*V zTF#mr%8wY~Z8ZZ%-W5w|gfpV+CYx)yPITE4mvMFG(alRR+DmF0j5RESC~|@-%nc{3 zLPV&Q2@y!l5XcR_SrL6zkQ(K}u5XMOQOUv;T(t=QYOJA%5f9D`k7}sK4#-(zB?^^r z;$+bk)pIWhri_#VEU3)bWOD?^B?R9K1lO!tW*#W2Gl1|2D13|}9D_W|Z^`6GS=uPZ za^=F*$1g7J|54ClQAnN5JOe>5N` _t6*gCKYt3FIv?g JGTW7u+BGFb z-Ul$mD6=6*WGhVf-hzz(6k|hTGk8@-=-kPcf-8VRXxnU%RAN~6Mg!Gs1 U}DPRK|IpjQVrDpq7{iYJ^$*w@JFia%Knef`zxQXT5$ lxr>N% zQbHGu4cX!)UNl7ARS@rR zWCL+5+bTSG@@BZ%X1LdOCQ3E3-h3@BsnwlhgE54usd*WAP|PXRwH*jZEDVVEnvgMT zY!Zb{5#2WW{_@M5ur3#o*jObn_ySon5fwIN^U$0Fh$(c!BVtHKG>k1Th04sG z|7$N+RcWb6j5Yx;R?X7LEzkmKgZzjt)_lOi$NWN6J@cBKk(}IwYOPh&3U@N-@JmGP zZ3#~0+zBPo8om5n) ~5K`yXDBe($~e2*ZwI<3=vt>^cD<9*(r zZh+%LGDs-!VZ#b1PEMYQqA<6v-3eJ;(VoUsv>8n=0Dj}2rlJ-XGb9=3+y %C(}!6iIz(M8*NoYuPFs3N5_BgU=;yGuU@x$O{+HT z*|KNPrcJYEtzk8Z*sxiPW{o07iW#9veE5(=NE9JKWH9-_WCju}Mv?##LtZ_3?%chz z$&TH-b?#)z`)3avIdK0By%{s+jiG;Qq#VJ5#*LRLbAn+Rg2qdsfBgRS`}faZSg~Wt z`s;W0AGvY%?zMIM7H(X*bLrN#dzY>~w)XhpN`}o~;D*wsN&D4H*E47j{{c6g)~s1F z$ vf0FBuu7KrBbB| z6{=LHGGz*N%G4t}1eqfiDDaoAU(taP`*m!YGG)bzEjtzrSTS9_4htlv>=>}|h{sO{ z77Tu{W5<#avu~X|uwTX0i?42d7lFoG4?lsz({4Lsin&giV7SwTyJC)c<`@ViJf;`~ zwJRnXWug&}yA3n^(3%KAG%>>MBCO^VJ0@A>lT(fh#STTHIi?r;eo1D(W3-D5GHD3o zQ5w!1t47EqBSMm}gOY)4p@pEC(z1mfOQtnw8fpfi>~54SnPQTW|7I0CTv??T!k|%T zw2#`{sI+K4bMqr?NN6dfl~`awPnPmT0fZW2ibp1S42|cVc+QEZr>`6(YKtx2c;lRV zf@wsSL~?Nk6j=megq1snDFhLJ_(2P-vQ!Q0E3edI3$IvZot4&D`NHLwh8U`*u`4T! zvbATpd 84AUA#?&$3}8IN0qkUMU9hP+>NobJA49BW8mVv-bcYOE1D$RVz!fo$q%vr}dv zE ctXE1WM+i&AgRp+-bvwvs=e7A~%{m?-YD+!SRHt(0U4uM^Sbd zt*5KAyy^!ouO7X;)yz@Fob$_FU8~m6MISw{z52@4%Bde~rnSd(6_#~ju_ShO%wp#f z@4!kst I3fDO>w?B3>(+8XH*dP(-+PfeViMQ%=ETl1Codq!LaZVdIl~ z_1&+$UWze4Uw!xWcRcxgfe;w-xPvcW=?Z?>M`h|W{}{ga`Iqlvhbhl3IL4j<=}Ubc ziw^*i<(>SgNEgOPM*e2zAs;~lXE}Qaid2+~5M`(sxBy`>N`xC$SPz9LT*WFbajs?@ zh8Xp6+K!rG8EYgYGRFAD)l_GY*NDb3Lc$%_wxyY}O=C(_(hNqTHKk(^12aO};nylt znQmDlccVEC->{LpW_ZRTg&Q26M&c)t1Zq(7Fb6om@eZN9V^NKgoa9>7k5k$4RC(k_ z9wm1wN6itCfed6?#!(Nw91@X ;vCfjsr!v5p56e8J9ejF8J7C)9b}rH(ou!C7HIoo`s^L87mEsh` zDVn-g!JAazCQVL@%yhUU8||b{NnGopK_C)D!Z>6$-*U`Cl3@%RHsmAAh>Sp*VV}q> zB!+F9 >-bM(1I3zct;`7AdhprLl%$|q#e(4 z$2oFEkdfQ!SOG~$Sdk8`X`Pi`CV9Fp|BVzOKP*frF%#D*!PKW8SxiQ%MJ?iCBQ+T!Va8>hAw=>Bjz|0 zO$C%6V%`^w{0zur`iw1quCq^u!NM2S%&oz8u?wd`$3D)1XFQ(?vW@kkxA4(Wg_H}y z44n);(e>wcG(=tJS_q-hWoRkR1qw<)G=-tSto2gC3Pso<71-F(GOV*+pH_xz&ETOW zT^H9La#AA@>5P5jx-2&-Po)AQ&yy WGIyY$!t!gg`|uSpkd6Ru(y@sHiE9 z6C8+o78RvXMW`rY4UFB(d>R|>c*GN1bcSr2_LC0z45m-y0z;hEDW@-{6EgDbOF-!> zuE#h=zyMhcK^Q6-Ep*|t>1qcV5W)q^o*N Gq$MXjY|MFs=5BIsF$WS}9~ zE`EehDA0faTF`A1v|tAU|40A^1R(AO)ZisCajH -!G%Wr~Y^
h5X-sdse zx@SK3>~s9&+-Q0-+L;7IAOQzLz@FWGeFMxrnUA?(nLYFJHcwcb+58&ZsCd@VEj6V{e$Ez*btag&gV zVX;R!HOPchA%{Qd{}N~UnPc3d6p2}EDI3hE1%RLfv*1TPR$mV~NVwb*c7Y3CkVbio z101< {3(-u45 zWZX@hZ~CoeG1eZlFLPPtD=Y;nBD%ui(41Yt=}p^VK?p@y!(%;4PtQAM!0}L>>*j;! zdhVN?W`e#0fEZ>Ma71IMP9Tcz|D=xUBv5^%u3+FtpBBV9F3>qLFki?HgdXTbMo?$O zZab{Op;V!>C}9!eZti#^g-l`YG|LlK!4l4;8YDv+4&svLD*6^eNUY{bf`qPm5P4$B z^6Ufiqy-7@|En?{Lu-s^^j4{{EMp>=Nc%{@1vFp*Fu)M_flw5OAGRO?%8d(W4{->E z9I^o%WT7n-g(tL%tmcpo>#(fU!jK|K5BHD{`!JGl40VFcO6qEq#3dq5>ZCxambQ-~ z0?XnWY&Q7HcYZ4Tra?~Nq?V?E V*1)O@M+Wmhk3wfFxP!iZYG|jGm?Xp3O9}4FnQE_2S`B z;^7|1Fab1RB+{)= >$2o2LS^xnx*^p<{~;zzcB8Kw2!15VorGF7M|ysChHSHF%(w;7Es}`R_!;ar(J$2 zI8K2QR6%HN!AItUI}AoZD6oL8?m5C^{{(`bdLg$E5E$PBJk-NL_N-#+2kM@w6O~aJ z_mTqnBO7_f==5oz$}U34PDMcI>^=xHlmQzU;SNgi9MkL+tP;FXs5n&d6h>hbQY{o# z|KYq~0ZA@N2k%ixgyn0XNC$TWbyi1pR%6H_V|J`$TY%*NB}O5jL|77H8G2_mN(qU& zZ S33^#HmUV>08(ooo;!)^krw2I&SjXS$D#?YcAUs62R%5-pn z7^(rW&?AP(qe&L4TexN@kz^6~hBUU17;ZrsuuiDBh6!QGAi8Ky>Lz(&Bfq*xXjVZN z(yy|*Oe(v~vVbEMOff4VDi!3fH>{@;CLt5}&PNF7VveC=oQW^j!vZyCKkPE<#)m&B zrnlZ_7mN#J$^%9f?U{NZ7OHL;m5~C+BRo27(?pFdO{6g|#6)}~>`00b4uKU+|83@) zv_dU2Ggr+Nrc?$i%6jT<5?o|URtGidaZIE^2oFOVmMwM`Pl$l5bwrAFT;p|sr80`8 zY|1nt77L|3&f=hq!72_LSYQj0^BfG}3ASJidcX?0;0ey*2_TFG(v2U^s;TP1B7F~X zypvKZ72g1EJTsM6ZiN`IF@Lm9hFB*jm8T)3g|9NApn?Y?nxPu~?x%`pi#B4Ev TJBt-4;SLfs6^v8^an#Ey&@U%2 zM%~f^cTPXzNf)S6W13OwR-qF+@kV1oeE!lJDeakJMn@5&Wf~+%%`QT!|L%NxE <85Vk;3T>vK5 zkPWjTXotZWvZ3AR&G?d5X_ppLHPvZvj8k1hoG!*XlmS)&v{{Y>Tj~TNAEHC1p%-A` zMtjoQV#y~tj+CtBNV1_ClI9d7i ({6{4eajkw>cG7S3fAPGSAhEO#>jg>n}aG)of{wrEzdU8t0W>|hj< z?Mv$el!Qb>W@?9ip@wWHbvUUorp9 {NeecO2|aG#~+50Z^ad z4KzRlIv@vjR#BHq7=*#ygn< Iivw*UG}GPr!jh^TDS%qI>ALix4a;9&AiOZdg;q3 zYby8FHzu@Q1ouf%ff7(bIbZ=Aej(Dfu9;2_bRoCu*n{bM|AAcjrE=#9n$*Kx$MtdD zHD+$KTtT;7+tpolL0t*xbjNZ*x)EQwBRU!rOr*gYFu@LvBOYC@?IJW3Q0){tE25^< zVX4#|#mmgt4>=yz6kaU{!Gxv2L hVavMK< Zq_57kYHI|TJ=y)PRu4Y3!F7ahQBO0dR7eoOT(0C(Uw#hyNR~v(CeCI! l%Tg}opi&gG^0Ih|LMyZsB6MIo|0@zoK{;5#8WdAPnlWE;iGV_v zbO&OEJhz!}6lAh^Teqwlv)D!l+J&V~aTPb}U?D-TSOW1?MDzni^zwYV?zzH* kB zu!j;>jT4GPj+HePrc~9C;~j|?g{IUqMbi#o0UM6Nb|S+t3?q7_XoqeM$Z|TUM+$2Y zj#ykuOTO22@a7;)b$nApPZ?2yWg{fqH#y%x3!cCPLiq`dXmcX7!FGr>MAk bG659s02M|{wg$pq98k9#P`KUlxP;ryVYC9X*!*IFDjj!oC0Zcb6@e&v zo-X=9RK|6C&H)7?L@*>8ni3LJ5QXIUq%k2BfTQhD+7w~V%w|vq*`>1BTNFlt?$~?n zDoHZflXa$M+A2dx-c;~}?cr>P@fN}mmjv>tZ@v^ jep~yW^b|;U7Fd(jY^6S~&Q^~M-Zz!UwA aar$k84nZK@BjXQ0r9`DCRhg9AcV{#C{g=R3H;W5u^DSx zVBuVzi7J`A%TNxTs~qze|5V? sC1=!qvvn8M$WUnIO-WXB#JK2K6n!P{#!8|NSbyq zmfkaLu%QRT4 H7zHfWxJ^tc6s zg9R)=#CRucST kqwTji^!igJWPK;`^Dpa6Dqsl}&6DQE6I8j X&O44BF(2!=9Q zCYWGS;D8B2SQvtoX|{?YcEBRdFTW52R#(e3^Oc9h5EE81%Lw#UT4X8X;xRB1bDM`` zJtI&xIAW95|1<|hWRO65xh2ptE !hL loWTk>!#HzOPX45+=9+A_>E@eouE|qTM^R xn) IVu>A(P( 3
}&5b!ugcd?e_I%fkXbC4Bra$V%WRn+wU_k~CSm5*n7iiF=mha?} zO*V *eEQi7G>1ZC5n5#JxMNojQS|8F zfE(naU2IJwjWm@CWOp{n5JCucn-PW>VvJResw$h!dO5$TM%I{S2Tmrs=%}0~nri Vh1IwghE;+nUv1SBal#%$tUA~@`)#xm|x(*o(vfADXWZPK7t5}BFZTEw+}yM zt0-*nB?=?N9eS~$Ui_jNzu1rhOT?A4;EhpfIUHC_)|F%!qbnui5ns?EjkGN3W