From d0bc4e0173748bf4e719db2124e54b0b1c44676a Mon Sep 17 00:00:00 2001 From: rward Date: Fri, 11 Jul 2025 10:57:21 -0400 Subject: [PATCH 1/6] test: expand coverage and add bug fix test --- .../integration/files/bottom_mounted_imp.dsco | Bin 0 -> 162214 bytes tests/integration/test_design_import.py | 23 ++- tests/test_connection.py | 86 +++++++++++ tests/test_laucher.py | 133 ++++++++++++++++++ 4 files changed, 240 insertions(+), 2 deletions(-) create mode 100644 tests/integration/files/bottom_mounted_imp.dsco create mode 100644 tests/test_laucher.py diff --git a/tests/integration/files/bottom_mounted_imp.dsco b/tests/integration/files/bottom_mounted_imp.dsco new file mode 100644 index 0000000000000000000000000000000000000000..8896f59c5cdf8f782294898f050859dadf5f847d GIT binary patch literal 162214 zcmcG$1yo&2)-6nMhY;L@1owlx1$TE2aFF2cuEB!4h5*6c-QC^Y-5nnHyWQ{g?N7S@ zf4s*SP< znK;Z=5esXMMmMX1e_ogN2ZOI50fAg=tbOZG+z4ZaYe7z}OJ%a=#S*n1>`QrPQy-b- zpfn3gSF!0mMS9|pap8y>XpqQBc-ka{W}HThrRX3Is;eU&EXrsqFB_vN^@DyUgy{@r zvwaXQlIA0o2M~OXB)wzZG(soWH0sz1J-v+%}Jdv#$^@2KTL1 zYdm(*lUxKx>>>`L_-GH4ny1kv=FXK$*s|MJ{zBwc?Hh^=?Opn+Ek6kzF*S?uiB~(y z0xNRD!wnJ2LGsS0c^4#2sAxC4ulOb(EI?Y3L;mT=JSSks?x!4f<78%p({Eja+eHcW zZwULA(!Up-R^_&i?_YJ&7J0%n(@nqRYZS9~^5!*u_=6qz|5({Sq~U=k@|6Sv4D63z zgm-rI>_8Uw4D^5e{hx?AYii@+|ARayke$7mwG}T36FnmdG04i$+Q`hxgqOt8!I+MN zgrAQ`5o7^$c(<@OHM6lNe(z#s&r4$J;9$eWz+nHU_~@-|KvwT9#@2S0KnHtzYde#_ z>yd$(k&%tz-JAb22FYK?Bvy8{0sZe0ot>TO?f+1>;UDUzH?+3=Yi9;CD+iFB70}|3 z)&D~VAUg*$kUa^pGSJQh#QHaHK+H@W%mx4!W)Q##0OSPx3vd2^@yuWe zasV0u9e@lDrjC{dRzS1&+5a<5|GSai#>(Vx?s2k%SXr4lnE=ejYyhA!=l@&x46W@z zbT@AH9ZT^OjgN+$v05AkGGP5%RK%9T#WB7~G`TiP&hR6z*g~-6ba@xSau>Kl> z|8aT$r$_F@^TckcK4$-|WYJk3^mbf=L>IGZ5}H#YQv2y_-j?ms==Ru{28&EE>{ICU zXDaRtwI=>k(iOG(6)=7Qv^b0(fUPQ%${KrVhnx=p+?5FE@kj5sy*IbFN6U2SQ&Zh; zjmIv86A@3QY_q69TeqjKFiRY&(J=3H_k4|VovCVcCOQb4Y$wg;N7ZirX7%`;-5Ccr zZ*Olqe(r(GrGnDJ#cTdj`oxaV((h>bq7sunsx>|y8LjY@X{|}_R4=N!0rn%ame!h{ zF18nZG*}C6vEwoKaOs(`zp_>xBzz-0x&mX-5I z*|GAw-#m2bS*_}{y?J1G`!g|A8EJKb@vo)PStn#BmW{Q=RZ}9out?aT+bVd`U#_!A zgavQfD*&-F=ZbH!Di=I-O+L%;VF?mi4{l!3jm%aL6Y=#O7;9zp!O`(OX=oT9F&tT> zCIFtnS2!PTbBo;v9#w8W!X)Rm-`^P_5oAhAxo*fb2Svu*7?siS>JtDH%L^7rQZhg|J>W-*BmLSJbFJ z=jXgf$)n;TfL0f5ZE94UgGQ(K?qN|fI|f3E=v-+%3K@f(nX#?7$PugCkz;x0iO`Fr2 z$7bJN))*)drm<2BLH}-%wcHO0tZ2`NO$pac%`6m=`^+7lYAZ z2eVRuW1I5LN#E^=RLR``_z>rkohVG<8`PRG|)n?@z zW;rmL`~ie3W-Aailvw^+#EFeAj9{i+%+W&wZ=uyDQ~9$!NK;^>)E<@1S0^Z3$M}cN zl+_B8W^H)F3z;U1%GV)J+>%yE5;`e&Tso<*MGU&`lXjr$j9z!)FSoN(F4jrRnsQq$ z8{(!5??u6YDR0DGp7iNS{>5tCK+6kYRg1ZyF0dW2eyY;~Ksw?gpUGg&byER>` z`<_{I9mwvCC*rPF`gG;JQ}jT~6JV8_xxx9plh~KL(DwNR$wj3hJ{6}p9Di`AvLL)G_Vpe)VAJ|gJUuHNK?1kx+PJia$3njySU z8ZgEFQxUeH(A^nj_Foine^$nsA#70^00*lBZP63=>7Oo=fI6TIFdmf>W!WP(K|$fHWG#qN$oo{E#!LKKn; zHj{j}kIwf8>tl6L^wlL2}U4IN7sLKOH__WAkx^RYj_p54g1gK!%ck2X%&koOdR z9Y$kthFb1N8(;_J)PHuwus23kL7Ns`}%iJqucbDOvTNF*)sor0Lj*wEEBFca!vT?$R@R7W7(E%J()ZiwVW| zHf4^V1@CPoHX>Tt{OnpAA+3hw4ome6ww_{C{V6EIZkBo9LhrGmI7pSm{4@I>XZwqbVIrT z1DeO!DC@laXyL!l2S=)A>tI0hbw4Ha=v(QgnAf&?_J;gz0_kTyncX4gHRv5SiUG)! zp94b!ighD*^M;V_wzl8B(=I7ou2MaQI-Apl81$`Oi_|ixTYr3Nb(XRV{ox|U-I1l+ zfvw3qv_&*h#rax@!(lEzSM4dI=I|{k6eurc%L?-fZ=r+Yu!**0rZ>kr!*PM)TAS^P zGqoA3Yi_Pl!j^2ejBngDu+IqVkIlvs3l5*8jc350GTl(Zu+9Z@rsEZb? z#hOI@;V`%=I%VcP@@#a!CtOm)*PE`T2hr$wpC2e*L_JWfnxEGY6^>lTg=d&ZXH=y1 zgkd0-q56J+laD*_0!ZT3OZ^+~Y$bIQ5{vpKlyTL4L5e*{g4Vc&#{PwN#_RC{VgkO3 zlKM7J6EVz!+a?N3+XTN~^B}Ub9|MNtqIl2i5V0?4uQApXS=E&2SO6CT4ZrfRa(q9~ zeE-pn^P{IWM9+xRJ+;*oq;FKBO5zY$Dn!af3aPKM<^IOe;z_dd5qy29iri6*VKT}K zkMQ7F+tYt>Dt$OvQtdPM`EV6$gNzvtj6tA4(!`fb>oMa}U|M}%_CX}@8f%xiH{cUg zN*XdmW3@|;txYmUR>b6ztyN@%j^yY3ebF@qQ%{-iL=-}Oce@4QA|vVfcWRO!I9eiy zPTfK+5b&{(p0T6?3H*^V!XYHJv!~e+S?rYOzGS(Ovzq6L@5NZKq2n9cQ1wiv1tDbY zfiVoR=@EXLQTBmd%RuqR5ID&fix~+$Z*y!mqxW!kt!>fC)koOFv?+c8H&lxu`|fX_ zQ0}949PcXO(L`;Xbq9rv3)3-KhbWaTbHK3$=mcQBV0=`}D1&Cb388tki>ZXfxhMlX z_j%v5mHUoPk9m+1acCr(@A=7Ry?`ZxKz$Fc^W9e${p=%lr)*?g(ItU8os~?e{JeoLi6@ z2UL$pvIu%DzNxlrgPO$)JSp-eVjh*dK7>Yx1=wD_VV4GMJgx=G({Zfdt2oiF8d*^M z=L8qVV&);D)lE?NiyQsyc_F0Cnu1R8Mumr@O6BK^vyTlO55YpE1S0LB=q5Sl<&D%; zpMsyl6&C?5VOO+0_>?-%(WNi6;btxglh3!=5zLxZ+4e8i3v7Zbw}xp(b>*z4H)cP? zqYm~oRIS>LSPNzOCjzk1iqxl~qmN_y&CXHDsu#s)_3HVFa8wC$VveWk$484S_d&;d zWZu6)58vIr+|PLVo6tb`tZ_5l{%%XJa*YmKZE|r1EBEZ(6pPmLC+1sCFPZRw=T2QB zu5cW6*{-;I&DuujImkLl09(u_ZNsmdJo!BcYDBH3c$WxKGr&NgvZ*#CQ z(xdw^Z}sQS7yxd8!b;qr7Z(|k3U_&KgJH>U2S;lX&65M#a_h>vV`~F5Bwv6>stD1~ z-<;TkeL7+Z>Dvl;gD7DYQ%5h8P|E^Uk<%E8W5l;kw_M#gqdT=EpNhj9{A2P(gZWth z%nw^Ze26wKbehGCzy;EqMs-Vf6_WZ?%Ts^D=mb5l=GRK?RoIf5f=x(fM{@W_E77hr zeb@Z#Mzoh&-xUbnHA5G}-w?PtI)sA7aI{jAoiN5)SvodE))T60sP}7^7hWey?wJXN zvIP|PnnvEw!1-+^uhUXSp|V&e8;Vdhz*9+|8?)a+zWhgM8O(81w~DSx?GJv$CrsO3NVSWBexPK_U6TVkX*dMGi=I`neUy9f?fgnz z7Do=_568JntfqB*NDeLK7oRX>lKkBKLbBw7T?ow!M#Vd`&%SnPjeRAqCDt4LkX84OVS>4GYNAiecM77zGE zG9f8UCaq4OoA21HmiLn^?n%AmwuEO~v^vdx2dtGDMff$lt2*{w%oLM;0IH$cV=R{GG#!GTO{L&q9FFf53Pi z^}&MRZSY1Y&;+NEg~d?|j&w#Iku(&2PQ|gu@pmcLD6NeSI5=g&!AfP;m@CGM>8zva zQXU&=AzI<0G?Vh0GX9KM<=5?)}^nIs9Up+L;(gR4}AZFHP2iZ_U|%sldY>OM_T@-N&Ch~=Lh@ZHW>&oqJY zPBek}LA$VPOpxSIeOhB%CjP@$Lt7|o!GrH$SU$mbnQ+^TchGU2t+r)Ma*d+))q)=S ztzrF*9?QeCl4WfV)7>340AtEhMBbpou|E3<=_^znXFLy1p_S>tX?Ua(+ykTay~64o zpsBBkMrdQoL5#l$HQ{Coh_CFZjq=>KB56oeR;hqXab=ls+q;RL!YGfkKy)eA*id?KM?~ij%c!*drz>o1_mj0;6f%a21OeUm^MA< zzYLhAT}=yv8`Py`o^-bSj~O#FUq-(lr$f*QD^w1 zEVG2KhZLHQ9`^C;qCW)+@8COXlvzcP!}!9k-}A+B<^36>)@27;)B3neBU3hG>s zG1693H$c>UDmmY_vONji(8TsKAO;Z+lUCm$Avg@CE*i|;6z1HWGh+CNNR$j~XP>j;< z#Yt0gcH2ns#*Iuj7En4T3>;%C=48|%1)SbK>>}S#$HgtAf*sz{^PP{qeW=qcWa4S` zCwdM?;nP2Hj}T)SC*q22oU`&mNj7u7VttV454g{y@!s`*`K0BS>PZVqb>Wdq%oAg=Ba8|y9rD_$3xS|<{tSzaud3Dn=#)iZQO(Fn?i9nG4 z#Aq>^LeBVO+d(h}j1`BTlI<=+px^f-upDV$4XyYv7D3+}HwOPqG(sP+(G5o0N~B>D zfB?EWqWsnsO3EQ~r8b_5?ZKClV@*qC$vBqG5^y<3b8#Ni2d?%7eCY>;r53crMa6Ob zM-(Q;<{u=>6sw5-A>V%7hxUY+wAWb;Ox;h7WeyB_1(%oIm$&L&?t_CEj%9@Kz1hOh z>0nuV#u4WalN$?uiy#2NI%}7sTgt6HA+dYzcDdKb5;EFNB-jQ7!4J2L=+#%18b3~A z^J=>l2)$pO2)Ymk@@zr4>%%E_CrArEYh|g%)wOs zgiL(5Ci}x_dD=cwm!l)_u^P+%rfxlb%F0G6ypP{eh!{V?N9;*S9Kq;Li$gEmY5 z)|viw@p+h)G6Oopa)@3CnP9al3~{DwjYJQXC(4Z#KL71k5#jM~xi39V|`BE0PxB&y}CWIOb zOi(){bmu{x8D6o*K|ylE@)tVcpPRC9wbi2~P329DgIT5+bFhA5zFH9suL}D8rnm9e zm7_H0t`wR>RMCR7fdA6by9`cj3SV!VZ79|Xf~q%J!T4o}61zaIb}Pi0?_)bB3A&0v zJ^x0%x@@F^`}3Ropf5WoTHa7xkO1>qSQjRyv{SLi_tCBN+6 z1~wu0h7y}mu}JwNPE=tK!=&6Z=jJl=bRM^*Sv+0tm0eiAxW<{Qru>GluDS)nId3X~ z&dmWv5iNtiC8rwTx#I57pR+1y>Zd*NC<0GHQmWKNe*NzZTGfCZ#x!`y=4=`}EPs1V z&Shy-F0j_^s12wfxo%KKUDT$2c4nQ>0_V52bKbC1s;-`0_M#rF=NFi2weBPcxgtV)YY z5KKgsbKUDL%lihQi(o-DuiMhb*-x>OE(MO@&1efV=`-Zl2Vqd>;Uwqn`q%N2G90dT zuX^+D%f8`&B-`RGoYpG3vlwq>;YJ(%buDf~2nq>m6y_Z@Hl&}(!*zP4)0QpY&OB=o;qL+b-VP4;BGACZgu6% zP22v=Fu@n0v0(1&OHm_%hFsN+eD{-`ip2tn(P+RZVZT~t8ikjtAJ=Q8adh>$RP*Ze z^Fj0NS?h}!PKvVPLl=UWHeCV09S}Q6=&C`KIHCtRpl9 zj!wMt5j%=0^{wNg()*kMgxXEK)(kc!iFFZV4)KITNbJv9<$cK=`ClEuM^#N5tx84! zN8HmI{5;ymczOP*pVHm}K3or_tiD1nh`Wb-(g22>n)@#Rfo&}A3&puhMOJm|r zkEold7jW6I&qWAMtp2-y85TAum`>^C(F7Juch#>fscRC}Ag_*fTfeNhw=vpQ9^O9# zMFbo*R?|TGNyJ%Z$w|gCkLwYU>Ace<2J8Dg`KyR@8|Ob;E`2LnMQ z6PN&N{?=AaHtgr&@<$G=opP-&$BF8xi5AMw;)=_7H@+`!Qs-&&yf4)}5!Mw~Rf0F4 zBeAUD`Wag31>#lU?0TH3id}WRCXC4nfX~!R$dD*RLVndV65r{AJA)g_iTXNaI$xe} z>9pDg24~QwrU7R$ee2k@Z5!N80hQN0of|eNKK1-24{AhCLzJebf>F^zNL2N*{qqvJ zbDv^&n-neCYj)B2G;&pM1Ih{~D^nFtXkYxE=#!prL$#5oeG)zjfWlP6k$&kXO*)a)gPw@ zd-EbzY?8b7*X}$carZaIAoSRIN}*QO}r@MNlrXvoZ*EGRk;T@)&Pq@ zc7yV1=-@UC<3K@Mj8fG}`$?E31UjiUQt{~J2?*)u?*j&g6-+?;q>v{fmTQBSAYau? zJE{?1%Qk+X*L=H#p6*CJUec=E2qp~beVd^}IB(p!+MULF>zspv@DWo=uqalL>+f>Y zkObzEK55*p__bcK+{NzTkVuWY$`=A&f&jVkci2$3j zPjOn9o3YWqKJuqu<7L)baH+rvs@r`6BjU%ln_5hl+z)SwI#@0c86#>FI7fcK``_v|2lO#6RoNRF zu&Te5oUuap_7>DqPK(<7{UBlEBbG?m-^=K|{{->y zta1c*OYF!zaF{U5tq4t%_Q(~S{f%9M97O53+7Nx{7ONzy*|2k%YB7Y^E_My0F58Vl zbIx1IO1Z0S^oFXCb;(C#mg{MK%7PvtR7~U30_GuH&E1cdHwmvX#o^e*=x)g}y4jh+ zfK|pY_GnqRuFGq+fW3WvynE9FYRmH(7nj=dyIgNu2o*#4xa8ZjD0E-OX-4ripBzrI zEZ-v5r`M%5Yrnxho~94`^4?8rHI~OBE{=M`ipWHK2SSFa#Ab(1HO>dh<*@?mGRnwa zCC84RCKdcNE8rJ?Lq;O}C)a`b=qbuqHoXiwEBewkc6+kEZ@ZY}XO#`T)3n_m%jM}# z=FoP2B9xlzOfasNKHW&SlyJ104yQ@eFk22=j%=y3=CU)taAZ{@6xqTtC*(5(3*p** zwrtLsMZxJZ;PXyw@p;5O?h!)uXV-{aML0~n)mXe!xf;X}==vIPA6xZsWPrqnmj@PN zaI3Bux&u|*7apUJ1;k^AL=4nP>Q8mX3L_#XSxrA`Jv~8lVNe<)@onN@0D9MJM|(^a z%C90H4Cc260n{>b8H)?_h!A$w3iaJ0b*vOnQ+4yLn zUyuM<+qf0DAh}w%j{rtqs)TdwgS%(#$MlsqxHG{%-%V>c&)Dv;1)mqvPg1P+bQ8(p zRLwK?NWRQ?eTBy=O5dtVco0MN`Ib6c(4CzWPWofcx;?#Pg^-qDR~lA>!$`jNNw<9N zQR|Ctn5CB(f(=iHEMVCavOt68`9cQIRKG6eAzj}{GCnzNb;I-RtgtJ&qCJyqF~Rc_ z2R9RqS2*$cA`cXVl=mVv{+!K8qZ5%}G23}lwQO$2(lkW5C(U#vf&DI53TtXZEs&#r zBreA(NXvRaJeJuUk(w>MGX!CS7O5z_Y-ZIIE7V!;)3YTly;{lSlk0)Z4)GZqtrpLG zu!~Yfw^qkDx0U;w9z1w9dLxPT)HMU#zIGmzwvb4Iy6yah**-_o;LV&^M>27AhSp-m ziJ@$NNlGF7YoZ{|;u$~Jdw6X~j||;F()*e>D=?|ZiGmlmCpuXJ`O%yjcWhQ~4%P&$ zEIVaBowS!_MpM|^5OGs=TlC?_B^(HomU#`Fq?w~@FLgQSQz-%VeG(WqDEA&)f^lo8vFt5q#BnF?KrIMJ6qaBr^27yNbPQ<7rq@-WfPRKLNUkMO-~ z0&K{{Q!R{NIv}3uPIAU-)nMwo5VZ;i8w{;juKh)cyiky@d2ZLL4n&XOf3Q0z=ho%_ zQr~zZ%2Tmz^iBl6MqiSjT48D#Us!LBoK4-D9ht3jZ3(X#<|RAwj||2T8iUI=5snc} z_@6>Qp@vz!Y4i{90$`g`qVj$K+{;B(Ss%ai6Fl8q3 zO}!^dSq)xEKaEAN$3d}+?si#m!usty>p;`vedg!KiYminxtn@c6FYXhBvW~1`8&le zrt+hV$<$Kn^TDTvGNHNZGYPU8U^9wUOli}pqqO+iT@D`}>q#haZaB{v5$4XKwWZq^ zHSgH$LSd7m$$Tb&glxqIM~~}`YQupd4Ydr_hurb@mY@3LnEDMDk%_HQvb)>j1cT#Q z!)ZpScbN66xrGQxzS{Yuc*jw2Z!})MA^L#W;F;sY(*KTL$0)yHjK+ky}v2A3E$D(RZ)EKzp z>O9A`)Zl5hDAsntcF$NH^~}7lH=o^pmb}NEmf{8WSL#uTv99c(z`!1`-V-nXnho}6 z{^dXBg#F80%$}qrD?E18AiW-WE2;0>$Z~>dStHpp(bc{?(3HgO*fGNHT4rkVIz6{l zH$Q(&tL^vKqCKEi3q+g>p_0)_cygybm;`yhT3&o zaU{>)pR#7VTH89+_ZQmlz1i~QWWofE{X@Cu5h zGbblU?`d36*MLQ9`l}tcCwpEd^YZq(C0`mokhX!@)DIpm968p1Ve7oO+)B5`tm>z+ zOVX~&N`68#y@~4`RSm&OhXfvtH7Hb)Dr@_zulpJsYwC5#<46qqRb8v4)p;`#MoQ=} zd$8F_N*9K)ay&vGrH*+;@%(K>bp|nC?$h~`gU?F~Xc!_}2H(*naZJqjZob*K^s{a( zDX z9fn1&vkGE&!fs}2@11I;Zsajn0XQE@s6n(q!SbLNcnmtt-6>2_jt!ku%OGNXVt@`V#v>|m2YGvBCx+jnS$bI z+4}ZRd&({_#LAfASZQW|KOWFT3L+3MtFmVQl+=&O=;Fjt1A-|XG(Gcip6{zyC_~}j z8D8dGPGDFE#AUqn#bR}+NVp6JZb01I$axz;g;GWrff4s9+^|&UC@Cs(7$&b(I8^3g zEBs>9{J8C*$DdPS;ZhJUiy7Lf@W4xXUHljr7<6)$e$M>OH@7nmF+b=q| z%u|t`6Dw{a^tz5gZbAK5r7bqbqpG1+SymG>g>fr~ z0Axe=M{AL>D)P;oYt4^y;d=E$KU;AJ+uEJ&)n|p>Tsm3nRT__ooXWKO0=A|T&JN|S z8#znxW=$=BMIWj^N=k4N&^v+WgxfYK4?tC>8TEaX6`JhJV) z4^cf4;IFl%VRDZEFmPe7!QJJoxm!Pi-CpDA)&Lb`IAB7X$Gdpy|eD(mBaexBO& z^i*KazjA6=kk!R+%OD!Vy0TtNL!3rw(OtK5H&VOn`gt}9p88s;cg>#j)N}al7Or$I zOeNK=w{3Td_$4xEhsR4JbG+NRbA zHUH_`8u$LY;Vu+6!(g2Z!HDk>;fgTy?1T)vbMr`RH4m3hse4|E&9Q7`LpxOqPO-9~ zSxj~kSd_v)O{+W$iJTHwNYsi7=XX=oujMvn>*1OB*`=sVZSGw}Y2K!G@CZ4s^)?P| zJbMS+RZF2|3|}5-Ww_~Mg|=zCS)q9e6`kW15{|v!y01aoUf$$YRAx&rxINU5E-xFd zE8DlvG}3L&D=TaKVydW>6Wc9y0CbETz1QtE7u6Z&U@u(N)8@#2^_8M-}W?$Ak&ES8N{(+#)f34 z9NOE5T8qWVP!HPq2K}6RmuG9$u-EId&q+E(7{S`b$sR7ScRqwe2_6#xt1)#@{~5005dbX-Ghfg=WcO^))g z^N-DcPWD7L;phX5OO*#a`)q>Cg>UpDT_0)@XAc4Va3o|!W)Hv6jKf}!M!>d`nSR_d zjhO<6ahuwdx0;k(`l3eJjU!%VX0Kis_bYBYbzttNk=N30IidJhpH8Fin~3|YBMHQg z8ZjOG@aR%XIx$#iKsV8gHiUAYk?!lDj6IwnpnC=gx0Tlz0V}GWsx+%Ct$uODGFI3? z2#|~!Hc1OIqpp4W?Ac|@=KJ{uYtB8m3P3*(JsQeEp+B6&tWBPV_kaV!P68WJKZ&Bq zJBhIDy8+i(SzFa|CH2=5u}ACW;MQbVjVDhv7G>V;Kb6-_ftQ{Ma#;WRs~>tjdGr&S zH3wO_kveey0~!C%g`=Xl`Pb%(*49&Kb)+y-DY+kmO5I{ziLHG^(|pw|7*q4UjY>P< zuxdN8%}sPWyzIZ&d zHyXQb6;h#*VIkqnYCNMMmxIUBy5(j5&Rh7@TG48K*m_oc))bnuDnakkOm^utYmt<1 zoa3*4Zi({g>9+G3_7g$3-x-mS!J2H6jx^e03$lgz)QkE9D8RiQKXRfbLUz8q#Rt?<3IOD$S%^TFp(|?;&nGmx{&%N@a z|GfAt(0<{yY!{6wF?yTxxc+#WDREy0X|i+agp`4V=>XAL4%Z&|x@Ozh$+=Q4?54=D z&E=chmc=pNpv(8Do`WiTTxqDeO@#mwf)&MZT~UOT zud}7zrRyM{-^ zh7cK`S&pCDCphxek1?nYt*9P0UQ4l&sfcj=9kk?|QvEySgqlI2EPJzL5@=}3HasY~ z!mN>3`7Nh~a%JRdDCI;grrkOGir9C6zE|I9}O>mN?NF9iTF~Ykai9 z^UR4egf#5Yrm;2PS)m^~0dQsa71x%6!d(02$QheG0J*Rsf67R6cU*0}#K#8mQP0Mp zpGI~rT5Lk~KtaniVoDuyTIj3wbl7AH_9#~5xk~T03N~x;U-;cxbiGX^>G<65gv325 zJqG}on9VQFSM=fv=wSU2BgJz)tS?c`eZgmE=Ax!Dc(TRI5s5r}oR>)}{joxAQ#V?T z6di5Bez&g4Q|cH>HekX}eB@+FA>f=sQ7V=BL3pCcLEmd*DQ}zVE7>=6bg{+#?Jg zHgWN0O}miZ`bqM(RPiy?)IFrTCbUIAh~;xX_xe|1Y-QO_4l*1v7b5W)<0$?Zn@jRu znvlt(6h2ZVKhZ%+$q$q)-LvJ5G=5v+biPF4zlxsO^Fw%eh3T`!U4+RnijsDa`!e?C z6U-h-LwfO-um@^~i`4_~WEc^Wd)ahL67mt%RG?QJ!5kh^==pP;90-v0PLAb76`2|q zD>6f~4D4z?@nZ;@*`d}GYdJ~G0}(o&IXwg8R2o~8TLlJ#HKEHP@Q?80$k5?kqV#yW zY0D@zUlton5DjjlroGe~YD!h8yW-yhooG7Ia-G5^Rra5dygCP9(DP|IhsQOIa;UII zu89-S>e|^%uY59`g?vq zH662nL{8#|)XX3bGM1hUD0ExCKF+q^G$KQ}gRK3ZFdT;=U2|1#+45Cz zr-E{uqpx&_48^eiB?;VuRLkwclBV(vIljtkh}Q2+Y;4GpWjU#+3vIZKw{10EYfX{_Bum%+EezoEp+x=x(PV>t{QpCMBbXl*VcoN?4aOQs!zyo zuf}b;5HBOI`r~WIYKXV&PyVmQZ|Z$3YsYodf}ZQw&IFfHZNoZ!04@KndPAPqKzgp} zIoucWuioD~J{~hLiMV;nG?kg%v7WT%>A*d`)#Q1qK_3#)n^ozl$aUJR<>8$acLw@Hz) zwlZ_Dwo?SzJ6gP-!~14$ZS_B$NV5Df2H(ku*n8%8CT~|;KEjk-wxPgd1eh^cig@`5 zyk3!Er=!e>d5-bWW42}&YF}}I68kVm*t7)J1eFrK+|Tg0SXew2ZUNSI+|8aoG!K`J3$D%!6b=l>x;gp`VIm zj#I}{I!B5{xUcGsv#Av)iEs2YNK7__x_>1gC?$+1ej+ta)vOmsPkR7#g5o0{~X79Xh}cfDQ4zD`-QEWAOI zAym*-4)bVNkl38X15knfmSVyFEsi8VxX$35vMA)XiP-Y#@2js#Q%`YAUKQQ5@Vbz) zigXl=<0LvO;|7z2e$JA~=vc=Wgfln#@h9v-KLH<3(HHQ+_pT8BivDmy{o-FPzp~x? zAz;w|hvomT@c&|)skD-;`w#r7f5#vGj$giMwq3WKeEnsy!#JokKhMxDJRWrmt$xBl zc=(h4wnFR=c$hgvLU(6#(boNDih17*o@np+xW@6^T%rYsx%J`1MTi$vYcQpgQ05$I zw1iycSxmHu&t^5N)LI%K87ObsC!f8P&gV6=Y$e1rIflOy5RKBoc>2El_U~`I=>I$Y zE16k3{&~{$PYp;|8C(C$r=Uh*=#MkP%~+2pLM9CAwZ&p%FaAOdxiAAwcp{(jr)?=A z-`wK^=4CVUGpf0(xKn^Ab?id@e3n6u^SPFDL);e*-2ohFnbOWcVVp#isU-Qzr2Xm7 zEhf5j#KSLSQND>h4sq&8$<&zLe8s`B9Bx|4F_KyOh^D*n;3OaV)Xi^;aax*bBd^rN zJvAN6mZncIcgw(^*Dtm5+ZtP(hM_(Ea|35%z%3_y&C`Rq;`V993>PUAhqjibcdpWm zh*l@}NIgbuIeTAnVtV)~x_dcIbf9{>xhTkje&>J}+RJVRMOePcy3osdmiD3imDS7; zC#28sjM_nifl2&#tU3S~Ea z`KAqqv@|JNuE|1Ku69SZasbcpM@&pc(7Rnr?664eZdnKLihk;7t}@fYsc{Gdt~Und zwnyyE(28_j$h{}$b1Nss-SfM7T(*?aCh@-~YBHG%eGRy0%F!<$eh3s~VX1UdBtH^888r91bTO(KdPD?`KgCg7S0hMd~i|{Vv43qMu zGE$lW%B;BW)^VCU+dat17PZ!@-IJk^Xx3%t%fk$Yy8G;uCatzGkqiY~`)~ObDfK}x z2!0vRV@Qm_00_}=mB?({sOUYrkbVT0Gx6+ml70>7I6CYXvhY;)HG+i@qacY1vaB(I zVe>}huDw25!!ZeEX!F{q1X$+`Q$z>CJ;>}$MctIc7dt77&v&Ex&b9$;-AL>VH4l^y zrT$D)%Ft6Pr8qN!W;u@+D`>!^0j+)F{6H_i$-wP&uW@7>A1zZO*9i(V{Roogz&y6y za9QHap*3O>Am`nY2N z>3b5oV5;A6TXqHFTpwQhyJZtrn~t*X7zPo$uyDR%pT2-H{^@0_9(RtB(7Q%&;QkGb zg5HmIv$2BcIE|Q?=>UvO>~uf?2Me9C0V4-10K^6Y0S*5xjh?7V{a9o~ZB;w;F1P#g z-PH*%S`tHBwW(TJN^9LOoTW+KF|C-0=k-*1I=k^PYJv>A%do4;)s1v z78m~JDro_c3DARAAAlrP;r(e#{R_BTUot+NjLYIJk14cl)Y`nnN@=Re+<8ToEz<3S zp=y#mE041%E*{sxk>iMGWD(cpntad4pUshh-*E+MkcESXCf~~zM62prL=U*tu^41v ze-zxths-E?a2#fN@oU~Sci*U&oK|>ki?6ApaRCtT7hGt6APrH962UXG7Srk0sr&__K$>0-q!~SU zO{d)WI>bOy*K(a=XQ%{FL;jInQ4dU2k0C;#pz})!w zFlP>XIS#qEKtQL>X;vTjxdshR$MN`4mp|nG2en~J7&%%5ar+-qyv=;QktDuTK1j zvEN0k`fmhUCN@?8Gb0E<$IQlQOb1{x;-KST=H#FQ83POe%pedGlQHYRCE|Y!w2jvW zCAAP@QSj)ugp+uGsR zeBIt|k%Sbegp*H+`$CK=Sk>v2cjE@;5BWMLJ}bmv5jvA zvsW&Cry~bkKS@ceTS}a#r1U>cUiH4d%s8OAFjn{%9Yye7R3-Bwl$x+vd^wT;TYpM5 z`*E()sf_@vT)RY{BbMzWt`8<*(D}51qirnqf}t+YII#k7>*`DA1d5(NSEu zQ6h%efF)Q8DZa4oSe3FR^l{YSDEPDElk89OF~H0vD;(+F12W!{{V|}obli}&z6Brp zB(2ZYZ+vz#Ez!xd0T($+?E20mNFq?iUZQIR<_paMZHRP3)uKwwuSqlX>6TX0VRVHV z*!27GadyIT{+q|8?{2e z+h40Oyzhi#&yi!e0AK12M;6<;GxO_BB<$P7lmZQd#rr|~mkqRFH z{dJsxrfY=%CyBMRwk-GAu$RmR2CyogB z-l#9+C4nrIJ&M+8DcHQG%4b_&G$rYjCA&lVU04l9x)z!0%zNCRiS(4+7C$^p&iC;0 z8DPBe_&C24G!S4gtG6#OBe7iTBB8FMZTXZbdgAWGsfs^pMlUK4EKl05o8YHx0BF|8 zU31;|gOncc2i49PnyU>(US|o7Y!bRNruTA*7j>&&RC*0A;tBWroSHl&Ek!mQZ>4h- zgdN-fM%m+rEo;`|Zi?L1UcSwuI2C5lga@v(9*P~RpYb3zL7>}0hSM|r&_I`|`*|(R zv2*8mSEmn{P@=x(`W&}|`kG+^g@8qLPh}93pV?aHMeIN!Al5tJff-H*Q=ahmN0rm` zK{KsDBr~g`3ZU>Jus+MO4EJZ@_6N3`_>NjRUKq4M-rqFebh$HZBp^P8{{cQ(IaxTF z&45CwnF%K|0~?z$fWZi0Zp^@L#Kyr6lndCnP1yb+K6M-x02uxfy8@d2_Ke-Nq|%9s zHBnJ!3&1-+Ri^DoYg<9*CzaqY0?$YkzI|;N=A~81sn&ou~{H7L~ZEDz- zzgT7^KV7nOhL=wGj;Aj#{#1Bk8PV*I*&Nw&+21hR^d0wZ}43r%d-w zMoJ2C9^*LMX5A$Yn_yf`P0-=a?&YVi9z9R$?y$7dF8F# z#^6n3+wbhDG$5UPL@iI(?`#DZCghF4^pA3Vhv{(WW;@T1;J z9?k=E8exN*2!uiCV6u&jm8lvRT0zCuS0S##$-Vnxg5>z_EBcI6t^|x7(^QDnWyORM z{EwO502X2V-OAeRu`cwE`S)Ne+P8y_`B>{-RKl_nzqP&EC6N_JyYb|WJbb50|Uf2uUex%?S0J<30X_E_IRWY;|%EqENq z$eUb+Q?^(dx*+7t#^#_`KR(|;LxEWpb^kWi>U_CBUr6D9hs&W^enk3x^l*uShfS+& z3W+Pu7MG{DC?q!A7M}=WI!QRH%spz9H0Ovzt20|S`gMj~EnUUMVHG?Cp-r5?!jVfbrgFQ!*qKsLgQhCI$Dxqbb_IzI58Y2)iQ?o7pPXUlXFstVrui%J z-!}7KUFBAXy!YbUU~6322Bz%&tOCVKJRttYG0(Dy#o}&@bZ7>7*`+)xfb0y(GGI&U zX&qT^Q$2C9O3AgNdc_D!Xs#!3c-G7BMCc<^%d?8M?Gds4!{n%JflC4gG2{82?eeJ8 z1isyaV3TlH+Jtwbc=-@sqwJ7m$YmfiBwy#dhB|ZZnhbv!6)XU>yiy5C+r*rH zr0?qTv$%gn|F@8L0e1QJE~Nud8-8eRaKsy^)$AMjY^9%JJH3^x_e?BHtJ^QXy8fmw z`D6~X;Qm8VlLNqFYyu3F!~kG10?y|qEX)kt+(s-6=IrdiAWG&OrpCsc|8TsNb6Ehw zlXW0q_7SMNV^$z8ny?O#XCNVlS{eRaOgfM&?n~G8LwVUI3mBAN!2>;mL+15NDxTG^A*`&_ zm$aQI0AJW5Hw@p>?JaHn6MRm7{rUHbBT>SGzeLTxZczD8_zLV_gS$Yanv&dk)`W-S z??}3;ck-YSo-BkIDX5qJh?+^ltbHa&5fpB>;zePSa^{ONXyWe+gd8mut5&gkMG@9l zKHLav+;O)sMYUzzOy|$O>}Mp%$Con*8riFd>WG}5+Nx7IEu!HZ+G~NDkPRX>X2#$k}+5SB?Xjr9+;rtk+#Xdh#N-t-7WE;Zt6 zjPOLlhXsVle)IP2l{B}F>)SWWnDOtJ(`Wu5gbYbtf6oy8F=1}$8~bu(KppvNK?Ah? zzLWR<6|L@1D8hdQGF0YaIwu8U^Pkw8xL8?$vo;$W1Lq$r6C0};D}#{NaB0Xi`0A8Bw*2Z#Q^sbW&uJ zKDvSKp|lt5K8A^)E0KE$_t2HsDK<;Fr9ee~?Uq;83pZ;Qw=wPElsNMFK`C-?g3H}! z&i8N_Rg{rZXd979sug>urVT%gp&uDigskk`pALpms2U2fJv*NwpH)*KhG6ZMvH>F% zWSsg#JTggr>pSV*-Qm<#7Qh$D#iHVBakAb-|0F||)nGmBVWw*B6lid2ae_>M;^Ici z$1{Y}LPE14J9lpilO@av@lxvNg@ywnQ{I{QcTlo|?z&fuyO~I?4ecWbs2|jq?RmGK zy?o}FK2pWBt6w*pL$|$+Z3_Pkp6nSX^NW{9I>zAbjUo5Dj%D8n?X|6LlWK&$$f_f+ zh9`uTio3?er)GeIXL-kQVRtUlGpur2a)jPxKYUkVNO*XfpE8oT%p{Mct$A!RK6Uvn z=T$2HFv0It5TeHcM{9>07%VhH7+Iwfg5RN8-v|bd?FK? zLenmu#cC6s@P?_WTbcF`e0tEsHz7`3jt*TEk=MWM@_IS+veH9V^%)&xn zR0hfPql{366fKKBO)i-Wz~vLcvtLRo^^uoS@Ije(`)0CuW%NR+_Twfg}xqP`Qy~php>00);T~D$C6~S{QMWFF`FM4qp^D^rs*Lts2k0e_HaYH;BlbVi(%Y~NW zq8I+sBoFtK10>-tnm(JOGf@}0AD9yy7#+hTwo*7t69Uw&oxDT$&2X(mI~b}7hoom| zRIyEUi$c~>b617c-3}C&8ru#g4q?gM?`LIm_Oi)3CNq7N@mGH3=ZkgD;>d2doM=O> zey8m=wLOB4GnN_L0eKl_757Uw9zz9pSEZV${<8k^FH$?>8jP*;xXMy!7F}!7(xocD zwVym^GwJqB!1E08j;Ua>I=4=E|tiW3_)a-85o*|W%1)`?_b0lb=t4o9o_=!a&0y{Z{g|Kp_suScaeaz z{&;cSkt>gei`D&(GGfNzC&u=J!D{Z}=ZiVy&A;)2OEYf7z<}^2`3L%vF;EUQGhqfW zaI$j%;mZlMG8wTMvon|jSlC&Zfx#(F|FNlQ;*U+g>yJ&JPY0P-Jr71XsJ{myN(b60 zMwiCg4!uk=EMe{WMHzX*eYZ*6`7GH zlRn*^lGY&Oj7=j_rt;X$WhM_i=bFyl_aYFWx&)bvHG4DC+QBRJO$qDymfNT}o?dF0 zkR_&p;27|ma*paGj*4@I2-hO16;5K#5@wIjK#c#sGrUS|eA9=CrfLV#jj9IokUWFH zeWE(_y(`8RsL8`o_9$7Wv2wUhnzn9hB}vgak6xo*={9Fr*YU^X@HpJUD^YQNR27Qo z4m3gv89>iS83-!{lMd6apzcwtoH<8UT6@3t=lmoc#|6&8cSIfJo;m^OJ~j80t7BXj z&agZX;?A4#=uukdz}bT&WQZp4nIUs%hleq-lIvsS;EvviDv zQ1o+QLm!h{1o{Wg%SO9mJc$VW9steO*56Kn`%5i?&v6pJEYuz^AXYZw9yx9&^PO|1 z%dFCAQ3p{0s_b!dO#QVBTpixq5vJQKr8%J=(?R~i>nE2u88%|kkd;+aIC&wUOPzrB z`2K)v5?DrpTym~wn!g*Bl=73tK>sNSx!9PExPVqpbD(w(97DM{8Mpw(EDT2GtVSj# z>_Af}>pxZ6|JTA2pH2*?C}t^Gm>(=!E8{L!yYk{HrF0Tp#vcsEnDII(lL6P2l36dW zr*e`~eZw|$ac)2kZ%2?}D0~QQI>Lg9(<>fvhAa&ni&QokcDr>P;%N4WSI^zw?aySI zVa1KO5QwlJkP$~nT4&o$q`s*Yo2=;fRVHiK#YvcdeA+&_ARiLfI-bD}jpAt_#q}7a&qk0+mDqYl&+|;7?zk=n;Cq?!Q>MyG zki=5)-$#UJ{XZ~xU-K^vQv5dz2CV)YgRoc1%`5*m2I-V6ID6G*nd^4Of(w~KGD_B%GXD{l1tpuG7F8jZSaSWz4TkAfNx|Y3hFQ`6G*p=Zf`Lp6~?sfhPgY-ZQ2LHhz z+g*hJaRfM9V^-A-_P=8gUo4uUGHVJ)FA#`9M|8P?KNzh0gTW`7*S`syjvq=>kU$L5{)2(g zoRho=aWA!Wp=&#b6>Yz(K!9 zkb3=>>H;DL#5c8gWUW|tNNk>wbJETByWvbA3+LP&-`*fh*)QSQDOYsc-r<68xTj^7 zE+W~aMl_}_Bp7Hn(#;7RCv|fZQgJ(`Nu&SRQqeG)={7eXAeV~Yu|T%E?_BCfR5 z{$ZA(HaxRL*Ljtp8m+@K=ZB;?D5k7$=^`!X>MBXfroY9Ivi7%N%+J<*75B>1cazHX zx880>D`R5;Xs)9+ZLP$|d;8oc8r4;G02U;`NL_GbHPlG29AyX06)Ur>J2o3d**Y9H z)CC%H;9()0`9^Y=Jo^Ja(WhqC6eH zh8X+Lie|*2`xvet@{;g7ND}-6xA+6Y&nT)dh8NvE;AZ~DzXjVM0~ltWy3XoZZjqiY zMS&g(5Ho=d!B=!*mUi3n-ZxD1jmN@1rgL+>1Ans@)nb~=vJNKy3YE?1@>k0L#NSatVr6092m71;Z!}*CmkPWUJgnB`8vPC#Kg2h$GJSgB)!53j0V1#aCHYOKP@>Wry5K*P5wobleNB$oSBJR z4c4+EI2duU#~6S-Ix{vS)5`jF4tk-)coChIT-mm8gC(=yTGe(x^2ae5rVz(7by*?d z-UYR6(e^uQxy|4dovgH|07r7KeZWFo?b={R$hKehCv;qdi4Ke zi=~9Nk^a_%>Lgd^8z99A78(SE{6B%k$ll(;_1`c71{MFGFmkS@_s5X^MyHg2G~`4u zQnw*nVxs&h&?=kBOf9I@}2=M!4b&m!?@A6Rji6{WiejUOnu3-()Qy9&H8vCoEWbO`PIpHi3Tx6{KwEW9p-M2Q*C$H zyNS17cO#phUww9`+G>gAu6J9zm+y!Y^4((WUN&|n>=cR-w*&@UEQAuKvT9%v9ez9|A4H8G4eJeX`X^$-K=V-}%hfgd&jwE?=@4J1t9BfyD zXlB${17+_Ot77D^qF8+Qh@*VyUOu zc7xR;;fmDCzA;1k^}v2^YOVEoGVU_kwPXWuqQxUb&BO?I_1%vnHT4=-E z`95vCZ84r@sJ-`|1!b5}3;0%Me^JZ@#yrCf?X4V+Je4k@9g#kkz9oGbDC)2|7Q6I~ z^oPnT=(Tl8nc7S{)3*}%8=n66EK0+%CZ1;NEq0U9cKDd<9JF6nb;qJ=h zwb<1d12Z?moztyY6<^5f|I&L9^cx#lMaM-(XW^st`)6hFBbivDrl|nYs~lbrBO#k9febK> z*g)pg#)h=61@POE@3jh2Wt7v0*qlW|$6=J4>j-QbPUH4)N;1oKGS=HR*TJoPlK3-g zG#!;$%J3>As$n1xewWw=Ps7`Dj-#5<_MSF5Cto` z8>Tq$_C{jqJR2z$d?$)RZG3j9!sPXdm9Ue5s(`TZF;0!wZg2?$b{rF;tjryA9WnUInPr!q+_Y10EO?e*gUDT|?3w;8L!6&>kHP^bw|v?X8_4Xpt_%?K zU@M*70?qaOzADq=OsaX|x7nZJ_)Du`Hd(MYm6=#I@+2_OGPC{FPXE=pF}X>;r21^qUIy!9MUZsrN=tnOG5yOz=?bY%!*tAZ*S#KSus z8*gW*f;YGod}PV*$#*I4#rPb^;ev9H!JABL;QXcN*adW0G>5t}d%*7+o6%4{jAfEyoD_|P2M+ism9?uVb z`CXma8Xr6SnRE%B&0#UIqrR@qNz8J&zSxi|_R>-dNxhm>h+|2fF?%NTnqVEG`yF*; z%B(ZRC~K0l%jkdHx5aJ#N~(K!w082hGEyVd*qHypW2*d%%th``2L}>NBGX2 zJ`SLc;X$meCg(F$9H{UJ?vq`KUU9lQFvnd?U}@3~x1@|m3%HW@$IBI$g!ybsHc}lU zz3@=jusBXsL1lF-4hdRJ;Y{fhQcE(a=B*FZ#OIlF%)`*a+9h52TmBl1?%NVz|spk#VxJSD^7ZM~Nj3{?sjQ zRCSz<%b0L!S@~2%_=1N*^NtsP?$NJPSp|Cs;Xj8sq7Am@nkY** zuY>SY9AG`*&O+vgZCv)rjVUM0j(@%X3%|qYjo0rLdi-dOUn^Q8lx>B)Oqv4tJ498@ z(e~K%`1=hv8|FT-(iWJb)?Zp}hqB`bTrYMyG<-k4K`YQAqI|FHM)GC5U`-ZRz}{uM z5TUjs!sOQwE*KAO%>Xpj?Xi8;KM#o&sgDKa>Vanqu)4%vUO0)&1B?L8g;`b`aZWJ0 z4f0%84Ec6V-@IGfhf?Sv?A7Ztd{}1W7+VA)1;)6Mkx?)P`~;_(Iqul#zWSndL<1;| z*E^!2teEnmn1ydfpCk_^lBgIW<-;|#Ja>F&1hsVEduG$auD%%%7s)gj-+&updgIXt zCynQO^{mx7gqZ~{1c=vKOv!nqD}U&oRKBB>7%zK3$ZCYr=syQDNN`)(N^ZGMZ~D!P0#G|61?1y zbf|QVdNaaHBdxT}rQU9rQD@4ZF@UA}Tut_^9-{tWPjrfxY%^Sonr4hxvz?Aeef`NF zuU+;=Xjc9W)1cgD>6#iHXNQKpI!@fw_+BbT$q+H!WHC{+g2~?d%=}6t>JPR%SUq@GqiD3p=OJyhBSs5QlIk_o1f2W&RIvZU2gww`L zA9Eq^+&J|K4amsDeV%7vBe-|=)yt-gO=RHt<+$GPYvRYD@PW)M8%^y74QzSDno4Pq zd>qzgTw3;}YJ0iGGn+vn|6-e%fWjks3A!KZJ~a z{t&9w??sTq7d5UPlu_Alifu}yagYfqi0G1}z2SgX8FEsyGz(seQk@3$K?GASGm4jX zXOe9b6v*Kd$xJm@IE(i(Wfs81l6Tmb6<)MYE9*LI5#i*3=a@S+Kryi)rmu|t{(i^S zF_xHq>=CB`f@VQ>%lAFvZv0{kj%aB1wYD}c+W(LiR`aN*`)$Zssf%qVUE(a&Dap5_ zP_!hS(I#r5BO-*5$}y_&VFgS!87JkUhE5W;sLSzt2UtEnQQW=x)V)Q(MDn~Q_zEW@ zRob<%4i@(5p5ew?^a`usT?0}b+qaN$Ya%mAW-|Y`THGTZuaLvfY7z|wq@Kau2{Bq* ziz~={vxVB0JHmGf5pyzW`#oJGmZg15E13E%All$l=C#CD+rH|r#wy3R#(0z*mQ^K# zH~bB6n4P-_E2E;AnJQs<2PcK7&+UcD+BiR;s_e)2y0sG4ymZ|!!vJI7Gx8I2W1j~y zyrIg<&tHl`l@O65Q&$V-(%c89nZ$==*z1-2CCRE0{t`z1HSm4P`fk?x}n3P24~y7L&$+< zJ)aT+IB(C3+AF7KII}!{DyFALJ9~XGregSfZ2?L?q@mv#tYV@e9t9!k9gO@1w&7-J z^py2xORb8V6I6SUEpZ9fGEQSzY-0Iff7&n$5^$=_`3l81g9^K(rN-kl%al9g9YDWD z;vY9W`9ru%fAP#RXg`W{>+RhwAsy+GrCZ__ufjU5=5v`_5!$oJDfZSP`puJ&+cL@A z*Q`U7n)`a1E9%h@TCYt5b8mVZ?EU(Tt?wV=p{o% zuwPtPtf5XGQe$uN-o!}KYsr9nC>S9@wJkgwkfSo@r@0LGAX8tCOsAiiUH)K53@~T8 zNf@j`@_`eHBp&b8b~LV>6_&9@ChVuGdy#zNDx`7R}tUgJ#|FU9^7x;+#2FuRZP`2f3Y zdo$i{&XXwa{)7YGzVpH6rlg7+ZlH}TWAD2}7R#1>Of zX?p4noT*>+Nj;t8mnA}Y8j=IYZtU#bQWCao#*K7*cf{u0dWKkK96ekkjl?&k67?A( z73NX0%b(5?r>6Q?Zp?D_9Ic>|S>&I07A#19PU90Cl%OY)G&Z+xDZ%kVDH(SYRW4tnzGl69$Iqq&tI~|xBgDJ&8|JL0 zAaXoza-(-H0_hMvEu;QkwM_YjFM(*4-R#{hf%YUN+f8!L!hP~{MmQgA(uLPg5EC>b z=$;W~)apXVzp#^U8P-ibufqmKLq?$Zp?w5V=j2x9k$%Z8&_DkA{9^TId$32sx~-@g zg!od_Y*+gtXg<~)j@%~Bw+?$^6w!Bqo3^wd zrpG@|s}9!i99qPG^|&(9vb=tFiBpy;K1hx_Lq>;A;9*-nV$ewXq&2~RUrQvB-m-}C zP-XJ2KeQ~2zwB>`#~3}YOHOw~ulsZ6WaETaJu&@}?MOsnCWuXp&}oL5hT`rXfAUi= zH~cWf$asWUGvk~y=`}ZIW51X9RpGY1XxJ%~#T&!|CTowZ!Dmqoxluh`c~#L}jgnYr)&cFUd zhJ>(EUb!>D1KA~DFr!ZaK`T$vDc7L?mJip5&w;A7lz6MVAzuXn%S&x5 zpjo=uqenj#@ofDP8-&kJo}(zwKBOc{pV7Kqm|ql0Kk^{eCwm`!hCo{}oZ;zu_)b@G zdW_{Nlm)DcbF#IjLORU%I{=SgUFB zkWUOkFk@pc((!tUAXb-u?~J6a`(mvSh0$sb$9H=wFT$XvUVPD!D%}>8xXBsKyPe9I zg{2#qn#8W5?avks?xX#q3$B-&M`L=2%!svE)5joxFBIZyBzgFTu-1rBUu`*qR1Gm7 zgUiH~zwc4!cu$58}!Z_4Qu!4ZM`)f*dqdqirB7aC3|W> zUsBumYv!+`oZv;U)w01t^F#*##asK81j)at$x_)&V3MoaJ?{mM*QaFGf{8Fdy>10&9 zcnn(&t`2@4TSi#_MvW)@0jBynaw$0=Rh`ZixNI(iO*PuF~0&J}WdcsxHy zn*d`pLc~aoE=mX$lAnp~=D$Bk&AVvWkb*+mO5?b_ibnC}_XyN@;*X`TrfxBvz6=<3^*!&%9VFovn{5?8l&)alnSHRyEq}r^ z9oyz4f!kgK)I&<%IQvc(Ft!s6VKQc z{gVU*#zJyKF4hT!I${e^Hp0D&L8)DVDE^vIaPmoWU0E6yO==Teh2b)`<=R+_`ETa5S`8B%cJ4^xSpn!_19qL&<{uOv|*ZkIdX z`u1EoMYPFKG7z zc{9-Qw{sEn$WV&srAPrQtM!>gzynv&d+)DCkQ_*IW zpF+=lG}YP|g4C)3M`GjxxV-`M>dFkg?^B&AJr?Z2Ie+bsxZ4Pl%OMyji2KL}>8+NY zNym(8&_NV#+u2IcowRAoO92}$m!6Gn^MvUlM9Vkpq%{eI6*D!71d<;X_xvSs)mheX zo<_}x@0Pjyp)hSB4KxKF9S3$)MsYQMm$p}B3)}TM6V8ZHZbLcbA>KdCR~b4LhnO-nQjG&bhtYMAB*%R84)b}@ zOS^goi^php&AhMJVl~d_?v;No*>Y!~M)U#_wjoVnH;7tk%Ks95=T^nz2L1iSg{gd| z{A~gIeJb1L3Py~UKTj@|}`|K5>-DKeYl?6`1=8v%}atXsZBCA1X+84>JvAvX-N}!%#55vm@KI zDh6s}T?%bTQGvl!Lhd=^gLrg=I)|6k`15F^ruMBmdb{Nhy`pI{F1V4$Aq7#JB*4kl z@XoF}CekU_LL-$2KOV9w1iw{Q0XE*GzQMsfT0-1K`6t|r_L)_V-? zP?VV(v*^>gR0H2l)%B<*NfYyl#x_S9aMVVE&Tg?Eu5%q%6z;Kqou`=;d*O4*^;8Tn zWo=cMubSA&iH%<{#7~Uwyq-8J@`Ot+P?!bH= zUpO-4a{uZcIi2yA(J|nF3V$EJ-LN*Xw{*A}Owzkk;@|hPHrP*DidCmZ_PWn83Ij*i ze5kpEc-fur6zba>w@Oy-a$&$O!{$mFNHG0Q>MZd_>z;wpCrfkbo+EgP&d@l%A;^Vu z>juP95H}W4D>&lhngP<6sEBes!7AOc*NJVGTI(zLbm$+D+T;UTtc+g;ywvE0`l8!b z6yxJ%tt=bR`S{%c1wrf$-)I#XDTE78R<3KpYDMQwEQp5c29}hkO_#6zVvgLvLW|va zAShl#+rQA|V?q~ze~^c{hl3YwPMAu$vky<0hcZDsU;cU;Z%DR8b>v=c_ zrxz3x<1c3|8ig?1>ayngOr)Pxpc5NSCx@=N>a^#paWFpHzb)?h2xruA>`z6rc{1Ev zQYRM#$%*5nHP8?-G@t31OARaOv+Si^M0EMHLo^=A)K_nEICnuGyiDG0@?1Q^uF9nT z^uzDs6?43TC+!wSq=rwZdVrxQEDzfTKwRVW{Ve4&pwsbPT&aOIM7>u0$Amt? z6u%iGLhEX)UEH&as)=gTiPxtI@*A?Z$HNrBsJ>4@lA?rH&6h3pDE4tIOvq4i}g-ZrynOd|`l8Up+gXR_t>W9ZIbey}WvFC(l~tr*7H>{5r^Yt_Th z0{iqgr|OXlo^IeRxs8cahi*GFU^88}qoi9sx#D^va-YeO62FQuOo7CdSy=reVb2oEha-Q zXv9Zj6Fw*^t{@Edf0hk=5cLF!u2v$eH7?n7f)Xc>~j3(HI04jIDUD;{~LBsYV1g2W`#3BVPU}E-$d`YCu6vFg*Hpt2K@H}t8)Ay8Zc_k7p zfBZQ+QKMn|*77zdpA%J7cL>?4>GPRb4?RoxEIPs_ClW!wZj^|5=N#LG2U!;+64=my z3IlZw$z^C>9eV@pYw+IpYZfsnZPW?3X%RNRN$4&z-Q>nuL|;c0EE%zB>B2sAwXmzu zIs+Us+69*|;}8{8I%NUdCu95fbyS|Vt||N|+J(i~j-effB~fvlS@W64tX}R)h3x}W z;R-d|2}H%rY}l#j4h=)(#KZ*Gisv0~dZ~!X-j>ir^wCclhM9+o3`6h2%Pk+`vdPP8 zp#kz`TRgg7tT8n$!y`HuD#Q&8`NQVKcx1&ZGBAbH!j4M9$yOZwVM47Q$3J7q2UN&I zzxH4prUBHinz$~f&CW$&c+1HISf55_cwk$zyY~y#gR-?qm{w=03@pB=UTW&CFWta> zjbkvWRf-H(?jMFW)tV8^w3EW+qHF+1)g6?xm$b5nI0|^x3cPc^ibg6H9&4&%0E$QJip@7w{jM664Ev%oMbL+7ei>49p~{!SY22Q&>j^?#3)#ciPQUqYg=AfQIT)#v8*Wiv`PY$ zX2jk|eP=lx1-j*QR31jB=j)5=bb^OdG*;-t@P@>!S1Mb)V{P_!t?>v~U%R3;`bx7k zP@vco$E!91z6NZ5=l=5Y&Tm$F)PI!A+Gc!BGJ%UahRJ$!%qxH--cou*l&`=MGDi?s zo^qiV79GR?P1qxxW{a6^aHv7F%+ffF%|oPkF+x@0iDZo{(>W$`G{o<}(hLUQ0Lb%wmN^LH0kF66_wEGnJ?X{Dvsq0MWPk>A#KNjte!TC7s%BPHSs zDad>IHOa|b3L#dylPNpQs@H8~$almIa`KlWhN~W#lwTMHi61Z1RNt>)aCc%QA^w*McaoV8i z7C#Ox3v&Y+m7fy8z3EYKeWh3(V^hS*H8n`j$x36L1s6%1c_L*j+H9F_f9?A7syi93 zvK59*0T`dmk4t$+as$6Tkk{|3@}EN>EYXve7-HiEGowG#r`@HP`8=R-FAt%>ZM({M zQ8AE0pEaX107?R9!}P1FwBiccHplm(dFvlrtrx9f$qU3iimfslPa!*aVX(|*CCa)m zT3k6Ye9&1Lws%y#Qm$vGm1P&c$*B@5Kp*AFaOXe~6l6I8S}Ql%S7ACN&Aj-LHkV$` zQOebREMIbjCGLwxI$%7(6;SSL4vX?bz0M{G(!PH`juy~5F>p}R)1h?sHoa=&Ah3|t zpSL=pGjvpqp+Cd$CJiSn=B-?aiV%CV`>E6vHV3A5;{F{zU?_*+2jm`_`%rt_3#y@n zXjJ2mN}17*d*;v&l(<(wjon7fy6;$c{MKXG73YB9{P)`O(4!w+@n?_2(oCnvFFUVn zYE2NS;J_^ul`RlUvuj8dQ1b%JfstZn?Cvvu4F-;@mUp=8cT}{KQuPzVEg8PT>9pL5 zsC714K+n7?&gKQv!H923P=CUVFu2j-*ME+HHy#LHapa*@wEwO1S{!$Mt&}?r{yFGH zZlRz;GCoB^OiOPUKlrnwgJmnnr}}9Bf_R6L&p#6kFcwVouSOk6FCe~cT`*2?ax86U z$NB|+=1r!l|AhSAJmF{EWX0T!$#FuxMS)>J^nmKpH>^E~k5vDPsE<6ZSa2}VVz?%7 zu)st6Xm|N^j`WN0kHm-%tVTP^(4Due*`oTj7F}bO(Q&&KQ1ZG_a*BF)!TZ#uRH?GA zi8$}1+_=++gnNks!JTfDJo|gxm^I6Im6eyvEKlWwaWZKyYCeyhG@-;sDYt_-M|Bku z4gK({4VBbJ(wl0sLf?>9(4ZXd?q32OXr?G;u?^Ncqz?EC(c>#lRXue;&EsJJH|#szPa&aqPJ_N)uvfqN zfP9w250J{IlGl&)*AL92%eWVp1;=;jX$aKOj}Le1F=3&(4>ehs>8pac#E)decbg)&XAlz&q+goDFkv+Pz*6r81P{Qk51-FBk41+ML_VQNj zLkt(#D)a2H-Iy$+8kVGs1*NPODz=Mi38H6#n~_h2g-~WG2t<5LCZ1T}uTSq2_7)fh zfBmG4W^9X^@QCyh{F$j$`U*!WnD9X+vRo_Ny!DnQdPom13eJf_k^DA!PJ+ef`Ey_;3ripUB7vs;{?TM!Y3_neOVU>|S z9KGv?bc&9)b}^AC8Le9cJC^ovhxXC34rJ7`Ds08!*YAV~y0%6odst!8MYB99bFC=f z0=e!DH=w^s)o53qaF4qY@aX=KsFPML6Ceq3ZAJNH2Lh7#Yr$2Q0kRZ z;{C8^uq^go2p0K>EeE4$e6=lh@`gB!>F4>zM;T3nEir|t+u0=#Ep?D|C#fyIe zcy^gP7-O_;n>L9%7OXzQBiJ86j(bJ5GGZF=N zPv>1k32SM?Aj!Ar6$l~a$xA#0uPHpoW0@%c_w$peyCC2|;xkTAIKGMM-MLez*5l7V zZ7rx6FXusKd_89>s8B93XK>alJ3_4@{C*iWkJ&)AmYEmdY+&fqmvw#SN(>3Lqo;pr zt`R5g*~C<5l65YDrwH{HDDt-G(Fcw=>v7lH2ZDUH#SVb+z!G54Hov^KAD%QtWtSG> zdv3vxQhV5ER@s^~Kb{)+eRh&^c$M>m;<>ZRJtKWO0$-t$=lQADfJM8} zQ1e^<;cjPc;iMV`y%5c>#iIQd`!IOZFi?nRWTvmL2Lb4Qj?uE4} zg8A2H5s&0$xjX(i8^6Y1xi99UX>p`Pc49tahUA7A9vr1xoLR3Kx8(aLk{@irC6tGT z->vj&-n<=3C#%I&(v_D+rc=!KziWUZu}_UR3ch=Dsa+T}xpu2^g}~)_n!`&Hh1Bk_ zV9|gY7v3$cX+|Y;Z_xEG#U(qwPtUEhp)Xl`cRxCSM%-AsS@4>&E7V9D@LXstD4S%_YA!1WgSEE@ z81z$6zm3_nE$XaXoy&K9rXQmC%pq4QnV~dqN)4_iNqLNZZLUn{kAI}>`^dgFv^2+Q z6|wtaeFS>po5P;zUF6v=S8`&>KtM__s&~5C5frnPyYfoN^eA4r^Ar?tF34)hZ#hK= zFsWinXx+m1SX&`7!5n+J?ip1KSzJv(m<^fIMr-fVPg>&}wx6m#LB@WSH*Bo37qi zq(x2H=tP>Nan22SJ~>w;<)rz=-~&t+K!LnJA*K0fBz=uYbx--hHtU+tJoIiV_6TP{ zKwd!CK;Iyc^3ez(4>H?mT@(dD4d<&HE$weYq|Qpq2HPueHqTboe6gwNE)*QeZSgpyRD^}IH0q{)b zJF3jL)(}E*#03*w%)Dbv%lEI7tX@MyiqNKCHG&g6NCwiO4-ype<`TYscl%bPLAV08 zIo${_U;Nx0o^OamQU1|#Rx;EYN%*+O7y|!_DoKJdR-3$c@;D_?Ro z&vqF=+e{O~cvROGarf}`wm2fxaqVpmgb^Xpcz;r0#vWdEUw9=}Mt5$GQ8z3{eOc9&c9y4Z0V{P)MF zSaC9j2z-3-z~evCvz5*499+$$9gP35v;R*KENj%q#}#PR8=~WDA^(z{;DAK~iPI`Y z+P@I|-Du^3-XFk&?7zP&2{Q*fGgn|xZ%1IXNM>UPQ!6vzRv8Ay|C0+^6#M#UU$k``0_9C`(Fg3HaHFGBZ_ud=CtiZ5%EX*vx9U?$fL?jLV z{qxU%0J8xzD*(W8^rxyI2q5GlA|g`Iz_^93Rwia!AfO#FE*cmw*IGCHen7M)gD+6jO1p8m<%D@C6RC{1s4XjKJ{(CZpi;1O~osof=ow1pz zsg=FOpMw6n0Mf+L%GMO&&$URl4jyJMt_J@u;@>ww`BS-n-_zg^gLfKut~MBm1~>=^ zI0(d_TKsRHzaE=lf*?;UU^m`N?DN0#KtaGkA%Uksfj|Sj&Hp6Ag24TSwZHE2SIVDD zK|z#2K7bt7%1+FAjt=<4NY_ScneQgA@Jy|at%Hfp??3NM8{)4jLjWD({#93C7}vil0s?{z z{2+pSK!W@U?g{!=RZ#vq2^ILw0`dU`()L#d3JBU?$#iU~3Nr>^4FU=kDj^?g?Y+d% z{}*fT0Tx9Pw2x1(5e#5f%n=n6pa{A!XAY>Ro*BcLv$8X0F=Nh{ z(|KmSGy8w5XL@gU!0&s$=l2(9*r~Uwx_Y{%r>ClB*|Pahzx&E-pI2X&wfPV&72c=I46)SQZDT2TxFJirjzJZ7bbaO%Z*_dj20=A^pl8rq`Xo- zctL*1F{yy$lNo$-xJ*Hi3&Cz@nSx*{j2AD8f-5K7he5n_X0T1?BE>-V#`o|3Cz2Nm z?r|(P=xL?m2Qzic<+ocobI(^hJn^V@uhN%D?>CQ>yg=`AzCw7E%O*{(l4kC%vX>QY zK>Hi4P`oyI{QYX@p5Fvt2`Q2Dc}pcBV@p*xAz{m9W!Z?Gbvkr9t_^;Eu9p&ZOUVp7 zrg6R^u+9fk&Nh{l?r_XUDg|U)%K>-3Egr9Ref`^pXXCCZlN~yIq%oYYG_;jLd(Jva zNw+yxMk))WwO8@aRWA)xT4$U+EfG3a8un&}+;GlU4p#W0J!c(drCS{Hg)f(qhR!+= z>OLS&De-mxyS;ahC_@eR$PBqboX;QH%A-AJ9e&bHj+K`x0BO>G=-7eLdlkjLz1&&o zcy65E%#a(v`2wJ=BHDA-Q9-)Kv5Hb4kPD01w1p*?3E z)uoFZtA%flts?EuRO6qTO-^WjO&*=!mKg0cF15J*OsXS=NOjSkvyR%*1+Js6R1e69 z`!AMRrd`&S#j3UgkB>X9iOi4-;C!L5qCVPl)=^JN;8=aB0g#9mZJ&Q~zpP!2>ge8c zMZDI*;p_D=rqq{)(AEg;IqPU3o#$91sWFh@>HeyHr|typ=jL4tukGHd^pd}}OWTaD zxklVKnbZVUgrPlW9gU@PTt}D`4rJ6gk2STnj8SS%pZD^8|7}h>!thoe+0hi*nxQ>s z9pTbhjy02-18HB+x-)jk7R4kLI+{yoxQ+;^1(2%e zew%kb<)2Ek4YvjsuC>NVM+Be87-q(1@Yv=qI$B7lxsH~&9-2$zPacZeT6=?bz1s7b z@=cs|w8TV7eQ6CV+MqpWJ6cJnIMzmL3uIBVXNe61w`yLG7spRles{8?4JKUD5eX}z z`1PmH^%hLMZKabOYbUh_vSCZV`fK-(QCR%f@RmDIDWe_Z(hfIK($PWcD0PCAvmNcF zc#d_Jx&ZNPm!;zJImeZ>r6*_G{70PD%Aun(zZEd4tJF>Ej`o~&bdgSQ9i5~eKT4P?iWf!U9& z-K!Pf^6+=NT~q$MZmV&>Vp1Pm`F+uzvyR@Gj)?LS!J}0+1`{_`uO-aW%oVoF6&soPF?qaE6F)-g$n<5)MmMms@T&h7*UMIYCgcB;efAI{fHH@+@o z(o}dyXSC<6V~Vt&>llwU$|ULKZ(n||v-yO!xnu7IX-_)aF`mB^&7|Mp9gM%W`=5VI zllE~PH90caI3F*&=;!0V`)y6!S*S15;T<7-O(b+=0*y&Cq?ytzoGGg`8%J{_9}ns0 z3|Oqo%mpnIIEZf^_^W|qK8_YhKA9j!i+LP5chK)gieGR;`wH7?PgQ5&~?S18)s#t!HnoKUwG9 ztvGQ*z36e_i`M0k^>q10=R*tKv2qpC8?9=)S*bVldZh*5YWKM5$xF)3u)lw=7B+i(EHII^K;mXH6Yop{iCFx8La z)i2+VTRCI%cTgu$alO{EBKdtRKbD~Q6 zp4XI~Hx$1i(o5x^OJR9D{$b#6kGUy_K%;?hm~zH2 zCC)JAM5>3&UVtec`eN@B_(c!0#` zciogDxaS<>{U=lMq4_7=lue)=CsXnaD4sv%y1m+?+E>@4Dg9dhVJykB+;2N6edQv` zw)=}e|NQw{x!9(Eq0Q%BS_?qzDOa%{%1$KLn*^gbm-9xK!U@y54$r#pe0U*cxX~N; zm9M(c2~In7ZTShgGHD%td1CkT2TNK-=)F0KmCYV*w|-(zNYA(_8fd4B! zv_|@r+Ip|x{kS|q3jz|d-cq_P%-M=gV8*Ri_TmI;Bd+8wL#C~FPg4^oT#MZNZ8@Fr zM`v@6hH2V{o*jG79dXuaj5R#zN_>H*n{pP5&I7#vx+$ln=iHQ|pq>ApOnExC_9D2I zG9j!)BXXT32UVk~RU{6dL2;T9>9leP)nC>?5 ze(AlvB)#BGoC57ia=lG!ocQ$_whg5dTGQQDiN-qG=n`bn{rLMj!T{TrJHg^`kR|_4zwF&O5S5; zNyLP6l=olvfn3rnZi+i-bWie0`6{pp5}`_w{tGsKUb0Zznr>I&D_ANTAtucTF)2ov zO3Mea*IdPX^yMz8=rvHED&%f2+NZ!&QN(!SHBS}KPOta5_=Bd3yV4u3;yRSwb3P%b zj1zLvI3fS0oqxrYol-r;^BvZ;*)PR9g4_d2l+E{(a z>HBeF;-foj@U~&rZ$E$jJm2dt$1SOB)UYZvAto9V;?TSAOI`&2-)-PF=2wZ|b#xOR zW3D~N`>mVsP#($@H= zO2CJ#spoZhtQ4p=bWgkQSDntnF$8lZK0W9r{EfNkI`6OUnSV(ixCt*odqpP11x|ha zz;~DOq}7y(vpXEqR^OMi*S+{i*`wbKHREQe88<`C6Ia<>s37mun|On5u)5p> zt0zXT5LA$*dJ`X|e{ivry?PVxaZD?me?a?}n%I6f!?`|Fwrfl7KH4~@?o7vH_QeWw zYZv_dP+6LBLugy+xwgJr^KhyB<2X-<7J-USjwU`!U(hVstB=*cP)tpH1??L(G2ScZ zee&4+6&kiE)oWuMP?vvL3`$-0{Wn(E`f-od43E`jv|snF^S(E6<1R#8AHSCtQD5;i zBuU?~>An0R{lwCl`lI*q8#j-^Fqpz%!Xw|shwguAD_xibqR zd-W#Lu&=xcchJ&N6SwLw2%8u-K$$l0)V2%*#wy~{HhQ5Lz0iza;6%AIAE-$0XkxOI z0sSC*^(NBc1W_+CfR>S(_}ZjL`CHqf$D6YkGe9V^;s zg4REM;!}CYIdd-@)2-19j72t94k~guniwbLL_f%0y@~AXCvPGrXt}6~z=Q?GhYs7I zJ&vCe-J{AH$E|Nobeb0rcE8XpE$%Oj`Ege(Tshm1!$0z2g2~DJp~B12L~fP`{UCew zCUVgS{LcegUTVU7S<$24>s;23q|97o-jNg9r-0@+CKkQ*%Qc55L@CIf&(TDFR)FQ? z_UcVQEpMU#Xa%W>%jv&fJ~3>w*5u%wadp-#apZ`MUMNN{6r&fox(l$1Xrhp#iGfmK z^n>iBCh|)K;lk95!k`tQCVno=hwqQMr2Vv>i6}aJzt&@twR_Bh2cj36@r0xpPe|I% z1EaV8G5fI+8aHQm_`HXT$A)w<(Iaju*T)ThH)_{$m{6Eif(b<(CKO}d=qL3@?`08O zFJyu@XvN8d@I@ClHo9~|oA%W^^l81x$|mDxU_7KHF~Jj}baN`;GvXzwC|UXT}f===w*`U!2i9MK1_xQr5z@O;(^+m z_ebw#DVBu<*uHa_p}*sSL;^3{kYMCk1KbKoS`QaRzVYG98J`~bG#4l zkKV*Cn%$s!vs8+erC$EZ>5V27qY2Gu0_(l9m{>@~Is^mCk%~$?(iXiwVUKn;R|nti zPLWdaNEp1g13e;YRbQpZH_c}lF3oj_&r6c8!^(M*ADa)wVz|pOnnICZg^m8yL~xo^ zU#EJ0kWV%};(s*mzeJ3=iBq+U$ts>6pH9<>ZHUrDOwXksFQeG0c% zZ{iOrBX4516wE@X7t{9S-&bJr9Cq{=#0W_Y+YT+J9y{yBkv%1v8jr*+atsMiEdtWP+ zID;lc&4JN`Vl<%`O<*#w!v>;>dX6SSS$*7U$zHvQy13y|6ZO%D2Gqpe&t6>)M(L5P{!BagZ*A9l^Ib8VjerTw940hp z5$GrNNAG1*EH=o52+&%P3BPg&qnD0FlF>_?$OtwXO|*10(TcTZ;k-Y36D_cEp(a{` z)`psxzU=U!-R;_GkA7tQ{UOQ>GFQ}BFrt^nSUG}to)8_2CfYihh-6Xd2idEi$Tp1D zXiSO%tsOOSHQ>(9XYIErkA@Zc=P^#?NMm^++`%}J4tMz9Ph=FE02A6fObC!Vpr6zq zy_fB>u*qQqXvuO%mJngy?T*qMM_M?yLvv!0pwW z=*nm%%A_8k^`s_#RW4-oLNj`y7`=eg_h2*7L@!4Z{qelqh1;u-RZo_iH}OvD%BUvE zr{SYiqYlNNQ>2@1lzmrDIhKM(X}Y6PVPGy_Wj3On8Q6QZ(z%-XJVc046eN07I503(`{f zn<@^4UWiq`MW#{jlb)sN$MSH6SvWNZnjgp-N@;jm7V6k~bnG0}qb;u~?2o^(EwLWe zT0kG7S%cVM)+j$d8vmfw`5&oEp*N93%FUagswt#=SwA+Eg;8yrBn@QcD*2Z4)A@!l zFU~iNpY-7@hcp6wDZw@rY(YU8rJutXIG{qT8kjVajbf>!(O6Y;?IT%sBmFd-<>J~# za&2SS5H{A(HiEPTWQ1q|C>!ojHjIs9-W~*%*hik!&)X0%cQmWppT%O=LN^vdLW8G&Y9)W+{pm9SUXhSyrwrhAUglX0hK5 zWeZ4|Z$>GGRfn?q4rO!LN@)p{E!CCLp-{G%W#P&w6^a!bo6r6*l>H866$3LONm>)i z7CV&1u;pwyvT!SOWppT%En}IvvgO>em25FvWhncDlvT)x>~RjfJh?JTz9QAi zRcGWm^qpf08m>0h?HR zShmrjYy%>f+hEyt-8JY?DBHp^a%FS5WjokLw$o6ym6YKMn2TBtN!sF2wu$XxyP<54 zu8atUYXMLb-uS3}`rm=%ic1X934uvv1OUIRIT-jl^mmM*bsiX{7fX1lg z#qLnHpB-h#pzOGA8665`hnYK9c9bhS!R##FPcql86E8rv>31uf7%8s&g>^zhu=$6r;Pk0T-gJz>=C=g z9vjN;lQLWZ57+`IyXR1Lhdp6Wq3oGHnsg|XJz^=ivL{^Gb9RsYWhi@0%5Vid!DWqf zjYHW3hIkb&^vnpX;2NYuq3k)caAkUhID^m&L)l+Y=7%f5lb4@7cPOJ~^FUc@T^Su_ zN68@FYhRE^c@Mx#aYUtrq&5R^da$IX#g7}1Ou$K1J{09OlM3?6=%Q4Xl8=+U07pn} zh!is^6)T+yT*RFd+3MU#zP-dzA0ijUhr$p)0wt3XYetPeLp4fa)SXb9MQ}E#8s!LQ zD~fWhj?&-k5RU$)wkG4lc=i&Zm5$Iv(npBwh7aT6EU6GM$%gb7QYr1fGK}I$I{`H7BRS`nof6=LaGChAi!h4^LSlp2RvslDJ=!rB7K5SDGIK zLrUp&ji+n?>x#m%H|!#gE|5w2Ik~G;0B6Mu>oW$!ptJxd=f|oo9oBNRetSdY0Z{dn z6@aorsMza)qqk(j8{pBb7|vWeoKHH3ykF657B`^}E&wv25BAYm5_V^~aRT4zY?*LK zdatS5#WV!Vhe)YhY@#oYHJiH9|0TMPz*-vMX=%Xd&qu(6TD={I2)utaOuBM=iLsKL)Ufb zOyHnF_k?$}gCuc(pniFBa#r|K7-~i{;E0=$m6OK-ZX|s~q{1L~0D6i&K*er5K*ar$ zx_gQZ<(4(Y^iGyN;B5b}4!A*nU}VBI>Q_@v?jZT&!V5(hfk8D)@aN>F(m%{sYRGF@0v->(Jz(N(edOGq z0k=UB;1f;;_da}h&%Us)Q1XiD+#r8}lK1Qy;9k&5O>!k)Ie8yyr^n-c1A2Gp6?N|{ zSMrs8V^Pv~rg3g4xrGmN*$+JJMoC{8ai68>VlE5j-HXIRn!5J``?>5VyM=Pgfl>h+ zNfs#mjZ5E>BGJ}IZtz!XE0U9c!;3|2P%OU_M~t|CawU;a7J@2P9~_k=?i#?CFpGs* zLLf=pKWUgK5we8UK*Y3-^cjg+cnTE=5{U-6H5SrjS!*s0aZ5{-K5oWQ3Jat^7dS`@Ssfg-LL(d7Q;gxDJ{m?O0xW{7S04&%1sKzuNfeggi?$v$UkUwOLFc| zNQFoii?`s07hr^2!zXHig~-LIyLF&sA)e4vSZZOwX^<`CP}lI`J?6eItdo?|atcSh z$&^rXp0#2mP&wvFf0cQ;w5+LaK}uiGUWvJOvZ}!G}}GOg_N7Iz17`G|pKhKHOjd;PHVZakrvg zH|OL?)(A@c5zR!c0-eemY!bID0Bc6FtPy8x4tZb9Ry0F}l5_w}xB=Nn%uuDJD3Jdp za%qq+W8(RQwgNagk}Mm-$tMB#LgUoElyuJC;zJ@P%Fe71ZgzAh#31`&fwhO5@Ps{M zsX_8t9CX=#ThI1dMAw+i-Ea2M=H)sv1%HT9`BkLH9IbmkSC7{DVIjDitA4;9vdpB~ zKECJ2ONryPR=?-1G%3p*ZS~G8ZG1l5{y(esmwrA(?v7@IJM1nDhwe264p&)Q>zv}% zba(2>J5FmsWyTaZF!+Jcog_vk(xSf#RQX|ry^}X_o!vwS(1g;qSL>lg;*~rhS2M1t za6rpb>-3Hb$SeP*nnQv@66mH(yd282crHpZ6epPSyt9*bTo&>jY z)koPO*bUW%p7_qMc6Xk#d~DkBGxBVeh0FZktvOt%coC-OtE9&a~D)&X9Y&ZIq7+6(T`cZo`~aHKy;6 zGmagl!~dyX%l_o5m$Rj81F0?_d*>$Qe^WHm^S>fFYowMPDlR|Li|s@&1pc4urEDWt z9mC>aH&nm4JpM({J5}@F_{d{f&q-Pd<9*#M$2a!ff99$3qx`p@EmJ&HqK)@;f0cXp zM@VD?SG|iZg56Lp5`_Eyxezd`^M*L7>XaI-y0_J6y)11_Wku!S&(3@PtB4l`SLQ@v z9k+L1h|dqvz4g3_Icy&6M-v^w=4W^}q`j7SVfWPgSNka9()m@fy1AC+YNVJF=OH~# zo-&P*oxYE z9jkofoK2*V>B08qk^R=R_?>X>rNh5PE#-<~dZk*!{V8~w-w#pUwOsW$HWPM3_4flm z9`?O?LQBkbzeVAUGgr=81s7C?ywJY@n~1r7?!ABX)=z2RuD0>8H!D?h%`_W9k4 zd+ee{3(IDylGPsfo$6Ro{zZyuE)ms$LiNaW+R}Y~cBnp%a4@OX*a|j*RF4?bEpX@E z^@@MxhShge!|TJwCDby;t>~O;hZU{C%Djd1z0$mlOXydrV?V@*S8&xUrO~h(sw0hB z;w#(QO{H35)10D-n&O4Q%eZyMv11yezR*8^C|r);j6bBVAl2gPthZrls7L7ixIa@Z z{ipSaTMC^J6!yj$g}sgwBC2P9Rp9F(9b|oZ6F(5>q&3qIG`kltIRA@^BExTD7 z3;nLibTU?!yIB`5oyIa3Z%BC{n%t2eKSr!MttAuQG-04U=D*!6w{>kEQd&y~&K3kV zYBUHyT8o00jVj_5q-8j&N((uKlZOMgfuMjjh{zi`ISB8YkHBkCn{c#(o>{5_U(XhT zry?YYdoew;tVf)OMr0uZ^VHTtd|r>VMpYDpEk@~!v2G3G(p3T2BzH>yjw;X+b1}FV z!6tf(d!fM%a#gM*2(1O7LaMTR( z5%K`3F}JLbv>c>Nc%6&bDnPz3Uh`Uuqg6DJ!|@@lWh4637n(?V4Jqxzx!0i0YG`F0 zj%E^h6+SG7_zG}ui*SS%$Iq ztbz2C-fSAonuOFV8y3-|O56HXLaXaZyw_4b%ogd5uvA~xo29daA<`%zQAxSJ3OZYF zmY=ifVX4>1{iZkA(piWtP-pAK3UD@x5iw+EyRi%gTY6&i_0`$Bv4WgUU&HreomfVL zEdysOud{Vxg*clYuj1=IT5za=B zGz?k(mMoLO=E>Rob+(qQC}-23s@k$wz${f^xeYci&Ss24 z6;_tB(JX-P7-2HYW3c7sY{n?atQ=>f3z$KdmE|?q@^Cg|6s*jbv+0wC%mP_HgDo$y z1sJ0c$ox1PUH1&-bmduogDoFtGe)62^XF{(JP^oySpkDBKW8&W!IzciY;Tl`3*J znpE*@jh8x$7;J@!EwG$^Z5QDO#HGn#`{;cVG>qh6>OD{ZiqA~s*cud}eKoJ|il=Rgr)8H24fXEV;V2dl=} zDEN%8z(LVuS%a+%XEXddJqzJ%?wrj7b*|+Mwz8bf@awd!I%m^!CFxO`>}#-|6Z%!`B> z-khvxumuoXd1DmLNcA|I9wfermuLeGwu+q17zMi&%GvbD<{7-<6lAakayDZWo=NpN z+d-qi|IU<7|2$@;<(4BiLY5IGZsF@lrTv+s_-liY#LlgDsfYDjK7ZL2Am`^muU!R1k@`C{VpcoE(1B3K~?GhaXWWkzh8DGa((4ZSuCH(uO>PRW8)&9kI zoK>sVA}b_3z^VU3P@Nk~XX$_b(bK6J(X^i*ang6*xpO7-HFWD+t&coYfl0LGLrSzs zpQ!d7tM!QL+OurUeo=k8;BT*&?F3SE|1#~m_WGZ`fllWtP{0Ga$x2~qc6`QZlQN~2 z`1&gsKGVMdY()14or-eP7frL*`)Ift+_x<~)Q%25J;58lG(n#kJ1wqlhH%w?dm9&A z(DyV+S*(5EmTMjr?KIt4p6JnKTCFL3#@!bAs;L>-nl)J0y<+h1UE zohv2OdJ}wIa6#YSLXu10E~#dp=jVb8x+VKlTl5Wob<+3BF1Vmy+>%>fvx zT+nmo@RCE*XH~zeUM{$xFRA1qpWc#BU6okW1sC*e-F@X;!(Z7~)%;A63y1#*dZ{aA z|4(?t%;YncUv;jQXk6&}Qje^b2}e@2c|E_1o<8cJ6bL7xWaVs>mDVJ@)D` znhP%Id48)TpFNsj|6cK?3ohtqYSovI+am2%J9Klw1wFBRs66I=PrGzsunR8ep=oN% zevz~7r$5BF;DUZJ`UO3(O}N~1eM4(h?iNLy^$U9Y0pW7$Vs6&oJA1g`g1&HXxV$Llw*yB%%vt3u zFX&&pHk1n&k!?e?8bzIPL0{RRk^J&ZN!$GxKNnokn=Nc2FUb4e8lUfnOZ$R;=S6k7 z)Z`Vm@7LD3$P4;lwWh50iLouIv&;n-^jX*I$|v@Zwhfyx(FGTDn@@n;e8*ke%uCN* za6#|Lf@I5#E4Fl%?z-TD{$-OaM^!y!yTMMm;DTOzZb7->Kk4K$^)eT8K0kt9a%fSx zb*41(eV+_2xS$vBS4#Ge{bn1GE~N`D=()D0m5;V4BG*3c}TtL=gd z`uP^6ZCjf(lAE7x;erc#jRo~=sUsW6i{qQS;DWw4bzhrDu26Y*R8tpR(Em-F-WswX zT&`24tqU&bO%F}6u6qB^Jd&BD4Jv%gzCmeS@ zKZ3q0XK8z$W{u>(6I{=)pfBsQ&)#E6upAlYIzEDKiHfz?9v32?>*_kbfLa^4t-PFbpR0cg`t`u;_CLA?%5x99`nRBG zo1abXvOA}odb#WMA?Qn&W>5p3=9kwObiKX=Ja31M|59QQP786s;mCEIoeiytLywK=)?EcR2$5Su{{~# zIzJ2g(8tx)=-3suEuUQHcR_zMzlqv%)qCsj8(i-Xf?lOwBQ?8+kL~0^*ZYg02X$(w zrtBo!!c*3CnV$vy&E9ae(6Ffou4uDd?r(y=D>__#>F;i>JK59a{v_ySTZgLwdm33I zE3|aM1^rFw#_IMjx$QpguJ>m_FOfY=t-b$j-1Nk&tDWx;f~LKl3i_C6Uo~UoD|_RTuIo!dFILk-9kM!~dhVj@`c%+Q7xGf`OIcNE zi|hJU&^sQ;t*+^vS)J_Zx;_^4UVcyQjT8LUukS0bbsj%KuiQma(_Sp87MSnnf(!cj zM5d-WT|%8R)OCF?=v%g}x8Eusq7KRK`g|bhkGCJU2M5~JFXvpJF9f}9-jntktE_6d z(yq9mzirjPKBHX&b@wsX=Nmyk+jEkA)80Djfm^Q6M}q#O$P|02!FAL&D_wCxUsB7> zzU*^jHT`hc=Qlx5$e7N);zeWi&>&Y_&?EQ*E4^h!U+HbZmI`|de`clc?6zP_%PDEW zLEqhN!Iq9w(n+Zi4a|Vg8SuR>B$W{y9ww$@kK%wY+jt=1&-W!F1KLI%PD!mkq;HT^cH3TPALG6f~d{4U@Ocig~35z z5^cd&j8lq%gT5Ksf~^FnlmJIbR76;?mEx3A;3$o%DGRo;oI>BMTn;5q7Hoc;;s*|Y zd{eCjTLn(30FD4;p)A+}IVBJrLHO=L3%1IfQW+dpB$+JOWKNO6p&;jD!B&M+s(_=a zR1Kf2;k)ofn`C72m;gmYypl|23U<>6G{X2LY;By01y^$XM z8+9AwQ)AST5=H-h+;DsfM-?kknxdGLzSY)(ErL@bP|Df@)rS^rtvIC>IH>l~f~_s5 z&^O0MqE6F-tsSSd14nz*>{_sOjAUuG^UyMDCycl&Fb1~jD+G3<>oW&T^2#e9Bu@&P=qe>%6)6iym4;BBYdYb-G zU1thxB~t5OTP0#rC4MB@4(2W*|Fw0vHs`>&*xwGj+2*}?U=uMZ!nZ74Ydc(Ql(xUX z#MtZ8rdgeFie;Jc2Q9u<68b3?X4X%*h?$Z8z`$bimBo7d*Qcf9?F*b@ZDyS0MNEt2 zyQdy3&x{kJhzWY+%v8|m}eP6fO^{dWtd4W?b&y172i20HH@?CG_ZEvHv{E#R|I$Y@b#2xxBzB)@jB`Uc^L6e$wDDCEMAI+WJvh>H6dH0;gE287FxWvn2W2o!cr8 zQ+!doHD$5#k#<~O;1ugL<0LO)q9i{(q_Yw+O=G?4aPqTZi*QK#sUf>iX}Q&}Lm6&fjX! z-D|kKz$q4N#z|hpj7dJ|^eClkL=hYOzi6!ApIlzx6l*r)BrjspB>!^4C?)s9A-0dN zIu^zJ&E*A7v1~I=@*-wT@{yfJD6i&ZlF@##Y2JIdyuc~eY{p4m#H2~S=ar$#=gswG z%zwr1bhC4Lfm1BojFY^Gd6RsBm?28GUF~JqU#!+Wjmrz1V&!I>|e8i4}tef^b!mje{cKi-30e&g~2 zr&zxkCwY+*Ao-;yODHK9DoPID+TK@+GKJO;0;gPp87Fy>b0GQQ+X^c~E`=zazlM5y zU9xa_fm5!+jFY^`36Q*$JBu=UTqC7vi&ox4%BJD+0_V8|6Hf9X7eVr$Z>CjBM>JQk ze)4{K$c@VjoN^UroXZ=z4w8R5g()%TS}C}Gy|Mn$<(+aNW}M_j&Vl5ufr;|i6`hp% z<9d4sJoDi40;gPs87Fy>(;)e`hvMZIqq-|tzj~)?lbOp4oN^&%oa9B$gyge5*dvd7 z(Mze2bBOo+kgQx@;FN1I<0LO~8YI8I@ho}RvH=R#|K1;#=j8GNr(B2`CwY-GA^B4k z2FTT>59acDzIbtYfm5!q026y)*(r(BB}CwY;RA^F?6*Vs0d9Hrp-%)9)8!dzb9l*=*WBrkG4B)@ux zw=MliUEXtdQ7$iV$`zS$k{3A{k`L-r%zoF9@140MmlrtYa?Ci%i<}S1PaV42UcZ#y zeqFy(TwdUmD>CCGFLFvG9}@T3{xZ9M{;+=L@&cz^lo=;^k@F$>;dL9Rxp(N}SL(DM zmlrtYip)64i<}b42R@BfbI;NJr~SF|TwdUmi!$RRFLG8Sf6Zr>T4uHGztg-ca(RJM zuFH&*yvQk$eB-!1>hX8__4C)b%3NOHl#4RsBrkGSB)@k_yn17je*F&ZX5;b#r(BmA zCwY+*Bl-9&iE8Z)`uu_C4=yio%B7ick{3BEl8+wDv`g3Z`772M!sP`{xh^wK@**cj z^7l@r)xNja=g&E*YjAmiQ!dSnlf1~ek$hkGEL#4V`uv@GQ7tYnaLU!0agrA~F_M3^ zqOjKGo__!6_^}?B7dYk8%s9!5oEymx-d{rNwMM^xZCF{K%L|-xb!MF8MNW_8*A(*C zYCq8LpLqV_@&cz^pcyB5k#i&YGX1J(i~iK_--R}Zb9sSNuFi~;yvXU1yjH!27W776 zKOB*pae0ALF3^mVyvP}ny!YVxT5yEEei`H5g3Ak>a*bx3 zo!W4Dfm1HfjFY^`8IpYT=GI!cn}qo@wfF6tZMnR_Dc5MmNnYe6NuD+8pyi*huOIRJ z%H;)4xlA)o@*-zQ@*95i(B{YJ>({0EJ9Bw~Q?AjBlf1}Dl6+J|Z!Nd zoZD~Ya!G#9yHQ%ewKe?tbb z_+x#vckedw_|1^AlX&|Ar(CreCwY+*Ci(04yJ+{8>G7j=t*3B#fm1HojFY^`Ig@-) zXlLzoS3Q1p_>e9yaLQGiagrA~ZIUn1x2-n!-e(>^L;Q!gFL26*n{kpCIcJhj7#F71 ziPPhEY4%U&@&cz^wHYUQk<%vm8oL^6yV~pV!wViWxV*qA7jDK$UgXS4zFVnUTE6*u z{4(I#OfD~Q%C(zuk{3B`lK(lXl9siN9zX4reGZowIOW34ILV8gImyfG0<{_S_4w_B z*1EjFDc5esNnYgSN&d!sAFbv$8;>6&e#YAuIOX!qILV8gImt&&%B`Jms>iR7_FKT^ z1x~qkGfwg%Cr|P>FXqw`R_O8b_ZxM2fm1HujFY^``IG#+-tOApP4)Qwhvf@-`vRw0 z0W(hWA}3Gs;Wyr>rJw2fgTm(*b9sSNF5irkyvX^Je8v>7)Ozdm{6(rSy1c-tR=|vt zyr?N4`RKsY>g-S5c>V0 zRL>70{>s}IIMv#lagrA``6S=&dcl1X>hyyTOo&w;#d3LpQ!T$4C;4CHCwph!z~u#Q z&QB6f^4l$x@x~4tUO*xYz7oN6}QkOz0?bsOpNDFbRU zsBR-8HV>W`r-c2*amv)MU`#FK&vh8PC&G%|GnvK@T*SFzy87g2qX$0qL`??OZS=y{o9FeZW}`Q9`h9raMn8P&k9rNt?MGu9 zfPFOf1F;Rlp1u`oFt#Ds55|5dwqe*0#eO)p5!ln)Ky#c#k<^d@x{>d@G~E;anHxg}Up}849Tkr>zje6_->$S9KYQ@UCimbA+xFsTAHK3}AHEiBKYkA2FFzi@dvEY?rXVi2Y@3SFpc~{Z(w&u)m7^b!<1VzmEM)Y`3t#iT!PC zcd);WeImBI*e7Ct58Hk0?_vJ{+e7RhVE+i)W9%Pc{{-7p?CE<~X@;elm1b0$NofY9 znUiKrnki|9q?wUsM4Aa{2BevfW;~kdXojPijb=2O$!G?nnTuvDnyF}pqM3D&1r7M%JNV*c~3ZyHKt~k2V=nA7Ni>@fTlIRMeD~GNax>D#0p(}%~ z2)YvJ3Lwv?Ka@e9P99F4O&(32Odd>MfIuEgo=P4{o=F}_o=6@@o<|->o<<%()>vCCC#5SpVItF z^DWK4RA)u=GtJjji$(J}&F@sNMe{%152&V#?iY0bpt>)*ztH`LYQyM$ME57EAEWyh z-OuR$M)y0q|4|(p-5=?GNwsQpKc)LC)w9w4m+r?@^G5e;x_?t$9NpjPeowV?v>u@K z0oB*h`hnIHRD(zB4O)LtogS@EXuU$Ue6*gS8bA7{uYR2C#BQTz>zMsurv$qh z@8`S2{#&mEyNKDD@elIh1NK9AZ6YRT#tS~Je_+LuD>e~xHsf(`Rr}$E!Lo=coAKf$ zm)j#c2Fketj@e(n{BASjWM82t-)$nMY{qXDm}j?6Dldzeu^D&2G}eCRU%dC>rr8!G zCe>g0_H>o>i=3-j{`}Rg>eC!)WRX)fn&1 z@s@vis-40c$s*@u#=GTqQ`5C;Ad8%m8SnYyr@c?^P+2_ln(Y1Q!wKp&9B6f|B9S}8Q+?JcO3b@$O)M7@B4X%U=vdC$h@#taW)ePfn$|7fH#+!Xiv=c6Ja%S9}U9gjWQS)KOzck*d()r2r zuWHLNFzNhD^AF9xqUOXbf3EC4mF8cO6ENeOFAcFiI5pZPV*X});?Nb=tkq?ki0Pa0 zs_WNTEw4)2M9$ufx9&GsCI1vTc{5(3X>ab|BIj<#11ELn*N4cdoAG*$o2qdo!(@>& zH{;W~gsM#+hsh!*ZpNRz2~n5ey+x7pHsc#d`*U36w9R;0Hy^HF*RIm_D{89D_}9hzRl5I+nq@O?iJYa< z{3~jb&3OOEF)H2PM9r}oFBG~=rTe3(DK_JM)Bd5-{Z-_g%=r0t`>k~TMNY|#H}F1b zrSTIvBQu`q!Aa|vKi#aNCen;o?GvwdE4VpM)I6H;6QAPM)>Eb(5H*cv{KeIHmGq04 zn;Ab9XjSQZHAGC!j5k~ps(RvkEkw<~8DBiMjr#dZV^!4joAKfw+NkVhV^!45oAG5) zqgA^9h?;ma{$~7SmF|zC=G}}(9h<4r{Z+gtX~r-9JZ+`(BXVYDeAJ*LRyw~TCuYWP zK2WVqzMqW~HMeH`NtI)&Pu@tosHrvM3;j;0f91|&7d5kH{NG~nD(M&RG??+rY5MT{ zt9WO@jBkEAN~Qa=<2_E(`u*OLEmmq@lxDKO(#;?}72d?el( zFyo0OH>&h}CEf`z5`tcsd@GhXNNZZ&JKS9VcTZ^p-UIG}p$POyubc{9Fy zxvG-=BByA^<7-^rPx2yXXvUw-EEPxXi=3btFYvN@+_ppS?BbmTGyd|=ZR-1)sZ{Y! zf*Fr;+pUtk$QhdPllFCSBrkG;W_)jYi=ED2N5rc1=VJZ+P5P@clmnpnKV<C>6y5^3pJofH9`du0y#;%EORohmiuw~zOXzKkxK0^ttvRJNv@}Pw$N9}oJ^o(?v7q*xr#-Y3M0Cjc z&CN218g}AnCs-DV_@VP#oL$kUZb0enK5DnSkqan;xKnRV>5b@PS45(m-{R~CuKqwN zBS2Eoh(z{7^wENCAodpQ>EA29*Wc?TUnWl`FBU$mzsIS2ul^pVo~0tM6&_3eDtuLc zk5l(j@=@|o{T)u-H}!WoDL$opqy8SJ?uYt&oVo|aoKOMj13_bB~6PTiOE_c(Pg(%<9M{YQU~Q}-PGJx<+c$YX@Jkgo_oq1=%0 z5b_V<8{`?nE668=Kj`mq>YhM;Abdc7kCWns`l##ga_Zwvqb)|7##xN9{w}9Jx-_<8 zTxnEkMCtu;x>EJM{$4r7?C2lG>_!>!JDSF>;PW&5rq5^b`7h)1P<;N|_>5n;>hu_2 zS;Y7#E+}GjW!|oqI~aM{Dz_%Y77RXSAN#hREO44b&3IUzW^vBXn9g{_Pu1p(oAnb; z`eB9E9ETgACB;}|#I7l9jo;gBbs z&XsN(jne--t_z&{dfut8)Ne7aB1t!wnPg3(vuqsDpHsK00DKc{i!QjbI8PsPl@~iP1vZ>v6=1hVgT%An~+n>`BlQ+xL^-g~Jsbguo zPgJ8M^7leY+wZq)r1oD`&mP&cK@xn!*n0L(y&I@omljl;{7jbwFTSv#x;s^R_2T%V zs)tvaB>1pVMb$+G(x_EOlu`%p`DQoU7c#h%n(Np%tjQPIUd^qUL_XidMYhMYYO3w8 z^s%M(2~C10eC%UeQ#@34zDAwTAI(S9|9esOY~A}N+dmuiFTQYTTTF*!&yS7HPmcu& z)}BFON!lNKBf;7+Fif3SZHjf@`=t2eiBqiULBEkAopsmh@FenoO-*NQ4SL|a>hhg! zE0Ua_ZXc`5fh$+omu{Eke|sECg7@An%a2fAZW`iDyX z5q`R+I&x@ClJRXCUsJ6$HO9X6ab4B($mk?^k%x8F(w9ct_bkgM+YTl>zsNMd99Ww{ z9`iQY`AMev>Dk7#aH$MqdY*S9TuUwcTgWal3{%|DOkFS6g6p6vW(r}^u~)L47tDaqPzC;M0T zZz$L3Cnp)7i31wSVU1+_qI-4aIuDZ_Kbgj_`LUXErp3vQzf9vled{!9j@;q0d3?(C zoMw#&y?-M&n}3=nN${NI+-x(_Hj$6!NM{T9+&Br|;~#h1{4b5=&Vw4NQRR}gUnTqV zv~HySeXV4Y{`F|tNKNs%r2XGDO;lUy_i<+Xj;wB?7U}aoZo=}9wijv2CK>-0n?Kq- zQz{V=&uu*)*_+Qu zR==I}*X`E8_Plq4BKbCZU7}aT#t#f=G`D1s)Wp_7B(*Hi7 zpRzTID>yD(y;a6734Us9xO#1uTU?9d;p*Duzg0G$ze%7+%$ZiXOx#C%z>hLX&JWI? zozCBry=jpG~bpqQ3miJ1bK#`3>K^VlvF z4wEOJIBPY_pDh$7$GD%f*4!N?w|~AV3Eq8In7q8yX6ugQ;d1)%QKN{~d^EBzt-JBHZ|vs^;@U>o>Z;{b(ntrJp8ye^lxIIAdp+dZ+j1qY`@Bj;%OuuU#+M`=6cee=$qf+kI;#d;hf4 z{c~@IDfZ=4lU`rA|Jv#Po3&|uHK1Oy{;QJzW~&;iUVM|ReJa_fWUZ~v=$dT*RO;XL zeYw?k6EY{c{#RQ_4$T>z1s3ne@LJR%S=*VA z1Xq?+l1Cj$ux-v+MSkzICkgJ6t%_Ws@*dlerjzVhPbWS9nBVL)zwIsFz|NwRogeKq zKW4e&ZvXf-+53x~?k_inRaI;3O4k2W^1r^Bs;GnNBx|2a_T^t#NtG`q+dq~1ccq$# znqq&l=U1iktKDE~(7j~GN2T%UaV)o-Wk|B)FVpzv^!1is)=rgV{4V);%aa?XlC%F+ zR_<}+U6S)#=W$uN@r8Fbdqy|=bGKyg&vv>$Uo0^#Zg8Gt@9%MRf7eQ<3H<9qQe3*y zy%^EQ4D?l_rzPtjD*4CAdu7$2yUE(8l6^DrotlN4CEGuh`e%;G}1Ak&||M$Y2l|0mfjH zGbTq9jZHK;=PZ#;jvFgcl=4JJneCiB(pq3v30pYOcqyzkEkpIMFPZq4rY^z>9! z-@2{x^2kmj%Lz8VXMP^+d$3P4(<`#?zO+F#(a}u=?>uUXec5t8l*C#cz;p) zCCHA3sQhRMeP&5|zoVV#s3(R~4xZ=XBPh!X1;uE}jN`W;6JLTd@F6M-kKbZaCbzUt zIl_=b#e0yAHz*U&brg|3t3qc+J{8{t*?92rgJ`R+j#O8y+8EkLP9E>6NwWyZ#@ABW z_*!&UPX$GXhaaT!@OXbC`i$C?Wv`?1@!(G)E8l?fu3SM8T>S3{%S74q5ZYSMYY4p} z``Vh$g3K$<)`s%9O(_3bhqiX~T8CcSQ{J`%oz2lsbkq~SqilK|m3PN`x=<##C1u}3 zR0bYr?n>tZCm-kRMxW81_`Y>$>p`z|=rx44p7a_*uf-^@+l$T*hCW)dH@ySdTfDOm zeQ(d4Jo>Vemv?5D9A30jPoi`4IxnyLtj^7&mm)Who{D~onIrU3Cm-+hPV`OPFVQP? zk92bJPG3Y%bn@{|??d0iERfE}>mG-EJbD}Y8uIbzXHGue>0#(!x^Fr2J5I0Cd3p3F zCok{xB%PN>AJTbwWab@x#lmzIoLUa_8An^u=`Bu9-svZfwxZKR9BoCXZ=h$OU+6yJ z#)fWDyn0eS&)@#q1l!O+*<$;pHN>s)PIYe!qrxxTo%PEH>4LFgB_`nbkUPJZ#1 zydHA$$U*-}f04UIzE4NLTHKAv=9DhgrEN$BG`wFN*`KD!Z3%bnv6U8!{JtD@wodkQ5qR{Zc0lN z=T8(W#O4iq-8g@`1+B~lH6O_5!)095(3U37A5XcW5c#_s=byB;nVCD##}2E1GOpfz z(siTrA6`^UZhUoDoxe$%M)s4-L3X~%_u?vwI|Ao#akQA6)cvkHf8$Dx?6bcF*=0`O zjeDKpj==eQ2bYmE7dYq7w!N9XPb6)K8Z(%3S`cf|4c{Hwg`m4gHd|E5EhaoFhJD|Sbm{Tq7b!{HY zy~z&7#SOl!z8}wFk(Pl;S_gKfOiAMx#56K-{u&iais`eitMhLy)x`YmlAj%Z_hMY_ zA>UH@L0ZdqT5-|+<85{Ram5>(C({Mm{xhz}`EP2b+Lz~ONUO>wEi0Mr?BY1_-6{3` zc@BxRsBF@zlDQ_@abq)GQaH~+k=B$=T2wM@+v&J<)IRurJcmVEQZ{K#*%2{U;x3%J zrSMJr^U01M5=mVD#uaPWCl_Y18{JJ5U*p7M_4|1amb9d7(wedh1iXz48~ae%5C1t# z{v6`3?2FW|V(+=0(|+?YY5c@o&y_vT@sgI5O-?P$7Wq;;Uu&mZ0i?YvpCdyuurmQ{oPUiTg z&p#=9o&zT>DVwyW>@4L%;&*-gpzLRCN+Bmw4jsS$tHb&1&NEE=QOoS{uL~wp*N5lW zNlVHmttmTeP-uKup+xHXuX*k#Pp=GD_OF}eu;a&8wb#5MDY@N=l|7GFZ(L{w~e2<9WuJD}w`*UFir*3#pzL`JPFhnoX-(Oo?F+;gEbXuC z`*pkRZaSg3vY&T3z&_Bpv7KW^vG^s21C>3`L6DY|OI@EZ|z-cO2?P2mt5KN90zGh*`zh4?9Wb3rtAlt+2o$Qx4g1%G~|Lj@u8i) zp?0}=IXkto=Q$M8l9Hq~W#^h`#t(R&O4&CV7w>*OrjoKxz4wq@JEW7nIHF>F-FCss zp69?wOG=W~l%1JI$TCMKxs~y>f$Wey^*Y+pZE{;g596p6A#|OG=W~ zl(NrRE1j~h*{FlN`R1C+e(tYh<>{~b*y%phh(C}&MA`Ek9%)HQ(wee!=lLrB(8^58 zJ}5rM-I?YB(0?YD>MbM2^|Q|&tQr3)aTaCI=SWCPN|M%;o##o-_>4)iD0`os;qF~q z>ni)C3#!Uh8Gf*DZ?7F+y;nA6&*xxBOG=W~l(PTcKbx|j9&*5%)1ra0KU(myJFx0t zyF}%B@yD&4%AV&aNlVI2T2pq|wtDgDTjx~vi;s=A#=dmyD~2v}$43sadta*;zj|SA zWzTbZIO4?0DIG#TJhJf6;<|pj)=6R z1ZhpF>-X!qqRPHks~F>L52ycBzS~P=p4`uVc{3(H;8JmA&*z{>OG=Q|l(P3H9N+)X zY~75$rJer!**!s2+0@&9Ik0+sE7Fp}^Oetmk(QJottr)i8x||2?3a(2XSglJ`dwsX93Vxn{Z`p-Kg4vp+&pFUnb zesdqg`TZ;hPg+ufw5HVkznXA-|D%bwQ7+aQKQ`34A{u09XD3P{;yZ0Kl|9e#la`bq zttn-{+1+xLjDPA=N!jx`1k#c+Noz`tU)8^=r0h>q z4!AAlfN}l84hNX0TQ#=7J5nURRoW`bp67^3OUfjzDLZ@7BJuSI$MOF3xy;_Bs@TWY z(;Q3uGw1nrYDYdZ$1>A)<;fPGW?e01&*xxB zOUfjzDfRq%^J^_-|4Ytv;zNhr5NDPq2zTiQ-mD`Wf*m+B~cKF32^QYL9l*_r#K zix=P3RrWu8&MrQlPoeC8oM4(I&*Zb)2PBLCoGVt@^Ep1!k}^qaN^JPGD#p*4q3j2I-PIhic(ZJ>a&p|qpW7>YK1V}ZP9|wR$&l3(;vN%@?{}_M4KeD; zaAjX?cu%wFt9i0Zr@?X8@^n)6d=7}ToJ`Vsk_7_#lmFI9*$+rkN9?#$S=oyAs=-sZ$ekD!RtVx$&+4nj%z&!LJhWyuDaVv9m zSN1#yPFhYTX+6>J4~d&jIKF?Y+Vw@X6~4-T`=^2Cp{`kFe(`eIpPPFsd!Az_Ehm$- zo@Cw|cb4_6)JxgtGh@Y`#se(ezcF=&nC`37+z~NNmv#EoSK0F%K503br1j*c&tDd@ zsGqXmHXv4PEE1&byBr>3{xmI&?5`|sZ1-38e2##$oJ`VsBKuiOO~Ud0=bwxfpZZv3 z@%cSI4KWuiy%|mZL7t~o1}b|#2SHj+CTTsn$Ue`mj{}wcY2R3JH-4%M_9+5}nBni& z8(F(94BK9HsIupC9HixBlGc+!{(o4pHA9ts^Ned#$8`f3!aV7hiQHuwNwp(Jujfp=gdp-w5T23ZuJ&C+G+Js*U z{8`x_DN|G2T--(3x4+xl9R2Nh5qYtD_}2q}R`z@jfV7-U(s~lqf5WR2j`nZRr@H9( z^Jry%zHJY)L)=oateb~iD_qE?|50{Xt6DP z-Qm&7p69?x%gH3ICuP5oaD4w7cU)r4cZZby+Pp2zt$#kHbqaqAPyBI=vgbK=(sD9M z>q*e~6n=K%^hW*^*Y$!yA~S^<+l&dKwq*)FooT$X|2QyGEKin5 zp#K~SjWH(-&208flqh0UTzs2W*`JRuZN9Bl#2m9FZN#_j zCM$bB$3a?7CTTq>`&xvf{R?hMD=yE>tn96eh0WZV%9!uNGDjpIKSkN|ITX@zGD+*n zr1&o)XRWEq-uG%!vEWgdvftV_r};F#ikYoUSVXN2)091*qaiIPleC`9Z1W=`dJUYe z>~DYPBi0>^RQ8=uhnTq+$C#msBO^9%p04aU$Az?g5fjhNQ1+ZdLt0KIX+4?bzeF5bIaAqZtV^|1b;~IGy=^{=m>bQ^ zq3KFToPIY;*>jEzX*mhfdNOk!C>xRG;%sGKX7K@|R6ax5NBcez!1!{&iJlKdR1V;n$(7SuCbXM8k^nl|AR!kd~7mttXSl=ZHNe7AX52 z-;FdTEv>HX$Cg+u(w=niR`nJrdp-wGT26wro|OI9grohB-|Au{X<1X*XKz1V`2E@2 z%rm-1#LRXJl|7&1CoLyIT2Cg$e-Y_hFH-iso8>p2|4>)ikIr9Hq&YFboI0g;#HF!| zl|AQBkd~7mttXS>w}|$Wmni!-r2>ubZq!run>*$ao7W69+dQfhv18#9WzRVpq~#q*&fBplzr@Sqc}okjy?Kd#doBSY4~=AF=b5n0zQRrY-=6?JdQ?tH({uCa1a^8se- zk+mWkY%ONMKeJv2xMS`(pC2BQNBXTFX!h=3C!+LkfePnyP_!0|q_t+$=XW|1XyEgo z47h5A`8l8eWLgs0@WLQ-+0S(&!oR(y@|%2)iq@KO(^@pjp2j~H?D-rOX+{0RJ*CvC z4{*+5AuTF{w5qhd1w3hnEzu)otU!M7r$m=rhwlwBksr;UV)IVq@BXLuqwnvAebL`j zxGpbt^0U`Z; zy>pe*{~M)TEawycSH@})0f$E`dp<`_YuQLz>qgmA`z!m-J7>G|#5(uii1ORztoZNE zoz+4DJgTFXY#S~n);et8ma*RRKw{Sd~XptWoy zt#za9DZi@he`t2WeeV0x>hqJ2NMv6++0-mNx5F&e^d5J%Ld4?$MdMqpB9qa?p(LB>3Whg zqSTJG%AU_r(^@t*t#zZGUz9&m_66UklY71kQT7+UEoxU;RLYEOpCO{^l|0Ixa}a1P z8=Ka;F+*0TibyO9DEq+FndPRW>6HCXvr5~y2p>~7O+_E*N{mz^qq zR{l%IRyFMoCo`Fy7rhN{m!qn(zj7iy>_?mvasFIhtN{CG=!{`yyq?Yg)8&G^Ar!~0ce ztj^Cl1hkfoO>5mK|Bm8EWgoKDkkg5W5C7>#?pF4ve2>JQD|Yy()*Y1nheYM&HpB5R zvs7wlM^C&gK4;tzJ}p;wg>w!At#xD5S~$wT?3KH_IzQ(?&{{S&t#ut%tbvP5JPqZN{tfbB+?N zWnteWnYWdJ$+N{xQefy<``^8 z7W~^-)J%r?CYhsf&XJk*bF64B8=Ka;F)02EBmYI=h4aSB)U!vZ z^B*og#GV+j$cXIKHLT0X1?v2qqepAm*tFJ-iXV6GTBhtv9jGKn)Qxwe|NJnclP&5W zlAnezkDK@Sw6foOpsL*4+sQ8+r}?ovKREMa>1cio&nM3DrL|gYTFXUd$}}SG*|J0G z{1?tum-nlVROfGfsfWG!??tk4hS71;njTj6oWn_L#n`l#4CP16xFwHlWnYeR*4cN( zDEqI+_p=M<=`G1Wi5quhx3cFPPg<+SrnPKTej!y~x3X{Au&!KwB2w8;C;aHD7`fnc zRNVGHZe`CoptM$wO>61U_fHzvu-H~*KR2MhOtmmj*}q>g&^8a`kr#tg#r<4%yRzpT zN?NPOrnP+B6rV1m=aaJkDr>Af9X-}U`;MV?@LU_?+;dXQTsCOMI%Ur}mb6xoO=}6M z{DRw9t?c~<#LB>Ify%xD;Tdb>aZ`R|Su?`X{#Q@M%Jv(kZpZnbe;#6Q_usIC=GT_= z&a_iCR=BQ9^|h%mgS=LWL6S1SnBLg%a!pC{aR%5>jg@bP@x2C0ZNomp>%2rV~Dc=RXJ!- zg7X4(In)-`AqIo4Fsw&>7O2gE&Cr0DFQ_&Ir=cO$2cz0BIdNZ-(-p<**Ti800|rWY zP3XF#1`&*rZ-^ZLz5`VCP>a}VldTo;ES0fkDaQ$nK>3YAc&ghnM4DxppZjY=p~LY)#Cl~AaJIwdqJhtURg zN@!FXgu^TtFMtDWOrhh&HHGLZcGelnFH{eUzr159#@#_6xdxzNB;KOWJu)J- z>y!c>v?hzpiQ}fRP&$$2yMzuq@o8kKxk8LAyqx70z#W|8>#F;9T3`-J4kg8 zDuK|Zv`B>yYJt$Els-_Wghu6V+MrGejY=p~LY)#Cl~AaJIwdqJp->5RN@!F z3YAc&ghnM4D(}(jU3$Gw+XH&NPp=PYdql4f>Gd&fPw4eAz22bhDZSpH*Xur4K_d$;H2lEhf~H>%HKt-L#TbgQ z6JsXEN{o>h8!;wgEW{Xyu@7S&#yX5~7~3$WVJyQKhOrA{7RD-!Q5c&rCSfeX7=*D0 zqYcIyr_LFghR`-_uEr3I9T+n(R$z?4*nlwsV*$nh-21raaj)YZ$Gwev8uv2pVcfg8 zXK}CM9>u+hdlL5|?m^spxaV-M;U2@ig?kG367C^K{}K0x)_{cWCG;Vo6A8UY=te?6 z5;~I5lZ3A1F4ce0Z_!`TPth}>nu`929*F*jeutiheun;q9)Mj4DY7=17rVRV{B|6%mP zXok@Zqa8FyF&biY#Au1p6Qe0cSB$n8eK8tibjE0n(Ho;VMt6+%82#}yz|#Rw3p_pW zG{MsaPa8aa@H9%SRCO`#Il84jYIOKbjTRU^Fq&X=!Dxfg2cr>2CyZ7Yy)c?#bX%%M zj1y`EIjly8-_=NQQjGwY)rfEoccZ%NanIvk$32dF8}~HsW!%HKcX8iBJ2eH}xf6+Z zhkv+@XVShe{lzwp_LF`&K9%-SgO1~4X+Qawq&@9RWxjVdzRoEu_g+IwQn{c2{X78k^mEr*5A z4{leznd`*<>y_oRex7*wc8A4}=WJK?OX|vS=38i zNA`%m?Q#CA<4%cWcLuoX$8I+c6euWPFNpN8_dgvj3aslO-+$g?grq1bbM-9ffsg4P zC5q(jBinY{Yc%LpQhuD`iJ$pBN)+4PM^+hnP#m8$SmylYgU9Dj?eIu6e45eyqQibs z?rtCXa^>G1c=dJn#OkdVt*_Qe@y*&+^1Fb?9(cu6*F?UE60-%=QjLk zup#aYG*-s%R`DChi*EVZu&)OjM<%W}GL+0CqlZO!{JzU?L&e4i-$;Jnar>OvE%o_# z8?O>_nM*Djb=Bkhe>-lk=(h7OSCJ=AjL`n|WmM@B9_Qa#psq+%_7@ow_}S>4xT)-# zw3G*)qf=8+x#UD?ZTArsYBZCwh9|x@^S6SCJ91aw!{WF8GvwPmX+7-U1-}q(s=qe92_q=~|%-HTZrp%lx3zR!3vVWca`D)4$k+0%Z z>7JO%1Ao%xowzgSw!25#qvE(VQU07Xxd;AL$XhYI>3;XSU57-cCbMNZD}x7K!2i7n z_$!TkFl44kK6RlS)w-kyzPs^R(e~_kdGTIB@%PGMvgdiv?>{`pFCt%xdGb?|pC@gea7`SyG^4}9CT zH=<&_BJzEY1ESaUxpH#t%pUmM>hHw99XaJ!tGA13ix$h6AHzNHt(jkl4ig*6tc5Kx zBgXp9J@6_AUW?pw%E^^$D~VghM$1||Y1v!$ z{HnKmmgt&ffjs?goQPO4Pgbb!*}nG={3f= z;~v}+8;u|3H-py*W9|}};V;kU-^671#JINoWZz`#M2;y-WXoR)c>KOqt_Na#sUGt0 zGaE$I=p{0hUw#k#=)y;0cE3(Ct$V9j8n8r8c<4DkH(2ycxDPjzd#}ZcT-Cl(e0smT zsN8XyZ1ddn{uth4qu5b(o@|xl2eGH?4Ef{Np7_r_wux%K|T;`FQlW_H1vv$U=kHiBq6^w z3E5>JyNvV~c|n}VS)m5Cai}-)Rk=W%EtKkzP#u?uwjAo6Iq0ZU8;7hQ-jkbbkQEFk z|1E<4AGtsr&r9z^l=$dM!%PRcW$CTwI9G6isJ|rvF0}U7Dg~B}HJn^PplWrr zHL|g2Z%1>@$-knVk#W^6?9_KTZHt!Gt%^29i=s852Z**rJL*={?TC!3Zb3(9&1pNQ zuB#~h9w&c_7DIcXm0Z+jXsLvHYfkH+ZJgRJCtHdZLC#s%tfi;_L;Ug*jYR({(uNpo z1pS47zlHWkec6wo{V`wm5gYvSWuN{~8#ry8@r&PoX#WxsT6m?5JY5L)y(GWiCcj_m zaV77Kg<`|W6|#!I8h8G|^|;ULa=3lEC9$H&#y?!sFQgEACJ&Y^4wm*fzm5yaJxeBf z-x(+q5BJ2i-!W{^3bAp_N?9+x8n^!Wd_Ar;8W$pd_5F$FPStbqA6)wlJl^8p?{E~Ke&GGmu)sfEGw~Gwpyb6f`4%B zH>4giRs8s4yxcdUxJUbFzi0BkiDJ&IIN4&Y@;m;q*Uz;#Z%2!HGnUFhz14H?A6!3I z8&w=B!j>Pt#dZIDzK(lduXc&XxhBfdSCwD-53c=!XUB?)l}X0QKJz_s{ajyv-B*17xR=Z= zJb$0|yVG=gZWPMfNxtpk**-e1xb64UXnCW9T$R@o*Kx_*x>B4sevsALKk@i|I0chWj%zy)*(;ir8X;$%eB*)ZxOjQca51geVp;x`XZvfv^Q(YmYVEo+}ro^=v==Twita8&U7^Oqpe^C$9a1 z3zHfNzoRqc-F=?8_A63dttn=eoF@I=dg9tInU=SlI1)Wc9{$S{*M3{r-7wK*)+o95 zt>^dGe*4E#xkdKbBjt^Kp16)n4nMeN1T}0SJ2vsWe{|frr2cUud`u(xqrd0s4AHQ^7T*CS!7RM4_xPET8~>~_@*r?`z#6bz;)a{D7?9mwY)R$ z%+DXZaI7)^;vcT7Pxp$eej{bS^KU)+pN?BU-`Foo3>z!^2KjiLU&p<^PY#IfSH{aK zGkra99XD?-eNePMGC`iMnb;Hm5_h(Ic~GRdGDY_IHK_-#fgZSy zduIk85|vlYkh}8+dEh#3%rfPmSXg9^e6t~i2d?AJ7RL^V$6e;hwuMuB;5skxXP*PY zY(HNXubRdK*Lj5;yY`7&)fUMguBG$9bzEA{+)Hu!V%e`)Mh{%a#kqP=Ug+2od8~UT z4_wDx?I+oy$BSjM_`56~xQ^QbesGJ_iR0zn^r0TOj{CZ<+ANYyTp>p;RdLxr{ZGej zWvq=N^WQ7v;S?&a`v=!?MTMwsB1O;&dFgmAkMrxeZhUS_)YuR&k9SjX=Rfv3u7lt2 zc>c(mI(bz;^6mfCy$B$mA2VEzhnbxA;9uehd`zsh=1Uv=et7% z<8Z#`Ci)!?;^Twg2MfeI%V}TFZ6Mxp&Zpi=*Vg&1A#@OJ!+rGa*Zj?#JAy^a3$eEG z@+!Wo$DGY!`-#}{uBxbXqpAHO={be-+_M+l;<;xp=eKwauwrcnbNv9fv36!nyXWXT z>im3e#S3on7~%H@8O>%}w;5NXYTBc2I`(|-#tUxo7$Rh8n3*>$y)otQ3ijFKkJab% zxfw6G#bb;mbBdVN(l@XMHY{yFNcKwE^SKQ#xW#?+W$TKXAID9!x>PJ>XSW=CK6l~; zx3~|VyoE3$r%ZO2jf}KAuK1`vpU=&B!7c9NfA?)wGj7Lo_w%jU>;hGNO_6;y!qIY+bYU;u5lAk>s||o}}vY`P`Ei+~Pj^ zl?IK>pI$YWeUg5pxu_sz&*!$h;1>6>9`LyU$=LE+<@n#yD0@El;RUz254Uu43p0C% zI5{`huk!h_U}ewe7QEmV_wgniXl0(S=ax;9jFvOzW>EHg?!pUhaUZZ*;nwD_jgHCl zwHwPFV?vZYpBwRlTii$7kfpV`;mB!OV@pM8Ov$Y5`P_pS+~PiD`%Nv)ODq1Ad5+z6 z-x?jN?D^b=7u@1L=8DbD&4RuEk|V2kb^lQ#r?TgBQ(kb3`=DK>d}q!%@J2?QP3|5w zG?%jHb6;L?i~FdTWD_%XND{kgl2S&YzTwKA&#idDE$+jn+R)GpF$3*eC-xaZDe@_M zKKJ7Vx44g+v0MYQ^sHodxb?v}(007;yKpbbKi?| z)3e!2wq`TGDNse(^SK=_xW#j@fx{k(MC-EJY1Za3XQ!#A?D^cB7u@1GzS(^*iV>}| z*y~^9HxuQquI%~TpBLQXIl$%=&-F>1$(Gkjn{gqvls%tY^nzPFM_7OPGBKo320L|1 zVY*M(R`z`E)C+F$9AeQy6GfQ;Y3(^JE15B=>nVFacjg7Rc#bh~rv_sAsTB6bcD2kG zNgFDAKDXxuw|EY6?S~TLNi7;b?$$MLPHCj<`P{1)+~PU3gGN$uD4oCk;!;C%#>cOf zJ)hh4f?GVt_A!4`qsO98viquLCJCk}dp>vU1-Ez(?*5ZYu3`J$$cf8Hmm&5$WzXl% zyx!b6#+Z=kOZ%o^-#wbx|HE+SVL(vyHOnbAMiN zi|6>(CHIkeemx^U-D+zV%0PAEG=B2AMK8F;bAYRtmXwh%_sM{Z?aV?KIw*TScj*PU zc#bgti(xYE=e2Ue&UWV6<6V?JpZoQKTReyS_S#r^vHNm4szW=o(fRL{J)e8_f?GVt ze0plU%(8d7oPDW{*?)g`WzXl9z2FwlVZM8IM6TNWgFIQLrJ3F8t?W5B!3%Ej9B0kA zGcx78ZnAQT7UuAoeUv@tW_ZCZK1W0Glce}cQha6Z-_T##bMA*1+~RXc6kpjCze$SU z%#JGtDSOU6^MYG^j_KXvAUj*5K-s2O19QXIgOxq!zIeecp2Mg3%BJ|sP4Sl*aB`@! z=iC}ExW#k)6kpjCf4M3CGQTl_o!3nH#IfhxHZQovbKDeP*%W^n6n~lZ-J{g!bMBlM+~PTKimz;nzXZi!X56+h z%ARuvz2Fwlk$+lU*IxOol;}1nnYrq?W6!yXUT}-&&?&yMDgF`^e~Gsne^H;$xsP7( z|KwVl*%W^XioZn6uj7@yXRajyZcV0y3D314JCcMpKYDd)q5LS@gz6?_o{;f$);L36 z6l>cd50{*_6!eN*TuRzf(W|2hoQiUw4j(_5_D~&#Icro%feV4W9OmRv9fjN+Dx^>y z<**<^C_@L%K5C<~P{vYgux6utsFSZlg;Y+;u;ox0yPPyv@943jLJHMU4jUqj@^(&E z6ctjajzWzTDx^>yg&HYTNTE8)VM7$8{GHZljiPyZJ)d8MGN7mlz^r~T%7Hq0Jyb}c zItrOkR7hcVA9+wzNTE6knNUbJNuBebgbrfo(P$5-c)g+)c zs=lg@aui=dm z+oNUzHBf_ye~;P;)Ibd(KK@Yp4>eH3h@X#I3e-RiC%!&vDo_LUGx7IF_@w@FpEzrz zfq#Ov7m>dP_XM01rr{kWU9s1l$nRHlW4Jw0>fO-YgEuek@bquIyKwSfB zPS8$hH?$+#743|6$92GU!F9rQ!*#@UMQsbNJNf}?UeHg_Z_tm>uh7rX@6Zp?FHu8- zS{n3Y^lQ}Epx@&@zA`xN&r?ql57xX*FlV;sP^fN=uj z2F4MLD;Q@m?qD3kxP);E;}*s-jB6O@Fz#U-#JK3mw+F`_|ERktK8`Q_twX-iC7PRdCmpU?G#I}_g~^602-ybgiu5p!JEA>2Km$Er-+XVf8ZT-PCF zn!P3ZWvC@khu{UbxLyax|8MFL?y+`xK>KJHw9#$aPx56SH6qB>1H->a+R!f9=^*M5 zwzONav*6al0(A&zkHKq$%kVmcuC3#D4xyR@)FE(O^J$)p@)L`54iKnA;JD@+mFRP2 zM}hID1nLktuK6^-E;|uz5vLzKe~xRuNU42+(PjKD2=M$luK6ZCI^QeXy!UwlosP~Fuc&4L zbqpNWe2@02io2c==O1+d9M^o2B^9er3Tr$pHiV~>P;JD@^Jk0aNsG6;^Kpg|eH6J3+sn4qZ)3cxVaG=T zbtD|ue3`H3-8TMsQ%0bUgX5ZyajVW_qghxbfjSP3Yd*)ru{n%Gnf?~w(R2JCK0+OT z<6)PV0z7(-Yaaa@KVRd{=D!5$2t4pFbp*!E21fm^?*w@89M^n=nSIL|<1)V$;K6fT z^BJCPDrStI`bMA*fa97E!N)C*>pBsx!_IMCC-UIiNXtz%A*kc$xULh~v}CW*@l&Wk zoe0M@--M5g9M^olmia#K98WbNs1xD1=IbRc{Il_Uzk9!MKgTs6q{N3iM*hdQXuTrO z`$zLp#~iq9q)T~EfalKbH6L`(FXxP0<^utqJI6KOaejsO#odm}<-!XVtGI7CPBEWO!xaO0^3am~JUFiTcC!m75o6yR5UBIuxaLEy%@ZIp<=81uN5XN<$Fnmf78if}O`wi} zr`0C~>JT`t`I?>EJ~jGPzba5C!g0+Py*u!MQ6%~X)$|qdz%^gE`?)|d zt@lO&9zVC&e815<1H`1>+XQ(09M^oooLBut<{>``)CqB1^L^`-3lz-yC#o&p^?+hg0DG|Nungqn)VCf_$UkWjJBHB{XE0{2eXbYy-MD*&f zqHl+Xg!iW>KQ#aFXzz%w&TYT-PL^Dj^faGVqoWdBbN0Vjl@)zB*>IeakZ8X)(fTi@X&IqeR1k#2FPHX)O0S+u94{({&M zaSJLEoLq)(M~8>xw4lR7a@r0&q@vWWy3LTQaN;8!Um|95TFK!dIqiei(JkX>9XMPh ztYCyzL5pbKl#_!ARq@NCFTOtF8`OZ0puh0-E!x*H&^6lEd?dsMoR3tP-V47!_ZPpv z!bBgJLCi z+ArYxgB;g&49zFKHcp8L0z7(->*q?oBkzs9Deei>DR5jrmpb|+7MC8~5~#D_xPGqf zE$1h0l)WKPXTfnjZvMR4UqsNj3!Xm5^|-t9eKN6>o?GDQb6h{S<}XPhD$#QfJbjMq z=N^v-Ij-v@GIcNHxs8is$j*GS) zP9=)ba|d+-9M{jClv$`gm7ZIu6X3XhZrv}MPL!qRBI*P$vY`&fi@tDK0{t0LOJ)6!T|#k({2};K_4bKes=IXA%dq?-bz4 zb6h`{FSs*_a`fB-PoCrYxmPgrCD%NP+rabZxQ^S7tVv`nrMM3~e~#<8@9nL$h9AW( z;Q4c0$1S@qgosM?Tm}!HHP8Fy*Hw+#6c>T#?SX&cdFP$h z+~`Yj6?onp*Kt)r+0!s6t^v=R<2tTcSRq8DBEJGWe~xRvqTBV1;B-) z*!04O@)D?n;<(OBEJ&7KbX(F_pbm=TI<7CgCRpq{)=8j_gyT9daE;cY+?V}ZfjSb7 z>%79K-%^Sq6c?k8gyT9c{(a~G!$ol)cdy4V+<~so% zJI8h0(_(lQF_Qdd)M0R3`^`T6vxxhr=Lpnca9sOM4Qgi*naOWM9S+B}-&Xo!X5mkM z8R~F2uKlud%R)p2^6OB?!Ex=^`JaDl-0dADPzS+rowt}0^VEoSO1P4=hr7jaoD3)G=-T<2YOtxPI*=BXr5 zhr)54w|HO2SCpr`2kKBbuJa!A>b^6IQr-u3C>+;$pA2I+7#S$;MI8dib=1hXzOSAqKs6*hmj$0EYyJ0M$xD#~<9M^GYw_10MS`@dU4uRu3ZY^5u zqEU+CYSbZcT*uW%mK-&FDXvBx0>^b+{cjxta-W!cLsl6xZpbZb&oT-5mO<(W=G-tp z=S!RR`xBFgm4c4I`-hJUpEDWx@<~(-fb+onOhvxDXEj1FdH$$I&PcCG=rt30r6Kel z_@Out=HD`r_n(BeZ0bFzmd!%`zpsh`@E-Vn|E)!K=H8N!pBka8w6B_ky#7da1fG8$ z%EdeN2RIKr|4^C*NkUs;^&Y)SViNLSi>V{1O9r1l32i0S5qPtxLx%s4D8QFq%hI`{ z3B}wSeivrm;Mpdj%~VHBI!jsQ{bTkGR!$uP{C!_F3y0Y_Z*>UB(L3{@`pV$C;F=&- z!&SgF(Cx2l5zz9O`Gnt(Hg|k}r?nlQ-)U!EkBk;}YLPwb5p;!zZcnEU!D&fd$ALEF zH3(=s-EL?#w3e>baO#l%TZ7=V4O#}RlCTcJ>3PYiucGx!QHx^U;!pD9@eh7Kw3f8r zf1CET-+zPlwco#u_PO65L3Z%_vytDA_jA90cDsY}Ufcl>Za(+hFaLc^&f7QFgPYIu zeO_>j=li^z-{Nt_%1yR>TJy2s+01_ognj#huO^U~+Cg zpAYeZTih?cIj)hr@8>}#=jQYI7B9HP{pJOCuUhZ>4ly}5pU)?F!7c7LHc0!U_2J|Y zlXLU=e1#X>;(q0b7pq*E)(tT^H=oakc)>01cWxN!rlXLU=e2y2~;(qOrfzjgWp0+0E=C@+=EnaYo z`@Q4Cs*4P*Tbi7k&*yWz;1#n0Y$b za{g^Z9&|7u@1`y+NaPiQY%=3(n2w^HpAOi|75$AKoiE zXT2miH=oa!dBH87w=2{BkeF3sx8U4-J|E`=w|HJ}*zV(^R`?9Tx%qrP&I@kwyx-HA zC&kU^QG#>x`Fxlc+~Rq=S0m4eI42G)`fPA+KA*4jf?GWA zm#*P?(Rb=^2IuDU`A{#o#q&aS%3cshL$es1o6qN4z2Fwl8>P;6K@=!n-OaiA>)Cvq z7u@1`rOYSKi<(QOxH&hU&lh^ZEuMGU-Q=8z8IsI{o6qM9z2FwlOPzXsTI_4l%7dHF z=Oew~7SBuePJCLtt=h+fo6qM%z2FwlTT=WaD8BOG=JWYhFSy0?niO9Nir+lA`J9jC z1-E$KvtE`1qV3^h9^8D+ck+T;JTFS|m7w@ba&A87Q+dHHo;RiVN>Kb|b8bH8Yk9#f zo>z_Swn?-oo5JSYe9lMmf?GTKb|b8bH8LwUh1o)@I}N>Kb|b8bH8i+RBvn{H~)XR`Txt!|9`>F2k#vJz(oN^#h3mfSAC22b$%K-Y|hOuMmTcPVU&{wPn~m6 zCuI#5A1~7S5OF-X zU~_l5(vb#VH=g5F`&E`#6D>9Py6_y2-(OYkA34KAm!9K~?hSOWnX=pUxV#WI!uKZl z{j#!<=Q8d!cwgc6dqzjP?ri?q&H2v%#jlNvm3-Y+jvMl-D@Bq9lCKNP@sb$=jTe8^ zlYCuSj<0A_)Oen)uH@^ca{NS@6V@KlKyuy_$0yWGVHIBzD|ui4FJ5oqSoiRn_1w#5 zIr@Gae^8~K@p4h5ad=TNx$)KA1nnp06%%(7-!nGt&nG*6NF>4c=Js=T!-UByyLX=1$$BS^~Uz3OCwpuPgYvx%~5=P0TN@l=|%E z>*jKN{n;onz)vwwLfH}`=hItmzOF3CM&|oh%-t>SAF7m>(?bqeb6PY=(0=Z7`(4voHV})CjkdQ`R$Ewt6Ww%ZJ2{cC64ZjK*sKEu8CZB@DByOGAErOvwG9A8>{ zq+7&Smweq_j<2(8i`mVpyZO4h9N(O?z8F!=-_6(6<#^MK4a8%=<5s5g^+fvWDUJVL z|M=hQ$#$Jmx_#=_7QGwRO@QC2Ra=(nTi1Q0Oigifv9sUEGnO8C`?s zCcHjNmS(iF&5afJD~@*Ue3kI}J|8jKN=euEP{>)=ko*bp2~E#hJt7;3!Eq@>{Ii75 zw}Y!w$W#xri(hi46Ca9XPS8K*M5L3s3S<_yzw;664m#_C^Y5SKYahAiXr!DH^TIeD zRapGDeWr>R?wQ34%Zzn@H^$d3lK}s&!td_=v1Q~BpR^E(+J5}vU;>e&C3Gmf5 zD#=>oR=6hymKR$>oprbQ`S1Camwy-B>i#oZH=}RqgyVBz(aoKSo)ODO%rq|Su9~2I zznebOeO6W#XFJE!@=FPykJSgpyN8aeB>1|+{PP!Qi4{>p#=7{r#vK33zrN_WJJ8_k zHgmkh+3MnXqmc$*7n`amOXre0L~8`^4OI$=Tl@a+j)HT(o*~Cjq{= zTyeQL>7VW)7o&u|##wirpMT}qD7kd!3-{5)+lk&oak}npqwS313EJ1M`EB z0e+yNzico%One*|DV8ToB>sDUUFsVtTL&kS>*i(`*{h~ZfcwwLF1yrBDaU8YEH1uH zn*d*(KC^uKIjt*%ARWMaSS| zg5d_fUs6?lm6X_iPyvAA3Ale?{9&~bzAm&MF)oA13ame@3Ju<0Fugi!z62?*C2XN~ z;!ixw0L8V0ssO63G7#G`n6^-5g({m6;#mgKmXltC6yGvCRRjgAIxCzRjLTfaw+vF8 zOS}gh!K}o$3{ad)oEeF*=+%#2tI(^nK6GQUhwcf^^EG|bhNM8@xgvBe(xvcK z8YuX5D53Z&4V1d1sS!Y1OJ&=V)HSM-qJ^JQKf$L!1La%N+VG{VJ-zzUE3{KO&>q%; z#*vQH&svcVM*wY|)p#L6RB^8io=*HBKotiYwPyKft9P}*B;YAPnSL^y;9w|7axYoGR&T8L9)ir|_ z4Xzfh4XzBX3R((UG0uwFQ1x(Dz}CMTzZ$<--&vX$i+cn8-dT?a{8!YxX$@{ip9lRF zy%2rS;jsR@HV!m$aQ$)hapiG+admMmoppB;t7`*Y8eA2$FLY*f%c5P;rnuKpV;T5` z=ZiZVcPO~fxHoZ6Y2NL>+TN*DpV#{44sX`c=Rw~^PengPABEBm`WpHfdJp;z`VD#j zu0O6lt}CvpzM{CExR&4#n%)LaiwzbS=fURab3$)xo8`C+;@63G#)tqPpyQ}Ru=y> zDH<9V9M`oLgWjK#*DEwpYn5_b*J}MV|Cn4kpov&BDaGHdt7YOPX^>sq#e z`8(yuh=yvdQjY6dxIdHal*ezysUs~^ ze^Z)hXozrJ*TP({F<5TcacMg=L^!T%rNR>pmHYC*v zwR+)^2j%t+U#qoNIj(C7a~~KXds;JgLIZ~5y4Gv)pkL&IZGjdvU^uR8#pbRbCy!Yf zENI|xT-TaC{B@mN>CW$lh5^TQE!Ly2H_H+J72VJ<;JB{kn-g_eR-VvEtyRi#U5l4t z%T$@SX%`DM`W)A_aEXlBvhTyW7Haf4u50P;?4Kj|j*hobgU@kYt5xL;ty4Mqs)ZVS zj_X>l^B?17wV#r>QRB~XT`MMcotNh`eXZ6~<+!dj9CUJpjEG9^Mh!p5buC){)>~!a zQZ?PsaNxMEg)Dr-Er&Jf=7z=r$8{~`>&LsLE8|aYXdG}{*Ln{9_?vuJX`UMz5FFRF zq=TCtlRe)rcS8e$gJ=wKHRkclb*=2W$~R^5wV&M32;sP{rT*0Qw*2*v0JRn-$8{}s{MtJ*N#hi1EliH< zTJHDBAIP&!%d53sIj(E%vK9VQ)^8l6){^D8u7zyV@(($9XC1YcEXQ>%<;Ya`+B%oh(YN^~!NwYgcv1Ls@rwF}2n! z$91jVtaK0M?TcmATCW_}wSK=$x+)u%f9QtB2*-7;yKCrmdA8LnH#9~#u50CEg6_)X z#e>yarX1H=0K0#9Aa9<}t=5X=xUS_Z7V}Vk2q>V|isd-38w_X*b%CM@GTKd z`p_0cuUNqyzIh7TLnMiR(C~nt2TeiL?WIzlUNHHls3S{4@g!6_)6tpI(^=p-l@J3IZ&K}X>E!&a|)Aip~{rYWbj@;|tm3pbB6!`-Iz~VX zqkaF4tDIOSjLx2&Jan|EZcSawhv*!w_;2lAc51Om`dyCJXg<|`&@{xmbPVLQm|kf~ zx0F-6=d=-82(5!!KeUZ*7qkjm#91d5+LeeVu!@q8&pz_w@ellnv9v#e{wAUgzP{#4 zjG+B7Uye)K=e2wd=s0*2(O>-j%d;!U^DAb$PyO{gocOq+c;N%_TT_sP>aH+L6Ij;S>l<(KeRcXqrwKh4fG;rGlj- zG!r?l{YtZTjLbE6kqb589M^G0l^X-3Z|-3()L3&|`<2th_tK~H6c=i&Ij;Tw8%4Xw zh%QrIsIlg_jvIQGY$@a3&3B>3n&UbydH+|m?El9R_q{rv-(PEZ1XSA~w^uH&)*9vZ zIm+TB97-aY3;I3#8fm)=t#eb6opvwT$^P<%g|1 zp`pNW?e{$!G*ON(w>%me2prdbZMOqsS`@fj_bIpXXFu?|MwbdEm4kZ zzrJUppXBTjbzIPB;JA((jPT(yP2xr_Xf$wK#~tQhM`SC%7`4_X$8}tBdj2VybzY2G z>yzU;E-w+M zT9X{tanGO|yJfZ8rQOg_;kfqu`?uaH|K63}4Gk5J>$st8lkGBQQZhF*R5-5Vu9vxQ z$nPtCrPi|Kxb~a<{cp?P`&ChES#n(a-2;F8Q!Y7PQLSakaqYK%tb9j4eR0bTjUtX~ zzk1BjKjhZs7v0b(;<)y^YIM6N%O`*Bh6WPHwcmZD=_%Q;+&DKhdN{7*mg66f$*ZG> zxuK!MaUJ(unsif^9dW`94J3|hzcAA`SLNG>JKfMg;<)x(uh+RO16pl#Lj#H9+V6d` zg7l`UFLy(Oh~wIC9y0QbTyb!!8yZ9$*M9esjECgo&duD=_~E#YTPi)-FU7VxZfN{) zT*rMITHck=W4V?-sOIj-Z1sI`w}k&rZMEm4l^xajv(k7YZG>!9JmaUEBs z8u&!kf0tgZCCYK__YaMED!Dd+9-bxmn0~Y+ zS4Wc5JE7a>r@Vi>M=Qo*A3j+!^7Q@G91@Pe6%?l_W%J~=~=T;N^9L(e-nx_ww*61jfI=f`!>`W=YB zbn82MeNMY;?GCiKqut@OwKF&1wDP}xe`@+Jp>!ram*KRk*6~1lI&%q5OF9~U1<69| zl|vQYX+a$a=#^J>t2y%^PJ8M38LfDt+vtDR@^Jbg`XK!N!{o=~AAEhxA^3jTKScZB z4I>_yP5avK-$VP{@2^ET{Qgqp_v8IMpL@2AFmGheWOBYV_xm}n`O-XY;JD^X^L(%u z{QsCQjd=_F!|z5L=-+*S_BCG`@echg^&Y&p5pDRb1|399#OD?wZiJedN`^wOL9gXu z@$dSHG-%f@&I&ySy;g_Cf2$YV#bXRF=XdeBmBA}go8xDMnylW*;y$hy+{NcU_J2%e zR+<(Hy$ih-ip70sFSv`(ja(ve&AxUv=xyk=SS%i+c)?wKZX{W*n_|z?EGDZrvv>^T z1$Vt?b0;aXT@&@UWP#p@UW>-!F_stH#dH7h!*_@igEB$yM6ZQo@fgkv?&5O;Dcj5z zDeZJ7tM{}1Kla``sHv#^8a*LY0jW}?i-PnjH9+V}k*ZRZBE2IZASDS!L=dncy$Aw= zAiW0?5d`T~dQ}AJNbldtdwuWZo6Fq$$M@Hr`R$o4Ygi^HAEe-hM|kzD7EShv9n%>UY=`59P>| z@OmMk@io{vJPhAkDE>sPcnl#`!t2F^#$SVPUkE=9ck#%O$vbPf;0_a@r!2sR3IwkqQ7cShrDuyc4AzW1}; z^Q6(>WvL?Gerq(o#yf|H;d?`9y@W<$t@ny}`@PZl8s;1xhVPw}mu5AF9VRK_?Kel` zYov2{7{0gSrP$h7B@=?b-yMyw!Or1f_}vX2{+=^J3-@X z@N;+=zW1d?V2rte(QL%4w}Qrx0iDCc@Vyn!ta})%zYiPn>b;=xW31=!FnsTe+xP)y zW<079uigwAU&Ecl!|=Va9ZgHj$eZ{^ym~iie2sVx55xC<7>!sco@ESW=>^`314e!#H%-i#@E2-@GyLDjYQlQ6S~>c zh*$3jjjyrK;bHjR+e0E7Odc3B!mGE0#@F!Y@GyLDc}emi<|u8c5wG488b3yG4iCfk zR^8dHFcH?fjd=B@(D*Tkb9flOcRdhljwyD7V({u+q48rJ=kPFmZ`<{oDaN*e2!mH| z3ymK`IfsYgd%scgcQ8=}7chABzR>tFnsayaC&iV~FSQFnsSm_m2#QVTu`pSMLpt zAEP{nhvDarJijM}8GCgZgI8}3jUQt@hlkF}LOdu9qSjKSq2G55v#RTD4%s4BuzR;MMy>TcEzefcgtp z?*aof5&!4-_%Zx*co=?e5vZ>)p#H+u+rXH25d7!y_#VMIJPbeg$h_jHapDCV2Cv>C z8sEb>hlkKq=1pL+=Et42_N;p)9$2D?}Pb9{Uc>>M73pPLBk zt42_NVesmGqVYYpb9fkj?&56&^TykEFJkcOjiT{A%yW1cer_A6uNp!9g#q;!MqzvM zKd&F(BRz+Q;pfhQ`lq-Vg3^T_|N0L-pF=<@<9Sh?B=HTG+ba1hF-0yM244k-_v=SJT#>Mj= z)5Y|JzFx|DJFT zkH*hC!RP-^dWqt4jc^0^zTn=A|HkTZUc`T6^{+vUi`C;e7&t%wd(0aUPyEBUeGtfh zxD>=g|8N$FyZ+(NAP)G4lRzBy57&Ws;2+Kb@#sIC3gW(h_#=pi|KSV}zx#(PK-}{W ze**E-f4CaNS^qF@&knA45^m6de<-duDsEf^am+tV1md^)_0 z*aO74{Ux|D1y0_7*apP7{O0>r=m;b$QJZ~v)45aaf;;KmR*arJI+<0UwM|HI)R#?{BcjTms^_PgN5I5=^& za&QCp{le{i!Hp4c;(RgOSOq689}YJb!1-SfX$i!*?c=T%Ejqg#F!IIkT96>zTM`_mL}U@u^JMDj2yNAUVB^ZhFJ!&@g$W1XlKJlFCiUMsL; zMvs3L$MtM(>off7l6L#}>4i!Y-{w$mx9ZO8zG3$c!L-}o^cvfPx2VTr1$#`=9kt$l z!BjI}@)3{aNm@v3X8yG5+hs+W%2$22^Rknvu-EL#w4sL(+ z=L+d?;w#>Kf}$eG%iA@^rZHWu7Pq^$US<9gew!0VqQ%fv;9ULK=wUW=YWa>p>?@Kp zi9WXnYs>BT9t5`kty%JAZjmFEO<#`O4{|eMY^35_BF^}7lls1_mi_zd>Gd{9Hg3k& z2BrCOJGVsqoZM|a{Jj4^PnpSh?6?$o%D(ozYKc}eApabu+fNViEmv;P zC7@T=)~@Kf`;Owd1@B3v;`Wj-8*`NLfyx?_&8QR^Que)y%S8Y$Tu{n_Mj}cy5P|EL|So-z?`@!`y*mNZTEpG39 zDWZPTy)64pfkgx%7i%M?KFv;`@?D593wMW3Ov9x@(}a7bcRp6dDE3!Vh8;)KtYyHfjMoYyCCMN1c_ct?&m@b^&N>zV;^_u<6fSmab9lW z`@*Ve5YF5xLp1Ul;z{Np_AvD!@f8N%DN^%Tp6j;^qaMC1i{!ojclk>cA2&tVH7yzy zdK;QL%9AR`rt9;9Eu==NqB=IBsaIe8m6@mTruDu}NROc^(QG!yWuAr!cY~f9@=#A&X40MsueG`Msi=mWu(|CZiR_`pi>+m<#-*& zE2;6)o<&LJR_9G=*)zdSWWd`ai7y7pa2WmHH=J5^&*uCZ&`m8+s*-8{k;#yUGOjGX z7s~G1eRf_ft>?ctFsk*NpV6A}(x=hfUi&Du8jk0hXJpZ9nh$N{tHlZ=i~sW7W{x{} z$UY;hq5QTx8>N~?B>VljA#zHue&=$dA-_^k%|BKCca36b zf?9QW=t9++I|ok%`V!5~3OfrvS9J`9tcT9^X}tVChbVP?dr&o)n}jGADhl&Vhkh`* zQ+Z1Cu*OP4XK%Muvro1A$Kz{1TGd8+g5ERyzWqb{L0y(ims(N6Cx)T)x~)K>B>t|V z0OP0gM=yKbALgI5nNHGsZt8hhb9l@xAj+S$&pp$resA+fg`UI3dCJJLB&o z-GT>9C4%!@%yZn@eiX}gU%YpVgkJv6uZA0PFCFg=t+7;2FqED0TdHhR?fkgw$>G~% zUK{bUJDhEVjKj7zd|-uKzJ#vZr?jA|ooQ%zmzfu1)Kwq?v)256q7koJMze`QT^?d{$c&-f31k593QZ98M^)PvI@9$ek*TC`Gb%z@ZP!Mx@d z8=q#aCO!dV$XLv+TZfvXh?%R$qMgB(V)FcBDe2y)A6*)1ZN0h=xI^pD%KE4U7%B}N zgpFzzpKS!&#cMlmD@+#^3J*jD-JEhr73s;OIeO04Y~EZf$h`;A0d~3> zFD&jYuVawn0q)ZWnw4hg_TpA@|Fnlr-w2u>va9hcD{K9Ny)-EJd)>(UUAcgGRS(jU z&0plOXVT=3%g)_T54H@4V`@tss*nlvv|L9%r5vK)cE#+KtaOeON5pn)F4(-7U@}+u z*3Dq9up8jIGqPMdL|4pvSMT_+d5P>%RrAvGVY*LwgR_IN)wy0hbtk47zti@t8KKFZ z-)1W?e|q7PP?qrH!A)}z-dO6wwiX~>w#^)%e4z?Rm6Gn6dtwjO0iHcGO5!(mfnEp!A>H z{)PYCv2nM3xz85Pj`p^w_E*l{o9(9 z7cS$TlJeF~HN*dFQ4O}3#jTz1dws+$%LpBmb(I02G>-h(8Yd~pJa3wMgDcS{+=N`Z zu7v`B$?T(U;-hBgZR6$S>Eq<#j<*DX=<0Iaeo_write}6l#Tr@RvY|+?kvO$r=}cC zo{1m8YLil$Hxq2<9n`vtRxj^WxP&Kvn1TOU=CEmE4~_>zQn= z%O7nYU5L58cJe0-x;{!AR+1r1P1*#Z-ue2qF-fe}^XB+>?eYABLoT`F75n6SN@3r0 z0#kDtUgR`A8Q9r8MOc2Su;ig8Rbi8x=h&!(cKE)ldhi7E+#+a?@Wz8F!S8Jw_MO+!lfo;VWO^djLvJ894(&ZP{B6AioOeGaL(n}}_DW3%JqFY655r2P4L2Ag*bY*vGc0s6j?aqwcTyIdewHQ+Mm%(7sfJboP3oq*`W5FOc$3!*wHEMttlUFBQZbtrjMWH?RZybe9n>GaT;UN zQ7u8fo#~-C7UAYOE_t$$WOjJ%RNAe$@Apsg>t0$SmZdJAeX4Ex)88&mv!QOD^=1Yx znQl{i+#{O4)I`6L?n*4m9HhL;AyV@d>u}WjGH{8dTPP<5>7Rz!IdZ9(|D~c(-$P%c z%Agp#d(fFI8Q{}AEj8-FN2&?m*LoRaF*zB1M;RD6T{(%N^^lL|#Eo5pffUH~ zxy{0;@Tv@o2F-6LU&*MIt_aHQuSI-ZFIg>6ua9xHQn`((nljkCb@+rFdnV0=)bALg z((7AaeBf-rBiax|am~g$PIKmV3ME!FwB7Dt5ZN?s`R!=bLx}V-XS`}VQd%QesqtXc zsLliU8u3?sg?0Z$KulxxAFR=*KbEJ<(8GJq!H$i73B%bN$BYg#>}y2R4zGHzMlpog%XZLevUd- z&hj*55B)?UNY-jB8 ze9j?BwC(^Lc)uAFogYWIC|`%pX+GnKIMCsmtlTD@8b4L5bSO&w5kW(7q_?t*J(Cgh z@Z5^YP|`g+Qc`-~qlgR>Z_myz;a4ZCQ=@Zg=m1_+HQHA%2n%oqS*}zwgv-tR`k0|h z^Hkg#V5*JOTE3=x@^C?_yEf)$i{Hgw)GewCpFI(QrPC*$B*sry z^*H)5XMecIkoGrX^j1Bd2RzmM<(M*DQ&gNkh|w}UD}h}3N+&j59}*uJTe9X`Hsj{} zg(Yi`)=t-NjS6+3EASkB(C1;9i#!?V`4i9~dpUzaxtt-t&hmNP7=z!8%z*uo?={0S zve$>tC{@IF?qx~o0$28`c5c*D-WG~>ZP~~@aqwfo&ivdWzJWPZrVBo8-TRY0jaIAm z<~0Z@IO1~ra3Eur>QrsI;ah(@O`zNK-LoA?|1yVguR@c$s{7PVK88bqVDG}zxZ>fQ zhDxr@*`G;bliBL!PVvK44y1+C%;j?~n#WZ<%3@DvS5|H-&| zaG5;4xO89H7BZP50-Q~^ehbR8b5a#MIouo0pWo7^PZ`ZWsX1r;cz_pI(TKT*?3N8* zaJPw;NYV$F0HY22`u2g}t$CN!zu!OeBp^gFBazS3g4Rgg#3XdT992<5fl&ZkH+gM) z(!x@xN-3&@FyiqWEscuPIZMla`9p@G+qpG`*2a~EH>2-!B+NRJPb&_qjq|W~6ze#D zJ%$_=5zPXFUs^h7%}qJER3pb2s<;DG7Y~!!Hc!T6A_5&aJA+*V)>-s0wF!t*%;&{b zbhcr7X03L#<7YP@=<~SQzD&S)i)7#}cFM#JxVK+hV%;Tu5~S15Q}#aJv5S9MC7PBa zi`y2c>#E(vOFeInT(slbnGOnSe9Rper}t?w<7R#f-A6B{_q2%j4AL3q#!Y*M3J$(* z!n&QToR5(;v)X!RC(UkECy@)Ht5Obt{afkhF25g35vFESkhUhdwynH8tPVmXVRxPt zIKI|85lEnyQ`23qc%Wfb7D>CMadVO*7L{!?R;+F1C)?$?K3?_IJ!+!3s|UHe3bnpR zj2+?qr6y@v)2JDJHWa64;A5tgY?`L*?M&|2O&d)u6PwFd!d$}jp__Gjw`~Ixzj^9O zD1}11Bpj)XvR!`fIi7+fuLMj;(|%ttP*^`!W&t*>q>iXBylF08v;(BlVFDnJK)`Bmud$Gf4==vIVu? zUe{K?<78ZVy|{x%)Wtw5Ch3Q!+({GLet$|Rxw=ZHOc^Bcq2@TfT=gi>8?pZ-YUsVv z4U@dnaq^vpBg<2Dx_CkDto_29{FaHDmomj6#WacG`+a)U8S=)sr-@|nYuTQ*QVU=B z7)R<+Ej#vef?i$|0h>mFoh@Xv^wo`wVi;+Lx{3V_UTBz=!t66B$ zin{$g)0EsR9)fz3b{RqeLg$4rSoQQ`qJJl2jtXPjb$R0o=PSMsjZ z-l8zPxn|iOxI9Plz#t=zSocdxc;dn0rGsZ@&S~{yQTtCieB;AynNg7s8o2USi;({B zuvsn7`FA*!%YO@OhK&(YaBqmAI{)rhwQ6*%eV-)u%Yh_HzQD$b0<2sso^|WUa+fDVFPC@p_cEMYo&!@#8-2^oh`o#L;N=8Xjake$Z^$_Bh7}2%0F(|5M zwF<2L+Db|Rg^$xKjK#LamxNX7LaqAD(OI>&4v*RjsnwP&D}_I;cBOP}|1QpW-=zMA zPuM2>+I}*#u`}Jm7~o1bBbfPt=Z%J5;EH%7`L6keI`Wx)%cbimA?JH3PSvu1vsYt| zbN6*sR#-O=ShE(Y%(vY)!=9y^GtwG`ZJtGU`=jUQdM*yIU;>hTGd^X{z6q4e5-IB5 zl?L1hYK=`~8;W`okJOGQnJt%K07C%d80$f87ct7)=-4rZICEU8ZOEclN9*)Jc@-LIYO20|}n z{JC^$cL-?PuX6j(?kM=VF=rZ`RkWI?2QOzboOKUqJDCJg@u#QUlK2FxhyhIDQ!DgZ z-5dkEKfmm?$zZSqa`laaU2wD;=~QF)4u;P+S9`;^y~lQzL~Wg8({v@dD1kt;W$#jH z=I`4*WGMg5^lFyiO*z4t&_zq5IpptekYqV;`W%Ma#>6kJB?e|Y`8$9M{6>7vW|m1) z0-jLIZ#k4LZo*urIgaFM-$1>6_#pCIV>r#L~e?0}3p@9#vfi2(htDs24 z6z-F>RNhKRa20Y_CA{YpG*GlFVTHsL7Cb7trzEEdPHpdH38&7tr2GY)p099!)9K0| zdYY5H1odMAODl)_3_mQxsjK+h>sLvq6c=t|tX^>pHdPxTBzCCYt$_O7< z6$9oO9TwZXS)3g2Q}L(1S?hHH4)|B&bPn?)EvZ=-N%qS{$m}2am3GZJ7|kqtL~*$B z9*#G)ig6+afHCsvYX~YXMBzt)Pbs@k^N6Q8HY*PY%MzZ#@(e|W%* zz4FWo3ENnXr=r*o2*x}@4v)BO`+2-b|FO)IXv{jAEa`3Q(!76Exvwj1W~o9~b~vy* z5d9}%$>Vrvy|`~2^CTjxKj5rYHS8>x$jCeJ#r|EofR**touNUo{DvtHbV-Co&;sEq zGC+t@Z=Y}e-UmbFr?luVg|GSOGh|h$wni}p@LpN!`L&zOR%)9U$Ah{Q7mPEW9Uou8 z@F8LkrxrOr?oG}~tFMzzGa%tBJQ>453(`FUSwaT|6#E|9oVz4%M~=Q7KlmB>A!Ca5 zO@H2vV!1}Q(OpyH>hjPk)}kBIW zIMFzDun;Zj_kg&|JV7_Gr}+Kh$=2X{fo>3=(nD#=94 zJ6>Ps5-3}pwVr-kc^qmEZJh9PwSFn&JY1XC6}nfY3x%iX0$^MM`{FnkLKuDeInpCi z$qJxGn;&!j__5wl^7>E%c}8U#PiMyHCYby9==Z?pf?w}nKr4vhwf57c>Txj$2c<KuIIQZ1lPr(h9;B?90MdUz2tlhIw;a zC4g1@>)OxZx1K0BepZ1f}IR>>`?Vw4QShh~yk&py8oJRYaU8v(*^JnN)HfKRS zilIb}y8<$PNpO-sm<%$Re2g@75ermoAh%N0#{p-l-}-$`SLJpme09?x`-VH$a1-RpgjHZH@N%`}gi;iH7Rf%>{B)YQ^$`bbW?6b_0HxEAem5X z2d4WvN>J3TtCwO1=cX%=`3!-YJTD*Ih_yH=xy6D7qYKIA8MkfnC^8G@Y=urA<)1ix z$t4KTdVcn2n2LXsqd%CCT1k%Fa-Z2hwHsZR^3FA5G~(o>g_Q6CK>&Jv9}O^|vpRqp zN@z)ODMYl37FckfHJ_s*RjS#qge)$uGcB0=t6G_ zU(V?O_b0zVf%2X(m#l&xy8rYrkpJ%OyjNs;z56eC|BR5EKmJvng|Pz|rz^5BPC&wx zf^wp~=k5}Fdy+Jy{$%R!wvDoMGaJS_lFPqW5}3UB5O7Rk2F4J?y-wTJx|}Z|HQK0d z3g847dF-I$>@nu&UUcbXbsLNay{Q40v~o}*Z5zj*jn`r!gv(SwA1^?Mf|&4lKAqbl z>Ceq3_o<6(>zUKs);#Q)LvE)1+|HssyQafh#!L0U05*b-C2mo;o=p@Q8*)9QOQrE6 z*}g_#MpZQ-YO$d&LmM#KhRg;s955MVJYBzcRv+#W$&n?UPYI8Q)HFziudMD=UqNI? z=aQAsyh!X#rl}|X zaD2{h@3cDZ&|VWLhi zY}}vnZ+)plPGf)|os2G@U3MiId|wdp;f(d9;Z;V<8SRKyl*Q?RQ*wh`!)mF)-c-M& zgR(T#P<^;JQ|SJ^akPEaP#=B0yTE&wx#ZER;w0jkcEA<7p@AF#j+@uj5aR&4FQaAp z)kfvMQlJJ4usap4wW>;zF=Z9W5jw5O_?f@4YC21fib&?7Lh`774z(1c>M1`X!7T@Q@%>7}{|MvvCYaK~iG*JX3U) z(^800zM8}{EGPAEAwKLU59X>V!4Jp{7B9!4HQC$Y&)Q6n^+s*!thiBRSm5Oi3T^*z zDajwsUb0rZWP}m~iP+P;yG~GGm@QSCh@7rsv8x+Q@ut2C1xgELs_hNUKdyud?!QKf zw5?8PP-IE9boWh-|8|j?(juOr#n8eA^p3w|A@k<$H92H)0Cw27bF;XER&K0XJmDD| zqo^QT8L)@YVQ;GZ$&xg~_?6lb#5`E1OO*1KY{=CDYzeHoB3#X?%8kjVS5ExE&E8^w zR7lN)a*?^gKK85lE<6UpVxQr+8K48@3ws?69zt6qlnGboWyYfAyFx=>LG;K7CKO@JIN z#s<*ZPd)TA-m1^SaQP?f$8VS(Ux$1?`^%@r$D%HuvLpx<<(c28felDPY{^9-K38(P zE^F>klC#p8V1}3I32P}9U2Uz_#(WNW1GGiBrye7iFA1vTaq3`&p~n0DhGCa0LKZwD9}s*574oB+pii0AfM6Y zpe1e3T6+2{<2o=;n%@r-%Fso21-)kQNK|(L)#WL`&OUeoDWKoDFnv{y$j{Q`^ByfW z;!1owbuV8e1vZ7Kf({c0X*Ox zzOqzUCNZ|@UWME-EFYuyYwyP~_%&ZtXlni3I8!ct(Qx{alBasGP=L*Sb~Tn^Avzh` z9g^#G*B{8mT={CBM`mi@BiGm@})h>ojhoi161c23kCz6$hv z!CsD;KlIy|0R}R4o*n<5QzoL&-sb)7ko+3RvwMXW0qSGvcRlLVt4owIdtyD4>$8Y7 zJA%6mqE}C?&8nP)hure}c}naT2oyAdY=Q|sM|+5ss035e#G7Of$tCOldrGppZ@fqr zPr*op2A|ahj&NpIxiZv4LvD)_C5;eHNin3l6aQ|{S7%v%CEH@(*|DSOIX;bW5{1=%KBysfMt$+Sp?!Zv8kTswps3VbtR`%sjy zII(OZDcR3Qq(j%MVU_Yl_R>lD!Z*X)>RC)E&I$zQ~KlH6=tY*yd^6fk&C;#K4XY&C$u7< zmSIuWR71kQ|Fw0H{7@*I#6N6XcWU8A5H$wSOBXCEsmEWr@ky&0Abd~Bgq{5@^wxq# z)%&i4BgAF43~;59(IgEedmlJnWwI}Z5DH(7-4#5<_H0&l4gb-B$MZ3%bQ<~y%`%*2p_q`esj zzhx>nF(+wo3B+pLoz!Kk@2R`N`1XYiqS?r_;?2j1PDIf)_iBgvV9wlA!V-4lGaRF!@J8lsu8VnE>z*0r-j`HXCdL(p3lI-6Sgq`HA-T zzOIKg5d8EaHt6v$GzMIh^2jXx6So|^z427Kr7KIaCC(@D z=^Ab0qcqD7f@(sy=hIwDv3n$|!$cNzq8Gaf^=S(ymEtt?RiB%qW530 z0T6}&O>aW|3sx8u=sqt$*Ga53$rrzJTI*opp7~*J_HAljGe+gPB?X-Nq7@X|-7pgQ z^Hd;}i z@h{$gK#NHhyYt*BPIO8_fuFL$*&8T_&m8@h{uB41Z)}dgVZ-`%?vK-tNRCjjTBpp} zZ-!YwMLAT*MIp9OP7P7f57L3(DfEzVs|H|?q=algp71)6hTgJzm&eL53({)xES&j- z&w1?U+f)wqI~~zN&|V&Wf+*aDAQp0eEQfJ&BM6A3q_fF=_hL|`ckZ|8quoxKXS+8n z_?K@GOA!tbhF%67lTlf3f-_@=`I3X7`@yejZM&H@nag?1a!{>=oram&7nN58Q_UrA zov`KYtfxvVrSsTP4$)wolf(f#f`>q8Nysqp60%r#kBlxU&e0(PhDa@ z-`LFE(Dh=N5huGZp^Ihk677>PJw_B)mW5#TxjM<&l8mCWz}wI*m5>7njK7zr)W?6T zRK2Q?)o8RuFTcdOP72^9*SCW|P6OY*<}bu37QYSJ2SI-bP!mU)~7x!=l{T zhv^}r@s&rPobHc-od(qJGGOigbCwKBuYPJufxvH$0dLzl??+y~u{kijH_)zdsX!R< z`uFFqtRi0L@#oWVvEb^{m5!8WQJ5KZav6~}ObDMi@LSpDEffT=sy<2J0jWC)MfvqD zq$kZ@`L6;w@tQ^f->>FTpvZpR;i(?u$c9rVGrikz&kAX=QmF0z=Vh!W)MMbKcfbxvg?MtnMWHpjWd0$-jgMdcSV_q) z56#cXu3*j_5d8=d4c5VGlbUC+gbr_u(MVB#9+#z?p$RRBKj`k|Y+hx%w853rF| z)|@A@o|~n9>xX`(8<12!XDeI6S+Ti4vVMc3z9#1O1K&M}BUHaB)I?q!nA#+%Kf51v z^s=4exBjD5`l#=V+5@htaLp@()7|tz;VZp1K&LN{RW;jyKC$Ov4)ItZB4#QjGf2JQ z^FjtIQb}lBvVKxfnN-1q8Mw{Ir2JUEV@IglFT+ANj7LGuj=a1Qa`n;+++{|pqDC0}7W zR3fDpOPsZ$VtU-Ln{3rhx@9IWm$~h%-0GV_o0j_InQ1S{BgCDE`0px5oC9ihV#^Hf_#o6=Y z{Emj*oCOvS786mzM8?d$27D-%*lvqg@26boR^{u{iCYzP4!raFHo`T9$N%#|#C8c8 zYH3!NL98m%ZcyyEhyw{^i{8smhUvw+7}lTe{qmY=C%OBpwX(c;?ML9Y^{GPtlZq7K zRZm|M=c+w2wQmonG^xv(Y!M5ow(hz8P2Bs0+<46mTUQvKp0lRDPpgqpXTO`n$K{)SyVibiH-ReE! zUPl)A*UcegOnt=bC=J8;cIMm6*tAf@9LXyp+peUW@^QskZqM%Z+HkL*eDw=B*_+zc zyiOf1{E|pVh{v*9{Vdg0ATFhr6EJ^8N|dC&PnIVj5-X~ zPlkO$NGCuR1Bpkf=`dxQJ$5piO}FKC?_+_Bia8WB#~RMY`A6wSE>6SGZ&aKtYALKE zy-rEn^P{$IKrlL1j!j>e9uFNp;k#x-Hvi^?<^s4rnAmHaHBMu=ERGsqgX+6F0LQHA z2(~GbbrRxsK!CiL4Z+l1P6?#F9s|(KsNex=H=uw5dy_a|8PrKmej9vuh_6H8tFZ{w z1K#1@Zkx!t$7U;JPrmN(!=)e|3|5yRWvIb^$H`YR)xrtv?0=QqM>sOz)MME2cab9; zRV#}1hME)d{UlhQW)C~Szd@MDmCoNZ9%2$?LrGpGjarzNqL`uV04DaRDh?sw8^r-< z#`ZZ>KcV34r7AIshm6M-_C9>J;b8oYZdbjz)(O1GL2N0*ej>8+n1hHI{HaR zs=^@}@@121syW?X6eT}IGQ)(DOD0BfPo+=-3jr&Z%s?5nLoAY!65xg`lG;K`Gzbdc z!xJDM#jTd#%cbqw_;UUrH!i3^+z%iWnlfIZpbY2&I-c?_X!IZ7$w^jX-=^e)63!AO z!i)Q+YfB5?uS6#R$2GbV&>32+B-n097z$?qpfd>YL%zTE^`FvmDT zPbKWyo9ocKf5fe#X=TfR!5tHs3Qspa%Jgkfp-IEf9T3a`#Dq@YASIiU^UCj#lrnZW zwJ$c|Fa%;*+>@U^;@f%zSP@jw>@x!izz>29y0uui6wpb8f{b`W2vkGrS)skAfCd4Y z*oun8{TbxCvbibtVS$Iq$2}VCYO5!Q%8R`tX1JLtg51*uIBldh)xkfVL97k+r zNZk(jYzTc6$w~Y};|3ZZ%YKI1tyKY(oYnjxV7B6rDR$a2@9}J&BH=u{IZ`KHHl zQ=&bucctavaO4#POv8mzlS@s)17c_83P-+{aIIaVmgf$QO1LT)fi(r1*L(<)T_7c# zH<^JSgp0U~b}tE*81)Ja7?%Ov!2P}q2ZDmd>E4PcU)E3AM9btmSJ=0gsPy*p8G?5U z)e1}!7p{DM4j$)0xD?7e#5`*21DhN1y}jO$yy2x4;AqLb9vU;q5|(L;wdWjRoJo?V zTKpK-t;BW`Kf;AbJH*&@5jNi-wcLZq(1jSE6lW<#093Hb^xZTgC6^;Xv$~=ee+%fg zCr-H@DH(*W-=gb(rmywIznx$EgV(j~zfWt8!O~HhQYiI@0D*EsNWgv`Hzt_cD1s}1 zCndy^#pP&kJlBd@HC34Hp?JD}>rJhs8)lXrpPpxre(HDHZI>+2Z>AX!2$A@$o4Haz z7I5$V_a|SsFQ2qExBAE_iP@0G81)64eUWMBPb*YcbWy(8mFz*caCn&obuCC=3kb<1 zM{RJh?{>Xtv_X#i9ceon+nr??^G)k!2FN)KQh3)lWLZL=#4gwjP%#lw5KZ{|hlm_( zZjXvd$_9R55V;~tXd#6pjvwmGG)$54b7Vnr2bqJxWIE!F#SIU{Rkk345E8*-MBiTZ zhxlg0o%V-Ow}M|=0TTub4g`X}Je^qWtw&q3Q_DP$ep0Cgu=Q~v%(rufMvb!~vuy~> zj_6H{|{;E#4jn9B*q9R9lml}Wb9dM5`6bWQsGGFK`)Ai=#DZ)qr zMxghW$TM?;;7u;`e&6~HVQ9%f5NTQrmbQ`RfO0eNX-_yrr=2}3kI=@yWT9=nBB*-! zUi505GUuYj%ts}wrZ}^LVS2-p&rbtNDb^av>6nTsfEx|S6&Yc62O$NQ z!~>PR`n4xQ5rm@vJb{dp1-0R}IsF>)>*7GZ(y6Z+vXB`&264S!H{WKc)yC4lRDBoD zN%{nSJi^ZEGP60aN!aWx>qf{=XGPbWgc1*VZW>kz+4#klK;u8|N}zM?p+^#S!6Mr; z-38sK!VGubBuqe=u9)pt?RT~6cIOLuwhdbW;93FLZnz#hn5KbUx-l@%e^{5+}$q5%~6L&UD}S zDaS$GB2NbQ9%7LBw0xz|hmcO~0QKGjBPh z8Lek+Qp5_yo8Q^Ai`r>>DlbASk%QZcMUg&-QfB;1PhtR?J~2o=E4*Q)9W+}yDE`Vs zD}97)1P1!o6VF_`at6A$#%A&l&eG)OtGO}PPP^PUl`yIvQlT-L3GM>d-sR6DD=zJh2=%$;PZ? zIuXhVl*C{qA=~6v8PpCh1JT3ue)k+3r(9E-93EEA6fvQ0!5E9#WOEqb56~g$G*93T zmYk~&o7_t_)m+-g^*g`04F&=`VzHsU#O{w8rW*6WF1DPF$3Jv$6s}gtaQBX)gvoyx z8oqY}s`Pcmj!MfH_7%FFOLU1ps?$3Z8 zZ~tJwK@k{{cuD;2)Gxy{d)Yi__K}UQ6f}VbOGy9NG&B6oeOSL3AY`(xZ&9+WoX*(E zd8~siCR}`R^C0h6Z0_P3$Ar8=R5%~R zdOes9z3Im$u^~nvOa;bysu-ZkA7S?Es>8PIN@FTi8m$044q`04$ylEdkf^7QSfOv$ z_|3R!jWFB)xU>3pTIg7#foSyUr>Nr9ytie2|B2k{shwF3p$}Qpemjp@A{r{IUR{D; zbtRsucr6wSNtDvP~2+47}CX@fV|0lodqwLfv|%68gDZhhuW(ycqD`=4VQZ#N@< z&DlrkEN!Nrh=B^?dE586+}w9@LzcdSH8NM`p8_MKK6ga~D+VZoWremlYlu6;Yu#UXLqv-?=HftuLbUl$)NbmMfP}YtP=?%e z)M1R=T*_Q)#0Tc`R)haLW(((lo2ggO{n^NQ2FP4Uw#P=yyuA<=v+$#T;)cZaBA8hU zL~1vj3x15wofctP)FQ)5>Y^yE)(nwQc!QF?GlyBVN25_4d|xiQlv|NJLm~sU5o0_} zw^Pa@HsVb$HuWuAERE<(9pmeMx|4xx1+JQL4Cr z?w)n&reeKku5(+$%M8AM6HRtHZLRBmlKL&nX((-N&VFgiqO;4SH3gP!{ye}G`| z=TCvg3j*)WZv@?qpyfqRWSTc=Dp*mkWoVCc?Gx=Os)+pDJ2HHrH)e}r2~xl)6F)3* zDbV}mAE3?#|s49|}pt+Sb34PA@N($GPjS5qldK<1{~h$y)X6-)xsFjJ^UuFN-Fj=qrE7~?!-3&s&nv>Z>H?Z}sLN?z*kJic-Sx9~srZHm z!JXyYC(;JjxhDPB)<13a`u14aj~>w%w>qz{;+xF)E{~Jl zl;Trm+Ysvq>f|0XM+w+q*OS1X2?YfSM`C0)*qNt4d@jDtz$sJJccZF`?Sd4IT?;a( z^XUXJrR<|3ox$8QkuPW&x<3YqmGNOc8P&eKy7mO_Oz#hH?;nu@4^RkEXCe|EIMpzx zk)Bn%N7~L6+%oR!Grr<~85^4aspk9al=G^=2Uqk|qQhZAMXjHFOVn^dbDtV32Z<>+ ze9BSJkn6N_*q{?}xk#ksdD@fRnBdUlq}1^Sb$07=?7L)v`vbjxc>^VW{sWKK(u9*f zk~n@Zq7{RkE`@57+S*)?J3r}e8qr(D>i$LwSISnbuzP&q`J;2mzB>w1O}hQ>H`ERc zJ4mdF6`EtRaNFFy_e7bUC+B<{N?f2*5E$;z9l!38^>tegn7=o8MH62fl24Y2Z)tC> zjEa2$&k&0gs7&zl!qN2ejlN_<#E*zwJ;dRCUdCqtav3tjkp>Ee)1JIrLZey?aylbB0f#M7E-;Jf2=^t~0etRalpytEOprM#w7s z?H9|l3ZKMeayPbW3K48pDA|x+4cW3RucA&{G#qx!LmzPHys&O(6g~|)YcCSauD;?chh}bc*6dK z!Of-Aysr;dw2y{%pRX#Eatj!yR}|8`1cw%KQ#@eaqCLd@PKs^MU>!>$39x%ML#JRA zQQMF1FpW7cTL$)o_N<9|%D~W!b61r~aG%4#Yc8<@SvmsXpb@roL_SP%?3>cWtw(8+ zE<&y~Vm%_}0<6}hR^Q~qMsE43E-PLn7VegB9yBQGU-t<1R@63kRl?)zrs3a3nk2CyBb#a>1ZqWX z^Dl=Vd}#Rc;OZ6i$|u)I7jR#^zoI^Rm%4r3_G}!iL+pjl(CC80!=ZGMIIfUTfs^v- z)#?4<6%z3Nbu2yk;?b|OXol*A0oxzywB6-O6AF8cJ+^1uyI-%cW;;z^a-(ln|LCZ5 zN=)^>P`Xq&tiQW9>m7XMpnX`Xz)gDG`jeTW*(1I$8qp8FcNjaXNW(mYE2&Z0d+ekJ zgv7msYSV*|7DQC^g6Kg~FxV0pU)&rf#A1V3IS`!$Z6q+YiB$Sb-_dtEZroJA zM%ruMA-r0+)o{qS3+9#<;`Ys4+>L9dtT6jW(Qj&n-eiupbuDbVkn9wYGUPZEm7M%3 z`Af9-69oZ5yU-)1@%qp3y(zoz`4zN8Y_rED9T$kYcMgB3 z%J@c%Psp5w-y{0nB%M!vwR%W?NT@ty!79@FXoKEUix$8o6d$mQu^B07GF0Rt^YwW>uev|49dhwF zt@eV>G>TiT7;^ik(ALkp%~XA~iyD^s9fr%~t(O8(t2I#H@7lejD#YRt?HYIo_R-_xN6iCTdi^J#O|}ysWQ` zNF*yLZjqEy^z7QO9m@hg6&x*bus>_>iW{{}8f+myR5yl=g@MMc@J{URmh zL5^2<;lc&1)+ZkJ_@TYnB`Jk^5P3$a&T}u(O7Tjne%X2UpqIyuLpdKcB<=54tzkUb zCtFpRRP-yciIqV9w!CIp^8ta=?J;Y`9PQEH=k75o=@!SX^;{S*tK3z<_UOUIn==+$ zYm!g;M#Y>l@0(TMVS4IwAf+>@+V4%nTR#Hr70IknFUb@-6Ad8cM7i;uRKvKE!d49kgjt+V%WEL>dLu)l-(G$WE}QI}7*_i{Yh za{?wLbmV3BkN2Ct>flxFP!?&ogp{OJ@P=g_Y0t_Q4u5j~HQJQ8$tPQ0nP$xJu1`62 z?`rh{T74ShZjEEgq2jn_UlNsrd|k3xT)DpT)_n!s6PZNw%fdM$8CM<%)D(nAw3oGxt*}SzPzA-8t;JBBIg1`a?qQ*RBwosTOPin z8IW++Rr2w5k|#H)k%l|eFnYdRDjVMw^!#3@Y)jpnGwPSr^bNd9FDKo-5o3QMo1(24 zm5Fb`;WCYf1>W!4kfPJEJ2`~iyqGO>|JJ-(YRie+KIIFaO93Enk=JDniHDs>Q+z@>{CTIzGNOS4(f6^$m@y zCk|Mc*x>a!S%)|mB2HRI8!B!xszzqCLs|u~CFz|V<>walYAio2Qq;IP>4cu}>`Ri} zar%-kgm=zr*ems^xn=cplI{7+d8iCUw@r2j%KaMsq?ab$Z;7$>dKmWV>4rcggI?rK)$DuwMEA9;G5 zU{#;US)F=L=+4F7UFU3vZ=hOND9fGOf538~oP~LWp2bInVQZV7fSaGU=3Yt>bfqq6 z^Xa}M+?J=2DDhKYez~VvpQfjp){T53l&qJPv`tyXKDWv-@AN{mFoadJ*pN*B5rsF$ zS3Rl?nR~W8f(lZYeNfn38YU{RTv-15$;VXbV7(9ToZbD*!Yeeq4{?{N&XsLCe%v4R zHE@x{Db06}_F`=goS&cbGML+R&g#PKq=Xht7fH80O{co5R~dyBm8@*q5UuIEv@Q3T zRo$*12 zaA_PO%XPKr$5kTK>t^zI)YKo=ZdojpW^zZ{StYZfYwo6No@Z6>6gRo0bks)8N2KDZ z)mGj{*~iUq71w`N{2KK0=kvP_1AVtft6qy!lu*fvKQb}t$2;)p;w?$m8@I0Gu3a@Z zAc(zc=sgSbYwoPGKJ@?d(&WcMZ&8+_G-r- zdNh2DTw82V<$O(E-b%7uiW+W4_bfAJ7}Yu7t%*yPdq&o^|=9mqbf^s%c&AUx_QQ~fYTq3G?!=4dpsTG-f4fYaeyN=P#Kd~bm1 zQeSMjVy8u=%cHQz7j_cJ6caJGHl&*L`mm9g(Z}RXzSrcxZREDSZc|xZb~^9J=-ad_ zDGJdw2J($^`#NrGaLHlO4x+8PW-Z$mwv9%>8tJXYx5aW#1gM+ejc8DK5qdF3y*Qqr z+AvQ=SLaSj;r-pl^t*wBzHW4F7kOm6#roKTF>B?-FXiDROz)h`yQHdmcHe`XeFN9H zQNKiZZQtK;OIx#$J5GVdkGI=_b_xVpbSJn#I&6sLO(j8W9U8@u4vE2n;7kyT z31V@m-~tkl!efXOJ&G=ph=z~|ydEBlKx0s7A{nbo#E`X_Y#N!woT*jozE@~q%nRJ; z&Fh#l=!R-YZG@T%=$|skRJx0yniq!x$Ez6|8Suz?VW7sjRX`d#Tc1oaRCDEUnEE<8 zOfQy)HiPA&Lni4!9uN(pbAW`}NFB9*?&Ux%8hgqFV^{vU)0a*C=Pn-~A8jAqF<=w| zfz;Wyal;nSaMK8IDxJ+CfPVCE{C`rg$1bzAfv9vKC56GF5jfxwi1x>{00}#-S=E59 z1Pgq&*U)uZ!15p|z1XT|Ep+cZUHm8y^l2cpQ_#8mG}G|BZw7`wW!~ zB%@NO(AX{Rke?5OMII9pB=#WCUA%xJ@$U5?usIt+j)GgsCSz*-p`-mi`@fVMt&hU! zBkzVus2winS2B5{5nai|=RF_C^d9Pjj)WB>InBmVLs za(dn`4v0X?+hsxd*tu>zN1S;%z~22|F)aW09zKRQ?yUdE&h*<$;Jln?0}nEVCEua; z1pd2#@H)d|VzFJRO!mqdWOHLP=rd4^U!Gd6@t|%qB>r>5)X7<{Gb9D$Y68n|I)ie2 zIg`?IAYYCS6GXNJ%1lk?>r9-KW@7G*^Qo*>0i^&`ek?;<0*kjU+@Gpd7pslb zMj=ttQ2>ztq?j%(2*@`nEtSS=M8?iftc&J3K@&I@Nf8w3+p8Xx6N_&Xu2@OahE{!>wFgEBK2E4cfnS`|p`4zQ#rpuoTf zcd);)3V|ZLnqfTk-^O=Rckw zOr@x^au0?Vo17QxTXP~LOh|tk%#92>mBV0dhS;FqWNY(kj>(!IJR4zf0iewTsQi)& zubu{VohyOGnF;et<+k3bB^5N72GgDedT7v$l158CKy(2~*&w5}`SmxP26YRS<~3gF zj*Dwar!c0pLPEH=q$J!KJ4uvVCMu+{F`4K0?`94R_ zJvV+d$01{fc$ zM?z0at7bM=V)2yPMq1BIi^d=!3Z6&;w0gj$2ndkNJZ=n;j3E$66dVCNy-Nke72j2y zGH>BFGt*)bC?W}rb>IjT0T`KtLc;a*2q-uOg8}0p3YJVH;-=Mhv%XHJ8le4m0V=Vb znHH~$0_H@c;W%EgLF+=gZ~_T|2OdVk;B*OkXpAmuT3V%?S(*lbw&7m|h`wcJS^^SJ z#8L2I)6h>c3nH?l3bg5o97nLL%Te z3>MJhK-nRni5NHqjAKwp2u&u>P=M?%M3)FmNt?OtKWOo2BmoafD+RbL&=!w_;}Jv@ zoIuefkVqI%q;;qFWaclsauGnQ^)GF)J7=b)fR7Y$C?p2diwG>x7ML3k>IgUl5z%N2 z1&`3f5vI-CRJki}KobfBtYCfliCe+$X=t~M#WaS<8yMpw0Jipce|K`DM|gQ-b__sV z1)6+*Xt>if(El{gOjkcPSfqhBc`#L#egQw{9SJ}m2K%y!Lc=tjr-9x=@P^1+ND!D> zc9^o6NRH;PzJm67mKY2Mx=Rzb_USMQbUFi!uE8j1%KpwoDOXLvgTYo4|5M7%W6M*p z9Z*y0k9xm-cAN^(Uu|+vN*I`B%9fPn$}=XBz=pJ0u9LIM-z*{QAds*a>?`;r{l0%1 zynnI^@@0BV)0q;M7Fxa|K1VS5( zeI|>YE`ikMEo9OQvJJt9A09CSzAb~z`Cp*hCVnZA1gN~;HoucSIXVscW{Ae%KvoPQ z&&U3D1poHpKTGWM(gIBcZ&&A&7=4Tnb3McWvuB{k$^_j&BoWMYK)}bGiQ^{t3z)Pk zX-^qO0LI(-2PpUI`2qi|dqM$Ap@42G7_&__C;zG`6QygE5uE5%)2yK~8IOM@kBNBk zvV3^_>v~L9kw2>YM3~p04W2s2`(#o0A8b#=kl)TH%D*3TPln^wipbWi*yTZw-%b|Rn|N$~&u)a+z>{<*G+^bkdGs+liaYY|X0 Sz+fxEj~jU1V3`}wsQ&}38v_6U literal 0 HcmV?d00001 diff --git a/tests/integration/test_design_import.py b/tests/integration/test_design_import.py index 56966a5bc2..d1718ebed3 100644 --- a/tests/integration/test_design_import.py +++ b/tests/integration/test_design_import.py @@ -31,8 +31,8 @@ from ansys.geometry.core.connection.backend import BackendType from ansys.geometry.core.designer import Component, Design from ansys.geometry.core.designer.design import DesignFileFormat -from ansys.geometry.core.math import Plane, Point2D, Point3D, UnitVector3D, Vector3D -from ansys.geometry.core.misc import UNITS +from ansys.geometry.core.math import UNITVECTOR3D_Z, Plane, Point2D, Point3D, UnitVector3D, Vector3D +from ansys.geometry.core.misc import UNITS, Distance from ansys.geometry.core.sketch import Sketch from ansys.geometry.core.tools.unsupported import PersistentIdType @@ -516,3 +516,22 @@ def test_design_import_stride_with_named_selections(modeler: Modeler): assert len(named_selection.vertices) == expected_properties["vertices"], ( f"Mismatch in vertices for {named_selection.name}" ) + + +def test_design_insert_id_bug(modeler: Modeler): + """Test inserting a file into the design with ID bug fix.""" + # This fix is available in version 261 and later + design1 = modeler.create_design("Test") + + design1.add_component("test") + + design1.insert_file(Path(FILES_DIR, "bottom_mounted_imp.dsco")) + design1.components[1].bodies[0].copy(design1.components[0], "test") + + ns = design1.create_named_selection("ComponentNS", components=[design1.components[0]]) + modeler.geometry_commands.move_translate( + ns, direction=UNITVECTOR3D_Z, distance=Distance(1, UNITS.m) + ) + + assert len(design1.components[0].bodies) == 1 + assert len(design1.components[1].bodies) == 1 diff --git a/tests/test_connection.py b/tests/test_connection.py index 04ba1207ec..502abeaa8a 100644 --- a/tests/test_connection.py +++ b/tests/test_connection.py @@ -610,3 +610,89 @@ def test_get_common_env( # Assert environment variables are correctly set for key, value in expected_env.items(): assert env[key] == value + + +@pytest.mark.parametrize( + "backend_type,os_name,version,expected_exception", + [ + (BackendType.DISCOVERY, "nt", 251, TimeoutError), # Valid DISCOVERY backend on Windows + (BackendType.SPACECLAIM, "nt", 241, TimeoutError), # Valid SPACECLAIM backend on Windows + ( + BackendType.WINDOWS_SERVICE, + "nt", + 260, + TimeoutError, + ), # Valid WINDOWS_SERVICE backend on Windows + ( + BackendType.CORE_WINDOWS, + "nt", + 200, + TimeoutError, + ), # Valid CORE_WINDOWS backend on Windows + ( + BackendType.CORE_LINUX, + "posix", + 260, + RuntimeError, + ), # CORE_LINUX backend on Linux without dotnet + (BackendType.DISCOVERY, "posix", 200, RuntimeError), # DISCOVERY backend on Linux + ( + BackendType.WINDOWS_SERVICE, + "nt", + 230, + TimeoutError, + ), # Invalid version for WINDOWS_SERVICE + (BackendType.SPACECLAIM, "nt", "invalid", ValueError), # Invalid version type + ], +) +def test_prepare_and_start_backend(backend_type, os_name, version, expected_exception, monkeypatch): + """Test the prepare_and_start_backend function with various scenarios.""" + + # Debugging: Print the test parameters + print(f"Testing backend_type={backend_type}, os_name={os_name}, version={version}") + + # Mock os.name to simulate different operating systems + monkeypatch.setattr("os.name", os_name) + + # Mock environment variables + monkeypatch.setenv("ANSYS_GEOMETRY_SERVICE_ROOT", "/fake/path") + + # Mock required functions + monkeypatch.setattr( + "ansys.geometry.core.connection.product_instance.get_available_ansys_installations", + lambda: { + 241: "/fake/path/to/ansys241", + 251: "/fake/path/to/ansys251", + 260: "/fake/path/to/ansys260", + }, + ) + monkeypatch.setattr( + "ansys.geometry.core.connection.product_instance.get_latest_ansys_installation", + lambda: (260, "/fake/path/to/ansys260"), + ) + monkeypatch.setattr( + "ansys.geometry.core.connection.product_instance._is_port_available", + lambda port, host="localhost": True, + ) + monkeypatch.setattr( + "ansys.geometry.core.connection.product_instance._wait_for_backend", + lambda host, port, timeout: 1, # Simulate immediate success + ) + monkeypatch.setattr( + "ansys.geometry.core.connection.product_instance.__start_program", + lambda args, local_env: type("MockProcess", (object,), {"pid": 1234}), + ) + monkeypatch.setattr( + "ansys.geometry.core.connection.product_instance._manifest_path_provider", + lambda version, + available_installations, + manifest_path: f"/fake/path/to/ansys{version}/Addins/ApiServer/manifest.xml", + ) + + # Run the function and check for exceptions + if expected_exception: + with pytest.raises(expected_exception): + prepare_and_start_backend(backend_type, version=version, timeout=0.1) + else: + modeler = prepare_and_start_backend(backend_type, version=version, timeout=0.1) + assert modeler is not None diff --git a/tests/test_laucher.py b/tests/test_laucher.py new file mode 100644 index 0000000000..639e2ed2da --- /dev/null +++ b/tests/test_laucher.py @@ -0,0 +1,133 @@ +# Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates. +# SPDX-License-Identifier: MIT +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + + +import pytest + +from ansys.geometry.core.connection.launcher import ( + _launch_with_automatic_detection, + _launch_with_launchmode, +) + + +def dummy_launcher(**kwargs): + """Dummy launcher function to simulate a launch without actually doing anything.""" + return f"Dummy launcher called with args: {kwargs}" + + +@pytest.mark.parametrize( + "mode,expected_result", + [ + ("pypim", "Dummy launcher called with args: {}"), + ("docker", "Dummy launcher called with args: {}"), + ("core_service", "Dummy launcher called with args: {}"), + ("geometry_service", "Dummy launcher called with args: {}"), + ("spaceclaim", "Dummy launcher called with args: {}"), + ("discovery", "Dummy launcher called with args: {}"), + ], +) +def test_launch_with_launchmode_no_launch(monkeypatch, mode, expected_result): + """Test _launch_with_launchmode without actually launching anything.""" + + # Override the launch functions with the dummy_launcher + monkeypatch.setattr( + "ansys.geometry.core.connection.launcher.launch_remote_modeler", dummy_launcher + ) + monkeypatch.setattr( + "ansys.geometry.core.connection.launcher.launch_docker_modeler", dummy_launcher + ) + monkeypatch.setattr( + "ansys.geometry.core.connection.launcher.launch_modeler_with_core_service", dummy_launcher + ) + monkeypatch.setattr( + "ansys.geometry.core.connection.launcher.launch_modeler_with_geometry_service", + dummy_launcher, + ) + monkeypatch.setattr( + "ansys.geometry.core.connection.launcher.launch_modeler_with_spaceclaim", dummy_launcher + ) + monkeypatch.setattr( + "ansys.geometry.core.connection.launcher.launch_modeler_with_discovery", dummy_launcher + ) + + # Call the function and verify the result + result = _launch_with_launchmode(mode) + assert result == expected_result + + +@pytest.mark.parametrize( + "invalid_mode,expected_exception", + [ + ("invalid_mode", ValueError), + ("", ValueError), + (None, TypeError), # Expect TypeError for None + ], +) +def test_launch_with_launchmode_invalid_mode(monkeypatch, invalid_mode, expected_exception): + """Test _launch_with_launchmode with invalid modes.""" + with pytest.raises( + expected_exception, match="Invalid launch mode|The launch mode must be a string" + ): + _launch_with_launchmode(invalid_mode) + + +def dummy_launch_docker_modeler(**kwargs): + """Dummy function to simulate launching the Docker modeler.""" + return "Dummy Docker Modeler Launched" + + +def test_launch_with_docker_detection(monkeypatch): + """Test Docker detection and fallback logic without launching anything.""" + + # Simulate Docker being available + monkeypatch.setattr("ansys.geometry.core.connection.docker_instance._HAS_DOCKER", True) + monkeypatch.setattr( + "ansys.geometry.core.connection.docker_instance.LocalDockerInstance.is_docker_installed", + lambda: True, + ) + + # Replace the launch_docker_modeler function with a dummy function + monkeypatch.setattr( + "ansys.geometry.core.connection.launcher.launch_docker_modeler", + dummy_launch_docker_modeler, + ) + + # Call the function and verify the result + result = _launch_with_automatic_detection() + assert result == "Dummy Docker Modeler Launched" + + +def test_docker_not_available(monkeypatch): + """Test fallback logic when Docker is not available.""" + + # Simulate Docker not being available + monkeypatch.setattr("ansys.geometry.core.connection.docker_instance._HAS_DOCKER", False) + + # Replace the launch_docker_modeler function with a dummy function + monkeypatch.setattr( + "ansys.geometry.core.connection.launcher.launch_docker_modeler", + dummy_launch_docker_modeler, + ) + + # Call the function and verify that it raises NotImplementedError + with pytest.raises(NotImplementedError, match="Geometry service cannot be initialized."): + _launch_with_automatic_detection() From 4523749868a206005b849221cea90c7d55eea52f Mon Sep 17 00:00:00 2001 From: pyansys-ci-bot <92810346+pyansys-ci-bot@users.noreply.github.com> Date: Fri, 11 Jul 2025 15:01:34 +0000 Subject: [PATCH 2/6] chore: adding changelog file 2103.test.md [dependabot-skip] --- doc/changelog.d/2103.test.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 doc/changelog.d/2103.test.md diff --git a/doc/changelog.d/2103.test.md b/doc/changelog.d/2103.test.md new file mode 100644 index 0000000000..a9dd080381 --- /dev/null +++ b/doc/changelog.d/2103.test.md @@ -0,0 +1 @@ +Expand coverage and add bug fix test \ No newline at end of file From b086c225af9bd03bf6791210e73b27b446605e81 Mon Sep 17 00:00:00 2001 From: rward Date: Fri, 11 Jul 2025 11:14:36 -0400 Subject: [PATCH 3/6] removing failing parameters --- tests/test_connection.py | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/tests/test_connection.py b/tests/test_connection.py index 502abeaa8a..ffbebde743 100644 --- a/tests/test_connection.py +++ b/tests/test_connection.py @@ -617,24 +617,6 @@ def test_get_common_env( [ (BackendType.DISCOVERY, "nt", 251, TimeoutError), # Valid DISCOVERY backend on Windows (BackendType.SPACECLAIM, "nt", 241, TimeoutError), # Valid SPACECLAIM backend on Windows - ( - BackendType.WINDOWS_SERVICE, - "nt", - 260, - TimeoutError, - ), # Valid WINDOWS_SERVICE backend on Windows - ( - BackendType.CORE_WINDOWS, - "nt", - 200, - TimeoutError, - ), # Valid CORE_WINDOWS backend on Windows - ( - BackendType.CORE_LINUX, - "posix", - 260, - RuntimeError, - ), # CORE_LINUX backend on Linux without dotnet (BackendType.DISCOVERY, "posix", 200, RuntimeError), # DISCOVERY backend on Linux ( BackendType.WINDOWS_SERVICE, From 393bad3013a8f4e28906d9e2a74660d3d174ee02 Mon Sep 17 00:00:00 2001 From: rward Date: Fri, 11 Jul 2025 11:34:04 -0400 Subject: [PATCH 4/6] remove test, it worked locally --- tests/test_connection.py | 67 ---------------------------------------- 1 file changed, 67 deletions(-) diff --git a/tests/test_connection.py b/tests/test_connection.py index ffbebde743..04e6089e3e 100644 --- a/tests/test_connection.py +++ b/tests/test_connection.py @@ -611,70 +611,3 @@ def test_get_common_env( for key, value in expected_env.items(): assert env[key] == value - -@pytest.mark.parametrize( - "backend_type,os_name,version,expected_exception", - [ - (BackendType.DISCOVERY, "nt", 251, TimeoutError), # Valid DISCOVERY backend on Windows - (BackendType.SPACECLAIM, "nt", 241, TimeoutError), # Valid SPACECLAIM backend on Windows - (BackendType.DISCOVERY, "posix", 200, RuntimeError), # DISCOVERY backend on Linux - ( - BackendType.WINDOWS_SERVICE, - "nt", - 230, - TimeoutError, - ), # Invalid version for WINDOWS_SERVICE - (BackendType.SPACECLAIM, "nt", "invalid", ValueError), # Invalid version type - ], -) -def test_prepare_and_start_backend(backend_type, os_name, version, expected_exception, monkeypatch): - """Test the prepare_and_start_backend function with various scenarios.""" - - # Debugging: Print the test parameters - print(f"Testing backend_type={backend_type}, os_name={os_name}, version={version}") - - # Mock os.name to simulate different operating systems - monkeypatch.setattr("os.name", os_name) - - # Mock environment variables - monkeypatch.setenv("ANSYS_GEOMETRY_SERVICE_ROOT", "/fake/path") - - # Mock required functions - monkeypatch.setattr( - "ansys.geometry.core.connection.product_instance.get_available_ansys_installations", - lambda: { - 241: "/fake/path/to/ansys241", - 251: "/fake/path/to/ansys251", - 260: "/fake/path/to/ansys260", - }, - ) - monkeypatch.setattr( - "ansys.geometry.core.connection.product_instance.get_latest_ansys_installation", - lambda: (260, "/fake/path/to/ansys260"), - ) - monkeypatch.setattr( - "ansys.geometry.core.connection.product_instance._is_port_available", - lambda port, host="localhost": True, - ) - monkeypatch.setattr( - "ansys.geometry.core.connection.product_instance._wait_for_backend", - lambda host, port, timeout: 1, # Simulate immediate success - ) - monkeypatch.setattr( - "ansys.geometry.core.connection.product_instance.__start_program", - lambda args, local_env: type("MockProcess", (object,), {"pid": 1234}), - ) - monkeypatch.setattr( - "ansys.geometry.core.connection.product_instance._manifest_path_provider", - lambda version, - available_installations, - manifest_path: f"/fake/path/to/ansys{version}/Addins/ApiServer/manifest.xml", - ) - - # Run the function and check for exceptions - if expected_exception: - with pytest.raises(expected_exception): - prepare_and_start_backend(backend_type, version=version, timeout=0.1) - else: - modeler = prepare_and_start_backend(backend_type, version=version, timeout=0.1) - assert modeler is not None From 6ad82b1368be23bc88e07486c8378450acfcb137 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 11 Jul 2025 15:34:18 +0000 Subject: [PATCH 5/6] chore: auto fixes from pre-commit hooks --- tests/test_connection.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/test_connection.py b/tests/test_connection.py index 04e6089e3e..04ba1207ec 100644 --- a/tests/test_connection.py +++ b/tests/test_connection.py @@ -610,4 +610,3 @@ def test_get_common_env( # Assert environment variables are correctly set for key, value in expected_env.items(): assert env[key] == value - From f42d5b4f255fd7e162e5a2b247f10f696c2b0dd3 Mon Sep 17 00:00:00 2001 From: rward Date: Fri, 11 Jul 2025 15:42:19 -0400 Subject: [PATCH 6/6] more bug fix tests --- tests/integration/files/rci_std.x_t | 840 ++++++++++++++++++++++ tests/integration/files/reactorWNS.scdocx | Bin 0 -> 108793 bytes tests/integration/test_design_export.py | 66 +- 3 files changed, 904 insertions(+), 2 deletions(-) create mode 100644 tests/integration/files/rci_std.x_t create mode 100644 tests/integration/files/reactorWNS.scdocx diff --git a/tests/integration/files/rci_std.x_t b/tests/integration/files/rci_std.x_t new file mode 100644 index 0000000000..9579349ddc --- /dev/null +++ b/tests/integration/files/rci_std.x_t @@ -0,0 +1,840 @@ +**ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz************************** +**PARASOLID !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~0123456789************************** +**PART1; +MC=unknown; +MC_MODEL==unknown; +MC_ID=unknown; +OS=windows=windows; +OS_RELEASE=Microsoft Windows NT 6.2.9200.0; +FRU=Ansys Inc.; +APPL=SpaceClaim Discovery; +SITE=unknown; +USER=unknown; +FORMAT=text; +GUISE=transmit; +KEY=C:\Users\lfoley\AppData\Local\Temp\3c1eca7a-30be-48ad-a2d9-256a29625dd6; +FILE=C:\Users\lfoley\AppData\Local\Temp\3c1eca7a-30be-48ad-a2d9-256a29625dd6.x_t; +DATE=unknown; +**PART2; +SCH=SCH_3601212_36001; +USFLD_SIZE=0; +**PART3; +**END_OF_HEADER***************************************************************** +T51 : TRANSMIT FILE created by modeller version 360121217 SCH_2300000_200000 12 + 1 570 2 3 0 0 0 0 1e3 1e-8 0 4 0 1 0 1 1 5 6 7 8 9 10 11 0 0 0 0 81 4 2 570 12 + 1 13 0 0 0 0 14 0 0 70 3 0 4 T1 0 0 4 20 1 15 15 13 5 126 0 1 0 16 0 0 17 0 53 + 6 328 0 18 19 0 0 +-.263030639242926 -.3775151776490345 .00963683971338354 .039 +8882456012178 .1503837331804355 .0868240888334651 .984807753012208 -.97592648315 +1499 .17219989785329 .1338457868700532 137 7 404 0 1 20 0 21 +22 23 0 ?29 8 178 + 0 24 25 0 -.0663845486187906 .003568827549327945 .03714363764032175 19 9 1 0 1 + 17 0 26 V16 10 119 27 ?28 0 29 30 0 0 1 18 11 120 0 28 0 31 32 ?1 17 28 0 33 28 + 28 11 34 10 0 34 +18 31 117 0 35 11 36 37 ?1 29 32 128 0 11 0 38 .0664804093353 +63 -4070751024927905e-33 .11139137926837 29 38 130 0 39 32 40 .4449375697221275 + -.001886618020721565 .00429796609402257 18 39 83 0 41 42 43 38 ?1 29 40 132 0 4 +3 38 44 .4314408473341865 .0059057182831337 .0926830365188248 18 43 81 0 45 39 4 +6 40 ?1 29 44 134 0 46 40 47 .0656534706869198 .01045306711731906 -.054708007904 +2085 18 46 79 0 48 43 49 44 502117895282198e-21 1 29 47 136 0 49 44 50 .06531329 +14933816 .01240236992263892 .03620125684507415 18 49 78 0 51 46 52 47 5890132900 +31568e-21 1 29 50 138 0 53 47 54 .0283158802763923 -.0601486138624195 -.05418510 +34228978 18 53 95 0 55 36 56 50 502117895282198e-21 1 29 54 140 0 36 50 57 .4719 +68537837317 -.0761806354463114 .0149757133327444 18 36 97 0 58 31 53 54 ?1 29 57 + 142 0 42 54 37 .03010157898995165 -.0592751192972998 .03714363764032175 18 42 8 +8 0 59 56 39 57 589013290031568e-21 1 29 37 144 0 31 57 60 .066480409335363 -407 +0751024927905e-33 -.1379101557392412 29 60 146 0 56 37 61 .458471815449377 -.068 +3882991424561 .1033607837575466 18 56 90 0 62 53 42 60 ?1 29 61 148 0 63 60 64 - +.2208349257278815 .386270547487833 .00429796609402257 18 63 11 0 65 66 67 61 ?1 + 29 64 150 0 68 61 69 .0379322874690799 .0545965785810842 -.0541851034228978 18 + 68 23 0 70 71 72 64 502117895282198e-21 1 29 69 152 0 73 64 74 -.04187935701452 +205 .0516310399028299 -.0547080079042085 18 73 7 0 75 67 76 69 502117895282198e- +21 1 29 74 154 0 76 69 77 -.0433974131668282 .0503617846767271 .0362012568450741 +5 18 76 6 0 78 73 0 74 589013290136092e-21 1 29 77 156 0 71 74 79 -.170009903345 +712 .4468270612772695 .0149757133327444 18 71 25 0 80 81 68 77 ?1 29 79 158 0 82 + 77 83 -.210605921606305 -.376591593163256 .0926830365188248 18 82 45 0 84 85 86 + 79 ?1 29 83 160 0 72 79 87 -.170009903345712 .4312423886695585 .103360783757546 +6 18 72 18 0 88 68 66 83 ?1 29 87 162 0 66 83 89 .03628296962883905 .05570629174 +79718 .03714363764032175 18 66 16 0 90 72 63 87 589013290136092e-21 1 29 89 164 + 0 81 87 91 -.02191587832655345 -.0627641545993661 .03620125684507415 18 81 42 0 + 92 86 71 89 589013290073377e-21 1 29 91 166 0 86 89 93 -.02377411367239775 -.06 +2084107020149 -.0547080079042085 18 86 43 0 94 82 81 91 502117895282198e-21 1 29 + 93 168 0 67 91 95 -.2208349257278815 .3706858748801225 .0926830365188248 18 67 + 9 0 96 63 73 93 ?1 29 95 170 0 85 93 97 -.2241026439942465 -.384383929467111 .0 +0429796609402257 18 85 47 0 98 24 82 95 ?1 29 97 172 0 99 95 100 -.0662481677454 +723 .00555203528133531 -.0541851034228978 18 99 59 0 101 52 102 97 5021178952821 +98e-21 1 29 100 174 0 52 97 25 -.3019586344916055 -.3706464258309585 .0149757133 +327444 18 52 61 0 103 49 99 100 ?1 29 25 176 0 102 100 8 -.288461912103665 -.362 +8540895271025 .1033607837575466 18 102 54 0 104 99 24 25 ?1 17 104 0 105 106 107 + 102 84 108 0 109 +18 24 52 0 110 102 85 8 589013290073377e-21 1 17 110 0 111 92 + 101 24 112 113 114 115 +15 111 113 0 92 116 117 17 92 0 111 118 110 81 119 120 + 121 122 +17 101 0 111 110 118 99 94 123 124 125 +17 112 0 126 127 115 99 110 11 +3 128 0 -16 113 58 129 502117895282198e-21 110 130 131 0 0 0 1 133 114 363 0 110 + 132 133 0 +133 -.0662481677454722 .00555203528133524 -.0541851034228978 -.06638 +45486187906 .003568827549327915 .03714363764032175 0 1 17 115 0 126 112 109 24 1 +34 135 0 119 -15 126 57 0 112 136 0 17 109 0 126 115 127 102 106 137 0 138 -17 1 +34 0 139 140 119 102 115 135 0 0 +16 135 53 141 ?134 131 120 142 0 0 1 17 119 0 + 139 134 122 24 92 120 143 0 -15 139 50 0 119 144 0 17 122 0 139 119 140 81 145 + 146 0 147 -16 120 51 148 589013290073377e-21 92 135 149 0 0 0 1 133 143 370 0 1 +19 150 151 0 +151 -.0219158839707454 -.062764158838009 .0362012580806565 -.06638 +46115666812 .003568781331756695 .0371436364159977 0 1 137 150 369 0 1 121 143 15 +2 +153 154 0 ?137 151 371 0 1 143 155 156 +157 158 0 ?133 155 373 0 146 151 159 + 0 +159 -.02191587832655425 -.0627641545993649 .0362012568450743 -.2106059216063 +065 -.376591593163256 .0926830365188251 .1187119994962802 .880075790549158 141 1 +56 143 156 156 151 54 157 318 0 144 160 161 162 +.27599401900219 -.4624509908892 +13 .0259471162768133 .1503837331804355 .0868240888334651 .984807753012208 .53849 +131561644 .0398882456012178 -.5 .866025403784439 1387778780781446e-31 134 158 0 + 0 0 0 0 0 +163 164 136 163 2 63 2 32 5 FFF1 165 166 167 135 164 2 0 45 126 165 + .1187120138681688 3.141592653589795 .1193661816185342 3.090741285369475 .120316 +8632888518 3.03891401956116 .12122140675483 2.98960201943523 .1224186045396796 2 +.938122676107 .1235222189045984 2.89066740721778 .124912061015878 2.839778081927 +945 .1261676150349866 2.79380573990518 .1277229326366924 2.742625915393045 .1290 +61010782379 2.69859464833566 .1307806715571318 2.645524640867735 .13201039030314 +1 2.607574607935495 .1339494253051898 2.54933528609767 .1347453008087704 2.52543 +0998889395 .135542934391296 2.50152677027978 .136338279061436 2.47769113793558 . +13713160753819 2.45370965054805 .1389389154071086 2.399076630136125 .14026297368 +65986 2.357448330297255 .1419188274824164 2.305388402596645 .1432547087310204 2. +26014459394683 .144763257595073 2.20905285490534 .1459949084323724 2.16228696805 +76 .1473454163897756 2.11100806626968 .1484226315304692 2.06271394458445 .149573 +335068366 2.011125162934915 .150442063201607 1.961627817385075 .152288911078675 + 1.856400342814695 .1529395175344705 1.755634324591085 .153610992095418 1.651636 +25134364 .1530392286561595 1.54805482532612 .1524801071128365 1.446763622010364 + .150712177752679 1.342182262018454 .1498736629432528 1.292580156233332 .1487506 +477490644 1.24138399308185 .147689924578513 1.193027606828878 .1463581635753292 + 1.142487444926194 .1451257723746684 1.095718354481332 .1436340475966552 1.04605 +817894493 .1422641159973684 1.00045255202489 .140629467658154 .950885898757586 . +139174584837134 .906770188605079 .1374193756777532 .856766733339954 .13598279267 +90734 .815840491971392 .1341089060642728 .764289186543806 .1335935706166562 .750 +112120093836 .1329909578888652 .733633782496791 .1324521753787866 .7189008708223 +18 .1307427915826336 .672327420533954 .1285807310428242 .613420451076382 .127365 +484122717 .579774958993824 .1255161590710012 .528574293222877 .1240786850816706 + .48698942791096 .1223653224419706 .4374233452331215 .1209624565155018 .39365044 +30852455 .1193743039844272 .3440961385526635 .118072868099372 .2985267868469645 + .1166367077532068 .248240102215248 .1154912952428678 .200771155040691 .11427275 +99588834 .1502718052399205 .1133495205345474 .101569663515369 .1123776754072052 + .0503035045120625 .1117131131499236 -3681500914026715e-22 127 32 166 3 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 128 32 167 0 .03125 .0625 + .09375 .125 .15625 .1875 .203125 .21875 .25 .28125 .3125 .34375 .375 .4375 .5 . +5625 .59375 .625 .65625 .6875 .71875 .75 .760416666666667 .78125 .8125 .84375 .8 +75 .90625 .9375 .96875 1 14 144 49 168 ?169 136 139 5 157 +0 0 169 136 26 50 160 + 316 0 16 170 157 0 +0 0 .11139137926837 0 0 1 1 -612323399573677e-31 0 53 161 3 +20 0 171 157 172 0 +-.2495339168549855 -.3697228413451795 .0980219101381859 .039 +8882456012178 .1503837331804355 .0868240888334651 .984807753012208 -.97592648315 +1499 .17219989785329 .1338457868700532 141 162 151 162 162 157 14 171 67 173 ?17 +4 175 176 5 161 +0 0 174 175 26 51 172 322 0 177 161 178 179 +.26924565780822 .4 +6634715904114 -.01824541893558785 -.1503837331804355 .0868240888334652 .98480775 +3012208 .498603070015222 -.5 -.866025403784439 -12490009027033e-29 14 177 75 180 + ?18 181 182 5 172 -0 0 18 181 26 50 178 324 0 183 172 19 0 +0 0 -.1379101557392 +412 0 0 1 1 -612323399573677e-31 0 141 179 184 179 179 172 137 184 356 0 1 185 1 +24 186 +172 187 0 ?133 185 355 0 188 189 184 0 +184 .0656534706869191 .010453067 +11731768 -.0547080079042085 .0653132914933809 .01240236992263752 .03620125684507 +415 0 1 133 124 358 0 101 184 190 0 +190 -.0237741023831304 -.0620841113431919 - +.0547080081302507 -.0662481669953421 .00555204423205314 -.0541851032563292 0 1 1 +41 186 185 186 186 184 134 187 0 0 0 0 0 0 +191 192 136 191 2 3 2 2 5 FFF1 193 1 +94 195 135 192 2 0 45 6 193 .0893984390408674 -.04487427630136995 .1044128633204 +55 .000534750903004077 .11871199949628 .04487427630137005 127 2 194 3 3 128 2 19 +5 0 1 137 190 359 0 1 124 196 197 +153 198 0 ?133 196 360 0 94 190 132 0 +132 -. +0662481698090071 .00555203385606023 -.0541851034517082 -.0237741092899392 -.0620 +841039285782 -.0547080088459895 0 1 141 197 124 197 197 190 51 153 294 0 116 22 + 199 200 +0 0 -.1379101557392412 0 0 1 .066480409335363 1 -612323399573677e-31 0 + 134 198 0 0 0 0 0 0 +201 202 136 201 2 49 2 25 5 FFF1 203 204 205 135 202 2 0 4 +5 98 203 4.34668088910382 .0832021476089905 4.34556396470155 .0792311254290614 4 +.330607010102515 .0753988320439725 4.3231315233194 .0734834515860359 4.312247419 +543965 .071617960593848 4.301517869275505 .0697789594423512 4.287567765235535 .0 +680029103813565 4.26034930665152 .0645376087842251 4.22167914916096 .06139753368 +95921 4.2029203509192 .0598742909880708 4.181742804416615 .0584534927291582 4.16 +089307569797 .0570546877137317 4.138008674784275 .0557757779476377 4.11517839695 +152 .0544998928854478 4.090516996313885 .0533547826312378 4.065945312586965 .052 +2138382294039 4.039900806915485 .0512200280250388 3.987889282462885 .04923536437 +28434 3.93169223383386 .0478955606663506 3.875367409227705 .0465527106303453 3.8 +16634079962975 .0459024099611151 3.7579986673438 .0452531934337331 3.69843279189 +6265 .0453119554966349 3.668717895640435 .0453412694048044 3.63892478473591 .045 +5488004004467 3.60931668959269 .0457550426248266 3.579935414002775 .046136086751 +7762 3.521797114409335 .0468900791216146 3.46577642674051 .0483083198459692 3.41 +01230770548 .0497172609042729 3.358560147024195 .0517295645131844 3.332867663544 +48 .0527322437092163 3.308597299507835 .0538712387902994 3.28404594257773 .05502 +34207161693 3.261288259509465 .0562996516457736 3.23844926600697 .05758044239329 +78 3.21771017716575 .0589712192540694 3.1966365420794 .0603844310048278 3.178045 +185148685 .0618905014913767 3.158873646653275 .0634435720078154 3.14256926053776 + .0650775284072874 3.125852387619995 .0667528224839628 3.11233999168529 .0684941 +79089203 3.08440639701457 .0720940106677789 3.070721781754745 .0758965004174641 + 3.063787762719365 .0778232287766869 3.060596169378305 .0797915050007729 3.05742 +990670656 .0817441596375121 3.05798127849758 .083725052482912 127 25 204 3 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 128 25 205 0 .0625 .09375 .125 .1875 + .21875 .25 .28125 .3125 .375 .4375 .5 .53125 .5625 .625 .6875 .71875 .75 .78125 + .8125 .84375 .875 .9375 .96875 1 14 116 111 206 ?207 183 208 5 153 +0 0 207 183 + 26 51 22 292 0 209 210 153 211 +-.53849131561644 0 -.01824541893558785 0 -.1736 +481776669305 .984807753012208 .498603070015222 1 -603020831250949e-31 -106328842 +4787886e-32 51 199 296 0 169 153 212 213 +.26924565780822 -.46634715904114 -.018 +24541893558785 .1503837331804355 .0868240888334651 .984807753012208 .49860307001 +5222 -.5 .866025403784439 1387778780781446e-31 141 200 214 215 216 153 137 214 3 +31 0 1 217 218 219 +153 220 0 ?141 215 221 222 200 153 141 216 223 200 224 153 1 +37 223 342 0 1 225 226 227 +153 228 0 ?141 224 229 216 230 153 137 229 347 0 1 2 +31 232 233 +153 234 0 ?141 230 189 224 235 153 137 189 354 0 1 236 185 237 +153 + 238 0 ?141 235 190 230 239 153 141 239 133 235 240 153 137 133 364 0 1 114 128 + 241 +153 242 0 ?141 240 150 239 243 153 141 243 244 240 245 153 137 244 376 0 1 + 246 247 248 +153 249 0 ?141 245 250 243 251 153 137 250 381 0 1 252 253 254 +15 +3 255 0 ?141 251 256 245 222 153 137 256 390 0 1 257 258 259 +153 260 0 ?141 222 + 261 251 215 153 137 261 395 0 1 262 263 264 +153 265 0 ?133 262 394 0 78 266 26 +1 0 +261 .03628286916399295 .0557063571832335 .0371436346533826 -.04339740709982 +075 .0503617899047467 .03620125704383425 0 1 133 263 396 0 267 261 268 0 +268 -. +04339741401550505 .0503617916840618 .03620125808065635 .03628296107719305 .05570 +63693712303 .03714363641600285 0 1 141 264 262 264 264 261 134 265 0 0 0 0 0 0 + +269 270 136 269 2 51 2 26 5 FFF1 271 272 273 135 270 2 0 45 102 271 .99349114319 +3842 .175053790392624 .995014492682606 .179118865746528 1.012111729347564 .18324 +86532600515 1.020315770395976 .185230315381604 1.032034624149634 .18720564722095 +25 1.04330184446533 .1891048516566765 1.057704629339812 .1909797410654665 1.0716 +61789889022 .192796621114606 1.0884048992038 .1945702668141875 1.104862245582534 + .1963136408244975 1.123781573133674 .197991056315815 1.142490612834582 .1996498 +273761045 1.16332576491393 .201219845502232 1.183883055675266 .202768925585567 1 +.206272375299722 .204212784145176 1.251637709211294 .207138336452099 1.302413446 +59527 .2095010018273255 1.328241673329644 .2107028249844635 1.355040809004406 .2 +117358132140605 1.38226181840296 .212785062811052 1.4101700546699 .2136475405897 +155 1.46840999633822 .2154473911800265 1.52816643114752 .2163926499625755 1.5900 +7356023875 .2173719295608755 1.652071577152495 .217408001864909 1.71451255073545 +5 .2174443318944055 1.77576068158754 .216521872541042 1.836092121385805 .2156132 +19490418 1.89387007701884 .2137964135701815 1.921935300882285 .21291391324096 1. +94908356763921 .211825793091139 1.975669985395695 .2107601922138745 2.0011267240 +4513 .209507302456454 2.026009106588515 .2082826804552575 2.04956124666138 .2068 +905942113995 2.07288121081539 .205512231090018 2.094593458269645 .20398633026448 +6 2.116046909598625 .202478617202429 2.135593619854135 .200848903528141 2.155071 +34887416 .1992249411880295 2.1723311565296 .1975064533137355 2.18983384310638 .1 +95763782986799 2.20475758823506 .1939543010151355 2.220015154181025 .19210434376 +42825 2.23236477144797 .1902148802437755 2.24486116604241 .188302960124011 2.254 +31552403844 .1863600230562785 2.26397011909886 .184375935863396 2.27030783535186 +5 .182385178261686 2.283583286431005 .1782151895627745 2.282051187513515 .174111 +4127830755 127 26 272 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 128 26 + 273 0 .0625 .09375 .125 .15625 .1875 .21875 .25 .3125 .34375 .375 .4375 .5 .562 +5 .625 .65625 .6875 .71875 .75 .78125 .8125 .84375 .875 .90625 .9375 1 17 267 0 + 274 275 276 66 78 277 263 0 -137 268 397 0 1 263 278 279 +280 281 0 ?133 278 39 +9 0 282 268 283 0 +283 -.0433974131668272 .0503617846767272 .0362012568450742 -. +220834925727881 .370685874880123 .0926830365188251 .1187119994962802 .8800757905 +49158 141 279 263 279 279 268 54 280 282 0 284 0 285 286 +-.53849131561644 -.007 +79233630385521 .0259471162768133 0 -.1736481776669305 .984807753012208 .53849131 +561644 .0398882456012178 1 -603020831250949e-31 -1063288424787886e-32 134 281 0 + 0 0 0 0 0 +287 288 136 287 2 63 2 32 5 FFF1 289 290 291 135 288 2 0 45 126 289 + .118712013868168 3.141592653589795 .1193661816113404 3.09074128592861 .12031686 +32888512 3.038914019561165 .1212214067410336 2.98960202002843 .1224186045396788 + 2.938122676107 .123522218898943 2.890667407460935 .124912061015877 2.8397780819 +27955 .1261676149852934 2.793805741692075 .1277229326366912 2.74262591539306 .12 +9061010772275 2.698594648537615 .1307806715571306 2.645524640867755 .13201039020 +61232 2.607574611008065 .1339494253051884 2.54933528609769 .1347453008066034 2.5 +25430998889345 .135542934391295 2.501526770279805 .13633827882618 2.477691145050 +735 .1371316075381884 2.45370965054808 .138938915465049 2.399076628376375 .14026 +2973686597 2.357448330297285 .1419188275883694 2.30538839918806 .143254708731018 +8 2.26014459394686 .144763257654807 2.209052852679115 .145994908432371 2.1622869 +68057635 .147345416373352 2.11100806684733 .1484226315304678 2.062713944584495 . +1495733350574468 2.0111251635939 .150442063201606 1.96162781738512 .152288911084 +818 1.856400342386255 .15293951753447 1.755634324591145 .1536109920965645 1.6516 +3625062616 .1530392286561595 1.548054825326185 .1524801071035315 1.4467636212294 +84 .15071217775268 1.342182262018526 .1498736629376742 1.292580156012636 .148750 +6477490664 1.24138399308193 .1476899246097724 1.193027608222176 .146358163575331 +6 1.142487444926274 .1451257724320012 1.09571835646552 .1436340475966578 1.04605 +8178945006 .1422641160486926 1.000452553664092 .1406294676581572 .95088589875766 +4 .139174584846766 .906770188823314 .1374193756777562 .856766733340036 .13598279 +25994782 .815840489749805 .1341089060642762 .764289186543892 .133593570561935 .7 +50112118597189 .1329909578888688 .733633782496876 .1324521757143996 .71890087999 +9843 .1307427915826372 .672327420534043 .128580731083601 .613420452145002 .12736 +54841227206 .579774958993921 .1255161590962904 .528574294014841 .124078685081674 +2 .486989427911055 .1223653224150804 .4374233443832415 .1209624565155054 .393650 +443085344 .119374303989876 .344096138734913 .1180728680993754 .2985267868470715 + .1166367077793532 .2482401031401415 .115491295242871 .2007711550408055 .1142727 +59992263 .1502718067920345 .11334952053455 .1015696635154886 .112377675416781 .0 +503035052368421 .111713113149926 -3681499644865995e-22 127 32 290 3 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 128 32 291 0 .03125 .0625 .09 +375 .125 .15625 .1875 .203125 .21875 .25 .28125 .3125 .34375 .375 .4375 .5 .5625 + .59375 .625 .65625 .6875 .71875 .75 .760416666666667 .78125 .8125 .84375 .875 . +90625 .9375 .96875 1 14 284 13 292 ?209 293 274 5 280 +0 0 209 293 26 51 285 284 + 0 293 280 294 295 +-.53849131561644 0 -.01824541893558785 0 -.1736481776669305 + .984807753012208 .578379561217658 1 -603020831250949e-31 -1063288424787886e-32 + 141 286 268 286 286 280 14 293 20 296 ?284 297 298 5 285 +0 0 284 297 26 54 294 + 286 0 297 285 299 300 +-.53849131561644 .00779233630385521 -.062437954147989 0 + -.1736481776669305 .984807753012208 .53849131561644 .0398882456012178 1 -603020 +831250949e-31 -1063288424787886e-32 141 295 266 295 295 285 137 266 392 0 1 258 + 262 301 +285 302 0 ?133 258 391 0 303 256 266 0 +266 .03628296962884005 .055706 +291747972 .03714363764032175 .03793228746908085 .0545965785810843 -.054185103422 +8977 0 1 141 301 258 301 301 266 134 302 0 0 0 0 0 0 +304 305 136 304 2 3 2 2 5 + FFF1 306 307 308 135 305 2 0 45 6 306 .1117129805215384 .0448742763013699 .0966 +173092569265 -.000682341082552607 .0822641800421002 -.04487427630137 127 2 307 3 + 3 128 2 308 0 1 17 303 0 298 309 310 68 90 311 258 0 -15 298 21 0 303 293 0 17 + 309 0 298 312 303 71 313 314 0 0 +17 310 0 298 303 312 66 275 315 0 267 -17 90 + 0 117 78 70 66 303 311 257 310 +16 311 22 316 502117895282198e-21 90 314 317 0 + 0 0 1 81 1 316 561 318 311 0 0 319 320 321 16 314 24 319 ?309 322 311 323 0 0 1 + 16 317 19 320 ?324 311 315 325 0 0 1 81 1 320 562 318 317 0 0 316 326 327 17 32 +4 0 328 96 96 72 329 317 0 275 +16 315 17 326 ?275 317 277 330 0 0 1 31 325 246 + 0 317 331 332 0 +-.1954224145367965 .4009641317748415 .0980219101381857 -.77078 +7166720396 .627413857573262 .1106299911605442 277555756156289e-31 -.173648177666 +9305 .984807753012208 .0398882456012178 31 331 244 0 333 334 325 0 +-.1954224145 +367965 .416548804382551 .00963683971338354 -.770787166720396 .627413857573262 .1 +106299911605442 277555756156289e-31 -.1736481776669305 .984807753012208 .0398882 +456012178 133 332 256 0 149 325 335 0 +335 -.02377411367239855 -.062084107020148 +1 -.0547080079042084 -.224102643994247 -.384383929467111 .00429796609402275 .089 +3984390408678 .880075790549157 16 149 48 336 ?337 120 338 332 0 0 1 31 335 257 0 + 1 332 339 340 +.2624972966142495 -.470243327193069 -.062437954147989 .150383733 +1804355 .0868240888334651 .984807753012208 -.5 .866025403784439 1387778780781446 +e-31 .498603070015222 30 339 259 0 137 335 341 0 +-.288461912103665 -.3628540895 +271025 .1033607837575466 -.1503837331804355 -.0868240888334651 -.984807753012208 + 141 340 332 340 340 335 16 137 62 342 ?106 123 130 339 0 0 1 133 341 261 0 130 + 339 343 0 +343 -.0662481677454727 .00555203528133631 -.0541851034228977 -.30195 +86344916065 -.370646425830958 .0149757133327447 .0822641800420998 .8800757905491 +58 16 130 60 344 ?127 137 113 341 0 0 1 31 343 262 0 1 341 345 346 +.26249729661 +42495 -.470243327193069 -.062437954147989 .1503837331804355 .0868240888334651 .9 +84807753012208 -.5 .866025403784439 1387778780781446e-31 .578379561217658 31 345 + 267 0 108 343 347 0 +-.2495339168549855 -.3697228413451795 .0980219101381859 -. +1503837331804355 -.0868240888334651 -.984807753012208 -.5 .866025403784439 19428 +90293094025e-31 .0398882456012178 141 346 341 346 346 343 16 108 69 348 ?104 349 + 350 345 0 0 1 31 347 269 0 350 345 351 0 +-.263030639242926 -.3775151776490345 + .00963683971338354 -.157962755984639 -.981228196077526 .1106299911605442 .15038 +37331804355 .0868240888334651 .984807753012208 .0398882456012178 16 350 66 352 ? +353 108 123 347 0 0 1 31 351 271 0 131 347 142 0 +-.2495339168549855 -.369722841 +3451795 .0980219101381857 -.157962755984639 -.981228196077526 .1106299911605442 + .1503837331804355 .0868240888334651 .984807753012208 .0398882456012178 16 131 5 +5 354 ?138 113 135 351 0 0 1 133 142 276 0 135 351 355 0 +355 -.0663845486187915 + .003568827549329125 .03714363764032195 -.288461912103666 -.3628540895271025 .10 +3360783757547 .1117129805215384 .880075790549158 31 355 277 0 1 142 217 356 +.27 +599401900219 -.462450990889213 .0259471162768133 .1503837331804355 .086824088833 +4651 .984807753012208 -.5 .866025403784439 1387778780781446e-31 .578379561217658 + 133 217 330 0 55 355 214 0 +214 .065653470856666 .01045306605117986 -.054708007 +8840235 .02831587874711445 -.0601486145823503 -.0541851033916724 0 1 141 356 142 + 356 356 355 17 55 0 357 59 358 53 48 359 217 360 +15 357 114 0 51 116 111 17 59 + 0 357 51 55 42 361 362 225 363 +17 358 0 357 55 51 46 188 364 236 0 +17 48 0 36 +5 366 360 46 55 359 218 367 -16 359 101 368 502117895282198e-21 55 369 370 0 0 0 + 1 17 360 0 365 48 371 53 372 373 0 361 -15 365 100 0 48 374 0 17 371 0 365 360 + 366 36 375 369 0 376 -17 372 0 377 378 361 36 360 373 0 0 +16 373 96 379 ?372 3 +70 362 380 0 0 1 17 361 0 377 372 363 53 59 362 226 0 -15 377 93 0 361 381 0 17 + 363 0 377 361 378 42 382 383 0 384 -16 362 94 385 502117895282198e-21 59 373 38 +6 0 0 0 1 133 226 343 0 361 223 387 0 +387 .03010157898995085 -.0592751192973013 + .0371436376403218 .02831588027639155 -.0601486138624209 -.0541851034228977 0 1 + 137 387 344 0 1 226 231 388 +389 390 0 ?133 231 346 0 51 387 229 0 +229 .030101 +68589097335 -.0592750650098217 .03714363465337745 .0653132929874757 .01240236205 +44465 .03620125704383425 0 1 141 388 226 388 388 387 51 389 302 0 381 391 392 39 +3 +.26924565780822 .46634715904114 -.01824541893558785 -.1503837331804355 .08682 +40888334652 .984807753012208 .578379561217658 -.5 -.866025403784439 -12490009027 +033e-29 134 390 0 0 0 0 0 0 +394 395 136 394 2 3 2 2 5 FFF1 396 397 398 135 395 + 2 0 45 6 396 .111712980521538 .04487427630137005 .0966173092569314 -.0006823410 +8253674 .0822641800421 -.0448742763013699 127 2 397 3 3 128 2 398 0 1 14 381 92 + 399 ?181 374 377 5 389 +0 0 181 374 26 53 391 300 0 400 212 389 0 +-.1954224145 +367965 .416548804382551 .00963683971338354 .0398882456012178 0 -.173648177666930 +5 .984807753012208 .637092727645783 .75907717770856 .1338457868700534 53 392 304 + 0 401 389 402 0 +.4449563313917815 -.03124129042966125 .0980219101381859 .03988 +82456012178 -.1503837331804355 .0868240888334652 .984807753012208 .3388337555057 +155 -.931277075561849 .1338457868700532 141 393 387 393 393 389 14 401 103 403 ? +374 404 405 5 392 +0 0 374 404 26 54 402 306 0 181 392 406 407 +.26249729661425 + .470243327193069 .0259471162768133 -.1503837331804355 .0868240888334652 .984807 +753012208 .53849131561644 .0398882456012178 -.5 -.866025403784439 -1249000902703 +3e-29 14 181 85 408 ?177 381 409 5 402 +0 0 177 381 26 51 406 308 0 136 402 410 + 411 +.26924565780822 -.46634715904114 -.01824541893558785 .1503837331804355 .08 +68240888334651 .984807753012208 .578379561217658 -.5 .866025403784439 1387778780 +781446e-31 141 407 412 407 407 402 137 412 349 0 1 232 413 414 +402 415 0 ?133 2 +32 348 0 384 229 412 0 +412 .0653132979862499 .0124023671539473 .036201258080656 +3 .03010165048948815 -.0592751507029864 .0371436364159977 0 1 133 413 351 0 416 + 412 417 0 +417 .0653132914933812 .01240236992263802 .03620125684507415 .4314408 +47334187 .00590571828313276 .092683036518825 .1187119994962798 .880075790549158 + 141 414 232 414 414 412 134 415 0 0 0 0 0 0 +418 419 136 418 2 63 2 32 5 FFF1 4 +20 421 422 135 419 2 0 45 126 420 .1187120138681678 3.141592653589795 .119366181 +6088636 3.09074128612113 .120316863288851 3.038914019561155 .1212214067306574 2. +989602020539355 .1224186045396786 2.938122676106995 .1235222189089356 2.89066740 +697154 .1249120610158772 2.83977808192794 .1261676150290592 2.79380574020115 .12 +77229326366916 2.742625915393045 .1290610107886424 2.698594648042685 .1307806715 +57131 2.645524640867735 .132010390403171 2.60757460491973 .1339494253051892 2.54 +9335286097665 .1347453008089242 2.525430998889395 .1355429343912956 2.5015267702 +79775 .1363382793857914 2.477691128210355 .137131607538189 2.45370965054805 .138 +938915660946 2.39907662228124 .140262973686598 2.357448330297255 .14191882762481 +74 2.30538839796227 .1432547087310196 2.260144593946825 .1447632576418624 2.2090 +52853107765 .145994908432372 2.1622869680576 .1473454163669448 2.11100806715953 + .1484226315304686 2.06271394458445 .149573335043668 2.01112516418498 .150442063 +2016065 1.961627817385075 .152288911086467 1.85640034270471 .15293951753447 1.75 +5634324591085 .153610992091097 1.65163625088069 .153039228656159 1.5480548253261 +2 .152480107110297 1.446763621237572 .150712177752679 1.34218226201846 .14987366 +2923965 1.292580155387662 .1487506477490646 1.241383993081856 .1476899246022274 + 1.193027607878222 .1463581635753294 1.142487444926198 .145125772426407 1.095718 +35630656 .1436340475966554 1.046058178944932 .142264116068239 1.000452554289766 + .1406294676581544 .950885898757587 .139174584901561 .906770190455494 .137419375 +6777534 .856766733339959 .1359827928310774 .815840496289515 .134108906064273 .76 +4289186543807 .1335935709029334 .750112127931896 .1329909578888654 .733633782496 +793 .1324521770743826 .718900917179262 .130742791582634 .672327420533954 .128580 +7306882866 .613420441215426 .1273654841227172 .57977495899383 .1255161590819894 + .528574293595855 .1240786850816708 .486989427910962 .1223653224122292 .43742334 +4307056 .120962456515502 .3936504430852445 .1193743039763538 .3440961382985375 . +1180728680993722 .2985267868469655 .1166367077748786 .2482401029425375 .11549129 +5242868 .200771155040694 .1142727600085306 .150271807479171 .1133495205345474 .1 +015696635153712 .1123776754246272 .0503035058308055 .1117131131499242 -368150088 +9569395e-22 127 32 421 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 3 128 32 422 0 .03125 .0625 .09375 .125 .15625 .1875 .203125 .21875 .25 .28 +125 .3125 .34375 .375 .4375 .5 .5625 .59375 .625 .65625 .6875 .71875 .75 .760416 +666666667 .78125 .8125 .84375 .875 .90625 .9375 .96875 1 16 416 80 423 ?424 425 + 364 413 0 0 1 31 417 352 0 1 413 236 426 +.26249729661425 .470243327193069 .025 +9471162768133 -.1503837331804355 .0868240888334652 .984807753012208 -.5 -.866025 +403784439 -12490009027033e-29 .498603070015222 133 236 353 0 358 417 189 0 +189 + .0653132914933816 .01240236992263894 .03620125684507415 .0656534706869198 .0104 +5306711731908 -.0547080079042085 0 1 141 426 413 426 426 417 81 1 423 539 318 41 +6 0 0 427 428 429 17 424 0 182 430 188 43 431 416 0 0 +16 425 82 427 ?432 433 41 +6 434 0 0 1 16 364 77 428 502117895282198e-21 358 416 349 0 0 0 1 81 1 428 540 3 +18 364 0 0 423 435 436 16 349 72 435 ?98 364 108 437 0 0 1 81 1 435 541 318 349 + 0 0 428 348 438 17 98 0 105 107 106 85 103 349 0 353 +31 437 189 0 349 439 434 + 0 +-.263030639242926 -.3775151776490345 .00963683971338354 .1503837331804355 .0 +868240888334651 .984807753012208 .975926483151499 -.172199897853289 -.1338457868 +700534 .0398882456012178 31 439 187 0 369 440 437 0 +.458453053779722 -.03903362 +67335164 .00963683971338354 .928749922705035 .353814338504263 .1106299911605442 + -.150383733180435 .0868240888334652 .984807753012208 .0398882456012178 30 434 1 +91 0 425 437 441 0 +.4449375697221275 -.00188661802072152 .00429796609402257 -.1 +503837331804355 .0868240888334652 .984807753012208 31 441 193 0 386 434 442 0 +. +4449563313917815 -.03124129042966115 .0980219101381857 .928749922705035 .3538143 +38504263 .1106299911605442 -.150383733180435 .0868240888334652 .984807753012208 + .0398882456012178 16 386 91 443 ?444 362 383 441 0 0 1 30 442 195 0 370 441 445 + 0 +.458471815449377 -.0683882991424561 .1033607837575466 .1503837331804355 -.08 +68240888334652 -.984807753012208 16 370 98 446 ?376 359 373 442 0 0 1 31 445 200 + 0 447 442 448 0 +.4449563313917815 -.03124129042966125 .0980219101381859 .15038 +37331804355 -.0868240888334652 -.984807753012208 -.5 -.866025403784439 -13877787 +80781446e-31 .0398882456012178 16 447 105 449 ?62 450 369 445 0 0 1 31 448 204 0 + 450 445 451 0 +.458453053779722 -.0390336267335164 .00963683971338354 -.1503837 +331804355 .0868240888334652 .984807753012208 -.3388337555057155 .931277075561849 + -.1338457868700532 .0398882456012178 16 450 108 452 ?41 29 447 448 0 0 1 31 451 + 208 0 29 448 30 0 +0 0 -.1379101557392412 0 0 1 1 -612323399573677e-31 0 .06648 +0409335363 16 29 116 453 ?35 10 450 451 0 0 1 31 30 214 0 10 451 454 0 +0 0 .111 +39137926837 0 0 1 1 -612323399573677e-31 0 .066480409335363 30 454 216 0 455 30 + 323 0 +-.2208349257278815 .386270547487833 .00429796609402257 0 -.1736481776669 +305 .984807753012208 16 455 10 456 ?457 458 282 454 0 0 1 133 323 220 0 314 454 + 459 0 +459 .03793228746908085 .0545965785810845 -.0541851034228977 -.1700099033 +457115 .4468270612772705 .01497571333274464 .0822641800421007 .880075790549158 3 +1 459 221 0 1 323 460 461 +-.53849131561644 .00779233630385521 -.062437954147989 + 0 -.1736481776669305 .984807753012208 1 -603020831250949e-31 -1063288424787886e +-32 .578379561217658 31 460 226 0 462 459 463 0 +-.1954224145367965 .40096413177 +48415 .0980219101381859 0 .1736481776669305 -.984807753012208 1 603020831250949e +-31 1063288424787886e-32 .0398882456012178 141 461 323 461 461 459 16 462 33 464 + ?88 465 333 460 0 0 1 30 463 228 0 322 460 466 0 +-.170009903345712 .4312423886 +695585 .1033607837575466 0 .1736481776669305 -.984807753012208 16 322 26 467 ?46 +8 469 314 463 0 0 1 31 466 233 0 465 463 470 0 +-.1954224145367965 .416548804382 +551 .00963683971338354 0 -.1736481776669305 .984807753012208 -.637092727645783 - +.759077177708559 -.1338457868700532 .0398882456012178 16 465 36 471 ?65 472 462 + 466 0 0 1 30 470 237 0 338 466 330 0 +-.2241026439942465 -.384383929467111 .004 +29796609402257 .1503837331804355 .0868240888334651 .984807753012208 16 338 46 47 +3 ?107 149 146 470 0 0 1 133 330 241 0 315 470 334 0 +334 .03628296962884005 .05 +57062917479721 .03714363764032185 -.170009903345711 .4312423886695595 .103360783 +757547 .1117129805215384 .880075790549157 31 334 242 0 1 330 331 474 +-.53849131 +561644 -.00779233630385521 .0259471162768133 0 -.1736481776669305 .9848077530122 +08 1 -603020831250949e-31 -1063288424787886e-32 .578379561217658 141 474 330 474 + 474 334 81 1 473 552 318 338 0 0 336 475 476 17 107 0 105 104 98 82 477 338 0 1 +45 +16 146 44 475 ?145 338 472 155 0 0 1 81 1 475 553 318 146 0 0 473 478 479 17 + 145 0 480 477 147 82 122 146 0 0 +16 472 41 478 502117895282198e-21 118 146 465 + 0 0 0 1 81 1 478 554 318 472 0 0 475 471 481 17 118 0 111 101 92 86 147 472 246 + 0 +17 147 0 480 145 482 81 118 472 247 0 -133 246 375 0 118 159 244 0 +244 -.02 +191587832655345 -.062764154599366 .03620125684507415 -.0237741136723978 -.062084 +1070201491 -.0547080079042085 0 1 31 159 374 0 1 155 246 483 +.27599401900219 -. +462450990889213 .0259471162768133 .1503837331804355 .0868240888334651 .984807753 +012208 -.5 .866025403784439 1387778780781446e-31 .498603070015222 141 483 155 48 +3 483 159 15 480 40 0 147 169 0 17 482 0 480 147 477 86 337 149 0 118 -133 247 3 +77 0 147 244 484 0 +484 -.02377411367239875 -.0620841070201478 -.054708007904208 +5 -.0219158783265544 -.0627641545993649 .03620125684507415 0 1 137 484 378 0 1 2 +47 252 485 +199 486 0 ?133 252 380 0 70 484 250 0 +250 -.0418793576709397 .05163 +10393703915 -.0547080079200217 .0379323197799212 .0545965561323351 -.05418510269 +70571 0 1 141 485 247 485 485 484 134 486 0 0 0 0 0 0 +487 488 136 487 2 3 2 2 5 + FFF1 489 490 491 135 488 2 0 45 6 489 .0893984390408686 -.04487427630137015 .10 +4412863320473 .000534750903055078 .1187119994962814 .0448742763013698 127 2 490 + 3 3 128 2 491 0 1 17 70 0 117 90 492 68 75 469 252 313 +15 117 112 0 78 116 0 1 +7 492 0 117 70 78 73 493 494 495 0 +17 75 0 496 497 313 73 70 469 253 498 -16 46 +9 29 499 502117895282198e-21 70 333 322 0 0 0 1 17 313 0 496 75 500 68 309 314 0 + 303 -15 496 28 0 75 297 0 17 500 0 496 313 497 71 501 333 0 468 -17 497 0 496 5 +00 75 63 498 458 0 502 +17 501 0 503 80 80 63 500 333 0 497 +16 333 30 504 ?501 + 462 469 331 0 0 1 17 468 0 505 65 88 71 312 322 0 309 +15 505 35 0 65 506 0 17 + 65 0 505 457 468 63 80 465 0 501 +17 88 0 505 468 457 72 96 462 0 312 +17 312 0 + 298 310 309 72 468 322 0 324 -17 457 0 505 88 65 67 502 455 0 507 +17 96 0 328 + 324 324 67 88 462 0 329 -15 328 32 0 96 508 0 17 329 0 274 276 275 67 324 317 0 + 457 -15 274 14 0 267 284 0 17 276 0 274 267 329 76 507 282 0 493 -17 275 0 274 + 329 267 72 310 315 0 0 +17 507 0 509 502 493 67 276 282 0 0 +16 282 8 510 ?507 + 455 494 278 0 0 1 17 493 0 509 507 498 76 492 494 20 0 -15 509 4 0 493 209 0 17 + 498 0 509 493 502 73 497 458 0 492 -16 494 5 511 502117895282198e-21 492 282 0 + 0 0 0 1 133 20 403 0 493 221 7 0 +7 -.04187935701452105 .05163103990283 -.05470 +80079042085 -.04339741316682725 .0503617846767272 .03620125684507415 0 1 137 221 + 402 0 1 495 20 512 +153 513 0 ?133 495 401 0 492 283 221 0 +221 -.0433974131668 +2815 .0503617846767271 .03620125684507415 -.0418793570145221 .0516310399028299 - +.0547080079042085 0 1 141 512 495 512 512 221 134 513 0 0 0 0 0 0 +514 515 136 5 +14 2 3 2 2 5 FFF1 516 517 518 135 515 2 0 45 6 516 2.282051307981985 .1741114125 +843155 2.265064869034745 .128626760864213 2.25228560487235 .0832021478350327 127 + 2 517 3 3 128 2 518 0 1 31 283 400 0 1 278 495 519 +-.53849131561644 -.00779233 +630385521 .0259471162768133 0 -.1736481776669305 .984807753012208 1 -60302083125 +0949e-31 -1063288424787886e-32 .498603070015222 141 519 278 519 519 283 81 1 511 + 568 318 494 0 0 510 13 520 80 1 318 12 521 8017 0 0 0 0 0 0 0 0 0 TTTTTTTTTTTTT +F3 81 1 510 567 318 282 0 0 456 511 522 81 1 13 569 318 1 523 2 511 0 524 84 5 5 +20 0:45181 1 523 476 525 1 0 13 0 0 526 84 5 524 Solid80 1 525 527 528 8040 0 0 + 0 0 3 5 0 0 0 TTTFFFFFFFFFFF2 83 3 526 .56078431372549 .686274509803922 .560784 +31372549 79 17 528 SDL/TYSA_COLOUR_281 1 456 566 318 455 0 0 529 510 530 84 5 52 +2 0:44881 1 529 565 318 458 0 0 531 456 532 84 5 530 0:44516 458 12 529 ?497 277 + 455 533 0 0 1 81 1 531 564 318 277 0 0 326 529 534 84 5 532 0:44216 277 15 531 + 589013290136092e-21 78 315 458 0 0 0 1 81 1 326 563 318 315 0 0 320 531 535 84 + 5 534 0:43984 5 535 0:43617 78 0 117 492 90 76 267 277 262 276 +133 533 385 0 4 +58 536 537 0 +537 -.04187935701452105 .05163103990283 -.0547080079042085 -.22083 +4925727881 .3862705474878335 .004297966094022765 .0893984390408676 .880075790549 +158 137 536 383 0 1 253 533 538 +294 539 0 ?31 537 386 0 1 533 257 540 +-.538491 +31561644 .00779233630385521 -.062437954147989 0 -.1736481776669305 .984807753012 +208 1 -603020831250949e-31 -1063288424787886e-32 .498603070015222 133 257 389 0 + 90 537 256 0 +256 .0379322874690799 .0545965785810842 -.0541851034228978 .03628 +296962883895 .0557062917479719 .03714363764032175 0 1 141 540 533 540 540 537 13 +3 253 382 0 75 250 536 0 +536 .03793228980251085 .0545965497838358 -.05418510308 +49913 -.04187935697486375 .051631039467133 -.0547080079810336 0 1 141 538 253 53 +8 538 536 134 539 0 0 0 0 0 0 +541 542 136 541 2 61 2 31 5 FFF1 543 544 545 135 + 542 2 0 45 122 543 .0822641309443943 1337076257258056e-22 .0816312184556912 -.0 +488574003125771 .0812742426130731 -.0978342539339453 .0809173264779708 -.1468029 +157229324 .080831528873911 -.196678885549247 .0807471572087843 -.245725926782667 + .0809238561867774 -.2965219701361665 .0810910759912293 -.34459301464916 .081495 +4320055929 -.39519998227132 .0818739727936761 -.442576058614202 .082471044716775 +8 -.493522738262178 .0830163830112223 -.540055114533878 .0837669799645557 -.5914 +82708753279 .0844217848463552 -.636347052532607 .0852771187977004 -.687939714051 +358 .0859800254070461 -.730338151197726 .0869301778384561 -.783939781202427 .087 +4860477136615 -.815298466815964 .0886666177944072 -.880555548859969 .08981399086 +20865 -.943977635895526 .0903963714031463 -.976830872486947 .0913347340383324 -1 +.02976576211464 .0920574051196477 -1.073012804095486 .092914583557519 -1.1243092 +13826212 .093607576591118 -1.17019201339349 .0943719366141675 -1.22079999361037 + .0949838333451815 -1.267896812766524 .0956327780269388 -1.317845159881282 .0961 +326989448647 -1.36554509000546 .097193595748842 -1.466770507074686 .097635186980 +8429 -1.563449478901045 .0980857289566196 -1.66208806550826 .0979162977546123 -1 +.76110927031242 .0977518474796139 -1.857219456439885 .0969913133036819 -1.959331 +081737505 .0966377310234422 -2.006804111161155 .0961433005276055 -2.057376458585 +115 .0956866262977075 -2.104086942684375 .0950848573881759 -2.155911415545185 .0 +94568413877755 -2.20038764598186 .0938795228206001 -2.254139808835215 .093427135 +6299654 -2.289438263781335 .0926003219136646 -2.35168239249164 .0921185795176946 + -2.38794888772363 .0919523348170344 -2.40053357899529 .0915866949949968 -2.4282 +12441892515 .0913101652949414 -2.449613699763335 .090595475888767 -2.50492512662 +2805 .0900922747267131 -2.54813339473981 .0894801328711118 -2.60069605042705 .08 +90494582453903 -2.64636380013739 .0885606544337263 -2.698195435426185 .088266086 +5004672 -2.745344948956865 .0879447278847776 -2.796782667350075 .087839656733965 +2 -2.84480136471424 .087729172371635 -2.895293960609365 .0878526934441512 -2.943 +659417934385 .0879807589518858 -2.9938042776168 .0883629245245646 -3.04285240693 +081 .0887480197627191 -3.092276537175755 .0893984381499944 -3.141592653589795 12 +7 31 544 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 128 31 54 +5 0 .03125 .0625 .09375 .125 .15625 .1875 .21875 .25 .28125 .3125 .34375 .375 .4 +0625 .4375 .5 .5625 .625 .65625 .6875 .71875 .75 .765625 .78125 .8125 .84375 .87 +5 .90625 .9375 .96875 1 79 13 521 SDL/TYSA_NAME17 502 0 509 498 507 63 457 455 0 + 0 -14 209 3 546 ?0 284 509 5 22 -0 0 0 284 26 81 1 546 524 318 209 547 0 292 27 + 548 13 26 2 0 0 0 0 0 0 9 16 14 16 123 549 ?183 0 33 5 160 +0 0 183 0 26 81 1 5 +49 501 318 16 550 0 0 551 552 14 183 121 551 ?116 16 553 5 178 -0 0 116 16 26 15 + 33 124 0 28 16 0 81 1 551 502 318 183 554 0 549 206 555 15 553 122 0 556 183 0 + 17 556 0 553 556 556 31 35 29 0 0 -17 35 0 557 35 35 31 556 29 0 556 +15 557 11 +5 0 35 116 357 81 1 554 478 527 183 0 551 550 558 559 81 1 206 503 318 116 558 0 + 551 560 561 84 5 555 0:25381 1 558 479 527 116 0 206 554 562 563 81 1 560 504 3 +18 207 562 0 206 564 565 84 5 561 0:25614 207 109 560 ?404 116 566 5 170 +0 0 40 +4 116 26 81 1 562 480 527 207 0 560 558 567 568 81 1 564 505 318 404 567 0 560 4 +03 569 84 5 565 0:25914 404 106 564 ?401 207 570 5 571 +0 0 401 207 26 81 1 567 + 481 527 404 0 564 562 572 573 81 1 403 506 318 401 572 0 564 574 575 84 5 569 0 +:26281 1 572 482 527 401 0 403 567 576 577 81 1 574 507 318 374 576 0 403 399 57 +8 84 5 575 0:26514 374 99 574 ?381 401 365 5 410 +0 0 381 401 26 81 1 576 483 52 +7 374 0 574 572 579 580 81 1 399 508 318 381 579 0 574 408 581 84 5 578 0:26881 + 1 579 484 527 381 0 399 576 582 583 81 1 408 509 318 181 582 0 399 180 584 84 5 + 581 0:27181 1 582 485 527 181 0 408 579 585 586 81 1 180 510 318 177 585 0 408 + 587 588 84 5 584 0:27481 1 585 486 527 177 0 180 582 589 590 81 1 587 511 318 1 +8 589 0 180 591 592 84 5 588 0:27714 18 73 587 ?175 177 593 5 6 +0 0 175 177 26 + 81 1 589 487 527 18 0 587 585 594 595 81 1 591 512 318 175 594 0 587 173 596 84 + 5 592 0:28014 175 70 591 ?171 18 105 5 19 +0 0 171 18 26 81 1 594 488 527 175 0 + 591 589 597 598 81 1 173 513 318 171 597 0 591 599 600 84 5 596 0:28381 1 597 4 +89 527 171 0 173 594 601 602 81 1 599 514 318 174 601 0 173 603 604 84 5 600 0:2 +8614 174 63 599 ?136 171 605 5 212 +0 0 136 171 26 81 1 601 490 527 174 0 599 59 +7 606 607 81 1 603 515 318 136 606 0 599 168 608 84 5 604 0:28914 136 56 603 ?14 +4 174 126 5 406 +0 0 144 174 26 81 1 606 491 527 136 0 603 601 609 610 81 1 168 + 516 318 144 609 0 603 611 612 84 5 608 0:29281 1 609 492 527 144 0 168 606 613 + 614 81 1 611 517 318 169 613 0 168 615 616 84 5 612 0:29514 169 39 611 ?400 144 + 480 5 199 -0 0 400 144 26 81 1 613 493 527 169 0 611 609 617 618 81 1 615 518 3 +18 400 617 0 611 619 620 84 5 616 0:29814 400 37 615 ?506 169 503 5 391 +0 0 506 + 169 26 81 1 617 494 527 400 0 615 613 621 622 81 1 619 519 318 506 621 0 615 62 +3 624 84 5 620 0:30114 506 34 619 ?508 400 505 5 210 +0 0 508 400 26 81 1 621 49 +5 527 506 0 619 617 625 626 81 1 623 520 318 508 625 0 619 627 628 84 5 624 0:30 +414 508 31 623 ?297 506 328 5 299 +0 0 297 506 26 81 1 625 496 527 508 0 623 621 + 629 630 81 1 627 521 318 297 629 0 623 296 631 84 5 628 0:30714 297 27 627 ?293 + 508 496 5 294 +0 0 293 508 26 81 1 629 497 527 297 0 627 625 632 633 81 1 296 5 +22 318 293 632 0 627 292 634 84 5 631 0:31081 1 632 498 527 293 0 296 629 635 63 +6 81 1 292 523 318 284 635 0 296 546 637 84 5 634 0:31381 1 635 499 527 284 0 29 +2 632 547 638 84 5 637 0:31680 1 527 0 639 8001 0 0 0 0 3 5 0 0 0 FFFFTFTFFFFFFF +2 81 1 547 500 527 209 0 546 635 0 640 83 3 638 .56078431372549 .686274509803922 + .56078431372549 83 3 640 .56078431372549 .686274509803922 .56078431372549 79 15 + 639 SDL/TYSA_COLOUR83 3 636 .56078431372549 .686274509803922 .56078431372549 83 + 3 633 .56078431372549 .686274509803922 .56078431372549 83 3 630 .56078431372549 + .686274509803922 .56078431372549 53 299 288 0 508 294 210 0 +-.1954224145367965 + .4009641317748415 .0980219101381859 .0398882456012178 0 -.1736481776669305 .984 +807753012208 .637092727645783 .75907717770856 .1338457868700534 51 210 290 0 506 + 299 22 0 +-.1954224145367965 .416548804382551 .00963683971338354 0 -.1736481776 +669305 .984807753012208 .0398882456012178 -.637092727645783 -.759077177708559 -. +1338457868700532 83 3 626 .56078431372549 .686274509803922 .56078431372549 83 3 + 622 .56078431372549 .686274509803922 .56078431372549 15 503 38 0 80 400 0 17 80 + 0 503 501 501 71 65 465 0 500 -83 3 618 .56078431372549 .686274509803922 .56078 +431372549 83 3 614 .56078431372549 .686274509803922 .56078431372549 83 3 610 .56 +078431372549 .686274509803922 .56078431372549 83 3 607 .56078431372549 .68627450 +9803922 .56078431372549 15 605 64 0 94 174 0 54 212 298 0 174 199 391 641 +.2624 +972966142495 -.470243327193069 -.062437954147989 .1503837331804355 .086824088833 +4651 .984807753012208 .53849131561644 .0398882456012178 -.5 .866025403784439 138 +7778780781446e-31 141 641 132 641 641 212 137 132 361 0 1 196 114 642 +212 643 0 + ?141 642 196 642 642 132 134 643 0 0 0 0 0 0 +644 645 136 644 2 61 2 31 5 FFF1 + 646 647 648 135 645 2 0 45 122 646 .0822641843041251 -1159346716130564e-23 .081 +631604469896 -.0488299395699704 .0812751574194311 -.0977023689386025 .0809172153 +287311 -.1467797831659912 .0808316394573712 -.1966296768959765 .0807474555209268 + -.245668736841699 .0809230484299938 -.2962914083319945 .0810895406700109 -.3442 +903965419905 .0814925783588144 -.3948378997936315 .0818705392627037 -.4422403649 +94969 .0824678906301037 -.493253126267754 .0830114522705179 -.539672339000422 .0 +83759105671243 -.590943520165217 .0844116471566506 -.635692293705772 .0852652418 +917004 -.687220100363478 .0859685223989907 -.729674089965078 .0869172267821218 - +.783208347375749 .0874802688931663 -.814980142511997 .0886524637603461 -.8797730 +40972947 .0897989977584217 -.943147538677474 .090378909490834 -.975846538707535 + .0913166658168006 -1.028723023898506 .0920397235972048 -1.071956084595448 .0928 +973887560783 -1.12323758778389 .0935914771722871 -1.16912855834381 .094355228534 +5902 -1.219625426558364 .0949668588824234 -1.26659269930896 .0956171463236418 -1 +.316528461532314 .096118019852198 -1.36414726849146 .0971823961456444 -1.4653391 +39013366 .0976279514430293 -1.561861156616865 .098083528336164 -1.66055418340162 + .097918843958833 -1.759587527790295 .0977591467474139 -1.855621828023795 .09700 +41158590347 -1.95760597434965 .0966513154778466 -2.00525971441866 .0961568041805 +268 -2.05599331088616 .0956993990532409 -2.10292005912359 .0950959589382068 -2.1 +54956819419005 .0945778811790744 -2.199632483987385 .0938856209162622 -2.2536642 +8727182 .0934324674501446 -2.28903349774689 .0925953350883103 -2.35205860589972 + .0921153007882378 -2.38819890468455 .091946968590687 -2.400942233711375 .091582 +7739898191 -2.428513023472225 .0913075789351767 -2.449813863230245 .090594742932 +6575 -2.50498929319261 .0900934302870898 -2.548034010586945 .0894750802894656 -2 +.60112802513826 .0890433063378246 -2.647016384681755 .0885569392953494 -2.698706 +825085535 .0882637928111485 -2.74569716458209 .087943584234957 -2.79702546123884 +5 .0878389428709146 -2.84512136185298 .0877282624462293 -2.89599297227506 .08785 +5602368076 -2.94476550696154 .0879856552704813 -2.99457714184909 .08836634840492 +41 -3.04329306083973 .088750786248057 -3.092488176612995 .0893984281198636 -3.14 +1592653589795 127 31 647 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 3 128 31 648 0 .03125 .0625 .09375 .125 .15625 .1875 .21875 .25 .28125 .312 +5 .34375 .375 .40625 .4375 .5 .5625 .625 .65625 .6875 .71875 .75 .765625 .78125 + .8125 .84375 .875 .90625 .9375 .96875 1 17 94 0 605 337 125 86 101 123 196 482 + -17 337 0 605 649 94 85 482 149 0 477 +17 125 0 605 94 649 99 127 130 0 112 -16 + 123 65 650 502117895282198e-21 101 350 137 0 0 0 1 81 1 650 544 318 123 0 0 352 + 342 651 81 1 352 543 318 350 0 0 348 650 652 81 1 342 545 318 137 0 0 650 344 6 +53 84 5 651 0:37981 1 344 546 318 130 0 0 342 129 654 84 5 653 0:38281 1 129 547 + 318 113 0 0 344 354 655 84 5 654 0:38581 1 354 548 318 131 0 0 129 141 656 84 5 + 655 0:38881 1 141 549 318 135 0 0 354 148 657 84 5 656 0:39181 1 148 550 318 12 +0 0 0 141 336 658 84 5 657 0:39481 1 336 551 318 149 0 0 148 473 659 84 5 658 0: +39784 5 659 0:40081 1 348 542 318 108 0 0 435 352 660 84 5 652 0:37684 5 660 0:3 +7317 649 0 605 125 337 52 353 350 0 106 -17 127 0 126 109 112 52 125 130 0 0 +17 + 353 0 593 103 103 85 649 350 0 337 +17 106 0 105 98 104 52 109 137 0 127 +15 10 +5 71 0 98 175 0 15 593 74 0 103 18 0 17 103 0 593 353 353 52 98 349 0 649 -17 47 +7 0 480 482 145 85 107 338 0 0 -83 3 602 .56078431372549 .686274509803922 .56078 +431372549 83 3 598 .56078431372549 .686274509803922 .56078431372549 51 19 326 0 + 175 178 6 0 +-.263030639242926 -.3775151776490345 .00963683971338354 .150383733 +1804355 .0868240888334651 .984807753012208 .0398882456012178 .975926483151499 -. +172199897853289 -.1338457868700534 83 3 595 .56078431372549 .686274509803922 .56 +078431372549 83 3 590 .56078431372549 .686274509803922 .56078431372549 83 3 586 + .56078431372549 .686274509803922 .56078431372549 83 3 583 .56078431372549 .6862 +74509803922 .56078431372549 83 3 580 .56078431372549 .686274509803922 .560784313 +72549 54 410 310 0 374 406 571 661 +.2759940190021905 .462450990889213 -.0624379 +54147989 -.1503837331804355 .0868240888334652 .984807753012208 .53849131561644 . +0398882456012178 -.5 -.866025403784439 -12490009027033e-29 51 571 312 0 404 410 + 170 0 +.458453053779722 -.0390336267335164 .00963683971338354 -.150383733180435 +5 .0868240888334652 .984807753012208 .0398882456012178 -.3388337555057155 .93127 +7075561849 -.1338457868700532 141 661 662 661 661 410 137 662 333 0 1 218 663 66 +4 +410 665 0 ?133 218 332 0 48 214 662 0 +662 .0283158800767907 -.06014861376778 +16 -.0541851034203099 .0656534704688702 .01045306721806738 -.0547080079463878 0 + 1 133 663 335 0 433 662 666 0 +666 .0656534706869193 .01045306711731806 -.05470 +80079042085 .4449375697221275 -.00188661802072267 .004297966094022725 .089398439 +0408673 .880075790549158 141 664 218 664 664 662 134 665 0 0 0 0 0 0 +667 668 13 +6 667 2 61 2 31 5 FFF1 669 670 671 135 668 2 0 45 122 669 .0822641796667083 1022 +411951173982e-24 .0816331484425357 -.0487082738466211 .0812767711382861 -.097481 +1849990928 .0809166021831894 -.1467730120524446 .0808310398926716 -.196961722179 +024 .0807472260580388 -.2461248315994145 .0809256655369264 -.297059173412784 .08 +10940524125363 -.3451240676428455 .0815006601155082 -.395848031313325 .081879490 +8459231 -.4431068413810505 .0824759843888624 -.493945305698995 .0830217668846007 + -.540461725303846 .0837744268203241 -.591999147451712 .0844274433265029 -.63671 +3613774557 .0852879062322062 -.688586802640741 .0859899423591353 -.7309091995293 +24 .086940571938095 -.784524776945578 .0874936102922719 -.815716180357386 .08867 +25438976957 -.88088323914313 .0898208370701178 -.944356608912413 .09040598021381 +32 -.977373012886864 .0913431177415798 -1.03025052077486 .0920664838627334 -1.07 +3556682016764 .0929214063545874 -1.124738801553292 .0936121676184138 -1.17049682 +0970858 .0943779701459162 -1.22122579023785 .0949898049315309 -1.268358926251456 + .0956386973238735 -1.318346821849364 .0961379033177597 -1.366041873251842 .0971 +969902472885 -1.467228970686966 .097637057116412 -1.563856906281305 .09808591561 +01794 -1.662415267907385 .0979157984775431 -1.761386292153755 .0977505026662538 + -1.85755236016475 .0969881920066043 -1.959749773561655 .0966343520968791 -2.007 +186501715415 .0961397658149665 -2.057737300219825 .0956841565671465 -2.104304324 +267125 .0950841030539803 -2.15597741295077 .0945668429888624 -2.20052081554883 . +0938762236035732 -2.25439816401713 .0934282337873266 -2.289347231411265 .0925963 +621085688 -2.35198090271374 .0921124520772762 -2.388415682997655 .09194923220168 +12 -2.40077114930513 .0915840737183059 -2.42841302393459 .0913085734040227 -2.44 +9736137259615 .0905936108839123 -2.505072650682935 .0900902213277245 -2.54830903 +8690785 .0894773097433991 -2.60095233005162 .0890473980585711 -2.64658655668882 + .0885596579503964 -2.69835914957706 .0882658418040732 -2.745378163032795 .08794 +4348706153 -2.796826282839 .0878392627355803 -2.84496640411355 .0877291608075627 + -2.895404346861195 .0878531086346508 -2.94380794788722 .0879810443850448 -2.993 +76889649375 .0883614810021466 -3.042668846469075 .0887465713607983 -3.0921669715 +9042 .0893984385517512 -3.141592653589795 127 31 670 3 2 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 128 31 671 0 .03125 .0625 .09375 .125 .15625 + .1875 .21875 .25 .28125 .3125 .34375 .375 .40625 .4375 .5 .5625 .625 .65625 .68 +75 .71875 .75 .765625 .78125 .8125 .84375 .875 .90625 .9375 .96875 1 16 433 84 6 +72 ?366 673 425 663 0 0 1 31 666 336 0 1 663 380 674 +.2759940190021905 .4624509 +90889213 -.062437954147989 -.1503837331804355 .0868240888334652 .984807753012208 + -.5 -.866025403784439 -12490009027033e-29 .498603070015222 133 380 339 0 373 66 +6 675 0 +675 .0283158802763918 -.0601486138624206 -.0541851034228978 .4719685378 +37317 -.0761806354463126 .01497571333274452 .0822641800421 .880075790549157 141 + 674 663 674 674 666 31 675 340 0 1 380 225 676 +.2759940190021905 .462450990889 +213 -.062437954147989 -.1503837331804355 .0868240888334652 .984807753012208 -.5 + -.866025403784439 -12490009027033e-29 .578379561217658 133 225 341 0 59 675 223 + 0 +223 .02831588027639225 -.0601486138624194 -.0541851034228978 .03010157898995 +14 -.0592751192972999 .03714363764032175 0 1 141 676 380 676 676 675 81 1 672 53 +7 318 433 0 0 677 427 678 17 366 0 365 371 48 39 367 433 0 430 +16 673 87 677 58 +9013290031568e-21 51 383 433 0 0 0 1 81 1 677 536 318 673 0 0 679 672 680 17 51 + 0 357 358 59 49 384 673 231 431 +16 383 89 679 ?382 386 673 681 0 0 1 81 1 679 + 535 318 383 0 0 443 677 682 17 382 0 409 683 384 56 363 383 0 0 +133 681 184 0 + 383 0 440 0 +440 .03010157898995125 -.0592751192973008 .0371436376403218 .45847 +1815449377 -.0683882991424571 .103360783757547 .1117129805215384 .88007579054915 +7 31 440 185 0 1 681 439 684 +.26249729661425 .470243327193069 .0259471162768133 + -.1503837331804355 .0868240888334652 .984807753012208 -.5 -.866025403784439 -12 +490009027033e-29 .578379561217658 141 684 681 684 684 440 15 409 86 0 384 181 0 + 17 683 0 409 431 382 43 444 386 0 432 -17 384 0 409 382 431 42 51 673 232 0 -17 + 431 0 409 384 683 49 424 416 0 188 -17 188 0 182 424 367 49 358 364 185 0 -15 1 +82 76 0 188 177 0 17 367 0 182 188 430 46 366 433 0 358 -17 430 0 182 367 424 39 + 432 425 0 0 -17 432 0 570 62 41 43 430 425 0 424 +15 570 107 0 41 404 0 17 62 0 + 570 376 432 56 45 447 0 378 +17 41 0 570 432 376 39 58 450 0 375 +17 376 0 570 + 41 62 36 378 370 0 372 +17 58 0 566 375 375 36 41 450 0 371 -17 375 0 566 58 58 + 39 371 369 0 366 +15 566 110 0 58 207 0 16 369 102 685 ?375 447 359 439 0 0 1 8 +1 1 685 529 318 369 0 0 449 368 686 81 1 449 528 318 447 0 0 452 685 687 81 1 36 +8 530 318 359 0 0 685 446 688 84 5 686 0:33481 1 446 531 318 370 0 0 368 379 689 + 84 5 688 0:33781 1 379 532 318 373 0 0 446 385 690 84 5 689 0:34081 1 385 533 3 +18 362 0 0 379 443 691 84 5 690 0:34381 1 443 534 318 386 0 0 385 679 692 84 5 6 +91 0:34684 5 692 0:34981 1 452 527 318 450 0 0 453 449 693 84 5 687 0:33181 1 45 +3 526 318 29 0 0 27 452 694 84 5 693 0:32881 1 27 525 318 10 0 0 546 453 695 84 + 5 694 0:32584 5 695 0:32217 378 0 377 363 372 56 376 370 0 444 -17 444 0 405 45 + 45 56 683 386 0 382 +15 405 104 0 45 401 0 17 45 0 405 444 444 43 62 447 0 683 + -84 5 682 0:35284 5 680 0:35581 1 427 538 318 425 0 0 672 423 696 84 5 678 0:35 +884 5 696 0:36153 170 314 0 207 571 160 0 +.458453053779722 -.0390336267335164 . +00963683971338354 .0398882456012178 -.1503837331804355 .0868240888334652 .984807 +753012208 .3388337555057155 -.931277075561849 .1338457868700532 83 3 577 .560784 +31372549 .686274509803922 .56078431372549 83 3 573 .56078431372549 .686274509803 +922 .56078431372549 83 3 568 .56078431372549 .686274509803922 .56078431372549 83 + 3 563 .56078431372549 .686274509803922 .56078431372549 81 1 550 477 527 16 0 54 +9 0 554 697 83 3 559 .56078431372549 .686274509803922 .56078431372549 83 3 697 . +56078431372549 .686274509803922 .56078431372549 84 5 552 0:25084 5 548 0:31981 1 + 504 557 318 333 0 0 464 499 698 81 1 464 556 318 462 0 0 471 504 699 81 1 499 5 +58 318 469 0 0 504 467 700 84 5 698 0:41881 1 467 559 318 322 0 0 499 319 701 84 + 5 700 0:42181 1 319 560 318 314 0 0 467 316 702 84 5 701 0:42484 5 702 0:42781 + 1 471 555 318 465 0 0 478 464 703 84 5 699 0:41584 5 703 0:41284 5 481 0:40984 + 5 479 0:40684 5 476 0:40384 5 438 0:37084 5 436 0:36784 5 429 0:364141 411 704 + 411 411 406 137 704 366 0 1 128 121 705 +406 706 0 ?133 128 365 0 112 133 704 0 + +704 -.0663845486187915 .003568827549329235 .0371436376403218 -.066248167745473 +1 .00555203528133653 -.0541851034228977 0 1 133 121 368 0 92 704 150 0 +150 -.06 +63845550549664 .003568707826588855 .03714363465337745 -.02191588588765555 -.0627 +641519591931 .03620125704383425 0 1 141 705 128 705 705 704 134 706 0 0 0 0 0 0 + +707 708 136 707 2 3 2 2 5 FFF1 709 710 711 135 708 2 0 45 6 709 .1117129805215 +39 .04487427630136975 .0966173092569365 -.000682341082524726 .082264180042101 -. +04487427630137015 127 2 710 3 3 128 2 711 0 1 17 138 0 176 84 84 102 140 131 0 1 +34 +15 176 68 0 84 171 0 17 84 0 176 138 138 82 104 108 0 140 -17 140 0 139 122 + 134 82 138 131 0 107 -84 5 327 0:43384 5 321 0:430141 300 536 300 300 294 141 2 +59 257 259 259 256 134 260 0 0 0 0 0 0 +712 713 136 712 2 3 2 2 5 FFF1 714 715 7 +16 135 713 2 0 45 6 714 .963586311213298 .0837250523163434 .976261188874633 .129 +3317312153984 .993489339720951 .175053793379563 127 2 715 3 3 128 2 716 0 1 141 + 254 252 254 254 250 134 255 0 0 0 0 0 0 +717 718 136 717 2 49 2 25 5 FFF1 719 7 +20 721 135 718 2 0 45 98 719 2.25228561758597 .0832021478192195 2.25116184046826 +5 .0792089766123913 2.236044548612305 .0753561133071572 2.221170962059835 .07156 +53618689207 2.19307304209614 .0679904663644047 2.179361131377805 .06624590135572 +69 2.16267280730857 .0645778121903587 2.146325359685015 .0629437954880741 2.1273 +22230555965 .0614006341123239 2.10849463657956 .0598717271820293 2.0872620427010 +75 .0584477444713101 2.06637148455118 .0570467006896148 2.04343747159096 .055766 +0505869118 2.020759566502575 .0544997017132581 1.99635895305134 .053365791798979 +9 1.97191263271383 .0522297578605822 1.946007486231685 .0512392620541039 1.92009 +2294869295 .0502483821767705 1.89301848388439 .0494145780119585 1.86608235127494 +5 .0485850139891394 1.8382758075881 .047918943784659 1.78190955964797 .046568762 +3772145 1.723139801872325 .0459124001305691 1.66452248730802 .0452577404257151 1 +.60499240325939 .0453111149969069 1.545418979071285 .0453645284267935 1.48637207 +314719 .046125336777622 1.428121213686888 .0468758882184936 1.37199050294624 .04 +82928651592382 1.31629590556574 .0496988327511483 1.264690357217208 .05170912182 +41386 1.238901113308152 .0527137392904799 1.214597958128004 .0538526454328074 1. +189991580424064 .0550057613348257 1.167238262929086 .0562801906149885 1.14438851 +717632 .0575600209095391 1.12362716173193 .0589502625776453 1.10250764615554 .06 +03644877058246 1.08385993343517 .0618735252330595 1.06461903464902 .063430565432 +1135 1.048264794173814 .0650684387114468 1.031561876773404 .0667412319015995 1.0 +18044406768154 .068481236024783 1.00425524485802 .0702562130411595 .993894858409 +407 .0720883458894894 .983261061101838 .0739688287697675 .976333102371225 .07589 +45833297295 .962481248270395 .0797449629633047 .96358571940244 .0837250530421841 + 127 25 720 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 128 25 721 0 .0625 + .125 .15625 .1875 .21875 .25 .28125 .3125 .34375 .375 .4375 .5 .5625 .625 .6875 + .71875 .75 .78125 .8125 .84375 .875 .90625 .9375 1 141 248 246 248 248 244 134 + 249 0 0 0 0 0 0 +722 723 136 722 2 3 2 2 5 FFF1 724 725 726 135 723 2 0 45 6 72 +4 4.37644641037518 .1741114125843155 4.35945997142794 .128626760864203 4.3466807 +0726554 .0832021478350327 127 2 725 3 3 128 2 726 0 1 141 241 114 241 241 133 13 +4 242 0 0 0 0 0 0 +727 728 136 727 2 3 2 2 5 FFF1 729 730 731 135 728 2 0 45 6 7 +29 3.057981413606495 .0837250523163434 3.070656291267835 .1293317312154206 3.087 +884442114145 .175053793379563 127 2 730 3 3 128 2 731 0 1 141 237 236 237 237 18 +9 134 238 0 0 0 0 0 0 +732 733 136 732 2 3 2 2 5 FFF1 734 735 736 135 733 2 0 45 + 6 734 .18765620558879 .1741114125843155 .1706697666415405 .1286267608641866 .15 +789050247915 .0832021478350327 127 2 735 3 3 128 2 736 0 1 141 233 231 233 233 2 +29 134 234 0 0 0 0 0 0 +737 738 136 737 2 53 2 27 5 FFF1 739 740 741 135 738 2 0 + 45 106 739 5.18228134798023 .1750537903926185 5.18380469746867 .179118865745678 + 5.20090193413394 .183248653260047 5.20910597516226 .1852303153771165 5.22082482 +8936 .1872056472209485 5.23209204923227 .1891048516544525 5.24649483412618 .1909 +797410654625 5.26045199470832 .19279662111859 5.27719510399016 .1945702668141835 + 5.29365245039029 .196313640826271 5.31257177792003 .1979910563158115 5.33128081 +75987 .199649827374249 5.35211596970028 .201219845502229 5.37267326036252 .20276 +8925578271 5.39506258008607 .2042127841451735 5.44042791395998 .2071383364514965 + 5.49120365138162 .2095010018273235 5.51703187804963 .2107028249807875 5.5438310 +1379075 .211735813214059 5.57105202307813 .2127850628078985 5.59896025945625 .21 +3647540589714 5.65720020113507 .215447391179757 5.71695663593387 .21639264996257 +5 5.77886376499591 .217371929560864 5.84086178193885 .217408001864909 5.90330275 +561493 .2174443318944545 5.9645508863739 .2165218725410425 6.02488232613166 .215 +6132194895995 6.0826602818052 .213796413570182 6.11072550566237 .212913913242175 +5 6.13787377242558 .21182579309114 6.16446019028523 .2107601922087975 6.18991692 +88315 .209507302456455 6.21474235014617 .208285483883498 6.23824416929706 .20689 +6934021798 6.26151428319402 .2055220739215695 6.28318530717959 .20400026381733 6 +.28330459092368 .2039918873231155 6.28338366305602 .203986330264487 6.3048371143 +9298 .2024786172012765 6.32438382464051 .200848903528142 6.34386155360448 .19922 +4941193191 6.36112136131598 .1975064533137365 6.37862404787584 .1957637829889115 + 6.39354779302145 .1939543010151365 6.40880535898684 .192104343761866 6.42115497 +623436 .190214880243776 6.43365137083057 .188302960123178 6.44310572882483 .1863 +60023056279 6.45276032388125 .1843759358646985 6.45909804013825 .182385178261686 + 6.47237349121736 .178215189562691 6.47084139229991 .1741114127830755 127 27 740 + 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 128 27 741 0 .0625 .09375 + .125 .15625 .1875 .21875 .25 .3125 .34375 .375 .4375 .5 .5625 .625 .65625 .6875 + .71867823600769 .749856472015381 .75 .78125 .8125 .84375 .875 .90625 .9375 1 14 +1 227 225 227 227 223 134 228 0 0 0 0 0 0 +742 743 136 742 2 3 2 2 5 FFF1 744 74 +5 746 135 743 2 0 45 6 744 5.15237651599969 .0837250523163434 5.16505139366103 . +1293317312154308 5.18227954450734 .175053793379563 127 2 745 3 3 128 2 746 0 1 1 +41 219 217 219 219 214 134 220 0 0 0 0 0 0 +747 748 136 747 2 47 2 24 5 FFF1 749 + 750 751 135 748 2 0 45 94 749 .1578904862402645 .0832021478552177 .156768044189 +261 .0792119089666014 .1416722727724452 .0753618440330771 .126794445704621 .0715 +673641950304 .0986877333826692 .0679916272208059 .0850119262770967 .066251790538 +3931 .0683516678322736 .0645852854165916 .0520195496472872 .0629516037606144 .03 +29948310887355 .0614061026650225 .01734501813069125 .0601347670077812 0 .0589337 +797823283 -.0239680884368537 .057274204230761 -.0508185315668763 .05577381904963 +35 -.0734796377146234 .0545075312760057 -.0979072782038664 .0533717640344427 -.1 +223978820111992 .0522330693028449 -.1483526389705422 .0512405567580596 -.2000333 +89624101 .0492642795990045 -.2558820661704545 .0479246765121612 -.3122719971783 + .046572090733655 -.371091415124247 .0459142621225584 -.429666310821507 .0452591 +682160347 -.489157789157754 .0453109271915682 -.548698310538447 .045362728835695 +7 -.607727401447376 .0461215287938521 -.666009441733922 .0468707256567841 -.7222 +2979266266 .0482884787826472 -.750054398887224 .0489901539198371 -.7769858163226 +34 .0498474600366176 -.803796168036108 .0507009122758889 -.829415459984037 .0516 +978604911353 -.855244615833798 .0527029753427901 -.879630923283044 .053844905502 +5398 -.904150916101138 .0549930957061654 -.926878762257397 .0562647810481448 -.9 +49747975722794 .0575443762788847 -.970486280054184 .0589314659591157 -.991697962 +48639 .0603502177206817 -1.010335612368298 .0618572009908235 -1.029622560247732 + .0634166845078209 -1.045988362442662 .0650541878673398 -1.06266788607574 .06672 +30810666481 -1.076170093221454 .0684581472200974 -1.104284276011038 .07207088745 +31323 -1.118022459969556 .0758836083420134 -1.13191626753961 .0797395190292182 - +1.130808816604886 .0837250523475688 127 24 750 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 3 128 24 751 0 .0625 .125 .15625 .1875 .2134485244750975 .25 .28125 + .3125 .375 .4375 .5 .5625 .625 .65625 .6875 .71875 .75 .78125 .8125 .84375 .875 + .9375 1 141 213 484 213 213 199 141 211 7 211 211 22 15 208 118 0 34 116 557 17 + 34 0 208 34 34 11 28 10 0 0 -141 152 121 152 152 150 134 154 0 0 0 0 0 0 +752 7 +53 136 752 2 51 2 26 5 FFF1 754 755 756 135 753 2 0 45 102 754 3.08788624558703 + .1750537903926185 3.089409595075305 .1791188657452385 3.106506831740735 .183248 +653260047 3.114710872777375 .185230315379319 3.1264297265428 .1872056472209485 3 +.13769694684304 .1891048516543535 3.15209973173297 .190979741065463 3.1660568922 +7825 .1927966211143895 3.182800001596955 .1945702668141835 3.199257348004255 .19 +63136408273205 3.218176675526825 .1979910563158115 3.236885715262865 .1996498273 +78926 3.25772086730708 .201219845502229 3.278278158056805 .2027689255845145 3.30 +066747769287 .2042127841451735 3.34603281157054 .2071383364505195 3.396808548988 +415 .209501001827324 3.422636775817915 .210702824988888 3.44943591139755 .211735 +813214059 3.47665692082161 .212785062811262 3.504565157063045 .213647540589714 3 +.562805098565725 .21544739117611 3.622561533540665 .216392649962575 3.6844686624 +6852 .217371929559633 3.746466679545645 .217408001864909 3.808907653147505 .2174 +443318955725 3.870155783980695 .216521872541043 3.9304872238845 .2156132194874 3 +.988265179412 .2137964135701825 4.01633040340374 .2129139132367815 4.04347867003 +2375 .21182579309114 4.07006508789205 .210760192208797 4.0955218264383 .20950730 +2456455 4.12040420915328 .208282680446813 4.14395634905455 .206890594211401 4.16 +727631341782 .20551223107597 4.18898856066282 .2039863302644875 4.21044201207117 +5 .2024786171962025 4.22998872224731 .200848903528142 4.249466451273385 .1992249 +411871375 4.26672625892278 .1975064533137365 4.28422894547264 .195763782989775 4 +.299152690628245 .1939543010151365 4.31441025660952 .192104343760297 4.326759873 +841155 .190214880243776 4.33925626844716 .18830296012081 4.348710626431625 .1863 +60023056279 4.358365221484285 .184375935865835 4.36470293774505 .182385178261686 + 4.37797838882419 .178215189562776 4.3764462899067 .1741114127830755 127 26 755 + 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 128 26 756 0 .0625 .09375 . +125 .15625 .1875 .21875 .25 .3125 .34375 .375 .4375 .5 .5625 .625 .65625 .6875 . +71875 .75 .78125 .8125 .84375 .875 .90625 .9375 1 19 17 125 0 1 0 9 5 S141 21 20 + 21 21 7 134 23 0 0 0 0 0 0 +757 758 136 757 2 3 2 2 5 FFF1 759 760 761 135 758 + 2 0 45 6 759 .0893984390408676 -.04487427630137 .1044128633204656 .000534750903 +036201 .1187119994962802 .04487427630136995 127 2 760 3 3 128 2 761 0 1 74 20 15 + 4 0 0 523 547 13 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 4 12 762 763 8042 0 0 0 0 + 3 6 0 0 0 TTTTTTTTTTTTTT10 10 10 1 98 6 14 76 97 121 101 114 48 79 14 763 SDL/T +YSA_LAYER1 0 diff --git a/tests/integration/files/reactorWNS.scdocx b/tests/integration/files/reactorWNS.scdocx new file mode 100644 index 0000000000000000000000000000000000000000..fd7e012deda4579bb8735553496d8eff3f8f1857 GIT binary patch literal 108793 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⪚F5>Kjo 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 literal 0 HcmV?d00001 diff --git a/tests/integration/test_design_export.py b/tests/integration/test_design_export.py index 9e46cb3709..180e484d04 100644 --- a/tests/integration/test_design_export.py +++ b/tests/integration/test_design_export.py @@ -21,16 +21,23 @@ # SOFTWARE. """Test design export functionality.""" +from pathlib import Path + import numpy as np import pytest from ansys.geometry.core import Modeler from ansys.geometry.core.connection.backend import BackendType -from ansys.geometry.core.designer import Component, Design +from ansys.geometry.core.designer import Component, Design, DesignFileFormat from ansys.geometry.core.math import Plane, Point2D, Point3D, UnitVector3D, Vector3D from ansys.geometry.core.sketch import Sketch -from .conftest import skip_if_core_service, skip_if_spaceclaim, skip_if_windows +from .conftest import ( + FILES_DIR, + skip_if_core_service, + skip_if_spaceclaim, + skip_if_windows, +) def _create_demo_design(modeler: Modeler) -> Design: @@ -346,3 +353,58 @@ def test_export_to_pmdb(modeler: Modeler, tmp_path_factory: pytest.TempPathFacto # TODO: Check the exported file content # https://github.com/ansys/pyansys-geometry/issues/1146 + + +def test_import_export_reimport_design_scdocx( + modeler: Modeler, tmp_path_factory: pytest.TempPathFactory +): + """Test importing, exporting, and re-importing a design file.""" + # Define the working directory and file paths + working_directory = tmp_path_factory.mktemp("test_import_export_reimport") + original_file = Path(FILES_DIR, "reactorWNS.scdocx") + reexported_file = Path(working_directory, "reexported.scdocx") + + # Create a new design + design = modeler.create_design("Assembly") + + # Import the original file + design.insert_file(original_file) + + # Export the design to a new file + design.download(reexported_file, format=DesignFileFormat.SCDOCX) + + # Re-import the exported file + design.insert_file(reexported_file) + + # Assertions to check the number of components and bodies + assert len(design.components) == 2 + assert len(design.components[0].components[0].bodies) == 3 + + +def test_import_export_reimport_design_x_t( + modeler: Modeler, tmp_path_factory: pytest.TempPathFactory +): + """Test importing, exporting, and re-importing a design file in Parasolid text format.""" + # Define the working directory and file paths + working_directory = tmp_path_factory.mktemp("test_import_export_reimport") + original_file = Path(FILES_DIR, "rci_std.x_t") + reexported_file = Path(working_directory, "reexported.x_t") + + # Create a new design + design = modeler.create_design("Assembly") + + # Import the original file + design.insert_file(original_file) + + # Export the design to a new file + design.download(reexported_file, format=DesignFileFormat.PARASOLID_TEXT) + + # Ensure the re-exported file exists + assert reexported_file.exists(), f"Re-exported file {reexported_file} does not exist." + + # Re-import the exported file + design.insert_file(reexported_file) + + # Assertions to check the number of components and bodies + assert len(design.components[0].bodies) == 1 + assert len(design.components[1].components[0].components[0].bodies) == 1