Ñò
mÈKc           @   sÓ  d  Z  d d k Z d d k Td „  Z d Z d Z e d ƒ Z e d ƒ Z e d	 ƒ Z e d
 ƒ Z	 h 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 h
 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 h e d$ 6e d% 6e d& 6e d' 6e d( 6e  d) 6e! d* 6Z" d+ f  d, „  ƒ  YZ# d- f  d. „  ƒ  YZ$ d/ f  d0 „  ƒ  YZ% d1 „  Z& d2 „  Z' d3 „  Z( d4 „  Z) d5 „  Z* d6 d7 „ Z+ d8 „  Z, e d9 ƒ Z- e d: ƒ Z. e d; ƒ Z/ e e0 e1 g ƒ Z2 d< „  Z3 d= e4 d> „ Z5 d? „  Z6 d@ „  Z7 d S(A   s   Internal support module for sreiÿÿÿÿN(   t   *c         C   s%   h  } x |  D] } d | | <q W| S(   Ni   (    (   t   seqt   st   elem(    (    s   /usr/lib/python2.6/sre_parse.pyt   set   s
     s   .\[{()*+?^$|s   *+?{t
   0123456789t   01234567t   0123456789abcdefABCDEFs    	
s   s   \as   s   \bs   s   \fs   
s   \ns   s   \rs   	s   \ts   s   \vs   \s   \\s   \As   \Bs   \ds   \Ds   \ss   \Ss   \ws   \Ws   \Zt   it   Lt   mR   t   xt   tt   ut   Patternc           B   s/   e  Z d  „  Z d d „ Z d „  Z d „  Z RS(   c         C   s(   d |  _  g  |  _ d |  _ h  |  _ d  S(   Ni    i   (   t   flagst   opent   groupst	   groupdict(   t   self(    (    s   /usr/lib/python2.6/sre_parse.pyt   __init__I   s    			c         C   sŠ   |  i  } | d |  _  | d  j	 oS |  i i | d  ƒ } | d  j	 o  t d t | ƒ | | f ‚ n | |  i | <n |  i i | ƒ | S(   Ni   s7   redefinition of group name %s as group %d; was group %d(   R   t   NoneR   t   gett   errort   reprR   t   append(   R   t   namet   gidt   ogid(    (    s   /usr/lib/python2.6/sre_parse.pyt	   opengroupN   s    	c         C   s   |  i  i | ƒ d  S(   N(   R   t   remove(   R   R   (    (    s   /usr/lib/python2.6/sre_parse.pyt
   closegroupY   s    c         C   s   | |  i  j  o | |  i j S(   N(   R   R   (   R   R   (    (    s   /usr/lib/python2.6/sre_parse.pyt
   checkgroup[   s    N(   t   __name__t
   __module__R   R   R   R   R    (    (    (    s   /usr/lib/python2.6/sre_parse.pyR   G   s   		t
   SubPatternc           B   sh   e  Z d d  „ Z d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z RS(   c         C   s6   | |  _  | d  j o
 g  } n | |  _ d  |  _ d  S(   N(   t   patternR   t   datat   width(   R   R$   R%   (    (    s   /usr/lib/python2.6/sre_parse.pyR   `   s
    	
	i    c         C   sƒ  d } t  d ƒ t  g  ƒ f } x^|  i D]S\ } } | d | Gd } | d j o7 Hd } x| D]! \ } } | d d | G| GHqa Wnæ | d j oe Hd } d } xÈ | d D]E } | d j o | d d GHn | i | d ƒ d } | d } q¯ Wnt t  | ƒ | j oV x] | D]G } t | t ƒ o' | p Hn | i | d ƒ d } q| Gd } qWn | Gd } | p Hq( q( Wd  S(   Ni   s     i    t   int   brancht   or(    (   t   typeR%   t   dumpt
   isinstanceR#   (   R   t   levelt   nlt   seqtypest   opt   avt   aR   (    (    s   /usr/lib/python2.6/sre_parse.pyR+   f   sJ    
          
   c         C   s   t  |  i ƒ S(   N(   R   R%   (   R   (    (    s   /usr/lib/python2.6/sre_parse.pyt   __repr__‚   s    c         C   s   t  |  i ƒ S(   N(   t   lenR%   (   R   (    (    s   /usr/lib/python2.6/sre_parse.pyt   __len__„   s    c         C   s   |  i  | =d  S(   N(   R%   (   R   t   index(    (    s   /usr/lib/python2.6/sre_parse.pyt   __delitem__†   s    c         C   s3   t  | t ƒ o t |  i |  i | ƒ S|  i | S(   N(   R,   t   sliceR#   R$   R%   (   R   R6   (    (    s   /usr/lib/python2.6/sre_parse.pyt   __getitem__ˆ   s    c         C   s   | |  i  | <d  S(   N(   R%   (   R   R6   t   code(    (    s   /usr/lib/python2.6/sre_parse.pyt   __setitem__Œ   s    c         C   s   |  i  i | | ƒ d  S(   N(   R%   t   insert(   R   R6   R:   (    (    s   /usr/lib/python2.6/sre_parse.pyR<   Ž   s    c         C   s   |  i  i | ƒ d  S(   N(   R%   R   (   R   R:   (    (    s   /usr/lib/python2.6/sre_parse.pyR      s    c         C   s  |  i  o |  i  Sd } } t t t t t t f } t t f } x|  i	 D]…\ } } | t
 j ol t i } d } xB | d D]6 } | i ƒ  \ }	 }
 t | |	 ƒ } t | |
 ƒ } q} W| | } | | } qJ | t j o* | i ƒ  \ } } | | } | | } qJ | t j o. | d i ƒ  \ } } | | } | | } qJ | | j oJ | d i ƒ  \ } } | t | ƒ | d } | t | ƒ | d } qJ | | j o | d } | d } qJ | t j o PqJ qJ Wt t | t i ƒ ƒ t t | t i ƒ ƒ f |  _  |  i  S(   Nl    i    i   i   (   R&   t   ANYt   RANGEt   INt   LITERALt   NOT_LITERALt   CATEGORYt
   MIN_REPEATt
   MAX_REPEATR%   t   BRANCHt   syst   maxintt   getwidtht   mint   maxt   CALLt
   SUBPATTERNt   longt   SUCCESSt   int(   R   t   lot   hit	   UNITCODESt   REPEATCODESR0   R1   R   t   jt   lt   h(    (    s   /usr/lib/python2.6/sre_parse.pyRH   ’   sH    


 	 



	3N(   R!   R"   R   R   R+   R3   R5   R7   R9   R;   R<   R   RH   (    (    (    s   /usr/lib/python2.6/sre_parse.pyR#   ^   s   							t	   Tokenizerc           B   sA   e  Z d  „  Z d „  Z d d „ Z d „  Z d „  Z d „  Z RS(   c         C   s    | |  _  d |  _ |  i ƒ  d  S(   Ni    (   t   stringR6   t   _Tokenizer__next(   R   RX   (    (    s   /usr/lib/python2.6/sre_parse.pyR   ¸   s    		c         C   s°   |  i  t |  i ƒ j o d  |  _ d  S|  i |  i  } | d d j oE y |  i |  i  d } Wn t j
 o t d ‚ n X| | } n |  i  t | ƒ |  _  | |  _ d  S(   Ni    s   \i   s   bogus escape (end of line)(   R6   R4   RX   R   t   nextt
   IndexErrorR   (   R   t   chart   c(    (    s   /usr/lib/python2.6/sre_parse.pyt   __next¼   s    	i   c         C   s.   | |  i  j o | o |  i ƒ  n d Sd S(   Ni   i    (   RZ   RY   (   R   R\   t   skip(    (    s   /usr/lib/python2.6/sre_parse.pyt   matchÉ   s
    c         C   s   |  i  } |  i ƒ  | S(   N(   RZ   RY   (   R   t   this(    (    s   /usr/lib/python2.6/sre_parse.pyR   Ï   s    	
c         C   s   |  i  |  i f S(   N(   R6   RZ   (   R   (    (    s   /usr/lib/python2.6/sre_parse.pyt   tellÓ   s    c         C   s   | \ |  _  |  _ d  S(   N(   R6   RZ   (   R   R6   (    (    s   /usr/lib/python2.6/sre_parse.pyt   seekÕ   s    (   R!   R"   R   RY   R`   R   Rb   Rc   (    (    (    s   /usr/lib/python2.6/sre_parse.pyRW   ·   s   				c         C   sF   d |  j o
 d j n p( d |  j o
 d j n p
 |  d j S(   NR2   t   zt   At   Zt   _(    (   R\   (    (    s   /usr/lib/python2.6/sre_parse.pyt   isidentØ   s    c         C   s   d |  j o d j SS(   Nt   0t   9(    (   R\   (    (    s   /usr/lib/python2.6/sre_parse.pyt   isdigitÛ   s    c         C   sP   t  |  d ƒ p t Sx3 |  d D]' } t  | ƒ o t | ƒ o t Sq! Wt S(   Ni    i   (   Rh   t   FalseRk   t   True(   R   R\   (    (    s   /usr/lib/python2.6/sre_parse.pyt   isnameÞ   s     	c      
   C   sÂ  t  i | ƒ } | o | St i | ƒ } | o | Sy_| d d !} | d j o‹ x8 |  i t j o' t | ƒ d j  o | |  i ƒ  } qV W| d } t | ƒ d j o t d t d | ƒ ‚ n t t	 | d ƒ d @f S| t
 j o] x8 |  i t
 j o' t | ƒ d j  o | |  i ƒ  } qî W| d } t t	 | d	 ƒ d @f S| t j o t d t | ƒ ‚ n t | ƒ d j o t t | d ƒ f SWn t j
 o n Xt d t | ƒ ‚ d  S(
   Ni   i   R   i   s   bogus escape: %ss   \i   iÿ   i   (   t   ESCAPESR   t
   CATEGORIESRZ   t	   HEXDIGITSR4   R   R   R@   RO   t	   OCTDIGITSt   DIGITSt   ordt
   ValueError(   t   sourcet   escapeR:   R]   (    (    s   /usr/lib/python2.6/sre_parse.pyt   _class_escapeç   s:     #
 #
c      
   C   sb  t  i | ƒ } | o | St i | ƒ } | o | Syÿ| d d !} | d j ot x8 |  i t j o' t | ƒ d j  o | |  i ƒ  } qV Wt | ƒ d j o
 t ‚ n t t | d d ƒ d @f S| d j oW x8 |  i t	 j o' t | ƒ d j  o | |  i ƒ  } q× Wt t | d d ƒ d @f S| t
 j oÔ |  i t
 j or | |  i ƒ  } | d t	 j oM | d t	 j o< |  i t	 j o, | |  i ƒ  } t t | d d ƒ d @f Sn t | d ƒ } | | i j  o( | i | ƒ p t d	 ‚ n t | f St ‚ n t | ƒ d j o t t | d ƒ f SWn t j
 o n Xt d
 t | ƒ ‚ d  S(   Ni   i   R   i   i   iÿ   Ri   i   s   cannot refer to open groups   bogus escape: %s(   Rp   R   Ro   RZ   Rq   R4   Ru   R@   RO   Rr   Rs   R   R    R   t   GROUPREFRt   R   (   Rv   Rw   t   stateR:   R]   t   group(    (    s   /usr/lib/python2.6/sre_parse.pyt   _escape  sL     #
 #" 
i   c         C   sÈ  g  } | i  } |  i } x_ | t |  | ƒ ƒ | d ƒ o q n | p Pn |  i p | d d ƒ o Pq t d ‚ q t | ƒ d j o	 | d St | ƒ } | i  } x} d  } xp | D]C }	 |	 p Pn | d  j o |	 d } q» |	 d | j o Pq» q» Wx | D] }	 |	 d =q	W| | ƒ q® Pq® x} | D]3 }	 t |	 ƒ d j p |	 d d t j o Pq2q2Wg  }
 |
 i  } x | D] }	 | |	 d ƒ qW| t	 |
 f ƒ | S| i  t
 d  | f f ƒ | S(   Nt   |t   )i    s   pattern not properly closedi   (   R   R`   t   _parseRZ   R   R4   R#   R   R@   R?   RE   (   Rv   Rz   t   nestedt   itemst   itemsappendt   sourcematcht
   subpatternt   subpatternappendt   prefixt   itemR   t	   setappend(    (    s   /usr/lib/python2.6/sre_parse.pyt
   _parse_sub3  sZ    				 	 
 (		 c         C   s¬   t  |  | ƒ } |  i d ƒ o0 t  |  | ƒ } |  i d ƒ o t d ‚ qU n d  } |  i o! |  i d d ƒ o t d ‚ n t | ƒ } | i t | | | f f ƒ | S(   NR}   s/   conditional backref with more than two branchesR~   i    s   pattern not properly closed(   R   R`   R   R   RZ   R#   R   t   GROUPREF_EXISTS(   Rv   Rz   t	   condgroupt   item_yest   item_noR„   (    (    s   /usr/lib/python2.6/sre_parse.pyt   _parse_sub_condn  s    s   |)s   =!<s   =!c          C   sê  t  | ƒ } | i } |  i } |  i } t } t } t } t }	 t }
 xž|  i	 | j o Pn | ƒ  } | d  j o Pn | i t @oM | t j o qH n | d j o( x | ƒ  } | d+ j o Pqª qª qH qÓ n | o+ | d t j o | t t | ƒ f ƒ qH | d j o¶g  } | i } | d ƒ o | t d  f ƒ n | } xÕ| ƒ  } | d j o | | j o PnR | o$ | d d j o t |  | ƒ } n' | o t t | ƒ f } n
 t d ‚ | d	 ƒ o| ƒ  } | d j oH | d t j o | d
 d } n | | ƒ | t t d	 ƒ f ƒ Pq| o­ | d d j o t |  | ƒ } n t t | ƒ f } | d t j p | d t j o t d ‚ n | d
 } | d
 } | | j  o t d ‚ n | t | | f f ƒ qt d ‚ qL| d t j o | d
 d } n | | ƒ qL| | ƒ d
 j o' | d d t j o | | d ƒ qã| | ƒ d j oF | d d t j o1 | d
 d t j o | t | d
 d
 f ƒ qã| t | f ƒ qH | ox| d t j og| d j o d, \ } } nŠ| d j o d t } } nl| d j o d
 t } } nN| d j o7|  i	 d j o | t t | ƒ f ƒ qH n |  i ƒ  } d t } } d } } x% |  i	 t j o | |  i ƒ  } q™W| d ƒ o) x, |  i	 t j o | | ƒ  } qÎWn | } | d ƒ p* | t t | ƒ f ƒ |  i | ƒ qH n | o t | ƒ } n | o t | ƒ } n | | j  o t d ‚ q†n
 t d ‚ | o | d } n d  } | p( | | ƒ d
 j o" | d d t j o t d ‚ n | d d |
 j o t d ‚ n | d ƒ o t | | | f f | d <qãt | | | f f | d <qH | d j o | t  d  f ƒ qH | d j oèd
 } d  } d  } | d ƒ oÖd } | d ƒ oe| d ƒ oo d } xB | ƒ  } | d  j o t d ‚ n | d j o Pn | | } q½d
 } t! | ƒ p t d ‚ qqf
