§
    ŒŸj  ã                  ó¤   — d dl mZ d dlmc mZ d dlmZ d dlmZ ddl	m
Z
mZ dgZ G d„ d¦  «        Z G d	„ d
e¦  «        Zdd„Z e¦   «         ZdS )é    )ÚannotationsN)Ú	Formatter)ÚAnyé   )ÚFormattedTextÚStyleAndTextTuplesÚHTMLc                  ó:   — e Zd ZdZdd„Zdd„Zdd	„Zdd„Zdd„ZdS )r	   a  
    HTML formatted text.
    Take something HTML-like, for use as a formatted string.

    ::

        # Turn something into red.
        HTML('<style fg="ansired" bg="#00ff44">...</style>')

        # Italic, bold, underline and strike.
        HTML('<i>...</i>')
        HTML('<b>...</b>')
        HTML('<u>...</u>')
        HTML('<s>...</s>')

    All HTML elements become available as a "class" in the style sheet.
    E.g. ``<username>...</username>`` can be styled, by setting a style for
    ``username``.
    ÚvalueÚstrÚreturnÚNonec                óÄ   ‡‡‡‡‡‡— || _         t          j        d|› d�¦  «        }g Šg Šg Šg Šd
ˆˆˆfd„Šdˆˆˆˆˆˆfd	„Š ‰|¦  «         t          ‰¦  «        | _        d S )Nz<html-root>z</html-root>r   r   c                 ó  •— g } ‰r+|                       dd                     ‰¦  «        z   ¦  «         ‰r|                       d‰d         z   ¦  «         ‰r|                       d‰d         z   ¦  «         d                     | ¦  «        S )z$Build style string for current node.zclass:ú,zfg:éÿÿÿÿzbg:ú )ÚappendÚjoin)ÚpartsÚbg_stackÚfg_stackÚ
name_stacks    €€€úo/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/prompt_toolkit/formatted_text/html.pyÚget_current_stylez(HTML.__init__.<locals>.get_current_style*   s‰   ø€ àˆEØð >Ø—’˜X¨¯ª°Ñ(<Ô(<Ñ<Ñ=Ô=Ð=àð 3Ø—’˜U X¨b¤\Ñ1Ñ2Ô2Ð2Øð 3Ø—’˜U X¨b¤\Ñ1Ñ2Ô2Ð2Ø—8’8˜E‘?”?Ð"ó    Únoder   r   c                óŒ  •— | j         D �]9}|j        |j        k    r%‰                      ‰	¦   «         |j        f¦  «         Œ8|j        dv}dx}}|j                             ¦   «         D ]\  }}|dk    r|}|dk    r|}|dk    r|}Œd|v rt          d¦  «        ‚d|v rt          d¦  «        ‚|r‰
                     |j        ¦  «         |r‰                     |¦  «         |r‰                     |¦  «          ‰|¦  «         |r‰
 	                    ¦   «          |r‰ 	                    ¦   «          |r‰ 	                    ¦   «          �Œ;d	S )
zProcess node recursively.)z	#documentz	html-rootÚstyleÚ ÚfgÚbgÚcolorr   z "fg" attribute contains a space.z "bg" attribute contains a space.N)
Ú
childNodesÚnodeTypeÚ	TEXT_NODEr   ÚdataÚnodeNameÚ
attributesÚitemsÚ
ValueErrorÚpop)r   ÚchildÚadd_to_name_stackr!   r"   ÚkÚvr   r   r   r   Úprocess_nodeÚresults          €€€€€€r   r1   z#HTML.__init__.<locals>.process_node6   s•  ø€ àœð ('ñ ('�Ø”> U¤_Ò4Ð4Ø—M’MÐ#4Ð#4Ñ#6Ô#6¸¼
Ð"CÑDÔDÐDÐDà(-¬ð ?ð )Ð%ð
 !�L�B˜à %Ô 0× 6Ò 6Ñ 8Ô 8ð #ð #™˜˜1Ø š9˜9Ø!"˜BØ š9˜9Ø!"˜BØ š<˜<Ø!"˜Bøð ˜b�y�yÝ(Ð)KÑLÔLÐLØ˜b�y�yÝ(Ð)KÑLÔLÐLà(ð :Ø"×)Ò)¨%¬.Ñ9Ô9Ð9Øð ,Ø Ÿš¨Ñ+Ô+Ð+Øð ,Ø Ÿš¨Ñ+Ô+Ð+à �L Ñ'Ô'Ð'à(ð )Ø"ŸšÑ(Ô(Ð(Øð 'Ø Ÿš™œ˜Øð 'Ø Ÿš™œ˜ùðQ('ð ('r   ©r   r   )r   r   r   r   )r   ÚminidomÚparseStringr   Úformatted_text)	Úselfr   Údocumentr   r   r   r   r1   r2   s	      @@@@@@r   Ú__init__zHTML.__init__!   sÇ   øøøøøø€ ØˆŒ
