§
    #ˆtj~  ã                  óx   — d dl mZ d dlmZ d dlZd dlmZ ddlm	Z	 ddlm
Z
 dd„Z G d„ dej        ¦  «        ZdS )é    )ÚannotationsN)Úcontextmanageré   )Ú_ansi_re)Úterm_lenÚtextÚstrÚnÚintÚreturnc                óæ   — |dk    rdS d}d}d}t          | ¦  «        }||k     rEt          j        | |¦  «        }|�|                     ¦   «         }Œ2|dz  }|dz  }|}||k    rn||k     °E| d|…         S )zøReturn the longest prefix of ``text`` containing at most ``n`` visible
    characters.

    ANSI escape sequences inside the prefix are kept intact and do not count
    toward the visible width. A cut is never placed inside an escape sequence.
    r   Ú Nr   )Úlenr   ÚmatchÚend)r   r
   ÚvisibleÚiÚcutr   Úms          úM/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/click/_textwrap.pyÚ_truncate_visibler      s™   € ð 	ˆA‚v€vØˆrà€GØ	€AØ
€CÝ
ˆd‰)Œ)€CØ
ˆcŠ'ˆ'ÝŒN˜4 Ñ#Ô#ˆØˆ=Ø—’‘”ˆAØØ�1‰ˆØ	ˆQ‰ˆØˆØ�aŠ<ˆ<Øð ˆcŠ'ˆ'ð ���Œ:Ðó    c                  óB   — e Zd ZdZdd
„Zdd„Zedd„¦   «         Zdd„ZdS )ÚTextWrapperaŠ  ``textwrap.TextWrapper`` variant that measures widths by visible
    character count.

    ANSI escape sequences embedded in chunks, indents, or the placeholder are
    excluded from the width budget. Without this, styled help text (a styled
    ``Usage:`` prefix, a colorized option name, ...) would be wrapped earlier
    than its visible length warrants and tokens would split mid-word.
    Úreversed_chunksú	list[str]Úcur_lineÚcur_lenr   Úwidthr   ÚNonec                ó&  — t          ||z
  d¦  «        }| j        rK|d         }t          ||¦  «        }|t          |¦  «        d …         }|                     |¦  «         ||d<   d S |s)|                     |                     ¦   «         ¦  «         d S d S )Nr   éÿÿÿÿ)ÚmaxÚbreak_long_wordsr   r   ÚappendÚpop)	Úselfr   r   r   r   Ú
