
    ɧdMg              
       ,
   d Z ddlmZ ddlm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	mZ ddl	mZ ddl	mZ 	 dd	l	mZ n# e$ r dZY nw xY w	 dd
l	mZ n# e$ r dZY nw xY wej        dk    rddlZndZej        d         dk    Z e ej        dd                    Zg dZej        dk    Zej        dk    Zej                             d          Z!ej                             d          Z"e"Z#ej                             d          Z$ej                             d          Z%ej                             d          Z&e$pe%pe&Z'ej                             d          Z(ej                             d          Z)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1d Z2d!Z3d"Z4d#Z5d$Z6d%Z7d&Z8d'Z9d(Z:d)Z;d*Z<d+Z=d,Z>d-Z?d.Z@d/ZAd0ZBd1ZCed2ZDd3ZEdZFn5 G d4 d5ejG                  ZH eI            J                    eHjK                   ed6ZLd7ZMn5 G d8 d9ejG                  ZN eI            J                    eNjK                    ejO                    ZPesd:ZQn"	  ejR                    ZQn# eS$ r	 erd;nd:ZQY nw xY w ed<g d=          ZT ed>g d?          ZU ed@g dA          ZV edBg dC          ZW edDg dE          ZX edFg dG          ZY edHg dI          ZZ edJg dK          Z[ edLg dM          Z\ edNg dO          Z] edPg dQ          Z^ edRg dS          Z_ edTg dU          Z` edVdWdXg          Za edYg dZ          Zb ed[d\d]g          Zc ed^g d_          Zd ed`g da          Ze edbg da          Zf edcg dd          Zg ededfdgg          Zh edhdidjg          Zi edkg dl          Zj edmdndog          ZkeeegeegfeegegfegegfeegegfegegfeegeegfegeegfegeegfdpZle elJ                    egegfegegfdq           eelJ                    dregeegfi            G ds dtem          Zn G du dven          Zo G dw dxeo          Zp G dy dzen          Zq G d{ d|en          Zrdd}Zsd~ Ztd Zud Zvd Zwetd             Zxd Zyd Zzd Z{ddZ|d Z} G d d          Z~d Z e~            Zej        e_        ej        e_        d Zd ZddZd Zerd Znd Zetej        fd            ZddZddej        fdZd ZdS )z9Common objects shared by __init__.py and _ps*.py modules.    )division)print_functionN)
namedtuple)AF_INET)
SOCK_DGRAM)SOCK_STREAM)AF_INET6)AF_UNIX)      r   PSUTIL_DEBUG)NFREEBSDBSDLINUXNETBSDOPENBSDMACOSOSXPOSIXSUNOSWINDOWS
CONN_CLOSECONN_CLOSE_WAITCONN_CLOSINGCONN_ESTABLISHEDCONN_FIN_WAIT1CONN_FIN_WAIT2CONN_LAST_ACKCONN_LISTEN	CONN_NONECONN_SYN_RECVCONN_SYN_SENTCONN_TIME_WAITNIC_DUPLEX_FULLNIC_DUPLEX_HALFNIC_DUPLEX_UNKNOWNSTATUS_DEADSTATUS_DISK_SLEEPSTATUS_IDLESTATUS_LOCKEDSTATUS_RUNNINGSTATUS_SLEEPINGSTATUS_STOPPEDSTATUS_SUSPENDEDSTATUS_TRACING_STOPSTATUS_WAITINGSTATUS_WAKE_KILLSTATUS_WAKINGSTATUS_ZOMBIESTATUS_PARKEDENCODINGENCODING_ERRSr	   pconn	pcputimespctxswpgidspiopionice	popenfilepthreadpuidssconn	scpustatssdiskio	sdiskpart
sdiskusagesnetiosnicaddr	snicstatssswapsuser	conn_tmapdeprecated_methodisfile_strictmemoizeparse_environ_blockpath_exists_strictusage_percentsupports_ipv6sockfam_to_enumsocktype_to_enumwrap_numbersbytes2humanconn_to_ntupledebughiliteterm_supports_colorsprint_colorposixntlinuxdarwin)freebsdmidnightbsdopenbsdnetbsd)sunossolarisaixrunningsleepingz
disk-sleepstoppedztracing-stopzombiedeadz	wake-killwakingidlelockedwaiting	suspendedparkedESTABLISHEDSYN_SENTSYN_RECV	FIN_WAIT1	FIN_WAIT2	TIME_WAITCLOSE
CLOSE_WAITLAST_ACKLISTENCLOSINGNONE      c                       e Zd ZdZdZdZdS )	NicDuplexr}   r~   r   N)__name__
__module____qualname__r$   r%   r&        .lib/python3.11/site-packages/psutil/_common.pyr   r      s         r   r   c                       e Zd ZdZdZdS )BatteryTimer   r   N)r   r   r   POWER_TIME_UNKNOWNPOWER_TIME_UNLIMITEDr   r   r   r   r      s        !r   r   replacesurrogateescaperH   )totalusedfreepercentsinsoutrD   )r   r   r   r   rB   )
read_countwrite_count
read_byteswrite_bytes	read_time
write_timerC   )device
mountpointfstypeoptsmaxfilemaxpathrE   )
bytes_sent
bytes_recvpackets_sentpackets_recverrinerroutdropindropoutrI   )nameterminalhoststartedpidr@   )fdfamilytypeladdrraddrstatusr   rF   )r   addressnetmask	broadcastptprG   )isupduplexspeedmturA   )ctx_switches
interruptssoft_interruptssyscallsscpufreq)currentminmaxshwtemp)labelr   highcriticalsbattery)r   secsleftpower_pluggedsfanr   r   r8   )usersystemchildren_userchildren_systemr=   pathr   r>   )id	user_timesystem_timer?   )real	effectivesavedr:   r;   )r   r   r   r   r<   ioclassvaluer9   	voluntaryinvoluntaryr7   )r   r   r   r   r   r   addripport)alltcptcp4udpudp4inetinet4inet6)tcp6udp6unixc                   (    e Zd ZdZdZd Zd Zd ZdS )ErrorzQBase exception class. All other psutil exceptions inherit
    from this one.
    psutilc                     	 t          j                    }n# t          $ r i }Y nw xY w|D ]}t          | |d           }|r|||<   |S N)collectionsOrderedDictAttributeErrorgetattr)selfattrsinfor   r   s        r   	_infodictzError._infodict  sr    	*,,DD 	 	 	DDD	 	# 	#DD$--E #"T
