ó
    ý¸e‘/  ã                   óø   • S r SSKJr  SSKJr  SSKrS rS rS rS	 rS
 r	S r
S rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r " S S\R                  5      r " S  S!\5      rg)"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                 óZ   • U R                   S   nUR                  " U R                  5        g ©Nr   )ÚmemoryÚwrite_chÚinput_symbol©Úfsmr   s     Ú./usr/lib/python3/dist-packages/pexpect/ANSI.pyÚDoEmitr   $   s!   € à�Z‰Z˜‰]€FØ
‡O‚O�C×$Ñ$Õ%ó    c                 óN   • U R                   R                  U R                  5        g ©N)r   Úappendr
   )r   s    r   ÚDoStartNumberr   )   s   € à‡J�J×Ñ�s×'Ñ'Õ(r   c                 óŠ   • U R                   R                  5       nXR                  -   nU R                   R                  U5        g r   )r   Úpopr
   r   )r   Únss     r   ÚDoBuildNumberr   -   s2   € à	�‰�‰Ó	€BØ	×ÑÑ	€BØ‡J�J×Ñ�rÕr   c                 óD   • U R                   S   nUR                  " 5         g r   )r   Úcursor_backr   s     r   Ú	DoBackOner   3   ó   € à�Z‰Z˜‰]€FØ
×ÒÕr   c                 óŒ   • [        U R                  R                  5       5      nU R                  S   nUR                  " U5        g r   )Úintr   r   r   ©r   Úcountr   s      r   ÚDoBackr    8   ó2   € ä�—
‘
—‘Ó Ó!€EØ�Z‰Z˜‰]€FØ
×Ò˜Õr   c                 óD   • U R                   S   nUR                  " 5         g r   )r   Úcursor_downr   s     r   Ú	DoDownOner$   >   r   r   c                 óŒ   • [        U R                  R                  5       5      nU R                  S   nUR                  " U5        g r   )r   r   r   r#   r   s      r   ÚDoDownr&   C   r!   r   c                 óD   • U R                   S   nUR                  " 5         g r   )r   Úcursor_forwardr   s     r   ÚDoForwardOner)   I   s   € à�Z‰Z˜‰]€FØ
×ÒÕr   c                 óŒ   • [        U R                  R                  5       5      nU R                  S   nUR                  " U5        g r   )r   r   r   r(   r   s      r   Ú	DoForwardr+   N   s2   € ä�—
‘
—‘Ó Ó!€EØ�Z‰Z˜‰]€FØ
×Ò˜5Õ!r   c                 óD   • U R                   S   nUR                  " 5         g r   )r   Úcursor_up_reverser   s     r   ÚDoUpReverser.   T   ó   € à�Z‰Z˜‰]€FØ
×ÒÕr   c                 óD   • U R                   S   nUR                  " 5         g r   )r   Ú	cursor_upr   s     r   ÚDoUpOner2   Y   s   € à�Z‰Z˜‰]€FØ
×ÒÕr   c                 óŒ   • [        U R                  R                  5       5      nU R                  S   nUR                  " U5        g r   )r   r   r   r1   r   s      r   ÚDoUpr4   ^   s2   € ä�—
‘
—‘Ó Ó!€EØ�Z‰Z˜‰]€FØ
×Ò�eÕr   c                 óÒ   • [        U R                  R                  5       5      n[        U R                  R                  5       5      nU R                  S   nUR                  " X!5        g r   )r   r   r   Úcursor_home©r   ÚcÚrr   s       r   ÚDoHomer:   d   sG   € äˆC�J‰J�N‰NÓÓ€AÜˆC�J‰J�N‰NÓÓ€AØ�Z‰Z˜‰]€FØ
×Ò˜Õr   c                 óN   • SnSnU R                   S   nUR                  " X!5        g )Nr   r   )r   r6   r7   s       r   ÚDoHomeOriginr<   k   s'   € à	€AØ	€AØ�Z‰Z˜‰]€FØ
×Ò˜Õr   c                 óD   • U R                   S   nUR                  " 5         g r   )r   Ú
erase_downr   s     r   ÚDoEraseDownr?   r   s   € à�Z‰Z˜‰]€FØ
×ÒÕr   c                 óø   • [        U R                  R                  5       5      nU R                  S   nUS:X  a  UR                  " 5         g US:X  a  UR                  " 5         g US:X  a  UR
                  " 5         g g ©Nr   r   é   )r   r   r   r>   Úerase_upÚerase_screen©r   Úargr   s      r   ÚDoEraserG   w   s`   € ä
ˆc�j‰j�n‰nÓÓ
€CØ�Z‰Z˜‰]€FØ
ˆaƒxØ×ÒÕØ	�‹Ø�ŠÕØ	�‹Ø×ÒÕð 
r   c                 óD   • U R                   S   nUR                  " 5         g r   )r   Úerase_end_of_liner   s     r   ÚDoEraseEndOfLinerJ   ‚   r/   r   c                 óø   • [        U R                  R                  5       5      nU R                  S   nUS:X  a  UR                  " 5         g US:X  a  UR                  " 5         g US:X  a  UR
                  " 5         g g rA   )r   r   r   rI   Úerase_start_of_lineÚ
erase_linerE   s      r   ÚDoEraseLinerN   ‡   sb   € ä
ˆc�j‰j�n‰nÓÓ
€CØ�Z‰Z˜‰]€FØ
ˆaƒxØ× Ò Õ"Ø	�‹Ø×"Ò"Õ$Ø	�‹Ø×ÒÕð 
r   c                 óD   • U R                   S   nUR                  " 5         g r   )r   Úscroll_screenr   s     r   ÚDoEnableScrollrQ   ’   s   € à�Z‰Z˜‰]€FØ
×ÒÕr   c                 óD   • U R                   S   nUR                  " 5         g r   )r   Úcursor_save_attrsr   s     r   ÚDoCursorSaverT   —   r/   r   c                 óD   • U R                   S   nUR                  " 5         g r   )r   Úcursor_restore_attrsr   s     r   ÚDoCursorRestorerW   œ   s   € à�Z‰Z˜‰]€FØ
×ÒÕ!r   c                 óÒ   • U R                   S   n[        U R                   R                  5       5      n[        U R                   R                  5       5      nUR                  " X25        g r   )r   r   r   Úscroll_screen_rows)r   r   Úr2Úr1s       r   ÚDoScrollRegionr\   ¡   sG   € à�Z‰Z˜‰]€FÜ	ˆS�Z‰Z�^‰^ÓÓ	€BÜ	ˆS�Z‰Z�^‰^ÓÓ	€BØ
×Ò˜rÕ%r   c                 óV   • U R                   S   nU R                   R                  5       ng r   )r   r   )r   r   Úmodes      r   ÚDoModer_   ¨   s   € à�Z‰Z˜‰]€FØ�:‰:�>‰>Ó�Dr   c                 óÆ   • U R                   S   nU/U l         [        SS5      nUR                  U R                  S-   U R                  -   S-   5        UR                  5         g )Nr   ÚlogÚaÚ,Ú
)r   ÚopenÚwriter
   Úcurrent_stateÚclose)r   r   Úfouts      r   ÚDoLogrj   ®   sT   € à�Z‰Z˜‰]€FØ�€C„JÜ�˜Ó€DØ‡J�J�× Ñ  3Ñ&¨×):Ñ):Ñ:¸TÑAÔBØ‡J�J…Lr   c                   ó"   • \ rS rSrSrSS jrSrg)Útermé¶   z¦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. c                 óN   • [         R                   R                  " XU/UQ70 UD6  g r   )r   Ú__init__©Úselfr9   r8   ÚargsÚkwargss        r   ro   Úterm.__init__½   s    € ä�‰×Ò˜t qÐ8¨$Ò8°Ó8r   © N©é   éP   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ro   Ú__static_attributes__ru   r   r   rl   rl   ¶   s   † ñ"÷
