ó
    F\h
  ã                   ó†   • S r SSKrSSKrSS/r " S S\5      r " S S5      r " S S5      r\S	:X  a  \	" \" 5       5        gg)
z-An object-oriented interface to .netrc files.é    NÚnetrcÚNetrcParseErrorc                   ó(   • \ rS rSrSrSS jrS rSrg)r   é
   z5Exception raised on syntax errors in the .netrc file.Nc                 óR   • X l         X0l        Xl        [        R	                  X5        g ©N)ÚfilenameÚlinenoÚmsgÚ	ExceptionÚ__init__)Úselfr   r	   r
   s       Ú/usr/lib/python3.13/netrc.pyr   ÚNetrcParseError.__init__   s   € Ø ŒØŒØŒÜ×Ñ˜4Õ%ó    c                 óZ   • U R                   < SU R                  < SU R                  < S3$ )Nz (z, line Ú))r   r	   r
   )r   s    r   Ú__str__ÚNetrcParseError.__str__   s   € Ø%)§X¤X¨t¯}¬}¸d¿k¼kÐJÐJr   )r	   r
   r   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   Ú__static_attributes__© r   r   r   r   
   s   † Ù?ô&õKr   c                   ó,   • \ rS rSrS rS rS rS rSrg)Ú	_netrclexé   c                 ó:   • SU l         Xl        SU l        / U l        g )Né   z
	 )r
   ÚinstreamÚ
whitespaceÚpushback)r   Úfps     r   r   Ú_netrclex.__init__   s   € ØˆŒØŒØ#ˆŒØˆ�r   c                 ór   • U R                   R                  S5      nUS:X  a  U =R                  S-  sl        U$ )Nr!   Ú
)r"   Úreadr
   )r   Úchs     r   Ú
_read_charÚ_netrclex._read_char   s0   € Ø�]‰]×Ñ Ó"ˆØ�‹:Ø�KŠK˜1Ñ�KØˆ	r   c                 óÔ  • U R                   (       a  U R                   R                  S5      $ Sn[        U R                  S5      nU H�  nX0R                  ;   a  M  US:X  a1  U H)  nUS:X  a  Us  s  $ US:X  a  U R                  5       nX-  nM+     MK  US:X  a  U R                  5       nX-  nU H2  nX0R                  ;   a  Us  s  $ US:X  a  U R                  5       nX-  nM4     MŸ     U$ )Nr   Ú Ú"Ú\)r$   ÚpopÚiterr+   r#   )r   ÚtokenÚfiterr*   s       r   Ú	get_tokenÚ_netrclex.get_token#   s×   € Ø�=�=Ø—=‘=×$Ñ$ QÓ'Ð'ØˆÜ�T—_‘_ bÓ)ˆÛˆBØ—_‘_Ó$ÙØ�S‹yÛ�BØ˜S“yØ$œØ˜t›Ø!Ÿ_™_Ó.˜Ø‘K’Eó  ð ˜“:ØŸ™Ó*�BØ‘�Û�BØŸ_™_Ó,Ø$œØ˜t›Ø!Ÿ_™_Ó.˜Ø‘K’Eó  ñ ð( ˆr   c                 ó:   • U R                   R                  U5        g r   )r$   Úappend)r   r3   s     r   Ú
push_tokenÚ_netrclex.push_token>   s   € Ø�‰×Ñ˜UÕ#r   )r"   r
   r$   r#   N)	r   r   r   r   r   r+   r5   r9   r   r   r   r   r   r      s   † òòòõ6$r   r   c                   ó6   • \ rS rSrS	S jrS rS rS rS rSr	g)
