/opt/imunify360/venv/lib/python3.11/site-packages/setuptools/__pycache__
NameSizeModeActions
archive_util.cpython-311.pyc102070644editdlrm
build_meta.cpython-311.pyc263950644editdlrm
depends.cpython-311.pyc81120644editdlrm
dep_util.cpython-311.pyc9880644editdlrm
discovery.cpython-311.pyc316460644editdlrm
dist.cpython-311.pyc511760644editdlrm
errors.cpython-311.pyc35270644editdlrm
extension.cpython-311.pyc68440644editdlrm
glob.cpython-311.pyc65960644editdlrm
installer.cpython-311.pyc72660644editdlrm
launch.cpython-311.pyc15670644editdlrm
logging.cpython-311.pyc21320644editdlrm
modified.cpython-311.pyc4370644editdlrm
monkey.cpython-311.pyc68520644editdlrm
msvc.cpython-311.pyc633350644editdlrm
namespaces.cpython-311.pyc58110644editdlrm
package_index.cpython-311.pyc591670644editdlrm
py312compat.cpython-311.pyc9280644editdlrm
sandbox.cpython-311.pyc273710644editdlrm
unicode_utils.cpython-311.pyc18560644editdlrm
version.cpython-311.pyc4840644editdlrm
warnings.cpython-311.pyc57310644editdlrm
wheel.cpython-311.pyc156370644editdlrm
windows_support.cpython-311.pyc14720644editdlrm
_core_metadata.cpython-311.pyc140040644editdlrm
_entry_points.cpython-311.pyc51700644editdlrm
_imp.cpython-311.pyc36860644editdlrm
_importlib.cpython-311.pyc21910644editdlrm
_itertools.cpython-311.pyc11910644editdlrm
_normalization.cpython-311.pyc63830644editdlrm
_path.cpython-311.pyc20830644editdlrm
_reqs.cpython-311.pyc21810644editdlrm
__init__.cpython-311.pyc138580644editdlrm
Edit: /opt/imunify360/venv/lib/python3.11/site-packages/setuptools/__pycache__/msvc.cpython-311.pyc (63335B)
§ Ê=W‚aüåãóŒ—dZddlZddlmZddlmZmZddlmZm Z m Z m Z ddl m Z ddlZddlZddlZddl Z ddlZddlmZej¦«dkr ddlZdd lmZnGd „d ¦«Ze¦«Zd „Zd „ZdddddœZd„Zd„Zd„Zd d„ZGd„d¦«Z Gd„d¦«Z!Gd„d¦«Z"Gd„d¦«Z#dS)!a› Improved support for Microsoft Visual C++ compilers. Known supported compilers: -------------------------- Microsoft Visual C++ 14.X: Microsoft Visual C++ Build Tools 2015 (x86, x64, arm) Microsoft Visual Studio Build Tools 2017 (x86, x64, arm, arm64) Microsoft Visual Studio Build Tools 2019 (x86, x64, arm, arm64) This may also support compilers shipped with compatible Visual Studio versions. éN)Úopen)ÚlistdirÚpathsep)ÚjoinÚisfileÚisdirÚdirname)ÚCalledProcessError)Úunique_everseenÚWindows)Úenvironcó—eZdZdZdZdZdZdS)ÚwinregN)Ú__name__Ú __module__Ú __qualname__Ú HKEY_USERSÚHKEY_CURRENT_USERÚHKEY_LOCAL_MACHINEÚHKEY_CLASSES_ROOT©óúo/builddir/build/BUILD/imunify360-venv-2.6.3/opt/imunify360/venv/lib/python3.11/site-packages/setuptools/msvc.pyrr s'€€€€€Øˆ Ø ÐØ!ÐØ ÐÐÐrrcó,— tjtjddtjtjz¦«}n#t $rYdSwxYwd}d}|5t j¦«D]”} tj||¦«\}}}n#t $rYnkwxYw|rd|tj krTt|¦«rE tt|¦«¦«}n#ttf$rYŒ€wxYw|dkr ||kr||}}Œ•ddd¦«n #1swxYwY||fS)ú0Python 3.8 "distutils/_msvccompiler.py" backportz'Software\Microsoft\VisualStudio\SxS\VC7r©NNNé)rÚOpenKeyrÚKEY_READÚKEY_WOW64_32KEYÚOSErrorÚ itertoolsÚcountÚ EnumValueÚREG_SZrÚintÚfloatÚ ValueErrorÚ TypeError)ÚkeyÚ best_versionÚbest_dirÚiÚvÚvc_dirÚvtÚversions rÚ_msvc14_find_vc2015r2)sœ€ðÝŒnÝ Ô %Ø 6Ø Ý ŒO�fÔ4Ñ 4ñ  ô ˆˆøõ ððð؈zˆzðøøøð€LØ€HØ ð =ð =Ý”Ñ"Ô"ð =ð =ˆAð Ý &Ô 0°°aÑ 8Ô 8‘ ��6˜2˜2øÝð ð ð Ø��ð øøøàð =�R�6œ=Ò(Ð(­U°6©]¬]Ð(ðÝ!¥%¨¡(¤(™mœm�G�GøÝ"¥IÐ.ðððØ�Hðøøøà˜b’=�= W¨|Ò%;Ð%;Ø-4°f (�Løð =ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð ˜Ð !Ð!si‚8;» A ÁA ÁDÁ)BÂD B DÂBÂ$DÂ6CÃDÃC'Ã$DÃ&C'Ã'DÄD ÄD c óö—tjd¦«ptjd¦«}|sdSd}|D]Ç}tjtt t ¦«5tjt|ddd¦«dd d |d d d dg ¦«  dd¬¦«  ¦«}t|ddd¦«}t|¦«rd|fcddd¦«cS ddd¦«n #1swxYwYŒÈdS)a€Python 3.8 "distutils/_msvccompiler.py" backport Returns "15, path" based on the result of invoking vswhere.exe If no install is found, returns "None, None" The version is returned to avoid unnecessarily changing the function result. It may be ignored when the path is not None. If vswhere.exe is not available, by definition, VS 2017 is not installed. úProgramFiles(x86)Ú ProgramFilesr)z1Microsoft.VisualStudio.Component.VC.Tools.x86.x64z)Microsoft.VisualStudio.Workload.WDExpresszMicrosoft Visual StudioÚ Installerz vswhere.exez-latestz -prereleasez -requiresz -propertyÚinstallationPathz -productsÚ*ÚmbcsÚstrict)ÚencodingÚerrorsÚVCÚ AuxiliaryÚBuildéN) r ÚgetÚ contextlibÚsuppressr r!ÚUnicodeDecodeErrorÚ subprocessÚ check_outputrÚdecodeÚstripr)ÚrootÚsuitable_componentsÚ componentÚpaths rÚ_msvc14_find_vc2017rMGs…€õ Œ;Ð*Ñ +Ô +Ð J­w¬{¸>Ñ/JÔ/J€DØ ð؈zðÐð )ð ð ˆ å Ô Õ!3µWÕ>PÑ QÔ Qð ð åÔ'åØ Ð";¸[È-ñôð"Ø%Ø#Ø!Ø#Ø*Ø#Øð ñô÷’ °�Ñ9Ô9ß’‘”ð# õ(˜˜d K°Ñ9Ô9ˆDÝ�T‰{Œ{ð Ø˜4�xð/ ð ð ð ñ ô ð ð ð ð ð, ð- ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð øð2 ˆ:sÁA9C-Ã-C1 Ã4C1 Úx86Úx64ÚarmÚarm64)rNÚ x86_amd64Úx86_armÚ x86_arm64c óä—t¦«\}}d}|tvrt|}nd|vrdnd}|rYt|ddddd|d d ¦ « } d dl}| |d ¬ ¦«d}n#tt t f$rd}YnwxYw|s&t¦«\}}|rt|d|dd ¦«}|sdSt|d¦«}t|¦«sdS|rt|¦«sd}||fS)rNÚamd64rOrNz..ÚredistÚMSVCz**zMicrosoft.VC14*.CRTzvcruntime140.dllrT)Ú recursiveéÿÿÿÿzMicrosoft.VC140.CRTrz vcvarsall.bat) rMÚPLAT_SPEC_TO_RUNTIMErÚglobÚ ImportErrorr!Ú LookupErrorr2r) Ú plat_specÚ_r,Ú vcruntimeÚvcruntime_platÚvcredistr\r+Ú vcvarsalls rÚ_msvc14_find_vcvarsallre‚sb€å%Ñ'Ô'�K€A€xØ€IàÕ(Ð(Ð(Ý-¨iÔ8ˆˆà")¨YÐ"6Ð"6˜˜¸EˆàðÝØ Ø Ø Ø Ø Ø Ø Ø !Ø ñ  ô  ˆð Ø ˆKˆKˆKàŸ š  (°d˜ Ñ;Ô;¸BÔ?ˆIˆIøÝ�W¥kÐ2ð ð ð ØˆIˆIˆIð øøøð ð Ý!4Ñ!6Ô!6ш �hØ ð ÝØØØØ%Ø"ñ ôˆIð ð؈zå�X˜Ñ/Ô/€IÝ �)Ñ Ô ð؈zà ð�F 9Ñ-Ô-ðØˆ à �iÐ ÐsÁ !A/Á/B  B cóJ—dtvrd„tj¦«D¦«St|¦«\}}|stj d¦«‚ t jd ||¦«t j ¬¦«  dd¬¦«}nO#t j $r=}tj d  |j ¦«¦«|‚d }~wwxYwd „d „|  ¦«D¦«D¦«}|r||d <|S)rÚDISTUTILS_USE_SDKcó>—i|]\}}| ¦«|“ŒSr©Úlower)Ú.0r*Úvalues rú z&_msvc14_get_vc_env..ºs&€ÐEÐEÐE¡z s¨E�— ’ ‘ ” ˜UÐEÐEÐErzUnable to find vcvarsall.batzcmd /u /c "{}" {} && set)Ústderrzutf-16leÚreplace)r<zError executing {}NcóH—i|]\}}}|¯|¯ | ¦«|“Œ Srri)rkr*r`rls rrmz&_msvc14_get_vc_env..ÊsH€ð ð ð á ˆC��EØ ð ðð Ø � Š ‰ Œ �Uð ð ð rc3ó@K—|]}| d¦«V—ŒdS)ú=N)Ú partition)rkÚlines rú z%_msvc14_get_vc_env..Ìs.èè€ÐOÐO°d˜dŸnšn¨SÑ1Ô1ÐOÐOÐOÐOÐOÐOrÚpy_vcruntime_redist)r ÚitemsreÚ distutilsr<ÚDistutilsPlatformErrorrErFÚformatÚSTDOUTrGr ÚcmdÚ splitlines)r_rdraÚoutÚexcÚenvs rÚ_msvc14_get_vc_envr�·sL€à�gÐ%Ð%ØEÐEµW´]±_´_ÐEÑEÔEÐEå1°)Ñ<Ô<Ñ€IˆyØ ðVÝÔ×5Ò5Ð6TÑUÔUÐUðÝÔ%Ø &× -Ò -¨i¸Ñ CÔ CÝÔ$ð ñ ô ÷ Š&� Iˆ&Ñ .Ô .ð ˆøõ Ô (ðððÝÔ×5Ò5Ø × 'Ò '¨¬Ñ 0Ô 0ñ ô àð øøøøðøøøð  ð àOÐO¸c¿nºnÑ>NÔ>NÐOÑOÔOð ñ ô €Cð ð/Ø%.ˆÐ !Ñ"Ø €JsÁA B%Â%C1Â48C,Ã,C1có|— t|¦«S#tjj$r}t |d¦«‚d}~wwxYw)a* Patched "distutils._msvccompiler._get_vc_env" for support extra Microsoft Visual C++ 14.X compilers. Set environment without use of "vcvarsall.bat". Parameters ---------- plat_spec: str Target architecture. Return ------ dict environment ç,@N)r�rxr<ryÚ_augment_exception)r_rs rÚmsvc14_get_vc_envr…ÕsM€ð&Ý! )Ñ,Ô,Ð,øÝ Ô Ô 2ðððݘ3 Ñ%Ô%Ð%Ø øøøøðøøøs‚‘;¥6¶;Úcóz—|jd}d| ¦«vsd| ¦«vryd}|jdit¦«¤Ž}d}|dkr7| ¦« d¦«dkr|d z }n%|d z }n|d kr|d z }||d zz }n |dkr|dz }|f|_dS)zl Add details to the exception message to help guide the user as to what action will resolve it. rrdzvisual cz;Microsoft Visual C++ {version:0.1f} or greater is required.z-www.microsoft.com/download/details.aspx?id=%dç"@Úia64rZz( Get it with "Microsoft Windows SDK 7.0"z% Get it from http://aka.ms/vcpython27ç$@z* Get it with "Microsoft Windows SDK 7.1": iW rƒzd Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/Nr)ÚargsrjrzÚlocalsÚfind)rr1ÚarchÚmessageÚtmplÚ msdownloads rr„r„ïsí€ð Œh�qŒk€Gà�g—m’m‘o”oÐ%Ð%¨°w·}²}±´Ð)FÐ)FàLˆØ�$”+Ð)Ð)¥¡¤Ð)Ð)ˆØDˆ Ø �cŠ>ˆ>Ø�zŠz‰|Œ|× Ò  Ñ(Ô(¨2Ò-Ð-ðÐEÑE��ð ÐBÑB��Ø ˜Š_ˆ_à ÐCÑ CˆGØ �z DÑ(Ñ (ˆGˆGØ ˜Š_ˆ_à ð,ñ ˆGð ˆz€C„H€H€Hrcó˜—eZdZdZejdd¦« ¦«Zd„Ze d„¦«Z d„Z d„Z d d „Z d d „Zdd „Zd S)Ú PlatformInfoz� Current and Target Architectures information. Parameters ---------- arch: str Target architecture. Úprocessor_architecturer†có`—| ¦« dd¦«|_dS)NrOrV)rjrorŽ)ÚselfrŽs rÚ__init__zPlatformInfo.__init__"s%€Ø—J’J‘L”L×(Ò(¨°Ñ8Ô8ˆŒ ˆ ˆ rcóV—|j|j d¦«dzd…S)zs Return Target CPU architecture. Return ------ str Target CPU r`éN)rŽr�©r–s rÚ target_cpuzPlatformInfo.target_cpu%s*€ðŒy˜œŸš¨Ñ,Ô,¨qÑ0Ð2Ð2Ô3Ð3rcó—|jdkS)z‡ Return True if target CPU is x86 32 bits.. Return ------ bool CPU is x86 32 bits rN©r›ršs rÚ target_is_x86zPlatformInfo.target_is_x861s€ðŒ %Ò'Ð'rcó—|jdkS)zˆ Return True if current CPU is x86 32 bits.. Return ------ bool CPU is x86 32 bits rN©Ú current_cpuršs rÚcurrent_is_x86zPlatformInfo.current_is_x86<s€ðÔ 5Ò(Ð(rFcóR—|jdkr|rdn|jdkr|rdn d|jzS)uk 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) rNr†rVú\x64ú\%sr ©r–Úhidex86rOs rÚ current_dirzPlatformInfo.current_dirGsJ€ð$Ô  EÒ)Ð)¨gÐ)ð ˆBðÔ  GÒ+Ð+°Ð+ð�à˜$Ô*Ñ*ð  rcóR—|jdkr|rdn|jdkr|rdn d|jzS)ar 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) rNr†rVr¤r¥r�r¦s rÚ target_dirzPlatformInfo.target_dir_sG€ð$” 5Ò(Ð(¨WÐ(ð ˆBð” 7Ò*Ð*¨sÐ*ð�à˜$œ/Ñ)ð  rcóˆ—|rdn|j}|j|krdn*| ¦« dd|z¦«S)ap 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. rNr†ú\z\%s_)r¡r›rªro)r–Úforcex86Úcurrents rÚ cross_dirzPlatformInfo.cross_dirwsR€ð $Ð9�%�%¨Ô)9ˆðŒ 'Ò)Ð)ð ˆBà—’Ñ"Ô"×*Ò*¨4°¸7Ñ1BÑCÔCð rN)FF©F)rrrÚ__doc__r rArjr¡r—Úpropertyr›ržr¢r¨rªr¯rrrr“r“sÄ€€€€€ððð�'”+Ð6¸Ñ;Ô;×AÒAÑCÔC€Kð9ð9ð9ðð 4ð 4ñ„Xð 4ð (ð (ð (ð )ð )ð )ð ð ð ð ð0 ð ð ð ð0 ð ð ð ð ð rr“có —eZdZdZejejejejfZ d„Z e d„¦«Z e d„¦«Z e d„¦«Ze d„¦«Ze d„¦«Ze d„¦«Ze d „¦«Ze d „¦«Ze d „¦«Zdd „Zd„ZdS)Ú RegistryInfozŸ Microsoft Visual Studio related registry information. Parameters ---------- platform_info: PlatformInfo "PlatformInfo" instance. có—||_dS©N)Úpi)r–Ú platform_infos rr—zRegistryInfo.__init__ s €ØˆŒˆˆrcó—dS)z€ Microsoft Visual Studio root registry key. Return ------ str Registry key Ú VisualStudiorršs rÚ visualstudiozRegistryInfo.visualstudio£s €ðˆ~rcó,—t|jd¦«S)z Microsoft Visual Studio SxS registry key. Return ------ str Registry key ÚSxS)rr»ršs rÚsxszRegistryInfo.sxs¯s€õ�DÔ% uÑ-Ô-Ð-rcó,—t|jd¦«S)z| Microsoft Visual C++ VC7 registry key. Return ------ str Registry key ÚVC7©rr¾ršs rÚvczRegistryInfo.vc»ó€õ�D”H˜eÑ$Ô$Ð$rcó,—t|jd¦«S)z Microsoft Visual Studio VS7 registry key. Return ------ str Registry key ÚVS7rÁršs rÚvszRegistryInfo.vsÇrÃrcó—dS)zƒ Microsoft Visual C++ for Python registry key. Return ------ str Registry key zDevDiv\VCForPythonrršs rÚ vc_for_pythonzRegistryInfo.vc_for_pythonÓs €ð%Ð$rcó—dS)zq Microsoft SDK registry key. Return ------ str Registry key zMicrosoft SDKsrršs rÚ microsoft_sdkzRegistryInfo.microsoft_sdkßs €ð Ðrcó,—t|jd¦«S)z‚ Microsoft Windows/Platform SDK registry key. Return ------ str Registry key r ©rrÊršs rÚ windows_sdkzRegistryInfo.windows_sdkës€õ�DÔ&¨ Ñ2Ô2Ð2rcó,—t|jd¦«S)z€ Microsoft .NET Framework SDK registry key. Return ------ str Registry key ÚNETFXSDKrÌršs rÚ netfx_sdkzRegistryInfo.netfx_sdk÷s€õ�DÔ&¨ Ñ3Ô3Ð3rcó—dS)z€ Microsoft Windows Kits Roots registry key. Return ------ str Registry key zWindows Kits\Installed Rootsrršs rÚwindows_kits_rootszRegistryInfo.windows_kits_rootss €ð/Ð.rFcód—|j ¦«s|rdnd}td|d|¦«S)a 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¢r)r–r*rNÚnode64s rÚ microsoftzRegistryInfo.microsofts9€ð ”w×-Ò-Ñ/Ô/ÐI°3ÐI��¸MˆÝ�J ¨ °SÑ9Ô9Ð9rc ó—tj}tj}tj}|j}|jD]Ò}d} ||||¦«d|¦«}nV#t $rI|j ¦«s+ ||||d¦«d|¦«}n#t $rYYŒgwxYwYŒmYnwxYw tj ||¦«d|r||¦«cScS#t $rYnwxYw |r ||¦«ŒÀ#|r ||¦«wwxYwdS)a 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 NrT) rrrÚCloseKeyrØÚHKEYSr!r·r¢Ú QueryValueEx) r–r*ÚnameÚkey_readÚopenkeyÚclosekeyÚmsÚhkeyÚbkeys rÚlookupzRegistryInfo.lookup"sŽ€õ ”?ˆÝ”.ˆÝ”?ˆØ Œ^ˆØ”Jð #ð #ˆD؈Dð Ø�w˜t R R¨¡W¤W¨a°Ñ:Ô:��øÝð ð ð Ø”w×-Ò-Ñ/Ô/ðð!Ø&˜w t¨R¨R°°T©]¬]¸A¸xÑHÔH˜˜øÝ"ð!ð!ð!Ø ˜˜ð!øøøð�Hð ˜ð øøøð #ÝÔ*¨4°Ñ6Ô6°qÔ9ðð#Ø�H˜T‘N”N�N�N�N�Nð#ð#ð#øõð ð ð Ø�ð øøøØàð#Ø�H˜T‘N”N�Nøøðð#Ø�H˜T‘N”N�N�Nð#øøøð# #ð #sY¸AÁ#B#Á4B  B# BÂB#ÂBÂB#Â"B#Â'Cà C!ÃC3à C!Ã!C3Ã3DNr°)rrrr±rrrrrrÛr—r²r»r¾rÂrÆrÈrÊrÍrÐrÒrØrärrrr´r´�sd€€€€€ððð ÔØÔ ØÔ!ØÔ ð  €Eð ð ð ðð ð ñ„Xð ðð .ð .ñ„Xð .ðð %ð %ñ„Xð %ðð %ð %ñ„Xð %ðð %ð %ñ„Xð %ðð  ð  ñ„Xð  ðð 3ð 3ñ„Xð 3ðð 4ð 4ñ„Xð 4ðð /ð /ñ„Xð /ð:ð:ð:ð:ð&&#ð&#ð&#ð&#ð&#rr´có—eZdZdZejdd¦«Zejdd¦«Zejde¦«Zdd„Z d„Z d „Z d „Z e d „¦«Zed „¦«Zed „¦«Zd„Zd„Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Z d„Z!e d d„¦«Z"dS)!Ú SystemInfozê Microsoft Windows and Visual Studio related system information. Parameters ---------- registry_info: RegistryInfo "RegistryInfo" instance. vc_ver: float Required Microsoft Visual C++ version. ÚWinDirr†r5r4Ncó¬—||_|jj|_| ¦«|_|p| ¦«x|_|_dSr¶)Úrir·Úfind_programdata_vs_versÚknown_vs_pathsÚ_find_latest_available_vs_verÚvs_verÚvc_ver)r–Ú registry_inforîs rr—zSystemInfo.__init__]sM€ØˆŒØ”'”*ˆŒà"×;Ò;Ñ=Ô=ˆÔð%+Ð$R¨d×.PÒ.PÑ.RÔ.RÐRˆŒ �d”k�k�krcóö—| ¦«}|s&|jstj d¦«‚t |¦«}| |j¦«t|¦«dS)zm Find the latest VC version Return ------ float version z%No Microsoft Visual C++ version foundrZ)Úfind_reg_vs_versrërxr<ryÚsetÚupdateÚsorted)r–Ú reg_vc_versÚvc_verss rrìz(SystemInfo._find_latest_available_vs_verfsz€ð×+Ò+Ñ-Ô-ˆ àð ˜tÔ2ð ÝÔ"×9Ò9Ø7ñôð õ�kÑ"Ô"ˆØ�Š�tÔ*Ñ+Ô+Ð+Ý�g‰Œ˜rÔ"Ð"rc ó²—|jj}|jj|jj|jjf}g}t j|jj|¦«D�]w\}} tj |||¦«dtj ¦«}n#t$rYŒ>wxYw|5tj |¦«\}}} t|¦«D]t} tjt ¦«5t#tj|| ¦«d¦«} | |vr| | ¦«ddd¦«n #1swxYwYŒut|¦«D]n} tjt ¦«5t#tj|| ¦«¦«} | |vr| | ¦«ddd¦«n #1swxYwYŒo ddd¦«n #1swxYwY�Œyt+|¦«S)z˜ Find Microsoft Visual Studio versions available in registry. Return ------ list of float Versions rN)rérØrÂrÈrÆr"ÚproductrÛrrrr!Ú QueryInfoKeyÚrangerBrCr(r'r$ÚappendÚEnumKeyrô) r–ráÚvckeysÚvs_versrâr*rãÚsubkeysÚvaluesr`r-Úvers rrñzSystemInfo.find_reg_vs_verszsˆ€ðŒWÔ ˆØ”'”*˜dœgÔ3°T´W´ZÐ@ˆØˆÝ"Ô*¨4¬7¬=¸&ÑAÔAð 0ñ 0‰IˆD�#ð Ý”~ d¨B¨B¨s©G¬G°Q½¼ÑHÔH��øÝð ð ð Ø�ð øøøàð 0ð 0Ý%+Ô%8¸Ñ%>Ô%>Ñ"�˜ Ý˜v™œð0ð0�AÝ#Ô,­ZÑ8Ô8ð0ð0Ý#¥FÔ$4°T¸1Ñ$=Ô$=¸aÔ$@ÑAÔA˜Ø gÐ-Ð-Ø#ŸNšN¨3Ñ/Ô/Ð/ð0ð0ð0ñ0ô0ð0ð0ð0ð0ð0ð0øøøð0ð0ð0ð0øõ˜w™œð0ð0�AÝ#Ô,­ZÑ8Ô8ð0ð0Ý#¥F¤N°4¸Ñ$;Ô$;Ñ<Ô<˜Ø gÐ-Ð-Ø#ŸNšN¨3Ñ/Ô/Ð/ð0ð0ð0ñ0ô0ð0ð0ð0ð0ð0ð0øøøð0ð0ð0ð0øð0ð 0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ùõ�g‰ŒÐsnÁ*B BÂBÂAF=ÃAD& Ä F=Ä&D* Ä*F=Ä-D* Ä..F=ÅÔ>Ð >àˆ rcóB—|jdkrdS |j|j}n#t$r |j}YnwxYwt |d¦«} t |¦«d}| |¦«|_t ||¦«S#ttf$rYdSwxYw)zl Locate Visual C++ for VS2017+. Return ------ str path rƒr†rrZ) rírër rrrrrîr!Ú IndexError)r–Úvs_dirÚguess_vcrîs rrzSystemInfo._guess_vcøsÈ€ð Œ;˜$Ò Ð Ø�2ð 'àÔ(¨¬Ô5ˆFˆFøÝð 'ð 'ð 'àÔ&ˆFˆFˆFð 'øøøõ˜Ð 0Ñ1Ô1ˆð å˜XÑ&Ô& rÔ*ˆFØ×0Ò0°Ñ8Ô8ˆDŒKݘ &Ñ)Ô)Ð )øÝ�Ð$ð ð ð Ø�2�2ð øøøs�"¢6µ6Á >B  BÂBcó<—t|jd|jz¦«}t|jjd|jz¦«}|j |d¦«}|rt|d¦«n|}|j |jjd|jz¦«p|S)z{ Locate Visual C++ for versions prior to 2017. Return ------ str path z Microsoft Visual Studio %0.1f\VCrÚ installdirr=)rrrírérÈrärÂ)r–rÚreg_pathÚ python_vcÚ default_vcs rrzSystemInfo._guess_vc_legacys–€õØ Ô Ð"EÈÌ Ñ"Sñ ô ˆõ ˜œÔ-¨w¸¼Ñ/DÑEÔEˆØ”G—N’N 8¨\Ñ:Ô:ˆ Ø.7ÐD•T˜) TÑ*Ô*Ð*¸Wˆ ðŒw�~Š~˜dœgœj¨'°D´KÑ*?Ñ@Ô@ÐNÀJÐNrcóˆ—|jdkrdS|jdkrdS|jdkrdS|jdkrdS|jd krd Sd S) z— Microsoft Windows SDK versions for specified MSVC++ version. Return ------ tuple of str versions rˆ)z7.0z6.1z6.0arŠ)z7.1z7.0aç&@)z8.0z8.0aç(@)ú8.1z8.1arƒ)z10.0r+N©ríršs rÚWindowsSdkVersionzSystemInfo.WindowsSdkVersion+sg€ð Œ;˜#Ò Ð Ø'Ð'Ø Œ[˜DÒ Ð Ø �=Ø Œ[˜DÒ Ð Ø �=Ø Œ[˜DÒ Ð Ø �=Ø Œ[˜DÒ Ð Ø �=ð!Ð rcóR—| t|jd¦«¦«S)zt Microsoft Windows SDK last version. Return ------ str version Úlib)Ú_use_last_dir_namerÚ WindowsSdkDirršs rÚWindowsSdkLastVersionz SystemInfo.WindowsSdkLastVersion@s%€ð×&Ò&¥t¨DÔ,>ÀÑ'FÔ'FÑGÔGÐGrcóÖ—d}|jD]>}t|jjd|z¦«}|j |d¦«}|rnŒ?|rt |¦«sOt|jjd|jz¦«}|j |d¦«}|rt|d¦«}|rt |¦«sR|jD]J}|d| d¦«…}d |z}t|j |¦«}t |¦«r|}ŒK|rt |¦«s5|jD]-}d |z}t|j |¦«}t |¦«r|}Œ.|st|j d ¦«}|S) zn Microsoft Windows SDK directory. Return ------ str path r†zv%sÚinstallationfolderrr$ÚWinSDKNrzMicrosoft SDKs\Windows Kits\%szMicrosoft SDKs\Windows\v%sÚ PlatformSDK) r-rrérÍrärrÈrîÚrfindr5r)r–ÚsdkdirrÚlocrLÚ install_baseÚintverÚds rr1zSystemInfo.WindowsSdkDirLsž€ðˆØÔ)ð ð ˆCå�t”wÔ*¨E°C©KÑ8Ô8ˆCØ”W—^’^ CÐ)=Ñ>Ô>ˆFØð Ø�ð àð 6�U 6™]œ]ð 6嘜Ô-¨w¸¼Ñ/DÑEÔEˆDØœ7Ÿ>š>¨$° Ñ=Ô=ˆLØð 6ݘl¨HÑ5Ô5�Øð �U 6™]œ]ð àÔ-ð ð �ØÐ-˜sŸyšy¨™~œ~Ð-Ô.�Ø8¸6ÑA�ݘÔ*¨DÑ1Ô1�ݘ‘8”8ðØ�FøØð �U 6™]œ]ð àÔ-ð ð �Ø4°sÑ:�ݘÔ*¨DÑ1Ô1�ݘ‘8”8ðØ�FøØð <å˜$Ô+¨]Ñ;Ô;ˆF؈ rcóÆ—|jdkrd}d}n-d}|jdkrdnd}|j d|¬¦«}d || d d ¦«fz}g}|jd kr)|jD]!}|t |jj||¦«gz }Œ"|jD]$}|t |jj d |z|¦«gz }Œ%|D]#}|j  |d¦«}|r|cSŒ$dS)zy Microsoft Windows SDK executable directory. Return ------ str path r)é#r†é(r*TF)rOr§zWinSDK-NetFx%dTools%sr¬ú-rƒzv%sAr4N) rír·r¨roÚNetFxSdkVersionrrérÐr-rÍrä) r–ÚnetfxverrŽr§ÚfxÚregpathsrrLÚexecpaths rÚWindowsSDKExecutablePathz#SystemInfo.WindowsSDKExecutablePathws3€ð Œ;˜$Ò Ð ØˆH؈DˆDàˆHØ"œk¨TÒ1Ð1�d�d°uˆGØ”7×&Ò&¨4¸Ð&ÑAÔAˆDØ $¨°$·,²,¸tÀSÑ2IÔ2IÐ'JÑ JˆðˆØ Œ;˜$Ò Ð ØÔ+ð ?ð ?�Ø�T $¤'Ô"3°S¸"Ñ=Ô=Ð>Ñ>��àÔ)ð Fð FˆCØ �˜dœgÔ1°6¸C±<ÀÑDÔDÐEÑ EˆHˆHðð ð ˆDØ”w—~’~ dÐ,@ÑAÔAˆHØð Ø���ð ð ð rcó€—t|jjd|jz¦«}|j |d¦«pdS)zl Microsoft Visual F# directory. Return ------ str path z%0.1f\Setup\F#Ú productdirr†)rrér»rírä)r–rLs rÚFSharpInstallDirzSystemInfo.FSharpInstallDiršs;€õ�D”GÔ(Ð*;¸d¼kÑ*IÑJÔJˆØŒw�~Š~˜d LÑ1Ô1Ð7°RÐ7rcóŽ—|jdkrdnd}|D]2}|j |jjd|z¦«}|r|pdcSŒ3dS)zt Microsoft Universal CRT SDK directory. Return ------ str path rƒ)Ú10Ú81rz kitsroot%sr†N)rírérärÒ)r–Úversrr8s rÚUniversalCRTSdkDirzSystemInfo.UniversalCRTSdkDir§sp€ð $œ{¨dÒ2Ð2ˆ|ˆ|¸ˆðð $ð $ˆCØ”W—^’^ D¤GÔ$>À ÈsÑ@RÑSÔSˆFØð $Ø�| Ð#Ð#Ð#ð $ð $ð $rcóR—| t|jd¦«¦«S)z€ Microsoft Universal C Runtime SDK last version. Return ------ str version r/)r0rrNršs rÚUniversalCRTSdkLastVersionz%SystemInfo.UniversalCRTSdkLastVersionºs%€ð×&Ò&¥t¨DÔ,CÀUÑ'KÔ'KÑLÔLÐLrcó —|jdkrdndS)z� 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.5rr,ršs rrAzSystemInfo.NetFxSdkVersionÆs"€ðŒ{˜dÒ"Ð"ð XÐ Wàð rcó�—d}|jD];}t|jj|¦«}|j |d¦«}|rnŒ<|S)zu Microsoft .NET Framework SDK directory. Return ------ str path r†Úkitsinstallationfolder)rArrérÐrä)r–r8rr9s rÚ NetFxSdkDirzSystemInfo.NetFxSdkDir×s\€ðˆØÔ'ð ð ˆCÝ�t”wÔ(¨#Ñ.Ô.ˆCØ”W—^’^ CÐ)AÑBÔBˆFØð Ø�ð àˆ rcóz—t|jd¦«}|j |jjd¦«p|S)zw Microsoft .NET Framework 32bit directory. Return ------ str path zMicrosoft.NET\FrameworkÚframeworkdir32©rrçrérär©r–Úguess_fws rÚFrameworkDir32zSystemInfo.FrameworkDir32és8€õ˜œ Ð%?Ñ@Ô@ˆðŒw�~Š~˜dœgœjÐ*:Ñ;Ô;ÐG¸xÐGrcóz—t|jd¦«}|j |jjd¦«p|S)zw Microsoft .NET Framework 64bit directory. Return ------ str path zMicrosoft.NET\Framework64Úframeworkdir64rWrXs rÚFrameworkDir64zSystemInfo.FrameworkDir64ùs8€õ˜œ Ð%AÑBÔBˆðŒw�~Š~˜dœgœjÐ*:Ñ;Ô;ÐG¸xÐGrcó,—| d¦«S)zƒ Microsoft .NET Framework 32bit versions. Return ------ tuple of str versions é ©Ú_find_dot_net_versionsršs rÚFrameworkVersion32zSystemInfo.FrameworkVersion32 ó€ð×*Ò*¨2Ñ.Ô.Ð.rcó,—| d¦«S)zƒ Microsoft .NET Framework 64bit versions. Return ------ tuple of str versions é@r`ršs rÚFrameworkVersion64zSystemInfo.FrameworkVersion64rcrcód—|j |jjd|z¦«}t|d|z¦«}|p| |d¦«pd}|jdkr|dfS|jdkr&| ¦«dd …d krd n|d fS|jd krdS|jdkrdSdS)zê Find Microsoft .NET Framework versions. Parameters ---------- bits: int Platform number of bits: 32 or 64. Return ------ tuple of str versions zframeworkver%dzFrameworkDir%dr.r†r*zv4.0rŠNrÚv4z v4.0.30319úv3.5rˆ)riú v2.0.50727g @)zv3.0rj)rérärÂÚgetattrr0rírj)r–ÚbitsÚreg_verÚ dot_net_dirrs rraz!SystemInfo._find_dot_net_versions!sÔ€ð”'—.’. ¤¤Ð-=ÀÑ-DÑEÔEˆÝ˜dÐ$4°tÑ$;Ñ<Ô<ˆ ØÐH˜×0Ò0°¸cÑBÔBÐHÀbˆð Œ;˜$Ò Ð Ø˜�;Ð Ø Œ[˜DÒ Ð Ø#&§9¢9¡;¤;¨r°¨r¤?°dÒ#:Ð#:�<�<ÀÀVÐKÐ KØ Œ[˜CÒ Ð Ø'Ð'Ø Œ[˜CÒ Ð Ø'Ð'ð Ð rcó|‡‡—ˆˆfd„tt‰¦«¦«D¦«}t|d¦«pdS)a) 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ó€•K—|]8}tt‰|¦«¦«¯| ‰¦«¯4|V—Œ9dSr¶)rrÚ startswith)rkÚdir_namerLÚprefixs €€rruz0SystemInfo._use_last_dir_name..Osgøèè€ð ð àÝ•T˜$ Ñ)Ô)Ñ*Ô*ð ð08×/BÒ/BÀ6Ñ/JÔ/Jð Ø ð ð ð ð ð ð rNr†)ÚreversedrÚnext)rLrsÚ matching_dirss`` rr0zSystemInfo._use_last_dir_name>sVøø€ð" ð ð ð ð å$¥W¨T¡]¤]Ñ3Ô3ð ñ ô ˆ õ �M 4Ñ(Ô(Ð.¨BÐ.rr¶©r†)#rrrr±r rArçr5rr—rìrñrêÚ staticmethodrr²rrrrr-r2r1rFrIrNrPrArTrZr]rbrfrar0rrrræræKs±€€€€€ð ð ðˆWŒ[˜ 2Ñ &Ô &€FØ�7”;˜~¨rÑ2Ô2€LØ!�g”kÐ"5°|ÑDÔD€OðSðSðSðSð#ð#ð#ð(ððð>(ð(ð(ðTð7ð7ñ„\ð7ð ðLðLñ„XðLð"ððñ„Xðð"ððð<OðOðOð*ð!ð!ñ„Xð!ð(ð Hð Hñ„Xð Hðð(ð(ñ„Xð(ðTð  ð  ñ„Xð  ðDð 8ð 8ñ„Xð 8ðð$ð$ñ„Xð$ð$ð Mð Mñ„Xð Mðð ð ñ„Xð ð ððñ„Xðð"ð Hð Hñ„Xð Hðð Hð Hñ„Xð Hðð /ð /ñ„Xð /ðð /ð /ñ„Xð /ð(ð(ð(ð:ð/ð/ð/ñ„\ð/ð/ð/rræcó>—eZdZdZd!d„Zed„¦«Zed„¦«Zed„¦«Zed„¦«Z ed „¦«Z ed „¦«Z ed „¦«Z ed „¦«Z ed „¦«Zed„¦«Zed„¦«Zd„Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zd"d„Zd „Z dS)#ÚEnvironmentInfoaY 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. Nrcóì—t|¦«|_t|j¦«|_t |j|¦«|_|j|kr!d}tj  |¦«‚dS)Nz.No suitable Microsoft Visual C++ version found) r“r·r´réræÚsirîrxr<ry)r–rŽrîÚ vc_min_verÚerrs rr—zEnvironmentInfo.__init__osf€Ý˜tÑ$Ô$ˆŒÝ˜tœwÑ'Ô'ˆŒÝ˜TœW fÑ-Ô-ˆŒà Œ;˜Ò #Ð #ØBˆCÝÔ"×9Ò9¸#Ñ>Ô>Ð >ð $Ð #rcó—|jjS)zk Microsoft Visual Studio. Return ------ float version )r|ríršs rrízEnvironmentInfo.vs_verxó€ðŒwŒ~Ðrcó—|jjS)zp Microsoft Visual C++ version. Return ------ float version )r|rîršs rrîzEnvironmentInfo.vc_ver„r€rcó ‡—ddg}‰jdkr1‰j dd¬¦«}|dgz }|dgz }|d|zgz }ˆfd „|D¦«S) zu Microsoft Visual Studio Tools. Return ------ list of str paths z Common7\IDEz Common7\ToolsrƒT©r§rOz1Common7\IDE\CommonExtensions\Microsoft\TestWindowzTeam Tools\Performance ToolszTeam Tools\Performance Tools%scóD•—g|]}t‰jj|¦«‘ŒSr©rr|r©rkrLr–s €rú z+EnvironmentInfo.VSTools..¢ó(ø€ÐCÐCÐC°T•�T”WÔ)¨4Ñ0Ô0ÐCÐCÐCr)rír·r¨)r–ÚpathsÚ arch_subdirs` rÚVSToolszEnvironmentInfo.VSTools�s€ø€ð Ð!1Ð2ˆà Œ;˜$Ò Ð Øœ'×-Ò-°dÀÐ-ÑEÔEˆKØ ÐJÐKÑ KˆEØ Ð5Ð6Ñ 6ˆEØ Ð7¸+ÑEÐFÑ FˆEàCÐCÐCÐC¸UÐCÑCÔCÐCrcój—t|jjd¦«t|jjd¦«gS)z’ Microsoft Visual C++ & Microsoft Foundation Class Includes. Return ------ list of str paths ÚIncludezATLMFC\Include©rr|rršs rÚ VCIncludeszEnvironmentInfo.VCIncludes¤s3€õ �”Ô% yÑ 1Ô 1Ý �”Ô%Ð'8Ñ 9Ô 9ð ð rcóà‡—‰jdkr‰j d¬¦«}n‰j d¬¦«}d|zd|zg}‰jdkr |d|zgz }ˆfd „|D¦«S) z“ Microsoft Visual C++ & Microsoft Foundation Class Libraries. Return ------ list of str paths ç.@T©rO©r§úLib%sz ATLMFC\Lib%srƒz Lib\store%scóD•—g|]}t‰jj|¦«‘ŒSrrŽr†s €rr‡z/EnvironmentInfo.VCLibraries..Ærˆr)rír·rª)r–rŠr‰s` rÚ VCLibrarieszEnvironmentInfo.VCLibraries³s‘ø€ð Œ;˜$Ò Ð Øœ'×,Ò,°Ð,Ñ6Ô6ˆKˆKàœ'×,Ò,°TÐ,Ñ:Ô:ˆKؘ;Ñ&¨¸+Ñ(EÐFˆà Œ;˜$Ò Ð Ø �n {Ñ2Ð3Ñ 3ˆEàCÐCÐCÐC¸UÐCÑCÔCÐCrcóR—|jdkrgSt|jjd¦«gS)z‡ Microsoft Visual C++ store references Libraries. Return ------ list of str paths rƒzLib\store\references)rírr|rršs rÚ VCStoreRefszEnvironmentInfo.VCStoreRefsÈs/€ð Œ;˜Ò Р؈IÝ�T”WÔ)Ð+BÑCÔCÐDÐDrcóà—|j}t|jd¦«g}|jdkrdnd}|j |¦«}|r|t|jd|z¦«gz }|jdkr8d|j d¬¦«z}|t|j|¦«gz }nÆ|jdkr¢|j ¦«rd nd }|t|j||j d¬ ¦«z¦«gz }|jj |jj kr5|t|j||j d¬ ¦«z¦«gz }n|t|jd ¦«gz }|S) zr Microsoft Visual C++ Tools. Return ------ list of str paths Ú VCPackagesrŠTFúBin%srƒr“r‘z bin\HostX86%sz bin\HostX64%sr’ÚBin) r|rrrír·r¯r¨r¢rªr¡r›)r–r|Útoolsr­rŠrLÚhost_dirs rÚVCToolszEnvironmentInfo.VCToolsÖsƒ€ðŒWˆÝ�b”o |Ñ4Ô4Ð5ˆàœ;¨$Ò.Ð.�4�4°EˆØ”g×'Ò'¨Ñ1Ô1ˆ Ø ð DØ •d˜2œ?¨G°kÑ,AÑBÔBÐCÑ CˆEà Œ;˜$Ò Ð Ø˜TœW×0Ò0¸Ð0Ñ>Ô>Ñ>ˆDØ •d˜2œ?¨DÑ1Ô1Ð2Ñ 2ˆEˆEà Œ[˜DÒ Ð à$(¤G×$:Ò$:Ñ$<Ô$<ÐRÐ Ð ÐBRð ð •d˜2œ?¨H°t´w×7IÒ7IÈdÐ7IÑ7SÔ7SÑ,SÑTÔTÐUÑ UˆEàŒwÔ" d¤gÔ&8Ò8Ð8ØÝ˜œ¨(°T´W×5HÒ5HÈTÐ5HÑ5RÔ5RÑ*RÑSÔSðñ�øð •d˜2œ?¨EÑ2Ô2Ð3Ñ 3ˆEàˆ rcó0—|jdkr:|j dd¬¦«}t|jjd|z¦«gS|j d¬¦«}t|jjd¦«}|j}t||›d|›�¦«gS)zw Microsoft Windows SDK Libraries. Return ------ list of str paths rŠTrƒr”r’r/Úum)rír·rªrr|r1Ú _sdk_subdir)r–rŠr/Úlibvers rÚ OSLibrarieszEnvironmentInfo.OSLibrariesüsœ€ð Œ;˜$Ò Ð Øœ'×,Ò,°T¸tÐ,ÑDÔDˆKݘœÔ.°¸+Ñ0EÑFÔFÐGÐ Gðœ'×,Ò,°Ð,Ñ6Ô6ˆKÝ�t”wÔ,¨eÑ4Ô4ˆCØÔ%ˆFݘ¨&¨&¨&°+°+Ð>Ñ?Ô?Ð@Ð @rcó —t|jjd¦«}|jdkr|t|d¦«gS|jdkr|j}nd}t|d|z¦«t|d|z¦«t|d|z¦«gS) zu Microsoft Windows SDK Include. Return ------ list of str paths ÚincluderŠÚglrƒr†z%ssharedz%sumz%swinrt)rr|r1rír¢)r–r¦Úsdkvers rÚ OSIncludeszEnvironmentInfo.OSIncludess—€õ�t”wÔ,¨iÑ8Ô8ˆà Œ;˜$Ò Ð Ø�T '¨4Ñ0Ô0Ð1Ð 1ðŒ{˜dÒ"Ð"ØÔ)��à�å�W˜j¨6Ñ1Ñ2Ô2Ý�W˜f v™oÑ.Ô.Ý�W˜i¨&Ñ0Ñ1Ô1ðð rcó¦—t|jjd¦«}g}|jdkr ||jz }|jdkr|t|d¦«gz }|jdkru||t|jjd¦«t|dd¦«t|d d¦«t|d d¦«t|jjd d d |jzddd¦«gz }|S)z} Microsoft Windows SDK Libraries Paths. Return ------ list of str paths Ú Referencesrˆr)zCommonConfiguration\NeutralrƒÚ UnionMetadataz'Windows.Foundation.UniversalApiContractz1.0.0.0z%Windows.Foundation.FoundationContractz,Windows.Networking.Connectivity.WwanContractÚ ExtensionSDKszMicrosoft.VCLibsrÚCommonConfigurationÚneutral)rr|r1rír¤)r–ÚrefÚlibpaths rÚ OSLibpathzEnvironmentInfo.OSLibpath*sò€õ�4”7Ô(¨,Ñ7Ô7ˆØˆà Œ;˜#Ò Ð Ø �tÔ'Ñ 'ˆGà Œ;˜$Ò Ð Ø �˜SÐ"@ÑAÔAÐBÑ BˆGà Œ;˜$Ò Ð Ø ØÝ�T”WÔ*¨OÑ<Ô<Ý�SÐCÀYÑOÔOÝ�SÐAÀ9ÑMÔMÝ�SÐHÈ)ÑTÔTÝØ”GÔ)Ø#Ø&ؘdœkÑ)Ø Ø)Øñôð ñ ˆGð ˆrcóD—t| ¦«¦«S)zs Microsoft Windows SDK Tools. Return ------ list of str paths )ÚlistÚ _sdk_toolsršs rÚSdkToolszEnvironmentInfo.SdkToolsPs€õ�D—O’OÑ%Ô%Ñ&Ô&Ð&rc#óâK—|jdkr+|jdkrdnd}t|jj|¦«V—|j ¦«s<|j d¬¦«}d|z}t|jj|¦«V—|jdvrZ|j ¦«rd }n|j dd¬ ¦«}d |z}t|jj|¦«V—nb|jdkrWt|jjd¦«}|j d¬¦«}|jj}t||›|›�¦«V—|jj r|jj V—d Sd S) zˆ Microsoft Windows SDK Tools paths generator. Return ------ generator of str paths r‘r)rœzBin\x86Tr’r›)rŠr)r†rƒzBin\NETFX 4.0 Tools%sN) rírr|r1r·r¢r¨ržr2rF)r–Úbin_dirrŠrLr¨s rrµzEnvironmentInfo._sdk_tools\s•èè€ð Œ;˜Ò Ð Ø#œ{¨dÒ2Ð2�e�e¸ ˆGÝ�t”wÔ,¨gÑ6Ô6Ð 6Ð 6Ð 6àŒw×%Ò%Ñ'Ô'ð 4Øœ'×-Ò-°$Ð-Ñ7Ô7ˆKؘ[Ñ(ˆDÝ�t”wÔ,¨dÑ3Ô3Ð 3Ð 3Ð 3à Œ;˜,Ð &Ð &ØŒw×$Ò$Ñ&Ô&ð JØ � � à"œg×1Ò1¸$ÀDÐ1ÑIÔI� Ø+¨kÑ9ˆDÝ�t”wÔ,¨dÑ3Ô3Ð 3Ð 3Ð 3Ð 3à Œ[˜DÒ Ð Ý˜œÔ-¨uÑ5Ô5ˆDØœ'×-Ò-°$Ð-Ñ7Ô7ˆKØ”WÔ2ˆFÝ�t v v¨{¨{Ð;Ñ<Ô<Ð <Ð <Ð <à Œ7Ô +ð 3Ø”'Ô2Ð 2Ð 2Ð 2Ð 2Ð 2ð 3ð 3rcó,—|jj}|rd|zndS)zu Microsoft Windows SDK version subdir. Return ------ str subdir ú%s\r†)r|r2©r–Úucrtvers rr¢zEnvironmentInfo._sdk_subdirs#€ð”'Ô/ˆØ%,Ð4�˜Ñ Ð °"Ð4rcóR—|jdkrgSt|jjd¦«gS)zs Microsoft Windows SDK Setup. Return ------ list of str paths rˆÚSetup)rírr|r1ršs rÚSdkSetupzEnvironmentInfo.SdkSetupŒs.€ð Œ;˜Ò Р؈Iå�T”WÔ*¨GÑ4Ô4Ð5Ð5rcót‡—|j}|jŠ|jdkr-d}| ¦« o| ¦« }n>| ¦«p| ¦«}|jdkp |jdk}g}|r|ˆfd„‰jD¦«z }|r|ˆfd„‰jD¦«z }|S)zv Microsoft .NET Framework Tools. Return ------ list of str paths rŠTrVcó:•—g|]}t‰j|¦«‘ŒSr)rrZ©rkrr|s €rr‡z+EnvironmentInfo.FxTools..±ó&ø€ÐTÐTÐT°s•d˜2Ô,¨cÑ2Ô2ÐTÐTÐTrcó:•—g|]}t‰j|¦«‘ŒSr)rr]rÂs €rr‡z+EnvironmentInfo.FxTools..³rÃr) r·r|ríržr¢r¡r›rbrf)r–r·Ú include32Ú include64r�r|s @rÚFxToolszEnvironmentInfo.FxTools›séø€ðŒWˆØ ŒWˆà Œ;˜$Ò Ð ØˆIØ×,Ò,Ñ.Ô.Ð.ÐJ°r×7HÒ7HÑ7JÔ7JÐ3JˆIˆIà×(Ò(Ñ*Ô*ÐA¨b×.?Ò.?Ñ.AÔ.AˆIØœ¨'Ò1ÐM°R´]ÀgÒ5MˆIàˆØ ð UØ ÐTÐTÐTÐT¸bÔ>SÐTÑTÔTÑ TˆEØ ð UØ ÐTÐTÐTÐT¸bÔ>SÐTÑTÔTÑ TˆE؈ rcó¦—|jdks |jjsgS|j d¬¦«}t |jjd|z¦«gS)z~ Microsoft .Net Framework SDK Libraries. Return ------ list of str paths rƒTr’zlib\um%s)rír|rTr·rªr)r–rŠs rÚNetFxSDKLibrariesz!EnvironmentInfo.NetFxSDKLibraries¶sU€ð Œ;˜Ò Ð  T¤WÔ%8Р؈Ià”g×(Ò(¨TÐ(Ñ2Ô2ˆ Ý�T”WÔ(¨+¸ Ñ*CÑDÔDÐEÐErcój—|jdks |jjsgSt|jjd¦«gS)z} Microsoft .Net Framework SDK Includes. Return ------ list of str paths rƒz include\um)rír|rTrršs rÚNetFxSDKIncludesz EnvironmentInfo.NetFxSDKIncludesÆs8€ð Œ;˜Ò Ð  T¤WÔ%8Р؈Iå�T”WÔ(¨-Ñ8Ô8Ð9Ð9rcó8—t|jjd¦«gS)z„ Microsoft Visual Studio Team System Database. Return ------ list of str paths z VSTSDB\Deployr…ršs rÚVsTDbzEnvironmentInfo.VsTDbÕs€õ�T”WÔ)Ð+;Ñ<Ô<Ð=Ð=rcó—|jdkrgS|jdkr(|jj}|j d¬¦«}n|jj}d}d|j|fz}t ||¦«g}|jdkr|t ||d¦«gz }|S)zn Microsoft Build Engine. Return ------ list of str paths r*r‘Tr“r†zMSBuild\%0.1f\bin%sÚRoslyn)rír|rr·r¨rr)r–Ú base_pathrŠrLÚbuilds rÚMSBuildzEnvironmentInfo.MSBuildás¤€ð Œ;˜Ò Р؈IØ Œ[˜4Ò Ð ØœÔ/ˆIØœ'×-Ò-°dÐ-Ñ;Ô;ˆKˆKàœÔ,ˆI؈Kà%¨¬°kÐ(BÑBˆÝ�i Ñ&Ô&Ð'ˆà Œ;˜$Ò Ð à •d˜9 d¨HÑ5Ô5Ð6Ñ 6ˆEàˆ rcóR—|jdkrgSt|jjd¦«gS)zt Microsoft HTML Help Workshop. Return ------ list of str paths r)zHTML Help Workshop)rírr|rršs rÚHTMLHelpWorkshopz EnvironmentInfo.HTMLHelpWorkshopýs/€ð Œ;˜Ò Р؈Iå�T”WÔ,Ð.BÑCÔCÐDÐDrcóÀ—|jdkrgS|j d¬¦«}t|jjd¦«}|j}t||›d|›�¦«gS)zƒ Microsoft Universal C Runtime SDK Libraries. Return ------ list of str paths rƒTr’r/Úucrt)rír·rªrr|rNÚ _ucrt_subdir)r–rŠr/r¼s rÚ UCRTLibrarieszEnvironmentInfo.UCRTLibraries sh€ð Œ;˜Ò Р؈Ià”g×(Ò(¨TÐ(Ñ2Ô2ˆ Ý�4”7Ô-¨uÑ5Ô5ˆØÔ#ˆÝ�S¨¨¨°°Ð=Ñ>Ô>Ð?Ð?rcó‚—|jdkrgSt|jjd¦«}t|d|jz¦«gS)z� Microsoft Universal C Runtime SDK Include. Return ------ list of str paths rƒr¦z%sucrt)rírr|rNr×)r–r¦s rÚ UCRTIncludeszEnvironmentInfo.UCRTIncludessE€ð Œ;˜Ò Р؈Iå�t”wÔ1°9Ñ=Ô=ˆÝ�W˜h¨Ô):Ñ:Ñ;Ô;Ð<ÐÔ>ˆ ðˆØ”WÔ)ˆ ݘj×0Ò0°¸JÑGÔGÑHÔHˆ Ý �Ñ Ô ð Då˜{­G°KÑ,@Ô,@ÀÔ,DÑEÔEˆKØ ˜¥d¨;¸ Ñ&BÔ&BÐCÑ CˆHà•T˜* hÑ/Ô/Ð0Ñ0ˆð ! D¤K°"Ñ$4Ñ 5à ¥C¨¬ Ñ$4Ô$4°rÑ$9Ñ :ð ˆõ )Ô0°¸8ÑDÔDð ð ‰OˆF�Gݘ  ¨W°iÑ@Ô@ˆDÝ�d‰|Œ|ð Ø� � � ð ð ð rTcó.—t| d|j|j|j|jg|¦«| d|j|j|j|j |j g|¦«| d|j|j|j |j g|¦«| d|j |j|j|j|j|j|j|j|jg |¦«¬¦«}|jdkrt-|j¦«r |j|d<|S)zÛ Return environment dict. Parameters ---------- exists: bool It True, only return existing paths. Return ------ dict environment r¦r/r±rL)r¦r/r±rLrrv)ÚdictÚ _build_pathsr�r©rÚrËr–r¤rÇrØrÉr˜r²rŸr‹rÍr¶r¿rÒrÔrÝrírræ)r–Úexistsr€s rÚ return_envzEnvironmentInfo.return_envosA€õØ×%Ò%Øà”OØ”OØÔ%ØÔ)ð ð ñ ô ð×!Ò!ØàÔ$ØÔ$Ø”LØÔ&ØÔ*ð ðñ ô ð×%Ò%ØØÔ! 4¤<°Ô1AÀ4Ä>ÐRØñôð ×"Ò"Øà”LØ”LØ”JØ”MØ”MØ”LØ”LØÔ)Ø”Kð ðñôð7* ñ* ô* ˆðV Œ;˜"Ò Ð ¥¨Ô(<Ñ!=Ô!=Ð Ø)-Ô)=ˆCÐ%Ñ &؈ rcóÆ—tj |¦«}tj|d¦« t ¦«}tj||¦«}|r"ttt|¦«¦«n|}|s6d|  ¦«z}tj   |¦«‚t|¦«} t j| ¦«S)aC 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 r†z %s environment variable is empty)r"ÚchainÚ from_iterabler rArrr´ÚfilterrÚupperrxr<ryr r) r–rÝÚspec_path_listsrêÚ spec_pathsÚ env_pathsr‰Ú extant_pathsrÚ unique_pathss rrézEnvironmentInfo._build_paths¬s¸€õ.”_×2Ò2°?ÑCÔCˆ Ý”K  bÑ)Ô)×/Ò/µÑ8Ô8ˆ Ý”  ¨IÑ6Ô6ˆØ5;ÐF•t�F¥5¨%Ñ0Ô0Ñ1Ô1Ð1Àˆ Øð ?Ø4°t·z²z±|´|ÑCˆCÝÔ"×9Ò9¸#Ñ>Ô>Ð >Ý& |Ñ4Ô4ˆ ÝŒ|˜LÑ)Ô)Ð)r)Nr)T)!rrrr±r—r²rírîr‹r�r–r˜rŸr¤r©r²r¶rµr¢r¿rÇrÉrËrÍrÒrÔrØrÚr×rÝrærërérrrrzrzWs€€€€€ððð.?ð?ð?ð?ðð ð ñ„Xð ðð ð ñ„Xð ððDðDñ„XðDð&ð  ð  ñ„Xð  ððDðDñ„XðDð(ð Eð Eñ„Xð Eðð#ð#ñ„Xð#ðJðAðAñ„XðAð&ððñ„Xðð2ð#ð#ñ„Xð#ðJð 'ð 'ñ„Xð 'ð!3ð!3ð!3ðFð 5ð 5ñ„Xð 5ðð 6ð 6ñ„Xð 6ðððñ„Xðð4ð Fð Fñ„Xð Fðð :ð :ñ„Xð :ðð >ð >ñ„Xð >ðððñ„Xðð6ð Eð Eñ„Xð Eðð@ð@ñ„Xð@ð"ð =ð =ñ„Xð =ðð 5ð 5ñ„Xð 5ðð *ð *ñ„Xð *ðð"ð"ñ„Xð"ðH;ð;ð;ð;ðz*ð*ð*ð*ð*rrzrw)$r±rÚiorÚosrrÚos.pathrrrr rEr rBÚplatformr"Údistutils.errorsrxÚ setuptools.extern.more_itertoolsr Úsystemrr rèr2rMr[rer�r…r„r“r´rærzrrrúrýsyðð ð ð € € € ØÐÐÐÐÐØÐÐÐÐÐÐÐØ0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ø)Ð)Ð)Ð)Ð)Ð)ØÐÐÐØ€€€ØÐÐÐØÐÐÐØÐÐÐØ<Ð<Ð<Ð<Ð<Ð<à€8„?ÑÔ˜ Ò!Ð!Ø€M€M€MØÐÐÐÐÐÐð!ð!ð!ð!ð!ñ!ô!ð!ð ˆd‰fŒf€Gð"ð"ð"ð<0ð0ð0ðh ØØØð ðÐð2 ð2 ð2 ðjððð<ððð4$ð$ð$ð$ðNv ðv ðv ðv ðv ñv ôv ðv ðry#ðy#ðy#ðy#ðy#ñy#ôy#ðy#ðxI/ðI/ðI/ðI/ðI/ñI/ôI/ðI/ðXt *ðt *ðt *ðt *ðt *ñt *ôt *ðt *ðt *ðt *r