+
    <j˫                     h   ^ RI Ht ^ RIt^ RIt^ RIt^ RIHt ^ RIt^ RIt^ RI	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 ^RIHtHtHtHtHt ^RIHt ^RIHtHtHt ^RI H!t!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t)H*t* ^R	I+H,t,H-t- ]	P\                  ! ]/4      t0Rs1]2! ]R
4      '       d   Rt3M:]Ph                  Pk                  R4      '       d   Rt3M]Ph                  R8X  d   Rt3MRt3]Pl                  ! R4      t7]7'       g   R]Pp                  R,          ,          t7R]7,           t9]3]7,           t:]*! 4       Pw                  RR4      Pw                  RR4      t<]Pl                  ! R4      t=]='       dA   ]=Pk                  R4      '       d*   ]=Pw                  RR4      P}                  R4      ^ ,          t=MR t?]?! 4       t=A?]P                  ! R]P                  ]P                  ,          4      tC]P                  ! R]P                  ]P                  ,          4      tD]P                  ! R4      tE]P                  ! R4      tFRtGR tH]
P                  R!8X  d   R" tJMR# tJ]Pp                  ^ ,          ^8  d   ^ RIKtKM
RtK^ RILtM^ RINtMR$ tOR% tP ! R& R']Q4      tR]R! 4       tS ! R( R)]Q4      tTR* tUR+ tV]V! 4       tWAVR-R, ltXR# ).    )unicode_literalsN)message_from_file)__version__DistlibException)	sysconfigZipFilefsdecode	text_typefilter)InstalledDistribution)MetadataWHEEL_METADATA_FILENAMELEGACY_METADATA_FILENAME)
FileOperatorconvert_path	CSVReader	CSVWriterCachecached_propertyget_cache_baseread_exportstempdirget_platform)NormalizedVersionUnsupportedVersionErrorpypy_version_infoppjavajycliipcppy_version_nodotz%s%sN   Npy-_.SOABIzcpython-c                     R \         .p \        P                  ! R4      '       d   V P                  R4       \        R 8X  d   \
        P                  R,          pVR8  d   \        P                  ! R4      pVf   RpV'       d   V P                  R4       VR8  dH   \        P                  ! R4      pV^8X  g   Vf'   \
        P                  R8X  d   V P                  R	4       R
P                  V 4      # )r"   Py_DEBUGdr$   WITH_PYMALLOCTmPy_UNICODE_SIZEi u )      )r3   r3   )	
VER_SUFFIXr   get_config_varappend
IMP_PREFIXsysversion_info
maxunicodejoin)partsviwpmuss       N/opt/headortail/venv/lib/python3.14/site-packages/pip/_vendor/distlib/wheel.py_derive_abirB   :   s    z"##J//LL!!"%BF{..?;CLL%;"112CDBQw2:#..H2LS)wwu~    zz
(?P<nm>[^-]+)
-(?P<vn>\d+[^-]*)
(-(?P<bn>\d+[^-]*))?
-(?P<py>\w+\d+(\.\w+\d+)*)
-(?P<bi>\w+)
-(?P<ar>\w+(\.\w+)*)
\.whl$
z7
(?P<nm>[^-]+)
-(?P<vn>\d+[^-]*)
(-(?P<bn>\d+[^-]*))?$
s   \s*#![^\r\n]*s   ^(\s*#!("[^"]+"|\S+))\s+(.*)$s   #!pythons	   #!pythonw/c                     V # N os   &rA   <lambda>rJ   f   s    rC   c                 B    V P                  \        P                  R 4      # )rD   )replaceosseprH   s   &rA   rJ   rJ   h   s    2663/rC   c                      \         '       d,   \         P                  ! 4        U u. uF  q ^ ,          NK  	  up # \        P                  P                  # u up i )r   )impget_suffixes	importlib	machineryEXTENSION_SUFFIXES)ss    rA   _get_suffixesrV   r   sB    
s!..010!011""555 2s   Ac                 "   \         '       d   \         P                  ! W4      # \        P                  P	                  W4      p\        P                  P                  V4      pV\        P                  V &   VP                  P                  V4       V# rF   )
rP   load_dynamicrR   utilspec_from_file_locationmodule_from_specr9   modulesloaderexec_module)namepathspecmodules   &&  rA   _load_dynamicrc   y   se    
s++~~55dA006"D'rC   c                   B   a  ] tR t^t o R tR tR tRR ltR tRt	V t
R# )	Mounterc                "    / V n         / V n        R # rF   impure_wheelslibsselfs   &rA   __init__Mounter.__init__   s    	rC   c                X    W P                   V&   V P                  P                  V4       R # rF   )rh   ri   update)rk   pathname
extensionss   &&&rA   addMounter.add   s"    '18$		$rC   c                    V P                   P                  V4      pV F$  w  r4W0P                  9   g   K  V P                  V K&  	  R # rF   )rh   popri   )rk   rp   rq   kvs   &&   rA   removeMounter.remove   s8    ''++H5
DAII~IIaL rC   Nc                2    WP                   9   d   T pV# R pV# rF   )ri   )rk   fullnamer`   results   &&& rA   find_moduleMounter.find_module   s$    yy F  FrC   c                J   V\         P                  9   d   \         P                  V,          pV# WP                  9  d   \        R V,          4      h\	        WP                  V,          4      pWn        VP                  R^4      p\        V4      ^8  d   V^ ,          Vn        V# )zunable to find extension for %sr)   )	r9   r\   ri   ImportErrorrc   
__loader__rsplitlen__package__)rk   r{   r|   r=   s   &&  rA   load_moduleMounter.load_module   s    s{{"[[*F  yy(!"Ch"NOO"8YYx-@AF $OOC+E5zA~%*1X"rC   rg   rF   )__name__
__module____qualname____firstlineno__rl   rr   rx   r}   r   __static_attributes____classdictcell____classdict__s   @rA   re   re      s#     %! rC   re   c                      a  ] tR t^t o RtRtRtRR lt]R 4       t	]R 4       t
]R 4       t]R 4       tR	 t]R
 4       tR tRR ltR tR tR tRR ltR tR tR tR tR tR tR R ltR tR tRR ltRt V t!R# )!Wheelz8