s    %%c                     |                      d          }|r5dd                    d |                                D                       z  }nd }d                    d | j        |fD                       S )N)r   ppidr   z(%s), c                 "    g | ]\  }}|d |S =r   .0kvs      r   
<listcomp>z!Error.__str__.<locals>.<listcomp>)  s'    ;;;daAAAqq!;;;r    c                     g | ]}||S r   r   )r   xs     r   r   z!Error.__str__.<locals>.<listcomp>,  s    ===q1====r   )r   joinitemsmsgr   r   detailss      r   __str__zError.__str__$  s    ~~566 	tyy;;djjll;;; =  = =GG Gxx==TXw$7===>>>r   c                     |                      d          }d                    d |                                D                       }d| j        j        d|dS )N)r   r   r   secondsr  r   c                 "    g | ]\  }}|d |S r   r   r   s      r   r   z"Error.__repr__.<locals>.<listcomp>1  s'    GGG$!Q11-GGGr   zpsutil.())r   r  r  	__class__r   r  s      r   __repr__zError.__repr__.  sX    ~~GHH))GG$**,,GGGHH"&."9"9"9777CCr   N)r   r   r   __doc__r   r	  r  r   r   r   r   r     sW          J	 	 	? ? ?D D D D Dr   r   c                       e Zd ZdZdZddZdS )NoSuchProcesszXException raised when a process with a certain PID doesn't
    or no longer exists.
    r   Nc                 h    t                               |            || _        || _        |pd| _        d S )Nzprocess no longer existsr   __init__r   r   r  r   r   r   r  s       r   r  zNoSuchProcess.__init__;  s3    t	44r   NNr   r   r   r  r  r   r   r   r  r  5  s9          J5 5 5 5 5 5r   r  c                       e Zd ZdZdZddZdS )ZombieProcessa1  Exception raised when querying a zombie process. This is
    raised on macOS, BSD and Solaris only, and not always: depending
    on the query the OS may be able to succeed anyway.
    On Linux all zombie processes are querable (hence this is never
    raised). Windows doesn't have zombie processes.
    r   Nc                 `    t                               | |||           || _        |pd| _        d S )Nz"PID still exists but it's a zombie)r  r  r   r  )r   r   r   r   r  s        r   r  zZombieProcess.__init__K  s4    tS$444	>>r   NNNr  r   r   r   r  r  B  s9          J? ? ? ? ? ?r   r  c                       e Zd ZdZdZddZdS )AccessDeniedz@Exception raised when permission to perform an action is denied.r   Nc                 h    t                               |            || _        || _        |pd| _        d S )N r  r  s       r   r  zAccessDenied.__init__U  s1    t	9"r   r  r  r   r   r   r  r  Q  s3        JJJ     r   r  c                       e Zd ZdZdZddZdS )TimeoutExpiredzWRaised on Process.wait(timeout) if timeout expires and process
    is still alive.
    r   Nc                 x    t                               |            || _        || _        || _        d|z  | _        d S )Nztimeout after %s seconds)r   r  r  r   r   r  )r   r  r   r   s       r   r  zTimeoutExpired.__init__b  s9    t	-7r   r  r  r   r   r   r#  r#  \  s9          J8 8 8 8 8 8r   r#  c                 x    	 t          |           |z  dz  }|t          ||          }|S # t          $ r Y dS w xY w)z5Calculate percentage usage of 'used' against 'total'.d   Ng        )floatroundZeroDivisionError)r   r   round_rets       r   rP   rP   o  s^    T{{U"c)  	%V$$C
    sss   + 
99c                 f     t          j                    fd            }fd}i ||_        |S )a  A simple memoize decorator for functions supporting (hashable)
    positional arguments.
    It also provides a cache_clear() function for clearing the cache:

    >>> @memoize
    ... def foo()
    ...     return 1
        ...
    >>> foo()
    1
    >>> foo.cache_clear()
    >>>
    c                      | t          t          |                                                    f}	 |         S # t          $ r  | i |x}|<   |cY S w xY wr   )	frozensetsortedr  KeyError)argskwargskeyr+  cachefuns       r   wrapperzmemoize.<locals>.wrapper  su    Yvfllnn55667	: 	 	 	"sD3F333C%*JJJ	s   ; AAc                  0                                       dS )zClear cache.N)clear)r4  s   r   cache_clearzmemoize.<locals>.cache_clear  s    r   )	functoolswrapsr9  )r5  r6  r9  r4  s   `  @r   rM   rM   {  sf     _S          E%GNr   c                 n     t          j                    fd            }d }d }||_        ||_        |S )a  A memoize decorator which is disabled by default. It can be
    activated and deactivated on request.
    For efficiency reasons it can be used only against class methods
    accepting no arguments.

    >>> class Foo:
    ...     @memoize
    ...     def foo()
    ...         print(1)
    ...
    >>> f = Foo()
    >>> # deactivated (default)
    >>> foo()
    1
    >>> foo()
    1
    >>>
    >>> # activated
    >>> foo.cache_activate(self)
    >>> foo()
    1
    >>> foo()
    >>> foo()
    >>>
    c                     	 | j                  }nM# t          $ r  |           cY S t          $ r*  |           }	 || j         <   n# t          $ r Y nw xY wY nw xY w|S r   )_cacher   r0  )r   r+  r5  s     r   r6  z'memoize_when_activated.<locals>.wrapper  s    	+c"CC 	 	 	3t99 		 		 		 #d))C#&C  !    		 
