<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3

i1                 @   s  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 d dl	m
Z d dlZdee krle je _e je _ejeejeejeejeejeejeejeejeejeejeejeeje iZ!dd Z"dd Z#d	d
 Z$dd Z%dd Z&dd Z'dd Z(dddgZ)dddddgZ*ddddddddddddddddddgZ+ddddddddddddddddgZ,dddddgZ-dddgZ.e)e*e+e,e.e-dfZ/dgdhdidjdkiZ0dldmdndodpdqdrdsdtdudpdvdwdxdydzd{d|d}d~ddd
ddddddZ1dd e2e0j3 D Z4dd e2e1j3 D Z5e0e4fe1e5fdZ6dd Z7dd Z8dZ9dd Z:dd Z;dd Z<dd Z=dd Z>dd Z?de>iZ@de?iZAdd ZBdd ZCdd ZDdddZEdddZFdd ZGdd ZHdS )    N)IPv4AddressIPv6Address
ip_address)FieldDescriptorencodebytesc             C   s   | j  jtj jS )N)
GetOptions
Extensionsopts_pb2criuhex)field r   /usr/lib/python3.6/pb2dict.py_marked_as_hex1   s    r   c             C   s   | j  jtj jS )N)r   r   r	   r
   Zipadd)r   r   r   r   _marked_as_ip5   s    r   c             C   s   | j  jtj jS )N)r   r   r	   r
   flags)r   r   r   r   _marked_as_flags9   s    r   c             C   s   | j  jtj jS )N)r   r   r	   r
   dev)r   r   r   r   _marked_as_dev=   s    r   c             C   s   | j  jtj jS )N)r   r   r	   r
   Zodev)r   r   r   r   _marked_as_odevA   s    r   c             C   s   | j  jtj jS )N)r   r   r	   r
   dict)r   r   r   r   _marked_as_dictE   s    r   c             C   s   | j  jtj jS )N)r   r   r	   r
   Zconv)r   r   r   r   _custom_convI   s    r   	PROT_READ   
PROT_WRITE   	PROT_EXEC   
MAP_SHAREDMAP_PRIVATEMAP_DROPPABLE   MAP_ANON    MAP_GROWSDOWN   VMA_AREA_NONEVMA_AREA_REGULARVMA_AREA_STACKVMA_AREA_VSYSCALLVMA_AREA_VDSO   VMA_AREA_HEAP   VMA_FILE_PRIVATE   VMA_FILE_SHARED   VMA_ANON_SHAREDVMA_ANON_PRIVATE	   VMA_AREA_SYSVIPC
   VMA_AREA_SOCKET   VMA_AREA_VVAR   VMA_AREA_AIORING   VMA_AREA_MEMFD   VMA_AREA_SHSTK   VMA_AREA_UPROBES   
