§
    ‹ã÷c†  ã                  ó<  — U d dl mZ d dlmZ d dlmZ d dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZddlmZ ddlmZ ddlmZ dd	lmZmZmZmZmZmZmZ dd
lmZmZ ddlmZ 	 d dl m!Z" n# e#$ r dZ"Y nw xY wej$        r;ddlm%Z%m&Z&m'Z'm(Z(m)Z) ddlm*Z* 	 d dlm+Z+ n# e,$ r	 d dl-m+Z+ Y nw xY w G d„ de+¦  «        Z.dZ/g Z0de1d<   dEd„Z2 G d„ d¦  «        Z3dFd„Z4dGdHd$„Z5dId(„Z6	 	 	 dJdKd/„Z7	 	 dLdMd2„Z8dNd5„Z9dOd8„Z:dPd9„Z;dQd<„Z<dRd=„Z= G d>„ d?¦  «        Z>dSdA„Z?dTdD„Z@dS )Ué    )Úannotations)Úglob)ÚPathNé   )Úbuild)Úenvironment)ÚInstallData)ÚMesonExceptionÚ
Popen_safeÚRealPathActionÚ
is_windowsÚsetup_vsenvÚpickle_loadÚis_osx)ÚdepfixerÚdestdir_join)Úrun_exe)Ú__file__)ÚExecutableSerialisationÚInstallDataBaseÚInstallEmptyDirÚInstallSymlinkDataÚTargetInstallData)ÚFileMode)ÚProtocolc                  óx   — e Zd ZU dZded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   dS )ÚArgumentTypez7Typing information for the object returned by argparse.ÚboolÚ
no_rebuildÚonly_changedÚprofileÚquietÚstrÚwdÚdestdirÚdry_runÚskip_subprojectsÚtagsÚstripN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__© ó    ú5/usr/lib/python3/dist-packages/mesonbuild/minstall.pyr   r   4   sy   € € € € € € ØEÐEØÐÐÑØÐÐÑØˆˆ‰Øˆˆ‰Øˆˆ‰Øˆˆ‰Øˆˆ‰ØÐÐÑØˆ	ˆ	‰	Øˆˆ‰ˆˆr0   r   zúWarning: trying to copy a symlink that points to a file. This will copy the file,
but this will be changed in a future version of Meson to copy the symlink as is. Please update your
build definitions so that it will not break when the change happens.úT.List[str]Úselinux_updatesÚparserúargparse.ArgumentParserÚreturnÚNonec                ó  — |                       ddt          d¬¦  «         |                       dddt          j        ¬¦  «         |                       d	d
dd¬¦  «         |                       dd
dd¬¦  «         |                       dd
dd¬¦  «         |                       dd d¬¦  «         |                       dddd¬¦  «         |                       ddddd¬¦  «         |                       dd d¬¦  «         |                       d dd!¬¦  «         d S )"Nú-Cr$   z#directory to cd into before running)ÚdestÚactionÚhelpz--profile-selfÚ
store_truer!   )r;   r:   r<   z--no-rebuildFz!Do not rebuild before installing.)Údefaultr;   r<   z--only-changedz9Only overwrite files that are older than the copied file.z--quietz+Do not print every file that was installed.z	--destdirz5Sets or overrides DESTDIR environment. (Since 0.57.0))r>   r<   z	--dry-runz-nz8Doesn't actually install, but print logs. (Since 0.57.0))r;   r<   z--skip-subprojectsú?Ú*Ú z;Do not install files from given subprojects. (Since 0.58.0))ÚnargsÚconstr>   r<   z--tagszAInstall only targets having one of the given tags. (Since 0.60.0)z--stripzOStrip targets even if strip option was not set during configure. (Since 0.62.0))Úadd_argumentr   ÚargparseÚSUPPRESS)r4   s    r1   Úadd_argumentsrG   H   s§  € Ø
×Ò˜ 4µØBð ñ Dô Dð Dà
×ÒÐ(°ÀIÝ%Ô.ð ñ 0ô 0ð 0à
×Ò˜°¸lØ@ð ñ Bô Bð Bà
×ÒÐ(°%ÀØXð ñ Zô Zð Zà
×Ò˜	¨5¸ØJð ñ Lô Lð Là
×Ò˜¨TØTð ñ Vô Vð Và
×Ò˜ T°,ØXð ñ Zô Zð Zà
×ÒÐ,°C¸sÈBØZð ñ \ô \ð \à
×Ò˜¨$Ø`ð ñ bô bð bà
×Ò˜	¨,Ønð ñ pô pð pð pð pr0   c                  ó0   — e Zd Zdd„Zddd„Zdd„Zdd„ZdS )ÚDirMakerÚlfúT.TextIOÚmakedirsúT.Callable[..., None]c                óV   — || _         g | _        t          ¦   «         | _        || _        d S ©N)rJ   ÚdirsÚsetÚall_dirsÚmakedirs_impl)ÚselfrJ   rL   s      r1   Ú__init__zDirMaker.__init___   s)   € ØˆŒØ!#ˆŒ	Ý$'¡E¤EˆŒØ%ˆÔÐÐr0   FÚpathr#   Úexist_okr   r6   r7   c                ó8  — t           j                             |¦  «        }| j                             |¦  «         g }|t           j                             |¦  «        k    r€|| j        v rnvt           j                             |¦  «        s|                     |¦  «         t           j                             |¦  «        }|t           j                             |¦  «        k    °€|  	                    ||¬¦  «         | 
                    ¦   «          | xj        |z  c_        d S )N©rW   )ÚosrV   ÚnormpathrR   ÚaddÚdirnamerP   ÚexistsÚappendrS   Úreverse)rT   rV   rW   r]   rP   s        r1   rL   zDirMaker.makedirse   sñ   € Ý”'×"Ò" 4Ñ(Ô(ˆØŒ×Ò˜'Ñ"Ô"Ð"ØˆØ�œŸš¨Ñ1Ô1Ò1Ð1Ø˜$œ)Ð#Ð#ð Ý”7—>’> 'Ñ*Ô*ð %Ø—’˜GÑ$Ô$Ð$Ý”g—o’o gÑ.Ô.ˆGð �œŸš¨Ñ1Ô1Ò1Ð1ð 	×Ò˜4¨(ÐÑ3Ô3Ð3ð 	�Š‰ŒˆØˆ	Œ	�TÑˆ	Œ	ˆ	ˆ	r0   ú
'DirMaker'c                ó   — | S rO   r/   )rT   s    r1   Ú	__enter__zDirMaker.__enter__{   s   € Øˆr0   Úexception_typeúT.Type[Exception]ÚvalueúT.AnyÚ	tracebackc                óv   — | j                              ¦   «          | j         D ]}t          | j        |¦  «         Œd S rO   )rP   r`   Úappend_to_logrJ   )rT   rd   rf   rh   Úds        r1   Ú__exit__zDirMaker.__exit__~   sF   € ØŒ	×ÒÑÔÐØ”ð 	&ð 	&ˆAÝ˜$œ' 1Ñ%Ô%Ð%Ð%ð	&ð 	&r0   N)rJ   rK   rL   rM   ©F)rV   r#   rW   r   r6   r7   )r6   ra   )rd   re   rf   rg   rh   rg   r6   r7   )r*   r+   r,   rU   rL   rc   rl   r/   r0   r1   rI   rI   ^   si   € € € € € ð&ð &ð &ð &ðð ð ð ð ð,ð ð ð ð&ð &ð &ð &ð &ð &r0   rI   Úfnamer#   r	   c                óp   — t          | dt          ¦  «        }t          |t          ¦  «        s
J d¦   «         ‚|S )Nr	   zfo mypy)r   r	   Ú
isinstance)rn   Úobjs     r1   Úload_install_datarr   „   s6   € Ý
�e˜]­KÑ
8Ô
8€CÝ�c�;Ñ'Ô'Ð2Ð2¨Ñ2Ô2Ð2Ø€Jr0   FrV   Úfollow_symlinksr   c                óX   — t          t          j        | |¬¦  «        j        dz  ¦  «        S )zCChecks whether any of the "x" bits are set in the source file mode.©rs   éI   )r   rZ   ÚstatÚst_mode)rV   rs   s     r1   Úis_executablery   ‰   s'   € å•”˜¨oÐ>Ñ>Ô>ÔFÈÑNÑOÔOÐOr0   rJ   rK   Úlinec                ó¬   — |                       |¦  «         |                     d¦  «        s|                       d¦  «         |                      ¦   «          d S )Nú
)ÚwriteÚendswithÚflush)rJ   rz   s     r1   rj   rj   Ž   sE   € Ø‡H‚HˆT�N„N€NØ�=Š=˜ÑÔð Ø
�Š�‰ŒˆØ‡H‚H�J„J€J€J€Jr0   TÚuserúT.Union[str, int, None]ÚgroupÚdir_fdúT.Optional[int]c                ó´   ‡— t           j        Š||dœdˆfd„}	 |t           _        t          j        | ||¦  «         ‰t           _        d S # ‰t           _        w xY w)N©rƒ   rs   rV   úBT.Union[int, str, 'os.PathLike[str]', bytes, 'os.PathLike[bytes]']ÚuidÚintÚgidrƒ   r„   rs   r   r6   r7   c               ó(   •—  ‰| ||||¬¦  «         dS )zžOverride the default behavior of os.chown

        Use a real function rather than a lambda to help mypy out. Also real
        functions are faster.
        r†   Nr/   )rV   rˆ   rŠ   rƒ   rs   Úreal_os_chowns        €r1   Úchownzset_chown.<locals>.chown    s&   ø€ ð 	ˆ�d˜C ¨VÀ_ÐUÑUÔUÐUÐUÐUr0   )rV   r‡   rˆ   r‰   rŠ   r‰   rƒ   r„   rs   r   r6   r7   )rZ   r�   Úshutil)rV   r€   r‚   rƒ   rs   r�   rŒ   s         @r1   Ú	set_chownr�   •   s„   ø€ õ ”H€Mð @FØ&5ðVð Vð Vð Vð Vð Vð Vð Vð!Ø�ŒÝŒ�T˜4 Ñ'Ô'Ð'à �Œˆˆø�=�ŒÐ Ð Ð Ð s   ™"A	 Á	AÚmoder‰   c                óæ   — 	 t          j        | |||¬¦  «         d S # t          t          t          f$ r= t           j                             | ¦  «        st          j        | ||¬¦  «         Y d S Y d S w xY w)Nr†   )rƒ   )rZ   ÚchmodÚNotImplementedErrorÚOSErrorÚSystemErrorrV   Úislink)rV   r�   rƒ   rs   s       r1   Ú	set_chmodr—   ±   s�   € ð0Ý
