???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................
e fz                 @   s  d  Z  d d l Td d l m Z d Z d Z e d  Z e d  Z e d  Z	 e d	  Z
 i e e d
  f d 6e e d  f d 6e e d  f d 6e e d  f d 6e e d  f d 6e e d  f d 6e e d  f d 6e e d  f d 6Z i
 e e f d 6e e f d 6e e f d 6e e e f g f d 6e e e f g f d 6e e e f g f d 6e e e f g f d 6e e e f g f d  6e e e f g f d! 6e e f d" 6Z i e d# 6e d$ 6e d% 6e d& 6e  d' 6e! d( 6e" d) 6e# d* 6Z$ Gd+ d,   d,  Z% Gd- d.   d.  Z& Gd/ d0   d0  Z' d1 d2   Z( d3 d4   Z) d5 d6   Z* d7 d8   Z+ d9 d:   Z, d; d< d=  Z- d> d?   Z. e d@  Z/ e dA  Z0 e dB  Z1 e e2 e3 g  Z4 dC dD   Z5 dE dF   Z6 d dG dH dI  Z7 dJ dK   Z8 dL dM   Z9 dG S)NzInternal support module for sre    )*)	MAXREPEATz.\[{()*+?^$|z*+?{
0123456789Z01234567Z0123456789abcdefABCDEFz 	
z\az\bz\f
z\nz\r	z\tz\v\z\\z\Az\Bz\dz\Dz\sz\Sz\wz\Wz\ZiLmsxatuc               @   sC   e  Z d  Z d d   Z d d d  Z d d   Z d d	   Z d S)
Patternc             C   s1   d |  _  g  |  _ d |  _ i  |  _ d |  _ d  S)Nr      )flagsopengroups	groupdict
lookbehind)self r   ./opt/alt/python34/lib64/python3.4/sre_parse.py__init__C   s
    				zPattern.__init__Nc             C   s   |  j  } | d |  _  | d  k	 ru |  j j | d   } | d  k	 re t d t |  | | f   n  | |  j | <n  |  j j |  | S)Nr   z7redefinition of group name %s as group %d; was group %d)r   r   geterrorreprr   append)r   namegidogidr   r   r   	opengroupJ   s    	zPattern.opengroupc             C   s   |  j  j |  d  S)N)r   remove)r   r%   r   r   r   
closegroupU   s    zPattern.closegroupc             C   s   | |  j  k  o | |  j k S)N)r   r   )r   r%   r   r   r   
checkgroupW   s    zPattern.checkgroup)__name__
__module____qualname__r   r'   r)   r*   r   r   r   r   r   A   s   r   c               @   s   e  Z d  Z d 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 d   Z d d   Z d S)
SubPatternNc             C   s4   | |  _  | d  k r g  } n  | |  _ d  |  _ d  S)N)patterndatawidth)r   r/   r0   r   r   r   r   \   s
    			zSubPattern.__init__r   c             C   s  d } t  t f } x|  j D]\ } } t | d | d d | t k r t   x| D]% \ } } t | d d | |  qZ Wq | t k r t   xct | d  D]8 \ } } | r t | d d  n  | j | d  q Wq | t k rQ| \ } }	 }
 t d |  |	 j | d  |
 rt | d d  |
 j | d  qq t	 | |  rd } xv | D]n } t	 | t
  r| st   n  | j | d  d } qm| st d	 d d n  t | d d d } qmW| st   qq t d |  q Wd  S)
NTz  end r   orelseF )tuplelistr0   printINBRANCH	enumeratedumpGROUPREF_EXISTS
isinstancer.   )r   levelnlseqtypesopavr   r   	condgroupitem_yesitem_nor   r   r   r=   b   sH     
	
