
    h                        d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl	Zddl	m
Z
mZmZ g dZ edej                  e
j                  e
j                         aej$                  e
j&                  fZej$                  e
j                  e
j&                  fZej                  e
j&                  fZej                  e
j                  e
j&                  fZe
j                  ej0                  e
j&                  fZej4                  j7                  ej4                  j9                  e      d      Zej>                  j@                  jC                  de      Z!e!d        Z"d	 Z#y)
z
Interactive interpreter for interacting with Tor directly. This adds usability
features such as tab completion, history, and IRC-style functions (like /help).
    N)AttrColorformat)	argumentsautocompletecommandshelp>>> zsettings.cfgstem_interpreterc                 D     |j                  |       j                  di |S )N )getr   )messageconfigattrs      c/var/www/betterdocs.net/sherlock_api/venv/lib/python3.12/site-packages/stem/interpreter/__init__.pymsgr   )   s!    	#G		#	#	+d	++    c                  @   dd l } dd l}dd l}dd l}	 |j                  j
                  j                  t        j                  dd        }j                  rAt        |j                  j
                  j                                t        j                          |j                  st        j                  j!                         sd|j"                  j$                  _        da|j*                  sV|j,                  sI|j"                  j.                  j1                  d      xs% |j"                  j.                  j1                  d      }|s|j2                  dk(  r]|j"                  j.                  j5                  d      s8t        t7        t9        d      gt:                t        j                  d       n|j<                  s.|j>                  s"t        t7        t9        d      gt@                |jB                  d	k(  rd
ntE        |jB                        }	 |jF                  jI                  d|ddd|j2                  dd       |jL                  |jB                  f}|jN                  }|j,                  r|j*                  sd }n|j*                  r|j,                  sd }|jP                  jS                  ||d      }|t        j                  d       |5  |j                  jT                  jW                  |      }d}	|j<                  r|j<                  jY                         j[                  d      rd }
|
|_.        t        j                  j!                         rI|j<                  jY                         j_                  dd      d   }t        t7        d|z  gt`                |j9                  |j<                         	 tc                n|ji                  |j<                  d       no|j>                  rL	 tk        |j>                        jm                         D ]#  }|ji                  |jo                         d       % n|j                  jr                  ju                  |      }| jw                  d       | jy                  |jz                         | j}                  d       t9        d      j                         D ]4  }|j[                  d      rt`        nt@        }t        t7        |g|        6 t        d        	 	 |j                  rd!nt(        }|j                  j                         rt        |      n
tc        |      }|ji                  |d       Yd d d        y # t        $ r+}t        |       t        j                  d       Y d }~Cd }~ww xY w# tJ        $ rD}t        t7        t9        d|      gt:                t        j                  d       Y d }~d }~ww xY w# td        |jf                  f$ r Y w xY w# tp        $ rN}t        t7        t9        d|j>                  |      gt:                t        j                  d       Y d }~d }~ww xY w# |jf                  $ r |	rt        t7        d"gt:                nct7        d#gt`         }|j                  j                         rt        |      n
tc        |      }t        d        |j                         d$v rd}	nY Y td        t        |jf                  f$ r t        d        Y w xY w# 1 sw Y   y xY w)%Nr      Tr
   torztor.realzmsg.tor_unavailablezmsg.starting_tordefault905101z
reject *:*)	SocksPortControlPortCookieAuthentication
ExitPolicy   )r   tor_cmdcompletion_percenttake_ownershipzmsg.unable_to_start_tor)error)control_portcontrol_socketpassword_promptFz
SETEVENTS c                 H    t        t        t        |       gt                y )N)printr   strSTANDARD_OUTPUT)event_messages    r   handle_eventzmain.<locals>.handle_event   s    
s=)<O<
=r    z/Listening to %s events. Press any key to quit.
)print_responsezmsg.unable_to_read_file)pathr$   ztab: complete
zmsg.startup_bannerz   z... zCUnable to run tor commands. The control connection has been closed.zOTor's control port has closed. Do you want to continue this interpreter? (y/n) )yyes)Freadlinestem.interpreter.argumentsstem.interpreter.autocompletestem.interpreter.commandsinterpreterr   parsesysargv
ValueErrorr)   exit
print_helpget_helpdisable_colorstdoutisattyutiltermDISABLE_COLOR_SUPPORTPROMPTuser_provided_portuser_provided_socketsystem
is_runningtor_pathis_availabler   r   ERROR_OUTPUTrun_cmdrun_pathHEADER_OUTPUTr%   r*   processlaunch_tor_with_configOSErrorcontrol_addressr&   
connectionconnectr   ControlInterpreterupper
startswith_handle_eventsplitHEADER_BOLD_OUTPUT	raw_inputKeyboardInterruptSocketClosedrun_commandopen	readlinesstripIOErrorr   Autocompleterparse_and_bindset_completercompleteset_completer_delims
splitlinesis_multiline_contextprereqis_python_3inputlowerEOFError)r5   stemargsexcis_tor_runningr%   r&   
controllerr9   showed_close_confirmationr-   eventslineautocompleterline_formatprompt
user_inputs                    r   mainr~   .   s   #&"%%++CHHQRL9D
 
__	$


$
$
-
-
/0HHJ	szz002+/DIINN(F
 
!
!T%>%>YY%%007b499;K;K;V;VWa;bN	%			(8(8(E(Ee(LfS./?,?@||DMM
s-.??
@!%!2!2i!?vSIZIZE[	
,,
-
-)&)(	 mm!"! . 
 &&(9(9:,&&.
 
t'>'>Lt'@'@N&&# ' * HHQK B""++>>zJK %||					(	(	6
	> $0
 ::<<%%'--c15a8&
IFRhUgh
it||$	
+ 	tD	'113 	GD

!
!$**,
!
F	G &&33AA*Mmo.]334##D)*+668 *$,0OOD,A(}fT(K()* Bi	(==66&(,(?(?(AuV}yQWGX*

!
!*t
!
D	 _B BC 
 	#JHHQKKR  	
s4cBR\R
S
((1++	^ "4#4#45 	
	  fS24==RUVfYefg*    	&&^namnom  D  qC  DF*.++*A*A*CvSYIZJ"I!\1*.'!8T->->? 	
)
	AB Bs   6U .V C)\9
W#-\1A	W>:C \;AY\	V% VV	W 9WW #W;8\:W;;\>	YAY\Y\B\#\)$\\\\\)$__doc__osr;   rr   stem.connectionstem.prereqstem.processstem.util.confstem.util.systemstem.util.termr   r   r   __all__GREENBOLDREADLINE_ESCAPErG   BLUELINESr+   BOLD_OUTPUTrQ   r]   REDrN   r0   joindirname__file__settings_pathrD   confuses_settingsr   r~   r   r   r   <module>r      s  
 
 
        . . 
TYY0D0D	E::tzz*zz499djj1djj)kk499djj9 		599djj1RWW__X6G		,,-?O , ,Lr   