+
    i  c                   s   R t Rt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt ^ RIsR^
R^R^R^R^R^(R	^2R
^2R^R^/
t
R tRIR ltRJR ltRKR ltR t. RLOt. RMOtR tR tR tRNR ltR tROR lt]P0                  ! R. RPO4      tRQR ltR tRRR lt]P0                  ! R R!4      tRSR" ltR# tR$ t RJR% lt!R& t"RJR' lt#RRTRRURRV/t$]PJ                  RR3R( lt&R) t' ! R* R+4      t(R, t) ! R- R.]P0                  ! R/R04      4      t*Rs+R1 t,R2 t-R3 t.R4 t/R5 t0R6 t1R7 t2/ t3RWR8 lt4R9 t5R: t6R; t7R< t8R= t9R> t:R? t;/ t<RXR@ lt=RYt>Rs?RA t@RB tARC tBRD RE ltCRWRF RG lltD]ERH8X  d
   ]D! 4        R# R#   ]	 d    Rs ELOi ; i)Za  
    Copyright (c) 1999-2000, Marc-Andre Lemburg; mailto:mal@lemburg.com
    Copyright (c) 2000-2010, eGenix.com Software GmbH; mailto:info@egenix.com

    Permission to use, copy, modify, and distribute this software and its
    documentation for any purpose and without fee or royalty is hereby granted,
    provided that the above copyright notice appear in all copies and that
    both that copyright notice and this permission notice appear in
    supporting documentation or portions thereof, including modifications,
    that you make.

    EGENIX.COM SOFTWARE GMBH DISCLAIMS ALL WARRANTIES WITH REGARD TO
    THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
    FITNESS, IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL,
    INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
    FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
    NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
    WITH THE USE OR PERFORMANCE OF THIS SOFTWARE !

z1.0.9NZdevZalphaZaZbetabZcZRCZrcplZpc                 s   \         P                  ! R 4      p. pVP                  V 4       F-  pVR9  g   K   \        V^
4      p^dpVP                  WC34       K/  	  V#   \         d    \
        P                  T^ 4      p L;i ; i)z([0-9]+|[._+-])z._+-)recompilesplitint
ValueError_ver_stagesgetZextend)versionZcomponent_reresultvZts   &    !/usr/lib64/python3.14/platform.py_comparable_versionr      s    ::01LF(F?*2J MM1&! ) M  *OOAq)*s   A!B B c                 s   V '       g   \         P                  R 8X  d5   RP                  R \         P                  P                   4       4      pR V3#  \
        P                  ! R4      pVP                  ^R7      p\        V4      ^8X  d   \        V4      #  \         P                  p V '       g   W3# \        P                  ! R\        P                   \        P"                  ,          4      p\$        p\
        P&                  P)                  V 4      p Rp\+        V R4      ;_uu_ 4       pVP-                  V4      p	^ p
V
\        V	4      8  Ed   RV	9   g   R	V	9   g   R
V	9   d   VP/                  W4      pMRpV'       d   VP1                  4       \        V	4      8X  dN   VP-                  V4      pV'       d+   V	\3        V
\        V	4      R,
          4      R V,           p	^ p
K  V'       g   EMDVP5                  4        Uu. uF  pVe   VP7                  R4      MTNK  	  ppVw
  ppppppppppV'       d   V'       g   RpMV'       d#   VR8w  d   RpTpMV! V4      V! V4      8  d   TpMV'       dU   VR9  dM   RpV'       d   V'       d   V! V4      V! V4      8  d   TpV'       d   V\        V4      ) R V8w  d
   VV,           pMWV'       d!   RpV'       d   V! V4      V! V4      8  d   TpM/V'       d(   RpV'       d   V'       d   V! V4      V! V4      8  d   TpVP1                  4       p
EK  RRR4       Yf   V3# T3#   \        \        \        3 d     ELi ; iu upi   + '       g   i     L<; i)Z
emscripten.c              3   s8   "   T F  p\        V4      x  K  	  R # 5iN)str.0Zx   & r   	<genexpr>Zlibc_ver.<locals>.<genexpr>   s     S+Ra3q66+Rs   ZCS_GNU_LIBC_VERSION)Zmaxsplits   
          (__libc_init)
        | (GLIBC_([0-9.]+))
        | (libc(_\w+)?\.so(?:\.(\d[0-9.]*))?)
        | (musl-([0-9.]+))
        | ((?:libc\.|ld-)musl(?:-\w+)?.so(?:\.(\d[0-9.]*))?)
        Nrbs   libcs   GLIBCs   musli  Zlatin1Zlibcglibcmusl)r   r   )sysplatformjoinZ_emscripten_infoZemscripten_versionosZconfstrr   lentupleAttributeErrorr   OSError
