§
    ŒŸj‘/  ã                   óü   — d Z ddlmZ ddlmZ ddlZd„ Zd„ Zd„ Zd	„ Zd
„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z G d„ dej        ¦  «        Z G d „ d!e¦  «        ZdS )"aï  This implements an ANSI (VT100) terminal emulator as a subclass of screen.

PEXPECT LICENSE

    This license is approved by the OSI and FSF as GPL-compatible.
        http://opensource.org/licenses/isc-license.txt

    Copyright (c) 2012, Noah Spurrier <noah@noah.org>
    PERMISSION TO USE, COPY, MODIFY, AND/OR DISTRIBUTE THIS SOFTWARE FOR ANY
    PURPOSE WITH OR WITHOUT FEE IS HEREBY GRANTED, PROVIDED THAT THE ABOVE
    COPYRIGHT NOTICE AND THIS PERMISSION NOTICE APPEAR IN ALL COPIES.
    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
    WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
    MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
    ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
    ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
    OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

é   )Úscreen)ÚFSMé    Nc                 óJ   — | j         d         } |j        | j        ¦  «         d S ©Nr   )ÚmemoryÚwrite_chÚinput_symbol©Úfsmr   s     úY/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/pexpect/ANSI.pyÚDoEmitr   $   s(   € àŒZ˜Œ]€FØ€F„O�CÔ$Ñ%Ô%Ð%Ð%Ð%ó    c                 óD   — | j                              | j        ¦  «         d S ©N)r   Úappendr
   )r   s    r   ÚDoStartNumberr   )   s!   € à„J×Ò�sÔ'Ñ(Ô(Ð(Ð(Ð(r   c                 ó€   — | j                              ¦   «         }|| j        z   }| j                              |¦  «         d S r   )r   Úpopr
   r   )r   Únss     r   ÚDoBuildNumberr   -   s<   € à	Œ�ŠÑ	Ô	€BØ	ˆcÔÑ	€BØ„J×Ò�rÑÔÐÐÐr   c                 ó>   — | j         d         } |j        ¦   «          d S r   )r   Úcursor_backr   s     r   Ú	DoBackOner   3   ó$   € àŒZ˜Œ]€FØ€FÔÑÔÐÐÐr   c                 óŒ   — t          | j                             ¦   «         ¦  «        }| j        d         } |j        |¦  «         d S r   )Úintr   r   r   ©r   Úcountr   s      r   ÚDoBackr    8   ó?   € å�”
