§
    xÅjòF  ã                   óÖ  — d 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dlmZ ddlmZ ddlmZ dgZ eed¦  «        Z eed¦  «        Z eed¦  «        Z ej        ¦   «         Zej        Zej         ej!        ej"        ej#        ej$        ej%        ej&        ej%        ej'        ej(        iZ)ej*        ej+        ej,        ej-        ej.        ej/        ej0        ej1        ej2        ej3        ej4        ej5        ej6        ej7        ej8        ej9        ej:        ej;        ej<        ej=        ej>        ej?        ej@        ejA        iZB eCdddddddd¬¦  «        ZDd„ ZEd„ ZFd„ ZGd „ ZHd!„ ZId"„ ZJd#„ ZKejL        ZLejM        ZMd0d%„ZNejO        ZOerejP        ZPd1d'„ZQd(„ ZRd)„ ZSd*„ ZTd+„ ZUd,„ ZVd-„ ZW G d.„ d/¦  «        ZXdS )2zAIX platform implementation.é    Né   )Ú_common)Ú_ntuples)Ú_psposix)Ú_psutil_aix)ÚNIC_DUPLEX_FULL)ÚNIC_DUPLEX_HALF)ÚNIC_DUPLEX_UNKNOWN)ÚAccessDenied)ÚNoSuchProcess)ÚZombieProcess)Úconn_to_ntuple)Úget_procfs_path)Úmemoize_when_activated)Úusage_percentÚPROCFS_PATHÚproc_threadsÚnet_io_countersÚproc_io_countersé   é   é   é   é   é   )ÚppidÚrssÚvmsÚcreate_timeÚniceÚnum_threadsÚstatusÚttynrc                  óŽ   — t          j        ¦   «         \  } }}}}t          | |z
  | d¬¦  «        }t          j        | ||||¦  «        S )Nr   ©Úround_)ÚcextÚvirtual_memr   ÚntpÚsvmem)ÚtotalÚavailÚfreeÚ_pinnedÚinuseÚpercents         ú>C:\Projects\Historical\venv\Lib\site-packages\psutil/_psaix.pyÚvirtual_memoryr2   V   sK   € Ý)-Ô)9Ñ);Ô);Ñ&€Eˆ5�$˜ Ý˜U U™]¨U¸1Ð=Ñ=Ô=€GÝŒ9�U˜E 7¨E°4Ñ8Ô8Ð8ó    c                  ó’   — t          j        ¦   «         \  } }}}| |z
  }t          || d¬¦  «        }t          j        | |||||¦  «        S )z=Swap system memory as a (total, used, free, sin, sout) tuple.r   r%   )r'   Úswap_memr   r)   Ússwap)r+   r-   ÚsinÚsoutÚusedr0   s         r1   Úswap_memoryr:   \   sM   € å!œ]™_œ_Ñ€Eˆ4��dØ�4‰<€DÝ˜D %°Ð2Ñ2Ô2€GÝŒ9�U˜D $¨°°dÑ;Ô;Ð;r3   c                  óf   — t          j        ¦   «         } t          j        d„ t	          | Ž D ¦   «         Ž S )z.Return system-wide CPU times as a named tuple.c                 ó,   — g | ]}t          |¦  «        ‘ŒS © )Úsum©Ú.0Úxs     r1   ú
