From f890b29f812bd844ae650c9a4b73677cfe6ed4e8 Mon Sep 17 00:00:00 2001
From: Bernardo Damele F*Y+aHM4LtbhdD|Fflc7b9OXzGPP5%A*5vbDnBM!
E0I?M!RR910
delta 137
zcmX>;m-F~s&W0AoElk}iI_3rzh9*XqhKAY(hUx|e>Y7~ozWFIGi6yBD8ZK5w28M !A*5vbDnBM!
E0IjSdR{#J2
diff --git a/doc/README.html b/doc/README.html
index d5590a0fe..01db50593 100644
--- a/doc/README.html
+++ b/doc/README.html
@@ -11,7 +11,7 @@
Bernardo Damele A. G.,
Miroslav Stamparversion 1.0-dev, XXX XX, 2011
@@ -93,26 +93,23 @@ on the operating system via out-of-band connections. sqlmap is developed in
Python,
-a dynamic object-oriented interpreted programming language.
-This makes the tool independent from the operating system. It only
-requires the Python interpreter version 2 equal or higher than
-2.6.
-The interpreter is freely downloadable from its
-official site.
+a dynamic, object-oriented, interpreted programming language freely available from
+http://python.org/download/.
+This makes sqlmap a cross-platform application which is independant of the
+operating system. sqlmap requires Python version 2.6 or above.
To make it even easier, many GNU/Linux distributions come out of the box
-with Python interpreter installed and other Unices and Mac OSX too provide
-it packaged in their formats and ready to be installed.
-Windows users can download and install the Python setup-ready installer
-for x86, AMD64 and Itanium too.
-This document is the user's manual to use
+This document is the user's manual for
sqlmap.
sqlmap relies on the Metasploit Framework for some of its post-exploitation takeover -features. You need to grab a copy of it from the +features. You need to grab a copy of the framework from the download page - the required version is 3.5 or higher. -For the ICMP tunneling out-of-band takeover technique, sqlmap requires +For the ICMP tunneling out-of-band takeover technique, sqlmap requires the Impacket library too.
If you are willing to connect directly to a database server (-d
switch),
-without passing via a web application, you need to install Python bindings
+without passing through the web application, you need to install Python bindings
for the database management system that you are going to attack:
-
-update
switch) you need to
install respectively
python-ntlm and
-python-svn libraries.
-Optionally, if you are running sqlmap on Windows, you may wish to install +python-svn libraries respectively.
+Optionally, if you are running sqlmap on Windows, you may wish to install the PyReadline -library to be able to take advantage of the sqlmap TAB completion and +library in order to take advantage of the sqlmap TAB completion and history support features in the SQL shell and OS shell. -Note that these functionalities are available natively by Python standard +Note that these functionalities are available natively via the standard Python readline library on other operating systems.
-You can also choose to install +
You can also choose to install the Psyco library to eventually speed up the sqlmap algorithmic operations.
@@ -157,13 +154,13 @@ operations.Let's say that you are auditing a web application and found a web page
-that accepts dynamic user-provided values on GET
or POST
-parameters or HTTP Cookie
values or HTTP User-Agent
-header value.
+that accepts dynamic user-provided values via GET
, POST
+or Cookie
parameters or via the HTTP User-Agent
+request header.
You now want to test if these are affected by a SQL injection
vulnerability, and if so, exploit them to retrieve as much information as
-possible out of the web application's back-end database management system
-or even be able to access the underlying file system and operating system.
In a simple world, consider that the target url is:
@@ -176,57 +173,53 @@ or even be able to access the underlying file system and operating system.
http://192.168.136.131/sqlmap/mysql/get_int.php?id=1+AND+1=1
-is the same page as the original one and:
+is the same page as the original one and (the condition evaluates to True):
http://192.168.136.131/sqlmap/mysql/get_int.php?id=1+AND+1=2
-differs from the original one, it means that you are in front of a SQL +
differs from the original one (the condition evaluates to False).
+This likely means that you are in front of a SQL
injection vulnerability in the id
GET
parameter of the
-index.php
web application page which means that potentially no
-IDS/IPS, no web application firewall, no parameters' value sanitization is
-performed on the server-side before sending the SQL statement to the
-back-end database management system the web application relies on.
This is a quite common flaw in dynamic content web applications and it
+index.php
page. Additionally, no sanitisation of user's supplied
+input is taking place before the SQL statement is sent to the
+back-end database management system.
This is quite a common flaw in dynamic content web applications and it does not depend upon the back-end database management system nor on the web -application programming language: it is a programmer code's security flaw. +application programming language; it is a flaw within the application code. The Open Web Application Security Project -rated on 2010 in their -OWASP Top Ten survey this vulnerability as the -most common and important web application vulnerability along with other -injection flaws.
-Back to the scenario, probably the SQL SELECT
statement into
-get_int.php
has a syntax similar to the following SQL query, in
-pseudo PHP code:
Now that you have found the vulnerable parameter, you can exploit it by
+manipulating the id
parameter value in the HTTP request.
Back to the scenario, we can make an educated guess about the probable
+syntax of the SQL SELECT
statement where the user supplied value is
+being used in the get_int.php
web page. In pseudo PHP code:
$query = "SELECT [column(s) name] FROM [table name] WHERE id=" . $_REQUEST['id'];
-As you can see, appending any other syntatically valid SQL condition after
-a value for id
such condition will take place when the web
-application passes the query to the back-end database management system
-that executes it, that is why the condition id=1 AND 1=1
is valid
-(True) and returns the same page as the original one, with the
-same content. This is the case of a boolean-based blind SQL injection
-vulnerability. However, sqlmap is able to detect any type of SQL injection
-and adapt its work-flow accordingly. Read below for further details.
Moreover, in this simple and easy to inject scenario it would be also
-possible to append, not just one or more valid SQL condition(s), but also
-stacked SQL queries, for instance something like [...]&id=1;
-ANOTHER SQL QUERY#
if the web application technology supports
-stacked queries, also known as multiple statements.
Now that you found this SQL injection vulnerable parameter, you can
-exploit it by manipulating the id
parameter value in the HTTP
-request.
There exist many -resources -on the Net explaining in depth how to prevent, detect and exploit SQL -injection vulnerabilities in web application and it is recommended to read -them if you are not familiar with the issue before going ahead with sqlmap.
-Passing the original address, http://192.168.136.131/sqlmap/mysql/get_int.php?id=1
+
As you can see, appending a syntactically valid SQL statement that will
+evaluate to a True condition after the value for the id
+parameter (such as id=1 AND 1=1
) will result in the web application
+returning the same web page as in the original request (where no SQL
+statement is added).
+This is because the back-end database management system has evaluated the
+injected SQL statement.
+The previous example describes a simple boolean-based blind SQL injection
+vulnerability.
+However, sqlmap is able to detect any type of SQL injection flaw and adapt
+its work-flow accordingly.
In this simple scenario it would also be possible to append, not just one or
+more valid SQL conditions, but also (depending on the DBMS) stacked SQL
+queries. For instance: [...]&id=1;ANOTHER SQL QUERY#
.
sqlmap can automate the process of identifying and exploiting this type of
+vulnerability.
+Passing the original address, http://192.168.136.131/sqlmap/mysql/get_int.php?id=1
to sqlmap, the tool will automatically:
There exist many +resources +on the web explaining in depth how to detect, exploit and prevent SQL +injection vulnerabilities in web applications. It is recommendeded that you read +them before going much further with sqlmap.
UNION ALL SELECT
.
-This techique works when the web application page passes the output of the
-SELECT
statement within a for
cycle, or similar, so that
-each line of the query output is printed on the page content.
+valid SQL statement starting with an UNION ALL SELECT
.
+This techique works when the web application page passes directly the output
+of the SELECT
statement within a for
loop, or similar, so
+that each line of the query output is printed on the page content.
sqlmap is also able to exploit partial (single entry) UNION query SQL
injection vulnerabilities which occur when the output of the
-statement is not cycled in a for
construct whereas only the first
+statement is not cycled in a for
construct, whereas only the first
entry of the query output is displayed.;
) followed by the
SQL statement to be executed. This technique is useful to run SQL
-statements other than SELECT
like, for instance, data
-definition or data manipulation statements possibly leading
+statements other than SELECT
, like for instance, data
+definition or data manipulation statements, possibly leading
to file system read and write access and operating system command
execution depending on the underlying back-end database management system
and the session user privileges.E@qqIJg>Pbw#vSY*3vv+u9+GXUn1|`W3{3%)W z>SrN}0j+FgqTfCaN~DHjUq{Fr!mz}&-+ z?HxDmcPVpbZCi>~6}ydX%U_X)H>=ofq dmhjZb!)!= z6I)Y)qQMrWLlo-l>{?(64asx?-p&*jcY-<8&DwB0b|_lxG@k8H7YbB*bDa@?&I5hm z-0{Jd4vjD4)23bct-U$NoZqS^jV4H?oYUqt{`{fxR1)M^_Vw}7m=`yOc0WJH@qOsy z!`Gr6I}@YoZ13lYsN8Vc&ga3O%1?aTsmGp2r;=`TtRG;i*8Zq%d55U~hJNZjWY4hY zm3CgAR?D_*vvt?x9w$2L+pXEzr`Wc~kBy&ZHl5e+>yM;o*G{x6WuN#n8>&hwa?3q~`o~`MVCjI4-Px z@Q$N_uX63(KgweB3bE$@dE=85J;yk%OM%#aZH=GXKj?n6<1GKSTbvJu-Ws)M{NG*w zJ<@$shp*p*d+0|F?-txRq Sb;Wf) zWY@ME3rgrRR(jX2 sl#pcKGDC1LRXpR#&^_ZyQuA z>Fs!bZ^z(i(=s}*|97DDMX&hy6YHAa?$v0*_5k_fg}kv7`V5b*ce1tb+EIIy0E;)_j(+k+NDu^r5UmIXSFWn- _kZK)6r{Ym9CSJ+@s|ALE{>a ztlWOu>J43Y*Jw1k;e%&!pZAYT%+yMH=wI~14qegq2vhxS^0slld3{RW&Q)W;i38`l z`9`#P^1bdo-#_lOii>UQmF@MW=hqvSo3ik~2GyOu*XmvIU8HN#XxRQf_L<$5T`9Sw zT~h3yhvN!Q+}fqZuwtVtJPf;Xx9N$ja^nG)KZg&uSx+}O_@J~oTWr@`KNrobQm@W# zuiGgjlcN0w*nhuxU!K&n#LQ-m=3joA&%4f?77^R}9UnTKv?vr1r5_oe)bP%>-HA1# zFN}MC+ ;>_?g!@Gcjc*1c+c!x>#pClc>a0a+?ed2PRc1> z7smMy_AlK!aKXMY>;G5iRK vm4A_&L|Napvp=D|KFOsr|P0qX%soo-Z&b+p_N8orlk5 z$TPN`+{qGm#=c`>o_&7#1`jBs|M*YdJ|DXJe5zIM$*>Lu{nm6`&}-`Gl7A$}=IFSn z$I?s@u@9%L41ZE1Lr~P eQ%> zwZ3}C#|_$XRiBa^U%KqT3uMBljFuK_E_QC)DgVq~86L+L9?`Jew4+-(cdHZi{7T=X z+GW}$2fYl={?Na{(XpxTPdEQIrk8Ke_EPCuoh~j5KVj`UJkPY2w^pr6Rl04+65;G= zYPqszyD_yE>1wt8IL=x3Y@yN4GdK5C?Nq*C;?X91cNGlYRsCwj10~|-N_+J#K@-}K zo!6<(jWNDbmis?nP5iCKyB<$U9Vj-b$$@L7#tf}|VzFQKHYtl{Wtp9GYnB}~`#0Ly zFm!0l4$|dCkTLg(6$O_q9#N&^;CvUq^-0=s@I&2dH@;L#`g{8Q+k*~XIC<@L)dc6n z(W$HA&n&&(X6M6`551eb2t6{sLeSe=U%THQTcuN<@ihn5=^Hb+<>#KwfA?wp NTw&>tDXFMIO{CKkgJ)^v$93$tG9YtKV$FCAFH$oG2V$@aP#Np=)Zd8ZFlT_ zu>z$t-I>%n O^JFm z^h@mOIUys!d`RlOZNA}=vDNwwn|ArpJMZ@2XY4+ Uo547WENax>-6Hv@m9M$NeLV0Pu)WzDe*_YYdP;g~Hj;J1s9{`j_i<>kKJ z;<6oGGknIb!uCTcZ}j)#4oIcS-yV0?*8Jkwc^mJv&eJKW?A_h@$CXX0Ixr$tH*);j zS)U7EZyTQ{%d{R33KXf|YJTkRzis^#q&)nQ>G?k)w^N UO2j=!qq ze%_XNXIXe5`<>UDZH1c+x}w_>QX${7nQKm;8-Lu?ywHT#eX6zk?`yA7-{v?5o{MVP z>r#_eBl_HV !w_A(hrb%W00@_p_zBWc*yf4$YB{r$xFP znk((+9ldr0yfB-(-I3
i9S91P{1GCdL^FQb?Nl< zIlFH5_;dI7^3D2f2z`0%-d)}JxxE_|SbQ^a&4hhhau*+eqV>j!+kVzxH6gxBzjh5v z 1b@KY7ZylZnpLl!i z>$()j&g>8ORVg`t{Lw#_n93Me^vwV7&|QYaO6||&zrDkIXZf$y?SEcb{IaZ1t5cKu z-5jwDH#dvyi|$cpP3}uW1_t|lEZDvG?QVTOZu>ZUarDZr6XTyZ|FI=HceWw+?`3C7 z ue(2Q-Kn+dO7Z$7m)*Z{;>1VCguc@*t?(NY&~3w#I(8C2 zUn=PQ(yefh949{{yz$o^y%qaqQps-h@2?B$UR$2ivq0_lN3u^aZfvq(*ysGdvnF<$ z_W0mRpYjWb8YkyGV?Orqc%hIpZMNPq*z<+1E3mQDkir?KN3=daKX7N6?J=V&t-Q1S z$h`(vym#oA%(yye!_kqwZI!ppxlyd$ c1)~Q`BJ{&n`-@C zAo-)ccDZbi-`&pBJ>vD#@AWI(=-F)3=1RThG_;$R*XcXER765bWU16iABTV4mZ{f_ zPYEacW`C40bW_#Py9Ep6IJGB!xOLRCqyZah_RCwb)Y*qi!e)9G2|AF_w)CU=rQYs6 zxIJ-7vtqdlG`bmB?zo)$%H{K`G8c2U2%Q|Z`1qq%c|I@5X`a!c%EZtlPfA)KmGl z*4A0tH2b-G(V;Oj?k5Hh9o^)>`rBPsW$QI$!P32D%9Zuq(JWW;e}?A07ZOYFQ^9w9 z+w7}hExjo7h{gSjet#6xDRXSo59SYldOr-_S>@5<`8BdSVpc8uc(YmIs}IkeevrC{;az7&~eQ&aC+}=JpAJ2%{?pVG2hO^J21MjlTD0uB+!0w&W(dkP| zUfX8a6yTNNS+xCp)(4}#6L BTqIPWXLi z!!Uf)^1X~C+2tw(&W{ f&g=QR$@jpCc@6dBUQhgOX`a^WE3TdXhB(@;y?AW=#^!5NXH4JOq3zV# z6*_!-Ixx9ps_fML{<{CwbrF?9taWo2vHj&NSG1M?z|q!v8AAK!Z?rh+_0`ZB8~PpT zk@$SAG~IWYpW;2{L8e6CwP){jBu#b}?{w|wfG-PsoztggsB?AmjZ pPs zYu=lltMJHzA*1s~4YU+`(<8XrgsWW^SIhNce4E49YRr{#tUTD~Mcz_>ItS@fAAI=q zzn^Un?l@cZ{No<2t4TQ@)mT`yc2bk6|I2h>Nm$k8ckV6dVI2MbyY=?>&rb>`&K{Ga z|9{f!f1f=ZyfUy%)L`fL|2fCaDHXQ9YW`<`))>5e@tcK8wF8X?SJ-$w_|TBx!@FL7 zt3CZhN+18K4Fhry%aPPKKKcFKb1w%cu77bWSHYL3=8XR~x?H7m|KxgCEBE!3QoT*l z=Q5@0@(fN%BIE8!{*vApIX5COw?p+Oxf`DxdV^|wQtc`vd8KN6a_Ci;fENmA)&$1Z znMJGo5~-Xw$-6|#8o4YY0PPA!Er*^NwTg)cm_x4~P!7FnujxSIR!P5+604-; T>EMfOnGfP;$HSDLk`ZHbqIlji-JQlQ8s!OJC zMXMD;U=SX;R$2^C3MEE>L-qQ25W_&SpOk_Xh9GIwQnkA}3`W%;baX3vH )yZyIFCJgM1p zJ5(2xCsH=zcT%dDmto}=J?6kgOlIinlpy7gJh*^f4lPRZ#Y++X% hdOO~IM`sSoX+%Yn`BJXOPqBeeJ?jOPaB(qKdITJa>eikOOghTxq zsQzq9ge~^Q39P;Y`%940-*kBhB`@cYQE9#1N68h}|Fjg4S%QCu?E*ZrBn-sC22wyA zh)QFJ(WVY4v@{0P{E{?_Jh%=?sla7v1etR~%1WaG92inAxXaF6mi#azYPFWHz$RwW zle||X8~qJ+{Z4cJ9&`QvxWa5^Fe_Hhs9Huz_p6eFWW9x@%lw-=u1X7a)OL@V5QAwQ z@DkCPC?*a-4H !*R%?l-Q}0Wk$UBSdPd2@lD-g>==>?hi7zHhlq^3IZ_Y)~M zxl>jy8+ZJ%lto7Zo}%KI#&Ws1Z2w|clEKeVw9Hefp^nUX4$$jwUggNnXHqheUjnlF zxzt%lI=uo4Q*~bD<7&N>3ZnPdl7HO5SJHSLsq+@4GQW{3>qy^ss6Q*OT#op8dC6qT zTj?R${~qA6? *Bp47bO z6+jA}_9{zi%3c=;^R$#wyvpk024(Wf lF^X9;7ziKgr#5y!DVi-I~ z4zp{ChgoTBE;oM|{5=lMy%%P+A>lfb!mM^@phFEt1`2S$IMk?HB;Yx4X#Te_xDOn- zu&(xsFi?l;j-kb99j#YffpA!~0l{AH&^&2jK-r-N@S+Z$Y;&klygtFsFz93s<}N{y zOc(-S9BN=MO`s#qFBaxNM^=|VFw6kO&Vezi2pMpb!C}>iVnDEpLvwMVB+yXb4M2+q z+_ras0$M#wV3 dX4k**+Fsf3mRH2+2f9hltl6?U^XAQ4<4Y#l6ge(6HFf;B z#iz~F|5%iCC9>R{EE#SEwEIbdqU8YMy%f8?@)G$h*+>5>uvCsFU6 sM9B54WfmP}eMpC?^o04SUc!2A{R1ro9n zNerR_Sra2KAiu3bmrYm7-$>wU6>yA&bdhPrus1uemVbg{9{EppkVR|cf+4QitJA+r zc-LP2djuLx+ET97Gi+e9f#F>S(L8l+rMp;=Wg@TF$SV}Qrf9N}Icw!s*l0!idzB%6 z>*Us%=`0)Ze1nPfSts{^+vn0cd7u+HCiTvPYZ)M^?I{DKE+o_D6L&0-OkZ7ib=#zd z@U!{V)1 2xEhEqcs1O{T3d$Wchz18ZqZ1rJM@OxpG{7-+|78y#;u(qtN1h|@t* zMGFKVnKsHrNRec)n`RqjZ&H7QoJfjn0;%sd1y4oZd2)Rd=AdzD%+R*&DAHq-96?Ad ziX>Yw2V=L$SxNC&c_8V%S YM36>eoIF)W z+V2Ns-8(?$?32%u#qn~kxB>fRF!h84ba3|?(7YZmKO{L1%KmZZ6XaStQt}WW=Pv^i zdQiSXDjY_#(joaBDSiZhRX;30B14X%wEc)&MMr8ML*~?@a{R*M_@m7+c|G}j9Gxz$ zjzLvFF2|9|Cy@;QBA1V|o{%%@Nd8kuH$5pQk #d7fc3wDkfkmFw|f@>PCW^NWV 7Dt{&2uLA<{1E;?81|a8qqVp_w<;-O3b!_j+Hz`70 zf$!lP;0nucc@#N+6GgV%Mjm4bcWxm$GZ|g~^ph)+*SEoH&fdY;={c<<`|hIPy*u&^ zGVvb%!h)zkzTK6llYS{kvSEP{W+G?r$;-*O`&gWXiU7^n6!{wU$>t*DzPypteu% ~W?nMX)=J_`hW?_y!keF&yzdyG7`A9_B*erWsz7zNrvwV{vERIh)5QRgRe zW*w>b6b0ET-taGQZT}3kX!lgsL1K9>2as|#(fzV#pmgvHB-uXDNRyF7KF88_yhPjK zuYgVX3;7Hg{0a?jsfcRBUdlhnqStaj+|*Zcb{#qK2E9V~$`5JlEgJJ%D3>MjThzJz zPQ@0p_)h+ttb30ZU%vx0PW}LN;@`_fvCKZ9_L~oMt(W?Y;`$b#-5;M&y!{sxs{C0F z#Owa_mK>HHR^Z-mXr%ldpmpyn_LTn*6gvA&hV(+^6SDP-SJ}AcKjh=O5Es)*=fGwy z6wQqTo7Ed+ZeDkT*=UUm{VDt5CLejd!>i2h>B=>o(_IV>Lqi5Ulj=Gl(S*UIo%mr0 zY6DE;a$w3xX}lL)7c5WXk6^l}=L$>;0~ gj-Brnhigwl#a6hbPkC>?K_ zJOoh)DQ!%Ugpkt41W5=fZAg%W45l=32$B#|+K?a#8BESJc?hBqfZCWK3L&K-gLoOF zG-M!FBBc=+u_;Jt$Uw?ON<#)>CQ=$Q2!Sz}v^bbBNS#PIHEdw4K~f_yq)? =YUNr=HvJD J1t4kVo}npW$Y&;)6l|(LNX04V>XHx zx}%k;u(UmsQi!xa?^Tf)GbvL@`OGkN{GCbZq$4|g6#qCJkOOt3OBP)AgIHXFyz@~a z$eyf#49%ic*O6nsfIvAcPd;W<{w5*WQT>{)(p5*c_@Pjf> 1Q0|h` zxs|M>Y=5u9RI<%Me#@ ?Y(=3b_fnl)7$0F0Gm_ {**QI;}1tmrg~P2`>N?o}MvoVIJj50aYswAo^xX zZbD2-Y-V*%X-Pktmu-WbF|Mas*-?Nbwp4NwzfeV{r4v-! W|@jJk@ zOjWBZKF+Fgg+N?hr-KT_b#L`o74!pb>KWl4i)O=J^%|{|!s)FA s| IB+d*KzIYxq~!Y z4v0Ktv+IEu0^!ps)vuM34G-+8c(@2+SNUfkT&XM{26xvlYm{8rF9oKJD>p$CzQtgP zR?Db|a-hR?Gv494>5f *B3y3oc83pab_P{%)m|NJB0&i34)k)nVWhO$`4IWX^acKY7_o z=}*IvJG54s(BI9imG=0J%hE>KTAXGij8dF5qsnNdo<#qc cIqy5S}KGI$n1ods8p5jm={CeW2*LXOozwniyIq|yXzw$Brk zd|?JNvei>sD`=rP>MXgcT9Kn3tXdfx%~6NyDq}~E%NOs;anKwa88A@^Ah#wc1<8tu zAVrReO78mV{Hf)PK;G_p>%f%* a_pa~>>-V(D@DlcY05!TVFv!{I~^x;-kDh6O=c)( z$T#|zV !x0<)Cc#Agn+?Y-HGLV{*1Pf4M -&89;J_wCgm-&nyA zTmoQ|uzoB}FF34FD#Q6!I7XS68I0Xv$7fTFBsNCL@0L6tqb$Rk?z>Vk +UZV(gEtx`hpd;*vw2QrdS3c{sA0c0RC6lA4mCRfWq-cpd6 zZch$`tC6b#vWT^CGjJ{g(IxI#3ohN1)k>w@Pzi8)axfb)tf4JZF`5He$v6h0+MWQq zxJIcY8w_>_315R{VOpz{mJLSmv_mvGeyvg_z(jQduA+$?S&Qy$ROIJCMv`M49X6dn z4rCx<6l9^A0SCgfIP280@#D5&Z|l}G7*!@c>RB9i63So(%Fa0$uD`8EcSd?1aUi@z z0ubJuu#?&Av6EYDP)d8jluz!`)angNsoX~PY7SQq_XIWo6{G$aZJLN-BZWc568ghc zL={GLHLgv(X2f7dYH;9SdJ?pW4uQ&uo*>Lv1O+i0GzYSiBMd|ZCJtmHIbwk%ZlH=V zD+yyT>~Nu;g=}Xq`e`4&P59_H0~2Pk;JP!BPzIth6bCYr7z(n`GnNBk=Kw?!Qj{Dr zEIrsQTTs$Ug-fm^Zo*O!djQE31SXZT1tW#6MCbsQ(G6Qs%|wqdt{R>uV<0N+aUk5$ zq9A7b;y@M>w2hIK+R8YXnM9~CYGUAE*hdToB~^f7BW K!#lm4-tFpFbZ-|;}BO1SKW63MU$SYt^zD*H-k|Fj3>;3 z9Y$eRgGek3witsM1r~0xV2|wqDn@D=;+n)3qafzg;y~D86vQkr90(gMj)FuI<29yG z3i`#~uwa8x&@c9e1sjZkgd@QM?V-kA)Us2}(Gv|bjwS}85 uo0t`pf zKD210);F#ijwT9XzAp}BAr~1)WSBUdg7%}9l`6ShE$lT0qB;);!d9ao_Qn|p!cL0^ z=vQOLMq{8~j2Zikf~-{8@N5v5fprNKBrY5rIH43|7B@WHmN5(@?ssUZZxcXY3l0~d zGrSLY04*A+9hSobyNrTNB3CkDmr; PYF#DWS0&=Crv&+YTItR%-_3KHpSw2&|g5(P2~K-(Ee+?UV} zbw^OkMjgu>8rWeJWD++7LbhTUNL(BMy`>;#9^)Fs4m(OgR0Z|~8L-1B2)j@KVTVzW zm0D4`TG(L60Af~R4ulOxL1yvjgiYci1zCR4Al?o+P8+297}ubQL@*FFKye@=IYL2Z zQH;T}h&fKMzJ$ewK=&{P5>Fj~wo{N*Jar%?>rPUTC|5vA4y7PbSjR|73 -EYJcF$F@p$~$AVfs^DG99eLFS9NN=zhc_JgvOal z1gKH7lzS6s*1&TnBc2 kUvGRVU|;gP||Slt&P`q!hNaN;3PTyc;gc}Ac&BJxP+1a#mg0p;+e86Fw< zJq2cAgqu*P3`d$k1*kUy70iM*uQ%fRumXZ+=G?&0oo?heBNUj&(4yzLq8{omzZQ_k ze0!echk(r;J}77NR3j< vyQU
=-unAPaSCoYHVZtYn`JICen`ZfOx-5 _mQ=DAN@>1~%@@2c2R6Bm7XTY!OZ;6yt4KsB0HHL8O3yAmU)Sj`aw{1W#f7FP#TK z-xWK-=_!oF48s&p1v3k(^`xK$Q7?Qsi;;Rv)pAbN;ES&=BML*y)bb!+3mgu2Yxt2E zVG0%&rbQ5M(Fgsqx2t1U9}@JuvHvK!oDgC-5aLIuLsP|5LkV|Ld6Wx$Vyp2!~ z5!8c~v$bx*_vQEngh()cR`IEL_N2Wh6)b{1i1JB+VVN!TyKo$(Eq13kTac&uWe4|< zID=Le$mWR*K5s8{f(Qt)Jr>80x^8DZzRAwp6ZB@AiC5r|XAxMc8IOtb>)32I({LqE z1o7E=kNuM$U MNfoU5?&3QWREWk{iW78&5)J^FC1G q Jm Ay4~1krDTCX0w4fgb>8LDIoC7m-0Andf2!{q0upe!gQ9Vj{RagsX|uWEE`1dPMgL z+m2dYc=97|$Rem$So<^v(vu1}!T4#y(<{8D0!K8?I<79R-3we6x8T$A($p(lnite% z$jyS BKsbi(fHdX5CDA;;mMehPXrg3S!>>xj)i3JR7h z%6j+{i|Vt&yc=O(6gs9{g+m(34sQ)N7)?$wZUXK^4+}JgiK?)1@eNvq*d;W`-Z}B0 zj1lrHPktk!D;R OTVYJn4`gjzQFEr#2+0=2*h`7;7aC3^!U4M9qOFj2vw zg0(6rmeh2Rc5t}Na*!rr7v(5}=s;eqqZfMkgAI9RC(l~Zv6VZcDLb<8Iv2g1!pru^ z)AJ5r#E?O! T)1@%FDmvOz1HTD2`0)b4Jc^iPemB# z*!Lwp>QZf7Kn7YnPc6!iv^-7zGg#pnfJKq7 z>okDRcxa>;5**Cz>Wt^;u#WhSZF 5G%k0_>o{G38RCK%1@IG43o>l!nCE$u||Ff zNW8bi;KT(ev142a;u-{kc0t&Hg-O`5RI}zsY{wD74+NH9%K91o(@sEWsRFqWOD0G! zxCg?Im^$%=Z3h-5oCnYg-Hc@}`HyO({7T2Y7T!gGPK2m-L<)$qBcca{-2_FQkFzt_ zoub `r|Yfq8E@Sm`dQ9*7F(+^57TeJBIy pOG34I2MdNcqfF)>=vLW(qh~o zR7xmbd|fLazX|&XL`Pl;K_0tC=-G)VLPNnd^7bO+3BiQO!{NgOCs_C;!pwF#M`U z9?Y9UWx*Z*nhF b{l@)sf|YK#3g`0 zGQh<#&pw>Ubc;4nEgMvX;2rG9V|TSZJElv{vq7l&f~rpaoV;j;JZd?o{LgK_!^ ~E;`1PX8+oY&8A5y(@&qpy@?a9@kw)~5KrNdP8x40bQ|%c2)7UMhSe#E>P829( z7lM$$Lj~(5@?df15ri`%y**X_gYXAENhm0&SSZJ?=6b9dFm>J&f}lwD1`SsZo-M8q z$R7^jFu~H~MJ|{{1)mP`Y`j|rd4jtIjUg12?-;%ZiVUTH8u?L ;YJypi`6AkRaRV)KtUP{B3_lY }VI2j2?c9<(@?hw-PApUPZ9LH2;62l?ssD;^mWd^-GA1TPb| zr-{C$ 8rn z5`-2 m6V%AQ-oF5OB@w zpztz@>l5Ovn+bq9NsO@R@^%a4f%&mM($xfH3RlCCCj>7ePl!asZE%qX!HO-Md5Br_ z6hlCNR2FPW2>TJVZsg(g;VEMkG<%d2Zhaw7l-jU=%ub#!nQcOJH8?v0KlqMeC*xTL zST1i$!p_4;gt}=8S-P5lZh2RL5pt5i3SgP#)qRv>FOzsILT~~>UV#CTQ$e97z+KE` z(mcT;4_hJfxskxcDU1$gY+ 1_8 0~#k+&WZ3u-kywtLi{!M4dUIn z%7_r-?Nume5f&>Zg!lG9g=gjndj6y@5L}TLPBz#~1wq 6536Ht|R0m1Z+jm&ofuPr}Km`y>a#e@haAS|4`mELH@>yIMVuz&Fj4wejIM_A#) z6p+Cp6h@5TG=VZ$gmgDi`loRucvA%F#fm4?HD;ly`(Q_D3`EOA%(igaA&^qwm{1Pg zr-aQvtm5$Laim5-qrev+@CouK?jj0Qz^x$xX~^#aL$Vp2qQV3JidY$9IKLKfYe?V= zHoUXSPYE^f3xk8NSx^&jSyB+1aT*H@gvyRQCxq@L%sZk0#eu+K={^uje @+(RZT^6Rb51z)AfO3i14JjmPy~)4Xsn2$bqZ`8=bKm=k}pqwdb8Di-7!)l z{$D^ELcKs$II7h3?k25+e+h; k+C3K8FglWQ&E|!CQ%uDOAqzFcR2jbU-%5WkH$Ux%YcLZX%1gkR4erc|f zG-(~-T6}}p*?1?@lk3sl&T~EF2~lRqL#zQ`R}7tWLfgT55DE$odXy8SHr#f_B^$mj zOu0gP@Y8a;33aKfgz~@iZHG+3tO*mE;PRxQAL8i5lN#lO+i18;>bB5b(mK7>&vQ8B z32qDs4T4aFJYlgSPl&xno?s0!c_EyVY|ny&@E85l`#C&yapj(qBysSt&)9epQoM!% z30v5a$g`;HJ)8S1;PHmgtQq~Q2&O#PDTUiL$P?dV)8l-PK@(0~KH!Id@3e7S2Q$oG zRQDVL&T@VsLBHlXoQZm>c#`1em3khy56gfTRBHHQScnkdaDqXJ=aSTz&P#(Zj2g&X z+63Y-`6fh72gM BBd}mT%PbaHz^x}w!+UNPFLO{jN9dAUd=}yWN1nlkNLr)cR|_d z{O|^RT=5V>pO9zg*)49Z>q!J{LQnz#5<+m0Cp;2^NJKq3!kXZYD#-kZj^|D# mek0}b_|aNSOqU8(I9VdR622KLM8HG zcIETnF65*i8YjZb^fY!` AKGJBxHiTM-^^>nPYm9961ER4GO9rCJ}kIv$VK2(MR+v{r#?;=Zm3WugjvNh zB0;$*Wq1=bnh-3($b Q@I27S;%H&g`M4hH}ef|&ihUV)4 delta 55166 zcmagGcU%)q7dGtDdv8)hFA9VtBtcM6nus(JMLH;;f^?8-=!k%b0hTUZdY9f*nlwdJ zKtOsgB1JmB3;4Y6{gm(b{liRVH@j!9b7s!D&YX}@!q#5IR$?dx_T2+SaVrL6&KYRB zC)=iP4O_b}Z*jQWCa6m!+jxOH+3{-ose{iHKl<{+8V fhV#*ZYg?`)@P3y q{35Z zHLLWbMarHjZm-cTL%ljI%?L)(#92P$#Ohl=?fajiwako)2>b% zB^+rrK8W-=_wjmD?3L!k_Gr2_n}RZL2_sHlL;l$Ux(`=!^zM+AlPy@|HmkEbr_M`j z@$-1 k#8%Kn3&%sn=kP0U}1adPogg6 z6y0^_&hjf3UUvU};14S?@F`@y9R4=9Ui7Y@^mpd+6#)Yg{T68^?f{4P!76=jl5(XU zrF*vqXjOI84W@ED+sMVWB3yR{*Im$2x!R83rb3jxp3ay=wKb}+ _R`g>v&j-pN+3a)49%fAsPc BbMA9JdYc{mqs`_axootWB+30Jr0B+)Mq_uw4_k7{7Z#bS z@N4GyHLjWqr7zP(zAnBr{IKDlyk4(zCvlFe>t>$2MbhwBgI3Sybi@H~ ;nO@5NhFK6vMX83NMS)RB?QRYqhGO5KT1)?o8{Pr(vRAlUs<5 z1CGq1VTvcoX7h08dvheil jCJm0;$^iycY zuou~>CO@ciJ?MY%VdP8u%Wv%ukH(wFeyj}?$$wra&G2iQo27l!!_zP)$+_cYceM8H zpw#Qg->>O#DspV2ofLPJk|@6(ID)zVP~LUbD^5>21NYfOD9^`Y(3Z{hwNc!ammv;`rdm z;0wdzPZQJC?m`dr(tt1B6VbsZNbOMKtp@TG&)J`CQ?%Ky@9B}ByT$uP@4Gy2n)A?x zLvbpiPE&{0f$A|~k`?+^!7@Eh{BXd<_E{CQjV4M1xm9D%Cpj17qp8m?8JmQU)7(OO z{9zR5_l`_*tM=(Gtg }An&ZBBQ!96%GO&AoUlpni@rC8q05Abw1fTiWjV_Rjsc z27z@e!@uTD0~NNN$_>z5ge=lh5@;!D7#f3>z)E9b2rNPZBZDcAkiqK!X#B5HQQVBd z9p{m1`X>X$ f+Y(y@y(}ku6qzdfCn1g4R*RIO~lL z9>a(EEwGZz>C}gzQ+W;4o;+qBK85gatcA%Jh%}bX^&c!3J}y}jd8YVE(DaJz=By6) zy*ssp&i?SGhbj$Myf;}KRi5&sMbC|~!Emdd!mWVVjz}mxx?`qnDdvj^J~HDb$LnEF zTavs1!p+ X=)Y;bUdC~z9p0gJJx4;y=}o7$NvWhEqK8ZP^@X)(VlkMi z2^aK)Y&XYUU|p0CSDw=2_t-C--0`sVLF?XA({~4?*3reRr27Vr_hctKI;t-)Cde>; zFOD!D*bnDhyA|Dh-^ZHGQbtVbI;ZpQ(oB)Zr4ga9bnA1Ce`tS=Qoi7yl%yWV&G 2m-RWY4{uU0zZCgG2u{g@H!to*Sb*vdWde2D0+oX{3A8HKIV z*F1AW+cWm-f0AQwuv!|M7_FpB`{A%x9b#$)`67Pw(SNeBQ9^4-iuq6>yi~R)9Xq{j zO?6rI4hy5+z1*u7lGC_e%V*HEvml< 2l< *hYqu)e zHtK^?#&LNWFzNjb(cOhJ*=Od<3PT>P^;1X}-1d1qJ; n)a4zXV*b^sx`RWDzgd)1*=9egTz1x7m5`!lK*C^&y`_`?S1^YneEMr#Dtd zcU#zn&UoK>oSd1bqwZP|@!%l5di&n;nxHMMN$9K^%QO{1CEJ=NnSF_aa`z#|RrD9Z z+^RAOg=G_(_9};- Im&NHx}C5f?>_BUismIe-$UBurqUy3XWh)cxK-iPokM=b=xzl5!(B z!#Iv^qno5wij-t^txh<7zQkZV1CjSA!6=N==&1LL=H--yOE1!F=A8vemId3=Flx># z>?27O#;pu&Dd>`B2`2T)?z4;jq8%S?=CHrF+$ q8&OG@>d8hz}|N*=Qe|2o_9*R6&V= zgJsz*tAmD~Z@I05pTuO%QQn<2SCvu{BS-9|1V+XMjExhDW8_?a2Qj_B&*L{Kpk(nZ zqEdf3jpTr4|An8aa3 ~Z#Wk;a00&XT1#iTcsC|_;GAu4%eiAFRb&;l@4)=-Tg+ ZL=rJ0Ed4iyp3XtD5=4Ig5=_gfF#DBQZZ3nKLdx#+6klF$78H{#rR z%`Zo3{oIPx_bvL-6?wPt-nl5VO~Ryi0od+sH9 G#ch=YDr1!|=Xy-Dk6QaDnq-FoJyz zE;GjTG^Bq2gCj0}62iFUj0%FOh!kxrs`t5B9t`((D;!>==(AJZO}Ng|ukc>?1-`{2 zGBWXAW`vBdL{<>ZqF5KlcJc?=gcjCswH*X)*LjE3n29HY!(PR{xhUiPa1D&yl1@Zp zyCUwC>S@L}=mvi$Ise&mp#+!6R2#d Jhf#>dTK1;7ZzoO5)d0NE% zAsw3&Kv>L;!!=&or%h%K2PW`u3mMDn@p&|?GFT)`N*XJHfFa;$2^pjmObU&akOAqV z2+;WQbUkjQG*Utafrd#T;Sw?^1Pld7NT6g;Fe#Lj1O|yWKSY$@%8&uTsAU2sLMa(6 z-mzB%*UI+5epuyq9WJOb=89rM`x=Gz`4N6&R+$l{u=K0XECils4y{pyROI8D>}MO& zM8e!g2ok+{=e##oyG)l^jwa{Av{-?IL* y+Npk=fZxbQB^7*yuIE0d!0s`FXZ8T7Mc z&FC8 |MkF-nQ{LjL(49$h(ho8ua z&)+NkdC=G$*H2Y_n^Nb~p~_uiwwlY+g66?SL$2P``{d5pBeX`oIgf)C{JKRZ)9i3j zuEQp_Zd}2ft|7lGnAQ5g_b~P+k-t+UT~8{G@fFF?*?M!5%xs0cD=N+YH*;u(_n2l& z=h}1io_2&;M+ ~ xlV&ps Y(*`U zCXY3yq0Nhv3w8PFoj|^?0mgTU9x^MM&iQDuZyhMb`!3jay3Ec{< Byl!&$Jw-2DHO2bX@h5(ItE!=y&uHSb3qF3m=v3eS$&H>ALsgIc zBYeN ^S?&n1PYHuN4Bc*&%dn4)%Ur(j zOW^tITe4q(vM}SF87UH!rQ}fx_@MAgb5F6~`em=3j~PiR*ywf*+D|~_%InwM9E49U zQSa3B$JV#etE`Q*1u~UUB~5+IthdmxX(tP%od4QlvS@TwvfiY@TiKfQsr7t^7On`z zbwt|D;6&x+X@=x456eX;UHLvj^Cp)W+d)Yz)8nQ}-Yvuy1!nP289%;HJs6+P|Jxs% zpoRD(CR{4d?)-CJU@eh=;EG%uE_p>vgA!}d%yZF>d^n`Nd$DDKkGAV!uj2yeCOJ)C zvrg5P?Q9MuSF+qSV{ u+gAf1OcCKsNSV zG|LEZVK1kR3y+r!k4Ox_H~Gz)@urc@`sg!PZBZE2;U7lwzjyi*XLGTe80+oqe$E{T zU8%tYjow|Adq-VpH5FK_E@k&|KDlsooGKHjuQqNY?@-bGeD`ci&NmCGEDs! ;> iwpeyFBAAjK4${)CzsnrlmiuB}yZuAG50^pR zPI^(+lQVzG)1{#3;EN}gjVh?Zhu_dP!S%pAq9$9K>Q(>LJgIIvDT!f&;;Pm_=ysYV zKk8vg(s)PO^#@+*8Q3qJtt5;%vZ~}^x511TK_asi98{>bacMTmmuJt((B_1DI3^7# z>~3h~*F3wpZE^MT^PV_o_+_#?6de7%n4h!b3fJ&LQ- khwmpu@66YGOi3>ia*0_L-&a{!%tOk+U0LHNPBo<76EtiEZU- zNwoyYe(z*gxiHG7pmxp5+sM?!a|M3ike6jn(xI}GB{Ju}Yw-HdmA+>*->h2qY^_F- z9R~qC%4TBU1?P7Y&NnYl+_`&`r1$7n7PDW%RPhig1{wh61*^D6u73ND8 zrK?J`yB*@hdI3T2nsTQ|T(WS^)LM7!6N}1xzCx*$y+}2EXIo11>$K8|UhKBNBA?Td zsCxDLKL79&L*%Ss%ygSgF(^iDiNuOo&UyJqX0{ijKTcYY%+=w_qG~W>NJMixm6Cj8 z+qJdx8>xfuG;oudku6DSB!^ eFQSrR)=c}bn;jO*Vb8_$=?79C%U%vsRBb@!YVPZ{zoS?dB`m+jR`awx&w6Zo zWuvPL76N~H&xB5pn~eXdzk0YG7*lj8G0`J$IqJ32cnF?vq_hfmtIVmr@i3<)DnT-0 zuIhF%?f~tJ*HXQc=k-X%QcykS**yh%W%bRYI~{- #D=Z{tD#;v}wO zyvqd&f|$TtH;5VVzGzw&G#Uki!){PW-mrAGcXhgJ=?p`o5g@N8a2^kfW-M1Pas=3= zurd-TDFh6IJPwMaVF)Bb0*#P?VNiI9GBgO&0%-8;C3-vvEK&lEh3-SZB@i-b7!n~Z zAr0k(Fi0s0I2H}^G6GWgrjpmp(lQcK(opOLU6;Zjpf}1uLDq3lg)c01U`Apjq@|HC z1nM}0godF}SP3KwgfRjL{JpY=j8f7PGSVm*0*#Tt%D~VFv;+nZFGk{@R|?~0%axdA zP!dRKNJuzF0tpF&hC?qwfq)M5^|o?577RiHiGiLj1w9>ufk{I$OQZhE=2c;LoX3)q z#z3+`b4E+Sq|s84Y?xEo;cu*%p>gTs{1)_h86+Aeje;Lb=lF#HfggEe!y GvW2BO#XET>KH`S zzumD{WyFJ&k&!^kNWoAjv;-Ey7IiEy_PE7Jpy7Y#kzMV?jf9kjK%rqMsbhgLFx0U! zFen%bifI2O@ckM`E=W%378nwXIn@bt83RSfNEv7ze^D2y6~cRcpdwL%8KTihyws`y zKCqU78F_3uFiHJ829U;KNDN8>Ati;+ujS|Xk1LP@(P#|J&ehh|7=O9;EdG3^AgE17 zKt&>jf|QR2waW;Yi6Kp+F<@FCAcps;V -@vo%j*#Vhy2hO2(0`~LdLn!;hVFzJ{2I}ENlVJKlIVPfiC-dOF;y%W~m zGYK=n75sFkov{)#C SW#1x_o`~fmU)4Z zq%Yxp*Kj)46ti0W56faV?bxiSbmL4fX1VlB+%}(-eXP;Y9y{kE+oR}ucU2<>lry@$ z_sfadBkJyjl(D7yhbsw2B#~V(*TocB4}Qb=XSj*+=!a(oG=;r>kaObfO#U=aW$zhp zXgoMjG`&^(0h4XC=YGM~p~9ES56h_IZ+1Oe#4*Dm^_eIgNe=A&Inx@)7wglHZ!euK z+l%MOiW(h%f!Q^ATnkv;yJQ|Yw)-C6qJek7)`@MZZkNb*b24~*s_><~D&H`XyzxE_ zHJpSKO)EPCuO?- in`<_zSKIvl@bjUz4rM66=-NxjoAA&K}H^Cw74Y zn8+GyRUQXovn!~L_g| qw*SG)p zS XSXsJ~P3d*@=^PM4#kchCWF}}U(>#!)K)=gIY_^M0{$@9b69i86& zA1=5A)yl0WT839R23cmF9t9M<{6(PVS+L#!v{co%R$5(1>HvI&(=^1}N(e0J;;NOb z-XK)Jyyd@Vse`m9{+L%eWe{h_x;auMf-FtF9H`~H=A4B8%4n4tdzSxsb_coAt?J7+ zhT#s>JGV!o727$leUu?049RXJ)fvP4PShfB#j9S}U*v-y;n8&=?>Jk#$wMs7OstB^ zEUz%{(HA|tLO1bfELG~dTC%y)U>ufKf_;%_S|N;I0rPbvtjUv5Vj}j|!M)IKj)O8H z+j)ae9v5m@s73|}8NJ4(YqLb0o>b*ktz F9+(P8* zGwMbqR_m%sF%nM1z-}cOTeGnK7S_C@hNts1^XnKF)<>MHr|Q11@j2Kq&aS J35xr;;DcI|%8&15gw^sKkja$PB= z`KLD7TA-1g_cVSza*(v#yhAD011Z!;clP`(vA`GaDYK2L^SjD~%F46OXlfG$9^oc^ ziW8?83f|pa )lR7&joY~{0hh#zctFeL>%>FSxYf3in!nC48`R{7=CnS=Go z#U5si#xLpRBjU%+2D>Hs8#DIyMJ9i6-mc}1KKGuf+BYSbcRi%pea*C`^!gK{>~PW* zp$a@(Rd9jkx7YBu=CLt9JGj2F8eDRyCL})J#UFXC#e!lLQDw%9ZGAT=BJQ+a*Sm^G zo;e>b@a3%p5g!tf2M^UALK$78y{dRSOPFh33ot{y^M7w7>B3KDFO1kWyB0q87H8qI zE4ywnA{)JXD|*vB
SnDzs~N17gFj`#eON*|AGbeEFa} zbx;##Rmi_BS82^quU^k#_56s;Brn5(K%mnl=Ta0qz!vX0c!z_hQ`yl){p~gLsaV}I zSE~~JJrWfk@$YM!Uy*h@aKzo478soN`@GnXEPb$ee~CqqGd|ps-! o# zXQlD?^n_LgudBsnxvR}H>Kb#u|7u9<^N(FW0N&p;K@eE*le}ZiwkB}B#-LXqpmvi^ zJ&g6)qc22wr>o~L3+%{gJfSvZE6wRpDLP}(RL1TS{vIPY{an>))eZ}v{u4KfQ{b++ zq9(>>tIJ;NZQEnRNkgN3AQtYuc*q;;Fqbq(Svi!+@bY1*AMpLn&n}-Q3X*YjM?044 zPsKk2J1j2 P3=R4kweJUI;RVbOMGfg_w?; uDZ-G@43%ekL}b=-%&$-msc|1kT6x!DEF;XVpF_^d3o!GL>-l#o8_n86MRGvR&4d zcl2y8#XBrMqq=85>!(ZE`l(-p&G@4x4JT83rLGG%Cp0P1ez|!^FzxAexB8TKTeXsu ztDQk?LXyJ?A%bu38 zXiIws#6&=%a-V;adH-Xow>y)3WWECD6}u@?xZSQyQF`!+N5+|AZN>C&MdgN=7%Eab;h zbQoFVd3Cz&h>j+qt|^8)z%EL?0Jm7yD1R+>l=2VkyPb9Tx$hey6e>|OzmrW=8Wqt< z*B^xWdujCwy_c(;e_wRUur2u >#Njs)S>Qo z3>Bv5w6F3Ha8yrUgVBZ9apvbrG_q6q+mG^BJ}(d(smb^H-FuCR(eS+aC$>Z!-@F0g zwON`y#Trs&?V;rOmuWmszQMkGQ)vYeN%l<~HmqsXrM@zog7A2vueWipM;>!4Xolg2 zUI$%NaOEr%m2UYFK-8#TTr6|m9yNbw_)v{mMYl$@>#E(Q@2UP2diRlKOvP=ihyC3Q zAf~o(->M6N(G+!jNnu{Xe7n>PHy#t)6ID`^Tir{{r~;$(Q5XwXls!j0$ZJEo5u$SN zeLPtwy5ats5m`6-jwbK#2@!JA=P7}Ad(S-g79S`h_~0<^b;ExC`d1Fpju=v-z--I1 z`o1{V06(EBTEd&@gv}(Q?2*ek)d69v?yJ#K g{Uq&74d@c09T5U$=)5`1#l`L_qQGu?nrRTvF7z6kBdZzi^t;~Rx3L)c~&nW zvpwJhV5lE32Xc%L$MMt| 7t6fMx ^-ck5u#H0SIpR%hSAVnT$q>ek(8MrRpIvI$|TGutoP`sVs&iRHAkB1u>X zUpgt6!v$nwU%o|-=bHLFhrv|N#vpFJU{@OY6D)AB{z7}wBhMgbqxSPSE{xhhtr3`; zxt5#`U*6;_q>b5%x*Zoi^e2J%l`zTJQj>72v$n!0Cp*%Es)S&DSM|)+gVD1wDKEeO zk^J^?vto@tCvG(OS?ePOLj6x>kK%=BJCvxn1D 8C-4VO zi0CEPPEW?`LE`+kRL0Ys)&01A9 >=8sus*D3YexzocHl4r;Civ>qoxZ z(X%+uwKHjBDroy*D!j>|9Ogu*W%nCtmE7s 0$IvFA{tL%mp z@14k70u*MuuF2cNs%u(Qarj#M6@mF4K_#(}#;JYF`SPC1{??ha;va8})W++%DUs5+ zUs?7s_bAQ@d~H~+tfF|g<^Lk!?Wb6;`x$PU^uE>ZE1xnbNY=x%2t|o>i2D73l0i DI8Gp zkunN2BB2?tvg@sxUeoo=&^M!ht{3x&{P)ajx=$~6UW{qOil|{4NjIE63h~5UL0_W# zGh_IAT+2uSj<~$}oRojbzWA&I?CfJ6tWWC2x$OiW-QTMAoxu4|2c7vl(p*hhe!JJM z^fkxR_Q}*oPJS4ceI9<};VrE3u*beFkKpSZcA)JI>-=Xg$z}y2ops5xB?Hc8VP~do z`HEuA<$nevNMA|pQ$;twrBw-bUUg(CD-z!fY!tlyt8y*M0c9H!06hq;GtD3WERG z@t6T(smBBkjfVeirSN7S*a2z0U$HE!6cz<>bEuvJ4VOS8AwCH4U<3k<@A_~H|Fw_- z)D{LrNl|EsOrsI_yPay_co#qfHmL(l;7SBQix2MR!B1dhSrKrEy~|)B7LSpDLwp#4 zInD(j@YlPZ; UT9 z Q~e3-o -ox*hjJfb(yy|;>-Tut#*Q3=L z4rV(id99mexS_EP&Zt+azpQX0_1n=+qn0(lf7ouclxOo83_rpR|JhmBVABd-5LhQ9 z-uRr#B(q8|1S?3zn9t8S7QA>Y+%3zsYcMA#u$i$UL8Z66QdN>9Ua2#mytqD9QfpE& zlskC)a$81S 9H*4cCBx!JRi@?6R^Vu+s bsV1;$=s-RP~0 z t<#X{j+)7T!cih7ZT^cOBsNmktg2;{s*#|E2Yr_UF0uBQ&;wN0DYS#5KSy?Y_f@!3Zug#ki zAF=ecF&`M{jtdAMI8}wXtoasjXpG*$77*ZEUm*GBhP+{-{Ke)s`jRfocG9f+b&!55 zOtB3}rmhZ3h+nAqc>Y7Ou+4L9p0bpiq+{C`o2R%1cVk`u_OkYjmeTWQBC^GKI@u$r zn(Pd6Kd-fY*~pA=2=!rcL*M3eiuU-)N?AITo;E%(S>}jRXQ#@6?O!g^$?USjt+ *v~75TJ3B~;sH0dwuIn)z??O=U=RQ z=Pt*`kR+3YvCJ#v)huxGRC+jv3STO0us4X$kvFf;jGgh(?T#6`&`6=^=yIX2Avp;V zpV0Z;QYfAN1EXtv3Mz3y)ZGV>LL{(PBR3WO9v8oWI_u(MF(Zw;;CxoPhB5zWoBUB= zcq<}5PT#x#`*lsqiduSt)y#r;5&m%pX3cxwjqT+rd5D 0XKhDB5rSLt2 zK?sgU-3 H5 zxp~3bU~P?^T)a6S@XVG%#37bERY8b_)afHG8Bun`<9p?tztn|wGyatr(a6`IYlsg7 z6ct%EL$6|`zeX7ry#9nO;otRbA4^N4XAhDZYuZ~#UPB*HIzG8?v)UkBGJ#I3e^+^N zNZ`qrNm&IC?6sF$ R`Ha_0{=23Gq>*5nbt^L|ZiQgU>)f|xNOl<7Z zSMXj;o>ujn=fa|?9_FaLK#Y2GJc(Lga#?Jz4u~eWpkL|>cfC6(rS>!@F;}&pV`NXW z;u}kx`I7&|oZ)G?hnKeQ@hbUOUbgvczOEFK3YK{-*O{SKtHq0uT*lUA72E>!6*#-P zRyo}n8I$-niL+5pAINNOU~=USUJe-OD21_-AqAzdJ4HyQ7QJ-U_QjE=o!j^BNeLt2 z)cj|HR-dy7>LW$neqW9gps#k}FCXggbg3O$R(D9buE0QLc73`SsJeJrjoQx%5Pb73 zX$IB%z ^GcJ7qNc8jix}xDEC44)#lek83NPT({7k{66mr9z&42{9{HA11-%VNh zg8((2uDtxsnoNXIU2b{qgd0of?>B_>r43yge7kP=!0Ly+mm3R(cLqM<_V+)I7w~>I z8z(L`-VKwx!s(smnSqq=o+O|C92#I`K-#|;@qArUL1N{-qy1No^CO&B3!nVKq5Y|B zFU4cC1vFJFf;h~_@E53vnQDj0rg%wtgH7pSR~xRbSz9JJ%*Ld@sAsq__mwrA`t~Ym zJ<+wNOnGn51lhpNXRim{kl;LrRGSsyd?aa_`+lurzJHSPKAtD@*SeM7vd{K!aZICr z)Q9o<57;kr${pNl665U$F1#$(8Mv1#Gk$UR!z$HY3Ab?;F*S3VIgn {&ai3v za0yUSc?aEm@z6NI#yF>Zrl#QfxtpCvB`62P#qF^(0-t$BOGo$w*wsap{T2IggThzd zKe=*NU;YephT_W`{JJZ#W!)bzegdpFl+LGeI$}k`2uMFBluZ @Yf`v@jO6+_yn**YdPwQFz3iE|4R`glzCQ)Z@$f)Y{m1`=s#=pv( z>U v0NP+@Hd#1vFcqRCZ4evZoI+^WT-OiPM(&B#2PZ zXF;WDX