+
    üÐj  ã                   óô   € R t ^ RIt^ RIHt ]! 4       t ! R R4      t ! R R4      tRP                  ]! RP                  ]P                  4      4      t
/ t]P                   F  t] F  t]]]&   K
  	  K  	  AR# )zGModule to parse ANSI escape sequences

Maintainer: Jean-Paul Calderone
N)ÚLoggerc                   ó°   a € ] tR t^t o RtRt];QJ d    . R ] 4       F  NK  	  5M! R ] 4       4      t]! ]	! ]4      4      w  t
tttttttRtR tRtV tR# )Ú	ColorTextzV
Represents an element of text along with the texts colors and
additional attributes.
c              #  ó@   "  € T F  qP                  4       x € K  	  R # 5i©N)Úupper)Ú.0Úxs   & Ú7/usr/lib/python3/dist-packages/twisted/conch/ui/ansi.pyÚ	<genexpr>ÚColorText.<genexpr>   s   é € Ð2©6 aŸ™Ÿ	˜	«6ùs   ‚c	                óÚ   € WVuV n         V n        V n        W@n        WPn        W`n        Wpn        W€n        V P                  '       d&   V P                  V P                  uV n        V n        R # R # r   )ÚtextÚfgÚbgÚdisplayÚboldÚ	underlineÚflashÚreverse)	Úselfr   r   r   r   r   r   r   r   s	   &&&&&&&&&r
   Ú__init__ÚColorText.__init__)   sU   € Ø&*°Ð#ˆŒ	�4”7˜DœGØŒØŒ	Ø"ŒØŒ
ØŒØ�<�<ˆ<Ø#Ÿw™w¨¯©ÐˆDŒG�T–Wñ ó    )r   r   r   r   r   r   r   r   N)ÚbÚrÚgÚyÚlÚmÚcÚw)ÚBlackÚRedÚGreenÚYellowÚBlueÚMagentaÚCyanÚWhite)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚCOLORSÚtupleÚBOLD_COLORSÚrangeÚlenÚBLACKÚREDÚGREENÚYELLOWÚBLUEÚMAGENTAÚCYANÚWHITEÚCOLOR_NAMESr   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r
   r   r      s_   ø‡ € ñð 6€Fß�%Ñ2©6Ó2—%‘%Ñ2©6Ó2Ó2€KÙ<AÁ#ÀfÃ+Ó<NÑ9€Eˆ3��v˜t W¨d°Eð	€K÷0ð 0r   r   c                   ó–   a € ] tR t^4t o RtRtRtRtRtRt	]]]]]	3t
R tR tR tR tR tR tR t]P&                  3R	 ltR
 tRtV tR# )Ú
AnsiParserz
Parser class for ANSI codes.
c                óº   € WuV n         V n        V P                   V P                  uV n        V n        Rw  V n        V n        V n        V n        ^V n        RV n	        R# )é    Ú N©rD   rD   rD   rD   )
Ú	defaultFGÚ	defaultBGÚ	currentFGÚ	currentBGr   r   r   r   r   Úprepend)r   rG   rH   s   &&&r
   r   ÚAnsiParser.__init__J   sL   € Ø)2Ð&ˆŒ˜œØ)-¯©¸¿¹Ð&ˆŒ˜œØ>HÑ;ˆŒ	�4”:˜tœ~¨t¬|ØˆŒØˆŽr   c                óö   € Rp^p^ p\        V4      pWE8  db   V^ 8X  d   W,          \        9   d   ^pM;V'       d4   VP                  ! RV4      pVR8X  d   W!VR ,           # W!WF ,           pTp^ pV^,           pKg  V# )z6
