From 2a44fd5f5bf5a6760e447d3069b061e4cf1e8d4f Mon Sep 17 00:00:00 2001 From: Logen Kain Date: Thu, 18 Feb 2021 20:42:54 -0500 Subject: [PATCH] Finish up the project --- Project/DiceCup.java | 17 ++-- Project/GameManager.java | 46 +++++----- Project/MyDiceGameTest.java | 78 +++++++++++------ .../CIS 217 Project 1 Winter 2021(5).docx | Bin 0 -> 148344 bytes Project/old-my-dice-game-test.java.old | 81 ++++++++++++++++++ 5 files changed, 165 insertions(+), 57 deletions(-) create mode 100644 Project/notes/CIS 217 Project 1 Winter 2021(5).docx create mode 100644 Project/old-my-dice-game-test.java.old diff --git a/Project/DiceCup.java b/Project/DiceCup.java index b256224..7de3b28 100644 --- a/Project/DiceCup.java +++ b/Project/DiceCup.java @@ -4,11 +4,9 @@ public class DiceCup{ private ArrayList dice; private int creditBalance; - public DiceCup(int Dx) { dice = new ArrayList(); creditBalance = 10; - MyDie die; for (int i = 0; i <3; i++){ @@ -24,11 +22,9 @@ public class DiceCup{ } /* Accessors */ - public int getCredits(){ return creditBalance; } - public ArrayList getDice(){ return dice; } @@ -41,17 +37,17 @@ public class DiceCup{ } /* Actions */ - public void roll(){ for (MyDie die:dice){ die.roll(); } - } public void updateCredits(){ creditBalance -=1; + checkTriplets(); + checkDoubles(); + checkLarge(); } - public boolean enoughCredits(){ if (creditBalance > 0){ return true; @@ -60,11 +56,10 @@ public class DiceCup{ return false; } } - public void testRoll(int [] values){ //roll dice until desired 3 int array happens if (enoughCredits()){ - updateCredits(); + creditBalance -= 1; for (int i =0; i dice = diceCup.getDice(); - return "GameManager{\n" + - "Die 1 = " + dice.get(0).getValue() + + return "GameManager{" + + "\nDie 1 = " + dice.get(0).getValue() + "\nDie 2 = " + dice.get(1).getValue() + - "Die 3 = " + dice.get(2).getValue() + "}\n"; + "\nDie 3 = " + dice.get(2).getValue() + "}"; } public DiceCup getDice(){ @@ -25,37 +25,41 @@ public class GameManager{ Scanner scnr = new Scanner(System.in); int diceSides; - System.out.println("Do you want to play with 6 or 8 dice?\n"); + System.out.println("Do you want to play with 6 or 8 dice?"); diceSides = scnr.nextInt(); + scnr.nextLine(); GameManager game = new GameManager(diceSides); String userInput; while (true){ - System.out.println("Type Roll to play, Stop to end\n"); - userInput = scnr.next(); + System.out.println("Type Roll to play, Stop to end"); + userInput = scnr.nextLine(); - if (userInput.toLowerCase() == "stop"){ - break;} - if (userInput.toLowerCase() == "roll"){ - System.out.println("Credits before bet: " + - game.diceCup.getCredits()); - // Roll Dice - game.diceCup.roll(); - game.diceCup.updateCredits(); + if (userInput.toLowerCase().equals("stop")){break;} + if (game.diceCup.enoughCredits()){ - System.out.println(game.toString()); + if (userInput.toLowerCase().equals("roll")){ + System.out.println("\nCredits before bet: " + + game.diceCup.getCredits()); + // Roll Dice + game.getDice().roll(); + game.getDice().updateCredits(); - System.out.println("Total sum of Dice: " + - game.diceCup.getTotal()); - System.out.println("Credits after bet: " + - game.diceCup.getCredits()); + System.out.println(game.toString()); + System.out.println("Total sum of Dice: " + + game.diceCup.getTotal()); + System.out.println("Credits after bet: " + + game.diceCup.getCredits() + "\n"); + + } + } + else{ + System.out.println("You do not have enough credits! \n"); } - } - scnr.close(); } diff --git a/Project/MyDiceGameTest.java b/Project/MyDiceGameTest.java index fd54aa3..5eb549c 100644 --- a/Project/MyDiceGameTest.java +++ b/Project/MyDiceGameTest.java @@ -31,9 +31,9 @@ public class MyDiceGameTest { // confirm large is rolled GameManager game = new GameManager(6); int credits = game.getDice().getCredits(); - game.getDice().testRoll(new int[]{6, 6, 5}); + game.getDice().testRoll(new int[]{6, 4, 5}); game.getDice().checkLarge(); - Assert.assertEquals("Dice => (6,6,5): credits should stay the same", + Assert.assertEquals("Dice => (6,4,5): credits should stay the same", game.getDice().getCredits(), credits); // confirm large is not rolled @@ -44,38 +44,68 @@ public class MyDiceGameTest { Assert.assertEquals("Dice => (1,2,3): credits should decrease by one", game2.getDice().getCredits(), credits - 1); - // confirm large rolled with three of kind - GameManager game3 = new GameManager(6); - credits = game3.getDice().getCredits(); - game3.getDice().testRoll(new int[]{4, 4, 4}); - game3.getDice().checkLarge(); - game3.getDice().checkTriplets(); - Assert.assertEquals("Dice => (4,4,4): credits should increased by one", - game3.getDice().getCredits(), credits + 1); - // confirm large is not rolled with three of kind - GameManager game4 = new GameManager(6); - credits = game4.getDice().getCredits(); - game4.getDice().testRoll(new int[]{3, 3, 3}); - game4.getDice().checkLarge(); - game4.getDice().checkTriplets(); - Assert.assertEquals("Dice => (3,3,3): credits should stay the same", - game4.getDice().getCredits(), credits); } /****************************************************** - * Test Triplets + * Test Doubles *****************************************************/ @Test - public void testTriplets() { - // confirm triplets is rolled + public void testDoubles() { + // confirm doubles is rolled. 1st Combo GameManager game = new GameManager(6); int credits = game.getDice().getCredits(); - game.getDice().testRoll(new int[]{1, 1, 1}); - game.getDice().checkTriplets(); - Assert.assertEquals("Dice => (1,1,1): credits should stay the same", + game.getDice().testRoll(new int[]{1, 1, 2}); + game.getDice().checkDoubles(); + Assert.assertEquals("Dice => (1,1,2): credits should stay the same", game.getDice().getCredits(), credits); + // confirm doubles is rolled. 2nd Combo + GameManager game2 = new GameManager(6); + int credits2 = game2.getDice().getCredits(); + game2.getDice().testRoll(new int[]{2, 1, 1}); + game2.getDice().checkDoubles(); + Assert.assertEquals("Dice => (1,1,1): credits should stay the same", + game2.getDice().getCredits(), credits2); + + } + + /****************************************************** + * Test Combination of Points Awarded + *****************************************************/ + + @Test + public void testCombinations(){ + // confirm large and double are called + GameManager game = new GameManager(6); + int credits = game.getDice().getCredits(); + game.getDice().testRoll(new int[]{6, 6, 3}); + game.getDice().checkDoubles(); + game.getDice().checkLarge(); + Assert.assertEquals("Dice => (6,6,3): credits should increase by one", + game.getDice().getCredits(), credits + 1); + + // confirm large, triplets and doubles are given points + GameManager game3 = new GameManager(6); + credits = game3.getDice().getCredits(); + game3.getDice().testRoll(new int[]{4, 4, 4}); + game3.getDice().checkLarge(); + game3.getDice().checkTriplets(); + game3.getDice().checkDoubles(); + Assert.assertEquals("Dice => (4,4,4): credits should increased by two", + game3.getDice().getCredits(), credits + 2); + + // confirm triplets and doubles are called but not large + GameManager game4 = new GameManager(6); + credits = game4.getDice().getCredits(); + game4.getDice().testRoll(new int[]{3, 3, 3}); + game4.getDice().checkLarge(); + game4.getDice().checkTriplets(); + game4.getDice().checkDoubles(); + Assert.assertEquals("Dice => (3,3,3): credits should increase by one", + game4.getDice().getCredits(), credits+1); + + } } \ No newline at end of file diff --git a/Project/notes/CIS 217 Project 1 Winter 2021(5).docx b/Project/notes/CIS 217 Project 1 Winter 2021(5).docx new file mode 100644 index 0000000000000000000000000000000000000000..3271c6ed35afcf6ffb52a5638bb83d1cd4a2976d GIT binary patch literal 148344 zcmaI7Q;;aIwyxW@ZQHhO+qP|EwmsXnZQHhO+ue7reb1@dFJ~pGR37q@@2~u+jEpEq z1B0LdKtMnMIKe0@0sOB5{co)AWNPC~Pxqg`dZAwmm=OVN&pX#B-P^rIRm7yR`_Eja zgl|Cn)D2jsj6{jn?v4Ufhk{x^9`pO@DRI#@&UcSjX)-Q2Xk|xWWRT(IK;E9~Yg1Ra zY^#O7MQyRj!py{K|$a`{`H1nS6+{Z1!jkoz( z!gRlKyfhsb6sWXYPLXjI^0tn$37qEI?}JF`6wdieMv>*g=41bO0dL%FhG->C@8C>tZ0}@B=V5CTqa-Uo$N>^Y&b{jfSxqn0fvBaE0#8vZHER2WV_s&4lDm zgcNYl9A7auX2b^xPEt3PY+zbVKM%Cg*9pH@<`gBUKlOti*QAMNBP{tz`8M zMPP-{ZPQ7+JdMA&dVW~dj3u?~g9@G)7aLr( z1t5$Nh%5nrEjK3pdgI4O=!rz?h(T(&l{?zaa$c(V#8%+H!yXjg#`Z2;jWUR;+|R6` zAmqpD1JAAk_!ql;-j>zAzcFZ1x+Jn$TM&*)XG$xQo^_HoeYl)ExERE-vv=bm@mN=V zbi>~U{^XuPHte)T9_X3|jIE)4)@P0F+469(W|u$Uu)j!NCmKnbBUyfbc=}}bKazFF zIOMnh0s#E}SIH3mw`7J64*yXsJ7L;xfB_-o);DtOKq^ZJ0?{e@qcBGyYN_cdOvhVN zhqT3%9%84bL_%?<`}(S?w|>>e_onj*gwMj7$|={31dzCTp`?6F{F{kZ5=jArl*>Ag z2pz&?`gUza8yt@{gak>ZOd{$`Eg5WGh+YWG7CAfkxx0_TSNM8AkCaE-^Qxa9+f-9< zKiUALtQ`8jonA@ud|qVOhWtOS`RlNF$q1| zUK`upvHk@?A%@$m|Nm?e!RbkCrhmK<|0{3g|IORj)!D_~_CLs*7iH}S2r$6!KKVok zyM-!Mtv9f2S-G$3hEll;mlB%=0JbwscYR%&y;#1)QDX$AnT>W7wJ655}K4LTeYPzwDl$gl1jJ;UOx)4c=^I@-$j#5?V7C&loj zYm)LeDMqm45o{89;6@tI|19FYwD9hQB^DZ$oI9{daV?;^AByq5+R)3XM)zJe4Sfkb z!ucW>a5eTGZ|~)W>uWiaw-OD8@nPV;o`vm2matv)?;QdC)o8YVX#ua@rFs7!0lre4 zH3a?%Pzn6sJPPNZ0PglqCiMTmlmD|TS6fp%m;Z?HKd#=LJnIz1fDnGm2b$y^VPI_w zerLpen4b#g8vp@qLf}spQQhOKULV9f@zm$Bg+Jb^4C^MFJMM> z+7Lai{_#^sFlmD1D>R5hSC6{7GRV6yQsgApt7O#(1=85FKyWXaA8i09t*kWNkdY!V zcGy~7;in; zx7yHkeCL55?l880&Ii{>82+9H=S0nB-~h%Q=gji-%@;?hNO7*zV(FFY7#l`{Ryf1J z5gvXce@}_2o9JbizCYdb1Re`Msh+K#^9s`Pz)mVVdFD0k zyGuuIMTx9eb4{0eR16DD`kKH5L>@JIf1EWXOcW=4p9%H*Yr zmF8!T(g`i|wl=KbyW3?D#3`?BwPs ze9Jnh3f$UF+R}Pbt9Biht1P%5Nb;$aemA|p!l#2v7 z_fcX+p0w36q@ONPMIRqaX^{H?j0Kl$p9u_#{M6BqjJxV12CixNQsuMfb3e4mv+_VI z8=;Tj6C2iYq2oUHhk);2@UVrB9#6~f3XnDV6&gY`V~a8Y^z?IP@_he;4IM>M?np9S zc84sn8d7xLgyzbVSGoZoJwL5?VEPbc1c6n9y9DfhVG9sCYJoUQhQq2xiM`!&C6|Cc z$5#3SI%S-!O#{8+dnv$ZzU1aY!5|U{?PcTQq}?*WZ)AuH)^otCVzLI=o~C#Q_g;$F zFqQ)$pr!%{%Fcin8!kU61LK7hUn7$FsdyGZEH)X4AL#ev)ii7)420LP<%2eW-2e$c zqcK{5G3o`2Tntr4rY>Z#u2DAGOzVR!Wf&?17;DHASI$)u#|fWs7!xTM^%5cyS}}$k z5S(qDLY1m+hH?n%i~t9Glvk4wBVVdGktr9`GDQS&7?OH9jlNADg2->?<4D6gFFh^) zWr%Dz^C;5>FqT{pCKHn3fcuNBv-H1Rf0yB4_k+aHMKL(A0}ra7<0(Hv2<=~}9V;5K_4-1Mp&nRV~>`LNpMKwE<^!6sFiQhjZySRNO>oU9wwYUv=mhiv(NrbOVkG6Kv5I2SoJ;75*VaFJwf;`kZ) zkdVX4Qv2@P+}0vQ~(4Qix@016a`%VS}HNaRyL3zFzsK+ejOQ}mX6TwKLwBf zw-U89yoo);7($k_j$^jTh6R=k-9IdapOQ+VCiDeqsY_J5=BZ`2JI`$JoM0?kBx3vd z&*+PXJ-EPMWdQM@hOrt2Wp-jTV$NyKfXWMt5b1fDmVQ z5{RA|NuXu$Ef&d)g^n}HBKYByLkX+ZlgLn78cSAYe5nhwog$qWZmFThfRhN&$6B_M z-MKi(_jGa2CH77vk7>Y2Oa)vRsFj;xHiZsVG}w5%hBql0FM7pW)dw)CHXY(Ar6pT+ zNR?#Q_-YMK2dpo*i}0PeeME2WQPWf5K|z~+x(v7=HAWUN$|@Qlu4rc1a7}bdswQlD zG4h;<_z8r1w1GY@C7+;O;N4lrbG4;A1X4|-DKc-d-x-dAAAq*vh7c%Lz>>k3WyH5_ z^L<8dC--e9qCI+RLQf`KmuB0>8&RhU6_Nly5vAk{(B~E#X6{U^U35sv5PsOWuXMTO za0XITD&g`mAlc)^vC%WG@YGO$;x#*<_1K#46Rps}KGCZ z+rne>U%6&KbH+#_A06jebKNf_9B6}E$>3-d6T5S!MK{&3dXU%-ZwB9K39`jGwom#J z(^AoFcJJ34;+E{t!S$d6g$PaB1^?wuB6w59!YDsksg0_;**Vd4w?oV#%Cfvt|)fsKkp2hr|M>r>C686d2KxvtTA=k_7z`pr%|srUvr#wTowe z85Pvy_i-f1m0K_L5SUX2>Be9#+!7-}qwG4(uBqS6ey^wc>yh%t*?-M16_N}Y*4Rhd zk6f>CZ_-&e1^VcEB6HM6MY5cCV8 zZn}IKGdLK=E{unhoRYrnjA0kn()63T4F^&P1uj>_M~7=Bs!dFb5bg;aC2n|VGFq%L zqRByV`JM@XhwgSqb-lL;P#I|$BJIB*Y6v}R1RcC8#Wj`nE>shfG1Mu-m_*fTidZDI z&-d7tsky6uY{cT#qq|2{kSZfqkc^Kldb3qy_Y%6=|{B2jQx1HA@58vNW z%h5aVbzMYo&a{8K`XG&`ggyG3ISX2?je9+Qb=}Pp{!n(1N?ac#g0KuO+`@Y zJY5pK#-d_{NLoDKsfig%}5Q1kDbA-+|cZcHxv zw90C>KAaotXo@`I_tsu-eA~fjTgp{%lnmnoqE!B7{{us z>t3EJokoz#4Pn$fXAr{8tK_Mu=P2JHMSYdIJv@9X#4;Or5(!(IE`>Up4b z{S4<0(mmg+kktg5<|>yy(Z3x^=HiusOPHww9vdZ4=~|VQuTlz55vM$7OK3F8?pi`) zTY_bS9{y;jxjay;c#F$<6`wMH+Ur%4`MU!`P`oW(NMk6q_FgPPMC-qZl5Y>4Y*6r4 zdL5l)PT)eT>zg3CW8HN^QF;Q$vP%w`o30gEqaLSTgd6wPo}FwI>o~}InQ}-m7rh<_ zb4X1*SIe6spaz-nR!rVIk6Q%l1sRt99O`t7eVTY_u4e>DK7Jsjaw=JTtrGD^Dpj=` zHx>RJz`iscAY$vjRSIEErGOiqXh1`b5v`wHO>UDHda55cpor^pWR(%ki*aqyk2W;> z{1FhCtRsM4@=!}^4mhBy5RJ4-s8(ARZ60e}dX76|Pilna{ZVja~rv3>X!iAbFuG7i+Uck(37VRklBiZF* zll+)gP@IYnsg+C`4H`{zsGP2bW#4bjeX#%6R^O)ifG!)zk+udWDwi+#dd3+sa8lu{ zK6h_FS2=_#-LPdoUu&vS3x{wAtFO$dk*g$`llxI6J`jWlhq8B^hJk}2$sPK8z|b53 z3;kYCwVt!TIa+VSWUFqam4VmlS;LLu)k(uib?R@o;E;W8d_~3wg5jaS`YW5(G20&` zjh-R@jBBu;|DP+W3jjxP2MsdXU^iRPR-gQGxd(?>fl{p+JQd6JfRQN1tT#T~QCM*s zRQP^429}2iJ7^h9Gn3BJZuyN_TI&Py(j*+XyWJKH!mjz<*o$nR`UP@yZhEmURxIyjEwKJU zvG2Rj&>?N##5L?tkI$Cj%?8FE-2+?u!h>tZ6PlsTsRLLDPkV^|Z!u%S`;|13mu{gh z-^~Ntb&OrQ`<7nK`xgjjyL695hB9|ka7nriBaLCyYXY#WkZ(g1rmn@m3rFr+3jn^b_HIgt_8<9trSsL9R@^~1 z!f1CoFvP+-l$H&yYewd|`GC?~rx3;@2Q=!!+bvtR@hbSJqX2{hfStCBDr+KeAp5A` zP>$)+4y0#Fu7^U7>(Z4>9BK}r`+b2rV3Z>VazF6@iMe23PcX9n3#r^x{i>>d-GI2S?%mwn zz@>h9-#X9mzRoUS z<*PwKK>Q64t*h%Qs$G!VV^Tt!@dF6;9eXtzAaa0*U{PM20JZV7@#UyE3Fx@k zh`yGp@?-cpAJI>$J{$lcR2H^;fq4Wsza0WskVP#w9s!ONNbigQ8`ZY5*l!@U2938@ z7wOo$lwHw$2Ag8z+}P%_wip5*B#uVq1b?9prRPC>aKCn}A=5LwQb502o_i3)yElGG z3JFqPa(;aO^(X?UN=2W%5B%|rRk<>~xr#^VAUP6O zH9@|6bX9}kR}&yxPHfq-QLGj8S>gsFv@mTl(C-lnM4t=G2@vbYBdLFfYBu*UmJ z%_77SJX27MKh?()pR5i!S#F&WZ`?4-_5SrWCG%T}n3u!wT21~i^;|qhd}nd&bHr_V zSMcHe+EG8Vt~H8t?mEbI?X3dw=QMprIYr%jXmk$zBVrk_2@&H@h=SkW-_$=y-~197 zA8NGSKb`yT&d+h(1B%Pi9N7ej5!bzYx;pNXE*s&5>stEGAh162qR{xc_04jv`q$5G zk3GH!YVD&eFmeIc7Ha34U3c6q&n91<`dfTd6c;Q9HMm8ZPnvVvs_gcWSdH5r87LHs z_k!4^=}qwX;Y?O#e>F5O^ST$m*X+nc^M>#1VrXPgVTmnLzTK!&a=fFkx?joMs_2-ZAEfF@&|hp+>5OZdx+ z%febezDC|b-9t5^Wq=Q}hgA;iM?O`+eU(jN@)>ud%Hwx}2b?>9_@Icarf|lLV9Qj> z{O0gkHWTU;?>{s=@Iygi{PBEzxNxoAEZDkYAK)gnfXQ;EMl!Mreljnl{M@%|Kn zLjoiS;D5)+TkVvaGUz6-e@d7HO#lKCj`#R9zzy*qc8DKPg!D%8g!irfP8S^F0|CVr z$(j~~Bu3?-3rXjtl0ShlKM$uTNj-EP^NPwvJ0n&All_1$-n3T+$)Lcu1lb@9r~uCo zGnmXJCJ;$ZHp#lfN~bv@5owffi))XYL%4jzY~YkVPp0FVHBd-ra7yb zWBk$-?;Ci>lTr@o9LXg@w>G7JI56&s&bg&+O%vGR`vJqG0ftCn+m;@EOW92+MLEQD z7kb7#U#`3RY`vs9$*Iy`Ei?|}WnG45k0y`CC?}|6s7?IPf#Vj9OTfv{jCmHH6s#Rw z1-8cyjavo4VH?tM=9Uld8=N_nN)~6N_rzD1ZM1GOS4J~egV4hpE#$*#nUn}{E-oq9 zZ+DMF2)s^vuMw!h8UALQ<~PgWLPVl~OT}C4u9U1mh`6D{F#;nH z-%-RWisIxnZU|{9DFP`knM~C2l||Im<=!8FlvR*|B>U{PL5eev-84ubM>@j?Ar`19Vj||b$9KauBPlK?E`6#Up>C;F zZg}aq({s@{(Js}Q0ovzO>kRJP>vjrs)#(gG1V{q#k@-0}L7kRajNNeAJ~?K+G&)rJ zLS8zWG8#-TtN-J(9!3$05Zv~``cQee3J3y-g9`(LLvBN+L}`W9K*@wHhT=sU2_J*7 zfr3R|PITW)ge7_Ijw2+yU>Zq4LRy6Ff>nggegs$4pFVnuZqYTTKjLD$rF$Yp7@Xw$SS^y~QR5tk*p>x|q5do$^_ zu&RdkP@_omZMwEzv>BXM_Q69TORI8-=hQUPdtvtG-OS=9O&*SXC6vZI}d@GHS94j&Hgk3o8rj z5A6xc9L~kgT@ffbMh*T9X|=s!w$-4eq}er-%T_;E9nZqTa~3)#VJ4$l(Q*C3Zk<7l z=ZVjROGghz4@J+~80GBtQ1R4r_G23IS67He1Y#7X4aZKBD${#GSedbhVdgsb?cymntjHrGEU5V@@-J%V# zuO>+c;f7HG3K!e}St01x_xmg+vXF{!vaO%vFUQxA*+exE3c5(W4V zYHne6{a%f6(49@m`@{apKBt1yPF z_fDM$;)J@&1;tSry+@9~gbcuDidI%a0b){m;hbx(@NFzq3e&RP09pm9Xj-CBgghku z@D4n|FY+sfGiVGPI(_%6_JD!pF^uwjOcw54q&*oQ`EVd2D;{?+b3TFUFyZ;mhYRJ> z$B7Fje41iv{wmCIax=eAK#pi4;!HnWlk~#l^7hk)e@F0TUr2~^SaZm6NXlTIu={Ah zYL2bq>U&{A{^kjz52G#{Rs8)Y7$sfiDjj$V6l$ zIz`4+y_lw9Wk_;ZGF`R`UDq034XQdRs=LK2)#ztljTj3rE@`#OQ56bXO_s7}Qo;)Rn{x#WZUFW%OB_OrGg<`vQl( zhnil`g&6k4x(elnr@7=grmNT6&fB&7vys=_VQb?XkET49+9%vQ&WviV4&Q=I8KZjO zI*Sohty7jai}J*htUj zzlN2nwUMRo^3qD;0@HH2iu#@2P+hxF(j-D04jcRo%4$Rwhp|{jh|tbG^qo_9;Yot?@eSIqa?=q8BR@{B<>q$e2W#x5vr^ zj3z84W<9JePd*x^cYUr;(14SwSiaGEqn(+f+-A^~><`birZF^lZ5ew(uS~5t9`QxI z(`xScGVH<5znqB-WMo<=J30AtgMt2ZeCI>tjZ5@%JFdy>8VT7kq~lYHw@Cpu-Le-q z`iNMt+(UOfg?GAuo+p!jGrol|pY*#wjPZir_4iEVCjJyvZ%=oO#nRt-?tOsbJcii3 z9mz{s0h%kCCt6T}yW!zi0wRYT%sm4}*Ai_OyvSqj!Y#x-^enyIC>~g8jHAqxoOcu6 z0P^qxgN5J1`Wy9SZ(dxyTv9?U%6FSZ&LnEEnI&->#SNOOD&__2`OU@7zoBlP!}HT0 zL>9J9T?JbeTkeidzVnBJ<|Vk1t~3cPc|s`jmZn~w;g>0!VF8h|OWoHSZ_5LAgtJ#R zu#8dPb}w$fgm*U}fRIwHF-Q(W+EWMtal!hK0{#n4K?Xe|3(LXH)JVU)4BP@eIT5vC zpZ6R0XZ&FMY1UlVhZaJXj*@l@B=6EdB48?ou_d)<8rPjPuJ5$$tIjmkgWjhEi za6RX}`nVaeDz<*69W0>e19HD!*9*yjZH{09y#kH(Gfvr@Cd@wEog3V;4~803Cb zUAZ&j%|dP{Y#Q1`h19AZ(_-%H$qLbil}G-p%0>Js&Tfq6D9s_GF@839o|petw;Kv#n`*Ss(J}` zgBx|S=Q*v8M!cR$+)t1Srxp@=gfkcD-o;249YpZg%qxwh?j$)=Q9gf2Qx=06#J=Ui}Ii zYtpWh@>3zM@P6amP}9I}msn*9kvCqydzjMpJQsASz2>N@-a(V_$+M;~q= z$-5$6i(;_sL1-=6+C0U4P_u%jDYh)m&sdz1hna>^Lp6MfX<6+DuTreZ+)>F@%4Mi) zt9zrDrJW`SEieYU4b}x-0?qba#fR57;Wbq$q^QKCA5;MH1@Zc=-sBvEozydwZ^HY6 z*XkzmVu4LnYZ&|ZsGaWdPh(^|f6}V+BlFlIsPZ1(m%Helpgz6BYaOq0{vy%B>muty z^oW|pVUM_4S?Z%@T`fi}4}B_4eh%!xx)Y2;i4%jfD_07QQ4p*jNe>}W{K0g`6Wi|a zU`^oT)PvG}WUHzdf)4eTHP4!kq&{6=P=MMO&e!o(?Oe7b3xy7SR&*IsW_wCOux-@0 zobXib*yUSx21U%fCWFwwCyMhqHA`i_@i^*(N{4&YrHwQ41>**VhFuR)q&$^uev^my zH`W8)a^~#f9nBm2aHYk1S|vf&psCoAcd?Zu&m_ggNv5c*vm1|@P?pY^1bLBE806ye zr1|29Vi9ow)n!TM4wH#Y7Ea8{SoqTGTOC0>a6w*R?W5K` z<&tg;_(#t_Pq0-n+2m1rzVsLH`N+&tTrmP3=$)JKpO45lpg-REpWTHw6+2;6IE;NG zcF8KB$-iM@<*Noy9ngsdlCk; zT=+2!I1i(R9Z&lNKx`uMkRAw>ZTwn+%ON*W<%t<1Me&&ggef3`QKhDqr@1p|n$R=j zKF0IXfe3@65XU!ct;$+K9p2VK#)BOZm6laQAHc~l#js$3VR-|UCTxdTQ|}_5BFXME zp{zy{?olK%7^Ho+J#;&niJUvGtWZzmWh(yOKUo=K?m z{72efT3*hqSo-F(UoBrF?w8>Xa5hjrpl!S~Bse0^1o=&VheiKA`+Xz20^VZ~(tpRi z_-<4bb?%_6C`vNb1FiFVSrsZdNM|3)WZCC{sJ)&foFIqq#tC-!dd1j_uE7H+6ekm; zyJm0g?}cE)A-uwq%z z@@q_3%lRL?XJw9@-EGb#<49MzON+ih$(5YCVV$#i91oWstzK}6ZW3vmvyqan%T|!^ zwTMr`8lmr8opHC}!>~Q7$%!*)U!nPYKa~uY7cW}UOx#qRq0?OZzzZqG^MvsN5-9>Of+J$dLQE3;i4Tc&!1N>r zlNTDts6|U;UQ+O&^wuI=#OXL7*B23Qy2)!d#0l1cjp|sZ{Gc=f!^XVH~RL zm6huz`rIPpXv8~AFhP8>WwKgRdQ^gzZZ!76xno&Ae&NzOMKjOd4BO=KUi_PoY_|}& z`G=f@L&b7~X$AQnj7Hr^{>mU)P>DI(1jFqKd?LdBa!QY{R>xqszo7>~AhXXa3_q+d zOg8jp%RFg)l#-fDewER&sDR#(9h+w!6fB&OtcAn|rFY_#l5AGJHW$TEJ#uDumQ$v2 zhDw&Sak8<#&LRD9os({Rg{IlplJ-mius_qWDMw>Nn{RKRWNvj_-+?t!;L&pcj*a)p0}8G?|Um)w?Wp=qIQpuvEjfCprrmzGdhUawQf zmiB>}g@Iqe45Kq;2E*X~#J=o)_aX)VCZ_mV1x7JK_UAi(IYIy2&J;f?ET|4Cv*XUv za4nor>Q5Yx5~KC|>)$z|IYs1DRSH#?6C2v+)~OR2+c&0a&+%QFP{tURLtno^Lxl33 z#$~qntwqABZv^bpUU&Oq;&_Lr)G^LiaH(^!2SB#y9pJALNc;GBmSIE#xPhs{L7^HC zJx%T&j8SrQ9vWJ+K`9J1Grn4fBn;EH!UX4-a1r z8Yca0c;LZq{{a8u@DLNY#O3CQg_q`oqmF#$rwzm%GS?!vKEvqV&~|Sw9o@2^Eru=l z+c7Wk9;FVBw3>#X!GOlWyOALoGC4Nc70DMBXEkb7SlUTS;MSmKuZ9hcKRWR_`Uc#l zjlQVf?!GTCV!Ab(7S;ye3>xlLy6Zr**`T2NwibR$L13KA0EU&O#`^I_#^$LTOgs6Y z(?d}(*&or_A&i&mOqzwh_q>7~r@lg*F0wDg;*uRF3 z06;(mRt0pHRMgNy-b=yA-+M5^QV!Re4+Md%vnX zpW2EFk{U`6kJ{s7^Fu=`<6AT9R*1KY;AdT-4IPagRWPXu*|6Dx_1XE5xP2o(_@_Jo zHM0dV5siR^eIpwy5zu|oU-Gauvk$wIPeUQUDvm7&q-v=tA?{WBu$mGQ0(B9_I+}Z=Zr(j`jbTeH;L%%hTwX?lkOn@3+?(!{izdhBn z*hRnA`Q}B&dB60#{@cIZ6QuTl4E1X0^>yzsv*!3dQ_)pCPrv$;zjoyZCI=KY=8u+c zC!e=(Kb`l#EIT@0jr{qsofdV1| zB%mOwfCc23`2prd9K!jfAxjAyN^=V2Qa=EYgpi?bP64+PqP0+4ewN$pRwQ_U7_nbY zRYr7bW{R!TKk#m9tIy7moO`vAAIQ(*>)+098n5zwSRirHQ&z*}C`O`}z0+KAH#@{!tH=i|JyZ`x$Q*=`N&n&7^nOd<+yL>iclM~g;g}W@q;GHwclE57ihOS1jTh%fz1by(KAG>16e6Ev|Ti%+^{9)n>hiQG5 z4kvD7u;4cQEUkW73w^%#Y%W`gRvFBvdrOLxl_?7lj#wI*5EHFV-L~HH_Y?!*)0m`3 z8~#+fKhHj%Qw{!b*ed&N<2%i!qc$$;8RY^PqzTs}w@^!h<$TJ*7*AD(;plgseOP}?cR4?_uTfU155`OY&Ut4>J$uHiAg0TOJA}hM+^F9k&cgVPPL2DE+#g@$sJMld!=FW`3TY5p z9y9W$<2vqYo~H#PZ=`cHBV8_G4A8TV+BLJB+j6MzzW){{`$hcETcpfk__yDg!!gzo zXacx@okx8Kf&!M$<8ozZnn<7gF=J02={Bfm7{a}jR}X(}LHqUvYAvi>i3`EZQqq38 zA7&FX`LHkqEWPM=e%I&I9j2xHoaT@pWkj*b++knl35d!KX@3i zXrp|U5Ip?!5$`qqMb5WAZeLxB@~!QN{ziR%p3T6aV&yxc8Z>C0GzlC)^sxf*6j!xE zg=SA1ActeZw!aJ5*iqO zA@#y~8&yX(ecuxD5wET1Yqev!K{z=!6R$+!Y0!?IVD+T1rq(2KH-Eu)YNOyD+%|8o z>3e<3T~%nCkx4kRUxc$Dkub7`vS-p58}&RrC4JC}6VHM69noRr3P$j@@e?j2(@n&7 zAN1T_RakbucetON;jCAVMiYtU!WAh|tWZQvnchk2ov<>p;1CkeSf~~Y`sCK4g27u` zmbj~c?~&ptFt#8{po<63SF|8tokX1!tqFn{dFnkg)GP$`b> zy0ojvE=4@+=i38pWm~woi@TZJ@w5*@N9c9&KIR@teQukn=qN6jYXSzG{ZSU3AEj=; zuixb4rP*yTOQ$k}8D(~q&L1Rz9KXcEn6&AyNNSz(FQ{r?cN58cFgPK_U(9RZ+ZLfs@+#^Aw&x3U6UWV#UTW zz!8QS-QvxsgSR_RLz!@l%EriW0lChn^1$?s$$dElFN!IG_6kD5#|lQFz>|f?`1sZ( zu3ZbN7X|9#7T@p;VDE*1}*j-*&_L{E8pH3Tc4C{%`YTpJSgxeXXV z=!~YNxV!y0SE$i!>xdiPop3bN)gU5_#zY#go150o)}h? z1*cHkA+lwx&yoOWQxCYZ^Z17LZ+B#Y0vm5+ogoIJ=(PwUci(h$1Q`fW8hGXnh z5E!l1FTp?^kINv-vLt&DpEqClH6NXqCAM3uh4~c<94ImN0h**2aR(Y?w6lN5vs`46 zDKk&^2^{#zb$M+DThW1&NRltl&Z#rzBmKc{9~G7L@}>U}LJ-lObNtBf_|fv`yi|Mt z`4fpf`rxYeDY?KYrfWxT)FX%RKnwKBEex-i*!3pdk5AY1rC&8oV|+gh1j6tTP%5>* z`*5C`*n?kB6g9Gmr>wbaq!n;Cuc%%W=DcVwReOSS2we~EyWTGoca=!Fvc~Jg-N^Gu zY__F#1*Az}LT5cQ<};aePKhkaRtN3RLA5{fLRKP2g;-JiraJb`r$KVLNA^E{ z=u#<2FYWrL>Rt`Hl_|x-fFa5WIJdIfAe@`H-*lU~wOYhSV!rO2m`2KC(5j=SUB6)Eq9l3PcbjwHsEdoh~6n3$5Ch~?ThS2Ic0^7?Q ziW$8xhIbJez*-WV-#OB`JLy5hx|3*}0W4*T=x?<>dY4Q{7mo3i)m$zwkYOJ~vMcT&Yr;Xq!v z0s<}-)K$3j2vVGj9e>(h@seF+Jytcr>Z+2`ZxqMpmza&S}A z$uQHUp0309x{wa>Bi!iKLE^zO*h$(Qr@XWOc?fjW@P*Zad#r@d+>huw3)p-_C|ohz z{byyirkFo}c0&e*GsBKnKjd<~%MI)i>8-ar51o0$gCs7xR2iIO$j`ot;!^Gjx^#h5 z_4LJ&E`raLfn{2<&y-8$My~m$MxIR#T&ZBJTrN!?!6kaSrJy_4zm$Ri@dZ`^^ky>q zsDKK1HHbzF-wvp7LN#1_LtUKD@-QcB{6WQ>8035H9!Rvr%ZJ5vU(iQwhd;pnb?SF9Dm;TZNX&b_Ks54 zr|rFlO>8~qC&Rx+_O^=2i=$MG0e&lE-{tu&96diTfw$=pWN2`zBqW%TA5{XeEWpMyCsOJK z92)3zBZv|}*{2k6pyB)^#H#9Ox`bK78u%3*c zrU&TinsCpD1g*Z$n8JWrpUMar(ErUb{@)y503E~s=2-AE$1s$q{ht|J{U?Jp-vk@+ zbz+EwA(tXP-?0WW17j`ZC4oo8{eJO_igL8Ynm#LF!*R`qpG>8hyYj6_GqM!$vQK+| zzGUX6>p<)Om+-EN2$0a~V1g0wqO8XJO^q784=_IU!aOO6Z>L8SzH6_sx-!7^^p=Fn zYvG5fEWzptd!^Aw2a*hsW6sdwh&g`{GqqFT{q^bcaEb)ns0hQ9Y6m$lh)6VS_i(v6 zxS-fIctuIB70%5bQdc)IhRfxclHK+5?IAR0sq$Bl^o3(0MicN0CQ8jYS2*my;{Me9CLi;IQI-@>ShvC!8sST z+-ZrK^89F08|Ghn+jc@vq_b(MyS%#VesVfs%-$f>(DfI)gAa559M`YUaS0mn&%llG zw$i3IN{WbvqsIfU-v3~{q)yjTru zb-N(;ytihu-dKM-oGHuVsoJ>+zyG$}O%e~a-sbKf69ayTiiAu~QvBNLutVNpvlfL& zz?Ut(FmC=TOCpng4X0UW8H7QbP9mGe0(gH74EYV8Cmy9TJba&BxyGHR`{rSfuD1xd z+A&%HLK_53kqi#CENNo0np)Opw(7H8?~TG?Vq)@m-hW+bJnQ=8HvJ>~r8tU$quBxy z95zd6wS|0+PipLV+=hF-Ke2l>y2D8+gDc3}vic;iLo|bho@}p~hsTui{RL?+2aEvv@^_ zI>CO-m#}Xu{#&2CPA=OSD^P1P5!NFLyLFsccAeH!`(HeQHfNS%`IyH4%bM!O9R zy#dH#jk2J9o{G@NgLB>#UMqx3?Pg+luFM%dbMs;y7skOqifg)^K9T=ssV2ZyoV90U z+MK}=e#xE{ot%_Xrywtn`!&{R5*_9Yo<(2G>^Dgr9TQi}qbLGygyXrjPB(%Q#R4Wu z;4<*v__b`0JXflg_#K{D!$C0Uc5gKK@X{M90-qZtv7P!@amDGwx>@`_p{T5GDzxAt z7DukdH(GSiQLoAQ2t_I>OrF+uzKv=-Tz8zH?4!tER4mFv zjko2?=G)6dE`|Cxmy@|zy_gdN14p{Oy-~GVihY_OJk8aK-eCQs>wZezwiLXc={6l3 z0=uWZ9Q?5a$r%QV9%GGUsl<;LKdWIatBlSMuD=YkSupwRN#jxI{KJ=}uCbA>Fh!$O zt%#s?^P=-zY+Sn;>77HnA=5)b^E|e>ZER2SVRCIvXZ@fgz9<|xL+AhfPeGo9*^jLL zPq4Y#?uYYd8R`EwD?O1&v@3tK_(;XfiKi{6Jgr!Bic9l*>`+7vmN$0}d!4rX&aabr zjxx^yXg5fdcr0qf);s?~3{9&m&ZjOj={Myc>s6PI%+Im-%d;RxfR0dYkJ$zvqczSZcvDy;d^>r_*lNe}JWz%t&y2nwKfLv6)9Y;X7UY z>0*ZxzQqrjja2C(g27ey#k&(G^G}$mg|`*57{qS`Y@tl*l`xS_)tbO5mn(ywby|ft z{~jAnuxR#eSS4{fn^Xjr)ZydfPivid8iySu>-kX4*sRs+;0ucelhSbq-=0EGM(FwU zDj5u!Q>K$iW7Kf9Z1~~2)T4`+C9$-5-BN0MdC+u84GOnud}h<<+%!*e zv&24D(U{-tcRc1RE~4Aqc^Pe%ooBBqg1g`a9mm5}35GRV#Gl=14lLb)JnmBadIhD) z5kML@Ix_6p=_BHj%n%D`r^=}Xc!9FANE~(+%>MF^SYh$00ws3N@-aQaPC*{6^Q;0- zV|l-+K-xWQ6C!$6?`WCJukgGS7kYtVdnSBKPR8ts-WgZSudd5W*oGec+ z9(@dg!%TMTZP#!N&X4+}$YFylf--BSI0KUqwN;OK2VP(v4+3TLw28)PQN2M?NbUWD z=9Afce+h?wD6yXeo`rqpFOX0c-QFgAwcBWkH0%%0m13pWsgjpYK^c6+A`jZWm5>mw z87cAtt())Xpx;|YVpuj*|UJ;f6z# zf|n0f;K#@i;W=`LOHS&wfD$YZ)4oe&exsejJ4d0lG1)g{1SOLhq(~2pFL3C6&n~zz zv{tGzKrWa)nuPd?%_*L=j+GXZbU+F#Hn}X&57htp1WJ(h4`J?lzbYe)&%wA(&GA2^ zAh9D$GoyK&n;h9)LS_1l9C0F9wo@dRiBXoZVVG;K))N4;C&fxTPZ@;~I+WTX{+9s? zc&PX_f1XX($E(Zw(#B7hwiGz~mg|ImKHVXKrQ1VEyy-kebF%$M3#qRmf!lFmiF%H8 z)0O@0z7P1#j(dF!SJ+xaXpLoI2WN*hRGN&c85Iu`)4Yn;?0n0bKnFhOiak%`r~@GX zL$>{vPzsAlu1>f>;W7HmYq=`5suc*WQKQWQq(3Brp!_De&TQ`>f?@wPx?$Wa$9gCt zJ}oI0_g|4-%|yCOh`;Kqk7s?ydWSNaOi!ccd(?}RIiA#FZeUs|%R-;nN0$3wjW@W; z%M@kiRgpx||HdS3y0lWNH9>$rqB>93nD7I0DlFcnJADsv&h5-M2JV|?yrSKLZ27BV z^Z<_8`TLSn^y~<`8c-95>`&5#!e3B8jCyxd9j2%I_RaLvM~?-u`DPcREM{RU-@yr7 zY$VulI)DoD-OB(dpv<7uD!y-(i_av-vv5FMNOs7GDmTH?L+VESW&7qHiltDizMI&-Twm&7VV^;PZ*z_3Q8^bua?c0`jn#7_z0g$nXvLx$6~6TlQ#N)T2wx@tMZjS z;U{@G1p4)=8qN9TkLV#Sy^-AZ^1-;obq+?(imJiQh;F0)!w;Dd8HT6Y%%%a-)NW0M z6Mhh47kQI!JU+^ar%J}g7!y7N>x0%F;%pMJq3J_YB^IAf$_N%1Y=6UxJF^Hu>i_l}h z-w^9VftGo=V$&$c3D2H%e@I@*FJX@)#KR$OVG<|&KqZ%^^Kh^QR26Y#Fj={Bnmw$F zO#Gnz6V>3L_)lP?{8R?UX~pTlf9R7kPQS6>UjU`WFaTK9cGSqa)l5ws>@A z0ftk=3fH@r#oFk%)|nkja5K?^2mjo@7L2;d>8Dh;s&#Xlyt1W zzs=BtKXyKlhejcn3^U|?&X!09ruBX$zW(x=O_?q+FoZ;aBfU1n6)Jg8?~b@lIReE$ zdtf5)pk=B?v?@feyS`c!nqi|`|MX>sQf-NK@+ZteonUpC*nt5L|BY>D{)!Y*quYxY)m_)r4Gm`El6(0=cb_NGu9tf%ppI~Lu82ayV4hv+m_`V%KzHDvxOLI7H zR@3#3mZ2yX{fJCuHa&SgH0~=lkccJbY;ip|*t9zdtja>v?eGe;(P~^t=#Mjji)FD; zsr%~ov2bOUc|Ckk6ai7w?Yd)+XJ~ zB-(Z;JLhn<02PO&JX%&T-QhaG!a?n=&TAaPnkai|QK70*zx&r>qZ`5gmPP!1Inxv zwOfoiPX7fr#%RZwbE;b9aWDXsS+#T60woMQJQ$E?NSNuTiL zwEsuQ@D_DE5GZ`2diM3$@;p~2RdLbRKKd&k;W0Mh`W{))d{6~9Tj+D^2mrL*Ggn*y zv0Udj#!TVsFN}(`oWNqZtH1bGyutSAS#_Ymw}D}XjLpf=2KW0_zG2}97y9Q*yeq5q zLH}^mz*LIu7RYIobof-&bNo?(^gsoqt2V8`8A@RUKNOEB{HoYoB$O)>YFq`3%tS!V z;z;o`HBzfnSGf8q6XJ9*o?h`QJsr2Lje4gqG(OkuH!`Q=F36aX%hCK7yN!zWQpD8P!=kdBo`cjIn2z6NS;%B*FE;=x><3zW~KLE4U>A=Ed8GaBdgt z-m?{2P{RRnBeeyiCi3Ry0YLmalsHn!U&HZ*gp$*wj*Auf_0IY0vXcX{LrJu_rK)9N z*XSc#uTOBLHYx0GppJVZp;fr-aeDeVu)#oh(Xa%n$x3gnHlH^f>E!RiM@$8Q26lc% z;?XBTBMl5r&VOTbZQkN{E?8?k{2jdtjzZXM!~``D+%accoHAPt@d;dl1mamxe-I)! z?C+A(4=h?oIUtW}#VCI={Z8vW|KWDs$t0x3OksD9fAHUR2TlqxUOYWLf;P_wg!A+B z6n;CyHpJ`O0?ee|Cl{JT>pxASOU3X|>kYB@ zbfvxYV3SU^a(M247mLIq@kYR3il$a+@5_iUT4Iao)~z?J*A~eU5l0}HgYU;-f6~N( zX1Z1)mlYmXBxCSAmr*X&RxmrIjAZ>&%p*O%%;x-FQbsLD9qrQv4J>jF zPw~i}5dK76{o{nA$Mcu_S~oi?+F<6-sn(p$^)nywCWjBzGUy(Hx4&*PgM)+H^7U-? zl3&)>S^;Fr5z>j&RJ{$hq3TH4>oFwSn?V9zGx>~=h}a>vYpuipafTrHZ#h&aT8*|R z+kwISV)v&@&I^Uh*>EflLQa6)A^DiRx!r>v{iXuP_=OREs}w4W*{CRMf5oV)gurdP z(W|5QA|?$QM%k-}4GIB%)o=ZVU+zMd7=IQMe?GLCXnKpELnQI_S+*W*%cK9@;rR(M zx{#2N22&T|cmDE?9sJw<;lZ%zqeg3KcSAsuR>7tuI8Agm*Ukw&i03@_hQhJ*5nWPv zl8J${c{d0h_=4`RT}55|mf+Jk%D5MV{e@1Rs4 zE~kV0x^6T%>fn9+-^Rnges4pCo+t92AJ2s(S{@I}r7>U^j3gvzTA^k5whRw=zQum+Urkp_lqy!Q`DLj)@YBG+Kq8B%Jq4b2Iy3&U}i<*cW~Qvp zqM5qn_V!OfeLW8uzt)O=6vdwOO*spNMu!(?0amzp+J*IOQ%(kuuvhHh?>ic-9fZ$v5M~Oo2NY!s{S)Yl1OOki^?u0GdpcgWQ$0ZH`{epUb z0TLG$V(5v>L^hvLk6i>7pDJJHom()h4QBusU)q1o`!p!iNW8Q(#E2M*lY+ zf5^ntb^+YpO&adJ-Q<|dG0NrVtBepdJt6F7Zz3G*3*6AKrKZ5-@u3FGb08uzfvd-* zs>2u9ees6VrTiSl*Hd0axe*YCz}v7g$aL;-+QCUiNXR* z@ADj5BYCgi)*!8p%US6vRMjd}MR_Wn@fLb*&1DC!Qv75gteITd68l2`5wKGd0yh~t zEc3D9rvGTrzw7vG(463(Ld*~xl+Cqfi_YO&DhO(I`loW5aIUCJXBxtZGocvzMUd^Op&V#0moselU0% zF;TqQV>V}EkA>-@1XIQ4o+g4@ZUc2Xm>39&?X9+u&i493Nv&CDHGzP~=PE!QDF1FW z7(Fo6iD2;jRT#d#n39|Nn$!hx+VE&7zdXO03m62djNCm)9>EFeFe7o_|)cqxov-*9C(z4f?(XHEhcQje;czgQ|b8nL(fYoY8IeYp&fa(L%z8kD6JTq+{Y>@5l_1Cq5j5i{Lb_n0LAq6 zA%G3vCO5AbivlffmDFAmEGsOGF;P&82AkOw4dwK`$#Jg~4OxDKO$|RV{+YhLQ`!?p zyX~Ka#JMs0(gKn>V-yOqSTGbkGVpX|$}IKLB1Q5NmiX8=?`|RO&i9R0AZc`hHYK%^ z&f?!41zrdiT<&RC&xiZW^DpmR*)G|g3P$2XX>QLo;qt9-xSURVLXSK4R3;+4G>&yD z>j4h&`OCw@@kIqh_Okn7EqBKfc|wqr>isFxu?a7C)hCaor)t+G4%bQ5vihPrfOGK2>f_+ojzDp%{`SQb*E@+xs(IqN5w#Kka0GX<;=ogzw)t9hIqHDz$5*sEsM#E%y{M zs!tY7X4hKphgzDNMNbV3=yXEk`b}QH2^q()y0^Ep)y>9FW6>b|A7z4?1Dt&rk0e%p4vBRiGN zitG4cK0yOgUh^qoTy%%77a1I?y8$}wdVxEq8tK!{pd|m8c_S=|FHN#YsZ?TV@_E5z zRsPd-HuA3h-Z*K@t&C2oYAG@9-HF&03ZA3%dD??tD&K|6?b(_R*272=wGh~)53m3y z&0k-ee}-)4=eyr%YQm6?>|iHGL|uWwiUl6OU894mBL!Ql6t^&cJv%*>H@fpPM(Fui z9M!0rO1q71QC)`gqq<*V>(}M0NL-+y5#+yNNG@YHx@O^gXEAr||AISQITK7t61&8Y z(KD~VW57hw@bklP4tDwSbmI%MM{9h2fj$j!+Cy<+$B>avgX%<-{&$$=;97|V=@uGi zF=7$%pXw)Onnm7oW^Zx#;zmCK5!5Y0jaWy*J)&q9nG=bT-ZBSi*x^~4{6pjH7Y!6Q zE7}Qpu4SEku^F5G-atO8#7aw9CyiqGK!e^w;~->6eIs4=Y%92tvc1Eqfl+q@&WwLvY&ff3WKBgGc9vp*HCUV?oq4 zC=My@`+X*x_s#BVQ4;iYrI~MfKE_?{F%go%PgU4AN{gmlPg4uk6-)O~A(6${=gO3rFTwWRC0deeF%`;BZ*J3SaBO z6lGDGO}F$(q|y~z8%`F9bGQK^URbfrckyA0cBYxs7XF@>uW%#yHX9vtss8yuTYwET zSCmnlzZlD8sHF#KeP(P(H ztPrfv_4gyyE=!d@Z^iVE3E8#yG~;R6-Rw(!LBjF`DoQ9fSOuH2_>4-WDy;`!8k14H zHXvg73@{(=JW6E{XB<$IdDrE;W}ce0o=LSS11Fp}#^U+n8Fz>8Q^Eqtn&tDfay7aj zW<#_Cd$vHQhYm8ZdKP8`UQP%KIpFrLW^{Zy`4nztJAHLSYiC4RT97V9cmN+Zb> zj=M^u83cf>qY^jj4;lka)p+P2mwR!FW9y5VwF5OLMa1g&JG+tcF zI9YaGo*cre7t@D7sx=%r)8TnFy*RqrX3;z@N;(_aR~3|7AL}Zf$-yXJBngR?O|RY3 zPe7*wJosmbMaxrDrGA`Bt8QH zfvg){9@KZILosM-@}b)0-@n6SbALj@PvfT{(`~G!RxHU`#H^@WUB8^l7fB^;5>#|3 zxL&DnL(bJc4G4k9-(H;BF`cSQTP)x15>ko-1W-N12_dIO0}=Q#)->@zlaaw@9)}_ucPK4G=oqG-6}*+M?Jtn%FN7fGIqEa*(k>X}PVlhnX0Hpl$5l z!(UHU$*U%Q>2E)mlZFV{R^{;Iau2TXcs&ELlq~dyw+l^|D=33w9@MPcZqC=ZTeWgY z4Ov2zn>5w58bCfi6B@pQC>e-w*;Swx3l5S4bmT>%yA(;LsqE!?P5%#;0sI~uUmvk| z|C3d!1he!WAD;*1#QmdcT)>hy+_5GZ;FmOc_u%-^P%A%>F%a+pyZta{+z5beHXQ+4 zml>T2ZTMeq*t9h`FfH6>GLpzwk1CV?xT92vWIkJQ-f-PQ0JNO|Yln?eptyRxlAOa% zc?b*TZe=lF!MTXqv653%peVVW&1~|E?Xvkk&$6|eL9)Xxj?D^7ZQqL!0jq-;17O2z z*r>;@e&erxR8djEeD4Ve$x&GYgn0R!JR-oi*+&8ZXa(($#D&|e?;6l9dXu81sRePj zxMs^^>1N+^^Iwq2r30x`s&)Ho;tr=OixDn8!F2dGME8zTtS;PSCygDCW?^xC4g*)3 zt#g}V*qPi78`w3ZCxFRTf}B>9;@PCcaClq}npsbqT%C7bf9SvXuU`+g=*ZK;vc&s*KHD*b4Yu^(HQd)TlqvM@Sk6)=`QQ!^NBo zukuKT(pjO)RI0&kzN^;=cO*ovoh($>x=i?h%a%sG#U+MEpwQ-BkWPpREHyXzkoXwH zynTEo(rB_AO5vlY)9Nr(!i~Dwwg8GD97skKE^CjP_`n%ggTT>rVGSb#1OOYCOxG)w zst&WLoNIpVByFFqhlb@TcD;%F-^vS9xa|&m9G+{BoylQ`B={M=K6FL7P@iHT;C z7MoEK=Etk;?U0JK@{ePV!+)F%3l4US`q4>ZtQxzw&K06@&)d|?P#e-jldwn>-U z3>qQFaRd^nL`^MoaNmL?0UA=x@*<~1X(}4{6Z~Pw?~4s$2HSj1OwukB>F;saAh zqrnzQ>#>^Qis0+fO@D95P6wUqoUKvtMVF%(A>E^ z5zQGa5B$mm>@XEZllCHAKj4&$$s#_p_}~f1wAPe61s*#M(Wc_ncxsiR_Kr@Bpd_ z&+l-Hk^kv}SzrpY3S1N;Cl=7<#QF9`W#uP@XI0`@N@Kbm-wty;Ef7|`5S#B7>Tibx zob-cjBY}+B$Z}|urV?-~a4yC()#;qIK^(3jk7=+3+2G=XeXw*CH#d7G<)X`RC68fP;=s z2Z)HiMN+_-5>=6NDJ5~WdMlI;yLBM#ihqIq^d! znSfUv2MBZ%)#sHmMZjj$oTVc0`FKtHtp8{i9cX$~R((>q72tsY8INGHzd{<=T`Pob zUjlmPb_foojv4jB?bHIC4&ztz*6%b{aO)Lf(Ar^9THhV2XpwytqO>gc&vsNauv$7j z?g#dbZP(JeO(cAy)=WH3TDK%OZ-{apooXkbp_`Kd3ey5aIGXMGt9U?~5t6Qf2@eqeN)(JT1&f#?Q( z=sO=iURX0)16Dilt9!0_Bb8_h9j>V3?bQx>iF|4Lz;zx|@84-`Gngu^_9Asf$C9t* z%A%yUmy>=aimgQQ#nQ0T&nq>&2*e>V%3?hNk_7G$rhl=AkgklRvcF)ugWrDWOa&56 z)hr}}qlu=VZ>=d6)aORtyue2uLZSmrrA2rs@OAJr`CRZmKEcL=7YXD)rO${6eLKFB zg?GB_CWKf;Fsy~}QZi*CT5s%Rw4MBr$>p}3bIkdr4gi#nJ}nr*99r zJHJZ+F>iw%v2->Es!*YQlVmp=Kql6b$5sp>Z+pMA{=*@f;gc6Io2ug!t$TUAL0@cg z!WKQL{HKp1C^wQ^J8z?rT(t<3$38N&9@hc=mvEP-+t&8BzsW?l-g6T!2CIG~osNaf zOaB`Jr9x5n_+}PCt(5&!-{RQU5IR!>1n)F9!Qf99>(K)dXv8MtnG{+@EUT;XK#qUt zcLG0_Q;8IspMc2OP}AZ4S7X+;%~~yFRaF%e<(b};;EU|viEMp3?yMiQWs`=dpJ6e5 z^MoQs2(4Wo41RrY{xF(S#s6=c#O3}NHfQEJ@}!K)`mIiJo^CGagTrq;7~C(C2R7${ z_d7XFl^XTZbz}kyNM9Fce>SsWb305f@-0Jf82b5pZ>==iKqEn`{?$4W6&!_?V_b=K z9l`7|kE7XY|H5|tkHlvOL8sS@KLUUOYi0zd5qh1jZy^`ly0?pQ zC8tVL1oSSy6?-8_W*(;+%Pp9W4vy1Nd@A1XnS9dJU`G3FFV1;f-IS&WSe^3box}NT z&Ow);iyV%_)~IoTsvqTPwr;bndlKg05IuXsWP-E=#!;o~r+lW5km zmUjEQM*16qgTh?=WKT)1v06=0?33y6r`~|U=Dhz-1YG|>7lnP?qGIQ zHn=Ox`;=(=B`UMkp76!4Me-nxJ!Z^R^v-bKrhX3xA9Ljj`KQ7B>ITc6Naq~n4%u*P zaf1Gk>+2J2OZcY`ti|)r;v&J}*Mu&+mvT$q`udg3%0b#Kx{TT#u85Qwc?03$*H!sD z@L9Ezx8fe3Z_A4RDalEax=ZS?0DuCk&r(V2MbyP4dN7PNu`{ z#<+zFP1`gEEJMJyZx0?-o5%odteV_{d5-zN4NtiSbD z4JOu4AH%wGX4%=|W-g{$2{nB>_Uig_sN}n5HlI5RU5uZffa>k@w&>Qbz@Fi7{3jEk z327hRdBa^F9y4Brw3z}CufZt%0F7qrQqnC3G6Y&M9Q{)u<>g?QD&mngo!We{Bo`-| ziigKsEj9Jy&FwGZ-s2q^M!-4-l)-~*Yq;7|gi@;$|3|^P-IDFpx7iZhjSgZ-3iIg49)?=OF@}+7|9-h<2L@a!hn=HmgIkFqe zCKKPL2PATGEq{P`F__$c8Qva42A;Ngx-0BPAAj=N300c6JavKYneCd7E z@(mEqmhkhIr@($2PNldnZuX8ZN1vDKHB1Lnv6^G5(|nnM#N}IVfp^U|m}TFhzw^I1 z;pgasLHqkC%}O*lC{&6NozM5Z-8~-}Y`b+IgUly$@YI_hm9e_YRjU2mwZp0E=+2U@ zN;YcnfV>xGlkq&E8D(+Vf}LlVi#Tc(X&CIQ`d=aYjfaS7e9F~vcJR1dpgwxL-mg|% zRhnHyue@I27+q9pa*x;W$sX?N%T>GOcO?x!c4YWQ+*+~Ot@Y<^>K*-afpixf{ln@P zRUAIMZx}TqC31~uMKaH*0U>bl+&NQ3h_J&4Q28Q!2oh-YLNmrvjG8rsKJIkU_cOAY z@>TYVFLTk_+DTVgsxU+%6U^gjJSr+OjgB~jV3|_gx$e%G1DBQ>BN9 z@jy7kpbzM=`kR#*mkDaapxq1hqEu;%M8Xys{Zhrda|h{)*y2wHfV>L^O-9{6Tn0Z5 zaR8RU>8xF)0pJ7}NB~sc?NI@u8aV)b*glNfGX`K7T~XhtEJFA$K-fnR4Zs`dA~rPa z5s(ZZf}oI01)~hJlcU$DJjKeug8Jr}$Rk7f9?G)*WWD)6)pSa{0wtVIVdbh96|P~j z0Y0wi0=(%aFN?>f5D6sotHEAA>1uFDw5| z`)!nh_psRKXp*t0EZXCrgKnx0l|>wYCkcBusejUU+FCvSpK4_+ zJ(+FBL6_(Z#0Zv)w;yVM^hX>D6+|L*dOSJxk(EKUX0ApL3lpwhM|!sd2z{W;iuZ>yIqO~9@BS%2)2u_Y&KWv{_uYDzr6bjoI_Wz6qETv+ zOp})%3);qo;Pmyy^D;zo*i+LN4pS>tCEE3|OY}815D~`;Lm~we3(9b?wzmGd)XXG$ z7I;sXlQM@IwAyU5As)0^p;mv0Vs92w`ScZHvld}Y^M^H$x!Zejx`a_IklLbVpO30zAzh=3j~#Tjb>6wlFYB9oVzB!4_lzA)VWt2QJ-q0STW)X=xD#+o`> zLE98{+ctrIq^w$%(TWLTgPooOP~c_5hNq%-sqX2!Lm!T9C=9CT%&itS#HUizlAp3s zkLmM;zn#w6T@HCGmL3OnJboFgJAYA7Q8HE}dlltD&MOZ`Y*vKVm&iDcm1jHyQz;Bj zk?aM86GL{cjtG;Mr|03X7(++DYb2E({3l~)T+E?b3&oQX<(jR-WJf2TNM|NCX5BV} z`6&^3U5EG`Pu5X;xcwO|4-i&+$VvC`E24k|?& z`o^=mgQ2SLiZiXXPmH8bUT;K?A~z~h8SJ0V>iMxj;_fp!i3 zi|~!lHIK{`IL?ZkcQ0vcFM^F&^}}s6Wv+>TiVq;-Jov1V!yafy|$OeYS~M4BWC()^FLRPjpA<@#=&U!8GpnnH}84TEt{jIiHDUsLyg zqOjZA`f!FcYWzA|YjZ=s;Oj`q%MouW%_j;p6JuRcRKI3cLT_x!7!@h!Gn9RV!U2VvI)60tWGAn-8_f z{N;HY?+>{1pR0rtiZ+Jm)4lhil&k@I0*I3UdJ>f}KN{w<{5?rYpPAyHSpcj5k`;*# z<-ol}!aE9jH8f9!(t$lxU0w&uS}5{-T@D9TihS#M9YR5w%sxMh zWbvnL1#+3;By-xmw6bFPXnFX(l816!GXe9#Upfrdy%+^ZH`Nu26~YmHc?rH!+gXp- z2T9KylQ`J41g1{=DE81Ozv!dXWH-qw)zl(IpkdFq1q>^(e^Ouy2bnYNSyi2hw>IIF zM&a{$GnHQApzfuW6H}vR5cj>LUZX1mp{- zg)o3i2tn30IIu0qB>a>Z;Nr4Wwvge!%7qA>M-lCQ-tG6s`XDUMGM{>D~fk z`9WtaGhBL&{>}OQi77$`pKtrZj@W4l*z0ly`G+|s4Jys(T!qQpOPa*3Ib*^PnroSN zG245)^Cw7`?8XC?#vEK7^RNqD?ykp0H= z|4<2!UOh7ZBbAW<1?)dl3AO(xDq;Mu8FI~~7CiXCD|gC7ui?o;YIz)X=g&LKO;WZK z8SrZ6kH^Qm$@F|k#gbvgD#W8SfK4%NBLDMF$4jKnGEx1d@>|1m)Qbz1`BjUFtv8~A zF7FpR5LrBePbO44kfqnI$J+(;YQl>@Wm-HKz8w^2mIP7SJ^X2UstNH`;%SdWr5YwY zzT12^OfI>EF&Y^T3b};Nt)qiXAVu%wVDIp`6IW?YRI4B5Y(F4#cQ)5+gZY<;7@4IJ zt?Byygj!{#Y9VVFKWoMxleoH!O7qIRaGN|R<1=)e&fBS)*3Yj~Y_4GSGVFkcJ~-MQM2zCHWODgxzt^`;> zy{D^(%s&fI0~d&AF_XF;c;HDICO2J+8n4q1!xG+Ga3#VUEVj)iwbczj{+{NCl4#0N|sraYI8 z4;`L&NbEMNiXBteD`*rdZ`3$E_L2wasN?|P7#I;-{dDksXoN<6L?VNZcDcz0_6JuN zaJYvA`ukM;uUxxRs{ldj8yn;GMvLvM1ajBMYa>O&2{$GXDF7fEr;9PMhIw^kxOUwa z@Vs(g{Fh27q@b5fR4DTu>dV_G+6Hhs#zKeeHjs62?4y?dol+T(KI_AFc}$O=qFR zTlMj^Sg2Y`4CxFzH4Dghi{GkLY|ZNcgyo%m!FPTboSqGxQoFa3-DLjjVv1L zvKy(s`-?4Ttye_P)FWlOI{+rqnF27ax__lvP>{0#$SC?L| z1b<%0HD~|Otw$u6Nky}5Z0pVRg;W*z7jfBK@czoE=SKr3>H_kbE>`__e!hL3(ie&) zlfu$$_57s6Zb{^B(Pg@ki~EJiZS&s*y5aKQb02J-q{1aqU_!iDJgwG>k|NOoXiS66 zCgDJ<-9@28zCU5Y}k@QjOg-#apzO{vl< zH0q_L`6|?Fu}H;HLSk&J*qq<>wwcM105BsQjXL~W7}EA?>y2^w!Tvrtef0>3-FCst zr-?Y?&!%|g63uk3&-b)w^y>Zq@R#F$XMTBK8bq7Xl;<7b?uvsKeRnb+kcrW?=ZjF2N995VeJb1ITlrahD~F=L56q^nRJH0Xuwj)Lv3vKm|2redpF;+m19^Gji+o1;&ZjBpX%{>^yzBU2yIYa- z|3C$-ZvKBr1&ml1`+r9TtajEU^A0@xT>4i^#WI`ME7)Wr`>#BO5il8?unqluzUHwz zA(L^I>T+u|?-GL-G&4$eDZm>x|9=%`WWs2*jdup(_;C00?gb<$jHcm*=$e-&$RA+ znTMXLpL3aKn2|9#U(IGq-4@%MTs26hQL|NkA(-l%-Zq}d{P;wyQYowyiOmPzY`r!e zpSS}=DxsE?zfkP{B?9)kY&8E&QDe$CsXl+WD!v#i2)$fybU@eca3##p(cF;tdlV3^a6tU_o%y@o1|6spsbAn|+m4bLvXF(+%0W zk82D(J}*U2nTUHuFdD~UEu^|5#1cMeBU_1)Gr$_Qs%xoz;Zj&CC*pE?6Z<7FxN!G> zAp$;GCer>+I$d)*o|Ria2@>XWMPuHAkn9!!7G_F1t_;X^hb9Fc-hN)}dct7FqK>Ly zDefgK3P^4QW%GoPMx=zdwiIFTZku?bcqmP3X4RF{98B<(ob5!3DUgK=g@oqT#lOWg zQVT@j%svyly!0bJA~-~qAwpwn3>;hLehumm80uuOz5D=!!+;^+m(l-~pK_9Dz@xU9 zw({+KxfNTb+SK)2O7XQXB*y+h!YG@|O}rVjVjjG(Yf$7^tV*XD1QwgEd$%;9UvTkz zjgO9K0jID<8fJ=tt(6G&ud9NWBrYnE0H!g`N&PvO4VT#57<|5-%q52_Nf@IgM!!P> z-2{2Nt`|4C99F+nKnI|MDWU99BLKK41%eAycJx62xNt-S zfMc!QR$xniCa|qW!OlVNpBtpfzB8-9k*5p|0DucWaQy)Zlz zob`}B>J+g7bgNPhGyp(}Celr+EmtcC_h+-|UVW@*)Zb;WTt=c$qQz0deD!obTk`As z2`5^JaE;IH%@Y0Q1TkZRVSad295#Gl)I~+SxBmKiEM``os;N?ijT{>BUs-)9TawwD z8C_|Omq13}UWVvevS!cMPjLhSpd<`e+dmrJL_|E%Q~K?7qPUwczKL9Ek|95wLYjKB zH@&)8#W5Oy|4Qe?&Ilyo<`l9@9Y3H;jq-fF7GL9xzgp_D3YiVU=DjwdR6p8JM*1DJ zY3!+2GsI7)Ri{a%Uqbm|h8Hdf3LWf@LhR+LDmGaDKNI?{JJsFKEcky2FqNuvdCeIj zoxW^G&|j`p|JaI|vrtS5r!;T~@2iu&ih;QciCON4NM!Le1e}N+P%Y|=$Eb9`i|M;4 zMa(T#saCU!w#=Qpp;wNyz?~^|m9m{%gYk;2X{LF5@KLQ+5BtH`B zuDshDbo%t4DScFIx~0TXP?-D%s0QL9^5+YERXgQ%I$@o((FrNzrAZ=jrV1&w`9CFy z#aD=*7VZ+v#tMo1B+G^k6N{y@qqBP29gWlgakHEp&YRIP%