+
    UBi                    &  a  0 t $ ^ RIHt ^RIH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t^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIHtHt ^ RI H!t! ^R	IH"t" ^R
IH#t# ^RI$H%t%H&t&H't'H(t(H)t)H*t*H+t+H,t, ^RI-H.t. ^RI-H/t/ ^RIH$t$ ]P`                  '       d   ^ RI1t2^ RI3H4t4 ]4R:,          t5 ^ RI6t6Rt7Rt9Rt:. R;Ot;]Px                  R<8  d&   ^ RI=t=]>! ]=P~                  4      ]=P                  nA        ]$P                  ! 4       '       d   ^RICHDtD ^RI$HEtE . tFR]GR&    ]D! RR]FR7      tH]HP                  4       '       g   MX]E! ]HP                  4       R4      '       d   M:]FP                  ]P                  P                  ]HP                  4       4      4       K{  ]HP                  4       '       d   ]HP                  4       MRtOM]P                  ! R4      tORtQ]!! RR7      R R l4       tRR R  ltSR=R! R" lltTR# R$ ltUR% R& ltV]!! RR7      R' R( l4       tWR) R* ltXR+ R, ltY ! R- R.]*4      tZ ! R/ R0]Z4      t[ ! R1 R24      t\R3 R4 lt]R>R5 R6 llt^]! RR77       ! R8 R94      4       t_R#   ]8 d    Rt7 ELi ; i)?    )annotations)mlogN)	dataclass)	b64encode)netrc)PathPurePath)	lru_cache)WrapMode)coredata)DirectoryLockDirectoryLockAction	quiet_gitGITProgressBarMesonExceptionwindows_proof_rmtree
Popen_safe)
FeatureNew)
SubProject)mesonlib)LiteralTFg      >@wrapdb.mesonbuild.com)ExternalProgram)version_compareT.List[str]_exclude_pathspatch)silentexclude_pathsz>=2.6.1z

    If you believe the connection should be secure, but python cannot see the
    correct SSL certificates, install https://truststore.readthedocs.io/ and
    try again.)maxsizec                   V ^8  d   QhRR/# )   returnzT.Optional[ssl.SSLContext] )formats   "9/usr/lib/python3.14/site-packages/mesonbuild/wrap/wrap.py__annotate__r(   W   s     > >2 >    c                 n     ^ RI p V P                  \        P                  4      #   \         d     R# i ; i)zMProvide a default context=None for urlopen, but use truststore if installed. N)
truststore
SSLContextsslPROTOCOL_TLS_CLIENTImportError)r+   s    r'   ssl_truststorer0   V   s7    >
 $$S%<%<==	  s   % 44c                    V ^8  d   QhRRRR/# )r#   urlstrstrr$   urllib.parse.ParseResultr%   )r&   s   "r'   r(   r(   a   s     	 	S 	%= 	r)   c                @   \         P                  P                  V 4      pVP                  '       g   \	        V  R24      hVP                  P                  \        4      '       g   \	        V  R24      h\        '       d    VP                  R8X  g   \	        RV  24      hV# )z2raises WrapException if not whitelisted subdomain z is not a valid URLz  is not a whitelisted WrapDB URLhttpsz8WrapDB did not have expected SSL https url, instead got )	urllibparseurlparsehostnameWrapExceptionendswithWHITELIST_SUBDOMAINhas_sslscheme)r2   urls   & r'   whitelist_wrapdbrA   a   s    
,,


'C<<<vh&9:;;<<  !455vh&FGHHwszzW,VW]V^_``Jr)   c          
     ,    V ^8  d   QhRRRRRRRRRR/# )	r#   	urlstringr3   allow_insecureboolhave_optallow_compressionr$   http.client.HTTPResponser%   )r&   s   "r'   r(   r(   l   s<     &Z &Zc &Z4 &Z4 &Zlp &Z  ~V &Zr)   c                .  a V'       d   R pMRpR V3R llp\        V 4      p\        '       d
    V! V4      # V'       g    \        R	\        P                    R
V 24      h\        P                  ! R	\        P                    R2RR7        V! VP#                  RR7      4      #   \         d   pRT  RT R2p\        T\        P
                  P                  4      '       d   \        TP                  \        P                  4      '       dW   T'       d   \        P                  ! T R24        Rp?L\        4       f   \        T T \         24      h\        T T 24      h\        T4      hRp?ii ; i  \         d   p\        RT  RT 24      hRp?ii ; i)z:

    To allow connecting anyway, pass `--allow-insecure`. c                    V ^8  d   QhRRRR/# )r#   r@   r4   r$   rH   r%   )r&   s   "r'   r(   $open_wrapdburl.<locals>.__annotate__r   s      ~ ~0 ~5M ~r)   c           	     $  < / pS'       d   R VR&   \         P                  P                  \         P                  P	                  V 4      VR7      p\
        P                  ! R\         P                  P                  V\        \        4       R7      4      # )gzipAccept-EncodingheadersrH   timeoutcontext)
r7   requestRequestr8   
urlunparseTcasturlopenREQ_TIMEOUTr0   )r@   rQ   reqrG   s   &  r'   
do_urlopen"open_wrapdburl.<locals>.do_urlopenr   sk    )/G%&nn$$V\\%<%<S%A7$Svv0&..2H2HVakyk{2H2|}}r)   zWrapDB connection failed to z with error .z(

    Proceeding without authentication.NzSSL module not available in z: Cannot contact the WrapDB.z#: WrapDB traffic not authenticated.T)oncehttp)r?   )rA   r>   OSError
