
    kj                    .   d dl m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	 d dlm
Z
 d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d Z edej2                        Z	 d	 	 	 	 	 	 	 	 	 ddZdddZdddZdddZy)    )annotationsN)Callable)Sequence)Any)TypeVar)
exceptions)master)options)
optmanager)cmdline)	arg_check)debugc                   |j                   r2t        t        j                                t	        j
                  d       |j                  s|j                  s|j                  rd|_	        d|_
        |j                  rd|_	        d|_
        t        |      j                         D ci c]  \  }}||v s||| }}} |j                  di | y c c}}w )Nr   errorr       )versionprintr   dump_system_infosysexitquietr
   commandstermlog_verbosityflow_detailverbosevarsitemsupdate)parseroptsargskeyvaladicts         ]/home/ubuntu/.cache/pipx/cdb5059130eadca/lib/python3.12/site-packages/mitmproxy/tools/main.pyprocess_optionsr'      s    ||e$$&'zzT\\T]] ")||!( "&d!1!1!3S#sd{sSE  DKK%s   'C4C7CT)boundc                P     d fd}t        j                   |             S )zX
    extra: Extra argument processing callable which returns a dict of
    options.
    c                 
  	K   t        j                         j                  t         j                         t        j                  d      j                  t         j                         t        j                  d      j                  t         j                         t        j                  d      j                  t         j                         t        j                  d      j                  t         j
                         t        j                  d      j                  t         j                         t        j                          t        j                         }  |       	 |       }dt        j                  v rMt        j                  t        j                  j                  d      dz      j                  d      rt        d	       	 |j                  
      }	  | j(                  j*                  d
di t-        j.                  | t0        j2                  j5                  | j6                  d      t0        j2                  j5                  | j6                  d             t9        || |       |j                  r	j:                  j=                  d      x}r.|j:                  D ]  }|j>                  |jA                          ! t-        jB                  | t        jD                         t        j&                  d       |jF                  r/	jF                  jI                          t        j&                  d       rV|jJ                  r2t        jL                  ddj5                  |jJ                         d        | jN                  di  |       tW        jX                         	fd}	fd}	 j[                  t\        j^                  |       j[                  t\        j`                  |       te        t\        d      r2t]        j\                  t\        jf                  t\        jh                          	jj                          d {    	S # t         $ r- t#        j$                          t        j&                  d       Y w xY w# tP        jR                  $ rQ}t        t        j                  d    d| t        jT                         t        j&                  d       Y d }~Vd }~ww xY w# tb        $ rL t]        j\                  t\        j^                  |       t]        j\                  t\        j`                  |       Y Qw xY w7 w)Ntornadoasynciohpackurwidquicz-R   httpzGTo use mitmproxy in reverse mode please use --mode reverse:SPEC insteaddeferTzconfig.yamlz
config.ymlscriptloaderr   z"Only processing flows that match "z & "z: )filec                 R    j                  t        dj                               y )Nprompt_for_exit)call_soon_threadsafegetattrshutdown_loopr	   s    r&   _sigintz"run.<locals>.main.<locals>._sigintu   s"    %% 16??C    c                 <    j                  j                         y N)r9   r;   r<   s    r&   _sigtermz#run.<locals>.main.<locals>._sigtermz   s    %%foo6r@   SIGPIPEr   )6logging	getLoggersetLevelDEBUGWARNINGINFOr   register_info_dumpersr
   Optionsr   argvindex
startswithr   
parse_args
SystemExitr   checkr   set
setoptionsr   
load_pathsospathjoinconfdirr'   addonsgetns
loadscriptdump_defaultsstdoutr   dumpfilter_argsinfor   r   OptionsErrorstderrr-   get_running_loopadd_signal_handlersignalSIGINTSIGTERMNotImplementedErrorhasattrrD   SIG_IGNrun)r!   r    r"   slser?   rC   r>   r	   	argumentsextramake_parser
master_clss           @@r&   mainzrun.<locals>.main8   s    $$W]]3)$--goo>)$--goo>'"++GOO<'"++GLL9&!**OO	
 	##% D!T" 388)=)A B M Mf UY	$$Y/D
	DHHdoo2T2!!T\\=9T\\<8
 FD$/||**>::2:YY +44<LLN+ ((szz:}}$$&##LL<UZZHXHX=Y<ZZ[\ *eDk* '')	
	7	4 ##FMM7;##FNNH= 69%MM&..&..9fjjl{  	OOHHQK	> && 	SXXa[MA3'cjj9HHQKK	& # 	4MM&--1MM&..(3	4 	s   GU	Q CR 0CR  U/A S, /AUUU2R>URUS)AS$U$S))U,AU=U UU)returnr(   )r-   rm   )rt   rs   rq   rr   ru   s   ```` r&   rm   rm   -   s#    U Un ;;tvr@   c                n    ddl m} t        |j                  j                  t
        j                  |        y )Nr   )console)mitmproxy.toolsrx   rm   r	   ConsoleMasterr   	mitmproxy)r"   rx   s     r&   r{   r{      s$    '$$g&7&7>r@   c                b    ddl m} d }t        |j                  t        j
                  | |       y )Nr   )r`   c                p    | j                   r)dj                  | j                         }t        |||      S i S )N )save_stream_filterreadfile_filterdumper_filter)ra   rX   dict)r"   vs     r&   rr   zmitmdump.<locals>.extra   s<    ))*A#$ ! 
 	r@   )ry   r`   rm   
DumpMasterr   mitmdump)r"   r`   rr   s      r&   r   r      s'    $ ))47r@   c                n    ddl m} t        |j                  j                  t
        j                  |        y )Nr   )web)ry   r   rm   r	   	WebMasterr   mitmweb)r"   r   s     r&   r   r      s"    #

goot4r@   rB   )
rt   ztype[T]rs   z4Callable[[options.Options], argparse.ArgumentParser]rq   zSequence[str]rr   zCallable[[Any], dict] | Nonerv   r(   )rv   z
int | None)
__future__r   argparser-   rE   rV   rg   r   collections.abcr   r   typingr   r   r{   r   r	   r
   r   ry   r   mitmproxy.utilsr   r   r'   Masterr(   rm   r   r   r   r@   r&   <module>r      s    "    	  
 $ $         # % !& Cv}}% +/	bbEb b (	b
 bJ"r@   