Remove all ANSI color escapes from the given string.
rE   ÚNéÿÿÿÿ)r3   Ú_setsÚfind)r   ÚstringÚresultÚshowÚiÚLÚns   &&     r
   ÚstripEscapesÚAnsiParser.stripEscapesQ   sƒ   € ð ˆØˆØˆÜ�‹KˆØŒeØ�qŒy˜V�Y¬%Ô/Ø‘ßØ—K’K ¨Ó*�Ø˜”7Ø!¨1¨2 JÕ.Ð.à#¨Q kÕ1�FØ�AØ�DØ�A•ŠAØˆr   c                ó   € R # r   © )r   Úcolorstrs   &&r
   ÚwriteStringÚAnsiParser.writeStringg   ó   € Ùr   c                ó’  € V P                   '       d   V P                   V,           pRV n         VP                  R4      p\        V4      ^8X  d*   V P                  V P	                  V^ ,          4      4       R# V P                  V P	                  V^ ,          4      4       VR,           EF›  p\        V4      p^ pRpWT8  d/   W5,          \
        P                  R,           9  d   MV^,          pK4  V'       g   RV n          R# V^ ,          R8w  d,   V P                  V P	                  W5^,           R 4      4       K’  VR,          pV^,          pWT^,
          8X  d   RV n          R# \        P                  W5,          R4      pVf   KÝ  V\        P                  8X  dJ   V P                  VRV^,            4       W5^,           R pV P                  V P	                  V4      4       EK;  V\        P                  8X  dK   VRV^,            W5^,           R r7V P                  V4       V P                  V P	                  V4      4       EKš  V\        P                  8X  dK   VRV^,            W5^,           R r8V P                  V4       V P                  V P	                  V4      4       EKù  V\        P                   8X  d/   W5^,           R pV P                  V P	                  V4      4       EK<  WT8X  d   RV,           V n         EKS  \"        P%                  RW5,          R	7       W5^,           R pV P                  V P	                  V4      4       EKž  	  R# )
z;
Turn a string input into a list of L{ColorText} elements.
rE   rN   :é   NNNz[;?Ú[z[z+Unhandled ANSI control type: {control_type})Úcontrol_type)rK   Úsplitr3   r]   Ú
formatTextrR   ÚdigitsÚ_setmapÚgetrB   Ú	COLOR_SETÚ
parseColorÚ
CURSOR_SETÚparseCursorÚ	ERASE_SETÚ
parseEraseÚMODE_SETÚ_logÚwarn)	r   ÚstrÚpartsÚsrV   rU   ÚtypeÚcursorÚerases	   &&       r
   ÚparseStringÚAnsiParser.parseStringj   s’  € ð
 �<�<ˆ<Ø—,‘, Õ$ˆCØˆDŒLØ—	‘	˜&Ó!ˆäˆu‹:˜Œ?Ø×Ñ˜TŸ_™_¨U°1­XÓ6Ö7à×Ñ˜TŸ_™_¨U°1­XÓ6Ô7Ø˜2—Y‘Y�Ü˜“F�Ø�Ø�Ø”eØ•t¤6§=¡=°5Õ#8Ô8ØØ˜•F’AßØ#)�D”LÚØ�Q•4˜3”;Ø×$Ñ$ T§_¡_°Q¸1µu°w°ZÓ%@ÔAÙà˜"��AØ˜•F�AØ˜A�”:Ø#*�D”LÚÜ—{‘{ 1¥4¨Ó.�Ø’<Ùàœ:×/Ñ/Ô/Ø—O‘O A g¨¨A­ JÔ/Ø˜a�%˜'˜