isinstancer7   errorURLErrorreasonr-   SSLCertVerificationErrorr   warningr0   r;   truststore_messagesys
executable_replace)	rC   rD   rF   rG   insecure_msgr]   r@   excpmsgs	   &&&f     r'   open_wrapdburlrp   l   s}   U~ ~ 9
%Cw	)c?" :3>>:JJfgsftuvv 	3CNN3CCfgnrsZ#,,f,566'  
	)0<vQOC$ 5 566:dkkSVSoSo;p;p!LLC5(R!STT#%-'3%~>P=Q(RSS'3%~(>??#C((
	)(  Z:9+\RVQWXYYZs<   B" 
E3 "E0-A$E+E+0;E++E03F>FFc                    V ^8  d   QhRRRR/# )r#   resprH   r$   bytesr%   )r&   s   "r'   r(   r(      s      6 5 r)   c                    V P                  4       pV P                  R ,          pVR8X  d   \        P                  ! V4      # V'       d   \	        RV P
                   RV 24      hV# )zContent-EncodingrN   z Unexpected Content-Encoding for : )readrQ   rN   
decompressr;   r@   )rr   dataencodings   &  r'   read_and_decompressrz      sX    99;D||./H6t$$	>txxj8*UVVr)   c                    V ^8  d   QhRRRR/# )r#   rD   rE   r$   rs   r%   )r&   s   "r'   r(   r(      s     $ $d $u $r)   c                4    \        R V RR4      p\        V4      # )z.https://wrapdb.mesonbuild.com/v2/releases.jsonT)rp   rz   )rD   r@   s   & r'   get_releases_datar}      s     
I>[_ae
fCs##r)   c                    V ^8  d   QhRRRR/# )r#   rD   rE   r$   T.Dict[str, T.Any]r%   )r&   s   "r'   r(   r(      s     C C C*< Cr)   c                    \        V 4      p\        P                  ! R \        P                  ! VP                  4       4      4      # )r   )r}   rX   rY   jsonloadsdecode)rD   rx   s   & r'   get_releasesr      s-    ^,D66&

4;;=(ABBr)   c               0    V ^8  d   QhRRRRRRRRRRRR	/# )
r#   wrapfiler3   namenew_versionnew_revisionrD   rE   r$   Noner%   )r&   s   "r'   r(   r(      s8     * *s *# *C *s *dh *mq *r)   c                    \        R V RV RV RV R2	VRR4      p\        V R4      ;_uu_ 4       pVP                  \        V4      4       RRR4       R#   + '       g   i     R# ; i)!https://wrapdb.mesonbuild.com/v2/_-/.wrapTwbN)rp   openwriterz   )r   r   r   r   rD   r@   fs   &&&&&  r'   update_wrap_filer      sh    
<TF!K=PQR^Q__`ae`ffkl't5C	h			#C() 
			s   AA&	c                    V ^8  d   QhRRRR/# )r#   	patch_urlr3   r$   T.Tuple[str, str]r%   )r&   s   "r'   r(   r(      s     ? ?s ?'8 ?r)   c                   \         P                  P                  V 4      pVP                  R 8w  d   \	        RV  R24      hVP
                  P                  R4      P                  R4      pV^ ,          R8X  d   VR	,          VR
,          3# V^ ,          R8X  d5   VR
,          pVP                  R^4      w  rEVP                  R^4      w  rVWV3# \	        RV  24      h)r   zURL z$ does not seems to be a wrapdb patchr   v1v2r   r   zInvalid wrapdb URL )	r7   r8   r9   netlocr;   pathstripsplitrsplit)r   uarrtagr   versionrevisions   &      r'   parse_patch_urlr      s    i(Axx**d9+-QRSS
&&,,s

!
!#
&C
1v~2wB	Q4"gZZQ'
#NN32  1)=>>r)   c                      ] tR t^tRtR# )r;   r%   N__name__
__module____qualname____firstlineno____static_attributes__r%   r)   r'   r;   r;          r)   r;   c                      ] tR t^tRtR# )WrapNotFoundExceptionr%   Nr   r%   r)   r'   r   r      r   r)   r   c                      ] tR t^tRR R llt]R R l4       t]R R l4       t]]! R4      3R	 R
 ll4       t	]R R l4       t
R R ltR R lt]R R l4       tR R ltR R ltRtR# )PackageDefinitionNc               (    V ^8  d   QhRRRRRRRR/# )r#   r   r3   subprojects_dirtype_T.Optional[str]valueszT.Optional[T.Dict[str, str]]r%   )r&   s   "r'   r(   PackageDefinition.__annotate__   s)     5 5S 53 5 5_{ 5r)   c                	l   Wn         W n        W0n        T;'       g    / V n        / V n        . V n        . V n        R V n        R V n        RV n	        \        P                  P                  V P                  R4      V n        V P                  P                  RV P                   4      V n        \        P                  P!                  V P                  4      '       d   \#        R4      hRV P                  9   d   V P                  R,          P%                  R4       Ft  p\'        VP)                  4       4      pVP+                  4       '       d   \#        R4      hRVP,                  9   d   \#        R	4      hV P                  P/                  V4       Kv  	  R V P                  V P                   P1                  4       &   R # )
NFpackagefiles	directoryz+Directory key must be a name and not a path
diff_files,z#diff_files paths cannot be absolute..z$diff_files paths cannot contain "..")r   r   typer   provided_depsprovided_programsr   wrapfile_hashoriginal_filename
redirectedosr   joinfilesdirgetr   dirnamer;   r   r   r   is_absolutepartsappendlower)selfr   r   r   r   sr   s   &&&&&  r'   __init__PackageDefinition.__init__   sA   	.	ll;=.0(*.226 %T%9%9>Jdii@77??4>>** MNN4;;&[[.44S9AGGI##%%'(MNN4::%'(NOO&&t, : 15499??,-r)   c          
     ,    V ^8  d   QhRRRRRRRRRR/# )	r#   r   r3   r   r   r   zT.Dict[str, str]r$   r   r%   )r&   s   "r'   r(   r      s8     G G# G GC GIY G^o Gr)   c                	    \        WW#4      # N)r   )r   r   r   r   s   &&&&r'   from_valuesPackageDefinition.from_values   s     FFr)   c                    V ^8  d   QhRRRR/# )r#   filenamer3   r$   r   r%   )r&   s   "r'   r(   r      s     8 8 8): 8r)   c                	    \         P                  P                  V 4      p\         P                  P                  V 4      p\	        W4      # r   )r   r   basenamer   r   )r   r   r   s   &  r'   from_directory PackageDefinition.from_directory   s3    ww)''//(3 77r)   rJ   c               $    V ^8  d   QhRRRRRR/# )r#   r   r3   
subprojectr   r$   r   r%   )r&   s   "r'   r(   r      s"     3 3 3* 3Rc 3r)   c                	   \         P                  V 4      w  r#pR V9   d   \        RR4      P                  V4       RV9   d   \        RR4      P                  V4       R  F:  pV R2V9   g   K  V R2V9  g   K  \        RV R2R4      P                  V4       K<  	  \        P
                  P                  V 4      pVR	8X  d   \        VR
,          4      p\        VP                  4       F9  w  rV^,          ^ 8X  d   V	R8X  d   \        R4      hK'  V	R8w  g   K0  \        R4      h	  VP                  R8w  d   \        R4      h\        Wg4      pVP                  4       '       g   \        RV R24      h\         P                  \        V4      V4      p
W
n        RV
n        V
# \        P
                  P#                  V 4      RR! p\         P%                  WW44      p
