§
    Ètºf  ã                   óæ   — d Z ddlZddlmZ  e¦   «         Z G d„ d¦  «        Z G d„ d¦  «        Zd                      edj        ej	        ¦  «        ¦  «        Z
i Zej	        D ]ZeD ]Zeee<   ŒŒ[dS )	zGModule to parse ANSI escape sequences

Maintainer: Jean-Paul Calderone
é    N)ÚLoggerc                   ó„   — e Zd ZdZdZ ed„ eD ¦   «         ¦  «        Z e ee¦  «        ¦  «        \  Z	Z
ZZZZZZdZd„ ZdS )Ú	ColorTextzb
    Represents an element of text along with the texts colors and
    additional attributes.
    )ÚbÚrÚgÚyÚlÚmÚcÚwc              #   ó>   K  — | ]}|                      ¦   «         V — Œd S ©N)Úupper)Ú.0Úxs     úT/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/conch/ui/ansi.pyú	<genexpr>zColorText.<genexpr>   s*   è è € Ð2Ð2 a˜Ÿš™	œ	Ð2Ð2Ð2Ð2Ð2Ð2ó    )ÚBlackÚRedÚGreenÚYellowÚBlueÚMagentaÚCyanÚWhitec	                 ó¼   — |||c| _         | _        | _        || _        || _        || _        || _        || _        | j        r| j        | j        c| _        | _        d S d S r   )ÚtextÚfgÚbgÚdisplayÚboldÚ	underlineÚflashÚreverse)	Úselfr   r    r!   r"   r#   r$   r%   r&   s	            r   Ú__init__zColorText.__init__)   sg   € Ø&*¨B°Ð#ˆŒ	�4”7˜DœGØˆŒØˆŒ	Ø"ˆŒØˆŒ
ØˆŒØŒ<ð 	0Ø#œw¨¬ÐˆDŒG�T”W�W�Wð	0ð 	0r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚCOLORSÚtupleÚBOLD_COLORSÚrangeÚlenÚBLACKÚREDÚGREENÚYELLOWÚBLUEÚMAGENTAÚCYANÚWHITEÚCOLOR_NAMESr(   © r   r   r   r      s�   € € € € € ðð ð 6€FØ�%Ð2Ð2¨6Ð2Ñ2Ô2Ñ2Ô2€KØ<A¸EÀ#À#ÀfÁ+Ä+Ñ<NÔ<NÑ9€Eˆ3��v˜t W¨d°Eð	€Kð0ð 0ð 0ð 0ð 0r   r   c                   óx   — e Zd ZdZdZdZdZdZdZeeeeefZ	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zej        fd„Zd„ ZdS )Ú
AnsiParserz&
    Parser class for ANSI codes.
    )ÚHÚfÚAÚBÚCÚDÚRÚsÚuÚdÚG)ÚJÚKÚP)Úhr
   )Úp)r   c                 ó¨   — ||c| _         | _        | j         | j        c| _        | _        d\  | _        | _        | _        | _        d| _        d| _	        d S )N©r   r   r   r   é   Ú )
Ú	defaultFGÚ	defaultBGÚ	currentFGÚ	currentBGr#   r%   r$   r&   r"   Úprepend)r'   rR   rS   s      r   r(   zAnsiParser.__init__J   sN   € Ø)2°IÐ&ˆŒ˜œØ)-¬¸¼Ð&ˆŒ˜œØ>HÑ;ˆŒ	�4”:˜tœ~¨t¬|ØˆŒØˆŒˆˆr   c                 óð   — d}d}d}t          |¦  «        }||k     rZ|dk    r||         t          v rd}n7|r5 |j        d|¦  «        }|dk    r|||d…         z   S ||||…         z   }|}d}|dz   }||k     °Z|S )zF
        Remove all ANSI color escapes from the given string.
        rQ   rP   r   úéÿÿÿÿN)r1   Ú_setsÚfind)r'   ÚstringÚresultÚshowÚiÚLÚns          r   ÚstripEscapeszAnsiParser.stripEscapesQ   s³   € ð ˆØˆØˆÝ�‰KŒKˆØ�!ŠeˆeØ�qŠyˆy˜V AœY­%Ð/Ð/Ø��Øð Ø�F”K ¨Ñ*Ô*�Ø˜’7�7Ø! F¨1¨2¨2¤JÑ.Ð.à# f¨Q¨q¨S¤kÑ1�FØ�AØ�DØ�A‘ˆAð �!Šeˆeð ˆr   c                 ó   — d S r   r;   )r'   Úcolorstrs     r   ÚwriteStringzAnsiParser.writeStringg   ó   € Øˆr   c                 óÎ  — | j         r| j         |z   }d| _         |                     d¦  «        }t          |¦  «        dk    r0|                      |                      |d         ¦  «        ¦  «         dS |                      |                      |d         ¦  «        ¦  «         |dd…         D �]º}t          |¦  «        }d}d}||k     r#||         t
          j        dz   vrn|dz  }||k     °#|s
