3
��f+t � b @ s� d Z ddlmZ ddlmZ ddlZddlZddlZddlZddlZddl Z ddl
Z
ddlZddlZddl
Z
ddlmZ ddl mZ ddl mZ ddl mZ ydd l mZ W n ek
r� dZY nX ydd
l mZ W n ek
r� dZY nX ejd dkZe�rddlZndZeejd��Ze� Zd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^gRZejd_kZejd`kZ ej!j"da�Z#ej!j"db�Z$e$Z%ej!j"�d�Z&ej!j"de�Z'ej!j"df�Z(e&�p2e'�p2e(Z)ej!j"�d
�Z*ej!j"di�Z+djZ,dkZ-dlZ.dmZ/dnZ0doZ1dpZ2dqZ3drZ4dsZ5dtZ6duZ7dvZ8dwZ9dxZ:dyZ;dzZ<d{Z=d|Z>d}Z?d~Z@dZAd�ZBd�ZCd�ZDd�ZEedk�r�d�ZFd�ZGdZHn G d�d�� d�ejI�ZJeK� jLeJjM� edk�r�dZN�dZOn G d�d�� d�ejI�ZPeK� jLePjM� ejQ� ZRe�s:d�ZSn2yejT� ZSW n$ eUk
�rj e�rbd�nd�ZSY nX edHd�d�d�d�d�d�g�ZVedDd�d�d�d�g�ZWedBd�d�d�d�d�d�g�ZXedCd�d�d�d�g�ZYedEd�d�d�d�d�d�d�d�g�ZZedId�d�d�d�d�g�Z[ed@d�d�d�d�d�d�d�g�Z\edFd�d�d�d�d�g�Z]edGd�d�d�d�d�g�Z^edAd�d�d�d�g�Z_ed�d�d�d�g�Z`ed�d�d�d�d�g�Zaed�d�d�d�g�Zbed�d�d�g�Zced8d�d�d�d�g�Zded=d�d�g�Zeed>d�d�d�g�Zfed?d�d�d�g�Zged:d�d�d�g�Zhed;d�d�d�d�g�Zied<d�d�g�Zjed9d�d�g�Zked7d�d�d�d�d�d�g�Zled�d�d�g�ZmeeegeegfeegegfegegfeegegfegegfeegeegfegeegfegeegfdڜZnedk �r�enjLegegfegegfdۜ� edk �r�enjLd�egeegfi� G d�dބ d�eo�ZpG d�d� d�ep�ZqG d�d� d�eq�ZrG d�d� d�ep�ZsG d�d� d�ep�Zte�rReuevew��r>evd� Zxn
eyevd�Zxexd� nd�d� Zz�dd�dP�Z{d�dM� Z|d�d� Z}d�dL� Z~d�dO� Ze|d�dQ� �Z�d�dN� Z�d�dR� Z�d�dS� Z��dd�dZ�Z�d�dK� Z�G d�d�� d��Z�d�dT� Z�e�� Z�e�j�e�_�e�j�e�_��dZ�d�dV� Z�d�dU� Z�ee�fd�dW�Z�efd�dX�Z��d�ddY�Z��d�d� Z�e�rH�d�d� Z�n�d�d� Z�e|ej�f�dd]��Z��d�d d\�Z�d�dej�f�d
d^�Z��dd[� Z�dS ( z9Common objects shared by __init__.py and _ps*.py modules.� )�division)�print_functionN)�
namedtuple)�AF_INET)�
SOCK_DGRAM)�SOCK_STREAM)�AF_INET6)�AF_UNIX� �PSUTIL_DEBUG�FREEBSD�BSD�LINUX�NETBSD�OPENBSD�MACOS�OSX�POSIX�SUNOS�WINDOWS�
CONN_CLOSE�CONN_CLOSE_WAIT�CONN_CLOSING�CONN_ESTABLISHED�CONN_FIN_WAIT1�CONN_FIN_WAIT2�
CONN_LAST_ACK�CONN_LISTEN� CONN_NONE�
CONN_SYN_RECV�
CONN_SYN_SENT�CONN_TIME_WAIT�NIC_DUPLEX_FULL�NIC_DUPLEX_HALF�NIC_DUPLEX_UNKNOWN�STATUS_DEAD�STATUS_DISK_SLEEP�STATUS_IDLE�
STATUS_LOCKED�STATUS_RUNNING�STATUS_SLEEPING�STATUS_STOPPED�STATUS_SUSPENDED�STATUS_TRACING_STOP�STATUS_WAITING�STATUS_WAKE_KILL�
STATUS_WAKING�
STATUS_ZOMBIE�
STATUS_PARKED�ENCODING�
ENCODING_ERRSr �pconn� pcputimes�pctxsw�pgids�pio�pionice� popenfile�pthread�puids�sconn� scpustats�sdiskio� sdiskpart�
sdiskusage�snetio�snicaddr� snicstats�sswap�suser� conn_tmap�deprecated_method�
isfile_strict�memoize�parse_environ_block�path_exists_strict�
usage_percent�
supports_ipv6�sockfam_to_enum�socktype_to_enum�wrap_numbers� open_text�open_binary�cat�bcat�bytes2human�conn_to_ntuple�debug�hilite�term_supports_colors�print_color�posix�nt�linux�darwin�freebsd�midnightbsdZopenbsdZnetbsd�sunos�solaris�aix�running�sleepingz
disk-sleep�stoppedztracing-stop�zombie�deadz wake-kill�waking�idle�locked�waiting� suspended�parked�ESTABLISHED�SYN_SENT�SYN_RECV� FIN_WAIT1� FIN_WAIT2� TIME_WAIT�CLOSE�
CLOSE_WAIT�LAST_ACK�LISTEN�CLOSING�NONE� � c @ s e Zd ZdZdZdZdS )� NicDuplexr} r~ r N)�__name__�
__module__�__qualname__r" |