£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
3
 f                  @   sV   d Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
mZmZmZ G dd dejZdS )zoFixer for execfile.

This converts usages of the execfile function into calls to the built-in
exec() function.
   )
fixer_base)
CommaNameCallLParenRParenDotNodeArgListStringsymsc               @   s   e Zd ZdZdZdd ZdS )FixExecfileTz
    power< 'execfile' trailer< '(' arglist< filename=any [',' globals=any [',' locals=any ] ] > ')' > >
    |
    power< 'execfile' trailer< '(' filename=any ')' > >
    c             C   s&  |d }|j d}|j d}|jd jd j }t|j t tddg|d}ttjt	d|g}ttj
t t	d	gttj
t t gg}	|g|	 }
|j }d|_td
d}|
t |t |g }tt	d|d}|g}|d k	r|jt |j g |d k	r|jt |j g tt	d||jdS )Nfilenameglobalslocals   z"rb" )Zrparenopenreadz'exec'compile exec)prefixr   )getZchildrenZcloner
   r   r   r	   r   Zpowerr   Ztrailerr   r   r   r   r   extend)selfZnodeZresultsr   r   r   Zexecfile_parenZ	open_argsZ	open_callr   Z	open_exprZfilename_argZexec_strZcompile_argsZcompile_callargs r   ?/opt/alt/python36/lib64/python3.6/lib2to3/fixes/fix_execfile.py	transform   s*    




zFixExecfile.transformN)__name__
__module____qualname__ZBM_compatibleZPATTERNr    r   r   r   r   r      s   r   N)__doc__r   r   Z
fixer_utilr   r   r   r   r   r   r	   r
   r   r   ZBaseFixr   r   r   r   r   <module>   s   0