From dcceaa48ca9889a57a7718c15bbc0299a5574e54 Mon Sep 17 00:00:00 2001 From: "Paul S. Owen" Date: Sat, 23 Nov 2002 22:56:41 +0000 Subject: [PATCH] A whole bunch of fixes git-svn-id: file:///svn/phpbb/branches/phpBB-2_0_0@3081 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/admin/admin_smilies.php | 13 ++- phpBB/admin/admin_users.php | 60 +++++----- phpBB/db/schemas/ms_access_primer.zip | Bin 50198 -> 51693 bytes phpBB/db/schemas/mysql_schema.sql | 103 +++++++++--------- phpBB/db/schemas/postgres_schema.sql | 1 + phpBB/develop/encoding_emails.php | 2 +- phpBB/groupcp.php | 6 +- phpBB/includes/emailer.php | 2 +- phpBB/includes/functions.php | 2 +- phpBB/includes/functions_post.php | 12 +- phpBB/includes/functions_search.php | 6 +- phpBB/includes/template.php | 4 +- phpBB/includes/usercp_activate.php | 8 +- phpBB/includes/usercp_avatar.php | 4 +- phpBB/includes/usercp_email.php | 6 + phpBB/includes/usercp_register.php | 33 +++--- phpBB/includes/usercp_sendpasswd.php | 2 +- phpBB/language/lang_dutch/lang_main.php | 1 + phpBB/memberlist.php | 2 +- phpBB/posting.php | 23 +++- phpBB/privmsg.php | 2 +- .../images/lang_italian/icon_quote.gif | Bin 693 -> 666 bytes .../subSilver/profile_send_email.tpl | 2 +- phpBB/update_to_203.php | 23 ++++ phpBB/upgrade.php | 2 +- phpBB/viewtopic.php | 53 +++++++-- 26 files changed, 233 insertions(+), 139 deletions(-) diff --git a/phpBB/admin/admin_smilies.php b/phpBB/admin/admin_smilies.php index 12376267b9..6e9f9079de 100644 --- a/phpBB/admin/admin_smilies.php +++ b/phpBB/admin/admin_smilies.php @@ -399,10 +399,17 @@ else if ( $mode != "" ) // Get the submitted data, being careful to ensure that we only // accept the data we are looking for. // - $smile_code = ( isset($HTTP_POST_VARS['smile_code']) ) ? $HTTP_POST_VARS['smile_code'] : $HTTP_GET_VARS['smile_code']; - $smile_url = ( isset($HTTP_POST_VARS['smile_url']) ) ? $HTTP_POST_VARS['smile_url'] : $HTTP_GET_VARS['smile_url']; - $smile_emotion = ( isset($HTTP_POST_VARS['smile_emotion']) ) ? $HTTP_POST_VARS['smile_emotion'] : $HTTP_GET_VARS['smile_emotion']; + $smile_code = ( isset($HTTP_POST_VARS['smile_code']) ) ? trim($HTTP_POST_VARS['smile_code']) : trim($HTTP_GET_VARS['smile_code']); + $smile_url = ( isset($HTTP_POST_VARS['smile_url']) ) ? trim($HTTP_POST_VARS['smile_url']) : trim($HTTP_GET_VARS['smile_url']); + $smile_emotion = ( isset($HTTP_POST_VARS['smile_emotion']) ) ? trim($HTTP_POST_VARS['smile_emotion']) : trim($HTTP_GET_VARS['smile_emotion']); $smile_id = ( isset($HTTP_POST_VARS['smile_id']) ) ? intval($HTTP_POST_VARS['smile_id']) : intval($HTTP_GET_VARS['smile_id']); + + // If no code was entered complain ... + if ($smile_code == '' || $smile_url = '') + { + message_die(MESSAGE, $lang['Fields_empty']); + } + // // Convert < and > to proper htmlentities for parsing. // diff --git a/phpBB/admin/admin_users.php b/phpBB/admin/admin_users.php index fd1dcc0ba8..e6e89276ea 100644 --- a/phpBB/admin/admin_users.php +++ b/phpBB/admin/admin_users.php @@ -129,18 +129,18 @@ if( $mode == 'edit' || $mode == 'save' && ( isset($HTTP_POST_VARS['username']) | $password_confirm = ''; $icq = stripslashes($icq); - $aim = stripslashes($aim); - $msn = stripslashes($msn); - $yim = stripslashes($yim); + $aim = htmlspecialchars(stripslashes($aim)); + $msn = htmlspecialchars(stripslashes($msn)); + $yim = htmlspecialchars(stripslashes($yim)); - $website = stripslashes($website); - $location = stripslashes($location); - $occupation = stripslashes($occupation); - $interests = stripslashes($interests); - $signature = stripslashes($signature); + $website = htmlspecialchars(stripslashes($website)); + $location = htmlspecialchars(stripslashes($location)); + $occupation = htmlspecialchars(stripslashes($occupation)); + $interests = htmlspecialchars(stripslashes($interests)); + $signature = htmlspecialchars(stripslashes($signature)); $user_lang = stripslashes($user_lang); - $user_dateformat = stripslashes($user_dateformat); + $user_dateformat = htmlspecialchars(stripslashes($user_dateformat)); if ( !isset($HTTP_POST_VARS['cancelavatar'])) { @@ -713,24 +713,24 @@ if( $mode == 'edit' || $mode == 'save' && ( isset($HTTP_POST_VARS['username']) | $template->assign_var_from_handle('ERROR_BOX', 'reg_header'); - $username = stripslashes($username); + $username = htmlspecialchars(stripslashes($username)); $email = stripslashes($email); $password = ''; $password_confirm = ''; $icq = stripslashes($icq); - $aim = str_replace('+', ' ', stripslashes($aim)); - $msn = stripslashes($msn); - $yim = stripslashes($yim); + $aim = htmlspecialchars(str_replace('+', ' ', stripslashes($aim))); + $msn = htmlspecialchars(stripslashes($msn)); + $yim = htmlspecialchars(stripslashes($yim)); - $website = stripslashes($website); - $location = stripslashes($location); - $occupation = stripslashes($occupation); - $interests = stripslashes($interests); - $signature = stripslashes($signature); + $website = htmlspecialchars(stripslashes($website)); + $location = htmlspecialchars(stripslashes($location)); + $occupation = htmlspecialchars(stripslashes($occupation)); + $interests = htmlspecialchars(stripslashes($interests)); + $signature = htmlspecialchars(stripslashes($signature)); $user_lang = stripslashes($user_lang); - $user_dateformat = stripslashes($user_dateformat); + $user_dateformat = htmlspecialchars(stripslashes($user_dateformat)); } } else if( !isset( $HTTP_POST_VARS['submit'] ) && $mode != 'save' && !isset( $HTTP_POST_VARS['avatargallery'] ) && !isset( $HTTP_POST_VARS['submitavatar'] ) && !isset( $HTTP_POST_VARS['cancelavatar'] ) ) @@ -757,21 +757,21 @@ if( $mode == 'edit' || $mode == 'save' && ( isset($HTTP_POST_VARS['username']) | // Now parse and display it as a template // $user_id = $this_userdata['user_id']; - $username = $this_userdata['username']; + $username = htmlspecialchars($this_userdata['username']); $email = $this_userdata['user_email']; $password = ''; $password_confirm = ''; $icq = $this_userdata['user_icq']; - $aim = str_replace('+', ' ', $this_userdata['user_aim'] ); - $msn = $this_userdata['user_msnm']; - $yim = $this_userdata['user_yim']; + $aim = htmlspecialchars(str_replace('+', ' ', $this_userdata['user_aim'] )); + $msn = htmlspecialchars($this_userdata['user_msnm']); + $yim = htmlspecialchars($this_userdata['user_yim']); - $website = $this_userdata['user_website']; - $location = $this_userdata['user_from']; - $occupation = $this_userdata['user_occ']; - $interests = $this_userdata['user_interests']; - $signature = $this_userdata['user_sig']; + $website = htmlspecialchars($this_userdata['user_website']); + $location = htmlspecialchars($this_userdata['user_from']); + $occupation = htmlspecialchars($this_userdata['user_occ']); + $interests = htmlspecialchars($this_userdata['user_interests']); + $signature = ( $this_userdata['user_sig_bbcode_uid'] != '' ) ? htmlspecialchars(preg_replace("/:(([a-z0-9]+:)?)" . $this_userdata['user_sig_bbcode_uid'] . "\]/si", ']', $userdata['user_sig'])) : htmlspecialchars($userdata['user_sig']); $viewemail = $this_userdata['user_viewemail']; $notifypm = $this_userdata['user_notify_pm']; @@ -788,7 +788,7 @@ if( $mode == 'edit' || $mode == 'save' && ( isset($HTTP_POST_VARS['username']) | $user_style = $this_userdata['user_style']; $user_lang = $this_userdata['user_lang']; $user_timezone = $this_userdata['user_timezone']; - $user_dateformat = $this_userdata['user_dateformat']; + $user_dateformat = htmlspecialchars($this_userdata['user_dateformat']); $user_status = $this_userdata['user_active']; $user_allowavatar = $this_userdata['user_allowavatar']; @@ -980,8 +980,6 @@ if( $mode == 'edit' || $mode == 'save' && ( isset($HTTP_POST_VARS['username']) | $rank_select_box .= ''; } - $signature = preg_replace('/\:[0-9a-z\:]*?\]/si', ']', $signature); - $template->set_filenames(array( "body" => "admin/user_edit_body.tpl") ); diff --git a/phpBB/db/schemas/ms_access_primer.zip b/phpBB/db/schemas/ms_access_primer.zip index d70c5b28fd2dbd23689b0ca6c9c07ad9d5b3fd97..8b0776cc8dda2e8b6345d69baffc6b228acc2fac 100644 GIT binary patch delta 49755 zcmb@sWpLdv7yj8WGcz+Z%*@Pb7}}&^W_GAyW@cti!wd~`8fH!!X1Lpz|6g`zcV^FM zd~NwkvNT6NKRs4T7{o;)1g?ra1SICCPoH2vaiq92kqAe5nEd*Cc@>Y#44|00X*Dp4 zDm3ZJwrKuJU|eYktSeruId5*#Ei`yWG9*|J;#I8ARdvJC3@34D4oC3*Q&VLB-Eq(tnzi^`A86y%@3M5=cN5~(YHzF zep$CRcMPX{Y6X_PZ7t5H1t>poxAxplut`0e6lr&D{^j=6V+bDb7d3M`NJVfdO}X zJE4}6gKQI%l49U`_7$c3rfV80=X~ou-KfjW>$zNTOUKK3L-^wyc+Ghn(Al!}*qzB* zf83&Tepe4g%lnp%MfrbP4Kn6XmA`=9Z*kRisE85-`Zt5VfIy22mi)jxXEOgEX>gy( z4l8K3R0cli_P;>Dsq~4YO1{;ceq%j<3teF(%>L4e@_vAWl2Ap2EdGgbCNvaA=aX(P z)N35@D2jTiBs>clE=_Sr4bvYECol6)GYuxB%F&rUui^R7p(0C`PWW}JguS8t_adufz;hGXreirsJ1j- zH~l$CYV47s?Kxf-ih!JA`9K{&!C0zR!8i;9vrt4iuu4WlzwXl>OJc7A7FyzPaKD&? zLP(y5vrJrQyksaTizt~?iiV26qyqhDDQ^M~*fH9ZJ^tVpC7*23yQCbGGWpV=FVrAtnl2IUarex#{ZvM+MY-j2HP=3=JO z*)z+gwPeWJ{!~(3iPF!cPMk(vt8;o!6GY&;Mz!7@V8NIWRm64#4vMb5KQ_iY;6E;@ ze$bzE9(uwo1e%Pgs1HC!kk2W92hSFC+iZ4tqLM5kVcI)!KEP^BXYV6q@>R>Shz<*B zzF8DhFU{qxdy9WrF1=EJx;bO?9dBLia*0l9yPhRcLbKx&figQN{fMfugs|YLKKR!9 z1)`%KspV_vY?#+EFbLz@uI*1`$^(BQeigIBpp#{ua!Ltb|8@sod|ZQc0N+od$8O$R>E_sod0H2U7DyQd@SSJrbNIw1NszrsR>3U)zs zgc4stBHjI5C_D6(TI^KiG%u$~Mo;Y1&Z@>9Ie;+*oWD*pi0zLz^DjlM&CEoL@m7J!{dJJRL-;H&vmihat4jG2NSVL)SHcoU; zwNJp0XSKSz+pV-?@wKm^zyuQKmalJCpEcGZAO~9O$g6h^v4V^C)N&u+qf7?siKau) zJn)?AGP*Xq&&Vu-DKCr4%alVMY13M7h?7ZPYMj~t(4~_VpDX8hiI6LsZ?5^gy9&h| zS6!4Wh#oHS{@m;2_3}($%kX|ADj!|?8 zeMK+9uFjhl?xDSzW_DMPP7t6Ojg8D3IXn#p_`O3>Lb-y}9ByEE#4=sg+#Rj+GyZI( z!{c}Xz6&lpHW(ya-Q~IGo8<%OUkp9u%Es95 zhJRrH&?7>zxW0kefHd!cXwN~J`B-kG0Ss{&hmKuSxG0(C1CQGRi-lmKML*Ic%zDm~XD0 z-P$lJPVhuExqC%NE zR3wnM)#M7TUbkzs4HHt;UDl1Jqnek0@HnEh{{83oo<0~l%1!TwQx=gWe zwXKlA>Yk!N35wfI*L@#X=>gRU+>T9tL0%g!JkUINXdi>OPH)U#)irD6B^awXWf&W; z`VzXRW80`xeMa=S-d))8@gPHMox}Tm!vHDF@L4X;D}cc2R46ar5dRWx28YYqex2_e ztCoo{z8;R`B%E&IgdBq(1YmD-F$Bb7`Z}8QpHQSe?0~iYP%r*`m_EpN)Bz<2w8z;F%|&vHtt)_FIjXkmYR5#H#Qd(aj-&+;pg(K9x}y+ANnV=2?c z2z_RZJ0Ui4%A;Vh=2amc-(j`C+=g0P!~$-O&17F`f` z7joP&0uO!(xfrgTDrMr6Gi!*ami4d4kkBSj@%!fskTrrONdDDm6*TuTjXC#``T(@w z$iITzBhRuwqJwc?L0DW7bo0f{AS4fY2njx%yyYL|Ek(m*2i>1+0q?3$!K99@?PebY zyH!4}nuBjZY&MR_Yc2w{IXX3fV0`F|QlE%^q@mc0mMk?AoG|T$vnt3I_`Z(%u-b$& zGUP_G-zdnQ*dTW99#dC+U(Y=I@Z@wTW|Hb>_CEjRkC54lbg29V17D3Kno*Fdw-$I^ zYP1|VKgraOfzy~rpZ9P0O_JxT`FAG68;o>_f-tiQr+g#ovF{;GqGqI;33g;NRK=&87g(1S`ULpN2LE)}a=nUOwb6QGY^lJc1 zUz_PhmuTgv!$k|fR+J650a32ClO?x`#I+%c%E5k&0?*9s_g%VR3YQN8u$->9vc+Lt z9z>dzdd@?Oj0r<)O7Dl%+^??nI}<;=6Bi|I9-i1vVC7S+_BpH2o*1WBk=;0k2{UOD z^@(KXu4ZxNZz_X|2Yw}-o4bm9nX?00*!cVXkbSO4Lp9!W)4$voBB6=x6_C<2?J5H< zDd@a!o3npFo5L89IZ9Ujb3|qsdURi9nc9bWgx^=_Bu~cBedu04a;vwy-g>6o4?a(U zzHU-@>fJWneh58!{IP8VB|3ANlbU~@Ql5xS=bs!p)M_Ldbu&{=%i)GnY|Q}tGVV3L zNVibDexF}fRL&SvKv2*rVb^&yy%>L)c?!AK+(Ry$x8M}Ae=68P8z2{N*-3rbdlB_b z{b=~}+FpKx6T5Q^(_}ZK%#X~=yd1{hDFgCfq85~)=@y*^l_M6!Ef{3Cr)Up@YOWg8g5;{i3Snyc>XL1llaW`v+Zlh0-H1@$ z#O55vM_Bvpi?;NNCNhF8y@%U{fV0YELN`>y7 zoa#`t^*lM9joV6A666rxoEq8qx=5b%Y~GyZ5yoCeeOLD)>}_F%dv*z03zGqT|WE?{43U9Rk*Uwg|)UF{0XMARWpCvzg(SyY&3ynGJuHgaBG85;GmHT zw%xtdsXTjpF|bt-;8vZO&%mMh{m1pSxnMFD?XCl+$x1iwxckeIHNnn-E-u5p+r|ca zT{etnel%7&Ug8tdNW0zJB!QEK+ZCHRCT zWh(c`=sSe1Vf99ui)LWbNIT!~yIpH75>}aQUOL<|C7RUo0_;KtEO%>i1@sV=~!Z7}T_2ANpvX z&!vmL8H(x?t$x&?Jyee=Jl;$rM%;kS@HeS<%(-=R9f?R2WE^WsyHZT3?>ux2!Whp4 zd<#tAo-S|dNOcoGvd~K5x>#aU@;h=rT07E+SLWMucbwzoAL~|X9{4M`IBJ#-p+y5v zuMhYS;&6FP;gug3S#mx2d81-Md#BIwj?L6OHM+>rmDPrwe+aa|HvD3iXEq)08A}}f zjP);gd1`Wa{Tn()7T*IL@2__p?>YC0K#oc|H%Uh$=jXf;)7SCWXJ&X|Li9e_SI*~` zQ^ehV2g0w&i~>OyBKrHXqx~3(2EIVk>m|nEtMCITtE1&O*y#B9y(h@;9qGw#{x;Ec z%ez7Z#vH-r{2hLMSLsXqb;EMb=NX~}o*%`vmxtZ1O7j@DpdLfs^h`Ntjjr+;H4O0Y zFO-rB=*tKr&rsFA#=8E{f_3?X8P~mj;{jZJb)wX|hrLaZNKVESf`p3@uP*>c%xVCg zmfy}bDoPEFSRaxE?az2vsA+PwPp0Lezoj#0Es*PLISZo+zvY@sdGic*k4HV&hxs<) zS8t%clC!TilRez(HkpW@ufHGgdD?Bn4tbD^;Zz4><9oD1u2NM)jg`VqP#0OkOqdsO!$?p@5D%x%(o@KrtX7FGADR9HrbuZ>P}mCR)Ipj%b87BV zNa_xIBU?QzWew>Ft5&(VQ>GrrCwdxgTphy&+aMb^DN&ar-3mKLJ4yne^<|LQq8I7J zRZCdKHCdPn!$tth*!{R9OiSfOt2X!Rw|4O#j^a(e7*#BBCMIya+9CGxFe*i81rPgMYxz*Il_rP^G zCK~Ylm!9B%*&tTHIUo*r+5cxu{`Jcq1g^>8?|0B0U_}4?U9d;vN}jjp_w&#L=-dF# zM{g({w3*2G>xOK|F$;n!3|9=cKHhZXH`&+f0bW89I7hqr!O(9CHske4k*E%07QC5^ zMZIDO0pRi$^NM5jR|u>D*kfwC{SW?7?ND<0O_0D-eZavJ*5%`5r+Na_8k}ijH|X{@ z%4{=ke2#m^-3PbuhYoohOw*{ih=`H?{Mgjh({ou+BP9BEgUKw9#nx zpF4-cC+lgw(bww^j(Z$-QG3JMc2PUS7Iv5pCYaneZLA3dp6j@MNHpAp>!Sx!$lMKW z@k0O-KQ~+3*S(Nr0&F`|hk*$s3~mWK*!53rQP&_k?>6=T;OQSuZcmobkP)Lum;8}u-`_b1`=9; zhWUzLLyOgPm0&G^cTt@wDId3U^jWz_c9ZBw-Uf-tCY6*Sg!_CDzn|cTv-!R7=d?D@ zzE~#|?ZjZZt;U38oDqijv#w=7!0JAFIXLCRVQWfRZDXWL-{elr+~A}Wr_(*o_BG)*cnEWSi+ zJoRl*)q-_a5^CQGZ_f#=I#D5KsWvj*4Mc}6n^_@mg_gv78k2$}Yu%jq%9RI9OTB6K zt~zyKYAp)i$B5CCR^g4*ScrBK`^H$+e;^Itbu(mK&LXUWnOcN6nAu@n=I;m9C= zM`$3lVtBhdzK@RuZx#CadWZ=|_kCqb{J_t42AV5Z{ak*<_l3?N z$rdI3yy_Rf6as1A8}z&%bRKqjUS3ys{Y;vpF=m-GoRF07Sw9!GeNbfl4fg~fA|`d4 zkpC255`El;)XK5>rHrXxxUY>l8fe`__7ky>)1}YVU9N9&0&>|&(%}Fg+DK?SPyF5K z4LpyGcMEt;qd8fVborWl^%ZaJMDE$&4idC*BXG7}Rs%;Ht%jMliv4j4F45km=ef!q zPs1++poIHh*7M{#<(H8ba`FUYp37R3wX5$*ps8P2x!BCLs3GWb3RZN4xm_)PLLyRy z%7s17R=*SIcYN@>%B%ueGUU*$%AFr8qh+swYiCp5%bOp4Z?&?BAv$#!*F6Yo2aBxn zHs+LxS3TY$=)4R)%<(_b7Yt2r#CS?5@%I1-Xhd8V<6eKTf1L14<&{_C_?NUOMW4_~ zuMZ-OVtl4MmS^^UL3ssb1MBDf9}Oa#iy3*@9+qEu z8}Of3DYqDyJ$AY+iD1lxpZ2F?vg%K=FaP>`MVI`BU1s5>gPH0co*_u6@3l2_Onkbe z2k2tM8ZPB!+qXnU;K8sn06S$7^yILxup7#Mo@FfI88xM7rVy|oOSEyCxu)yFU4UB& z_(lsOR4#%95GFto=OP8pOe}z*Mr@-=S5k~$JNy~bH~$lmb-)Wu`|)%zdFwyaHne;< zV72#I!g#=XKw+z$%!>2uT{6xTJ_@_%JL6pv8b=@J$I~*msrFiXld?$U-Rj)JWb2}P z2>WvF_qF88+M^p?rg5zK+>{fla(XP`BAUeL?n|)^poTfu!-?x~dly9{;nA7M@1|C}$EOkbh0(Ro5z*uI;b zTB9t5Ws+#i0YeDom95y{@WXHshMJT}#>H~1%phM+!`FXSGpD(=&PUgZPs>=HOKp9e z&LeN$Rk}?M?F+46!zrs2>w6c|YzSqscz;R{@F~X1G>Ddz47{5GF$DG zq-G}hXwCu_R+{T|>6INjz&$nE(Z53Q1Bb^kI`m(Y#XMfjA6fd>+%MY5bg&|5T%cYW z;tr9O5*u8kPw{YxrG75wwH*LBN4@&!kO$CvgclGK1bKcgm6@+ArN{h(0{k(? zbaoSTm=A1_h*+#Ttu-m$g%^;mn6(3|D^4ULubfK6#NXm+2)fR$k%-I+YQVCQQi+0Y%_vb7JtPQUByzMRK)?((C+cJUE+sN_P+ zol0I7!JF?#JSn;BCEZ?4(MW+rGEm|dtyxC@ac?Gde;`oLj;G0<2v(ue9zkC(ksx&( zqbAc{v;ONUCOq3Og-DdkZ1KxK5wU}pTq!cxVUK3Eb>a=$SwL>6Xq}Q}xAlQo$6>44BZH>Q;_1@u2%tKQbAu4E&M9e{=$I@Ae z#IfZqctII}`Pv&So2QOxRsbKDf-i6g8eHKmU$h!dIYcnm^!XFd_Za3ifZIG+>^igp z#)M(56!Bfv5{7$G$kR|#p}q^rGR> zA@8{*^dN7*pec#xUDM;pw=)b67kb0dR!5I_l*>G6~08xUOa%re-LcDV0PW<~Jq5Aatm5 z_gJw9yDN))Wr_wxqc#6CPW>-n0mZB{T*X@gPV+_y;DIbC`*5GYz6?IE`gh%r47UF= z6E93{yIFopK367fm6P!wr4iAen_j-zj{A-XyvH7y*BPUcB#W+;DoA>q%}7t%Obx#W@khr6pV-g%QXtT=E-z; z&#R3y{xV%}N|^3<2T?Qn0*`sLBkbKs{&)Q9N}ni~Q1JNI5`;l}z~?H=wD}5@>t|4C z&^PLQ=cr)zX-;Lw*5LbX5N&bqrZ0=7KUgYW%3@zKSQ&it+U`g^j*IG{iNMR5t>E;=w!6;!( znJ1wq6J%Bo8Iy7R+>=IkIAWfep1c3J?u(3Z?wt1f7VGyFLBe;_&aIshB5F&I$y3_s z;YN^;N(GHOpPf6baRdpdXZz<={km#J6&w$An8VW$n*Dkgu%3A>gcAtYeL4+!G3R?Q z4jy>-9qj!>PA?Nc%+h%B7QU=sEp{rxm-((Vu3A=NCiiDyU}BhE`o(s8p;wY8gS;BY zt_-|})&m0(3W~OIzpi0UzhnNmiqKBcEUUTm3kofBSBj%K7XxFW+&e#Da0%lHr;&L)T}h z9@zq5uBt6}dR-P}oLj-Pj&+F+z7?VMueSYA>Eg%yiCS4diGmWG*R2IBa%JRIJ;d(? z<*Wkh$sTAJ+g7%YdG{)q)38Bil-#2M>!m1~wuNDNW_ju|Q1uYw(8P+nvb=(K!lqYK zVS8TfKRjijZasK})v~zQ(t0ORfTm64{Hh0hyEr53Tp+TF;B3q9ex7rXXFP>As$Vvk z-&}8ODmPcZBt#`#^MfG6ZJWHa%2ro+JST+x%;BmwdvCt_l-gmRsd=q*K;Mt^+YkRM zmrY9dY^idOyz1seAo)RuZ#7fec8OpehcQCSk{a!>(GQgXbJP+Fh*ZmHJtPoLWX z$ZK~d;(HaEwuOFum*O*QIcEKrakF&ON-;fFGvqF1MpM2UnP;4GQpdv2)m79;Dt5Bb z{sfojA$BFUg_4i=e>a5%W}y^&2wGyoeLH_=ES|s8f+Cj0r9sI7YntUuQWhY2JC{RA z%Bu{`K5FzSi@OP!qNgJ%`#d|`^vSgW;AxTH@>G9WOZS7B6AW_wao=$|t3SCu;PK-D zXQ((n+V@2LgOqL2#1Ar#PKQSq3D(Z-^Uy>!0ei>whuhl*#mT_TZhg^x5v0I~hO$q_ z+s?fy+!B~t!<@gHPz6mgWA^C2IF62xO3Z8*YZK>QSJDlAikzA!dVI^$_CeJU04bUa z&r7u#tl^Pft$#$F>V&r>NOJScO5{Y}*{)GU|GgVYiY791Q#x}~3X$jsT1F9cVR-Rs zD5JpSLIeyhh(tP!(H^Ekk+tNO4pIKP_01rtTS!%L&oi;YOm#ZYP&7>vjL~9sW&-Q^ zHq_@t*xQWo_B^1*nqg;=Z<8GZfXuX*P{uvJ+=9I+<>%@{ezzG>wnD&e>?x)qjLw*d zg!lmYj>F*{Qe7BqHk8)HRZ$6@B`dL{TW9JLzm#K4xEQQ#iqZU@_^p~Z(zz_O8oqP& zF*RA46=$Bpuk5r%N9e4Oe^sZ44lluq8-IF;II}!y6aR9L&DFkVJ4BZOlocathnA=2 zRDC#4AWdfdTsafo;-56aX1vjQGQ&##0x2d5W+bVjs$-c~HFgOHH8zD}m!4))Yki71 zot1{`c$b0k=NMV4{o777EBsuLQsjW3>bX4>MfS$;YpXx7sZVA~jODb~&pyN`2B=lp zg3bl4>t~NCPo0~$%``6|z#+_)lX7@1r3!iyic2n07H@r1=Yo+gTXj=Yk`nMK+xeW~ zP@;g$QUd~!GpOa&Z?;IgYsQckz!VS7nS=E9%W|rm--HlgJW5igcoP2}; zaSx65&b^nw{F@%LHep%2NZWX#2?@((3=E`#DCU>ekGXsynK7iN@Wo}gH5gxaRJq7@)G5D}!# zKFvw!*Y!}7AM|9&>^}?|*jcV5C*X_WeD~_I5{J1~Hzm*Teq5KL8yoYSXx+c|yxjLE{2oYA=3_&-1p^NV|XH^RM1 zTF6GHE1~hA)yHqtu=VLnCbS^3abaCB%2XikB>0e`bOnF0C}@a>4rCc)Px_&8FWj8d zedl0(*cLhf2(T=?32#10AAzL7Cx6NB0gZ9-{4?WzvsJ(;FN=fI?wFxjlreUIgrJVZ zLsfHrI>W{8DwSe84+in!a{|IeuN*&>L&s@5tfX(HX{(9W&mg!>S|LJ@R-TC@W_LQh z#rvNka)C}7R)iun+Rvt$scqbUNk!|Mr2L! zG2Nu{NRI>JKMuCJsh?rs=Kq*(m=PHivuwPwWQPF$5BVZX7xf45&7PH*`$U@P`c}`C zLpYNG=$tP3fb@L%3^(DV9ccIY6FaRpSQtJE`w1;2O1HMkeI8nc>}E=D)pgxCv5!vv zX*`qnRdYy%bj^7mPF^Lk(n?URoR;8?DN477>iuY{;M0rbVxh>xb|k)LENcS*V{}sH z6_qIXbR)euK;?bK8DB91N$QJu3a!Er@UZV<^N)2<%Y1Z|2G!m6~lIaosU^w`2-T^Y-|#pEca ze{PXkhCRs&fMD zEK{E}$a0w`HbIfmal>M^L1Chxq9&=^MZnY3(-)M%(&v$Xh>9Sqs@{OQFDC_oM*cOf z;-+`M#Pe?7E$=Pw+r!DsXS2J9A`RUFHR>RRh$@LXz(XbJuz zt(vs- zogqQBx;PAy{gI(*!OZgK`3-IQ6`XMQI6&sbq$q>_=2|{iyE8wZZB=WziCS#)>j_cp zqLj7O@&f1LQd}Yovk!RfQ{oS16|nroC1x8SB*O#wQ^;4`eCd?ycCB?1``JX$8jW}OlbN|y!$kzwp_lNo4MuC4doc2zVdxJQ6$1Pv41Q82z zoMmc>Kxai+uiRI7ePO(&x-$5d!D(2OwkABn*V>a+4k{;79>*2BdRU=;pT?LhP`xX| z7{WR2@!EEewZLJb7M}PXOdYjcy5*jWL9#A1dP9l0XOvYRttQXO)Xj+_fF=0P=S3U< zSP&a83uyQHGuCRSK)Lh+|IYv08$xZ!&LEFH4DsGSw5my$Av6|t*9aRA%Z8`cWtSjV zx&2pA(dFB{)@%QR)mAgRh=@S;U3Sm4-&Qrrr=H}0bPm@nmQ7*18hyPp7^}YX?HuWn z7-XgM<0blrxgPE#)3{R09?;a4AlT@Y=u1ZZUZWR2ilv-)!-{+`o=9sCevs_|!hk9k z{1$&!Qc0BFvMM!;aLN^5iN`hJESA(^*ZxvhL6csBeW zGnol>-xO2`heX^dqL~F{wsIpF_^TxcJf9XZN0)wg2}Xwvm*jLhO`s+~?AX6L-m9ku zGP&9TR!{?4y@KP?2a9$S9=^T^r`@i74p9ZZe!!3Q>D{(S;Wg!X&`FSZp(RqMCbNci zJHIU5$^wTdhWGE)Sgsn@VM!#t4}OIYou+0`25gcVe{yChJymf9{Fo|CS^7@hl;rZrh-YjG5$Q0XQ2}^E6T$d{hR&@+s^vFCtDfu z9tV2a4|LnvwL-`5cK7xH`3t!zb5!5TwUtigemG}Zm)#Z@Ppt}g9HPi_u?Zl>eLoptwwQpCp-`NLVybmbZ|qB-J6wU?M6ODNpY7r=^EBY~dd<+zqgQxNr+ z7gK`4OKCVEY%-pTR4B*m)>NE8mhl5U4}`ErNO%*ff5YP;2nJ?-GdSc{?9;!T{_oKn zCbuDE^LdMWU;Bwd6Bxp_OICiGK!Gd~L4BH@-2`QB9U@%U7jz#khddAjsurZ@)@W#TT<4Qtj2q%m#L?giURyyM@#vSY>HZHC%28;vrpvY(QgXP22{hsVc?M+Ef zn*GU%SDwe`_1dGH_zrS+YVALlPE+IQnTgrAW)Focspj0~sb;T@x#R78)?b&T(|g7` zX&cEBjo7ilao7^w*_rT&g$OLmF7i)5=@Z`S!uOPjVhVy=C3&6QCw8&pfcYmbvQxm6 zW3DcuwcRIz*a?7AvUb%lHh3;h1T#klA3HP(WAz`lyDsz}Uhqp`HFmC;NBXRW8%Qz* zkuho{(Kxn+ReQA7gxSkV{48)attEL~Rv~(2GNyT+dA3#9WpL=$8jon9$luDdmAu!) zOejXI!5kAZzu*ULC}~PCG=6b?qW{o^MyuEn78}4m+wK7r8NrLGNSV0hmTKTb!R#~} z%~mx9s#NJ+7-0(4r06(#YwlG9F+cbwe%DI1yFAWxFNzy?Mzzkfu4QN>^CEw=4C`7G znpfVqBoUcuSX%ERSHRq(cKxtpy+vRv_%b5xxzJD7^$e=+E_4kVId-296+^22Z zFMB7h=p3fi9LF=y8p#w1YwmaP!xgI%x+sz+#vOm&>1KD5@#cPu=q<_C{@xA*E44|j z7V@6LX@4hdFr`Y$6K}z8h{PZs+~!_-ZFXU~Ri_JBF z%`kH{sGyWqSXy107CRzXRc1Ig-?+@nn%d1yR>v3HrYedOPIY*#(JdjAH>o3q7ZDU^ zR!HdI73IRea3!ugO{G!XsSKUvy<3)W=rda%!mfUA(5ddT#q@}1V`2p#w_-tIHm6u0 zI$TYD9U*Ng2Q$6Zm;g>^* zQ&INNAv!zR-rf8bFd0hi$gHW{%b>nPKlu*(v?(JTwV{&&P`UbhHOo`*KJib z+pZmCF*2C;T%<8dP&`k%!3pTAu^3e|eX_n5_3@19is??Nab`G6T7<4zJs2;Y9z(xYh{LMJ+jOn4+P4-^*!6$ zc{3lB+pxVrDas8uQvWt4GenYE#n4B>!H-;_e+S#Y@10k$&JU9RMXaJhA<0c4SrIxo z#e3x8^TO@(mx7*>hQfx1_I568>uP;1f`JTzF*XU!WY$IX_#A8US?H7hM@j+y|G*Tv zuV*hy6&2|pV;&=3PelrGKWE5mDr{D@an4A8IYbt<55)b%Iwwlyy1-dax@5}Y^_A{ih=d3Ptb%daVF?d%fsCJffUP>w28;OGGLsEtbD>?6p4;}*x$WorO%RW zTAqGUnUiA+GYz4&IQ%r5`XWDyt-DtM^RRT4Xf4=0^Fm<;EQERELlBuLe*BD3q^VY( zgH!X4ISAz6vuzu|;+z;iNYcK$pSkYCa%$qtLg!$X?sMcFhlY9QKrQ`|c+O`4p(n1G zsK8GM{rxZfs?u-_HYtBV>zHn)HQQ2q+IIBj{X@Py8qJt-Y@Enr0;$Z6Q_;Fqop; z`#w~QQ9o11jOCIKvun|LNL;hzRtp=x%UIK#;{-4o zoa#sy1p}-je`|VHui(qE6R7Ji%^you)8s4*7olrbZ}TiuQ>&=RBmAn)J>WXO7?xy} zGK;ri!JARJ<4({P>$ov7q9!P>uYsbW7h^`T;qx^!$v+VdML{fzL615sQ$QJd(IiU> zyji7y$;+FgW}^Coi6!Y}Uaeh%5x^RkH7Iwmb4GIQZd%aEgqaoqhw?amR--q7mWv$U zpr2(N{}Yl(3<}VI8M%;a8g1CKi;zC?m5ffmZwAQocrjPsPLFi?yngfci1qBJgn1VH zzVk4>+H1}%2uFY7Z|0s=pVOY32REv|{<9gwtCzRQ9IVjwemM=9G)p%50kpDHPWz;F z$$>s;mhy`EhLDqtAkyey3yNsVCAX;y?!e!f)r3dsax|otx3bAAN@eYIAS(rgolXV7 zuP7;!>RT1JM;8jkeK~65_d_oC{%Z(bTGLJv*Kl>fAr!Mo&UWc0#-=Az5*brRuJC5bH1iQ z;J1Jt?f}lDr3Ua*!9M;N`rxd)`@yd3gyi?2Nq_BBXND#1c zcc`r8y75UE(jxGzi7rUk6Cc*=cTp*Qz&<_P6wjWj=0oT3s*dLCT8=by)z93l_hFh0 zLXKg~T!WF`aez%Mep<%Qo`s;>dm@_x=bZ8%=AJTp%{AT7-iGZ+ z6)!?vgK@?lCuQzZk^7T;g$Z=@XeXrMIj6@-EzyY=#@c zyNyeIl~Gy5S=sG~cAZs`djvXq26=t}IRNOt=aF;D2XCMv9@@wuP~~idQ9whKh~iL) z4JT0@r?vAuj-varY)lV^m5eS8{>1X$&iDv_ba=~$9wH+VmRFwB zC(yts7}f<#u~8gFQV??4b-un!Z$9!tJ_LS+iV&Z}wSICkY`WlRm(a z5|Vcg-^F}G_6QmFr!ra|d=wpc5ve@JXfqt5Xbv^3ii^0)ryi&MH%Ku991$h@xMEBh zFyty&-6djeMjGZ($XJEM3N%10d-l^-v3WXVA%`fJ*%Bq~93&5(Sd1(Swx7D2b6>nU zIwpcE-wy#k$dJ6?&8*Ur_D68&$7qBi{>@^NC@$a@O8YE&UO?W!*x~ z0`>8Cn!+)fWYLD_)-29>Nol_HivE}sQ}SjRqh5o==j%1FxmBJyPIUuZ{pVmqF<;R! zGjC?Z2E-=Yh%f1FOUPKCY6!O$=f`~?U6Fe)f+Bn|lP*^ohlE9_s(ZGS@kdY`u`3;; zgunul9KlhKETs89k{sDcr&wcnbJ!*229vjpp1f*j%7$MA+ z-lq}3{!1=JF#k|b+TTg`|K{Q~yN6>#~=|lkH-x2`#-z}vh z55oU}nF%nIf7CPl1pL?24n>Ab^(D^UhOkT|*vNYt2mggdB#+hbusyK25Gkp>kLdHC z%zC*Fdbr3k`G|TDWgGu6%<+>${S{f#OZKMGNffq>zZctC0%141`6B+(}*qVH_5*bu}RByDo0{^;oA!h$TfvhzJe z!dCSB^bCJBLX-NXG1q3+bAPn|FDU$fPr|_ed&TbmI|?%eX0&S`3`fU9hD+&4I4JBQ zvAWTJE+{k~8?>vCoCMx z?<+w7KBLNzGCF`zKx_H;l^yt55UA@{dNdBD#@v}KP=q$`p12;|SNs?o%nw>?i{b^X zDT`pzeiHA1#}166M~t+Edw=IyqLN0MB}|`Fpcj!1|8hYy2{%&!Bf9B+IcarQj;Z@L zyUF1_i~xtF-?y9&q5?dnyOpAf4@`3vsKK-outi&Y_9=l`Z?<8snp5%}_JKT8OSkPB zg50|+dfB;Ha*LlPgHBvOwUFCZt|-caYNIgv#HbxzCNFD$$1zGqm-^(KO2i(*ms(ZW z%4S&yq*z&Zwi0j~4;m20Ar2C%Voz48u@6`nq>)pmQ4FJ%nG=$dy)2YHXuC8NSn~OX z{rd&g}c-!bNwF#dSxs%CK%&)qH{9d5G? z#;q9P-{)+B?S;<`-wNWUqqkH3cp+U1#3Em_7;C5h73;iL@-BM1#=%+PNy4KO+89dzzju3t{Q^2$ zyBcDuynzw;1?8tV-Ve*X1%vzn;*IWj7xJfML_#i~*Nq)^7-pOB1TB!1-!m_cvY@^z zc1Y%5e+7pgkq{qeUa`7U@^(QnIN63%h5-4V1(5 z(N`OGD#2=T#g>v}tVRVTgCJ2H3WwZ)TtPpLsSh*t9gy{xEUt5+Xf3{~HgrP!mFg{uz# zxRs6rA~1qUB{|X@am^XU+J`LT}nq|hh zj|A{;tfKetQ|ehwJ?QLJ3j_+jfYj3=zy5t_3y((dCczyqAi7pRmPcy-myA9TYR?@Y zMo`9AMpmyNLBCrB37#qba0n(OT?K^VXAdMArIxWY;LF;#OHy{PDBI$$y#BR()2@DG z*8Ki1a2**O?(+=tO6-A{!G1cnd@(j3f?b?@8k$N(WuJYDGp`MfNlbbHl%>20PJd_tr9*V3>bX41)>gC31pe<^f0fR8=}3 zHe-qSl71S@$!qBBDtaD78ij6UmiNUTv4Tt5Y;of~;+=}h?Wcq-608)_>?RP~F{9BN zxawsFW@ zAsfq(^3N1;4^EkxFoP~&>SJ<63vn7V%7KY3Z;(UP??M9Av|Ue{gZwm)^_y~@+g^$A zg*tDRM+>cXU@cSE|71M6L(b|CLZOI5Q;GteCpNxqH60W`(Wrg42AT^0f&}EZS7dLu z(~INdi)pDP=ch-&Gz-VuycA9s9@*u(YmjjB9Z!p=-1GBU>5YM z&mNr2pfKx*Zn=sJ|255iQ@xAtVSfR!^fbO?;5$7Fc~S^R!B~(V|d6#L3V@s45k|YfzfR zla$7%%E2K?Pua>PXtPPz?PQb%NW8jWiykc9U_}1=wNs&q(F8)*k?%Av=~6lSgSU2?fEL@ocJ+*{ zd~OG(nA$rQaUUP=09#e_{CB4`|G`)qb`=aGZ{1FbMk>mKr_e2MJW)Ec}Q~ZP5K{Yp<{AJvn>3v;n{|o}O zSnn`qmjwyHWF!0EKckzuS?*6haf!4Mn5~1URnm0%GoxDwQ3$P#e;IcbuN-a+elGy5 zjpe-3q&|2Ao~_y{TSwL!BOxKtr5~(?(!3#`UNV5s-{Qf;z&Op@G?>$}Av-hV$oh5X zyrcYz>*mFnVO{fgQ}Rb%>#==5&QB1)R`p!k6R(5(o-V^K2l)r^m~fo^&i~O&euwjp zOKbCY1B1r&pYQmb8R4U5R)+{fnO0)t?7pL9^UN88`99ALM(SJYBW2y4e4lCBrA$&= zpwU*xY~HZ*{3A-<1f)w|nQD$lk)uGo!WvB8uk-6k`(xsx<_|M7mL-!^DkNDo73d04 z&QfMI8WG=)6~BL3cr)6>^YC$mc6*CuC&WliO1>=O{%Mt9?@lm}_b z>!U*W6P%&-ngsQFYajPbyHn$TBZGBA+FA0)x$Y-f{~iX+M2fi+Y9)<_q#6lZ-Foi+ zi|RyacsIF+_pdwupBuk0WW1-c2hdK4RaS%9flF<|2cIB`T-6+gDQm(1Mgo<~lrtScjK?Z<+%jE<4qZ53Gsx zM6sYwiW&`k+YfURj*@;|ZU;I2Jb-Wt31SSM`f_LJ_4Q#z^!iN&W;X}?h!tL*-&&5| zNjL(F2%>mm{e<(8yVs=tYJfk7zWC`J&iFLsq;t-9&%xIz2OtUY8_*aoM!3?i4a~L~ zkZ0E|iYHLf1ucIBN`n(oi0{PaKxn#Db(y>dL8)KrdwfDe^S-AL(d>mW^7$aOMr00J z%76{e?mEayD=u(u4mvFuv3!Af4ZB86=sCE1(~08ws*C^HxkE_!AbIY|AqpI-xoB=4 zAEp3$k3D1T|73_+V&F)v;tF?s4g|VuciI>W7(>XwiS(Zfn)w4;0ncTvm92Ga_b3npt6P^I_JIokK4s;z zl5>uB+l0DmqqRE~zbOcG#k=bO0#ap8L1WSGdV%R&+oPJUYp_@@IGyII0D?*^ zI!;_`TN5CG>DTde6HC6K7Ovt)7|%fGo`X|_`3CyBW9P?P0x`;m#-3Njtwm~Rq_`S^ z=eFqTM+#Rh=L>Zw;LAwkYCqIXpTQdLa(7dlL`*|+6g{-@W*!5F$4E24wlY*(OP6t@ zdD_GzR?N3S)QTc*OpKRd3rsbBa>ANE*tox4`e~o~TOrh1fXD1n1x1ja}Nr=CLL*|Uv z;Fu^^B;+^Pa*p!LoH8@sU*XqpcI(QfFDhj)a&YkQa8a|g&R*9F3DB$GnTtn z&D~3psugiJl8p+KlK0FZpp!Dv(l_`&+gH3%Q0dU7?YIrS2Rz~lf6f28g)LiSItHlcG8N7LgX-Aj$Q z$;$IhZFR*K`R%N$RRFOd4JHL+ZEy)~D(7quuN3R@+oJO0LS5X6IKt1^5-GFOW#pYw zVVU`i>Wy}W6e8J5IOv3NuHABgCHtzX?B;|*m0U^xTTR@EpEJ5|4AE;P3@lh8oF2xm zT&8aZpLzRfBWBZP(X^?^ahgN_b8cgJsahN~130i8YB_P%3U|$YErZ`vXyxF#N>7p^ zClJjX(G0&w+B!;twKX)>r(oO)%oS4i`QPM1w}Pw3|DL*FssG7goXTMR^c02Mf9EhB zzjK&E^vYqFhU&AKhW*ovA=*6maYHYIxU&Ab6F{iKT&pz@9 zkvmWfingU#X6C**GMVP^kuy*XQnsboW>mh0t%?yM^Z>Mb+gA^fF+N)+&*vmV9v^(_ zzsHFi+5g1se+!OcNqWz?{J$F`n?97x(Keu<=N(wv{o>?N)5eisdILaai0ZD2Vm3MX zl|U>Lk@kh$Y+tqU*S-1cGDmWN$f1q_=KvE=K#}M_Q2|oTo4cQAm2@&#JGegXGXlE& zc-E*SSl&EWb>qF`!{b7iBx6E!p#3LcXC;IRvw(Up z060dh*)s+)mIzsD&91SYjV!0|&|QA$O!d3&++4R|9Uc1?M2DF_!9p5cYABrOy11kJ zQho)uehV6g>}2-Ys}UV46>Qii)M~p*I^-HGI~q&he#{Dl7l0Xy;95Wf%qlu zT-!4B&?=T^Ju*~X30d%m!9`V5t};EA_*?3yw}fa@QZ$VE5r|?gQ>=R?dFmngjtM;t zU8Uz}%G}zX&R`8TM$P;5d?Q+#g^$>XJxDP*Mcm(1KYiR}y-8)@GrqG3P5jn15&$^s zsj&vczb~@0sVy9TVuzudSqtj4#g3eXe59SJ)Q_g(yU2(!Nf=QN3SEt(e;{2MDRN-mNc`P z%AsTGH4m`e>)P1p({GqAzBV zc<@ysFQbvAx^;qC@tl^Yl2b-U;Fr34ENaRbhT?wr;oJC@KAI9D+uKl z-0tZ8RYjyIZ|g>|I!aX^%xIG)nXKkcEHH}~&23$Biiu<`wkn;Jw7)RwFAo6f!M;P0 zZ`@A5<`>6|HbQe~qMJd=M0iFjp=#!E6LFS^9+(nR-!Iv>giXITaw0%ym~mhim!nF_ zbB|O`osrOni58S#qXm)?taDQ)7>Hv`ge}}DB^49|VOU5?Q>N?Bm!jy*~$F^)3s zt($n&cXkmDzZ4#mk=$KNYUZwFMi9P*NkIXABi64>Q(obisR&+Ng*O71-l2;U0XD6D zmQXIKj1$v%Cyxl!A&m3&TB$}EP2@w)(rU@~ry^u(&H4LyTdzk7_$BM_r|Au0ocT@e z1R6fx)iHufOuEvR<+6Y&B#{)CCJpr0_<_H`-e=`~S{ zhFx`|6v@FMCn3Dw#q%mAgedrK^#PD_;{T&uP z;x7Nq3xOv$L6$%xo&#N_Z0fas8(?yIGsbg;`CQ=Z^u=6wc#JPQKv*hX>_3F%G{840-v^=J}DriTao>41q2+_#s|G1055TM)R( z-Ae{E_$@5Qqs{QEp8D^dJ}&UR-ZwS|_mq^-Y6#H=qVmZx?0CW=deySVWseGZO4cC& zEhr!W9exY4uatA_@EVt++bP1m>SrSu%fV3s3r`H~^AW7%Mt}X9J|u@~?%-5TwDkvq z`wFuMP{bgPbq7icRVw?)A)5^rZ#?b{;d1-Uw_A|aT^UT%1)bn zN_|Pn&lRk(O)lnANBJMplh=#2{+fSlPk3?pr%mBmAT$ze!NaY0tn@RlPg-_!59{3* zAWuT&rqX%okHWS*iy%A)vU2HIrWoIjDWNl-c7!i#>s5W|zfw$yJT$)l7N3YP+$_2* zIf_G~ijSy@HSgOF+pRdNy~GzYbLpyXOeyZj78Pr)?^J5^ht>aETZ_J`J^UX?6Yv{q zx?7Pr{cotrJRDbcoEd`kb5N=&I@206 z`sNsCEjuxa@DpP<1+}N>u=*Q3o_!=q0}hcQ&M94^DC(>mE1I;?>X@_q`JnkH88iQF zlk*SxkIYl~354Dn<1ZtyYX}$RZyV;~*Jy-P7}c8+%z?@TYVpb)8c{c0emY_dmr$m# zlIauCi;vVLa9^lIyH)ZJGoWWzJ8jiqu`=wDQDD&JlO;d^S-4Gv+GMa2yAqve1Hx8= zVg^kAk6xnoaU`sO?|~7v7nu2EphQLxq}o@?_J!(O+(Ib!`;kO}MHLF+xV0|}M_%<4 z+YOHQbHEqQ-xaOaHCY20CyB39o_MUyGY2w`es8+{**yEbN!GwVzKzC3I|V^&6Ijn$R@pAv1?C;bC+5eGx+Do2qt%ojuLw&y(P=UsMY~?VhZELiDPiG)48|>@GlMv`ZyL+I4)Bw!X*_ z*+EC`4GVQObuzrycKHVv^ITMnw{wpIgswpuedPZT?RdQ*&uaJO%k;>b}5fQs?}={)krdUh3G7~rxz zL&|Ii)w#SLUjr@jz1lwmPSPN+*pL5zdjbBdYi8s#mxyJ$uO2YA6<=G|=sH|UqD-?m z-E)SWrub|av9$I^WS#r_A&D&)ol(>nU$&^`yTN<^V+O16E;@99;>3~jh>eK|D}LwZiY$Y8yGl#%I9eN4 z^KSC_1N7cy$u@tjWr@WaoF;;VLa#9o>Vo;~x-h-T4eV;)T!vaFtl}`T zhOf?hnm;k>tQfKYW6RCjF?-Z{#Ue&@drA%ZoI+ZwTtfCq{6rbUsNj-DMi$*RnHfcE za`M*A%|(2rMY=8P&mqC%dY0sG2x!`O?*u3k`Xs^%B9@sgwZ!)Fb!;SNspJDS05=U~ ztD57D*J{RAd??&XHz1(RLLv>R)x~FvJ9bjqRkDOwAe83_r2aYe(^j;@vG&# z_uSbsGkZ{ee%{slO!$N?3t+4gegb6&xO~?oBrFNFwVez6=9P&ex!)Rp?~fL zU1&Q$JPy)sGt%*waxZ*(XhqPm-4o50k?8j+LOWKK-T`0kl|=5Mbb!LmI(x{7Z=JFG zvOD8_V7V{`{^)94%=^HP$W8s<_q3bpX53Cu#GmE8)v1JV?`hEfKnue!f!P#SJfNDH z3y@79V2#WX&>P^L3gj{VBc&09|E;3AaD%<*ebIB(z&i&Uz5Ymjf4fP3vnapSH85ax zjV^a_V~^FtG9bMQIs#jrRN70%FtvglwtB7<+I|XMK)8mSd9Ecr$P>2@+`400v@|#p z?U@yx6F!F;8e$Qw+yP?@d(qXXGd2avmv`P)EmeK{y_CAo4q=lTXEA&3LCPmfstdfL=G83CM`xAr9O4x7=tC1S$#W;g2(flrFdt!d zVojNg{G-fq<;qC?%z$-8^$YhYOkZP}?aI~rV#1K+GzxS=O~5Y<-aS%UKe=A!$UR~= z<_a4ON`P%k@KzLFP13H@S*$?@XJiljFZ$#ik zT;mnQ2s6m*WY+yJ(0sZZG{X7xWu9siQanylvl@{7F>wW%O5o*H5lZAzf?14lp9*z- z)DMY(-D?Otu}kg65zXMJ)~nH&E?-LVSrv(kV#>Yuq7DV`t@e$Vv=FdeaQsQWqy5W) z6v-4KRC6{iBz*mr@`epj=o%BF`vo?RN!2$1Lc+xCEpJCSvb?CI05@e$4m_dCIApIk zu)qFtqG~|qgTf6Xioly`4tM{+M3qKn#VPw2qxQ`U?zfE95xn5`AL#-==r11uVgGMp z%&-OY4@3Pg`PqN^_e6f{(L^5gE1$>yf@&Q)x^F-)$crGsdf*?qEQ%}C;5VZi(AQ?J z8YYo5(89yt-SVto&{&GydDR%CIq9IQt8b*3dLLp4uRytzN<~S@2v6mGn{DcA9D21_ zyC)b2(GoxcQ@Ch@v5s^NlbEn->(qc&CJ@BdKD1^iPF2Q_i(O_=Vimx9IedH$98gIP zt*^7LocOKm=S@dykhm4Hbrb}H?@BK$=LiC-neY>76L+fQ+tmxXe>AVdr#aN^DCVbM zUD=m$({a63ZvWvDzCHW0{wC=+@i(Vr!3K+WEx#oR&r26M|HEGq3716=h^eaKs|a8p zG*V(%MH4Sf=8!34t`!Cj#OO^dMkEk9#pKUFG^x{^oBPg6)rz_A$W&-L)t0MW53002 z7-af*{>nq$7L)a@F1z9qCQUw(ni;5@Dfazrl0`t)ea;4pjJKM)SvSGU;W&Qod@7!g zRbOsXR-AHB5$;kN^kEPh2tj1nEFR2{aH>LyMQV^LrsK1i6ThO6)C`Ep=WsfbVxD|k zSQMsay^JRvZ5A&M-AA#?Jhes;!8H@>TB|}oMOzIwD^70bG}o&MT^93AOU^Luh3%QB zuGPLBrCKJ(set3>>_Bi&`CFA`yF`eI!F*)aP1i7>w4PN9xreX}i0I)ec1u|&c#9q~ zyAPum%Pu8mEP3sYz&3$HiPP;TpDnGfB(@@P@=3m4ig$L7v(T4@(Kq=efAF>2dzAW6 z@-n9x)>T!ky9Z;AMNP1~bw~hC8Ym6sP}|;060C9+6Em)@C^wh)Z|R=oBQA-Uoh~o3 zEG{EEgZh_H2k2(zd-Yoa`TPs9)Jx`zX|~t4KF}hXn5Y?JEWcTO&C3{!Vm? zM`*%iBLI#t0um>PH;eS!ELdmrnwQxfjR;QwljyTgA}_ZD0((j)i$rDwQY1Xo$!A+R z95axwVX^RU#SP42-TJq83uMZ(S4gorQ%#jmb_VU#b*w)D7WKE8%|!m^lzYEbgB zwxu{`BEE)Y!hGn2M=%6_>)g_r2e6UuK8eKKDbQNZ>t^U?-9F^Bs;S7b;lvW_j8om{ z%f|Yk9VmG7Ev>&{Y{BQdc+A2EkOnr7f^O<1n3k@I0d03ZeD$9cqjo^I9)XXySc!41J1DKx)d^cJi^>Vw&Mf}fw+>HbS zR@(f1<@2ER|3cZ6@8ApO5@dlsuEh|)S97g7yb1YDq^SYg+}F?Tkq<9xHdpwSZU17; z)_~1R?Oz}KKSR+$5vEkW?d5kJ4RnbD>b{izV}0eqZnrZV)M>zop-UIufe-q{A|3yR z?k&aooQc*@7XJ2-4wrzB*>w#>r{H2Nbg7 zj*)ac-$=oKsF*Bvk;fNH6FDWqzPFfjp!EZBP++i0Rin|Iv`!|+=bHb*lqX&Sb~&M5 zIpXxc)G?zqFyD(y^!3uUy!=OjHVJNlMY60BJr09vv8o#@jb*tJRk}i(OWOZZ#>60( zN^-o3bB;{ikDpB;k8<`fTC{kx5q+(wG7WccqpofDKhO$^FEH<9gms?TkQ*;H3{xc@U1Zi1DR_dF zKv?IB({gck`gq17^8Sp046Fa20+|0NDzPACnLMCfAn*9w@0+~TTJe7~#QaPD63dGB z|E_n5N0^JPc2>ha&Mn$%>%TJmQb*-(A`Bk@Hu6T=NTpjcdtefdpagl8DE6J$sGS!L z*~V@-q@aCo)=cJ`!7LY^x7_+81a*#Uoix1Ag)I<%@3beZy`&&-AR4Z`w1U%Aafnr- z8paJVHx1{h-U*C&1q&uk32>*-z+5dYU+u+=Sv0|(`Vv}d*=Hut%Qc<`YL*;WM2v;I zOFdGXN%QqHRIIAiMp$P{0V^7pOcrJ1tc$*;^2TC*6yb?oM87I(=SEeDgIz^ zz#ahNNB`-Ch~S<5m)`D?><^E38+UD14HC%tYxV}?ie!SuM9%W)`a>+cAeCnG;NV~t zA?joGI*Uj=#$CJ>xKV#nQ{Fw$RO!&yi`STIT&5PQfPKeT&lB_0morQri9>3|ga_F? zh)4Rn5nthCtWVQlKSnE2Vvc=1$IoZ?U7YtLbp>1Dz_L+z;$%t@sUd3|SEFR;08yf~ z=miqoB~8A^d&mIn^rNckGrNps8W_% zUzUFF0~;S_t{VFlh!jgip2oVx66eBB-2*`3U%i zw5sDpCY@yDx$9_!nL*!Rrlxh|{SbIZ=)aXCW^}-wWi073CsK<=s%TqXur0;n?%v!7txyc!! zoN>>x@l_;RXS7Q&Xg@SL9Gy0x5hwTOgf4g&5-8DMa2!2j#ghU^z|n(a&a`FYMZMk` zlr2~2;XN@bsY*w!jXPYbizFJ&G34XOcd*-8!#b9=7nHL#qw`_06ff7RuvLhOjV1(= z1s&UAh7Afe-^pDGQ>O_`%X-SPQ>~4LFLuz=4$q4k2w6%a=Do2r?Fs7+7G(r?v8pJY z7e#xD<|-TgbEW|&#Fcrd^@YPP1xBd`0*tQg5%n|%2cDE58Cck(;j}R*(?dkaWZqKa zPv5`d6ebBaAFx4X;F}JPj^EvU`nvhavZMwxj&MnP%TcS}F93D&He-Nj0zCEJpoLb8 zW}Gk;j)7b(3q$rGjQ*aFoinob1NhhR4KlKaf#0qux4_CQ>b@Ysk|wWgDng|b??*`G zwLf`OT-)B<+6ermEMNbcf-?j+i!|)lGtY0iuY^^PNr)h_-+qLJ5ORT-Z{UNVk34mR z1w-^G5HCH_ybzxV%Ku&ecM*Lg1c)c zf%{cy?KV#jqWtWq+lvq_O*$xQ543d;YQdbRy95nbZ<$>d^}c#mp0?pjX|IQW);3~7 zM{iPe_FZ*57b1Dl-T+D2LB}s{9Ga4QlDw`CSO@T)QV{vV)(|^6P`kMNN&~FTw~>ld zg#k-=)gKs2u%Oh;lkhH=9J6T^I+YI#*0LFQJdPpzXiQWq#J(pbo3!(@p)!?8^{6N} zkEH3VVuQ>b7AcS3`N4{5B*`q&;9 z<3b6!68FPJ98x3h#f2Kp&362QdU_Ah*G(SSn(g-cI8IkFKpA6kmneKe@?b5Jgd>3{ zAz@~wu1eE#r)d$-84u1FKf8GF+hLK^7)Okm-&KDiF>*}GodkzmT5}7i~CuS&_D+Zw!veKc;BC~cgFY$x zs_#%&MO@JP05gn>T~*@oFlF|AKOcRolA-)bN>lzK!7t+2Ft&e*F)oYzPyR7T1ulRt zXz-_}Kmt96Pwj+e6;U7|65sDkvDr}|F4W70QkV6ba1a**$W(6!bq;Z=50n~o533t^ zkDCg3_nC8GT9uzrGn_}u70W|>B0gl=J3Pt5&%6HoxHnGfwNz`%)m4Bhvk3*qhR3aq zr1)}m0C`xN1$)2-kpT|F$zGpeDB+uG1U;PT@SK18`>4LX0!Q0*f|Ej-QD7J5e=6I= zk8PS<0>HBI4E0KK5XkM%0zHHqLt7y5(mU|3PoNjB7yVlyhDjwv>_Sd;`8a%!uM)K5 z)-ZjdK7q8{gV2k)>za(?P%wQmK8cjv#n35<>zWMXzR-PIKF)8sXA#+7ciP1YPoWZC zLoo>0vcuONcTBt;4}2x58n@=b4W+6Whwn)TDIO>8Nd*X2d-}FkCni@BW_XIz10W43oi- zEn6EVF@aQ$a(9L$&9?+iG`@Or z@2~jbNl!s{8b6T!eu;KS-I$_T>qGrjU&E9jvE4nJY2!%_$H(KGG_=-iB8(mZFPyli zY`I_1i?j?&2;>6??y>lwN2qsh`j5HR4HVkuYwn-d4m(kG)1trF-Fs*Pr5Xilr6Odn zJ06htPzXI25M2!4R%D>PDZxI%m`^oXjDyCK$(cuhzv&{zP9k}I;V*N2k!MgU93^T; z=-<0~poUhBZ%`YigeBq3K9(hvp-D#>kjdZnZYzUHA;>DmSi8_f37?X2W@u|r5|G%r zn6|;u-B2f9tm=ib31U45iqvFJuSJLIh3Q@qg2wU%f1hH{2Sq9r8fkoLd6eUY$Q5{3 z*w4-|8S@o*p)Q_aBQeK zR6B&JmtStS7S{UPIGZW>gdT-H?io25Kl5GI4eOg&_v<7#l3s?ar*$$xQ^9n1f=s?A zO{6JhT)3~_cickt!Qi|`LGc^{(*&YmqM)yh%Tu6DVvTmqCcXgdh!7tn8-&}5!v~RM ziV{6>(}w~>m+w((ACn=!dq=kP^0fBqyG*S`x;>=P;aGV+4V+OwJLTwmU9{6}f*2oV z?vY8_=9;gf2d+_ZRvdL!l3pGF! z>B7p@ncT=SIvlaUm;7dHcv;GHR|4Eugrf=Ls}_k45O=f2dE6)=WmwJ6Z>+esCXAIX z04o*pVkVD+py}?oil8jnES$SY)J=K zPza(Ko}UMe0<;z6n!nmq50}Z#pFdDsTFTVVr^H2Nt@ja?cyyWz3SV~~7>5?Rd37~s znvV8McO69JZ!V!suPYBw!S=k-#KzftgtzY zuNeE-7RuHRehjV-RBR4cL{aiK5W;LM|9(`tIE&1?kZHS7={R-8(#ChZ2++yhL4AaI zXZ%W3dIN2^;2X)=_^JK&D-^zcn^VzA`ps;W+R#EX*(@jEm8_HpR&9Jbz{H`}e~ydgGDq`TWDdU}8++M5qvd zO@;1Cg5tf)1^hUz>BF1>MO*vM#y&ns%dRu8z(0zy@#JwAZ?+DAti=OTF9eK_1xk|E zighN==b73R+s<}9(R-)^$CNS!5I`qTeN6b>!L{ECPRw)_@5&yGqtu+ApSXbGR=nGL zGEc?VRUb0ZnU!WZgC}bOw#-!(Wibx4qQCg)=M?&9Tdbjor8f~GTD4n}N=TLZ-p$K` zO(V_1Y+9sc>xn>4oPr_)+7@0o)DR^KE1~8z&8!NF$ET>W7YP}091u2^pePSXo)+Io zEt76yYjh&}>4GN03{o`;ZOn}OS|arEgbdu8cupiU2p-)}Kug9W+nmn+Sc!ZmA0~42 z;yh%GIoqg2Jaan9hcD|UV?lOp|td9i45oZ{!xm!g;(1I$JwM5SMsn-MlIqjOqr zmuX|8MP7%Q@X3r1OVmlNnIC3#rB@K~_dE%S>#kM}LFWk-Z4aNbwB;^^S;%*9cUzp6 zdh3Fc(g48IxO1OKQg;()s=sDN*~@lR_YC}hqB%1S)|j`THHM&-MBeh+xH?B|D(lw0 zZ$hQI*Bwe6eG18*t64=`7N$S8yNA~Bc@E}6LQ8t}KtyXFX9Uk2FQjbL3@Zq(pB~y7 zKsxta?d^AO$eG^!pmO?B%A_Q)Gdsmt=$}k*M`g$IsOnK4^V(ZSV zXi_iIY!Y<6wLnut)+sMihj;MBDghALsl}E;i~=-@LO1vo=(dY;%!L!yehB}!WF;PV07JDw${Ayy5f01>jqU@r>r2=d30ECzb^@vq%q%My%4!X zFZr$yxroC_II{9}*8x(U1iIjtj+)F6Gtc8yZBa>~y2HRg%#3EE*~5(Ql$8g4pTl6f zya#uDbW<6ij9Rk!B>U4}&r56%_KIEvbg%$$D0ygJ_WqkBC^*(Z;~0c2jmhU_qQ(X{vDjlZaw@&{>oQbz-G?%egq{vZ zW3RwR2NfQQfmNmZpJSU#AicJ&v36@9`K6#FKTTvHv13njh+}!N3q^YJjR|0TGNr*( ze)nW}Hk!WGPWk;q#2y`2FK<<7)*p`#?B1fMgO;@@b~15Miq=@$R`5{xX~=NOfke*{m}v~TF96PNZ~240 zd6x7mR;ssWSj+sCUBq~f3QetfTAn8i+b@2`0U1B8>kwIWYf}tA`!NhjRBtUDFT9}~ z)wXY7J&Sn6VSMy)c>)Bp1SDc4Fa=+c<!<7WEy1Rlwq?|4 z46bgejg$6*I*+<>z5n}Jcp8WGP6WA4>)D;Q!o6~Sm^1#;Q@D-i##y!&sGUn>kiEY%q7Vk5HxfI7mx8nO%=}vI7vG5#dFEjY zOxw$v=8>_{Hh#ROBp5y9xpeascNI<{#KQaJ9J7(Jo(7;r@#^7FE-2 z|8{N5lV~6%gVJaBGv7(w&H7_(9tqLfZQZcpnKx7AQ#2}*`HCZNA8cTayz5%s`NA;D@&5Y>v1(aiN8 z|0D#B+jJ_f;eKM0wTrj$g-g|B$4b5bAjQ6dHi4un+5pJP|0P#*!g)%Kq6XR6;pyE|SyhRp+;j}y`w zSCp2y5lPC6ts6q+9>%uABXomf?O*Ohoc8!#P4mOlZyWkDM%r5hJv^$kUah0|HBop3naTecdbcxzSmEm06KRvQ*0iymgm88$PskA7H_Z2(sFd>a z*RKs{N9UtoRqsOVYslKE2=*^&bUiTyrCkA%8-au{&cOiB=a{ChV|B8=*yB1fOOAMgD%JTEiJU+OM;dPyi{Rq39|q_6xo^ebK#F4wf( zw=U*9Yi^z6;3CKcG<2TBkoE6-Q$JqqKKn;lZVeDj!JT}_X`72xApjnhJHyzbR-C6w zP1%Uub|&R;M{d6DQrdkU@-GQ{a~fwB@fMKn`Z0GgYN^HL+d(U9rK3@bh zlsE5NRos~wIV+`2vDa#pw%+h9Q6+jkHWYwp6?1VsY zcXtUM+}+*X-Q8i?edK$u{`z0lR(J2+Gk3bDwr01_oO`ds)r|aa*tz~_MMA3fRXK4l z7;0TUPp5*P4ESBRRG2))Z9Q_Z(mv1PUYXgZ!V)HI@KV!a$o6(v`MoUG^k~Y5J-0hL z>cC)~!}{3?M9^&9nzPFd`k)OSMeS7$mY!S+`HeH<%U}mdMjW6>W>pKYHQ6-OA!`&oJNoL&}sXM z)fZpOF1>Hoz%|$FgSG+>btAT|%i3|=t&Z0n3lwp8<**?mX$BpyRY_OKX8-TPt)>Wm z&g>ePL_&m->!Mj6_=TUYru#R@&p zsC+bWsp#5oNNyC$(~Swuj<5^9l#2;YbeBOJYm#SSlb(YASB<9|E3Ihbu%q$Fua<47 z!hy{O9}LSlDI|ST7>q@t5uW0v`#arZ0fba*!(fR$DbBA86?*Y8d>7;NnIh4Do)2G0 z(1Efhk(bc=P62qMpyuf6H7e8&b&~S0Cmc8;jPd<6l26_Pk)dRlQqy1&mj4GqK%01h z7@u$`cvJ>6Gp{AW&epyDC*_J`dzDrUz1xD>E#kBY=fN+vN#NFONrdrb6n!hcA;SAI zxV$YmxLnxyAlJAa2lr&;=3ebu#}Iq*SwZ@xwhZ51Fd_%!Hu*GfF9BBmSoRA5XHt$m zzWk(^41H}q7>2c>yzlUGxE?AWJ9;nbc+VQ3mk!>%!c8Xq!^O-d{)yXby?>T~E16Wy zaXae`_4poofO)v^2$QyBs34-s`dCCvRFn{$Qp{8oFR(Yn+J`Zs7#@DGu3p4dPmF%I zwa@_OT`RB@tOWD!P0>c09aIT|p}zR({1@p4LuaQj)2-S)hH{~{xHiv5>+NH;A-~`T z;)oW#e$hHU#{uyT%2n)6B6-J0%0KO~7zZN+1+$L1nb z&2~2tD0c#2cMErGwGK~AAi}!sd{XeT}Tg_(hsh+#el$fdP+!^*;h2{=6sdUAyE9zkjXfK}Om2U#sX zLd(*4$y2YZC=fCtQzjzPQ<}oMQ>svbVev1;K6xQ?SqO zkpl_yK8+-bu5SnBtZ~`6>|R<+naCeE&ofL;7|IA=j>AT6`J7JU4=Hr-?Wc}T7yx>C zo%lsd(x(Y4kNt!4jJSK51>ZfW;}8hO|D5Yoqwjt@=`LH4Q-kQQ(}CwRXI&@xi|>qr zE$)_OYS~~7Y>GCZQ}G2UCr|@pWKWEy5#1qbf0MKJ(iC=uM)?tNObdavJo$}LTnu* zd7@208|xn@x`x{F;Zf)hc{L|1pOYF(m!b9 zrQ&;WZXMyOnPQn4n?YE{iGQF6rsaDkMw$dDN6w51xOV-^DwFSR^y+FP|8{)PZlgMQ z=l`aZL1L0Q5v>6n4|fQwo7d#q`C69pDgMgJ>t7)5MH-&)xWCri>v#!A(YY~mo-rbl zDb=(zz%=})wpl(_DD|3_O2{6BH&^x`Um!-`W4#ev1yBT1N!qZ^_VBX%=x|z{E3<1li{nyi(o(G}bKOW%!x%Tq z-NFl1`qI}eBsGk@5U43>Nz$Aw3G+PvI*_v|eWNS$OIOyD)DZuI`~;ZoCZ{G@F7hN< zI+&KNCN(_1SUt>k1O)F9ht#3jwQXwyVm+Qs?nPz}B!h zejgqF{xYxcTr72yNeyu?XQfF?(t4q7FJF$@dEs=qSk!7cm_c5+(&=f8C<&<NwSqGRwcNS2fxLS`R z9IsQ_K0&vFuQ#>kP~5!_!enE}do66vmYg25UbH`ye1tZ4Kh?bJpulcHJWzlA5@Vy5 z(Y!HQH8nLY)mPUwZHNEldefe<_FflX=W^eb-pghHV!tNg3fnAO>;*mBT|Pb?7PVcd z-p=hUKdah!EE+du#?6L4jfRB_JkC@)&OVoYy(w@!8}i=ZTrBH>AF{c)Qqluw@!guI&o_^*WN5_SGHB> z6J@En5ek%M>VDm!(}Jiyw37VB{nTL8HN+5$R=2U1I)Dx^x=dt|a1M&(>yAk?5Sf&{ z&2~0pXn~f`#d??3GN^Do*H_|GnR7ADA9XJ)iv`Bl3BV2}yKIrfi_4a8p_Au(trMhY zL3{0ctO?Bx8HXZD5?NdVCAz#`Vmp}SdJlU!@41ajn?2*J-sevVqe_xPArpvu5%mq* z^@zRN&_3W}0WVnVP%4{^RwVkm1Rvmlv^?O)>$$HyMa09eJuYJteFw%O3hNL1L)BLk zh}0kT_o6G;2%k@r5|qO2q)s&GxfZ*&aKUcfYs5{to5R7DVAp}FGw|NTSzcLzr-NUY zeaKjY#}$J`8E{dc6ET_sNjQm(>RNXUHxs*U2NDBBW+AqlgVJ+qU>0bI8pfNt=hN4N zqqIH@r<0cc0blXcG6Y}(*yXzF?mO;vDlk(+o3?DL*%Khcjb<;qeRK)N^NUVM@4PH@ zFjN3R4qXNnGQW02yaOvM@7TLrDJ@Z61*wIk8DMHbtS+j0+T?F9K>kSyA3}6EbS^xA zDnoGS-=>I<@2m6n1r+{5$vi{PU$s0w#6u7F)L;t^M~=k3s{D(8*^h{m=BAANq`SXo z$ll_>sc|3sVN4GfibEb?h5Lm?P_a{*lN#w+ouq?o`Z&Zl}qAY_ji33 zy8yW}FK_&==>C|lo%&hED%5Ib1Umt!vtHso3!kpI$eoRcFKsY9jY8MC8oEsBEjgxn zeBL9~eTg2#hF5ZUatG=kpRW?u9J)~i9_F%EC+9$B~svu=2IPp z{1Ll1C|s)Tx25%mDNmUWkYV6gV;eI%m*|`kjEA{CYK`T+4Z_HnxA29`GWm=Pr&yLLaDhu)UKWd8NxxoNX{B4E(MqP*x9kw3cJ>Zs|tzte2! zRHM=1y2FS*Ck_udNiJm?aitdRN+wEbf^hV$tl~dB&r9pkN>S8KNZ@+Z>P=kl(LnEG z;`AELr^|Im8|^*0J+=>jtOz&37QOCgeQLhX6x&d?UO$Sg!aC3=Ck)a~PJAz6p3diw z&O@hO&$Sh1RxKqYEtTV|1~AK^T88Hzin+&EM{h>1(2)TdNeY*Q@lbQ)lMs2{s~8R< zU57Qvjg#V4*lNhZkM_kCF>aDre6QT~dc7(drW7X|L|6GFC+k@HRr3hfT+7l=O(qrW zC|j$v?xncQ#XK5$c+AC1rK2Z>BC!^I)r*ZUW9(o!gy^*=N_|^^DU2C&`|oo_c?xM@V#t+HR^6*z)8}Kx}KZwM}LHsoG@@ z_`2>s<~#mSxpll(NN@VVUverF)B*k6hl%SU;K8{c{D zy+591@%hq_c+!da)5gG>YDLQQ&k0O!>K<0*;F1RuScH|Eq$VgvU)bq8uZzGEp8Fow zu62&I);)!|^pXl8iFiLc*!h?4t+t5OZEqyAZcp;(e{8T%@ritEu@wBD=$>ggpza-C z_N4Pvj7CeyfVx)vzu+B-xb%L-99zrokmtO7*QwL9ypSQSU)eGpaz#IRy-S=W*x&k^ zM7B%u`6#+B%OIzE=UwQMw76pQ?EJZBGH{;*!dn8R$FP7}N zBt=aN^A*;Nt$veyerzDF$&)LpZ~ltzq)mZ&&MB7X@wy=N34`o>E2eDUnMX{FB}|eR zZl>L}Mkf0g`w>^$xP)PR`nLfs4h0OFvc{7a@@MpGDDE6pknjgR(r>d@fSz2MpDmB- zUZDqb9!OVwAoZ`k^|G}*i4z9<;oVNpPL&<`S7%$^_fTWLq_D2?JmaD|KBvm1!UY*? zwc>VgY|qZzV`h7qRB=1`zGO9#kE7WUep?Nvzcr<{j=5Ua(cU3 zp}Gi1s>~toa2msoP9YBkq6L84Fk#ma1CIAMNEh8r*Z3KFgbW{pUPI3@0gbYQjp#;g zxvuI(yLT2q$o~{w$D(tsxs`OX{2lRS+hlRIAfOe`mN~D6P44C(x04BNw{4e>lJ*kotU8)hxh7qwoiSo`=!9e1 zPceGDo=?Fvt0RPbM;&EH!-@d$dS1?d1R{eUO4G3#qE}K(M>Z~CFW380!|}eYGGuLD z`(m-0f>^xG)z*vgCGj15B3V+;((5^GM)QYKc{aMI!@igwgn2Ntv%#&b!`1stT1Bba z>d%(53WZ-;jM8w8##_Hc3CCMe{f?y52sV~olU{$f56oV}ALiegQ2qO=HhG}C4= zJ=MPRX1M}`Ga~kYhzqaXt%vk8t}(8$)V);4GXpWg`|H8CPe0_VrPPrBT9TRWQ6hAC(ae9}j+1^meN*lP#`@9q!AZPevrhD8hM|mZ z+lkN3FKchPC>p&#CDA}O$Dv$LHI%pHtu4woeDuX+646*|c4K7Fp<&J$VX!XU?IB5X zsXz>y$&WN94 z`Ct>($PKKjB0JE&ZoTto@2r}d(Vr)$J^sq41iWDaYB$Cu6=3go7+NcEOH-iKwkF+f zjovm*Z}Xf7P5iI59&c(tes8L#DJYnmuizsO@Y!<O#D-gIqT-&pH_i|r*bfgOBC(VEio!p-m zdt0LirL)L16I?`_ZMj{rN-;we2h|2;i`YDC(`1$>ukg8dJg;9|R>h5!ZMhg`?>mB2 z1D*PTmgje7L(8Ltn7h^Ldi{Oh^dkHDiRV*;yFYEyo~z5|MW1(E|JA%3j`0V_NmvPu zxzsGue%tjr9euZ)k*M8nhK2U;l+Zy?_5!HL4OxVit&u=lS zCSvm$YBvZQ1btk2Y{eOkuMu~J_P*?FZdO^HZSOTx-uxbm((r9|oyE$R(y$^wm3F=+!1uWJN9*lvW1ep;{!`qoLRL0`X-?!-oeC##eaC&%eNY@j& z=zCm1zhZDMW!hk$xRN!jS45{HaUui_u>C{Mz|7Ry+np`9bC??KTZy=vNl*DCR6fBF zT7bL}q*>$?@TOJCAXM&d&NE+v2?vz(<#M+!qr5;?%93LhpXnjZ2PhF{wr=u`*Q}J| z_-HnQGs3v{K&VKrxW-S|nD4`6+zg6(mWiEOFw9Fx7}X(@z6v}lJ*%iS3B+KoA79c3D{}9}OPpn!@Nvlj-TcoIzc}qi`XR zl&Rq|r{(udx{R~505#3N?^V}n@*5S?YL>U*l#DQO#Wrm5hmh=K#RW>NYnhBGZP;NF z_#s}A?2F08OP#E<$!eTAYjsCNxhnG|uv=8-fw@&YBdqeCo*4HB`+92nl$Gi9@5fCx%wDIbDL zrOw_+VCHxhB3ag#40d|IhBq_PTs*x#zi*!!_5k@jiC&JIdkn?)P7gAHC|K>Ye3h%( z0Aa}xd7^~82dYkD7d)P_$O!O9Jzq-x)RiP8lo^B%UrE_ts;eUR`Cp|+|G97IzR7t_ z-$2RAE^%1=q`*Fm%UiH;9lIx`8hp8BL|OXLLYC%%op{2%6koJw2k^H-V zeyP6~z!r{_$#)CPXqELoHVP62quupRho=aA0fLW;k%HKh2rqUTZ0xK!&!}>I-SG)l zdT6WWTx@OG79UZ=(f0WAZrw)9`fNGWWB(Y>uqSO|`Bxg~mTuf5)m=612c?7!)j6N3 zAypj(7%AYF(G~`&|=8vP5$2n zK7Kr79$Qup5*;0iFMeVL-2;Muv&zLu47zS7zWkNQ+a2pb&>H%iS7|hSno{Wg= zy0+T>*Ipk0=REmyYGFeBp+CHuZ0bA!C@WKgYCDO4NJrmu6mR$`ZsVZw zQB_>z&19!#pZ@xT9lxi_Bng6~b^__~C*=G5uh{*4ZlG7!5AWnyG|4~W>^V{nur|<< z-}OX8b~kYBSIy=uDs0Q7z`_|SI)8_hM{3MC#ZvF^iYzsClJF-WSVbITWzYlB-XYTY z3~Jmc0Iros@jxme@uTTo$g*VjSaP38q3G1A1Lv|q?8h%3h6B#(S7t*b=k6V9^C?t9 z9w2RP`)?IhPWK;R6L+bQDYG~ENN{OUD-STlU+oXDrC;k0Fa}4bu=KSV=3?1_s=IU| zk(Q4#(Y8uoqpx7YW(P*eI-fxEhnmJn?!3Bvz?L!XE1$7b$yaR}GA{l z!ukVhO;$_IOvnAW@VWSudr69R%XAm37A_?eoHP`SIr5On5Qet4L@E+64I8y1GxsYp zhexdy06NyV*ya3czSBB_x9@*Lo4P}z^(qgoSDLMcx+ zkU?qGc_+GUaE)Q0V$q6Pptx;3=|7{6)2lI22DqXAQ~b6|d{M#;h54uc;yW1=ZRwwq zo!Kw@hZP5A46Io^GM()+hS_1}CBTz1pTF=qAN!v*PP=eFAsmH;KGDea6@yL|YFKA; zN`ENEMqx9rMEhEGyQ)B4S?x3BKP-Z16GL}v%QtHFeLyWzG+yxEqA)>YngoYbmCI** zL+u#}ZUpatw?w4o@AK}*U~vfGk5AV$Xi~mKerFlB%-u9KArKM>1c~3q4||(CVEnV5 zihZbRlEX>y)4b%+Vm+r4%=&vO$CRVrvl}&*AI7%8pv=r)ESHDy5Bv3`EFq%!Llrg6 ziR$y$&2m5Z-!)>IM7CHK?x$LLbA|I)w?iiZB3Wmfj5$`~e0x*zS~4UN3G2w<(iq== z*gd`&vT&e*o?WtR0m4M9W5oM!T_bB2A9&jGF$rN^hx1L2A(!h4>td5ASC&+}2l$c= zW4CT=pII+Sy9`Qal-kV0wg?@WB$+jI4DHcfzq}Yhi>@PiOz?U#78zQf<>ZVou--fM zc83}>^ML*BuSgB84?mIlo}F1mkyOlD*P> zjrGoS6-Z5zK|m+BXzz0iU@uINC|%(xkE?E+RgvkR?}ALfLQ=CikjoBJv4~=!%9v8H zs{(yXipTjASY@h-@mWNYaSG3YCGFNdNN~!-x|82`>J}}Rn}bugQG0u51W@TRZe{_< z*}HbN$|V=RbLx7$n3t@!nZ_VAr`2}|Xg+T$=@gnX#oiXUuUJ6-iU~|aMJ^HX&lv8} zT65|yUvK#nVP^+taJlG__C7SKXmAlQ*gPtxxH{Yf)WrPVF5_&Qq+f~6YMvic;Tn~!c`9~-?H@EywM94 zM~Esnx)lX8jjV$I0`|#EbOQf*KrJX&zGb~hGL=h+TBgdaCJF~}JiC#Z^f0xIimUc@ zN0hkiDqovyBh*EAnCnt+%T{u6%6GzjhjF4DTsPS@*B|uxhbMXNQNgGD?w0S#(?~7y z+3JxM@F%=@iFKh7m)dWI-tj{yzEkQd9KHM*iEBLWsssXTch{9U+*J?Kok0Ho;9{W* z2E^9cHtC>gm{r;Akj6jH;t|_^AtzF%-Ibs|ifU0rdK0gAc;K1fsbQ?K-$x}*lwab# zwLy38jz5TaS!^De=`M>ZASd#PmlOg!=~tLH8%g$4DGwP|b=1A1EUPRXrjAb&ub)w= zS%5{;8#_zq)ZJONR$0QeRN2t=pec?U@EjijhmD65zL0mQ_7Rm+=hPifHZd1~ACAxA zjkl-dy5JEOp|Lqz7(Mq@fMIReh|nEeDyBx4Vm0) zY$k;yRO-#2!uD3#@P8zJ1!Mh@cr&OT%nTr?7z>(E|B-ov1s9x+MEMI#l#0_&OoUK{ zRZtXD;pe28PcUBQD-&~{VD>-5Z?Q6w2o)v}u=xZ(=1~r2X1}H``bi?BxchTZTOkRN zQkgQC|IaXD9Kuf$X~j?BM0F2SbJozQEe_aOpS7-{2wT$@`-4}zeF~}9x;_5cYm-d? zG0i)F4+)Br@RpzFwbz`6bulAggNVoW`S^4?Q?lgm5X4l(*2ya~VLOh`^$!D&kyxG< z6H&zkQbOdX$ERcyUH1;OjG`cpOj-^lK9p+&v7wz^212Rk@%etf_tw_Uyw+WD$kzyq zI;X4}c?Y|V+g(mF`O1IJE8pC-bS=E-PfifMBx0KO$uFLtTsLp8ON*&OkVC{e^@sEy z>a1-HpOsQ%W6I(Oc)8omN9|^zZ*tyQT}gU<8KJ9;PaO6;q0t$~TkTqS!`F?%c0DuO zhRH*rHYSX_XHxQL?wdx;M&LgtxP6ZQZM+ljQz|F-XeDRv%yY24#>sh2=8Crn5YwEE z+ZlG&h@7SNzWDcbt0ZwN!W%_h-`Pnn2RR+$=a-63!gKWl`d0o``LcyxxLyPE8O&um z)2a*-pSuNc?mQq9tL+=(Kh;>Ca@te21Y>gvc78cMyBL9x72Wd=Y+0OcFy0WAa?Lpy$Fm zadtT-nGKB8f1m7xaqKmUb1CNc+Hn}objy)ZDO@6J*dSTg_EsnSlZAM$8?ehsEKjEr zc3H@otKjm{tqc7-YNrnukRt25LzF_Jj{w>!%2NNBfhAN!FfqdKn}gMx6N9ZU8C-xmHQN$4MkO?ganbmN#^*?C0{qZZ- zakMh6jB=vz3KA*j`6D@}P53pU>$~k0+j*JTT0osiYwW5zkH-b_6M(9%Qfys*uA(FE zX6gDiLS!2sZ$&(o9Ea+o(NYX)I;Pnie&)|8^yN1!aBS5b{?A{sS3X}eC}Y=Wyd>&n zJb6WD83PR&h9lQg56B*i%hWy>$F3;&HI=_HPV`9X_E|k+7Z+_77BP0bq2IO3X)(V| zh?>%uXA6J^XxY(tvR-uji?I;G`!XFews4(!zsB_h@^nvpqPKZYS|^@Zr_^~X-@I)C zaMNtMa9&B<5Z6s56B%n>>Nc+`WHMt9M(fhAyia(ZZM7Am3_DB|$Z zBH_zi>uWu8eg(cPGgpmMWilK>3u9*z`(nBoC8MQ9 zP6Vj+S*al~F$4@Nl|+fKcfWiUJ1lo5iTjKgaANRnA4Z(Y2M}AAoX=EgpUf<>YXCwBHLX=n=c(;tWEO}$JrNF})4R!2YgD$oCNpnP$C9ZSbDk@-OqnON z%xo0Y;Z5kY>H(R@yb9Gzm+VSwyL?U+$z<$qrv0|aNmZ-Y+WMCK+S7R8=Yp@9#}6e8|Wa_%EIy-HB93p-MCNjiB{up|kjHU{~kb}(tsJcQ2Q=u8~VQBdAa2u>N|*r|W*vHWt^_m72yLCxMnxbxJm}pVk__6& z2cPylW5+iiS%(Q-5oE!U4SDNIsz2i6;+7Jm0skhl4XF8AN)m@F?(WJ{`0(P9g*^2XtMn(4b&{XydZ;n7PKhW5Gb3XYuNtqf?%|a<7j>a3+cX#$D z$!zt(6mzlT{A~{MfRO_|YTRf@4ZqSjI*I1R#zgdv5@tGS?-| zOrO}Ng1kO+<%Ld&79{?}Hb|ggr(!6I-~FWqb+ZXH1syBd+Ad53CccVy9;yIw8^v7L z*A9EaVLYLh4U7lze7zKFg44Q{rm>&zQO5LQw|k+3CUr^fqH5m4xBXilEg7cVMI6yB?T9lF8c-$m zjiyo{WC*#LF#W;0$ta2_jAtMW@EXhEuK>^FXPyZUWq-0NT;v#@N=}`~CL+Zft-1(3 z5}R7C7ztUzy)1*q<6Lx&oNZe$htqVGozaIm@u*tS>cA$);8=jl=R8Nb58J2>bISo- z9?VWFY1g(>;O0SzJ$TXqE$vl0(C+=oKs`nUo8xVHP8B#I=}T{lR9J#Sba{s7AxZ(4 ze`%wJyw{?cd9b#YQ2gskxch|&`Kb{uTenKEba-sl5Oqpz{1hlr4`na6F2rBwT+f-+ z%38lO`|_YqHx@V&5M<~bixVoHxqKbDfXL{~G^-(|FKHB?dlS`p9`0S~)bEj5p~~bJ zMPFC`lU3K0safDnmlOg9=ZBxK0_tJtN*{e;A}bu4QE#KqNu&)D=-6$4OmZvbdMgx4 zY*})}zB`fosG3OT8$_NFgSJD8#x^dmAkjOk%shFU_MS|{v$xv=W2uNW%=}POGPh%x zV~l|E?K@(CG@uocn^aW}Yw|GPR&Pr*sxsc1%sHG`+4ct~FNC);C2vJi(<9M}Ua!3Ve4DY;wb&51P_K&}=?>^J!K5Y^}t~AB59n7uu9NXB*HP|p{UZm_XuF%H?Ie{x$<4B=JM`_~!#97$(;2H>GWy|_ zFcBk1;hLTJFqwPhhhDk$Iig!^s>|=Hds@YrhG{90Oa&!###7a(Zx*}+%7yuZr@NWt ztCJh@o~4)@!?#}PvY!URrDQ=gt+z=s=-}LN$@gUq%S=BbbWO{~HVOs`Kx96Uat1~N zbG1T&HlS6>P%ClY%oU?`6ZO^3YhtxzkLR-l7HrrwYFMX{NT2TWA=8yj+v_T0~H;7e!{mxe01i-HxJ7> zSihRTuh3*^c;W@xHNEmvWC0&5!5jHW0uZ)lKLdg*LCnDIOw$CyhtFFNEa0nRIcs=% zJS-f2!KUEd<(N#b_RMSMM41uRUK#xetZ{QZ(v}P=w0uTIWZ~y%M?@npl2RlWf3tCM~61WyrY;Me9LwHh+CNx}u_xaA_?~s&V zvJ`m4nEha!Pot!ra8t+@MWQAkzldD#6LH?iBtfV1RS@vf;*!D}99l>7h(bUT%nwiB zdgWh3>G$dhaZEOU=Hpt!>p-1+)68Tb;IlFRaV>%0-AvC1lHAN6Hf?e>U+(Mekl@&V zw2U$0HMEK#q*O5=UM+_reAtasBi(w47K~0qh$>D%h@?5d0+sVEdYX!rg-m)Ey0J~I zPDWam;G$Zm|7hv^9oh2^xj$|(PT}?Vu$QHzpq^PxU3fpX!J{@_>GGo1CkM79fPTnN zK=hM?ck*iV#bISj-j})NgJhwjncMi^+9IIzGRo@Ker!9>AZ(ImM72us3vS2VKb2~c2zkHa3w?&IQ4#4XYROSQy;2zu)la+(m`ac{c%q<65 zBkG_ViJ_&C0u}+|h!OkQ#ek>K;D+3Wv^Qd7{97{i@5=X6a;NiGkC#<<0WK$1%zs@i zHscRvCm;N#T!z0KRNi{8g#>-E4AT{}mYv2v;tDmQY>BlHj9A&bwPm5_@%qf_lJkUM zAoGJze)1KYzHD=S-sKF6ekE-?XVb`9T)6Z>{o$;AY2%>Rp zbmJ3)c{W?p{2Kacj+RERbqk~X^h+aFQF0vikU!lbj-vDF@P)3$yVs>hm&?Z&(pLrz z9~<_Z=OWrZl*f#M82-?GNx0<_^7f5CyI`{fzZJA z9SoX~>@Eh6qOb3$awCQRSMwZ~I}d|dVJyI?tpFI0{u6QYen$wY3p}TR_)iuW_&*h- zg1&@s^z$Dxd%|B4y1?)Ikp83&`rj`8d93VaeiX{jpv@6Mr}L=K40y{oy}uDkB)7j2 zNc4U`OBnqVAI`l#`q4QQz*f#H<{r=LFsXC4sj#724zF+B!#h3Pd@KaO!L2FK#xfNS zvAtrRQl0Fu$wo``#$h{TyN2?GGRev6Ic=44#h44&)_02;&03x(?5Z{Se7_rtH05+o zhc(Y<5aXpneOq603*T140rh2(BBF8TutAf z3hIA3#aa>3yTxx9_^ScX>xYba&vzN|@)3u3%*~g%2gGyPk+wJvYG3!a47Ae}>gVry%fc z?o%qX%g8y;E^PPilMQM#!gKLlPRNN49x>WBykfyxMA<~cNPgqwPTQ#gJ*-at4$i@PpJhkJfE$CL?%Z8E@z1@lhMu)YV#V?nKA|G zJ;OXreR}75)&YnRdy|}RJteDZE7!bqu%f~{Mos=f34kNlgUUVhcjx4iMoZ>B&#SzE z&z`6rQre=={xx9QKc?WH_E>0)r*=Ol9NrAys9n38WTc{x5MXjFxJo&?)dMmbL47Ae zW)K{ffecqar}j03#Cis2&*faLFH?>IZ2PA=)$+1J7T| zF>|U=i4Q0`b96!W6gd-QkjP7gRNvOC3W~tkYHZqVNNIc1UWyz1@GTILGrB=!jMHmo=GJ`CrWlcTi*`@$7>2C<_3$Aa9K4StC1L zb*x4UKwJNWsVP$XN(c zduGaTyKxu3oOOEvN5}Pheo5OaKa^BcRB)H;H6*6r2Oz8VIoo`?+ZUF?-&L=C5bOj6EHXhX}H%|udrUddWH0gHQtquSRmBRXyE1TdCYtl L=i9h{!&mHX5t3ZKE+7+cs{{*lKLMv2ELF*d&c@d|&_iz4zwKJ!f|A+1wn0Ml9ry>>Gg zMzuzwoq9cmTyqtvtyL4f4`cPRrKUeYEz(6_R*BYZmPRr~yeNVU_Xs;Rb%^m0#Z;l8 zV%{-%of5&GC=V2zmCOP={Q3uIGJ8qzUW?wn_g2qf%Ht?^CHwhu^V!0@Rs`G<-u=F# z17`CFuhOiF9`qk*gUgjRfS0YOX+PWI0a?u-fw<%G(^0<#ag*QC=%-6vgSWBb88^_= zlmn3e(1Oz4THX7)6`BePpmes*2p!uRnLfkgt zczUfKb4f_T$@mc!w*_3KTms#ft}{6^A1_S}ax-V|7kj#upz9+*=&F-s`bqyBBh13A z2c#HrnyV87W@b}OO7{N{i-0m_{D^`tO(dVvoU2Gk&jeo@PBjsg8tUCN>`zp-d<^4m zZv>>2vs_XClz1>K#NP}%ngmQZ{WU<^*xsDg(CMs!|1s*A&JG+@FZeG{&v@uOv~NF2 zytn|U>ytB#`*_bqBddDSthBoC|0Z#r)d)yPXoJ@irx=31WkzCypJbOpOByNbH+GC3 z%KO$J9UmMaF+$2LB1rW^Ek3LzO)Xx|g~AC!gHA9$5<8kMoq}1?es;QZz^J-amI8*U zMjw+abDfl~+!41{I)3O-uK>C*G8U@6Rkp}{6q@=ep9Dp4EfHmDHpCtWXuU$rb4WPc z?~8|gO1)*-CUOMZ#OD%Yyd&F=VzD55Y{1p;ya==Vb2&gSU^{f>T^1Ic#`j(wIDqQ| zcJO@G4!+-JgsOV8qnD_JA^V;dN1GUlhrf$Te-AcnEov}cPO^}{Xwm16DA7sc&1^2v zG1A3MJ>3KSP{#_xa-hKt1o3$8bR$-{NqP?9tFn>`5 zSM@IS$;7!)xMIwZjmIlTUS#aZ0~2 zPx@|EnZ6i$iuo%u!Dd10!OECVqlP5PqL1prLctfRBuKk#>~nP$0N=0g`*?EE3G$K2 zmu)YD-hx-(!R1o*WOhD$&2r3>{&~)byAgq z0;@0^bpvH$0Nu%Pzj05U6KNQB8%>~1AqR%z-f?#=bbF_!F@0w?Ie^UK_Y5GP1% zRX`p|!fF#_jq1R&)r3~+L;9ZYP9Z>y@)>)Qc}iNP!n-M_WyWb&lU4rG(XeI&Ul8ruf;Z>Tq;1rh$a@<^f7Llf zr)O~5TApim+u*c3x8y;G^Y$%K@d>Nh=;mC7t)Yy$=fEBzg?jI<$y?bLf?N({{iJyA zrpBdHQF&36Pyv}!6FMBP0zJK}JiHzz8o5=jwt)yJW~v+1e?4;Lu3EkssXXV1WgW6w z;K{e@?eWN)un5#~$fcg$y~}-ketY-c_d_DeNBDCE-M;DHp}^Bs-M1mIgYuM5ZRz9+ z+XdU#Fro4b>#Sb5(59!95BFz)U-gvAr5n=O2|hRaI)v=jG07gB-LTcK1H0!F@ylto z*2M#$u;i0P#?#Mhg?Ft-#q)}OhpXq~fGJ1Bs41D}eELEK6+7*F3(;T&H%r08L=>@WByM-RdK@P>G=gmz zHIS>xzKD=8olKD;=e+!!DKie%XX-9zT)$cZf>=;?=0<$2(oW5S$Ask-u;>bi$C-T@ zi4_^Tf`1)*cUJTkLQR+sH6Y-HDkaCN*zoAE=L(cn;N>YXr<-gqWTdw z6Gj7jbc?)dThsOR00)qc`QW(;Or9p2R=M7-iEAPvIk|PehVNEk4EtLuo>|WEz^*8T zgrp#qlcBsm+CH9f1dl@09L06ru#xRM>H>I@G0Y+@zU!We(IQ`ahd^L}Vow7we%+&a z+n48X`>-)?(5_in{1Bb=oVUQ`>IR%U+Zt z65`F`iEcuz#O#1o95#@6QUOL)xJM)3My^QSppL&nknWaRnW)rVL4K~TYV{>%-bB6w z*S2~~&3E!})lm16#^VP!-B}YrX@;e~M5+D|d6RfkUvYyU*3@3%8+$r1pa+|!)g_Ww2yngOpnF7I0!0ABO zY}d$RTkM``Cw3Pxe^Nq+XwTS`s*%Dw6!?*uof$d7`GaR%b|p0>W$qX#6TKw7)zf_o z%qu>0oL#tlK-6k}czn8?W?|YkKKNM#YBCV|{19|JfOe8?|)LSj<8v_kK0sr3rH;#_ZV7WP$_d;&%7 za_l-^<6vW6%&qwS#|$gnl)rc3#E4pfrR9E}^t`QFd13q7wfq6Fuc*a;jvfVV&bV1% z4=({&*4-d{Zvhwldm(%*#V|%;w(6DH57i5hWwBCY4@T~LfH{wyc{_LbI=2^NTIrI| z)OGPV!2gc(NMu*cS!Y%@c3ePdox_*?Rtl+F4LTm4$^lJ5Wh8%$t01Z~N4RR-yY_^%VyowrLKQfxUd4;!vkNV}kqBbA8^wid2l@ zJWhe~sz@U`md?D}kJR0uPp)vk>e+%yH%^m9lB@v~d=_(I%qH5nsSvdYyBcH@Foin5 z8BbfkNz@Z>7t1iRUeGEqmIcmeijpUHi@S~}v3TMl1ibnrzn}N@xWxD-|LMam)rwG^ zRQ~Bsqd3ZVJ&njrpqj>}C)dp-Q1s4p4p@N<45VKT))Ahd&1(_2A}dPH>+#XL809A26|{L zAQRvSdiLWes4o3`-8Mwp^QPEY(IB)shNJkw9B;+%`mGT6I7DNimAEd>^8u&2U$AYq zGm~iyB(K?pwl;oMN{s^D$dp1V6eD4aRXSMdrhT^Wo$Nh?HH4V$22X=s)<5AiT~J~^(hOi=*h&i#ID zK22Kc#~gZe%sHSC8aHIy+m-S@>j}1tGVqh(H*c&l<%n{N9`&H@3{Ax7*i{9QJ7y4V z7{|WU?Quv%S^&>@8aM>gdhJ}=dV|<;Oi9S~w&jxg1Neb6*9GUMQhJkhW(*T42@FUi zNDT}<%bNW03=_l}u%?vfM)W{K@YzvsYMj6H5@=0EU1%MZjQz_^z39Zp-N+Gb68R<3 z>C@#of5V^SBJa))a$941N``WY6+9ejA--aobG#rX^KDSWL09VQN?XllNSn~O7lnnc zqWSc;Mebxb<10`OIdkv%_#^GY)vLf}&=Po`TZ`^CT3C+f6 zc6%a<3*{|M_%C~}IyI@ZVjAwjHqsr7@Lnr;f6Npm_*QjmQVV>>%aSFBRb44GgBzhNybQ__YP)cCIjL=!%YK`?omsdvWxxPM|>i7?w_O+0*Bz&)$YGm9nrV z#j``z?wJ0Xkkd_Pw6`a&B`*a^4dE0FTS*ej;eFwVuD+Je9k9?IwBojH>&CCgV#55I zYGCEv)@EpSp7gH&9;FcXh5lnjH|PCm1IG*`GYp&B^LC}`z|?(JS=)InIwB=>_UvsJ z=ks2w)YE#?9ot~=QHzz`!e>7Dx`ngi7Uz3C|NhwHc048l{mRv~^t>Si>@p6b_ zgi3!}DCp1qd1N>Zf7)a-UMqy4G$xo3FO8EAFGe9^25h>~$fP;tX(F4I_{$~&pxhdA zlK0ZOfSfpbwP6PSfRG6KXK0Cn3)S7gXJtvV0@*K1S*SQVjgH>L(eF`jwUFqly<=g2 zluWW~YijcI+ge&m?WJ6pIK*nK9MVv9Hzw7$^?28t zLehbNo)cvZGMZ%KE%TrB$?aL&s0rbW^`hRAfWdiaykA_YU0!h+!yTnn4adn>~q(Q0y4dhoE+Mth7W(ZYr2r%=3sZYTBG)8qSlCQ zY;%lutEXS+f0T=S6$JARYqt7g*RtUO?%J3iq5pSZVXXD#%|G`E43Sq^Uit12I>r5Q z-u@56l$qCpJ>&kWhrdUcp9t1L5t}~_bzAyZcZmw3oTG=>GG4|Q%Rz${wR#d+Fu+dc z+qDCZ+RG9cCH4uyS0?1xvXnlwC1+1@yPJXzKpgt+6}mm&kNm`Ia^LteeBH}ZT)+d> z>@m6w7J~d_ACmmUW>gonAH;t^I}^9I=7pHMUr5e1$%^Wy_5`zwv$~xvzDbWv9&QFvzvrzX) z?-<3WEipWy?<1(>A-#{8+TES`z6`CP)c6kaK5%uXoBDcR;wxtcmpqn)Nh`BSll2=} z=e4&H49VM2jE8+c@cjp*ovUH6eB)%G6+Hg$UP*863fPBxE5as7)tb#WAc>4vPw9IB zLAbIjIa*|n2nEWh3QAoZXW<;7v4M>w0neb|O!R|exL+#X`8MjSC5KK2*@J|6qm9_v zQIq9J=xPheoV`Rn+Nd&8UHRumnS@0!?L6sb2<;5%lR)_i)bm%ePv|oA@!7Zq)X~u* z6uB_0@9}5g^>^{D0Sq0efS-DxEjNWeX(kf<1EggZSsyI?IWxsbAYv`*Yorjqw)8ZZ zwyN|r#F~P%AUPssg`+)7AZLpxM@bGpEEIc!ryb%is?qbH&HSaASt^kW%-^ayF-YnN zd#FXSl>=m@q)S1IsC_y_6}2LjR0JEo{|=SIdiC=t zV-T}|I1z#V=TQ}rG=R8Z8Hou;{Lk*s*@4}Zpeppg8LSVl@I_>ywB?}O+&r^MHAHO1 zm3_j_gOU+cB%$uTJiAB_f^11|m=j}y)GT?08kOTEf*7y|3j~nGyw9C*$I&P>u?INAj&xkS&CMAF_C;fa5if;r7s&d^0YTX$qJ(cmxaMdeW~AJB-&P~xv*MTzC2Dc0ik^gpAc z>gI-2s&%c?>D)&$zKi&MdnZG)Ytpx&-x9p5=u!u4nwkqfI{!4iRJLt%x#VFxYk26UGjMI=;!HJsp?*&wT8k?_CtM2N@HUV zJ3HQ?AWnR-Sw-frA4M66rN4A-b!p;dQ?@)yv_=9=rF)!N;W9G^;P*nh`^;AHALstJjM= zOMFk`ZxSdC8jWv;zLJ`*|0Hd}IkEtza6b(4N&MBgt)^OpcpTC6zZYOiw*?8duYr}w zGdB#GnzqP|FVILe&`52pRW~j#mTYD`P%+>drP+>&MH#~Ou@j0%vt#LW|E7)=j*9p~ zN195HoBGKz+w`W6|LEy!9&;YuMu|)=OQh!&y zq;a(#&tN&LFuyxBm>4884W$GI))19-QGQPNjdgw zx6_(P2ON)~hxXBe4`T!6m#U9I$yc#(Kf@lkeuF|6;xcFTwKzr|-Ye90(uibqoN4~I ztxs{9zuq?trft?!9|gD9qvUA)AYkUthQ2l4jZG0Rns1K=5ru)IM1W(yFG2JR=&nfe zjt65u-o*PjL}Mia8CoUrgC<~sEW-SzAn(Yi38lGJ$Cy4L7&FxYT&4n@dlM#) z#FQ<~34HFwINx4~y173%l{%fIl9c^My4yXreO~X^mMIX=X!q(INna`qJ+$4uI} z-GUs6DKFjOC5?^w-yFpb-o^!#UN1AWKD2jloQ;_C2aA66Uq7Fo+A{#p3+-Yp)q2f+ zO|LzwVMS9B6vmDtPXswYRCKFQYvDuC=xFb$fI7}Pet@=&Z zNdeAf?z+F@gP79$*&pr9t@l_CnX>hc#q(w!?>JLzj;w?GOPo%?r7#ZDTvO-XIcGr*j&KM zzzD>A+dk=(4r_Pc{Ol5|Q`?ebao)sG*O}?0Fx))uG3gM>nSMJ3D^IqdYusXqMS^M$ z*At3E7rZ6mPXXz3cGF4T?=vCOzT=H1pJsIa`W@Bux`iRS!l266{JAFJQ80z zE1M-^Q!k*$D&ULb9|(VQ;J-cGP(_dUo$f6=w&yZ;3m(w9ecq?FkiR|Otwy<;hx#_t zp~Mo@G7WUSmzdIiHGpmmsyZFQqG1*bAuTTcLG*%NpZ^( zCh5}qHE(5&f+6!*-OrG4K2SWhBzhgQT|ylePj86l6=9;Jq{Ic9(~Nw`FDnR^SHUB> z9MdRdkGhiB0&`(&8@*adg_pwi`O{9BBxfsx&oHnT@_3V&F%uhq0as?KfUqW~7spx; zKNVN4Aa#ha>BZ^2Jw-cTWKk@d!17ocZJcd&yWjs?Jdy@xdw6TmG4XuS{bDbjGmL1# zZG=6=v`zFTYVH+J=7_psCAO0kFT#C1cTTIW`8{Akt#W~@S)Kc9X!Glbp4IU~84 zFB(%>njM4w(um!oZKWxiMphET$gE5WE$QCFv4Y*WQa-;z$eF9~{U?t z?XDPK677r7M`?0t48_FIH(!df_KEJ>~_ zxm0yhYf>D9S%iPC0jA5lMpl2qFOq+)=fhX1?Q7*np)ISUHDRr`Mc59JBvUU}E~EMs zf-qG);9$beu|aH*P{ovg&eaCd5|L)q0h?@OL5Epg**!wTdEQ#WrY)PXwm=&Vg;wsP zgx8Wn9EGl)@xq~#PX}tz#a&9h9Ry-c)fD7m%0!Q?D+bYJ@bmdZ$&NSMqaNe@Z^x_0 zGR(+*9DMN_%B`2afir1XE-+>>OeKxy$7lECh239UdpIYxXTA7wd0o8-w0;Xjr65KJ zUt%LbFhCqnSlR~;E+@2VrCDj+qXInCp7P3&8lt;~ke|S#3}i(zsH_xZegg4LamWw7 ztAqN@s+CUA$~kIqkYuP@He)+8m|^fblD>TqsS1js>Ef4r8!Ufl<2~gy*aowxXsUB$ zHG3f=Mld;;RmXepWVse#s7es!Yem@Y3`NI#)!eFR6iBbrieR8xIpdENxsVD*;7F@w%xdmNCKR&kFZkDB*_S1Z3l%t!yRmD2R*ORY-*M z{NeVVnZcBQ4I_A6+%}|)Tuo-q%bk4f`8H0+_g8KD?+q=Vr*Liw2k|f z;9oB4pQ-~F@ZarJU#7^p-YIEG;ecD=957TviL6?rRb4>7D$|ye-8+pQh%xB9 zeEUV_j-nt!=+&<2`q8PG1!~Yoo9#YL*RT7y7aO+98urS_z0EzvqW7Px1mu@<5aTyb z_++?)oE=sgsF~hhx5L=njdlOE+tj>aJaIHRjaN8pvWezk9e)B+%Xzbu(Y?@4zA6B4$X7GJ< z=%0T?j&SDR-vE>DVLN~l28`e1>nb^(Z-qV{`w;?ps$bx8K>#;}IRx4&@-<=qDns9C3C5P`bk4!9b`|R!>(TWwQfgKoRQjJ* zMrK!Xn(%e+{T2Y3;w^b3Ua^dKyk{!j+=7&7b3vr9lx^=t0Qqyrvjeu=PFh3`C@S69 z-?usaS;l{6`;xiOKP*DPAP}jCOj~mJmB_2#C^2-UDt6wI|8*v;$lEz}A2|%Hf1jatO?>CdC)`nu^(a=*}v zXWY`46!IlufX+oHR+NK7)wz_|oHK`K-T|@{_RH`brd5}t7^R~`U#1~5jc__;SW3#_ zx?Z=#Mr@70WM1E}(ed68YVX%yvqoZ847ZPup1**D-4eF;Tx?VSYLcVe8NuZrxeUP~ zfrCnR67=*vO0m)GqBH}gg)M=_=*Eh;u!wMZzpbYbC7hNm1^0_9z~e6 zESCc@0Te{ok0lbnPQ?av@<2>{@KJJ{q@M%U8|s+eY=+|NW(vIC^A8@X)i0tGeCBM}HJ^0)PcDhDs*tTSwS+(575t*J2XJoe@P2g4v&{JT4I$pzk78GrM7d+e z9|+88$rTCks}dp=A>~7x*`fHoWI$H#64rssC*hkrJa~HZ3o6OfmBQJYOdXQ04t*n= z*{2PhXAJ44%@IYxgem1-6pK0zx_nE1t1#yOcYbs z3`ie2wt{_!SY19rS!xptOxKFB^Y>(iauW~*3j(d1WY;%HF~f$$bCLhKPm3Ct7wOsF zr~QR-qy8fIJ#Pi``}41a<%?ltu1RYf6e)tBgm)sM1jUAflZ? z3c4;H6!?KlEG<1e%gx07a=-G2wF(JNGJr2ATq6bcR|?ndl^YrDshsW(C+UzuCa(^p zPy;QQ`ju{x$2r;WyF;Rzb|!ub>uG__*?}hdKqL)h?IfBUwt4 z{ef(HlOM%ELNoGb3wJ%^N?+ECQjW5mKSEm9=E`~5I4e&nBn#a^l&*79qXckCl54{} z%|Us7OGD|7dw% zD#2ZN#tbcf(*39rF~}_|x$cxvZz!`6sU@8(0K;atvpkG^dlu`y%N1aY^?49pX-c`$ zVZ2O-4^m)1q(;2Ew}X0KAObQC!vvf6shgmq*0whZV*$omdmC%S7YwZ9+wF^>fh-H(@C2i2qT0^ zH2h~jzC(OPlq_oJA-Z#8(=GDv3W>S!)OCuavZj4sHaaP$t^^UfhyiTF4i7I(cZ&C^ zFi~#@-P#hA2Z738do}fS)O65ks_%S61Lr>l>kc2S+7R&dvkg;A5_TPa-{=TRnAY+% zi4MBUTiA2-zq80yB`kD7?`6U-eE!-29fpTWIkynX2!60Cg`J&)+l ze+KW|R6V0d#)Lh9`~_IRT0}F^(qE@yDlyX1<}Z*49}&Jr@+4SJ>b0?8U;Mq#(Q)Kn z6ZdZSJaO-H+{h*T51%gL88y(4C~R0d zCY6hu->a`v9T?!?Dk;;wq=^~w_+=5PkoR}<-*UhjR4d(&GD84^?M}QYL}T46lp)t6VrlPLLA& z$J#R}UD)O3FA!od{r&J*Z@^yZjf|L;vARAGZ8Z5g9w?)Z8qI0qWOpgn`^Hx+gJaP@ zz;EE3Po!m43T3aUhm&9CkZ|UHhS0*+M=%ryd5ImCK7XKSR*9~1zZwLpG!m#^0Lhj_ zWm0)$owYRcrB8kPjU1~0KZNY|GjOP#;4)*Tz1vp|3!w|F<2%vhwEB%k1AB9S8TVs| zWBQ_9BOoGxtl!RzC<9+ibDS@KbJTdH>CC>fHeCN`{m>t`jcNokae72-2q@tAzD-U) zWU7R&eIgS{|N7N>%>U+%ASK?M$AYyl+QWibFoE4$r_97|0F;h>qJOXlz-GrQ2x5C5 zn2&(8vGK#TXzZ{B?aco_Ecgj1xMF<3-iJ@}Uqln?QJ1@IXuBDCwLMXaF9jv`GK5k7 zd4OOJuEz-|yJk*`6}{Psf>uYt&(HX62S16A(s9<8id8|pRu5}nQ|A49oY)t<{bV;; z;HkoOiCpPnM-EFp&UY=i)<8`F!4##t?CU))rO#DLY{dxfS}+r!Ch!gTn-!znI~sC+ zB+nkK3EfgjvDCbW>LL;L1V->Q@Dj4ZZC}jm-R-7Z{n=?{?xa+qoqoX9&H+)is(p_5 z6T4|?1Xwj+h_sFHvLUVs`$dfHdLZB+*Ui2DW1gNRR4-iVMQgPltDEmLc6$pZQZzCqBQ8Npl`P0QF z+A$NGW2Et^;)|x{(pPnL)doXgDq~4K3cD&FCf-K1tDs}2F0E-O`G!nf0LfWCEyhB#1~@IGS-&bD(Hu0m6-Q|Y;ALemR;0IN~!mKQy|RE zSgK$=3M2e@^Sl8{plNeq3iXOwIYMZ9i1l~Gff+(}Lr;gul|k#JS&@N_Hk@>tyZZ@O zE{!{heWKqai66M-?TNlbZ}X*$`UVDQr^o4OZAJFLExcB_&~g@r7V| zO-lTt3|^A7|HT#v!S_N23pK+151Xgb+#@Eypv|CKF;kE`Jth@j{{(?>FAXOJ5#m7G z#n&KNVB+P+_;~t9r00nDQ;~dpYkVoJ;s3I4e?JGkXLj*_kPwn{6sA){{O?WZTGY?? z8D_+R|MIJlEr{)J3iyv^@*_^kE7bfYvskM%a0Jx)2U}M{d=m1Jj%T4;P|g>so4iDO zUm~*Y-KEOqbt3&Gcm29CdKc0m*KQufKSzNt9>@FDH~*s&*8efwea`k~;G3jXzo*}e z-y_d;-+3^DQa|&@5Z(q&liI?bu1lZl+`sDn7Xt&#uU{frzf`ropS*#}`~RmOV4e(= z=;aIN5@dloi$#}sw)YG=#O|531I~-PLtj1&s6TImsQr#=d)9H9HD7D8!6EjJi!R?{ z9$)R>!Jex5|6ROKvJr$s%FZEWRrrCKg@fnOlcwCnl0&jbgu>M}oNl&vB{0vRa|}ZT zQ}dn1?bqken*4#|BizYMN(G&0$sYahN{Go1;Sx2OHSVVC)&$~AWgFr(RIAK0@Lvzx zk52~LUu3|`-JN@t4JenxtMg1FWQ;f{-04~~Nm-QcwM7wo6^yw(gjI#ciu{RadUXfP zuGS!i=HR!#*7dqAsGFClwE-{)`H;;pC-3d(YR$c5cglG3<@24lDS4jsG=quyf7*{_ z*@S5akza>)9$OMv&vg$mChk3zH@=v+*|!%2gcVR#B?#Q|qC=>2fJn`Kn>1Zs^J97b}vkE+9d6MoJ-|Qs%9>XM>Ky1@QK|x2CY@@AigQ%QO%2jjc;XwNC+K$Fz}~8 zf&Vje&xm}-@x70L%6OCAIJI{y-BxwMT{a;AH4Q>!M@Y&CM5Wa>tN}IPv@NWB(9RxBO={{?!MD zTZFTRdxlEK7Q8VtYrB!q>cb163sUoQzLm~;h;oH`i%y8CiULLx03GPlv&F&6Z>bwl z&ZE|rgctSismWLF$LG!3gPeqp&mLMAm(J4@>6uB{x8@IpYpE7oW~rvH4Y?ETR5nJ- zQt3V8oiq)Cw`G$-lReP6@cwL`-i~IDvX0CqQo~1VNg-^EEXaZcmSyMpCt%+QZ*?Gg zN<=UPAgq(UPw$LUK8d(E)eGw+wWT-n>}*-XvxJ!|L)s>@43=_@FFaO*VwyZ9(`lc|Ai!75EZLJ5`$w`T(wVQ zLzumy$j1y{(^8VxWgVJXE^V6Um1kFlU518kqx^^#hHPA(t?08MZ$ds|1MZZViH#rp zOHo~%z5(0qiS9!O2CZU8NOl0*X151WXMiY1i~oT~X`>l30M=5W&2~;lyo`&*`y==( ztx0kQ;fi+|F#GG;%n@ zE(P<3Z^?6EXD%jLW~3$Z_M2yf!z~Q$sP6W5z&Ol(qJ|l1(q;%?9iGcri1r4IYaph) zyQ&xB&c2OC)^tIOJK?{5ld=$t^ZqcFnZgJY6Yd%|d>24Mc8>n$yy%aju5XfDaS+Wm zy{|wzsAI${gh-~5>poA85`FOIxQ)kC)J5PgVYHxFrSeNiw)7k1`5fUrR24h2c0Ic6 zESc`7wIO(v^&PI|*CtoyYk5oVyoQ>TJ$6+ib^M_kqERTKI&)dmPwLdScsT*AL&M&o zY#EDb3_9@Qt`VU=X>`SS!@JBXi5{H_NxwKKfyBe`{Fbo0K~k$VFiRW)?Xob{CH5wd z`uSGqCiSUS9k2Fd3f7iChs&e$%@ZZ0$VYnF=a{D?d#s8AZ;R1Eex>mHjqk+IbwD|)!(2OGuHnjom!q~;e&T4e3&yg;U z3a}Qk#rf<)Y750zhJQbMEhk*0o#%y}e9v${u4PQ<*;3}Rdqz|YEnP<4SrzN%>geQ9 z*Lx_I#GP7Es?Wy^IB{p2s3pSF<>|{V&M#^Or)Q!r*oAS#I~i~+Tk2JbG@2Ms`l@{X z9W!qgf5~>Zl`fw??}6zJX4Y$jb{Q0EkWtX~GKPnn(R1)6DuZ&C0&~E*XfFvWy_P zNJV0STh0|*|0DiKgIdfX;ny+=Hm;0^4oqEId<~AA*h9J!ex*~8f<~3it`P{tb&2YK z4y1f5QOeX6CWP1y)4B}wuz&C2%UhH>UgNC5Idn*j>UkelH8^A9=B8;Bg6D>~0*-^< z6oQ$#LngqA)2-`zOucqXQU2@5{yHpwuv*Z_KZc5#woWObMG0N`bAI_&Uz#6gmY%_# zrlzZ!nwt7jV^fn_Ri)KH2EjP1cnX$XMd@dO6>*dMd2(IvMXAbtf+c32d3ue8x`IN^ z_0{I?W(fq}j68r6|1@5|ZN9RaPGh6M`=DIk&n_>}_of)-x0qZ|ef8an7-{;s<-r(- zdPR_tc|Jbbz!e)T67E*!9!H%HhwJQ>`-MaaW^yiE!k%SsCJSE$dfq*1A5b*8#{DK4yc;8MM zRdu`!Zb#eE>#hqL1z6BWEDhhrf9pU{V`~{cvts$A8=Zo;y5$Gp&1?OI2Fn);U z1gK<57;aVua`?r;U{bgYC^Ch3_#pYDJY@`$ylI9c!(^(_;mHgrlcsAVZdMlz^L_dL?z>`8*WLg0`|{=C?7ymL~gDYnf|W0V#J*g}j$Xw8nT=F=K-qvksM z1+WjxS4lPk91Abx=D=dO&pHh6aK@VxR;Hp(ZV^V&1K|X;$MA-87`=5`>O@4+HZLA{ zdeSqm9^{5-Op-PqAxv=&*?it&k`JFeKnSw7l7E-QgYu9x z!AkrA*{&(NJMG7GY^oLC#5h_ZBl8HHyA!P?H|5Nji)H^F+9PDe@hVcDe_dlOYQlJk z>brCxH(PI+r2cVw?FycI(0&{V0T4%Kl!dy_?WXOwA6LB5suL-35o_%(C?Cj`S0F5k z=O?e1Z}O|r(yFJZ#{MkN+-*O$7MJCi_!DjalW=P3sv~7{q}Be=q&$c6O9gBNgH%JH zefLiV+1{~mSSqsNlrI?53OUrlCoGEOf%r6Y=3N5#nkO0{Y+TuQD_XtJKY+-Cq8f4T zmbOq{1D%tqsbCA@KnVVOU)q!}ki|o0_9>P>%sd8U;y}U`!Tau%I;Lw*TtkI--37yw zFY7{RvxEqC{`W47L;`171~mrGXtv5t;F0oDMjth~QrB>!K1Oza^PXQZSD=}DAZYkI8LMJq&0Zwc zLY*5{>Vf9(Rf}rVdI_*x|FIDb&&6Xr6>P!k0x4lKUr}+Th`)EFQ4*c6#xMoGBkXlU zud!SF$8e+p?`X}SM+eu}|BKRi@{C>qQ0O`E4?u&trX9GseytTeg<5(+g-TI(UgSrH z%Xj*9OE&7e;Je&xY2IQ-7a%{S8;g^wmp7#f{#iVJIF~dGWBD+W%Rg{@}p=QbgOF>YLo^UYXni-CacqMLV$xdQ~u)h0px&kk3dJy z0O)^m3(dRQG)O5jxL)h62fz9Wi)MmmQO$N#VQ9Vb1Wm!vwmEDuS+&%8 zQLpaU@>%hEx;*q@j2cw3vUCIJ{0SmxZRG0+h(r>(%rcDjJ%})$&{a4F<)8o(*^LH; zXjVDoW-bt8AZ!*qbwU}J$Pu7L#wzm`1$Q;PL;U-Y@-ll<@#b}hh31=3a3jotw{Yd} z{t3t|n}u`jWz?~x;N78OW=9}$Y{0{hL2gY!!n$`ToeYEGW&R3HlvY*?a$fI>H~3#4 z4=^92Doau}fXHn>E^!DYNf7>e?o-h9%YV1Sh%Tf6hB89Z8VIuZ;$u=!92D^KV305a z_RnynL1N^pBu8yC!B#m?oR{oX`0ipnvqwXNh7wSJOWVw5yHRKJk?sge1kf>;z{LkK zD3GpDF++J}kP6QsiGaV2C){Gdx#@xNlneh*A%*7t`Pow2$FMG|l@x=YRiQ!>4ser% z^i9n%Lyw+^T1(ST%9F;}F@@uy>eG5sSet^D%8^lKSUkqO`GblZ1lQFwa;?FQpseVs zES&VoHLyeGktJ?IJXcfzxm%#+b!iR^$2aK=aRs`Kz26Fh+A`^LbaBhvs*A8F-nzkktWta@qei*ERNW{U9J{_n}Cq=VD#oX!lKpvrGt`l9Qc+ zP>#rM;@_=Uu*%=?2x`*0XdE!8T!xEqd%xBG6esbvDhJ|L`GS!5P6B?^`^_&?YQ02w zbtXK3mA7aOH80o#AGXu=SPp zDzIgSoe22xq&1eL`tiC*3o0g+f*VnLB4@x@+;w$l!3PNKzRL#Wvg8)IA-tL6d)APUCxcR<`QDtWVig8XW>~1_o z-%h=59eash>Hfq966tpmlOHKSqJy4nSKLDkF=i`8uT)d6f`#~hSbGboIGV0q6n6_w zAP@)|ELd=Nch}&--Jyd^u%N-+Ex}!a26uOYyZg+U8YBkp<&py zAKBGxs53}JAz9p(ooB1KRpB$GIe{S!&djU@-^_ev&9>zL@m3Rl9~EjTJ9aSB+{h^l5ZCPuAAZmyoMH*lzI*_?Im(8m8@bwih zuc~*HPiXC)a?B&U6yZcKr*);YK7D+YKf7Z&egJnrTF!G8G7M+8;XYM z3G|$N482_j5&8y>Kn%w1Fw6Y$G->a&mv$8M;10CpQnQjU!C=)yj(|wU&YTV z;t3I~`>M17wHte0W-i6-(qfrl`!&f7uzg83GTt|e^&pgP=_GhbE;tIG_L&leSf$rV z6RK4R6G-4Y+>b#AQ)uLlZJzt@edfZMUZ}5d=cZ?-)`<)&uScs!5e!@=w)(#6MH+1kf3|1EJPIBAlnYjbk`LFLActrAPt`r#Z%SW--oKUhMM1{u z->>P%x6p#HRd2QkldQV9pZL&W8G!Kq{aJB0&^{0_cJ%sY z7`e-W5G+nA6EMF*fhgd-A*cxFxE8>t4*%Eh>?r0g;RoN7--vx34=#kcYBFNjnS2B7 z#h`>CJSeVW;|y(Xwfe(819iO0>#?>8D%gxkXalT;JY8B?wubu#$x-SPCMOKFa5VJ* zlyHbN7BERoffn%EQaVp)=k4!>g9XJA)TQ%Lva5rfFbBDsrG~nTRz5b6*AyGK>r~lD z-z|`FS+b3FTqJ1b_lZ*C**LX}e};;0ha}6K-G7$n zfOAS_wwbKrdZ(+)EHKcodYsXYOzqgD#E!w5H2Y1MBV>8FBOgVPO;^+K!9L6~74?-{ zNct=FBScV6Fg!E?!9F|zCC2~6{&&OeLC@&7mG9PxHm4MX!h@2$5do7MWe<>GCYZVH z9$XG$dw#{y=G1|)xd8oF{51!E`b~)Y-NVneXGoPAPi7_!rt?UAf=r5-1fhK4R z1M6RfZr*WG1M$zO(IuwG0VX^Pb?aZn-59uJ2JGPbMOf7kEyTmVnNc1itZ%-e*72zt++KX?e zu5@R)&!?^izotH$Ej{-%#DYt_@>I3(B9Y}AxMQrEFuOS*%Xg%M!S-J0F%|G!yzuW! z1z4lZ&%a~m25<9kUqufj=zl_0{QLiC3|3&U+QvU?GvN-D zX(uF=PVo9qQc+1e7{4Ji!su7B1d?6_9~Pg2RXZ-nUUT$4dc3&Pay&+R-4pAEAay;u z<{{WY;{^kp@p^`QxMA;xd%rjy8G`3H2aK(rjhs6cV#%Ucv5U=d32UJ-sDys2NAmrVKI}Gb){l1I^cS0Y+aw1Sa{;R!Bt(jD&=rlmZ^Uf=0k>fM# zoV=!>x@Jc!L)`=IbSRv@*%EoqhyjOjwdnU7Tg^yk1b2}W6QxqK66#}Ss)f?0->Acw`S*9u-7`W`B_e_Cf_|3Z3Azqt~CuR`MBgE?6>fXlD z9DRv-Pn#NoYAO4v4;AgI42?^SrrA*Jjrcq>LPtkb!pAk%EUn7^z(qH%^Og7d%AKOh zI5Xo+JS5I~ocf7^1#gD|c>?u2cC~wz($d`UR`31HW!1zu6?N`yq_k!th-xE|uT~Q| zx`!|{p;xhpjqDhCXfBX+puL&vl|AUhPCP);^_~uz#w1b)^uLxm96m_8QvGNe;h4Uk zRI#un<-0_}1=dS;WlLO$Xc?KD%fxCJT8I_Ao)A@Dku=axPz*&EDV3`;*v#M@_;br~ zHDHV8#EIk_6$lpR3PJbm$>93K;;Gv%(tX1ds;7oam>?ekHEiJww_`AUMV$G7#|T#( z_H6Mi=)h3)Vs9O)n~FVJ6VCK+03sc%s4cezfXP(T55XzQbKq`Cm@BPpgn;R={G(-^ zPnJ_nmGEINQ1?@i1fpznC8sWe{X~4BXvlh{)+ltPTwJHNG<<2>AGv%S5UtMk3$TV# zg8^cysNZQitJT>?3AaM&#^cTcWcQP++X)(<*wT&=O{{<3{(~EWxOPqza81Bo0iGM6 zhhqIFsI+v)mah<;Vf@I4uLL(N{)r!dpq01BvtZ}|u6sI_P7t%E!Irz8o131C>Ww>IQ zW|*XR*n$AH%^La3)0*hZxx#zRPJ<=6OBacmFDJo;Ym0m%d2)VS*36?*5hh!n4F8b_ z|IC~(qMZ9-h|4;+PFANcQ63% z+Q#igV}j$_!EeSQGiDH&gorou?2OApP^5KY9kmr1tu1GfC*|x+SWe zW~1GMPDk0RpUa6FtShyvh)kZ5sB4uDD_3G~r&g2gbQoIYJu0O;Ady19HpqdjqGTBb zEFr6R(!4LtFc;rw+CNIQ@qN*|L=-qL;Ekh;o)Tu?ZJu_WN@QM!-zGKF&n;VKkJT}w z$Ax1eh(<;CW*`(8%3*)MURfJ#<-(j;89KS&lC4JCZlDvrV&Z#S((Glc{$P5L=W@f* zxj%t{Y!U@V?8oK0SP(0 zthRONwQt+>cz$YaEpI`ExLz;D-NwU)c$q{wh~~KZ+hhJ;B~gx?6=Ncw`tiZp5hX>w z(YE1)w{uG9C)sYE^tIs`YE}Gy2M0zeyrQ_9VjCj54|1A zGrG?1kc*Q(1JkOnD&e#&CrxcaW|?p%2d+d@DZ542Bp5}@$cKc9>Pbe_7$HQ?!rmI1 z`>PR`i(930li|QxENxcm2jf@cCUO4OdQh%Fb%1wg2kIs}5lD+H+mBQAx$m&YL0-g} zxNmR$wpf!lPeg89X1Q`G*nBFOPNb0K4m_+7()wEGNRYb3kSQ1ilx^ zMWQczCmjC_P{47s^zs1EWhqtsgh)soKE|&Zp20PpH2D^~i}!9V04|;grdfOR;x1{k zz4_9=JlluXbZAAx7v_HS(?YxmL6KUYt^uTj@;!Duz7ta3(=c}EfrK6w?zE-P0G9-|=e zzU%NV2>d>A8JzV9E>anM1~-8_)W)8{@V8)h&Fw7^xYX(dY_E~*1_nxSX**TNl2!Iu zm2~uWG{Vib-8g~tt2@km9DF+?FvCFSMWb+rI@Infq|`|*68cycR$AaxB9hORL<9>?n;JsukP0W` z@-=OLNKz!~k=)^sgSC9QSFf8>RkD2 zwfx;w%W?xRQ`wjYOTg79?Xdd`*Qi>hFdb)ZUm9`t4*xcYCY0QfrijV7y!% zZ5v4Vk#x3_!jAsKH_P^9U4zGHd~u8Kny@>I&vl% z|6qn{8I!uAnTCq^7oYXT3mdl>ppEgOh)sLW@xk?}5n6b-&gF%S?aCulaC2DUmgPFk zXHt`|for^1>W6g0VrW~3$%qan;)d)@TOs*^8vg%F;Q#1R^OqfmB>NA=#N5%jNHAST zismK!yw?>;zYCMQwE#;1g`wGaGtUV{4*@87XbB&kRKNE z6^0R+86N#jNcI)U8~B$a>x6H{B@p`I{C|TK)LNj6MLoL?HF_WBSjS-)+p<3(Pb_-{ zB{~=eeFoa=2Jt-|R}yNiP}g^r>;mLy8UI2mE)CS$*InN=vNMpPuSGZzzGLm(!<@kL zpLVvLT^mMk!QTpkuOcfRT z8Ve2t+ZSoa_1U2CK!fI&DAkTMI4DfUUoq=ytSAJ~L3vu=;6$$Osbf#n4Go)cY2flq zOD|>oTzDK6pqRsCUx>WY+@%h6f)TqV=I!KV2xKls{bSspb4=3F=VG`8UT8 zSwQzOMw-W?in#bJlyQ*BM2glBiiy%e@?d3YVrjk?_|$(nHYmsgHuSvxWjn}Adpg#% zHefrJk@+Y*>h8=mT=J7{(3AY}$C2kk$I!u8YSMMXus2(S`RL#ipn8^Mr2mcUE-mts zZD(UJ=%Wi766GObELEnPXL1KUKg`{;ptI0Bx%K<`7`^UP+PI{6TdAq?wNlsSI&+*d)*QF7h6RU(G_`J= zI6neVlx~Z~V=Xxufss`-U7Dxa#X_DmQ;bHFTyZsj%t|eva;6e2RPirJC>=sXq5Gd?}(!k&$uJ=oMiR{bl(UgBnjO zsWI}|d`N+)JvEoA(7`z;Lo-p1oQlP2nV8`%yP$lR%=PVuZvb(y&ec!cXSSrUq6wJ+ zWM2+LdEuxLFk$T8HcL3Jd@ZdNzHVm}D(qHjWoqhnvwi5tpX;p78wzk{l3g!S?NsWu z*Rd;Yn^UhJPD>=M|yx5=(#WAU|KRUK)@`5KNMWviVwNNep^erXZ%!iSBvQZKd*kPH6^$J7?+Q z_x$%5x&(E-I~TnfHvY7YM~z>0F)T}8?xo8r1>yzcXZHXDyM))DIKrkr)Vxjb>+_H6 zVC-*^vK7)OdNHBGFR9w&lB-?1OIxRH`%N8c--JEyBDrK;qLgT5^TkJm{6Y&SIPr@J zR`gL1{=jZJ8D4cOXM}>+#=c ziw%*}WrytpVl^aj-xlrs`exk*Pw`#Pe-(>|FLa=l=Cz-aU%&H(RM~64-0m?Ny)R_5y6n>ZETQRq}_*p?mc;i zC@lv-ClvQnC)V(c1ez&QIawj0GAyD0SSBO zNOSdA*j0#%g3TzwmmEH)Ck5y@mu~2JU?8qPF@ih?xxrEu#{hs0>Y_ zfG*1T*Qjs_eWqA)?+d;Z9N*(geTdN2euYLya-^Z5N*-KdXXc8O?+~V|Egy(mm|~KU zFmR+0id&dgotAgpkA^k;4*5bz35oMK4NhQ^jdUfdfcPH6GJWx<&X0b#j9mX8k=aX6 z6}c;$yqPZR+l8Z)im~==Po$V5l%KK>PUdaHVR?c2TJ z()aD0q}}6Xo740rSANBvP$#?OG3`s}PewK86T3=t9>m#Af3ZW=r|=Fk7aegvrw1I* z+4_6?wTqTEt^UloQEctE!|!&<=y;uhiEaWj8jdjWamm>o97hSd+<5w7fm7j9Ij}q< z%=IxtQqRl-X95v~9DA1M{9CSB==h)W-f$MmA?ecyi22mZFK-7w=GP(U%>JZ3_1AL; zC`oaC_2L*f>iHzigAj%j?}B#MUk5quiE~3cquD3S?y#?SM;l+uS>#37J5_r13bvO0 z=oReMe>sr+-F91h6Ak^qYwO+rNoz71TIc2Or+)L0fsY?f3A2kf_6W1v{!DknS3(PfK2YC zy}*kAQLeDLco2paCs;Zkec#+-t&_qmi>^;iiFSH`nGuJ25S9@~YLzm*gk$*f&iSnH z%_`Fbs4Ysz`+hMn%T@@y{f24-z?vaThIvH3O+8X7_g%sp!bo6*X;EZyS#c@AA(0u1 zf15a>2EmIYM(V!_t^WLsEeW20V-XDhGr|Ur-++-l%mSw=wb;vK`;6<;2mR;#Pinl} zM#WXw*4gs1VSh18>vp-$U8258Sg;Q2$dC|xK$9|Eg)>jrtf0#P;g+n}%`mMSs)9{CK>tgeSCQ_2`lmVqKwc7jsVi5{#8ku;3cX_zs7$wf=X?L zc(1j~?tH}RegJxhRW9HMO^;2T|Chi~2TF}M3062O;x}PPb@sCRE=f^7oV@})I|Ml| z;?lYVQ-G6hxik%@JAH*mPBNdNUfzgh169AGC%GoAeT~8{eB}tEA=RLZW)BTM$`f2e zY|XNz;LRE(4dr=-ppYW98A0Uow!n>23|fJ09TF6ZmuyiWun6JW%d-3zd6v2OcXluO z>~jQAV;!S-{c?zCQMl2GH#TYHL_v_PTwzP0E-|9B-#af)3dIY~{XV_?bGr8XRMhTc_D?c5Sy*`xOauG) zFS4B^gw&_t->rhnzh5BPSl~|$mip7T{kt!31u{>^03$lUe&7G6Q|ou9Af$!;{`2on zAYJ#RtL8PZ)4}MN27TzPo=C;QQJf+N~>6u-^e#Fh=rU9sOM-&STky{)gY>H$+i) z$fZ5~_1@ZUV`%Cbu-%xx1@kaoK!O~;+SkjtR|U1@ z%a<9vxEG}|Cx6=7q-2@F$-F@BeQnU(-G<2F<|nUo?%_iC7oV;|93Rjo#Lt5^=0tma zQhHkA^1wv94FUrJkKlN(6EL&D_A~gq>ZwjMXSh<-j{;P$AUzl=3RC8TuvH3^EOSN| zL_D|1!6BkaB!Yr!8`+YYNMo_!BSzcEAD_cW)rZXQ`p)+H-jlYhXsWUda?NveC?|5J z)^5BwxD3CqVCiaa~oH;)@?$Tr&R<Z*_Hf8&b_7H#zf&O5;uLAtqmEKZ(5BkS4>5#0$o(* z52~F(FLjGAPfQ?NZM)v#YN7T8Q)`qZ%sdCIqvQisSt5(cqU&n=ojIFi0^= zKIa>uh97JA3k;WhS;QdGZ3<;P!h&Hb$7;j-IFw4`9`3}fT&dGmgXdjfek zy%iR7{G~p0Bi4=Z!Ch1O!Tb8p5Z4>u6@844hU(!IJojwvFQKIlZQD6iOG5m@APW{N zGWfY(0K;jh%>8e*IL8_#T4N}nY(_&$_y$EIXj7FJq2&n=ZaWCy!@lOX@hzUq?m*P$ z2|cf03Y$pM8zTf6ndAiw)rxS0=rg+GJWHwuL zTY<;bsB<8Dq6mt>L#+j4z2m;^Xo?jfwarg8l0hDiDVGqE+OZ2GAVI=Ej64>c@Hi!* z{|ctnPZG6h0eBT9%4y`KYN1$&!Dt3*4cmiSuV2N)R}PWUiV9{A>?|KZjdC=YPl-B9`+V?%){7bH)HCp zlE-IL8w$T<(_q|9vwx7yQ}i7*SJYmF@T~23FxhD?L`_NFJiXWo?F23%Z|j2&pg09y zM3<^uH+2H**;xz^vIvOw-yudiky_FFHK*`1%<(UsT-?7!V};N+(NaV-4sWBSk{ly< zF`NGQiyGf#v_kwvMVp7@-Xy>vR|?iHyJY%sf@Ae-g$62x(p@s?%(Ok$1&qd_v!^qf zFFEwFVj(rRrj%bkXaq8`?%pTa*}7)7h$;g>eAdj*F>ybXo>BH#)snxcYr0omhm@mzTuOjN~IeWPda>5Zx?C_o73=wCzuF4=} zY|!k9xya(DC6qaNK+*h~iF!)DH)PAeA^mrYV*ccpffZ@&E`N^3ui3j_uM$6&)mF|~ zl1dx?rAUlROctdDNxpjPN_#_^JGKRej{y_#febZ=Ag5K}WUm5#1MuloHHggaf{#co z#_=Wc^mq@vjyHSdbOngg)V$ z*wm0%h-DC%B$_m@`A76x2sMKEPbC__fqY=HF>wDSnB_m()UZF=Z|$n@@n2`^j!+21 zctBkLuMv#!cWEAREg1g)W*5tTJ~jE5K->95lN~7y*+a3>8(@3Hz5-=c{4?!WSkkQO z_d#n7w6og%cpuF0Dm{0Kn4qT_vk?QX!t&wR^&>u3c&E4UWy^b?upxKq-YI`7eWr#U zRWdZv-bdGTN1a%7=DKWo;@5DQ9CT)xpr~KeC}tZQ#>nz>V#mZ_npzQFna?yWbdU2qeKpqek6E?*NFd_kFm?wcOcJ7sd2VpJlKpLb zgWxIVzl#~O3}9p^6V5RDj`FVT`(q9wq9YZ0BE)Czyr3rC(H26!)qO z?>i`vtiLLb(dY*_OFuZ}YnGdvh)demez*0t{fv9ZE-cGFOWx*GpsA}~UN3$wyH?I#YvVerz3h$S<YnFcVMm0Z)Q>Zo2YKm(=I% z=K2cbtv<^Du{;I}F6#4#6i|{@>-UhJybR+MjW6QgnDC>@THg0jSccb^^s>+H3r?*m zPto5VzAj_e@YeBN;vxDzuWlN_JBs~UW1>-5g2evZzN{onU6`fcYH^czhELuB{YzM1 z=`~CYCAx|sFri$R`9rQY_@i}qpnR^hhO+Om#Iccly%f*v+;mw09aBIGs4v3HQw*a% zB9F07opn_W_wK=rWAQ&0G$d)DJZvWM*H*HC?fJt)gqET0Rw}J$Xn}ic1+|8LO=11_ z!qiq&xWAViwBP2%t0CrZH}L2}P=N-(I2Y=>EqL@AC}Mr1HO$)Kt}o={uMs6fqp|AstUEg)G z;gO^3V2;Hc$_Xsd0=6jq3(2?+;B>s!EpaUu{PVQ4(GjD+D%rkgVDTdKZ;`{4bV&An zPDZ87kFx%U8os~UQdP)a1sN*;;&Qbe1$yyE1wa5Q+yX`9+K&U$$#ZZ;u5OQb)t(Hi zNc+H53u-%W7c)W@P|>#s&c8FFQP6be6v}$|{e*m!D2b~@;9<>r&Ex8Cm*_h*Hr%tj zfBsDgcZ6OKL26f_PhYRz^280c)89^46Jg4W+uNMa1OTgP~X`HRg9`V_2tn0U8stKv27AZ z%c&tI)mb%Cne_Drk{WI?bzwxbS$5B~gFtKr> z6a`w2)=5s)IS?dxCjhSDl}=MaR*4d@hn|~|WIYPKk={1v<%(>!j>yRB7-w{NItbyVzocpfkPN6J(P8CpTFe02%h7 z>XwcCe&F>?mtzYyWA%{-O0Q1u4-Nht(y!e?&h#v}Z|U$VsmzW`-_A>`_WOR>@1M6) zyc+(5jq>rPE`~F78YTFSP?aUhcjZB8kC1AXB5wzF zRg}Gkrv0%uSu-w}%m2yi*}kVZt)PF`n3{Q+MRXl|qdXqx7OQK}M*opaSNzKefS&&2 z!YUEIZ$ra>EMxkdOu!XdD!C)zwS0uo?fa!-%8@d;zP}ux9<#K-79|lut|jZMrLQlv z{luevXJx2$;aOT?4QycPMCtdCH@IdA8tf_26>KBDcVy_hQUQ{Q&`F`iu{!3E39TnSoDTj zfaVwJ$iky8qu?U#Wauq)>UR6l>DKK}(D#c|%g<{xPLb2f*>A6trJ!%L&(h%iRp>g4 zp=(~}sZnP_Z?MUIgsc0GD0~K~d*e?1Q(h1do3z4kHo%IE63o+1PJC&K9XW3N>yu=( zv=SVPR4ghfB=y&_9lPv&GuBFWPexBfIe?gPZ!TP{MNJy8f|{a+XB{3YjP)LwBA(cp z2Rb}n!x#oP42isVEd%r4(UQh@4$yL=JJ$EYrzO)4SBGFUhG?gbpq2n%&d;sC&87`RM>a7keB zuCQv1Qd7%5DhU^*z)z`nxfEwljRX*t8X>5S6Pb4bavUveIRT^WsOBXs=E}F`@kaHF zP{Sc8JWG^&A#aSyNZALkTKt=vjK(g^rDQMXLaZa}&_t}V1^jeQ!F2eH^8lLy{}_>umlA%Ik?x#tX_95DKh1-r1N2QD6c-uWC74|>PeCPxSo0tC z+}I*`e#kpX_mlReC!1ei%v7GXXfH~(z2;04NhxSFbiOAgB|PyiWbpFFZEWJAM}}+36$T5&$P# z1Ro7JVgo4w*UOzJT24ZwgTr+a#P-Jghmmbzl;>4>JYo9ZhB>CVcpyegk`~w0ZIZ67 z`QlkFYeu^lD=u$LqM2j%)It?Aw!=Qy_T1!k#%+C-pVPQtDGKBGK862Qp)F*DiX^WR z(B139hZ@tc;H6r^J#_5K`&cWlEW68gugS`#Wqsm<&!uXJG%)>v5q1l%R;cZ2K|V|Q zZkS8eEu^mj5f&FwS2rW$>#zCMmqk+|qzpc>?O?f+u)cR_HK9rgcn>y!urH_s0>AhW zU;kt3ta(HeXZ{5}hV_VBkO}-QoMa0^7v~nZ(w;fS;om5>x?RGIg=`fe=?l)f;_m?2 zDSS0t6b89f!*+&C^FaCRc2mBBGByV9L1E$i1%X+)^D6CTKzzuSZW#qJ5{&TW3+;MQ~*HCxw#8R`VSvkfZpp`G~} z#=)0n^b)Kref|Xe!4A6_odzjjMK@x}G(`^5z2scKrHQ9H`Mos?@9?n6;A)(!(LnJ1 z*%}O3GU844G=`=i@%rPtSVlN-_xhaPy!Mj;Ql%$WJF@ABi|iWTLm7T5wk5B$FBo zHvxH7O3GS#ewH9gW0s)qoyK7-qfhH-dCSCxe;rAb!^9bdx!$q$hMdNZ>ZwK>;Gp|@qZ9h0RJ6S@qZ9h z0RJ6S@!tRy1kk_K#TN8N>Pt2daDgRmY?$v(W{F^*?AA#=@&<^&&m76Re zLyX$FesC71@F;=wL_at!^j>$C_e{GFoR$P;tGWn14Bp=Yk90o;GIc)zpXEEYYE#4C z&$&h7dq`2wP(!`LyiRt$zL|`ieE9b4Y#G~btJ9daK7~l-2pvR(md=Pk3p`vw)y<9v zUJ-p#6zplj3Umwq8d*~&`s`jw;_>aDpK2I7Joib5Y@ckrA6yjC^{;LJk>ZAPrRB#b zi!enh`gt&z@6YZ$(P!J|U_MY593Kb(6N9TBv+$3L{ZZ7WG{oceygx}$jQ_3+@DF** zB?G^hzplkJ4g=pWDYZjFqq02E&XbO|W6^4=DfgPpx zsB?m0JOox!E}p`N3noD|UeAXfT01_>hX%$vF#fwwBoG$n8PErQ3|b@X^ds^yG*`!a zx4DG`f>gd@94E6x;cIs20ToEnzef zpWGuzO@cZINy_uaocE>(J5B?Sa;ZYLZX1+kN+b@KoIAHp{;}44^(7J~BA8wFbA1AU z(zAbjx{&J0JP*WswOm@VU-xS6O3NgmQ?n&z`u3w?SyU!@qQBE2Lh~$(ubmU)MkB#^ z=Y7n6lkd1LXC~`sRVzFH-J<7X6w}BIBX(}%(Z(lQ^^@2Kjj8(K>csG{0ldJ1*m*Dh z?>|%xT7k=>ZUaVrU)4j-^QBBeCYV_$WOjeUj8*O?*e9=nsz#esEZ9XmwO57|g-BNe zINKD|i!(>TVjR7q?kV$cM+{Vx7@52YK7&(h zBLtDC;AZW)+}GEK3>t}X79Mtph*!A{sO#Zw3d3(Gp@S!(dhtTVyk3WQ+lccgMKmjs zAm)5`_o5222_QT+#tr`RYQ%YOjAk}Mnw&O<-t6hJcmEq>wGHYF!`tqj0xwU!>%FmJ zzD(d@B$s|=P_zt3YyDUWL7)z0u+6}70pHT>(-wGP`gdi`S4Fae9`Y{<{*%8tGmqyp zAf%dUq!`%$wdXz2HsT#^E`~oyNUi9$&$79)k)7pe#X~ zHGBt#!aG>+|DddwMB|jbGKRK(<@}3dbe{wCkOsNI-xRpfX=1iN>nVEDkoRGR0Ng?W zI-O)rUb)+7X_LiF(YrO880nw!JFfzB?o=cTJWNf7cATF}8m3=&FC+^-uJ2gL2!Oio z*w*~EH5o%&+r0+qx7Ny#m&fY>%h?Fv`Gy_u4UP1qJY=G<(Y)~BX+No>wj87XP)?yQ_EDNQA#!}2SWclp;h{z+Vn={O+@$ntK zxIWIfxaJ25cbtlKF1Y+m6h_wtxd>e=1_7k z3FDH#QqiPKhi5~e!g(=NEQpna2|9q)WUEB~M)tv=uv6z{b+>vyv>JYijHp0p5B5H{ zkqo8hN3owXP?ZR(RZU0;2K!@Gw%t>cTzmtFuqI7VeuvSd~P=U6t` zj5(hw%KLqi2#0@ppp0qVY6BItcP;i0_le>+!+=O_7b#-_|3obw_f4_C(-Z?rc5T`| zkwm0T9c{t`s{_q6h)tJnSL?@0Eh5pCkCFiLPy7f>%^j#vCD!qC*p318h*zL=3z0+M zUC$E@;)&qHdix;FV(Q|WHh(3~Gbt(Wv6`(Vwy|IRw2=4raJ`UV+I!FQK2BiQx}VaQ;dM)OzfbbGAhX#a+?>?!{ZrXgssj10fImmL$A&DhU=bg98! z&)Z}FzF!kJa@BE~%8n(9PnU59ad#QGjww>~sy(Q;-2{PKuD>m*_9wbkC)o}4RNRtW zhSrsla+N;J)5VYRvb*Z}{D_5W_|-iGW^tOV!r9i0Y1`m!uPOCe-QWDOTH0s8ad3YP z=z^N6?froBIZ1=}4vGi!T8746gN#LHqpMeEvg)^jk2TJjx>P%b(Vwr$#+(2?MJnsH z6&0Q>-nF-FPqm<;FVp8ZYAtEm_12!i-GlpK0H9NUQ7C@iX<|>pPUZT9P&|{N zrpr@ODBb?{q=KvLlrwS8SIq!4$Y|V_a)Fm#BK)%eldnRJY<^sdYBL5f*IcyBnz6hLyC{ zx*qHiw3DhRfprSvz*4X%=7>1ML#E64L1OZvCEM^NBtJJ zLfdgg7p)$0~N&D(K45V#7G%nX>_ZiAn0?MWSn1sjwv=9gHF>1-N?I%7@OpQc7rt9|+c)j5Hy z_@_taHma%Rm%vgLsc77~I1UDQeMPpz?I@X5VD9{yH%T+6>z#ad7go;F3==C#>a>V~ zyk@p4{Oaplr5K?t1iWi{5n*^|X<>|cOpnQisR`}e9RY_7z!)Px=Ib%>oVZK9 zlLcy9Tf2Pyux$ghnGeNj%GP1ate|g~=VdlspWR5tJU`$lwsSZhS`(NyTXOXOK+sK! zGVQNfsNs}LZ}??rwn}`M=W+XQUl!G7i)KvU*J_@P`en%BPP&aP!BV#dmZj<20zgrM1pxai> zo(6dKZ)8BTClSAVUp$sijYKhu|ZXl!sKPf z=iIG&vDHudaFGls`9AY{GCy0bP?f3l9^fIr6?}7J5BRKhn3L9-{_MTwZ{11{VCGBZ z8DZj>Js?vU^m|}dEN{KqF3Ob@^a4g(N{l&FeY@+SRwM~YE0uhz}E)^qn5@sjmJZP94=_abML zD#{3K?2u=0*|KIpd=Q>pe$$uLCJ8TAS4+8BDR9cm{p2eNuX&3L5aW(d(G&2*$$UCQ zv?Pze7NgKy&8hvywl!h$1Rd=8Odn`sr>*P;GV8`H<=^e%Wz(;1?%)U6jBX{{=|8H? za2~X)f8Rdvrf)UA5khuHKE`l-n(NOv7h4CmclCURIt9smO(HdI%A_B}?i4MaT(_dP z+TCJ+jY*K^$z{YV*9yg(6$nyHW7M$05I``|aDx6t5qj+d1E#xHVu_J%T?gKBap! z7q~CLui5#5F@4{Z4oigUvS3K(b`K3z@jTuKYWiGezX8>q_lA&B%c{{olS^McZx~{f zJuF3U6_&-vBdV#H5Iz2Vo;yZnr92mwOcS3A!^QPx{OUrx~;D+adD#i_pZdsy!J z%oelac3E!0M(VjeDMv7J^L2;X@xx`1b;RLmJZm%s@cBpM-1(@r4yRko8Ls9~Mw=KO zmCy|^dubS8^v3kNVZVl;?lbRF`!AKLxN=`lYFJpl#GE>2vNiQ(_Whr|^zCQKF&eF2 z3r$?M*<88LNA%YCtvaQdPtta?wZxf=%a8VgS3zghp$59jmmN!rqoXbpsrkFNV_?u# zDKoztuq?kK+3qkEB=|hXSa_*Fxe_j$`HF;=t_}1^5K888vp42lU{QB7w{i*87!b{> zdJSc8TRb^Fsw!8_r!LU^^n42Gx0BUt+H7a`qjS>P$UpV!RVcR5tuoNj9OZsE=S2u* zY&jmETSK+&0M!`0+iPGvT=N+XJk+@^T+j%2iU9*LC7BMP_g%_u4E#nb3|PrQU$M43K!5v`hO8-1Oc7M8|m@3;bG+`U+iL`8Q9s z8$~VBVb&MM}xd80)5?rPkOJc>WWt#aK39-sQ0#~rpr zB|mp)U)vY}*xn5rc*w(dAi#A1l*0Wu_+jr=-%6aGWN^Dqx}JMiT4b%UT`L8A4)+wfLfdD&K1P@7Vjg=)p9CH$#q9bmWV# zon>%p4O&NPg%@1hWN_*XZi5Y(qcvh~1Oq7v<+kE;o=}X@dT~5xEg@_~F_mBSLl*5U zg8nz8Ig^t3Ii%zX<(s0qveXXAC4wxK?f+EFv>^`lm^?_RjpM zb)2>=B6UZigE0%lG_c-Ikp?CkH|!AlVHUJ&gvaW{e0hlzn-(Jk;O8bAhwRWx^f}uz z&yX%h1wWi0>58VGPH}(K5>3Cf{Lo*0rS-Ag9nqVw*kV3^(fj~es5rhGDxR?0K25hJ zc5D+(U$y!mxv2_q0A_tN z^(!8gIzpQ>Df~MC)5>eA#DMvX78sz4T zY1uh(wPt3ba@HzoYm}G5gR=7Wz6v!=)YE6@3YLC7TZ!&C{nB=T#DIy_TX?epzn)vq z`P`tqN%A~0!*~9()kL@!vO+rFJw@NhsBW8l;hv>n`7y!1#ph3y9(%xUJ*j}3+zc+; zW5fCN4FLeoXO%myjefG=5xKgW8~x^$ch%t}I)4#ZpO+C=_JMg!U!Z*7x#p(5f=QG5 ztSMrJUqbL-&9V9H-(~zI#eHEB@pdRqA`8W?hY*eIV#@n^ng|TeXGN{JHk0;IStBjQ+K32DE~DxE2V{OajLPZ9*8kdbc}B?C5h=Ww$mM9`@KTaO({DI zCC`u@*qA>xiY_7}i|Ia&XuLCp=v)eNsY6PSc~2dR)Il;h^#%g0|GM+hyf&hnDk);N zj^{`>mHqy;9M6Tr12_KtmwtRS+Y21W5}(QH$=c5XUD}O8XaJKoHpHoi&PDQNP<#QiBsZ}Ts(G?lJd>k zNWA!Or`FIrayuG3f;rm~9Mq&7q+EMZ{orCCu_LaPuHVdpss1Il@W$tiEqq4hnB-NW z9ZzkrdeEDEHD;&(5sRnnX0Iif0Y(eKZsQj|qAy`rwkhfDJi>lGrx_BVwWnL?7HOza z4lB+x88d289_+PNrGfH)UOzKz9IGXAZ_>W!di?Pzd}it>=9DfkN0ec51SSxRBwf-U zCQ|!VTGCXEKZ`o>9DWm>r;7J(piP>T|CgkVJzVR`eOci9e+(Yr|5JDhYg-Ne(`-?k zoPl1iRtrz_pmyhWRyMReC;QkmN@=aN8?LF$cUTt%lbZXJ8ZT3m1no{uPK3;N>i9Y9 zZJv{oDV$CjE@mgy&zZ*O*0!3{DFvpm!z0KEwl`y~bmRE1*%{XTb!zfo^SpWFIdTLT z9p)C`oNI97nA;oHP2+TOdG@-D4ySDmFUvlgbkFF}q{i!K^Dr$*=Wuv=@i~84J33tY zoa4NP4lG-l?=Yq%6)y`W6+4^R=5jhQJ?~XrfU|x%sd4+c*HBs#lZ#oIvz>{8^621a zD8j%@tJw~#6@eOTC_;HJyiEW>h>EQu*rrH_CO*F*-A>-r9H~Siqg~T1ZFec98UZ0ezOY?J?y%0DoXlHZt;xg;m)oGi*c>X`mm_x6o`C5nMrn|KfqDWe^ zk#`AAuG~rvSXAljatnRqDqV_m84Bnm4FdVI2llZBQ8$HtVc*vU{lN0 zPGbVLx+li`bh|BS-pV((N7B`^W~KV)>N`D2Q=A#-pZs5U^l>T--HplE9?;;TSHxZ(%)#qpdY0c&jri0i3ipCULfZP=} z$`6VXhBhV+vjqYxa|8I69#D|muzEYP|6FeSaK~#;`~tV^Z0jEG+|}s?$(mR?#~lL>#hDK;U^z}3%)pDI;Q&TVQ1npUms*^ zq*0?S&68@s&^-tkv{v0O;}WFbW{f=XiVS-7smy0ZA3-e58B*!I70CzxoCZ0)PT7j! zox(8a`3w*~U_AP92AdM}hfc67C@1Ae@^Dn&v&*2IQLp3qLjEuRgCr#` zmD8uVJgm||M;qxYE^iQ#hEC%IElk-|n~Hu@uW(<9-oWmq?;wZ8usd%zro%W`H@A`b zeD?=YoyTA2r?K9Tfj@U>yN#X+i!D%~B$0yp=*0N1`)UHx*@t`xPs#5w&j+pMB@RiFG-(6uKg)BQjDat%fAGhnt&pQ?2E*7wX zLSrNEztRO?crC%mg4Ltm5R2{CM%p8|tD$r5@%VYrZx2W8T%riG&17t9;^NcBz2D`j zw^JF4eBTUHC=EEZ!j>*?`hmyLp3?5ACi&ICT(A{`9)IMDPswCcK1u1y)Vpfv6zz}j zV8?nq-oHk7lPn9-&{E`OtUzV#o9V2zu(vR_`NlWnvvCATlFrc#6KouZv%fMb=^-{f zukHZA#0tjnW4zpUrH*sbTipgQScNoMtjuTEKfleI+XWU;z$v*AzztW-A-h4)AQl;} zCv0r4yva`I&RDd`>w#c$Y70v6;_ifGOyq2y;$lc-Rk*TYeH{d}IPp7K?#;18u^=Q} zPGX96+HSI8bPC?`&>1?=joC_1&Eh{3;kT?G3g4b9p6Ln2%N5b3f&Q)f{afDRJwh}# zu3nsmK0!oo^?Shp=Ld5k3Ja{aSVB8?*XDPpmt?0PgS$}2l8fX9u^gllySm$j4fC+o zsg2zSa9S%sbO4I;9+8Q>tMH_429nmh9>B69$MEfV#HjV%SU>fkt>?pJ@aj+^SIi?^ z&u4K@!j!vKL+#-e#Q?bedd0zHy*d}htjB-9_8C0!Edp>InN8dgjQ{sDB5GID)?b&lL zHuWfh1pJr`S)t`JCf0h`z#V(siUS39W;EPpkDaAbS-uQ9lXz7{9IahG8*Lnt8~_=tC)_+J0f{(L~gpf%@U;#j`5*x+va z-JV8C5jv8(+b_^om{D;L)!n|N`Sj|2JcRXOQqdYA=z69IGik~(nlaLq!1DHa zPChs(Ff^C$_(^=zU*zG{(uFbIDU06gJP%%k>0E97_Lv2z5GrW;EQ=QH)VSgG7`zXh zKJhr8#k>*4z3&~MC>4>s;g4ClOcSio8AA@*GOBx{_@XJWHrJUcDXR`4D8Gpq8(fHo zBP^6rtwDvb@y`YdQs4N~B-%N}o z^HW0t&mlaH1f6vbH}$N%T*;qT*Sn8)kogojY{+#>oP&4JWNV_LE;%g1da_Nz_U{P1Qk*2FqEO z4fl*siq;b;Km37;_G~k@?8rq>N{TZ=R_NtSyIaKff2ll&{E%@OqlEOYTgM~}A@~}r zKBgl`<~Y6KhjCvi|CHlX9o_+KxeA^2WW|@N!bvf2%JWSW<{NlU>gbdO&`GWyE;g#P z_;6#Ic*#+Ls`TOB^*Ln@wIy4{{w_>OJuSY>JN!*Ok5m7qM1^)px`tQ@ zy}v$ovAA@NpJGLQ7iI$*dyYt%aQW+7?3XlHnSiynaR_FH_rNNr-j()d(($qyYJDBt z>T+F91a=`u1d!hjey^WjB$qom7FeHVQ8X}s%bewt$w9^i5*dZ>pp7KDF>j1F0TG|k zo_KS>qho8#n+sH@quWv&{(~&~T}Bx9(=Dz+)6qog;^ruP1Q0zHs#@C-SxA!M^hj$y zuynNwJ=MI4MJ#h&4x7R>5I2)x$UUUWN!CGTjZ06PA;+}qq%&5E1&eG<7Zz(E1nLWA zS{)!0KI|wv9I@8t8*)+H-5IZkpT^H98tA#4kXW-lE-bd)ft74cAS@5ji&Gv%9_wSD z6fGZ*tL(V&TjtMf*K)J*X+Ms`*?zxiKGHz-3W*KNCIWsc^s0%D+(IV9R_Ar$i#2o< z(hxUWPj<^<8=gekq@E?DIem7^I~zrA)`!8qSPL@RX7yrxyPEkW0rJqt`({0+y4Bcu z`;F*Ww}w8OJRA#xi?&gBjE^CYEpUVN5+=s7#>#@L2{49w(|-F>b*Yt(am3T$wCUVe zMSV4wLjd+H`#QUCoU&|W3?=!h+Ryu4MbZDJK+D38J{t>F!x`FYHK3=1*;H$CHk7?` z#WnePr3lKmQB<4!G+qeq=dKR>l=?9Ay6?oI<$SCdce6|1Q@b#)=EoB_+`=0MzC0n( zJ@3a7<-4A9dlUs}kYlOAdQk)a#r>`MXg#Y`2+&l|n{iIGVMm8DFQ{NF$R;p?%dmUL8DHioV)zH%b>}( zYuG{QPQ~9B%Pp)Txxir*S~b5_^( z9hjZYav4Me#U}=4#4?HSenx^WrVnWMFRQ8@zYfHa82l1Q2UhT_hxVJKo!}o-wKFBf z5g7^%v~WxlH4)ezD;n(Cl+M{TgR;(ZmQWRNN7Y5hLpV$1q>PGJ?LhY}Q}rVRXE_bv zVpiJ5O;rnG4$_fRmmgcEdY98~@?D1%)qI_kgMP?@)cwfPEXA zUvH_D(HqC~b2)P#t9ImXqzZPPdOr;5adiGVO*Ex8U9R@W&4&$a>v$e(&r4zyxQgt= zxw8qdD6JjHtW}Y$S&# zfm;?CHy`|r>D92C?v^1f#NUty@Ro@=C!nRWI0>?$adrmNiR9DdD~L?i9K=#QpXcRf z(+ua*u@8=s=RfH&cpK?6(@0Qmg$P@3iAI_Mu-CNxuDxwUzx0m&{+FQy;*_($@hCw1 zFdviG`9Ns!v1>{HhU$3?PURKrZY)$k(P_70#%hUS|2M2B38yD6YyeZAhMkl4At5gE z!e}N7`_lYqJJHM99lO?{NO%x{tdDg}6^>4e|+D*bNN>hi%;d;TCf< zUx4P;73mpSAMXxNnvM8$X31C1!_IP#wgs!>gtM$mU<4u(X74VbT6&2b6OOnZiW>&A z2a|Kx(OLn+)lo%&((D{~&B}-=Pef<$^#ExiKhltllCVx0!<9CR)Z5sQIRXJ+T3M=E z)CEQTs;<4Q7nqYDy3gseM-u(EaMvq4vn7xpzest~E)s zr5a8Cyhy3wv_vgW4e=3jS9@bT?9N8@kVIc!-GhOJ)hftH6INmEcHKYpRNj|ONPw=n zTerMpJhe`t4Lrg|Gb$3FXF|xv#ONn_mV{F8{sp; z*OT(G7)BSJrsapLc?axeOBFkq%VtwePvc0+)l>7|KdQ}g$rUBifU>w!&sF`K(e#ce+cz}mU1E_PYDOGFWzpFDDBXTlqV>exmho?D|yBtB|`6j%b>VYU~kIil=yOz zuCr=lS0DwHA@8)T4$GYx%WN=v$3?E{O{Vl{pydgga(tg26ucX_eklg?4?NzKAvS*obz2&Pl_o0 zdTgk_G14a=2eQE+{(xPcl#?pbBn$qd)(?8IrHcOpOB`i(?0IF@y6sRqoGiuJGO5HfT+FRYv0f)auzb#W?!i;$ z{f)BD+x}O>X`vunooo}K;9sMrBRHG40MGh`q_yq;TJi5&S3CLAbQCDwSoEBI^rnVbVAkWa(> z?;r$>5%MR6))<;3_mMmUcQv9?07U#eA`3Nb{5Fywf@H7w)5FEEvOis zil${G-Q6cqAc|zKi0lcfBh}n}x&WhXlA}z^zOpr!rof|K`~eUsQj)e9mERZc)zJ%4 zoa{zo_+aVbadeeLB0uB?&4#zPU#|Py6#SDw|J#-)w#;$@Q#1VsdB3UmVtkjWVZ@@a z1}K^9_*$JayO+8fcA3ogd82KtY}U}gAo}i)NTG-wxVd-7Rw2CMlv{N-Zc&Axs)s>U zvCL*A_Dwigx&jbY<6wT}<>o)Qtssj#e6q{GIgn8k^?E8a53>Dt>Sx?f%J=kNEg&BNFJ{;fPCS?^ts; z=V9v@r(>afsVQ6JSZrbnzpY2nORf98PrHGydF~VTvw>yuQhfXF5V5st5Kg;!?*+=l zSnifZ7_MLW>#mDTnE@scg~~2!SnurcNbBZjq?g0-JxS% z?tCI`R7UBorjpstv~?RXcT&uBQI+rw7zqW_^vo@Ui1ze$khj*UN+#Iorjc2-DK{87 zuvRLK0~^>an)whj2+X!XkL*OS(J`zezWQ*rx{6wwL@&oSh&J*SCZqxD-f?MwvzZwc z_74lv4VuQrO;jAbS>lip0MVpLmrPm+bxHEtk|O%gxgd3iu6y>LQqoxuku>*l{Y7vm zRGM5E(CFrQNa|(#Ga^6DHYDxesh!>ZrqdhfSxnjiVM@)>)~!^C|L5HV4?UO|OW41z z{sqG|8B)tqPISXfQtn(<1Hb-rn~XnCxHCOlL-ysrSYP_NyLny$h8`(zyEhz{xzU*w zvwPivoC&DSVKNUw=7e_`F;N{^6|m?{n%0L_4wVn)kHmt!Y7wDQ&)uoPk!1kaRTPzD z=els8IfPv}+IJ`qqEQJpjrPkM>Xx-uuKwN_4{J&&ZVrjcb=m3Y`;5#v zTT#&;(7bZN5&r=IyUVdTQMURP$*QgU5;DoNgf#Re+{w)|^k%j$r~)U=GZXdZ1Y4b1 z?GZVP{TIl1;ze zZJw95G1O4y{}9d3Tr*?)!@(k}6m2w8lk+8r!!VC~%S>R!X%cSc($w85m4AG|P|IrH za^=xK^y3!zldw-n_x*d*^&I)sB$Iv1TlfB<=7DaT$R2`6%dtyss)y~AEcY)FZ*4D| z7S4QXfBL`roX_H1wLMDIWZ&Yx-*>%YWx`GI<_L-sK2;l%YxO7) zfQ8rgHVkc80|C#rxm+*RAVuVr@JaM&zdYrmkR ze^jkwdr1t__#?lY@bTM1UBpF{INU1uzi9Hsdiqw82QEsx2Q08Z#xG=2HvRjFS(_B) z%f;HfI~1t|W2->oO!p^(O=a1~p+BwIK*mT_9fd{WhT{}!BmvtK-^lq;&RMU1b$Fp8 zhoE%feAoF#E(IGMo2b?J`S?M>^tzgY_#iaAWlf!@Xo669Ao~s zzsff6`*i+qemh?rV$TZ`@{88p&nKfOgI8!HF&LFLn#-Q5!Dq^3p#;IQ$qP0ukI=NvGYBLj ze&FL7z%||D5U)b{GL;0CI^C6`k>k-bsb15o_I;8G2z^`d9T^|c5+jmT`{Wl&TJRku zp23$&TrKXUWL!}J^0U^Vg@5RW0*hA|O80M-CSKrWGLtDyypB)uMZ(KMWxUTcdO?q) zDv7T;Ehb5(lv6m!td#VQ(dmULj@oDB_{K~QETyf&K`*#Nim3O>&M7(M4iL4yjQLQs zKvqA1ixjy;`T;2lSaSbR5VLxC%q=K)l?LfX?EhSAj$|asZLD6JDDe5|mXD%m)SbG^ zLj?M_`6z6{8oZj>Me$Z(GAZ5X^!naVL_F(760Nc35 zdOJFi7B?FgOJ^B8926atL5QjMtHanylLYr%)sywch-yBqhnpzIijlrIuerI0V%dq# zmo)gYYlZk1UI}-<;=Y=hh2RK$QXLUncbw9ISM-iXZ2exJq2TvIdGB1&`?`P1xKT^OO)-CrrCu|uv=mc6J8!it0ub^D{oHDfI(VauW< zrt!!?vPkZQ*%_@d@D1YmMWgy-I-%S1m#ELuo{#)lFU!qtB>i~%{OCg#ie6g=*=&)n z#->N+)symN{mSgYwouPbwEoLY`sd7m*tOed*aOs=f-mLDD+^g&KrmJ5hpB z(k9upXm{Tags~Z7Mi+zr{_tpCvg9Xa2Pqe-Y{ezNaX-lijN#9`eB}C$KGQs4y1t*A{iK$>Y`uxZLa|0ciNPH z6k!Y_L_2IvcD5vPJMY%%+TAfH@UBs>#m^PKY7ZB-5aa{*#dQZY@DOQzJ)ImL0}@lv zOi|NjptmJ!F30{DZD!XK`?8;^$j)dnTTe0tD}#)D#V(fZG>9SiMwJW{ljJ`+1{+%bTj=M8_>cI0B>)w|m=c^29Pz4_lwYhczB&;bQ9 zjhoi7H(`^!cOFH0xWHogoTS%@NbWOc1mP9`iJw6J#Sy zt7_gTEvlUqa2Lc%=JnH|TFG4PYlFp8{Ol}aP{&uFh#3l(=i!i|G~4(iMbHdX-&_&2 zPEl`;dp=>82)|26kE<%ap}=pC!azWj{g6oTdnf++?}@3NX;yAMR3=_FJO-tROz9P0 z`kuP3G!u2fleG6z8uw!;0`B)cfHzHEfp%5LY#xh~Oit+IKeD~OF-=i-TC+(FgvLOj zjOQ3}w5lfa2(jue2XNX<79GG#GM)y_$U0h9x>~y68Her&J69&t@-*Z#*`g<#+PTgm zY{>;4GFK?Zl-x;4W~U7CmD-Dl9zqey*nh_m6x*VRF~vt8-t!>>Q~|PP%~~zeKWdm8 zh9&n|swNH#2U#93d)cq5nrZD@xk4v35EXj)WDy4h1w?Nf7;5R2SpoYRLzFDd1o~W= zbFGg^e(3ndANX(hpG!?99MGbSxahH6mngK65O`G}h1oKJxpQ@eYZtIA89!^oEQ-rH=t~g&G%ov6_E%0-zjMt$6okLdb#45TiR+IVIE#df?pNbU;Gn z!@I<(^GsHK0AwJ+ucv1{UdS!@*t8*MCA+KCNN#$_pYXafXA%g&q$%EaAOW9t9nR8ukyii0pRg67A###07mL%i~sBsj7zVd zA&iFp_*tR#WMq=UtdEZz2aF6Iel?5lnekpe-D~Nl1PEUis+(nkY|YhcNGH#VHkC+L zR%4Y5R(y0fotVs*U>$8`U}eILTPOVzdtY?RGM@>{BO;B@qO0{mMP+{F zK(Dn1Ia1E4woec`Vh}{GN6ZJk8$Vu6W_*1_c%&aVxD0jLI066~ubxw*sVB%D*tUoU zt~Y@qRhU5v!r`N2&xXH(B|_8|5*g{FM4_L7w-=OIju#QjcjOc!>NbrH8zrnNZcD1N zhOcP}O`J<3@A$U8w3XCbMtn;ceB8c+J4Qvu`S-l}eqm)>k*9ksGYOcOssx=L9Q;ts zZF6|c!izuHeK)ttru{*Cmiqqd#y&diyImCQ$X!KrWaB{1m_s4QcCm4@)ZOx3stNlg z;6dc@rsecQ2?FG@xg3%p7L-9AC$vr9n@DsG^YYlw=x-6@UG5j zuQLzKD6$Q>?}%$UkeXVGeaTMuhJx;QvvsE%GYM&9m7{ZRVbja_i=NoiTX48asaMUK z)eoBv+4I@8-{4;sT6?huXV=vly*YZffVD~w?-0+QdSp+U*~~_*omkhIU+&nk6m{Z1 zyjquXhe9@R%$`N=3vuGBN;c0I4(NUkjbSzrub&90S|K*MqgLwGmaMpT#c!m_RsmR; zC3#*=_y>z{3-@P@MBS)mM_f-eOr>pJ;psqw$Me+b@4Zgme4ZyA-*=1S7lqZR0XSKM z0FzkDws?u@*`+>oIG%)(LRelj#kDX5+Ya3|hF^E->78|a9|v(47W3GHkLwOVqwpu> zUcXv{o}u)*JiS7%SRk|CWBamFMv9mKCe&)$6|uyapmvOP-S>8dfds zcf_KxB87>w?<0hr)P3bC+rb5nL}Dg75!cVBx+jrDpB6S$aSYD83s zpp}X@&lSVCCLDv_8Fdw+@u$o2n;Xnz!AniT6aFbOIC zmE|E}Y%TF~NnbtZTn$4jYY)$>bCDy_;_(+te-ziznG&s6Y^OXKF&(NC7{If%Uau4v zVz;B55F;CTO*>L;s;UI7_~*ws{F=5@KtvY>fYV_qYMXK4DD1?1jF7muzeFK>R}Ji;8F866N(wE{Ks? zJkU9*LKWq+HDPjcZleIR`0uNRv#&Y5$n`-ioS%MA1?7vc-pZPX0g^I*;pAKxz%;_E z^qoa=R4m!5JIA?YvAa!qM+A1J@v*Sq7~ zc2S)Nh+ZgYA*VWruMhCws&JiJ&qoIk?AuB(O=?PxFPnTI!kIJ(hG_WLY|tD>TyytW|(a`!35@cKW@;; ziA#90Hovbkrs3B^NBYF4UnIT}?&OlCse81k7O+GDs5S6kUs0hk!`ty_5cj zwhO7Hw6EJS`TyNh^SDf^q_wvSsM9ePRX<9gie zPEazq=qoyWUGPU5>AoO*zw8%IrX*X2XZaE`u;*EZy9@mwF3IvQGDUawN0#9C?*gf} zSN5BRCRF%=_`clGzmTFVtMO z-g)#TcZ`pQh=pdKkkP%TuVZIby5gCBvupFM^_7VQm{Ri6e$=s zbv&&vsj|@=DcLTP#oSBq0Ay)%|Fq?+I1tD1EEmTw8Rm#^y@!Fn4ow^jG(;KC71-T7 zc=US-2N7T3kTZfE0$tzAaXrlNKrlM~F(6m4XEFI(Rr|NQN}x;3r=WH=9UWQRD8j#7 z6WtZExY~i(FP1s6-^O*IuC?FWrSAY3ICrO0fvUZw%n7{wQmlc$_w*W=shu)b5r zvg+)9lchCTTrh4mYU#qVK}xf>u*Xumzj~!>!PgZ{mxkW@;G%;3Id#!sbG4ceM?f{8 zr1IVWC+SaE;7eVi06lzaz(un47<4)Z)mdmE7*i&gj9=D(2Frip3uv`Ciq6DV%0G5r zIid<$P2cyf{ctg~Rcc^6xQqDYVg0Xw+%YgDPeJ$JKJ%$G%R&g2T8~;Ti=r{A*jyK= zIX0Z;7z9&0rCjONU@>x^`beztj{h&1XCo+6=yf>iZw4wK`(}K2CEp=v6wd)lMu| z``g4AHmEv60J-8T&c^|(T^Km@Fn5DP(IGyBu}rg|Ah}Quw#uL>E z7gA?-=fa$Ca`3@tu2}J?lozSPnp%6kE9-8Dc6uZ>(qA$QS);UJf~|SmLA%f&HTonm z1@G;^e?~sAni|%brRH5}iiMOTs80)@H8652;C8Cy266-Eh&=8`8HbBF)v0m znFSrgZ3}(4pd+;5w0`y6#NEyPj7wW6KBlP}=@8U;IBEylVOY diff --git a/phpBB/db/schemas/mysql_schema.sql b/phpBB/db/schemas/mysql_schema.sql index 750ad5cad9..b33ed4b3a5 100644 --- a/phpBB/db/schemas/mysql_schema.sql +++ b/phpBB/db/schemas/mysql_schema.sql @@ -21,7 +21,7 @@ CREATE TABLE phpbb_auth_access ( auth_vote tinyint(1) DEFAULT '0' NOT NULL, auth_pollcreate tinyint(1) DEFAULT '0' NOT NULL, auth_attachments tinyint(1) DEFAULT '0' NOT NULL, - auth_mod tinyint(1) DEFAULT '0' NOT NULL, + auth_mod tinyint(1) DEFAULT '0' NOT NULL, KEY group_id (group_id), KEY forum_id (forum_id) ); @@ -33,7 +33,7 @@ CREATE TABLE phpbb_auth_access ( CREATE TABLE phpbb_user_group ( group_id mediumint(8) DEFAULT '0' NOT NULL, user_id mediumint(8) DEFAULT '0' NOT NULL, - user_pending tinyint(1), + user_pending tinyint(1), KEY group_id (group_id), KEY user_id (user_id) ); @@ -43,12 +43,12 @@ CREATE TABLE phpbb_user_group ( # CREATE TABLE phpbb_groups ( group_id mediumint(8) NOT NULL auto_increment, - group_type tinyint(4) DEFAULT '1' NOT NULL, + group_type tinyint(4) DEFAULT '1' NOT NULL, group_name varchar(40) NOT NULL, group_description varchar(255) NOT NULL, - group_moderator mediumint(8) DEFAULT '0' NOT NULL, - group_single_user tinyint(1) DEFAULT '1' NOT NULL, - PRIMARY KEY (group_id), + group_moderator mediumint(8) DEFAULT '0' NOT NULL, + group_single_user tinyint(1) DEFAULT '1' NOT NULL, + PRIMARY KEY (group_id), KEY group_single_user (group_single_user) ); @@ -62,7 +62,7 @@ CREATE TABLE phpbb_banlist ( ban_userid mediumint(8) NOT NULL, ban_ip char(8) NOT NULL, ban_email varchar(255), - PRIMARY KEY (ban_id), + PRIMARY KEY (ban_id), KEY ban_ip_user_id (ban_ip, ban_userid) ); @@ -75,7 +75,7 @@ CREATE TABLE phpbb_categories ( cat_id mediumint(8) UNSIGNED NOT NULL auto_increment, cat_title varchar(100), cat_order mediumint(8) UNSIGNED NOT NULL, - PRIMARY KEY (cat_id), + PRIMARY KEY (cat_id), KEY cat_order (cat_order) ); @@ -84,9 +84,9 @@ CREATE TABLE phpbb_categories ( # # Table structure for table 'phpbb_config' # -CREATE TABLE phpbb_config ( - config_name varchar(255) NOT NULL, - config_value varchar(255) NOT NULL, +CREATE TABLE phpbb_config ( + config_name varchar(255) NOT NULL, + config_value varchar(255) NOT NULL, PRIMARY KEY (config_name) ); @@ -125,7 +125,7 @@ CREATE TABLE phpbb_forums ( cat_id mediumint(8) UNSIGNED NOT NULL, forum_name varchar(150), forum_desc text, - forum_status tinyint(4) DEFAULT '0' NOT NULL, + forum_status tinyint(4) DEFAULT '0' NOT NULL, forum_order mediumint(8) UNSIGNED DEFAULT '1' NOT NULL, forum_posts mediumint(8) UNSIGNED DEFAULT '0' NOT NULL, forum_topics mediumint(8) UNSIGNED DEFAULT '0' NOT NULL, @@ -145,7 +145,7 @@ CREATE TABLE phpbb_forums ( auth_attachments tinyint(2) DEFAULT '0' NOT NULL, PRIMARY KEY (forum_id), KEY forums_order (forum_order), - KEY cat_id (cat_id), + KEY cat_id (cat_id), KEY forum_last_post_id (forum_last_post_id) ); @@ -160,18 +160,18 @@ CREATE TABLE phpbb_posts ( forum_id smallint(5) UNSIGNED DEFAULT '0' NOT NULL, poster_id mediumint(8) DEFAULT '0' NOT NULL, post_time int(11) DEFAULT '0' NOT NULL, - poster_ip char(8) NOT NULL, - post_username varchar(25), + poster_ip char(8) NOT NULL, + post_username varchar(25), enable_bbcode tinyint(1) DEFAULT '1' NOT NULL, enable_html tinyint(1) DEFAULT '0' NOT NULL, enable_smilies tinyint(1) DEFAULT '1' NOT NULL, - enable_sig tinyint(1) DEFAULT '1' NOT NULL, + enable_sig tinyint(1) DEFAULT '1' NOT NULL, post_edit_time int(11), post_edit_count smallint(5) UNSIGNED DEFAULT '0' NOT NULL, PRIMARY KEY (post_id), KEY forum_id (forum_id), KEY topic_id (topic_id), - KEY poster_id (poster_id), + KEY poster_id (poster_id), KEY post_time (post_time) ); @@ -203,8 +203,8 @@ CREATE TABLE phpbb_privmsgs ( privmsgs_ip char(8) NOT NULL, privmsgs_enable_bbcode tinyint(1) DEFAULT '1' NOT NULL, privmsgs_enable_html tinyint(1) DEFAULT '0' NOT NULL, - privmsgs_enable_smilies tinyint(1) DEFAULT '1' NOT NULL, - privmsgs_attach_sig tinyint(1) DEFAULT '1' NOT NULL, + privmsgs_enable_smilies tinyint(1) DEFAULT '1' NOT NULL, + privmsgs_attach_sig tinyint(1) DEFAULT '1' NOT NULL, PRIMARY KEY (privmsgs_id), KEY privmsgs_from_userid (privmsgs_from_userid), KEY privmsgs_to_userid (privmsgs_to_userid) @@ -217,7 +217,7 @@ CREATE TABLE phpbb_privmsgs ( # CREATE TABLE phpbb_privmsgs_text ( privmsgs_text_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL, - privmsgs_bbcode_uid char(10) DEFAULT '0' NOT NULL, + privmsgs_bbcode_uid char(10) DEFAULT '0' NOT NULL, privmsgs_text text, PRIMARY KEY (privmsgs_text_id) ); @@ -233,7 +233,7 @@ CREATE TABLE phpbb_ranks ( rank_min mediumint(8) DEFAULT '0' NOT NULL, rank_special tinyint(1) DEFAULT '0', rank_image varchar(255), - PRIMARY KEY (rank_id) + PRIMARY KEY (rank_id) ); @@ -258,7 +258,7 @@ CREATE TABLE phpbb_search_wordlist ( word_text varchar(50) binary NOT NULL default '', word_id mediumint(8) UNSIGNED NOT NULL auto_increment, word_common tinyint(1) unsigned NOT NULL default '0', - PRIMARY KEY (word_text), + PRIMARY KEY (word_text), KEY word_id (word_id) ); @@ -270,6 +270,7 @@ CREATE TABLE phpbb_search_wordmatch ( post_id mediumint(8) UNSIGNED NOT NULL default '0', word_id mediumint(8) UNSIGNED NOT NULL default '0', title_match tinyint(1) NOT NULL default '0', + KEY post_id (post_id), KEY word_id (word_id) ); @@ -282,7 +283,7 @@ CREATE TABLE phpbb_search_wordmatch ( # this table a type HEAP. This type of table is stored # within system memory and therefore for big busy boards # is likely to be noticeably faster than continually -# writing to disk ... +# writing to disk ... # # I must admit I read about this type on vB's board. # Hey, I never said you cannot get basic ideas from @@ -321,8 +322,8 @@ CREATE TABLE phpbb_smilies ( # Table structure for table 'phpbb_themes' # CREATE TABLE phpbb_themes ( - themes_id mediumint(8) UNSIGNED NOT NULL auto_increment, - template_name varchar(30) NOT NULL default '', + themes_id mediumint(8) UNSIGNED NOT NULL auto_increment, + template_name varchar(30) NOT NULL default '', style_name varchar(30) NOT NULL default '', head_stylesheet varchar(100) default NULL, body_background varchar(100) default NULL, @@ -361,9 +362,9 @@ CREATE TABLE phpbb_themes ( fontcolor3 varchar(6) default NULL, span_class1 varchar(25) default NULL, span_class2 varchar(25) default NULL, - span_class3 varchar(25) default NULL, - img_size_poll smallint(5) UNSIGNED, - img_size_privmsg smallint(5) UNSIGNED, + span_class3 varchar(25) default NULL, + img_size_poll smallint(5) UNSIGNED, + img_size_privmsg smallint(5) UNSIGNED, PRIMARY KEY (themes_id) ); @@ -429,8 +430,8 @@ CREATE TABLE phpbb_topics ( PRIMARY KEY (topic_id), KEY forum_id (forum_id), KEY topic_moved_id (topic_moved_id), - KEY topic_status (topic_status), - KEY topic_type (topic_type) + KEY topic_status (topic_status), + KEY topic_type (topic_type) ); @@ -443,7 +444,7 @@ CREATE TABLE phpbb_topics_watch ( user_id mediumint(8) NOT NULL DEFAULT '0', notify_status tinyint(1) NOT NULL default '0', KEY topic_id (topic_id), - KEY user_id (user_id), + KEY user_id (user_id), KEY notify_status (notify_status) ); @@ -457,34 +458,34 @@ CREATE TABLE phpbb_users ( user_active tinyint(1) DEFAULT '1', username varchar(25) NOT NULL, user_password varchar(32) NOT NULL, - user_session_time int(11) DEFAULT '0' NOT NULL, - user_session_page smallint(5) DEFAULT '0' NOT NULL, - user_lastvisit int(11) DEFAULT '0' NOT NULL, - user_regdate int(11) DEFAULT '0' NOT NULL, + user_session_time int(11) DEFAULT '0' NOT NULL, + user_session_page smallint(5) DEFAULT '0' NOT NULL, + user_lastvisit int(11) DEFAULT '0' NOT NULL, + user_regdate int(11) DEFAULT '0' NOT NULL, user_level tinyint(4) DEFAULT '0', user_posts mediumint(8) UNSIGNED DEFAULT '0' NOT NULL, user_timezone decimal(4,2) DEFAULT '0' NOT NULL, user_style tinyint(4), user_lang varchar(255), user_dateformat varchar(14) DEFAULT 'd M Y H:i' NOT NULL, - user_new_privmsg smallint(5) UNSIGNED DEFAULT '0' NOT NULL, - user_unread_privmsg smallint(5) UNSIGNED DEFAULT '0' NOT NULL, - user_last_privmsg int(11) DEFAULT '0' NOT NULL, - user_emailtime int(11), - user_viewemail tinyint(1), - user_attachsig tinyint(1), - user_allowhtml tinyint(1) DEFAULT '1', - user_allowbbcode tinyint(1) DEFAULT '1', - user_allowsmile tinyint(1) DEFAULT '1', - user_allowavatar tinyint(1) DEFAULT '1' NOT NULL, - user_allow_pm tinyint(1) DEFAULT '1' NOT NULL, - user_allow_viewonline tinyint(1) DEFAULT '1' NOT NULL, + user_new_privmsg smallint(5) UNSIGNED DEFAULT '0' NOT NULL, + user_unread_privmsg smallint(5) UNSIGNED DEFAULT '0' NOT NULL, + user_last_privmsg int(11) DEFAULT '0' NOT NULL, + user_emailtime int(11), + user_viewemail tinyint(1), + user_attachsig tinyint(1), + user_allowhtml tinyint(1) DEFAULT '1', + user_allowbbcode tinyint(1) DEFAULT '1', + user_allowsmile tinyint(1) DEFAULT '1', + user_allowavatar tinyint(1) DEFAULT '1' NOT NULL, + user_allow_pm tinyint(1) DEFAULT '1' NOT NULL, + user_allow_viewonline tinyint(1) DEFAULT '1' NOT NULL, user_notify tinyint(1) DEFAULT '1' NOT NULL, - user_notify_pm tinyint(1) DEFAULT '1' NOT NULL, - user_popup_pm tinyint(1) DEFAULT '0' NOT NULL, + user_notify_pm tinyint(1) DEFAULT '1' NOT NULL, + user_popup_pm tinyint(1) DEFAULT '0' NOT NULL, user_rank int(11) DEFAULT '0', user_avatar varchar(100), - user_avatar_type tinyint(4) DEFAULT '0' NOT NULL, + user_avatar_type tinyint(4) DEFAULT '0' NOT NULL, user_email varchar(255), user_icq varchar(15), user_website varchar(100), @@ -498,7 +499,7 @@ CREATE TABLE phpbb_users ( user_interests varchar(255), user_actkey varchar(32), user_newpasswd varchar(32), - PRIMARY KEY (user_id), + PRIMARY KEY (user_id), KEY user_session_time (user_session_time) ); diff --git a/phpBB/db/schemas/postgres_schema.sql b/phpBB/db/schemas/postgres_schema.sql index 92be0f31ca..d20129d649 100644 --- a/phpBB/db/schemas/postgres_schema.sql +++ b/phpBB/db/schemas/postgres_schema.sql @@ -264,6 +264,7 @@ CREATE TABLE phpbb_search_wordmatch ( title_match int2 NOT NULL default '0' ); CREATE INDEX word_id_phpbb_search_wordmatch ON phpbb_search_wordmatch (word_id); +CREATE INDEX post_id_phpbb_search_wordmatch ON phpbb_search_wordmatch (post_id); /* -------------------------------------------------------- diff --git a/phpBB/develop/encoding_emails.php b/phpBB/develop/encoding_emails.php index 1776d142d3..7c1a109692 100644 --- a/phpBB/develop/encoding_emails.php +++ b/phpBB/develop/encoding_emails.php @@ -27,7 +27,7 @@ // Remove or comment the next line (die(".... ) to enable this script. // Do NOT FORGET to either remove this script or disable it after you have used it. // -die("Please read the first lines of this script for instructions on how to enable it"); +//die("Please read the first lines of this script for instructions on how to enable it"); $dirname = "./../language"; $dir = opendir($dirname); diff --git a/phpBB/groupcp.php b/phpBB/groupcp.php index ca9a4cc659..43d1a95017 100644 --- a/phpBB/groupcp.php +++ b/phpBB/groupcp.php @@ -287,7 +287,7 @@ else if ( isset($HTTP_POST_VARS['joingroup']) && $group_id ) $emailer->assign_vars(array( 'SITENAME' => $board_config['sitename'], 'GROUP_MODERATOR' => $moderator['username'], - 'EMAIL_SIG' => str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']), + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']) : '', 'U_GROUPCP' => $server_url . '?' . POST_GROUPS_URL . "=$group_id&validate=true") ); @@ -569,7 +569,7 @@ else if ( $group_id ) $emailer->assign_vars(array( 'SITENAME' => $board_config['sitename'], 'GROUP_NAME' => $group_name, - 'EMAIL_SIG' => str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']), + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']) : '', 'U_GROUPCP' => $server_url . '?' . POST_GROUPS_URL . "=$group_id") ); @@ -724,7 +724,7 @@ else if ( $group_id ) $emailer->assign_vars(array( 'SITENAME' => $board_config['sitename'], 'GROUP_NAME' => $group_name, - 'EMAIL_SIG' => str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']), + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']) : '', 'U_GROUPCP' => $server_url . '?' . POST_GROUPS_URL . "=$group_id") ); diff --git a/phpBB/includes/emailer.php b/phpBB/includes/emailer.php index 12bc0a8732..30f58cc44e 100755 --- a/phpBB/includes/emailer.php +++ b/phpBB/includes/emailer.php @@ -68,7 +68,7 @@ class emailer // function set_subject($subject = '') { - $this->subject = $subject; + $this->subject = preg_replace('#[\n\r]+#s', '', $subject); } // diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index 35f01039bd..eaebdb9ac4 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -176,7 +176,7 @@ function make_jumpbox($action, $match_forum_id = 0) if ( isset($SID) ) { - $boxstring .= ''; + $boxstring .= ''; } $template->set_filenames(array( diff --git a/phpBB/includes/functions_post.php b/phpBB/includes/functions_post.php index f06957bff3..16b283022a 100644 --- a/phpBB/includes/functions_post.php +++ b/phpBB/includes/functions_post.php @@ -160,7 +160,7 @@ function prepare_post(&$mode, &$post_data, &$bbcode_on, &$html_on, &$smilies_on, $bbcode_uid = ( $bbcode_on ) ? make_bbcode_uid() : ''; $message = prepare_message(trim($message), $html_on, $bbcode_on, $smilies_on, $bbcode_uid); } - else if ( $mode != 'delete' && $mode != 'polldelete' ) + else if ( $mode != 'delete' && $mode != 'poll_delete' ) { $error_msg .= ( !empty($error_msg) ) ? '
' . $lang['Empty_message'] : $lang['Empty_message']; } @@ -233,7 +233,7 @@ function submit_post($mode, &$post_data, &$message, &$meta, &$forum_id, &$topic_ { if ( $row = $db->sql_fetchrow($result) ) { - if ( $row['last_post_time'] > 0 && ( $current_time - $row['last_post_time'] ) < $board_config['flood_interval'] ) + if ( intval($row['last_post_time']) > 0 && ( $current_time - intval($row['last_post_time']) ) < intval($board_config['flood_interval']) ) { message_die(GENERAL_MESSAGE, $lang['Flood_Error']); } @@ -278,7 +278,7 @@ function submit_post($mode, &$post_data, &$message, &$meta, &$forum_id, &$topic_ message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql); } - add_search_words($post_id, stripslashes($post_message), stripslashes($post_subject)); + add_search_words('single', $post_id, stripslashes($post_message), stripslashes($post_subject)); // // Add poll @@ -634,9 +634,9 @@ function user_notification($mode, &$post_data, &$forum_id, &$topic_id, &$post_id $update_watched_sql = ''; if ( $row = $db->sql_fetchrow($result) ) { - @set_time_limit(120); + @set_time_limit(240); - $topic_title = preg_replace($orig_word, $replacement_word, unprepare_message($row['topic_title'])); + $topic_title = (count($orig_word)) ? preg_replace($orig_word, $replacement_word, unprepare_message($row['topic_title'])) : unprepare_message($row['topic_title']); do { @@ -648,7 +648,7 @@ function user_notification($mode, &$post_data, &$forum_id, &$topic_id, &$post_id $emailer->extra_headers($email_headers); $emailer->assign_vars(array( - 'EMAIL_SIG' => str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']), + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']) : '', 'USERNAME' => $row['username'], 'SITENAME' => $board_config['sitename'], 'TOPIC_TITLE' => $topic_title, diff --git a/phpBB/includes/functions_search.php b/phpBB/includes/functions_search.php index 49cf01126f..894257713a 100644 --- a/phpBB/includes/functions_search.php +++ b/phpBB/includes/functions_search.php @@ -97,11 +97,11 @@ function split_words(&$entry, $mode = 'post') return $split_entries[1]; } -function add_search_words($post_id, $post_text, $post_title = '') +function add_search_words($mode, $post_id, $post_text, $post_title = '') { global $db, $phpbb_root_path, $board_config, $lang; - $stopwords_array = @file($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . "/search_stopwords.txt"); + $stopword_array = @file($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . "/search_stopwords.txt"); $synonym_array = @file($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . "/search_synonyms.txt"); $search_raw_words = array(); @@ -244,7 +244,7 @@ function add_search_words($post_id, $post_text, $post_title = '') } } - if ( $mode == 'single' ) + if ($mode == 'single') { remove_common('single', 0.4, $word); } diff --git a/phpBB/includes/template.php b/phpBB/includes/template.php index 85802ea932..dbd771ca77 100644 --- a/phpBB/includes/template.php +++ b/phpBB/includes/template.php @@ -331,7 +331,7 @@ class Template { if ($block_nesting_level < 2) { // Block is not nested. - $code_lines[$i] = '$_' . $a[1] . '_count = ( isset($this->_tpldata[\'' . $n[1] . '.\']) ) ? sizeof($this->_tpldata[\'' . $n[1] . '.\']) : 0;'; + $code_lines[$i] = '$_' . $n[1] . '_count = ( isset($this->_tpldata[\'' . $n[1] . '.\']) ) ? sizeof($this->_tpldata[\'' . $n[1] . '.\']) : 0;'; $code_lines[$i] .= "\n" . 'for ($_' . $n[1] . '_i = 0; $_' . $n[1] . '_i < $_' . $n[1] . '_count; $_' . $n[1] . '_i++)'; $code_lines[$i] .= "\n" . '{'; } @@ -347,7 +347,7 @@ class Template { // current indices of all parent blocks. $varref = $this->generate_block_data_ref($namespace, false); // Create the for loop code to iterate over this block. - $code_lines[$i] = '$_' . $a[1] . '_count = ( isset(' . $varref . ') ) ? sizeof(' . $varref . ') : 0;'; + $code_lines[$i] = '$_' . $n[1] . '_count = ( isset(' . $varref . ') ) ? sizeof(' . $varref . ') : 0;'; $code_lines[$i] .= "\n" . 'for ($_' . $n[1] . '_i = 0; $_' . $n[1] . '_i < $_' . $n[1] . '_count; $_' . $n[1] . '_i++)'; $code_lines[$i] .= "\n" . '{'; } diff --git a/phpBB/includes/usercp_activate.php b/phpBB/includes/usercp_activate.php index f8da8e13bf..d5d226ea8e 100644 --- a/phpBB/includes/usercp_activate.php +++ b/phpBB/includes/usercp_activate.php @@ -27,7 +27,7 @@ if ( !defined('IN_PHPBB') ) exit; } -$sql = "SELECT user_active, user_id, user_email, user_newpasswd, user_lang, user_actkey +$sql = "SELECT user_active, user_id, username, user_email, user_newpasswd, user_lang, user_actkey FROM " . USERS_TABLE . " WHERE user_id = " . intval($HTTP_GET_VARS[POST_USERS_URL]); if ( !($result = $db->sql_query($sql)) ) @@ -57,7 +57,7 @@ if ( $row = $db->sql_fetchrow($result) ) message_die(GENERAL_ERROR, 'Could not update users table', '', __LINE__, __FILE__, $sql_update); } - if ( $board_config['require_activation'] == USER_ACTIVATION_ADMIN && $sql_update_pass == '' ) + if ( intval($board_config['require_activation']) == USER_ACTIVATION_ADMIN && $sql_update_pass == '' ) { include($phpbb_root_path . 'includes/emailer.'.$phpEx); $emailer = new emailer($board_config['smtp_delivery']); @@ -71,9 +71,9 @@ if ( $row = $db->sql_fetchrow($result) ) $emailer->assign_vars(array( 'SITENAME' => $board_config['sitename'], - 'USERNAME' => $username, + 'USERNAME' => $row['username'], 'PASSWORD' => $password_confirm, - 'EMAIL_SIG' => str_replace('
', "\n", "-- \n" . $board_config['board_email_sig'])) + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']) : '') ); $emailer->send(); $emailer->reset(); diff --git a/phpBB/includes/usercp_avatar.php b/phpBB/includes/usercp_avatar.php index 32735fa462..f6d3f2d7a9 100644 --- a/phpBB/includes/usercp_avatar.php +++ b/phpBB/includes/usercp_avatar.php @@ -242,7 +242,7 @@ function user_avatar_upload($mode, $avatar_mode, &$current_avatar, &$current_typ return $avatar_sql; } -function display_avatar_gallery($mode, &$category, &$user_id, &$email, &$current_email, &$coppa, &$username, &$email, &$new_password, &$cur_password, &$password_confirm, &$icq, &$aim, &$msn, &$yim, &$website, &$location, &$occupation, &$interests, &$signature, &$viewemail, &$notifypm, &$popuppm, &$notifyreply, &$attachsig, &$allowhtml, &$allowbbcode, &$allowsmilies, &$hideonline, &$style, &$language, &$timezone, &$dateformat) +function display_avatar_gallery($mode, &$category, &$user_id, &$email, &$current_email, &$coppa, &$username, &$email, &$new_password, &$cur_password, &$password_confirm, &$icq, &$aim, &$msn, &$yim, &$website, &$location, &$occupation, &$interests, &$signature, &$viewemail, &$notifypm, &$popuppm, &$notifyreply, &$attachsig, &$allowhtml, &$allowbbcode, &$allowsmilies, &$hideonline, &$style, &$language, &$timezone, &$dateformat, &$session_id) { global $board_config, $db, $template, $lang, $images, $theme; global $phpbb_root_path, $phpEx; @@ -320,7 +320,7 @@ function display_avatar_gallery($mode, &$category, &$user_id, &$email, &$current $params = array('coppa', 'user_id', 'username', 'email', 'current_email', 'cur_password', 'new_password', 'password_confirm', 'icq', 'aim', 'msn', 'yim', 'website', 'location', 'occupation', 'interests', 'signature', 'viewemail', 'notifypm', 'popuppm', 'notifyreply', 'attachsig', 'allowhtml', 'allowbbcode', 'allowsmilies', 'hideonline', 'style', 'language', 'timezone', 'dateformat'); - $s_hidden_vars = ''; + $s_hidden_vars = ''; for($i = 0; $i < count($params); $i++) { diff --git a/phpBB/includes/usercp_email.php b/phpBB/includes/usercp_email.php index bfaaa30a84..eaa048fc50 100644 --- a/phpBB/includes/usercp_email.php +++ b/phpBB/includes/usercp_email.php @@ -62,6 +62,11 @@ if ( $result = $db->sql_query($sql) ) if ( isset($HTTP_POST_VARS['submit']) ) { + if (!isset($HTTP_POST_VARS['session_id']) || $HTTP_POST_VARS['session_id'] != $userdata['session_id']) + { + message_die(ERROR, 'Invalid_session'); + } + $error = FALSE; if ( !empty($HTTP_POST_VARS['subject']) ) @@ -170,6 +175,7 @@ if ( $result = $db->sql_query($sql) ) $template->assign_vars(array( 'USERNAME' => $username, + 'S_HIDDEN_FIELDS' => '', 'S_POST_ACTION' => append_sid("profile.$phpEx?&mode=email&" . POST_USERS_URL . "=$user_id"), 'L_SEND_EMAIL_MSG' => $lang['Send_email_msg'], diff --git a/phpBB/includes/usercp_register.php b/phpBB/includes/usercp_register.php index a36090f947..151fa0c804 100644 --- a/phpBB/includes/usercp_register.php +++ b/phpBB/includes/usercp_register.php @@ -80,6 +80,11 @@ if ( isset($HTTP_POST_VARS['cancelavatar']) || $mode == 'register' ) { + if (!isset($HTTP_POST_VARS['session_id']) || $HTTP_POST_VARS['session_id'] != $userdata['session_id']) + { + message_die(ERROR, 'Invalid_session_id'); + } + include($phpbb_root_path . 'includes/functions_validate.'.$phpEx); include($phpbb_root_path . 'includes/bbcode.'.$phpEx); include($phpbb_root_path . 'includes/functions_post.'.$phpEx); @@ -183,18 +188,18 @@ if ( $password_confirm = stripslashes($password_confirm); $icq = stripslashes($icq); - $aim = stripslashes($aim); - $msn = stripslashes($msn); - $yim = stripslashes($yim); + $aim = htmlspecialchars(stripslashes($aim)); + $msn = htmlspecialchars(stripslashes($msn)); + $yim = htmlspecialchars(stripslashes($yim)); - $website = stripslashes($website); - $location = stripslashes($location); - $occupation = stripslashes($occupation); - $interests = stripslashes($interests); - $signature = stripslashes($signature); + $website = htmlspecialchars(stripslashes($website)); + $location = htmlspecialchars(stripslashes($location)); + $occupation = htmlspecialchars(stripslashes($occupation)); + $interests = htmlspecialchars(stripslashes($interests)); + $signature = htmlspecialchars(stripslashes($signature)); $user_lang = stripslashes($user_lang); - $user_dateformat = stripslashes($user_dateformat); + $user_dateformat = htmlspecialchars(stripslashes($user_dateformat)); if ( !isset($HTTP_POST_VARS['cancelavatar'])) { @@ -459,7 +464,7 @@ if ( isset($HTTP_POST_VARS['submit']) ) $emailer->assign_vars(array( 'SITENAME' => $board_config['sitename'], 'USERNAME' => $username, - 'EMAIL_SIG' => str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']), + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']) : '', 'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey) ); @@ -651,7 +656,7 @@ if ( $error ) $signature = ( $signature_bbcode_uid != '' ) ? preg_replace("/:(([a-z0-9]+:)?)$signature_bbcode_uid\]/si", ']', $signature) : $signature; $user_lang = stripslashes($user_lang); - $user_dateformat = stripslashes($user_dateformat); + $user_dateformat = htmlspecialchars(stripslashes($user_dateformat)); } else if ( $mode == 'editprofile' && !isset($HTTP_POST_VARS['avatargallery']) && !isset($HTTP_POST_VARS['submitavatar']) && !isset($HTTP_POST_VARS['cancelavatar']) ) @@ -690,7 +695,7 @@ else if ( $mode == 'editprofile' && !isset($HTTP_POST_VARS['avatargallery']) && $user_style = $userdata['user_style']; $user_lang = $userdata['user_lang']; $user_timezone = $userdata['user_timezone']; - $user_dateformat = $userdata['user_dateformat']; + $user_dateformat = htmlspecialchars($userdata['user_dateformat']); } // @@ -721,7 +726,7 @@ if( isset($HTTP_POST_VARS['avatargallery']) && !$error ) $allowviewonline = !$allowviewonline; - display_avatar_gallery($mode, $avatar_category, $user_id, $email, $current_email, $coppa, $username, $email, &$new_password, &$cur_password, $password_confirm, $icq, $aim, $msn, $yim, $website, $location, $occupation, $interests, $signature, $viewemail, $notifypm, $popuppm, $notifyreply, $attachsig, $allowhtml, $allowbbcode, $allowsmilies, $allowviewonline, $user_style, $user_lang, $user_timezone, $user_dateformat); + display_avatar_gallery($mode, $avatar_category, $user_id, $email, $current_email, $coppa, $username, $email, &$new_password, &$cur_password, $password_confirm, $icq, $aim, $msn, $yim, $website, $location, $occupation, $interests, $signature, $viewemail, $notifypm, $popuppm, $notifyreply, $attachsig, $allowhtml, $allowbbcode, $allowsmilies, $allowviewonline, $user_style, $user_lang, $user_timezone, $user_dateformat, $userdata['session_id']); } else { @@ -754,7 +759,7 @@ else } } - $s_hidden_fields = ''; + $s_hidden_fields = ''; if( $mode == 'editprofile' ) { $s_hidden_fields .= ''; diff --git a/phpBB/includes/usercp_sendpasswd.php b/phpBB/includes/usercp_sendpasswd.php index 3290db6ee0..ff3b2c05fa 100644 --- a/phpBB/includes/usercp_sendpasswd.php +++ b/phpBB/includes/usercp_sendpasswd.php @@ -76,7 +76,7 @@ if ( isset($HTTP_POST_VARS['submit']) ) 'SITENAME' => $board_config['sitename'], 'USERNAME' => $username, 'PASSWORD' => $user_password, - 'EMAIL_SIG' => str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']), + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']) : '', 'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey) ); diff --git a/phpBB/language/lang_dutch/lang_main.php b/phpBB/language/lang_dutch/lang_main.php index a72463d6cd..90d5fc7c11 100644 --- a/phpBB/language/lang_dutch/lang_main.php +++ b/phpBB/language/lang_dutch/lang_main.php @@ -574,6 +574,7 @@ $lang['password_confirm_if_changed'] = 'Je hoeft alleen je wachtwoord te bevesti $lang['Avatar'] = 'Avatar'; $lang['Avatar_explain'] = 'Laat een kleine afbeelding onder je naam zien in ieder bericht. Je kan maar één afbeelding tegelijkertijd gebruiken, de breedte mag niet meer dan %d pixels zijn, de hoogte moet onder de %d pixels blijven. De maximale bestandsgrootte is %dKB'; +$lang['Upload_Avatar_file'] = 'Upload Avatar vanaf jouw machine'; $lang['Upload_Avatar_URL'] = 'Upload Avatar vanaf een Internet lokatie (URL)'; $lang['Upload_Avatar_URL_explain'] = 'Geef de URL waar je Avatar staat, de afbeelding wordt gekopieerd naar deze site.'; $lang['Pick_local_Avatar'] = 'Selecteer een Avatar uit de gallery'; diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index a1ded0646d..838e11dc1f 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -110,7 +110,7 @@ if ( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) ) switch( $mode ) { - case 'joindate': + case 'joined': $order_by = "user_regdate ASC LIMIT $start, " . $board_config['topics_per_page']; break; case 'username': diff --git a/phpBB/posting.php b/phpBB/posting.php index 3e9f28fb75..2fb832f975 100644 --- a/phpBB/posting.php +++ b/phpBB/posting.php @@ -121,6 +121,26 @@ if ( isset($HTTP_POST_VARS['cancel']) ) exit; } +// +// Compare sid ... if sids don't match +// output message ... note that AOL'ers may +// obtain this error until the session code +// is modified to change the 6 to 4 in the IP +// comparison checks ... or if a user takes +// longer than session time to submit the form +// both can be easily altered by the admin +// +if ( $submit || $refresh ) +{ + if (!isset($HTTP_POST_VARS['session_id']) || $HTTP_POST_VARS['session_id'] != $userdata['session_id']) + { + // I've not added this to the language set at this time ... re-releasing + // every single language to include this for the once in a blue moon + // time it will be output is just not worthwhile at present. + message_die(GENERAL_MESSAGE, 'Invalid_session'); + } +} + // // What auth type do we need to check? // @@ -545,6 +565,7 @@ else if ( $submit || $confirm ) $topic_type = ( $topic_type != $post_data['topic_type'] && !$is_auth['auth_sticky'] && !$is_auth['auth_announce'] ) ? $post_data['topic_type'] : $topic_type; submit_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id, $topic_type, $bbcode_on, $html_on, $smilies_on, $attach_sig, $bbcode_uid, str_replace("\'", "''", $username), str_replace("\'", "''", $subject), str_replace("\'", "''", $message), str_replace("\'", "''", $poll_title), $poll_options, $poll_length); + if ( $error_msg == '' ) { user_notification($mode, $post_data, $forum_id, $topic_id, $post_id, $notify_user); @@ -908,7 +929,7 @@ if ( $mode == 'newtopic' || ( $mode == 'editpost' && $post_data['first_post'] ) } } -$hidden_form_fields = ''; +$hidden_form_fields = ''; switch( $mode ) { diff --git a/phpBB/privmsg.php b/phpBB/privmsg.php index 0e168cb051..edb97dd563 100644 --- a/phpBB/privmsg.php +++ b/phpBB/privmsg.php @@ -1151,7 +1151,7 @@ else if ( $submit || $refresh || $mode != '' ) $emailer->assign_vars(array( 'USERNAME' => $to_username, 'SITENAME' => $board_config['sitename'], - 'EMAIL_SIG' => str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']), + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']) : '', 'U_INBOX' => $server_protocol . $server_name . $server_port . $script_name . '?folder=inbox') ); diff --git a/phpBB/templates/subSilver/images/lang_italian/icon_quote.gif b/phpBB/templates/subSilver/images/lang_italian/icon_quote.gif index 30bc0487e96b4299bd56ee321b79f684cc0ad1d8..332c5e0617f1441f24d20ee22efec8f966215288 100644 GIT binary patch literal 666 zcmV;L0%iS2Nk%w1VNw7R0K^{v#>dA0|NduZWb*Rz>+9=hm$10Gxd~{Ov&z-w=H~hN z`2byv|NZ8Nv&ue*tQ#F2+uq(sM`nAf!pPa-fq{8Jc#{H9cmMwIousBOfT;ie`1$wT z9&()F?D6dL_W%F?A^8LW0018VEC2ui08#)F000I5;3tkG0Fh{_u59bRDE7>AWWac? z<4Gg{ih$;V@hNu53lkiMu#G}Tmq2@JfaCa z0D-)I&+q&HfPYg8goI2BObvN9ZWnQLLKGB%l$C*lg_)THoC69H5(gdu3^oi5ZxN{% z8j_ZK4Gyn+8XgW4nwp)vy8s6ZdIA_5r*w`AZo)yc9TSz9g%bw|o4nQp*w_GBc?u8@ z#HXhhrvMKFmJS&Q1+f7Q90vy(&JzXl1sw|N2k{3M2qyUBFribng9o<(>vjc#xQ7oQ z)T!j)001TqG)MrLz=4B(1QT#5V9SDm2?zlH4p5gsngoQ|63CpXP>%)$24+a2;A2C? zR}Lf)lJF58p#~Ndup8i^!Ge_)JP<%IjX;711u7OuV0ETfuQm55AOJvsSs5FyOymP? zpU_VgK4swKbihcu3kW!4G1Q{|EKp?p5*TZ4OW+HHfrvM>0a}^5eNkWAIp&B6I za2Xzg&3yM_gK$6s>8+tE9A2Fuv7eg*%3|;&S;4M$bPHgPw?H)k2=^>hfIy(YR+$bg zG=OKpK>^jQzitz?EKgh81UMD4c5Og5%LlnyH5|P>YX}BPH=teH6L(%P5n47+zrIZL z1V4|NdB5Yx45)?Ck7gmaw?Fxw6XD32B)CU5t>o z%K!c5`T6AtNJ8dy{*t#Wiw~%i7|JiGm7MdjJ0Lex$ZCfT!&9_y7L* z9dw}i_uS#^@&Et-A^8LW0018VEC2ui08#)F000I5;3tkG@Q`S#u59bRCT(Aj1 z0D-)I&+q&HfPYmCgoI5AO$vE;Qx|eR8XFZAft8klgN2%!1D%}`5(pXrj#3K@8b_&c zlb5cT8>kKxn}wdYw*UwUdIA*-zybq~1PqRpudkV#2M7m*xX}Xy)YJf5c^3~59l*dH z48Q;oL4gh#2n8BW90e2sp$G^Wv=jyM1s)9N2psYj2PpXKM`2pEgVnC_$`c2|18)!= z)-earLo*5<929^D@WHu#94I_!H^6}f1r!ed03_hR!2=2iFf>5epr%cQdNy1r0%1}c z0UaQ`tKsRwtDXS$+ms zwuvqS1qc*8$e=Zpf&&~P5O9Jwwc(l%V#X#LYJ%jm*a8g!;OkT^Xafr99nfS#f(Qrp zF0~Nh0f7e?EF6E(pa9vLCKV`{U|~Xm2)D~#6ICt`=ON$**pk+XfI);#shRy6o_YiO z;mbZSfB=;G-?j|FUV8}9)Bpyy<)`2>g0LA-z!?c(U;qFVR#@SL6i%q20UUPd;fElG bDB_4Da##Q&X@o+?iY&J1q8Kru5dr`^uGS&4 diff --git a/phpBB/templates/subSilver/profile_send_email.tpl b/phpBB/templates/subSilver/profile_send_email.tpl index 289addf51c..86c28cb4dd 100644 --- a/phpBB/templates/subSilver/profile_send_email.tpl +++ b/phpBB/templates/subSilver/profile_send_email.tpl @@ -57,7 +57,7 @@ function checkForm(formObj) { - + {S_HIDDEN_FIELDS} diff --git a/phpBB/update_to_203.php b/phpBB/update_to_203.php index 5fa3f8022c..9c4f602f14 100644 --- a/phpBB/update_to_203.php +++ b/phpBB/update_to_203.php @@ -441,7 +441,30 @@ switch ( $row['config_value'] ) END OF DROP GROUP -- don't remove anything after this point! -------------------------------------------------------------- */ break; + } + + case '.0.3': + + // Need to add index to post_id in search_wordmatch (mysql, postgresql, msaccess ... both indexes) + // Add auto_increment equiv to groups table (Doug overlooked it ...) for pgsql and msaccess + +//mysql + +//pgsql +"CREATE SEQUENCE phpbb_groups_id_seq start 3 increment 1 maxvalue 2147483647 minvalue 1 cache 1"; +CREATE TABLE temp AS SELECT did, city FROM distributors; +DROP TABLE distributors; +CREATE TABLE distributors ( + did DECIMAL(3) DEFAULT 1, + name VARCHAR(40) NOT NULL, +); +INSERT INTO distributors SELECT * FROM temp; +DROP TABLE temp; +CREATE INDEX post_id_phpbb_search_wordmatch ON phpbb_search_wordmatch (post_id); + +//msaccess + } echo "

Updating database schema

\n"; diff --git a/phpBB/upgrade.php b/phpBB/upgrade.php index b23eeb860d..c3f3ba1100 100644 --- a/phpBB/upgrade.php +++ b/phpBB/upgrade.php @@ -1900,7 +1900,7 @@ if ( !empty($next) ) { do { - add_search_words($row['post_id'], $row['post_text'], $row['post_subject']); + add_search_words('global', $row['post_id'], $row['post_text'], $row['post_subject']); $inc++; if ( $inc == $per_pct ) diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php index eaa0607fcf..cfca1c9ff6 100644 --- a/phpBB/viewtopic.php +++ b/phpBB/viewtopic.php @@ -117,7 +117,7 @@ if ( isset($HTTP_GET_VARS['view']) && empty($HTTP_GET_VARS[POST_POST_URL]) ) if ( $row = $db->sql_fetchrow($result) ) { - $topic_id = $row['topic_id']; + $topic_id = intval($row['topic_id']); } else { @@ -153,7 +153,7 @@ if ( !($forum_topic_data = $db->sql_fetchrow($result)) ) message_die(GENERAL_MESSAGE, 'Topic_post_not_exist'); } -$forum_id = $forum_topic_data['forum_id']; +$forum_id = intval($forum_topic_data['forum_id']); // // Start session management @@ -191,12 +191,12 @@ if( !$is_auth['auth_view'] || !$is_auth['auth_read'] ) $forum_name = $forum_topic_data['forum_name']; $topic_title = $forum_topic_data['topic_title']; -$topic_id = $forum_topic_data['topic_id']; +$topic_id = intval($forum_topic_data['topic_id']); $topic_time = $forum_topic_data['topic_time']; if ( !empty($post_id) ) { - $start = floor(($forum_topic_data['prev_posts'] - 1) / $board_config['posts_per_page']) * $board_config['posts_per_page']; + $start = floor(($forum_topic_data['prev_posts'] - 1) / intval($board_config['posts_per_page'])) * intval($board_config['posts_per_page']); } // @@ -317,7 +317,7 @@ $previous_days_text = array($lang['All_Posts'], $lang['1_Day'], $lang['7_Days'], if( !empty($HTTP_POST_VARS['postdays']) || !empty($HTTP_GET_VARS['postdays']) ) { $post_days = ( !empty($HTTP_POST_VARS['postdays']) ) ? $HTTP_POST_VARS['postdays'] : $HTTP_GET_VARS['postdays']; - $min_post_time = time() - ($post_days * 86400); + $min_post_time = time() - (intval($post_days) * 86400); $sql = "SELECT COUNT(p.post_id) AS num_posts FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p @@ -329,7 +329,7 @@ if( !empty($HTTP_POST_VARS['postdays']) || !empty($HTTP_GET_VARS['postdays']) ) message_die(GENERAL_ERROR, "Could not obtain limited topics count information", '', __LINE__, __FILE__, $sql); } - $total_replies = ( $row = $db->sql_fetchrow($result) ) ? $row['num_posts'] : 0; + $total_replies = ( $row = $db->sql_fetchrow($result) ) ? intval($row['num_posts']) : 0; $limit_posts_time = "AND p.post_time >= $min_post_time "; @@ -340,7 +340,7 @@ if( !empty($HTTP_POST_VARS['postdays']) || !empty($HTTP_GET_VARS['postdays']) ) } else { - $total_replies = $forum_topic_data['topic_replies'] + 1; + $total_replies = intval($forum_topic_data['topic_replies']) + 1; $limit_posts_time = ''; $post_days = 0; @@ -407,9 +407,40 @@ if ( $row = $db->sql_fetchrow($result) ) $total_posts = count($postrow); } -else -{ - message_die(GENERAL_MESSAGE, $lang['No_posts_topic']); +else +{ + include($phpbb_root_path . 'includes/functions_admin.' . $phpEx); + sync('topic', $topic_id); + + message_die(GENERAL_MESSAGE, $lang['No_posts_topic']); +} + +$resync = FALSE; +if ($forum_topic_data['topic_replies'] + 1 < $start + count($postrows)) +{ + $resync = TRUE; +} +elseif ($start + $board_config['posts_per_page'] > $forum_topic_data['topic_replies']) +{ + $row_id = intval($forum_topic_data['topic_replies']) % intval($board_config['posts_per_page']); + if ($postrows[$row_id]['post_id'] != $forum_topic_data['topic_last_post_id'] || $start + count($postrows) < $forum_topic_data['topic_replies']) + { + $resync = TRUE; + } +} +elseif (count($postrows) < $board_config['posts_per_page']) +{ + $resync = TRUE; +} + +if ($resync) +{ + include($phpbb_root_path . 'includes/functions_admin.' . $phpEx); + sync('topic', $topic_id); + + $result = $db->sql_query('SELECT COUNT(post_id) AS total FROM ' . POSTS_TABLE . ' WHERE topic_id = ' . $topic_id); + $row = $db->sql_fetchrow($result); + $total_replies = $row['total']; } $sql = "SELECT * @@ -597,7 +628,7 @@ $template->assign_vars(array( 'TOPIC_ID' => $topic_id, 'TOPIC_TITLE' => $topic_title, 'PAGINATION' => $pagination, - 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $board_config['posts_per_page'] ) + 1 ), ceil( $total_replies / $board_config['posts_per_page'] )), + 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / intval($board_config['posts_per_page']) ) + 1 ), ceil( $total_replies / intval($board_config['posts_per_page']) )), 'POST_IMG' => $post_img, 'REPLY_IMG' => $reply_img,