—’Ñ Ô Ñ!Ô!€EØŒZ˜Œ]€FØ€FÔ˜ÑÔÐÐÐr   c                 ó>   — | j         d         } |j        ¦   «          d S r   )r   Úcursor_downr   s     r   Ú	DoDownOner$   >   r   r   c                 óŒ   — t          | j                             ¦   «         ¦  «        }| j        d         } |j        |¦  «         d S r   )r   r   r   r#   r   s      r   ÚDoDownr&   C   r!   r   c                 ó>   — | j         d         } |j        ¦   «          d S r   )r   Úcursor_forwardr   s     r   ÚDoForwardOner)   I   s$   € àŒZ˜Œ]€FØ€FÔÑÔÐÐÐr   c                 óŒ   — t          | j                             ¦   «         ¦  «        }| j        d         } |j        |¦  «         d S r   )r   r   r   r(   r   s      r   Ú	DoForwardr+   N   s?   € å�”
—’Ñ Ô Ñ!Ô!€EØŒZ˜Œ]€FØ€FÔ˜5Ñ!Ô!Ð!Ð!Ð!r   c                 ó>   — | j         d         } |j        ¦   «          d S r   )r   Úcursor_up_reverser   s     r   ÚDoUpReverser.   T   ó$   € àŒZ˜Œ]€FØ€FÔÑÔÐÐÐr   c                 ó>   — | j         d         } |j        ¦   «          d S r   )r   Ú	cursor_upr   s     r   ÚDoUpOner2   Y   s$   € àŒZ˜Œ]€FØ€FÔÑÔÐÐÐr   c                 óŒ   — t          | j                             ¦   «         ¦  «        }| j        d         } |j        |¦  «         d S r   )r   r   r   r1   r   s      r   ÚDoUpr4   ^   s?   € å�”
—’Ñ Ô Ñ!Ô!€EØŒZ˜Œ]€FØ€FÔ�eÑÔÐÐÐr   c                 óÚ   — t          | j                             ¦   «         ¦  «        }t          | j                             ¦   «         ¦  «        }| j        d         } |j        ||¦  «         d S r   )r   r   r   Úcursor_home©r   ÚcÚrr   s       r   ÚDoHomer:   d   sZ   € åˆCŒJ�NŠNÑÔÑÔ€AÝˆCŒJ�NŠNÑÔÑÔ€AØŒZ˜Œ]€FØ€FÔ˜˜!ÑÔÐÐÐr   c                 óJ   — d}d}| j         d         } |j        ||¦  «         d S )Nr   r   )r   r6   r7   s       r   ÚDoHomeOriginr<   k   s2   € à	€AØ	€AØŒZ˜Œ]€FØ€FÔ˜˜!ÑÔÐÐÐr   c                 ó>   — | j         d         } |j        ¦   «          d S r   )r   Ú
erase_downr   s     r   ÚDoEraseDownr?   r   s$   € àŒZ˜Œ]€FØ€FÔÑÔÐÐÐr   c                 óö   — t          | j                             ¦   «         ¦  «        }| j        d         }|dk    r |j        ¦   «          d S |dk    r |j        ¦   «          d S |dk    r |j        ¦   «          d S d S ©Nr   r   é   )r   r   r   r>   Úerase_upÚerase_screen©r   Úargr   s      r   ÚDoEraserG   w   sŒ   € å
ˆcŒj�nŠnÑÔÑ
Ô
€CØŒZ˜Œ]€FØ
ˆa‚x€xØˆÔÑÔÐÐÐØ	�ŠˆØˆŒÑÔÐÐÐØ	�ŠˆØˆÔÑÔÐÐÐð 
ˆr   c                 ó>   — | j         d         } |j        ¦   «          d S r   )r   Úerase_end_of_liner   s     r   ÚDoEraseEndOfLinerJ   ‚   r/   r   c                 óö   — t          | j                             ¦   «         ¦  «        }| j        d         }|dk    r |j        ¦   «          d S |dk    r |j        ¦   «          d S |dk    r |j        ¦   «          d S d S rA   )r   r   r   rI   Úerase_start_of_lineÚ
erase_linerE   s      r   ÚDoEraseLinerN   ‡   s�   € å
ˆcŒj�nŠnÑÔÑ
Ô
€CØŒZ˜Œ]€FØ
ˆa‚x€xØ ˆÔ Ñ"Ô"Ð"Ð"Ð"Ø	�ŠˆØ"ˆÔ"Ñ$Ô$Ð$Ð$Ð$Ø	�ŠˆØˆÔÑÔÐÐÐð 
ˆr   c                 ó>   — | j         d         } |j        ¦   «          d S r   )r   Úscroll_screenr   s     r   ÚDoEnableScrollrQ   ’   s$   € àŒZ˜Œ]€FØ€FÔÑÔÐÐÐr   c                 ó>   — | j         d         } |j        ¦   «          d S r   )r   Úcursor_save_attrsr   s     r   ÚDoCursorSaverT   —   r/   r   c                 ó>   — | j         d         } |j        ¦   «          d S r   )r   Úcursor_restore_attrsr   s     r   ÚDoCursorRestorerW   œ   s$   € àŒZ˜Œ]€FØ€FÔÑ!Ô!Ð!Ð!Ð!r   c                 óÚ   — | j         d         }t          | j                              ¦   «         ¦  «        }t          | j                              ¦   «         ¦  «        } |j        ||¦  «         d S r   )r   r   r   Úscroll_screen_rows)r   r   Úr2Úr1s       r   ÚDoScrollRegionr\   ¡   sZ   € àŒZ˜Œ]€FÝ	ˆSŒZ�^Š^ÑÔÑ	Ô	€BÝ	ˆSŒZ�^Š^ÑÔÑ	Ô	€BØ€FÔ˜r "Ñ%Ô%Ð%Ð%Ð%r   c                 óR   — | j         d         }| j                              ¦   «         }d S r   )r   r   )r   r   Úmodes      r   ÚDoModer_   ¨   s"   € àŒZ˜Œ]€FØŒ:�>Š>ÑÔ€D€D€Dr   c                 óÈ   — | j         d         }|g| _         t          dd¦  «        }|                     | j        dz   | j        z   dz   ¦  «         |                     ¦   «          d S )Nr   ÚlogÚaú,ú
)r   ÚopenÚwriter
   Úcurrent_stateÚclose)r   r   Úfouts      r   ÚDoLogrj   ®   s]   € àŒZ˜Œ]€FØ�€C„JÝ�˜ÑÔ€DØ‡J‚J�Ô  3Ñ&¨Ô):Ñ:¸TÑAÑBÔBÐBØ‡J‚J�L„L€L€L€Lr   c                   ó   — e Zd ZdZdd„ZdS )Útermz²This class is an abstract, generic terminal.
    This does nothing. This is a placeholder that
    provides a common base class for other terminals
    such as an ANSI terminal. é   éP   c                 ó>   — t          j         j        | ||g|¢R i |¤Ž d S r   )r   Ú__init__©Úselfr9   r8   ÚargsÚkwargss        r   rp   zterm.__init__½   s/   € åŒÔ˜t Q qÐ8¨$Ð8Ð8Ð8°Ð8Ð8Ð8Ð8Ð8r   N©rm   rn   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rp   © r   r   rl   rl   ¶   s2   € € € € € ð"ð "ð