VMA_UNSUPP   O_WRONLYO_RDWRO_CREAT@   O_EXCL   O_NOCTTYO_TRUNC   O_APPEND   
O_NONBLOCK   O_DSYNC   FASYNC    O_DIRECT @  O_LARGEFILE   O_DIRECTORY   
O_NOFOLLOW   	O_NOATIME   	O_CLOEXEC   F_SEAL_SEALF_SEAL_SHRINKF_SEAL_GROWF_SEAL_WRITEF_SEAL_FUTURE_WRITE   	PE_PARENTPE_LAZY
PE_PRESENT)z	mmap.protz
mmap.flagszmmap.statuszrfile.flagsz
pmap.flagszseals.flagsZ
task_stateZAliveZZombieZStopped)r   r,   r0   ZUNIXZINETZINET6ZNETLINKZPACKET)r   r   r7   rh   rC   ZSTREAMZDGRAMZRAWZ	SEQPACKET)r   r   r,   r.   r7   ZESTABLISHEDZSYN_SENTZSYN_RECVZ	FIN_WAIT1Z	FIN_WAIT2Z	TIME_WAITZCLOSEZ
CLOSE_WAITZLAST_ACKZLISTEN)
r   r   r,   r   r.   r0   r2   r"   r5   r7   ZIPZTCPZUDPZUDPLITE)r   r0   rC      )Zfamilytypestateprotoc             C   s(   i | ] \}}d d t |j D |qS )c             S   s   i | ]\}}||qS r   r   ).0k2v2r   r   r   
<dictcomp>   s   z<dictcomp>.<dictcomp>)listitems)rp   kvr   r   r   rs      s   rs   c             C   s(   i | ] \}}d d t |j D |qS )c             S   s   i | ]\}}||qS r   r   )rp   rq   rr   r   r   r   rs      s   z<dictcomp>.<dictcomp>)rt   ru   )rp   rv   rw   r   r   r   rs      s   )genZskc                sP   dd  fdd|D D } t dd |D  M   rF|jd   dj|S )Nc             S   s   g | ]}|d  qS )r   r   )rp   xr   r   r   
<listcomp>   s    zmap_flags.<locals>.<listcomp>c                s   g | ]} |d  @ r|qS )r   r   )rp   ry   )valuer   r   rz      s    c             S   s   g | ]}|d  qS )r   r   )rp   ry   r   r   r   rz      s    z0x%xz | )sumappendjoin)r{   	flags_mapZbsr   )r{   r   	map_flags   s
    r   c                s:   | dkrdS t | t fdddd | jdD D S )N r   c                s"   g | ]}t t j||d qS )r   )intstrget)rp   ry   )bdr   r   rz      s   zunmap_flags.<locals>.<listcomp>c             S   s   g | ]}|j  qS r   )strip)rp   ry   r   r   r   rz      s    |)r   r|   split)r{   r   r   )r   r   unmap_flags   s    
r      c             C   s@   t | r dtj|tj|f S d|t? |dt> d @ f S d S )Nz%d:%dr   )r   osmajorminorkern_minorbits)r   r{   r   r   r   
decode_dev   s    r   c             C   sH   dd |j dD }t| r0tj|d |d S |d t> |d B S d S )Nc             S   s   g | ]}t |qS r   )r   )rp   ry   r   r   r   rz      s    zencode_dev.<locals>.<listcomp>:r   r   )r   r   r   makedevr   )r   r{   r   r   r   r   
encode_dev   s    r   c             C   s   t j| j S )N)base64r   decode)r{   r   r   r   encode_base64   s    r   c             C   s   t jtj| S )N)r   decodebytesr   encode)r{   r   r   r   decode_base64   s    r   c             C   s
   t j| S )N)quopriencodestring)r{   r   r   r   encode_unix  s    r   c             C   s
   t j| S )N)r   decodestring)r{   r   r   r   decode_unix  s    r   Z	unix_namec             C   s   t | }|rt| S tS d S )N)r   r   r   )r   cr   r   r   get_bytes_enc  s    r   c             C   s   t | }|rt| S tS d S )N)r   r   r   )r   r   r   r   r   get_bytes_dec  s    r   c             C   s    dt krt}nttf}t| |S )N
basestring)__builtins__r   r   bytes
isinstance)r{   Zstring_typesr   r   r   	is_string   s    r   Fc             C   s$  |st | }| jtjkr$t|||S | jtjkr<t| |S | jtjkrZ| jj	j
|d jS | jtkrt| j }|oz|tkr|rd| S t| rt| |S t| }|ryt| }W n tk
r   d| S X t||S t| }|rt| d | j j
|||S ||S td| j| jf d S )Nz0x%xr   z!Field(%s) has unsupported type %d)r   rm   FDTYPE_MESSAGEpb2dict
TYPE_BYTESr   	TYPE_ENUM	enum_typeZvalues_by_numberr   name_basic_castr   r   r   r   
flags_maps	Exceptionr   r   	dict_maps)r   r{   prettyis_hexcastr   r   dctr   r   r   _pb2dict_cast)  s8    