executabler   r   ASCIIZVERBOSEr   pathZrealpathopenZreadZsearchZendZmaxgroupsdecode)r!   Zlibr	   Z	chunksizeverZpartsZlibc_searchZVfZbinaryZposmZchunkZsZdecoded_groupsZlibcinitr   ZglibcversionZsoZthreadsZ	soversionr   ZmuslversionZmusl_soZ
musl_sovers   &&&&                     r   libc_verr*      s    <<<' ((S3+?+?+R+RSSC #&&	**23CIIqI)E5zQU|#  ^^
<**  	2::K 	A !!*-J
C	j$		1	"CK& H$6'V:K&&v33v;.y)#CS[4-?$@$ABUJFC'(xxz3'1! 56Mahhx0qH'1  3 8F5XulB;'>!C&C|_qv-&C// C #9#1F'3G}~#6'#A!Gmanqv5%Csa
maf.D$C%%'CW 
 X ;//C//K 
G4 		R3! 
 	s   AL> 'AM =6M 41M &M : MM 9
M )M .M ?M M $%M 
	M M 2	M <M (M >MMM  M0	c           	      s    V P                  R 4      pV'       d   VP                  V4        \        \        \        \        \
        V4      4      4      pR P                  VR,          4      p V #   \         d    Tp L)i ; i)r   N   N)r   appendlistmapr   r   r   r   )r	   buildlZstrings   &&  r   _norm_versionr3     sk    
 	cA	s3C,- hhwr{#GN  s   'A- -A=<A=win32win16dosc           
      s   \         P                  V9  d   WV3# ^ RIpR F/  p VP                  VVP                  VP                  RRRR7      p M	  WV3# \        P                  ! R4      pVP                  4       pVP                  V4      p	V	eE   V	P                  4       w  rpVR,          R8X  d   VRR pVR,          R8X  d   VRR p\        V4      pWV3#   \
        TP                  3 d   p Rp?K  Rp?ii ; i)	    NTZlocale)ZstdinstderrtextencodingZshellz'(?:([\w ]+) ([\w.]+) .*\[.* ([\d.]+)\])r   )r'   zcommand /c verz
cmd /c ver)r   r   
subprocesscheck_outputDEVNULLr    CalledProcessErrorr   r   stripmatchr%   r3   )
systemreleaser	   Zsupported_platformsr<   ZcmdinfoZwhyZ
ver_outputr)   s
   &&&&      r   _syscmd_verrE     s    ||..'' 6	**31;1C1C2<2D2D044<15 + 7D  7 '' - .J
 ::<DA}#$88: 2;#crlG2;#crlG  (G##3 667 		s   +CC<7C<c                 s  a \         '       g   \        R 4      hRRRR/V ,          p  \         P                  ! RP                  RP	                  V4      V 4      4      P                  R4      pR	 T 4       pT Uu/ uF  qD^ ,          T^,          bK  	  upoT3R
 lT 4       #   \         d    Rs \        R 4      hi ; iu upi )znot supportedOSZWin32_OperatingSystemCPUZWin32_ProcessorzSELECT {} FROM {}Z,Z Nc              3   sB   "   T F  qP                  R 4      x  K  	  R# 5i)Z=N)Z	partition)r   ir   r   r   _wmi_query.<locals>.<genexpr>b  s     1Dq++c""Ds   c              3   s6   <"   T F  pSV,          x  K  	  R # 5ir    )r   Zk	dict_datas   & r   r   rI   d  s     '$QIaLL$s   )_wmir    Z
exec_queryformatr   r   )ZtableZkeysZdataZ
split_datarH   rK   s   &*   @r   
_wmi_queryrN   R  s    4o&&%  E'299HHTN 
  5; 	 2D1J%/0Z1qtZ0I'$''  'o&&' 1s   AB  8B< B9c                  s    \        4       R9   # )IoTUAP)rO   Z
NanoServerZWindowsCoreHeadlessZ	IoTEdgeOS)win32_editionrJ       r   win32_is_iotrR     s    ?ZZZrQ   c                  s    ^ RI p  RpV P                  V P                  V4      ;_uu_ 4       pV P                  VR4      ^ ,          uuRRR4       #   + '       g   i     R# ; i  \         d     R# i ; i  \
         d     R# i ; i)r7   N,SOFTWARE\Microsoft\Windows NT\CurrentVersionZ	EditionId)winreg	OpenKeyExHKEY_LOCAL_MACHINEQueryValueExr    ImportError)rT   cvkeykey      r   rP   rP     s    
	CE!!&";";UCCs**3<Q? DCCC
   		   s?   A7 &A% A