zSubPattern.dumpc             C   s   t  |  j  S)N)r"   r0   )r   r   r   r   __repr__   s    zSubPattern.__repr__c             C   s   t  |  j  S)N)lenr0   )r   r   r   r   __len__   s    zSubPattern.__len__c             C   s   |  j  | =d  S)N)r0   )r   indexr   r   r   __delitem__   s    zSubPattern.__delitem__c             C   s1   t  | t  r& t |  j |  j |  S|  j | S)N)r?   slicer.   r/   r0   )r   rK   r   r   r   __getitem__   s    zSubPattern.__getitem__c             C   s   | |  j  | <d  S)N)r0   )r   rK   coder   r   r   __setitem__   s    zSubPattern.__setitem__c             C   s   |  j  j | |  d  S)N)r0   insert)r   rK   rO   r   r   r   rQ      s    zSubPattern.insertc             C   s   |  j  j |  d  S)N)r0   r#   )r   rO   r   r   r   r#      s    zSubPattern.appendc             C   s  |  j  r |  j  Sd } } t t t t t t f } t t f } xy|  j	 D]n\ } } | t
 k r t d } d } xB | d D]6 } | j   \ }	 }
 t | |	  } t | |
  } q{ W| | } | | } qH | t k r| j   \ } } | | } | | } qH | t k r:| d j   \ } } | | } | | } qH | | k r| d j   \ } } | | | d } | | | d } qH | | k r| d } | d } qH | t k rH PqH qH Wt | t d  t | t  f |  _  |  j  S)Nr   r      )r1   ANYRANGEr:   LITERALNOT_LITERALCATEGORY
MIN_REPEAT
MAX_REPEATr0   r;   r   getwidthminmaxCALL
SUBPATTERNSUCCESS)r   lohi	UNITCODESREPEATCODESrC   rD   r   jlhr   r   r   rZ      sD    	





%zSubPattern.getwidth)r+   r,   r-   r   r=   rH   rJ   rL   rN   rP   rQ   r#   rZ   r   r   r   r   r.   Z   s   (r.   c               @   sg   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 S)	Tokenizerc             C   s2   t  | t  |  _ | |  _ d |  _ |  j   d  S)Nr   )r?   stristextstringrK   _Tokenizer__next)r   rj   r   r   r   r      s    		zTokenizer.__init__c             C   s   |  j  t |  j  k r% d  |  _ d  S|  j |  j  |  j  d  } | re |  j re t | d  } n  | d k r y |  j |  j  d } Wn t k
 r t d   Yn X|  j s t |  } n  | | } n  |  j  t |  |  _  | |  _ d  S)Nr   r   r   zbogus escape (end of line))rK   rI   rj   nextri   chr
IndexErrorr!   )r   charcr   r   r   __next   s     		zTokenizer.__nextr   c             C   s*   | |  j  k r& | r" |  j   n  d Sd S)Nr   r   )rl   rk   )r   ro   skipr   r   r   match   s
    zTokenizer.matchc             C   s   |  j  } |  j   | S)N)rl   rk   )r   thisr   r   r   r       s    	
zTokenizer.getc             C   sN   d } xA t  |  D]3 } |  j } | | k r2 Pn  | | 7} |  j   q W| S)Nr3   )rangerl   rk   )r   ncharsetresult_rp   r   r   r   getwhile   s    	
zTokenizer.getwhilec             C   s   |  j  |  j f S)N)rK   rl   )r   r   r   r   tell   s    zTokenizer.tellc             C   s   | \ |  _  |  _ d  S)N)rK   rl   )r   rK   r   r   r   seek   s    zTokenizer.seekN)
r+   r,   r-   r   rk   rs   r    rz   r{   r|   r   r   r   r   rg      s   	rg   c             C   sd   d d  l  } | j d t d d d |  k o9 d k n pc d |  k oU d k n pc |  d	 k S)
Nr   z*sre_parse.isident() will be removed in 3.5
stacklevelrR   r   zAZry   )warningswarnDeprecationWarning)ro   r   r   r   r   isident   s    	r   c             C   s:   d d  l  } | j d t d d d |  k o7 d k SS)Nr   z*sre_parse.isdigit() will be removed in 3.5r}   rR   09)r   r   r   )ro   r   r   r   r   isdigit   s    	r   c             C   ss   d d  l  } | j d t d d t |  d  s6 d Sx6 |  d d   D]$ } t |  rG t |  rG d SqG Wd S)Nr   z)sre_parse.isname() will be removed in 3.5r}   rR   Fr   T)r   r   r   r   r   )r$   r   ro   r   r   r   isname   s    	r   c             C   s7  t  j |  } | r | St j |  } | rB | d t k rB | Sy| d d  } | d k r | |  j d t  7} t |  d k r t  n  t t	 | d d   d  d @f S| d k r|  j
 r| |  j d t  7} t |  d	 k r t  n  t t	 | d d   d  f S| d
 k r|  j
 r| |  j d t  7} t |  d k r\t  n  t	 | d d   d  } t |  t | f S| t k r| |  j d t  7} t t	 | d d   d  d @f S| t k rt  n  t |  d k rt t | d  f SWn t k
 rYn Xt d t |    d  S)Nr   r   rR   r            r      U   
   zbogus escape: %s)ESCAPESr    