W
n        V
P'                  V4       VP)                  R4      pV'       dn   VP+                  R4      '       dW   VR8X  d   \,        P.                  ! R4       M8VR8X  d   \,        P.                  ! R4       M\,        P.                  ! RV R24       \1        V RRR7      ;_uu_ 4       p\2        P4                  ! VP7                  4       P9                  R4      4      P;                  4       V
n        RRR4       V
#   + '       g   i     T
# ; i)"r   zWrap files with diff_filesz0.63.0patch_directoryzWrap files with patch_directoryz0.55.0	_filename_urlzLocal wrap patch files without redirectr   r   z*wrap-redirect filename cannot contain ".."subprojectszCwrap-redirect filename must be in the form foo/subprojects/bar.wrapr   z+wrap-redirect filename must be a .wrap filezwrap-redirect z filename does not existTNr   z https://wrapdb.mesonbuild.com/v1sqlitezRsqlite wrap has been renamed to sqlite3, update using `meson wrap install sqlite3`libjpegz_libjpeg wrap has been renamed to libjpeg-turbo, update using `meson wrap install libjpeg-turbo`z:WrapDB v1 is deprecated, updated using `meson wrap update `rutf-8ry   )r   source)r   _parse_wrapr   user   r   r   r   	enumerater   r;   suffixis_filefrom_wrap_filer3   r   r   r   r   parse_provide_sectionr   
startswithr   deprecationr   hashlibsha256rv   encode	hexdigestr   )r   r   configr   r   whatr   fnameipwrapr   r   files   &&            r'   r    PackageDefinition.from_wrap_file   s    1 = =h Gv6!3X>BB:N&8(CGG
S'Dy!V+4&V0K<TF$GRVVWab ( ''//(3J 
+,E!%++.q5A:Dy+,XYY ! M)+,qrr / ||w&#$QRR0E==??#nUG;S$TUU$33CJ
KD%-""DOKww)#2. ,,TER!)""6*JJ{+	--.PQQx  !uv"    "C  D  #]^b]ccd!ef(C'22d!(		0B0B70K!L!V!V!XD 3  32 s   AKK.	c                    V ^8  d   QhRRRR/# )r#   r   r3   r$   z9T.Tuple[configparser.ConfigParser, str, T.Dict[str, str]]r%   )r&   s   "r'   r(   r   !  s     % %c %&_ %r)   c                	    \         P                  ! R R7      pVP                  V RR7       \        TP                  4       4      ^8  d   \	        RT  24      hTP                  4       ^ ,          pTP                  R4      '       g   \	        T: RT  24      hTR	,          pT\        9  d   \	        R
T: 24      h\        Y,          4      pYT3#   \         P                   d   p\	        RT  RT: 24      hR p?ii ; i)N)interpolationr   r   zFailed to parse ru   zMissing sections in zwrap-z! is not a valid first section in :   NNUnknown wrap type )
configparserConfigParserrv   Errorr;   lensectionsr   	ALL_TYPESdict)r   r   ewrap_sectionr   r   s   &     r'   r   PackageDefinition._parse_wrap   s    	F!..TBFKK7K3 v !A%"6xj ABB(+&&w//<"22ST\S] ^__R 	!"4UI >??f*+f$$ !! 	F"28*Bqe DEE	Fs   *C C;$C66C;c                    V ^8  d   QhRRRR/# )r#   r   zconfigparser.ConfigParserr$   r   r%   )r&   s   "r'   r(   r   2  s     * *,E *$ *r)   c                	   VP                  R 4      '       d   \        R4      hVP                  R4      '       Ed   VR,          P                  4        F  w  r#VR8X  dZ   VP                  R4       Uu/ uF!  qDP	                  4       P                  4       RbK#  	  ppV P                  P                  V4       Ke  VR8X  dI   VP                  R4       Uu. uF  qDP	                  4       NK  	  ppV ;P                  V,          un        K  V'       g    RV: RV P                   R	2p\        V4      hW0P                  V&   K  	  R# R# u upi u upi )
providesz:Unexpected "[provides]" section, did you mean "[provide]"?providedependency_namesr   Nprogram_namesz#Empty dependency variable name for  in zp.wrap. If the subproject uses meson.override_dependency() it can be added in the "dependency_names" special key.)
has_sectionr;   itemsr   r   r   r   updater   r   )r   r   kvn
names_dict
names_listms   &&      r'   r   'PackageDefinition.parse_provide_section2  s%   j)) \]]i((y)//1** DE773<!P<a'')//"3T"9<J!P&&--j9'56WWS\!B\'')\J!B**j8*>qe4		{ SR RA (**()""1%% 2 ) "Q
 "Cs   1'EEc                    V ^8  d   QhRRRR/# )r#   keyr3   r$   r%   )r&   s   "r'   r(   r   J  s     L Ls Ls Lr)   c                	     V P                   V,          #   \         d    \        R T: RT P                   R24      hi ; i)zMissing key r  r   )r   KeyErrorr;   r   )r   r%  s   &&r'   r   PackageDefinition.getJ  sF    	L;;s## 	L,sgT$))E JKK	Ls    )>c                    V ^8  d   QhRRRR/# )r#   subproject_directoryr3   r$   r%   )r&   s   "r'   r(   r   Q  s     U U3 U3 Ur)   c                	B    \         P                  P                  V R 4      # )z.meson-subproject-wrap-hash.txt)r   r   r   )r*  s   &r'   get_hashfilePackageDefinition.get_hashfileP  s    ww||02STTr)   c                    V ^8  d   QhRRRR/# )r#   r*  r3   r$   r   r%   )r&   s   "r'   r(   r   T  s     6 6c 6d 6r)   c                	    V P                   '       dS   \        V P                  V4      R RR7      ;_uu_ 4       pVP                  V P                   R,           4       RRR4       R# R#   + '       g   i     R# ; i)wr   r   
N)r   r   r,  r   )r   r*  r  s   && r'   update_hash_cache#PackageDefinition.update_hash_cacheT  s[    d''(<=sWUUY]

4--45 VU UUUs   #A''A8	c                    V ^8  d   QhRRRR/# )r#   r   r3   r$   r   r%   )r&   s   "r'   r(   r   Y  s     ( (S (T (r)   c                	$    R V P                   V&   R # r   )r   )r   r   s   &&r'   add_provided_dep"PackageDefinition.add_provided_depY  s    #'4 r)   )r   r   r   r   r   r   r   r   r   r   r   r   )NN)r   r   r   r   r   staticmethodr   r   r   r   r   r   r   r,  r2  r6  r   r%   r)   r'   r   r      s    54 G G 8 8
 ?I"~ 3 3j % %"*0L U U6
( (r)   r   c               $    V ^8  d   QhRRRRRR/# )r#   subdir_rootr3   packagenamer$   r%   )r&   s   "r'   r(   r(   \  s!      s   r)   c                    \         P                  P                  WR ,           4      p\         P                  P                  V4      '       d"   \        P                  V4      pVP                  # V# )r   )r   r   r   isfiler   r   r   )r:  r;  r   r  s   &&  r'   get_directoryr>  \  sL    GGLLG&;<E	ww~~e //6~~r)   c               (    V ^8  d   QhRRRRRRRR/# )r#   cmdr   
workingdirr3   checkrE   r$   r%   )r&   s   "r'   r(   r(   c  s(     $ $[ $c $$ $4 $r)   c                     \         P                  ! WVR7      #   \         P                   d   p\        \	        T4      4      hRp?ii ; i)zI
Wrapper to convert GitException to WrapException caught in interpreter.
rB  N)r   verbose_gitGitExceptionr;   r3   )r@  rA  rB  r  s   &&& r'   rE  rE  c  s?    $##C5AA   $CF##$s    AAA)eqc                     ] tR tRt$ R]R&   R]R&   ]! R4      tR]R&   ]P                  t	R]R	&   R
t
R]R&   R
tR]R&   R
tR]R&   R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R  ltR! R" ltR# R$ ltROR& R' lltROR( R) lltR* R+ ltR, R- ltR. R/ ltR0 R1 ltR2 R3 ltR4 R5 ltR6 R7 lt R8 R9 lt!R: R; lt"R< R= lt#R> R? lt$RPR@ RA llt%RB RC lt&RQRD RE llt'RF RG lt(RH RI lt)RJ RK lt*RL RM lt+RNt,R%# )RResolveril  r3   
source_dirsubdirrJ   r   r   r   	wrap_modeFrE   wrap_frontendrD   r   c                   V ^8  d   QhRR/# r#   r$   r   r%   )r&   s   "r'   r(   Resolver.__annotate__v  s      t r)   c                	   \         P                  P                  V P                  V P                  4      V n        \         P                  P                  R 4      ;'       g+    \         P                  P                  V P
                  R4      V n        / V n	        RV n
        / V n        / V n        / V n        / V n        / V n        \!        4       V n        V P%                  4        V P'                  4        V P)                  4        R# )MESON_PACKAGE_CACHE_DIRpackagecacheN)r   r   r   rJ  rK  r:  environr   cachedirwrapsr   r   r   wrapdbwrapdb_provided_depswrapdb_provided_programssetloaded_dirs