A% A"	A% "A% %A43A47BBc                 s    \        R RRRRR4      w  rr$p\        V4      ^8H  pV'       d   VR8w  d
   RV RV 2pMRV 2pWW&3#   \         d     Mi ; i ^ R	IHp M  \
         d	    YTR
3u # i ; iT! 4       p\        TR^4      ^8H  p \        4       ^,          p \        \        T P                  R4      4      w  rpMC  \         d6    TP                  ;'       g
    TR,          w  rpRP                  YT4      p  Mi ; iTR,          Y38X  dM    RP                  TP                  4      pM/  \         d"    TR,          R8X  d   RTR,          ,           p Mi ; i ^ RIp RpTP!                  TP"                  T4      ;_uu_ 4       pTP%                  TR4      ^ ,          pRRR4       M5  + '       g   i     M%; i  \         d     Mi ; i  \
         d     Mi ; iYY&3# )rF   ZVersionZProductTypeZ	BuildTypeZServicePackMajorVersionZServicePackMinorVersion0ZSPr   )getwindowsversionTproduct_typer+   z{0}.{1}.{2}:N   NzSP{}:N   NzService Pack :r`   NNNrS   ZCurrentType)rN   r   r    r   r]   rX   getattrrE   r/   r   r   Zplatform_versionrM   Zservice_pack_majorr   rT   rU   rV   rW   )r	   csdptyper^   ZspmajorZspminor	is_clientr]   ZwinvermajorZminorr0   rT   rY   rZ   s   &&&            r   
_win32_verrf     s   <F%%=
8 &!+	w#~wiq	*Cwi.CU-- )) )UD(()  F3q8I<-"!#w}}S'9:e <$55CCe&&uU;< bze^#	&-- 9 9:C 	&3x?*SXo	&
	CE!!&";";UCCs++C?B DCCC 		   ))s   AA AAA A10A13C   D D ?D D/ /)EEG $&G  
F-$G  -F=	8G  =G   GGGGc                 s   a R p\        WV4      w  rr4V'       dS   \        \        \        VP	                  R4      4      4      oV'       d   \
        M\        p\        V3R lV 4       V 4      p WW#3# )Fr   c              3   s>   <"   T F  w  rVS8:  g   K  Vx  K  	  R # 5ir   rJ   )r   r   r
intversions   &  r   r   Zwin32_ver.<locals>.<genexpr>  s     Bhda!z/hs   
)rf   r   r/   r   r   _WIN32_CLIENT_RELEASES_WIN32_SERVER_RELEASESZnext)rC   r	   rb   rc   rd   Zreleasesrh   s   &&&&  @r   	win32_verrk     s^    I%/e%D"G%3sGMM#$678
-6)<RBhBGLS''rQ   c                  sr   R p \         P                  P                  V 4      '       g   R#  ^ RIp\        T R4      ;_uu_ 4       pTP                  T4      pRRR4       XR,          pRp\         P                  ! 4       P                  pTR9   d   RpYET3#   \         d     R# i ; i  + '       g   i     LY; i)z0/System/Library/CoreServices/SystemVersion.plistNr   ZProductVersionPowerPCr   r   r   )ZppczPower Macintosh)	r   r#   ZexistsplistlibrX   r$   Zloadunamemachine)Zfnrn   r(   r   rC   versioninforp   s          r   _mac_ver_xmlrr     s    	;B77>>" 
b$1]]1 
!"GKhhj  G,,((   
s   B B&B#"B#&B6	c                 s*    \        4       pVe   V# WV3# r   )rr   )rC   rq   rp   rD   s   &&& r   mac_verrs     s#     >D ((rQ   IOSVersionInfoc                 s    \         P                  R 8X  d"   ^ RIpVP                  4       pVe
   \	        V!  # \	        WW#4      # )iosN)r   r   _ios_supportZget_platform_iosrt   )rB   rC   modelis_simulatorrv   r
   s   &&&&  r   ios_verry     s?     ||u..0!6**&5??rQ   c                 sh    ^ RI Hp  VP                  V 4      pVf   V# V#   \         d    Tu # i ; i)r7   )System)	java.langrz   ZgetPropertyr   )namedefaultrz   valuer2   r   _java_getpropr     s=     ""4(=N s   ! ! 11c                 sP   ^ RI pVP                  RRR7        ^ RIp\	        RT4      p\	        RT 4      p Tw  rgp\	        RT4      p\	        RT4      p\	        RT4      pYgT3pTw  rp\	        R	T4      p\	        R
