From cdfb31afa758001bb00601ee9d6e17f7bc3722be Mon Sep 17 00:00:00 2001 From: Enes Doner Date: Wed, 8 May 2024 13:43:45 +0300 Subject: [PATCH] Update article --- .../images/abp-fluentvalidation.png | Bin 14879 -> 0 bytes .../images/adding-incorrect-data.png | Bin 0 -> 79035 bytes .../post.md | 44 +++++++++++++----- 3 files changed, 32 insertions(+), 12 deletions(-) delete mode 100644 docs/en/Community-Articles/2024-05-07-using-fluent-validation-with-abp/images/abp-fluentvalidation.png create mode 100644 docs/en/Community-Articles/2024-05-07-using-fluent-validation-with-abp/images/adding-incorrect-data.png diff --git a/docs/en/Community-Articles/2024-05-07-using-fluent-validation-with-abp/images/abp-fluentvalidation.png b/docs/en/Community-Articles/2024-05-07-using-fluent-validation-with-abp/images/abp-fluentvalidation.png deleted file mode 100644 index 1ab2917875fefb57ff9340541a476008eda80177..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14879 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 diff --git a/docs/en/Community-Articles/2024-05-07-using-fluent-validation-with-abp/images/adding-incorrect-data.png b/docs/en/Community-Articles/2024-05-07-using-fluent-validation-with-abp/images/adding-incorrect-data.png new file mode 100644 index 0000000000000000000000000000000000000000..13eac0b273a53dd9662ebf9963d2025b6dd9603f GIT binary patch literal 79035 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