9ð 9ð 9ð 9ð 9ð 9r   rl   c                   óJ   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Zd	„ Z	d
„ Z
d„ Zd„ ZdS )ÚANSIz©This class implements an ANSI (VT100) terminal.
    It is a stream filter that recognizes ANSI terminal
    escape sequences and maintains the state of a screen object. rm   rn   c                 óf  — t          j        | ||g|¢R i |¤Ž t          j        d| g¦  «        | _        | j                             t
          d¦  «         | j                             dt          d¦  «         | j                             ddd d¦  «         | j                             dt
          d¦  «         | j                             ddd d¦  «         | j                             ddd d¦  «         | j         	                    ddd d¦  «         | j         	                    ddd d¦  «         | j                             d	dt          d¦  «         | j                             d
dt          d¦  «         | j                             ddt          d¦  «         | j                             ddt          d¦  «         | j                             ddt          d¦  «         | j                             ddd d¦  «         | j                             ddd d¦  «         | j                             dd d¦  «         | j                             ddd d¦  «         | j                             ddt          d¦  «         | j                             ddt          d¦  «         | j                             ddt          d¦  «         | j                             ddt           d¦  «         | j                             ddt"          d¦  «         | j                             ddt$          d¦  «         | j                             ddt&          d¦  «         | j                             ddt(          d¦  «         | j                             dd| j        d¦  «         | j                             ddd d¦  «         | j         	                    t,          j        dt0          d¦  «         | j         	                    t,          j        dt2          d¦  «         | j                             ddt4          d¦  «         | j                             ddt6          d¦  «         | j                             ddt8          d¦  «         | j                             ddt:          d¦  «         | j                             ddt<          d¦  «         | j                             ddt>          d¦  «         | j                             ddt@          d¦  «         | j                             dd| j        d¦  «         | j                             d d| j!        d¦  «         | j         	                    t,          j        dt0          d!¦  «         | j         	                    t,          j        d!t2          d!¦  «         | j                             dd!| j"        d¦  «         | j                             d"d!| j"        d¦  «         | j                             d#dd d$¦  «         | j                             d$t
          d¦  «         | j         	                    t,          j        d$t0          d%¦  «         | j         	                    t,          j        d%t2          d%¦  «         | j                             d%t
          d¦  «         | j                             dd%tF          d¦  «         | j                             d&d%tF          d¦  «         | j                             dd%tH          d¦  «         | j                             dd%| j        d¦  «         | j                             d d%| j!        d¦  «         | j                             d#d%d d'¦  «         | j                             d't
          d¦  «         | j         	                    t,          j        d't0          d(¦  «         | j         	                    t,          j        d(t2          d(¦  «         | j                             d(t
          d¦  «         | j                             dd(| j        d¦  «         | j                             d d(| j!        d¦  «         | j                             d#d(d d'¦  «         d S ))NÚINITúÚESCú(ÚG0SCSú)ÚG1SCSÚAB012Ú7Ú8ÚMú>ú<ú=ú#ÚGRAPHICS_POUNDú[ÚELBÚHÚDÚBÚCÚAÚJÚKr9   Úmú?ÚMODECRAPÚNUMBER_1ÚlÚqÚMODECRAP_NUMÚhú;Ú	SEMICOLONÚNUMBER_2ÚfÚSEMICOLON_XÚNUMBER_X)%rl   rp   r   ÚstateÚset_default_transitionrj   Úadd_transition_anyr   Úadd_transitionÚadd_transition_listrT   rW   r.   r<   r   r$   r)   r2   r?   rJ   rQ   Údo_sgrÚstringÚdigitsr   r   r    r&   r+   r4   rG   rN   r_   Ú	do_decscaÚdo_modecrapr:   r\   rq   s        r   rp   zANSI.__init__Æ   sù  € åŒ�d˜1˜QÐ. Ð.Ð.Ð. vÐ.Ð.Ð.õ ”W˜f d VÑ,Ô,ˆŒ
ØŒ
×)Ò)­5°&Ñ9Ô9Ð9ØŒ
×%Ò% v­v°vÑ>Ô>Ð>ØŒ
×!Ò! 6¨6°4¸Ñ?Ô?Ð?ØŒ
×%Ò% u­e°VÑ<Ô<Ð<ØŒ
×!Ò! 3¨¨t°WÑ=Ô=Ð=ØŒ
×!Ò! 3¨¨t°WÑ=Ô=Ð=ØŒ
×&Ò&¨°¸$ÀÑGÔGÐGØŒ
×&Ò&¨°¸$ÀÑGÔGÐGØŒ
×!Ò! 3¨­|¸VÑDÔDÐDØŒ
×!Ò! 3¨­ÀÑGÔGÐGØŒ
×!Ò! 3¨­{¸FÑCÔCÐCØŒ
×!Ò! 3¨­{¸FÑCÔCÐCØŒ
×!Ò! 3¨­{¸FÑCÔCÐCØŒ
×!Ò! 3¨¨t°VÑ<Ô<Ð<ØŒ
×!Ò! 3¨¨tÐ5EÑFÔFÐFØŒ
×%Ò%Ð'7¸¸vÑFÔFÐFØŒ
×!Ò! 3¨¨t°UÑ;Ô;Ð;àŒ
×!Ò! 3¨­|¸VÑDÔDÐDØŒ
×!Ò! 3¨­y¸&ÑAÔAÐAØŒ
×!Ò! 3¨­y¸&ÑAÔAÐAØŒ
×!Ò! 3¨­|¸VÑDÔDÐDØŒ
×!Ò! 3¨­w¸Ñ?Ô?Ð?ØŒ
×!Ò! 3¨­{¸FÑCÔCÐCØŒ
×!Ò! 3¨Õ/?ÀÑHÔHÐHØŒ
×!Ò! 3¨­~¸vÑFÔFÐFØŒ
×!Ò! 3¨¨t¬{¸FÑCÔCÐCØŒ
×!Ò! 3¨¨t°ZÑ@Ô@Ð@ØŒ
×&Ò&­¬°u½mÈZÑXÔXÐXØŒ
×&Ò&­¬°zÅ=ÐR\Ñ]Ô]Ð]ØŒ
×!Ò! 3¨
µF¸FÑCÔCÐCØŒ
×!Ò! 3¨
µF¸FÑCÔCÐCØŒ
×!Ò! 3¨
µI¸vÑFÔFÐFØŒ
×!Ò! 3¨
µD¸&ÑAÔAÐAØŒ
×!Ò! 3¨
µG¸VÑDÔDÐDØŒ
×!Ò! 3¨
µKÀÑHÔHÐHØŒ
×!Ò! 3¨
µF¸FÑCÔCÐCð 	Œ
×!Ò! 3¨
°D´KÀÑHÔHÐHàŒ
×!Ò! 3¨
°D´NÀFÑKÔKÐKð 	Œ
×&Ò&­¬°zÅ=ÐR`ÑaÔaÐaØŒ
×&Ò&­¬°~Å}ÐVdÑeÔeÐeØŒ
×!Ò! 3¨¸Ô8HÈ&ÑQÔQÐQØŒ
×!Ò! 3¨¸Ô8HÈ&ÑQÔQÐQð 	Œ
×!Ò! 3¨
°D¸+ÑFÔFÐFØŒ
×%Ò% {µE¸6ÑBÔBÐBØŒ
×&Ò&­¬°{ÅMÐS]Ñ^Ô^Ð^ØŒ
×&Ò&­¬°zÅ=ÐR\Ñ]Ô]Ð]ØŒ
×%Ò% zµ5¸&ÑAÔAÐAØŒ
×!Ò! 3¨
µF¸FÑCÔCÐCØŒ
×!Ò! 3¨
µF¸FÑCÔCÐCØŒ
×!Ò! 3¨
µNÀFÑKÔKÐKð 	Œ
×!Ò! 3¨
°D´KÀÑHÔHÐHàŒ
×!Ò! 3¨
°D´NÀFÑKÔKÐKØŒ
×!Ò! 3¨
°D¸-ÑHÔHÐHð 	Œ
×%Ò% }µe¸VÑDÔDÐDØŒ
×&Ò&­¬°}ÅmÐU_Ñ`Ô`Ð`ØŒ
×&Ò&­¬°zÅ=ÐR\Ñ]Ô]Ð]ØŒ
×%Ò% zµ5¸&ÑAÔAÐAØŒ
×!Ò! 3¨
°D´KÀÑHÔHÐHØŒ
×!Ò! 3¨
°D´NÀFÑKÔKÐKØŒ
×!Ò! 3¨
°D¸-ÑHÔHÐHÐHÐHr   c                 óŽ   — t          |t          ¦  «        r|                      |¦  «        }| j                             |¦  «         dS )z4Process a single character. Called by :meth:`write`.N)Ú
isinstanceÚbytesÚ_decoder¥   Úprocess)rr   r8   s     r   r³   zANSI.process  s?   € å�a�ÑÔð 	 Ø—’˜Q‘”ˆAØŒ
×Ò˜1ÑÔÐÐÐr   c                 ó0   — |                       |¦  «         d S r   )rf   )rr   r›   s     r   Úprocess_listzANSI.process_list  s   € à�
Š
�1‰Œˆˆˆr   c                 óŽ   — t          |t          ¦  «        r|                      |¦  «        }|D ]}|                      |¦  «         ŒdS )zaProcess text, writing it to the virtual screen while handling
        ANSI escape codes.
        N)r°   r±   r²   r³   )rr   Úsr8   s      r   rf   z