CATEGORIESr:   rz   	HEXDIGITSrI   
ValueErrorrU   intri   rm   	OCTDIGITSDIGITSordr!   r"   )sourceescaperO   rp   r   r   r   _class_escape  sF    	!		

!	r   c             C   s  t  j |  } | r | St j |  } | r2 | Sy| d d  } | d k r | |  j d t  7} t |  d k r t  n  t t | d d   d  d @f S| d k r|  j	 r| |  j d t  7} t |  d k r t  n  t t | d d   d  f S| d	 k ry|  j	 ry| |  j d
 t  7} t |  d k rLt  n  t | d d   d  } t
 |  t | f S| d k r| |  j d t  7} t t | d d   d
  d @f S| t k r|  j t k rJ| |  j   } | d t k rJ| d t k rJ|  j t k rJ| |  j   } t t | d d   d
  d @f Sn  t | d d    } | | j k  r| j |  st d   n  | j rd d  l } | j d t  n  t | f St  n  t |  d k rt t | d  f SWn t k
 rYn Xt d t |    d  S)Nr   rR   r   r   r   r   r   r   r   r   r   r   zcannot refer to open groupr   z;group references in lookbehind assertions are not supportedzbogus escape: %s)r   r    r   rz   r   rI   r   rU   r   ri   rm   r   r   rl   r   r*   r!   r   r   r   RuntimeWarningGROUPREFr   r"   )r   r   staterO   rp   groupr   r   r   r   _escape5  sd    	!		

! $		

	r   r   c             C   s  g  } | j  } |  j } x\ | t |  |   | d  r@ q n  | sJ Pn  |  j sc | d d  rg Pq t d   q Wt |  d k r | d St |  } | j  } xx d  } xj | D]= }	 |	 s Pn  | d  k r |	 d } q |	 d | k r Pq q Wx | D] }	 |	 d =q W| |  q Pq Wxz | D]0 }	 t |	  d k sT|	 d d t k r(Pq(q(Wg  }
 |
 j  } x | D] }	 | |	 d  qrW| t |
 f  | S| j  t	 d  | f f  | S)N|)r   zpattern not properly closedr   )
r#   rs   _parserl   r!   rI   r.   rU   r:   r;   )r   r   nesteditemsitemsappendsourcematch
subpatternsubpatternappendprefixitemset	setappendr   r   r   
_parse_subr  sR    			
&	r   c             C   s   t  |  |  } |  j d  rN t  |  |  } |  j d  rT t d   qT n d  } |  j r |  j d d  r t d   n  t |  } | j t | | | f f  | S)Nr   z/conditional backref with more than two branchesr   r   zpattern not properly closed)r   rs   r!   rl   r.   r#   r>   )r   r   rE   rF   rG   r   r   r   r   _parse_sub_cond  s    r   z|)z=!<z=!c       "      C   s  t  |  } | j } |  j } |  j } t } t } t } t }	 t }
 xp|  j	 | k r[ Pn  |   } | d  k rt Pn  | j
 t @r | t k r qH n  | d k r x |   } | d/ k r Pq q WqH q n  | r | d t k r | t t |  f  qH | d k rg  } | j } | d  r1| t d  f  n  | d  d   } x|   } | d k ri| | k riPnO | r| d d k rt |  |  } n' | rt t |  f } n t d   | d	  r|   } | d k r| d t k r| d
 d } n  | |  | t t d	  f  Pq	| r| d d k rFt |  |  } n t t |  f } | d t k sx| d t k rt d   n  | d
 } | d
 } | | k  rt d   n  | t | | f f  q	t d   qD| d t k r| d
 d } n  | |  qDW| |  d
 k rD| d d t k rD| | d  q| |  d k r| d d t k r| d
 d t k r| t | d
 d
 f  q| t | f  qH | rN| d t k rN| d k rd0 \ } } n| d k rd t } } n| d k rd
 t } } nw| d k r|  j	 d k rL| t t |  f  qH n  |  j   } d t } } d } } x# |  j	 t k r| |  j   } qrW| d  rx) |  j	 t k r| |   } qWn | } | d  s| t t |  f  |  j |  qH n  | r2t |  } | t k r2t d   q2n  | rt |  } | t k r_t d   n  | | k  r}t d   q}qn t d   | r| d1 d   } n d  } | s| |  d
 k r| d d t k rt d   n  | d d |
 k r