W;|0?X0E;vp?mXM> z-@d3nzw+rCQ3w`s-o!Q#rm)@MFRQ9jO^IG~Td;HbXlc0>NNkvu+TgN{4@=XZ8y)?D zV>fXs$y!re3!tDgpc~QB#A3?PvGmGN(fp@aSli1`DAa{!*OJ={;GBtr?+52HzhVh_ z9K8~`+NQ~|QL4u)EW85PB;e<*+x_l|&F#VkVf`?KTpY6jF*$3svbu|JfUcA%H_fhZ ze$O4Vj2pjJR}KEs-QA5~>tZ)7cXx7fl6vzX1MVwIRjN#j|0cHR=g$ym=I}rf3q(&F zNSnSnBWGruta9S}audtN#Yw-8Iqo997K7WvNuM{5AHbU9qvLvdq?#NML*A>Q^cevD7+tRt zgD?A)0ZIXLUsf#Kq;=#s=O){Z70b-e$jHb<$qagm2VIb|2aGWHFgDk?_+}!EU+#ymZ9STG@Whsm+92_p`!#L zWoa3FCuv-xUYR4($}EEIi}6$jz`&Gp$3}<8f|X~)kf)JC2U#`%7d}bZwspy*r>EcU zDlaXKpU!(6C=vQDCoeBAD@&{>rU7Q(L?~FDwv>`Hg715Odvog=VJ(AP;3~i@lnp{5MP3e~M zCM%4qm`CbtX>xYO40Z`4`f}wQ8~MMaoxZU!GhBjbz-^MAQ!NWQGMC8cs#P|P_q>T& z-;4JU96Zh0dK9#PYw0ro4B5D{GgZRpu#^{Q(Cqg1htC7!wXmL8Cb#Is+3_}(`=96X zUj8NZ+9ENODe z#L4ODu!S=%{_&-c3#K^Ux`Xyapg_OcMmx)(E(=k~6j@X+ARn8ybfual6O3QAUO(dS zAe7v}=2}}Ov+9n%SkywQWRfV({Ope`rh5pr8Ps^mzBS~S*0u6u5X)={G|Raa_6ho* znJ}(SeSRQ=YtwJW$(WA~c)oyGnQ#bLVV27FrVu|CR69|>WE(jJl%=fG zd^(YuuMwvh+t$zm`8Dhb{kP{phvke~@r35JxSm87vf?|njw_vkRM&qW8J25NmKGPs zV1X9!e6cz{-|MQnOW^l~l4@yVldv0ieEwL}CB+VKipO8)YzzDWs*)BFmq<&3{U%nn zNy6NxDT2_w;9O^_+e!IrOhX*yJFx%hI=Vj(%v2X-U!6au2Wf^n4a55QVu7#KmfR_%zl{>iT?HvdPJ!4(k?y_7 zHIqsp4U?Y!C)qyH-hfmmIjuW=`@1enF^nia&55Qjl*2sLZ>dCx?Z>WZzokSL6)0s_ zLmFu<_jLRw8D=ucb>&{+?pHZmFEC z_1=)2jmt!Qd!=_n^Z%1keGZ@^_!7XblD-@VSdcX>e8?(2FsK=*f{*yz0|d4dUD9n+FI=8BYO7=EY;t2qrU%!I6Fj?Og#6UeyH7AS)WYlVP5#i{}vfYd_}R3fOJxhTg-8GEqgNh9;}as z!!;@ELOVM<5xDNclu;w_uy?P=EV=7UzKC^fIQ82UY-w)Q#YL0roSj2o^v2dzuB)3x zi^egXs0+yxZ5!i(GzsU09{dulaR*``+KPbp{qh;KrM8|IS;JrTa#$+F{FjtBgz2Be zngEJL<_X7o`^ls}BP%P^^UaEe!=XZvc2&Eofq5!l!7mk#=E2Fw|CQHt5WTAJeP`)p zke7Kq<$>067_N}eyBH;j=*h`>El?jsZl54TqW{FIyZ)Cd($(gkAM0n?X-;2P-JKbYgXE3Nt8RiO|fZ_hgS=(VF+efV2920LCoV55OJdrxBIf2mfo zsdOax=ZkyB3-W-C*rimtXH2$1$9oz(;!BUqoUb3&O^`U>d==dLy3#`hJ;c@%+>xPU3~;J({%uQzg$Vp#qf>S6xMmgv!Mfgwj|<*+v%t$Y&@2Q;f4R zHV`l%YpfQYzkT)^CB7nf4|6n2-@i19mjeid;v0g&D)QcA;c^A-AG)P=+AM*Afe1E( z0M+IcAnSXV!NUro$-G87z^;~}T5i{HkvNe|wTuwf`UzR1D>T9JJBcD)^EFmv=FM8- zmefQSy1u1+{bIpyZ3KP9ZU4OZTX@Qd@Ca8v#RU|kLei`&*r{eo?a!Y-TUuI*i;DrGSyz{U z&NtVU+})nk7+w>m0t#J#a7$a&>emNvBcjkp{c6MuamB70s>a@j3x~ITSAGFFR9Al; z(AUhFsK3q2Uce}?+C9FkRiPqCfQff_iCa1`_Y0@+S1mlmL8OQS#U>!*U1r7#-wSvD z)~cGV<+d9Fc%F1ox-hkTpGDkFN$Imd|*(~ z>MfT1J&{^?)W4eDQ~PYjTj! zYh4zYbVV(-N$pu*?+a-+z27T_FM+Z=AXV(UVrdJH+(EXSowfUHPaR%g&tc5Jz>N@C zK3(y@{<|#dgfaoLnCO14!sQEeJ8G832fP`oL0lWu~b2eAY|?(Z(Rp97Bzc4YT|<(S}QZo7j)Cb9&`WFL!n2N8`qLO!T*S3w@K zs6ni|xD{Z@P%KXt9!Fl1-BlR@8^23I{!H4m{kX^59^3#2w;@kU(pv|AQh%t8U)j39P6lMJfmqjjJM(R->*YtSYF|dcC|?1)Zfw4*AitBLqWWd;-tzWi z`*h8{&4z|ohf)5!`@?5EK<0#>@bUgnR&ZVWhQ)H$;C`-JaF4#7fp6w@^|D=YNgjqS zL1<4IY>%0lwPEd3Nkh*bc6j)0FVas5%bn6{I9$_z-M9U?V1|-!%hd%ELyn9sRDKpA z;Ezmq5Uz43?qX*dY*{H=Kwt1JPtSo7L&;%ZU;QEIFH|yk{H@dfBBQ?l^ruE~JIinn`(&YP5hzHex@kuj7s?9M*Y zElLuFcL<3E+{jpF45&FYk7?qhPg7XS{Tig4SP&G3xuGf^WBw>ODsy(Nfa<>Uj> z%uoKv==QnVT-~xf*5xhFE2^8bmqyNer?@vNv}CEy8T5wy$Vf1H0nv56L@+WYeFF&X zRP*w+pn2pZ(Z;}KU3{qhZf@qyh*r6)5B$`>)j7ixfam~vBf-P7M+ZWl4GkRy>cb-& z=c3N%Rm0YP6E=~I8ja`C!R^Iysw7g@_JKxYT>~uJ56Lpk$YT}Qhdv1_wVsKCT}re~ zc%PcTm+&0>+H2hN2g4!6(TuN(jvTS=MDlROL%h88>{LrAq@~B^MJ{!L*EQ<)N z8`%&(Xh08Ks;!Q$h!tyVQveu@yL4*o>^to5hlChB=%Sl2eduJr(S89hS5Nbi_L{xv zIBYo@h^I~Oam4OgoSs*J3oK8QhS8U~p4T2&TU!0JD=xJ@q)a-x!0gqBmn}8i{LPR^ z)zIBo9Jh+zWuXtXPM{t~n^K*HNgi<;`sNGW|5()XI|-?o_?bKVoGn*iR5WJ$CA3u)C(yG_dJQVq#f^7&j2Q;8s>dcAyry%*rVKX z^t~6ZWev%W-NJU^734B_SA;Q3TNTa`*_iaw*Oo;IUp60ennHvK5i+_a5f!N#Z*`uX zzH7YJXU`f&j?g)x>)g4s-MruCTkBz-!aQjWHxWp3LG@oP;_ri-ui&kL_de5^l57Ij zcO;-3eA(Xaf$lt0%GZ3&=TGUVFw3$jk;>!TSD&)cVgJ!@=}SUSs&7EK{{Gfh?I87L zK~pioqjP=h!<@4kG3orXjTjXmV#@N8#4%hjADf@iSJJdKAQvcb!E9A3QAvC;Ki`B3 zR!b*W{rXD3Z7e_BEa@nOvDiG?(spQDQ)+X0IzBQ3FzJg-4YtiyzBtB()RCuxt!Y{n6n;J>hk{bXbFv!mw<;-48sjF9D*l%s)S`uc^=QHbow@HPW6B@2USyM5Wp|DN!D_d&K=bQpE@OU}(C zUXi{2=tTklPxDdlw-`$E{t?-S=^rQhITI#$LPpnvq@r*{qy|E4+a!frDW%;`Q`WK^ z-b+IJmp(pfkGrclMW7`6*Nf{5|G&y#EHt<1Oirw?>SXYb)q(jOQY!-q{A6Zt={&ure)T3EA&fj~Z+3pzc$j>L3iAtdzL<#<5+{ud1qJ z9zR3z^02|FEXp26SRI$oL@0U{nCS35Hb@=g?L@OAwtyg;VTO@nd3UHkw{uvl;1&L8>C6zsd{a(guE?Z5wQYJ*PhE%gRnV6@C$_oi1&>N zynJ{Tj@tQNB(~M=e=<2pTqXd^fQ%TT{!pZ($CX`}Htso}RKp7xFmJWBQ3UDFI zP?Trg*>H8@0u}17_mbaXI!kv2;Bfk%FD6GW{f45muZ88`%O2$J19_)F0CyPKwkgOW zx(N_D)w#v`g@oXZi-3V*nk@q?=y>hXxzGM1WuNQl^4mfGTT6FS7%qB);LxYbCSKri z5esty&ESGf}5V@C7PX z(i93GF{n#X%)BZAr#)vbTtM~WwnpJ_)tyNndZwm1yvsMaJrZ&7J}hrtLFDg7`K&!k zbO;G8y$7nRmPkD-MJ|@jSa*%hj${ZCJbu3=hUMZi{1plkNHl*S(MuaJ)c%r6L<%9p zNHgif(G>1=7vtCzUlukAHM{+}tBW-5?fA)tr)o_n%og4xY$qb=qRNotQl>;FQ06}S z{IN8B3tFoT>4J#*Lm(Ro4d*Y0#&m1dkvw*_9n~0ZeT1#_*TVmD^y=s2Rcg%EpFrDto+sgDjgJidLo+^%J%zRkd zzFgLKreD#}zcN=EXRdf?c=)WA&O&4HkYsP4B(#8LhS1wy$dIw#C=$m=)L&czCB<_+W7E{+>>-uz&x4uzLcjHb-xt8L~u6UsX=`tZl8HZ$;By?MK^J zqHoDY)IJBfR3GGCO0g?|9cU++;-_pEE#G!;(HDy`NMI4gQp3{!VxOR2o;A71c-6^p zOM!!vBQVW2!;()z&t)r~AN(q5wGsY}dRh!5MgRyeg)z zk5Nn)RfXNoNdBjDvxiVI8TLfO98{zNf2Km#hotw9SO-6Uky{;m}1GToPw1b^bN+)PGJePv4$-n?;oMvvpu8y&u3*F08o%X=BDTsI{QR#DitbFoxV^kLR^lFEKb zTsrE&3R`*&T`}te!SrWPHLE6%vB;ILWLZmo$}pjcd3VYLAX%K**sA`YVTqaTIqz&k zvvZm}++JwICO?>`oF{)qHmHWhP4moh5~~m&{49wLOB-B?W)nIt>Q@)s7;kE_iU^zv zoZ>N;^Td#d?UEzchpB75hB#?j%8{KZj zh-eNqMV9UoImT-piH;S+St2(Uj=M5%efm_@fH3Oa8ep9aJ=4hlh44nu_ByuUMbK{< z8RETZL4P+%oyx1ps7yi-zQ1(RvEcn~muB@vW9(MDRq4rl%SonEi-QDi7s^zfOM?c@ zk~*?yUyf?D&#S0E+ylLofX7!ywZFn8&TOCb{7tDoPF#d&MotYACh_b*EIM#edDtZC z@1tk0J;@?U`Oh?kpZ^eKrv2D1jdF)xMqm&!E9pf)MyUnT9AV_h;!p(u@c?5Q$E$0w|A8$xQGHUlOBRM;N{NLU$Ob#J zw*Hqb&Rd+@^J>RPf!<@0u1Gjr&Fy+1R#dxBBg9g_jQHUfrK-HI&=+0o#Tr}vKkQ`~ zOR?`xkU1uw$VFy0lzQq8ZeSeg?;v0EPSgwy;QQimj&ftLH1(SX%QLo|k(g8DQ`1h38_*#CJiOdkwy5dP5Jo1iXpe z_KgFAyU_x?1CHl~`T3bN&M$Mcs3a@RD)#Po;%~dHk~B)lrJfW%nB$S1I~8m}yHp|e zkI9q#niXmwIQ~*X$FsW)h4|op{b{!qIM#nrgscx`izPS7mTm+vC1|#- zu7{NDcCe1m%iwUw8pw5z_eE8HLX|t0Vwjj8Gr6#^IVh1n?XQ~uJgg|np=p{~Pa7d; z&O_P*Yx@?b<2+7W5ml(_fv>8P1}4NtM)1dyD?_%($fN$O4%9>d1tLK5G(6${hKQZ5 zi_<33_v1*CQ)(BH-UimsIZfId`My65kj-nqk=d_`aa~+XbAftu`4j3EHi4=x0`XAn ziHp!OEhU5fJyN%e*K@UXn=xZD`b&)Q^OnpkB@QAkHM*XCz%dd&tJ}NmY(n40albeu zUGr*sCSB%Hy17f7=D4g2CXkrdNd{H4#;b=u?@yMD;BMixQ~ z!Y!=cQcbd2ZP;9XdmAtw_EO&BoIZ}?l7n)d=j}s%H5$zWCJiZPnWZ$&Jz954diQ4jjX{q7IB zW{2hyfz%Q1u}Uq&0}2B9>0Eb;pBd2!bIZ5a%rxVr*m|w-zOjKxGipJfv(>;Sj4d`l zo8XaNsR#xFXe6XeQEp{^`_%b2+9t8Qz?*T=dBM>fAMALFDEe6Rvx-v0F-x}%jU~I> zF$MST8h?BfK8>;w+IU1j)qFm{tW;$A%VRjSr&IkqHgv`tb)BTgQjDZ%Z=W zs9H}yxHgr5Zbysc-8f={ivONBpC_36SU9?8`t`GllvQok*CenUPGJ9HEP{L#Pr5Yk z`X{^yKR6jcIE7YBetzsC48l~Y45ha$V<+eUcJrp%mt@vZ9IsI=Yv`dC6 z$+7&YeBzDlX=mV&zK2fHf~4D6qWsryoLrml`?p#18+MrbL~7r4MVFoaDN~0zA$V1@ zUT26qi8q1!$8|-23Mt_cQ0KyBnpLAqo1>g2aO?yNotu92u)zB)Vlt(yNv~x4qoPkD zerRo6eULb(d=-z0?-V`ZE2mi2ml_rrI_r-oiS5pRyt{baa8+>e`%x~AXcSOtDo0URc9%M z=c&}+(U&E?6ECHuqnE(9cB2pB{MHi`fS}MmQV#d-YLOe3zJZpVLvhN~3x{$!lM^}!@lb5$3qT??tB6R5XTS+4+HB`Z* z941eGdusgjQ9*XUNL(6;l9m86;znP>!Bs%(RUthgBy}MpN@zO6Yb5xt60)Rr2um{( z7sxClnAYGb%wUBPRgTeQX4+$cU^LanBo?L6!T9ZH!?@4#9!0Z?D71t=NbB-cRkhjr zca_rZLPM9zm0`pwg;g;aIjA%S{FJARwtmLJKRbZ0%IJrF76HLEn?JLxd74D*aqact~+NCnkwn zSP^aLJ2f2zTWzbXDk-MGNlA@pXYx5;Y}cr zVhUDxk2syLb&u!vJiTmwPA=&P&eb0s9v}}*hm0h#G?7zL4itsSlFR1CoraqU-zSLK z2EQd|ZOVxR>CJAswn3(N9~s1^%h=cN4TiVv?n*|s9qtZBwPAov7t`u2WDodK9!7e& zdjho^r#y=+`|!T_j!X|jIieeN6=9lBuJxFast?L?;3O<^(c3roAlr{DH=l3anJW4_ zK!r>mr?xC^HSz7*blv=F+79^DxFSb;DSCxY$^TB`Ew`0@dJ|x3fj{(#4yoFd)UGSH zq|p|XCD_Tv7FeITKF?jI(DAqOG0oh~6fwE*ceWKs zFoEkQJ#eI3C8nPqd_}HBpNwttX6YBF2cY^m!AVz6Y8XBA+$M5 zWd44N`pT;ld-SUl`uZ_oKB+oI$L-tM)ZBM?Q?IGnm7`|CsBgB`bC_%m`8g|Wm|;uM zoIdeLU7ovZ)I0HW$`|uETq3Mb3TLbZY2%biZq*jVr!OWeri;5w)y?4=IwuCLA{7Kh zJh4ioP!Qc;MPaE&jf6BUZ+?DL7{{iiCN6_R=unulxDIJsC7v`@6}Z$CD3caaFT?3d zm8UEw&Aoncu_75UG3oYm5|yp0F^gngoTU5f2vseHjdBr$?r`w9acxK&29m3CL5Z}e zwcGHB?~vigILh+P-QW#T^RKKhY>GIocE@e{m!-eUC01*8Ix+`tx#Y%Fa2k$S!<8jn zg|Q4K(}n8U=eGxK^r)6SdXKoBjIDg-3yZO@+fFx2hp>@nX1 z=@PNga`n+Hpdb)&+GnY%eDZLIoH8F(wV0DwY|L9ac*u3Ts5)&XJfsb-Zqyu!B7Q|# zDf?}R#(7CAE@-X5LO-0C8Oq7RU@zY#93m8y980NGpKo0&l1-aS-jrIcUF6F;cRgZ@ zQL3u;!%6XXKejbpiltLsyjaH>*T3^R`7b3RYCOd&Q+{wX;Bv)oeC{e0kf{<-`l`6% z6?QnxHystyB`PLHkjz8*np;bWIn$}kJgLSOZoh1%B8G7a|2D=~Q@x=qGXg5@P9#@C@=1!c#?ik-btz(-;N0 zMKQ@>jBjDiUE;ia`h!)XKc|pX&@K?u3EwH@tTc}8C2L6DWxk;?OS(`F;~hd8_Y9{0`elnD!0+jWRaCc~@*%^8Z&i&XN*iLSfWoc^rM9T0k0L;v9N1Pj&u z!$=|Lj;3AS7Egg1b@`&eE>{n^SV7#9n&1tD3mFLOwu4Z<2<1&4dXGxf>TTZzo5mSJ z!VUAJB4H;SdV-_jBxVwNywUpMg@HYoBoG!xJPI2W=crI7DSIhPh2PG!yMkgzYgdB`v&Uz^g~ z=a+TONdhsO#k9~wF7|2B>Zc}yExm{vt5t^%JWgSwV@jgl1d10b&+jDN7Gn23lCD4T zIDjy)yNJ^pbrs%>llC=)Ho&2AX`zEWJdMqMa$gE>GPIx1R16_1G4+Rve^s%ifFN+% z4UKLi*@IKSgbJ3(p6L@}!$(y$+6Iz!;%c69TSD{LqKB0?(=rU$0;J2|3ILA)cnH$8 zNQjFLd4U=ToV{Z0I%e7uL92yt()YE;QM zl(v^F?PkqslPiqg%hC8X5kIA%Na}yfl9P&9|51@mT|8VEaJjoJmbV4v$-BFWGm`{% zSTri*Hhz&orlIInp1N(P?$wRjVw*ML`A2@v=`}APAf0$6(FK}g+)D9$Ju1q#o&jVyZzj8nvQ75TfFd|RklNpS}Q{iA_RlVLmlf~f&> zg~zoTF!?nOQR$YUSO|SJJf^g;pa%?cDv?YA%c>)BJ(_VaXLgc{s+A{>QhEkkwhftrd%CaTuF+ou_g0JO_6yb#iT{yR6q`J$kJ@gpR+iOfEo7kUVi5wM35T7|J zCBuKPl94vEj8p%#QWJz#FHnfgqS{#N6V)_m0R6h(MLJt}V@G1`Gpx^PV=RC;L$)7w zgIN+f?6%Grc5|jE^7kHf8)wMCnT%1~SH|$oT@nWG3hR-7MayyT#i=)k1=ppir&h=)8IEl>G|9-mN4O9FD`ijK0bfT+7WCvhZ= zK*%GC{!^v(=M#*Z5Ct9`fK^BDOUPZf#J$CPaC#9_do9xyc776k zt-Y6libXuz+m$*38Cqj1vUIT}V=5n~iBCirQGs=un7k)9Xu@>_mJ@M+)R&JXB<~;M zqQkd|PhaWQr#9siac$ZwZ0g&C#YX!}mn{)CfT_i5ReNRext}C|Hn^3EMiwBn5Qe_* zD2i!oK=m7n49yz#xOgK01B{XK@BhZ1VUL(~_p10!wHqo#1Y%mDy6Soe(K(kzVc}q~ zQ>Zb0)8o{;((h8`Q?2B>-<>zb1n%A@l~qVttGccsQ-efWgU@d2DyoM|<0FXvsvLW_X01lPJ< z`pO_QS0|U?3)$;G&DK=1H|?EI#x3{Pe}}xKO-+JoE@SBOnE>=E+7jGQ?X}r+dr%#S zROsSmxGA!jMD0((v`zQ;&v$v(GU&J? z31EAts%Kw~oaQX;JL~nAY$x|OnXjfV<{>C4S85v-TeVrL_&b!9iEc62l*N9-I4fDY z@pGCn6N*K#NyA$P!0iJ)7KJG*6`ZU52*2t zzFmW;jvp?$9;yZBk!F97MFlF0igb(2#OmdyN2!i6($%)$+1%-4>e!M#5`PyegBA}U zJG3w2&YBv{p`~Ow0mG;WVye95$(D0a%M{0K6%K+V56G!oahz3TG59`^4%c6yVMWfj zon-FC6!gK&@XFxdt$HivEli{tTavz@^N=I9(p2)n#Le%16O?7wdVt^2an|SN&i2Xk z?BZUFeC^gp(evscC%X`P`}iu7pK28G`l5YdW_AaVY|)R_M8bpdRSl@@fDm( zQ?LA>xEt6B-d+>)%Jtz@z1zCTV)%;vzKN;V!{ika*vW+)6!>poAuQsqH>In$NDK*IKQn&q!!d2?WN)5i`y+BNC80^uDh)hRAxdX}Z8OY`c>t~=w8b_k`HXh!L|DNUYh3x#28 zW=(0fGrzzvA2i0~V-sAN<>re9Li6i2=?aRdR3BPJwB+^mi19?J!tkzTq)q|`1iv$t z1vT^tS*S@HaNX8WmA5SjK7jiZfs}cg47jGJ&;2o;eslU2sHj>@Lu|)5J{%ofubb; zDTcXRbjYf65(B$evO$2vnOW){#ChMt$BNy*&#MAW zz8>G7Ei)7A)c`^W9=fYN?76%sbxMi|&b)L4UX_UJm}L-RN&cntGRB#cq6*7^kV_jQ z$V~rnH(cZ{zd=drn#V(x0CfIPBK%H-kAaiauXUxO>BlcN>iCk$6d1;M_MxSvHeLs{ z9qct`9gf!-)3fXlDX_e~%s@sA(7Z1zzoAr49Z47kSLFN5n!XFia$>-K_m{IJuSP@B zYqRiE?PP4d&q@Z1b=(w&*ASId4VRwfl@{*-l9Mu~Mcu<|mkKO4!6)eA>0bdJWkF0- z>%Mde>@6)35AdWQ<@KxZCLVDIxi*K0^I0=$lAq$T92*Zi-(wBh#F$c4{M1XyyN<4@ zv;9aO6|8chEB40GeR%$kj>Y>z>_owoZ*J79UufrOeAR_9-qy^(cx>;T%SOI_>0?m1 zb~P{B?qzzRi!v z%k$!%F3LIxW2>i7+pp*3G+%3a)iktaj+YQ})v59UurRT3-tS{y zfj{mDywYUycobK;4lkor(sMA9ZcG0lb-^j*&QVsh?C^u6 z^{s`%i%~EvM$z_m+*!W6Z1fTZ{p}oGPGo^E!?`h4#`7*z95OIOB^`nIPet+)dKiU` zAn(zX3jNUZ&wFl^saDtn>%FABdg+ULz&tWeC+5_cVgBk52y>zF)+|>^pHCLR6*;0Z zfS?@NV;DK()F*0;p7uo4h!l|R@O49Eth9;-5nIv(wSg%&oj}jG@Ji8 zC%V}hET2G_twWY9aPhPr1j@FHz}_EBvxTvyTUIx`yyBAkmX5MuDyh;*y%WYyt}tOd z`}f&5amISc;`BOfwdB_4iX%$^^o3^cbo9G=u^o$Hj?#efv%@o5ky~rg5S8Rcw2$Zp z`vVNqHqOZL2Pnr%p*BO4W1h~d2sNf^-@2Lr_39tYq?X^3DmUiuKU9d1U3+Qf{q0_C zKbd-zOTExe0+cE0hkJmB`XY_VTI=ilF7`IVTBmV28pAGnAdz12&3KNx+hXv{fe z+QTysFUh`fsvi}&r8+@~h-j~^Fc`*7e=Ma+l?q!y$95cC&qhCFwD`OE?+UMYJJ{e5 z_r`FK5DvatI^KTinmLz)H^PTbH9}o^q;-j;pM{_NM+9_5tR7(r`uEurn1J#>94s z=FMdyBdZ;usuIwv4Mf1e^}RS-ay|+8J7O9$>MMTzK6RyBCE;N=8-i7-v?^bDP#4Wq zGcl=?&O3&S)Na2LVh;v$7b}JloD4uiSYTZEi|eEh^ac1h+5PFt-1;`W!%xVXsZKxQ zX0@RRzQJvNUufkLAEWLxwWg1q=Nz9Pu!AmQ40965|C|6QFLhC{SAlSFab|{znD4@7 zHy}IyW_nU`q|1_UfLu3NOW)4L@7_}-Y_ecY!)}bcEWGVAqt=}AeARe8%wYLf6{zCm zH-{Mr9(O{=3KGDDD_(!_(A&nP>lDj~8W%-^=!h3t-QM%!p+Avy=^V9u@B!AFa%ot{ z*#fr$RlHK6YWl{^(?s|OIN*i1VV@Q0+lH|xX`9XJIP$b-q$ZNBT&Q+O4-kv~wh9(_ zA=Lo6VpW7k{sS}zXy&q_Ez!c9>^@s@t8f%60M7K>T@rU~N5%cSSMtIDSD zM8L2gIa~f@u@ROCqz3(Io9_pi)B@6xhBSExhmLvP^oCNh8%m%;l#p>ER7rp~BHr31 zu5zYa`ySH2fzW_Dd&x*CA=?B};=F4}WNDwCGKy!u^&RsFS-phVSvRS`sat`r2zO-u zme4@>6vBJ@C1ebdGhYAnIYvPQEiQKV?fMAwk6c2Ck`M91=)V8@QK61OdGjNzBl(3X zJp=XYzecDC(Op#(NQC(mVRQ>80%`sDpA(X+;Q0tJC(T|GL}s9}{;w1MeGZU@pnHj| zH~Q)1{X5i=_uX4$dY2W@XE+5kQ7 z{~VnoV$&@^AKy885%=yx&=malhnaE6564y^yUf1WoHgk-#t|E_IQd~>$l`R-QX>Wb zARXYDzO#7nrW_6RVi&%^wDon_jTQy1FW5E#Olui|-;%I!X4Dd@@d%<>xE|m8NsL)` z)v@+j%s@b2GTA@^|Us z-yN#N$-{Pv4VRt>AVRR^`mZ!=x0VI>fX?zhSqHFC=`+Qg5y{I*DVk4Xv88LO!_686 z2zUMd{*qUUq?*vcJbM1!fG%M%whg?aK?^YFgFg#KaARLAEQdQ_u|}YDs4uz#x49FG zGdfm`-P$I;#^+uRdti~?aQ-ia1jx~9zpu9z&Z_+I-0p<8xSBO3(e|*M!S4n>(|P{s z_WsC9zGz041?_pK-0N9aas%LbW-0>vAkDHU-phOY58b;^c(o32<|$JwLV!raP1({H zVY5NdfRca1xvSa%4|ee9v#-xlcJlCC*ca->^J3JkPoG4OKQSPKc3uIQ(|(CVqPl9z z?=ONASeL9iu42W=L~&36Zu|4oa>o4w01h#sLL)?Q8JzktwaEysnXH}wB%aLjnJ*** zaDuZP(7nU(!@$A?f(vM$tcUk##fZf3MEa(!a*^wDSi`v`lUNRYbQ9x&^pq=>BOr~U zw2(p%139?oKCmZ7^5KcFd)4dmu2HX@DPGU)=B}~0Q(*uD!h#qk0^Qli2(!lW)sG<& zp-7L5N@E%84twUEGRKE)Q9gj(`NaREYognA`m_DxUD#)rZr@V%)uS z&yC>C>kRkk_dmaF2BYiTPI>{^ntWG^9LT6|GfRt~QJ(Ks@$W9YQk$I9GM+-P?HU1T z152ITCzS67Be#Mp|2KAn!(ApRu{?Tto@~ME?_?-=GViT&1_I7Dzq^0pj^b|GKcp+_-|f~ zVAU3Jtk%Ve*-!DV!zG?OZ61I^;tEFBp!Wug&JY09f`+93)K(^h^@qO7sayHy7<3dR z;$3*`s59gg7u%JWSn~jD{pd5m%`c^)yc>qndA`^S1;p8BaV)3Jx^fHvZnM(`Lfa{8 zZ_!}LUiY2xXxih;C{(L(k@2?Gl|2C&fq9F3wmWMc_S?=xr{Vbg)4U9}t!}@ISD)Xt z24z?uq@GBHH<9sQ`CHo~z<-F~%;2-59MxZ%RPAL5YpLVEpGweabe!Z|%RG2^qSs-< zvbQg~q4wL$s=TS*q2qVhC-Q*HI)+#9`J$zyCM{f;7!Rnk>jtOuxrtNe{`P$hp#k!+ zke9jt$GBQGz;t}@l_0NcvSL!B(<+Wma>BQsC*T2QwK@-wsL{`1u>X%n6@f`y4Es1zc zkMXX_{TpWWtPgg7RPIAVVGRUQ>k#^cj5)#)zIF+MAos_T6xCJ06*`!PKL)0Hkiw! z@KIeQg9(aIh5O!7F+T17sXhH}1bxMJG?-k6?|DoGv`(2@q=i}t4=lNP};MGI#HD11XlnQ81$Pj$JKr_zRtd6Q90^EKdaXSR?5ie^SM^R= z)uoS8HBE&|`>@~vaQ{s{(3X_U{&hI!q;|DhmM%UzooftH zt<3J#Bxku}xAK>kQj`|cILNp*Lk4WZkJx3A&;L%e)9sRzH(9LB7AaNUN|F|N#9^zViyoKAxNZ{JC>lt%HQ0|=vn(zfB?dFjmd@4nC|jXedr;Q)8Wd-GuFl~#(8hbmC8O?P}!|GaHuexkrlE3G5 z*k7ksv8Gar`NDD6Pw#aOHjtE<~tK72S8oa<7q=amD>*!aYg-LWHvz=v~J zoBHkAx&gVhY{f3mWdQ*TA*40VR7H*FCo7npU?L+T)Nnr+eYzToY-DNAwsgPj%!~fg z$^Ezq&BTil=*%yvQ71P)fS@m4fCnM#spL`fE8R50LwJS{r6T8TPHlvv`VTX*8CS-e z)lD>V=!d8yf} z69+W|?tflV5XcYTTqM<(8<+>ugrk?N`4oyoGiW87^wCQ5UKZ!B%@jlyzMN~s>2!^Nb?`CYazMEUMP){hrSg`d78{V|n*+}N7S7Z;Vv)vj2s zc<;xoIjcFc(~LT;2r^dxQ2WqrDhiH96!}$cJD>rs%(iLs^~$yHUFv&lj7L~Nl`p`U zX`lZD+d6Aj-zYT-*ik>UUZ+`=KO02y+}(TK`}?e&Mz$Q!f=nfitCQPrD*0QkH`g+F z+_pP`99^%6$m0{9XIcEaWfUk!>c2j52aU-QoCeH4F_z79DDL~fI3&R-vuSXEdbYqJ zGefkL~9UQ#cn2cSz-+;$wY2FlH?XqC9{n?|+F_#G^D zIjrUzo5kOA(PL(pTdXuP^K&jtyGUqjOp%l!yzmF+YJgOdInp2Vam5&w%Gq=kYIY6( z+@QISZ2E3HfZ^Fx#AIa13a!c1j}i|SrUU!fHM4m;_yf39v6Vsni#s)U_@e&7##-YP zzjYOlca%0eh}8{fY>U}m;Bh~m=`q=Hk#o{5ukz+97miWE>S_T3C>8sEJTX;izv!#tJsOZyM^;aJH=NH@i@301h`_T9;=)LD)}RNdgE+;* zfBd(5hecfu#K{RRySvN?uu%0_y9~)dwVNXVLnfMO6stqUU!${b;J@Q_5OxKN((01I zUq`loP{~hzdap!b05SjKK@-3UGOgQOT-iI=FIgP#@8j9KZX8@cns&{kw}V+9w)Rth2@+UaMdIs%7-x&2bg@w+~#lkU|)RaP$d14HgGzlEC(GT z>fo6>%Wpg|xa!_GZ&!<0kSOUlvi`)s?Z_KvP9^Iz42tL3zR?7q#F89xI?!@$tC+t^wB{B4r5o{%$4^7LLdx17G0#7EM#6G{jxS7HNgP<#V-YQHC+0A zM4+>Wp2s=ZV|e)fYARt@+}`#Z3x)Jno+gT(wo%!_d{w#2?8-8CaVbr36V5BsBAV?K zeTjXi+8VGW#dMxB1?@zWlT&fcuN-UVJ}2|Z%1=X@^$MvAni@Iz8Si;eFctnng%DM7 zPvUebu%AZrq-&cc{6MceekBItxhPV;?x;ftN>o@-C3GRvvThbCje4dO2{~rwkM&>=oRqL~ZKw_pcb&*BSxc3^Hu|E!jTb+fp8B@< z?UTwxMe%1*v7!0Nov@@Lbu&15+29(%75V9^&Ukeav_v4<#FH)1jrja+@yjQz1_P%? zfh4NZDB6N$4Lx}?-Od=9Hv)Qnow^(I-IYlVE38l&Lmk+H?vs zO{7rW1K;JQSc1}DFK1i%b(t$f1q{tz>ApW)BcMD@e4QZakJ0F!Bqi2uD$!?-4c+>k z6lV`$T5S%bHXZxPM{S*y@ujC;ZLA5?x=miZm&|xS`UY54Q7|?;!Y9FBJ`I_#!Sw8= z!I_s@6;>9A{hD9g2rCM6`Fd13+|$`6rm0d@Ep8Di1?U+tAj0|?oT@T>MD6sL+!%>p zXq|SMNd2sq*=BFtI(Oy5MhQ+;e^5rKRIZ;a+)uhw)XHrq|y=Ynno zs*m|d-l&Wa+;T}U3JLLPMm3zWyr8O1Z?$Ye5O?h{+d!WTLHo|6L$vd!E(LFwOSnX- zUN^fMA)D#3*)di{q_nfpPrn6CUGZ9l^pqCCaK|Go$e(q;KlJ`O%~8(QS5t1f6d42P z0?N^6(#4;49RjsIc3Fe8gI|<%DqdYS@3j{6efbn|Ozuz^AlD7rj8G=smD<6`XkHZX z=6n&NsvzKFVPxXkgqAwc6tJWknjAMxbp~YNyOjHz)^VF1kCXYPP=gd+msJw;A|1gF@AkCRnF zH)I215M&Q~1!7xsCnQn>?{T7uG%;t6vtw zQ?y2gzOa0%17@c02IjVMgbjeRu!@umTu6K_7riLT0dT1fNP~6(S9gixog`=E=+$@O4BcqbvnRYBI(V_QkLVuI%JT#rS=gV|;M5G6y5u80puG zF?2MV)E{qjtujqCv-JVw28c`wmw&!+{ah|FzyV||@jSBkC%tFdCufW}nTQHPi44_j z0V1ICgra?lV0(FyWGv~d z3#bKqj8&V&XfpMqwE+u|?JeUPE9?gvKSx{R&%Jg zJ{ugKBjRwsZ{PBd!s^A!yQ(G6Z$H}MKY9Z=jt;{wq8EG`8?qJotVNf(e5SnNzmrIo zzR|w*9@Z7NR-)HbEnVDyH^my8=bnpet{=j)N(i!DYeSI`i0^d!?aY+c$wWQ4!tzqI z>(?WvCH+g%coeO2?o7cRgX~z6zN$?Cr$HBdcCz)v>$zJM=%_T3$3x=ZAAu4`;lA3S z-CA)#_1}BAXQi;lb$cVHU8nGEBFZ0hTq6m?Q3MW9l$~SPRSMQld8wl~=XaR4Y0KW| z{(UYR0CiLUSUPj-W7!12)5U3^dIi+hvZ_x!#njdNAJBD&h|e)a{Y$yTe?|tdohJMb zxEjJ+^Zz6Uy};K0n)hX3OV7u2KiW6{eGCwrB>jKA7;pj!wg$}q0Qf7cFuGFeiC%WJ zVkCN%2E%{dut3JDmG>?+bl4aPCYha?e%`NrpRiaAETR%7NC9JSC1#F&=jUF&`vb4D z`m>XC{^!8J_N!$$%QPN(3cJm|a&1@tvgd_iJ|mo$&g#0&rL)(3{eFYa4mizb^-gGS zebC=logA5vU^S1Mx6jO{;Pq%(8DT+mAQ!3zv|UmVLqsVA8&)}eyXaOa@9SjFr{{U7 zJ#O8*=DTCpd2r=GR{A>NuS+5^i!a>;Iz^2#c#$Nk&#uHNd7(l;K-fy=6B-Fab6E>u z6OD?n;C%?#Ju>6rm3k+{GfEwczH{8}`nXh@S>4IU!-YDmHd)+p(pb#9alTyKL%vY1 zef)vK;J|?R@J&ZRroI{@I7||)qv$qG$4z&43%_xMUnVdjzwKPZy7}4s`5w?mY0Z*a z(cM&STs$DZ5dr)|UX46RKJD+ot6;5TD~29#n)oi>U`!q zO*NLdWx86wEIa0VI?S1!oi~3zbMj1Xd12*oXzx#5p z=*yKx$EL0I5Z#p|hw{C)=%BAW45 z&SutAhw(iLMIUWFee^ob^tziMe?Cg_ zI`=PcUu(s`J*)SM*^CSQqtfxbu3+!UbqVNPo#8(n?TGY{Z;F4^dZQ()F^1O76ba7ErKg_LJ z3n@1Q*>5*4d)4Z=Zt)&><(pukG6{giGNet>=IteB=h`zJ;>E?|UW`mfaBXAb#?Kyx zj#%N~!i7bKC^QG+uFS{Y7O=OPT9de#yZ+*~I!+IZ`mC#|dHY$l3=Mg$U(V&}^mka` zD+r=+47aacn`c0tXbF=S1JB-Nunu9dqV4bpuiLC{iMGeGM2z3ag*lLNin$zyH9i^=_tv6mXCNM+r!rNRFQ zYALedxt*Zac__#Cym&mWYrha`dP-=&wst|=*uj6)*~tO4(VUOw@t=Cr^KfmgqCT`A zKT{0;89)o&#WgeoiL5ooGregjTS&&2CE3d38ua8B!T z+5x2h3n5&+n}K?T-9TI#52iUk&NG6;%ldxWjvaU7Cr3tD#D_(l)(OsJ@Egkg2K(G< zk16~uai+tgR+o(!1NCPyM%mRQ>}-QJ@5Q5o<0hN09r+JcD!&486Uyd~z}}1K7`Rv* zPPzQmX%4A$Zn^b~gfb4zI4b4Ztt?m)^y%>MS`E(U`xQ=9J)tS!eV)lRG5@^Aibd{y zJ4c=4BggUXZ2d5`pa{nm=i1q=iwP_p>)v52dcjc$yRib*JMCZR`p0=ed~Y_t@I;^7 zeorriz+GsD;(OkG4)|4h59TP!&A=h;{cw2u_wtsJ)*YVSe*a}M$9bOx_MykoDYs<8>~2JUm+6cmC%=bo69S2MO%-VA(DO z5<2vRppB2Em*ksA$w3r6oq7+Fq)kPty23iDRWnLzy1B`k?4}kHbVefSbR}tDy~dw* zOWbQ=`{vhR?nWnLJA?CnA&0FZvEv2|DDuyV7?{`Qq3>}QCe?N7-JA|8xrC-z*IK7v zb8{Us;_*&Uk)F=Ys+WXt@)um?`*TrH(po*`)t%0w zQr{RpSE>trYZ#^D!&F>4y6_Jd7JXlfx2z<~?g2o_2w@+LzSgB)#NM@*b4sC?j}Vg_ z?jEG;Q){Rn^H5lVzad~|+d*{TDAE*90-GpM&{-Ri1Mf`$0vAR8A=znbZ-%AExm(Kd zW4nFB4*T=P(iS%UbM`8ijY&CE65@Al(f%zH8a@V|l`k6FO4>xTU%LJ4;(MAh8I3v6 zoLt;zt*)k(a+Ma}<$m4Oi*z^oVhxpn%AqK@Te0 z8%THzw&RY_PQeTHty1f1T};OHRBO`k=}p!^ap^+&4;rX{aW17OF*0t~qiB4}I%2$l~Jyz)GRH%t!r`g1WM`zto zJyRq_O2Xs0F)c6*?&OwawN;yTZ)nuamLm0SzqVa9(OymqzqNb&^v=4s_)1J`P_Idc zgloaGT0_gh*v@8uhLgp)ws}?aJh|uBMb&BW2(w4DsT*_!4Zt}OE`KvvHC2(MT>5~A zuj>}wri|*BRG7>6n0ZZ^t7+%@-PLmBS9$Aq;^XHz{uG3}W?7sWF}dY52c^JkR`e}u zl^-T7SL{0O_9jEO_!$pkK2uAoWqXy8?pv|=l(ckxsilC)Q2cx`{uF&$|FEL-uyx!{ z&J5EN>3O;S@nV)^==XYBTvh$5!y;<16zioA5w(~Gg zY`fR!64FU@2`qkyb9D8p19X>1$y`$g1vDmegUAzRZWpVZ zA~*bTR@^OLna{2yRV9YkqUKT+hDzMk1CI|77*sA)MzhzBayBSu&HFy$i}>Mw86|u9 z>Z$JP;3!stl`#3&8IPs?+1XYKZs&Vr2BzYzq?MeSpD`viBDpyfHB$Ga<>Q9>;wBOn zCbWKnHu`m2`QJxA8qm@ZxHGs@M?>L%xM|gYz54`)OMps~uneKgZbd^!5DuP}n)M2u ziK$o5SOC`lS5vE!`_Ai@BU#UTT>FOSGK0Mz=cz1M2(1I$WJ};e%G{8sFDz_4;6EYE z?t=32vY?*zBwpTz*7~p7iQOhc)rnA|xS4&Wc(}HUrhk|b9X-7zE<8>yY~3<~G9{)! z{cli+WkDfFmG!LIyR=|L=tDyLdrlM9kOA~V8`MxY(N%5dT zp5_MbQ5wBg!vdQp^}F+|siM7dtXh#UhtQt~s_yE^yYS3C08~F^=BR7PgNWQbi~4p=Li9L1{gq1*?PyiLY41EW z`vTYf7FH8z)bn!D+H+OM{tDqw3C)*^uObnA)|(#Rrz>(hLBYY%;#nj0VwSNeGWQL# zpjp?Oj{Z0I@7ZRi6SlC89|m+1bQb5_*H3;nN3tE$=`Mf2I^`5>u}c{+X_h(#s!v|G>E0nOxt)#vWD87=N2>RossNO(Do3K$VjyDIc) zt?pXde~e;XxWz9>+AhY3HY))$6yU?F+oS9VQiSwE?}`|BO-+*ux2fJ_N98`#ghs=d zs0ZI)VI+gvjj{rAL=22vyOQthlmaHI+-ZYFnOxs%s($;0+g4khy0}4}%#$L3(_gJV z?>EW`I#tyNBjGcmZ3bIrxkOmiHW28fc|N{-gCb!n<8muZ!pXSS3Q86^k-4d|P6oV% zik>jYM;*@-_UBb@{F{Mm&!-6fyMy-IU$ag#Dvt-`e2Vnl{)P1|U;zEP67~7A`34`* z+kFhAU$I*sJAPPrb4DUjKI;LPLr?A2t=E8V@a<;1$0R;Hpz(EFmu&s0YG$l;+39uJ z3(D<&UL}9t(gK{ONZ!l!b#bQam-Pc99)M$d10zKu-MU;1(L{0^~ z(8?@pI?cm6=Qv+jx~!yOpcrdt;_lqwMb(eZbcYI$fu*rO=m0McdGB_VjdZZmiO_9t zTB-AMZsa>HXs<0Or|m5*<|8bbw7RxRLv!8O=XJ1+TRySX%D8QV;s6ZoXHjk|$3TQy z?rv#v6m7TJ-G(S9U7#+kR^w9dkG6u^wxKMt(~9C%zO@MG?IF*1(v!_n@R4l`+aVLZ z8lvdpkT~CuP;8KQ;ymBKQicFxMkP(sE9Jjog|jQa(UeUVNki^6&+ow^VqLno zK96_rt={Ir`XWO6$KqJCVbx&r68G&+eId!3-J7CnxdqTC<_l_Qhzg|5O-maEKhSvj zZ`Z#{hBl}b@FO;~ynNZ49HBjZ|@Wz63K+socov4dSwZOn`aBQ>t*k?gQhL2_CKkRC>wvg9oNwJy(_G>Lji_RKJ# znBE;yJ26WRx7TRpj&@^Kocu27C!i+DC&;_)hBG~d-#5A4a|w?PZ+$FMQ_9129TvH* zKWh^8qbQdqHA|C^j*ot_KO6FVT}@J!YP3gLw+Vu4snVHe{}qF#c2)Lz=p7*3rM!G) z^%9)-fQ{||Ts;av*%g3WlBO3^~5kJkYA%LePJlr>BCCrPx9PV*R8;&n`EBEvQ{zdHclq5f{s`_v>Xo8#Og?S9|H!uLeQT4C> z;&K=-|1kgogM)W2Y(U5Vwf{Aw_P=`m|GDa)8Ru>3O-#rS)16cG$yuA~KYuETa0umw z^NkX-1r)IWfgpk%jtM*e)Mi1RRQbv%jz$~*xi;X_6GN@F!kmvd$T_M;}CeP`Gwyb0O1C=>J9Sw2b>p6XXo7pw*? zXJv|N?wOQ4hAS@&$wz|VdH(N7<#_)t$(A!6&P^VZ>d|GB-3z{?Zik5MMvXc$p4yApRDI$;vyN*bs7#ynvizuj_wwv{}W4FW~OOfa*FeoP-(I!1##`yL_&%6fas5jQM71_g?DO$`1~ zQ#>&sjLB{7G~{XmcXkmyd9>-idXc-!nx#>=ny2%hyR%^X%WvFPkJ)fN?6k_@PZx7` z_srHd9y{>O>`RqSi4`CD%6Q(*@|d%7O11X#X8deKb*Z~R9s!tHb_Dsh9tqA;O?$T za0qU}xp60GV~qrYyF0<%Xcb=J9Yv%iA|6g4|DCh^h~3kQ=@N)LSn0>rv#W_=g_X6qT=Sxn!%toS^P za1A4E=SO7ioF9JM8`M_q(DZ-oz3a0me!UH+ zmTIKNS4xxk#58tD4LKR=lw5j7OG~W=;W;(Z?wfvppz6t+xwq!KE={m=j8Pg-k=OH+ z#?C%xOuVyN)Gbje{_H#oK}S@R7uqt4W^b4J72n`ZV29Loo}?@5sF8yvrKFee@oNfV zsu)(KWcdk4+MU8yIvwuqHAXsl;}^5du?aH+E;oDfgh~(4T*cGj7JD%udZi`o3h*o8 zq6*iOcBgS$QMl7#dx&^r(q=rEtLnkDdMwIQRD+N++{FAQy8m@{b*`4kc-M|}Y!nh@ z{{B`O>Y3YjffPv1Nc3;N0C#@9gQPD@OCg9quk9ON^im_?f8sEB|9_B(t!>&HbULeQq5Q>1<7yIbHSNUD&|~tzsk9h7nU1slE3&i zO!DUnXCM>dbx33s0xdIUN2iJ%>-!aRb26$_Kg_5+0pr*L$rel}S^9F)g=cp8RTh2= zoxh`to>mTM_C%5A38Bx4tm{+|?R$CLyVPoDH1RRiIEM`yttpax z9?1`qZlaTAgnpzO4@-a50rNk)^e8#g3DQlx8bv`0tQZR2pMU>QJ@FX=!NE+~@RK zO(b9ijpF<2>S>eKW~KN5(d%k}Y~AeRPjw=hD z*=%&ueyQ2#HvB~5zkTg;mEL!D9DcNmZgHRBb)#tWIS{1Vf_m<5BVmkR2#6DZAp$ZNK5u)2alMiLlaA z8VSVV_0S@Pu+Pt*yj@Mg#K2qHCoM;#k2B93AT9LYj*U*7`}I2}ddJqUBz${aCn~SI zSz5^075DX6SkxQvQlCMc1I;^Z-yV$Yac6&_V(o3U{zE+5vE-*p`Q$p>JsZTV4bDcI zZ}{kwGPnGidA&xWNWFY|; z!UjGN<}Zoq6HZQuOf`deDSHKw5RH<(qbqbOIwK?Fm6!yz`;hkTq2sepQbM~K+cs?g zl$#Kn|5DNP0>*AFBC==}9pO%todCp{PnUi!!*lc#=5Sz0{!e(Ia)55j;*pLU1rq6C z!8F!PNz7s)ugI|d2rpq!9OhB5O#_k`O zn5FsIId#xxOYYNkGGk-|wQgm?r@g0oFN%7~eAmse{y|(fL3h0paIK8-i@!`y!gG7H zsPP@R>XfwoC<`S~fPjc?E-Vq$zFRaCLIn_bb;)V@e=JizY2I zR(Q97P}?-g3;zxQW-~}~mpiW^D)!{WcB1#M3Yw{UUsTh})9q2OXHVW0hLrcXXz7hi&A8>% zRz%7%a#B!Hd+gr4!-x+3buv2rO+4G#J--GYa?==@>pPSyhP3z2agp!#6|!WLFXm)q zyuFe}EPiO`4rR##JVWzy_C9;`+<^1%w_|%`d7)_6+poc2V-x!Wm&p(bXSK484*sCW z?0Hs!gw0FeV~GKV7L~Vb+vKW~26`TTAbE%BSI6`?K zU#WR3d{q+U2?ow|sGFea;&XUpwwmu?L9Azu8n>^2IR7)_5#J7FJ`+N{{Pt5@sVBdW zRXGTLek+2arliJ1g;2=xW|}5RC5A49ja4R84dq(mCdXzt{xu&xb7hkGkCAdxKuMAN zp$8m>iBE1{l_gBNF}({il89)r)OQ)!asKSGpB=8a^{f>0+54z zOmgaRHKoxv3RHqVn$nF2TK)QX<4`l9PVvjgOl5~u5#<9;lr+)tpz!_EFYM-mf${%y z5{y}N)q42o(~y04q6C7MqfTN032F@7r*qHCLICO@AN)Gt_YM$wT%~9~i+yBvd!Wz2 zZzOI+m6rUqQcAyb9kI)xwR`wJT{#DJ+PRN<`CL9_=Q5eH?!|UROHJd9w8DE}g#Fu41BKIIJ{?6Zp0JF* zq~dXD+0)l_fs7xSKp1+WpJ`SIsMK4GOvJ6R3K_`P$UBorIlH8ZjM;)@i{LsG@uWex zNfj|=D%v~*s!pARqzQ0InmnuP6Wokj|Vzyq+>Pwh0*&RKMTs)hH(O8b*5B+9lW}+FTw!z?Qn#=w#T+65oPx(v z8!*{d{q}|b__0Cu$GYqykFh-xLWe(v@dv#WIKiU8sM&|%f?fxQ#Nyxp_U#}QaQduK z`jqhWH{7@(eI^>ZQhJKR(O$c5&6s>jztcI})FWr!n@s)a(Y--q%DDpSB4#G$iSeM; zL(8;j3Bf}Jj&_UCsc+IER%8XV#eFz+eFddmVq({#BP3sWpxJBT??Ig^kr5mOkr;r5 z4$^mUDq$GpBA}=gTdr2R)d1lCwW}bjKPP62Z~Bek4?%s8+7gD7I*9J z{fTRLy#AH^WupmI_=tH|IP69&2XZ-OYpo(4oj?li$ngqA35|)2+NUSW*4UhV~A+f)=T{A0++O%%Ij)8I*8LS=uVu$Gc z?OLZMmC5i!rsJ87G+?UhlJNI?QhTS@_!Piv6}tCEy_B(am6v$bb1sfWx_^1B;=cshX8!>+QNU5B}-%Phv=} zdjyVoK!jNfaksM)Mpzw!CQSV5++Y4pIAyZ&KAQYH!uNDp8i(^f_2!LFIg?H`?(b)t z&@XHIM2^uw(&{HUXMTv%LGlFl57XEMu- zt#z!@U92*O z-}06mt&Oh`kmxuT>YSqU@IpEfZHjppi(lI%^`&Jeb8QpbyBlO{sHn%fg72bmuXC^m zOY7!?8{x>Jv;WZ3G1GFTR_Gbkw3&B20Zoog()Y(aO;p&bRp%3cg-j1I#%l*;Knb+n zHiP{;6K1;l(!tCeR|KmKr$3{t=Ubd`Qq}ku44D@yLDNF&Qe>cTWMqD~UqjtR2Db@v z2YeNV@-(jQ`say64W}3>XHQS2k|~v}b9I?`)`5e~=v@Ol0x431LzxjBNG_@#@WmcJqu5l9d4Zi&a5#QX_XmEU)262CK2Xwx+7EVW?HcU&; zX689v2_E!qtx&@mPFursEHD|(`krfI$T2ZJYX5`!jUsG8SiggjFl zd{dLqvDs{^+jUJK_jRq1I{x2fkn6 zL2JQMqDpW;@UFVrGkzU$u!pIG6l8K5Its24thEi`w<=F-%gg+dbbdq{`P=08<z*i@Y>3MjlC(VJ<9o%ND!G#w_o%Z5C zv@3n_e%%Mo*<+!3_Aru<#oLkWe_V%iFo5~~TS(I$D*Ib@ME~bSNosol!(u`6BHe}| zodMt&Q1U+Mg8I|k-hOC*?MD{;amqALa{OLc!z4Q^!TTH8@4HS8#^gi-yAH_ocCI7; z*wocQ#v=PVjM5}5xXNwz7q_0vR6}tB!K%E8c3R7A#@)I6wa#IN7yOhSXK*~>DMIAM z6g1iGJAME0q1v2^y!sP_YEhc3-Q3N&WdolfP(KaxR+ql^PU$!TRRx% zW|$cwN?LA*(YZsq%@o01`R5pw`MJpZ%9feW3|>cDZ4UECBsXgv!wa`RV@U4$!i296Zr^fpDa`fE zWkBH<`P{Ac(@Vr&!&|MV0bT-(;Ur!h4`2My{vKEbKbGqSg))S{7;(}EdjZawopX9O$0YL?oRrSbA3lYN|FDEi+P+e-EuWvEH+G%vwsr_#!ZOH< z+-Bz-2B~gs`khn(vfFYTByOXMfna@tfJeA;g|hDVMIm}KcqNsORm+O``h@cc-VV%4 zcW_q_B=hTf_EAf7kpLHN%@_FSg|-a~Zu)EuW9{R5{_!Ug0D@WI*0YsI2N^frDdl%X ziDj*adF0k<>TU2U$X04uc|1kPthN#B9=jpZx6BUfv|PF03)lGICyPX6QO z`|b^p_`PRsM;ES#@8SGyjxhJGvs&)vyvAk~J=T{dF@*y=+jw7{&d>HjC}^D}KFMNy z@6M{A@B#~i750=` zott(`FZj=xAjqxnA!GTWEXC+ApKNO&#pVh$AQ_|jVd}g;i9DPHa;t+l>0rR|`u=A7 zn!x6M?Rv0$@x1Bz9kBjDeEa3XwqalB?{pwWcM+cMUIqt<@`Crd1h#Ek?fKdw>79rF zUDYp}YR}VglEyR0*3E5_>^*pm`N(s*w|lNgYYJ?kE3z-=3rs{r8T>4TnGf#c)k-?$ zd4b~jg|vcuKmv`R~`Iy5KuM52B_FcXN1|?roRJcx*cLzpcp;(?!W6472cwB)%6{ffP1? ze;!B;$VIi4&y&0=_D#DL0`~@ql1F`Dq5YH2;X9~n0*S|>y}o&wWZi{ksaOeH7YX!p zL$jG%+#TD>Bj0$T?3Vs-)sfhLm&7a3r2JRn?0$^ciYN3D+EQ8T`ct zZjVj7ej8~%S}-*(yzMv>T!IZAb>Wb8Ky~fZ^S=}s!7&zlScO$W>`uz~3f)%g7;iBt zMwh$px|M~`npfs5&y+T=d{^{&-YI5VaAZ8Md5SRLvf4RTfXhH-7}b@-+}G?>m#4eZ zXMdB$RvuvY48cf&hVA=Dv;2%8$>{oDRmlw?XhG`6P@3TF;BP+pk+Wgjg3?mDX;Z4- zlg(>!i(}P8Onb9#1=;qabFOmWuE1q|_lqCuH&sc}n^Or_5mXyPt?7u+s3QM4GCg&z ztslcG3nMcM|6n(vaDdJ(;5pGJMcw%MyvOr6&ULjHDL{^%83T4iq65LaA`xk^QYhUl!It{0 zKS?gx9CU0igvTOY4Z92N4JwM`MJKVO(mrJzXRcWHOf}!=+tp!qxz})HIG>JBAcY2@ zsuPy;E!NA9;cA|R=|w?`^z_^uPu-+~r#VT?Z}v$X)noangVQlGtA*bbmC-22mUzCX_n2oiQUUd%GDa;Xav1_Ba{$!qWRvL@r-=ZxEMno@(QfO{{86f}fo ze2}ZY+r_|VzP;}_vpJzIUs_$gX=Ay2s>;d0NUKIBc%TzCc3qW~qZc2zx4j7^(pmh< zLwJIYT7x3#+%--@o34Bicq@L{=u8Ns(_Hd7_s*5Hhc$)6kcr~k58RtP#6x%mCML(1 zHaVx%=L{7!jFv|-iA$Ty$l|{Qz*Dp$ijWQ6PoIEja8Xbjw5`*a9E@|>k5jOPtEy}1 zgo=Tj@351%b<_G)^ie*Gi`me-vE3>%-!`}z$o5N^C?G)+zQCookSRHqc-h}B65uXi zkXh&=7evW6QRO5d6T)ABC)*v_bnr#KSgWkm9(Utq1j~&;m#=%u#Ua#bU@yY@4gU6l z`QbS)UEdnBlvg@-wR=K=xT2V@mptgAGO(p`;uB4jE|uZuCGUQ#cfws07ullQ03+Cv zuD_a)@AX?wiypOCxu18?2@^Tbgexbg{>b8_<|eRpAG}5;FPf#f>w^h9d;$dI&CnXQ zEGR3Tzdi+>94Dg`cg%2PzTQG!f`1r?2ZHx6j$CH9bm^2#^Jue^GrV;QkdXPdwvv?| zTlw*&z#+xL0e=%2>~u3eg|hga)gHdW0YsI&y_&DW)^sbf<&e`7o3WrcNm);ez%!SOd$2a7)Xt*PYO104ysTqH|5Jq;~gWo4~mlv-z3hPX*e1Ix+r z(Va>a%9Dj21(5BM{tvU!zH01=!NSrc_4hCkiZcP>sq|`#hM|NS{qAZ*b(^6?Oupms zuEVCPN~|i!6y|q#cjPeRNoOq$YuUJeDy&C5uX+0uCgMBM2)$zOB8?~U=;Jvj27-tf zC&uTd-m9m!xb1u^swyf<76*K}zm)G{4tKJRzV*+@U$>aAGyU1<0xKHdoajt9g>WuF zojTbG^L_(y3N)P$le=CUs;X?DoD=V%%~;YAI?Bj$AMaVSg<%M8aXDf?s0Dy>QkBNv z1pcV1iW-Eb2WWI@485af9I02^Nq}S#`E7w$y-Ek?cfimp;g80w&!5p!AZ0~2HMy_V z7?MqsPZ|QJ#@B+ArHkJguJF-qYUY;R-9?qNO6c6`D6ZWgL8eypNGxT+BD>Sgv5m=W zw?0_zL9>C3K_8U##@hb|XLC&1~bY*{KXO5(%Y3sw!22>su=SDN-&d68hovO{vjw zaCf{&jw4>IYk?Oldw5*C+6A^Jm!d2{_>4fNkB-8eMu_ZOssQmIt*A23b4U`~mM%p& zpN4M+x-pIO!YRy&3*4flsB972T-Ljg^;X%mT9d9%+U>dao%fwq-02A3Ppb`d|1PIi z2GauvN(2O@ATG%o(JaAtrO~Y~5D*3|GzM$CQPZ|2rr{_iZ)f4mMoF38`f8d>;wt858f7@rEpA6~vEJls{^)m^U)l=uauOAo_ z2QZ+lL%J;$Uv_zG98T{#1_ci@|MUvmRwe_vS4T%8-G5}?Zu@jR*LBNnkkNBv`Q!34+v!g`G34t;3fd93xuX#t6IgDR3z`Bl9)ljQmz+qUQx$nM=4@&-=8Fiyj@JPm z(JEFlhwGtM)mR$zebOAV#bpfabfLMZq=Vm9UXYkQK{yF8ixZvC83sh6S$YDTEIhO{ zN?L)DooFjnPA6kytZZf2O(T%Oa2kW8c}8=!Mrx5u@O${{a|r5gS4j{u^1PP2|2x(9 z{U#FDhJ{~nQ>`Ml3h?7|icZ+pdO*2?B7$x^Mgx?ST!rQA4XuHB6?rqUgDb z#cp`t@FDj21>#R~_ye5H_1B|xLA6pDfK*?t-t7P+uSN+NieBG4z>6J#_`z~f;bc$~orzrqjcCHg3ag;`r`san1)2Z}8dbqVL zRK&n~MtG#rOCn)6bzVVi?j_JB24|C4RD=(UZ%U)hQXUk07I$MV5TG2$-|M>;o~Di` zOsd2OQJSNteQ!;VTrVi#yYuwRtGZUA9huzc=&mkmDmm&P6}9G~t=y?oIf{e6q6oaMZ(tyy-z)z;m#-r{bI6M|9&AOWdn9zYB& zj2gg9j`_kB$_U!+LJ2I`ZOt1zH_Sq8~&YO*Cg$UKb|n+(L~#Fh2ePCxt?Wf3<{ z&Ce`+E6bX`jqwBw$~ONN-bc;*>m>=%cg8otseR>Lv3zBThR{==Ul>5#;+lygoTaY^ zoNlzxMq~lCQ==n*IP?KK&|xTeCu!0NR%-_jT(kW-- zM1zG!T-ip%^dnc|XYui8SLq(BBN`*1>8)^3GN0^VYY+`00=NNr;L$!jkhUaya7@&#=dO48r0R*VW!p5-HP^}Lfef`p%ZPx<- z{#PF`nE#K~KtuR{MSLRVLfii;9VUcN!)hMzqrc?=1M*%NIlKQ`xzV!~5ws|NM9FF? zPj<0!m(%Aa6vw}tz(<*ut>?EF;B&3=L+h~wX(bj+&&$~`lDjd`(oGbz$0`B0Abgen zt?K0TgC_fd=`)*$eq`8ZQV?<^fug;sKJqL7Uu_LXqs2n-K`(*RU)O{4PgfKSTt!un zF2|S3?{-mT2M>(pwuWv4%C8shZ&uOK-w8gnsptK#073w>0;*Yr``~RSTnJr4GZs&S z(3{r+rf(BkX>7*nn`~P4nD4I+>x8c6N$xgkj{?2KuEK={&&I;R*N>q&BXu+dJVs0- zoq%x}vyEPoSIkyyd8Y4Qp*hgjveRf;?x`0wnZ+EP0{}Yfr_7V;>e{!9b$nJ_m7+K9 zlkAKT<3)s2Qy74;sd%$^E=@^blYqK43QYhAe@D2yS3m({`D!#yQA zfiYD}U8fMJwCfaqNUOzuI5S&BsO{km?3cpfFV7xy1|i!CP>HLNI&$lrzbi78i>Q% zc4OBPYomimTs&JaoHM*ctara-d;5o^?XLZ*SltnJ=Czu_&77(Qy2TL|vTyqsF?<0b zxv8oKEhpSxZ1l028oWn9_{OtULhG>2zH`3B4b4pO@3n7k!h!;(3d3AMN40ECDyCKw zCK1svHda#iLkQz^(-&~xkgZvGBA4&5GBThz>_|hYgc!J0(=KL_O$cy7X zv!yjNcP-4|)ihfT_;Sqf{gV6<_Wj+KJJbD?>3#K#&3N6zcf18Ye2C&aNwB?+(|xA! zhs=TlNDB11dr;e3!$Ge-=mC}(KB~Y9cfcx7M7wSK>pw5B>z`;i7By>-! z0YexAGcDBvClMji_622C=mOpcwPU8gd%G%>hYbF(rU;H;51&LJwR}Nl{|$HqEfD0f zc=iY~eGrclUVj7hH+2O{^7xd|(!?2#hurXwxAR#nEU)L0#VGvZ^&unWOkvoj=iumAf zkjX>}1Ha}t?lr4tWMhYDS*8f&;+o+*H6-{L%AWEMZB)|yhYBcp0;zecv8zvw6otZ$ zKA-&uyk^%+hpI_?pS#P8ahTG4U2T)WpD&NQqndl%V8 z5|2veP$$NVAUB;`ExB~&4nO&khQKDy+Vf2a5#d8wkeXDD?8Elj5vho@J^9ggI_l}F ze41D|URs_UJvP@Bg43OcMbF&4ywA;Cdlk+}v>mo$O}4y z0iDqu5_8X={@(iO<5N3x9)J!xLsIhmrv(~-2Du1;H6&KZ5Ek_p4|n;2TMh;*q396j z`hefJfd?~l8wok>Lo;;8CGW(!hk8ige<04HM5y{{z*a<;;rJBcfQG~R@e z1y>D-b9-~F6vM=HUWm3)^^TaG&D!3<5_HK`fA3Bw?eNgkYrp%uW(8=eSl-IgdKW`x z!CE3Y-Q^$o(~<3wvE835Va%M?)}SB=^gtrR9nz8DF-vTJWJB_YGNLi_x^WJ!({UlH z5};YvTEF$3{I(JbZv}EG0ADeD#f;Nx)XOkm7q2y6r)0Y$-cqTIn>%WNKYJc z^t0?PbJd?)&oS?d`wEh2c`5!36i<&6Z*C+Cs?*ZtbbYv$0q)(&RkH2RJgiV*JNk7R z&+H_rGVhq(ohCX!qLOPDT$ho0EFzFx`t1avd+A8M&FVsW#1&jH&Hyy zP(0Naa(2Sfu*7_DG-ZmdZh>mp_$p)Ir_WaM`4n@by;M>wsp=2w`LfdRbyV%=T!i~( zU(Or9OCj3%HG!-GtFu@It2bS^dFZ^&aHM1K4ay2>hdV%a73oV zhL!qk`RcV@_(QMcFd2<;rR-<0mqF2ty@XI&>ndqxdDtXSqxfPLAv9?S(Kq;bCVu>xwWKg_j@BR5i48@TT&+YjL+O7;DvThHBno_D$FB z73Td6b~zLnI^6x4X-zbW6cVrYCEQ(TC39%V)8U{wsy#0tnY(#RIfe%_QVg#zjraF+ z@r{pw==_u6L4ZyS{VY1XK16HJGUPw87dNj%J8rg}O6d>yzl7~BPeBK7TLB=Da97~0 zZ{>sQZECkDj-eKG)uM3iPisqB`Uf7uKaK}r2z}xWghk67B4!~}fAL`}l6iT@8rs&v z&c`PXDYY?gVXJbV;r?oLu>$ohoJr^LGf<)^EU)Xwkqhlv**lzT-O{h-r>RASU!xIj z?{LS)@~_Q5WhbP*e7t!{%K@3i$9`1nPL|mu8o05p4KMamV(nAb2@k0RXnk5YeHK?w zHn0jiKqw*g{7w7=hTJSz)3N>S;X? zvOTcaJ&9w~Y*pB?dC7}2jrCioA(C+eOB~|0{K52S<$UpD;r>8Z*DaCARPyzuFK%#O ze=)f)Ji_tN@_^69O20>;>bj;2^;~qMoF`Qr(&R27qaHKeT+qE!QlW+1bU|`3M=3vOU6L5O zb~{)2b~3WY_NJ1;*I*Td$s2uc$CY<>mDx^8&}sZc9XSz7g=@OzZ&^Mn1K7$iOPXME zEgYeCTmZHa2y&IxHVZPRtE-fQ3MCx1auTBqE82H$t@k)P0IB-9Ucd_gcJ9$tgDQX1sK=1=< zDW*cM)?;Q$x-*ZEe;@>^ef-?{D3tFwb46^dBsof`gGAPJ)!TkVUHH(;-1^~SS_ z&cF+f_a69bkk5%~f3pWK8BTqplg=KnPx4_X(8T*8m=aKOi2jOpl5J9+ngxF#4>>6T z$q_FmlxX`T^}U}Ef_;bnGWNH}f0HV&yIlSlCf$3`ERZYzw!MeuU;WD@=EgI4Kuh@X z(ViSBe{>W`)XN7A$amuJ$BZ!lDvys(0ML67Ab9c}5B^nZS=Qc|~qh zd-B2Om6%Ek$IJ0yQ3|Or3$<#+j3*DIioaz??0+=nzZ8dmzX%Ay|32~1_<#S5lmj~X zxBUNMPdvW)f$u@7Mwh++JA6MwMeC!)|F^6Cxj#KOdV0%$=eUvI<}@qO<_vS<7Cbxa zR^TZqm#I@fC-j&$ZM%&yeUxYbmE+fg0rw|E-O5JV(fumu$lczzsEDiB={~CV=w=_J z*K#$jt4CVdK74cwZxVtZ05yCbNYB!zSy))yfb9Ve{y@PbeYD_L4=vtl9krIv=sE(- zh?74D(@Xc`w!%)+VMiXPmiMr+a4&&kkd!m3Ys!4nx6IEl@4pHe{-dQu3;~HbOB}VT zWY{RtVA+8glj2tXbI3ja?xWRUthA;0sFnI2)_6MA3}-BlTZ^z^!^0W2tVj$6+-_m2 zSZ(0tAROIU&gJvVn|4Hr`OWER9xE|}>bs8@9ea8n`+CgQo=zDqrUm7NpZA4Uzkrs& z@>Z8ydDdDWA{yFSz-oj+P~&tiaJ>*8GNkD=H-==ul~r^h47D!<;wtCKuZHq>Le+Zr!g^e)?umX7mD9p?(c@>?~mkL zolncfyEjHSWUa0ihrPCHmxO7!>ft`r!Z&dQUT5=g@}lG!eZMa!@HS!aTKOGA-&VOs z`jp6#H&2aE?TY1|Cx7R$lfEP1-dyk^9dBSzc`u;Rsh8cS! z!*j1%ehEB2b`=J_^?e|TP-WZ0L1o~p)(jw5r2OLj6t_T&`MfQ$%cpSzK_oP;x}|gY za{>#x`|CAZ>y~?*Jugtdm}zO_#fm9cb2GcAO4`h&t^CcNsh7)kX*vIq@{w1QqT(6W z!-Dai4S(b@3>460!2j^Ko{ScYUZLN+Trahq+(Pb;UN2pa+J-w_P;&7s#;act@ywmy z(KGRG)#O$&q{!w)v>uiA;|zgq`ipPN-dDC`5a`;wdt_YyoW~g|#Hj8%&tld)Z6)!z zGBhpuLMZ$pG|wDeu;sXRN$_&6S{~lVsXlA1_BUDE4}?c1NPm)SUh(4fwbvqe98nm) zBoAI*+T@-RIxlBb*8`2;k(XX$8y;9&u;QWsB&5kL%EFqNR)f(6&uN9FAN+4nh-~&4 zocK1UrnieJ3p4XhP`5G^HyyW6qtEK7xfUF^^g2(RGAY@(Ms4 zg}i=L+kVJMpztD{86CG}OJXnqm_>9Bd~V3vfC2g1LMqsT_4@Nd(^A#Be4VFZZ}T-k zPFgALN{%}|gn_z)#Y|#$ zqF^a4tse|}Gvf{U&$$_smDRNr^Jx6p)tSz(5F>=|?TvV9Jx#`ILxf!pY)M?$Sm_6B z3(NsN(NXadbzj}>U3=N$DCVQvE6X0OC3B0?!-)@=7bA_qR2`Uz8Sa^+J6;BbYjVvy z->T1)8dcR}ZJ^*k-_@N3Tgtqvg6a`}@w%|44pd+X|Xx*9idg=E|uXPg~vN;uUur;B^4RIC#)`Z}# zuciw8cXf*ARenIoLG7@|pFXAh?9%G3(XCo-$EhN~Zd6cAS2tf`P@9|WelVM#BHMi# z^Av$pIo;DPMHipSbngZmAu?lPd!qX`#km@=Z7ROs!v!uKeawc_f{Oh7X(GrB!*38W zD*XBL=g0xg#9lM{wTZDS_^%uJ;o8LIpaIP2kl@di33OA9sx7HM%-?4ed;Jt#haqQ) zhs>Jcmby<)FU{j{%#`Lu85=0p4KG)OcRFj%@Q)t$WX%kNB?(T8-#I!pWE*um?EbdS3YoVp`M##+7m@5Oo! z-NBu?O|wRrDX=s2VAOP%yW9hKGQd~CdHy+Pthb?h#&hSUJKhjF++1Heu_MV4Bus^X zfcNn*)Wh)x;%$?9D$cq6R-ItA@fQZB=@s_cHeIFN{c`;@{;{e^GS4KTASG%;v}hL zU+FQ`PztdwA7t{)b?Vnf*Z|SB=f6aZBpVlA2*^%~jo|c}p<~IR#$16teu}A_ZVac( ze6bACS}1#5L(wV}rJ*TcVm0}imvVE4&yI^1mn4>ya2pMmE_kp~-OOGkZr%XNb~;?Q zKiD-lZw9-vy5?@G_PipuXu&+;2GLhHVgHLjU6G`1=BL|1YwIT>2hCTLQ=RVsQ&l6k zN^4^`amKg@lrbP6lrxS}%-+aM|A#u07FYhnfU4?wP=-~CdaZhyl_T1{oIC&dg%r31YZ~T!v6l5~=^oZ0qYn+|Vk-A$%l>*$J$9B7- zs#2l_RM*(p==iQXBf;W&xI#(=#^!l*Bzo6Qnp)!fcHLq?W&`NFLl(6t^)P!XJgnS- z9h(1e$5<(auw^>WPW(#TnsF6#nLLik6P%K0~Q>YF$m=h*ODP z+lqLolG59@KHM$MjxUNOwPz@@UtugG=1h7sUo>{VVkS&7Bx}(%ElB0(0-L~vV{)9R zEfsJ6xJx(QF;aA!A+djtF4r*4_c~4dX-g^7T59r35mQdS6)8xb`6%tVCQ_spAc%fV z^{!hobC?MU4ioVe0w=v8wnxQQpO}+a;x%@k{MK#IuOjcsakT8MtsdhTPnFVdDHHo7 zfqI9bf1ANJQillfJy4D|EDl^yOnvp6+kcb5o*?+ZS)wwt z|6md)yn;`fL8=YtHv)~M&~#*GR+aX!rQtv>B*fCnAH&HO_dQOWx{4c|kD8A%tZ28# zI3(BO?xv4*X)pC#L3tA_@ON#2UDZ-;O}zS~_%*+_MM;9=bYw%-^=0@HxyRiPW)`^s zeA)2@Vm+RBqgzh~9{A6ZeOttAd_*R_tB&~Y(DbPB>aR4~R*+D^2DU_NLuC4tSV^8A z8rHNra)WA3*l1x_=kg4pYVJ(|aAXR_RLG<~d~`GZ@S{A-uW4}yxk`1;nU({=)?+Ws z)=Z{ssCoPVntPPxcD>~jWvQJ@qDbH-Rbct#Ly6;ky*Kw zj_ht72B|Ba25Fy^@D$^3wBH8I^FJ5x`E%TU_7a`n9~+-%io-0KzirN0I~@~cTO#l! zmCj6$n5q++m;BMPzI>CKQhvk{Ypa2KRFSxH)|TkD6(o^yGYG>H;VJ;Qzq^Bh>%Ln_ zg5fy_4nL6y@lnn-PR{rE>lRiSF+;H$h+*pbtoD@4^*4+BciYz1P}hnEC;gizypfFl ztI2c$#Z8u}>l&x^En=1OYzA#g8`v5BDUD%D+F5|N1A_OYROT~GW}$#zX_Q8yjeNQ^W~M{bIIt$HbOIe+mjx*BG*9) zRxHo*UHHEp?MDHp3I0YW z47FmzoSsT_<8%8R`jSahkf{!H`zZ8Qoak`-r4+bqMX&HJa)2(-tq(p*m}0Lo*6lk~ z_(6-&->*4L*NMMnqjagpiIp9u+Zp^bYs6SsVyRv0(q1JEgnwq#VPcXWSe>LrHOv~C}9HK#c-?)jquRK$Izyf3F!vBYVzY~s{2X-Zo~$m+pM2`pM2!s&M!~ zI`tMSZd#)yU><%Gb!iHJ>*Xb3+g4g))n|B0m#f;9nQnM+s9GMPH`sQTHANj?iVfgF4 z(3s0uT7Qq51^WG6^Xb$u;Fh9N0cTy43T&MDZ-|3LV4@a89YkG7fx$m% zc9 z1O?s216xAYBUWFklCNZCG5nD0nByAR&7Z7`6XsOe`n;zxHlswzC?TM+Il8(eN0Q-H z6My4mRr1)V9__4tly52GN|jQ|7ZTKZ_X)CNL-06~=?)-Vdn^Ar3zs{85J ziD%f>RLAVRo1T~@7NmSzkw0wvIhFfWRj;llg}Yk>@!rus!L~Ef=UmQHdMo5x^)FWY zhlIeUO;Bf=9{!{po{c$MlX>TD1d8v%p;c=VT;+2skteJz9_GZY9I!62+ip00iN^2G zV|NgiQQy7Qi4{z{02Ta!nb0}pXgJNBb}RLK=QWl(U-z@_HC@WI$ji0CIT)=8Hz!O^ znws@Mk6$(>R9eV{sDbRi4AI7yIVMGU*B|RW257pZb)qs9Kzb6o2jiK(+5@9RpX>B_N3hQdCty;2&$aCTF|Qw} z^v5Y3R)W1Oj-U=yDlr;bjOvkb+ttdEbo>{Wy^oci4Jlct`Uie()g&=*Iv{ z;otJV>V@_A_#=*p;7vQiVGUmtnf5q^p+aKj8*_Q1Ky8(Kx4dntN!;mH=~zo4{v)v z{qz9ZQtf3Qxx?oirh5P^@ppq@Ym4k)KlV^*aT$Qdjjg((Zk6f+JhRdFfb9OrKcK;V zz*+UHFpX2$13uO@+5S{j)wSSCIunaF;==EjN&7$8d+)HO-fdkJD~bvV2nqJNv+vpW?0cT) z+~>|e6vCV{Umf2l?|8=;1b5<2`4KAT*WhQ<1&&9)WoMEfV6l@U)-u?Ksd7;@{SKqD(@qze!ESP(>RmYet;r7#8yqy#|_5xy; z5$HKW!8qnoA$T!4{)hDjhEZ&EB52;JIj~}+SG)D;Z>r-Y5Aa_AquQ4TU|zp#b-$O) z_4M-ce2abaLWd<6o4Qb~9t6WbRp&{5%(ZEkD3sfNY}ls!mTSB=$ce$1zUQvL*QXVsBdKP3TpV zy89{;|15Yd){Yr5gho>88hwK>r*$f`EHf=Htu8OFE??bF_+V`5I$9Vi`w$HJ= zzGf7rh3p@@|NCqf))@GmhWY0|rTq@)aK>Q$H7%~A9@sBi=)-YIzZ=BgPu+O^wP9;{ zk^cO7OnfL7+jva8o>Zahcz*t>9p;t!+F2%Pv4T}4O{?TrVEKZq82T1q$zu`=Lhl9at2+foo*u<*VKeNaDZg@)*5FmnK zTD7>gPT_%*%6}~-6Uwk~PT^y))%faLnW~Y~kirmBPjo4H=rG^nlAT0Rf$bN`ivuZN z@#Cu}6m4-EU7~d4K;(&6!;jcK){Vte}~Gpzq6^me+pLKwY5YT6m5L zw6`$z1pa~gxxKNxcJBS^nnK$PG*T^2xo&rb^#;Y>a=(>mH4Xfvyv<={)Y2v?vTW5RFWRt_xieP$}2&>)ARZ|{CGY*V5CV*U*Qo*1A4;$1n}8T zpXg>h0uKRH$Kezk=@sR{QXY|&x>hzX<#Ebha+3*Az752j1+Y=JqPda~H9waZR+eQ) zEqJ8+oN~vgzD4sGib>XPym{G}cOctm_l70{{N zH2&Djp<6M75+cT@?58=hSMyWtvSAMRpL-WBgg8ZW!!89_EjWe{sOlP)pF3&wSA>CHbRHG~V{CqJH*7ymMv@8NyUWKAEdy*vQ%<)gb`7@FIFO(S*o|Op)v9>db`TUwPddgKiVr-&$KFU@g zz@X1kM`(Vl0xMEor4tt)R<+Ye)pO%mGP^*Pv$>a=nsRcj^YQL4sQc9P`c(I8)F?-HI44m3JJY*p%HfPcWBt1 zJZ1f)Zw^9y%^!tqX{1%uLyifOkO*I-H<0Q*)clA?*5?(X1UmUE-DRdRvH&icPU|Ej zrm}rClmR6wLU+~N^o*3_0WF=F=X}d}s{RTj>4Ewk$L9kXX+0)>r;)DLEQGtpkyB*Z zMd`U^X$po;HCY8Y9&>eQsYD#4_L~_84CXkrqrofP=vurOLfW|)F3K?+6dX{$oh>F8 z8HJ#E`@&|*M7=@Es{3Pp1?={s5HD^%gpvox95acC%;R6*-($Ow_$GT+)6B#%Y*37n(P9kA%@0yV zBo3~1J%cXQGM2g;q>qe_sp%9~vC$y0Rpd-`w+)IaZcDI8zge`hwhN6e_^cbZxzoMN zdtr-4@Z*Qt`Q0X~y&wGoOWxrzF^2Aw)&A%gSSSj87E3C5H~JK?@1 zo;(9Raj~BPvkO99;#Cie9(2~uUYFOXf3rEk34aFdjd-X#^+QD5haAmlyH?tNhlhg6 zcJY2cj|E34(>6;O<)XcvbunB26C=lhMo^-&UAO<+w>!5!kZ4e(KCuVV(*s$Vm4QJIdAn1(f%?S1c({`un~yk@z}O{;^kzh0B`$q{!kU_?gO& zKln-(GI)9UB;dAq-!@Nlze2gIy1=-VFWKnsYEJS*qVv$BxtweQFiIr4hb?B+v z^mF~g0oGh%?$fUjI{n|=SthPsS`>9|NN1V*u@MrG8_4IX;7^~rR~0WJsz^26u>r|T ztt({N^Fo)N*KTT0G!eGv*qh19FB?nz3QHSnY(owjmVCMGoF=bbQ85rPujm~q6U*Ty zF>D<;*HKiwSW@-4hFjpwwg8i8hI($CTFQrE{Vit(VFoU3k%Av0dd)iD#V;0q9OAC8 zx9WW0K~%i%1{3vL)o{@{GL*(?->8W8nNrp=-vXWmSJ$G{ny(xqPPy=AdUXwc24|O& zZHlWaJLyx9*L`}=r#||7iiqgF{#IMa$v1K(HaO^fr1ck39}fQM74d;y@!6j(UpOMo zEn1jD-$^@J@*yv0mlq7u%Grz$jx5MtrT6&QxcKo02x5{xzj@3J)1CB6?xvM%w2+3O zxnY;yVxN@x3%Rg+i)jVYcd1Y9#{;^e6U_qiVl;f}nnGdw%#U2vKhg&11?YHA#y6GO z+O62GVPwqhj&!I8F8~PNSN5Aa-^VaW{m1s1kev{L(&9V_=Ibn6X8*K8v+=S9zmV<2!Mb{G zMVyapnFfFK$9JOvp?twBm}^_K{Tk2bbs3wrdY;*9ia|)pgF|%5(H8wXtl3lC^of_1 z`k9{JmbbxDf-Xf)n-)kv`)O@0CndgbOz(Vc>sIN7kkYb^B2%Y@gUXqgDxDJzP8Lo9 zwlnf{RFLn7+SvoVal!?X)GOvDA|<=bl|?U9HE2;oM$aZqxEa_%VjbVa$k4co$9A-L zTm~@kb2*}RPpY6?9hDtF0I^XN1*f@ga5YNQ@xY?c4y6Xcdb}rE(k(1RlPt|BAw)0M zI20(N*XgNWM0(hHPn}I2+Ko`U*vIDA@rJ9JNh?{D7lO1bNmBFpXv*%z{ix<1o7?nm zx0%#m#`}+w`TxMSJ9_e8wbP?d|JUFrf7pF2 zMPSduKkCP2T=0NA4{o%%w-^kLs@A_4@Fm$v`Nv6$ep+?(vC96HT%>I@=W`%9(>}xj zs8aYKTT7yS1)2^dJIIWPAaK22AW3Qer%VB`V6iS|TA+KV#cboHHAbub;sncioT7jrrDZ`oyIdM6(aQ_vY zGaO{|k9fO&7|OX$8zetrPmhJ=qV)6)u(Rhn?_E_xZ1wkxuE*~u&oepm#14jQQIZ81 zy1&HWl*M`QE6Z0uYZ}_h(P4#QmPj-s7CA*2`Q{R%g?y%F$s13Z1E4BI5Cs3_moPdU zKo>|9d+cvim%DBsEOeU>+IzSFqu1C&@ui2Of_H8;zyt{#IQ5n#l7^~(iuowCJmud4 zFt(+c*?RzV0#&l@4<95XCgbe(YwL*&B5R1r3$6BClhWcf_{L`ZPNX|mz}R!`=Ql#x zl6>9a?afuu9rg@?BaP8+lIsls_hI}s;<_)1k-rzV(bm)Q3X|;d2d~vq)#$A(N80@} zWSg!czp_&i*8>Pi+`H51IA<~jk*rxN02rzj;mqLS@neIu_PaA<6k>%Ygb97pP#brT zITM2C!f0=d#z&DxodTY9ICAYWa!s^nWW0ZC*FT04Vh4)Y(GEP14lD&24*YLTXnr=w zKEm(-4=80=Tv27^3odi{O6MmxFy;dKUiF>jt0F^dbe=CezXFPz>le=_d5zqA`*477 z1(1{YOn6B`H~QiF;y8e5*xNGc91h~jq3NWxZmey6;yCAMz99&8EO-BiG2HMEGj#D& zxf=3;2uX@U;Ws1&YkT^UJd8^PVUmKs=|rIIj=`f1T;i;ABqSG8Vco!+)PRO4CgZw91#o-pJSfZ-lg~=jTd5>n zpDn=x9%g}EfTjQ)57ydW78jJnFRh`r-WCMjd00FRR?dr0%{xB|s9l&@p63k^^J8$#mEOFmFr6qb^ zF7}R(?Jq~Km>1}5j<*?@3&fgggQhJIsY+-GTjDgqtt%T6*wI-4BKLB!vW@#K>QHZhEDDA<*c8I&Q`ag-jqZvS-zx1Kc`uWUJY*#L5m81S zhDz4@{B5QmGI>jXD+yq#0DNk4*k}HyV86yE$zl&L<}0406!ZX7pX$ zc|Vz{axWjjmH|9+-4@%gtYwV7>Ue7k!mm6Srds3FS6v2mv@%yDd$1h@EShjIU9K!f zaC9RWd2`-6#8^@L1tg6NIZl%%k7r$(9_V0%GJhW8YK-Ek@divm65ccM7$(d8c8Kz0 zbq&MovR?5z3Qve+G@%SDk$@U0+3tWWw3?#1-`(gtg&UmJ6s|kudS&R* z2+cz`s1Pv+kc9b3NK@aS`uvtjwv`P8NkL{rbdJAoC|D_J=yuS=eWrtQ zdi*|JA#RG^plUT*v|x94(Egx5`O(C;49m%(ug~0c_`gIr_lSi9Wxme3Cn2S1q)!qy8~4t0NiX1=5`&WXr`SYI=A27D!V)!luH^~l5M4KNX>*7QsF2=E=vy-Kj*H* z%r31WR*Pb4733nymuNgForW!7ukAYP7T zs)ioqb$SaqDF2v(uWb$j$Q&Sz5CdTm;oBTN`Kh&KVM@x4GY=x3VK3n0Iu@j9oLoE>Qaf!ue3tIyG^bZ6_wj^ zi3E4o-ro4K)*`WaG?5AkaWEwbNC0_sz4G%~Mh1p&qTxV_Wpe9>yU#a7ehQuod`tS~ zYxSzvK{jm}%&Ko{%YL{Lc(gKl6?h~D7gubzhm7qxS>-h3y59?)?Gr3zKz?)4l#X@kpWFlNW-`bsMi0BK zx>VaB;~{9;PIUE}*P@^1bMB-VcROR+%zE^1NkezbIsDAIIq%({g4(~PFtF1kzl4+# zpFNdF0{v}{gVb#PI8U65aj%^KpW?lqRMxW~-B1O@MVe+f+*Yr>S`qH60Z6lm?3#v3 zbV6^GlX>9=0N_eHEhUfD-~#6ieP$b1@~^M)uT>tzVf4(@sSC?$t0ohAqv7B=FtjxE z%VMvle|-u@Y*mK!J^vJ3%HEM^D?M;Onr8&iYfaIYy@w>Ds;qsaR>~!|CSIPKd(WLm zv$fQr+dC$>yYA@#iZSkNDh0G-+m)g7rRK@5-df?2qUYFB9roS`1KeQM%jVjxL9T*q zE?Q9->~<*H^uX`kj|m>{X?-Hv`9l4gm_W|XCvj51@CGLY$zK67(u@im3J=H}=k)&S zQZW8JOTXMV-pJZ&^Py4eL0zCB)@o#){k&%1U zL`PzaZba36(F)4B9mH3TjH0_@RoHe*F{p`Ezl((?jjKClW2KoZwDTO6EBq=k(0rbg z_q4X&o3?i#Z|yu~oLe(MRq%|-~y4O?+WOTF&n z%rG+4wO7{KtoEcR-yxSa4lenU123I=cBC8UK zV!xa!OD6LJo6w;nTwXQ8HQWZH?F^y#a_Q>gGWv=f_$Av=DAUIvaCC5twk{F#gRjdKAog);c!2L1qO>8{^*Q+ z95u{!s^3ATt1IPtvh|mOEiH3vWZ`UG%g43OGYKCguY`_04F`EY;iQLYtyN+tNS>Vm zwu{m6B4fU%6TBV{>LE{`u-dw1Y6N%!9OjAB^0FQt5XeeRkqBzvm`ZWKW8|4m(|fXY&r}7IUftywjuL&a^uxfuMF%kROmY;( zU4DC=?!|`-X@)@595TxOHR6BxLdS^Wp+%;7=TnWP5i}b++nzI%#?2eYicIa^F*S!3NA9w(b+a(?R2Ys$+n@5#P4y2~hF-TlSudp-Y^ z9_0|LG_WQQuIr=^$$*q@qcRYS_YI6q*y#_=s>ZyM_v$UI`;uOg|4YQ+9XnDkk;afP z5p4oLCab#K&#%--g^lJ)vv#E@BYXcbGQ z59cH1_KH+yFiKsZ0QNKHX_xZRL#^QfM~Z?Q!%#L_hnK#2K>)xvE%*eke3cNquGl-B zW__zLhOKpKB{Oj5rab%j`C^p=_5#an2=b46fykvGZ2LCy1j(z#24Qo>SgB;$@;{t# zHPxSl2;fjn>!NNhNkBJN()CyD$~}RalL%GHX8dUVTFi`&GeYnp6>E-yr69YA7;!$l z{uk4mK*|z8QQCum_uQfH%`b>(3@AKz@|tVTuin@%CrDg8zYrWLM%WC!Kkm8{W4D{# z$<%ceMkOQ8KFR0YS1gWMm2ms-+?H{G1Jgu*$5Ng)S5FLOEU*L|GvGRPm~55S{HCc2 zf!e?+;}LEgWbB6|1JAnts+YACNkqK}daXrvN|rz+zruBpajv6Beqr{)yAKQUulMy= zp<=j45XBkR0^v3bzD4-}7tDo&iLaRr0>QHaEYT;WCIHptUUM(K;b?7Uj+>E^erYRT zl_no-Wyo#!E7WeN#I{_EliZrTi0dZTbBo^-5`-FwcEDKF=aVWCB>7AN`?$utd^W9E1w z9;ph<$8bOu&#>i&O7nov7KS>OXKm_ zw&qpr1OmUSR=6&M*xULYF6iU?86gJBWY=!X7Oo|+EQ#v5ipHC=BQyM>36ggF(6YoNVl>i~13UqgdvEW_vmA0tJ) zlAs>V{xJrM3X0q-1(F1X=2uFP<3Yx|^BVSq-Y^8*aihj-6}pT|CZIjm4tDe0aI9Cz z%;}X+@wSoIdG^C557^_X+szb163JA1?>b z8CIdi!a4`L`*T1B)bl$YF7~}`qL^S4wlc}SQCGmkJUrN!@c9r7Wg1t6?%~|I;roVG zCDq>sa#o*ry^@wJ63?D7_x0xZk?*zUbvUoYJx87G>QRtBcM21p>GmDBnUB*o7>oZr zDm5oANm zodGn~Hz~w-YJ@^NnShHEpNzxf{X$%rsuxjmK`WCE@kr5CJo0AUtH&Ds*Y@M>YH;J3 z2JU-`1>)s}8MhtyK>4*mCnXt`j9TB#?ci*;h)-8d&jN4=5o`g8&L!K+voDw$X+n zR1RUNP!*O2ChZpt_xcjBR)u9HLq5G#1Zwt@dK!-$C7BGUf1|=njkI-kJpuHY4q@w`3|NJ#ylVa( zGEE}*(4W*0CKbp$Cq`uTq@Hsre%1WSsZH| zUiqDrWSZh%p`Nk4t`5qZK$2&4%rG*Y57hQ~-Y9_3z*Z#zN^~7`9~NSb$7DP8P(l zPt{vuVQklMh-ALk$#kByKH@!{#=-$;7>k3krTTfADBgGz>)gLDj@^pOBxD-Ih*p$v zBfevjtj$Vb@jj7-4G=}OREQCU-seW*zki1iAI&_G^q)CVX`}ez;qSi7H@lvS{_`4X zxo~>ua08HBmEH}P0tRc3O(aU8yP_0?0l;;{2~c#z32^go4A%Do*RKbFFPwhz5#w`s zUpVi-qhdSy({n&faK-ed6!8HCKG;Ux&BM>1irx!I02+PxrKp3FyOftL4!s5>4@MrR z>b&dds06$n%*~JGnc0etR`si(|AhPO@T~dXXAw!=ZwyHQ5W7tXa(+2M<)0YEEqw-A zWllGR6L|*y&Ups#q)K&Alyd+`@g$ZfaJC1z2cOVg+W(edfVp_L=g|E@(!%-fvi1Ye z#wm9}U?hXf zSNXn(G+_o$OUU?+Oa~*nGc=nQfM$B|Nc3>TNZ10eT(<|NX^YxTZqk*bemrHq^BJt9 zW53SdTKO5se%Q{tYH50X$?iWC0PfX@M$R(o^XE+{(7G%mdVUbe+<4pHpDjK#4UW3? zpOv0CyyL$vp$;Ddhy4H6SO0o6Vv~j_6HAq>{E>+rlI`g zXK~^$K79aqBRMKVK=QyRR*BJ#Oy!Gv#b{4*^Ry!76Im-ojK56sB-K+fFZ=8MB zua-I3t?t8cvuPP9b7m4pWA86?=XAgMD{nuA8>?a}r&Rkh*-CrZHm1PP7oR8U^CaOW z>|y*-#?^g~DP&bS=PGjVr!T6SnPe?)%jSKb@?p4@WeZ+M^dp1C8>5s|dg-lF_vawF zpCZk9aNcv-i|4PX#S+Jq`utxq8ir5mw~>(WCCfg3sLtUZrFWi0h!rqHD+aU8J{dij z2?K08r)H;b>8euR#*Y=f_?;e-Ul#3)%AxE^zo?;Ms!2De(+U4JT~qpUgSDPrpm5sh z2ewC$UbjEYCY%w)!DJCJYEZ~hcv_7a)@vCP-SO#8^|NYYTjSRGFe#o7=FY{Idp(M7 z^XV^${>?_^OC;eh{!~tQOa;7-Mj$^U++oAo5_IdP(nbF!7S^x20_VlnGw&$&AJkfS z3tu0pFjdi(7I>T6vgQqK_pokz@<@R@4m%#NATWO+|o3F>8|0&9TRMK~;&~ zMEXKAk)w$uW$R50nfq*50>brfscO5QQJn6XVGqeTR(m58XR3er=hnMWAxf=frc z!0-w7H5Ly0EdSAgti)ZhNj|XZ8o7uJY-C08fNA)yDw4=8ZA1eOe9)pIt4(eCucNnm zt=H4|Wi`xur>*0SK$+!OqLKwhhhjsi;-qaXP0kCI{vrj9xf8g|@6SNW+byTn)h-yA4@ zehwvD7bF2N){NZH0HL$jP9LM^`SMd^+`jx<>9*y`)=}@~pBTIsyq2Tak^@x1?i+v4hR+=*$yiJGO7hYDnSPx9IHG? z>>u=YUESf9bd)6;$ub2?c(5lIcTe1j(0YHM5gN zgNXDW#{9dG#o0MhsGAoOhjA?_KivQWJ&Hl3iWFYG$1UtklcKWlD&BefvxL|2wW`Or zo#bkLw+Eqe_WN(P{o>O#DVm~_D-}FZ@l(3Lo}7Ppg5Epo#lss#0(dvvqToQoM6&2KS++U&vZ2N7^nA=W4@ySpvc z9S*fqxKeABdZAHa-pqT+-(gKmEVDJia;S~hBZ9U3E|_6JAXMOR)1s*7jCX3{njDa_WW=Xbk2ddU}-B*W5M z*%l&^IibA1+iS%Nij1Mp#|8<*cKhJ`e62ziI2uU#9I+>Adr)2MSmAT#HZR z9FQyh)H8llRpm&X=X%q`ANz z?>f)*kw!iyf%7ubc;;RE7;XbQ+H-C;E{2HJ z-*C4wipm=T)s7vfSOY^&y}dCwpldKPUqu)X%@6$|WM-Q+q7c+!b|H8S2l8q zUi}K4s?|j;XHGVii^VsUSe@)cDk5Y6S~-BZB$ z{z8KTp;+~Ci1_MdT3KbA$k2v>O)Uw-I9+!Fy;2;glDvx6mXeW};Q08pN_bwe zc*R2H>kgBLg`=x?*#s_{YL66~%wyb2#P{7%Qxxc32+a7SyquzOf02f3)bMWy8Ah)! z`+MeCCP2xIbj#)M8mIfFbs=Y<;q>;I(68MRi0P5ceFz%YZDI2zEQ(z8nW-AxoVFx-uW}G#zkz`QnyI4Q z7IN7>PX^8g9H`kNRR)cTGT=AbBVC(AHb<3mv$a~?#k zaWLPIE2A8q*<>1YVO!%lBhrCpx89_Oie9GqvC`vCdlAVCATm@&7~o0AcuQBUboLCu zd%^{y&+%A&tlfUGfVwkKeyixIy@X-a5;P5gdr-CEq}pg9>9WwM-{UJtFSwA4O0YJ_MT^5vG* zf#scUj>t$W0nrDSjZ&1B`;0~@*x_JH$Fc3zq!wwL0oK0@Aedylt!%dPj4NZ9;pj1T7hb~b&QpwI1r0&RxOp*#BC&u#kIQQTub z`pcnja%h?u2baQJ%o#T}85bTn<$m+_S-#^ZKil+VWys;#$Yn&T(WC5}0--X-x83Ak z8!ewX4``oBGJ<-ErtBBy6r#a=?)6FMsnN=_J56|qla)L?6Kj2Vu{?M@=#&X*YJ8aHlus3`XLP3q=E& zbhK9TOdC&-%L_ZJC7VKPjP;8Z=0ZYrlQv&@{PX!0Mam>wPaO`meG_6o#o4w1ip}mH{(b1Ky}z;U(`J5MobsfU3#8t!7>IPq{Pa>er7RmphH zSMrX9P<`EU^Wkq#>flZ+RN?;_WD>Dq8NA~+sCTQsnY8Z8c0-ee!0p1#+SEc7p?A_D zktWL=w|G`RxWtsjr58sx<84+1gv8dCn+!r}=D6iNmW`%r^I0?Y*r5t=_k3dcix|RrhGDm`3Nus(Xtk7VtL% zyot(pRGTZa#GMYIFF2A5KlIq=MsZUk9e^RaC+=e zE@&FY44|&#mIiwQ#_6h?e}50(9vv8JC)pn>O1w3ReoyP?MRA- zi>6pcwzANlcNEH9L9Ohycj{8P9rs?%2J|1sQulww8kS(WGCQd(?KT_T5YTYo znqK=5g1W@B5-qmDwD3h2JIJ{q?EodjY)?tb+Kv@|@lZ+adv=Z9TS{!yZLLqR<WqO65h7ta%J-*c&f!h`cUpwa)7AB9+Wg9yu4LZdls13L>bhVdlS{hI zm#fFoUO;8;U-(d1iI*d}B^aTIvsK1Bq%aBu#yDyOmq75<4qKJu--v&@TxLfVAy_2Ow9X{{ll=ki1?2~iBmnW}|LEU;fL0I+_#Y;1i~)zRP2i~(E|tz0{VV6<*!MKS z6J{J8#zdc-cVr)C3%Es!9&NkA9$yQJ>ob2BL8k;;ix+O#4JY;&*P@|bokMInI%B( z_{;c6Q6N`fbE85gl$Y7Gdw>Gv3FXQGS%NBFbB208JtH*qHMV)qtsaF&)K_mTKJQz< zY#rsZ$G*BO7ApyGa^amqP-0+lv-1@rd)p>yzMYm+Qj|fb8mpB;UwjrkDlMU2Kgn+? zf8c%6eU?ii!E_R>VZ;fdIr?t952s&E(b0<|mfrFU1W+#RGK9%e<-B6h{+rw6$)mX; z1p8CrC>XXXr_@?9>yyyr!u`tm>|SI3TZ?Lai_=nbN8Xb3zglO--pr}Q`f$N30F+#2 zaNL)A19L$;ntoOX1(es~hAZcv;C%Qg*{Bp*VLxY|(Qp+824Pz=XZe0{#_9YN*6Wv_ zm1C-X1mlP}csRTi^Jrp7PT^Bl2W3EsXJD4XifD3VbO(LD`NTU(@)yo+*Y=B>(HDqr&+2M+`v~NP=wYPwj5PI$xtRxSjXV(k!z#sFF_QT)fZAcj^s3%uo|MpD z^ixOgpTa7qLhXR7K>(E)3BpjEAGqDH~SBPc@e z^%XT0S<9)4QbDup8i~hDZr`sbQi8TH9gT2kqL_6r-;M6pD{8{Bp9F3ky8a?v1DQU+ zl4^M`3yp`}JXH#)u5JE!WyjMf1#ff*ray0Ky`l8t2N^?rcn0IusBj(2s9guJI<-N# z05svVa8vN(Q;^#A`2tDSNwF6{h0Ug@zQ8h-3R1HVgr0mD2GN;c-bYO^`21)!x@EIT zUYcqBLRWe)(P{G3C9p)Aw=OO0C)b{sutM z6_XPm(WXYQ#k?FbBw=@edFVM(3+>(7S55kEnxS?V_?qR2zUHWeX+Hhovxz$b7;0jz z(a((eUWXf)rFr50a0COJnfcEYDs{7m>N}$ieTlFXfu?c=7 zE<>Vk=ete1`RigoJZv)(Pkk;B{}YS=8;ClQJg~dl2LxfPl;}C|b2lX@gy3?X?<~m! z*REL*0KG|kdfI>`Wswzt5A{nj!EY4AwmM!P$5~Btet#=9{usPV0r}JmR{o7B>zLh$ zJ#B#xsF$R960+*WHQTr|T^RA6vJPY1_DKFDPN=C|@7`P25J#1|0 zMB9`RhvU8>Q~DriQWX1$Vz+0IfO;~!Gx!ckj(?_}J^diMk$_d_ud-cxXn1$%nf?oa z39|-+yy0I{+nfYl_-ZZy>z>GsB?2x*Q!d}Ty}fbmpQjKuK(~BVf+PBF4QPmRmP$J@W~==bwir>?QTs4P zLXtPCTd2G?qbT=rawi#>834<9JxWgx>SOs*F@x4mhb_+$Yr}$?Q#-MMJ44YtUr*Jv zbbc#V24xRMsdfEjaYZ;IJQ}P5lMqV|B9qmrTPZM5uncgXJSiT52cFXb_kE~vXM=!~ z?09w{5tB;d5h$+>K346~aGpFKPeMoXtfk5Ff@}hqdK0}muyhJ2Ar)u7fS1`Ml&w{u zf#Y-f`W-#+XRl^`{V=_EVTS;4v!ag!iVE1ElaprPY$g9o4E4u-a*qUcNMe_ap$NBY7pj`3Yb7>`Z#$dhN zkNOLi=Cp_k_y}AI5gD>iSaTrWW1v3O7u{sxtJ1t6S0G-Ijrbx^K>p}@%H9NMn}RmL zm=Ldw>-$rp`zIb2NPg)|`0y|~vC%a(g*cLj z;v`DJ5}xQKIbDPgZT6RpIl5FxW5ia)L#$!x4A&h5HBOgK0s1H zzZ3gwYxe*Ux09ci!XB`IeA0X^K1~&Bh(tY*55xq|!@EEGbIo;-hLzn4`dV0ao0mQ` z%Zq}aCr;Czr-&{3e3dvzRRVb`RK+m5F=QXHG9J$JyDl?s0*Ev4M=`&FnVc9vU5^6k(EA)nJ@OV9KpIFTH=_ zuBJ7MxoNV1w1!x(d=k|(d&zyT$ml8hXiZ;bLgeiFsZKk2xGEMOpP!!SCt9n+1r2Nq4c;P{a##;_HCrLvM!n1+SX5gYr&{ z4Y4~UcUkt2cHH^a+M^vRRdlq!zlR?^@c+eI(z@yGYy17ayN%;kTHP)Chzy@3>-`Gm zTRZ(TtG{Jyp!gp%)`Qh=_1mU4mUs{)m4&s%_dWLE6dAqR`MBP?xl3zCIA=VPauo2Cl(>Ru)vEuUT2 zWd%0Os(t6&*6MEY?EWl<$p%#e!MqLQk%+t>tF$IQlq8-pl@fNx06()f4)@tYcT16i z_g3AH#jlPzA@+MKR}y7oHYzP`#;P%^m0@@gMPRa7Q*V!=BOK5YMu@#L715>Jt0B(o z_o&!T3^z0{?6e`=!CE8{-y3ECS*YwaS4z%BI%O*5=JF*cC3Tq5@)(MKgKjnDiS7#u z(nyYYFLexrAl;Ob#mcIRdNd#roP+kYPOAsS>|wa&9Ze3f=rTi@#1C52bBc!#h9=(f_fc(l9PTAwgg*U}HG3$d58;5FqO80cR$wNQ zn1pz>(Dk}K#?afxa$(~6`u*mxBw@&8Pd~le+SnRQ!raMZ<@apUSe{q!aBhw#<)00T z&w#HlXRjo-?wyNa!h|pw&ac8r%h&A0y*76@H!E^RT+n`V_$_6F{m3={r1sgU1!oAv zrRLiUT>qbqygTq~Zr_!ycO@|qFOaBIU8YYeAZQ>2S)5WX7_EVn=jhyx@1(7sdyd+# zxgX0F5>390$|{it+ja5h&q><+J4#dIIMTHwQ7F`Fu2PM?YLoA}1Tk_rdi+ zZ^YJ4e7Pik`zL557TMwKIXOR3GJp{+DBwpG7eY;N*gT}5JxbhTyQQb6XA&c7{tmjo zA{u;?LHP4_skNY;_~x}P%&KI|8C?uhpDiC<9+#jY3$BGvqRQRlULyYY@;MobYgwVn zKWp!=haXBT--3yPVYj3bXxEyTxe{V`G`lKM$T6!n)WZSgA!eXss4otk*mSpCX!&{~ zc)!EiItQ$T`Rci{%1U0kkg`?r3fC?4WbIZa06kB@DR}hZ2IV0;rBbBmOnii;7!=!J zBLH2i4^#8lUa!L<-zqo!5h&i)Pf{VAZBzZ9KH&uzC9y8QX67f}c1k);9yH2>iE+`$ z!}fe=)P)qig4nu$VW*+E80fE+Wa#F|&!3x<{+pA00s{jE9t(TL=1Fkp z9W0Ji8Qpw7_(&f6W`4Ke^PCut%HeE-?oIdD2rOAK**lron%J)N^e-h7tlxp5QpoJZ zg%PUXIJ_b>yIXPo)&SIDT2u)O6tF!CM>|N zRCG{0Xej)xvJhUpl~Yb|p6;q+N`ic~wg!c>2n784xQ#$gNj{p_tay(-Cf|F#yD_nq zB_OqX9?Xs8?s#nbPO04cPGuALo~|EzGIaJa&aa;RCF-hs%i*a2R&gmN5!2IQS_Oh0 z28=v-;s2|0e8;wL<`*uzx~~m<3;x;BqMYfF&MqDN zP)-5tj<7W)bj+aMGozCVuev41f)XPF-nB?KAmccJ^gdzU@IJ?Hf@s}>^y>rB$;)H; zd-zvZyP@j_VpRyc#5n^DLnQ?o)sy^VKHJLqwBr7c!HQ4 zep_LE*Bl-C1%G)^m20dZs(+&zL)+4H3O=`u01_jpo)*V+>+@o@nl-ia1I?E?fI3?D@iPM5D^x#Y?p^*#LRbhIgtJLr=As!IMWZoc97V>(l`eV$;mbFrsYIP4 z=A-wqHVWFOPG?*?N*C(ocvQlawg-1;k9+bPNofZ$P5G3VHv3zrerLGXB43!fUKC)@ zU)Ap@cPBh%Pnd2vJy6Z;H_YJ+pV|X=JE8+FJkDG)RuWqi1j;9dJd|+l$8wK%uY2c7 zAl!?zFceq1t}pi}7Ds|I0L{?Pf~n{JN|)>2d*CvMih<}Dr_d0z0KW$A&|{d+(K(m7 z4Ct?QCTS+}!15{5WC|W1htEYz%d%To{cf9#KbVfuhVJrIdzEHAU{ChS+vj#5;XE67 zS`FV74r)wl3MgN*3JJfeYT$16H%HastLDpp)Yf41T23$c;BwPWA#rUgL7EPfuJuc& z+lxfwnI7?g?8VF{*Mt=Os85Oxo&jmv%z5ynN-Tuz{eY6qQNOhq+yS{en7VjY1W6Jm$}S zz@2D}25%;60-zqP#0EFR>e#i8!OH26BtS-NoIg`3i_T6udTxoIXKzl1*% zWK}@XtsZo-SH(H}FNH4tZHN}U~19zdr5ak!0SPog$gyK$+#B$82!kegTeXEg=? zlFEF#`L?al?fluEk;HmOCgMO|QRL8gT6&3SmzQbp9Mh+S!H81KAL|kS1e*FvzK-y{ zE2{K>CXNu{K)pQ2^uG`RpA^`1`}vuDiEUcljac=xtY!{Fm<+NT$){;`npDScARR%N z>Njm8INNb-O;4G3lc(1wyIWuh%R~IW;`(LX58ID(nSGSK*rdPOvHiAI(Dv=dQx=jT zS40+-%mVy>QbKmK>qR1EcfdNQ7T8QEmXRsrs9@<9+XscorTaW}ne&C1B$flVRQu^D zkX)!%QAe7-;`l8glnpe654R1QC9w(2Ru%z#;o|gp)txCrhg%A<_&#&jtS}cco0vGS zJsK{&-;~UWTN%H>Z4X*o1LlS9sj{!}#U0HFsd0_K?8{X?JtI5|w{rBS|42`x*O{?3 zJmH<5{+uCy^%2sYZV1G5jPfVDgA^g?@Idz^j-YFIp*!%rxVXM|&P@gcWh*Si^n7er z5AGbJ;4MNm$^}-hoi{%eb<4^HcPuALKYEGlGF)tfFMctgmcp4P?MG6T5xnJ&9JKCh z*|+XInM>#efKV7TS2ytQ1k0h}lz2r9>6b{!G!L;NXQ7ehKdUvPfU6(=NGj$cyJ>zh z#ee)0@!iU9p&`J^O=CvW3NlPmQkoGAEA1y=1yXPLvPGNQwxWT_!oK|wms%r>8nBjN z3~j5r+|kk{5gUx9U{(y)sJ$^ElVZpF%ebvbYQ4KkE&&u|En?Vb2QoXg?tTILRZ%Ul zWx!y#xe5xmOzH?5;m{!X$`}>yS938V82&PyTo4&3-OdzZ8bf>T31~3v_y3$Wa^c_*$=EgiOoK_ zpk?%))$cFs6-0F38i225m!SvG@@xKVk9TC$Hf!cu`d=G}X0 zTXB=ccz(ag%wA&g!0O)K{np-8ntu}pFmn}tqsGT)Koa%e^(W2-Nr$6arfe#ZqQqM9pa7W~_lywwsUR)9|70$AAy@!C?Ce_2Vfq$1B>PsaFdd>kJ)> zg*UG16S&@eGqt4nU}i1yY*t6dXe~e?r`Huw;ptybtjL^&FIu8%aU-&*u`LDE`&=S^ zZIV5a?6>tFPxsx5Yc^V_v_Ukq8c2mSSEZs( ztg&t2)e5#ZE@3kC&YbNl;R}a5ABvP){~DA;Snt9B!c0A&<^fALky3uTUOE#m@!$W- zx&N1DTtk^7x~hu#7us#iq7Z$KRPuImW$prmPm85XOOlVIT|n5{c~eWCixvu=dQaH{ zb9Xe@x^&){;opj@<3twV)}!%doO4w1uL_kbmgeC9GJE}*x~3|sE5WUKlauh~pxQVcmqA#ON3}_;*|3etso82P7qG?P;XNbH*pIV{ zT>a~6!2bW30)8LVVvridJPhzQz+{+m1x_YTC}6;pYM0kbSC|$h_l994f3|Jdx+4RL zkcK8!&2GEBe|Vi0@sf4NV2wB=3|8k{p3_*iE%>#|L-Ow{Qj%h8o-uvysU%J4US>Tb zht!GEPbmy?$UE+f@r#2VKf+;P@!sgFz->$J8%dU%G-0$ z^Eu(6zyUiGH~Ke`qPtg-bKaJ-`@SY*1o+Ii&5>&H<)&clUns}0ao4MvUH&l9)OboU zBLSKOEob?Jx4HCEwd|=0XxhcQE0B5(|VG zrQvlxn;exkQY0I7XX(mHdfjtxAxL{UW)E&I;aR<=*6Ldg`&5_0`Bz>1;iAUid-bw7 zcwWfbLmJC(XH?0SROx&p;6xEmmd;6hs}<$kOP1iHixsYg8_S^mHtoJT+yh7IzzRD=p6KN z*uop9zpFVK^;!*_<^eHU+eIk0GW(DO`0+R*J6`X6(h^SfEFiUlz*{yxb;{D^+X;E| zL{&fjpl5rFJFSN}uT}EUMQ3v=t+4K2+w51zg<8Klb6v!I>J7We`FtP5Mu$WGZxB}} zwbyt&%HQi^B)F&#@Mvhpy)W^|8?Jxg(fd)@>)u1o9fnCv zqOQB~_cZx*XWv*r=i2OPFwhlCi^PJCygS1|C-M-G?Ue~l!7!0)tsA9&X<%5{xk%I> z&Ktfw_QjWhq4FY#g*!tA(>w5aDcj@bmC z5RyMOsPCa+2VZ9K?z&n!Q_-&MVLmXaw(<bzl-$Z0kRFt61>e~aH;KspvaNT&Hl z=f-GP_oK2gr24J+HIvGW$qFX1SDTPx!uG2|;=s%1_sRKMUpq6XiEM;d#<7Ixqkh^4 zX_DW|g-{@&*S#Y@_F=!>pP0moV4#d38rvaqy~E;Rl>K}hPw~B)vmF%*e{}3b7tgfn ziq&|q*X)6-GTW^Ei&9T18h7xMa$OR9h^;=dm*ncy(ZG z)&0$~A}ZRUf1=}c%V(3F?YRuAJw7$yh+eq%0|!S`UnSin6Lt)4j9PcJlrH8^GXza9 zec9>3B@QH>>4*&fDDZu=uOxE-r^eGmv|eyKK;Tcf)(O(d+ZDgRp!YcqKgB(9@%ldi DVmDO5 literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2024-05-07-using-fluent-validation-with-abp/post.md b/docs/en/Community-Articles/2024-05-07-using-fluent-validation-with-abp/post.md index 2dd1944ff1..76ae7248fd 100644 --- a/docs/en/Community-Articles/2024-05-07-using-fluent-validation-with-abp/post.md +++ b/docs/en/Community-Articles/2024-05-07-using-fluent-validation-with-abp/post.md @@ -1,11 +1,11 @@ -# Using FluentValidation with ABP +# Using FluentValidation with ABP Framework ## What is Validation? Why Do We Need to Validate? -Validation is checking whether a data is valid or not. We can liken validations to the cell membrane of our application. Just as the cell does not want to let in harmful substances, we do not want to add erroneous data to the database, which is critical to our application. Validations allow data that follows the rules to reach the database. Data that does not comply with the rules will not access the database at all, and the operation will fail. +Validation is checking whether data is valid or not. We can liken validations to the cell membrane of our application. Just as the cell does not want to let in harmful substances, we do not want to add erroneous data to the database, which is critical to our application. Validations allow data that follows the rules to reach the database. Data that does not comply with the rules will not access the database at all, and the operation will fail. -![validation](./images/validation.png) +![Validation](./images/validation.png) -Validations make your application run more efficiently because they are not connected to the database. Validations should be applied in different layers of applications. Validations are applied on the UI side. Validations should also be applied on the backend side and database to prevent malicious users from passing these validations. Fluent validation is often used to create validations on the backend side. +Validations make your application run more efficiently as they are not directly tied to the database. They should be implemented across various layers of the application, including the UI, backend, and database, to prevent malicious users from bypassing these checks. Fluent validation is frequently employed for creating backend validations. ## What is Fluent Validation? Fluent validation is a library for checking whether data is valid or not. Fluent validation can be applied to your code in a fluent and understandable way. @@ -14,14 +14,18 @@ Fluent validation is a library for checking whether data is valid or not. Fluent ## Why We Should Use Fluent Validation? Fluent Validation allows you to define your validation rules in a clear and flexible way. This means you can comfortably handle complex validation scenarios in your code. This makes your development process much more manageable. The readability that Fluent Validation offers really makes things easier. Having a clear understanding of what your validation rules do is a huge advantage when working on your code. In short, your code is cleaner and clearer. Fluent Validation is also very functional in terms of testability. By defining your validation rules in separate classes, you can easily test and maintain these rules. Fluent Validation is a widely used validation library on the .NET platform. As such, it has become a common standard among .NET developers. This provides advantages in terms of community support and compatibility. So, using Fluent Validation simplifies your development process by making your code more understandable, manageable and testable. -## How to Use Fluent Validation in ABP? -![fluent validation](./images/abp-fluentvalidation.png) +In this section, I will show you how to use FluentValidation library within an ABP-based application. Therefore, I assume that you have an ABP-based application that has already been created. If you haven't created an ABP-based application yet, please follow the [Getting Started documentation](https://docs.abp.io/en/abp/latest/Getting-Started-Create-Solution?UI=MVC&DB=EF&Tiered=No). Using Fluent validation with Abp is quite simple. Open a command line window in the folder of the project (.csproj file) and type the following command: + +```bash abp add-package Volo.Abp.FluentValidation +``` + If you have not created your abp project, review the [steps to create](https://docs.abp.io/en/abp/latest/Tutorials/Todo/Overall) it now. -Create your product object like this: +Create the `Product` entity as below: + ````csharp public class Product: FullAuditedAggregateRoot { @@ -31,8 +35,9 @@ Create your product object like this: public string? LicenseKey { get; set; } } ```` -Create the controller of your product object by following the [documentation](https://docs.abp.io/en/abp/latest/Tutorials/Todo/Index?UI=NG&DB=EF) + You must have ProductCreateDto : + ````csharp public class ProductCreateDto { @@ -42,7 +47,8 @@ You must have ProductCreateDto : public string? LicenseKey { get; set; } } ```` -Create the ProductCreateDtoValidator class in the products folder in the Application.Contacts layer. +Create the `ProductCreateDtoValidator` class in the **Products** folder in the `Application.Contracts` project: + ````csharp public class ProductCreateDtoValidator :AbstractValidator { @@ -67,8 +73,20 @@ Create the ProductCreateDtoValidator class in the products folder in the Applica } } ```` -Fluent validation provides you with ready-made methods that you can use to write validations very easily. +The validator class you create should inherit from `AbstractValidator`. You should give `AbstractValidator` the class you want to validate generically. You have to create a constructor method. You must write the code in this constructor method. Fluent validation provides you with ready-made methods that you can use to write validations very easily. + +The **RuleFor** method allows you to write a validation rule. You must specify in the parameter for which property you want to write a validation rule. + +With the **NotEmpty** method you can specify that a property cannot be null. + +With **MinimumLength** and **MaximumLength** you can specify the minimum and maximum number of characters the property can take. + +With the **GreaterThanOrEqualTo** method you can specify that the value of the property must be greater than or equal to the value entered as a parameter. + +**WithMessage** method you can specify the message to be sent when the validation fails. + You can add a method to write your own customized validation code. For example, let's write the code that requires the license key field to contain the word “key”. + ````csharp private bool ContainsKey(string arg) { @@ -84,11 +102,13 @@ RuleFor(p => p.LicenseKey). WithMessage("Product license key must contain the word 'key'"); ```` +Try to add data that does not meet the validation rules +![Adding Incorrect Data](./images/adding-incorrect-data.png) -When I write code that does not follow the rule, we get this error +If one of the validation rules does not meet the rules, then the following error will be received for the custom rule that we defined: -![fluent validation](./images/error.png) +![Error](./images/error.png) For more information on Fluent validation, see the [documentation](https://docs.fluentvalidation.net/en/latest/)