security-tool-2.0-1.87.oe2303>  <@PT@7!.ܶujG7od!openeuler@compass-ci.com G7o >ܗPR[ R|7:\8\?:7/u?/ed  8PThlv  0  B  T  x       L p(8 9 :v F 9G X H | I R X Y \ ] ^ @d Ae Ff K P T Z   Csecurity-tool2.01.87.oe2303openEuler Security ToolopenEuler Security Toold!dc-64g.compass-ciSopenEulerMulanPSL-2.0Unspecifiedv2.0.tar.gzsshd-delete-deprecated-option-RSAAuthentication-and-Rhost.patchDo-not-hard-code-vendor-name-in-source-code.patchadd-secure-hostKey-algorithms.patchfix-function-allow-rpm-q.patchremove-sha1-in-sshd-config.patchdo-not-create-allow-file-while-the-command-does-not-.patchUse-secure-MACs-and-KexAlgorithms.patchhttps://gitee.com/openeuler/security-toollinuxx86_64XG K^>d!d!d!d!d!d!d!d!d!49567738ca4e5256b70a3b5539bac97626da2f11c9a44a9c34fd19fc95b7f794efaadc0e29f9432d4f4166fa472973e82c78a2760d082600b246276e92207e5bf46c7037c5b13c965e3d251f54b592ac3c7f9f0eda0a10cb25c46f73d4101a98e094b21eac719e564707bf63379730c38aca27d372f57c371df501116622adf59b53b27e8aca22300bce92164afbf18f62e190c335666589d13ab9150c7c576e67374f0a262c51a185712610dad6d9288304382aa2c1a2012a7e65b26dace6f7d7c504dae3997675417ab501890dafe2b26b8c950d15b35a26e9b5a3946163da11242935db5890e7e8fdd434eed037129989d0336c40205a470e5742e300fb79cb742724e0833d102686affbd18d83aa2fed027dcabdc4a0d33ba6538e2cab9f rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootsecurity-tool  rpmlib(CompressedFileNames)rpmlib(FileDigests)xauth3.0.4-14.6.0-14.18.0cS@c @ccv"@cBc @b5@b@bbi0@b `S@renmingshuai - 2.0-1.87Chenxi Mao - 2.0-1.86zhengxiaoxiao - 2.0-1.85zhengxiaoxiao - 2.0-1.84fushanqing - 2.0-1.83zhengxiaoxiao - 2.0-1.82zhengxiaoxiao - 2.0-1.81zhengxiaoxiao - 2.0-1.80zhengxiaoxiao - 2.0-1.79zhengxiaoxiao - 2.0-1.78renmingshuai - 2.0-1.52openEuler Buildteam - 2.0-1.51- delete deprecated option RSAAuthentication and RhostsRSAAuthentication- Do not hard code vendor name in source code- replace openEuler to vendor- replace tar.gz- Unified license name specification- fix sed keyword error in /etc/pam.d/crond- add secure hostKey algorithms- disabling the dependency on binutils- fix function allow rpm-q- update release- remove sha1 in sshd_config- do not create allow file while the command does not existdc-64g.compass-ci 1679890124 2.0-1.87.oe2303Do-not-hard-code-vendor-name-in-source-code.patchUse-secure-MACs-and-KexAlgorithms.patchadd-secure-hostKey-algorithms.patchdo-not-create-allow-file-while-the-command-does-not-.patchfix-function-allow-rpm-q.patchremove-sha1-in-sshd-config.patchsecurity-tool.specsshd-delete-deprecated-option-RSAAuthentication-and-Rhost.patchv2.0.tar.gzcpiogzip9utf-847eff66f32c258efc681a55830213f93646032097f3f2e6d428b9a68470a92ba4747570553150f743f1676ea04534e45a6e2886a14c578914f386d74982ffd83 Summary: openEuler Security Tool Name : security-tool Version: 2.0 Release: 1.87 Source0: https://gitee.com/openeuler/security-tool/repository/archive/v2.0.tar.gz License: MulanPSL-2.0 URL: https://gitee.com/openeuler/security-tool BuildRoot: /var/tmp/security-tool-2.0-1.87.oe2303-root-lkp Requires: bash setup pam util-linux sudo crontabs cronie Requires: shadow initscripts ca-certificates openssh rsyslog dbus-daemon Requires(post): systemd-units Requires(preun): systemd-units Requires(postun): systemd-units BuildRequires: xauth Patch0: Use-secure-MACs-and-KexAlgorithms.patch Patch1: do-not-create-allow-file-while-the-command-does-not-.patch Patch2: remove-sha1-in-sshd-config.patch Patch3: fix-function-allow-rpm-q.patch Patch4: add-secure-hostKey-algorithms.patch Patch5: Do-not-hard-code-vendor-name-in-source-code.patch Patch6: sshd-delete-deprecated-option-RSAAuthentication-and-Rhost.patch %description openEuler Security Tool %prep cd '/home/lkp/rpmbuild/BUILD' rm -rf 'security-tool-v2.0' /usr/lib/rpm/rpmuncompress -x /home/lkp/rpmbuild/SOURCES/v2.0.tar.gz STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'security-tool-v2.0' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . /usr/lib/rpm/rpmuncompress /home/lkp/rpmbuild/SOURCES/Use-secure-MACs-and-KexAlgorithms.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f /usr/lib/rpm/rpmuncompress /home/lkp/rpmbuild/SOURCES/do-not-create-allow-file-while-the-command-does-not-.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f /usr/lib/rpm/rpmuncompress /home/lkp/rpmbuild/SOURCES/remove-sha1-in-sshd-config.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f /usr/lib/rpm/rpmuncompress /home/lkp/rpmbuild/SOURCES/fix-function-allow-rpm-q.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f /usr/lib/rpm/rpmuncompress /home/lkp/rpmbuild/SOURCES/add-secure-hostKey-algorithms.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f /usr/lib/rpm/rpmuncompress /home/lkp/rpmbuild/SOURCES/Do-not-hard-code-vendor-name-in-source-code.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f /usr/lib/rpm/rpmuncompress /home/lkp/rpmbuild/SOURCES/sshd-delete-deprecated-option-RSAAuthentication-and-Rhost.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f sed -i 's|@VENDOR@|openEuler|g' custom-security.service %check %install rm -rf $RPM_BUILD_ROOT install -d -m0700 $RPM_BUILD_ROOT/etc/openEuler_security install -m0600 security $RPM_BUILD_ROOT/etc/openEuler_security/security install -m0400 security.conf $RPM_BUILD_ROOT/etc/openEuler_security/security.conf install -m0600 usr-security.conf $RPM_BUILD_ROOT/etc/openEuler_security/usr-security.conf install -d -m0755 $RPM_BUILD_ROOT//usr/lib/systemd/system install -m0644 custom-security.service $RPM_BUILD_ROOT//usr/lib/systemd/system/openEuler-security.service install -d -m0755 $RPM_BUILD_ROOT//usr/sbin install -m0500 security-tool.sh $RPM_BUILD_ROOT//usr/sbin/security-tool.sh install -m0644 security-tool-2.0/csh.precmd $RPM_BUILD_ROOT/etc/csh.precmd install -d -m0755 $RPM_BUILD_ROOT//etc/profile.d install -d -m0755 $RPM_BUILD_ROOT//etc/pam.d install -m0644 security-tool-2.0/password-auth-crond $RPM_BUILD_ROOT/etc/pam.d/password-auth-crond install -m0644 security-tool-2.0/su-local $RPM_BUILD_ROOT/etc/pam.d/su-local %clean rm -rf $RPM_BUILD_ROOT %pre %post sed -i 's/system-auth$/password-auth-crond/g' /etc/pam.d/crond if [ $1 -ge 2 ] then sed -i 's/readonly HISTSIZE$//g' /etc/profile sed -i 's/readonly TMOUT$//g' /etc/profile fi if [ -h /etc/pam.d/su ] then rm -f /etc/pam.d/su else mv -f /etc/pam.d/su /etc/pam.d/su-bak fi ln -s /etc/pam.d/su-local /etc/pam.d/su if [ $1 -eq 1 ] && [ -x /usr/bin/systemctl ]; then # Initial installation /usr/bin/systemctl --no-reload preset openEuler-security.service || : fi systemctl enable openEuler-security.service %preun if [ $1 -eq 0 ] && [ -x /usr/bin/systemctl ]; then # Package removal, not upgrade if [ -d /run/systemd/system ]; then /usr/bin/systemctl --no-reload disable --now openEuler-security.service || : else /usr/bin/systemctl --no-reload disable openEuler-security.service || : fi fi if [ $1 -eq 0 ] then sed -i 's/password-auth-crond$/system-auth/g' /etc/pam.d/crond fi %postun if [ $1 -ge 1 ] && [ -x /usr/bin/systemctl ]; then # Package upgrade, not uninstall /usr/bin/systemctl try-restart openEuler-security.service || : fi if [ $1 -eq 0 ] then if [ -f /etc/pam.d/su-bak ] then mv -f /etc/pam.d/su-bak /etc/pam.d/su fi if [ -f /etc/pam.d/password-auth-ac ] then rm -f /etc/pam.d/password-auth ln -s /etc/pam.d/password-auth-ac /etc/pam.d/password-auth elif [ -f /etc/pam.d/password-auth-bak ] then mv -f /etc/pam.d/password-auth-bak /etc/pam.d/password-auth fi if [ -f /etc/pam.d/system-auth-ac ] then rm -f /etc/pam.d/system-auth ln -s /etc/pam.d/system-auth-ac /etc/pam.d/system-auth elif [ -f /etc/pam.d/system-auth-bak ] then mv -f /etc/pam.d/system-auth-bak /etc/pam.d/system-auth fi fi %files %defattr(-,root,root) %attr(0700,root,root) %dir /etc/openEuler_security %attr(0600,root,root) %config(noreplace) /etc/openEuler_security/security %attr(0400,root,root) %config /etc/openEuler_security/security.conf %attr(0600,root,root) %config /etc/openEuler_security/usr-security.conf %attr(0644,root,root) /etc/csh.precmd %attr(0644,root,root) %config(noreplace) /etc/pam.d/password-auth-crond %attr(0644,root,root) %config(noreplace) /etc/pam.d/su-local %attr(0644,root,root) /usr/lib/systemd/system/openEuler-security.service %attr(0500,root,root) /usr/sbin/security-tool.sh %changelog * Tue Jan 10 2023 renmingshuai - 2.0-1.87 - delete deprecated option RSAAuthentication and RhostsRSAAuthentication * Fri Jan 6 2023 Chenxi Mao - 2.0-1.86 - Do not hard code vendor name in source code * Sat Nov 26 2022 zhengxiaoxiao - 2.0-1.85 - replace openEuler to vendor * Thu Nov 17 2022 zhengxiaoxiao - 2.0-1.84 - replace tar.gz * Sun Oct 09 2022 fushanqing - 2.0-1.83 - Unified license name specification * Mon Aug 29 2022 zhengxiaoxiao - 2.0-1.82 - fix sed keyword error in /etc/pam.d/crond * Mon Aug 15 2022 zhengxiaoxiao - 2.0-1.81 - add secure hostKey algorithms * Thu Jun 30 2022 zhengxiaoxiao - 2.0-1.80 - disabling the dependency on binutils * Mon Jun 27 2022 zhengxiaoxiao - 2.0-1.79 - fix function allow rpm-q * Wed Apr 27 2022 zhengxiaoxiao - 2.0-1.78 - update release * Mon Feb 7 2022 renmingshuai - 2.0-1.52 - remove sha1 in sshd_config * Thu Mar 18 2021 openEuler Buildteam - 2.0-1.51 - do not create allow file while the command does not exist * Fri Oct 9 2020 gaoyusong - 2.0-1.50 - Use secure MACs and KexAlgorithms * Thu Sep 17 2020 gaoyusong - 2.0-1.49 - Upgrade to v2.0 * Fri Jul 3 2020 openEuler Buildteam - 2.0-1.48 - rm zzz_openEuler_history.sh * Fri May 29 2020 openEuler Buildteam - 2.0-1.47 - Move -- befora path * Fri May 29 2020 openEuler Buildteam - 2.0-1.46 - Do not set umask to 077 any more * Thu May 7 2020 openEuler Buildteam - 2.0-1.45 - Update LICENSE of files * Wed Apr 29 2020 openEuler Buildteam - 2.0-1.44 - Update LICENSE to Mulan PSL v2.0 * Fri Feb 21 2020 openEuler Buildteam - 2.0-1.43 - Allow wheel group to use sudo by default * Wed Jan 22 2020 openEuler Buildteam - 2.0-1.42 - Fix problems of script caused by "*" and multiple spaces * Wed Jan 22 2020 openEuler Buildteam - 2.0-1.41 - Fix the problem of dbus-daemon-launch-helper's group * Sun Jan 12 2020 openEuler Buildteam - 2.0-1.40 - Delete password-auth-local and system-auth-local * Sun Dec 29 2019 openEuler Buildteam - 2.0-1.39 - Add copyright for su-local * Thu Dec 19 2019 openEuler Buildteam - 2.0-1.38 - Delete unused infomation * Mon Nov 11 2019 openEuler Buildteam - 2.0-1.37 - Modify License * Mon Sep 25 2019 openEuler Buildteam - 2.0-1.36 - Add requires * Mon Sep 16 2019 openEuler Buildteam - 2.0-1.35 - Package init for openEuler ?yIx=TP,gi #F?PrU !I$a@yqx?$ ;1!lWe*Qx]AYIi? m55(\I ȱ55!3mDaD/f? p5BͭikcnC@@Sx/@PtFs}5 GR)wt8ʿݙɘb7<; NSU*͟FCڠ(Dzz71$"FUɊ_; JU: WX"8Zp^xu Os!%C$ Gi.هZO3++o|V`  9dȠ2~[d2 PPnw( "Kž_%=j\Z}R5OaA_QΐLcH$D*  έ4*T܊VφgˊjiӠ2j"Q@=i3 y\Ϣ#C H*4`gLB`p&g@g934ad؅DW!i @hPAgL:a({|UÑc4BiGϻ鞚 6cNs(w ~S%;5x#;BHP| - 1 uU]Ýί8"(TOP.bBv@!;=T"nCpQE1 5\5S=tk8hH&KVQP]y. T<,Z'$+ӈ<ӗx;DĐnT _A~oV? G4YIs'kM*l 8|֗ VVZ?i7m_1L3e3&4ڡ䧭\ar@8yt|0ߡ e6'AFj~-lLx,q{o~ łF+&|Ul-dZ,@qk6CY6[*QLxf Q.AƲBiG;2B%Ѐ{Y01S+{3'8  ,h,y5i wh4y/g>%`0K6Fr9T` $g/ Is&3<&H,P<)u ܧ^tb^]<\h6Po@\b818@ޠE63݇.N'3G %f*0lRXsZQAP) ;X2; ]ZA~?TaW“h9€OR\=~3ˑ@fqB2"pߎ+c љi{]F2"s9gv8[_L :~6onLeg9\WN_߮e+YgLɴҬ %,,uDxQ0RP@#\]U(PɃ"9*kQ#5v)+xRtwzsPW P\I Er o6}+`,_KcǙ%WިyYE(ZI"zux1#431g?& "B7DC$]Rf$4v̯,gA;GykjRs~bj{^~Я`9R:BX*N¢ah*SQFp N1pHdvRQC*.~l0am ƫQY!*[_"TAF"T43u5~J?R >!ºo6E-/._\%KHo޾҇Qv m.šlOM,_Bb( F*+X+R CbU<SbUʗ@=d75o ]BY ?b0uami&:ߦm3lLhf~R\qܕ+#yG7ɲ7v׫&/<9K( ő pf_I^+o;{A'%?`X y!x*3R 0%8Y -Xw:݋u‡g2?*R^b݉>xE0( ؛d&}S C22Xm " g :A 9=@w߫(nB%|*1/lBS$TRlL93P 7.5aw0tt" J"~14tsZCF2s#O,Ds\Ϻc!ΕA0 Fɱ<e0)?Qζ7Q{s{oՀe@5 +"Հ?ǾjJjRcE(kbL<v[qP ,JKkޞ>ːLyf@$q.A?' 7pXI{RDB {B=}P/8(D z4$@M=`teE 2 K Sm6&:̀2[<db5@]YTJhwXb(*͡Ȏf5ٯDGP?83ݜIrDJJ=ߥՑÿ! ӏXm8}+b陞0S9m&)ϹB/ KP!ſPEW6O^F_+3Aaɿl1A4Hi%įVp "p|[~' M8 ZY[:J(~ߵ65Euq3}L4\ yVjYS;+ƃɇD}22Drvwf~ p1J.9ęjC9_u/:Wbn&d4Ue}yvAGm~)[*aX373cU#/#? 45V1?Rk[3g<]i{@ixa t<3F$`t4TVa}ɀ3j4$ /j/i4 RTRG1o~?7&*wƨ@3^" X3׉0E/ @Y(+yeg^1?XrY+&OeP=*%2[zʠE'Y C(>B"߹@<'Crfrvg.m0U6a\l|'<"hC&`Wؙ)v6cCoQ->db x`} Gkp_Xew sO |`Õa}'c|@'dfh_bm둀V57d;Z^Bd1ͦԾܶA`ofy>>ݛX-: lqzޟÈ^0 Cg(Lv ̡`c"1/UC6^nT 3 5$&ly0ڳgAPy?s0e(V`fvL4<`xbhLhSO } ϘjY2IaG{s3P#V~27X[Ď9Gh'M%&Gs3s_OX|Ւ^2?eBq\zҘdT,C@,yHy iC1b0bV$sPDaw榢#NͬDvh5?ݎ 0w2ac /#`cR^T;=b{1R'b"@B(bFN}%Dc?W5uvf.i"D=ֱ&f7|v{-g\e瘝 SRE AHJރD\ y\3W=/Dʁ~ˣWӹף0e9B2Olȁ?*췤`}fG+0f<<#Ws[%~68 ɛ3; E*3X wO1rǿ XSfW %3%Q'?Ӟ}hyxO'waدs6A^shq]hiI 쒇dُJS_^G3b,몣eܣNgsB;,NO۸sqZU]#F%ڛl'>*25޴,"dpيڱ¥;_{Nh 8tw2m=Xclcvg#peN{9+tj +KpT\y}9u߇6ӡV&D˿{7pQ'ܣ/m[|?ۡgwqPNS{jsև؛#Rb')O;?z?+/F77U0(5JٽfM#W4u/a$hA'Y@./Ye3ϴq+5cB֤s3_nK:D#cv N= KLjykun/a@^' 9ˏʚT8%RH9a\EkvQ:>\R?9bBS+u|ٿ3h#v5`.%Z?kC]B}U #o7:R7kt>Qj`Qr,׾u*p6yohw.}el01F^,OvX?IRZָَ޹ѹbϗF^drBΕ f]ܩ2wzaכu#.!FӒ.FQ)ϣwHϸ&lv>bf<鴪7oQWs˳e3ާ˾{\4zzA{:ʑ/O/ m}!zl l-8EmFvL/&V{抶'rn{ozpLa Q;^vYrMa!ۭwXX6vAK1 ;6UVٻ(@`%7즻n]N_Y5#?baJet__Z_ \w_Zu{^.*li{zFұ rV+aI [^A0LiMO; 65[Kav!J.ه/U'_:M>wZWLaή)-`rpBQW[ko׌Ã1Q%܄ Hݓ-At=|Ut[-|p$|wڢ\N@R:l0b, іX#H#tAnWSskLK\ l1NKB?9e~2qp03eõ_:Vܮ* $-^qj5\ջW0P%V; 89Jxһ7;?W2zbp/o)Cwq}O~T3:N M;w``%>K0o'{F,S3"Mɀ2c' lg6ŹM;qꕉtM>~O;Wn"<4[hNN65S+?'?bnဥՋh _ :tmũ7ޢ]V]UUk/ޛ:\5GW7-bEᨇ\W>%{ljMnfKv9? Qr^wZ=-oMPS"=Z<|y4wEe,{wEWhڒ`G8'4mBT=P Va{/x W>mX';K5K./mVV}2ّd@KeMؖJ%BVK\ RK+k,,Z[2ھ܉oSj9ܱ {&wt_gR"EŲ1?J(R1Y,^p|:5|ݮuvCk4Dnv4$?J#Er U .?#h_ڙFżVsOTT|*l&cuf[.yOs4Unm)8{ D*yR>оAlNRBj ~JELUevf88vjG.dʋHKs4mT;%QXqP4!+33%ۚ`VV=M̼wXk 7nmEZm/WX*ʕ;]l"WoגHP{:P3pQƯǭMo$Ɩ43uzʵu!=<3ZrS{lٕ6(&+([Fܷ6>eU]e~M6M;N%iOdfVA췹nYK#s\Öj$=ͅ=L~8jh#&j7v.'P4.*&un|v7kUr'n=<;m9yhz-@Sۥ޻Y&*ه.(ǗD2G|!qV>PkYx}λ[״Eh,vu'aqNL}LtKY뺬{se : CܹIM4)? ՎxEمQY.\F| o<^N4YG?T=rd zA@'*]c|Fr>J OۙR'Ki&8$h봺ewq?Z1}P{S-UC$E Br|K=*ޗ}0&xW4Σha$Efe1[6{g]Yt}:: V.O {p~|sUV,-ry s_ng/^·u/ϒMZ8VfϷF'@MDa:wQ|xݼ\}\¯]ީO_˄`J_(K83#^sm.pEk[,=MyZc֦U{69/8x+;yM bXE)Ohbޫן95U{HG{OyF 3:"*q{Wž Cj?'g|y'#cJF zNA{'=[Z6jM1ʝz5U;'6)yA*I gm>5T\~N%e2s;hH0Jz//HV^ 4 <)xG۠f)Ѝ z1:oti鍧,2mȋO{\*IK"?zjZmYE<\Ǎdޅ~Al4-[4sJEP͙°zS?[v`[i3:Y}-tZ~c9|^&; 3zL͉̱E+\誔d&lgZgke6p|GC" =*+- iќVx o7o. M~Z:އӃ593Yg${2Eܾ5iG2[0whAa bq|@ Yvn<Ms%"\R9$՚ hCWF}`! wděD雪wŸk ɸךOyfd*o{Ze{ib[mPӱ>=} ƺPuRm=Sas:2:^,S)sgv84|3,=.A̹dx2M;t biȆS˭ ^{s|S 6>=7~fL3k2S$Ț~2Ν6K9x~7_bՅENZi~7kDthݞe\VpYf_0߸4C^̤`;+3ѵ_$NQ-3=}V3of[g\lszJ>+]1Q 2_^<:eOL̝<松[1V'Jf^?t8acj$Z/'lqC;ĽM}}jdTPjC=â'}Q>*ɫG P Vp/꜒Rĭr]bY q7/njeޚݡK)%J}̫OMe֯#ٮOj_t’s:~ltp Ϡ)sxt&moMIghfS3l Κq~9c;~:gaS+3Lh ?mc-*{㛳?m;j꒪h/-M *ƈb,wksD/H3]*m&zt#2Q\&AsON d?iv7^E33fwp<^8p}`D~p_4sw+ƥ'LwoD I 8t"\o˙.sYՎQ4,fdZ|.Ԩq7dd^̳Qljژ󊗉1g $%'El!oUxԲ*4vFsxގ^Տr48qƤ@yrWH˄G*{?x |Rsv#m5'(B1 o*v-DV쇝3)5%ݿ[xK!)$ߙԥ])\V-'%'wmP,|J1ӨU'KІR6_wxcrK;oN\::.deqtB5EF8eSi!dS 1z?rLM՛r}8#x{lTx#vx=xHJ/ZoSJFjJuW[sy×kp`wU2"ʇ$_O|P&-#|mGͩ]/55(o~Ys0&"}R#cêzK6w7qD^X,Bi0%dǽ i#yG(N7WG*ZFכ3t{M=P+ez!+;2)8-C?Ҧaeq Vi7O܊oIoy:?"]hjMەS>w7.DNת(17b6>0ᗖid@jW]_se"WEf*>V?rdދלtM8UrJ1]s7q8wZe%_8p!lDV7hvy@ .G947sKɄs7H95BpIpM+Կb!FO.rM$^ $0Z2vM6xFfua &/]r\ƒ Kt씖Zj볨:=:ܷg*籣jLec] zM|;]r6DMҘam*}ÙK]^mY__/*oPkCBOǴ4Kڝq%EKULZb!dAu3+>:|JsiRNC :o7'aet6un0(+ R: .4,1z֏h|ŮٌkS[vΉ.2m"fɑ}٪iηD?Y1S;11dcJIaqߎK kK"r<$NRȊek&B!Egv ɶ]߼: 3R}G[*kD<9;jdm u Z{y Fɋ&z/-rVQ&u .Ҧ g--n4zl"^mUY /W.<1OD,̥?0{`t,'.lC;Ĝ^3_a_=mIp-UC9ob}_akrGD r~̣ =׸6iiG~9=O\lIMXx 7}|;uIϿ!j؄]w qؒ+o󵩊$NIPSɵncr뱓F t], 7U+k_S!oN@k jHpCz9\qy8.}AѼ@l£UtVd9M+ $8݋// 8G5OcHWȐQ>Tx-B]9uPO2fo9΋ja!鐀{DK^rkSݙ ?Q5Xl-C%V,KěqMwOU`78W情I _gb,Tsmk#҄ E<\xb*"8֕x 89O{ ZYp~w&/$j GiϾagsbXIP1G#W#Hν])\ W&q\q0|^jrYR.jQ=S9l$;ieR4-cNf_sKoѻw3ˑw[ `+cpjpW:[m7\WM3Re&m\ڷ<4MlӲ)k"5^8lUnIRw{#Βa+bL C7s68& M>y\*űbiez~Obf`-Zg-XY2seDw֟j{5(F++]4}f1%BV7P~UbkܺI[ԍ4euk+jq@EOMAlJBg>nO?,\;m*bsxY^{6x:K_aڽe*I\:j@JHgJbgE. H!4|!Ɍ{Npdnܣ)f,1!nмAfA'{6Z@ON..^O'G29omװ(mZaO@HeNWwP=r]IdXGv<7jUX1,:)SMf[U%eq }V:1-vTbڶ\j<3mmOF7Ijo ʇ0-#{z(5I+2'*` N5w ¨Ph[ґ:CغW,M13 b(xsC*G0/o>-tI.Qu]J>+쀊._ziY7KA!{t k#LWvLFćN u|Nyeffv{S3fvϼt gN8O ;B*k,eHPqq >§colæϪ]o ~vl?E;R [򬫳OE, n4~*16~cXn&%Zc&e"ՆJkqjȔ;?ZFCS?*s,D{mz:YBJH:P|1p =YRBs+ʸ%ݒ'{8}38\ڝ5A^7N S'd;VS9^\ā{-3Xqz/vGAk.3Ɗ>] A3nzh'<">嘉U!nbWל9үLk[;uGwE|l4|nh6Rݝ>+0OM,TIێJ _G)or-} ^TAZq^9qRC}M7}g(A#>UyAi\]j(r;OF3uQD}|`RΧGz>:q=pyGn>)0ϳͮczgHيʴ;ϖ9_m=bXGe{2mC ;Z|9g |rewv:ͿY6_a-zq]mXw lJ&痶N,M4sz]z$"'j'DO*DG;#e&E`6$1B0CX;1Qۏ:8@|»ЧFHJ*C.M<L>P>c|~; w[M:mipizUE_ȕ_;-mqǍݏUR{Ju^8 kv0<ڽD.?Yz_^Bvoi.>lDBAёhqRqa)ƅ3!M!/3.Ѩ}tSO)X5cbއ˴Y^ƽ})ɹ=P}Hú;?+ LrmXnJds?,瓜&;gj7w_xκ#.1HFV<|wPVk[D J!y7>$ݐRrAU b%~0n?thHMn ~fizy ;G>r^~ꀟ_O–,g#m[f:n9uQw}>G7S>KJ 텁$wXkS6{GK0;¯sט`ƒq#*KqWȓ~ Y< z& Y "edʸ}!TÔ l((mUᓨL1A~;-io6{hv#[DH}žs:ZlmL]i//\k_x)!_ߥ)*X.̄_kp0PJz{E2ˏ hKFm gȾH5s(%PgxUzw9/Db^[/C]IilUVE?:+5O~ T `~8-N|dS_x#[%F|>s}Ee0r+D&t(ZryjdZE> e$?;*.&)!T%Ԡ[J#ǿk$XA 6o~>bq/ę?@}9-P~4Z)1I@ J66㩳HRyFOƄgVᆷ4%][INK=QQ>%+f~'[$!So6s}6Z]x(G_- KB"虝b”Tڕ̅e7Jށ rs7s遆~~ |p GBf',7- 2Ѯ:RR|'< 8IV[(Fa3"PҔ&Ѹ}յ?{E,ߧG7qon Gg~PSXK_Zvc`>F9=j]E-(?]gxgFQ涗Џ7 ʚo`Өj H>n>rrs}OR>Hjv@v#ۅ}(dlqxoT>x gSUߓ"n0)m}%{7lޡsxA<IǍ9ҭDd4m~a!yކa2$)@J [N̎\ːi (uʧdƠҧ'[eQi=sX5Ǫܟ[roEaoZ~xkLmrϣr4 A1Bo>᫤Bݞzm՟W2!M߾Nf@aċuP.DL65Rx354 &w/D zFDCY(}Y(?h y~_"d$x"nWr"f^%\)NZӦ l܆ܨ^d!8ԨVJ<0`9l7S!Wu 3@6q[Ytɗ*N$ Z{%bQ|3wjJ}/w}zr7,ld<ZGAxkUuıH}i]4 G3~HPNEdŜJ}yPulF+'%/Px,pr6aS ;ro7)JNThd4Rp ڑUA<P-P` yÜĹ觬>9V.ߡBn5Ct;ecn\i3yÏ߷^L*lɟU'_`-ײ'iWPL)~2iV7b[*}P:&Jg)=- 10-H!yHGSUZؙ F{Ziҹs~s$XBQ^ *SC1Yj]e'MZKm_M=і&㨻}οw5Y&SdjnƔ> &踣̲qeu d7Dk܋ZqI8x kD9Z"fcl)Uy -6PH[{Ge)EGTSL.t['Jg'HcRcl{a7ݴPx}枃N]36co`[SǗERIR"\rI]Xv8p7b.0י#4hJm-͝2Ժ(_y]Ukl '3I DiěBs _Z쌳+%)Q^^/O[)bvSGUfHڝAe' /ޤJ}0c$_ L*%7(M"-2*z@4R*ِh3m@`/㾙IbJ}oGLK T@BZS`uOa}d UT.(; >y{끤Ouxeluhg6P`3KPC3T a2D _a%a:5UǮXB?/1:sqbjl 6WOR𚔵R'4GߒiS|:AN6\tǯJ esB8Lܓ@+wd2ICnCࢠ $:YknLoR>5U]OSe4RF{K6m m팈