T	4      p	\	        RT
4      p
YT3pYY#3#   \         d    YY#3u # i ; i)r7   Njava_ver)Zremovezjava.vendorzjava.versionzjava.vm.namezjava.vm.vendorzjava.vm.versionzjava.os.archzjava.os.namezjava.os.version)r,   i   )warningsZ_deprecatedr{   rX   r   )rC   vendorvminfoosinfor   javaZvm_nameZ
vm_releaseZ	vm_vendoros_name
os_versionos_archs   &&&&        r   r   r   )  s     G4/ =&1FNG4G%+"GNG4G.	:I0*=J)+F#) GNG4GNG4G0*=J')FF**!  /../s   B B%$B%
AndroidVerz7release api_level manufacturer model device is_emulatorc                 sH  a	a
 \         P                  R 8X  do    ^ RIHpHpHo	 \        V! R4      R4      o
Ww3S
n        V	V
3R lpV! RV 4      p \        V! RV4      4      pV! RV4      pV! RV4      pV! R	V4      pV! R
R4      R8H  p\        WW#WE4      #   \         d     Li ; i)android)CDLLc_char_pcreate_string_bufferzlibc.soZ__system_property_getc                 s   < ^\pS! V4      pS! V P                  R4      V4      pV^ 8X  d   V# VP                  P                  RR4      # )i\   zUTF-8Zbackslashreplace)Zencoder~   r&   )r|   r}   ZPROP_VALUE_MAXZbufferZlengthr   system_property_gets   &&   r   getpropZandroid_ver.<locals>.getprop^  sM    !#-n=,T[[-A6JQ; #N!<<..w8JKKrQ   zro.build.version.releasezro.build.version.sdkzro.product.manufacturerzro.product.modelzro.product.devicezro.kernel.qemur\   Z1)r   r   Zctypesr   r   r   ra   Zargtypesr   rX   r   )rC   Z	api_levelmanufacturerrw   ZdeviceZis_emulatorr   r   r   r   r   s   &&&&&&   @@r   android_verr   P  s    
||y 	@CC #*$y/;R"S,4+?(
L 8'BGG$:IFGI"#<lKL.6E0&9F!"2C8C?KLF F9  		s   
B B! B!c                 s$   V R 8X  dm   VR8  d   WV3# VP                  R4      pV'       d<    \        V^ ,          4      pV^,
          p\        V4      V^ &   RP                  V4      pVR8  d   Rp MRp M	V R9   d   Rp WV3#   \         d     L'i ; i)ZSunOSZ5r   Z6ZSolarisWindowsr4   r5   )r   r   r   r   r   )rB   rC   r	   r1   re   s   &&&  r   system_aliasr   w  s     S=G++MM#&AaD	 	5z!((1+S=F F	%	%
 G##'  s   B BBc                  s   R P                  R \        \        V 4       4       4      pVP                  RR4      pVP                  RR 4      pVP                  RR 4      pVP                  RR 4      pVP                  RR 4      pVP                  RR 4      pVP                  R	R 4      pVP                  R