load_wraps
load_netrcload_wrapdb)r   s   &r'   __post_init__Resolver.__post_init__v  s    77<<E

'@AssRWW\\RVRbRbdrEs57
(,
=?AC*,68!:<%'*ur)   c                   V ^8  d   QhRR/# rO  r%   )r&   s   "r'   r(   rP    s     M MD Mr)   c                	     \        4       V n         R #   \         d     R # \         d(   p\        P                  ! RT R2RR7        R p?R # R p?ii ; i)Nzfailed to process netrc file: r_   Ffatal)r   FileNotFoundError	Exceptionr   rh   )r   r  s   & r'   r]  Resolver.load_netrc  sI    	MDJ  	 	MLL9!A>eLL	Ms    AAAAAc                   V ^8  d   QhRR/# rO  r%   )r&   s   "r'   r(   rP    s     * *D *r)   c                	   \         P                  P                  V P                  4      '       Ed[   \	        \         P
                  ! V P                  4      4      w  rpV F}  pVP                  R 4      '       g   K  \         P                  P                  V P                  V4      p\        P                  WPP                  4      pW`P                  VP                  &   K  	  RR0pV P                  P                  4        F!  pWvP                  VP                  0,          pK#  	  V Fb  pWG9   d   K  \         P                  P                  V P                  V4      p\        P                  V4      pW`P                  VP                  &   Kd  	  V P                  P                  4        F  pV P!                  V4       K  	  V P"                  P%                  V P&                  4       R# )r   rS  r   N)r   r   isdirr:  nextwalkr<   r   r   r   r   rV  r   r   r   r   add_wrapr[  addrK  )r   rootdirsfilesr   r   r  ignore_dirss   &       r'   r\  Resolver.load_wraps  sU   77==))** $RWWT-=-=%> ?Dzz'**T%5%5q9(77O(,

499%  *>:K

))+		:: ,#T%5%5q9(77>(,

499%  JJ%%'DMM$ (T[[)r)   c                    V ^8  d   QhRRRR/# )r#   r  r   r$   r   r%   )r&   s   "r'   r(   rP    s     - -. -4 -r)   c                	   VP                   P                  4        F_  pW P                   9   d?   V P                   V,          pR V: RVP                   RVP                   2p\        V4      hWP                   V&   Ka  	  VP                   F_  pW P                  9   d?   V P                  V,          pR V: RVP                   RVP                   2p\        V4      hWP                  V&   Ka  	  R# )zMultiple wrap files provide z dependency: z and z
 program: N)r   keysr   r;   r   )r   r  r  	prev_wrapr"  s   &&   r'   rm  Resolver.add_wrap  s    ##((*A&&& ..q1	21%}TYYKuU^UcUcTde#A&&$(q! + ''A*** 2215	21%z$))ER[R`R`Qab#A&&(,""1% (r)   c                   V ^8  d   QhRR/# rO  r%   )r&   s   "r'   r(   rP    s     c cT cr)   c                	>    \        V P                  R 4      P                  RRR7      ;_uu_ 4       p\        P                  ! V4      V n        RRR4       T P
                  P                  4        F{  w  r#T P                  P                  TP                  R. 4       Uu/ uF  qDTbK  	  up4       T P                  P                  TP                  R. 4       Uu/ uF  qDTbK  	  up4       K}  	  R#   + '       g   i     L; i  \         d     R# i ; iu upi u upi )zwrapdb.jsonr   r   r   Nr  r  )r   r:  r   r   loadrW  re  r  rX  r  r   rY  )r   r   r   infor   s   &    r'   r^  Resolver.load_wrapdb  s    	d&&6;;C';RRVW"iil S ++++-JD%%,,txxHZ\^?_-`?_!g?_-`a))00488O]_C`1aC`aT'C`1ab .	 SR  		 .a1as:   /D C0D D
D
0D 	;D  D DDc                    V ^8  d   QhRRRR/# )r#   	subp_namer3   r$   zT.Optional[PackageDefinition]r%   )r&   s   "r'   r(   rP    s       1N r)   c                	   V P                   P                  V4      pV'       g   R # V P                  4        VR,          ^ ,          pVP                  R^4      w  rE\	        RV RV RV RV R2	RR7      p\        V P                  V R24      pVP                  R	4      ;_uu_ 4       pVP                  \        V4      4       R R R 4       \        P                  ! R
V RV RV 24       \        P                  \        V4      4      p	WP                  V	P                   &   V P#                  V	4       V	#   + '       g   i     Lx; i)Nversionsr   r   r   r   r   T)rG   r   z
Installed z	 version z
 revision )rW  r   check_can_downloadr   rp   r   r:  r   r   rz   r   logr   r   r3   rV  r   rm  )
r   r  r|  latest_versionr   r   r@   r   r   r  s
   &&        r'   get_from_wrapdbResolver.get_from_wrapdb  s   {{y)!j)!,*11#q9@1WIUVW_V``abkallqr  GK  LT%%)E':;ZZGG',- :i[	'*XJOP //E
; $

499d s   &D11E	c                    V ^8  d   QhRRRR/# )r#   rV  zT.Dict[str, PackageDefinition]r$   r   r%   )r&   s   "r'   r(   rP    s     ! !!? !D !r)   c                	   VP                  4        F  w  r#V P                  P                  VP                  4      pV'       dY   VP                  fK   VP                  e=   V P                  VP                   V P
                  VP                  P                  4        W P                  9  g   K  W0P                  V&   V P                  V4       K  	  R # r   )r  rV  r   r   r   r   r   rm  )r   rV  r  r  rw  s   &&   r'   merge_wrapsResolver.merge_wraps  s    KKMDA