d| _          dS |d         dk    r4|                      |                      ||dz   d…         ¦  «        ¦  «         Œ‹|dd…         }|dz  }||dz
  k    r
d| _          dS t                               ||         d¦  «        }|€ŒÑ|t          j
        k    rW|                      |d|dz   …         ¦  «         ||dz   d…         }|                      |                      |¦  «        ¦  «         �Œ8|t          j        k    rY|d|dz   …         ||dz   d…         }}|                      |¦  «         |                      |                      |¦  «        ¦  «         �Œ¡|t          j        k    rY|d|dz   …         ||dz   d…         }}|                      |¦  «         |                      |                      |¦  «        ¦  «         �Œ
|t          j        k    r7||dz   d…         }|                      |                      |¦  «        ¦  «         �ŒQ||k    rd|z   | _         �Œct"                               d	||         ¬
¦  «         ||dz   d…         }|                      |                      |¦  «        ¦  «         �Œ¼dS )zK
        Turn a string input into a list of L{ColorText} elements.
        rQ   rX   rP   r   Nz[;?ú[z[z+Unhandled ANSI control type: {control_type})Úcontrol_type)rV   Úsplitr1   re   Ú
formatTextr\   ÚdigitsÚ_setmapÚgetr=   Ú	COLOR_SETÚ
parseColorÚ
CURSOR_SETÚparseCursorÚ	ERASE_SETÚ
parseEraseÚMODE_SETÚ_logÚwarn)	r'   ÚstrÚpartsrE   r`   r_   ÚtypeÚcursorÚerases	            r   ÚparseStringzAnsiParser.parseStringj   s  € ð
 Œ<ð 	Ø”, Ñ$ˆCØˆDŒLØ—	’	˜&Ñ!Ô!ˆåˆu‰:Œ:˜Š?ˆ?Ø×Ò˜TŸ_š_¨U°1¬XÑ6Ô6Ñ7Ô7Ð7Ð7Ð7à×Ò˜TŸ_š_¨U°1¬XÑ6Ô6Ñ7Ô7Ð7Ø˜1˜2˜2”Yð /9ñ /9�Ý˜‘F”F�Ø�Ø�Ø˜!’e�eØ˜”t¥6¤=°5Ñ#8Ð8Ð8ØØ˜‘F�Að ˜!’e�eð ð Ø#)�D”LØ�F�FØ�Q”4˜3’;�;Ø×$Ò$ T§_¢_°Q°q¸1±u°w°w´ZÑ%@Ô%@ÑAÔAÐAØà˜!˜"˜"œ�AØ˜‘F�AØ˜˜A™’:�:Ø#*�D”LØ�F�FÝ—{’{ 1 Q¤4¨Ñ.Ô.�Ø�<Øà�:Ô/Ò/Ð/Ø—O’O A g¨¨A© g¤JÑ/Ô/Ð/Ø˜!˜a™%˜'˜'œ
�AØ×$Ò$ T§_¢_°QÑ%7Ô%7Ñ8Ô8Ð8Ñ8Ø�ZÔ2Ò2Ð2Ø ! ' A¨¡E '¤
¨A¨a°!©e¨g¨g¬J˜A�FØ×$Ò$ VÑ,Ô,Ð,Ø×$Ò$ T§_¢_°QÑ%7Ô%7Ñ8Ô8Ð8Ñ8Ø�ZÔ1Ò1Ð1Ø   1 q¡5 œz¨1¨Q°©U¨W¨W¬:˜1�EØ—O’O EÑ*Ô*Ð*Ø×$Ò$ T§_¢_°QÑ%7Ô%7Ñ8Ô8Ð8Ñ8Ø�ZÔ0Ò0Ð0Ø˜!˜a™%˜'˜'œ
�Aà×$Ò$ T§_¢_°QÑ%7Ô%7Ñ8Ô8Ð8Ñ8Ø˜!’V�VØ#*¨Q¡;�D”L‘Lå—I’IØEÐTUÐVWÔTXð ñ ô ð ð ˜!˜a™%˜'˜'œ
�AØ×$Ò$ T§_¢_°QÑ%7Ô%7Ñ8Ô8Ð8Ñ8ð_/9ð /9r   c                 ó¤  — |dd…         }|sd}	 t          t          |                     d¦  «        ¦  «        }nF# t          $ r9 t                               d|¬¦  «         | j        | j        c| _        | _	        Y dS w xY w|D �]M}|dk    r<| j        | j        c| _        | _	        d\  | _
        | _        | _        | _        d	| _        ŒE|d	k    rd	| _
        ŒSd