ANSI.write#  sO   € õ �a�ÑÔð 	 Ø—’˜Q‘”ˆAØð 	ð 	ˆAØ�LŠL˜‰OŒOˆOˆOð	ð 	r   c                 ó   — d S r   rz   )rr   s    r   Úflushz
ANSI.flush,  s   € Øˆr   c                 óÞ  — t          |t          ¦  «        r|                      |¦  «        }|d         }|dk    r|                      ¦   «          dS |dk    r|                      ¦   «          dS |t          t          j        ¦  «        k    r|                      ¦   «          dS |  	                    | j
        | j        |¦  «         | j
        }| j        }|                      ¦   «          || j        k    r�|                      ¦   «          || j
        k    r|                      | j
        d¦  «         dS |                      ¦   «          |                      | j
        d¦  «         |                      ¦   «          dS dS )zÏThis puts a character at the current cursor position. The cursor
        position is moved forward with wrap-around, but no scrolling is done if
        the cursor hits the lower-right corner of the screen. r   úNrd   r   )r°   r±   r²   ÚcrÚcrlfÚchrr   ÚBSr   Úput_absÚcur_rÚcur_cr(   r#   r6   Ú	scroll_uprM   )rr   ÚchÚold_rÚold_cs       r   r	   zANSI.write_ch/  s\  € õ
 �b�%Ñ Ô ð 	"Ø—’˜bÑ!Ô!ˆBð �ŒUˆà�Š;ˆ;Ø�GŠG‰IŒIˆIØˆFØ�Š;ˆ;Ø�IŠI‰KŒKˆKØˆFØ••V”Y‘”ÒÐØ×ÒÑÔÐØˆFØ�Š�T”Z ¤¨RÑ0Ô0Ð0Ø”
ˆØ”
ˆØ×ÒÑÔÐØ�D”JÒÐØ×ÒÑÔÐØ˜œ
Ò"Ð"Ø× Ò  $¤*¨aÑ0Ô0Ð0Ð0Ð0à—’Ñ!Ô!Ð!Ø× Ò  $¤*¨aÑ0Ô0Ð0Ø—’Ñ!Ô!Ð!Ð!Ð!ð Ðr   c                 ó0   — |j         d         }|g|_         dS )z&Select Graphic Rendition, e.g. color. r   N©r   ©rr   r   r   s      r   rª   zANSI.do_sgrP  ó   € à”˜A”ˆØ�XˆŒ
ˆ
ˆ
r   c                 ó0   — |j         d         }|g|_         dS )z'Select character protection attribute. r   NrÈ   rÉ   s      r   r­   zANSI.do_decscaU  rÊ   r   c                 ó0   — |j         d         }|g|_         dS )z¿Handler for [?<number>h and [?<number>l. If anyone
        wanted to actually use these, they'd need to add more states to the
        FSM rather than just improve or override this method. r   NrÈ   rÉ   s      r   r®   zANSI.do_modecrapZ  s   € ð ”˜A”ˆØ�XˆŒ