s7    AA
AA
AAAAAc                     i | _         dS )zjActivate cache. Expects a Process instance. Cache will be
        stored as a "_cache" instance attribute.N)r>  procs    r   cache_activatez.memoize_when_activated.<locals>.cache_activate  s     r   c                 .    	 | ` dS # t          $ r Y dS w xY w)zDeactivate and clear cache.N)r>  r   r@  s    r   cache_deactivatez0memoize_when_activated.<locals>.cache_deactivate  s2    	 	 	 	DD	s    
)r:  r;  rB  rD  )r5  r6  rB  rD  s   `   r   memoize_when_activatedrE    sh    4 _S    &  
   ,G/GNr   c                     	 t          j        |           }t          j        |j                  S # t          $ r+}|j        t
          j        t
          j        fv r Y d}~dS d}~ww xY w)zSame as os.path.isfile() but does not swallow EACCES / EPERM
    exceptions, see:
    http://mail.python.org/pipermail/python-dev/2012-June/120787.html
    NF)osstatS_ISREGst_modeOSErrorerrnoEPERMEACCES)r   sterrs      r   rL   rL     sq    
(WT]] |BJ'''    9el33 	uuuuus   / 
A$ AA$c                     	 t          j        |            dS # t          $ r+}|j        t          j        t          j        fv r Y d}~dS d}~ww xY w)zSame as os.path.exists() but does not swallow EACCES / EPERM
    exceptions, see:
    http://mail.python.org/pipermail/python-dev/2012-June/120787.html
    TNF)rG  rH  rK  rL  rM  rN  )r   rP  s     r   rO   rO     sd    

 t    9el33 	uuuuus    
A AAc                  (   t           j        rt          dS 	 t          j         t          t           j                  } t	          j        |           5  |                     d           ddd           n# 1 swxY w Y   dS # t           j        $ r Y dS w xY w)z2Return True if IPv6 is supported on this platform.NF)z::1r   T)sockethas_ipv6r	   r   
contextlibclosingbinderror)socks    r   rQ   rQ     s     ? h u}Xv'9::%% 	" 	"IIj!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"t<   uus5   8A> A1%A> 1A55A> 8A59A> >BBc                    i }d}t           }	 |                     d|          }||k    rnU|                     d||          }||k    r2| ||         }| |dz   |         }|r|                                }|||<   |dz   }r|S )zCParse a C environ block of environment variables into a dictionary.r   T r   r~   )r   findupper)datar+  posWINDOWS_next_pos	equal_posr3  r   s           r   rN   rN     s     C
C H99T3''s? 	IIc311	s? 	s9}%CQx/0E "iikkCHl  Jr   c                 b    t           | S 	 t          j        |           S # t          $ r | cY S w xY w)zConvert a numeric socket family value to an IntEnum member.
    If it's not a known member, return the numeric value itself.
    )enumrS  AddressFamily
ValueErrornums    r   rR   rR   "  sK      
	',,, 	 	 	JJJ	    ..c                 b    t           | S 	 t          j        |           S # t          $ r | cY S w xY w)zConvert a numeric socket type value to an IntEnum member.
    If it's not a known member, return the numeric value itself.
    )rd  rS  
SocketKindrf  rg  s    r   rS   rS   /  sK      
	$S))) 	 	 	JJJ	ri  c           	      p   |t           j        t          fv r|r	t          | }|r	t          | }|t           j        k    r,|t          t          fv r|                    |t                    }nt          }t          |          }t          |          }|t          | |||||          S t          | ||||||          S )z2Convert a raw connection tuple to a proper ntuple.)rS  r   r	   r   r   getr    rR   rS   r7   r@   )r   famtype_r   r   r   
status_mapr   s           r   rV   rV   <  s    
v~x(( ! 	!%LE 	!%LE"" sw.A'A 	22
#

CU##E
 @ReUE6:::ReUE63???r   c                       fd}|S )zA decorator which can be used to mark a method as deprecated
    'replcement' is the method name which will be called instead.
    c                     | j         dd| j        | _        t          j        |           fd            }|S )Nz*() is deprecated and will be removed; use z
() insteadc                 h    t          j        t          d            t          |           |i |S )Nr}   )category
stacklevel)warningswarnDeprecationWarningr   )r   r1  r2  r  replacements      r   innerz/deprecated_method.<locals>.outer.<locals>.innerY  s:    M#(:qIIII-74--t>v>>>r   )r   r  r:  r;  )r5  rz  r  ry  s     @r   outerz deprecated_method.<locals>.outerS  se    LLL+++'; 	CK				? 	? 	? 	? 	? 
		? r   r   )ry  r{  s   ` r   rK   rK   O  s#    
 
 
 
 
 Lr   c                   8    e Zd ZdZd Zd Zd Zd Zd	dZd Z	dS )
_WrapNumberszNWatches numbers so that they don't overflow and wrap
    (reset to zero).
    c                 `    t          j                    | _        i | _        i | _        i | _        d S r   )	threadingLocklockr4  	remindersreminder_keysr   s    r   r  z_WrapNumbers.__init__f  s-    N$$	
r   c                     || j         vsJ || j        vsJ || j        vsJ || j         |<   t          j        t
                    | j        |<   t          j        t                    | j        |<   d S r   )r4  r  r  r   defaultdictintset)r   
input_dictr   s      r   	_add_dictz_WrapNumbers._add_dictl  s}    4:%%%%4>))))4-----%
4*6s;;t#.#:3#?#?4   r   c                    | j         |         }t          |                                          t          |                                          z
  }|D ]4}| j        |         |         D ]}| j        |         |= | j        |         |= 5dS )zIn case the number of keys changed between calls (e.g. a
        disk disappears) this removes the entry from self.reminders.
        N)r4  r  keysr  r  )r   r  r   old_dict	gone_keysgone_keyremkeys          r   _remove_dead_remindersz#_WrapNumbers._remove_dead_reminderst  s     :d#((3z/@/@+A+AA	! 	3 	3H,T28< 1 1N4(00"4(22	3 	3r   c                    || j         vr|                     ||           |S |                     ||           | j         |         }i }|                                D ]}||         }	 ||         }n# t          $ r |||<   Y %w xY wg }t          t          |                    D ]}	||	         }
||	         }||	f}|
|k     rA| j        |         |xx         |z  cc<   | j        |         |         	                    |           |
                    |
| j        |         |         z              t          |          ||<   || j         |<   |S )zkCache dict and sum numbers which overflow and wrap.
        Return an updated copy of `input_dict`
        )r4  r  r  r  r0  rangelenr  r  addappendtuple)r   r  r   r  new_dictr3  input_tuple	old_tuplebitsiinput_value	old_valuer  s                r   runz_WrapNumbers.run  s    tz! 	NN:t,,,##J555:d#??$$ 	( 	(C$S/K$SM		    !,	 D3{++,, H H)!n%aL	q* >N4(000I=000&t,S155f===K$.*>v*FFGGGG!$KKHSMM%
4s   &A//B BNc                    | j         5  |L| j                                         | j                                         | j                                         nQ| j                            |d           | j                            |d           | j                            |d           ddd           dS # 1 swxY w Y   dS )z>Clear the internal cache, optionally only for function 'name'.N)r  r4  r8  r  r  pop)r   r   s     r   r9  z_WrapNumbers.cache_clear  s    Y 	3 	3 3
  """$$&&&"((****
tT***""4..."&&tT222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   B B55B9<B9c                 l    | j         5  | j        | j        | j        fcddd           S # 1 swxY w Y   dS )z5Return internal cache dicts as a tuple of 3 elements.N)r  r4  r  r  r  s    r   
cache_infoz_WrapNumbers.cache_info  s    Y 	D 	DJ0BC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds   )--r   )
r   r   r   r  r  r  r  r  r9  r  r   r   r   r}  r}  a  s              @ @ @	3 	3 	3% % %N
3 
3 
3 
3D D D D Dr   r}  c                     t           j        5  t                               | |          cddd           S # 1 swxY w Y   dS )zGiven an `input_dict` and a function `name`, adjust the numbers
    which "wrap" (restart from zero) across different calls by adding
    "old value" to "new value" and return an updated dict.
    N)_wnr  r  )r  r   s     r   rT   rT     s    
 
 ) )wwz4(() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   599c                     t          | dfi |S )Nrb)openfnamer2  s     r   open_binaryr    s    t&&v&&&r   c                     t           r6|                    dt                     |                    dt                     t	          | dfi |S )zOn Python 3 opens a file in text mode by using fs encoding and
    a proper en/decoding errors handler.
    On Python 2 this is just an alias for open(name, 'rt').
    encodingerrorsrt)PY3
setdefaultr5   r6   r  r  s     r   	open_textr    sR    
  3 	*h///(M222t&&v&&&r   %(value).1f%(symbol)sc                 6   d}i }t          |dd                   D ]\  }}d|dz   dz  z  ||<   t          |dd                   D ]9}| ||         k    r+t          |           ||         z  }|t                      z  c S :|t	          |d         |           z  S )zUsed by various scripts. See:
    http://goo.gl/zeJZl

    >>> bytes2human(10000)
    '9.8K'
    >>> bytes2human(100001221)
    '95.4M'
    )	BKMGTPEZYr~   N
   r   )symbolr   )	enumeratereversedr'  localsdict)nformatsymbolsprefixr  sr  r   s           r   rU   rU     s     <GF'!""+&& & &1!a%2%q		7122;'' % %v 	%!HHvf~-EFHH$$$$	% D
!44444r   c                  0    t           j        d         j        S )z+Return updated psutil.PROCFS_PATH constant.r   )sysmodulesPROCFS_PATHr   r   r   get_procfs_pathr    s    ;x ,,r   c                 D    |                      t          t                    S )N)r  r  )decoder5   r6   r  s    r   r  r    s    xx-x@@@r   c                     | S r   r   r  s    r   r  r    s    r   c                     t           j        dk    rdS 	 dd l}|                                 sJ |                                 |                    d          dk    sJ 	 dS # t          $ r Y dS w xY w)Nr\   Tr   colorsF)rG  r   cursesisatty	setuptermtigetnum	Exception)filer  s     r   rY   rY     s    	w$ t{{}}x((1,,,,, t    uus   A	A   
A.-A.Fc                    t                      s| S g }t          ddddddddd	
	  	        }d|d<   	 ||         }n?# t          $ r2 t          dt	          |                                          z            w xY w|                    |           |r|                    d           dd                    |          d| dS )z*Return an highlighted version of 'string'.329133933435363730)	greenredbrownyellowblueviolet	lightbluegreydarkgrey29Nz#invalid color %r; choose between %s1z[;mz[0m)rY   r  r0  rf  listr  r  r  )r  colorboldattrr  s        r   rX   rX     s    !! D$d4dD4I I IFF4L"u " " ">! " " 	"" 	KK C"%((4....!!!44s	   : <A6c           
         t                      st          | |           dS t          r"t          t          | ||          |           dS ddl}d}|j        j        j        }|j        j        j        }t          dddd          }||d<   	 ||         }nB# t          $ r5 t          d	|d
t          |                                                    w xY w|r|dk    r|dz  }|t          j        u rdnd}	|j        |_         ||	          }
 ||
|           	 t          | |            ||
|           dS #  ||
|           w xY w)z$Print a colorized version of string.r  r   N   r}   r      )r  r  r  r  zinvalid color z; choose between    ii)rY   printr   rX   ctypeswindllKernel32GetStdHandleSetConsoleTextAttributer  r0  rf  r  r  r  stderrc_ulongrestype)r  r  r  r  r  DEFAULT_COLORr  r  r  	handle_idhandles              r   rZ   rZ      s     !! ;ad	 ;fQt$$4000000}-:M": 	  A1Aa888$t	-5MEE 	- 	- 	-*tFKKMM***, - - -	-  	EQJ 	QJE3:-6CC3	%~i((...	;!$##FM:::::##FM::::s   B ?CD9 9Ec                 P   t           rddl}|                    |                                j                  \  }}}}}t          | t                    r-t          | t          t          t          f          rd| z  } nd| z  } t          d|d|d| t          j                   dS dS )	z@If PSUTIL_DEBUG env var is set, print a debug message to stderr.r   Nzignoring %szignoring %rzpsutil-debug [:z]> r  )r   inspectgetframeinfocurrentframef_back
isinstancer  rK  IOErrorEnvironmentErrorr  r  r   )r  r  r  lineno	func_namelinesindexs          r   rW   rW   C  s     181E1E  "")2+ 2+.vy%c9%% 	*#2BCDD *#c)#c)EEE66633?:	 	 	 	 	 	 r   r   )r  )NF)r  
__future__r   r   r   rU  rL  r:  rG  rS  rH  r  r  rv  r   r   r   r   r	   ImportErrorr
   version_inford  r  boolgetenvr   __all__r   r   r   platform
startswithr   r   r   r   r   r   r   r   AIXr+   r,   r(   r-   r/   r3   r'   r1   r2   r)   r*   r0   r.   r4   r   r"   r!   r   r   r#   r   r   r   r   r   r    r$   r%   r&   IntEnumr   globalsupdate__members__r   r   r   getfilesystemencodingr5   r6   getfilesystemencodeerrorsr   rH   rD   rB   rC   rE   rI   r@   rF   rG   rA   r   r   r   r   r8   r=   r>   r?   r:   r;   r<   r9   r7   r   rJ   r  r   r  r  r  r#  rP   rM   rE  rL   rO   rQ   rN   rR   rS   rV   rK   r}  rT   r  r9  r  r  r  rU   r  r  stdoutrY   rX   rZ   rW   r   r   r   <module>r#     s
  
 @ ?
        % % % % % %              				   



      " " " " " "                     HHH   GGG v KKKKD 
qQtIBIna0011  H 	7
'T/(())
,
!
!"<
=
=
,
!
!)
,
,		 	 	*	*""F 455	le$$   $    ! 
	  
,OO    DL   
 GIIY*+++  ." " " " "dl " " " GII[,--- %3$&&
 BMMB5577 B B B-2A))	B 	
7 % % % 	& 	& Z&J&J&JKK

*Y !< !< !< = = J{ %; %; %; < <	 
H 4 4 4 
5 
5
 	
7JJJKK
7 . . . 	/ 	/ :jJJJL L J{$F$F$FGG	JNNNP P	 :j";";";<<
*7779 9 :j"J"J"JKKz&7I.//
 J{MMMO O	 J{VTN33	
*Y B B B
C
C
7:::;;
7:::;;j 6 6 6 7 7 *YG 4
5
5	H{M:	;	;
7 ' ' ' 	( 	( z&4.)) h(;
*CDh+/Y&h*.Y%x ;
";<i+z23j;
34	 		  k]+j\*    
  '[*56   D D D D DI D D DD
5 
5 
5 
5 
5E 
5 
5 
5? ? ? ? ?M ? ? ?    5   8 8 8 8 8U 8 8 8&	 	 	 	  @< < <~( ( (   	
 
 	
  8
 
 

 
 
@ @ @ @&  $TD TD TD TD TD TD TD TDn) ) ) lnn? . ' ' '' ' '5 5 5 5(- - -
  A A A A   	!j    	5 5 5 5( E
 ;  ;  ;  ;F    s6   A A! A!%A, ,A65A6I! !I/.I/