§
    ±Ûg?[ ã                   ó€  — 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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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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& erddl'm(Z( ddl'm)Z) ddl'm*Z* ddl'm+Z+ ej,         -                    ej,         .                    e/¦  «        ¦  «        Z0dZ1dZ2dZ3d Z4erd!Z5d"„ Z6d#„ Z7d$„ Z8d%„ Z9d&„ Z:d'„ Z;d(„ Z<d)„ Z=d*„ Z>ej?        d+„ ¦   «         Z@ej?        d,„ ¦   «         ZAe!jB         C                    e d-¬.¦  «         G d/„ d0e¦  «        ¦   «         ZDe!jB         C                    e d-¬.¦  «         G d1„ d2e¦  «        ¦   «         ZEe!jB         C                    e d-¬.¦  «         G d3„ d4e¦  «        ¦   «         ZFe!jB         C                    e d-¬.¦  «         G d5„ d6e¦  «        ¦   «         ZGe!jB         C                    e d-¬.¦  «         G d7„ d8e¦  «        ¦   «         ZHe!jB         C                    e d-¬.¦  «         G d9„ d:e¦  «        ¦   «         ZIe!jB         C                    e d-¬.¦  «         G d;„ d<e¦  «        ¦   «         ZJe!jB         C                    e d-¬.¦  «         G d=„ d>e¦  «        ¦   «         ZKe!jB         C                    e d-¬.¦  «         G d?„ d@e¦  «        ¦   «         ZLe!jB         C                    e d-¬.¦  «         G dA„ dBe¦  «        ¦   «         ZMe!jB         C                    e d-¬.¦  «         G dC„ dDe¦  «        ¦   «         ZNe!jB         C                    e d-¬.¦  «         G dE„ dFe¦  «        ¦   «         ZOe!jB         C                    e d-¬.¦  «         G dG„ dHe¦  «        ¦   «         ZPe!jB         C                    e d-¬.¦  «         G dI„ dJe¦  «        ¦   «         ZQe!jB         C                    e d-¬.¦  «         G dK„ dLe¦  «        ¦   «         ZRe!jB         C                    e d-¬.¦  «         G dM„ dNe¦  «        ¦   «         ZSe!jB         C                    e d-¬.¦  «         G dO„ dPe¦  «        ¦   «         ZTe!jB         C                    e d-¬.¦  «         G dQ„ dRe¦  «        ¦   «         ZUe!jB         C                    e d-¬.¦  «        e!jB         C                    e dS¬.¦  «         G dT„ dUe¦  «        ¦   «         ¦   «         ZVe!jB         C                    e d-¬.¦  «         G dV„ dWe¦  «        ¦   «         ZWe!jB         C                    e d-¬.¦  «         G dX„ dYe¦  «        ¦   «         ZXe!jB         C                    e d-¬.¦  «         G dZ„ d[e¦  «        ¦   «         ZYe!jB         C                    e d-¬.¦  «         G d\„ d]e¦  «        ¦   «         ZZe!jB         C                    e d-¬.¦  «         G d^„ d_e¦  «        ¦   «         Z[e!jB         C                    e d-¬.¦  «         G d`„ dae¦  «        ¦   «         Z\dS )bzLinux specific tests.é    N)Úmock)ÚLINUX)ÚAARCH64)ÚGITHUB_ACTIONS)ÚGLOBAL_TIMEOUT)ÚHAS_BATTERY)ÚHAS_CPU_FREQ)ÚHAS_GETLOADAVG)Ú
HAS_RLIMIT)ÚPYPY)ÚPYTEST_PARALLEL)ÚTOLERANCE_DISK_USAGE)ÚTOLERANCE_SYS_MEM)ÚPsutilTestCase)Ú
ThreadTask)Ú
call_until)Úpytest)Úreload_module)Úretry_on_failure)Úsafe_rmpath)Úsh)Úskip_on_not_implemented)ÚCLOCK_TICKS)ÚRootFsDeviceFinder)Úcalculate_avail_vmem)Úopen_binaryi‰  i'‰  i‰  i‰  i   c                 óv  — dd l }t          | d d…         d¦  «        } t          j        t          j        t          j        ¦  «        5 }t          j        |                     |                     ¦   «         t          t          j
        d| ¦  «        ¦  «        dd…         ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S ©Nr   é   ÚasciiÚ256sé   é   )ÚfcntlÚbytesÚsocketÚAF_INETÚ
SOCK_DGRAMÚ	inet_ntoaÚioctlÚfilenoÚSIOCGIFADDRÚstructÚpack©Úifnamer$   Úss      úM/granary/edev/quantum/lib/python3.11/site-packages/psutil/tests/test_linux.pyÚget_ipv4_addressr3   D   sÝ   € Ø€L€L€Lå�6˜#˜2˜#”; Ñ(Ô(€FÝ	Œ•v”~¥vÔ'8Ñ	9Ô	9ð 
¸QÝÔØ�KŠK˜Ÿš™
œ
¥Kµ´¸VÀVÑ1LÔ1LÑMÔMØ�2�ôñ
ô 
ð
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
ó   ÁAB.Â.B2Â5B2c                 óv  — dd l }t          | d d…         d¦  «        } t          j        t          j        t          j        ¦  «        5 }t          j        |                     |                     ¦   «         t          t          j
        d| ¦  «        ¦  «        dd…         ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r   )r$   r%   r&   r'   r(   r)   r*   r+   ÚSIOCGIFNETMASKr-   r.   r/   s      r2   Úget_ipv4_netmaskr7   P   óâ   € Ø€L€L€Lå�6˜#˜2˜#”; Ñ(Ô(€FÝ	Œ•v”~¥vÔ'8Ñ	9Ô	9ð 
¸QÝÔØ�KŠKØ—’‘
”
�N­F¬K¸ÀÑ,GÔ,Gñô à�ˆeôñ
ô 
ð
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
r4   c                 óv  — dd l }t          | d d…         d¦  «        } t          j        t          j        t          j        ¦  «        5 }t          j        |                     |                     ¦   «         t          t          j
        d| ¦  «        ¦  «        dd…         ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r   )r$   r%   r&   r'   r(   r)   r*   r+   ÚSIOCGIFBRDADDRr-   r.   r/   s      r2   Úget_ipv4_broadcastr;   \   r8   r4   c                 ót  ‡	— t          d¦  «        5 }g }|D ]7}|                     ¦   «         }|d         | k    r|                     |¦  «         Œ8t          |¦  «        dk    rt	          d| ›�¦  «        ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          |¦  «        ¦  «        D ]�}||         d         Š	ˆ	fd„t          dt          ‰	¦  «        d¦  «        D ¦   «         }d                     |¦  «        }t          j        t          j	        |¦  «        }t          j
        t          j	        |¦  «        ||<   Œ‘|S )Nz/proc/net/if_inet6éÿÿÿÿr   zcould not find interface c                 ó*   •— g | ]}‰||d z   …         ‘ŒS )é   © )Ú.0ÚjÚunformatteds     €r2   ú
<listcomp>z&get_ipv6_addresses.<locals>.<listcomp>u   s3   ø€ ð 
ð 
ð 
Ø'(ˆK˜˜A ™E˜	Ô"ð
ð 
ð 
ó    r?   ú:)ÚopenÚsplitÚappendÚlenÚ
ValueErrorÚrangeÚjoinr&   Ú	inet_ptonÚAF_INET6Ú	inet_ntop)
r0   ÚfÚ
all_fieldsÚlineÚfieldsÚiÚgroupsÚ	formattedÚpackedrC   s
            @r2   Úget_ipv6_addressesrY   h   s˜  ø€ Ý	Ð"Ñ	#Ô	#ð E qØˆ
Øð 	*ð 	*ˆDØ—Z’Z‘\”\ˆFØ�bŒz˜VÒ#Ð#Ø×!Ò! &Ñ)Ô)Ð)øåˆz‰?Œ?˜aÒÐÝÐC¸ÐCÐCÑDÔDÐDð  ðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eõ •3�z‘?”?Ñ#Ô#ð Bð BˆØ  ”m AÔ&ˆð
ð 
ð 
ð 
Ý,1°!µS¸Ñ5EÔ5EÀqÑ,IÔ,Ið
ñ 
ô 
ˆð —H’H˜VÑ$Ô$ˆ	ÝÔ!¥&¤/°9Ñ=Ô=ˆÝÔ(­¬¸&ÑAÔAˆ
�1‰ˆØÐs   ‘A"B Â BÂBc           	      ó   — dd l }t          | d d…         d¦  «        } t          j        t          j        t          j        ¦  «        5 }|                     |                     ¦   «         t          t          j	        d| ¦  «        ¦  «        }d 
                    d„ |dd…         D ¦   «         ¦  «        d d	…         cd d d ¦  «         S # 1 swxY w Y   d S )
Nr   r   r    r!   Ú c                 ó   — g | ]}|d ›d�‘Œ	S )Ú02xrF   r@   )rA   Úchars     r2   rD   z#get_mac_address.<locals>.<listcomp>†   s    € Ð?Ð?Ð?¨4˜4˜˜˜˜Ð?Ð?Ð?rE   é   r#   r=   )r$   r%   r&   r'   r(   r*   r+   ÚSIOCGIFHWADDRr-   r.   rM   )r0   r$   r1   Úinfos       r2   Úget_mac_addressrb   ~   s  € Ø€L€L€Lå�6˜#˜2˜#”; Ñ(Ô(€FÝ	Œ•v”~¥vÔ'8Ñ	9Ô	9ð F¸QØ�{Š{Ø�HŠH‰JŒJ�¥v¤{°6¸6Ñ'BÔ'Bñ
ô 
ˆð �wŠwÐ?Ð?°4¸¸2¸´;Ð?Ñ?Ô?Ñ@Ô@ÀÀ"ÀÔEð	Fð Fð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fð Fð Fs   ÁA0CÃCÃ
Cc                  óv  — t          ddgddi¬¦  «        } |                      d¦  «        }|D ]{}|                     d¦  «        rd|                     ¦   «         \  }}}}t          j        dd¦  «        } |t          |¦  «        t          |¦  «        t          |¦  «        ¦  «        c S Œ|t          d	| › �¦  «        ‚)
zQParse 'free' cmd and return swap memory's s total, used and free
    values.
    Úfreeú-bÚLANGúC.UTF-8©Úenvú
ÚSwapztotal used freez$can't find 'Swap' in 'free' output:
)r   rH   Ú
startswithÚcollectionsÚ
namedtupleÚintrK   )ÚoutÚlinesrS   Ú_ÚtotalÚusedrd   Únts           r2   Ú	free_swaprv   ‰   sÄ   € õ ˆf�dˆ^ &¨)Ð!4Ð
5Ñ
5Ô
5€CØ�IŠI�d‰OŒO€EØð 8ð 8ˆØ�?Š?˜6Ñ"Ô"ð 	8Ø#'§:¢:¡<¤<Ñ ˆAˆu�d˜DÝÔ'¨Ð0AÑBÔBˆBØ�2•c˜%‘j”j¥# d¡)¤)­S°©Y¬YÑ7Ô7Ð7Ð7Ð7ð	8õ ÐB¸SÐBÐBÑ
CÔ
CÐCrE   c                  óP  — t          ddgddi¬¦  «        } |                      d¦  «        }|D ]h}|                     d¦  «        rQd„ |                     ¦   «         d	d
…         D ¦   «         \  }}}}t          j        dd¦  «        } |||||| ¦  «        c S Œit          d| › �¦  «        ‚)zSParse 'free' cmd and return physical memory's total, used
    and free values.
    rd   re   rf   rg   rh   rj   ÚMemc              3   ó4   K  — | ]}t          |¦  «        V — Œd S ©N)ro   ©rA   Úxs     r2   ú	<genexpr>zfree_physmem.<locals>.<genexpr>£   s(   è è € Ð(KÐ(K°A­¨Q©¬Ð(KÐ(KÐ(KÐ(KÐ(KÐ(KrE   é   é   ztotal used free shared outputz#can't find 'Mem' in 'free' output:
)r   rH   rl   rm   rn   rK   )rp   rq   rS   rs   rt   rd   Úsharedru   s           r2   Úfree_physmemr�   —   sÔ   € õ ˆf�dˆ^ &¨)Ð!4Ð
5Ñ
5Ô
5€CØ�IŠI�d‰OŒO€EØð 6ð 6ˆØ�?Š?˜5Ñ!Ô!ð 	6Ø(KÐ(K¸¿º¹¼ÀaÈÀcÔ9JÐ(KÑ(KÔ(KÑ%ˆE�4˜˜vÝÔ'ØÐ7ñô ˆBð �2�e˜T 4¨°Ñ5Ô5Ð5Ð5Ð5ð	6õ ÐA¸CÐAÐAÑ
BÔ
BÐBrE   c                 ó  — t          ddgddi¬¦  «        }|                     d¦  «        D ]D}|                     ¦   «         }| |v r*t          |                     d¦  «        d         ¦  «        c S ŒEt	          d	| ›d
�¦  «        ‚)NÚvmstatz-srf   rg   rh   rj   ú r   úcan't find z in 'vmstat' output)r   rH   Ústripro   rK   )Ústatrp   rS   s      r2   rƒ   rƒ   «   s�   € Ý
ˆh˜Ð F¨IÐ#6Ð
7Ñ
7Ô
7€CØ—	’	˜$‘”ð +ð +ˆØ�zŠz‰|Œ|ˆØ�4ˆ<ˆ<Ý�t—z’z #‘” qÔ)Ñ*Ô*Ð*Ð*Ð*ð å
Ð> 4Ð>Ð>Ð>Ñ
?Ô
?Ð?rE   c            
      ó  — t          ddg¦  «                             ¦   «         } d| v rt          j        d¦  «        ‚t	          t          t          t          j        d|  	                    ¦   «         d         ¦  «        ¦  «        ¦  «        S )Nrd   z-VÚUNKNOWNzcan't determine free versionz\d+r=   )
r   r†   r   ÚskipÚtupleÚmapro   ÚreÚfindallrH   )rp   s    r2   Úget_free_version_infor�   ´   sk   € Ý
ˆf�dˆ^Ñ
Ô
×
"Ò
"Ñ
$Ô
$€CØ�CÐÐÝŒkÐ8Ñ9Ô9Ð9Ý••S�"œ* V¨S¯YªY©[¬[¸¬_Ñ=Ô=Ñ>Ô>Ñ?Ô?Ð?rE   c              #   ó�   ‡ ‡K  — ˆˆ fd„}t           Št          j        dd|¬¦  «        5 }|V — ddd¦  «         dS # 1 swxY w Y   dS )z„Mock open() builtin and forces it to return a certain content
    for a given path. `pairs` is a {"path": "content", ...} dict.
    c                 ó®   •— | ‰v rE‰|          }t          |t          ¦  «        rt          j        |¦  «        S t          j        |¦  «        S  ‰| g|¢R i |¤ŽS rz   )Ú
isinstanceÚstrÚioÚStringIOÚBytesIO)ÚnameÚargsÚkwargsÚcontentÚ	orig_openÚpairss       €€r2   Ú	open_mockz$mock_open_content.<locals>.open_mockÁ   sg   ø€ Ø�5ˆ=ˆ=Ø˜D”kˆGÝ˜'¥3Ñ'Ô'ð +Ý”{ 7Ñ+Ô+Ð+å”z 'Ñ*Ô*Ð*à�9˜TÐ3 DÐ3Ð3Ð3¨FÐ3Ð3Ð3rE   úbuiltins.openT©ÚcreateÚside_effectN©rG   r   Úpatch)rœ   r�   Úmr›   s   `  @r2   Úmock_open_contentr¥   »   s®   øøè è € ð4ð 4ð 4ð 4ð 4ð 4õ €IÝ	Œ�O¨D¸iÐ	HÑ	HÔ	Hð ÈAØˆˆˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ©;»?Á?c              #   ó”   ‡ ‡‡K  — ˆˆ ˆfd„}t           Št          j        dd|¬¦  «        5 }|V — ddd¦  «         dS # 1 swxY w Y   dS )zZMock open() builtin and raises `exc` if the path being opened
    matches `for_path`.
    c                 ó,   •— | ‰k    r‰‚ ‰| g|¢R i |¤ŽS rz   r@   )r—   r˜   r™   ÚexcÚfor_pathr›   s      €€€r2   r�   z&mock_open_exception.<locals>.open_mockÖ   s3   ø€ Ø�8ÒÐØˆIØˆy˜Ð/ Ð/Ð/Ð/¨Ð/Ð/Ð/rE   rž   TrŸ   Nr¢   )r©   r¨   r�   r¤   r›   s   ``  @r2   Úmock_open_exceptionrª   Ð   s´   øøøè è € ð0ð 0ð 0ð 0ð 0ð 0ð 0õ
 €IÝ	Œ�O¨D¸iÐ	HÑ	HÔ	Hð ÈAØˆˆˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   «=½AÁAz
LINUX only©Úreasonc                   ó¬   — e Zd Zd„ Z e¦   «         d„ ¦   «         Z e¦   «         d„ ¦   «         Z e¦   «         d„ ¦   «         Z e¦   «         d„ ¦   «         ZdS )Ú"TestSystemVirtualMemoryAgainstFreec                 ól   — t          ¦   «         j        }t          j        ¦   «         j        }||k    sJ ‚d S rz   )r�   rs   ÚpsutilÚvirtual_memory©ÚselfÚ	cli_valueÚpsutil_values      r2   Ú
test_totalz-TestSystemVirtualMemoryAgainstFree.test_totalç   s6   € Ý ‘N”NÔ(ˆ	ÝÔ,Ñ.Ô.Ô4ˆØ˜LÒ(Ð(Ð(Ð(Ð(Ð(rE   c                 ó.  — t          ¦   «         dk     rt          j        d¦  «        ‚t          ¦   «         dk    rt          j        d¦  «        ‚t          ¦   «         j        }t          j        ¦   «         j        }t          ||z
  ¦  «        t          k     sJ ‚d S )N©é   r¹   é   úfree version too old©r?   r   r   úfree version too recent)	r�   r   rŠ   r�   rt   r°   r±   Úabsr   r²   s      r2   Ú	test_usedz,TestSystemVirtualMemoryAgainstFree.test_usedì   sŠ   € õ !Ñ"Ô" ZÒ/Ð/Ý”+Ð4Ñ5Ô5Ð5Ý Ñ"Ô" iÒ/Ð/Ý”+Ð7Ñ8Ô8Ð8Ý ‘N”NÔ'ˆ	ÝÔ,Ñ.Ô.Ô3ˆÝ�9˜|Ñ+Ñ,Ô,Õ/@Ò@Ð@Ð@Ð@Ð@Ð@rE   c                 ó–   — t          ¦   «         j        }t          j        ¦   «         j        }t	          ||z
  ¦  «        t
          k     sJ ‚d S rz   )r�   rd   r°   r±   r¾   r   r²   s      r2   Ú	test_freez,TestSystemVirtualMemoryAgainstFree.test_freeþ   sD   € å ‘N”NÔ'ˆ	ÝÔ,Ñ.Ô.Ô3ˆÝ�9˜|Ñ+Ñ,Ô,Õ/@Ò@Ð@Ð@Ð@Ð@Ð@rE   c                 óø   — t          ¦   «         }|j        }|dk    rt          j        d¦  «        ‚t	          j        ¦   «         j        }t          ||z
  ¦  «        t          k     sJ |› d|› d|j        › �¦   «         ‚d S )Nr   z%free does not support 'shared' columnr„   z 
)	r�   r€   r   rŠ   r°   r±   r¾   r   Úoutput)r³   rd   Ú
free_valuerµ   s       r2   Útest_sharedz.TestSystemVirtualMemoryAgainstFree.test_shared  s…   € å‰~Œ~ˆØ”[ˆ
Ø˜Š?ˆ?Ý”+ÐEÑFÔFÐFÝÔ,Ñ.Ô.Ô5ˆå�
˜\Ñ)Ñ*Ô*Õ->Ò>Ð>Ð>ØÐ9Ð9˜<Ð9Ð9¨D¬KÐ9Ð9ñ ?Ô>Ð>Ð>Ð>rE   c                 óR  — t          ddg¦  «        }|                     d¦  «        }d|d         vrt          j        d¦  «        ‚t	          |d                              ¦   «         d         ¦  «        }t          j        ¦   «         j        }t          ||z
  ¦  «        t          k     sJ ‚d S )	Nrd   re   rj   Ú	availabler   z(free does not support 'available' columnr~   r=   )
r   rH   r   rŠ   ro   r°   r±   rÇ   r¾   r   )r³   rp   rq   rÄ   rµ   s        r2   Útest_availablez1TestSystemVirtualMemoryAgainstFree.test_available  sš   € õ �&˜$�Ñ Ô ˆØ—	’	˜$‘”ˆØ˜e AœhÐ&Ð&Ý”+ÐHÑIÔIÐIÝ˜˜qœŸšÑ)Ô)¨"Ô-Ñ.Ô.ˆ
ÝÔ,Ñ.Ô.Ô8ˆÝ�: Ñ,Ñ-Ô-Õ0AÒAÐAÐAÐAÐAÐArE   N)	Ú__name__Ú
__module__Ú__qualname__r¶   r   r¿   rÁ   rÅ   rÈ   r@   rE   r2   r®   r®   å   sÂ   € € € € € ð)ð )ð )ð
 ÐÑÔðAð Añ ÔðAð" ÐÑÔðAð Añ ÔðAð
 ÐÑÔð:ð :ñ Ôð:ð ÐÑÔð	Bð 	Bñ Ôð	Bð 	Bð 	BrE   r®   c                   óÒ   — e Zd Zd„ Z e¦   «         d„ ¦   «         Z e¦   «         d„ ¦   «         Z e¦   «         d„ ¦   «         Z e¦   «         d„ ¦   «         Z e¦   «         d„ ¦   «         Z	dS )Ú$TestSystemVirtualMemoryAgainstVmstatc                 ó”   — t          d¦  «        dz  }t          j        ¦   «         j        }t	          ||z
  ¦  «        t
          k     sJ ‚d S )Nztotal memoryé   )rƒ   r°   r±   rs   r¾   r   ©r³   Úvmstat_valuerµ   s      r2   r¶   z/TestSystemVirtualMemoryAgainstVmstat.test_total  sJ   € Ý˜nÑ-Ô-°Ñ4ˆÝÔ,Ñ.Ô.Ô4ˆÝ�< ,Ñ.Ñ/Ô/Õ2CÒCÐCÐCÐCÐCÐCrE   c                 ó,  — t          ¦   «         dk     rt          j        d¦  «        ‚t          ¦   «         dk    rt          j        d¦  «        ‚t          d¦  «        dz  }t	          j        ¦   «         j        }t          ||z
  ¦  «        t          k     sJ ‚d S )Nr¸   r»   r¼   r½   zused memoryrÏ   )	r�   r   rŠ   rƒ   r°   r±   rt   r¾   r   rÐ   s      r2   r¿   z.TestSystemVirtualMemoryAgainstVmstat.test_used#  s�   € õ !Ñ"Ô" ZÒ/Ð/Ý”+Ð4Ñ5Ô5Ð5Ý Ñ"Ô" iÒ/Ð/Ý”+Ð7Ñ8Ô8Ð8Ý˜mÑ,Ô,¨tÑ3ˆÝÔ,Ñ.Ô.Ô3ˆÝ�< ,Ñ.Ñ/Ô/Õ2CÒCÐCÐCÐCÐCÐCrE   c                 ó”   — t          d¦  «        dz  }t          j        ¦   «         j        }t	          ||z
  ¦  «        t
          k     sJ ‚d S )Nzfree memoryrÏ   )rƒ   r°   r±   rd   r¾   r   rÐ   s      r2   rÁ   z.TestSystemVirtualMemoryAgainstVmstat.test_free5  sJ   € å˜mÑ,Ô,¨tÑ3ˆÝÔ,Ñ.Ô.Ô3ˆÝ�< ,Ñ.Ñ/Ô/Õ2CÒCÐCÐCÐCÐCÐCrE   c                 ó”   — t          d¦  «        dz  }t          j        ¦   «         j        }t	          ||z
  ¦  «        t
          k     sJ ‚d S )Nzbuffer memoryrÏ   )rƒ   r°   r±   Úbuffersr¾   r   rÐ   s      r2   Útest_buffersz1TestSystemVirtualMemoryAgainstVmstat.test_buffers;  sJ   € å˜oÑ.Ô.°Ñ5ˆÝÔ,Ñ.Ô.Ô6ˆÝ�< ,Ñ.Ñ/Ô/Õ2CÒCÐCÐCÐCÐCÐCrE   c                 ó”   — t          d¦  «        dz  }t          j        ¦   «         j        }t	          ||z
  ¦  «        t
          k     sJ ‚d S )Nzactive memoryrÏ   )rƒ   r°   r±   Úactiver¾   r   rÐ   s      r2   Útest_activez0TestSystemVirtualMemoryAgainstVmstat.test_activeA  sJ   € å˜oÑ.Ô.°Ñ5ˆÝÔ,Ñ.Ô.Ô5ˆÝ�< ,Ñ.Ñ/Ô/Õ2CÒCÐCÐCÐCÐCÐCrE   c                 ó”   — t          d¦  «        dz  }t          j        ¦   «         j        }t	          ||z
  ¦  «        t
          k     sJ ‚d S )Nzinactive memoryrÏ   )rƒ   r°   r±   Úinactiver¾   r   rÐ   s      r2   Útest_inactivez2TestSystemVirtualMemoryAgainstVmstat.test_inactiveG  sK   € åÐ/Ñ0Ô0°4Ñ7ˆÝÔ,Ñ.Ô.Ô7ˆÝ�< ,Ñ.Ñ/Ô/Õ2CÒCÐCÐCÐCÐCÐCrE   N)
rÉ   rÊ   rË   r¶   r   r¿   rÁ   rÖ   rÙ   rÜ   r@   rE   r2   rÍ   rÍ     sð   € € € € € ðDð Dð Dð
 ÐÑÔðDð Dñ ÔðDð" ÐÑÔðDð Dñ ÔðDð
 ÐÑÔðDð Dñ ÔðDð
 ÐÑÔðDð Dñ ÔðDð
 ÐÑÔðDð Dñ ÔðDð Dð DrE   rÍ   c                   óR   — e Zd Zd„ Z e¦   «         d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Z	dS )ÚTestSystemVirtualMemoryMocksc                 ó¢  — t          j        d¦  «                             ¦   «         }t          d|i¦  «        5 }t	          j        d¬¦  «        5 }t	          j        d¦  «         t          j        ¦   «         }|j	        sJ ‚t          |¦  «        dk    sJ ‚|d         }dt          |j        ¦  «        v sJ ‚d	t          |j        ¦  «        v sJ ‚d
t          |j        ¦  «        v sJ ‚dt          |j        ¦  «        v sJ ‚dt          |j        ¦  «        v sJ ‚dt          |j        ¦  «        v sJ ‚dt          |j        ¦  «        v sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NaL              Active(anon):    6145416 kB
            Active(file):    2950064 kB
            Inactive(anon):   574764 kB
            Inactive(file):  1567648 kB
            MemAvailable:         -1 kB
            MemFree:         2057400 kB
            MemTotal:       16325648 kB
            SReclaimable:     346648 kB
            ú/proc/meminfoT©ÚrecordÚalwaysr~   r   z#memory stats couldn't be determinedÚcachedr€   rØ   rÛ   rÕ   rÇ   )ÚtextwrapÚdedentÚencoder¥   ÚwarningsÚcatch_warningsÚsimplefilterr°   r±   ÚcalledrJ   r“   Úmessagerä   rØ   rÛ   r€   rÕ   rÇ   Úslab©r³   rš   r¤   ÚwsÚretÚws         r2   Útest_warnings_on_missesz4TestSystemVirtualMemoryMocks.test_warnings_on_missesP  sp  € õ ”/ð 	#ñ 	ô 	÷ ’‘”ð 	õ  °Ð9Ñ:Ô:ð 	%¸aÝÔ(°Ð5Ñ5Ô5ð %¸ÝÔ% hÑ/Ô/Ð/ÝÔ+Ñ-Ô-�Ø”x���Ý˜2‘w”w !’|�|�|�|Ø�q”E�Ø<ÅÀAÄIÁÄÐNÐNÐNÐNØ¥3 q¤y¡>¤>Ð1Ð1Ð1Ð1Ø¥3 q¤y¡>¤>Ð1Ð1Ð1Ð1Ø¥3 q¤y¡>¤>Ð1Ð1Ð1Ð1Ø!¥S¨¬¡^¤^Ð3Ð3Ð3Ð3Ø ¥C¨¬	¡N¤NÐ2Ð2Ð2Ð2Ø"¥c¨!¬)¡n¤nÐ4Ð4Ð4Ð4Ø”z Q’���Ø”z Q’���Ø”| qÒ(Ð(Ð(Ð(Ø”z Q’���Ø”{ aÒ'Ð'Ð'Ð'Ø”}¨Ò)Ð)Ð)Ð)Ø”x 1’}�}�}�}�}ð'%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s6   ¸GÁEF,Æ GÆ,F0	Æ0GÆ3F0	Æ4GÇGÇGc                 óH  — i }t          d¦  «        5 }|D ]7}|                     ¦   «         }t          |d         ¦  «        dz  ||d         <   Œ8	 d d d ¦  «         n# 1 swxY w Y   t          |¦  «        }d|v r(|d         }t	          ||z
  ¦  «        |z  dz  }|dk     sJ ‚d S d S )Nrà   r~   rÏ   r   s   MemAvailable:éd   r   )r   rH   ro   r   r¾   )r³   ÚmemsrQ   rS   rT   ÚaÚbÚdiff_percents           r2   Útest_avail_old_percentz3TestSystemVirtualMemoryMocks.test_avail_old_percentt  s  € ð ˆÝ˜Ñ)Ô)ð 	8¨QØð 8ð 8�ØŸš™œ�Ý"% f¨Q¤i¡.¤.°4Ñ"7��V˜A”Y‘�ð8ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8õ
 ! Ñ&Ô&ˆØ˜tÐ#Ð#ØÐ%Ô&ˆAÝ˜q 1™u™:œ:¨™>¨CÑ/ˆLØ "Ò$Ð$Ð$Ð$ð $Ð#ð %Ð$s   ’;AÁAÁ!Ac                 ó”  — t          j        d¦  «                             ¦   «         }t          d|i¦  «        5 }t	          j        d¬¦  «        5 }t          j        ¦   «         }d d d ¦  «         n# 1 swxY w Y   |j        sJ ‚|j	        dk    sJ ‚|d         }dt          |j        ¦  «        v sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Na              Active:          9444728 kB
            Active(anon):    6145416 kB
            Active(file):    2950064 kB
            Buffers:          287952 kB
            Cached:          4818144 kB
            Inactive(file):  1578132 kB
            Inactive(anon):   574764 kB
            Inactive(file):  1567648 kB
            MemAvailable:    6574984 kB
            MemFree:         2057400 kB
            MemTotal:       16325648 kB
            Shmem:            577588 kB
            SReclaimable:     346648 kB
            rà   Trá   l     œ" r   ú,inactive memory stats couldn't be determined©rå   ræ   rç   r¥   rè   ré   r°   r±   rë   rÇ   r“   rì   rî   s         r2   Ú test_avail_old_comes_from_kernelz=TestSystemVirtualMemoryMocks.test_avail_old_comes_from_kernel„  sh  € õ ”/ð #ñ ô ÷ ’‘”ð 	õ  °Ð9Ñ:Ô:ð 	¸aÝÔ(°Ð5Ñ5Ô5ð .¸ÝÔ+Ñ-Ô-�ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .à”8ˆOˆOˆOØ”= NÒ2Ð2Ð2Ð2Ø�1”ˆAØAÅSØ”	ñFô Fð ð ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ó5   ¸B=ÁA.Á"B=Á.A2	Á2B=Á5A2	Á69B=Â=CÃCc                 ó”  — t          j        d¦  «                             ¦   «         }t          d|i¦  «        5 }t	          j        d¬¦  «        5 }t          j        ¦   «         }d d d ¦  «         n# 1 swxY w Y   |j        sJ ‚|j	        dk    sJ ‚|d         }dt          |j        ¦  «        v sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nat              Active:          9444728 kB
            Active(anon):    6145416 kB
            Buffers:          287952 kB
            Cached:          4818144 kB
            Inactive(file):  1578132 kB
            Inactive(anon):   574764 kB
            MemFree:         2057400 kB
            MemTotal:       16325648 kB
            Shmem:            577588 kB
            rà   Trá   ì    `LG r   rû   rü   rî   s         r2   Útest_avail_old_missing_fieldsz:TestSystemVirtualMemoryMocks.test_avail_old_missing_fields   si  € õ ”/ð 
