403Webshell
Server IP : 178.105.222.151  /  Your IP : 216.73.216.38
Web Server : nginx/1.28.3
System : Linux MNK 7.0.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Wed Apr 22 16:06:43 UTC 2026 x86_64
User : www-data ( 33)
PHP Version : 8.5.4
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /usr/lib/python3/dist-packages/setuptools/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3/dist-packages/setuptools/__pycache__/msvc.cpython-314.pyc
+
�h����va�0t$Rt^RIHt^RIt^RIt^RIt^RIt^RIt^RI	t	^RI
HtHt^RI
Ht^RIt]'d	^RIHtHt]'g"]	P(!4R8Xd^RIt^RIHtM!RR	4t]!4tR
]R&!RR
4t!RR4t!RR4t!RR]4t!RR4tR#)zo
Environment info about Microsoft Compilers.

>>> getfixture('windows_only')
>>> ei = EnvironmentInfo('amd64')
)�annotationsN)�
TYPE_CHECKING�	TypedDict)�unique_everseen)�
LiteralString�NotRequired�Windows)�environc�&�]tRt^ tRtRtRtRtRtR#)�winregN�)	�__name__�
__module__�__qualname__�__firstlineno__�
HKEY_USERS�HKEY_CURRENT_USER�HKEY_LOCAL_MACHINE�HKEY_CLASSES_ROOT�__static_attributes__r��1/usr/lib/python3/dist-packages/setuptools/msvc.pyrr s���
� ��!�� �rrzdict[str, str]r	c��]tRt^)tRt]P!RR4P4tRRlt	]
R4tRtRt
RR	R
lltRRRlltRR
ltRtR#)�PlatformInfozi
Current and Target Architectures information.

Parameters
----------
arch: str
    Target architecture.
