�&ǐk�@'bJ�h�ۊL'}T� :��'2�Z#$��n�a��� �>a��`��_3d�Qpt�/�P -��#5�,�M��� �pA:©�q�����NW��ډ�A���� �9nʺج���� �TSM��{J6?7��r�@�\����D��� �׶���s�f�TJj?"��D��`?��̒� b�#�%�C*v�$�{�$����5Ծ�F�s��y�e/8��h-�f�̰&(����Gj�L:U� 2�� ����v�_k����Y��gp,�k�WF�R������_C�R��N@���R�@�ߔ?A�w9���F("iNa-S���Q�o�3tDMLh*�#4k�T/iQ��Y*�G��m����)��8�hBm/�I�,g�ﯖ���Z��}�Cz�q@´��d.����L�ŕ�,��1�Z�܌�: ̪���F+J-'��c�tvJ8��]Q-��b��y �6;*J`r_�d ��'�G ~p��)'�C,�%F��E(��2�k�����lР�z�!�=t ��_�0��f7��� ;�p�|�U �%|Sr ) r3 get_outputsgetattrlenr*sepappendr+join) rZhas_anyZ build_cmdZ cmd_optionZ output_dirZ build_filesr prefix_lenZoutputsfilerrr_mutate_outputss  zinstall_lib._mutate_outputscCsrg}|D]d}tjtj|d}|tkr.q|jrJ|tjj |dd|j dkr|tjj ||j dq|S)Nr) optimizationr) r*r+splitextnormcasePYTHON_SOURCE_EXTENSIONr r: importlibutilcache_from_sourcer)rZ py_filenamesZbytecode_filesZpy_fileZextrrr_bytecode_filenamess     zinstall_lib._bytecode_filenamescCsR||jdd|j}|jr*||}ng}||jdd|j}|||S)zReturn the list of files that would be installed if this command were actually run. Not affected by the "dry-run" flag or whether modules have actually been built yet. r'rr()r>r"r#rr rGr))rZ pure_outputsZbytecode_outputsZ ext_outputsrrrr6s    zinstall_lib.get_outputscCsLg}|jr&|d}|||jrH|d}|||S)zGet the list of files that are input to this command, ie. the files that get installed as they are named in the build tree. The files in this list correspond one-to-one to the output filenames returned by 'get_outputs()'. r'r()r"r#r3extendr6r))rZinputsr'r(rrr get_inputss    zinstall_lib.get_inputsN)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optrrr&r!rr$r>rGr6rIrrrrrs*   r) __doc__r*importlib.utilrDr1Zdistutils.corerZdistutils.errorsrrCrrrrrs