ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     3
 f-                 @   s  d dl Z d dlZd dlZd dlZe jdkrBdd Zdd Zdd Ze jd	krlejd
krld dl	m
Z dd Zne jd	kr d dlZd dlZdd Zejdkrdd Zndd Zejjd%rdd Zdd Zn6ejdkrdd Zd&ddZndd Zdd  Zd!d Zd"d# Zed$kre  dS )'    Nntc              C   s   d} t jj| }|dkrdS |t|  }t j|d jdd\}}t|dd d }|dkrf|d7 }t|dd d	 }|dkrd
}|dkr|| S dS )zReturn the version of MSVC that was used to build Python.

        For Python 2.3 and up, the version number is included in
        sys.version.  For earlier versions, assume the compiler is MSVC 6.
        zMSC v.      N          g      $@r   )sysversionfindlensplitint)prefixisrestZmajorVersionZminorVersion r   0/opt/alt/python36/lib64/python3.6/ctypes/util.py_get_build_version	   s    r   c              C   s^   t  } | dkrdS | dkr d}n| dkr6d| d  }ndS ddl}d|jjkrV|d	7 }|d
 S )z%Return the name of the VC runtime dllNr   msvcrtr   zmsvcr%d
   r   z_d.pyddz.dll)r   importlib.machinery	machineryEXTENSION_SUFFIXES)r   Zclibname	importlibr   r   r   find_msvcrt"   s    r   c             C   st   | dkrt  S x`tjd jtjD ]J}tjj|| }tjj|rD|S |j j	drTq"|d }tjj|r"|S q"W d S )NcmPATHz.dll)r    r!   )
r   osenvironr   pathseppathjoinisfilelowerendswith)nameZ	directoryZfnamer   r   r   find_library7   s    r,   posixdarwin)	dyld_findc             C   sL   d|  d|  d| | f g}x,|D ]$} yt | S  tk
rB   w Y q X q W d S )Nzlib%s.dylibz%s.dylibz%s.framework/%s)
_dyld_find
ValueError)r+   possibler   r   r   r,   H   s    
c       	   !   C   s  t jdtj|  }tjd}|s,tjd}|s4d S tj }z||dd|jd|  g}t	t j
}d|d< d|d	< ytj|tjtj|d
}W n tk
r   d S X | |jj }W d Q R X W d y|j  W n tk
r   Y nX X tj||}|sd S t j|jdS )Nz[^\(\)\s]*lib%s\.[^\(\)\s]*gccZccz-Wl,-tz-oz-lCLC_ALLLANG)stdoutstderrenvr   )r#   fsencodereescapeshutilwhichtempfileZNamedTemporaryFiler+   dictr$   
subprocessPopenPIPEZSTDOUTOSErrorr7   readcloseFileNotFoundErrorsearchfsdecodegroup)	r+   exprZ
c_compilerZtempargsr9   procZtraceresr   r   r   _findLib_gccW   s:    


rO   Zsunos5c             C   sz   | sd S yt jdd| ft jt jd}W n tk
r:   d S X | |jj }W d Q R X tjd|}|sjd S t	j
|jdS )Nz/usr/ccs/bin/dumpz-Lpv)r7   r8   s   \[.*\]\sSONAME\s+([^\s]+)r   )rA   rB   rC   DEVNULLrD   r7   rE   r;   rH   r#   rI   rJ   )frM   datarN   r   r   r   _get_soname   s    rS   c             C   s   | sd S t jd}|sd S y"tj|ddd| ftjtjd}W n tk
rP   d S X | |jj }W d Q R X t	j
d|}|sd S tj|jdS )Nobjdumpz-pz-jz.dynamic)r7   r8   s   \sSONAME\s+([^\s]+)r   )r=   r>   rA   rB   rC   rP   rD   r7   rE   r;   rH   r#   rI   rJ   )rQ   rT   rM   dumprN   r   r   r   rS      s"    
freebsdopenbsd	dragonflyc             C   sR   | j d}g }y"x|r,|jdt|j  qW W n tk
rD   Y nX |pPtjgS )N   .r   )r   insertr   popr1   r   maxsize)ZlibnamepartsZnumsr   r   r   _num_version   s    
r^   c             C   s   t j| }d||f }tj|}ytjdtjtjd}W n tk
rP   d}Y nX | |j	j
 }W d Q R X t j||}|stt| S |jtd tj|d	 S )
