[prev in list] [next in list] [prev in thread] [next in thread] 

List:       fedora-directory-devel
Subject:    =?utf-8?q?=5B389-devel=5D?= Performance discussion
From:       William Brown <wbrown () suse ! de>
Date:       2019-11-14 2:34:32
Message-ID: DF598076-E283-4B8B-AC45-C7D598057F16 () suse ! de
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Hi all,

After our catch up, we were discussing performance matters. I decided to start on \
this while waiting for some of my tickets to be reviewed and to see what's going on.

These tests were carried out on a virtual machine configured in search 6 to have \
access to 6 CPU's, and search 12 with 12 CPU. Both machines had access to 8GB of ram.

The hardware is an i7 2.2GHz with 6 cores (12 threads) and 32GB of ram, with NVME \
storage provided.

The rows are the VM CPU's available, and the columns are the number of threads in \
nsslapd-threadnumber. No other variables were changed. The database has 6000 users \
and 4000 groups. The instance was restarted before each test. The search was a \
randomised uid equality test with a single result. I provided the thread 6 and 12 \
columns to try to match the VM and host specs rather than just the traditional base 2 \
sequence we see.

I've attached a screen shot of the results, but I have some initial thoughts to \
provide on this. What's interesting is our initial 1 thread performance and how \
steeply it ramps up towards 4 thread. This in mind it's not a linear increase. Per \
thread on s6 we go from ~3800 to ~2500 ops per second, and a similar ratio exists in \
s12. What is stark is that after t4 we immediately see a per thread *decline* despite \
the greater amount of available computer resources. This indicates that it is poor \
locking and thread coordination causing a rapid decline in performance. This was true \
on both s6 and s12. The decline intesifies rapidly once we exceed the CPU avail on \
the host (s6 between t6 to t12), but still declines even when we do have the hardware \
threads available in s12.

I will perform some testing between t1 and t6 versions to see if I can isolate which \
functions are having a growth in time consumption. 

For now an early recommendation is that we alter our default CPU auto-tuning. \
Currently we use a curve which starts at 16 threads from 1 to 4 cores, and then \
tapering down to 512 cores to 512 threads - however in almost all of these autotuned \
threads we have threads greater than our core count. This from this graph would \
indicate that this decision only hurts our performance rather than improving it. I \
suggest we change our thread autotuning to be 1 to 1 ratio of threads to cores to \
prevent over contention on lock resources. 

Thanks, more to come once I setup this profiling on a real machine so I can generate \
flamegraphs. 



—
Sincerely,

William Brown

Senior Software Engineer, 389 Directory Server
SUSE Labs


