From 97ba7d0e0146201883dcf496fd6fa8a1376d7b49 Mon Sep 17 00:00:00 2001 From: vinci Date: Sun, 10 Mar 2024 14:28:25 +0000 Subject: [PATCH] Add LPW pipeline to test agaist SDXL for performance --- benchmark_results/latency_by_resolution.png | Bin 0 -> 74799 bytes .../memory_usage_by_resolution.png | Bin 0 -> 63668 bytes benchmark_results/plot_result.py | 43 +++++++ benchmark_results/results_LPW.csv | 9 ++ benchmark_results/results_SDXL.csv | 9 ++ scripts/benchmark.py | 2 +- scripts/benchmark_lpw.py | 105 ++++++++++++++++++ 7 files changed, 167 insertions(+), 1 deletion(-) create mode 100644 benchmark_results/latency_by_resolution.png create mode 100644 benchmark_results/memory_usage_by_resolution.png create mode 100644 benchmark_results/plot_result.py create mode 100644 benchmark_results/results_LPW.csv create mode 100644 benchmark_results/results_SDXL.csv create mode 100644 scripts/benchmark_lpw.py diff --git a/benchmark_results/latency_by_resolution.png b/benchmark_results/latency_by_resolution.png new file mode 100644 index 0000000000000000000000000000000000000000..b980aa2fd956b398bcc04e198f97804937c5ff53 GIT binary patch literal 74799 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 Wb!tqM?V=_4Z|3wlhL;R%w*C+AOk>&r literal 0 HcmV?d00001 diff --git a/benchmark_results/memory_usage_by_resolution.png b/benchmark_results/memory_usage_by_resolution.png new file mode 100644 index 0000000000000000000000000000000000000000..cd09069a3c91bb3abf601b46f6c85b4dcfc87b24 GIT binary patch literal 63668 zcmc$`by(GD_ddGSK}SHGQ2{}LaRj81Zm>}4?h+~K1_22J7y(7;?(XhV6a)m6?vU6t z(hX-lTl}8yb?hW<*1hg^ujjR_^n-Kw1{f(_J1a9wJ2T_Q|2P=f*cw|}aIo;Qa4`Mz z#LmvjmYYY+n<*cU$pk)WWdK zv$q=)jVoKOqXLor&-u)PI;Y?9#d;?FWkWZ4DOj55wIcuQvm{Fzda?9}43`*^*lp6> zJTFaMVk3;~H^lDMxVf8EE{;48-y5l3aTcZ=Z7kX2e&oF|!neHUc>hw88I=sN#|r9fY@DStmYf%`5_@_OB`2i*$4 z?}3N=od^3H3<2&ti~;%oCl9nJv740_y?@`N@h!ztjE{y?G{4etg}v>r)Aj4uH>M*k z`46f-=er#^Z_M|~NJVhU>FXz5xOj1x-9MpfXFAfy&(H2D6C2u^y z7W(o7k~oaoX7U>;72vtVWMt{sSoaYM1&7Fb@AHi8?D7(!EcUa!*B`v?`tts|gzHej z68wQOJlpMX$H-A;>P66Gg|c=mBc?3E8?9+*VX{Q%-1`TV@2QzJ%Ve|Fi*5QWE_+ot zEN196zD+mn&57VJdMl7Jt87`blVaE!k=z=|!^q29R<|kax=Tk#_mIkcKmUrMN{u8; zuqA}K(0y@sHa#!z=CD=$xe9EI%jDwXVne@H)XdD2gOx_Ah?}}EDpMaj&UMibyB{57 z=+xGvNJY}Jva;^%?pBypRrOvJTU}k1PZkfp1k+>Ds(3P1_k4A0OJvz8gh?&IX>HoL zD^1R%EA2h}yC#N)7s9NOlCRg80mIACD9ve!Y5A<4|Jd`#j~|@Q>oboRN3%6}K7abu zS4%`hq`Wv#Y(HpTI$JTHWBZ+H9N+VR5}tRLLcpP`FJDio+{S>XjR<4K28I+z_;Yi! zr#YCB;1AW>{Z-$$6ar|VJgtPGfO0aix{mY z(FYGq$3J>{o>q0=U-4!lkw|YhhArc_o%W-Zj!Gk<;13!o+ZuL^{a9Zg92}e+ctd6` zRLAW*0c%y<&KlNqbD`hlTikQkQJ3Xv6~|%w(E1gP5;M8(45f{kM1PW}RmPnu*5_r2Wq7I~P}iynUe{$0J?CRyU;M2%2_i-wj@}` z3|nlQNk`J_gZawk8jVOE%N|(dMA+N8NXwe{{{H?+3$fn&A0BFIMx8u)5A)vG_uhswSm zs=`Vs=W1uyxbBfS`?VT&?(eL1S2|j98F$>H;J5o$WZY@DyKd}#P+>oxg2pd$v|o6d z=xSP88r{a?VDCtFzF{jle5V5E{d?W>Q^hdblX~VORciHK=M)MJTe~up7>8lQ2TCnt z>xIj;_+7S^x=)=KjO)qPFzw6JRWHzg{qObb1VYOK%Tp#QK)+el+0nsiKEPRQKBx?K^6l<brFYn!);yH5qyUVJjwm9Ac96`!x;4@iPV7L5c_ggSuzu~qW~BDB713hTUg_2duFf*+iG^`Rx%+Rg zrh8MlsRr1sweld>sE{gMYBHEI&WrdGh^(uK2rWwCuZ; z=7uXvYqoz7cu&}3S6X>SXBJCGOU_(My#J=-!^<-i+I#l%J@mA+4Z^(vc9}})@}l;0 zUHPNxs;Z<)OItJF;_p^WycOumQsaQ%i-9dM=Pj8v7Qy^OS|Xd18O@w9*Bda%(;&TAES5C+FiOtN0Ow2^%=XK8Zq1qVlwIgRAy33J@-%V8{m6CLwq3}1cQ$on zz%E<88ylIW^pIZ}+{=KzFhnb?jB(t!SyWlrb$rXb7I+YB@OLJfg(&*;V)=t>m|nY8S4@pZ@gp^rROS*1p1H(e*v?!Q$TJ zW|;lVx7!eIibYBxs$SYwV}5<@uGb92qk%H(L~W<3;I*Y%I6>#Agf)p76u*VB=}nH0 z$A9)EHJ$wO9xZGHxA|P&5p0XmQO&1MpJu=ux;WYe6MJ>stG}=9(!A*PI?O z)0-Q6xK(=u6Lsqt`|y&$>^u=s4`Xgsg5!wO1A2P;2tlU;>U4|Y3g@X{mGvLKtQqRX zCYyr`FJ8VhDD1aeuHKp}9d+x3wpv&CmKF~ zo_#B@Br7ZXZmD9P1@DhPW`2&>?=Dp?w+Z-z?KHKw%OF&-zrSAuQ)`XlQ)p^x+Wd>B z7a}K@;n&Mr08!?;Gec2)B;zoo`}g0Ehodz`MVxQQxx^p%QzCysOirGWTeB+;IHo+V z_XgPCo=m{inpn{TH{vaqV!+EnyEBOh5iZs2StwbZKj1}W4%ow*s2ou}C|NiSIa=2Zu3dZ!k%E|UR z7gzU9!uqo1nmxbw*B_8WZqci0`^FmFT)+R`Mz7AB|Ni?^51ca*R-@L<^?74%`84@; zn8Y^3$VGqizPu0r{rBHZh?IU1QTHZd-FDOe{`+rTv;Kn5hpM%12Y#E2gI7|eqYFez zOnX@p0bevgkkofKoBkSp|K7bfzn8XM6Gc( z3t4JvYQ_(Ob2az7%=Yncqk3z^bbV=fFADqB_08Hqg?%RaNG6SvuZMkw?ZT$_?%yXD za9k=9aR4x#C>6<#KFE6J+qL?egxC4_`k!=X1g{``7Pa>2^~L)D&Itr#be7sbc$_%p z=jTVb2a%?Y3ylCmCt4Ea%28fJ~ZPw`IB&rn}-UsOQ zHz}#nRl%p2tWERS~S~f$-Q0( zDqQ3|77IU}KQ}axLwx4(I!|Tc&a}11?!5kF&s6WS*UCo%*30LvaC1Ti<@;>J$^U4= zUu41GKwtmz;$SJy?)t1=QgU)X)e$5hXs0LM@QheJ6+%-7V~w(nvV9Y(14DUpc(6BE z+jel!jDnQsA<t#U!Fea2SKNMd#hkbBzrhXRM z3FGV$PXC}gkHg}Cfn)?{6EZo3!|QM2ACXC1cA(PBsMzXl7o=zkJmT+Al2f37JJ|CvfLPX zBn-xGq3?SbWMl{VkaJu?lj0eDrsvK?L-V-|907hclA+abT1K-vxd0aFR!|Vo~ySi)1Iu&K{?WWUlL}&tgNhm zWA7fC>WJlB!S40bwFzS4vc^g7VCb$pZ_FjHuiG7fse&);0rc#%Pp|~Zg<}3=QTv5H zxs{cb%_A<0Ayo)Af3pmJ=|TZ<|L(tm~ZLY#?Mg=^B>R-8C69%}YruTU)H_Mqh%n zlry<4hSHXXD+Q{wm&U`5@()$-`&gYGqv=J?Rn;$o|IO@_lfUMesbJJ91S^ z&55XlhYp>V#0$QDl|%_pho?@VFFYQ3DGG~G=B2W7A#?aB#&wb@+a?zwDQRhCI8zXW zle@YU!T*oy>Oh9+9m58RI3!@7#$8Gwo+4Z<u!d#$AKD9o~tG_eVyF z)N2@w;{?uBA^fAA%GNBG2Mk!Co-OJ?P9gYIR!mIHWVFULesJQ)kE=B~+SL{Hz2!%$ z>44tqCk_t}1N4_^`E4fuqfUpjjn|L{ECnn}>dE9%&tZn%e7y%~;E-gffGGgJD1wAu z%Vn{6lP!9xO<)=AI_Hyb|7cl%CWg452>vV)IFErXF$syzC_dXF2%X>?`R%%?X=wUI z{9nJ80~C($_uhq3HRseBqKESDOSLX-@oB^RiF8!bWN#~FC|dt1zPq)YTW*Ur0ZL?U zw6=D0c@#p@u7r%pfn9zBqCOxYx=vqdG!2nR0sMZwh>y?Sv#P2pPJ`x4)%&Y0XfS}) zGT_u@K)RhFpX`%VC~_Cs3$J%*XsAg~mRiDJGmk$tHZpQ?6@Q5}j%-ayeBhtqcCfqI zxaL*W(XYYW-aD=oW_utFsPzHLJq`~ZJ1nlBV+8MMa*s!SQ0 z5lbpU5k6 zg(mzArtAtZlR?*9ch|pPlo5;v0Ey@k(Zh)*!$Nv$>U$i9U+L^z4v!{G@>TJNbJH5% z5Ik#HuEKZ0Qu}^RKrRPRLZ^a^Q1YnzkyfKWRWF1+)rGa>)Kt<6AwWdqRR2Iy36xSM zkUabVa&DXUWPQI8`wZdz*_yqjz@USYX`mFl)8rCSYKbrz@F*jL_VG6Ufa6sbK1dy6 zmzjWqQJ83WQ~YelW@C9&2MjqhH8mCdx>D8zGl?&F;YUXmkWM0m2)1l^zJz6R$B$A- z9h^=lq?;R^G9t4uxNpFkWS$q<&%1@~_hc|3e%WeRnYN~#wtqC!YR^`Cx+9p<*JDIAQDz>O?_|G$Bz>rOkQ($cSnQ? ziUU>E)nEwj#tnXCcy21uPRxR_Kom%Y=A3i{o>cnfkb|hW^ei70wN%&{? zbO`V|q{J^R%EnIv3VQPK)mdk3w4)smjxB?O8ks7&%J5W*5n>i0q3Sx5=a5u;JMy#y z?}ct@mS?iUsbiU=s)J;?Xw;cT%&0BuJ8(Go`=V87LbJ)CcKh4b$O%HURRX3~oYU~h zleGK(l-Ym~jbTb~@cZ#ZV!>U{0^!mNR0i@xY3SVmF1hp?2=}%uVFW~(itOy{cH2M4 zZDT}u>ROLn>CL)($}RevfMZszsi_e?l#FbhJ}F|<7PN)sJHqz|G+J6W_pcGqthvfP`w&O48~D`hOkX)i&YAY@z%}rdwJ6$^y48v;^Il4`mR9aMjHl)F!UfFm`?A~hoMQCxi#t# zwSZffjz3`Av3$41J@kH9!ZfuCI4BQn@eW-I<0AKvrJ9gU{Uy7F0i9b$vd! zmS3>u$@held($@LSiB$hQjuX1Kl(e762y-joOu;KHU~Qs+#Q1RAGhShh;K<|r zG)PO;tDTD-mPfQ6xmde9uC8rtF#q+eq5~+S#n>xe@xV?tcXoDCatHNr3Do|0>jHuI zBx9dV<IV5$9fP5`2&k3vkE1K{LKAR}Ge55q7&Z zoFlc){-6<3{`Lx~T~1Xg?WHZM z@7JzfgX}3v+x@^E5ia0y19Nk8ODu*nf*DmZz$p{yj#4-d#l!LqhYY!GTh)wh(fez=qk-WrQZN=`|oivtqGikQ11oot>T8wRRB| zhz7y$-aXQx7+YS(l^)Iut-nJ&_!Wz?+u*Vg5P}^;Fc%)RSk=zO!Jz=C0Jwwdb=dH^ zKp9~Ro;5zJF%RT` zVuV~Ww5y#V{;F3xWJ|{grUOqkh;;_f2f7`j^k2hWFXzYPb!yU<96SvBt# zZJ-!1i(T+C{vrXYW>DiOI@muj(FNNt%TV9xMNrJF?B# zbJYi%gPtSP8uACb8=b%|WkMvDM>PZp3D@Ay5B9c9Ay_*@a^2=~r5DkdvF?Xz0FHVf z=~9Hvi57NMM;M&jawJQ~ZD;BQw!6$)&lTt(=atW--AQ5>VUMEM{7;hBLln5eZT1av z(JY8!DE0%|?u2wruXZ?#Gq>M~*l`GmA7gMPb0gK2=qRJgBb=hZ+S(&Nf%m9DARf$M z3;~Fo&n8KdHn0YKvTsGSEwEgOy+@1zkh(eu6{45qHOiHTdcTg2>i7$;{zvJ)Z$12M ztrg`dkYTL@-O9+!oc(3+Cwc`<1W>60OxJ$$%im~sV8s=|cnO3Whn`Ce{ z5v_Y(c>5Ok62#D=S_63bfi0(n{6>B5NK|_Pl!eaIE^u<3K#+M`L(t9f7v6o?F0>Ve z&i2^YBXl4k$T%e#*6p3Y4V|hDhQ7MHes_C}q%usFTbk+7$a7(DdfGh*@ z&lYfh;Q5_le<(&g9sxYS2mTWX8XVOL#aD8{r+Kt8F$+I)d_A4^R~k`?67m8?ZEfv2 zs5DYK&s>8_K%;Igcy4V}ZU$tOjUIf{@845dyBqVU`02dSt-@v0c9qO49&Ai1R(SYO zIw}W|^8nDFEDe=Mu<3aLrPu`(2BGb-m!BEViNrz)MZEd&f#st|aX^x+L$T8Y3c%7j zT87+_P=&BGKHT3y!G9faSrdeu@$qr6KmB~4Qbv`WEZ|EuEvq*|0K5vIistj@&(W&n zkDSQ63Cw6GWGX0IYK;}q(bd&uA;@DQ@f~qlh6Ed8v9N0egJN3T%0#2-P? z`wgZ@U0LkQzdQPD?G17$;9?mV7@FOxS;T=a9dW`^pj-&8CGlT>#a*$ik^{HY3qDmY z0czU2CNN;<&3+@~Qc+?8i3NiC&rORmFKxMSL0;$i>eUR)rhB2ka0-ZU$i|~MWGhx0 zu56$(0rG}`Ml%%C6Tq<rAS9-KzKBTlfM)La*|NNANH7A z>1rir;Xo(ACSsS;FKIwvsqY0R*s(g*f&y@ta2g3If=Dc`{edYP z0?S3AxO%Nk0Qn85ZVwA3KfVHI1|?SDTjwU50#O|^ATW@^LX1fY6> zHN9pK30THhkftLv5>6nBRq)vP*EeFUw(M9QhO%fCId7P_!kPk`j+6jsvfibBtWw}n zLt6#+Z;i-8iGcVhy zXd_0Vm7|;&`~yN(koVlc)x*zVn$P9LVr1DhMNY)&vjop$A^D4PfT#cesZ~LX^nX&* z7`$TU&@!}j(A49OG-#1@T=Q!_eXP0hV6O`akAEd4F=fD(4!&izAS@`)INdCqY$+yU z(5cMjSh^D`pkY{Xfty+Bql^xnkfDFZkd^;q5qGupBa2XKJcrA4g{h^HMzg}d1w0mp zo9oJtyd#4s3m?GW^p2M<1yk?zSY*@@@iZ;WPEC_lke2@S>)~bLx~+vwxQ*E=i8+?9;T6rq zch+Xf!h@zXD$_qURx^(dNCodMJJ6V^+w|97xkjNHN=8LRPFnc5nb;_ku^Z-Y`hNY(`vvt`g-^pUi4`!OVE~ zY-Ek%k0aOX8UtkEt_*Z>_Li`A{}i67{o~gIL$W3ne6-l_&Uzn(=*!E7YFz5Gj+0DT z2)P04YZgu)KpojiTj(Eq#Yn^9uSZ%x%)*Vu`__{$K;>{j&)6s^Z=6F+{!!%>gVptt zqXgVDF})9c`?LF4Q(7XfvIdsMW^7jKxNT@uxTsH^JkdkbroSl*BT|?t`J_{;{HW56 ze|wjrAemZ>#8=YLSHI+oK6i`$=DV-cg8tD5PmYFcp6^Ar27JCQaFatrzu>99NQk9- z)kz@@QOjs&um%yMBli$<(tVck`A)<~>_qzlHWi z9RW9s_ty%WXl<9=oP^tlLtG`7u=i^w+6!BS4VN_6++vI()BmGuGYr-b)@=>4Gd|$#scBJEV~rqrekj|8!a{XgDQd<*v>+Qipj3$6UOjqQmo;oMc_&G5Fj zrssEH?XG1Ns+JLxumF2V^UFM^zV7Vi$Ugf+HI(;yONI~3c=k;!X`gcb)H(JnbEi`^g7N+3B~xclQ#9E9d72Vw=_mkAHxVE z_4}wbddl6ES6!L>3B&cnzVgLKPc1yKmHyADnP|{2>Sk+RZUG1BpPl&U)@&?Yio+;A z3I_K7Tj-to)v)j@B_+F>pnm=&<-FXJFW9mI)=`tHsPapH?vxStFc)+vOwBJQGiEA< zd>)ign@wLG%Qe8rn(d#!)J^%+Fk<2CeKH6aRLs|M7nAR>G#d5Hd)#sb{fK^B>E-Wo zL#^2_>RpTBCCad9fme)fPeXX_6%G`P3Vk%>(C2D<8$R_af3dyZBv7}oDNn6XC9FTI zpg)VfKPx~tP`4$(=0(-QtrmvB_Y_OvHnqxaST7~oi3Rbpk1FGQUgkS01JUP}@%uw~ z78vvXWj$KKD|HGp^K`S6V%KMfCjy0lQQv_YB*##U^S#}(1HUbMw?AT`(ZT%uVeH`%3=9dw}%`Zfouu%Pjf`a-@ zXAdPQDLsb@<_|S=&BMvWhgO5@E6bG4>|efk%BY9oWjzGLwz)qVy!JPkb5*rq(0gNf z=Sh3~`J1w2MgdbwA9NZg0u;ahptqFqtxQ#&12oS>637%FI4l&-{`DqdKOx^Mqt9w= z*vn<~Hy#N*_!(+jLztS3+T5Tgo&8hYIai3i@dSY^Ue?+BNkaW4N5?aHOS zSrQ_&N9Wq!jyLjoV_hb;g}ONIT}`^sMt^7hurZNXNu&Caa(0~ zp`%U;sA8%AiT@c;jy{_hNugNG4=OWkfV-%UT;{Y7DP|xj_{zSTIUiMaftq=NTA|I0 zN+z=M6WY>Np%l{wO@^)7#-Rt_*}evH8F|L&+Lsmg)G)AOSB8k4n$IqMEh*HE(R*hU z%qNo;x>wG}Gi2)*vFd5>xwS}4))P(`PTV)1ExSJ3MkV=$Ry)bAg@K-DfB;z*?sGjVl`b)oFV;M$^|jbP5$ z<&-=A^fnqxSlUK&yiFdyw|cQU*BXhV5}PP1rm0gl5Ab6%>D%jf+LnK6t}Ysljs`9F z31V9-{p(Ba2=n`eA4QelHr})qy0T3o9FtzBNzrazAd*`ZUwpM>N~kAjEh1v|>x!9` zD>tXGi|R<+p!I%LWB6+I=@h{UzE=x;dz>cSn(6MMq`PM@Vi{dIRE+r;%>Y<=W?1=G z{-NIT^73}uW3?Gtl_ijn3<=SU1?X}|>W7F?>VL%QGg4RCg71l-7*oqu?k`}s6*fHM zP?E*eZ)Q}>ouyVVeflZihmro9tc*9xTC|;vS_<)59X+)ztU|Ze7BtKYEi2FAXD8$p zP1@G_nyME_tC*+1(tAKn<`i)HE<1k1MfTMOKE5MAo>jB8q)c+8V2fKX7?)`k2)~j!v?f|nf+c!)^DAl+tQyS z*f>y7+V2;&XjDqZZu6E)zpvnwSpCf)7xlYFTkXQMjM6Wc%aZ5!FicG?1sT-pen9EKL8jAAWE8iNItmr4ZJ z_yy?2oJz5?!e1SuuHB{G(=DHfa%EmU^Yy+o#>F9W{OQt=-rB2HCv4!>M%$Gn^37ZQ zY?=;#=DykYpBi*)(_34ZxS6`(Po!%bkF^ubr628eB5D)X8F89C_x4<4E5W)>_3nz#QoKiC8-3C^dKa(ilL<9HvH(My50Un?T!es zEO*rMc??M`zC{=@hL_3}h}$FVIn1qVf>o}>UAl2e3mV#V*G_x<7(b7}u$)=f3Kl+W zIf1$L_tzM0Fv8du0>ezE17vE?7`{XVi#^4|VC#@am;<{!k8pO|hx$PkNFn%b)?b-) z{hXA#iHWLV@2E?qA3^ zXxPzS|APYGc(B-QEw79@DFt!ns^%|6b8E|v0QMA%O}h2jUC>XA*E`i2CPEFej?=AB zA;&GPWFviV72n>ao~0vcawaiQLZo zmBW#vxQ1iww=it4ctFGh#qVQFf3L1qJp-h#@h5Irbq39OhI5mp%X5>xmJ&ToJEA2@ zeKVm$@;!$wI*moo>V=1eZZ?mv?0Iq4{;vc<(`#thF_@A0xBbU)E z715v(%ZT`ykY+Ux`=4XCfufWGLQVmMm|dwdv3Is4Bqh5*ng$s$e>#*7P?ifS!UOpj zW*ly&^X+)-z-TyfS6pPjRC2^EgM0gLJo^eYT7}sL>LW_N?55lY^Mg`n?6&IYT*<0s zU~;l+|1m^tsXB7`rzK=p%FGlNR|dyeJ9(>4Wt=i?j}h{D`xa>npfId|`TlcP@Kv0k z#8hJ+%;(&|=75QR2b z2`WoTA}ZRBc|2IL?Ics-&c4JBDq#QzHbkk7d#p!`hVm-?XO{5z^?G;4%H=r{Jcp~Q zbESlb`&hZweY405?fPF@IuqD^HthKw$ z5{^VMTb#@&(Pl(A!lLvDe+>_|eQqNb!%Ef5OpXdRpA&nT+W(q(;;@lc7pmK)j z>Nnu2GlGIH9W1*aF|L%KtCxiec45jK2?#NXs7_!$*Kb_JhP&lxjKYv~b#Qh+H48WD$ZH){Kq5P~R9hoUW!E03qp5DXe zHGFmuVXq7(8S;VyZ#0*kO&~ zxhJGq72VkbmDt$F(G&7zZq80ld{csimUQagz`Oq}2Z;!0o{JOotRsp)j5BAW#ZGy=p9DNbkHiM%3Fyga8U zUt!34AmP3s#4Kjg9p|&OH2Uxau@C9ACPQyK)VlZ=HPI)7z`>T*Wp;L!M!2*|ze3+< z+||{UH5_{qll*^Al7`u^RJyEuc@8V$KlkSIU{FwiLf6PL!-koo=xd8)#^qiaqhVn> zt;Z)qK&^o4O&~855Uc^clbAddw1?S#o$0a1uLpbPCNs(dxFlkN>yqDZi((ZgELBLL)_^)MRQoA9xzGTuN?1s_RPW@jX{&Tbl@rP!(tz%gnV+gly+{NL8u`r3oCv&JXF-xeb|8`7Z6#|MS>J7{sOGQ0C(x6enqIG)gSG zXmIhkJ&cZHsNb=8+3JNM)4r6qzY%Hi`5ASY>n>bzY1M=XDxfce7nQp?_>3m8oJF1y zqOx7u%D=;FsSWONQ>Ts}XLZGKQ_Fm3EzNM6-lVp0RB7(EoJ;s`c53LOmaB>}nOa2Y zK5KR}v&s3)B>H-K6V{gF_O@H;wkl|JQ~xtMuBExkgtY2szkA)1(G#pw6*hJgvIk1M z6E;_Uj#sHH3dTrhQp@>!XrVR_(6d5Gj=8%O^#T%|wlIdf^bJsOYWhw}yt?B=YJ7ME6LM9>mid|Db_?H%|0d0e1hM3%v-^BYpUC`(*ss7!Os43KAs z^(OrNhmRQ-Yclsm7wzjAXP@iB$6EYe;rt+nQKfOw#dA}$;}tefgQR{xs!F_Y*(bqa z@)yX$V0;t@ey#LC!f3H;yO@~#9&I<5n=A)>zU^;ol7+Dbm!=I5GFGM??3P?A{=FiX z5;*s87Qp^NUJw2&9LxKb7$r82|5hB_A>j*JLgvY*z1X z4{90t4tN*KcJ5v(PWSQ2up15;7QLAvqRYrlCoA{05f0$^CH9 z1XxIpEi^Q|1DO;>+wlRaGe{~zhU3lgKhLDguE}f_cstYDUNS{*Vwo^M*aL5%Io{Sf znw(#6$UL?*tFw&RXb|J#Qw(+dPk+XtG8fcJ5XON@^jqZ|&Dp$mP>SQ!j=Y=D^Cbr* zKMB(e+~F$IGX4c?vIjHqGGQR|;6eUh_$Yp__{sM>NJLbx2mUFUO%(U$=2smvl|BN| z8AqgX+4w!rs(T=2xpJ;0s5C z%}s?gf?e2H@o#>fN2y^Kjp$4sq*qLy%z{3mOz4!WSZ!vs2YC%dBAn!2_;6c~%W|aZ z6PAncE+hleQO2_nS?#y~#L!V5*Akw01QzH4p4dlt;ySP7a~z(q9jMha=f2CxP1*Hh zd8^rk3wdyB9Do8ARbg*13?9wlS`{u*3J8+px?>cv9xPZD&3*5&k5UVF`06$4u4asVo3_ zP_JsEZ|TNagHVyllgv&jW(VA;D0d6|i#a4aI zGQZVa)ZcVyV}_b&yutjY$%hPx(B$~(lZj3B>U0^}#HmqKWtZWUA^8EAAq8d2!EU0z zuspyKq#y3pc9A-J_U!7$hSJ(}>&AMg43spRDHKo#Ic6-ufF@dgp<@;@7=P-(7ZpPZ zb#G5a_c+?KUsK9u-qiwZMh|+|q>6^~CMn?IrTIjx@&Wn~L!BH%?bxWjuaP{tL59Dw zk$Hr$vk3NbxDTxFS-O=lSEdcOBvkJ5e783@k?VTPo($&@w~U(7nm8BKeDT;PHD6ZQ z(td4k_ z9riB8V}n`+19T>h$^OUgoz&{r=UpvlsvD?u%-viX&IA|Lq|Z(dNe$>1l&YOKG`Xm8 z>t^sG6Qb&&^}RwHp8;3+SE#dL%z zs>DM}XHR%NZl}f^fQuBDYVR0gb)2cxISdTa>N*_z8Io}uqQXV#vw29>2xfT~NlfN? zb8`X0ra?^^wGn}YL;tcDsNwCmf8tahsMQNpABN)A0m&u!}IPxPP}*VWY#@TZ_AE|6t#S`6_TN&bST zrBy`(|no^M52=y_8qI_X%&d|WX7?eD_;2X~V zx>I4wt8fqE{~4clW7EIEsb)fQ#{i8J0lzyKk?{8Jcg>|m&%Lc>$DVJvO)69T(NoO7 zx^l6Awy~wqrtG7I`%c2g%s1{=zrP|AF=?y`TwN)6^5dPM^LCH&E0tS+N0pppgoZ*O z3pR6KzI;j3G@f5I*wNV;&Bcj(Aj|jyI@iwwtW93Kj07uJRl_|77|1Pc9ncZI)x^hD z=kxmYcMulPh=EEtfEpC~-`q5GbKs5y0oz}$CaO6c9q?16?dd0aK(c{zx8wQH4p>p= z=B1l=2e+xRv@{l4nSq&D@g628Wg?a0+vi(2%I?2z1DrH=6;=`T9UDcXn>a8Y@>pnB zM$^h_FQMn-QV`ZA85W9ronx-$i$`(mEH85%`OQZjh0?eiC~l?O7~&k)F4rk8&jg3D z1l|qkFhF0;SBy5b77v$$w6z|>$C$yv1EmEGG*zRk0Dzf;)R%vm4b*Coq1rb5#Jwr# zzd}enm`$ig;1tMr5%Io+(~tU@L9p}7LwT^b!jx}FC(jj&I{6Gl_I%rpjBJigaHunm zy6^}IXtDc9cmas#BmCi&QYx4Ty~!EPH_!+VUv&ocYPcm!K2Eo+)U1?8yAhYy@Nv{G z2u!~V=Ggq@%Qw`j37R%jTrVwXO2J)a*VTY|BHc$-RT?KW~s^mdPvQQeOAKNK?#OJ{fv z%2}l^z}_3%s(TcJHpG5uNDXD)dFEfk*gzOueK3#iX@K^sV|N{Dt&EJtV~>xy4k*fiF6r1(yNLr2g)ns<9GgVibdG{Pfq^7w71C%ByCm=fzMe>M-mKLSbME*N_ zdq`M_E^DZt0BNGQq@>-k=|8m5##vqJ1 z&?y1RY<9xLFRpOCz&f<>rP&ySI3cfFm;8kcXKPb0J5Mr!3(^f4}EvHo!7rVkXUy}1R!7NXo7B80R&?7ey=T@;{nW4_UY4YzT>%xwBcN=@XWxU z=cvbi{!x&Zk8*D72#JW8`}sFUR`3|eehdc<#D!khtS%9^chpY3 zrpe+$OY$k9x$M3>mc^~^4JJz}0`|1b5+mTCMk=3IaOScE76b(ZOf}D*BAt{kcO&a6Vf+!!n?0uzlKXL@(%acWT075Y_Qa_7d7X@usg^U-ch^4)fMcK ztw<3Gn1#mRj0{K~;61A=EA%S_Sh&FknpgPDbC%u#n+J24X=co|o6F$Aly&`MV= ztx!43C>*l*l|H=c;8Ne3_D+|v^1{RxrEs>R@Myf=N;-RZ(qXje{IuzuEa2QlSX$^T z>NUpNh!eSKJUM}xZ!pER9!S#L4{ z62L8ZYd*Emf+{FV^@jy_WH;z95&Ms{>|mzF?niFW`tUH|$9E39?;8n$DW5EUzFQ zp$!8`^LW=bj&bq zp}}_I`4Xv&2R}suB=P5Ld`}7x1vM#FRXQRcr50=18{Q?kY02RUVU(BVA*Y_+fpq{PoaaI zYpX@1c(eD2TI}!QlN)sagys52gB4E8ivO=%=fztm=!endyn=@3QAmyO0?k6@z`-be ztLo3lw++$no2buKaNoI`>z|ZHQTFOL>uF_N9)`m)EoXiu1a-_TDa&)8(iN+Bn=E%t zMMM|trjBVf**SR0q`u^G^#;U-x~W&cvIN--@d3x+fRJ>@+M)PmcOmN603>XF6kz6o zLqYvM>#&>i(8dZkN0frD-4rg{K^F@l^*lM3$z;YjF7_CF{k*Ov2OBh^dEwFGaHR_1 zq|jDF1x3XmbfXb8k%$FA%iPAGWi34ojVNo?&lilpFlG=N&0=N20HNzjy@hMRE)~?A zGXB^xS(Sxw)bd8+WER{GkO|4g?m}TZwHUa6tGoamXw*BVbc&iq*tFi#X|wSE=GgGqI+y5yl`C1_*a^(1QiS zj9K%T;kqrPMn$(z`24~E7RntpnN^~T(@_bV8UTI&A;nXLF5OUc1%=SgWFT@N)bw!W z1lVl{z%7)}n?hoLJhrj>G_#cqS!oB)b(y=%q#x3^lHXFp24FIwrw%FdHz4Ts`3^zK zf1At;^_n3eF={tr^ulH0WnyB8aXTY>mE~+6bvm?9p&N~gttalIrc-cPfN|uZ5IMQL zyquwn+sx#wBwSLvOm;chR2`6D+&`gsssZ32Qs;9j+k)>RJH-s8QM;W0MsP;;>E)r^vJj<2C>m@kuwt;b00?m5L(>^GeM9}^+OQ+ z9W=Nj?R$nni>=Ni?%@WFo}0*?#va4&p)R2f=rx+3`JOm8Selzt_5)uG-Dra}@7iZeu?;*Gs1*T+-7bLR!ba^Int zfPjSU?WcRasQ>o!uXIM*D&AEE4|4VgGa>V6U^cMV=rR-3D}d-pX!WWusXaQ>ARu9q zg)@1O@4B~{4kGTHFr0bEy<+)w0CIi=VCG?|;d~@=KB~h26Ztj%lPh$0!S!jqdj3MR zV&XC~y->7FfPUAq#|*d?zEJiJxuFwf0bl^=mO1F?fg62tP){TjZ65{z3XO-=H3lS& z@Cg62{oQvVG~m@^8^a zjCd@p4G@x|aOny1WvC$pwUre2YAXP}vhn=^6|P+b?!!1fxtBUU*R`@oomC5K`(hNj zmfkCLQA*1Rc*u_jU`*jH5V_Of28AH#lX4$|);zeu|IUf zN1uUILd$fMYml$f3BihXbacRtGPGi_t)Wf&K-31fx*!@4YQdF{pP)6a%tYdJk}}`}TcYJCX)UMcoNmNkT?Zq3r$1h>SvJMph^-iXto74YEaKi;}ER zMs{|{DkKs9=S%l&PJ_r=dARB6G0TjTC+lAQpC5-?vaEQp zm)Pr9I2UM{B$7u2CLC=i5-%_xR}%)FG=HHrnvsPim6V!skcmzo z8`s{wC-y5xeuT(`{@**LH;L6G=S$(P!b)B_0#zY5((C?FQgZx&etsk6@7A%W{`=vL zxx6Lzw@K^&mqORJ*B%9kT%Hl73TO?|%@@K`>Y|m-k6Dxz2_ka%5u!kcrl?LqOY&y6 zep5g7<6=#|Ma5kkD(|9Gz@n7Im71^koSO4Rw_iA@lI_x^OXzHuf|Q}%P-*^Vbn&WP zzMKX3&keRbL{~-~z<)uvtt}X+P-xcZrz^rgDwPzzCO~V4&aPLeJF$2#Uw=UpLJ;NKDJk}IXcXxM(66QtH#DpfP!fuqR(Ch-E2b5(wuk6TGYlv5Iu3QGk zx@iVS3Vaq9(oGMxrUf6B8Eei;8GgTGmFGxq+`A(5w2{ur>e^zcNOd~3TL-cc>dB9H z^k@tll!bD!XKSAO^(st5Thh{E#FwI^E(|@@yk#Y0P{}1=2uJ>>pd-b(;byqg#hkLnFuWpY@ zYB*6o!}5TQMJynVJ)$?n_C0qHtXS?-F@u2@vn@A${2fOcSLBw&*)B{^PTE(w${!<< zrsSXRH_@V|C+t;RTnvxRN;E)<&^dMP$}l^^hxB)E!q8BJQ#1I%{9*q8sB3xDT?1;c z6-*pXuC$o#9DPIQ*i&Y;vk%8#n4HlttaBUCh!10fVvBj}+_hI1^zVVNPg&_9xcHUB z!dB+-*+JS8A<{mC=GG`DKAb#Ma|S!2qodPE1d66j$VFKuI;j)Y9HLCt+t)`L^|wZq zUJ!toS6$^{hfM|sT?$|GsE(WW{w3v1{Q(|9ao^&hmGOh?iet~2F|h~wjbGwibH|Ig zPh2r{QJ`!{?EWIR$}>Xbz^5?CA!RC4Vsmpvlp;kw^<;FskenOZNAPw8 zo1`O@ROf(4CV>D5`GAM{&J*L4zlpy%ZWsGsGFfZ8%9DlhP=kesfw9G#-dO@9W!M$N znkl!_UO(3Bvj2lJW2dQ<6(t^3O@Xn{6s@n-=KH~H|C%@@=XrT;-Dia-*%)gYB?c!Qp zP5E7$MywG8bw~bXHC>-B;CcxpmXh)lh|$nnVr zm?~H{v2eo^L}&>3LLNOzXlc=gkgOWPVIkE;1V{+#f=ZQ0*#ueUs*tyHY24W(FUq3tB(7`JSBLiA0M41|;!f2xmDAg#8? zrawv%6`SPvWr$HZ085x*pcpD7dJaj;ZS-)-?cMlus67JFIn{m#InSR62rLou6J<%V z>6A1*9cX}M5^bQ03R!QDiQGOq1c@U9p$1N6n&dG{hPUQijSoux5@cnDs_yRe;j!P6 z-0TMwUVquW(@i5dKRac3JaJ_S`x^vt5cwGB>w9MTqUa1PlNL7GM0mSLj5ErYL{Uad zaT$h*d{2O*Z@)saep+==ZjX$A`tagci*MVmb30N{(I%!sxgXih?d|7OA(;t1g&%w^ zFhGA(MMm;ewmw)qzowz2a?^#BK158O3ZlnK6V_g zu!Hm|!Je5Db8_xWe8@WPZw)y|$kmA}8D8-a8VO*L0(0zpdKjFMZ08i1r4$=1=)`PVxv|sN^H? zcVX}q0!cL(>J8iSy3o(8cW61~3D#bGojmR2JoITuk;UI1sS;HO33efe`?u*;b-aI~ zVD44hKOVCbICZLSQ=}3cijTT|8kWt60{-*MMw>WiLAkV!2Z5Ijh%n5XU4!pfqX)j!V9YxNr%lVVR()RQJS~)j7M`&>3!DQX2>FHFHKa# zQ4K`^#U-bX6pKiiBYo%L<^4ce4knLh^p6z?xXzoOkCV{-lj+aKgGW>K!WRP5jX^o# zd2B2j5fp`$4`Cz1k3@`uR7FV8OISmHu_(`}DzIykHT5SV$DdwXoFNNV^$(ICC{8A! zsf=iZlk;p%lvIF4{KT$(LnLVbcfnO-|9EKqxPE`Ss#qz+!X?QfJ!bb~@)6AV2#8`O z+Z2ptuj~n7laZFb2)P<^$Nr{zo~&4hxw3*HiBHU zn3+)l4is{ffAdQQ?n_`-mY&|jZjhS#qX{&TJmXio05yik%}dHq>>S%u^Yx`GPbT6A zq8)ypfJR8diO?(Q7>5wkC!@2dQV<3;${ZDcBlF`cT<6oa9^QSROr!e{2UcIXO%T^C8n8`rKM7*{g}BjAsoJD?OGD>qobN{Pc_cXEo%D9 zfDlRdJi!ao3Mb{|>H$L}6I2$#JqYOzWy>XA!_eZ1Z znXlhV3sQ8GQ&T)4B~;_*@rKdSe3vdwsOt}C>UkM~xGe)&s!$ltbDaa{^Vv#B0QJS= zmwpjQP(-qWC7bA(BQ(`o#)Ou0b6NY*0)Y$lM-r8O>RZs?UaR#nxaUAqw>-X3LOb=0 zn+s%^ddG(!GvHt30{#6}!f4ZDN3U?oiCz7Zds0eDUqS_Y8c1}Pi9jr=$de>OE=lc~ z7n9#ogfZ9m02BJ{P>kp}*5`0fv^y5uxs2 z!sJzoJR}ynxdrwv#4?2j;25?awlFucKi!n~GU*(#8C61fUc7%j^6?kQI$s>O4f$Jx z^~@BR(U&ub7i`$HLv3gMvlS?T`a!pOSxFugxbBySi0=QgaxjDxAphO2zU!BIrd6u| z(UBqgu8_}7HQuuwQu{>q0OA6Ckx_0qwS+Rkum{rdF;{gV8=It^@s!7lEDV+R>txM{ zcnL9wSH0Y)hT_DzEXoIrhU?>qnDwZEo2zRg94JwSBRCvV+yXl%lTw9)MX`|n8v&({ z>+*b0sW%aKX)A`aCx`?DY6v%)obWgy3IqJcXV^K%E{|V?f{-S1jC`+b)mT9|Piu-; zI7MzM@Wm%e&8}fNpEkQ4`2Ye5A_Kt;D5zW_lE?oNFd)D14H60mCi%Fu?3;64iN*kQ zHfvmejX-up%z2y_>S1u8MCF7elM?fznd%!eY*0jnxluyAxBYSl(S$VZdiC8HP(yyN z4-aQ3@dw=k=o3Cr^X=&&sk319RG)$V4-r^FGs}sa1WP3HAV3C+pc%AJMdjD6{PCSf zn&E?%6>gBoNld&3z@ZN5j!}agFcyD(aeD#5l33`OJpXtepibl>T>vCz;2E|@rn4)iCA~&0S(q5N;=TqHr^A&vt*fzk`|_4 zEFVOoK!>sw0ljAyo;`bpE4?h?O{CVLc^L;93&R}Ytta47xwyIIk6oGmh=9Sg>opE4 zVRHhvn<4KVQjj>D&*`k@Li3`UU?KUrfG z(=kXY7sF-S4Tu&w2|AE*C?iwf{wF{0hQb*`eejupC~AR)3R!7!QepkbZiTQc_pfWQ zy(=&N$KP1OP3L)IgM5aog^|3O(3n%|dq*VL6%Z_13?kMu+MyWGsyY!%OE)Sd5eGg( zo9MSASr}c=0le@DXb9z%1%(v!VHKA}eu&f_%0G32wHRr8%2B{5z#~j zwhw7PQ5YfWF9@+fEzs~@h;bVig?jWwz=ni_g8(&w2=owL$u-4JwFHwoa#s;S8Cjbl z367w@dJV@j*#Bgo+OJi-KQo}y`DfhegPnH2ULo`lC6O-75V_kZMv+1mLJ)^9b#-->3nW1VE}jLRnVlvbw*D!Q@dO~h zfdn?P#8ed`cs}azy2VaILt|`*j9o11lAs`=zydNrGm4y?awOj@y-HLcG4)~0*O6=z zw42UB7Py{>F?U^p>MZ#osPmk^_6OSTXq^O}69$aXsLQ!3m`kRX2(5^D%w>UOVpgoA zsUC1$D-Bqreppx-FDy1Kd;ONpt>r3GP>MOWgqj`+1;omLMm?{Ayx8;;~W z$9X+JJ@kprz#EkptjCOD5+}$g&Mo_K?EqO(fPY~)#}=Y|hopsAR?=8zYlR~<4RRit zH&NKv?~LMgODPZfbCN=0M{Bv|ly^Ae#{u!G!VLNf#Uq1g=-GA@NC45H$2%64UImip zl-pp1xB(OyqF%&elXp0xhRAjjCncv2eb=iCKedRrqU#BXbwJV1>ol<}SYw|i9@AI4 zr1FK7sdM)^Id#b65gk+__ybg)F02O4G%Q~+lZ1ze`@mv=k@Lp2{4zV7CpqH;j)j=; zr@s-pZCHi8SX}3xV+UhyT{AfxJ0Wm3;nV$nLXS-jIIC>rbRc{<91fzBWIs?v+JZlP zo$AtcD`V7Ra2W*~pb-LHJY4f#vtC9+M7fg4{tSs?Ewbw*g!sHo&{~G4bGmL#;$sk{5KB;?U_RgXTk2JZ^N9}& z(YZlL8$f3Ocf67@o*)ahVIr?44zm3I!}wb_D8zV5GizyMzH4I*0Jje3`IUT(aQJjN zp`yO%|7GihiZD?Y+Rzz)CUwK6kPRbM57|ojBZbGo`w_D3E-|hf_TfoW^`>K~1!>fI zzB+1(fau(mB!-sagh5?Bye#;VB={gARm%ePAnp8wzW7BTq_8G$Wuhdt)UKP2PdV(z zZV~Q2(Y`0DZ+Mb4re#Q zLHR3)ZGOxQKv)@#bL4<=d1sMZ4z7IfcfRXsf#S^%9z1ZU6>=_q`(+?Qgor6F?0j^q}hu zbuib^xqSV2YBykZc%TOOJi>J%y0!oyvM#AW+TP%W)`h4y%~uG4C`#W($%e zannR)68@W0P_VIQ76ryN>%^C882Fqz@Ks3YTiKKACkwEL0}$jBb@)mKeykBovLD=u zo-{IArZSM7i1;zvv>pZ>Yj+9)Zk~VsDKT;b-Hcrhw2<4o&u3^iLZ_IFIwHiHh3s-N z(148nX?Ehmvs)qG_=G6J zu|es`Ff6(j=tE=($HpB3(&!*t?)R9vwQR&XJ}nt%UF-2pvJvNw*t@{eA=BL9l*2uH zC1%Nxiv0{^KgnDlGS>+89|>S|aKaX-Qev8n`=lIE=tF4NL`F1Znkq#dbyY_tv;nzy z7G!EeKa3f_zmL9J*eiu#Nj*-OD#EBCpbw!%lj&7N5)H!w7~pdem|a9!KQI>Yjvl_T z2@?8(xXZV_y?LPj3nSH_W#B;>`W*^K3xqroD*i+>mUxLeiFrkcX%6xxAX1pe3=j_T zXjs`Gz&2Qk5X_CivG~aT;&w6uZ$b#tv(qKCv8X^A(}Dq3T#|B|HMf zKTR+XQGA?!N3SB1;(`n>noQOrbSmtnysWG$&OXqsScE2dRyOP`M3!cftU;tz-S1#qVpSJO;gnq?_`wFNriM8C>i8DWk_6wFt-uqKGwR<|5Zp$ z9_o9xF5Ykc5K1{DH@|`B*#r(UvQ<2!pvT;0A?vor#Ja8~#Zx*Ld%3T7Q1MJ0xFxeg z@Ztlk@z?KX9&I-Ut`w-rT}`J?7%B+!)Umz;gQtJ6Q!#8OAbVJ^o@8CD>9_XZd$_r6 zUL92wE{nLyDAB)#0$P2r*@j?!=y}fp3!@Y`Swp2wWUP=3k3oSq*?adDS?3Nr?}pm5 z+aOqYguphhfD4iwyt5(C5Y0aLyI_vx4Xt$166>maet3!@G^Hf)rNJm-$zenZq%RY> zmINYVZmcEdTAhI=zR!a2!|nSZWliK`o1Ti2LqC|~a4E&<>fCePM^17aToMTZ;eOHF zDw2bR5!*bgwZPQg?KYZWzvJ8!Tc9_{A<6I!qUDNkQUkK(M6+0qgqEa39XoD`i4$o| zU*2Fu1Ez}zULN}BE9P&+1Y)LLeM$!zi_x=>>ah#jUyfHYI4)%ATI>Gk+(Xm(BS6Y#CFI3unFZ3JG}UxY{E*ng?lRCKgKvE`dg=RyT)?spA%~sJr$O8dI%=k zu8ZxuKrIjsGzlvoGaLU6_$Bz^!>^4FrJ|7w$DFes8y}cL2wxhYJ}qQe;^`|9^KW_QR#=`2UXzS}A#AuOL%XSL zZ9vEDe*37#wDN-5sVhmOcnODDUEQuFKC`r*O^?FV zFZ0lQ1XXx!3%v>JmTk{Q&Qh9D=Qyw_=JlHw=*X#Jwj%dSXI)4CoS~NVcryLySpMsB zCKiJk$+*P={Xm8mqsI|uo2WSbadx46Pv&iq6oSm*K~z*_nu!?%x+p=0>VhZmbjr)y zdnD#s?LsZvU^^XIcNge^iCqy8j}!~upWq`J9eZz@mLj~Lt1&P^RpIGQUFBq7QME+N z9PYv;m$>p#HOS;S&PGuOvOy$|v89J2>{!&4jV6_6wJ(-J4`QY2NT2mYSL3rieS?Do z)rKsR&i^p$H;ZkPN=o|LkaS5-GojA>_AGm~u>ehEb^g*V<)xP=_a1vs5(=6jyBw!K zZn_)OXdmWiwH{zwOBJldw=tcpP4Gsv`q0O#Gp|hQ@UN^)Ofr^JPxzg6^1$6BGdaz5 z)#j9qvcWN;&ng_k3*Gy7Fmt?kuyc|&ac|uNepkv1o=r>tlwDnXS^D~J@?b*c<3s_s ztvE}3kqs+T+)y*RF+&(cASOorWe~}s`&!Jt_a0pthv;g`X=Tu!!k?-tILT6)>~&dc zT6vOB-Uu||yC6gn4m!$B5#6Oa;66>8wpXF7d*!77n`%X^x6k9`7n}>+EssztHvZxq zk8lqDD=PT3gl?6|%(T1)gqMY)z(XU3pL>ckCzrg*{vQ9q_*qyw<`A~ zw5?gAY^nmO!CX0YC!_gKefudMA4_p9g3%JfPKYz}5%2PJk%^H26qfI$=KE?gn}M)l zKwYCwpS08UB!CClB;4p*L(730t_mvAjAl^;y2>5Bpkpnz&H4RqRTdv5^$$NT;LLL> zTnY4GrzEherPjnZwFf42KfVy=J9jptGV+oTMcI&%nZx(m0z%zNrJ3qD%VsEMrl4)#zAgrVqEX3?;frb9Wp) zYuK?OXk-SkfgKX&@kic7k7}R}bk(15|KE`6G{OTDIT_L!fxXULC-?i(Uf$Y6c@MGW z1S^Doh$=L1iB2{GE0t{uJyGtrJ5N3mzlxRoiFPe6EGz=|CgRzl9Xy`_zWQ9((qcS{ zuiOCSF};V_ATVSue`((9tS1NXE^y%oJmEP+jWMvdsfbaVdLH4;N03{oBiHxaeJqI_ zu!BX@fh6}%Jy)a)%yHFP+K*^*;N0Y&x#c5_l^_KBi9|G#O){O6AOr*f9E^%D5P9{k z2sVslAtVkZ^Zk$%5WQQ{Rho?M38L@}u#V&4!No~ra+=BH@sg5plHbEBThLl{NiY^FkunT)X` zx)wyc9C!{V8(ZwVa_Dfc3x|v^4nQ1ma1xM^=?WJx49%n}ctdy}a?8hrQiNb03l&WI zw~hhyB|pSQ5*?BTF@Px!z|#Q1TN5;I9kF_rz_&4y_vqknDJdy@8}EHg0VGr^q>vn- z5usELxZwmDjSw6h91FltJ`nK{X@DeDuf6x?$wq-NFbr?l45j#GCF(0z+F~ZK8w3y~ z`ZN%@RRxMl=(1$O<)C{}XAS$r$sx2Opl=`Lq(`59Q{=M3S(N!YT|5~(i(x_+E;aIPuH~03HkC z(sCp=23gqW*y&RKY2fee+XpbS?;=v4)?~#RQ&K($e=LWr1vq3XftNvc8bMY@s1#pZ z`tCbKcYy$joG6%$47fo~jG~P{s5~Ukz(`yj%xd}wM3v2?i`u#O9d+mB1|_<|L}XWF z_vU9w;0}@Pr}gy8{R|0a-kMrETbpX!bx$mE$;5oT z@X$A1K0sSpNbDif~mk~1$soIV-Vl+8I?aii|Dle zX{u_|Omnmjl8QfROO1<*OGNNauB;>4?<(v3-MSExsiK%BTox@~NgY3#@?329!LDf$ zx9e9DMAd#Ch^Lf+z*XXq@_aJ&;>5Gb57Y@SwKOOpm2WM$so+MAspmn%HVaDETlYAS z(r-QTWtwA)sJm_#EdMicY(c{-QP_YSARvHCy`iQdn^s{opa zC*_cmtG^9GQAtv$dOaZE9E~)d=W;ai&HN$Pd=#%!2mzCrb!3Ae)IJ7w2P-9qphxS8 zBw;KZ*9ibe`w@MmAN#iqIr;m(lsjB+UO(l2Yp)x{dzWTfF2LPKB&;>iOo;N@d2T9M zJE;!J^1eV)R{9U5S#b{^0`42gMtGW7be{A}7-}pRe>MT~_gok(OSq{TbrH)my@2SE zTpHPPMRj%cIe{3h#pVGJlLGs{=j)MKsUmj9*Uwkmo8{rTQSPcNFE2m$Iod6`8^E2f zqR<9~c|0(c7C)`jkGtk{@Y-4$WtD;MdQTp{8)c+?m3Dl|mgK{(c5cOI);hD94I%}B z+_9%>Et2?M*Lqc5urr5ZfS!F|U?7?CIDg|x!&{0*7*z!48ZD6DY14; zLos3<>@^y@G-2uvd=fo+EK{rRYudM}OT?BT7D6TUDTX#Y`B>0FtPTbkv@HTzPezoV zj4^uiM?*mchHZbCT+kmmXYd*G9?3)!)a^P&e;uZk0`iC0-2N*eGkg9w(44oqmT^~J z)KziCXAK%5v#uHExPh!T?X8r`KyC_m?*&ueqc@WWQ(~*A6S=+7aO=hUdNFRUkg8jK z8wzXXyWJFtL&MPM1Wd20;->|`ko2y6HHKE=DI18R9c?*8hONSt0hV08lB&QPV!f{ z79YLgpE!5J7@huU?(1>`E$;96aSk)D@N|l;Tkm!O13gOi^)SYH9X&$AyKrj$C9WDYHPuOvtXtL&Fk6bXV5@FYD2`Kn0|Ql1e61a+$W&rGw!8& zYOErLO^!!P>x8zy?Ly7;NL_z#Y;5dB5U4FMGtwsM zQHykxsGaodVLQ<^-{Qw|mexFK@R0~>m5P4TlzB6$qkX}CC6BMl?Rq!$&@E{(o(>rJ zIE+=HfF(50r=hvR;J47f+IGt$&i%Pm;GjXOMLDTYl`00R90YGBgKdH0j@y3tw?_R9 z;67*8u4=~GUzx)nj^2(S%lw zLIp;U^4XzK^iC^pW~<&%Hp*@aIbW_M1LI30t`y@C_`*$EWtQ73;vwpFnRoo&LUyrK zhMd?Ax07LZhiEFq;yy+;Y2H6@_nWbDpm!w)g}3(tz=8bgel%$ zigBkp{(BNQO-R+D@fpk~9Kv*l1NQSU^*-+BNTiC{B@VSy-rn9Z&M}ksmV4IN?Ky-R zo*X~MA$-EjZ%=^o9t{%*<-7U6vsiiWP9BL@kZH_j+NR>Vy7_@h$f)zLsh7?gl+e~{ z*9p2cRG#95&1wLrAJBgD#tnHp;ek!d3+8hnbBCC#*w0bxYZ-DrzQ>+S2OXMJ5;r$c zVl+Z#=n%-uAvJlByv2aNDDQlBapZ$4o>(v56?;?A+@m*%(Kgi!5v6&5#k8P}+!PRG zc6rt%kgm-1#dCST`vC#Ans44GMqW*l*0&Z-rTKbqbZNVetg4B2p$T;wUl(`Jj50UL zGuLW`wvN=h4WeUSRcx7S$wv>K%MV4bQj4UZazCDhek0dN(X^zm(zlUX`ys{oP>GvP zlXtW3LFMc4s(ATa4|Zf=k9Zkx02~?hW^0M%xMZ(FZ@X43O?FJilxL3bieyFp{ z4;9DB#lEl3BFTk)_py|eSti%GNY#+Y2T6AavfLGQTGuhW6sh{w!=qs+^!xVb;7b>4 zBHI@&Dh?;)EAEbtn@8axSC(+rNJ#?S)~`N}VFd0>-LYfG7%{^cVb)Nz+jsy*OppmE z)~zpPFwW9h#0I<>Ld%r+^IZzrSnc90_!IG9w2Xk%s|B)xWi&&iAGrV}l_|n~OYH>{ z-xHGl`1eh44HtQ{#j2g$VlGcF&TYKr#PKyeG~Ar?QfpdY{j+Uzung}VPEOXR#+Q;u z+H|zy*2`0~-@5!ytl8Yc!j{8ZSNUYgRSf<-dX(R}w#dPTiO)fD>eyg;)Sp z6Ax6Davo&;K#{)@7wO`##+tXOcx<}B=-OJ-j=hIwW%h3gel$s;E?K=RzS^p#Cx=Isg)lHYR9DMgH5k1zrK#-Q_mKyZ3TyU%*3!_y zxL-8*-vF!0I;q4A237_ka&NEwQ(Z;(hi z0}G*UT%+-G#TgqLJ`nm$F*h7flk_G7U{@K^s5?zbvazC{x*lRQV8tGO+M6%s=U+5w z4vf|weEghklZwvX6EmG(ERw!F4DWK9>r9v2gcZrqeipP|$!cN5;u@EugT@-~J?->c zw`>umi?n@9U5Ifk{R0D^(7uY7(|%>axLyD97S-+QU|9&D*$(uTJ4Q^LkP39q;tyg>yv>*zPn z7M$0X;(trO{+_~KUatF|E&0@q3#|0~I@1{n($ansrTppQ9TKi%RM)Bx?dpvV4PAHq zWw%-EOsdjy(5tp}+lQt`e+% zK%Zav`SgOq?6mMC!|f)&#cfAx%k^}mA6Xux{%Rk1AmqZMncrS>&ZUcypEn=vxx4y3 z2Yqz#DMNRf#Y1x1`{?<@4wTQ_!c1!2TokwtA$6bV(@++@jZnmO&#$3Rt8&_FQ0PZO zwV}1O^~-~#*J767xRA3A|4hGg=amn2C+PfF@&aBl&t_IWvZf%pl7}yz&3S)QSzhk1 zZM_&=%T#qINAsh3mj(CX?xl7q|H>QthH@;DzQ+pwIUn@HSNZMM*iG52to4OBAEq5` zOS#M^F-!R(-|Jap_#QcBWgCX$n6|bCGh)aZR1dJSvE9PguX03$ta1$TK+3tI@C|&q z-3ilbetgSEs=hx&t4ZnUxd#R(br$KY3MTm}3|o3zqzdzHh$yU)*b-B^(`P^L zilvqdtbq;djZ8kb{{SvT5YpT= z@eOjo1&i7b3kclt@i9gZE-J86=2saEaa=17Q7oMU4Af<=p4;L!<)m7`vq{5s%ZZtM zxyJJ~A@9b|D*Y@_;SsiE8vnQ&>wQO7eqRcOdoiO@yYxIoi5=^%nAd580`ap`?J7rq zyt^rZ@cftyKwqdp>|qjjvbs5lB<4MkI%ReBt-!FwMi;9x;;C@sr2Rxn`8iY51GKc2 z<;Ll_H#pcm+-8`{&CyX5x>`XrwZ=(zqM$*dbg_ejC%Z&j5vnMDDtiUk??0IRJX^+Q zM7Lhzb3CpK>*=sgo5AdM8_O&YFof25VEXA5LxC{;;K989z?)*qnwku|j@WceI2`G`Opo6U zdw;5guU-De$#`x{=6=Rtwa5r5nG<}q$JW3?Q9F$7{i3IQqxHnw*W#m7)TJhqrQ0^I z+LF57M`bTJ`~CDY=Cfs4Z%6lBPEi3jT3R}M@A8MO^lU$`s;;Z_rj~VP^uv?q7xtgh z*?aw!V^Bi*qh#66oN$_*?tuvzUVSu)$fIOF-#Uvi`BR zGeq?m7(&!?k9qstU=f+=KcB|S(U{>a;vlMKx=w9=JY8j`|DAtZiT1tk(kuJEB_*S89R=ONds8g?{J{S1ieUH3gEW72I6$DPv&b8eOMh3gM zcmxzrfY27LwI=x%i2_icSFp1?gb}~{3H!AZJvd0pb&+ngV2WRh zf!?Z1>0V-_VP;UHhco|*hxw9X-{U#{S-bCOfF~|(P{Un0h5i35f zI8=tCqH56mb^ICRgY$ft=--VNl)l&-vO-gb)pm8+c|Qx8i^i75y7Ba3f!Emu)tfYN za9Qhl1(T^pQZj3e!EmEej6NEMH28=G;6UaNU-K))$Q_k+=>5So+NPo0lWiS5Fj4Xv zS5yX9wDX;+^5e=@+loCdH@U?ZHRsEFsTE2jg~KZP1$*lSaE9Jn{gnJ1PrirMURnqu zni7x1I)w3WuP->~a#qxwZ}zj+WE_7-(e*TNq&7-ZXH}xyiulL9i{KB;KBu z8@-24XS0gzz5VF(j(2g1B#gnuy;Q?Z9Ej-W4m$BOmYvr^&m=SEl=_t|b$|8dZa;hC zO}6!DO}k$z+a_)w>Z~zVSgw!#tlRE%I(r)w-%Mopv?ylkFruC)%ioj|0}Ty zh=#N@UjB1(-^^Jh%82caQdeGO1L^)d9|u(e_LbV?^ug5@bmn&27&s5!aRVfx^YQ{U zly1uTX}50OI`pMT9MPKip+k5Km70#u6dkyQ-`{TdgGy!jsQac<3z1!3MuNk|4ms`j z%ln>WXK(W_Zy0hd<@amhTtU`l`0`7XVGW%7?o?D({&3um^(wT{7t@#-iwO2u5S#g9 zWqdFJWU=9VtM+HyQkbnDsU4CCDwc?0ZLm%ZDv zdB^=qV|LpZ{i^Geg(n|>e-!!bPDRGkx)@gPI*V5bS3NrK@3R5t1SXzd57VhT04`Hm zwZ6O!(EmYU;ZZ=6RNq~W!rtCT0f+^5{op|}zypP|y}pHLIDlxSKXJOKc%0@dnpQ{O zt`g|ka7Zh=VVXC^c+BhoZB@iHb4NstSM|V3bWr^69$nJYSQ5`^AIsI_L$%$hM0gPb z5fW#}D%92anucc5(HZN(8(R7%Eh_KbuRI2~tHQ6^n_oJ7 zQKDLHa+&>UvrKT|Z>GD?)gQyucQBk#GUPp_tuI7zQRn_)KFoGXdhWZTw6wcIjHHYo zZ9%8%BU0bHw|A1;McdJ#3I*#2RZgL67T zQLPTqI#+pT%f3efCNyO1WX=MrDQ{p`-eBPP8>vmlq#YfFphLllf>3wiRPEI6XIGQ% zJfCq8qFsfrJ%0RnP|RSX#jC*ZaQWlM`^<&2ty=B-&kf#T85Y6Rn)P&aGmc06?mT|{ zxbLf;v@~6)5z}a8S7j|)Q$KXx>H5NKtjDgcw7Y6<6Z_Y~T@`Mog*hG{N)C;-7J6B; z(SOc4Xg3`8E=RenH$E>Be_a~yOXuHe_1;PtbhLDB-q+)`TPSL3Cr+Mxd$rE8%bFvI zI;gTSK_4D9@Aub;Fk$PRz#>_I_^tbggTo5~EkV%jCnQWVEfhl>XUioQKXo&iX1W%a z|9mxPbW}pjyDPsdtw0u$#W|BCZ{PgFeT^S{RlMp!VBp&@v*=2pW<4o+`Kl8v z&nU_H><-A+nuhW)iS$0QfIv7%fQvsv=QxxUGHKFLt0=Y3>HKVXcA*c)EdYGMDa2v| zAO%fK5#1K@8?;_`oZj-RV)%wpCa)9L=G5ZNFXF7`52jm+2h5!Oqd4x>L^+LzX{!no>)b-knq*np_RstqnuTNYkuI8U-39IBJQHmb}Zoi8i z_e`OZgzJK5Fdf_d=*7^JDY*VqaO4>f?|i*DXZd<*(Ty~7lMMpErHHE6(lpago|&-; zM=<@oDlf1~O2%MspzgA1@m8#y`I!}Gy6m^TKX?Dezw+{4;SN?EjaP;1j-_I-L+en{ZpXr!?2F`nZ+V zO`#_`dG_qM*L>h}4uUH_aDClwLy*c(FRt!?bn(pcxmNTlS8`P2bCrA%Ct$YkVLkKP zsDeWg_tu6`Y)YjwwkSDXv`k5D3;g(cLs(Q>gXs5a|qnZidNu|fPeKGu&HgSdM ztCp@G8m_Te-?JEbtgIoZn(mN= z*?4Ae@K-7FFoL4BRq8%RQq7vb{>=5w*{U1lFRA?J`lGp194#Z%MmYvN_a4!*3Wx<> zJ-NM&Lt5x}oY(SZZVRfsRayMQ!d9sXY49$JGHUQ(0%NZESj@PAs%i;xC>d0ZP-^ve zo(F#)8oJ#$vMai?8kGBB*T^vKr*Me3ZV5(9oD3Hx@nWyW?)a#x4l5erKhia|O0%J3 z|Gd+n7L3fPveD+^?@idKvX3*5b>=H(AP^%Vj8Xt=9b5SlL=1F}I~5ddcsDiz?j{=-*Dz;P-XF?b<3U`}dqys{qkNBDrmo26 z{JEE5xyxwA_yf~ws-Ko~uC$z!(rVit-Qwa48WN7G9PJ38`?NPHjRe}FejQ*<{Xz24 zgIdOutgK+n>IHd88?)YT`fz)qG<3*)*7k$xVH8L&T)4oG#FdCRfty)4HeS4R6_`Vr z(vi+a!zCyTqo1?{z0JAP^$L|$RVzzua*pWo(-|V=(X+2)Ki!iup!(?E-0<9hCyIOP zj-$xz-Vs!awhQnzcMY{=XKmaj=aCTz_3MBF#oC#^A6#N`%vcy3J5r1XgIZFH>Y>) znA7>p*7dZs?~KiN#@ziiSobC3w1A4*8XP(1End}kQ*C#ZMSNC^&fMZ)PPezVh-za} zGPBq1qt3L9Z@6aJv)Qv3sI#i89=pZbSYeY%2u_0D3IkK7wP{5%!I!#@%gxl~`ebj` z)W5Ul2$j)%)&cv|s>X69EKw(1uAHtHbLyTBX8Mz2+I9Kd@&|;okRvu3-|>pl_|+`a za_S1V!;zliBkQiI9H5%tMx*7rvSs-0GqEh8MY*wyO+Bl{vgMu| zi`Q*cU^-hC`*Z8lZ8<6fvA6hnO@r#@a9Z)}KoCHcfWF`!yS|oJLE%vmEtvz`nQynQ zZe-BdBiYofl(&)o_xMGcdm@o)!?)s`|4H>YtE}R?SFoi^t8@GEd;C!MWM{RHw52>W zuIu{nWo%bMN5+?fvvHc^C2{q?kHZ$Dps^w17z)620+ z1)6KK{aD#5>W)PHeT3h>WGMyhyn5c`iSIePXj+whDVF0B{b!$*ADE6~F1cj)Aw`D# zeU*;o>O1PgyMt%gax71W-qWu2-T3B$x?>1=jyr-XH0iLTOgQ%0e`?^gpIf!BZ7JI5 z+dl5``s$e^0hP_-dUgyE^!(*Hd!H+SYdh(j?Fnsp_%3^_Lf*eGD|r3N1;^oS*ua2? zH9fY5uXGPZ)ST{j0o8R*VGO3gzhb27O@sb}I~8iZX{qndrLVywbK47d^S1ev{cg_@ z#Kwd~AGg=b7@dCC~WF??#aPT|ubMw$nv5UF*>Utw5Ct>8m{U|BFHO&lo^r!-Lb=Yskn-UY^w`{@n z`Vc7^geKB0zGZK@;v?UJ4FFl{$!yq1W6%^@tc1_G4ls7u95IV>+_r>>6k)SOo8&iB z5_nc@G0cq;@o_e+?o#|&tE4&6aW5_@_Qb9Y-GU$b^Nd@1{Nfsm8CO(}nMZ{wdrvdf zs`!<3)xBKWzIpkc`ysvY1(zuXu?YR{-L>e`%Y}mA@8;q~8AU}}s-?N+Vp#=+^UxzA zA@9wbu0Z}>(49kGFYKtR0N}p?(2>f=oDQR|OGW$`x&T%@60u`NKM`8zZgzBZteP>y z|ARE_BzQPmckYx2Dla1=v(Cx@%Zt2H2JyHnJ~X3!>?lT5>47>1rz?KT%j-%zM4zjt zfdYc{cnb*V zKKttEz4r?TJ(|wGVDiqvPM0Ag;KXau73A#$IG(4Z+(W<1M<^0gp#!Q6ZGN>+WqfCg zm*yp@B9-?;QSbX1ZVH8R$a!4PCbwtp;!IBQ3fn5K`0l~Ma*PUl3%ZsHATzM_jX~mZ z2VjUoHI<8j*)@3uh05w`vT~7*pLM9fIvCtEUwrWsE8-$BLXM(tM0I(zB>~SBcDiLU^H4j_uB=0= zns#4v$~A7qPV;i!eh@r!!Ib0Eu>;|I<+jY~_a5VH*>?vV(N%SQ~~v~l+E;BIrn$i?l7h4Q0vb%t~|1pzsxK!IN-#YE41;kGFupT z4;2J0pI38JG;Z&*_Pu-82uEh)?g=7_MMaB-s^W59Uf$K;k_vE-oj-bja?Y!l`v6f> zB!GN14Gk%aWCvgvZd&oj>M1IXStu{c3UBlbD!2bl!cB=bP2xI|H`W zP%_q?ePepbF(mWiE)M6?rK5@^yPY{j)3mYHi8R(q(z@bpX73s#5BN-<>Cry$H&)sr zstLB#{p_*UOmFA|P4smgv|-q?Wkm_-Wiw~@QVi_SSPjaJ+_S+Y*;A+1BJ(Q)5`rB- z*Ty0A!&jpSk7|hQvl;9fTBFR02OmTu^Eh{QMg^;v#kBkMftk0~xFD_(39WfMG^}-Q z3UfUE+;{01z8Y!G++Q7fFut&`V^<2Q`S-EYcC99%3vtcC3mWjd=ig%DerG&sLPOew@3TK^Hs$Uh|jvioDDId32W&)GJ? z&W}|iUo8buGj}|Hgz1P4vr_>i)V_WMOJ)_FU2yR!YzOmpJ&H-ohHr0^+WyqE&}19h zx9!Y2w8E|P&8Thj#x=YG`?p4RJj@=ZzO3lmTc5@G_QryT!%E_QSPy7JVh?jKj1l>w zeo~KiE%fZmT3LnFZtf$@icuCDX4~yCt;V~p`sy$9rX)sic(=k4U4T!4 zEmsyDVBk=RR=jv|sAs`;H5Iy%-^U!WZ2jNE?(;W8c1eft@^A2a<|3YrzW8M9=XuR> zo5orj?Mlb8^ioEJH1Ta_nqrmaslyL;E1l70NbM`-PtKR8yO9=yYVWCL0!o@@LY&kI z=Vv|b(Zy{Wz(*E9fqW2c>{E_f;j};tYfSg?^MChzqNDNMY@%jgSbV}t1?g}>93|cZ z@1kSI^mlwzD_j-SWAm|=#1DZi#kKkrV{;kJ5!#mm#-gG^K0F%F)>BVTebQMzM0YBB zRB;%UdSoX#$iayE6S?igPO;+rCJ$^%Q6}(peBYxUdS~`bd11G9HXP%CA+X-2m9i=n# zPPTdaQ%~jSiXVwtD*pR;4)~lf|HSrwHCAysD~MgAhF3X#yZy}lB12ziljCQv3P-p3 zoEl3yy5dW^g}3;_mn9eK8@3KV*jBT~TrJC*MecDi-*UWz6Bjm4Bh#P0V>hlaOUqPd z24iC??NCQhS3*=Zf6$=c%-S=qr18ZfmT|P+I@=u0PFx0?<2xj}ZwkZiTzm z8h`V!xV1pwajGp(F7y4iaVPJ^ooC7d`h3c^wfSTZ|F|sc|5U|7&|01K`!CCUg||M- z8zI}U{0R@1Q-bPC4qA*C`qJ9k6ZG$w`|CNU97(U*AAP3s?u9s+Pe%@fTh>3lbDwtd z&5pmDDC@RZU zWvPEEvj2cjO4h}vrK>z_*OL8XwLcp1-=iwdU0zpJ)mtk*(GQBOBzJk}zSAon%5Lbf zYqMjpo`02}WJ5XbTsD4c%*rdIV~(=o+5+QNmeXeWu1H=Pi*&a7YcuhM`aXVqK6Aas z{}swU+j|S)u_4HYg@9EF7vv9E*6+&89ncTy0Mh#ve{-g_;Igs3D4e9hs}d0C9@C*4 z=q-5oFTS@YT@sB}qU47lNy;iB@(3ZIf5CXZZ+Cb1vxR35ByoOX!w%^wkCwG(3|@La zV|hCyIVG3eL8Ew{uQ?@EEZ(J(ku!;o6bizI1_>db@0+jvXO#sRVZg~(L7vEU73qey ztr2S8yxDg8^!a-%;t!#gvKunnr1()&6PJ)MwCPuvp!rt#V^IvlIsi{+hE~bT!}Yg8 z%%=JdTH7JyJR~NB%0MYmI|kRC$)QzZtV=%&uU`P;sR2-X7-+q-Py^uuWzu>!OXUKP$Tgt#51p z&BM#KDBwJ>A*<~78xFJFDep4^-J4fCy`&)Z<;(i{*`(yOw^kClTXurS_ek;D*wtr% zYf#xBPE^M%YRz%T=`LO_CV(q`Z}kKkHU%Q*cSP`Hr}~@ohTg_=f1T_wIc{VL_SijvGT zCrUKc1b+!jnl`bptE4LAeVlOBXt{s5(3*CZhz5D1D? zC^l>C*KhpqAwq}9A7X`A*5b4a1PumIo|sqIdj`Qb93VMz!J(lI2;|Z8x^%f1t*vfL z%*@P+5I@ebNKQz&gTLdtD&vY7sx*7nYNHIcAJA;U#Oqz5BRNm6gF26S?mE!;S;@P{ z;(w{%epuj(``u>w;zx%=otmoZaYS$6wDv=ub^3(A4BZFY0^8uxSw~7qe#nX_H=3QV z9Cnyac6{2nGP&p!XX4#0Fp8#z77Q%)&t!czmi;Gj-Zu8))@f)_pzjoSEw5{khli&X z!(Z@6>lh7LXo4!=y}iA`6(}gFRp8=W9`6X_(s*tQZL>YL#p&tkYyB7g{IL~brW$Q~ zwZU^}XlSi9hR7}cf4#kVSkHU=_M0&ar52ehvWzKHhDaGQF5|KikuuBBXvk0@Dx$}NmE{$o3i`#A1<-Bx|SpU?Y!4d;1Y z=M~lml}w{-mdU;>D#b?KWmA9qzab2?A)_G-w&Dx-ro^#t^OMv47;*4-`H`zBx4@8P zt_&mDGA8*2x9BH;v)>|(@!3M%b-wG`W|R3UKlfmq zk=8xH!Ax&-YQVDRL-%Hn_=TX{v6K=X3f%VJdnzbrTn338hUo2 z`aP9Vo3U@n!x-erhegQ8o;!7b-YAI)Y3Za+q56yJ2BsLpRu;kj#9!)!EmIRKn1 zzhYebqjT9fuU$*jERWJ=HE-KjAwK%|gd(h74oYVwMBdpB!=h2U*TLTlH;nP>=6${O z#+(Bd!NCQ2q4uT+2QD{V`0Y|+yZg%P&abNpGMk~&ZbHtY(_{PTUAMkbHnU%6_ph2; zeunDa-S&Oxb3tR)oH_TQ#mYCv87#Qzu`sH=v=6jPZ+t?Kp`$JUw#} zq(u%Mt?-S5U27W$(ZN4|$y~!aXB{iNsy3G`ZJAW~-*su@bVa51H<3cw4e9u;YQ?RA z`WH!iNg+qqBq~VOUU~bPc8g`RI=>$@>22-MR$(>Ib*Bzdoxf%EvX-~*T0P#y1zR=o zk1h3*3;fU2eQ3QIRQH%#4OB3kz1@~V7+l?zG5p6kz`_~%8o3y9gD5dIQv2z&ZiY=~ zmlngns<1)f>*owV0A??y2J0(6Y|Wd*(_snqG%; zsid^hneVOzl=xQPnH1s|UGViO$#PsvO|?_M(s#)r9NE$3B;$iL&cs9wW!TlZAtyEF zjm)r(BX~>cj-Ubz`pD|k2?mIHX7xTW+VC@a`?F`yTB6^I0dxLZn0^qCC|C6CgAN<5 zut3sd$P!Qk0QnfE>J`_i4B_RqD6mr8+^Ir?C%hrVel>6HPfhpz~%BEr7QK$?ZQG8gLB3uHhH!9f73RC{-0Y5FQhy{KYv$(DK@Fc2wQg42wp-H- zpSbNNpNH(s$f2h&8&kFK_uQ2Dt5I29MitcVNL%pq>BTjkGcTxEJ^XI~-VgyqhIPf7 z!H0L#HkJ@>9^nv+x4x*Y94QvsvIZ*N;_&;-gNMIoq0CBpXTN^j&B7F)!}mU1Z5l>7 zwmIsw;YU+-1>Wqk;vXlZL*+-gKOdLRYo* zx}BwbphLpjAs@Aa7rgwiGhvISozIqtIZuC(zaUrwqT2tXW>sY+xA5a=!z(a_Lxy|{t9sF@VWURsgY)gf z40IK}0t#O=yBPk?=JvcjyMxb{>});d{3qMnj@@Uc*xmZedRw;5z$dx`cZQss-h8Te zfYb6;{ZzlJbW2T*xcM>A*eQN^XvMTQS1KDctF$gq_fUpL#yel$9r}g-m_!yn4h>S zFE94d`TFNyy)qMPN(HPa&IJX%;TP3E4#;3UZk#C6m>Mx&zPuN(QXXTb*+8cYD0E^! zMd3>SYT~CxbHeg#&CE@FcL!bxnjXD;>x;Z^7ovJSSNBXV?*1riRP?jyU;p&h(jF*P zyjG%D&GHUX#Pi4AmVhg!J7U+_IK4nK4sC~oIeP6qe5TgDXT{^z^(WaKhn|z<(Af7E zJI;4Y-*M7W@yhpmL0eZIIla64*md(eXQ?Nz&9@1ze_+EXg_d{iI@7oe=yXB%{KP+- zC;rQ$05Jy7ZZr!dbmgmv4^z__V%)`0m%6LQ-N%b~l3&bUln$c# zGqK^E!hV_SgMq@XhO4x)>`Eu&kowWB{*|e_wG50$Px#5N7$4q8#=BdRyfFCo%vpn5 zJ(@SI;=Z|g=GmjktwwkaI8gYot^HiPw^0ku^&@>=p3>wbZS6sd;?6od|AA%6J9B-3 z>(AE8;|F@eH!aDg}VqHL)`LVw7#^d*B z&R!L8RgWk8HL4(p`py4{_phJRad^|Px4yO}pAu$r!@LYk^>lmtPTF&z?G*2b9z%Z&U1wrHx5vM93y@DmE6cm8`F1bD+E`c9Na;q{ zo9-X9Jil+FJ^4Gjrnjd354+c-ey83q{Leq=@jYv-jDa0br0MS5^5LW%at0`eQD)oJ3EeBBhS~f6(>_8)BTyY8 zc=OAZAsatcBz?G)WR)~MCWG2cV#FrXlWTSNX#xWdN;CG!`EH;Q7*ciG9QT z8Z-0#`&*A0wL0wI&wp42tk=>qyPl?IGm*j|h3c!XuP>r&@}YOjDMRXQCP^NXB9UYu zq5{-Yg8V~2R}Fs#KqlfK1*}jO19bz%`hwKI^*!p{ady)%GX?J_BVR^pdwd$a4f6Mg z&KV0$3%8dknhM|u2U^21eG)upZv%~Wt_$1w_K3V4mZnkt@wJIvt7~0~r?v4Ka}_E=CR)1+o|&V;Rqz13GVN{ z!#56Myh$6-_czuJ3dEUaVhTfJOa%e6zL5Dlkr)_{9Xn`fX1k?F5(IO@)aO2~$U_iH zdU$ymcFWfq=U)GO?vW&`z)$IFzvO9e8t*>+?Q%PmG0jFerfm7NVVwqV+Hs}H?()bv zqwWlN^KzQ{1a2bq;M#&weS&XI^82UBl$y&IgJ^%keYX4pj8#iik?g-*>0;%NEmXK| z&L}y$Ml~fZ#E(vfDiuPmoUQt`ZIrZV%2 zb)=t&*D*2wLQgkf)3@TWNuFL_QRa&*B#J#|bD9hSr?XjPfJ4L9<8Rk-5r zM*EHmBiotpc)v!qtBqlv(j|j#+R+zER)*~8mOd}CfA+koO{T4@x6`xfo3|8Za&7(I zHu-V>-!Ea+w0UASSV%sRdgyy6eAJV%k$QliO(mL+t0)7nr_=dQl!dlRmue=VN?i{R zsoeACPH*oDVGb}HJAUehqu z{&`X!<9F66Z%I+PZ>hCqg?H`koHqAX47`5F?)LO-uP@4tzD6Fl@@sv!U0g_0UrzfZ z<2|8MM*qC7$~P>OyydCRbFN(cIi_@qZuF=AMdc#=qSLQDo*10SlIqOtaDR&oElZBq z)~)qJqCXFvG9;&=Xc<_OP*Pf&d&bZDhIORozM36H^0^v)oAZ9J>d2B6O5KCfOG_O7 zXzusm&)R!=E7Dv49^k5f*|~@1hE^XgXcb>N?DTZS&%;|8{2z_cAisXiU2Ci2YFC7b z`uoAL;eMQHW$z@1X-Pwmbl&Fj7R_G3nKN#9vaWa4J$Qf2`t_BnE;?3Gtt{2^3-aTG zGGY%L-xadWe_cy8&6L2kRc7~Mom_L4&bx6d@N(x~pI(IMcK(?G#~q{8=}8avAuo&`EfIa^H(prGzT>s~bJdjw`6;2CN&7x$TM1$Fjs3MvFSPZa{rZ*ln|xl= zGt}i+;-iFhD#dY;F~KUmqJ9FVR)>hR*TBscVuFE;Y-f0QPzR=Z)8%EovFeDrS6 zJ>7ZuFb_g?nck;qUN-H!tUYpR*y|rlC#!}`$uBKfnm#0QU9V8*D@vw;rIjg%wLU3F zhDP`J`5g>fF^0e`{iqb|T>IiVViZSe$4Y!Xui-iCh>o=qxeCaYZ)kM4q&~k?{miW-xJI4;e)wUeF{-0KE zH~skqv{DUv#4qn$|A$WI{w@X@E$Y=Y4gGmQjZdu?xcb+h$%pIaO6pFGRjPo{KmUy1 zcLq4L?$4=q^6ku3tg>gtc31oNZ|Kb@+$qqeeY@ISODQd``^T)4B(dyF0dxGYF|7bh(hYFc0 ze|p(ycq<;fzdddFt(DeMuKE1E>qW^Y>*SE~TgJCU;<*gsfeLxZ(J2<|#(7<s{o zmfDV<6m_OEwifD73i^s#r0!4hwp$CV_Kv>y_RbeJr!umw(zfmU+)O>C$&t#Fe?21O zhX3`~wNh`^O#%Ic#=8C2??y3U)h)4abBlEW=jJf;gph?5cppPLwkGimJ^HP(az5Yq z-u@3Fb-QbXrB{<0<0BEooLrh!Z{_m|? zz0Ey_Dn=7(U6k0n+6{0c^FG>`csk{zmX=~lZiy|oxRm+AOBCz9TQ|d6c;%qye>a-- zB@oQwYWb@b;V)Mro||EAo{Wj`9sB^H2orNlEC&VqPBng85fmKU&T!KZj@hEci^JIo zET%L(Ov&n-GKO=T7h>8*S-yi|eL|Zk()^N@4tk8ALBWTn{q~~%;Y*U+FJG}Dd{%Fn z!I?dG#{QvqG}%e~8uLfQ2~axTVQeV`xw=mmhxbY2%{R1FeX4nGll%>j!d{9j5B_{T zcv_PdE%Gtuw0?Bu+CQs2J-$t3l!%+uyuF?WmFhu+y^71`jke&7ovSgE>}U^}YL~t$ zG8}sN*!sM7SQRzUt6mYbSFv(5OAC4_ySuWe`|#{S2T9|= zuj^b@h%z;^sxS9P9St(Sjl#m7GBMmbV`$w+3bkl4V&upzeWEMf^|nn@zLR6S$Inl? zClq#y1%IW3*@&Q%Dc2O#20N%k?3e;Ntiezn9)H+NH|*4-N0Wp1Z^6{>y8rGC0*r1z zzsz*n@oPSq_0qCe;7jmhAbb&iEP`TCm~?cgT5#GueAK_eGJMF0jtn_X#E$RV9B-Pb z)E2DvR%2rR6yj)R`bq%aX3U+tD{c8ZGDPld44bOI}Puo zIbHYo`g-u+8HaqH(Mr{-fBA*+N==$%lknfr7v@Th<6rxudz-no_1LH+%AH!IkRYT&mY7u=VT#&QO*7GLC37{*~f~`_i62vM5iL9r!wKd zTfI*?{efjw>}b*3zkk1sF~c}KhLY!Wq`tMjiXQwlZ_4`GyVfj&d=cw348ZgVO1js8 zk(pIrk+O&LoWvy^BlX(|6mGH4z|N1HE?+ws0~yc zB5xS&);s})FpI}zsBFoSZp1vp_t!nfKbdA?a*HyFw|bIBvY=qOOrB9+j)v2l64;XC zPmlEC%Bl{b*UQ^uW}-B8cv&kDQ~}_n2E|G2;GR7y+h=K|YNb7U)*lWARj)6!n4O(n zZ}X^sWN-#Rn?lJgz3>c5V40nvVP$a9m&1nVN#3@WQ{q9v_U})7dqbPjX7iH|Z-M+y z1q9Sbu>tXapV3j5c$NFhFOwFwr7d5K5ZeG#sTg)O$kfg1f~R*Cmv+*6GYlKl69~2# z8A$FhZxv@QHT5rK$NZMtSy}%0&B!^08qmig%EQ}xDcU7YfZHw4HiPfB_zea0*5oC* zZXK*U>FNC=%`N{1`1H+xdd`s0&D%&yNom2!dT3BOi5hj3v2jDP&lzATg-M6?b`Z{C z2c0%Cd=|^Jj3X2bAs~l(xm%Ym4M5O{u|gF}Vr+}2euYNut^p6}YJ3H8CUS0Yt=-Z< z@%tCOnmzS<&&Mt3{M>7MF^~6!jO;uAMnhu02Hr$#c^C`ARn*jOp+qP5@Sy+B+3yiC zp1%C;+qaKcuOMJ4x<&ceYHDiiF+mn}h+Y?oIHehPicJ1z>xW9!>YKQH!h%~01BVLMdTBUvad&uvWvE(Im>S*Je-C3Z5 z8p;xbJ8IMctSo>4n2hA>9G{NXK_&zYm~oI(M_KtLGOk)Fv2V=t=_p6<{hNy1DoRhy zZ%ZX9DnD5fibhfNoC-h%T?Y)@9QIf(jfM zx8P}0)N4D!i!Eqc`t*@WuQzL>37k3TcTSP4g#;HvI^kpRZdPd8wCPps_ z)ueptiojAGsUQNSS5@uOa!bP4_by2b=6o#PMVm4vQ_7sIsfn$r`=vbI5=?tAc&h)@ zY0IP6d7;mqx7HyLs7cMn)he|P)+{p9{ENar+%lm)_eUh9vo0-BA^-&hXkjPj#T7lZ zZ^~axljuz3jpKJNVuywWu?f_73rWH9sb5pI{B3HwF;P1*eKNI7m$AE!pE|XTdc$I^ zg)#P8si!?F+=6PF&E#rq+GNn$bNib&3vA{v7dBzSj;Y^!YNh`3^x3nEC?dre5cSg? z=xDoZb4QqOZWNc1k1Y(U{IloI)hjT3!v5^tOlMS`DRmz|y2%`0qA`mcjm^y36Ny}2 z4C>i)M`daLfVH1y)s%RUz4( ze{^Z-)S9B&8gJx*d$GSNj;pPv1K8jg*Gk3$mR}C~KGE1Lh6pOr6PgKMb;+J{S3e#@ zIL=uc-J$uabG4U9pPzXw6$~449oJq8?nrL`OG?rHi##fZ&id=G8!~*yd`nwuQ-~*} zvE~pQHdo)-Uz5wszp4T2c`@Z-&a|`jgBuAnzV}bv&Ky$;8P(RUpPgl#vZRK}or~>A zlBIn6QE20m%Lncw`=9IHS#=q5lKleP5#rccGvN4VKOLgIZcOngLB=4_9rF$?{f1{# zJ;cj-#Gp>xV*awlF*gs7scF!A6rUxOtH0A}6W$%)?C9Qh_y#@vkdWlo)Py z0j9JscwOfDe07X23(SX{y!NQ$EFEKLDe=$v@ZrOQ!vj4@LWH~?Iy$H&-`EaO9?}u! zdk=;C7b?qAA*#7t3tw+kRn3w|M%wJEuYZUvN;!82i^glPn2uN?)(u3hf@7~_yO%GF zI=fLuWK1+8vi8P}%Hb;37gx9yk|&RCDCkKjV0v1#$ifgZzzIJ9^Y0e9JpRLKd(@JB zab^_b5!M!onMJ_<&@rcOMFT>3czP~G7^2jAj^BW#$|9qFPhE}mZ;A7ImKG%F=N}o3 zbb&pXlH-zfW9ln)UfB;h{%{njLvpsY^bnq#GF@ucrI>UOg*Hy8CUVUuzRugQVEAT;7r zX(6Fii5{0|pNfJ)lXttRTv1ti#I8G>6K)BzNn^ZN=-Md)V)tFj4DiACim9SSqx$gN+&?z zK;LMng7)|C-pzs1%i~1n)e^)MVmcp4FU;faE}>%--XAN8_5!S`u-2RdYFzH)=XamV z>rXBjerCrl;+z#SC$j45_U3vGWWF2qet`GJjc`#qM}#;&fhbi_`Ej&bZq zKp1E|8NCUR_tY zD*yQ0n}~&kJ`pvzBR%2fs1;Vc0_uI_y4l|<_nOq3*{oRjD!QhPS?>`6WmcY_t9!7* zEtt%zGv^A%g53#(o1RHi^oF1_A19Pdo9hK>E{-xWN!2BE#wMon4GT`w0Zd1zqGmcb zLC|<05=slmU>n(uaX~PYcC;Za42l(`hwZ7Y-JoEmQwHq-Wo`R@28%(h4Dk<{Xi;AQs9(j%X-j(i9ZhW zJR6Ko?(~Q-X2NnlKX~q@l3Sue6p9UvlGJbf+{eeG%Kn)#Udw*(?jn! zmv`Tq2B3r@EXF+wHtqA7Nlp!yA9jY7Z(D92+j%C9uINH#vYsAp zA=4%7-je#%skNF<>pqkO5+zW4&|VVQf!MRoH+gD!%fycJrA_I zX{B}}*SOkZq0_r~QZgaf$!83rJ_FxyF3tu8-FRn@`dy@o?_XaV0C>#! zPfPd2kvJk&fK8_ERsU30N_{GS&)4_;M|rwE%LY&8hH?%lwhm$NJosi5{Ucc9vapN6 zu|O>6N~=`s#l`79bDzb9qn3Pfa$F0#`ESHcy76K=m#Lu&!R^qG)V=VGC^h1tjI5J; zODZZVVjnka)(lE^2}&ZF)~BDl$f}l~2%7ki@wj&5cIITM;?p{J{9L1bd-ui&SbX49 z#o)Pdp=ZB4c?@I`woFJ#MZ%&$j~zQo<`)5n9TTae4CrBmFn0er?9`CIwFV>mR+773 zd^_j?uy}9Gy)-N+2|u9_dj~6 z;5z_w=0G!b>D;*<|KR41mg}KwWY{`VD}F(^W!uIyI5cQ`4jvqb^p^yi_Na}jm0g`= zXsE!-(i|{T*J0&gzhtT~+VDd|*Ypz3na#wAvr2K61SnChJPH~?fV`8E(!FQTa|z?m zeK+!()J+6;mzK7mvhL3ZEi+l?-7|Ubi{?%Yxln)FGPlPn`iYj7ov6r3mWT0Lx&#E- zxNvf}mQ(;I5VAZ#Gcc>VaJazW$cFg|Np|zfE`dIhNQG*X!`;&4Z!`V?z zL&?NwcA}s3qQqu;X?Ju=4CA+VFnHN*9fa@zruxkBU7~@To|KjmCso$cN1Y?c(* zTy+kuNp@i@(H{JyKQPL1>(dudk{@Cks3o4Y`x{e|r`A0z=JEd5kw%Dgs46Db-$_{c z_BVwpK~0&x1oNpmGYgp=2gjq@Kv!q+f*w*P`4G#=b{lb$VV{v3GpFv+F_wB$ z;6%DuxDF}gFw8!NO9+k9&bx~OC~(Ni{EvJ5du(_a%**Y~lZJVr{ddH%ezgvnVigye zy4D?(P18Fmk>jfTV`f@=HMKD;w%HOD_EEA6l_I07=$hkkZ*Dhq_1Va+!Cn8_oVE?v z&z|qP4?8KQu&y$UxnuY444XN1ykD8}7W#FBiCv`s6Pq04F=NzoGkJ1ebppCja)oxt z)ve@6&Nlx;lp6nrDfiiUThl#U<=>l4UqKKYOoZce$atdc*D0py)=TU=e$u2<+}pXf z361E|e95jdiN!EfzPjqPJ{%9AcaRl*if$>qhp^(r$+7WdSI$QOgeDga@q^pGsfLH7 zX99c)L)TS(B{Z}*p$4hHhYY~Nzqlg-IHYSH)$x7^-{7CRZ;Roq)8LJ zRDya5Sw$=GrSa)!Rl1k;K^$;lzo8TPT7(Gn>MI_diHK;0u7VwtQy-2rzS*WO`COzf z0#FE`6wEZ4dvr>7dTb!v{@_eFrhi^lv^E-mR&Wi0APL-+VHLon%yj!vj`fxcN!DfR z&5k8e7g&sjMO$00oZxxusfyRzsFtYLNt!L_YrtG|1COq4PxjA@ zFQ_PR?Fm?ly~(t7>c@ayaK@8L%WTy&W3%%{bFQTU?d0dnK2IrkL}*Th{s0+2TQLNI z7?5Hh$QuzN*6?Vz38R}ho#$4AJjZV=Wdkg>PiJCcI-+V=vu2I!;G)>Y+a#dSmkZqA z_0I$1W^ZxSjl!och35qOPa487gw*~7xRxC{L}y*819b0+!W@MHMNn29a0C;*zT{S$ z%l5&5Td=Nv)=|H076Ji;mkSNVv4{sPd`0HwTH-=BV>nu{nA99HkV5(-DuX^iVLGkv zHTiI_uuY%vPm=(i;HtRK*SCq}<^)##y@Xl^2q~gj5^U|l>t0$q^Q!M% z0DXSz%fmxnVUO3(vEaEMF41*0B)L$D!Haz!QJ)uy5}{y zdbi1j4MTa{{b;~76oj9f5_oC4he;LyIuCb`kB@kpjpSJKuDHuL@I?~Jp{|v%Ux5r9 z{ENwh#)WG0)Y~Wjyuori0ht87j~P6ZQ*`O&1NL^lfW2kNWqHKC10Li5JR^@FA(%Tw zsLJ7U+NiuO8a6c>eSjGANmK(v@1(06GSUxbi-wlo$53BURn-Fh1+SQl=Z?7-ED2xxfojzjivzXmq_`Z52v^A_Q1*}OCWyM8=ZK7cgfnB7KTS=|Op6|3Jx zdqD}+qi4?(WOESmzN{}En|Q9pl6NyJSG2Mm*qIVKv*DGR1`S6{pRNj&7{JTQJU#eh zZ9gPIl2Toyf&5eV+RbSD70Z?_J2_~{rE4QS@G|!uY@-4Fx{^_HXw3s`*8F~4qNyuv zHNXb^ka(flJ2*&ElDRw>JDa|d4A5OD8{NcQw~e3>0yQ(=6c9Uic*CY)hdY7h4YnAz z_LJB-%}3JxnxK%GYRybPK-3$VQbm4rTha*ASw8ITg1+l3(HKrHucYJU_QKYzc{aN zPb)}n6}FJ>Rg*@Eim6dz-(~4nF3hwZJ}RQ={FbIh)-%zTw3ln?JOiSdd?HLGn^47X zN~#D@F=VB{BQjD&NBk`MuV;ejAWLvfYdXf*EWjy$mO7mXI!*S1{;sZ`VOf>{t7*@w zbXDjF%HH3aH$O#Ma8JxJe{70eQvzfbCl2A;+h! zTeucTr9X*Ti~yxpit)jT4Z30_o;4K~X@s;Oeh?iA+kJkgJ~q#`B-#p<2~I~Hb- zQn?SRCl9{U4c``D~a4Ktu zZ310lu0Ye!wb?>au~2aVglFd3DS`XwM1gWErXi1fB3<@&piMr}r|OF%>SjrKbXq!3 z=~y1JOhjZC;%iy4~^1LM%-G6jU}OY+$UefjZw2XGHmI4Wns|N0gc6X8()3TaS_mLxP%j!+94kgdo$)yHD zrKWPqxSlBDCVs|_E*j42y1;E>YASX_p&ag*DL_pi0+#fSvaz=OqZI zb;Ty@A>7mTbaoxwl~FX*KuC8o3xW1;EWdmag&wRGDqy8!!ccsCrZgnRVFLuS$gU5s z2+@DLP_H|~pt(>T1_hx5DEr~~4G8;>EH_f+2r(|MM!Xf@NoP)G;%4TPH%U!&y7l9& z0*~JAdT{Oyh-^os03!7!4ZV{|*U;#-e1E{3r@MXP=DaynZarK37?=or*gMyL57@OwU7@mqVDW} zdOo51(T4F{?hY%nqSj~&iNzI{ww#Bp*Yq0SoLryFs5Y3tuEM{4 zMe)W@xydbi!GHHJ*Wn$5R|PyS7bKQU+F;G-E;iAHgJkNoP+e=bQPGo{JkM7EiPBhr zs+{C!3xyz_2THG4{@}BJzfj)mao3jGxcd>?`UlO|wlhMa;$NO&9a#!*_&C%eu5mh2 zrr#cQibn(|-(RF;#HXkP2Q)ZHd>ku=J<>mcy;#uhx;X?N0ie*&P>JK;g9m%NbYKrHs8q@(5E=P`m{N7 zJ~|ol$N>9SU@mbq{$oj4@BhV!@iOm)_)2sJe~ zzn=BmlZwIhzO%CI7WQ%CEsB9d0L6raL@6i$cS~Djneu(}fU@68S5E^jmftQz9u%Xq z?oRrRt1h&WvPA$5CNUkb$5ZI*kjHlViZ}-pAc6!o*mL;stL(O*R?Gih)19}x`)BE) zKx-fZjU3xB&^vU`?s0KOvYan6nGw$MM5Q`Hd~}*zzOh~%?*eee)RTJdArhU3=nHJ) zpZn=MbR#mxU@nIgt$ttjrid6;;xd$#^2bdqFHDwOEAmRLx8G+(S7=^w;l8~j3}6Oz zc3uB6QPa^qQ{*HrK4_k&9;7%8Tr;kwOl&0;?%cVPO{C2uWLg&wsJafYSnt!|@gIm% zfX3I>g#-ik`0U*~3ds^Yz|zc^^_f=$!ye(<^nCTv8HhR^@*d=HYZbG3RQWtft4E*V z3v;+rs2T$vJCw2F1#QuRiXzF)4A1VN(0Kx3)Sz4*`fJqVcy?@dc&P8rZz!cAcOb7} zNNN{fUA{&t=HhECa4qr=4h~*Vcx^XmpDS2GRTXea<$;;F#b~Whip_2aYahf=xrab?tgO!N5#$Xdp=3hDa1N z>w~w{?3BRoYw^)CrA;SZEDhk{? zKC8Gkk89Q5Af&}9`atD^vgV1)B35Osm)$J)!11q_I zC)svRS1YP=j+K>PI9_#~(Kx`sllQJhL_{?B>~P$F0z+wPot9c{uLTT zmrH7@|5WK+G^}Nvy`tFU0Mft-D@fdvj;U(+*yfhPMx)9;rQw9&p1aTc~6>*{~2 z#`*KOOZAsg=?OaDyj}loGN^#A;iwd^$mqI!A6i!Q*w@$Bb%Xb3?Vde9mF2 zAvO>8{qbYGKAoVzDTuW=LSs{kY`P|HC@ZznF^`H!Cxkexdq~Aiw@#Vx!LzaON;cKjBRhl9; zld&T^Fx&ntXAtQxiZnt$)pr}2*C6mNjjK9F{doi;Pgp{3zl1@eM$u8zkJGfDih2^! zm>AeH93bTmN2`7qlVMcHL+G+we0V`D*V$1wa;bkDWa1!N2~muTh)gS?7G zJj8G$*g{xCiH)M#6y2@xHjFEccD*87*dVwqxmUf-B0T6$5|zV5hbdLMG|T98V$xBk zjIAT^C9v?!vxZex`p6kq)znOp5gXbf{EWa=#mk`jLsl;JoX76n@6fa6(_o7fNy=OB z=&*#Xja{UQr2yaPiztc09hziggY(pP9+Iz&I#9H{G}>2Uy5tbOdX++XVB-jI|wT z=)ihkJ z4m&6#zEKob@*f#Kga<5LQ$gf3`*-#;Ug91{h?Y|u8zIpR0flc1UzoJu^74XN{4|SS z02N13Yx3crpHF^^&;K~w`v2dU=zjn<@|pNh|F1L2|0_(Wu(qE5{kZK7-@nh1Mb;C> MOfe1_Wx4hL0zEGf{{R30 literal 0 HcmV?d00001 diff --git a/benchmark_results/plot_result.py b/benchmark_results/plot_result.py new file mode 100644 index 0000000..7bb6ad4 --- /dev/null +++ b/benchmark_results/plot_result.py @@ -0,0 +1,43 @@ +import pandas as pd +import matplotlib.pyplot as plt +import seaborn as sns + +# Function to read and preprocess data +def read_and_preprocess(filename): + df = pd.read_csv(filename) + df = df[(df['latency'] != 'error') & (df['memory_usage'] != 'error')] + df['latency'] = pd.to_numeric(df['latency']) + df['memory_usage'] = pd.to_numeric(df['memory_usage']) + df['resolution'] = df['width'].astype(str) + 'x' + df['height'].astype(str) + return df + +# Load and preprocess the data +lpw_df = read_and_preprocess('results_LPW.csv') +sdxl_df = read_and_preprocess('results_SDXL.csv') + +# Set the style of seaborn +sns.set(style="whitegrid") + +# Plotting latency +plt.figure(figsize=(12, 6)) +sns.lineplot(data=pd.concat([lpw_df, sdxl_df]), x='resolution', y='latency', hue='pipeline_type', style='precision', markers=True, dashes=False) +plt.title('Latency by Resolution for Different Pipelines and Precisions') +plt.xlabel('Resolution (Width x Height)') +plt.ylabel('Latency (s)') +plt.xticks(rotation=45) +plt.legend(title='Pipeline / Precision') +plt.tight_layout() +plt.savefig('latency_by_resolution.png') # Save the figure as a PNG file +plt.show() + +# Plotting memory usage +plt.figure(figsize=(12, 6)) +sns.lineplot(data=pd.concat([lpw_df, sdxl_df]), x='resolution', y='memory_usage', hue='pipeline_type', style='precision', markers=True, dashes=False) +plt.title('Memory Usage by Resolution for Different Pipelines and Precisions') +plt.xlabel('Resolution (Width x Height)') +plt.ylabel('Memory Usage (GiB)') +plt.xticks(rotation=45) +plt.legend(title='Pipeline / Precision') +plt.tight_layout() +plt.savefig('memory_usage_by_resolution.png') # Save the figure as a PNG file +plt.show() diff --git a/benchmark_results/results_LPW.csv b/benchmark_results/results_LPW.csv new file mode 100644 index 0000000..ce1ccfe --- /dev/null +++ b/benchmark_results/results_LPW.csv @@ -0,0 +1,9 @@ +device,pipeline_type,precision,width,height,latency,memory_usage +NVIDIA RTX A4000,LPW,single,512,512,10.99,16.47 +NVIDIA RTX A4000,LPW,single,512,768,17.08,16.39 +NVIDIA RTX A4000,LPW,single,512,1024,23.58,16.37 +NVIDIA RTX A4000,LPW,single,1024,1024,error,error +NVIDIA RTX A4000,LPW,half,512,512,4.11,9.66 +NVIDIA RTX A4000,LPW,half,512,768,4.92,10.97 +NVIDIA RTX A4000,LPW,half,512,1024,5.93,11.9 +NVIDIA RTX A4000,LPW,half,1024,1024,12.06,16.14 diff --git a/benchmark_results/results_SDXL.csv b/benchmark_results/results_SDXL.csv new file mode 100644 index 0000000..a3a5a59 --- /dev/null +++ b/benchmark_results/results_SDXL.csv @@ -0,0 +1,9 @@ +device,pipeline_type,precision,width,height,latency,memory_usage +NVIDIA RTX A4000,SDXL,single,512,512,11.12,16.49 +NVIDIA RTX A4000,SDXL,single,512,768,17.46,16.39 +NVIDIA RTX A4000,SDXL,single,512,1024,24.04,16.37 +NVIDIA RTX A4000,SDXL,single,1024,1024,error,error +NVIDIA RTX A4000,SDXL,half,512,512,4.91,9.69 +NVIDIA RTX A4000,SDXL,half,512,768,5.52,10.97 +NVIDIA RTX A4000,SDXL,half,512,1024,6.01,11.88 +NVIDIA RTX A4000,SDXL,half,1024,1024,12.13,16.63 diff --git a/scripts/benchmark.py b/scripts/benchmark.py index b9a8299..5229e71 100644 --- a/scripts/benchmark.py +++ b/scripts/benchmark.py @@ -72,4 +72,4 @@ def run_benchmark_grid(): writer.writerow([device_desc, precision, width, height, "error", "error"]) if __name__ == "__main__": - run_benchmark_grid() + run_benchmark_grid() \ No newline at end of file diff --git a/scripts/benchmark_lpw.py b/scripts/benchmark_lpw.py new file mode 100644 index 0000000..20acc5e --- /dev/null +++ b/scripts/benchmark_lpw.py @@ -0,0 +1,105 @@ +import os +os.environ['PYTORCH_CUDA_ALLOC_CONF'] = 'max_split_size_mb:4096' +import torch +import csv +import itertools +from diffusers import DiffusionPipeline +from torch.utils.benchmark import Timer + +device = torch.device("cuda:0") +prompt = "a photo of an astronaut riding a horse on mars" +neg_prompt = "blur, low quality, carton, animate" +num_inference_steps = 30 + +def get_inference_pipeline_SDXL(precision): + """ + Returns a Hugging Face diffusion pipeline for Stable Diffusion XL without LPW. + """ + assert precision in ("half", "single"), "Precision must be either 'half' or 'single'." + + pipe = DiffusionPipeline.from_pretrained( + "stabilityai/stable-diffusion-xl-base-1.0", + torch_dtype=torch.float32 if precision == "single" else torch.float16, + use_safetensors=True, + variant="fp16" + ) + return pipe.to(device) + +def get_inference_pipeline_LPW(precision): + """ + Returns a Hugging Face diffusion pipeline for Stable Diffusion XL with LPW enabled, + enhancing performance on long prompts. + """ + assert precision in ("half", "single"), "Precision must be either 'half' or 'single'." + + pipe = DiffusionPipeline.from_pretrained( + "stabilityai/stable-diffusion-xl-base-1.0", + torch_dtype=torch.float32 if precision == "single" else torch.float16, + use_safetensors=True, + custom_pipeline="lpw_stable_diffusion_xl", + variant="fp16" + ) + return pipe.to(device) + +def do_inference(pipe, width, height): + torch.cuda.empty_cache() + with torch.no_grad(): + images = pipe(prompt=prompt, negative_prompt=neg_prompt, width=width, height=height, num_inference_steps=num_inference_steps).images[0] + return images + +def get_inference_time(pipe, width, height): + timer = Timer( + stmt="do_inference(pipe, width, height)", + setup="from __main__ import do_inference", + globals={"pipe": pipe, "width": width, "height": height}, + ) + profile_result = timer.timeit(1) + return round(profile_result.mean, 2) + +def get_inference_memory(pipe, width, height): + do_inference(pipe, width, height) + mem = torch.cuda.memory_reserved(device=device) + return round(mem / 1e9, 2) + +@torch.inference_mode() +def run_benchmark(pipeline_type, precision, width, height): + if pipeline_type == 'SDXL': + pipe = get_inference_pipeline_SDXL(precision) + elif pipeline_type == 'LPW': + pipe = get_inference_pipeline_LPW(precision) + else: + raise ValueError("Invalid pipeline type") + + latency = get_inference_time(pipe, width, height) + memory_usage = get_inference_memory(pipe, width, height) + logs = {"pipeline_type": pipeline_type, "precision": precision, "width": width, "height": height, "latency": latency, "memory_usage": memory_usage} + print(logs) + print("============================") + return logs + +def get_device_description(): + return torch.cuda.get_device_name() + +def run_benchmark_grid(): + device_desc = get_device_description() + pipeline_types = ['LPW', 'SDXL'] + precision_options = ("single", "half") + image_sizes = [(512, 512), (512, 768), (512, 1024), (1024, 1024)] + + for pipeline_type in pipeline_types: + results_file = f"results_{pipeline_type}.csv" + with open(results_file, "w") as f: + writer = csv.writer(f) + writer.writerow(["device", "pipeline_type", "precision", "width", "height", "latency", "memory_usage"]) + + for precision, (width, height) in itertools.product(precision_options, image_sizes): + try: + log = run_benchmark(pipeline_type, precision, width, height) + writer.writerow([device_desc, pipeline_type, precision, width, height, log["latency"], log["memory_usage"]]) + except Exception as e: + print(f"Error with {pipeline_type}: {e}") + writer.writerow([device_desc, pipeline_type, precision, width, height, "error", "error"]) + + +if __name__ == "__main__": + run_benchmark_grid()