Œ��t F¸OÐLÑLÔLÐLÐLÐLøÝ¥­+Ð6ð 0ð 0ð 0ÝŒw�~Š~˜dÑ#Ô#ð 	0ÝŒH�T˜4¨Ð/Ñ/Ô/Ð/Ð/Ð/Ð/ð	0ð 	0ð 	0ð0øøøs   ‚ œAA0Á/A0ÚumaskúT.Union[str, int]c           	     ó  — |dk    rd S t          |t          ¦  «        s
J d¦   «         ‚t          | d¬¦  «        rdnd}|| z  }	 t          | |d¬¦  «         d S # t          $ r(}t          | ›d|›d|j        › d	�¦  «         Y d }~d S d }~ww xY w)
NÚpreservez.umask should only be "preserver" or an integerFru   iÿ  i¶  ú: Unable to set permissions ú: ú, ignoring...)rp   r‰   ry   r—   ÚPermissionErrorÚprintÚstrerror)rV   r˜   Ú	new_permsÚes       r1   Úsanitize_permissionsr¤   º   sÙ   € ð �
ÒÐØˆÝ�e�SÑ!Ô!ÐSÐSÐ#SÑSÔSÐSÝ& t¸UÐCÑCÔCÐN��È€IØ�%�Ñ€Ið_Ý�$˜	°5Ð9Ñ9Ô9Ð9Ð9Ð9øÝð _ð _ð _Ý�Ð]Ð]°YÐ]Ð]ÀAÄJÐ]Ð]Ð]Ñ^Ô^Ð^Ð^Ð^Ð^Ð^Ð^Ð^øøøøð_øøøs   ÁA Á
B
Á"BÂB
úT.Optional['FileMode']Údefault_umaskc                óB  — |�+t          d„ |j        |j        |j        fD ¦   «         ¦  «        rt	          | |¦  «         d S t          ¦   «         sæ|j        €|j        �Ø	 t          | |j        |j        d¬¦  «         n¹# t          $ r4}t          | ›d|j        ›d|j        ›d|j	        › d�¦  «         Y d }~n€d }~wt          $ r% t          | ›d|j        ›d	|j        ›d
�¦  «         Y nOt          $ rC}|j        t          j        k    r#t          | ›d|j        ›d	|j        ›d
�¦  «         n‚ Y d }~nd }~ww xY w|j        �T	 t          | |j        d¬¦  «         d S # t          $ r-}t          | ›d|j        ›d|j	        › d�¦  «         Y d }~d S d }~ww xY wt	          | |¦  «         d S )Nc              3  ó   K  — | ]}|d u V — Œ	d S rO   r/   )Ú.0Úms     r1   ú	<genexpr>zset_mode.<locals>.<genexpr>É   s&   è è € ÐUÐU¨˜1 ˜9ÐUÐUÐUÐUÐUÐUr0   Fru   z: Unable to set owner z and group r�   rž   z: Non-existent owner z
 or group z: ignoring...z: Non-existent numeric owner rœ   )ÚallÚperms_sÚownerr‚   r¤   r   r�   rŸ   r    r¡   ÚLookupErrorr”   ÚerrnoÚEINVALr—   Úperms)rV   r�   r¦   r£   s       r1   Úset_moder³   È   s>  € Ø€|•sÐUÐU¨t¬|¸T¼ZÈÌÐ.TÐUÑUÔUÑUÔU€|å˜T =Ñ1Ô1Ð1Øˆå‰<Œ<ð ˜TœZÐ3°t´zÐ7Mð
	Ý�d˜DœJ¨¬
