+
    SBit%                       a  R# t)0 t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	H
t
HtHtHtHtHt ^RIHtHtHtHt RtRtRt]P0                  R R l4       tR	 R
 ltR R ltR R lt]P:                  ! R 4      t] ^ k  ! R R]4      tR R lt R R lt!R R lt"R R lt#]PH                  R R l4       t%R R lt&R$RR%RR&R /t'R! R" lt(R# )'    N)Dict	GeneratorIterator
NamedTupleOptionalSequenceTuple)EIClassEIDataELFFileEMachinel      ~ i   i   c                b    V ^8  d   QhR\         R\        \        \        ,          RR3,          /# )   pathreturnN)strr   r   r   )formats   "H/usr/lib/python3.14/site-packages/wheel/vendored/packaging/_manylinux.py__annotate__r      s+      S Yx'8$'DE     c              #      "    \        V R 4      ;_uu_ 4       p\        V4      x  RRR4       R#   + '       g   i     R# ; i  \        \        \        3 d	    Rx   R# i ; i5i)rbN)openr   OSError	TypeError
ValueError)r   fs   & r   
_parse_elfr      sK     $!* Y
+ 
sE   A%A 0A A%A	A A%A A"A%!A""A%c                0    V ^8  d   QhR\         R\        /# r   
executabler   r   bool)r   s   "r   r   r      s     
 
 
 
r   c                    \        V 4      ;_uu_ 4       pVR J;'       d    VP                  \        P                  8H  ;'       d    VP                  \
        P                  8H  ;'       dj    VP                  \        P                  8H  ;'       dE    VP                  \        ,          \        8H  ;'       d    VP                  \        ,          \        8H   uuR R R 4       #   + '       g   i     R # ; iN)r   capacityr
   C32encodingr   Lsbmachiner   ArmflagsEF_ARM_ABIMASKEF_ARM_ABI_VER5EF_ARM_ABI_FLOAT_HARDr!   r   s   & r   _is_linux_armhfr1      s     
J		1TM I I

gkk)I I

fjj(I I 		X\\)I I .(O;	I I
 //3HH	
 
 			s#   0C$C*$C%C5CC0	c                0    V ^8  d   QhR\         R\        /# r    r"   )r   s   "r   r   r   +   s     
 
s 
t 
r   c                 N   \        V 4      ;_uu_ 4       pVR J;'       dh    VP                  \        P                  8H  ;'       dC    VP                  \
        P                  8H  ;'       d    VP                  \        P                  8H   uuR R R 4       #   + '       g   i     R # ; ir%   )
r   r&   r
   r'   r(   r   r)   r*   r   I386r0   s   & r   _is_linux_i686r5   +   sz    	J		1TM + +

gkk)+ +

fjj(+ + 		X]]*		
 
 			s   0B$B*BB$	c                R    V ^8  d   QhR\         R\        \         ,          R\        /# )r   r!   archsr   )r   r   r#   )r   s   "r   r   r   5   s%     8 8S 8# 84 8r   c                    a R V9   d   \        V 4      # RV9   d   \        V 4      # 0 Rmo\        ;QJ d    V3R lV 4       F  '       g   K   R# 	  R# ! V3R lV 4       4      # )armv7li686c              3   ,   <"   T F	  qS9   x  K  	  R # 5ir%    ).0archallowed_archss   & r   	<genexpr>'_have_compatible_abi.<locals>.<genexpr>C   s     7}$s   TF>   ppc64s390xx86_64aarch64ppc64leriscv64loongarch64)r1   r5   any)r!   r7   r?   s   &&@r   _have_compatible_abirJ   5   sZ    5z**j))M 3773373737777r   c                      ^2# )2   r<   r<   r   r   <lambda>rM   K   s    Br   c                   ,   a  ] tR t^Nt o V 3R ltRtV tR# )_GLibCVersionc                2   < V ^8  d   Qh/ S[ ;R&   S[ ;R&   # )r   majorminor)int)r   __classdict__s   "r   r   _GLibCVersion.__annotate__N   s     J J r   r<   N)__name__
__module____qualname____firstlineno____annotate_func____static_attributes____classdictcell__)rT   s   @r   rO   rO   N   s      r   rO   c                :    V ^8  d   QhR\         \        ,          /# r   r   r   r   )r   s   "r   r   r   S   s      x} r   c                      \         P                  ! R4      p V f   Q hV P                  4       w  rV#   \        \        \
        \        3 d     R# i ; i)zB
Primary implementation of glibc_version_string using os.confstr.
CS_GNU_LIBC_VERSIONN)osconfstrrsplitAssertionErrorAttributeErrorr   r   )version_string_versions      r   _glibc_version_string_confstrrj   S   sV    (*

3H(I)))#**,
 N NGZ@ s   .2 AAc                :    V ^8  d   QhR\         \        ,          /# r^   r_   )r   s   "r   r   r   f   s     ) )hsm )r   c                 8    ^ RI p  T P                  R4      p TP                  pT P                  Tn        T! 4       p\        T\        4      '       g   TP                  R4      pT#   \         d     R# i ; i  \         d     R# i ; i  \
         d     R# i ; i)z?