<listcomp>zcpu_times.<locals>.<listcomp>l   s   € Ð5Ð5Ð5 a�3˜q™6œ6Ð5Ð5Ð5r3   )r'   Úper_cpu_timesr)   Ú	scputimesÚzip©Úrets    r1   Ú	cpu_timesrH   i   s0   € å
Ô
Ñ
Ô
€CÝŒ=Ð5Ð5­3°¨9Ð5Ñ5Ô5Ð6Ð6r3   c                  ó@   — t          j        ¦   «         } d„ | D ¦   «         S )z6Return system per-CPU times as a list of named tuples.c                 ó*   — g | ]}t          j        |Ž ‘ŒS r=   )r)   rD   r?   s     r1   rB   z!per_cpu_times.<locals>.<listcomp>r   s   € Ð+Ð+Ð+ !�CŒM˜1ÐÐ+Ð+Ð+r3   )r'   rC   rF   s    r1   rC   rC   o   s$   € å
Ô
Ñ
Ô
€CØ+Ð+ sÐ+Ñ+Ô+Ð+r3   c                  óN   — 	 t          j        d¦  «        S # t          $ r Y dS w xY w)z0Return the number of logical CPUs in the system.ÚSC_NPROCESSORS_ONLNN)ÚosÚsysconfÚ
ValueErrorr=   r3   r1   Úcpu_count_logicalrP   u   s:   € ðÝŒzÐ/Ñ0Ô0Ð0øÝð ð ð àˆtˆtðøøøs   ‚ –
$£$c                  ó`  — g d¢} t          j        | t           j        t           j        ¬¦  «        }|                     ¦   «         \  }}d„ ||fD ¦   «         \  }}|j        dk    r| ›d|› �}t          |¦  «        ‚|                     ¦   «                              ¦   «         }t          |¦  «        pd S )N)Úlsdevz-CcÚ	processor©ÚstdoutÚstderrc              3   ó^   K  — | ](}|                      t          j        j        ¦  «        V — Œ)d S ©N©ÚdecodeÚsysrU   Úencodingr?   s     r1   ú	<genexpr>z"cpu_count_cores.<locals>.<genexpr>‚   s3   è è € ÐNÐN¸�a—h’h�sœzÔ2Ñ3Ô3ÐNÐNÐNÐNÐNÐNr3   r   z command error
)	Ú
subprocessÚPopenÚPIPEÚcommunicateÚ
returncodeÚRuntimeErrorÚstripÚ
splitlinesÚlen)ÚcmdÚprU   rV   ÚmsgÚ
processorss         r1   Úcpu_count_coresrk   ~   s­   € Ø
'Ð
'Ð
'€CÝÔ˜¥Z¤_½Z¼_ÐMÑMÔM€AØ—]’]‘_”_�N€FˆFØNÐN¸fÀfÐ=MÐNÑNÔN�N€FˆFØ„|�qÒÐØÐ0Ð0¨Ð0Ð0ˆÝ˜3ÑÔÐØ—’‘”×*Ò*Ñ,Ô,€JÝˆz‰?Œ?Ð"˜dÐ"r3   c                  ó`   — t          j        ¦   «         \  } }}}t          j        | |||¦  «        S )z*Return various CPU stats as a named tuple.)r'   Ú	cpu_statsr)   Ú	scpustats)Úctx_switchesÚ
interruptsÚsoft_interruptsÚsyscallss       r1   rm   rm   Š   s.   € å:>¼.Ñ:JÔ:JÑ7€L�*˜o¨xÝŒ=˜ z°?ÀHÑMÔMÐMr3   Fc                 óÞ   — g }t          j        ¦   «         }|D ]T}|\  }}}}|dk    rd}| st          |¦  «        j        sŒ(t	          j        ||||¦  «        }|                     |¦  «         ŒU|S )zReturn system disk partitions.ÚnoneÚ )r'   Údisk_partitionsÚ
disk_usager+   r)   Ú	sdiskpartÚappend)	ÚallÚretlistÚ
partitionsÚ	partitionÚdeviceÚ
mountpointÚfstypeÚoptsÚntuples	            r1   rv   rv   ™   s“   € ð €GÝÔ%Ñ'Ô'€JØð ð ˆ	Ø+4Ñ(ˆ�
˜F DØ�VÒÐØˆFØð 	õ ˜jÑ)Ô)Ô/ð ØÝ”˜v z°6¸4Ñ@Ô@ˆØ�Š�vÑÔÐÐØ€Nr3   éÿÿÿÿc                 ó   — t           j        |          \  }}t          j        |¦  «        }g }|D ]O}|\  }}}	}
}}}||vrŒ|	|vrŒt	          |||	|
||t
          |dk    r|nd¬¦  «        }|                     |¦  «         ŒP|S )zˆReturn socket connections.  If pid == -1 return system-wide
    connections (as opposed to connections opened by one process only).
    rƒ   N©Úpid)r   Ú	conn_tmapr'   Únet_connectionsr   ÚTCP_STATUSESry   )ÚkindÚ_pidÚfamiliesÚtypesÚrawlistrG   ÚitemÚfdÚfamÚtype_ÚladdrÚraddrr"   r†   Únts                  r1   rˆ   rˆ   ¹   s¹   € õ Ô'¨Ô-�O€HˆeÝÔ" 4Ñ(Ô(€GØ
