ó
    6°hƒ  ã                  óŠ   • S SK Jr  S SKrSSKJr  SSKJrJrJr  SS jr	S r
S r " S	 S
5      r " S S5      r " S S5      rg)é    )ÚannotationsNé   )Úencoding)ÚdateutilÚprocutilÚ
stringutilc                ó2  ^ ^• U U4S jnUS:”  aq   TR                  U5      nUR                  U:¼  aO  TR                  U5      n[        US-
  SS5       H  nU" SXxS-
  4-  SXx4-  S9  M     U" XsS:„  =(       a    US-   S9  T" USS	S
9$ ! [         a     Nf = f)zsOpen log file in append mode, with optional rotation

If maxsize > 0, the log file will be rotated up to maxfiles.
c           	     ó  >•  TR                  U5         U(       a  TR                  X5        g g ! [         a\  nUR                  [        R                  :w  a4  TR	                  SU[
        R                  " UR                  5      4-  5         S nAN|S nAff = f! [         aa  nUR                  [        R                  :w  a9  TR	                  SX[
        R                  " UR                  5      4-  5         S nAg  S nAg S nAff = f)Ns    warning: cannot remove '%s': %s
s(   warning: cannot rename '%s' to '%s': %s
)	ÚunlinkÚOSErrorÚerrnoÚENOENTÚdebugr   Ú
strtolocalÚstrerrorÚrename)ÚoldpathÚnewpathÚerrÚuiÚvfss      €€Ú7/usr/lib/python3/dist-packages/mercurial/loggingutil.pyÚrotateÚopenlogfile.<locals>.rotate   sÓ   ø€ ð	Ø�J‰J�wÔð	ÞØ—
‘
˜7Õ,ð øô ó 	Ø�y‰yœEŸL™LÓ(Ø—‘Ø8Ø¤× 3Ò 3°C·L±LÓ AÐBñCôÿøð	ûô ó 	Ø�y‰yœEŸL™LÓ(Ø—‘Ø@Ø¬×)<Ò)<¸S¿\¹\Ó)JÐKñL÷ñ ô )ûð	ús-   ƒ/ •B ¯
B¹ABÂBÂ
DÂ"AC>Ã>Dr   r   éÿÿÿÿs   %s.%d)r   r   s   .1ó   aF)Úmakeparentdirs)ÚstatÚst_sizeÚjoinÚranger   )	r   r   ÚnameÚmaxfilesÚmaxsizer   ÚstÚpathÚis	   ``       r   Úopenlogfiler(      s°   ù€ öð& �ƒ{ð	LØ—‘˜$“ˆBð �z‰z˜WÓ$Ø—x‘x “~�Ü˜x¨!™|¨Q°Ö3�AÙØ (¨D°a±%¨=Ñ 8Ø (¨D¨9Ñ 4ôñ 4ñ
 ˜t¸©\×-J¸dÀU¹lÒKÙˆt�T¨%Ñ0Ð0øô ó 	Ùð	ús   ‘B	 Â	
BÂBc                ób   • [         R                  " SS9n[        R                  " 5       nSXU 4-  $ )Ns   %Y/%m/%d %H:%M:%S)Úformats   %s (%d)> %s)r   Údatestrr   Úgetpid)ÚmsgÚdateÚpids      r   Ú_formatlogliner0   B   s/   € Ü×ÒÐ#7Ñ8€DÜ
�/Š/Ó
€CØ˜T¨Ð,Ñ,Ð,ó    c                ó"   • SU;   =(       d    X;   $ )Nó   *© )ÚeventÚtrackeds     r   Ú_matcheventr7   H   s   € Ø�7‰?×.˜eÑ.Ð.r1   c                  ó.   • \ rS rSrSrSS jrS rS rSrg)	Ú
fileloggeréL   z;Basic logger backed by physical file with optional rotationc                óT   • Xl         X l        [        U5      U l        X@l        XPl        g ©N)Ú_vfsÚ_nameÚsetÚ_trackedeventsÚ	_maxfilesÚ_maxsize)Úselfr   r"   r6   r#   r$   s         r   Ú__init__Úfilelogger.__init__O   s"   € ØŒ	ØŒ
Ü! '›lˆÔØ!ŒØ�r1   c                ó,   • [        XR                  5      $ r<   ©r7   r@   ©rC   r5   s     r   r6   Úfilelogger.trackedV   ó   € Ü˜5×"5Ñ"5Ó6Ð6r1   c                ór  • [        U5      n [        UU R                  U R                  U R                  U R
                  S9 nUR                  U5        S S S 5        g ! , (       d  f       g = f! [         a>  nUR                  SU R                  [        R                  " U5      4-  5         S nAg S nAff = f)N)r#   r$   ó   cannot write to %s: %s
)r0   r(   r=   r>   rA   rB   Úwriter   r   r   Úforcebytestr)rC   r   r5   r-   ÚoptsÚlineÚfpr   s           r   ÚlogÚfilelogger.logY   s™   € Ü˜cÓ"ˆð	ÜØØ—	‘	Ø—
‘
ØŸ™ØŸ™òð Ø—‘˜”÷÷ ö ûô ó 	Ø�H‰HØ+Ø—:‘:œz×6Ò6°sÓ;Ð<ñ=÷ñ ûð	ús5   �5A. ÁAÁA. Á
A+Á'A. Á+A. Á.
B6Á84B1Â1B6)rA   rB   r>   r@   r=   N©r   r   ©	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rD   r6   rR   Ú__static_attributes__r4   r1   r   r9   r9   L   s   † ÙEô ò7õr1   r9   c                  ó*   • \ rS rSrSrS rS rS rSrg)Úfileobjectloggerék   z'Basic logger backed by file-like objectc                ó0   • Xl         [        U5      U l        g r<   )Ú_fpr?   r@   )rC   rQ   r6   s      r   rD   Úfileobjectlogger.__init__n   s   € ØŒÜ! '›lˆÕr1   c                ó,   • [        XR                  5      $ r<   rG   rH   s     r   r6   Úfileobjectlogger.trackedr   rJ   r1   c                óX  • [        U5      n U R                  R                  U5        U R                  R                  5         g ! [         a\  nUR                  S[        R                  " U R                  R                  5      [        R                  " U5      4-  5         S nAg S nAff = f)NrL   )	r0   r`   rM   Úflushr   r   r   rN   r"   )rC   r   r5   r-   rO   rP   r   s          r   rR   Úfileobjectlogger.logu   s�   € Ü˜cÓ"ˆð
	Ø�H‰H�N‰N˜4Ô Ø�H‰H�N‰NÕøÜó 	Ø�H‰HØ+ä×+Ò+¨D¯H©H¯M©MÓ:Ü×+Ò+¨CÓ0ðñ÷ñ ûð	ús   �5A Á
B)ÁAB$Â$B))r`   r@   NrU   r4   r1   r   r]   r]   k   s   † Ù1ò+ò7õr1   r]   c                  ó*   • \ rS rSrSrS rS rS rSrg)Úproxyloggeré„   z4Forward log events to another logger to be set laterc                ó   • S U l         g r<   ©Úlogger)rC   s    r   rD   Úproxylogger.__init__‡   s	   € Øˆ�r1   c                ób   • U R                   S L=(       a    U R                   R                  U5      $ r<   )rl   r6   rH   s     r   r6   Úproxylogger.trackedŠ   s%   € Ø�{‰{ $Ð&×E¨4¯;©;×+>Ñ+>¸uÓ+EÐEr1   c                óZ   • U R                   c   eU R                   R                  XX45        g r<   )rl   rR   )rC   r   r5   r-   rO   s        r   rR   Úproxylogger.log�   s$   € Ø�{‰{Ñ&Ð&Ð&Ø�‰�‰˜ 3Õ-r1   rk   NrU   r4   r1   r   rh   rh   „   s   † Ù>òòFõ.r1   rh   rT   )Ú
__future__r   r   Ú r   Úutilsr   r   r   r(   r0   r7   r9   r]   rh   r4   r1   r   Ú<module>ru      sJ   ðõ #ã õ÷ñ ô'1òT-ò/÷ñ ÷>ñ ÷2.ò .r1   