r   éB   Nc                 ó¤  • US L nUc=  [         R                  R                  [         R                  R                  S5      S5      n0 U l        0 U l         [        USS9 nU R                  XU5        S S S 5        g ! , (       d  f       g = f! [         a:    [        USS9 nU R                  XU5        S S S 5         g ! , (       d  f        g = ff = f)NÚ~z.netrczutf-8)ÚencodingÚlocale)	ÚosÚpathÚjoinÚ
expanduserÚhostsÚmacrosÚopenÚ_parseÚUnicodeDecodeError)r   ÚfileÚdefault_netrcr%   s       r   r   Únetrc.__init__C   s£   € Ø ˜ˆØ‰<Ü—7‘7—<‘<¤§¡× 2Ñ 2°3Ó 7¸ÓBˆDØˆŒ
ØˆŒð	5Ü�d WÒ-°Ø—‘˜D mÔ4÷ .×-Ö-ûä!ó 	5Ü�d XÒ.°"Ø—‘˜D mÔ4÷ /×.×.Ð.úð	5úsH   Á
B ÁA:Á1B Á:
BÂB ÂB ÂCÂB<Â2CÂ<
C	ÃCÃCc                 óú  • [        U5      n UR                  nUR                  5       =pgU(       d  g US   S:X  a;  UR                  U:X  a)  [        U5      S:X  a  UR                  R                  5         Mj  US:X  a  UR                  5       nO©US:X  a  SnO US:X  a�  UR                  5       n/ U R                  U'    UR                  R                  5       n	U	(       d  [        SXR                  5      eU	S:X  a  O U R                  U   R                  U	5        M^  GM  [        S	U-  XR                  5      eU(       d  [        S
U-  XR                  5      eS=n
=p¼0 U R                  U'    UR                  nUR                  5       nUR                  S5      (       a,  UR                  U:X  a  UR                  R                  5         M_  US;   a#  X«U4U R                  U'   UR                  U5        OfUS:X  d  US:X  a  UR                  5       n
OGUS:X  a  UR                  5       nO0US:X  a  UR                  5       nO[        SU-  XR                  5      eMí  U R                  X#U R                  U   S   5        GMp  )Nr!   r   Ú#ÚmachineÚdefaultÚmacdefz.Macro definition missing null line terminator.r(   zbad toplevel token %rzmissing %r namer.   >   r.   rQ   rP   rO   ÚloginÚuserÚaccountÚpasswordzbad follower token %r)r   r
   r5   Úlenr"   ÚreadlinerF   r   r8   rE   Ú
startswithr9   Ú_security_check)r   rJ   r%   rK   ÚlexerÚsaved_linenoÚtoplevelÚttÚ	entrynameÚlinerR   rT   rU   Úprev_linenos                 r   rH   Únetrc._parseP   sN  € Ü˜"“ˆØà Ÿ<™<ˆLØ!ŸO™OÓ-Ð-ˆHÞØØ�A‘˜#“Ø—<‘< <Ó/´C¸³G¸q³LØ—N‘N×+Ñ+Ô-ÙØ�y“Ø!ŸO™OÓ-‘	Ø�y“Ø%‘	Ø�x“Ø!ŸO™OÓ-�	Ø)+�—‘˜IÑ&ØØ Ÿ>™>×2Ñ2Ó4�DÞÜ-ØLØ §,¡,ó0ð 0ð ˜t“|ð Ø—K‘K 	Ñ*×1Ñ1°$Ô7ñ ò ä%Ø+¨bÑ0°$¿¹óFð Fö Ü%Ð&7¸"Ñ&<¸dÇLÁLÓQÐQð *,Ð+ˆEÐ+�GØ$&ˆD�J‰J�yÑ!ØØ#Ÿl™l�Ø—_‘_Ó&�Ø—=‘= ×%Ñ%Ø—|‘| {Ó2ØŸ™×/Ñ/Ô1ÙØÐ=Ó=Ø-2¸XÐ,F�D—J‘J˜yÑ)Ø×$Ñ$ RÔ(ØØ˜7“] b¨F£lØ!ŸO™OÓ-‘EØ˜9“_Ø#Ÿo™oÓ/‘GØ˜:Ó%Ø$Ÿ™Ó0‘Hä)Ð*AÀBÑ*FØ*.·±ó>ð >ñ% ð( × Ñ  °D·J±J¸yÑ4IÈ!Ñ4LÔMòy r   c                 óž  • [         R                  S:X  aò  U(       aê  US:w  aã  [         R                  " UR                  5       5      nUR                  [         R
                  " 5       :w  a]  SS Kn UR                  UR                  5      S   n UR                  [         R
                  " 5       5      S   n[        SU SU S35      eUR                  [        R                  [        R                  -  -  (       a  [        S5      eg g g g ! [         a    SUR                  -  n N—f = f! [         a    S[         R
                  " 5       -  n N—f = f)	NÚposixÚ	anonymousr   zuid %sz~/.netrc file owner (z, z) does not match current userzY~/.netrc access too permissive: access permissions must restrict access to only the owner)rA   ÚnameÚfstatÚfilenoÚst_uidÚgetuidÚpwdÚgetpwuidÚKeyErrorr   Úst_modeÚstatÚS_IRWXGÚS_IRWXO)r   r%   rK   rR   Úproprj   ÚfownerrS   s           r   rY   Únetrc._security_check�   s  € Ü�7‰7�gÓ¦-°E¸[Ó4HÜ—8’8˜BŸI™I›KÓ(ˆDØ�{‰{œbŸiši›kÓ)Ûð4Ø Ÿ\™\¨$¯+©+Ó6°qÑ9�Fð2ØŸ<™<¬¯	ª	«Ó4°QÑ7�Dô &Ø,¨V¨H°B°t°fð =%ð %ó'ð 'ð —‘¤§¡¬t¯|©|Ñ ;×<Ü%ð!ó"ð "ð =ð 5I -Ðøô  ó 4Ø%¨¯©Ñ3’Fð4ûô  ó 2Ø#¤b§i¢i£kÑ1’Dð2ús$   Á.D Â'D' ÄD$Ä#D$Ä'"EÅEc                 ó~   • XR                   ;   a  U R                   U   $ SU R                   ;   a  U R                   S   $ g)z8Return a (user, account, password) tuple for given host.rP   N)rE   )r   Úhosts     r   ÚauthenticatorsÚnetrc.authenticators¦   s9   € à—:‘:ÓØ—:‘:˜dÑ#Ð#Ø˜$Ÿ*™*Ó$Ø—:‘:˜iÑ(Ð(àr   c                 ó^  • SnU R                   R                  5        HC  nU R                   U   nUSU SUS    S3-  nUS   (       a  USUS    S3-  nUSUS	    S3-  nME     U R                  R                  5        H+  nUS
U S3-  nU R                  U    H  nX-  nM	     US-  nM-     U$ )z3Dump the class data in the format of a .netrc file.r.   zmachine z
	login r   r(   r!   z		account z
	password é   zmacdef )rE   ÚkeysrF   )r   Úrepru   ÚattrsÚmacror_   s         r   Ú__repr__Únetrc.__repr__¯   sÒ   € àˆØ—J‘J—O‘OÖ%ˆDØ—J‘J˜tÑ$ˆEØ�X˜d˜V :¨e°A©h¨Z°rÐ:Ñ:ˆCØ�Q�xØ˜ E¨!¡H :¨RÐ0Ñ0�Ø�[  q¡ 
¨"Ð-Ñ-ŠCñ &ð —[‘[×%Ñ%Ö'ˆEØ�W˜U˜G 2Ð&Ñ&ˆCØŸ™ EÔ*�Ø‘’ñ +à�4‰KŠCñ	 (ð
 ˆ
r   )rE   rF   r   )
r   r   r   r   r   rH   rY   rv   r~   r   r   r   r   r   r   B   s   † ô5ò>Nò@"ò,õr   Ú__main__)
r   rA   rn   Ú__all__r   r   r   r   r   Úprintr   r   r   Ú<module>rƒ      sV   ðÙ 3÷ àÐ%Ð
&€ô	K�iô 	K÷)$ñ )$÷X{ñ {ðz ˆzÓÙ	‰%‹'…Nð r   