t d   n  | d  r2t | | | f f | d2 <qt | | | f f | d3 <qH | d k rm| t  d  f  qH | d k r2d
 } d  } d  } | d  rDd } | d  ry| d  r=d } xB |   } | d  k rt d   n  | d k rPn  | | } qWd
 } | st d   n  | j!   svt d  |   qvqA| d!  rBd } xB |   } | d  k rvt d   n  | d" k rPn  | | } qRW| st d   n  | j!   st d# |   n  | j" j |  } | d  k rd$ j# |  } t |   n  | j$ r,d d  l% } | j& d% t'  n  | t( | f  qH qA|   } | d  k rft d&   n  t d' |   qD| d(  rd } qD| d  rx- |  j	 d  k s|  j	 d" k rPn  |   qW| d"  sH t d)   qH qH qD|  j	 | k r	|   } d
 } | d k rT	|  j	 |	 k r3	t d*   n  d4 } |   } | j$ d
 7_$ n  t) |  |  } | d k  r	| j$ d
 8_$ n  | d"  s	t d)   n  | d! k r	| t* | | f f  qH | t+ | | f f  qH qD| d  r
d }  xB |   } | d  k r
t d   n  | d" k r&
Pn  |  | }  q	Wd } |  sO
t d   n  |  j!   r
| j" j |   } | d  k r
d$ j# |   } t |   q
n1 y t |   } Wn t, k
 r
t d+   Yn X| j$ rAd d  l% } | j& d% t'  qAqD|  j	 t- k rt d&   n  x- |  j	 t- k r@| j
 t- |   B| _
 qWn  | r| d k r_d  } n | j. |  } | rt/ |  | |  } n t) |  |  } | d"  st d)   n  | d  k	 r| j0 |  n  | t1 | | f f  qx |   } | d  k rt d&   n  | d" k rPn  t d,   qWqH | d k rQ| t t2 f  qH | d- k rs| j t t3 f  qH | r| d d k rt4 |  | |  }! | |!  qH t d.   qH W| S)5N#r   r   [^]r   z$unexpected end of regular expression-r   zbad character rangerR   ?r   +{}r3   ,z"the repetition number is too largezbad repeat intervalznot supportedznothing to repeatzmultiple repeat.(P<zunterminated name>zmissing group namezbad character in group name %r=r   z&bad character in backref group name %rzunknown group name: {0!r}z;group references in lookbehind assertions are not supportedzunexpected end of patternzunknown specifier: ?P%s:zunbalanced parenthesiszsyntax errorzbad character in group namezunknown extension$zparser error)Nr   )r   r   r   r   r   )5r.   r#   r    rs   rI   _PATTERNENDERS_ASSERTCHARS_LOOKBEHINDASSERTCHARS_REPEATCODESrl   r   SRE_FLAG_VERBOSE