€CØð ð ˆØ48Ñ1ˆˆC�˜˜u f¨cØ�hÐÐØØ˜ÐÐØÝØØØØØØÝØ˜r’z�z�� tð	
ñ 	
ô 	
ˆð 	�
Š
�2‰ŒˆˆØ€Jr3   c                  óº  — t           t          dœ} d„ t          ¦   «         D ¦   «         }i }|D �]-}t          j        |¦  «        }t          j        |¦  «        }d}d}t          j        dd|gt          j        t          j        ¬¦  «        }| 	                    ¦   «         \  }	}
d„ |	|
fD ¦   «         \  }	}
|j
        dk    rNt          j        d	|	¦  «        }|�7t          |                     d¦  «        ¦  «        }|                     d¦  «        }d                     |¦  «        }d|v }|                      |t"          ¦  «        }t%          j        |||||¦  «        ||<   �Œ/|S )z)Get NIC stats (isup, duplex, speed, mtu).)ÚFullÚHalfc                 ó   — h | ]
}|d          ’ŒS )r   r=   r?   s     r1   ú	<setcomp>znet_if_stats.<locals>.<setcomp>×   s   € Ð*Ð*Ð*�aˆQˆqŒTÐ*Ð*Ð*r3   ru   r   z/usr/bin/entstatz-drT   c              3   ó^   K  — | ](}|                      t          j        j        ¦  «        V — Œ)d S rX   rY   r?   s     r1   r]   znet_if_stats.<locals>.<genexpr>è   óD   è è € ð 
ð 
Ø./ˆA�HŠH•S”ZÔ(Ñ)Ô)ð
ð 
ð 
ð 
ð 
ð 
r3   z"Running: (\d+) Mbps.*?(\w+) DuplexNr   r   ú,Úrunning)r   r	   Únet_if_addrsr'   Ú
net_if_mtuÚnet_if_flagsr^   r_   r`   ra   rb   ÚreÚsearchÚintÚgroupÚjoinÚgetr
   r)   Ú	snicstats)Ú
duplex_mapÚnamesrG   ÚnameÚmtuÚflagsÚduplexÚspeedrh   rU   rV   Ú	re_resultÚoutput_flagsÚisups                 r1   Únet_if_statsr³   Ô   sr  € å)µ?ÐCÐC€JØ*Ð*�<™>œ>Ð*Ñ*Ô*€EØ
€CØð Jñ JˆÝŒo˜dÑ#Ô#ˆÝÔ! $Ñ'Ô'ˆð
 ˆØˆÝÔØ  tÐ,Ý”?Ý”?ð
ñ 
ô 
ˆð
 Ÿš™œ‰ˆ�ð
ð 
Ø4:¸FÐ3Cð
ñ 
ô 
‰ˆ�ð Œ<˜1ÒÐÝœ	Ø5°vñô ˆIð Ð$Ý˜IŸOšO¨AÑ.Ô.Ñ/Ô/�Ø"Ÿš¨Ñ+Ô+�à—x’x ‘”ˆØ˜EÐ!ˆØ—’ Õ(:Ñ;Ô;ˆÝ”M $¨°°s¸LÑIÔIˆˆD‰	‰	Ø€Jr3   c                  ó(   — t          j        ¦   «         S )z:The system boot time expressed in seconds since the epoch.)r'   Ú	boot_timer=   r3   r1   rµ   rµ   ÿ   s   € åŒ>ÑÔÐr3   c                  ó¼   — g } t          j        ¦   «         }d}|D ]A}|\  }}}}}}	|sŒ||v rd}t          j        |||||	¦  «        }
|                      |
¦  «         ŒB| S )z:Return currently connected users as a list of namedtuples.)z:0.0z:0Ú	localhost)r'   Úusersr)   Úsuserry   )r{   rŽ   r·   r�   ÚuserÚttyÚhostnameÚtstampÚuser_processr†   r•   s              r1   r¸   r¸     s†   € à€GÝŒj‰lŒl€GØ€IØð 
ð 
ˆØ9=Ñ6ˆˆc�8˜V \°3ð ð 	ØØ�yÐ Ð Ø"ˆHÝŒY�t˜S (¨F°CÑ8Ô8ˆØ�Š�rÑÔÐÐØ€Nr3   c                  óV   — d„ t          j        t          ¦   «         ¦  «        D ¦   «         S )z7Returns a list of PIDs currently running on the system.c                 óT   — g | ]%}|                      ¦   «         ¯t          |¦  «        ‘Œ&S r=   )Úisdigitr¤   r?   s     r1   rB   zpids.<locals>.<listcomp>  s+   € ÐIÐIÐI�q¸Q¿YºY¹[¼[ÐI�C�‰FŒFÐIÐIÐIr3   )rM   Úlistdirr   r=   r3   r1   ÚpidsrÃ     s&   € àIÐI�BœJ¥Ñ'8Ô'8Ñ9Ô9ÐIÑIÔIÐIr3   c                 ó°   — t           j                             t           j                             t	          ¦   «         t          | ¦  «        d¦  «        ¦  «        S )z&Check for the existence of a unix pid.Úpsinfo)rM   ÚpathÚexistsr¦   r   Ústrr…   s    r1   Ú
pid_existsrÉ   !  s4   € åŒ7�>Š>�"œ'Ÿ,š,¥Ñ'8Ô'8½#¸c¹(¼(ÀHÑMÔMÑNÔNÐNr3   c                 óF   ‡ — t          j        ‰ ¦  «        ˆ fd„¦   «         }|S )zƒCall callable into a try/except clause and translate ENOENT,
    EACCES and EPERM in NoSuchProcess or AccessDenied exceptions.
    c                 ó  •— | j         | j        | j        }}}	  ‰| g|¢R i |¤ŽS # t          t          f$ r7}t          |¦  «        st          ||¦  «        |‚t          |||¦  «        |‚d }~wt          $ r}t          ||¦  «        |‚d }~ww xY wrX   )
r†   Ú_ppidÚ_nameÚFileNotFoundErrorÚProcessLookupErrorrÉ   r   r   ÚPermissionErrorr   )ÚselfÚargsÚkwargsr†   r   r«   ÚerrÚfuns          €r1   Úwrapperz wrap_exceptions.<locals>.wrapper+  s¾   ø€ àœ( D¤J°´
�4ˆTˆð
	3Ø�3�tÐ-˜dÐ-Ð-Ð- fÐ-Ð-Ð-øÝ!Õ#5Ð6ð 	:ð 	:ð 	:õ ˜c‘?”?ð 8Ý# C¨Ñ.Ô.°CÐ7Ý  T¨4Ñ0Ô0°cÐ9øøøøÝð 	3ð 	3ð 	3Ý˜s DÑ)Ô)¨sÐ2øøøøð	3øøøs    ˜$ ¤B
µ2A'Á'B
Á4BÂB
)Ú	functoolsÚwraps)rÕ   rÖ   s   ` r1   Úwrap_exceptionsrÙ   &  s:   ø€ õ
 „_�SÑÔð3ð 3ð 3ð 3ñ Ôð3ð €Nr3   c                   óv  — e Zd ZdZg d¢Zd„ Zd„ Zd„ Zee	d„ ¦   «         ¦   «         Z
