From 33002925f87332f8bec16733e215af1f9a40c5d1 Mon Sep 17 00:00:00 2001 From: patryk4815 Date: Thu, 24 Jul 2025 08:03:45 +0200 Subject: [PATCH] bump: zig-0.13.0 -> zig-0.14.1 (#3166) * bump: zig-0.13.0 -> zig-0.14.1 * fix * fix musl without hard fload abi * fix tests asm * fix heap_bugs? * libpthread.so.0 is required for glibc 2.33, see https://sourceware.org/pipermail/libc-alpha/2021-August/129718.html --- nix/devshell.nix | 4 ++-- setup-dev.sh | 10 +++++----- setup.sh | 2 +- .../host/glibcs/2.33/libpthread-2.33.so | Bin 0 -> 150720 bytes .../binaries/host/glibcs/2.33/libpthread.so.0 | 1 + tests/binaries/host/makefile | 4 ++-- tests/binaries/qemu_user/Makefile | 6 +++--- tests/library/qemu_user/conftest.py | 3 +-- tests/library/qemu_user/tests/test_arm.py | 8 ++++---- tests/library/qemu_user/tests/test_riscv64.py | 2 +- 10 files changed, 20 insertions(+), 20 deletions(-) create mode 100755 tests/binaries/host/glibcs/2.33/libpthread-2.33.so create mode 120000 tests/binaries/host/glibcs/2.33/libpthread.so.0 diff --git a/nix/devshell.nix b/nix/devshell.nix index fa1d74abf..ca165184f 100644 --- a/nix/devshell.nix +++ b/nix/devshell.nix @@ -63,7 +63,7 @@ in curl parallel qemu - zig_0_13 # version match setup-dev.sh + zig # version match setup-dev.sh go # for onegadget command @@ -85,7 +85,7 @@ in export PWNDBG_NO_AUTOUPDATE=1 export PWNDBG_NO_UV=1 export PWNDBG_VENV_PATH="${pyEnv}" - export ZIGPATH="${pkgs.lib.getBin pkgs.zig_0_13}/bin/" + export ZIGPATH="${pkgs.lib.getBin pkgs.zig}/bin/" export REPO_ROOT=$(git rev-parse --show-toplevel) ''; }; diff --git a/setup-dev.sh b/setup-dev.sh index ab0d65363..ee3c6aac6 100755 --- a/setup-dev.sh +++ b/setup-dev.sh @@ -94,9 +94,9 @@ download_zig_binary() { # Install zig to current directory # We use zig to compile some test binaries as it is much easier than with gcc - TARGET_ZIG_VERSION="0.13.0" - ZIG_TAR_URL="https://ziglang.org/download/0.13.0/zig-linux-x86_64-0.13.0.tar.xz" - ZIG_TAR_SHA256="d45312e61ebcc48032b77bc4cf7fd6915c11fa16e4aad116b66c9468211230ea" + TARGET_ZIG_VERSION="0.14.1" + ZIG_TAR_URL="https://ziglang.org/download/0.14.1/zig-x86_64-linux-0.14.1.tar.xz" + ZIG_TAR_SHA256="24aeeec8af16c381934a6cd7d95c807a8cb2cf7df9fa40d359aa884195c4716c" if command -v "${ZIGPATH}"/zig &> /dev/null; then ZIG_VERSION=$("$ZIGPATH/zig" version) @@ -124,7 +124,7 @@ download_zig_binary() { # Delete previous installation rm -rf "${ZIGPATH}" - mv /tmp/zig-linux-x86_64-* ${ZIGPATH} &> /dev/null || true + mv /tmp/zig-* ${ZIGPATH} &> /dev/null || true echo "Zig installed to ${ZIGPATH}" } @@ -302,7 +302,7 @@ configure_venv() { if osx; then echo "Not supported on macOS. Please use one of the alternative methods listed at:" - echo "https://github.com/pwndbg/pwndbg?tab=readme-ov-file#installing-gdb" + echo "https://pwndbg.re/pwndbg/dev/contributing/setup-pwndbg-dev/" exit 1 fi diff --git a/setup.sh b/setup.sh index 89d97fe09..7155ed209 100755 --- a/setup.sh +++ b/setup.sh @@ -122,7 +122,7 @@ PYTHON='' if osx; then echo "Not supported on macOS. Please use one of the alternative methods listed at:" - echo "https://github.com/pwndbg/pwndbg?tab=readme-ov-file#installing-gdb" + echo "https://pwndbg.re/pwndbg/dev/contributing/setup-pwndbg-dev/" exit 1 fi diff --git a/tests/binaries/host/glibcs/2.33/libpthread-2.33.so b/tests/binaries/host/glibcs/2.33/libpthread-2.33.so new file mode 100755 index 0000000000000000000000000000000000000000..c25e1957b4ee21c822de2db07d2570778267e1e5 GIT binary patch literal 150720 zcmeFadt6ji_dk9>P&Dm~d9AE4(X`S)v!o;$g*+4#c}btjkhmntEtnB4%fXomkJBWU zl|9|;Ze^uiQA@!aT3KjiK9z-*H4~PkrD!F;_u7{;ha*$Z=lOhp-{0?#=lDA8z1CiP z?Y-Atd+oK?+2Fj?^eZDHA{6;_P_9r2YIJc-GEbD+v5_LDD9Oqwr5k<@R?bs80vm-l zS(IAS-J+UIV+36Xq*SkQK5yHa_7ik6wF#K0sb08edLA#4sUj*;y=W>b<>l7YewgEB zYOcrHE9L!EEa?TQyq-+W^++}|-sSaXeAqT!K!td=j_0YYN8+NQ()T!h>Grm1ypX3% zr97#R^!6pewv)zlv?5b$Jx$cJrYWMHOsNfeChm9S{wM8aih7EhkIR~VC^{xn+1_=i zCq%|O@Haojv?~)td*S9`sTj9RMX#7FW6=ib%=l|2D-e4v^+k{?kuDCK>3fQDqOTdf z;jDSyTkW^M@_5JTFML*(x@*#>RG<1qb%=%@;wPq*!HWP~4}xC+-GO%y!}1@)P5B|n z|B3e-f$L!^vm<|0z*2q$UMO(pWQz%S+mxs5=K`LA^aYWpL zQq^U#hKxr5n~^RPd6`^Jf)Y=HDQ`#qG~j28vauq4K%|tMgV$k#W%f$JC!JEfXUhVl zS*H9@Q(k5ZWCrQQf)Am76Zml=?Pe+yDCI7Zc@k+rB9W$m_Fe&BA?n4oQ(p(oaZ|n5 zOnJ(li+2j%6?jjJQ}#u1b&c6Wj$;984!!{MuP4!OW`Ge zH(79I@L>Q;@jhZkiu|`o)7rrkYJ&-%*-rnCn93=8iv^ZoCNk$qK%~h?V@*7JAm41F z35xs)6OOWP3HW-X@uL12CO)FL-6W}9tfJfm{B3x<;BCZPiT7i?^!RvU{2YMXsRo2S ztDUyfMfv$C8`w_yg#uS);$zNsG6SakYEwQ@@aQFQai+3Mk-rY*=bG9+Xew_nTMy(e zyu0z%nFy{DJia#J%-O-FHY9!>GWX#vlL%AlM1CXQ&Z6EE$k*Wg9q%7_@5C#g?J^_M zSPM+xnc#DU34a~(AK)En!clev-VgDlOa#yUK;3RaKZATZ-W(H- zva9f3BXBC}smSN!eH`ys0#C_{rhK%>UnFE;DpH05myGwY8EMLI6Zui?)TN@+f!`-+ z21{C`oq+!i=_I5Vh`Q3xAhIz6HQEI}hlmWWKXNEeCp z3#5BRzP;ou3v!PIz7=qHQ(MDDz7Y6Bg0?Ht2D}=|E)Y0#l3@mrzXWv8n{eHbzf!;z zCOlM7j9^Rh;|5M<)h_UoX zdZxh1l@0%vv|LyF7|7C;Mn8r%1(ggfT7`~?q{DVjn z!_b(~tpb>CM*dCyB1`#v3tS6$p}_65l(h$rw2ZNXAbLrpcZ>Am_9|O&9WAf~J6hU^ z6a^ni0+GIBfeG}tgR`Q3G$D?e@;glVzsmNs6!td3?~8n2k)AEa@`j0qvQJxJ0^e;1 z_gAP(Epn2yL&D%?xlErGnPH&cDv^Jajs@*G|0e&xVa1A{`U|4YD4Qk9PZ4cK|3%wf zMcJt$wS}SW4SXL{yU&^OE>pgPseX(JZ_Q2?bY4rrS_^CjN1#rM8G-!y7MQ@F+QFGo zC1&8?%$2pfv2m5QF7t=ZNWS&n>mO2<#Jb`%*POu-V^7^SVOjNQgS*9zy&*UG zxtyrvE|KTQxbEx}qojCTwUM2d$D}9`%ChTXT>YYw8&;08lb`)&_xNPjbj22H>#x`% zqLs|S%O|A9;+PY)G&w55Ry#>a1`uBtU)%Jsz*ucS^lhKYcKQd|=HYJh; zJ=1u?erDn4bQ7G7{4D~u`hK~ zyf?fB_-(v$Z>vFmHD39wLFTXQiln2I_LFr2v0kK<)QWr^(hVYSPBsGAA`tcF0#kmg zDZkB>r>xuqKR|xFsZ8$Q4FX5|t@JspKGJ6>+l6;G-Y@WeiI<+Q@b1C;H363A8^Dbg z9D#cUZXeQbMP4S~Bl82^0N$WL{wPwJG>MGaKP0<+5O1?2YA5{#xI=h<6=lDfXpV^d zQ4>yPTaY2Y{MAD-4~p%`I1c$y?VaU`2gRro@XB+lnJ@VQ@}Zcl^s(tYYWDHytS{p| zlHQ!sS&QP$6i+liGJYy!v*t2+-nXL;#V%9ursBO4FFkZ7qleDWbe@rMAdW>W6*xN2 zSs!^8qH~@3$pm~IUW%=>_fTAd{Hg2ST5dZse8rRdpHR-Z_SQ2;U3cmqJs!To^Womt zGX}Try7|1Q{@;AA-_-5%^<&o_Q*ZCM?!^(WcS?Eo?H8~8^6|OZOAnqlphI?@J>&7Y z|9ZT6XZO>}A}$^O&mn8?-BY`L=Yk7YJ%3g1HAlYeUzPgZfiZ7RTYlHD$cqXNCAI!A z;r`p2-Yj|P<{sBS?fdTMe))MdX&LWjZ~o!!KYM)p=|wN=duH{Xc=H$EK74mv*37)2 zB}4x8SYY+s?R|dw@W*b6Q!jn!>PK@vnPAU&`_KFCd;WnrJ+9qUwxDS<-ff?4y7&2# z9nt5^aD9=VR^pqyaNI{bvJdro>sR;I&f|jpj-6gUmfqj-K8QXSeCJeu8W20~#?m(r zMhrOiZ1&UlcYNlil4>sQ2t2x=JyMqos;c)zgP2?kB@b`Y*+Dti(dZzC%n(O zpKiVG$Pn8rV)FYMm9dObIqlFBYuxP`yhC{Q}f)x zsyilZEsWd$)&BPre$?x~+WONQB`^JJ!UZo5-FeK_CvRz7=cgBxe0fdQs?Ns_Z=^Tx z;VC^nzUZ9elUj-oR6gB!`N2iMs?kRtP2A{yBc^lTKc49K>BYTX_I~v`1ooiFx-ShgU=LY_``l-lsU;O@}=;8OS zera69ed|0G^j0wNOWIx z_TY-oAD!Fpt=Bj8{_&lkk! z61pGxz`6F=?p1Rh9&yiLeg7MuN3ZQwK9=70Y=Fc$y7F&i5|-(fF74yVzMUqCOexuv z_V8XH+r^`9dw8%;VONQd^vRUL-DD2$wKVd#5? z(VyZl{XYx*WAR#_zG3Ju57X{bV1S~N9%q<&xgyMZxfC4EJ&6lqZ(;QRb?`YCEia=( z93B}*`jgRjS4t;v{6L;4=P*6&t~Am?3eP3%Ct_~VG%px|2xeR%@E1b~3Ewc4)7J|8 zBEct99LD+!{3g&-f0A$F^w$e~Gt-mqN-TYd!$ap$dU8d(4HQVhGl(b3c;JbT75|Iq zPw6zy0NWyaW_0BJEd7bYvjx6S6z5Y)3l@)*?L(s7WHH_tUaSO!JmbYd_dS6>9qWbq z6DvMy)A^d751F2HS8OkFSoUX);FC-X8IPQoD}{WT$*|y&^7&qjYr17z-wXb+f7Mew7qpwDCeLw6-pT%Pg@e5;Ui?Ou+!1?!WZo}xdoV&2^x zt(;)`4}F``w*NcX{s_H_;dnWZdxRWHDR_X#kSANGm|qe202zA@LeA9xOgil2k@8$1 z^rumL)Fyw99*>}}O>Rq{B*wc^1bZfNa(2gn_%CyDM6AFkiSbrj<|RhRGgip6pP=6% zqgZz~3MSw=oBc#Q3j?Hft0^dhXQseUkn$8k2N{F8L9DM>vAzZidb+mH0@pzN%Mn zx;?y_a--0P*uxw@7pV%~cRd_KlY>rP&f94_#?r9OA(d$4HR|^KW3A|IxOCuf7@RSPvZpfMFn}6bj&kFn!@b9kt zBEy}$5I>iN!LJB|-wiz>{wqgt#&W&?gj}3i&h(edsChHpqeLiDkYb zgd9qR9HgA1P_e!KH-jJXak)6-vjqPMkU#a)ChUpaFFHYgm^_94Nd8ZV`ASxK|34Lc z9$@<;_=|a$>*yZlCtzM)=7d-d?5PlXvQh*G#j;eU2t6+qhPhDCFBa`Kh!3xM0)LUv z+swB)VkYEBPnyt&SivWQqm^eQy^trm!JfN>92$ijeiry)ARsw3h@j{z0)MvXPqna1 zy#;=`nD=C{kN-p9FA;oP;oHT|@*gPdyu>$) zK)aOB*}@*K6!st8X3wB7<9bBcpJfL*9j28%ABl0b~8mV{X&6%O4#9L zeK|db$(};7E?i<=NIB0Daw`>bll^>2@VDyKkAlzi6`b$+g8xvVKh|~e3Cc;Ir{Bd1 zdkeX}jfMyxYvcX=TJV__Fs%w>cgKx&hamCLg|O> z4%44#(QdWHZeJ?Kl_~mpx@h-LF~3&7@l>&{GsQ=)dAz&ItwK+%{$~dClj+G&PI$H8 zUxsn9`Q645(*8dx`qM1>;}-Ns#QMq<>uZp}FA@B$>-SE9FBR=d{!a;cW?Jn0&4NBt z&`W*jDb`V@kh9okly5O#G_GW^ugUp+T+CxUebmAu_4(T{^YW^ouNL&FVqEt?4kVvt zLJn67{9|IhxGeUw90O$Q)Z$Mr6yt69h%<-~^K~8+iTXcX^k3SO?*zV9oFAnf8!7as zR_M<#(VshnKG=qE#^@e`|naQU(?0@BJIgwp+B{jeSf-`$42274Ho0t zD(10K%;PExewjs2mWqD5I&gg`75j+9PZ#IMJi(`2*x_Vhhi?@4i$s6oMPNhrf2@#m zZ4D>94)UUBjaa9#VnWX0Xytt959xXAExbQHh5lb1Mh{m>{TJhv`Y-X-0zW|Te@m=W zR~OFsYr%h~kn=K2oP;jt(|lRi*K|R@@&?X8+Koqq9$M|mdZCAnBL3hL{rO4gL-R<^ zXS2XB0v~F(L7bzf2>i`L|E+$`Dj}bhLf^V*Fv96;}h5VC+{Ld8htHrn)E%xdS z(XLf)KZ(}?UugG5g=pFQmij#pT+t@bL=@+w3{sKsvK7r z(N9IJ3xMp2M}J6e%>fQ?L3{K>3OQK)xx4d7_2gcxBc=}@aYDH-B#Hi5&m*Zq z->my-qww3~GkLqig}uEKc8~gRJvXfs{jtU~UlQZB?t?yox9aWpf{!(hmnHh2nZ)}e z+*ze2%s%qAn3o1&m$3ZVQzH1-#5weFfv*wmTH}5<2zjpD#tG&8M#=tI{Qqa6CnW#r z*Ykds3jU+S{7x71EBkY+;8Q9t(#Zbw6!LcozevVK4+{CaPUHN=@l1I~*jw9j-k|gw zCkg$}wAh~yrJWS(5yNNC<-(3xO3O+dc{x1sLKnAZ!N@Nm<01^#^kWG9gZ?+Lb;=?WDe`TdE}xim_RcY8geaWmWGuDDa~X8 zBJoI`IhZF$o&n~~#)QeT+&s+N3ks zQW(0z@g)3{IAH1+zAXzjQSIQ_thUR?S==6)NmZ=-HZ8Q#-jhophSKsG*=5l9lM889 z!xo|@t;Ke#p=4%3ajscOnOx+|%fiqSYg5d)hRVt+XuQ@55ZIGvKopeawh^kpGO4y- z#3n)%oz!?mSy*oE7cp+4=p=5?gm4X^C|oTu?{b#-h(goe4qghUouYQ8-Ndk+c{i1| zGrgu#)Rprq+l39ur41oxW<|Ei&N1}K7&b>Iqst3!#inX#8>@UvSxI(oPIkFN$zj&F zO(_#iJL9C9QWLG(ZIq!N>+s1OF}}7X<)yI4R#7u#8=YYos|{dC%fvFAWhLK|T~=0* zSH>5C6sttawnKU*OWH_LAWzm9bAjY#X(OC0%~efG6Y9y#yg6Bxy^c`1d4+k{{z7z+ zcX?@EPCAqG}^O(q&=lhrY6kyqc-x%2LSt`Vn<#vIW!>R`K&Sp zzC~ePu>wa7I)gGeg$7;ujH0aEf-<;8C1rDz^1LFh1(cDqm6erGO}=rHq#92MDxGtn#5786C)pr!@I zGZ`VeJ}bKrVkbOPGRlzcqV>)4J#l6y{|YJ4>@lo#ivy!Ir?YY>!knby8VLX{ZhEQ^E(nm3yd?*jZe` z=cO$ot2l2q$wYXf@bYCverzCJ!zA;BqjHKJg_v+)DTlP8tbi>kIspLWlbM~9lUGWd zVcCkwvxXkcVn6cBN{WClr}GE>aFi(d<#UR2l*017yqSzM%PB<+o5j_JCnzn=c0yN5 zMPn=_tn38O0OQEXEz5=ji()>Niy3AH*SE3d4qxP-iLoU6pP3=M!V(Nv%}%7^^7w^nFCGAT5YjL9jP*80kcXRGq4}<(@MG7(}Ib~&d1^} zaLh5Ir3G)VEaZJ*VV9NM;>7xtjkQx|W*aI-yJ4#uWhYf7y)35#HcVohCQSuYDYUTV zsx2#VItthklg$v^J(#tuqLN%=QgRE+=a7nva=swiG$MsU$Ig|kw3VG2X zC?~G~w(-`sBVf!iax(!|0Xu!69!+Zrmh7CYBBn3x74UV#YJd@=a27H%XHfG~mx*tP zs?AW@;Wu1YXq7ETS%W`0$ zBvXuCGNl!WaD~B2lAv8CJs9kD24nXuagXCK066#-%`$)GG=U_Xa}Fgm4gBxAfXjFth{8{B}!rLP^=W^ z?4h$qT{85NiwQZLip4kyj#tK~r;Qz#HGJ6cVIxiXON{&o)R8nJhK(@gFE;X_Ttb3@ zObFFW7-e9Ghq5C=jgOGkGAE>6Z=aNEkSBy#j~I@qql$kv{F5o&rQ;CCQ$AGM-Js)m zNqHKh>cM_eeVfu#)ar$_H><@2JzZ9{4Ijc_!o)4 zy%3EzlKqn@hp5bqF+-=~?>0u_Z;w&!4z5n9P28f9(o1ELxVXeq%7Y$%(Ts4>N=KxE z4tOewRANlDkxEyFBfR85ykuXfzi80~oS^7RF#87@7v(rt%AI237K7G#FF7^!NdDtB zh%a%Fz2t4O_CQJUV&enPZl*RQ51EowIx5lBL-6ANh<~)JBYqM$ITl$;*ifHkuTQ3m zWU>y`lH(?c@zD^b8{^N*LOl2fs|ef+qkowfUUX_tXa(JKEkq2Q9{NHMiJ#6h3OdU& ziks6zWgSpDOO(X{rr0@sPczfdtdyP3>k|##mn0gZrHA;C49iV4ba#?yh?X9rAxSw* zG<1)WXo!{`qM;G?EGXzkeWkYO+YZqXEj>g7%~BRGeyF3Qp?f_g-vR+`Kp}QVLL$ve|4b9X_6Aj&WAR3~jhiJNiW|fJC z?miF=(b7XSq%Gc$bJ#o)j_!354bjpQf$}NH)5?#>OLL0b-fXT2M|H_2P(6AgAn^=A zPw*17PrqSz8p?_Obq4oR&Jr-qF@0&FIiqr#2fA5GawV9zXS1}Y8tuuy<4b*}XS(>{ zS^6Q3j*o@X*qb>#+lm+TE(>1XH&|f7%lnYk7QDQ-ywrl1_X(F-@bccmatmJGt6XWt zi~G+t7QDR2SZl${`_Ee~czJKF!Gf3fv3FbW@?Kw~1uyUa1T6SWalg9Rf|uV7Tda6- zKT6r&cE04jvKR|q{{Di^f|vKo`daYv-b<_nFYnI`w&3M`vv><$es>;a!OQ#k$ril4 z&!buJ%Xji|W?JydIgh(7csY;DM8D)Z zlJH6kUcxnD@U<4aP2>GoCfbEDfSn9I%LSh9M_}O_&q@=X%H&gP;xkktk#05N#LxW$CO!9?G;fsdQ+gYXPxfCv3ru)ibugZ46CPWJ@hmmr#n!~imYMMKcMYgu zxd|`tS`dDv3Ezhh;;Av=UQLPCt@4ga#s|kMwA;i;Q!k;OTNOzm?@^^@+xY2|^ z%S0bA;pH6+DsDF6O?aCLf29fE*MuK$!pEBMnh8JHgulv!k2m43HsME^@aZOe zvI(DI!fPh{H70zf34g5#Kh=cKG~uV4@Yk8}GfemiCVZ(0KhcDrZNg7B;aw*D^(OoR z6Mm`*Uv0w6-+`jyr6&B1Ci?$o|0{w2O5nc|_^$;1D}nz?;J*_1uLS-pf&V{A;IMl3 zam{@oCNL4vFwMOwW@FplwT|4E6`>qz9r!I0^&ExhXAsGu;NI5O)@laR5&lqchXGTd z=}@rFfGNOqD7eaiDX?@X_>=)tKn&c=}@rJfa!2_D0sU8Q{d=OFx!ABz;`Hk zodHt-=}^#az!W$-6ihH+3K$&<_BUV(1Re@@H(&}J9STMmFa?Yb1%Ejq$4h}CjNgDM zK!oudFa;1XegmdJ5yo%86d=O*4VVH$7{38iKnUYEUI~czKQ$PpfH((0nVEli|@y9ZFuK`ow2IDti3fN%$226n( zjNgDMK!focFa>5Xegmd}490K36o|q24VVHj7{38i;05D1U<$Zk{02;c7L4D3DZqm9 z8!!cSF@6K4Knuoiz!YG?`2UdOr@#v4-+(CqjPV;V1z0eC1E#fCBR` zVOYmk@M~x4IT#n&L%{D@;I}NWmHs(P`QsM&K@04+z+MY{mj!lO;35m0XMv|#;K>#^ z!vd#T;3Nw?(gF{)zymGtSr)jL1@2~nqb=~C_%m7N`S{HO|73ypTi`tw_%jQ<-2!j6 z!0%b$w=D207Wg>}{I~^v&;t7{u-5|LWr3X*xX1$MS>S0Fc(Mh~u)wJnILQK!w7^3x z@IVWEmIdx*fxB7YXbb!&ehs?K{9E9kEbx8{yvG86W`Va`;LR5JJq!Gn1%AZ>KWBj- zx4;itV7~?STHw1Zu+st;S>QYiJk0`6w!j${IMo6tNjPvdtf=mY>lzqKnMrZ|0*T0I z^-%-Ki=sz8#XUF9rZ~>fd~@SsT6@MN97)%Is80b7Phib!a7^`sfz!6*e~PKr{7H%6 zt@)#eQ5z|oDXrJl_D^MuucUjl3U| zCu;g(a?pLnw!p{OaS}H>6Ww>l9Cwb$)qEE-A?Ese4vc}1-P9+)`p5>G^K`wTSzUD> zp%OPZdg&YV9qw&i6W@34BM1LR*1ueu0s7+r=vu3LU!>zZu;X*m>|Q`sZ9t43h|5z- z;PaK}BbO`n-`(23{r+9V`lotd!9b{ws`nY>Al@hNTjH9p)Ta4n$7sIHzCH|D-vR-8 zQE>F@B&E5vwT6bTUfCRY1nxI$o918hFQU#s7+gMbtokm!!TtSuj58r|gEI(`_QPQ6 z*k$$$cw&o9${o|$1eN7MX`6GGRCt(&V57eR~OvvQE zYPu(mMx0Pv^99HEWOJ$c*EB#kAfEY@YX12)3_n-XF*i6SpK$)@Z`)AWG@YoP0F~x< z#0|Eui6Jr?v5Te#RXd}R^^~un;}-hpPpYC-2=bV~NU{;W^tc$!Z*SGy$JB}*)TUhv^0LM2niSg9F$Tm+zHe$CHO*hrF#0E_ryFt^x(2jnA zW;(QL{TrCN(U5HkwNS}kKR$r%$4eJ6G#`+fepb{H@X({XAxWsMirxkScT0r2=v{R7 zuzGj&g=j9_H*gvfyU!DMFOIZo@90YigzO2VC(XYiZUORkwYw*-8glSYZH3wE6VgAj zl(TVua5qJiAI7wd#@Si(_j)irLP>+lEk_;AKXMig#2-D6K}ogf3>DG^xWJcCXLK|Q zV-Bp}MFZf9nyXz9HE=Nc;7rmgH`O9@<23tC8&6(qn8&93G5qLY9264J9zcQbUd8_r zbPy-Xz!{i^P=A>{^z}-;mQCY56OeQm+ZUovW;UGJLl&QS<}-BeY%GDmoQKgX7_wl) z7H%&$=C|dyF$A*sMCMecXKSKqKKvuo4pM!DJeIu%MQjah`xPCM>(@RxP5;wADcwKt zek>TQTM%l#v;1uJ%#2A-{MLD9@GgvA?k~R77)@_VPu%agP185~#@W2J^M1sHkHe@n zUk}YU4&`I<+7gav{*5HdVj;Iz_M7a}%wt#2NmlIF+b3t}o9&a*^iL;i`fr;45q6N@F$|mL z{mF5I=1Uz+JLP!IJxZ~!qvjo#+qXo;MQm~R;D%*wU!)1OOsApDeH@o+*uY}~{bANM zA978DLIOUL8WX8{>9U|*eLE^HHQ~qt#>Z3Ze2Zk4?sqdgrvEFU)}FaWQInu*|AJN= zCT08iP;2WA|8Tdos-Bn86Z@7_ST=MsJJox{alYL(I!;kNt4KiTHUtt$xl&Ast>yz@ z)o5_D^`Dwft=8Nd zVFowb(i4AoY}9<0Yu;8zlU7eQl!V@*C5~%xexdm$qyA3Ej@F$`+Y@SY7xE5xY8|O* z?w=!6ZvmFN;Xr8qn!ZfGU9@*GPW7%Bbb)2vKeP;K@h_k*rR&Xg!48MDm)DXWGQW#9 z{yn_At&YFkqFnhK#`(vmA=QUul(96?qjD^bkp?R+9!=KR>BB7>!B61p%7xN#%d(}dO_?VrZ^XEKys|C6m}Y0rMc zpWDGm9*D;(RK2i+&`xhHEiXM<_mk!FGsySgR))L|2CR$gJ#szBZruVBdQ|VdgusUB zem_FfdtJk-_L_o~0YjTfiT)Pn@F3?-mN5EKD)2=QCh87e@$E@=I&0UEhSI)SLQ}qBn9AV)*arzM+rc3Mx0A(5DBvgt5Mr zG~eSkbUDrc3ME=%le0_HY|VEja*k5Xx3-bi3^)F3uxqo!N(a6PJcRL}&7Bb1;qlDs z0NR9(z^GPvsR?o>?xR(h=6{di_68hG3&{z4+N!G{W&hBZC_!hsHN8%9<^6f#ulv(6 z)SsMCe}XeZ{6#kc2cF0LM27IBpSkJ2uH4!6MfdZebqpq(Dbcc2p0Q)yc2ugoMm4K`k@AKOg%bpJghw;{(W>oP&Y?fn*pgT;rKx@g{Qj(E*KCq}Dh z-Ph_XTlhFQBdV%cs$vh=5R;bJ;9MV^O}nix>04+FcGa&a@r~!I(ua!l6T$76QH+=i zO`ks)!@-D2F2T-F%}mr=@&k6`IkW=(Bk%j3lB9=`1ios*ZXDWHIfhPEo8NMO~bk2Rmn#4e?S&GU7*uG(|_deAl|1(q%=Md^ry8q5tzHTyn_wr6A z2I0%00vsW-zffS_{$|Ie_9J#J*%6y2g*vvL#=`$LyL&H z^95>`PdS%nsNH{9+O>;z6aT|@D{@7fFKfPXn7%vVw@>Wr>!3#4^;+h*t5w)`VXb`Q z;t;5^v936XTpg+T1*BA+V$J3eaMC4NlQ(rQZ&BkGnpqcQItzbf1LWfY{m= zDyw=A<7-y1D-3~wIUPW7IK#A6EU0c;Vx8(;hB7wqs`nt#j>I}k^S{e_6zH)G)`LF5 zv1q}xWE|9)lX&!tT-_Et-$dGGrbI9)I06JDZx$cAUfKg#0~mp+U`BDj-_4fbFh-vy zECH!2>5i7T*>QbZ{bte><6QEmL>x>TvMX@O_gEbI zA##@L1D$^$16st^mEh{Ep{C4>jhdQhG?fe+`|q^#(SB1qPoYuS4zUJHXHAf5LLT2zf9D_A~HAy)w@l)pkvrCF|^ro0}xPgd;(0qam8=K$9hqx7f)tPLcV|;98 zK22}ukKD9ZZMF&^IXEo$W`qr$jd5w-a z(dzxRo?6u#z~~Vx_){DX*01acX?U@(ea^&k)>iy2(oj4=oEbi$GULoJxstZszdSPx z0|`B9P0rqolnvLkBAGMgQtTVw@Si07MUbqc5o-iM)8VY93JL zNt!?+T1ZMBU;_k^7B)Y)md+}qCZ$E}}5fMLET=N}_%yVp>IbD16 z)wCG%$T4#$KeRG+@!YOgHaa{97_ZSU7A1-6y2CN}X zzbP(;eJ?=&8nL^I&jy+wUrqvnZ(Cc5FWXM@)q}MOJN1of_msG)JnXt26|lNjHRHf3 zg01$d#dKVCA3vdb=r25bzjR)MU}hYG{)jYF(4PXAF|Hbl31Q0Sf`(zLT{Wc?j8wf8 zwq_{JSEGTdwK^F;S^aoq0>ja(wwf5Y2!2vvA@I$u-7dfaRF^RQTO^sgYA6&9-iYvV z-tt?7tA-stotFlFM|I5yacKI!qq{ZV%hjl&E!Bqnh&Zg4=%&-8dJp~CbZA2|@>P8# z`y=egpR9W6Z*udlC%Og`z2`eLxQ4DpB(&-cYIIY}$s^O22G7AvvZ%B#dhXp3$|;qZ zsC;BogzCALO5CgIfB6D8e2i2AW!T7qm$Dj=WE(|6fP|#q=EH(|4>_`8|MCpf>#2P;wcm6qYhTFH zk%)l_p9uT1bU9{y>8?G+-ExXrMFL3IKho>8Prg68g+d;xX8>?bt3$DvU@2N`BOrYL zlN;p~jKL3qXJ`m#0;sQ?iqVk{YPvohSuB?Cp`ZM7fnG^-(5$Jey6pf`^*F%0=_`2n zWnV&qchb!JN3MWeA>I#2yvM)6@-)8Ru=PnXH}05M9-!YR)%3Y>u`CFx;R`0h`RQ?e zO-t4jH;RaS(G^HtqZCJnEd*lLHB5r$ZuxT-_K(82QW9~~I-I^Jf}naAVGLVR;x3J7 z>S5Rif>E~+v($YrM3=KQ)t}v(k@H7t{|{B~f>UX0PmRq$bx(gp&=B~Hfj@Z)wRcwX z<&eVBPtyBuR6Uo05>Y!Fyi}}`r5XN<`=s^Xl8!*`;Pk{pvo!m=z0taBE?UFqFPM?i zz;zG=Mf+(mMzmk`s>G>s6Uo5{cd$Sk_h%D+N{={fSMT3kwgRWy&6m+xc1a)lQj#8V zh%L#DW%p~ok?u>4O(ey)ZlwyQ=*%eW!4Jj58Bo1gKH!2Gvmvp&e~3!e zPuSfbcSyl3Ol2W}qX>_rCbTwn!G6g1=VV`|&AW5nFPg8K9oZ8nS#bA-#^ziBPI4Nmk4orvHc~!&iYgLKRs+GW(>Q$><~P z?X0%@?q)DfiPO^Rt6ITHCFGtx%ja-#g3D4J{E0rdHAanoA2H zS-SwRHe|P!xJ9k{8A?Ie!Rh+%81{0|r}?XBJIm1L*?i6z^qnjhJuDKE4jEn$eLEB~ z-M_LHJ*7BEhCT)X2e3ihn(hnGDCjGvU0qT|Ta$b5lVDDJ5fSyp&;uxi4MhyNN~1RG ztLP+54;C^1?CP7}6++8bOBRwzcQ;PAt3wu1w)58HBU>U?6LFfF`mtTFBEmF%(O}lV zLNY*rDDf>EO+W7+g`akP5dn7nVS-pQgNcPcWiSKcIS@~uvo+-H`VqWRC|39epU?`R1m6CSY(EK>);u9DDhLWa#qt&}> zP)-jEj8Qy`YVuH+=6BOq5)E|v1GJJg-Oav#_@Z5CFI{II%@#NN>R&&uFO8?3jj-M= zjZuB{?M@!I3#`C$r9OMUX0|T6>u?c_COa?+$36Ce`e8C7s`n}knLL6~=maxDzK8kY zWf4nsAGc=@a05kVt%?dDwkm0d?z;>}U{cXhZ8mT?4n!e0@m?Sj_C-G$)F5B!4`azK zVd{*`V{x?@95T&v}V}84r4T3^^^lfF4@u3H#y3^HCdQHm^HF)?(bu% zKyh!44Hb~Rqkz$L_i->74hHz7)jy%NW-)q8p`R*d7=6r+hFC6-RlU(5PV>J*96(Rr z5$N5E$l%5X159bSx|$VmQ66k$TExHdyZX5WI`VM%pZ^FBe`hc={B5|+PhE(n-Is$M{imLE z!$Gv#@CoATDZT-z-tU}?f@zg-JlUe;maB2`+7%AkT zN3TJz+V{}wqyLFAdT5HUh>S1I>Y`1+(mmAHzzsVgZ#L2X^`!kL3j$Z2?u6-L5|qOG zRYwPxNx8PEW7!+uA#J4%R90P0RmT8}1x)))o62HG<<}Y2dn%y}GG^dJ9tr%ffvVqh~jhj0{nm%e@4X%cyR<3pUsO`@ZyeCT)>Ne#5mU6&O7i2^60>HD!z&r ze?Y~T@!~za_(m$efETZz;&*x1*74#PD(;Hn(C(hkzUO65rJG8KT#aToV%f=_R8|I` zfDjj9Kk~xGFk%HV-b#07F7;J4pfldu*+b!BVgFrE2L$IJA3Ke?8*NUy)IKlqp7(AtXwwjJS{b$ zmXXaOGFHEa24cDpNBlH>hhVugnBImVmj|xIR;ZjJcp=KE-!;^=jl7(;la_>?Avs~V zlj2&~_$=`g_W_NO4MuI|fnwNn5{GB2@NVNX2khYj`ftC46jaZ701WQ9#AerbrRg76 z({1nBT4D`J){&1JU6e`KM$+!0dg!xuDz2S5(|s?;qoAH$JY#2d+$h75wTPT-#M=Wc z_!X`%XO>Z+fvq&tK z%2%{{ARpYadYKd=@PP|4v-6Gp#$E#$9^Q}v+Bt}p0 z55R#%ADS0~p>M${+ljl22x&fj(GL|w(2aJXkKWeVHa%%Ra0#`*GCH$ufjo*` z8Ks$z5i{=tQ{TfR8k+f?ci*l5mhOL{FZ#ufYVggXcu3Rfz_*l@z{AyX&K8&daKSe! z(DD(CUQ4T^-0fq&A+%mEjEmA=9tCQ0&!ggSqML{2(X27W<`N;$iILA-e6M;lW)b zc{ahV;4mVOfl*i;NQ0~tf8=FlRGf{1M(Nx zdh?A(%&;SbCD%^{?g@wFiTetD&E@WEV@O(hMc<9A{={_O_*hLpjHsVOP1idl)YA1d z-rtbt*UNb;9R5pjv|Wx2HnZqlq!7g2AGYbF+`F$tDI(pk@o~bsjszkw+KsWV4Vf6~ zKbu>v@`;FekVhnP8ebe*?%{L`h8`8i=lBU~2;}i9dx2YeoOAZsYXsEm& z%zl_IMVRBPLWz#3o-LR&U&l24SA9d}KIG$7@1saq5KLT;P`h_fyN|QkeNl1x=F0u8 z_yfW(f+X3|!M)ukt5qHc%I3Vxy**a{(e=KIC~DQzAN85GYRmv#Pk{b(WlF4iN0E)f z{SM>GSBj!A4zbQUyS~}IJ=tFOXIDFGOmP(1>-P6Z(J$cNi+D?pc-9BiGXc8PbUE~g zcX@m)8deg1QoDCjyN|a8=b~8XU-a4e5!hB7V|>v)Sx(h^p|mCo6@oW}=z5)iTDp(7 zIx>8{4kL@DH9y5SG=MDo0!0QY3W|VWeHE(WGJO=aDf|hx_PA3~(MRv~QeK48bRXIM zz>WA2MnY^_?ryo?@tr?&ko)+cir((y11q}21^5F~q2=_%y`lH7XhnQ5>E${Yz31z( z!R>Une4#$L!9VG=)}|GK0b9wYFndys^|0LL?CP7+m2FSnozBkn<82rVc16=(MeVcu zucQy+`{dv@Mx`%;ORzCyO|V44(3bA6u;DjD8t1uNMyQMK!Hl_EE>ai$hM~G!dZ>%O zqs+cie&0CVe{F1Ty54nQGZ^^#By8iCA=tG}FK$X5fNg+x-&Jqu{1F03P8@8>cmE9N z%DZAnqmQ)3xGyRjB6P<>h31hC)6p-#{P ztJT$=+BHH?jlt*P+NLf{4tx=z3@bw1#8g@&fFgN++R>%d&GzvsfwR66W@gJClT z!e5AD~wK0b*#yLv6Hz_a_V4m+q$M6fwS<{KXJFZ=qLtk6ni52d>8no(BPG&(H&t%j;m2tTB1JqI#1V)gdn*V@LC zx(TE{nbfVH_>H0mxV|BnDH}LR=Ymy;dbt}rxLYDs55>!|Z>V1S3h5gk#R4P)30WIK zdu?h|upHzR<@v^ae2?=Acgr5ta~mcQpSql#Nm;zhp)8vJrnsKMKSK?pz0yprEdtHg5IY1ifq`wT%bzPe@=ECxhL2K9YaGUo?rZ?Y1c#iD*G zOz(-6v_I<*xt4nu-?nBwNBh$@@?xDfkT9IZ4f;_zL@98FQgsG?Xc z&FeJBb?%n#s&^r9ZDi)-qV_xp31L0bV*DNle`!x3AhwsUgRJ3UOG6#>fV>SKG4PjI z(4bo{h-b}m)PcVFYMH)0g(R@2mMPbfIux@Isefc4FJ4N;>rfm>!w2xAixAp#-r?)^CjOsX?>46?V%djZ_wY@Lp)D6-Km^ysmOehlJ-%xMd1CO~ z$>&X0uy-8U)WH#hTNjSCO`WRochvRqHf;PvqWLR&-&ncNrC>%!ET^4B39dyX5h?sH zaCYnhrF-8zsG~D07q`&Kb4a{4#yL`&xo1$9#5z6-JMV)0YF`Chcbvqy{SWwOLpF3W z3#MZoWAo_ayaBh3$>Py(m(`DFjzI7-6v~!5sI-{HZv;?0Z9Z_VcAbn^;`OS$u@u2P}@$CKL-6>iY3L)%Csh zpAn(3>l^+Qr3)_4U(=BAWx^4Cw|iqmV#8g9hpY8w3`TYSq^_URQ{TOgJ}nGs(04p? z^hCtge0_Y+;COVGzE+aNFbPaaBb_%TPQm?yi_j0gjwbRReUA~Waq=FG<~^E0J-Tll zxp+)LNp_CKmJtrCkm7Z4={!!1?&pjSzsH95I+8#t7#ZhLtB)9yi>*)eb0BG+k&b1%@=PQNGeto>bb`kEf&{(KVsN99gEaT>%nibN@v^LNOz?e#la z(S;bj@c+5KL+KG=XYq!|*toggH!Xse;kUc@+8l7kaY&RKJb4g?lZWddUTnuE_pTDf z;w17OvfgbtQo&R+>&oUnWI5PH-C3R8Ex)Or#h^W!N@BqVnGTkQYtkFF|E-Og|He9g zU*PY3l8}g{=QJ7GCHx8UA)y1bWnBdS(Ro#nv?{+kML&{)pzUXig#1-+EGnhwKhim| zrB&a7!vQ=*<{;{uY5RK&_27TBv=Zfxs{XUR?<XCmz5?nAm*xi(F0YZnW?D z7$%uFjfM)*Q1CrqM87ouwJ<~T;C>;RNVAaQ%R?a9u#fhmWDFoaIz>~1U!F0wGTM*MwZ2q{K^Yu)y|07&IGibbNM=rvHy_Ofx1$$fyP_aq(;I#eXww_}yYp#=ZRCDf zJ?j4xqZRyD!qwqn(%^H*3Y`n@xT*IzX#VLWIg>KXfvXq>=dEH0EcUnfsvEM{mH`c* z0gXW`*z$(s_k;sO-(j2Tm20tWuv?z~k!5hkQM~sZ6rWndiqE5BI^|=}oyd!~QSm|4 z4!MTb{RMGo@mtmGrgS@zh?905brJ0%6=z@^2QiLx|2$i0ER4UM#r!E!X+GD_!T!t7 z^$qeeJAT!Ht+!rflPI`@D+%D7;=2oxM7f_%R#fl1zzVfP@L(qepIktR{mGt!c!0IB zuA(vQT|LwFy|9%x!u;bPL>0v^NZYf5JD()`%Jwh(?j4pC+rvt+3&=g}$&P57j)*&H z4;u^;_)mQQ>dW@844_yTH6&!dj|Fp4!sSu<12t=3hqXlhTZ-O{WlSfdK_E%hTX+vy zF>SOTE+c!i!QIkZ_3TDp5J-oGW|^y<8|-VY2Ad$ACWIX5`}6{Uw142fk$XRni`4zq z{t0vWFrqxB{c|oF;Ng*VE;NuzrffJ!GW2~cWMB@D?7&E5cqA8j_lach5XDlKuW9b`4s!EFoxKEL#sGlFa3KfLCu|H zvx4ie2t)H@?6bZ;i4>;!6(i6a@R2^MF3^LWVehzCQRsw>FWgb;qA2u^LS`xYQ6dVY zFJSXS9q$9iL?m|N2D|Pe1vZNiZh z|Lh337x#S&9TC2E1{Ujw0M+%WJ?%s4^$m9a_)c~;tsZ}vD54=>Pwg4J7;H)CUb;SI zUo(JIc_*y*$*cYthA8*M6J+20Nds2Epq>4??5_;gs9ySJ$^tg@=~V=5wy9nZ`oaP> zVtfd0r0UI(y*XfW^W$uVIrrMv6jN_f(3UV1e8q;AYaEtq+qIg4sg4Sq2^M_8I#l}V z)rCzRN}LRgF|<&v+J}>QntL?<0>*;-(5Uyw>^}N0dUNGA2;Rl* z!AGihGsZ2yDU#_Xn^*(il8G3L<7se#gjLTY$l%i=b|FNjo@81?{fehyuo$IhExHKf zwD4_gjw8?)Y>vI(q$Fv@O6bzgm1NJs*M9U1TFx3VG(vaKpx?oo3^m0D!DlS-d6aLm zAHll?pL)dm0t<tEwW4R&z_ zu{HQp1)x9Y*5#z9l%9 zP2x`ovVm#UK8OipDt-%Ns^Vih{yH1e1FvFCZ@Lns8ZV3%qIcR?J2u? z%M2~R1GG*~+Akk_MCbS3Qfi$PJyTULhq7IB#usbbzcv+zhg50vtfo;#c)#d9MJ%d-HF4kr+ zhVBdbyTw3eYwqP*wggKLE2rlx(6Y=|`0sgPNmO*I4rb%3R5c4Po4%Q`@6Gz5YWx`* zJC$SqCW!~|%e5maPQ!#8CABpsoVhxm;Fs@^j( z-e4krgzT?uwJo0`W=Vlh6fMP)C|K9s$R%u}Sd;OkihcK|D-3MdV<7^P5uH?RBm(`~ z7?J|+w3OpW-ie00nb^}GAfx~ZJ;8I)Ddq>anIAva8gDim%?3Xskp1;N)pG_AnOGR3 zpTWYo^hK)eB2J_~L5hu=;HIk3cq_3GNjZ0cgjhS{YLJ^3Jd;&PMx2!vQ@ji_U-1*fUkmF{f;LES+1z~DhBAl_NS#-qMnbl}oz{EX2n1{hg z(hjQUdK%>MNM|2Y9p{JcF^Z#}h0!s|-N?WwESJh|LFe2eXuA0_WcQb$@lf)pYZMUtx&1_06$#hxc>kzl^yY>i7OPl zfG~Xb4mf&*e0TF9_J4DQLSCOZh0CGc`xDaGe6!dFB%mTnu7e;_B{7Ya8Wtf1>FVwyon|>%v!1d7`NM`paF667| z}oz;y{&2;7)p!=S4Wcj9UV-K%I) zDZc*y_Wg<5a6k;?JtOu5aercID9#Z)2i-O77u}!e%gp27-=CnPUP#aW-W~s++@GND zwDOEdzct0qi1fS1@{HJnkpKSui3L!Tzr8>4G2+#h`x8f@I&=v8zkPqgU4(u2ah#HH zhr)D=f_8f5o$xypV@dsXz#{0EK~1p?^!LRbik6TA*McJY_P-H3k@@-rU5Q_ZsfL>^ zu1_4qCq{mKVgSl$*t;>~j?nyi^eGCd+F&|?-GVn20 z;H#6#$EX(91U6zr{L2&9e`=}u{RpN#S!hGvk@yvZ#P#SlcO)8t3w}#7Gww)auoL7< zz_pQ-5s-#Rcw8nJ3Fc(irRQS3A8|iO+wc$re;-i}C{!NABJW4cL?9drRf#0<-jl5O zN-9o;a>GGM=f$(B_z4sThTw-`uPpvaH92gT%li?R)qsUUKC*L)xDRnUX@NMi;2?n$ z09|wl-Tw`qi8Eu!Ukhmt=7>LX!>Rkmfiy z)TeTB)1g25ByT!Q$9j||4uN162BW(Z!O2u0E?eLVL_NyZ(CFB)ri5RC7yudwckptQ z!IY8oPDNlB!o3VhVEPka(YC+cWPgLDyzT*fXqR^%c4Fs1-4nEd#Gx*~B=I3;Rs?6i zIffG{b>ct11(AYQPx4bLTC%zj&#M z3DIj_{AK3o4bM@S0DncHetbOjUqdarjLq+4$ND<@u8-2k$0y)yr9N1zkMBpFVe;q4 zat~Ev<2C_L4jrKa}|V*`Y{`;D|ocRWnO_9?Y!tro<5d^6^BPtvISoHn`;@EJ%h-x9}dcUSn5|f zyhnY85jOfwobG40`^#k5$m-t9_7vp&@*g2t-}{NfeufiQxhvieY-oYX0K?DZ`c!`G z^Mc5?s#-ZEKsK+%Pu=^n1jXLYvqGc0g7AO^rq$l+$JgdZ-Ll1mWjv1xCmzGqVn@!0 zdJ9#EODwYzMU0t8|2tm5aim_01+CvF@znb&>23LV;gL_1b)cLQY1F@QdJG$v)Y01v zYk5LTuUC^x-sSArba4!xQzYD=Vn0MAPRSJs4DMJo6 zA5;z=KbRbZw4@;j%VJi^qt7}sn%QpEuea@|a4A#A?>g&v>Q}DgGaYp-8c!WxgWT)U zAB#u@p~A4B9>UD`Bgi)?!!hdJs*JWjgE8gtO&-IEg`Bap+gPrSgJ9Ks#9!UY+L1?y z!cN}6-j@gq#CB&SqbnmBPaqk+MKX?vKB`z_O2%G&<_#8q49WOKj$}+Dd6A4>F+(u^ zmb?IrH6CHDPYYUSmoKja06Lh|{SgWO%NG(Ct@7 zV>b{f$+8*dLbeuyobs~4ke3It<2sG<&tg393kDuZ2o6Czb@*uN`iatvo z4{C4r!uYRdZ)DMpWp6rpMixJ~5m`*G%Ca{Ugdve;G$W`&) zGV2|CQo8hgqg)GdRk0eA`)pHw^m1)<@n@Uzq9u9l3 z8CP_438InRL@9AI^f&dk)jkB{Gs@NKtxxz|HrP;Lm*hJ{-Qe=9kaVWDDY{2R!s~Nk z&s+YUcT@)>$gz%sq}Ueh9l?giG_u29aonm)`MTd$LB}yiyxkPDwE&nLD+sw zy|xKs|3qxpm(n^-5p!KEODDtu#qy7}Ex*i|F1y~U25+nM4AhM213bhJSF2`|7g+Mw z9lNS9FFA!*Q(q2OdoO9XTgAq3Ag&=UcpbD)z3=>zn31EaTalFxQ&x}?DxUS|<&7^Btk(dB&WRos~bcZ?Gj;{~EC zdC|Enzt=irALYm1{D;&(EnKu#Zu~jc>I((6cQS)f<|eQ!1F^0`BZ@FuMfq#ipmp<* z!1{TRl>Ce`(oX(Nn^esFu*~p%8QGV70W9^_9UBe53MjgvY7sdTcX=E&yWwVd*lu8> z@1<_4cyjr8CSHw=01$dc^arswaUgz7LWiK#yKE5=%w&F*l*?*Flv?X~FgY?3p0-5J zOoU{?cAsdsdiS=SFEI{ZFEWA5B|oJDEWEp#@@nIXlN+G9;>pzZjI!n0b7N1MaXk}0 zq_dTOn?yOmA=Ao77KyWBYvFiT^y6@%F{6f8YSl^&Pcqf80h%*v2xHJgIf89#b+#T> ziyj_m^$||Xo}K_HsXtrqj9H+McuFTAPUxeWjuL$wlhH@n=f(lU66;ZeIZlO~B(iTi z;ikR52Bfmje1)D?qo>haJ^cxTI&#K*3u!WJQ$0ww6hDJMck6QWcT*xue_Iiz<;A60 z3cNrm@a24*QQ!lp_AVP~ryl)fvRq;#daWn(paf}hp`pOTauv8pVoY|~8vKx{!HY$M z#}_B>F*Nw;jI>l-*^((mz?6@p_hV{{_ z4CU;dqnqBgjSw#S>9h5d%{zC2MBJTT%{k2(9nFU>rK5i*o~@(On>6&%HWmMwY0~jR z2q$u~){1B7ae!CR-2b*U_eo1VBWNy*knUERi^9a-{J+**DT=AO!4=_BuYTnst2_}- zH60i9{t;}n?LaM-2`^iVBZ1{deibE7XE&?Y{c|NAWh(J@6u?$u)81S9`%A)X{gqKu z(_ew9f9B29=0Bp%f2Z@Of2v9JD#q{RcDtyq2A@Qwy*+4j9SLM7Ee5#~Munab;VsAAD3lY0-#3Ith* zr9ZI3l;_;@R@4||&UllowJ3+uNwgYgYMq<|7%h{2MS&vky{+tdBX279+m`>Jjb*31 zT7LlTFPV8L`kBs_$SDj$3y@+&yRlE>w$=u(wUdLz2>G&TX$k_JFF^b8_{|5b?=tm8 z4kJR)v$|f2-_eQ!C2Wqnk|Ms70V+#dLl>2(-+3H`H@i_*0gqG ztzunYKn=ZjnN{zy^rG1v@10WT4x8r)w9A>h=CvV_7=gbv_4y!Wjhviah6nn~3Ono> z!mn;gu;k+q%viL+k~}X$m-@Xe4}m&a6P2DkDH!j~Aw8k^e0RLLgk~wPT6?^vb9ep) ziEB^vF>=j7~P==l%yC&bh*ERl$12d|A&h!RR%SGs;5*-3hx zx*AvI=A|F1JN1&!>^AMHsePx?A5(Nnt@f->=8YhcN2tPYT}Krj#jZWOe!F8Q@6YBdPSoG50@Ua}09`Yudd+pmlcH*Lasp~QG5_AV>+hqb5G`Q&`n`d4BmYWIt= z!%@3MR4G20D^2H#nq<8#OrMdfmX!YpBQy;RL&J?|{>u;tVT zwJ{>Ccg-PH&Il@JCv~v&G!oML5r@=I3(J9mjD31rWxQYczu)FT=@r$%oR4VEM!05> z+&UhOOD^C)lW!I~C@QV0bsE04wy<6-i@6d~rXUdYGwEaMLt3o%ko8Dhw==9X$XVI& z?X1t4a#UKT>RBzCFe|(5Boa7uc53;j;TYbM+>2^wS}53lLbgIlQeo|{mZ|eDJKEMM zZ<`DrsC#)V(=$pC-_Dd9Y0F|#WOjB*f}#=nOlIYiK?rHjitKHZ-s4vw=`f;M6v(h# zavzoc6~2>6XX`uJMV6cfLJuv;$YaJ{s8i6E?hz+S4rXV2ALk7i=3-^3=nKne?J@rc zM8C(DvPcgzBPQc{-7p%Z?Ezz4A?)q^4(rPeEc^8KDN}+;FlGc)wGxO;@h>HDu@8}A z{`Z6NwMcf#sBC{3qq12{%0$DY3~-v1vI`RtF)6*!&C!NQLA*JwZoJ0P=dXser^T%7 zBsJ5l9N}%d9k~{>62$O0EDMw^xWplHmT8F-T};a-f615@E*@=FEO8i?!HmmcScHAq zhQ+Y|S$3r?dMh-Wb|vnxD`zXa;|7Hg$4WG1Pbir8h9WRwtVXReD175{*pokrJ!ukqQiVOa3$>F|QNv-RV7M5S#b$dU z_PR;Gi`iz;M<0S-%4#SK3Maqr)o++3)`d@$bqR&FKk4@pm6%+RNYcu>$jFHFNckx2 zZ5_&6wnDUShkvR*y{!QRmP$%q3AEcov{kW(qW55D;%@YtvBBsI{UY6HI23ljW%>)6)@JdbK&- zcr-#2&|YSi#JgPPo0Sdv6jg6mYgELUVfskg!4l-3eX6Alt;nlkd5~Xe!az~&@z0>^o9Ujfaj3DFD{1ty@ytHAoDmB`E zF+aDHUdF4LBP3&f#%s^!n4g6Rp~Ly`GnGJGTNZm+7AXK$sGI&;#v*Y-Rra}S2iPaM zWaCiwiL#aD`Xw_Itxh}gU4?qag_i!<$Hx-sV|TkVWxOst&Ly`qa}5V^Sy# z|A_s7GGR2l!D&f`i6vPAz)O%KuDqO0Cn!uvE?9Q;z+K?I~-I&o9+h zD=w| z>}6Pm;gILwiyQ$-+EZDl&Am%T@!rqtQHE#!k$2P!HSv&}k(g15!Ye{~+iEn1Vvx&{ ztwIoIpra+&aqjB=D6hMQfxPI4!GhA#5Lv_h;NV?};#(vl%gYYirfmr%QF^Y`dlo;WeY`=t6b(diLS;7?U9mKlV953MYk)@#%h;^LUnAr!A}-H z1hkOfzIU@)dw*Qw+O=iL?^8?E_aka>N6o&cdhs5J%Tf+wXy-_KXh#X;yE3+OrD(7k z+d)3m@Q$|A>hdhwWKio}em047Iiy9ew^i1{r+$^`KIN|8i0v8f(3kxPn58cTXvHHf zRDe<%r@lxt?bMg?@!{3l7vr@rS?yHw{QI)nsakudCUH?=ARcUIsbQp?qOU8<>*&tw zjZmqY2y7*Y)Lq&K4@2V;t1RB-$C11e5bf_Y{Mb0{Ic*D8qeO=KXoUua62*_om*}1H zki{dYE||}e#`p+c*9LHHoUSn$CAnOlceQx&`{XW9~f2DeplS0&0CQV+?)?zP^r#m~B|acjERAqHS0$FS zQ(MdnN98%pOU3I+7b1^Pw@T9V92!cQNbf=MWK&&7#p{whL{hK0hOBvV>+6wURBO9o z|C+L71R`d(n|jtitaaN`+jf_skUM6hkWVv0jeZ!q8cnJrh|QNbk}uiq8VgEqmwL1G z?oT8k?}}b!6Oyuw)H$g7mGtg7Tko{LSeoY;SY5QyQay2t9fPXg*7HE5)~NPLhVlN! zsoE!xXI0TaPP>swX-s(1v&U-38241tw^7yt>$lSJ=hBi8x-$rUmJ{dCiw+9MPvFx_ zr}8o1zK}|%FI`_ubW+-^pD>T?{%q*Ck)IrbXy$no^@=MY*-G6ew|v-RzA|p$){n|$ zPQTyCJcKXejvfvLsrw}@m9HeV+4$zyb16OKNwm~|<=7k6i7|j5iVqF3Si{5T3C|KuJ=N@T|ANXk%Y95p(~WW;9g3eSAIT{}QARq)81%rHNir7J6lPw%LDlQx!( zh<18CmG2=mVF|`_+ummP;OFB<4(52F&I!KCrxs0TR&r|AZJ+&2y5mO@G%DWA?Ai;A z$H)YT)kG|M%QPDO!rC^=Xhfe?GRFPqjiNtSS@JEsvKJ3wN2I)gi)4;zvN5$1s0(Zm z`X;OU&?gyFIx=4Fu6Ut3-XzB~ayE1z)|nUB``O?Z1C_5fAD)_E^S?Uo4pu(Ba9beW zWRUt46Fr)qMepkwdhJP<=oUPV59uiB@8J;y;-SKt#Nt943{Q{?-j>VYEvH38g0`J} zwQYgHFUipaCu^P2*UY?>6<3XE)||p})|9%cE8kpnsVb3C%9PjkQ%;t!@7VP2$|3eI zmO;BL*PzMR1}A9qd2?q?qSmKeBWg0AEl-?ibgER;Hf+M)&zRu8EHE{2IUe(>j=ekW zJJSy%h2(Vpv)Ukd71&xuKZ@R;a)`E8DS;E}q)-8)#k6bw=T<*pBj!DIV*utuB9zx1mgRr1g^*IY-cpOWn3~nR4uLf2U7AkQxoM zL!ECj3Q*W5br1XuZLLyn8>;|QkMJ(=4;c+J+8^Wm{J$x)FT`EK=y76TKxlwO($81q zbGsG`MkA-hwnF;5Liz~f1aVBvVGUa-M=vh=3Tg922}2qtPBjCxIsuv6Z&6|+%azPR zys3T8cB9uGmuz-PHvP>Uwgt2=wSNRU-!F>2bzH**@e%K<8_=MNn{@hd6QaTIRGj;^ z$onUci4bn|^PgUfSV=S7x8VYdAvum-Xd+&-q+Mor|WrjdB@UAdfYATsaY<0RSV4om&@PG zZNcq)Y~-6Y=C%Sf8;9Qa-nfb<)|)AcKC>yhM8AI~r#)$JKO`mPd`(8kD>^<2-5u1_ zG@)#bf#3!%`|bZu&@mDZe{G5vs=EPY()w7g0s zcdBfu7xZhPBU3zspX$b*U-88x=aoG--VR0|aW(~xsll*BT!8dMiYs?S&eUFsz4J(H zf1k)O=e3;N1bpWvmcR9qCT?rdL;1#?cC>~4qnF_6TKtw|WJ^>3Xi(qDkrDAfNM%0k z=PSF;jH79v+Pm}8O#7?K;iw?>e(7d|M3Xjeo9tRdQEoQM*TDWtAwAahP;8$&lDD~5 z?F5xegoN*^CZ%2uybtQJW1MF}SpGmP%}^>km+;>AaK{6w%hy&e)L1bCFvY}*1Q2g; z>l#9}Z7huG%Hs$Xtru%+BFAwx0liIi=}={-x9tw%#CAOr`<$DO*jb7+A(7kZk z_3=}9J+d%oSJuaoty*X54X1u?);cYJLoLUVZ+@Ts&5u%yf&`(flcrVRQ;;TvEz62W zM;H#JUbWj_tutA1XrBG&(N3O;Jy-nt8HM_%{Hn>~7hW2x`^D8`InejO=2aJ2&D8FIfS)#)7rF>%EmmTxg)NYec4t{+pWUa`G z$U$WX;TNajd%d z(pNmTO5NNiV{Z%xDDr`<1YCCsWxgBR;y9B=(qnHfE!IG_?<>Bb&9m0!Cg3(1*;B#_9w|nS9v(gv4+eRfjbWxZ0}kxtwc97pI3tdT((J4dHojAs+XgYeoO5zW7kT3xSaNZDFXb zchM;{!oqW_5mqC|*jdzKHp48Ttwm$_{xIQ{R&)-J;@zq6vyPYW#K^%i8uN^zPBFMm z7DcCS(I1AQjKGNeO`=w035TrZN{oE%AAENU{Yh>r{R_`hr2e7!K*5K!!=(k5eBuK& z7~ilp|0HP0oHwAfCO-1l5;;-y7<1I2%B_*ZlEbDN<2#O~SEVEIS$SKc?O>C&)_Z*m zsd=lr@w=PdT^Qco8#q589EiRS3J$# zz8q=R9je?O8Az%wbT$-QS-MYlqJxa4mhR$KF>3oIam(p~ga_TyWKUM2(RBK72}=XCe$*Eg$Mqjp)pO6!9CTz^_w6v99LgaE66`vTqLu&D^}&p z3&$6i)No~bn$FIb0q?CH<14>lCwk!c4i=aeoj@WSI&=LwVz)@wrR<`zTU2_Hl(Z;y zbbEFJY?QjCL$<#h-yv5gBH7j3Y#H^o85-TVlhr1dS`!@N=_~m-cJ>2g;wLAJH}~P4 zs&`Sq2D$NUeMbJsTl+f#w|f8v>sEx&Y7fwzD&p6`ZLtomq{C>Ou|Iyib_FH9#&7U3 zuyvGb2H;)7;N304S8ht~qfbTbYGPl&HHC}Nk7D)3z*|WTp+AzG!v z-tpSI^p%pb@l*8=nG|gzN)P;jImw@@Xq21vm8@S-jjh@Qp%@@{N~>Daue;RFrG``T zWxKOJ7@X}N8TvEE9g+hO8H4K;s_Y%A zDLXy7Nyy|j%Bejt985@?ye_1TU+0AIR(gcWSql2nUxl85`1G zL#MX77Bvf=Lv^l!&7p*-PM1SG9Rw`~ePQkWUgstW^Ks(ZQgS49|+)t@KZl-9M741+xw3K{a>tEnp1KVbR%t`5)Gm}r2&Oz8+06fbZ`<>Hqb{h=u`W4@9DT72`{gD=y?9%1A_Xe2MAFyz zmz8-wY|Z{o?5@oCnnwIX{W$dOGsVl6?3mHvsvb#EXg8MNkOSos*1{}3!g)V@Bd-)q zVkNJIaqR{j`sL9Q^@uFbEV<^jC;xmWbNX-$etH?_wFv@eNsf(kE0IDv5|s(gF!+ z-6-Xsi2V)JsRmU#SM*TJ943}oLUk*^z+ZoiGPW7><0IGb62g^Dob?Mb4{4{BO1DN0 z)9Kf8-erinX- zZ)y-^#18j^6(Ptp z@jZGETZzdf=M3VDCj8)cXs(RWr!9S`=2;&Fj}3lW?Ul4rHQE=U#C1F1oAWy0>YZ2& zIlovnI3;3rTSk-)MTn!OKGnn?r+oq!`5W$q{sgp#6HP_~^(Bm`S-Rh7pt^Z68>n}6 z4>YLO={2z7c=Zl^x^anMIZf05jZ+u>f$7d6iXT|^@N*7x4a?=t?>HKxmqiXSmU9W@ z4)Ehc@#s#fZkVdNXag-lm(zi&690PeJy?|3xp~nS@Up1}SL#W|JCzriT5gTc!0$YX zx78)aXuWVf^-GX@?p8=FsfkSJo#buy53K=pV}2^6Orm_+9m?zN>~V6QBWHRUi`tX@ z&*$J|b#_tcQIeGltz4?l%A$lUnP*=-KKLOQ!1U zfc{Jtr9IR~Nc%{386;aqpckr(&P~UY52%##gH_6Esfx$=&#aWURi%8W%ft?q5~Nbj z%B_^$QYjzm9w)gAsogXX@k4swt7Gp?=0OpG?*K#P)ZQ^T3@w z)sHeDDNXNNo5f@0ADf3IHJ>5&gOV$|>(*=Ev#YG!Vm@P3tX-7-g~}$%{oK#5Rs7HN zCk?+^wtUGs7sN~cMk?0spZ@ducwYOM`shBF`Y_JZweJG@%9`>csg#ZUXI2WNpecKG zSqDp{jHOaW_E;%sRGR*2RNl&azQ_i>TFQZ+v^ z;!!Vm(p(*=H%7fI(-*QD-t2$K?D@&oUWMjk4e`eb=R6IR#v46BiGQnzzmk7R*Kmpr z`4|2tH^Xu>y?8SnpWY*(Z%Je<6=}|;eGux@{gGp2p3!QBvWMNc_}tpu^*0%Bs~SrK zb{-;V_~WnsM&&!s);mjIm7ci7A=k!+)XP5Ms5X{yey;735QN&GU&&uwqG^RjNXB+J z(lf3PIYh$dltL(RpD`(-b+R+}=;uFYf=#=4N+#dT_`0@@(QIZs*hpB}8F^W@{G(?F z&=bFS3Zo4p3!PW+i*Z{g62zn@mGKEIOV1e=(Q;#u>P*3X~-RT>KLa zWLH7-b|mks4ftP1D=d6>@;`9#c;@M87{+VQs9i=f%@l$!A_6>|rYeGMy7Bhay`;;w zCsfeh&Qt6yU*sZL^b@FwPpuVy<(F#tK(Tx#;%9O?zAsl`BwCOwOWh2 zsY+F{ZLdd0QLk!ol(ZQCF!YbQtkGW46Ox|RS;Nr?;lUq;I=A(22%X8y284wNGa%5p zu!a1i{V`v7&Q_Cx^%@^<6oSIcak}-fq{8S|xbp4DD>x712k+(Mn#!#UwzY@jjnH@K zN@;>o@(U%3Hjt-=KoE0AR8k3X}E&!7S4Kfyxdj2a*`#fovGufN`ioKg3J;PEs zn?>+nWvb4bW>J>9DFj^`AKO(N`@AqxMD|rK77#r}Whxn_Re|uwT6kw=j6IvWijAtBZNiSaDqnK2<_k&|6@-(~1z z4?6?cUMV|-d~#E>Uh}1-D=0Q$aLZqZ+}Es_Ykyb4D1eaR)_<-d3u*MMnUBLSy7?E} za=TMJqpcmNZ(7L__^Wg9sfSJZbkb*MaS@*(KRwWQC!-q&&{xr6e>u!1F0Eo(#2M+u z2Yz&0&-A^TgHJu!1AS^9(9S9#{40@N68hofC3oJ*hB$PY{=Rvr)LD=NtBUm>NDLmt zc2hW`J%lgQt$fYijzwop7CyD!mLDg-)}QLktB3k5*40f?IrUkb{hidOqVX99bxaz| zta|JGxyi2_`tHoar#AFV-zf*sSAw_|hgg`Sr0w<3$x#q&wzgy~>l>4QZoR^wO(ZRg zf5&IhVfyj#^{_0wgMR_-DF+KV#_vgHGS;8&By<*qZvnxIfY=^1PVHQZl)AMMrLtsS zKM|^fkUc0qqLlBoCqy8*8I&joq&1AOC9SYj{{i3NWk`3+Z?E@~`u|za@>r9Dx8*UL z{(;$)&olH!=q{H{ZtNvjHY2wLGt~I6gj3&s?Fp+iDz!{$Y%v~Umf~(1Ei+0{K9%(| z@qxGhv}gLY9DM3gQ=hWwxA@PFx{T8NGyea2-y!**m6pZ-kNBo1{=fN?p6P!w2Y*oh zXXUoY!GGDd%&`V0|1&05szu+$D6H%|=Bxv|0?L$KTQ3PJ<13cet^rjJvAJccAck3^ z4lH|dR1UoaRFTZUyc~S$!HkEX+FOS*_|{+GtOkdDI}>s(`<4~Qwr@8}j2`UU($ziN zkJ(vxhkmLZ`F61lKZJ5rTJfFjit6t;+qa{g^c(gN?H#0=H+6EqKKnCeaRynz+@AbBEeCJY>kww7;EbyCOL)Rp=JO!FHe5-Ihqm&CHnJofZCQAf94MUiFPQaqmF8G0)$dUNFC zs2qIik3F`x1J_qO>F-&duPrTs@?7yUOzt<}`Y(mm}E>#&v9Nl`3gO8tjQzvy_!37vfbGmeQ9xU>$d{V;%QqeKQ}J{Bp==i8_U9{S8izg;lwbOQShCx?5_A zCPYOQq0EYXw!s;HKHqv-TViWKPJ5>u>}%K? zN9Ebgooel}z7oALB<@+_S`ug5qfV-zC;h%N2QMx7f&I-P|BSxZKInnItgkZk4e5!# z<8$bsdX(KiEC+AX$HE^qWvcC~kOgH$ivu|#CPzY6bkt~XuJ=HFC~<#jiFyRgpcA2nSV9`S-1Jp1IP1(Z=rEOt+#oSO~_8z~3 zKpB};yb#u&Rc9F~s;KjLYpGD0ng2V9K_i4(3I`KfNK^TLENj@iGoV^wdgUB9@Taq~ z#vhV7@9b}6r6WUnOD9Amkx+c&3IJMoni?VvRnB)u7@kn3n8B+fqeq3}k4O~R+hSdn zW1Ls1pGx&|L8c||s(rV{!$R>NtFJ0Aa7Rw6=ul&#q<2Pia45dqNH64OKNaPnK2*KN zMip`iWk!F@vploLBTahcS|xQeZPd%1G;Y#hG)Yzl^mPo%STiM$EhX3-SaJlnw`UEf zRk5(N!%IwWk#qcJ>7EcIvcD+HPz?u%-H{y%i+E(M+9%%mtXxa1DqTYoyj)nqe;1YU z-{r&kZ)QmPiScDpa$e_6k%ik5Wzj7DyMD2^KTaNt#bmC#kiAge{+wxm?H@a*vRZzv_DIi<6_{W*rs+kb=F&teGGdP&PNAKv93@J90_X}8|a zv#g<__WsQh3e4jO6mr31PA5-*z#F4FRl*2hDXs$OXYEh{PvEyG=rj{}d&tTMg< zJK%J+?Tz`?$As}LYtTC?kX=WZ*l|*=@s8OZ(w@>gS*27HpUf$T?}y?SxWkoiE_{H` zNN=e}>*Tb^yvu***gOPIrro}ez#suJ^K zM^g80ZB)idSm-kLxn#mseO&A_cB<|2MUF5p#*X%rR$S_dTj|v2hCiU<8~Yuc(`UB* zbYyMQ7mAHs^$dAO@;9^oM2_BWVHo;<&P9jnjJ@jm--NYl`MtMw3sISaSwpz2z`p=t zXJv_6Np!anv`Pj2RUb+aYl>8mXdqwRXa)^XL9&!Jay96cCi+Xs2V5f+!_3ubYUV1` z`9%MQu=!FWFQGFBm?4`o6I`Lrj{YI-^t-l8!+QE7fRHxu9tDbSQ{dR&3qV55DHlpv zO2&HgkSu)(#YeVDM7DLXA*LwGv;2}(L~}~NEg#~`#YWajyvVm$0dcaCO-a`Dk4&{z zK@y&xzD(w?#F0up-;=ya-!L}PWvBNcswfU|59!J15RN2Aen`i`O=q%D8&RsCNCxy8 z8BZ(}&zsp^V#q*IN$Orlj;8(^`L&C}EBc!co?oVWVw7Zq8o#F`YBWUhDoH)+$U*6k z!Jl$FeXo)J!TB@ON)`Uts$$El=-VJp$uW)?I51q!Q$CVN?+iK-g?%n_4+Cj^fFTV*208kC!eyXM^d#hl56s zowxYF6zx&l3rqUS7t|kadwaa-6_Ba-o&Jn0u$jbkF_tl2^dP}87Nw4f7p*lP&x;q` z&ST}yB~|gFAIa0^C1>y5EPEuPL*h|a=Ua01@jDbCeb^`3R8zufy(q7K3?#*irmOF- z7b@I}1rxi(iFCR*KDDgA*H+(T!?pQ;79F7Yz zR?)$(OJnac0fSCl#~f-fe%2ey1)TmofO%4HYX@y?>`RujUM#J53`#@igv!qa8g%s_m3F_f|YVy)lX zx(c$_R(V_BkfOzx59bpkWPqH-vr@bkHf*gNC`GH-Eyv$4mo#w>yf=6#y%<;B9tTNs$ z-8WVY%)j%ag}wEn^=nI`1- z5%f&A9=GC>ZxA zALAXllsku3Fb-NBgzGR*}iD#o8jWlZ#52`AW!OEi`47*hvC8>dz!o4Se=vxwE8&1_!j|QV7oTh}|TDQKilY zF!bysqNyjXXfu4&$DAg5wt+{~K8q(A08$Aijk(jJ=}S#k zOrelSiz4LHE`yL{BW%?rKaK(zI*iR%6QziWv#vZ-z{oiOz1ax%N$_MNIAjFhCc#q( z4s0kEKK?~2DN}l*{V;q4rRhE*#bZKgtgAk@uio1lSLxkt=#16ln~ctUY)9qd)Uvfz zk!yqTm{bajuw#}w+;oq8j_sjmipj!$J|aF(DDel0sb3CdcnjbEOl4UWonQp(%cyTH zChQkeS{aKQ6;LkgZB-tUQnxT809I1%Oox7GQ&;(4R&zYO{adi)gGDcma)EpyJj&h zPl^($<&fdTe4jYiFJ-kPa}i>S?`@UNQ@rRB>ouufC-7Ri(|gl6Qi&Ihl()^^o8NnQ4B(`r#unY#BUL~kVWT-vpyb*R%)ABd(LOQPv)k0g7CxT zbqY!q(4IgRqemr|f`&ef?42}qV!~;n3Zo~pXo{g%u9nvaQ+sM(&g&tT^3TM=hAKA) zyth0)Hc@(qM9@i3nkkvEGMXvQ-&ZTw&GopBPL9lZ$$$%Fd_=nJ!@yo}YE99pX6~s6 zbhnfe-_FAPEMwr5zRCJ9lT+gC9Kfbf>~pVo+3n;4BO5}MhUepLl~D+_B>%B|~Yv~Uid^$VBr<=3*^h27-qIAo-eIl0` zw8FHAdrPoL`53~s`^Y7SZGmjIQ7;?Cg6mu0h{397A;4u4km{V-z9k>U{*XG+uOPY9 zz53I~E9Sj%jX`AUmJIC~c{BTwpPp!gU+xd_) zRUk2BJ0F|l$KfpFJl?cfQi!u%m@&H0$o;IDTJ*?g)oyq6fspntwXR=bRd@7GtJxX& z!lMXZ+a~!mc5SKO6=m5-(ceMJke46x@eI%UHdQ2MH5pneEagA?PW;c*OGqnvofs?@ z>RFCKVW&$0{&NC+?gm|R#Tu{I5Mb}=tarHm6oFSoE)QvpcIG%=>6D~ zCU-Th*n`^3=-F;yurlRc`8p3+=o{U9nS7QP5-T7vz0a#4P6w-3@v-vf*>6lp(nUGs zeKLZleQ7h{nGGDxbTXpY#e=j*!&Pl}$mXZ}Kv94tvaHb9hmjb08#w)roz(WzGu1*m zDkXb&^ACyPEmEJT{5epn=o5s7_FBD5A1N{LO=#SB4Buu+0D~7H4ml{)|Lfa^c(Sh9 z(rQ_bR2b)1+q+#!CFou7>lQLe>wo-?tiAU|DwZ6Hy7!6gD~_J7 zR#lOpbYrS0des?e{eug8veyi!OXtvc0N=EC^vfVi7M*hXK35j91H=~@vE&qs z!jT4rbpC~_<|4lnD7DX8Uun>5@*wqcyHWmU^iPjvoq(8dl-|+9R{T%?X@lLq3jN97 zPR@Eq+l?M=>@C@_cL3dT7D=JlzzIv?=|A!!ml!*eI(Rkqi0IKt2Dhg!8Df>?aA&^#)8G5DvPm7p#^HqdbP^)e7m_$`dxiSCh-y@@#wFN!rr6zwhOz)lvlU@2S&n$ zoBxLTh9_?Q#rgl<^k-cD?@j;k$iFxJ8EgM-=_ijoI!j)qKG<7+{4qw3!QCA4 zihq;V{oC?qs}1d8B-0+s`@1>sujjl!mwBJOu{V|tDt)w~ck_5aL%?WOq4+!(BErO3 zP8%qWZy(~aKSJSRCT^hMPBL&yOdS1Wm;N6H?uRB$7A@)fQIvR5%L8idcb~0AXF!zv z#Eo>c)11BXxNquaedCc?qXU-z7yC|Lgl(2;`~`pO)h7CtE#e$^>V0L}r06&@FvF#O zybtzb2hYs5jwRoX58S*^jiLHd97B!2#K}zI*n4@Alh;FMdaHD8vH9ufyJ}D9x3=s{ z6B^xRx5v&|=Cfs<B{|-63LR^N;D&Fx%yxZ97Vz-dWUl3BFy}WrZlOIl%%o$(*X%E}#IH*^} zm#swf?4$?3eX{oQBxqy;o$`BcN@Jm z{K}O7@PO))MJqDXKrR!=RM7_! zjHlH4PnoD`34)Ilg1-g9 z$`6vQHHzLNAh(fueZ8JuicRNx+K#zra6ZenaDsKCUx{oXN@zeiu%U%wE*!ubnWd zW{SUV)`G_A4GaC@*;g!>zToOUqvtnWyht{b=12UEiyG&t&&F3z932W=SQi*o6RxTI zo}ZM))YM&AJ!z7E%!G;lK%d&c#JZZ%lf!|D{@TeCDOdH7K4a#SYXi(^o;|O@zcAX= zG=D+FKYQMcInjp32H4?p4H+_Y;nfQp8k-gljn13BSY8$loilr0bn(y`FeTC$QM?&4 zLvhXJGLX{@EV$`&=FFc#v}p??(`Q`eI%Q#Gep6FpgS;+?*r6(rH0GRsJ{1!={rsi{ zjf?yvNBSG*G|qJi(-zLYrqMsbFTm9_zqxV2{F!I?%bKQNsY0gBt?-}fuNdr7(a!fz zZ}>j%b>T_V>PC;6HmT;4Y8TZ!Z@wg1ec^=h)#Htr$B*=vyXH2|_49DyUj5?5vt7a4wfm|^lLw9EI_&(DMNy~=#I=(ob< zJNfzflW8*RSH**TZ-ra$pwzF5|0R5ujJfjj^C#cen(tLSOStvkk@GGIOSoLvB0oQW z@-EAv%w>Oe3&&VTK-{<5pYbb+g_3rz$&ZT#fA>M7Hz zCr+GzL98Abnj&+CT6RKxH4STd z6=ugM<|K+Bq#SQhfgm z{QZylw*vTe{&sS_q4V$Sd@FH7f$YEk*WXt`zw|7p`73`xPF#B5{)` zGv?2oJD+JZ;}^NQsZlKap<0qKM->j3z{C$wJ4DpDoWMXV;)sYlW4afI{BGieQIjX}#e|9D17Y=H#xFT!ev?9h ziPgbrqiX7GS7uxtHj(vPU+3@Zd~>L{66Oq-=fAM@?YW7@pYz$m{VU<2(w8tRT%e_w z2k0-|b>+NGqwk3aX~nbP!Q&fF$3erb1WdTVHMD8L{24>%GQtp9=o;D>nK5)G-RCP@ zk-1GX7rGYCnyX?CZD?FHloytdt6z%=$FSr&e6GK7@r=eM8C_7L2#k!(T7WYt9e(qN z7qf)Lu=a1x>?^LEF=N`oAq(dZsc=o3tcDDxO>A5ko!f{pldz`71qZdrJNn(Ajv!IKc$#9W0s5{sJs@yKC_M&HqMzjG%|hRRYOmV4wYuX zsvIC=Fjt&CZ0MYZ)745GS-efrtMq;}3wvGR^7IBz?h&JsGA{`dE%b)Ks}-k`|pI%3uHv*g3hBOcODX>}ISy#~p+KRre8z{i1WT=+q3BkRgbrxycv(|+hGcc;_Cfla_xU`ug2?PftmSHE<+4!FaUPOk)Z1J?kXeChN{ zKp)FP_5oe22VX(Cs(@>OYk(cV4&Y8;H?SM%JCSr5Cn*Q|fwjP4K;OySi3aooS4%i> zorD9o0qe`K4-9BD0ZV`_z;a+aFa%r!tOxoBlMb*7xEfdwTnB6iZUZ*4CC|+|u{A(H zu=dP!dJeGTEXoD+OP>a~4nMH&KPWeF7O)H00_?!o__^T6rPKEdKAcYP05)M)2OUm0 zH)#ZcwHHGVupYP=*aU0`wgA@xJAfU)9l)JH*A(&vRsr1u_#WsNcnRqM>o21mzz&wk zx>yfaenmQ63+!%$ZeYi3z6UmapYK_h(+%_k*UTXva2;?Kumjiv+yPt->;|p_y5_vUGY1&<|_^RsmN4Yk_NkO~CcQcHj=+8lVpB2D(^~-?AJz0M=`y z18f2|2_Cot*bZC+TnAha^!+F40BeD=zqkwN8U$T&=mA!(q@IBO1oZ-R-3UK{wLmv| z+Hw=}2JC1j9?V9SH>4_LmQ@&dbnYk+GW zLY{!N55sTZ4q(a2tOdFUQxCvFz$Rchumu=o zTnAhY?0A~?3Fv!<{7&P0;Ba8mbI1X3%?{`}o%EmQdtmL0$UCqexEi;SF-?f|X_w!Z=&fZagfQ1bf|`~(9_7@GsB4boq;T@c71fN-psBZFaY~zH{`sr<_?T8mzt#0?U&4CW0`3 zlI~^v`2{cEn?H#Y;jfIla%3(>eu%7V1%Jc9{X`Jo_4te_3I`Qx+=$yXj1Bbl^SS(T23vN;}R7RWyIW&wQ?m%|=K)tst#dS33PB&xW4b^#q$sf=bw{ z`{rM4zl`oHyy@V(5qY$$@*Tf&{$2tX0@o~beNXBzKjg3zYx2UNPa}@67j2W*h-1of&pdA_C~)WX$n-HHpQZfCFNg0f1y05j zF7iZ^=Su7Q(;lGp6PefmJxv3Rdp1pb0-uZ+^4%MRw-bJ;pduchNSfe31-}!#bUmz} z;EQ`W@yRzip>#)O8*B#o&KS`qH-aT-QOv=GPYt>{(5!`-(2F zA+0x#Pp7XETY8c3LQHp6AJuwR_nqqTRd4pVFG7_i0(HROOMFvOnofV0`Za8$YIAb* z)Xcvs+M}eI)$OV$iBb%2*(vx^eGW{oTG}v#Wmzw)Joz(vOc2|3DFNd=<>Rs&x3S8O ztssxOVd=DV$K@yW_H%Ic;GFUycJ6-gQ^3C_wyNOIv@ha`7~kw5Y|wD7&6PUM-=)lf ze4~ROz?`uY4_fJFA?0$Pn@%tPU)Gn{v|7>%2h!;Y&ib08YO7|mSX}Tz&tl?5MyJyW zMTEz9rD_X}GOQv@C#;`@nLpvjJ>a{*3z^nW@G|DL6MU{dz5#v*c+=HYpGf>q!S4fa zno1jAjN*2KKS^PX|0I4Xcy}s9&nIle=PZ{#QP zyNYMM8sA=csM=NJ*KAj5z?X@<(XNg&k{}En!xaoF2@{XRMvd+(>B(5%+Og^MWHY@3 z^f4p9qVZFDlwXrTNpDy&{zpwZeTCUp9*|zfr<3&N_L!dXw2ku0nB&ecV`_&?PwAJW zx3tIfE-)A<^u0uSq1tqM%fZrfmbW&4S&!){57v;!QUr0^q;&c>r0vRI;_-dgBg1sA z5#a0V=(7pl{GA4rG1G0}?~wXeKBw(}T!s5G+Um>5Cz4Jp@k19KD8D}kUj;r_-tPxL z96ZIef0E92@a5nw8zO;%-)+V>MNH5N|3we+>m>|DlJrwTKeCm`58J-)Xz7R0H^`r# z(=LqaD;>2gfB3?_`M=9Ssag^qEhdl0FGdGV9a))A_tNZ_<)a*CtE=LNi7(^IcTAz* zjBl4~)0GWYGH1%jj=Tb2&y9+bVo7fw>9t;#PXDln^m6(os+;(op3@sEJgwy~gpt0# zKApbiE2cN?5b2SevI9RS&8`Nnr$3k+XY?%Ssn6eq9FIQ0#dqlK9@6W$lCg@fl3r6m ze|p9}BxopZ5E@5dK)b%5PR|#Du~Vl1gaL{bN~e9SGE3w7iqPXkReRjkeFHob)#_@y zB%M~$abLyxF+HS%s)ljH###a~t}lH)KeFQJughnW&UVtNC7nh=D80jLQGGp?Bu8PFg3{9mRcdUqM=tRWpl&Hf2K0)934+;(Oq_;uhZhW(THcYt3D z-twm*R04k2}FG+ZL0lHW?c zcg;JHjyu5bn|q)g+yK5Ce6C%43A_$I*ADJ6+bfMagNF-sF!mR0Z`2^`+4;G)1xz z`M!tmI{5A-K@en)*{J@u@(Wadd#tA;FMsWULo(HhO=5dLC7mfv)RUxhq4?DKSEzxM zc^>x#n`;Fz#&pM2y_CWv_YczPQ4${?TtF#*BfwXIm(w&Ehx6x8<*QMBn>_9@9zQ7g zNxTN)g%+gKXIk;5sob*SS+bpXO>J0>ME3sK7BYdO24>`uu-m4%YZ3;4wGsvTQY{K6?q~~A6n6u=g`jxn5?lFBQnBxM)C`>Kk zs!S4xpU_)X~@6$^BlB?6{(~YFn7>>+O4g+_25lCgrtu!u56s_z<3U{j%EW0f{ z-Oe}l*Qf0<+cI!6pE(EI5R-?dpCNu^i_s{cYqa7*cQJFEO-opyA#trdLqfM?$=IZj zY^agq%Lw9kv}F5XLPs6=_25x6^%LAIaF2td30A-1{C} zd>YRzr;7ZgF4yyI!&0+vqi7YS3Su;jG3lLzw-RpEnb5EY+&XYhx}-C<0i1-(uZlmJ z<6RH#Z9zbn)6S@|VLGugHmry%2jd*wL)xTlQ%IxX2G%c18km%oG6uIy#`C8t4;ZeG z-m-lP!>OnrL1VYz6l^!faaZx}YQA;Sxfa|V;4C^thBts)1MYpv13I1kkW9aPoQyM! z^)v}5dl&+x?j=o`zYfMYp;FS~C-OZATno54f?#aZhoVT_Vc>Uy7x|K(;6mU&1xFL3 zeuBFUoU4_w3j?M4y-naQ1GiFe`54m$s_U-OSV`Cp!oF?Bmo(OZ+XGH)lKcdBKR9<= zcDmcZHGsQEBIPgk_^__>D16#Y*gnG4e2KCnw9DpLamIHx$KY%8|8Ow34|coCnTLO4 znc21?ceqaDq(zXhFkxMUjpJGLM`moSuvvr+SZ>y-BTQtum9P@Rlx{e}B$*NX-9fmU z@Ku6F*(Y9pOJS!prl=dfZbT-xm|9JZ^{k^G9bA5PqFT_&UNLmG6IGjH{RDPgE5h z+A@VfuzbbWI^u;^n(<~E@v8FcRlHHet1{zVOS~>C-XYSvgLsP*>GTtlubp0lN^gvr z9#LG|`Okl2&*c|=-a~jh;bQBppL|!yB;Q)_J@G~2mJ(ie6Z&qqA-Jw$%NVCN`!<*} zV_;O$tCRTc^erV5>fuUZvtM3}dW;ahg7Du7Vh;6;U2)dKD#A-{K6v>3gs&z1SMq(t zX ze~557D_Pdi947TJ&a);z|If;i6f&iLw-fHaHCykb{&s^e0e`VX#J*(amajA1Z821R zCD2G`00ZkG;$LK-Z2W29+rd{m@M25k$2`s?mzqFFR(ThDxS6;NHFDNyVe^{2UOsnz zbD8h3{N{3BpZwcRpFSnLWOc?j5E2Dn?8kn9$4#_G@Pb9O7$ znt{<&EH#Z<2Kv_7&-hM4&!>F1(~*{ZF8Jc(u}3}NWsQ^${%nb8{v`eg@V=j9`~V3O zd>!~Q@BsTaoToV;s=zDx#cU?>FSPwVyB*t+(~i+T2v64X?SP+V(iHjH0InQdKysm% zE%V8fkYfqkNmv76GmNluXV|BNttV`94`Du>k1u*iQ_6K3VdX!|)Pa01_#pV<;GN?c zB8UH{y>AbbtE%!ni70^pHY5xvB85sI2yG{6LL5OmPY93D1K}k|b#+yBr$}{oSyi2M z5VaNY$!I&HS5#zLMF}r${D476r3Vo~1Ga+T1IN}YGmIZfD-4ed4)?d#`mH+W?5+y& zj^F)@^Fj7Gzq9t*Yp=cb+H3E#YxnuUyMd1gp?tR~LBQ44(K-QLjQ10GuYOYdrLL1= z@|f83v2OkuIuAx46*f}dP005&@*OPz_F)w8O5&Uyz}v2P{`r^eh6mU~G9J`5Jze)* z?cbe#Bhw{7!F1^)`~DB(yC3`QPMHHw`8Fc&Bjf4s zjh6v01D^rDbS@sS$0aG>y7YIXb=V8Bsrhtn?ff;68%rsH+-v7|H=X@`=guAX-21~5 z_vuP~Sw0RTJO_DXFW_NP$5j7$zw7~#xT@z525bu(EK`oL5$zn zBhfSWhe3WiTImlLOa7~{9@!{Ap8v2vR7QgA5-v%9ko|mjd@1%xVsATuO#-Xn-r7v| zhpd@D1pAOYkK(=TUG()h=_k=)==Z?Hexwg!gNue_(vGjfyDq#-`X?!;6Zi_?7g(M) z!~mEUo`iol%$N5Y@qPsFb^L&R!eHi|lz3mq`&;o|=L)bbkCTNRM2tSc_m>EO_m?10 z%gn_Zrcfs0+HZm`b9L;0gWSPB0iR0b zL;bL<7Pr%Lc;9wSYq?%^IQ-X6-XDkeV>@|&KHg8YcrS8ajQ4HVrsWp=6Ts&MxYXx* z;Ie17nI6Tyci?>&-n)GZCi_Q^3$Q1Etq8DrN5HNVSO$4t1*`*@j<4zi*TW94FgxV9 z)CHOypg9usa*6yKfjt83W&!4YYM-_ZHZLjzAG;1~F@p0t4(a=VZwLO2VDKZe_M+jd z2EKP#!Yq9mzN*i^V$Mr(g8iI*zcDw$<8FH$oGA0f+ZQ$P zq6S{nz>6AqQ3Ee(VAnLzqmx3!w-?A@jFiu#FR|zDi1_2iulp%Wd*&HFvpdt5S=z(r z=xU>@e8tkS>zV%+OQ-JT^S+jEbU&s?TROJCrQN?Uy2)Q#I`ex=C-&m|y)B()I;M;7 zpn1LF+kb3nM7~oWxBQilFlBv76`jhDA^v) z(jz25!)2=hwq_yEWQ)MrgD=*mhTZl>h<4z9y`aLpXam7J;Udx&#?E;@cD3i{QvfE zH|@Jsfo}J$-aB5o$1TtiOFL+9T}-=~_Asq59c4Pkbe!n~(@CaNOsAR7Fpb`B<+U-* zFzsO4#k8Ag57P?MQKn-|$C*wron$)2beic5(?~xeVcy0x!?c5G7t?O0JxnW1N12W> z9cMbhbdu>5(`lwNOrsj>&osldgJ~DjZl*mB_3=@ipxrZY_S$6FAg zt!{E;n07GjV%p8LhiQfBDAO^f<4h-*PBNWhI?Z&3X*A6GGtDsVU^-5}>Q*|zXHVNs zv^VIddKHXa<6rSV$^XUgolXpACsb;MI=*2T`E&2}QtTN=2k=OR#(9Uxg5wxhbRAaB zjbv7IEm_{tafIA2wucq=fb3F^xGX8#%enTmc)+y_<=DB3aY4ekRx}`gE58Z=*9-E> z<=;MBsul~%tXI98@LP`mld@&$w_lK7aS%ssxnx$)P_{4bDzB7m(!$1Xbs*a>Zj(2= zP}jO2^Oa3;mRd`lL%yedSJ}R>4*x>FU%KnB!}m0>Nw(3~@7_he@nKZS)>4DVajR@({opS0OSUMoi2g&_zPhWtQnJN;Jmj~A^PHXdpX%1K zoUax*N6HtDF}YpfrzZkt)0LIFz8U`~``u@DnHMXIQ6@)+i*D9*4E)Kj@dDRQ>bte7 z^_?xBOnH*>9se6;wF|slzO6W=$hucA{Xp2i{>*viPUK^I*hy*0zWSy>z73DRpnP&# zc6MuyLukQ#l>3p8-{+tD>+(D3x&Ilzu%GpE&0r_G)B4s*{WxyRHP^hK{R7t_UWiw3 zbtqTJ=WuYDc;L97b)jlWTj_g)#gaSWS1y$?DrArFO_N_Q(`LUf#j$M)~ys^-+e0fLi*upW#F6}&~u>6?LLT7uS*gM=W zwLbr&7i?}`d+hVUi#ceyvNRs9jQ(ru7;~e2qqg@La3k>pkj{w?i5l|{;;&Ua6OAvh zl>%u$xe)GxJ`-&ZaES+mf6qli6-Bui&v?}c_a!baS>!2F&OL}fL3}X4Wm!(@ zduveN4KFu*BESz;`UO!B%UwYJ^4kKDXR?kPT%-Cg#th=4q~D+TM&ci&9#EWK7Xlag zw^B~m&-;i^F2D^g`3-_xmlJQ}y5L%aqw9$G5I>ao1H>;S|HZ@~BR)Z#aP&vw(*eF4 z%tqw&by25(C2-MabRRO}vVWs!k>an6d|gjp;-6E=$JbjOKUe8r5&1fy<0GW6yu*+K z`QpRG$B2KL_!Y!EE;hiIK|cqB7dejza_~E@E_;g zQGe@>H{QQ8Bc}ORlHTpMi@4jNp{bGW6D1Q%em*-Qep9Rqrara}_vfKDRj7~t#2Pbr>>rr9oS#xA-D4oB>2Drm2{w1_!;8UM;ZUWVY$~3ukbsC*Y{TE-(mFb=kFli zMf_ay`4RESt~C9xh|jDvoaE7?z@;5C3(;Y5xm`U+{J;R;7XzZuw*~m&#ODRL_m^?5 z;rTlMv7ncJJ$07Je5H2b6w6l;L>i-+lf>`W`l{k1zA^Ax8L&fNng<3YVv0vCO@WsT3xHdv116DUW*!f&)^#0v+8S!c2oy@R~c;xh$@vbFC z_&Lfmt>rF=#sYsh2LXfd_wVypk^ifKi=21S-=g{S>L7il*9aGqUd~q*yP62>=OX8S zj1hj9d_Ji3heVU~Z_fWJrQa{|@9`v$t|gz2hYiuQP;mP_$I0LA{66KMK>(8;A0H-t z+ukORteMI6e~3@qZO=ZwFN7h9etdrf%_v#|yjeez133hb0zJQj_*9^ue>FgcyGfq{I;WKUIBkI z@ybC)e>CMe8Mx>tZ1*zhBktevIO>zcr|CaWB%d1`A2Z=+ZUg!*tqK=?HzLWSj*^X|vSCh|7FkZ+x_0sM=0iRF9p{e}$S-bmu;iu#? zt_K@L(U&OCljJiVwAVgRjq(rh4&d4^7;oQ5KBp1y4#wpH<#R~n`z%NvUF3W?F4O%* zA5eO%%LVnif%M^g@EgR(X(w(!cRT;LnI2&FddYeHB7YC(^_|4!hk}BSuQhr+>h)@l z7h(K)B=Iro;kBe+L)`Zr>e)$n_cr3bpKvMZ%fx+uqMqG^ckcx*?U-RZdOUC?=_hYB z26|>8ZvVycQNw*)le2B4|LzF<;qOR4`Z1%YnxfsHK+!|A%JiVW2?fdi#4}ug`8UfJ zEh0YoGXwsf_zA>E*BKw5cbo@Y?5ZuWtM`z8CTOp(5uail;{9j`@o}yjcwF~0;=X@! zGv#>_xRe{l124xwEcNyMnU9;e(NT^EamAa6&zx(7K5sf1xbUw8^(qq&%e{FEOlHT_p>v?j>Q*-_&7~_@X^IqZ=j%#J&A1D9Ner_Ut2iyHn(#u&lQm@Hh8=z+~ z;`Tp@PmLPxeq#u%cYk#VaG@V%+<3GV6D=p6 z`G5iIt=iFP#M`)D;r;qt;=T{t^}L0+?}zsF@XK28`7H5n&UY@QJhwP~5P$v-xU^$e zFdp6M{VV8?^Jza7`H+Om<$tB)ft?>lyyu-Jh@Lx-+mnfp(r$hH>L=dK_=nk|EySlO zzsLWdB;K*oD@sGr39x+_c`o!%7 z@eZz^caqQTz@rGA;}RMs@t-(LMAr9S^6v`#|FfhI*M;^#gR1<&y3+x`#one_U!U(BPkR4- z#K|o845iOR2i|A$xL+!gevJKME$M5-r@D;(Y~t@G9`?Iij}kdy-4zlt`H+@7dtGt6 zmrFl?DCxgV`Y=xTg_j%H+vCLj_bWy6X+wjG-u!nZ8;KtYT=f>T?@H2#{_14n;k@P+ z1Yoa`eizKk&H(*>z%%T>7D;MuW=)IIM4ki z=_~Y~^I7%-#3utk^NivN0eQRk!N$KQ@WY2IKAV0;3;b>5)Ae$*tNWRCf65cK*C6TJ zK4pZy&i`TJ5y#Vakk56%rCq}IDndVkhwBVClh4#SCeI}K%!f-7`f$DX+e%NOMDlL( z57#Sx+JgRfEO&afmFxcYRT$7!{-EDI*@Dj=E#$ls_9^xdt|$D>Lh9icCj8@8d~`hc z2z?muy^D4pu2;xeN0~(Z{k8-6zR@3__h(O6qkW}bVgGtli*m;iZ>ao1e6m65ook%- zw7^fq`nK>1*Yn@gg8rTCM`1g5BajgJ$2oyp$D*ee8$KP(->+o7!ujv*#4GG~5Kph$ z;Xg6T&brP%+~kkgUT-GFPsyi)0i(wWPZIBpsV!1H(n!Tc|Q3}vfnwMC*d%KKAfj)Y9Y@% z$)}6@^!eHsF|QXs;rhUbNI%N?>}M&@w=w<-eK=lUNqNHg*T-7Ob5jfa`@mi2Nv)pB zei8bsUs2BPYmJ)AcF~;~k#qL-0}SXYKj%kBkVMX`5`?k? z7~hVPzMJbXhk{nFCn!%CpMNG}a)#e$Z&X}zrmt=op42N`=ggw9M4oWH>yC`j&%S=v z0)Ikr)QjW3kK_BHBF*@;x4mzs#GXl~}~8j1dpl1HS-&E_w*( zn>V%K|2^^v_bsfV9}eTy-;lnGe$wOHXNk9U&ru2C9`!m9j`JZxY06<A^h$zgK5bNo6-%NsTkzSN z`V9A>Jw2A8S$WHNY`?&ARSvLH{%I5BEhp=Xl_k z7NR3J8^4Zffp-IMCQr2m{f8CDxcNF$@DkSKf5RS{`LXBrGgF5tW-^h@%0Z`Cg`uJ-=;yG-+PuOoffzPGi|!;f0v|JefnJNnOX{dum& z53|f6x)1$A{6M&_o&mk;fpPvN%z7m8an3uuzRQV^?q%)ean4f+Xw^S2G5mAnb0+D- z`O#*@XUqA)7Wik#XCj!7R63gL|0KrS;r_a-$fv^b3vNWOe{E6jHHaIfUg3A`$6C;T z77T^H`n5@2v#;_xKk01ugIg5f2Fe zaKFI_%N<{A?RXgrxq|p8_2&Kb>n->fSl@7cW(Vk-)%U>`eEth~GrM|D>0!^ocklxj zH`h;>;+WUazrB?8y08WP&k?_ge!}mw@^{>|eK|ix_@vjD&?th3^V!S5U-3ZB>spli zeav@+z9aa4@n2jQ3crWmN&eyY<$IMs#(nn3k5JABh*#KucPIWQ;-h<7yZ@Ud(H@BB zRS%?x8`0|;#HE6V`?!uEefS;l&CVxS$KF6ZT(_z0!E*OEK@jfhHE&PTPq^=~sC-D2 zNPYx?Mb6OgjkciwUoG%!6vz5);Q#-bc;$4Hlb>gz|Jc*y4EHO3pY-AW?S*Jxku&_h z|69_B`{bWMdx@Qd?X}zMjZfRPrUa-_uZP*+!+k{ik$!a4=nyXIbr<=EcC}dPNt8&A zr+tR|4c3!?H{%?HLwcRpg3pIYA2E*gaYz0pl+<_pYRixAsn;h+-xI{W|K#O9Wpw`i z`a3Pk{e|;6(Au$+{BL0V9IpTTk@VsBxIH+B+je{Q zdBi%?^#PMK$V2*>MJ(I1BUE}kSFt_$tM^~_NJM-s36 z-U=OI+3g&!!~KwJLEmhg`hm}9*^cf%fu@7qUZ3t(t(&?G_#X?TeR0P zN{@aN`1yJCZ{7U8%sVLY0bC~x_bZ-8KH)yzi-E%h&AQIs%j6ID?SIPUVH^dq^}2z0 z_iIc6@1`DZC0@xH;BnVA@Y~J&;f?SEqPNih+^u|Oi5dNY{M$HQw2@>UCKO^ge?@^xtOXE+YLzu+A1`v$@_x~Q1U+nygP7a}`|EL-2CN3DQeweAnuZ1?GFH*P#PyY9>lt2eGcZ9_KO zz65d%R_bM(9+NBMSQQ)>k*(JX?G@x}?}%`U!$_%+9mrKTlM6~2tko;kp$c9%`;Rt4d$ zC>sXQI8Lu`craft!2%*Rnk_|~X*Dz$_2vc#kuQt(8`@mVmP>=1acE6-ur%1;Q2wk# zN_K%9r8mwriRzV7wl-X;3{_n>-g47tG)hGl&f@?@Upo z@QUbiT!EOV+~)`3Irvc92J41t+p8>& zdIC3S0mm=mT*m%U$SmzMTPf%A#Z7RJ&~C9@5}VbY0qS+9uRL{acI}2W*({z; zSf7pE#pdER>7&qgez;mK4(7LI%WzOh`%>$%mBX`C%0Fs zHd}$VS*EpauD7Pg$7wS!7fw1GhtvSdaON6E<7wB)m z!c><-6_T=TF2ThP;S?Y^Djh>=7#~1g*f!V@CRZ0L00>p*vlTrwOQm(wLSt>om4`)8 z2vi%cRf>ZJJiwLY2XGV1B!k#cU$$NljP5^+R*Wg|%2k-H+if9Nhb3ei=P|KKleuEe zu@zlc@fZLO4Nx3_9H}XF?YH*C>pZ%Iwuc_Tg}T&p^-?}tFT+t|U>?j4$nYs*Bn}od z^GeE6sBe+61wNy12r8@9VMc?JQMH%DX--LM?c84f97b`c9D))}%Q9XMlYE!ag2)tGWN=|kf% zh>M?vo{Cl29ERA|euBf2xI{6JxZEZ^XK;8xsxF3CLzk=%MQhG(uNM2-vsv-b34fg3 z0&gaPMxwfu(Yk~l!k1)b_vYx)T*CvRWv{!~Splb4;=r^RG<$9Iox~eeY@_Riu9Y^d zT`6U^URuLp=*>W`w%Lp~+gp<8GFFjih`WIuqiA)>Bh1bhD=4B-4;4%r+hj6TmTSc# z+~H2y){1XWu(6}g5^Ng|s5p`!Ym}B`p77#u%ZP_{$^b8t3_n$O?$NwESun2wd6J=q zYluOz=n!yi149Kha&~Z6QL2L_vxo8sk5q4$c0#3ma9~$)zV!-X3xu2fMLAM$2nR4q z4C`+L6Or&@KzoBkJT-*s`Atb#Je!&uMv1Hq6+zJ8App)iu5J@2kR9nobS|CD88F7E zd6vh+|>I8T$_rmtkH_4-t&AXIjj4Lb1Mj-O6Mo zQp!W7gjno>+GVPGOlO17It`nQDRQKoi)m48tmzwXTE-TxgJgI2!eSc_o4sL%;viF{ z4-f8ST=2pWBIHYbrF^2YYAaV(HC)oP7!8EViWr%)U6*#}jJR!aw7 zK@6H4F*vtjMBS*N9>N~ZNZdwin@jMhaxgDu+2YdN|1mymSshu$p^Osp;oeD6tDw^U zMhA-csM9!0aRf)l#*a$Zh;KCx2#pV=$v~1)r}aceOa4+rB8JmC&f-PVBf?vXLr;`0 zHBSW5cw>1k0Asp4=hpKx$Jlbr?#8rXHaBUO9iar^jW6`89)@{&SbiM9%6JdsS_JR6{ zO-#%$#!S6vm^}h^u1+OOb%MqKsc}infbJkQ1o>!}7{a{Dm|xU%W~U7a>l!S|Orl}y zekOHbPZFoc{@$Ih%cdPX4*GR@w4U!xRzpOB_He*$GiR0xe3RL{1U1vjP`Q+sj;XRs zw9{7|lJGdy64ur{%Q@~yMO%Vs;oD}Z4+=?*AMV4{OZ#kvtze4{dcbfP4K;=lSX8rm zq1aa(>*wMk5n0w0Bx2LxVGF@pc<@aWwDHfMjk@c6t_`IWi(zprrY)D zi_G;+K0vQIcf-n4*RKYF7o`3{*EIo}vxp-s`jUYh78p%!+2TksKU|kVMnuDW2IlDH zIZtc9*bZHe#9}wHm>+7+0Ygn}tSur*b@o1+4E;u|*dWp#>gz*K@Z!Y+tpW*K^lFGU zFcrsYNp=AD1Mo^-4Dvfw%B*bgZ@5?syIaU_<_u1KtVCZ)m8!E)ANJf?$Ll$Y)boX^ zE=I)lba}+;eP~FTh_;GKD-}bz&3r(jV#$$D$H%xVdaOh^n#h+@NCHpx>a0wiu#%a0 zoeZ-ZX6(HM8sZe@gbinA*Ph5F#1q$?4i1eqDUxhFb#-HLQRV=N-gv?(r>$CfO7^sM z>&{raF}rc)s#Dg=5@a(?F#erYY3dodQrdMlFuhqmd&32-` zh~_eQQCusA4~Q4&=v48+LdHlp=fpjtAZw$z#3q9uic*ikX+Xo{#hFA*IBQwbhgPxd zi7Y8AkSIt`ijVtgI$YyYLaGVH=UQx))GdcS4kod~z&MD%tB}pYw^plzSY(tBdA4fg zotCS@T_>Efe${Gx2wZ>G%8hH0rEZhx07r*LaP0cE?htoZ#}z@>>>tim3#xE`lkBg9 z6*6DizN~#2ibUi+SZrWR+mC4!2QXKtV z?2{n97;C;*LSK;)MfHo$AaNHR7Dk0?xinC!2SsbFnBot!Yy`NlM)bbmb-aMSe&ea= z|2|uW?+{IG)B(=g4JwqmpSa~T6N&TF2z#B3UNVRdqLmJ+%8-vX+w?m zwya&IhRUGv*|>@?()|rh$J&Gh_*`5c!sqG6Tm4|;gR&QvFf+8kW?6B;d>lQk(C7+Q zWFID|B#2lf`gmgmZO}TW1m=-;WH@bghwE2R+)pihf6*d7>-WXB>jo=Fp7LNi@ z#-LzU>7#|u7Qiy?ES9!QAH`P!e6|Q`E^S*X1fUKSSkv2_?aP(CotCzDHd;T?&|u&V z?NOM1M-0S{^`x4RJ{VAd(QqJ1qWV^aq&D4mRcf2?ktP1Z9eA!r)s{his35;7-HV*1 zeG+R>i^5`=8BVxKdL9cxM1@Ibv;H*f`iO_Df#Jc~t(fA_s7ct#5^5HY#)?wSKFdIB zSL+BVA#SdQK&YN>G^vQ&>yjlA>>sRJR5R}KVNDS-`C7D#9(WcnquFQ>uX$9G=HCgC z)dMBGp?5#=20FT@iqj61EGY|Rb0#M$cPHUoJab&Jps}0)IzfH>E3pm}jH4l=E(>G_ zF(k_-3+m2`kniN&7ZR9|x>zxWbVTk&YO7Pv0nd7^CVvekGLN>cR4fNQ6qA7DcAs)s zZ(HsPS~)L!Z)|NJJ5_=rT`Fx=m=sn`l1(LpMZ>>hYf)|>#XOnYtr??|tX4y_*nH5G z8n37X+p>YNLS!7uH>Z{@0vx+xHC|*Rpc9P^AcPylvPp`8yCwa~f*E4!rFeuE;;AY^ z-)w%UX&21Nho8D^0ci*j8;ROEM+%BeIRcs*0+z-?axoTmnKXgSZ?%f)I$%gh4=vIO zr3YCzs zda+7Sl24=dhmT_4<^*)Paf9cxI_a1tUZt9^d#AM4QA5{{#Lg_;|99p`?JJN(`$2Wk zwD$Qkz}*`ySz&<=*K4h_z{2&Wb?hcXxqPsjU7UETTtEJ*;YI$=ZO>~p>$6Pb%Y;+J z^@b#_V=O&{eatJdOtwSFRAgt~4ilBx{2?uOqsel5yvCDQ;t3SzJeuxTA+6U~dyi*m z5-xV{Z}Z1YQAzKp5&2&ABQN3}JIZqzJkpFSAI@c`eZN2p|$gt{eQll8gSooZ|$ z14C+R>veG6Ny{&kYunu8#{Qx%-!y~zq@oRW2RMTG%YqjJ39*_`6!nON(3fubNlWR( z$x*>=B{|UR5Ct7NJ-Ep#m&TER#mJX;wz4VDq~6H}4GRmx2*>B)L6v2+zEHPquVv%l2Jd&uEn z(xTKH{DrcTeQh<_k&2Zsf8qW#8F6`o$=qEA1sWEY8iJ}jBe%lX_N@`ongg4$P0&Yl zw?@wwSF)jlgk8|7ixzG7iOaSGqZ|B2V=9U;B@hhphmY^6R)JsUZbC6S*zl};+}xq- z%M7W&YIYFQ$9bezMRl1UYD^ZxswSdy*OF(o_K{MO69ZIGWRwt$>s+#-ERZ+NB5q>s zs9-l(?+fbhIiy|FE6i%L=GQQ|%U;hQE7t>!=x|@f`DY0d7fNnzT*2=FWcS{CJX8hJLH(mK?;a(C|afj(p z%GkX}lXrRs9@KjYLq}WXC{41~Z<-*aZgh4A;tv_0RbfM&%a`=wcj)ifswiMsK^^NarPd;S9 zLke;Af)sy{IVbsfS1H${c6E^LxNYwr!lT^OiutG=+qdy3dlo=Fq#Kh!i$&v#R4K9h zvAwv7d-ykD`$pplg=33eaYS~c;ddkQ)l18=?fu5t?}fVvhk~?Tvha`mLv;}c2wq3+ zy|o&Z!s4xZ+_>NFZRVX*hhzPyq*`c7hTfSbLm$K+^^`?V{!Zq9n&4+&*cZkv;#^Ta4b*Bk=pWd81Ct~JvQ1n%>N0zm$qacxcql-o_+=IlKH!ajo4GCa~A&W=|2bgyP4n9wihUWGRW_LkJr=tAMuhc z^>Q7(Gsy3M2g=jEosem$za7l)?H~DpOH3aK8Xyz!yFbY9=SF+#=SF$9Q2vL4{Qmc< zJ*D}3c5SQ118#m7-qif@s2RR(|L*h?CDX+FC}?? z|2w&(%s=B9nP!4#`B|;>UC-}-51{fb;R-)O#n25j`oGufYoJM%KmJ3@H-4L?J;Ee$ zx!j(v0$DPDdZ0JN$Pb6JB0_|2xSu%-^xn zDJ{*UA0zp58m^n mov r0, #0 R0 => 0\n" " 0x200f4 mov r7, #0xf8 R7 => 0xf8\n" " 0x200f8 svc #0 \n" - " 0x200fc andeq r3, r0, r1, asr #32\n" + " 0x200fc andeq r1, r0, r1, asr #18\n" "────────────────────────────────────────────────────────────────────────────────\n" ) @@ -301,7 +301,7 @@ def test_arm_implicit_branch_ldr(qemu_assembly_run): " 0x200c0 mov r7, #0xf8 R7 => 0xf8\n" " 0x200c4 svc #0 \n" " 0x200c8 strheq r0, [r2], -r12\n" - " 0x200cc andeq r3, r0, r1, asr #32\n" + " 0x200cc andeq r1, r0, r1, asr #18\n" "\n" "\n" "\n" @@ -325,7 +325,7 @@ def test_arm_implicit_branch_ldr(qemu_assembly_run): " 0x200c0 mov r7, #0xf8 R7 => 0xf8\n" " 0x200c4 svc #0 \n" " 0x200c8 strheq r0, [r2], -r12\n" - " 0x200cc andeq r3, r0, r1, asr #32\n" + " 0x200cc andeq r1, r0, r1, asr #18\n" "\n" "\n" "\n" @@ -438,7 +438,7 @@ def test_arm_cmp_instructions(qemu_assembly_run): " 0x200d0 mov r0, #0 R0 => 0\n" " 0x200d4 mov r7, #0xf8 R7 => 0xf8\n" " 0x200d8 svc #0 \n" - " 0x200dc andeq r3, r0, r1, asr #32\n" + " 0x200dc andeq r1, r0, r1, asr #18\n" "\n" "\n" "────────────────────────────────────────────────────────────────────────────────\n" diff --git a/tests/library/qemu_user/tests/test_riscv64.py b/tests/library/qemu_user/tests/test_riscv64.py index 8ca9caffb..08a636f8b 100644 --- a/tests/library/qemu_user/tests/test_riscv64.py +++ b/tests/library/qemu_user/tests/test_riscv64.py @@ -303,7 +303,7 @@ def test_riscv64_jump_chain(qemu_assembly_run): " 0x1001166 addi a7, zero, 0x5d A7 => 93 (0x0 + 0x5d)\n" " 0x100116a c.li a0, 0 A0 => 0\n" " 0x100116c ecall \n" - " 0x1001170 c.addiw s6, -0x10\n" + " 0x1001170 c.li s0, 0x10 S0 => 0x10\n" "────────────────────────────────────────────────────────────────────────────────\n" )