From eefedc03b9193d40cc973c6d62a0b52774aff8dc Mon Sep 17 00:00:00 2001 From: magenoxx Date: Sun, 29 Jul 2012 10:31:46 +0400 Subject: [PATCH] [AI] enhanced targeting. card fixes --- .../src/mage/player/ai/ComputerPlayer6.java | 26 +++++++++++++ .../src/mage/player/ai/SimulatedPlayer2.java | 35 ++++++++++++++++++ .../player/ai/ma/ArtificialScoringSystem.java | 10 ++++- Mage.Server/plugins/mage-player-ai-ma.jar | Bin 62878 -> 64446 bytes .../sets/avacynrestored/BowerPassage.java | 2 +- .../mage/sets/avacynrestored/HuntedGhoul.java | 2 +- .../mage/sets/innistrad/GraveyardShovel.java | 4 +- Mage/src/mage/game/permanent/Permanent.java | 1 + .../mage/game/permanent/PermanentImpl.java | 14 +++++++ Mage/src/mage/target/TargetPermanent.java | 2 +- 10 files changed, 91 insertions(+), 5 deletions(-) diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java index c818b917a6f..0a8e95acce5 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java @@ -607,6 +607,32 @@ public class ComputerPlayer6 extends ComputerPlayer implements for (TreeOptimizer optimizer : optimizers) { optimizer.optimize(game, allActions); } + Collections.sort(allActions, new Comparator() { + @Override + public int compare(Ability ability, Ability ability1) { + String rule = ability.toString(); + String rule1 = ability1.toString(); + if (rule.equals("Pass")) { + return 1; + } + if (rule1.equals("Pass")) { + return -1; + } + if (rule.startsWith("Play")) { + return -1; + } + if (rule1.startsWith("Play")) { + return 1; + } + if (rule.startsWith("Cast")) { + return -1; + } + if (rule1.startsWith("Cast")) { + return 1; + } + return ability.getRule().compareTo(ability1.getRule()); + } + }); } protected boolean allPassed(Game game) { diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/SimulatedPlayer2.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/SimulatedPlayer2.java index d9a076b0297..0f63ac787f3 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/SimulatedPlayer2.java +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/SimulatedPlayer2.java @@ -35,6 +35,7 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.costs.mana.ManaCost; import mage.abilities.costs.mana.ManaCosts; import mage.abilities.costs.mana.VariableManaCost; +import mage.abilities.effects.Effect; import mage.cards.Card; import mage.choices.Choice; import mage.game.Game; @@ -118,6 +119,7 @@ public class SimulatedPlayer2 extends ComputerPlayer { for (Ability ability: playables) { List options = game.getPlayer(playerId).getPlayableOptions(ability, game); options = filterOptions(game, options, ability, suggested); + options = optimizeOptions(game, options, ability); if (options.isEmpty()) { if (ability.getManaCosts().getVariableCosts().size() > 0) { simulateVariableCosts(ability, game); @@ -221,6 +223,39 @@ public class SimulatedPlayer2 extends ComputerPlayer { return options; } + protected List optimizeOptions(Game game, List options, Ability ability) { + if (options.isEmpty()) { + return options; + } + + // determine if all effects are bad + Iterator iterator = options.iterator(); + boolean bad = false; + for (Effect effect : ability.getEffects()) { + if (effect.getOutcome().isGood()) { + bad = false; + break; + } else { + bad = true; + } + } + + if (bad) { + // remove its own creatures for bad effects + while (iterator.hasNext()) { + Ability ability1 = iterator.next(); + if (ability1.getTargets().size() == 1) { + Permanent permanent = game.getPermanent(ability1.getFirstTarget()); + if (permanent != null && permanent.getControllerId().equals(playerId)) { + iterator.remove(); + } + } + } + } + + return options; + } + //add a generic mana cost for each amount possible protected void simulateVariableCosts(Ability ability, Game game) { int numAvailable = getAvailableManaProducers(game).size(); diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/ArtificialScoringSystem.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/ArtificialScoringSystem.java index 94aaa3ae53b..108cd9191f5 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/ArtificialScoringSystem.java +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/ArtificialScoringSystem.java @@ -91,7 +91,15 @@ public class ArtificialScoringSystem { } } } - score += equipments*50 + enchantments*100; + score += equipments*50 /*+ enchantments*100*/; + + if (!permanent.canAttack(game)) { + score -= 100; + } + + if (!permanent.canBlockAny(game)) { + score -= 30; + } } return score; } diff --git a/Mage.Server/plugins/mage-player-ai-ma.jar b/Mage.Server/plugins/mage-player-ai-ma.jar index 2c678b13c27291eaa5671748d19c89d670c25eff..ae0c9abc9fff5e3b70b7fe44ee60719fdd040097 100644 GIT binary patch delta 32817 zcmY&-Q*b3**Yw0Xv2EM7ZQHhaGO=yjwr$(ColG*xB;WI1{1^YO+N*2bukNm{&btQd z`vV40k_7{Y{q?^GqnZdH2ZdHmWKI9yoFV?-yr=qaCS!xp{tqNT82$$yAl(0hMi7Dj z!6OLMf6z<{dItJGgoDTcMSxcQCnTKA{zeM+>lYzpaw8NSFjQ?@1yvY{pOZ3 zot$=uHBs3b(2R-8rl4Qz6kWN3+fVczf&s4CpjAV2$PgiM8g(Q$rA|#1Qo-^M$$1_Y zlVvaFkdUWxmr11oJBX@{dltCu1Vh7_ZAE-Qj1PE3Grk>_|GXf&0@WcRtC48K+ zl}4t}U2=Z3vRw}ueq{+X>~di%^CH4L{lYgzkMV&LkT>hMmspq3;@{V@B=_$yOuRb{ zSlX#{hfu3rpIEL+^wH^h3~zchtHZS4uABC_1SxCc+VWq~7l9kyi@A5j?7bp=-5O@2 zr&V?6^DWQXnoBUvqyBY#z^2?L>ZdHN$EyJC8Cm*jOUg-Lyb-0p2=8^$YRp)W zfA=lWWwgt*WUbHoH^^;4Fc>W4ErA_D0xJZg_uF~ElZ{i!EXoeZ-@Wy1|3oh-TTZWWYsCOcZ?mwD2#fh zkyFdWv2lh&g#UOpgOq=ZCl0l6Og)E8*49VigIC;=;t>nXER#$A+Il3QXnu(3UlNSZ z(sD{HtFpj7s-Yzpd&*DT3DZB^22R~FzLtLJFH{j&OJ@cEaVVX348lw(Z+HUY{xDWy zd*n0Kfs+=(-?I?kN8JBMNa$bxV-d?{T`YNW4HONKmBG}`*wr;Q<=Sys18Xclxy%_Q z2W6_(O>YX?cA7p$w%xh*xBqyDrcu**rF?r4=%`1)a78`nAa`uPr#8b&# z71z-#9*Gk-a23sJ&`sC2^S=&m!bV0WPfbEP@LO>MXIa<0K925_F!HvO#c78+M!I|E zv~HQ}xTrjq>msyuA}J*?F(os0#SUn^q86j=sX{uj$tcEhsJIUu1_hG0z=Drnqg>9TC>p zuomDF{XM_1X*{bNtmvBQTgYIB!I~|Zrb|s_)TU;kIv^3R+X`r_KS&G42foe*Cgp zP77D2v&}el)Ur;F!|0_$4#Bw0rF+hI+%iFzdW=D01Lo^|#J6B5M@M{_j4|MIa``>& z1*$8&(mtayqZB27u=7%%@Yny(B$|QU{3z*Pzx;EPl?Kq0;cpR=1>s-7A7}cO&u6lh&+qupfBzd8{>3EsxjdYQE`qrPrf21xK%v*Q zz+aGw&B=dsaab6hP9Tv3jKG9Rk$E^Mj%GmNUl_H^7aJy5r3oddB=87+SX|KWz42O9 z$K0)u#o_-lSk!+h(6}T>B=%8h)5P;tFjJ{&mwZ9?=P$~?P>h9A+7v=Gi>8}GD6(tQ zJc-b&pFj6m}K9U`fOeSF9d7A3-Y@M3eF}saZKN=j@RJE6Ng7#9y#3k&8#H z+PS9SK1Z^yGFUD;yt5bUh*!`C8MS1a>%ho6Hm$_vq$} z+&c`*Wym^@XjdvAgS>y9ZjPcq1JMG*OGNa@XiBfxpj;(Tw(`=PZS^!opY+Yk=eMq& zu#p~h%f7(ajQYx78y~&n-|j~`@f~psTP4x0Y&Wk2&cPkZnAdKNd5~R`aGX)u{0$m* z4^g@!wJEg)EA}gYJ*GH(NAQmnt~@bkecE;HO8)RWI5Vp6OTyomk5j~N(6u4$=(;z` zW6~3Bh?sQ)we2WFZXcpF9))r?s0m7%!rdMl7zmuB^;3M+Fyp-sj2}A~@*V~ld;~9l zkB=M^cnRHjM3?UzS+{$Qk>;V#FCKgQ^c-L?E{!mDjska%%-g*}(_X4{d(JTGyGL;y z9?Nul#0UCrG44A?yVd>?)SAJR?v;;2IXn{g3c5rC<9ClxZN4fQ1fB;dkNVZVJ9YgI zF$`7uQZCMDNoHNDKC)E6tUC9V>K%8Fc-!Ce4n79y14@eWcaALE-$OBesu=>FhwhJD z^}p_Z3nJ4WAwE(P-!SUm6ehkcnG*89CG)*+({7P11RHC(Y=!7jlQWT*YT9(vE|tpe zPVX!MZxfxDj?)Z$Ove%)!H=-o<(#G&)G{IhC&^^~Bf==DYUw;__msnn)N<+m@RvyO z(OuWgq4A~2vUykd>xjsrq{T&3dH8GDkO9G3`d%i%TK--yza3HUr`HCN&!5)@JfA<$ z4SYU-{xtacAU-q{z7Sj(hcEI@562b!AwuK@Chct!a0C%u(6}aWnlbP{xp8j{OQ^c{ zg~uY}fYculpiusmPSSP3Dn%$>IaG5FVSqb2Np$H5PnAN^X-a4kPr;YoR9N?S#KsqSxKgpFt311T*M#SaY2^~1FAKr(J#l&WXyy?qmfVQM>yd%2 zxHVRLJzTLWo&I|I&%0zxy2)8C(q#EuDr+7lWV}&8`eVA(JI&eURZuBy&2uI5=&man z#K73S%!>8mSdnIH3f8JtWzh6p&{uPTM~UTA%Y09UPj2mB?Yen~X_j55+78|v?uPR6 zbA{ubR5mBxb<9TJuCdO#k&*#ys1uY=e)sogkp#Bx-o3he2gbUpk-jJdn1+c(`Fh&2TMAumMUD2D5Mm0u+S;0t@p^=Fxru&*pN)A1$arM7erF5C z!h#l|855aBaiVH9m~8OJ@6lBCRQS|ErGQ46S{j_#-PbUoe@jMSa|u|$Rqfc_a{a}L zh_4)O^5a?LDHay7ccy*1X~J@Y zjfn;(&hDBt4T@`9+eXQ<&Eh(m1{$q=!it%EeeGQ>bRs!XZ9tb8 zor6b$&<(Es(xeT4t2=z^YHB(7HL_?iuTjOWPZik5;oC>)>)-)^*Y?Q4%v|1l*h=4F z6h1pt6~dB^x>7r+VLgR7LDIq3fIocJ4Pm72;vcp1AI9sFAQ zdsJOmMAu%sz{a7VFX>66(5|8aFuH-T)7Lc?X7o=^T}8-FIkU0!Zy(;ra;goTINy51CpS`i2s|tbTMPfM22&%xU&S zfkCUgd+Qk*U5RYV_0yt>@UV6|y;U76(gY6kqZqD96MQYO=r>sgwH;Q8J4Kk2d~Bgn z=axW@69`N7&_4QOJ@Zq2%R$b#_1{VlQ>g@iu6F)HY*F&RoC7Z&*rkva*7_WXbi z=Fos@mGo3{2b@YGh@y~N!EaPIBPcBALFFN18WI9lHR#9P2?Ct_MvL$j<(K0mk#rGd$_LzFSIR?TIN)KA`$yKP}1?BR>A}qQ37duO>s8&3Ac&Rm|@WWhp_Z*OQ^eX$Ba`)Mfd=NZ% zEj;Df#${0U3h}AtEyl_kjt~}<+TTKbwepphTy%F0UlDB{*-A6iyQ>=P+FwwFB~rjm z;}xDi`GJyL>ckorl@(}+-Tma{adVUI|$;~s@{!~zyN#58q?t6qr5J`F|i!kuD(wZ1)-TI2+R;t8`oog0pg zDHpL#i?c#B2^3R^xs{#rW+jAtN&_240@U?;{JF3`iRTqcs?Jr?6wS&t6=B)>8r8&N znK{#2flq00-sQz&xBUnS%*Hkgdk6UCRh#Gv4V2c9;N1ejfaqo{lgC-c1T&C7*el#* z<`j#HEqYjNrM$R$37PwlIU?Sqaq9=-KrC7@$~3{Pu^G1}iHk;PIJL-;zq+k4Y-V~& zX@q8c6{=Q9F{#z_nFg1JVy>>1FrGo?PuNzN(CWyPkDJp1ypF}w^vo8zO|vL^YpnX| znV;E275GxBJ)`$juxt?fDF$$SE0d~6BMGoR$*CDFMI(ykOgY0myOmPW^k~CPC3bU2 zv9?w%q`ZCs>PMrcte=&AT>;A~J6L$NmGu=#V`&QF%e_eAqD5aHcR2R3b-WJRryK5q zJHn;5%;DxBryFeS9E=TL*bt(9#!%n7XtfdWv@%7mm8_z=Z3J8S6ak!l%ff2$V5?;A z$$vY!By({tPOKU`-l7?+iz2yAdD@ET;rA3Vx>Rv%7ol3StgH|nN}9?NN@Z}x|-zO4t$R@XXKWJGyU*Fvut-J)gd!LuJ} z=^~e`R@mn@npr^Il2orabY0oding+M`6Ucq{p3G-IdK;u<*Hz_@au~iXt||)*Z-zv z_Dm(S;>CHkh$S>+2^f5bnEG5wBiXtxItEpC-YKrkGbtF%Dg|y7;XtjQiclw5?6 z@=?!OS$3tVgHNXwGG(II6kAW-PAoa&|G7-)*~21``E(+2NUv_I((@j=>-u}}RIFaJ z6v|Z9ga%8vnFzEWpGViGLC{v0z9|h)5Vo-bp-yzRZ%(lDN*N_HpP8D{Ng5Mw(XLxR z^#TY|Ztpef->59nb z87}4b3H^9cr10x`MuTBbEHrP$V;2&20`gNqAjG{9!4lXI_hZ(;xse_5?i76V_wN8r z^Edum-Qa%_0rSNxwAZF#eY3jDZ^NkGIP7NvD6$6qCl?J`eFni~o^ex??UfYrGlR!} zLV#ss-zA-xFg2cdoxp2wBl(v3h-Q*YC5O_;U)?WygFH?kA|C z#>R~MM0zv#`M?(JSv(H0@@)DM$sovnV)@iBMRq%BYiDYn+N7aZS|JSw2mjIeHI!h8 zf|oyC5BO;Pl1SgjdE)JZq7OL+eDr>Wfd~>W8v*-OW#(te3I(SU1Si&&gzz|rRcbo(bC&yh8lyNXm%4VQ+{t0o#rRu1nmojhbRy;wiv7_rcyeM2&R@#57BW%KF+lH-&QvY#kC5 zto!-QLBVrFEFBbQVc#qVN~OfIRgLy zr4BNGBA%ngVZv7@>x{GIPD)(|(PZ?##f@yANoA5Cac250|C6zRf`8VlqI^5Ez&LyH5$#(RYR+-Vd*&5#uvV>0{>p> z07GKmfPowf3rz{5t-@s3XHI0fcJxq`wN>yCtj{c%#b>$}R-HPqNy|}FSx(9XMXI8?Z~-bu**d1^8CRmwRHtN!q^|_+29UgQ;SU4_Ap-kqLu1@h#I zqM_mNMHef*innY0LVf50f^NuFCc-Hz9j**^i5y)(Uop2pkSUDPxR86x*AAv9#o!D& zM>W510>WCeMIvAP%gNkRbYCWJ3Wg4Zns~3WJd@a*PO6Re02t}#-+7|8X zEjYCr>sNqVv)C_S^ca%yrIuJxT_~XTw^&-9cKAWsv4VBfH=tHIz|?9QS;!tjx;k}> zMqj|ls@$slYRfw8jghUSW%+dag0emOZLU%m1F$wLVZ+e^w6!c)vtKvz^EZM}-;NR> zQPLx1+pV^)NK#wbSeRRxYich_4m;D@-DYRLu1#>8_ecer2Fudg&R|&F_uU%XVOp^2 zzDDj&d9ck&{M%wz5oU8`V3jcCxJF0ao4~mJou{NKU@A?va66c(ZL4^4zz7*vjFSo0 zx=)-l8F%Vga|ynyJ}4w#+in{*fxE^1bV()49^;?Hw?<}tOI-meukKpn+WHK* z^}7WP-k$=_bF{!wyMvT6kZ2=;h&gd@)=i=22}$dBZ!9pZGLSyHbQabw)-kovGFR)D z>f2kbTdm`KQKaZ>xs!Eez3T+mAKSXuPA;t3tmAIMZ^d@)M4rXBDXg#IZpm-WDl?>_ zc5$}Ao6(xLxC*4Sm+ltr+E}$)x8r`H*J4wW1z!OXZWTnkqlr4R32lF4=pmqEuj$P5a`(0#&y0i=WQH`?LAXEtD-#iT91YQ79f4=2nU} z-R{6!YEfSuUy1cR@n$LCxdTV%7O4F7gK57s7Dl3FOW~cF zgQ@OlcS9WTt(j;(b7In#VUw)4(T0)|vFN~6(uIUbvA8u4QU719{|Q_eY}2oxDR3jE z&gVRvIu_e|D-~1`*DF1m3V=C>M3{BBr-0T(jHe2topSsYvubF|j5^E2Rf(;x}9*68alU%b!$azk-U4LVux|4G%B`~M z;csz={zKOhRBpWxz^;ZZASeXlTo?uW*w2Ccl*c?bSH)?m>x9GZmHdg)C&=U<{SrnV5@FjD@xdNFOQ%Hg(%RJu;tTrX~?Hx0jCA>{MLKmF3i)jJP3PXtfXqGkbLTwWPK8&hp z7o-&5A#z+2{h&{SCufBnHY|d-uSr7xHG$Z@kPd;eRomYv2HP~eloV)cSFMy*m`q}W zi<`rXN#$+1)M|bbZ&aXzY^ATC5J&a=pX2kQX)|lW2I{gg^)_a4)Sn31@4~lwj4<*P z-0w^%MuOnq)pVKYtDCCqxRK{lnG^J=M48l`6)-zkk+(6jeoV`}2^?_ucgFIlWO{=@ zNyAYSgLKD>!)v4KsQ|G{;QIWF{}buGSSvNOQ;`w7paPUe4fW9AZmCCQHxy!)qB*po z)3dZ0EoIZBE(`r&cg-*vb-qjy$U>9tJt7Vm$n;7^Ehz!=wsJq)@Y{PaJc)P}5aRH~ z;%Ip}>hP&GbbU|_woMp0!o9;f_0K@p8C~U$DDFa|i7u`>O<)*>+WMlCOiP6*woaRa zeM?s+cD8pB!~Xf`(Lb<+mgyKJ(zFGE@k%Q2QKK)x{v{k)zHu}$S9?Jgz7EoVluCM; zBhWVVo(nVJru4mFBA29Oyhp)mb!}6av$J!R*(wTa=rESc2nAbbS^72cc7EFb1?vDj zVbfM;(th=fePGD~q|TcZl(?3e!2xG!p7&&NGOF-(oMO8|m0T6}d5xfs;Ksg=GU~Mt z5O1`*W;PBkbb7g&haD6eUdP+X`BqEyoRNBJS{{-W?5r?iUY!T77q$MC&k1fk zfN1UlJCuXA#Q?LWO665tS;6~LC#0dSZSLzAh`WO*Kk&BdBQ%H<%_%U0WzdAmk^5@e z8NHR5+^%cG(+Lkmc_)zrQKA}u#I;^aHl}05aoYp`fHl7E)*a1#h$7rcIzwUU8b=g8 z&4L+bSjbzqb!rneUbHGrEnYaLrL(ee3OP|`U_-N=U(C(o%K*EA8SL{IR9*cfkLLX^ z{#1G71kh1fy$CQ5&5^sRrFslVUA#0N$-#NuoWFrNwvZzf%od>KHd-c0`c6h%q9_Bn z6y9rMh=r0X=g<)ivA{#_yr{S}S`%Nz*pHz!waAzN%aIFjWM~&ws1SkDM(4%1Xw4~R zzfs-CYbyZA$TM0B6j|$=W=ANbX0VL1HIsC&z*hY~adZTa=&`TjD8a`+jVPCPD;ZOx zJ(Wc(63+78mELbcC8r47N4uD^1O7{GrEzMi9lT`3Z`j|}iIjk^ck1@Add08d4aAr3~}2)z^3+3IPMozTo|&g7cQ4P(xur=CU*gNc*{Iv(z^T|xg z%e<4saNEZu1X=;TlA;OmUqPT&na^@z1Bp(DjDxI`k%;cTxX0HN6?qCst^%aQ-wlaB7JS?iPxH(r!c@Y_9a$%u>?*7oGiFpWQH^b zO7{+^^iqsdhQSAy4x*^OiJf5sKFd$!Sl>+`=Aw8Ea2nRJ9}B~SOM2!Omm0kR*<*vo z_M|GV-Gfkszs~WubyJjdwmVviD5R9N>TfZqzn$oeuA`CJUTVY={RIpCV=MXfSuIm$ z@|f{C={$h4f*!H_T-?Jzs0&Hqgm?6bHgfp2NYG&RpXcr$DB>{DcQcZ~xP6H0am}iE zdJBYHZZzxVxc3l2^eB?C;J{<>pd(t*Gz6yb`}N7O_TLw^@0<{BChO_F=-@4#SFDMd`Y z8nXj?+22iQ909v30GCwBl5^^(`$8z3iGQ+!;Qm5EPhU&TMwcZ+Xz&G+u~$qbA~KeH z4sydV27bcUBc{LJU~1}=pzKuC_j};LqmJ`Ox*<>+)G_T+JK&QzDy@NI=SB}lt}q=&9Av`OCBt}F(Bp$l zTCk)ApkpFH@{|E-Cit|$My1h!!L>~aryI?;?7!SCA2*&lJu?3WzrpKNfW$!|I%@>3 z+5m0o)!MnaO@zrGD|K$&LDA_U&nXV6LCq@%J>*{9fp&P6=JueG9J}9j&rG$ZI*y?Z zcvR{~OsEu0N_zl~c#m;kaG(LPF-+|4|c3Gac2>r>?xcCh@ry=F|I|k3ET|^NfyAX5D zjKvE0dyjs>@EMv~m$-Obduw+i$!5Z#M#nctD8!eJ&;KKPrLOl+UmILxGi> zYgz_ncCMw0c(MSi4Im80x(TwYQvFPB#%RX?nJbmd+p$8xa@9gim_KFirQ zc2cXJDBrladAeMH%eOpY$cLEh@VsomsX74i?HoTl0~v>wq946s*oI3RU>HR0YJcZC zLGXcV4i-DX^C7Gct2%)-o$+|#I*91m1B1V?hNWVVLlH?SPb;iA>Wx! zHblCI&eFlRg;9sPxBvIgbKs&?REUik)vSGub7YshVAo`sPM4-@- zi;FIC{_x8zlNlvI905DcPYVt&?t(kWqq6`a&hGaiaw}=Y+RX}V=*ro{2}yIfJSJ(S z9h$(Cj$BM>hBQZ5s!u+L-gpaB%SZ(^xu3Mmr&E&T%Lf633 z1w@$m1}GVQAifkqEmaqR(9m9_**~JB(_tr0KG6C@o}a*REk3?E$RSiZC}5u1_<(~3 zf?^|Zc=-m@E37vBd?WXP&llW4toDWFlfdB6!Al+a4&~thD|2VmeZhGKd1v-`Ak?(x zjNlF;7kx0+0vowP{(x_e%qf+{i!Z4^o3$;SvfzX_KXmFMl3G^R!lX8)+2bdD6GB6(B7tZ_kkE%5Zt-(y0{oi7TLm)4)K5yJy0+24;7sO9A<{N zxg5MLvJ;rRrou9WGf(UkIyWP=oA^vuiiJD!1v}HgA;paIp}CJ+p(4(IJ>vJ`S3v?$mBRahe{jUf;_f41} z^KZ4bK9)`ySJ;-WSFaD1f2qrC1G8C7sLY;samM8@8{_fDU2zOkauJ1Nvrtu@L(qz| zfIsqp*ra{cH8!U$VC_JNn`(P1LRUEK70V4a$MpjZr70ybU+?mUGL`-ODDtYn_87 z(0D`FH;0b-<7C`|^m$dHe-7-kql&^Nae{RaKnBr43C4WNkEiT{jD_wph&rn>PoRlrx>?n0=G8JAvgoEW$eL;g+%@?O4dA)`qN zQj!vFSyQ4_YHU!V9b1;5snSv0XfIAYE zaHTtJHptzMV`t{<(10L%?9`8q4s(FR1MkLcyjZ|6#D_Pq%ZIsVEa-tk7nHEE^ubUA zM6gk2$M&!DqE73&dxtFPAx~bcf+!wc5M*9(&gE}XBmVi(f1brP+l6dg)(Uq@py%FN z(`q(MZwEA~^&MF%qD&w%QNp3`GAcG0G&u@ z_~oxnz!_Vp^7Kx-VFN{~Y?mBf2&T%L_`nc%|TofurTR&jmO%Y-r-R7~;6}PUZXd79?f|`c#h|1G`iY zNt{W}NS5$OrP3*MJw=_j8S(*<2fM+d2iFFzIiD4y|GZ`RPN*sCAUI~>Xmd~taY0|b0DFbj}<(L-4HA`wTrc-?hvFTZ1TT(1qmoa` z69kGw00A87b)oydNW##Qn=m4~whR-tp5gHalbx@<2dJb)Dl!i;&~W7_dw>B zeHdLTod$PayX-D(9i?i!bD^qT-#LqoMbO&rgWsR!iCDf!=&}e=^WkUgqHirb7+xcD zrK)$zyy-%n$j$uw`-Tm6cKc={md#(9iE|0{lZMtg;qbfL*v2 z4!wk^k%!DcE5S1?VD5ZY+4JVR=9RGDd}C`?2b?gGrmr73CSRmjo&sM3E-H447c6Q? zt{m?H>{4Lp7J^q7OxRtZrOtu2iH~3!9ix*t;04d!mHRAszLnV@->q3~pB_mu?BjXl z36+$mH!!yWM*g!1B7)m?1n*Y8Ax<=#Mr%_jToUjHC6nC)sP0vRr+fHaJ`kEq%F|=V z_!r%Gak733+FQO8<4{Y){OS7a!I4X4KKILl)oRj_JBTEEosnY`?uPCS!yAXK@x93% z{~N?7Qs%L$!Hj^bm=Vm@Ny&%)#FEIR9sb>KwQ4&?U|J?F-d|O7TE_qiBB{))1!UPM0b)i+%fk zR+wE;zI}LI-mKn0T75oQn>m7~Dnq1x;!tN1I1Xu3vi5n)w@mTymmhnLYabnl=JXGW z<)~!M`)33816b`EssVl6AJSm&%>Yu-w9gVn(qw+(qI<;=DHw#GN^HDm?=Hr{a{EA1 zKNyIteWL8}tZ%uqh}orp{<@~P;;=W~%o`Z9(|pXfr}aanCk?9M!V^JUn&6)2Y$K#t z;49pv{Pu$;Mv?=LIClX4t^*ztW!xM3-{q=Q)a7Ak6Sdd+G}^`=#r{5AA40DUtDX+O zEr}Pp8!fo!f^(=F+LOZi#D{+2{UhB8qy1r{H?Y6xf`yeYtTSQ?`QbYrkWZIBZ@f#( zgif5FsBI1X3!MAWEarq+vY(5R@3;Y$K>G(wD2#dT>q!XQ5q6HKZY>y^Nt`>2X>UB< zaNiA|JM%v-!S=_GHK~*h;a-?;;EHC9&tz{9_fvi6yBqg>vHwPwxgP)w-imBlK93B1 zsIorK#utnjPr`n5^Jl7F2>Ii#A0#RKvW;bFgk#r>IXa`^&&v&~omOf3QIMNBK(>K8 zk>Kh`%xCzGX9Iya$8*$o2Z2<<;d3f)4}3S{Vy#N+mPQngNJb$T)cHB%uq1YvjxEj9 z!E*`0#yj9h#YL&SaE$-fumm^Ld&m(bX$PvU&XVWZ7!eNp?7L2j`E+?~hdI zl#i=l;5XI9A-u8q6MGQtra=`bz&@lMnJfAr25kEV0AHDusCQY(7D*}s)wUzy$yLuE z0j%iM58$w<%o92Mylj-M==#+!{6*Qz@pyYfYm%&`{ z1_=TSy2hjoy%S#*DDQVP^$@_5saVEIjUeuOJIv265QYlqKx0Iiv;^^b(*0|0AuKBV!>Ze05& zxW*i^s(ZjVuK9vW2#XLINTNJvf(b5|pCc|Im~S%p4>v9(3Kewo>KBVpgHN-o%X1s+ zM#gs3c7&5W6D?y@)ICC6#Dz_#m2*KeyhS_(TZ$SY8YxQpOVI{aV})Ib^TBy>y)Ves zE1dH_L(t-vNyY@DFx0sUSDGOtIPNF%E>9n(1QEra*o;S+wiPy}M08USx=sY1T}#IkRlvfKUSq;j zK9*D`T%rr7+bM1$%boC42PXBgK*rd8c&8sK-grBSdka+wP)^0c(K8ecQzdK?l1vqY zM@svG$h|_DeBbJR^$zb%!xk=o?_E(U?(I{QX9`l zlY0b#01a#gw~bjPqtMPDV}EEUEiCHDeztkbti6F@gDR9_S;H`B| zXoFlG>PK5zdstTfc1l&bK_e!ryaUJzQEVJm^fHAuSWZo_B1c+2Hq)2C3aG9% zwXhH-#vn>V<4<9%u~W8(x=$;699yu#R91wRYGZ-|H;#?=AS1^6Ri3II??qaf1Mfh7 z>Dzw5J-g`|VSe{UU24B$j<_{)Zz`PS_vgAh8uMpq_v)v_iDOq;6?$*Q19i?GYIRl*fzxf+mz5DW=L!a zqg+yY|2w;Ltu>!UZ;k^#YOyhiqTdRblp9pObBkOD%E+#9gMQ2kfgg<<^LJbh^fOL# zZ=B7K?b$Boyx9u?Fj5){9&|}g(IEB+7(yVq?nVhkgl!m?Hc|GUeM?Y$k+gCL%7mYhMu-_0MkPUJxR*&WV9k8g~YhxWqMez^IEKL_^T z0zKn`A&wuC4`4swTkqu+C*RXaALldU{bv6@H0h#&!(q>k+Q>h7@`r*A$M5ksV&6d4 zt@8ec<&XLsxo=+G;U6Q-$Nmk-zHs|f-%VOS!q1RzL0NIoe9Eo|RPmzWJ_Cawj$LlD%MQ}Zcad{CUt*og$0-rLiW&)%?c+s) z8*AwE1oYg%`%ytTQiGK#&$vWu%{!)2`9Q53eO}HaGu0bwW0kw_M@OoU)E-8Z~z+ zO(BmuSGF8UHI?FxQK?!_@GSMp(E0CB2IYcerHt*VGiKWN8wy4Z>BD5I(h}f9<5a2n z^XhD*#$O-d8U#{ls>=a69+uX?{na;NK_P(%?&YkF zGi$r<;j*I19`*j)qkM)0LPd<`1yx`IL*KaJ0`jAX7cGK-Nup%fED=Oij3Om!&nf5v zj56w5i2_n2bs{L01Xlr_y8$SCGK7%`6(2G95Hb<2IEwVH4hZExa@t^o#ln>~ZMFmG6nyt>oZoQcX zaIe8q1+IVK$VpcOy?((4kgKf8bf{#eGjO3ZNGg_>^LR4nI5ioo;sVRiTB%2c!YZ>; z4R2?B;ODB&hFEMFa8(qsVx?HyN$q?KX z#L7r2yAs4A%Mywd(12Rm5p6~8D&=;8=ULl#Pt%|HNh;8o#Y74*VZV>4GKj_o_>=)4 z%oqwNsOT_w@xK&=wjX`SKsZl^ov!JOh_;f%Fc_qQKH`+sZZH1WjNevjkPWC`nTP|N zmF66YOq6i5DrZV;TD>)BTVtzIn`8NfwiVMnncFYq9u?|~2ff#LGMaUUIXV|CxL z!-{-#XeaakbI^FXs6Cv5YVmU1Kn@Sgl-LLyjyQGM)*zsW z_+})kw8UWPg@6RbNufC1`yz8MJ8ylO!0|s*62#JDXC^3#-o`6EnV4fUzer4#VF{R_ zAXfAqB0my{F@zGi5Gt>{G8hyBO-CXT$|wq!ZiRx zcP;Mj?(P(dyK9QOySrQQ;_g}~6nA%*LgA;q=bm%E`)94JC)t_VGdnxUn)jXAGi|Xs z+^c=dw(u52G~4(X)2y=%>Y@@Rkr(KhZkNk$!L+A>q`J|g4FP}lGN6(Hhn&x($5~P7trs{Dwlp?<4tZnKD0~YfytGwuHvKDkC^|i$P&Q&!~ z0?6bHIv|-Nfh7!hsW&j%dua~>ql!$~SmOjMQgilr6(7zuZQab-I#LCOK3>8IVgWfj zXgzCdez&Bed@%^@-`uFcT17}Mf6s`ziJ7&Qw57ezhp%4K>Q*nC<|-Vlj^>klL(;6Y zo+gfip~PL)ZqBi5YG36fF4`;XBEl`L`PA&tW=V<$+ftvkt`6h2|92sziOD40>MC+? zK`+85-&{v`l>m$8wEd@!Gvj-OEnT~B2Q7N4I+o&rGmS`SQxiGB;WPi?Lag*R69o)N znL?7~P$dH?=dW_tW!k+8Mahu*l|s#gj%{z^3~T{%F%V3&*#_$IO}x0E?QtNo*OWCu z6r!PlG_a%}$1k1xkljtmO~EDP?U8}(JyBG`32Bngi;;1{;~P7QOm9tJTJDk zox2%rQc26mmC2%C-HuC=?ENY$q1KODb@4?4JE4Dpu!$jGN%%;wY3ZxZ1>b=!T#%|lf`e{zK4pCKjI>Qex!^*6~jr}5-raV z9SGD?h8QM>2#8iw+C(&SCf*4~N4Jo#N$p7`{qYi(bP= z>_~4p^vkoG(dGHs&p^=bjf;Eky{}Z#kF;A#Y66`3?Pp@Eg-12a_TNz>3V|VE)Qf0c zDI>s0s`Acl@dtAplmoSft-wGn=v~WD8;#?P7!cqCx)%wr(xVT-Hc0tNOCK(3(A=_1 zA9P|+LwZwdAY%vbyNrGmlmoggCReX}J&}7v)|QhK+Zh)A7OoS0Cz-uiQENs?B%ijD z6ZHhDN26$cLJZntL&T0Cr-rThNVuJCt)+>1VTwisw06zX*vXKXZI@@T9a_hd;x&$s zF2LWnfuYp!IMjHCeogQq%0J_e&Rp-eW6m^KwMMzI73!JvGPrsa*)pNVB{l5PgG4ssidx>RqV=<`pDsjyL==e?;p>N)D4I#f0 zUXuexuY->fd0tsh5_cFqk)%6ZDkN_hfW!_ni^Lh`{E#4v)ERb^L{@nciKuG$zACzw zOzRSzzz*p#=8T+JC;9HsOGA_ys|r%8jB~VnY6+_bQ-WZd>O*|mD8e#>&$z-Ied~na zjl#0h8`F!86KfO(aponYBRX%d8K~EmD2^Es%ct1semm_&$nFq{N``N*s^V%ov=F_l; z2X%kw{<*ZvAYAKY!B>}Z<>sz^De=~$X$F+bK9)bRE*+CL z)i2sdsW8kNIDa9+_+BQRel8O_B%(C*=Pz!UcC8;)yzw~v%qWX5eJO&c1kqUQHCDJ3 z-CAGkEn#>MofEmkP3M7NchF(=70_4ipy-72^Y^_=ctA-!ri#KWg0kv8Lk1 z_37;hL;BJl$;qy)hE&q3Ov^EBm|o%SF|fh2C3Lp|_C7)*A!zpQXE}Zuwjp2hc}s8* zvHRgGbc6t`K>;9Gi9+QIh&kw!mo%bI_mE)b(MA9R>I)|h>43$;MG#p?lzek$-v*YzX~LP zt{a!R0#X?QJoe3=bQJ?G_gJp7vLS)-Wd?)P2193}Q*!KYy%rkMQ?Uq<(R^Y#1UQt7=S_zk?G>qw() z#RB9uEsOiTx!2Ugzd^+w&J=!A2z4ol5E{vo0_>5&Xt9|o`Vl-enu|IF)v{sEF{nlP zLVAoPEX!zyDAXe{($#6<_$=v~_110Ce9-`vp)Gx1FaTD~-gR!|=G~YM3Bex&z*Qqs zpCW&zPrngmCGIoQprcDVbo^b)O=NO8d|b5?d_{^h6+*Vkk6;^YZ}*8s7J<4-8wr*U zxFwD-Y(-;WBe@4TS7%3(+xTR@94~+Ye}l{^CK}e^Lpi$P%DPa<8$519PM!o_Mj(ETPOxl?tMgGRD{s*3@pEunp-((TVai4F{&`(36lFh=n40ZxzUg>k_S2j zg0+E4j_aXhv=*v3<0p@;7N~L-0lwcqmSKDJd)+X7SGISJkAinW@rqy_OqWflpj1C0 zg||whQJW}HjiXU4#K=&##xNK4(unk&`NpK|nTW31jKRpG5~T)8O3yu{G^oIi(lvlY zgkl<@DQt=D8%VT!e_rG*#3MDvRgNrnT$xkVxRk()(Ds9X%omAunFm@&3J55`YT2;e zE|_rFJeu8&-oEdU|N3g!6Px=H7uL1B*0OxLGHG9!aje7$k|w5gee>!X3p6s!l&n5q zq_BmO%&mq+w+MY+dT@TbrP%YQL%4v6(w{-9*or}Q@8eEHbAzF zpVPb(e^uI3OnyXesJ$Ug25ylX`)*J<)df%12-mGc=)1m6!)bYM!Qo7A?q2S0-QHC8FIIE7c*Upc4B&B)}Byb~8fnsd{R~Qj$0D|H^<-zs?7g&}xhfK`#F)mOHWZ8F5_mD_jSrd{y1Jo_ccPk>fFe`IFQ*Y1Y*Y{2Av z8sb!Qdc8C_{mTZXy@|)N$8@%hEB4B-qX*1!f)30voZsQu>oNN^w&ZrAX39rIgDifZ zj(o#A&;>Ib+!_oQ|0r2E=d8<#*d$6k?zd!tamB31MH7u90)L8Q$@V<*Cx}Uu-e8jU zmACjbAzfLA}h4e4hjyqQS z?$@zu-M%lpmd>~5_dgaTNo9vz>`^y@pDb&(+dv#CZ^hN>f*t;m_N#J`s>AClDB#DaTIuD)H{|zNpmenHY z>g$?0c-!f`HCn(TvO?vo(@D1xRc&GpPxJi&<*{QHb1rVlJ;z*Ipv zgsMPy-ni``5U}EX)sy=Q-y|+2!z5L7%}1fer7q0%CcuTf&E%}?ksykrR>6N;Bq#s8 za5$FCstzDf!eT!Lsg|zii}+<9Hz+ggK8W$_`hq|9t72r`0YNqe>9xj*=MDDMtE@sH zcI(qE3KF@tR)H=a4d=HmEsccpD9beppAd|Y7Y)FaJkWJtO1jxSgb5-Vr z=`E4B;CX>YaD|+UieeVAO)?v#%#OuToJcViP6OW_%p-OitFdTMa_ykFM8V@6RBd|j zYF*9*L;R+o4QuErY}WI`Qlb3Vg%EzWizO_Am)hVuMlYg!n~@M^i*i{rq}SijEp0cdGY(24lhs*@C3}XZ0*Un z10Tk#8z;XeQO1rCfsMB?^HTBGZ_!_3%K_fY7vQ+_{k`ON^L=D`>%fi^yH|Bc3Pgf7 zz9mSY9#ZsZg})6_w>l|;@oM$UlO6S{0Kn%n{x*qvtMvIT<4W)ohq;IOfTCDSZmhUB z*#UU@3|3Kx8GgJAleaHe)@3x zOF>f27?ytoi%Z7A1J5+ed?+2cOtH*E6&b3 zg3A%Z`n97z=)pG;X2D?Omn&4?kM{_6Wd!0>q~2FQUn^=~x8ApqAaAh1*%vNs$hk3^ zT+kP<6=rb;CR8s(BFxOUg`joY-DHL^@Rg_D*N_2_8oGfb?ha>$)iHXwISAM8CfluI z?WQvMooYGqfVln8a=xB0UCRlps@~ruO_eiYbL?A}N_RBfpp_dGj9Wi_(SoLVXw&^n zkv39zYA4$YF*4M7VTJ6l&NPbl#s1=Zd6A3U$bM=3oiB^8$v zTG~#arLon{=jA|K$yJSEWl_SNg5tYgbW?&6W1o)RFZw>rF$!0cq=ZF2xFEhe+qf2T ziSbEos@f9o=4w*MtfO)2nC#%trF_o(uu#>NZ@Gw8l9tNwA&p+2%TT$R)IIo@R{Sz9v#Jm4$&L@T`|%l*4%(;Nhr z5P1;qdvg4!TomPH28a6sWH*!I9)?ku_P;`Hm4a1HWBj~LlX3}v&Uy1X;5XkONM<}K zC-AWQPqF{t^CvNR%es;)FT5}{rmjkBCX^f>MV3qdJXY^0HWSjn2n)#_jR%WaZ?HlH zFshH@S17aBSv31n(VME!;J~7mM9fcR6`hLHgtGeFGsH|;z=4l7<$k8Z)XS+c_%VM? zG2s>ub^Wu2aJcS}T{xn_ zR!m>$&6Ml-z%a-gmZ7}z;Q~+k1dDjc~UHyvr zRS#lI2rlzS`IaxcOu5g*=fDV7Af>eFPPp7DuCd2N>%At(MNN|2FHm3nLP`V$kx-*ihx=dw_Ci?Y`BfOlR zX9ylyO0c!F5?0spymh!%hIQ333bBF90u2Uh>hWw$zowQ6n_p4(q$Njn08t^TeeUTX zf}-3-QHgE>1?@YmC2j?)Uqk{~ztGWn`4ehe9A~~Ak=l??$gpEUxMR47 zj4a&cq*dof5AqsEr=PzV1%@4eLGcQDoP6YUvQT1NgA*Cdl)1Iu6b^pg8CvmPHBD7I zW$&{YV$_$%rT%%mOe9o->oV;sDHeUbnC>TgoW@V)tUBR#^m6m1q#ne;3cZ5nCJl?` z4^P)rh8H;zlb|`~Lz_&g;GM ztTFiMrlMg31h!GpXJhIxg1|;CZB50qM(}sXFfUy5@r7MgIEl zs||Th)Rl6l^q3AtI%exdEB(9%p|bYH*U-LY&Fsis#IKFdnC*$1?yQxLOnA?fULXIM zYoY=^uy05ZgX&ZSC;<7&nx5>mUPN7Pu#s|L-F9mSMXq2is;cN3<%RkEqj3AYna;?9 z9oiqu-AZi)?Ks4>t{uNd<{l(!{k6vqJ^bOVct?b3mhS|wym`c(_PX9*mTU2~v~EWk zO%PZuCdbX*Pfil@g%T(h$jc2?=@TOsBtQlAgq7Fm(;T@lz<_!A{LM?bhq&;dW3asK zJgMa0Ii*vFvz#Q-$dxScw=fIFxLET;y1IH{L_a^H$SLIE9V^A_W22$v{d{pkHT??P zTom-i^JG+*RED%6uz9dL=t4|DjgqLCpF$boQ8*DhB;pJwbGX12-Os#JklMa07`Y_| zeYB&RJGtk>Q3ZH9_9nn6a-$j_4FSwtRV2N(%=tH%laFna#h-iwO3c>QZf6xnxR;I& zLQ31RCg}~u-`c?MMA#S+}KZkfzb<+=-0t2*esshhLEGuJyuvS zc?w(u|5Mg>PXOyOwH6KmrC^yd(N-C)-7I~{536uN_Xyw|$dOfm>5^OzoSad$HB`$I z4fVfim`f=M;#X^yl#I##qQR>0WM4MY(NvgS$YYSZe{AK|YRjoI8?Q!X#a1gV8~;3E ziyBXRn@#25m*RmSM__rQ@l4d$Ntb7!(cIFt0d9Xx^O;HRqeqqJbR)vl@!jfXwctfORY5)X~w$yv2 z8aj9Ai4qDJ@R9Kv%Ko(4s>-OIO8GjxW8O*TmaOj5uVdlhbtc=V+9qW0Vo}k-2!DDU zJE5e8WTuhIrtDjggq+UZaSM$_Y)rr7Q-u0Z29%KHMV(SFXiIeI$Q5aGhVBQFbj0@W zX9LnP9M!6n1C?X0V5P_Q-1s>*PdudEF?Q$JOKLON-yxli>8#q&tOQ+9wCBdRuBuUU zW{}tVgIku9Va`G#{mOekjV$aFXuZfaaV0+ulv;}vvtMBPb->fJ5I0!rHx6PjA9g(X!cB+{;d*T6qPLOdJj-eFIj#emo{(=xARW+1dgK=V;!RPeLV$Oco zyTc1;85+pEWbq>S!g!-%F@=>^t8#k|8v8_l`FPKhljFy<@N8;fltCx7ynLuRAqDWg zn7Iwt&qZ&6jHytH}!Yz+PGwNMGcmB;Hr-|EaE4eKwF(;BzR?iLWX z>Uw`Bw)Ukw%DU}&L4w&uZ2@omaYh~6Xv{9vds@;S^8^hzG$4bdCvv2`5S8vMSB(fu z`95~XXyKi5_zC1g{=9Yt?&oFiJPF zPwIH*1kU5xp9cGgH!Vj@?=YGqwoLmqq7jt@U@y~&4H{Ua6T+x`1siZKb)QsfvvL_> zeLNW{6lpqSC*54-NI7Zaa}&$md6{$mPFx;OAH)rAv_c0m9{p0=D)6bDuyEmVz1JqZ zOjY1e{Su(Bp%bkfMlUnzushbC2?6#vIc#y31`WWW(4dBu*&UG|Ic#xhO!Nl8!TCHb zw@}9s*uY=$)B7+_3JX$9r5{Si9ovj*5nRNU%GEp@bsqdSJjwY_l7}wFFXuGJ-32}? zv@GmOu~l;Ire1jnaB-71j>!`*ExqHN%(VD2ivli{=Yu^Im9fkWBHPwwYe<6|HlfGz z9D00VBy*l+GRXRnC*Wh6EK1~+^BB>Alu4B|>?$wiN%QGN8oq*Z|K?=Y-Gg8 z%z>~gQu&hQ;WCMcl<2=G<;A8jQ_2UfB4;Dnnw>+Bv<7jyw?w<;1P4aLh^A}eUEbmh z!pzlV8o%THmf6OWNifTJE#~#lMb+I#Z+k_yq;HybtWW#CB$53jm)+~O1`~mvPEH$$ zW0JfNhBe>{B zjK?D1apMcIS9Ex3Mb;lzX6CyeB!Y%Sz`cKa7`BW}J%8%xk!q0ARZ?0Sq$f`u%vFSM zBEKeHr>wUo{@T{aS`wn*kdl~Z1_M7wZ`t+n9Ix20XoG)D9)6pQZk724T+o1^;lvbF z-R-=k;lX}*=dX!fc`xxlYyI^ggp*D}tv5PzvM}4lX=ow*C|lJJm&bBMzbx^Wv^xgeTv`~h$qvHtuo(@ll{6esx+KVMq##RRc0fqKWRSC zaLjof@ElcZ3HSC#Y` z)%Mnx3?Pc%p5sZ+U$?InHmYhL0EOE`nx*SrpV{2z6ZhV{zsb1?$aU|YnDMw3xOo-` zy1ZADCgF+cA>JY$og;?Re)Ni^JQecq&Lc+YCce8Bd;QkL+u13%(Xs!7)`mENd~4Dt zc%JzAS;b$TNGR1skm)oR<|^qGo%#LegiumK+1`s)5O7g8<=a5=J31~8*gt%I<$o8Y z=_U#Lh%aOIdN%iZpW8Bew!-fri!<_h<^p|V?4cvi>U`zXxy|gWdpV|i>&n~Q5(>B7 zNWKsn-&OMWk9udQX+?aC%5%Rm>Uxc>_SX{JxV?F~dCN+BXL_nZxe|=eMGl@8dVMVz zJ;=A4tRbNhx6sO1Etsia?CnJ#4Smd7iEqylWI1g*L-SWxucdAq-@VP);k8G0tU5+6~ zV-w99Nh@?wyf8tXBD=bJu||RI@asnkMgAW+_NLCwJHGPh-ir3otxbcUQ{-4O4WTs? z?YJ#jDdC|lzNr$+lz!r`m-@wU%7+)pp~a*`Nml>G=29m?n}P%SR*n@b+tbwGd@?jw zoH`Ez%VtM``-LQ%5$OD0W3IqmPu4^gncM%{^D~XNDh+CaL&toIE_PqQunx5K0*QJk zS&D#T29%_F@dyt)viv~fvAwmzyx_@KghT!Y0x$~!6fxGAB#yykBkc9JFvae>>FRY zcz&YQ>VF-X9P6rQ9xu+RZh|Sy6O)I&FNxSv2#13aa5o+YC&!5k>{Pzo_{N(6W7ptO zGr6!Cw}bzRYl<^p4Ng>Hbc&mdHJ7NlS{n911;Z}jBrt6@IFF7PMK*YXt^=!h#7Ovb z0d*)2x3)L>(BiGRhq7Lm`jNPUR60&H2 z74Eoq2?fQSN&}_XG@S}4+U_kp3R(dX-;)VJn=-L1p)XDOHJ=^c+8l|Nz4k&f8iVkA zaEm$J{+$jDAE(2}ATdZ>O^@u*wd$e&T{pGO4BN1Sa}9u5jyZ1|#go>Yo_B!dtl1Wq zqY2GFm|SGwUQdymXH-#Ktwj=JGwqP%PT(M=xlJapZ#07M$UT02hyK=$fg)i=oD?g@ zacu_Yn4EG~0nfu9FNC$Bo%6s=(AUFj##!HzdV*LW{WH>f1+_*OBeG9}>%MSr&k zx?r50nibIae(W|I-FD0~wqZ+3eABWtkjPGu9{wQb?f#r*5;wMP340z7>NM{9DtvGs z$cQ}xw!Qy;*iW#v*d}ftnweRtmPkw@D2BYq2H9W#Mcy_5l9ICLWKppgWovU2!w^4~ zBLv;;Q{k(!w^J9=*mKQw%=TcXrFWZ!0tJ?=Z6fgcy$m^X6)S@C*w)znfhgmmk|`BV z4lSpT&v}-Ebj*Iggwk8v9{yyWIh^HEOeA<5Eeo0b=&{}l1T7msW)`NS7tM z^wj|FcB$YW)u7_)g5ZaT|{n>j;m$Sqd4_Mi2&VgGDylBBGj zwvJv|&^3%8@V0*^nB+B%AWhvfs!hlyPPkJ0=`#MYq^elTt4F4zVt$Y5cSeP@;AI)K zym#<}u{z6OGWknd$ZY~eR&}!IpU;*2`>ZKhHp*Y_?&M2vjFDmlK<4vhgrrghuXa{} zV(4R1b$qI>>Q1V2wC;Ct2iQ$Pv1bKLWh%I-wUaO9zG|4|BEpTxT5y}jhkT6|S=Qh1 z$l^rR5H$u6G|Vcut%EC&R7J#M*cbY&lPe^vSW5A#B1vC&c1-0|EXWx-7PvVk)pr*l zk~YeEGOP=E2aACpJqo|GKk>>0dz8}wEI-ZEQYu-K5Faut^+z?zX=xzkHE3DynuAq8 zzPAb*L#3IO@u8RxoUm#NYDFkMUox%Rc?l%!oH^BPOH+hSg9t!f(yH-@*?uOZN5YEP zj#Fx)aA=fmP#wt;1S(A zD^3>3lKiC~MLgXfphu(V=_0i-XP7vDnyN9X6d^SKRHrUCFV&sCCC#xf;b%(Lhipi4gCEu(IaHOA@xn&n9vMf}bu&d?N24q-QvZ;@%+o%^+WU6yB zc65tIRxDPsga#7UsG+LWU~BNI{ba1vMe$O=RC6k=SPs*{cZlM^9MIdvj4X+)87$Q9 zM^uHWGG-b#G*zfz)u3lr&M7el*+nvLL`P=RP%S}N_)-~jVk>6Hy1;V+=&R+Fab}(P z_KqjDVc4_yP!syrtJJiAwNfYUQy%eCGbm>QLk+2JZ+J(yF3f;t|B3aZG79y*L928w zp?ays;ah`-A7fNX@o1r{(ftyVnCm&3m>t_fNg;Mx#e{-eh~?$41ug`)l8V~Ixbq#b zkvn2g1-E9J{w8oo4Fu^-Ak(bLiI4y-+bCu1V})G*C`Z?9RDkm}ME0I;0pX;`bc3yv z&eum?x2}S2*vnkRhFmg+2I_O`MOIoyP86@Dkc8?ljY^ z^z_(7KX)4_rhMF`C8o1e{Et6v?h2|LVlJ|d(L+%V&<>`llM%(}0s^}}`=10> zMHy1XsM}Bf10OY~Dxk^&Z+~qDX{wJ@agEOChc@zdDNiyOA?XBM>{#?3BfYh(2`{@8 z*Or{*G^`DS$^v%2gFi(=)0ocp`}Wlb6PlXXum{Z^L1!uODlD6IwWd?@BGj6K{2OhYA&D-N!%k%awV!rtL#h-BIpTXKBPun+fwNforL&rm<--&shkp{zfz#)0IM88`C5x#GhdxoN%I! zuuSX{Q*wJGAEZznOF^aWaJIG&DrwV%O2KITDR;4~lN#9ZUi2`-G7!Yy{QdnMieP9_&WRm|78E;_245*ky$l8;Zt+s z*9?)0e2Sp>vt1X#dpn&hdAuJZ$l2`}M)QknQswa-@Lhn`VCqxi;-cqdJ0V`0*v>lP zgj;iV-hxR*2l--jRaM|c4R(mQ*sbm^exII<-T9vGa{_C2CGtq7xtVkwJW^YK_{@Tq zhE<$l@&wKxT@fdy5=ANkb?=Yl#CB$E3;vi>(TJ1e5bKzIzZwkIqN{1A<-qwRE_m|a z>0lwYa9n_-7_1bl{Jalr+b@q=8-(+nLOW$M=D8rZ#k!hdsAJs*&BO?X>tg0e@iVln zxbXtGKhRnuc@gY$T9!mz#CXu=ZNH)?Mf(l(mDAVgy+(Cs=kOZl2>&$NJO(8A2xH#2 z9m=>A`j6LjY*7>m6uTQL_}w>nHJ8oQ7^%9vcA5hd8B`0%!ARN!%a8nWbMB25X2uxE z5J!9dqv657B+-u7M;=;Buol0`2c32wS6?t*zU7$5J{{R146zRpr4_cN9=89+^ZAP3 z6P?%k(uUPUGMj>4sFM0;Swh2x8*gEk?d4AirPQKegM;pk7M9(Z+YLFUx)*q)x(vCG zh2n1@wfiG0FfBcau1vZeF3%iWMD>94JvqHhaI=^q)jl)l&CqibrP_7siZY$qSm9#3 zZVlnqlqFZI8xKA9`GzY3>U2#aW76%JX>Ham(Vv#0CT69sW4!qj#gW1r`H`Y`dFaSr zk9h|eX4J6ku~0v{#PKihkr8%yj@Th`*y$*4QmK7$!Vbs`O zdRM(5kdulO?mC5fkC#cfqA-?{Tf#2PvK|shDSyo^u&6iX-+LnvsB5cpo7R-;5so^B zY>JY0GttczVLo~95^qY2WC@qu6dZL0P!b1zKg{MYlyq2r3)$GkQ^4hxxwMrTw7BfQ zqxT-_4`+r31^3J0enlbZzB0knU6dJcyqW6^t0-^k3<{0XcRVWSupHcpTz5rTk>FCz z2P?eH-;%{W$xqOz&7Z*1RM*wjh1O~#&R6lVWVei?C0G?167hhJInBQ&WG6iWE{Y=% zx_I|AGgYXJl5o7;$_wd~W^XZKX0&z5tj_h3Zg6p?8?}Vy(2}(J}aL$Hhqf?5^k9n2f4O^ zsRw=kgZKw4e^FHxoGNnu7-UffsGGYanG>}x`!%b&bZPCKkbotwkqI3>J}!aFS1x~t zank<1UvjG+4jM%3aV{TzDfLh#r2}IJsl9p#^LPd+Q*|E;hc09g1JtP!0C7&|FJ)Pm zeJ&ySAu_*OA)=f{8CGXoCeZ-13UA8^t})lZ^T}C_l|lA7GqHfyO<;M$ZSs!*iCqw- z?bjU#2w#hVTu#s>7m%$skUjnt$t=$h!vOwwK;-%54m-O2NZAt`cM83N@6-EwXd8^nTO_7z5Fdd<)G%MZ zNlaHzH+ECA&*P5*s4n=gk1B)tkF%VNy*>HIPaAUGN;2mQhBtm!);fDGOUulHm21O& z2L47vYG#_Qz>0t6xOsrRNok3HY?Ez;&p1RNx%dv7v5I5}$1?sMu#$u=J8@&B(Vfq1 z={lESY9Mu9e1kB-r^_&Nh+|LzZ%=xJwvr0%o8M&<1%hy4PoXsHX5^)m)k#=;$oFmH zvY&DTmdguUA-@B(U!WTe@d2bU^dZO%W=)HF|pjf+j1K|TJ! zGbRLluxh{oKx*kvD~mgSFwx{oE!cbs6#2cI2cIj;?1I?lRclB7I=8bFg9Wg)=A_ln}0GT14eg9er>%BQ=LYHT6g6$`t z_qFPj+bAm{Z~9PX1;zL0aLS5&r}_ZtD!k@L?E!dE%=s^YsdiMBU3M9;x~AG*?f2oF zNn*XnLQR{l2$D0vNG>x}QZ8k#3c>;Z4Ky4p;+KlgpA1kw2PitdB3D#QYnILqyG^84g({yfI;IC$4?^lv81{ z8?H*tAWL^h>NO!V+lfaaGW^QeVSnRk3fZF~@0d*J30oqm!WgUeFFW-LfhNrziJgL= zVKvup$_A5W`{Q!%iAJf+=GK?vuGR1fjwtbWfXE5x;77GDqQW09t`s}cjNc4Fny}}> z9OH>a90W_}3-B%G02DqU3Ex+QAI{8c*MjZv%4LLS3HjgR9>lnYRZ42`)8;Hs`U$|R zs?wW-LIw$1z2kN@FJ(^QbyK?$N(c+Dw>-If^H?Z^09+P`<54qeFmNAC@uLHR?enlQ(h62rV~s~~1hl%_5b z*z!e2vXG6LfD%soBOUF18%|J+NrgCF1gdy>5N1_uO>fh_R19Df3w5)G&PjD&Dr-$D z>pC^L%iV7O^@H-XNz4)fTNF2pOa>n+guXE8iNty<-(`gbhCImg+q5(`U&R&eG+?E) zO`6}^&Vj+6OqAkcv1rb!X?7?LnVdHL6`NNR4tb29%%Gqg>nzYW+~TYNWxDxGLe4ZN zUAjWjQY@B~XZ=rSn=1W*avd`Wfu)u#GOcOH)tmAgj5Y%WwrH|lD(^lzClo}1PYw4X zN(uE@)4`pZPzlIV=l8AiB+=L{u7EOv)pUm!o3DhRg(WW*DQzUO;29?#bzdE3z=%e$ zvUloFqXsrIPItUYm!uxqmOD7?~LVhh5LdR)cq43if`W~FVCIEcj|{%mB)wMlS` zAkXAjHmM)}L@~|w#U8}BIDq2?Xj)Lh<|SxX6LY;KMp22@4fkrAJhc&a%i{`Z;0QiH z=r!mxI1!GDF}t@E8O{}|kIL(1iHzqmohOXCW1<>G+(#0dwph3?psW_`ktTd59W#pz zT5XoHSZlTR-?g9&kY_^*M{XRr41UV!VWjjkF}GN=JT=tl^t$hI!vb@ZwZj#Mb1=09 zu>5)Bo}dfYPOf;&5dI@-@XXHDShjpv-uAjD%8GI)3XxDRV* zGlvmH^$3Xxed!Afs2>=`MC_XWO)Evq8if{AKcNUm*I->USY4wOP#p^ zMz*0Y6LFfl*Ug}R6rkTaj}@kzV4}8!jD2O1jq#XIKH@s$^eNuRo$T>^-uY9{-EzX`A(4YJ9BU}_rGeCOH&F2!7m*^F5#f<%O_IMYU*?i zNV(4o&k0@KLV)sdj&Fp~h7-YuZhR~#LNiTEVS z^p}~~4G@p@6`_}Y%r!J}IMBjDIwU|xZ!T@ze~}!`E~5Y5Z05+Odh3R<2Xj;_b>T@R zYJpME7_#U{k8sVf(hIvXDbt>z2GSLiyWL2bUlJYfx&}m<*%l&IKsA$y6AjOkbR#Nf z9)DGhe&T_CJ$!N$6b*XM&QZsq;i*oxK|#B0&5_jvt6jK_O)_kI_<={Su^~l{_;kg* zm$*}+q_WYzcbRH?_h32?g5^t!hL<{BV5>gfp%P%S@@@2~nYH^f2f>o1&A5U_E&_x- z6j;YGmNd|Fwdl%7Wqca^q=!o~=^>nMrE_g(8n0tc@0M0$l3W9`x{36AUJK2k$;0jI z#kuGsAFeAkuj^&}(x%8J=8gxPlg)OOIkJk+Z|fpH;_Lvps3-oVhc9>&heg_5UrTR7 z!gH`y!dqvtx^dK7$Q12^2#sWkZ}#taj0#LPBAWpZRYBsIrGv8b8+3h>jN?~RR zs|3V9HtM5nURb~V;Q-tFh>DVecTsw%Q$bMu zX|yq~kQZZmHtpkQzRT=WG?K{8eaKH$=JSwsHsXPimE(JaPIK%O4`%aqhFf<(UivgG zq%dIoMn0%YWm$8To$eYdcfEwrRci+Rq==2Fd>sq7%kx4@NB>p>>(^Ua6l%gDDVAPT znROcqBED>p`}{g`B_u@Rjo=+5`fQ|0{$2RN@L9W}Cz zf`f9M5vXS!e?vQN&ZnOLlXp#9_ZR*#1@S5wPU#S|X z0(%?;rqvx{8Irw*o`(~dVwDvrO^rBR5q0O=wQOt%%0P4Kk(g51ikEQLEx`>{c?50J z22XSN!DWz)bZ_2?sy-KGNvJ6E^&u~X&VMZb9qEe>0>b>?41ZPP4o&I<#Yh?tBt-hpaU=y? z5P&_!|GO$4gTe5hSN{mtuQR=|gMolNe#9LA=P376{xLyc68)2HqhU{X`9W9(2?E0N zAF}n*KL{z3tS-s_svLVs09KIouVwa<V&?rLWWOT&%c^}v z0CrjU(L$UgnTMYA^%CJ9JNf||xX*`Vj1S3_|G^GY{Ld?|oR6IJa)t0eAtT7wSYX|y z|K+hK{MX5UI`jXhm*RksivR7}Pm;O$H>>s61Yi)uA6M{`9D3pZf4A+Zb;Qx|L#LRJ z38ea;-acl+cH)DH{hv&n^nG-{4CoiH_ zj_Pk`UUvjwKTeZK515jM?r6Yp&pr+rlJM`*|Ecr$vtsqZY5%eR=gezf{3Gn2;)J2o=0Wbp8MYAIU<^lrLMY9V9m;w&eMg2f( zA1Z+-0{{Tl1(UG{EPsuZ-EY%Y7{;HIrg0LS5=sZ9e5{OYZMQ+7KsUx$UB~URCQcN) zaM6p-b*$Fl+L7b%aW`rG1CZbkm^7r_Zh#P)CNv4IxSBNhchKH9>+FJBG|7IR=XZ3@ z@j36Y{p#)S&jC!Mna2r~au~*^IZB@~PDq$!m}2>yXw@8R@X5irz4PBt_ox?*`DjW(G`J# z$*F4sX*Fm&0()z&@94daRVOs9RgYSRYk_Tf*R0TG-fB!acLa{qZdkXhvS;~gWj!!@ z_WHc*cx^2VgMaX%K*5MC`zEcWKZdp_kT-%}Xgl*R&oQC~8=YR{giX)7>x46>cs5#r z=G$J-b^W!v6Rihr2^S<>lyMnXWQ^b=8CNkYL&2QD*zOCEp>nqhi^ej~vcU2!OO@q2 zmPM8tOPxi>tiU*zuiWV`tZcdE_m*0k7Jz_U^?fH)J%6j)b-Dt@WHpV|8;%_b9Q*J* z5*h-d{XRP$Rc>3(+_JnLKj!G<)N*aNF;w@=Qgcz$npB++^^$_H?fRD2KYw~5(v_BS zU0|r$($q$MPBB;NN>!)hXf_P50N?lpd=|65}wAkWR#DCQe$M%s92<6vb&XP7mVrFiub6^fFGb z<3)6oZWUwKB^*P22hsnh&;~!IsZtonaq=`iA^nQ(VQL#@DrTv~-{8{hp??5SO9KQ7 z000080MteOKr|da5>ZJ20OFjJfetNyKvc)}IDDquy~}bzimR@QqM{;2)EJ_mMr;v# zH=0CUVU>-*5*94!#q?@ACNYUAq?n>nl$c_g>Am;f%X{gGC4A@1ExQYgn&1C@d2;Xc zIdkUpnY-_~e;#}U0ETG)@vx@_=z@8G3!VU7gwTcbfM#YidbsGJ)5A@VgaqM#5s8#a z^x(tLMUn?PnC+8kxDJ#`p+~BRHHb7CIz5ps5b3(;NL{@2=#(fri!Rj4=Mh~+H_CQT zV9$sQO7-xFo+8sDdWqiDxDSYqVnCwE5xKg^qe=3qZXi7h=rM>| z4Nee4#9_J^>Vd(6yT#%3E~J`&BPcbD9>YDNNEExph(!2XjC6}pH1CmaF`DuvZZU@5 zV-v+VG2WSTf-a6qgmKh-qFa=@#UvVYvPVo2QxnBBF+dm76Jd&&L49XZY9u{oxy5XH z&vA>nZZVIbo==aXb+N!L7J9@nVt69V7sqa}ihHuX7& zKs(nX&J*WT_5uYnr7om@rWesv7gP2UvB%RB+~QIK<1(TB{wZeGQR~a;afJsqh$}tf zDnjeky10ghz1AZd#Cly^r;F=ppc@k52C=~d>&1k;>f`w8yNy4a$N2R!fqk?j_Lv6T?EEm1Uy?FnLs zXr{6Ub+JLtlWy^pTkQ6Tr^Pe$ zc$OZ|xyAD|@e6M8qFcP=7BAD1UU7?8-QqR3c-<}DaEmty*tgu`ZMS%bs^6uRlu_zE zdc5xzAJF?lxA@3^Ek35kpXlOK4}2y*qw>$);tRLlWX+#rFiy4{q@z75(HE|8a}|(&B&C#V?8QhxnXu^s6p@qt3t6;}3fLNh08{MDe%S zLyx_b-A8!8nNs^H^-rQ`!JU+#OP0tq$vsj?>6RM3G2@bdIzctkE!}RJK!qNJMJ7_p zpj47aCd&>UnIco^k*3RZ59=g26?fF7*TZ~*>#~!Fb;Cl@Q+C#67Z2+}g+33j z>rL-&9+pM#?jF{U-WeX2P46BamP7BJ9+pS%Ob;7K?_M4@h~B+DYzV#kc-T;SXL(p5 zL69Q*B0I=`e)QW|~5esWkq7G-^DY+D)g_3`)(^9$6;K z3HShYTjrL_X_ATr8I;F+vFCBsx#=aKbtrAMxk ztKD*cja#1RmM6L8$!>WHbw8DwoJJ3nQ}yx;*Jv>RbB%UeiAVoyCXhAcnYuiSFtS#c zXM5OnauVU=9OMCcu3Mhx<{uJV=ezkwRC$40Ug(x2$K+8Y1W9hli)kU3xaFlZ+-3Aw zN5z-Z7+28aN?l&%mREb&{qh=mT&v3l58En#*VE%VdR*_8HxRZqxaE!XzKI?;yX8i= zyu~eVrTK27#oX?Zjq(m%-sxda5S88KVNcQfZe4C-01S-M>gqu4*h+sm90)UTRfd)? z57aX7O$pU5FYwp+%PIl|SUB|ff+?!1n1QSbg(?~Jn{vE=rN5xQE?8Mm7OF0*udNM# zRM!=ZUmYl`uM5@A4%Ds;mIbiAyUM?MT%e||f&nWvv(rN5G#w@9R0OM6Fwp&Fb-_?I z7IumncM8@8%BKXwbvRDK?BMche_efTfWe@+jYdqV@-Gh*_?HGNgLT0`xS&L())bGz z?s}cSc6p!v$u}^GCJFE4CYU+Yj!4m_uh@nw!Fw|;2RsMoV z`+_;OfxvV-YvOK1usT>bN|*QIhRwpM0@Ih3Rxd-?tIH6`BeL59VNPMMGo01BS8?fp zd5GY#h(B6ousSfUzG`Wpc8-64X=Q-W7Ao^s&hys>DQ^|Zx{6>p&UWDT)zsGoYGpGknyH?jtudhRY2-+bZJiv;hO4y!+~^tgb7upq6#m0*!raTZO!avbbaniuE?M*jn2P03AzxQL|zLgmQMk zUt3l&e%Z1BA%A={^23C?0);^vs{>l2JD@s-3!;Z1i4w2|?Acxir)iG^&xnh!4TM9L zD{-Ae500;RwBxA`tSYeyCIK_{YWp7IYIN)~O<~$?DmKEU%S;kWsZq>q!5sC%P8spn zHGS#vG^p~GuF>UxX50mTdAUVObAnZ*BfKbDBIH+ET^BH|0frFtk8cW4&rp5c_|;`d z3OE$D9&jL|0h>g(&1^MaZEbxGs;lTG-l!(g<+9EnUO_TA?ran4$%vSPO|WUq)(u6j44ae?nBfTA!h=$OOKW1Wxs8~09`RXH37@gf(O+8cKUvIiBQb1Y7-Iv9kGIt>@cVS1%!+rv`4Jqt4 zmt)aNSr)8By^iu>TBuqR~mMMW{NLRNVqEVDkjVh)s90KrE6WN&R;npSc?u0 zxdpXe} za#$^|j^W06TjSRPzH^&$8^i=u(>8Q&Ok0Ctah(|rp|FHm<}MG}Xf$j;c}j2@)}&X5 z>P#V39<|wtCI+n?O|6gYr#*Rh61lj4(MVO}aBUT1*2Iu@dU+@+Z_l0VU%njOtuTu9 zSt{y~yewGluXHBXM?;?0kkXEOeXRmJrPvGxs4fa zM$77JSE5$2q;qO3VpPEjHKaM%m^IU@$wbE@Dk!1YPy?;>8c3@!=Y+jHZfTH|1%yBE=Lri z(}Q8t(?#S(M8}-}HE^Zou95_8MPrHC-5G6LeoUO4i<*RSvtqIiHb>fjES^Zu^9&4;&&*m zs;MNsFrutd1q8(2zUjL&&uUUNH7#e;V>(?$zaehI~XmYVZW^(d8~f zJ|-VGU<&*lhfqxPSC z?=j>)LTIP>QUfXVxJ;8ri!yb&-;n>v7F`2FWAat3v4J=-GM*QaMVNnPV9m z*My--`CmiR2((^pTw7(aQJBf;;=+Y#y5>gww%$PJq;n)wRE1Us z$}^YMhN?21)47p`=0O7Ez1cqo|D1neXo;(pCRxA=h z$n-m5N`pUtqb2EDvY~a*QVc$pk2ADX@-`8(N0eL)UsDY`Fhgrq;{QdLxT#eMmBY%;NnFElcZ*lU9bpfz15OrKtH< z7+OCq3CU?yusTxIAJM60Bdclyv>aW_wW+ne^8f~Y4k09OXn9(`t_?J_0wT?B2MDyI z9ekkU1%nUfLkw*Y5z%06h%Pr9+F?Y0L$$+EtRX7!QK)N27}_vxxSjw3Q#M32Sz-~nEtYfB8xPbEwFp9ZhyAu2{j$=1qr4I%7(@OUkQ0qr+B zDuAYQu*`02XaQ}Rt}QpT3N48Etq;@Ek4DVs+VO_Ag5;2%S%ct~BlCup_07B;jxw2riT`8+zmtwOkSYgPmTHM5aK4Q-{i3RP*V2IFe| ztEk%6-cixt+JNaZO+`JULcxZ%T3cgFwssntV|8uS#H_dC%spCFjtMLeR+}x%-hEob z*eZ5rw(1?fmF+#6jj~!bQjsx#b1pORVm9j;7vAU=t$`k2T|RwTG|;WVnGv!la_|=i z$1#n}fm-hn&SVGZ+t##$?#h6_y58FM6Nxx7w37_&WchfE`5D1Ji4$v*F0Co38tqSW zq*Jt04ed1Tbc5f_PdBtPD0L2{&Ljqp0wS=I3{vIZj;Exqon>feYv+)E%sAK3&eP5} zvOz?mPtHV1XU4uW?b}>O#Eccw!(W$)M2;qOU9BHg&Z=Nt z1*!Fb((4Q+wck^J%~fXY9ZhONXil9+1;KD;eRS+~So?#8%^)WA!WOlt^D~^|Vhw7;N(mUHkE2){*A%ud6NQ4*}g~Qu4Oo|zNv*4*En?h!;3}=#mF^X=^Uj8>~t0>nCS@~T< zdry1c&_2*UG_;SjkBRhgBqKUFgpw0Y%w@slsI~{z(3S-Tmf^k)q|1W?>sG7S2kNy? zhy+vH#GGiFPYvxe!pP_3q-)d}ZHg~6$`GMo<||^VueEQ`400eWDxwA8e<<=Sb4Kl# zRqdE3=>6}1W%~^6TkSht``*xg(0)Yo?11)0u&M@y3JST(xi!-xH#i0zywms->Vwf; zG7jh@9NdW*qH90d+N=HRlqd{iV~*(aw!K1!g>A1KAoaC#+u2q}ZSFFli5l-5xvgK` z>WH?j!P@$mK;04g_g7mf?AWOdB8eu4L}I?}h9jwew-aBCdrR3xE)JbX_@Zwnjtx~3 zKhdQtb$E}svu=jEDGqBUJ7>3!Fsq7U+kTBL#?o-0&b~1fiGHVNw}}NK(5cIUwa)b_ zrH0Y6%9@RmvaEtMCQXnPL7Unn)12VP(5)(jk^*V1fmAz66|q1%#mIwdeSsRfvWbpB z)WF?;?UCY4TWp&iaY52i6OnpT@#<2#Xzve)t>cMSmlM*m2ed{9U2r_1-d`DR6_>UG z$h1FnRBXrl!W5=%gVHuvzmsALa9@KCCv}Q}A?o6;tXB6oWLVu2OTbBOR_`BY#`v-3 z=)l<;lx0()lA>z47EC+0?demvfPKLAO)%&;?J3GH*7isDKP#{K(ys`12gTtPI? z_9G*MJJNqV1&c|Hpw@B+%uFEO(%T@EzAUoCI7sDctGuz?>>Q;jn9L2RvS0+TZQ?d32mTdkF-&Q#pbPiQ|g&FH`+Povo7v*Zl}tBq?)nL z`eXHj{Q(s`+$zWy_JRJ26 zN_+8i;3F=RK3rjG7Lzaxl(&^@oIUY4q-sg^IK)Vs+c91_B2oz$`#!dZh|UbkD+4ud zw0^9=vXb0W1z*;od~b;S7EmS1@Qh;9S@qS`&QKZco-oX9zS+}`m}Mg>06Nl zHZ3OUKj|QC;>sWw`hH~rR9F(l$wDG5(_p|&pMx$oEkqrhO%a65U~|t#VjZS7QasO=(~UP20Li_T_2a@`mDn`canS)7p=+e4cFweF=9`ZY((Jv8sb(w3>=wr-c34!*7U{lPzd zq^o7)#*dv+GHd+ek~woq#!enT3q?xT1G$GOc84)jrd#ckm3t75d_)u#?{6K1&Qedy zDUC||S`WK;_MGv5GZxR7HJ(1?K9ungwguUT*7BhGFb*>(kRxw7@I4PSk7}J}E~j+b zQBimzQnf}X{~tj*;6Q+&bgT^^>69HJ+(-@`$vax<4=SY=xdM2ApwV1RQp7J*TQ_En zb;Y@3c5B;ip+bs^YSKmNqe3B+hkmj?XZ;`U(jPd4MXV8jV_i=5*Te=2uz;+0I;>DJ zgV^S##p6OuOb)D3SEi$nv=|)r@9ilP2XyJx3`ZY=cwQLyBZC9pS!#CQLJ^Z)hk#|_8C@g+L6y6cYwP~opG zuMCV|?XOgSKPu44j09LBG%6l2Jv-*gyLrwO7taT^o-JV1ClC=ou6ujt38t`hzjn@m z##vYO9lxGTp;9HJN$cmd9krdFPLwas{6wkfhxmhZEwx+Qz=8cu^FmAYnjD`JF$|Um zN=?}loo6uQ-;y)U;EfmUDsFqyZ?7}zlM4q)`R${BrET*#HjRVBP(4y}tHB2z0OxJn zTa+*-RKL8UIzXY*MBA59{Nb3b*0&pI=vj$k`%*#c8dH0^W=t=gJ$)K(Sp5E$e(V%~ zaPnXe(2pV)Nvn`;OY5v-00!&+=eO_=LJWuS@j|j4bPLpu3#tzvW(=M&7-`cE(?mYn zi6O>+gMi~iZ<2yxO9z<4XSK8Oq~M~MG`oEgiD_Bf{)o6hx}$#xBgV9}f;Z8JJGKAo zeLIwmAtE2=e8!X*3`e;_8v1w?t5-MFBASANA4gfA8d$c}_;JxH#;wLwKj1*aM@*G| z2MI4a{%uwpUAQpb*WvU-3U$g=>yjN`_spYz7!F1LhsBxt5P?x=5Pmz>&<3e(e_O{D zSRGXUS!#CdX8;6Fq7_V^qCO{ZS35}$>WbRBFwtE*9|zFq3zdQD<Z~t0n|j2g=Q;zzp@XP6HgBaPVJtN{)4Z zWS|#xVNU~tzo7%Hr+dc$(3LKK;#<;ve)WFUdcS79UuSOsV{c-bv$rt+Hhag(zl-_z zqVn%!{sZ=*>i3b=|6}%vn&(sY8MgaewcCt;U$pA?CHu09v$>_Jpa!laZ&+HfV!(DwS3UmbVjis;=0-fhq^XDdj|$tLJDAJaOf^=9bIfpTulxvd-~Q!NY# zg@GbS#%BmL#6SvSpc`VKA7WrI)F1{+#Pz5XDBv=J!!D@w#PUe~% zY^-H}VT!T8G2H=J3wGo>+k^jqfN-#v?X!0IFhUQ$6LvzE1v%TncfYeME>&@|8s9J* zS>rRdpZ#Ou^Ap?$oSSvc$!&tJxy{fG4VD>%HIBbEQSd+=133@d_?}2xj zKPLABjip8h7;XJcu>P)T^>+jQJ&1oq=wBfv^%0wJ$SixZz6~%cC)Z4W_shw(rtZ(7 z8L}BZ1~AwKIaH_iCwDz=EdrcJk9@hw95C*%9x81_qG(&W9@5P@x5L1gR?$zf$=T&o zp(j4iz+FBQ(s1v(!&<0>b8(N)!~MMwOE1Fb#n1?sz-G7AM|14-ZWn7b{y;cmN;KoWBEnxTNhv@I}b zCk#do8IpEb6AVT498SAj*aSy3!LX>>;Z$pOYK9_eGc>K(>|xV?#Rw`JiI4nd7!@^2 zF7<1@m1?9S88yR^*wZItyQU2<(r~oV3~-(j8e$BCBA3tA3}YEIzz|BQ0ml{T)<8au z213RiZ$dc%A2?c(*4Xk~bd$8B?20HLCQ@I`tgzi!W+2GKjCqf1W&O3@FdHHr`Sx`&C20vb{agx&WC5& zjqp6X6JB7C!b_-`UPY37jl1D>MYzkrgJWcJ!6oQ8=5VfmaTmC7jI~_HRyr$&8_Y5y zP@BLpr3jo-^i3O*zne4m7f(dVcOE-~8<>)CH(SJ$P=RQQ5r%@^f>Y=uGI_GjJLo(` z{Y%w(8o(YHwhzW)avzlGJiX^0@b1BJC4IwYG71j@K?!Uj$(!A%`)sjeiW4?Yj5Lep z?q-9`)Vy7PFn?NWjxps}G}9bS4AKM(oGn0-Sx8mKY=FaaF>@?2iDC{P&fGg{#N#Xu zDY6L(d*|fuf<-6<7thD8ONeANNuVV(gP*~AxGeuMSh^n0H;c-c8rCALSo9EZPa0Q~O*#&Em4-8z3uxs>=$yi`5VZM!T%B<-Ep!Ug+Ln zO4-fI@*&ErMs*4B7Mc!kLl+c`UEw{*g7={SK7gh0A=ZBcC&R}mct1g*`8nK$Lh}Lm z61Jh>dC~BOA zbbc~_s)D~1^?VOY6kTfAe-7`2bmYQOPvV`C8YL94p1ce9A-#2FNAj+`n-akb9TB|H zq)^`7QnY5z3|t-2Vo&g-x=3B`gR^zsqvJlvK+4+-tNsSg_aKo;`hL>V#uF)zowk!+ zt6C46>0Lc_2ZYd&sae4Ca2q|Q#yVje)NX-)a9Ujx)aOu9?haUqW)0$Y71=AbTVZuG zpfk7uj?A(0q8U!)xWP5pmx`L;q*2O*GV4#?4yTYMW#&#ri>MI_4o=ah#gQhX&};#; zqTR@B$*>pqb{|TW{b(w-P&YUd4Y_HI!%`;UcvN~PGab%liEsfbz9!beF%gf444$cf zjKE~LgZDx_lcBWTF_gAPslPym zX*bBsp6(bAJ=^Wr*zz=Pjg7W5Of`vy6-tRS31esBBX29Lwe?(m6vJw0c*IQ9028h4 z*$tzj$2psZxCwHI3eKTH4z!bUQ;aEpGX~96K;xnlOUD5_B8_`dKXrmRtTU`&K4@TF z;Wp%?MwS6@v3&T54Ma{VfW2%G>}Q8T3oBH6l!=J#24C<#Xh^D!aJYg+?Mw=2`=CJQ zS;fVBVeTH}5lNqLS+aH<@?9b^5Yqa&%_!87s?J9fp-5vzE-bsC87@S*rBtkcl3SZ8 zr6g5Nk=y5Pf{Th0GQ9F;a5chJTi{|`b<(YrIWNcO?k>x*t_dzF^!PMq?}m9jUbzu^ zdOd~G=T_5P^faX8`VyMpQWR|T@_N!Py9r7Nz3ZCb@-%J-nV#2k3IeO^{4o zu2fxIjV+UN6%Ad*z~|Zx9VkbChQrn9NJIhT^2$vak^Q*@`XEM%AQiP@M>YbjvXL-? zjY9KhG)mktxL4!QK$w6M|0oo#=vuH+Sj8s6NhtBoWK$4{Q{hsSdRMbquz}5no7sHa z%cIe_T!4nUenKfhSXly z;4Y1TYk7b4UK3ym)bVWOOb;9mH}V0v|8A6ZJCp_|&B+}~;5-LwnM&ni4<#&lp5kgs z}(5A;+zJPQTqe(0+bgN%KMkkrh-AQg4DFBvIn zFdt%hMVAwW;X4oa=$a;fxOQruMLFH`EW&A+hI(;*1GrIruD`#rY+DV2{~+yBaga)!4Km@5pp;5R%<1Bl;_B!Jk%72TU2j=*avQexrb?86!If1iYHe& z3Fjz5{d*me`}Mov22#wA!G;E=<@n?-*w6$wqE6O!!|$X&Z;En%X}%yOe6wkZZX}uU zI+7o@xdlngY>MOFDlKa{!Z&w2e3Mh;#wNF6Z36YUoys;8d2)Onnl;gvh~xX*J`WLf zqc1^0Np*LS7D9^eZq0*gsK`(hZCDg-G{K!dx0#8Ofp?+A+W~i@z)Rai#zBHLK#V3) zvhec8mYJJ<62ZHF2ZzAdy=po4QH%TYm3YWkPFxdgo*z*-i=ZD z6Ka+197wf)C!W0pb~HirE_m?%sU*f8LdBAc;`8D8jgT`nuL&NtbKNQTn4L?e+!JO_ z?0_flM`rOsHVi;Fg5JewkJGypDUIIq;c?6Sn+E9!-g-!3H-nGef&_XivfOPjgxwCq zkS&W@BXas3=mg#g6EI)O?t)3|ZZsb@p}M*s=CgZ$;AnO)+RgW&Ik83U6yZ1rlKFT( z0kJp&JeWEPQlxg7Js>)O_qk&TgzT&m$SFo_3RyX7kigAvG+0e0sESL%zk5^^Ah%j zBLYj&CMV7BLY5XvXX|hebhOI$Vwp-I+uErw>=f~XTfP7rS$iI{34G6 zuVV~&mp8Ic^GvmlDx4hfuN5RdPcwW&-4^*0o8eo5)_oJDP_yRv5_3__Q`7D6T?5&x zS5VapWL6BIjw+_mGkUmY^s#{&srCLa-?Rx5eVz`=yl*>WAWnhYMao1v#?_=%!8gE zuy2uvzC*(Q9({`+AOq=sAl8m&KclJi3(R1@qEh`0PG`TvjqDGkr$6Ct_7^;WeAmSG zqD?<4vYNZuN}j;Z<{owKSJHSffJ;+@$aybJrAcjv$}xa2*!oA=}$cqW$g;zM{gFX99E z7@or?^ISfk=kXrjvvXdQd2aUU9d z=kr8m(j}0baOBwwjy!uoNi43)axHoGf|6`frAV@AFrJ^wkLC+dDo*5U`9kcgql7z| zAH&`Ow_}2+5`HYWmDF1T9Wq*A1$a!6hVo2Fwc}KJk+S{vL7vWg>;tp}lMDWVhn3_@ z9hRS((1Nbj0Xm|8m(n{GW#MAJ1i12}P=b?*N+E{dl`xu?Z@Cg(^DRmA2e~aI4gVC- z*z$QKs+X)*y%=@H5*WajDr^tM(J~-``}tDDL;_?gERt24<9JXxcDxsI6ehTX2~~oa z;E`xg0s_7VdYVU|ybOUax1&CAm*oVG%eAb4zf=I<@dfjLZC~(jTGbvBc%3n^mlDaC z*k?s!8e3kG5e2NALmoiqZyAi_%V7);I?iElWF<2&-2o1BoI^+9VJZ?5QO+Uyv}pz8 z95VWi6ASL&aU@if;LlM9j(&nQF()@Ke>?2ogfRa@aE&)BFN}%j4vdQ6YI$T~;CyC} z1~iOR4-^}J5|{Ln*c7#>9HeRB)#%%XP>kw5CzpZ zyXmVWnzl2P<){-_g@O)*0-yA0+Zk-iZ(__uf^H&zA#y4+&^eVs>op$*wIp+}k$RX& z&<}`&(+~-#Ll=Gq^yFv4Xnqz<;%i|hKN}YEa}WXN<8m%^Ldc^L2_uvNlw%=*cCO4p zLYaevGG2p7EVqIO&J ztu{GL3|0Nmbe0s;G@T`z`3|O?-po?agKlD}5oL?=fE>V$(1YIs{rIggnBRt!bUXT# zcfy7IF1VE6?XXi1DCDb<#Wd_Q-C?J74${`4dOJ}eZ5=;}pRAC!&Sa-30ZDbISOPMC z*$zMLg~^0HQ%0VONIVTG+;md!Gi425EDB|AGfN|q@yhk&KsK@T+`J~%F<04%ThIig zq9*3GE&#A6z!cL-_&0~VX#BfCZ49700Pq#i0RS+%9k2`kUdQw-{0m^Z#GGs=>$G4y z>)gb;G_qQ|$cIH;RncPeaCs-|hDF_fn^=b3qzC4EswN}sCYe~&E2>Fv%=b}Ee0EV5 z7WGv{F1x577WJnh_|-1T#-ahL=o7mr2a9r5(TjFb9v0=Rq6cjV24Yb`6a<4XKUg)n z#%?kMiw=uwG8FTNt0r}JQ6Ux`p^E%wk+l!Qa+Q6&9wy~l)_I9}7T`Q7B*un+qd`s= zC0LO?XE6>qB5KZ&m>-1`VE#z#XLlUE9;Q2I`CC}Y?WSDW&c-xC|EP+wPQ|!JNVWzs z;iF^|8{Ys4jgTMKHyKm4}3TLhd+Y~?pen9^DGT*E-!zH z_2niZ%iGQ-Hly(kxm(zzyu2N3 zaxU74a3R* zBaLNHBv}p6k5bn4iX>E6Nvf;QgM_wFf-KYx!jFn@kPj2g4}=y;3$3` z?!N~fg<^g_TD6IPuo11Q3;0E71z!XwsCI7Dwx9Bgu~tAKyvZ-Yl!QvSkza}$ScBDY zg)%Q)a1vaG-c2`k&SE&>W5cF4^j#FSDaAmBshSnFw>|3>IIEfq%dELDWm4iL;8tgK zi}pb`e5SQPKAPE)ixi90zbkcg-jvtSf<{nMyY)K1$}UxZZSxK|7Ls@iB2G9>l*+mq zZ46WAPe5qV=YlHhR$mbv6U5p%vm85TN|7tC^~vF2=LBR5lBx?ylxPYm>KK8wDQGKN zCv(aMc)qdaE}y*LA*mjOaM1@6L>BZHePO)l2lGXL@QZ9XUgRkfI2HjMkGA8rNCIvs zfMHhbzdzc4l0+6RNQDKCQB>vV_bSKjsZu1sRqA|23<*%q8;BUxhGr@=sY-30)k+$b88@KQa4nd}6iG$m`*0}8#joVzGD}M(& z7VXa{thKxqjjv9$MllHSH5lAH6p)DehQOQD$-ESdh zT3&14tFPmG<)DxxV{uh>oTW4ZQ=}ZNr0G5TY+-$2s&m#y+Habs#9t)Nwv9S1~V3FV0_a581U|J+|X&*_u zX{08XnvSKV34I#UL>boUNc`woYCBlDsqxg!jlwn&Tj=dXY^M}?@_imtg^{TpkkHuj z-sT-_naytrqR=A>6Gfr1lPyOht)eK&yn5(U$2rsJ?1BZ&8Ipa;)(i_MWzEpR*P)qz z9nW9~ThYua3HQT%30P*H%wk;?(R1|%@OnLw?2#&1`8o;&IV2v%ebYwNd zlf9k|kYZluJlE?vH#9uihBZYLri#Ke8$NaY$N?_hmu>+!l~NXP9eo{J0hi}X!7>xL zj?uuSMzTu^Q`e>;K=%E6^0kV?pZP!OdeMCsl%Z(@0&w@Z4LE7uhRT zqe7nzaaU2;&D)JOlm4%)63aJ2S6^43%iB$ba7`%IcEg!Il!e`VU9CXxSzg};IMv%N zrEDXt5{2EVf|i)!%dnQ%i&EASdw9G1dPE@a-q`ZK*XQkCUg#5r8Qu)9u@SO=Xaq$q zG`%^EEN^DDG<^n6|2_iY_1yq2S=gnqWli$%?#aV@h{8;QoM!Ij>t)UCr<65wZ&}#K zXZieDzAURne@a;``uh6%ddFxxG~fC(w!G=>(*WsRx>KbI__<}n5%TN0bWgqpx8KHg zm+qnAJ+PUT#VUj_(_Ppraz8A8orNhx-)je}b8du1*Ve0Bfib6O!|d(pjlg*OShXAB zC)}AnR&aevQI;s|i%T)7XQf3w7da)XtdbMslVd+$KZjTPIr!-B>mSp-0Xlp8YE)=q zp<+p4-$vZ7{xQ=wK$^F2q!G1gxg{spy!DHEFw3WVdu?Z{3;TI{xo^aOA^SBzcdr6| zjq0%x)n#wm7DaD;aKnvg6rC6cMYuC+9esR#9I4XBSw~hr4cLZC9H?Il;w(bWxWMZT}{(1jJvzLdkF6C?(R+?xWmES z5AN>n?oM!rph1JX27dCq_x-;6-2YVVT4%bZr`Oh+T|Iksm6YDJL?rzhgd=7q*>Yq0 z9uJ42-ps^MOqI&dA(1@`4SIWH&d7~b3rF4!+KbOGfIC+=_Us?>+j4!WI2vn*u^u{C zM;;>1^};PK(2yNP`F?coDQ}6M?F9{)c0p`QMo>RfTw@rLx!tl}vk9v54c1}+X0A_% zZr=p1!L~y#H}@#tt3JPiqA=L4ja+%c-$Q(F@c{NxZ|xCBwmu77BYj7`j3nCQ|031J z3^y!Upyk6r6{R@LcAcI^FMusOoLV5^LpiXgTd(57T!SGPQN7o@XMEl0A^aA|55Odj z+@?eaj0Nl|a_hWN9)8|jr=`}`nY)D@$0L=-#}#5v{^e*5k2Tm$EL%$D;TmL1O48x9^hO=TN{J$ zilJ+Rzo};i9Llv+OzoH}O?@9$bDsn6nt(cws+ksAVuC+Er+wpap?t{$c(dup%x3~1 zF)Lb93Bv1s#+v^z$A(Yw+vE4pZJtCU9>DKHmAs&59!a?9Q+|oizbegWje8r^(M@?9 z($OUz0}|ixst5aY`6O=MRdMWxYZq=8cLfo>Y|F<(R~7s4_0dn`hKv10!ZG2+6wkn zjYnI#Jzr(QJh{f}0avw_^8MrawMABPU3L%IBpsV}cG%rSo4QD}pLn3zb=SbQ2B3C6u;Bx<9m3yn`{)4*Kv3m>3ge3tjP?Br7?yE^1b}Vaqahd4 z-cUT8%X388Js3@}db24e-Ac6N4#2HjVQH|K8$+soLb6c}swyp&OWJRn>5%d*GoE^S z(oV>?>e}JV8F7#gp_cQ+{N2=;t#wo@=n>n~H&sh1MeR|Aue0N;;1S-(MkPQiVQ}_8 zN?!2EDyC;4xD^0*%d>3w9??t2D?qf$zUaedSjn5;@$e$g%cbbg9b06N_*K<8%$LVP zIOBmwo{J&Yz2F_~GjxmwV)Wpu9?3mwhxvfgY zVI|zqqiBE-d&9`$?=#Iw9V@ilGxL3`mcg49u3?wnHV;TG(4@jOA zkV1(MP_H@(paA2$RhH)(8F?ZM>h9l>A$y>R0|HqWkoA(6v59a0OE82)H?zItDPUDNbhGn*ut*sQtZWpoEupaFdOFF>^%!JKf4M8s6?w` zq*6?CmRG)r{+kN8gZ_L=2X(af>lr@HsSp4Z2<;6ohhTY1c%zi_RAP_YVK${hoquw8 zk5o}k=SyAS9Fm6dwp1`grIti;v|_?oJ2W=pcd-wE{bJG<6nPMz$NE7&cd8L+&f~%- z#ETg-n7AUZ&0&Q+9Owf+6+f%wK4Z26RWw+sHuBJ?B`SSjeNnSkC3m5jZxu?DSuR(^2*+M9 zhDx-R98L-trywL|GG-uZ#ByEzg$rlSXuF``A9?+%HDF)y= zA^u3D?icZ7C7@SyCUYgise};^(*`X2D#86>a0*0?$}$=v%j9D*Pk=6AxanK0{Qapa zW8hpw!vtCWTmV$3mv|~f6!HE3;7H zz6cEvTNp*Y7yW?Jp`#09Iyto;^2Q0ey^RGr0h?Ylx*Q{2N2HjjDc-G~wONnuK7Nlv zCIPlsLYYdfKnC>^cNr2+Q3v28$*3(1c`qdCqf_< zHlBH|w2<1$%jG*~%eU+HmO6YZix*Y+zJuANPM=)*-Uz$+15X$HZ9>3fi#|{1T)V<= z=Y=+m^$$KU8+MvmU`#SY4|C3+(ONg?wPD;RTz3C|Ns1MQ{pMg$v5jZ@Qe3kLw5HW@L8+2^sHyPjUO z1**FhVP|RgFV+Q0UMDVMA*%NG6UU+WOXngJUd6a(#w+agx;kO6^aZuiVul%QOD|nt z)28hUYqbj{+qb&Vt+!9BW`uu7tHzm<^=@vhIvwbYwp!$5@&|R(k zVO&t&Yl5!apG#v0#qqS7k8-t}enGb9+AlJiyyhu+Vk`l`ebqm>KL*ybua~Q{I^|)% zEOp`k9Kt*2wVZBlhd;A*24Iitbz+X=yjW#z1{_SCDXas6kMmG`c}0m~c!;+yf@iR_ zva3>Ew}Co#mhP&v8D?`OT^g!8CH3C%bAz4ZKJ> zcq_Zd^U(C)b|dQF1MBaKo9XJu?R#GCUY?-FO7^_nMJsV zaOs%X^-U)`mWdT76j97`$?O&z+nR2X z6V3tn_o4XM<)-9LyRp?D-p2=*Lw^a$Awt#b!C#u0rh164 zmM{?8lea`B&yQ5bJxr~ZImQq}zbD61w$yrU_;Ibh42J9 z_UL<;Z1S6k?e;MMTL0bH>`MCc4d3B()Yd5b*_8fHT>%0;E+aQpt8!)&QMw(e#Mu?7cL%4O|OUq`Le?`EUf|M++vG=nfmIq{; zfKGnO!jN0@J8Am3vLHoaI(fx3;G@@N>-J;b^YWwqYumFxCcIJm9(hrg%W*>x{{u+y zT(jpJs8xdk6_NjTYu_dB8ajMSBlWr64BnRyj6-+Hhk$b0PC9%yx`ul;ih1$0$3g+! z$Ql{ki=-2^^P`V4cX)54v52{~ud|Sv`=QVnBz--pk9EWnuTQL=$c6&zVSdiAy|c-m z(ktXV`8?z7>Tw(%$y`-fdDjNuz1&Mo=}U49SZt;=EPD`8MysaXLAt?%fQ zk`P`}44mNy;mE|p=K?+m?%@XtxRTv%@S_l?qmYA}1BDyrJ_BLiSJJyPr4Y{xChaRx zGdqnUfI&y(XF=+enaQWXXl9wT_GR;s52>Phh|*d!a9Y(?)-Yiz(W4a z`4B}3i8$;q_mg%ayA>4LM$@$-j>XaggaBPJNm9FgN`@#z+aNCwGb#KfXX7atWZPY- z8ly9g#88gK>>r2GKa3u&dh(E4Wy)|D;m>uLnw7U1{ck)_ZLKAa@?X-};AI|Fx z0DxxGVIfksNNv_1iC4x+R??kU9YEwK zj!jZ1>$6ytEsH##d$8U$>BoU{$GFSV0E``qF-3}#Q#P=9u5WDAD;Jqicvt5XHimq2 zWXYbpttv7}Z>*yCqDr^uL|P!t@w&H-90`vY!vS7X;u;<<#b0ASD634~S&^e*v3D5+ zy4AJg-YkF12{=Pf{&tL_ohePG9(_zZ`F2`akR(!`R$qbsFnH+Pe7mC3TS#w}4j!`}i=KtQ?MM)ay{FU(-=!#24;j z6r6PgGix9St|tH;j%a`rlP~)FI9K(~2G}zak*RNDPOu6|bW$#Kmq3_prr)&NMsk*}4CYwa3On9oM?~X=2E&6Y$5s=&jQS-OZtw}y^H;-h`N3DLm)h-Xg!8Al=IE$0W+BfTXf&2?j~dbv{uaW1<#1J z`2#*jCUZSjRTv8r@>eN0ShT6p&L?j+idpk9>+sogsHS^1i&+aVn2KRp%Qud`fc`T! zjy!TxGIjI!2`F>EBSUA6Eh&i!w}{{f+g$I=Y(qf$t}CImn?RL z+vV2+#}xXlh4JsCsE$2=yEYausAYWuqG^kv<1dNcvie;25@$=2wNr;GyNq~Y3t~70 zK%O5xvcDI$T2F>_48N`t9?){m&9;SaCssa%P?7s{UUzB_P!4_5l7E|r^Fa(WnLtB| zOt8IR#5}4V+9=tvrN450yGR)VA7K}fN$VWiT)P7)LZ_O9s$l{GjwN|Di--JU!kr$& zH7C&gFx|M?h+V4n-QYN2sf`68!w}s~gpW&b)7Pf?TWczRCCKiPlR8_ll|nBs#e}?- zvz6Nm-^c4DD^%0dU+KV!h)h#o+o{9+UY6fLb8DKNdX8bueW9jFc*Ip3P)Wu zMmj{V7=>dn4o8dz6r%E54X~tSeyO(LBXzPfwiyb$7IxXG_J`FE!1>j<3&P`RL;hio zWteqjusTh`klnAdrAAS=G%<|o1Sg-$!H6GbxG!3bFzQN>FNySZ=zuSM>d{i+d8dvM zGXsHaY%%IXo@tqWjEA}CTD|IuvZ}zr$9Q}!xHEOn?zjLRz!cg(?80g9hMJ8a(|lLg zd6sVnZTfI6D9XrRhSsCL9fw!qU{@xWrb~v9mZYOlF-X%=1Xr$`Mkpv`z?39CKC#w$xEMO79$D?3Wf>-H7Mg*=;_Lx=v1w zTeN9?5sFgBpc*~-YM+BashN1|lfE8iK`wFBH<)-uyyE?ZWYPabrJR_~i= z6z7gF!Y#N#WhEX1fIm$CQ&&qbB{r9zup(tGeu>GA+)fQ+*XGATNB`M}_}MGw+1t|D zt40ae$l~LdXS`Pm@iPmzany%?>6G2m9}irwXWDl+fS__@W>frWqfWCyr16MK3eK7o z8x|w18x{+tW!VdZlv6wgst=BoYw;85o*fJ4MBL~gF^mTt`T zu0uj*Yv+MO17;@n-XcbGZTcj0RYLdYxR_*Xzys_$VB}3vUZ*l&B45N@qC#tza?BA8 zldg)nGJF_RcZmRR`zxw+h8KjU?-hl{&!`HZmb6iEpGtxGXrOz)sENZtns3FDvc@}z zjU!>{PvM8FdrXbf^ngR@%4Q-R!i>6(fr(sxEu737f}cwHL(|IZ-vpr3Bfd4Kn*wFd zKa+!0=G|21G%KBQ&lzaQ=nLjIt3NdMy{Fic4T~LbwLxQ_D~WF&HqImb!fXJvbC+rd zrRaZ{mN;{cQWXMRLq6WZE34mg!#2ZBtA#Iv9*y z^wlCIk}W42u=!~*;ueFe9-E4qCT~ToyKj36-j?wCxB~r-{BPmWOc!j3atII*LxfKW zUrgZa9d;vMLgPQv&+BBDf8>5G)5QLno>pf%{ez^rtN-9@0W#>{X(~cd7Z}XnY3gyc zHV$yMgbyIL%zzJ*5JodWFGDmI3eyv4BuAUf8mXSo<&jD8i?wa7n4>f4C9}%|g&2CW zQE;NcQr=ols<_3Xr1j{uwzISo@c!~ZCpqF~~=T8?q~`d$i);?8-Z-}gIUEK zG+foYEedUtV!GMK3|nYa)~7!?CwG+zJQB)T#C{@%wg;d<(y&yORF1wSWpcPPIQRN7 z;E4e?N@1V34%I7s-G7Jj4cp8+wGo%aPX=*;8?MuVOhmudwDNzh2Ps&xwclYMQZ3JM z?s!aI#w1n$6|qpa+2T@lG$81diN}HXZ8sJa+!6d&o9zzKg{_BCUbr11GUA!hN*{R= zjs^4+Cri}iqPQsiaQv}+vhnXOJzT8NI^|Npl||$JYuB}e$0F_IX7YAnb=ry7NX56x zQDW)Jt!V9m?c1L_!9NmDoQ-~c*p>-y+;qcCmA3#t63e)H>L5ZYvz>TRUTbkJ=9A@` zk%f!u6@Wx-a4tv`s{Ld!WeTb+P$^Pn1+!Lhvv{Kr*60*=WFo|Qmd?3-4Y{b#QUFwd z+`IrByNIe(;y0S~HYQ^zo0>8)!cfg%jjUT+OPuFOnn7&6G1qZRoIkUJ-1tsR@Aan+ zbk<0kB7(PVGAb0xWP-PZf-^AHSJ&SzpqtorEZbIP`If{9K4b|-+4Ybkerb`=2GSTO z9iXKQIz!U(6t)FqrXishLnGN;<15Kx{YUQlKgzl`;78odO)=-UsYkO2Q6l0l*d6f9wcs89$N9FZh>GA5uIOb{^rjoaKiR>0eK`{k4wReJE#Yh{=Fw*EB#qmN~G&G_5E`o`L)gRcV7fR3LX zYQ>AiJ-z?)yV^kP@c~Q&fuPf(W|fiYr2Bg!gJHz^iUdzt1cUQK34zI-Mt-&&>~@cs zu9XSXY`$f05AfVy#ps@eVVO^Q)^=zEN9|8O%!Yl~6XYcLY_gT&I)Lf{RizU92PgdR z2{X>-Bovv;V|^O=jtQxQKKWsAZJWcW`NZs8hsAX7!BM~Fa~&M#hY1J9Ik3N{)3E`h7MfXl<3=_d zT$wmJLhP9qJr(b;yaHf%`E)bgPJkqhpC;0?Ki@;!ld$I{`x7a${s{7L?!S643bm=qu?s?&Um9E$jER^dG- ztam0Z@|z#YX59EMN92$A-1y}<1iyLFm1|OLLCQ)11F>S~6RxM=>0T}jkt{^?QPB~1 z{;evqAajGKu$SLqvHqJgrw;SPi(xpIA?s6WK~EIIJ0|*U1-2hp{tk7aRH{N&H7FGba2^aCgeh*N$;QV|}%A8z6 z^|Vi>032GL!hH7%LF2b*1Vw1+-HDEwZy0z&%LMzl2hF_2c{dFPEM=;ZpY%we>*;SB zY>sFk-7mC(khrEd802936 z38AtEWF~-fUpU;S;PGLAwF}24VLiq<3tz-mx3`~a=orT zD-JS6VS(#(TD1+NZDK%5lm?_phM|W>5CAcvNz9ZN#Bn^Dbj-|S;KDXKtiZ8vnr+;o zn{k$?N-tn^0QXNl^K?;mSrbe_F1Q>uLQ%wyd^i9O#@Eeg0-PKNIjBqNaGne zz52(JVE7*X8|wh-LcuR0Yo$}%6twx@X?6?bujmjN(`7`KtOex}q2j0}u2EGG)ORUJ zzV1PW!pGpqnWDyJLasJ&3-f+_cOm7uuJ@yJb73Fq~T-f2tylzvoexm^tFwQMCaiVXjvN{BvQ@@ zFH!xqUp8+YDLB~N1bZl=R4cNb0PJ&OXqNQ!xbYzbk(Ut=t(v76*`iOXVg7h0R<&DL zFd>YV755)m>H#o(Vzz?685``(c_rvov&H~wyCu0StcN9s6fcb-EN3>YVU!w#x#1kp z{GD%wb)!k!Ca`wDMbOPxZ(+!KI zw?M}aiLWcMu;_mg8|4V^62KA~@FN9~q*CymyDD5*LfTg2_Ai6-YXbLGK*tNy-@qwk zVOS8yBq=o~z9Wt#>ef-Ao(pkgEAT+Cp(Vq6U}o0w;JMi73Mx6JZG9s-(oLOw?Wh8w zJp4L=*UCe;@;f!SE`@O}-r-xR-7+;W4F6gM(%-6_j z&t)r$)G!Jm%*Sk2)iyS3=8uu0%UO4MzaXM7&#gC}#I6~4Am<5l+ro0(^D4L*A!k$j zoX?L^Kjh!RKj!vZ+rXZ`8*ZBeZZ_VK)*Vml9BQ3-_`E)O(yV?y$P; z=)j#+nGQITM%4_=GwzUIO3UGbRr2vd?-tbt#eFUwgwWKzY?HUu$kk9~D&LolDiVA! z0<81PCCW`ObRvdlYeF;>s4bNWjZYF!7&(@3T)|3A24FIsB9d2U%5Dl3BE^93JJdX2 z#=VQ7eo3njo)dqtg7bC&g{7ok?8|D@bes#(0pO>RMie;6%|(0kC@R0|#;?ii%SS4K z2<-i8e(ZBa-Y586ZQ0A9v;gst4}uSq-h8Tb8&+cWMGRGW^#wWhY|CAI3?g6<;&&wBn5c}$w9eF=u>=o`5fUI*+F&5-K^ro>T zwaGPWV;E06w%vdyE^FZ0t$_)G<*J+Ch~-d3H{FXegH5~x#<|9^^3NxQryFEE@B%oC zTJV08aUBrkD@c5yWQbg5x_Cw5H?IhfEWt3T!>>=`K*n%3a{F^>Yb3sg$~IY5Md7ZM zyT?21?M5NSnw89ca{TkiPo@-nnN=D(lrm5{IK+$(4@s9F_)<*dOV(O~BJ)+SgW{|A zR9i4>3j`V>pg#)8L&PcV_{|qY6GUrXaA2~iKrMQv>-pL|r$B;hiL*2VxTi<%RE>sg zA7mEjYZl)l`U9bk7j4{#mn+KcZi^wLAUOucR2rhuC{LfYNQfbnEV#U&2q4dI8n07G zwxSH3ekmhSUDFex^z!?=84{A?UYbt`xo>dho>HU(K#Yifgpzf>wrYoZ_-Kq^)1Mi& zgQBcn?7$$r=OEu>fXZ@r`Eq?RCO^qS;j%UY+zbGv!EW{SYW=kOG+_J>>r@GW`xkLs z+xb>Ob=_2aNyp8QzQk@( zL)S-=^&wycA}MW_lMU0)K;+EQ?~!6=G1peMl2J7-qYq*Ek361YRA#n?F`#|NAfheo zJDvL2?vS)(thlE#VSdJBl4E&lT8Y9^500gRfO~$WFgd)heasRa!QU>d@cV>i)N39S zw`s-jHAhY6!d)-Fe1U%HCbV@)){I{=4#>i?9VwPGzFe*Z3zRir=pgJ$UR<6oOE&Zk z9Dgw?l9!OUqyJHS7t6Gi%0ersktGW$hCRrEX-Sg^GtxizBe5gyP+z$XYHvvzehF{# z2%yESCefevD-oo$o__BOxSX)VH^i1;Yselcc3v$T8>*SuzrQnAF6W7#4T%>Dut? zrl9m=r`z>j$kE~O>WfDPR8zDsw1TMtKtS|E__{g!{gNefWw(*_pWhi@Q?t86t#$q= z9s3X0gU>Wl*m3I0hDuy}_)p^mM@xA))8wrC4jAd$7{^SowQce8S@NwCZ9Q#sl_`~*==Bd>U4OuK67G3mZdu^OLeqn zF3)`A`(hVoz5U*$2?0(5sODKZGQ+c6qJFaH74P#PT+$!Z zM5Of;zxKokcDnXT+RwObgEvw0zmvp>cr)_{KMWqPMYMun))$+|;Y=0!dc>Ca@Y!BfL2^zCS#v*ILAvI*E*6Nqp7_6?vY3`<5&`-Z=FtR_ z?O~}sT~O>6h`d1v4%WJS6`db^`9d0ljw9#{_GWueEL9R=I_alEoN_lJ^pJM7``Z2{=Kkm|@O=IP5-Krh@Nyd=C|N*4_7kCMpfy^=T!OCg;K zNDXqNT$Jv5-&sFevzZ%ZZ>=SUZ)}B}jNUbcpc=x1LA`W1KB02?%n9IWFUuD?+{}0R zs_E%$i5H49aovsmVJpes1IhMxyJp<41}W0t-yjjyXKR_*bzU8SlLg4io(@&Kb+cWN z#6X_|BdJ^xwo|vo(L1eFu;m{P+!rvQ!c;Hwp3QIAV*<`y#MKpYZ&BnYv~dFQA(O7c)O7h}Ku5@`7`R(WIsMkvRITgtsgYiTlgBC@kpj|&p+Rf1 zxgqR&kS7MBpUVCdy~X(Kp_Zan-lUI);M_s>g*Gu+=q@#-sk<~c!uLd8kcCJYNEc>o zibGi=_wF1u!)dp48Z~*4|p#*vxnzAG7E@agyBTRw}>x@>m?yqs2Ne0 zgZuCPi^k_z+aR?mumVxp{Ci0gb_h3gKz)H!e$V1225OCihjw2H&M9nX9&_wu%d~Z{FYNB?6EcKX-~wT@EqYs9 z(>e5zdJgXJ+`h5=2fi^^Oivk|#^Hux$X%M=C*v$}Hex`DAs`IfA15(jEosKjP$?(D zp-%js4tPMkt0)E7jzu_y2z*nm%L4aR9#{hWDJNJ4C#Vg3k}!yi3a*^C#BH;sBB;kK zl#&jX|9nHikXc8%UtEf4(C?L5;->s23;wj6dprx+F4eJf_GcQzRuln=1H4^9t5<#V zU7K}|H_0l`sI3-|X<2_PwT#OdkkunDF~}B_MiRg@^QEa;))*@t`8lg+(4T-buivI> zOY$lxKZi?G)y=E|WI0d+L4Hzk3G1}rdHCcMi0e1CO=RYS$clmTd0=EyFIs%?tPy3ZAM=!0j(a;saUU!^_#hU^Ixb*Y%S!(5Fe zu$2XT<*1Rj%Zfy9&`Fw3?JZ4BB&eL#q)CEfM;5pxSDr{~kt@M00#`YzU*V0@2j)*Z zilGFGwAWW-M}EPI7~-NiP%AS>gjj`YJ{2lzgQaug{R2}?jjDqT`bNCadt$9|hY(j{ z>526xxbm3WKyJpFzq=26e&z}7h5NDy``HHI6>(XT`fT78!n->x_UC(vaawEaRzL-I z;Jo{Z;_4hkH?ON6UEao;FrcK@zcRB;C^I5VV0@v8w5>ddzB#?EEEK#2yQ(iX1v{9o zz8Y_C!P~DBoDX1NlYX8Y)^R^s*bk0Wxzaat@yDVQJ&JXkbYb*;qIn#B3 zkyoEX{j#VtR6p$*dvbOQzp@_A$&-ekU|-zU7srXVsGrW7yrqbpOWQ=ML-Rs^Hvi0{ zg)jBV+lf5LHMChZAlR!*+}Y?g>Z%)nQRjLRe<;?Q`(BJ5A;N7_u8X7JSe_+>^0pRXuZh4j{#f>rJ#|D(R~?88V8sTnr5kO=yCYCxl?u}e_P(OUoI7yBg;+1^i&w_1<59nB;>1R+ge| zFbg%gW=T!dQYOkB}FF(_{yP^pj2W?3Y ziW`cPyFngNObfE7D%{Qjl_qYH=e@FQ2kCh4xh4DkI3q7-_pEHjnb@Bum%$8 z`T9@y`uX)R#?e_i_7uAID1ZA2kP&R2H|A2ICOC%_u&j6VXA17(c#7wRJiC9KWr@aS zcUOid+voMX-5kESo7H0w;j<$YcxB3<@k39}oKZ$#?$VAxKcQMo#}v@S4sq+q*H=v5 z0Crf}V(YtrJU88M%Ab2)F@*@#&=io;O@Vx&n`UTcDS1=~YF{`$IZLMp2t(Q2z(OIJ zQlt?SwIv}&fG6GIcH7s&M#N&^GmUK{yOfAd!;>7@z;qHRSTPJXst0=JQ#LWiaw~%z`>W%MDgl%=>ayI?k6q;Q_aFt;UmEY8r=Tb2Q(y6nNegVvv!@ zL;0;dE?0W>qRxX~EN*3G>Xm1TOmI!wf=8r-)-eo=&vv&q&X!=dt@Nqzwc zk7uS17Q4+FJz$f0 z*Hx7gg~Z$OkD04-^<+#387@iDZla0Z#!vIrpt=gFKJ*Jj1*j8lh9{XLH|2A3`lamI%?S}G)qmOd_A+v>+1f$KLL?%mqBv|s>~^5;mT(4(9)bRDq~2a22=?A6^lPEa zM3z2pQBx~l4nQyJ3$>*Qb{Wa`Qz>;us%fjeUc_NtG55Tnl1@y$CiL9s&RNdGfV@n9 zLt1z4y=%z-l!C%-4twV?dw5!xX1ku(H11TqlwggCEm`W6Ko5HLdcNVSvnH*RoMt_G zG@!omC?-0-{8YP!G|2V<03;`7F6Hh5TN}Y$9CK~T0cfgxtqmmQnB_2#Pjx2W9I*tw zYfKQXkp=ffQBY;&#`Xmt4i8ofTDL~e9s5PnW2cmH?XMF3w8r){b0f{-yX>o>0vddF zW{=~vmbxGw5205{t$vk7^N2B}k>Z*(f_HXAuCgug3`$2H_I7}T-#xgx7zHUQCQ_)v zofISE31FsUk;BKr{m6dpudrX3)1hJR^@w!k`$W zWUhU!IYiP(NA$beBSYz$e30{ zcTAV<2XFm@0G)rTAB5)*#3Y%cTCtHQq_>u+fu@PjcTBpy@^A+x5FLxhi1Ok*!2--6 z*IbYqmu-*p-r`H{^WM!XoIQRD8>0OaEo1FFHYcLOI;0Rk-(1ic{lF1`HCn++gJiO6nRL-8ELut!(GfS(jh_!ptSt zUx2;h{R4YF4Fe3l& z5L=p`4kW<%TeN>-U5b`7w|r*L89#TA;9s%YT|Yab1D9^G|HitwB>*e;0wUb~hvNUN z=R^kqVg8p}Mj)^s6a#1#N{IAtQo#H>0x*miAZQ8+aQhD9pXl|QOz&)9ARv#QC3ye6 zr=W?S9jSoa_Xz)Vv{kpKyZr1}2?+wi{jYfLNuTj3fSGC7z`T2ezf^1P3BbBj|FK@( zlls|8Yk@{0i><86D#@ zI_1CI3G#sX<#<4(N8JBiKfwHm1-4%BX(t6*J^p7u|2KvE{|=B}{MnHjX#MmL^|?m^ zFs?qJ@Do0ecLe_bcUF&EM;#14dBl94Fsgs?$Q%B2V*7_IPTB#w?`Nm)pJe}iOhv|k zpkP=)p=lIg=YQgjKM{a|PW~S&6cGFw=kEa|d?o;EocbTD=6|e?pH{rt|FIG+!~OsG zA%*DZvV4Ya{N(rV { @Override public boolean canBlock(Permanent attacker, Permanent blocker, Ability source, Game game) { - if (attacker.getControllerId().equals(source.getControllerId()) && blocker.getAbilities().contains(FlyingAbility.getInstance())) { + if (attacker != null && attacker.getControllerId().equals(source.getControllerId()) && blocker.getAbilities().contains(FlyingAbility.getInstance())) { return false; } return true; diff --git a/Mage.Sets/src/mage/sets/avacynrestored/HuntedGhoul.java b/Mage.Sets/src/mage/sets/avacynrestored/HuntedGhoul.java index 4828429d7f1..838a4211273 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/HuntedGhoul.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/HuntedGhoul.java @@ -114,7 +114,7 @@ class HuntedGhoulEffect extends RestrictionEffect { @Override public boolean canBlock(Permanent attacker, Permanent blocker, Ability source, Game game) { - if (attacker.getSubtype().contains("Human")) { + if (attacker != null && attacker.getSubtype().contains("Human")) { return false; } return true; diff --git a/Mage.Sets/src/mage/sets/innistrad/GraveyardShovel.java b/Mage.Sets/src/mage/sets/innistrad/GraveyardShovel.java index c3ddb20f576..1596e679f9c 100644 --- a/Mage.Sets/src/mage/sets/innistrad/GraveyardShovel.java +++ b/Mage.Sets/src/mage/sets/innistrad/GraveyardShovel.java @@ -27,7 +27,6 @@ */ package mage.sets.innistrad; -import java.util.UUID; import mage.Constants.CardType; import mage.Constants.Outcome; import mage.Constants.Rarity; @@ -44,6 +43,8 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * * @author North @@ -93,6 +94,7 @@ class GraveyardShovelEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); if (targetPlayer != null && controller != null) { TargetCardInYourGraveyard target = new TargetCardInYourGraveyard(); + target.setRequired(true); if (targetPlayer.chooseTarget(Outcome.Exile, target, source, game)) { Card card = game.getCard(target.getFirstTarget()); if (card != null) { diff --git a/Mage/src/mage/game/permanent/Permanent.java b/Mage/src/mage/game/permanent/Permanent.java index 3d74f43a196..64ae58867bc 100644 --- a/Mage/src/mage/game/permanent/Permanent.java +++ b/Mage/src/mage/game/permanent/Permanent.java @@ -137,6 +137,7 @@ public interface Permanent extends Card, Controllable { public void setMinBlockedBy(int minBlockedBy); public boolean canAttack(Game game); public boolean canBlock(UUID attackerId, Game game); + public boolean canBlockAny(Game game); public boolean removeFromCombat(Game game); public boolean isDeathtouched(); diff --git a/Mage/src/mage/game/permanent/PermanentImpl.java b/Mage/src/mage/game/permanent/PermanentImpl.java index 22b2fed7d31..b6f22c3ed71 100644 --- a/Mage/src/mage/game/permanent/PermanentImpl.java +++ b/Mage/src/mage/game/permanent/PermanentImpl.java @@ -801,6 +801,20 @@ public abstract class PermanentImpl> extends CardImpl return true; } + @Override + public boolean canBlockAny(Game game) { + if (tapped) + return false; + + //20101001 - 509.1b + for (RestrictionEffect effect : game.getContinuousEffects().getApplicableRestrictionEffects(this, game)) { + if (!effect.canBlock(null, this, game.getContinuousEffects().getAbility(effect.getId()), game)) + return false; + } + + return true; + } + @Override public void setAttacking(boolean attacking) { this.attacking = attacking; diff --git a/Mage/src/mage/target/TargetPermanent.java b/Mage/src/mage/target/TargetPermanent.java index 7417e8639cb..c693a1e275b 100644 --- a/Mage/src/mage/target/TargetPermanent.java +++ b/Mage/src/mage/target/TargetPermanent.java @@ -169,7 +169,7 @@ public class TargetPermanent> extends TargetObject< public Set possibleTargets(UUID sourceId, UUID sourceControllerId, Game game) { Set possibleTargets = new HashSet(); MageObject targetSource = game.getObject(sourceId); - for (Permanent permanent: game.getBattlefield().getActivePermanents(filter, sourceControllerId, sourceId, game)) { + for (Permanent permanent: game.getBattlefield().getActivePermanents(filter, sourceControllerId, sourceId, game)) { if (!targets.containsKey(permanent.getId()) && permanent.canBeTargetedBy(targetSource, sourceControllerId, game)) { possibleTargets.add(permanent.getId()); }