ó
    Ö›‘hç  ã                   ó  • S SK r S SKJr  S SKJr  S SKJr  SrSrSr	Sq
SqS	qS	qS	qS	qS	qS	qS	qS	qS	q S
r/ SQrSrSrSrSrSrSrSrSrSrSr Sr!Sr"Sr# " S S\RH                  5      r%Sr&S r'S r(S r)\*S:X  a  \)" 5         gg) é    N)Úreactor)ÚFactory)ÚbasicÚtestÚtwistediL  TFs(   +OK POP3 localhost v2003.83 server ready)s   TOPs   LOGIN-DELAY 180ó   USERs
   SASL LOGINó   STLSó   UIDLs   -ERR Unknown requests   +OK Command Completeds   -ERR LOGIN faileds   +OK Mailbox open, 0 messagess*   -ERR server side error start TLS handshakes   +OK quit completeds'   -ERR Unknown AUHORIZATION state commands   +OK 0 0s    +OK Unique-ID listing follows
.s#   +OK Mailbox scan listing follows
.s   +OK Capability list follows:c                   óT   • \ rS rSrSS jrS rS rS rS rS r	S	 r
S
 rS rS rSrg)ÚPOP3TestServeré5   Nc                 ó:   • SU l         S U l        S U l        Xl        g )NF)ÚloggedInÚcapsÚtmpUserÚctx)ÚselfÚcontextFactorys     ÚdC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/mail/test/pop3testserver.pyÚ__init__ÚPOP3TestServer.__init__6   s   € ØˆŒØˆŒ	ØˆŒØ!�ó    c                 ó.   • U R                  [        5        g ©N)ÚsendLineÚSTAT©r   Úreqs     r   ÚsendSTATRespÚPOP3TestServer.sendSTATResp<   ó   € Ø�‰”dÕr   c                 ó.   • U R                  [        5        g r   )r   ÚUIDLr   s     r   ÚsendUIDLRespÚPOP3TestServer.sendUIDLResp?   r!   r   c                 ó.   • U R                  [        5        g r   )r   ÚLISTr   s     r   ÚsendLISTRespÚPOP3TestServer.sendLISTRespB   r!   r   c                 ó�  • U R                   c  [        /U l         [        (       a  U R                   R                  [        5        [
        (       a  U R                   R                  [        5        [         H  nU R                   R                  U5        M      SR                  U R                   5      nUS-  nU R                  U5        g )Ns   
s   
.)
r   Ú	CAP_STARTÚUIDL_SUPPORTÚappendÚCAPABILITIES_UIDLÚSSL_SUPPORTÚCAPABILITIES_SSLÚCAPABILITIESÚjoinr   )r   ÚcapÚresps      r   ÚsendCapabilitiesÚPOP3TestServer.sendCapabilitiesE   s‰   € Ø�9‰9ÑÜ"˜ˆDŒIçŠ<Ø�I‰I×ÑÔ.Ô/çŠ;Ø�I‰I×ÑÔ-Ô.çˆCØ�I‰I×Ñ˜SÖ!ñ  à�|‰|˜DŸI™IÓ&ˆØ�Ñˆà�‰�dÕr   c                 ó¶   • [         (       a  U R                  5         g [        (       a"  [        R                  " SU R
                  5        g U R                  5         g )Né   )ÚDENY_CONNECTIONÚ
disconnectÚSLOW_GREETINGr   Ú	callLaterÚsendGreeting©r   s    r   ÚconnectionMadeÚPOP3TestServer.connectionMadeV   s=   € ßŠ?Ø�O‰OÔØçŠ=Ü×Ò˜b $×"3Ñ"3Õ4ð ×ÑÕr   c                 ó.   • U R                  [        5        g r   )r   ÚCONNECTION_MADEr>   s    r   r=   ÚPOP3TestServer.sendGreetinga   s   € Ø�‰”oÕ&r   c                 ó  ^• UR                  5       mU4S jn[        (       a  g[        (       a  U R                  5         gU" S5      (       a2  [        (       a  U R                  [        5        gU R                  5         gU" S5      (       a  [        (       a  U R                  5         gU" S5      (       aU  [        (       a  U R                  [        5        gSn UR                  S5      S   U l        [        nU R                  U5        gU" S5      (       as  Sn UR                  S5      S   nU R                  b  Uc  [        nO3U R                  [         :X  a  U["        :X  a  [$        nS	U l        O[        n U R                  U5        gU" S
5      (       a-  SU l        U R                  [(        5        U R                  5         g[*        (       a  U R                  [        5        gU R&                  (       d  U R                  [,        5        gU" S5      (       a  U R                  [        5        gU" S5      (       a"  [.        (       a  gU R                  [0        5        gU" S5      (       a"  [.        (       a  gU R                  [2        5        gU" S5      (       aC  [.        (       a  g[4        (       d  U R                  [        5        gU R                  [6        5        gg! [         a
    [        n GNùf = f! [         a
    [        n GN�f = f)zError Conditionsc                 ó,   >• TR                  U 5      S:g  $ )Néÿÿÿÿ)Úfind)ÚsÚulines    €r   Ú<lambda>Ú-POP3TestServer.lineReceived.<locals>.<lambda>h   s   ø€ ˜Ÿ™ A›¨"Ò,r   Ns   CAPAr	   r   Ú é   s   PASSTs   QUITFs   NOOPs   STATs   LISTr
   )ÚupperÚTIMEOUT_RESPONSEÚDROP_CONNECTIONr:   ÚINVALID_CAPABILITY_RESPONSEr   ÚINVALID_RESPONSEr5   r/   ÚstartTLSÚINVALID_LOGIN_RESPONSEÚsplitr   ÚVALID_RESPONSEÚBaseExceptionÚAUTH_DECLINEDÚUSERÚPASSÚAUTH_ACCEPTEDr   ÚLOGOUT_COMPLETEÚINVALID_SERVER_RESPONSEÚNOT_LOGGED_INÚTIMEOUT_DEFERREDr   r'   r,   r#   )r   ÚlinerG   r4   ÚpwdrI   s        @r   ÚlineReceivedÚPOP3TestServer.lineReceivedd   s(  ø€ ð —
‘
“ˆÜ,ˆçÒàçŠ?Ø�O‰OÔØá�'�]‰]ß*Ò*Ø—‘Ô.Õ/à×%Ñ%Õ'á�'�]‰]Ÿ{š{Ø�M‰M�Oá�'�]‰]ß%Ò%Ø—‘Ô.Ô/ØàˆDð%Ø#Ÿz™z¨#›¨qÑ1�”Ü%�ð �M‰M˜$Õá�'�]‰]ØˆDð%Ø—j‘j “o aÑ(�à—<‘<Ñ'¨3©;Ü(‘DØ—\‘\¤TÓ)¨c´T«kÜ(�DØ$(�D•Mä(‘Dð �M‰M˜$Õá�'�]‰]Ø!ˆDŒMØ�M‰Mœ/Ô*Ø�O‰OÕç$Ò$Ø�M‰MÔ*Õ+à——Ø�M‰Mœ-Õ(á�'�]‰]Ø�M‰Mœ.Õ)á�'�]‰]ßÒØØ�M‰Mœ$Õá�'�]‰]ßÒØØ�M‰Mœ$Õá�'�]‰]ßÒØß!’\Ø—‘Ô.Ô/Øà�M‰Mœ$Õð øô] !ó %Ü$“ð%ûô" !ó %Ü$“ð%ús0   ÃK Ä*K5 Å+K5 Å1K5 ËK2Ë1K2Ë5L	ÌL	c                 óÄ   • [         (       aD  U R                  b7  U R                  S5        U R                  R	                  U R                  5        g U R                  S5        g )Ns   +OK Begin TLS negotiation nows   -ERR TLS not available)r/   r   r   Ú	transportrS   r>   s    r   rS   ÚPOP3TestServer.startTLS»   s@   € ßŠ;˜4Ÿ8™8Ñ/Ø�M‰MÐ:Ô;Ø�N‰N×#Ñ# D§H¡HÕ-à�M‰MÐ3Õ4r   c                 ó8   • U R                   R                  5         g r   )re   ÚloseConnectionr>   s    r   r:   ÚPOP3TestServer.disconnectÂ   s   € Ø�‰×%Ñ%Õ'r   )r   r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r$   r(   r5   r?   r=   rb   rS   r:   Ú__static_attributes__© r   r   r   r   5   s6   † ô"òòòòò"	 ò'òU òn5õ(r   r   aü  popServer.py [arg] (default is Standard POP Server with no messages)
no_ssl  - Start with no SSL support
no_uidl - Start with no UIDL support
bad_resp - Send a non-RFC compliant response to the Client
bad_cap_resp - send a non-RFC compliant response when the Client sends a 'CAPABILITY' request
bad_login_resp - send a non-RFC compliant response when the Client sends a 'LOGIN' request
deny - Deny the connection
drop - Drop the connection after sending the greeting
bad_tls - Send a bad response to a STARTTLS
timeout - Do not return a response to a Client request
to_deferred - Do not return a response on a 'Select' request. This
              will test Deferred callback handling
slow - Wait 20 seconds after the connection is made to return a Server Greeting
c                 ó    • [        SU -  5        g )NzServer Starting in %s mode)Úprint)Úmsgs    r   ÚprintMessagers   Ö   s   € Ü	Ð
&¨Ñ
,Õ-r   c                 óª  • U R                  5       S:X  a  Sq[        S5        g U R                  5       S:X  a  Sq[        S5        g U R                  5       S:X  a  Sq[        S5        g U R                  5       S	:X  a  Sq[        S
5        g U R                  5       S:X  a  Sq[        S
5        g U R                  5       S:X  a  Sq[        S5        g U R                  5       S:X  a  Sq[        S5        g U R                  5       S:X  a  Sq	[        S5        g U R                  5       S:X  a  Sq
[        S5        g U R                  5       S:X  a  Sq[        S5        g U R                  5       S:X  a  Sq[        S5        g U R                  5       S:X  a%  [        [        5        [        R                   " 5         g [        [        5        [        R                   " 5         g )NÚno_sslFzNON-SSLÚno_uidlzNON-UIDLÚbad_respTzInvalid Server ResponseÚbad_cap_respzInvalid Capability ResponseÚbad_login_respÚdenyzDeny ConnectionÚdropzDrop ConnectionÚbad_tlszBad TLS ResponseÚtimeoutzTimeout ResponseÚto_deferredzTimeout Deferred ResponseÚslowzSlow Greetingz--help)Úlowerr/   rs   r,   r]   rQ   rT   r9   rP   ÚBAD_TLS_RESPONSErO   r_   r;   rq   ÚusageÚsysÚexit)Úargs    r   Ú
processArgr†   Ú   sj  € Ø
‡y�yƒ{�hÓàˆÜ�YÕà	�‰‹˜	Ó	!àˆÜ�ZÕ à	�‰‹˜
Ó	"à"&ÐÜÐ.Õ/à	�‰‹˜Ó	&à&*Ð#ÜÐ2Õ3à	�‰‹Ð(Ó	(à!%ÐÜÐ2Õ3à	�‰‹˜Ó	àˆÜÐ&Õ'à	�‰‹˜Ó	àˆÜÐ&Õ'à	�‰‹˜	Ó	!àÐÜÐ'Õ(à	�‰‹˜	Ó	!àÐÜÐ'Õ(à	�‰‹˜Ó	%àÐÜÐ0Õ1à	�‰‹˜Ó	àˆÜ�_Õ%à	�‰‹˜Ó	 ÜŒeŒÜ�Š�
ô 	ŒeŒÜ�Š�
r   c                  ó.  • [        [        R                  5      S:  a  [        S5        O'[        R                  SS  n U  H  n[	        U5        M     [        5       n[        Ul        [        R                  " [        U5        [        R                  " 5         g )Né   zPOP3 with no messagesrM   )Úlenrƒ   Úargvrs   r†   r   r   Úprotocolr   Ú	listenTCPÚPORTÚrun)Úargsr…   Úfs      r   Úmainr‘     sd   € Ü
Œ3�8‰8ƒ}�qÓÜÐ,Õ-ä�x‰x˜˜ˆ|ˆãˆCÜ�sŽOñ ô 	‹	€AÜ€A„JÜ×Ò”d˜AÔÜ‡K‚K…Mr   Ú__main__)+rƒ   Útwisted.internetr   Útwisted.internet.protocolr   Útwisted.protocolsr   rY   rZ   r�   r/   r,   r]   rQ   rT   r9   rP   r�   rO   r_   r;   rB   r1   r0   r.   rR   rV   rX   r[   Ú	TLS_ERRORr\   r^   r   r#   r'   r+   ÚLineReceiverr   r‚   rs   r†   r‘   rj   ro   r   r   Ú<module>r˜      sò   ðó å $Ý -Ý #à€Ø€à€à€Ø€ØÐ Ø#Ð ØÐ Ø€Ø€ØÐ ØÐ ØÐ Ø€à Ø=€âC€àÐ ØÐ ð +Ð Ø)€Ø$€Ø/€Ø9€	Ø'€Ø:€Ø€Ø,€Ø/€Ø+€	ôN(�U×'Ñ'ô N(ðb	€ò .ò>òBð ˆzÓÙ…Fð r   