| d  ƒ o¨ d } xB | ƒ  } | d  j o t d ‚ n | d! j o Pn | | } q9t! | ƒ p t d ‚ n | i" i | ƒ } | d  j o t d" ‚ n | t# | f ƒ qH qf
| ƒ  } | d  j o t d# ‚ n t d$ | ‚ qj
| d% ƒ o
 d } qj
| d ƒ oS x/ |  i	 d  j p |  i	 d! j o Pn | ƒ  q3| d! ƒ p t d& ‚ qH qH qj
|  i	 | j o¹ | ƒ  } d
 } | d j o0 |  i	 |	 j o t d' ‚ n d } | ƒ  } n t$ |  | ƒ } | d! ƒ p t d& ‚ n | d  j o | t% | | f f ƒ qH | t& | | f f ƒ qH qj
| d ƒ oÁ d } xB | ƒ  } | d  j o t d ‚ n | d! j o Pn | | } qb	d } t! | ƒ o0 | i" i | ƒ } | d  j o t d" ‚ q
qf
y t | ƒ } Wqf
t' j
 o t d ‚ qf
Xqj
|  i	 t( j o t d# ‚ n x0 |  i	 t( j o | i t( | ƒ  B| _ q:
Wn | o¤ | d j o
 d  } n | i) | ƒ } | o t* |  | | ƒ } n t$ |  | ƒ } | d! ƒ p t d& ‚ n | d  j	 o | i+ | ƒ n | t, | | f f ƒ qãxË | ƒ  } | d  j o t d# ‚ n | d! j o Pn t d( ‚ qqH | d j o | t t- f ƒ qH | d) j o | i t t. f ƒ qH | o1 | d d j o  t/ |  | | ƒ } | | ƒ qH t d* ‚ qH | S(-   Nt   #s   