R 4      pVP                  RR4      p VP                  RR 4      pW!8X  d   MTpK  V'       d   VR,          R 8X  d   VRR pK  V# )Z-c              3   s@   "   T F  qP                  4       x  K  	  R # 5ir   )r@   r   r   r   r   Z_platform.<locals>.<genexpr>  s     =+<a		+<s    _Z/Z\Z:Z;Z"Z(Z)unknownr   z--Nr;   )r   Zfilterr   Zreplace)argsr   Zcleaneds   *  r   	_platformr     s    xx=6#t+<==H S)HS)Hc*HS)HS)HS)HS)HS)H 	2.H ""4-
x|s*CR=OrQ   c                 sz     ^ RI p TP                  4       #   \         d    T u # i ; i  \         d    T u # i ; i)r7   N)socketrX   Zgethostnamer    )r}   r   r   r   _noder     sI    !!##	  
  s    * ''::c                 sn   \         P                  P                  V 4      p \         P                  P                  V 4      '       dq   \         P                  P	                  \         P                  P                  \         P                  P                  V 4      \         P                  ! V 4      4      4      p K  V # r   )r   r#   ZabspathZislinkZnormpathr   ZdirnameZreadlink)Zfilepath   &r   _follow_symlinksr     sk    
 wwx(H
''..
"
"77##GGLL2BKK4IJLOrQ   c                 sd   \         P                  R9   d   V#  ^ RIp\	        T 4      p \        \        P                  RR7      p TP                  RRT .TP                  TR7      pT'       g   T# TP                  R4      #   \         d    Tu # i ; i  \        TP                  3 d    Tu # i ; i)	r6   NZC)ZLC_ALLZfilez-b)r8   envzlatin-1>   r6   ru   Ztvosr5   r4   Zwatchos)r   r   r<   rX   r   Zdictr   environr=   r>   r    r?   r&   )Ztargetr}   r<   r   Zoutput   &&   r   _syscmd_filer     s     ||JJ f%F rzz#
&C((&$)?0:0B0B-0 ) 2
  ==###   Z223 s#   B  !B  BBB/.B/c                 sR   V'       g/   ^ RI pVP                  R4      p\        V^,          4      R,           pV '       d   \        V R4      pMRpV'       gc   V \        P
                  8X  dN   \        P                  \        9   d2   \        \        P                  ,          w  rgV'       d   TpV'       d   TpW3# RV9  d   RV9  d   W3# RV9   d   RpM	R	V9   d   R
pRV9   d   RpW3# RV9   d   RpW3# RV9   d   RV9   d   RpW3# Rp W3# RV9   d   RpW3# RV9   d   RpW3#  W3# )r7   NZPZbitr   r!   zshared objectz32-bit32bitz64-bitZ64bitZELFzMach-OZPEr   	WindowsPEZCOFFzMS-DOSMSDOS)structZcalcsizer   r   r   r!   r   _default_architecture)r!   bitslinkager   ZsizeZfileoutr    r1   s   &&&     r   architecturer     s[   . s#4!8}u$ z2.S^^# <<00(6DA}7"g'E} 7	W	 " =! 
W	 = 
!G = G = 
7	 = 
W	
 = 	=rQ   c                  s>    \        R R4      vr . RO\        V 4      ,          p V '       d   V #  \
        P                  P                  RR4      ;'       g!    \
        P                  P                  RR4      #   \        \        3 d     L[i ; i  \         d     Lli ; i)rG   ZArchitectureZPROCESSOR_ARCHITEW6432r   ZPROCESSOR_ARCHITECTURE)Zx86ZMIPSAlpharl   NZARMZia64NNZAMD64NNZARM64)rN   r   r   Z
IndexErrorr    r   r   r   )Zarchr        r   _get_machine_win32r   V  s    ~6
		 $iD   	

/4 	5 	5


