summaryrefslogtreecommitdiff
path: root/kernel/audit_watch.c
AgeCommit message (Expand)AuthorFilesLines
2024-04-04fsnotify: create a wrapper fsnotify_find_inode_mark()Amir Goldstein1-1/+1
2023-11-14audit: don't WARN_ON_ONCE(!current->mm) in audit_exe_compare()Paul Moore1-1/+1
2023-10-25audit: don't take task_lock() in audit_exe_compare() code pathPaul Moore1-1/+8
2022-09-01audit_init_parent(): constify pathAl Viro1-1/+1
2022-04-25fsnotify: pass flags argument to fsnotify_alloc_group()Amir Goldstein1-1/+1
2021-11-06Merge tag 'fsnotify_for_v5.16-rc1' of git://git.kernel.org/pub/scm/linux/kern...Linus Torvalds1-2/+1
2021-10-27fsnotify: clarify contract for create event hooksAmir Goldstein1-2/+1
2021-09-19audit: add filtering for io_uring recordsPaul Moore1-1/+2
2020-12-03fsnotify: generalize handle_inode_event()Amir Goldstein1-1/+1
2020-07-27fsnotify: create method handle_inode_event() in fsnotify_operationsAmir Goldstein1-10/+7
2020-07-27audit: do not set FS_EVENT_ON_CHILD in audit marks maskAmir Goldstein1-1/+1
2020-07-27fsnotify: pass dir argument to handle_event() callbackAmir Goldstein1-3/+3
2020-04-06Merge tag 'fsnotify_for_v5.7-rc1' of git://git.kernel.org/pub/scm/linux/kerne...Linus Torvalds1-14/+2
2020-03-23fsnotify: use helpers to access data by data_typeAmir Goldstein1-14/+2
2020-02-10audit: CONFIG_CHANGE don't log internal bookkeeping as an eventSteve Grubb1-2/+0
2019-11-10audit_get_nd(): don't unlock parent too earlyAl Viro1-1/+1
2019-05-30treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156Thomas Gleixner1-14/+1
2019-04-28audit_compare_dname_path(): switch to const struct qstr *Al Viro1-2/+1
2019-04-26audit_update_watch(): switch to const struct qstr *Al Viro1-4/+5
2019-04-26fsnotify: switch send_to_group() and ->handle_event to const struct qstr *Al Viro1-3/+3
2019-01-18audit: add syscall information to CONFIG_CHANGE recordsRichard Guy Briggs1-1/+1
2018-11-26audit: minimize our use of audit_log_format()Paul Moore1-2/+1
2018-11-19audit: use session_info helperRichard Guy Briggs1-3/+2
2018-07-18audit: fix use-after-free in audit_add_watchRonny Chevalier1-1/+11
2018-06-28audit: simplify audit_enabled check in audit_watch_log_rule_change()Richard Guy Briggs1-14/+15
2018-06-17Merge tag 'fsnotify_for_v4.18-rc1' of git://git.kernel.org/pub/scm/linux/kern...Linus Torvalds1-3/+2
2018-05-18fsnotify: add fsnotify_add_inode_mark() wrappersAmir Goldstein1-1/+1
2018-05-18fsnotify: remove redundant arguments to handle_event()Amir Goldstein1-2/+1
2018-05-14audit: use inline function to get audit contextRichard Guy Briggs1-1/+1
2017-08-16Merge tag 'audit-pr-20170816' of git://git.kernel.org/pub/scm/linux/kernel/gi...Linus Torvalds1-6/+8
2017-08-15audit: Receive unmount eventJan Kara1-1/+1
2017-08-15audit: Fix use after free in audit_remove_watch_rule()Jan Kara1-5/+7
2017-05-03Merge branch 'fsnotify' of git://git.kernel.org/pub/scm/linux/kernel/git/jack...Linus Torvalds1-4/+6
2017-05-02audit: convert audit_watch.count from atomic_t to refcount_tElena Reshetova1-4/+5
2017-05-02audit: remove unnecessary semicolon in audit_watch_handle_event()Nicholas Mc Guire1-1/+1
2017-04-10fsnotify: Move ->free_mark callback to fsnotify_opsJan Kara1-2/+2
2017-04-10fsnotify: Add group pointer in fsnotify_init_mark()Jan Kara1-2/+3
2017-04-10fsnotify: Remove fsnotify_find_{inode|vfsmount}_mark()Jan Kara1-1/+1
2017-04-10fsnotify: Pass fsnotify_iter_info into handle_event handlerJan Kara1-1/+2
2016-12-17Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vir...Linus Torvalds1-4/+4
2016-12-16Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vir...Linus Torvalds1-2/+2
2016-12-05fsnotify: constify 'data' passed to ->handle_event()Al Viro1-4/+4
2016-12-04don't open-code file_inode()Al Viro1-2/+2
2016-11-20audit: fix formatting of AUDIT_CONFIG_CHANGE eventsSteve Grubb1-3/+2
2016-09-01Merge branch 'stable-4.8' of git://git.infradead.org/users/pcmoore/auditLinus Torvalds1-3/+5
2016-08-31audit: fix exe_file access in audit_exe_compareMateusz Guzik1-3/+5
2016-04-10don't bother with ->d_inode->i_sb - it's always equal to ->d_sbAl Viro1-1/+1
2016-03-19Merge branch 'stable-4.6' of git://git.infradead.org/users/pcmoore/auditLinus Torvalds1-1/+1
2016-02-08audit: Fix typo in commentWei Yuan1-1/+1
2016-01-22wrappers for ->i_mutex accessAl Viro1-1/+1
nl9G-xzE3ޒOF H _*#YQs/WEQF"9"((SrE<מswD"@D f~(GE~ny;9bA(gK'`A콦S-zd|5^k>׈U{JUB,fW!iwY+W5Dޗ_05rilb:iKnYH)P~Xޏ7SM>}2eO3fg(,Aa'~ez8zX-`3%(IAR Gnh5GI~S%<9h?hB">߷hdqES'Xx܈19||uVz4O&< !}Ks6yq=y5\9j/M{n.C <pD`.0ƻP|fa͸@n7z[o9DCOy';E$PSDV_@Uoü\!( p+oî!8? Ӑ3w\ &A.SR(mJELߵXEUF? SF֏p11(:xsHp(O!Bd jD ILm͏DN % P PB^ȊhW~|z.c FJKrL)}gA#kW8_}yEb'^Od( {p`,ݐĠvsjus&*`c` cnjUa"RFH!)GPeĹsELWO9""&W9/шJiLHhӇGLRe=5AČ:yuׯ3@9,kCn`KzM5{ U}dm `1/T.]jUje{]n _H@AD QC}f!Et-Tl\oHVw=`GU$ى#gg1p]G;D#Wx6|T \;#9W'^ \vƿd^u]B_ݑBaՊ{/vbL|N{;Q h)TcU2xjD2샦Kh}~,}i;a'0(K\<]ė ͭWe3`Hq^0Et=LJOwG>l?z/]xoDxܞ˨4D]yȷHGERH6>)@5upD4h >8_s'qza3'6(*2ک7{w&{2'L2qZ+ɽ=m,ϫI2lX )JÌ-aάq"T1}7OU  N"ugGD۠@067.Tpwh2S_WAA6Vj}u~6D/ Om 8<9@9C-.}*g N[ C/9%ɪ6{7(X1U n݉#Lomһt#?uP]&GaTv^qn q7uZ^ƸJ71kbɳ,iws=nTN:G*ΨBR7mяjq .sDNh<]=.V'DޣbF:bvqj 䬴b뇎T<3FLIq1xj]m-{uӿsN"!j쩾.gLPFm^$Wmu \6&~>.P6WgtG\jW. =16]lk}JsgDCjx]Ѣ?g|kIC1%?< mS+#]5SZ?GQkz1c PDphGsTLJzR2VmE{y-k~aVMa;p>88lj=L۳&8hw[ Ts" H$""XZH<]Y *k (%%aEdh}\?SQ~>nb(\ߣ뀒B1p]Enk\5i5~E"#/OzVSI$OaaX0x?D hrJ QZ/gj?c8ƪݻp݋}\],ZƘ+(w%@)洢_}@Ȼ}+˱}`o78T Vlc8\zk]4FFyouJ+kYq {Y  G}A4Zɳ=P{xu* ȸmi t_gItF!RC.CO(WQckyPEQ. "*R&p#k$L=ػB. 8}}#ѳOƷ]`ӳn &!tG58ٺ8·c㮂<8rٷ9RgNew3wǠ 9!C$e[^qj`|b8[E@g ܫ^};|NgRT . yv]!w9Yn7&&i1+%YO{au_݆/dn8D7-_Q1I3#^LK9(!Z/Wx[MY(HdgnHמ9m :3Sv|չU6.]H ¡GLNxpѲ[^uƼ9&}P ʓ:s`Z jV1$KDly+l x@Ih;@MЛlmab[fi&~h[-D7Oq۠Ycf8C(l]Z 'dưDvZtI=ØZ ^0+\ؑrg?cz.vۂ)H_|fQWHCm@Zm K(Fi'_mfmCT}͘K/;6jxr54(y"yԻtnwi6%!ʪ[ȣ ʎg[(_j5Ei}Yq*$SG3`^ P`vTL(=&I ;u{pU7Uiv\sab=?+=6<#/ޙYm^~pjKb="f<̳|Rr"隕laϧ@=`PɃO3ϲx['˶YiLiøt4*X`$Xcx+Wy[ެiIK2.*hvS{/kz^ 6İ&~Fuy%.E OA>SjL# aO8C3.YYJ-|Uk\%P8iL-ỵIbms־$|R6j(-%,_El,~qi25UP 9{[r_5P N %`}^f>3u5o;t~q|yel=;|³,2+HhMnE*΂GuX)h?'Nm`=[Ŧ=ŀQf8EI$=A7}sr;?\"iV5hC+ W;D ӝݐv$] q _}\2sVGsp`~K݄o7P )P'DD8^CX`>@6u ѿr,ku9d:Y?<-Ptz~шm}u$_4p:oX|SF*izQ--h0c =b  :]|XϔL0`m;5cz|,m.0/5Cs~LZb2z##e!c6ٔzpt e7g*De[[E7keJQ&s~f_澪lOCz_b0a&%.D,Nsy? IDdf _gH] lLQ~TԸOpyƳ# e%r;ո8C:Hn m=591\22- {Nz=q_9Ӿl6ʲ |]K^M [W5@`3c0*d V_bc?6H_beEOGQ#O Ɠb\ {V/%V'79Ը709<-\_<߭YrP?Q|>a6(6|}ڵO'!ʇYH=,pAj w Yҍ?aˡuT=ŀ—LI<@6ƮqFx̱<dV)goݖm$}DXP:|VO,l|Tyʁ*$|r5>E}u`5X%l.wX*e]BI   ur_~JznF^aTȽr1F"ՌmmLGSc ܊qT PAԸ|}9 EE|FBzο v 3DRu,򝚟5McPزpNSЮYmkSJ*.U%1){8p46tob.hCEaK/3Odtp b?W}uϥSM<vuA#ߵCHv9ɐH[%ach +݉vHeҶ/&1Gֈ@J ;w~>p 쥕R cƁ#NnZFY9C솝d z-n=B i%ח+;UN ŞlfnL5@\I QN;F] S-"m~1Glc*M|.Yr/poQ=:kqf#,R$,PR dgNp;IEW\< BH;7s xp6hVe4 DRu F=M$pyE'M˳aUѣez()iةyHǯQhك{APs&Pq^<ѿw9m zǐsUΝC!xP7hd2LіH H1}:x=ӏ^o1B{aòiף+eӲžVsז-:[SJV(|\56i4[]t!n2hog~s9- jF<?[3&H r &_xE&qek+3zJ񵇊*IgD bnŬzUp}( Opu^]bC޿0 ?Gt]{Ԋ+(;rQ=s1dr\*ְ8VM_?Bdy6PPJۿgŠZ.!ƣXg Y GE~KRt=}Fi\UT 7VT({`sv]*/R꓏nbҦ8geHG( y')וXQ }.b /ݸa:OCn aGZD7B[.%nks qJ>Z)moє ˄g3s.Q0t]fgPmjFu [aT( Ax[nZlxR/aH?dዡ;o[*5ֶ+p|ٓ⥤@ѶutHs0PIJ:=.|wcݦwMUⷌbحcĂB[ [}F3BN 2 Q=uNn @hF4=~ʸ.;n;ɰuKyQη߾ I p˅˝>S#,!w!Is[Tq98NS=!?sVwyי>NVsuɜ2ۆBs:- m&>nϛ`שXkMFK hb\>L]En+gb/|I`/}-FN% f> aFy>k"&D 9@-YЫC8PƿXQmXPBv}ZA<\Cy;33֤`pY6qD1$– }L,maa{Ed 2Y`[R=c{Ċms&ӕJuD("v.qXXDIFދyIOxq[ ez/X% tf!Dg-n Dx(B]Sxx-b֖PT6ehPS?>J ?q~I v[P:bn-3Iz_7y@6Ï nG${ L,}`Anri;F'uIڦ0޲Ns4C*B;j֪)WiEi /..0VjȘaeۤc""_}of'9&bQas>"a KRmtqzfCr4o.DG^K!@g`sFX 啕$O|M}lthbSwT"Cž&M 젔b$"DPJhۄGFo;H'U˜j~w\<],x;@4gJZ`Wnp$A35bNjr{s)NQ&se^bsE/zbAI|=H$  Yj|C:lIۈnymI7 ۙl;I@sz([M#yT2b.]C#M'ݑ;0΅uˣ.QSVzwpN7 ZCF9k->'Lf76߻ҒSN~6xyV*Z=P/NNEMm"~XZċVl3~P򚻥W!@-J*}Ml8<S"2)6:388W=}0~,d+wd\łxW~8DɿNz~,s(v \PCSZ$J~m}ո #"o)RPF(̅@"Jk!JaX3ˠ a@qnD1,;ݲ6¢@T*5!JlAx}B](uA BI)j E"H8:Y5MW>=~Bz?M<FH"BD0ԩlKҧ`qyHhc'n"#뱯ZU;kli 2N8K]>p7kE=}a>8pDGGQFu!^WoKȦ%M*WWf쟫d5F-F|!X3jC }Bj(ħz{r@訲ڂ_'aj>KP'5:Sl- m_ǿ't0v{zWY/Z ݑ'mx/4YYDޠ+u3mHzdv'-ju"g}}Za!@ ( ^eD|SE@*js̑MhI/<¹N^oTPllpdSė\>,7LSNTOϥ-$d-躁PDBBs%?>8'/Fc͗,< ! D,9A p{ͱ{#JoT#D:~L.K Ⱦ9n}ϭ\՝: {D@sݪʵ%/khs]L`F~JInUIZt1`_opK!zʼnXІ NNWd>3𓳤6* T ĨYV-N6m(d藪bj _vZ`wjZ)5ZvQ7sQ. fq,P^:/ H.`(8=_!wSR eDQΓgα_#n!Zڸ%lOӲX@tTKu*&dVpk5c1B{J"]~{? /nN+TF@}BĠr2U*@Ppbl2!;-D Yٳ!6[,Yĝ|O1 A&6JatFm8~ KaI{5.dFDۭ,ڟPZ(TQWU;D$(^&]^ncCdRN8h:kyYr9L^^xg)! Hj66artevInn26ΚhwGHi"{"]=w*2s&Tۑ.aj:=}iLr9\譭#9sj3"dC SIoTPvw;{8̪.8~GM4^,y䧝Q?[͢lR\ld~9g Bu-~j>9;ݸ8m>S[pAxo^LQ\[I|tT-4P B:cY E4ugg@`K1K$CV~b r si򶗆FU]H#¦8:\| BW(I!Lɚ?H$D U+3~i*T(L:M}e҄%^~̛2ƕIU,/lXӦ#gLj0Gή!j ַ^s˿/^;ώi7Ұ0g|,ikw |(ͻ'7Ш)D^xn,kZ UYK|8nPop6L,ʰTcPp@#9e$IZ+aodstmr(F>Avt M64-᝭sa5!5 ͻ jQ_\Wr c*r'u?l`|k֡[O_ʤbY.%b3qdN/7_3e-8-JwR}=kdh ],$2ksɢ2͌1߄)8"Q@˱Ȳ_聎U_N4qf:P$RSytof`sc|vg2rқB+DD]DlZ罞<<a5@,vqo# M:* Fcd73xdR$t|" tEn~{f1|)a}UAM\ƸO*H|׻Zss*׹L7YXͳ/ V-95-e"NH;yQt**a1ɽ{{q6gۻ0uW)4x>𸩞Ҧ͵3i8c$EXsF=di}n?w_QGח e 4)gݣkwMCīK'd&jE I?❏̴tMx兄8=5xō#IT6U=4 (SKB}S #mvN(MDŜFx uy. c0$\P?>ѣKw15Q\} -hf<8 E~_ J%D}'OHBꌷ^^'pMAQ45Y.iմE"Ze94ܹט o5hEqYT1vLjM\jsrq1ւH[MR|Ie 6FH68,׈biw%FgS0r램7ZzRȓWppoxu!ٝ>;_YUkR 򽻚-#x{XjcI sfXK?CLa1$hDZe~^& 1FO/;+ afi]1XƇZ&+Z#8?M* `AT)íī@ QQ-WUmn&Lf Q(!] s_tbA6gV DdM8." >%w#-|>K7vkT1n*DDxe 1(nmzǧC*ᝣ43^pd+ujHl \ke}#K=wX9m n (9~xMVGw{<[$$CVaE]oTWPZfŜP&H3i O|~3ͮ"c{:7ֵ/g9X1[bb7lEC-ٵE>h O(Q<{Mu[vW1qg T2e_f5 ||Hjy5b=CPȠ/WgAѣ?=vzg}3P 8 mao944I1֩f _تױs2 3~ȸ5`4Iӥy^93O9=;SPo`nAm0  قms'{ǷZUQd5&4"[ H}v]$wUP*"\"3/woo"jQ^pq0)CnNK8Nѷ_d:Y>*z~1{>,Ǟ^/=Q4b] 4+y,u(({Z89BtdDEPe(/="H$khBP +Ts}8$'I{R] JN n8GnAl/ ]@[՜99wL9Qu`_ E,9+@ّD\Qep{#feV VYJ&!3ʼf#p!}Nk: @1k\Li3sfw4[-X2QiX0GQMD;Ht`q2d@d RƇY.l B 7=t mK/Z?hFW'RIޢxDt9pƊYG \o8eq,7!2”>7 8HJXi9LW1U E[0##wT>!P@ه[#k`Y^^5B ҁ,!'(kMCm˻buY猍ۚ52X'@tK(ď"PG׳,?~3ǯcك*UMε/tT_&F$=gsB\y|OG!bG }GO )U<ϗj[M;S ri&q'>ӡK!#es!Oe:a|YǯZ纔2/8p|suF^ a~r a/Q`#jv8Gh&&fWNm-,'%TA wJ{8#o[a3fKIJC~9ssl%MNNNӂu x[[^ 2 Su0l1-G(<-RWK;G R6ifɦr|oۯoPkguD5 ⠾uaNe8POAu.*/6J|3a-`N/!Q)t7LFkvaJպ|n*ƌnc\` =0|W Nb.'T<:I|W]0 .U=bB/cQә'd > h!㯞0t~/֚g=9[ tR{ "v:-P~,#5VA|{4.6)xн:O  ^%ռ|'mv=3D$2.$Rm*U/@`L㻄q8҈M]I5ڳ3[A'K2ІޏQMaDJ:j!o'!9uVhpʤ*9fx*,$᠝Y*6/I~T^Ȉ`u[G0lG^y(CJc~{ŇV"};Z ;0xpOU˳k!2-f[=f4'* [u~U㯼B}3;{TU L/$!B NGPi]2,60jSVm `/[ WVGP;=پqj_7Ony89d9/L^3I}G + q2>9/íNXaCD" Z!?dz6t;A<`)'Amz9;1G ԏ&šQ9˸ķ4+{; O։ŗIl5MR첏DߞOfnbU q^jk-E%Gn> 3:<,)DS\EHtiv/.( pb<8zEaA[+=q ltMV2QjjvQh6!C(J=!{P}Q𓅖'~_g_ cI@x:)yǕlsn߳ˋ^~p(Q608n.qL]kzB>4W=K{t)6`1]-Dw!L,_dN 9<@Ksơ(m I/(MzG^z▹ Kw3,sJ1WiZqbhRo6up9G) nd)۸Bn]aòz!d ReW'seQ6 񓍧1y9U?%DCCm}g3)mxu\uEqDTNؖ3328w\!sO68Egnn/FV0{٦.95؟ ⋨2f%;LA>~cz¬T>v 41nRnY 1KCFq,}9qR|M?o~wKRVxsƞْW>fDavȺo죨IM󔳾5mp( eN9JVG5~b3T04$Lه,}cg+{ǔS=q_o XS{z*/qX(:ô]ZÜwbs9,j>LQM/>- hE+HA0Iwa[/?ڬQM!:{6f·zԵ׷^r-Op TzuP"ڣ"w.eb6UVi lVc(%&tc+Ru K%!0wE6<,lqs{z]m^sҥÚ-D $Wis4,.;e !R) IӺXe$ki4/n˱NQs[%O03W:t؜jvG93|y;W瓷awp@?+Lh׌,+yzO@X0z{}zecCGI^hc2\RK+ wqp!/S{>w 3WH_dor * pœU,ÕTO֦NSZG"9v\b4oƪ=$n0=}k1G>sI7d]abͫL*?DB ̓zșiF8u'v~Tn[ 7$ELMe^ 9Ue$NIB9Ax{8f-%PvZI*Fѯ(@X >8APVth⧷廄q}0KbvW2TqSMTZa.K4c9c(\aB46 Hʹ" θOU0/L4:Mb/kV7,i^@Wi9*c-?PɅIۄF_TE[^O:\>2=73ჸ򄣚n%c`*e9r8[5ta]'|]HvT7DCQp ČIhY?zK;{.L BA_!BjfA$ F,9"49d3$TVo+K#}j)Q+|VNB&\x#!*n {,xFajPzhjB^ :K5Z۬nKRX+A}{gdnx\԰r2(%yJWn>\L79ȴTHrӔHsj+ Ewveǩj]uv&g[Sl Ƣ0XUa yԦu8nmd"X]4/J29RЗ6&">#|-9Ǒ9J$< @MDV Nk= }\d .OK'=ZXz-n+u<@xՀ:ҴnuXm6KMUE(?9 ú`&Zfz'̰ՙL/ze*AC o1ζB3~Fw[JOoӥouz-w6WM\CS[:XSыӒ}:)[P%3]VHVL'VL"Gjo(d:Nܞ7s<^y]6|>wge|Q/{~1rb',i4*o/F6ݾ9;c 5ݭ88Y#ߗ{(p&Z8@ϲ`$]0|}k[ cjR[^e@&K Ak8떹"rkvgdq,mzrJ?'4ż=| :uc?>ݨ3 %Ov-0 uW j*ɴY ޷D{ (7@P�U|{06"e;q QES=Y(*[*Ci/azjKϣ^*_=Y VZ8_T?/0 Uɜ-P5t %FJp4=W:;lO6Д^2#RBԇD*L7q9n+jcp}}-]KDLGT b p[¢\ӛw_=w!9o=χ F[@+O0IO=p#U @"r"Cs;)=@m r(*g:Z냮 T`C#yA2H,/m+cXg4W H=`A(GCζ,V}vj|DuY*;G͇ g2 KlEVu].脇uJUCӭB~뿙fۙ꩒) rT2;~_@~}^Lx1?ȚT.81ASF,8( Tw:~kךy]IkNc?F#S&#j?jo9tHz a͌^?N]Ñ6!cr#&?sc$( Ҳn J"^RzX 402l$*,7Ҕ;mT?86~1O;YضйU[ˋM?M oBŷ{1-fџ3pKnV䴪`vH[ UY\<?B@鋡 qR:h:]D-%aCaoNR6XU(P|ecm-j_dz@og%GC6Fha-r!3wq R˴2Sζxsbi) C㈈rD,{bSuQxP \l2R"@5z|kTPbI)%;B0d!!J(|S,_)  3L}JO<d}c0Dnm?"DH/^Ⰺh,%$u}g-_n!B97"t`( \EP~P*&")݃LALIM3v5 6;{C Dlh֠լDHG򹜲UrTCBN5˟{~(3Is~w Ͽ8hG^ex!5|_.'0VHrIG|8|$] K fz|W/ 80%DSǙo嚿6ﹾ$6'ེxXZ)!OĻq/OJdՄlA\eyqMгQط7~AO"˴Ch蜄,| Gϥ>>Kg*Y 7fWh6oos)|W/| :ۿ&pP>18Zϳ&u-㺣^OfA7AD| AWb~3d)_ KM(Xt zɋSQ_>yv^GSif^~:A!@(PZ,q? (7-sUBfgm v.x 8608.Hrʽ=c|7jV{M߽_Aq H".GrԠDtv: BAzX#~ #J?v,H`d!RdDQ `oJ (i() *i&? 925Jou63 ik}z;#/[KaΝ0s{C:I/e-bN1s>_zcюqȈUk5|; m}ꁰl~7|K׏ѯ`þ^az>ٺC_ZS!FјrH. R` a-E0lg%&eJ s „u˒ &Aam~CoTդx7RZ>*\SvOWn7CBL18u O_" B~to(Z|(-ŬW(ss$xj/D?fl[>k$%w=-]ه}g'?|K8Z%0֋'>|[N-o}GfOV2?&@fߩ ~&@}~VRJJC^)kjR?IT"?](@}l>ϲ ?f:_g@HB^.5'm3P(פ~~K4 aGG(]v|!/$ .ȅq&a훪v{m &'eqivem7D!u*2BaΔoz?Q ]5a t8`cM_-5[ߔY4Ǥ@n}Kli96Uփ?:8(P~icȾV:{<+N;v xM>#snr3ˇhoOgΡigmGVnϧS{k;}Guy1ۣ9g)y\Iv=bAoSv}6yգ޷3[Cw߲&8xEŠ)k2{TA_ 5=R}X;;sZW}09_l-#цn{}b׳6k@۰$WusU,#a"*wGfLGp}hGH|{eӦU׌}@y0ịhd ;>qx9lϙֿ"k[z`"$e#8h,⯊᏷EejEv*{ 骔8.//FQ錵tkDHs폩 _˰<`D(B.)U^K(1Bfyϊ/dW@.\ S@D4!9׵j\D]svn~7'tÚ훩=E%j39# 0ΡŴńErwW,-AL:%s#iIcѣ0\yP\˫([%iL88Vƅdb"\j'b*8.Aӓ&~tA7_!~]q._V]8A!J,3N_CoG0;!/Zi[qZ|蔢ڌBAQ"/ uoa'AT-]]q.ƣ٧rv`:qf7s3ՒVe WBs?cHsGuoSX}C.Z;tEOxVL㟒 돗y;cH37_Ől۬S{HY|ɏ}͝I[[i.-XƱ Vh(s ..'[,16JØPtz%;ʽAf8WU"~݊*\ubGUB-2Ey>\F`>.0psמ70&#"%OvJ|ن("趙J&h8\R Z()mKHf}Nz֙0L|̐DPFiH]<:t!uIA<@b_v>:y?!d9' _~`4߾w?d߫\W}lH ItBdq}ލuu>S|^-KQDQɬ_Ap96W@kes?,~wuS@z)Jp7='*#npwXO審1&-n'l in5 ޠ x!ۂO膽ͻ 2x/"QI[|5:~{#@ ěrZ0v8`A4gRo1쵯OJeUly}4*!siƥC7Aa$qڊb>K@V!4v| VaR-9nMzKkGHА4>O }d?^}$ńul(vݟ^aSb{41Z>_2OŀԈE:V(!/OrJOz|8PzP ;e\#hIƹRhqBɺmqmaEk " `I2#G 1dcf*H8zrݻ?X8DA Vye$Na̱_Jߥ)x[f  ?O?Q?6=a9f[G^z ս-2(tQaSfQ5:9(`ҰH.D0R~КXx؝L7Hi[h[WHU%7w4`!Ghմ>B/if}7׽_g]HRsdva"sl"BrLM?8R#=:du{Z'6:2g3't.?`AV]}v \&A䯥W[Ǿ?^ c1 D79tٞcGy?}@1.ᛋ[۵Nd@zٮJ/!|p\zb*3?zC8%h]юklDD1ѪLèd@$qm{$>}I@C +kGdu_WKJb"2P{16vdwE"͌-3>AǴCo\@_;-r!a?QNӮ]ܮCGQnx<p2qv-0zS7KՕΥ1_+87]oXHa uyϡ. Fa`!ǚu4SEfc@O:}3ww/ho$`DDNoDZs #F#a ls"찿akjTyݷ&Gn^ wbߪvq'c,#v )-Hi51l =?|]al8S1}Zm[iWrs@3G1 a}_NFVu_muUsE`r){4é̡薎qw1+E*-oX 99l1W||Q(݋>͘Ғj4m6"z%9U[ث_/]G4cJ/>.eX޽4TiZUKsӾtNs;DRD@`p+절9aLyk%@r,}r_L3^!-fLy jAqD$rQbisDquVΌfůvGTw&~ÍL9m)_n)k6VQ_~u9qjNaV:Oq}w;P_b[xyU¿O̧y?_d1V JKY; K*췪,5uUk:=_MQ)G+} O9%[Z˼dWVcTZ~-+\OuΉ|iHgKB $S.]_'ٜ"wm]I i\]`5*"8yJӨ"JP*ӸuX*fH|H.e:8]^9#CRW3撤r*%Yaw QŹz]#'TR>CrLsXo0K5QkʭsDQѫ s[ i˺#k I"rn|o_M([L&%`ph)S~~;+YR2Y(6,uM}(9̑b@\KCVxɯ<ʕ:OȬ(0`l&Lt9 kD' &Wu^Ƿi?GI^ΝɶVE=qY` #ʡQ ='OG~80FjqP>P :O 4 3|~5i0z[OK3b'a[_4|b1.+\%|d-YuAOgcܷ3,jAeH"@]'ݢ5Vjr$` wI+짠sǟMiE,/& =&/zN]?߬xҽ8ALy| ?o }_gM(~q_. il8q6A$|DJm 6ēq1b6Cy?Edc$`M֝+Uaa`h>gDB1!]s $6P 0aH᧗âR~ O$,pi`b'ry:03uD DQzwFIP$oSe]*A؆Hq X(~{Ї$'  Dm# ɔ"k`llz$ cFuaxAd@Ҩx O['-=b*тrf$O=ޯw>[([  t im,pu Gc&DmӡL$ݦrX%1="bHwF#lI"2S׈=O|oep[~[`AF8kKmw' 6NՀ"$H Ȃ McALMWZ/{-pp/[7l,Xݚkl%$uaH 5729r5+t4#w=M@<Ng"jzdȃrݗ7p.}N @;g8z.O^zqG0sȐfڦ}`[jySsE?$Qxé+0Gb8gS,0(aYn6S[+;wŶlxCjMJ^yj$4HFb @UPPЃ$I2=[o}k+:`W\]w@6WNrb+hɧe#7-ocK)]zT-]1-`fI"% )-!+7רʥC Tklטff~[>3ze;LiL 0RFhÉ pttk80,"l+6`sە3"sj'-mVjV5PٻиaK-vhІ:-2~Ӎnv;o{֌ l_U^.Tط'J7>,$"j}?; ߷0yk+rL1 8V7 mSgmZklg^,Yf_J* w;3[}_jS_pOiVbh#]ߣ3Ӌ bBP\yA`85R ;)I8Gh;uQ?ۼ&_ @#== }qW~ϝ~. }{1|`(,Sدи?ш6H($(涆 '}i:hA 0wSܥ L/C进 ABC-$伇҉Ȓvw>wŎ"AfCvCƔk?,He4UK)m#JY4ib ҫϊ:©2-7KtlZdнP^IGf:T'ObzP/Jr ҕg]K+~=[S6p"{;OҁʉJF1f eϓ|[?PP Q̌XC#c`-V0$)OiX3,@g \9bxl Ț~dipQخaц/ijd%?dt~f(sz^Q\o"|NNR|u#auJ.JxF@ / H Z HHox(cBiQ. H"lH7OT <#K3wkZL8kn@7 _`Ϣw?f#paC!$0(0< tlܖ;[EÎ٨ejdapA֧_^4ne$(d(d(*(j(j)QdUNjis  qW)vrA}p6Eݵ%$C9[*Bzo?خMRmE )8!{ν8DUxBIE#mv&:ETё`GnOf;*MdUșN(mB WXBp.>>匌7 l1!ZJ˨>|{x݁`(#<gu(hYhf#4u27n1Mf ;L3Zה0% o6 bAe s d‰:!9wׅt|maipbPUNS G"15V>II^]2}`ka1:2=tf`HlhG켾Ĺ$42vÚ 3ƌ4{)R`i'|sӫC< \=NHtCxO" $ I뼖:xoF2,@w#q{2ۏzto!.#难0 B>@9p, K@$,&ā@P :A/rn5և~ǣ7BM`̠Abg9)!5-5[d'߰gqu .y_Z?`P8) t/vԌ\Z+B׈v|ptg( a% Y]cY2T&LF"qtlq(@L1ύfz$B]9\PbǵhoIoGV]f:O 8]d DHbT: @1P}q:9~PO¢ExD+bDmmXnw9;JȷjIӰ?$N6u&o]Qez w` :WQPz(:UYף0dpZmvw/KwC~-#*OTW!Y`"k̾?Aq̅.YY?5S]݇M_˛B $#D}ּԀMf"Uz@Yt*d Ɠ{(;;fe<ĐAULd`nc9G\70J8Ϸf,45? f*`E{nΏYnV1޼塖i|_N,S$|@HhB:)XiU.VgmeUâ!.x\ #tb6ٸk,|4[)~o;,`{"V}Ux1"'q"9{Lg8I<^oNw3 \?]98]_uܮ̰F+fS=sNLRgiP)s3R =#~q[L ~ֹpR7\U8vgVed͓NV9goM84vC](P48h0 teYIm4Zuƨ$%wlĐײ ezݡ[R&.5`?(c+!26]3݀}ˤI1!V0f.cU%wTjqRu..wAjNt{^L@ IVpcBk) =\&{N`HBPbB"!ۈ1ꄤ2'Q*ovVtiH (`BCdKS OBkc(n|8ʷaIB6e7;]T 69gMx&{薭0T@X#.Տg ٽֽp_0F{?WnB%2)yo:el+MCB/mFAfMMi!_ӡrqq?/H`@a h4~ێ#) oIN^zb:0@i@;psgϐHb$-l@|¼J^$aHɄ ͯ߳6Ub(;kL e}XaF@LWY}49g/ O1>իm,"IV9WdVM,?ߌϗ>CkO`2# RIr>MXwWme5U oU_֘B,QocZC*J@@ j" #ÎswT8Q ]&U 2|qd 쟏u흊 @s%а6! IPRL!؜R9Lo8km<3߱y HI a$N>;"'KGw{P{Ä^هXɋZDQAgZJI&Y߿\e'TN內^"wū14oV,ݡqx)77Aa)9o%`!XYC e&H i#GG>z% s={n T+Yg?C[nqj !iBUzOx9G 翛ϟJx'vƢs,ƎХKPCgf^|u0Au¥/5-أ1:9>3 @H Lsȡq?y\ux^4-rn%o$gm1TK4t*Y#۰UвTPNO6~) p;$AȈ,?~Åjl8w/ eja8ֵ2lfrv|vnorqA-PIK+إ,}s_NMw`>K.R Ux`gk~-:,C |_ 1dD7w|" 3n?CjFЩUFvJJ1|2oV7Kkh-6DkD0ra;pFP,Ϻ-F f6oL++/3u)GMP?}>Be?(6p$|G xYbI.}H- */g/|4C+0KSH`#x䙉;w@jP5b܉(ͳYmE[@K4.Ha;8imb1Јr  Գctv~6;/A^Q-T