q{{3IY^^38J JJq{{+&&q{{'8'8':;

" !

1a  "r)   c               $    V ^8  d   QhRRRRRR/# )r#   rK  r3   r   r   r$   r   r%   )r&   s   "r'   r(   rP    s!     ) )S )j )T )r)   c           	     	\   V P                   \        P                  8w  d   WP                  9  d{   \	        V P
                  WV P                   V P                  V P                  V P                  4      pV P                  VP                  4       V P                  P                  V4       R # R # R # r   )rL  r   	nopromoter[  rI  rJ  rM  rD   r   r  rV  rn  )r   rK  r   other_resolvers   &&& r'   load_and_mergeResolver.load_and_merge  s    >>X///FBRBR4R%doov4>>[_[m[mos  pC  pC  EI  EP  EP  QN^112  ( 5S/r)   c                    V ^8  d   QhRRRR/# )r#   r;  r3   r$   z)T.Tuple[T.Optional[str], T.Optional[str]]r%   )r&   s   "r'   r(   rP    s     	 	S 	5^ 	r)   c                	    VP                  4       pV P                  P                  V4      pV'       d*   VP                  P                  V4      pVP                  V3# V P                  P                  V4      pVR 3# r   )r   r   r   r   rX  )r   r;  r  dep_var	wrap_names   &&   r'   find_dep_providerResolver.find_dep_provider  sp     "'')!!%%k2((,,[9G99g%%--11+>	$r)   c               $    V ^8  d   QhRRRRRR/# )r#   r  r3   depnamer$   r   r%   )r&   s   "r'   r(   rP    s&     A AS A3 A? Ar)   c                	    V P                   P                  V4      pV'       d   VP                  P                  V4      # R # r   )rV  r   r   )r   r  r  r  s   &&& r'   get_varnameResolver.get_varname  s2    zz~~i(26t!!%%g.@D@r)   c                    V ^8  d   QhRRRR/# )r#   namesr   r$   r   r%   )r&   s   "r'   r(   rP    s      ; ? r)   c                	    V F[  pV P                   P                  V4      pV'       d   VP                  u # V P                  P                  V4      pV'       g   KY  Vu # 	  R # r   )r   r   r   rY  )r   r  r   r  r  s   &&   r'   find_program_providerResolver.find_program_provider  sU    D))--d3Dyy 5599$?Iy    r)   Nc               $    V ^8  d   QhRRRRRR/# r#   r;  r3   force_methodT.Optional[Method]r$   zT.Tuple[str, Method]r%   )r&   s   "r'   r(   rP    s(     `  ` C ` 7I ` Ui ` r)   c                	  a aa S P                   P                  V4      pVf%   S P                  V4      pVf   \        RV R24      hVS n        S P                  P
                  S n        \        P                  P                  S P                  P                  S P                  P
                  4      S n
        \        P                  P                  S P                  4      '       g:   \        P                  P                  S P                  S P
                  4      S n
        \        P                  P                  S P                  S P                  4      pS P                  P                  '       Ed~   \        P                  P!                  S P                  P                  4      p\        P                  P                  S P                  V4      pS P                  P                  V8w  Ed   \        P                  P                  S P                  P                  S P                  4      p\"        P$                  ! R\"        P&                  ! V4      4       \)        VRRR7      ;_uu_ 4       pVP+                  \,        P.                  ! R\1        \        P                  P                  S P                  P                  S P                  4      4      P3                  4        R24      4       R R R 4       R	R
RRRR/o\4        P6                  ! RS P                  P8                  P                  RV4      4      oS'       d9   SS9  d2   RP                  SP;                  4       4      p	\=        RS: RV	 24      hV'       d   SV8w  d   \=        RS: RV 24      hS;'       g    R	oR VVV 3R llp
V
! 4       '       d   S P?                  4        VS3# S PA                  4        \        P                  P                  S P                  4      '       d=   \        P                  PC                  S P                  4      '       g   \=        R4      hEM}\        P                  P                  S PD                  S P
                  4      p\        P                  PC                  V4      '       d   S PG                  VS P                  4       MS P                  PH                  R8X  d   S PK                  V4       MS PM                  4        S P                  PH                  R8X  d   S PO                  V4       M{S P                  PH                  R8X  d   S PQ                  4        MOS P                  PH                  R8X  d   S PS                  4        M#\=        RS P                  PH                  : 24      h S PU                  V4       S PW                  4        V
! 4       '       g   \=        RSS,           R24      hS P                  P]                  S P                  4       VS3#   + '       g   i     EL1; i  \X         d    \[        S P                  4       h i ; i) Nz%Neither a subproject directory nor a z.wrap file was found.Usingr0  r   r   zK                        [wrap-redirect]
                        filename = z
                        mesonzmeson.buildcmakezCMakeLists.txtcargoz
Cargo.tomlr  methodz, zWrap method z# is not supported, must be one of: zWrap method is z( but we are trying to configure it with c                   V ^8  d   QhRR/# r#   r$   rE   r%   )r&   s   "r'   r(   'Resolver._resolve.<locals>.__annotate__+  s     	S 	St 	Sr)   c                    < \         P                  P                  \         P                  P                  SP                  SS ,          4      4      # r   )r   r   existsr   r   )r  methods_mapr   s   r'   has_buildfile(Resolver._resolve.<locals>.has_buildfile+  s.    77>>"'',,t||[=P"QRRr)   z*Path already exists but is not a directoryr  githgsvnr  zSubproject exists but has no z file.)/rV  r   r  r   r  r   r   r   r   r   r   r  r:  relpathrJ  r   r   r   r  boldr   r   textwrapdedentr	   as_posixrX   rY   r   rv  r;   validateresolve_git_submodulerj  rU  	copy_treer   	_get_filer  _get_git_get_hg_get_svnapply_patchapply_diff_filesrf  r   r2  )r   r;  r  r  rel_pathr   
main_fnamerelr   allowed_methodsr  cached_directoryr  r  s   f&&         @@r'   _resolveResolver._resolve  sv   zz~~k*<''4D|+.ST_S``u,vww	,,ww||DII$=$=tyy?R?RSww~~dll++77<<(8(8$..IDL77??4<<A99&&& ww''		(C(CDHd&6&6AJyy**j8ggoodii&A&A4??S$))C.1 *cG<<GGHOO 1$$,RWW__TYY=X=XZ^ZjZj-k$l$u$u$w#x y-   = ]%\,
 ,dii.>.>.B.B8\.Z[fK/"ii(8(8(:;O,vj8[\k[l mnnFl2/&;cdpcq rss""7	S 	S ??MMOV## 	""$77>>$,,''77==..#$PQQ /  "ww||DMM4>>Jww}}-../>6){+'')99>>U*MM+.YY^^t+LLNYY^^u,MMO'*<TYY^^<N(OPP  -%%'
 "?F@S?TTZ [\\
 			##DLL1S =<<|  $T\\2s   'A=X!X  X	 "Yc               $    V ^8  d   QhRRRRRR/# r  r%   )r&   s   "r'   r(   rP  `  s(     r r3 r6H rTh rr)   c                	     \        V P                  R \        P                  RRR7      ;_uu_ 4        V P	                  W4      uuRRR4       #   + '       g   i     R# ; i  \
         d    \        R4      hi ; i)z	.wraplockz$Failed to lock subprojects directoryT)optionalNzFAttempted to resolve subproject without subprojects directory present.)r   r:  r   WAITr  re  r   )r   r;  r  s   &&&r'   resolveResolver.resolve`  su    	rt//277EPTV V }}[?V V V V ! 	r'(pqq	rs(   0A" A
A" A	A" A" "A9c                   V ^8  d   QhRR/# rO  r%   )r&   s   "r'   r(   rP  i  s     # #D #r)   c                	\    V P                   \        P                  J d   R p\        V4      hR# )z7Automatic wrap-based subproject downloading is disabledN)rL  r   
nodownloadr;   )r   r"  s   & r'   r  Resolver.check_can_downloadi  s+     >>X000IA"" 1r)   c                   V ^8  d   QhRR/# r  r%   )r&   s   "r'   r(   rP  p  s     &F &Ft &Fr)   c                	   \         '       g   R # \        P                  P                  V P                  4      '       g   R # \        R.\        V P                  4      P                  4      w  rV'       g   R # \        . ROV P                  4      w  rV'       g   R # VP                  R4      '       d   \        P                  ! R4       R# VP                  R4      '       d   \        R4      hVP                  R4      '       d,   \        . ROV P                  4      '       d   R# \        R	4      hVP                  R
4      '       d3   \        . ROV P                  4       \        RR.V P                  4       R# VR8X  d   R # \        RV: 24      h)Fz	rev-parser_   +z"git submodule might be out of dateTUz!git submodule has merge conflictsr   zgit submodule failed to init checkoutrJ   zUnknown git submodule output: )	submodulestatusr_   )r  r  --initr_   )r  r  r_   )r   r   r   rj  r   r   r   parentr   r   rh   r;   rE  )r   retouts   &  r'   r  Resolver.resolve_git_submodulep  s#    s ww}}T\\**k]D,>,E,EF94<<H>>#LL=>^^C   CDD^^C  A4<<PP >??^^C  4dllCS)4<<8 BY<SGDEEr)   c                    V ^8  d   QhRRRR/# r#   r;  r3   r$   r   r%   )r&   s   "r'   r(   rP    s     Y YS YT Yr)   c                	T   V P                  R V4      pV P                  pRV P                  P                  9   d-   \        P
                  ! V P                  4       V P                  p \        P                  ! W#4       R#   \         d   p\        R\        T4       24      ThRp?ii ; i)r   lead_directory_missingz%failed to unpack archive with error: N)_get_file_internalr:  r  r   r   mkdirr   shutilunpack_archiverb   r;   r3   )r   r;  r   extract_dirr  s   &&   r'   r  Resolver._get_file  s    &&x=&& $tyy'7'77HHT\\",,K	Y!!$4 	Y"GAx PQWXX	Ys   'A? ?B'
B""B'c                    V ^8  d   QhRRRR/# r  r%   )r&   s   "r'   r(   rP    s     %g %gC %gD %gr)   c                	d   \         '       g   \        R V R24      hV P                  P                  R4      pRRRVR.pRp. pV P                  P                  P                  RR	4      R	8w  d*   R
pRV P                  P                  P                  R4      .pV'       d   V P                  V4      '       d   \        RRRV P                  .V P                  R
R7       \        RRRV P                  P                  R4      .V P                  R
R7       V P                  P                  R4      p\        R.VORNVNV P                  R
R7       \        W0P                  R
R7       EM,V'       g   \        RV P                  P                  R4      V P                  .V P                  R
R7       VP                  4       R8w  dg   \        W0P                  4      '       gL   \        RV P                  P                  R4      V.V P                  R
R7       \        W0P                  R
R7       Mj. ROVOpVP                  4       R8w  d   VRV.,          pW`P                  P                  R4      V P                  .,          p\        W`P                  R
R7       V P                  P                  P                  RR	4      P                  4       R8X  d   \        . ROVOV P                  R
R7       V P                  P                  P                  R4      pV'       d    \        RRRRV.V P                  R
R7       R# R# )z'Git program not found, cannot download z.wrap via git.r   -cadvice.detachedHead=falser  z--FdepthrJ   Tz--depthz%init.defaultBranch=meson-dummy-branchinitrD  remotern  originr@   fetchcloneheadz--branchzclone-recursivetruezpush-urlzset-urlz--pushN)r  r  r  )r  r  r  z
--checkoutz--recursive)r   r;   r  r   r   is_git_full_commit_idrE  r   r:  r   r   )r   r;  revnocheckout_cmd
is_shallowdepth_optionargspush_urls   &&      r'   r  Resolver._get_git  s   s"I+Vd eff		j)9:udS
$&99,2J%tyy'7'7';';G'DEL$44U;; FPTP^P^_aeaqaqy}~5(DIIMM%4HI4<<_cdIIMM*-EA<AA5A4<<W[\ll$?WdiimmE&:DNNKTM]M]eij;;=F*&|\\BB#WdiimmE.BE$JDLL`de#L,,dKR\R;;=F*Z//Du-t~~>>D"2"2$?99 126<<>&HeXdeD299##''
39h(KT\\aef r)   c                   V ^8  d   QhRR/# rO  r%   )r&   s   "r'   r(   rP    s     Q Q$ Qr)   c                	   V P                   P                  '       g   R # V P                   P                  V P                  4      p\        P
                  P                  V4      '       d?   \        VRRR7      ;_uu_ 4       pVP                  4       P                  4       pR R R 4       MR # XV P                   P                  8w  d1   \        P                  ! RV P                   P                   R24       R # R #   + '       g   i     L]; i)Nr   r   r   zSubproject zW's revision may be out of date; its wrap file has changed since it was first configured)r  r   r,  r   r   r   r=  r   rv   r   r   rh   r   )r   hashfiler  expected_hashs   &   r'   r  Resolver.validate  s    yy&&& 99))$,,777>>(##hg66$ $		 1 1 3 76  DII333LL;tyy~~&6  7O  P  Q 4 76s   ?C66D	c                    V ^8  d   QhRRRR/# )r#   r  r3   r$   rE   r%   )r&   s   "r'   r(   rP    s      3 4 r)   c                	    R p\        V4      R9   d5   \        ;QJ d    R V 4       F  '       d   K   R M	  RM! R V 4       4      pV# )Fc              3  *   "   T F	  qR 9   x  K  	  R# 5i)0123456789AaBbCcDdEeFfNr%   ).0chs   & r'   	<genexpr>1Resolver.is_git_full_commit_id.<locals>.<genexpr>  s     H%B77%s   T>   (   @   )r  all)r   r  results   && r'   r  Resolver.is_git_full_commit_id  s8    u:!SH%HSSSH%HHFr)   c                   V ^8  d   QhRR/# rO  r%   )r&   s   "r'   r(   rP    s     	4 	4 	4r)   c                	   V P                   P                  R 4      p\        P                  ! R4      pV'       g   \	        R4      h\
        P                  ! VRV P                   P                  R4      V P                  .V P                  R7       VP                  4       R8w  d(   \
        P                  ! VRV.V P                  R7       R# R# )	r   r  zMercurial program not found.r  r@   cwdtipr  N)r  r   r  whichr;   
subprocess
check_callr   r:  r   r   )r   r  r  s   &  r'   r  Resolver._get_hg  s    		j)\\$ >??r7DIIMM%,@#~~/484D4D	F;;=E!!!2z5"9&*ll4 "r)   c                   V ^8  d   QhRR/# rO  r%   )r&   s   "r'   r(   rP    s     F F$ Fr)   c           	     	"   V P                   P                  R 4      p\        P                  ! R4      pV'       g   \	        R4      h\
        P                  ! VRRWP                   P                  R4      V P                  .V P                  R7       R# )r   r  zSVN program not found.r  z-rr@   r  N)	r  r   r  r  r;   r  r  r   r:  )r   r  r  s   &  r'   r  Resolver._get_svn  sj    		j)ll5! 899sJeYY]]5=Q#~~/484D4D	Fr)   c                    V ^8  d   QhRRRR/# )r#   r   r3   r$   zT.Optional[T.Tuple[str, str]]r%   )r&   s   "r'   r(   rP    s      C 4Q r)   c                	    V P                   e   WP                   P                  9  d   R # V P                   P                  V4      w  r#pV'       d   TpW$3# r   )r   hostsauthenticators)r   r   loginaccountpasswords   &&   r'   get_netrc_credentialsResolver.get_netrc_credentials  sG    ::zz/?/?!?#'::#<#<V#D Er)   c                    V ^8  d   QhRRRR/# r#   rC   r3   r$   r   r%   )r&   s   "r'   r(   rP    s     R' R'# R'*; R'r)   c                	b   R(p\         P                  ! 4       p\        P                  ! RV P                  RR7      p\
        P                  P                  V4      pVP                  '       dI   VP                  P                  \        4      '       d$   \        WP                  V P                  R7      pEM8\        V9   d   \        V R24      hVP                  R8X  Ed   \         P"                  ! R4      pVf   \        R4      h\        P$                  ! 4       ;_uu_ 4       p\        P                  ! RV P                  RR7      ;_uu_ 4       p. p	VP&                  '       d   V	R	VP&                   .,          p	VP(                  '       d   VP(                   R
2MRp
VRR.V	OV
 VP                   RVP*                  R,           2Np\,        P.                  ! WRR7       \0        P*                  P3                  V\0        P*                  P5                  VP*                  4      4      pVP7                  4        \         P8                  ! WP:                  4       V P=                  VP:                  4      VP:                  3uuRRR4       uuRRR4       # RR\>        P@                   2RRRR/pV PC                  VPD                  4      pVe   R
VPD                  9  d   Vw  ppVP                  R8X  dD   \G        V RV 2PI                  4       4      PK                  4       pVPM                  RRV 2/4       MkVP                  R8X  dC   \
        P                  PO                  VPQ                  V RV R
VPD                   2R7      4      pM\R        PT                  ! RRR7        \
        PV                  PY                  WR7      p\
        PV                  P[                  V\\        \_        4       R7      p\t        Pv                  ! X4      ;_uu_ 4       qd;_uu_ 4       p \y        VP{                  4       R",          4      pVf|   \        R#4        VP                  V4      pVR$8X  d   M$VPM                  V4       VP                  V4       K>  VP                  4       pVVP:                  3uuRRR4       uuRRR4       # \        P                  P                  4        \        R%TR&V P                  ;'       g    RR'7      p VP                  V4      pVR$8X  d   M>VPM                  V4       VP                  V4       VPM                  \        V4      4       KX  VP7                  4        VP                  4       pRRR4       RRR4       XVP:                  3#   + '       g   i     M; i RRR4       EK    + '       g   i     EL; i  \`         d   p\R        Pb                  ! \e        T4      4       \g        T\
        Ph                  Pj                  4      '       dL   \g        TPl                  \n        Pp                  4      '       d"   \_        4       f   \        R T R!\r         24      h\        R T R!24      hRp?ii ; i  \|         d    Rp ELOi ; i  + '       g   i     EL$; i  + '       g   i     EL0; i))
   r   F)modedirdelete)rD   rF   z" may be a WrapDB-impersonating URLsftpNz8Scheme sftp is not available. Install sftp to enable it.z-P@rJ   z-ozKbdInteractiveAuthentication=no::   NNT)r  rB  z