ee	d„ ¦   «         ¦   «         Zed„ ¦   «         Zed	„ ¦   «         Zed
„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zered„ ¦   «         Zed!d„¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         ZeZed„ ¦   «         Zd„ Z ed„ ¦   «         Z!ed„ ¦   «         Z"ed"d„¦   «         Z#e$red „ ¦   «         Z%dS dS )#ÚProcessz1Wrapper class around underlying C implementation.)Ú_cacherÍ   rÌ   Ú_procfs_pathr†   c                 óV   — || _         d | _        d | _        t          ¦   «         | _        d S rX   )r†   rÍ   rÌ   r   rÝ   )rÑ   r†   s     r1   Ú__init__zProcess.__init__B  s+   € ØˆŒØˆŒ
ØˆŒ
Ý+Ñ-Ô-ˆÔÐÐr3   c                 ón   — | j                              | ¦  «         | j                             | ¦  «         d S rX   )Ú_proc_basic_infoÚcache_activateÚ
_proc_cred©rÑ   s    r1   Úoneshot_enterzProcess.oneshot_enterH  s5   € ØÔ×,Ò,¨TÑ2Ô2Ð2ØŒ×&Ò& tÑ,Ô,Ð,Ð,Ð,r3   c                 ón   — | j                              | ¦  «         | j                             | ¦  «         d S rX   )rá   Úcache_deactivaterã   rä   s    r1   Úoneshot_exitzProcess.oneshot_exitL  s5   € ØÔ×.Ò.¨tÑ4Ô4Ð4ØŒ×(Ò(¨Ñ.Ô.Ð.Ð.Ð.r3   c                 ó@   — t          j        | j        | j        ¦  «        S rX   )r'   Úproc_basic_infor†   rÝ   rä   s    r1   rá   zProcess._proc_basic_infoP  s   € õ Ô# D¤H¨dÔ.?Ñ@Ô@Ð@r3   c                 ó@   — t          j        | j        | j        ¦  «        S rX   )r'   Ú	proc_credr†   rÝ   rä   s    r1   rã   zProcess._proc_credU  s   € õ Œ~˜dœh¨Ô(9Ñ:Ô:Ð:r3   c                 ó€   — | j         dk    rdS t          j        | j         | j        ¦  «                             d¦  «        S )Nr   Úswapperú )r†   r'   Ú	proc_namerÝ   Úrstriprä   s    r1   r«   zProcess.nameZ  s7   € àŒ8�qŠ=ˆ=Ø�9åŒ~˜dœh¨Ô(9Ñ:Ô:×AÒAÀ&ÑIÔIÐIr3   c                 ó’  — |                       ¦   «         }|sdS |d         }t          j        j        |v rìt          j                             |¦  «        sOt          j                             t          j                             |                      ¦   «         |¦  «        ¦  «        }t          j                             |¦  «        r@t          j                             |¦  «        r!t          j	        |t          j
        ¦  «        r|S t          j                             |¦  «        }t          j        d                              d¦  «        D ]�}t          j                             t          j                             ||¦  «        ¦  «        }t          j                             |¦  «        r#t          j	        |t          j
        ¦  «        r|c S Œ‚dS )Nru   r   ÚPATHú:)ÚcmdlinerM   rÆ   ÚsepÚisabsÚabspathr¦   ÚcwdÚisfileÚaccessÚX_OKÚbasenameÚenvironÚsplit)rÑ   rõ   ÚexerÆ   Úpossible_exes        r1   r   zProcess.exea  sc  € ð —,’,‘.”.ˆØð 	Ø�2Ø�aŒjˆÝŒ7Œ;˜#ÐÐå”7—=’= Ñ%Ô%ð Eå”g—o’o¥b¤g§l¢l°4·8²8±:´:¸sÑ&CÔ&CÑDÔD�å”—’˜cÑ"Ô"ðå”G—N’N 3Ñ'Ô'ðõ ”I˜c¥2¤7Ñ+Ô+ðð
 �
å”'×"Ò" 3Ñ'Ô'ˆCå”J˜vÔ&×,Ò,¨SÑ1Ô1ð 	$ð 	$ˆDÝœ7Ÿ?š?­2¬7¯<ª<¸¸cÑ+BÔ+BÑCÔCˆLÝŒw�~Š~˜lÑ+Ô+ð $µ´	Ø�bœgñ1ô 1ð $ð $Ð#Ð#Ð#øØˆrr3   c                 ó4   — t          j        | j        ¦  «        S rX   )r'   Ú	proc_argsr†   rä   s    r1   rõ   zProcess.cmdline  s   € åŒ~˜dœhÑ'Ô'Ð'r3   c                 ó4   — t          j        | j        ¦  «        S rX   )r'   Úproc_environr†   rä   s    r1   rþ   zProcess.environƒ  s   € åÔ  ¤Ñ*Ô*Ð*r3   c                 óL   — |                       ¦   «         t          d                  S )Nr   ©rá   Úproc_info_maprä   s    r1   r   zProcess.create_time‡  ó   € à×$Ò$Ñ&Ô&¥}°]Ô'CÔDÐDr3   c                 óL   — |                       ¦   «         t          d                  S )Nr!   r  rä   s    r1   r!   zProcess.num_threads‹  r	  r3   c                 óî   — t          j        | j        ¦  «        }g }|D ]1\  }}}t          j        |||¦  «        }|                     |¦  «         Œ2|s#t          j        | j        › d| j        › �¦  «         |S )Nú/)	r'   r   r†   r)   Úpthreadry   rM   ÚstatrÝ   )rÑ   rŽ   r{   Ú	thread_idÚutimeÚstimer‚   s          r1   ÚthreadszProcess.threads‘  s‰   € åÔ'¨¬Ñ1Ô1ˆGØˆGØ+2ð 'ð 'Ñ'�	˜5 %Ýœ Y°°uÑ=Ô=�Ø—’˜vÑ&Ô&Ð&Ð&ð ð ;å”˜4Ô,Ð9Ð9¨t¬xÐ9Ð9Ñ:Ô:Ð:ØˆNr3   Úinetc                 ó|   — t          || j        ¬¦  «        }|s#t          j        | j        › d| j        › �¦  «         |S )N)r‹   r  )rˆ   r†   rM   r  rÝ   )rÑ   rŠ   rG   s      r1   rˆ   zProcess.net_connections¢  sH   € å˜d¨¬Ð2Ñ2Ô2ˆð ð 	7åŒG�tÔ(Ð5Ð5¨4¬8Ð5Ð5Ñ6Ô6Ð6Øˆ
r3   c                 ó4   — t          j        | j        ¦  «        S rX   )r'   Úproc_priority_getr†   rä   s    r1   Únice_getzProcess.nice_get¯  s   € åÔ% d¤hÑ/Ô/Ð/r3   c                 ó6   — t          j        | j        |¦  «        S rX   )r'   Úproc_priority_setr†   )rÑ   Úvalues     r1   Únice_setzProcess.nice_set³  s   € åÔ% d¤h°Ñ6Ô6Ð6r3   c                 ód   — |                       ¦   «         t          d                  | _        | j        S )Nr   )rá   r  rÌ   rä   s    r1   r   zProcess.ppid·  s'   € à×*Ò*Ñ,Ô,­]¸6Ô-BÔCˆŒ
ØŒzÐr3   c                 ód   — |                       ¦   «         \  }}}}}}t          j        |||¦  «        S rX   ©rã   r)   Úpuids)rÑ   ÚrealÚ	effectiveÚsavedÚ_s        r1   ÚuidszProcess.uids¼  s2   € à*.¯/ª/Ñ*;Ô*;Ñ'ˆˆi˜  1 aÝŒy˜˜y¨%Ñ0Ô0Ð0r3   c                 ód   — |                       ¦   «         \  }}}}}}t          j        |||¦  «        S rX   r  )rÑ   r#  r   r!  r"  s        r1   ÚgidszProcess.gidsÁ  s2   € à*.¯/ª/Ñ*;Ô*;Ñ'ˆˆ1ˆa��y %ÝŒy˜˜y¨%Ñ0Ô0Ð0r3   c                 ó\   — t          j        | j        | j        ¦  «        }t	          j        |Ž S rX   )r'   Úproc_cpu_timesr†   rÝ   r)   Ú	pcputimes)rÑ   Úts     r1   rH   zProcess.cpu_timesÆ  s&   € åÔ ¤¨$Ô*;Ñ<Ô<ˆÝŒ}˜aÐ Ð r3   c                 óÜ   — |                       ¦   «         t          d                  }|dz  dz	  |dz  z  }t          j        d¦  «        D ]#}t          j        |¦  «        j        |k    r|c S Œ$d S )Nr#   l       ü é   iÿÿ  z	/dev/**/*)rá   r  ÚglobrM   r  Úst_rdev)rÑ   ÚttydevÚdevs      r1   ÚterminalzProcess.terminalË  sx   € à×&Ò&Ñ(Ô(­°wÔ)?Ô@ˆàÐ.Ñ.°2Ñ5¸&À6¹/ÑJˆå”9˜[Ñ)Ô)ð 	ð 	ˆCÝŒw�s‰|Œ|Ô# vÒ-Ð-Ø�
�
�
ð .àˆtr3   c                 óØ   — | j         }	 t          j        |› d| j        › d�¦  «        }|                     d¦  «        S # t
          $ r" t          j        |› d| j        › �¦  «         Y dS w xY w)Nr  z/cwdru   )rÝ   rM   Úreadlinkr†   rñ   rÎ   r  )rÑ   Úprocfs_pathÚresults      r1   rù   zProcess.cwdÖ  s…   € àÔ'ˆð	Ý”[ KÐ!@Ð!@°$´(Ð!@Ð!@Ð!@ÑAÔAˆFØ—=’= Ñ%Ô%Ð%øÝ ð 	ð 	ð 	ÝŒG�{Ð/Ð/ T¤XÐ/Ð/Ñ0Ô0Ð0Ø�2�2ð	øøøs   ‰3= ½(A)Á(A)c                 ó¬   — |                       ¦   «         }|t          d                  dz  }|t          d                  dz  }t          j        ||¦  «        S )Nr   i   r   )rá   r  r)   Úpmem)rÑ   rG   r   r   s       r1   Úmemory_infozProcess.memory_infoà  sM   € à×#Ò#Ñ%Ô%ˆØ•- Ô&Ô'¨$Ñ.ˆØ•- Ô&Ô'¨$Ñ.ˆÝŒx˜˜SÑ!Ô!Ð!r3   c                 ó‚   — |                       ¦   «         t          d                  }t                               |d¦  «        S )Nr"   ú?)rá   r  ÚPROC_STATUSESr§   )rÑ   Úcodes     r1   r"   zProcess.statusé  s3   € à×$Ò$Ñ&Ô&¥}°XÔ'>Ô?ˆå× Ò   sÑ+Ô+Ð+r3   c           	      óv  — t          j        ddt          | j        ¦  «        gt           j        t           j        ¬¦  «        }|                     ¦   «         \  }}d„ ||fD ¦   «         \  }}d|                     ¦   «         v rt          | j        | j        ¦  «        ‚t          j
        d|¦  «        }g }|D ]†\  }}|                     ¦   «         }|                     d¦  «        r