ÝÔ&Ð'H°UÐ'HÐ'HÐ'HÑIÔIˆà%'ˆØ "ˆ
Ø ˆØ ˆð
	#ð 
	#ð 
	#ð 
	#ð 
	#ð 
	#ð 
	#ð 
	#ð*	'ð *	'ð *	'ð *	'ð *	'ð *	'ð *	'ð *	'ð *	'ð *	'ð *	'ðX 	ˆ�XÑÔÐå+¨FÑ3Ô3ˆÔÐÐr   c                ó   — d| j         ›d�S )NzHTML(ú))r   ©r7   s    r   Ú__repr__zHTML.__repr__f   s   € Ø&�t”zÐ&Ð&Ð&Ð&r   r   c                ó   — | j         S ©N)r6   r<   s    r   Ú__pt_formatted_text__zHTML.__pt_formatted_text__i   s   € ØÔ"Ð"r   ÚargsÚobjectÚkwargsc                ó^   — t          t                               | j        ||¦  «        ¦  «        S )zc
        Like `str.format`, but make sure that the arguments are properly
        escaped.
        )r	   Ú	FORMATTERÚvformatr   )r7   rA   rC   s      r   ÚformatzHTML.formatl   s&   € õ
 •I×%Ò% d¤j°$¸Ñ?Ô?Ñ@Ô@Ð@r   c                ó’   — t          |t          ¦  «        s|f}t          d„ |D ¦   «         ¦  «        }t          | j        |z  ¦  «        S )z+
        HTML('<b>%s</b>') % value
        c              3  ó4   K  — | ]}t          |¦  «        V — Œd S r?   )Úhtml_escape)Ú.0Úis     r   ú	<genexpr>zHTML.__mod__.<locals>.<genexpr>z   s(   è è € Ð4Ð4¨•k !‘n”nÐ4Ð4Ð4Ð4Ð4Ð4r   )Ú
isinstanceÚtupler	   r   )r7   r   s     r   Ú__mod__zHTML.__mod__s   sN   € õ ˜%¥Ñ'Ô'ð 	Ø�HˆEåÐ4Ð4¨eÐ4Ñ4Ô4Ñ4Ô4ˆÝ�D”J Ñ&Ñ'Ô'Ð'r   N)r   r   r   r   r3   )r   r   )rA   rB   rC   rB   r   r	   )r   rB   r   r	   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r9   r=   r@   rG   rP   © r   r   r	   r	      s‹   € € € € € ðð ð(C4ð C4ð C4ð C4ðJ'ð 'ð 'ð 'ð#ð #ð #ð #ðAð Að Að Að(ð (ð (ð (ð (ð (r   c                  ó   — e Zd Zdd„ZdS )	ÚHTMLFormatterr   rB   Úformat_specr   r   c                ó<   — t          t          ||¦  «        ¦  «        S r?   )rJ   rG   )r7   r   rX   s      r   Úformat_fieldzHTMLFormatter.format_field   s   € Ý�6 %¨Ñ5Ô5Ñ6Ô6Ð6r   N)r   rB   rX   r   r   r   )rQ   rR   rS   rZ   rU   r   r   rW   rW   ~   s(   € € € € € ð7ð 7ð 7ð 7ð 7ð 7r   rW   ÚtextrB   r   r   c                óÖ   — t          | t          ¦  «        s| › } |                      dd¦  «                             dd¦  «                             dd¦  «                             dd¦  «        S )	Nú&z&amp;ú<z&lt;ú>z&gt;ú"z&quot;)rN   r   Úreplace)r[   s    r   rJ   rJ   ƒ   sb   € õ �d�CÑ Ô ð Øˆyˆð 	�Š�S˜'Ñ"Ô"ß	Š��fÑ	Ô	ß	Š��fÑ	Ô	ß	Š��hÑ	Ô	ð	r   )r[   rB   r   r   )Ú
__future__r   Úxml.dom.minidomÚdomr4   Ústringr   Útypingr   Úbaser   r   Ú__all__r	   rW   rJ   rE   rU   r   r   ú<module>ri      sõ   ðØ "Ð "Ð "Ð "Ð "Ð "à !Ð !Ð !Ð !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3àˆ(€ðo(ð o(ð o(ð o(ð o(ñ o(ô o(ð o(ðd7ð 7ð 7ð 7ð 7�Iñ 7ô 7ð 7ð
ð ð ð ð ˆM‰OŒO€	€	€	r   