ÀEÐJÑJÔJÐJÐJøÝð 	wð 	wð 	wÝ�TÐuÐu°4´:ÐuÐuÈDÌJÐuÐuÐ\]Ô\fÐuÐuÐuÑvÔvÐvÐvÐvÐvÐvÐvøøøøÝð 	gð 	gð 	gÝ�TÐeÐe°$´*ÐeÐeÈ$Ì*ÐeÐeÐeÑfÔfÐfÐfÐfÝð 	ð 	ð 	ØŒw�%œ,Ò&Ð&Ý˜ÐqÐq¸d¼jÐqÐqÐVZÔV`ÐqÐqÐqÑrÔrÐrÐràð sÐrÐrÐrÐrøøøøð	øøøð „|Ðð	fÝ�d˜DœJ¸Ð>Ñ>Ô>Ð>Ð>Ð>øÝð 	fð 	fð 	fÝ�TÐdÐd¸¼ÐdÐdÈ1Ì:ÐdÐdÐdÑeÔeÐeÐeÐeÐeÐeÐeÐeøøøøð	føøøõ 	˜T =Ñ1Ô1Ð1Ð1Ð1sB   ÁA; Á;
D1Â*B4Â4/D1Ã%	D1Ã.9D,Ä,D1Ä<E Å
FÅ"FÆFc                 óŠ  — 	 t          j        dg¦  «         n/# t          t          t          t
          t           j        f$ r Y dS w xY wt          j        d¦  «        sdS t          sdS t          g d¢d                     d„ t          D ¦   «         ¦  «        dz   ¦  «        \  } }}| j        dk    rt          dd	|d
|d¬¦  «         dS dS )z|
    Restores the SELinux context for files in @selinux_updates

    If $DESTDIR is set, do not warn if the call fails.
    ÚselinuxenabledNÚ
restorecon)r¶   z-Fz-f-z-0ú c              3  ó   K  — | ]}|V — Œd S rO   r/   )r©   Úfs     r1   r«   z+restore_selinux_contexts.<locals>.<genexpr>û   s#   è è € ÐMiÐMiÐTUÈaÐMiÐMiÐMiÐMiÐMiÐMir0   r   z7Failed to restore SELinux context of installed files...zStandard output:zStandard error:r|   )Úsep)Ú
subprocessÚ
check_callÚFileNotFoundErrorÚNotADirectoryErrorr”   rŸ   ÚCalledProcessErrorrŽ   Úwhichr3   r   ÚjoinÚ
returncoder    )ÚprocÚoutÚerrs      r1   Úrestore_selinux_contextsrÆ   æ   sû   € ðÝÔÐ/Ð0Ñ1Ô1Ð1Ð1øÝÕ1µ7½OÍZÔMjÐkð ð ð ð 	ˆˆðøøøõ
 Œ<˜Ñ%Ô%ð àˆåð àˆåÐ AÐ AÐ AÀDÇIÂIÐMiÐMiÕYhÐMiÑMiÔMiÑDiÔDiÐlpÑDpÑrÔr�N€Dˆ#ˆsØ„˜!ÒÐÝÐGØ  #Ø ¨$ð	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð Ðs   ‚ ˜(AÁAr%   Ú
fullprefixc                ó¦   — t           j                             |¦  «        rt          | |¦  «        }n t           j                             ||¦  «        }|S rO   )rZ   rV   Úisabsr   rÁ   )r%   rÇ   rV   Úoutputs       r1   Úget_destdir_pathrË     sC   € Ý	„w‡}‚}�TÑÔð 0Ý˜g tÑ,Ô,ˆˆå”—’˜j¨$Ñ/Ô/ˆØ€Mr0   c                óD  — |                       d¦  «        s|                       d¦  «        r¦t          j        | ¦  «        j        dk    rˆt          j                             | ¦  «        \  }}t          |dz   |z   ¦  «        }t          |¦  «        dk    r#t          d¦  «         t          j
        d¦  «         t          |¦  «        dk    r|d         S nÏ|                       d¦  «        s|                       d¦  «        r¥t          j        | ¦  «        j        dk    rˆt          j                             | ¦  «        \  }}t          |dz   d	z   ¦  «        }t          |¦  «        dk    r#t          d
¦  «         t          j
        d¦  «         t          |¦  «        dk    r|d         S | S )zŸSome languages e.g. Rust have output files
    whose names are not known at configure time.
    Check if this is the case and return the real
    file instead.z.soz.dllr   z-*r   z8Stale dynamic library files in build dir. Can't install.z.az.libz.rlibz7Stale static library files in build dir. Can't install.)r~   rZ   rw   Úst_sizerV   Úsplitextr   Úlenr    ÚsysÚexit)rn   ÚbaseÚsuffixÚfiless       r1   Úcheck_for_stampfilerÕ   	  sh  € ð
 ‡~‚~�eÑÔð   §¢¨vÑ 6Ô 6ð  ÝŒ7�5‰>Œ>Ô! QÒ&Ð&ÝœW×-Ò-¨eÑ4Ô4‰NˆT�6Ý˜ ™ vÑ-Ñ.Ô.ˆEÝ�5‰zŒz˜AŠ~ˆ~ÝÐPÑQÔQÐQÝ”˜‘”�Ý�5‰zŒz˜QŠˆØ˜Q”x�øØ	�Š˜Ñ	Ô	ð   §¢°Ñ!7Ô!7ð  ÝŒ7�5‰>Œ>Ô! QÒ&Ð&ÝœW×-Ò-¨eÑ4Ô4‰NˆT�6Ý˜ ™ wÑ.Ñ/Ô/ˆEÝ�5‰zŒz˜AŠ~ˆ~ÝÐOÑPÔPÐPÝ”˜‘”�Ý�5‰zŒz˜QŠˆØ˜Q”x�Ø€Lr0   c                  ó  — e Zd ZdKd„ZdLd„ZdLd„ZdLd„ZdLd„ZdLd„ZdLd„Z	dLd„Z
dLd„ZdLd„ZdLd„ZdLd„ZdLd„ZdMd„ZdNd„ZdOd„ZdPd!„ZdQd#„ZdRd&„Z	 dSdTd*„ZdUd/„ZdVd:„ZdWd<„ZdXdA„ZdYdC„ZdYdD„ZdYdE„ZdYdF„ZdYdG„ZdYdH„Z dZdI„Z!dYdJ„Z"d'S )[Ú	InstallerÚoptionsú'ArgumentType'rJ   rK   c                ó  — d| _         d| _        || _        || _        d| _        |j        | _        d„ |j                             d¦  «        D ¦   «         | _        |j        r$d„ |j                             d¦  «        D ¦   «         nd | _        d S )NFr   c                ó6   — g | ]}|                      ¦   «         ‘ŒS r/   ©r)   ©r©   Úis     r1   ú
<listcomp>z&Installer.__init__.<locals>.<listcomp>/  s    € Ð XÐ XÐ X¨q §¢¡¤Ð XÐ XÐ Xr0   ú,c                ó6   — g | ]}|                      ¦   «         ‘ŒS r/   rÜ   rÝ   s     r1   rß   z&Installer.__init__.<locals>.<listcomp>0  s    € Ð@Ð@Ð@ 1�Q—W’W‘Y”YÐ@Ð@Ð@r0   )	Údid_install_somethingÚprinted_symlink_errorrØ   rJ   Úpreserved_file_countr&   r'   Úsplitr(   )rT   rØ   rJ   s      r1   rU   zInstaller.__init__%  s“   € Ø%*ˆÔ"Ø%*ˆÔ"ØˆŒØˆŒØ$%ˆÔ!Ø”ˆŒð !YÐ X°GÔ4L×4RÒ4RÐSVÑ4WÔ4WÐ XÑ XÔ XˆÔØDKÄLÐZÐ@Ð@¨¬×(:Ò(:¸3Ñ(?Ô(?Ð@Ñ@Ô@Ð@ÐVZˆŒ	ˆ	ˆ	r0   Úargsrg   Úkwargsr6   r7   c                ó:   — | j         st          j        |i |¤Ž d S d S rO   )r&   rZ   Úremove©rT   ræ   rç   s      r1   ré   zInstaller.remove2  s1   € ØŒ|ð 	'ÝŒI�tÐ&˜vÐ&Ð&Ð&Ð&Ð&ð	'ð 	'r0   c                ó:   — | j         st          j        |i |¤Ž d S d S rO   )r&   rZ   Úsymlinkrê   s      r1   rì   zInstaller.symlink6  s1   € ØŒ|ð 	(ÝŒJ˜Ð' Ð'Ð'Ð'Ð'Ð'ð	(ð 	(r0   c                ó:   — | j         st          j        |i |¤Ž d S d S rO   )r&   rZ   rL   rê   s      r1   rL   zInstaller.makedirs:  s1   € ØŒ|ð 	)ÝŒK˜Ð( Ð(Ð(Ð(Ð(Ð(ð	)ð 	)r0   c                ó:   — | j         st          j        |i |¤Ž d S d S rO   )r&   rŽ   Úcopyrê   s      r1   rï   zInstaller.copy>  s1   € ØŒ|ð 	)ÝŒK˜Ð( Ð(Ð(Ð(Ð(Ð(ð	)ð 	)r0   c                ó:   — | j         st          j        |i |¤Ž d S d S rO   )r&   rŽ   Úcopy2rê   s      r1   rñ   zInstaller.copy2B  s1   € ØŒ|ð 	*ÝŒL˜$Ð) &Ð)Ð)Ð)Ð)Ð)ð	*ð 	*r0   c                ó:   — | j         st          j        |i |¤Ž d S d S rO   )r&   rŽ   Úcopyfilerê   s      r1   ró   zInstaller.copyfileF  ó1   € ØŒ|ð 	-ÝŒO˜TÐ, VÐ,Ð,Ð,Ð,Ð,ð	-ð 	-r0   c                ó:   — | j         st          j        |i |¤Ž d S d S rO   )r&   rŽ   Úcopystatrê   s      r1   rö   zInstaller.copystatJ  rô   r0   c                ó:   — | j         st          j        |i |¤Ž d S d S rO   )r&   r   Ú	fix_rpathrê   s      r1   rø   zInstaller.fix_rpathN  s2   € ØŒ|ð 	0ÝÔ Ð/¨Ð/Ð/Ð/Ð/Ð/ð	0ð 	0r0   c                ó0   — | j         st          |i |¤Ž d S d S rO   )r&   r�   rê   s      r1   r�   zInstaller.set_chownR  ó/   € ØŒ|ð 	'Ý�tÐ&˜vÐ&Ð&Ð&Ð&Ð&ð	'ð 	'r0   c                ó0   — | j         st          |i |¤Ž d S d S rO   )r&   r—   rê   s      r1   r—   zInstaller.set_chmodV  rú   r0   c                ó0   — | j         st          |i |¤Ž d S d S rO   )r&   r¤   rê   s      r1   r¤   zInstaller.sanitize_permissionsZ  s/   € ØŒ|ð 	2Ý  $Ð1¨&Ð1Ð1Ð1Ð1Ð1ð	2ð 	2r0   c                ó0   — | j         st          |i |¤Ž d S d S rO   )r&   r³   rê   s      r1   r³   zInstaller.set_mode^  s/   € ØŒ|ð 	&Ý�dÐ%˜fÐ%Ð%Ð%Ð%Ð%ð	&ð 	&r0   r%   r#   c                ó<   — | j         s|st          ¦   «          d S d S d S rO   )r&   rÆ   )rT   r%   s     r1   rÆ   z"Installer.restore_selinux_contextsb  s9   € ØŒ|ð 	' Gð 	'Ý$Ñ&Ô&Ð&Ð&Ð&ð	'ð 	'ð 	'ð 	'r0   úT.Tuple[int, str, str]c                óH   — | j         st          |i |¤Ž\  }}}|j        ||fS dS )N)r   rA   rA   )r&   r   rÂ   )rT   ræ   rç   ÚpÚor£   s         r1   r   zInstaller.Popen_safef  s8   € ØŒ|ð 	&Ý  $Ð1¨&Ð1Ð1‰GˆAˆq�!Ø”<  AÐ%Ð%Øˆyr0   r‰   c                ó,   — | j         st          |i |¤ŽS dS )Nr   )r&   r   rê   s      r1   r   zInstaller.run_exel  s$   € ØŒ|ð 	,Ý˜DÐ+ FÐ+Ð+Ð+Øˆqr0   rk   úiT.Union[TargetInstallData, InstallEmptyDir, InstallDataBase, InstallSymlinkData, ExecutableSerialisation]r   c                ót   — |j         r|j         | j        v s	d| j        v rdS | j        r|j        | j        vrdS dS )Nr@   FT)Ú
subprojectr'   r(   Útag)rT   rk   s     r1   Úshould_installzInstaller.should_installq  sQ   € ð Œ<ð 	˜Qœ\¨TÔ-BÐBÐBÀcÈTÔMbÐFbÐFbØ�5ØŒ9ð 	˜œ d¤iÐ/Ð/Ø�5Øˆtr0   Úmsgc                ó@   — | j         j        st          |¦  «         d S d S rO   )rØ   r"   r    )rT   r	  s     r1   ÚlogzInstaller.logz  s(   € ØŒ|Ô!ð 	Ý�#‰JŒJˆJˆJˆJð	ð 	r0   Ú	from_fileÚto_filec                ó  — | j         j        sdS t          j                             |¦  «        r!t          j                             |¦  «        sdS t          j        |¦  «        j        }t          j        |¦  «        j        }||k    S )NF)rØ   r    rZ   rV   r–   Úisfilerw   Úst_mtime)rT   r  r  Ú	from_timeÚto_times        r1   Úshould_preserve_existing_filez'Installer.should_preserve_existing_file~  ss   € ØŒ|Ô(ð 	Ø�5åŒ7�>Š>˜)Ñ$Ô$ð 	­R¬W¯^ª^¸IÑ-FÔ-Fð 	Ø�5Ý”G˜IÑ&Ô&Ô/ˆ	Ý”'˜'Ñ"Ô"Ô+ˆØ˜GÒ#Ð#r0   NrL   úT.Optional[T.Tuple[T.Any, str]]c                ó@  — t           j                             |¦  «        d         }t           j                             |¦  «        s1t           j                             |¦  «        st          d|›�¦  «        ‚t           j                             |¦  «        r‰t           j                             |¦  «        st          d|›d�¦  «        ‚|                      ||¦  «        r+t          | j	        d|› d�¦  «         | xj
        dz  c_
        dS |                      |¦  «         n|r|\  }}|                     |d	¬
¦  «         |                      d|› d|› �¦  «         t           j                             |¦  «        rct           j                             |¦  «        s|                      ||d¬¦  «         nAt          t           ¦  «         |                      ||¦  «         n|                      ||¦  «         t$                               |¦  «         t          | j	        |¦  «         d	S )Nr   z.Tried to install something that isn't a file: úDestination z! already exists and is not a filez# Preserving old file r|   r   FTrY   zInstalling ú to ru   )rZ   rV   rå   r  r–   r
   r^   r  rj   rJ   rä   ré   rL   r  rï   r    Úsymlink_warningrñ   r3   r_   )rT   r  r  rL   ÚoutdirÚdirmakers         r1   Údo_copyfilezInstaller.do_copyfileˆ  s  € å”—’˜wÑ'Ô'¨Ô*ˆÝŒw�~Š~˜iÑ(Ô(ð 	bµ´·²À	Ñ1JÔ1Jð 	bÝ Ð!`ÐS\Ð!`Ð!`ÑaÔaÐaõ Œ7�>Š>˜'Ñ"Ô"ð 	5Ý”7—>’> 'Ñ*Ô*ð bÝ$Ð%`°GÐ%`Ð%`Ð%`ÑaÔaÐaØ×1Ò1°)¸WÑEÔEð Ý˜dœgÐ'KÀÐ'KÐ'KÐ'KÑLÔLÐLØÐ)Ô)¨QÑ.Ð)Ô)Ø�uØ�KŠK˜Ñ Ô Ð Ð Øð 	5à'ÑˆH�fà×Ò˜f¨tÐÑ4Ô4Ð4Ø�ŠÐ6˜yÐ6Ð6¨fÐ6Ð6Ñ7Ô7Ð7ÝŒ7�>Š>˜)Ñ$Ô$ð 
	+Ý”7—>’> )Ñ,Ô,ð /à—	’	˜) V¸U�	ÑCÔCÐCÐCõ •oÑ&Ô&Ð&Ø—