�processor_architecture�c��V^8�dQhRR/#���return�Noner)�formats"r�__annotate__�PlatformInfo.__annotate__5s��9�9��9rc	�P�VP4PRR4VnR#)�x64�amd64N)�lower�replace�arch)�selfr)s&&r�__init__�PlatformInfo.__init__5s���J�J�L�(�(���8��	rc
�`�VPVPPR4^,R#)zC
Return Target CPU architecture.

Return
------
str
    Target CPU
�_N)r)�find�r*s&r�
target_cpu�PlatformInfo.target_cpu8s(���y�y�������,�q�0�2�3�3rc
� �VPR8H#)zW
Return True if target CPU is x86 32 bits..

Return
------
bool
    CPU is x86 32 bits
�x86�r1r0s&r�
target_is_x86�PlatformInfo.target_is_x86Ds�����%�'�'rc
� �VPR8H#)zX
Return True if current CPU is x86 32 bits..

Return
------
bool
    CPU is x86 32 bits
r4��current_cpur0s&r�current_is_x86�PlatformInfo.current_is_x86Os�����5�(�(rc��V^8�dQhRR/#�rr�strr)r!s"rr"r#Zs��
�
�s�
rc
��VPR8XdV'dR#VPR8XdV'dR#RVP2#)u
Current platform specific subfolder.

Parameters
----------
hidex86: bool
    return '' and not '†' if architecture is x86.
x64: bool
    return 'd' and not 'md64' if architecture is amd64.

Return
------
str
    subfolder: '        arget', or '' (see hidex86 parameter)
r4rr&�\x64�\r9�r*�hidex86r%s&&&r�current_dir�PlatformInfo.current_dirZsR��$� � �E�)�g�
�	
�� � �G�+���	
�
�d�&�&�'�(�	
rc��V^8�dQhRR/#r>r)r!s"rr"r#rs��
�
�c�
rc
��VPR8XdV'dR#VPR8XdV'dR#RVP2#)a
Target platform specific subfolder.

Parameters
----------
hidex86: bool
    return '' and not '\x86' if architecture is x86.
x64: bool
    return '\x64' and not '\amd64' if architecture is amd64.

Return
------
str
    subfolder: '\current', or '' (see hidex86 parameter)
r4rr&rArBr5rCs&&&r�
target_dir�PlatformInfo.target_dirrsL��$���5�(�W�
�	
����7�*�s��	
�
�d�o�o�&�'�	
rc
��V'dRMVPpVPV8XdR#VP4PRRVR24#)a
Cross platform specific subfolder.

Parameters
----------
forcex86: bool
    Use 'x86' as current architecture even if current architecture is
    not x86.

Return
------
str
    subfolder: '' if target architecture is current architecture,
    '\current_target' if not.
r4rrBr.)r:r1rIr()r*�forcex86�currents&& r�	cross_dir�PlatformInfo.cross_dir�sQ�� $�%��)9�)9�����'�)�
�	
����"�*�*�4�2�g�Y�a��A�	
r)r)N)FF�F)r
rrr�__doc__r	�getr'r:r+�propertyr1r6r;rErIrNrrrrrr)sZ����+�+�6��;�A�A�C�K�9��	4��	4�	(�	)�
�0
�0
�
rrc�:�]tRt^�tRt]P]P]P]P3t
RRlt]RRl4t
]R4t]R4t]R4t]R	R
l4t]RRl4t]R
4t]R4t]RRl4tRRltRtRtR#)�RegistryInfoz�
Microsoft Visual Studio related registry information.

Parameters
----------
platform_info: PlatformInfo
    "PlatformInfo" instance.
c��V^8�dQhRR/#rr)r!s"rr"�RegistryInfo.__annotate__�s�� � �� rc	��WnR#�N��pi)r*�
platform_infos&&rr+�RegistryInfo.__init__�s���rc��V^8�dQhRR/#r>r)r!s"rr"rW�s��	�	�c�	rc
��R#)zP
Microsoft Visual Studio root registry key.

Return
------
str
    Registry key
�VisualStudiorr0s&r�visualstudio�RegistryInfo.visualstudio�s��rc
�V�\PPVPR4#)zO
Microsoft Visual Studio SxS registry key.

Return
------
str
    Registry key
�SxS)�os�path�joinrar0s&r�sxs�RegistryInfo.sxs�s���w�w�|�|�D�-�-�u�5�5rc
�V�\PPVPR4#)zL
Microsoft Visual C++ VC7 registry key.

Return
------
str
    Registry key
�VC7�rerfrgrhr0s&r�vc�RegistryInfo.vc�����w�w�|�|�D�H�H�e�,�,rc
�V�\PPVPR4#)zO
Microsoft Visual Studio VS7 registry key.

Return
------
str
    Registry key
�VS7rlr0s&r�vs�RegistryInfo.vs�rorc��V^8�dQhRR/#r>r)r!s"rr"rW�s��	%�	%�s�	%rc
��R#)zS
Microsoft Visual C++ for Python registry key.

Return
------
str
    Registry key
zDevDiv\VCForPythonrr0s&r�
vc_for_python�RegistryInfo.vc_for_python�s��%rc��V^8�dQhRR/#r>r)r!s"rr"rW�s��	 �	 �s�	 rc
��R#)zA
Microsoft SDK registry key.

Return
------
str
    Registry key
zMicrosoft SDKsrr0s&r�
microsoft_sdk�RegistryInfo.microsoft_sdk�s�� rc
�V�\PPVPR4#)zR
Microsoft Windows/Platform SDK registry key.

Return
------
str
    Registry key
r�rerfrgrzr0s&r�windows_sdk�RegistryInfo.windows_sdk�s���w�w�|�|�D�.�.�	�:�:rc
�V�\PPVPR4#)zP
Microsoft .NET Framework SDK registry key.

Return
------
str
    Registry key
�NETFXSDKr}r0s&r�	netfx_sdk�RegistryInfo.netfx_sdk
s���w�w�|�|�D�.�.�
�;�;rc��V^8�dQhRR/#r>r)r!s"rr"rWs��	/�	/�C�	/rc
��R#)zP
Microsoft Windows Kits Roots registry key.

Return
------
str
    Registry key
zWindows Kits\Installed Rootsrr0s&r�windows_kits_roots�RegistryInfo.windows_kits_rootss��/rc
��VPP4'g	V'dRMRp\PP	RVRV4#)z�
Return key in Microsoft software registry.

Parameters
----------
key: str
    Registry key path where look.
x86: str
    Force x86 software registry.

Return
------
str
    Registry key
r�Wow6432Node�Software�	Microsoft)r[r;rerfrg)r*�keyr4�node64s&&& r�	microsoft�RegistryInfo.microsoft"s8�� �w�w�-�-�/�/�3��M���w�w�|�|�J���S�A�Arc	
�V�\Pp\Pp\PpVPpVP
FGpRpV!Wv!V4^V4p\P!Y�4^,T'dT!T4u#u#	R# \dLTPP4'g(T!Yv!TR4^T4pLv \dK�i;iK�i;i \dMi;iT'dT!T4K�K� T'd
T!T4ii;i)z�
Look for values in registry in Microsoft software registry.

Parameters
----------
key: str
    Registry key path where look.
name: str
    Value name to find.

Return
------
str
    value
NT)
r�KEY_READ�OpenKey�CloseKeyr��HKEYS�OSErrorr[r;�QueryValueEx)	r*r��name�key_read�openkey�closekey�ms�hkey�bkeys	&&&      r�lookup�RegistryInfo.lookup5s
�� �?�?���.�.���?�?��
�^�^���J�J�D��D�	
��t�R��W�a��:��
#��*�*�4�6�q�9���T�N��#�&���
��w�w�-�-�/�/�!�&�t�R��T�]�A�x�H���"�!� �!���
���
��
�����T�N���4��T�N��sT�B� C/�*C,�C�C%� C,�$C%�%C,�+C,�/C=�:D�<C=�=D�D(rZNrP)r
rrrrQrrrrrr�r+rSrarhrmrrrvrzr~r�r�r�r�rrrrrUrU�s����	���� � ��!�!�� � �	
�E� ��	��	��	6��	6��	-��	-��	-��	-��	%��	%��	 ��	 ��	;��	;��	<��	<��	/��	/�B�&'rrUc��]tRtRtRt]P!RR4t]P!RR4t]P!R]4t	R(RR	llt
R
tRtRR
lt
]R4t]R4t]R4tRtRt]RRl4t]R4t]RRl4t]R4t]R4t]R4t]R4t]R4t]R4t]R4t]R4t]R R!l4t ]R"R#l4t!R$R%lt"]R)R&l4t#R't$R#)*�
SystemInfoi_z�
Microsoft Windows and Visual Studio related system information.

Parameters
----------
registry_info: RegistryInfo
    "RegistryInfo" instance.
vc_ver: float
    Required Microsoft Visual C++ version.
�WinDirr�ProgramFileszProgramFiles(x86)Nc��V^8�dQhRR/#rr)r!s"rr"�SystemInfo.__annotate__qs��S�S�d�Src	��WnVPPVnVP4VnT;'gVP	4;VnVnR#rY)�rir[�find_programdata_vs_vers�known_vs_paths�_find_latest_available_vs_ver�vs_ver�vc_ver)r*�
registry_infor�s&&&rr+�SystemInfo.__init__qsH�����'�'�*�*���"�;�;�=���%+�$R�$R�d�.P�.P�.R�R���d�krc
��VP4pV'g2VP'g \PP	R4h\V4pVP
VP4\V4R,#)z=
Find the latest VC version

Return
------
float
    version
z%No Microsoft Visual C++ version found���)�find_reg_vs_versr��	distutils�errors�DistutilsPlatformError�set�update�sorted)r*�reg_vc_vers�vc_verss&  rr��(SystemInfo._find_latest_available_vs_verzsi���+�+�-���t�2�2�2��"�"�9�9�7��
��k�"�����t�*�*�+��g��r�"�"rc
�d�VPPpVPPVPPVPP3p.p\
P!VPPV4EFLwrE\P!WA!V4^\P4pT;_uu_4\P!T4wrxp	\T4Fkp
\P!\ 4;_uu_4\#\P$!Yj4^,4pY�9dTP'T4RRR4Km	\T4Fdp
\P!\ 4;_uu_4\#\P(!Yj44pY�9dTP'T4RRR4Kf	RRR4EKO	\+V4# \dEKki;i +'giEK;i +'giK�;i +'giEK�;i)zh
Find Microsoft Visual Studio versions available in registry.

Return
------
list of float
    Versions
N)r�r�rmrvrr�	itertools�productr�rr�r�r��QueryInfoKey�range�
contextlib�suppress�
ValueError�float�	EnumValue�append�EnumKeyr�)r*r��vckeys�vs_versr�r�r��subkeys�valuesr.�i�vers&           rr��SystemInfo.find_reg_vs_vers�s����W�W�
�
���'�'�*�*�d�g�g�3�3�T�W�W�Z�Z�@����"�*�*�4�7�7�=�=�&�A�I�D�
��~�~�d�B�s�G�Q����H����%+�%8�%8��%>�"����v��A�#�,�,�Z�8�8�#�F�$4�$4�T�$=�a�$@�A���-�#�N�N�3�/�9�8�'�
�w��A�#�,�,�Z�8�8�#�F�N�N�4�$;�<���-�#�N�N�3�/�9�8�(���B�"�g�����
��
��
9�8�8��
9�8�8�����sO�,G!�A
H�>G4
�
<H�7H	
�=H�!G1�0G1�4H�?
H�	H�	H�H/c��V^8�dQhRR/#)rrzdict[float, str]r)r!s"rr"r��s��(�(�*:�(rc
�$�/pRp\P!V4pTF�p\PP	Y$R4p\TRRR7;_uu_4p\P!T4pRRR4XR,p\P!\PP	TR44TYPTR	,4&K�	T# \dTu#i;i +'giL�;i \\3dK�i;i)
z�
Find Visual studio 2017+ versions from information in
"C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances".

Return
------
dict
    float version as key, path as value.
z9C:\ProgramData\Microsoft\VisualStudio\Packages\_Instancesz
state.json�rtzutf-8)�encodingN�installationPath�
VC\Tools\MSVC�installationVersion)
re�listdirr�rfrg�open�json�load�_as_float_version�KeyError)	r*�vs_versions�
instances_dir�hashed_namesr��
state_path�
state_file�state�vs_paths	&        rr��#SystemInfo.find_programdata_vs_vers�s���)+��T�
�	��:�:�m�4�L�!�D�
��W�W�\�\�-�|�L�
��*�d�W�=�=�� �I�I�j�1�E�>�� 2�3���
�
�2�7�7�<�<��1A�B�C���2�2�5�9N�3O�P�Q�!�(���1�	���	��>�=���X�&�
��
�s;�C�6C:�C'�/AC:�
C$�#C$�'C7�2C:�:D�Dc
�b�\RPVPR4R,44#)z�
Return a string version as a simplified float version (major.minor)

Parameters
----------
version: str
    Version.

Return
------
float
    version
�.�NrN)r�rg�split)�versions&rr��SystemInfo._as_float_version�s&���S�X�X�g�m�m�C�0��4�5�6�6rc
��\PPVPRVPR
24pVP
P
VP
PVPR
4;'gT#)z@
Microsoft Visual Studio directory.

Return
------
str
    path
�Microsoft Visual Studio �0.1f)rerfrg�ProgramFilesx86r�r�r�rr)r*�defaults& r�VSInstallDir�SystemInfo.VSInstallDir�s`���'�'�,�,�� � �$<�T�[�[��<N�"O�
��
�w�w�~�~�d�g�g�j�j�T�[�[��,>�@�K�K�G�Krc
���VP4;'gVP4p\PP	V4'g"Rp\
PPV4hV#)z=
Microsoft Visual C++ directory.

Return
------
str
    path
z(Microsoft Visual C++ directory not found)�	_guess_vc�_guess_vc_legacyrerf�isdirr�r�r�)r*rf�msgs&  r�VCInstallDir�SystemInfo.VCInstallDir�sU���~�~��:�:�4�#8�#8�#:���w�w�}�}�T�"�"�<�C��"�"�9�9�#�>�>��rc
��VPR8:dR#VPVP,p\P
P
VR4p\P!V4R,pVPV4Vn	\P
P
W#4# \dTPpL�i;i \\3dR#i;i)z<
Locate Visual C++ for VS2017+.

Return
------
str
    path
�,@rr�r�)r�r�r�r�rerfrgr�r�r�r��
IndexError)r*�vs_dir�guess_vcr�s&   rr��SystemInfo._guess_vcs����;�;�$���	'��(�(����5�F�
�7�7�<�<��(8�9��	��Z�Z��)�"�-�F��0�0��8�D�K��7�7�<�<��1�1���	'��&�&�F�	'����$�	��	�s$�B%�AC�%B?�>B?�C�Cc
��\PPVPRVPR
R24p\PPVP
PVPR
4pVP
PVR4pV'd!\PPVR4MTpVP
PVP
PVPR
4;'gT#)zK
Locate Visual C++ for versions prior to 2017.

Return
------
str
    path
r�r�z\VC�
installdir�VC)	rerfrgr�r�r�rvr�rm)r*r��reg_path�	python_vc�
default_vcs&    rr��SystemInfo._guess_vc_legacy*s����'�'�,�,�� � �'����D�'9��=�
���7�7�<�<���� 5� 5�$�+�+�d�9K�M���G�G�N�N�8�\�:�	�6?�R�W�W�\�\�)�T�2�W�
��w�w�~�~�d�g�g�j�j�T�[�[��,>�@�N�N�J�Nrc��V^8�dQhRR/#)rrztuple[LiteralString, ...]r)r!s"rr"r�As����#<�rc
���VPR8:dR#VPR8XdR#VPR8XdR#VPR8XdR	#VPR8�dR
#R#)zg
Microsoft Windows SDK versions for specified MSVC++ version.

Return
------
tuple of str
    versions
�"@�$@�&@�(@r�)z7.0z6.1z6.0a)z7.1z7.0a)z8.0z8.0a)�8.1z8.1a)z10.0r
r�r�r0s&r�WindowsSdkVersion�SystemInfo.WindowsSdkVersion@sc���;�;�#��'�'�
�[�[�D�
 � � �
�[�[�D�
 � � �
�[�[�D�
 � � �
�[�[�D�
 � � ��	rc
�t�VP\PPVPR44#)zD
Microsoft Windows SDK last version.

Return
------
str
    version
�lib)�_use_last_dir_namererfrg�
WindowsSdkDirr0s&r�WindowsSdkLastVersion� SystemInfo.WindowsSdkLastVersionVs*���&�&�r�w�w�|�|�D�4F�4F��'N�O�Orc��V^8�dQhRR/#�rrz
str | Noner)r!s"rr"r�cs��(�(�z�(rc
�8�RpVPF`p\PPVPP
RV24pVPP
VR4pV'gK`M	V'd&\PPV4'g�\PPVPPVPR
4pVPP
VR4pV'd!\PPVR4pV'd&\PPV4'g�VPFopVRVPR4pR	V2p\PPVPV4p\PPV4'gKmTpKq	V'd&\PPV4'glVPF[pR
V2p\PPVPV4p\PPV4'gKYTpK]	V'g+\PPVPR4pV#)z>
Microsoft Windows SDK directory.

Return
------
str
    path
r�v�installationfolderr�r��WinSDKNr�zMicrosoft SDKs\Windows Kits\zMicrosoft SDKs\Windows\v�PlatformSDK)
rrerfrgr�r~r�r�rvr��rfindr�r�)r*�sdkdirr��locrf�install_base�intver�ds&       rr�SystemInfo.WindowsSdkDirbs��� ���)�)�C��'�'�,�,�t�w�w�2�2�a��u�I�>�C��W�W�^�^�C�)=�>�F��v��*��R�W�W�]�]�6�2�2��7�7�<�<���� 5� 5�$�+�+�d�9K�M�D��7�7�>�>�$��=�L�������l�H�=���R�W�W�]�]�6�2�2��-�-���-�s�y�y��~�.��6�v�h�?���G�G�L�L��!2�!2�D�9���7�7�=�=��#�#��F�.��R�W�W�]�]�6�2�2��-�-��2�3�%�8���G�G�L�L��!2�!2�D�9���7�7�=�=��#�#��F�	.�
��W�W�\�\�$�"3�"3�]�C�F��
rc
��VPR8:d^#pRpMD^(pVPR8:dRMRpVPPRVR7PRR4pR	VR
V2p.pVPR8�dPVPF?pV\
PPVPPWd4.,
pKA	VPFDpV\
PPVPPRVR
2V4.,
pKF	VF+pVPPVR4pV'gK)Vu#	R#)zI
Microsoft Windows SDK executable directory.

Return
------
str
    path
rrr	TF)r%rDrB�-zWinSDK-NetFx�Toolsr�r�ArN)
r�r[rEr(�NetFxSdkVersionrerfrgr�r�rr~r�)	r*�netfxverr)rD�fx�regpathsr�rf�execpaths	&        r�WindowsSDKExecutablePath�#SystemInfo.WindowsSDKExecutablePath�s%���;�;�$���H��D��H�"�k�k�T�1�d�u�G��7�7�&�&�4��&�A�I�I�$�PS�T�D��H�:�U�4�&�
1�����;�;�$���+�+���R�W�W�\�\�$�'�'�*;�*;�S�E�F�F��,��)�)�C�������d�g�g�&9�&9�Q�s�e�1�:�r�J�K�K�H�*��D��w�w�~�~�d�,@�A�H��x����
rc
���\PPVPPVP
R
R24pVPP
VR4;'gR#)z<
Microsoft Visual F# directory.