|dd …         }|                     ¦   «         d	k    rŒQ|                     t          j        |t!          |¦  «        ¦  «        ¦  «         Œ‡|S )
Nz/usr/bin/procfilesz-nrT   c              3   ó^   K  — | ](}|                      t          j        j        ¦  «        V — Œ)d S rX   rY   r?   s     r1   r]   z%Process.open_files.<locals>.<genexpr>ø  rœ   r3   zno such processz(\d+): S_IFREG.*name:(.*)\nz//r   zcannot be retrieved)r^   r_   rÈ   r†   r`   ra   Úlowerr   rÍ   r¢   Úfindallrd   Ú
startswithry   r)   Ú	popenfiler¤   )rÑ   rh   rU   rV   Ú	procfilesr{   r�   rÆ   s           r1   Ú
open_fileszProcess.open_filesï  s5  € õ ÔØ! 4­¨T¬X©¬Ð7Ý”?Ý”?ð
ñ 
ô 
ˆð
 Ÿš™œ‰ˆ�ð
ð 
Ø4:¸FÐ3Cð
ñ 
ô 
‰ˆ�ð  §¢¡¤Ð.Ð.Ý ¤¨$¬*Ñ5Ô5Ð5Ý”JÐ=¸vÑFÔFˆ	ØˆØ!ð 	9ð 	9‰HˆB�Ø—:’:‘<”<ˆDØ�Š˜tÑ$Ô$ð  Ø˜A˜B˜B”x�Ø�zŠz‰|Œ|Ð4Ò4Ð4ØØ�NŠN�3œ=¨­s°2©w¬wÑ7Ô7Ñ8Ô8Ð8Ð8Øˆr3   c                 ó~   — | j         dk    rdS t          t          j        | j        › d| j         › d�¦  «        ¦  «        S )Nr   r  z/fd)r†   rf   rM   rÂ   rÝ   rä   s    r1   Únum_fdszProcess.num_fds  s@   € àŒ8�qŠ=ˆ=Ø�1Ý•2”: Ô!2ÐBÐB°T´XÐBÐBÐBÑCÔCÑDÔDÐDr3   c                 óL   — t          j        t          j        | j        ¦  «        Ž S rX   )r)   Úpctxswr'   Úproc_num_ctx_switchesr†   rä   s    r1   Únum_ctx_switcheszProcess.num_ctx_switches  s   € åŒz�4Ô5°d´hÑ?Ô?Ð@Ð@r3   Nc                 ó6   — t          j        | j        |¦  «        S rX   )r   Úwait_pidr†   )rÑ   Útimeouts     r1   ÚwaitzProcess.wait  s   € åÔ  ¤¨7Ñ3Ô3Ð3r3   c                 óô   — 	 t          j        | j        ¦  «        \  }}}}nB# t          $ r5}t	          | j        ¦  «        st          | j        | j        ¦  «        |‚‚ d }~ww xY wt          j        ||||¦  «        S rX   )	r'   r   r†   ÚOSErrorrÉ   r   rÍ   r)   Úpio)rÑ   ÚrcÚwcÚrbÚwbrÔ   s         r1   Úio_counterszProcess.io_counters  sˆ   € ðÝ!%Ô!6°t´xÑ!@Ô!@‘��B˜˜B˜BøÝð ð ð õ " $¤(Ñ+Ô+ð GÝ'¨¬°$´*Ñ=Ô=À3ÐFØøøøøðøøøõ ”7˜2˜r 2 rÑ*Ô*Ð*s   ‚! ¡
A «0AÁA )r  rX   )&Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__rß   rå   rè   rÙ   r   rá   rã   r«   r   rõ   rþ   r   r!   ÚHAS_THREADSr  rˆ   r  r  r   r$  r&  rH   r1  rù   r8  Úmemory_full_infor"   rD  rF  rJ  rN  ÚHAS_PROC_IO_COUNTERSrV  r=   r3   r1   rÛ   rÛ   =  s;  € € € € € Ø;Ð;àCÐCÐC€Ið.ð .ð .ð-ð -ð -ð/ð /ð /ð ØðAð Añ Ôñ „_ðAð Øð;ð ;ñ Ôñ „_ð;ð ðJð Jñ „_ðJð ðð ñ „_ðð: ð(ð (ñ „_ð(ð ð+ð +ñ „_ð+ð ðEð Eñ „_ðEð ðEð Eñ „_ðEð ð à	ð	ð 	ñ 
Œð	ð  ð
ð 
ð 
ñ „_ð
ð ð0ð 0ñ „_ð0ð ð7ð 7ñ „_ð7ð ðð ñ „_ðð ð1ð 1ñ „_ð1ð ð1ð 1ñ „_ð1ð ð!ð !ñ „_ð!ð ðð ñ „_ðð ðð ñ „_ðð ð"ð "ñ „_ð"ð #Ðàð,ð ,ñ „_ð,ð
ð ð ð2 ðEð Eñ „_ðEð
 ðAð Añ „_ðAð ð4ð 4ð 4ñ „_ð4ð ð +à	ð		+ð 		+ñ 
