
    z%i[                        	 d dl Z d dlZd dlZd dlmZ d dlZ ej                  ed       dgZ	d Z
dZ edg      Z edg      Z ed	g      Z ed
g      Z edg      Z ed g      Z edg      Z edg      Z edg      Z edg      Z edg      Z edg      Z edg      Z edg      Z edg      Z edg      Z edg      Z ed g      Z edg      Z edg      Z  edg      Z! edg      Z" edg      Z# edg      Z$ edg      Z% edg      Z& edg      Z' ed g      Z( ed!g      Z) ed"g      Z* ed#g      Z+ ed$g      Z, ed%g      Z- ed&g      Z. ed'g      Z/ ed(g      Z0 ed)g      Z1 ed*g      Z2 ed+g      Z3 ed,g      Z4 edg      Z5 ed-g      Z6 ed.g      Z7 ed/g      Z8 ed0g      Z9 ed1g      Z: ed2g      Z; ed3g      Z< ed4g      Z= ed5g      Z> ed6g      Z? ed7g      Z@ ed8g      ZA ed9g      ZB ed:g      ZC ed;g      ZD ed<g      ZE ed=g      ZF ed>g      ZG ed?g      ZH ed@g      ZI edAg      ZJ edBg      ZK edCg      ZL edDg      ZM edEg      ZN edFg      ZO edGg      ZP edHg      ZQ edIg      ZR edg      ZS ed g      ZT eUedJ      rej                  ZWnej                  ZW G dK d      ZYdL ZZedMk(  r eZ        yy)N    N)	monotonic)      )removeTelnet                                                         r                  	   
         r                                                          !   "   #   $   %   &   '   (   )   *   +   ,   -   .   /   0   1            PollSelectorc                       e Zd Z	 ddej                  fdZdej                  fdZd Zd Zd Z	d Z
d	 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 Zd Zd Zd Zd Zd Zd ZddZd Zd Z y) r   Nr   c                     	 t         | _        || _        || _        || _        d | _        d| _        d| _        d| _        d| _	        d| _
        d| _        d| _        d | _        || j                  |||       y y )N    r   )
DEBUGLEVEL
debuglevelhostporttimeoutsockrawqirawqcookedqeofiacseqsbsbdataqoption_callbackopenselfrP   rQ   rR   s       =/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/telnetlib.py__init__zTelnet.__init__   s    	 %				
#IIdD'* rM   c                     	 d| _         |st        }|| _        || _        || _        t        j                  d| ||       t        j                  ||f|      | _	        y )Nr   ztelnetlib.Telnet.open)
rW   TELNET_PORTrP   rQ   rR   sysauditsocketcreate_connectionrS   r]   s       r_   r\   zTelnet.open   sX    	 D				)4t<,,dD\7C	rM   c                 &    	 | j                          y Ncloser^   s    r_   __del__zTelnet.__del__   s    1

rM   c                     	 | j                   dkD  rEt        d| j                  d| j                  dd       |rt        ||z         y t        |       y y )Nr   zTelnet(,z): )end)rO   printrP   rQ   )r^   msgargss      r_   rr   z
Telnet.msg   sG    	 ??Qdii;EcDj!c
 rM   c                     	 || _         y rh   )rO   )r^   rO   s     r_   set_debuglevelzTelnet.set_debuglevel  s    	
 %rM   c                 |    	 | j                   }d | _         d| _        d| _        d| _        |r|j	                          y y )NTrM   r   )rS   rW   rX   rY   rj   )r^   rS   s     r_   rj   zTelnet.close
  s;    #yy	JJL rM   c                     	 | j                   S rh   )rS   rk   s    r_   