[Attachment #5 (multipart/related)]

[Attachment #7 (unknown)]

<html><head><meta http-equiv="Content-Type" content="text/html; \
charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; \
line-break: after-white-space;">Hi all,<div class=""><br class=""></div><div \
class="">After our catch up, we were discussing performance matters. I decided to \
start on this while waiting for some of my tickets to be reviewed and to see what's \
going on.</div><div class=""><br class=""></div><div class="">These tests were \
carried out on a virtual machine configured in search 6 to have access to 6 CPU's, \
and search 12 with 12 CPU. Both machines had access to 8GB of ram.</div><div \
class=""><br class=""></div><div class="">The hardware is an i7 2.2GHz with 6 cores \
(12 threads) and 32GB of ram, with NVME storage provided.</div><div class=""><br \
class=""></div><div class="">The rows are the VM CPU's available, and the columns are \
the number of threads in nsslapd-threadnumber. No other variables were changed. The \
database has 6000 users and 4000 groups. The instance was restarted before each test. \
The search was a randomised uid equality test with a single result. I provided the \
thread 6 and 12 columns to try to match the VM and host specs rather than just the \
traditional base 2 sequence we see.</div><div class=""><br class=""></div><div \
class="">I've attached a screen shot of the results, but I have some initial thoughts \
to provide on this. What's interesting is our initial 1 thread performance and how \
steeply it ramps up towards 4 thread. This in mind it's not a linear increase. Per \
thread on s6 we go from ~3800 to ~2500 ops per second, and a similar ratio exists in \
s12. What is stark is that after t4 we immediately see a per thread *decline* despite \
the greater amount of available computer resources. This indicates that it is poor \
locking and thread coordination causing a rapid decline in performance. This was true \
on both s6 and s12. The decline intesifies rapidly once we exceed the CPU avail on \
the host (s6 between t6 to t12), but still declines even when we do have the hardware \
threads available in s12.</div><div class=""><br class=""></div><div class="">I will \
perform some testing between t1 and t6 versions to see if I can isolate which \
functions are having a growth in time consumption.&nbsp;</div><div class=""><br \
class=""></div><div class="">For now an early recommendation is that we alter our \
default CPU auto-tuning. Currently we use a curve which starts at 16 threads from 1 \
to 4 cores, and then tapering down to 512 cores to 512 threads - however in almost \
all of these autotuned threads we have threads greater than our core count. This from \
this graph would indicate that this decision only hurts our performance rather than \
improving it. I suggest we change our thread autotuning to be 1 to 1 ratio of threads \
to cores to prevent over contention on lock resources.&nbsp;</div><div class=""><br \
class=""></div><div class="">Thanks, more to come once I setup this profiling on a \
real machine so I can generate flamegraphs.&nbsp;</div><div class=""><br \
class=""></div><div class=""><img apple-inline="yes" \
id="7C7BF4F6-4F51-499A-B125-9095041237AC" \
src="cid:275403CE-D881-4B0D-ADDA-60EBA46AEB10" class=""></div><div class=""><br \
class=""><div class="">—<br class="">Sincerely,<br class=""><br class="">William \
Brown<br class=""><br class="">Senior Software Engineer, 389 Directory Server<br \
class="">SUSE Labs</div><br class=""></div></body></html>


["Screen Shot 2019-11-14 at 09.19.31.png" (Screen Shot 2019-11-14 at 09.19.31.png)]

PNG


IHDR:5P
iCCPICC ProfileHTSiH'&HRB7!	$]G`DEСcdbXdQ0{v};?
 %Tp_zl\<7H
@Yl].hjk6Wpl P9bv: 'aE  v \
)@XAp''N3LD{"b ;=!#l!veX!<?==c \
l8(b%Kyi{ 4֪8Ifs J \
zFά75#@ʂYs'e3~9,޴YN0q2{G̲(#\+Iɘeh.$5JjqټȘYGϲ85"`SjI \
ssy}/)ݛɋΚ+`Jkp| \
Li.aZԟ+"{3rnoSX7D:VXL̩F<3Dd^&0.)`ϧ[YX:0u_g>R \
2`߅9[ . ilH}r^%] "E*TA~t0CjH6t \
+|e u(8Zp\7mp<}`# Q iA)d9@7CqP	 \
CEPTC?C5zC;ɰ`8^g9vE|_c("P(3 \
G%Du<T	ՈjCuP#h,h?t^^.@]t?zCcL1N&&YŔ`j0011X,V	ka)>l;p*8S. \
erq{qGpqwpOx^oMa9~@%!apFE$L分Db$1XJl$^&>!'H:$GRO@*%#]%>&dOb\K@~H~OP(xJ&e;rI&c.ÔȬ)i#F \
/ː]*-["{B@5 zRYurijuL&g)".W wXKy<G>G %Kiihi \
XCBB Q.QEyEhŕgPJJL4BJӘǘǝm^;ƕՔݕyMUURUv<UEPݯzYuDMAYv\:nZ \
M1 M
_
^K#J)Ś4hZZ|bZt=^J \
jkiK'tut64<%:&ik{Ow7041jbPِim`Ĉbfܨ18xmքgRnr633힏8_0z~ٌae`odhɼv.\ \
"cKyKMmLVV)>[ژpmllڶ~5 \
'W8(8:8\u8z8w<)ӟfΩ·_.4\]xhဋ˥ʥϕzMۍV]ם^>0f \
00xXx<Ny{:y.~3k/o_Sf3Gw"ۂ \
 ]AO-! +ia_ aaa/ \
                -ׄwF"EY8(J-8>z<+(/vAqqx\|t|M"E
.]%+\[4meXN$`b'|eYcĊQ'{5ǝSpCI.IEI/]w%x%'6/2e<5$6u2-&)~Z \
/Htdhf s}˝^>*
Ո!qk2ݔIH\ʳ>^qbJʛLVm[5jj5k6_X[Z}|7m$nL&ME>lܖ!g`\\QnV筕? \
еzm8y-Khc鏓ۓw߁!`κ"좁]Ayv/}ĦrqdO_i`i \
^;~-/(oPV1~_VV5WT:PΟ~QɯV+먷?~ \
n4Y|QfUMJM1ɱW?'x'O꟬8E;5jmƵv?v_jh)?x\ι./\L8оK: \
:.\zʥNF.W\svv7o<캚ojx{a;nw.{ލD=Y \
}0GY&oxyߌk;y׿:dHk3>÷_-z5Zzb$?*97GcGߊN+x͇бg?N}RTs痘/C+⾖~3=I!KĚP \
II6E3@3	'zd75lp(?Edm5Ԃ&%gɉo5HqfZDE^E
 c-@"VeXIfMM*iD : \
5ASCIIScreenshottiTXtXML:com.adobe.xmp<x:xmpmeta \
xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.4.0">  <rdf:RDF \
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">  <rdf:Description \
rdf:about=""  xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <exif:PixelXDimension>570</exif:PixelXDimension>
         <exif:UserComment>Screenshot</exif:UserComment>
         <exif:PixelYDimension>565</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
c@IDATx|E߄$K]@X@@i(FbîX@ '6D,XAE \
Ti*(E@{O晰^+$wg}睲Q6儎HHH"@tDHHHH@ \
Ê@$@$@$DlR0   *:$@$@$@KN-#   \
:@$@$@$DlR0   *:$@$@$@KN-#   \
:@$@$@$DlR0   *:$@$@$@KN-#   :@$3GIH \
P	R`H 	̝;WW.K;wxn= @<"@`̘1Ҷm[ILLJ*yEo \
=TtBL#9[l&MHB$_|!?fH< I \
\r%2m4DRNy%==.ݻGz^z2tPSL~ƍK.r뭷Jƍpk&[ \
1IH7k׮o]"/[N}Q9v옼{rIˤ{2gٻw<#riԑ#GdʕҫW/iӦtI+I> \
V|n2 X$@$"lʅH^  \
,{W>{J&M,9ƍYfɟi_do^''O(5_}!< \
C)1$XaCPںkVgϞ+? p7H \
p,5,:SRRBST)i CFIʕ˕+'ё	@$ \
	HHD`ҹsg1gsñ	㵢Ϙ6v8< \
{춅}Rp$oy8ڼylܡCUo[oٿ<Cb \
)RcBE$@@N"E 3~XO.X \
`80f͚?Ȼ+E6CG$@H"T)S%5?W5$$$M9|`1		D*GjR<M \
**JUf L2$ H H(E@	 
$@$`"+			DZt"<)
						D*:UHHHD	IHH"*OJC$@$@$`"@E$@$@$@ENd'! \
 0'OlIHH 2z뭑!HIrP>0FvvevF/ H/?R \
s*|ˎ9'  B@&  _Tt s   /x`   %@E'|ˎ9' \
 B@&  _Tt s   \
/򄢳MìYr/8/˜9s\N[v<#}vp$߹_

'q՝SLO+Hܞ:tHF2Bn4ZmRͣ|F$w \
oO>DΝ;g"daBr`s\dL+֛Rt`'ԩSұcG-[o%;w3aY>C}W~[X+jx> \
_|tY?;+,et!CһM>EGGM7Y݃oWrQ.&%% \
YٝJH![(aRt222M:O6n k]#j:,sΑ}jB \
ʕ-Zȥ^*lX^Y8?sѣGnzҮ};Acyf?oIʲeKK&Mtƍe钥$7״(ٽ{_"_qo>)RN
 7s_l4jXկ ߴɩӧٳWkeWWN>(͗YJ,֖,c˫SW \
^!OyJl6ԨYCTkڅwH^=uy^g?a8gu9sF+9M67-C/Z?%%%ETuh#K \
Jy~0t,ұO`(jJVR;yݻvˁ4mZkI%aՃ"ST)tYb{ymGyDI5#ҫwoO2ZXbeѢEK/amw8O)I[l*UH
 +YRRE2TppڵklY=תry
ݕ,[4py=Z^Y`Rnw~(,cE%%9EU.C}N<(͚7={Bv΃|Â{~K[Wv(N>O`JJtEu.YϰeD/
 ̓?mذ![ @	# \
SsVJݻ?5k*J9qt{yyǥG:s8];AG}$67AǍH(kϿ+SZRSSe;Șwߑ}Eޗ˄/>ǍSuCkV;yNKN \
"OjՔrV?\)SFoHժUnF*Wb,õٿGϞx|,cL|ZoF& \
H=1f̘Y>Q(Ǐ(Ū~#{'zRZn-Ǐaj~YD}Ѥ$s0#eLi&W2	ek\TJ1ytݹSrRGn̞=[GO
 YٳG
}5jhƗ4'~04nX
]vYmбR-R2/6p#'[+ȗ_|)դVXxpr$j1_^zay嗥lH)6vdõjug>L$˗-;ܡlܝtPu7r \
fPx %fꔩڢ	czj7Ȯ]t[Gt&(RR.\$۷oWe
sjWT0/p'sqgo(;mF0\ka='2Rd4;4ĨhJ/BW 
ȆUs0`?Cɜ9yŋןڵ?՜d1&!|azSp)WSB""Dy& \
ƢqeXQ&M$&OeqfL@TRx"ۆ1hbc39Ld \
%&ɪ'4<5D5-O!1{[$w&{Ln1)sEozM5_x>}Z-A0di,!9Xu?
 Wg.[WgjxǎҢepO+F\I \
_\2'c.?{wՐ<W`ˍǏˇU>L	en E= \
gNQ#stIO*~UŸi1 \
	%J~Q#KgVJʣjm[ɐHɒ%2\$ȱA54i2QأjЋ/ \
#WW=8*VC:v̜&ZXzuP曲g*ӑ.dw%U15/gĉz}o)ac?& \
GzXFV֍j1A:|Vzl8X'Mdmf(2U>=n(G8)JOd%i&=;U(oyulXF \
(,5ϘXMTOM%HpX:X7*nzz1O<!uΈI2ja޽˯e~΃9v@Y̬$=-]7 \
ղpt.$qo.|aXV{?pKm;uylBB[oYta3G \
ݦ*`'8=1Ƭի>oTIٲe|Fj1&gVaWf.%gN&  \
ƄC2	+pPp|)?ql)YHː_"8TtkT'ɟ,6gՊz<l=ʅڷؓi \
<"  .TtܐEo+0mx+a$@$@$@ f2kC$@$@$@Xa(			@ \
ƅǬ			X9:x 			D
{ԋr@H*:qU՛
O[D/H/?d*			@ y	   \
!@E'w$@$@$@9@N@%HHHrΫ			*:9   \
Ttr;J$@$@$gf͚Ɂ|:kŊ2p@iݺw}sNHK.ҨQ#0`ٳ. \
ڵkna7tlڴfuҥKk׮r%hG`K/ك>,{NSNl2{?VyIJJ!CW\! \
oI믚	?VvyGרN2|)yK/ٳaXho'|bߞG \
2=zT $7:/bƆ
͛XɷqFٳ7,[n'k%Uݶ't\GGϷI@7gΞ=Rv(?=)-gO2 \
/吒"mڴ+Wړ*w{$u`Վ~ \
D9qdddx=kݺur]w	_~AhټN:;C?ZTkm۶2}tT\wu:<(CPrN6mmYbYxۚ7"snݤ@K~sβ~t[nǏ˧~*
 6}k׭[Wl	 +
Yj;&|<zCCrN7w5j<$?2DGGѣ.7CYThQ6lSBs[ɇ \
`(5kt'궧9Q۾}Hw޲w^OZ[5I@sΌ'bbb߸N<9 o=k9 \
3_	[֎~wɝ=FdW.hJ(ʂX\ \
?dh${7(zW_}@1ٽ{~ ,,0UV^zٯ.OϦM \
7NϤxG~z}HqܓO>L \
F#x衇d̘1ޙyxჇܻᆱC}xGܖ-[tO8]_f̘!뜆VyIKK5k \
z/_>W'>ph,Q{=S~䎙s>[}ꩧܐV3"ׯ/f@ĉ&M8'cJF;a \
cN 'לz,k9 \
TZ1ڵ+|_Vs4_yB+UGPƞvB\箎"ҢEdܹR\9A'!gU׬(+MO2@ \
p*WXϗo+|)Ea!ϞʽEF4H0b<6a \
AYAaz`?6eCϟ?$$$ȗ_~_Y*0<|zI&	Lٸ^u:WnF0W_}eYN\fYdoi	J@$)9N=| \
{Ca;  2ăsIvPTbcce۶mCjˇ  4d8pyX \
eQGPJ, <@9/
D]RV;QQQZI7}(SXرcHUFܳ>F
$Pa(R aYɇa0õD yeniQ|3g S:vkVed@ !
_d@g횯Joe@5r7+:VH07ua3tzj=d-zh|:e
=*3zA%?i`n/z'ĸp̙3k͈#tk@z.C4xC	Fq a
}UW~A~#ѡa*X  \
O>k	k޽ݝ~+˗/Qnv7OgԩZؿծ][CǹPl*/P:05Ȍ.	#Mwbnȑ#
 /;`mOa@4P`逃Us\룿JF|k`XCpl`׀ AB' \
g%Ggl7m#owu͛v oX0]lYNq`Uh~nvVn	F4_C \
l,:+ԪUK7h fdM8"L7OЛ<0ibh' !8#cp၃!z \
P`U@$(?	FC/1>1a(8X0/\`)"7zhuo $P`(ۧ(P8QPl
';C䏳,:(gX
e;Cu Amk;ٝ-xHC(PesEfZVV2Z7}ѸQ< 3XĢN
LFWg%l텑~|ȋ(ӹkV2 CydaXVt8+(8 \
}7r7[;i@(:e}GZ@!h j37Ɗ4`.  \
ܘY/\N\sǎO?iq1НCjԨ{F㷻 FOr`^5o\+9? \
rwb330׹袋olP(AYbL8P?9Oy	=Ts+_b\/CUo|[13+::bx԰ \
ځap2uV2ZYZ5*#:dO0?s`0l!PpD1qSbmVjQuz쮮Yq@3ż1tvqV2XX
 [!t<P9~:_O \
]Ϟ"&Zg!,X`Zl0`U31/V8<(xNj0ҭ\ǎ֏^4n"@z	C`6"HrP2x׮]Z,( \
VXt  Agunc,U#>pO!Au@0>"2%ǘCFyXMxgX!+p%òq \
4.]ZӢ e27,%׳វʈ
C*a?,qƼ р3,GqV꧱ XZj'{*_e譎#U\Ouͪ^ \
YCqm%U9`A6,5Z;kS;i#6cy \
&"(Xɂ`RVn!f~(I04da=iTt) \
s~No[o{x~P1p5a<!?Tp<&X2Cxx`ͳrP|0tP|M's \
L>IFA>;X \a1imqa~9,x(Ai %ht

?JFt_5dD^\:2X'VWtp_YWLnA) \
VaΪ|=mg筎"n0fUFn \
#wdMrt=onϪ	FG@).'O:=fTTcɈ/zPp~`(<`|	xh;o \
ds*",V0BNcȈP,h:Y&8( \
xP:Hu9@5ܥMv96&tcq0d'}: P6 \
ؚͪ|P"5<gU2dWIsy5*ZݜGO/*< \
$;ҹD<ΌbU%WJ;6`р"΁a9?J0`8+*/opN8+I~_eXY]' \
@y>$Uvw$<zt	@[	f4_#6st'2S"  \
+䕒$@$@$	PɃNIHH  WJr		@$@E':E&  \
BN^)iI$@$@y@H!EFB:		0_ \
mBr.t@щ4/l2Ri/I@F!Ϋ			*:9   \
Ttr;J$@$@$d^HHH wP*			@ y	   \
!@E'w$@$@$@9@}Yi֬8pRSS;/ \
YfM7$[|Pv?RRRM6rJ{7n(={ƍ7,[n%%%ɐ!C+[o{ҥswgΜGyD.kdʔ)
 67ڼy=߃7xC>[zxZ~9ڵknFzi&tݥIy?a[]]UCF5}u`\W:6||C \
{'M;m4{vOVWX6`ٳg={*M{r{SNl2|Y^z%^ \
VYݟΙ/sW_9Çes=NHĉtٻw<xb/">=zTj֬)s
 pvPZ/Ao4|^zL>]ˊr-rqOaÆҷo_l:׊ak=V;_VZ/Z>HB
 Ix˨QtYSؑ#G믗3fHҥu#s^{Ҷm[ͥRJruٓ= \
۷Mz9*80 Vkѐw \
2ruu;(+V4y=~<SN4Iq)2: fٝ3b}!ڵ \
N@rrΫq{*M\|~֭(P@pBB~q`N'O9 oV \
$(9P*<.Sgmo-H.Ȟ0!ԩSRzuA_D	Vha=&::S?dx \
	 %Z֭['wK( \
YܹSV*z_C:|>}Z9;4*Pr94j2uT)Un0.-wi5(nѢE{+<t \
5kt˗Oիl+&Mb'ŋɹF<<, 0^+,9vɕW^\_='L`;x \
駟tK믿.ڵKرc!:Cɘ1ctPB)Mk/+WN?VaxƱ5=Yoʕ"Ue4 \
-Zɹh?{7ԩSǞw΃umn'j˱Y?|1>Oi޼yb#(p"zqzJup[lqqq]F[O?mW~Xϙ3' \
6RCF-~m;AÁd5:?C@(:!1 A  \
QG@sϟ?$$$4ٳ܏?X \
h,]Txa	O<(1</be8	gq-FψsUWzfqH"has4:Crܹsz|QF%K%&[AA)B_ԍ
 S<'<<(:tg}&`!Bs4};VG!&Mأcu<(0d	37PP4퉝?/lkz
 *_<%5ˈ:hS6_pX)с2/确ӄp8F{ٍpwP<ƫ[Ap>@H"ꩻ{4y}
 :nC=6Q!i#?ά Ucu3 	J
FC
2=a3tT!@
($PV , Go
xǘ[/k̋V2%7sL \
?^[mF-\PрC%Fzƃ6	x	-\JڵI1xec< a
,(De儇<K
;ybnpli8G]S5L-/YDe?UʈO>k	k޽{vg) \
[/.7yS6{#G4	׆KP?&Yv#ӷ70=poi",Xga \
~.*-[ܱ*?+ݟF,<n[j}<:]acсҀ)XWU~aBQ \
í_^ڷo1>4r8<Xp`iY=za4 }iS'$㙡
-(8"2
&zyFYo|*ý;RZ5
zes$` F`kͽ1#<;Q`X/CbC\~ڂapqV,7dx}Z6/\\

> `Ʉ?YvB 6GK=ŗ:Sc(yPYqX[|{?yDhљ6:GG3(谡=|Ma8t5+v \
> Ǐ=wsyo̖(
0upFdA.2"0c81v۶m7;sy/_^Q^h8#ir>傡G̟+ \
1frPLFE]4L͛7JPsL#~~[o0d*`1Ou{ \
A:8bh	<G%E]0g;[6,Ha?:A4(e1?(`8t.0>+kjcO9	yeEc^Qvhϡ \
C)tC lNLCXزeKMaLP`&Ã4ر~ JcH\ѭ%,Dy \
|yBƍW`8<1HZKn`/,tU,8 g?~GqzL8b9/DO

*LXz95g*Q9 +dǷY \
$QAv<xsztnr˪|!UKX+6h<y;(CQXBZia \
gβibb<:p=h&1d1AsӬZQ=*?+Oa/h3PpHO0AwNRhh \
QԿ`zX5LPf0g 8=!1 $a2 \
E|wxcz?柸;?X*;I|nc82e2 \
)6D#aL9-4PDPfP0\S9<>m15cP \
8>,vxu]zAN0Eca#51$: a;d_Vܙe7̭o \
7X2[xn{ϚCG=a1[oy̎k1t0ԏ:8t"̪eCW\|M \
{HCfP<V~{=ޟH,`9#7Q'qIcƐ,a1RTFcɈ=|;?\<wߘXF9-wq#"*:( \
XE00}AyQ҇;Cbڈ:<`N#Ҵ :k޲SF \
א?Y`\#;q b?gaVGXaTU9g{*M|BaG \
]qgwy9Va1>5yN&S,>JaEpw;?X#s*8<}Qrw \
յݝS~!pwV,=oYkX9nVSt?'~{+?O7O`!6strJ$@$@$s1$@$@$@Xa \
		@8 ΥǼ			X c$@$@$@L \
$3PHHEsu!d]$@$@$@$@8tŚ@$@$@$DlR0   \
*:$@$@$@KN-#   :@$@$@$DlR0   \
*:$@$@$@KN-#   :@$@$@$DlR0   \
*:$@$@$@KN-#   :@$@$@$DlR0   \
*:$@$@$@KN-#   :@$@$@$DlR0   \
*:$@$@$@KN-#   :@$@$@$DlR0   \
*:$@$@$@KN-#   :@$@$@$DlR0   \
*:$@$@$@KN-#   :@$@$@$DlR0   \
*:$@$@$@KN-#   :@$@$@$DlR0   \
*:$@$@$@KN-#   :@$@$@$DlR0   \
*:$@$@$@KNmj͐d~pppk֬f͚U߿\q/ʉ'|>sٌdYp|| \
~<\s߿?iӦ4o\^z%IMMu-1ua^l8n>2doXSM&z%. \
QZZʞ={뮓W_}U"C~[1K&yF-?5W~:6I4R*aӧe \
駟ʂnĉ2rH4i(P@Nr.^߅6S,N䖋2ش⃰%ݣ%>7eg2}tlұcGԩ&	&Ȇ
 iӦr-H|tΙ5k$%%I-O>޼yRD	IIIK|A;w#z4l.|WRP! \
z0yݻ#ߡKVC)]XZˬ[KO\}.UP{KttfL.L{?[oiˎ9I \
7p*7	MɄM

ݢVA\o~oY.b1{lҳdiԨ \
Gz~'ի/_^+@>L<Y͘1C\^9uꔌ=Z~ZUW]%+Wq>,hׯ/;v쐶mJzzK.\^~euEtIYpbVh \
Pc91`AĵrPOqbO7x]M6I y@Iܤk;%KN 68߸
6yqUIN۶mRJI=tZ֚s*NŦf͚ںKujx[N[kzjeʔK \
tRJk.7Hɒ%o߾:WRQСC}ݧohk/%왃%TlYoʷ?ԟ,;C=uγaɁԩSޓ9s昣r-:	={V5jh	:u \
A9zV0ڷo/;w\Kap]vp*FJ\%>>^yi?tEy% \
,HgΜ1a$0Z(So9#F/"M4v I GТ#y_	l9Z0|k[uCZ/4ʹxK
V7N{yӮ];Сyi`>?sV`iSO=eDߘg(.X]a+8bEʋ1GXVTXlL&.\σ"e驟srڗeM=(U^iY4s'	 \
z;a$/eչ#&@Nvf~(U Jԉ"'ω!~C^uăsd \
;UN-lc,k 6b:v`Ύyn
8pU]Yb!0YЛǼau9Bø9K \
HL1i[z)Oyq2c!qʅC=?Vq3PɱŰ\!@N`E`5+0'pPr+Lʕ+a$(}U!ZbŊi6<2h \
;..N';VV| (7 \
gj*sT~i+&-c'iL~<NXy990_V\C=5r&2\˖-7I \
D"^2[mHf`"7ՌY1'yqmis0Q0'c9qŋm
 k1ch̗s'4`se[Ib|RrC=5$C)1$@$@$@pO"   \
$@E'4˅"  *:A$HHHB,HHH "   MTtB\+ \
    LHHH 4	P	raHHH@N 2	   $@E'4˅"  \
*:A$HHHB,HHH "   MTtB\+     \
LHHH 4	P	raHHH@N 2	   $@E'4˅"  \
*:A$HHHB,HHH "   MTtB\+     \
LHHH 4	P	raHHH@N 2	   $@E'4˅"  \
*:A$HHHB,HHH "   \
M>):o|'w6myK/Ijj=|ҤI:YfsٳgfO@lܸQz)7oYnj \
G			@ `p+Vk \
FmW_j֬imk֬5m6l0pB[ɒ%mm+Og)~aulRW^m۶3j׮mKKK3c \
  A  bzR>9y(F~yu믿^u&ԿL"owwl@IDATKRdԨQ:L)>ҷo_ٳgfߜ9st^+NFFTPAM&O֢Es2~+ʯL$@$@H \
`a'VUǎ СCFvM6ie7oA6l({Ā! \
GGGKuPt<eEYxz<   J \
cǎa'I.4uTy8(4fPB?)))0t4u Zqnݺu    \
\&<9rD,6l5GOll;w4Hip9ǁ:h<HHH \
	9[RQFj*x*U5I~ \
a)^xaܤ0\u9t$@$@$@y@@ΐ!C;IbbB;wO?TObNOO1c \
۽{^ގIm۶	?Ns̙rAiժe$@$@$@y?̘1C^u-[ٳgˀdѢERbEmu@֮]WluUʖ-+}xRD	9uL0A)? \
			@!`<+01,5wvCIBB`YHHH \
	d(			@8p4CG   \
A1			@h2r*[:Et[)%U Ԗx2fHH / \
K?e?vB~88$frILT4L \
\$@$@$NF3+dW$9#2(ne$@$@$wTmV^,.6k[Sa_3				p2sj#Rr'ғ?gw>		@ \
"}w#9gKq^84/VJĔq	=6HS#%gKJFo'2		1NF \
H;"Y埓|EtXZ5[MRytCSӿɕ:8wSO&Mڅ	i=! \
 0$9:aXh'fG;dTLYy?!\-=х/^R[ya7 \
?_uNroR$x^FFI"-:X(Խ.قuƝmwuQt'f#XRLW{W \
Epb"t^Y*t^y/*K-C>>ԧ<nJ^#W)9D$@@N8RRb\ \
_jZ,qwp"ĸPLSU	֤~K~Kgg%`E*Jt\M$ \
wM+׽綻dPq@}.=ENRyxk=L)ϓ̜Ǿ6{ُ㣋JUDQ9olK \
N͑u6M$@aMNX_dR.]~rt,qfKU&	?`rgG6L \
δjd9W	֦)[VCQ-+JmH\%!mvsMc c &a]|y, d
j;1	үcR?.ɇޕvJ*%d,:Ґ~~P"K$нҭt[]>I) \
]A$@FNX[j;y0Qq.2V_[VЯy.$I+Aʒ%ieQae2Za:$e*MPՊ#a9c.W`ekz \
ˋK[J%!ZF  l  ?ו Y,ܬ`l&LoGRrp^lt.)$k \
%W̊)k]JrQ".>_QJˍy\>rqÏb\u)[2			 \
*:9;_ s '6X"~gz=EvLG_˽
%)Ӻ8䖩$z֥'(_םI?3zisV}0q\O?}!&pWSZ
R<#	>*:_y*ؓ"ŕTUiS_t,z,cEP2'0)%F[\=>U/h$zҽFxVZ`۞ʮJ-??PHr&ǯ;8y(νQ \
zjO=Ǒ9>ؽxJj? rm6.iČS \
1;2?z4|.IH P(97m}Z(P_,=k@Nnap \
ysv$m7P9/?w{RPrb+f*@HYʪ	#ux	@6 \
p#/%Nr."jNQւ53LYG?; \
6*qLI`޳ۡ}O:p3H4*:9Bo/zm.VJ)]Kˑ<䥋l6ppYufb \
TyOƸb.cҳ&++Eh.e@*	Va2y<H \
|	P	߲O>;1!FUkNRu \
X5xv:v|z=I|ŜkbJVve7sRj̏ȻSʆEñbJI͂zGHF% \
 $L3Sieȶ[\w+_	 \
(x՚3FPi[p;[ys2[cETSW*2}}JV"ACxw?rK$=dWj"0XU@,SXmfG32lJ8,P<=J(% \
t`Y|'s[_	RxEu&'㱉>zqK 3F"
*:YsD![oNwVY3B$p:턲\e e}X{ǥbZ^ßc_YqY \
<Yzo0&.*:ԜL;KOVc2':OEd+['@c}5~.UmTos3&FV \
#^TtoNkvז%7'<`1	LCrϩ	Ц?P0)$/N,wM"fdsB4D)EKyRҹ \
LL\иVc)9%Lrwm:a8Fbs}zmg2I7LH  
zez;.'G]G%'x*j9:hɜf(PEAX݆yiԫ8nC**:f <&l @E' \
2IǧKbƅK	Dy	t$ g;vL PW`8O7|ܤp+g/o9+:kH \
{	P^y2).EN^WI`:$)6+)uG^?	W?K-8ɓsnsM',N,+7;]ҥmf/@{Jǖӟƅ7]M87v?lJZ-Kt3~ \
]qk2	@z^#	 ؅]YZ)WٛI ,	M _,gVO=,8Aje]ӃH \
x*x,"02;,$J^>AʩH R`YSj0ڒ \
X^/d1s416ů;۱FNP245m}k'X6/VUxH \
,>1[88:(rG	e΂!3: Up82E`ɟ]Z@DXgiEPdK8%!#v \
e"$IkBP`r&uZRmH \
	DGE=}r|HLqRQOwlWw/_xeRsO$<a*kgF18Z ?=H \
@<9Ǧ9ؚlVj5aSL~=W+$s⣋^Uz:~?CqȰeȰ \
0?Ti@$8v\V^$V \
6LKIM9a"m\ؤp,T_[}Xjg$@2~?5Ogx6.`ANKZ'-x+Tzޜ^*HL`9wʾs;NW<V
 ? Lձ=̣$9#cBхGҺXWgy@<
c
w9oKB]=yd()&e?oceũ_,"[e5o$	P5 c \
>!SUvscALjEl?IS*HբG:[VVKiNOe)S 2I \
 WK>r9\KJWbDGSlȲ8w9V޻*Z.)M+z	ZpbL?pVx]ra \
9ZH*:XO#v/S6:U@]y~ؤǜuj?n-*SL!Nt	KQ+)}ZZc \
%TtRiQ<_/wGbM!O Y(F.R'lM \
vRE;wŔ@U^(l9*kyTr6JTzLRS3/$`U?l& \
3t{k`2*:yߤ_:gx$dRt]"ZGξѲ_9Zv%a\wIl!7+տ/$-O>` \
NGyZY_]1\RhR˯jrch)/J(W9fTt\'wJ \
`dOnGʉџ"-lkz7oĻ뎹*)kFIU]6.Cf)gJ/IYH \
Q<WuSQ5U#ܶ~˱oVG@M#	:Krq \
]S̿2Z̓l&i\!jBQRS)JDGy/ \
G.pڒe巓6]b"-#eV[9J}a75H*̈jA|3]7TP|+?JYL)A껊pQ
 +*{BWgmO׭|xeݏEI{ՋGLs{&=I pyyYCe/[AFT \
&eoʐ'WHfPB_-qn,/ ' Y͖V
Rx`~^ERsԐ!r3x9~cGKv%znz$d	*:QNKUy\1 \
ܓrU..{F~Dz1-$>6s	6g(9r%UtdBOB@bivx,> \
,#㪨e]/5MANDcRJ$ȫ5&tלB1%Ugrk"q"4Nd \
V+:Ub`9o	2aP ׂOؙY gm),ԼH[]>)[2I \
\P	|?K17Ux&!\ \
;^uyqJsu;N+G)=TOIWP"S9?fR (=&?VKU]46s \
6^qc()yɲׂYnzۥ}^>wd2WvD!!/jLRz6xMj:^
 %c(CI)q+R|j_f,
r+2dgWE8IHf]rϨ;ˢTX6Zԏo0_$vCsj+yUo_pR龿S7J^l	 \
g;tRYg)ˑ)%C+>ExvX,ZY&!/=S|J2|1֩s6Yv@dOM[/i6 \
R8{ZؕE&#[_T~5`$bP>?J!GEQ5~*CS唕hl>Ca
 CbaIR
"b>?ym2{<p`(y3)=߭JqMREK9[n,s*qQzKp2Sґ@ \
&<z@W՟*3H:xRZpJ)45TRTeA/4Us \
wK1,@P"i:KPVd(CX.>C/˿sKJ?	r>-򄲞{s}jEWD^NΚ~SYpb,SJrk \
27I d	P	٢}y-YtrCF_Khù[qG;|97("]YlaOQZ;)}٦?j_QdR{5'_lTr||>R"ɕzS,w/5xiVrs \
R*VVH 	P	 ͬO=,l#i6GS \
T~~emuQdaܜ92;t@0\Duzyqc`CšFI5:,ǦqmUa*n^XnwuT+	
 Uy+7=~'7?ΊJ%n{a7>'` \
,ʼ*ʧś-dcv|o R;Q \
/8,S)B<<=\X_r<\6Ϳ	➮J \
%:^aT>RvF~7|=7]w\WC{C9KWCHNOG?ǧYM	j[/w>$w.@(^d1sް%翾:a֨xVV:#>mԆfov
 
KAJ?KI#MD4:z*$y7z l(WU~P
:uAҊ+Pt`+qޅ2_<1tN}!r*^|]7ܜ1{K
Ks8-'z-:K.#Gʞ={ytZI&ɸq$11Q:v(?ϟB'037СCe˖-r˫*5kQ \
i3S"}8jN4WU(gfLXYkӂ. P \
cL6!q*:le\ϼteY!PKmH;{Zg&^XqWЇr2ݍ꼼R^>[NB@aw6m]ʝw)Ӧeovm:Eeذa_ȂdY
 30%%E:u$^zL>]+8]tt
3cΤTtpMRrӿ*9.|&pcW{ׯo;䓿z]}yXzPddK՞/t!C2NA꽕5&(^FB-[?w.vNw
 1@֞Y.
H G	dсeݺu2ydY(ŋkNRdԨQ:l \
ҷo_m%039s/[nRBp>}cX-i?Mt՘,EcJ8[n[c$JS+貏 \
vGX>C.~aϐ%NMv)%	񺍳0SaFSHO;Lc \
0l{/ݡVg#&mFW;L\x$"H Ν/,/Xٶml޼Y \
dOaÆw^=hX|z! ?%::ZׯESXV~g]=HHTwh \
%6$!Q=@_\8˅*o;jdG#Kz(K7tk/kuZ^~@~M^o4yb \
ڢ$EͪN͈:0)eIA \
(M'B8[Oea=|}~_ts#n<{9zuXtz|NnW1CmP)!e#dU"&
 ;VɵEoEzIBM7gog~:ᣁJfT9rVh 
RKJJ
8̬ #M@VaF@/^iawbK$ZmrѶ|,NWjiS*7Ǯ?zw9h;[|<lu}ؚ#N&Ǘ> \
61!|.tgLʁ-VڢՊh(ZRfRaQv?ǰhٗ/-%m`=4,騱z6z{ՋVIB{\o
 ڏ(iulPǖb+%#JU4'm*~:9Q׵R!SwnQ,XGF-~':3a)Xv`1q@Ìp
 wpkݺu ygmr,,Y:呿q& \
z2e}3Lۯ6ٗ	}JeYZq2 \
`Ij:&.0ǜyitj,/eVTFN?-2QYy̫v^o \
RVNR)Y+LzW,@@Ι3g[nr=/]tTTIap,2hӀ \
fg=6[=7\/8$f<&Ɇ]JÔ`/,v~aH5cp'r@eUd3:٤	WV \
aT{dpW<(CFhԏA[v(Z7I}k#WnvW`-yd2r<KnHY)ܧ \
7ĆrA"ЬSNI&MY|ԨQC:w,~<yR3f.аݻwQ۶mϟӜ9s<xPZje#[g3R\#bby	njt9KV \
plNӻF^NmpGAO	`/J>?Nwz8*H)RH \
"hޱXXJ" HG: \
pw\;w]~_x3<33O!zcw<q>&7V*B<Onv#]r}Z^g-͝G \
m)\wk>~Xȑޝ:uR[nE%596mmҥjwv	222h޼y4}tJMM%	fϞM&LPm
 Aڗ.g^ӝG]gA%UdUZLiYK;O3ZKÒ	@@<2oCx'yB	m \
1$%w[iXKL9>?RړMjydr@_8JAK6=ud-b/p6B[rss)--;)
 F۴HӧOS`m,=_*7r\ǐFЭ-[yo~C2QS@AB \
S#C~\jn<4O-̋y֛9๎Iї/7YPni#?פMTϊ5K(lJ \
΁Wg!'5w'_cah?~mvk	2W/YuX@.qBǸ4N<[Z \
#!6lE(.$% O \
x5ҜyrLnSIL~)ôXOt|b*zdS)Vy|v`KL; vN]o;B \
\Kr-</ y3ϟ5(ٞ=+_vop{nhr~RxB{h~a%2(E	}0[ۈ@'W[BsX/<mʌko_us>mP{(LM-ϢC
 x8đ|ِZ)\ 5J~(;/ʩvyyh\<jmTEKFpϫ2
m<ƦO.ņ@ 9ZwJ5=|f:[yR7y(ݙ9SjE%ҸU:2atA& \
?Z^ٙ,2Vj\hAqSHMilTZS(bQizSbXH:RΩY6)Y}<l̲ \
tA' r-u| TW2 \
gH7zZ}/SF+E[b^	U$itC%=zpbzTWL\UKl \
:<ԏ@	鱵|N/D~<YB=[W_gkބxLE]|'6PW|m*=?r4$2 \
?rH_o;?;DGi#c+ma~(^|;_iw:Kz4iSx*~(drbc67͘@ \
!~<~V:QqȞ؟|_uyVk{o?~9ܐ(pt	zֹnk6ɤDxj/ \
,g*N;ۊ7]k5j=uul+:G<ȓ[B"]VE9tNh)ȑ=<Iz0׉;5@sG_wQkYnt7ty|`+c
 UOV7mI3Z?CQ䌻tAlNnvՓQgJj \
Љ'}.sBo˘t}frxc5cW \
1`BOҶ4r]ίjK|MnF}?[m<A^mi*Lp.kY̩6"RN=mEk[~mC/3&w粖r.X@(	p׶#h㯬tWO5O
 OmB8U5-WbUXSƯK$PHZ˘ոX.C_N?#]ᒜwMeuJ]ҶGih_9F/C \
dfZi믭4'*!roq[Q-6:X`D6'YQ#mt.Or'Wi֑Ϩ`t2 \
FN<J7x#44Г#ƥ?or~0BJq=	uZ( \
APD.NWNs%;NXVMQq;Gz)3o|3&8t}}iΩҟ~EO<M(m \
z]uݬ#};63= ]Yy"tmB8+ɇ% \
6FzW.?Fz]e7v1ydʉN.ȟiY3]˯m:2cۓ48^uS<{H?Ps \
 iϰ;d+L\f7fܵF9-iA@3@K߾;oe`<8kKz5J	y@]h<]IQ<
 RX 	&vcުu\-<ߎd/śO*V \
hO.Q*	N1gQZnuxWO<<2JƱE;y i|
LHQ}!wb[	 	g+*E;Z>ZR=b4y`JVQ.4*})'
<~MkՓb|2ZȍS'R]'Z@{o}
̞&tP_pMHja@ B#ұig]-b/ \
Ff=j@bKOL\#0{X˓_&x2Vt<LƼ(KXKJLcҧ>窔*2/XF;Q5iK4N0d:A~<|yLC4զ|m|k=*
 H%rY˅eD?_KhFӓc	x$I<葹~E:X*Σk5ɤ^Ƀ`Dז
r_FGնc#>5;iٱ#BBNH<\Ŀ?B[
oӊ|sڦ~p敥4 \
H5dFR+Ky<.y%AOf}.Uh9ڝG$qMQ{n?|uxAZJS \
+=HȞ'@!UѲ,zk^hS6C>4{Q0.X5myv暷 \
VH#ę3|\󹝐LOSkϷ)<&Ֆ̆^T73#ڀywWO@  \
:!x6ݜ_C~W/NM{B \
7C[!cևzʳT=]nQ󹳝˙ FxZR4 \
3ckc7܈ye픺]ҥUoPz0׆hS?5CGCL=dhKW.=Z'F@ \
"+Zt&duWض~n17x"<W]Svqڂ/!tY	HE<Tt׻ \
^63j;G_:whNyKBCMmtcܮ@X|؝W/Kg讀!pqmt$|~ɘB?nUky6syIGWQF0gf
 ~@ g`wu<|p*Lj>~kw*}
VaAX N JO{ZǸ"dډ\ărRRHdc
T rps*=qPV5/L衎 ?
JJ6nƺ3zsݥD5YޣX+*Hky<k#u<?վ.Nl@}5B5̭:&C3pi1b \
&c8J~ xlZ[/IEy0S%.NL{RZ{zX,v \
`4ŜSЁ)~6ɇUhaT^g44@vi \
d&ώ(4ky;GXihK"n-O}!#K +V6JQV{neƵw|@ \
ZheK6Yߣx7F37_Y4B;6G@ \
^v*t%Ӧ$wdˆ~SMKh:yfuYk2e&0,hjR \
[6\rD7oĚWt ݝ*Ѓo2p][il./\f'
]>/AEmz@ y<N̷5D]iOw$z73,4tޣa\Z=xAg4/smhGyH^	 \
+tw^OG;mnkP2x9Oۇyh`?Ϋ6,=A \
(~h8ٓ$2_Ҝ](0)ǣ0/S{U{|F< UjMO<>.wD  \
nJE?ĸtm[\᪓ z|{=;\ a \
PoNO)I6̄F5i܇Ԑn. \
7#JP;E`tgzgO4ZMȷ*H&|H.踤i8~-]R5$Jn<|LKds \
A @,o֘y5mĢv/w>g 򒟭_ST]@ VȄ̞&`Tzk
W[{MTT{ޟ54hȴ{yib_Y膎1`
i~#H<;SDjG!g<Q~X
xMϹ*χ
2.zSbOwQ4hi<]Zx([9I't] \
#2_8l'x~߽˛dqzx]B2^w?e.Gȟ^i1{l \
QY}hykjJy04]~e L2p5<GBvnᮗK \
]/[WGd]]!x#qGUSFu \
L#&A:y=<]LHڏ8J#OJl>[Kyo՚};jvcK2P# \
hN~݁)9<_ BO p ;	V I@^A=F'k/}
ѓ4qG($2cԞe"كky=vDgO˱w<<
3s4rMM]fU(bӴ.D<Iwzi̍e
8uH郶 emNPW&Mw+r7@6n_Qqσ- d]< \
2F]nm+Z7>qvZ˓_w%4Wtv<	j^uմi}ծRSxا,5j{ZJ̿iŹMiw4dM!z5 \
rGggXz/w pF \
>BP{dHdA(t3Ys;Y6|]ݸeZ~v<2 ធ-< \
uu諭2RqA*]̧8#Y:$-msM m<~tǁ4 \
tFL@Pk.p \
S]Ls!Χ@I:UqKәt|Ɏ<u_*;#3h}<w!-<TVy\juN+ibz_eȂ \
j^u@Õ2gd{VCݯJ_BA3C` \
N<o.A&Q+&ɻZ>9(=nRyzw=  @ p٥ܫ8K.ٝG^Xr}]]e \
CKLca$_ZͶW[;7a4IMURa(T lo \
gSN7^2$	)R~1-8eZ{LC-be _mԷY	G@6n* \
WBT^q@^󂤚ΧOzl\<'jhy(6=; \
9ɺ]R/s(6|ȴI<X.:P2/ʃ&S^~$i@vG49jm37J0+|	X \
@ H-7rTXA+!*YIDATqd5>=՗7Ѳ, \
~NЦSai;{ӟQEԧԪ*u{tqc&zĮV[Bsn*voSf\{S \
aӍ#^ʃd~|  @ \
۸ު!QdI/,?&<)jRMxL}u3}TUUDm_-?&YzRvH \
A@~;t}: rdGTHY@" \
yۺ\|qՎ༿^q{!i%$RzyjFpRB*I*ȑ+yNJN<Bxa>NUt<[yTMy!i-?f4g3"A@h˃!ʟ\sN>
 WIqV|rT~5D6D5'2B;|ɑB \.}c
|m;(㿁m4lw @
L =BcL/Z=OI7,ȑ_m|ju{=Q#`'
t7~CٕLEy9qܳpcX / \
헷$ST@۹޳Kzy0Snnf	z}(YxV0m:WtB1i4ginNv@Wwl9xG \
@a%GA6Нknm9ˇ3W^Rs[E؏vDa@G`>GF!1^D!c6Mjʓrs% \
;B& Hgj;>3{vIYC#s=6_j'@%9JЛ:'2zXM4 \
wl9f@\<`fkQ' \
bζ=0=l+ZˣV'V礧U	Ϩr&G4@֨b	Ȍƴ0KsǾϛ{xCF \
Og9Rפ~;7@>}s9oM""FL:LxDǞlah>^BYdWF:XG'+cʷ \
te&kzѵ*@ g!i|` FKFxp7W  \
P洍L=~`xg$@v6[]\p-rHO \
Rb		CX0]qsJtiJM7@i \
x_o0VBY,ək'R]'}|Qvag  + \
Z<Jx4ڒDZ>N NmOgLg \
I|F[9>׎e@]Zhx+G6;26s7\sw/er-P(':!t>uR"2Lw2 \
=ڜQ}Nw#X H2یD21+ҶH \
n_C&Г9T,`1i7_(}ѥ(	 \
OiӒ{U5Ąߊ!Ԝjӊ6RwDjß m
jstXX @ "hYm-Zc17qmWN O!
A	?!@"@'D,5iA]s?(tT<˓v+E @ \
ԟ3,?BWNLіͨ)67mdn$@tAY9 \
MF#Yt-RߍYg@VV#iC әGOk#6ZڱXGl \
@:`,~_OTՄ.o<q9 =P[;8 \
@A@~4h~G?> \
6O?0;N6Gg0aݛ&NHYYY9v S`jIHVvΔ| \
b X |t&MDyyyoSϞ=iʔ)( \
\f̘A>(͝;z'M{eee4rH۷/-Z:vHGjrM[F,3?mJ6+\ڙМڜkYVq@a \
D Y?18@QQ5cHPs=C4k,oV \
;M{e˖ѝwűlԪU+裏!Ch	r^zM<qZkz+g)G3sm<ۅ#֚x \
_DX Կ^[jfԇ~HK.4뮻qƴw^;ImǩmIIǝ{7~NVwﮖ-mu	tJK\c.ɝg
 r-4$~913ݽR6ϴ	 	$$DW
,dggd6mi##.	h5K_i)^Z'efחV0ǔZhu륦;]LnV+Eg̵P \
ShU k& Py]%5)SȬ^> 5ۗ%m \
xXls8+_M}M_~:=P6'O7wAQܕӃ8뱗 \
p)i׮eddAe˖O[V4im䧱|ɓsH~QQmkPZ|ZS}sxxjoQhOiL[vlC \
B^WIlذA-Vw+FĒ \
GzBj붣G[o]>|lŊ/^L*mСns\шի24@~?zY \
#%@@FGx8'OXݺuSgff59SK6mO۶o߮;vZo)55


hΜ9q-IIu}}#ӥk2Es+gMЃ[(#Y9 \
>u/wY;4L&i,;1M[t+?}45o\ MqM[F}//>Z3GwhKjNe

^d+vmB8+E[ƺ@Im)M6ծ:gw}OiݢEmc6NPf+>4uh1j#f4 \
Gg B#H o|jI?ъETl+QDQLm9Ɩ9D;ZhPjrtpX \
x(@CVn+yMEi<c2& כ{YXCcC \
@C:Bet+&+NfBs[kk	t2ȁ \
x&@3'UвMlt5mEg_~0uFcC \
@:^`_;B~7sBv' @/t|Q\A-bІ
e͙|4Gm	 /x	/3CƦL6q,#hld: \
@':>~PRM77y(eƵ~Thgi3=  \
ƣ6,@t7u_ʓ}6tB_YAoFd2 @ \
ydd_O}_-JDm;ѝmTXiL0y/@ \
jt<bPv1R.[ksrMNfxeeBC @ \
ѩCxi<ӦnM\WI8xvr$@+zҖt␩ԱSi3mǸU \
a@:_1:'ԓwb]A @thh--o*qytBUM<# \
[Y5@	RqV!E oBQG \
@:::Wvoe{LLJ7 @d2 @@ \
'Mg9m:Ӛ#ho$P8e@?XX04(6zaՀfD:"1! \
g:~uV۞,4@: .@v#{dKiU=>=lʦۺXGjs2ȁ \
_NM?͙k*Yt;9?>rL0Ȁ HN`D;7J(y \
L7@n@,@@`YۜގRe]&d@(߼>-ˢEkLG<V볣g@PU@~h4<UIմWoZk*^YX
 @OͅtGVۢi?d%#>4@6  \
Pt|P,w)6;u+*If3X(99&d@Ai} Qe-hϱ	<Y 6 \
 PO-%g9$?*lQY@@0xSy,q*o0˓uP&xeeA \
@ xY|C L$7~B%@C3OrswX)	 uVX \
C_GUJcҖ$Ǻ}aXK_Cm?!@C{KіtTQ5] \
ˋ/Yg@@0hfDYe4œ9љsMnQcA @ \
Ht~\}YT*>*[,<|iL+O`@W<4Q;6J+{+%9H \
@7Foz֣ 4$A	  \
D|wYИZuiel;*Υ>Wv&EѓEYKbc \
KXUqTzVV0;gr趔1)tj>JZxF@ \
TtE:3vWJ17)v$ƝpYKwV \
@@D:EA(?ի'ҽesUg:;C P?9R;; \
GϩsէmX?g @ \
6tjkʯ]_gF>@@":۩:~BҩVyc('QO։6xd@ \
|t2=_wпEM,dXy>A#d@@(Doh:lz54NV~w+O5@BC \
2)*y #{L7o;Sj(D_$ @@D:IN:Kծ2sB  \
@G&m*}r>G>[wr/Nȁ @ \
":_dkc\кl}sXiب!mjH5\v,C Yȧt{Y  \
_D]թR)T SAT>	 |OyWhUND6:  \
<u%/8{.lp9ީao@@  aX}2J3<ordg]=+{A \
PxuQAu:/P`fϋMbM{ZGH \
gOBYT0Byh+dȆ {$ @%6:D9 \
{$ @%@_( @ r@K@ rtB \
@I@BN@gݺu4zhիM6;渹ӰaèSyyy9 \
={Є	w4qDrlvͱ \
@ӧOرc[nJKKiԩ*ʕ+iƌ裏ܹso'xN۴OFI}EQǎՀmӖe@"D@!q2fǑ7nT4ivm}ƁYm \
x/P:tGP֬Yv,@ \
1Ѿs7x#EΦW_}&Mw^;ٓ?N붤$GyRF=Vwﮖ]XXrې!Cx \
5VH HHHHhp>:\~=Uy$I-Dbb_RR6m \
#TU|9@ JkipS@GjIvE;v \
A*111TQQူ/K&pVv,.r_q \
Q@W^Q/yOy=եK:Ժuk:pdYjd \
|&"ݹdפ@@QF׿9^͛=j(z)??_m/yێ=JoڻkO?ъ+s/^Xm'4tPrM \
@ |љ2e IN:Q ^SeLb=Ԛio۷߮viVo)55


hΜ9q-*n U"|1$b#
Rzz._V|ݦ-fӼysWnv?,C u
t w@@CW4C 
!@/:<q7 hh0@@x	 	牻 @@#@GE@ \
KNx=O  @:,B ^t yn @ `` @ \
^w@F z@4t4X @ @  @ \
" @%@''  !@/:<q7 hh0@@x	 \
	牻 @@#@GE@ KNx=O  @:,B ^t yn @ \
`` @ ^w@F z@4t4X @ \
@  @ " @%@''  !@/:<q7 \
hh0@@x	 	牻 @@#@GE@ KNx=O  @:,B \
^t yn @ `` @ ^w@F \
z@4t4X @ @  @ " @%@'' \
 !@/:<q7 hh0@@x	 	牻 @@#@GE@ \
KNx=O  @:,B ^t yn @ `` @ \
^w@F z@4t4X @ @  @ \
" @%@''  !@/
tC&L ޽{ĉ)++˩vII	{ԯ_?+飏>rnc',@ \
!蔕ȑ#o߾h"ر#=M͛7{[o6mڤn d@ \
S(e;tl6jժZ[3d%妦W_}EW常8z\n{e` \
ܻw/q9VwN t)??zW?SrͱRt1/ \
hݺ5EEE5@G$&&X'	pll#_msł9ڵ @oCQ۶mML \
C:8Y|mui?\6m.K*	 \
ؐR:wA322(::<H^x}?wt{"TCZ=-@u5|p駟hŊ*ŋ67CG[oE+^z%999ҨQn' \
@!2͛GӧOW{Nٳqu.]JcǎSN۷~_ٳgՆ7|3dXns5 \
@ tD\jiN>M͛7'y.I Lm3@ R TMA \
U&A$ GQ  @!(@Pd-g!'O4պ^~=
<.EXy۶m4uT4h=t9X?]z4`zԞu)?5-}6K/aÆ3gΤJY7
 DB:/p%(<=eI]S9r~G,Y@km/H⋕-ZسZgATsNS: \
˗/Ww)[lQxn>饀g3UxRh0)Xׯ裏zySY2d^{MYp:(L*:gR?|+?~c=濓EpIFzFGX^yZvm֍;v \
+Bёp zj0J2ںl~'
{R^gP>KJܥk;jwYҥ͟?_#n!Oh-%ĬR<n8( \
K2:+z&OL,Mhɒ%@2N2D^hG;N"J`T7 \
$r+߹NGJJ ^]iAժ}^Pxu_{Z={*;wV^|EGWxqYG5O2JzzҾ}{SN޽{x=\kUp̵;JfWcZSY1أnvz)))
  3j'nKS G[>}PO7)5N8NO/#K
R`d3fݻ/޽{XzC,a馛)>:ϙL!~ O \
]vč${p؀:H'n9RشiӈktHA ^z͛7#	uC,A cK Qjyy!ZK@# \
|_̽q*S<a \
͙=vJ-[(@ݬZj{9$TO'75j(PrnT"r-JmfOg	s1bM4IGb؄U? \
.:{tE/`$h}Y6G9K/s+Ek?szI&?cƌqwi<unH%JHR_WF->&7
 5@C,A r!@^] @@ɢ\@.@'@@ \
JB t:A@%@'P(   	#@ (:E \
]N. @	 	,ʅ @ tp JN dQ. @A@ G \
@ Pt%r!@ ?\ @@ (Y@@ \
@@ɢ\@.@'@@ JB \
t:A@%@'P(   	#@ (:E ]N. \
@	 	,ʅ @ tp JN dQ. @A@ G @ \
Pt%r!@ ?\ @@ (Y@@ \
@@ɢ\@.@'@@ JB \
t:A@%@'P(   	#@ (s"IENDB`


[Attachment #9 (text/plain)]

_______________________________________________
389-devel mailing list -- 389-devel@lists.fedoraproject.org
To unsubscribe send an email to 389-devel-leave@lists.fedoraproject.org
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/389-devel@lists.fedoraproject.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic