§
    .@Äj  ã                   ó*  — d dl Z d dlZd dlmZ d dlmZmZ d dlmZ dej	        j
        _        eej	        j
        _        dej	        j        _        eej	        j        _        dej	        j        _        eej	        j        _        dej	        j        _        eej	        j        _        dej	        j        _        eej	        j        _        d„ Z e¦   «         Zd„ Z e¦   «         Zd„ Z e¦   «         Zd	„ Z e¦   «         Zd
„ Z e¦   «         Zed„ ¦   «         ZdS )é    N)Úcache)Úc_intÚc_char_p)Úffi© c                  óN   — t           j                             ¦   «         dk    rdS dS )zG
    Returns True if SVML was enabled at FFI support compile time.
    r   FT)r   ÚlibÚLLVMPY_HasSVMLSupportr   ó    úHC:\Projects\Historical\venv\Lib\site-packages\llvmlite/binding/config.pyÚ	_has_svmlr      s'   € õ „w×$Ò$Ñ&Ô&¨!Ò+Ð+Øˆuàˆtr   c                  óN   — t           j                             ¦   «         dk    rdS dS )zq
    Returns "static" if the FFI support is statically linked against LLVM,
    returns "dynamic" otherwise.
    r   ÚstaticÚdynamic)r   r	   Ú LLVMPY_IsDynamicLLVMLinkageBuildr   r   r   Ú_build_llvm_linkage_typer   &   s'   € õ
 „w×/Ò/Ñ1Ô1°QÒ6Ð6Øˆxàˆyr   c                  óN   — t           j                             ¦   «         dk    rdS dS )zv
    Returns "static" if the FFI support is statically linked against libstdc++,
    returns "dynamic" otherwise.
    é   r   r   )r   r	   Ú$LLVMPY_IsStaticLibstdcxxLinkageBuildr   r   r   Ú_build_libstdcxx_linkage_typer   4   s'   € õ
 „w×3Ò3Ñ5Ô5¸Ò:Ð:Øˆxàˆyr   c                  ób   — t           j                             ¦   «                              ¦   «         S )z3
    Returns "wheel", "conda" or "unspecified"
    )r   r	   ÚLLVMPY_PackageFormatÚdecoder   r   r   Ú_package_formatr   B   s$   € õ Œ7×'Ò'Ñ)Ô)×0Ò0Ñ2Ô2Ð2r   c                  ób   — t           j                             ¦   «                              ¦   «         S )a3  
    Returns one of "on", "off" or "unknown". Depending on whether it is
    determined that LLVM was build with assertions on, off, or is not known.
    "Is not known" is typically from a dynamic linkage against LLVM in which
    case it's not easily identified whether LLVM was built with assertions.
    )r   r	   ÚLLVMPY_LlvmAssertionsStater   r   r   r   Ú_llvm_assertions_stater   L   s$   € õ Œ7×-Ò-Ñ/Ô/×6Ò6Ñ8Ô8Ð8r   c                  ó¸  — t          ¦   «         } t          j        j        | d<   t          | d<   t
          | d<   t          | d<   t          | d<   d}	 dd l}d}n&# t          $ r d	}t          j        |¦  «         Y nw xY w|| d
<   d | d<   d | d<   d„ }d„ }|rH|                     | d         ¦  «        }t           ||¦  «        ¦  «        }|| d<    ||¦  «        }|| d<   | S )NÚffi_lib_locationÚpackage_formatÚllvm_linkage_typeÚlibstdcxx_linkage_typeÚllvm_assertions_stateFr   Tz9py-lief package not found, sysinfo is limited as a resultÚlief_probe_statusÚlinked_librariesÚcanonicalised_linked_librariesc                 ó$   — d„ | j         D ¦   «         S )zZCanonicalises the representation of the binary::libraries as a
        sequence of stringsc                 ó0   — g | ]}t          |d |¦  «        ‘ŒS )Úname)Úgetattr)Ú.0Úxs     r   ú
<listcomp>zBget_sysinfo.<locals>.canonicalise_library_type.<locals>.<listcomp>u   s$   € Ð=Ð=Ð=¨!•˜˜6 1Ñ%Ô%Ð=Ð=Ð=r   )Ú	libraries)Údsos    r   Úcanonicalise_library_typez.get_sysinfo.<locals>.canonicalise_library_typeo   s   € ð >Ð=¨s¬}Ð=Ñ=Ô=Ð=r   c                 ó6  — g }| D ]“}t           j                             |¦  «        d         }|                     d¦  «        d         }|                     dd¦  «                             dd¦  «        }|                     |                     ¦   «         ¦  «         Œ”|S )Néÿÿÿÿú.r   r	   Ú ÚLIB)ÚosÚpathÚsplitÚreplaceÚappendÚlower)ÚlibsÚfixesr	   Úpath_strippedÚprefix_libnameÚlinker_names         r   Úcanonicalise_library_spellingz2get_sysinfo.<locals>.canonicalise_library_spellingw   s—   € ð ˆØð 		.ð 		.ˆCõ œGŸMšM¨#Ñ.Ô.¨rÔ2ˆMð +×0Ò0°Ñ5Ô5°aÔ8ˆNØ(×0Ò0°¸Ñ;Ô;×CÒCÀEÈ2ÑNÔNˆKà�LŠL˜×*Ò*Ñ,Ô,Ñ-Ô-Ð-Ð-Øˆr   )Údictr   r	   Ú_namer    Úbuild_llvm_linkage_typeÚbuild_libstdcxx_linkage_typer#   ÚliefÚImportErrorÚwarningsÚwarnÚparseÚtuple)	ÚdÚ	HAVE_LIEFrF   Úmsgr0   rA   r/   Ú	link_libsÚcanonicalised_libss	            r   Úget_sysinforQ   Y   s@  € å‰Œ€AÝœGœM€AÐÑÝ(€AÐÑÝ4€AÐÑÝ">€AÐÑÝ!6€AÐÑð €IðØˆˆˆØˆ	ˆ	øÝð ð ð ØIˆÝŒ�cÑÔÐÐÐðøøøð '€AÐÑØ €AÐÑØ*.€AÐ&Ñ'ð>ð >ð >ðð ð ð" ð AØ�jŠj˜Ð-Ô.Ñ/Ô/ˆÝÐ3Ð3°CÑ8Ô8Ñ9Ô9ˆ	Ø )ˆÐ
ÑØ:Ð:¸9ÑEÔEÐØ.@ˆÐ
*Ñ+à€Hs   ÁA Á A8Á7A8)r6   rH   Ú	functoolsr   Úctypesr   r   Úllvmlite.bindingr   r	   r
   ÚargtypesÚrestyper   r   r   r   r   Úhas_svmlr   rD   r   rE   r   r    r   r#   rQ   r   r   r   ú<module>rX      s–  ðØ 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ø  Ð  Ð  Ð  Ð  Ð  ð *,€„Ô Ô &Ø(-€„Ô Ô %à8:€„Ô ,Ô 5Ø7<€„Ô ,Ô 4à46€„Ô (Ô 1Ø38€„Ô (Ô 0à(*€„Ô Ô %Ø'/€„Ô Ô $à.0€„Ô "Ô +Ø-5€„Ô "Ô *ðð ð ð ˆ9‰;Œ;€ðð ð ð 3Ð2Ñ4Ô4Ð ðð ð ð  =Ð<Ñ>Ô>Ð ð3ð 3ð 3ð !�Ñ"Ô"€ð9ð 9ð 9ð /Ð.Ñ0Ô0Ð ð ð5ð 5ñ „ð5ð 5ð 5r   