WHITESPACESPECIAL_CHARSrU   r   NEGATEr   r!   r:   rT   rV   REPEAT_CHARSr   r{   r   r|   r   OverflowErrorATrX   rY   rS   isidentifierr   formatr   r   r   r   r   r   ASSERT
ASSERT_NOTr   FLAGSr'   r   r)   r^   AT_BEGINNINGAT_ENDr   )"r   r   r   r   	sourcegetr   _lenPATTERNENDERSASSERTCHARSLOOKBEHINDASSERTCHARSrc   rt   r   r   startcode1code2r`   ra   r[   r\   herer   r   r$   rE   ro   r%   msgr   dirpcondnamerO   r   r   r   r     s   									
 

&:
-				
									r   c             C   s_   t  |  t  rB | t @s& | t O} q[ | t @r[ t d   q[ n | t @r[ t d   n  | S)Nz(ASCII and UNICODE flags are incompatiblez+can't use UNICODE flag with a bytes pattern)r?   rh   SRE_FLAG_ASCIISRE_FLAG_UNICODEr   )srcr   r   r   r   	fix_flags  s    


r   Nc             C   s   t  |   } | d  k r$ t   } n  | | _ |  | _ t | | d  } t |  | j j  | j _ | j   } | d k r t d   n | r t d   n  | t	 @r | j
   n  | t @r | j j t @r t |  | j j  S| S)Nr   r   zunbalanced parenthesisz-bogus characters at end of regular expression)rg   r   r   rh   r   r   r/   r    r!   SRE_FLAG_DEBUGr=   r   parse)rh   r   r/   r   r   tailr   r   r   r     s"    		
r   c                sn  t  |   } | j } g    g   g    j }     f d d   } x|   } | d  k rd Pn  | d d k r| d } | d k rd } | j d  r xE |   }	 |	 d  k r t d	   n  |	 d
 k r Pn  | |	 7} q Wn  | s t d   n  y+ t |  }
 |
 d k  r&t d   n  Wnn t k
 r| j   sRt d   n  y | j | }
 Wn- t	 k
 rd j
 |  } t |   Yn XYn X| |
  q| d k r| j t k r| |   7} | j t k r| |   7} qn  | t t | d d   d  d @  q| t k rd } | j t k r| |   7} | t k r| d t k r| j t k r| |   7} d } | t t | d d   d  d @  qn  | s| t | d d     qqy t t | d  } Wn t	 k
 rYn X| |  qK | |  qK W r? j d j    n  t |  t  sdd d    D  n     f S)Nc                sV    r,  j  d j     d  d   =n    j  t   |  f   j  d   d  S)Nr3   )r#   joinrI   )rK   )r   literalliteralsr   r   addgroup(  s
    z parse_template.<locals>.addgroupr   r   r   gr3   r   zunterminated group namer   zmissing group nameznegative group numberzbad character in group namezunknown group name: {0!r}r   r   r   FrR   Tc             S   s1   g  |  ]' } | d  k r d  n | j  d   q S)Nzlatin-1)encode).0r   r   r   r   
<listcomp>l  s   	 z"parse_template.<locals>.<listcomp>)rg   r    r#   rs   r!   r   r   r   
groupindexKeyErrorr   rn   rl   r   rm   r   r   r   r?   rh   )r   r/   r   sgetlappendr   rt   rp   r$   ro   rK   r   isoctalr   )r   r   r   r   parse_template  s    			
	*- r   c       	      C   s   | j  } | j d  d  } |  \ } } | d  d   } yJ xC | D]; \ } } | |  | | <} | d  k rB t d   qB qB WWn t k
 r t d   Yn X| j |  S)Nr   zunmatched groupzinvalid group reference)r   rj   r!   rn   r   )	templaters   r   sepr   r   rK   r   r   r   r   r   expand_templateo  s    	r   ):__doc__sre_constants_srer   r   r   r   r   r   r   r   rU   r   r   r   AT_BEGINNING_STRINGAT_BOUNDARYAT_NON_BOUNDARYr:   rW   CATEGORY_DIGITCATEGORY_NOT_DIGITCATEGORY_SPACECATEGORY_NOT_SPACECATEGORY_WORDCATEGORY_NOT_WORDAT_END_STRINGr   SRE_FLAG_IGNORECASESRE_FLAG_LOCALESRE_FLAG_MULTILINESRE_FLAG_DOTALLr   r   SRE_FLAG_TEMPLATEr   r   r   r.   rg   r   r   r   r   r   r   r   r   r   r   rX   rY   r   r   r   r   r   r   r   r   r   r   <module>   sr   

e4*=; 7P