#ñ 
ô 
÷ ’‘”ð 	õ  °Ð9Ñ:Ô:ð 	¸aÝÔ(°Ð5Ñ5Ô5ð .¸ÝÔ+Ñ-Ô-�ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .à”8ˆOˆOˆOØ”=Ð$CÒCÐCÐCÐCØ�1”ˆAØAÅSØ”	ñFô Fð ð ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	rþ   c                 óÜ  — t          j        d¦  «                             ¦   «         }t          d|i¦  «        5  t	          dt
          ¦  «        5  t          j        d¬¦  «        5 }t          j	        ¦   «         }|j
        dk    sJ ‚|d         }dt          |j        ¦  «        v sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )	Naì              Active:          9444728 kB
            Active(anon):    6145416 kB
            Active(file):    2950064 kB
            Buffers:          287952 kB
            Cached:          4818144 kB
            Inactive(file):  1578132 kB
            Inactive(anon):   574764 kB
            Inactive(file):  1567648 kB
            MemFree:         2057400 kB
            MemTotal:       16325648 kB
            Shmem:            577588 kB
            SReclaimable:     346648 kB
            rà   z/proc/zoneinfoTrá   r   r   rû   )rå   ræ   rç   r¥   rª   ÚFileNotFoundErrorrè   ré   r°   r±   rÇ   r“   rì   )r³   rš   rï   rð   rñ   s        r2   Útest_avail_old_missing_zoneinfoz<TestSystemVirtualMemoryMocks.test_avail_old_missing_zoneinfo¹  sÀ  € õ ”/ð #ñ ô ÷ ’‘”ð 	õ  °Ð9Ñ:Ô:ð 		ð 		Ý$Ð%5Õ7HÑIÔIð ð ÝÔ,°DÐ9Ñ9Ô9ð ¸RÝ Ô/Ñ1Ô1�CØœ=Ð,KÒKÐKÐKÐKØ˜1œ�AàFÝ˜qœy™>œ>ð*ð *ð *ð *ð *ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð		ð 		ð 		ñ 		ô 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		øøøð 		ð 		ð 		ð 		ð 		ð 		sZ   ¸C!ÁC	Á$AB2Â&C	Â2B6Â6C	Â9B6Â:C	Â=C!Ã	C	ÃC!ÃC	ÃC!Ã!C%Ã(C%c                 óÊ  — t          j        d¦  «                             ¦   «         }t          d|i¦  «        5 }t	          j        ¦   «         }|j        sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚|j	        dk    sJ ‚|j
        dk    sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚|j        d	k    sJ ‚|j        d
k    sJ ‚|j        dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Naµ              MemTotal:              100 kB
            MemFree:               2 kB
            MemAvailable:          3 kB
            Buffers:               4 kB
            Cached:                5 kB
            SwapCached:            6 kB
            Active:                7 kB
            Inactive:              8 kB
            Active(anon):          9 kB
            Inactive(anon):        10 kB
            Active(file):          11 kB
            Inactive(file):        12 kB
            Unevictable:           13 kB
            Mlocked:               14 kB
            SwapTotal:             15 kB
            SwapFree:              16 kB
            Dirty:                 17 kB
            Writeback:             18 kB
            AnonPages:             19 kB
            Mapped:                20 kB
            Shmem:                 21 kB
            Slab:                  22 kB
            SReclaimable:          23 kB
            SUnreclaim:            24 kB
            KernelStack:           25 kB
            PageTables:            26 kB
            NFS_Unstable:          27 kB
            Bounce:                28 kB
            WritebackTmp:          29 kB
            CommitLimit:           30 kB
            Committed_AS:          31 kB
            VmallocTotal:          32 kB
            VmallocUsed:           33 kB
            VmallocChunk:          34 kB
            HardwareCorrupted:     35 kB
            AnonHugePages:         36 kB
            ShmemHugePages:        37 kB
            ShmemPmdMapped:        38 kB
            CmaTotal:              39 kB
            CmaFree:               40 kB
            HugePages_Total:       41 kB
            HugePages_Free:        42 kB
            HugePages_Rsvd:        43 kB
            HugePages_Surp:        44 kB
            Hugepagesize:          45 kB
            DirectMap46k:          46 kB
            DirectMap47M:          47 kB
            DirectMap48G:          48 kB
            rà   i � i   é   i p  i T  i   i    i X  é   )rå   ræ   rç   r¥   r°   r±   rë   rs   rd   rÕ   rä   r€   rØ   rÛ   rí   rÇ   )r³   rš   r¤   Úmems       r2   Útest_virtual_memory_mockedz7TestSystemVirtualMemoryMocks.test_virtual_memory_mockedÕ  sf  € å”/ð 1#ñ 1ô 1÷b ’‘”ðc 	õd  °Ð9Ñ:Ô:ð 	-¸aÝÔ'Ñ)Ô)ˆCØ”8ˆOˆOˆOØ”9 
Ò*Ð*Ð*Ð*Ø”8˜xÒ'Ð'Ð'Ð'Ø”; (Ò*Ð*Ð*Ð*à”: Ò0Ð0Ð0Ð0Ø”: Ò*Ð*Ð*Ð*Ø”: Ò)Ð)Ð)Ð)Ø”< 8Ò+Ð+Ð+Ð+Ø”8˜yÒ(Ð(Ð(Ð(Ø”= HÒ,Ð,Ð,Ð,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð 	-ð 	-s   ¸BCÃCÃCN)
rÉ   rÊ   rË   rò   r   rù   rý   r  r  r	  r@   rE   r2   rÞ   rÞ   N  sŠ   € € € € € ð"%ð "%ð "%ðH ÐÑÔð%ð %ñ Ôð%ðð ð ð8ð ð ð2ð ð ð8@-ð @-ð @-ð @-ð @-rE   rÞ   c                   óŽ   — e Zd Zed„ ¦   «         Zd„ Z e¦   «         d„ ¦   «         Z e¦   «         d„ ¦   «         Zd„ Z	d„ Z
d„ Zd„ Zd	S )
ÚTestSystemSwapMemoryc                  óˆ   — t          d¦  «        5 } |                      ¦   «         }ddd¦  «         n# 1 swxY w Y   d|v od|v S )z3Return True if /proc/meminfo provides swap metrics.rà   Nz
SwapTotal:z	SwapFree:)rG   Úread)rQ   Údatas     r2   Úmeminfo_has_swap_infoz*TestSystemSwapMemory.meminfo_has_swap_info  s†   € õ �/Ñ"Ô"ð 	 aØ—6’6‘8”8ˆDð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à˜tÐ#Ð;¨°tÐ(;Ð;s   �1±5¸5c                 ó–   — t          ¦   «         j        }t          j        ¦   «         j        }t	          ||z
  ¦  «        t
          k     sJ ‚d S rz   )rv   rs   r°   Úswap_memoryr¾   r   ©r³   rÄ   rµ   s      r2   r¶   zTestSystemSwapMemory.test_total&  sD   € Ý‘[”[Ô&ˆ
ÝÔ)Ñ+Ô+Ô1ˆÝ�: Ñ,Ñ-Ô-Õ0AÒAÐAÐAÐAÐAÐArE   c                 ó–   — t          ¦   «         j        }t          j        ¦   «         j        }t	          ||z
  ¦  «        t
          k     sJ ‚d S rz   )rv   rt   r°   r  r¾   r   r  s      r2   r¿   zTestSystemSwapMemory.test_used+  óD   € å‘[”[Ô%ˆ
ÝÔ)Ñ+Ô+Ô0ˆÝ�: Ñ,Ñ-Ô-Õ0AÒAÐAÐAÐAÐAÐArE   c                 ó–   — t          ¦   «         j        }t          j        ¦   «         j        }t	          ||z
  ¦  «        t
          k     sJ ‚d S rz   )rv   rd   r°   r  r¾   r   r  s      r2   rÁ   zTestSystemSwapMemory.test_free1  r  rE   c                 ó¾  — t          j        dd¬¦  «        5 }t          j        d¬¦  «        5 }t          j        d¦  «         t          j        ¦   «         }|j        sJ ‚t          |¦  «        dk    sJ ‚|d         }dt          |j
        ¦  «        v sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )	Núpsutil._common.openT©r    rá   rã   r~   r   z9'sin' and 'sout' swap memory stats couldn't be determined)r   r£   rè   ré   rê   r°   r  rë   rJ   r“   rì   ÚsinÚsout©r³   r¤   rï   rð   rñ   s        r2   Útest_missing_sin_soutz*TestSystemSwapMemory.test_missing_sin_sout7  si  € ÝŒZÐ-°dÐ;Ñ;Ô;ð 	%¸qÝÔ(°Ð5Ñ5Ô5ð %¸ÝÔ% hÑ/Ô/Ð/ÝÔ(Ñ*Ô*�Ø”x���Ý˜2‘w”w !’|�|�|�|Ø�q”E�àOÝ˜1œ9‘~”~ð&ð &ð &ð &ð ”w !’|�|�|�|Ø”x 1’}�}�}�}�}ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s5   —C­B B:Â.CÂ:B>	Â>CÃB>	ÃCÃCÃCc                 ó¼  — t          dt          ¦  «        5 }t          j        d¬¦  «        5 }t          j        d¦  «         t          j        ¦   «         }|j        sJ ‚t          |¦  «        dk    sJ ‚|d         }dt          |j
        ¦  «        v sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nz/proc/vmstatTrá   rã   r~   r   zK'sin' and 'sout' swap memory stats couldn't be determined and were set to 0)rª   r  rè   ré   rê   r°   r  rë   rJ   r“   rì   r  r  r  s        r2   Útest_no_vmstat_mockedz*TestSystemSwapMemory.test_no_vmstat_mockedF  sf  € å  Õ1BÑCÔCð 	%ÀqÝÔ(°Ð5Ñ5Ô5ð %¸ÝÔ% hÑ/Ô/Ð/ÝÔ(Ñ*Ô*�Ø”x���Ý˜2‘w”w !’|�|�|�|Ø�q”E�ð6å˜1œ9‘~”~ð&ð &ð &ð &ð ”w !’|�|�|�|Ø”x 1’}�}�}�}�}ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s5   –C¬B B9Â-CÂ9B=	Â=CÃ B=	ÃCÃCÃCc                 óœ  — |                       ¦   «         st          j        d¦  «        ‚t          j        d¦  «        5 }t          j        ¦   «         }d d d ¦  «         n# 1 swxY w Y   |j        rJ ‚dd lm	} | 
                    ¦   «         \  }}}}}}}||z  }||z  }|j        |k    sJ ‚t          |j        |z
  ¦  «        t          k     sJ ‚d S )Nz!/proc/meminfo has no swap metricsz"psutil._pslinux.cext.linux_sysinfor   )r  r   rŠ   r   r£   r°   r  rë   Úpsutil._psutil_linuxÚ_psutil_linuxÚlinux_sysinfors   r¾   rd   r   )r³   r¤   ÚswapÚcextrr   rs   rd   Úunit_multipliers           r2   Útest_meminfo_against_sysinfoz1TestSystemSwapMemory.test_meminfo_against_sysinfoW  s)  € ð ×)Ò)Ñ+Ô+ð 	CÝ”+ÐAÑBÔBÐBÝŒZÐ<Ñ=Ô=ð 	(ÀÝÔ%Ñ'Ô'ˆDð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(à”8ÐÐÐØ+Ð+Ð+Ð+Ð+Ð+à37×3EÒ3EÑ3GÔ3GÑ0ˆˆ1ˆa��E˜4 Ø�Ñ ˆØ�ÑˆØŒz˜UÒ"Ð"Ð"Ð"Ý�4”9˜tÑ#Ñ$Ô$Õ'8Ò8Ð8Ð8Ð8Ð8Ð8s   ½AÁA!Á$A!c                 ó”   — t          ddi¦  «        5 }t          j        ¦   «          |j        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nrà   rE   )r¥   r°   r  rë   ©r³   r¤   s     r2   Ú#test_emulate_meminfo_has_no_metricsz8TestSystemSwapMemory.test_emulate_meminfo_has_no_metricsh  s”   € õ  °Ð5Ñ6Ô6ð 	¸!ÝÔÑ Ô Ð Ø”8ˆOˆOˆOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ’=½AÁAN)rÉ   rÊ   rË   Ústaticmethodr  r¶   r   r¿   rÁ   r  r  r&  r)  r@   rE   r2   r  r    sË   € € € € € àð<ð <ñ „\ð<ðBð Bð Bð
 ÐÑÔðBð Bñ ÔðBð
 ÐÑÔðBð Bñ ÔðBð
%ð %ð %ð%ð %ð %ð"9ð 9ð 9ð"ð ð ð ð rE   r  c                   ó   — e Zd Zd„ ZdS )ÚTestSystemCPUTimesc                 óx  — t          j        ¦   «         j        }t          j        dt          j        ¦   «         d         ¦  «        d         }t          t          t          | 
                    d¦  «        ¦  «        ¦  «        }|dk    rd|v sJ ‚nd|vsJ ‚|dk    rd|v sJ ‚nd|vsJ ‚|d	k    rd
|v sJ ‚d S d
|vsJ ‚d S )Nz\d+\.\d+\.\d+é   r   ú.)r.  é   é   Ústeal)r.  r0  r#   Úguest)r¹   r.  r   Ú
guest_nice)r°   Ú	cpu_timesÚ_fieldsr�   rŽ   ÚosÚunamer‹   rŒ   ro   rH   )r³   rT   Ú
kernel_verÚkernel_ver_infos       r2   Útest_fieldszTestSystemCPUTimes.test_fieldsx  sò   € ÝÔ!Ñ#Ô#Ô+ˆÝ”ZÐ 0µ"´(±*´*¸Q´-Ñ@Ô@ÀÔCˆ
Ý¥¥C¨×)9Ò)9¸#Ñ)>Ô)>Ñ ?Ô ?Ñ@Ô@ˆØ˜jÒ(Ð(Ø˜fÐ$Ð$Ð$Ð$Ð$à &Ð(Ð(Ð(Ð(Ø˜jÒ(Ð(Ø˜fÐ$Ð$Ð$Ð$Ð$à &Ð(Ð(Ð(Ð(Ø˜iÒ'Ð'Ø 6Ð)Ð)Ð)Ð)Ð)Ð)à vÐ-Ð-Ð-Ð-Ð-Ð-rE   N)rÉ   rÊ   rË   r;  r@   rE   r2   r,  r,  v  s#   € € € € € ð.ð .ð .ð .ð .rE   r,  c                   óÜ  — e Zd Zej                             ej                             d¦  «         d¬¦  «        d„ ¦   «         Z	ej                             ej                             d¦  «         d¬¦  «        d„ ¦   «         Z
ej                              ej        d¦  «         d	¬¦  «        d
„ ¦   «         Zej                              ej        d¦  «         d¬¦  «        d„ ¦   «         Zd„ ZdS )ÚTestSystemCPUCountLogicalú/sys/devices/system/cpu/onlinez-/sys/devices/system/cpu/online does not existr«   c                 óN  — t          d¦  «        5 }|                     ¦   «                              ¦   «         }d d d ¦  «         n# 1 swxY w Y   dt          |¦  «        v rDt	          |                     d¦  «        d         ¦  «        dz   }t          j        ¦   «         |k    sJ ‚d S d S )Nr>  ú-r~   )rG   r  r†   r“   ro   rH   r°   Ú	cpu_count)r³   rQ   Úvalues      r2   Útest_against_sysdev_cpu_onlinez8TestSystemCPUCountLogical.test_against_sysdev_cpu_onlineŒ  sØ   € õ
 Ð2Ñ3Ô3ð 	%°qØ—F’F‘H”H—N’NÑ$Ô$ˆEð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%à•#�e‘*”*ÐÐÝ˜Ÿš CÑ(Ô(¨Ô+Ñ,Ô,¨qÑ0ˆEÝÔ#Ñ%Ô%¨Ò.Ð.Ð.Ð.ð Ðà.Ð.s   �'AÁAÁ
