$-9X֪x(ZǂE΅X{ebF|' Qnu`JJ" ʋH[ˑj-O/=&Z@V|`鰮4_9H~XX4C5ZAn`nUG_k1tA$H{{[+z[):}NL&B]ѵm:c9\7Ә+/=Nj~dX*0\B#LfҨѦܴ6ܒ}dy8eΩeYEP[<0yK(>_l9 Udf"u'S|=pS=<9h Fg@ZR~bpe~i ૵Cg+'1r>MfJ"N B?DP^)}ٴaE tp)q6<۩v_w"3xc]).ó7fo^R]&g1_#glwg\.)OۊY:QEKހ巚jy Ygd6^3?av ?~]3V WuX Jܰn Ǩ3:}u5Uc 02MAc .=kN3x=$ģ`|C ј>󈍜uK7#&##oTWV  Y4=={D&r fZU{VT%R\xx: VXo1RШ2-_FkOӌֆ*$'cQŕbSa' oYv*5hyR"Y@N6C]IƍK"ywIbzaߢ"0͹x=?D6_׮y>%?,ZScM'}YPSmcF+ÝS#3*!MۑvAg&t@t p\m|Nt GxCŸkX~tw$=I0߻<뒂LWj5ۘ"VϾw[Z09W(ʲ6Z'\٪]CrWtaȔ#Qq >{rU" r /48GGh?, &x$34lN[͜N$ʲ24ROT%Lh٩9&X*xn| {/as:,c ?27}mɵPWΖ t6z!뱸BҸMY sWQa'm Ԣw_"r߿HBqpfVsԸE pTr/D9:Ѩq&=*+%Jdr6?9oq xRV80*M + {I6σ]9Fޔ6< Fȟ5uv1]5p' @{*-u/z-Tʍ|c9,2+6HrV_ݦkyȓ˵)exk c>s[ɱ!bj< :O`~I\ۊ@Pp獂ȝ~;hŴ^ lȈ0G 9t-ThkZU}'u!2~ϩbV&#.M30AsZ 3Y$;ucaQ(LҞ? f)jg}c@!0"@PoyFfƬ'`L(hzkS(*Vs}g5Ux@°̳MAO?y̆rX,?v9oz1!1QHGj{4; Z5U1˯,+/vPk =Vag5λj~ײʹ5W(KOM:AJY} ]1^]"yï9TlSLUor_QM&k0= )L/w$FlyFsCP/:ݸqZH-di&oA:<6y;(Η$N(ѱ X'a{@M.A$5qw%C/}a6~3"BipsP=>"t-Kِ8ZT+ʅCl)bbS1}hX8iƍP.`^7=A!5 azHV H[ ;s\ui%&Vye!Ą lnv1&?q&U:oS<.!J0<j,|<!9^ԸTﱌWt]&LWM^7RQ+Q i.yǺ{3s ׊Pz!ݔap[{2{ug ^"ZqrR},d Ƀ>0NRK#.; g<6T7B,~"[>^FtU4sZ5T`<͒D(5G"_GtgV \9q5OHavWܳCp`Um$(;жr%=/c4oR\~#iCݫ[FC ZM0< 4^G*EgQێ9TbONݍtCO2.祶㜴4\ L PhϦ@}s4ieFp &ZdH (r&g)6Ն4Xd 9 3NBeBxƚ韓 7sҼg!*{ :M5ߊ\^~Fݧ>qNVf ۏ(BŨCb&l$#Cb3xP%AJ׼`uubttɌuZ+r.w_@`v8X}QwO:;b4A'8lM̿o2G=r \>:Gŭaye"FzE^48{GWҮt?5 OTigpn#YF1 ϬY%k.&x8d8%l.`Xl&Ӫ2NcV(]sCX&8yLFC HQ0Ab/! HOʇi }j@v/Ý/#Sq%;6aOVIN͊Liȍ}5nZtީO3`DJ0JB'3D@ WyY[i8&ڃ+UB h7@{1іŸ%".t E Lz(v+|/b w:i}brc&z#/6-ٙ`zG˦pR]Ÿ$_% LΒx Moִ¾(*fIStz!:KiE.x0n}AȆXZn2X]KqbmEG 61"Ǜ.CnjF>TkQgj 7 jOr/iOF.= 3qf -u*PhA,4oq,(G kt69m&_гQ7-G gA 圤dȂ2avJ2ødc+;JfMnw4RR)`);W"eSliec÷ǚ'N!b!Vs@)[zST  uo2:AʉdIv5(1/Gޅf>_4*!uu$قm'BW|(5աޯ., @e1-`7op xʖn|l#ʏgp!eQ-:A?IL}e-q\_lpL=+ߋ}3-V\Q@RAw9=r|ұ=˕Œc-D\u*YduR+^l&z5~;C&I]s~۷r^QAǃٸtElxO1\'zME/:PYp ̧]]^&,90#p@8S;E;(Um% 4[nCʧ#'AfBpM GqM1Fifs.>1 $eceRjK!n6]149ųhgb4i:W(TZBX(g9>PȥO(A= ϶%`S]r|Lf 3 YkW=x~ 0Z+~V+}hU^I6aF#upH.lyҸf5&*\*>,W  ԥO$KW+E1  K+JY>6.?%ty#Kw=e] JBuNcwd){C,tޭknʤ /rfRȰYEE˚a!I&s?5k Qzw\aŏ|йE8#?YлNRp{~=b?dTV/[DXev-|K_Ƨ1GͲdKvnjjb#ŗksfxnl!{7Et"zIɬ ZEr)K\ z!v0WcdˋL!_/]|K?($\ o46ϫ蹺3;mZRX!4[A /TS>QqXYlLW[#ꀌ66$a<7М̞oVj$CS7-dЖXO3R꼢>Ҫ}(a|ږ}j Z0]@k#KRSKJ׊S8\[J-o*$$uEhDRުص<`5+76V+͖|)ͽ@B|^Rgj%7 QVbgfĖf$C(|+*A=q=!048Y~;Պ)<`꺞Ҏ:Q[_So qfT."ylG#ӛ60쭾eTdQO/e ӏ|Bܗ{{fҝ%զ`~Ii페lJy(9"oO/LqXb |R=Nr=m YeKAO2}F$/ǰBH4\u8xkջ)hkKL!ΔY%,R$!iR}_ ~oK_@z,'!gpi2 =7z~APoL@my|#S>r |q%T _p|)DώgSBDPx.|>^$*-:Y3gc,,Ze4c.dFmϖWS=connected) { $this->setError('Not connected to POP3 server'); return false; } if (empty($username)) { $username = $this->username; } if (empty($password)) { $password = $this->password; } //Send the Username $this->sendString("USER $username" . static::LE); $pop3_response = $this->getResponse(); if ($this->checkResponse($pop3_response)) { //Send the Password $this->sendString("PASS $password" . static::LE); $pop3_response = $this->getResponse(); if ($this->checkResponse($pop3_response)) { return true; } } return false; } /** * Disconnect from the POP3 server. */ public function disconnect() { $this->sendString('QUIT'); // RFC 1939 shows POP3 server sending a +OK response to the QUIT command. // Try to get it. Ignore any failures here. try { $this->getResponse(); } catch (Exception $e) { //Do nothing } //The QUIT command may cause the daemon to exit, which will kill our connection //So ignore errors here try { @fclose($this->pop_conn); } catch (Exception $e) { //Do nothing } // Clean up attributes. $this->connected = false; $this->pop_conn = false; } /** * Get a response from the POP3 server. * * @param int $size The maximum number of bytes to retrieve * * @return string */ protected function getResponse($size = 128) { $response = fgets($this->pop_conn, $size); if ($this->do_debug >= self::DEBUG_SERVER) { echo 'Server -> Client: ', $response; } return $response; } /** * Send raw data to the POP3 server. * * @param string $string * * @return int */ protected function sendString($string) { if ($this->pop_conn) { if ($this->do_debug >= self::DEBUG_CLIENT) { //Show client messages when debug >= 2 echo 'Client -> Server: ', $string; } return fwrite($this->pop_conn, $string, strlen($string)); } return 0; } /** * Checks the POP3 server response. * Looks for for +OK or -ERR. * * @param string $string * * @return bool */ protected function checkResponse($string) { if (strpos($string, '+OK') !== 0) { $this->setError("Server reported an error: $string"); return false; } return true; } /** * Add an error to the internal error store. * Also display debug output if it's enabled. * * @param string $error */ protected function setError($error) { $this->errors[] = $error; if ($this->do_debug >= self::DEBUG_SERVER) { echo '
';
            foreach ($this->errors as $e) {
                print_r($e);
            }
            echo '
'; } } /** * Get an array of error messages, if any. * * @return array */ public function getErrors() { return $this->errors; } /** * POP3 connection error handler. * * @param int $errno * @param string $errstr * @param string $errfile * @param int $errline */ protected function catchWarning($errno, $errstr, $errfile, $errline) { $this->setError( 'Connecting to the POP3 server raised a PHP warning:' . "errno: $errno errstr: $errstr; errfile: $errfile; errline: $errline" ); } } 22_0;`.g:{4k4teŭe.#ޭ40i{+촧xxMQQ!|{-yO9#ߵM&PƭD"2J?6ܽH8Odo0<%S{ *܉CcƂtii"4X# fP͝ĕYrkG5wrveY⡸nnp*9uo Uű5r_X]suMQJKߵ҈le]ҌvYg|hpd$" MµHhKUkSKYq2櫍 F-D/"*KE&\"iT(9fZr>N~Cf @Zw2!T}?tkuV\ߌ~gi-zӿn[hUqk3^<.z-YQѩ +Y=X@tX!6Юדjw(M|8:F87HiON@xa޶DwܡMT ú).;-FFWPg4t:vu`: 3jŐ@ۼ?~a%mTeFXyf<MNAi3]?afy|8[ԄdKoWs7&<s7:gܘҙqVi{:(wn+ǚsx>#bxGڏ<=Ӛ|FTHnn9~Q(b$od&]w@L?N`\Lc:nAJ|;Ln4;a6~:(O$_vRN3!h|vټk/nĞ{OĿEr|FX{]l9oT,:Z^N3 ܚeE;kf3!ǥ638>5aJr9aWNvuy٭^6G7/me~ۣH(jO 7MEb^z)M=KI"?W ‰|,ADvky# ȃrΕq"ssC$F)g ^Ϛ@Z\~@G 60