dpdk-doc-18.11-4.el7_6$>Ltһӊ3W1^>7\?Ld   F   < / ?X ^t M; Ut  ,<(8_9@_:,_G H9(IXDX` Y`\` ]<^O,bV\dVeVfVlVtWuv4vP[wx,HCdpdk-doc18.114.el7_6Data Plane Development Kit API documentationAPI programming documentation for the Data Plane Development Kit.\ɳx86-02.bsys.centos.orgt"CentOSBSD and LGPLv2 and GPLv2CentOS BuildSystem Unspecifiedhttp://dpdk.orglinuxnoarch.$$$ ` D ` R 3 ` R R  c  M Y ` v  S R k( B H ? Q  D? H ` D {[]V IFP~'/!*f+*N֛m=U,,3(<W*C6o'_:q-+V)9PPb׉j+!rAxgʰ}BJK.7|0OO5Y-y-_uMI/e[f59["a+ecn}G94i:_JFT]Q~Pul Gy.;IUF4$~|QSRLm3H&IKK1D S{Q4 |a8۴Y6VhUVV:V:!&YiIHa[(?V"* dq- T+F)VE,1 r:!#YiIH^X(?S"*dq- T|+F&Sh,.o,o&pF)ld%o@U_/&FFL o|Q Y lU = t;S_)+LVRQRX?%alb{ E+n'4z={7i8r*2C9,\mfE>U}6 )c1tmm-CG>?;rlBp"@!NOVu &,%&5`Z -Z#~iz3 *+\XN^(-3'X_;bKl&a. `+!]LGsotib^]$,\/+ bv.3/ E"Y*9'LDjqk5#hc,~4Sܱ { ;yC\ W+ X>!]s[ sj4/wT1V>$1[|>c[, o I .1+aoVþBQMcXS9XHF8,Imt9<( 'wndRxj7jU>Z-3IP{!t'^#Bfd6%*6G)<Q bg}Q= C'7ӗLC"akGhojw!J9=5= q!zx=)dEi>5u6uOd)7~K-B1%U_&wSZ:g0 PKJ .8}~ZCb.e{_]ZT]ZYbi: !7ۅH]2a,w%+ _]8;=&$BWc9P~} u3s3 o6I>o ,63 !mU&oK)Cwwq<"> !1/Y^fT^??\xpL! tK/;,C;{% K(  : , %lJl)]Oe3}"'S1J 7Q&L(B-E&CwS'U'ZhD/ |(5b9)&6x'e n'1J zb*{"1Q L$2" Weyqh&fc6/).zus Z '[D!r,8)*> u44.i=*1J<*/87nBZ `+A$( #*ϊ"-+ /*4VIKKZ+6    ,)/" m$Y"".Cl -AZgaa S&?55mw)L!jp 202  kn c3ta<i6[,C5X%O4$ U<\)(7 &!lx & E #6 n'ja!&8 p# %87^ m^!-l1 IKL=7{J -/ E..?I/(+!"eKz"<Oy+X{j%a#`&j? 6r )y &)(p,V  <!6\_,P>$H^-4P   ! / 2 W # N  ?.%qUM w Q20cZ ed&dn[+?I=H aaP}<-i'6'J-)eNFvmحƭHBgnA-S-=%ڲ^x"0gZ@g<c*D cp+-Ri,lhdw@ N4Z<Z">GTP ZP2\9`J58uAX ǐl&ZW_|ZYSYXotXhol7Js/N~]GF'J}b KR%sSlR<]tZJH.9Vt, Ai_ r^^TR AJ@I# bT -  2 L WTm--&,? D&q=+)j/Y" *  )   &o!'_\i E+%I] \"xlQh 8+j?)[2> ^ ,#&j78J-10M'/en u cc9Ga0F!9,H7c x3p'J o-:PD)$*W/ 'TCKTVz9 +*zgK |+! /'O 'dnSWCHwVbjPYp`LjB{ ~sR< e#CG RO(F,J35B%K<5]=K8:(@J 0@3=!dR Y ^c, M .7  !.@c>! upk\>!~tkbEx4Mk)&%  0>-;O(']")2X1A230D(,.c'6!#Z'"L&)k#C"l-)T+TD#j];6o2  K*Mhf,ers$Y|')/OQG0-G@+4A*H8HXD ??!"8'>.7Vrw.j:\'55C 7g&"PU5 5q0%(19',\NL}Vh%1CXaX%&W4+1Z&l'4L@%הxa.mxψzMK]nM}!&vv9I+%+bdI/3\&q@\0e/hc/lwviωc]!^0> %1$0B2k 0gg)H,V/s}~5f[D.+fo^&\*s@rP5O[4QEwW<7pV>9D)9a""e; ;V)HaDo(.:AA큤AA큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤\ɳ\ɳx\ɳx\ɳu\ɳu\ɳx\ɳu\ɳv\ɳv\ɳw\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳv\ɳx\ɳu\ɳu\ɳx\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳx\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳu\ɳu\ɳu\ɳu\ɳu\ɳx\ɳv\ɳv\ɳv\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳw\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳw\ɳv\ɳw\ɳv\ɳv\ɳv\ɳv\ɳv\ɳw\ɳv\ɳv\ɳv\ɳw\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳw\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳw\ɳv\ɳw\ɳv\ɳv\ɳw\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳw\ɳv\ɳw\ɳv\ɳv\ɳw\ɳv\ɳv\ɳv\ɳw\ɳv\ɳw\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳw\ɳv\ɳv\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳv\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳv\ɳw\ɳv\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳv\ɳw\ɳv\ɳw\ɳv\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳw\ɳv\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳv\ɳv\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳv\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳv\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳv\ɳv\ɳw\ɳv\ɳw\ɳv\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳv\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳv\ɳv\ɳv\ɳv\ɳv\ɳw\ɳv\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳw\ɳv\ɳv\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳw\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳx\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳu\ɳw\ɳw\ɳw\ɳw\ɳx\ɳt\ɳ\ɳ[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`\ɳ\ɳ[`[`[`\ɳ[`[`[`[`[`[`\ɳ[`[`[`[`[`[`[`[`\ɳ[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`\ɳ[`[`[`[`[`[`[`\ɳ[`[`\ɳ[`[`[`[`[`[`\ɳ[`[`[`[`[`[`[`[`[`[`[`[`\ɳ[`[`[`[`[`[`[`[`[`[`[`[`\ɳ[`[`\ɳ[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`\ɳ[`[`[`[`\ɳ[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`\ɳ[`[`[`[`\ɳ[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`\ɳ[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`[`\ɳ[`[`[`[`[`\ɳ[`[`[`[`[`[`[`[`\ɳ[`N\ɳNNN\ɳt\ɳt\ɳNNNNO[NN\ɳ\ɳNO[NNN\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ\ɳ70bb23a33caa806d97bda261565d1e87b8d63f5da09bbe374d1c7822dd34d6569e7ed0ef70f99bb7f763a48ddd95d5990e103bb145eedfd0a76d19c122374be2782b30d237bdbeddfde4aed01f007264cc116b2d4be2f398a7cb74ec7a5bc58b9f362107e74d99e1eee4d5888b8175c618ef7a827c44bffb08efd81440ffe01bc98c02adc57337f58c40aae15bbac05a3ccb364e5adb1d610a16452e92f17830719daff639d0e9a670225cc103b118b08602d1f67247b0e7c2943c0da24244658825351719cc2e815cc05e3ee5fa66d2aac15f76dffe0a0eb27669de28aa67f5c598a6bfa99ee75898dabb66a40b3091baefb267d896216caa17b1f1fb270e33eed0dce22a3803575df4523aa77741bffb2c61d5b334e60eec606ca729d60143036892338ffde5b664a35b80f08670431b231c681887c5f58986b307946141e6694e118bb2b9081a0018d75ebb4ac945c113cca73550a684267a4601b2087e983d2a9d6479db27baaa9a185464571b3b3613490535ed012dd9c43a56c829299bf810cbd58a7e550135456cea0a4674360cd03391aeeef533dcd5aa4e7599cf86ef6187baa01433acb412f10e3bd84ad6d362fed490567f25d5421a53711dd2753cb408288f7c40ebb01fd668d8a16876382b5c2cd7d710fed2ac8a6813c0b4b9350e7b412bb7cf03b306ad84a78b953bb8fb02a5fed2de4a79b6827601e202cab7c19fee5e11c5f883d35e09abe1ac1c3f35952c9c1fbe16706aea1c19f60c0138d785553ba1483e685af5cc7272e37c495da85dd3f81699b7cc07b73d7abec13af5a0a8c829c50993d81c9c85bf16d57d6e7f47d2075054f8e47d184fbf002cba5dfc556ff95e09acf354ee8d9a018d44b9855eb1335f34d8d68261be5a5f771f72263076255fc5233144acec464586d93702ac54376e14ccc072a6109675085b91fa1d0126d1e13f1da6c7e2a189d558fa3016dd7b8b675c24d57abb8a1f51c8714f5c6ca62217c345ff8ade9794dc3605c9bf5f75a7d4c466cfc3e295e1d9abb17216f65c0118e06b58c02c2e2c88e7fefa69362154862d3a8c66588ee87d0a21f3b2ec791b9f33184b40ee3590b1019adad5e5f9b0645779dafdc84448a23aa40db3bc143e05ab0dffd0e723c2f85df986bf37972872bbcc29d9896ab631065ba123d5bd5cfd06dd0c2be51224d2eee94c5aa70e7b533c3a82c4e5595479f4287dac309d413780fc4ae98989d6172d42090da71b5ea8377842fcf9ba8cac5190bc0181b3cfb07154f65427e1b811e563590c4bdfa57910a3719e8690be60b9c6fa833c9c1c293a50a2b3c671eff436d46f6880009828594fe760a8080d06ef2c00d333dfbb669a8ce7dc5b62c995deb8d36f6b9be99ef19e321bf2948de68d36d8b2393f5f833601d963127f47efa58617cf54a18cb0464baef7e644fa4eb1916beb39ef50aa7606dd7efc75cb336d7cb93d9d22be956dd4333e93d56978e57282910fa4cf3ff01f02075cfbe989e277b2fb568255ccb289312c78bb3662730dbb1129bc0439dc22060f2032795ecc7c3739612dd74d890472287b9bcfe927555ddc9bdc900a71ff9db5d999af768be7bf78cdf73d1e37f640d640eacd404d82fe60a264e74b98b562dcc754b7d9cc3302bb5e9ce1cd73000ac07560b7a1f5221f285e35566696874312378d7585f418bb401def0aa494f3a87e06af073f57b1156a1bf3d1f7afa7b778fb0fd662ba25e10dafcf4c8602ac6362fa88aa7342da01a748afa5ba6c982baf1839eefd09096d1a0498ef69b46e7b6aa09db48ec227e4beee58d50a3795f5ac06ceaac5ec1a44ec174e522590192e0974e1408d6d47d8eb27fd38b69457fd4a6876e2f6915c00154cd22f9fadbb1b26bd82762d0891f71bd83b73154c7a4e30a28fd7bc47c2ad74e27a02e17350e18759b9453bf5eb0ca7bbbe245893fccb74d9388ed75676d96b79d215f77e63948e678fbb063501980d5e9819a18596996a4b21b57ce41e9fcac803689f5355e50145e1fb2ad73225671bbef681926a1e49e30c4b6df1082584194055baba04b07161dab72e46f4484e16e9d0edc5e6864a84cf97e5a0a61cfdf8e80e547ab66ff7be0b8240d0601469483f7020c7a153f6e6b102750836ccc13d805c57af71c3df17c9a7b1951cdcca333d86f1a5354bd426ef623a92afdf4b2f78c2a9db914ae37f3b06b63a124ea21d5c34fbed9f8f358138735797c3b14ad3efd73dfb72c6a73988920e4c05badb9f4e3e1cccbac17603a2bf31451f22555dea145e92bb36a34524b6ad25f41e145d6a0a5046b58bfbaa08989c7a5aac9ca2ee8472c5b75a06f5d4c5ef40dbd544ef49f8b671ed6f83b3315dd8e30074120a02c578006cecdbd0039ce9d23bbe84ad2a3998c4dcd8954c81b1d5033d13a530c58e0c8c1f8a4ddfb2848d6aabab95ae6b4c749e78ca77153bd9297e857ea88910a28ce9934d2a4686ecf3cc50c9fd77bbd6c398e7fe089fcc024d8c517ae69766fe46de1df3a966aa438917a9ae1ba04891c6bf0084e09c35e0c76292124424042d3e3bbffb20168efb08121e0a143051bb412f178ace3c648016aa18305ad7210385961d2217daad79aaa7ebecc51df58e29a25683d563b4dd74a2fd262a8de6f3097e43bb3b7d9949e7249ca46bd77d73222618586ab20f17f955e1a4694ff9fbf951ff05c77601d830c9cdf989b9d8267bcdd29c7c5fd1b16e050cf618cf8dd324651cdc62928b0b39f9fb6405d74e7c9d952f759a2726293ea97efd8f1bdf2e957d7ab2918b8330a0f16798634405c39e7ee45cda5ceb24eac99c5a000b344eeeecaa8de4b2c081ef76589f050c8fe2d10018020eebf80d1a0ac0f2cedc9a9406ad34e1a7c2ab5735e2d5e715009a69dde3550081cb6cb3645aefd188d447b941eea27e8231eb49c67bf78a4f1da0fe93270897bac5045a29c70b8a754aa1f6653a3ff125f3401ae02cf34b794db09dbeef97dfc5c8fa8cdddecdc66eaf2eae7cd5ca9516987314132e8a0178b8ee6b8a7d0925bd00d7b46d412ff9c3958d0e7c325f800056d82ac304ccd82110eb01a66c0b21584264952470f7e9f36c84158c60d182c46f1f24a65fcec5c6096ee72e8ad84f6589b6251b87e82bde99b49dc9cc7167f4cca27f7ee11cb397865ebc024353fcdcfca15f89d50cbd413b9e189ac2a782fd4b025bed1b7546bacc406af4d311932fa6ee5e767fbd4ce3d2bb60d1f30ffb1fd44c914b9124ffb2cb4aa622762fe3afdc8f5878705bc47b4ab7456cd7cbbd3d45f9a1436973a2aae66bbb99f2b57f2ef160182825fa5305444511ca1eca4e1b0b38528b2bcfa36512722e08b0df565708751ab57fe7392cf319bf34d66a96a21f1cd17fcca08a41e24f1b194474c5b79f01826c87fdcef4b233303a92c85ee9f4614c42bfd5aeafffea4e10118b35811ae424bd502a6269abdc199fb69b6741c85bee141bc382fab7b76f3dda527641e9ddae4c36ea47052add6054f0c3ef4adcb764554423f101a6ff18cc5ecb439c844a06abbc5723e860428575954f595a29a9ca3600464fbe91b1a39be4c7f2354433d89b16fb172c823518f7bb740cbd5579d53cb16c33b2294cf4e7edcd0515271f14cc71c3dddd2c88412cf5eb71da2f83e43465b0c877deacd6a1d9d920152c99532e1140c9f4b49200de57a38a20714c1f0d850f35f0a5437ff5492c75a5d9e5dc0f93e6c69e70fb0c0f8ff99118bd71a189ab50d715580304a6d96c0e0243c10590edfc9295daf7f2281677c1009130f1550465bcd7416d343f63727f7e24aef6661536ba6a8fea4544d7436ab81db922f9b5da80e55258226641738e931d621a8650f3254ad65e9c91533add3f963d794dc411f06310568894fc03fa9fba5feaefb6b94213beb996166abd469f352be0d00929bf18c8249fd67d159c606d0756ec82344a179721553b1356f286e70abc838ae8753571cdf6fbc355a546940590a0ffd40417ffb6a7b93ce692b1aada4955dd47edf0927c7bedc25fac262073f6161975855363cad0c37a960cfcb3637b04e17eb852b8869bee1fa866d5c67112888c04e31cc42c7651f9934a3f68781570cb81201fbffd0c9a5e630cc2e32bab63c3524707ca5b200a51957007574dda94e9d4590a429dcebbc6bf0da733f73649ef20516167fffa2e51df8d60ff16bec94035ad81e49aa4ff7ec8abd2460e5fcbc64b5327f80438ecf91087f6cf86dcd1fdb37b1689e3f386252f340cefa47f790f8c8342399e0e6431e27aaff4ced4166c8f55ec70f9f11ecefb998867eea585db79b9102ac4b49e2f34688dbb8cb7b775692978ffed89532cf45cdf9b6799d935882e0f114b18fecf6bcc58b149ca95ba4b0f4df2ed213964ad5b0ad619e683977576135b5d28ece4840047be5df66bd6b81159c9676f76ccd87c2e4474d56ba583fded18e3ddf0f7b1b43a194295c6c3a7a008ecc37fbd57567d05b27d6404ac5a5dd01113b4ef8e1e8ccf65662126001346cfb818afde9d83b7036b0add3d63d9c53ad3708ad025d37289b7e27aadaedb88acdcdeab1bc47779bd58ccd3e9c63376c35fb3959a295c9da6ea667dcd3c44f1c61fc332e743858da7e118692d168ac15005cfaae69bc3046ab85c15eab732bf83c9bceae1033f92c3576c3e90c66f2245d23a59113d8d309a7e1773ffd34b0982c86059fbf5f6c6ae13bcbcd7b6848845f00d8f23ce05c09c465f4ba1df92ff2b594281e5e6cba59497261e4261422776f0ea4af68c72bc1c825a3a6c2834cb3a10f719ada12f95bc429682d6f7566057f1a662958d30185621c1acc94b8985c5027f999e014300a569b086f7f7577087ab1078c242c098290115e13cf2b929f4a46ddf5ffa634a7c81461ea750e212bf09733f12611505ccabbdba2db8e0e2014206d3f9e3736f96aaff53f5a478a82b6a33ee95f2d28f4962b32eb659de5b953243e0fc413b1bf8d71aa8844bce43fba60ffb153204ddf2dbb29369b8c752911471cb8de80b54d55df832d8ba19689872b9a77bbf2a396473ac09ed3ab53d0a267b5788430113e1bbcbc8a6707e5d0783ab161eb2f490c2ce34668cadfcf39e1abef83a61efead84d350afd7525ff200bef27925df8336b279d67972bf0eb0e282c4f4a909ecd3b4fb176f6a7a73fe998a5a004b9702591d03baa9d265b774e7c5d16649af5bf9886aeb71babe969670efee3cf4c8cb1615cb444da7657e93bdd1576654c18ee4494780bcffa860ea37ace727451a42a391df021539c60856c5b9c99e6eec2c2355c52cb95113dcfe67e5771e1f9dd0ba2f1c827ef82e871dd5934751e2f8cb989307828073e66f6a4bce1d59cf4d19b9bdbe1f7491656e2daefd12b004020e9f4731728006523ed2e8c02fa6d894e801f27b7474e8de1061c9f74f728c9433a4ce16e68a69108de7f9edf6ac2b3f501c8bb27130825f470657294514cc3efabf4360c3082c91a24914a590cdc4b245417990cb98ec722719d26724d4b8f01670922a993e48598731f03c7db6c338ae9b64365a63166b5cbeb08b333347cbcaebfb9899bc0a094dff029804e0b84e82752818888bbe0522b499c89b05692964828a1ad236d878e6230f7579f154e73e021b6fd8457d4aad5ab85b3a4da87bc151ea887b694f1ff1e925b747f401b2b1f39f3e2da3042d364417d3a2b14cf06a0903f362475df374f39bd798538dd408e2f4ed2540936a9c30d31fb88799f31c7b63505279dea6460fc54266eba27a5b1eee93915e76b502c6639a1e2e66e295e03324e185ee39b1d13ce425c016897b21ebc9f0086dff065e150fb52db5f3418d05646e7a8822fdee18b560a4c95c272a8f9659ad0d613349db78e2001d3dd93a88b241150fc07a39cbc3ebd7194974e9a62b9897ae1929f89c40e5efc8a4058627608c58ddac3488775c978bba1f95be48c57e79e9412b35d33bb9028b50b8d10d2a329f3d7e4169d6d64e38543f3709235e0321bfedc60ffd420a8d8deaa8f8596607dbc85ce697b1691e3fd51f96675c8877ff2b052f2241e9ed0db1f0520281265f8d612289bb63e5cf5f21f222df196cc1feb1f0e04f5ac0618424e3addb6e4a8b57a20b60fb3f2dd326870482a4c5cd691a092478a0fa067c78c0142f97e49edb85ccacf27d6dcd74f11c3b27db8935f08f8d1c9d9ea938db868c6349f11893b66747e02c50abf86dd5dc9b5ca1d55a54a2223e764e3502a777099c19d81ee80b2b17d74970b8ad6bfc06306c19ca5672dd292b6108f767358aa63be94863d27bfc386d1722f216ca071910ed64d9e25d22d2c491bd2971fcfe2815d2da444c6e7bdaa1a937b5b183ff1d0598d42fe48ebb4cae96e956feffaae5aec585b6e5d9d80f3d360d894ad1d6c83ef029576ee87c164814c7ea475979481ea61300c45943a5c9a68ce38159dd7d1f688a0e548c2ab7a30a0de625908483a4bfa3f8cc3dbdc27e43c1f742b103c7ab4baa60d7807ad78b957e1732d235a19ba26f412a751bb53b725b2adebfbf73594ad5b2b70b768a735887857e12fab959f9662ac2b6d70a74998ba6cfe797929be2e7950d5f11838340c72375376f67cdf47c8bbe7ee5e0b40c8335619b8269a1c84f8f761ecb728290e660a366a4c90a11235c9e5915a4e387771b21957283c41468badd1bab17385bd2a5b5bbf296a9e70a61cd75c7a8961df10cb87c8588cb9ef8d905407da06075ab674d18afcb14ebd72518213bb4c7e849b6d5c1c547f9bfb77370a70c0566f1f2c9096f4df58fc466749f690fec8a9ef61cd83b245585cc6979bbe8d1baf86cd2be961c4763641c77b2b3214f1223272788c2fb918ba857adce08d0287c5319e1e7d907df48623fe1b104ce1731d103c770c20e3bfaa3053abd9a3a5d618a1e0ca7781590a9c8e65fd3ebda8f2d0b39187728f3a9bcd3163df8d3d7671ff93553ad497a76799ec2201bcb463369c816441e2c1ce62a9aad618462a13b2099ee06ab9116f2d510675eef27f84e13e7cc208ea20e24a97fa2c2f4cddf094fde69703dd599735148308808ecee391fe027f1cc27ea33895e0f0395b74e6d5fba7509cf5ea582ce397dc6c0fd2ee9ad534e1871d4931540d2546df4b915c388acbba359c0579e154d82353429526dbead9b5b10a2b75a5d887cfa461d0624977a6cb745d39f33a7eaed4aba9fbff2077eb0cf959108a06164ed58bfff55e773add2078ec62d24c88e78a5066dc8477a9a2efbc6d69c84e449ee59fa0fdd20b498ffe846c2d63503b0e8eccd4e96df7ae092c546a82630c38bba576fcd6f1f36365736b1c7ae687de40afc72af0063e65a326993d6eafe784ae60050366debbfb8d0d2e9beebbdb0d59ddf41c4489a54dc8d18c36e29f2f2d2d8eb27f8cbca6ae63f631aad9788741e37b76ae51a775f324c06ee9074685fbda23f9315fcc4122ccaa9664e5ee358d2884e21194a865bcee761dfa068527372db4490d172ddebe163212619f9b2c6ef70c16225b10a40b4593e68ef36f845e7cbfc5e8d1f5976869bd71f582ab3d96e7750b1fb3193d2057a4c55de5c518e48fb15c536ff2acfc828b701086859adc63f93120e52e36aceb145c465df67f2cbacfaf0dd23142af124a3bb55aaee73943192e7bafb26bd20e37dd3b9ddac7cf0087383902145a8df2733a4eeb6718c04001d5b6cf8498177728b2c3c20d12c3f2a1cf170b7b4e05333414c99898405e353d33d1b4dbf0cc1c7642e1b3c06779bf14f26c7cccfb26a915e4ac91c25fdb093039182216056a6f3b95214830f848ac46dcc3f8b02e776dc56d52f4c60a826ca18ce8a5eabadd71e15c0aba142d8cc3c93b3d7caeffd9295367a6ab0952a27504058a0353d2e842a694f05bf42c6b841f881267888315c17c1882dad0c420a22280c82b88fdcf7cafeadffcf91cb2c21e336b84391d6a19b1c32f975bea48eb950e775a84b246ef5ac2884a59d7e014a27a7ed710d34f2fe0ad48cdc9634dd67cf6677f52b81ebaa2b5ad2ec69cca1cfd90da0a05c442518ce9ab8fc365774de2931fb6cff8c1a4f71b0fccc8b2d0f3dd41014027cba60d74b6a6949a3da03f1b87648d529b06b0682270b017c9f64dc9c18ecdd1469b2080a6a11ffbf0c50c2f91967eb7f5b2f833f7072595fd1cb12e2f12c451a24d962ae9578797e8d26c1c0d0a1b7a355db7e98c75dbec051a3413f9a27df5720555bdfcda276084b73a09c7f02673c04ade8a25c62c2ce0aeaa51d937ebc8f301cb6126718d029c87a21d271aa204cdcee3147c46309ab463ea80ac11336f571ac95e7406272149cce652d4303436ce7cea6e86a822a3df510e01f33bae030a9ecefd10a16c89cd60487780e7b354dae090feb8b3a979d0b5ad4e79d8a29516e61f729a689f2eb65edd3fff54a718ec2ed7f7d0d1c338650dcee3d99134996aea7d58112b1fa5b561ad3a9278f94c094e7d1f542c791205ca7439f4814256fb0ad2d2ae5b53fdd0f62ba9bf7809b0d1534fa3fc8504391840820b514435e9b6fd5fcd936e61b2daa0757841b1527c61e2b34203b80edf5a0d52acd5dabb41704f0b5596a47c9fbd250bb2331752e7b5a93ac9284a72c3899af60ed485cf89f3b6731a1202c412d3f9f31db22b25d42c208a9a020fc2e136a3dacbc99ee05a4b58239c1c3db1450f9ed6f8e9986e184c0341d2253df94d607652f395b55b91fc9eeac7d3fba8e52c1bced8751a4ae8f8ef1740d4af9a348a0141c80453ec38911831e6e28a5853ff20e18c94dc5025ec5ae1447afecea5a5168bc00a139be59dd9463093645d97b5887873277f2a5fbb214c7e7daf7db33f82d554ee3c9ae70363b650474185db02d698f4f2df066d85b758829b5a24913a11f534eeb4bb9365d7dd24c234e890694258b39c04878aae4e9d1a958b9878074ada2e15528804d8af23bf512faf6e92699f256238c59022de0c8597da65d90dafbfb6a841dafc8c882bcf18fa58e29adba9b6eea46311de1f69f1329c609cc384c4ac2dc62e604c98a0957078d5b89e833ad0627dc767927d1791aab976b3973c154ac53352a239a0277b6b79bdcd9dc4b5ccbd0dc135ed8d8a4b801ced2dfcd947a57629d304c25839ff051b04274643a5dedb9e3fb983386ee8de940c15ad22cb9b5b8a3d4a17a2ebf82d865130c1ec4677bfe375f6776db01dc3fb7809ed5cce4654033da56d80a90fe142f2c386b68f903880f236099365c2a9ea703d3cbdcf73222e3a76c39c9f649342eff04cac7121acc10357bfa1bf9d4e2c8aceaaf7e354e703677c8dd19cef5c23664d087887b82730b703cc50426d7d89257a5c44db127323fb1606c91cf0b1de65b63e5d2ae426811e92e4d6aa3f3459b52d2c82c69328af18c56c89cbca61d527985ece8fc02eb024c78fe8b9826ef86cd967c54564ed4443a5d421dc13f174300f6663279b789e300134b512e1716c5780eb7cdda0052a8554466cc9ff36aa807938f8518944fcfd4cb174caa0dd53f3bc7e47c7bd74671fc5d11004665b786aca9c04e879f62bed7a0884e401fed1cb951d37e1701bbfcb758fa68177297230935302a3e0e23ee3a50a763db3c2726f8e5695c09da3af6e7e0cbe26ec6e737da6cf9eea7d18fbeb1cecae191a29134abe037fa8e6aebbe10141384ee6bca719a7fa404a915c3ee910a4ee5dc7e714404f595f4dd1bf6c3faf02342b2d0ab39edeea0082ff5cb3b2d4a94f5883e6811b0c2715373ec7fcfc0af2c747f2fd9b8f530474462a6bd9221bc4800b145b441e3720ad0ba1817740db8f840b2b0c6ed8dba0d3db0971f00f72afeb5c98dc7c677a98f91fd632c422b29f5cd4cb41607a30d7820cc20ea76b4a3b8f57d3d2b7d102b58c8e13ad95e83aa1a6ca13a1c87edcfbfc91317896452c31a9d49c4768f1b4b46ac32e0907e00a73680166339ff62595dd2d2eed3a79fb9fa0c2e8250e89539f6d678aa2e5e51e26c747f2fd9b8f530474462a6bd9221bc4800b145b441e3720ad0ba1817740db8f5cd4cb41607a30d7820cc20ea76b4a3b8f57d3d2b7d102b58c8e13ad95e83aa178feabe3c5c148145751813bd515c36ae5a63e1453778550ea17a16116afe64d78feabe3c5c148145751813bd515c36ae5a63e1453778550ea17a16116afe64d3260ddaa44856ba63d14621f2436ed9d3cd432214c751968a95fbfc0ba3e8995c747f2fd9b8f530474462a6bd9221bc4800b145b441e3720ad0ba1817740db8fdf6fd4e35ce1205eb3af2dafa276c6ba2b8c5279299bc2e8130c43946e8b686ffb1bd95d3ab84076623479182c8493531bb685720e25eb15d3f40bef58482e19fb1bd95d3ab84076623479182c8493531bb685720e25eb15d3f40bef58482e191c555557ca84ba3598f52c281780dd7e22655db21ac383712e62d4540a1bc525c747f2fd9b8f530474462a6bd9221bc4800b145b441e3720ad0ba1817740db8f254df05fd34db23d1e5b7face288ac616197b75c7bacfc711413bc2e219aa60f0ba65aedd05ddd9ea0417becd0d4117ace705083b14841a855a14c6e76fa96f090c0d122b0a85f9c17506ef7aac34f5d5f4ef64913f79ec62e9b4d3d815bf60a958f4a6f36567b097f6e68f8199dec510046a573fc3855f47dc5231fe30df17f1c13179bdb0648474c17b27ed2020f29bc7d06f96d12fe8cff552ed51bcf0eb7668f49fd8a8276f9253df2fa1f314968db0c268af9de261ee35d76b13c0ea8eaafc347b9a2e44b2e4abaa3a5372fa4bb08ceeb9c829994d00729dc0a88bd8b35632bfc1cfd4ab93149922c488883f62ad4f71b3bcd97c469462de0f5cc7ca603700ba0e8f24780bb02c44bc97c030256ebea5b0fbc869eb7ec674e5596b2401edd9e1e592757dd9ac9d0461509fb914b19736450e5533431d5ed305bd72821bf9f5972fed5c320aa76c88dc120ce729fc143219bd4d344384b671a7a42dc8927bd8f39cfac325f5862d5d452679cd3806593da8a92dc664ccf4b7ed603d626aa0b73a5314c6dafaf337f0af1f86b0b0fc5d010d72dc1d426f9ad1d7cf56053beb4738615765aa7bbc53f90047d5952a053d5ba8166ea99dfc9dc391344b5f7c24b81de1fa9546890e697363900df49ebfe89a57c49fcf04f74e4cadb245d514fded200a552949f0c46156b8f1514676ad538472277609af72e76a409c70c13dd72c171ca6eb970c62324afa0ca94b1fb6c9160f2cc6b345674e3f09f3e2da4f0d744711d3473c00284bbe97c27bdf743eeb076251daecd599cd97bdee4f66d896db31f9e00423bd57a0090ccbdd36ff2b150faffcc68f5e945db27930953c17d1ea99c9299ac6054a0413d23c1f90c46b1eba9f29eae99553bdb1620aecb646b892bbe0256749c32166c3b486688d9569ff1c97508d63989e7c6add386c355d4d389a23d87dd8db1ed26fdf8fccebff9be491921228f1edd3c197d5259c45dbdb675bf5888081bd9144acb1cbc068599ee8bf2a0510201f601b2775b1699d1c55d84005caa702b92b9eb2075a24bc60a661181ced4f28de5d2d3b526a31c4b2ec7825cb38ce13aa09d29e3fd4be7ab0135a1a9a949f11259363a78517e16a36a078658d68b0999698e2e6d55b45bea763896c857e4d6806f8891ea9da4bbd296a061555fc39254b1b2a9d6a84a62b7592111b75b67450d5a96dc7fa198f32a9340ccc1506302c308dd6a25e8e46980012026f72e6dcaa5d85c6c41bbc9007aea0d9c93a9aa759507718230df83ad7082e1d045f9b0352ab66a918f00800f2e62895df270019f8cdc954d226e6dda5db8fe090207c52af6992d0854fb2ce99747ff0c949c47418bfdca63426b82ba7faadd8d0f4cbdcf84fb822c0420ce29bc39ae6dad8f1aaadd1f03659fd03bcdd419be5663c8d89cb63b5ca461cc817e2294f5a0bf514cb346d850607d781d9200f0f8375c44818f918ab946567cfc73c17cf13948f8f42115a89086367c9e52b0ea12e9f9bb043e98e8736fd371880ff1d240685a4ba2ea09d8019c14b044f04f13d1a35c19edde976762c96b58f247cddbb748c3fe6db643cb11ab56105e9867b998caf46569cecb7e1d6085cdc85586640e903abb124027ea622ecdff5b09e5ede6037adf6dcc27c2da487664f5eb4e7a0693d58e933b723f35411e51a354f53e127b48da07c3ad9a10b81ed572858287b3dfcd705bfdff1b99f5cc5df435c50506257cc10af660fcb40fd832f258a951ae9db324f0b06103b847c06f34bc75fe90cb44a0e345372ea506f94482d2ff4cc3764f7eea8d22676a38fd889d9ff2595c7eed3caf6e4be9a4bc0e1a3f3c3032ca6fc86687a363e23861343f85a7c7c575a60ce894116fe2fbfd4625fabea3c6d4575b72340f62a61c34c2cf9f35a4ed1d707daa072d2ce4abc0b74e50c3b2c5ff431b0e67ade8e2f3ed63fcebaad7274b5c0aee02e47936f94f427eb24935dca373d15e9fad3ba17d4bd9765c45f3c774d74bb6fc4c7c6677b26a79e4b3581ba546456eccaca8b0b99b5da43e808f2b89c55cdb1ef87f8dc184f0487b14a175af1aadc0c8b08bedd8db2cf5d9d256c592f202ce7e9f16c770ec9e3d8aba2cc3dad70450821ef320540d7618cfdb6466420e75e0bd4ff8f3957cb3cae473c4b4d6e607918b2655baf0b3fca047b9aac661752a104d6c33eb8abe0b74fe7bb672ec135de22fbf9f35ce0d54dc407b61598c03b37058f87bdd35dea48b449a9634380f4d6ab9c4d78eaadf92cc2db93ced83e1eef228a1679249929efa0e4eb08149ca1e8a4c3b723fcd4586eea745667c4dc065bcc5e497f94321af597f1b8e9deb680262b7b1d959ebe28a64156f138d4c2a72f533da6382f762a15fb67cf2d733d3c2be80af4fea26e682fa451eb822ac05bb25ca8ffa64ee98653328fbb0cad4dea65edcb3cfee3e83eeea3ec649ea8e3357e2be9e85bea0ef2e1c3f78cbf25f96095e8f59c85cbd094287b6c638ed8c7c1477c1e6a4bf57912446b29934e314c21888f7878acc7f198c545f53dbf1351e59138dcae58331453a84936d8323b72465072dfef96c4455fa33cded56cfed8644077f1e64218fc1f23c72888973e9408d198edb6109afbde43c7c165d9e79a357c848d0ecda6a0f77be67e3837cbcca1f8946a5eaf22b338f5f5b7cd1a8b542f3dcfd36de10a5018a8f017e9f5b161d435d08b1e337ae9794a04c2ea98830036bc7e9208708721f14961b7e2dc434d3b91eab1f32527da0894dd9fd75b79e41d346380a9db7e835d2a5e31cd12dd5e77a91b96e21b1ebca26ae1cf817a7ce1797e8ad7392659b5657b91c94a3fe894e4d6cf53e668a85426ae4c460829c5d6bc3a5ada905da3f28bd215ba4e855e7c9acdb10e08dc909db48a4b61496a1d7c43e3c21f9462207cfa775fb504acbbfac6395fb7d49cc28ce7a754ace8a61aaca1a38fc653d399984f7f70592a525111bc68bb3ce90346195bdf7e309deacaa6b3015aa674af7a2fed35b2b1942054f020725c9daad6d3a47c3948d7130731b273ca7fdbf6d41773e1ef5cf9087ec083a5c9b57fd1b7e618aa9cec4600e53a42aa1d3b312bd234807a463c82ff2b8085ab18fbd2c547e812c9f2912491f6284b28e442ae2f18cfebba7c0c3ee06a7df27b99b3f77bd12af83d326eb267f2538a4118ab90ea8155bdb093ae91a079524116fb259cbd79a4363ced851a7ae7f05242bc3a0281d560c1216fa6f48e695a3f850fb2fc67eb7141ee7e71bed78ee2708b79a4b3bbb583e7c6331d34ab95a7e8129001ba56c63ba06375599cd67ff7fefe968e1984c44306f5e11b62f798f6d93cef590e3aef741e63c9b5ff032fbcfc53c6586efa90477f259646bee820e3e7c25dc6185c23a9f3b0fbdf747c0c356f00bc71a9de4c1169759b67b6e9666525a57662ff8edcdb234fabb1d1ee53d26ca25b6cc8f8726ebd1b9c567c4c02cd15b3145cd9f669352d65e2f8f32ae00dd9d87579976efdd8a4a81dc6f4ccf27d7798ff8df8dca40b165c6a57239a7a40d706808974bf3bdbae1dbb1e66d0210d6c3bcf83987d569d31b883bfcc3ff909d0d7544a5e2b47f9ea584c6ee9a226ce077808c8d8389a293c5dc1bdd79dbbec94f4eea3ccb2ac65d0bb2b35cf789c403c6632f4d5eb4734c8d5bbdeffa3ce4c3291831248ab3bfde714702fc64e6d16b7ee08ebde9f9a0a4375a502758c5fae157ee022efa0c6c4b5f015950651b3ee8b5a54062f6e45b0dc654f7d411551d226f90e54c709254f1e378109cc0558d717891714287381c8fadf4db4b48ed29e8ac80ad0312a714bd5f7e2f1ca5d1c7598b6a5fc363181f1b02f43d93aeab396e061420f0ac66140a18eb7e79108bc42aa86f400afca3dd91d1795bdb3645609248eef9acc065818fbd236b3014aacd2a18ba54c32988e814880ba6a624b89147b35440a004451fceedcc02775fded6820aac6c17543423c017bb73d1179d13679879e3617ae81a451216c823c5518c409aabaace1a92c502286878b09fa2ccf5fa8212e0a7d624def34a7f2fb56d20d46519b14fd70a526ffad40bf4917d20b3c3d429f10ea0abd74b97337eb8e844b3dae1b394bb7c88e27c0374b0b19610a0060a5fe71221f8c0b1672fb4254f5757753fe9d67f14a7f9cacb28969f8d135eb8b1b3e1c0230d08e0a5f5492dfdcac83bed9c90fdf4b8720cb999255433d9bc0c3be25467cf17ecc4c14d46cdcd681e97a59d7bc8b78e1aa797c2723bed145c416c1443d86c8cb4a13fa0c07b327a0bc10816b9622a1dbabdcf5a0ca73bd0b2cedf25a98180bd2d253349b8bc008775acad265694cbb183d376065efcc4b26680d471d243fbcae93b510451d0f52c44f393960113640cae3875a1953940309265d05404eee1b6cefb98610e95e3245676ccc310b474334b52b08b05c02709e2e3fbf1516df517347b7b11609e6afbfc75b5786668091616967d41f58b6f42a059071a6a518284ae5ed5e7a605a215821a45fc0e4ad5a3bcbcfbcb8530723edfa4213e46553605daf1dc5e73de198e79e0690b9e2f7f41d90f340e2a4fa133f91bad54ec35312ce57ddfb68a0edad4fe6796e275f876e23a1d26ffb226c0d776f9843b05a4388659d2dffbe1a0d21dffefb698a87517ebba88fe1b99fb965eaa8fb5a476f66c1b8c33b6391a2bd579a3c319246e30a145e32665aa5c53378d4bdc98c6a45959574d466ab67fb99b2b02c49f68599ef0fbc2427727827cddce7158037a45440b5c9f8b3bd001b617d8e7c0bcc8667fb36ed82597bd5ec861d06c19206d0f6e1d4ee38baa987fa3d8164cac23dfa26608e2496c4cd6590f7a6d8c721a6a1c981394483f41143c40da2223ed617cb972e4bc7d8e48bc674d50f7ac4112259777c30f9757be492a83f8c1c368f0052418638316e671c6ff6c064490080d5c193e535eca1c81a764a1564915ac56a3588b58a67683ef3a0ca0d485ce788339a2b5cd64fd26678717d360f11b668d18bfb712add6fc3cd3f7e3bdb492b7594deb047748732a307aa10e96055281a036cf7e068843ac41434195b9540828e7fa33c5318e43e17e301f1a24dff5fb3f1b5858677ee009508ace9f0d0a50e09f29fc29c4d4d1df4744bf4e6928bf1922222d45b7ada6e7affcaf82972d0819d6af83243471042678443bebf2c24bdc6a72666e1b300fdfc5ecf102714c9fd57df76fdf47139f8dbf8ae59863646a30bdd21a49026b2a0f553e7944593d3cf015fdda29c71bb495e68c77e88ec1b7711604d6cdeaf3cdfd661fa21fc5bf18de929671c801f00415eaecd35abda3a04665e9dd0ef5ef2c6ddf02b4a12472984485adb027fd12ae6c60ffd203b1a4a68cc14bbc14d97ef7551324e1fe5d86981a9ddafe3c9fd85750eee8d448667a140aefd613cffada2b08286adb6d1fd454aceedc73d87b6c7ee5dfff71627658cbdc9b2c8a7f263738b04b5590ee4a28fbeaa613350ffce17c44a81ab5631d70423e4d994bd2ef2ae07c46413b676c5091a02c4d20f586c23a8aa1866cddc167921826046151ef07b4403d9cbabc53cec0bcf52df3ff930647962c6c90ad77389ad8e0eb99ee3b90088dbc91d7f8114335a1a5dc8ac4ef8c0a02c287ea16f899255402ba807a1cb350b129008371706828f1e05ccb05929f85971e3472daaa9ddfa5b169f957ce5ee28950cc1b84d061e90b414aa00502203e785d8d9e7f1f3718aff820124eed0edd299d550a2647347722e89be3d124320b3e1d65c532cb391baadf566988e444c6403e6d173b3e58ff1b507d55a1a096f98d8ac75823015da5d22ebd155b1a188eaec64936569c0f93f1d8980cd033c59584c1fef0e90dc9a673796636bc266634b52ab5629a3a26de7f9aad5eeb06b6c5f7255c68f50deff9a126021644a86855454c9afae256a91f6c764e43b5f5926b4a8a897e463744335cc79a7de7f008ac4b7ea2a018c35f1b30b70cf45decb1982f9eec065789be9a86546d971e76b3af66123a153acd6311d24f643a68ec946a6fcdf16735954ab8f99f1626af1516b8b1e25f5734919fd54c15464ae7e4cd7ce0e82cb4f1134a915a625d9b3e7b1de0394635ae264e5874749102cce518d42e40a6f18e4f6e74d1a1a63c9dac297e9890e8a154c24597fe5ec5f8a99f39e81b5d5629f0ffab8a5450af46f4c0a87dcdffd15344301e5dd7c2210a22ebd9a72f36b265b99efa49cefd0fa2674b411b391b4bed38f02d992fc957d358e408c11ca4b489d4debe642947e63e5ccd3bb0ff18b36704829b533395ab5f3f1dcea8e24a45918b136d39f6e68ddcfe85de3c9df425eb8ccc04e52df0dae7a0fb29fdffb98cc02e117662248db11a64940e9082cc70276f7b375b02dab3ac301c803f500107c9a309caf0325938490bd951e72b5529c13a115ce60911e8fe715e00337ca78a1e93207d5ab6efdb71e8351d5e0ca74d1d12dc120a254ec56cf48df3c776b59dc94b962fba8e40aec5a92b58ac8329bd16c76f6a55968eb9d3598adfb33868f34a8a01a0b54045d2ccaddda510fc352d58cead23f6d735fce5eccfdae99a1621d1a545e0aae010f757aa4ba1c32fb7afd96e8aa76102425b37d16ab2ba8cfeb3d5c8b9772bb8745c9821978b4fb0b9558e694fd42c722a67d7a55a27395cc7a69b740c2820023e0eff3b59a7317650b65157d560988b28d7ec570742543784538cb558be67e9e67fd673e8d63075de70d3792eda4ffc6f273d877d8ecd158c52e05678a7178d8634eb2212b67c073af141b055e2330ef837f6547712fa759ca593ff0e9efd55cb4c823282a17f0db873705d2dddaa120202e6c0ac580fd207007fed148d2e8890b4be42e866f8908cf67381abce1341931b09930874acc91cd36177bf09bd13cc1afc94437425c2ca7270277f426eb16783c75954a3820ed86556008c4e48e1ac7434874842e94d00cc379ae89188a4a1c67dd97bb56feb42e3a5fbbea449e11468e937283ba67ed23600cb7690886b3463dd3e77dc73068e5e40c8610c031cc4d8c10f3f5505001e4f6943690d8f01c49691bf08778545ef8f41d1eb38c550b5924e395b307d1f83aa16a0ee3e73569aefbd4464ffdfa1beafcd1c70ad80600c7ac72c3c1baf6938bbff327128da960166759c5fd67e8161107f60f15285fb9a6bd9763121298a4b6cc40bc8abc9e4dbb399bfc01153bbf2568a479fb45e7da4e1556e3b3051a40ac87912f5c3dbdeb4ec2f0e1178cd51d8e036ae5d55afde276389044351c873ef315c796753074fa3d90edcf2eb1e00c42c1d5f2cd739e66c82f6ce3e7f67b8050064d83fdb5ef4464f93a863cdeebc869af2b92919d8ce4c5e0ddfccf392d4bfc6ea48071176a046811838d887311a098005be0160f832a2ba15d139ec2df9a62c8f4c2ac59d7edbc9d93c77aca36f1e75b7fe9c89f361b0acf96ab83df84d84afed4147337e1ab7ed26d46388f1b879203cec85c63ae7ce4e9349acab0b565b8edd6839ce6ea5fe1999c2c6edef6f1720873c582f05acdbf0b02a32e8dd52064e8485433e6c2f39dcf25edd80ec3db5c90bad20366d00468b047b65b2269d224b7b05d08ada0d2b56ec438690e71b2664abd569d1bae51ea294c1d1be0c23b0baffe82d7c63bd2acb013aff02242ada8b8a3f07655b35b30ba63c8b570356e290d8fa89768b1f5ced39764756df50ad527aa479227bd9dfe4cf804045070c9f049454d4c4d9bd96c8a8943de0c3e01c1df004eea8ba315b3cf951ff2ccfdda7ebadd0ad8ca6b7295edf05daa337799a3bdfaaa44cbc41c4ca03ed85ac51270670937a8ae8bc5ab897fc8971b453fe9f7690b89b2475247f172d729e84d9566f8bd3dd835b809b584d0c769c08ec893e8e45779ab5c0190f4c33cb6b21b457bcc739accd5f2ea819ceeb4401ba9d2174b8078851636397d2d39f100fd4076616e81a114fa3e4b745d61896c2e9f2b06a467ad23d0d4826ca8db99675b2766d74bd67f93fcf344aa7be51dbc8ba8f5b8c529c1d835d12670a58000b164823e8344247bf9cc682111856fb324df4a243e52968335d3a2798b49234e9e5cb7f741b9b3572b357c1d2dd8c205b7af2cc647a1eb5de7a799e738e11681b7f25102b8192ef2b6e57802c019482e04819309ccc3fa6ee29e7b01e6b8cbd6edb5d176acdf696de06103531a4985984264b3145691fb77a726fd32bd38ed588c1ebf3ba73d79a1f35d14523202a9ad7ae7be0124a8f1961fc5591e3fc864dd1028ee71e57dd7a28fc737a95817a68b65f19fe0f09f1aac29d4361b05f7e1f8877ecf3d60b08a3f40904a72326622a31d2f5f89707937f268d194069deaf32bae31ea78f7d4d37bacf6b445d49d660c52527b73ca40709cc6dc097d7d17d0822758af1a42246a24ceeba58284d2d7f4b0c142723c4e4d55e1afbc463b310073f94cc7d8501848f661d7e2fd8499e4bcd607269fd4d4982455c91ad7672e95b4beeab151711b48b66bde0d0300b9e187b9210a6e797fa89f0a83172edce2e12bd9e9044d6395f920bd52463f3c2292d616e018257ac764351d07b7cfdd750b90032b5c0cb821285bd56b44b2bbba6bbacf328abaff2dd856636e07f62006f0f337e8459bc61af409aed33af3a550601d6b3eeac92a87c2a296e5d6ed7b3525162195f92f99d2647bbff1788fdf2e83fb3034ac6ffa6bebe0216e1608f153756ad6e1475c4d09aeec176d5e6b703ed020602b1c5cb5ebad0392e9b1a35d8f8aae429bff2b1c3f0a042bcce2cf8cff8df7220a9a35d1ddb554806d6fefb2d1b5bfdb411097c013a19b77c42cd823937dafc228e145a9c9b662356b669688c90f77a8b1cbcb2f78259a01b57a4239607b10f5b0cbbeeb0223ec1974f1e8d9fbd53c630409a5899e8db483529ed99f0a46206f111b05c2b0fec8796edafed3efb86203d7d25bd9abd354cb4a51c7091116cabb425bbbf89c5202ee54ca367c1769b61daa1d7c2a1d5631827f769039e2b05229dd087a5bf548e3fcb776ef0fc3aa1b5968029a324c1f1ebaec7f2589c66b63059f30769e509de66116ff30d8b30287c17c516c0e402a2d054212e073894e2a9c27012757868f2f7cc7834afd21f312e444a81e441ace618cd59a1102b04100b1cba2705c53f3b646e3cd49c0d019143fcf08c9ed3872685aff582ef4d4fa3036d9288db7109e93777837aa640207fb6712eb2a007d838a2794bdb7b85da04806ba43b7ce02a716d7ed2b1a67bf27d7e2546d2418f11c6c91db0784bca7d7eb1b348d6658ddae0643b20d0c263051444e7d5c7515abc0bef932f3f70e6c94d6cb17f00bcc7aafb19e464a3cb99e1278ca7584e1461c46e56866afaa93d094e9b63ff4a51dfca951a14e2d1f8acb137d67fa5b22fbc19daca85049206442bd8234a1121433e006e5277fcbbc3e9233cf1906246fc22b582197c91c347c3f668adc8f610d1663919f1a5fc44085a6f7b2b767058a48223e235a1a7a09606f05ea577a29233f0a71100d142b19e9bb5d7883acc79408358b6bb433b360fe97c8b5c96afbc25e079446bb809858baf16a75ae87c553b55b07f11521f9966a5265e0c38eb8bbb431d3365aca288a3cda42cd3325cd1d95f0a79f3398272bd889ebc712ed9f41ae60d095d1101d4b9c8d69d9c09d72c34bd5c86d84c2456a9dd588ff52bf0d939967e4183a63b96b4585e76845ef4ff763da674cead37c7d9550888c601f6f965be2837c04b45aa8068b152164b38748bd0804b09bfebaaacdb63e6e27240476ca1f9a35b09303c3ced5113b149c5fa42c1a41034509f0e967efa002ec0f5c4a7279bfb5665a449aee9b5158a61679519301e5a86f98bb50a104d380d4d5b54ecd700cb66d33926632f2346ca395b9a53a1d5d60f750c4403b50bb8729c36a493df0d7f62a8f7013cfc533c529769d4bfd7f300c95f4f89758ebacdd900ab89a73ad12c6ca99338ee262ef486082f4f2e4d5fbbe54fa71435c314e9962e4c4cd2e06b238df4dc44c2ddce9f7e4ed77a99492ce505de6d762094764429e6b4399cef7293dd6b86cfb2fd2dbdc2b848f071c42f4b3844fb98826f2fd655dc8c556eb63ce2d39eab4f209148df1b0bc41033df19528bae857f7438b0c5f2f15fd7862a05b4baa501b19bc2a4610e73ef81972547f04d761a5c13d8ebc4d9d40cd38fb4fefe4b1ea0df1e367385eba3165b026b744738f78b8d1b8bfe71f344245ba6bd878fae681a2d1104d96650b26c20743c91838da262c7497ab515ece576bcc9a6654d8772c3a6dab35f0e8219e78a2d8bd72b4cb9db8b5a14b76691099366fabe1b43c3bd0e57ef749973664107bdf48518a459c65cb5658496d672df66177f75581a41834355bb1f01a34753dbff4f8af0d8bd7f9d0701cbaa1179021b1cd46e43bf25418b73adbcb160c2bdd1a9f9c218809a28719d627dd50f10f5382b129aeca800045d0df038f9945e24f1b640dedf6d7e9512683d78022518e1519a3bcd72c0ed69646c08eed753980f966148deeb4f1ee2969f0829edc40bbdafb95d326d8d422450499aaaf8a2d09eae07a72aaeb23aad16978329c1c787b5cd6a18654cd356acbad8fbb3479b7862b6d22167f8e2ff1ad53f4462993f72b70d0b8b330aed4bf1b194d540025dfd73254ec9943df29f4e01e30597931d80be7a84debe25fcdefc9935320ace9cdc5d382db18e02101db5883ab1c1ed50d3d16b01dd851b71c19a8add4521b205c88940a1f13af8de0351557cb272fe11b174c06e9977eaf4d5f49ed43c6d2078bca7a4bc63b21bdf5eff5821344f909a55f698985ab8c88967573e6b597ef42008d41fd299f8c99eadc2dcc0e43340a826a1f298c5b619465ef929292a1575724afc5207eaee0a3ebf149d4ee83618048358b3fd4ca603d25f8807e078b36f17e35fc1d5bb597292e314ee2572c16e9735e53801dfc06ee631b2a41f6cb402726e0e9b83a1a61c91a7b17dc7ec27ec6d445f4cb6601779cbb9adbfc08c5cf97c761f42ca97ae99ff5fe8ba2876b7bed6ed5ca8d439074567a8ba8d4ea824b17b8b7111ee8dafeaad5bc8752564d2bff21efe8fe76188eff85c20d998a050fce0c45e7bbab3f9c6f071d409218040debd2a9a54bd687a94c07d86baa26cd23519e4459d47eda254d646e1f283c42673e6ab0a2c6f358c10ee5476ba205106a0e7207dc8b558fd228b5ea23c7e3fa0cae1ee49f0d909232040dab341cfc66b77c28e92b3f4f2eb0882b3dbd7e59529a1028391d9d65f561cd6553d40b4cccddc2b3d6b3afaeea419295ecc60145a9b88cd74696b27da2a1a06d9cc934c80ed34bbad711fe81e98b07d25d7a3861104a0a9044283029378c1d814dcdb20d7cdacad57314ceaa6251ce5bd4e05c827d00319261d886bef06e3a84b5a2a842c6d80eed0592e86c6f5c21393c1268fd32a585e1e0af2ca690357b16a5c2ccb6edfb6a5b38fa88202f93e5c6650bbfad5acdd8905fd5532f58ace6548c383f79d7efd1a805217b737973918fec0d486b100f4b3d73f990b5e9288089d370d353cf0f1a254e6e563f8c8cc8dc496b52eeee75a94e92e21f34f69fc1af987bb8f2e77fded237fc5af1ab9992c2779317bca5fbfb445a398c61652b2c1cedc2b6c67521b0befb89bccece0a2934dae1ab4e3ccc6b1e533bbd47bd4a7d824b9b28ef842322c0bef62ca10ffac4a19287bae9fae99bf722417c79b220cc1ae859efb59f154aa66943def19fe2fb2f269eb018f3ddfbb917b8454aa57dd624cb0ec30f6e2584d11b5f5c3d6d10703cf7c74c51f81f24ce80377b27be2d3b225a75bbbea706c6e8422cfc9ac89bf515799bc1e362ebbb4cff8e1bb1aa975b37550d3e544760171b16d065484470cb3d51d6ecd4c4f7ced393a961a37975a9f8a82d3cb63148298c8d8a118d085760cc131d56abec30802ecd8923753db7b05eff89e50ae78e70767934f96194a5cb907f163595ca5d7938b874e7904e809540c98d0190c253e4c9f2017d57c4cc8091d6ca00bec903a77c10b13cece7b9be36de5b57616afa11441958eaf4f702f34e73fd935eb9fea0b847564cda17b21206e71381b8daea5a506863844b4a27cc33613e4d2dee3ec95222ff9252a73db65f84a82a43ba3c6dcd83517dc062fc531969de3453f0b2f4f8f0da86caa999ca4177b4c5c89f79bf8bd9118cac03a505a8d83b2bc3a51b0cd0d7afbd9b8f437cc5db788abf6c987f2f6e0cefa8230ee9cd49a0b227658833582f9f0acdfd1579937bcbac3eeff830f07c5421f0e319c1dcdfb888cfc7e5a79f75dd135e46d49d959bc111f36ba804e246b7640a5435874ba5ff25e47262bcfe78c71a6673c4b8f9d79066d94c36a33b258cc21565d593e64e0d6a5857223a6370146944af7612280e93d6793f73b76402663768ae062c86a33bfc5427ec35b5ca4ed557347250a1dd8c0652e4658fcf2ddeb33924d240d3826668b67db1e0ac4bff88a4990d8e04b4d9f92f49cade9a0e15404b8ec9734759deb1ac030c0101234f51ccbe68ce3fdf4a0ddf783c5d2c84f87f24cd3f710accb5a823ba6c17dbf19afbd332dda9376d91a6f390dc6d76326e9f4b00fb8b0ac481e72f126c8654ac027a1e5a729738340484a85d4fe38db4242142648ce44663f9525ab765563e3ec70879da8962e15c915eed515ff23bce000691e4816f833bf5cc06643e0319bb4271e0163346ecd97417db8a4a68a810058edc8538ffd34b005ed8313e5be200ef5215996ebb1fa42929a0ea90a3f468f432aec6ced3436820fd14f44cab58e7538ea540063830c0d8c55c714bab659d5a329aea8cd6f1e9b56d58b071a96cc14aef3a69b8835f2743c0dffe684951ef4a952db7f64f7baaaa5d638cc8ab40d6a0925c485c54c52b3b38c8cd7a7b6a8c4b37c0b2b090340f497e96a0bd09f41a0d9c8b2bfe2657b1e9db8312ffaf77882b18a2143670b1916868f54d5fc32a1e5a22e0ff558201a295e3e8a7f532196fe1bac0c54e051be11f02c62cf6ff04538d5b92799dab62903fd1562f6484b407889e0825247fa61ad1f89b395fd8294066eb1485d8fd6a4f61a8f0466bfb68458c8ca82dd80c7e669ce33ef18b8e7090411fd01844506712b24f6261718a63464c3f162cf450cb98982c3c1bcc0fe7131016b2fa82713d5edb9b019eb67f930a0121a47c6062e7f62c3381e0e3c521184b79645a579b52c59e9faa171a3ac3b004cd0d4981fc35061ca1b3ee6685750529052d83c38cbae95c91935fc4c6ef16c13e6465df22aeb45d9c1fd1d434dbd030fd04c22f2015cece780b2b8ba6ba992636bf29cd6e1266fec1fe4ebc98b2782272d9686fd8bd8e26bcdfae7fc9d02296626411b6c952e67c2fe17efd6db2bda41848802787eeea24280de285dc5f14299961ba98a6ce0285f2ac6c42cf57f78223e0a97edccb3ab61e838ec896a82b13393f8ab337fe139a3744906f4750dc34fc58a4a383499d5d1488deef1d70e345c7e21182d49e92adb6b57dc886af102c4572081158ef9de0fb7e1fab5e3c2d0980226c78e4633d2697e9fc5fd372a2f0dbfc2d57360e4e94f614918b72bc4e6b138d437a434e29c540846feea5916925ca4597d163f3841d27bb47fc152927fb100f7918342f9626282c17caf6cf8867a55f7fa795c194c13d530446da025b2c8ba6896dcd8afec38c4c682fbb7ab9036a29d96719ad6f856a69d48efdae7e99d43e1501fa4dc4a24038629790aa1df4ae9ff9a35c854279072b740ae0bc68e8c2f60fe3d22940f27874353552a32f4713f990b4c5650f10cc22839979705c2c03d01dcdcc2b007a119f97acbaae1ad7ade89ec75fbeb6b755c526299da41a247f0bb356c3132ae02ac56d4495f0f34abd14ccfbd78c7507f73a68bf9004060ebe0248f3df608c12b7ed76028b2f1b09eb55ee417c09fd6c03d8e4312a6a4640a2e0121a2c85319b7d7d7fd48add38f238a311db12ccd5393c7717f49967c31a951d0bcb646eeef792a21613b0d587850cc36919945f70c0c9713822e8748164ffb08d243c86907725a2ac73615d548b125d4541776b6fcb53550f08f9409075214115c2937f4dbcb091dc76d88cc3ca167cd7ef31e7500d0b2a5450849a814ef242eece08d855010d311421bb99dbeec494e884c55218b8c65acae58dc44b243d2a978fb724f4d57f7be40d9335d5b40bdf3591641f7adcd0a64754b9478c270160b5b4556b8844046f8df216662f04a56b8e69c0ceb91d016547361a893551a51ef9bb936599337d38df1bf0921ab1b39539f61545438f063646901f0e908d9d5b7ad02f9e4ae91b5ad78af57b64b822fc0bbe50b7ccbda4cac616ba4d91d7c1747d0ccb6cb85806131c6ae7625a8fafd6bc7160bba080cf310a0e176f3ba5e6c97b2bd29bef7805ae8218c426a3a0de234762146328715fc7b79fcd173096f514ae3ab4f68b3456d056f3ef40e175d1bcbf760dbfbac3763d19b72d6678ec998cb10e78507407970b5ecd39d02981da15ce0a31a5745530b75642f3b1108d649e773a098e5582745ec1b750ef203c039b406693d7a6d5df9c3534b0117a8d0864ed0f807a577d23f4a6c76dabcfb0e662da83d96a8d2e7c491c30e884911d0d99cd73da796eba2a4f76fdd7e45053465774cb04ff8ec0331c8a8a1283e06aea7b300bf6a4799ed65b06b5e92bbf7b1847d188b91dbfcd3fc3cf3d8032a8672b08e23ce60c72b033e819ea7e7b476cbaff5acabc8f215c234cb89380781da001e165794b2c7955e780364f3ba4975bd51e71ed2af00aaf7fa65ee3ba71b6b8a7e6077b88519dd88b9701a2ea982fc190aef2fbba2503d84d963a67c339423a2c84029d8ac2c439d88272d326b3fff98f06672f84c788e25375b52911c3ca4339b9e4fb8cf74caa689af16984f32496abd38260ec7e7bb99aa300abcbea592213f182c5c25f2a85bb8635b3d0a23c158c0dd3b5dcaaf979470a41dd1f4fec518ff99c3dbcf6befe9e894c6f91510726cfa9c8d639bb08e7c99742c0723a01762589cc31d46530d14e5f3efa88f846b0dc81224131fae04746360a54c6ec89332db20008246eb5ca48ace1c0e71131b4c59fba43d1cdf1496a236241f10cf6bb09305b6c84815173922cdc57cee3a485a86e033a7069ab29aff49c5bd4182ba771d401d222bb1f7488b01afad33c80701d68de941ab641a35aecc018581c4f9eff758be81187c7fcf802f7f56106ded59b1978173c52bbc57309631b3422a38e083ffb09db8baf74c49a63701613264199a8b617f677ec6bf8e4a07c5495b14cceb558be148534748c640d374f5d3c2c4364cfc7cea6b5ea0683bd3b732bcc70d42c147d869c8b8aeb79f0e5bb8adce4976057fd207f9ce6ec9b9e80c40aee0c71bb41f9cf69f44f6a5f4b1cbea62b375f12ee3895b831a98d4104b7b6f3609be00c5691c83dafcadd53a2ca3d6b876a955294806582f1618da1abe9e72a361616ebeca016b816891bcc0ca6134365d05242af57890a97c7bb19257e91c0101dffe8466f406b8abdc21d4de880343b49db33e3b2326cfe64dfbb26cc58127ea96093e1363596df4d9b02410ee8c76a581bd816af6c793ddf34f67391e607811f97833e9060335c9c3136e5689cdee9b58373033023892cd94b0e70116efb68fcffba5ba57448d29e1076a0a2b8762431ea6164b98d8eb5097ec509bc74277c7aaa90cc3e1183695646817d8601de7d6685336b028bb050fc9124b5a8d72d0db81c16dcaf5d46710aed8ec4ba2daabb2f5535a3d0617385ee201a6fab660869ab6ad6f543a14e1af4b4dab51515c6513a35c7ee05e73c2396f3b62920aeaec40cfdcb8e59d940e38da5c821b6e706d42a6411423166017e677c475117ac2981ce05cecea48d813a3c98028fd2bf8bb7d647ddd597fddf78e2c0a6e0707d97671c734e4767c3bddda7fd1af4e882da0d049de953bb63bba68e2bbcdee35167834ebe87ec108e4bafdff8c2d8864c0f65d344d54535028ac800cb95c1639011e0d6e28e13f9ce5b04f1ef5496620314be2636ef413c60b4a6f357dd3e45fc66022c841f9073233dd135c9017a1a7172dab0e1e2b41f88e5605b781f07734456a1be9d8fe4c5a904e7b8c2a72984f853d5d62384a55fee86e4ee094b6ba0400363adc91992df83eba331444e8d5f751e0b3919f039f39672a49abcbc6fa7484b691104800cb328173295572e71651c60a41537b44be7df80e6f144786cf781adcce3257f0fbbe19625cf02dde625a5d0bba9c7ace385cd2768799256c9f459db24ff4764d0b5baecf421f0bfa03f1fe85a42943fee8c76fa82f3708e456bf95a56e29690bfb8584f2d0db1b3a1b30dca0338aaba71efcdfd3af1c20b643ff04aaf6ba6a06ed671ffedd2255101ce96a7ff9660fcc34f62b5babc70e11e1f7bd6e9a8493507d33831859fe360a74829d065f380f57e85720c7f842e686df52ccd02f0a85c993d3cc8969f42924ae745e79314f16ac6e23b398921e1725734dbad56bff7d536f578814b978f77dc01ec5a651766296dab9efe2cf96a7e9a71afbb725b079d73456e1acfd4a0208a07e3d24beaacabcaa53c0ac1a34fccc79fe9bdf0e02581140f268f5d92a2241acb77e262a80de03d059f4828f93e5a90a0887129b059f9929cf17dc575461a70c9efd546bb5a05dce164a4d41cedd056befeefdb88aac1d85bb1f117b853c8285fdb1c879f4e62ec5159b27e10c03fa8d302121f79a6456eb20a067294473fe3357be5fa7e99bde0c3d36b83bf7bc0647eadf19a09eb497576b68946add27111a7e380dd32449da3594df238a512c1944bf012e5ca3081b1a0fad9ff9bcd0a56d7571ff8d17145d4ce682a3563b6e876acf742807266ed8cd4fe89bdef6e03f204c4989a41850212369b84d1b15a366155067e78a2e448b5287af65872890275f9fa488e126f98cd869d4dc69deba30bd653b379e7fcf7e1eca84be9d1674a45ae5813d84a0267de09ec24ba611aa01d03bd0f1829d65e0c07a557852e8028e47e39b7ce79b99069d8a910897465e6afdf82262f7c2e566b145a439a0409e77e5fc91cdec9664b906b4c0e21986333e3288bc03f5900d40e7e7f59561ff9129445988f73faf5b22ba67b800bde103a93a1cf80129e98699144eac520edb1d1b7f579f2ac137f9c9d6552d9042ec6d336f39019354cc9118ad6c607f047a0683d8187bfdb3e1d8fcd611b0b590d040196916684da7a77373c11e67fb8f8e6e3dc8d6646b4c294374871b62a048a603016e4b9b8edfe88c8528b3fab82a2ee831ccb4b38ebab1fe3a568a53861fe4fe7229c6cfb6578ee7ceb24bb22238ba2478f89cabf4872a8e77d60ddc04dfedcdf23f21b513e787ae2557f028c93bd44414cc4cc3f5af9315ba766035e700a269c50292a90e2323498418c2f0638206e45b33bc95d94861c406ec2b394ef0e94237556c5c5bd061d8e8b188a80853a278cc809b7eb15626f33813f3c03329a85a60f7f59c092c35437591fb6bbff84fd16e44b32eea006ff7938d4dffceb645319a69c50c16ae7c64eece07eb45e7d450e6b2bd033f6b3ff3972f8b981a46f59881ffd90eb3ceffd91ebc33cf4f04e8598b2df2dc0938955d6a88a8aa2924896006f53f8e211ee3995fa0dd285f57f6281ca9aa384f1d950401d47179b4bb3374967c60fbf195cbc8f415e44b12699adf6351c2b404266faba871cc71a4c1d7d1474b76fb6d2ee3cba9b6c37a79d16d5360197d1cb92b9774f91105e314017ea8d283c99d26f86562a1e024ca86e869d0e1bf878da9dc291cf049609804ba6de500976583482652f4e31a40e599746779df5ca21a9d140e8eb580d14c1b4ce55ea2ec0c0cbfb28b42f99c1d9f67c3b1de1ef38ab798e8df6cbbee13d7ec331b4768ecd5823ade9d8235ef2a7347c7c62cdc425f69fbaa1361ba6b9db51e4a4fb32de4f9bfcb53ceabdbebc7edf60dedc5687de09476cc7f1ba609ccaccf35ad4cecd04b76d8302de6eea38a15583d27b0fdb6063ae1afec90a69e162ff784a9999c48de8bae2e5cf14a01be7c52311a1b4d98a88bc00771105c2d189b68b36fc3f80c71f5b7471287481845a373b4403e663851a86ae94765709c083f5f17de35cd9387dd8af29869b81e3c7b362bd9598f270622234804cdc4b0b240161c056f0506f05748927bc9424b29f70980fb0f44fed04dc78ecd8388d5f93ec0632c63d83d5364fb8d6d6674e89dce9feb900ab3c5fbb3b3b6e3ce512a18a33ef0f94d09f4362891f94331b1fb9b985f98c8402238cafaa030fc12754eae3ec1a2807b9cac928b9395b758a53109b59926edec95fed250224425c214239a58961e0c3239c6100b7ddd2dbfc86923d4f1da5a8cef0d97c7c031d5d776c68ce9307261c624949d60fa38fc2c3678e76dd1a1074e9d5780ee5468f4997ef064cc47dc2dbc2df4e0c663751dcf0a437df5c8c92ce74af07b4679d2ef24fc6891b9e197f611d79f00f6e9ecec35a80923eb0c0a88f1dddda074d09ae6af550733846c5b21f355510b0501a9b6b6977497cb6517755fb8b51e04deb4a36167d8f15e3866f26df3c52400e4752af2742738b1a53c3cef2a595ce90e9a9526ccf2374678ea680f16d5aafe50ef9104708d7b3e3e601402b74594024fd3c47f1995b315447f9a4a55dfcaae553c7a46ad12985e8b98ad76d605d03efaad3c59a186fd4c1ad5a10cca66998c057aaf6b522d9af6c63c493064061e02d69afb5570b2ebb96acbaf47fa6c4f1f2ad816f66e55d4c03cc490395a69a52c76f1e755e4a5e58b3bdce387942fb40a1c6b937e7194fe200c80e41b159a7cd08293d45c74fc4c56a301a4750c2a03490f0f604c4ff79174c92a30673a0838424579a9256e51c8edfc57da48fa8b8911cb7450970d58711c1e1335e1223c859549a64a88e2fe3c80b1c4945c0592694986daf30a7f53837ce15cd9af4f86e34e1ebc461d0e8829b39782fbfb9cc192c615410bf75eeb5eb32b3a2d5189754d5d44324c00df328a95f96ed9dcd9b9727149805633843bcf7baf81d795dc9187e3a83c9ce921124f381af7aa730db05c9db39907ece45ee55cacd61d1bc339b53f1e4a0c0316f63374f2e94c836970c0c5a19fd38a00cf1d992921ea7b83e9f08e776bb4a936d8fda2c992f246b93f6993ce0aca74e16c129c0add042d1b1f63af40db6bd4ce410fc5a0e6d78c49b20c99ca23078120e94f91d0abf3ae687f49e2376ddfd19ab7e89f6a90d3419a284d28ddc465ab38ad74b52a9c7b8a5705bf85a0bd30ad28ea3127a05e050f7c61236b84ad139fea204a6615eb73d16f67d00d395a93860159b3f2695532003ae4821dcb430912b02282f6015079519b3175e34ca36b00bfc6b35ac47652c05ad4777f2e136fdca99c01cee569ee23ad10d4a9f72a5d7320e40147ca53add4220387fe6f500809599349efd19927569e7626449c37c3d43be12956575ee80ea7f61782c5de9d8f437eb0dd52e9e0b960bb8f262baf131793095afd8962fd5e11724e7e5ced32b2f314712545b95518eebee8a361ef0ce6d2d7757765120e012f965ba96f3d91c407120f8aa9e62a289dcb34f8b625b8107214a217c1dd0f039996e8615a6dc60dcd50524d953a593e691f8a9b8383ecbef64a21badf26274d757cbf3c10bce34e26c472b8aabb66fefef3f1ef7968c14a12265da55bda4436a89d0e4e5260ca44292e7a6e6acdf3c4cbf70067a7f07b3579f04d6cc4e14885d6f12a261ec0496a1446fbac2300d183846191358f7edc5514ab743345cb1f31ea0898e4962704cdc0b2528d5d6394147daeef42f056e686cbe66d296ff1beb12bddddfca1ed7fdeca2634d8b5575bbff3df100e7a379dff9f585d4d6bde9ab9414725f060720ae921b28d39f90b2ae87ce2fbf4487a2bab8fcf8273a3f4ec68b4f869f9a7bead491cabae6f585435653c079058d2742d8ff1f5f2f87604883c1c7dd12d1d9e9bdc327b2673de326286e37586e3ff03ad48d387641188bc8eeb3fff16da6e6bb3923cb293a5a9922004c729a19aa1ce048564624879163e3dfc28d81d0bed24eb15641e660526c6b7dd0be3b21196f47d311576734d89422a3ed4f96546263ff9c355f62aa08d397edbbb9d098c13c7c035bb38bc23893539c18e22dc993d8e3c8da479d76313f1997937a41225c925836bc165341493a5c9d0829336b5dfbda7df06e0846c1adc4d2efb13b8da35ce603f589644b4cd9cd6d5fe4a23ba4cb3d793ed5dda86054849feebee01930481a496efd6cee9b3b049ead368aaee9c42976a776ab8f00ea319ced30aaa7abd7f8e0472a8e500a887c2df4c13cf49d4b503d61842dce0bcc37ff8fa3dd023b45189b91118bfcce8ac6f094224138973d1b5ffa5a68b3e66bc93f4fccce9b8b8f29c7055ef097e0c83e39cb6750e70fc4f95a53c4acc78782b284134b7d65e265b7a7460c2f1bf7aa344f64d9c5932593d34be184fc20c5bf18c6e879f463a673e3d0e8b367c2f7432bc3690b048738d0e03314c9ad4886cb9f5fe79d0a60b9ea380bf002acac0dfc4200d9e2917a796dca3a6d0ec5310f6e5ac82d9a22632e290ff3f9d9c164958f36ef00017a689fe1686a8ec1fb25794c5fcf58d82156c32720ea6c94b2a9e06e0b5a4d1a7f998c2e97275fbf2e538d5a30de5a9d91bbd4865a315139abe8614d606e255e4fe5c317d211eb37a3542a2a3c4dd38822842a2dfa490df9e697199122662af5624f02fb0f561d65f913e8cdf26b1d39702bebd7b091825c223640395fdb4c66ff7db11c6302b2efb2a2a0d2bcf77b2627de292d4cac2c5d67778486bc45f3845102a791704d80b12db6ac25aefb09e8f81f17996f9e87c33bab89c22689f5a408517bba9913f4d1fb175c54ffc18957b33a7ba1c4be77517bd8d578abef12486adb12811540855124f60cbac22b734b61bb8d1f88349876a5a7f45a70f9ab21386a74c89de17cdc6eff39ffeaa1ef1d0d05389d7c05f55b247b373eac0a76f4048d6ec27277681bc21d879e92ff6216eba85bf959b74368a217fd97eabf53e5f64d6f9eef6b0f7b1b6c6ae89138986dc283638ce560a8b8fe2786cef3d6dba94b60321718a8ddf49f42cda438e45c245d2575c86c16945e9cba7c18568058a9523e49bae02919b593499305ed02aff083263a7cd265e55132abc6f61f3facc842ddb9832915d12feff6a5a4bc6730d4a27ae9f163d5304f8e0cc681c73e4bf6ca53ce347ed2a87dce1744c5c3731d4554a02c67332c94e3524150d6ae1787d9a7dc8be71130b465b9723b6e294c482b7a93a703b8a5044c56604bed09eaf67ca1d77b97117278196a3d0d1662a4f5e836a128c21c0450cbcf0ce2eb01b0fd5181988c53f6a0fd58f8763db4ff65cbdd81a3131d30a5b8a52343a3c5a0d6d7eaaf2641dc2b228cf93bd997aa573060bb93951266482a1abb07f2e2622b8cbcd427f415b557df513ccb43bddcdeb9db64ee18718dedcaaed3727b0e2b8c0dfab31572ca6b7b1bf7acf3044ea40d25e08772b4a9f4e1c47a490e4bc3fe3b638d0dc6691cecf3a937e73b796218f4034b3c95963036586a7525bed64c524a11e8a56080979a854858ed3ee91a6dd0fe2d08b95098607792f8cb4da3583bfee5362ab046019031c4baddefa16cf14e3ee308b86f5209a2973fd38e4860fa5d38556b91eb24b8e221f4a3aad1dbbd80334826883dca7922f411451885751639feae82b38ee3fb1f2ff9b4ed452b5ac6fc88fc63a2b5c5290a7359433ce275d2e93946e8fabc723b7b845dfb4a49c0a78654936e9d782c4c5061d410d3c150a382ca4d0f95d847de11bfe329cb2c6da79b988660092b8c97d81d29dc8b616353ea847ca82e1e638d5d8882c200362278e24aedb72acdc374a13da4f7254ccf995771d9bb5026b66a0e8ed238ecf8a1996f61f9d3f979206640566fb830a030cb18d4f2f05114e32ce32e9d01f36ad9956982bf11099727b05135f3767d84e2ff63302c675de467886ca85cdb7279602e6bdbb8cb38dfbd6a74c74ece6b814a63fea64b33228de78ec7efd20fe4dbb8de5c651c73335ee99b7cf6885d9eba771af681ad2e30656b7751779ad204032f4e8c95c8a1b1746077ad42bd677f9d86b6a33592158d90dfe11abc89b48a2de60bd18594ab7d711ffdaff4badc9c612c276462679bd201b4a808175fe285e40b7df82fcab89ad2e3d722650fd110fa0af4fd4f127f8eddf404d049f443d33030eec79ebe0e35c2725070db9f48c8e837307e5f02f0f0465e500c18012e8f0d2371f04a25d1da88bb2d06afd6df54bebe24a2240f6f4ef028fafc594aea612fae264ea2bd3ece3734316dd2523467175615d36f7617fd49fd2734a320c690cd10de459dfbd10c4240c1312bd17aeb2d7368d4dcb12d1d9c5b6996f3fa6a27f3882505c8216a5a63b18637fc1552e34114de95dd238754435e570658610974781f0d8488ce2b23e5091d913577fd04727794db66e577ae15147e76cc2c1ba7404d1bc1172b4e2f553b318da7fe0761bbf3af7e5953ed32d7041ff63ef202f960a3650368e4f8aef2b48e01123ee3d18ddc7d477b222a4ff0639cff1e31922d0e59c2e9dd5bd3bd8fc27bfdebab1c4f32056bcbc8d7a3a419106c74a37b9e223cd890893e9164484ea96133c22298fe13a8a205da246c351387fbe4a6869574f23ac7d6718bfb096945ad3cd07331e59383a43d389780442986f2ea4defbb2e0ebf6cd1572ed6cd3544bc1876d87e7fdce89cdcfe0e6fc0e882141c9e043ddda8f323b693991fe3d466ac127d51421bad7b4f0551446b1d25f57af7ecd633988375853699ed12c4e722358713781600ef0ab073db524c8aee99cfc520529736abac72648eaca0555b01cabc3f86966293367af9e84675e9ef0d2c0d8d2ed344bf58a1fb4d5ff1f07da75a1649aa4dfc0479ef6952c901bf355c69ec15bac91fd35c6d55185e98a2d040621361d4996cff210c88f2248d2400445d36316903205b8aad3274b213662f3eba587124d7c59026ac709f733067598c871b7fe6f8bd6574c1a0590cc3296864c9665f2454b47e57f2acb06cbb42304319d0d9001af63b068546bb19f4140329a4c256439f3646867d047779a20c4ca408c37badbd2d4b0a2306fcd93063c13a3a43975f4da489c587db49bcbeaf33b04333be1ce9e592dd7002221c5e3c5571f77a084ad4657205c4689af9ed9b281dfe9abf24640a1398bc289129af8abf5eb2c2a9817d42f35f3109bd1de8be7d2b18cc0fa1c08740b03ae566f9683be30693f9e9cf672a1bed444d6ff27180e1ca903a36c59ae1a9c387ab84f6251809fba25b7f56e8701799d5b61ee6e187939c0a3ff091cad6e38798d730653e22bdf5f765f721d6e3112f64e1d34388fb0470dc27deacc52aeec6a7846d09ced049005143c0e4c53a9c7155c8d6a9e390be062165a928e87f2d710e85e54cfd2a90463c130a1fb2eb47c2da1b8c6a04f653412cb2139fb1c7afd41ecb818373c285a54ffe5f683afb6b0b81c04dfcb63bb9d5cd294cd2698c1f792471707e831d5bec9400932392e3ecbb7d2e9c677b13d4447a5b5fc59beaacc14eb568c6e79a0aba12fe78f678ea33a814612c0e471437417fa1375e1366b1f8708f4f3172749243054a5c8720f8857123d42e27643b7892561ab0005df1c4f9fb99ed5341ea13dc13c3c79eef268251b6d45cffb8bea0e6390fc11c42267debbbb94c6da52fc6bf17b9087f129303a83dad4526fb9748ff96cdd4f75f6296fd7247598259541134823c8ca4a58fbf42d45fa279d047a60c20cc0289a97ea54e2624b484e9c8e20303353fee1efbb56151399c91d0007d2b9f8e512d0c9737b852df91f6549bf85b37865a14286ad76c612ce69e073be574bc7b203609d7aad69e880eb792754613aeb6ef260a4dcd9c74c8b4b77bd427ab4c23a96f8503acb83d3708ceed33ba873f0b4969db13b7c2912ae6a3c3cad0559e87e0640fbc80e1210791230c4e46449b3a4fc5a37f27b861073284c11b4840d62c422853cb4614a0722267077ede2232798625f19b72f03eccc3ba61222997324301ed1b3b20e0d198098ad2196ead04cb356d3cdc7c4119c4ccb863d44a856b590ebe1b87051f633fad20407ff45bbddcdf63d1869280b3570afcac4fd0004a1488e457ab4700fae2608c16cfd4546e3119d0055569d1769e8ce7047eed31ac2f5d57673c657e01f2211c3e81d64d78a3fe1fcf43a4301ab67f83b3d6c86122d14c6938bedc7ea5b03ead7e8f873594ee43468e358813f52c35a467516530628ecd104053871eebe5e50affe9d10a954cb90a46889c06f3ebcf9b28e0165fd4c175af1494c8b77b8ad54af68c3347d655fc5f4626845cc9e19327ebf0cd3303e47e4d752c98601a3124e21d4999ddfc5096fcf3fe8e2531cfbe6da1173c8f89ca6ca861b1d36dd88733a3c86fce869cbd53c4e8c8b78dfd88cd43089b516fdca55dbf571b9bc68664f8cca62892aa916f555b4cee933933a120a7fd9d04563ccdf7920106933f5cb01e9d26b18f11e1fd9468677fcec2f3634c5fa72ebeef7da144bdb90a97e60e8e7a1252dda1ffb1b5a64a427beca573b07e84995f35750eab4bce09fc0d629848650a00813132d3400bac7cb2a749a81a855615a2fc49d07e42b10712897b091c65598517fe831fe62133794e37c4914ac140d472bd629b77aa562ddd8fdb7c4f07acf90c9ffa9b9767154a98d41831a9eef13439143ce823c8baf8ab43bfb865711823770d8b3fab2a01888cf83752b7db94308532b7d6d40c18c38855dd4fae2594e9752031498608dde794c2740da2377f421d76eb23ca97e1f5f4389916f53954f6e90331d38021a1ad26bb9a548ab1b71682efb42150c007467da5bb622fb387e90b544997427c8be9fdcec222d21333509805752a0cb9584a0b26b883053b29f783898702ba3d2633835f02a7b48d7019cf464276f40398c13a272ad693525f9e2e6c241a79099c5a062e343199aa7a186c093b8f075a25bfdcf197afd3295a93532c28759ac3cad068b707217767f919761b643a110a156708740a954fdb9192dd61669b24c097ceec6fa8d616df4b2a5feca0109060ff48396f56f5cbf7b76aaad8f1b7f29e35979548a9dfd9146e214ff14a3c5edbf1c5045ed96d59328784fd672f7a3ca992d4e6a42fb58957ae17740131d6f0320a579d716fee9e2572e3d7c7c4f7e050c8a3d82f9267bf57b1ba2e9065274f66b5818b10150db00cba427d75d35a96fee65819259af5de16bb67a1bc677ef91d89e8786ab72dfaa76d9b882a81fb7be5a00970f49b6d265773d2cb10d3e60bc72fce8ec21f19e160b654bb58f8f9bfb087f5a7f091dbc048aa50bbb07d7c74cb2e11e54b5a0320df2405ae49d4726effc96f85151ee6eb7c9767c061972fc31265c78c183aa8bdfc93ef6e95e7f4c07224411d32793d3634a925344709ffb6921f4b6302cd00433daccee0edbe47cd6a39ca29b5aaab834c29c7da260694ac823f362d74584ceed4f87154daed6ca4e07f1422a735c7534d2f2afe65f656bfd209495a3e52825617ab3bde5f8bb55fb8c3ff9b35265aed3b956e14229802d10646765d6e37912f9c64ac464ac131732822c7fa6b3cfd0db0d2c8ccf87176aa01a57059c277773075dd8ab9afe6ca6d0fbdaa1b9b3aa5bbaadd0efd767c4146c33b3669d6cbb6ad556eee06b03a89b51109c53b9e28f861c5298c9f083df6d0cbefc7604ff35a0f5678467e48eef5a4d1a506dce0bf5996439f30fce7932735f92ff2b387f0d3c529e44de8c6ac212042c4f2a2653e10a09a7978550d6bc3dffd54244d0ba6b2a202c278c4026d28b9bc11fb30c6932b9216e225ab5411736b4c2d127163306249db8ebf4ebe76be07ca95d369200e271eeb958c5fb572e5846cdd0e115a200d0052418347e96452abc2d5188ed1c5b50614a5e75eec98febbfa8ac5396bb67637d9c6f65cd0c7422bc0c7e7ddfbe47e9d36bc56eceb66051ffd68ec6f5d8291c7f38e32bedbc9906a0769c3afb4c4d097d56c5459e59d3b339af575e30e88b6f93b65beac0036d5e6223c7150f39cfaeeaac1044d60c5e02155d59b3a791550fa166949459b16eb40294db6e6b0f855ed4afc83acefc6c99d620b0d019bf1f86aa13cc1156022f7a2bee78d80897a6f1dd7acaa3461e04dda172c9300031215a81dd1348b56395ec823f413a366014934ff25d4db558aabd6a339740148a93c7773db6e6e63dfbb87822242933987e92c193e3803ebf76f70cfab64f191d3d42e3cfee0197db692f6c341d1ea435e2cff944934ea476e4699ebfc6312d7e5f310cafae002ad727a7bfb4da28357d7659695c1c204dfd3866d213afbcff1ef456a579b7ff2bf1e88d4df8928a873ecfcbacb3cbea0ce49f35fb00e6abba2191fc0216f0ddb568d49f904fea3c74fc7d1c2db6165a087876d0e8c819d32b9a20b019eebb71bc5d1f2f05864e13769c52f180a7074d578a4250d043afd2ea7505f4be84110633250c662b49f75bc4861af3db9029b2ec48bfc4c963fb65deee0c18f4d4223ed20db1cc11ddcbc488d0500539afe2cc3d92501e6ac516a25d5d482a6457f498cc8f159c263e4fb37445669314f317c051341331b9649872af4c5cc29ffe2dcac6eab958b2b0166e867e7cae6a1d0753011ba5b240b98592650e5068cbd2b6e7776f77909f8d4d65b56a268a8052eecc2c3cce2999fc63783220a5c3d41d898586e498f9f86527b6a8cbe7fbdf8426b3949771b93879dfb856b9b668b3aa8b73b1f251b822567dbb8f4387e3f26784dccd6971cc0b38fdd1f363734e5dd99ca61af4afa45439bc86d9f0ca9da879dd2f8b6ff2df59c78dab29c88510cc14b194fe024596c0b448b0de7a98f286fdb9a4226a1fafce9c44292cbfbbfc17470fd6e5fdd2adddad9215605b30c36cdc774573834237c330d171d3973a52b9dd642fbfcb77a57a6ec16bea7fb4d9078f53cde2eb8f213aede723bdb5afe117e7783779438194bd9851915f7aacd9b005d5e4042200060c024f0f58892c82baab0ec9c673453b8c4d43e82364edb4c049c6b6b6e2f385d3592d936d8e353476c0612b4bd507a4dcdc5221f88020b58c06597a6cebd0dce7fe87e0bc7c3ecb16c68501ddbf3963cd03baa24c1d01c3c952fd047c892fa4d32fa278ac3bea72be457f191eb5ce725ba9f08c25787ff5d9e0cde7ecaabd671bca8b5206592323cbe09b7003fa3a70e5356a43a0a00c40c3151b3fae31cc54f95bf9361028db3ed16dd9e449c8dc091c319f9446967611519b6608d356580da9af8aa1d21566d4ee37b22fdbc0674081be2a6ca8dfc2fef690249381753c2f7a641dbd89197e05e496847e9bc5858f2b346962e346b3c0f757ba88e3cfabc5e47a175ccbf6122579cbb5eca9c0302516c485af06622d93d0d33da13b898703e0e0152565cce5ff9e72732ab746c9a1cde6c2b490460d7efe3eb0fcf6fb9ca8246b19cf9e34167f1eb28dd2f59fea2491075ce59f2ae71f024682f130cb5ea89701892f1bd6882700fdda96d16df9d8b87179f361a5782afb7cb7ea582af7671732bd6e95eb56ec5d5433e15a126f4f0f144d0db93c34b021e7eb55f789eb0a6b72b0a19eb03d163c17bed4605086324fac7e2dcc1590765ca261db1345b90dfdb8cf64f1d1187afb377c8bcb3a48ce3105aa101cfba7a74e8825501e8dc6681f486290fcbd39ed579b6243b5ceba23e7b063a8c80c5fe7c1b72cd02b152ac42d1f1bb66e80b51efff519eab136665e5455e5dbc361f042e72e687366acb39ce0326239afbced4fe698b8e68a6572b363738f8b8e8d81f807ff759fa99e1e514c5e20b1ea9c40dcfa48cbf01ac110fcb903e4cf93e60c8b6299ceb556f702abe02e841bfbf863421026ce7f11908ca935242bdea658318cbc2318dbc0d52b46260d2c80d6cfb4e252d9dc84fd48d28c42078e8d6a0eb05aeed9292fea81928babef14d0289a9749cbcdaf0add519e359d18344f775137d8f98f354c9851bf274c0d7d59e9ea84eb07413d5643b1539467bd24c870acfab851bcd4efabaf4e75b9a39635f6355519f16a5472710877079ce4d9d1f2065046580eadd5d2c6ae84ec926a19217ece7247a3be4ae2695d6c60b1a429843fbf3c6c97239ae7660d991c06d29ef49b76b8f24056efb495a8f2c1661d64b28139476d46a0376e55e975283851fccc487da6b506dba9eebee70c784147e02eb4457d21d721a6eed01a600bc891b76ede30e14e2a0353036882af40ee3239546a47ba4f5172532ec02b393bfdfdf3eaeed28cb4c24be78f956753a412945fd6b80aa546062d80f858da3f1b5f4b2395efd7ae97397ce0946f655fd1d05ea530b06264b7dc18ff2c49e44eb4e85ae3ad39d61e7b024cfc2f7a00c978e5aeaa9eb6db3198f99509207e14937c0a1711e3761f50903beee16edbe8ffcef0227545991d00ee597446df4930ff119d72e72a6a928114d0278eade16241045836604e4810d64a1c43285dbcbe955e0589340ba8415afd2cb5830c4fab21963839e819234586e366dc0f25d05ff021d164f07640df1447be3e5dae012004cb163397d25219aab5f7f3df2e27446291ff634adc3af769a75a255cfa8e6dbe87814bca6d2707a30dbf8fd2063471bbdae3c959f24d685e24c0dc043a5b2e1125b8c5dc12a6938b8c00cddecfacc8319a57ee8db8117e5aad378a6164903c469f2d7ccb0ae5b919252ffd5e34fbff4349467dadfaa40d604dc89597a5a469c8147d6cfa41519d92673d2d708b397f79056b22bf86637c603b2235963d443c1466e310a0d3c6cbf5ebc1f18478ee4384c482ef2acca99f54fdeaf787af8cd66fc3e3fd6845c44daeef863c451c10c262542e248f41e9e7e7042ec092d82eec7970598b0701b2fdd9c72b4ce55c60d5af175cc6cfd5f93e0496c62f678b2bc4789ad1bcf0f06170b10596aba5ae988b63ba8f97994a13f1f570d3d5e7ac7c3919f3ac7441a5772d9798a2342fca2bb4407f1b1dc8b10ff6979541b2b8c52d7b5a02df2d84c8aaa89c22d2d97c42c96217f18df960009bd803ede22f1b6af932a8c87650c62701a7b688b74633413bdf6b3fab79ba23ef19598a42e64fdd10b155a14e41970fd3bca80f177019b0451732f54ffc2104d93ae8a45ef8743ce3bc629b049635e159809b500ae8c9ae314890a97e3bc0d9bc29e46dfa7252bd10c01531dad22f1db7c43d14e82cc7dde882efd82f92ecf661ce8dade43c371ba62db9ba70f42f8b3463bf64be0958ee618bd725b8c36b5cde5bdf39635c36da3f6c8316db4a643b297800f21800de0d60404cdb22937e71706309af6a22a2560e16548b7a1aeb2c71bde1169b2a3b2e8c58685fa78cbd4a80913bba2d6375bd4ddaae4d00ce3c86e2ace47902123eb098b148edfcac57fca2b4831e0c3cc65c5fc0b6489b06653093dbe50000be9267ba84ff222450988a717e458025d6c3017eaffaa416522f94ac1e6a55b1dddd6e608c8737ab31a9723a4f4831d5fed679d6614563bc8c2832978366dc96d17dac7da1d020aa891b8c6780254a8004410fb73bd8624bf75b0c3d28099ae50bbbc395da4d7d338f74f9f749cf000213fce2fd5d4ea6848a01930be06c67a8e490fdbcf89a21764574519d3ff20463534a6306157c4765a0ecec71f75ed610e20e84e955fdc2f8a750f8e326403ba8fd9bf28225ef030b9c0a5bf0e93918ef0a23e7323f1709a497f86ddfaacd4e661c73f47b9e276b8d2fb145de3e5da18f5991f59aa30b1eb3a5aeea08aa62a838dfe57e01bb62e396d08d085dca7b6369273496493dafe6796a237d57e21fb9c1c6c1777ce98c60559a8953c518f33becf8dad0bfe797418b58dd45f2f78209d8636b07c025fb06a24d2c4aaf6aa9d2f187ddd35220b838df3156d123511a789e27236b5bd6c2de72112e3d585ca35c19f8b9214664ab066c98917a50d81f045abe3fb0a6b3405714e1d3daea3021ab7399a8fb46cc594eddf0379401472b2c16d8a64752bd40445110f14cb1055a8e52e24f44f54ad77ab7a420d082d11ba9b072eedfbf84fe067b59dcb15d375ea54159fc41d58d5ebaeea28d70da0978550021259f218cdf007d2a890f3a9b3fb9339e5adef66fdb4eeff1ccfd177ce4b5b39faf1e8cd7ebc2ef0e0f6d872baeeb83bccddc0d30472eaa50cef4f44cd7599ab48389541bc4e696e3f73826485224b57a9865512b7532045ce09612708a223bd57df1eeb09838a8d533e33fa5f29c915d9713955b1b92b2b17ac8712ff52d7d99216334596a6acc3fcc3fa120659d0fdb279807b6e6393811442fc3908c2f89a65e7000d091abdab7980ee085f7298003a6698a8c23dfc6d62ac4344d99aa3ab7d694bac56adf696e4b57fe37e0210967e2ede8b0c85e3973033e2e6cd0bc773e50a4b231dee26107d7837b1cd6519681fe9589faaa0f61b7e29d752cac7e0173dd527d8ed5ecc31c10ffe2a5942ca7cc026c736995fe9007f8021fb0164a29cd2482c69f4f3ba8a7fa0258e865a4bc491f4b354e4e7317056226ae9bc754607c6e1f7d649be94e03f5dd81347b45e0a186eba958ee2ef5596f25470ab9559ad6f8c37417e51e68b1b773e131fe7bf91acf36c480f78d9c3e50ec0b680f6140f1d0f55c871bd858a127e9add81b7522945bed62260571044e5327d553c3ee09d135dde6cfb5cb561e101d113d02cfa6c85295a5ebcbd2d0a6d5cf7f937f445d83e5ff1a41244e4de08b2162b85b88e95be019817e36d3d37574ea729137a3ffa9f529d365ed847bdad14466942a6ee1bea8e7db0f45866267c92e68cc459e1616af0da79626a8c742a4a69616cc0041f6f125f5436ac6132014b9464b60bdbf114fb63e25461cd503f637af8b1675a545e601d090c9a793e6472f473ceec11ec88272560f1999d734dc0db944c74a7ec9a9d6e2a12b1472bbd78856340bdb747b36c8c2d4cd3dadb351e6e9b17f2d4132c7c984bbb7ae4e8642e2d7868f3e863f3a4444b1ee4d80edfee0d29986b5c8464fb7ab5dd17f95d3d9be93d65f4959d12708a1cc87d9dbd7c9435e140a8942ab5d37489d07b963adc38d9146a57b7e1f8dda73458a6b38faa4ea6b6a1e426984a88cb557db39fa3448c7eaa822bf31fa4912d93f46e0e34298de1ffced7c3375cd68b443661d5447b6bc1162804860e4339644e13f3090f1345e924c147f5f6b2bf89beb4cfdf0b7f269d825d642ad2ba3880ae97be33c9494966e2f4777a63cadb67285d1a86a1620378369a22c13bd1cc675789e1e00f11dad1855c7cba961177ecbfad9523f90f72d6512558de68a0ec6bc62294c5f2440387a8c6b7bfa67914410b5e6c31cb77a0a19375aeb62384b2e7979b5b4e87074085a38c4fed84da7a98d029379fa32178f40a2bc103bf7668bf6555e491ad0c9ab7783a11e5c1395bd32c1215561378d8d66e5befcc55cc0ee8967bbc009468d5bcdb8e8defd0e4b4230957553dd2cf4d5707e839b43288d935a9760fd4a1fec80ceed935a990198f82ad2ac3774a9cd3064b98fafbcfdb6650f62ec7b96f2f23b592eae7d0202f4ac5b746a542913131a463bdf218425f30915a833c758196595468ef9da7681da2281fd38a8d398b57851edfc0b4fa4a5e0f0eb37fe276b23a07c40f905102aec5e1e13c380b2642e162e7cb939100b74e0db9ce815297bab438503f5733783e73b50eb8e25789bf7982dc4052dc28be0858200d3194a094ba4ea941d5d0acae89d601bf08cfe0c7a757a3e1d673f91c89419aebff6966f0bfa4d42c0b8ce3d99204f8cee14933d12c477709f9bf6d2b381928bded7400b10ba0493d152336924b3743ad42945beabaeec2b6e16a1d75be2ddd125b113d5071e4a9f8ca74e6f1203473caf7a2c5764ca034ce864aa20b3e3430a8afd1c9a40afb4ffe98c7c2ed78109acf176cb389e76e44c1dc4c82695265092b6f91faea6d45c96cc161b4078849bfe8131305855ad35142d45967ed34a4745644d8bb7b27cb0ad709510e5d8880f2780dd87aa1f37b4e1c9763e2573a13c67117e5829eda791b6be0d574a5900023d40b18844edab29a1b61ce8f13c5601bb64e792e1a1a7916f3e544dfdd70da457873d4f36ab1dbd3d607f4a7e7bbb74c90e6ebabdb0ec88d01589eeba594a5d8fe6344f3219813cbbb33d627dab5c62dcf585e9f446616fb13d00c86307dcd981f3df1746e797a77700f5b815ae00e5949dd6e95721e8aaf6d61dcbb01908655f0701caf2e3d86e1ad93bedc3e139f285905a0e47cb33dc293bb39942ffc95145e5621230700e2687819993557f13cfd0b3aec292fbc3bfd47bed10009bcfb056341bea226ca3a047788e060617fc7047abfd070ae4001e8c13ed15bf2bfa69582288123135f0e7e03f083a5fe663351902d7ac305d1088032c5dafb6109314d02d65349fa53fc375351a66e1b3de9dcfb66ad267ad600b278bf22899bb557b50ff12966cadce5c34d71f57c1044d4765e5c5950fdc65b1bedf118163a91304fd7f93329c1a44c7201898b4d5e84a69fe3a4421cb6744cff9b8122b6b4785841dcb5a8512e52487a5a1cb0604f93aac17a387a9c5888b69dfbddfe4480c48760280e692da5bc2e489beae244082b9ea78c19ab8c391b1c0946e9aebf7080ad3c1dee0ae1396aaa1c999a23afc763f9f17e31d7c62b70a81d08e7c725e624f4c605934a59b01578adf77a1327c9cf12b21c12f0824d6f9cfd691257d888497a6bb543d2523cc685c56ab1d567d5d85cc8436f0bd4985c606633bfee037bf4aeb8c4862491464e9babf59b04bf52c190fdbc9b0b7d6def6f1f81dd0202868b22a1f3a5d65cb965ec82eb04af26a66534ad949f2a32b081e28fe9ca229e9524b720ac09d9b79cb253bffa5515f55d6f4352a74e7e697dbfde03e1454fad584e533d4ef6dc771c466aa35bc5ce821b307626443307da519ee50ed7057ef1fc46bfef697f940da76e8cb1f1cd68b67d2d8dd049ff888a1d2fa64aa74bd92617b0d9420f66070cdcf1389548279a4a15b4fae8ac36707580cb547359f7b846e89d027c7848cdbd9c590c2935861beafa1af1f23e0d8fc39ed733703b22b5e20ce882ebb720cb05e89065367a84b54cc7f4bcacf25916a1495df564ebd111969a26117926e5745c9a1b1465e84dc2f0a7824933ba548daf39029a797d9eadc85f89c1ba9977f8dc40e4952701414bd34ff0f1e708800cf64dc4f3695162e40e1584a40c6f7b58236f8f61b90e89329ee0febbd0c8db7a79cf4966eb42eddfd8ea468820e1e5f64a822ef34b7058c36a5a9eafb1b77b4afe1b6ba975f41f9f474e853014942758a3115d2b238562934c14b7112ee2659774fac6f3354f0bd86ad53ac95cbef5cc8b2769c12fe0958e320b78c43f8b3786bf91eadf9bd60920cc5b4c231ce90732ce3af1f893df6b95f1a62fc85abaa3cfe91cc9f3f63ad4ad36339af38d0f2f5793dcf5b6aaedfb9d4879942a33bebe41d2b8d36e23a60022090c2def5457b7464a40378ae5b9b11c6d2a3803b9ebec5ca71ed7fad5b147e2372409974e59f3dccbd1d20d96e13e67ce81ddbbdea8b367a20029e2f397a9a70b5e674186ef37182da79a1621674472d8dd5fca5f4f702610e61c2c41cf3b9bbaaf0be1f66e04838a57af2b01d56b5c5a5b04f12860fff8e9543dfd616a27975b4dafa1d38fb109829681cc8baceaca51ae804561a0fe51d974fc2fc0060b65277f6b13327801483214618cbba7c115d5d5cdaa3d30cce915c4461a38145dff77b95b993c2cb91e7c7962bf50a4355e437bf8eb9047cfd088101a294fd09a4acd4dab35ad1262d73c7b25fcb25652ffe52632c841f0465b0732b9bf415479abb85fc37a965fea9579d57fc527f6ba4de3b30081caaed297c644f64d064308520d1a7dc3095119e9b7e4ba38af8d4ec05480fcff9fd6af01e87e5f03e135796a87aefc8718c6ff52329bff0fa2a0b5b0db29faa7c6ff9d0757455d77b5e28b1df11f88a8a4b75fc5615aa59511e906707eaf10a83df83c891f21efb849f8c7f41b750995ddb4c72b5e0531c60c8a79950b2f033855833400fceebdbec133cb26a1b65f1267024a7ad0df5c39aaac3270bfd5846fd9a75c660267915fbc3630b6935368453bbeaa87e355a855c0a7cf97cb1df596e28394c3ac693cba6d91cd9ee9c48ffd8c63a2dafe8d548d5717d1dd94ea158d57bd76957fdf72baf3a7642442074d751b7e1ca06161624344dafc362d2f777aacc24c5c72e27324e813855213a57adfe678e2d10ef8df2292187b3cf6d2140ed61126994f1f179da4f0db8d0b80724bb2beab433a0de877c2b84891386bcf2424d5319b71f153f16ad0fc8d0077a0b56b6d14b46bb37f65562ec989a97079270c6ccaed869eee3a67cf10df5581baecec56778b7e3db9b2478bd2d9a7e814ce8eccd9b0415c6148a063884aa79639089587c8cedbb73bdd5ee44fb27a795b357f6bba2a24f8ca504e7d3de2bff2e4077ab679ccbd95ddba230d94b200b44353ddc9235dfb949b9419c2ee42c030a30d5d019b560c8d4205e779b24d7e47b45db080828ec85c747341c6492af336a4d4df3fa0a5a76f31f4bb0e798184ba8ed551c7275ed7ba763faf71d840bcd4a5f57761ee4ed2e9ee5cddd09ceeeee4e2c075fc6445fd21c666e9ffada5f82af95388d70ae18c69d4705ec8efe6d00ba0a3d4ebe6b9d66d0d11f0716f9837c59d6ad799fb458fc8d7f03f7e0f29fe2672837e8f129a88d3600a1ef9d4d6d6923429fc283c39207461341076d2d6293ca9c4e31090495dfa17ecb8b2df5e7ee8f58826a34866f9334e7fece218cb9da272b06ffaa83c6eb72b5e82afa74a3297964d557f1e317be8dd0148cf70011989cf0da85c3ba89fba4fc850a1d41ee07eef8c46337d935e23c3a6522112d21cf9629c3e368cbcc549023e119b52b8ca015383bd2e1e0040078a462a6dc02724633573da0ef8deb1bb5686a49802c5069e7b586dc4a88f038e2b37bc1b995d34aa3422303155b91f89d31e95b9f8e3720f710c39ca5699b0ca8599bf08cf1258446e83e380940b464a7f92bd57f034da322f012a1903553364a261d576ebfd7af4af760648f88d90daf467308724333a1ed1476f116621889e5847de4158f5d7966ff1a766b98bd6a0cc77b67a3a7e2d4f1ded382ce655869155692f9cfbaedf2ce2b778c701beac7394c43be8ce01c1dcdf8e340902bf548023883f9698d62fec8dda300091375e7513ed0fa2ebd0fd839b1263b17d817f6da66c55b453c3d2ce1e91db7bf8b508e89d73b83eca2d55ddd0635046cff446e20565077c41e64de44551257b9763a16e84a8e523f13bb9b08970359696a20c0f23fedbf61b930716318abe175ddcd0614e9db641e5e76b3babbac81e7df1c254fe7ec38bd3fbc059129fca527fa6a9794f8e1c0f2608ddec8aebab4acf8d65a0efaedd4a5c26fba786df350bbffee2db820aea8e216f34a93704d06bc7bdc267b422418c883b6c6f920c1bbdcedef84cd37315eac1536bac01a5cf5d3af902c09053569e6eb53f9f5d0e5d221c548ed1336dfdc2cae68b369120110af1bfab93ffe71f2d26a4d6983c8e95d3ad5349c7d43f28699650576fbb0386097ece32001fbf75dc8e5a682d57c12454feda91d66f2f13d57801d282a0f7dd044bda4cb14671ffd48934d246329f5b43ff395abcc3efe8729b4e00705ec384cdaa1fcd9f090fed3486ddaf384c1ca95a32a75de980aa581ba9c217765fc5061f2d2f5a9e2c6a8434ce8c87882d1457f88395cbfb6a432c493a079805b971b699b6db779764ba64013654395dab8c83691b2ddf52f3367475fd37a8f7c4a895340b3a94f52fa53e4b3aa0ee40b46349c11a5614b9b52de360747664a1d87d7afa463cbe0199dca6045209342ae7a43ff2e788117cd117da6ca3beab4603fc6594bf3cd3866fb315de5cfc664a44c5182a265c9e3becff3fc05f07bf32994414ba006ab97f40e39855a94adf3ffdae127b7c41127c453328b3d96c257cb97f52cecbb630db901361b47011ba0c45bb6e06285248f69a561f3eb7ae3a2ace8f742f3ba05081b780157c90797b465ecd868619dfc0db2934b9d2da7f9138592e655b65427c4f18f29dd564022b18469d2bf4b564b442a92093e1a28d4912f195672b24f9126c404c6a6f5ebea00e46e014629f8ffadcb133fdc018bc020eec7634edc597973fbb5e34cf8fba96f7c08eece0576fa56a6d5efa63fa9eacfca17ea025b3031fc463117cbcc6137659a4edff56716656e657f85a94f9ae930f2a84ca044863b97f7210bcd8a5a4efb95b7f8ef7207105173fe431c8a2044916fdf78937648aa0c3ecb5341657190b50223dd0a63d072a3cd829ab9924fd4a13ec328fef64cab9d9567909e0118cc26926bfc10ee800d1dc7277d5a5ecb04199cfa739a18d94d4aa33779bc1772398ecc88b868c4bb77146a87ee31fa870358728b87719203faeb888fb8b5a6290b4bb3710c542822c909935a7c5627cc7015a84bf382c53fc6f426354297eb8fef5b293ceb9546a1045d3f1334dd6257e5ccdbd4aa0b21a5a46481691c758eb286b35a1ab071f644354077f4adaa6865efa49fa8108148e5cedc5cf1ebecef470873929f88f06aa7efece4949d3328fa417319b0e2fdff8977e14c49ea921896b93e4aa9bc0a5e4f57cf3e073331e2a3197984103fdafd00be41b2f739a473163afd4dc21572685eabf095ad805da9e4ebb5886cebd01cbeef0566d60ad71977e8c165257fd2c128093b890a4e76df687331a52437d48f70d71e1fdcef68585fe449ba13debcd7647b09381bfc252898c8c607d190e702a943d898ad44204845c50327eac2f810e8c00acd0e378ddbf9d79863f9e7ad05884f1e9eac5c852ce4d7d611d6f9fdc099f41922560d83457cb03528819e083306a950a98754fa271dd5f74dea0573e327f541d8fa195f0967a65013b223df12d71b6992c47d87a958c5347cb52cd038a57d6b84bfda9abf89761e79379bf2297e84626c44252302826e461e232c2e72a37326ddcd8c15ecb6b72eee23d216a90faae6d4ad4158c96a28128db83351e760b323796c166873f28273dca5104152cb9bb53e7d01566bb5671a2f4422199ec6ef7eb09920c0a7103e9d3172760a7d5621249edb7ad2ceb62432962c837d3bd0072bb9b96cbfd3b29112cdec2495b9acc22874a66549eeb1bf342e9d42a6d80517d18d727c0d940df57b9423da311f9c4f963c5c520568a432ddc361f93256c19fb39878d8ff1929e9d003e48b842d02b17d40b9592251c750ce8b1e593c544c4c9e897ef39bd3e1cf332b158515379a99fe8487194c9f831b31366f5efa0113e9c11155d4dc9a3a0eee5d58bf98494150a05836c83d66ed7fc9d64c8ddf9d4c3ca160acf68aba4afcf8f8adebb2760bd077beaf241f15c806a84b9699e1aaba4ec4f04c4cdd301462053fa43ff10589ef8516c531aa159aeb771051ece0de3ffbeb87f99bba1a0863b479bce2a4a145ca2704b8da760c7f6ef9c9c569ca978d8cda50901359ed11fd54eda13bc7a534f0dbc938473d26ce35c66f8ed05fdc2402e3a34cc22533b808ef3bc78a693156735e0192b41b5942bbf89c4cf18bb739d6ea54ae0722365d8d7a1b76bb26ad54eb8ac67ad81fda672671af06b54e0d90f664f869ae11df307aebdccf739c8edb54f27c037aa4ae771947eb65f262bfb2ac9ee9f4bfa831b7228e7729627d29b56278acaa778f9ecc331077422be80775fccf1c62a5433ba4f6048e284bf22996bf95b3027ca3b8e3719abffba34529300c82f4e63ae23aad7ab1eef0b4cfb122bfa3f4c560d731af34ea5861374970672272edd0a542d869ef7449f75ceb9bcfcd91fe3a9151193791a4e6a337684374356b0d29fee4fbe816f8977880c3bfc23bff09fa9ea7a456ec3c3c126c9b4d21ba3b60fce4582a499f5bb9628da6ac91bdeb7c36bdc9cb6a56a7a75f99260d12469fb022a9168b2355e10d5a9531c07199ae56f6d614c99f3455440e1e8ba2640980a583084784c40f0f50b31936c8449470ed88bb23f2b670cadd60e310dffa7a2acbe97042004e3d6362805c5d7fb8a54716f53241f24ff89f46430a7d027eb9f4e2fe92804feca9744fc637411c7ac872ff18b9a65bf15be8916963510dbcd130ba349bcf76c087703191885f9bb1253850fbbed1e4dc782874975c3e365502c08a0dde69a48721577e663233ea0dfd648ad6ef3227753c16bdf5b66514c554f2af1671d2a94c589ba60b48bd4c4dae06bc68f58618cef54d498519f45d60e6c597896bc66abf7d20c46e9424b0bd42adda596ef455c9776ecef6a15dbdb3677848c45c7e8e78005f77b8cc8dcdb833abbe69d4f0728176fa5a91d115fbf4e1c2e9017eb29095fde84fe75455e5b3d27b2f7501b65b1ab53d7ef786c09c0bde669395fa98c641941d5be7204f0f9b369fc5e36e4bb1cc6ca0cd329cb2e850b07754c66e2a704de3dfc04376f753747f8647b8496428c91664c04dd470d34c750081f41d95fc59bdc7f0ea6b335e552d89c24a770af4cf1d8ad8b63441cfe18e559b686ef7c6aa8a28bd09c2955c8050f821bd64a83d719f1c9ecb43447b95e80f4aaa40ad1aafac0fa875bb4935212a036f6a1ff234666292d4258d38e7628b834068723751c8fedf1d78a36ab2704d918d77decd7025ee6defa9ddc9e671c7a2334c5c1df15c76f7d8569ed4930f4980ae21940be5b475d1ed9c3a8f7946fe5057a23ce9e64a4207ca6c4ed28a47cc51510fc06c4bbf3437d772834246fd42fd4447902abc3f4ef6094ad5e3bb3f70b4edeec867d63699cd98a70aeaa9a2315290ec0f31a30bfee088e1cac3714c71321063ffc502afb2a9fe42a99d61e59a2f16f0ec97e0c516b27d6e6265e3a2b8d04e9c5086a4d1fd07403247c92a2c54b56fc539fc1239a18e55e258048261c0cf4d17521cf6f0c004c7a7c6e0ba53b9c14e876b3fa6a7c8c7cb2a6dbbbdfa6cea62fa495cb071c151c66ea200c83ff688115b874ac0acf262f0a7cfdf826d63344ce272f55cdde2c397d04c14f4f7da496ad2caf06af3a1811e359d2fb7f5b94f19b3cef96d9df30fc68e455f5a50b875b94fcdc16f6d7ec58394241a94b8cf5b98097986789fe029194c914ed7a13b20008a1d9f4fd434f617eaaaf0527cbcbe5e1d2df531fb9485196ce187fb6022daaf68fcf8d6a73e6871f549bec63d39ef3d0d9c4922819d5e3f6f4afb6068c73833674c22b79823588e795ffd6688efd93e53270c62731656599d62767868441e731439140a6f41713e1bbc2d2d7b08e1e6870ffd9fdcaa3c47b95816e272d9a46c6dc936e6a0257fd2107baf2d78993184526c94cc0939a14636a1d31c7c865ed492a6f4eefedb07cb1bf2268453e3b1184230e1204ec33e8af434c19652623bf01d43f39b2ef46ed91ffc7f936f697eaaee21be76c43df18d10ce4ab7014a83990d98a1ffc9c4d9d7b521fa2d5ee41e492129b03f4388c4c8598082b43180908c536553050876ae96e13135ec992c3ed09d9f24a7b4d9bea5e2c89ec379dddf93a2abfd92bbc5381301f4eb004abba58560b837c7bb1a20f0faedb7249a19d2cb876897647472c4210bb488c1abaca67563211ec7fa3f17e15d7f3a5fa06ac1876743e5c9bcfc0ae0e1c5f574d9f4980346f60be178b08b114b183f0ad5b2a8015e1c22a4caaf97e96adcbc5580b9a2ab429fbae69eb1ecfc5afd1b99951ae231edb82f80ceffc813b2ea8eb72bcd136adf33b214471c8f356e087003b58346becd0387365dac3632f0f4d2dc9dd124fadcadbab12cd457082e3d36336c59b9002bcd05f60727337a553f4dc8502a779109cf6c08d842d418fd765468a6ed70fea65419f82eefd82ae4ec057630263d60dde43187fd0722b8135e23b916f092f000cfeb845fee77598eea189fad9b2cee6b3b8ed1b08de8143cb24509de4d90599b0b7f083b71c18c364a63f77339aa44cdc13182d458ab199abdfec0a18f07272f5f04a80bf967eddc71a709f91f57dd3bb84f95a1766b67af49bce1a30b904ee592c427df96594011e32811ef962fddbd1eaffa2144f80254e45006b92ecb587ac5f31c2e143678c598b4cdac4d2ea08129a602dd4a266d6ea9a3102026ab7b82286e0b9295624451499b2174fd8efd07692480a30e44e657cb52e464e5683c908f9e51d42e44aeb5e48240ffbbec61f44ab945036466c577c17e866ff1ff1440de0413f397350dc43ffad1813945e277cf370fb838f71d5972453dd29c97b447ab31553d193c9ec50461af1e651d65e1c7d0a479634e4d826ea60c363d0d25d9a4117555c0752f34e6869c21e2eb92af6e64e4bac8050178f77f055c81e6d4ec93402e49fad24e1dc2563cc27d090e5a01e19da7e263b805eff6f5e63804b40610f39f995d10577134d6796a62cb3dffb08e062ba42bf7321c1a48d6eddf6e308a55db0ceed24ba80d4df79786c221932db07deb06c588aba1a5fb832a21ad72ed59ab00fcc1e553621edcefed1eecc9476c44f6ac42a4f7de999c8c0bc4bb96882a0ed0d8bc80efe9f0a873c2a11a57c8645bbffcbdc52aa8ca45cb1d586a1915a575d5cf0dc118f2393511a3a217b3d7662ee2e8c5ba0cdb8243518a796da863fddbb978c48d69d9c022f648c493d18e550175d994ee4db01653ab4cc0cca9049728c863cb53af1902c02a5fb4140ee6f2256f375b6c474528a414f87654064150f97834bdd47a67606433e7398db8de672f2cd28c7e9f1674cd6a352e2bfda70cce27118f06d6aabfc7836269c162ae5262ef2c1921746b89b8f9728f6766a3f554f52fdc3df944d6c0f37cce6785b0d25e8fb7916fe3a1f83be7500d70dc8ab9827f612c5082e5f9a5c9b768c8e059da848a85eb63864a4fe9f81f73afc2adc2255a0757155288fbe7495f50f95b5535b7d85024a2c2ad82e592b67772374a3d4e7e027cbd9636df486568ba44d60b00a95a59de61eb5de924ca6c99648468c14c971c614ea0962c0f2e7c1f176f7c1d4c28825440b7320074e8671a3dc5dd8aac6870264dd6aa3f0a5bcfde91f6b812a6df32b327ceca19765fa2ac09e0f29420af7d21933fc04361cb6f36a337be3265f2b0d659d68668748380214f5a9d0f4391982351c969fb469cfcf7c82692ec4a5965426546d33c0713c1b9615425058d853a44fe5644db9e55396858f584d2fe27f7db728ae8307672b27b491ee8a8fc815e484ec1a540146587e781aaf16170d9dd6993fa1cf10d273981ed6d2335229a60d55269f09ea10c0ce951f2b95852b430123d205b4e7960b41f12c75a2d8bc583eb82ae5a73e6650d6b15a6c42223fe1614f2d485ae318257a32b94dc276862c9d007f38d5ad3173ae8c960b5c0c182aba8dee94b2dea14b7282aafd9108e76e572962c4528eda004807d0125b7a9316466c9dcb223e512949ea540927b37545bbd38e3d9a034a35b172f1da5f624c2af3cdef4c1c5aa48fcd83c7fdbc89b4592426facbf3c9603b726752c83caeac226297c43f966652849d50daa6141008ff052c55de857c1c36ae632ed799a73cbba80e905640528ae9d9894f26af37d7479c42512eadd55ccfb718402a9eb86df9e4513317d0ec929c9e3c2433666984fb0c66c8ccf883f2a4247e608cc050592f8b11c86b83cd2ca3db2f87f89f9497b493da46c5f5685e68b89e80fafcedc9c2bed627966d187e0086888e907cd7547c527eb24c11ff0976aa687496976af7df2d2979c562f3be7c016ae9397198b279f0fa68e8f7a0209705d55395dc228e41da9d54b572031eff1b268b665aa1a90be823ce7e36c0a9fc33620fa139c26c4b349b55747fd05cb3a9913e87e5eed5726a3ea2fc6e5f6097ad893b08282a68107f74b28284ee8a448be6530b418b8cc0c60992b7b8fdf761b4325c97be5a12418f63c14a6c4aa188a98aabb44d82bbd00595d3cfab261b9875d11f6cbbdfc9544441777e6b05696986a731c35567a6ff6cc48416ae8aba09a07efe539a0bf326a98b0856272350eeef87698b8f893d3e5439e6a14fa577957ef612ede610016333431d85927d2fc435e434f2b2da863a2dcdc746d0f50e5807c2b69c3b6b73412e8ebf686e2228308a4028b338b0437a27e8c38060dc022aba08d14c3b7ca97d9b1e6c17d98ed2165a55535c0bfdbdaead481c4fbf400842f8e2b164f869be4c77c48fdb120925b3475cbf5da9a84e7eb5be8a096a6cfcb5105c935e38677124f3dea6b2ef9c83d8ee572d40238290071121530c7344bbce22337b1d22939aea1cb5d78777538a3ad65e35e84a26a95a813b8e6054ea18d3ebc11c3e26987219356e931fd3a240afb15cabe1bd479c6159628dd96fd6966420e3fffeb7813ee607662c900504233c320dcff676c33ad910c41caa722b55ac2ccc0e7512e7994ad7700605ce82cc82fc6864cd277f466ed40748fa43d3cd7c43a6a96ab13eef525a768b198d4b7f6bf0f6fa3f6a9ca39ead94a70946ad8ca2fca26cf80dd27b4b36943a1dbd783cc68e201e1b925a86ed76ffdb0e11afe5390a1aedde58dd7cda228d43dbdd73bb7d376666db79da86fa78358d120b4f97bcc71a4fe97f685b8e69f60f34e159ef1cc4487b8659ad6b756cced92a92a1f31a8ea2fabc1dfccc35f795544e83522667325523c66d5ce3dff9d7111848b770b90d0724aab84a3164d901dd53f188b9a0891ef7153e1071594d90514e3ba05424aab37d6cf776c096810a9e788391df70ef787b142682a567c4f34af87a73052a35b7691c11dd779e528609eb2f5b6c3d59a0c7a7f57385de1dbce4e0fd6b2b25f6f1290057ac25d3dee19973b179a3150afb68cb1ab32a07b21095be4941dbb9cd86664d020c0dcebae61892205f9fdb6e10660fc2478d4fc1ccb0cbbaa3b64f6d8ab8e799f0cce5769d430c557bc4ebbe2afb5db7139409622ee0d4c864457cd9449fbab738e39fbb87720eb7590fe067333fd931c4fd3ec5a7c1086b4df9a3c3a52bb7eca1996fbadb1866a240ae8066728c5ee2fc2f8693da9ce316dbcd7e36456c9f6cd71132725eee75f1090b5a56fd25ca944cc473f2ae83e01e11e6dc2380fd6bb310fe4f8e8b8ec66cecf0f68071153be03cdf0e3b6e7ac3aa2639dd068128fdfde4028afbc4be6382bd3368415b60461c059dddfd4110c4500a69a172f5feca9d67e0f549ba2b419f786781167cfd5c56ca82db51558127accd455b63edbb3edf53fd609afe68d01e0275ad4d8661d604aaa5a8b7667163f9dc5e59fd9f3f625d32359963b3f0a9e083f21971eb96f6e554c9a4331f2bf310d958aebedef0f5dba06d898e0a565bea8742be86ab7369e436289961d3af5ce04fcd81ee3a0f845b7ca458521498d3f231403728e4a295c49a77a4d1b2e5b95f2e183d80121a158f4af683f5776a8e50481398408a659917f6e47cfd9e07f8f68f29c598453b1f89dd0a4eaa8a25afab7afe5da63544975d88cf51ba577cadff91273abbac490aad4d868c35255cc5b2b5d32fc6c527ff81dfa803d2bf1ae834d085270657d2f975d59742f6e1876bd56c352fca339ed8f03cd925d8c1782352d3f43c22cd6cb30a3f7cc6481859a711a7c4b4cfa00ed81d7a2011dab0d305b2189d4bc1bbc7f0294dc6dc462aca652bc09443a96abc3b07cfacd46cdeec0965e67c153707b3d846bd9d13c9a9f0d2d524bebdc55f2e757393291f4a9a989a4553f31e2b00d7e5bf778c4b5d816f02aedd829b3510f1bd108d2ad1affcdc5e4b1033ce452901f95c07b4ed03bfa99f10b66293cdac69ea94398d567699300b0514d99ee0be3500246aa9d87b50b124bc0861f080810f9f3b9d17aeb2764249a9eb056769b907a3feb7918eee522b485a46d98ca77a2836946bc8902f79097b14823c5138a4fac59c95ac52d968ee99cc0a84b63392fd44474db26bd1dcb30bcd9944298e710663b3d0bae8ae8500a86c5f449df4b56717db6e2bc15910a0696be2b8f06d05f68b0cd64a8655cac49dbd26013a36732a327744af54f4fced298f5df20dbe8faff8a84d58ed83057c1108f18ad89bbb80a11eff2091e8dbf603d1e14bb515485a86bd87665175937a2fd49481ffdaac0e400aa2222e48021a643dcb1d388262b7b89f00654d19bc5bc27210716bdbea335ae80b1b7b424d8ae6b5719d3ac64269b4db36339283286341c0f8b9e8965af88acf8a6f0ef9fe9ac0c668f0a6f344ea4aee4563064f1238c72f3123fbc5b5f7bef127ad946fe1d2229e1a791243fb729590264abab6e080d0d1199fb84e77e35064f7fc466dfb79a1adb46352976399e2f0056d6bbe0b1d2690bcb3d8631d54cf76a684384478b990037c578193878d80b10f3d3e97a3ce8177b97f19bb2baeb24d22cd539bcba0c183ec442cc90fe27a2dbafd4e1c791aff374b5326ba16880a16d98269abb731904dd1f8eb00aaea66bfef72d5252931d84cc01cfabde3bea854b5b145ddd37bdced843340e0679b6b4e7ed2fe318fd0cef76d160543722e0c3eac11f901ae15db25905dca7a17b81c6d51869fd12ea569fc4b072d217786b4b4d73bde4b9bd9425bc87b33d6b1911e6398673939aa2f15ac505b9a1ab029b8452dd0869f392daa28adc942272615ff2db16bcf084f01ec9fcc2f7f6a632b2bba8c4689a8f6c574cb1bbf474ff6bc90f795cc992d56ba4c2340bb4ef235e09853c94b4891a2babdf1d5756959c3dd6269887caab4a82075b2f70eb33d8977eb8c2bc7035425b6a36faff7e1f2ef253a14d52f15a323b1a4d07135d98b2cd3efcf3fa5f312176bf04efcaed0aa8c654f0434a42373af6726bde52f02995c808bca61654b6350034d9ee193e9e442196a724efb02a9835dbe2ff7a05959baa45f406704a8ce0074a5d91e468d1c825d95e714dd3a73bbee31a97db10760abc54fafa32a9964ea5556f12d762353af8157a9b09b8bddae4ad31f08979e1cb67706c8cb814e9fafd39bc8f0d1d2195fe7fb6a8ed94005e70cb73d4a68e0ec33b2322fb29a05796d18019510ddfb68be43d6fa88094ad4da37b089033f9fddef13b09a6d4900157f9af4bfc2f7fe6e3bff8662db3540c3b0f7f1fcb1da05ddd3894ded0286d41d70d134eae253c5c20d93fec596bdc9b170d41c90dce90ba89bf09170bd01eb23f6fb9cf2cff82458a621d0e5210e75401ed4da969b11b3bdec72cfce6037b1f8b8cf0a4e82089868b44c08de1dafaed9172a441a0f91dc70e8a1acc40cfe554ce56b0dd7d6f9769d265149e840de3186d8b23fbd583b6f39db07f6083b2e486f6572e3321af734522cfa10901e78be96895387d006e265c82532fbb8226ca149b1ffc30ead6ff26961aad2a41603c1f80173bac5ad2eca0b626bd9643c740297e67c2695b36bb18fd9fa5626a433ba74c8c520324591b0025b260bf150f815111ee840ade66e1d428a3d3676fb4c0acbb3c736b2f821576ab25b2c2f3dec944801c1bfa38076c34f195bb0648c424b2abc08636bc096cbb09550133cdff71312863d0afabf8f8b0a149e74a5c4ba047e04923555feb45af3e68396583b919370f465fe558777841d2c5d1cea3210284257c101cd91c2601fb93f5c327817a1c6e9e7f3729b03b8406538b169608c9fa8cef1371ca3b67382c2c145ef961d6a1f5c7f8932c0b75c30ec31c838ffe84290540d10b0d9f0b1b7b2a197403d52ee50f7dae28c5bf46d173448a3f19f7c7aef4f837e4cb2a16964888a9d0b20d57fc3d0f8f5a87f2b275713a8180d80d5acb7a0a70a878828213caf75d43ddab6a285ac88f99e6309a180319e8a58811beedd002434b7231dcdcd9fc9f9463da86b64988d49b8a6dfb1b5dff3c0f5dd6f6767ced03a3ef6f253c56978554a47398ec73991a21f240785db0516d4cca9ffe1a3758d9992cd69ca7a98eccec216d2c420057380938b1b6a77a08f6f275d54c834674a8dcbbaa3ba157673928173768071b6c0c99a61e31507dd56dbec65470df2e16c6ffe973a75d799480568be84bbfa0ac7ed0396f36bdc01c056fbed7285acaa54f45f0a0dc1c7d8d422c7ca9dd8ee700ae4fbaa24d192598143ecfdde9560070f21eda27182efda48a5877383af7d7766efb6fcba838149e4df4230d017e44fd51cdb0e530081757bb38f3904053885da9ee1097256ce43ebd00c9a1cf4989eba1646197027912a73eb948ffac7df078095a209f103845f18cf3acec2dc65d8c9a118fb4991f378dc801f5783a703b6ff8311e6f9f88fa48a0b5265be6fb369fc7a018a616efb7d4f482bc71c881a327f01d75f0bf89d8662885fa8f13bb5868e4d0ed93897eba4db1f856b7ee676cbae06c95fb6ca379fc7cdcbad5fc7a57c7f30d3564b7ab2861295a2b631028ef69de14878d50a896f25f28ce4eb5816501d658e19b8c692dadf2cfd95e7fba890e82a15634e5818f11e3b51d84bcc37b1fd9f4a2204be145e4e41fba9b8754d62637a482a625af4304166e293b06c40ac5220f194c78082d32de6e901ab868c2adcbdcfe3f7b1c3af287a47c198b0a571e27cec94062a180773f091d6e4a862778910b280a5f80dbe5e8ac6a27a9e7678cea358cc200c9a493b93119845b25c74f3c90339e379cb85b66c35f3962bb6303b8b9d2cea3cf6c5d2b21d5464fdea55a08f2cbc7602a2f73fc6c5695e84a9d3c1f2ad7e46f8a584a6559be8b590b3dba9e0bac23f815c09131021745239339fe7f5878bf1dd1f6cf69668005e20b4ac3aef71490af53f0fe7fedca85ebbafcee73e4622842051c9c950c3a2d94c916b14791631296173283db5aa62aef8207781f4fd295053f1aae00c85d0aea9a37d16d7118a8a424c3458d59acdbdd93cc4a08bd2d6b5cf7e7ad8340d0815a1beff8ff3a72d49ab8294027cb16b6ec1b5f3137f8369636c4bcd498612d70d2831969741f064f6db786c202f33f7febb1742c5b5f2b17b62a4c6378d094c2bb3a192335a9ad44ee2a23f3f8e785f61111a49378c2234489833f75255e85cbdc739d950ca84f29777fcfddc4cdd75b40e5b5e97daafbfb7d60d46dbab634e08cc5cba44ed4d25ba4711ad02fa888b413216228c3a74d88f3732eb145db2ea7ceba4e674ce908e70048381f90fdffb77ca5fca1734108cdbf6c935ab69d1310b724a24af5cb398076107081eda007c303ce572c8403cb588c58ef14ab1f608e33d6c10b3b798b03a737bbaff3d5672fc870800aaf24455b78007c99ea04cb5d61d458377c3ed15fa5a01316afb1718755a1564062a009f9dee5fc4e05b625272537e4b5f1b9ea4140c7d4982a98a319915aedcf5fd05149622c964e8ff8beaaeab81af5e1f5f67af2f2696f2e2394d7db931e5c60796c1a19da7f79cf2455475c7d37cb5302950067f058784bfccd0242be14c1648abe1ec541c8025b427d8faa720e9467ea96905d59096cbfe1aa7122b03a761ac450b4cf79be3f091f2af8835aad83784902950efd62d97cef5b58e1f046dc4a3e6c273599c242f029d89038e24ec3a04ca09e383c68d838c2b8c0030ecdd7d69884f08a197f741f4d2dd01f7067ee02198203d896142f879fed8d2a31a0da39258225a5f6da84832f2b3859b5fe578f35c07dbdb423bc54e58cb367ebec9d40818dcdef3ecdedb5c284200e837e38943e88c34b92ffcba9e2f74cbf4d209846bc25fbeab6b2ed9c9479570fd91436d2626255551d9febbf5a9453adeffc8027191fdba97e9741fb032e76a265a6f5092e6ceb0c3476cf4b28cac1aba050fcb305d70c334cfaadaf6a443d276d9a604e1c7b1043df3776da357cfc3c40178c6e8e8d4ef94aa6b2ed30bed0272fdf57203a884a1e0d7602dd4486cff7ab02f23fd99b91c1355b516e533a103147aea73280e3b4cfa34efc60e1f75e91c522fcde6d65a48d7b4d3e1108896428fe48be94369402327be297f7fe2242b8aec530493795919bb41fcee15dc746e66b08b577b494c8b4fedbdc3b4bfaad9c64c525109ee7d9438b55886f6bf0e8100935bd552fc9c62bcc588702a26f3182411789750761166c039ab18958bc71875bfaa241bbd738af0af443ebcff9be05fb975b2c71262547e66c62d74a3f638dd84ff95400bb312da8d083edfb8ee0a3200a3be1141e2259745f9b98799fcc92c920b5283b1768f023532594f801d12b882d2514aed6799394965d07a650d4fc17f1958eb04820e8f5166beb9e7eba65f5b0a1e923066adea552d22120ce74d829c4dd6aa2729a6ec7ef38f40cdbc1e651cbda1bd1753dcb45b72894f40a3478145b7c66f4d788159c3b5a7293e5d90dcf58ef6733374d39f137026d67b4bfdd98950970168b15ebab5f85ab22b4ceb4d55bb452e19775bdc403a63f8f4d7a04ce78ed8d30b9697f2b6a4ec2966d3bf116df12e8e3f623bb95a78e0df18a5da028acbdd74552d72e844f75ab3e0f4e924a46ddca275af40e6556f567c5ac5df92059ee2f2f5d929ac76527772d8ed32d2574e3ba4d5bb0ea8fb3257966f587149db9136489c9a856dacfb8584ec919b2c1c42f3264dfeba090d005f5df961f3e888297502c8b2789dbd88213aa0cbb9e7a8fe44b1052639f064562cc12885a0cc4964416220ab752d38919ed2e97ddf19b1c29adf6af48c12c7f9700791cd381737377682472e9734807a2b74f6939086b90691d0d12c3ed444836e1ebedb74600407b521e25e67b745a56d5626e53695a2e7753d7668e9445aa3f6b71626dc9b5f1ed86fbb3ae36f48337e1896d99bfb27789e2d047c91fa095d750edc2c79cb45e0c3ac9c09ac253c9ac39ba236d926c08fb8566a753661e59405b1a68c3ecff143ff60759d9a9868df87390432bb2487e033299be138c4c7e1363aaa9fe19b101e56acdc02f525e65ff40ce428ae952c65ccf331e000e5a0985aa48fe0ed724849cd782ae46b1471b29db685d95f94d416bf95c6adf71a7887a98bb1198d07ae66e7447fac2ed8bbcb2ec7abbd22767ff0a812007b78a3079d317b81ed3f0ee8f86ef6133c3826a2f3c2ee2c4a135afb1994dfff9663616733a59905cd13a46e59c48178ba1e4288298f3160bc8ace6bde24e0cfbaa63bf6e5d309a39e8308b3f3bf6ec13a5d0e51de01bdbc82d7abed4d43800d8c4308be82679b9751d441495986e432ecb7ddd45333a697f1e30649f21b7a42b3849680d3489ed76c90d933d17ad324a30cb9873889e5d55ba810c80f2317743c8277922d62531bf48cb0d25532348defaba531d5d7f52efc142b442716729772f944d5e99ee02e0b3f28341b84782311e9f2210d23f86614d9ccfcc6858c44b9e4a524f0326ba8adfeabdfe1c969474a37cd55be1f1cf52528831c3eef2ef406d6faedba07e92d81e2de9a15e3758a960b1b3dcc4fa3dee998c8a6ec851b5a045a79119bfca49959f533df45b35cb586f98d2d300176244fd8b56359d52ddbda7233256b336ede16c32f35966c0f6dfbc6c2c742418a36ee9927ce41aa32e439f928094e83b1b7d8dce05a8170555c6d6ec9755d9bda2aa0595b0ad7f915361078562f46d9813bca6fd682394280f31df37857f8b25a1b8be01fcafbf3ae6b2aa43fd77a579a99abae0cb5b22e0de9ebcdee9178725b2cb084bf9438d6eaad791a287894272ed1a35e097ac7df0659820d769462f744f38ae39f91d49852aec3812eee57885d5c216382a943e6f48ef8e10310f3c0656ddd4e802e89b0dbb62577d78c7400c6a0c360c3a31deabbb1d0c50f3f8d05ecd4eb939a51d0c7b30c82b3a14a05946a3a195eca4a789b6824e17c4e163a3b95f4c25b66a0edbdd3463b6bcf3e0da39d7a55d051643433f658f63f601373fa16522171bf331163b651a4e12fb1419e0ce92b23bd2ada18c07dc44a2a3accf13603967b5563e68874e040010224849bf4fe8cbaa2a368c1277523aeaea2dc29833f4f4631ff4ad6830ced45994d86de1378375cb18f9ee9c34c2f825b5df31c9f5258aed37d179cea0f1ac1074dcdae88bd548b70067f5674810a25d09ad4cddca2c3d78556bc9c50900c265243bcefc822ef8b582ec0540e589b3178fad5dd6490318d19f461b48abfab67e95cfe7b6f198a02cbef6d74966af2683d44ea3ae6d53e7d240c1dfc97d78aef6d667a222eb571bd8a2ccf7bb9398b648443fb2b83f8eaeb92e866d7ccd6da9e74ee2ed90ed134d0f8b04003a87f71947bc9f1d25d81bd15c7117b63288a49b8e3a310c7deea6eba32fd2380186de5e22cae65eb375a95f9965a45eb9719b7458e52d0f87928d82ac64762e2401caa905497f2e81e8546332a3884ad48d75adc347cdf554cd03f7e5f2258915d6af3176a8960642754be46e120e9b73ceb2b63eddc9fd45838812ab5a62674f3d3b3f4032bbebc3db145bc0d2c05a95fd8e5590d2b45ceb4a3dfb53bbb03f8066131e86c9020413466b9fb6b79cb7c1acebf5782e23cb919d30e1c3642cc62fd0ab9b459a6cdb0669ad7bf7767b6cbf85ac1431fb37997253a79912132234ccb51ffb8b93ddfe005db5edc43a9d9b4efd9bb84d8f1a71c0d4ec58f95b55aeafbf6f9fcdd6f2332ad531e6e7c760005fdf53d7f06542e3e99dd02b0f3808a29be63b8d2bb093f52edaf6f45b3084be9131166359eef9374a9b5c417f57253e1ebe5457e0fa144feb2d184c43fcdf29f869d4ffe7e0e93d2c0c9b4f7597eef253968cd6800d38ecb1232c13304bb19b5f3743e0e7cd6b4fa4ccd58ce3928fd753cc5fc4418c20c0ed4796452b4203b0fdb697c43a7a90106218e5fb1d06060abe82b68f8d7e02e586eb1e1a100f39d7a7505cc3ea1c3000b937428ec839aef06bb4dbf034979349a3530cbaaa2d7d64821c03b09a77d9dad5b3a65ec8659694c58fc7ca912f3ceaee6191a0f65c696aaac5865037433702ad58f230de703b6ff8311e6f9f88fa48a0b5265be6fb369fc7a018a616efb7d4f482bc71c8e31d8cf95b5383812fd944df228fe55095acf574318a063e8c5fe48cd847b8c364276f391b8297cade89e47896e47aeb48dfc749993287f7c403164daeac14cb1344c3418b4b70e01312c8425226ee8fe0ef420635a73902fb248d1f033bbb2f3a32368066f97d6733c3e5719fdf8d80ddae9e54d14ce96fa9e6a96098b4ac92beb0721ade7b1d3977e88a74ef376d2524156556cd2f37a4332f59c918c946fbfc00cc1de96a144a2d9276652fc7662cf9b27dbe900dc60c405f411c34601c08adbc24f5a5bff1887545b09ad1b88d1d1d6c6e3f004abdfef61e2268925ee9fe8f6499e6d0f92bb79b0d97546e034f092ca624d4972d054dc6553aed6d249689c384dbcecc2aaa4e701c93fb540cabc9160f843c0026a5fb18a24502061d1bc131280006f7949f91c5dc74b837b3b0c21db0d62c0a43b22e63e3a5ee9d797edead981197d3d340f0a5ad117df203280b38dbc499482112038888265768a95a11b5c5df09722e5632778411733f398ea7cbecccad1a396dfb46bef1dd98ffc917f7ea5baf16b87e1f54258a39c43cc1c7167596660f0b09e031709ad0abe8cd86f9e0bf6b5e2eba3582a33bc828752618470fe3c70b61f3c4914566cdba1d04140e4e3b8e4f8a3ecaed386ff22df35a80f3f9849d3224f44a5e0049de2e5ae9da14f5f274f2cea0f57fb9b0c454adc84c25d62cd79ac7a5f121bdd7651153fd930cd54e41b3e3c4d81ba704bb07fe465fa9c25c3c785e6bbf71d6cf3653ba62aeaf22e7a61ed9052995d655d7fd0f06169d0a2a4a68722976612fd203ac2496efcb1a29d6dc18f322ae0d7677fb23df62cb6355e8818a6d03444ccc9256b9ceac8d04c1cd4d4b7ae93966a5e95f3ef84dafc142acaf27fa0ae7f1cd4a4bbcd51fe8a48769de982fa897b1665598fdedbd54be138d23164fd8679d0c1f9d1d05ae2fe15c2b1a7658b9c0efd4e001c8aa59386ab4af91950bc0a7968701ac4b1a79fe77b707001248baae6d0307ce41b95dee59c6aede174e2df47a6d98ea460b04f841ac8fb4953b634596e2efa9fcddd4fcf652aec58284b79feda8c7a0c80573f170d1b075a451021b7841b1b6f60a503fcc39bea1062ce339b3558d7233d84e6fafc726625ddf41473177cf1eece367c17c6adf19a313433816c7397d8d7c27afb16466f1d84053b533f0309622807415ea86d51f7b6ee231a91d4799b6710a4aa959343ce55f0b764056f1cf225fbae8c409cafed5fcfb5971f8223f46a55fefa864f6db0b46426aee4332bf2fa05a090e4deebf35fc834995be43abc98a1dc7f08ad906cae1e891b92fab070a6b5bc60a3cb12e1690645235053c4fbed9568ddd105e02253139e812a25a28efbef02138c649718d3297af26fccac2e2e993efe96ecd01f74043df136b67318a0e3c577a344c69937971a36bb94c811c6de9d01a0ad7d3771446e4be9536a9fd0486cb522a1deb3916c318997fe03b1a9a4c987361f8aeb945c5d2bd55e57f3ee1d554cfbe3ce0187ade1e47df748121850c7ed6d548f7f426bb4f2413a2dbc46b75d5c9e4a00c0e9c1bf19d2d571df9366a8619a8af0da9954612760a10e480c0104ee3563e13aefddcfdae7861be5870594975a2bceedbe982ae55ea1bcb58ca3677546a894887e6e39f98249b3653f6c9b376ecfdc5555b7e7ff287b859e0aede96b1a299aab6e3c05a0f44adc505f99dde3fee761e56be8f0dbc71bcbe27caae5495646590d41f788877c02b8a5522337f9ae8dc8f84b99025ce4be1976dd10f118e92dda12a7e7b782f59b90e3b1f1aae0209cc589f41dea56d9a99a021dc7ce0c831d41cf6869adc8cea1ed6ddb33c6a773046d83970e4994c292027174b88834a69083151ee3e341a571624deeb023740a9b8a0964eb87c2126b2d3301df9dde42eba1214e15e2e6fdc1a60c39e1df6ebf97beca4cb2940807febcf80cf7abec0cdd0e56e1adfab75a4db436b267374eb19695e0ec3bea723097898ed80f5deaecc99fd027c87aab1469e53297a723479f33b61d9e974e6ea18fc339897c9d4d672791933aa3763681795fafcae49e22522b9af6972157ebf48ab4be964e1c6a9a98783712f2ee8682e3e76f76d6ce9f93652d4b928f9d3939648b472c9cab7725df9c5ab161fd6a7f2fec9238bf332de4df0c7a6df11e19e1cf249ffe198571cab7ef1d929b19dccc0cac9ec2c63626374dee9e065289fc5ea3b0c74d3a47f8e14b56d861e252bd46c2c64a256f24e0f6d5fdcf4acd2885720bb1c1276bbfea2099cfe8dc635dbe2f56b321377763fab2c0110665d17e579848bf390d7643049f36d7c3d3066da2dadf80aa6ef6e325dcc83ee8f7a7c82308e4d4273bbf68e0c228d611467b8a59070fa6a877ecacaccc47d8fd1cbeaa8c5b5dd8a661ebb27435a3692e79ddac2401c4012328ccb5d5ec3bca3b71c9bc845016926d3a2c621d436790a792a3b75141898d12d73901e8dca82c04de46ff7ca215e6776b41e1e7d824bc6822e4da9c975d670a28f89d4282b6da682568efab9b507e68ac8076ba9c5b67eb7a541223e1ac6e3475d9989cddb553b413b5f7d771702ac26df338a3f5556bfd564478db0bc5866a7ed992f9b2442a4caced520a32fc66f3a79dd812d83faeefa5d7b6ca3dd1244d842fd2533acc7da305b44604a719e4124544e7d5707e8fa77e3d328c61346b2b1269ef04e4b9f93597926cb2db610c1fab616cd6b858cc95eb7018f4cb5ce8ffedf6fc90079c750a729671dcc3cae01fb3a4c392071bf359eeba89eb1a8f00a7cbc605f42c0b5598ae67ec22c9c23bb707d9bf262382bca3ee427e9ed5ad1eb2afd41664f69113f7c5458f185732e0736fa5ed9daf4e3b42c62dbce75db7af9393303e5bb7b630b98dd3aeebac78b9e06c55de286119e1eca53af67a24190fa537ea2b2cb21358facfcd854f0b2d8f2ef26faba7cd3cb455ebe6caf5850827da99b32b6df989255049699c394a077b97de55fe2269ad264635f2c6b2a0c9f311f07ddbef2c390586c76e4ce084c3fe1ef18e2c8466a6ca8b68ecf1547fb8f6e4e80e24ff6496c01da0a1f2ac87a57925d2a9ff78c8c84abbac83735ab930384f5cb128f61c27e6991bf771e8a3925c8fe2b042052fccf1faeb2d2202244957f1e85deafaedeebeaec75cc3dc4f85938f4f692e329415f6980f980724b03708197d7134f0b9c4758fad1aa233e6b0c78bbe0be38955d075f0f0e2d34aa6ff32bbaa90940fcdf62d8216f894a083be9a9a5ef09807b151f926a8afd9bfa9dba75cab1ffc277ede1431cce7baf95e0aa51aad898700ece8cfd677631d232e880f157cc18f6438f6cccdf0761300916855d0f1bfa74881188860a1af587c576046b0a6fcc54133d565e847264e3d151e8819115cf3dbaaba8015090d7178553d75a7659e31f9284efd22e48f4f53a1f903d0aee1b991c69b9bffce166d5107bbfaf9506afaf6b2c04aeff7b70fe14924bb2652d95d0d4806ce6cc4e0f612f2f37e351b979c9a18071fb69269e967744e8bc8fc80e74218219edbaa1df29e0a2fd7f144448a30b0b1aa7f16a544dbce0e57167ba3430680e5463521bb26a4f356403a8b9ea70a197433b17d95375b51fb84bfe0f7b7dccfe42670396127b2886ea504cd50ab92b317b169f12ccf09b6bfc8b9e93cf09491a0f0834c3ed6e97117c9f2c66132eff5abf5658a28ab5232e8b1e351acbbc767421c1713ba541d8956f4f2e06e843d4e9820c33812db32f745dbcdea36f894bc93f5261f8f3a52152bda0a34c1d86494bf17763b042666e5fca81e2a3ad69135edd8f4b09e339f943fbcc0d9bf83cb151ced602519a7ec7d067028fe4995c9831b07b040bd45e7a649f2ab81e2d205405aa1f1bbe54f688cb50717f93fab8e5f81de53706c919f57d5dda6f5b1f44e63276bb1cac5ba193f7655861eefa68dbe2957b85eaf5ef03af7d0550717fd670c46cf8498dbf64eda37ce0fa3bc357cd18a5b753754a33a01caabb638e4b2761f38c35b32f53ca1ed879d75d5ce233a3b8a867aa6b0bf2dfbd088eb4533569eb9c743146cad7c356740093789c421a0bd614c7648b678347a5d8a6a7f046ebf4eb8b8950cde9c14f240d2c756ed2ebff2836a64c91ab6f4079dac0ac681814bef43e051797d8a77c26992bd264dd2b1b01091325d8bba1ab9a4a9b6269445626f2c4fc8172faa5a3cfd9ddb26ccef95b5ebca2964aec2fb8f6b48d737b67277e5958cc44f86953bfc9549bde29098ce0a65cc92ec33266835b9518d464822e3d9e1b2fc9bf49b712a105970c34433eae4e6404494a758bb977bc74e7407ce30f632c09ec36e0b21d1dc67027feb7ee3826ab73e55d4b8a0562432b227d621453c0da9ac00bf69e2db3ff57efcee095f5200206434622a23538f8a2e1f4784e94f81d53e61b838574bf85dc2cb98a72ffaef949e9ea6c2f80542d42af2e64c65eca0893ff555994294439f567c53b7f04314e8652da66d11077d11ee549c93ccf70be02ffaef0b3cc2e9dd5e5333337c08c76bdcd03828b855fb6b361dc749267d0532a5f6f4be36299dba6cf368aee738ddaca4a8ec28dfa5dcff7a385ff9de559f8fe82d5df68e64d070e39724ba1c548b54b96d946c0d0340bbee9b2ee4d072a5ff2fa07c8d16aa50d1d875ae5482ed00b594f671e8dd1ffcd2368cb77cc72a21e923278ac6b0e24251de4abe7fb86e4f98a0d92de4da3fa107c3f1beba38fe3664b5b0ebbdd9f44167742f5d598ca010c220adf2c6989261332e5884ff0e20654de26424f6bac2078856588973fbbf7ba5b3af99169ef0a50e2d51c5bc4551a66d9822d69117f39ee1674875b810842757a6280db11964087105097239a40ed5b8548910c2f8f268e6b313314f24eabad07ab9b2b6676bd32e2d142db1af0bb33867bba1b54b0a920f01c447661f0e463a2cd9c99499e952511eebda5d04d36de20f75cd802b65091a125d72b09eafcac8eb0f602f6505882e3f33d2b4ccbbd7d1fef788ece96f45cc7618b7042c77137f48982279b883791b13d44283bd6eb5558b4e6b398f655c0ec1745397b979192a36fca6202bf42518800dfb880a13f0094e91cab2cc7dc8a087aa5f065088d96534a100696968a3db59b5d68aa351f9a56f68bf22d91971598085d07e9e834b0d933e58698c4be27cc977bbe8d52be49b9f1c361ba5f6e4cc29cb6382152354e5e29dafece32036610709e09b91540d22ab5d528fb85bd0d4b72899f7ecd1e2264a7b2d11d5367618ef2fdd44bbca2ef0675dff0f7d3e0c9527f65f8294ede90eacdbd8a2bc6f1112f78b674fbdbedceb6d36f506c66f3a3829a9a72144319bd471c61363099333e9929b3ed4d2524a8eff7aa24bacce7b594343cd02877f06669f9b9db864800a2e74ef6cf8b76b996717ce5edeb45755b8658af51de6f3e0ba1e294c8c6f1565132bd051850ec921e690f24b13bdf753b990f5b777ce1f06c3afdaa3cf6a945008da9e6cffc542299b35d3edeb81e6f2a3d9e225ab3f69c98dd62e3cf3ce282407d7f5f5284fde6fe50878ecdb71c825713174f5360e054a7ad0853512dfbde5499d462f0bcad3bd892102be344e247ca807b43baad397cbdc8252c45fdc75b4b0cca6abfdb985adbc6bbc10d503b2d3c1c9bd84113ab46c75f003c2e6d46b5212081b91ead01edef3647a541229d75ee0781fe7be26c5a34545de3fdc1d9537354186b46530d963c42ace9ce478519a8c89efe8c97cb6408bb97a85cd748245a1e9e16d2825c6c6f20ce499d03e2ff822a97d659e9c050f2e09739a3263e9647351d98e256375f33d6a95b8d9df1e788d9bc93367b37424286a6919f5a0f33a326a34abf0724fb162c04151fcdf5633b99825ed3f519edb4635abe7958a4f8d1c5574c7f99d52473faaaa198dea9d380334e09f1737083c1939c176908bd9494ad5b8539f65820ffb0a12ad0b2e6f4852429517e15ba8fa282e1198aa978f6bcf0da8aca9e2770ad90c160a5b66a24624f31f4f13e76514f098a99d6173e5bcc940fb244bb20a65987816a4e46c52e760068344d818c355311b8a4165c2b9a411e703e343e5e7468e7794aaa7903b3e72a321ca960342b4619e8936f37545f666ee46c04bcf6bda8b16f62a2381d347f4f70a10552e9f19f05cedfe75f9bd3cf308d1e74361714cbf512e9aba8095fd2d71a0bd34800089dcbd43edd13fb25623fcd2dff8d665aeadecf90bec2cb638b1fffc55be10de63e208e5d789ef43e15accd8ff206f166c906427d7ddece7b554325abef48956a3e067b7a42a0b9832f49795cc371d2dd556f4dc3c0d6bb350619b39637c6e6d017f6135c3fff753cc82b7ff62e8476781c04bc31fe2224e5de21f2b8b1a6e42a6796339c134dacde5bfa830d9a82076495e78e826b74c17fe22d7d78208adfa4dbf3163e8707389205f74fba7607b9011d5a34326b86c8fc0c0baa70c7b7598194a6a5e1a7730cd37c7b7d27ccc711d16dfbc3999863e266ac31f948e6ba789a6d8a945971edb1c2c5024f349a74824086d2eed8728b24685b628397a8ff2c9ddbebcaf306e4f888ab89eb7a56618624bad2614510bc9819f3246d6dbad942320b1918713bbfda1d35db2a7f82660520c05f576bcc34d748827b57b170c5b9b8ccdc0845348452741df1bf0220183f954e983715b0b78693b65d926e624ab1da6c68f5da2a546b427b1fc3c628954ead7d8fc0e9cf055616d2c4eee764bd5f6a4fcf1f6242ab5f76046246fa5cbb5f2378cd3dbef781d136fd668125d7d6a0929a66e20064a9f3d9b2988bcee04ae49f1dcabc4a5b6f2c8de170d17fc30074a0feec3c115aa458b8f651ffd24446dbe2b7f75eeaf4723420c45b9f78a554df7b7e86d58c01b68e4c2ea71f45322311695a69e18d47bf3cc9ed244b51ca81e6ecf9f6f33bf258edfb4abf72b4f6cf396901bfc9fb9bf8dbaaf88b09fce513fd12c30c9592cfb01dedf152d249dc7b548b768860080ae84fdf7c2ce61cb356ea740a3fdf110bda443466ff062d5e06d962e37d15dc5acfa658eb22707a7a683c62f4631ffe827d45fc1f95fa06e642536f3227ac06a878ce0dd610ea35d7d5cc3ad4d0274942263fc957539fb84817599d2dc55a54483995e652f1e3a2e398be9ef880a465a5101c4c3bd6e592ddb872b640ae1f82e301e349a4c520ff67ffaba402b2eed06afe557305e6c7dbf9e7d7533c1ffe0ae7fe928eb59623fad4cfc46acef62d1207acf5d72fa9271057375e95549b2e0c1810536fbb22d5f2df29c6a2aaf5b023b2992246dc80fe19f27d3b3a2467ad00e8c4c59e18330e02c0fda22c6156f4dfded5f7740726766757bfbd16d9a9c84aabe81a069e4e1b93067de87e67cfd47d92f14ad2b45f5484d91dfe1944ca51fa9de3f69317e8e00a3add39806e6e4a46ff317312f5dbd68542b02a7f632f6f5475b3e1d1406c53b2f136936586c347e5f88908cf617ed0b388628f0fd2ae75b0fdfc7f961f3877e4426d70c3f73118df334c74d6f546bc924015d6608fa88082b66df758f1b81f1c016d0de2bcc41fe86f5103d4f63456ede44a8adced049d436188ed752dbbfe20deec914ba72d74a06c39c13e4a8a85ba2d8b18e0dbcc6d30c83e6621454d4b4dfcb6977d4572c3cfd6ad5fe591baeb6db111298e59a8554030b58329f02d959a21e43a3d875021efe698c731d2f99e07d7df2a6cd1e2e1b0d02d31637783ac0d0b4897830206a2270f29b5454994305ebd88d513708242d35c500dd53e4017d2becd8a42138f46713717175175d11097553827cc8755172963ff14b1fe1af36e9b081c7929f7202718f9cb3969f506c52e57970dced43996eaa9ba40f8f40c16b31e2fa66e0bba5016f822c94929f1710f471825d8f6a9a5eb291d0742d0ea8cbbc20f265cf1c3eaed1a90f65cef601856dba756f3d0cbdb7b76c4c5539c3a2dc25fc99bde7c7aff42424e396379f4cab8eed89c6ecee68927a089508e1b61de3807fb23c17724b1ee8f7d8dd686191197daeeb952b5674c7bc0fb7c5221f2c247af5a470d1a53138930845968026a23bf12a65fc8baaca22b112875a284bec7f3506391650cebaafc2e8c990b66609ba351f7ece139be98909b804aea4c408b1ecac6d37a99ff2de5d9c516c0c45eebd51c252390252860cc0af3b338b37ccef48872a1258125660420d422a49f936d07ef66423b0d19893fe58a7919190f29790b4a3a6f06bd730234abd1efd1a7105ced8fc96a1d952349b16668f8a64f30a9357bd560841d3ed34f36e61f540a4cc2e1ac935ba4e7fcfbfda650c63d7165f26dcef28737d2252c4dfc72c515cc8cbd007ba585a6fdcbf158888f1e0b66b877a3a4f2a50747074fd5ca271688139d26799a63d4a1d7967b0cd93b0af12378e077b51ac46c7cbf35f19f3a58f5608d05caa9e218464e1fcbb12bd0858ed565aa9e2c3fb11e48228bf861caea4aa9f0fa3c852f1771174835830e21e15fc269ba1051d00fe66352da1c66fabab4d1d601829c3dc9b4aece3e6147a11c65eeb850fb33ad59c89b46fce96e21ec7605f8a5dd1e0d68bc80aeeb458477a6d2685b7bb57d8ec8c912b7543a1eef34952951595f2c3fe2f51ab5ddaec44c9d26d029a9d132bf4fa72b908101f88b9a14f862b657cca43c27232cced59466978525332a219bae8ee96cd5924015ac0ecc8e8acbeca2d4191d369516fee358ff9c0162ec6a96c7c27398995dd3ff5754571f83250daf211ee6877d65db1bda4a6233f9d2e080afa2af5a3f1fe1dec0a2cdcf1ec9a285561f5889e9152e27f9e5e77586dc97c870eca081563132b3e0d7bca1c920817b15f1410bf144ce16f9726e7316ce34c11ef7194ede899b5d29fb0c57294cf1e334894f60a3241c23d0d59ad8b523ca11a227874ee55de254c89dbd835abe514c08fba94094b8f4b8d55c4448ba3b00aac461a68d34d9513bab34c1006d0f606255e7e99ef728a7852609f3279600395349db5a9f733c221841da39ef3815cb89a47ff9fb759960abc879ae28d77f722db94a1df43ee09028a5724e88fae0140d3efc1a74e5e651128898dd5b988f34911e5538999f5f221286562d44f4c3a00b4b94ff3e37d7e9586f3ef248913255cfdbf11aa1f7566bffc6e9d1aa3e7511c0faa3544821d8630717056ff372002194a543e67657f69677e8287d7a17b4b5e9c2bf01dc1d05d19a1ad627588ff9b13d5b01a66fe7efbf4cc364ade0d012560322b675098a7668884a42db62df4bcb8d259dc7faba0642e1461e75341ad4b9d7afeca732557016524c8509eb15bff403f409e61c0294e555a8b568fbcb341f9be1de82eed034358565a15ab747f53bec7293de299cc014b6d0107ef4ea7d4e0ccec9a1ef9b21e3ac59bf3e80bb3236518ccd243581197fa066b891cb02fd316a42a06a58043f14dcb557242ac84c85750a2987eb304d0224c0d8006fbda73dc6c9abf9f3bb2b49c268a903fff1ffce76e72191d3e7dadbbd863ed6cc21cf73e9442b5b911b676b4ba0f4ee7c2afe5880c8c861ebbeeb32e8a8d0286ff00b78d7ccf180457acbe93c4c64087ec96c6bccd13e719334bda9f2c21bdcbede02b0afd7ee6c87d18c85aa52c07c1f2b82ddd381ec5c5f193c6bb08b01053952a4939dc4542fd511f52c9c2eb7f0c07e1c73a80dbfb599d1b12c655764a578ce989892257fa2ceff798a50789d3c8601c737cad43782c94399c114fdd0a3a6c5d746ab7c2526ede0631cf7d14c6bbe9b05689a51bd1914f6b3878e19dc6d2e6e8ad5040787a88b877647da5988bf25635f3305a2bfa601ef2dd86549023820de5e8d0ac47691e34a066bc2652ac26eebf28c96de81ce0f0e69302c5c152c6b1575d3ec439eaf3c7460991c6143ed1f5acb561f68888aad8c1fc534e4865e9097dbb8f0ed481237ff50e8e5a128d4fa98f2ac3dc1d68d63f3833d58855f44876ad1cd850e942d4cb38ff810ca7206d10870d9561b5fbfdd82182cca024ba77bd6d1911ae75fddb071a905d3ea63c6de82c17e6e7f725f4a7c72e2de7e3d1d33e4127a2aa45ec16809323b370628db45b45432d62e9840c54139ac42432f9d3a2efa9a7156d08e3418dd232935f55ebb49f4bea742fdb0025e41932553e8c14c09f9758e76e93f897c2cccbd85b81a0255988b52ecb8b5ab37d4a4672662f9787178ccbeb5d3e00545f2f279ad9a6e0a2140536c3302dc6e342c0c76757b6171cf7032b3a2bd94b6b4bc64a9fd300b44001cde3925014f438c35f4a9eacaa5f65748d52f2fac89f74108c6dc9eab5e48d16e4f8dae3035e6c165d2eb2502e3b0e02a4f1f2f2b08796f9a70b5c3876cf508faa4e78eb7be677469a1db65edf02f25a0eefe8c7f9da7d40e11adee530716b87135428e5815f7ae1a3fc1084908da653751acfa2504c7d79a73eecec7ccdc41044ad2b2a3ba52e2e53d3a4a76c4a98d1268ab6ab8e6db1b76f134330fee19fc9fad74a991e89f194877cce7cb2c801aec3a46a459124c20b8164544276adac9999c392433e1c7f4df83ec2c8586b0114c36584a2620e1db3e3d6e861b99b48736059d12a1c6958ff25f8bc5b1a5c715f9b1ebcb2894184b29b5b88b5c504ade83d5ac3227f883aaeb8d926409d157f54b311c97d9bf9a496301a5ed5e581d3e519db1b4f7c4804cd589b89abc0eeb9e0c9ddb8a0952e9da9392ba860ad0a8bbc69fa5688c483b2b8db85e33fb9c7231f366a6601c74fc57cf0a99180cc810d1e020b70d2448edfbf843b07b82e75c16f827dd08d14b5572af978267a71a27ef25a8b6d7de643a38578d431f32f12fd6c046f4bc2c4b412749193cc747724de605d71b342373d4df81f2dbe13ea463212c594221095f94ad8f37bbcddd905205d16ecc60a87ea489754f6ed328db710a6a067a35d57a537c3dd9114e5231f10e28a6d1b1cdf4d61ba8ccc67af1b2f06875220b9a731aa1ab843c4fb3d6da6f9aaa249cd331155f285d682a86e802227d776988cfda64ca41681ecaa46479804687fe2b31b9605a2b9aa082ff41f2c0f9817464ade1048782bc25388e01ebb6350c2bdaf2fe1adcbad3e3b9212e58ff3a71bc14e1bc16c34060f968a14372a38c127fb76ce9752d6edc1340b625823fba7a47f368158b59e099d2dffbea77193cc5227d8d5bc6dfdac92ec87c1fdb7af569c95d471a7a41ebd62834a77f764640ea90b6ba2d2ec55bbe0a708b3f23030e88e828efb5c6e6bb2d6b96aa3f4ce67a89647b02e39a61223ac309dae0cebb54043447b80d432d444e6c8df69085010d20ae2c74d4feef306a7d1ebad9f4d8d7504ead9413077b2c9ef931b1200d4a21aef452be939d9c45608258537037f5c43be67a4cef815e241c9afcbd8a8b4d57dfa8c6927b8dc1114bd8c284dd19bf7fad549129193a2172cca682a4b74441df40d52541ba982da06bb5f9fca980a83b439bed1d5b584353c12aaff735a57141f2ddf3c43e3154b2bf573e061310cc8c00aab2330c29facabef308602be76fe59d714df03f840e35ba5807c6a045042570ad710fe1387b016224229610cc08362778f774d2bb60c9975d179527d1e467ff59724e390acabc25dc0e5ee6f98ad600c8f40ee139c06ac5e53b19ed13f022f5167ccbfbbc55b3fcd6149f5485787887f22e18b3c98d786af41432800981d3d7d86e53a132efb7bc42b14353f015addbc9de3185153ce9493e3237a7113baf8d1f9a711bc37d2d548ee0223d3f12e4fbaa688405ef2b76161c28542393b0ad177e04207dc187f6f299b02ef3f5f81e878af970df715ec0634e8e26f25c4a342c8e3baf80559e55086b6ba28136644b56c9b5f530a23bf8780f1957060e6d007b795c69b0946579bd2b37d11524dfef6478937aa18a6a3f08726a84f85d0e93f8912aac26192dc1aa7b462a9584bb590532e74e86faa24785702bd22acf3301888c10ba8b49dbfd4408b1b20db0b71633adbbb28f607949d4b811243bb7f83d6b00aad7998115d068051b83a6247f57b61750988bb4bc99b469ca33ddc2aa6c703ec9cca1759af8fcb0225908c09d0b19b054c7ac73c4bb43dda4319386404c6ec92de32b3a95f6f2a30bacc1d0c90bdc4e486a29966dee1a7fe062e89f6597afd4c678ec5efd8b5cbd935406afdb668abd74bbc0b8cb204e76a566df211689eef2dd9bb6e243645575b41c9a4a9e5d21bdb77a94132eb095ba7926d413484c64b91fb8868984893a9b5edac37fea6e8228c3ed26b90f1d7188f6398d9fdd135c83ad80ee98a1980e54ae82da5802a545b2b75d26daa5ad507060bd9161f3dc4b55833d78f210a2620ef538c05c43c2ca2bf35e856e5098bfc37f8f54f32bb6dba6e56067bf46dc1d9ae98adb869f8576084f0ac43b413888768ff6cbf4cdfea5abe8df8fcd7869ffb4fe175dc31b0047daf2f06e7b8cae850787983819fb7fb335851d123972b5e9e97da72ba14157525a6b3487ded29005259ba2edcde54fadff2571f35eb8de129a718a20b0917dab458c9ca8bd08d029f03df887cdb36975de728d00ad8102151ea1bae8b09398a1b2a9bccbab8b4e53c003cc61f25487e820f71b905112afc357d391ede000fdbdbe1e8e30a48babd969b4eb7623a635390dcb2621b4a125ab435c6b817cf534bfd2ab4f8c13a017e994eb768ad870145afedc3ed70f39cf76ccedf50bda7eef771ad976df76c830cdca40b869ccf6e80203d463d397a6342376d0c3ff7ff509ca0c943b6bd5421580c7be815fe1c7bb87751cd12c6e945edf6129e6e3ff0d64119b228278bbd8b80ebf366c749f297304d1097dcadd596678cdb4463a08304c0a0a74b43f38702104432ed6346665932b0867fd6b6d359ec0bbcf5871e3e5b3ebb1104319c37e533d90a09edda6719c738823cf600ca4af2a310421224dfc06d34ed9e16f5b82bb474d2028d42c5e92f8c38f755d733656a778d2364c82a864dd58ee4da094032587e0a9596056217ac232ef9f8d16503b176d19eb7788f7151eb5e77c5540298299ae34a56c15122d474944cf750577d21350b4fcd2888e3719de45cf0c3b6664a01d781210cb19b5b25dd686f49f218e30db96df3c8a824c821100e6c7f663dde8a1214500b3f5614d5901aa1a22de13c4e2209318bbbc586ebb584e88c4e50cb608f799e79dfd7fdd5d045fd991ddf2b208dd9bf39a591f50e6ec793416e2867f54e8c6c7e89b68c2a3191ecec4d09e8d4cb00f04cc2f475eaab197dc54b026f6ed1bd6304e5334c9fbf050c2a28e6cee57d0cc9611371951519946dd4997fe16f22e5645034ba9ab3ea320043e367d66516cb66f175a015c64199b44af409b83d91209019ee9c530d3eb24bb509cbc6bc987d9ee2df98dab9150931aafe02046f040dd042764e6054c88bdbdfe5bf23415f900196c56b759a81a073dcd7d07d908bab361c5bc1f805e85270d8e8e115bc0bc85aa3d5aacb7b34c840a0e22e2c33d542f35a4808ac18b9faeae765ee1e9afa8145ba4695652b2c4eebdaf698bc74f779e56e7f564150e6472317b0dbe74a73361c7cb16681c63747fd9203b2e244861ff543bdf6ba26ba01d176cbd96888354284a0c9dbe24543b81f8c47a64e940bb5490c7f413cb1834b8fc8c98c09f88cb2264011c3ef917fe651f2678721384c0aae346dfb062e23a2a4e2d7c2b41ebcdd8ffc0679df7140eb7f52e1eebabf827a88182643c59141ae2a6288687b83d817f7fc0daef577e43d1410871f2f9fd1ceff0af825faa55fcc0d9d9d52070dae60f646ec56c0dd111be1c13459b06470c7ff5b6f2fbf79a34b97c69412d94ce88fa6f43b208ab09e58166a2c9d798aaa769dff02083cda7469788210da2c5ee8583b28f7aeafb8a5a7c56137d2b9e2a9bec8a8f690d456b0e4fd814cedd6bb1369cf8926d4f397ec1e37637d00cff0e21dc265594c424d5e0c52ccd3aee99f6562c12f8e261bb97c44795bafc4fe9bca29961d6843547c8f4ce1c60d51b25fcf8317e1371b3fbbed3262199366d90abdd4df9d39a658e36946056f97cc557c78918d50b635167168d5252523e61668746f3a64d1139c39a8a2f3ed9471f795195fe3340ff3263223f851a9a584637d30663d8ec7e13edfe33f0bafdbfdae7309c1c46e2c7e81ebf9d6a0166e2430bfce49685c274988584ad3f2d379bcebecd029a9ae8748d2f21dac9980a50b0efb58bbdb39f8e01d5cf2eacf5f18e1ea0d4e7761ca8169bfdc04b4c1a8bdf68392dc4d3bd0c823e44c56638213982984ccfb3e0b40b3fce97f37ed730ece6e9ebd3c255880afd60ff3f71e4eb67e0f47e1c236caa13bfd90877828ab18824b3e82447dec489e256ba0654f4e87e36da81785b07ab64d835c4c623cf6f2bf6b63ba4d32b8dcaeab0a3cad37e4e2a9ee0250d1f1cc29112da6652ae76a3ed7d53ff02dba81a58737fcc6e19bd887a30bf6a8d17fd52a710604a8e56e75332ca423946d5a576e8cdc4680c0387382bfe1238b7546822feb7ddbfd4fe533189d04569d4e8cee8f10da3b2087f195e5ec030a94596418e0403eb2b73edc68c491fc782787cdf56747723fea50cbbb7e1df5948f43ce3c8963df4f4ea40830ebe6048d2c108c1bdba6a02b7e212fc11488a3aaecfd8531ca75203466e45364f5069108a846b2a251beab218ef9c4cae0d476ede57f9c9600d7067501865679410303efd1d2cb11ddfbb9e812846fdc522c4a92a26d4da30f50ef930b652a4751b329634cce2c3d1f3b741025f8835e981fca47d8bfe4a2d2676a3b1cc020c53832ed35e80b7b63bdc54b1393e35acb61c82d2eb96ed6e2c9e4ee69964c4439071bed88185bc02a322864e34f50341d89d7a1d67a55758a493ac4dc60d58e959245f581873431c0b8e1cac9e4da47d6a26fe1196fb75f392cf735587d7e3dc5a3ebd70d6735d60403ac7fe0325ee7ac6e06b7b3a7b659f04f9fc3ae93fd9553fe6b89d7f62027ca63f43f4bb0a6916f8b00793ae2f8b177b8cd429bf7724507e2bed524baf0aec8834d77cc72c1788eb264d8d6238c63e4aa2f5c829f3044d746da0475dbc2da24143007c32f8ec3aff8dba522b05b98e26f8e89d3cce942b57fb8bdb425ce7c14775adb5763e2123a5e7d4e7568c633916d9560da60f4ed80bbdc4efd4f1d48c4a05fea8f76d1cd6f121b5867c467da67f2364222d0f4dbb93269bdcf3cc881ef05f238284b6c26ee9a4893d8ffa777aa2a8fc48ce6d76d477007620421db41e88a617bba46c10dd4651c3f5c38c48a51c65cec48483363816445096923de5012e91d8ab0158ff5c16ea33b6a15a3f9d693c14d970845af42c6f02f07b49dea05ad4cfc3a34e9cf7897f613adcb89ab113af9975a823996bcb6be09317e2b4569f2f2557c3209eb12c7a97bc4502d0ca7cbcee67416943b61c79a83f449e3f65490e54aedaccc8231c98e89077423fba47385623755188b90e6f8ec3e9321428966664863d6bd8767051fe21c09cee765c4384b0677fc0b59c944d34d42700352831c01ba4cedfb50cc650dc57765d6789fc9d268756d08afd6176c2f9c2c2a2fcdf9dd86e849f1c8c7a0feb7bbc23a0bb8d8e15be01592a5a2f5d66624a88d795475193039f92b1573ad65e8601bc2cad1cb44243249dea0549efec00c742fffe7d8df5c814ade15a220941464ff2aaab2f0acd429b4b9d4c4bbeadaead5c73380916b0a59f3a001bc2549204dac709aac0bea93f29e147b9e0144295a1150eb826eff23e4985a8a2e89f946a6aad9edbd8b4edeb7060792f7986021b1daf42c812b11a40b442f68cfe64646df4f54473e1b93b07b79e05a5e33087fa7af882a69ff4510b80823c6a4009adf9e5f33b99f5b3414f6896a629fcd43cb24e4313567f0062bb76e632c13178cf38f3829f9ffece15a8cec58a88cd96afebf3f298b4493198cbaf8f6acb6787439fe3b5b391f45806df111ea007660bbc7385101dc1c4c938f731318bfaaff869685b9eb42fa2d5dd872ce814d2a3562e782e32bc908e22308a3828143efc0d060327c74ec870acd5966d76154facacfe16bce4dcafa6a72f2259cd7be34ab01fd2095e0215511a3311334bb913a49ed42b63b639253f2a6b0667aafe86fa7f85fdbc3776784195fa70eb608834cac4aae709e24c8a6305cebe6cb5f2318338c3e85468e2431300bbafb7817f541b81df752b405c6a4dd1cc3c5ec2e1f4db46a360e5fab38d50f6a01a37f5eea6cd2b7719ba81a17c77ff3350c3518eb564c9fed8f945ad66c3a16850e4e09e91141c474003922c3aa0848d5ddd73f22e9b31b69a2f48cdc6830fd249ad233ea83946c5623da01a7ee8a2b208ea0092e7add1d05c6593549b9556dc20be999b376a6f68663794f22d45e322fa51f7a9eb252c6a958e2ae4fc5b9552dfbd16261db9800e2b3524893af380ca09bf13ee7e54ee8a65efe40aa1274315a53189f61e3a9d2bd3327846babb1f98e9ea24be44f7c3f1ecb41d63557822f8c347fdd99d1adecd1141ba67467c2b5cb89d3f4b332ef3c6ae3c7323caa18092a4453292e9638addba6a0051aba707dcf1e171cc1f145d50d34387cfa9ffea020108499c37ea43ecf57225fc89c4859bbdc4aa324b1b4c3a62316bdb11b7d5605aaa5ce38ae2b856714bb77f55e428e5ae731036f3313a840342d7d423f5f344c600e347a8014362e5e598a9706701808166a08bd6c6a1bdf3310ee1290412bdc35db04eca937c90039d5db357ba5e5d83ff1c4d637bc9b767f368bafcf446f2fbf3c1dbc05e4350dcae2104afb6a1d6eeb4472b7ca8492bb2ecd435d48595f55142a3243fb1c71917c8a190846bcb89360938b4d8efd4d49426ed088e30fded62f8625ce6ab81ad4206c8890d6c36edc9036a741b83754666096b069916808eb28ab1a5028901287c6a0cb07b23b16c2260cc12701a082cda99dd393748570a9a4c1cdbda7797c155670cad4353199358332a198261650ae2c97b62929434c5b32e750d0366e7e0e9e9a22d6a32b8285f04deb6bd3eba1a80798ba64174525679d06b8a4f3a859cfaa6df1f37ee50933452e814e2cdbc17c4e7dc2a7665952a8d338e6dac2a7fd651a367f4b875a05e684fab3b6a2c4271338bca72033876ab250cd81a2db180cfecefcd0da281e77e85d5558f15041d6ada30844db0a719068712162b05bd6bb3217b9945acac897b69c80b56c81fe8a15e734d1bf2602732e93ee80a13f742b2549369d4dfa55143c437c6934c880ef5d89f2e5ebfeb3b287e6b784ce9f43043a3c2daf50d43683143c962125b4af79629e488ee04e65eb41fff67ad656ee8e2ffdfe7094036e5b1abef04660286f7597ef6d7460d650ba92779d34247cb53b273e841f01546045e42b5a73b519ea319a41d1913f2627261be708fb408d68ad55eb1641548fd328f977fcf1f28a9b5584eb4d73cd65af9dbc600e2cdabafddd9e4920c5be4d62f76daa4062db91580d48228d8c8db5400ddc4c66b778870a331347f1b196bc350ab4eb9d3985c11a1d8565aaeb48f6fe3782966466822c7145d29a08e0a893b6b596f7bcfe2740a5f4de50589baeb9f28cd77e8b2a8454fe3e3dfb9762c84ed4d7b7afae766395ad723fec6c92887e152f4d131c1bcf7cb6fd4c3c9cc4c127b967fdcbd0a581eb2cd6e095a64893fb1c32046158cf27e3d94cbfef54544bd5da4133388d319092509165e984bec0e5f961bc7436d2288b8d50812bcb59d99370f83c59762cdace419bdaf85dcce4951158d48bbb5ac587551a73d3c0272fd89bfd17771fadded51d4523109fb6a66e52968764e1404b6ab73e35e5228d8c1fee46a1952788976844011d5e7a7a59bb46e024af020692fd5b41990c5d35ebe7c2cea93d0cf828f618c5a7d1a47da0b4f388bba8bcdd8afd56c2f9f5c27d70d5ac57d888768f4584aac0327333cd2d896db171883bf253f8a6cfc34d6d88a0b869cbd4dbcc1142bb6447fdefd4d4e71cc84d479eec62b56a477e965c1ae18baae5c15eb749fc56b4faae424cc18a487e11c36cc46315b43c7aa5bb3b5674234e616da3c4fbe6cc4fff941790e942a9e6fd99bca7f1b1eab718db2def6bd32bc869961999eb14176f3c2afc093aee8075a1f3165aaf71c7d1cb39b9e7bc95e01da27ff7a684a79af4670d7760053ad431fd735eb31fad72cd50716febdd11d378f4ffd5637369860406469dfbe0c5fcd8ca10df203bdbe1942c559723c5d539009ce28ddcbd0b57d46f891c11a1e9a434e568c0d0d7ca1b4026b5e99ec674eda6615f5f5ba24463e9e11505fd6afa685d1f780857ecae33065f7155f6ff8acc935d52374f62b1190217db36bc99c0c1e1c4978be91ba4fafe984931a79b5cf5339fbdd531528cfc6788ca424ffa9c96b54b35e623a1061e388cc90b2381ea5c69cd6e23de087a8f78657fa7fa629844bb98c76319dd5a7b5e4a8eeee6743a7cf89cbadccfd262e929cc2301e378c3a9005fbc01cc05d708cb437b067edb3c9349d625fcad0466655504e3f604ab242e84fceee094ce8249e7fa8f2db5c51e5f6a42565a82a7b5c60eb7ca4efc599d56e486dae7d7dc26fee586260470214d5f6ae46b7f321af8cb270611764d59f2a20e55d6aa8a7129d79a7e72db0ef49b979e2fd0409d71ea3cb1bbd6581167ff1f44e0d07cf7b203e4f433d66f7621327ad40129e8780ea9cad3546589d42e28d35f47f84fc4a6722806d4e23a547023c9a4336a6ca86f3f60e4c40c1b07b35292e986e7c5d82198efe94bae247a3a120923ca3a201c4bd24e2705ba11bce863bb3563423f8d8a4b768341b7d60c88205c42d9f9933e8be4faf05617bb5a45c398622345910716e7f328608308b6418c4db23514b196a4cfd56d517ac0e681462d566617917fa688c047b7d74184a3ae6d6dd3cfcc0a3dd9a43ea8a59a34c95f713b62deb69a31c80f60010b15401c0106e8b4c474c919bd25b5a4933a0983be7ba81b72a1bb17f7f582851bb6da343e75e712fb9b7edb13640f235adae9a7d99b154095cb151671c52a1388a50438c143d6c536e91a8ff9eb9fb2b440a1f67b3b35f21d354dc0bfe3238fa558a65d506edfe1c4186398e265ce799a6510906f68df96f59830b12dd20c57c656fa8cb4cc926d6e62155df01502546db07269db663eda219d4220aeb14381917acf821560a3d5825d572186666adde78128056fb5a57863f01e8f50442762ef103f3cc87d7a68f11662bdfa04887002ad1e3df265801b2e5c0a3a260f96266ecaecb7c206d6f5e93e00c7588594c654eea7534c9a19a873121748de0c9aa3b9f6082c0aad1a92d43996e7049372197b71ed4336ac22d525651e052866b03521945f8de82afba7267812d6315fd94175fb21f2b735e1b5a4a454a4fa0055e941bccdad71a29b9871b8e617860da0720e176842e2785ba5d95b59519d943d4e0c808d05487faa529971cc532b56e1d3ffb4ffaeb2c056cf65f7dcf91cf16db218de3eff70ed81205dc5d2fa936bbb8a93612ea83ec1f67c2a828639577e96390b54cd7d2b9eef370b60f4cb30199c0cfed9f525d9ac1e4e97c61f754295658c6333bfbdd925e2d47675ed36a5057ba253733b9fc5d6e167935cce61f881d1bed20ddb234ffc5b011fb1b33251fe0a6681f444aaedecff6bdc164aa673d7cbc9b1bd2816e7861aba98cb62327fa6bdd74483f14696a75090e1855263d80e9ba8531b8219aaa2539425b05fdf349d5ab7a7e6e3ca598bc20e25f4404c9e20064774c4c617d6de613ae8bb266d0e4fb8f33ba9e5cbbd77d89302cb124a75790128cd11e0c1654d2d3769823563271c566671ad638f0cedffbcd45f242e212b0f0c144c31119016ba2a4aa1982c7afad07d7f1d92c4281311d99b753702f9637f7af01752c2569f8804f855a0e185f7d603f61d0307769036fd65edb46ebe35590b756f4b230bbce971bc01de077b3a5e5ab1cba7db1d3ea161b785fb9ba3344c355fba67324ee734c1490631217bac5b4d939d175a7f8d45aa9f4da9b791045a411021e26180fe8ea4e6affaa2babde5617a6c21d035bda3f468e60212dc6e5ff9a2c28a5529144931a5e1a77e9311e1a59a0d85587c02798f6078c581cfd41e98d772519e85877fea2efab4025ec38948eded08272914e04645587b6c5ddac6aa2e42d52e053c785825b07f674bf147cbb1d504794cd8cbfb827d955b532d887c3055dd165b9da74f3f07c68d87c4614722ee77a199c7af54843248d1322228490fb5e263159828f0ba29f4e0aca898a80f54bfd5afc21614b23696078ba77e32898bfde3c67aca9e454f35bbea67b0506f363789b67539f64b3f9936772c76450eac68500a8489a9e627c9cba624034d53da8f0a6d62e5dda51534d9b97cb25c576a2c8416b234c4349f310dc9ca7279522b6cc27711365d403462ff9b9ea0bb68836340505beeb8f878a8a3f16afe71fe40536976e35a32b24f57171197248bed1674b1f3155ba7ee48fcacd182d23d5a5ac74a7e87c3f4ce5d400a4860059f5d9bb20041a719b2bfe8f91d9dfa75cb0317722c28f7b34c713477378cf21acf1e21b65d6f36c31474521d60d641783171dd59685129f19c0a2731baef1e252447b907056383d8f152140c5ba6b02b6385265c238365896efb392e24cbbedf583079d91535b003e3d3d20e67a28ebe5b77393230b2a414a94f216e9e6f9b2a28e3f1907191752f24353c27fbff2893e6b67ba791e15d1847377bd1a853a059ef9bfa6cfb8403d4cbc0ae9b0f52cd7c441c07fdac8dc1bb12b1f5c31b50e18dfeaaaac1d68fde43be48e2633d7ce35370e43fdf5a3715baaa8dd2ffc88af3928bad5501c2b2fcfea8154417f0e2c8cb97c0f063cd7839dfe7747d588c16a5fdbd84926ec467d3993fdc90f7a644c7950a177cd8f7a01e7ac0fd107143b81642b26573026c52750506c024c25ec29a2eef7b92e4c2520823f342e16dfce992e5becf6b399ac34014b97ac94095f4a58d5bea73a4c8604c95024d9d79be4153826cd8f0c7e3b31856b61c41ed539439e448a6b6a71f9daaf6253663392dd4059a0b0b6cfec8a79c89cccc08be8370a69840e7418968e4d491ee5938b539c29f4e62c3730c8f6f328fd53ca67455ab0b33e62695d85180aec9b46289c6a455e39e86b44d319acc068abc5a3db813b714357e8d0d697e988766dbf90429c8f0784ab8ba1c47c0fed2cc374b718f3a6bbb9f7691efe953142613a5cf3d52e0d46e657c9984156caa807bfd1703090be57239c9841cfedeb4c0450ce165c2790d601c14b230cb3ad8cb42859fc3a97a2b61fe360aba3c82a3c75ac8d77b339d6d6ddf9586cb7eeeacbe3fd754752b525d6343f3275afbbcb7df6f4fb7aee7f72e9bd58f9d39ab27f97fd120436e23db133a71752f2e5c0cbd642455ce7605e5591a546acdc6536e04a32dbcb0db0ef66bd464e0d8009586d8b668d297b636df330d24f07577752fbc0ceb345d5161664e84bb3bddb7c456b33a9e85767767d971a6b72f602ccdbd10e933290e6dc476aaa58cbada83dcc0d522e313c65a95cef1688b6ead33d78bdc6db5ccbd333315bfea4d70658f474a384ee381d46181b36f3606a1b0cea1fdc9058376b478566f7fa74e51f1d14182fe73a8f8f2e6628314587914fc129f8fc64d6bf4bf915d8c0319dcbc90dc3454a3ac0395d5e8b1335018b78fcf460f3060431d414ab81aeb37f07c99547cea3ad5d62507ffa946865050df8698bb88aa38883ccfe6169cfa7dfe096dee800fa426263618e73ab640224df86aa1ddb158d59baac7cd7e484f575cac42a74829956e8fd9cdea97c13066bdc56494c8adb3f0bd28f25c1ca1f032b4bdf83217b1df02e2ecde695ccf2b69da371feda97e2cdc024cb33b5891df1905610c98f9b28f7a43a8791e63317bac337e0a73d7d4f360c7a2f7166164b1c6dfbc2606ab1adc51082216f22992f0e00fbeaa1900e1678351e177ff6e403a6e114b07ae8cc05de2771de0ca07d70efd90aa6b7adbfe60b4c6abbac85d19326a752f54dd973e6535b439d00d2662f3573ce16c012b47f1d532e636da15554b1b5911e4de7234497d77e4ea67e8f6929dc5d753325d84c8fdace6a8337cea93e0c2d8748e8137078797092c0d31c85f2f18729b253edc88bfc5febff2cc38a9cf4401b0998481653c945d017b337bb21ae0fc6f969ed0ec1826bbd2ede4cf5d843768b4e12df207bf18974f46ee11731b4774d586003fd1c78cb4707ca9e8b8e872f62711fd6929674ea251d72e9aa168191e2587d614b149e25cead128fc1dded7321678d6caaf6b4034005f2fce413c7a73e2f807cf67f9de3b8e1e763688924ff66ba6051def4a406af45afa02ccbe6cddf28df36c02c147c1732e9ff6f5ebbbe1d336117247d6d720af1df0ee844a7b5a910afe61f0ab1ca49f339f6af66f30319536fc94bc4fb69d53ffa6226dad4c1ab03358666cf9026ee55aa639e688e45a6d1b7ea9e66765f9e73bb980c8d93c19cdc3af8f28f49870d7f14907e8d2c7a7a988a49a7cfc7953448985e87edf955bb7057f5757bcb19e3d8ed934eb535175fa79d4a58a3cfebaf89437e4a347d017309f14e72fc4d2fc65d81afd22ee82224130e2a9c97eb7ca3e050235ff957703a49ffb9f254a2f12fc6219681f82fcd8f1631ca0b0c7b38925daecbda9746fba6fb5d2fea824b50ce06c3aee39a6125631c37696936b41da117739ec1343f39e715501808517bb8f69ffd600aac94a23ea874b641cfce423a45559fbd810a3d55e8809738d4f03f89641061ecf2200f65328a7c879df2c4261588b8be1b4a23fd1938fd9d11a8a1a41c039c51e4dce3d91744bd72cee99c5edfaf40d5895f941866889a3d54ca26ea6bebffc2175bbd0a3f9eb131a5441bf8686bf5647b9dc22a188a51a18adcb583aa1a3e18de24d25615ebc2ad5b0be8203ef069fa67fec92cd4648a174a6979b7b14694cb3d7de97b0c0d3332c1aa22f648d5bea1260af48adc5f3308fb7887e47e0aa0c8cff968a99041b91d1d2b1026fcf406eff34c4aa694c113e8d4578d020203f85d5532c317019976349cc8b69b812a87deec5b796745fd21f48635ee519b8a31b565c20038a03ca865f41a43fba4e7855358f3ba1e0ad0950c7722eca8ec89d58363c3767b7e11b3a3d721ab4bc9dc872a7c76c1ea75df5ac3d038f7fd23e76c23545891b03449aa6c556018f9d4be60b81eefdfbcb1c23bb1dd1cf1e358c46f529bc4faa7a55ad1615868793b041eec74b586c3b91d6d16706f8eaf5957fd97dfce2d3d086b458d55855d665e920ac15d341dc130daccc468ea6e92c2f65d5f6f4002e58a8c01f1727de258b597e5d2bfe513c7f218d0e3be0f16fbc96f01356b2ad13af3eb095217b81c4245fe7a755b914dfec6f45493c808fec6da5eb9a8f735d744246fac0eb9ab7b0a58f2d97b25324e5aa922ca3dc1e9960990cd3f67ff5a2c1f02d91fb66eafc6d85f303dffef5be7562b192dc90e8df76f9ae3712e06ff3554e5f560cd6aab650a91787987bd027186343ebeb1618881224293c2966cb2efe8154fe2e9534fd166adf589b0e0e8df5f10374a528b29c70804e5c81ad46ea5dfdb2382e05cf2f77dd3e87294a117e82b9467c32f6145dbe5e16acbff2dc89d1e4518d95da991b84d4c318ce07d48594ee7282c56e3e3ed2cee4988071c043ac9e879c9339b78a8db8b59db716748b2ad60e4cd32a0429a736ea9185443c2f479d4f86ba1693ebf7e05f9a0a0a9c1e10bd7c37de22107a196ff707b4011636266aa01589d21c5797ba381114914c504ccd8cfb04a582b6b31fb76d4c23ac5a68a1c9698ecfec018d228a4b08d5518e5b837e693e8d07f39d80be6a7dccdf16fa90de585bb5dfc415e8d7ab291281fb70de5fd00539442e7fbfdf1702bc9ad4f2254fc8e2a56a0b0abcf7904357a0aaa891be63ed6b247293a686498abf4a4845a1ae2328aefbaf1e7fa6685c35080f5ede32119677f1afa255dc59deaed5629c1acee4caaba596fa13b75fdc676055088af4925332c27658d1d1f7c2ff96e17672363b7802b15b9e1342d79071ace69d0323d953f7e6243fafe1906feefade6971dd2c81fecc05e957e74de15b2b449c1535507bfea6d64441a235f7b137f81a2bf0f0b31eea405ec4103bc9fcdc8e077aa32c67b44813e2a8f70f154b9e7aecd090b04e6ae50b68d3dccb67caee260c93925f6b6786f27f1ac589ec54e5ce256c9a188c56b5e1321aefabdd29b964019d4f91dbc9bbccdbbac54246ee36a8b4a33e75c09ea5be1a3bd2b0b98f024b6760680cedfca08dd6802def86eb594236683d226cf1480bcfa64ff61febe493d202aa31e75d8cb2e5cde9f7ff031d0c6aed0bb22391b30fe294def6ad3d652f126d6c3cf3d8f180c66c9e668209c7f0ea32b2bb0f19a50b37f4ed31dbef263da27d0a36261720a446a7f813ba5d5baba988781a349b995b6dc89d7161fd49aadb7dd892018c52910c4c51cbcc41cf7a05fd42d226fc3a39233a117a72c950a7114ee34ac360710243f3ec1e44b1bdce878758e75de4c400eeae34364da140e3300c28a0cbba4e8ac8c9cab4d0ace68c1f15f6778dbea700b0941cfdbfe02e01e92d2d13a51bd43282474e1867a500cbf8a59362f66e7d483e819b55582ae67071277a86f7e7bddcfa0281092ce74b2934ed4d6182f6d64db822bfeef6e3b2e078b784492bb5976df31821d0b132129d50675b673be741e72fe607fa24d58da3384d7cfb97f729bc8df548e422d7278293077226a4eac7706ed73f00bb681eb4a7a14b4c5a96d39a5bdfcb2c84fe75893c8c75f5ea3f4e5720d2dbfd3d22bcc0e3d9b7f6f300614ffc7603f070facb45a432ae6e837d60cd4cce9d7ab155c29120ffb57246e2d1dcd9d5cbcf8e46cfdb33b27b7ade5f3a72ce16ed86a7ca7a64aec68b8a065fe04ffac5ebf43db2f9087bd6901b53db089870024b1c10aef410329fa2c7bc26a5a65b91d081aaed7c7dcba7950ed505bbc1793cb2e095c5f14d88c6ad0ba2b0f713d18eb6430b8d1680880f4fe2f2a1330edb07db023d4f460513f3734704925a103c2b97ce9291030fa3392a1850376275fe7d3aafc77f7f94015816e2f922b7690f2f6d083213bfc8db0e2ed2bc153d6181aef9ca65ab0f9279336a3c45f3c5dcb2dad4df17bb617f13baf87c418caba7ccc589a8f095c918b543700c7111a1eaaa70be9532e43dc7a90702e27b7922e293f900c7f3a57f298a3598dc094508d463733736cedba13979d7dfb096b67fe09cb358372d098f7bdf35aafabdd03deb6d617a0a52400dc6191355180235635426e5d2ff421d791e52e957f237772d878e525da198d4a2c6e330f8cc7c06b55683d7535a673f77748b445dd760c56114bb38700e01eda74aa6a6c4d8428797ab03da807859a1b1887a169188d0220b37ba624f47aa0c318e3f06099ae5598f01d4f594b36c502c71d8074366f209a3080beace997df95453836b4d9605bea5430146d1fa24cde44e743e509327a0101b798f4308852e3056148997a2b29ee54287a82f5ea6b257c35d62f69c9635f8fea6647201f495e8278026a2a1a530dd5c83addb8c9b2a28e82e4c0fd12de38bfdbd6ad11d0adaeadb3c4ff485887ddef72fefbbdefac56de28bf7c2b05784d42460a0cf6b05d2a909f01abbd20d48b2eb6f06fac7f3be9b827e2f26b328b5e8b739f870036ce8fbc32146fa2e1180e49c78f2e2a54a2953fee17404770f5757f5d9d8afabece19fc50e5191bdf24e0c06065abe0cdfd42c32d4439639cd62d2a7864cb1f2f53812d6d66ab009c30121ff74f0627c8947a9676dcb381a6e07aaa081397299a7426b8defa57e5bc355ea7779064ac4e866db7aa8c08ee8af1215804c3d61a96b687de685088761a4b43fa38d8921512d6dae6bf874202a6d25bb6a2eab9c38f57023ab051a3402cdd89f4e937fcbafbd8abe9d2b8854883e9faefec973c192314458817e68310b437e0b86f51cf36597f63d0f7688b7ebe2eab5115175578732db926bd3689d5785ee3324c1467683d1829968faeda30b764735230089f3164da402691359820f6be771a7a5dab2d48a2b0b193ec9a98de2efe9e64323ca7a35320d06ccaf86194d7820ac20c45566b11dc58941a2551f5a6913fab97d53db39c75cf4714dfa9ee3a6e49f76afa25aa2bd1d74f1d5b7c05d3078546a47cea6bd0c870e5fa42448dca3e130648bd3a2079f777b3fdd3023b274e03803044b978a631767e0c38f02d12f03263c1abea87dea54933e983d04ef43ecbb2fddde2b507ff0dab259ea0f6bba5bdc1c64353d5a2426ecae2a55a166593f4b0651507d963e9c36d7278b1541e6e1b5c588cfb4fc4762e6919a3926c82260fb54a5d4042abrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootdpdk-18.11-4.el7_6.src.rpmdpdk-doc    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.11.3\j@\Z@[1[1[0[[`O@[U@["X[d@[@[@ZqZqZTZ2gZ'Z'ZOYYYMY:Y9<@Y9<@Xg@X@XIK@W@W@VJV@VVhVEV*!@V +VUU\w@U[%UB@U:0@U6;U0U&iU#U/@U:UF@UF@UU U T@T@TPTPT\@T T T@T~T~T~T~TܕTD@TD@TԬT[@T[@T Tи@Tи@Tи@Tr@T T T T T@T@T@T}T}SGSǺS@SESSDSSSr @Jens Freimann - 18.11-4Maxime Coquelin - 18.11.3Timothy Redaelli - 18.11-2Timothy Redaelli - 18.11-1Timothy Redaelli - 17.11-15Timothy Redaelli - 17.11-14Timothy Redaelli - 17.11-13Timothy Redaelli - 17.11-12Timothy Redaelli - 17.11-11Aaron Conole - 17.11-10Timothy Redaelli - 17.11-9Timothy Redaelli - 17.11-8Kevin Traynor - 17.11-7Aaron Conole - 17.11-6Timothy Redaelli - 17.11-5Timothy Redaelli - 17.11-4Timothy Redaelli - 17.11-3Timothy Redaelli - 17.11-2Timothy Redaelli - 17.11-1Josh Boyer - 16.11.2-6Timothy Redaelli - 16.11.2-5John W. Linville - 16.11.2-4John W. Linville - 16.11.2-3John W. Linville - 16.11.2-2Timothy Redaelli - 16.11.2-1Timothy Redaelli - 16.11-4Timothy Redaelli - 16.11-3Kevin Traynor - 16.11-2Panu Matilainen - 16.07-1Flavio Leitner - 16.04-4Panu Matilainen - 2.2.0-3Panu Matilainen - 2.2.0-2Panu Matilainen - 2.2.0-1Panu Matilainen - 2.1.0-5Panu Matilainen - 2.1.0-4Panu Matilainen - 2.1.0-3Panu Matilainen - 2.1.0-2Panu Matilainen - 2.1.0-1Panu Matilainen - 2.0.0-9Panu Matilainen - 2.0.0-8Panu Matilainen - 2.0.0-7Panu Matilainen - 2.0.0-6Panu Matilainen - 2.0.0-5Panu Matilainen - 2.0.0-4Panu Matilainen - 2.0.0-3Panu Matilainen - 2.0.0-2Panu Matilainen - 2.0.0-1Panu Matilainen - 2.0.0-0.2086.git263333bb.2Panu Matilainen - 2.0.0-0.2049.git2f95a470.1Panu Matilainen - 2.0.0-0.2038.git91a8743e.3Panu Matilainen - 2.0.0-0.2038.git91a8743e.2Panu Matilainen - 2.0.0-0.2038.git91a8743e.1Panu Matilainen - 2.0.0-0.2022.gitfe4810a0.2Panu Matilainen - 2.0.0-0.2022.gitfe4810a0.1Panu Matilainen - 2.0.0-0.1916.gita001589e.2Panu Matilainen - 2.0.0-0.1916.gita001589e.1Panu Matilainen - 2.0.0-0.1911.gitffc468ff.2Panu Matilainen - 2.0.0-0.1911.gitffc468ff.1Panu Matilainen - 2.0.0-0.1906.git00c68563.1Panu Matilainen - 2.0.0-0.1903.gitb67578cc.3Panu Matilainen - 2.0.0-0.1903.gitb67578cc.2Panu Matilainen - 2.0.0-0.1717.gitd3aa5274.2Panu Matilainen - 2.0.0-0.1698.gitc07691ae.1Panu Matilainen - 2.0.0-0.1695.gitc2ce3924.3Panu Matilainen - 2.0.0-0.1695.gitc2ce3924.2Panu Matilainen - 2.0.0-0.1695.gitc2ce3924.1Panu Matilainen - 1.8.0-15Panu Matilainen - 1.8.0-14Panu Matilainen - 1.8.0-13Panu Matilainen - 1.8.0-12Panu Matilainen - 1.8.0-11Panu Matilainen - 1.8.0-10Panu Matilainen - 1.8.0-9Panu Matilainen - 1.8.0-8Panu Matilainen - 1.8.0-7Panu Matilainen - 1.8.0-6Panu Matilainen - 1.8.0-5Panu Matilainen - 1.8.0-4Panu Matilainen - 1.8.0-3Panu Matilainen - 1.8.0-2Panu Matilainen - 1.8.0-1Panu Matilainen - 1.7.0-8Panu Matilainen - 1.7.0-7Panu Matilainen - 1.7.0-6Panu Matilainen - 1.7.0-5Panu Matilainen - 1.7.0-4Fedora Release Engineering - 1.7.0-3- John W. Linville - 1.7.0-2- Neil Horman - 1.7.0-1.0- Neil Horman - Neil Horman - 1.7.0-0.9.1.20140603git5ebbb1728- Neil Horman - 1.7.0-0.9.20140603git5ebbb1728- Neil Horman - 1.7.0-0.8.20140603git5ebbb1728- Neil Horman - 1.7.0-0.7.20140603git5ebbb1728- Neil Horman - 1.7.0-0.6.20140603git5ebbb1728- Set correct offload flags for virtio and allow jumbo frames (#1669355)- Backport NETVSC pmd fixes (#1662292)- Fix python scripts hashbang - Remove meson.build from dpdk-tools- Add conditionals to build on RHEL8 and Fedora - Updated to DPDK 18.11 (#1651337): - Updated configs - Added libmnl-devel BuildRequires for Mellanox- Re-align with DPDK patches inside OVS FDP 18.11 (#1646598)- Backport "net/mlx{4,5}: avoid stripping the glue library" (#1627285)- Re-align with DPDK patches inside OVS FDP 18.08 (#1610407) - Backport "net/i40e: fix port segmentation fault when restart" (#1610481)- Remove dpdk-pmdinfo (#1494462)- Re-align with DPDK patches inside OVS FDP 18.06 (#1591198)- Fix mlx5 memory region boundary checks (#1581230)- Add 2 missing QEDE patches - Fix previous changelog date- Align with DPDK patches inside OVS FDP 18.06 - Enable BNXT, MLX4, MLX5, NFP and QEDE PMDs - Backport "net/mlx: fix rdma-core glue path with EAL plugins" (only needed on DPDK package)- Backport to forbid IOVA mode if IOMMU address width too small (#1530957)- Backport to protect active vhost_user rings (#1525446)- Real backport of "net/virtio: fix vector Rx break caused by rxq flushing"- Backport "net/virtio: fix vector Rx break caused by rxq flushing"- Enable ENIC only for x86_64- Re-add main package dependency from dpdk-tools - Add explicit python dependency to dpdk-tools- Update to DPDK 17.11 (#1522700) - Use a static configuration file - Remove i686 from ExclusiveArch since it's not supported on RHEL7 - Remove "--without shared" support- Rebuild to pick up all arches- Enable only supported PMDs (#1497384)- Backport "eal/ppc: fix mmap for memory initialization"- Enable i40e driver in PowerPC along with its altivec intrinsic support - Add PCI probing support for vfio-pci devices in Power8- Enable aarch64, ppc64le (#1428587)- Import from fdProd - Update to 16.11.2 (#1459333)- Avoid infinite loop while linking with libdpdk.so (#1434907)- Make driverctl a different package- Update to DPDK 16.11 (#1335865)- Update to DPDK 16.07 (#1383195) - Disable unstable bnx2x driver (#1330589) - Enable librte_vhost NUMA support again (#1279525) - Enable librte_cryptodev, its no longer considered experimental - Change example prefix to dpdk- for consistency with other utilities - Update driverctl to 0.89- Updated to DPDK 16.04- Disable librte_vhost NUMA support for now, it causes segfaults- Use a different quoting method to avoid messing up vim syntax highlighting - A string is expected as CONFIG_RTE_MACHINE value, quote it too - Enable librte_vhost NUMA-awareness- Update DPDK to 2.2.0 final - Add README and MAINTAINERS docs - Adopt new upstream standard installation layout, including dpdk_nic_bind.py renamed to dpdk_nic_bind - Move the unversioned pmd symlinks from libdir -devel - Establish a driver directory for automatic driver loading - Disable CONFIG_RTE_SCHED_VECTOR, it conflicts with CONFIG_RTE_MACHINE default - Disable experimental cryptodev library - More complete dtneeded patch - Make option matching stricter in spec setconf - Update driverctl to 0.59- Fix artifacts from driverctl having different version - Update driverctl to 0.58- Add driverctl sub-package- Enable bnx2x pmd, which buildrequires zlib-devel- Make lib and include available both ways in the SDK paths- Update to dpdk 2.1.0 final - Disable ABI_NEXT - Rebase patches as necessary - Fix build of ip_pipeline example - Drop no longer needed -Wno-error=array-bounds - Rename libintel_dpdk to libdpdk- Drop main package dependency from dpdk-tools- Drop eventfd-link patch, its only needed for vhost-cuse- Drop pointless build conditional, the linker script is here to stay - Drop vhost-cuse build conditional, vhost-user is here to stay - Cleanup comments a bit - Enable parallel build again - Dont build examples by default- Fix potential hang and thread issues with VFIO eventfd- Fix a potential hang due to missed interrupt in vhost library- Drop unused pre-2.0 era patches - Handle vhost-user/cuse selection automatically based on the copr repo name- Dont depend on fuse when built for vhost-user support - Drop version from testpmd binary, we wont be parallel-installing that- Remove the broken kmod stuff - Add a new dkms-based eventfd_link subpackage if vhost-cuse is enabled- Update to 2.0 final (http://dpdk.org/doc/guides-2.0/rel_notes/index.html)- Switch (back) to vhost-user, thus disabling vhost-cuse support - Build requires fuse-devel for now even when fuse is unused- New snapshot - Add spec option for enabling vhost-user instead of vhost-cuse - Build requires fuse-devel only with vhost-cuse - Add virtual provide for vhost user/cuse tracking- Disable vhost-user for now to get vhost-cuse support, argh.- Add a bunch of missing dependencies to -tools- Another day, another snapshot - Disable IVSHMEM support for now- Dont fail build for array bounds warnings for now, gcc 5 is emitting a bunch- Another day, another snapshot - Avoid building pdf docs- Add missing dependency to tools -subpackage- New snapshot - Work around #1198009- Optionally package tools too, some binding script is needed for many setups- New snapshot - Disable kernel module build by default - Add patch to fix missing defines/includes for external applications- New snapshot - Remove bogus devname module alias from eventfd-link module - Whack evenfd-link to honor RTE_KERNELDIR too- Add spec option to build kernel modules too - Build eventfd-link module too if kernel modules enabled- Move config changes from spec after "make config" to simplify things - Move config changes from dpdk-config patch to the spec- Fix warnings tripping up build with gcc 5, remove -Wno-error- Move the unversioned .so links for plugins into main package - New snapshot- Fix missing symbol export for rte_eal_iopl_init() - Only mention libs once in the linker script- Fix gcc version logic to work with 5.0 too- Add spec magic to easily switch between stable and snapshot versions - Add tarball snapshot script for reference - Update to pre-2.0 git snapshot- Disable -Werror, this is not useful behavior for released versions- Fix typo causing librte_vhost missing DT_NEEDED on fuse- Fix vhost library linkage - Add spec option to build example applications, enable by default- Enable librte_acl build - Enable librte_ivshmem build- Drop the private libdir, not needed with versioned libs- Drop symbol versioning patches, always do library version for shared - Add comment on the combined library thing- Add missing symbol version to librte_cmdline- Set soname of the shared libraries - Fixup typo in ld path config file name- Add library versioning patches as another build option, enable by default- Add our libraries to ld path & run ldconfig when using shared libs- Add DT_NEEDED for external dependencies (pcap, fuse, dl, pthread) - Enable combined library creation, needed for OVS - Enable shared library creation, needed for sanity- Include scripts directory in the "sdk" too- Fix -Wformat clash preventing i40e driver build, enable it - Fix -Wall clash preventing enic driver build, enable it- Enable librte_vhost, which buildrequires fuse-devel - Enable physical NIC drivers that build (e1000, ixgbe) for VFIO use- Update to 1.8.0- Always build with -fPIC- Policy compliance: move static libraries to -devel, provide dpdk-static - Add a spec option to build as shared libraries- Avoid variable expansion in the spec here-documents during build - Drop now unnecessary debug flags patch - Add a spec option to build a combined library- Avoid unnecessary use of %global, lazy expansion is normally better - Drop unused destdir macro while at it - Arrange for RTE_SDK environment + directory layout expected by DPDK apps - Drop config from main package, it shouldn't be needed at runtime- Copy the headers instead of broken symlinks into -devel package - Force sane mode on the headers - Avoid unnecessary %exclude by not copying unpackaged content to buildroot - Clean up summaries and descriptions - Drop unnecessary kernel-devel BR, we are not building kernel modules- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild- Use EXTRA_CFLAGS to include standard Fedora compiler flags in build - Set CONFIG_RTE_MACHINE=default to build for least-common-denominator machines - Turn-off build of librte_acl, since it does not build on default machines - Turn-off build of physical device PMDs that require kernel support - Clean-up the install rules to match current packaging - Correct changelog versions 1.0.7 -> 1.7.0 - Remove ix86 from ExclusiveArch -- it does not build with above changes- Update source to official 1.7.0 release- Fixing up release numbering- Fixed some build errors (empty debuginfo, bad 32 bit build)- Fix another build dependency- Fixed doc arch versioning issue- Added verbose output to build- Initial Build  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~18.11-4.el7_6      !!!!!!!!!!!""""""""""""##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''(((((((((((((((((()))))))))))))))))))))))))))))))))))))))))))))))))))*****++++++++dpdkapiannotated.htmlbc_s.pngbdwn.pngclasses.htmlclosed.pngcmdline_8h.htmlcmdline_8h_source.htmldeprecated.htmldir_082fac248c5922c9b524b8ed4e70e149.htmldir_09939486c1591516b984494000c3f64b.htmldir_099d2d80b969e7fd740b685b10b04f52.htmldir_0c4a44b1891135ef8e3f51c114dfc40e.htmldir_0d8d734d473b3cabdef3fd977d50bf3e.htmldir_13eeac154bac823f6a128588ab25dbd1.htmldir_14bc92f4b96c8519b376567118ac28b3.htmldir_1cb3d74b2ac9573f839cf243cfa1bc11.htmldir_1e371fc4c61fbb916177b5ec80f09b33.htmldir_2154f83b08d9713661fee356762316ea.htmldir_2164e25561eabb34d2bd0b8fdda0aeba.htmldir_280cb7b638dc3c2b18b46d48e8ebb350.htmldir_2874bf55c2200dd42774d2ba99074e53.htmldir_2d618a55e588f156483774ccf7b84b21.htmldir_312e5f832048176c38c17335b02a769f.htmldir_313f6c18e163a6142a5a3b7a38753440.htmldir_3241a1b75803951af6cc6f4dc301eca1.htmldir_35ae03c0f35416b98825df846a315ffa.htmldir_38b2ae9befb282239df37d3eaa427f9c.htmldir_41189bc1b2cbbbf473cc198cfd351ef1.htmldir_425fd6afd4367244802c1f095c2bd91a.htmldir_465fee731b4650f251292c02a329fbe4.htmldir_4a8e137842b96fe670fd4b2985ac89ae.htmldir_4b8e6c0016b49edb5f37b579e2023f82.htmldir_4d32756cfe7396f6b5bd672081496d5a.htmldir_5035da364ebbdb660400f67ccee744ab.htmldir_5188debcb509bb3663f061cc199aacda.htmldir_537c65abdcc57b6687fa40a177fe2911.htmldir_57fc2e9d988df25248b2986356737354.htmldir_5dafd97c0d945e0ac41aa1317e88fadc.htmldir_5e14993b9b1571024c777dcdb495ae81.htmldir_605c07ae6e02b3d13cc3bf92b6c5e54b.htmldir_6242a765e90f02e6b399e351944e02df.htmldir_662763201df975e54664a452d4fba6a4.htmldir_68cfe39720133e98f6e3a4074209d013.htmldir_80017d03a93d1c6dc29fe032f2756a58.htmldir_85ecb587e53a4a73ea61471f0b12c7cd.htmldir_87f0c34ed8400daf07819036fa8c39bd.htmldir_88c81b6ae6213964a6a534ee00cb813b.htmldir_91ededd9c78ad866b6d26d7a496929b6.htmldir_97aefd0d527b934f1d99a682da8fe6a9.htmldir_9b3d03c4eb61cec62b5319e654017f5d.htmldir_9cc23110c523433deab11cddab39a876.htmldir_9dfdb91ab02719873a80bed01b3a1a5d.htmldir_9eeab561cdff5b79b69e3433d5c0167e.htmldir_9f54a0e5c0accd58ed9d59aeb0a494b6.htmldir_a837e178e589be76a266a59d671110cc.htmldir_a914dcfab5ff2d1bc9dd6b873a7b604d.htmldir_ab1cf081cc3a382f37f4faf4624bc98a.htmldir_af404d643d0129b0e925f84c76faf17f.htmldir_bab3158cba42af609928ad7bdc323e4b.htmldir_c546cd799bdd92435e34b0203cfe1750.htmldir_d5965c24693e7b1ab7ad0767cbd37f15.htmldir_da18e332567afad90ca07324c52c5833.htmldir_e4d91705e579e3718a61980d7fa2b542.htmldir_e6bf5b3b5611bc8c19dd42f833c7eb40.htmldir_eaabdb77807ddb33c9f95a20e00c6648.htmldir_ede7e24c7966ae13eacb9e9d5c8994f5.htmldir_f3c49864a69d49874faab6e12ff2e6f9.htmldir_f5e0cc2a752635854ee1050679b5092d.htmldir_f9bb17aa67306532eda035e0955b885e.htmldir_fd57c5f233fdd9e7da26a5e5f646d081.htmldir_fdd811c43070b66c424782ec94ee51d7.htmldoxy-api-index_8md_source.htmldoxygen.cssdoxygen.pngdynsections.jsexamples.htmlexamples_2bbdev_app_2main_8c-example.htmlexamples_2bond_2main_8c-example.htmlexamples_2cmdline_2commands_8c-example.htmlexamples_2cmdline_2main_8c-example.htmlexamples_2cmdline_2parse_obj_list_8c-example.htmlexamples_2distributor_2main_8c-example.htmlexamples_2ethtool_2ethtool-app_2ethapp_8c-example.htmlexamples_2ethtool_2ethtool-app_2main_8c-example.htmlexamples_2ethtool_2lib_2rte_ethtool_8c-example.htmlexamples_2eventdev_pipeline_2main_8c-example.htmlexamples_2eventdev_pipeline_2pipeline_worker_generic_8c-example.htmlexamples_2eventdev_pipeline_2pipeline_worker_tx_8c-example.htmlexamples_2exception_path_2main_8c-example.htmlexamples_2fips_validation_2fips_validation_8c-example.htmlexamples_2fips_validation_2fips_validation_aes_8c-example.htmlexamples_2fips_validation_2fips_validation_ccm_8c-example.htmlexamples_2fips_validation_2fips_validation_cmac_8c-example.htmlexamples_2fips_validation_2fips_validation_gcm_8c-example.htmlexamples_2fips_validation_2fips_validation_hmac_8c-example.htmlexamples_2fips_validation_2fips_validation_tdes_8c-example.htmlexamples_2fips_validation_2main_8c-example.htmlexamples_2flow_classify_2flow_classify_8c-example.htmlexamples_2flow_filtering_2flow_blocks_8c-example.htmlexamples_2flow_filtering_2main_8c-example.htmlexamples_2helloworld_2main_8c-example.htmlexamples_2ip_fragmentation_2main_8c-example.htmlexamples_2ip_pipeline_2action_8c-example.htmlexamples_2ip_pipeline_2cli_8c-example.htmlexamples_2ip_pipeline_2conn_8c-example.htmlexamples_2ip_pipeline_2cryptodev_8c-example.htmlexamples_2ip_pipeline_2kni_8c-example.htmlexamples_2ip_pipeline_2link_8c-example.htmlexamples_2ip_pipeline_2main_8c-example.htmlexamples_2ip_pipeline_2mempool_8c-example.htmlexamples_2ip_pipeline_2parser_8c-example.htmlexamples_2ip_pipeline_2pipeline_8c-example.htmlexamples_2ip_pipeline_2swq_8c-example.htmlexamples_2ip_pipeline_2tap_8c-example.htmlexamples_2ip_pipeline_2thread_8c-example.htmlexamples_2ip_pipeline_2tmgr_8c-example.htmlexamples_2ip_reassembly_2main_8c-example.htmlexamples_2ipsec-secgw_2esp_8c-example.htmlexamples_2ipsec-secgw_2ipsec-secgw_8c-example.htmlexamples_2ipsec-secgw_2ipsec_8c-example.htmlexamples_2ipsec-secgw_2parser_8c-example.htmlexamples_2ipsec-secgw_2rt_8c-example.htmlexamples_2ipsec-secgw_2sa_8c-example.htmlexamples_2ipsec-secgw_2sp4_8c-example.htmlexamples_2ipsec-secgw_2sp6_8c-example.htmlexamples_2ipv4_multicast_2main_8c-example.htmlexamples_2kni_2main_8c-example.htmlexamples_2l2fwd-cat_2cat_8c-example.htmlexamples_2l2fwd-cat_2l2fwd-cat_8c-example.htmlexamples_2l2fwd-crypto_2main_8c-example.htmlexamples_2l2fwd-jobstats_2main_8c-example.htmlexamples_2l2fwd-keepalive_2ka-agent_2main_8c-example.htmlexamples_2l2fwd-keepalive_2main_8c-example.htmlexamples_2l2fwd-keepalive_2shm_8c-example.htmlexamples_2l2fwd_2main_8c-example.htmlexamples_2l3fwd-acl_2main_8c-example.htmlexamples_2l3fwd-power_2main_8c-example.htmlexamples_2l3fwd-power_2perf_core_8c-example.htmlexamples_2l3fwd-vf_2main_8c-example.htmlexamples_2l3fwd_2l3fwd_em_8c-example.htmlexamples_2l3fwd_2l3fwd_lpm_8c-example.htmlexamples_2l3fwd_2main_8c-example.htmlexamples_2link_status_interrupt_2main_8c-example.htmlexamples_2load_balancer_2config_8c-example.htmlexamples_2load_balancer_2init_8c-example.htmlexamples_2load_balancer_2main_8c-example.htmlexamples_2load_balancer_2runtime_8c-example.htmlexamples_2multi_process_2client_server_mp_2mp_client_2client_8c-example.htmlexamples_2multi_process_2client_server_mp_2mp_server_2args_8c-example.htmlexamples_2multi_process_2client_server_mp_2mp_server_2init_8c-example.htmlexamples_2multi_process_2client_server_mp_2mp_server_2main_8c-example.htmlexamples_2multi_process_2hotplug_mp_2commands_8c-example.htmlexamples_2multi_process_2hotplug_mp_2main_8c-example.htmlexamples_2multi_process_2simple_mp_2main_8c-example.htmlexamples_2multi_process_2simple_mp_2mp_commands_8c-example.htmlexamples_2multi_process_2symmetric_mp_2main_8c-example.htmlexamples_2netmap_compat_2bridge_2bridge_8c-example.htmlexamples_2netmap_compat_2lib_2compat_netmap_8c-example.htmlexamples_2packet_ordering_2main_8c-example.htmlexamples_2performance-thread_2common_2arch_2arm64_2ctx_8c-example.htmlexamples_2performance-thread_2common_2arch_2x86_2ctx_8c-example.htmlexamples_2performance-thread_2common_2lthread_8c-example.htmlexamples_2performance-thread_2common_2lthread_cond_8c-example.htmlexamples_2performance-thread_2common_2lthread_diag_8c-example.htmlexamples_2performance-thread_2common_2lthread_mutex_8c-example.htmlexamples_2performance-thread_2common_2lthread_sched_8c-example.htmlexamples_2performance-thread_2common_2lthread_tls_8c-example.htmlexamples_2performance-thread_2l3fwd-thread_2main_8c-example.htmlexamples_2performance-thread_2pthread_shim_2main_8c-example.htmlexamples_2performance-thread_2pthread_shim_2pthread_shim_8c-example.htmlexamples_2ptpclient_2ptpclient_8c-example.htmlexamples_2qos_meter_2main_8c-example.htmlexamples_2qos_meter_2rte_policer_8c-example.htmlexamples_2qos_sched_2app_thread_8c-example.htmlexamples_2qos_sched_2args_8c-example.htmlexamples_2qos_sched_2cfg_file_8c-example.htmlexamples_2qos_sched_2cmdline_8c-example.htmlexamples_2qos_sched_2init_8c-example.htmlexamples_2qos_sched_2main_8c-example.htmlexamples_2qos_sched_2stats_8c-example.htmlexamples_2quota_watermark_2qw_2args_8c-example.htmlexamples_2quota_watermark_2qw_2init_8c-example.htmlexamples_2quota_watermark_2qw_2main_8c-example.htmlexamples_2quota_watermark_2qwctl_2commands_8c-example.htmlexamples_2quota_watermark_2qwctl_2qwctl_8c-example.htmlexamples_2rxtx_callbacks_2main_8c-example.htmlexamples_2server_node_efd_2node_2node_8c-example.htmlexamples_2server_node_efd_2server_2args_8c-example.htmlexamples_2server_node_efd_2server_2init_8c-example.htmlexamples_2server_node_efd_2server_2main_8c-example.htmlexamples_2service_cores_2main_8c-example.htmlexamples_2skeleton_2basicfwd_8c-example.htmlexamples_2tep_termination_2main_8c-example.htmlexamples_2tep_termination_2vxlan_8c-example.htmlexamples_2tep_termination_2vxlan_setup_8c-example.htmlexamples_2timer_2main_8c-example.htmlexamples_2vdpa_2main_8c-example.htmlexamples_2vhost_2main_8c-example.htmlexamples_2vhost_2virtio_net_8c-example.htmlexamples_2vhost_crypto_2main_8c-example.htmlexamples_2vhost_scsi_2scsi_8c-example.htmlexamples_2vhost_scsi_2vhost_scsi_8c-example.htmlexamples_2vm_power_manager_2channel_manager_8c-example.htmlexamples_2vm_power_manager_2channel_monitor_8c-example.htmlexamples_2vm_power_manager_2guest_cli_2main_8c-example.htmlexamples_2vm_power_manager_2guest_cli_2parse_8c-example.htmlexamples_2vm_power_manager_2guest_cli_2vm_power_cli_guest_8c-example.htmlexamples_2vm_power_manager_2main_8c-example.htmlexamples_2vm_power_manager_2oob_monitor_nop_8c-example.htmlexamples_2vm_power_manager_2oob_monitor_x86_8c-example.htmlexamples_2vm_power_manager_2parse_8c-example.htmlexamples_2vm_power_manager_2power_manager_8c-example.htmlexamples_2vm_power_manager_2vm_power_cli_8c-example.htmlexamples_2vmdq_2main_8c-example.htmlexamples_2vmdq_dcb_2main_8c-example.htmlfiles.htmlftv2blank.pngftv2cl.pngftv2doc.pngftv2folderclosed.pngftv2folderopen.pngftv2lastnode.pngftv2link.pngftv2mlastnode.pngftv2mnode.pngftv2mo.pngftv2node.pngftv2ns.pngftv2plastnode.pngftv2pnode.pngftv2splitbar.pngftv2vertline.pngfunctions.htmlfunctions_0x61.htmlfunctions_0x62.htmlfunctions_0x63.htmlfunctions_0x64.htmlfunctions_0x65.htmlfunctions_0x66.htmlfunctions_0x67.htmlfunctions_0x68.htmlfunctions_0x69.htmlfunctions_0x6b.htmlfunctions_0x6c.htmlfunctions_0x6d.htmlfunctions_0x6e.htmlfunctions_0x6f.htmlfunctions_0x70.htmlfunctions_0x71.htmlfunctions_0x72.htmlfunctions_0x73.htmlfunctions_0x74.htmlfunctions_0x75.htmlfunctions_0x76.htmlfunctions_0x77.htmlfunctions_0x78.htmlfunctions_0x79.htmlfunctions_func.htmlfunctions_vars.htmlfunctions_vars_0x61.htmlfunctions_vars_0x62.htmlfunctions_vars_0x63.htmlfunctions_vars_0x64.htmlfunctions_vars_0x65.htmlfunctions_vars_0x66.htmlfunctions_vars_0x67.htmlfunctions_vars_0x68.htmlfunctions_vars_0x69.htmlfunctions_vars_0x6b.htmlfunctions_vars_0x6c.htmlfunctions_vars_0x6d.htmlfunctions_vars_0x6e.htmlfunctions_vars_0x6f.htmlfunctions_vars_0x70.htmlfunctions_vars_0x71.htmlfunctions_vars_0x72.htmlfunctions_vars_0x73.htmlfunctions_vars_0x74.htmlfunctions_vars_0x75.htmlfunctions_vars_0x76.htmlfunctions_vars_0x77.htmlfunctions_vars_0x78.htmlfunctions_vars_0x79.htmlglobals.htmlglobals_0x61.htmlglobals_0x62.htmlglobals_0x63.htmlglobals_0x64.htmlglobals_0x65.htmlglobals_0x66.htmlglobals_0x68.htmlglobals_0x69.htmlglobals_0x6c.htmlglobals_0x6d.htmlglobals_0x6f.htmlglobals_0x70.htmlglobals_0x72.htmlglobals_0x73.htmlglobals_0x74.htmlglobals_0x75.htmlglobals_0x76.htmlglobals_0x77.htmlglobals_defs.htmlglobals_defs_0x62.htmlglobals_defs_0x63.htmlglobals_defs_0x64.htmlglobals_defs_0x65.htmlglobals_defs_0x69.htmlglobals_defs_0x6c.htmlglobals_defs_0x6d.htmlglobals_defs_0x6f.htmlglobals_defs_0x70.htmlglobals_defs_0x72.htmlglobals_defs_0x73.htmlglobals_defs_0x75.htmlglobals_defs_0x76.htmlglobals_enum.htmlglobals_eval.htmlglobals_eval_0x65.htmlglobals_eval_0x66.htmlglobals_eval_0x69.htmlglobals_eval_0x6d.htmlglobals_eval_0x72.htmlglobals_eval_0x73.htmlglobals_eval_0x77.htmlglobals_func.htmlglobals_func_0x63.htmlglobals_func_0x65.htmlglobals_func_0x69.htmlglobals_func_0x70.htmlglobals_func_0x72.htmlglobals_func_0x73.htmlglobals_func_0x74.htmlglobals_type.htmlglobals_type_0x63.htmlglobals_type_0x64.htmlglobals_type_0x65.htmlglobals_type_0x68.htmlglobals_type_0x6c.htmlglobals_type_0x6d.htmlglobals_type_0x70.htmlglobals_type_0x72.htmlglobals_type_0x73.htmlglobals_type_0x75.htmlglobals_vars.htmlindex.htmljquery.jsnav_f.pngnav_g.pngnav_h.pngopen.pngpages.htmlrte__acl_8h.htmlrte__acl_8h_source.htmlrte__acl__osdep_8h.htmlrte__acl__osdep_8h_source.htmlrte__alarm_8h.htmlrte__alarm_8h_source.htmlrte__approx_8h.htmlrte__approx_8h_source.htmlrte__arp_8h.htmlrte__arp_8h_source.htmlrte__atomic_8h.htmlrte__atomic_8h_source.htmlrte__bbdev_8h.htmlrte__bbdev_8h_source.htmlrte__bbdev__op_8h.htmlrte__bbdev__op_8h_source.htmlrte__bbdev__pmd_8h.htmlrte__bbdev__pmd_8h_source.htmlrte__bitmap_8h.htmlrte__bitmap_8h_source.htmlrte__bitrate_8h_source.htmlrte__bpf_8h.htmlrte__bpf_8h_source.htmlrte__bpf__ethdev_8h.htmlrte__bpf__ethdev_8h_source.htmlrte__branch__prediction_8h.htmlrte__branch__prediction_8h_source.htmlrte__bus_8h.htmlrte__bus_8h_source.htmlrte__byteorder_8h.htmlrte__byteorder_8h_source.htmlrte__cfgfile_8h.htmlrte__cfgfile_8h_source.htmlrte__class_8h.htmlrte__class_8h_source.htmlrte__cmp__arm64_8h_source.htmlrte__cmp__x86_8h_source.htmlrte__common_8h.htmlrte__common_8h_source.htmlrte__comp_8h.htmlrte__comp_8h_source.htmlrte__compat_8h_source.htmlrte__compressdev_8h.htmlrte__compressdev_8h_source.htmlrte__compressdev__internal_8h_source.htmlrte__compressdev__pmd_8h.htmlrte__compressdev__pmd_8h_source.htmlrte__cpuflags_8h.htmlrte__cpuflags_8h_source.htmlrte__crc__arm64_8h.htmlrte__crc__arm64_8h_source.htmlrte__crypto_8h.htmlrte__crypto_8h_source.htmlrte__crypto__asym_8h.htmlrte__crypto__asym_8h_source.htmlrte__crypto__sym_8h.htmlrte__crypto__sym_8h_source.htmlrte__cryptodev_8h.htmlrte__cryptodev_8h_source.htmlrte__cryptodev__pmd_8h.htmlrte__cryptodev__pmd_8h_source.htmlrte__cryptodev__scheduler_8h.htmlrte__cryptodev__scheduler_8h_source.htmlrte__cryptodev__scheduler__operations_8h_source.htmlrte__cuckoo__hash_8h_source.htmlrte__cycles_8h.htmlrte__cycles_8h_source.htmlrte__debug_8h.htmlrte__debug_8h_source.htmlrte__dev_8h.htmlrte__dev_8h_source.htmlrte__dev__info_8h_source.htmlrte__devargs_8h.htmlrte__devargs_8h_source.htmlrte__distributor_8h.htmlrte__distributor_8h_source.htmlrte__distributor__private_8h.htmlrte__distributor__private_8h_source.htmlrte__distributor__v1705_8h.htmlrte__distributor__v1705_8h_source.htmlrte__distributor__v20_8h.htmlrte__distributor__v20_8h_source.htmlrte__dpaa2__mempool_8h.htmlrte__dpaa2__mempool_8h_source.htmlrte__eal_8h.htmlrte__eal_8h_source.htmlrte__eal__interrupts_8h.htmlrte__eal__interrupts_8h_source.htmlrte__eal__memconfig_8h_source.htmlrte__efd_8h.htmlrte__efd_8h_source.htmlrte__efd__arm64_8h_source.htmlrte__efd__x86_8h_source.htmlrte__errno_8h.htmlrte__errno_8h_source.htmlrte__esp_8h.htmlrte__esp_8h_source.htmlrte__eth__bond_8h.htmlrte__eth__bond_8h_source.htmlrte__eth__bond__8023ad_8h_source.htmlrte__eth__bond__8023ad__private_8h_source.htmlrte__eth__bond__alb_8h_source.htmlrte__eth__bond__private_8h_source.htmlrte__eth__ctrl_8h.htmlrte__eth__ctrl_8h_source.htmlrte__eth__softnic_8h_source.htmlrte__eth__softnic__internals_8h_source.htmlrte__ethdev_8h.htmlrte__ethdev_8h_source.htmlrte__ethdev__core_8h.htmlrte__ethdev__core_8h_source.htmlrte__ethdev__driver_8h.htmlrte__ethdev__driver_8h_source.htmlrte__ethdev__pci_8h_source.htmlrte__ethdev__vdev_8h_source.htmlrte__ether_8h.htmlrte__ether_8h_source.htmlrte__event__crypto__adapter_8h.htmlrte__event__crypto__adapter_8h_source.htmlrte__event__eth__rx__adapter_8h.htmlrte__event__eth__rx__adapter_8h_source.htmlrte__event__eth__tx__adapter_8h.htmlrte__event__eth__tx__adapter_8h_source.htmlrte__event__ring_8h.htmlrte__event__ring_8h_source.htmlrte__event__timer__adapter_8h.htmlrte__event__timer__adapter_8h_source.htmlrte__event__timer__adapter__pmd_8h.htmlrte__event__timer__adapter__pmd_8h_source.htmlrte__eventdev_8h.htmlrte__eventdev_8h_source.htmlrte__eventdev__pmd_8h.htmlrte__eventdev__pmd_8h_source.htmlrte__eventdev__pmd__pci_8h.htmlrte__eventdev__pmd__pci_8h_source.htmlrte__eventdev__pmd__vdev_8h.htmlrte__eventdev__pmd__vdev_8h_source.htmlrte__fbarray_8h.htmlrte__fbarray_8h_source.htmlrte__fbk__hash_8h.htmlrte__fbk__hash_8h_source.htmlrte__flow_8h.htmlrte__flow_8h_source.htmlrte__flow__classify_8h.htmlrte__flow__classify_8h_source.htmlrte__flow__classify__parse_8h_source.htmlrte__flow__driver_8h.htmlrte__flow__driver_8h_source.htmlrte__gre_8h_source.htmlrte__gro_8h.htmlrte__gro_8h_source.htmlrte__gso_8h.htmlrte__gso_8h_source.htmlrte__hash_8h.htmlrte__hash_8h_source.htmlrte__hash__crc_8h.htmlrte__hash__crc_8h_source.htmlrte__hexdump_8h.htmlrte__hexdump_8h_source.htmlrte__hypervisor_8h.htmlrte__hypervisor_8h_source.htmlrte__icmp_8h.htmlrte__icmp_8h_source.htmlrte__interrupts_8h.htmlrte__interrupts_8h_source.htmlrte__io_8h.htmlrte__io_8h_source.htmlrte__ip_8h.htmlrte__ip_8h_source.htmlrte__ip__frag_8h.htmlrte__ip__frag_8h_source.htmlrte__jhash_8h.htmlrte__jhash_8h_source.htmlrte__jobstats_8h_source.htmlrte__keepalive_8h.htmlrte__keepalive_8h_source.htmlrte__kni_8h.htmlrte__kni_8h_source.htmlrte__kni__fifo_8h_source.htmlrte__kvargs_8h.htmlrte__kvargs_8h_source.htmlrte__latencystats_8h.htmlrte__latencystats_8h_source.htmlrte__launch_8h.htmlrte__launch_8h_source.htmlrte__lcore_8h.htmlrte__lcore_8h_source.htmlrte__log_8h.htmlrte__log_8h_source.htmlrte__lpm6_8h.htmlrte__lpm6_8h_source.htmlrte__lpm_8h.htmlrte__lpm_8h_source.htmlrte__lpm__altivec_8h_source.htmlrte__lpm__neon_8h_source.htmlrte__lpm__sse_8h_source.htmlrte__lru_8h_source.htmlrte__lru__arm64_8h_source.htmlrte__lru__x86_8h_source.htmlrte__malloc_8h.htmlrte__malloc_8h_source.htmlrte__malloc__heap_8h_source.htmlrte__mbuf_8h.htmlrte__mbuf_8h_source.htmlrte__mbuf__pool__ops_8h.htmlrte__mbuf__pool__ops_8h_source.htmlrte__mbuf__ptype_8h.htmlrte__mbuf__ptype_8h_source.htmlrte__member_8h.htmlrte__member_8h_source.htmlrte__member__ht_8h_source.htmlrte__member__vbf_8h_source.htmlrte__member__x86_8h_source.htmlrte__memcpy_8h.htmlrte__memcpy_8h_source.htmlrte__memory_8h.htmlrte__memory_8h_source.htmlrte__mempool_8h.htmlrte__mempool_8h_source.htmlrte__memzone_8h.htmlrte__memzone_8h_source.htmlrte__meter_8h.htmlrte__meter_8h_source.htmlrte__metrics_8h.htmlrte__metrics_8h_source.htmlrte__mpls_8h.htmlrte__mpls_8h_source.htmlrte__mtr_8h.htmlrte__mtr_8h_source.htmlrte__mtr__driver_8h.htmlrte__mtr__driver_8h_source.htmlrte__net_8h_source.htmlrte__net__crc_8h_source.htmlrte__option_8h.htmlrte__option_8h_source.htmlrte__pause_8h.htmlrte__pause_8h_source.htmlrte__pci_8h.htmlrte__pci_8h_source.htmlrte__pci__dev__feature__defs_8h_source.htmlrte__pci__dev__features_8h_source.htmlrte__pdump_8h.htmlrte__pdump_8h_source.htmlrte__per__lcore_8h.htmlrte__per__lcore_8h_source.htmlrte__pipeline_8h.htmlrte__pipeline_8h_source.htmlrte__pmd__bnxt_8h_source.htmlrte__pmd__dpaa2__cmdif_8h.htmlrte__pmd__dpaa2__cmdif_8h_source.htmlrte__pmd__dpaa2__qdma_8h.htmlrte__pmd__dpaa2__qdma_8h_source.htmlrte__pmd__dpaa_8h.htmlrte__pmd__dpaa_8h_source.htmlrte__pmd__i40e_8h.htmlrte__pmd__i40e_8h_source.htmlrte__pmd__ixgbe_8h.htmlrte__pmd__ixgbe_8h_source.htmlrte__port_8h.htmlrte__port_8h_source.htmlrte__port__ethdev_8h.htmlrte__port__ethdev_8h_source.htmlrte__port__fd_8h.htmlrte__port__fd_8h_source.htmlrte__port__frag_8h.htmlrte__port__frag_8h_source.htmlrte__port__in__action_8h.htmlrte__port__in__action_8h_source.htmlrte__port__kni_8h.htmlrte__port__kni_8h_source.htmlrte__port__ras_8h.htmlrte__port__ras_8h_source.htmlrte__port__ring_8h.htmlrte__port__ring_8h_source.htmlrte__port__sched_8h.htmlrte__port__sched_8h_source.htmlrte__port__source__sink_8h.htmlrte__port__source__sink_8h_source.htmlrte__port__sym__crypto_8h.htmlrte__port__sym__crypto_8h_source.htmlrte__power_8h.htmlrte__power_8h_source.htmlrte__power__empty__poll_8h.htmlrte__power__empty__poll_8h_source.htmlrte__prefetch_8h.htmlrte__prefetch_8h_source.htmlrte__random_8h.htmlrte__random_8h_source.htmlrte__rawdev_8h.htmlrte__rawdev_8h_source.htmlrte__rawdev__pmd_8h.htmlrte__rawdev__pmd_8h_source.htmlrte__reciprocal_8h_source.htmlrte__red_8h.htmlrte__red_8h_source.htmlrte__reorder_8h.htmlrte__reorder_8h_source.htmlrte__ring_8h.htmlrte__ring_8h_source.htmlrte__ring__c11__mem_8h_source.htmlrte__ring__generic_8h_source.htmlrte__rwlock_8h.htmlrte__rwlock_8h_source.htmlrte__sched_8h.htmlrte__sched_8h_source.htmlrte__sched__common_8h_source.htmlrte__sctp_8h.htmlrte__sctp_8h_source.htmlrte__security_8h.htmlrte__security_8h_source.htmlrte__security__driver_8h.htmlrte__security__driver_8h_source.htmlrte__service_8h.htmlrte__service_8h_source.htmlrte__service__component_8h_source.htmlrte__spinlock_8h.htmlrte__spinlock_8h_source.htmlrte__string__fns_8h.htmlrte__string__fns_8h_source.htmlrte__table_8h.htmlrte__table_8h_source.htmlrte__table__acl_8h.htmlrte__table__acl_8h_source.htmlrte__table__action_8h.htmlrte__table__action_8h_source.htmlrte__table__array_8h.htmlrte__table__array_8h_source.htmlrte__table__hash_8h.htmlrte__table__hash_8h_source.htmlrte__table__hash__cuckoo_8h.htmlrte__table__hash__cuckoo_8h_source.htmlrte__table__hash__func_8h_source.htmlrte__table__hash__func__arm64_8h_source.htmlrte__table__lpm_8h.htmlrte__table__lpm_8h_source.htmlrte__table__lpm__ipv6_8h.htmlrte__table__lpm__ipv6_8h_source.htmlrte__table__stub_8h.htmlrte__table__stub_8h_source.htmlrte__tailq_8h.htmlrte__tailq_8h_source.htmlrte__tcp_8h.htmlrte__tcp_8h_source.htmlrte__telemetry_8h.htmlrte__telemetry_8h_source.htmlrte__telemetry__internal_8h_source.htmlrte__telemetry__parser_8h_source.htmlrte__telemetry__parser__test_8h_source.htmlrte__telemetry__socket__tests_8h_source.htmlrte__test_8h_source.htmlrte__thash_8h.htmlrte__thash_8h_source.htmlrte__time_8h_source.htmlrte__timer_8h.htmlrte__timer_8h_source.htmlrte__tm_8h.htmlrte__tm_8h_source.htmlrte__tm__driver_8h.htmlrte__tm__driver_8h_source.htmlrte__udp_8h.htmlrte__udp_8h_source.htmlrte__uuid_8h.htmlrte__uuid_8h_source.htmlrte__vdpa_8h.htmlrte__vdpa_8h_source.htmlrte__vect_8h.htmlrte__vect_8h_source.htmlrte__version_8h.htmlrte__version_8h_source.htmlrte__vfio_8h.htmlrte__vfio_8h_source.htmlrte__vhost_8h.htmlrte__vhost_8h_source.htmlrte__vhost__crypto_8h_source.htmlstructarp__hdr.htmlstructarp__ipv4.htmlstructbond__dev__private.htmlstructbond__ethdev__slave__ports.htmlstructbond__rx__queue.htmlstructesp__hdr.htmlstructether__addr.htmlstructether__hdr.htmlstructgre__hdr.htmlstructicmp__hdr.htmlstructip__frag__tbl__stat.htmlstructipv4__hdr.htmlstructipv6__hdr.htmlstructlacpdu.htmlstructlacpdu__header.htmlstructlcore__config.htmlstructmalloc__heap.htmlstructmapped__pci__resource.htmlstructmpls__hdr.htmlstructpci__map.htmlstructpipeline__params.htmlstructpmd__internals.htmlstructpmd__params.htmlstructport.htmlstructrte__acl__config.htmlstructrte__acl__field.htmlstructrte__acl__field__def.htmlstructrte__acl__param.htmlstructrte__acl__rule__data.htmlstructrte__atomic16__t.htmlstructrte__atomic32__t.htmlstructrte__atomic64__t.htmlstructrte__bbdev__dec__op.htmlstructrte__bbdev__driver__info.htmlstructrte__bbdev__enc__op.htmlstructrte__bbdev__info.htmlstructrte__bbdev__op__cap__turbo__dec.htmlstructrte__bbdev__op__dec__tb__params.htmlstructrte__bbdev__op__enc__tb__params.htmlstructrte__bbdev__op__turbo__enc.htmlstructrte__bbdev__ops.htmlstructrte__bbdev__queue__conf.htmlstructrte__bbdev__queue__info.htmlstructrte__bbdev__stats.htmlstructrte__bitmap.htmlstructrte__bpf__arg.htmlstructrte__bpf__jit.htmlstructrte__bpf__prm.htmlstructrte__bpf__xsym.htmlstructrte__bus.htmlstructrte__bus__conf.htmlstructrte__cfgfile__entry.htmlstructrte__cfgfile__parameters.htmlstructrte__class.htmlstructrte__comp__compress__xform.htmlstructrte__comp__decompress__xform.htmlstructrte__comp__deflate__params.htmlstructrte__comp__op.htmlstructrte__comp__xform.htmlstructrte__compressdev.htmlstructrte__compressdev__capabilities.htmlstructrte__compressdev__config.htmlstructrte__compressdev__data.htmlstructrte__compressdev__global.htmlstructrte__compressdev__info.htmlstructrte__compressdev__ops.htmlstructrte__compressdev__stats.htmlstructrte__config.htmlstructrte__crypto__asym__op.htmlstructrte__crypto__asym__xform.htmlstructrte__crypto__auth__xform.htmlstructrte__crypto__cipher__xform.htmlstructrte__crypto__dh__op__param.htmlstructrte__crypto__dh__xform.htmlstructrte__crypto__dsa__op__param.htmlstructrte__crypto__dsa__xform.htmlstructrte__crypto__mod__op__param.htmlstructrte__crypto__modex__xform.htmlstructrte__crypto__modinv__xform.htmlstructrte__crypto__op.htmlstructrte__crypto__op__pool__private.htmlstructrte__crypto__param__range.htmlstructrte__crypto__rsa__op__param.htmlstructrte__crypto__rsa__priv__key__qt.htmlstructrte__crypto__rsa__xform.htmlstructrte__crypto__sym__op.htmlstructrte__crypto__sym__xform.htmlstructrte__cryptodev.htmlstructrte__cryptodev__asym__capability__idx.htmlstructrte__cryptodev__asym__session.htmlstructrte__cryptodev__asymmetric__capability.htmlstructrte__cryptodev__asymmetric__xform__capability.htmlstructrte__cryptodev__capabilities.htmlstructrte__cryptodev__config.htmlstructrte__cryptodev__data.htmlstructrte__cryptodev__global.htmlstructrte__cryptodev__info.htmlstructrte__cryptodev__ops.htmlstructrte__cryptodev__qp__conf.htmlstructrte__cryptodev__scheduler.htmlstructrte__cryptodev__stats.htmlstructrte__cryptodev__sym__capability__idx.htmlstructrte__cryptodev__sym__session.htmlstructrte__cryptodev__symmetric__capability.htmlstructrte__dev__iterator.htmlstructrte__devargs.htmlstructrte__device.htmlstructrte__distributor__buffer.htmlstructrte__dpaa2__cmdif__context.htmlstructrte__driver.htmlstructrte__epoll__event.htmlstructrte__eth__conf.htmlstructrte__eth__dcb__info.htmlstructrte__eth__dcb__tc__queue__mapping.htmlstructrte__eth__desc__lim.htmlstructrte__eth__dev__info.htmlstructrte__eth__dev__module__info.htmlstructrte__eth__dev__portconf.htmlstructrte__eth__dev__tx__buffer.htmlstructrte__eth__devargs.htmlstructrte__eth__ethertype__filter.htmlstructrte__eth__event__ipsec__desc.htmlstructrte__eth__fc__conf.htmlstructrte__eth__fdir__action.htmlstructrte__eth__fdir__filter.htmlstructrte__eth__fdir__filter__info.htmlstructrte__eth__fdir__flex__conf.htmlstructrte__eth__fdir__flex__mask.htmlstructrte__eth__fdir__flow__ext.htmlstructrte__eth__fdir__info.htmlstructrte__eth__fdir__input.htmlstructrte__eth__fdir__masks.htmlstructrte__eth__fdir__stats.htmlstructrte__eth__flex__filter.htmlstructrte__eth__flex__payload__cfg.htmlstructrte__eth__global__cfg.htmlstructrte__eth__hash__filter__info.htmlstructrte__eth__hash__global__conf.htmlstructrte__eth__input__set__conf.htmlstructrte__eth__ipv4__flow.htmlstructrte__eth__ipv6__flow.htmlstructrte__eth__l2__flow.htmlstructrte__eth__l2__tunnel__conf.htmlstructrte__eth__link.htmlstructrte__eth__mac__filter.htmlstructrte__eth__mac__vlan__flow.htmlstructrte__eth__mirror__conf.htmlstructrte__eth__ntuple__filter.htmlstructrte__eth__pfc__conf.htmlstructrte__eth__rss__conf.htmlstructrte__eth__rss__reta__entry64.htmlstructrte__eth__rxconf.htmlstructrte__eth__rxmode.htmlstructrte__eth__rxq__info.htmlstructrte__eth__sctpv4__flow.htmlstructrte__eth__sctpv6__flow.htmlstructrte__eth__stats.htmlstructrte__eth__switch__info.htmlstructrte__eth__syn__filter.htmlstructrte__eth__tcpv4__flow.htmlstructrte__eth__tcpv6__flow.htmlstructrte__eth__thresh.htmlstructrte__eth__tunnel__filter__conf.htmlstructrte__eth__tunnel__flow.htmlstructrte__eth__txconf.htmlstructrte__eth__txmode.htmlstructrte__eth__txq__info.htmlstructrte__eth__udp__tunnel.htmlstructrte__eth__udpv4__flow.htmlstructrte__eth__udpv6__flow.htmlstructrte__eth__vlan__mirror.htmlstructrte__eth__vmdq__dcb__conf.htmlstructrte__eth__vmdq__rx__conf.htmlstructrte__eth__xstat.htmlstructrte__eth__xstat__name.htmlstructrte__event.htmlstructrte__event__crypto__adapter__conf.htmlstructrte__event__crypto__adapter__stats.htmlstructrte__event__crypto__request.htmlstructrte__event__dev__config.htmlstructrte__event__dev__info.htmlstructrte__event__dev__xstats__name.htmlstructrte__event__eth__rx__adapter__conf.htmlstructrte__event__eth__rx__adapter__queue__conf.htmlstructrte__event__eth__rx__adapter__stats.htmlstructrte__event__eth__tx__adapter__conf.htmlstructrte__event__eth__tx__adapter__stats.htmlstructrte__event__port__conf.htmlstructrte__event__queue__conf.htmlstructrte__event__ring.htmlstructrte__event__timer.htmlstructrte__event__timer__adapter__conf.htmlstructrte__event__timer__adapter__info.htmlstructrte__event__timer__adapter__stats.htmlstructrte__eventdev__global.htmlstructrte__eventdev__ops.htmlstructrte__fbk__hash__params.htmlstructrte__fbk__hash__table.htmlstructrte__fdir__conf.htmlstructrte__flow__action__count.htmlstructrte__flow__action__jump.htmlstructrte__flow__action__mark.htmlstructrte__flow__action__meter.htmlstructrte__flow__action__nvgre__encap.htmlstructrte__flow__action__of__pop__mpls.htmlstructrte__flow__action__of__push__mpls.htmlstructrte__flow__action__of__push__vlan.htmlstructrte__flow__action__of__set__mpls__ttl.htmlstructrte__flow__action__of__set__nw__ttl.htmlstructrte__flow__action__of__set__vlan__pcp.htmlstructrte__flow__action__of__set__vlan__vid.htmlstructrte__flow__action__phy__port.htmlstructrte__flow__action__port__id.htmlstructrte__flow__action__queue.htmlstructrte__flow__action__raw__decap.htmlstructrte__flow__action__raw__encap.htmlstructrte__flow__action__rss.htmlstructrte__flow__action__security.htmlstructrte__flow__action__set__ipv4.htmlstructrte__flow__action__set__ipv6.htmlstructrte__flow__action__set__mac.htmlstructrte__flow__action__set__tp.htmlstructrte__flow__action__set__ttl.htmlstructrte__flow__action__vf.htmlstructrte__flow__action__vxlan__encap.htmlstructrte__flow__attr.htmlstructrte__flow__classifier__params.htmlstructrte__flow__classify__ipv4__5tuple.htmlstructrte__flow__classify__stats.htmlstructrte__flow__classify__table__params.htmlstructrte__flow__conv__rule.htmlstructrte__flow__desc.htmlstructrte__flow__error.htmlstructrte__flow__expand__node.htmlstructrte__flow__expand__rss.htmlstructrte__flow__item.htmlstructrte__flow__item__any.htmlstructrte__flow__item__arp__eth__ipv4.htmlstructrte__flow__item__e__tag.htmlstructrte__flow__item__esp.htmlstructrte__flow__item__eth.htmlstructrte__flow__item__fuzzy.htmlstructrte__flow__item__geneve.htmlstructrte__flow__item__gre.htmlstructrte__flow__item__gtp.htmlstructrte__flow__item__icmp.htmlstructrte__flow__item__icmp6.htmlstructrte__flow__item__icmp6__nd__na.htmlstructrte__flow__item__icmp6__nd__ns.htmlstructrte__flow__item__icmp6__nd__opt.htmlstructrte__flow__item__icmp6__nd__opt__sla__eth.htmlstructrte__flow__item__icmp6__nd__opt__tla__eth.htmlstructrte__flow__item__ipv4.htmlstructrte__flow__item__ipv6.htmlstructrte__flow__item__ipv6__ext.htmlstructrte__flow__item__mark.htmlstructrte__flow__item__meta.htmlstructrte__flow__item__mpls.htmlstructrte__flow__item__nvgre.htmlstructrte__flow__item__phy__port.htmlstructrte__flow__item__port__id.htmlstructrte__flow__item__raw.htmlstructrte__flow__item__sctp.htmlstructrte__flow__item__tcp.htmlstructrte__flow__item__udp.htmlstructrte__flow__item__vf.htmlstructrte__flow__item__vlan.htmlstructrte__flow__item__vxlan.htmlstructrte__flow__item__vxlan__gpe.htmlstructrte__flow__ops.htmlstructrte__flow__query__count.htmlstructrte__gro__param.htmlstructrte__gso__ctx.htmlstructrte__hash.htmlstructrte__hash__bucket.htmlstructrte__hash__parameters.htmlstructrte__intr__conf.htmlstructrte__intr__handle.htmlstructrte__ip__frag__death__row.htmlstructrte__ip__frag__tbl.htmlstructrte__ipv4__tuple.htmlstructrte__ipv6__tuple.htmlstructrte__kni__conf.htmlstructrte__kni__ops.htmlstructrte__kvargs.htmlstructrte__kvargs__pair.htmlstructrte__logs.htmlstructrte__lpm6__config.htmlstructrte__lpm__config.htmlstructrte__malloc__socket__stats.htmlstructrte__mbuf.htmlstructrte__mbuf__ext__shared__info.htmlstructrte__mem__config.htmlstructrte__mem__resource.htmlstructrte__member__parameters.htmlstructrte__mempool.htmlstructrte__mempool__cache.htmlstructrte__mempool__info.htmlstructrte__mempool__memhdr.htmlstructrte__mempool__objhdr.htmlstructrte__mempool__objsz.htmlstructrte__mempool__ops.htmlstructrte__mempool__ops__table.htmlstructrte__memseg__list.htmlstructrte__memzone.htmlstructrte__meter__srtcm__params.htmlstructrte__meter__trtcm.htmlstructrte__meter__trtcm__params.htmlstructrte__metric__name.htmlstructrte__metric__value.htmlstructrte__mtr__capabilities.htmlstructrte__mtr__error.htmlstructrte__mtr__meter__profile.htmlstructrte__mtr__params.htmlstructrte__mtr__stats.htmlstructrte__net__hdr__lens.htmlstructrte__param__log2__range.htmlstructrte__pci__addr.htmlstructrte__pci__id.htmlstructrte__pipeline__params.htmlstructrte__pipeline__port__in__params.htmlstructrte__pipeline__port__in__stats.htmlstructrte__pipeline__port__out__params.htmlstructrte__pipeline__port__out__stats.htmlstructrte__pipeline__table__entry.htmlstructrte__pipeline__table__params.htmlstructrte__pipeline__table__stats.htmlstructrte__pktmbuf__pool__private.htmlstructrte__pmd__i40e__ddp__device__id.htmlstructrte__pmd__i40e__ddp__version.htmlstructrte__pmd__i40e__mb__event__param.htmlstructrte__pmd__i40e__pkt__template__action.htmlstructrte__pmd__i40e__pkt__template__conf.htmlstructrte__pmd__i40e__pkt__template__input.htmlstructrte__pmd__i40e__profile__info.htmlstructrte__pmd__i40e__profile__list.htmlstructrte__pmd__i40e__proto__info.htmlstructrte__pmd__i40e__ptype__info.htmlstructrte__pmd__i40e__queue__region__conf.htmlstructrte__pmd__ixgbe__mb__event__param.htmlstructrte__port__ethdev__reader__params.htmlstructrte__port__ethdev__writer__nodrop__params.htmlstructrte__port__ethdev__writer__params.htmlstructrte__port__fd__reader__params.htmlstructrte__port__fd__writer__nodrop__params.htmlstructrte__port__fd__writer__params.htmlstructrte__port__in__action__fltr__config.htmlstructrte__port__in__action__fltr__params.htmlstructrte__port__in__action__lb__config.htmlstructrte__port__in__action__lb__params.htmlstructrte__port__in__ops.htmlstructrte__port__in__stats.htmlstructrte__port__kni__reader__params.htmlstructrte__port__kni__writer__nodrop__params.htmlstructrte__port__kni__writer__params.htmlstructrte__port__out__ops.htmlstructrte__port__out__stats.htmlstructrte__port__ring__reader__frag__params.htmlstructrte__port__ring__reader__params.htmlstructrte__port__ring__writer__nodrop__params.htmlstructrte__port__ring__writer__params.htmlstructrte__port__ring__writer__ras__params.htmlstructrte__port__sched__reader__params.htmlstructrte__port__sched__writer__params.htmlstructrte__port__sink__params.htmlstructrte__port__source__params.htmlstructrte__port__sym__crypto__reader__params.htmlstructrte__port__sym__crypto__writer__nodrop__params.htmlstructrte__port__sym__crypto__writer__params.htmlstructrte__power__core__capabilities.htmlstructrte__qdma__attr.htmlstructrte__qdma__config.htmlstructrte__qdma__job.htmlstructrte__qdma__vq__stats.htmlstructrte__rawdev__ops.htmlstructrte__rawdev__xstats__name.htmlstructrte__red.htmlstructrte__red__config.htmlstructrte__red__params.htmlstructrte__ring.htmlstructrte__rwlock__t.htmlstructrte__sched__port__params.htmlstructrte__sched__queue__stats.htmlstructrte__sched__subport__stats.htmlstructrte__security__capability.htmlstructrte__security__capability__idx.htmlstructrte__security__ctx.htmlstructrte__security__ipsec__sa__options.htmlstructrte__security__ipsec__tunnel__param.htmlstructrte__security__ipsec__xform.htmlstructrte__security__macsec__xform.htmlstructrte__security__ops.htmlstructrte__security__pdcp__xform.htmlstructrte__security__session__conf.htmlstructrte__service__spec.htmlstructrte__spinlock__recursive__t.htmlstructrte__spinlock__t.htmlstructrte__table__acl__params.htmlstructrte__table__acl__rule__add__params.htmlstructrte__table__acl__rule__delete__params.htmlstructrte__table__action__common__config.htmlstructrte__table__action__decap__params.htmlstructrte__table__action__dscp__table.htmlstructrte__table__action__dscp__table__entry.htmlstructrte__table__action__encap__config.htmlstructrte__table__action__encap__ether__params.htmlstructrte__table__action__encap__mpls__params.htmlstructrte__table__action__encap__params.htmlstructrte__table__action__encap__pppoe__params.htmlstructrte__table__action__encap__qinq__params.htmlstructrte__table__action__encap__vlan__params.htmlstructrte__table__action__encap__vxlan__params.htmlstructrte__table__action__ether__hdr.htmlstructrte__table__action__fwd__params.htmlstructrte__table__action__ipv4__header.htmlstructrte__table__action__ipv6__header.htmlstructrte__table__action__lb__config.htmlstructrte__table__action__lb__params.htmlstructrte__table__action__meter__profile.htmlstructrte__table__action__mpls__hdr.htmlstructrte__table__action__mtr__config.htmlstructrte__table__action__mtr__counters.htmlstructrte__table__action__mtr__counters__tc.htmlstructrte__table__action__mtr__params.htmlstructrte__table__action__mtr__tc__params.htmlstructrte__table__action__nat__config.htmlstructrte__table__action__nat__params.htmlstructrte__table__action__pppoe__hdr.htmlstructrte__table__action__stats__config.htmlstructrte__table__action__stats__counters.htmlstructrte__table__action__stats__params.htmlstructrte__table__action__sym__crypto__config.htmlstructrte__table__action__sym__crypto__params.htmlstructrte__table__action__tag__params.htmlstructrte__table__action__time__params.htmlstructrte__table__action__tm__config.htmlstructrte__table__action__tm__params.htmlstructrte__table__action__ttl__config.htmlstructrte__table__action__ttl__counters.htmlstructrte__table__action__ttl__params.htmlstructrte__table__action__udp__header.htmlstructrte__table__action__vlan__hdr.htmlstructrte__table__action__vlo.htmlstructrte__table__action__vxlan__hdr.htmlstructrte__table__array__key.htmlstructrte__table__array__params.htmlstructrte__table__hash__cuckoo__params.htmlstructrte__table__hash__params.htmlstructrte__table__lpm__ipv6__key.htmlstructrte__table__lpm__ipv6__params.htmlstructrte__table__lpm__key.htmlstructrte__table__lpm__params.htmlstructrte__table__ops.htmlstructrte__table__stats.htmlstructrte__tailq__entry.htmlstructrte__tailq__head.htmlstructrte__timecounter.htmlstructrte__timer.htmlstructrte__tm__capabilities.htmlstructrte__tm__error.htmlstructrte__tm__level__capabilities.htmlstructrte__tm__node__capabilities.htmlstructrte__tm__node__params.htmlstructrte__tm__node__stats.htmlstructrte__tm__red__params.htmlstructrte__tm__shaper__params.htmlstructrte__tm__token__bucket.htmlstructrte__tm__wred__params.htmlstructrte__vdpa__dev__addr.htmlstructrte__vdpa__dev__ops.htmlstructrte__vdpa__device.htmlstructrte__vhost__mem__region.htmlstructrte__vhost__memory.htmlstructrte__vlan__filter__conf.htmlstructsctp__hdr.htmlstructslow__protocol.htmlstructslow__protocol__frame.htmlstructsoftnic__cryptodev__params.htmlstructsoftnic__link__params.htmlstructsoftnic__mempool__params.htmlstructsoftnic__mtr__meter__profile.htmlstructsoftnic__port__in__action__profile__params.htmlstructsoftnic__swq__params.htmlstructsoftnic__table__action__profile__params.htmlstructsoftnic__tap.htmlstructsoftnic__thread.htmlstructtcp__hdr.htmlstructudp__hdr.htmlstructvhost__device__ops.htmlstructvlan__hdr.htmlstructvxlan__gpe__hdr.htmlstructvxlan__hdr.htmlsync_off.pngsync_on.pngtab_a.pngtab_b.pngtab_h.pngtab_s.pngtabs.cssunionrte__distributor__buffer__v20.htmlunionrte__eth__fdir__flow.htmlunionrte__event__crypto__metadata.htmlunionrte__fbk__hash__entry.htmlunionrte__timer__status.htmlexamples.doxguides_imagesarchitecture-overview.svgblk_diag_dropper.pngbond-mode-0.svgbond-mode-1.svgbond-mode-2.svgbond-mode-3.svgbond-mode-4.svgbond-mode-5.svgbond-overview.svgclient_svr_sym_multi_proc_app.pngconsole.pngcrypto_op.svgcrypto_xform_chain.svgcryptodev_sym_sess.svgdata_struct_per_port.pngdist_app.svgdist_perf.svgdrop_probability_eq3.pngdrop_probability_eq4.pngdrop_probability_graph.pngefd_i1.svgefd_i10.svgefd_i11.svgefd_i12.svgefd_i2.svgefd_i3.svgefd_i4.svgefd_i5.svgefd_i6.svgefd_i7.svgefd_i8.svgefd_i9.svgeq2_expression.pngeq2_factor.pngevent_crypto_adapter_op_forward.svgevent_crypto_adapter_op_new.svgeventdev_order_atq_test.svgeventdev_order_queue_test.svgeventdev_perf_atq_test.svgeventdev_perf_queue_test.svgeventdev_pipeline_atq_test_generic.svgeventdev_pipeline_atq_test_internal_port.svgeventdev_pipeline_queue_test_generic.svgeventdev_pipeline_queue_test_internal_port.svgeventdev_usage.svgewma_filter_eq_1.pngewma_filter_eq_2.pngex_data_flow_tru_dropper.pngexample_rules.pngexception_path_example.svgfast_pkt_proc.pngfigure32.pngfigure33.pngfigure34.pngfigure35.pngfigure37.pngfigure38.pngfigure39.pngflow_bifurcation_overview.svgflow_tru_droppper.pngforward_stats.pnggro-key-algorithm.svggso-output-segment-format.svggso-three-seg-mbuf.svghier_sched_blk.pnghost_vm_comms.pnghost_vm_comms_qemu.pngintel_perf_test_setup.svginter_vm_comms.pngipv4_acl_rule.pngixgbe_bifu_queue_idx.svgkernel_nic.pngkernel_nic_intf.pngl2_fwd_benchmark_setup.svgl2_fwd_encrypt_flow.svgl2_fwd_virtenv_benchmark_setup.pngl2_fwd_vm2vm.svglinuxapp_launch.svglm_bond_virtio_sriov.svglm_vhost_user.svgload_bal_app_arch.pngm_definition.pngmalloc_heap.svgmbuf1.svgmbuf2.svgmember_i1.svgmember_i2.svgmember_i3.svgmember_i4.svgmember_i5.svgmember_i6.svgmember_i7.svgmemory-management.svgmemory-management2.svgmempool.svgmulti_process_memory.svgmvpp2_tm.svgoverlay_networking.svgpacket_capture_framework.svgpacket_distributor1.pngpacket_distributor2.pngpatch_cheatsheet.svgperf_benchmark.pngperformance_thread_1.svgperformance_thread_2.svgpipe_prefetch_sm.pngpipeline_overview.pngpkt_drop_probability.pngpkt_flow_kni.pngpkt_proc_pipeline_qos.pngprefetch_pipeline.pngptpclient.svgpvp_2nics.svgqos_sched_app_arch.pngring-dequeue1.svgring-dequeue2.svgring-dequeue3.svgring-enqueue1.svgring-enqueue2.svgring-enqueue3.svgring-modulo1.svgring-modulo2.svgring-mp-enqueue1.svgring-mp-enqueue2.svgring-mp-enqueue3.svgring-mp-enqueue4.svgring-mp-enqueue5.svgring1.svgring_pipeline_perf_setup.pngsched_hier_per_port.pngscheduler-overview.svgserver_node_efd.svgsingle_port_nic.pngstateful-op.svgstateless-op-shared.svgstateless-op.svgsym_multi_proc_app.pngszedata2_nfb200g_architecture.svgtbl24_tbl8.pngtbl24_tbl8_tbl8.pngtep_termination_arch.svgtest_pipeline_app.pngthreads_pipelines.pngturbo_tb_decode.svgturbo_tb_encode.svguse_models_for_running_dpdk_in_containers.svgvf_daemon_overview.svgvirtio_user_as_exceptional_path.svgvirtio_user_for_container_networking.svgvm_power_mgr_highlevel.svgvm_power_mgr_vm_request_seq.svgvm_vm_comms.pngvmdq_dcb_example.svgvmxnet3_int.pngvswitch_vm.png_sourcesbbdevsindex.txtnull.txtturbo_sw.txtcompressdevsindex.txtisal.txtocteontx.txtoverview.txtqat_comp.txtzlib.txtcontributingcheatsheet.txtcoding_style.txtdesign.txtdocumentation.txtindex.txtpatches.txtstable.txtversioning.txtcryptodevsaesni_gcm.txtaesni_mb.txtarmv8.txtcaam_jr.txtccp.txtdpaa2_sec.txtdpaa_sec.txtindex.txtkasumi.txtmvsam.txtnull.txtocteontx.txtopenssl.txtoverview.txtqat.txtscheduler.txtsnow3g.txtvirtio.txtzuc.txteventdevsdpaa.txtdpaa2.txtdsw.txtindex.txtocteontx.txtopdl.txtsw.txtfaqfaq.txtindex.txtfreebsd_gsgbuild_dpdk.txtbuild_sample_apps.txtfreebsd_eal_parameters.txtindex.txtinstall_from_ports.txtintro.txthowtoflow_bifurcation.txtindex.txtlm_bond_virtio_sriov.txtlm_virtio_vhost_user.txtpacket_capture_framework.txtpvp_reference_benchmark.txtrte_flow.txttelemetry.txtvfd.txtvirtio_user_as_exceptional_path.txtvirtio_user_for_container_networking.txtindex.txtlinux_gsgbuild_dpdk.txtbuild_sample_apps.txtcross_build_dpdk_for_arm64.txteal_args.include.txtenable_func.txtindex.txtintro.txtlinux_drivers.txtlinux_eal_parameters.txtnic_perf_intel_platform.txtquick_start.txtsys_reqs.txtmempoolindex.txtocteontx.txtnicsark.txtatlantic.txtavp.txtaxgbe.txtbnx2x.txtbnxt.txtbuild_and_test.txtcxgbe.txtdpaa.txtdpaa2.txte1000em.txtena.txtenetc.txtenic.txtfail_safe.txtfeatures.txtfm10k.txti40e.txtifc.txtigb.txtindex.txtintel_vf.txtixgbe.txtkni.txtliquidio.txtmlx4.txtmlx5.txtmvneta.txtmvpp2.txtnetvsc.txtnfp.txtocteontx.txtoverview.txtpcap_ring.txtqede.txtsfc_efx.txtsoftnic.txtszedata2.txttap.txtthunderx.txtvdev_netvsc.txtvhost.txtvirtio.txtvmxnet3.txtplatformdpaa.txtdpaa2.txtindex.txtocteontx.txtprog_guidebbdev.txtbpf_lib.txtbuild_app.txtcompressdev.txtcryptodev_lib.txtdev_kit_build_system.txtdev_kit_root_make_help.txtefd_lib.txtenv_abstraction_layer.txtevent_crypto_adapter.txtevent_ethernet_rx_adapter.txtevent_ethernet_tx_adapter.txtevent_timer_adapter.txteventdev.txtext_app_lib_make_help.txtextend_dpdk.txtflow_classify_lib.txtgeneric_receive_offload_lib.txtgeneric_segmentation_offload_lib.txtglossary.txthash_lib.txtindex.txtintro.txtip_fragment_reassembly_lib.txtkernel_nic_interface.txtlink_bonding_poll_mode_drv_lib.txtlpm6_lib.txtlpm_lib.txtmbuf_lib.txtmember_lib.txtmempool_lib.txtmetrics_lib.txtmulti_proc_support.txtoverview.txtpacket_classif_access_ctrl.txtpacket_distrib_lib.txtpacket_framework.txtpdump_lib.txtperf_opt_guidelines.txtpoll_mode_drv.txtpower_man.txtprofile_app.txtqos_framework.txtrawdev.txtreorder_lib.txtring_lib.txtrte_flow.txtrte_security.txtservice_cores.txtsource_org.txtswitch_representation.txtthread_safety_dpdk_functions.txttimer_lib.txttraffic_management.txttraffic_metering_and_policing.txtvhost_lib.txtwriting_efficient_code.txtrawdevsdpaa2_cmdif.txtdpaa2_qdma.txtifpga_rawdev.txtindex.txtrel_notesdeprecation.txtindex.txtknown_issues.txtrelease_16_04.txtrelease_16_07.txtrelease_16_11.txtrelease_17_02.txtrelease_17_05.txtrelease_17_08.txtrelease_17_11.txtrelease_18_02.txtrelease_18_05.txtrelease_18_08.txtrelease_18_11.txtrelease_1_8.txtrelease_2_0.txtrelease_2_1.txtrelease_2_2.txtsample_app_ugbbdev_app.txtcmd_line.txtcompiling.txtdist_app.txtethtool.txteventdev_pipeline.txtexception_path.txtfips_validation.txtflow_classify.txtflow_filtering.txthello_world.txtindex.txtintro.txtip_frag.txtip_pipeline.txtip_reassembly.txtipsec_secgw.txtipv4_multicast.txtkeep_alive.txtkernel_nic_interface.txtl2_forward_cat.txtl2_forward_crypto.txtl2_forward_job_stats.txtl2_forward_real_virtual.txtl3_forward.txtl3_forward_access_ctrl.txtl3_forward_power_man.txtl3_forward_virtual.txtlink_status_intr.txtload_balancer.txtmulti_process.txtnetmap_compatibility.txtpacket_ordering.txtperformance_thread.txtptpclient.txtqos_metering.txtqos_scheduler.txtquota_watermark.txtrxtx_callbacks.txtserver_node_efd.txtservice_cores.txtskeleton.txttep_termination.txttest_pipeline.txttimer.txtvdpa.txtvhost.txtvhost_crypto.txtvhost_scsi.txtvm_power_management.txtvmdq_dcb_forwarding.txttestpmd_app_ugbuild_app.txtindex.txtintro.txtrun_app.txttestpmd_funcs.txttoolscryptoperf.txtdevbind.txtindex.txtpdump.txtpmdinfo.txtproc_info.txttestbbdev.txttesteventdev.txt_staticDPDK_logo_vertical_rev_small.pngajax-loader.gifbasic.csscomment-bright.pngcomment-close.pngcomment.pngcsscustom.cssdefault.cssdoctools.jsdown-pressed.pngdown.pngfile.pngjquery.jsminus.pngplus.pngpygments.csssearchtools.jssidebar.jsunderscore.jsup-pressed.pngup.pngwebsupport.jsbbdevsindex.htmlnull.htmlturbo_sw.htmlcompressdevsindex.htmlisal.htmlocteontx.htmloverview.htmlqat_comp.htmlzlib.htmlcontributingcheatsheet.htmlcoding_style.htmldesign.htmldocumentation.htmlindex.htmlpatches.htmlstable.htmlversioning.htmlcryptodevsaesni_gcm.htmlaesni_mb.htmlarmv8.htmlcaam_jr.htmlccp.htmldpaa2_sec.htmldpaa_sec.htmlindex.htmlkasumi.htmlmvsam.htmlnull.htmlocteontx.htmlopenssl.htmloverview.htmlqat.htmlscheduler.htmlsnow3g.htmlvirtio.htmlzuc.htmleventdevsdpaa.htmldpaa2.htmldsw.htmlindex.htmlocteontx.htmlopdl.htmlsw.htmlfaqfaq.htmlindex.htmlfreebsd_gsgbuild_dpdk.htmlbuild_sample_apps.htmlfreebsd_eal_parameters.htmlindex.htmlinstall_from_ports.htmlintro.htmlgenindex.htmlhowtoflow_bifurcation.htmlindex.htmllm_bond_virtio_sriov.htmllm_virtio_vhost_user.htmlpacket_capture_framework.htmlpvp_reference_benchmark.htmlrte_flow.htmltelemetry.htmlvfd.htmlvirtio_user_as_exceptional_path.htmlvirtio_user_for_container_networking.htmlindex.htmllinux_gsgbuild_dpdk.htmlbuild_sample_apps.htmlcross_build_dpdk_for_arm64.htmleal_args.include.htmlenable_func.htmlindex.htmlintro.htmllinux_drivers.htmllinux_eal_parameters.htmlnic_perf_intel_platform.htmlquick_start.htmlsys_reqs.htmlmempoolindex.htmlocteontx.htmlnicsark.htmlatlantic.htmlavp.htmlaxgbe.htmlbnx2x.htmlbnxt.htmlbuild_and_test.htmlcxgbe.htmldpaa.htmldpaa2.htmle1000em.htmlena.htmlenetc.htmlenic.htmlfail_safe.htmlfeatures.htmlfm10k.htmli40e.htmlifc.htmligb.htmlindex.htmlintel_vf.htmlixgbe.htmlkni.htmlliquidio.htmlmlx4.htmlmlx5.htmlmvneta.htmlmvpp2.htmlnetvsc.htmlnfp.htmlocteontx.htmloverview.htmlpcap_ring.htmlqede.htmlsfc_efx.htmlsoftnic.htmlszedata2.htmltap.htmlthunderx.htmlvdev_netvsc.htmlvhost.htmlvirtio.htmlvmxnet3.htmlobjects.invplatformdpaa.htmldpaa2.htmlindex.htmlocteontx.htmlprog_guidebbdev.htmlbpf_lib.htmlbuild_app.htmlcompressdev.htmlcryptodev_lib.htmldev_kit_build_system.htmldev_kit_root_make_help.htmlefd_lib.htmlenv_abstraction_layer.htmlevent_crypto_adapter.htmlevent_ethernet_rx_adapter.htmlevent_ethernet_tx_adapter.htmlevent_timer_adapter.htmleventdev.htmlext_app_lib_make_help.htmlextend_dpdk.htmlflow_classify_lib.htmlgeneric_receive_offload_lib.htmlgeneric_segmentation_offload_lib.htmlglossary.htmlhash_lib.htmlindex.htmlintro.htmlip_fragment_reassembly_lib.htmlkernel_nic_interface.htmllink_bonding_poll_mode_drv_lib.htmllpm6_lib.htmllpm_lib.htmlmbuf_lib.htmlmember_lib.htmlmempool_lib.htmlmetrics_lib.htmlmulti_proc_support.htmloverview.htmlpacket_classif_access_ctrl.htmlpacket_distrib_lib.htmlpacket_framework.htmlpdump_lib.htmlperf_opt_guidelines.htmlpoll_mode_drv.htmlpower_man.htmlprofile_app.htmlqos_framework.htmlrawdev.htmlreorder_lib.htmlring_lib.htmlrte_flow.htmlrte_security.htmlservice_cores.htmlsource_org.htmlswitch_representation.htmlthread_safety_dpdk_functions.htmltimer_lib.htmltraffic_management.htmltraffic_metering_and_policing.htmlvhost_lib.htmlwriting_efficient_code.htmlrawdevsdpaa2_cmdif.htmldpaa2_qdma.htmlifpga_rawdev.htmlindex.htmlrel_notesdeprecation.htmlindex.htmlknown_issues.htmlrelease_16_04.htmlrelease_16_07.htmlrelease_16_11.htmlrelease_17_02.htmlrelease_17_05.htmlrelease_17_08.htmlrelease_17_11.htmlrelease_18_02.htmlrelease_18_05.htmlrelease_18_08.htmlrelease_18_11.htmlrelease_1_8.htmlrelease_2_0.htmlrelease_2_1.htmlrelease_2_2.htmlsample_app_ugbbdev_app.htmlcmd_line.htmlcompiling.htmldist_app.htmlethtool.htmleventdev_pipeline.htmlexception_path.htmlfips_validation.htmlflow_classify.htmlflow_filtering.htmlhello_world.htmlindex.htmlintro.htmlip_frag.htmlip_pipeline.htmlip_reassembly.htmlipsec_secgw.htmlipv4_multicast.htmlkeep_alive.htmlkernel_nic_interface.htmll2_forward_cat.htmll2_forward_crypto.htmll2_forward_job_stats.htmll2_forward_real_virtual.htmll3_forward.htmll3_forward_access_ctrl.htmll3_forward_power_man.htmll3_forward_virtual.htmllink_status_intr.htmlload_balancer.htmlmulti_process.htmlnetmap_compatibility.htmlpacket_ordering.htmlperformance_thread.htmlptpclient.htmlqos_metering.htmlqos_scheduler.htmlquota_watermark.htmlrxtx_callbacks.htmlserver_node_efd.htmlservice_cores.htmlskeleton.htmltep_termination.htmltest_pipeline.htmltimer.htmlvdpa.htmlvhost.htmlvhost_crypto.htmlvhost_scsi.htmlvm_power_management.htmlvmdq_dcb_forwarding.htmlsearch.htmlsearchindex.jstestpmd_app_ugbuild_app.htmlindex.htmlintro.htmlrun_app.htmltestpmd_funcs.htmltoolscryptoperf.htmldevbind.htmlindex.htmlpdump.htmlpmdinfo.htmlproc_info.htmltestbbdev.htmltesteventdev.html/usr/share/doc//usr/share/doc/dpdk//usr/share/doc/dpdk/api//usr/share/doc/dpdk/guides//usr/share/doc/dpdk/guides/_images//usr/share/doc/dpdk/guides/_sources//usr/share/doc/dpdk/guides/_sources/bbdevs//usr/share/doc/dpdk/guides/_sources/compressdevs//usr/share/doc/dpdk/guides/_sources/contributing//usr/share/doc/dpdk/guides/_sources/cryptodevs//usr/share/doc/dpdk/guides/_sources/eventdevs//usr/share/doc/dpdk/guides/_sources/faq//usr/share/doc/dpdk/guides/_sources/freebsd_gsg//usr/share/doc/dpdk/guides/_sources/howto//usr/share/doc/dpdk/guides/_sources/linux_gsg//usr/share/doc/dpdk/guides/_sources/mempool//usr/share/doc/dpdk/guides/_sources/nics//usr/share/doc/dpdk/guides/_sources/platform//usr/share/doc/dpdk/guides/_sources/prog_guide//usr/share/doc/dpdk/guides/_sources/rawdevs//usr/share/doc/dpdk/guides/_sources/rel_notes//usr/share/doc/dpdk/guides/_sources/sample_app_ug//usr/share/doc/dpdk/guides/_sources/testpmd_app_ug//usr/share/doc/dpdk/guides/_sources/tools//usr/share/doc/dpdk/guides/_static//usr/share/doc/dpdk/guides/_static/css//usr/share/doc/dpdk/guides/bbdevs//usr/share/doc/dpdk/guides/compressdevs//usr/share/doc/dpdk/guides/contributing//usr/share/doc/dpdk/guides/cryptodevs//usr/share/doc/dpdk/guides/eventdevs//usr/share/doc/dpdk/guides/faq//usr/share/doc/dpdk/guides/freebsd_gsg//usr/share/doc/dpdk/guides/howto//usr/share/doc/dpdk/guides/linux_gsg//usr/share/doc/dpdk/guides/mempool//usr/share/doc/dpdk/guides/nics//usr/share/doc/dpdk/guides/platform//usr/share/doc/dpdk/guides/prog_guide//usr/share/doc/dpdk/guides/rawdevs//usr/share/doc/dpdk/guides/rel_notes//usr/share/doc/dpdk/guides/sample_app_ug//usr/share/doc/dpdk/guides/testpmd_app_ug//usr/share/doc/dpdk/guides/tools/-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=genericdrpmxz2x86_64-redhat-linux-gnu   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKKKKKKLKKKKKKKKKKLKMKKK KKKKLKNKOPLPPKKOKK KKPKKKKKKKKPPPPPPPPQPPLPPPKPKKK PRSTTTTTT UUK TTVVVVVVVVVWVVVVVVVVVLVVVVVXVVVYVVVVVVYVVVVVVVNVVVVVVVVVVVVVVVVVVVVVVVVVVLVVZdirectoryHTML document, ASCII text, with very long linesPNG image data, 8 x 30, 8-bit/color RGBA, non-interlacedPNG image data, 7 x 8, 8-bit/color RGBA, non-interlacedPNG image data, 9 x 9, 8-bit/color RGBA, non-interlacedHTML document, ASCII textassembler source, ASCII textPNG image data, 104 x 31, 8-bit/color RGBA, non-interlacedASCII textPNG image data, 16 x 22, 8-bit/color RGBA, non-interlacedPNG image data, 24 x 22, 8-bit/color RGBA, non-interlacedPNG image data, 6 x 1024, 8-bit/color RGB, non-interlacedASCII text, with very long linesPNG image data, 1 x 56, 8-bit/color RGB, non-interlacedPNG image data, 1 x 6, 8-bit/color RGB, non-interlacedPNG image data, 1 x 12, 8-bit/color RGB, non-interlacedHTML document, UTF-8 Unicode text, with very long linesPNG image data, 24 x 24, 8-bit/color RGBA, non-interlacedPNG image data, 1 x 36, 8-bit/color RGB, non-interlacedSVG Scalable Vector Graphics imagePNG image data, 856 x 603, 8-bit/color RGBA, non-interlacedPNG image data, 696 x 358, 8-bit/color RGBA, non-interlacedPNG image data, 516 x 166, 8-bit/color RGBA, non-interlacedPNG image data, 494 x 581, 8-bit/color RGB, non-interlacedPNG image data, 355 x 68, 8-bit/color RGBA, non-interlacedPNG image data, 121 x 38, 8-bit/color RGBA, non-interlacedPNG image data, 728 x 392, 8-bit/color RGBA, non-interlacedPNG image data, 194 x 36, 8-bit/color RGBA, non-interlacedPNG image data, 112 x 27, 8-bit/color RGBA, non-interlacedPNG image data, 267 x 27, 8-bit colormap, non-interlacedPNG image data, 209 x 27, 8-bit/color RGBA, non-interlacedPNG image data, 606 x 341, 8-bit/color RGB, non-interlacedPNG image data, 497 x 120, 8-bit colormap, non-interlacedPNG image data, 838 x 547, 8-bit/color RGBA, non-interlacedPNG image data, 670 x 260, 8-bit/color RGBA, non-interlacedPNG image data, 3578 x 400, 8-bit/color RGBA, non-interlacedPNG image data, 793 x 203, 8-bit/color RGBA, non-interlacedPNG image data, 3652 x 485, 8-bit/color RGBA, non-interlacedPNG image data, 792 x 97, 8-bit/color RGBA, non-interlacedPNG image data, 791 x 131, 8-bit/color RGBA, non-interlacedPNG image data, 2882 x 487, 8-bit/color RGBA, non-interlacedPNG image data, 325 x 629, 8-bit/color RGB, non-interlacedPNG image data, 621 x 140, 8-bit/color RGBA, non-interlacedPNG image data, 580 x 400, 8-bit/color RGBA, non-interlacedPNG image data, 436 x 468, 8-bit/color RGBA, non-interlacedPNG image data, 417 x 445, 8-bit/color RGBA, non-interlacedPNG image data, 893 x 581, 8-bit/color RGB, non-interlacedPNG image data, 468 x 64, 8-bit colormap, non-interlacedPNG image data, 757 x 451, 8-bit/color RGBA, non-interlacedPNG image data, 757 x 582, 8-bit/color RGB, non-interlacedPNG image data, 482 x 434, 8-bit/color RGBA, non-interlacedPNG image data, 826 x 407, 8-bit/color RGBA, non-interlacedPNG image data, 146 x 42, 8-bit/color RGBA, non-interlacedPNG image data, 809 x 720, 8-bit/color RGBA, non-interlacedPNG image data, 1108 x 643, 8-bit/color RGBA, non-interlacedPNG image data, 897 x 482, 8-bit/color RGBA, non-interlacedPNG image data, 459 x 629, 8-bit/color RGBA, non-interlacedPNG image data, 498 x 461, 8-bit/color RGBA, non-interlacedPNG image data, 734 x 548, 8-bit/color RGBA, non-interlacedPNG image data, 896 x 466, 8-bit/color RGB, non-interlacedPNG image data, 892 x 426, 8-bit/color RGBA, non-interlacedPNG image data, 790 x 122, 8-bit/color RGBA, non-interlacedPNG image data, 691 x 302, 8-bit/color RGBA, non-interlacedPNG image data, 547 x 417, 8-bit/color RGBA, non-interlacedPNG image data, 570 x 591, 8-bit/color RGB, non-interlacedPNG image data, 898 x 693, 8-bit/color RGB, non-interlacedPNG image data, 565 x 466, 8-bit/color RGBA, non-interlacedPNG image data, 608 x 390, 8-bit/color RGBA, non-interlacedPNG image data, 564 x 370, 8-bit/color RGBA, non-interlacedPNG image data, 661 x 241, 8-bit/color RGBA, non-interlacedPNG image data, 538 x 459, 8-bit/color RGBA, non-interlacedPNG image data, 545 x 443, 8-bit/color RGB, non-interlacedPNG image data, 517 x 261, 8-bit/color RGBA, non-interlacedPNG image data, 520 x 460, 8-bit/color RGB, non-interlacedFORTRAN program, ASCII textUTF-8 Unicode textC++ source, ASCII textUTF-8 Unicode text, with very long linesC++ source, UTF-8 Unicode textC source, UTF-8 Unicode textC source, ASCII textC source, UTF-8 Unicode text, with very long linesPNG image data, 176 x 131, 8-bit/color RGBA, non-interlacedGIF image data, version 89a, 16 x 16PNG image data, 16 x 16, 8-bit/color RGBA, non-interlacedPNG image data, 11 x 11, 8-bit/color RGB, non-interlacedHTML document, UTF-8 Unicode textC++ source, ASCII text, with very long linesC++ source, UTF-8 Unicode text, with very long linesASCII text, with very long lines, with no line terminators?7zXZ !#,.-]"k%f=3Zu fbRR}lmޝJ2F3.u MlKU7`&V薖x;wd"^/,8PdL.`WmHyUIfӴd*?}Uخ),=Ogݒ_o$HNQtmH WV8FU7[ ."/}'3z~ُfTB_̓skʗYkyȀ2WuH7vRϟ .:y2=Ro`G.J9%\=zEaۉs$17B/ޥ;YbԤ[d>_n ?ɸ?LNH5z7K5ni$p )h¦@4}4_k<Ҫ jԏ95l Y8hߕ ]4Tܚϫ'Ԁ8pɏ-7&RϔT<qX` SםΪy)N SeG ~,{WÞI$ C l[qgZxm рjPG.{6HDw>#}ٌyq[UվDAM>#+w|Yc '$ Vkk{!G=ӦG.suUhm2j³zw\[XUbB.LJLE cL@[CRd:5uH`>@4 D^lm68T>K}m[8Է2*j\R 1zhv~|2V\P0Ncl(hAmBDwe?Sm7~Kd{~Q KH䖐W~]Lu&"pMup \ G{TFyjH}`U Jt7!fZwU8ܐX]!lux@qiϝ ℻JpxTO?/dޓ=f%#KzYL`ѳK>P(yM UF r;5jSEu-GwnpX*$LGMLNU9;I%02c0r |([;&¥yO'eQ9ԅMJw5|k{b2!L%}c3յn;#Y7XFfUl[$ 7{TCFui o.,׹(>5 ZZa]gkGQ)uD_-vL؁E_ZP0\q4zJMUW_: ؾ4 bB/43mFure!,fz7 C V5<[z'O:f~(y4aw90v2یFEM@"5=7y}v_|:%F6yiE1|/apuc0_;]n=orCܼ2k+T1'(Ēwݏ`=G!T*J%c-U*١5HU`Z/^ssŪ׺Dr}~yll:f1OcޠxNhOMhwqF^U;>hU)nR=2r|nQͦ^0po$IH򈨰,.CCg2E-z!68-DS^dnBt`q'G-_Ү_JEavAg6A!-1f]8]A\a ׂ>?,VF6D+S), Y+5z8Q?5K9USN(:ȼkԁތT}CAMEgc],-I#|z#7_BI2T$pKN&N^kpBON^RduZ$DŽ z҃ŕO,"5!G #B?2s ƐL> hC!yhj3³`<704nSW* oo>ӀO 硍ӥ(9T , ձ _&/LBJD.~3*T/#5VgA|&`jdAL1Y n/+EW]}?\3^7wa=])]ľnn]Mg/^zVO^ RI΅In4M"uĘ+n }"4RZN\ȑ+^?#Ҥ`.4pd{EaH.] bm(ß3gAF > 2Q*Ot2 Yh *x7^^sEZc~<qܯ*7 u;΂gpC76@7Y=q+Ɋ|Fs(l:)4O*$+jМ2Npv|%TwW[t5v4¤҈7:iQ1/l @H]U߇if\׍LjM~uN8RO">@ bY4نTRg:]`p O]n$1\fR?vi p' ^0D0>7M{+"-UgID>> 8oizmq:%˥&`.GK_Mb)~[uRGN𾊔K·^Z'Ma$ `S3^Hg FT9tj Eo7#p?@r `Ts'K6CXWFǭoLnB9#C]OkESA у`& 8%傱aT7v]E{]ց%-?]]y<ގmź5:)^t0DKw_8+:I@R55G(rə}#lIMO&pJl4JH_}ŵJY+Cla?Z#RsߣNm+ %$&۠_+4[k;hv3c# 2 T]Hx1 z}A%^i7rsԀPV3550(|_euಉƊ=[ +QT}Z{a]z;(fq}LCn$F[@i_ LM+<&ԌF`A B_H8el⎼CcȈii1|u}+Lbt1,޻1_qAfzdw`B-,i>V 3K%0aKBlϝ7ufv$z)ݬԷJՄE!zr `)xD b I*>\jkn&r)ӷS*4sґK&}lQ1 0(oMO\ߢDHw\)մ{ p'NF$y +(*{2[&.>>QJOM|WEZaƔI %|14/< nΛATV(5Qi*Tv˶rYO[5E;@$L^cfu.dcB^NKT䅬TqZEF::9Q"al"k$r\6_MaaIJR ]iOMdm @fǭ s`YEVbA%%Ùp L~㐅0ܾ^ !~Nr'AfVq^tYؐt |,@CŬ0o s:lQՔdac!Q8Z"9MG[ .(ŘoergGE|?:s&gԇUA U^^O';^'@whay+>*Zy%:UݖZ%k ]kZDS22DB f|PU[0A%!k)'|sOFjNN=4!jn݆3»s Cݕ5_Sr8̼PH<"^K:\4x4eK)'C/&dZ ##@r?|?ϰE 5wu$oL#- ݗЅzZ7ۂ؁9A'Vqf" WdFj CY IpxryQ'%g Z^ F㰢`GvQbF1B?5O?iFߋb4f:ONY}*ϸ3J%aS̖0oWeC|I yl朜{|H` #iA_]HG-~T_Adz)mѼon-Wġ\WWiK[ųj-e;߅!ydYtO{2Ϙ>f3t7{9S@3PLECpk`<_Zŭ$ _ȓFZ:slQIyz¹[VXz5h!U7v*/g j71 u_9G[<ڔM'N& qR mܦ=վ^1yA:Xk}!/K尚Oy8}ę~|@JI.rMlY7gL)@.N.Ug}deyi:^w|*0DK\m ]2nU fbhw+y J+}N DW*ŕTlHfA^/+J}6#4@ W z7 #r%K.ekZ! r}4e̗T$nOO}BP}pL V8L ;Au$X6^^@=NmI;v>ƚt}$NgꤴlЛ^fLM-!,k*&P.s#"-alX۱+J4KtͼA9"b݉OVzQeF"L%Kyr%Y eL379.3c $ޱ&wq԰tIayշ?_?cˉ2^ a>gB?lƂbpNN^%_~d6J)&RBWȼOo#4ِ Y;y LaꜮtOZH8$&L3娼i`jhC{h[ O14(Fq/d Mvxhe ?*z4؊k[}ljq&ڧ|2͝7 w wV1@7*|GhJXbڳ`DīJmDf]:G:Kͫ)![oje ׎J2;S(x=vK3>l^]G p?)Tg5τ!1I7X4SԸ<p rTzh>w0+=bS=-rq|Ɗ*?ElY;9b355ҙE|㢫֛YB_NZ"X&GuSl-t.ZFW)D`e~ٖߐm37g=ze O^+- OWA㨤:7p/z(?+OnѦT?FkuJn| MlEW*34zyAħJc,1< H Y`|NÁ`ժŘs"](|x~.LHCMYp7.qm+j`-p P9k &d `hؾͧœ b]BMs lf&?r]yaH[ Fuƣ%̝> vA IMׁD\_^/-0K`-1pw<\@{P:ζUkF @JDBə-zbF쒰:Tof":z_X)ؽ)w Ɗ҅& f,_CvKdᨕx?>Lji)7ztuq ĘΈK4ڰR)x Y]ó4LF%hFf1uz0Gm$%uBM-[QEW_ًk+]O".l5UCJLfx<sk^w؎06Bpd] b#ːDJFGB^|߮`BTDӷU!n0i.'Ÿ't`m ٛ"C .ZH^ ~+mwc9P] iטqvcEB$Qla; eEgIcNVvoj5g4&/&[[ 0 Z]Μ YZ