r   c       	      C   s6  |rt j ni }x| j D ]\}}|jtjkrg }|rt|rt|dkrftj	|d }t
|}nPdtj	|d d>  tj	|d d>  tj	|d d>  tj	|d  }t|}|j|j n"x0|D ]}|jt|||| qW nt||||}y|j ||j< W q ttfk
r,   |||j< Y qX qW |S )	z^
    Convert protobuf msg to dictionary.
    Takes a protobuf message and returns a dict.
    r   r   r$   r,   r   `   rI   r$   )collectionsOrderedDictZ
ListFieldslabelr   LABEL_REPEATEDr   lensocketZntohlr   r   r}   Z
compressedr   r   r   UnicodeDecodeErrorAttributeError)	pbr   r   dr   r{   Zd_valrw   Zaddrr   r   r   r   Q  s(    
8
r   c             C   s  | j tjkrt| |S | j tjkr6| jjj|d jS | j t	krt	| j  }|t
krt|rt| rlt| |S t| }|ryt| }W n tk
r   Y nX t||S t| }|rt| d | j j|d }|d kr||d}|S ||dS ||S ntd| j| j f d S )Nr   r   z!Field(%s) has unsupported type %d)rm   r   r   r   r   r   Zvalues_by_namer   Znumberr   r   r   r   r   r   r   r   r   r   r   r   )r   r{   r   r   r   r   retr   r   r   _dict2pb_casts  s4    






r   c             C   s  x|j jD ]}|j| krq| |j }|jtjkrLt||jd}t|d oVt|rt	|d }|j
dkr|jtjt| q|j
dk rt|}|jtj|d? d@  |jtj|d? d@  |jtj|d? d@  |jtj|d? d@  qtd
|j
 qx|D ]4}|jtjkr4t||j  n|jt|| qW q|jtjkrt||jj  t|t||jd qt||jt|| qW |S )zd
    Convert dictionary to protobuf msg.
    Takes dict and protobuf message to be merged into.
    Nr   r   r0   r$   r,   l    r   r   zUnknown IP address version %dr   rI   r$   r   )Z
DESCRIPTORZfieldsr   r   r   r   getattrr   r   r   versionr}   r   Zhtonlr   r   rm   r   dict2pbaddr   ZSetInParentsetattr)r   r   r   r{   Zpb_valvalZivalrw   r   r   r   r     s8    




r   )r   r   )r   r   )r   r   )r   r   )r    r   )r!   r"   )r#   r$   )r%   r&   r   )r'   r   r   )r(   r   r   )r)   r   r   )r*   r   r"   )r+   r"   r$   )r-   r$   rI   )r/   rI   rK   )r1   rK   r&   )r3   r&      )r4   r      )r6   r      )r8   r      )r:   r       )r<   r    @  )r>   r      )r@   r      )rB   r           )rD   r   )rF   r   )rG   r   )rH   rI   )rJ   rK   )rL   r&   )rM   rN   )rO   rP   )rQ   rR   )rS   rT   )rU   rV   )rW   rX   )rY   rZ   )r[   r\   )r]   r^   )r_   r`   )ra   rb   )rc   r   )rd   r   )re   r   )rf   r"   )rg   rh   r   )ri   r   r   )rj   r   r   )rk   r   )FF)FF)Ir   r   r   r   r   Z	ipaddressr   r   r   Zgoogle.protobuf.descriptorr   r   r	   dirr   r   r   r   ZTYPE_FIXED64r   ZTYPE_FIXED32ZTYPE_SFIXED64ZTYPE_SFIXED32Z
TYPE_INT64ZTYPE_UINT64ZTYPE_SINT64Z
TYPE_INT32ZTYPE_UINT32ZTYPE_SINT32Z	TYPE_BOOLboolZTYPE_STRINGr   r   r   r   r   r   r   r   r   Zmmap_prot_mapZmmap_flags_mapZmmap_status_mapZrfile_flags_mapZseals_flags_mapZpmap_flags_mapr   Zgen_mapsZsk_mapsrt   ru   Z	gen_rmapsZsk_rmapsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s  

	
(
"(