
    Eg
                        d dl Z d dlZd dlZd dlZd dlZg dZ ee          Zd Z ej	                    dej
        e         dej
        e         fd            Zdej
        e         defdZd	 Zd
 Zdej
        e         defdZdS )    N))b   )ki   )mi   )gi   @)tl        c                 j   t          t          t          dd                    D ]z\  }}|d         | cxk    r|d         k     r\n !|d         }|d         }t          | |z  d          }|t          |          k    rt          |          }t	          |          |z   c S {| t          d         d         S )Nr   r      )zip
SIZE_TABLEroundintstr)sizebottomtopsuflimxs         b/var/www/sysmax/venv/lib/python3.11/site-packages/seleniumwire/thirdparty/mitmproxy/utils/human.pypretty_sizer      s    :z!""~66    !9%%%%s1v%%%%%)C)CdSj!$$ACFF{{FFq66C< & T:a=++,,    sreturnc                 <   | dS 	 t          |           S # t          $ r Y nw xY wt                                          D ]P}|                     |          r9	 t          | dd                   t          |         z  c S # t          $ r Y  nw xY wQt          d          )z
    Parse a size with an optional k/m/... suffix.
    Invalid values raise a ValueError. For added convenience, passing `None` returns `None`.
    NzInvalid size specification.)r   
ValueError
SIZE_UNITSkeysendswith)r   is     r   
parse_sizer"      s     	yt1vv   __  ::a== 	1SbS6{{Z]2222   	
 2
3
33s    
""$A==
B
Bsecsc                     g d}| dS |D ]"\  }}| |k    r|                     |           c S #d                     | dz            S )N))d   z{:.0f}s)
   z{:2.1f}s)r   z{:1.2f}s z{:.0f}msi  )format)r#   
formatterslimit	formatters       r   pretty_durationr,   3   su      J
 |r& * *y5==##D)))))  TD[)))r   c                     t          j        |           } t          j                            t          j        |                     }|                    d          S )Nz%Y-%m-%d %H:%M:%S)time	localtimedatetimefromtimestampmktimestrftimer   ds     r   format_timestampr6   C   sB    qA''A77A::)***r   c                 z    t           j                             |           }|                    d          d d         S )Nz%Y-%m-%d %H:%M:%S.%f)r0   r1   r3   r4   s     r   format_timestamp_with_millir9   I   s4    ''**A::,--crc22r   addressc                 *   | dS 	 t          j        | d                   }|j        rd                    | d                   S t	          |t           j                  r)d                    t          |          | d                   S |j        r.d                    t          |j                  | d                   S d                    t          |          | d                   S # t          $ r% d                    | d         | d                   cY S w xY w)zn
    This function accepts IPv4/IPv6 tuples and
    returns the formatted address string with port number
    Nz<no address>r   z*:{}r   z{}:{}z[{}]:{})		ipaddress
ip_addressis_unspecifiedr(   
isinstanceIPv4Addressr   ipv4_mappedr   )r:   hosts     r   format_addressrC   N   s   
 ~6#GAJ// 	-==,,,dI122 	E>>#d))WQZ888 	E>>#d&6"7"7DDDD		71:666 6 6 6~~gaj'!*555556s$   ;C# AC# 4C# :(C# #,DD)r0   	functoolsr<   r.   typingr   dictr   r   	lru_cacheOptionalr   r   r"   floatr,   r6   r9   tuplerC    r   r   <module>rL      s+               
 T*
	- 	- 	- 4&/#& 46?3+? 4 4 4 4(*&/%0 *S * * * * + + +3 3 3
6FOE2 6s 6 6 6 6 6 6r   