User-Agentzmesonbuild/zAccept-Language*rO   r6   AuthorizationzBasic ftp)r   zNMeson is not going to use netrc credentials for protocols other than https/ftprc  rP   rR   zcould not get z; is the internet available?zContent-Lengthz!Downloading file of unknown size.r)   downloadDownloading)bar_typetotaldescdisablei (  )Ir   r   tempfileNamedTemporaryFilerU  r7   r8   r9   r:   r<   r=   rp   rD   rM  r;   r?   r  r  TemporaryDirectoryportusernamer   r  runr   r   r   closemover   	hash_filer   r   r%  r   r   r   r   r  rW   rl   r   rh   rU   rV   rZ   r[   r0   rb   r  r3   rc   rd   re   rf   r-   rg   ri   
contextlibclosingintr|  	TypeErrorprintrv   r   r   rj   stdoutflushr   r   r  )r   rC   	blocksizehtmpfiler@   rr   r.  workdirr  usercommand
downloadedrQ   credsr"  r$  	enc_credsr\   r  dlsizeblock	hashvalueprogress_bars   &&                      r'   get_dataResolver.get_data  s8   	NN--4T]]SXYll##I.<<<CLL112EFF!)<O<OZ^ZlZlmD I-9+-O PQQZZ6!<<'D|#$^__,,..'//Tt}}UZ[[_f888TchhZ11D-0\\\#,,q)r'Hx4xTXSYZ]ZfZfYgghiliqiqrtiuhvQwxw4@WW\\'2773C3CCHH3MN
J5~~gll3W\\A \[ /. H,<,<+=>!3!3G
 ..szz:E S

%:"'x::( )UG1XJ*?*F*F*H I P P RINNOvi[5I#JKZZ5( & 7 7ugUVW_V``abeblblamLn8o pILL!q',.bnn,,Y,H~~--c;P^P`-a %%ww'TYY[)9:; ~9: IIi0E|HHUOMM%(KKM	 ',,. 07w%% JJ&
&,9040C0CtFL 		),C<e$##CJ/ I7 07%8 ',,&&I \[[ /...F  bQ a!6!677JqxxQTQmQm<n<n  tB  tD  tL'.C_`r_s(tuu'.C_(`aab   07ww%%%s   !,V+<V	
C1V	;
V+AV? 