Class to build and install from Wheel files (PEP 427).
sha256Nc                    W n         W0n        RV n        \        .V n        R.V n        R.V n        \        P                  ! 4       V n	        Vf"   RV n
        RV n        V P                  V n        R# \        P                  V4      pV'       d_   VP!                  R4      pVR,          V n
        VR,          P#                  R	R
4      V n        VR,          V n        V P                  V n        R# \        P$                  P'                  V4      w  ra\(        P                  V4      pV'       g   \+        RV,          4      hV'       d%   \        P$                  P-                  V4      V n	        Wn        VP!                  R4      pVR,          V n
        VR,          V n        VR,          V n        VR,          P'                  R4      V n        VR,          P'                  R4      V n        VR,          P'                  R4      V n        R# )z2
Initialise an instance using a (valid) filename.
r2   noneanyNdummyz0.1nmvnr(   r'   bnzInvalid name or filename: %rr&   r)   biar)signshould_verifybuildverPYVERpyverabiarchrM   getcwddirnamer_   versionfilename	_filenameNAME_VERSION_REmatch	groupdictrL   r`   splitFILENAME_REr   abspath)rk   r   r   verifyr/   infor   s   &&&&   rA   rl   Wheel.__init__   s    	#W
8G	yy{DI DL!]]DN%%h/A{{2 J	#Dz11#s; $T
!%$&GGMM($;!%%h/* ,:<D,E F F#%77??7#;DL!){{2 J	#Dz $T
!$Z--c2
:++C0 J,,S1	rC   c                r   V P                   '       d   RV P                   ,           pMRpRP                  V P                  4      pRP                  V P                  4      pRP                  V P                  4      pV P
                  P                  RR4      pV P                  : RV: V: RV: RV: RV: R2# )z:
Build and return a filename from the various components.
r'   r2   r)   r(   .whl)r   r<   r   r   r   r   rL   r_   )rk   r   r   r   r   r   s   &     rA   r   Wheel.filename   s    
 ===T]]*HH$hhtxx xx		",,&&sC0)-GXucSWXXrC   c                    \         P                  P                  V P                  V P                  4      p\         P                  P                  V4      # rF   )rM   r`   r<   r   r   isfile)rk   r`   s   & rA   existsWheel.exists   s1    ww||DLL$--8ww~~d##rC   c              #     "   V P                    F/  pV P                   F  pV P                   F	  pWV3x  K  	  K  	  K1  	  R # 5irF   )r   r   r   )rk   r   r   r   s   &   rA   tags
Wheel.tags   s:     ZZExx IIDd** &    s   AAc           
        \         P                  P                  V P                  V P                  4      pV P
                  : R V P                  : 2pRV,          p\        P                  ! R4      p\        VR4      ;_uu_ 4       pV P                  V4       \        \        .pRpV Fd  p \        P                  ! W84      p	VP                  V	4      ;_uu_ 4       p
V! V
4      p\        VR7      pV'       d    RRR4        M RRR4       Kf  	  V'       g"   \#        RRP                  V4      ,          4      h RRR4       V#   + '       g   i     K  ; i  \          d     K  i ; i  + '       g   i     X# ; i)r'   %s.dist-infoutf-8rN)fileobjz8Invalid wheel, because metadata is missing: looked in %sz, )rM   r`   r<   r   r   r_   r   codecs	getreaderr   get_wheel_metadatar   r   	posixpathopenr   KeyError
ValueError)rk   rp   name_verinfo_dirwrapperzffnsr|   fnmetadata_filenamebfwfs   &           rA   metadataWheel.metadata   sA   77<<dmm<"ii6!H,""7+Xs##r##B' +,DECF(1x(D%!233r$R[!)"!5!!	 43 " 43    "9;?99S>"J K K + $0  433
   ' $#0 sf   %E)+/EE8E E)EE)!E)EEE)EE&	"E)%E&	&E))E:	c                J   V P                   : R V P                  : 2pRV,          p\        P                  ! VR4      pVP	                  V4      ;_uu_ 4       p\
        P                  ! R4      ! V4      p\        V4      pRRR4       \        X4      #   + '       g   i     L; i)r'   r   WHEELr   N)	r_   r   r   r<   r   r   r   r   dict)rk   r   r   r   r   r   r   messages   &&      rA   r   Wheel.get_wheel_metadata  sz    "ii6!H,%NN8W=WW&''2!!'*2.B'+G ( G} ('s   (BB"	c                    \         P                  P                  V P                  V P                  4      p\        VR 4      ;_uu_ 4       pV P                  V4      pRRR4       V#   + '       g   i     X# ; i)r   N)rM   r`   r<   r   r   r   r   )rk   rp   r   r|   s   &   rA   r   
Wheel.info#  sU    77<<dmm<Xs##r,,R0F $ $#s   	A%%A6	c                
   \         P                  V4      pV'       d   VP                  4       pVR V WR  rTRVP                  4       9   d   \        pM\
        p\        P                  V4      pV'       d    RVP                  4       R,          ,           pMRpWg,           pWE,           pV# VP                  R4      pVP                  R4      p	V^ 8  g   W8  d   Rp
MWV^,            R8X  d   Rp
MRp
\
        V
,           V,           pV# )Ns   pythonw    rC         
s   
)	
SHEBANG_REr   endlowerSHEBANG_PYTHONWSHEBANG_PYTHONSHEBANG_DETAIL_REgroupsfind)rk   datar/   r   shebangdata_after_shebangshebang_pythonargscrlfterms   &&         rA   process_shebangWheel.process_shebang*  s    T"%%'C*.t*d4j'W]]_,!0!/!''0Aahhjn,$+G/D  5!B5!BAv26?g-"D D!D(4/DrC   c                    Vf   V P                   p \        \        V4      pT! T4      P                  4       p\        P                  ! T4      P                  R4      P                  R4      pY$3#   \         d    \	        RT,          4      hi ; i)NzUnsupported hash algorithm: %r   =ascii)
	hash_kindgetattrhashlibAttributeErrorr   digestbase64urlsafe_b64encoderstripdecode)rk   r   r   hasherr|   s   &&&  rA   get_hashWheel.get_hashH  s    I	QWi0F $$&))&188>EEgN  	  	Q"#Ci#OPP	Qs   A/ /Bc                    \        V4      pVP                  VR R 34       \        V4      ;_uu_ 4       pV F  pVP                  V4       K  	  RRR4       R#   + '       g   i     R# ; ir2   N)listr7   r   writerow)rk   recordsrecord_patharchive_record_pathwriterrows   &&&&  rA   write_recordWheel.write_recordS  sQ    w-+R45{##v$  $###s   AA)	c                   . pVw  rVV F|  w  rx\        VR 4      ;_uu_ 4       p	V	P                  4       p
RRR4       RV P                  X
4      ,          p\        P                  P                  V4      pVP                  W{V34       K~  	  \        P                  P                  VR4      p\        \        P                  P                  VR4      4      pV P                  WHV4       VP                  Wx34       R#   + '       g   i     L; i)rbNz%s=%sRECORD)
r   readr   rM   r`   getsizer7   r<   to_posixr  )rk   r   libdirarchive_pathsr  distinfor   appfr   r   sizes   &&&&         rA   write_recordsWheel.write_recordsZ  s    !"EBa!vvx t}}T22F77??1%DNNB-. # GGLL8,bggll8X67'b)bW% s   C88Dc                    \        VR \        P                  4      ;_uu_ 4       pV F,  w  rE\        P	                  RWT4       VP                  WT4       K.  	  RRR4       R#   + '       g   i     R# ; i)wzWrote %s to %s in wheelN)r   zipfileZIP_DEFLATEDloggerdebugwrite)rk   rp   r  r   r  r  s   &&&   rA   	build_zipWheel.build_zipj  sN    XsG$8$899R&6> ' :999s   3A!!A2	c           
     \  a Vf   / p\        \        V3R lR4      4      ^ ,          pVR8X  d   Rp\        .p\        .p\        .pMRp\
        .pR.pR.pVP                  RV4      V n        VP                  R	V4      V n        VP                  R
V4      V n	        SV,          p	V P                  : RV P                  : 2p
RV
,          pRV
,          p. pR EF~  pVS9  d   K  SV,          p\        P                  P                  V4      '       g   K=  \        P                  ! V4       EF&  w  pppV EF  p\!        \        P                  P#                  VV4      4      p\        P                  P%                  VV4      p\'        \        P                  P#                  WV4      4      pVP)                  VV34       VR8X  g   K  VP+                  R4      '       d   K  \-        VR4      ;_uu_ 4       pVP/                  4       pRRR4       V P1                  X4      p\-        VR4      ;_uu_ 4       pVP3                  V4       RRR4       EK  	  EK)  	  EK  	  T	pRp\        P                  ! V4       EF  w  pppVV8X  dl   \5        V4       FM  w  pp\!        V4      pVP+                  R4      '       g   K*  \        P                  P#                  VV4      pVV  M	  V'       g   Q R4       hV F  p\!        V4      P+                  R4      '       d   K%  \        P                  P#                  VV4      p\'        \        P                  P%                  VV4      4      pVP)                  VV34       K  	  EK  	  \        P6                  ! V4      pV Fq  pVR 9  g   K  \!        \        P                  P#                  VV4      4      p\'        \        P                  P#                  VV4      4      pVP)                  VV34       Ks  	  RT;'       g    V P8                  ,          R\:        ,          RV,          .pV P<                   F$  w  pppVP)                  RV: RV: RV: 24       K&  	  \        P                  P#                  VR4      p\-        VR4      ;_uu_ 4       pVP3                  RP#                  V4      4       RRR4       \'        \        P                  P#                  VR4      4      pVP)                  VV34       R p \?        VV R7      pV PA                  VV3W4       \        P                  P#                  V PB                  V PD                  4      p!V PG                  V!V4       V!#   + '       g   i     ELw; i  + '       g   i     EKd  ; i  + '       g   i     L; i)!zq
Build a wheel from files in specified paths, and use any specified tags
when determining the name of the wheel.
Nc                    < V S9   # rF   rG   )rI   pathss   &rA   rJ   Wheel.build.<locals>.<lambda>x  s	    qEzrC   platlibfalsetruer   r   r   r   r   r'   %s.datar   scripts.exer
  wb
.dist-infoz(.dist-info directory expected, not foundr   zWheel-Version: %d.%dzGenerator: distlib %szRoot-Is-Purelib: %szTag: r  
c                 \    V ^ ,          pVP                  R4      pRV9   d
   VR,          pW!3# )r   rD   r,  i'  )count)tr  ns   &  rA   sorterWheel.build.<locals>.sorter  s0    1BAr!U
7NrC   )key)purelibr%  )r   headersr)  )z.pycz.pyo)r  	INSTALLERSHAREDr   )$r   r   IMPVERABIARCHr   getr   r   r   r_   r   rM   r`   isdirwalkr	   r<   relpathr  r7   endswithr   r  r   r  	enumeratelistdirwheel_versionr   r   sortedr  r   r   r  )"rk   r#  r   rC  libkeyis_puredefault_pyverdefault_abidefault_archr  r   data_dirr   r  r4  r`   rootdirsfilesr   r  rpr  r  r   r  idnwheel_metadatar   r   r   r2  rp   s"   &f&&                              rA   buildWheel.buildp  sd   
 <Df13IJKANYG#HM%K 6LG"GM!(K!7LXXg}5
88E;/HHV\2	v"ii6x'!H, 2C%:Dww}}T"")+%D$#$RWW\\$%;<WW__Q5%bggll8"&EF%,,b!W5)+AJJv4F4F!%a!'(vvx "/#'#7#7#=D!%a! ! "/ $ *7 2( !#D$t| 't_EAr!"B{{<00#%77<<b#9 G -  K!KKxB<(()9::GGLLr*bggooa67$$b!W-  "/* 

8$BCCRWW\\(B78bggll8R89$$b!W-	  #m&I&It7I7IJ#k1!G+

 !%		E3!!UC"FG !*GGLL7+!S\\QGGDIIn-. bggll8W56b!W%	 }&9 	Hh/G77<<dmm<x/M "/ "/V \s$   3U21V!!V2VVV+	c                $    VP                  R4      # )zT
Determine whether an archive entry should be skipped when verifying
or installing.
)rD   z/RECORD.jws)r@  )rk   arcnames   &&rA   
skip_entryWheel.skip_entry  s      455rC   c                8   VP                   pVP                  R4      pVP                  RR4      pVP                  RR4      p\        P                  P	                  V P
                  V P                  4      pV P                  : RV P                  : 2p	RV	,          p
RV	,          p\        P                  ! V\        4      p\        P                  ! VR4      p\        P                  ! VR	4      p\        P                  ! R
4      p\        VR4      ;_uu_ 4       pVP                  V4      ;_uu_ 4       pV! V4      p\        V4      pRRR4       XR,          P!                  R^4      p\#        V Uu. uF  p\%        V4      NK  	  up4      pVV P&                  8w  d   V'       d   V! V P&                  V4       VR,          R8X  d   VR,          pM	VR,          p/ pVP                  V4      ;_uu_ 4       p\)        VR7      ;_uu_ 4       pV F  pV^ ,          pVVV&   K  	  RRR4       RRR4       \        P                  ! V
R4      p\        P                  ! VR4      p\        P                  ! V
RR4      p\+        VR7      p RV n        \.        P0                  '       * p!. p"\2        P4                  ! 4       p#V#Vn        RVn         VP;                  4        EFN  p$V$P                  p%\=        V%\>        4      '       d   T%p&MV%PA                  R
4      p&V PC                  V&4      '       d   KS  VV&,          pV^,          '       d4   \E        V$PF                  4      V^,          8w  d   \I        RV&,          4      hV^,          '       d}   V^,          P!                  R^4      w  p'p(VP                  V%4      ;_uu_ 4       pVPK                  4       p)RRR4       V PM                  X)V'4      w  p*p+V+V(8w  d   \I        RV%,          4      hV'       d3   V&PO                  VV34      '       d   \P        PS                  RV&4       EKc  V&PO                  V4      ;'       d    V&PU                  R4      '       * p,V&PO                  V4      '       dH   V&P!                  R^4      w  p*p-p.\        P                  P	                  VV-,          \W        V.4      4      p/M4V&W39   d   EK  \        P                  P	                  V\W        V&4      4      p/V,'       EgJ   VP                  V%4      ;_uu_ 4       pV PY                  VV/4       RRR4       \        P                  R8X  d0   \        PZ                  ! V/V$P\                  ^,	          R,          4       V"P_                  V/4       V'       gl   V^,          '       d]   \        V/R 4      ;_uu_ 4       pVPK                  4       p)V PM                  V)X'4      w  p*p0V0X+8w  d   \I        R!V/,          4      h RRR4       V!'       dC   V/PU                  R"4      '       d)    V Pa                  V/VR#7      p1V"P_                  V14       EKp  EKs  EKv  \        P                  Pg                  \W        V%4      4      p2\        P                  P	                  V#V24      p3VP                  V%4      ;_uu_ 4       pV PY                  VV34       RRR4       \        P                  P!                  V/4      w  p4p2V4Vn        VPi                  V24      p5V Pk                  V54       V"Pm                  V54       EKQ  	  V'       d   \P        PS                  R&4       Rp6EMRp7V Pn                  R,          pVR'8X  d   \        P                  ! VR(4      p8 VP                  V84      ;_uu_ 4       p\q        V4      p9RRR4       / p7R: F  p:R*V:,          p;V;X99   g   K  / ;V7R+V:,          &   p<V9V;,          Ps                  4        Fj  p=V=Pt                  : R,V=Pv                  : 2p>V=Px                  '       d*   V>R-R.P	                  V=Px                  4      ,          ,          p>V>V<V=P                  &   Kl  	  K  	  Mi VP                  V4      ;_uu_ 4       pV! V4      p\z        P|                  ! V4      P                  R04      p7V7'       d   V7P                  R14      p7RRR4       V7'       Ed   V7P                  R3/ 4      p?V7P                  R4/ 4      p@V?'       g	   X@'       d   VP                  RR4      pA\        P                  P                  VA4      '       g   \        R54      hXAVn        V?P                  4        F1  w  p;p=V;: R6V=: 2pBVPi                  VB4      p5V Pk                  V54       K3  	  X@'       dK   R)R/pCX@P                  4        F2  w  p;p=V;: R6V=: 2pBVPi                  VBXC4      p5V Pk                  V54       K4  	  \        P                  P	                  VV4      p\        V4      p6\        V4      pVR VR VVR7&   V6P                  W4      pV'       d   V"P_                  V4       V6P                  V"VR8,          V4       V6\        P                  ! V#4       uuRRR4       #   + '       g   i     E	LJ; iu upi   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL
; i  + '       g   i     EL; i  + '       g   i     EL; i  \b         d    \P        Pe                  R$RR%7        EKV  i ; i  + '       g   i     ELy; i  + '       g   i     EL; i  \b         d    \P        Pe                  R/4        ELi ; i  + '       g   i     EL; i  \b         d    \P        Pe                  R24        ELi ; i  \b         d(    \P        P                  R94       T P                  4        h i ; i  \        P                  ! T#4       i ; i  + '       g   i     R# ; i);a  
Install a wheel to the specified paths. If kwarg ``warner`` is
specified, it should be a callable, which will be called with two
tuples indicating the wheel version of this software and the wheel
version in the file, if there is a discrepancy in the versions.
This can be used to issue any warnings to raise any exceptions.
If kwarg ``lib_only`` is True, only the purelib/platlib files are
installed, and the headers, scripts, data and dist-info metadata are
not written. If kwarg ``bytecode_hashed_invalidation`` is True, written
bytecode will try to use file-hash based invalidation (PEP-552) on
supported interpreter versions (CPython 3.7+).

The return value is a :class:`InstalledDistribution` instance unless
``options.lib_only`` is True, in which case the return value is ``None``.
warnerlib_onlyFbytecode_hashed_invalidationr'   r(  r   r   r  r   r   NzWheel-Versionr)   zRoot-Is-Purelibr'  r5  r%  streamr2   r)  )dry_runTsize mismatch for %s=digest mismatch for %szlib_only: skipping %sr*  rD   posixi  r
  zdigest mismatch on write for %sz.py)hashed_invalidationzByte-compilation failed)exc_infozlib_only: returning Nonez1.0zentry_points.txtguiz
%s_scriptszwrap_%s:z [%s],zAUnable to read legacy script metadata, so cannot generate scriptsrq   zpython.commandsz8Unable to read JSON metadata, so cannot generate scriptswrap_consolewrap_guizValid script path not specifiedz = libprefixzinstallation failed.)consolere  )Jr^  r<  rM   r`   r<   r   r   r_   r   r   r   r   r   r   r   r   r   tupleintrC  r   r   recordr9   dont_write_bytecodetempfilemkdtemp
source_dir
target_dirinfolist
isinstancer
   r   rV  str	file_sizer   r  r   
startswithr  r  r@  r   copy_streamchmodexternal_attrr7   byte_compile	Exceptionwarningbasenamemakeset_executable_modeextendr   r   valuesrk  suffixflagsjsonloadr=  r   itemsr   r   write_shared_locationswrite_installed_filesshutilrmtree	exceptionrollback)Drk   r#  makerkwargsr^  rY  rZ  bc_hashed_invalidationrp   r   rJ  r   metadata_namewheel_metadata_namerecord_namer   r   bwfr   r   wvrO  file_versionr  r  r   readerr  r  data_pfxinfo_pfx
script_pfxfileopbcoutfilesworkdirzinforU  	u_arcnamekindvaluer   r(   r   	is_scriptwhererN  outfile	newdigestpycr   worknamerP  	filenamesdistcommandsepepdatar4  rv   r-   rw   rU   console_scriptsgui_scripts
script_dirscriptoptionssD   &&&,                                                                rA   installWheel.install  s	   " --H%::j%0!',JE!R77<<dmm<"ii6x'!H,!x1IJ'nnXw?nnXx8""7+Xs##r,--S\+B/ . )//Q7B "!5"Q#a&"!56L 2 22t))<8()V3y)y)G%%b))V%F%(
  & * & !~~h3H ~~h3H")R@J "'2F FM,,,BH &&(G  'E#E]'[[]E#nnG!'955$+	$+NN7$;	y11 !),C1vv#eoo"6#a&"@. 046?0@ A A1vv&)!fll3&:eWWW--#%779D .$(MM$$=	6!U?"2 48:A4B #C C  I$8$8(H9M$N$N%<iH !*!5!5j!A!d!d)J\J\]cJdFdI ++H55'0sA'>5""$'',,uU|\"=M"N %)<(JJ$"$'',,v|I7N"O$9WWW--"..r7; . 77g-HHWu/B/Bb/HE.QR 0&3q66!%gt!4!4')wwy/3}}T4/H9#,#6*: <@BI<J +K %K $7 "5 '"2"25"9"9Y&,&9&9'Wm&9&n ( 4 #:2  WW--l7.CD#%77<<#<WWW--"..r8< . "$w!7B+-($)JJrN	229= 	2Q +T LL!;<D  $H#'99_#=L#u,&^^H6HI6!#)5c): "-')H'9$03$6#$;DF$FHY_$=-3AY-=-=-?78xx,J+,777,-388AGG;L1L,LA45!&&		 .@	 (:F!#!7!73%,S\+/99R=+<+<\+J#+/7||<M/NH	 "8  x*2,,~r*J&.ll:r&B*k).9b)AJ#%77==#<#<&0 2= '> !>/9E,(7(=(=(?167);,1JJv,>	 & : :9 E )@
  ++0$-,7,=,=,?DAq:;Q-?F05

670KI$*$>$>y$I -@
 VX6A03D !KEi(i(#)E%L33ECA * ..xx'R g&M $#--- "6 *)) &%%R .--* .-- "5!4!4 $- Y !'/HSW X XY .--0 "-  ) 6"NN ,5 66 "8!7!7
  ) F"NN ,E FFN    !78!
 g&M $##s  p2j	*p0jp$Ap3j4	j  j4	(BpA n8%n8?An85n86k=n8n80n8-n8=Bn8n8k-A$n8n8!n85?k05n8n8$lA*n8+l.>A0n8/An8<mm	!mBmn8n4Am=	;nn8+n88n8 6n87An8Cn8&pjp j1+	j4	4k?	pk	n8k-'	n80l;	n8"l+	&n8*l+	+n8.l?9	n8m	m m:6n89m::n8=nnn8n n51n84n55n882o**o--ppp	c                    \         fZ   \        P                  P                  \	        4       \        R4      R\        P                  R,          ,          4      p\        V4      s \         # )Nzdylib-cachez%s.%sr$   )	cacherM   r`   r<   r   rw  r9   r:   r   )rk   bases   & rA   _get_dylib_cacheWheel._get_dylib_cache  sE    =77<< 0#m2DgPSP`P`acPdFdeD$KErC   c                z   \         P                  P                  V P                  V P                  4      pV P
                  : R V P                  : 2pRV,          p\        P                  ! VR4      p\        P                  ! R4      p. p\        VR4      ;_uu_ 4       p VP                  V4      ;_uu_ 4       pV! V4      p	\        P                  ! V	4      p
V P                  4       pVP                  V P                  RR7      p\         P                  P                  VP                   V4      p\         P                  P#                  V4      '       g   \         P$                  ! V4       V
P'                  4        F  w  r\         P                  P                  V\)        V4      4      p\         P                  P+                  V4      '       g   RpMs\         P,                  ! V4      P.                  p\0        P0                  P3                  V4      pVP5                  V4      p\0        P0                  ! VP6                  !  pVV8  pV'       d   VP9                  W4       VP;                  VV34       K  	  RRR4       RRR4       T#   + '       g   i     L; i  \<         d     L*i ; i  + '       g   i     T# ; i)	r'   r   
EXTENSIONSr   r   F)use_abspathTN)rM   r`   r<   r   r   r_   r   r   r   r   r   r   r  r  r  prefix_to_dirr  r=  makedirsr  r   r   statst_mtimedatetimefromtimestampgetinfo	date_timeextractr7   r   )rk   rp   r   r   rU  r   r|   r   r   r   rq   r  rk  
cache_baser_   r?  destr  	file_timer   
wheel_times   &                    rA   _get_extensionsWheel._get_extensions  s   77<<dmm<"ii6!H,..<8""7+Xs##rWWW%% B!%2J 113E"00E0RF!#ejj&!AJ77==44J/)3)9)9);!ww||JW8MN!ww~~d33&*G(*(>(>I(0(9(9(G(G	(RI#%::g#6D)1):):DNN)KJ&09&<G"JJw;tTl3 *< & $2 / &%*  / $#2 sU   J) J9FJ	(J	3JJJJ)JJ&#J)%J&&J))J:	c                    \        V 4      # )z=
Determine if a wheel is compatible with the running system.
)is_compatiblerj   s   &rA   r  Wheel.is_compatible  s     T""rC   c                    R# )z@
Determine if a wheel is asserted as mountable by its metadata.
TrG   rj   s   &rA   is_mountableWheel.is_mountable  s     rC   c                   \         P                  P                  \         P                  P                  V P                  V P
                  4      4      pV P                  4       '       g   R V,          p\        V4      hV P                  4       '       g   RV,          p\        V4      hV\        P                  9   d   \        P                  RV4       R# V'       d!   \        P                  P                  V4       M \        P                  P                  ^ V4       V P                  4       pV'       dT   \        \        P                   9  d$   \        P                   P                  \        4       \        P#                  W$4       R# R# )z)Wheel %s not compatible with this Python.z$Wheel %s is marked as not mountable.z%s already in pathN)rM   r`   r   r<   r   r   r  r   r  r9   r  r  r7   insertr  _hook	meta_pathrr   )rk   r7   rp   msgrq   s   &&   rA   mountWheel.mount  s    77??277<<dmm#LM!!##=HC"3''  ""88CC"3''sxxLL-x8)8,--/J-MM((/		(/ rC   c                @   \         P                  P                  \         P                  P                  V P                  V P
                  4      4      pV\        P                  9  d   \        P                  R V4       R# \        P                  P                  V4       V\        P                  9   d   \        P                  V4       \        P                  '       gA   \        \        P                  9   d&   \        P                  P                  \        4       R# R# R# )z%s not in pathN)rM   r`   r   r<   r   r   r9   r  r  rx   r  rh   r  )rk   rp   s   & rA   unmountWheel.unmount)  s    77??277<<dmm#LM388#LL)84HHOOH%5...X&&&&CMM)MM((/ * 'rC   c                .   \         P                  P                  V P                  V P                  4      pV P
                  : R V P                  : 2pRV,          p\        P                  ! VR4      p\        P                  ! VR4      p\        P                  ! R4      p\        VR4      ;_uu_ 4       pVP                  V4      ;_uu_ 4       pV! V4      p	\        V	4       RRR4       / p
VP                  V4      ;_uu_ 4       p\        VR7      ;_uu_ 4       pV F  pV^ ,          pWV&   K  	  RRR4       RRR4       VP                  4        EFU  pVP                  p\        V\         4      '       d   TpMVP#                  R4      pVP%                  R4      pR	V9   d   \'        R
V,          4      hV P)                  V4      '       d   K}  V
V,          pV^,          '       d4   \+        VP,                  4      V^,          8w  d   \'        RV,          4      hV^,          '       g   K  V^,          P%                  R^4      w  ppVP                  V4      ;_uu_ 4       pVP/                  4       pRRR4       V P1                  XV4      w  ppVV8w  g   EKF  \'        RV,          4      h	  RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     R# ; i)r'   r   r   r  r   r   Nr\  rD   ..invalid entry in wheel: %rr_  r`  ra  )rM   r`   r<   r   r   r_   r   r   r   r   r   r   r   r   ru  rv  r
   r   r   r   rV  rw  rx  r  r   )rk   rp   r   r   r  r  r   r   r  r   r  r   r  r  r  r  rU  r  r  r  r   r(   r   s   &                      rA   r   Wheel.verify5  sh   77<<dmm<"ii6!H, (nnXw?nnXx8""7+Xs##r,--S\!"% . G%%b))V%F%(
  & * & ..gy11 'I 'w 7I OOC(19* ,79B,C D D ??9--i(q66c%//2c!f<* ,02;,< = =q66"%a&,,sA"6KD%))R!wwy * $dD 9IAv. 046=0> ? ?5 ' $#--- *)) &%%8 *)K $##s   3LJ4	!#LK	K0K	8BLL%?L)5LK0/!LL4K?	LK	K	K-'	L0L ;LL	c                   R pR p\         P                  P                  V P                  V P                  4      pV P
                  : RV P                  : 2pRV,          p\        P                  ! VR4      p	\        4       ;_uu_ 4       p
\        VR4      ;_uu_ 4       p/ pVP                  4        F  pVP                  p\        V\        4      '       d   TpMVP                  R4      pW8X  d   KA  RV9   d   \        R	V,          4      hVP                  W4       \         P                  P                  V
\!        V4      4      pVW&   K  	  R
R
R
4       V! XV4      w  ppV! V3/ VB pV'       Ed7   V! W4      w  ppV'       d   VV8X  d
   V! VV4       Vf4   \"        P$                  ! RRV
R7      w  pp\         P&                  ! V4       M`\         P                  P)                  V4      '       g   \        RV,          4      h\         P                  P                  W P                  4      p\+        VP-                  4       4      p\         P                  P                  W4      pVV3pV P/                  VV
V4       V P1                  VV4       Vf   \2        P4                  ! VV4       R
R
R
4       V#   + '       g   i     ELo; i  + '       g   i     X# ; i)a)  
Update the contents of a wheel in a generic way. The modifier should
be a callable which expects a dictionary argument: its keys are
archive-entry paths, and its values are absolute filesystem paths
where the contents the corresponding archive entries can be found. The
modifier is free to change the contents of the files pointed to, add
new entries and remove entries, before returning. This method will
extract the entire contents of the wheel to a temporary location, call
the modifier, and then use the passed (and possibly updated)
dictionary to write a new wheel. If ``dest_dir`` is specified, the new
wheel is written there -- otherwise, the original wheel is overwritten.

The modifier should return True if it updated the wheel, else False.
This method returns the same value the modifier returns.
c                     R ;r#V: R\         : 2pW@9  d
   RV,          pW@9   d   W,          p\        VR7      P                  pW#3# )NrD   z%s/PKG-INFOr`   )r   r   r   )path_mapr   r   r`   r4  s   &&   rA   get_version!Wheel.update.<locals>.get_version~  sI    !!G%'?@C"#h.}"-55= rC   c                 D   R p \        V 4       V P                  R4      pV^ 8  d   RV ,          pMjW^,           R  P                  R4       Uu. uF  p\        V4      NK  	  ppVR
;;,          ^,          uu&   V R V : RRP	                  R V 4       4      : 2p V'       dR   \        VR7      pW&n	        VP                  \        4      pVP                  WR7       \        P                  R	W4       R # R # u upi   \
         d    \        P                  RT 4        Li ; i)Nr'   z%s+1r)   +c              3   8   "   T F  p\        V4      x  K  	  R # 5irF   )rw  ).0rO  s   & rA   	<genexpr>7Wheel.update.<locals>.update_version.<locals>.<genexpr>  s     >Uu!s1vvus   z0Cannot update non-compliant (PEP-440) version %rr  )r`   legacyzVersion updated from %r to %rr   )r   r   r   rn  r<   r   r  r  r   r   r@  r   r  )r   r`   updatedrO  rU   r=   mdr  s   &&      rA   update_version$Wheel.update.<locals>.update_version  s    G4!'*LL%q5$w.G-4UV_-B-B3-GH-GSV-GEH"INI)0!chh>Uu>U6UVG 4($
'?@d2<gO  I + 4 *+244s(   ,C; C; C6!9C; 6C; ;!DDr'   r   r  r   r   r  r  Nr   zwheel-update-)r  rk  dirzNot a directory: %r)rM   r`   r<   r   r   r_   r   r   r   r   ru  rv  r
   r   r   r  r   rq  mkstempcloser=  r   r  r  r  r  copyfile)rk   modifierdest_dirr  r  r  rp   r   r   r  r  r   r  r  rU  r  r`   original_versionr(   modifiedcurrent_versionfdnewpathr  r  r   s   &&&,                      rA   ro   Wheel.updatem  sI   "	!	P* 77<<dmm<"ii6!H,nnXx8YY'3''2[[]E#nnG!'955$+	$+NN7$;	 / y(. 0;=F0G H HJJu.77<<i1HID*.H' + ($ #.h"Aa3F3Hx(3H(G%";K(K"?D9#"*"2"2&^e"fKBHHRL77==22./Dx/OPP ggll8]]CG $X^^%5 677<<:)""4-@w6#OOGX6U V U ('' YV s3   
KB/J4	%K4A>K3B7K4K?	KK	)
r   r   r   r   r   r_   r   r   r   r   )   r  )NFFrF   )NN)F)"r   r   r   r   __doc__rC  r   rl   propertyr   r   r   r   r   r   r   r   r   r  r  r  rR  rV  r  r  r  r  r  r  r  r   ro   r   r   r   s   @rA   r   r      s      MI'2R Y Y $ $ + +  >  <	!%&  sj6 g'R D#0*
06?p_ _rC   r   c                     ^ RI p V P                  4       p. pV^ ,          R8X  d]   V^,          P                  R4       F5  pTP                  VP	                  4       '       d   \        V4      M^ 4       K7  	  \        V4      pV# )r   Nglibcr)   )platformlibc_verr   r7   isdigitrn  rm  )r  verr|   rU   s       rA   _get_glibc_versionr    se    



CF
1vQc"AMMAIIKK#a&Q7 #vMrC   c                 N
    ! R R4      p \        \        P                  P                  RR4       Uu. uF$  pV ! \        P                  P                  V4      NK&  	  pp. p\        4        FD  pVP                  R4      '       g   K  VP                  VP                  R^4      ^,          4       KF  	  VP                  4        \        R8w  d   VP                  ^ \        4       VP                  R4       . p\        .p\        P                  R8X  Ed   \        P                  ! R\        4      pV'       d   VP!                  4       w  rr\#        V
4      p
V.pVR9   d   VP                  R4       VR9   d   VP                  R	4       VR9   d   VP                  R
4       VR9   d   VP                  R4       VR9   d   VP                  R4       V
^ 8  dD   V F2  pV: RV	: RV
: RV: 2pV\        8w  g   K!  VP                  V4       K4  	  V
^,          p
KJ  \%        V4       EF  w  pp\'        V4      p. pV^ 8X  d   Tp\(        R8X  dF   VP*                  R8  d5   R\'        VP                  4      ,           pVV9  d   VP                  V4       V EF~  pV EFs  pVP                  RP-                  \(        V34      VV34       VR8w  g   K6  \        P                  P                  R4      '       g   K]  VP/                  RR4      p\1        4       p\3        V4      ^8X  g   K  VR 8  d1   VP                  RP-                  \(        V34      VRV,          34       VR!8  d1   VP                  RP-                  \(        V34      VRV,          34       VR"8  d1   VP                  RP-                  \(        V34      VRV,          34       VP                  RP-                  \(        V34      VRV^ ,          : RV^,          : RV: 234       EKv  	  EK  	  EK  	  \%        V4       Fs  w  pp\'        V4      pVP                  RP-                  \(        V34      RR34       V^ 8X  g   KC  VP                  RP-                  \(        V^ ,          34      RR34       Ku  	  \%        V4       Fk  w  pp\'        V4      pVP                  RP-                  RV34      RR34       V^ 8X  g   K?  VP                  RP-                  RV^ ,          34      RR34       Km  	  \5        V4      # u upi )#z?
Return (pyver, abi, arch) tuples compatible with this Python.
c                   ,   a  ] tR tRt o R tR tRtV tR# )!compatible_tags.<locals>._Versioni  c                v    Wn         W3V n        R P                  \        V4      \        V4      34      V n        R# r   )majormajor_minorr<   rw  string)rk   r  minors   &&&rA   rl   *compatible_tags.<locals>._Version.__init__  s.    J %~D''3u:s5z":;DKrC   c                    V P                   # rF   )r  rj   s   &rA   __str__)compatible_tags.<locals>._Version.__str__  s    ;;rC   )r  r  r  N)r   r   r   r   rl   r  r   r   r   s   @rA   _Versionr    s     	<
	 	rC   r  z.abir)   r   darwinz(\w+)_(\d+)_(\d+)_(\w+)$fatfat3fat64intel	universalr(   r"   r   r2   linuxlinux_zmanylinux1_%szmanylinux2010_%szmanylinux2014_%s
manylinux_r   r&   r   )i386ppc)r  r   x86_64)ppc64r!  )r  r!  )r  r!  r  r   r"  )r3   r%   )r%      )r%      )r%      )ranger9   r:   r  r  rV   ry  r7   r   sortr:  r  r;  r  rer   r   rn  rA  rw  r8   r  r<   rL   r  r   set)r  minor_versionversionsabisr  r|   archesr/   r_   r  r  r   matchesr   rU   rO  version_objectr   add_abislimited_api_abir   r=   s                         rA   compatible_tagsr2    sV     #3#3#3#9#92rBBM 	!!''7B   D/V$$KKS!,Q/0 " 	IIK
f}AsKKFVF
||xHH0$7'(xxz$DJEfG&u%00v&**w'))w'BB{+1*$E)-ueUCADya( % 
 'x0>n%6H."<"<"F#c.*>*>&??Oh.0Crww
G'<=sDIJ&=S\\%<%<W%E%E<<"5D.0E5zQ F?"MM277J3H+I3P_bfPf*gh G+"MM277J3H+I3PbeiPi*jk G+"MM277J3H+I3PbeiPi*jkrww'1(347QVWXQYQY[`ab[c[cei9j'l m   1< 'x0>n%rww
G45vuEF6MM277J
#;<feLM	 1 'x0>n%rwwg/?@6MM277D'!*#56FG	 1 v;es   *T"c                     \        V \        4      '       g   \        V 4      p R pVf   \        pV F?  w  r4pW0P                  9   g   K  W@P                  9   g   K*  WPP
                  9   g   K<  Rp V# 	  V# )FT)rv  r   COMPATIBLE_TAGSr   r   r   )wheelr   r|   r  r   r   s   &&    rA   r  r  B  se    eU##eF|$++#"2tzz7IFM	  MrC   rF   )Y
__future__r   r   r   r  emailr   r   r  loggingrM   r   r(  r  r9   rq  r  r2   r   r   compatr   r   r	   r
   r   databaser   r   r   r   r   rY   r   r   r   r   r   r   r   r   r   r   r   r   r   	getLoggerr   r  r  hasattrr8   r  ry  r6   r5   r:   r   r9  rL   r;  r:  r   rB   compile
IGNORECASEVERBOSEr   r   r   r   r   r   rN   r  rP   importlib.machineryrR   importlib.utilrV   rc   objectre   r  r   r  r2  r4  r  rG   rC   rA   <module>rC     sZ   (    #    	  	  
   + C C + Q Q8 8 8 ?			8	$
3#$$J\\V$$J\\UJJ%%&89
#**2..Jz	j	 ~c3'//S9w'3>>*%%
++j$
'
-
-c
21
5C$ -Cjj ]]RZZ	! **  ]]RZZ	! ZZ)*
JJ@A 66S=H/HA
C6	"f "J 		_F _D`F "#
rC   