Date: Thu, 15 Oct 2009 22:53:09 -0700 From: Steve Dong <sdong@huawei.com> To: =?gb2312?B?J0lzdHaoom4n?= <leccine@gmail.com> Cc: freebsd-performance@freebsd.org Subject: RE: Comparison of FreeBSD/Linux TCP Throughput performance Message-ID: <001c01ca4e24$f10f6e70$3322c10a@china.huawei.com> In-Reply-To: <001301ca4e23$b96e35b0$3322c10a@china.huawei.com> References: <78DB4AE8EF5F4A1EBD3992D7404B2725@china.huawei.com> <b8592ed80910150512k6d334f89s3fa308a85e19da9e@mail.gmail.com> <4831593800614E6796A45F20BA4B818E@china.huawei.com> <001301ca4e23$b96e35b0$3322c10a@china.huawei.com>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --]
It looks the jpeg attachments were somehow dropped. Trying again with pdf
attachment. Hopefully it works this time.
Thanks,
Steve
-----Original Message-----
From: owner-freebsd-performance@freebsd.org
[mailto:owner-freebsd-performance@freebsd.org] On Behalf Of Steve Dong
Sent: Thursday, October 15, 2009 10:44 PM
To: 'Hongtao Yin'; 'Istvn'
Cc: freebsd-performance@freebsd.org
Subject: RE: Comparison of FreeBSD/Linux TCP Throughput performance
Here are graphs from the netpipe test results with 8.0 RC1
Thanks,
Steve
-----Original Message-----
From: owner-freebsd-performance@freebsd.org
[mailto:owner-freebsd-performance@freebsd.org] On Behalf Of Hongtao Yin
Sent: Thursday, October 15, 2009 8:52 PM
To: 'Istvn'
Cc: freebsd-performance@freebsd.org
Subject: RE: Comparison of FreeBSD/Linux TCP Throughput performance
Istvan,
I ran newer FreeBSD code 8.0 RC1 this time. By using NetPIPE, we collected
test data and the result shows that FreeBSD TCP performance is worse than
Linux. I got troubles to plot using gnuplot, so here I am attaching the raw
data files.
The netpipe commands are as follows:
PC2: #NPtcp
PC1: #NPtcp Ch 192.168.1.20
Regards,
Hongtao
_____
From: Istvn [mailto:leccine@gmail.com]
Sent: 20091015 5:13
To: Hongtao Yin
Cc: freebsd-performance@freebsd.org
Subject: Re: Comparison of FreeBSD/Linux TCP Throughput performance
use netpipe TCP pls.
And graph it.
Thanks in advance,
Istvan
On Thu, Oct 15, 2009 at 2:42 AM, Hongtao Yin <htyin@huawei.com> wrote:
Hi,
I compared TCP performance between FreeBSD and Linux by running test tools
Netperf and Iperf with Intel NIC.
The kernels are full version and default values are used in the testing
except TCP Congestion Control algorithm set to Reno.
>From the test results we can see Linux TCP performance in throughput is
better than FreeBSD. The worst case (send msg size 128) shows that FreeBSD
throughput is only 43% of Linux's.
I like to get some feedback if anyone did similar comparison test, or knows
any issues with kernels or drivers. Thanks lot.
FreeBSD and Linux Sysctl captures are attached for reference.
Regards,
Hongtao
Test Environments:
PC: Dell Precision T3400 (same 4 PCs)
CPU: Intel Core 2 Duo CPU E4600@2.4Ghz
FreeBSD: V7.1 (full version) (TCP CC: newReno)
Linux: V2.6.31.1 (full version) (TCP CC: Reno)
Ethernet card: Intel Pro/1000 PWLA8492 MT Dual Port Server Adapter (Gigabit)
chip 82546EB (only one port used for each PC)
Switch: Netgear ProSafe 8 port Gigabit Switch (model GS108)
Iperf: V2.0.4
Netperf: V2.4.4
Setup:
----------
| switch |
----------
---------------------| | | |--------------------
| | | |
| --------| |-------- |
| | | |
| | | |
-------------- -------------- -------------- --------------
| PC1 | | PC2 | | PC3 | | PC4 |
| FreeBSD | | FreeBSD | | Linux | | Linux |
|192.168.1.10| |192.168.1.20| |192.168.1.30| |192.168.1.40|
-------------- -------------- -------------- --------------
================================
Netperf Test Results
================================
TCP Throughput Test
-------------------
PC2/4: #netserver -p 22113
PC1/3: #netperf -H 192.168.1.20 -p 22113 -l 10
Recv Send Send Elapsed
Throughput
Socket Socket Message Time
10^6 bits/sec
Size Size Size Sec.
bytes bytes bytes
FreeBSD: 65536 32768 32768 10.34
598.11
Linux: 87380 16384 16384 10.04
779.02
PC1/3: #netperf -t TCP_STREAM -H 192.168.1.20 -p 22113 -- -m
64/128/256/512/1024/2048/4096
Recv Send Send Elapsed
Throughput
Socket Socket Message Time
10^6 bits/sec
Size Size Size Sec.
bytes bytes bytes
FreeBSD: 65536 32768 64 10.19
417.10
65536 32768 128 10.35
336.63
65536 32768 256 10.36
576.99
65536 32768 512 10.35
569.79
65536 32768 1024 10.35
553.70
65536 32768 2048 10.35
584.20
65536 32768 4096 10.35
602.45
Linux: 87380 16384 64 10.03
778.21
87380 16384 128 10.03
779.72
87380 16384 256 10.04
780.16
87380 16384 512 10.03
776.85
87380 16384 1024 10.04
777.52
87380 16384 2048 10.04
777.83
87380 16384 4096 10.03
780.17
===============================
Iperf Test Results
===============================
Bandwidth Test
--------------
PC2/4: #iperf -s
PC1/3: #iperf -c 192.168.1.20
Interval Transfer Bandwidth
sec MBytes Mbits/sec
FreeBSD: 0.0-10.3 740 600
Linux: 0.0-10.0 972 815
PC1/3: #iperf -c 192.168.1.20 -d
Interval Transfer Bandwidth
sec MBytes Mbits/sec
FreeBSD: 0.0-10.0 402 337
0.0-10.0 404 338
Linux: 0.0-10.0 926 776
0.0-10.0 44.1 36.9
Parallel Test
-------------
PC2/4: #iperf -s
PC1/3: #iperf -c 192.168.1.20 -P 2
Interval Transfer Bandwidth
sec MBytes Mbits/sec
FreeBSD: 0.0-10.3 370 300
0.0-10.3 370 300
SUM: 0.0-10.3 739 600
Linux: 0.0-10.0 479 402
0.0-10.0 473 396
SUM: 0.0-10.0 952 797
_______________________________________________
freebsd-performance@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-performance
To unsubscribe, send any mail to
"freebsd-performance-unsubscribe@freebsd.org"
--
the sun shines for all
[-- Attachment #2 --]
%PDF-1.5
%쏢
5 0 obj
<</Length 6 0 R/Filter /FlateDecode>>
stream
x}K:r&n=nn̴,sJv ÀM=*}g?#<[9H$@t(1Hy]_/!?=gOϾ_7ӟ~l =_u5=Z=Εɳ_6︢ C\LRZ@y_тO*[oJrbTeoqNB-kTeoMEBW,S4~sW)˓_LrP* ~<-߰eRʳ_LMW)K?W,S<^Wգ~r=f<#kV:;h׀еב"JPeEjo'EhPΣSESmTc26"T$$H`#~UʂxN,w$PY)eAAҀTTM*
X$9/
-
#TH^ɫAʪZnPYʂl˂qkʂxIIR
R-mPYh8 *R9mE,H0H)ۂSʂIl.[\ ~@AҀTTM)RR,7,H4HbbQ.$$[PYo? I&R"\BeA>eAA}Է T$$H6H_qYo? i@AE&W#Q.w$}˂D))IN*QYl:sYo? )+EAEG,H4Hbb a@AAª\H2HQ.R
RaOQ4Mm L R*X
R(hCn9nGɊ"rHX-ҏ It0"GIG0,"G۱ {"rގ3? xd~##@NC~H*H#@v\##2 E p;kfR(F#@ 3!{MAm$HUIU+ҏ )Rp; 1XR(`~k#@aVmv#rH?$
H2O#8#@DVkT#lvGwβUFA0 0[~"rkG$(#@TE%c9_H?a%u`b#G&G M?^{և6n#@ڰ {EF8]F k`f
ҏ`A=99@9=^{m1"G(;G ɃMVx){l~Hrv#n~OG$,s=rHO`D
R`YD X#@q}BW r~3hXE5=_{^.%̐Ѐ>;C ߜ
H5M~3$W+`8+e~9} LrprGMr2@8T
;D5Akgpʁt^@>>;\8<`
l8_MM>NrprHG%E0,$W=C|l+ɃC
by|gdOd蕂k gc$7iyH%Mr]_)="=sނ틱>n\|ח#dhHeR滾a`'}Ӥ\滾al쓱~k.ް4$ay
r|ׂo+jOrϫR滾c{얬\|WodOrO~k~ړ{KNƟFOf$/Wo*+xUk^|סd_7'9uKΕqbChʵwyc& Ƚ__/U71o37MWhF.?b{p~K)lo~(X滼lg{ݒ_³}vT.oW{ݵu\|i& ^瓜nO6)| ƾrSN='z(ƯS:ǔ+7oTw1$yCV\QB8Lj1reR>a(+W:'c(7ocfV>Qn|9D03F3u,ǓQz:Q-Yl$7u61cAog%{ȖMENګ|yU䩮r~>WdVc_}J\|″ h8E鈃<$]#N&x jeZyz:W>)|L~]&ӊIS<ўVTڧu} 4kϳ [,<A|Ԁn_}2!rSD̀UL` WIւc)Ɂ8ɻ?`k&gc/\|t
o[KI$Oo[V\x-BTqF~<'><q(1ʕfJe1aa9.TAJ~]Shދ=پIޫ|<O>=%r~]6L<rJ!y5Mynokc:롼ۗ8ʵwMkb{]l\w͝d{)CtG~]s^59Mr~]>=~[$0%pB e_~]p0Fn,dA^wI=<qLG
+WWyxK9{,xp /?`k_}/%S0Yoka_L\ه,_)6p151P#R"}P'yw͖d>IokJ&jGrV.?`kާ.LMݵr75tÔXXɥ$wka>Wd\R=w{s&O>A%˩`M(؏ۗqeN,z05_O
r|=FyYtd{0= .ar=`k2&7Njf9>:Q|h ?I75 ;A $l{
I8s]3>{}i(75JDN4g9w72.wuB6m ?C~|xA@߮ok=ۥ`^>=ťwMdŎm0Co:brEW>h}Z滮,,QvG|el՞l_$0umGĕ"%`9^!muܫ|$O7V|~]W=>z$gNrshQo˞HTOy*ǧR=/OK
_.֒j6RMK{_?٭K{>y?mҴ\?{odAs[U>W_9}G{UPQK_L߽v|U_׃^}1-.ZSn]ZkCi5X]4Uߟ붶ajӚKY^
jڠA)%/|k?7㐗6Fk;IO8=??59.k|&X_S
jhջΏyuv~oDgpJx:d|88`qW ؙxjK|0gcӞj>\!4O {ޛ&j_\A~; w政PwІ?@#L}8(a8'b ?sߺ̓.]W7/헭T?j~ŭ)1. ~~w-+^?:qis+~M~k#/Ou;nScb7$IK*kmj}=cr>Z.`K<e]!y~F+ ,s{J_o$_U5-
n]VS|~n#[~2oT*et/Xnwͱq]oo/-uxuKUW)K\Rx<ݴ}
ھX*e7Znykwzs0ki]Vھ6U~DwX%_F&+nfgmUU8pǭ|t}KH6U@cӂpO^ȦH_"D-A#F
/DHlZʂleEBPʊ ˂`Y`Y`Yx,+56,+~"](B"I#"U# iHHɊ@YF" a@ƆeAذHذHذ,,U(+`#+1BeEPYTI"*RM%I"ƆeA`B#XV$zE*ڦ"zmSY,HkʊMeEAE*}ʊOIzmSY^TVDm*7TV$j" "i"Qcò"Ecò ilXVDm*+5,>CeES$8 Nm*+6kʂl": ^cò"Icò"+RM0,+6kʂ^TVDm*"!*ErR$(Hߡ"Acò"zmSY6kʊ$ ˊT;X轗ʊDkʺզk ^TV$")RL mh&kʊMeA6H0H
#HyN6[~wP<(OiIf#&WFV^Rf2?-mwhvǺf4]t3$6 (ݮ,ھe2I墛$u|hm57HB^bf4In!dmd.+!5h½^pϖ%nrzdZP.;h?%`hMeGQ-!^v4Yn#M_h
i/;p
KiG7V jph-^3YöFy;hQϗMV G<i[WO8p?xd;C4Qhkkvv4[ȷ.;@Zˎ&+'/Y?7f`U?70`eGJ]6їgr4Y{#ylveG8tchWKl᪣
DeGrku]KmgMV2_hQhh-z
^+WV jR/;pQ8y<&+\^:@w8@Fzi&mvQm"do57]tZRN+Z\3mYU?.`ٯ,ɿeaYeG.˚P;p)lZCa*v'7V5/khG.4m"TOCo@[oMV{09l"߶Pzc46ʮ
U楖ˎ&+\J-a'opc&+UHh5[JmQlF4[KM'qEPIG7\UGJӺg4D
Dae&+?HW#`V|l (.8@^hm0
~"ˎ&+\]ҭ#6=;-.س[=9vp1mFp
WmKF߭p>
xxh<FGg3c˭ccI'qMF@ZT.$*X2'!8ꉼ8%ˍP6N3P~p.AqHAfP+i#6hl9m,wj#BwqF_im<*i#6hhmj#@9k
H#hɻ8tZ!q\njv46p# !_h4Y⠎ ssSCMFj"!_hL^,ɻ8]\#H4aUFm~_H4BKu^k鯃I&yw`GO5=h#7O4mC͎2gZ%$ I#~=I_%&mX lg8%"Ny#Qyg}H
@o^$Y;fR(-'?hm;$DKpvcǏ9'qW?$h)Y.ric6ljp/5cz*i'GtzR?^ύt#GƼUNgGkV$pA݁Wrj>Ɵ1H4[#?K&8ά+_~5I~+i'GZ5~ZAqox5JO[3TI8;1G0A-8Y;1/+'5sKr\R{SʿJ@Ǒ2\+ÑR+1̺92Jrό089y݄HI3?@Մ@vyyS GpuhXNC7fe 9rARڭd̑S>fS7*a/8zpIV]\;ɘg$+aPp15\iuO3@aP\>
NA74'W y5#I̬<$\DoJ@)@( g4/c I ) h +efH̺9}){'ZJ
"!tdfF:s[%e5Zr4<oz6dRȫr`us$T):e-p@tPiEjji+9FK)|u
e>R6SNQ0IkzV=p,7$?M*4a}a9:q.rb)?h)[+apA_XQY^]&)1hi@|)|p$us$Z):eR-pDt=-S*ʙQnPWDK)|
ޠi=9Ґ<d
y\9
=,zqc%^!zžB;]Br g
B[76孛vpDtci5
ZDg
sMpWNoϑ-DJZMG$__G|>쵈)Who)Ҁ_J 3=TZ?GAV (NP8":R
F#`r`usd}Rhh)/ SK"SEWs^!m
R;aJIX%%nYή,arffiDd?)1ZK)ԕB{D07$Rx,Buq
".Z(S
SIB%9QD]8t\bٗRQ Y'=T3K럣 oB
NɗRHx$68CAȲf70%Hv
0ǡ(Xj.6R
>.62ZBK)C&zP%
I)48R
D'_J-Ja3V('y9蟣X5^`jR}Yvij/!Wes]oQ3rH]͢ҴF, %zždHwJt<1P(2 qq<X4|HHY(*wYNDZ<|oBcTUqFqGJJ3Њ#%930D]E'
;,3ZK)e ;oPQN6OS{J]ƅFK(XBV^њ)%̙}-QA
5+Ϯ +ai jh=b_B)^f 5?EA,
ҴfQ[/ LPAj]Y-Bu&NVd76} OI
N3m}f.:M:>:#-PmzP%
BSZFK)|u
Y Q,Zg(J!T3Z_J!gp@-ԌQU`WiUY:W([JM=Һ)4h=!<EJ Hwm* %ˀm4t_/~ϲv
PQ~Y܆i
ƅF).bZJ (`J L duZ@mѕ>`sMX
$1#~̂vo
<iQ
ҼBWJ Ôq&Zލrw2e,b_ܴb\`i(+eZST3̺9\mZaZJ;SG0Sti0hˋ%8R4gW n2 =|֚1Yy>`Է{TɼhE@|)Bu*ʙBZ'i
_)uZoB7D'_B!KSt{$g
蟢*LU4[#߷{N=aq?ץ O'
x0zxEGnpra& 6Ix(-.l2A#/۴eMBv
srPfi
YPh)/ 0W[<î`穁܋.Mw.OMV.DؗRhoc%.KE9}ѢSSw't6`
N2tZ[ ]DoؗR1>SM%Ժ)K럣 [cxe;ZɗPOE{rHmtGM9#=TK;Rr-ȍܑSrrF9gAѳ ;1CF,T<+yx˙Z9蟣 @F$v4QV_Wj/s3^R9^R5+?B@I}ôUZS
)k(g
Z?GA6_Q
)%epsrʦjHQ,AE 'S']I ܲIUp?$>Ҳ|2|mFvR)[T+ay'
5ua?g1ܤLy0hyF-[G
~jF9$?}d=JW,xϯhMg:2i/l$Ԭ{=PZ!L
yJҤwi naS35#/';*w̰=ђ&7Do9BzJF9fςggic$%gBX)G<8T3g(d3iK&nR
>*j(G
#6'Z!ɗRHBqj2,tB+eK(@D-L<am /Fxfߪ
gd-]Q[P CF]~g
&yXϥʎYk-Jo+Vt:HO<?ÍNr\H܃٨K78j[I"h)lj7p'9w}6AEX;{ҸEHL|'zž¶Eʙ&(dds
f3p@t`jSNCI)Xj]пj-הɗ|`k?r?2|X+H7@HKx~uʧ7/aktۗϮn:_\Xh
_bAth>PVh5n75n|bЌao
AO%7W.$]ۦkVOݪO>$bZ]ywUߟW{il^o`c7gpZ7- m}P3.8@]ӃKR++fc?;qaqC-c?Hys+̇wPm9zCAMQӎMqcm᠍~:oф~5QCB8贿~L?p|:ߖ~x5o嵖xwĻCg$fDR{ĭ~8Ջ˖5Ͼom%77?;맿_m%ƽ<8/Oc6Cz\]ZJ\m## 1S;~opӞZ"R8{A1?endstream
endobj
6 0 obj
10948
endobj
4 0 obj
<</Type/Page/MediaBox [0 0 612 792]
/Rotate 0/Parent 3 0 R
/Resources<</ProcSet[/PDF /Text]
/ExtGState 14 0 R
/Font 15 0 R
>>
/Contents 5 0 R
>>
endobj
3 0 obj
<< /Type /Pages /Kids [
4 0 R
] /Count 1
>>
endobj
1 0 obj
<</Type /Catalog /Pages 3 0 R
/OpenAction [4 0 R /Fit]
/Metadata 22 0 R
>>
endobj
7 0 obj
<</Type/ExtGState
/OPM 1>>endobj
14 0 obj
<</R7
7 0 R>>
endobj
15 0 obj
<</R8
8 0 R/R10
10 0 R/R12
12 0 R>>
endobj
8 0 obj
<</BaseFont/GMTXSU+Arial,Bold/FontDescriptor 9 0 R/Type/Font
/FirstChar 1/LastChar 24/Widths[ 611 722 667 278 611 389 611 611 611 611 333 611 611 278 556
722 556 556 556 833 611 611 667 722]
/Encoding 19 0 R/Subtype/TrueType>>
endobj
19 0 obj
<</Type/Encoding/BaseEncoding/WinAnsiEncoding/Differences[
1/T/C/P/space/h/r/o/u/g/p/t/n/L/i/x/B
/y/e/s/M/b/F/S/D]>>
endobj
10 0 obj
<</BaseFont/RDZRPI+Arial/FontDescriptor 11 0 R/Type/Font
/FirstChar 1/LastChar 10/Widths[ 556 556 556 556 556 556 556 556 556 556]
/Encoding 20 0 R/Subtype/TrueType>>
endobj
20 0 obj
<</Type/Encoding/BaseEncoding/WinAnsiEncoding/Differences[
1/zero/one/two/three/four/five/six/seven/eight/nine]>>
endobj
12 0 obj
<</BaseFont/KPSHBO+TimesNewRoman/FontDescriptor 13 0 R/Type/Font
/FirstChar 1/LastChar 1/Widths[ 250]
/Encoding 21 0 R/Subtype/TrueType>>
endobj
21 0 obj
<</Type/Encoding/BaseEncoding/WinAnsiEncoding/Differences[
1/space]>>
endobj
9 0 obj
<</Type/FontDescriptor/FontName/GMTXSU+Arial,Bold/FontBBox[0 -210 762 728]/Flags 4
/Ascent 728
/CapHeight 728
/Descent -210
/ItalicAngle 0
/StemV 114
/MissingWidth 750
/XHeight 530
/FontFile2 16 0 R>>
endobj
16 0 obj
<</Filter/FlateDecode
/Length1 19796/Length 11361>>stream
x|{|Tյ3gΙgI¼2IHH&@$'!@ӌ A[!
Pm&ĄGZ[mkhW%Wn"U2}f@hm߽~?k?ڏ^{ 0@'p4}Vq)Oc &s]=U\5<+-i_z Zް$E?' 9'-X?vL1˰²Oa9wuk֧ۂvrvq\`}a0ڰһbumizVn_zM|YƷG +nCsH?㬍a)w$x|N8C2h<|p`6$́ɄG0A~> \?ǒϑ[{n'PӐ~'GM>Z:3;~s'6I<p]8&=;$%C
'IBS80'sO A(<϶
X]~E,I8&J~/y4`|rq^|A?e ?-KT'Ivx0yA(9h|FD8a _FpIJI7
ܛ0
Wۂ] ;ra>"6Ed+u~-?Ey 2Z
/!MjO!4FO/y-Bi/nn(C/WO8Md,YF%12HNRtNw4n_ b{O'H>|uLj%z3j<`*e5B%OS\%u8J
tދQ~ upr1;7!~?_'qgJKYIEᔦJXӮXEU?$ ,KjQnDICߏ{+oqƃ9Hλ4F2\N$m<@~H#
p
TĹi
E6z+L=H_ctg\Mq+p
k
ܭ(^uM17Gk~
2:|7Y
ո5ٚb՚=?q$nSNI<4d+r&\yaj.bd87;䭌S1_CA9y6j(V8y/KmJ2
WO5NC*:>쁏Pý$CdTupȭP|D")b
C*Zo࿏v>$?<֍Ck z-x6yDruO4h+4
>Fբ%=X0Y,[YJ<2ڒR<Mp,Hƒ'7%oH_#W|ED!G.ن$ |J\$HJ< ۅ~gk([ᇨBmq
$ZܛL(w,νQL$nh3v6-(<q
ĕ38F(qZ<Dzf1ZH58=D5szN*DPGb__GMw Te~%f%~kj>$
Ӓcr1I+.!8cd:'fPjf+.?rlEyttIpP07y=#rܙ.nZ2&A%x(4zc
LTʁX֘.y[U2Ŕ
R.;J%E$foTzkuobF3D!5?UoW|w-H>p:G'OLl
GaV3Cq=Teb\~Xӌ,/ZT# P3UL0l5S8uG\Da."vnؼ,ˊ]]XbK
]
8(Y^mpH/[ [Uj}mzVz7&j˺nŭqw`
ۭ']Ūu=6yCoͼǜlє
fη9g,a3
LFyyq&\XEc(Abܑ1ibkyg1!hx Ԁɋkk4ALOΫXASq")qZ./* P|Є]WoS`!b3Se/,̊Rh+k8bZ:ϵgo
&ca_6.F-8+8fo}WkZ/*ǞoKb։\MhR^y1>?U8TJxbI4*|O^ԗ<ŸT
[zq/*_4;}Cq]]Em
hކ֮}΅9Ow]6/yp[V(.bJ'@QȖYW41R29N ZŶ~tEe%/+A#AESڔկ tZP,꣩:ZO'$D3|U"dVk.zd5.`%F P7h%+Пl!0 @VqJ(ĸ0@a%6"P$o.g^XjFmEDSF`o2TK"LUTcڸ{Y\W[8Bn1lJ\ډU#y5N#sG87ކlmܘgm<F&r.pZNz8&b+#mD*tdvd(^f2gX<8GTVı# ]`0qgwJ7!-c`, Bߥ74}%svr]mYtV["M1w#s`;.إ=W3\&BIֺ{%#+nd^#P^t!@]Ja+1%=Ιdt=8es#TIxLy_ѣL:M6_iZ6h/cx&~ͧ.Qz%c~F|ˋ#.C|0{Gz78bKpq: 3άt( ]q. <bt _A,-a9z ]Qbq}q
C!Uj*'1Ч!7
zL?xR#GI3QEXu=~vU" $XRT
z'5fz(<<t२=
v5WjqMl]:1Vs9|t}l@؈Љp3(C>Mj|#G;r#Gюю*G:Zъъ*G+r"G+rlѪr4!Gr4!GфMфM*Gr4!Gʡ
r(*
r(ȡ
r(ȡ%Q%Qr G r GQ%QrxË^^"9*9U9aF3rU3rÌfìZ11* r" r1t]wed9,GrY"Qd9Er450(w yw yTU"0rĐ#1#1!GL!G9b*G7rt#G7rtэѭrtqו5fҬ˕v*'U&Q nQPuR15ђT@0a>J]GDHrϛ.q(EjL<i5[E
EwFL?CKj5WM#8nl9Q2d_HR«@zHMCM@tׁNO<4GH%$B T "!<j]7+t|^68X2J?5'z_6GCD}鈞-H 17<;$}qql~:{!DF!{Sc s3i≮g.͈{F"
B
bH\qxDQk!m<@:=a'Y?i扢yD`Q=^9\#$kdFCO~Dp <幫Ow⼷C=`btzJ<k{V{xxfzZX\9̦ QL<i'*qϥ>u
<'S=cSVf(߂`9}$C)Oyb8^~q#ڴYk굲Vhy-Ղ֗T iT_XóWfR
LYF84ABo@1$fiٵ>193VnM{+1=}$ɪnbA{B2o3jWeBFeCݷ$40897'+edN1v3hs?NM3Y=^E*j !$ւ=edG)#!
RBA 9歯zU 1X.AAPH
xI3":jGyT~ڑŊ! IϓcqOƖƖ4V&nx}%i
Է!ƶ]\lX|j]hbkmu
:o藾%<:P/nyIiVFE{k.k*Y3[kXs5UƪVձ3ojBmrR:ܚ:B6d]8jcTTSTÚ&#nrm:HXsF+a$T%,=[kTBJXϚo{֮]%këcccfLDjbݨsuHR}_r 8
raF *2F]"t
kz9+
8.^t]?5))qG@V)daf{p{`wQwk<'U/~55Q6Nh<;Gehx5Q&~^ӽV_snCR!Ej=Ǵ6͢6UY EoJ$4bV dOjH$F\
OW
WM3^5u
1o>_/# z8*|
^~Z(+x)
2?y^%M~/xľNv[X^[vMj鉞퉤d2iTQ*EG^ZKG
[ؼ[:N;}2AFeqK(';9v$fZB"ɰTt&wl@W:mT#j(+3<_
Syr+߾$>JHO\vy7Kwvrï9W>8S0h)ӂtus$a?^ҷLݨ'71N}GvնձRz{K'|}amcV]ЊV:#i|A~UePMJf)3\
*Fht1)vWGHLgv.&nDX"rnwfmH4sܓ-Lh!---D/du:
ү0;JSxdr#Þťǿ~4kީO
ܷXê[?M|$*'{QCڨ6M/8+Q2P9AaNd0Z&63oHĴNU)NJ|ԗaA-4i[
UvFNbRJ42A-<zs_kQŒdM+&ͯvքg١'~EųFܗ=bd:r? +TUJV5BPjKk勵ч)hjOf&x)IpMVM.-NbN0W2|v
sCᇅgq4K(&HՌpp*#yAᙯ'4n=u):҆tϷ"eq#i${bIm,[i6o<r^X^Jm:W~V:(.ҫ1]HT6˛&y;umj~Lu˵KͲ蒋:HjQ=$NݼS{4tfŃ%A/&!cJ*Ƽ%XbfCM(2̰8+SH)25*"k%mǣ"r<zY$Q1c1]cA1%"{9kvD(qhl]8U,x3)H
A{0z-^>w7W3Uny8
<b?v0*ob(U-uwmrGLtJLma#"2Pć?ϺjozTP_ϠN )Aowq
d@-AYfvLupxrJrZss:sBξTCI)L_8@&E[o#'ƙ.կؾ'^5[8}os4-3xF$BrT?/@/
y$xI]6-faMw<8
,/,-_Z.>%Oa-xBwn_ЄC?7PiFCbjC[Í.nU%Ư dʙ_dOs]J7EVv m,-ғElL"L&&Jnc;+<
$gI'q*Vg(ܣ<yFYFjK2-26z̧W+#yKx
GLSQY9PGøҏAWV:,RV>Vz3T.ʋh rdDC ~Z.ݒb<2fLO]ns:xU:xݻ6߽"yg?%6Ǭ7t±$;|;[ne5~
ϴ䯿2t,*WFK;mlp!~</"=b/vS." Q7
D#EoYX136vISfjJʌ=UԷO*R]nT43gnN~߫lx,3h]eE֥Y2W3Wf)jzhϺW|PF͢A!R: dOnAFGR.db_:.Tר:4\ixSg{_v;ٙجhKK\˳(ٽ6ԂOʳ[qRnfyKDb^bLeӭKn7q"ĩ{ӂǧz0מO dޠ|PzȰӼG-ZLj#h)G>?#~i0dJVNĮ3"&s{M#Ult"w*zdl5R̬)Ne7\Gp(]*VLFS}52[,,\uxN).1F#L>b0E9S_epRm.e ,3&ɪV'6$R11?GzUXX$OP5j5؋cѢoTPJF6
Zha4 u1@
@X5CY)p>P[SgI"1KhWq^YUE}vh_&ܴmƍ'f0;1oE]@1,\9Zѷ:G^2N!Dn)j玜St&2P_Vј_WxJ?+\7
<i/2ظr<jUH:}
Lё"HH+@.311d"+SS0Rrؑ23GѤ)2,%U20%`g!spU)Ӛ~>na+Zcہְܴܶ<tb
;NNjŘ1嚀?r_H^4V7GRɟ"h5lx禅<r'';?Ժ-65䍵9FS62M?}=
hyhW&!l#͵6oDK3eP-blPs8^]v VR}IJDB18nmwr\î[SvbtVb:XtI{B:+9Jm_D4,Krds'3.iXQ8]ڷ=}EyۇOQ)̲AUgՊ$N)&
HG$#Jn8ϙ(pFЈLU]FLmz]߬o{ԠG{HV6i{Hf>q)|R ]K:Whi>DsYШۑ!
NG@$ u;$.Go|d`П=9']a'7Fu(w6ᣉ3*' mo<4CG<6xÇ?q٭c{1pȄI/__ҏi2%5ϵuD]4hIoKoO'4̻Ѽ^XݪUe03 LD6^U֬,eA&}]CrΝXiyec'츢nË67l~?H$$"ޝ+Vwߊ;JHtkrϏ~xmkqf/RFNRK4TZ#Yuddk]߲$kD-)o,-ۅ~C3F)d6ftYL4B=OF1b%]6ʊ;֜v.0`ۈ왫 Mo{:n%o}-MH'N'm3 #ۅ
#
u{",aV-ev/K&GO'Z?]O}t2RQ9A2K%&{eηl30g맴]{J23I6sΫ̩!Ҕ(:1žxcQ>UQNQU4z5u/db>t5u_ٛ\c X@_T46ϙ<`yv}hkQ!Cg96}-z&օ6[6noʕ*BtScܼP<\Q#eW
Wn_?rm+0tw,iAP9_ P=AeZ_S
*H]h
II!).$#|%fb.#>6Iթoru6c"?&ުCi~ce1Ôr
! !_o6:i;)iՠ5`[]砥#Uf^/jЙʃTcOVV0s70-x
i?ʘG,&iM-5q'JR$J:)1q%RZHI2x2?S];ʜ
TSR^q*QGb|J'VzܤɝtR}7іutUF:T/EuEs*RmpRoWl\ϢO{tCa*ND7%Qb':.
ٿNG&TBܖOGu2c~ovmwIqxbݖ8a]6zBa^2[?|;5eݔG&1.aŊqڈDYԻMvƜ\+'#|N;uR\G+J9-sն]}6in;j;efym%6ޖ^ߝ<1Vvb<ډ~%Xy6i?deHmG0̄1Ȱ2u2;#P^V̠7~+u77L̾%^AٌIb+N2+3f8IU1Uo-9@lBv;0it^$/AҞw䔖hӖb;hkek.{妍;LI
H9ڻv'\m㧯=N
ujuʶ|> )ݼKI$JO֊r1d@hΈRr'O/|T^_''7;ŃY"e|Kv>S'OwʧyIK굸";Te"-HZÖ#"IbrFlJFK7Uج`47VtuqMHiۦv
cմLǪ-R0BC稫Xh9#]5ũ=}
w2ʝe)#|A+Dtt",)#go';A$ [GKOrdr9F-gZId%_ Vtcs"K4,XGz"Qc`VsAڊR٧Xt&C1{cAjC5dٷJNqeFw>HT-QBYB*AI<}S31?VM5qPKqK3F,jmKčc8oIܭLUͳ>2fk&&WDZ+jU-9ء0b[''^iƴWea#Y߲Q_{?%YrN]=^^f0NuWν%ҳr'.cx@IڀSAP8gfY(l^IsKGԔg9J&1%,e
AʌS`\3.yT2\a$ƌ)n@2@ͪ-]yb6)x
N%/Hk
'iexDva.wL&l>Fa6p~=`p9*_ ,yV s/7K{b7U}LmcV)g_}uvZ;J#{
endstream
endobj
11 0 obj
<</Type/FontDescriptor/FontName/RDZRPI+Arial/FontBBox[12 -12 625 718]/Flags 65540
/Ascent 718
/CapHeight 718
/Descent -12
/ItalicAngle 0
/StemV 93
/MissingWidth 750
/FontFile2 17 0 R>>
endobj
17 0 obj
<</Filter/FlateDecode
/Length1 14720/Length 7598>>stream
x;{|Egh_&MӐ|ihXPWڂX<ZlXj[ZPbyYPU>@ER \ (
ˮOPy^U!g뽿sozfΜ93s3gfJ z J&ff
٤
z6@,'nN{o>PatXswDm iյ<} $C9.zϺwTG}C{#u;߆Db%6if
wMk>
!
ψ|YIޡ ]dvh?C"5HY0)0IB&<z|N mJlo`NaUȇq0'#a
l
wB D#D<ϑ;`:^G=-p<$%O]Idz
w<pi\H0rPu@2S"c"'s܃n؇)Dy&r FzZ΅.>-sOK<U:GSd)$ŢiH}{~I~K1-#"zyi^Od2s]oT3PߏGu$GEWe-?*JEHV3sZ@+gN=U5v
Ë1d<# BNw4zzr1M_G ɊQGI\8 c:&IRr?Nvgy|F! ?_)`Rd)<.z7}>NObz~G
r9?7Zm´'9KYbEkJjo_մ!69n|
\LfpPwvFѨJ2%&WYY!YO}@:`Ns&mg/rF¥q#
n7[mge
]|
}H?xKR\)P
R
SSWU6N;^}+?Dߡ?WB-7d-]BZiO=ʡt(y/}^C1Lh,r#µ#ߣԑR-h:qoY⟆y
I$ynz+0E9en.Y{iF_Џǒ0.,O.^}A=;t>^Z~:<