ZZ		 Y56A*Z		 
Z58Z		.B Z		.ZVV++V<	?Y2
B#Y--Y25ZZ		ZZ			Z	ZZ.	c                    V ^8  d   QhRRRR/# )r#   r   r3   r$   r%   )r&   s   "r'   r(   rP  U  s      c c r)   c                	   \         P                  ! 4       p\        VR 4      ;_uu_ 4       pVP                  VP	                  4       4       RRR4       VP                  4       #   + '       g   i     TP                  4       # ; i)rbN)r   r   r   r  rv   r   )r   r   rL  r   s   &&  r'   rC  Resolver.hash_fileU  sU    NN$HHQVVX {{} {{}s    A""B	c               (    V ^8  d   QhRRRRRRRR/# )r#   r   r3   r   hash_requiredrE   r$   r   r%   )r&   s   "r'   r(   rP  [  s.     g gs g# gd gd gr)   c           	     	   VR ,           V P                   P                  9  d   V'       g   R# V P                   P                  VR ,           4      P                  4       pV P	                  V4      pWT8w  d   \        RV RV RV R24      hR# )_hashNIncorrect hash for :
  expected
  actual.)r  r   r   r   rC  r;   )r   r   r   r_  expecteddhashs   &&&&  r'   
check_hashResolver.check_hash[  sy    '>!1!11-99==0668t$"5dV4zV[U\\d eff r)   c                    V ^8  d   QhRRRR/# r(  r%   )r&   s   "r'   r(   rP  c  s     ( (s (7H (r)   c                	    . ROpV F  p V P                  V4      u # 	  V P                  V4      #   \         d>   p\        P                  ! RT R2RR7       \        P
                  ! T4        Rp?Km  Rp?ii ; i)r1  zfailed to download with error: z. Trying after a delay...Frc  N)r1  r#            )rX  rf  r   rh   timesleep)r   rC   delaysdr  s   &&   r'   get_data_with_backoffResolver.get_data_with_backoffc  so    !A}}Y//  }}Y''  >qcAZ[chi

1s   1A92A44A9c          
     ,    V ^8  d   QhRRRRRRRRRR/# )	r#   r   r3   ofnamer;  fallbackrE   r$   r   r%   )r&   s   "r'   r(   rP  m  s0     # #c #3 #S #D #]a #r)   c           	     	   V P                  4        V P                  P                  Y'       d   R MR,           4      p\        P                  ! R\        P
                  ! V4      VR\        P
                  ! V4      4        V P                  V4      w  rgV P                  P                  VR,           4      P                  4       pWh8w  d,   \        P                  ! V4       \        RV RV RV R24      h \        P                  ! Yr4       R#   \         dv    T'       gl   TR ,           T P                  P                  9   d   T P                  YTR	R
7      u # \        P                  ! R\        P
                  ! TR ,           4      R4       h i ; i)_fallback_urlr   r6  fromra  rb  rc  rd  re  T)rw  z'A fallback URL could be specified usingzkey in the wrap fileN)r  r  r   r   r  r  rs  r   r   remover;   r   	_downloadrename)	r   r   rv  r;  rw  srcurlrg  rM  rf  s	   &&&&&    r'   r|  Resolver._downloadm  s6   !t(OP		+ 6fdiiPVFWX	!77?NEyy}}TG^4::<H 		'"#&9$tH:\Z_Y``h$ijj ! 			'"  	/)TYY-=-==>>$d>SSB4/#9:<RT	s   ?A4D F6F5Fc               $    V ^8  d   QhRRRRRR/# )r#   r   r3   r;  r$   r%   )r&   s   "r'   r(   rP    s!     # #s # # #r)   c                	   V P                   P                  VR ,           4      pVR,           V P                   P                  9   d   \        P                  P                  V P                  V4      p\        P                  P                  V4      '       dA   V P                  W4       \        P                  ! R\        P                  ! V4      VR4       V# \        P                  ! V P                  RR7       V P                  WV4       V# \        V P                   P                  4      V,          pVP                  4       '       g   \!        RV R24      hV P                  WP#                  4       RR	7       VP#                  4       # )