’
˜9 gÑ.Ô.Ð.Ð.à�JŠJ�y 'Ñ*Ô*Ð*Ý×Ò˜wÑ'Ô'Ð'Ý�d”g˜wÑ'Ô'Ð'Øˆtr0   ÚtargetÚlinkÚfull_dst_dirÚallow_missingc                ód  — |}t           j                             |¦  «        s!t           j                             ||¦  «        }n1t           j                             |¦  «        s|st          ||¦  «        }t           j                             |¦  «        s|st          d|› �¦  «        ‚t           j                             |¦  «        rGt           j                             |¦  «        st          d|›d�¦  «        ‚|                      |¦  «         | j	        s|  
                    d|› d|› �¦  «         	 |                      ||t           j                             |¦  «        ¬¦  «         n5# t          t          f$ r! | j	        st          d¦  «         d| _	        Y d	S w xY wt!          | j        |¦  «         dS )
Nz)Tried to install symlink to missing file r  z$ already exists and is not a symlinkzInstalling symlink pointing to r  )Útarget_is_directoryzISymlink creation does not work on this platform. Skipping all symlinking.TF)rZ   rV   rÉ   rÁ   r^   r   r
   r–   ré   rã   r  rì   Úisdirr“   r”   r    rj   rJ   )rT   r  r  r%   r  r  Ú