Fallback implementation of glibc_version_string using ctypes.
Nascii)ctypesImportErrorCDLLr   gnu_get_libc_versionrf   c_char_prestype
isinstancer   decode)rn   process_namespacerq   version_strs       r   _glibc_version_string_ctypesrx   f   s    ""KK-0EE $*?? +-Kk3''!((1G  $  
   s3   A& A8 B
 &A54A58BB
BBc                :    V ^8  d   QhR\         \        ,          /# r^   r_   )r   s   "r   r   r      s     M Mx} Mr   c                 :    \        4       ;'       g    \        4       # )z9Returns glibc version string, or None if not using glibc.)rj   rx   r<   r   r   _glibc_version_stringr{      s    (*LL.J.LLr   c                R    V ^8  d   QhR\         R\        \        \        3,          /# )r   rw   r   )r   r	   rS   )r   s   "r   r   r      s"     8 8c 8eCHo 8r   c                    \         P                  ! RV 4      pV'       g!   \        P                  ! RV  2\        4       R# \        VP                  R4      4      \        VP                  R4      4      3# )a  Parse glibc version.

We use a regexp instead of str.split because we want to discard any
random junk that might come after the minor version -- this might happen
in patched/forked versions of glibc (e.g. Linaro's version of glibc
uses version strings like "2.20-2014.11"). See gh-3588.
z$(?P<major>[0-9]+)\.(?P<minor>[0-9]+)z;Expected glibc version with 2 components major.minor, got: rQ   rR   r   )rematchwarningswarnRuntimeWarningrS   group)rw   ms   & r   _parse_glibc_versionr      sd     	8+FA M#	

 qwww #aggg&6"777r   c                F    V ^8  d   QhR\         \        \        3,          /# r^   )r	   rS   )r   s   "r   r   r      s     - -E#s(O -r   c                  8    \        4       p V f   R# \        V 4      # )Nr~   )r{   r   )rw   s    r   _get_glibc_versionr      s     ')K,,r   c                <    V ^8  d   QhR\         R\        R\        /# )r   r>   ri   r   )r   rO   r#   )r   s   "r   r   r      s!       }  r   c                 0   \        4       pW!8  d   R #  ^ RIp\        TR4      '       d3   TP	                  T^ ,          T^,          T 4      pTe   \        T4      # R# T\        ^^4      8X  d(   \        TR4      '       d   \        TP                  4      # T\        ^^4      8X  d(   \        TR4      '       d   \        TP                  4      # T\        ^^4      8X  d(   \        TR4      '       d   \        TP                  4      # R#   \         d     R# i ; i)FNTmanylinux_compatiblemanylinux1_compatiblemanylinux2010_compatiblemanylinux2014_compatible)
r   
_manylinuxro   hasattrr   r#   rO   r   r   r   )r>   ri   	sys_glibcr   results   &&   r   _is_compatibler      s    "$I z12200WQZN<-1%%:677
8899-2&&:9::
;;<<-2&&:9::
;;<<!  s   D DDmanylinux2014manylinux2010
manylinux1c                \    V ^8  d   QhR\         \        ,          R\        \        ,          /# )r   r7   r   )r   r   r   )r   s   "r   r   r      s"     -5 -5# -58C= -5r   c              #    "   \        \        P                  V 4      '       g   R# \        ^^4      p\	        V 4      RR0,          '       d   \        ^^4      p\        \        4       !  pV.p\        VP                  ^,
          ^R4       F*  p\        V,          pVP                  \        WE4      4       K,  	  V  F  pV F  pVP                  VP                  8X  d   VP                  pMRp\        VP                  VR4       Fy  p\        VP                  V4      p	RP                  ! V	!  p
\        Wi4      '       d
   V
 RV 2x  V	\        9   g   KP  \        V	,          p\        Wi4      '       g   Kp  V RV 2x  K{  	  K  	  K  	  R# 5i)a  Generate manylinux tags compatible to the current platform.

:param archs: Sequence of compatible architectures.
    The first one shall be the closest to the actual architecture and be the part of
    platform tag after the ``linux_`` prefix, e.g. ``x86_64``.
    The ``linux_`` prefix is assumed as a prerequisite for the current platform to
    be manylinux-compatible.

:returns: An iterator of compatible manylinux tags.
NrD   r:   zmanylinux_{}_{}rh   r   )rJ   sysr!   rO   setr   rangerQ   _LAST_GLIBC_MINORappendrR   r   r   _LEGACY_MANYLINUX_MAP)r7   too_old_glibc2current_glibcglibc_max_listglibc_majorglibc_minorr>   	glibc_max	min_minorglibc_versiontag
legacy_tags   &           r   platform_tagsr      sU      66"1b)N
5zXv&&&&q!,!#5#78M#_N ]0014a<'4mKEF = 'I."6"66*00	 	$Y__iD -ioo{ K'..>!$66 E4&/) $99!6}!EJ%d::!+AdV44  E ( s   EF	F	2F	c                b    V ^8  d   Qh/ ^ \         9   d   \        \        \        3,          ;R&   # )r   r   )__conditional_annotations__r   rS   )r   s   "r   r   r      s%      T H G4S> GU r   )r      )r      )r      )*r   collections
contextlib	functoolsrb   r   r   r   typingr   r   r   r   r   r   r	   _elffiler
   r   r   r   r-   r.   r/   contextmanagerr   r1   r5   rJ   defaultdictr   rO   rj   rx   r{   r   	lru_cacher   r   r   r   r   )r   s   @r   <module>r      s        	 	 
  S S S 8 8" 
  

8, %0$;$;J$G  GJ 
&)XM
8& - -8 __
L -5r   