space_leftÚlastr   Úress	            r   Ú_handle_long_wordzTextWrapper._handle_long_word0   s§   € õ ˜ ™¨!Ñ,Ô,ˆ
àÔ ð 	3Ø" 2Ô&ˆDÝ# D¨*Ñ5Ô5ˆCØ•s˜3‘x”x�z�zÔ"ˆCØ�OŠO˜CÑ Ô Ð Ø"%ˆO˜BÑÐÐØð 	3Ø�OŠO˜O×/Ò/Ñ1Ô1Ñ2Ô2Ð2Ð2Ð2ð	3ð 	3r   Úchunksc                ó:  — g }| j         dk    rt          d| j         ›d�¦  «        ‚| j        �h| j        dk    r| j        }n| j        }t          |¦  «        t          | j                             ¦   «         ¦  «        z   | j         k    rt          d¦  «        ‚|                     ¦   «          |�rïg }d}|r| j        }n| j        }| j         t          |¦  «        z
  }| j	        r#|d          
                    ¦   «         dk    r|r|d= |rNt          |d         ¦  «        }||z   |k    r-|                     |                     ¦   «         ¦  «         ||z  }nn|°N|rSt          |d         ¦  «        |k    r:|                      ||||¦  «         t          t          t
          |¦  «        ¦  «        }| j	        r;|r9|d          
                    ¦   «         dk    r|t          |d         ¦  «        z  }|d= |�r¬| j        �Wt!          |¦  «        dz   | j        k     s<|r4| j	        r`t!          |¦  «        dk    rM|d          
                    ¦   «         s3||k    r-|                     |d                     |¦  «        z   ¦  «         �n!|r˜|d          
                    ¦   «         ra|t          | j        ¦  «        z   |k    rF|                     | j        ¦  «         |                     |d                     |¦  «        z   ¦  «         n£|t          |d         ¦  «        z  }|d= |°˜|rU|d                              ¦   «         }t          |¦  «        t          | j        ¦  «        z   | j         k    r|| j        z   |d<   n3|                     || j                             ¦   «         z   ¦  «         n|�°ï|S )	a‘  Wrap chunks counting widths in visible characters.

        Mirrors the algorithm of :meth:`textwrap.TextWrapper._wrap_chunks`
        with every width measurement routed through
        :func:`click._compat.term_len` instead of :func:`len`, so ANSI escape
        bytes in chunks, indents, or the placeholder do not inflate the count.

        .. seealso::
            :class:`textwrap.TextWrapper` in the Python standard library documentation:
            https://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper

            Reference implementation in CPython:
            https://github.com/python/cpython/blob/main/Lib/textwrap.py
        r   zinvalid width z (must be > 0)Nr   z#placeholder too large for max widthr"   r   )r   Ú
ValueErrorÚ	max_linesÚsubsequent_indentÚinitial_indentr   ÚplaceholderÚlstripÚreverseÚdrop_whitespaceÚstripr%   r&   r+   ÚsumÚmapr   ÚjoinÚrstrip)	r'   r,   ÚlinesÚindentr   r   r   r
   Ú	prev_lines	            r   Ú_wrap_chunkszTextWrapper._wrap_chunksB   sâ  € ð ˆØŒ:˜Š?ˆ?ÝÐJ¨d¬jÐJÐJÐJÑKÔKÐKØŒ>Ð%ØŒ~ Ò!Ð!ØÔ/��àÔ,�Ý˜ÑÔ¥(¨4Ô+;×+BÒ+BÑ+DÔ+DÑ"EÔ"EÑEÈÌ
ÒRÐRÝ Ð!FÑGÔGÐGà�ŠÑÔÐàñ B	Ø"$ˆHØˆGàð -ØÔ/��àÔ,�à”J¥¨&Ñ!1Ô!1Ñ1ˆEàÔ#ð ¨¨r¬
×(8Ò(8Ñ(:Ô(:¸bÒ(@Ð(@ÀUÐ(@Ø˜2�Jàð Ý˜V BœZÑ(Ô(�à˜Q‘; %Ò'Ð'Ø—O’O F§J¢J¡L¤LÑ1Ô1Ð1Ø˜q‘L�G�Gð ð ð ð ð 7�( 6¨"¤:Ñ.Ô.°Ò6Ð6Ø×&Ò& v¨x¸À%ÑHÔHÐHÝ�c¥(¨HÑ5Ô5Ñ6Ô6�àÔ#ð !¨ð !°X¸b´\×5GÒ5GÑ5IÔ5IÈRÒ5OÐ5OØ�8 H¨R¤LÑ1Ô1Ñ1�Ø˜R�Làñ "à”NÐ*Ý˜5‘z”z A‘~¨¬Ò6Ð6à"ð 7ð  Ô/ð 7õ   ™KœK¨1Ò,Ð,Ø & q¤	§¢Ñ 1Ô 1ð -ð   5Ò(Ð(à—L’L ¨"¯'ª'°(Ñ*;Ô*;Ñ!;Ñ<Ô<Ð<Ñ<à"ð Ià$ RœL×.Ò.Ñ0Ô0ð"à '­(°4Ô3CÑ*DÔ*DÑ DÈÒ MÐ Mà$ŸOšO¨DÔ,<Ñ=Ô=Ð=Ø!ŸLšL¨°"·'²'¸(Ñ2CÔ2CÑ)CÑDÔDÐDØ!Ø¥8¨H°R¬LÑ#9Ô#9Ñ9˜Ø$ R˜Lð #ð Ið !ð &Ø(-¨b¬	×(8Ò(8Ñ(:Ô(:˜Iå (¨Ñ 3Ô 3µh¸tÔ?OÑ6PÔ6PÑ PØ#'¤:ò!.ð !.ð -6¸Ô8HÑ,H  b¡	Ø %ØŸš V¨dÔ.>×.EÒ.EÑ.GÔ.GÑ%GÑHÔHÐHØðE ñ B	ðH ˆr   r<   r	   úcabc.Iterator[None]c              #  ó²   K  — | j         }| j        }| xj         |z  c_         | xj        |z  c_        	 d V — || _         || _        d S # || _         || _        w xY w)N)r1   r0   )r'   r<   Úold_initial_indentÚold_subsequent_indents       r   Úextra_indentzTextWrapper.extra_indent¤   sƒ   è è € à!Ô0ÐØ $Ô 6ÐØÐÔ˜vÑ%ÐÔØÐÔ &Ñ(ÐÔð	;ØˆEˆEˆEà"4ˆDÔØ%:ˆDÔ"Ð"Ð"øð #5ˆDÔØ%:ˆDÔ"Ð:Ð:Ð:Ð:s   ²A ÁAr   c                óØ   — g }t          |                     ¦   «         ¦  «        D ]2\  }}| j        }|dk    r| j        }|                     |› |› �¦  «         Œ3d                     |¦  «        S )Nr   ú
)Ú	enumerateÚ
splitlinesr1   r0   r%   r9   )r'   r   ÚrvÚidxÚliner<   s         r   Úindent_onlyzTextWrapper.indent_only±   su   € Øˆå" 4§?¢?Ñ#4Ô#4Ñ5Ô5ð 	)ð 	)‰IˆC�ØÔ(ˆFà�QŠwˆwØÔ/�à�IŠI˜Ð' Ð'Ð'Ñ(Ô(Ð(Ð(à�yŠy˜‰}Œ}Ðr   N)
r   r   r   r   r   r   r   r   r   r    )r,   r   r   r   )r<   r	   r   r?   )r   r	   r   r	   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r+   r>   r   rC   rK   © r   r   r   r   &   s   € € € € € ðð ð3ð 3ð 3ð 3ð$`ð `ð `ð `ðD ð
;ð 
;ð 
;ñ „^ð
;ðð ð ð ð ð r   r   )r   r	   r
   r   r   r	   )Ú
__future__r   Úcollections.abcÚabcÚcabcÚtextwrapÚ
contextlibr   Ú_compatr   r   r   r   rP   r   r   ú<module>rX      s½   ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð ð ð6Vð Vð Vð Vð V�(Ô&ñ Vô Vð Vð Vð Vr   