
    @OOfF                    .   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         U/var/www/premiumrankchecker/venv/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                          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,                  | t.        j0                  j3                  | j4                  d      t.        j0                  j3                  | j4                  d             t7        || |       |j                  r9t+        j8                  | t        j:                         t        j$                  d       |j<                  r/j<                  j?                          t        j$                  d       	rV|j@                  r2t        jB                  ddj3                  |j@                         d        | jD                  di  	|       tM        jN                         fd}fd}tQ        jP                  tP        jR                  |       tQ        jP                  tP        jT                  |       tW        tP        d      r2tQ        jP                  tP        jX                  tP        jZ                          j\                          d {    S # t        $ r- t!        j"                          t        j$                  d       Y cw xY w# tF        jH                  $ rQ}t        t        j                  d    d| t        jJ                         t        j$                  d       Y d }~]d }~ww xY w7 w)Ntornadoasynciohpackquicz-R   httpzGTo use mitmproxy in reverse mode please use --mode reverse:SPEC insteaddeferTzconfig.yamlz
config.ymlr   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>._siginto   s"    %% 16??C    c                 <    j                  j                         y N)r7   r9   r:   s    r&   _sigtermz#run.<locals>.main.<locals>._sigtermt   s    %%foo6r>   SIGPIPEr   )/logging	getLoggersetLevelDEBUGWARNINGr   register_info_dumpersr
   Optionsr   argvindex
startswithr   
parse_args
SystemExitr   checkr   set
setoptionsr   
load_pathsospathjoinconfdirr'   dump_defaultsstdoutr   dumpfilter_argsinfor   r   OptionsErrorstderrr-   get_running_loopsignalSIGINTSIGTERMhasattrrB   SIG_IGNrun)r!   r    r"   er=   rA   r<   r	   	argumentsextramake_parser
master_clss         @@r&   mainzrun.<locals>.main8   s    $$W]]3)$--goo>)$--goo>'"++GOO<&!**OO	
 	##% D!T" 388)=)A B M Mf UY	$$Y/D
	DHHdoo2T2!!T\\=9T\\<8
 FD$/||((szz:}}$$&##LL=ejjIYIY>Z=[[]^ *eDk* '')	
	7
 	fmmW-fnnh/ 69%MM&..&..9fjjle  	OOHHQK	4 && 	SXXa[MA3'cjj9HHQKK	. 	s]   FQ8O )E(P B>Q8Q6Q82PQ8PQ8Q3"AQ.(Q8.Q33Q8)returnr(   )r-   rd   )ri   rh   rf   rg   rj   s   ```` r&   rd   rd   -   s#    I IV ;;tvr>   c                n    ddl m} t        |j                  j                  t
        j                  |        y )Nr   )console)mitmproxy.toolsrm   rd   r	   ConsoleMasterr   	mitmproxy)r"   rm   s     r&   rp   rp      s$    '$$g&7&7>r>   c                b    ddl m} d }t        |j                  t        j
                  | |       y )Nr   )rY   c                p    | j                   r)dj                  | j                         }t        |||      S i S )N )save_stream_filterreadfile_filterdumper_filter)rZ   rU   dict)r"   vs     r&   rg   zmitmdump.<locals>.extra   s<    ))*A#$ ! 
 	r>   )rn   rY   rd   
DumpMasterr   mitmdump)r"   rY   rg   s      r&   rz   rz      s'    $ ))47r>   c                n    ddl m} t        |j                  j                  t
        j                  |        y )Nr   )web)rn   r|   rd   r	   	WebMasterr   mitmweb)r"   r|   s     r&   r~   r~      s"    #

goot4r>   r@   )
ri   ztype[T]rh   z4Callable[[options.Options], argparse.ArgumentParser]rf   zSequence[str]rg   zCallable[[Any], dict] | Nonerk   r(   )rk   z
int | None)
__future__r   argparser-   rC   rS   r_   r   collections.abcr   r   typingr   r   rp   r   r	   r
   r   rn   r   mitmproxy.utilsr   r   r'   Masterr(   rd   rz   r~   r   r>   r&   <module>r      s    "    	  
 $ $         # % !& Cv}}% +/	VVEV V (	V
 Vr"r>   