r   r   r  zfrom cache.T)exist_okzFile "" does not existF)r_  )r  r   r   r   r   r   rU  r  rh  r   r  r  makedirsr|  r   r   r;   r  )r   r   r;  r   
cache_pathr   s   &&&   r'   r  Resolver._get_file_internal  s   99==!34&=DII,,,dmmX>Jww~~j))1$))K"8$N!!KK5NN4[9		**+h6D;;==#fTF2B$CDDOOD--/OG==?"r)   c                    V ^8  d   QhRRRR/# r  r%   )r&   s   "r'   r(   rP    s     2 2s 2t 2r)   c                	   R V P                   P                  9   dB   RV P                   P                  9   d'   RV P                   P                  : R2p\        V4      hR V P                   P                  9   d6   V P	                  RV4      p \
        P                  ! W0P                  4       R# RV P                   P                  9   d   V P                   P                  R,          p\        P                  P                  V P                   P                  V4      p\        P                  P!                  V4      '       g   \        RV 24      hV P                  W`P"                  4       R# R#   \         dq    \        P                  ! 4       ;_uu_ 4       p\
        P                  ! Y44       T P                  Y@P                  4       RRR4        R#   + '       g   i      R# ; ii ; i)patch_filenamer   z
Wrap file z: must not have both "patch_filename" and "patch_directory"r   Nz patch directory does not exist: )r  r   r   r;   r  r  r  r:  rf  r;  r=  r  r   r   r   r   rj  r   )r   r;  r"  r   rN  	patch_dirsrc_dirs   &&     r'   r  Resolver.apply_patch  sY   tyy///4EIYIY4YTYY^^..hiA""tyy///**7K@D>%%d,<,<=
 $))"2"22		(():;Iggll499#5#5yAG77==))#&Fyk$RSSNN7LL1 3	  >0022g))$8NN7,<,<= 3222>s*    E+ +(G&2GG&G"G&"G&c                   V ^8  d   QhRR/# rO  r%   )r&   s   "r'   r(   rP    s     O O$ Or)   c                	   V P                   P                   EFf  p\        P                  ! R V R24       \	        V P                   P
                  4      V,          pVP                  4       '       g   \        RV R24      h\        P                  P                  \        V4      V P                  4      p\        '       d.   \        RRRR\        \	        V4      P                  4       4      .pM%\        '       d   \        RR	R
RRV.pM\        R4      h\!        W@P                  \"        P$                  R7      w  rVpVP&                  ^ 8w  g   EK6  \        P                  ! VP)                  4       4       \        RV R24      h	  R# )zApplying diff file ""zDiff file "r  z-lz-fz-p1z-iz--work-treer_   applyz--ignore-whitespacez5Missing "patch" or "git" commands to apply diff files)r  stderrzFailed to apply diff file "N)r  r   r   r  r   r   r  r;   r   r   r  r3   r   PATCHr  r   r   r  STDOUT
returncoder   )r   r   r   r  r@  r   r  r   s   &       r'   r  Resolver.apply_diff_files  s#   		,,HHH+H:Q78		**+h6D;;==#k$7G$HIIggooc$i>Gu dD%s4=;Q;Q;S7TU
 M39NPUW^_#$[\\"3LLARARSIAA||q %#&A(1$MNN/ -r)   c               $    V ^8  d   QhRRRRRR/# )r#   root_src_dirr3   root_dst_dirr$   r   r%   )r&   s   "r'   r(   rP    s&     G Gc G G Gr)   c                   \         P                  ! V4       F  w  r4pVP                  W^4      p\         P                  P	                  V4      '       g   \         P
                  ! V4       V F  p\         P                  P                  W74      p\         P                  P                  Wg4      p	\         P                  P	                  V	4      '       d    \         P                  ! V	4       \        P                  ! WRR7       K  	  K  	  R#   \         d?    \         P                  ! T	\        P                  4       \         P                  ! T	4        Lji ; i)z7
Copy directory tree. Overwrites also read only files.
F)follow_symlinksN)r   rl  replacer   r  r  r   r{  PermissionErrorchmodstatS_IWUSRr  copy2)
r   r  r  r  r   rq  dst_dirfile_src_filedst_files
   &&&       r'   r  Resolver.copy_tree  s     "$!6Gool!DG77>>'**G$77<<777<<777>>(++,		(+ XF 	 "7 + ,4<<8		(+,s   DAEE)rU  r   r   r[  r   r   r   r:  r  rW  rX  rY  rV  r   )TF)-r   r   r   r   __annotations__r   r   r   defaultrL  rM  rD   r   r_  r]  r\  rm  r^  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r%  rX  rC  rh  rs  r|  r  r  r  r  r   r%   r)   r'   rI  rI  l  s    OK'^J
+"**Ix*M4 ND FDM*2-c"! )	A` Dr#&FPY%gNQ$	4FR'hg(#&#,2&O4G Gr)   rI  )r  r  r  )r  r  r  r  r   )      )FFFr  )`__conditional_annotations__
__future__r   rJ   r   rD  dataclassesr   urllib.requestr7   urllib.errorurllib.parser   r   r  r;  r  r  rj   r	  ro  typingrX   r  r   rN   base64r   r   pathlibr   r	   	functoolsr
   r   r   r   r   r   r   r   r   r   r   r   interpreterbaser   r   TYPE_CHECKINGhttp.clientra   typing_extensionsr   Methodr-   r>   r/   r[   r=   r  version_infotarfiler8  fully_trusted_filterTarFileextraction_filter
is_windowsprogramsr   r   r   r  _patchfoundget_versionr   r   r   get_pathr  r  ri   r0   rA   rp   rz   r}   r   r   r   r;   r   r   r>  rE  rI  )r  s   @r'   <module>r     s;   # "   !    	      
         "      ) ( ???)./F G - 4	w(4W5Q5Q(RGOO%**"$NK$
 ^T||~~6--/;;bggoofoo.?@A!'FOOTELL!E  4> >	&ZP$ 4C C*?$	N 		M 	U( U(n$ eg	G g	G g	Gs	  Gs   J 	JJ