/4 J' 		  s"   B A7 7B
BBBc                   sH   a  ] tR tRt o ]R 4       tR tR tR tR t	Rt
V tR# )	
_Processorir  c                st    \        V R \        P                   2V P                  4      pV! 4       ;'       g    R# )Zget_r   )ra   r   r   from_subprocess)clsZfuncr   r   r   Z_Processor.gets  s/    sd3<<.133F3FGv||rQ   c                 s     \        R RR4      w  rV RV  2#   \         d,    \        P                  P	                  R\        4       4      u # i ; i)rG   ZManufacturerZCaption, ZPROCESSOR_IDENTIFIER)rN   r    r   r   r   r   )r   Zcaptionr   r   	get_win32Z_Processor.get_win32x  sX    	0$.uni$P!L Yb//  	P::>>"8:L:NOO	Ps    3AAc                 sn     ^ RI p V P                  R^ 4      w  rV^8  d   R# R#   \         d     R# i ; i)r7   NzSYI$_CPUr   ZVAX)vms_libZgetsyirX   )r   ZcsidZ
cpu_numberr[   r   get_OpenVMSZ_Processor.get_OpenVMS  sE    	;  '~~j!<D(C/7:U:	  		s   % 44c                 s    \         P                  P                  P                  R 4      '       d    \        P
                  ! 4       P                  # R# )Z	simulatorZarm64)r   ZimplementationZ
_multiarchZendswithr   ro   rp   rJ   rQ   r   get_iosZ_Processor.get_ios  s4    ((11+>>88:%%%rQ   c                 s     ^ RI p  T P                  RR.T P                  RRR7      P	                  4       #   \         d     R# i ; i  \
        T P                  3 d     R# i ; i)r7   Nro   z-pTZutf8)r8   r9   r:   )r<   rX   r=   r>   r@   r    r?   )r<   s    r   r   Z_Processor.from_subprocess  sx    		**$!))	 + 
 eg  		 667 		s    6 .A AAA#"A#rJ   N)__name__
__module____qualname____firstlineno__classmethodr   r   r   r   r   __static_attributes____classdictcell__)__classdict__s   @r   r   r   r  s0      0;
 rQ   r   c                 s    V R 8X  d   R# T # )r   r   rJ   )Zvalr   r   _unknown_as_blankr     s    	!2*s*rQ   c                   s|   a a ] tR tRt oR	t]P                  R 4       tV 3R lt]	R 4       t
R tR tR tRtVtV ;t# )
uname_resulti  c                s<    \        \        P                  4       4      # r   )r   r   r   selfr   r   	processorZuname_result.processor  s     !122rQ   c                s`   < \         P                  ! \        SV `  4       V P                  34      # r   )	itertoolsZchainZsuper__iter__r   )r   	__class__s   &r   r   Zuname_result.__iter__  s)    G^^
 	
rQ   c                s    \        V P                  4      ^,
          pV P                  ! V .VO5!  p\        V4      V^,           8w  d   RV R\        V4       2p\        V4      hV# )   z	Expected z arguments, got )r   _fieldsZ__new__Z	TypeError)r   ZiterableZ
num_fieldsr
   Zmsgr   r   _makeZuname_result._make  s`     %)
S,8,v;*q.(j\)9#f+GCC. rQ   c                s&    \        V 4      V,          # r   )r   )r   rZ   s   &&r   __getitem__Zuname_result.__getitem__  s    T{3rQ   c                s<    \        \        \        V 4      4      4      # r   )r   r   Ziterr   r   r   __len__Zuname_result.__len__  s    5d$%%rQ   c                s^    \         \        V 4      R \        V P                  4      ^,
           3# r   )r   r   r   r   r   r   r   
__reduce__Zuname_result.__reduce__  s'    U4[)?#dll*;a*?@@@rQ   rJ   )rB   noderC   r	   rp   r   )r   r   r   r   r   	functoolsZcached_propertyr   r   r   r   r   r   r   r   r   Z__classcell__)r   r   s   @@r   r   r     sT      OG3 3
   &A ArQ   r   Zuname_result_basez#system node release version machinec                  s   \         e   \         #  \        P                  ! 4       ;w  rr#rE\        V4      '       g   V R8X  d"   \        4       w  r#rgT;'       g    \        4       pV'       d	   V'       g<   \        V 4      w  rpV R8X  d   Rp M#V R8X  d   VR8X  d   Rp RVR,          8X  d   RpMRpV R9   d   V'       g   V R8X  d   R	pMR
pRp M8V R,          R8X  d+   \        4       w  r(rRp RP                  V	4      pV'       g   TpV R8X  d   V'       d   VR8X  d   TpRpV R8X  d   VR8X  d   Rp Rp\        P
                  R8X  d   Rp \        4       P                  p\        P
                  R8X  d   \        4       w  r pWW#V3p\!        \#        \$        V4      !  s \         #   \         d&    \        P
                  p \        4       pR;p;r4Rp ELi ; i)Nr   r4   zMicrosoft Windowsr   Z	Microsoftz6.0r+   Vistar   Z16bit:N   Nr   Javar   ZOpenVMSr\   r   ZAndroidru   rJ   r   )_uname_cacher   ro   r   r   r   r   Zanyrk   r   rE   r   r   r   rC   ry   r   r/   r   )rB   r   rC   r	   rp   Zinfosrb   rc   r   r   r   r   Zvalss                r   ro   ro     s    :<((*D/g u:: W+4;(Gc55!3!5G G'26':$FW ,,";&7i+?
 #GBK'%G G ''W$%G%GFBZ6!.6j+GVFii'G  'S.GG I!5 ||y -'' ||u '	A72D%6!=>LU  w&((('	s   F   ,GGc                  *    \        4       P                  # r   )ro   rB   rJ   rQ   r   rB   rB   ;  s     7>>rQ   c                  r   r   )ro   r   rJ   rQ   r   r   r   D  s     7<<rQ   c                  r   r   )ro   rC   rJ   rQ   r   rC   rC   N       7??rQ   c                  r   r   )ro   r	   rJ   rQ   r   r	   r	   W  r   rQ   c                  r   r   )ro   rp   rJ   rQ   r   rp   rp   `  r   rQ   c                  r   r   )ro   r   rJ   rQ   r   r   r   i  s     7rQ   c                 s   V f   \         P                  p \        P                  V R 4      pVe   V# \         P                  P                  R4      '       d   \        P                  ! R\        P                  4      pRpVP                  V 4      pVf   \        R\        V 4      ,          4      hVP                  4       w  rVrxp	Vf   Rp\         P                  p
MRV 9   d_   \        P                  ! R4      pRpVP                  V 4      pVf   \        R\        V 4      ,          4      hVP                  4       w  rVrxRp
M\        P                  ! R	\        P                  4      pVP                  V 4      pVf   \        R
\        V 4      ,          4      hVP                  4       w  rVrxp
RpVf   RpMV'       d   VR,           V,           p\        \         R4      '       d   \         P                  w  rpM.\        \         R4      '       d   \         P                  w  rpMRpRpVP!                  R4      p\#        V4      ^8X  d#   VP%                  R4       RP'                  V4      pW5WWgV
3pV\        V &   V# )Nr   zL([\w.+]+)\s*\(#?([^,]+)(?:,\s*([\w ]*)(?:,\s*([\w :]*))?)?\)\s*\[([^\]]+)\]?ZJythonz&failed to parse Jython sys.version: %sr   ZPyPyzE([\w.+]+)\s*\(#?([^,]+),\s*([\w ]+),\s*([\w :]+)\)\s*\[PyPy [^\]]+\]?z$failed to parse PyPy sys.version: %szh([\w.+]+)\s*(?:free-threading build\s+)?\(#?([^,]+)(?:,\s*([\w ]*)(?:,\s*([\w :]*))?)?\)\s*\[([^\]]+)\]?z'failed to parse CPython sys.version: %sZCPythonr   _git
_mercurialr   r\   )r   r	   _sys_version_cacher   r   Z
startswithr   r   r"   rA   r   Zreprr%   Zhasattrr   r   r   r   r-   r   )Zsys_versionr
   Zjython_sys_version_parserr|   rA   r	   ZbuildnoZ	builddateZ	buildtimer   ZcompilerZpypy_sys_version_parserZcpython_sys_version_parserZbranchZrevisionr1   s   &               r   _sys_versionr   y  sL   * kk  ##K6F
