(aAN+Ac+x{d,o-ItCqdh#:z &}BR60%J+v@sܘCEJXuDh4EqZF`, ri>M(M!'NnTX,"bƖchU ֘JCl/ AK!Gr?m'F1jFe}b  Z~){T^ک|ʆ㝆RՉK\fQ:0RG=.>܊QR:rU!LS~g^ CX5n^C$p.|AW^# ?4Y+bҝT ẈdCTaFt>L3xGR0̬x248їKdxo> SRF)l<%7-fhz8C4:y_8mlbs9S;O"4>5j>h@>]MT NlDxWn"NF]̟'QD{?JA)ȋs\WCw9Ų=I'Cb)T-9Z#N@JXGt8.}EN r'Au4Yַ֛Ý 04aHl9-_S*Eɰ :;:G&E.`-.G`4iőqjm6gs9@,ʽ/>]o!n|v6QD%TRp)a 9y@XD̙V[fi))}V|NnǭAE& :)!Dw?<Б"O,ufe9_S?gHI_2Pb6t Ǵw xڰ۵e3I]Ŭxڬ~چK)2[<J\:}\ ެhÂr߁fhj+S4;Bmo D Q!fӠPsMl@kÔFj薯qݨ"5[4l@7a]W<(c kݿ"6 Ol~UA>Y@ε =L.1(n[qw!(!1x@kWAU?&$x GtT|Oe j[ƅq 1ʈSuJ4RPtI^sJ1Abj XrmYˠt‚ j??5|&)<+Bhwnek.!2LM_ôdҼY&WាC)טN.kˈe.d Jr)'>~S?xdDSqKWl;f0UNoeiQXJcd_NNVVK:w>=BA ^TS"+m VZ v w{ϐ͓ XZ&: >똩rlm S;J\T?Nh&U9x`ɽ?;D4_MhcR"bᵭFgrY#g| ^)z֏Y'PiwPK264 \l4ɁT^F>Ŕ*1R.ga5h8sI]<'S M[cKoC )#1 FҼ0bg&Ar2K$qz>2RI ͔iR9rLqnInZqͱ]gN' %ؗWreEfY Gz1f2ug$n {xe7H_,Zd@E*Sƞ`,\x5lʱ>vf]Џ%]JLa©wݏ+N0%ظ&KhUX!Խ~U>QQ*If˳2wgFN5K]Op20,23U~K559;'c&~KEۜ8wgFN5K]O1bN!:f,{=hS¨=K yxNHLޯ%rnD.Y֍՟ܽ2M{x{7 S80=")f`wgFN5K]Ojǭ2W?%[Eð<}y_2ٷ(ž'I#>@ ŽÀZ\ nou_Ӕ\ke'\TUa4Q9u,lW9$(%D&;2/gTL"(9MFǕaVO.B_ BK`Y5vG2vȒ6-j,ƣsA>{3;'vHʟ/ Ld|o1uEKla1C :d!ɽ>B z5[O3|߀ʶ.\vG, hH5tem?8OPPYˠt‚ Kllm؝O1W&&/7y /!PO!E0*>ta'DC)טN.^tۧZ㒼1F2TB:*8#O&eE{%vL_؆D*F^EfkZw`г Sv O uc>9$k[g3KB߆UvL8KʥTjw"BՉ9yUyytVʮUTmI*_5zW}A(+#װVWAYN˅Á˒JNf1TeM|*){ƣjSOY#U IJ1?t&DXQռ- J_gF䷚ qjSOY#U I<+GhYU+c&uiInGV7Mg&ow*~0!XSzB&*8ȏ-e) ?RI]V\N1 {y Hoovv R#' > Uάl1c^Kc$T8Y ӅEЍQsXdgf< Ob^K3xF5HA=FJrhi߿\o\v|%n[+Պ_bS>#Ľ*puU$^JT!y.H>fP.v()eLUN]pW![X{yJ$X:zy5PqO 8FLjHJ=5x۲ CgVUˌwLiq 8D0:EP9p<O.$(@o* 6{ p+kYyJoࠠ8Js#ۀ֜zUx Jʾ`W3AЧ rn PASSWORD_SUCCESS; } } else { // Note: Don't be tempted to check affected_rows = 1. For some queries // (e.g. INSERT ... ON DUPLICATE KEY UPDATE) the result can be 2. if ($db->affected_rows($res) > 0) { return PASSWORD_SUCCESS; } } } return PASSWORD_ERROR; } /** * Parse DSN string and replace host variables * * @param string $dsn DSN string * * @return string DSN string */ protected static function parse_dsn($dsn) { if (strpos($dsn, '%')) { // parse DSN and replace variables in hostname $parsed = rcube_db::parse_dsn($dsn); $host = rcube_utils::parse_host($parsed['hostspec']); // build back the DSN string if ($host != $parsed['hostspec']) { $dsn = str_replace('@' . $parsed['hostspec'], '@' . $host, $dsn); } } return $dsn; } }