get_socketzTelnet.get_socket  s    7yyrM   c                 8    	 | j                   j                         S rh   )rS   filenork   s    r_   rz   zTelnet.fileno  s    Gyy!!rM   c                     	 t         |v r!|j                  t         t         t         z         }t        j                  d| |       | j	                  d|       | j
                  j                  |       y )Nztelnetlib.Telnet.writezsend %r)IACreplacerc   rd   rr   rS   sendall)r^   buffers     r_   writezTelnet.write  sU    	 &=^^CS1F		*D&9F#		&!rM   c                 R   	 t        |      }| j                          | j                  j                  |      }|dk\  r*||z   }| j                  d | }| j                  |d  | _        |S |t	               |z   }t               5 }|j                  | t        j                         | j                  s|j                  |      rt        dt        | j                        |z
        }| j                          | j                          | j                  j                  ||      }|dk\  r3||z   }| j                  d | }| j                  |d  | _        |cd d d        S |t	               z
  }|dk  rn| j                  sd d d        | j                         S # 1 sw Y   | j                         S xY wNr   )lenprocess_rawqrV   find_time_TelnetSelectorregister	selectors
EVENT_READrW   selectmax	fill_rawqread_very_lazy)r^   matchrR   nibufdeadlineselectors           r_   
read_untilzTelnet.read_until)  s   	 JLLe$6!A,,r"C<<+DLJw(H 	(dI$8$89hh??7+As4<<023ANN$%%'))%3AAvaC"ll2A.'+||AB'7"	 	 &&0G{ hh	" ""$$#	" ""$$s    C
F!FF&c                     	 | j                          | j                  s-| j                          | j                          | j                  s-| j                  }d| _        |S NrM   )r   rW   r   rV   r^   r   s     r_   read_allzTelnet.read_allN  sN    E((NN (( ll
rM   c                     	 | j                          | j                  sE| j                  s9| j                          | j                          | j                  s| j                  s9| j                  }d| _        |S r   )r   rV   rW   r   r   s     r_   	read_somezTelnet.read_someX  s^    	 	,,txxNN ,,txx ll
rM   c                     	 | j                          | j                  sM| j                         r=| j                          | j                          | j                  s| j                         r=| j	                         S rh   )r   rW   
sock_availr   r   rk   s    r_   read_very_eagerzTelnet.read_very_eagerg  s^    	 	((t0NN ((t0 ""$$rM   c                 &   	 | j                          | j                  se| j                  sY| j                         rI| j	                          | j                          | j                  s| j                  s| j                         rI| j                         S rh   )r   rV   rW   r   r   r   rk   s    r_   
read_eagerzTelnet.read_eageru  sj    	 	,,txxDOO4ENN ,,txxDOO4E ""$$rM   c                 D    	 | j                          | j                         S rh   )r   r   rk   s    r_   	read_lazyzTelnet.read_lazy  s$    	 	""$$rM   c                 x    	 | j                   }d| _         |s#| j                  r| j                  st        d      |S )NrM   ztelnet connection closed)rV   rW   rT   EOFErrorr   s     r_   r   zTelnet.read_very_lazy  s9    	 lltxx		566
rM   c                 .    	 | j                   }d| _         |S r   )rZ   r   s     r_   read_sb_datazTelnet.read_sb_data  s    	 ll
rM   c                     	 || _         y rh   )r[   )r^   callbacks     r_   set_option_negotiation_callbackz&Telnet.set_option_negotiation_callback  s    W'rM   c                 Z   	 ddg}	 | j                   r| j                         }| j                  sP|t        k(  r3|dk(  r9|t        k7  r || j
                     |z   || j
                  <   b| xj                  |z  c_        nSt        | j                        dk(  r|t        t        t        t        fv r| xj                  |z  c_        d| _        |t        k(  r!|| j
                     |z   || j
                  <   n|t        k(  rd| _        d| _        n,|t        k(  r#d| _        | j                  |d   z   | _        d|d<   | j                  r#| j                  | j                  |t                ni| j#                  dt%        |      z         nJt        | j                        dk(  r1| j                  dd }d| _        |}|t        t        fv r| j#                  d|t        k(  xr dxs d	t%        |             | j                  r| j                  | j                  ||       n| j                  j'                  t        t        z   |z          n|t        t        fv r~| j#                  d|t        k(  xr d
xs dt%        |             | j                  r| j                  | j                  ||       n)| j                  j'                  t        t        z   |z          | j                   r| j*                  |d   z   | _        | j                  |d   z   | _        y # t(        $ r d| _        d| _        Y Hw xY w)NrM      r   r   zIAC %d not recognizedr   z	IAC %s %dDODONTWILLWONT)rT   rawq_getcharrX   theNULLr|   rY   r   r   r   r   r   SBrZ   SEr[   rS   NOOPTrr   ordr~   r   rV   )r^   r   ccmdopts        r_   r   zTelnet.process_rawq  s   	 Cj;	))%%'{{G| G| Cx'*477|a'7DGG q(%*RtT22q( "%DKCx'*477|a'7DGG7&'DG+.DL"W&'DG+/<<#a&+@DL%(CF// !00AuE
 !HH%<s1v%EF%*++a*C"%DKCr4j(2I.$8&#c(D// 00CE II--cDj3.>?t,4K2F<fc#hH// 00CE II--cDj3.>?o ))v ||c!f,||c!f,	  	DKDG	s   KL L*)L*c                 8   	 | j                   s"| j                          | j                  rt        | j                   | j                  | j                  dz    }| j                  dz   | _        | j                  t        | j                         k\  rd| _         d| _        |S )Nr   rM   r   )rT   r   rW   r   rU   r   )r^   r   s     r_   r   zTelnet.rawq_getchar  sx    	 yyNNxxIIdjjA.ZZ!^
::TYY'DIDJrM   c                     	 | j                   t        | j                        k\  rd| _        d| _         | j                  j	                  d      }| j                  d|       | | _        | j                  |z   | _        y )NrM   r   2   zrecv %r)rU   r   rT   rS   recvrr   rW   r   s     r_   r   zTelnet.fill_rawq  se    	 ::TYY'DIDJ iinnR C GIIO	rM   c                     	 t               5 }|j                  | t        j                         t	        |j                  d            cd d d        S # 1 sw Y   y xY wr   )r   r   r   r   boolr   )r^   r   s     r_   r   zTelnet.sock_avail  sI    ; 	,(dI$8$89*+	, 	, 	,s   :AAc                 <   	 t         j                  dk(  r| j                          y t               5 }|j	                  | t
        j                         |j	                  t         j                  t
        j                         	 |j                         D ]  \  }}|j                  | u ra	 | j                         }|s(t         j                  j                  |j                  d             t         j                  j!                          u|j                  t         j                  u st         j                  j#                         j%                  d      }|s
 d d d        y | j                  |        # t        $ r t        d       Y  d d d        y w xY w# 1 sw Y   y xY w)Nwin32(*** Connection closed by remote host ***ascii)rc   platformmt_interactr   r   r   r   stdinr   fileobjr   r   rq   stdoutr   decodeflushreadlineencode)r^   r   keyeventstextlines         r_   interactzTelnet.interact  sI   G<<7" 	)(dI$8$89cii)=)=>#+??#4 )KC{{d*##'??#4D  JJ,,T[[-ABJJ,,.		1"yy113::7C#"%	) 	)& 

4() 
  ( #!"LM"	) 	)#	) 	)sC   A4F%E/5F8A)F"0FF/FFFFFc                     	 dd l }|j                  | j                  d       	 t        j                  j                         }|sy | j                  |j                  d             B)Nr    r   )_threadstart_new_threadlistenerrc   r   r   r   r   )r^   r   r   s      r_   r   zTelnet.mt_interact5  sQ    2  399%%'DJJt{{7+,	 rM   c                     	 	 	 | j                         }|r/t        j                  j                  |j                  d             nt        j                  j                          a# t        $ r t        d       Y y w xY w)Nr   r   )r   r   rq   rc   r   r   r   r   )r^   datas     r_   r   zTelnet.listener?  sk    L( 

  W!56

  "   @As   A$ $A;:A;c                 (   	 d }|d d  }t        t        |            }|D ]/  }t        ||   d      r|sdd l}|j	                  ||         ||<   1 |t               |z   }t               5 }|j                  | t        j                         | j                  s| j                          |D ]e  }||   j                  | j                        }|s$|j                         }	| j                  d |	 }
| j                  |	d  | _        |||
fc cd d d        S  |'|j                  |      }t               z
  }|s|dk  rn| j!                          | j                  sd d d        | j#                         }
|
s| j                  rt$        dd |
fS # 1 sw Y   2xY w)Nsearchr   )ranger   hasattrrecompiler   r   r   r   r   rW   r   r   rV   rp   r   r   r   r   )r^   listrR   r   indicesr   r   r   mer   readys               r_   expectzTelnet.expectL  s   	* AwD	" 	.A47H-9**T!W-Q	. w(H 	!(dI$8$89hh!!#  ,AQt||4AEEG#||BQ/'+||AB'7 !1d|+	! 	!, &$OOG4E&0G "Q;!$ # hh	!( ""$ND$/	! 	!s   *A"F9FAFFc                     | S rh   r   rk   s    r_   	__enter__zTelnet.__enter__  s    rM   c                 $    | j                          y rh   ri   )r^   typevalue	tracebacks       r_   __exit__zTelnet.__exit__  s    

rM   rh   )!__name__
__module____qualname__re   _GLOBAL_DEFAULT_TIMEOUTr`   r\   rl   rr   ru   rj   rx   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rM   r_   r   r      s    3j !q77+0  )G)G D"%""#%J%%	%
(E-N$$",)4-#6 prM   c                     	 d} t         j                  dd  rVt         j                  d   dk(  r@| dz   } t         j                  d= t         j                  dd  rt         j                  d   dk(  r@d}t         j                  dd  rt         j                  d   }d}t         j                  dd  rt         j                  d   }	 t        |      }t               5 }|j                  |        |j                  ||d       |j                          d d d        y # t        $ r t	        j
                  |d      }Y jw xY w# 1 sw Y   y xY w)	Nr   r   z-d	localhostr   tcpg      ?)rR   )
rc   argvint
ValueErrorre   getservbynamer   ru   r\   r   )rO   rP   rQ   portstrtns        r_   testr     s    J
((12,388A;$.\
HHQK ((12,388A;$. D
xx|xx{D
xx|((1+	8w<D 
 R
*%
dC(
   	8''7D	8 s   >D 6D7D43D47E __main__)[rc   re   r   timer   r   warnings_deprecatedr   __all__rN   rb   bytesr|   r   r   r   r   r   r   NOPDMBRKIPAOAYTECELGAr   BINARYECHORCPSGANAMSSTATUSTMRCTENAOLNAOPNAOCRDNAOHTSNAOHTDNAOFFDNAOVTSNAOVTDNAOLFDXASCIILOGOUTBMDETSUPDUPSUPDUPOUTPUTSNDLOCTTYPEEORTUIDOUTMRKTTYLOCVT3270REGIMEX3PADNAWSTSPEEDLFLOWLINEMODEXDISPLOCOLD_ENVIRONAUTHENTICATIONENCRYPTNEW_ENVIRONTN3270EXAUTHCHARSETRSPCOM_PORT_OPTIONSUPPRESS_LOCAL_ECHOTLSKERMITSEND_URL	FORWARD_XPRAGMA_LOGON
SSPI_LOGONPRAGMA_HEARTBEATEXOPLr   r   rJ   r   SelectSelectorr   r   r   rM   r_   <module>r@     s  F    #    Xg .* 
  cU|cU|cU|cU|cU|
*SElSElSElSElSElSElSElSElSElSElSEl
 
saSzQCjQCjaSz	s
A3ZaSzaSzaSz	t	t	t	t	t	t	t	t	t
B4[RDk	tbT{	trdRDkbT{	t	tbT{rdbT{	trd";";RDkt
+RDk
 +rd
+RDk+RDk RDk	t";2$K	cU|C5\
#< seqc

 9n%,,O..Ox xv6 zF rM   