�AØ×$Ñ$ T§_¡_°QÓ%7×8ØœZ×2Ñ2Ô2Ø ! ' A¨¥E 
¨A°!­e¨g¨J˜AØ×$Ñ$ VÔ,Ø×$Ñ$ T§_¡_°QÓ%7×8ØœZ×1Ñ1Ô1Ø   1 q¥5˜z¨1°­U¨W¨:˜1Ø—O‘O EÔ*Ø×$Ñ$ T§_¡_°QÓ%7×8ØœZ×0Ñ0Ô0Ø˜a�%˜'˜
�Aà×$Ñ$ T§_¡_°QÓ%7×8Ø”VØ#*¨Q¥;�D—Lä—I‘IØEÐTUÕTXð ô ð ˜a�%˜'˜
�AØ×$Ñ$ T§_¡_°QÓ%7×8ó_ r   c                ó  € VRR pV'       g   Rp \        \        VP                  R4      4      pT EFˆ  pT^ 8X  dH   T P                  T P                  uT n        T n	        R	w  T n
        T n        T n        T n        ^T n        KR  T^8X  d
   ^T n
        Kb  ^Tu;8:  d   ^%8:  d   M MT^,
          T n        K„  ^(Tu;8:  d   ^/8:  d   M MT^(,
          T n	        K¦  T^'8X  d   T P                  T n        KÀ  T^18X  d   T P                  T n	        KÚ  T^8X  d
   ^T n        Kê  T^8X  d
   ^T n        Kú  T^8X  d   ^T n        EK  T^8X  d   ^ T n        EK  T^8X  d   ^ T n
        EK-  T^8X  d   ^ T n        EK>  T^8X  d   ^ T n        EKO  T^8X  d   ^ T n        EK`  T^8X  d   ^T n        EKq  \        P                  RTR7       EK‹  	  R#   \         d?    \        P                  RTR7       T P                  T P                  uT n        T n	         R# i ; i)
z%
Handle a single ANSI color sequence
NÚ0Ú;z)Invalid ANSI color sequence: {sequence!r})Úsequencez*Unrecognised ANSI color command: {command})ÚcommandrO   rF   )ÚmapÚintrd   Ú
ValueErrorrp   ÚerrorrG   rH   rI   rJ   r   r   r   r   r   Úblink)r   rr   rs   r	   s   &&  r
   rj   ÚAnsiParser.parseColor©   s¤  € ð
 �#�2ˆhˆçØˆCð	Üœ˜SŸY™Y s›^Ó,ˆEô ˆAØ�AŒ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óE øô ô 	Ü�J‰JÐBÈSˆJÔQØ-1¯^©^¸T¿^¹^Ð*ˆDŒN˜DœNÚð	ús   ‘G ÇAH
È	H
c                ó   € R # r   r[   )r   rv   s   &&r
   rl   ÚAnsiParser.parseCursorÞ   r_   r   c                ó   € R # r   r[   )r   rw   s   &&r
   rn   ÚAnsiParser.parseEraseá   r_   r   c                ó¶   € V'       d   \         P                  V,          # V P                  ;'       d    W1,          ;'       g    \         P                  V,          # r   )r   r/   r   )r   ÚvalueÚmodeÚBOLDs   &&&&r
   Ú	pickColorÚAnsiParser.pickColorä   s=   € ßÜ×#Ñ# EÕ*Ð*à—9‘9×,Ð, ¥×GÐG´	×0@Ñ0@ÀÕ0GÐGr   c           
     óò   € \        VV P                  V P                  ^ 4      V P                  V P                  ^4      V P                  V P
                  V P                  V P                  V P                  4      # )rD   )	r   r�   rI   rJ   r   r   r   r   r   )r   r   s   &&r
   re   ÚAnsiParser.formatTextê   sY   € ÜØØ�N‰N˜4Ÿ>™>¨1Ó-Ø�N‰N˜4Ÿ>™>¨1Ó-Ø�L‰LØ�I‰IØ�N‰NØ�J‰JØ�L‰Ló	
ð 		
r   )rƒ   r   rJ   rI   rH   rG   r   r   rK   r   r   N)ÚHÚfÚAÚBÚCÚDÚRrt   ÚuÚdÚG)ÚJÚKÚP)Úhr   )Úp)r   )r*   r+   r,   r-   r.   rk   rm   ro   Ú
ASSIGN_SETri   ÚSETSr   rX   r]   rx   rj   rl   rn   r   r1   r�   re   r=   r>   r?   s   @r
   rB   rB   4   s   ø‡ € ñð
 I€Jð  €Ið €Hð €Jð €Ià˜	 8¨Z¸ÐC€Dòòò,ò=9ò~3Tòjòð +4×*?Ñ*?ô H÷

ð 

r   rB   rE   )r.   rR   Útwisted.loggerr   rp   r   rB   Újoinr   r¡   rP   rg   rt   r   r[   r   r
   Ú<module>r¤      s}   ðñ
ó
 õ "áƒx€÷0ñ 0÷D@
ñ @
ðF 	�‰‘�B—G‘G˜ZŸ_™_Ó-Ó.€à
€Ø	�Œ€AÛˆØˆ�‹
ó ñ 
ò r   