||v&&$&JJ !hh%(! )//<=8[!"# # 5:LLN1)I<<	;	"$** #!
 '--k:=C!+./ 0 016.) &(ZZ
 !hh&(" +00==9[!"# # lln 	9)I!C)3IsF!hh8	l	#	#!nn8 	cA
1v{	((1+ Vw8LF&,{#MrQ   c                  s$    \        4       ^ ,          # )r7   r   rJ   rQ   r   python_implementationr     s     >!rQ   c                  s$    \        4       ^,          # )r   r   rJ   rQ   r   python_versionr     s     >!rQ   c                  sT    \        \        4       ^,          P                  R4      4      # )r   r   )r   r   r   rJ   rQ   r   python_version_tupler     s!     "((-..rQ   c                  s$    \        4       ^,          # )r_   r   rJ   rQ   r   python_branchr     s     >!rQ   c                  s$    \        4       ^,          # )r,   r   rJ   rQ   r   python_revisionr     s     >!rQ   c                  s$    \        4       R ,          # ):r      Nr   rJ   rQ   r   python_buildr     s     >#rQ   c                  s$    \        4       ^,          # )r   r   rJ   rQ   r   python_compilerr   %  s     >!rQ   c           	      s   \         P                  W3R 4      pVe   V# \        4       w  r4rVrxWx8X  d   RpV '       d   \        W5V4      w  r5pVR8X  dB   \        P
                  R8X  d   \        4       w  r5 p	M\        4       ^ ,          p
V
'       d   RpT
pVR8X  d0   \        V4      w  rrV'       d   \        W54      pM\        W5Wm4      pMVR8X  d$   \        4       w  pp\        W5WxRVV,           4      pMVR8X  dB   \        4       w  pppw  pppV'       g	   V'       g   \        W5V4      pMP\        W5VR	VVV4      pM?V'       d   \        W54      pM+\        \        P                  4      w  pp\        W5VVVV4      pV\         W3&   V# )
Nr   ZDarwinru   ZmacOSr   LinuxZwithr   Zon)_platform_cacher   ro   r   r   r   ry   rs   rk   r   r*   r   r   r!   )aliasedterser
   rB   r   rC   r	   rp   r   r   Zmacos_releaseZrelZversrb   rc   r   ZlibcnameZlibcversionrg   r   r   r   r   r   r   r   s   &&                        r   r   r   1  s~   &   '!148F :?6F'G	#/#I <<5 $+I!FQ#IaLM ' )' 23 1H '?H	7	 (
+Vg#%k13 
6	7?z41f4w
G ':H '!%!(*g?H  1H(8MD' '!*D';H )1OW$%OrQ   c                 s   R RRRRR/p\         P                  ! R4      p\         P                  ! R4      pV  FL  pVP                  V4      pVf   K  VP                  RVP	                  R4      4      WP	                  R	4      &   KN  	  V# )
ZNAMEr   ZIDZlinuxZPRETTY_NAMEzA^(?P<name>[a-zA-Z0-9_]+)=(?P<quote>["']?)(?P<value>.*)(?P=quote)$z\\([\\\$\"\'`])z\1r~   r|   )r   r   rA   ZsubZgroup)ZlinesrD   Zos_release_lineZos_release_unescapeZlineZmos   &     r   _parse_os_releaser     s     	gwD jjMO **%78""4(>%8%<%<rxx(&D&!"  KrQ   c                  s   \         fo   R p \         F@  p \        VRR7      ;_uu_ 4       p\        V4      s R R R 4        \         P                  4       # 	  \	        V RRP                  \        4       24      h\         P                  4       #   + '       g   i     L]; i  \         d   pTP
                  p  R p?K  R p?ii ; i)Nzutf-8)r:   zUnable to read files r   )_os_release_cache_os_release_candidatesr$   r   r    errnor   Zcopy)r   Z	candidater(   Zes       r   freedesktop_os_releaser     s    
  /I )g66!(9!(<% 7 !!## 0 '		2H(I'JK 
 !!## 76    s-   BBBBBC )B;;C c                  s^    R s R s\        P                  4        \        P                  4        R # r   )r   r   r   Zclearr   rJ   rQ   r   invalidate_cachesr     s)     L rQ   c                H    V ^8  d   QhR\         \        ,          R,          /# r_   r   Nr.   r   rM      "r   __annotate__r     s     # #d3i$& #rQ   c                 s    ^ RI pVP                  RR7      pVP                  RRRR.R7       VP                  R	R
RR7       VP                  RRRRR7       VP                  V 4      # )r7   NT)Zcolorr   Z*
nonaliasedr   )ZnargsZchoicesz--terseZ
store_truezLreturn only the absolute minimum information needed to identify the platform)actionhelpz--nonaliasedr   Zstore_falsezdisable system/OS name aliasing. If aliasing is enabled, some platforms report system names different from their common names, e.g. SunOS is reported as Solaris)Zdestr   r   )argparseZArgumentParserZadd_argumentZ
parse_args)r   r   Zparser   &  r   _parse_argsr     s    $$4$0F
cL'3JK
'	   D  	 T""rQ   c                r   r   r   r   r   r   r   r     s     $ $S	D  $rQ   c                 s    \        V 4      p V P                  ;'       g    R V P                  9   pV P                  ;'       d    RV P                  9  p\	        \        W!4      4       R# )r   r   N)r   r   r   r   Zprintr   )r   r   r   r   r   _mainr     sM    tDJJ007dii/Ell>>DII =G	(7
"#rQ   Z__main__)Nr   r   i @  )r   )r   r   r   )r4   r5   r6   ))
   r   r7   Zpost11))r   r7   iU  Z11)r   r   r7   Z10)r   r,   r7   z8.1)r   r_   r7   Z8)r   r   r7   Z7)r   r7   r7   r   ))   r_   i  ZXP64)r   r_   r7   ZXPMedia))r   r   r7   ZXP)r   r7   r7   Z2000))r   Zpost2025Server))r   r7   ie  Z
2025Server))r   r7   i|O  Z
2022Server))r   r7   icE  Z
2019Server)r   Z
2016Server)r   Z2012ServerR2)r   Z
2012Server)r   Z2008ServerR2)r   Z
2008Server)r   Z
2003Server)r   Z
2000Server)r   r   r   r   )r   rm   r   )rB   rC   rw   rx   )r   r   r   F)r   r   rm   rm   )r   r7   r   r   r   F)r   r   )r   r   )r   r   r   )FF)z/etc/os-releasez/usr/lib/os-release)FZ__copyright__Z__version__Zcollectionsr   r   r   r   r   rL   rX   r   r   r*   r3   rE   rN   ri   rj   rR   rP   rf   rk   rr   rs   Z
namedtuplert   ry   r   r   r   r   r   r   r   r   r   r   r!   r   r   r   r   r   r   ro   rB   r   rC   r	   rp   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rJ   rQ   r   <module>r     s9  x*   	 	 
   
2Rb
BR"dB#sC	 `0D24$n(*  [9*v
(),)* ''2@ 	!+H ##KM
"FN&$T@	 $N _	=   NNR K\8/ /d+)A-/)AX ^D
  fP
	/ Kb D  6$.	#6$ z	G _+  Ds   E% %	E21E2