From f303541a019c8212d52af5cb97e41dc9b1512ad1 Mon Sep 17 00:00:00 2001 From: Darkstack <1835601+darkstack@users.noreply.github.com> Date: Thu, 4 Oct 2018 20:53:36 +0200 Subject: [PATCH] Update Challonge --- .../LaDOSE.DiscordBot/Command/Result.cs | 15 +++--- .../Service/ChallongeService.cs | 46 +++++++++++++----- .../Library/ChallongeCSharpDriver.dll | Bin 43520 -> 44032 bytes 3 files changed, 43 insertions(+), 18 deletions(-) diff --git a/LaDOSE.DiscordBot/LaDOSE.DiscordBot/LaDOSE.DiscordBot/Command/Result.cs b/LaDOSE.DiscordBot/LaDOSE.DiscordBot/LaDOSE.DiscordBot/Command/Result.cs index 9e775c8..cd12cf4 100644 --- a/LaDOSE.DiscordBot/LaDOSE.DiscordBot/LaDOSE.DiscordBot/Command/Result.cs +++ b/LaDOSE.DiscordBot/LaDOSE.DiscordBot/LaDOSE.DiscordBot/Command/Result.cs @@ -14,18 +14,21 @@ namespace LaDOSE.DiscordBot.Command this.dep = d; } - [Command("result")] - public async Task ResultAsync(CommandContext ctx) + + [RequireRolesAttribute("Staff")] + [Command("update")] + public async Task UpdateAsync(CommandContext ctx) { - await ctx.RespondAsync("Resultat"); - + var tournament = await dep.ChallongeService.GetLastTournament(); + await ctx.RespondAsync($"Mise à jour effectuée"); + } [Command("last")] public async Task LastAsync(CommandContext ctx) { - var tournament = await dep.ChallongeService.GetLastTournament(); - await ctx.RespondAsync($"Dernier tournois: {tournament}"); + var lastTournamentMessage = dep.ChallongeService.GetLastTournamentMessage(); + await ctx.RespondAsync(lastTournamentMessage); } } diff --git a/LaDOSE.DiscordBot/LaDOSE.DiscordBot/LaDOSE.DiscordBot/Service/ChallongeService.cs b/LaDOSE.DiscordBot/LaDOSE.DiscordBot/LaDOSE.DiscordBot/Service/ChallongeService.cs index 867fd22..a74dd27 100644 --- a/LaDOSE.DiscordBot/LaDOSE.DiscordBot/LaDOSE.DiscordBot/Service/ChallongeService.cs +++ b/LaDOSE.DiscordBot/LaDOSE.DiscordBot/LaDOSE.DiscordBot/Service/ChallongeService.cs @@ -13,34 +13,56 @@ namespace LaDOSE.DiscordBot.Service { public class ChallongeService { + private ChallongeConfig Config; public string ApiKey { get; set; } + public ChallongeHTTPClientAPICaller ApiCaller { get; set; } + + public string DernierTournois { get; set; } + public ChallongeService(string apiKey) { this.ApiKey = apiKey; - + this.Config = new ChallongeConfig(this.ApiKey); + this.ApiCaller = new ChallongeHTTPClientAPICaller(Config); + DernierTournois = "Aucun tournois."; } - public async Task GetLastTournament() + + public async Task GetLastTournament() { - ChallongeConfig config = new ChallongeConfig(this.ApiKey); - var caller = new ChallongeHTTPClientAPICaller(config); - var tournaments = new Tournaments(caller); + try + { + + List tournamentResultList = await new TournamentsQuery() { state = TournamentState.Ended } - .call(caller); - List tournamentList = new List(); - foreach (TournamentResult result in tournamentResultList) + .call(this.ApiCaller); + + + var lastDate = tournamentResultList.Max(e => e.completed_at); + var lastRankingDate = new DateTime(lastDate.Year, lastDate.Month, lastDate.Day); + var lastTournament = tournamentResultList.Where(e => e.completed_at > lastRankingDate).ToList(); + string returnValue = "Les derniers tournois : \n"; + foreach (var tournamentResult in lastTournament) { - tournamentList.Add(new TournamentObject(result, caller)); + returnValue += $"{tournamentResult.name} : \n"; } - var startedTournament = tournamentList.Last(); - - return startedTournament.ToString(); + DernierTournois = returnValue; + return true; + } + catch + { + return false; + } + } + public string GetLastTournamentMessage() + { + return DernierTournois; } } } \ No newline at end of file diff --git a/LaDOSE.DiscordBot/Library/ChallongeCSharpDriver.dll b/LaDOSE.DiscordBot/Library/ChallongeCSharpDriver.dll index ef3338863b289f1577579e68e8c3918e28c20b53..ad6a5f363936a8910f5bb3d86c27346d6d54b0ac 100644 GIT binary patch delta 19658 zcmZp;!qjksX+nom<@@Ru1}J#IprpXfXu!a*gn@y94IRCns=T zsXxiUz*Z~Ez`&x#z#weE#Nf!lz`)PIASlGZR67N10CVkRFs%^=GISD{Em}JfY$%8a zF_Z^lC`dpff`Nfc%ZsTRWNiLn1_n0f{78@x$b3r%1_lAB`7;<8G+BfgG@?KTPlp;j z4Qw!o2QiozV(|3IcerG9=71Gx#DX-;2D3$LXMr_QDCLj%3uI zyn@?7H5ifv8Dx6-7#J8;#fok-G88OQ6=$keWME*)FK1w2>(QUg$7A5FVG43CJUoP; z?p*-3k-2sun1(oeKA0_9I}hv%5D(%CeuyjPPhP?L5fXzgOK1`rRT zK>(s*$>a|_GCC{4iZqfz8diYWqP5Gx8bCaV20@616_YJ^Wpvhq6=|e_G^_)&MQhiB zHGp^!4MGqN>ozy=Dlyhq8-XHSiHW%u%#dT!5CVBxj;Y!hCIM#1F;$zu1i*|ih)O1A zjaCK*HYOI0b_NDEt)k)t1_n0OB2y-Y0w#?%1_rkLb09(*B$-zf2^MYv2QdQ!V^MK9 z6GMSUCdfuax)Xzj^H#72m}|FyX^kw9r#6GxqP3gAo&xb8o)U(53M8PB!@$5bxsqSG zUXH2S9Oh;)qX_QiK8TwqfGAdtNg&t#f;zn)?8aW0t5u6Of(7~+7}zw_5uz`_q7z{P zT2e)v%nSuu@YEvCP!GvIyTMLouH6NuHF81T*a>Ef*6sj%1H^-PLj>Xtkbp)$C{*N_ zsx4q%05h!MUYG%Lv=rFUT2auDoem3GjRFP+e=dY;B%on>0BkXH?S3!~Db)6X*`l?3 z!Hxm(AdV4*I0hu3AqxuAmjcRWa!l3MFb9Dd2nWprIfy~nfSF+>0|SF31A`#gaa>Fq z^Cue$YS$|=GZYkcGcpw9gHnUG30o0Zq?rLGq68JuWrm3eKt-xyYM3+@GBB|53NdRG zGca)J$g>sMGlNnZRP>*i0t16|ehC8u7uXUuEm)eH%fJQ7*Puif%RE_-U$|Zh8YIWS z-e;~o3Z^wmLGg10%oeRZ3=R?y4-zC|kRSmGXp}?a#|9Q0V1^u1wJl5l%s}Lm6`;h% zqOl4TOj5;@%Z2z=LHPkx^k^)HMcg7)iK2XFP=O@Lq_Gk#I(fB_tmPT7i zuyG49YE*y{j~rXkY;fY)Jvm=QTzoGB0~?PJlSUO(4wN{VH1UpCiGhKI zskokjflK4aReovr9B$eYzplO@Gec%W=hRhKzgPE3MR03u)XesY$WlAt~) zL40RsC}7T41V_^3xnc_Xuyk4ta$9~fSb~9p5tLYeLlY}RDiJI-`Hh%N{bO)QFxNf; z(;6+H(0K@Ei`G5>hYpAb2_0!j=zs)3l?E3mJ-NYx2h2dEr}LonB*#?k4wDBnt#>iaSBR4QF6rVPMk{VrQxbF`24CjadyYP@|enCk!IU&QuL*>S}O;Ook{Z07c&H z$$b(M^&oSZ1X*e$KuMwo)Z!IlVbV}yV9>q`YDqIygCvAmm})@uKT%Bv25BZyRW5J~ zS%^hrG6Mq_FFPm13aIrwpk#ipSeO;w{!wQD6*uA#RiG&K2Mb6tRda$Iyhv55D0;H3 zw3Hdh6FS@wcjvn^FmT-wW@D272eyp~>^eaK}`xMXhbQ7nUmiPUCU<*7`1p#BmUQ#GiI#m%M@ z$W#sLWHEs{uPjW}pbl2?WCjK{b`4ulcAYl)fvUI(NDC8ZZ9CY{pq`cxGn0lc1B3Rx zIHqclC@)hDi25gL0?R**leN|4*g5HB@+Vx|%{gNRnCOBrIJsGyG>@ zV9)}mYfwjxi>VsahvR0`2`D}UDpe$kPl0mxK9C!$r9g%7K~M|wGy?;dFpCh2#u)|% zE?q|^F;y;bM-P|HyT%o`bi)c1}K^E~NzO7jiLGgSw8~Y&xz?)u7H}@piZiHFkkR5u}WX zvvva5HK1N3C=~Ufp$HP?WvT&DNTJv>* z4Af24xXr-8RlFMP2WbWd7L9e2G{sFo8kjh1r-Hoz>Y{?YU;y<3NR*eU21NZ6wT6Y| z#L3>8a&lmeH6R^=EE*5sUVsWuZr4<>07)`yJVLm0H3I{KF4&!*t}GW*^$Z3E7H&2j z2X=6Wn7tb0uKcr;?`w*ifK)JX*3JYw4AkcZIm{5`ut=tAkSH%x4T$gp zQZ`_XH6R^=EE>;24ig5II0#{l7ho5`0=A$I9{-u4afjN7L9iTASZ(>3#j;HO>Mb)kSw#t2e8W-KykjE zfq_9E9G0N|H5XGgs0+@`rW4AJ=(96bgZkse7eG})2RPytKoQ>!%3gOE7`Q-9ySoVg zfDB^ds9gm152(K`#Kfdw4DwHa2U9gjn1`tbL?I;xkRBl>jr$A?Tx$2kc|qO*2{F}x z^m8JGKU8!wpN=f!{K+~xQtF^?J{MCpXasdjS4TV@q?U=Zb{W`d zppgMkP@9097Rpo&66Iy80a5=%?O~|_q(z8X;|s`Th_D8UGSz@g5MrYsz^$QfPcHndZ zG73~`tpd9qG)w_1wM;>-FJr0(iGoTj5dBZo5$b%V+U1j%>zc}e_11v&2(oJYhr1Ul zJo%TdtT0HDS%Z<0flEuTn1PXjtzq?KEj=A|&>#mFQ#EM(13i2}K47l~Cx&H{YxTsV zKx&ydYd3&h2pSgwg|8XNg*8moAW>eX8W4qWAb1Q#h*{$g0|Qsx8U_XyRb6qly44H} zEdSUT85!7$Sr{3(R2$Yzey1lE3^u+7WUe5K20J6HHG~l6(BJ^MAC@QQtb*rBkS1mg zPLQk|Q}sqzdv@dGcymz|V{irl4SaAhRfEPxxY=~vn5sdeBkUSops3O4oIF8arXHk( ziL-Va*nglA5s?3^K>mwhss@SjGSz^nf1<9?2mlYK2r+B$GBR-GvoJES!LuvatQwFZ zf-D+*aL*uwIW+h|&V_lVq={j&ydj4KNC&fq07y!Xsd_uiC)+_jnVew2Ru3Ba;9{x< z4URzk0U91**O&_S#}rWNvSwh=&KG24-~#pbg%}yQbRi`XNGB6#?H;iAc7i$-%uE_K zQ15|6d6{ZJ)IU*onD;kfFkp zrHnNtK$6TF%Ai1&W2!y@bNmT#dMPkw0}W8Ka4}VbhCv`f4H^hx*H{a7>KagbaR8+k z6=-@?+*v+6(7Lc2rKyD6Zss@SjGSz@6q*Mdaf}UzXVoWt4{V1shDhx_B z5+F%Ls<{jc_{*SxSFr@U7c}s~#Z(O%n}N6&G&;ksu@mgx9g`DGW$Hmnm^f>1fZYok zkpa2a1?1icrfQHVFH;SO`X}lS3uBNLA!ZFtP#DXA!x$RGAPJ@#kRd2p5+Tf?AqGk( z=tT}l2Q;6`F;(A$`Q+wgX*211&~OYFQ#EMB29nZ2V>av>2f%*V4@y3+pyZ>)2yKUJ zgVGPA9S+h8$^rMlo&$~OfO3EvA_ssZKsf+J{}T;_c@U&eh($w}k%6mt@>VlxM#ae& z&Gh9!!b~+FV+7eXjNzF9Dm+=vTvGxh$*f@t@}wM7^?jI6?oW<4mzDz!op3Q#gGN^% zu>l%iVFz^_*w{5rO`c&clLb=3#98|U>|oHC3Me)_ps@iGcS79|J=I3j>34XfT6AFnH#NLD@aj(}jV7At0E6p=I()3w1+75RZX@;R&b< z#mK<01w=D2FxW6MFz_-kF#Kd-V6cWxExIurS0h5eiQVvWugUN0#kgO_S94{M#sW6DN z-~^G2z$Wiy;1c9wc*!6nz{lVuQq9N5pwCfV&&S3P1D2KqE8WEbvYv@iNI;0;8rOe* zK87=3rH@3a`NS9m7)_Yj7&;kEn2Q;n^Mjm~$_uhUmX}MAjbRBx94{BcTt1Kqv-v?} z6C+4=1_y{-z!S&I$B-oGCCJBcmH|ZG<@OS+mtv>`OCMnXDar=3*E4{u`2sfDhcS*< zjzLh=pHGP)fuoxb6j+;?KqMmr2nsN4;QYg93T87h2r#ho|KYP_U}RuoXk-*%P!t65 zm>75&Kyqq45FQ_xC(ieW&$OO_l|c;5{Q_3X${^0b$jHF(isKJoEdv{aJec>Ja}$3p z11E^bAiyw{a}&QM122fj$iSe&1(M@uPyw6L$`6tg0r40a81%sUL>Sb-as^;HNd`5B zg$xV~CwR(u85rs%88pFjiC;L&cug53LHz^<0S0dl2+sg4x0o5iGX!hA0@f(WUFs~HM(_$z9 z^V-2YU50WnuS2w6z>>k3p}qxds5oQ200V<5Ll0PT4p`EZp%={C1m;;VOb7F_z&uNa zxnN#5m}kSV9Lzfb=Gif<2lLK?dG-uj!Mt)X&w*h#nCAiJIWZir2XpU=1`Am-xG|gq z^GtZ|^I0;uGh77oH2ClH@i2HYTw`En6kw=lU|@)3@M5?N=51gE@q!rcgLxOhyhw(J zU|u&^Wdg%vFprH1q%woyDVR3{ESJyloS`0MC}>SWBttpFOR!`*ShAMkHJJAnY-l6H zTQDyk%^b19Ls2 z0D~QvyO`lOSTYyPTh8#8fmu<2!GM{8!IEJ$!+)?`KUi)p0}~@Ng8;*2VUXNL1{Ow; zCmg`mZ(?8v%e?~2ZD-&F%l!h&?O@;m^Nhi!>}B9%WM-%rU|0!OdWb;)ED2G1m_Zn9 z48)2P45DB;h!rOpB)~j~G3OYhz$zgYUS^O1%Qb+lxWXV0mfHii;U@0g+BZ zAaXAA4=y$~4d$r~VGZYb|8Rvh>;aP#!KAOyA1+3Q<7^Dvj0_?C2$DgBg`1HfQj~+6 zkwKE{3l}2;g9tBN4TH$!JbOJx-^p|BP5CFX%W*R@Tw|Haz{tSBp*;Dvy)vW5dL7BR3fhznIRurY}6f>Z`Eo?&5R@L>4J!pKm~sK<&>AHdDVzyMQU zk3|CxrFd16>xg<>u0}Y5RHH%aPjD76qMGc%fE)%OHSa{0GBVaPcrX;RAuJ2$W@DJl zQO3Z=P{jF%i;W?W7sO@|jOPXgW-?N+=YWH;0xVvGB;Lu*#_*2`6g3Qj5Lskh6S>(K z_ArTo_0HsGWT^LGn2V%&DO|#XVHJ}2CM5A)Na7In`?=W|v_wF$j%wOru&(`JC!R*q zbqOI}&v1*|jG>$98Mhb%FT-mjMPCt$7;bShGOTCkMUwr)%?8d3prpjY0}2~X9!7>U z?1D&Ygm@5Yq`_(wcn~2CN`@i)^$cKZG{MrRxfvOf*jSK^&_go93arMS2cJ`Xz-j_9 ztby1P1(pTb0(U4V{cqtzc4<6VQ3{4{a*>=;1y)nfgYMiOBsHK?!GmE6PXK5s8bh1J zCw>72Mutc@Z!QlLLxuvVK4NHNkY--Y!_061BFVtbyn%<6K|&GKN@`<}XWqcW&QJj7 zE#~25I05CUFmK@DW>8Rqs8nHI%)`r23g$I3aPjWu;b)iu<(Y{b;1OWB0p%^^Ji#Nx zpsNh74;vZc`L6SbG88C-jG4xe%lv>xf?+F|*T$hFbd*_=VK0m zS&HEsl=q$E4UZJVKPZob^COQG1G@^y%r=hwg5PC|L$4Ft3qAScr*Nj=>wuYvW)M65y3*2!`_J3)V5pGbBTJ5})`P8RQwtAUuYd z%(A@l3|(;EA09=9C1Bn$h6y}JnUxrHRKe>D8yOfGlqb)1b*}%!ugj~-Pz4fZn8q-H z$Cy{0VI!Caav~#x2E$G;ZyLi)9!p*gh7V9)4UZ+SCWE>f*r#A;Xn~jv3=GG3?YZoE z5j+h>7bM;c6kc>aKeA*RGLJQ%*Oym|K_A5ma}=IE3J+pG3D&bt;;ausxQ+Eb=S?PU zh$#%mSTAx$@WOe#Z5&6L;XGD$kwk}+GG5LwP^#E=Q*J>vugw=qKvlm`lKV}^bxFPh(l*O*}ulm`m!dSiyIP%bFej2RAq zd7!x8$ZO2tpaHU?k>LdYPF_=nUNG+&<0Q@?UNeRTP#!4M%o$!ld7w};XV3-p4;Y>? zf}+rz!2ryIBtdhAJTUJWCn!YC>lv!ST#$t)c+DBQz&waj3x>mB-ZM^6kXkUD2J=8F z&+%F?JOT3{Dy{nTx-(Qlc~LB^4DJj~^-yji%V9^Lt(|hBZ*$2j(BVUJP5Iy#LJadA%9-LV0{FKX|lv!$b%V z?CfxcnGhbwOQyq&;S39*ykAVL4B-r`puBgY{Cp7%n?SsJhBl5LqN02e47)*GaFr>; z7s+rD%xh%WD5%00&F~J&`_FTfIhuh-7nI(fF{<%u@?7@23tLl>)OC!k;32#<$=N?g~1QPtC#r1&&rU> z5DVr)3{7K5f$~6xrZLojc_2gM_|h0of_V@_(-|&8c_2g68E!#&Y+M<984Qo0JW;M9 zz6^%fP~K6d_q>@5pP{_^>r6j*Ga3FsxM0U*G4SYv+zoL|Hp4+E59F9^h6i9C$T78i z*$ld%u?_}^V{#Zwp*)adav1EOyrWEq8FLxjpuFo$tPHsf{t%wTr+R)}-aLj>Fc)HB z0YeUy2ePn$VFj26vQU$+fZ;2c2eGh_;V+a2vapbW4K$bsPC={;MGT@~9>mOI1{o+1 zWM(mg1(*jivp$Zmn4uNSg&11G&ywoE)qD#SH-{y<*gMs&sW7D1m*1zc+XqS zAO+=}68OPeU(KKl<=zo^&s)Qw4duNP_`zGlU;^PueB!^!SIZCp=0TiR$53Jdvape% zo98}X9m5PL59H8#h8JKS$e~a9>KRN;K`J4cvVp-C$^&J}hI$4!2p8M}Y-9+9@Hq5D zk1{tg#6o$Nq5=#}3~5lF3(p6>W`;a4uaU!_XD&}OLj{-z3JU>-7KTG`-dDa>hU;M7 zGe%Gq*T(P=$^%t#9SrrapUreGHMC#?S%ff#jw$%mLTV5V`3LYoI)k+zf_2 zP6&t2U^wFhuKysun90xruE-%8XEIEI@<1AAF_eJD&7r=S#n1xff#ha0tZ_vcI-6k+ zln0WV!!Q9fY7W&mhhYJf2a=o1FvT5Q|3NIA%do^9Vhl)f9zzajzYbL6Jcb%54P+GAw3L1M`|0#26U(7c*FZc@R^UFzEOqOj*KU1?IJJh>5WA zFJ*9o^3+65@GfQW2Jz~_>)gG^}B+>1I&Y%vVuVbG)M^z!xaoFP#!2ORx-Q+^Xegizmnk>nA^tjnn!|v z6$4WM$oe*puRJ&TRxxlxcwj45Gl+nB5Gz(Q7zBb;LQGlBU|mp4FABqHja8wkZxpP3jtZ*#sM;BBLhE#2R3FCg9Mld zF=i8kNhnAq#J`&uoWMLtsBLEOg7QG2wwWOq!ULPKg&_vagP5{~0kols0TeOy9Ma%9 zCq@Qm4h9C$C?ALv;RS6~6BnWen~}j+1Yz0e? zGq8go4u#0Nh=PoRu=@o;>i>v>NQel8v|t3OS-}Vr_vHeSMVxT5o?$kaqlIK;2tP=A zG6zT-NGUTzAZTG8Xy}Q7k>MW`NR|QYCy2^DU=fHpAaT&BDo8Ix7Gg5U$4p=!Gcq8v z>ybIcupxe;8d;AK$jC;6{K~`t2~vn}ASALH2pd;uL1aPZfQPXe7#ScUFtQ#Ln7E`t z;!F&;!NH4cF-RQMI7|_U1<1M}A`lW1O|v-}KvOx$ia`EAb)zjfK?Q@uiI@l?M$KJt zUIUT!j0_-(HsnvRqao%){EfkOfm)A4nt&`+*W}oU)%Bo}FhK@TZ$gp*#8zbZ#LvZG z$N(CGv;>omVA2yz27<{*FqsG@8yP)pu!DtUJ@fXd2~V3AC)nnEz!h5Z zcmtOB0v7rL7Wo1e0V(Zf{=@K>yN>Y>gR`(I6AL4VT?ihQz$#V1DpkNLkAS1#2tz$6wvK>ef=P!F6cIX%pa3@kYcK(8Fac|@ zVFb;g*)W3A@Jz5~8%EH)nGGXoCe4NsG?O-yp_cgqiwom&{)a3+j2D^f7;P9qvuZYs zpqaN2#$C(|tUip1!m3O$U^OX>7wf@_K$C7MV2Kb$EVh7pug7BUPO@?UZc(xv}zo&r1riIaip}3x{1*~lf*!PW$zlA#4=71F~ z0V`Sp_V*I7>=Ll=mw)Ej2W-tAu*y3SYryLFfYt8- ztA7Gk`39^~5FG1oz$yj7kt@iUEzHOu2##FFddB7a%h)BsO3#1|m1Im5W@I=6HuMbG z&@*5|zkm(>16Fwjtnv@o&?{h-SHLQ-fK~os0EG$*6DS$-FoBZc9k6;HCQ#B7VFD$2 z5vEXH8;&~+^`HcG2dw!HShFD`pV&O6CtwXSOrSEWlhH;vkE4_Emq4Z!0MlX z)vJK5(E(fY2CPd5Y|R_6$~Rz@Z@?-|z$$IPD!+hL+At;73#&4H0W19iR{903)CH{6 z2dtC_9DqJxLq(WCrCtaVC`MzLK-pD<2^6C-OrT850}fsuaNgko2X6}4oE)$@Ibah? zz#=tZks78%;d)i37O+qcSV#qISr1t05peRE0=8@p*s>$wQx zgEqq>emw?b1_=Q@25Sam0X+t11_uE>25$ym0X>Fbuy{0sgn%PMHp4}(1cqdW2!TW} zyMZB@VS+#-nBC04&2W)x0YfswNr8o6kpm3L3=Dz~7?K$*1sNEV8S(`a7?T;6vk5L> zOlEk!**kF}qpGIEK`@ztM|6Q8NaX=A`2b8Z2!TWtz@!71JRp?J5F+{j z%w`Y<$u*fXM?Q$qdg$AAs2mqF`w-=>R4Vh$b^= zh&=$a8N@)cieR!qESVu!Yyp^k08BmvlMdp^3|qw##6c<>z~lljc>qi*NF+1-5Ob86 ztdlC^|3Ctyh(QuWGJ?qklF1CV;s?O&2Vhb`3MA_QCKJG9BA9FdlZw(H*#pwe3>Uc` zPM(+=Uw=Rz#7Fi0Fw*AA`ieMgAzzw0ZcY1fmAL4vk!nt z1!a&(0+?)22B};CCK*&f;tDDt5eG22KnN^!0L*y+CLJbMr){m*W>99(Wl&)-U{GZ+ zWKd%;VNho3}V(?&aX7FZkVen;e zW$jOPcDSzr<>jU+pn17vivfFC~tLkNEuNHdZwre0+AO)Mab%faLoK9D(I zn4|d_7=&2rL6klVi1Y%J5Ty{!@;o4=$RdGY|2cz=NaqB}J{L;iXJGip1hU|dXcj*M z14M5TX8}J014KPU7D7sLmGUz%+-3sV_>ak^9?Su0hDbxmB2JLFFIOi&1H(pv$@~lq z=LA3+K7mPy1-7Cf>w|gb@G~%Ii7e!2U|1=#jGuwwC(jx*5rjAs10Mr310w@J12Y2? zg8&07!)CS2EJpc8hEN7Zh9-tk1}26UhHwT(hE|4f1}26!hDZiRhW5$pvt)%QGQ=~0 zhD+lam>8ym7aY!*d_POpe<4FU10%yChI9rdhUE;I42%pb7%~}{7*;Z5GcYo&V#sD- zVpz|R%fQI6fgzWHiD4^4J_94eHimo#CWhS%g$#@gdl(8Cm>BjlfcEF?o9vw}TYsFP zl7W%o1VbeQ6T>-%Y6eDz^9#!d!C23f{V1||kY#%=~i z1|`OB1||kI#$EHJQWEp%I9GK)8{1`l#WEuPzyqG|1Sc8~k83GtWCd=pU7v97V+JnplT1E#Nd}G+f zwQ%ysTwz--K@gXP0a>ORyx5q90kq5*B+J0Ci)%UPyeI}#G4siedBU3I93VB^AOeaH zbNNF}KsL2|a&6x9dSyp|muE8Z$`V1g30VW$@#ejIjJS7De;LVlmC~CPWG*M%I1<- zk{Xh^S-;YROEEpQBpz82Lou4b=A>pV=FPorCQO@8cW5&SutXmhJ8ts8wVUJJTf3^> z>zg^cZ5c)9aw#x~3Ngf<$%P1;X%EZUVs=&l3Bf+J>$S5k*uy*o~ z9zVvdo85aom>IWjo-pAplk!$ZIgr#=Mmdm46Pe@~V^0|P_CK?a6| z#gqFMiLvn>VqoB1GI`Y^B?0ff{0kKF;=MLCiQm1+x~paKoka_bpn_6HP(hGUE{~RP zzQCMu`}Ty{J7Pe`8-QYvfq|h6#8#N7D8`g=X!5be9-9?bWH4^#Tk?yUsl#Zq;EMN* H6Ajn_EvPOi delta 19510 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