Œð		+ð 		+ð 		+ð+ð +r3   rÛ   )F)rƒ   )YrZ  r×   r-  rM   r¢   r^   r[   ru   r   r   r)   r   r   r'   r   r	   r
   r   r   r   r   r   r   r   Ú__extra__all__Úhasattrr\  ÚHAS_NET_IO_COUNTERSr^  ÚgetpagesizeÚ	PAGE_SIZEÚAF_LINKÚSIDLÚSTATUS_IDLEÚSZOMBÚSTATUS_ZOMBIEÚSACTIVEÚSTATUS_RUNNINGÚSSWAPÚSSTOPÚSTATUS_STOPPEDr;  ÚTCPS_ESTABLISHEDÚCONN_ESTABLISHEDÚTCPS_SYN_SENTÚCONN_SYN_SENTÚTCPS_SYN_RCVDÚCONN_SYN_RECVÚTCPS_FIN_WAIT_1ÚCONN_FIN_WAIT1ÚTCPS_FIN_WAIT_2ÚCONN_FIN_WAIT2ÚTCPS_TIME_WAITÚCONN_TIME_WAITÚTCPS_CLOSEDÚ
CONN_CLOSEÚTCPS_CLOSE_WAITÚCONN_CLOSE_WAITÚTCPS_LAST_ACKÚCONN_LAST_ACKÚTCPS_LISTENÚCONN_LISTENÚTCPS_CLOSINGÚCONN_CLOSINGÚPSUTIL_CONN_NONEÚ	CONN_NONEr‰   Údictr  r2   r:   rH   rC   rP   rk   rm   Údisk_io_countersrw   rv   rŸ   r   rˆ   r³   rµ   r¸   rÃ   rÉ   rÙ   rÛ   r=   r3   r1   ú<module>rˆ     sò  ðð #Ð "à Ð Ð Ð Ø €€€Ø 	€	€	€	Ø 	€	€	€	Ø Ð Ð Ð Ø 
€
€
€
à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø $Ð $Ð $Ð $Ð $Ð $Ø $Ð $Ð $Ð $Ð $Ð $Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø !Ð !Ð !Ð !Ð !Ð !Ø "Ð "Ð "Ð "Ð "Ð "Ø "Ð "Ð "Ð "Ð "Ð "Ø #Ð #Ð #Ð #Ð #Ð #Ø $Ð $Ð $Ð $Ð $Ð $Ø +Ð +Ð +Ð +Ð +Ð +Ø "Ð "Ð "Ð "Ð "Ð "à�€ð ˆg�d˜NÑ+Ô+€Ø�g˜dÐ$5Ñ6Ô6Ð Ø�w˜tÐ%7Ñ8Ô8Ð àˆDÔÑÔ€	Ø
Œ,€ð 	„IˆwÔ"Ø„J�Ô%Ø„L�'Ô(Ø„J�Ô&Ø„J�Ô&ð€ð 	Ô˜7Ô3ØÔ˜Ô-ØÔ˜Ô-ØÔ˜'Ô0ØÔ˜'Ô0ØÔ˜Ô/ØÔ�gÔ(ØÔ˜'Ô1ØÔ˜Ô-ØÔ�gÔ)ØÔ�wÔ+ØÔ˜7Ô,ð€ð �Ø	
Ø	Ø	ØØ	
ØØØ
ð	ñ 	ô 	€ð"9ð 9ð 9ð<ð <ð <ð7ð 7ð 7ð,ð ,ð ,ðð ð ð	#ð 	#ð 	#ðNð Nð Nð Ô(Ð ØÔ €
ðð ð ð ð4 Ô €àð +ØÔ*€Oðð ð ð ð6#ð #ð #ðVð ð ð
ð ð ð0Jð Jð Jð
Oð Oð Oð
ð ð ð.e+ð e+ð e+ð e+ð e+ñ e+ô e+ð e+ð e+ð e+r3   