Nz:-l%s\.\S+ => \S*/(lib%s\.\S+)/sbin/ldconfig-r)r7   r8       )keyr   )r_   r`   r	   )r;   r<   r#   r:   rA   rB   rC   rP   rD   r7   rE   findallrS   rO   sortr^   rI   )r+   ZenamerK   rM   rR   rN   r   r   r   r,      s     


c       	      C   s   t jjdsd S tt j}d|d< |r,d
}nd}d }ytj|tjtj|d}W n t	k
rb   d S X |: x2|j
D ](}|j }|jdrrt j|j d }qrW W d Q R X |sd S x4|jdD ]&}t jj|d	|  }t jj|r|S qW d S )N/usr/bin/crler4   r5   -64)r7   r8   r9   s   Default Library Path (ELF):   :zlib%s.so)re   rf   )re   )r#   r&   existsr@   r$   rA   rB   rC   rP   rD   r7   strip
startswithrI   r   r'   )	r+   is64r9   rL   pathsrM   linedirZlibfiler   r   r   _findLib_crle   s6    

 rp   Fc             C   s   t t| |pt| S )N)rS   rp   rO   )r+   rl   r   r   r   r,      s    c             C   s   dd l }|jddkr&tj jd }ntj jd }dddddd	}|j|d
}d}tj|tj| |f }yZt	j
ddgt	jt	jt	jdddd,}tj||jj }|rtj|jdS W d Q R X W n tk
r   Y nX d S )Nr   lrg   z-32z-64zlibc6,x86-64zlibc6,64bitzlibc6,IA-64)z	x86_64-64zppc64-64z
sparc64-64zs390x-64zia64-64Zlibc6z\s+(lib%s\.[^\s]+)\s+\(%sz/sbin/ldconfigz-pr4   )r5   r6   )stdinr8   r7   r9   r   )structZcalcsizer#   unamemachinegetr:   r;   r<   rA   rB   rP   rC   rH   r7   rE   rI   rJ   rD   )r+   rs   ru   Zmach_mapZabi_typeZregexprN   r   r   r   _findSoname_ldconfig   s.    
rx   c             C   s   dt j|  }ddg}tjjd}|rHx |jdD ]}|jd|g q2W |jdtjd|  g d }yFtj	|tj
tj
d	d
}|j \}}t j|tj|}	|	r|	jd}W n" tk
r }
 zW Y d d }
~
X nX |S )Nz[^\(\)\s]*lib%s\.[^\(\)\s]*Zldz-tZLD_LIBRARY_PATHrh   z-Lz-oz-l%sT)r7   r8   Zuniversal_newlinesr   )r;   r<   r#   r$   rv   r   extenddevnullrA   rB   rC   ZcommunicaterH   rI   rJ   	Exception)r+   rK   cmdZlibpathr   resultrw   out_rN   er   r   r   _findLib_ld  s&    
r   c             C   s   t | ptt| pt| S )N)rx   rS   rO   r   )r+   r   r   r   r,   ,  s    c              C   s   ddl m}  tjdkr:t| j t| jd ttd tjdkrttd ttd ttd tj	d	krt| j
d
 t| j
d t| j
d t| j
d n(t| j
d t| j
d ttd d S )Nr   )cdllr   r   r-   r!   r    bz2r.   z
libm.dylibzlibcrypto.dylibzlibSystem.dylibzSystem.framework/Systemzlibm.sozlibcrypt.soZcrypt)Zctypesr   r#   r+   printr   loadr,   r   platformZLoadLibrary)r   r   r   r   test4  s"    



r   __main__)rV   rW   rX   )F)r#   r=   rA   r   r+   r   r   r,   r   Zctypes.macholib.dyldr/   r0   r;   r?   rO   rS   rk   r^   rp   rx   r   r   __name__r   r   r   r   <module>   s8   

+



$