Aú/sys/devices/system/cpuz&/sys/devices/system/cpu does not existc                 ó’   — t          j        d¦  «        }t          d„ |D ¦   «         ¦  «        }t          j        ¦   «         |k    sJ ‚d S )NrD  c                 ó<   — g | ]}t          j        d |¦  «        ®|‘ŒS )zcpu\d+$)r�   Úsearchr{   s     r2   rD   zITestSystemCPUCountLogical.test_against_sysdev_cpu_num.<locals>.<listcomp>�  s)   € ÐKÐKÐK˜1¥b¤i°
¸AÑ&>Ô&>Ð&J�QÐ&JÐ&JÐ&JrE   )r7  ÚlistdirrJ   r°   rA  )r³   ÚlsÚcounts      r2   Útest_against_sysdev_cpu_numz5TestSystemCPUCountLogical.test_against_sysdev_cpu_num—  sP   € õ
 ŒZÐ1Ñ2Ô2ˆÝÐKÐK ÐKÑKÔKÑLÔLˆÝÔÑ!Ô! UÒ*Ð*Ð*Ð*Ð*Ð*rE   Únprocznproc utility not availablec                 ót   — t          t          d¦  «        ¦  «        }t          j        d¬¦  «        |k    sJ ‚d S )Nznproc --allT©Úlogical)ro   r   r°   rA  )r³   Únums     r2   Útest_against_nprocz,TestSystemCPUCountLogical.test_against_nproc   s>   € õ •"�]Ñ#Ô#Ñ$Ô$ˆÝÔ¨Ð-Ñ-Ô-°Ò4Ð4Ð4Ð4Ð4Ð4rE   Úlscpuúlscpu utility not availablec                 ó²   — t          d¦  «        }t          d„ |                     d¦  «        D ¦   «         ¦  «        }t          j        d¬¦  «        |k    sJ ‚d S )Núlscpu -pc                 ó<   — g | ]}|                      d ¦  «        °|‘ŒS )ú#©rl   r{   s     r2   rD   z@TestSystemCPUCountLogical.test_against_lscpu.<locals>.<listcomp>¬  s)   € ÐGÐGÐG˜°Q·\²\À#Ñ5FÔ5FÐG�1ÐGÐGÐGrE   rj   TrN  )r   rJ   rH   r°   rA  )r³   rp   rP  s      r2   Útest_against_lscpuz,TestSystemCPUCountLogical.test_against_lscpu§  sZ   € õ �‰nŒnˆÝÐGÐG˜cŸiši¨™oœoÐGÑGÔGÑHÔHˆÝÔ¨Ð-Ñ-Ô-°Ò4Ð4Ð4Ð4Ð4Ð4rE   c                 óº  — dd l }|j                             ¦   «         }t          j        dt
          ¬¦  «        5 }|j                             ¦   «         |k    sJ ‚|j        sJ ‚t          j        dd¬¦  «        5 }|j                             ¦   «         �J ‚|j        dk    sJ ‚|j        d         d         dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          d	d
¦  «        5 }| 
                    ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          j        |¦  «        }t          j        d|d¬¦  «        5 }|j                             ¦   «         |k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          d	di¦  «        5 }|j                             ¦   «         |k    sJ ‚|j        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr   zpsutil._pslinux.os.sysconf©r¡   r  Tr  r.  ú
/proc/statú/proc/cpuinfoÚrb©Úreturn_valuer    rE   )Úpsutil._pslinuxÚ_pslinuxÚcpu_count_logicalr   r£   rK   rë   Ú
call_countÚ	call_argsrG   r  r”   r–   r¥   )r³   r°   Úoriginalr¤   rQ   Úcpuinfo_dataÚ	fake_files          r2   Útest_emulate_fallbacksz0TestSystemCPUCountLogical.test_emulate_fallbacks¯  s7  € ØÐÐÐà”?×4Ò4Ñ6Ô6ˆõ ŒZØ(µjð
ñ 
ô 
ð 	 àØ”?×4Ò4Ñ6Ô6¸(ÒBÐBÐBÐBØ”8ˆOˆOˆOõ ”Ð1¸$Ð?Ñ?Ô?ð 9À1Ø”×8Ò8Ñ:Ô:ÐBÐBÐBØ”| qÒ(Ð(Ð(Ð(à”{ 1”~ aÔ(¨LÒ8Ð8Ð8Ð8Ð8ð	9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9õ �o tÑ,Ô,ð (°Ø Ÿvšv™xœx�ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (åœ
 <Ñ0Ô0ˆIÝ”Ø%°IÀdðñ ô ð GàØ”×8Ò8Ñ:Ô:¸hÒFÐFÐFÐFÐFðGð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gõ # O°SÐ#9Ñ:Ô:ð  ¸aØ”×8Ò8Ñ:Ô:¸hÒFÐFÐFÐFØ”x����ð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð5	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð 	 ð 	 s¢   ¹?GÁ8ACÂ;GÃC	ÃGÃC	ÃGÃ"DÃ7GÄD	ÄGÄ
D	Ä.GÄ9 E&ÅGÅ&E*	Å*GÅ-E*	Å.GÆ)F8Æ,GÆ8F<	Æ<GÆ?F<	Ç GÇGÇGN)rÉ   rÊ   rË   r   ÚmarkÚskipifr7  ÚpathÚexistsrC  rK  ÚshutilÚwhichrQ  rY  ri  r@   rE   r2   r=  r=  Š  sO  € € € € € à„[×ÒØŒG�NŠNÐ;Ñ<Ô<Ð<Ø>ð ñ ô ð/ð /ñ	ô ð/ð „[×ÒØŒG�NŠNÐ4Ñ5Ô5Ð5Ø7ð ñ ô ð+ð +ñ	ô ð+ð
 „[×ÒØˆFŒL˜Ñ!Ô!Ð!Ð*Gð ñ ô ð5ð 5ñô ð5ð „[×ÒØˆFŒL˜Ñ!Ô!Ð!Ð*Gð ñ ô ð5ð 5ñô ð5ð
" ð " ð " ð " ð " rE   r=  c                   óä   — e Zd Zej                              ej        d¦  «         d¬¦  «        d„ ¦   «         Zej                              e	j
        ¦   «         dvd¬¦  «        d„ ¦   «         Zd„ Zd	S )
ÚTestSystemCPUCountCoresrR  rS  r«   c                 óJ  — t          d¦  «        }t          ¦   «         }|                     d¦  «        D ]G}|                     d¦  «        s0|                     d¦  «        }|                     |d         ¦  «         ŒHt          j        d¬¦  «        t          |¦  «        k    sJ ‚d S )NrU  rj   rW  ú,r~   FrN  )r   ÚsetrH   rl   Úaddr°   rA  rJ   )r³   rp   Úcore_idsrS   rT   s        r2   rY  z*TestSystemCPUCountCores.test_against_lscpuÖ  s–   € õ �‰nŒnˆÝ‘5”5ˆØ—I’I˜d‘O”Oð 	(ð 	(ˆDØ—?’? 3Ñ'Ô'ð (ØŸš C™œ�Ø—’˜V AœYÑ'Ô'Ð'øÝÔ¨Ð.Ñ.Ô.µ#°h±-´-Ò?Ð?Ð?Ð?Ð?Ð?rE   >   Úi686Úx86_64zx86_64/i686 onlyc                 ó  — t           j                             ¦   «         }t          j        dg ¬¦  «        5 }t           j                             ¦   «         }|j        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   |�||k    sJ ‚d S d S )Nú	glob.glob©r`  )r°   rb  Úcpu_count_coresr   r£   rë   )r³   Úmeth_1r¤   Úmeth_2s       r2   Útest_method_2z%TestSystemCPUCountCores.test_method_2â  sÅ   € õ ”×0Ò0Ñ2Ô2ˆÝŒZ˜°"Ð5Ñ5Ô5ð 	¸Ý”_×4Ò4Ñ6Ô6ˆFØ”8ˆOˆOˆOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ÐØ˜VÒ#Ð#Ð#Ð#ð ÐØ#Ð#s   µ(A*Á*A.Á1A.c                 ó$  — t          j        dg ¬¦  «        5 }t          j        dd¬¦  «        5 }t          j                             ¦   «         �J ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |j        sJ ‚|j        sJ ‚d S )Nrz  r{  r  Tr  )r   r£   r°   rb  r|  rë   )r³   Úm1Úm2s      r2   Útest_emulate_nonez)TestSystemCPUCountCores.test_emulate_noneí  s2  € ÝŒZ˜°"Ð5Ñ5Ô5ð 	A¸Ý”Ð1¸$Ð?Ñ?Ô?ð AÀ2Ý”×6Ò6Ñ8Ô8Ð@Ð@Ð@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Að	Að 	Að 	Añ 	Aô 	Að 	Að 	Að 	Að 	Að 	Að 	Aøøøð 	Að 	Að 	Að 	Að ŒyÐÐÐØŒyÐÐÐÐÐs4   —A3®!AÁA3ÁA 	Á A3Á#A 	Á$A3Á3A7Á:A7N)rÉ   rÊ   rË   r   rj  rk  rn  ro  rY  ÚplatformÚmachiner  rƒ  r@   rE   r2   rq  rq  Ô  sº   € € € € € à„[×ÒØˆFŒL˜Ñ!Ô!Ð!Ð*Gð ñ ô ð@ð @ñô ð@ð „[×ÒØˆÔÑÔÐ"4Ð4Ð=Oð ñ ô ð$ð $ñô ð$ðð ð ð ð rE   rq  c                   ó  — e Zd Zej                             e d¬¦  «        ej                             ed¬¦  «        d„ ¦   «         ¦   «         Zej                             e d¬¦  «        ej                             ed¬¦  «        d„ ¦   «         ¦   «         Z	ej                             e d¬¦  «        d„ ¦   «         Z
ej                             e d¬¦  «        d„ ¦   «         Zej                             e d¬¦  «        d	„ ¦   «         Zd
S )ÚTestSystemCPUFrequencyúnot supportedr«   z(aarch64 does not always expose frequencyc                 óÀ   ‡— ˆfd„}t           j        j        Št          j        d|d¬¦  «        5  t          j        ¦   «         sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 óH   •— |                       d¦  «        rdS  ‰| ¦  «        S )Nú&/sys/devices/system/cpu/cpufreq/policyFrX  )rl  Úorig_existss    €r2   Úpath_exists_mockzMTestSystemCPUFrequency.test_emulate_use_second_file.<locals>.path_exists_mocký  s-   ø€ Ø�ŠÐGÑHÔHð )Ø�uà"�{ 4Ñ(Ô(Ð(rE   úos.path.existsT)r¡   r    )r7  rl  rm  r   r£   r°   Úcpu_freq)r³   r�  rŒ  s     @r2   Útest_emulate_use_second_filez3TestSystemCPUFrequency.test_emulate_use_second_file÷  sÃ   ø€ ð	)ð 	)ð 	)ð 	)ð 	)õ ”g”nˆÝŒZØÐ*:À4ð
ñ 
ô 
ð 	%ð 	%õ ”?Ñ$Ô$Ð$Ð$Ð$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s   ¯AÁAÁAz,aarch64 does not report mhz in /proc/cpuinfoc                 óZ  ‡— ˆfd„}t           j        j        Š	 t          j        d|¬¦  «        5  t          t          j        ¦  «         t          j        ¦   «         }|s
J |¦   «         ‚|j	        dk    sJ ‚|j
        dk    sJ ‚t          j        d¬¦  «        D ]}|j	        dk    sJ ‚|j
        dk    sJ ‚Œ	 d d d ¦  «         n# 1 swxY w Y   t          t          j        ¦  «         t          t          ¦  «         d S # t          t          j        ¦  «         t          t          ¦  «         w xY w)Nc                 óH   •— |                       d¦  «        rdS  ‰| ¦  «        S )Nz/sys/devices/system/cpu/FrX  )rl  Úos_path_existss    €r2   r�  zITestSystemCPUFrequency.test_emulate_use_cpuinfo.<locals>.path_exists_mock  s-   ø€ Ø�ŠÐ9Ñ:Ô:ð ,Ø�uà%�~ dÑ+Ô+Ð+rE   rŽ  r[  ç        T©Úpercpu)r7  rl  rm  r   r£   r   r°   rb  r�  ÚmaxÚmin)r³   r�  rð   Úfreqr“  s       @r2   Útest_emulate_use_cpuinfoz/TestSystemCPUFrequency.test_emulate_use_cpuinfo	  sp  ø€ ð	,ð 	,ð 	,ð 	,ð 	,õ œœˆð	"Ý”Ð,Ð:JÐKÑKÔKð +ð +Ý�fœoÑ.Ô.Ð.Ý”oÑ'Ô'�Ø��˜C‘”�Ø”w #’~�~�~�~Ø”w #’~�~�~�~Ý"œO°4Ð8Ñ8Ô8ð +ð +�DØœ8 sš?˜?˜?˜?Øœ8 sš?˜?˜?˜?˜?ð+ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +õ �&œ/Ñ*Ô*Ð*Ý�&Ñ!Ô!Ð!Ð!Ð!øõ �&œ/Ñ*Ô*Ð*Ý�&Ñ!Ô!Ð!Ð!øøøs/   ™C; ¯BCÂ5C; ÃCÃC; ÃCÃ	C; Ã;/D*c                 óz  ‡— ˆfd„}t           Št          j        d|¬¦  «        5  t          j        dd¬¦  «        5  t          j        ¦   «         }|j        dk    sJ ‚|j        dk    r|j        d	k    sJ ‚|j        dk    r|j        d
k    sJ ‚d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 óÄ  •— |                       d¦  «        r)|                      d¦  «        rt          j        d¦  «        S |                       d¦  «        r)|                      d¦  «        rt          j        d¦  «        S |                       d¦  «        r)|                      d¦  «        rt          j        d¦  «        S | dk    rt          j        d	¦  «        S  ‰| g|¢R i |¤ŽS )
Nú/scaling_cur_freqr‹  ó   500000ú/scaling_min_freqó   600000ú/scaling_max_freqs   700000r]  s   cpu MHz     : 500©Úendswithrl   r”   r–   ©r—   r˜   r™   r›   s      €r2   r�   z;TestSystemCPUFrequency.test_emulate_data.<locals>.open_mock'  sü   ø€ Ø�}Š}Ð0Ñ1Ô1ð 8°d·o²oØ8ñ7ô 7ð 8õ ”z )Ñ,Ô,Ð,Ø—’Ð2Ñ3Ô3ð 8¸¿ºØ8ñ9ô 9ð 8õ ”z )Ñ,Ô,Ð,Ø—’Ð2Ñ3Ô3ð 8¸¿ºØ8ñ9ô 9ð 8õ ”z )Ñ,Ô,Ð,Ø˜Ò(Ð(Ý”zÐ"6Ñ7Ô7Ð7à �y Ð7¨Ð7Ð7Ð7°Ð7Ð7Ð7rE   rž   r[  rŽ  Tr{  ç     @@r”  ç     À‚@g     à…@©rG   r   r£   r°   r�  Úcurrentr˜  r—  ©r³   r�   r™  r›   s      @r2   Útest_emulate_dataz(TestSystemCPUFrequency.test_emulate_data%  se  ø€ ð	8ð 	8ð 	8ð 	8ð 	8õ$ ˆ	ÝŒZ˜°YÐ?Ñ?Ô?ð 		-ð 		-Ý”Ð,¸4Ð@Ñ@Ô@ð -ð -Ý”Ñ(Ô(�Ø”| uÒ,Ð,Ð,Ð,ð ”8˜s’?�?Øœ8 uÒ,Ð,Ð,Ð,Ø”8˜s’?�?Øœ8 uÒ,Ð,Ð,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð		-ð 		-ð 		-ñ 		-ô 		-ð 		-ð 		-ð 		-ð 		-ð 		-ð 		-ð 		-øøøð 		-ð 		-ð 		-ð 		-ð 		-ð 		-s5   ¤B0»ABÂB0ÂB	ÂB0ÂB	Â B0Â0B4Â7B4c                 óÌ  ‡— ˆfd„}t           Št          j        d|¬¦  «        5  t          j        dd¬¦  «        5  t          j        dd¬¦  «        5  t          j        d¬	¦  «        }|d
         j        dk    sJ ‚|d
         j        dk    r|d
         j        dk    sJ ‚|d
         j        dk    r|d
         j        dk    sJ ‚|d         j        dk    sJ ‚|d         j        dk    r|d         j        dk    sJ ‚|d         j        dk    r|d         j        dk    sJ ‚d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó<  •— | }|                      d¦  «        r)|                     d¦  «        rt          j        d¦  «        S |                      d¦  «        r)|                     d¦  «        rt          j        d¦  «        S |                      d¦  «        r)|                     d¦  «        rt          j        d¦  «        S |                      d¦  «        r)|                     d¦  «        rt          j        d	¦  «        S |                      d¦  «        r)|                     d¦  «        rt          j        d
¦  «        S |                      d¦  «        r)|                     d¦  «        rt          j        d¦  «        S | dk    rt          j        d¦  «        S  ‰| g|¢R i |¤ŽS )Nr�  z'/sys/devices/system/cpu/cpufreq/policy0s   100000rŸ  ó   200000r¡  s   300000z'/sys/devices/system/cpu/cpufreq/policy1s   400000rž  r   r]  s#   cpu MHz     : 100
cpu MHz     : 400r¢  )r—   r˜   r™   Únr›   s       €r2   r�   z@TestSystemCPUFrequency.test_emulate_multi_cpu.<locals>.open_mockG  s¾  ø€ ØˆAØ�zŠzÐ-Ñ.Ô.ð 8°1·<²<Ø9ñ4ô 4ð 8õ ”z )Ñ,Ô,Ð,Ø—’Ð/Ñ0Ô0ð 8°Q·\²\Ø9ñ6ô 6ð 8õ ”z )Ñ,Ô,Ð,Ø—’Ð/Ñ0Ô0ð 8°Q·\²\Ø9ñ6ô 6ð 8õ ”z )Ñ,Ô,Ð,Ø—’Ð/Ñ0Ô0ð 8°Q·\²\Ø9ñ6ô 6ð 8õ ”z )Ñ,Ô,Ð,Ø—’Ð/Ñ0Ô0ð 8°Q·\²\Ø9ñ6ô 6ð 8õ ”z )Ñ,Ô,Ð,Ø—’Ð/Ñ0Ô0ð 8°Q·\²\Ø9ñ6ô 6ð 8õ ”z )Ñ,Ô,Ð,Ø˜Ò(Ð(Ý”zÐ"IÑJÔJÐJà �y Ð7¨Ð7Ð7Ð7°Ð7Ð7Ð7rE   rž   r[  rŽ  Tr{  ú!psutil._pslinux.cpu_count_logicalr.  r•  r   ç      Y@r”  g      i@g     Àr@r~   g      y@r¥  r¦  r§  r©  s      @r2   Útest_emulate_multi_cpuz-TestSystemCPUFrequency.test_emulate_multi_cpuE  sZ  ø€ ð	8ð 	8ð 	8ð 	8ð 	8õ> ˆ	ÝŒZ˜°YÐ?Ñ?Ô?ð 	4ð 	4Ý”Ð,¸4Ð@Ñ@Ô@ð 4ð 4Ý”ZØ7Àaðñ ô ð 4ð 4õ "œ?°$Ð7Ñ7Ô7�DØ œ7œ?¨eÒ3Ð3Ð3Ð3Ø˜A”w”{ cÒ)Ð)Ø# Aœwœ{¨eÒ3Ð3Ð3Ð3Ø˜A”w”{ cÒ)Ð)Ø# Aœwœ{¨eÒ3Ð3Ð3Ð3Ø œ7œ?¨eÒ3Ð3Ð3Ð3Ø˜A”w”{ cÒ)Ð)Ø# Aœwœ{¨eÒ3Ð3Ð3Ð3Ø˜A”w”{ cÒ)Ð)Ø# Aœwœ{¨eÒ3Ð3Ð3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4sY   ¤E»EÁCD*ÄEÄ*D.Ä.EÄ1D.Ä2EÄ5EÅE	ÅEÅE	Å	EÅEÅ Ec                 óx  ‡— ˆfd„}t           Št          j        d|¬¦  «        5  t          j        dd¬¦  «        5  t          j        dd¬¦  «        5  t          j        ¦   «         }|j        d	k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )
Nc                 óÚ   •— |                       d¦  «        rt          ‚|                       d¦  «        rt          j        d¦  «        S | dk    rt          j        d¦  «        S  ‰| g|¢R i |¤ŽS )Nr�  z/cpuinfo_cur_freqr­  r]  s   cpu MHz     : 200)r£  r  r”   r–   r¤  s      €r2   r�   zOTestSystemCPUFrequency.test_emulate_no_scaling_cur_freq_file.<locals>.open_mock{  s   ø€ Ø�}Š}Ð0Ñ1Ô1ð (Ý'Ð'Ø�}Š}Ð0Ñ1Ô1ð 8Ý”z )Ñ,Ô,Ð,Ø˜Ò(Ð(Ý”zÐ"6Ñ7Ô7Ð7à �y Ð7¨Ð7Ð7Ð7°Ð7Ð7Ð7rE   rž   r[  rŽ  Tr{  r¯  r~   éÈ   )rG   r   r£   r°   r�  r¨  r©  s      @r2   Ú%test_emulate_no_scaling_cur_freq_filez<TestSystemCPUFrequency.test_emulate_no_scaling_cur_freq_filex  s�  ø€ ð	8ð 	8ð 	8ð 	8ð 	8õ ˆ	ÝŒZ˜°YÐ?Ñ?Ô?ð 	/ð 	/Ý”Ð,¸4Ð@Ñ@Ô@ð /ð /Ý”ZØ7Àaðñ ô ð /ð /õ "œ?Ñ,Ô,�DØœ<¨3Ò.Ð.Ð.Ð.Ð.ð	/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð 	/ð 	/sX   ¤B/»BÁ!B Á4BÂ BÂBÂBÂBÂB/ÂB	ÂB/ÂB	ÂB/Â/B3Â6B3N)rÉ   rÊ   rË   r   rj  rk  r	   r   r�  rš  rª  r±  rµ  r@   rE   r2   r‡  r‡  õ  sp  € € € € € à„[×Ò˜LÐ(°ÐÑAÔAØ„[×ÒØÐBð ñ ô ð%ð %ñô ñ BÔAð%ð „[×Ò˜LÐ(°ÐÑAÔAØ„[×ÒØÐFð ñ ô ð"ð "ñô ñ BÔAð"ð0 „[×Ò˜LÐ(°ÐÑAÔAð-ð -ñ BÔAð-ð> „[×Ò˜LÐ(°ÐÑAÔAð04ð 04ñ BÔAð04ðd „[×Ò˜LÐ(°ÐÑAÔAð/ð /ñ BÔAð/ð /ð /rE   r‡  c                   ó   — e Zd Zd„ ZdS )ÚTestSystemCPUStatsc                 ó„   — t          d¦  «        }t          j        ¦   «         j        }t	          ||z
  ¦  «        dk     sJ ‚d S )NÚ
interruptsiô  )rƒ   r°   Ú	cpu_statsr¹  r¾   rÐ   s      r2   Útest_interruptsz"TestSystemCPUStats.test_interrupts˜  sD   € Ý˜lÑ+Ô+ˆÝÔ'Ñ)Ô)Ô4ˆÝ�< ,Ñ.Ñ/Ô/°#Ò5Ð5Ð5Ð5Ð5Ð5rE   N)rÉ   rÊ   rË   r»  r@   rE   r2   r·  r·  �  s#   € € € € € ð6ð 6ð 6ð 6ð 6rE   r·  c                   óZ   — e Zd Zej                             e d¬¦  «        d„ ¦   «         ZdS )ÚTestLoadAvgrˆ  r«   c                 óì  — t          j        ¦   «         }t          d¦  «        5 }|                     ¦   «                              ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          t          |d         ¦  «        |d         z
  ¦  «        dk     sJ ‚t          t          |d         ¦  «        |d         z
  ¦  «        dk     sJ ‚t          t          |d         ¦  «        |d         z
  ¦  «        dk     sJ ‚d S )Nz/proc/loadavgr   r~   r.  )r°   Ú
getloadavgrG   r  rH   r¾   Úfloat)r³   rµ   rQ   Ú
proc_values       r2   Útest_getloadavgzTestLoadAvg.test_getloadavg   s  € åÔ(Ñ*Ô*ˆÝ�/Ñ"Ô"ð 	* aØŸš™œŸšÑ)Ô)ˆJð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*õ •5˜ AœÑ'Ô'¨,°q¬/Ñ9Ñ:Ô:¸QÒ>Ð>Ð>Ð>Ý•5˜ AœÑ'Ô'¨,°q¬/Ñ9Ñ:Ô:¸QÒ>Ð>Ð>Ð>Ý•5˜ AœÑ'Ô'¨,°q¬/Ñ9Ñ:Ô:¸QÒ>Ð>Ð>Ð>Ð>Ð>s   £'AÁAÁAN)rÉ   rÊ   rË   r   rj  rk  r
   rÂ  r@   rE   r2   r½  r½  ž  sG   € € € € € à„[×Ò˜NÐ*°?ÐÑCÔCð?ð ?ñ DÔCð?ð ?ð ?rE   r½  c                   ó   — e Zd Zd„ ZdS )ÚTestSystemNetIfAddrsc                 ó\  — t          j        ¦   «                              ¦   «         D �]\  }}|D ]û}|j        t           j        k    r|j        t          |¦  «        k    sJ ‚Œ2|j        t          j        k    rl|j        t          |¦  «        k    sJ ‚|j
        t          |¦  «        k    sJ ‚|j        �|j        t          |¦  «        k    sJ ‚Œ�t          |¦  «        dk    sJ ‚Œ³|j        t          j        k    r3|j                             d¦  «        d         }|t!          |¦  «        v sJ ‚Œü�Œd S )Nz0.0.0.0ú%r   )r°   Únet_if_addrsÚitemsÚfamilyÚAF_LINKÚaddressrb   r&   r'   r3   Únetmaskr7   Ú	broadcastr;   rO   rH   rY   )r³   r—   ÚaddrsÚaddrrË  s        r2   Útest_ipszTestSystemNetIfAddrs.test_ips²  sE  € Ý!Ô.Ñ0Ô0×6Ò6Ñ8Ô8ð 	?ñ 	?‰KˆD�%Øð ?ð ?�Ø”;¥&¤.Ò0Ð0Øœ<­?¸4Ñ+@Ô+@Ò@Ð@Ð@Ð@Ð@Ø”[¥F¤NÒ2Ð2Øœ<Õ+;¸DÑ+AÔ+AÒAÐAÐAÐAØœ<Õ+;¸DÑ+AÔ+AÒAÐAÐAÐAØ”~Ð1Ø#œ~Õ1CÀDÑ1IÔ1IÒIÐIÐIÐIÐIå1°$Ñ7Ô7¸9ÒDÐDÐDÐDÐDØ”[¥F¤OÒ3Ð3ð #œl×0Ò0°Ñ5Ô5°aÔ8�GØ"Õ&8¸Ñ&>Ô&>Ð>Ð>Ð>Ð>øñ%?ð	?ð 	?rE   N)rÉ   rÊ   rË   rÐ  r@   rE   r2   rÄ  rÄ  °  s#   € € € € € ð?ð ?ð ?ð ?ð ?rE   rÄ  c                   óä   — e Zd Zej                              ej        d¦  «         d¬¦  «        d„ ¦   «         Zd„ Z	ej                              ej        d¦  «         d¬¦  «        d„ ¦   «         Z
