Ë
    ^ãj   ã                   óx  — d Z ddlZddlZddlmZ  ej
                  d«      Z ej
                  d«      ZdZ ej
                  edz   ej                  z   «      Z
d	d
defd„Z ej
                  d«      Z ej
                  d«      Z ej
                  d«      Z ej
                  d«      Z ej
                  d«      Z ej
                  ej                  j%                  ddd«      dz   ej                  j%                  ddd«      z   dz   ej                  j%                  ddd«      z   dz   ej                  j%                  ddd«      z   dz   ez   dz   dz   ej                  z   dz   «      Z ej
                  dj)                  d„ dD «       «      «      Zdedej,                  ej.                  eef      fd„Zdedefd„Zy)aA  
Terminal escape sequence patterns.

This module provides regex patterns for matching terminal escape sequences. All patterns match
sequences that begin with ESC (``\x1b``). Before calling re.match with these patterns, callers
should first check that the character at the current position is ESC for optimal performance.
é    Né   )Ú_SGR_PATTERNz9\x1b\]66;([^;\x07\x1b]*)(?:;([^\x07\x1b]*))?(\x07|\x1b\\)a
  \x1b\[[\x30-\x3f]*[\x20-\x2f]*[\x40-\x7e]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)|\x1b_[^\x1b\x07]*(?:\x07|\x1b\\)|\x1bP[^\x1b\x07]*(?:\x07|\x1b\\)|\x1b\^[^\x1b\x07]*(?:\x07|\x1b\\)|\x1b[()](?s:.)|\x1b[\x20-\x2f]+[\x30-\x7e]|\x1b[\x40-\x5f]|\x1b[\x30-\x3f]|\x1b[\x60-\x7e]zZ\x1b\]66;(?P<ts_meta>[^;\x07\x1b]*)(?:;(?P<ts_text>[^\x07\x1b]*))?(?P<ts_term>\x07|\x1b\\)ú|Úmatchzre.Match[str]Úreturnc                 ó,   — | j                  d«      xs dS )zBKeep the inner text of an OSC 66 match, drop every other sequence.Úts_textÚ )Úgroup)r   s    úZ/var/www/html/metafoliadorv2/venv/lib/python3.12/site-packages/wcwidth/escape_sequences.pyÚ_strip_replr   9   s   € à�;‰;�yÓ!Ò' RÐ'ó    z\x1b\[(\d*)Cz\x1b\[(\d*)Dz\x1b\[(\d*)Gz\x1b\[(\d*)[CDG]z[\x08\r]|\x1b\[(\d*)[CDG]ú(z(?P<sgr_params>z
(?P<hpa_n>z(?P<cforward_n>z(?P<cbackward_n>z(?P<other_seq>(?:z))c              #   ó(   K  — | ]
  }d |› d�–— Œ y­w)z(?:ú)N© )Ú.0Ú_patterns     r   ú	<genexpr>r   e   s   è ø€ ò  8ˆs�8�*˜AÔñ ùs   ‚)z\x1b\[\d+;\d+rz
\x1b\[\d*Kz
\x1b\[\d*Jz\x1b\[\d+;\d+Hz
\x1b\[\d*Hz
\x1b\[\d*Az
\x1b\[\d*Bz
\x1b\[\d*Pz
\x1b\[\d*Mz
\x1b\[\d*Lz
\x1b\[\d*@z
\x1b\[\d+Xz
\x1b\[\d*Sz
\x1b\[\d*Tz
\x1b\[\d*dz\x1b\[\?1049[hl]z\x1b\[\?47[hl]z\x1b8z\x1bDz\x1bMz\x1bcÚtextc              #   ó.  K  — d}t        | «      }d}||k  rn| |   }|dk(  rY||kD  r	| || df–— t        j                  | |«      }|r%|j                  «       df–— |j	                  «       }n|df–— |dz  }|}n|dz  }||k  rŒn||k  r
| |d df–— yy­w)a¬  
    Iterate through text, yielding segments with sequence identification.

    This generator yields tuples of ``(segment, is_sequence)`` for each part
    of the input text, where ``is_sequence`` is ``True`` if the segment is
    a recognized terminal escape sequence.

    :param text: String to iterate through.
    :returns: Iterator of (segment, is_sequence) tuples.

    .. versionadded:: 0.3.0

    Example::

        >>> list(iter_sequences('hello'))
        [('hello', False)]
        >>> list(iter_sequences('\x1b[31mred'))
        [('\x1b[31m', True), ('red', False)]
        >>> list(iter_sequences('\x1b[1m\x1b[31m'))
        [('\x1b[1m', True), ('\x1b[31m', True)]
    r   úFTr   N)ÚlenÚZERO_WIDTH_PATTERNr   r   Úend)r   ÚidxÚtext_lenÚsegment_startÚcharr   s         r   Úiter_sequencesr       sÌ   è ø€ ð, €CÜ�4‹y€HØ€Mà
�Š.Ø�C‰yˆà�6Š>à�]Ò"Ø˜M¨#Ð.°Ð6Ò6ô '×,Ñ,¨T°3Ó7ˆEÙØ—{‘{“} dÐ+Ò+Ø—i‘i“k‘ð ˜T�lÒ"Ø�q‘�Ø‰Mà�1‰HˆCð' �‹.ð, �xÒØ�M�NÐ# UÐ+Ó+ð  ùs   ‚BBÂBc                 ój   — d| v rt         j                  t        | «      S t        j                  d| «      S )a  
    Return text with all terminal escape sequences removed.

    Unknown or incomplete ESC sequences are preserved.

    :param text: String that may contain terminal escape sequences.
    :returns: The input text with all escape sequences stripped.

    .. versionadded:: 0.3.0

    .. versionchanged:: 0.7.0
       Inner text of OSC 66 (Text sizing protocol) is preserved.

    Example::

        >>> strip_sequences('\x1b[31mred\x1b[0m')
        'red'
        >>> strip_sequences('hello')
        'hello'
        >>> strip_sequences('\x1b[1m\x1b[31mbold red\x1b[0m text')
        'bold red text'
        >>> strip_sequences('\x1b]66;s=2;hello\x07')
        'hello'
        >>> strip_sequences('\x1b]8;id=34;https://example.com\x1b\\[view]\x1b]8;;\x1b\\')
        '[view]'
    z]66;r
   )Ú_STRIP_WITH_TEXT_SIZINGÚsubr   r   )r   s    r   Ústrip_sequencesr$   ³   s2   € ð6 �TÑÜ&×*Ñ*¬;¸Ó=Ð=Ü×!Ñ! " dÓ+Ð+r   )Ú__doc__ÚreÚtypingÚ	sgr_stater   ÚcompileÚTEXT_SIZING_PATTERNr   Ú_TEXT_SIZING_NAMEDÚpatternr"   Ústrr   ÚCURSOR_RIGHT_SEQUENCEÚCURSOR_LEFT_SEQUENCEÚCURSOR_HPA_SEQUENCEÚCURSOR_MOVEMENT_SEQUENCEÚ_HORIZONTAL_CURSOR_MOVEMENTÚreplaceÚ_SEQUENCE_CLASSIFYÚjoinÚINDETERMINATE_EFFECT_SEQUENCEÚIteratorÚTupleÚboolr    r$   r   r   r   ú<module>r:      s;  ðñó 
ã õ $ð !�b—j‘jØ@óÐ ð  �R—Z‘ZðóÐ ð4QÐ ð %˜"Ÿ*™*Ð%7¸#Ñ%=Ð@R×@ZÑ@ZÑ%ZÓ[Ð ð(�ð (¨3ó (ð #˜Ÿ
™
 ?Ó3Ð ð "�r—z‘z /Ó2Ð ð !�b—j‘j Ó1Ð ð
 &˜2Ÿ:™:Ð&9Ó:Ð ð
 )˜bŸj™jÐ)EÓFÐ ð
  �R—Z‘ZØ×Ñ× Ñ  Ð&7¸Ó;Ø	ñ
Ø×'Ñ'×/Ñ/°°\À1ÓEñFà	ñ
à!×)Ñ)×1Ñ1°#Ð7HÈ!ÓLñMð 
ñ
ð !×(Ñ(×0Ñ0°Ð6HÈ!ÓLñMð 
ñ	
ð ñ	ð
 
ñ
ð
 !ñ!ð
 $6×#=Ñ#=ñ>ð
 AEñEóÐ ð  !+ §
¡
Ø‡H�Hñ ð 0ô ó ó!Ð ð61,˜ð 1, §¡°·±¸cÀ4¸iÑ1HÑ!Ió 1,ðh,˜#ð , #ô ,r   