|cxk    rdk    rn n|d
z
  | _        Œnd|cxk    rdk    rn n|dz
  | _	        Œ‰|dk    r| j        | _        Œœ|dk    r| j        | _	        Œ¯|dk    rd	| _        Œ½|dk    rd	| _        ŒË|dk    rd	| _        ŒÙ|dk    rd| _        Œç|dk    rd| _
        Œõ|dk    r	d| _        �Œ|dk    r	d| _        �Œ|dk    r	d| _        �Œ"|dk    r	d	| _        �Œ1t                               d|¬¦  «         �ŒOdS )z5
        Handle a single ANSI color sequence
        NrY   Ú0ú;z)Invalid ANSI color sequence: {sequence!r})Úsequencer   rO   rP   é   é%   é(   é/   é'   é1   é   é   é   é   é   é   é   é   é   z*Unrecognised ANSI color command: {command})Úcommand)ÚmapÚintrj   Ú
ValueErrorrv   ÚerrorrR   rS   rT   rU   r#   r%   r$   r&   r"   Úblink)r'   rx   ry   r   s       r   rp   zAnsiParser.parseColor©   s*  € ð
 �#�2�#Œhˆàð 	ØˆCð	Ý�˜SŸYšY s™^œ^Ñ,Ô,ˆEˆEøÝð 	ð 	ð 	Ý�JŠJÐBÈSˆJÑQÔQÐQØ-1¬^¸T¼^Ð*ˆDŒN˜DœNØˆFˆFð	øøøð
 ð "	Tñ "	TˆAØ�AŠvˆvØ15´ÀÄÐ.�” ¤ØFPÑC�”	˜4œ: t¤~°t´|Ø �”�Ø�a’�Ø�”	�	Ø�q��’�˜B’����Ø!" R¡�”�Ø�q��’�˜B’����Ø!" R¡�”�Ø�b’�Ø!%¤�”�Ø�b’�Ø!%¤�”�Ø�a’�Ø!"�”�Ø�a’�Ø�”
�
Ø�a’�Ø �”�Ø�a’�Ø �”�Ø�b’�Ø�”	�	Ø�b’�Ø!"�”‘Ø�b’�Ø�”
‘
Ø�b’�Ø �”‘Ø�b’�Ø �”‘å—
’
ÐGÐQR�
ÑSÔSÐSÑSðE"	Tð "	Ts   �(9 ¹?A<Á;A<c                 ó   — d S r   r;   )r'   r{   s     r   rr   zAnsiParser.parseCursorÞ   rf   r   c                 ó   — d S r   r;   )r'   r|   s     r   rt   zAnsiParser.parseEraseá   rf   r   c                 ól   — |rt           j        |         S | j        r||         pt           j        |         S r   )r   r-   r#   )r'   ÚvalueÚmodeÚBOLDs       r   Ú	pickColorzAnsiParser.pickColorä   s7   € Øð 	HÝÔ# EÔ*Ð*à”9Ð,  e¤ÐGµ	Ô0@ÀÔ0GÐGr   c           
      óÄ   — t          ||                      | j        d¦  «        |                      | j        d¦  «        | j        | j        | j        | j        | j        ¦  «        S )Nr   rP   )	r   r�   rT   rU   r"   r#   r$   r%   r&   )r'   r   s     r   rk   zAnsiParser.formatTextê   sV   € ÝØØ�NŠN˜4œ>¨1Ñ-Ô-Ø�NŠN˜4œ>¨1Ñ-Ô-ØŒLØŒIØŒNØŒJØŒLñ	
ô 	
ð 		
r   N)r)   r*   r+   r,   rq   rs   ru   Ú
ASSIGN_SETro   ÚSETSr(   rb   re   r}   rp   rr   rt   r   r/   r�   rk   r;   r   r   r=   r=   4   sï   € € € € € ðð ð
 I€Jð  €Ið €Hð €Jð €Ià˜	 8¨Z¸ÐC€Dðð ð ðð ð ð,ð ð ð=9ð =9ð =9ð~3Tð 3Tð 3Tðjð ð ðð ð ð +4Ô*?ð Hð Hð Hð Hð

ð 

ð 

ð 

ð 

r   r=   rQ   )r,   r\   Útwisted.loggerr   rv   r   r=   Újoinr’   r    rZ   rm   rE   r   r;   r   r   ú<module>r£      sò   ðð
ð ð
 €€€ð "Ð !Ð !Ð !Ð !Ð !à€v�x„x€ð0ð 0ð 0ð 0ð 0ñ 0ô 0ð 0ðD@
ð @
ð @
ð @
ð @
ñ @
ô @
ð @
ðF 	�Š���B”G˜Zœ_Ñ-Ô-Ñ.Ô.€à
€Ø	Œð ð €AØð ð ˆØˆ�‰
ˆ
ðà€A€Ar   