£Á°è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>

]N.                 @   s   d  d d d d d d d d d	 d
 d g Z  d d l Z d Z d Z d Z e e Z d Z e d d Z d Z d Z	 e e e	 e Z
 d d d  Z d d l Z d d l m Z Gd d   d e  Z Gd d   d d e Z Gd d
   d
  Z d S)ascii_lettersascii_lowercaseascii_uppercasecapwordsdigits	hexdigits	octdigits	printablepunctuation
whitespace	FormatterTemplate    Nz 	
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789ZabcdefZABCDEF01234567z !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~c             C   s)   | p	 d j  d d   |  j |  D  S)N c             s   s   |  ] } | j    Vq d  S)N)
capitalize).0x r   +/opt/alt/python35/lib64/python3.5/string.py	<genexpr>0   s    zcapwords.<locals>.<genexpr>)joinsplit)ssepr   r   r   r   %   s    )ChainMapc                   s(   e  Z d  Z d Z   f d d   Z   S)_TemplateMetaclassa/  
    %(delim)s(?:
      (?P<escaped>%(delim)s) |   # Escape sequence of two delimiters
      (?P<named>%(id)s)      |   # delimiter and a Python identifier
      {(?P<braced>%(id)s)}   |   # delimiter and a braced identifier
      (?P<invalid>)              # Other ill-formed delimiter exprs
    )
    c                s   t  t |   j | | |  d | k r4 |  j } n( t j d t j |  j  d |  j i } t j | |  j	 t j
 B |  _ d  S)Npatterndelimid)superr   __init__r   _reescape	delimiter	idpatterncompileflagsVERBOSE)clsnamebasesdctr   )	__class__r   r   r#   A   s    z_TemplateMetaclass.__init__)__name__
__module____qualname__r   r#   r   r   )r/   r   r   7   s   r   c               @   sU   e  Z d  Z d Z d Z e j Z d d   Z d d   Z	 d d   Z
 d	 d
   Z d S)r   $z[_a-z][_a-z0-9]*c             C   s   | |  _  d  S)N)template)selfr4   r   r   r   r#   T   s    zTemplate.__init__c             C   s   | j  d  } |  j d  |  j d d  } | sC d } d } n/ | t d j | d  d    } t |  } t d | | f   d  S)NinvalidkeependsT    z.Invalid placeholder in string: line %d, col %d)startr4   
splitlineslenr   
ValueError)r5   moilinescolnolinenor   r   r   _invalidY   s    	#zTemplate._invalidc                 s   |  s t  d   |  ^  }  t |   d k r< t  d   |  sK |   n& | rg t | |  d    n
 |  d      f d d   }  j j |  j  S)Nz>descriptor 'substitute' of 'Template' object needs an argumentr8   zToo many positional argumentsr   c                s   |  j  d  p |  j  d  } | d  k	 r?   | } d | f S|  j  d  d  k	 r[  j S|  j  d  d  k	 r}  j |   t d  j   d  S)Nnamedbracedz%sescapedr6   z#Unrecognized named group in pattern)groupr&   rD   r>   r   )r?   rE   val)mappingr5   r   r   converts   s    
z$Template.substitute.<locals>.convert)	TypeErrorr=   	_ChainMapr   subr4   )argskwsrK   r   )rJ   r5   r   
substitutee   s    	
zTemplate.substitutec                 s   |  s t  d   |  ^  }  t |   d k r< t  d   |  sK |   n& | rg t | |  d    n
 |  d      f d d   }  j j |  j  S)NzCdescriptor 'safe_substitute' of 'Template' object needs an argumentr8   zToo many positional argumentsr   c                s   |  j  d  p |  j  d  } | d  k	 r\ y d   | f SWn t k
 r[ |  j    SYn X|  j  d  d  k	 rx  j S|  j  d  d  k	 r |  j    St d  j   d  S)NrE   rF   z%srG   r6   z#Unrecognized named group in pattern)rH   KeyErrorr&   r>   r   )r?   rE   )rJ   r5   r   r   rK      s    
z)Template.safe_substitute.<locals>.convert)rL   r=   rM   r   rN   r4   )rO   rP   rK   r   )rJ   r5   r   safe_substitute   s    	
zTemplate.safe_substituteN)r0   r1   r2   r&   r'   r$   
IGNORECASEr)   r#   rD   rQ   rS   r   r   r   r   r   M   s   		metaclassc               @   s   e  Z d  Z d d   Z d d   Z d d d  Z d d	   Z d
 d   Z d d   Z d d   Z	 d d   Z
 d d   Z d S)r   c              O   s   |  s t  d   |  ^ } }  y |  ^ } }  Wna t k
 r d | k r~ | j d  } d d  l } | j d t d d n t  d  d   Yn X| j | |  |  S)Nz;descriptor 'format' of 'Formatter' object needs an argumentformat_stringr   z9Passing 'format_string' as keyword argument is deprecated
stacklevel   z@format() missing 1 required positional argument: 'format_string')rL   r>   popwarningswarnDeprecationWarningvformat)rO   kwargsr5   rV   rZ   r   r   r   format   s    		zFormatter.formatc             C   sA   t    } |  j | | | | d  \ } } |  j | | |  | S)NrX   )set_vformatcheck_unused_args)r5   rV   rO   r^   	used_argsresult_r   r   r   r]      s    	!zFormatter.vformatr   c          	   C   sU  | d k  r t  d   g  } x!|  j |  D]\ } }	 }
 } | rS | j |  |	 d  k	 r. |	 d k r | d k r t  d   t |  }	 | d 7} n$ |	 j   r | r t  d   d } |  j |	 | |  \ } } | j |  |  j | |  } |  j |
 | | | | d d | \ }
 } | j |  j	 | |
   q. Wd j
 |  | f S)Nr   zMax string recursion exceededr9   FzJcannot switch from manual field specification to automatic field numberingr8   auto_arg_index)r>   parseappendstrisdigit	get_fieldaddconvert_fieldra   format_fieldr   )r5   rV   rO   r^   rc   recursion_depthrf   rd   literal_text
field_nameformat_spec
conversionobjarg_usedr   r   r   ra      s4    	zFormatter._vformatc             C   s#   t  | t  r | | S| | Sd  S)N)
isinstanceint)r5   keyrO   r^   r   r   r   	get_value   s    zFormatter.get_valuec             C   s   d  S)Nr   )r5   rc   rO   r^   r   r   r   rb     s    zFormatter.check_unused_argsc             C   s   t  | |  S)N)r_   )r5   valuerr   r   r   r   rn     s    zFormatter.format_fieldc             C   sk   | d  k r | S| d k r& t  |  S| d k r< t |  S| d k rR t |  St d j |    d  S)Nr   raz"Unknown conversion specifier {0!s})ri   reprasciir>   r_   )r5   rz   rs   r   r   r   rm     s    


zFormatter.convert_fieldc             C   s   t  j |  S)N)_stringformatter_parser)r5   rV   r   r   r   rg      s    zFormatter.parsec       	      C   sm   t  j |  \ } } |  j | | |  } x6 | D]. \ } } | rU t | |  } q1 | | } q1 W| | f S)N)r   formatter_field_name_splitry   getattr)	r5   rq   rO   r^   firstrestrt   is_attrr@   r   r   r   rk   )  s    zFormatter.get_fieldN)r0   r1   r2   r_   r]   ra   ry   rb   rn   rm   rg   rk   r   r   r   r   r      s   5	)__all__r   r
   r   r   r   r   r   r   r	   r   r   rer$   collectionsr   rM   typer   r   r   r   r   r   r   <module>   s$   
a