Return
------
str
    path
r�z	\Setup\F#�
productdirr)rerfrgr�rar�r�)r*rfs& r�FSharpInstallDir�SystemInfo.FSharpInstallDir�sM���w�w�|�|�D�G�G�0�0�d�k�k�$�5G�y�2Q�R���w�w�~�~�d�L�1�7�7�R�7rc
���VPR8�dRMRpVFLpVPPVPPRV24pV'gK@T;'gRu#	R#)zD
Microsoft Universal CRT SDK directory.

Return
------
str
    path
r��kitsrootrN)�10�81r)r�r�r�r�)r*�versr�rs&   r�UniversalCRTSdkDir�SystemInfo.UniversalCRTSdkDir�s]�� $�{�{�d�2�|����C��W�W�^�^�D�G�G�$>�$>�(�3�%�@P�Q�F��v��|�|��#��
rc
�t�VP\PPVPR44#)zP
Microsoft Universal C Runtime SDK last version.

Return
------
str
    version
r)rrerfrgr6r0s&r�UniversalCRTSdkLastVersion�%SystemInfo.UniversalCRTSdkLastVersion�s*���&�&�r�w�w�|�|�D�4K�4K�U�'S�T�Trc
�,�VPR8�dR#R#)zQ
Microsoft .NET Framework SDK versions.

Return
------
tuple of str
    versions
r�)	z4.7.2z4.7.1z4.7z4.6.2z4.6.1z4.6z4.5.2z4.5.1z4.5rrr0s&rr&�SystemInfo.NetFxSdkVersion�s%���{�{�d�"�
X�	
��	
rc
���RpVPF^p\PPVPP
V4pVPP
VR4pV'gK]V#	V#)zE
Microsoft .NET Framework SDK directory.

Return
------
str
    path
r�kitsinstallationfolder)r&rerfrgr�r�r�)r*rr�rs&   r�NetFxSdkDir�SystemInfo.NetFxSdkDir�s`�����'�'�C��'�'�,�,�t�w�w�0�0�#�6�C��W�W�^�^�C�)A�B�F��v���
�(�
�
rc
���\PPVPR4pVPPVPPR4;'gT#)zG
Microsoft .NET Framework 32bit directory.

Return
------
str
    path
zMicrosoft.NET\Framework�frameworkdir32�rerfrgr�r�r�rm�r*�guess_fws& r�FrameworkDir32�SystemInfo.FrameworkDir32sE���7�7�<�<����-G�H���w�w�~�~�d�g�g�j�j�*:�;�G�G�x�Grc
���\PPVPR4pVPPVPPR4;'gT#)zG
Microsoft .NET Framework 64bit directory.

Return
------
str
    path
zMicrosoft.NET\Framework64�frameworkdir64rCrDs& r�FrameworkDir64�SystemInfo.FrameworkDir64sE���7�7�<�<����-I�J���w�w�~�~�d�g�g�j�j�*:�;�G�G�x�Grc��V^8�dQhRR/#�rrztuple[str, ...]r)r!s"rr"r�$���	/�	/�O�	/rc
�$�VP^ 4#)zS
Microsoft .NET Framework 32bit versions.

Return
------
tuple of str
    versions
��_find_dot_net_versionsr0s&r�FrameworkVersion32�SystemInfo.FrameworkVersion32#����*�*�2�.�.rc��V^8�dQhRR/#rMr)r!s"rr"r�0rNrc
�$�VP^@4#)zS
Microsoft .NET Framework 64bit versions.

Return
------
tuple of str
    versions
rPr0s&r�FrameworkVersion64�SystemInfo.FrameworkVersion64/rTrc��V^8�dQhRR/#rMr)r!s"rr"r�;s����o�rc
��VPPVPPRV24p\VRV24pT;'gVP	VR4;'gRpVP
R8�dVR3#VP
R8�d#VP
4R,R	8wdR
#TR
3#VP
R8XdR#VP
R8XdR#R#)z�
Find Microsoft .NET Framework versions.

Parameters
----------
bits: int
    Platform number of bits: 32 or 64.

Return
------
tuple of str
    versions
�frameworkver�FrameworkDirrrr	zv4.0rr��v4�v3.5rg @)z
v4.0.30319r^)r^�
v2.0.50727)zv3.0r_r)r�r�rm�getattrrr�r')r*�bits�reg_ver�dot_net_dirr�s&&   rrQ�!SystemInfo._find_dot_net_versions;s����'�'�.�.������|�D�6�-B�C���d�l�4�&�$9�:���H�H��0�0��c�B�H�H�b���;�;�$����;��
�[�[�D�
 �#&�9�9�;�r�?�d�#:�K�K��V�K�K�
�[�[�C�
�'�'�
�[�[�C�
�'�'��	rc
�aa�VV3Rl\\P!S444p\VR4;'gR#)z�
Return name of the last dir in path or '' if no dir found.

Parameters
----------
path: str
    Use dirs in this path
prefix: str
    Use only dirs starting by this prefix

Return
------
str
    name
c3��<"�TFep\PP\PPSV44'gKHVP	S4'gKaVx�Kg	R#5irY)rerfr�rg�
startswith)�.0�dir_namerf�prefixs& ��r�	<genexpr>�0SystemInfo._use_last_dir_name.<locals>.<genexpr>jsN����
�6���w�w�}�}�R�W�W�\�\�$��9�:�
��#�#�F�+�
�H�6�s�AA0�
A0�&
A0Nr)�reversedrer��next)rfrj�
matching_dirssff rr�SystemInfo._use_last_dir_nameYs7���"
�$�R�Z�Z��%5�6�
�
��M�4�(�.�.�B�.r)r�r[r�r�r�rY)r)%r
rrrrQr	rRr�r�r�r+r�r�r��staticmethodr�rSr�r�r�r�rrrr+r/r6r9r&r?rFrJrRrWrQrrrrrr�r�_s���	��[�[��2�
&�F��;�;�~�r�2�L��k�k�"5�|�D�O�S�#�(�>(�T�7��7� �L��L�"����"�<O�,����*�	P��	P��(��(�T�"��"�H�
8��
8�����(�	U��	U��
��
� ����"�
H��
H��
H��
H��	/��	/��	/��	/��<�/��/rr�c�J�]tRtRt$R]R&R]R&R]R&R]R&R]R&R	tR
#)�_EnvironmentDictisr?�includer�libpathrfzNotRequired[str | None]�py_vcruntime_redistrN)r
rrr�__annotations__rrrrrsrsss��
�L�	�H�
�L�

�I�0�0rrsc���]tRtRtRtR$RRllt]R4t]R4t]R4t	]R	4t
]R
4t]R4t]R4t
]R
4t]R4t]R4t]R4tRt]R4t]R4t]R4t]R4t]R4t]R4t]R4t]R4t]R4t]R4t]R4t]R4t]RRl4tR%R R!llt R"t!R#t"R#)&�EnvironmentInfoi{a
Return environment variables for specified Microsoft Visual C++ version
and platform : Lib, Include, Path and libpath.

This function is compatible with Microsoft Visual C++ 9.0 to 14.X.

Script created by analysing Microsoft environment configuration files like
"vcvars[...].bat", "SetEnv.Cmd", "vcbuildtools.bat", ...

Parameters
----------
arch: str
    Target architecture.
vc_ver: float
    Required Microsoft Visual C++ version. If not set, autodetect the last
    version.
vc_min_ver: float
    Minimum Microsoft Visual C++ version.
Nc��V^8�dQhRR/#rr)r!s"rr"�EnvironmentInfo.__annotate__�s��?�?�4�?rc	���\V4Vn\VP4Vn\	VPV4VnVPV8d"Rp\PPV4hR#)z.No suitable Microsoft Visual C++ version foundN)
rr[rUr�r��sir�r�r�r�)r*r)r��
vc_min_ver�errs&&&& rr+�EnvironmentInfo.__init__�s]���t�$����t�w�w�'����T�W�W�f�-����;�;��#�B�C��"�"�9�9�#�>�>�$rc
�.�VPP#)z;
Microsoft Visual Studio.

Return
------
float
    version
)r}r�r0s&rr��EnvironmentInfo.vs_ver�����w�w�~�~�rc
�.�VPP#)z@
Microsoft Visual C++ version.

Return
------
float
    version
)r}r�r0s&rr��EnvironmentInfo.vc_ver�r�rc
�:�RR.pVPR8�d?VPPRRR7pVR.,
pVR.,
pVRV2.,
pVUu.uF7p\PPVPPV4NK9	up#uupi)zE
Microsoft Visual Studio Tools.

Return
------
list of str
    paths
zCommon7\IDEz
Common7\Toolsr�T�rDr%z1Common7\IDE\CommonExtensions\Microsoft\TestWindowzTeam Tools\Performance Tools)r�r[rErerfrgr}r�)r*�paths�arch_subdirrfs&   r�VSTools�EnvironmentInfo.VSTools�s��� �!1�2���;�;�$���'�'�-�-�d��-�E�K��J�K�K�E��5�6�6�E��5�k�]�C�D�D�E�EJ�K�U�T������T�W�W�1�1�4�8�U�K�K��Ks�=Bc
���\PPVPPR4\PPVPPR4.#)zb
Microsoft Visual C++ & Microsoft Foundation Class Includes.

Return
------
list of str
    paths
�IncludezATLMFC\Include)rerfrgr}r�r0s&r�
VCIncludes�EnvironmentInfo.VCIncludes�sG��
�G�G�L�L����-�-�y�9��G�G�L�L����-�-�/@�A�
�	
rc
�x�VPR8�dVPPRR7pMVPPRR7pRV2RV2.pVPR8�dVRV2.,
pVUu.uF7p\PPVPPV4NK9	up#uupi)	zc
Microsoft Visual C++ & Microsoft Foundation Class Libraries.

Return
------
list of str
    paths
�.@T�r%�rD�Libz
ATLMFC\Libr�z	Lib\store)r�r[rIrerfrgr}r�)r*r�r�rfs&   r�VCLibraries�EnvironmentInfo.VCLibraries�s����;�;�$���'�'�,�,��,�6�K��'�'�,�,�T�,�:�K��{�m�$��K�=�&A�B���;�;�$����;�-�0�1�1�E�EJ�K�U�T������T�W�W�1�1�4�8�U�K�K��Ks�7=B7c
��VPR8d.#\PPVPP
R4.#)zW
Microsoft Visual C++ store references Libraries.

Return
------
list of str
    paths
r�zLib\store\references)r�rerfrgr}r�r0s&r�VCStoreRefs�EnvironmentInfo.VCStoreRefs�s8���;�;����I������T�W�W�1�1�3J�K�L�Lrc	
��VPp\PPVPR4.pVP
R8:dRMRpVPPV4pV'd6V\PPVPRV24.,
pVP
R8XdTRVPPRR72pV\PPVPV4.,
pV#VP
R8�Ed.VPPPR	R
4P4p\PPRRVR
24pV\PPVPWpPPRR7,4.,
pVPPVPP8wdSV\PPVPWpPPRR7,4.,
pV#V\PPVPR4.,
pV#)ak
Microsoft Visual C++ Tools.

Return
------
list of str
    paths

When host CPU is ARM, the tools should be found for ARM.

>>> getfixture('windows_only')
>>> mp = getfixture('monkeypatch')
>>> mp.setattr(PlatformInfo, 'current_cpu', 'arm64')
>>> ei = EnvironmentInfo(arch='irrelevant')
>>> paths = ei.VCTools
>>> any('HostARM64' in path for path in paths)
True
�
VCPackagesrTF�Binr�r�r�r&r%�bin�Hostz%sr�)r}rerfrgr�r�r[rNrEr:r(�upperrIr1)r*r}�toolsrLr�rf�host_id�host_dirs&       r�VCTools�EnvironmentInfo.VCTools�s���(�W�W�������b�o�o�|�<�=���;�;�$�.�4�E���g�g�'�'��1����b�g�g�l�l�2�?�?�c�+��4G�H�I�I�E��;�;�$������,�,�T�,�:�;�<�D��b�g�g�l�l�2�?�?�D�9�:�:�E�&��#�[�[�D�
 ��g�g�)�)�1�1�'�5�A�G�G�I�G��w�w�|�|�E�T�'��"�+=�>�H�������R�_�_�h���9K�9K�PT�9K�9U�.U�V��
�E��w�w�"�"�d�g�g�&8�&8�8���G�G�L�L�����G�G�4G�4G�D�4G�4Q�)Q�������
�b�g�g�l�l�2�?�?�E�:�;�;�E��rc
���VPR8:dVVPPRRR7p\PPVPPRV24.#VPPRR7p\PPVPPR4pVPp\PPW#RV24.#)zG
Microsoft Windows SDK Libraries.

Return
------
list of str
    paths
rTr�r�r�r�um)	r�r[rIrerfrgr}r�_sdk_subdir)r*r�r�libvers&   r�OSLibraries�EnvironmentInfo.OSLibraries-s����;�;�$���'�'�,�,�T�t�,�D�K��G�G�L�L����!6�!6�#�k�]�8K�L�M�M��'�'�,�,��,�6�K��'�'�,�,�t�w�w�4�4�e�<�C��%�%�F��G�G�L�L����;�-�&@�A�B�Brc
���\PPVPPR4pVP
R8:d#V\PPVR4.#VP
R8�dVPpMRp\PPWR24\PPWR24\PPWR24.#)	zE
Microsoft Windows SDK Include.

Return
------
list of str
    paths
rtr�glr�r�sharedr��winrt)rerfrgr}rr�r�)r*rt�sdkvers&  r�
OSIncludes�EnvironmentInfo.OSIncludesAs����'�'�,�,�t�w�w�4�4�i�@���;�;�$���R�W�W�\�\�'�4�8�9�9��{�{�d�"��)�)���������W���&7�8������W���m�4������W���&6�7��
rc
��\PPVPPR4p.pVP
R8:dW P,
pVP
R8�d)V\PPVR4.,
pVP
R8�d�VV\PPVPPR4\PPVRR4\PPVR	R4\PPVR
R4\PPVPPRRVP
R

RRR4.,
pV#)zM
Microsoft Windows SDK Libraries Paths.

Return
------
list of str
    paths
�
ReferencesrrzCommonConfiguration\Neutralr��
UnionMetadataz'Windows.Foundation.UniversalApiContractz1.0.0.0z%Windows.Foundation.FoundationContractz,Windows.Networking.Connectivity.WwanContract�
ExtensionSDKszMicrosoft.VCLibsr��CommonConfiguration�neutral)rerfrgr}rr�r�)r*�refrus&  r�	OSLibpath�EnvironmentInfo.OSLibpath[s'���g�g�l�l�4�7�7�0�0�,�?�����;�;�#���'�'�'�G��;�;�$��������S�*H�I�J�J�G��;�;�$���������T�W�W�2�2�O�D������S�"K�Y�W������S�"I�9�U�������G���������G�G�)�)�#�&��{�{�4�(� �)����
�G�$�rc
�4�\VP44#)zC
Microsoft Windows SDK Tools.

Return
------
list of str
    paths
)�list�
_sdk_toolsr0s&r�SdkTools�EnvironmentInfo.SdkTools�s���D�O�O�%�&�&rc#
�r"�VPR8dLVPR8:dRMRp\PPVPP
V4x�VPP4'gXVPPRR7pRV2p\PPVPP
V4x�VPR9d}VPP4'dRpMVPPRRR7pR	V2p\PPVPP
V4x�M�VPR8�d�\PPVPP
R4pVPPRR7pVPPp\PPW4V24x�VPP'dVPPx�R
#R
#5i)zX
Microsoft Windows SDK Tools paths generator.

Return
------
generator of str
    paths
r�rr�zBin\x86Tr�rr�zBin\NETFX 4.0 ToolsN)rr)r�rerfrgr}rr[r;rEr6rr+)r*�bin_dirr�rfr�s&    rr��EnvironmentInfo._sdk_tools�s�����;�;���#�{�{�d�2�e�
�G��'�'�,�,�t�w�w�4�4�g�>�>��w�w�%�%�'�'��'�'�-�-�$�-�7�K���
�&�D��'�'�,�,�t�w�w�4�4�d�;�;��;�;�,�&��w�w�$�$�&�&� ��"�g�g�1�1�$�D�1�I��)�+��7�D��'�'�,�,�t�w�w�4�4�d�;�;�
�[�[�D�
 ��7�7�<�<���� 5� 5�u�=�D��'�'�-�-�$�-�7�K��W�W�2�2�F��'�'�,�,�t�x��}�%=�>�>��7�7�+�+�+��'�'�2�2�2�,�s�A<H7�?BH7�DH7�H7c
�L�VPPpV'dVR2#R#)zE
Microsoft Windows SDK version subdir.

Return
------
str
    subdir
rBr)r}r�r*�ucrtvers& rr��EnvironmentInfo._sdk_subdir�s&���'�'�/�/��#*�7�)�2��2��2rc
��VPR8�d.#\PPVPP
R4.#)zC
Microsoft Windows SDK Setup.

Return
------
list of str
    paths
r�Setup)r�rerfrgr}rr0s&r�SdkSetup�EnvironmentInfo.SdkSetup�s7���;�;����I������T�W�W�2�2�G�<�=�=rc
���VPpVPpVPR8:d6RpVP4'*;'dVP	4'*pMNVP4;'gVP	4pVP
R8H;'gVPR8Hp.pV'dLTVPUu.uF-p\PPVPV4NK/	up,
pV'dLTVPUu.uF-p\PPVPV4NK/	up,
pV#uupiuupi)zF
Microsoft .NET Framework Tools.

Return
------
list of str
    paths
rTr&)r[r}r�r6r;r:r1rRrerfrgrFrWrJ)r*r[r}�	include32�	include64r�r�s&      r�FxTools�EnvironmentInfo.FxTools�s"���W�W��
�W�W���;�;�$���I��,�,�.�.�J�J�r�7H�7H�7J�3J�I��(�(�*�A�A�b�.?�.?�.A�I����'�1�M�M�R�]�]�g�5M�I�����@B�@U�@U��@U�������R�.�.��4�@U��
�E���@B�@U�@U��@U�������R�.�.��4�@U��
�E������s�3E�3Ec
��VPR8gVPP'g.#VPP	RR7p\
PPVPPRV24.#)zN
Microsoft .Net Framework SDK Libraries.

Return
------
list of str
    paths
r�Tr�zlib\um)r�r}r?r[rIrerfrg)r*r�s& r�NetFxSDKLibraries�!EnvironmentInfo.NetFxSDKLibraries�sd���;�;���T�W�W�%8�%8�%8��I��g�g�(�(�T�(�2�������T�W�W�0�0�V�K�=�2I�J�K�Krc
���VPR8gVPP'g.#\PPVPPR4.#)zM
Microsoft .Net Framework SDK Includes.

Return
------
list of str
    paths
r�z
include\um)r�r}r?rerfrgr0s&r�NetFxSDKIncludes� EnvironmentInfo.NetFxSDKIncludes�sF���;�;���T�W�W�%8�%8�%8��I������T�W�W�0�0�-�@�A�Arc
�l�\PPVPPR4.#)zT
Microsoft Visual Studio Team System Database.

Return
------
list of str
    paths
z
VSTSDB\Deploy)rerfrgr}r�r0s&r�VsTDb�EnvironmentInfo.VsTDbs'�������T�W�W�1�1�3C�D�E�Erc
��VPR8d.#VPR8d4VPPpVPP	RR7pMVPP
pRpRVPR
RV2p\PPW4.pVPR8�d)V\PPWR	4.,
pV#)
z>
Microsoft Build Engine.

Return
------
list of str
    paths
r	r�Tr�rzMSBuild\r�z\bin�Roslyn)	r�r}r�r[rEr�rerfrg)r*�	base_pathr�rf�builds&    r�MSBuild�EnvironmentInfo.MSBuilds����;�;����I�
�[�[�4�
����/�/�I��'�'�-�-�d�-�;�K����,�,�I��K��4�;�;�t�,�D��
�>�������i�.�/���;�;�$���b�g�g�l�l�9�H�=�>�>�E��rc
��VPR8d.#\PPVPP
R4.#)zD
Microsoft HTML Help Workshop.

Return
------
list of str
    paths
rzHTML Help Workshop)r�rerfrgr}r�r0s&r�HTMLHelpWorkshop� EnvironmentInfo.HTMLHelpWorkshop4s8���;�;����I������T�W�W�4�4�6J�K�L�Lrc
�*�VPR8d.#VPPRR7p\PPVPPR4pVPp\PPW#RV24.#)zS
Microsoft Universal C Runtime SDK Libraries.

Return
------
list of str
    paths
r�Tr�r�ucrt)	r�r[rIrerfrgr}r6�_ucrt_subdir)r*r�rr�s&   r�
UCRTLibraries�EnvironmentInfo.UCRTLibrariesCsv���;�;����I��g�g�(�(�T�(�2���g�g�l�l�4�7�7�5�5�u�=���#�#�������S�I�T�+��"?�@�A�Arc
���VPR8d.#\PPVPP
R4p\PPWPR24.#)zQ
Microsoft Universal C Runtime SDK Include.

Return
------
list of str
    paths
r�rtr�)r�rerfrgr}r6r�)r*rts& r�UCRTIncludes�EnvironmentInfo.UCRTIncludesUsW���;�;����I��'�'�,�,�t�w�w�9�9�9�E�������W�):�):�(;�4�&@�A�B�Brc
�L�VPPpV'dVR2#R#)zQ
Microsoft Universal C Runtime SDK version subdir.

Return
------
str
    subdir
rBr)r}r9r�s& rr��EnvironmentInfo._ucrt_subdires&���'�'�4�4��#*�7�)�2��2��2rc
�j�RVPu;8�d
R8�d.#VPP.#)z;
Microsoft Visual F#.

Return
------
list of str
    paths
rr	)r�r}r/r0s&r�FSharp�EnvironmentInfo.FSharprs4���$�+�+�$��$��I�%����(�(�)�)rc��V^8�dQhRR/#rr)r!s"rr"r{�s�� C� C�� Crc
�vaa�RVPR2oVPPRR7PR4o.pVPP
p\PPVPRR44p\PPV4'dd\PPV\P!V4R,4pW\PPVR4.,
pV\PPVR	4.,
pR
VP^
,R2R
\VP4^
,R23pVV3Rl\P !W44p\#\%\PP&V4R
4#)zc
Microsoft Visual C++ runtime redistributable dll.

Returns the first suitable path found or None.
�	vcruntimez0.dllTr�rBz\Toolsz\Redist�onecore�redistzMicrosoft.VCz.CRTc3�l<"�TF)wr\PPVSVS4x�K+	R#5irY)rerfrg)rhrj�crt_dirr�r�s&  ��rrk�2EnvironmentInfo.VCRuntimeRedist.<locals>.<genexpr>�s1����
�%J�!��
�G�G�L�L���g�y�A�A�%J�s�14Nr�)r�r[rI�stripr}r�rerf�dirnamer(r�rgr��intr�r�r�rn�filter�isfile)r*�prefixes�
tools_path�redist_path�crt_dirs�candidate_pathsr�r�s&     @@r�VCRuntimeRedist�EnvironmentInfo.VCRuntimeRedist�sM��� ����}�E�2�	��g�g�(�(�T�(�2�8�8��>�����W�W�)�)�
��g�g�o�o�j�&8�&8��J�&O�P��
�7�7�=�=��%�%��'�'�,�,�{�B�J�J�{�4K�B�4O�P�K��b�g�g�l�l�;�	�&J�K�K�H��R�W�W�\�\�*�h�7�8�8���4�;�;��+�,�D�1��3�t�{�{�+�b�0�1��6�
��
�%.�%6�%6�x�%J�
���F�2�7�7�>�>�?�;�T�B�Brc� �V^8�dQhRRRR/#)r�exists�boolrrsr)r!s"rr"r{�s��;�;��;�1A�;rc
���\VPRVPVPVPVP
.V4VPRVPVPVPVPVP.V4VPRVPVPVPVP.V4VPRVPVPVPVP VP"VPVP$VP&VP(.	V4R7pVP*^8�d"VP,'dVP,VR&V#)z�
Return environment dict.

Parameters
----------
exists: bool
    It True, only return existing paths.

Return
------
dict
    environment
rtrrurf)rtrrurfrv)rs�_build_pathsr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r)r*r�envs&& r�
return_env�EnvironmentInfo.return_env�sU����%�%���O�O��O�O��%�%��)�)�	��	��!�!���$�$��$�$��L�L��&�&��*�*���
��%�%���!�!�4�<�<��1A�1A�4�>�>�R���
�"�"���L�L��L�L��J�J��M�M��M�M��L�L��L�L��)�)��K�K�
���7*
��V�;�;�"���!5�!5�!5�)-�)=�)=�C�%�&��
rc
�
�\PPV4p\P!VR4P\P4p\P!WE4pV'd.\\\PPV44MTpV'g3VP4R2p\PPV4h\!V4p	\PP#V	4#)a�
Given an environment variable name and specified paths,
return a pathsep-separated string of paths containing
unique, extant, directories from those paths and from
the environment variable. Raise an error if no paths
are resolved.

Parameters
----------
name: str
    Environment variable name
spec_path_lists: list of str
    Paths
exists: bool
    It True, only return existing paths.

Return
------
str
    Pathsep-separated paths
rz environment variable is empty)r��chain�
from_iterabler	rRr�re�pathsepr�r�rfr�r�r�r�r�rrg)
r*r��spec_path_listsr�
spec_paths�	env_pathsr��extant_pathsr��unique_pathss
&&&&      rr�EnvironmentInfo._build_paths�s���.�_�_�2�2�?�C�
��K�K��b�)�/�/��
�
�;�	����
�6��=C�t�F�2�7�7�=�=�%�8�9�����Z�Z�\�N�"@�A�C��"�"�9�9�#�>�>�&�|�4���z�z���|�,�,r)r[r�r})N�)T)#r
rrrrQr+rSr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr	rrrrrryry{s���.?��	��	��	��	��L��L�&�
��
��L��L�(�M��M��0��0�d�C��C�&����2�%��%�N�	'��	'�!3�F�
3��
3��>��>�����<�
L��
L��B��B��	F��	F�����6�M��M��B��B�"�
C��
C��
3��
3��*��*�� C�� C�D;�z-rry)�__conditional_annotations__rQ�
__future__rr�r�r�re�os.path�platform�typingrr�more_itertoolsr�distutils.errorsr��typing_extensionsrr�systemrr	�dictrwrrUr�rsry)rs@r�<module>r s�����#����	���+�*���<�����*�i�7���!�!�#�f�G�^�$�v
�v
�rz�z�zQ/�Q/�h1�y�1�E
-�E
-r

Youez - 2016 - github.com/yon3zu
LinuXploit