dS )ÚTestSystemNetIfStatsÚifconfigúifconfig utility not availabler«   c                 ó6  — t          j        ¦   «                              ¦   «         D ]r\  }}	 t          d|› �¦  «        }|j        d|v k    s
J |¦   «         ‚|j        t          t          j        d|¦  «        d         ¦  «        k    sJ ‚Œc# t          $ r Y Œow xY wd S )Nú	ifconfig ÚRUNNINGz(?i)MTU[: ](\d+)r   )
r°   Únet_if_statsrÈ  r   ÚisupÚmturo   r�   rŽ   ÚRuntimeError)r³   r—   Ústatsrp   s       r2   Útest_against_ifconfigz*TestSystemNetIfStats.test_against_ifconfigÛ  sÔ   € õ "Ô.Ñ0Ô0×6Ò6Ñ8Ô8ð 		ð 		‰KˆD�%ðÝÐ+ TÐ+Ð+Ñ,Ô,�ð ”z i°3Ð&6Ò7Ð7Ð7¸Ñ7Ô7Ð7Ø”y¥CÝ”JÐ2°CÑ8Ô8¸Ô;ñ%ô %ò ð ð ð ð øõ	  ð ð ð Ø�ðøøøð		ð 		s   ¬B	Â	
BÂBc                 ó0  — t          j        ¦   «                              ¦   «         D ]o\  }}t          d|› d�¦  «        5 }|j        t          |                     ¦   «                              ¦   «         ¦  «        k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   Œpd S )Nz/sys/class/net/z/mtu)r°   rØ  rÈ  rG   rÚ  ro   r  r†   )r³   r—   rÜ  rQ   s       r2   Útest_mtuzTestSystemNetIfStats.test_mtuê  sÑ   € Ý!Ô.Ñ0Ô0×6Ò6Ñ8Ô8ð 	:ð 	:‰KˆD�%ÝÐ2¨Ð2Ð2Ð2Ñ3Ô3ð :°qØ”y¥C¨¯ª©¬¯ªÑ(8Ô(8Ñ$9Ô$9Ò9Ð9Ð9Ð9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :øð	:ð 	:s   ¾?B
Â
B	ÂB	c                 ó¶  — d}t          j        ¦   «                              ¦   «         D �]˜\  }}	 t          d|› �¦  «        }t	          j        d|¦  «        }|r¡t          |                     ¦   «         ¦  «        dk    r||dz  }t          | 	                    d¦  «         
                    ¦   «                              d¦  «        ¦  «        }t          |j                             d¦  «        ¦  «        }||k    sJ ‚ŒÑt	          j        d|¦  «        }|rŸt          |                     ¦   «         ¦  «        dk    rz|dz  }t          | 	                    d¦  «         
                    ¦   «                              ¦   «         ¦  «        }t          |j                             d¦  «        ¦  «        }||k    sJ ‚�Œ‰# t          $ r Y �Œ–w xY w|s|                      d	¦  «        ‚d S )
Nr   rÖ  zflags=(\d+)?<(.*?)>r.  r~   rs  z(.*)  MTU:(\d+)  Metric:(\d+)r¹   zno matches were found)r°   rØ  rÈ  r   r�   rG  rJ   rV   rt  ÚgroupÚlowerrH   ÚflagsrÛ  Úfail)r³   Úmatches_foundr—   rÜ  rp   ÚmatchÚifconfig_flagsÚpsutil_flagss           r2   Ú
test_flagszTestSystemNetIfStats.test_flagsï  sÕ  € ð ˆÝ!Ô.Ñ0Ô0×6Ò6Ñ8Ô8ð 	>ñ 	>‰KˆD�%ð>ÝÐ+ TÐ+Ð+Ñ,Ô,�õ œ	Ð"8¸#Ñ>Ô>�Øð >�S §¢¡¤Ñ0Ô0°AÒ5Ð5Ø! QÑ&�MÝ%(¨¯ª°Q©¬×)=Ò)=Ñ)?Ô)?×)EÒ)EÀcÑ)JÔ)JÑ%KÔ%K�NÝ#& u¤{×'8Ò'8¸Ñ'=Ô'=Ñ#>Ô#>�LØ)¨\Ò9Ð9Ð9Ð9Ð9õ œIÐ&FÈÑLÔL�EØð >¥ U§\¢\¡^¤^Ñ!4Ô!4¸Ò!9Ð!9Ø%¨Ñ*˜Ý),¨U¯[ª[¸©^¬^×-AÒ-AÑ-CÔ-C×-IÒ-IÑ-KÔ-KÑ)LÔ)L˜Ý'*¨5¬;×+<Ò+<¸SÑ+AÔ+AÑ'BÔ'B˜Ø-°Ò=Ð=Ð=Ð=ùøõ#  ð ð ð Ø‘ðøøøð& ð 	5Ø—)’)Ð3Ñ4Ô4Ð4ð	5ð 	5s   ¯F1Æ1
F?Æ>F?N)rÉ   rÊ   rË   r   rj  rk  rn  ro  rÝ  rß  ré  r@   rE   r2   rÒ  rÒ  Ù  sµ   € € € € € à„[×ÒØˆFŒL˜Ñ$Ô$Ð$Ð-Mð ñ ô ð
ð 
ñô ð
ð:ð :ð :ð
 „[×ÒØˆFŒL˜Ñ$Ô$Ð$Ð-Mð ñ ô ð5ð 5ñô ð5ð 5ð 5rE   rÒ  c                   ó–   — e Zd Zej                              ej        d¦  «         d¬¦  «         e¦   «         d„ ¦   «         ¦   «         Z	dS )ÚTestSystemNetIOCountersrÓ  rÔ  r«   c                 óÚ  — d„ }t          j        dd¬¦  «        }|                     ¦   «         D �];\  }}	  ||¦  «        }n# t          $ r Y Œw xY wt	          |j        |d         z
  ¦  «        dk     sJ ‚t	          |j        |d         z
  ¦  «        dk     sJ ‚t	          |j        |d         z
  ¦  «        d	k     sJ ‚t	          |j        |d
         z
  ¦  «        d	k     sJ ‚t	          |j	        |d         z
  ¦  «        dk     sJ ‚t	          |j
        |d         z
  ¦  «        dk     sJ ‚t	          |j        |d         z
  ¦  «        dk     sJ ‚t	          |j        |d         z
  ¦  «        dk     sJ ‚�Œ=d S )Nc                 óÞ  — i }t          d| › �¦  «        }t          t          j        d|¦  «        d         ¦  «        |d<   t          t          j        d|¦  «        d         ¦  «        |d<   t          t          j        d|¦  «        d         ¦  «        |d<   t          t          j        d|¦  «        d	         ¦  «        |d
<   t          t          j        d|¦  «        d         ¦  «        |d<   t          t          j        d|¦  «        d	         ¦  «        |d<   t          t          j        d|¦  «        d         ¦  «        |d<   t          t          j        d|¦  «        d         ¦  «        |d<   |S )NrÖ  zRX packets[: ](\d+)r   Úpackets_recvzTX packets[: ](\d+)Úpackets_sentzerrors[: ](\d+)Úerrinr~   Úerroutzdropped[: ](\d+)ÚdropinÚdropoutz#RX (?:packets \d+ +)?bytes[: ](\d+)Ú
bytes_recvz#TX (?:packets \d+ +)?bytes[: ](\d+)Ú
bytes_sent)r   ro   r�   rŽ   )Únicrð   rp   s      r2   rÓ  z?TestSystemNetIOCounters.test_against_ifconfig.<locals>.ifconfig  sZ  € ØˆCÝÐ& Ð&Ð&Ñ'Ô'ˆCÝ"%Ý”
Ð1°3Ñ7Ô7¸Ô:ñ#ô #ˆC�Ñõ #&Ý”
Ð1°3Ñ7Ô7¸Ô:ñ#ô #ˆC�Ñõ �rœzÐ*<¸cÑBÔBÀ1ÔEÑFÔFˆC�‰LÝ¥¤
Ð+=¸sÑ CÔ CÀAÔ FÑGÔGˆC�‰MÝ¥¤
Ð+>ÀÑ DÔ DÀQÔ GÑHÔHˆC�‰MÝ ¥¤Ð,?ÀÑ!EÔ!EÀaÔ!HÑIÔIˆC�	‰NÝ #Ý”
ÐAÀ3ÑGÔGÈÔJñ!ô !ˆC�Ñõ !$Ý”
ÐAÀ3ÑGÔGÈÔJñ!ô !ˆC�Ñð ˆJrE   TF)ÚpernicÚnowraprô  i (  rõ  rî  rÏ   rï  rð  é
   rñ  rò  ró  )r°   Únet_io_countersrÈ  rÛ  r¾   rô  rõ  rî  rï  rð  rñ  rò  ró  )r³   rÓ  Únior—   rÜ  Úifconfig_rets         r2   rÝ  z-TestSystemNetIOCounters.test_against_ifconfig  s¼  € ð
	ð 	ð 	õ* Ô$¨D¸Ð?Ñ?Ô?ˆØŸ9š9™;œ;ð 	Eñ 	E‰KˆD�%ðØ'˜x¨™~œ~��øÝð ð ð Ø�ðøøøõ �EÔ$ |°LÔ'AÑAÑBÔBÀYÒNÐNÐNÐNõ �EÔ$ |°LÔ'AÑAÑBÔBÀYÒNÐNÐNÐNõ �EÔ&¨°nÔ)EÑEÑFÔFÈÒMÐMÐMÐMõ �EÔ&¨°nÔ)EÑEÑFÔFÈÒMÐMÐMÐMå�u”{ \°'Ô%:Ñ:Ñ;Ô;¸bÒ@Ð@Ð@Ð@Ý�u”| l°8Ô&<Ñ<Ñ=Ô=ÀÒBÐBÐBÐBÝ�u”| l°8Ô&<Ñ<Ñ=Ô=ÀÒBÐBÐBÐBÝ�u”} |°IÔ'>Ñ>Ñ?Ô?À"ÒDÐDÐDÐDÑDð)	Eð 	Es   µAÁ
AÁAN)
rÉ   rÊ   rË   r   rj  rk  rn  ro  r   rÝ  r@   rE   r2   rë  rë    sw   € € € € € à„[×ÒØˆFŒL˜Ñ$Ô$Ð$Ð-Mð ñ ô ð ÐÑÔð+Eð +Eñ Ôñô ð+Eð +Eð +ErE   rë  c                   óz   — e Zd Z ej        de¬¦  «         ej        dd¬¦  «        d„ ¦   «         ¦   «         Zd„ ZdS )	ÚTestSystemNetConnectionsz psutil._pslinux.socket.inet_ntopr[  zpsutil._pslinux.supports_ipv6Fr{  c                 ó  — 	 t          j         t           j        t           j        ¦  «        }|                      |j        ¦  «         |                     d¦  «         n# t          $ r Y nw xY wt          j        d¬¦  «         d S )N)z::1r   Úinet6©Úkind)	r&   rO   ÚSOCK_STREAMÚ
addCleanupÚcloseÚbindÚOSErrorr°   Únet_connections)r³   Úsupports_ipv6rP   r1   s       r2   Útest_emulate_ipv6_unsupportedz6TestSystemNetConnections.test_emulate_ipv6_unsupportedF  s€   € ð	Ý”�fœo­vÔ/AÑBÔBˆAØ�OŠO˜AœGÑ$Ô$Ð$Ø�FŠF�:ÑÔÐÐøÝð 	ð 	ð 	ØˆDð	øøøåÔ GÐ,Ñ,Ô,Ð,Ð,Ð,s   ‚AA Á
A(Á'A(c                 óÀ   — t          j        d¦  «        }t          d|i¦  «        5 }t          j        d¬¦  «         |j        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Na              0: 00000003 000 000 0001 03 462170 @/tmp/dbus-Qw2hMPIU3n
            0: 00000003 000 000 0001 03 35010 @/tmp/dbus-tB2X8h69BQ
            0: 00000003 000 000 0001 03 34424 @/tmp/dbus-cHy80Y8O
            000000000000000000000000000000000000000000000000000000
            z/proc/net/unixÚunixr  )rå   ræ   r¥   r°   r  rë   )r³   rš   r¤   s      r2   Útest_emulate_unixz*TestSystemNetConnections.test_emulate_unixR  s°   € Ý”/ð #ñ ô ˆõ Ð 0°'Ð:Ñ;Ô;ð 	¸qÝÔ"¨Ð/Ñ/Ô/Ð/Ø”8ˆOˆOˆOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ¦AÁAÁAN)rÉ   rÊ   rË   r   r£   rK   r
  r  r@   rE   r2   rþ  rþ  D  sn   € € € € € à€T„ZÐ2À
ÐKÑKÔKØ€T„ZÐ/¸eÐDÑDÔDð-ð -ñ EÔDñ LÔKð-ð	ð 	ð 	ð 	ð 	rE   rþ  c                   óš   — e Zd Zej                              eed¦  «         d¬¦  «         e¦   «         d„ ¦   «         ¦   «         Z	d„ Z
d„ ZdS )ÚTestSystemDiskPartitionsÚstatvfszos.statvfs() not availabler«   c                 ó:  — d„ }t          j        d¬¦  «        D ]�}t          j        |j        ¦  «        } ||j        ¦  «        \  }}}}|j        |k    sJ ‚t          |j        |z
  ¦  «        t          k     sJ ‚t          |j        |z
  ¦  «        t          k     sJ ‚Œ‚d S )Nc                 ó‚  — t          d| › d�¦  «                             ¦   «         }|                     d¦  «        }|                     d¦  «         |                     d¦  «        }|                     ¦   «         d d…         \  }}}}|dk    rd}t	          |¦  «        t	          |¦  «        t	          |¦  «        }}}||||fS )Nzdf -P -B 1 "ú"rj   r   r?   Únoner[   )r   r†   rH   Úpopro   )rl  rp   rq   rS   Údevrs   rt   rd   s           r2   Údfz4TestSystemDiskPartitions.test_against_df.<locals>.dfl  s¯   € ÝÐ+ DÐ+Ð+Ð+Ñ,Ô,×2Ò2Ñ4Ô4ˆCØ—I’I˜d‘O”OˆEØ�IŠI�a‰LŒLˆLØ—9’9˜Q‘<”<ˆDØ%)§Z¢Z¡\¤\°"°1°"Ô%5Ñ"ˆC�˜˜dØ�fŠ}ˆ}Ø�Ý # E¡
¤
­C°©I¬Iµs¸4±y´y˜�4ˆEØ˜˜t TÐ)Ð)rE   F)Úall)	r°   Údisk_partitionsÚ
disk_usageÚ
mountpointrs   r¾   rd   r   rt   )r³   r  ÚpartÚusagerr   rs   rt   rd   s           r2   Útest_against_dfz(TestSystemDiskPartitions.test_against_dfe  sÂ   € ð		*ð 		*ð 		*õ Ô*¨uÐ5Ñ5Ô5ð 	Að 	AˆDÝÔ% d¤oÑ6Ô6ˆEØ#% 2 d¤oÑ#6Ô#6Ñ ˆAˆu�d˜DØ”; %Ò'Ð'Ð'Ð'Ý�u”z DÑ(Ñ)Ô)Õ,@Ò@Ð@Ð@Ð@Ý�u”z DÑ(Ñ)Ô)Õ,@Ò@Ð@Ð@Ð@Ð@ð	Að 	ArE   c                 ó,  — t          d¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   d|v r$t          j        ¦   «         D ]}|j        dk    r d S Œt          j        d¦  «        }t          j        d|d¬¦  «        5 }t          j        ddg¬	¦  «        5 }t          j        ¦   «         }|j	        sJ ‚|j	        sJ ‚|sJ ‚|d
         j        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nz/proc/filesystemsÚzfsz
nodev	zfs
r  Tr_  ú$psutil._pslinux.cext.disk_partitions)z	/dev/sdb3ú/r   Úrwr{  r   )
rG   r  r°   r  Úfstyper”   r•   r   r£   rë   )r³   rQ   r  r  rh  r�  r‚  rð   s           r2   Útest_zfs_fsz$TestSystemDiskPartitions.test_zfs_fs~  sý  € åÐ%Ñ&Ô&ð 	¨!Ø—6’6‘8”8ˆDð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�Dˆ=ˆ=ÝÔ.Ñ0Ô0ð ð �Ø”; %Ò'Ð'Ø�F�Fð (õ ”K Ñ/Ô/ˆ	ÝŒZØ!°	À$ð
ñ 
ô 
ð 	.àÝ”Ø6Ø=Ð>ðñ ô ð .ð ÝÔ,Ñ.Ô.�Ø”yÐ Ð Ð Ø”yÐ Ð Ð Ø�
�
�
Ø˜1”v”}¨Ò-Ð-Ð-Ð-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	.ð 	.sB   �1±5¸5ÂD	Â'=C1Ã%D	Ã1C5	Ã5D	Ã8C5	Ã9D	Ä	DÄDc                 ó:  — 	 t          j        dd¬¦  «        5 }t          j        t          ¦  «        5  t          j        ¦   «          d d d ¦  «         n# 1 swxY w Y   |j        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   dt
          _        d S # dt
          _        w xY w)Nzos.path.realpathz/non/existentr{  ú/proc)	r   r£   r   Úraisesr  r°   r  rë   ÚPROCFS_PATHr(  s     r2   Útest_emulate_realpath_failz3TestSystemDiskPartitions.test_emulate_realpath_fail–  s  € ð	)Ý”Ø"°ðñ ô ð  àÝ”]Õ#4Ñ5Ô5ð -ð -ÝÔ*Ñ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -à”x����ð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð ")�FÔÐÐø �FÔÐ(Ð(Ð(Ð(sQ   ‚B ˜A3²AÁA3ÁA	ÁA3ÁA	ÁA3Á'B Á3A7Á7B Á:A7Á;B ÂBN)rÉ   rÊ   rË   r   rj  rk  Úhasattrr7  r   r  r%  r*  r@   rE   r2   r  r  c  s“   € € € € € à„[×ÒØˆG�B˜	Ñ"Ô"Ð"Ð+Gð ñ ô ð ÐÑÔðAð Añ Ôñô ðAð*.ð .ð .ð0
)ð 
)ð 
)ð 
)ð 
)rE   r  c                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚTestSystemDiskIoCountersc                 óð  — d}t          d|i¦  «        5  t          j        dd¬¦  «        5  t          j        d¬¦  «        }|j        dk    sJ ‚|j        d	k    sJ ‚|j        d
t          z  k    sJ ‚|j	        dk    sJ ‚|j
        dk    sJ ‚|j        dk    sJ ‚|j        dt          z  k    sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nz+   3     0   1 hda 2 3 4 5 6 7 8 9 10 11 12ú/proc/diskstatsú!psutil._pslinux.is_storage_deviceTr{  F©rø  r~   r.  r¹   r?   r   r0  é   é   rù  ©r¥   r   r£   r°   Údisk_io_countersÚ
read_countÚread_merged_countÚ
read_bytesÚSECTOR_SIZEÚ	read_timeÚwrite_countÚwrite_merged_countÚwrite_bytesÚ
write_timeÚ	busy_time©r³   rš   rð   s      r2   Útest_emulate_kernel_2_4z0TestSystemDiskIoCounters.test_emulate_kernel_2_4¥  sÀ  € ð @ˆÝÐ 1°7Ð;Ñ<Ô<ð 	+ð 	+Ý”Ø3À$ðñ ô ð +ð +õ Ô-°UÐ;Ñ;Ô;�Ø”~¨Ò*Ð*Ð*Ð*ØÔ,°Ò1Ð1Ð1Ð1Ø”~¨­[©Ò8Ð8Ð8Ð8Ø”}¨Ò)Ð)Ð)Ð)Ø”¨!Ò+Ð+Ð+Ð+ØÔ-°Ò2Ð2Ð2Ð2Ø”¨!­k©/Ò9Ð9Ð9Ð9Ø”~¨Ò*Ð*Ð*Ð*Ø”}¨Ò*Ð*Ð*Ð*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ó5   ”C+«BCÃC+ÃC	ÃC+ÃC	ÃC+Ã+C/Ã2C/c                 óð  — d}t          d|i¦  «        5  t          j        dd¬¦  «        5  t          j        d¬¦  «        }|j        dk    sJ ‚|j        d	k    sJ ‚|j        d
t          z  k    sJ ‚|j	        dk    sJ ‚|j
        dk    sJ ‚|j        dk    sJ ‚|j        dt          z  k    sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nz'   3    0   hda 1 2 3 4 5 6 7 8 9 10 11r/  r0  Tr{  Fr1  r~   r.  r¹   r?   r   r0  r2  r3  rù  r4  r@  s      r2   Útest_emulate_kernel_2_6_fullz5TestSystemDiskIoCounters.test_emulate_kernel_2_6_full¸  s¿  € ð <ˆÝÐ 1°7Ð;Ñ<Ô<ð 	+ð 	+Ý”Ø3À$ðñ ô ð +ð +õ Ô-°UÐ;Ñ;Ô;�Ø”~¨Ò*Ð*Ð*Ð*ØÔ,°Ò1Ð1Ð1Ð1Ø”~¨­[©Ò8Ð8Ð8Ð8Ø”}¨Ò)Ð)Ð)Ð)Ø”¨!Ò+Ð+Ð+Ð+ØÔ-°Ò2Ð2Ð2Ð2Ø”¨!­k©/Ò9Ð9Ð9Ð9Ø”~¨Ò*Ð*Ð*Ð*Ø”}¨Ò*Ð*Ð*Ð*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+rB  c                 óì  — t          ddi¦  «        5  t          j        dd¬¦  «        5  t          j        d¬¦  «        }|j        dk    sJ ‚|j        d	t          z  k    sJ ‚|j        d