9r   rl   c                   óR   • \ rS rSrSrSS jrS rS rS rS r	S r
S	 rS
 rS rSrg)ÚANSIéÁ   z¡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. c                 ó6  • [         R                  " XU/UQ70 UD6  [        R                  " SU /5      U l        U R                  R	                  [
        S5        U R                  R                  S[        S5        U R                  R                  SSS S5        U R                  R                  S[
        S5        U R                  R                  SSS S5        U R                  R                  SSS S5        U R                  R                  SSS S5        U R                  R                  SSS S5        U R                  R                  S	S[        S5        U R                  R                  S
S[        S5        U R                  R                  SS[        S5        U R                  R                  SS[        S5        U R                  R                  SS[        S5        U R                  R                  SSS S5        U R                  R                  SSS S5        U R                  R                  SS S5        U R                  R                  SSS S5        U R                  R                  SS[        S5        U R                  R                  SS[        S5        U R                  R                  SS[        S5        U R                  R                  SS[         S5        U R                  R                  SS["        S5        U R                  R                  SS[$        S5        U R                  R                  SS[&        S5        U R                  R                  SS[(        S5        U R                  R                  SSU R*                  S5        U R                  R                  SSS S5        U R                  R                  [,        R.                  S[0        S5        U R                  R                  [,        R.                  S[2        S5        U R                  R                  SS[4        S5        U R                  R                  SS[6        S5        U R                  R                  SS[8        S5        U R                  R                  SS[:        S5        U R                  R                  SS[<        S5        U R                  R                  SS[>        S5        U R                  R                  SS[@        S5        U R                  R                  SSU R*                  S5        U R                  R                  S SU RB                  S5        U R                  R                  [,        R.                  S[0        S!5        U R                  R                  [,        R.                  S![2        S!5        U R                  R                  SS!U RD                  S5        U R                  R                  S"S!U RD                  S5        U R                  R                  S#SS S$5        U R                  R                  S$[
        S5        U R                  R                  [,        R.                  S$[0        S%5        U R                  R                  [,        R.                  S%[2        S%5        U R                  R                  S%[
        S5        U R                  R                  SS%[F        S5        U R                  R                  S&S%[F        S5        U R                  R                  SS%[H        S5        U R                  R                  SS%U R*                  S5        U R                  R                  S S%U RB                  S5        U R                  R                  S#S%S S'5        U R                  R                  S'[
        S5        U R                  R                  [,        R.                  S'[0        S(5        U R                  R                  [,        R.                  S([2        S(5        U R                  R                  S([
        S5        U R                  R                  SS(U R*                  S5        U R                  R                  S S(U RB                  S5        U R                  R                  S#S(S S'5        g ))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   ro   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\   rp   s        r   ro   ÚANSI.__init__Æ   s  € ä�Š�d˜QÐ. Ò. vÒ.ô —W’W˜f d VÓ,ˆŒ
Ø�
‰
×)Ñ)¬5°&Ô9Ø�
‰
×%Ñ% v¬v°vÔ>Ø�
‰
×!Ñ! 6¨6°4¸Ô?Ø�
‰
×%Ñ% u¬e°VÔ<Ø�
‰
×!Ñ! 3¨¨t°WÔ=Ø�
‰
×!Ñ! 3¨¨t°WÔ=Ø�
‰
×&Ñ&¨°¸$ÀÔGØ�
‰
×&Ñ&¨°¸$ÀÔGØ�
‰
×!Ñ! 3¨¬|¸VÔDØ�
‰
×!Ñ! 3¨¬ÀÔGØ�
‰
×!Ñ! 3¨¬{¸FÔCØ�
‰
×!Ñ! 3¨¬{¸FÔCØ�
‰
×!Ñ! 3¨¬{¸FÔCØ�
‰
×!Ñ! 3¨¨t°VÔ<Ø�
‰
×!Ñ! 3¨¨tÐ5EÔFØ�
‰
×%Ñ%Ð'7¸¸vÔFØ�
‰
×!Ñ! 3¨¨t°UÔ;à�
‰
×!Ñ! 3¨¬|¸VÔDØ�
‰
×!Ñ! 3¨¬y¸&ÔAØ�
‰
×!Ñ! 3¨¬y¸&ÔAØ�
‰
×!Ñ! 3¨¬|¸VÔDØ�
‰
×!Ñ! 3¨¬w¸Ô?Ø�
‰
×!Ñ! 3¨¬{¸FÔCØ�
‰
×!Ñ! 3¨Ô/?ÀÔHØ�
‰
×!Ñ! 3¨¬~¸vÔFØ�
‰
×!Ñ! 3¨¨t¯{©{¸FÔCØ�
‰
×!Ñ! 3¨¨t°ZÔ@Ø�
‰
×&Ñ&¬¯©°u¼mÈZÔXØ�
‰
×&Ñ&¬¯©°zÄ=ÐR\Ô]Ø�
‰
×!Ñ! 3¨
´F¸FÔCØ�
‰
×!Ñ! 3¨
´F¸FÔCØ�
‰
×!Ñ! 3¨
´I¸vÔFØ�
‰
×!Ñ! 3¨
´D¸&ÔAØ�
‰
×!Ñ! 3¨
´G¸VÔDØ�
‰
×!Ñ! 3¨
´KÀÔHØ�
‰
×!Ñ! 3¨
´F¸FÔCð 	�
‰
×!Ñ! 3¨
°D·K±KÀÔHà�
‰
×!Ñ! 3¨
°D·N±NÀFÔKð 	�
‰
×&Ñ&¬¯©°zÄ=ÐR`ÔaØ�
‰
×&Ñ&¬¯©°~Ä}ÐVdÔeØ�
‰
×!Ñ! 3¨¸×8HÑ8HÈ&ÔQØ�
‰
×!Ñ! 3¨¸×8HÑ8HÈ&ÔQð 	�
‰
×!Ñ! 3¨
°D¸+ÔFØ�
‰
×%Ñ% {´E¸6ÔBØ�
‰
×&Ñ&¬¯©°{ÄMÐS]Ô^Ø�
‰
×&Ñ&¬¯©°zÄ=ÐR\Ô]Ø�
‰
×%Ñ% z´5¸&ÔAØ�
‰
×!Ñ! 3¨
´F¸FÔCØ�
‰
×!Ñ! 3¨
´F¸FÔCØ�
‰
×!Ñ! 3¨
´NÀFÔKð 	�
‰
×!Ñ! 3¨
°D·K±KÀÔHà�
‰
×!Ñ! 3¨
°D·N±NÀFÔKØ�
‰
×!Ñ! 3¨
°D¸-ÔHð 	�
‰
×%Ñ% }´e¸VÔDØ�
‰
×&Ñ&¬¯©°}ÄmÐU_Ô`Ø�
‰
×&Ñ&¬¯©°zÄ=ÐR\Ô]Ø�
‰
×%Ñ% z´5¸&ÔAØ�
‰
×!Ñ! 3¨
°D·K±KÀÔHØ�
‰
×!Ñ! 3¨
°D·N±NÀFÔKØ�
‰
×!Ñ! 3¨
°D¸-ÕHr   c                 ó†   • [        U[        5      (       a  U R                  U5      nU R                  R	                  U5        g)z4Process a single character. Called by :meth:`write`.N)Ú
isinstanceÚbytesÚ_decoderª   Úprocess)rq   r8   s     r   r¹   ÚANSI.process  s.   € ä�aœ×ÑØ—‘˜Q“ˆAØ�
‰
×Ñ˜1Õr   c                 ó&   • U R                  U5        g r   )rf   )rq   r    s     r   Úprocess_listÚANSI.process_list  s   € à�
‰
�1�r   c                 ó„   • [        U[        5      (       a  U R                  U5      nU H  nU R                  U5        M     g)zQProcess text, writing it to the virtual screen while handling
ANSI escape codes.
N)r¶   r·   r¸   r¹   )rq   Úsr8   s      r   rf   Ú
ANSI.write#  s3   € ô �aœ×ÑØ—‘˜Q“ˆAÛˆAØ�L‰L˜ŽOò r   c                 ó   • g r   ru   )rq   s    r   ÚflushÚ
ANSI.flush,  s   € Ør   c                 óÀ  • [        U[        5      (       a  U R                  U5      nUS   nUS:X  a  U R                  5         gUS:X  a  U R	                  5         gU[        [        R                  5      :X  a  U R                  5         gU R                  U R                  U R                  U5        U R                  nU R                  nU R                  5         X0R                  :X  ay  U R                  5         X R                  :w  a  U R                  U R                  S5        gU R                  5         U R                  U R                  S5        U R!                  5         gg)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   )rq   ÚchÚold_rÚold_cs       r   r	   ÚANSI.write_ch/  s  € ô
 �bœ%× Ñ Ø—‘˜bÓ!ˆBð �‰Uˆà�‹;Ø�G‰GŒIØØ�‹;Ø�I‰IŒKØØ””V—Y‘Y“ÓØ×ÑÔØØ�‰�T—Z‘Z §¡¨RÔ0Ø—
‘
ˆØ—
‘
ˆØ×ÑÔØ—J‘JÓØ×ÑÔØŸ
™
Ó"Ø× Ñ  $§*¡*¨aÕ0à—‘Ô!Ø× Ñ  $§*¡*¨aÔ0Ø—‘Õ!ð r   c                 ó2   • UR                   S   nU/Ul         g)z&Select Graphic Rendition, e.g. color. r   N©r   ©rq   r   r   s      r   r¯   ÚANSI.do_sgrP  ó   € à—‘˜A‘ˆØ�Xˆ�
r   c                 ó2   • UR                   S   nU/Ul         g)z'Select character protection attribute. r   NrÓ   rÔ   s      r   r²   ÚANSI.do_decscaU  rÖ   r   c                 ó2   • UR                   S   nU/Ul         g)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³   ÚANSI.do_modecrapZ  s   € ð —‘˜A‘ˆØ�Xˆ�
r   )rª   Nrv   )ry   rz   r{   r|   r}   ro   r¹   r¼   rf   rÂ   r	   r¯   r²   r³   r~   ru   r   r   r€   r€   Á   s9   † ñEôQIòfòòòò"òBò
õ
r   r€   )r}   Ú 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€   ru   r   r   Ú<module>rÜ      s«   ðñõ8 Ý Û ò
&ò
)òòò
òò
òò
"òò
ò
òòòò
	òò
	òò
ò
"ò
&òòô	9ˆF�M‰Mô 	9ô^ˆDõ ^r   