i    t   [t   ^t   ]s   \s$   unexpected end of regular expressiont   -i   s   bad character rangei   t   ?R    t   +t   {t   }t    t   ,s   bad repeat intervals   not supportediÿÿÿÿs   nothing to repeats   multiple repeatt   .t   (t   Pt   <s   unterminated namet   >s   bad character in group namet   =R~   s   unknown group names   unexpected end of patterns   unknown specifier: ?P%st   :s   unbalanced parenthesiss   syntax errors   unknown extensiont   $s   parser error(   Ns   
(   i    i   (0   R#   R   R   R`   R4   t   _PATTERNENDERSt   _ASSERTCHARSt   _LOOKBEHINDASSERTCHARSt   _REPEATCODESRZ   R   R   t   SRE_FLAG_VERBOSEt
   WHITESPACEt   SPECIAL_CHARSR@   Rt   t   NEGATERx   R   R?   R>   RA   t   REPEAT_CHARSt	   MAXREPEATRb   Rs   Rc   RO   t   ATRC   RD   R=   Rn   R   Ry   R‰   t   ASSERTt
   ASSERT_NOTRu   t   FLAGSR   RŽ   R   RL   t   AT_BEGINNINGt   AT_ENDR|   (    Rv   Rz   R„   R…   t	   sourcegetRƒ   t   _lent   PATTERNENDERSt   ASSERTCHARSt   LOOKBEHINDASSERTCHARSRS   Ra   R   Rˆ   t   startt   code1t   code2RP   RQ   RI   RJ   t   hereR‡   R{   R   R‹   R\   R   t   dirt   pt   condnameR:   (    (    s   /usr/lib/python2.6/sre_parse.pyR     sÊ   									
"

(=
  	0			
 
		  
	i    c         C   sÒ   t  |  ƒ } | d  j o t ƒ  } n | | _ |  | _ t | | d ƒ } | i ƒ  } | d j o t d ‚ n | o t d ‚ n | t @o | i	 ƒ  n | t
 @o% | i i t
 @o t |  | i i ƒ S| S(   Ni    R~   s   unbalanced parenthesiss-   bogus characters at end of regular expression(   RW   R   R   R   t   strR‰   R   R   t   SRE_FLAG_DEBUGR+   R¦   R$   t   parse(   R¾   R   R$   Rv   R¼   t   tail(    (    s   /usr/lib/python2.6/sre_parse.pyRÀ     s     		c         C   sÅ  t  |  ƒ } | i } g  } | i } | | d „ } |  d  } t | ƒ t d ƒ j o
 t } n t } xÞ| ƒ  }	 |	 d  j o Pn |	 o¯|	 d d j ož|	 d d !}
 |
 d j od } | i d ƒ oI xF | ƒ  } | d  j o t d	 ‚ n | d
 j o Pn | | } qÏ n | p t d ‚ n y* t	 | ƒ } | d j  o t d ‚ n Wn] t
 j
 oQ t | ƒ p t d ‚ n y | i | } Wq³t j
 o t d ‚ q³Xn X| t | f ƒ qD|
 d j og | i t j o2 |	 | ƒ  }	 | i t j o |	 | ƒ  }	 qn | | t	 |	 d d ƒ d @ƒ ƒ qD|
 t j o¶ t } | i t j ow |	 | ƒ  }	 |
 t j oY |	 d t j oH | i t j o8 |	 | ƒ  }	 t } | | t	 |	 d d ƒ d @ƒ ƒ qÕn | p | t t	 |	 d ƒ f ƒ q6qDy | t |	 d ƒ }	 Wn t j
 o n X| |	 ƒ qi | |	 ƒ qi d } g  } | i } d  g t | ƒ } xI | D]A \ }
 } |
 t j o | | | f ƒ n | | | <| d } qvW| | f S(   Nc         S   sP   | o5 | d d t  j o  t  | d d |  f | d <n | t  |  f ƒ d  S(   Niÿÿÿÿi    i   (   R@   (   t   literalR¼   t   pappend(    (    s   /usr/lib/python2.6/sre_parse.pyRÂ   À  s     i    R˜   s   \i   i   t   gR   s   unterminated group nameRž   s   bad group names   negative group numbers   bad character in group names   unknown group nameRi   i   iÿ   (   RW   R   R   R*   t   chrt   unichrR   R`   R   RO   Ru   Rn   t
   groupindext   KeyErrorR[   t   MARKRZ   Rr   Rs   Rl   Rm   Ro   R4   (   Rv   R$   R   t   sgetR¼   R2   RÂ   t   sept   makecharRa   R]   R   R\   R6   t   isoctalR   R   t   groupsappendt   literals(    (    s   /usr/lib/python2.6/sre_parse.pyt   parse_template¹  s’    		

		%)"	 
c   	   
   C   sž   | i  } | i d  } |  \ } } | } yI xB | D]: \ } } | | ƒ | | <} | d  j o t d ‚ q3 q3 WWn t j
 o t d ‚ n X| i | ƒ S(   Ni    s   unmatched groups   invalid group reference(   R{   RX   R   R   R[   t   join(	   t   templateR`   RÄ   RË   R   RÏ   R6   R{   R   (    (    s   /usr/lib/python2.6/sre_parse.pyt   expand_template  s    	 (8   t   __doc__RF   t   sre_constantsR   R¨   Rª   Rs   Rr   Rq   R§   R@   Rt   Ro   R¬   t   AT_BEGINNING_STRINGt   AT_BOUNDARYt   AT_NON_BOUNDARYR?   RB   t   CATEGORY_DIGITt   CATEGORY_NOT_DIGITt   CATEGORY_SPACEt   CATEGORY_NOT_SPACEt   CATEGORY_WORDt   CATEGORY_NOT_WORDt   AT_END_STRINGRp   t   SRE_FLAG_IGNORECASEt   SRE_FLAG_LOCALEt   SRE_FLAG_MULTILINEt   SRE_FLAG_DOTALLR¦   t   SRE_FLAG_TEMPLATEt   SRE_FLAG_UNICODER¯   R   R#   RW   Rh   Rk   Rn   Rx   R|   R‰   RŽ   R¢   R£   R¤   RC   RD   R¥   R   R   RÀ   RÐ   RÓ   (    (    (    s   /usr/lib/python2.6/sre_parse.pyt   <module>   sp   
	
Y!					 	,;		ÿ 	W