k    sJ ‚|j	        dt          z  k    sJ ‚|j
        dk    sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr/  z   3    1   hda 1 2 3 4r0  Tr{  Fr1  r~   r.  r¹   r?   r   )r¥   r   r£   r°   r5  r6  r8  r9  r;  r=  r7  r:  r<  r>  r?  )r³   rð   s     r2   Útest_emulate_kernel_2_6_limitedz8TestSystemDiskIoCounters.test_emulate_kernel_2_6_limitedÌ  s»  € õ Ð 1Ð3LÐMÑNÔNð 	*ð 	*Ý”Ø3À$ðñ ô ð *ð *õ Ô-°UÐ;Ñ;Ô;�Ø”~¨Ò*Ð*Ð*Ð*Ø”~¨­[©Ò8Ð8Ð8Ð8Ø”¨!Ò+Ð+Ð+Ð+Ø”¨!­k©/Ò9Ð9Ð9Ð9àÔ,°Ò1Ð1Ð1Ð1Ø”}¨Ò)Ð)Ð)Ð)ØÔ-°Ò2Ð2Ð2Ð2Ø”~¨Ò*Ð*Ð*Ð*Ø”}¨Ò)Ð)Ð)Ð)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s5   ’C)©BCÃC)ÃC	ÃC)ÃC	ÃC)Ã)C-Ã0C-c                 óÎ  — t          j        d¦  «        }t          d|i¦  «        5  t          j        dd¬¦  «        5  t          j        dd¬¦  «        }t          |¦  «        dk    sJ ‚|d	         j        d
k    sJ ‚|d         j        d
k    sJ ‚|d	         j	        dk    sJ ‚|d         j	        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Núx            3    0   nvme0n1 1 2 3 4 5 6 7 8 9 10 11
            3    0   nvme0n1p1 1 2 3 4 5 6 7 8 9 10 11
            r/  r0  Fr{  T©Úperdiskrø  r.  Únvme0n1r~   Ú	nvme0n1p1r   )
rå   ræ   r¥   r   r£   r°   r5  rJ   r6  r;  r@  s      r2   Útest_emulate_include_partitionsz8TestSystemDiskIoCounters.test_emulate_include_partitionsâ  s”  € õ ”/ð #ñ ô ˆõ Ð 1°7Ð;Ñ<Ô<ð 		9ð 		9Ý”Ø3À%ðñ ô ð 9ð 9õ Ô-°dÀ5ÐIÑIÔI�Ý˜3‘x”x 1’}�}�}�}Ø˜9”~Ô0°AÒ5Ð5Ð5Ð5Ø˜;Ô'Ô2°aÒ7Ð7Ð7Ð7Ø˜9”~Ô1°QÒ6Ð6Ð6Ð6Ø˜;Ô'Ô3°qÒ8Ð8Ð8Ð8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9ð		9ð 		9ð 		9ñ 		9ô 		9ð 		9ð 		9ð 		9ð 		9ð 		9ð 		9ð 		9øøøð 		9ð 		9ð 		9ð 		9ð 		9ð 		9s5   ¦C½A8CÂ6CÃC	ÃCÃ	C	Ã
CÃCÃ!Cc                 óT  — t          j        d¦  «        }t          d|i¦  «        5  t          j        dd¬¦  «        5  t          j        dd¬¦  «        }|�J ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d„ }t          j        d¦  «        }t          d|i¦  «        5  t          j        dd|¬	¦  «        5  t          j        dd¬¦  «        }|j        d
k    sJ ‚|j        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NrH  r/  r0  Fr{  rI  c                 ó   — | dk    S )NrK  r@   )r—   s    r2   Úis_storage_devicezSTestSystemDiskIoCounters.test_emulate_exclude_partitions.<locals>.is_storage_device  s   € Ø˜9Ò$Ð$rE   TrŸ   r~   r   )	rå   ræ   r¥   r   r£   r°   r5  r6  r;  )r³   rš   rð   rP  s       r2   Útest_emulate_exclude_partitionsz8TestSystemDiskIoCounters.test_emulate_exclude_partitionsõ  sn  € õ ”/ð #ñ ô ˆõ Ð 1°7Ð;Ñ<Ô<ð 	#ð 	#Ý”Ø3À%ðñ ô ð #ð #õ Ô-°eÀEÐJÑJÔJ�Ø�{�{�{�{ð	#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð	%ð 	%ð 	%õ ”/ð #ñ ô ˆõ Ð 1°7Ð;Ñ<Ô<ð 	,ð 	,Ý”Ø3ØØ-ðñ ô ð ,ð ,õ
 Ô-°eÀEÐJÑJÔJ�Ø”~¨Ò*Ð*Ð*Ð*Ø”¨!Ò+Ð+Ð+Ð+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,sj   ¦A<½A%ÁA<Á%A)	Á)A<Á,A)	Á-A<Á<B ÂB Â/DÃ1DÃ9DÄD		Ä	DÄD		ÄDÄD!Ä$D!c                 ó  — d„ }t          j        d¬¦  «        }t          j        dd|¬¦  «        5  t          j        d¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t	          |¦  «        t	          |¦  «        k    sJ ‚d S )Nc                 ó   — | dk    S )Nr/  r@   ©rl  s    r2   rm  z?TestSystemDiskIoCounters.test_emulate_use_sysfs.<locals>.exists  s   € ØÐ,Ò,Ð,rE   T)rJ  úpsutil._pslinux.os.path.existsrŸ   )r°   r5  r   r£   rJ   )r³   rm  ÚwprocfsÚwsysfss       r2   Útest_emulate_use_sysfsz/TestSystemDiskIoCounters.test_emulate_use_sysfs  sÓ   € ð	-ð 	-ð 	-õ Ô)°$Ð7Ñ7Ô7ˆÝŒZØ,°TÀvð
ñ 
ô 
ð 	;ð 	;õ Ô,°TÐ:Ñ:Ô:ˆFð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;õ �7‰|Œ|�s 6™{œ{Ò*Ð*Ð*Ð*Ð*Ð*s   °AÁAÁAc                 óô   — d„ }t          j        dd|¬¦  «        5  t          j        t          ¦  «        5  t          j        ¦   «          d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó   — dS )NFr@   rT  s    r2   rm  z>TestSystemDiskIoCounters.test_emulate_not_impl.<locals>.exists!  s   € Ø�5rE   rU  TrŸ   )r   r£   r   r(  ÚNotImplementedErrorr°   r5  )r³   rm  s     r2   Útest_emulate_not_implz.TestSystemDiskIoCounters.test_emulate_not_impl   s  € ð	ð 	ð 	õ ŒZØ,°TÀvð
ñ 
ô 
ð 	*ð 	*õ ”Õ2Ñ3Ô3ð *ð *ÝÔ'Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s4   ›A-µAÁ	A-ÁA	ÁA-ÁA	ÁA-Á-A1Á4A1N)
rÉ   rÊ   rË   rA  rD  rF  rM  rQ  rX  r\  r@   rE   r2   r-  r-  £  s~   € € € € € ð+ð +ð +ð&+ð +ð +ð(*ð *ð *ð,9ð 9ð 9ð&,ð ,ð ,ð@	+ð 	+ð 	+ð*ð *ð *ð *ð *rE   r-  c                   ó  — e Zd Zd„ Zd„ Zej                             ed¬¦  «        d„ ¦   «         Z	ej                              e
j        d¦  «         d¬¦  «        ej                             ed¬¦  «        d„ ¦   «         ¦   «         Zd	„ Zd
S )ÚTestRootFsDeviceFinderc                 óœ   — t          j        d¦  «        j        }t          j        |¦  «        | _        t          j        |¦  «        | _        d S )Nr"  )r7  r‡   Úst_devÚmajorÚminor)r³   r  s     r2   ÚsetUpzTestRootFsDeviceFinder.setUp-  s4   € ÝŒg�c‰lŒlÔ!ˆÝ”X˜c‘]”]ˆŒ
Ý”X˜c‘]”]ˆŒ
ˆ
ˆ
rE   c                 óP  — t          ¦   «         }t          j                             d¦  «        r|                     ¦   «          nEt          j        t          ¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j                             d| j        › d| j	        › d�¦  «        r| 
                    ¦   «          nEt          j        t          ¦  «        5  | 
                    ¦   «          d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          d S ©Nz/proc/partitionsz/sys/dev/block/rF   z/uevent)r   r7  rl  rm  Úask_proc_partitionsr   r(  r  ra  rb  Úask_sys_dev_blockÚask_sys_class_block)r³   Úfinders     r2   Útest_call_methodsz(TestRootFsDeviceFinder.test_call_methods2  s„  € Ý#Ñ%Ô%ˆÝŒ7�>Š>Ð,Ñ-Ô-ð 	-Ø×&Ò&Ñ(Ô(Ð(Ð(å”Õ0Ñ1Ô1ð -ð -Ø×*Ò*Ñ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -åŒ7�>Š>ÐL¨D¬JÐLÐL¸¼ÐLÐLÐLÑMÔMð 	+Ø×$Ò$Ñ&Ô&Ð&Ð&å”Õ0Ñ1Ô1ð +ð +Ø×(Ò(Ñ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +à×"Ò"Ñ$Ô$Ð$Ð$Ð$s$   ÁA=Á=BÂBÃ&DÄDÄDzunsupported on GITHUB_ACTIONSr«   c                 óÌ  — t          ¦   «         }|                     ¦   «         €J ‚d x}x}}t          j                             d¦  «        r|                     ¦   «         }t          j                             d| j        › d| j        › d�¦  «        r|                     ¦   «         }| 	                    ¦   «         }|p|p|}|r
|r||k    sJ ‚|r
|r||k    sJ ‚|r
|r
||k    sJ ‚d S d S d S re  )
r   Úfindr7  rl  rm  rf  ra  rb  rh  rg  )r³   ri  rö   r÷   ÚcÚbases         r2   Útest_comparisonsz'TestRootFsDeviceFinder.test_comparisons@  s"  € å#Ñ%Ô%ˆØ�{Š{‰}Œ}Ð(Ð(Ð(àÐˆÐˆA�ÝŒ7�>Š>Ð,Ñ-Ô-ð 	-Ø×*Ò*Ñ,Ô,ˆAÝŒ7�>Š>ÐL¨D¬JÐLÐL¸¼ÐLÐLÐLÑMÔMð 	-Ø×*Ò*Ñ,Ô,ˆAØ×$Ò$Ñ&Ô&ˆàˆ{�Aˆ{˜ˆØð 	�Að 	Ø˜1’9�9�9�9Øð 	�Að 	Ø˜1’9�9�9�9Øð 	�Að 	Ø˜1’9�9�9�9ð	ð 	ð 	ð 	Ø�9rE   Úfindmntzfindmnt utility not availablec                 ót   — t          ¦   «                              ¦   «         }t          d¦  «        }||k    sJ ‚d S )Nzfindmnt -o SOURCE -rn /)r   rl  r   )r³   rµ   Úfindmnt_values      r2   Útest_against_findmntz+TestRootFsDeviceFinder.test_against_findmntT  s@   € õ
 *Ñ+Ô+×0Ò0Ñ2Ô2ˆÝÐ4Ñ5Ô5ˆØ˜}Ò,Ð,Ð,Ð,Ð,Ð,rE   c                 óD  — t          j        ddg¬¦  «        5 }t          j        ¦   «         d         }|j        sJ ‚t
          s9|j        dk    sJ ‚|j        t          ¦   «                              ¦   «         k    sJ ‚n|j        dk    sJ ‚d d d ¦  «         d S # 1 swxY w Y   d S )Nr!  )ú	/dev/rootr"  Úext4r#  r{  r   ru  )	r   r£   r°   r  rë   r   Údevicer   rl  )r³   r¤   r  s      r2   Útest_disk_partitions_mockedz2TestRootFsDeviceFinder.test_disk_partitions_mocked]  sû   € ÝŒZØ2Ø:Ð;ð
ñ 
ô 
ð 
	2ð ÝÔ)Ñ+Ô+¨AÔ.ˆDØ”8ˆOˆOˆOÝ!ð 2Ø”{ kÒ1Ð1Ð1Ð1Ø”{Õ&8Ñ&:Ô&:×&?Ò&?Ñ&AÔ&AÒAÐAÐAÐAÐAà”{ kÒ1Ð1Ð1Ð1ð
	2ð 
	2ð 
	2ñ 
	2ô 
	2ð 
	2ð 
	2ð 
	2ð 
	2ð 
	2ð 
	2ð 
	2øøøð 
	2ð 
	2ð 
	2ð 
	2ð 
	2ð 
	2s   ˜A0BÂBÂBN)rÉ   rÊ   rË   rc  rj  r   rj  rk  r   ro  rn  ro  rs  rx  r@   rE   r2   r^  r^  +  sâ   € € € € € ð#ð #ð #ð
%ð %ð %ð „[×Ò˜Ð/NÐÑOÔOðð ñ PÔOðð& „[×ÒØˆFŒL˜Ñ#Ô#Ð#Ð,Kð ñ ô ð „[×Ò˜Ð/NÐÑOÔOð-ð -ñ PÔOñô ð-ð
2ð 2ð 2ð 2ð 2rE   r^  c                   ó¢   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z e	¦   «         e
j                             ed¬¦  «        d	„ ¦   «         ¦   «         Zd
„ ZdS )ÚTestMiscc                 óŽ   — t          d¦  «        }t          j        ¦   «         }t          |¦  «        t          |¦  «        k    sJ ‚d S )Nz	boot time)rƒ   r°   Ú	boot_timero   rÐ   s      r2   Útest_boot_timezTestMisc.test_boot_timer  sD   € Ý˜kÑ*Ô*ˆÝÔ'Ñ)Ô)ˆÝ�<Ñ Ô ¥C¨Ñ$5Ô$5Ò5Ð5Ð5Ð5Ð5Ð5rE   c           	      óÀ	  ‡— |                       ¦   «         }t          j        |¦  «         t          t          j                             |d¦  «        d¦  «        5 }|                     d¦  «         |                     d¦  «         |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   	 t          Šˆfd„}t          j        d|¬¦  «        5  t          t          ¦  «         t          j        t          ¦  «        5  t          j        ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          j        d	¬
¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          j        ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          j        d	¬
¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          j        ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          j        d	¬
¦  «         d d d ¦  «         n# 1 swxY w Y   |t          _        t          j        ¦   «         dk    sJ ‚t%          t          j        ¦   «         ¦  «        dk    sJ ‚t          j        d	¬
¦  «        }t%          |¦  «        dk    sJ ‚t          j        d	¬
¦  «        }t%          t'          t$          |¦  «        ¦  «        dk    sJ ‚t          t          j                             |d¦  «        d¦  «        5 }|                     d¦  «         |                     d¦  «         |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        ¦   «         dk    sJ ‚t%          t          j        d	¬
¦  «        ¦  «        dk    sJ ‚t%          t          j        ¦   «         ¦  «        dk    sJ ‚t%          t'          t$          t          j        d	¬
¦  «        ¦  «        ¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t)          j        |¦  «         t          t          ¦  «         n-# t)          j        |¦  «         t          t          ¦  «         w xY wt          j        dk    sJ ‚d S )Nr‡   rñ   zcpu   0 0 0 0 0 0 0 0 0 0
zcpu0  0 0 0 0 0 0 0 0 0 0
zcpu1  0 0 0 0 0 0 0 0 0 0
c                 óT   •— |                       d¦  «        rt          ‚ ‰| g|¢R i |¤ŽS )Nr'  )rl   r  r¤  s      €r2   r�   z4TestMisc.test_no_procfs_on_import.<locals>.open_mockƒ  s=   ø€ Ø—?’? 7Ñ+Ô+ð ,Ý+Ð+Ø �y Ð7¨Ð7Ð7Ð7°Ð7Ð7Ð7rE   rž   r[  Tr•  r   zcpu   1 0 0 0 0 0 0 0 0 0
zcpu0  1 0 0 0 0 0 0 0 0 0
zcpu1  1 0 0 0 0 0 0 0 0 0
r'  )Ú
get_testfnr7  ÚmkdirrG   rl  rM   Úwriter   r£   r   r°   r   r(  r  r5  Úcpu_percentÚcpu_times_percentr)  ÚsumrŒ   rn  Úrmtree)r³   Ú	my_procfsrQ   r�   Úper_cpu_percentÚper_cpu_times_percentr›   s         @r2   Útest_no_procfs_on_importz!TestMisc.test_no_procfs_on_importw  s‹  ø€ Ø—O’OÑ%Ô%ˆ	Ý
Œ�ÑÔÐå•"”'—,’,˜y¨&Ñ1Ô1°3Ñ7Ô7ð 	3¸1Ø�GŠGÐ1Ñ2Ô2Ð2Ø�GŠGÐ1Ñ2Ô2Ð2Ø�GŠGÐ1Ñ2Ô2Ð2ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3ð
4	"ÝˆIð8ð 8ð 8ð 8ð 8õ
 ”˜O¸ÐCÑCÔCð )ð )Ý�fÑ%Ô%Ð%å”]¥7Ñ+Ô+ð 'ð 'ÝÔ$Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'å”]¥7Ñ+Ô+ð 2ð 2ÝÔ$¨DÐ1Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2å”]¥7Ñ+Ô+ð )ð )ÝÔ&Ñ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )å”]¥7Ñ+Ô+ð 4ð 4ÝÔ&¨dÐ3Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4å”]¥7Ñ+Ô+ð /ð /ÝÔ,Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /å”]¥7Ñ+Ô+ð :ð :ÝÔ,°DÐ9Ñ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð &/•Ô"åÔ)Ñ+Ô+¨qÒ0Ð0Ð0Ð0Ý�6Ô3Ñ5Ô5Ñ6Ô6¸!Ò;Ð;Ð;Ð;õ #)Ô"4¸DÐ"AÑ"AÔ"A�Ý˜?Ñ+Ô+¨qÒ0Ð0Ð0Ð0õ )/Ô(@ÈÐ(MÑ(MÔ(MÐ%Ý�3�sÐ$9Ñ:Ô:Ñ;Ô;¸qÒ@Ð@Ð@Ð@õ �"œ'Ÿ,š, y°&Ñ9Ô9¸3Ñ?Ô?ð ;À1Ø—G’GÐ9Ñ:Ô:Ð:Ø—G’GÐ9Ñ:Ô:Ð:Ø—G’GÐ9Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;õ
 Ô)Ñ+Ô+¨qÒ0Ð0Ð0Ð0Ý�6Ô-°TÐ:Ñ:Ô:Ñ;Ô;¸qÒ@Ð@Ð@Ð@Ý�6Ô3Ñ5Ô5Ñ6Ô6¸!Ò;Ð;Ð;Ð;å��C¥Ô!9ÀÐ!FÑ!FÔ!FÑGÔGÑHÔHÈAÒMÐMÐMÐMÐMðQ)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )õV ŒM˜)Ñ$Ô$Ð$Ý�&Ñ!Ô!Ð!Ð!øõ ŒM˜)Ñ$Ô$Ð$Ý�&Ñ!Ô!Ð!Ð!øøøåÔ! WÒ,Ð,Ð,Ð,Ð,Ð,sB  ÁA B$Â$B(Â+B(Â0"R Ã.Q+Ä D ÄQ+Ä D$	Ä$Q+Ä'D$	Ä(Q+ÅE&ÅQ+Å&E*	Å*Q+Å-E*	Å.Q+Æ
F*ÆQ+Æ*F.	Æ.Q+Æ1F.	Æ2Q+ÇG0Ç$Q+Ç0G4	Ç4Q+Ç7G4	Ç8Q+ÈH4È(Q+È4H8	È8Q+È;H8	È<Q+ÉI:É.Q+É:I>	É>Q+ÊI>	ÊC#Q+Í%A N1Î%Q+Î1N5	Î5Q+Î8N5	Î9B%Q+ÑR Ñ+Q/Ñ/R Ñ2Q/Ñ3R Ò*S	c                 ó  — t          j        d¦  «                             ¦   «         }t          d|i¦  «        5 }t	          j        ¦   «          |j        sJ ‚t	          j        d¬¦  «         t	          j        ¦   «          t	          j        d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        d¦  «                             ¦   «         }t          d|i¦  «        5  t	          j        ¦   «         }|j        sJ ‚t	          j        d¬¦  «        }t	          j        ¦   «         }t	          j        d¬¦  «        }|dk    sJ ‚t          |¦  «        dk    sJ ‚t          |¦  «        dk    sJ ‚t          |¦  «        dk    sJ ‚t          t          t          |¦  «        ¦  «        dk    sJ ‚t          t          t          |¦  «        ¦  «        dk    sJ ‚|j
        dk    sJ ‚|j        dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nz~            cpu   0 0 0 0 0 0 0 1 0 0
            cpu0  0 0 0 0 0 0 0 1 0 0
            cpu1  0 0 0 0 0 0 0 1 0 0
            r\  Tr•  z~            cpu   1 0 0 0 0 0 0 0 0 0
            cpu0  1 0 0 0 0 0 0 0 0 0
            cpu1  1 0 0 0 0 0 0 0 0 0
            r   r°  )rå   ræ   rç   r¥   r°   rƒ  rë   r„  r…  rŒ   r2  Úuser)r³   rš   r¤   rƒ  Úcpu_percent_percpur„  Úcpu_times_percent_percpus          r2   Útest_cpu_steal_decreasez TestMisc.test_cpu_steal_decrease¸  s£  € õ ”/ð #ñ ô ÷ ’‘”ð	 	õ
  ¨gÐ6Ñ7Ô7ð 	2¸1õ ÔÑ Ô Ð Ø”8ˆOˆOˆOÝÔ dÐ+Ñ+Ô+Ð+ÝÔ$Ñ&Ô&Ð&ÝÔ$¨DÐ1Ñ1Ô1Ð1ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2õ ”/ð #ñ ô ÷ ’‘”ð	 	õ
  ¨gÐ6Ñ7Ô7ð 	/ð 	/å Ô,Ñ.Ô.ˆKØ”8ˆOˆOˆOÝ!'Ô!3¸4Ð!@Ñ!@Ô!@ÐÝ &Ô 8Ñ :Ô :ÐÝ'-Ô'?ÀtÐ'LÑ'LÔ'LÐ$Ø !Ò#Ð#Ð#Ð#ÝÐ)Ñ*Ô*¨aÒ/Ð/Ð/Ð/ÝÐ(Ñ)Ô)¨QÒ.Ð.Ð.Ð.ÝÐ(Ñ)Ô)¨UÒ2Ð2Ð2Ð2Ý•s�3Ð 8Ñ9Ô9Ñ:Ô:¸aÒ?Ð?Ð?Ð?Ý•s�3Ð 8Ñ9Ô9Ñ:Ô:¸eÒCÐCÐCÐCØ$Ô*¨aÒ/Ð/Ð/Ð/Ø$Ô)¨QÒ.Ð.Ð.Ð.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð 	/ð 	/s%   ¸ABÂB"Â%B"Ã DG9Ç9G=È G=c                 ó  — t          j        dd¬¦  «        5 }t          j        t          ¦  «        5  t
          j                             ¦   «          d d d ¦  «         n# 1 swxY w Y   |j        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr  Tr  )	r   r£   r   r(  rÛ  r°   rb  r|  rë   r(  s     r2   Útest_boot_time_mockedzTestMisc.test_boot_time_mockedß  sÿ   € ÝŒZÐ-°dÐ;Ñ;Ô;ð 	¸qÝ”�|Ñ,Ô,ð ,ð ,Ý”×)Ò)Ñ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,à”8ˆOˆOˆOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s4   —A>±AÁA>ÁA 	Á A>Á#A 	Á$A>Á>BÂBc                 óH   — t          j        ¦   «         D ]}|j        dvsJ ‚Œd S )N>   ú:0ú:0.0)r°   ÚusersÚhost)r³   rŒ  s     r2   Ú
test_userszTestMisc.test_userså  s9   € õ ”L‘N”Nð 	3ð 	3ˆDØ”9 NÐ2Ð2Ð2Ð2Ð2ð	3ð 	3rE   c                 ó€  — |                       ¦   «         }t          j        |¦  «         	 |t          _        t          j        t          ¦  «        5  t          j        ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          j	        ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          j	        d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          j
        ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          j        ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          j        ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          j        ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          j        ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j        t          j        ¦  «        5  t          j        ¦   «          d d d ¦  «         n# 1 swxY w Y   dt          _        d S # dt          _        w xY w)NTr•  r'  )r€  r7  r�  r°   r)  r   r(  r  r±   r5  r|  r  rú  rØ  r  ÚNoSuchProcessÚProcess)r³   Útdirs     r2   Útest_procfs_pathzTestMisc.test_procfs_pathë  sn  € Ø�ŠÑ Ô ˆÝ
