From 77f008f328d84d704c357b5d48904990213becbd Mon Sep 17 00:00:00 2001 From: "chengshuyi.csy" Date: Thu, 10 Feb 2022 16:28:43 +0800 Subject: [PATCH 1/3] rtrace-delay: add syn toml configuration information. Support to generate tcp-syn toml configuration file. Signed-off-by: chengshuyi.csy --- .../net_diag/rtrace/rtrace-delay/src/gen.rs | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/source/tools/detect/net_diag/rtrace/rtrace-delay/src/gen.rs b/source/tools/detect/net_diag/rtrace/rtrace-delay/src/gen.rs index 21b9b642..1ddd8be6 100644 --- a/source/tools/detect/net_diag/rtrace/rtrace-delay/src/gen.rs +++ b/source/tools/detect/net_diag/rtrace/rtrace-delay/src/gen.rs @@ -96,7 +96,40 @@ params = ["basic"] } fn gen_config_syn_sender(path: &mut PathBuf) -> Result<()> { + let text = r#" +[basic] +debug = false +duration = 0 +protocol = "tcp-syn" +recv = false + +[[filter]] +pid = 0 +dst = "0.0.0.0:0" +src = "0.0.0.0:0" + +[[function]] +name = "__ip_queue_xmit" +enable = true +params = ["basic"] + +[[function]] +name = "dev_hard_start_xmit" +enable = true +params = ["basic"] + +[[function]] +name = "__netif_receive_skb_core" +enable = false +params = ["basic"] + +[[function]] +name = "tcp_rcv_state_process" +enable = false +params = ["basic"] + "#; path.push("syn-sender.toml"); + gen_config_common(path, &text)?; path.pop(); Ok(()) } -- Gitee From 94e2efd5f448cf6ba86b66ff3c29bfb304ac7a43 Mon Sep 17 00:00:00 2001 From: "chengshuyi.csy" Date: Thu, 10 Feb 2022 16:33:06 +0800 Subject: [PATCH 2/3] rtrace-delay: Enable the functions in the default syn-sender configuration file. Signed-off-by: chengshuyi.csy --- source/tools/detect/net_diag/rtrace/rtrace-delay/src/gen.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/tools/detect/net_diag/rtrace/rtrace-delay/src/gen.rs b/source/tools/detect/net_diag/rtrace/rtrace-delay/src/gen.rs index 1ddd8be6..6a1cd8ab 100644 --- a/source/tools/detect/net_diag/rtrace/rtrace-delay/src/gen.rs +++ b/source/tools/detect/net_diag/rtrace/rtrace-delay/src/gen.rs @@ -120,12 +120,12 @@ params = ["basic"] [[function]] name = "__netif_receive_skb_core" -enable = false +enable = true params = ["basic"] [[function]] name = "tcp_rcv_state_process" -enable = false +enable = true params = ["basic"] "#; path.push("syn-sender.toml"); -- Gitee From 4ef8a9f9593e85ad15cfdfb914d96d8eb77eb93c Mon Sep 17 00:00:00 2001 From: "chengshuyi.csy" Date: Thu, 10 Feb 2022 16:50:22 +0800 Subject: [PATCH 3/3] rtrace-delay: support syn pakcet and tcp packet jitter diagnosis. Update the instructions for using the corresponding diagnostic tool in the readme. Add the program that generates the corresponding default configuration file. Signed-off-by: chengshuyi.csy --- .../net_diag/rtrace/image/tcp-delay.png | Bin 0 -> 106914 bytes .../net_diag/rtrace/rtrace-delay/README.md | 67 ++++++++++++++ .../net_diag/rtrace/rtrace-delay/src/gen.rs | 83 ++++++++++++++++++ 3 files changed, 150 insertions(+) create mode 100644 source/tools/detect/net_diag/rtrace/image/tcp-delay.png diff --git a/source/tools/detect/net_diag/rtrace/image/tcp-delay.png b/source/tools/detect/net_diag/rtrace/image/tcp-delay.png new file mode 100644 index 0000000000000000000000000000000000000000..4fdac38272d55fc652b44570a5cca462342e22d9 GIT binary patch literal 106914 zcmc$_WmHvR*9A&R9!jJe6p${F<^a+NC>;{g-QCjNDV<74Hypa98)-Pw-F-Le`_&!y z_x-_Ou-UQpv!7LS&K05{CxMPigbD)#gDxfc?jsBgJUk2xToN)OaAYYbu>%H%0!Hec zu#yYxUOG}Usn~fh?4uO;g9gQme3W1?7`!cprIdQ+!^B(W9EkzO0WU&e~pYY2#WB4-OXHmpu|4afvv&6?(*Jdw z1URgP_`lC3@nsfki|}RkJX*5&pZ9n=D*`s@|6DJTC4+6FpCv=y{Px#>Kkx4y_1g^p zhYf#@ZGA*oAlMp5IvjHPKPCcZ6aJUI|1A3d#q2&qknGz<2faW-BjhVTB+N)byMFpAHBs*W14KT>>Ff1n8-UzsSNpS3#Jht_Ci544Gt+TDYeMP^1 zGV!<}F%r3Xb=*td+Z$R|?m2AOLGF3>fl*u_=R3EIys0V4aiTN+T zZGnJzd1$cW>^7g^cgA`5q)f6;l(Nmh4qW_wr6_XY@0_EBokq9Y&>?+3Vz@~eu0-eAj3l>%6rBsMJby`v~xyE zZqNxWG`6{XfZhlfX;fxGvR#V#a8(oJKRsT0KjNR)oYfwDhxd!+Po#|?XQclQ;$8ZU z?H!J}F(yWw4jJ7hG!KXJfLspCYsOjI>YheRi@X)cgtzOJX+xH=0WOW(lZnNX^c?eK9X)m&fD zp!~>Z#&0fI$Q3kEspD)N6`$fE#F+sy(Jbe%yScq1AR5>4N*$! z^c$bx>@IXv=-HNUA3EOViQGHkC>`6sH%GH_d-b-R;A%VlAQPW9zz-TrEf2q0^ z>J}My!d(KKStjNkA|iM<+u7$Th4HZ;H(z3ghwz-dE{mYeWTKwue|JlPYkjK0E7yud z*;|N&l$4pF%rRQdp6#`91>*O}yUMpeFFCGq`2L>dIi9D-mULNI-~rSa`a%0{$t4$K z>;vKAp!3Zfi#M;JfIZgg$_X_>!PQbLV!=a<+!S1l!$mypvirAeHWl`)tEY~*IDR#1w$)iCpoIGxX1o`E+)jHe?u25yHxz@w*DsvNP z$Kv>HtsU9*5)`$sL+cx6EnO0uZWM}Xo9pBKC9&cq$-k?aM16$8@V@k89q-2yC===+CfE`J z1PE3jHGlrSr|bb1Y;Y8fK469*(xwhT1w&?sf7Mozg5rMwFk8>tg zeTBc};q+|4LR7UsXu|I4-&wz~M@h6GXWoQbz~)k)4xqP~@=+|H)b4o-`@U9UFrR+r z3k!SUx|o2X5BcDgvvxTDgmDuL*rE2Z%hV*%nA;qEFyM|QwRYtnNDuh_X0#0nFph(! zh~F1P)UVSPYMfyhoI}&Q(0_@lK%8Q#(}`blqJWua{}Z!57#^lulV?(*u))XR;#VrVcO0k(SR{4U@;4n!RuM&-zqRFfSqfmSF^n*!SP;hw7UOBt4K?7dtvlokxY&PQs0TX6qBNJa9L8=y3>+ z<+l0McaH@IIaeh-9n&1^!wK&E5U%aS0(6F`+ek1W!b|rPLY#p+3|Sy*ca+{W+_Fbp zvfrcmqTtX>5{OGtRX^8y{T><x#l%FM#-mLQI_?Pk5NbMRNBU4ldf4VV+%l?m$B(WeGC%p`f%81KkCCU zP|MhqM&n!hZysVGynK75f<5kr@K!mit2i7>WVjy7gTdZZJt2-oV~3Ti^+YWLnL!&e zFz?=xh<8qxxt5?~X|s%N@(ixj%UA6Lbm$*r9*)VJbgaTZc90uFBGo$KR=l2{86!YE zBEYM3;GHCYN8ae)V9^ra8N+-Nm%Ct(KraR}$8gKX z+Tes(&S|sr?u5ZI0EajlS@OES4)ueb|C;A|#M_Qv)~%lu6AxQ1my}$-HB-F~>*&rd zUv}Fq)li4Vh-_*@`)_}LwVocJFZ24K8Jh0Wu_o##lKL>rclhpkj|6;3Q zGlSUcW+HQ1<;%l)nRh^bqDE0cbL(ZxVE}a`Hx<28!u8#z5IF((+vUw}8K$a^r(@c} z2>?g#2yct4kMcx8#ZEB<-KndUAD4=I=mlF zGc`P4xSda_c78!)CddFP9-BVOApcL!i*MR`Gu#gd?~8vl(vM$wM}mv7!95KxZ%>N9 zz1^=fMEXkaVoL;%3ER)a&d`u<+e5gXgC2L)OXkkFGdtpWV81%RP!_&woatF>M8JQ& z5of#R-Hog2pYAmO8qQ%Ygtn)=hm7jYwcug%X$PkFRVPt2-(j zANhFQve#|-dL&=q{lzbq3yvPzo+R(b+vU~OAaV@--pJBpxfGz__d)25BGiZJ$AH6VwPD#pw#K> z!nEfJyKf=K5jKmCGu=5O0+(899>?9CV-n<_6wCLBELzT|^{R%r!fwOwCXG(Zzq z`>3NpAW-Jr2JJe9Fm09~%{8%gv#rvA>{`m`Be446O_-V2KaD?U++QvW>0(8bi^7RL zcHzi(xiPn#jobWW>+R})P|>u+U5S#yDwg1O!sl9am@q+5*aX%d*9v%q%`eNkfH3Ap zx}U6_pjBW;%Vi(AOJvz0OqNlUNCid|7m1wf-@vLe?0gGVEu0X-0y|3^hv^@Tjg_@N zxVap)BXw$+m*OVscwHX>TS&m;yjUlq(J|u9bZ{d{$~!#Uq)$%joG{5}xwnMma(w&M zHq+|H0URUz9Q==Wr+Q~wW2+r#EFd(-a`4rr&?6y!SRjb-x#9Ip>w_cr!__+VVgQ~7 z-N`eSQDe5PNWKGPG?r!?m;IWV&#pUH!_E+#KnzkMI)+|uR$yNu^n6RwcKgo7%nFGh zV52H&xtO>8fHr?X;%kI88uH9UQixjB(7~QrzfFh2>bI?=fQEJx$;*J(W{ZbplrQ68C>6IZrXd!HLL4az81>Rj6kF&9MH?#y()P% z&-1BVkxcK0>)eX=uE(kXUvN!q+}KU4g3t;d?2mt2k23}VFAlBwpZ zdti#M7-xTSPRQCa>R|`pbyan?9k4bMlC}a)cF^dNbMG<+bFx8G+dTIgAO<>o`oOYjK~&V-+n%K7(c*M<3CF+;t;HV>vH<&kT%~ z`*OdE86^_Tft+^|zqFaXI7;9X{Hg>axXdOalwbam%I8i}<)uv8rh!aiSm~k|{wK~r z^=`d45~d~99I(PMxw<^DesOo7?1$diKI`kj7N2XqS_@mpa{W*mGUcx-na{Lf2Ahv*so0uF!<_uC(U8=Z^=@tzm)PY4*c}8Lq!m zY=E?Z*n@-@NPu%hNG%>gq?|i~b~@R~9bntRXXZcGzCwp}K0&S){<%_Kz~B9aT8%Pl$49`2M$~ndf_r017Q#a;pI9#eY%!-tsNnJ5#4^ZA^i)c%O*6~^ckh% zSJkp-bG$&fwaoq4vYFxDvHbXO>B2@pw+uvS@+gdoH-m}$klO>|5#7p;k%6C4UT3-W zgEl+g3w!8US+hESz-V@nockgcUsU~MmjQ{IpANl^x{k4oWMNBr1nz~8`({&ERl_v@ zXl}%d3kV`4zL$8D*U_Gl@D)2n2&(^9^{G^0Z-(C5LT$N%0?mmAA61dsQjiG(q zM2;5&-;3Qq2-BBG39{Ig=>n%JI6o*h10_}{3_BI9;q#yQ?j9;SYUje&xqUonp+YW4 zD=rV(XVDF}2Td&WW-8ih$HvjRvBO~+3z-h%QpYXuJGzGChCeS@4>1)Gp<&NA8DAGm z?{Sr%qml2i9zAC(mW&d5aN#~`gYVp{8X=S8UiIgW*3GkNMt(K&fuh!9PWbA2#G8x& z`P&E)Kb_~kELg`<#l86u8Rhb;uuq75ag?p}<6v;Y-hg$WH_I-v+G22qu`+3ck*se1 z{lo2H6d$Z?Ps)nDJU`3+T3=YWHjr744L?P~-CxwTMlc+eoY{kr)e}fgso42`Hi!9S z7_kLa_*D3l!r^@-U>Mzu*FPD))tMX_9ALaTI)FQ@WozH8$KnUJHqUWAmP5m4I&3)p zRgI-TX3vkp47UMt2=yo@oC+qj@%V%o%3DrEif?l7)B=4X7&N|b9ttAlfnL==SEE@h z=_%KU`q)#kKkzP%y)VTeLSJOJv`+h{s4LC2tpDr1+j`=-s^<`B78BM>KV2-*w$neSOM6*hbF2ut>eCfdnM8u?54VPP3FmXcnX_6~Y%den!vxHGs;4W-{Io)OHVL@eXN1@>efUahz6%@3lMok+fsXKJtSNIEmy2>x_F| zYH{yEL~$Lv_>ll*L;tPMvsVK-k8{4iUwyv%P3l`UBFN`)*|Z#SJv(RQ>}Tt9Ne;Q{ zW)YtcCq*K$@tJ)p*dlyxFc6SAROz28&~RA#@jTgtL6${SmRV(FNo~%G!ecu3a2OSL z7vCfnWVY2!8O)NMU(NpNY-=W%kqK@pb_!=Kt#@{egDQ-XjcPofsiLTi&I3ohDy98b zvy~}py+V2`irbiBSjsByeoMzvV!S%o!ixYaBq427NbE|aSV(eLr zVz@|-1e&oM{=y?X`V)APvusukOa@tmtx~CC6>s7Vl4KW(<>eLos7ZWdk+TM4bUfc9 z6Rvk+kf1>cXq#$f7izXT^T@9sr|TfNp4zC1cc<8>xQ2p{Qh?w!$%mtc#+(20~;Bn$dQD{DIW!iLvxvLP?|73+=w0?ZkHc>K3Og~ z*ROm*TdSuK74>L1MCSDKnd)|ur4y;jX3L5+3^7v}1?x=!&9WLoNjOFM!uqKnlWeoP z?aVQec8^%}b*$f7RzNdlkn9pqj~`_l{(BeOB$t!QSA%S1@%$LCe$sBRa`pA1V)Vcq zf^6Oe+vi%`pL7u3>4xiqSdm#*Y&?RULENc%ku=ZBF4&GYld-l3I?+ZzT+{93mRNW@ zLMN8mKnEp;RUWF-sNsdpdwwGQBf-kF&~#uOLLH3{Yan^^$&kCzZ^`KMd)`B|a^9#P zhS>q6uno5BJ>3acGRzGxnJFrA!?JyT7~^Ipxm>?|6UJ^QyXFnlP~Fsp&6fegy)e2- zN!_GNin?RL`rs`KK^#;8r{Gl-($;>OuU(wu>U3+xE_O#htq}R(r;ojebwoQ%8OyiH zoDc>mbPYowUCC`$wjX9j33Qu4YxPRkg_mLsmv`{wu>F#}$A)4LGCDUO)2i(kki_~i zU2Lm^$Z_;Pd-o6;cPV=+e9ljY{S1_dVa3-a)0%$1{3TuGm0h}RS#2BX_+NP744e_U zF$bDZ=sdl4VV1syS?V~w`i4aPEEho(E*DnR-}l*#-3=w@m2SCSosY+;5m=v9S5*Xq zv5!Ia#Uaod;Q_5NA4PCtdOgFB@TlfcJiQ;)LP^=Xh9t0IFzm19M1H7`wo|${2NyRW zGn}Pwvijlzc9GxS8E1Bn@DW@6{!Etqco&1b4GTSaKNJ=o130f?+CupNbpbI)0 z#*cKyXMHzY>ccFdz~l8!{Uo;MS!T5_q;IhQXe0+;2j??m+tx}QVz7R*Zn(`RvQmJL z1E*&YgSqTh>5sr3n0GvWFAMj1?rq|q0GAy~itP9(P{qzLJzD5j<#_!l0jDAqL}_AZ ze-bH{9ptL5a6MU;qhWJF=vQ4D8Wi+8Ge=bJ!wGlzGnEJ%5S#^hZoTVqn7&BKo~~NC zh(Daf>ZuoO@qM#CnDFE%0R@EU^(GeLLp77t4bvTp)jY!W%fj|qh<%}lz?THZj^^e- zMTw~uD7>(L_v4!o820{`Qg*NGcFY@DcEd0P9c_*s@pc?HkvYSBHdO3-25T7`k8*Xk zWN9{KJLW8*I9ZJK<+p=*X`eKA3CPvnjXOUi^yHm+|0NNVRsC(8v)|Yxo*Oyj5s}YW}{Ld3s&}BLZ*8YaeLd#hb|$=PMs}k810zS zQ;JqcC}EUxdSz^AI&Y_vkzLHz{`JZ7hxPF5HZ9^9gp-H#AP^~$2Ay~^be3r{^A2# zb$f_Uix353yAS}%NRF)j!Sb50b+JalS&cQR>JEmI&{7tSt`C@qzQpi<2st;Hgn( zWXVT!Hc2-fFYVzcG}sjBiw5EI<1_8!{{U~*NU-RLlLh@v5yi1+4uVZ^hPBzn8=a;+ zf3DvL07qt>n^q7rdW0|It_W_eS=;LgESB{@&#$BMVg5ayMbV1N&xzP~neI!k;7Ifb z72^!@`Mt8`J~Wu!=Q+lf1wfrDnmn`LFfRW=VkgvDD2+_n!ou(Y@6EXwQ^k-{jdssZ z{vm3L)X_V7d}Mj1ib-h~%t>rnus&<0BqjxhBl>@q%LZ_q(H;FX-XQ6FA`=3Gy<~-` zw^9GWFPY%B^ozeX%<#8J4xvZD#(NcADaR1deazl;{EKjYLxhdot6qo4+$M-#Qk@_w zT>A?H0?~C_&m$b>M`bJg#3(_z?3^;y+V|Oiyc>9#!iTLb{~1wzwDvT33}pNooeAc9 zq>+ic`ag8`H&(P z&;DFjBm(AD7t|L?S@tzG0fFligq(G7Ddc+p0;-}g_X|7vBHIIsjiL*d$?ood7H|sz zVUH?0618TMplzVM2_CK;<9Vq4e;y-%Tz&KGb1BytQAapD0l5}nkh{iy%|E0x4>>FM z$)A3t!!n|$(LA0gir+2$Gtd*+VEc0^o-&VmojB~eZ;$^)&7}Ds;I|E15_^<@qBWln z{^MPdtk*#N@;~IZnjDtqK`XU-u(7>Hgs}UnoWq4$G`rb^rR%I2u$W!Xr&oObG>cJx zSyS*XR(bKe$&U$Mc%<6^wr!NG7dX#nP--5d_>YSG7UYxuHBJHzJU(|mVA#FMj;K_w z>=&^GRDgfXQvm(>u%lfq1o@`+VNL?x^UulFksUDMcC5{8=jA0^A8vL#X}(%K2XGI_ z{4E#3q(@8`^{kiUTSQ)`?<}2CTu>aW{V9d}*%GoK#wnyWCd?9E@0_`4ZPRw*I}5q{PGA>*1^(S4ZVD+U`^1`9aDm zl|2Fu;|@^sji-7$tKFxZpw>2m{@CH)p5DQ3BQSv?kr8Owoa8?iTZbq*Al$IPIf)eX z&jPR{N$rx`u10P$$9MAnvR7_d4A|wTCI)>wsvUXj)^&?cdcaR{f7FRO50&f#;8t;i z1S_vUpd`^JEhos267T;BBS;ikOh#&B{_nhS_p(oIx7^XejhAd$sQ&5V-V)$@5zl9j zfy7qGGE6l}7DV@57YX#Y#@@Zd*M}*Zg(unW{dkvqte*h%TV1n!OVU{6WG;?G!HO_D~B4GRc?q>lH_gj_7;2Eom{3P0iQG!vq zd?(faXaQu2Jj2-a3w7YEV>G zPc*Av0@zyu6$t#qTpTYGZuuGSD?8D^v4_7Q z%#9jlu{|R`r(9f*lYo8}f1H^@rofz*vf^A;A{RMca1twv9XjzCz!{k!*qEj=^#1MyBqr5?Mmjy0?h?qx}6BnCGI`@gM4i z>K0wC$zU0fwrt(4zk36?-Z5UoN3w0t#dZ6b!k>q2^=!J>m*sz4^Zo^FDPD*t`tzsS zBhmwr7^1r|4D9|&?D8J46GqfNCbHzF;qknthROr|+Gta)HX*|K9hDq6PygmVF9c2kg({jut{>8o1R%ob|Kh=T2?4d_0$OOhmk^w2z zP1ddXZy0Q=22un;;c)iHDnuegLOvSV!32OwTa54_hKFCjHW!H~V`bW9xKAR2KZ4Ww z$DI|90>H+YY3KhdnbMH%U$u!oMct|Dp6}dn@bFLTbIVf@ck8w=08@UAQYD#F?PjQn zok;`_5Nd0-lKp>@-7Ml$hP{OY4Mqk1&1*&o$qqKAzKD!@NpBQ5{p6)Z(ZEHyg!9_d z*aY8@>)A%<sU^NE;OlgSFzOIkfXq*#@0uK~>9 zKNSHP?CS>=Vt67@{^Qrph1Y3z{eaIT8wPHQfW3k4mbH>?n#np?X1?!C<(x-pxZyOFE>x~%yiO=U zIkg60On_=tH5Kuz46Snb*qCE@I$Q2iWlImwR3q9tZoaN04!Lr@*)GgwWA(aosUSut z8cT=)dnLSDUw*i#yHbbB%@Hd6T18)4t;_F$Q3(VWQ6?dWM*MTjNboMU$vIjV5x*&l zUJq~p3IA`;(WiL6gOFp?&f%}>}g?&_-~E%qO}0LSr&@q|1kdtS_SKG6gj zE^8t40~Y`#L5lauVXS=ib69|RSqsqUuyCfp6d!V|8jRl+>)g}-6u4Z_yE^RuA|#X!qkzJ(~ zl5!7x1j@c;>CA8BGfae=9B(b>MaMD8)~%edH3K&QAV=prsMk;XX;r@(sJEH!i~;Zv zvU^Q~EUg~(r^9@mut+3WMyaL+^J7%o7&H?*r&}>G)DnRs9=|!pY`8BM?5QIF`ihIh zVN_Tzh}0<<(-4}Vit)7Q^}x$@uy|h&CI^KG;JAhd0~8fAKd@+H3c6HL2cOx8yKs4B zdsb8G-!8dO%b8`mA2if&9RanBxLaBCi8MDrdVNm$QkL;U{iR(24HGHkp&K-Y-{Vyhn4oiwJ=i%!1L3eYcD|6e#+G3SXoikopWBp z?@~hE^!h*C%(V6-SVvZ^0LVD*1yBhcoeZ+{J^-KfQrxp0!7k)gVlV@g9YHD3F6S|! z%;Ob_$5DF?4O>Mk@ZKGiK_t(g3K$zeL?O{gfXoeop_xq5vXgRoq7{`@KjAteogY^8 zlIfM!Oov`4UsdJ$ijK5VpRrQ4VYwYq==)4v17IetoKv^4+eYsWLx3sm*)Z>JNgq-Z z!Cn#jv1$gPaT*(u0KmN&s@b$Zqn5wxtWNMKGgeDi8YeK7Jq${^{c+q> zCs!4;XuZE!1sK%eK;-HMR_P;o{^Kq+%s3AdR#@ZDLot*C`mzdSz4riZNfyOf!2xz9 z#0Tihh|A_SH1a{lD%l93`QCRASV69Tx7ijz?7p*6kgZDW7cjXwiCtOHRq$hh^Wb&|l#B-5 zXa5zyJP4zm-kWdk{l5b+2MYEo!{s5H9EhW*0hfBRJzB5 z_nq<>PyS}l($ZdmKW=mJO6wqB=Lz`b{-E-e8FIB|v+Q}<-OqnWz2LGQQ6U%}4$xb) zUbexDa5Rem*=NfC#r|^9xp$qHHq*oI>LjU^MCu;k6)>9)8qGnuW!!;PPe|D!!j;Ef zMepZSC$bFSo0_7ViET!kW|GaS>V z*@)cH2(m1k48z3fp6si`HCMk7ohvm18^XTPW?>Jix3=#9bB@L?BWZB4E%_(I2Op&XNyj++kJf63y;_Y z2OGs(D_{$Ku$7B^lhcO`eLC}0N8w~kR8QP6i z4*vxa)*~S7!&lxqlbO@P;r%B;4h)K0n>$@yJuJdTsuNm$l)!Q7FDV8xm2ATpwLS9#s+0K8Dg zAwZq5YAkfC{<9MU_7J3|@6-QS@YRZF@Hp~|$$s^O9NW)G#2%PHjN(fI5{w zTDYPJj4rJ{C_>`Ts@ucjSp0d$-)Z&_#!#A6nRg@w-~pUcAI_oF5xav%!0WItbgPpRA}`|u$AuUWXZ*8!^dsBlh^OhRx|N~TvOCo(Bh)X2uthNLStx6)`DqS zdP7{CVIHnM=q$57>4HCPv(XKV)7Vtrgf|ngZPf99j7l3St5>=G&Ia}b%CWc%<^dVz z5L^PR8Tcw&F^2QIe?7zybz7bvER_uTFX0@E_e6IaGLK35n@~VM27W3j?zKIaJ_)E!mMe^o3Lq&I)4`+o}QxuUG*43Tq67@?2+Q)I9FOV4+ z%uffNpl@(`g=|>Z3YiwFzbbEXZkYK;o%=h@_~Z0dj-bKDU(8R3^MhP~}0$FRj?3erbkpTBLYgqJv5OwQ$GA3=|B3 zPDG+ekE{b7?Z;6H`lIvc6QvE;e?VA~SR1|9w%N7vqyZA)mioM@2JSfzx`ZwT#i*Qq z+l7=9l0~b*j{>RUHOIUl&b1fToA&gbRpqYrb*8meLumcf^P?|3*CrOxzKUy);jlCo zGDf;5NKGgSAx5Qb*_7Ey)llgj+qu_8iIl)u3+E|qCCVt0V+NgRWSE6 zjusY;hW}LCbWuJpT1m0ql@_(539xARH*g*mF+bscx~Opb?1-Ff^0%!t>uY@lzaYgY zC;cq?zU-;%tC~cvGz(m=P@we0Ma>+ z7@E|9q#LfXj+1@{!EDR*RaoQodfLpLpKB7$#U3v|KTL(aRo8ef8v%QqUAvNWPnsO~ zJWRp$oMhSQR9Q%N=shRe7&ICpNOKC-(eA}|xViH?_ zTpgCE@d-QAPqob^g|-WIgFq#JUW9(7)u#=>injV$pXA4OZT|>31CUJ|WtB~$M?KYb z95y&+<9XsVYQ0!CksWy9Qnk!-%xEpoRrdH=-Vf{SVn;VC#GMtR|Kc_XSLBWV&>WuR z<`sjt@&D0s!{nlbt_@!0h^g=BVcF?tfnv3dD5${R3Xc;A5l&{tZ5QM>xd+8tU*WMw ztgPY^$cYm@)Eg>KavhiuU%&U#mIcI_4{)~HbOM=wdwB`4AM6|RO1<@>jbPzWP9n7h0h&AIlz>gyMY%i*&B z8gjZ-xs*%y|HM?v{{Yt*{|#Kj!@}OAFwf^6mFsnO)Z4Cq&QxlpTnt1KxotroqNH$b zPf{egOf|=O>$Eq^x|wEAuX*+ciT0DLR5@n>{pjF(z#9zz56B(;reQQI%a=;1riVu? zuD$08N|xo>wY=?m0tn@Jpz+92H{WjZS!E7!54`|A3n*K^lu=4f4rohRKX(PsN8%iF zk$;n#MlLjsP#F5t$tM$3{cnKIEGTHU@>HMGJEN{vzo@hvCnOD2N1)#)2(X?)Hw1{3i#y!wsaC*iK`**Q0pWR3%mSvY9^kX6_=uC{wn$!ZcBcWtj(= zf+6*7n{tBP?0`zgCQz{9)GpW!vN~*yUcF+Dyr}ppu?!v5g1`Pqe0)AwZ&o($F!@37 zSXyz(cjt8Kb0$B>Hm! z`lR@p-@UO={{&*l8RYv_eUGcyd6h$si@uaiB)t7VYljP9AVM}|9dA5<(W>BY1_ zh$eN!(lF~RwQ|*XdonkCqq!(pxJ-mF?mM(oL%%^QgI_#MzlDZ7_!b~I5b|eEnJ^O( zue*&~DgnVbg^-F>eI5H$CN>e>{?(ca#vsLq(xUEPvfv6I7AT;`pD%l-L`d0ylD zw|U$s$YG?m9dg@OMDQDR4#wb6orL~65ENws>lduS%TZmE`M_Tut|smoz9BGnF$2VQ z6U^7;=aOO;ru>Lc`d*RJw}x`5sTYzOA`u_MMbKa4e7Z!Uf$Jk@ z=fL`n+~-->51As5Rbc%i_mSlodU1~O@FXrw{%Jo`lTl^GXFXOPzFLgY*{ z{rQyo+>w0OAuzQ3%ad6@ zD-=JNX~Ilvx=qY4KJqY0-v@?zL8Z;I{w-`7)q6X7!IznR)q{nD#@6f<*Kt2>9p9WXo|(L``_DvcKUsOqvvU+v$&SfI;Rtr zIXTgLE1w!VVp;ZL7dk&n*8GfIUe9XK7j4r9i}cQOR43CK_e!b|jb#ks?JuOAfPU)< zB}fb);F3fMYi|~@JQbBm{~F{8@H7EKT)!AW#9WN1ez+iQAF$-zjupt^rEqb~Rn;)B z`5ha+7qsG2BsomOY9R4iA>?WU|Kzo+BjLUk;r{+Lb=l3kh4UF5oe6Klct>jWBr9dX zZSBRRb1@0tOfFnk;rEsSLaZzHuDWpPOXa7WhpJm@2JbzQNiDp?zn93?HKpA|??AQh zMQq{cW;QZVm~=4KQcl*&&)S}ZUs0fAy)RE4tjHMCm1LQbz#}85WG`=<9rDq2FekkS z3UFB8e(F*ebiEW2CTT6`iF%y|sGb2#OgmWlY+CYo#p{xif-nb){K!z&{9KNAJMRxi z1nAOcRPYiaXgO21MWF+dXw&1~pqFLJRJuqA{mmP- zb8hdNGBT3{??#=xd{7woFj=AbtJi?z|3==@b|}AzHfVAGuziBA-Q8Q{OO##uOH91o_5KDV}3ertDaBCmoB)gbABP-7T4nOY}*6HEq($s2tb@ zGBd?>jK_LzSPZT6J-n~DCn+fnX)ap=d+08C=^h_56XXnYdpn2ZsSGtC4<$>CFjsnQ zsB{1Tz!*=o6(bc9Cpf(Yn@Qdo0m}(c&T%aPE`v?bpJGs~Ud=sFdp0gJv!QtQN&Bl< zZPS3JtD)m5&|nrJz>wDT$2#*##+S<4G3%V@_>)=Y582_Nbpy(!Nl}UffrGLBEhFdj z2%od(BeHsD&+%=yaPT;6##Miip9m?Qqe~;N|E1lssK{Odv|DD9<;m&FTR^8~Gt9F& zN!IKy;_wn{;j*{N*DUCEih|fPsPvy9CQXoF!929y^2g z2idO#wM^gmSzIQFJyKSYIL{iyy{CtT(f2{4ZHU(qd$uDwzMRu9ph_m8X=*P`Ew4T@ zv4||$tC1oeIr`UFn2{mDrjl-iv!tn41Ba)rcO%nl#=ZV`FGNgCKwIryEcUD>gDJj_?e7WekQl|;)gZ@m69emR|+=7-pzOc%c(A!S3!pmJoX)?rP{z}3PS8tXYAqmn;cl%>^-0 zrj!^A8i53c1lv{)?C7OY4&0;*9_f)jRkBNBYKot2aSYuJ*a3iDPx>O-XMoo2kfA6V zQ^3&zwaC7+o=7n`%b08wSyFIP(!Gqe(od@&cOQX132ID8xM8pV28}6dP^4`j^o&Gj zDEiJQp`SQt;fX^$f8}unC1N+|Q@SsGtKBcJIkul8<`pJo4HX!|mNXPQMc6iy_*R7- zeNcWXND76{nR&gw7coBz=W8TLO?R}eg8$F6fsE4F_pRsQALbSy35EZp6E~z2DA(dzDifdH)M9=kSQB7@SIhfKuRttQapnO|7pY67x z>T9hcu$CPRn$BH6_KX74ZUsRkvPqD3^Z{y9$(|5?zQ?y5F>O+MMAMX3?uUZIN8M^s zy<(Wt+Oo2fxdaJ;+=njjs`?t~Y=@j?ymo2nFYH{5M6sR*+ID5tC3n)r1FGq<${th2 z)kQlyFL{;w8Prf%YUI)2I+TtLJ;rhv&yQqRTKe9V6xAlK>ddy)O~oh=;5n+zAF02( zXWy?i+~atu-D`Dn^v&rti+&huK%#*xWQ(B{nmfRH7S^Ym;K)~MhP@?ouV5*26PS9V z&wE(q$&P6Zh=u62DQd$V0L_2?XI%U?yk}#zWs7=)t@Fafc}Ks7i$XhbsHQ-kGl%uNPV1vkPa^Rib|~)C{W?bCE0@ ztW(3yH$4r@xIw*~{Oh_F5LZ@Rm9~di&A&B zp-C#QYUYw3|) z=aY?4E;hCbm`zJno!>H<&n}SzKZ%`gyMBnQc+Wq7CC+IYG@sX;lk4tbq7qV^pB}i{AL08V;lXuz<|f-aXS&m| zNI!2^^8Ex+4F@o+iW?N~17yXJ_lI5m3E(PA#WZLOPNy5jnkr;|JcPgQOX1Tx#{=t3 zNvrZCG)~qsl z8(QU2P?@mwHYXv0nW#wOa%2AmsYPb?)lV}S6)lxaC1U6x44pJzF{Igca=!N_K&GRNJy5#*ih7F7ZIw(dDa~#aiUZW$+^y#p`#^J53o?Z7rQP6%Fh$jbb6s9 zg)&b!E@}Bg+)SwI)HLI~>w0x16C~!m$l&J%@s|BueKUV8d*=RTN83dUzoR0?&&qik z4>1YEF9*dJtDO*AQ+vCxDpN5CUMUc{(&J94h$a{R~dxca{!dcDRxCZFz5^r{SDQ&=+>j8^x5O4P0I=H;8VQ@ekug5c6yF{(zl6(Wau> z-`^RA;!fmwn|0i_^H;wYW=L1zL-0LKzM$)G0R0^HlIP`ON43TWm)&7B5c+LxjpgQo27+0rhz)m*EGQ@4V z7KDSB!BpurCWb#{AU2ZN{GA_*Rzu@Ov|nQA6K z+Ip-90+?~j);zZi5`2)c6tQJSVWt=Ffm}aKEThK5yF&WRn?-_es6&wa3BV1lHJ3g1 zcfwBEt7Mmf(h6KZklFO)fAQ00UgyQ%_MQkxo7??5Brh3X?gM-sk7FBv(CX* z41g9cZ$~8d2hbMUrwIh~l0>xt#sIoZUJRkTqoV*84@wXzFXt1b`Ud($4^fvi{7!x1 zm4H#pwt#JSzfC;eH*0X@Z3Yg1l#+o2=S@A8um^TmV#?xe!%X5(fW{p}q zfxUwNR2Ux(>O8PBmbbw@k;|A*b6QmQz$_>eiCrIM4NCG=3c$H`K2cQL>=fm0)c^() z@Mc<#`VN>~1W}8J2RECQn`nC!7mflMCgel|Q6MAT(@Pf84kBy-o=GibK%@?yesYOk zSaL#OfYl3!3m8wE#Z=RKH*K2=^Zii`GA#6XS3a#_9styyd>()W7%VMkALIFM;Lj;W zfGIA_Ct@(~^fdF4e-D`4Jbu>o2uuv=1>mY61H5_eE1s+lAlW)-0I90th6`v;-c;H=&etNVjySbVy07ND0y~BHcA~cXx+`w6vte00Yt}T|+kmNW*{6y?);p z&wAdmSg>|p*FNJoKIh#4qUlrKg1B{IfT>oR6R;WvIw226Nr;0GZInKQkB}SqC7I^x z4dCV_0|XK6b$~4*jP_wyX?-J_2N$q!emU%ez6LCOKOBDaRlQd#N?ru~ zzUc#x;;uv909Kr-_$o;2ruN-ELWEH-I}pg zua*$4My=Pg+Yi!$Iyz_|xp4We$r3qXgtTL)qR}eAot>%u&BVK^E48!>Dre5N zp8s?Yl8Cyf(DY^3Sjv3GmvI6-O(zpQP_A3A3P&}uHJ_>Zgjsg_ZDu(&kcc|r-vaLh zEzm^neEUKU#cz(h_4wz3nP;|Lb0mi`V8ik0kOs_NeFREW1mnq)KocEd+>O0h+d-I3 z|MSzXodf?pa1VHbY0d638WY1%84qSODF5oN|1XFr9gppY+{LE*TZ=w&UW3PS-GOap%I%M8fe58&28_$Lab zrv`T!CD32`ttG-a1?yq;Kv6+Sj&@I5Ot(U3NvJB5)za2TnY<8QMQT)Hu1Ya>7hr7-XnR+u ze7B?E{1siSwB|Xj{#rrd@w5+bupzBVs(wGD7cX1j&eb(d+>oksh8w^Gr8TYwsuVi%1~7*N?pgRw!W~kY>9WW?BwJAqV|R z$bG&rIsoNG3(d>)^ZH3nUM^JL8(`7+CMoe_8PsOQeZMU+|Cix74y`_DDyR?1GKntJ zvezFF|AZk*9pLlq)hbDUW{ShN>k0nwN^GYg-ej6ve7A=0H=QTGJP0*Zeavmjb&p7a z=KUc^I=UV2@Ku6;K|Anm68Y3ol78q?zh~L26Svlh@uUDxTd#gkK3sm<1KJ^)FZ(?7 zipYv;u0F{RFw%t~tdHvl#!ud{5)h8|&(0SYE;2Urq**;+ARddl_;iN% zxIX#$NvWXrQqEuL-Gi}|XWAa6J$6PzQoyiE>{ycDwm^ObIT{9bRGb8&-LRCTy##21 zs9Q9TD^9UVLKpj(e!X>c>iU z(+eVdj%}t^UNXmL_z$2Rd4VzMGkU4Z2(qIKmW`id-b)IWrVBEE~|Pk z=w`Rlv62{TT;b@bvRTN$;g8Fkv_v;@R5c0WQmF+sn$0)xp8lXn486tL(1 z;Mx@D6=|BF$~oB2_urH6Cmfo8x$+pLlx+CEl?obQTH1WQ!Kf+bx|M+J$-_VQaardq zX^<568cQn*QwEsSKvBUkYeEvQR8dv4~=+dU3x*of86z@aAaInlV0r6=_rU1bc$U z9o6l^)tMyK`_w=ljiY)gQXBBSZr4yeE9tZKA5(2x*IJXE-1`{GR28@c5yFzI#4e8A zO;ZmiJqspO)K@9|ku?mJj1%nY>ix>bp-4rNWbQ_!z%9ncz2vePln&LimL+#-PRd2o zxdYTxTdf~L2rVx|i^bKtGT-sh4Lhy)k8rib5c%ar@2_V(zrq$%yAUOc3Z{+09dm~| z$p+NRXJ0+ps6fOSst0Yz_8@3_ON&K9%sURhe zDq)<*#F0n!yodfZLci4t^eBqg+ov_e2Rz~Qj5$q^Z>~&F6BfNa?*-wGOK}Y|A@h4? zMS+acplGl0P;Cune1uvt#d2c+G%C^asLfW}%(I_4*ZRF+`aHm+ro-*y{2zY1M8of# zM|C_?aC_oGf5#H~?jddt_^04_%9hvudsF~XSu7JSAOK)wRnv9C*t2@@5 zujR(5xRFV4o~1T5bquO5^Fqllyccp4TW@hsstNG8Vvt|@I5s9~`^Vk9=W$Dl=L=o7 z<6`G(Km0LyI@zE5^TMzYmFIB#>;rGIzk4D%`h4P_Gx}>Q)95RT^627*nQvF~1;M}i zCd+h07ha4V-vS+{xOQiZ3FEDq_&rK5w+86OYcQ4sE3w}9cOxGaLvzL2lAM+Fe@I64 z;rEEF*e)zx>)4>QVym< zB7dC;wqqA@mV~R(_5;H7iSt~ip&+t%`<}UVKO;dW!_$h4`%r4F6~t@4CJG;7ggMdK zsTQA-f0xw zALH_rpNHl>E`+`F(%qaE*hsj)Yn>Q6r6fx<=JIMJ`$MoVL@z`s0U zCllnHGEK+1M8@k$pNWZ!m6hs_#+bq$H;e~O_VygkD3%h5K_0swaq{y=5Jy@*(HCKJ z7?7do5Lto(()%yKbL2f_@9w^!UjW5@64v;@o;LjyNeL|;G|Ub^80Bh&Y14q&H<7cy z=~72uLJ#DXIh zxsd?I5vd&-$k$`?hNjuxX~IM(tRc&m&!rzFpAr9h0$Caj4Tm*_;AQ_=>Wesnb-_R_ zF(+Ycu9Sv{N!CSNOodlz_gdM*sM6SB>@V=B7(dXsV~KQ`-n{=k~cT&o>C zI+kGZJb%{TB6nwefSZgc0?~S+;hJs$mBnDbfREKT1DatL=+7~NK9@G`OS4z^%|`I$F@;!)=Do1+}Gq zOrk_EiDHe;ecO)eCo;4c^uw6pdLKIPAt_&^n{Z*=tP}#P{ylw}d?`hLhTK$FomIAC ziSL6eF0SF!Xt#+u>bi!K#vK#1e9h~~E1`I;PIx+;*lS+|#65fE1>Yu*(N#%lQ0iGs z*}J@&D)MjaOpZaWtG}MB%OmRARIkJT`O!$-VG$TjCRmB;TH_l3l;e@3MG*SiWuX73QJc1c-eJ%Bi0qwuXsV z;%?5CvKotW6zMcrpkucbCA{8^LEE@; zi4s-Lrv0aKuWx19_tkIMIb74?zxRG%)t)5E)kxJn(+!R1eCwyx22?I=HV6V6^91uP zGQmkilPQPEY0%FqEe6MxNxHjq#k~s~WjiLYsIbeNtwm5~x{kJ8)8#KsooqXrP%hjQ z<;4P@ruS0$SDT*L8iFY;M$7$`9s7f|qz>mZFDmVUa?FqYcRw%LY|eYbJz3O`-jloj z+;7;j&FCm9bS?o6uyuaTzZLsMR`B_h0c@*h{xvEZ8qf*%sKk3o)rZQ+n{Y_5igP`o zL1ou6wqkH&$}%aI9nb3}`hC!HWS;-B7ciV+$z`afj?^l(8iC6+YQAVLFfXghxW)H2 z-h6xayelNbxu5Ox)-Q-gNhC`=^lzWW**{VIQX198(n>W(V~K?Eur|$`4|f!kwjgf~ zW~$TG3iv0cW*sBXfB%YT@>+biL!5?kg-~9x{L!6*bKDBoEdE#HkXQ8vg!&o#H{Zkx zhXjcIwNDu-zDtkj(%dx49=*!}56CICvW;oPFzrC)yr4i;?h@x)bXsT276YwY&K5JGPXaE`=Wl^`%=9pNzp#gYIG|wP%ljF3I@2 z3-qAzvC;u+y2c7M$^@K)R~-GAwBJ0Bpqse&qLvh{j)e5!A#sCqE0VfPISNBo7j^~{T9PSF-i%me6mj>-gD)`Ek%$-=?PAm!$W^bP`MnnUPCEMO=jD`CKt zG&S^=7X7JP+pS*nOc1Zv{l4+Y`0>fp0_oyt!n+vE7g941Gn3#<9W>c2^gI68)>b8zAH`tjMoA0T@2Wa@ne}(+*jf)f=~$?q z?Z?{dl8%K^F;|CaTS^7Fo63vAWlTuGLir6o85Rf|`GGrh!Jbbm=WZSYWAJb$kTjZ; zUV5~iNq0Z_UIRl~rt*4*g%-Da_oN47*bssQHB5c~F6M2W0%ts;&R#h>C0t%zVX`l! zPRgvZW8`HksWPs@sBy+7{quwi&w4}d=KS_@S9pVk=Rs$y(z};lO8mXifWd56UcH6Z z1ryN}a)lZP?ba)gv@j?~{t@kTo^&`nT(gPK!HA=_ zIc6giKoxdvB>IOcgm(Z<^37?)vc=9uCf7#0{*X;2F8KK3+Dp2;GSHfmi7IRT+YO zA@M9>@qHy^nlqaWul{_e975)3NzxzIPCfebN={Ha{dnZIh>>2w7yb5%Hbu!<}8%`f>ZkU)X4$dYK&lqRLF0i`C{{(bIy>Okg0NP zpfWvpNgyzhpy0>#^4cqDF_nP(y3|T#bpbNEoru?0}l2y!wjz+iIyBHTK-zmB56lR6^h*w2F@ zphIu|9Xb+@-}5XDhBCn$AYa1++7yqUxGx#wlNQ;(q_3Cl^Jh7z$?0Okld+>9wbdUM zQdN4Jv^5(jWsnbphlerek-f5^SSr+Q-=X@qQ<=gw-@OZh@69oY=fg^?8|Q!OoPiE@ zNlo2KT4Ny#(&9+Txl^ab#aaVL&3TKT?l(7)_my?3aJNZED-Y!?3yB;mY8A$RxOV0+ z(mfO0SzCdU@B=3{^~7$_@9+iNLZ9^eJL-ZKEVf#33MJq#7Xi9HWo&QEhbmQLvzdz# zX7C|g#Q+OdJBc%Jg(*;}j8)!LaDP>7{aAE`P~VCGluDb6SLv76Y%1Ng=Qdq@IJ7DW z`4;a4{an@VZB(C-Mh+h^QyFbG#&-p3s-Z%o)EQE#Sd;^^!pC~?oycSnh>QL}Up zjUjD);jn}JO5g2|;C|9QkUqN}@8_illf^F%cs{DTsq>)`FXNml|5YiSJleHzbukt{ z3*nJkk6h+$*INDy_I?2BvYXaJ3G_{21xidVL;1Pqjy&^KBwz4>22{C3s&fU(jf%sj zjdnVzO&8EZ>OYLCd@Vv;T}*(Nx6)0Jur`flp$Pv~)`DnHqzN7)Se!gTvP*wflb~XO zl1^t|m+=z%`3ZbZ?@m@NcIk{l=n%IWYD zXWf@fQUrr#ogcfI`B6V83Y{h72b6xfktDjyE5>Pp;Uw#dO2_$)Z)_8r7wk|64WoY} z+DE;5nJMo9uaNB`=OVXj9?+(NjczCqQBA!%IW;PANX!?WcIPesex!f@uSMkcxo<_8 zv>G;T=-GNPZ($kvz6G4fyr9g`-^Pj0FHv+;K`ec0*UZ(KMRZv3-nor$LRquy>72ng z+K}ER>GdbYxqYi+Ax)r81&EB)A_xd{6wGAKI&XN(hbeBzsPwof0BzVkAMS?j&;61d zKj(OSlHbE>i&XO;VzG_>ay&%)yk_oWntZ{pKw_(TvGvoOGQCe(G#ko53b zxUVE$&OvuU>JQHm33DfH?;x#O-lIzqIgyE32Js4BaxXd`4^dvEgc8mBs*_?iWAgo= z$KN+ral-{C6FyUR3KwOYT$kijSvNg$Dzz(}o;u#%wbwJcl*2r^crQ(opgONtreE(8 zuEXNZq_L7$Fiod?=+%ni)tU*4G^LsF&SKDaf71BAPH;+=h^2hZy>H~o`%{mnh@-O> ze2Mz|v#Vx)%Hb7>gV9NkY=Bgp1ikM5NuvfltkyG*FqKacFfY8+XjhS!NPX>WO{0GJ zW$r(SE#P+MwVkUQlEAT~3<=w1sc5^Z^x>PZK+m@Uu$yO0u2S^_uRWY}2r6CZJg{CT zO|DFRn(lK zLSVw*=RU6^xYsqGjH)!-)G@>Kr)J1gw*Bp?KXmc=gHN33Hb%DX59RxRo(?~BnAIQN zc#}{}wP_FetH?dbx)E<>nirWMGgsKU?L4sbUQD~F)80)|O{F=PKql#|WbPV>26uHT;R-Pm zSBt0jN0CR^{2vOZn-9e#I>}=PqmekUm0fu-56qPMEh@~S5)Va*Ldx@X$fS86>R>K@ zFC|Yn@7^-LR2G@>%dkWA!(FvUTxg279?_QbUu*!UQ7w#Ca`JiS^?4&dbiwaxz29-e zs6G7j&jB#p;C`6P{W)`YNG*+A;#~Y&m%oV^u2Fn+pSf0p6pWkCu!w3yjrT}yE}?Ty zL3J0;1W7c`^^D|=fhaf!nxtzTGEn(VR%AQ&+k1 z6+E$%-(?V32q6YHE>}lr4c#+?!CdDucdB=`d z+|$Y7vT$)FTS_B|oksi>AFdEQ=CD)Qan3O1(MCwXn2cT&4R;jMZQJZ%$YH}y=9O^3 z%dPH%^Xy^23=zJZ&Vw=f4)|9LTE{heIA3AB&!`po?Ad@R;d0us-q{|pIa0ukzYzU) z9<13J5u~Ls=Xk&9i|ruG-8qO)ItmZA12uliegU_YKVO$s;P^4!D5~_sF_s1 zs(N?P13M$3<4yykcrawJtI3k=G8U&dc+rliw|qy=6ZB?$M}yg)JG2GMGo5bC1B&SRK+)O9was0 za%GA7?zk_{ZwB+XBTcDdfmRIi?@7V=+^ms`lOY?H^rh)R1-Ukoamkyb4J7L+avQsPSqGhw2lfj06Z zSRI!2lUM00HrS&b9}*J>kvU}Kd=$9hJ6Y*Be*?C6l3H5tFp_**7HH|$kGEFHZ>TlEC zZ_$kJJmSXA=$QOY*Hgx6Xnbuw!PCF{G90RijEr2GPPfqx!Uu(yUv;=c$mu&S?Z?~D z+|kXPbi`R`NrHr=x8B_&Tc*_g)DO;z9bx^zu5z0fi3`B1SqJ8jSmpm>0gqDEeTh3H zU1`AljU+^7{KPpyYW77xU=X;_Iw3X>kb(~AX1x6LrEuX@wuoyeGX&ls^KI3}nQfKk zTVc#a9MoW$u2WW@dpTLxbh61+u%hKgUiY#x=eOJ(WYGs&sj=bovn;0C*!p_|i^uAt zCa^GnXvP@;uMwwJN^s8=-U{ zGg|(7e!6*k5C&>lVwLFly}iC|*Ng?gvhg9Bhh82gKe)~k{k#IOmdU<+T6%X|vGG@6 zdTm0DiQ=OIQU3UyJJg~qv)S#9{^AKQ8uyarBEFFqJq4POxygrdTqG}84N}bc%J0o< zjW6Nnyh13sGtzlr_%H(YG2pTZ&P$c@1te7itG_b=h*B?&&mlo9iXR&o!L~p&WHW%0 zaUWnR*8#-k|1=;7@y~kp>b(^}6JhB^ba#aTV$-KTfN+J& zwrN)9j7HKKpqzwTrs*?t0&=VM9#p&-i4H(+@SiHDSTQ#0ru7M`+ePTV82%H1;70(r z6(5@cPWvgKDH#M$1@hCC+?9g>R7PC4YX3=x1fZ}%@Y>_<{r0u;qohr)05FL{7eEGB zrKtW-Qim6V`^BP3+{*sEdxq@YWV=kp8lIaD zjSt9;u?SVLo(jKTBWNICra!#Xz`9!T)AfWM7{6G*Hh<%}wsJaDdJulPiAta2@}bow zn_&H+`<^M}3}(}gA(@<+m(LlUXpfDtq5{U5W6(ix%)s2tVwOhlh>VXlWli9Bm-RNL z*f}i+&Ga3&Z^r+&?(!ZY@$RuKHT)75Eii^3w_QHvhRT$Yp(5#=(>{Hz_z$Wc&C?|UIRWHB>wpL)q8t6k8HDohw$~KuD7p~KD|>*i zfdS}a^m{Vq9Q$w>arW2z0I)+eUKm*SvzxY{N=A7yVHLQ|nTCe~@hkzA8 z%JMYDQk62or(9O8HlqyM%Jqpsj$`H* z3;>4WLTi=sLi?#h3rl(YYnA{^khxv*QjvRB7Y}S17+U@#GTn#7gN7RbfhGO~yN5_A z6j0mMTF1D6;%f!!~cSf55fOsYLO6cE(egrugs04Y(~dk-L#67THF-nxRQVq z(ffeDJ0j26d`%cn>7dnI=CR~781X`>nDrbu2{wblYm;B+jbqKZf=$cY!$f0D_1+Ws zDfA{VgqJ>wehnhS*CF9S%K-e4A2<%+QWL+$AJM%}lf{t$xOXE{=gyb_XX{k}c8tNT zC5x!eUSpY1 zL4GQwpMWf?7w{K?rQZ$j`aj0}996?qApW*@rT8j=~OvhJ9kAvTN z_UShsUp5*aZ$L*`ydF?!#?sxW{4)x^E3+#JP>bqU4D8#OR#ab`*-`-;Cf^YvV?JS^ za_T3TH2IL1F-QOO!MvwAm3RExApj;y(_>%%umu-?R*XD|b`4)!7Db_s2cE9)zX-Bj z!Lx}qrf#fK!QJBcD*B$zcw`bfAc%NQ=T3upIo!1!BL$5Tsl4dm9KA!mTJ`t8$3Rj< z0>RUPGjIfih<{he>3EVaPJB;%&cL0nNZz4!%&SWR!==?!$QyYsPfO=0+?RDhiC=B{;RJ%YOY*w_|5I42u6 zmFAwMlk+n@f(LfTSBT7lVaaS>{VZ@;&=_MX)3=N6)$%X-oLMjIAOxFFqfXTOx^3K- zdkGllGF@l6;~SzBM@2p&6VG$CCVep>=fpqu;^)#hpu9XAc|(QQi%2oM?ngHByvBel zr_BR!Ss4)A06%?Sgy3-Rkczh+p~LC1Hf#z zhwI8`i^#I0bCK;E(Cb}>NrusHzZ$S5dCc)obCFRYJ(yEG;=lAedn~fdMf&T-#%qu& zVNjQ0ru2SgQQzEQfwK!Ycg#73*8fcjxE_9YEZW=mUCOKA0T7ZaNXjk(&QtGZa*u3 z-sRXJrO8Mdt!;@A%1RA|YZ}3Y5|rp5iP!tO-3#-DYvp+D_@@^GJbv}32r7QpX*AL1 zT&mMq5x?b{3nyb3`bp^OTc_6`nMYd|_|AvCw5uqeubgks3b5TR9<4zmUnQh43rc3m z$?_#QN-WQ%U%n3;sk0+{4u?fq^ddNar&)(UV>;!{!=M-kb|pB9>b3}Z65rvbl*u4Q}Hgmc%O z7wVM^h&*xJrsj(JMd(il_5Gy^0WNkeFj)gt%1N(3*=ff$*&o`oTxkTUZ<$gD$&j;? zZkYO`m+nNweQ;5ZQ5@+}B>uCqpQ1c13z;R)XiVXFtbYrfw>bf>sJvh9BHAV-<7DT@ z{3ze&2Kq4x$%=?;5iU(9y0XeX|DC&7Wxh?%y4A^UF!A9kk^QsCVk6dZ!H}xUroFR6s*SAzu>w zYhm~ge5bLk1ty@TVNeFqMmb;)+{doUz9zrVMY8DC7K|l6504yB_`J*e2pp44x#mNe z7-}Vkm5b%MA(`i~@YGlUc-GTJg>DhNd;vXM9iSWZh4~pQPm`DP;9qe-C)b<@GfQFW z!MPd^8e_%ptD7pHLFj;E#K=bU6+7}H1;gaVC~3}PZTR`>-|~$LU&PkW=G+Pu{;oz9 zLxwbliDtKn@7Nvd=p6r5McGXtl@QEDb{m~L^C$E35ks9POAUC&BDDS%q+_-NDP8AZPdi*I4^+^p@E{>Yrb$8xSs@`uM zC8p$XTeHlIBQscs>Ln_Iei;j|a##X&j=JfnUb&)Gi3|@bQZ&%mTrB<)Lmdj05L^5q zEAIWr(qK_q7V#*8dOuS(p?QZne{ifCvMeqg&>zfy&op0SoEyl8>HIKpt#-!ib`8T~BFd+XZ9R{R`1!AWG*)XD>rQIz2yj>_aJs=w*k^veVa z7tMB#h=VMPeVG~*`3xX3;$+qM-44mM(se;5YC(pyg7a(eOuAYz)Prf-X+`Y^=R@t< z(X!4GE|%ZlK8r?3c#EO3wyJQOVGak}2+?Su{KnM1iTWKk?zoMq1!E6%OO|m%`=frL zhU)`xo_~uLcy-&O%pHbQ3e;8jOziYzKzLunN_K9%wO;?=@3tqL7?bO+YniO1nh`fM zY5PYB_b>sDkm;z^W+~V=bFoI~d0?}THv z>g}XNwpjB|&&aY;s=#Z^kQA+m({>(DC&ndyjVbK}U9rLh5-e zGqT^&O`J!EIp4K_!#<5y%*Yrfd1=0@@t8~=e$KN9^((nAX{HJJ{IBexN19I;ny?7Q zI93LzGs)PP)ct86?EZZGq$d$y@n+k{`jZZD-I0g|PDEfM{g(P#=uJ6{j5lt_m}>1} zKfD%eIw`>1Bki-s;D$uFgSoYrl$pIp2aIhzw$+T@Z0A@HdmHPK2ND<2N}s0EfwbQi z8nLVmJ>WvVYw-eKImP=Jb^xwwp2IDLkLz0opELfjVGK`7CyqY}_rDH@!Dyd6ZI^!v zA>87vebmSA))36SxV}W%@5hF-OYDJsi0#>&7-%q(<+J#zv1-o67`uVVtKw5=T}oln zdr93P3h`du_X`ma6rw9r!NwRO05MHO4v73Pa``hb!lHcfUlw zPry=SnnQPuYY=m9oN9fRE9KC{d%CV}_>Pg(O?!oFX9Z2biZKn#jXKNLtOrbtZaaQg z?Z$?{;1~s+eT}qa*ob^Caz{+nse1tR&VTn|B<|vF<*Ew-bbvM0`r6&>*^8ZEYI?re z+XPr+^8>Aj6w}y`B1co%cSn3R62a07WIX+m-pSboOj8?pVRRbgIT1`l3>Y&&u;mj! z52rb}Wb!lg4=29^1&aRb9$wkgV=C+948*i#>1iiO*FKOj7P@#3t1`UI_J($wF z%J6294N#W^jhh?D7p>q8_dmdbL7};jjDI`s6^wD!DT#hl$$7+pNd_Lpr<=iPuonJ6 zozdlv#;b$rp5kOxRQfj!iCRgC04PjnhyVyyaX7f2k%j=snx)PnHT$0)Po5xSx#BQ{ z(PbXzdXq(3e}98~<1N0P*Y)=6ZgO$=!`+_u>1&%>_WRxJfy%1D15Zvn{eImZJ0SJ6 z%p9#vaLMX;h!S(tBU-4`l*yxL-xhyJ3ETSihp*6t)Fcxod#-m^@8hS-3B%yzQRL)l z0telMMkwS2v$mtQN89k8GpsnG6m;)-iyVaTzxw-xsOZ=&p^rhBTE;3CT zg72xIe9bh`zH(XfJP#&^X6E~31hHiwacvzPlD`Lgh z?BLwZOG_Nw-FX|oK2C}9qJyI#A&t?<8xp;t&<$`Ct&0XCLUY?uNzF7eC~DiE?dsnB z@iHovf+xoJzgMCr>G&9v2swudSa^RjcjwNwgIJw8gQowXE{-Lb^?n$pKPh!>JruFmNl3bskTg)7w+D!vV|7&lG@N<97yl zdcL3EJ+pDqQU$)ftcY*#`;6dXsCfg&n5cte%(9KhinytIkfH}PTUuA24=>@LpVZ4w zxW5P;P)>tRKN#w+;F}EBKKFpU(1;~{+&*c{32fUUJWu;o^P4A4eHA4?Qlfj2_2m(m zX1I9VRRhqmYjp>2t@};QM+-1uT8u};as#NFxq)qMZLI@b z_V2O%#BKnKBIwQ*;~PMgxbVH90T3Ab4ml!;D6Hu zsw4HSKJ*$s1GN3sey1A1-oC`RatnE#P93z9e;eev{$ea5l+t~`-*>O_EE*5&Xn0@W zT}w-}fTYs6(6B?r8LcjIobA;+_GYx9r{P!l$2u>giy~6DJiLVy7l9W)hU`XRAut84 z^ZNnAXg-nqg6UE#q-gdSKLJQ z1SZGnH&596EG|OiXm2Ohe1i;D;Ava3Uh6N6_4ez;PXQcfM~Q>)fx%!O?c=HECL^sr z4f~#(7Tw<8Ruz*fL=>wxAjGCU(X7rD6}xooY9*JB|)rHcDGWd8MvfNC%8_uJT&v)40xJpYE)3ZhHkbfO1uQ z?bFp$|B=1#;&o^Gy&rw&jHv1i4-1JsA>jmXL;Sb(^FmWa?3k-wbr&_CZ0Genh37A& zMJIbad(F0+?G~e0Qw$nb1fgs#iLPDaM{ax&3Co!orgPms^9Oq;JuML+j)@cC@^3Z z&u=Xl*ae=ZoE;<5BcATLK&i#~4Rm(_=tM8zSVV-rkW~0cW5QzHmjOW0sBF{bs@V_XowQ9!gtq z3iUfrNLY?Nw8_hXdc!cy>Gd7w--xAb$0)$=XbA>d?rD^aw9}BvOSv%ZnzixE(ORd}9{E@A zaswkHnrKTzP?PU_f?*N$Fn{R|?TpmbcS>Q0Xy*4F2cJ*aPyBrMqMs=4Rw}M{RsW|2 z*erEgZZa6bdk2i}bl@~ISn0&46?;OJy&*5lrHS`CBsklu^i5RvzfNi#-AO_G!#SSeQTaxvOI9{!_sxezzjM~3Qha0^&jm_@L zLEaC}P~Cvotko#kVa_RIh4>KXii{A%Yt+VpY4G2K4O@@E<&vk>_5MF=2ZJAiF^HM( z3zI#qLOTfQ)k~sAK0dhqku_tVbJF?KQ95LdZ2oGUAxu#e5UeS zy-Qh*zk&LLMgMir{|3t1H{;jA=^cVVsJD}f7ncWL+Ufu7zl%PC^)>Y=cFWL3IPcm0 zGLpH@6W=|a$XWorO&eQRDx$YNanl7nwqprvvNCs084QwO!S1!w1QjgyZ~>p({i>P%7UN-YOVKdCA0>q-6V!y z0)0*hY@b^!*Z=Hj^!H@%C5(S@eF)p@hk?WwARcy1d$Ad^y|&sxn{v(B10qixyJ}pG z6I{g%=BFiG4;jY&^_8Fap;1K}$X+M+=vT<9)R@tK zQ(2a1kd|tG?a_U={Ntyw6r0#=#w;u6=8lyv?^M4(`=g1n3}I?JYn$kDjVT=abXjE#OC@~gHzcqa$5E)$eE>x8 zDRxxBG0ngB*-kjD%{!Yz&7`qH?`_S-XFFr4hAyk*eL2?H8WnB1v${NcuO zqit)M$;b#GJ5r15DSuKfS<%L{<;4`Sx3~+D7$kutZ;NaGP9~(RQl^Ze-c*{XXV@+$ zIqxkf1mPq&D`TVZn}p-4xc*u5rTgOXI+IP4mdtccMc6LKX|uzgpTwc%N0u%VuP`Dq zwk@JUdryN7-i}nq3l{k6WXOP*gUG*1+f|Xggtm4hADYF}3^*P;BVrG6dsh`Du;4lnt{qY@n#@hhg=WH#M7#1OH7UbO0*$vsc ze}~V-zW-MQfdy8N^>}XT)gL}bTqzGmn>Z#jG7Ad5;b%%$%b{D*m!w`3riS0gWYQ)g z_JH7twda#>10sknzAS)sN6W_DK_1Lb_ONG2BkoAHJlBEMWaOn|OO%3mu&hff<+<1a zGoIsKoqQK~>#c&L!mdvrtuTIwp$g2*H&rYnc1HUTdpz-H877CKVso|Ep(=Aw%3iCR88nV2CnWsQ!C9MZ^_c8%?8uI{tE_ zQ(gs+Axq{W&*yAfFve1xBqCAkk8d3(DyiF$L zGUygV)mm(7GJQZq$`8X8lpkHF#?ECMstg`-{-z78J(C$w))36B*VhE<4}XMAh?;=^ zIQXNVECtyU{YbGZ-#3@C6XIrbFNj|=)+2afX4m(BpsX zc<9N=LQF!BG=Xc|)zl#Qii*g}5B^}PmHhvz5%WHEaOon%Zqc31mDfkW7U7vB?IE2-R$A5!lrO+X6Q%3h$M1D<5dy*Ah76_G;|}h-2E)UG>y?( zJVQhKxL40=N%|X>J`*oJ;%UDLI*N6l;=ylUc*asf9`7jCN|o*HqED}bIG_%RI#&h` z;?KYjqhzt2Qovk>izWdRkaYq@d@W`}>@eo*kyJq<$v|aYvJ)4>07NEvnS?l1RXE2> zLW|zeASa3guX|G|M~wul*l@%>4I?(J7Um)>Hy{2YS+V>jMnY1XA7gtT8=IjT^Ox9U z*X?XAH*U{?(bdm4!{M92@M>QwfOX*nP!ZkTarSi{Ld1%Ts11R;OlD|hUK0p_wsEMm zAhOKjBq9`j8p5zO%Y8@SjQ4*w3V-3n{IY|sQ~AatIl%mq7v>L?g(R70)DL09E+lv` zKYM#_dmu0xL=1xnr*eLq>53QzGKdIorv85R_)Py*=>Rh>JUQx{ipg8VZFu`Dwk(SX zX^u+MdBwB*@Fo|T*`Y>xf{e5_8%@&y z3Pf>t@kKr8{IwhJ2NVxhXtzHDfU1qCSXZOJr~mF z9mKDQu>rq~HBK^1?JZr+chvX*y#i?NFQ|~>Km-j2CM=W&pif&#i{D~w1+MmEy*Htje<-J6 z5vlF2n@s1T(R&dGjP7>Pt+ob+j!WkZH9M?}$9jfY(OY^^%Ue&*&lJZQNUc@U%<2Du z+xKneB{S_wcbO8a4}= z?ZoLB=EdL4QM=R=yKGfN=@rBypNJ3~-3omtoGU@Z1*gV_Sw@8$ZZdS?k-78$r#X?CP8QzAb5jHZQtTON4i>DC&P#?ELa(8A6lCn&hx zJ(D^aoCGsZDbvC(GF=Y;>GRSkiCeuKJZ3Vwh|tU8(73#d7v1R;fJpq02ib6)u*A3B1a zv=hQAb*vsd?z~~$m6974bajZvJDd;jD;549PwySi=KF^I+oNI^L9A-2+M)!pszpm_ z>r;ELP&3qsJ&LLbtvyqvXsKP)-YbY*YQ^5fs$EZfpWpNQBY!5Z-1l{l^E%JtcpqYY zl0FR{>E36yjl5Z2(bb;1&b&Vw`Z@0<2gzoRid+Q!VJ#Q64)X8#`n#iE_wvX4vtN?~ zfky474~nk0N#1%>B>&w8#Lv^m4gkXE?5<3;QX+?65{@VcM?A%hTnPr6J7tM6P1Y$c zM!GP1{(kJ-44n(!2Hz2DlwM31=C3wqEO%14HRhK&X*50SSH)^0w2A>wki!ND%k%hu z%agTI3!oU8yx&g9+p`!XddJ7AS8phagEJI$v=oU8h!cV z@4%%|f{BcFVgzCqaALKRORA3CZmi*n>{OsVPG&2OnQR0v{^5fE?QNcwGL?9hTyFYD zFkI78PX;Bk4WG|fWh$ys&2oN(RMSY)%+em$S`uiq+FfBZ!|vdkHm@a^%#7CR4wY}S zK`*A@D^YWt@bP>5K7?X-e6xO$XjrkvWV${0~pU40Ix`#^}skXJe%jl0lWv(8#G)|lkl!(>tT(N%Cs-pRuHE%7whDZ%RP%6rw@o(YpM z%=5*36MHp_3=et2(DkNaPIVO3!dMCQEzJp1jL9SaZ1WS2?F%H5KI^Z|unYWL#QU7u z)X(v9N3y%iARC`oy9n1s6>*={P7-zmU0>r6)|X4n*&O><7>wi>JJyju-C@becamA< zPzG@iWIB!ZWYJ{6_BTLtk}3688I9~of$+%e#?K4Xi#HYip88BLX(aga2K1u5&#cV2 z7qF(VM97qK{q{Yf^|`C1Y{O{cZ>aj`%tY1Xn4R5Z*i=>LuOB^|6&SG?0$Eo02DRin zQJFn18I~@ef2sa43Ub2@hisR%FA|2Wu|*|y-_<;C&y2qCafBOmjO395wBb?j5Ytg#Jmuc8FW$8Dj_oMPQ`d_yIL zZN7KKMoiDrOo>h1C=yz{3_2$&=Q&b9`=_vW+^?z_B{5%n_tJf$ zPLz5ZmBmPP!@MMay{`AX>X~$LPArcyQ(I`s;k)+?0 z-$6w;M|D%`(aUrPEXxr}DD4@-!HlH&ZrkvfpeWJ^72lhk2chq8n%*m1BwpHS(t86u zcUSN2-Vl?Xuz3BBa(}XboV7ghbX;a@SC%797GhoKQ;Y!L9_zm8ZLV+C9t-Ye@=d@O z*y1D;o;Sl@{a6Cq_+;!|^>+oBIsG1d?{?)Au+Xc~b&uZPH(;qSmtU;;uC-Ou;fP|~ zEd>&JQm6*#cKY9VuHj-e&Zoh+n4;c<2272_oUZ@;@u-sRyM^!C$ct|Zv=T-z&9#de zr8T<4x(!ylKCIzs&|*_&=t~s!Lr$M=g}L$uewBX`fRoX}TVMqym8k#CSqLdnBU6$N zN|0Pl(!fRnT<_Mcef`E+{+F>=2vprK8WnqgSc`{Ke>%7Y@*7l(h{DnN)P~<-7gA@- zI4{h8=5w25k%aQC16E>?==jP7wVEk$D>$P`4BI>S>pf>lw98r}ztTx6|DAu^KNuCN zJDJ41FBCZe*U9_MYpsh@=@B?oab4l4(?7pH%bze^?v)?Z-GN};NuwAz1r>_s?;)hC zbU;AM_A>~XQTI5b;$NXgn~>~MkloNIJMfs?8W<|XK{1NZ>QO(!I7bvQ89pa5Dy0ad z(rt5zE|xCuSIctn|K6;d>B>=A&-%@7vO)Fy^rg*N{X$ z9xIS|C9`wd{`~_&^Wm+YF?FA5P2_UJOmD-C+10 z2@RAT$)c1U&ueCi6JG{ZvY-FA=i=r+?Yqc~Hk|wUl77~aqx%s2fG%4WEq97JB;BKg z&m0lv8)gXCF`sO{(Mk?5T}7GY#Ybw-Unis7FfJ9=YPK}@2gF%732^e~d0=GI7q?CJ z4d{e@;I=^xK@@O@!@J_6(LN-4S>5Pn(5re6*AZea2Mp);$A&NV<2Rjx@ZWcLKQibL zc?VK+oMs`Drd$e9xn%{`1-6?^o3`AAj(5YG>~f`zudtB3agaZ_zswO%*QQX0?=Wcg zWxqDt^D{VumeoeC*l}#`gELo7>FJp)a1RJ=yqd5c93}Z5@l_g1&HBP^I_+=~o^*x~4FzF_? z9<98SF*E3F@LBC96%N63aC4L0%F1CV3wVmSH;{>NKIoX$wBi>X;H1ZWAj%6)|Awsdk?8kSv zzWP0UQ`rqidWv$VGv6+&$~_Y)jvzflbV~fUL_BVp%ez{Piq$yJ#H;URA0!rZc%m<6STwK`Bh62f`L2tx zBX_Q+utDBuFNhEa+0$zOs!l9Q|MHQ#JhM!C`m{eJz`4}pQS&$prpKQ!6#Y->X;!z{ z=-BJhj$G{|8|8g&OaO}m)wBN?ZlnxFof1@Z*44`Cr}{+(hec%PABoO;CcgMZWHXM9 z2DukggqM?Z!|fp(D-A|km6}E*m<&@0`2Y{6lig1llD8ztAIhEOeqnTQtN(EcZ5$kV!tN1~grrkh2D>t_3$vX{nQP0`{Ii^k^04hYH}vyhcZ zE}9kN^@fa5jum^gu&D{&fwjEuGsN7>yi_zf8jfl&kFo0Ue2*&lVC9b{oO9opl%dNxtHNI&u6ucdl zbNJ3#mRh`~^7~0Or`&yJn`M}Btz+zXxV^SNwcIN6ng&ncTgovhyL%0uk0{HqkN+p! zunn1fi>|t5c<6k>>s8;{r^c$enj-%T>AwYxk!^q3m2}wRlr?_Pxk4n+a5j;ku^S;7 zccC5Ann#^5&8I`jW%c!`h<3h}x$LRw@3)>U{PT5-eTclTDHzY`4#hY9q!Q5*-l8>W2tdOBQ$@wK`eQHxN%?NR5xx|Fa9Bl3#ABBz~0=qIh(w1wGzw*RP zW*#^fAxTl=xR8D%QnQnsf!^yip^bA-p4Q)gRTDibFUOtIB#*~XO6Q5krR{!pgingW zPhu!fZ_e$?<<@7fi?1&i@=ZuKKVyL>2Bz>Q_*eVt)Ca4cJ(#x4vyz-=mZnT9Xy0$O zawtEy{!CmwDtu_yQ8hF*mx+n#7k%N$RaY*DLD8^LEYHD1YnO0(=aSrgf;KFxVdAIY z3tdCFubX0ysH{LUwHkN0M&!qWpLj$1KNDUIpU?txrcqVL>2GT(DUUnJMGRI&3p%YX z((NV+8lD<(ECL^Lr@+UTZ9wO5Om>7FQUzq52kAwo@!;PJuVv_CBQ_}9(!BCg4l}Oq z1^)$mh04xP23Q}aLtjn=G!_4jwdkwZU6!`PqY)`$<&K;2gYLV#RQ&WE?=r<{HxsJ0 z5$@s^BfK)Du^vyP#RAE(d2!TJ<{T;+&L5s$}Y|E7hqf@K3C;!J6zYL*qasOGIyr17o4%MqnX&~uZxZ3T_rJ4a1v>w(-IBGEX_sLY zf{}XD=S>I&=aTu6vj3_u`za~J{f~H8%PlqIfPt!0+`V>E4PFbSX(KM<)pnZ_8qp1Q zJ+?V1uD%|O*V8rmk-LLuY4(+exe*0{?+7P!?s!S1Y(+k)F2aF?E6677qwEMY^VUGXZU*zm1VrR< zYh?0Di7T}rPg_`xkpR-GF@7nZud&`PF+@`C4 zl+l}S8pc7EC^fk?wF>^zxy~aXyvG*!MtfFP69l;(?all72fd`ktoku!_u`tQNbkn-)O(L^3UolTs#gR0MTw1vS$oJEW^JyrS6Y@>5E~ z-5Z_It4MAJ2Q^p9vPFR`jCM>ZuYo@fm&_GGlN zoA=$%+-tB8(6>~Lf2dTs7oKpz)`~aJ)Yr2%aKv0T*&ANcI#(F^sZz3Y4+@F*cRw+% zQA)3sCUK9~8q?O$a|bjX|8R@tkAqf_KFe<78&pqKS@!=(iS&ARb~S%}wFvNaD+Yb$ z=Sh5N@hcQ7Z8vfDJNW9iRN;yrJDuU~Lx^-&XE33{5F}{BPT(daW$XqzYNIkQ_egn8 zL&oJBWE@FVvX6^-=VsKcmRbCGE+)G_h#=0$`4*-v zwAZJD84E)Er7w1- zUJlbbh@3E&gk(E8nJg>kC_AQ;Y@qL+5Y}-aw)^F@8L$)@62udbLyPe^j}gHwXn;@i-&Fv<3_OTvYu zmUFlw9{g*jdGmGY2lV+j^aFLpqB88&F@C-gON=o2pEHFfuLCd;Q!MCXfIy$qAz<7gx~k9 z6O7&7ivcY`i*kU*~!Jx4VuEi%Tvzj=a)AAdU`kfkBJ1a(oO zIGg2Le==&N;C;4W$sx|{Py*v4e{3N|bz$WsXz!#iPU~YY_>hp#{B`}55WD<32%gNN zvw)FmzQi=o8bE0yP_Tqaw}5 zzZ2{bzibol_(6~e9n7d@;66uZGY8~9&0T|-^emE#`>KAfC(HiDbG^?ajs-P3tDiEB=%ZHYnMY;9Akhfa#R>tjZrR;B zEwS^>OD2VEOu1Gd%d0WN{D;Ao6ng!y`l3st?W+xx2FZHz`OkFol{J#@0~bM%jSYY_ zBj!K*GM-0m$o5*M6v+fR^@E#9(dm-%zoi4-gDeY@ND>{QE-7`gwubY~q8Q2jqUQ4= z@v8`IskoP@ZI)v!F0G-2RTS^KEp<+K zxW0C<{;$lYwGRTlTy^_rFUjlvs%68rD8P&4b4B zJVKH8BtUYDo=$|vQ83pH&^l)SJ@E>z1I~o3#s=O(?%t_U5*|MW{&Sol9l7foKO02~3&=g~cHlP=06 zYXuqA#|`YL-Hu4Rpbgw!V=upo^PIL&vM#Y0ea=l>ur1FG`>4xvbrO8-GlX52p^!pA z8bHmD*xXr%gjWbZwC<^^AQ3-og?e+?^%|wy=f-58i)^5HnneqD1{!xNrTg zc};Oo2z|iMqjA8DK7D+7UV7~ZC6N2YT*8#-WCLlCgQP`A*L&Aj%_E|aPzd%+Zl=!5 zsQ{ChAc-ZFM~(iAyFQKECs;`8aI3#gv*ypTJha!9uMd^AGJIXXb&Cf*;*neUkBi_< z-7khI7OAzvw0|)ymA#-$Tl@PduKz~$(y4qks>~8aEl4VlTT2U^Z0FWr)=+fkt!%!& zXcoVU)SkH25~l#Mk2Wy!Q+5{Nwifd(xVi!!wU8F+{MCaQDmgW7B!tvO%@wMxK3`<# zP!HRb4(R2#(V%@zvh<0lt~2TQ!B)oG3bFLxZqOm5G^#hUYv?_kLVsO?0RSP<0Kp$$ zPB&kfq}4)S5nuZ>9cE#~T5bf!uexq2P_UBHbaMfw+$G|Yu#}4Hsw>GJnI!sv4I+RS zk`wUbMpm-I{35{WJ&Tq=dnqAn;VZZLEsD&ni!Rxw@*!^q$!fh{&4lzS8o*kcWR;=g zHQ^06FNH7Th*qUjLh=LHHY?6CI%L8_#gI{@QxcSieqKiRyFBXL>TANwTKn5YxbkT@ zoIt)$l;H*A%P&;9P(pC*hXW>%8){0dOAk?Gf zHPqpPb7rLM^@5k{(wa6*OVd&?%c5(&%2jn-F8x(2QRk~`=gTqE9-GTmkn`Bq6x!UN ztsT+Ymv5C03z3Ny$@kpl(Ei8cev1{?1G4!|UhjS){YOR^2K{Ytnp*7vHtx2Wa_G7N zzd4v6!8r-1TkJ>Vk9YQmpBBT?$|mj&Uef3WtzrYvPJILXfA3fTF<(EzSI_fkpI;a? zb)w(F5d&hko+d@cdAuNeU9yH8Hfnqtokx!G$dieht z&7P2ZrYg{-5Wx7ElAs(q3yVt9av$N=H#8Czz!^G>1rq@3BEnrQGQ{La+420Hw>zKPA}KwzY-r6e`Kq6hMSroi7nM9n zq?tomVo$`T{*V~DD7zX_Lm2E7fw<&X67}TAJ0pf^(KyL`F}nNpHlV;exV$osIM)}b zrT0OalnB56cUe+@aK4WMHyA6YTX#v1AP+jg>Md4NKJ$Sz;@dA69Aw|ZwOgV`TPn$$ zac@RG3ZR6GuE`EU_$7i;v5Gb%wT6~ujV&JKTN>Nyu@}m zDm3uiV@+B5vLm${;XhXW44vvdqWc$J6%ks{&xTJ<`;kykwPNaDG|@*Cm6Xe2cxQGQ=+k{6{fCP zsy6Nt`Oae!-v`&cbCiu-^OJ-E9~uApqp`?<^4~H}w%MGTZ?Q8YyjeP)XmdFl&wC*H z-b#rb_9k$91=zP_z*EsyU=&hAK9R;vJKGlwI;$o(uI`3fJ}1rC@>}E^b!wv$r?Vby zVZyzv_0|`Bw6-$c56G~CA)4V9;8*tgR;vv`(Zs)hNQRHOwcVi_JjbX#?@zZdtwcAh*Ep!fOD4!3nh)B{a z>yR@OQ!t&}r&J&<(Rmfc;yEWoBwi)441!ch*`0YLMlEsnaIcY&;)Qe(&%R-eU~`1* z^rKN-@oweIO#ti^ZrBpjN@PK1X$1djPM0QdhVPc!CnRZ<7MnZWJxJp9O{VKwA+Y`T z!am4DphI3TB3MY0`{pT0IlWQ7@-t(0R9LQw8U8zIPt;$;JZ)3j+M%^lw8PdD-;4>@VozI!}S@kbuCKAg)Jl)MHlN1tuXDzE4ghTjcaRuAZ=&{dXR=7M5!{ z^aY*M?fEX~lSZKa@diO6%l{mzaHK3B!LQc8DX+j$70M6ZmLiz5ulRj0sV~P?NW_n5 zhcLvyTE#ERF%h|sEaIb(zV^egOd3=tBP73zEdo$H9S0YNAa z_I1i^(o@@)L|ip=8YMXDsSwhF%)dWay1tg;tdLGh^+Wl}>af~K&}VdJ zwm^Z+ugz0cn_7LZ`Y>+KwH=#Ei?OJplIhZr#SnN5;GgvY*mujf$ zqy?m$^@Sdo#`)vY5kmr{?1b;Q>l)Hl8!5MY7mZe-!2ri~D_!@e^_;P;h(I~g|EfMR z$?itJ{n21=GZD5^v;D9X@f@Mblp9*P1A_VX+i>d*w%d@|RM`ZW6D&kr;UqH+(i?BM zBX6maZ?Sr6Q)z^w)T1Q`DDHoR4ZttpJ&tamdKGgnYDu$rmnojTZ2Pw5?TR;j7XYBN zTw!WUJEb^ZWgm7J&<6nz4wDh80*S;Bek_}?q&kFukfx7}LeL;GbcKqsn=k!JbNatK zBfy-hG=9~p=)V#}E#L!nx`35P8%7GiL*I`0aIpZ-fDcXal$J^5goa7?!&4aqk(-`+ z8?RvBL|w@1>=rm6g3Xtl3&pZtn?;&4Y z$GVdAOz*-h(fOxbW!%yeqdv)!W&#%O_8N;Kfsf`C<4HYxW4R)ySR>C(`L|+cd5$*Y zjkN(tc`LQ7xpHYZ-H;VqGLy!e!6l~3(;2GDcrxz|4yq8gH%bnbSd7xwOaXBPSN42P?zc@QL4#^1k;Baddq-^2Q|pKvyoXWg(VN(f z*KR*N0Ejq4%RCQcS9B;_AR{31eiaLUHRbySVgWV1{cK| zNlHhpL2KCCeP5PWK_9duF&LfTI-;?=%BUA5Q?_|-qx{##E{ZhsKIB+V7nMUTiUgXw zcD?ulD2PgB(IQn(KJKY}o;)gG8^PR$=_R9JT8$@VL_rGrQb z6~N06Ftam$5WB#0seMP9>*0BXQk9$EFxedJy*wmTo^))*&K1$E2}{B7OMqw>X=HkC zhjT&z&Y7=}FG(oGEjo=w3pIMU_#d0Q^Ez;zt+QM`3DF4BA~iP69H?mwm`6hah$iR9 zCRE%1otBW2-k}q62d-0i=kz29px)9Axoq;%-S?U_YR_3E4WfM z0@2GRVcx&Jn5u3Dq?Ot4L5C4q0`d>?v8B=K1GV;Vl8w@B$T5g-L`xJ0`# zo!GuHTT@ShGJ-*etBNa`*(PPb$%t+US4BA(0uiB1LCmfj*=s9KyK&a7*v-8IQy6p! zig&Fyl&#v$eU96uJ#;?G{FwUR>umw%0sk};;oXVUpE&;{KB`lkwH-6*T^hXzYp+?C z0C(f4NxHm4BZTeicosE*VC#c`_y5UkVR%lq0jDjvopKJ>9_YuYk87@EC&1f7ZIESC zDYg@kll9M!E$#hJ;$b7jI3^tJlXeC^qR~rZhLs*94dR84!qn5xvmI3_DcbBEj%=+E z;cV%;B(HE%?r_;9VOg8g0u+jP{MK!DH&^Ds?oGK03eI zpDzQzZsz?(s&MEupLLQ=3J@n<{x*+ob7gc z;!@_G<~H|mURg;}$&0Au)RP^^<@f0T=@iR=d%z{o){{4bFY3y*^SR&g1~;Cbz1qZi&T0-RG3!UrI)|`{r0Ywb=Vq5&?HwVcRh*7e;>Oh7Pj0$PIhbb zS5Nkgv{#HyDyLdF4j`)BsAEFqnZ=}=YlB<2%Us@~S8c&O+jnMT~zt*e|6Dkhy-z$%G z4M^3{Hj!{2b2-0trov`Sv85SxF(b3PlQ1JN?VyM^(#;&{Dfde{jC>j%MV=ubiU3l; zO8B|09o(%f0d3d3Woh0z{GJG29<}Tx2c+52Jt_PwJ<6|q8k16HI2EN-7s(gmsY1l# zs88mox2xRuOOS^&>>Q{+)PaAJLIpI3@IlgnVBiw2^Os%rQqMdgF3pTJx`jCKEu-3p zgG&)DU2}=BkOev1tSo@yPp|KQf(B9$l+~WLX6J<>vI13vcN)~S42Xg1je)#Cmw-tU zn-?|!V=`+m4yBMKQu19(ONnxc5ad)Sj4l0S!htz5wi|%B9+qSs|6b@E@1(N1bZ;fux|11vYUH9}!>?MSE!NNP~ z!mx6VUZGG2k4&n-_MR@ywW+pW1gO$xh$VrG!FtOoq(8?>dSXJRAx>;x+|dh{(6rTddi*<^$&3dlda* z`rWtL#er^sAx8>_)qv5y&`J8Y(p!J)_P&)%VDCvX^r^7E5Py^`%W3luvM8Voa5g1F z2+*1y&eaWg%WUbzY5DH83OnZuW;t8h8Df5DiMS$;o7hd*Ap5dgddcBl?`pJXX4b0k ztLzGzE9Y$`kr{Puljd7-9J#p(RN93HP{2P^gV|S+xGe!n%#Z19y}pRvV=nCsUoaBl zLUWQFlOTm)K~2_m4OEz-rS>}Q6m8%#3;kI4o)?Oo6&379a`_OWq4ASSQ5bW|>iY8Y*G1rB~t zP{U(x@lgl~pWwr+Vi+HD2pXTUYejk6l$E8I0wm6JXwCI^jU-_(R(_rUWX!*6WW9eT z)_y!$9=CvTM}&%w=DM_$r}vni6$GCb*hSpV?V~5c0m~pyc;k``d||K;{EvYTaqoEa z`Kc52uvliTQ7P-Qb_bi8_Wj}e*3O|ks4q+{m_~*D?Yc4u3Fs}{_%bY0VZ5(Q&gV8E zH6h$!-EAxc(8b~)+{KSdDj;&FGDHY`KH;__pdW~!)fk0fh|{KrlKF@ITdv_(ONv*I z6+&_W;b?yymDA#~KXL6J+Iu&fiI{G$88 zSGkRx-}vak3jVH2k-&9Fw@KDHt|d83pET$krA_E9KM|ni_TkhU(m^8SzNbXly0xBA z`B8?6waAl+O9;99_NVgE(DpFUGWl9akPUS4%#tr8L+$h$opTnNqX+hJvW?v4}-Ydfo5?|=1DEQOe#DGT*X0AZa8j(VtUNr zt&#lFm*Lo5`(B&c4Q;_4GR8CW8GlgzwY*5ckLdZ4#R;&U2DMIPzB5EQ@6>>SK+YTy)xPrG^!+c|Ja>T@i7!9zsYKKG$Ie^TzLm3Z_(rv6{{ zi7LAzF5x9$`Rc|b3FZOxDE^`3fx$JTB#iX^4BQ!ROAT5$=rPTQU8_*m;q;;csz2wN zOYK$gw_dykJ;4y0a_f@PnVL2*cfaI4T1mA*2^|VyffRM(zjGBJ>=QZ9^M*awS9r0@ z``TL6(7t}sW&4vw95nZXr#rs(|uK0PVA8A%(Nn)K)_QUJd<8L%vRjFm4S8 z3GH7Hp8jWdJ=u74T72#Aaq_DMJZG2RsQkG{f7wby!J;hP`;12l_as0d07YxLtde^+ zOa-7tA{Xs{;Xv=KFSgV01bLM<&lPylF}go-gJO5 z8(B5KUjwU>r8c#^Y9Ja~?o(nObtU5Vcox$w_$tR#8Htt|h|QZq^Y9;0&Q!{TXawoM z++ALI2=DpFR!3RYt2@sxDgoz?%@W1wo>1+8Vs9HuW=LK8KGQi>;F`0tJiRDLLw|(& zh@MADrA96?92`Ptn;jA^aJHTu_*AL>(K_Vnsj{bPH@_w{n9SEUimndd`AiN=rEy#< zQ4Ob9po9?_gVGkvNVEL#?w1tP39ytC%0g0e5c$d@vl0+QJ__V3o?rv53gx2CX7Q$Q zcO4=mrJS~Z<fwCsl1g<;vSzGcu>uJF6H{U+M{2))Iq;ZYc}$S8=FC!k*&d^^3O^R_R?m zm!JE+8O9$cshE(g^QMH0*F7vWFS)0U|DbE!MvyRTcLA@Fom^YN-zs0@TvfWQG}-Td zlcH(eM^($Oek)ya2=3Y=`*hf)ss>tz+CU<6T*{q)`i@mUiV{{1Zm#Te4CLfEHd2Ah@xdbf(4Zy67JJ2VW{cZaLdr!&YhxAw;A`&^0ZaK z9YPBX$&(zUs{SocK>i1BF2s)un#X!`I@EZ`h+`}oUAx9qdA`N%;>C!FYa75Js0xLU z{^4MNx%V5Y2IcmbTqNR!*2q`r6I#f>gz%$&Qj~Ws|5wj$Fp)^}-Xl33;qwm*gC%Ux z&$+)PcSg$eFKW*L`k4Eq$*=EktZTo}p|1g)Ik=b-mtKNH4|HyacT0XmDzjB_u4p zW24fkSEQu-|Fi&V4w`r5NCT+gO)sGXHHiMl7Q;nw3U`lh30+H{bDB88krxfe;q#Ks zJd*;*9f@R0ePskSlUx{@I%V9Eq-Y+m!5&E@9?Kk0AG##k&><-1Zlcbi7Mn`b&e1+8 z8RAbX3V=I!!lgqF`+=Rs0e;z>enSgekMLw7UAM}mZ|OOjE^r4q(7OY516ZDrhM%zZ zz*fd9mw>#W*I@=oDS-Q*T@-PZ#KgC?l1CG44kNArMG%XAnozgz@{F81vsY*LAkl#= zevqPqn9?0034~@AMe+nYzmn6V&yJ)W<9bXP^%d-_XlvQC^Ehry0rUIA4-5tmV!p#` zkV)Llpx<{kLMOf9slRB%LWxo;P?o&h;PLr2>DXo{sM5Y4?SIN2*JLY56!i&ujZXo}Tpir61#)W=6fK>+x^n#oP)@kUa`$OSXz6zJR}HhnRvKN?^=5Gy&)e^z zT}0VtnQwhlXWw^cS&M@5Tud+Q5Qz7Cpo&Ws#@RX*es&wsvVovcDv1y@oU#Zgv_9- zGy>=5h=qUlUOFNTXbrg+sc4}--_NujcLJq&rPjDv`gijM;uBNfQ@*WYyWFlt(Bl&g z$D*V6h+SuKm%DMVwW=p0Dg%p=HViiRjRdfZxNIo_rzU9ICZ7e76gegN4W|^_H8Q(r39<~CE?5qYk+Iok{M@>E zhZy2e_91Orn5Q_=V_3<-v!8S=!n?9=I$(+|v&zCaLQ|>%7lHZQkoVk~XA;(SYw3zt z(n~fM9HRG_hu=xr47I%x6YvqHRL-|WELCRF3wxcBV&AJ*eZ+a?QWjiWFh8Vvgl2Ks zxS+OwOAp;_t{UY+KME;%xx3kud`0ebUpQ?4fnM51criKY5$@AISg!>f)0bZ}^>*ufCB zZFcynC-+7^nAde7uQjkzJ9V631tCr%zAKe>sIR6I#5@?y2X55AGSJdF#$c$gvj@$7>ETa|vj z1y_dfW$@P^u~h8fDt4O0&20T6YpL{(#UZ!>daGSAl18|wxQp4dJVtd}jOf6PgJV&! zI#@~+lVc_4c(x3AhdxXagSuPcd-(C}DbgJ_8Sj7aYm1RaosB)rg2PUOM#g3VgDS54 zQs*6lO2cOX6%`i3`Dlm+J@-oX3an13(q5^`Gh1CwV|&Q|XkOR0C=No|7CNt_UXZ@i zchcg4_KNf0B1lh%BwZ9-n9mOAbU@U;?<|h>*(-$aJIe+n_EMf^R4r$vW-+6gm(`Rd z#Nt!nJ%Z&fgDXSt*bdXBR}#+8jIb3c>Z9zu=<~(9S&l}f=-L9XirVcGDg&p)6}ds$ zdjtAN+CjTtI)rB_;0`f2$I&yz<4{mkP=H0mrV!_2=GkN+)Plz!u`Q=q@;to! zZ=hL7Rn87zc}X>kD-$yoB1oPcU!*}}e zFT{aE;9)Gd_(`uMshB;$B4aO8@Q2+s;D8*{*-Mz}9-o8Ns( zcO+xHwvsj^qB&49%pkNjnLRK0B*4+(#G|9lqeH4$dZ>=|%e_&@|Rorf3lyRK@={Ih7bvH?t$HI#G0-Oc!9E>&(AjJy-GV zNFyO+>E3zg_uvVz#03(V>)#IPBP=+Br`YR9GFlXk7Q$UL6-x7{6&IJi-`{1aVt?YD zlcfaT{+W#nkkP7FUjSoN19`>Q4x<&C^onbKfCwHSXkqCYasP(ZzRq*SOd@2k5Ba2k zVTaM1z+Yc0ZEy-*JK}T;ba>ZR5sITEH}9g-+@6qq#7OtMil#$t+CEv0(@fF;fxu)9 zNB;+sDF0vXTp zKoX%}$zxZOjcgN9zU~)H)*J=m<5x*g(5*CrA^)IC&C!N#^v|m5p9ts>z3td@rOO6+ zGzHk9u+VLlo>MJjkKqs#i|dz1AA85kJZE;6C{_cbW>Chb(w4G9^#maoD?6 zrqGh2k!%lxsWgrP?I~j{R-890+{3#PfK# z;n3pXDyFQLZevBULw;wrI=DZY4K8G7|8c7)s7#zeQ8MMPA{z%`u*x4J@3y?>e-DOy z5cODcrOH4^2sWsTOAz>n9#eccDhhPjo#g`o!X89JiB6!e<-*a`r`hFDl_*D6n z#w(DWlACXwQ0dn-jSBG{CGjMxx(ykyJ{rn`Zxq-#C1=;Ap)*XCwB-*m0l3T|8n)x~ zvV#=(-!?rA%!Fi?6%i?SOY*6ZJ$Ht@^3yt&lOwH=@=r8bZm0|bgJpeA0^8M*MO;TM zFsqK4^zuAV|KZgu0h0C|2lulHFEii zk08Mw{%r5A;<`%jzi0INZ7RRo4I2;>mqh5QO1ID1qDA4Aq9%*UCeRj)gq{!3 z??CM^ddlKEm*20Py|**JZ}|R~;T;&(AZkV^)uZ)W)F#8gy)5*}%O||Fc*xvp!^?e> zd71TwV=dBC`*^HLP!v1>OI@00a#@MeE4s zpvoF^E|^!^YaEs(kRki*kR5zbODyI!wq||%^5DLXwU6^fCuUGwV~gtGmfPYkn{Gsg z8FiuTCSUU(KZ3^=u10ltt2}_4pqb2C!g7Z7_I2bZ64kAA!u^g2LdMuvd;0aV!9Q+l zffa2{bz67Q7X6s;q;wk@5dsQYGn+UkSQ^a57!ex|A(x% z42Y@=7q;n;27wu*q!Fa0V-V>OMYPxdQif>rzqAf3{o%*2$9?4yHf-(j$gMsn7`y+S&mh_fuNv^h%_W5b6aj!WNy+xEZkzRgWap^ zC>EQ{?Qa3ax)XEvKUEP29%RgjF1rH^E#85P@?y`#R@at+i21Gl?V5@;lP-Mc&|sAuSoX>TsVsfeS>F;F&RsgQ#l_EXmSGfL+8Ral{taNF1dhT!*wf3(!|sYBiv8_@ncy z6B)S+?AW3`jJGGH-3e)K4qEqRy5VoU?lNt!#3;yhJr4<}O76WnkB^F1C>WTlF~N!s zr*SK!Ac9uTU?b8VUiYA3^d9ti+ZC7M`!=@tv#UDT<9_7HJ7}>Rr_!(VrDv`a5BAGD z-V-h68t=M@9b{uTNuL4Keo4Fet?Y0^u>fV~mSc%!H&oZz>cT^Jq5##j&w^*2;ll%Y zBhlq|6Ql=iV-oXW9XJ^*>FWu*y*}F*HU?z%3 zrn6$|bkM?zn@Xpn=3VMt{27HT83kM{Ncf_wE(!OA(~rp5$M(;HOA39Ee%D$y6o6>4 zwhR)ZECL6AM1V9$$29D0=O@C{=KLW#D(KQ#uX7=R6OQdu z9gP+9ACd@Fgx*?y#Em%9E^Z&Bc?CEkK?(1j{Lyi{!IO0%pFpyOnjRhsM+2?%UF!8; z)DeLvBJ28RPxL~xEiRKW>+8@oJX`Py_9<58rEJGh7z)5-oxb^rqW9O2o7RW3P22|I zgH=1W{RvW+%jPB)`SC+4qR&NO8;lhzTys<*l;eS-VJM)i5IeeL$FpF@2%= z2*8E(yx06La$b8_yK~XFH__yg<}7>1Y<*xqIl(Nj4Jq-*5$2u6gLq@^=iVIP?d-Je zD71L!@Xr5>z~Xik_U3T^{SbK*VnXp`BJh;bz>y)xt7kXQKS9ofF)#fahxIfZE`60g zLzh2hKb}9m=lhm{daLbcV+isHn&GFM5yKBc*L5jkIU=oe=RWebs4 zv9$^aKkSWku83^R240Lr+;-2bD}8p+>NH#lv7~6A92VJ9KP$#~;paV3Bx1V@_}rEh zu>Pius6Q%@L?Q}8eoIyuCi%~NNw5!CVDStT#cWJ%qwPdu3dHRFoW4*_i|YF6a$%oF zVB2v$EsJ!tQ*zZ-wOr4*hp;GY#k2KMsb^GRd_Vn6!lXseX#!X}^1%&rs~J6z^-8ZYjixACbTf9BScp6n3zO&{7F|R$(_!zR#_Cu2r#~Dpg>Wrk?CmCz#Q5e zXEJc=I1`y0TYtVMyP{WNMOSdHvcHA)mo(6=@0$bg92yqh?LEAivx2dMIqtyOzC7`S z;3r){gcP4}-;Qw61LTdQgflb*o7E8lzun&ifp`Ahq2lXQLsLVi>R6>s>H+s9HbK@Z z8`G=~tTj5AY3UJ_3cQT#8fmFD1jCgzow5(4^ct96N6Dzc8|Pbq73+z;_}qN|8vvr+ zIS%TcXe5WCDQ=C_N^`fp*O$gd|D-&Ad_iRw>g2rYlGyJ|i$lI-+#bj|7|YqVu-B zrl#RTNhR|Kpwh)WpR}ChQywM(2+{_e&9*BKwb$EzBOe7gz6(QtJ(l=FPByK)Y>m(n z=2!k7x$c)3Lgkx7x&B(37|U@$$)M>GgCBy(XD)gstQKOJ1hWIp|VdXA8# zc?KWMIhwo7f7oUP-xJVpjgK>=T09#KArDAp4wR30mnSId8*}GVn69V2pOl+sdY3X) z=ZIv&NOV^X=snKa$_eY#m`4W(sfv-u36yFO#?r9XIely|f}=4JR@hldOw#iiS5xnA)X zvM9xiTlg;aV-h?#wqAJmTO>TKPbkn58KduRH)%7JM#Jy=r3bAe>K?~$S8YFsB<>^x z>}a$K4xSJc@sf1*8!ddX$+15t9l=CaU9>3MsJiLs1^|u<`Ot~7aV_DmB|dQO zPV9-<86_{kkKSj`6#c|c4h*89lHr5{iL@Dn? zl$PpiOq!nJD$hiIJn(JC$tb#m3uN>j@mCF36Lo{@&VyY} z(0k%3z)UA-dOeXQtrxvKxHYKO1gB|`1u$IhuW~7$^27n@e=elGsfeKm!)?6T^X-{Y zBmLfkN1+%tC@tRNoh-tQjSZZ7&1be>*_F}dBoKJ;FE=&v6ll9~B@bzh0oBe`7l75`nba>&D_7A!ud> zmC0yA2(|Rysy<62P+)QLvc)Y^i57!fEU7StJ3UrWpHrDlJep_LGR-jdN`0NeU^kZ! zU_JQ9LS>xI4r+<6=hKOnz&jM)9-UjwslEkql9scRG8ud-e80--Ao*QvJ~RxcueeeD?e9zQVk{%aX8-xI>L(!3@>lSk z%1WW!)2gi9C%}WUbQiU>1p<^dl+94pE-1aZ6^WYLk?1H>X#LI4K0v#cLBEVHq2bsU{PX$q1(vdsU)6#McIL#kT*O z4FlzNbeaLM*zbRe1AG31ooW6-+~_#n88_h}2YpF+HCNC!26C#{^J_3tHqO{@3x(lz zHX=cP(L}4J>QnA%d z%0sqtCb@MQV8_&2CjuRddeF-8FXyQIyARgCU_jY1fkr-5u9Jt%(Frh|w8Y^i#G--X zBcTx+I^}}?uqT#8&PP@BP*E7M)E`$;GDi=gWC-w4_C|)CAUn; zJO(8SAf%#1P0P$$BrB~WL_)7+cB@Z->BA@Xf{FOk|5x0nV}Nie(x1380rp8mGMsx4ZN|MY2V`8M z1^+)8SCSOHXXwQL3Y)6=igJLSaEw{Rn5Mz|1WU}sGo?rWP@-o~wEWru1+r@Z(U7Fv z!IG(JzljHO?lzGB(E=AnN?qdj3v!62aIwkh1FTF-B!ZTJIf%_tNMnIB1JB%;RL+OK+s8TB}3=6i(`UdyFQ=uyhE>ZZCdNa?aWCSSKcyOKD}-YvGar zvxFE}=b#Dwogxma5W(hSP?%tS!w|apmwnjvQBEloT?K&0nxOt6%?DN`@R=&HF|hWh zqn;5iq}j{-!TNP1avOg7(BRtX(sZI? zennVe#~j*hm)R*?u`dMJfPPU-AyIPl$vnXBWU~cKj_+DcW{&N~w$oXc@@vW~=4-gJq#kB~_5BdX{N`r1ly=6L& zEz3EbI<*eNwaY(+_!+&XTPRAPtEx0AD5YOgakk9aNL+s^D|ZP6C;Z}z;b(p-D5-72 zEw9odkC79 zoVW)v_{s?x{gT9|Ll*5|=x4@9GuT(i3vg(7z}`t)E4g_x170Q_91Gv1t)+Q(S2x}i z&np+IC_kA`{nb#ezA2bO9WYB060NkGE7D>w#J*p);%*!`Ok1j1D^g7w`kc3x9MoSF zXDJ-&`?2fy^Y#O2k|{AyscHjbpi5M|$8MuOrh~u11y@|X#rS99+WNnqw-Gv~HBVNR zU;BvE81sjdr_@k-bN^M}^S8AlY(w~}QA5zH1{fN)?mN@by)3=Br>Ng5<5=%TRKZcb z-tUG}=|s}1DrULodK$fv?F#!N>&Z3JcToPNXoRw#d9eya)681C#8J(KvW~p&lzEuO zvSM;^aSXk-iGpEs3v^p}= zuc-k#0mKmK!Y$V(ocW)BK2-TDcV#+6Vb2345T1q6X6ByRQw_F4y%nWQ^~#}Am!ES& znnOmib5^3wsCXltiE$2=*cF_K#fdYBO0Df0pwu0^oacHwC#msa$j5dw28s8viWE*C z39!zpe;~SqKID|gcpW`(dA$hs^Y(%=u>Z0?Co)x8DeKdy-nTmTKQU^MAhy`XYJtN; z*#7GH+e`&+hUq4*pHuY$T3eCH8)Raw$bM%4da*EHZGO~_!CLjfe3~YKcS=@;>FR4L zAvfA$z`GH%J`1S%PpQ0Jx2$s+Lq2skLV9;A1D-Vif6QqR~n!BJDRT= z-i$x_n_HJrXgSMg-dN7)nlmlc>N@)`RqpXKd7ip8o^4sPHF|R|RO|gx(vy?z6O1Aaxs`@Y*IS^=cVL^CNzv^w^B zawjNcE30S`rm;B!z$CKId4gMv1&<$pk>P0ntxcn!HdNKKnm=xFYxaCD-kB@r(Xw8t zyVhvD$W1<6IGE-M^<5}w9`=gFga;!f$+|?{;FLBlt29_QuXQ*rO!3TmCJUQ6m$beu zHp!KK#hD`WLH;{QahinJ%=n!#G2!wx?&6@bP=j;NN!V|Q~?ZJ2M#SLXWe^u5;6*(e_ zls`Rre0xfH%`4}}4tY`WmKZ-RJo#|&P#DwwFZ)^m@tyBwXj+G5xQ~HoxendA?H~1F zOTb=^Mg8wme}FyW^cojVHX@JY3t9S(elwnMoNDz}l1(T=D6)3}`488BS6l>JJBKe% zjh6TGLp4w5IJDkQq$cTeEuKdF*jz^uh_(hMx=t2>8=u6NAB+Z78jOtxjf{q_Cr|9= z{@PE>_0vjH?)SX;nmj!MC{S;I8UN8}%8Pq{56W9cqLC-SrNxnId_(x z#MiiH$jZ~`UO4x3c@jOhC|rquQv}vMk~w)bWVBY3n%+Jz+>{cV`@3gR znnO$pE_>tebpJ}`x{2Y6U}jyYn61$4>9)=Pr1l%-%i@HLJZ>fO0u-ZWrs$V%Ymb%J z8OD%R^VH$6`(Vvce>kS)f>Dj7^HAcF5Y*|UXztpy zl1yOedNJV=o!<}oWlq~$1i@1pE-HlHxLf0UqV?T#ZoO|PqCA}BSkBt0ev8*{-EhaO z>wLR*EY%}#wS-n+whcNpye|CoqsL%4Yob|~x1X$Q7&4cWZR0xqfJ6=+lM3`){B#eV zH0rO}2@b2VUNYizf*Zf&d-y@Vf+@Z8LkTpof1jb|EG^udT#6D`WI&4cH@h`9VXD#M zjZa0+`3y!-x`v5hdN22hehyfwzIiy3d{3NW;6m|5nOvx-|5L?ZeYDxC_ouYwPy8^6le5*#+$f?0a9{z`(hC zO+v=Ul2;PWsW$ECVJ)R@_!$k{R2>tq;Ufs#)S(}h)(H_7I8ZzgO>x`eypf;rKKPkiohjPl$e?Yh1an`06&n^$}EL_H^=4HVRCRY+%;HNM zxf9O2OI)7GntnxqaL4ru$N3RgQFFjhZd7(Ib+RUh9S%C2^NyN*1S7q@0}F|UNguN+ z{wEiDV&QBW6ZgXMRT6t7UEdXY%l4hAAPoZWLWBwwo2+tJfiCQr3EGS3Peh0(LHtxu zSB&>6I1U#gLJU|QThC)x-s%*1;LRYwZ#O>f>NRWTjTqZamOPgXdALP!yC=n$S%|{X zMtT}DJZu_0ZOvca4UL_%o(fIf%Z@j_Dc|_(=ycNU=m>=bQ@KmSrNS#<6=^^OSjI>` zD^mNkD(Qr>5okY{qwUbE1JCs_tlud84zI>|Feyezi(YZhH8e3!o zt{c_4l0CCfM$V4PGUmhm7bntRLEcWrjaFgkHqGvpZvrwiyto0&CBK2%uyC42T1{$l zX&Kp@l3pjN0`mqAoCdLO2+<;C{zO>b#shHN(24=o6I^irQ2kLQvD6uu8(SV>>Y3V@ zp0hfC_!(Zc5#kf83PLPiaG9_8jI>;7>VGub)K}!^+O~6Dci=B%v0vzQ-65$>Qg_O7+oG8W)t z8sJ+spwy$$!@Y%Pcjw~~NKY>Y)eL8<1xuXmcNvtl>lJTc#X9y4c+0f$3WK4pyG_cc#Ci)Ewm*1%VGaB zQr&ZG-N%EVX!fCWyw(CH#ilAy-v&&^BhmC zt+kc*Np4|hD>K!s+7Po7qw@#?=K2T;W(b9UTj8ghuOGXGda@|0Y17DCU6#V&+vk!;Sdcy_SO=cvoKQ-~@slz7)njyl+dg+`EP>!yS zq9hwiPbPE`+(e3D2SGm$P)+N9$`Ucq-I6Il-ym)>pZm+V^cPPjPj$4naWde|6`Q7X z&yR5d#4QcCVzm%dD$P##)OMo2Tit#CzXkX1hnQ$lHnapEsa}ds;}+w);ev#q=yWBI zOoq6&F#$fCRH44y^Ik1x+)5nF;8~|Bqe|D7k}v7JjXxp9Z9H@+WeNm{W7yr6AjH?q zLw9p6r3uKjDlcESrWoV+-0^JA=&$G77^O6*R#k(dUFs;fERtN15w48)Je-glTtzK^ zGSl(Ouwq^yXWo~$O(slQ8_*bd1|N%EM)#dDWaR}b79{;Xn)mp*)VLRHfSHLtq3oSN zRe=2rC(cjxx*KwcDJ4ZWab<6hJBkqL;6$HaWr!K5|HVJ-Hb8*0o+cjk^(m_>%$pOHZ27Uc{fV%CS=U5MK&Pz3H8RUF7E-ptoir@?U zD_j+CTCn01JJ4Y`=1OKd2Ai|<1jKWI5HE&K;RQwzE}D?@_iDmJgJwKkV?i@Ki~Q`o zk=Rgz0b|~Mh1TB7lPvyQUkEYU5B5=ft}7utvtz<;AKWCZnE@0pgRF%WU(*2)oEgWO z%C;SSE%?v&z+1|>z*OHYTn$Vds2*O(DezFT8;&PIC2-Se*z)D|Z8wn-8H7VZFldSKz>$Ka+&`fx96GHQ3OM z4-%r~f(SZivZ@2x!paZq`vWp-t~(o_2&^baxe;KgyjvOJI(Y@npmiV+rF6}x7#so< z%)URqG&99~{bYZWO2oSxK=D6;s#X~Yu&qBamQbOm8j)RQKcvy}RdbL|C#At4$D7lz$Ct^r=M>rLAa&P~V!2 zH|A7*{y^WgdbczVGBMI-==g(@V)YK+^cN~Tx)E$Zr3v+&1|f@^BaL<~?z`J*=2^&R zvO}y6F{`?n8RkDx0;%|X^^TYQ!-g{NXH^u$g(}Iy#hTYH=&o*x`Xj#EC-F7kEJK7% z4Fv|X5?Zp$vCwwyb8&?zcsrPzeksZC5Qxhl4l8O2bo|rl+&G` zL&Tq4A|uR^KWTRRpui;(@{Lx#v*?UKLBMYZ8mtyJ?*G><8Gu#LaOPJ8EUrsy5jtkw zhCp;A4NBZ@2!>CENmzj$I`GxL-|bFAOFC^xG9H=`DDaSl!sVo^KK4r?@6vQ+ka;6z zmjQovX&R`dZU%;UNgrwfU}+)dh1n~@s@o2vrvd>oNZ6(xI-dA0A(0J*=q%}5`Xw7n z#lNMalQtmw2=;o#1=_GCrm;N6g#8!4r|p0&n1}j(cLkzFT{Q$T=RO@JcuT1^yzc@C zo98A&Zy6AL331V&ddN0JS(7W9_ypZ;RKhWbF$yS%n_|$9d5J(=y@eNT4`lMrOG0_N zrCc?H*iktj%~y91<*?QNxU1UmmoomKuE&;=UhU4KZFZyM`E$;r>#G{pC|p7O($rx+ zLVX3Lr4~V$&uj0oZl6of%ef$;+BDS`vr1B7Zn4&*;#p5s&&lJ4@0IEWDL)sAM3u@p zz6BL&e31QX{qZXOUXQuvN{du7I&)K$1^SWaza@^3Z4_Wii{6#YOrTt)r}}gns;A>H zCcf8wQmi`0tk02&W4f-}AL>h{`jee4^ZTe{_1K6w1;M#zLQBfZ+vA4QC^lR*h9qTK zqnzluG}DFZGqZ*IJ+sO=)5^PMqd0J7KXajUA3}aCrx@G<{DvMrtNeXCD6w-|SHoE3 z=6fdL90P3nddk%BE}VkqHPNvFm5+zbifs=W79306D#FIJc*^c;?!6Kq3vXDfQYmfe5)q`0HmdMC@xPK&lZbAV6Bx^~e{c0-QZ zt37a`)>`*(#dxULld4ic_Uw+)QOi}r+_5|eajS|j&4mSuNdtxVV?$9vd{WD{%nhm5 zm>dw!MMukECpVD;Vc=%r`-|!A=rlerUK}!6Ynxx^jQrMilXmhx-hT%n`kVQ#^{YaC7C$xjU_>zNvm?x#Fh3~8Fc=(Mk_F=BpXgJK>{;CkEM1?aucs!4%NAxVxswZX+&bd&;{iMcUlIJzUk-safw&`^#H6nAiVcpguZR3DYxMGrde^K#mO^Vybz zCeG-5R6}Fq(EQ^>A85ALOPgOHxx1;m{pBlE&vf7A6;eFOjQHUzH0YIfD7+PxU@#63 z?k>pJleW_Rq_Xj|K*#Y*vq;%pp3s0%+O@^P-K6n+t%C5<;jyJDPli^BkwC78Vy2++ z)?Ly)F%kc;?IwZAAL8z|UY@PLOsgv^(Owe54P!%=U?7a2{avuI087CYP$KjWVf%!_ z(_!7NJZ|&k@iKDkey{~=+RW#x4fPx4m@e3F5!N_&{G#oKC@-w?vt;k^uXHW>b920k zF8>7a99C5T+;8#}D?z$X%7V5ye4CL5m=5jqCWycY`fc#~sAk^%W!Ne0-ebYDUCDBR zLa@t9VCz$%wo?$eM`q4Z!5to>Mlp?3Gk?}^iYP*f+gPwB6E@z4S`s*Gl|OEZyewjO z0P|EiK`1&^$>Wj1Yv3xcPrA$Da`QsC;CXL%2=grvn5N*`29&66J_;qVvzgx%FX-J^ z&rSmC{G{1jU>qd=ttf4(ZP_Y=f|jBY;fWGu5ir zK5EJEt8}R~V!B!(>s=;e_|6>5@pi@N zmAGZ@HEDW0XzBNDjbidzf9vnxK{s~CW-gNR&y*Q8N-J0OZs0S|m5JATpSvN|7EUkC zDtDtI3)9AeD>cG5-xkjP$qpLbu;pj>c^hGtLE1|oPnd@1uhkp=U8p?tDr=6b+>fzW zC$E2Es@>IyEIsdk2pM)CzkA@$!K#Byff}@OR=oK*Jy-Jd@wzQ)cQ#knyMYth4$ZE} zbsE2AC25a_1&$hxne`d7A2em0lKELG#_)f;%n z_9g@fQp37mhEgmZ+%n5|(kQ4876o4I}TrUX#Fw`cjFUQj$^449J!q z;6DaS`Un@*e6!j==#&;An2D&_o**y{sMO$G;DI^=tl{gUn@5UDbtkz4k#~_q68j-< zUo$@>j&?rngDkUftVe$x*4Y;d1zjBFUB4fvwGPAR*R;orE9`xwPp$0%iCB)prU{0a zaJ)%2O!oCL%b*TL?-e43A8)Li#uWJXXxw+jD1Pf)LfaKLi-})dAxizuVE9bObRHsM z`dYaB*jLGEb265U^Mj$}XZg7(RE4=oc)8QuL!U{jrXtrec|5PxSh7wTn^!yL@^i$= zD*mbSh~zzhggn)*pYgiyvsVQ>-f0D`A*&}FW`)R}q2hwSKZ;>}bDM-^IO%QQ+YudZ zwJ9`hiaDA~eSg#K1-A~_gJGT9k?#V=@P-(^a+<>*DI%A7! z00r@%Wfb@ytrmzKjuv!~7#_LSzar-pcwZ{q`|ndkm0h#0{+}bR2&>&BDBFzQ@LMrt zz8DKa>al+xB7Ax@j}r4tuNHwBD0i8O;%RV>vIL$kCPI}jl5dUMkhu;N_T=KIpQ*H} z@wlNdQ7+kr_Qa?nn%**jCEZFZed0@o8LhyZ0eX!C-F_(nxFVk^Z%s-8Ce6RCJfi|! z9?6z-6aTAq42B0G#Jw^W zGiP4QfsarUtw!!{u9(7v`r22SjTC(@sVR}l41d)YasbeyrOvaB8AD4ntu+Yk3m)chEXQTu`>#RxQGdRY&^cn?Exc!w7DgUl^9A_288 z(0HrkQ(;w_)%auFUoYjlcwxHv+Z2-^!U_w@PDV3hxTY^uW*A!4gy#+yLp*tOQ7NKK zFWJ>oY}3R~gMRWY@{?(W?<;Rtqfu}40}OjORR#pcZ*bt}gRjHRXI41$Rc49ic z1on6=ed;3pYz3}pP;hV^zuyug9WZ2L^7aq%R1o_qa02JOlo{N-SCdLdfRj*OZc62M z-CH*C<-bAwRPbB%>WRA{%oDw*M#^6QEQCEJlXc1RBiurRn^?6z6xOBsUgFzA#Vu^B zEk0Z+yPF_nT#Kav4v4C!dBw{=6ZUofq7cu}#VNYz0G(JVySL98uKUO*t6!KAqEWa0 z7#sX*DP|X2yQ_&OCEPMH{xM6wie`}e#PN_}fT1Fj40jlwn@;U-k}g&{L1%nx?m>KG;f%hE1x!y5-%pY_fToY8^CJS~{eHN;X3^H=j z2_c02fr0u|8><0OAoOD@gda37h9ktq=;%1CP~846mfwzy3!yi}p!kP%OxPRuMbatOxY!BxYC z-y`iy-2BTxR;9&9$F7w)pseZOFD?tE6v3k;Fa(7yVQn_cXVoa8{%D*RM;Koq^t2UMNnm%w~tMaNza)`1Kh@5d16)jf7?j3^XGjRw9 z(25`8v`noyTB<2LhJFYft)6YG15L=NNrL$O+ooQYVEYj%ygVFlKdt^L!Z=@#6uUH< zl&MQsCYy~OvKsMP^!uMb1=NtZL~n9>58x?kHCpFa1_sPrC4f+oQU0;M!201?Atfy< z?B};SVDkzbr31NPBYvx;Kadl4Iz>(S*wq(-ddEA)yi)@#S0&!tWvG`#;~16Ri7fS)3`YUuENiCWuKHKB!MflAxKsmB zRkNgzQ{;EmfWcbz6ML-ijbAHG6kx`!Br_wt;7gd24pBOw~Shn@0Ee zBnc-vIt*7Y3u#w7@YW2~2KG2)|r(38UcnW3G_qmWgbAlh(%D(*- zSJ4*N3hX_$+@Mjyb+}0@G>z6k)!wCQ?FZ**f6F&Zr;qgkPB;V#T4?6_7!jju)q?rs;WBuJUd#2` zl|hHa_Rg(+A|fHJwVz$?m~BM-7kZvfocK8<@nhrO!h7RLHkR|9V|V1<>S4!?T?Y$kk7&!FrrzyBAE9MYR9;p22@)UNm`Cz5{e zV?V8H$CcMsn8Fo5M>-1snUY)S$kscV=E1kBy`Wp?iCW;`QtuF1jq*M`v&;t7zpcy(!dgVR z5tp36_+yqyo+2Q{6oKkz18M&srTd4IR*|UlqN?DS$L#@z<<1ZleY@nJF}3HoWF^4u zz5W6Y$j(KU+(6vG1)bbz`s}m4HCFW%Kqvmaud+Q>1n(VeN{SJJbg^b?2wIm<2VeJ9VAapI^vIyr*-IIqM4WS z(6&Zf_OUm@gE9d{!b_F`)>AOHZmpH}?^Vv4(}RAPu)N4 zw`ek8(;}=4#lHcst#a2hg|+ap6DS0Q0u;qGR-t4(B<=i*^OWuuA=z(dd}7(rOX z8zS%BU(Yo^HYHhLt=|FKwQeMgUtn{Fl-6xZ+K2#-k~cA)+CMTG)RX>IG#`{SMt^?< zG#fYzjn39oN^Uu4EVc}aE*{sF>GFbA$jn{)69l=U|1P2`RCcJaUrL|%OXmT%PQtAi zby_D=*iP1ETDVIZBdWi0%TjFj1vpzI)K~P+iq~>)dO}~*VD*Tpw+!n-uVtE`b;nC?Wr$L-T+SF{yClO8?beq2vai1!rXOUZv0Q|Ry) zXQPd{^|q^1Z0{2ju?8l3+*pFF$7b}eTiyE{-3pk?<_q>ZW6XM&roM3VO~^6K>@iVp zxn31W+n{fI0i7?4HOKFNI~UvJ@O7sq6h8JB$JyZ2*ngo8_#D~*HCEg5WiHPLh(5w2 z49MYhvTWIU##aNJ0+MCQC0 z<+A8;F?1c$dK==@i6=P=s8?dwFJ$nj5lGnXU>+mD^3q~toMQV++vBY3+PwAJJZMBx z_#6*LiaMnCTBkp}8}V)dX8g2Zlms2Of@1Z`?qT5viwD5)W9mL^p9aNbn?&@&ai8rN z_d$wbDyeISsdi?wU{B(17VVYplajy>VJo*-4}f#Y04DENB5fqqau_u)ZJzczsP$q3 z6Ipv*Br6F`)o%9d?d6K)g}U9+hx(HHspB&BVI9&62p6f&$*fG^)P?kBsTyJlGg13k zfl;7s2fTeVt~;qP;gWa!JD<>Ug45*IyJTq`kt5U3oZSd?U3n>X!B2o(%X2)3KE>vv z#-r%Yp8;623W3qGC1*Id*^HW2ky)jn*lU}`k6=!z0jf!u#k0yB!@HZN8=d9$@tpOg zLI^O!C~#$G4#Esa6St@9#I3XB=aB)~?1&qi*3aA4_^s)8N$KUEJ@=IgTFc!3{TYV> z{w=QI$TVc8ZlrGV?wA0P$F=K`m&cJX6a&fMwjrs^3r_F~DtOQWI{mEz3q{aw zyX3AYHvha?TCA8dnRW546Txcyt@W!Ku|mFonkB~IM_kag5}+Eb8ZRx@azZ;5+5Zv& z_`n+ng|EvaXn#s-gg;Pv*Dkvi0=LIjWY)Z&cf751pY~OcTu0n>=BJT)TsZOmP?xz~ z0BY3{ufrZMW-tj*+MTZrJwnH}PJOfqG~%DVV6kMvY!s$p5qQ4cc(a8#a4{mXVgv?wP=CP=EdG;Z+`jvFV7AN{UN{;6kcFY;p?))Fva64 zswte;(t(aK@FH2J$+NKlx`X<6s<+E*0ytjLKnjtMDB2`!#YDiuE@bqjBV7-YT{*LB zBzcZxM z%(jQa+s^2EHy_Pa(tDbd@gKFctYKNRIVG~A0E0UH2`WFqIiOE#-c#EHL{Z4lK}f_4 zOrWK4sei}^c;Sx#-hLQf#J^J@#fKmq4AIS}>)O_(l9qcjf&1Mo*ri3e`?SkYT2j&R zx@$n=(<6M5G%`E#d^keKA7&fjItUHzDiOKQ5|MGWWq#$4xE$&V)7ff-uJg6R)#(02 z0YUE8_gNA4#ri+|cSc>KF~m8&>cjLR1OBAtjSHH_4#b1ZDV}N-jb=1`G5T>a3@1Y( za)Qi8xd@m&O#g&YeJbZP5$!QZCVb68M_UAn3XgMFd70a8-ip`!N`evq4db9*!KzVx1vAIK^Iq~%0VMs zx7cgJ!;kkyPn|NCm)7CFM6GWe8QtEY87?XY$lIo*-`%_m+0P&KsUzDO7Z8fQ);$iR$ z^_u@b4$PzYcjbc=VWtD0ByDi;BDDf@wyAr+=cxjRV2MN@W&^$JmZ;eV$xaD@d$Lbw z6fd@4t>mcGX!WB*zlyDu_jiP};IEPiIA!;t#MrA?Au8; zZ+T9W=&xyy^S+BMhIYF1)qV)b07)Q4hUq7MlPRGo+!byIal%wyxl@h~ zOeayMgL+*Q(A6IA#~y;J?6+z6WdNTKk&Icpl)KFaqMPN;H;isQ&Mr}A0{r-yB!(gR zHa`W#e5!w_55EU^*bJfV&%@3woMie`pTir@)4;?%VZ9N_+9>Ba*cxo-tb$?}K&5o( z+>a-a2=r;Ko&$C`zML8RU{HlftWe1_<>~`Y1>@Zz-A#P4gi*gD_*Ocky`791p<@wV zeNF!$Ht0hkwH7Eo7W{K4Shzn5LtmntAb`Cs7$;^A@Nf&5{_)x`$m6EF@(4ryIVkf= z01Xr2Hp!&2!vA{!Meq|atI}H^p{TK`w)3~B?0};fmo5*vJ$XJp`I?jo!yx`!?Hfk; zh0Y|iIUqx@C0eeeqf+GXg}4Qw-05ikGR>c#c}Mc%NJ2O`fl1ik23+9zaSJ&6p|K;JWioSPGSv$E>dVlzihLywJ`d{`?USzpds!&2d$;$722 zLz?*hIsmUKKctOaZHl^G@-sb;+SUq1?)rh-qerX!s z{&7UWa@}()PL&Sx+$Cr5*XCz0xi`_@!z|gG$R!jS;=+LKBQzPv*#PdTJ~ZSUP1!?M@DJJD!o{9e#iwr%5?yTSzyK+o=C|zX+3{+#+8| zhd6n5+_=F&LPEXE^f02sDb#T*&uc$#+zeO0X>~B9U5i0?`0n6)94aD`t8rYw2IQ2+ zy2d)`GHde7GvGuFiT<9KW=^|Fd0lN{w!R1}Qg^$%sBXiXeAyxs}Qgn3~&qIR*I7)F+`B zyAIu$EW6Jt+}9KSw+TsKZ2Wjg)2Z^P`?izMx# z^s>2|WbFB-O|pUZYd;^E_KtO{fbCFNnZ6rqKc5p3vZQ#YYK-w9F}Jagi!eU084UW? zS-#o5(l_N=+@7lYZQzKuGMg30-}uNcE%tQ%Wq5|h3)3EEu;%gYIARJGg2C_)MG}C0 zsnpgLN0G^ik$TAeXD43Rx*}j4@|T7(ZhaP^n?ywi%@jIp)C+Fc3Y_KLUN>W}DXhsMT10bM2w2!7G%TBsU6QarPEz@gsLSD62y4wzHiFlY5x8& zn_S|tFhRvm0SNsu8Fyl`^Zk5Mmst<-6U%sZf=;OMU|a0y))!V26vN=$=W=jYD)n-r z|3~h%E^d` zCU=W~B~+s3**Gf0^0rtNUoDE@A&M&~Hn~AFW6a%)rnc5}UZ6U`L$1xkSeSe9gR9-- z3!2NsP4U2=%E@?|K80o5?kG3R2Rh2{n39e^7}s*6sp==Wtz53kIi;wCvhMnFjaj(WwQ1rYm~Z`Sk} zoBe8H@mjvEOA?Sgyo ztX$rzHSFWnsdoJ6c?nAT%3+CqZKWZVPq#b~s#GbwdeoWIWu#)TUjMzgifP2jC}1WzHglHjOP$-G#Hi(6%tn*TylBHWWHfYS@eDi zqDhY*F?ZUV2v;oKO&?Q6N$T85XJ;4o_B15!cquLT&`+*)cI*96xl`sKMtN6(9q607 z^SaYdNyRKy&tI(8G=J#h8>ku*^kjOwql>xX8+y|tiVNoO&HM}(`V#2~8L z@^|bVbnR5V=Y?-H`)`*p1GcL5h^&f2JyE4~#*qHJi#!byo|~5;%m#n4p%^AcvAeay z>5!3ts1!O?k2#wmGY^cjxTg3K0E#lLP4!XK>@OBKLe)k&38KgMCQ9{J(1LW1F-A(Q zieLPCw^L&85k-s}k_=oj*&9;(YR3VCXmvK-V8P`^{O(rx@J^KB85w(GmY(IN)~$~~ zNS7FfbDVLzb@f&(i&cx?!oM3(qjmj}9mQ}499p_XGOdD0QbmYzj&jlJ&V31qug@~2 z)_&M;hll8mh2pL)pX}we(H(52jHp?OL_ynL#t3JONL%F)XSm;3oM?HsE^(mTMY-?X zdd$TSuJ*48^yI(s2Kg~Gm?vHgjnDrjKpTw)mc{M@mrg8Vb_UTt-#@Bx$$ftaKW96W zJ2?-QT5}2;IUlcNPq+}+BRtl>?IPB)N-SIFffNqjI-K=Sgh5CaN3kDmk^7L?_-@V( z!cD7}#sU2lo2rCj2%HQf++Fz4n>D57BBYU)DK9xpU{K5x3(4)<;Iga z@p^&;{i~j54v zi_h+!5QB2hff96e+Gv2|?X~azEvA5X9C;kO)3B3qt(>auRZxBCauRv6Qrg@{F_=5P7mjoT392oNg@wRf;#bsWOf?Tgdg$k>)RkNOeE+NSYEc zw8AscRe4B$7B7RAnBR2)VcbCBYrlsZdFXqRR!@(MF=;+5L?vRb?J<(?S^hI+e~a`z zAB8w>IjNq7`H^1lXrjr`3sXFPZ}|Y)fj%0zcr0a~0iVAgPUPvigcDT1BuJt~L3uEI~E-ReLP%_Sv2$RUe9+W(Jww zaxXuBE6Xppt~aOSW~K|k;6A?_Vi9TV@_h$iTw+vNqcY3>w9Y;c+fNK;vEl@uIcezx z$+Tbq+nqkXT8$S!e8W(Mzm)x`i>n$zlOfvtg-gQ@Tm^rM{X$bFTUGCFHFBi@clw84 zj?+Z$fbTGwJ0q;2M7!&k<{yOE()ZZRw0Q%NqvlFj-~m!K?fe4x~D6$=T3j569rRocW-uYzmL7 zqrJ{abGeC_JDJQ>FAmhOVqdfyNviqpHUG%$Ea~;|o1Qd8ocd{ELElx5W4snO#$7Xp z1GgtG?sWRw20~M?Pl%(&FB(`Lw|k7L7pwVWr}z*}@$!(~R(_rT;jf&|S^Qxp3jT;P z7OsJX8mE&wSh7L0UysMO&N^bjzIAE(w{D6irpkWH?NtYT&pR9HBaF!?_&t&O0cTKps=3clZBdye_eao*yqGgqGz#aA(QytYV!l0Bod>BT+_!GsqCh5H??a1Zm-G*d|}y!81jE-nf?hn_|Zk{YUed(WRGbw;yC z$zi6p_~kops^F-L(g&66JJyEB#lWM`qBmZakD}0WMBDu~#G_S2+{(b8I8}kOQ28d@ znxY~J)x}AF9f;1&r)4GyJ~oUXVhklf2XYUTPveltJ)q3Wy_#aEX>0rXojPge4cf($ z%{I(pP%&5pv1xu@?u#R z2@umuqQr(N0zMT%NgJ8HO9E(G6Ez8b^pA+ca}|N!^M~^hrCR8;H*SiblLb{qgKEzze}Bo zCp8vndN8FHi%ZNYI;6Gm#BnP}D?H*M890(GYGN_6bP<}p_`%Yi>x|@Wn9q7%k#m)V z^(C{DN!3BGLUqVRzxvZk(>B@t@g->3peCN}!yQf(|2HAT$fR3dn!~9w$d`t5lQ&hj zqXLk|Ujy=D&&D~4QPnkd0CTmL491{AaJBftj!=ZDDfzHzmi z9XoH3{t=T78~)JH0fwuwCV`!_=II(E&Ege}Wk_+>&RQaF`MW-#yqmuUmQ-tQq^$G;~fGQ;x1a zmsT#6H7u8?i&1`aVLDMhk?403Vo?_?dpCniqcF!?{#%(^=hVbMDi6+ zgUo^=WpR#*!Re`4(&8J@#ZP##@F;GVYu>t5>CU>{aJnj{tL!VMqQby7XB(#fLt@8$ z1XEH9W?#@^_2(HfzLbtl{Ot)Mjg}v`*27tzsJ<@u8UCI#eLpxb33a#^T9%GmHv?Vo zoijh{DhbXVKabLxd$|@Y!KI@3@%@(;01NvY*&UP0M+$jE(qH7{BEMD-S=f)wxHc9T zM>5enrP`&_e_V?(+?(5H_(M(<1WM_)3pp4t_|r!B*I6={kjyN3qh zsE%+KI_^z>!@G_U;%~mE!+52Y znP1Jd6b+5c4>M0Mv|y7UdfOx-OtzNL*Or#&bu2Th#6Z8 zm7#`P^Npl%$+e)R7@FbM@*_dDi`ge|G7JEz%cuRXk>z$=gk=sr#PEGxunmkwJq+^J zk26}ocfA@iQjFPEuOS8AcSSP$d@!?-V$3jI{KD0yr;8y(z`{S{@JHAB>7t zF5jOaN-oG};#Ib2>czHTs@X5f!(?JSHk2x)vGC3=SNa!3y6@ZWSiy+M^Vu6>QDt1OtV0^)Muo|FVUc0xEWqvJo>%QM&Rk}w`s`j8-|*mI+Puhs#zUsg`5OWEET1b}>O=9$!Dk=foco}orAEG?DW0cjZhDnkNu(yqpGWxx z#Bb)$0ce8}jqzW0iMEjH6bp1jQr=1A3olE9Fiz@F*CAIF5bmT!kMVH2b}jspfd z+i#kUgx`q2ytE02O9%kOk=ZRQ058GH_%#RKE*|{vQ$AOeXE zg}S8r#j`*@>#C1PwB*KEEM$nXMGVaTCgN`^^}UV)i64J2oe={>gsn>RlSeW0=ZhHg ztoy2^yXc4`8hh`Ax#;@}8cC}#79lNN&Zj@WDSLu6nF}^zGiCqvQCdQ zs_Z9C9iS2Z!|t;ue|1qHwnTXrDy?0lF2~&2JPDuRcUCwvcJN7z-bJ+xkPdO@jAv*2 z|A3j_A6~>7DF$(7!w*C$Ld_cy=KySp!Ir*1hTGLL*!Etrvi`Su<4O740Q(>4-N2yh ziV1IXr_H^{o|@MlA4+fTFb^=A-Z7CHJAUB#*S>Xx%&|YPzV$!mtuGYGk^bY6M~ii1 zuBD%Cv8slA70{|B9A@<0-dg`f6=Z8V?Fd$ZTrauttpl|WF>;5<>YkC#Z|U6h<+_V| zQ{yD7!oM^#p+G7AnCCnjq=ZCEOkjmohwka~WS8`D>KEpv(zRm=T41&wSFxr|OZWb> z-Gbwk;DYCtnR%sGr5p0Ne8)ood{4ms3HBsW42Z7J(IcvWR`T~pYO1aiRHXbf0=KVU zHpa8MFvV(#f*RI{tq}ZC5LDxL>&7E(SE|O2^;?%qHr-IjK2z&(<$vRNEXWnFyAZ>I zhxAAXBdm@pO=*#ngjl@BQ*Qk1UpSXqj*kahUpu47rXX<*=c30soTDkk1ODp$c?t*S zo6Fi2e4aZ4l&Zz^b8p_VPh0&qg2yK3W(y5gl}nY5m2)hHSnFnpEq{jCouRMwuP(Et zc=yg1=A@<1XM4^~sr?{qP~=b8jCEW{7YG}s)D+dMNbng*pFSC;{qf?pulh}X&<*wk zF%ML8p7cnNEneIseoeHtOtog2dOt!O>4v23umSC^A1^$)<5>f-BTY_Q`!2%FAFL*R z@Y3Jl^D*!`cnt!kisxlS>5VPG1P|S}(>yX(<^6XU?x&yOw=VA6@3#E9?a|YR)NKZ~ zKLbR|gF*9sdlc@~{A&a*6Dl8Gej&HSir0qAl%dRc|M9a;z20PaeLC4cVSOug2hKi& z5_nefnCOmXPRQ+X=%lWlS|B8i~K5Ri5}pjCPf6YulGX1YJ`2^xA+hl&P6Vq@N{;L z++NUu*kvb)VNac5mCjpI?}2*T3RzQNngOiE1TulVi5ekXfL|)a54j%C2yYae&2hAD z{Z)Bwscv2JBQ(c8gmV--KJMomz{tk))hxe_#86Az0=k~}uc5P6|NZ}Fi$gP`qn&pF zYXjA`0&6%eIbtih|cQvmNc0bu&0x89q8-D3OhB%i1gVEAZ zz_G{NF~OqhBh)=(zN?^_y1m*Pw7o^uRtZ=jVU7Eb6psQIi8d&wWZq^3FwP+{_5S0B z>wNov^TS0WgMHY$XQFe+8KICmV-2?V!qJB>$#cdG&M;Fdy){>uO0(~I&gWE zlC5%^U&kkc#PHC}rgE@=cTyX@WBb?oCQ%1i-!R5pH?}=2;blBrI=RP@5U`N|%N=;E zRN9B#b$LP3rfDxPp@^;`2N1x0bTh?@jYAqE21Br4Ips`I zT`3=PEm^SycvCI)B8J;DJrw|@O@nCM{$$d6E+&#y{g%$;Q?Boah6kB5`RI0u3Z^+* zmo_%xb$F#E{qitcf3P#G#nA&8Ir}TdSS4`dNRqOYn_ToR0G0q4p|E*7c*UqJoq`TF zcV?)wTP+(d-O}nU6>3vd!bY?3YWxSm$vhO@`vCiV_$&pSzAE z9oWot4*`Za4d(M~(<$pY4y4puE$d$2X;gQ%q@4udtOekr=0862+_8%hG+#hd-F?|N zL63SDoYd8<)ju9?Dc19=qYA*;h(IfM;YuPCMSHh;w7z~BWWkT*K}eHVLEqNyeV5Y> zw~{zbmy?Uvzo>Nao$$BYW=e4LT~K<67kB17CHYT$P0r4Bhn z{Xq}KAACgHhY#0!=V2bJTDR!!NlH1;6=87JZWzk)C89fIu~!0`y@@GLn$BAZY{ud$k-&UA_xFR7z(~B7YOho!FPq8S4>Bfpp_wXzp5IGusUK8i;W!!+~mF`9$CP}6!pl-rHI2^glS~>nf}rVc45okYT(qz zOX%H(B^W{(Jw?joL=OxJ(=-O=2h~@d4Vy?1%c^_W`@yYN?j^f9?|sE=OXE@NX~HnfX9vEW%=zkItut-+M7y z4K@(Bt!Y-0RW(H;xfp%(vh1SbZ=gy)lxh_93gEO`fk%aqKe7fG z1Qa2xc?#Y>?!>&8_f%q^U(Gtg!Xg*7=BtjGkEo%;`nqL?AeKPbe8cFOe_geHv;{Ai zPl|dg>(li-3@2nWRYBq6aP@c-h{HdN1JsXx;`C+`q*foQ<<5B_$=?suttITIbGtVQ z%Mj6PK!R{f4e8c(JZC3dHi$ubc759Hkx_R21XkT>K)VI)6fS#!mtea?e9P#(a9IX< zDZ=IGg&NLP?x=QtuOiP^^tt%)b_-g2JfstwERp_QFZEXpdEz>db0@8U$&$p~!&{R% zE6))9*>SDR6RW=qZ!Fs1#m@!7Onmt9L+ZLudMAzjB$)i6lGEbwbWIoi(1lI?s9jC% zsvySad-K(7552DmyeYMhU=FpIrXiNfL)}0Oz3aXfnQl?-Hr1#lOR^!R-A1(1Zb%pM z_|^p?Np%C@;5W5xQwZ359P04y##hZh8wo;w?$Yr6Vj8njz9I3A4zZ==WBsY|r2J7C zj}slJI;RK{-GAT zEGwdLKYfS&jnv{+rTH<>fPouL?OuXGKai46(Z~AxnaZPt7zva6>nWhppW7Yt+_-y1sY*kU5Z^3@IFx*7{cg{ihVnF-my+x1$CmTj}xl6nPgr)kX~62p}*xvt?f3dpVWY`V-A&D5^Yc1c$42W za(T>~H>G{O^Uuo9_gypE20 z`;vk0Ca^7ZqjMM>CGZY#OLrgFKgc!OPrNn1zxrvQ#lMY~f} z|MjyzC#%O=fYO0U@40w8^7U6-P9J7yW|+yR7&u^(NFslbCIGDrTN}=&@y38CBpP%F zTDxMR0Y1E$H1b>JJIIuruemC3YAX|a=>t<3k&F9P1oHBURra}e@;T~r*Vos^$A8G^ zyd&8e3-%|+hudnHr{|7`W_VpuRP~7l`=`1LZOW3FzvYw<%AXH$kZO3V6G#1SiE+S6 z$$;NOU7zIyyM>D0X-$(i4WB(Z_AnItc=-ZKa$#m{Reatc4dYBjNS8+r{UBc`F!O>Q zh?7=0Hga9RXJmZn%3GS8W@OT2f5@-1G@NO<1l&SGh!1k-;#0q>@tdh1XNaXH5RDp? zB7U{H>*e~g$}Q%tRcfC<-A<goSw&V4`5nPaPEBhw9s0*;SqXi=lcf1V{xMFN7|M~o^m!!4?eEJTu7Z&T_SpDTiG zRslgY;;q5l3=ru?`0xK&(NOBKsOvAYdv>jPW-fysxD$oxm&I6a3R&j_et27}HG>B$ zQ5YXo^*U9b-t}8_e70LYu6N3yGs#x3u>RVjCc9(#Imw2$WOCQ=i^S*l67|dxqRIW@ zcjzv)TZI;S?A*(s8w*Acg(hG1(=*#8dodEn+o?Wtvr}e=<*Wi^-!89*K;PiWy0uDE z3nM%Fy|(+ZhEhib#wpKsn-*2OP&u=f#aU8Iq-hb85GA`q(^p$RGe6Ii+Ilyn?@t&` zy18GOlsb^{d5b?6nsM{3w8)!iL4eAiOm=UO{OUc81O~xxy>ZL+0`!!dP^r?6F6JAH z9u%Ngn2Ou7sN@bVmgtq}R7$nW`WK1Dqq3`oCkSyu)tDBpu*oYy6!JnWZ`0XFOob4= zHOt~3OTmI#1DlyiRfOb^pU1Zf#_CaaRebZ&Zt^=dXuBq|@^@a+la1e$Cq1Gy-F?rms;?8zM$U7l}s`-XcrN^1#^Pod>9W{MI&ytY&^f6Kn zwm#vX!lUjBt3nOgE9c8Yp%HG(K<^k0fA<#^!2>BT@?qGo16p-v!*c%Li5+0eKFh8$ z)qLJt>*n<^r?O68#0~a0p~6E$LZAtOV`6<%@zK+tgrd%8>F47zsrHY9Mb5ssVtZVS zl0Q7%Gn9U$EM%~Z!0)wivp6hqkO5|TV9`$reBJ~`SE1lDfhAW&=<_go1}_*Rei)V< zkQx9OOKO9E-na43`)dCm?*nisp<1!12>xyEFrG)x5y{5qo>)m>ss?-m*s%e5+(_a& zUxEP=2*vu#O@A;I2PLdQjzZnA3?(l6pA-Wzk7^IgUs*F_?In=cxFdT27Z`~O`U%D>yKMOQ7ngOAwf`IC?c4L~(#u zN`;Gr;C}|r7OfpA@t+e|XgClB>ML&>SRUnmgeTAIyM6{Q2|}>nnQGC-00l zsS}ALVA+k>n~*HYSd6193~?!uXbTVq9(p$dJpFaajq`}Q?fv$E?Z8j@p?-y{%KBCt zxJTtb5dVx*S=d+n)nsoOHpU{1Is3bX*Z-@N9uVpL&o_u|WEIbgX#K7g;w$50o>7nv zrE1Tjf7V9oW3uEoftO%N3O%bPs0ygjhb2?QMcJRpfoEeYk@Vt!f@j0eZ~MyXhauB~ zNIKtqa@4`l_UEV>B&OtB$@Kl^P2*RwmaRCPEj2M3$~7@SoE@3GOtgIswB$}r%_q$=Onh&uZM zoo@oY1;|MtMkQ^^oDxBsQ(!5D#L|oC4>l6UTculdx{5zNj65=EU3S&42dal0(MW)1 zBZGcy$_m@WAMt&HTi1=ChwX9<8BnRfO=Mt+QP!m3bq697f#^SxSr_(nD7w%L$vtXt z>iof}yfN`k;V!4xSBLQkt=y!It$kCUvqjM${W`bX80!LYi*r~aJd9~td2v|3(e=0E zJ;xZ{_5}S8*+&2qlUL(CDTJ45gY@g%e9B|P4bkQb(&)A!wNPVca<|CURxY5dUzp!1 z-Z#SCiG`bBg~`)BbUrLJQb(YO35TymH7Ww@05SS`B{a%KEK8+Z-@=}NgRm0q9;Wuk zaoe{h6nIjNu@qd+rMD3M!z8l-z%exU)BWJ~_3ZEvxy}9EC9oy|&RZw^RikW1Om&|& zs>kZ}t?mVff1A|{)<}PJn+JqqppM|bs)+wt^P&EvZX;T%n*G1wEJUTS$ruj^-!{|N zM2I0P2Zpwl4gYe4uAsU z>o(sAhHxqicbjAdMn4@cHO@o}9rMGC07uEXc7K2@M{MZ^oyKmZ#RnZXpVZ4?zQ_om z7Xe)e_M>&w4kwRS&%>>~EvGe@LoF8|^OUEAIn?LALrlY}vhQ9kOAg1#<_m5GH17^s zx$W{YEFO>B>ej}je1Ncp4JjnBHFq!zK97W-37D}6=8|x2gGZeOHkiy}AQ!nuvnDYg zo{EZ!2&LyaketwhIb#uNDPi&S8ZY%*^#Yrrg`s!*Ud_=ax9#;_!9okSfn{T+$1k7z zzbUgvO=8M#bc%Q_Dt{WjDr}X}WBq{i{#Fk74r$s;r)nE=i#x?kaZ=mE~}2ozL=PO^|-=gLT&=;M-s$@neE3yM-s$G zut((i=w>EU#rnw5F+eQALU{Pc7W18u^x_QPQJ`PM&1twKW==<-ybiV{eWT+k+q3qVx;=9 zN$e8KBwLK1I5~oTx`c@5oH*Gr>g^O~-S+UIz|KWn)mFfHi z=G^A_I*ljLnE6Mo<-`^io>~qIx?=4x!{tf7%OHhE@&&ADmiWs%s8oh#wl}3UcXdGw zrY|u6V1WR+)_!A4P)p2x%ZXL^ManHaCq&)GHD;+1lHju=z+U|2DyU^cF&$xVbkrtJk{kmdPESS?MmmrpGLK#4;wQ?R_1@pd`EHJp!|oY&v_zLA zg__;i*Yn$KEE4sf1qBmc2u;j>S>;V!%nf?EZNBa1LvqfpCk-+4HO%%r>Fm05+rLfU zGV6Xh>-jOwGXt=H93GE_fOl0T-baBK&4L~u=8+*Kd8Jl zQOWJUeTG)eE$JS$jy#y$k6T%!AI%wSc9HZFy|23QA0CK=?;y8-L8#H>f387(a}|fv zaouj*hC{b-iRi&>Ki-5iZsq>atrDzt8j;@DXZkAI>0J@6j1UENuqF z49!=3W}boVT3gL}v4ywVy;yJ;`sQfLWP<@V3=M@9*yM)u1?v4+RP(VEZg$lSj*ru0 z5WUz#OST_Q*yPbFng4R@QsOW!Gos5b7Tq_ZT*qY@<|IIOqZg7OgLPJ@=w_@0zHc=0 z8&J#Z$w79q{1-!i8vw9JoSK@e!XpH(jsg&tguF6RLsc|;Li~A{4d^?nAR9{V?-+bj zO6L(p{|~%}@hYIgtSE4Hf0p@@%xFW!VT^Xuvj4chpm4W$e&GY8@!|iHJdA#x;H0Ki zld*|50BRH`@v^U4`d^ND0y14ZroZ$C* zgv-AakF{1j#<{feQr__?z>}Mo&YqrFwDE`OG;OA-JM-o*!+esKftB0R7p)a*>E)vm zxhnaY+5lYsTx88!e(r&LMQ`07|D^>W%E!R&S6?71N!EPQd6pA`o5#>@5U$xDzvo@3 zFpJQK+-_Z^_6T}uAf_h)1{d(i3(IM(mr~CKWfT9%VDt_67y(*` zHMVU?i*Dgix`xHXS(e-v-lHh|Og6OirDnEKJgAzG<@bV6k}pr1eYQFG|m~(@U~F-*6u+v>9gt0 z$1bLq(e7qa;A$>=%(oEro|1+(FT_`5fTWByRYTQiyX>;`gOw1)OE|t#n24w^Av1q= zi~h$A0c?RC=yzADcgG7rDl+7KmJSd)!kfrXz`y|mHQ__LtV`a)ISsLoz1mzvK&>vL zs82y3DyPxDMa~0IW5_0~n5&JKak0&|U)zptF@T_^hZe{F!kolsTk>DS#3W#gB8e5i z>#0ofOptXGB=U3?V~=-T%*_O9m1IPoW{ga?!KeS2f9aC2T{b!XxnmEhWEoz&aJqym zDd;m6$blK8@IA<5tXL}cw~8~ zXKTW9-r$ao@AQ3UYJ|fj^RvOUSv)`?=2-t-7VQqWXXf)$4AQJ~UwVF6+)b2R4p26W z!(aVxuturURpp1XyPE>^R^3M>A;e<=uqD`}MqGF;~&wv3)*djgBF z{?3L3^-&+$HM^_n#`-Fcs*KqY-jaZv{W9ib&1qcnyL~|iWB(*OU$vhNi+no)qs7z~q%JPh7DdPg@9e z5uR>hX1v}6@D;d7)YZKcjOCL4iH!uU=z{5nBLh*4-GeECWk+yJ*gW$ppyNnOY!ED9 zxw=wCoyx`=t*bSB3LoY5^x;%!zaMiW^=pzbZvwe0;NOT#ihj5Fz}PUz8;=ZhoGiTT zvR^R?`FGqt3*-oZ`@M@eP8P!3uGABdToNAZ^(ftUk@NKs`&W0*%W!tX%~1^ap|`Oh z;PPekazlXF$^|qAawW2)S-2bV>_-DA&?c0|I1lt4{yL@l>9`#a8{_9`JhGRra6*H9yxFEl!oW>owNRr7= zE;l5;60xP$2KsH2!T20UdDv-d?|`DhnpH%pytu{WFr31qK&Rjd*?0?`Y1@Xm84Eck zag=}jADVK0j-TR}vm~QqT<-GUyjr92-NC{cxVZl;!x#{T?n>@zV$LCDw^-kDDeJh{N4y|v)y!8{Md;eo84IWC{bOYqkw#sNQ(Z!amG_F!=(47x4C6!ytT zRBT= zp3Bi+>~I@4GZo3;c<0YH9xi1iEY<|KiK=Nq5t;nAU0QO}ViLIy z`D2wg;glZ@4aNwRJfIhsz4$Sm2-*|sd{5h_uq{M(P5@F!t?ChQO$v0ntWJ^^rDbC@|QsU^8gjEwW zS$!rhV$cn;6|4SneQZwno@0v@;xRMf`FMPu0MVj&UtnRmMzbtj47m}>u$0_5XRy&O zeK#Z-od1;jF`5HKs(Q<5i!vD}6#7w7)+#`84A80RdEE{eW+rB6LH_z|(t!TJjC^4u zzyZKE7MULAxitm?cTIVw)QfeFxsOjL&k%_?xv{&4bC39Fr{crE&L=Rt_?L~A`{U1v z?GraV%j}=rl@*h8+0GIV;^o=?Bq)grY|*s@6%Vd+|7#5c-J&3LQTtJnp_qU@wHso{ za_x%jXJ`jpzG#IkR9}yOg{Rh=;_z_T&xcSJ%G0fn=pX=c=p{L~i?( z6s<_)AKVet^2Y+AG96!{*!Nd>T_5w9AI?`7$0-UYX7$sGhAX`+d{%j7TD>hAV5Y3L zK=iT*yScgqbV~u#y#%%>Hefv0!QHQar5=EI?8_D19}@S?isy}t1Iu=o!IHc zE#oohX$^FksHUjXq2}1Riet^jh4lrr#RZJs{l9nmMGJ9uU#4B>F4h3Yl)x?(y%}Hz$RwPEh#VSU!JN5a(Mgo< zov2@ZU&SxWPv+0};F)5euh>$%X?Z+jo+B>4QNXtySs z{O7NRH^^QaUhB+A6#p^7>&_)aZOT>Q?1CA>l$AOol@YKv$tuz}T z5`xjsEFjw!hdLvk$*{)Cdn`H)u(|?nae%sT#p^YhOKGO$-a&B4YTaQxUA$g zKQS%`GsLH^Gd7}NKP(2e0G-?g^Zk=Q_~Zq+7Au02YAFiR46s2aKH)WJ&m0&&dzv5& zhVu(`0bW;yRo}f7NFOXC0F15r_eDxR{cMegTqeZuEr1gi4U*{3xeEK0c@_6nL{O@0xlUaN z37oEL!kbQ*YWU|_5U1n8^lw+d?M%9{z@2%9bzk;;SEioD?t42BwhhSPYqK8bvObVJ z0IU;>@C{s(Ef_;%0mi2A+F~~R)=iw${Emk<6E-~L-O=bq0>eYiUNVvQC`GJnNn(Rs z@c82v@KZdubantDSk}sSn>*_dP_bjDAP5MqfZhKZ7-dB{9I*P9G++L<|G>=5C{4(N z*hK@V6RSk-?4Pgf!-$Yuop*+L{G~YM1b)n}_2oUnXcXOW3HFI+Kzp8NB>)^q)%oe% z2xJ;?LqnKsIi1ZDPo0MadPJ}5N9HQC9&Nn3m<{3x1)F+zKG=IEz~r1&pr_N2qHq9N z()ukCAn~o({8RDCw88eho5)gxXg+XSa)fel)oC|>n%WgP@rY?Y&p1(VAt9Vp+6uwZ zdvKN$_7gM40&?hHE<8pOc$WbVQbdCp5r76#?bdvtZza5zN*}?=QVwjY&_|I*((RgF zh?$^ZvWi_hi&;dzRA>_j=>LS1a0#Q6SmgwBqDrincjCx5ymAlQd2R2SFg5`5Y#+j4 zE?m4M+@k|z-25&5vkrrtJ+p6T^b(f2jZ}T7bu98vi2;tv)i14Prn3U?SHz#rLb(x2dwo?$IY7FD`}d3&fQS zPhOW_-TtrQ@ycCMASGik3wxIn@zOhyUpji0?&jL}*{u=435^Gl3%d+wY0ziRiJIr{ zVjA9vt5(DmnRrnXOkiN8kqy-A&Kvow_fYxWM{2K>v_xrYzcUcHd^rP z>$QSlBdd|wxPz>R_l}84>I2VDd_-#cB)P481UYr27bK*kGH4htBhkBc=~Rr(!5yqT zTM@Lxri9=4>`yKHoFzLzN4htA2H^_bl_wCr71m3qldx#yC5tg<7r|~I9f!CFS{>x(PDA+Qe{y@ zwe5oPWnn<&jNvvgp5R65@1Kg|X*cahouDTN;q(UvUnoO#xsd=%DQqHkc0uX*?!F%8 z3aDp$5M?GNCWhHBUZC_kV`&0->&T(%^-r~p^ zq7kCQS6NjZ3F{~N?+QzliffwWQPRRy;8Qq6c65TEl>3pexR2RlLUGI1Ee9RsB`7*c znl859H?|%mzcS87wKAH9--PEPwM+aG+bM%c3l}IAiVLMcR8EZplVBNfLTEd9$`wLA z;f*PM9~_Ca`J4(wg@YC{ zWQf=BozxH9Qz$Bxy^8a!Or)$WLwxI>1uTcATcAm0bv{U;pe;mn<43=?MVE;WY=#a! zRnT7=#p_P>3X*Hun)6W|?@5cOq~lt~2@%ANPSLVIPxA`*hlTBKJ33TsGG}jcJnRgAOe^ELl4NuN{tJ6Qv`{Q8yg?PIuHkLQa}L9KJX39q zpz7=<(Yvu2L4WMEkR}sBqHDarBwOtYaBR`gHeeSerWOXA7^bAKi-p%Cyy7_P#Hab| z@%#vYC;Uq5)-i-OBDwV*W-wf?zG%C^oIVo8W$Z~BKtVplI4jT}XfcRnG)E}ax=Nh;PWy8>rU&>bEU@y` znOL0v3oXBRVgynuIGqGyF2D6Syi-aiO0Mq|F0&@=a41TnVZr3lS=-25ZTUZiKN33r zILFmTs1I+}U-QG~$S}loYDtaNfuVvtoKS7Fyn&EHuqppYg1-pAY=AsR<;LWJ4 z3~``LFZtDX;}w$ft`aU66m#@K?s5TAK}6#}_HcIE!AL*+DqdqhfN7Pb7ESC)(U2eB z*&ErDC#R^k;srLP_STl3Nr0<)Az!B7_ITL&@lzvoyr_i7ORFm<#mcaaY|54xo`9^P z{P2TjtHr$egr2*4c`7X#u0}@h&`PV@X8_MO$Uu3-aOv&EREj>^V67! zTw(WabotrTZjM=n;DitdY8JNOjmpYbV`8g450Q+Ra++vp{_r$@yiqk7A($ES$`Bf* z*-B*6+b|{X*Tb);H_jJ$95&)6ViQJ5V;4x)P_617pac5fcY`E&1Cg>fqN0U_#u7if z2bZ?L5sh64B^N|V|LSOL4=4CIN;6v+*-rQOYqRAfDOzBD(Qdg39QsHqb=%j8jcjMv zIasO7P)h&r|E$5K0KUbc#qNb9@TK9Fd7oYo=o0=Suuv z?7i1plTp(zoCF8~LI>#(iZrPK=_PcOswhQNKp=EPq}PP5bSZ*#5l}%vKtO6J(veU^ zdJz;vdhhHzKF|B@gT4QO@4EH@N8w&&X4b5kS-+Wa-{7aicQc7CrTB->lP0%18t=U3 z8t1*hcfgE}Zm}+rF)gC+ee;aC)P!oonqORjuyBJWQkjsb2^fokJag|~KH^aU32p(Q zYeN&ATFPx68DAsg&OTk(c+fHOrQFT{7)h_n&kTI8JvxNIn^g#>- zANaTxL@)lEQVQBgLplO$X{}q)zVw&eoo4Ex(Dv_-?nZIC*wgy6mOyn|yB^(s z%g+c}(`ay4PYTQ9|EW(tXD25dCIR22dsQHz&0er&pS{Ob{46j%*=dNYEz+j_R3hZa zN-#7|O3%a&q36X|OT$bFNxJUOO@zYiyl^zWavM4v(fEe#Y)2)v@J6Oy=;&2_UKXZx zo2ZZ!f7^RD3R@bX71ZLtX?<)QxCY~hLYT$-Sfdt|4UQIqGfX)*y55PuAZ^@vL7I$h z9M#M_?tV(N#_z=~C$v}3m=i|p&hW9vub!-3!jODcf_*)M|EKj?T^IEQ3-xqcBc6l5 z9M8d)@kCPWL@g*T#ire(Iz05qHkUc%PH{KxZIW5NIzo{c@puOXRkzS#={CHsM=eh# z+pAd@U72zrXtmv6=V5dz0bdML{7G>heZefNA5ozCB2t1gf+DZI0@mfZz!}2AbUws6 z*ssCNHS?#_!(WO(SvFJu-o$QHu5)2xP2{a)WL%CIo|H!F?;bd4_#8#$&oj&tySId4;1V#;JW&UW^o%QIo4AF${nDWNN98{t zDwS}_`mBJ?u=aUM#bI7OP%&5UG*(&D;GMv6UZKNdxPDU8m1r`%)rDH6|wDBxNC>_ zj!bBWCkrbiC^QMNp#_bCo}=jLSeON~3!lMxf6D3P6<#asiM;)Q0h05IMd5;$1vNL9 zCqLsOj(nlc2xfTK8kTz#r0UJp}g&%EFO`y4$9BN0ysS&(15kAF}MEazAQ;aY0L zrafgyN3xV#iC9~*zbi}!hWpe}v<>zs&Mh3qN@}Rj_n?+UOI?L#wRkWpuoIr_A}c#- zav2CQa56zB`6(T`)Dv>Vav=-48~Gz9LE)O9!qX5zI62kK>8sBl7V9qx==OSt2U!up zN~iSCPkJclQYuntI-?JthgesJ)A&fJU)D20)Dc#&iVsl%V7E*K-b~A0NX_Y+Q$(I* zcWYj(ES-PS(-7kblcLnfTsUrqK2q(s_7hPkcoldpHg*uTvYA8mjw{?8&Eg zn#qNSo8J*hrtIq0ez5!j{;4OGBUkFFB^@55yc(JCr8d`Q5WV{P=r8N-^ma|qCSwop zDd$>j-0xsk^q<(Y^lp^eDm~YIwL&->g3UqgxjFukwOBq&8Fs%4a@~bBnbi>^;`y$3O!`aSn@!KVr z$UlKLg-m;jgEnTg4&U7H&E(a>Y*HYxzR*p&6Q24`YH%`kyR=Hf6TV<5L#0E0s-e`& z6AeS1N9F{may(4z#t1;FLL|I546pCcLT__6i?4xDIFs((rZ%Z_?pxC%gD7NyE-*c_ z93dQo!tE0FS>^fYu~waq`=IvGwmOIV(31Xu%+P= zlWvF=W3fpbTqBlXo)b`7yfz>nvK`ytbF!a6E19W|n1gw_lsYauPA$9~Z|Di@*Si9D z?%&9K-VGw=6r;o7X;_JT<9?Uj|1#_jRG5_K zko~lKX2z-AmR+frg!L0L)`zmYd9cMTN({x^Ybk=0$j-53_~m_5y$oVf)`2?>TeUb{ zYXlC*1P`vJw?>cNjm<54Lt4W>$?aQMLWq~5q7+`ME}7jfSLkZe6>ziER^lOalm3J! zsB5^BH?&X(WoNzTjW?shgPsHf(Zm|7^Y2#PhZPh*um@>42v!K5K}`-;;g#D=afdgc z=pucznOdSk$EopePt_z=)RKsPTz08`qdLmO9-(fzzWuwqYARc;c)XOdz7WloFn2ZK z0-uAa~+QxbbblQNTXVs#@%w+$Uqujh$rnv?cXZRe!boaT}z7~*!i zO-WCS&;ro=D&Y>H73%3<*n+3a=tEZG)tm3rL!SwIpH>p4y6Wf&nua1qpS|`#$cQL>rq^z)fH)^iqeRtQAcDIR z%D~OQH+^=4wTjmP^)3{N`nvfjTsz?-kOpMJ9rCFNp{fvS|z=2ZTEsT1`EH+RZ=gES{ksk2K#EjXWZn|;i| zu}i@=!zMKvpgreG_zJ5Lu++|~*`N0dxue3sZRbFNfzMeV7X$F)Pqk$kpar1U#_BJC z8%082+k!RAQJEIyQ!=1HTF6})!&EIPfJuzkvO_2Y2FmoiE;r>ts>E`Gc5X~n*o3o* zMi^876>coKtax~O!^$QSIHpkGm{wcVSXTeq;&kJXB6d7Y0@tnN8hk|CMvAy7YGZCC zL!153V~!c0i$DB=sre!?iK$BGQKcDLAbeVd1L$U?<-LS zf${@I2Ufz2fi^{t1Wbhw!tC|jEbQNjT0z*&%Q9x>TQtS(L5NHs zFQ=X>1wPXz;U!);;bfS3H?QhJXkd!l>7Kwqu|V0-+b=^%)yQwZG?>XK4C&kG3al*# z5fv1Q6g`Hj&-h0c0y`Zt)lsk|dThl9pT8BKK12ikpRZ!|U8)g_uh9Fi&bv4cClWWl z%#}qZN}fEfsEa4+PGX7?b9vf)PpPawL6Bpm*G_=V2PnDv<@Bnz&>8=FWv{}p&Ap&O zb>+Of_0N5`2tFIei%RiO>0j%0O+Oe?0sfas##U(tiLM>Yq5ZN{=4g zsMvgPWO(|m_b$32@5#uof#N*QS}GZ;(E)`FhQrmNbrIZjz#G03A=}#c-wYdZOzND6 zjUIVHn=AY#fJ1PG!1=s#ZE+o`cF3ZB`Ypa-E9HB6tN8ocRkYOgspkEVz<|F^=m8<| zb;Kp&Zv_wXM2+ECOT9TI`|j)xjrjhxRgz;Hoxn$r+JdJkxQ^PC#p+tA%WZ%o80ppC zxYJbF(0|5@Kqg%(+>?lASaM8i)XCopY1O^*hg&F!hBC5k^?NC03qHZUf}&l)$o{O> zCE8#%AXfRwm_^Ncqwjb}{Zu~{yBCo?v-oaSbOB8hvO|}3ZRYy5L#Haos(U~icRzDHr=9#1Xg^T2$7$_F1M>or#t46}+e({Z2nwt?5A7z0b;Q8=oCyXBOYnaw{r z*#R>kyxsGSq*_K5cV$)7a#^ULG@FXSIQIiF`bW+6#{&ugTjp{@dYiqszt)_`Nx4q3 z&AD2&9Nn&(0ZJk060weT`pRcxNBmF7s8$_3J%Ik-%wa>_a zhs=QU-Kkpt()EeD@9SJKS8ggC%BSQH4ZoK6ITrqo^Q8AFlSe(>|86$*oblRprwuzE zTcpl)+^uu}Rl()Y)oE;NX$-+Ggh+TPG7}3%^rE0=(T~q$LD{!?X=9`rU+!bz)gE4) z--bGe{1L?TDK(e=4gla!<7}VQ=Af`5Ou=7jL*o@0U$CCbZ8h!@$MWlveQEcdzccpg%_i zpJGYfx-4hir{+#%vW^OUr#5^a+8KQeDhXc9j$NByKg{Ha`8MsdOFqQ@B@gX!V}Xsh z9b$}A=fR+*_ijMd zvj^yr!OZo^Wf@w_@Hu+jj}$jmsEaokVhJ*4?FchQKN{Bzg#M1q;W%@fs`(lsv74Zw z;O92ioKyR4Y3H?kdH@Y%7lA-ZP)k%kRD#&^5N&7X-Eqb~vrNLUev9tRM7b&1_<;IC zof8=Ps|5yFQ)&(qKGZxt52!i`srshYQj7CX>;|D3r~gc<7@8^Sq6l7>y7hh9{6+>A z^9tyfJ1~Ajs``!kzw9je$~+ilBgT6Y>i#qkFrYWU%=H{_ND&Xw%A3V5Y(PeG7%z)s z-7ZF9=tV)z_rFr^;9Cs|<*qdY&ex|}E({eb7O1LNzm0vgD7C0HycQ#E`l@0#0z?t* zMFs|Jv(776^N&vGc@OVyDi!Z*XF%qY19XM6llFvi-CLZvo^Z!gGEVGAf+CGsWM~wx z%)?qm$hJysJ%}W!p!=HnL)&u$d;P7O#8G0^JuHfK3lD)m_o|cB&tu`>9tu>k`&bKfDpLEOt%Hm+*)YV?V;ZJguKfgLE( z)Mavm(sw*}AQwKL1sNHuVL8mP$>wJe)7V*f1f|m{WBa%C3~rRaATp``XYU&;lW?BI zVBku^%SJp$JVRwhFnUh}q3PHT*#kO9QJ>KbvhI}*wXQN*t-euN?&4TWo`}TM1r6ko z9Y|JSo`qQRKU{aEjUmZ8fWP_Bj{NhZI-}d_5|HY>#DYh<2xDOz#%om;G>#-v{*mtA zICP>7&D?$z$Je<0)vj8t&LfMF<+nxSLd)|vVBi?_k#!+lmDs;^j`N_fZ!@u@cg=-? zy)*i+F#&rIp}ljYK_i$}ar5KCW+y1@>cv(<56Eljfdgk>@ktq?WV>Iz`4z<^v4Or@b6!aF$aW=pZQ7UwCT8uG1(882vv zZ(c3)I}u2mRI&phTA$hB@~#qFvWwpPJd-sxl{;Y0FP$=;y!H}Su*emhG0Uaw?4~13 z1^(}_Pt-7;Kn%(|{{I}dSGer$4@U*-Bbry>M;FosuhwTOhNxVLS>6tE6OGG)AXp3H zjImB2Ep0najV6ttQD`8Gk)U6%yHTqF*GfYSD3g@L$N>^)wHBkIHS+b_p4Y=U_P0m_ zeTRq~XdJZ<+^bt|RR#Z*o$QDbecFSPNSRM(;MT7~kG*~MnbqA^G9_7vnBaOU5({!^ zL2sKq$lP;rHeUMl7*Jd%QO2}c(E-Ybw>eHMhPA<2^Xky`Oc1eKZ2=sW2JCM&MrOflQ~vah0Jjoj4{&oJF6I$Gt! zcu?dm78QjtS@Re`{URiU=>YC_!hwz4VbspKNsk4bS~US9A>csilBG5l>0lswc8IHJ z9wH&^3t8ZQ$s>W0-mktfEP96GA$pgeQj!Wt*Bj!Sv%|b7>{VnEom4V571fgk5G+z1 zxPb0@-!2)}L;w@udrWQuo4XCU`uGoRK8}t>_gQ8)>Sq3u0U!hFfL=&?ukg;qi6^NW zCA_jEbQMrdz@)W%Fk|ay@HZX$z&ea~_=zJ>1vJ3w?&bjdq}8=UFnaBz(g7O)CbbM8 z7OVhfc*GB^L(rcdqMmO|SlxTW)jO|Xe8?nn1^=4_QUH^RDnl5|ff*#}|LqjeUB-fh z)!h~F7B(OT7Dtk!R7AKzfl1Rj!Q>*q3>m;WfSm$t6J!8Zr)*ZT=Q5Zigd!(=h~X1& z;zrnfXL|^=^G)>YX#gnj6$ME0azJXxIt!9S7Yocxp0rdXOUzdm(5`2fuhY2n0NDE@ zK=tFFD&K55fM-J90G}X8ba#f?Aatfp3s;eN-iJG4z^)~MU9WuMEV2rW(g)uLK1qV` z`TwB=latm9eT5X#0x?Rd;C%Of88VS%g?Ku!0}}u z0%)K6_twd0hi(Q034v*-7cXaNk}6gy#gnm|+b?_pv3ZU~X+jkw9QqI3CmsdL05w=- z{#FktjMXGu?=M@}_=`4;4XG1fyn24G^WI={KM&D_?frTNfJ|kc!CqxLxPNp~N8sJF z3P$qyi0&Fe?}1rBijJ>RRrY%tZ}9lkzM-C8#3BSj?oWBqZ)bv88RCiTOdOCN5Ul`p_h{}<{xWg7o~ zT+KI;`fHudWtWdWt(kQXl$mjt8L9Rml>&JXu{d_xA^0Izb6Ar?L_16KYH!EDmp*8d zCvlOLa$dV7MFcGBKXk*s-(0i(fY<+?I~CNhKDW|?v7#H5kyQk>;h&>vB(7s9NiuE; zE&w!XyUC@V48%e~o)a$sx_;`^f(8)l|Kkw^!cqE#vW=r3G+HvLE)F< znrpIGBCbO3#-JJ0|I$tCwWR02&@t8o9?q_qLq15Wu5doY`$ib#BRrNhRw zonoykvh-0RW*OveVO(v)yo8H(JYflcgu$B#y|D@m)5|sC0mKhDVS0&xUnwfghpI4L<;l^~npxoxZ@CW`l3COWjsSLzQYUEBs< zT@R`bn8}0BIH!3no5gAV)V4!_V>k&iNCa_Dohv6nX1$yEDC!H8{-I^T$$&YzpQouO zJ8#!_4pOIr3+-6mJuR?&XXW&AuhfAX2u~$rt95(k8etK{m|Sa8H4=6F07nE0BBHKm zhbfQO2L$qF1gdG#h|C+f0ga}f`cB)P%FH>*Nd94$2wG~sh7pg)vdG=WKX2BRQQW%2 z)BUJP2x(jlh-TS8(R|M^-Wu&coGs3imV9o*3t$rg9~^R33@UCb2^@J z>Vax63&0E!LwVa4Wi3PnNjm%ejsI4AWA!8t9CYe?hf`oYQ$9wLj^ zmM`kq;hN zfv)I2^weSGV3xrKvP$U3>0?<*`gsSENhxntMNA@1>K+}7pwm}}`>x5@IIx(>9)biw zsd;Ec;p#6={>~&ayH3>%=#tMH7HA(1zv3Y(`Vhc)AC}6B4R@=`2?T28WvmCb75|uX zjgQZh%^Kh6#;#90nLfT(a)nY(iycHy971~U7+*L$+K)P3Rq3OPh1)%IC;M4!9VV}= z>_&JtT&o^2tkU5M9$ja`;7-PBo9#<-1Ku|QPutZ%lcQ+z_B7Dz$XLODrVs*|={4V}%^0Usu2&(Z6Sp`hlQ)2<3U7&l`3 z#LC(AeIGVk&@uXZs(@f+ZW!cO~I z&idr_qN?u*sv7|Ekw}n_-UyU;TZrc=(^_a=Xs(;$rBaq(7YX|1ednoJ&xGJZj?L?{reQBj+inIW_f_%2-A!_2`za(f&x;~t8C*$v7ur+Rr7&Y zY0ibr>9)nD1i+#c>`5w1LitBocKQsbnreMro!Bb{Bum9`9-=Sro?jqetXbQRDm(qK zB9Eq~MBf)tLI9Y`ztEjfP{ z8`?iK7AVUD0$!{kb!}kz6N9LtbA&;oRFBsYCnb{OYnn1}k4)HR`;!;oJA;q1y??qM zNhi-PExob4(vb-kp$+2@KPkF#>iOz!)w^Za&2`_2=BZ6&={NH()(zeDOdrLkNSZP5 z=Jv%_bGG;E+Z5Ox1g6F?hqmT)OT|PQ{T{6t;(U3?@wm!iFet@MbrF6#7FpU~^H?_P zReor&RHA<+CbNzGCxi+3eZosAJ@SdrTUFiPRyMgFM z<(lC02k4JfQ)4T}q}qA2YxDQlTLLXDQWZx$pH=2)Vo#f4ufoV!fHiWImbTA=8bMzH}Tv zl0bs6fE}2?02llEMN(2U0T!XY@ci0GiL(ry`XTZ5Z}Fd8jVP-E1}^5BsK*aCzswE7 zy*yq#6nMy`sLF!5vc9SQAYz|Jm}bl@R7kKIFxC9E5Uz_hQ_=eQ+24?x`;M4)g}YUM z&JUKBRUC|_14=E{Ax`kmt>JX1#=>QHl_pi}Kt^GOt}AAp>@sJxUH9yJ$Sohf8~+4E zugh+KdTBiN0dp1}bk9Ali1ASI_3ckU#pv#?_F~#>XW4HT=^_?L2XW5TXWo&XHdi=9 zqAaxcB=J8`dEp(%wM2$O@6;pni9LJr&X#|DTWF?W93#{p_G2iT1(v| z!>^6!9n~D8Pw|@)JL${PlSdhb4GTXyWeQEgC6*#TqlR!TY~c15M=q=-|5EO09t%i@ z*+M->X}4d>2LOJ5Ia~&sv&H_E96Sr4)V>zbo%@pEiI;YQBjVE(%A+W5i= zt6wPo(3(?DPJU&N!O91)OYEZ8jUN@`wRz7*RL@Nsw%RD7g=qwX>f@mZqoYW(l|&nj z!<`x1+{RytRBke5;nyoMu2J`p_e2?z!OY=&L^lcsmI`I4 zDGH2a!wDgdR7z62ny?26&7>!Yeu`86UE*Z#Z-7bPZ4oKLujqJ0t-O~+=wK)*Wu>n~ zE~P;Hy197}#KH2&)b$z#!QRsQmTY@Tw z(}Sz6d}t=phiZm8kKrj7j32iN)dIR9_{k4H05t(fF; z4MXa%kd7M~$>Fvn=ZvD+ISUOP2G+IHp0N+ShO{Ja!R7>}M?yp8jU53Yu2cuPRa-Vh za{PPXt2wSPh_2)=J-fBD@CM=g1i{Bc3M-1Fj$S|y!?5+)roeA>1r^B$IWaulaPZ3K09|PI>#XyS zxV1a-l^{xHC$$pB(>~Lq1OSi`t{iwUzTL&eC4f2|SC<9o6~_o600*?$y0ij&LF18! z7L0UU=6fxU3ZU1btgt7Vh?~q-j~-i$1lxjCmU}zOJWKqT)Db~CD9#~LH7iX`Ywo3; zWiez@i-N_S1k*BeoBe=bDi-rQn&i@6#Q2huu&2*b;9h5k(3Rh(7ho1pS^2XE}lXlx~mEV;@f@t?!R_xSCJ~dgkd>R+=7H0ujW3v8O%++%CQl)DxBQi%OVJDR{`x6M4xYLlJ za`A;L9ekXO6jYjCSU$I27s-9S3{Fe#Rh^Kuj>c}X81S*pQVX&@*9JUSFb_@5t=aYt z@lh7t7jAi#)|iP5S>d>&E&3! zKCZAC*Hcy1n?Lg(in;!L2=4q_{tko!fj4kK=njWq9ha0I0ZzX5eQ@|q6`^rb#>caZ z1-ODt_Fw838eg^Tbwdl-&XAnbBade#yOE*n%Kb>nucAOK)q@r@P2q4Jl@$ zlm26RrK&7A`ANA|GWJP%tKg-*J7%RnI_Jz?omrhtJ?}!WAIwD(@Rs2PaRH+I#^6^V z90EjDXdqv7K*-y6I5T=Lus6t6eI_Z0%A2wcq;o{=P1?@4xc!dtGBop)XYqam57FZN zK(*OEpsG$1nU)}CnSQI<=oMTqu+suc7RlZChGR{~6Ncze8rSAtF2k zD^k=m+;6mU3WH7x$jsYM!y5UOnKbP3ffx&5e*;&cOfq)DSzSP7l)Atjrg#Kby z)PPvu79)j!-YCf^n2*$p+8eS?qt}#Bj$>EoGahT@+t)g4xbA+b1?~LM`Mc*aVb4f| zxD`V6fP+=DmdOx8;)}`_mRgR-gOIdE=(7CX`8)SfIM*32WLGwHBsXwFzF|2x@Sh6^ zblB_^Yd(79Kx%Y{d>8eQ+$9-%`%V?P1rm_g-=;?d;K)SzS#P;q6F3Jv5lZl~Nr6<8 z@kK%k(!}HQvBwjD7GDR_&8kL>RA+!TqRSIkU*3O2O2r;?zO8MC(d}j@1;*+uNWZ=G zsmu<9_i$5<*aV!smT|p@J9G_~7pLn44{%*eJRn(l3r9qN)=v!=>A5*O_a3(_M6s=T zmj~voPk!z*EpvLQPw_uk0CO9_hx`EnO38RVUsUsGECOF;-wiA{1K0tl!iFRsL z*K+>>mo<~TlhjxVc9ePs@}d1kY~0h}Sa{sibrOFwqCM*~prvX9FPNs+Nags=`M1rp z1VS%ipn!(k@y;(pKMmbHz!0c$pHY}<4sJN5TQ-oLv7@J_7wZQ)%-ZTOtG9BZ9=x{% zD1En<+>(wMK{Qn3ooSQKOr%zqFBNiH8#-lL{%~Cv1bxmKw57KEuPg*1r^ZP2+^bBg zLUsOKNp9t4@MhrC{3ZQ;_P!TNZ^e3+~g3jtDZ zuR*i7oEO^swCkQx5|JQ@KJDe~=6S9q5xEW>be0aDLH+OkH zCky9Ws0ZxB^+}g^_!nfx{owV$G?H@T_5qB% zV$KtS!{^|2^yvok3F9e#{_;~7r&PbfC86i_Zg{3czu@A}e1?r1@NA7|7imr6$d7jc zPJX=pvfDS4&Dw8?P5UxYVO6kJX@x0dfobi0Gqi<%NsbJ{R2=jv+0WAx$$6~0*|bvESqW#|NL1aV_gFcAK6Dt$;IE&<%_RcWyXI6`9B-@TTfjO88zc(uHc%hNgE z+=^-jPnz%>jiw*(JB@3`S%jMb84d>klNAK$Km%|Zq0GfFz$vX89fcf=Tw{U#aPqtZ zg|M)-3MPG$#i+A7s7D`S7@uzg*(&d{IIP*FnJ`UT-*|{3%O5dTL;$z#(ajPuoX}G| zOPzJC!(gtt5uS>FpVEthDi23z@-QwoAo{>ws&A5sX@&6!xq0+C*|m z64g0A0bN_sAQ?WH#_H0w20`Ao%HNE|}A6i%|0z~jcjPGWv zTUW#K3!ej7Mx{<}E^6}@Q$Rr6$;Fa#&<)mFL+?rBn;Ko`yF;h;2rR#PTkxC)ysxD$ z-MRb_csO5Ot&qP?E!u7h77!Sh zXlLCyX)3_t=#Kw^g@btvhVrT|OjYTJ%gh^PI21Elk%sJ(jxP+^N zv~CmuquLJ$x^o-fC-&5UB09pTRDWgBKM!d`&?U{r{JQ$SlkD5iv7x$j{ov&7GI;>` zSyrpz`2p$&Fad$~3EMJ;2wVkiH!lka`s6Z~_mcKj z{uDb>!WEzTP?&g>=?00(hSD?m(#M-uUUFZ@eO-`QHO{_5EjxT%fP8`JUb8-T-HIKX zK<9)eW6Nkw&(y7tU`tVO4_96^nD&YvKP~J){}~*9`QXoWt$nQkEfKB@E$GfI>fmK{ z%8JJ@9XfFRiLuAVYe)p0odXv!NWg_J)GILzZ4bDck!3#_A%z+Q0{#ZoJySTRVtf(d zSOY@t(D2ZZa&jcxJT?ZFD9@1cq=J@(Ir`qsWS#3c2E;GCUfF#9_!h`#z8jTlkpx=q z$t$Bx3G=f8>M_u$af=mtoW|q z`LYAhyL8n&2u--Brasx~u!CDtnJw-7+NnQo5sB!Nlasb=z2=G{o9Xr2#J8$CwraoG zpG5EbbWK)2{hqXdejthy*HxH2dE4BKE zR7`?(+Fh5gEwFwOBCJ<5y11UF@Y;EFmCwcQ<9tar={FxY?VDPD@hmbC+3VVSv411* zA6||EYiFrtsja9(@arOFj2^Td>{CdL-k5y!wm#FYn(oU@vDkAfAV|QSV6J zGn9rMztqZvvN%*yt?o~7BSu}!YYW(RlHiKnL6Tz4*Zi~};sJ+`m}ySnBrTKhsJrt( z^_^$5_7MO-9DjV)`B?6m3Q1#>VEXZT}kSmm~lZuj1s5ws|A z`;efj?)4t~4ic(HGOvRK&B(=2Y*PI#FfARpCDwA_(t;+00ra9m-Uc~R@lZe40BFBP zV{KW~QxjJcFY}FJ1Au7GM_>HOjkKsO{=2p4LA(;>qytqjga$;%Pw*2ThKFnsR=6Uek zyU4O|dXh(cux)cFGN}ykgi{XuRI)8)FT*Pf4RQMPvjPBm_YUiGfk1%Tm0fbX3~f=- zoiLw}KGE9ogY_vXBgH!i8&cJQU}l-!xZg6^C~qKqY}h{OU6%1xmjzAw%GBk0PTN!Z zcH`&S{D%P}*LuKd6#JjureuJiMotb8KJoce^zz#?c|K1s*qq{I50GbvPz3Cv!v^=UvdrsQ==gMtlIy1=KEAK-X_6yId2hkgjiV^MV-zU% zudY>SlD1SNERcq1G>Ay5a}fno?#b&CC(Tw24_3O`$6DH1_q$|=DKczj6t~wayDqhU zyATQOOBc++~>33Ye z((08}mi-LX6ZX+ufgQV?;=hSL{@j+jVI$-^qR6`?PusVsdqlzwqQN4 z{QkHdXI&s&{|9gUawnJHdsBUzs*NKUzIPqJJpZ*BcFJG<@_(O*E(0a&#ddZ^)bAwD zk!30UCHwu=?;BmWAmn6qy!uD*2INBy*Gxq}{6T0y)%y7oy2=@NH?A<0)|hY6j$70! zs@pf6@?+Z5?d(s1o#UEBFe zLjQ;nAnoehO%a=Lh3oxGEmEoZke1Z5%9)HcV=y!V)L*<|t@ByBaYSRT3OTHA?wcA}F-& za}<5aU>aXv_Y7dkdBPIF#dTI2iI%&jX*JnK8_m?s;F z63Z4_?0}nuPhWV2o##PNBzz|=Pq00}_JN_keutD?U6+>ZbhJ&S7}*?GaeK3F23LJg zzc^sk9Dm6AG{8bK^y<0`99T5ll=?u*6R-Zop+K*1U%tFVGkkOsE&cpAiqdm7!eGR8 z&gg@8pMlT3=<;N%lG_1daFDzx-~FIk%G-&Em$MZbhrQ5;{(uF65f6 z2*CAxGu5qC2wtIv_Cc&RM*Xdb9qw?r@IliZcWiOkZC)qLglEoiG1u{B&*56bW>ECH z;`u<$<-Wt@q4*JRRo;d~>1kEus|~&OhhPOH#$J7cn1{3c(~9$L6tJ)eoFjmb>%hfy zk6mpf6oRK04VC~$4|zB zmQ|kTrZQ!%9V7H9^mJ9o62;Uyr|7{ zBfXg4uQ}W^aa+#%_UUo?nMM^+AOMF&ufMlwSdiCokWuL(ng;5M=t%-%h9K4s1KDMy z*uG*}iBi=*`m`6V;O*?}{H+WnrwEe0zZENyeQV`P`C0^u0JY)c3D{r*lYhLO1diKl z;7WV-!wmtx-yJSaT1U$!*p&IoqR`FMWvZ6buRFwZY~o;PYOv-!G^ly~i(ip4;q_;o zLab(ntv17eV=n@v_={$2on`9};=)f{ZSHz848YgWKzIqz83Ftkvw5Io>1RTbkd5d- z5k~Susy&8xN)%uzdKSEkga;rUXE2p+oELpoR3SyqallB~tjtu?+*t6M_LTqrcc4p` z>VW%2-9-Ih#`)r9C70FV+}c9vN6D#%A7zo$$s~4&$yb=Vz9SMtbs+-m90I&Dd5qs& zin3n06C`=U6uQl{PKX8&lG%NL@J0i`6;j!wf(!fcc7B8oHx2Okmv3e>4>M*?dxXYq zuI}?58oLe=t2HXc44U(gb}Ho6STy}YL#N-VrJVL3Y*rqm@5}5*TJ}>ZxkMHI^jY)l z`n%BAagjxoYi%t9QvId?Z`@%3Firq~(;Q&BNR0IUpZ@+h<s5_TP>dQG}H5> zOzk4fUzA{2Ao~a0L{6lG35#hXC&RnXKZ{ptb9|e7Qxrj5w@;d=osJ-qqkKENr5A}J z_dpWxCNtF&2kx`3GRl8)XKue{@j7;}-O>v`Bkh`Y)nHif<~D}@V?nGM2-)8wxz4fz z@}*sw(FbK@xiS#W>b{ZX8Fe49FwasA}ETr}49K~&>5w{*Lb zViD82BuEHH-E{JPLMm(Xv$EyJ^{nRy3^)}zqbZWFs!_3Wy39=*|G;&&ks$jbL;9N! z+(wJ+@#XK-lDnD#uX}|}T`NfwfY*@+AH1DYc?qwm;=HD)aGD&_!Y0Q1Kq4^+K>J9U+RS@FvUeS%F(_d;^Ocx46o%2x!S=R+zm(wYM%K%!HNmk`E5L&=I zC+@L$IaGa!2tU zZb{hAi1k@GvZAL<#%2u6f>C^}xvVNbf(a(gz3-=U4uH*o=MZjS}}X7A*)qG7Z%@6vS--|!kQu>~}V$)oJ>Gci1s#kk)eAUI~!5b?I%g?-`8QnPD1#$FG0PQ#W z_l5)HE;CHT+E!|D-6^G+NWx zb?FiMoo6XTO zC%MO>v~At-v2R451Nf}hqjt@`+{mQz6G2UPzOrGnMPgZqZHCKhCz&CMEaz7S zgBjl|^74PD)7l6nHVwRIwd+~()-vbW6QgQX0pHh) zobR=x%iPR`|Cnk%x{<7^FM983=EHASdH~>Lva^(`JuOSO5zshGfX?(!=}vwohoe`2 z4i9;JG*=C=m%_$!6mGiyUW*Z^b|dWeQZD#j@7_3!bOA)X$GLQ&>^S+x+jSUl&L;0( zwth8jM?0r%C|(}cm!23>_`tu|X0OIFNs~4RAOJVk{#Z+;b`_YcX zcdmZJGp$EPF#O!mRboJ~3PK?9SC$?~3x?%}w)ekx6NgNN(2Wk#`5iB_Pg~!hy*X#e z0>JFr^_oWrpjaw_<5e(#^5n$5|2)7N^2Vj!r1t&y51if?ABf^tZh##~&R)j0V^vje z{{{f|?0Zxz9L#yX2=-&&5>bt%WO)8z;_^p3(3~T7T4W9Y6E-VwX+HzNgjmm>VE{~6 z&{oP(RnN7YC$;n4)zAKid!~1Vqu^`sx?yz*u77UWptws{4n|td*hIRx#fiEtW0`Td z*UmW)25JrJg1XcpNPL|0m|G2N$!6RVq`>7M@3CS-12dLTGrnOi zigBz~q`FB{`w98Rr(@o%4$8{8RX76~`Y(Xlj2O|2SUp4OB8ZX~P@O|u`o68AA^G<5 z`hR|Sj_y|I0V(gU9ePQ*5qGK6*u4+l!3!3rNBv*Gak=C)H!BvoY$I=c6?$4j&n*%W zIg1TyAsWgS`29q1$6A}mJ)yhsfyk~VRC;_Y{C(PwcHmjq!!Ky59tPMC!{Jamj1hcZ z#4Tf`p@UW89vwx_%R3Q%QN!8FZm`^adT0RY9#!0sA|}55$VRF{k)wNA`5wccrCIi4 zo#SpE1s3y%J5O1Ys|2AaND9XNL@>SQ-fBJ2ORLQ zV1^^OGTYQPv6HQJJz$rg($`&~?%Hf&4pWl7baY@@V+d{c1g8L(gZ(3mjW9vgi0^mXEuKU!`!K{s2j6bnDSOOuSfe^*Bm$!qgnLs|VD$xXcSQLALjB)4Z? z;pq|0Ivb30S||R_p@R@QJ4|H- z=?zQf^5OExcfI!+HSG{)-*3hB>zXqba^58;*xx`_D-&e6{P=z1>m_Zwe8KCPg`T?R zzuqEK8UORMARPGl|9$=csP_LiX_0Ksbdt$>^4s!5dV>|vtK-ANCWV@48kgFsjZE~~ z+kg2-1W!wSo`(3X_&W!-_^26=c1kEmY^(y);oehSzDgQMv>M88UShu6$%YsafynT? zMWg12g^5^HcAN{RJ)=-AUY(c!g% zc!>dE46HO@Ccja;5%OCL(?-Urj%An?Aks+U_@?~FYLM^^7+_Uz z6ll*y&hg5u$zfEzbYn^2goKGd69Mb^)5GK~2R_e6h-xQGxd;v~^+q<#k4|A=CMI05#pZfxqAw-zQ0R(QTJdUfp&l>5s6+OFV$ z){aBe`zaE(+>LoaSC=@umf0#!5V2C!obi6& za+W9H%{#zi$bnOkqmzN{!iUE`)(<(p>b#j`HS-_Pt3QD)-x>UpH*jiDH9*QxUj> zfv|uT)ZOW*}xuk%Y-}N zPAA;24xmL48W~4dMZkr?PEAk*2AG(W$2*Adez8U&1_p++o-U3dFn=#t05nl#OH!x~ jQcwV$Jv5@=z<>6Ff~8`bGs+hLJ;vba>gTe~DWM4fHqmZm literal 0 HcmV?d00001 diff --git a/source/tools/detect/net_diag/rtrace/rtrace-delay/README.md b/source/tools/detect/net_diag/rtrace/rtrace-delay/README.md index 5b7921c4..2679de1f 100644 --- a/source/tools/detect/net_diag/rtrace/rtrace-delay/README.md +++ b/source/tools/detect/net_diag/rtrace/rtrace-delay/README.md @@ -38,6 +38,20 @@ rtrace-delay是一款基于eBPF的网络抖动诊断工具,目前icmp(ping ### tcp抖动诊断原理 +下图是tcp的数据报文和ack报文路径,黑色箭头是数据报文路径,红色箭头是ack报文路径。 + +发送端报文路径包括:报文发送路径及ack报文接收路径。 + +* 报文发送路径是:tcp_sendmsg->dev_hard_start_xmit->驱动; +* ack报文接收路径是:驱动->__netif_receive_skb_core->tcp_ack; + +接收端报文路径包括:报文接收路径及ack报文发送路径。 + +* 报文接收路径包括:驱动->__netif_receive_skb_core->tcp_queue_rcv->tcp_cleanup_rbuf; +* ack报文发送路径是:__tcp_transmit_skb->驱动->__netif_receive_skb_core->驱动; + +![tcp抖动诊断默认打点路径](../image/tcp-delay.png) + ## 使用说明 使用流程: @@ -153,3 +167,56 @@ params = ["basic"] ### tcp抖动诊断 +#### 步骤一 + +运行`sysak rtrace-delay --gen ./config`生成toml配置文件到config目录下。这里我们主要关注`./config/ping-sender.toml`和`./config/ping-receiver.toml`两个配置文件。 + +#### 步骤二: + +根据需求修改配置文件 + +#### 步骤三 + +* 诊断syn报文发送端路径,命令是`sysak rtrace-delay --config ./config/syn-sender.toml --delay 0 --latency 1000`,下面是样例输出; + +```shell +FUNCTION DELAY: 11.160.62.52:57580 - 100.67.130.98:80 + + (0,0)__ip_queue_xmit+0 (0,1)tcp_rcv_state_process+0 + ↓ ↑ + 48us 39us + ↓ ↑ + (0,0)dev_hard_start_xmit+0 →27662us→ (0,1)__netif_receive_skb_core+0 +``` + +* 诊断tcp数据报文发送端路径,命令是`sysak rtrace-delay --config ./config/tcp-sender.toml --delay 0 --latency 1000`,下面是样例输出; + +```shell +FUNCTION DELAY: 127.0.0.1:36360 - 127.0.0.1:30197 + + (0,20)tcp_sendmsg+0 + ↓ + 18us + ↓ + (0,20)__ip_queue_xmit+0 (0,20)tcp_ack+0 + ↓ ↑ + 12us 6us + ↓ ↑ + (0,20)dev_hard_start_xmit+0 →2342us→ (0,20)__netif_receive_skb_core+0 +``` + +* 诊断tcp数据报文接收端路径,`sysak rtrace-delay --config ./config/tcp-receiver.toml --delay 0 --latency 1000`,下面是样例输出; + +```shell +FUNCTION DELAY: 127.0.0.1:36362 - 127.0.0.1:30197 + +(0,21)__netif_receive_skb_core+0 (0,21)tcp_cleanup_rbuf+0 + ↓ ↑ + 5us 28us + ↓ ↑ + (0,21)tcp_rcv_established+0 (0,21)dev_hard_start_xmit+0 + ↓ ↑ + 6us 6us + ↓ ↑ + (0,21)tcp_queue_rcv+0 →14us→ (0,21)__ip_queue_xmit+0 +``` \ No newline at end of file diff --git a/source/tools/detect/net_diag/rtrace/rtrace-delay/src/gen.rs b/source/tools/detect/net_diag/rtrace/rtrace-delay/src/gen.rs index 6a1cd8ab..b4e7ea54 100644 --- a/source/tools/detect/net_diag/rtrace/rtrace-delay/src/gen.rs +++ b/source/tools/detect/net_diag/rtrace/rtrace-delay/src/gen.rs @@ -135,13 +135,96 @@ params = ["basic"] } fn gen_config_tcp_receiver(path: &mut PathBuf) -> Result<()> { + let text = r#" + [basic] +debug = false +duration = 0 +protocol = "tcp" +recv = true + +[[filter]] +pid = 0 +dst = "0.0.0.0:0" +src = "0.0.0.0:0" + +[[function]] +name = "__ip_queue_xmit" +enable = true +params = ["basic"] + +[[function]] +name = "dev_hard_start_xmit" +enable = true +params = ["basic"] + +[[function]] +name = "__netif_receive_skb_core" +enable = true +params = ["basic"] + +[[function]] +name = "tcp_rcv_established" +enable = true +params = ["basic"] + +[[function]] +name = "tcp_queue_rcv" +enable = true +params = ["basic"] + +[[function]] +name = "tcp_cleanup_rbuf" +enable = true +params = ["basic"] + "#; path.push("tcp-receiver.toml"); + gen_config_common(path, &text)?; path.pop(); Ok(()) } fn gen_config_tcp_sender(path: &mut PathBuf) -> Result<()> { + let text = r#" + # sudo RUST_BACKTRACE=1 cargo run -- --config /work/rtrace_parser/delay_send.toml --delay + +[basic] +debug = false +duration = 0 +protocol = "tcp" +recv = false + +[[filter]] +pid = 0 +dst = "0.0.0.0:0" +src = "0.0.0.0:0" + +[[function]] +name = "tcp_sendmsg" +enable = true +params = ["basic"] + +[[function]] +name = "__ip_queue_xmit" +enable = true +params = ["basic"] + +[[function]] +name = "dev_hard_start_xmit" +enable = true +params = ["basic"] + +[[function]] +name = "__netif_receive_skb_core" +enable = true +params = ["basic"] + +[[function]] +name = "tcp_ack" +enable = true +params = ["basic"] + "#; path.push("tcp-sender.toml"); + gen_config_common(path, &text)?; path.pop(); Ok(()) } -- Gitee