abs_targets          r1   Ú
do_symlinkzInstaller.do_symlink­  s¶  € Øˆ
ÝŒw�}Š}˜VÑ$Ô$ð 	;ÝœŸš l°FÑ;Ô;ˆJˆJÝ”—’ 
Ñ+Ô+ð 	;°Mð 	;Ý% g¨zÑ:Ô:ˆJÝŒw�~Š~˜jÑ)Ô)ð 	[°-ð 	[Ý Ð!YÈZÐ!YÐ!YÑZÔZÐZÝŒ7�>Š>˜$ÑÔð 	Ý”7—>’> $Ñ'Ô'ð bÝ$Ð%`°DÐ%`Ð%`Ð%`ÑaÔaÐaØ�KŠK˜ÑÔÐØÔ)ð 	KØ�HŠHÐI°vÐIÐIÀ4ÐIÐIÑJÔJÐJð	Ø�LŠL˜ ½2¼7¿=º=ÈÑ;TÔ;TˆLÑUÔUÐUÐUøÝ#¥WÐ-ð 	ð 	ð 	ØÔ-ð 2Ýð 1ñ 2ô 2ð 2à-1�Ô*Ø�5�5ð	øøøõ 	�d”g˜tÑ$Ô$Ð$Øˆts   Ä05E& Å&.FÆFÚdatar	   Úsrc_dirÚdst_dirÚexcludeú+T.Optional[T.Tuple[T.Set[str], T.Set[str]]]Úinstall_modeú
'FileMode'ÚdmrI   c                ó¸  — t           j                             |¦  «        st          d|› �¦  «        ‚t           j                             |¦  «        st          d|› �¦  «        ‚|�|\  }}nt	          ¦   «         x}}t          j        |¦  «        D �]É\  }	}
}t           j                             |	¦  «        sJ ‚|
dd…         D �]*}t           j                             |	|¦  «        }t           j                             ||¬¦  «        }t           j                             ||¦  «        }||v r|
                     |¦  «         Œ~t           j         	                    |¦  «        rŒžt           j         
                    |¦  «        r't          d|› d�¦  «         t          j        d¦  «         |                     |¦  «         |                      ||¦  «         |                      ||j        ¦  «         �Œ,|D �]g}t           j                             |	|¦  «        }t           j                             ||¬¦  «        }||v rŒIt           j                             ||¦  «        }t           j         	                    |¦  «        r't          d|› d	�¦  «         t          j        d¦  «         t           j                             |¦  «        }t           j         	                    |¦  «        sH|                     |¦  «         |                      t           j                             |¦  «        |¦  «         |                      ||¦  «         |                      |||j        ¦  «         �Œi�ŒËdS )
aª  
        Copies the contents of directory @src_dir into @dst_dir.

        For directory
            /foo/
              bar/
                excluded
                foobar
              file
        do_copydir(..., '/foo', '/dst/dir', {'bar/excluded'}) creates
            /dst/
              dir/
                bar/
                  foobar
                file

        Args:
            src_dir: str, absolute path to the source directory
            dst_dir: str, absolute path to the destination directory
            exclude: (set(str), set(str)), tuple of (exclude_files, exclude_dirs),
                     each element of the set is a path relative to src_dir.
        zsrc_dir must be absolute, got zdst_dir must be absolute, got N)ÚstartzTried to copy directory ú( but a file of that name already exists.r   zTried to copy file z- but a directory of that name already exists.)rZ   rV   rÉ   Ú
ValueErrorrQ   ÚwalkrÁ   Úrelpathré   r"  r^   r    rÐ   rÑ   rL   rö   r¤   Úinstall_umaskr]   r  r³   )rT   r%  r&  r'  r(  r*  r,  Úexclude_filesÚexclude_dirsÚrootrP   rÔ   rk   Úabs_srcÚfilepartÚabs_dstr¹   Ú
parent_dirs                     r1   Ú
do_copydirzInstaller.do_copydirÆ  s
  € õ2 Œw�}Š}˜WÑ%Ô%ð 	IÝÐG¸gÐGÐGÑHÔHÐHÝŒw�}Š}˜WÑ%Ô%ð 	IÝÐG¸gÐGÐGÑHÔHÐHØÐØ*1Ñ'ˆM˜<˜<å+.©5¬5Ð0ˆM˜LÝ!#¤¨Ñ!1Ô!1ð !	Iñ !	IÑˆD�$˜Ý”7—=’= Ñ&Ô&Ð&Ð&Ð&Ø˜!˜!˜!”Wð Gñ G�Ýœ'Ÿ,š, t¨QÑ/Ô/�Ýœ7Ÿ?š?¨7¸'˜?ÑBÔB�Ýœ'Ÿ,š, w°Ñ9Ô9�à˜|Ð+Ð+Ø—K’K ‘N”N�NØÝ”7—=’= Ñ)Ô)ð ØÝ”7—>’> 'Ñ*Ô*ð  ÝÐf°WÐfÐfÐfÑgÔgÐgÝ”H˜Q‘K”K�KØ—’˜GÑ$Ô$Ð$Ø—’˜g wÑ/Ô/Ð/Ø×)Ò)¨'°4Ô3EÑFÔFÐFÑFØð Iñ I�Ýœ'Ÿ,š, t¨QÑ/Ô/�Ýœ7Ÿ?š?¨7¸'˜?ÑBÔB�Ø˜}Ð,Ð,ØÝœ'Ÿ,š, w°Ñ9Ô9�Ý”7—=’= Ñ)Ô)ð  ÝÐf°ÐfÐfÐfÑgÔgÐgÝ”H˜Q‘K”K�KÝœWŸ_š_¨WÑ5Ô5�
Ý”w—}’} ZÑ0Ô0ð HØ—K’K 
Ñ+Ô+Ð+Ø—M’M¥"¤'§/¢/°'Ñ":Ô":¸JÑGÔGÐGà× Ò  ¨'Ñ2Ô2Ð2Ø—’˜g |°TÔ5GÑHÔHÐHÑHñIð%!	Ið !	Ir0   Údatafilenamec           	     óR  — t          |¦  «        }| j        j        }|€t          j                             d¦  «        }|rDt          j                             |¦  «        s%t          j                             |j	        |¦  «        }|�|t          j        d<   |pd}t          ||j        ¦  «        }|j        dk    r5t          |j        t          ¦  «        sJ ‚t          j        |j        ¦  «         d| _        	 t#          | j        | j        ¦  «        5 }|                      ||||¦  «         |                      ||||¦  «         |                      ||||¦  «         |                      ||||¦  «         |                      ||||¦  «         |                      ||||¦  «         |                      ||||¦  «         |                      |¦  «         |                      |||¦  «         | j        s|                      d¦  «         | j        j        s`| j        dk    rU|                      d                      | j        t          j         !                    | j        j"        ¦  «        ¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S # tF          $ r– tI          j%        d¦  «        �€d	t          j        vrr|dk    rltM          d
¦  «         tM          d¦  «         t          j'        ddtP          j)        tT          gtP          j+        dd …         ¢d‘t          j,        ¦   «         ‘R Ž  Y d S ‚ w xY w)NÚDESTDIRrA   r›   FzNothing to install.r   z6Preserved {} unchanged files, see {} for the full listÚpkexecÚ
PKEXEC_UIDz4Installation failed due to insufficient permissions.z7Attempting to use polkit to gain elevated privileges...r   r9   )-rr   rØ   r%   rZ   ÚenvironÚgetrV   rÉ   rÁ   Ú	build_dirr   Úprefixr3  rp   r‰   r˜   râ   rI   rJ   rL   Úinstall_subdirsÚinstall_targetsÚinstall_headersÚinstall_manÚinstall_emptydirÚinstall_dataÚinstall_symlinksrÆ   Úrun_install_scriptr  r"   rä   Úformatr[   ÚnamerŸ   rŽ   rÀ   r    ÚexeclprÐ   Ú
executableÚ	main_fileÚargvÚgetcwd)rT   r<  rk   r%   rÇ   r,  s         r1   Ú
do_installzInstaller.do_install
  sƒ  € Ý˜lÑ+Ô+ˆà”,Ô&ˆØˆ?Ý”j—n’n YÑ/Ô/ˆGØð 	9�2œ7Ÿ=š=¨Ñ1Ô1ð 	9Ý”g—l’l 1¤;°Ñ8Ô8ˆGð ÐØ$+�BŒJ�yÑ!Ø�-˜RˆÝ! '¨1¬8Ñ4Ô4ˆ