Œ�‰Œˆð	)Ø!%�FÔÝ”�wÑ'Ô'ð (ð (ÝÔ%Ñ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (å”�wÑ'Ô'ð #ð #ÝÔ Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #å”�wÑ'Ô'ð .ð .ÝÔ ¨Ð-Ñ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .å”�wÑ'Ô'ð #ð #ÝÔ Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #õ ”�wÑ'Ô'ð )ð )ÝÔ&Ñ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )å”�wÑ'Ô'ð )ð )ÝÔ&Ñ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )å”�wÑ'Ô'ð &ð &ÝÔ#Ñ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &õ ”�wÑ'Ô'ð )ð )ÝÔ&Ñ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )å”�vÔ3Ñ4Ô4ð !ð !Ý”Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð ")�FÔÐÐø �FÔÐ(Ð(Ð(Ð(sO  ª%J/ ÁA/Á#J/ Á/A3Á3J/ Á6A3Á7J/ ÂB3Â'J/ Â3B7Â7J/ Â:B7Â;J/ ÃC9Ã-J/ Ã9C=Ã=J/ Ä C=ÄJ/ ÄD=Ä1J/ Ä=EÅJ/ ÅEÅJ/ Å!FÅ5J/ ÆFÆJ/ ÆFÆ	J/ Æ%GÆ9J/ ÇG	Ç	J/ ÇG	ÇJ/ Ç)H	Ç=J/ È	HÈJ/ ÈHÈJ/ È-IÉJ/ ÉIÉJ/ ÉIÉ!J/ É6JÊ
J/ ÊJÊJ/ ÊJÊJ/ Ê/J=zskip if pytest-parallelr«   c                 ó   — t          ¦   «         5  t          j        ¦   «         }|                     ¦   «         }t	          |¦  «        dk    sJ ‚t          |d„ ¬¦  «        d         j        }|j        |k    sJ ‚t          j        |¦  «        }|                     ¦   «          |t          j	        ¦   «         vsJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr.  c                 ó   — | j         S rz   )Úid)r|   s    r2   ú<lambda>z)TestMisc.test_issue_687.<locals>.<lambda>  s   € °´€ rE   )Úkeyr~   )
r   r°   rš  ÚthreadsrJ   ÚsortedrŸ  ÚpidÚas_dictÚpids)r³   Úpr¢  ÚtidÚpts        r2   Útest_issue_687zTestMisc.test_issue_687  s  € õ ‰\Œ\ð 	,ð 	,Ý”Ñ Ô ˆAØ—i’i‘k”kˆGÝ�w‘<”< 1Ò$Ð$Ð$Ð$Ý˜ n nÐ5Ñ5Ô5°aÔ8Ô;ˆCØ”5˜C’<�<�<�<Ý” Ñ$Ô$ˆBØ�JŠJ‰LŒLˆLØ�fœk™mœmÐ+Ð+Ð+Ð+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,s   �B&CÃCÃ
Cc                 ó¼   — t          ddi¦  «        5 }t          j        t          j        ¦   «         ¦  «        sJ ‚|j        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nz/proc/%s/statusr[   )r¥   r°   Ú
pid_existsr7  Úgetpidrë   r(  s     r2   Útest_pid_exists_no_proc_statusz'TestMisc.test_pid_exists_no_proc_status  s£   € õ Ð 1°2Ð6Ñ7Ô7ð 	¸1ÝÔ$¥R¤Y¡[¤[Ñ1Ô1Ð1Ð1Ð1Ø”8ˆOˆOˆOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ’1AÁAÁAN)rÉ   rÊ   rË   r}  rŠ  r�  r‘  r—  rœ  r   r   rj  rk  r   rª  r®  r@   rE   r2   rz  rz  p  sÆ   € € € € € ð6ð 6ð 6ð
?-ð ?-ð ?-ðB%/ð %/ð %/ðNð ð ð3ð 3ð 3ð)ð )ð )ð8 ÐÑÔØ„[×Ò˜Ð0IÐÑJÔJð,ð ,ñ KÔJñ Ôð,ð ð ð ð ð rE   rz  z
no batteryc                   ó¦   — e Zd Zej                              ej        d¦  «         d¬¦  «        d„ ¦   «         Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ ZdS )ÚTestSensorsBatteryÚacpizacpi utility not availabler«   c                 ó   — t          d¦  «        }t          |                     d¦  «        d                              ¦   «                              dd¦  «        ¦  «        }t          j        ¦   «         j        }t          ||z
  ¦  «        dk     sJ ‚d S )Nzacpi -brs  r~   rÆ  r[   )	r   ro   rH   r†   Úreplacer°   Úsensors_batteryÚpercentr¾   )r³   rp   Ú
acpi_valuerµ   s       r2   Útest_percentzTestSensorsBattery.test_percent*  s|   € õ �‰mŒmˆÝ˜Ÿš 3™œ¨Ô*×0Ò0Ñ2Ô2×:Ò:¸3ÀÑCÔCÑDÔDˆ
ÝÔ-Ñ/Ô/Ô7ˆÝ�: Ñ,Ñ-Ô-°Ò1Ð1Ð1Ð1Ð1Ð1rE   c                 ó  ‡— ˆfd„}t           Št          j        d|¬¦  «        5 }t          j        ¦   «         j        du sJ ‚t          j        ¦   «         j        t          j        k    sJ ‚|j        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ón   •— |                       d¦  «        rt          j        d¦  «        S  ‰| g|¢R i |¤ŽS )N©z
AC0/onlinez	AC/onlineó   1©r£  r”   r–   r¤  s      €r2   r�   z@TestSensorsBattery.test_emulate_power_plugged.<locals>.open_mock5  óH   ø€ Ø�}Š}Ð8Ñ9Ô9ð 8Ý”z $Ñ'Ô'Ð'à �y Ð7¨Ð7Ð7Ð7°Ð7Ð7Ð7rE   rž   r[  T)	rG   r   r£   r°   r´  Úpower_pluggedÚsecsleftÚPOWER_TIME_UNLIMITEDrë   ©r³   r�   r¤   r›   s      @r2   Útest_emulate_power_pluggedz-TestSensorsBattery.test_emulate_power_plugged3  sî   ø€ ð	8ð 	8ð 	8ð 	8ð 	8õ ˆ	ÝŒZ˜°YÐ?Ñ?Ô?ð 	À1ÝÔ)Ñ+Ô+Ô9¸TÐAÐAÐAÐAåÔ&Ñ(Ô(Ô1ÝÔ.ò/ð /ð /ð /ð ”8ˆOˆOˆOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ¤AB Â BÂBc                 óÊ   ‡— ˆfd„}t           Št          j        d|¬¦  «        5 }t          j        ¦   «         j        du sJ ‚|j        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó¦   •— |                       d¦  «        rt          ‚|                       d¦  «        rt          j        d¦  «        S  ‰| g|¢R i |¤ŽS )Nrº  ú/statusÚcharging©r£  r  r”   r•   r¤  s      €r2   r�   zBTestSensorsBattery.test_emulate_power_plugged_2.<locals>.open_mockG  sb   ø€ Ø�}Š}Ð8Ñ9Ô9ð (Ý'Ð'Ø�}Š}˜YÑ'Ô'ð 8Ý”{ :Ñ.Ô.Ð.à �y Ð7¨Ð7Ð7Ð7°Ð7Ð7Ð7rE   rž   r[  T©rG   r   r£   r°   r´  r¾  rë   rÁ  s      @r2   Útest_emulate_power_plugged_2z/TestSensorsBattery.test_emulate_power_plugged_2D  sÃ   ø€ ð	8ð 	8ð 	8ð 	8ð 	8õ ˆ	ÝŒZ˜°YÐ?Ñ?Ô?ð 	À1ÝÔ)Ñ+Ô+Ô9¸TÐAÐAÐAÐAØ”8ˆOˆOˆOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ó   ¤&AÁAÁAc                 óÊ   ‡— ˆfd„}t           Št          j        d|¬¦  «        5 }t          j        ¦   «         j        du sJ ‚|j        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ón   •— |                       d¦  «        rt          j        d¦  «        S  ‰| g|¢R i |¤ŽS )Nrº  ó   0r¼  r¤  s      €r2   r�   zDTestSensorsBattery.test_emulate_power_not_plugged.<locals>.open_mockV  r½  rE   rž   r[  FrÈ  rÁ  s      @r2   Útest_emulate_power_not_pluggedz1TestSensorsBattery.test_emulate_power_not_pluggedT  sÃ   ø€ ð	8ð 	8ð 	8ð 	8ð 	8õ ˆ	ÝŒZ˜°YÐ?Ñ?Ô?ð 	À1ÝÔ)Ñ+Ô+Ô9¸UÐBÐBÐBÐBØ”8ˆOˆOˆOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	rÊ  c                 óÊ   ‡— ˆfd„}t           Št          j        d|¬¦  «        5 }t          j        ¦   «         j        du sJ ‚|j        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó¦   •— |                       d¦  «        rt          ‚|                       d¦  «        rt          j        d¦  «        S  ‰| g|¢R i |¤ŽS )Nrº  rÅ  ÚdischargingrÇ  r¤  s      €r2   r�   zFTestSensorsBattery.test_emulate_power_not_plugged_2.<locals>.open_mockd  sb   ø€ Ø�}Š}Ð8Ñ9Ô9ð (Ý'Ð'Ø�}Š}˜YÑ'Ô'ð 8Ý”{ =Ñ1Ô1Ð1à �y Ð7¨Ð7Ð7Ð7°Ð7Ð7Ð7rE   rž   r[  FrÈ  rÁ  s      @r2   Ú test_emulate_power_not_plugged_2z3TestSensorsBattery.test_emulate_power_not_plugged_2a  sÃ   ø€ ð	8ð 	8ð 	8ð 	8ð 	8õ ˆ	ÝŒZ˜°YÐ?Ñ?Ô?ð 	À1ÝÔ)Ñ+Ô+Ô9¸UÐBÐBÐBÐBØ”8ˆOˆOˆOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	rÊ  c                 óÆ   ‡— ˆfd„}t           Št          j        d|¬¦  «        5 }t          j        ¦   «         j        �J ‚|j        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó¦   •— |                       d¦  «        rt          ‚|                       d¦  «        rt          j        d¦  «        S  ‰| g|¢R i |¤ŽS )N)ú"/sys/class/power_supply/AC0/onlineú!/sys/class/power_supply/AC/onlineú#/sys/class/power_supply/BAT0/statuss   ???)rl   r  r”   r–   r¤  s      €r2   r�   zETestSensorsBattery.test_emulate_power_undetermined.<locals>.open_mockt  sk   ø€ Ø�Šð  ñ ô ð (õ (Ð'Ø�ŠÐDÑEÔEð 8Ý”z &Ñ)Ô)Ð)à �y Ð7¨Ð7Ð7Ð7°Ð7Ð7Ð7rE   rž   r[  rÈ  rÁ  s      @r2   Útest_emulate_power_undeterminedz2TestSensorsBattery.test_emulate_power_undeterminedq  s¾   ø€ ð		8ð 		8ð 		8ð 		8ð 		8õ ˆ	ÝŒZ˜°YÐ?Ñ?Ô?ð 	À1ÝÔ)Ñ+Ô+Ô9ÐAÐAÐAØ”8ˆOˆOˆOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ¤$AÁAÁAc                 óª   — t          ddi¦  «        5 }t          j        ¦   «         j        dk    sJ ‚|j        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nú(/sys/class/power_supply/BAT0/energy_fullrÍ  r   )r¥   r°   r´  rµ  rë   r(  s     r2   Útest_emulate_energy_full_0z-TestSensorsBattery.test_emulate_energy_full_0„  s¦   € åØ7¸Ð>ñ
ô 
ð 	àÝÔ)Ñ+Ô+Ô3°qÒ8Ð8Ð8Ð8Ø”8ˆOˆOˆOˆOð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ’(AÁAÁAc                 óL  — t          dt          ¦  «        5  t          dt          ¦  «        5  t          ddi¦  «        5  t          j        ¦   «         j        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NrÚ  z(/sys/class/power_supply/BAT0/charge_fullz%/sys/class/power_supply/BAT0/capacitys   88éX   )rª   r  r¥   r°   r´  rµ  ©r³   s    r2   Ú"test_emulate_energy_full_not_availz5TestSensorsBattery.test_emulate_energy_full_not_availŒ  s²  € õ !Ø6Ýñ
ô 
ð 	Bð 	Bõ %Ø:Ý!ñô ð Bð Bõ 'Ø<¸eÐDñô ð Bð Bõ "Ô1Ñ3Ô3Ô;¸rÒAÐAÐAÐAÐAðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bð	Bð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bð		Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	Bð 	Bð 	BsW   –B¬B¾A*ÁBÁ*A.Á.BÁ1A.Á2BÁ5BÂB	ÂBÂB	Â	BÂBÂ Bc                 óL  — t          dt          ¦  «        5  t          dt          ¦  «        5  t          dt          ¦  «        5  t          j        ¦   «         j        �J ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NrÖ  rÕ  r×  )rª   r  r°   r´  r¾  rÞ  s    r2   Útest_emulate_no_powerz(TestSensorsBattery.test_emulate_no_powerœ  s©  € å Ø/Õ1Bñ
ô 
ð 
	Jð 
	Jõ %Ø4Õ6Gñô ð Jð Jõ )Ø9Ý%ñô ð Jð Jõ "Ô1Ñ3Ô3ÔAÐIÐIÐIÐIð	Jð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð JðJð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð Jð
	Jð 
	Jð 
	Jñ 
	Jô 
	Jð 
	Jð 
	Jð 
	Jð 
	Jð 
	Jð 
	Jð 
	Jøøøð 
	Jð 
	Jð 
	Jð 
	Jð 
	Jð 
	JsX   –B¬BÁA*ÁBÁ*A.Á.BÁ1A.Á2BÁ5BÂB	ÂBÂB	Â	BÂBÂ BN)rÉ   rÊ   rË   r   rj  rk  rn  ro  r·  rÂ  rÉ  rÎ  rÒ  rØ  rÛ  rß  rá  r@   rE   r2   r°  r°  '  sÞ   € € € € € ð „[×ÒØˆFŒL˜Ñ Ô Ð Ð)Eð ñ ô ð2ð 2ñô ð2ðð ð ð"ð ð ð ð ð ðð ð ð ð ð ð&ð ð ðBð Bð Bð Jð Jð Jð Jð JrE   r°  c                   ó   — e Zd Zd„ ZdS )ÚTestSensorsBatteryEmulatedc                 ó*  ‡— ˆfd„}t           Št          j        ddg¬¦  «        5 }t          j        d|¬¦  «        5 }t          j        ¦   «         €J ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |j        sJ ‚|j        sJ ‚d S )Nc                 ó  •— |                       d¦  «        rt          j        d¦  «        S |                       d¦  «        rt          j        d¦  «        S |                       d¦  «        rt          j        d¦  «        S  ‰| g|¢R i |¤ŽS )Nz/energy_nowÚ60000000z
