From d5c7694f414cc589731031c6d7add2bf652d7134 Mon Sep 17 00:00:00 2001 From: luisgulo Date: Mon, 5 Oct 2026 22:59:06 +0200 Subject: [PATCH] Version final del juego --- imagenes/tower_sentry-0.png | Bin 0 -> 70668 bytes imagenes/tower_sentry-1.png | Bin 0 -> 52381 bytes imagenes/tower_sentry-2.png | Bin 0 -> 42332 bytes tower_sentry.py | 566 ++++++++++++++++++++++++++++++ tower_sentry_version-sin-intro.py | 465 ++++++++++++++++++++++++ 5 files changed, 1031 insertions(+) create mode 100644 imagenes/tower_sentry-0.png create mode 100644 imagenes/tower_sentry-1.png create mode 100644 imagenes/tower_sentry-2.png create mode 100755 tower_sentry.py create mode 100644 tower_sentry_version-sin-intro.py diff --git a/imagenes/tower_sentry-0.png b/imagenes/tower_sentry-0.png new file mode 100644 index 0000000000000000000000000000000000000000..a0bd39a8b313b9c50445990c2e6d2bf0837e1260 GIT binary patch literal 70668 zcmeFYWmr`IyDvN@2oi#TN{N6VsUTenN~cH;4AKqKFqBG3cf$M= z&O%pfKVeQ31bwxlE}b1NoDqRos)QQ9pf`LK)(toQIo-oP{nv>q!@ur|yR5qgbTKneZxA98HMT_*3rBmTAF;Q~0-GyeV~ql9l%|K7TCT#P_>0+M1z|zlez` ztaXH=_lpCOF*nkG2n@&~M@~l!eYiZg9k)_dicFnBpg4SUU>R#v+s1f$`W~G>hBwso zy%OLWS4~WM6yjqOCxBvKb$xSGAZ~EH2CiR8L|w4>SG)E*Rj}!ZZzm2M+_{hKa9wK~ z@$B*^r7T{F9K;=TFUDOKRw^7n^|fTom{DQ&x3HGm<_u_cT?#4*Bhq_PTrLIv@G2d= z=D!mP!^DpisllRKWc9<7sHp_pdasQ?T212IY*SaJzyx?M{aFNV*K!$e=&2{E66S$F zKAA#j9xfY?n<;fsK5O=s?5QyL@o+b>P0e=tsX@buip%dXt?k2^M7aZS{`QFHwLhsh ztpmpOW7!+zLP^oU(ObHJR)xwH5=OKI{!aAypuB&=mI&)lJps_|O# zLh9RHtl&zF+S$!EBeK*SSTyHy4Fy4Sc4}`qlCZIEXsT5(qCNVfUbW-2z~DV?GO!uE zMKpH!4i{=nJtMMQ+)CVIkhALZb~)N^h*{@Xyk~>uk2aszNY!~4xfe8JEamm(#;+Bq zdbmIB2zAEdE}nj9R3w@b+CHp1dT7T6`l~U1g}fN?-0^&=-3e4e&Ob^m)TV5fdn$7UO(ilz zsYIQ?)_mV={CQ|Ql_?X$!O~|Yw_90-_$CB`U`a);xjzc>>byvD7YmrkDC1aH6O$m` zF!kV+k=l7p2-e~1sAB{V%Q$a^P1$^UPE$9+&E&6r%<5sN@f@V~y69XuYpW5Z<{hT= z0kgdor?t2GGr3ysy`<(zaD+WB^(6@8RrUEU2xKM1DE4RC5?;`JJ;{WnBd6u3DLUkW zRH^ph;_`e>v(#7&@_pM~3fk0za%)`Kr>GQVHS+1S$D_UHGX|=9A6s?i9vj88`;{Lr z1k_&KoUtZR;Ce+r%LjhJSNFL$`xw`0#B-!F14PbP-0~s8RPW=>?y^V6DVtF-Y6m;` z!6V8-mqFmUn{Y=|-l;HK7@I^Q(l;G&G{Y!{ zT$Is|w>Sej$6VI%KpDcoHvfW=`l$n{{GMaxsC?aDO%2@&CU)WQ9Y%>tey>u>JPK{? z=Hm5EJX#~4%Q=c+oZU%Ti*YmuX>-W69vhUASgzZPP28%Z=`Xr3}p7Ln5_3SEan8@0CK7zVsEm zEYi6-1P3cL{QlYUdE)Xkb55b9z2dN5?riiq2!s;6BnB2bec9|p)sDu#65$Ug!F2ER zoNL{bxb1Xv0zr!1R&n2AQ@b=N{7lEY=*J-SY$F#wxzW34BkDKed}vRpNyZBI?*GJf z?o;rmCVwp}`0D*Dqio8r(Y(+BpW)pz29bzSA8sA4XAia_2NQxWjgVvbK~m>#E9xx5 z2L#%~C`XL=M2n*V#uCwZ5|{azzK)g`J@M6GxGakF2T}ly`kX!@(W9DTME>Qgo?5fB z%=JL)`9~8UOLfQc;SIrXqF?o=c%T*u09a-4^CH<1PRtVdOXRRAA?B0N*GP)k4}Vi( zWcX|wmASod$#x?OW>~Oy|4S1wM`*UERdlP4`^TvnRW^?8!iWp6Mwd}?+rd_^IUTUV z$TVkp4S3%9qu^TZdId$TfWVD^&^Ye%p%=oGh*P6)E9DjB{wI&WAaAf(<15pNAq!k6p+z<%oW zzCJv;LZvY#6jwgajWAa9Zj{vOzNrrBwfx$FEO(G)77Jaj8GxcJS7~sG1fE5sL;X|M z$=E;rcaaotb89S;e68kWfS*_`i#vEJfARBLez!@e9?b7@HKwJRTwrEWJcz=r>gHXU zyOYEx`rQC|Dg6_ySV)3#4$BX|@&$2Tps|S5j~Jhg6o2u-q`aSd4sn(yc%11_~lh+1nU8U=eah z0r&w#d?swtWb8J&*)O%+w zZ|($?gl!WHfo#Nd9h=?teh4#kOy#{iINgf8_MB=-4)es2N=kG7$UH8hCMt6~fXCRk z2+usE1(Ub)vL>97nf4AX&idq4T_wr2qKOY{<7tlVrYcr&viAYJ^ggOPxvq4@_2M|8 z4ZT~au>)#;5(acsft&x-GIRTc?UgfP#r)kFbviBerqe^)IeKZwRMSIeZazzJ}2P@S7mb6vbWG@+y@V;$aAaKj7jKR14#!-Ai&*YnjGk zK>zSVsoEXTX#xXKvUKfc9xQX*NF~iG<`l0N9iRWP{mRCcb06sMWf9DXUz=~#(dw(M z6Q1IVaMFXL!&2T{w#x@!ie_j&n0tTjowo`NJadxHf0FUb) zyz3(b_f) zB9|PeFLBz`?S*y|DPI4nDU#_M6C~Ri7CEub_nB@LEOP_5ASzY$m5jQ`YhC;2cti|Q zOEEKR9n6IazT605Ci8;wNo!4S?5G;_;|)-Y0|((uh<)*W&|Y{&5##;i&{BJr3wb(8 zS)-!qp7*t@_S)z_>`vGf6`L+Ux*+Z+xXMmR4%|U;nS{WQSPQ@OIi~L_Z${i;d3Q;5 z4_I7ib!y_|5<(tk|7wdQstQ46XjM-iesl3UqGPRF+T((%bN_x{OBB4Hu5tE!Ej9*B z;=tE=J#+c1b5Y^;H||Hc%Bdd*#q3JqjKR%&KX{l!-FWjQST=5^$2w-d0ZbqK5`LD zCMnFXb=i{K`AidXqqxl|xX_C3P~jLSM{z#cSekJ;FTr495gAh)$wcrA`c5nDJNm@|V^Fgm&nkub=`_rhlEV-3Dq0aC{+n`&Y&Q+Lk2n z>VJ>_EgyMvr`pA30&}luCS%d(>`VPik%2k9Y7Q%Tcr|d>(;cAC%`&-vRNdl;%-` zKx5V;^n_39PAe}DoVulk=tv3`iMqO6j)?Aa+S;I6LO$5d6qT>pE1}h*WSMjxqa%0c zggh@l`#>Or{3XJ#ZKt4Z+aAc}>bMm|tk-5^!=QG3+MpS^~{^P zh{RhH6`RFp)UPKn+?<@dOUbd5HnpXGu@ftgg>K@`a|uI21Ni1%ua1t5 z8f?*%Vz+y1YuF2z?*>X+yYBirV~$~iTSXAx!J#zZp#$|B9e?_6Y5CZW5j|R(_gsjY zT9!69H6f))jRmPb0TxX`+PBNgrrFtnFlTg3ZF+;t?$pdcTS%wTy;HAJ z0ApHyt}eqR=GEnS8ph&}9~#16ru~lABb~>s5jsd zxeH<<@@{a1#(hz*=gu3)glAqKXF5xJtIrgGz`c7mRbjJO+_N4Z)~d~cJKf!Z4f=BG zRTbJM+Fb`iG7{=e(d%W+7c-MW4=E{|!rWbt-DMq(zWF&dOK6ptR!zN-gWvaP+8!9# zE>Q$~%J{fy{w}lSW`sSEd~`nZL#eTH)J#3vaBMg?=&H zwsFLl>y7yxdS5&H4&FR7-I<{|L7Jh~M1|vtU5JuCIF`(}3L5ImbzvuVFIsh&ZVv_B8S!YyE(L3H^1b2% z*Vw8YYTAB?jXk!3DbYI9ra9PK`IbV9vr);{k32y}wZAJvr?PG?VowQ0yI8rxEI zY>sn;2=!;5;9=(X_w14ox$!4)$-W%mn(au-$CiaQ{GR8RrqA=tJZnorJ+8}a^UM5X zJRV3U45XxyQcJNleDnkI^zCF@b>jDFp?5xKapD6>h_q-k6lZhNa%-F$yeG_)6(jYO z;$qR;(MWPMp|mi)w8bwF`&e-0^w$+wi+f^pf?jyqd~q|}n)2$5;e7CUD>E-8S7_u} zz1g3%c(ALr1H#A2{FwH&O%5gp*xE@K7kfjTV%}GV#$Nh97E7%TO0H&INx`Gfhjr>L z&Tm(0>lv18=u({Qdk4^7o*ZSy`etHsc{>#rZ1uXc3Fag8kST=WR0VC0Y^w z-~fVmd8~m9k;rd_?u#zTozgFh0{KypV2_q1Gm_})^eWg|(oLTBv6#+Mi#5~YP9tjc z$*p)QvF3dQQ~_sa>^X@8i~no8KYf*uEAn4A$|0h|!~M;UxPj#hw^gfBqta*odcsaI zq$Amwa)7ngDmQY?NwkD&e!{??EgXis10tCeUHOTQ!8GAW3OY`=FQQNT#`{CiC z&&eZB&dY^kB_B;q!?(X0C(6l|jqhA?kgN0Z@nPl5wlGnCy}|eHoSmr+!&7v$$6xW5 z?=i<)Quw)*8+3Jh*~}oQLkC@LXOSI9Md&Hq!%M*!rgdOcsom-s7U6?E==cTl(WGQx zdL@4Bf(-4bPvT*wNTSyGRY9aFNPwJ3@4rk2>m-(4DVuKYxEO zV;&K@2dbg|Ti`+hMp?AArxcU;w6s5dgr22SUkeIO*pAhQ@t<)f zZ1n|w?_OMW8yes!gewWX#(c!;dXVX=tcP2dY69AaA`N1G`|x zTY&|#do}Z^y8+u?rXLN{G@?WGsoE&7t*%m1K1@Qs;%xq1*wVkTuTD9fRABx|yAzT5 zGSF5P;p8{%x)BEhT3_QL*;9~)iG@uYZ=safF^tD)EsG*yycT$x=wWzMFq9!$R^GSs zB_CQHVprB2TNN0X_h7i*8slSqb?XVA?NAfJEh#Bm+H?VK1E!8n)$$)e7gi4}TQiTO zYYGn87O}7>cBQSU*JFe^bnl7*-F-#O^f|+d&Z!^JCGJAQ$}pQ(NVuMwZYppzu zf%#VNE8)%e>jqE&LvUSVs&9H`aq!O!j9ASc2?3oSSjG4Zy>PPfAjrmezAx}O>#Yss ztGd1P;~<7ew*%FTrg(O>F|dYqlrIpXA*}wSjVn47o7`Q;^Ds3wYiUWrT$$f`EYA~l zGtJmQe@&#TA0^yj`JdvtE@G0 zulh$Nd2k51k+FfOw==d)h*p1&BGt9X+9HnY>^a*(IkQt?x2=fF);vaQS=ePHCe~iB z8F`TJIz*%gz#IiLWo2AkkE)a5+m@6D=mf+YT(f0iWybK3($v%h2>Yey*)uHX2PIBB z_*cKw8Y^QHo0#}$NEF=M7*p@Q#}fM$ls3owN?nKN!F_M3_S9?tkdROj>_&QGs>oo!_wxLw1{|?7JyzlRD>BB`TJtj! z*)@C_OZsew+X?718p&MhB{n;WB{K)Ooh^++^F+wdOF)Mg9ykn<6mUxNe1~s2Rx8!L z+ssi?I>z^!XLOVi=5HYE#3sV)_wls=|F&2`zP)PM8o6)KZH-5GYp5Ha=I<8s5J=!= zTbzc)*Am8c_3Z2-7IumYs$@vi-M~ekm2bY`3lTIG`DGF3i-1m})%8^|qE=s~&nggQWtZ|w;}h73@7ceA^f({z6Cd&Zot7km{xK>4 zx3G}^6?Eqvz&=!U>`EKPoyq_Hevrlc*;d_ArGke5&Tmh#le$x}Me_GLD%4(r=yaSM zgr2`{?Ac4P{TCs-#WF#O^s^VmJI!mo^`+VO??+D|vTi!9`-IvpbGJdB*MBeVd7p7P zez6z0k?{#b|Mx-*BMP^>C6EGA6&kIh7yo6`TMir;?*3MxR=Z4QvY(92zMRho$65L64 zk~~a=9dqS!$xZ0+X4`nZ^tQO`F5dO|*Fm!fk|R8!x+D$VzZuOM6B^}bIHF}^Mnkyf z6=%qf)S}qg4sFiph|spX0?jaIL&NC${+=K?%K(b9>etE9CY7=Z0=G6%kJ$~d7%Mi~ zIK9;=ZBs*izuvoNGHSl7)-;F?A7l+Qzo7)`a(3l@`Y79>a3r)WCt`2G6FUqNKQ1 zsMw#mai;1@VaiE9_S3TBO_NtLK;cHgpUf zSrKccQJT5rARr!e%?qsrwp3ov9eT$%1_|}1>t1J(feJT@cOnfGQyOvM&cV?w=R4V@ zb^+$+Twys0$VJOp0!x>D>CL0~a<=UURpj8*jn6`2&GZg}C4oZ?Th}G6zZ z;qC+M!N_8aC({O_hl9P7kMe$$<#2)TPD%YWjRnFEg?AlQPXJ#1gL3?JJAbTk9*#(P zmLRL!@VF#ZT|%h2pgU=gt?Qp4y-3polS)3@H7G>~_NWqa-*7B07x3`kiIA#njO;Qs zAw+epoN>5EbCULnioy+^ihJ|DSNEICE6lvP)z?eD?-a5s#tMNvH*nvVw(6$$SbLs= zjCm_II3`%qzApYi$g|@OQ_Q<2O2re;u>lR=&nlr-JJF8ucJTp)Yj9)QTgqK{F!`Pp z!m2x+T9_RA*0`fJV=gsF$=^+2Rjiu?Iznp)bsEtMr?TpQ&}I^M6fgXmt*r04!xO-% z#Aog)L@K!=COX?(+Ix6?RZ`k%$GRo`X*-Na6hxH`X$xwuZ4V{s~QKhz1);4`78(`HI4cn9_R+c}8^%Xev z2kh59H_z!;{|Q;fabW=J#!J3&R@R64=2zx2qT+}zq(*jGXUE39F5*A}UU>7rD1FJV z7Gd2XbyAl>_h_S-C7((y5+l)XH_01Dn$=|}r%*PH^%*OZA3GC_x!&~N&48`VkaX5s z|El7j(EY)uTSlh=k=Bf!T308!FIMEh1Abp4$_r*aWR{Pl_`A3{)d`0|IXP68mOni1 zZst`ZG z#3s391Wd(o7di_3DH-k`sP5GrAtlN$5-0Z;k0EpRBFS-A+QJ z1J5_BG+SeIVCET+;kPWI+=|NVh@Ot27;CGN%;LevSE(AeWYRNQ$scK&+hrN5<$r5m zjE_s@7CuyQtQb2GgHV(S$zX7TMPS8pf-GbW%^Ia%cw0% zue-tQe>pPLVg5ZlG*%hXvSH@F*7YUQ0d4{qcMLfdvX@89zJt3Y!v=)THA3@#rM{QH zeotwFWl|3h^oJ5Ml2YL(^61@^YjLjfMsq=ij**Xtn_m;2Y#NLd5ej_B=io*NiOpd^ zs;Hw}q}y+y*8H>4#7h*5M5#$+QoLQ2Hb?IYp}qKkUe$$^u9;eZ7~7!;C>Kk8BFH8j zWY|0qorA0yg^3JR28XuDa@=c&~)nVu!s-_o`ISHJ#}a=^&~s@Vg8&fg=$4?sr1@qgB66msbH&p&?* zCx5>!*5slV>yuiP*F57SYIe^%LPfXZ#ZAge_N>S)7o>DUJ=yBa0=D47rfry8zNHae zNPI@db|>?QAc*K_iRJQ>LR4?>tD~jl-MI!F{9}t2>>8yajMJP5m7pVB+NT?qIdA)ZP~Nk}Zdc z-6tZt{Vk1>w3?nq)7%y2Y^f^2!Xm(PusVPB)zT7u;2PU$bO#t>sd&jU zn0mZ51Bi-;8w*62<1swo+%Z%0@xz0Q4?y z+_z*niCUoj{t~hL8XNOlD?g#@?c-e6}B$I2v5GT;F{9Y-d+yekz!N04V#2L7ZT%ZyGf8YhAuOojx6 zov}01(_trAyWbh}7bNtIj0VJyMWcqP-pRDa3bpv-yz`{H6gVjR#|#1;)Z|+MXv$r4 zc>fF8m2d`TE!-E4Mh67UJ>C)t*4@|=kycl4_x4XrJULC|HmK6Jk;G3Ogj9bn3$EN> zDdYuK6TSP>$&L zu$Dtgj#vDPocf~hPNUu#_273r&@lVcY!>rj{S0NOs^_&cHnel;t(0h6+wN;e+k(Pe zKEsitff5dL7MX@sXKb3N%k#@WTu{ZIL77MyYl-E7OhTC>q+uPIB(@{QAu6#M5^{t<2gB1@fB^0Z}NVglb82E5{Q>GW<0l`;5+F^o{}~2aKQcd zSw?((5r|}+ckh_m zy}d6OWFp8V>BPO9ahJKow9_vr=@DJ;_4UK;#QQZQGN&Mqrn##`X@lR9d9j+zH%UlF z(6~7}S5#H)gAsw5qV2A1T3%!l-bP9GV`35UaC>L$^_~=?TBXGa%==mN>3*y^u&zGg z@(9|SN~iXVOneL76X>Z-v4o(7i*L6xjLIR+=&^MHF|p>1pJK}_%1ZL`#Q378muG}p zT2!7QGr#<%(f$|S-#U@LygAQ{`wWKUCF{rZm3O|&H1#p0kVsO-vl z$8u#lswZXmU|eM-vTESqzIBuL`g}LZtKIe>L1E$9`UjL$@Smzlb|Sgf68c_jt?8QG zf|@=pf5ytQv(>e=S$7JnC57)F)|zz}hxK*GKA~bh20|i|<+%P@ha=%Sf|GE4IQk?& zHzftwF0{0?#6jLqKMM>`ZcOg0Zwc5Td@-4ouOdkg&If1W;*gc|Fc(EdBoetf<}_d9 zq>wFLrkRjn6umKj6*N6Pi^9VdWoNfHJ@e>CHMyjc^4M;^le%?FeN-5hEki?0oFUFf z5fu$HG}Dz)S0A09w?oIAL5!te6#IB=Av`f(WjSD?mQ7#3wj?J{4WQMtvQf?6)Jj?~ zAv-@jqU!4E-{Wh<)WWh#`a6Kd=e*2{fuc9HG->Pt<{T_lTY+AvtDEAoC9H11rdppK zZ%;Dk_1quWGCI1t7S`6+lRpBAiwT{s4!V-dL~jMZbKFyvo#0B}-mxJGpfTkd_|1)2 zV#K%>%{r7^dSw@1cMZNYHeQZq479ekZbTr6FKxdZG4pgMauK7Z-FvB3I?r?W*71Sy zk8h@iGZlF=PyN8fW&Tla(TgF?Uc+U!wYB^szPScw%*^()spMo5oZyxaM2v=y0?-6L zm@WFtjY{}jKBB3P>|TB#d0R**I$F*1_-3#nvD2}iekgtPTZQR$$P%5c5M*72_e z(&z&BHg}XV?aaN~LfsMYCji_qFtBg$DjkN&Y|k}I>0kBBC545B8ScVph{0xOzx%b& zDVrl1E&1!;8-|oSJF`^e9Rf&kguhUy6b9zZc8Rus*v1w0b^Qb-jH!IU|ryfx;Mz%FjXudwC{#K#94o*f-+xVoO|?3rKO`qmFRZ!A4g zx}L_^Bd4NLS5fikb%!76Gbb+YM?mfQFLBIAs{|M`;xKXY_OyQs%Y&8qex0BurLKn{_(7#q(o1vm|-iBmd%QfX~z zepqZ0j~e+MYA%0GE9CVBYITs~fQ$iZg(+lpW#ticUlDLb*btN+{aWmSJ}>S>cK>}{ zbrxd0JGkqj5S~uq!Pk?)^UaN5VviI``VG9c@mv|Ni~vX%FJ_tJfO~hHJ+?U|0lD&9&)=&6H9f-V3#x zYoH~4l$M&RfL~c%@knAmKf0JOC_5oF(Q|h;pq-(6gUu4vQrZH;HDFUiLqhNw8eK8= zBd2)ca20$9N5`Wlyd$}9uhPYkzzG0`%v2@^+w_AM; zO7T5k&*4)+5GjvyPsUVL9*}$Krth=pR)H5Uk~4jhm)p#$A_H%ux3-$Uhmq~w38!xC z?CL7lMm%R>Ni6e8c8GP;!)L&53SFGL3yFxBnIH1<@Uo{#ILGmza_-+h@^r>DNId;+ z#Uv&2c+GF1{!e^jUAp5~`^#(7A@+u|sFW1x2|5pyfJv&<`grw5_akq0p`~!pv6U4Y#Eg%S_cC8X8c> zUqR`6=aL%C7-(tu48YCxkqjKLup%!t=F4xL+s&UQ!e9{X$@I#W*d)S437&^k@CxH~ zJIS6UX7(kcWxm(1yWJzL=gwsW>ZEyqm7ok0CdX|Ar>1Uw&5&Z0xtN^PCfPs*K{tOd zX74g~9qo#IJ|7SQ`nI!^lc`-~)2ivn_*xlwOY7su6`?M-^DrS|;$sEM;cVCemNvVv za8bOizu)t+Ke1egBM-f@u|P_D6)_E%8o(-!jD}22c~M&zV|`1#PWS$>s-Qdw6CS1R zC2+xpjVd>mo<_?`NA3fSYGoTihyJ9KR zYfa9H@wJgL6#*__Lg+VXWJQHYxE?iN@+&317UN~_pX!YU7RKMi4-5{Dm*_sgZS22v z8!nx>qTSvpfIeD_RP0N!|G=3dpsuCW=x|7h<<=KTUY9zne-)QloPIF=ujH?tJ&kR` zQ1i?P0n~g?My22;P-V*WTYstg-NeN5O!Vui)U^1HgcIu1JnDL1hV5(g?hT{X7rAru zmwhVl>eM8~&|c*YouV!#S(qcUhmAy;`20&s{V%HN_#3)z!|GvN`$1 z{g*Kn6^&}#1`i|w(!9MRf2=lLZMh@v1=NBX*^ec8U9SXqL%)AFDR?)3z;lIch=;*; zyOd@^LPCE0s1mT7uC*T~mchF?p%?G!=pcG5`clvW6GZYV5-uu&J$W1m6{Lw6*y<5+ z+5EZc*nI|#Jj5n&RlgKaxjYKyA|_xpAUTAZW`+LS7Ii$`tDLZ(CzGtTJCtzXsQ0MK zt83fsDS;d66%@h5LbWSC2g@=+ejp=B+g2UXn~77h9^JYBCBe|hOE+b;Zjqas)FyOv z92w;;@I_C{O`rgRnd|^S{ru2Ky&aS9Rb=ZFF9hfxmgS3fcIAqCpjgo33R)`RO}?51 zm-Rh05RW?Utl#dm04}1y#{304;4@p1J1`KxFfz)g^5=xFhN=%>x&m3e z-t-Aa<9jWpRR$4w{d%&+<<{Y%l}G>Re=vwvB!d@V2TRJnS@^X+Y*63OFgY_tOm~^; z=Ql@?qJHTgReyTQFHw_a#ony4<4fI1sAn_abBy)`|?{RcIv)8$lBvb8OX zh=@4QWuphWU8Sru1}9}}yZcv0t6)Az$agxKzZI=5>M`Pe>y|e!Z&mVWKA?ekUht>1 z8`9&?4)XE~yIvyC!@;{KPYas?2(2%8r4lhK6%M_d!goZfR+H{l7R0)dkycWz#`{!uoo5F)=Z^$nII? zHC#d@wZ4bPOrf^e>U!&sS~rg^Lkn|2!OG1IsI5JYWDX4}L!k|^&(A|Tmm1yZS&v)vvB&D$+uQgIm6iLZ3GA0=#2MeT zDQk(W8;E%7Yc}QaJ*WzM1l+(iRtTHkZzBrCw`pU1?nQPQona=^qE0QR4m1X^ssrz)R>Pz=p?TeT3R}-b4{ zx&mw&t0PttZ|`Oz>bgKk3tQC{z-Y=2R%cYOp`=FE*2~K~XMU;0s;o_(C%;<0WB`PT zIEWVDQq$#RD=Y7$rFW*NAJM~ql71j3Hy&1F)UCG2%g&CCiE+dkZJaW z7&nDQD5yfknVIKW>3sxOHjusKCS8jkHYg;&CnuwUhufMcPE1WbJkse{j53zYtnj*g zyyWrXC}aSelAPQZc1vHh9OtA|CfHMAj>2U;ppybRCC&|J6#HCaFU;LOJNsmtD96Z=87Xe#mA>(cH|oZG?4{#T*dAm|r?0OhH1uT>qH_@%U@Br6ND zJ5NnYPOf0FR%$Ipm3(F74llgCNOGQ!z&;+$RgeMlZQ62M?`+uZOL=>5%^e1&CGnkO zu%DG7V1TPm0}ATQKCrq8!K8i&uf}RM*?-COj7VxnKQ)JbrHS$xDwB!6FgkX0d+J|3sN|;+s~J|AXVO=kf=< z>R3N*A%4YnuQ01`d@+EQ3=36d!QttG?6fj>CNM#)&n! zmF{WuSw()>JcF#=`#F)*v2%0g#T%@l&Ln>cn!jgZyojA)Mc<^}h#M|$OBUKW-G~7t z_Uku7&vJjW1HxTD_+DbanD-{2UQvpA(!Iq;Pn4eki!+R7HCsEj<*jci*7M>yKq0=Q z*!B1xp#gC;({D~DtPmaOmA(I>JY)wsGBVp@y9|`1OSc_hTsK?B!+C3Z3Lr^9`CF~6 z5~ZfzYHqCaj7(38iu$V&^e1p!I?ZQMaX%~eZ0^H050HN;M}ud$T568JgnV|ieTyGl z?^}~c{mf5SNgzYlX0|#Unvt0~WL7n0V+z}NbPB$%6gRe;z0do5q8vPd{?#s%%5Trj z%KFs5o`im+*qlU4>ekn%>usICGyH-cZvtGq=l9Pqq<~xU-rZsF|Ct47jg6H8ObUDk z03j*CUv>BP{;?jAO}vYBa&!a)_uV=Aq=W=z{4?uP6p3AU4xe75kMZC%(f#6#;-I1b zdr@18lF9fWk|L&VGt=()|!ySHt8 zq|NfG#r{icf(t;i|CQ5Xyg@~a=mN^4#ixZ;z9Q4mHEHQU|ETKfqX*edoko=d&__#e z1R@Szcn5S~zHWw5m{@3nGO3HJLS2lI|0d@n8zVqLa z6SeXBfeRNU^BYMqxum6_5Itg*toyKKSl zVlycTkfW!nO@qiTn4KEIt98|v(8P<5R8J+EIV^e~6gpm?+`LEm!B(KRvPreGg)#qyMGC<+tn7*fPNZjGz=;*N% zpuUe^*BmUi%K-FZom1P$rVZTSE*{$X%zy9f8?d_Yh@a4rle3eB+Rx$}7r-;=gu!)Z zCmU1O9vy_}nEF$HS`jyLNlI>=2UOJMnVCXeo_bs35)BBx7#+yh)1=hYQk|M-mw%Q4 zT@PG$Au>6m7En`z*cv|vlzESc{d95T2tU88n9jq3d@t{A3oEPo$i0IDy6b~gYf6P* zmK+oAl~ddA3D;8|QLDg&s{p6(E8aIH#jwKSev|QbQanI|D;De9Ow9I^ay}BV!oW$N zk>ZO=Lru*OgD(%?E*@K3SR8H4kIfEjqpR>MwM8wy%K%JKx{Qdgruw;J3M@H(b$f-i zO3Yt;=>D=s3*FZ@do!5!dknYEPv#a|-Qw~iRay0#t%MT$OXXYT!8K-c07IB4L&*a5 z8G~ylp*O-Ij=9_CCFU;kwU^p2&FqRTi8g^tg`P+1Ub_xPx z6tJD*vL_-7&Y8{PCTVZmm2UQWj}J(5RdwuB=C(jryx3#lA0L0FR+;jodv<{1**7#a zuvG;PZZPqwvrA7;r@`;Lxlxvrkm9>o62dAg+ z0EWoPuEeK;v`kpvodrU11JbKqZwLe;53qCH25qL1(J@mWxz**-T&M1pm4};8N`pw~ z(vVhzPN4x399klP#~voe<6KF7R>nU znM%6wXq^i89SG#(N2Z6A)|QqZuC1I9&gApeXZJWqTa9eMsPfq%DXS`|GgL;0-Nko2=pXvJI)eAl^ow1!lNwYq5N zIXRWyM!eBY;%4PE2N;Xy`!1G2hH7Rv5$&LVI%8JOja!r91W-9MR$GB28P`~ z7GxJ^mpCx^1EZms<)BA^rAI?cYd4D@8mjV%RZ-x&W()~LRDNoAV_NFOhZ%F6JL&#{ z6wY&axYbd0;Ghn;9kaVdn8VyQ1=rQ9+1sFGt3~EFfFlF6e?Yk^E-cj1PO7t+x>PD` z4*@J;-|mEf!}X8ak=h)@&0a2h8DB-|hX4F(0Ve*-E}g z;N@=tUfxt8Z+YjV#yb0KA)4c_Kj%b^vyHn|N>TNzxaOd)uBH+8gZ*Psw>9_V0Knx* z2NZ+6oSX>kafz`}7LdJi*kM^Z_z9n*#-~}+i0qqK)?5RvatJpU7mUxT2!VK<*l#;u zV!43RC!%incmge^o^yZI+Sl$~P*nxY4D99vw-{BP?#|)KZzsNcCgjeVW1Xmc>{=Tn z8Nox9mwJ8wN?u8+>aQI&j{6_Xy>~R6@A@w+U7839Nd!SeCwg=tqDLosCrpOuy(AGL zdL28!?W91JfkH=H*`?@~uE;hfa zg~SIN4P#r1COPwAFAjG5>I^%^U$nI5p*9Z$H}gFwKu^47y|FDdg;2a0Gfhp9?PWcq z?+aW{i%U0?1S|NtxB$#_)n{ka2Puk@4@ozBKmCu+>$YYF9KObDp}zQn@{^yGB_dhO z`REpn*;sU-h=((S-}&=Y3QCALUI%6xv$;&D797WITx**ZiUyJjaK%EX=2Hs`D~;zy z`nnXRaSQfU-=AV5qtw8d{YZc5Z;2u12$^?8tDM}tF=QSXRL{_I>0M@+b{Ob|rY41k zh8q%(I@;UsEUa1C*l1d~S?i2VR0TO7*v`Ls0^`7^Wo2Opl?pTggyFHEUi^{^8|Jox zEMQlgGWCO<-L(2ya*%zqsi2@>st&t>!X!*zBKi_<_P^-n{*@Vn3C2}BU^6WdbfAbd zrP3n`U@H{?+*f-r0QfpP?SmI(Dxbr_Q@^tl3o;x+Xo&nV6W|j$^n6z@R|W?>DGKb?Pic9AqUvb{{CcS}+D8hGI_Jp93EjEG&@t zI^*uSa;ri2(>rMpl?NbQ@KAN=t%E9@2h$$Po$A(LQmSnaHQcJd(IvEY`SMA-=hPNu zbANeuVXRLI?mU2zx0qwH_p0yHkf=Ns_1e{2aF!E+A1yv|@c2DOO`zOZ=}G=^Gmiw4K0Du1=rLUP z=BnmRyHqYc1sY#snf+rsoa&V-y6=y93K!ptMRqNU?%_Pw9AF;Pgp)bQp+d4wubace zk~PFiBKtbC=Y5&O3EHpy>Fqr0?m3*@xGwsKAtP}72SdjAm;Lt2U-sLxf7x%v|Jo${ zInZ#6eSUWAc^b~usFlu%zsP7+cG>ri{b?t;|A`0JgltV9_~?+?IvsfWS^B_RNSes8 z68Nj);pa|1YDCWEJvn6XD+=z`<#oKq`vx^pnJRg@akw0v*dc?V)LHST_f9_u(Vi3A z$@1j=bL<2Fe>*;9_6P{t$xjc0fZ)Pk31M$R7Rkw%@`Hbbh~4@tMC|{gO}y+=*Up`+bxF_g;?^oX+!8=)q*!5Sdmwoq_#ORj|nx3CZ+Z!AG zkrD3w?GC;t=MaiJ*~Kpiji?#)H-8b&)OiAF{K?U8I2|zC`+{qz{ATA=jc*vy>a#y4 zLrTDGX?-+#>0}$_3r@u2uQ<-~4E#|55}?lhA6<;j>y*AnQ2ie(+jRz*r>EBu>uc$`KYCpa2ijKP$}gW1TA3EQy)hM%Xcz0a zAVA%}7~!{cnF+b_#-QpR=%sA+T_qKkvscG3O4 z`>_MRSHnzZ!RrJvFA{^g1oC@0!8xzMZ)VeQ_qS^c6=aDn+8Gd+I-;$TxcZ}xD45j1 zo`#fEOTg>z%XvRn=nS`m{0v898i$j=1ym&D-G(H_GVuyzG%?atF z(22u{L)@1(;@g;NElYj;O$+cBW23JiTIYqmRrVz>C3W~bQcL05JMnuoR-!3t&k`3s zU~-ke0`f8zlcCdj6<&qT6i&KF%ebg@DAqu~Zu>S(dKgmQ0ROGCE&tkfeGh9=**+&t z^N{j!7ChyKc%6Sdv4r1`PlgQmrpLCL@J6d&7-_`5b?#~mw=OeN@gr7u1+QvRE?(5A zZf;!L&ZXU6BMyseswT?0B2Q=-!&R4yM!<#ZxQRPM0;RHTNI|N!VX<0>HYGj4p5EL z>z~tT{eqo&r?wc@U+Xy+_PZo{t?Ab#V6jhFgt{IL?3`XS{&flkf?O6>U}cL%&Td58 zOcmRJgsg??TrrnHnAH?uNceW+aZQTmpT6g0ESM>6_jn9epp_6k93II!t73Q+(FO(2 zej{Gu< zZuYTgui%l<^X623w+rS6M_b$c_C!a=xSuPuv{FhZub=03{pR^E(_x12`-as=BdUb>Gs`D$?`^RnCQ|Ym9OX24$r13uG+e=H7v;uk+HL8Ri4iU}hvWUyRX6 z-WSc=@zP|XF*8Ceu#!R6@rD3CiN5j-`=Y+G(nex9DpE5)_lIaveZlmb!Cm2k=(1V% zCYxbbeAqKtjw^=do`=hAxqG9YvPvUKC>1AYRvNrj)SENUzW5g#M-JA zB5RAT4*AHIL0hqQ+j$acLKRJuKnC{dL;C|w2|~_3H8!T(^PWda?%|uMAbcddaQDb* zv-jNHOn;Ol*3O68Qjw5}m8><=|6V%upL&e3+S;tzDFY;1!<= zE-=j4y;Wc%i5iU}iT#>pGOAbbVZI@3DmSNuB_&SD1KT046oSFSB(GsKF4J%f<|d~W zQVoOm)GvHjm~9Im#x%ZLcMs2qH+SFM9Sy$caWd-vO4tiwATaSi%zfSi!D-xQT2%DW z8n9~*F;>InOxm+Bx3AMEiN(lyynivPhVvJ(A{Aym@=s8`v@{+ohCtwg-W#V=vDfJ@M=`>4eoPiw}3;}T3Z;tqamRR25aroHticI=oh4d zR9?yfAGYOmFhYMT|bp)t`fLF*Z2z87`%POR?1rS-*pZ|7g@ zducwL20SgAM=O}ti`GNbz z3Euj3ot4pehxj+qk!n}KJZf;fzUg)KYH#A^2$ZtS@9QUSWQmrIM+*mYAt$rM$4^|4 zA@Q^`A_?Q#yeewu4G8ACgg9!q-_U_=1P$luxazAnx*-UPNZSH9=1QN`Y$7;3_f2zvLD}RbaUr@M;1Luo#2!o%nc2nw@ zDt@3uw9AJ409V!0Dh%ob?3P7u+*po&+rOSeti zzFzE2I-l|GxcE{77H%pd^GeoAwtI>Yv|fa6hpPwCU+$`Fbis~)*6UM9$bgC{q0%;t zTFmM9(q$AKB@`;wP(1B~k|C^eUEYFkhydl2UNW(&a$^HvhZoq!ft1J$8iCE8F)$U* zRY>IC3-iO?Fe^Z@n3$T@xtT7-m#-j_Yn0u9l>KuUBF?-^Qcg~;KHb~NsXRyRkrQg@ zslI-JFT(I%EfpLTS%b8@z0V`9>-H^DI8SQl_0Cy}t|Nv5u1I7HBQ0aSCB zhTCEC5J;Nkx?pUYnwnJ9Pt1?}9sqy^z%W)TuVB&9M0OOnOV`Ei?Cj)g$jBBf)O&!k z^O4_C@vEFJUm6yz0!q$_9t`ZQA2E@%X;1w8y?giGlD@a-jbHiQp2ig};DC3H+h5v< znCoSSpLrV<5)#~c;DLmz06rXiA}iZbe2IvNN>Ei)WcXV~dM!BS0`FUqv9Y2KBekHv z^poLre!NZ3~lXXju?1Ra7=te+G%D z08xzai$r1GFL(sX8kHv@Aulfv7#DJ?&NRGn+nC)&k5d5_dvKvZ#lx8oi3|&>DSqgh z(JTl2Bx$rR*?D==tD%Rf5OO-Yv}S2p-5(V``{5lHrF(79tgWm><=neDepOn{MaRY# zJO1p<&wqWQ=AW+ds;PL#^}QT|Y@+)LD$E6(XsL7IlsC~4KAm{N;6L$Mg7 z-=G>pE5fZ7RbWg3WGGM1q!cvwc6OJPmDQ4`5ZAuWP-aZkzcv>_ObZcvoL3@p)R3LUYv#G)$XgSug@KML7@fP+gI(kx0=iQLo5R~2SX&Q%7P>+DS>Fu3IE{uNos}5 z=h!agWMVG+=AzHsnYlSR^rCWOBo!wr%<}B%i3!%njfknKwfQ_GxTbXeHMehV7}m<9 zVhzHzJkE&Aee%BG>poD~c`SAdwUFZPervR~Rgiw3-f2gPkco{AvwL|z4k#I|`hScx zH}5a>j91!BFHhz%B(NFNKN54xO)DrUoK8e`&U|lb9vDDifWASLZti**Qch1*Tf0gT zl7%}?q857r*E<(POqQTwn#k}XIavUbybsmZ{yhG8kDNnwpu3V^JEY4?(arQLBu7)8dyvd>wYdVF$DG=#rv~vt7t2Wkz9PR&K5we^OuK<+Py1 zU#V$(v+F_vo6gc}l-wf#jdCo4T(^AJrW99VJQusVdLLzS6I{MZJ)nH@4U3P@4ah1i zG&Hi`QX>oMQBF?P_ek6Ga6PA~DhR+S36{Rz5l-FQ6(YR|er)>ej_4 z(f&h9esGXWU1QkusMTe8D=8`}t=X9~m|q+FRBjd>ky=uEMY z3`ovffpEP*Q%2x8;v8Z4WpH#11|pTYa6!3PD=*G`@N8YXUd00As3T8#+}Y&Ol=+xN z{;D0+an8`>$Z<}Y9ZefN9`USXjoR!U!?pKsZK}G16@$sx3>M}o!&3~4><>tY0-S44 z4I88-%um=vOuI+zJoeToxLlQ=p79y|*zY)fb<3KAK<0)P0V=Q{1hcdJ^eySTT!q5y z>};K~cf=Cv>d_x0XlR-vkk&mYM1b#5M=sT*4=WR!;y3&QAqHfV*Rz@m=q%})R!&-3 zdNlFZ++0*{LPdtwBw zZM!F`N==A;s{ zvo<@}oG|eRkGXjxo+Pnvt=Bka1_cn4kh^T#ZIMdI0RAlF!v%f%@~HTDQIl`F>c2y^ z3ROwh#GW|rGfEo!J3FDrT7Z-7b54%(OL%_1S^NB>N00i4C6Ot%({*$uWw0u$&$qxk zn_kPx&feSI+1cBB^YVvy#RRTO`B~Sf9P0FkQ&b+9)fY$ue@uJ&b8_HT|C0+)q^~Yb zj*rY>0fbHL1rBgZ(?y)CBWR)SdHURz!^m$2Izj?+`B_?pYt*7X-CY@^l$6+=pAHi3{vpQrpb%7F{bcz!3a;Vl>hiQA zy>C$Li&W+4H~8>a9#}lvbgzkQDgffEduvL_Yuw5*-BP2 zU1iPZgf|J#o14$0P}W0^q5c=0Cb_w}^CSa6ev-6oSdzY8m7a}Rb46W0_A(8yvweYQ zI^8@{*>;E&ArmuBm{Vjfq;lO= z;v>+_H!nNhnaz=yy`8{uld5CW?=wCCr=es)K5Oj2gtgStxVfdJkk8a=Q4xBv z*KnY}f2z!wZQIJV8kZkhRX2cC6Y56iicXoKFEIsHO8f6}UgqB&d=GBj zT9}9{P)u7LW(m3#a8$bw4G-^s@Z20fE7~xYkEiiE+M*0_s`JU7d~y&uui1*n+iBvx6+36Vr}i8t*y`R6D`)f zpmYs6vlQJnX+Ovr zfu?_VHDq}_3kL4VRNS$;8!C8t=u4pB*x1F3J#}sF&!s;=tgQhZA6`(m4rwjr|X@xl$2m6m4rfYh?K-k!MKaS z{Sd=Re;z9dkB_pcD@xjPFf9?sxN!}yT25GDi?fQkM>>RK+dbO5#^~d8n}-5|YLeZc znuMy@vS_7|-Up{*ivPXv+x~j|2_>qd!)m~TK(^(0@$$n$S-oDDX_#d9P!6dvwtKMkLLU-|czz@`uf1!H zGjs>zXjt!AC-52zS|U*nd8rm~ST2QBpw=rkWiY*Q|7+&>*vqipI~{Z7s%mOo?XC`} zozGf@hJ}~4drgXSg@5blFuQK;SS5_S@CyfpVHou`BB`NBh^xA`Hc|cXt}-Ag}kp<95*={hU}9W@ZJ2V6WP?Cjwhf?uP*XM;;Qs9{352btG9U zD8BJxXz8cU23RjprAvDp4zzGPbv`49dHaQLd=wE7sN&ANbP@&mR7%R+r+clljT38n zW9>>956^EoJ$NLE5VJkVR%EB~Gkh5rz2k}v{TLj~?>K*%hGd-nR;&`?wWZ-wiWI{; z9>4lt7WM<1Aw-ftQNSbFrcQnp@dao`tvU2X^x#ip_CcpB?IwduWkwmR(bH#u>-Nf; z?-+;e?b6Io77&qnn7gsHOO58tb+73){PxhUmWiqO?%~rz^w%wfujWrG`U+T&g{)qf z2Mu)yqv(Glzc%kp<}{;9ck3M^Ci~VSxV{yURWkLG!U2szl?{P z>2R3V9t8(qqaPUr{$CCy7d5r0=x8maWKrxe6u8>g%9a}jLwo`^g+?pQ?gSW)vVV%k zUfTQ?1B&0lC&qU^UBh-TH;bKfpZ&dD0o7gM8}!1>w(L^gM5Hu)p|HJ%86O`%I0%Ls zTk5uRbc4JCF0OlgCOoNlgKQ}e^TXt`uZa0-L;b>=$IGVEuM=Kwv>fX9nZM*SpL~ws z97^1B>Rrp;8oj3*R17!jG?n=I%v-gAfq{lvzWv>Hm)hZ^Li!g37mvMBbL)$W^aKP~ zE?oBQ4kuu|wTa*&k(jD=TbUz&xsvOhB2uS?Kxo-hF^GNMrGOJjYS`bmbwWV`Nqs{j zBL{F^5kqtP7cLy#Oly67q{`e_c?s+XC2&Sr1;I8#tw1u7S4;O z`dpBa645$}7u>-kAWjm5Of1Ik%_k{31ix0^83Ms6_)>mw#p{B&r*p$rhA%Vq38h8g zDSu1w3~|%UY0wiR;l$Zfj_S)lS;YShqVfOrO*RaLy(OhjPL@D9Ae=z`U7F9y_xmF> zXZC$&(|poTFT@5~;%py*qoZT&(SbCCq0OJ@^h(?!0>D*!gXOWnVPdE4%Gscncrlle z8M-#AN20kk87Dg;knubJ%P=JjxAGFeI>Fiwq$IeU0Q2va(vp&XA!wfq{XC!>{m zywpc1BRq|mi+ZSdz%H$?&t_qJKA?%l5198n<@&B! zA8wiZRM;Z@-Sz(~7NlA5ax621l(()-edBk>U<2Q4@9hOPnrG6w;|SYTmn48df_bBs z#S@gGcX;hb!Aq}xFi~3za0@Xcb?rAVY()%RM;G?Vz+@2d*R(WlyC2_((Bt0i-Ga`m zW-OPmys0bZP^~s1^m`b4KG!DDwB;d>=pi6gHB-TLdtnk!L=`I!ZMcRKvy%{ab`A~5 z3e#iG=jZlLus?1s2!g?fY<4Yr9BJt)@^W)~KVzkT9A6r~3bcR+`@z~3!s+Sh&*HB@ zU+44NUehmiKK|)IZcQGU|IkL7w_@dLM@1gloKzV=WEYL|68Pr7x$uj7a~WSqP z{XdGu-{VoymhI^Bn5aDn0{%&pV(s!*$hv($F)}uKza8o)(K^rcCPKzsNUxuQL*fSI zltSLQ_F|q=vF8hqBGde8Ys0{S8Z(Cfg+H+}u_(y8Ew9e%*h=I5EQE54^$lg}F}9<3 z7FK7+9`K*(bP#zcWm|w-v<%+ zg|AI|eK-mqQ}99Ae)-rqUDZus(VE*ol8|Ws6a!%<2TEpR z-H`_GnCjP3A9o6LYusC=EfKdj4pKy8l(ncrDaFdIwnwr>gc4R(+FB-GlGH{L127Z4 z!rl74-W=dis;XO|`Zs_66tI!hZ#%&1Ro%-f$Qb_mp(m+ka|Ji1uB!UOr1*!6|J}QH zBZ<)7cZYx|7c++WWuCW$GA0Bq0AJ%Ya%4nMtlFBf$n6s3Ylq4m(;=HFuG&Px-Q!4wel5>D6HABc@bw>1SLr`gGC|`=9 zD=1sqMf!Q+Ilx%olgO!|sK~adG7wutxjyY1Tkn>Mwx(_(5BJXs+Mj7!r90Os8DKO+}O)LpQF?l{&8=o12$FT>A`DY2xGK?d74GsX6j8kf1c+H(uNhUr;_HLf$lpxE2!>-X5)19zl`ZZGuiimio( z;Hc9Bn)I(-MoALEtO=v9dIqBc|_z<*Ro6D$ix`lBrNlQSg1x*4BC4CaD#c zzd0B~9{8;3d2nb@%}hHaBNHxaJWy5}Mh%7LD=I3!gRxdSE~7Rgl2=A-K}a!x<1}O# zQ^g!=`P~}=vJk#cZ3Z(DRHEHI9f4YNom_mJI%Te(VJ_m{-rqat<)7TY?(cr~tmn{> zx`?os*YVk?sFaeIDQyMKu0SzGeRW}JWm%CZer(9|y~!sz%F=5Q#KBW-ToaR(av^| z0E1im&8Fue_nq0+E}mS|ulD7vWO<#@D1b+MA9N0v=V__4SMj_1$aUsX`y5Sm1R@I! zQ`E8$N9Eq!mNRp0v5))-V&XyJMb|NJ*=q>G2J!hrNbHGK{y_bnYt< z+EMc!0f;dm48$-cih5NTPK#bk5?>xG4+0H1x0+gNk)F18M|hW_f`Umhy`bRka_OR9 z_;rdV967~ss#gufj(-UytEfoLIl;zk-7-%b(AnPT?w;UT;`GYCD?F`CU*Rm6kC6D{^4KcQYy{h8aUsFfa$$j@LuV+S)kRI8Gu%>*Dp}#eda;9MUUNBIIAGwt_{isM0@&VkJ$Dn`twJd>_ z{g`ZNw>~{=d_B3cx^=q6{y}SK@ zE}M4m88~9&g`EfV8M(^=86VsRGZhE8xn3k6>MAqG37F<4C&PhKv{s;$WKAr5pP+GU zm_<+TP~&qpJhOG?6_3?Gx|_o>zU8?SwwNU#Ej4evyStl*mrY+UxW(iH)S$s=YL&yv zUQ@H8xcFv3(*ayfnhNnY-W4qFc!HXA$TfQh`>KmQ!$U)?Y;0s4@rx^S^bir` ztPQ9YSAV7@R9EW+kyQ*SR+fLvf_E9#I8P2WySD!_1fve<3=8hBe)ec>9)0=n)>O3@ ztf_y07%CI>NHMNU&Hsi2Hy_{Z8y@h6XXbyspR#d7UqnuBb@Jx8BPPCu>Pgun$78gv z3uedhuC@2!s+)zy$P=;kg~LODWH~!m=vL;tIR55rV>)&!ll7_Yn0O z%Pc3QdH8RwzU$%d&-<3*muY~LGYc;&Epq7*?!SNo8r~PxUu(IVjq?@c9bIFjG5e8j zb>YH=s|!7%cBu9KH97&sCxJJpq2o7kYm*+i1VJrV#*dH*mFp*DP?Z(H7StJUT?|f1 zOy2Z&&jWJc#n}t~dTSY7T04$THO^>~YMZ%f%U(bP@9gfrHioDfuzT*|j?v?LUrl!} zDJF|&uz*M3-rn9)0f5rVpaIu|e-B=M%7$M3^yv!TE&L88X#$9KE2i?VNfmTL{hD94 zv9^wk+(LB>S~gT)@9pWKoS$KXfWeTXShz5zDSjBgJnptlJ{_d=z^}||?)SRT$i##& zi;%pA6b9gkG?0kF$Dvh7(7|B#D4|RW?wB=J6LTgpH@SF~Fis>z)Gx0{r^q zn}yW_R78+Z?^biiAauN91e%FGY6(IM(Pp1h48$Zhyy5&?9AT4K;_tzWD_wVIqwQ<^ zq0(pH`nq?Eo76mPRU+i%=ilDjwm~R)sl zhOr^{{2VtQH!De-hzv=SRMIVD-x_;%@({5k2$-U_7db-ji_j#Oc&$9&#^WP+RF{p- z1+RS5mv8X7=zGzuX+?%mwpPE%rs(N|GyAZr0Tz^0d|$38?5eo5ygUSx`>O$wXjzY@ z`0~`qbA;&dy7*JjC=(zE2zUgmt9zVnrhm-5x{~=nalY*r18c*F%?< zq^6x7aJHljfhZ~UA>FCQ)z|h8=#z6PcmDeEj{xIT@9Rq}VX+$Dvq5(9d%qIio(GNE zQ?Y+YYAG^-Oqb_MjO`(L!*j5NANZQ4(mV4Y&r9=>sH}o#&%af!aYvTl7_@ADE`qQ>Hq|s58)`cI3Mo_oChzw!R$goEX%fF>7zfxQ)$y^OvP%c|f@g1~H&HOAYE(CySV z`;-M=vGuFp-Jh45bQGSPkVEW=i0?adjCzuVZ@+F}8ZDwt`y={^3kffx7*jP=_ z9RuBil#~<@3rJUm-G(i`;Tg%-hNq_9e8Tx^A;0QHXzhh6JRy)y_tkMy))R>y!tbFG&57(Vl8-^zGu!7CpAxigLS3wm9z^i37nOc6>vgR#VoW!LIFJ%>tTVwL+ly7 z6KB|HJJ<@Sbkm=o!lA|#fTf`WER5XeuPO-pAp9vAa$f9Ut7YQhdTg&r@z9eo+D zUqeN8Q$t<7nK-vNLdEDy10CY2tZY^Gx263}wSLZGzwm#%1-!LA971dN~mbV#?Uf%gvZy{y~^Yalk^L|rQ>9NBod${kiHdY7PTaaMz z#TTJzVrgyx_>ZX|B|?J=RmNMg!G-%O**W;;NTNj|Y2>moc zGw2=3o(#x%H%wUmoaQXf&$!`PfDK-jJWOHwYWagbH2Ig}li_(tQB-3MpSoIqQ|h-1 zd3brua1c4uP(KBYA7U|#YAzu~DS==^M?ly$?xl{7T%Fh6n%DDI3aY}}7(Q#;;E-|+ zAM!;McL`YKRJ%OXvbXjF5C^D{0!aT80uui@KL4_|^PWvD%%u@PYCAhlOIK<`H3+S$AsV}1(bP5G0Aw^RTl7HN1R6M$#`m*t z8^;-pfK~`}A>?d{UH7g3U0|@X{UyeAVd3vI3M=BLGPIW|zM#(zqZFH8okgwA%6SP5 zln23uC+&a!cMU8Vx?m6^g-p4Io}{RoZW^=%FR0a^%5F@%Jx-yiGH6b5Rq8 zg)}fM;{CJFv$g|%|D7O$PXDOHhNA>du03vm-0TBhQ7Xco!wd@BX9Lb{i`(XtN&_u) zg*c#FIv0o~tv)89tUhJ{gtiyQ(7TCBL*LemCnAN&NYxl@7X)zoDhF&BHmSN7ii$#x z``LRh5uhp4V5cJqJUaJiSPHBth3V_-yF>kpU$jw4xWBz`16|`Xv~uYN$sz|R%s-K_ z5oMwn{GPQni+U$25MI`=q;WP>2L?CrGV|~z_`}B;i3vp)76ahp-yE-&AI|Qx+OzJeu%%v$WBFFD>L>dg)pDF?#yHx>yNKO+K23|LkK8L~6Rm3<7_D zt2aXy5 z2n5=QgBeK+Fj4r01AIm)`KU%Z%%*!2?3mU{xLq)LQu?~j_AXm_Rnlo^9#4(WmTKS} zErv!ZKa}%I67>0=0%(^zbIa^%N9Qgb=_xn*L~NCO`}TyJg+)k6`r$2WJ}5Kf&Xzuh zA$)2!XCTGT?pSUD|M;~_`KXd+n6v>p#%W^21g}RqiHoA4s$zw`^#ph5xlBK)?y)1!h0JITSoeUx`oSi7Mfk+2^{`&Q*M~_;EVCT(kcW_i9 z)m7J>*w}6lNeTl3m!6)UZnDk$a7WhUEyz_$EkfPQ{r1KxNBjXJbf7Fyh7m{!$gg}D za?EvN4n_p}ORu`^Z`=%9G_o=l_1srxVF}6zhDGKX)nCYHb(WO{WEHWh`cYNnPB8ye z{oG|5^&4G7f9?WG36RAH+ZF*Ipkgk#$k5Q;%BY)RuZ?qv)1@y}65Kqg!xWEI@Yj70(=yxb zm_P~>IKvc9k@mjuywucwfS7#L*VQez&o;0}qi(aaAOC%8Eb|R7u9u&l?zp{xzE703 zReQ?39$whC4o##<27}ZI%^a|;pA{-RwMbZKQ1gQDGXTW_1lste3cN#0*>9{1dyLB3 zWOQ{Y0LT*c=;Fs`UlaJ(Cu*If8A%kAZ)F!0w9MOsFv+c1sZP)dELkh7nyiP8X67MT zcN5Dk&tei>gEuDk&<``JJ#oShq^&S#U2V zYuzj@U4OTQY4~_cE64^?-mU^!bTHx{9IOg*?zLXh&%mrIDY+I3O=t--C6V|;i@!+X z>Tk)Qrgmqq8)f1i(NLg$waHn3k>`jK|%OSSSd&vFm2TR^9<-ooGqo$S~s5~4{5xe5l! zYnhpkn3xKa0e_b_{%c}l0szw2R-|YH=ifh4`a*GoE5uSlCV}q-uHLk#r>C@}R9!=z zTGaDai3R246LnP+?wy34l}P}LLq;#6`~@Z2^M7uGU;wjMh0Xh7p8Mh&_PeVWz&kVT zGwt^C(=d0|rNC#mxh;G2OWi*-Zz`Bg8>Aa@oG|&`X_|r#wldT=KzKNGeN0D(2g~2F zg8W{e(Y)!rc61?dJSiV5D{a71y~zZ_vlFYvOS==`PeG1Nx|LHEV&lnq~l#PoU>j?`4sGvN$u zYy|+?#)~=_tW{FJ|N7mV!ptb_0e#f z(xmaqH&5;X;tpt_gxy!4NlKqLr)f*$^ z^Jeys4OI3@62ZrrH>W?`I&bqAWBz~1o%+Aw$2c*t@)VV*iZ*32TgPL_P7M>{B8|6w zeKK;R!9QNdTc@YxbRtxkmGt?2`qRdB$^Qu{cv`4rs?J|H`Hw~bMNprGUkkvU{It=d zwsYRMX@*#$y9b)9pd>F(;}?CI;=!LDyZXJZ@5xpK{|Bbr2cS&lwp2h5)>ukjI!mCu zcIy&KyLEiFKK?E$(PEQ*Q_oe&yz>N^r6!;3=PvAa+f@~$rI z67^#yX8VBZ>cf6h20q)LqKkWXMLZk<9U$T|14yY8JH(K%TR_CW@aDjL z9tcZH%ab-#Dm=88uJ#DIC-6ES`N~?(#$bwZuXqRoRBV9g8p11j{IO<~uU!J+;XVz; zNkT3p(O1A2d9+p&N<))My}b?5r%C#+riZLEE1&<>FM*?vXzy%ob>D97TVqeRYIecPua82fo$pSlnhN+`OoPlF~8DdL^j zt=v5}mb>jjsaxsneh9ML))+S(>FIa(3Gnq^?lIA^t3OFk1XR^mF;@X%&MA?=C2f&KpG&1nBmU%L2627xEV+Yd zA+i!{CNQp1@NZV$Z2+pM*4|!C0HK{UFL<{%`|Wm?WWVsY=dfV; z23Esj_oh}hH#cfzzP=J6pjsT9?SPRZROHQ@jlPIksr~&6f;Hbn6+9g`e%%E7xXprm zJVXcD%>N|Pf!auN;(5!ekg}fM!~p!mhbnFKA!u{04oX@;fjW0CD>#KXJtN~M$licb zqIH~EPEs`j$A^6}uSf4ZFMx4`J=0`j;s6p+il$2B(S@MPG(N04C@!P+P7R3kH5Z3t z^9TAff5`Qmwk4ER)mA~nRBKFDR!wz03RK?AN{RP)tN_B!tn`^npvW@J2FOxTC{#?= zjXS@#fa8bsk)nQy*qCK@8r^I39ERUqe=<&1zS!>>tD|fNG6{m6iDyITuHry9kirLZvFH;VqLz z<;Bb6mB?QGh}q@Wd_u3g4v~ebumVD3c&Zj+?P5=Y5*Df{E6YUl5EM^Sbsh^o-G)@B zDiFY;j+MDVhLV#&jRYD{*2@O6gqv@u`=?v9rKJ-P9KueA3cr(ISqEZGY0JxasOd!( z$T!Bz?BwLTURJ+02V6%|64bY$u%N&Rm`H34l3n{rR*c29!v5C2F*ND~xB}DHX1DGv zt+zV>sRlbUyP)@xx}yTCqzKSk*4G;(2|B+TQ3xQ8OiG$to@XEl%uS);=H~r*uj1)R z8qUT~xz+q`R(bg@kIl>9yEK8f!mXtVWckhhEG75&x(iG!iBH_*7;kazECP}fxV>^S zGh_D|t>i~T_twRT4{r76jJpYF$SKNRLD; zX7VK^y!$cf*wFZPD)_G8;gl}vk#6-My6O98& zu-~ECD^Gk64*yn>k zh~R2%nY=^(SXNkTXzC6KF2=F<&NBU{QzH&$P)D^eFE{k{LqTBRW)JYRP1X-DM+|DNaX3sce_Z_!h7a@-vH>cdDWRHmh(Qg4sZ z!GtkCqqVaBWq)1N%tEzrx&Z+czjv+-Vw%27O0Ty}yV%d3OqLe;4S=jPLcYB=zkJv; zH1yE5VSt!+xvl6KE|0h!7)iJP)O4Wrw6RF0(RMm-pgMaG$ z0v>?<=nNfiX7Cg>1KJE6@BEEhV2PGgWf?-d-{m@`?gG4jB=Rt!Ur2mu#ko*Oz0BHd0A4uin zwn88nfjLwS!0Hl~7GOD<#gBdxJ(-I0x5J|4jC3#A|b@hxUanli@G%d-{S9Yd(OQsyrYD@52rKO1s6~9x&f< z7}f!}i%T@eRP^&0eKD2bwapqw0(o**nU85`R<+J*+nrWf%sv|%o7p6F=a_+Z$B-DN2!H-n zSvbK^)J||Pa7F^xCOZcQ?B%bHC`+IU0i1Sl@F>+2PDcK{?eZ~T)&L%o1-_y3vS_P9 zb-HTzTvpgj5HN>P4-F56QXY7YH!1;RB3Q)K+`__XsV|v$i*dQQG>8S(6%ssJ!S61n z@AfwcN?xK3qPvsi3ce@*)a`(u>UvmTnA7T>`z0?cKOaC8X6e{b<~_0YPc+FuNDZV2 zvzzx>*}6eqowd2S%KR-Ib1g@2tzd{4Km-Q1;|_T7}}7;Vl5j!FRB!^LvWnR{p0 z;CFHWmy(o*F-ZyY{y{1EfUqY3)iP;d@^uUL*QXi~W{j-IyHfNthGVw8^N$A5 z{MMo#5;ret|I>@If-9ifHN7^M?tWCVcEcQ6m~V#u>m|I9oty|#_iAfBTX!BvO2Ym9 zp9k!sX`P_}$xD^vbmHYDl1`J2dNj)fYAYcA%JTMJlz)s=^Qtm|XcfM(TV6Dpj)WLJ zwmC9G<*oshAL#QxLV)SbI04BK$6wR>_-}k1vtcDAB_SapAnO(s?pv-Y|1LuK*i6V$ z1LTE3#Ru#Q;J$!KFT-Xw+EhfVP@ln1;d*>_S^?CkZ^9$r(oy{hhK-iA+BG_Qw1%!? z8O0kU^5&J|(&2dJ8ftl&YiRqw!EhM2hZo0M=#JeBg@bZ(0#gv9Y0^q3Hl8XmFn#=o z`oT>b8}g6)#&0`$^V72^h6~mZh+Wmh@?d7IYs3~{*s1RF84d;4=^d!PE3W`oN)GWdq15_9#$`S>(`tzMIb+SLX~|5oz*C+LJ_% z+SMM7X6aIRm#|R?x!y%^Lyd4m(ezW~EC4o17=|rHu_QH?Ot5y@ln}kE+Q9Brv4Fzel#6SFR4 zP&9Z~VUf~f$_z$QQcxL9=vM40%iOI}9#$?2>7_`W_(!C%PS7=OL_rv9AQr0XBq_(pzF~B^skW zEy%B-p*p;dY_g9fB%I-Id~$QUfY~x%D@fQjav%O&s(YYevok6;dhjAF(bMU|edzt0 z@(0|gPM-3ZfJuE@6HRQ6D*MKCHFH#_dsyuC0+UJkKuU(YT!nRj2U35qcXj*SHNG7; z_fMCeo@My7-pC3)q&)ZzM+#M30G&6$(Y!CwV#Lp*Q}8Xyl7Ae?WV$j){NXwC!R~qJ z_h&Ad@-`h^zr9dE2PXp73vi^#@0cAr>*N#k*Q@9m!au)0*r|c|&(A#7KSKq^^7mn1 zN=*omci@9}C9Mel{D$BgKmWhHG30s`

8?3r(omnQcA(<9sh&zG!_(=2lWRQOM(B7c;AEWS!w&}@x z|Jt*CPyexqz9$j<nX%|3yPgF)(Chg^Kv69O8K=ToxNqRkiTcG@&Zq-W59@AUp)rGwmojI}rOKx}M#d~9uwV=cY7```zP>|{(55BoEis|CYr(CI~YA?8|t!*DKe`Nk~OYLcavFmYb?|8)e z14V1f>9^4r_`LZ|SHjBIbR6^f==bBOcSDAsSau>*$dXnU2D16-AAGzsa3v8BQ}>)C zhSo*MxIYGTa{r#)U;*P&RVaQ1#$W1B`hn4??#ARyofUV`{i8P_H4IC%(3q^N;d|G~ zvBSgdu*;_KKHJclAIdAE+t;vSEP6FZ#b0w@=!}-NkQ6~y*r#QMNaRBd463isqImda zCd(c4K|Higj2UZQy=LPllVdl*3E#-p#7x6nvOncMg4v2@l%EpyMzn`Xna17dFfn`1 zKNh7dJmZq@P7K{ti-2|nvPue4A8=)$cu&pm<{pw%-~R#2uS!S3^9OHls*Tn}{P(STDRvac4W2L`^;%Iy88hS|D;rRn)o_7Si-G(0D+QC`ep@xg(EXW&@J~}ec1(kAW8WlF z{+>tAdg^QgrvFbb0Hw!93W=#zC2!%V?V4R|zL|#owXB+_&Z<9GcEC(lSR=mGEZ}9x=TU4ACHVOxbv7;9vKE*`IIi1NH)O&- z?lk^6HKx<*^MtqOoqf^4!qDxX-*(CPx115yy@+fr!M=cF@ermMrJd6oTFTPrA-@+m z`&XM-Z@8C!F)vJ?GK+1PaS3P(YP+*yewjT*vGuClVng`cYexmRB<3@Y6aj&i%8kcolDm}Rd z6$s*CoNW1-B#^V~v^ql)I zM%ahU8_#^0h&$dvPmU1L=f1o;#r*3W{llLY6O1T^U1koW;w7eu^){c9=?T--m|2@s z%1`NSf1WYxy*e@os&HYR9XoVzSt-wxk)<#%BK%M-?*|It-(xa|fAEzgokS2#|GJws zFcAFi#bAV5D8$*JvbdI`xDb`qQdVxRMYnEpiqEKDJ#t78lFZ0WK2g!vd-bf!tG5_{ z?L+gopDCg{^9Z1j9z&(0U)b)N*jVa}5IjEbWB6V3hF9GnNUq0!f!zp;IZielu#%-L zJEf3Q?k+OVvZgq%(q)>Fd7I#Ng993zd_L~%Q>CSwzxT+@Ygaaip``TK@W?72s0RIt z(uJ*YQf=1#Bb{~AI3lB?suC&Fkxe7AsiGXYIVd40m=~`TnuyNBvN|@vV8nd9p(uwD z`U!chFVd>Yk#;w8#8dh$&O5TgQxuMVEyoqjH73=>UzoaOr+k$O#Py>e<*)Un*>~Vt z840n}Z;H^}{0@wkDf7F!yXixw78k8AJ~>97_l14zd->;bK2h!~+3$`MCLzdmnINpM zUXlvHRFr+$KMacA3<``)jZ z(lE?PfGb9!|8OU$2_;EE@@AJqhiy94Wx?ifDP$sN^#&@bg2OOzTZG+44SN~-a->S3 zX>rI@UX*Wer`dsJPh-%S_-Ego%{_Mj@F7)Wddgt_hTnQxPO)RWjj-9I=cp0-oe&+XDLy-8ckbhgV-<+}CZ85h$ zZ>duo9u}jwy)Fm3vam%jbA}$fNEEH*+AKm|Rc8{!jjTCKeuZS4g0)%+~1MwPoXhAgbr zU5Q4+c~Ty7hr?rG$nLyD3$%YSnFfWV$@==P&WwL`*+%{_RB+EJzc7Xvfn7;M>1ps2 zejt?T?>BH*)piFpX|*(}2IStV)?*DzFXTLVopRlW>R$N?$?y}aJFJmIpgw0j=H_Tm zlcu2i$2*qT6X=zS`ku%-E@At$ewybPw2#xivB9k?@91Br5l{_jgRU+>o z(5AjTUo$nc*kp|m8e1rDbMD)&=Knz}Xk9e@Yxk=2WQDN>IJ;-)%lt+c&1sqCEg2Tk zlmU}J)M;c7_+nu!sXMe9KGs-iB+=t{C#?r4qt(@S_!?Pk#l7CfQtpgn6w+u2FTIN; zMG=6-cv+IQhVa#7c71SMRBu#N@Tf@WaXyTsqxh;g(a05} zK}K;eHX(Z!R+jG;sj3KqbGvXF>NqTJbuQDL;n{aR(lAnf%h%x%gpZLa&I%C`k>Crm zOZ(%0t=OXm&|sn<-THzMt|FW2(^0Fj&E$_Y-%45eyy;7S4Ln4*Gp>)^y~~7@461hC z)m$#mZ+Ksup1yJ#7p_D}x~VmtpCH`5Xydyl_wtvkIU*PkV zV%uvp|0+(&zAWcQ*7DN4`FN@8HSaJhVRjdMB3KAK)aDw`O1?z$*=?X#Gp(UuD^_;n z>GRMH?s5D29R)U~Wxt|<3Nj;kx(keV#@+X72xWF<2mJR2F57Of$0Ui7HSX)hoLP7OyO#|7~pcBa!`awnX(EymF z9_w2gDvB>_ZkfVZ_D-hTHXL2CI8p>QAvdbRfgEzBA- ze`Sj-(jI?GK^-tsL1(U3x8r7)I$6Us`=A3Y%2m9DT_3+fj&Y3#&&X4|ne>uPm~Tuy zi2z;{9-iNnc$MW#iK;Xk6O*$2#f7)0HM`Q!pGRvr-V|^fid&+(W1h@TEt~pvc>KrL z-1yltty|=-GgrNb#pu9Eqef1M9)k=wzxdQ&>fC5g{2g}vOW+Q-I(c3J0)!Ijk%nli zZPOX%!N3IQL+he*AZ_do_+V2}3Qt&N*I;RCW@etXx1`;3U5w!`yQ=MVMELNKYL|^| zQK_$3fs}--mf{O_U17DGYu*kPq#yD;{OjCaM1@8s!t9@p&LCp!H-~&Ye6MC?9<-O` zq!|_1V782WkK7ZGM3Ki2aJUWhkM>%c zS)C3J5NZYb*5Qv1B0L#*c}0>x{nXuY(kwc`Ry(O(PklDat=--VbU@p>KcbxCSA>*h=vv7@)>h{Pw5QA{jNIMcDQ&ZE? z@BPNgx8%HJFVezx=cgx|1fR}Zk3~SYS(qeha+CNQ<_gKZT7{s;rhA<}37%l4_~?Sl zjbp=h4mK>y&5~x9u3c>?I{}+STC;?n2A_qX)63bm<3UWhVSrunnsCdwvPSO*4Xy6r z;J&^gkJE*l_-WPN#4~IOy^A*Gd74udath@--jRt3PsawMHoE@+RxtX&(1EAuJc3c}t=sIWpeaI^OB6BPA|V4T`YQ zf@&aSLvzjxr!=ejt_S7BP@JdNv+UV9w@Wr|<|GroSLJ)6x=551q!?RvyF$FO+Bpbr zzt4gH$|4&Pbzz$FGn@K-XPGvuqW~#3(v`sCwp`BAuC#g5QT)bJO70;l`h;mwNj0tx zJpEyKc=%~qU(PIKa*rGP^ww_C_BVzm@Ug@x1ZoLK3*8WYJJBZH69CBVOf!MX-a319 z1InA?DR4Wq6Zfyc^6uYWoc`H zucV;{KRfV>*|Jhi2b!~aX=iA>b7R${k@i;U!9}suy6g7h0ZQ=d3+LL`vrTaqWts+j z5FfI7L3}YdZ{S@= zo4Wl*;pvVq`E?b;yqj?vVB^r-TzNSqe|Z5>7AFh4DJZBMz~`#Ze(-BjM^Z&jS^})3 z+uWxHi-Znw`&d{QRds_@u_t&L8xT=aM(Z5AA94gBs;GOPb~b+ zGh`>*#q8o~=A#8?k;I%{LShLfd)bFapF71;Yv(zh`|Y8ICyZZ6%WT}F?$)8=1e-&8 zAbV7+y9*wKuqi82DK$ZKi-ery(BW)G`qJu(fOD6k!f0@CFeld|6ov46)3*;zg&*dL z#gLXSK=tM``jMeUv0qj`ttAQvC50Fjf~1BzPGf(|lC|5A+JUo__EDAfLDs6*&a;3F z>+#GWp@&2nby(OEz@UWaCw_;u(@x}Vn z0jNTQd(|Bs?HM&r)HkcR`Tf^DAkQFzw;gR;FvmQHQf&Nt`V4DGcP4A2i-{HdoQ&W3 z?U@P}H@LCA@-+#J%NHcJ@s7i3>5BH0a`tP&dIUX@y1J$vrlUEGv@ts;X9HYFTU-i; zE!pE_vILxUsNw+4Q;JLzV~{%=Hwh|G2b5V`K67{{Ik*1yX^R@XI-8n0aI3gGS6JCP z8;n!X1ihmA>t}8+@&eLV?;sq~S9Cf%Lz6^(14N<|(Bp3pYi5Yvcgo20(g&3!t^BB0 zoT`3naJc$4!n4}U@{#VE$b#b-p^34HrI^+0r;4FEikiVNvxfUZUJM1N8d1GrylGiE z{MIKg2Lnf5s*NXOu}zckB$1M&&b%M9J)ZU5O0}zxZhX~<;%F;=qlLlJ)p(?>>LaMN zyQkV0TV-R|-9Xk5mg~`hVkSiC>YK<$${W~ro*NXs5FndfISc|oqF4ou>yj?m6zzj% z4%sc#T~6p{(`#j<=~m{R^DvpZ(|VO1tP)9x7(Vlp(o&Mqr8`sh5_|Sds&$Pm(gx%T zO+g=c?GKc~bZ$)-Z=hO_h895wLo$$IX9DJ%=tI=G(Kz8t1b|U_e4#Kr;+^Kjs3bz8WO8&<}f>=OyBQ&0&QLVwN^qtMQ{(@`M<|?8%GB|nN;>bpF_< z@>*v_?e+Fv(o3_LIA7nWM{k6TZp+0W$)Mt>e1>&bHq9B$Q;9Q0yXNYH?o=0Tt+3Jo z{2x87F(84%Ok6bIdQ82O)5P+?6I4;EJ?;_*7_uRpk>OO(RCDQ|`lmvn>`YN6DlE4S zT(a+=sMlzop{j@3`VG*rlBNH@^9{2j32WN}0e6rL9I9$$&_B2QMWV1z>D)E;ZX%|WwXJdS&84Xpp`_aj8)ig#7er#pD>Y(O~ zj*(Fbzk1z5yY8{#i<7x#0lKJao5QaZCYB_DH@Gc2csMYWvcr!1jO#&`gX)`zhs-F{ z&pC7187|Ye*s?8b@QIL3uN*^X2Sy#YP60gxGC>*uxzQF>R7 zrzVfndL2wv;?TUZlM<;_g^+e3fM)C5?Gvi4O3N|uS(ZYO>7O><;S#H%&_*ampV+sk z{x9$ynnhC3!us0>F+cMJh$E8$m@+zdbYxDZ ztLl-`Z#;P?nYX0myGAceDuC$2Ck^W-8!AwJbo&pYFF{}t7z`x*GYLB6c=A{X6Ai)Sr?D@+glA-5x<_Q6Se}{ zM=hj?bQfn z=o=@jx7C_0sFjhG3RDhfnwbhZJAoje-8_GHD$suhv1%qED1nuYFe(xtF5}>|EDRxS z-zbm~>iUL64k|>dQP_?_#|`TGcYSWdJjhEXZHpM zZl;hB)qi_*NLfwj&OE8AY8`1#uHVsi!jXtsP$1lWvMp_}HB<2d>%MC^1W-%5$_R7A zQI9=!ex9W+e+wN1GHjjo3Wt^Ou)KhBxT!GR#8qWXa7*O zI4@i#Fg}qg0#~mNX7hleMQj7FDospUcLAotBtO*Hj#|Q_ZQ=XiT3rraQAJ7TQD=Ai z$i0(#x@)}lAodj56bZaFT*j6m7p%rm=>oZjyM6pziRB|nLb!YF+!FDGlT^|CepvpG znUmLi-q+mUW4R4;wMN=@dMb^wI-_vT}+xB%z zoh!cg^*qHywvq9(X`Ld6cY*Yg*!|t=(R_<||A6ykEDzc1F1gzs+@iQmFBQ^KONj!U zZLC60Eg`2`WP;e}kOW)|W!q`TT=VnJoRL~Uwrdx!n)$P^}_Z03Zv-0wm>hv3z zP#{j-7k z{glm4bX~}9#*te9*}bV`k;sy99~I*T5Gw-{<4XE*`3W>wMIY8YSK@r7_i=dZPVg zeq#K_`URhGykwUV07H^M`LYtcC&b0$^c7VyPaZgNLPD>oL-ZI#*3_7;9kSUV>CKUS+0(?1G4&WQs1BFOCO5xq}WR#$c^rbx;awVL%*Jy1pT zYH0aP+0XRweViyuZ&K_Vhaqz_9{mPG(ME?SW~V;o>#N>ubXR1|pyR{Rk4`ZWA!6|L zGf=Rq?m0H*#^B)GAK5EL>3)p_kTeTR(Q({^UPEie68VsF`q9^u*F12qdX4IY(C<0% zLr7F_HyLc}jLE&?nv!sQ(Pk2YX4l>MWX=Mlgwk8ZOG``iv(;fy2@+a5sn|b5k@If^ zSxV(tcT5GGu?cR@ALjuuks&?8S}d~hU9aY5MsD_x zJj*#`Is4jfV=6NR`r24T1mGkxj0sK!r~_8$ug@2oihJ>9wL0dacp4Ay*_>yK5=1#^ z&Mdm_La&13CMBg*CFOo7_0C}9sxz-GujZ8YhlfUvaP!0>*mXe+m!;KW55nx@v~H?Z zf+=ib%%GkJyANa)S00^~nw$PzP_JsWXVGX$Ew`mqg+AfuSrHpWHD#pc>!q1)xTw38 zs)TF;-r^J++>8?AWrFdywi`tHRe?L=Q;2U2d`wS?)eOWAr^G2xkU;nCTV^U?=IX4* zL4<93s`V|sgIg`$5UI3^Y~>wxfFEKhdGY7U@c{DDi&%X8nyZP|W1NiBxV)Sk=&FyE zHL&#u3kLAEfR!p^tixl=DNpmVvMQ-v6+P3Q8*#EHSi>#ZzP0NW8wq~Jy7vXM6t7&SU)^=eshOTd zNE0lye%vY+I@-L*GcmoPntb?K#d@r>oFq=ek>EqIf_Kn1*@0GZVQnRo81XM=z@E?? zNg5ixJM%+ZQlWcn%H|;ORnhK6VcXBgAvx(kJWTieQ(PU~amREJK&Djh$H0)-b8N*H zWvlbY)#+)R2FP|}C}_?>tw-A|>}^MHN^U`bPnoT;BZr12j9u9G%#2KNr8R8m@vyNr zukn~9t#`c}qV;7pCHvUj=NOZ%^K8wv8hr2IJ#TJSR67I{$gI{nML(YQ{~N&2jo21n z1mJtdZSFpPH3ATsQ5&KrU*op*J$Gm8Tpk@8e+|v1h5(~mEA8T8*ZU*4H|fR&Umw=; zGb`Y3lGUp99W;t{D0$b>aeaA}c?O4B`hKc>tE}GUt+KMGHQ|TACmK>m7mXTjBZ`V@sW+C>FE_qN*QZ2FVYPR^(*OR7 zt^2*m5ki#obt6}9vZBLoVS9VKqk%`9Y;Bz(;h}QQxVt>MqT>}x`<+!%mabI%4@FNw zrZ|&!m%`TSt|Ifm(dYW`kc&ds!;%tey9PhsXP}V+xNM*z?7;uM*cCLD4gSle6N%EL z45;+C`KXkVv?4CD2ael$V%s`!S`mINLDFB{h_Q3-SooYMY!`HS_fYSRVTtoP$ ziRsl9vvyTT9ToK94=w)EQ~UpWAm;Je?;~Dmxiwae*SR-({z!cfLFA8X?2x2z%udI7ia+8kkp z;)(*@$j0XjmH_dL?iPbM2kmUhc66v&JSDk)>l%iS$+Wbd-ZM=;S0 zxRru&OQp~wQi~2;JORY^_HEQSD!1yOt+&07+O?>*a(Lz;oB#s(XecJPN7R+5K4C*O zXqzH$p&-iQe97jXJ1#sTQbfK2ZoGO36aYgc$GNjt1!mhOD6>Gr><6A98K9ReAA4-v z{?hk)p<2vjk9OU=;afrF`JvSBt*W+@H@kYNl7mKA_&F``s=t1U#_>(1ad3}7_aTF-@c;>mAoYH8>KlMfFc!?-*H3R&Ao}ehR*5S zH0ju!M2m9>727CTB$ z52F@lqgK}QGeMluTIniYpGe6~J$Bpg2grkRS@Z-n;$A9p2^998wyNsO&$OQ*+($2x z0?}+Jm1;FP@Fo2&v%;@`s%8m)NNePqV^70nxMMstyw)zXJXLKiwKW1smW82y_P5L% zG|p}9BP(VS&LF?T^~0b7R@Q0Bi+%wj`+3R93BECbp5KENmfspJuNsog$|aomP^*dY zv+aPJcz?my07ztX2HsbfmMhTg_hxKRS`ER$(Zb_my6qw;IV}@AA*ijbBk#i0Lq^8x zq3O5NHRI{Dd8~f;rC85b2YenrXFCp*Li|g?FEB zACZhsfkUs%QnG+r>fwAc$pfx7^7q46|IClELvb3oIGnbytsjiuqv<%y0(7oj+n)L8 zgJIHJk#`U1L;!umt5r5ri_3hgK^s1{e)A?6jfV1+?0!j!T3N5*w!_ss&0R-I2r60O zq|d#@K;4}7*eLI6d<)jMk`abFCi>hUE@%}GJH~zdCUSvpbN>N3jm)G<5 z*ZFTV;4H-r!e;TeZk2L8i>}`*svClR%P^MGb+;D(uc&rt@eV6s(Ix?Tav4r@qdaM8^^pE zX8JSQ`9DZ|w*|ef+3XR@NS}j%n0ceb45mAFAA0T@QQ{Iv3P4L~|40m1=V((AqxjPW zGYNDl_oLtFbRpH)J6G&Kp3WH(gJ!CFv=FKn7 z(IF!PFsq@*$&C^V2?@2E!Cgr$&Ek?uQssM-qZ3RZF(J@hOQ%idlStv!^wx*7TO|eu zq-4&L`Jr#GyWNX}4Snjh)v5jt*Aa+|i-?JfKrbjf#eZjNuN>B7aGvJL&fySZMcYwe>o&@-Y)M~96030y+jj$arDz~D$RtZe zt6E3cc3pR;Y|bD~6=tpQ+p!{NxIO zW$w6$jbT{4rzvt%xq03vl5C&V__HeX12nYvz`e(HJ|J&(-=71_k53d3m~zj}u=eT$ z;8kjTVh91WiHnZxK-_zytu6%UhJyqBf0rg}zjKJp+n#uH++1rYS3=Z9C-)mSAbnZ( z1cy8n0ozrb+^c@{>i~$7$(&o*nD2|s7BII4_n$>u2>g@xXf4}_?Z|O^em>|&h02zhU&a3r}(%+V=sKr-qwLOpKP8lSe3PYgIxS>X((cu2g7U0 z(oW~GMjZ=HMnzubm@W~QR3V2(&@Plwv<|rki=#sW+;1w~kBXZxbv=g!GHzg;R`bZd z^&11*1USM$$D|43&hb_2aH6|L1^*cXuL}^z{tbMOHw*|K&iG#dcwFeg#zK20RnX;^ zdAahRwi7mZv^8eyExwBGh73wI)G`Mq3RTRm3nnt&6NquxJOfdyPXH|vD2SY94VgRN z@?5@1HhkqE-q;dly30gA^>s1oY&;&+YS?b}H66zRf+Q`b>uur>CJ71i0O3pYSui*? zEyZVQx@}U8OLXJ7`1gOU(ISUu3B8ZG;GY-_6Ne{_msdStrQuNtX)}^CZHJ#3))5&2 z#~!?y9&~rpQXObvS8iQnWo33mZe~dyd_6z@dvW55{@|cb_SP0PS9bv`LlTq#tR@SB z4w?9cN-&a_k`5AiR<;6inq~u{RozNajf=a0Uf~{u5!TOHU-{b2CRXd(2|xPTO>^Gw z1u(-rlOa8kC}{v4yx3cx&Ehd99reMnvD>o*BwjxkttCuTN9l>iBO*BHnXj*`2G~0Q z!vb z^Pe#PBkQ8W{SdFF@oKLp8b?i)MyN9!clZ7`0d{`JaHkTJSmm4{Nir9k=WqEC5 zR(b1+C|v6?hzukxv_Po+kr43R2lZQNBFmcEGI%815$lk2gh!x=5G&4fmo{PI0h8Q`nehk-_)nlcBvbZxH5m_Vt2dZff|| z-6Cv~>twb7co4;G^vjz?4%s;Zn;n+ghm0GV^p>B%77Y+%^pY4*`Ea|n!p`Gr7h70f z{XLoTTaBvoP2>Gnp_mYAV=Xun8Ae&BV<$ueeSO*Grt%|btd=+X9KVcqmx0d2P0a*-1-qf;QfF2Cbn4t+TUmzOy82r=QL5Me($@HdK* zqbsKsl#H&YegZZ%@**5iA&XgA(aXzk-wsV)w%1lz@|MexKin&%5yfc^g)CykH#U{O zZJm2G)y2C>vB0|Fa5e`{Z*&PNUNx(k@90u7MK}c_TyMjwr-Db+V&jC*n z(ESjc2T)V*{UGx`&PTo*401aD@;o*>VFVBjXm5$*+=)J2Sq4^!5#nk2P<%l=Hjpt)VA402?(`$6*R9T-W<*5%k)j|3Z>+m#~P zI-pAXP7YqX8ZpFMIz`2f2|oOS(7o|U&xVHfH?;$_U8cKtbwuuIJr=9DMhaP=t`~=g z5A*OazdV|9#(ov?m#EPQPs#_6yn3Oo-rHx4tNI|#UDGx}@Bw&ka|)S(oM1DmlsNGrI8&M;q>@FFY&)!&=#{*ox??%YWkE>82u^y=TtnGaUwQx;7aKyIDf!}{_0 zEScxCY4&lf$y0ug1bR-pPgUuWzGHne=kABFD}uf_r0eMG!9;AIz(0C-C5 za$OHy@Z8MYPH;ZNEK3ynNfEB%fS zrmV)P)0T3i_VgnxG#H`dy)}ab`E&SfF4J~n^^=uuS}#aN)SO^WYcHk6eahnNX}FrL zFTz=5=7HtWk)`4~ERqt6bgoK8$SNr)IYw{w7rJr?3Zk*`n>18CfQzORwC2J;`sUVp zae3}R%NbBFy zMqDo4)(Ikzg~ye34N54!a1sASzCC`6(TM$65{HE>ZXSv4vlKP6)0movmga`6vHzG2M3Fdm4#<`#>+Z5%Qayc{ZGO(GRa5YwwN+QyanJ;(;uyd>C5fg)EaHDEd5sX~;}6P+(T z#9y7ID%!3Fw$Id?+Fxj2vUYR=KMPNZy+|uLG4xjXfS86a%gl7zzdAiPd!##^qq!y< zj!P7RCAf~Wy+LF-e7-WT*VK3est4*N|K!h^FiBNa<>4QUONh?1zia3Ir-NV>)TG^I zU|HjGP5kb=W+Okk5=eY{bpO4#TDBwpYrAMEDsp}S2F@!gZN zbq?aRqVKMdeOO6O%`QW}di~z8Y21La`$kLt4<-(%X&2PRm0AFEpd%6`45}IN_ud}0 z@OIOZpQy>vP5ib#Yb=smh9>emvca^TXj|xcSlCK2)cyYQVIAO8SXy!xBqoN=22}py z^$^&Gx%sG=gQT{Yo0}s+XogKg3QzD~nY*SVsd`{S1{G(%4F9i76faA)tVEi9JbJ!^t{jK1ORn5QPg>4 z&B6N6InfH=*Mrny?T9*a=6pPb;bOI&(zkktwvP-nvtTnK?qP*=Sy<$4l7=gdETIb9 z)Ailc@5;CMp!)?^!6Z9w4TG-7v(?tTD^^a|ylemTq(kvyHm}O_^p0jv2}}ta&siLI|0^^1z9EvvPiny zs=hCbLVf;~0=rCi^R2QyP+W4W4uJzijNW~JB1Q>jz$)8d(7y+`xY=53iRg}hVcNQJ zsN#5fje9=Ogr9Rh|9ex>DhMxU8LpdfW_0HsMNZsRItE+Oo6@I@WlKg zAOOjBDGPO z!v}o;)(D9?3y@r-ZLtHwynKD6(P-G^4jnYcIg45PSx`URNsgQXw&Yq%S4a)<$r{Ob`Q8NDd*4wId>m@c>tm(xeD64P!_7bFTyQs1OD?9Y->lRkH#;&MO}d3IJkJ3GsRrKrCr!>%HEq)&sxsNTGI0bQaiX$EvNL8BzW~i=zM+?)nV_P)Q*0oW#$q>fKU?y-eeKF@tgX<%`StxK6W-S0e^BUMyMXGqDkgjD`oyVOE`bBdS{!)hNFcfj`$;r*8KK=MeH{6x`t9k!nCj;@YlL;dmouBzgCn|0**&8WwJL*G2Bj7p6`Y=557kEvBB^^v6RuIMcZ18dy)lPGfGbt z_kMN@EHI7ZfV-s#J32H3XgGvZxD^OG3(0q^_h)x1&X&)v>^cFaEoP0LKzFC&T+6%b zNi(%+nH=j!fw^Kqt*BeVJdbeczHg;~NEMS|Cas_VG6ocN7}zp#H-h)mKMXhbeB%Hf3K2%Wss=p6dH6nokV^-4*(qe-P?(!#PTc$=5|SbG9@IKMx%D@}aYWFcCjCYF zqoL8#Udz4n=Yf0p`HJfbEZ|C{HIcuPc&|_^+VqkAnxs=rXy8<9$ zJze9UWYU;V1rG-clQQC7LXUAMPO)74OD@8&ZSQfv+}|@r)Rd-SP4d^}mAYAh_2v>l zVWM#G_QP7UXESF(_nt!*sOXeI0(+;MRH5}VVS-%J=CT353l>z&0USI6EA6j9UPfCM zcz9Tl!)Ok8ohZelcat|Sf%a+FW(e=zWid(r3i=zyYhp`fz@PxnEGWDI)deckF7IJ( z$zGp7m^tJSil0!>n7p^h8j-XujN`Tz<@wWX(j;*E9n}v+5O7xoF)DSnz_BFJ6T?v=uWLUggDqgq%}qbqZi*^%}|(b||ry~KQ% zgXyyj97$qX`wvc0L_3F8x8g--?JuYwyIp>K*4YVTbD%xL%lRuV#2_G= zyryKwHzE`i_O3gFZZ_udw*8ACT}FeSUC{@84u=%mGg;B_4vtwVIh|W6_8#<8waB&6 z8dDhKM;B9fOJ55QRxy&-j2>EDiAW8c`-S`7wuisISNxCmzB??cEyxp}PeGBWf{1_! zf`WiZ&PtFZIcE_h2b!=I%G1>=<+t?;S9e1JD#qH@H6dy} z@rpQL)`Q-cQ@(^HLz&rMc6Ho+=#3ZdN3G}TzTcWpE|wZ=*0e6O_Iu&=v?Dh6 z`)EOpKK85qAZ{37Z%#jZPA+d}4+CbZ32g(;()BNRxk3$1B1H z(YxM=k;oEA{Id92Mx-#K38&UMc%bfxeQMq`LRXYKv7OSrW<(Gc{6%c zN}<8ijyJJjJN61r-P`<=|Vppl*wv67uM=2gy$B-U7IB*3U8csi$xE6n{9*R8fuViNQzc;t~$Lq#wl5_s|{FADSH%;Nx zFD#JjIT+R1n?l(HMHv#3o0pQufhwKtM9z8MW)UXm-mLVCYGanFf7J`GF0l|x(d{Sl zCx%wLc0|yRaWj(;&Y%AIt9Up``sanKzu%Df@TLF#<~hyZHOomJya65=yk0A4{{6{U zvftgxNl56Pocn#`+nsxVe`5IO?*ir|BoXODJpCe1&~hoM_^{dVV|&)WEP zR{0l}Vz*ydmupPX$`Yh~MFY*=KfY&J#-nxn8k363M1#{pE|%pD|a{v9+=$`+i0fY9LVM|6Bb61MhJkJ9;Y!=lHf?C2Q*01 zWT3a`egw&2R_1Do7NnZfg$L3EIWQaO;4q1nKX9#o;C}6FcBUtLtFy|7-uJm00vos? zFjD~K7K!e#Sy@poO$Mi_hDYcRq-pJOsevXoh2HU56KaU|b_&U)QBTO2Kz`x-!z}}b zB#ZS9gd5!`~mgiWskI;W7&k@6R zktpn%sf2=~U`{1>|E?2y?Fup)7E(;Z4H~@y7<7y3BH~;VTIdT$T`A zdKi0rTj;^J=3zZPvy@#f0`a+N5j59R(Q9`!gcb&-|D z0a@k7xQHkpr{7k3I$ROvC*(LJb#Ix6Lf8G5!XOKRWR*6yt+92U&A2+E3B@InId_%? zP7;OTH{q@v_v6AB@7R}CXqLA(hM{1I2f_~$4Rj43li43YZFRz+eJS&K-rg^)KKlqc z^YYw#&WunCRi__FdF6R>x)tF9aWvStYN&tK8%}>H-dO}{d4mp}TSCcjslbZE6Z<}% zqr^_2*p912`+0P4I3ssaD5{ZvpkzESpGHF=)$fpoOo7{m$Q9qc?^gD??-aTd;yl-H zGOOC8Oa>a2F+8$qIb0)KVb?UBVWhkv+|n3k0D%nQml>xGO1k<7&hjmk40R7NI-ULO zE5(tL#TKH~Uf*vS8Rbbc>C=k7Qp#a&yi51FeYj;QXj^%rCZx8pt;Ow|Hyh5ln!mc@ z4s6-RHj;9?Ks#^kEN{v11UPA_h5)F4pfY6W<7}96DWmdsW4VhR&STH6UqB92zh2*$ zt4`&msye2${5UknV;t9urdMZ~FLlvVhS0P&jG({we^EBnt#E98`W6&qhSrV^Ft+#2 zWXe_VfU(jJew0FQyp+=`6WVI@6&jiv%w~`2rf+QKfSHPV`ggm^2p}T}K^kPNjw{H_ zz=w~7SN45wMMa(TUXj|Zs9JTa<)%GORPNioI}fz#=b$2m|#^%u09L;Pj=67+{H$AzeA*Ij?>lK6nyX`MQ&~CNTF=Qkx@aUgcUxT&8c4&`5EqHA~>U}v#{{9?u^ zR8_L-aRhHJNx@Fbq;tm?7~F*CNCjdZs2vmxK)5Sy`6xqM7uK8*0&sun`H>RnDs$uR zY*XH(p{EqJ*+D@i+@VcJnave0fhuv3jzvBT`bgNy3$5lma$H zy`!YKB_qmyr2Z%r>wE0Dnd%w5m=h7oi}Xkxtjy`9lAEhod18Ght?qfPDKF!R+RwwG zj{`0{OE!HRu!nv1#j0+Y&vr+bb^m*%_HaNSFzB_696 z%y1qUgMu+D(hIW<{tI0@siUDjqhrlG(4pPkOYL0~K2Y2a0;0_EV(+7r1cUKS-?^bm zgFIcWfaW@%m8{U}lE?Q_Xoa$F^OZFDv4#2$#MtnhuAY9(4V*>srpS?r`EC8|nG_(y zL%%uDr($_Kp+ksRNg1IrmaPQBc zH%^@!zlcNu@JQzUCUbTETB`-e9nM9ke~XkePDKb}mmtlPcraPy`l`C=JM06t+SS>- zN~yeY!}s?4165RX#-3e{z5y<>bs@KVlLrZxl>R_XFDbbHe35cR8YkgR6aMUCIl_E$nW4hkWN}21DyGC-`~$T`qp0KE zz&f9V1JmnfeoY@s$8isr)e7jgrGZpO` zwOGHBX4wQBnmifA!>h?1A5NGgc^!Re6I8(L0&aia!`YSVca`O8KDdzpt-4C0u;BQ>h&^w87^`zLcwSJJ!yAJ}|?M<;+jV6TsSI5neDyH*IXX5e$ zr)u&FV3731@8lX7*6FludM z?PvHT!UJbqH9iqL2`pnzq$BfO)6qu#(U#0$cjfm_3_1lg4n=Jm^w9)p_F(17&ttZ! zeYtoMaml8SnWh=qO-)tVF5AHR6;FLi@~)F4gSBL~1i2=}5{SsLF2=V&wYYVwz+95U zT`VG%TUFqU(}td`9G$5fgHr02Q#MWc=q`25RD`Ud*{uyEn2Cg>SgZuPbKEVf-!M%&c;=mt11#f8=|b% z6E(`T#?&8wyN-LZ-%I%NVDZxx~{ z$|{!*FfPn$HYJn86P?k;EWDtkhT|JVW&d2w#F#tLdmCrO%{V=Ex#{NKNV}C?+WOQ8 zI@CqNjA%dwsm?l`bB4EHxp^`Yr&G?&M?O!Z#}m`uJ!?AY)$9g)1MJ0!;^%zSh z1hIM@rOjR}&t`_WtLz;Ytt>ykWMNtax9699Qw~OknFvhA2R(bH z_ysc-xJ*T0=`{Im_{i|6<2Vjp>wviBBYrVH*vT(_0 z>p$Y>;l@zg!MdsPfZk?M7U9(Zv(&X};cQc0tUW>7VMYpKvWV(8{2LNefv<%sxy2wj(LUOuHF%lhBoYk5&)@Hk|Bs$k5a2y;Kax5A~mqG~*e zR949>{w#y$OVX(jPkg)uX7$-jUEEtJw6#NhSbR5!YB#4h*kZHlNpPr`sF)1&!`VZ$ z*U67TuzKYmu`lK9yj0Piz%sytI-SxEi=!7KrBuVS0N_&#pFQ2TziE~h#u}tiW9mZu znF~x+Ur{00%;;iT_tmrgg+1#?E9>uY$#oem;XD)`K0A;oxwC>GhfyQ5d1Tq1g5bWt z+xMmQ1EpGskj=m@FeC@!R1x6>!E}?u*V5tp`{7m$hbMF-9u7aoK2f`EwhVbQy`y8X z{RIwp!~Pe_%|98vpWF5yf?N{aLuq;vC)}?V-8frX;i4n^$+{-LFMi!3bDj@a9s)!Q zWn7Zy-~hNIC;FCXO536Cor}O+GVqz}miPcaa8deiOq%<0_kfdR3s3v-Hxeb!_*a0G z;Q;`=84oLR=ROv%a31@0*9*% zxzr|VvK^oQWYOvH-WigxQ~Go4k&K9~^((#&+rKnxBm<+B9&o@U8{)xo#D^kjf4| zo-TMZ|3Fh(O!lNqXY>Q&yoc;N;B_9ib=klx?!s^Zhk$`faI1ZWJZ!4Il6oR-Iq#5a zQHROgY_?TO@IF9oBi>#R;Z2#YaI#c}d>qF-ic|XRqYpb&Yj+SY2U!t$t); z!e_jVzuSOM&-v&4a?UtE3kq8`aPCL&Pe|Y&KS87j5Fxf(ttZd zXy|^h(EVr*+>>;u2XUZy(Ea$%Yka*HW4NQyl;KU=Udkl-rY2f@X!vL7#=!>z}|rT#}P(-X6DH`h<~F zBn|?{0w&n$CDtX&9##)R}a4oVr4H*nE#N#U}Z*USz>dc zg=EQXK5rm|wr@v|MWQ|S2HQ2Ni*K9_-Q<*;yHaTh9(`87K6Gk3rwT{9mnEe{LH;vn z+MpVMyG~szz!MUWm_^c zk#KPr4t{UvWeC2dwvv3Mt4D>Qqv#*u@g-K?9SYJbj0Bg z(spXrszw^GI<4&u_eUfv#sHC{LL$NbHo%A_Vr@mu<)$6`1&+c-KF&&r@S1(~!18jN z)JNE=^Ae6YH|{pdH8V)t=a*{wfY6SIo6a`7nO$%<7BtSfehCX)8(>-KuG9IP2?gyP zc7K`=9O(8}ppSmC`I&dXp-`l5DN`vKTA{%KmZm$kdkx*fSARt6$1NF z(+YC}aIm{_Sp5dw{GLiJE3B`&0TF}kscpueuXC%d8!_|*Q)@4vzIlVb4DggRGSBRf zCRahX+Tnut?=LXb9eu6zZV13%o~;S#nD3fi9XKj*o7@DMWxip!)X~r5F(}#Yl~5fa z0X+us-M;)P+Z{M{%j$s?J_+a(c5XX)lrF^cQw_9HH8>>I_pn$r_sQmyRZ0EuP*xC< znI6^LSQNa6tgmu;N4b9BTunLB9KA6qQ&{S%vvO<<`i_*25N++Pum@e1VERgomz0&2 z3O%A5tfWtTm&0qw8{gXza8)wEBda_aTfq^@s z55FzUGm>8z%J>V|gseH`l~-agYEsU4dvXI)u=5YlQDQPtl@(P?C)2k=E zHYL7~iJBK3yjcAq`f}$JNN@pe->>x(M!ndj56_qsBzGX`H=F>ly(UE_>7Qv*UNwuV zTbtv_GTWVi1Gr4S&q*vbw7!$w8?Ax}-@uNw3vdF`2GFLlxvUqU(4$#K{x++@Iz&YI z&CST2nu^Tc^0r~O4ICOIX&3}@EdaeRdv**sQ~4u&IIp@KN`S=wo^*=_NdnWe8OToC z5a96g$4cgJFYozq#SN#cPx;Ro>FaxK_Ot^-4)VM{LaxxweFeGByRfaPI@WDVhXSOu z>msTUkUX8lsYaItmZU~^l&jADIAoe6!K&vJWM_sWO(IXjjLr5$C_}$+IMh|`epW#w zi3%33;O+W@c&c{CMQTjupUZaPr>lWSl6ST?CbTto4JUYw|Ct>FGK-csq_(dX@Uft)Gt?SY@EpZ`PT zOYOGa*F7rH4f{ZEuaRQvIWv1AxeY1#@IRntatAh3)EfmnQuk_X%)8AXYO+=<+5Aht<9;Dl`dyvI%;Jn|eT9 z7E#agbe$rN^0m2sq5DsI?kr;&McD1kq^Y~Pma(L zwlV%qvKfQrp}>e=g0)ZtG35k0&!bgSFFYQDEU|=+G?ndt?gwFjl zuD*_TGcsC#mu~(NardlE12xw=t+5Gd++IQ?)BmMusC&9g;W|tt8W9NvsI^CHTTS2zK`h06gW8Ul%Do|JP+dLt}vbLTesfcxe6po?}91+7_TuFk1Ml#*}2mQ zFpl%agvL$bcV}fwfT1!z^G;{Zd@)!v?&Ya}m)UN%=}VWqljY0pwPip9U1}v??--K_ z>?sXUc1v_R&C2^cUKKUKJERk&+T^y5$NlO~(YnxQUJmux4p1|SA?DZTV#b;S?sCOB ztY%jN%mFfHah*$>rktQ@lv*#HL)DEsW{&|YgwNX95Q8lu@bJBk?Hn*HI{C3+apd*H zcYrBLdZ)%f`T6@7?ET5al9oG)#*E(;bdy z&=lY3+Q-A;y-Pe(Nzd(_%SCv-j%J8v5<%lV9iOS)2%``XW^{_fBce zI;S)DY}-UR@te5kX4tc~fR-loL8OcM5dLChT7Ibu!=hj;p;IA#^?)vf1(!>V6*_URp8UVqTxlk2G`woY>NYMLiYA&f4`yng-+9T)S6NF%Ubv*mmD z%Yi8#$+=DMV4JAuCikWM`ka%)c7Bhg%Lw;Zs38}ZM-BQfF`$BfcH?F~Xx@3Cx@ir8HhllmQMr9hQ`fMDPg>Z{4wl&Ff7D=fU!-`z ztU1!vI?Fy09wSv2S-`zXVX`?M^X7+H zjJQEDaX|xZMJ7fG@gh!J?D@Eef0ulY=OrMfX?Y5r$ynR9*Be0&M4v|^h!9J?_>U=c z5aEHWg>#91K_#<6t!eh^-pX%0FL>yq!7^9kX|B#Rvx=&79{gcRsXm~=oF)CNc2-I> zR{YN*yg*<4lWm55CwpgXYo83zbb?r5+wfF2A_xoe)7ZePE>2GV9=p6HHargsotSgx zW~&@9OIU9(`72jCTc=&8GOu4(Oc8+2^sCa}Sj_09npMs3sI?(Dophv~m5B6PJw6iS zUGY>WgSajV{ivrYj=V`vuY6EezIAK!=`XiD0FuVTMH(-D%-fRC{R0dq>6`M#a|ya# z(<32yT;vBQClL-L1&H`{zmFuL2Nv)`KtNXM*&=}k@B2_vjGjbV`gcZmLLpCA{!cGI zlorW1iPky3bLW4d=&#iOr}^LiCfshwx$v!sT=5bsMT2qE=Hp+#O>#xftWBG~VmITY zf@JV9#qVP*A5Mt-M|d6*L7@>WT>kel?S+=3#sDn50eOMs$-kTyMYRZ0h%Jy;$Nnh( zwI2t{-|8uUvjva&b}?fznA?|0F8BQYwhz3K7*B|$%KrTy$?GJ)lIGvfPC`;i{?9q? z|K>BM|NRU9H?!^kwL8IiGXbI6EL+*uW+>VZ<1-QQqZb|pA8*`V9;>}IAS4ioFEB28 z#`h^zDP};bq=&nlP+kIYRCLgoTWigfW^Re%9WB9JjfT{i9!xR`N#(r^?>jcpWoW-% zPwxQ{Vw(IkKd2JN8#f^3Dt;V;;}5-lAH=(xX88BX(>ndJNJJvsnS-nH++W_FSE(F( zPRjIF^}T5!KiFFv+cJzIIzLQ|TX z9kzB0`K9E#AAEuc^WmWp?9-@zD)L1TP&=gQ0y1S977{-5k3i1q_B> zyqx{=;a9^$g|Y2?*-37=P~Vca%m~`Zw%9?u*+Q6FQCMKV;`fgrlvf)E1Ox)2-g&7# zN+UnJMPpV>#(JgPB4(*bxlbH5W+E=f5EXBL>N{?G9Q8WKM?YcAl3XkQ66;g7&513_ zJFu=2n_M^5^_6ON;mMuD+fiLgJUZ6i(FR#7M#X2^6Gi97(toV#+)Z{(1doQzP(z?> zye2aJwKZE!8QOB~naY)&#bg83pTEiQJ7@TI>BknP*owp_Ui1Z9Im>h+%r`Frt)R+B z?^>s@tRi)?(dyvN7kIw+8Bq;*dcR4-4*$HKdp+y%N@S&CwE4WTX#d6-hwcJb7jFm6 zg%tO8?qW@oHa24=j><6{oAJl=n2516<_jap*d3*Xahhc0*6p9(Jxp~PUR&LpbdpiC zZ&`1#@uFlCu-nX&-8sG&A21KKILR`u7Y3;;?!Nld-|}%lw=2`N6Zi7w_amG(D-eb# zC7hWKxL4)XG``u7EtNtaaZ_`-VV>$lv+#N`-$+$5);3mWU1ePAo3PILHL)3uN89Cv z1Et}lP#AS_uzl)5uuy!_;yas9a9m!ascOb#R#j$GWVzpt=1i}pIxuF-u&qxPD&9V# znLYy8lD^!mZd+V(=3UTgQM z1A?p7`NEJ;voQ8er2p13$^w0;c3Z_0(WrawXMX=vJ>TCW8IrbNz#xYA(vEwo=8hmu zD{pgpVWNc$L3_Jj4wN(x+>Rpvp^|~sJkxm*z2rgCaYyaKlQMklIx>|~%p6;jn#jhB zQCa%zwsD2cmNPvcR~@ukzrK~anUBu@R5QKt$ql`PYnexKm8-<^A(Ae>(Ma{F;!xl& zzQ?@$YsQqDq{Xy3$tEufp~4L;bm+Tu6Wi}jyTo(M8c6nyl!tCa_MUtdPM#^Yn?x@r z6y(onw>PFVeD~ASu5EuqBIP#-uQM#>ioHJ)k-wvjj=S!vwnFC9vAxkW2AS7Oi}c^_ z>!>&rLFU!g${pwJzoa9t^pCY1q@j@-w|;BjAV$9ymCI3^-@hcpzM@i5Tu==O*?=}I zzLJq8Lk-BEzC54JR_vRdJJzAL`Hn5wz`3yRp8oZo(RR1uxGr4uK>p%Bj$e_`cvfOm zoB-*&V55U~jt;q0U#CoO-nTg;7{Zvf8`^}7Z$h7Sq3gunD$O|_o0QAV4TVLsbL)IHO>>D>vG zKTu9pA-^fUy$?1!^MEe!BL<_t!F0w|4}EH0^{IP%^btb3n&qBAIC#TVkTv`ioqQr> z&vasjHkv44U3kT{lGqgs#G=Yky(ChmJ%b!`_b5snt>xg(^WYt1(o%ENGwF1+>vO%B z5n$FBDG-bC$)gAlg?1F(0=oC-xg)U-$@W%B^MHdM){&I^Xz#MIM~KOU@v<+`dfL!- zGel5!EFn>rtkm%6E^?ebXc+QxiVzuUwN2<9&5Vbc)b(7JK&Oln|&w70M4$-{@ zoLcesb;S_ZMYz)FX=Q7Uv&YD@X{W6$KNmDDCftDJIo5FbG3`)PD{pn4d>y!?KDtVv z#?;a?MCxmcsM;w7$t2_3g;STB$|a}63Ra9T4IijmMkJ6PiPq*ZuDNc!4{!Y%KkiPG z$ONIa@n7cpNNjG=Q)JW)A)244oKTHZsl&OUMII##T#FMA!f9pdoAgor_*rQx^X^R& zS-sFbiNjpM9rgBYq3-KEY{kGjeuB%OjmaWJ=K3x@^I7_>gqt9-a2nrD!Z-cJ(qDue zQ~5q6P$EyH;&7(-wE?n^)j1ZQs??2ytE{FWS^SodC=n{Ej&G|X!B)mUQ#YpPBNoMy z0F158f4(1Pz%!1foZ~k0&^pSW5GnD!H7fY1F;8m{%2M z;f=~>?3^$hw!Jg|hLx~~X+KS#o2rQiUSn~#FW`bWOQueuHk$#hl`Vz!}V*qyw{pq<_Y@f_{1weA0^L3>6E^(oFo6{ z3j$8C!E^ON>C{}Ozn7w(x&2&Muvh>s*W5yDg8?Vn-M+53>`L`@Be?VZNgo||i^4}m zuT2ySF$N!eBcc`tY|_5mSL|9fynKmOm{jgr$Z0+~y6mdG0y&?}$*l6ILtrZkz8~?2 z)UtuVu-RuV;>*CMxLtM{|CKBO-N||6J7b=$MSaMZul4oYr4KiXOji;pm<-(I!6jfH zM0n}mN@@`~fc4JB3SQ}t(|<|If~bF>BYpp?A?~f7({4{ay625@XK$1g@NsEYybp72 z&}sis22b1YbDM1n}2HGI$jCDnMMH{U7QE`4zmJ=yEra) zV4F+}{!|Eg{c3HQ&-M|B!@@;ouLUhRdfR;P@o~Siyk1HFdKN6-+}sldMtEB8{Ci2~ z%eE=q8x2KH^XCIj#@~C)L4oacQjv(NeLeqe*nedeIIyyqDWY<5TW(k+Fe)uOJGW@y zj%>7{SQ^UEv(*$wwnv1~JV`Ot5kpMYV?B2Iw;P1aj71mqp?&V``D$84p`2pT3m|es zo|)=tKAk=3qjp#8h)Y%CmLRkpV)cPzH&tbA{ul>lmMOU7)f$Nj%ow zc(bQChUOaK+I1Pf++QPp&^M|~v2PkEpi{T@$=-t-A}>%J_ilc0*dc(b81Zvn1Cj41 z4}++UFTZp6RA4M)E@f4`)$e(9JfJBRZGfrx88<(*)l|pwHV^+ytKc9=G@mzM>EIm1 zT3~5Bsy*3Nt6fs@MW2w+ig*%(e?tg7c;k;mkCn+nb(5Ez!|X9rQ>nMux5j{9CMkT| z`TCD(2F#R^%bHf*feUzEV}cCHdq2+fgpo9^n2vU-u_&&o4ROt(YpZOomoOYn>` z5hVU`Km&pKcUNdAoNoXIBVUt4;z(C~*T0?f`7k>Cq4cG+o%JK&M~qTmaPP#WLO)Bq z5@D5}D9At$7x&N)_jx5JTtz^u>TFckn?`XTL&@+u2YHahgT9B@Vd!dqN09ai24D7< zXnw8MRYp&H%%-GF5rIhh*j?Vk@e_5n`xE5#-me@-XGD@4fek`owYU!MI!{Co58C+h z{02k*kx!(FgmF7*6Epg)VEHV^mu%0%tIeRqER0%DJr8Gmu@z_Ryj=usO*@0TCipK| z5lljZSZIB3w{?wV4?B{trs&M{=Xn($iji{j@0SWBkAAjlL9W-23{PZ%OQYZ>j0H(8;t^<hi_1&)@tHa9QI> literal 0 HcmV?d00001 diff --git a/imagenes/tower_sentry-1.png b/imagenes/tower_sentry-1.png new file mode 100644 index 0000000000000000000000000000000000000000..041da4482c40d1a205d987865a721256b37f1cc7 GIT binary patch literal 52381 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 literal 0 HcmV?d00001 diff --git a/tower_sentry.py b/tower_sentry.py new file mode 100755 index 0000000..45f9129 --- /dev/null +++ b/tower_sentry.py @@ -0,0 +1,566 @@ +#!/usr/bin/env python3 +import math +import random +import pygame + +# ----------------------------------------------------------------------------- +# CONFIGURACIÓN Y CONSTANTES +# ----------------------------------------------------------------------------- +WIDTH, HEIGHT = 1024, 768 +GRID_SIZE = 36 # Base amplia +TILE_SIZE = 22.0 # Proporción para encajar todo el mapa + +# Reglas de alcance y línea de visión +MAX_REACH_DISTANCE = 12.0 # Distancia máxima en casillas para interactuar + +pygame.init() +pygame.font.init() +screen = pygame.display.set_mode((WIDTH, HEIGHT)) +pygame.display.set_caption("Tower Sentry - Sistema de Niveles Infinitos") +clock = pygame.time.Clock() + +# Paleta de Colores +COLOR_SKY = (125, 165, 205) + +COLOR_WATER = (45, 85, 125) +COLOR_SAND = (195, 180, 140) +COLOR_GRASS_LOW = (80, 140, 65) +COLOR_GRASS_HIGH = (110, 155, 75) +COLOR_ROCK = (125, 120, 110) +COLOR_SNOW = (240, 245, 250) + +COLOR_TARGET = (255, 220, 80) +COLOR_TARGET_INVALID = (220, 80, 80) +COLOR_BLOCK_TOP = (205, 175, 130) +COLOR_BLOCK_SIDE = (130, 105, 75) +COLOR_CLONE_MAUVE = (175, 140, 195) +COLOR_CLONE_DARK = (130, 100, 150) + +# Costes y Valores de Energía +COST_BLOCK = 2 +COST_CLONE = 3 +VAL_TREE = 1 +VAL_SENTINEL = 10 + +# Estado de pantalla: "MENU" o "GAME" +game_state = "MENU" + +# ----------------------------------------------------------------------------- +# GENERACIÓN DE TERRENO Y LÓGICA DE NIVELES +# ----------------------------------------------------------------------------- +def noise(x, y): + xi, yi = int(x), int(y) + xf, yf = x - xi, y - yi + + u = xf * xf * (3 - 2 * xf) + v = yf * yf * (3 - 2 * yf) + + def hash_pt(px, py): + n = px * 157 + py * 113 + return math.sin(n) * 43758.5453123 - math.floor(math.sin(n) * 43758.5453123) + + g00 = hash_pt(xi, yi) + g10 = hash_pt(xi + 1, yi) + g01 = hash_pt(xi, yi + 1) + g11 = hash_pt(xi + 1, yi + 1) + + x1 = g00 + u * (g10 - g00) + x2 = g01 + u * (g11 - g01) + return x1 + v * (x2 - x1) + +def generate_realistic_heightmap(size): + grid = [[0.0 for _ in range(size)] for _ in range(size)] + seed_x, seed_y = random.uniform(10, 100), random.uniform(10, 100) + + for x in range(size): + for y in range(size): + nx, ny = (x + seed_x) * 0.07, (y + seed_y) * 0.07 + + h_base = noise(nx, ny) * 6.0 + h_detail = noise(nx * 2.0, ny * 2.0) * 2.0 + + total_h = h_base + h_detail + total_h = math.pow(max(0.0, total_h) / 5.0, 1.3) * 10.0 + + if 3.5 < total_h < 5.0: + total_h = 3.5 + elif 5.0 <= total_h < 6.5: + total_h = 6.5 + + grid[x][y] = round(total_h, 1) + + return grid + +# Variables Globales de Estado del Juego +current_level = 1 +player_energy = 10 + +base_grid = [] +has_block_grid = [] +sentinels_pos = set() +main_sentinel_pos = (0, 0) +player_start_pos = (0, 0) +player_x, player_y = (0, 0) +trees = set() +clones = set() +map_angle = 0.0 + +def load_level(level): + global base_grid, has_block_grid, sentinels_pos, main_sentinel_pos + global player_start_pos, player_x, player_y, trees, clones, map_angle + + base_grid = generate_realistic_heightmap(GRID_SIZE) + has_block_grid = [[0 for _ in range(GRID_SIZE)] for _ in range(GRID_SIZE)] + clones = set() + trees = set() + map_angle = 0.0 + + # Ordenar casillas por altura + height_list = [] + for x in range(GRID_SIZE): + for y in range(GRID_SIZE): + height_list.append((base_grid[x][y], (x, y))) + + height_list.sort(key=lambda item: item[0], reverse=True) + + # El Centinela Principal es la cima más alta + main_sentinel_pos = height_list[0][1] + + # Número de centinelas según el nivel actual + num_sentinels = level + sentinels_pos = set() + sentinels_pos.add(main_sentinel_pos) + + # Añadir centinelas adicionales en las siguientes cimas elevadas + idx = 1 + while len(sentinels_pos) < num_sentinels and idx < len(height_list): + pos = height_list[idx][1] + if base_grid[pos[0]][pos[1]] > 3.0: + sentinels_pos.add(pos) + idx += 1 + + # El Jugador empieza en la zona más baja + player_start_pos = height_list[-1][1] + player_x, player_y = player_start_pos + + # Generación de Árboles + while len(trees) < 32: + tx, ty = random.randint(0, GRID_SIZE - 1), random.randint(0, GRID_SIZE - 1) + if (tx, ty) not in sentinels_pos and (tx, ty) != player_start_pos and base_grid[tx][ty] > 1.8: + trees.add((tx, ty)) + +load_level(current_level) + +def get_effective_height(gx, gy): + if 0 <= gx < GRID_SIZE and 0 <= gy < GRID_SIZE: + return base_grid[gx][gy] + (1.2 if has_block_grid[gx][gy] == 1 else 0.0) + return 0.0 + +# ----------------------------------------------------------------------------- +# COMPROBACIÓN DE DISTANCIA Y LÍNEA DE VISIÓN +# ----------------------------------------------------------------------------- +def is_in_range_and_visible(px, py, tx, ty): + dist = math.hypot(tx - px, ty - py) + if dist > MAX_REACH_DISTANCE: + return False, "Fuera de alcance (demasiado lejos)" + + steps = int(max(abs(tx - px), abs(ty - py))) + if steps > 1: + p_height = get_effective_height(px, py) + 1.5 + t_height = get_effective_height(tx, ty) + + for i in range(1, steps): + cx = px + (tx - px) * (i / steps) + cy = py + (ty - py) * (i / steps) + + los_h = p_height + (t_height - p_height) * (i / steps) + terrain_h = get_effective_height(int(cx), int(cy)) + + if terrain_h > los_h: + return False, "Sin línea de visión (terreno bloquea la vista)" + + return True, "En alcance" + +# ----------------------------------------------------------------------------- +# PROYECCIÓN +# ----------------------------------------------------------------------------- +CENTER_GRID = GRID_SIZE / 2.0 + +def project(gx, gy, gz, angle): + rx = gx - CENTER_GRID + ry = gy - CENTER_GRID + + rot_x = rx * math.cos(angle) - ry * math.sin(angle) + rot_y = rx * math.sin(angle) + ry * math.cos(angle) + + screen_x = (rot_x - rot_y) * (TILE_SIZE / 2.0) + (WIDTH / 2.0) + screen_y = (rot_x + rot_y) * (TILE_SIZE / 4.0) - (gz * 6.5) + (HEIGHT / 2.0) + 30 + + return int(screen_x), int(screen_y), rot_y + +def get_realistic_color(height, normal_shade=1.0): + if height < 1.8: + c = COLOR_WATER + elif height < 3.0: + c = COLOR_SAND + elif height < 6.5: + t = (height - 3.0) / 3.5 + c = ( + int(COLOR_GRASS_LOW[0] * (1 - t) + COLOR_GRASS_HIGH[0] * t), + int(COLOR_GRASS_LOW[1] * (1 - t) + COLOR_GRASS_HIGH[1] * t), + int(COLOR_GRASS_LOW[2] * (1 - t) + COLOR_GRASS_HIGH[2] * t), + ) + elif height < 9.0: + c = COLOR_ROCK + else: + c = COLOR_SNOW + + r = max(0, min(255, int(c[0] * normal_shade))) + g = max(0, min(255, int(c[1] * normal_shade))) + b = max(0, min(255, int(c[2] * normal_shade))) + return (r, g, b) + +# ----------------------------------------------------------------------------- +# DIBUJO DE ENTIDADES +# ----------------------------------------------------------------------------- +def draw_humanoid(surface, cx, cy, color_main, color_shadow, is_player=False): + pygame.draw.ellipse(surface, (40, 50, 40, 100), (cx - 6, cy - 2, 12, 4)) + + pygame.draw.line(surface, color_shadow, (cx - 2, cy - 2), (cx - 1, cy - 7), 2) + pygame.draw.line(surface, color_shadow, (cx + 2, cy - 2), (cx + 1, cy - 7), 2) + + pygame.draw.polygon(surface, color_main, [ + (cx - 4, cy - 7), (cx + 4, cy - 7), + (cx + 3, cy - 15), (cx - 3, cy - 15) + ]) + + pygame.draw.line(surface, color_shadow, (cx - 3, cy - 14), (cx - 5, cy - 8), 2) + pygame.draw.line(surface, color_shadow, (cx + 3, cy - 14), (cx + 5, cy - 8), 2) + + pygame.draw.circle(surface, color_main, (cx, cy - 18), 3) + + if is_player: + pygame.draw.circle(surface, (100, 255, 200), (cx + 1, cy - 18), 2) + +def draw_sentinel(surface, cx, cy, time_ticks, is_main=True): + pygame.draw.ellipse(surface, (60, 60, 70), (cx - 8, cy - 2, 16, 5)) + + pygame.draw.polygon(surface, (40, 45, 55), [(cx - 6, cy - 3), (cx + 6, cy - 3), (cx + 4, cy - 22), (cx - 4, cy - 22)]) + pygame.draw.polygon(surface, (70, 75, 90), [(cx - 3, cy - 3), (cx + 3, cy - 3), (cx + 2, cy - 22), (cx - 2, cy - 22)]) + + pygame.draw.rect(surface, (30, 35, 45), (cx - 5, cy - 27, 10, 6)) + + eye_offset = int(math.sin(time_ticks * 0.05) * 2) + eye_color = (255, 40, 40) if is_main else (255, 140, 0) + pygame.draw.circle(surface, eye_color, (cx + eye_offset, cy - 24), 2) + +def draw_realistic_tree(surface, cx, cy): + pygame.draw.ellipse(surface, (30, 40, 30), (cx - 5, cy - 1, 10, 3)) + pygame.draw.polygon(surface, (65, 45, 25), [(cx - 1, cy - 1), (cx + 1, cy - 1), (cx + 1, cy - 6), (cx - 1, cy - 6)]) + pygame.draw.polygon(surface, (35, 85, 45), [(cx, cy - 18), (cx - 5, cy - 9), (cx + 5, cy - 9)]) + pygame.draw.polygon(surface, (45, 105, 55), [(cx, cy - 14), (cx - 4, cy - 5), (cx + 4, cy - 5)]) + +# ----------------------------------------------------------------------------- +# DIBUJO DE LA PANTALLA INICIAL (MENÚ) +# ----------------------------------------------------------------------------- +font_title = pygame.font.SysFont("Courier", 32, bold=True) +font_subtitle = pygame.font.SysFont("Courier", 16, bold=True) +font_text = pygame.font.SysFont("Courier", 13, bold=True) + +def draw_menu_screen(surface, time_ticks): + surface.fill((25, 30, 42)) + + # Título Principal + txt_title = font_title.render("TOWER SENTRY", True, (255, 215, 0)) + txt_sub = font_subtitle.render("Estrategia y Dominio Vertical Iso-3D", True, (180, 200, 220)) + surface.blit(txt_title, (WIDTH // 2 - txt_title.get_width() // 2, 45)) + surface.blit(txt_sub, (WIDTH // 2 - txt_sub.get_width() // 2, 85)) + + # Panel de Objetivos + panel_obj = pygame.Rect(50, 125, WIDTH - 100, 110) + pygame.draw.rect(surface, (35, 42, 58), panel_obj, border_radius=8) + pygame.draw.rect(surface, (70, 85, 110), panel_obj, 2, border_radius=8) + + txt_obj_title = font_subtitle.render("OBJETIVO DEL JUEGO", True, (255, 230, 120)) + surface.blit(txt_obj_title, (70, 135)) + + objs = [ + "1. Escala el terreno absorbiendo recursos y creando bloques y clones.", + "2. Elimina a los Centinelas absorbiéndolos (debes estar a su misma altura o superior).", + "3. Una vez eliminados, alcanza la Cima Principal y ocupa su peana para superar el nivel." + ] + for i, line in enumerate(objs): + t = font_text.render(line, True, (220, 225, 235)) + surface.blit(t, (70, 165 + i * 22)) + + # Panel de Elementos y Entidades + panel_entities = pygame.Rect(50, 250, WIDTH - 100, 230) + pygame.draw.rect(surface, (35, 42, 58), panel_entities, border_radius=8) + pygame.draw.rect(surface, (70, 85, 110), panel_entities, 2, border_radius=8) + + txt_ent_title = font_subtitle.render("ELEMENTOS DEL JUEGO", True, (255, 230, 120)) + surface.blit(txt_ent_title, (70, 260)) + + # Entidad: Jugador + draw_humanoid(surface, 90, 320, (60, 140, 210), (30, 70, 120), is_player=True) + t_player = font_text.render("JUGADOR: Tu proyección física en el mapa. Desplázate mediante clones o bloques.", True, (220, 225, 235)) + surface.blit(t_player, (120, 305)) + + # Entidad: Árbol + draw_realistic_tree(surface, 90, 365) + t_tree = font_text.render("ÁRBOLES: Fuente de energía básica. Absorberlos otorga +1 de energía.", True, (220, 225, 235)) + surface.blit(t_tree, (120, 350)) + + # Entidad: Clon + draw_humanoid(surface, 90, 410, COLOR_CLONE_MAUVE, COLOR_CLONE_DARK, is_player=False) + t_clone = font_text.render("CLON: Cuerpo sintético. Cuesta 3 de energía. Permite el teletransporte a su casilla.", True, (220, 225, 235)) + surface.blit(t_clone, (120, 395)) + + # Entidad: Centinela + draw_sentinel(surface, 90, 455, time_ticks, is_main=True) + t_sentry = font_text.render("CENTINELA: Guarda de las cimas. Debes absorberlos (+10 energía) para despejar la cima.", True, (220, 225, 235)) + surface.blit(t_sentry, (120, 440)) + + # Panel de Controles / Teclas + panel_controls = pygame.Rect(50, 495, WIDTH - 100, 180) + pygame.draw.rect(surface, (35, 42, 58), panel_controls, border_radius=8) + pygame.draw.rect(surface, (70, 85, 110), panel_controls, 2, border_radius=8) + + txt_ctrl_title = font_subtitle.render("TECLAS Y CONTROLES", True, (255, 230, 120)) + surface.blit(txt_ctrl_title, (70, 505)) + + controls = [ + "FLECHAS IZQ / DER : Rotar la cámara alrededor del mapa.", + "RATÓN : Apuntar e inspeccionar casillas en rango de visión.", + "TECLA 'A' : ABSORBER objetivo seleccionado (Árbol +1 | Centinela +10 | Clon +3 | Bloque +2).", + "TECLA 'B' : CREAR BLOQUE de elevación en la casilla seleccionada (Coste: 2 energía).", + "TECLA 'C' : CREAR CLON en la casilla seleccionada (Coste: 3 energía).", + "TECLA ESPACIO : TELETRANSPORTARSE al clon seleccionado o subir a un bloque." + ] + for i, line in enumerate(controls): + t = font_text.render(line, True, (200, 230, 255)) + surface.blit(t, (70, 532 + i * 22)) + + # Prompt de Inicio Parpadeante + if (time_ticks // 500) % 2 == 0: + txt_start = font_subtitle.render(">> PULSA CUALQUIER TECLA O ESPACIO PARA COMENZAR <<", True, (50, 255, 150)) + surface.blit(txt_start, (WIDTH // 2 - txt_start.get_width() // 2, 695)) + +# ----------------------------------------------------------------------------- +# BUCLE PRINCIPAL +# ----------------------------------------------------------------------------- +font = pygame.font.SysFont("Courier", 13, bold=True) +selected_tile = None +level_transition_timer = 0 + +running = True +while running: + clock.tick(60) + time_ticks = pygame.time.get_ticks() + + if game_state == "MENU": + for event in pygame.event.get(): + if event.type == pygame.QUIT: + running = False + elif event.type == pygame.KEYDOWN or event.type == pygame.MOUSEBUTTONDOWN: + game_state = "GAME" + + draw_menu_screen(screen, time_ticks) + pygame.display.flip() + + elif game_state == "GAME": + screen.fill(COLOR_SKY) + mouse_x, mouse_y = pygame.mouse.get_pos() + + for event in pygame.event.get(): + if event.type == pygame.QUIT: + running = False + + elif event.type == pygame.KEYDOWN and level_transition_timer == 0: + if selected_tile: + gx, gy = selected_tile + can_reach, _ = is_in_range_and_visible(player_x, player_y, gx, gy) + + if can_reach: + # Absorber ('A') + if event.key == pygame.K_a: + if (gx, gy) in trees: + trees.remove((gx, gy)) + player_energy += VAL_TREE + elif (gx, gy) in sentinels_pos: + if get_effective_height(player_x, player_y) >= get_effective_height(gx, gy): + sentinels_pos.remove((gx, gy)) + player_energy += VAL_SENTINEL + elif (gx, gy) in clones and (gx, gy) != (player_x, player_y): + clones.remove((gx, gy)) + player_energy += COST_CLONE + elif has_block_grid[gx][gy] == 1 and (gx, gy) != (player_x, player_y): + has_block_grid[gx][gy] = 0 + player_energy += COST_BLOCK + + # Crear Bloque ('B') + elif event.key == pygame.K_b: + if player_energy >= COST_BLOCK and has_block_grid[gx][gy] == 0: + if (gx, gy) != (player_x, player_y) and (gx, gy) not in trees and (gx, gy) not in sentinels_pos: + has_block_grid[gx][gy] = 1 + player_energy -= COST_BLOCK + + # Crear Clon ('C') + elif event.key == pygame.K_c: + if player_energy >= COST_CLONE and (gx, gy) != (player_x, player_y): + if (gx, gy) not in trees and (gx, gy) not in sentinels_pos: + clones.add((gx, gy)) + player_energy -= COST_CLONE + + # Teletransporte (ESPACIO) + elif event.key == pygame.K_SPACE: + target_h = get_effective_height(gx, gy) + curr_h = get_effective_height(player_x, player_y) + + if (gx, gy) in clones: + player_x, player_y = gx, gy + + # Condición de Victoria: Estar en la peana del Centinela Principal y que todos los centinelas hayan sido eliminados + if (gx, gy) == main_sentinel_pos and len(sentinels_pos) == 0: + level_transition_timer = time_ticks + + elif has_block_grid[gx][gy] == 1 and target_h <= curr_h: + player_x, player_y = gx, gy + + # Transición al siguiente nivel + if level_transition_timer > 0 and time_ticks - level_transition_timer > 2000: + current_level += 1 + load_level(current_level) + level_transition_timer = 0 + + # Rotación + keys = pygame.key.get_pressed() + if keys[pygame.K_LEFT]: + map_angle -= 0.025 + if keys[pygame.K_RIGHT]: + map_angle += 0.025 + + polygons_to_draw = [] + closest_tile = None + min_dist = float('inf') + + for gy in range(GRID_SIZE): + for gx in range(GRID_SIZE): + z0 = get_effective_height(gx, gy) + + p0, y0 = project(gx, gy, z0, map_angle)[:2], project(gx, gy, z0, map_angle)[2] + p1 = project(gx + 1, gy, get_effective_height(min(gx + 1, GRID_SIZE - 1), gy), map_angle)[:2] + p2 = project(gx + 1, gy + 1, get_effective_height(min(gx + 1, GRID_SIZE - 1), min(gy + 1, GRID_SIZE - 1)), map_angle)[:2] + p3 = project(gx, gy + 1, get_effective_height(gx, min(gy + 1, GRID_SIZE - 1)), map_angle)[:2] + + cx = (p0[0] + p1[0] + p2[0] + p3[0]) // 4 + cy = (p0[1] + p1[1] + p2[1] + p3[1]) // 4 + + dist = math.hypot(mouse_x - cx, mouse_y - cy) + if dist < min_dist and dist < 18: + min_dist = dist + closest_tile = (gx, gy) + + shade = max(0.8, min(1.1, 1.0 + (z0 - 5.0) * 0.03)) + polygons_to_draw.append((y0, [p0, p1, p2, p3], z0, gx, gy, (cx, cy), shade)) + + polygons_to_draw.sort(key=lambda item: item[0]) + selected_tile = closest_tile + + # Renderizado + for depth, poly, avg_z, gx, gy, center_pt, shade in polygons_to_draw: + is_selected = (selected_tile == (gx, gy)) + + if is_selected: + can_reach, _ = is_in_range_and_visible(player_x, player_y, gx, gy) + base_col = COLOR_TARGET if can_reach else COLOR_TARGET_INVALID + else: + base_col = get_realistic_color(avg_z, shade) + + pygame.draw.polygon(screen, base_col, poly) + pygame.draw.polygon(screen, (35, 45, 40), poly, 1) + + cx, cy = center_pt + + if has_block_grid[gx][gy] == 1: + top_b = [(cx - 9, cy - 4), (cx + 9, cy - 4), (cx + 9, cy - 1), (cx - 9, cy - 1)] + side_b = [(cx - 9, cy - 1), (cx + 9, cy - 1), (cx + 9, cy + 3), (cx - 9, cy + 3)] + pygame.draw.polygon(screen, COLOR_BLOCK_SIDE, side_b) + pygame.draw.polygon(screen, COLOR_BLOCK_TOP, top_b) + pygame.draw.polygon(screen, (40, 30, 20), top_b, 1) + + if (gx, gy) in trees: + draw_realistic_tree(screen, cx, cy) + + if (gx, gy) in clones and (gx, gy) != (player_x, player_y): + draw_humanoid(screen, cx, cy, COLOR_CLONE_MAUVE, COLOR_CLONE_DARK, is_player=False) + + if (gx, gy) in sentinels_pos: + is_main = ((gx, gy) == main_sentinel_pos) + draw_sentinel(screen, cx, cy, time_ticks, is_main) + + if (gx, gy) == (player_x, player_y): + draw_humanoid(screen, cx, cy, (60, 140, 210), (30, 70, 120), is_player=True) + + # ----------------------------------------------------------------------------- + # INTERFAZ HUD + # ----------------------------------------------------------------------------- + pygame.draw.circle(screen, (255, 255, 255), (mouse_x, mouse_y), 3) + + p_h = get_effective_height(player_x, player_y) + action_msg = "Apunta a una casilla" + msg_color = (20, 20, 20) + + if selected_tile: + sgx, sgy = selected_tile + sh = get_effective_height(sgx, sgy) + can_reach, reach_reason = is_in_range_and_visible(player_x, player_y, sgx, sgy) + + if not can_reach: + action_msg = f"CASILLA INALCANZABLE: {reach_reason}" + msg_color = (180, 40, 40) + else: + if (sgx, sgy) in sentinels_pos: + if p_h >= sh: + action_msg = "¡CENTINELA EN RANGO! Pulsa 'A' para absorberlo (+10 energía)" + msg_color = (0, 140, 0) + else: + action_msg = f"Centinela elevado ({sh:.1f}m > {p_h:.1f}m). Iguala su altura con bloques." + msg_color = (180, 30, 30) + elif (sgx, sgy) == main_sentinel_pos and (sgx, sgy) not in sentinels_pos: + if len(sentinels_pos) > 0: + action_msg = f"Cima Principal despejada. Elimina los {len(sentinels_pos)} centinelas restantes." + msg_color = (180, 110, 0) + else: + if (sgx, sgy) in clones: + action_msg = "¡PEANA LISTA! Pulsa ESPACIO para conquistar el nivel." + msg_color = (0, 150, 220) + else: + action_msg = "Cima lista. Crea un clon ('C') y desplázate a él para ganar." + msg_color = (0, 140, 0) + elif (sgx, sgy) in trees: + action_msg = "Árbol en alcance. Pulsa 'A' para absorber (+1 energía)" + msg_color = (0, 120, 0) + elif (sgx, sgy) in clones: + action_msg = "Clon en alcance. Pulsa ESPACIO para teletransportarte | 'A' para absorber" + msg_color = (110, 70, 150) + elif has_block_grid[sgx][sgy] == 1: + action_msg = "Bloque en alcance. Pulsa ESPACIO para subir | 'C' para Clon | 'A' absorber" + msg_color = (130, 90, 0) + + pygame.draw.rect(screen, (235, 238, 242), (10, 10, WIDTH - 20, 45)) + + txt_hud = font.render(f"TOWER SENTRY | NIVEL: {current_level} | ENERGIA: {player_energy} | CENTINELAS: {len(sentinels_pos)}", True, (20, 20, 20)) + txt_action = font.render(action_msg, True, msg_color) + + screen.blit(txt_hud, (15, 14)) + screen.blit(txt_action, (15, 32)) + + if level_transition_timer > 0: + pygame.draw.rect(screen, (15, 20, 30), (WIDTH // 2 - 250, HEIGHT // 2 - 30, 500, 60)) + w_surf = font.render(f"¡NIVEL {current_level} SUPERADO! CARGANDO NIVEL {current_level + 1}...", True, (255, 215, 0)) + screen.blit(w_surf, (WIDTH // 2 - 230, HEIGHT // 2 - 8)) + + pygame.display.flip() + +pygame.quit() diff --git a/tower_sentry_version-sin-intro.py b/tower_sentry_version-sin-intro.py new file mode 100644 index 0000000..a6dea91 --- /dev/null +++ b/tower_sentry_version-sin-intro.py @@ -0,0 +1,465 @@ +import math +import random +import pygame + +# ----------------------------------------------------------------------------- +# CONFIGURACIÓN Y CONSTANTES +# ----------------------------------------------------------------------------- +WIDTH, HEIGHT = 1024, 768 +GRID_SIZE = 36 # Base amplia +TILE_SIZE = 22.0 # Proporción para encajar todo el mapa + +# Reglas de alcance y línea de visión +MAX_REACH_DISTANCE = 12.0 # Distancia máxima en casillas para interactuar + +pygame.init() +pygame.font.init() +screen = pygame.display.set_mode((WIDTH, HEIGHT)) +pygame.display.set_caption("Tower Sentry - Sistema de Niveles Infinitos") +clock = pygame.time.Clock() + +# Paleta de Colores +COLOR_SKY = (125, 165, 205) + +COLOR_WATER = (45, 85, 125) +COLOR_SAND = (195, 180, 140) +COLOR_GRASS_LOW = (80, 140, 65) +COLOR_GRASS_HIGH = (110, 155, 75) +COLOR_ROCK = (125, 120, 110) +COLOR_SNOW = (240, 245, 250) + +COLOR_TARGET = (255, 220, 80) +COLOR_TARGET_INVALID = (220, 80, 80) +COLOR_BLOCK_TOP = (205, 175, 130) +COLOR_BLOCK_SIDE = (130, 105, 75) +COLOR_CLONE_MAUVE = (175, 140, 195) +COLOR_CLONE_DARK = (130, 100, 150) + +# Costes y Valores de Energía +COST_BLOCK = 2 +COST_CLONE = 3 +VAL_TREE = 1 +VAL_SENTINEL = 10 + +# ----------------------------------------------------------------------------- +# GENERACIÓN DE TERRENO Y LÓGICA DE NIVELES +# ----------------------------------------------------------------------------- +def noise(x, y): + xi, yi = int(x), int(y) + xf, yf = x - xi, y - yi + + u = xf * xf * (3 - 2 * xf) + v = yf * yf * (3 - 2 * yf) + + def hash_pt(px, py): + n = px * 157 + py * 113 + return math.sin(n) * 43758.5453123 - math.floor(math.sin(n) * 43758.5453123) + + g00 = hash_pt(xi, yi) + g10 = hash_pt(xi + 1, yi) + g01 = hash_pt(xi, yi + 1) + g11 = hash_pt(xi + 1, yi + 1) + + x1 = g00 + u * (g10 - g00) + x2 = g01 + u * (g11 - g01) + return x1 + v * (x2 - x1) + +def generate_realistic_heightmap(size): + grid = [[0.0 for _ in range(size)] for _ in range(size)] + seed_x, seed_y = random.uniform(10, 100), random.uniform(10, 100) + + for x in range(size): + for y in range(size): + nx, ny = (x + seed_x) * 0.07, (y + seed_y) * 0.07 + + h_base = noise(nx, ny) * 6.0 + h_detail = noise(nx * 2.0, ny * 2.0) * 2.0 + + total_h = h_base + h_detail + total_h = math.pow(max(0.0, total_h) / 5.0, 1.3) * 10.0 + + if 3.5 < total_h < 5.0: + total_h = 3.5 + elif 5.0 <= total_h < 6.5: + total_h = 6.5 + + grid[x][y] = round(total_h, 1) + + return grid + +# Variables Globales de Estado del Juego +current_level = 1 +player_energy = 10 + +base_grid = [] +has_block_grid = [] +sentinels_pos = set() +main_sentinel_pos = (0, 0) +player_start_pos = (0, 0) +player_x, player_y = (0, 0) +trees = set() +clones = set() +map_angle = 0.0 + +def load_level(level): + global base_grid, has_block_grid, sentinels_pos, main_sentinel_pos + global player_start_pos, player_x, player_y, trees, clones, map_angle + + base_grid = generate_realistic_heightmap(GRID_SIZE) + has_block_grid = [[0 for _ in range(GRID_SIZE)] for _ in range(GRID_SIZE)] + clones = set() + trees = set() + map_angle = 0.0 + + # Ordenar casillas por altura + height_list = [] + for x in range(GRID_SIZE): + for y in range(GRID_SIZE): + height_list.append((base_grid[x][y], (x, y))) + + height_list.sort(key=lambda item: item[0], reverse=True) + + # El Centinela Principal es la cima más alta + main_sentinel_pos = height_list[0][1] + + # Número de centinelas según el nivel actual + num_sentinels = level + sentinels_pos = set() + sentinels_pos.add(main_sentinel_pos) + + # Añadir centinelas adicionales en las siguientes cimas elevadas + idx = 1 + while len(sentinels_pos) < num_sentinels and idx < len(height_list): + pos = height_list[idx][1] + if base_grid[pos[0]][pos[1]] > 3.0: + sentinels_pos.add(pos) + idx += 1 + + # El Jugador empieza en la zona más baja + player_start_pos = height_list[-1][1] + player_x, player_y = player_start_pos + + # Generación de Árboles + while len(trees) < 32: + tx, ty = random.randint(0, GRID_SIZE - 1), random.randint(0, GRID_SIZE - 1) + if (tx, ty) not in sentinels_pos and (tx, ty) != player_start_pos and base_grid[tx][ty] > 1.8: + trees.add((tx, ty)) + +load_level(current_level) + +def get_effective_height(gx, gy): + if 0 <= gx < GRID_SIZE and 0 <= gy < GRID_SIZE: + return base_grid[gx][gy] + (1.2 if has_block_grid[gx][gy] == 1 else 0.0) + return 0.0 + +# ----------------------------------------------------------------------------- +# COMPROBACIÓN DE DISTANCIA Y LÍNEA DE VISIÓN +# ----------------------------------------------------------------------------- +def is_in_range_and_visible(px, py, tx, ty): + dist = math.hypot(tx - px, ty - py) + if dist > MAX_REACH_DISTANCE: + return False, "Fuera de alcance (demasiado lejos)" + + steps = int(max(abs(tx - px), abs(ty - py))) + if steps > 1: + p_height = get_effective_height(px, py) + 1.5 + t_height = get_effective_height(tx, ty) + + for i in range(1, steps): + cx = px + (tx - px) * (i / steps) + cy = py + (ty - py) * (i / steps) + + los_h = p_height + (t_height - p_height) * (i / steps) + terrain_h = get_effective_height(int(cx), int(cy)) + + if terrain_h > los_h: + return False, "Sin línea de visión (terreno bloquea la vista)" + + return True, "En alcance" + +# ----------------------------------------------------------------------------- +# PROYECCIÓN +# ----------------------------------------------------------------------------- +CENTER_GRID = GRID_SIZE / 2.0 + +def project(gx, gy, gz, angle): + rx = gx - CENTER_GRID + ry = gy - CENTER_GRID + + rot_x = rx * math.cos(angle) - ry * math.sin(angle) + rot_y = rx * math.sin(angle) + ry * math.cos(angle) + + screen_x = (rot_x - rot_y) * (TILE_SIZE / 2.0) + (WIDTH / 2.0) + screen_y = (rot_x + rot_y) * (TILE_SIZE / 4.0) - (gz * 6.5) + (HEIGHT / 2.0) + 30 + + return int(screen_x), int(screen_y), rot_y + +def get_realistic_color(height, normal_shade=1.0): + if height < 1.8: + c = COLOR_WATER + elif height < 3.0: + c = COLOR_SAND + elif height < 6.5: + t = (height - 3.0) / 3.5 + c = ( + int(COLOR_GRASS_LOW[0] * (1 - t) + COLOR_GRASS_HIGH[0] * t), + int(COLOR_GRASS_LOW[1] * (1 - t) + COLOR_GRASS_HIGH[1] * t), + int(COLOR_GRASS_LOW[2] * (1 - t) + COLOR_GRASS_HIGH[2] * t), + ) + elif height < 9.0: + c = COLOR_ROCK + else: + c = COLOR_SNOW + + r = max(0, min(255, int(c[0] * normal_shade))) + g = max(0, min(255, int(c[1] * normal_shade))) + b = max(0, min(255, int(c[2] * normal_shade))) + return (r, g, b) + +# ----------------------------------------------------------------------------- +# DIBUJO DE ENTIDADES +# ----------------------------------------------------------------------------- +def draw_humanoid(surface, cx, cy, color_main, color_shadow, is_player=False): + pygame.draw.ellipse(surface, (40, 50, 40, 100), (cx - 6, cy - 2, 12, 4)) + + pygame.draw.line(surface, color_shadow, (cx - 2, cy - 2), (cx - 1, cy - 7), 2) + pygame.draw.line(surface, color_shadow, (cx + 2, cy - 2), (cx + 1, cy - 7), 2) + + pygame.draw.polygon(surface, color_main, [ + (cx - 4, cy - 7), (cx + 4, cy - 7), + (cx + 3, cy - 15), (cx - 3, cy - 15) + ]) + + pygame.draw.line(surface, color_shadow, (cx - 3, cy - 14), (cx - 5, cy - 8), 2) + pygame.draw.line(surface, color_shadow, (cx + 3, cy - 14), (cx + 5, cy - 8), 2) + + pygame.draw.circle(surface, color_main, (cx, cy - 18), 3) + + if is_player: + pygame.draw.circle(surface, (100, 255, 200), (cx + 1, cy - 18), 2) + +def draw_sentinel(surface, cx, cy, time_ticks, is_main=True): + pygame.draw.ellipse(surface, (60, 60, 70), (cx - 8, cy - 2, 16, 5)) + + pygame.draw.polygon(surface, (40, 45, 55), [(cx - 6, cy - 3), (cx + 6, cy - 3), (cx + 4, cy - 22), (cx - 4, cy - 22)]) + pygame.draw.polygon(surface, (70, 75, 90), [(cx - 3, cy - 3), (cx + 3, cy - 3), (cx + 2, cy - 22), (cx - 2, cy - 22)]) + + pygame.draw.rect(surface, (30, 35, 45), (cx - 5, cy - 27, 10, 6)) + + eye_offset = int(math.sin(time_ticks * 0.05) * 2) + eye_color = (255, 40, 40) if is_main else (255, 140, 0) + pygame.draw.circle(surface, eye_color, (cx + eye_offset, cy - 24), 2) + +def draw_realistic_tree(surface, cx, cy): + pygame.draw.ellipse(surface, (30, 40, 30), (cx - 5, cy - 1, 10, 3)) + pygame.draw.polygon(surface, (65, 45, 25), [(cx - 1, cy - 1), (cx + 1, cy - 1), (cx + 1, cy - 6), (cx - 1, cy - 6)]) + pygame.draw.polygon(surface, (35, 85, 45), [(cx, cy - 18), (cx - 5, cy - 9), (cx + 5, cy - 9)]) + pygame.draw.polygon(surface, (45, 105, 55), [(cx, cy - 14), (cx - 4, cy - 5), (cx + 4, cy - 5)]) + +# ----------------------------------------------------------------------------- +# BUCLE PRINCIPAL +# ----------------------------------------------------------------------------- +font = pygame.font.SysFont("Courier", 13, bold=True) +selected_tile = None +level_transition_timer = 0 + +running = True +while running: + clock.tick(60) + time_ticks = pygame.time.get_ticks() + screen.fill(COLOR_SKY) + + mouse_x, mouse_y = pygame.mouse.get_pos() + + for event in pygame.event.get(): + if event.type == pygame.QUIT: + running = False + + elif event.type == pygame.KEYDOWN and level_transition_timer == 0: + if selected_tile: + gx, gy = selected_tile + can_reach, _ = is_in_range_and_visible(player_x, player_y, gx, gy) + + if can_reach: + # Absorber ('A') + if event.key == pygame.K_a: + if (gx, gy) in trees: + trees.remove((gx, gy)) + player_energy += VAL_TREE + elif (gx, gy) in sentinels_pos: + if get_effective_height(player_x, player_y) >= get_effective_height(gx, gy): + sentinels_pos.remove((gx, gy)) + player_energy += VAL_SENTINEL + elif (gx, gy) in clones and (gx, gy) != (player_x, player_y): + clones.remove((gx, gy)) + player_energy += COST_CLONE + elif has_block_grid[gx][gy] == 1 and (gx, gy) != (player_x, player_y): + has_block_grid[gx][gy] = 0 + player_energy += COST_BLOCK + + # Crear Bloque ('B') + elif event.key == pygame.K_b: + if player_energy >= COST_BLOCK and has_block_grid[gx][gy] == 0: + if (gx, gy) != (player_x, player_y) and (gx, gy) not in trees and (gx, gy) not in sentinels_pos: + has_block_grid[gx][gy] = 1 + player_energy -= COST_BLOCK + + # Crear Clon ('C') + elif event.key == pygame.K_c: + if player_energy >= COST_CLONE and (gx, gy) != (player_x, player_y): + if (gx, gy) not in trees and (gx, gy) not in sentinels_pos: + clones.add((gx, gy)) + player_energy -= COST_CLONE + + # Teletransporte (ESPACIO) + elif event.key == pygame.K_SPACE: + target_h = get_effective_height(gx, gy) + curr_h = get_effective_height(player_x, player_y) + + if (gx, gy) in clones: + player_x, player_y = gx, gy + + # Condición de Victoria: Estar en la peana del Centinela Principal y que todos los centinelas hayan sido eliminados + if (gx, gy) == main_sentinel_pos and len(sentinels_pos) == 0: + level_transition_timer = time_ticks + + elif has_block_grid[gx][gy] == 1 and target_h <= curr_h: + player_x, player_y = gx, gy + + # Transición al siguiente nivel + if level_transition_timer > 0 and time_ticks - level_transition_timer > 2000: + current_level += 1 + load_level(current_level) + level_transition_timer = 0 + + # Rotación + keys = pygame.key.get_pressed() + if keys[pygame.K_LEFT]: + map_angle -= 0.025 + if keys[pygame.K_RIGHT]: + map_angle += 0.025 + + polygons_to_draw = [] + closest_tile = None + min_dist = float('inf') + + for gy in range(GRID_SIZE): + for gx in range(GRID_SIZE): + z0 = get_effective_height(gx, gy) + + p0, y0 = project(gx, gy, z0, map_angle)[:2], project(gx, gy, z0, map_angle)[2] + p1 = project(gx + 1, gy, get_effective_height(min(gx + 1, GRID_SIZE - 1), gy), map_angle)[:2] + p2 = project(gx + 1, gy + 1, get_effective_height(min(gx + 1, GRID_SIZE - 1), min(gy + 1, GRID_SIZE - 1)), map_angle)[:2] + p3 = project(gx, gy + 1, get_effective_height(gx, min(gy + 1, GRID_SIZE - 1)), map_angle)[:2] + + cx = (p0[0] + p1[0] + p2[0] + p3[0]) // 4 + cy = (p0[1] + p1[1] + p2[1] + p3[1]) // 4 + + dist = math.hypot(mouse_x - cx, mouse_y - cy) + if dist < min_dist and dist < 18: + min_dist = dist + closest_tile = (gx, gy) + + shade = max(0.8, min(1.1, 1.0 + (z0 - 5.0) * 0.03)) + polygons_to_draw.append((y0, [p0, p1, p2, p3], z0, gx, gy, (cx, cy), shade)) + + polygons_to_draw.sort(key=lambda item: item[0]) + selected_tile = closest_tile + + # Renderizado + for depth, poly, avg_z, gx, gy, center_pt, shade in polygons_to_draw: + is_selected = (selected_tile == (gx, gy)) + + if is_selected: + can_reach, _ = is_in_range_and_visible(player_x, player_y, gx, gy) + base_col = COLOR_TARGET if can_reach else COLOR_TARGET_INVALID + else: + base_col = get_realistic_color(avg_z, shade) + + pygame.draw.polygon(screen, base_col, poly) + pygame.draw.polygon(screen, (35, 45, 40), poly, 1) + + cx, cy = center_pt + + if has_block_grid[gx][gy] == 1: + top_b = [(cx - 9, cy - 4), (cx + 9, cy - 4), (cx + 9, cy - 1), (cx - 9, cy - 1)] + side_b = [(cx - 9, cy - 1), (cx + 9, cy - 1), (cx + 9, cy + 3), (cx - 9, cy + 3)] + pygame.draw.polygon(screen, COLOR_BLOCK_SIDE, side_b) + pygame.draw.polygon(screen, COLOR_BLOCK_TOP, top_b) + pygame.draw.polygon(screen, (40, 30, 20), top_b, 1) + + if (gx, gy) in trees: + draw_realistic_tree(screen, cx, cy) + + if (gx, gy) in clones and (gx, gy) != (player_x, player_y): + draw_humanoid(screen, cx, cy, COLOR_CLONE_MAUVE, COLOR_CLONE_DARK, is_player=False) + + if (gx, gy) in sentinels_pos: + is_main = ((gx, gy) == main_sentinel_pos) + draw_sentinel(screen, cx, cy, time_ticks, is_main) + + if (gx, gy) == (player_x, player_y): + draw_humanoid(screen, cx, cy, (60, 140, 210), (30, 70, 120), is_player=True) + + # ----------------------------------------------------------------------------- + # INTERFAZ HUD + # ----------------------------------------------------------------------------- + pygame.draw.circle(screen, (255, 255, 255), (mouse_x, mouse_y), 3) + + p_h = get_effective_height(player_x, player_y) + action_msg = "Apunta a una casilla" + msg_color = (20, 20, 20) + + if selected_tile: + sgx, sgy = selected_tile + sh = get_effective_height(sgx, sgy) + can_reach, reach_reason = is_in_range_and_visible(player_x, player_y, sgx, sgy) + + if not can_reach: + action_msg = f"CASILLA INALCANZABLE: {reach_reason}" + msg_color = (180, 40, 40) + else: + if (sgx, sgy) in sentinels_pos: + if p_h >= sh: + action_msg = "¡CENTINELA EN RANGO! Pulsa 'A' para absorberlo (+10 energía)" + msg_color = (0, 140, 0) + else: + action_msg = f"Centinela elevado ({sh:.1f}m > {p_h:.1f}m). Iguala su altura con bloques." + msg_color = (180, 30, 30) + elif (sgx, sgy) == main_sentinel_pos and (sgx, sgy) not in sentinels_pos: + if len(sentinels_pos) > 0: + action_msg = f"Cima Principal despejada. Elimina los {len(sentinels_pos)} centinelas restantes." + msg_color = (180, 110, 0) + else: + if (sgx, sgy) in clones: + action_msg = "¡PEANA LISTA! Pulsa ESPACIO para conquistar el nivel." + msg_color = (0, 150, 220) + else: + action_msg = "Cima lista. Crea un clon ('C') y desplázate a él para ganar." + msg_color = (0, 140, 0) + elif (sgx, sgy) in trees: + action_msg = "Árbol en alcance. Pulsa 'A' para absorber (+1 energía)" + msg_color = (0, 120, 0) + elif (sgx, sgy) in clones: + action_msg = "Clon en alcance. Pulsa ESPACIO para teletransportarte | 'A' para absorber" + msg_color = (110, 70, 150) + elif has_block_grid[sgx][sgy] == 1: + action_msg = "Bloque en alcance. Pulsa ESPACIO para subir | 'C' para Clon | 'A' absorber" + msg_color = (130, 90, 0) + + pygame.draw.rect(screen, (235, 238, 242), (10, 10, WIDTH - 20, 45)) + + txt_hud = font.render(f"TOWER SENTRY | NIVEL: {current_level} | ENERGIA: {player_energy} | CENTINELAS: {len(sentinels_pos)}", True, (20, 20, 20)) + txt_action = font.render(action_msg, True, msg_color) + + screen.blit(txt_hud, (15, 14)) + screen.blit(txt_action, (15, 32)) + + if level_transition_timer > 0: + pygame.draw.rect(screen, (15, 20, 30), (WIDTH // 2 - 250, HEIGHT // 2 - 30, 500, 60)) + w_surf = font.render(f"¡NIVEL {current_level} SUPERADO! CARGANDO NIVEL {current_level + 1}...", True, (255, 215, 0)) + screen.blit(w_surf, (WIDTH // 2 - 230, HEIGHT // 2 - 8)) + + pygame.display.flip() + +pygame.quit()