àŒ?˜jÒ(Ð(Ý˜aœo­sÑ3Ô3Ð3Ð3Ð3ÝŒH�Q”_Ñ%Ô%Ð%à%*ˆÔ"ð	Ý˜$œ' 4¤=Ñ1Ô1ð a°RØ×$Ò$ Q¨¨G°ZÑ@Ô@Ð@Ø×$Ò$ Q¨¨G°ZÑ@Ô@Ð@Ø×$Ò$ Q¨¨G°ZÑ@Ô@Ð@Ø× Ò   B¨°Ñ<Ô<Ð<Ø×%Ò% a¨¨W°jÑAÔAÐAØ×!Ò! ! R¨°*Ñ=Ô=Ð=Ø×%Ò% a¨¨W°jÑAÔAÐAØ×-Ò-¨gÑ6Ô6Ð6Ø×'Ò'¨¨7°JÑ?Ô?Ð?ØÔ1ð 4Ø—H’HÐ2Ñ3Ô3Ð3Ø”|Ô)ð a¨dÔ.GÈ!Ò.KÐ.KØ—H’HÐUß$šf TÔ%>ÅÄ×@PÒ@PÐQUÔQXÔQ]Ñ@^Ô@^Ñ_Ô_ñaô að aðað að añ aô að að að að að að að aøøøð að að að að að aøõ ð 	ð 	ð 	ÝŒ|˜HÑ%Ô%Ð1°lÍ"Ì*Ð6TÐ6TÐY`ÐdfÒYfÐYfÝÐLÑMÔMÐMÝÐOÑPÔPÐPÝ”	˜( H­c¬n½ið -Í#Ì(ÐSTÐSUÐSUÌ,ð -Øð-Ý "¤	¡¤ð-ð -ð -ð -ð -ð -ð -ð ð	øøøs8   Ã5J ÄEI9É,J É9I=É=J Ê I=ÊJ ÊBL&Ì$L&Ú	strip_binr2   rn   Úoutnamec                óp  — |                       d|›d�¦  «         t          ¦   «         r |                      |dd|gz   ¦  «        \  }}}n|                      ||gz   ¦  «        \  }}}|dk    rKt          d¦  «         t          d|› d�¦  «         t          d	|› d�¦  «         t	          j        d
¦  «         d S d S )NzStripping target ú.z-Sz-xr   zCould not strip file.
zStdout:
r|   zStderr:
r   )r  r   r   r    rÐ   rÑ   )rT   rU  rn   rV  rÂ   ÚstdoÚstdes          r1   Údo_stripzInstaller.do_strip7  sØ   € Ø�ŠÐ/ UÐ/Ð/Ð/Ñ0Ô0Ð0Ý‰8Œ8ð 	Lð &*§_¢_°YÀ$ÈÈgÐAVÑ5VÑ%WÔ%WÑ"ˆJ˜˜d˜dà%)§_¢_°YÀ'ÀÑ5JÑ%KÔ%KÑ"ˆJ˜˜dØ˜Š?ˆ?ÝÐ+Ñ,Ô,Ð,ÝÐ&˜dÐ&Ð&Ð&Ñ'Ô'Ð'ÝÐ&˜dÐ&Ð&Ð&Ñ'Ô'Ð'ÝŒH�Q‰KŒKˆKˆKˆKð	 ˆ?r0   rÇ   c           	     ó@  — |j         D ]•}|                      |¦  «        sŒd| _        t          |||j        ¦  «        }|                      d|j        › d|› �¦  «         |                     |d¬¦  «         |                      ||j        ||j	        |j
        |¦  «         Œ–d S )NTzInstalling subdir r  rY   )rE  r  râ   rË   Úinstall_pathr  rV   rL   r;  r(  r*  )rT   rk   r,  r%   rÇ   rÞ   r  s          r1   rE  zInstaller.install_subdirsF  s·   € ØÔ"ð 	Tð 	TˆAØ×&Ò& qÑ)Ô)ð ØØ)-ˆDÔ&Ý+¨G°ZÀÄÑPÔPˆLØ�HŠHÐD¨!¬&ÐDÐD°lÐDÐDÑEÔEÐEØ�KŠK˜¨tˆKÑ4Ô4Ð4Ø�OŠO˜A˜qœv |°Q´YÀÄÐPRÑSÔSÐSÐSð	Tð 	Tr0   c                óB  — |j         D ]–}|                      |¦  «        sŒ|j        }t          |||j        ¦  «        }t
          j                             |¦  «        }|                      ||||f¬¦  «        rd| _        |  	                    ||j
        |j        ¦  «         Œ—d S ©N©rL   T)r%  r  rV   rË   r]  rZ   r]   r  râ   r³   r*  r3  )	rT   rk   r,  r%   rÇ   rÞ   ÚfullfilenameÚoutfilenamer  s	            r1   rJ  zInstaller.install_dataP  s­   € Ø”ð 	Hð 	HˆAØ×&Ò& qÑ)Ô)ð ØØœ6ˆLÝ*¨7°JÀÄÑOÔOˆKÝ”W—_’_ [Ñ1Ô1ˆFØ×Ò ¨kÀRÈÀLÐÑQÔQð 2Ø-1�Ô*Ø�MŠM˜+ q¤~°q´ÑGÔGÐGÐGð	Hð 	Hr0   c                ó   — |j         D ]…}|                      |¦  «        sŒt          |||j        ¦  «        }t          |||j        ¦  «        }|                     |d¬¦  «         |                      |j        ||||j        ¦  «        rd| _	        Œ†d S )NTrY   )
Úsymlinksr  rË   r]  rN  rL   r$  r  r  râ   )rT   rk   r,  r%   rÇ   Úsr  Úfull_link_names           r1   rK  zInstaller.install_symlinks[  s�   € Ø”ð 	2ð 	2ˆAØ×&Ò& qÑ)Ô)ð ØÝ+¨G°ZÀÄÑPÔPˆLÝ-¨g°zÀ1Ä6ÑJÔJˆNØ�KŠK˜¨tˆKÑ4Ô4Ð4Ø�Š˜qœx¨¸À,ÐPQÔP_Ñ`Ô`ð 2Ø-1�Ô*øð	2ð 	2r0   c                óB  — |j         D ]–}|                      |¦  «        sŒ|j        }t          |||j        ¦  «        }t
          j                             |¦  «        }|                      ||||f¬¦  «        rd| _        |  	                    ||j
        |j        ¦  «         Œ—d S r_  )Úmanr  rV   rË   r]  rZ   r]   r  râ   r³   r*  r3  )	rT   rk   r,  r%   rÇ   rª   Úfull_source_filenamerb  r  s	            r1   rH  zInstaller.install_mane  s°   € Ø”ð 	Hð 	HˆAØ×&Ò& qÑ)Ô)ð ØØ#$¤6Ð Ý*¨7°JÀÄÑOÔOˆKÝ”W—_’_ [Ñ1Ô1ˆFØ×ÒÐ 4°kÈRÐQWÈLÐÑYÔYð 2Ø-1�Ô*Ø�MŠM˜+ q¤~°q´ÑGÔGÐGÐGð	Hð 	Hr0   c                ó¬  — |j         D ]Ë}|                      |¦  «        sŒd| _        t          |||j        ¦  «        }|                      d|› �¦  «         t          j                             |¦  «        r't          d|› d�¦  «         t          j
        d¦  «         |                     |d¬¦  «         |                      ||j        |j        ¦  «         ŒÌd S )NTzInstalling new directory zTried to create directory r/  r   rY   )Úemptydirr  râ   rË   rV   r  rZ   r  r    rÐ   rÑ   rL   r³   r*  r3  )rT   rk   r,  r%   rÇ   r£   r  s          r1   rI  zInstaller.install_emptydirp  sà   € Ø”ð 
	Ið 
	IˆAØ×&Ò& qÑ)Ô)ð ØØ)-ˆDÔ&Ý+¨G°ZÀÄÑHÔHˆLØ�HŠHÐ?°Ð?Ð?Ñ@Ô@Ð@ÝŒw�~Š~˜lÑ+Ô+ð ÝÐi°<ÐiÐiÐiÑjÔjÐjÝ”˜‘”�Ø�KŠK˜¨tˆKÑ4Ô4Ð4Ø�MŠM˜,¨¬¸¼ÑHÔHÐHÐHð
	Ið 
	Ir0   c                ó‚  — |j         D ]¶}|                      |¦  «        sŒ|j        }t          j                             |¦  «        }t          |||j        ¦  «        }t          j                             ||¦  «        }	|                      ||	||f¬¦  «        rd| _	        |  
                    |	|j        |j        ¦  «         Œ·d S r_  )Úheadersr  rV   rZ   ÚbasenamerË   r]  rÁ   r  râ   r³   r*  r3  )
rT   rk   r,  r%   rÇ   Útra  rn   r  rb  s
             r1   rG  zInstaller.install_headers}  sÄ   € Ø”ð 		Hð 		HˆAØ×&Ò& qÑ)Ô)ð ØØœ6ˆLÝ”G×$Ò$ \Ñ2Ô2ˆEÝ% g¨z¸1¼>ÑJÔJˆFÝœ'Ÿ,š, v¨uÑ5Ô5ˆKØ×Ò ¨kÀRÈÀLÐÑQÔQð 2Ø-1�Ô*Ø�MŠM˜+ q¤~°q´ÑGÔGÐGÐGð		Hð 		Hr0   c                óŽ  — |j         |j        |j        |d                     d„ |j        D ¦   «         ¦  «        dœ}| j        j        rd|d<   |j        D ]ò}|                      |¦  «        sŒd                     |j	        ¦  «        }|j
        r|r|                      d|›�¦  «         ŒTd| _        |                      d|›�¦  «         	 |                      ||¦  «        }n7# t          $ r* t          d	|› d
�¦  «         t!          j        d¦  «         Y nw xY w|dk    r*t          d	|› d|› d�¦  «         t!          j        |¦  «         Œód S )Nú c                ó6   — g | ]}t          j        |¦  «        ‘ŒS r/   )ÚshlexÚquote)r©   Úxs     r1   rß   z0Installer.run_install_script.<locals>.<listcomp>Ž  s    € Ð+VÐ+VÐ+V¸q­E¬K¸©N¬NÐ+VÐ+VÐ+Vr0   )ÚMESON_SOURCE_ROOTÚMESON_BUILD_ROOTÚMESON_INSTALL_PREFIXÚMESON_INSTALL_DESTDIR_PREFIXÚMESONINTROSPECTÚ1ÚMESON_INSTALL_QUIETz6Skipping custom install script because DESTDIR is set TzRunning custom install script zFAILED: install script 'z' could not be run, stoppedé   r   z' exit code z	, stopped)Ú
source_dirrC  rD  rÁ   ÚmesonintrospectrØ   r"   Úinstall_scriptsr  Úcmd_argsÚskip_if_destdirr  râ   r   r”   r    rÐ   rÑ   )rT   rk   r%   rÇ   ÚenvrÞ   rN  Úrcs           r1   rL  zInstaller.run_install_script‰  s’  € Ø$%¤LØ#$¤;Ø'(¤xØ/9Ø"%§(¢(Ð+VÐ+VÀAÔDUÐ+VÑ+VÔ+VÑ"WÔ"Wð	ð ˆð Œ<Ôð 	-Ø),ˆCÐ%Ñ&àÔ"ð 	ð 	ˆAØ×&Ò& qÑ)Ô)ð ØØ—8’8˜AœJÑ'Ô'ˆDØÔ ð  Wð Ø—’ÐZÐRVÐZÐZÑ[Ô[Ð[ØØ)-ˆDÔ&Ø�HŠHÐ>°dÐ>Ð>Ñ?Ô?Ð?ðØ—\’\ ! SÑ)Ô)��øÝð ð ð ÝÐT°$ÐTÐTÐTÑUÔUÐUå”˜‘”���ðøøøð �QŠwˆwÝÐR°$ÐRÐRÀRÐRÐRÐRÑSÔSÐSÝ”˜‘”�øð#	ð 	s   ÃCÃ1DÄDc           	     ó˜  — |j         D �]@}|                      |¦  «        sŒt          j                             |j        ¦  «        s>|j        r|                      d|j        ›d�¦  «         Œct          d|j        ›d�¦  «        ‚d}t          |j        ¦  «        }t          |||j        ¦  «        }t          j                             |t          j                             |¦  «        ¦  «        }	t          j                             |j        |j        t          j                             |¦  «        ¦  «        }
|j        p|j        o| j        j        }|j        }|j        }|j        }t          j                             |¦  «        st          d|›d�¦  «        ‚t          j                             |¦  «        �r6|                      ||	||f¬¦  «        }|r|j        �x|                     d¦  «        rG|                      d                     t          j                             |¦  «        ¦  «        ¦  «         �Œ,|                      |j        ||	¦  «         |                     d¦  «        r…t          j                             |¦  «        d	         d
z   }t          j                             |¦  «        r>t          j                             |	¦  «        d	         d
z   }|                      ||¦  «        }nØt          j                             |¦  «        r§t          j                             |j        |                     d¦  «        ¦  «        }t          j                             |t          j                             |¦  «        ¦  «        }	|                     |d¬¦  «         |                       |||	d ||¦  «         ntC          d|›�¦  «        ‚|rƒd| _"        	 |  #                    |	|j$        ||
|d¬¦  «         n># tJ          $ r1}tM          |j'        tP          ¦  «        r|j'        d	k    rn‚ Y d }~nd }~ww xY w|  )                    |	||j*        ¦  «         �ŒBd S )NzFile z not found, skippingz could not be foundFr`  z.jarzNot stripping jar target: {}z.jsr   z.wasmú/TrY   zUnknown file type for )Úverbose)+Útargetsr  rZ   rV   r^   rn   Úoptionalr  r
   rÕ   rË   r  rÁ   rn  rD  r)   Ú	can_striprØ   Úinstall_rpathÚinstall_name_mappingsr*  r  r  rU  r~   rM  r[  rÎ   r"  rC  ÚrstriprL   r;  ÚRuntimeErrorrâ   rø   Úrpath_dirs_to_removeÚ
SystemExitrp   Úcoder‰   r³   r3  )rT   rk   r,  r%   rÇ   ro  Úfile_copiedrn   r  rV  Ú
final_pathÚshould_stripr‹  rŒ  r*  Úwasm_sourceÚwasm_outputr£   s                     r1   rF  zInstaller.install_targets¦  sý  € Ø”ð 5	Fñ 5	FˆAØ×&Ò& qÑ)Ô)ð ØÝ”7—>’> !¤'Ñ*Ô*ð Qà”:ð QØ—H’HÐD Q¤WÐDÐDÐDÑEÔEÐEØå(Ð)O°´Ð)OÐ)OÐ)OÑPÔPÐPØˆKÝ'¨¬Ñ0Ô0ˆEÝ% g¨z¸1¼8ÑDÔDˆFÝ”g—l’l 6­2¬7×+;Ò+;¸EÑ+BÔ+BÑCÔCˆGÝœŸš a¤h°´½"¼'×:JÒ:JÈ5Ñ:QÔ:QÑRÔRˆJØœ7ÐJ q¤{Ð'I°t´|Ô7IˆLØœOˆMØ$%Ô$;Ð!Øœ>ˆLÝ”7—>’> %Ñ(Ô(ð GÝ$Ð%I¨UÐ%IÐ%IÐ%IÑJÔJÐJÝ”—’ Ñ&Ô&ñ GØ"×.Ò.¨u°gÈÈVÈÐ.ÑUÔU�Øð ? A¤KÐ$;Ø—~’~ fÑ-Ô-ð !ØŸšÐ!?×!FÒ!FÅrÄw×GWÒGWÐX]ÑG^ÔG^Ñ!_Ô!_Ñ`Ô`Ð`Ù Ø—M’M !¤+¨u°gÑ>Ô>Ð>Ø—>’> %Ñ(Ô(ð Qõ #%¤'×"2Ò"2°5Ñ"9Ô"9¸!Ô"<¸wÑ"F�KÝ”w—~’~ kÑ2Ô2ð QÝ&(¤g×&6Ò&6°wÑ&?Ô&?ÀÔ&BÀWÑ&L˜Ø&*×&6Ò&6°{ÀKÑ&PÔ&P˜øÝ”—’˜uÑ%Ô%ð GÝœŸš Q¤[°%·,²,¸sÑ2CÔ2CÑDÔD�Ýœ'Ÿ,š, v­r¬w×/?Ò/?ÀÑ/FÔ/FÑGÔG�Ø—’˜F¨T�Ñ2Ô2Ð2Ø—’  5¨'°4¸ÀrÑJÔJÐJÐJå"Ð#E¸EÐ#EÐ#EÑFÔFÐFØð FØ-1�Ô*ðØ—N’N 7¨AÔ,BÀMÐS]Ø#8À%ð #ñ Iô Ið Ið Iøå!ð ð ð Ý! !¤&­#Ñ.Ô.ð °1´6¸Q²;°;Øàð ˜˜˜˜øøøøðøøøð —’˜g |°Q´_ÑEÔEÐEùðk5	Fð 5	Fs   Ï O.Ï.
P)Ï8'P$Ð$P))rØ   rÙ   rJ   rK   )ræ   rg   rç   rg   r6   r7   )r%   r#   r6   r7   )ræ   rg   rç   rg   r6   rÿ   )ræ   rg   rç   rg   r6   r‰   )rk   r  r6   r   )r	  r#   r6   r7   )r  r#   r  r#   r6   r   rO   )r  r#   r  r#   rL   r  r6   r   )r  r#   r  r#   r%   r#   r  r#   r  r   r6   r   )r%  r	   r&  r#   r'  r#   r(  r)  r*  r+  r,  rI   r6   r7   )r<  r#   r6   r7   )rU  r2   rn   r#   rV  r#   r6   r7   )
rk   r	   r,  rI   r%   r#   rÇ   r#   r6   r7   )rk   r	   r%   r#   rÇ   r#   r6   r7   )#r*   r+   r,   rU   ré   rì   rL   rï   rñ   ró   rö   rø   r�   r—   r¤   r³   rÆ   r   r   r  r  r  r  r$  r;  rT  r[  rE  rJ  rK  rH  rI  rG  rL  rF  r/   r0   r1   r×   r×   #  sÉ  € € € € € ð[ð [ð [ð [ð'ð 'ð 'ð 'ð(ð (ð (ð (ð)ð )ð )ð )ð)ð )ð )ð )ð*ð *ð *ð *ð-ð -ð -ð -ð-ð -ð -ð -ð0ð 0ð 0ð 0ð'ð 'ð 'ð 'ð'ð 'ð 'ð 'ð2ð 2ð 2ð 2ð&ð &ð &ð &ð'ð 'ð 'ð 'ðð ð ð ðð ð ð ð
ð ð ð ðð ð ð ð$ð $ð $ð $ð AEð#ð #ð #ð #ð #ðJð ð ð ð2BIð BIð BIð BIðH+ð +ð +ð +ðZð ð ð ðTð Tð Tð Tð	Hð 	Hð 	Hð 	Hð2ð 2ð 2ð 2ð	Hð 	Hð 	Hð 	HðIð Ið Ið Ið
Hð 
Hð 
Hð 
Hðð ð ð ð:6Fð 6Fð 6Fð 6Fð 6Fð 6Fr0   r×   r$   c                ó,  — t          | ¦  «        dz                       ¦   «         st          d¦  «         dS t          j        ¦   «         }|st          d¦  «         dS t          j        |d| gz   ¦  «        j        }|dk    rt          d| › �¦  «         dS dS )	Nzbuild.ninjazKOnly ninja backend is supported to rebuild the project before installation.Tz%Can't find ninja, can't rebuild test.Fr9   r   zCould not rebuild )r   Úis_filer    r   Údetect_ninjar»   ÚrunrÂ   )r$   ÚninjaÚrets      r1   Úrebuild_allr�  Þ  s¤   € Ý�‰HŒH�}Ñ$×-Ò-Ñ/Ô/ð ÝÐ[Ñ\Ô\Ð\ØˆtåÔ$Ñ&Ô&€EØð ÝÐ5Ñ6Ô6Ð6Øˆuå
Œ.˜ $¨ Ñ+Ñ
,Ô
,Ô
7€CØ
ˆa‚x€xÝÐ' 2Ð'Ð'Ñ(Ô(Ð(Øˆuàˆ4r0   ÚoptsrÙ   c                óò  — d}t           j                             |¦  «        }t           j                             |d¦  «        }t           j                             t           j                             | j        |¦  «        ¦  «        st          j        d¦  «         | j        sUt          j
        | j        ¦  «        }t          |j        ¦  «         t          | j        ¦  «        st          j        d¦  «         t          j        | j        ¦  «         t          t           j                             |d¦  «        dd¬¦  «        5 }t!          | |¦  «        }t#          |d	¦  «         t#          |d
¦  «         | j        rVdd l}t           j                             |d¦  «        }|                     dt+          ¦   «         t-          ¦   «         |¬¦  «         n|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   dS )Nzmeson-private/install.datz../meson-logszAInstall data not found. Run this command in build directory root.éÿÿÿÿzinstall-log.txtÚwzutf-8)Úencodingz"# List of files installed by Mesonz5# Does not contain files installed by custom scripts.r   zprofile-installer.logz"installer.do_install(datafilename))Úfilename)rZ   rV   r]   rÁ   r^   r$   rÐ   rÑ   r   r   Úloadr   Ú
need_vsenvr�  ÚchdirÚopenr×   rj   r!   ÚcProfileÚrunctxÚglobalsÚlocalsrT  )	rž  r<  Úprivate_dirÚlog_dirÚbrJ   Ú	installerr!   rn   s	            r1   rš  rš  ð  sÝ  € Ø.€LÝ”'—/’/ ,Ñ/Ô/€KÝŒg�lŠl˜;¨Ñ8Ô8€GÝŒ7�>Š>�"œ'Ÿ,š, t¤w°Ñ=Ô=Ñ>Ô>ð VÝŒÐTÑUÔUÐUØŒ?ð ÝŒJ�t”wÑÔˆÝ�A”LÑ!Ô!Ð!Ý˜4œ7Ñ#Ô#ð 	ÝŒH�R‰LŒLˆLÝ„HˆTŒWÑÔÐÝ	�bŒg�lŠl˜7Ð$5Ñ6Ô6¸ÀgÐ	NÑ	NÔ	Nð 	/ÐRTÝ˜d BÑ'Ô'ˆ	Ý�bÐ>Ñ?Ô?Ð?Ý�bÐQÑRÔRÐRØŒ<ð 	/Ø&Ð&Ð&Ð&Ý”G—L’L Ð.EÑFÔFˆEØ�NŠNÐ?ÅÁÄÍFÉHÌHÐ_dˆNÑeÔeÐeÐeà× Ò  Ñ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð ˆ1s   Ä=B#G,Ç,G0Ç3G0)r4   r5   r6   r7   )rn   r#   r6   r	   rm   )rV   r#   rs   r   r6   r   )rJ   rK   rz   r#   r6   r7   )NNNT)rV   r#   r€   r�   r‚   r�   rƒ   r„   rs   r   r6   r7   )NT)
rV   r#   r�   r‰   rƒ   r„   rs   r   r6   r7   )rV   r#   r˜   r™   r6   r7   )rV   r#   r�   r¥   r¦   r™   r6   r7   )r6   r7   )r%   r#   rÇ   r#   rV   r#   r6   r#   )rn   r#   r6   r#   )r$   r#   r6   r   )rž  rÙ   r6   r‰   )AÚ
__future__r   r   Úpathlibr   rE   r°   rZ   rs  rŽ   r»   rÐ   ÚtypingÚTrA   r   r   Úbackend.backendsr	   Úmesonlibr
   r   r   r   r   r   r   Úscriptsr   r   Úscripts.meson_exer   Ú__main__r   rQ  ÚImportErrorÚTYPE_CHECKINGr   r   r   r   r   r   r   ÚAttributeErrorÚtyping_extensionsr   r  r3   r.   rG   rI   rr   ry   rj   r�   r—   r¤   r³   rÆ   rË   rÕ   r×   r�  rš  r/   r0   r1   ú<module>r½     sü  ðð #Ð "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø nÐ nÐ nÐ nÐ nÐ nÐ nÐ nÐ nÐ nÐ nÐ nÐ nÐ nÐ nÐ nÐ nÐ nØ +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø &Ð &Ð &Ð &Ð &Ð &ðØ.Ð.Ð.Ð.Ð.Ð.Ð.øØð ð ð ð €I€I€Iðøøøð
 „?ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð #Ð"Ð"Ð"Ð"Ð"ð/Ø#Ð#Ð#Ð#Ð#Ð#Ð#øØð /ð /ð /Ø.Ð.Ð.Ð.Ð.Ð.Ð.Ð.ð/øøøðð ð ð ð �xñ ô ð ðH€ð  "€Ð !Ð !Ð !Ñ !ðpð pð pð pð,#&ð #&ð #&ð #&ð #&ñ #&ô #&ð #&ðLð ð ð ð
Pð Pð Pð Pð Pð
ð ð ð ð :>Ø/3ØFJð!ð !ð !ð !ð !ð8 ?CØ&*ð0ð 0ð 0ð 0ð 0ð_ð _ð _ð _ð2ð 2ð 2ð 2ð<0ð 0ð 0ð 0ð6ð ð ð ðð ð ð ð4yFð yFð yFð yFð yFñ yFô yFð yFðvð ð ð ð$ð ð ð ð ð s$   Á'A. Á.A8Á7A8ÂB ÂB,Â+B,