/power_nowÚ0z/energy_fullÚ60000001©r£  r”   r•   r¤  s      €r2   r�   z5TestSensorsBatteryEmulated.test_it.<locals>.open_mock®  s�   ø€ Ø�}Š}˜]Ñ+Ô+ð 8Ý”{ :Ñ.Ô.Ð.Ø—’˜|Ñ,Ô,ð 8Ý”{ 3Ñ'Ô'Ð'Ø—’˜~Ñ.Ô.ð 8Ý”{ :Ñ.Ô.Ð.à �y Ð7¨Ð7Ð7Ð7°Ð7Ð7Ð7rE   z
os.listdirÚBAT0r{  rž   r[  )rG   r   r£   r°   r´  rë   )r³   r�   ÚmlistdirÚmopenr›   s       @r2   Útest_itz"TestSensorsBatteryEmulated.test_it­  s/  ø€ ð	8ð 	8ð 	8ð 	8ð 	8õ ˆ	ÝŒZ˜°F°8Ð<Ñ<Ô<ð 	<ÀÝ”˜O¸ÐCÑCÔCð <ÀuÝÔ-Ñ/Ô/Ð;Ð;Ð;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð ŒÐÐÐØŒ|ÐÐÐÐÐs4   ¥A6¼AÁA6ÁA#	Á#A6Á&A#	Á'A6Á6A:Á=A:N)rÉ   rÊ   rË   rí  r@   rE   r2   rã  rã  «  s#   € € € € € ðð ð ð ð rE   rã  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestSensorsTemperaturesc                 ó„  ‡— ˆfd„}t           Št          j        d|¬¦  «        5  t          j        ddg¬¦  «        5  t          j        ¦   «         d         d         }|j        d	k    sJ ‚|j        d
k    sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó¶  •— |                       d¦  «        rt          j        d¦  «        S |                       d¦  «        rt          j        d¦  «        S |                       d¦  «        rt          j        d¦  «        S |                       d¦  «        rt          j        d¦  «        S |                       d	¦  «        rt          j        d
¦  «        S  ‰| g|¢R i |¤ŽS )Nú/namer—   z/temp1_labelÚlabelz/temp1_inputó   30000z
/temp1_maxs   40000z/temp1_critó   50000)r£  r”   r•   r–   r¤  s      €r2   r�   zCTestSensorsTemperatures.test_emulate_class_hwmon.<locals>.open_mockÃ  s×   ø€ Ø�}Š}˜WÑ%Ô%ð 8Ý”{ 6Ñ*Ô*Ð*Ø—’˜~Ñ.Ô.ð 	8Ý”{ 7Ñ+Ô+Ð+Ø—’˜~Ñ.Ô.ð 8Ý”z (Ñ+Ô+Ð+Ø—’˜|Ñ,Ô,ð 8Ý”z (Ñ+Ô+Ð+Ø—’˜}Ñ-Ô-ð 8Ý”z (Ñ+Ô+Ð+à �y Ð7¨Ð7Ð7Ð7°Ð7Ð7Ð7rE   rž   r[  rz  z/sys/class/hwmon/hwmon0/temp1r{  r—   r   ró  ç      >@g      D@ç      I@©	rG   r   r£   r°   Úsensors_temperaturesró  r¨  ÚhighÚcritical)r³   r�   Útempr›   s      @r2   Útest_emulate_class_hwmonz0TestSensorsTemperatures.test_emulate_class_hwmonÂ  sz  ø€ ð	8ð 	8ð 	8ð 	8ð 	8õ ˆ	ÝŒZ˜°YÐ?Ñ?Ô?ð 		-ð 		-å”ØÐ+JÐ*Kðñ ô ð -ð -õ Ô2Ñ4Ô4°VÔ<¸QÔ?�Ø”z WÒ,Ð,Ð,Ð,Ø”| tÒ+Ð+Ð+Ð+Ø”y DÒ(Ð(Ð(Ð(Ø”}¨Ò,Ð,Ð,Ð,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð		-ð 		-ð 		-ñ 		-ô 		-ð 		-ð 		-ð 		-ð 		-ð 		-ð 		-ð 		-øøøð 		-ð 		-ð 		-ð 		-ð 		-ð 		-s5   ¤B5¼ABÂB5ÂB!	Â!B5Â$B!	Â%B5Â5B9Â<B9c                 óŠ  ‡— ˆfd„}d„ }t           Št          j        d|¬¦  «        5  t          j        dd|¬¦  «        5  t          j        ¦   «         d         d	         }|j        d
k    sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ód  •— |                       d¦  «        rt          j        d¦  «        S |                       d¦  «        rt          j        d¦  «        S |                       d¦  «        rt          j        d¦  «        S |                       d¦  «        rt          j        d¦  «        S  ‰| g|¢R i |¤ŽS )	NÚ0_temprõ  rü  rô  Ú0_typerû  Útyper—   )r£  r”   r–   r•   r¤  s      €r2   r�   zETestSensorsTemperatures.test_emulate_class_thermal.<locals>.open_mockÞ  s³   ø€ Ø�}Š}˜XÑ&Ô&ð 	8Ý”z (Ñ+Ô+Ð+Ø—’˜vÑ&Ô&ð 8Ý”z (Ñ+Ô+Ð+Ø—’˜xÑ(Ô(ð 8Ý”{ :Ñ.Ô.Ð.Ø—’˜vÑ&Ô&ð 8Ý”{ 6Ñ*Ô*Ð*à �y Ð7¨Ð7Ð7Ð7°Ð7Ð7Ð7rE   c                 ó8   — | dv rg S | dk    rdgS | dk    rddgS g S )N>   ú/sys/class/hwmon/hwmon*/temp*_*ú&/sys/class/hwmon/hwmon*/device/temp*_*z /sys/class/thermal/thermal_zone*z /sys/class/thermal/thermal_zone0z,/sys/class/thermal/thermal_zone0/trip_point*z2/sys/class/thermal/thermal_zone1/trip_point_0_typez2/sys/class/thermal/thermal_zone1/trip_point_0_tempr@   rT  s    r2   Ú	glob_mockzETestSensorsTemperatures.test_emulate_class_thermal.<locals>.glob_mockê  sS   € Øð ð ð ð �	ØÐ;Ò;Ð;Ø:Ð;Ð;ØÐGÒGÐGàHØHðð ð ˆIrE   rž   r[  rz  TrŸ   r—   r   r[   rö  r÷  rø  )r³   r�   r  rü  r›   s       @r2   Útest_emulate_class_thermalz2TestSensorsTemperatures.test_emulate_class_thermalÝ  s~  ø€ ð
	8ð 
	8ð 
	8ð 
	8ð 
	8ð	ð 	ð 	õ ˆ	ÝŒZ˜°YÐ?Ñ?Ô?ð 	-ð 	-Ý”˜K°À)ÐLÑLÔLð -ð -ÝÔ2Ñ4Ô4°VÔ<¸QÔ?�Ø”z RÒ'Ð'Ð'Ð'Ø”| tÒ+Ð+Ð+Ð+Ø”y DÒ(Ð(Ð(Ð(Ø”}¨Ò,Ð,Ð,Ð,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð 	-ð 	-s5   §B8¿AB ÂB8Â B$	Â$B8Â'B$	Â(B8Â8B<Â?B<N)rÉ   rÊ   rË   rý  r  r@   rE   r2   rï  rï  À  s2   € € € € € ð-ð -ð -ð6#-ð #-ð #-ð #-ð #-rE   rï  c                   ó   — e Zd Zd„ ZdS )ÚTestSensorsFansc                 óP  ‡— ˆfd„}t           Št          j        d|¬¦  «        5  t          j        ddg¬¦  «        5  t          j        ¦   «         d         d         }|j        d	k    sJ ‚|j        d
k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó  •— |                       d¦  «        rt          j        d¦  «        S |                       d¦  «        rt          j        d¦  «        S |                       d¦  «        rt          j        d¦  «        S  ‰| g|¢R i |¤ŽS )Nrò  r—   z/fan1_labelró  z/fan1_inputÚ2000ré  r¤  s      €r2   r�   z4TestSensorsFans.test_emulate_data.<locals>.open_mock  s�   ø€ Ø�}Š}˜WÑ%Ô%ð 8Ý”{ 6Ñ*Ô*Ð*Ø—’˜}Ñ-Ô-ð 8Ý”{ 7Ñ+Ô+Ð+Ø—’˜}Ñ-Ô-ð 8Ý”{ 6Ñ*Ô*Ð*à �y Ð7¨Ð7Ð7Ð7°Ð7Ð7Ð7rE   rž   r[  rz  z/sys/class/hwmon/hwmon2/fan1r{  r—   r   ró  iÐ  )rG   r   r£   r°   Úsensors_fansró  r¨  )r³   r�   Úfanr›   s      @r2   rª  z!TestSensorsFans.test_emulate_data  sT  ø€ ð	8ð 	8ð 	8ð 	8ð 	8õ ˆ	ÝŒZ˜°YÐ?Ñ?Ô?ð 	+ð 	+Ý”ØÐ+IÐ*Jðñ ô ð +ð +õ Ô)Ñ+Ô+¨FÔ3°AÔ6�Ø”y GÒ+Ð+Ð+Ð+Ø”{ dÒ*Ð*Ð*Ð*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+s4   ¤B¼:BÁ7BÂB	ÂBÂ
B	ÂBÂBÂ"BN)rÉ   rÊ   rË   rª  r@   rE   r2   r	  r	    s#   € € € € € ð+ð +ð +ð +ð +rE   r	  c                   ó*  — e Zd Z e¦   «         d„ ¦   «         Zd„ Zej                             e	d¬¦  «        d„ ¦   «         Z
d„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej                             e d¬¦  «        d„ ¦   «         Zd„ Zd„ Zd„ ZdS )ÚTestProcessc                 ó  — |                       ¦   «         }t          j                             |j        ¦  «                             ¦   «         \  }}}t          j        |j        ¦  «                             d¬¦  «        }t          |t          d„ |D ¦   «         ¦  «        z
  ¦  «        dk     sJ ‚t          |t          d„ |D ¦   «         ¦  «        z
  ¦  «        dk     sJ ‚t          |t          d„ |D ¦   «         ¦  «        z
  ¦  «        dk     sJ ‚d S )NF)Úgroupedc              3   ó4   K  — | ]}|j         |j        z   V — Œd S rz   )Úprivate_dirtyÚprivate_cleanr{   s     r2   r}   z>TestProcess.test_parse_smaps_vs_memory_maps.<locals>.<genexpr>'  s+   è è € ÐJÐJÀ˜!œ/¨A¬OÑ;ÐJÐJÐJÐJÐJÐJrE   r  c              3   ó$   K  — | ]}|j         V — Œd S rz   )Úpssr{   s     r2   r}   z>TestProcess.test_parse_smaps_vs_memory_maps.<locals>.<genexpr>*  s$   è è € Ð1Ð1 q˜QœUÐ1Ð1Ð1Ð1Ð1Ð1rE   c              3   ó$   K  — | ]}|j         V — Œd S rz   )r#  r{   s     r2   r}   z>TestProcess.test_parse_smaps_vs_memory_maps.<locals>.<genexpr>+  s$   è è € Ð3Ð3¨˜aœfÐ3Ð3Ð3Ð3Ð3Ð3rE   )	Úspawn_testprocr°   rb  rš  r¤  Ú_parse_smapsÚmemory_mapsr¾   r…  )r³   ÚsprocÚussr  r#  Úmapss         r2   Útest_parse_smaps_vs_memory_mapsz+TestProcess.test_parse_smaps_vs_memory_maps!  s  € à×#Ò#Ñ%Ô%ˆÝœ×0Ò0°´Ñ;Ô;×HÒHÑJÔJ‰ˆˆS�$ÝŒ~˜eœiÑ(Ô(×4Ò4¸UÐ4ÑCÔCˆå�•cÐJÐJÀTÐJÑJÔJÑJÔJÑJÑKÔKØòð ð ð õ �3�Ð1Ð1¨DÐ1Ñ1Ô1Ñ1Ô1Ñ1Ñ2Ô2°TÒ9Ð9Ð9Ð9Ý�4�#Ð3Ð3¨dÐ3Ñ3Ô3Ñ3Ô3Ñ3Ñ4Ô4°tÒ;Ð;Ð;Ð;Ð;Ð;rE   c                 ó¤  — t          j        d¦  «                             ¦   «         }t          dt	          j        ¦   «         › d�|i¦  «        5 }t          j                             t	          j        ¦   «         ¦  «        }| 	                    ¦   «         \  }}}|j
        sJ ‚|dk    sJ ‚|dk    sJ ‚|dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nan              fffff0 r-xp 00000000 00:00 0                  [vsyscall]
            Size:                  1 kB
            Rss:                   2 kB
            Pss:                   3 kB
            Shared_Clean:          4 kB
            Shared_Dirty:          5 kB
            Private_Clean:         6 kB
            Private_Dirty:         7 kB
            Referenced:            8 kB
            Anonymous:             9 kB
            LazyFree:              10 kB
            AnonHugePages:         11 kB
            ShmemPmdMapped:        12 kB
            Shared_Hugetlb:        13 kB
            Private_Hugetlb:       14 kB
            Swap:                  15 kB
            SwapPss:               16 kB
            KernelPageSize:        17 kB
            MMUPageSize:           18 kB
            Locked:                19 kB
            VmFlags: rd ex
            ú/proc/ú/smapsi l  r  i <  )rå   ræ   rç   r¥   r7  r­  r°   rb  rš  r  rë   )r³   rš   r¤   r§  r  r  r#  s          r2   Útest_parse_smaps_mockedz#TestProcess.test_parse_smaps_mocked-  s  € å”/ð #ñ ô ÷, ’‘”ð- 	õ. Ð <­¬©¬Ð <Ð <Ð <¸gÐFÑGÔGð 	%È1Ý”×'Ò'­¬	©¬Ñ4Ô4ˆAØŸ^š^Ñ-Ô-‰NˆC��dØ”8ˆOˆOˆOØÐ-Ò-Ð-Ð-Ð-Ø˜(’?�?�?�?Ø˜9Ò$Ð$Ð$Ð$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s   ÁA*CÃC	ÃC	zunreliable on PYPYr«   c                 ó`  — d„ }|                       ¦   «         }t          |d¦  «        5   ||¦  «        j        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          |¦  «        5   ||¦  «        j        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          |d¦  «        5   ||¦  «        j        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          |d¦  «        5   ||¦  «        j        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          |d¦  «        5   ||¦  «        j        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          |d¦  «        5   ||¦  «        j        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          |¦  «         t          |d¦  «        5   ||¦  «        j        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          |¦  «         t          |d	¦  «        5   ||¦  «        j        dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )
Nc                 ó  — t          j        ¦   «         }t          j        ¦   «         t          z   }	 |                     ¦   «         D ]G}|j        t          j                             | ¦  «        k    r|c S t          j        ¦   «         |k    r nŒHŒ]rz   )	r°   rš  Útimer   Ú
open_filesrl  r7  ÚabspathrÛ  )Úfnamer§  Ú	giveup_atÚfiles       r2   Úget_test_filez7TestProcess.test_open_files_mode.<locals>.get_test_fileQ  s   € Ý”Ñ Ô ˆAÝœ	™œ¥nÑ4ˆIðØŸLšL™NœNð ð �DØ”y¥B¤G§O¢O°EÑ$:Ô$:Ò:Ð:Ø#˜˜˜Ýœ™œ yÒ0Ð0Ø˜ð 1ð	rE   rñ   Úrrö   zr+zw+za+r|   zx+)r€  rG   Úmoder   )r³   r,  Útestfns      r2   Útest_open_files_modez TestProcess.test_open_files_modeO  s~  € ð		@ð 		@ð 		@ð —’Ñ"Ô"ˆÝ�&˜#ÑÔð 	5ð 	5Ø �= Ñ(Ô(Ô-°Ò4Ð4Ð4Ð4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5å�&‰\Œ\ð 	5ð 	5Ø �= Ñ(Ô(Ô-°Ò4Ð4Ð4Ð4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5å�&˜#ÑÔð 	5ð 	5Ø �= Ñ(Ô(Ô-°Ò4Ð4Ð4Ð4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5å�&˜$ÑÔð 	6ð 	6Ø �= Ñ(Ô(Ô-°Ò5Ð5Ð5Ð5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6å�&˜$ÑÔð 	6ð 	6Ø �= Ñ(Ô(Ô-°Ò5Ð5Ð5Ð5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6å�&˜$ÑÔð 	6ð 	6Ø �= Ñ(Ô(Ô-°Ò5Ð5Ð5Ð5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6õ 	�FÑÔÐÝ�&˜#ÑÔð 	5ð 	5Ø �= Ñ(Ô(Ô-°Ò4Ð4Ð4Ð4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5å�FÑÔÐÝ�&˜$ÑÔð 	6ð 	6Ø �= Ñ(Ô(Ô-°Ò5Ð5Ð5Ð5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6ð 	6ð 	6s�   ¨AÁAÁAÁ&B
Â
BÂBÂ%C	Ã	CÃCÃ$DÄDÄDÄ#EÅEÅEÅ"FÆF
ÆF
Æ0GÇGÇGÇ>H#È#H'È*H'c                 óv  ‡‡— t          j        ¦   «         Š‰                     ¦   «         Št          |                      ¦   «         d¦  «        5  t          ˆˆfd„¦  «         t          j        dt          ¬¦  «        5 }‰                     ¦   «         g k    sJ ‚|j	        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j        dt          t          j        d¦  «        ¬¦  «        5 }‰                     ¦   «         g k    sJ ‚|j	        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nrñ   c                  óh   •— t          ‰                     ¦   «         ¦  «        t          ‰ ¦  «        k    S rz   ©rJ   r'  ©Úfilesr§  s   €€r2   r   z7TestProcess.test_open_files_file_gone.<locals>.<lambda>x  ó"   ø€ �s 1§<¢<¡>¤>Ñ2Ô2µc¸%±j´jÒ@€ rE   úpsutil._pslinux.os.readlinkr[  r[   )r°   rš  r'  rG   r€  r   r   r£   r  rë   r  ÚerrnoÚEINVAL©r³   r¤   r5  r§  s     @@r2   Útest_open_files_file_gonez%TestProcess.test_open_files_file_goneq  s÷  øø€ õ ŒNÑÔˆØ—’‘”ˆÝ�$—/’/Ñ#Ô# SÑ)Ô)ð 	 ð 	 åÐ@Ð@Ð@Ð@Ð@ÑAÔAÐAÝ”Ø-Ý-ðñ ô ð  ð Ø—|’|‘~”~¨Ò+Ð+Ð+Ð+Ø”x����ð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  õ ”Ø-Ý#¥E¤L°"Ñ5Ô5ðñ ô ð  ð Ø—|’|‘~”~¨Ò+Ð+Ð+Ð+Ø”x����ð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð 	 ð 	 sZ   Á/D.Á;$B,Â D.Â,B0	Â0D.Â3B0	Â41D.Ã%$DÄ
D.ÄD	ÄD.ÄD	ÄD.Ä.D2Ä5D2c                 ó¢  ‡‡— t          j        ¦   «         Š‰                     ¦   «         Št          |                      ¦   «         d¦  «        5  t          ˆˆfd„¦  «         t          j        dt          ¬¦  «        5 }‰                     ¦   «         g k    sJ ‚|j	        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nrñ   c                  óh   •— t          ‰                     ¦   «         ¦  «        t          ‰ ¦  «        k    S rz   r3  r4  s   €€r2   r   z5TestProcess.test_open_files_fd_gone.<locals>.<lambda>�  r6  rE   rž   r[  )
r°   rš  r'  rG   r€  r   r   r£   r  rë   r:  s     @@r2   Útest_open_files_fd_gonez#TestProcess.test_open_files_fd_goneˆ  sO  øø€ õ ŒNÑÔˆØ—’‘”ˆÝ�$—/’/Ñ#Ô# SÑ)Ô)ð 	 ð 	 åÐ@Ð@Ð@Ð@Ð@ÑAÔAÐAÝ”ØÕ->ðñ ô ð  àØ—|’|‘~”~¨Ò+Ð+Ð+Ð+Ø”x����ð	 ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð 	 ð 	 s6   Á/CÁ;$B,Â CÂ,B0	Â0CÂ3B0	Â4CÃCÃCc                 ó$  ‡‡— t          j        ¦   «         Š‰                     ¦   «         Št          |                      ¦   «         d¦  «        5  t          ˆˆfd„¦  «         d}t          j        |t          t          j
        d¦  «        ¬¦  «        5 }t          j        d¦  «        5  ‰                     ¦   «         g k    sJ ‚|j        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nrñ   c                  óh   •— t          ‰                     ¦   «         ¦  «        t          ‰ ¦  «        k    S rz   r3  r4  s   €€r2   r   z:TestProcess.test_open_files_enametoolong.<locals>.<lambda>Ÿ  r6  rE   r7  r[   r[  úpsutil._pslinux.debug)r°   rš  r'  rG   r€  r   r   r£   r  r8  ÚENAMETOOLONGrë   )r³   Úpatch_pointr¤   r5  r§  s      @@r2   Útest_open_files_enametoolongz(TestProcess.test_open_files_enametoolong—  sÆ  øø€ õ ŒNÑÔˆØ—’‘”ˆÝ�$—/’/Ñ#Ô# SÑ)Ô)ð 		$ð 		$åÐ@Ð@Ð@Ð@Ð@ÑAÔAÐAØ7ˆKÝ”Ø­µÔ1CÀRÑ)HÔ)Hðñ ô ð $àÝ”ZÐ 7Ñ8Ô8ð $ð $ØŸ<š<™>œ>¨RÒ/Ð/Ð/Ð/Øœ8�O�O�O�Oð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð			$ð 		$ð 		$ñ 		$ô 		$ð 		$ð 		$ð 		$ð 		$ð 		$ð 		$ð 		$øøøð 		$ð 		$ð 		$ð 		$ð 		$ð 		$s[   ÁADÂC-Â%$CÃ
C-ÃCÃC-ÃCÃC-Ã!DÃ-C1	Ã1DÃ4C1	Ã5DÄD	ÄD	c                 ó   — t          j        di ¬¦  «        5 }t          j                             t          j        ¦   «         ¦  «                             ¦   «         �J ‚|j        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nz)psutil._pslinux._psposix.get_terminal_mapr{  )	r   r£   r°   rb  rš  r7  r­  Úterminalrë   r(  s     r2   Útest_terminal_mockedz TestProcess.test_terminal_mockedª  s»   € ÝŒZØ7Àbð
ñ 
ô 
ð 	àÝ”?×*Ò*­2¬9©;¬;Ñ7Ô7×@Ò@ÑBÔBÐJÐJÐJØ”8ˆOˆOˆOˆOð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   —AA3Á3A7Á:A7c                 óÒ  — t          j        ¦   «         }t          j        d¦  «        }t	          j        d|d¬¦  «        5 }|                     ¦   «         ddgk    sJ ‚|j        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j        d¦  «        }t	          j        d|d¬¦  «        5 }|                     ¦   «         g d¢k    sJ ‚|j        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )	Nzfoo bar r  Tr_  ÚfooÚbarz	foo bar  ©rI  rJ  r[   ©r°   rš  r”   r•   r   r£   Úcmdlinerë   ©r³   r§  rh  r¤   s       r2   Útest_cmdline_mockedzTestProcess.test_cmdline_mocked¹  sy  € åŒNÑÔˆÝ”KÐ 0Ñ1Ô1ˆ	ÝŒZØ!°	À$ð
ñ 
ô 
ð 	àØ—9’9‘;”; 5¨% .Ò0Ð0Ð0Ð0Ø”8ˆOˆOˆOˆOð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ
 ”KÐ 4Ñ5Ô5ˆ	ÝŒZØ!°	À$ð
ñ 
ô 
ð 	àØ—9’9‘;”;Ð"4Ð"4Ð"4Ò4Ð4Ð4Ð4Ø”8ˆOˆOˆOˆOð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ó#   ¿&A2Á2A6Á9A6Â(&CÃC Ã#C c                 óÒ  — t          j        ¦   «         }t          j        d¦  «        }t	          j        d|d¬¦  «        5 }|                     ¦   «         ddgk    sJ ‚|j        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j        d¦  «        }t	          j        d|d¬¦  «        5 }|                     ¦   «         g d¢k    sJ ‚|j        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )	Nzfoo bar r  Tr_  rI  rJ  z	foo bar  rK  rL  rN  s       r2   Útest_cmdline_spaces_mockedz&TestProcess.test_cmdline_spaces_mockedÉ  sw  € åŒNÑÔˆÝ”K 
Ñ+Ô+ˆ	ÝŒZØ!°	À$ð
ñ 
ô 
ð 	àØ—9’9‘;”; 5¨% .Ò0Ð0Ð0Ð0Ø”8ˆOˆOˆOˆOð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ
 ”K Ñ,Ô,ˆ	ÝŒZØ!°	À$ð
ñ 
ô 
ð 	àØ—9’9‘;”;Ð"4Ð"4Ð"4Ò4Ð4Ð4Ð4Ø”8ˆOˆOˆOˆOð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	rP  c                 ó   — t          j        ¦   «         }t          j        d¦  «        }t	          j        d|d¬¦  «        5 }|                     ¦   «         ddgk    sJ ‚|j        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nzfoo bar r  Tr_  rI  rJ  rL  rN  s       r2   Útest_cmdline_mixed_separatorsz)TestProcess.test_cmdline_mixed_separatorsÙ  sË   € õ ŒNÑÔˆÝ”KÐ 0Ñ1Ô1ˆ	ÝŒZØ!°	À$ð
ñ 
ô 
ð 	àØ—9’9‘;”; 5¨% .Ò0Ð0Ð0Ð0Ø”8ˆOˆOˆOˆOð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ¿&A3Á3A7Á:A7c                 ó  — t          j        dd¬¦  «        5  t          j        ¦   «                              ¦   «         dk    sJ ‚t          j        ¦   «                              ¦   «         dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr7  z/home/foo (deleted)r{  z	/home/foo)r   r£   r°   rš  ÚexeÚcwdrÞ  s    r2   Ú!test_readlink_path_deleted_mockedz-TestProcess.test_readlink_path_deleted_mockedä  sÒ   € ÝŒZØ)Ð8Mð
ñ 
ô 
ð 	9ð 	9õ ”>Ñ#Ô#×'Ò'Ñ)Ô)¨[Ò8Ð8Ð8Ð8Ý”>Ñ#Ô#×'Ò'Ñ)Ô)¨[Ò8Ð8Ð8Ð8Ð8ð		9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9ð 	9ð 	9s   —AA<Á<B ÂB c                 ó  ‡— ˆfd„}t           Št          j        d|¬¦  «        5 }t          j        ¦   «                              ¦   «         }|j        sJ ‚|g k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   ˆfd„}t          j        d|¬¦  «        5  t          j        t          j	        ¦  «        5  t          j        ¦   «                              ¦   «          d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó~   •— |                       dt          j        ¦   «         › d�¦  «        rt          ‚ ‰| g|¢R i |¤ŽS ©Nr!  z/task)rl   r7  r­  r  r¤  s      €r2   Úopen_mock_1z4TestProcess.test_threads_mocked.<locals>.open_mock_1ð  sO   ø€ Ø�ŠÐ:­¬	©¬Ð:Ð:Ð:Ñ;Ô;ð (Ý'Ð'Ø�9˜TÐ3 DÐ3Ð3Ð3¨FÐ3Ð3Ð3rE   rž   r[  c                 ó~   •— |                       dt          j        ¦   «         › d�¦  «        rt          ‚ ‰| g|¢R i |¤ŽS r[  )rl   r7  r­  ÚPermissionErrorr¤  s      €r2   Úopen_mock_2z4TestProcess.test_threads_mocked.<locals>.open_mock_2ý  sO   ø€ Ø�ŠÐ:­¬	©¬Ð:Ð:Ð:Ñ;Ô;ð &Ý%Ð%Ø�9˜TÐ3 DÐ3Ð3Ð3¨FÐ3Ð3Ð3rE   )
rG   r   r£   r°   rš  r¢  rë   r   r(  ÚAccessDenied)r³   r\  r¤   rð   r_  r›   s        @r2   Útest_threads_mockedzTestProcess.test_threads_mockedë  sÓ  ø€ ð
	4ð 	4ð 	4ð 	4ð 	4õ
 ˆ	ÝŒZ˜°[ÐAÑAÔAð 	ÀQÝ”.Ñ"Ô"×*Ò*Ñ,Ô,ˆCØ”8ˆOˆOˆOØ˜"’9�9�9�9�9ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð	4ð 	4ð 	4ð 	4ð 	4õ
 ŒZ˜°[ÐAÑAÔAð 	+ð 	+Ý”�vÔ2Ñ3Ô3ð +ð +Ý”Ñ Ô ×(Ò(Ñ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+sG   ¤7A(Á(A,Á/A,ÂC7Â-&CÃC7ÃC#	Ã#C7Ã&C#	Ã'C7Ã7C;Ã>C;c                 ó8  — t          j        dt          ¬¦  «        5 }t          j        dg ¬¦  «        5  t          j        ¦   «                              ¦   «         }|j        sJ ‚|dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nzpsutil._pslinux.readlinkr[  zpsutil._pslinux.Process.cmdliner{  r[   )r   r£   r  r°   rš  rV  rë   )r³   r¤   rð   s      r2   Útest_exe_mockedzTestProcess.test_exe_mocked  s'  € ÝŒZØ&Õ4Eð
ñ 
ô 
ð 		!àå”Ø1Àðñ ô ð !ð !õ ”nÑ&Ô&×*Ò*Ñ,Ô,�Ø”x���Ø˜b’y�y�y�y�yð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð			!ð 		!ð 		!ñ 		!ô 		!ð 		!ð 		!ð 		!ð 		!ð 		!ð 		!ð 		!øøøð 		!ð 		!ð 		!ð 		!ð 		!ð 		!s4   œB³7A7Á+BÁ7A;	Á;BÁ>A;	Á?BÂBÂBc                 óP  — t          dt          j        ¦   «         › d�t          ¦  «        5 }t	          j        ¦   «         }t          j        t          ¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   |j	        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr!  r"  )
rª   r7  r­  r  r°   rš  r   r(  r  rë   ©r³   r¤   r§  s      r2   Útest_issue_1014zTestProcess.test_issue_1014  s  € õ !Ø(•R”Y‘[”[Ð(Ð(Ð(Õ*;ñ
ô 
ð 	àÝ”Ñ Ô ˆAÝ”Õ0Ñ1Ô1ð  ð  Ø—’‘”�ð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  à”8ˆOˆOˆOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s5   «-BÁA9Á-BÁ9A=	Á=BÂ A=	ÂBÂBÂ"Bc                 ó¢  — t          j        ¦   «         }t          dt          j        ¦   «         › d�t
          ¦  «        5  t          j        dd¬¦  «        5  t          j	        t           j
        ¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr!  z/statmrŽ  Fr{  )r°   rš  rª   r7  r­  r  r   r£   r   r(  r™  Úmemory_info)r³   r§  s     r2   Útest_issue_2418zTestProcess.test_issue_2418  s|  € ÝŒNÑÔˆÝ Ø(•R”Y‘[”[Ð(Ð(Ð(Õ*;ñ
ô 
ð 	$ð 	$õ ”Ð,¸5ÐAÑAÔAð $ð $Ý”]¥6Ô#7Ñ8Ô8ð $ð $Ø—M’M‘O”O�Oð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	$ð 	$sY   ¾CÁB,Á4BÂ	B,ÂBÂB,ÂBÂB,Â CÂ,B0	Â0CÂ3B0	Â4CÃCÃCrˆ  c                 ó€  — t          j        dt          t          j        d¦  «        ¬¦  «        5 }t          j        dd¬¦  «        5 }t          j        ¦   «         }|                     ¦   «          t          j	        t
          j
        ¦  «        5 }|                     t
          j        ¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |j        sJ ‚|j        sJ ‚|j        j        |j        k    sJ ‚|j        j        |                     ¦   «         k    sJ ‚d S )Nzresource.prlimitr[   r[  z"psutil._pslinux.Process._is_zombieTr{  )r   r£   r  r8  ÚENOSYSr°   rš  r—   r   r(  ÚZombieProcessÚrlimitÚRLIMIT_NOFILErë   rB  r¤  )r³   r�  r‚  r§  Úcms        r2   Útest_rlimit_zombiezTestProcess.test_rlimit_zombie&  sÚ  € õ
 ŒZØ­GµE´LÀ"Ñ,EÔ,Eð
ñ 
ô 
ð 		3àÝ”Ø4À4ðñ ô ð 3àÝ”NÑ$Ô$�Ø—’‘”�Ý”]¥6Ô#7Ñ8Ô8ð 3¸BØ—H’H�VÔ1Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð		3ð 		3ð 		3ñ 		3ô 		3ð 		3ð 		3ð 		3ð 		3ð 		3ð 		3øøøð 		3ð 		3ð 		3ð 		3ð ŒyÐÐÐØŒyÐÐÐØŒxŒ|˜qœuÒ$Ð$Ð$Ð$ØŒxŒ} §¢¡¤Ò(Ð(Ð(Ð(Ð(Ð(sZ   ¯C&ÁACÂ B8Â,CÂ8B<Â<CÂ?B<Ã CÃC&ÃC	ÃC&ÃC	ÃC&Ã&C*Ã-C*c                 óL  — g d¢}d                      |¦  «                             ¦   «         }t          dt          j        ¦   «         › d�|i¦  «        5  t          j        ¦   «         }|                     ¦   «         dk    sJ ‚|                     ¦   «         t
          j	        k    sJ ‚| 
                    ¦   «         dk    sJ ‚|                     ¦   «         dt          z  t          j        ¦   «         z   k    sJ ‚|                     ¦   «         }|j        dt          z  k    sJ ‚|j        d	t          z  k    sJ ‚|j        d
t          z  k    sJ ‚|j        dt          z  k    sJ ‚|j        dt          z  k    sJ ‚|                     ¦   «         dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )N)*rç  z(cat)ÚZÚ1rç  rç  rç  rç  rç  rç  rç  rç  rç  Ú2Ú3Ú4Ú5rç  rç  rç  rç  Ú6rç  rç  rç  rç  rç  rç  rç  rç  rç  rç  rç  rç  rç  rç  rç  rç  rx  rç  rç  Ú7r„   r!  z/statÚcatr~   r0  r.  r¹   r?   r   r2  )rM   rç   r¥   r7  r­  r°   rš  r—   ÚstatusÚSTATUS_ZOMBIEÚppidÚcreate_timer   r|  r5  rŒ  ÚsystemÚchildren_userÚchildren_systemÚiowaitÚcpu_num)r³   r˜   rš   r§  Úcpus        r2   Útest_stat_file_parsingz"TestProcess.test_stat_file_parsing:  sÚ  € ð+
ð +
ð +
ˆðX —(’(˜4‘.”.×'Ò'Ñ)Ô)ˆÝÐ ;­¬©¬Ð ;Ð ;Ð ;¸WÐEÑFÔFð 	$ð 	$Ý”Ñ Ô ˆAØ—6’6‘8”8˜uÒ$Ð$Ð$Ð$Ø—8’8‘:”:¥Ô!5Ò5Ð5Ð5Ð5Ø—6’6‘8”8˜q’=�=�=�=Ø—=’=‘?”? a­+¡o½Ô8HÑ8JÔ8JÑ&JÒJÐJÐJÐJØ—+’+‘-”-ˆCØ”8˜q¥;™Ò.Ð.Ð.Ð.Ø”: ¥[¡Ò0Ð0Ð0Ð0ØÔ$¨­K©Ò7Ð7Ð7Ð7ØÔ&¨!­k©/Ò9Ð9Ð9Ð9Ø”: ¥[¡Ò0Ð0Ð0Ð0Ø—9’9‘;”; !Ò#Ð#Ð#Ð#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	$ð 	$s   ÁD9FÆFÆ Fc                 ó  — t          j        d¦  «                             ¦   «         }t          dt	          j        ¦   «         › d�|i¦  «        5  t          j        ¦   «         }|                     ¦   «         j	        dk    sJ ‚|                     ¦   «         j
        dk    sJ ‚|                     ¦   «         dk    sJ ‚|                     ¦   «         }|j        dk    sJ ‚|j        dk    sJ ‚|j        d	k    sJ ‚|                     ¦   «         }|j        d
k    sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚|j                             ¦   «         t'          t)          d¦  «        ¦  «        k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nzó            Uid:	1000	1001	1002	1003
            Gid:	1004	1005	1006	1007
            Threads:	66
            Cpus_allowed:	f
            Cpus_allowed_list:	0-7
            voluntary_ctxt_switches:	12
            nonvoluntary_ctxt_switches:	13r!  rÅ  rº   é   éB   iè  ié  iê  iì  ií  iî  r3  )rå   ræ   rç   r¥   r7  r­  r°   rš  Únum_ctx_switchesÚ	voluntaryÚinvoluntaryÚnum_threadsÚuidsÚrealÚ	effectiveÚsavedÚgidsÚ_procÚ_get_eligible_cpusÚlistrL   )r³   rš   r§  r�  r‘  s        r2   Útest_status_file_parsingz$TestProcess.test_status_file_parsingv  så  € Ý”/ð #/ñ 0ô 0÷ 17²±´ð 	õ Ð =­¬©¬Ð =Ð =Ð =¸wÐGÑHÔHð 	Bð 	BÝ”Ñ Ô ˆAØ×%Ò%Ñ'Ô'Ô1°RÒ7Ð7Ð7Ð7Ø×%Ò%Ñ'Ô'Ô3°rÒ9Ð9Ð9Ð9Ø—=’=‘?”? bÒ(Ð(Ð(Ð(Ø—6’6‘8”8ˆDØ”9 Ò$Ð$Ð$Ð$Ø”> TÒ)Ð)Ð)Ð)Ø”: Ò%Ð%Ð%Ð%Ø—6’6‘8”8ˆDØ”9 Ò$Ð$Ð$Ð$Ø”> TÒ)Ð)Ð)Ð)Ø”: Ò%Ð%Ð%Ð%Ø”7×-Ò-Ñ/Ô/µ4½¸a¹¼±>´>ÒAÐAÐAÐAÐAð	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bs   ÁDE6Å6E:Å=E:c                 óZ  — t          j        dt          t          j        d¦  «        ¬¦  «        5 }t          j        ¦   «         }t          j        d¦  «        5  |                     ¦   «         g k    sJ ‚|j        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr7  r[   r[  rA  )	r   r£   r  r8  rB  r°   rš  r  rë   re  s      r2   Ú!test_net_connections_enametoolongz-TestProcess.test_net_connections_enametoolongŽ  s/  € õ ŒZØ)Ý¥Ô 2°BÑ7Ô7ð
ñ 
ô 
ð 	 ð Ý”Ñ Ô ˆAÝ”Ð3Ñ4Ô4ð  ð  Ø×(Ò(Ñ*Ô*¨bÒ0Ð0Ð0Ð0Ø”x����ð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð 	 ð 	 s5   ¯(B Á$BÁ<B ÂB	ÂB ÂB	ÂB Â B$Â'B$N)rÉ   rÊ   rË   r   r  r#  r   rj  rk  r   r0  r;  r>  rD  rG  rO  rR  rT  rX  ra  rc  rf  ri  r   rp  r…  r•  r—  r@   rE   r2   r  r    s“  € € € € € àÐÑÔð	<ð 	<ñ Ôð	<ð%ð %ð %ðD „[×Ò˜Ð%9ÐÑ:Ô:ð6ð 6ñ ;Ô:ð6ðB ð  ð  ð. ð  ð  ð$ð $ð $ð&ð ð ðð ð ð ð ð ð 	ð 	ð 	ð9ð 9ð 9ð+ð +ð +ð6
!ð 
!ð 
!ð	ð 	ð 	ð$ð $ð $ð „[×Ò˜J˜¨ÐÑ?Ô?ð)ð )ñ @Ô?ð)ð&:$ð :$ð :$ðxBð Bð Bð0 ð  ð  ð  ð  rE   r  c                   ó„   — e Zd ZdZed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Z e¦   «         d
„ ¦   «         Zd„ Zd„ ZdS )ÚTestProcessAgainstStatusa  /proc/pid/stat and /proc/pid/status have many values in common.
    Whenever possible, psutil uses /proc/pid/stat (it's faster).
    For all those cases we check that the value found in
    /proc/pid/stat (by psutil) matches the one found in
    /proc/pid/status.
    c                 ó6   — t          j        ¦   «         | _        d S rz   )r°   rš  Úproc)Úclss    r2   Ú
setUpClassz#TestProcessAgainstStatus.setUpClass¥  s   € å”>Ñ#Ô#ˆŒˆˆrE   c                 óª  — t           j                             d| j        j        › d�¦  «        5 }|D ]„}|                     ¦   «         }|                     |¦  «        rY|                     d¦  «        d         }	 t          |¦  «        c cd d d ¦  «         S # t          $ r |cY c cd d d ¦  «         S w xY wŒ…t          d|›�¦  «        ‚# 1 swxY w Y   d S )Nr!  rÅ  ú	r.  r…   )
r°   Ú_psplatformÚ	open_textr›  r¤  r†   rl   Ú	partitionro   rK   )r³   Ú	linestartrQ   rS   rB  s        r2   Úread_status_filez)TestProcessAgainstStatus.read_status_file©  sW  € ÝÔ×)Ò)Ø+�T”Y”]Ð+Ð+Ð+ñ
ô 
ð 	:àØð %ð %�Ø—z’z‘|”|�Ø—?’? 9Ñ-Ô-ð %Ø ŸNšN¨4Ñ0Ô0°Ô3�Eð%Ý" 5™zœzÐ)Ð)ð	:ð 	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:øõ &ð %ð %ð %Ø$˜˜˜˜ð	:ð 	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð%øøøð	%õ Ð8¨9Ð8Ð8Ñ9Ô9Ð9ð	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð 	:ð 	:s6   ®A	CÁ8BÂCÂB2Â!CÂ1B2Â2CÃCÃCc                 ón   — |                       d¦  «        }| j                             ¦   «         |k    sJ ‚d S )NzName:)r¤  r›  r—   ©r³   rB  s     r2   Ú	test_namez"TestProcessAgainstStatus.test_name·  ó8   € Ø×%Ò% gÑ.Ô.ˆØŒy�~Š~ÑÔ 5Ò(Ð(Ð(Ð(Ð(Ð(rE   c                 ó   — |                       d¦  «        }||                     d¦  «        dz   |                     d¦  «        …         }|                     dd¦  «        }| j                             ¦   «         |k    sJ ‚d S )NzState:ú(r~   ú)r„   r@  )r¤  rl  Úrfindr³  r›  r{  r¦  s     r2   Útest_statusz$TestProcessAgainstStatus.test_status»  sw   € Ø×%Ò% hÑ/Ô/ˆØ�e—j’j ‘o”o¨Ñ)¨E¯KªK¸Ñ,<Ô,<Ð<Ô=ˆØ—’˜c 3Ñ'Ô'ˆØŒy×ÒÑ!Ô! UÒ*Ð*Ð*Ð*Ð*Ð*rE   c                 ón   — |                       d¦  «        }| j                             ¦   «         |k    sJ ‚d S )NzPPid:)r¤  r›  r}  r¦  s     r2   Ú	test_ppidz"TestProcessAgainstStatus.test_ppidÁ  r¨  rE   c                 ón   — |                       d¦  «        }| j                             ¦   «         |k    sJ ‚d S )NzThreads:)r¤  r›  rŒ  r¦  s     r2   Útest_num_threadsz)TestProcessAgainstStatus.test_num_threadsÅ  s:   € Ø×%Ò% jÑ1Ô1ˆØŒy×$Ò$Ñ&Ô&¨%Ò/Ð/Ð/Ð/Ð/Ð/rE   c                 óæ   — |                       d¦  «        }t          t          t          |                     ¦   «         dd…         ¦  «        ¦  «        }| j                             ¦   «         |k    sJ ‚d S )NzUid:r~   r?   )r¤  r‹   rŒ   ro   rH   r›  r�  r¦  s     r2   Ú	test_uidsz"TestProcessAgainstStatus.test_uidsÉ  ó`   € Ø×%Ò% fÑ-Ô-ˆÝ•c�#˜uŸ{š{™}œ}¨Q¨q¨SÔ1Ñ2Ô2Ñ3Ô3ˆØŒy�~Š~ÑÔ 5Ò(Ð(Ð(Ð(Ð(Ð(rE   c                 óæ   — |                       d¦  «        }t          t          t          |                     ¦   «         dd…         ¦  «        ¦  «        }| j                             ¦   «         |k    sJ ‚d S )NzGid:r~   r?   )r¤  r‹   rŒ   ro   rH   r›  r‘  r¦  s     r2   Ú	test_gidsz"TestProcessAgainstStatus.test_gidsÎ  r´  rE   c                 óê   — |                       d¦  «        }| j                             ¦   «         j        |k    sJ ‚|                       d¦  «        }| j                             ¦   «         j        |k    sJ ‚d S )Nzvoluntary_ctxt_switches:znonvoluntary_ctxt_switches:)r¤  r›  r‰  rŠ  r‹  r¦  s     r2   Útest_num_ctx_switchesz.TestProcessAgainstStatus.test_num_ctx_switchesÓ  st   € à×%Ò%Ð&@ÑAÔAˆØŒy×)Ò)Ñ+Ô+Ô5¸Ò>Ð>Ð>Ð>Ø×%Ò%Ð&CÑDÔDˆØŒy×)Ò)Ñ+Ô+Ô7¸5Ò@Ð@Ð@Ð@Ð@Ð@rE   c                 ó&  — |                       d¦  «        }dt          |¦  «        v rht          t          |                     d¦  «        ¦  «        \  }}| j                             ¦   «         t          t          ||dz   ¦  «        ¦  «        k    sJ ‚d S d S )NúCpus_allowed_list:r@  r~   )	r¤  r“   rŒ   ro   rH   r›  Úcpu_affinityr”  rL   )r³   rB  Úmin_Úmax_s       r2   Útest_cpu_affinityz*TestProcessAgainstStatus.test_cpu_affinityÚ  s‰   € Ø×%Ò%Ð&:Ñ;Ô;ˆØ•#�e‘*”*ÐÐÝ�S %§+¢+¨cÑ"2Ô"2Ñ3Ô3‰JˆD�$Ø”9×)Ò)Ñ+Ô+­tµE¸$ÀÀqÁÑ4IÔ4IÑ/JÔ/JÒJÐJÐJÐJð ÐàJÐJrE   c                 ó  — |                       d¦  «        }t          j        d¦  «        5 }| j        j                             ¦   «          d d d ¦  «         n# 1 swxY w Y   dt          |¦  «        v r|j        rJ ‚d S |j        sJ ‚d S )Nrº  zpsutil._pslinux.per_cpu_timesr@  )r¤  r   r£   r›  r’  r“  r“   rë   )r³   rB  r¤   s      r2   Útest_cpu_affinity_eligible_cpusz8TestProcessAgainstStatus.test_cpu_affinity_eligible_cpusà  sÃ   € Ø×%Ò%Ð&:Ñ;Ô;ˆÝŒZÐ7Ñ8Ô8ð 	1¸AØŒIŒO×.Ò.Ñ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1à•#�e‘*”*ÐÐØ”xÐÐÐÐÐà”8ˆOˆOˆOˆOˆOs   ªAÁAÁAN)rÉ   rÊ   rË   Ú__doc__Úclassmethodr�  r¤  r§  r­  r¯  r±  r³  r¶  r   r¸  r¾  rÀ  r@   rE   r2   r™  r™  œ  së   € € € € € ðð ð ð$ð $ñ „[ð$ð:ð :ð :ð)ð )ð )ð+ð +ð +ð)ð )ð )ð0ð 0ð 0ð)ð )ð )ð
)ð )ð )ð
 ÐÑÔðAð Añ ÔðAðKð Kð Kðð ð ð ð rE   r™  c                   ó   — e Zd Zd„ ZdS )Ú	TestUtilsc                 óÂ   — t          j        dd¬¦  «        5 }t          j                             d¦  «        dk    sJ ‚|j        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nzos.readlinkzfoo (deleted)r{  rJ  rI  )r   r£   r°   r   Úreadlinkrë   r(  s     r2   Útest_readlinkzTestUtils.test_readlinkñ  s§   € ÝŒZ˜°OÐDÑDÔDð 	ÈÝÔ%×.Ò.¨uÑ5Ô5¸Ò>Ð>Ð>Ð>Ø”8ˆOˆOˆOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   —/AÁAÁAN)rÉ   rÊ   rË   rÇ  r@   rE   r2   rÄ  rÄ  ï  s#   € € € € € ðð ð ð ð rE   rÄ  )]rÁ  rm   Ú
contextlibr8  r”   r7  r„  r�   rn  r&   r-   rå   r&  rè   Úunittestr   r°   r   Úpsutil.testsr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ra  r   r   r   r   rl  r(  ÚdirnameÚ__file__ÚHEREr,   r`   r6   r:   r9  r3   r7   r;   rY   rb   rv   r�   rƒ   r�   Úcontextmanagerr¥   rª   rj  rk  r®   rÍ   rÞ   r  r,  r=  rq  r‡  r·  r½  rÄ  rÒ  rë  rþ  r  r-  r^  rz  r°  rã  rï  r	  r  r™  rÄ  r@   rE   r2   ú<module>rÏ     sÍ  ðð Ð ð Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø €€€Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð à €€€Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø $Ð $Ð $Ð $Ð $Ð $Ø %Ð %Ð %Ð %Ð %Ð %Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ø -Ð -Ð -Ð -Ð -Ð -Ø *Ð *Ð *Ð *Ð *Ð *Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø #Ð #Ð #Ð #Ð #Ð #Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø )Ð )Ð )Ð )Ð )Ð )Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ð 	ð ,Ø+Ð+Ð+Ð+Ð+Ð+Ø2Ð2Ð2Ð2Ð2Ð2Ø4Ð4Ð4Ð4Ð4Ð4Ø+Ð+Ð+Ð+Ð+Ð+ð 
„w‡‚�r”w—’ xÑ0Ô0Ñ1Ô1€Ø€Ø€Ø€Ø€Øð Ø€Kð	
ð 	
ð 	
ð	
ð 	
ð 	
ð	
ð 	
ð 	
ðð ð ð,Fð Fð FðDð Dð DðCð Cð Cð(@ð @ð @ð@ð @ð @ð Ôðð ñ Ôðð( Ôðð ñ Ôðð( „×Ò˜�I lÐÑ3Ô3ð3Bð 3Bð 3Bð 3Bð 3B¨ñ 3Bô 3Bñ 4Ô3ð3Bðl „×Ò˜�I lÐÑ3Ô3ð.Dð .Dð .Dð .Dð .D¨>ñ .Dô .Dñ 4Ô3ð.Dðb „×Ò˜�I lÐÑ3Ô3ðF-ð F-ð F-ð F-ð F- >ñ F-ô F-ñ 4Ô3ðF-ð\ „×Ò˜�I lÐÑ3Ô3ðPð Pð Pð Pð P˜>ñ Pô Pñ 4Ô3ðPðp „×Ò˜�I lÐÑ3Ô3ð.ð .ð .ð .ð .˜ñ .ô .ñ 4Ô3ð.ð& „×Ò˜�I lÐÑ3Ô3ðF ð F ð F ð F ð F  ñ F ô F ñ 4Ô3ðF ðR „×Ò˜�I lÐÑ3Ô3ðð ð ð ð ˜nñ ô ñ 4Ô3ðð@ „×Ò˜�I lÐÑ3Ô3ðV/ð V/ð V/ð V/ð V/˜^ñ V/ô V/ñ 4Ô3ðV/ðr „×Ò˜�I lÐÑ3Ô3ð6ð 6ð 6ð 6ð 6˜ñ 6ô 6ñ 4Ô3ð6ð „×Ò˜�I lÐÑ3Ô3ð	?ð 	?ð 	?ð 	?ð 	?�.ñ 	?ô 	?ñ 4Ô3ð	?ð" „×Ò˜�I lÐÑ3Ô3ð?ð ?ð ?ð ?ð ?˜>ñ ?ô ?ñ 4Ô3ð?ðP „×Ò˜�I lÐÑ3Ô3ð35ð 35ð 35ð 35ð 35˜>ñ 35ô 35ñ 4Ô3ð35ðl „×Ò˜�I lÐÑ3Ô3ð0Eð 0Eð 0Eð 0Eð 0E˜nñ 0Eô 0Eñ 4Ô3ð0Eðf „×Ò˜�I lÐÑ3Ô3ðð ð ð ð ˜~ñ ô ñ 4Ô3ðð< „×Ò˜�I lÐÑ3Ô3ð<)ð <)ð <)ð <)ð <)˜~ñ <)ô <)ñ 4Ô3ð<)ð~ „×Ò˜�I lÐÑ3Ô3ðD*ð D*ð D*ð D*ð D*˜~ñ D*ô D*ñ 4Ô3ðD*ðN „×Ò˜�I lÐÑ3Ô3ð<2ð <2ð <2ð <2ð <2˜^ñ <2ô <2ñ 4Ô3ð<2ðH „×Ò˜�I lÐÑ3Ô3ðnð nð nð nð nˆ~ñ nô nñ 4Ô3ðnðl „×Ò˜�I lÐÑ3Ô3Ø„×Ò˜�O¨LÐÑ9Ô9ðJð Jð Jð Jð J˜ñ Jô Jñ :Ô9ñ 4Ô3ðJðD „×Ò˜�I lÐÑ3Ô3ðð ð ð ð  ñ ô ñ 4Ô3ðð( „×Ò˜�I lÐÑ3Ô3ð?-ð ?-ð ?-ð ?-ð ?-˜nñ ?-ô ?-ñ 4Ô3ð?-ðD „×Ò˜�I lÐÑ3Ô3ð+ð +ð +ð +ð +�nñ +ô +ñ 4Ô3ð+ð6 „×Ò˜�I lÐÑ3Ô3ðy ð y ð y ð y ð y �.ñ y ô y ñ 4Ô3ðy ðx „×Ò˜�I lÐÑ3Ô3ðJð Jð Jð Jð J˜~ñ Jô Jñ 4Ô3ðJðd „×Ò˜�I lÐÑ3Ô3ðð ð ð ð �ñ ô ñ 4Ô3ðð ð rE   