ˆ
ˆ
r   Nru   )rv   rw   rx   ry   rp   r³   rµ   rf   r¹   r	   rª   r­   r®   rz   r   r   r|   r|   Á   s¶   € € € € € ðEð EðQIð QIð QIð QIðfð ð ðð ð ðð ð ðð ð ð"ð "ð "ðBð ð ð
ð ð ð
ð ð ð ð r   r|   )ry   Ú r   r   r«   r   r   r   r   r    r$   r&   r)   r+   r.   r2   r4   r:   r<   r?   rG   rJ   rN   rQ   rT   rW   r\   r_   rj   rl   r|   rz   r   r   ú<module>rÎ      s  ððð ð8 Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€ð
&ð &ð &ð
)ð )ð )ðð ð ðð ð ð
ð ð ðð ð ð
ð ð ðð ð ð
"ð "ð "ðð ð ð
ð ð ð
ð ð ðð ð ðð ð ðð ð ð
	ð 	ð 	ðð ð ð
	ð 	ð 	ðð ð ð
ð ð ð
"ð "ð "ð
&ð &ð &ðð ð ðð ð ð	9ð 	9ð 	9ð 	9ð 	9ˆFŒMñ 	9ô 	9ð 	9ð^ð ^ð ^ð ^ð ^ˆDñ ^ô ^ð ^ð ^ð ^r   