ÿØÿà 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
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     
fM  c               @   sJ  d  Z  d d l Z d d l Z d d l Z e j d  Z e j d  Z e j d  Z e j d  Z e j d  Z	 e j d  Z
 e j d	  Z e j d
  Z e j d  Z e j d  Z e j d  Z e j d e j  Z e j d e j  Z e j d  Z e j d  Z Gd d   d e  Z Gd d   d e j  Z d S(   u   A parser for HTML and XHTML.i    Nu   [&<]u
   &[a-zA-Z#]u%   &([a-zA-Z][-.a-zA-Z0-9]*)[^a-zA-Z0-9]u)   &#(?:[0-9]+|[xX][0-9a-fA-F]+)[^0-9a-fA-F]u	   <[a-zA-Z]u   >u   --\s*>u(   ([a-zA-Z][-.a-zA-Z0-9:_]*)(?:\s|/(?!>))*u$   ([a-zA-Z][^	
 /> ]*)(?:\s|/(?!>))*uJ   \s*([a-zA-Z_][-.:a-zA-Z_0-9]*)(\s*=\s*(\'[^\']*\'|"[^"]*"|[^\s"\'=<>`]*))?u]   ((?<=[\'"\s/])[^\s/>][^\s/=>]*)(\s*=+\s*(\'[^\']*\'|"[^"]*"|(?![\'"])[^>\s]*))?(?:\s|/(?!>))*u  
  <[a-zA-Z][-.a-zA-Z0-9:_]*          # tag name
  (?:\s+                             # whitespace before attribute name
    (?:[a-zA-Z_][-.:a-zA-Z0-9_]*     # attribute name
      (?:\s*=\s*                     # value indicator
        (?:'[^']*'                   # LITA-enclosed value
          |\"[^\"]*\"                # LIT-enclosed value
          |[^'\">\s]+                # bare value
         )
       )?
     )
   )*
  \s*                                # trailing whitespace
uF  
  <[a-zA-Z][^\t\n\r\f />\x00]*       # tag name
  (?:[\s/]*                          # optional whitespace before attribute name
    (?:(?<=['"\s/])[^\s/>][^\s/=>]*  # attribute name
      (?:\s*=+\s*                    # value indicator
        (?:'[^']*'                   # LITA-enclosed value
          |"[^"]*"                   # LIT-enclosed value
          |(?!['"])[^>\s]*           # bare value
         )
         (?:\s*,)*                   # possibly followed by a comma
       )?(?:\s|/(?!>))*
     )*
   )?
  \s*                                # trailing whitespace
u#   </\s*([a-zA-Z][-.a-zA-Z0-9:_]*)\s*>c             B   s5   |  Ee  Z d  Z d Z d d d  Z d d   Z d S(   u   HTMLParseErroru&   Exception raised for all parse errors.c             C   s'   | |  _  | d |  _ | d |  _ d  S(   Ni    i   (   u   msgu   linenou   offset(   u   selfu   msgu   position(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   __init__P   s    	u   HTMLParseError.__init__c             C   sW   |  j  } |  j d  k	 r, | d |  j } n  |  j d  k	 rS | d |  j d } n  | S(   Nu   , at line %du   , column %di   (   u   msgu   linenou   Noneu   offset(   u   selfu   result(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   __str__V   s    	u   HTMLParseError.__str__N(   NN(   u   __name__u
   __module__u   __qualname__u   __doc__u   Noneu   __init__u   __str__(   u
   __locals__(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   HTMLParseErrorM   s   u   HTMLParseErrorc             B   sd  |  Ee  Z d  Z d Z d: Z d; d d  Z d d   Z d d	   Z d
 d   Z	 d d   Z
 d9 Z d d   Z d d   Z d 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' d(   Z d) d*   Z d+ d,   Z d- d.   Z d/ d0   Z d1 d2   Z d3 d4   Z d5 d6   Z  d7 d8   Z! d9 S(<   u
   HTMLParseru  Find tags and other markup and call handler functions.

    Usage:
        p = HTMLParser()
        p.feed(data)
        ...
        p.close()

    Start tags are handled by calling self.handle_starttag() or
    self.handle_startendtag(); end tags by self.handle_endtag().  The
    data between tags is passed from the parser to the derived class
    by calling self.handle_data() with the data as argument (the data
    may be split up in arbitrary chunks).  Entity references are
    passed by calling self.handle_entityref() with the entity
    reference as the argument.  Numeric character references are
    passed to self.handle_charref() with the string containing the
    reference as the argument.
    u   scriptu   stylec             C   s6   | r t  j d t d d n  | |  _ |  j   d S(   u   Initialize and reset this instance.

        If strict is set to False (the default) the parser will parse invalid
        markup, otherwise it will raise an error.  Note that the strict mode
        is deprecated.
        u   The strict mode is deprecated.u
   stackleveli   N(   u   warningsu   warnu   DeprecationWarningu   strictu   reset(   u   selfu   strict(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   __init__u   s
    		u   HTMLParser.__init__c             C   s8   d |  _  d |  _ t |  _ d |  _ t j j |   d S(   u1   Reset this instance.  Loses all unprocessed data.u    u   ???N(	   u   rawdatau   lasttagu   interesting_normalu   interestingu   Noneu
   cdata_elemu   _markupbaseu
   ParserBaseu   reset(   u   self(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   reset   s
    				u   HTMLParser.resetc             C   s!   |  j  | |  _  |  j d  d S(   u   Feed data to the parser.

        Call this as often as you want, with as little or as much text
        as you want (may include '\n').
        i    N(   u   rawdatau   goahead(   u   selfu   data(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   feed   s    u   HTMLParser.feedc             C   s   |  j  d  d S(   u   Handle any buffered data.i   N(   u   goahead(   u   self(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   close   s    u   HTMLParser.closec             C   s   t  | |  j     d  S(   N(   u   HTMLParseErroru   getpos(   u   selfu   message(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   error   s    u   HTMLParser.errorc             C   s   |  j  S(   u)   Return full source of start tag: '<...>'.(   u   _HTMLParser__starttag_text(   u   self(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   get_starttag_text   s    u   HTMLParser.get_starttag_textc             C   s2   | j    |  _ t j d |  j t j  |  _ d  S(   Nu   </\s*%s\s*>(   u   loweru
   cdata_elemu   reu   compileu   Iu   interesting(   u   selfu   elem(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   set_cdata_mode   s    u   HTMLParser.set_cdata_modec             C   s   t  |  _ d  |  _ d  S(   N(   u   interesting_normalu   interestingu   Noneu
   cdata_elem(   u   self(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   clear_cdata_mode   s    	u   HTMLParser.clear_cdata_modec       
      C   s  |  j  } d } t |  } x| | k  r|  j j | |  } | rT | j   } n |  j ra Pn  | } | | k  r |  j | | |   n  |  j | |  } | | k r Pn  | j } | d |  rqt	 j
 | |  r |  j |  } n | d |  r|  j |  } n | d |  r-|  j |  } n | d |  rN|  j |  } ng | d |  r|  j rx|  j |  } q|  j |  } n+ | d | k  r|  j d  | d } n P| d k  r\| sPn  |  j r|  j d  n  | j d	 | d  } | d k  r8| j d | d  } | d k  rB| d } qBn
 | d 7} |  j | | |   n  |  j | |  } q | d
 |  rMt j
 | |  } | r| j   d d  }	 |  j |	  | j   } | d | d  s| d } n  |  j | |  } q qd | | d   k rI|  j | | | d   |  j | | d  } n  Pq | d |  r t j
 | |  } | r| j d  }	 |  j |	  | j   } | d | d  s| d } n  |  j | |  } q n  t j
 | |  } | re| ra| j   | | d   k ra|  j r'|  j d  qa| j   } | | k rH| } n  |  j | | d  } n  Pq| d | k  r|  j d  |  j | | d  } qPq q W| r| | k  r|  j r|  j | | |   |  j | |  } n  | | d   |  _  d  S(   Ni    u   <u   </u   <!--u   <?u   <!i   u   EOF in middle of constructu   >u   &#i   u   ;u   &u#   EOF in middle of entity or char refi(   u   rawdatau   lenu   interestingu   searchu   startu
   cdata_elemu   handle_datau	   updateposu
   startswithu   starttagopenu   matchu   parse_starttagu   parse_endtagu   parse_commentu   parse_piu   strictu   parse_declarationu   parse_html_declarationu   erroru   findu   charrefu   groupu   handle_charrefu   endu	   entityrefu   handle_entityrefu
   incomplete(
   u   selfu   endu   rawdatau   iu   nu   matchu   ju
   startswithu   ku   name(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   goahead   s    		  			
"		u   HTMLParser.goaheadc             C   s   |  j  } | | | d  d k r0 |  j |  S| | | d  d k rW |  j |  S| | | d  j   d k r | j d | d  } | d
 k r d S|  j | | d	 |   | d S|  j |  Sd  S(   Ni   u   <!--i   u   <![i	   u	   <!doctypeu   >i   i   ii(   u   rawdatau   parse_commentu   parse_marked_sectionu   loweru   findu   handle_declu   parse_bogus_comment(   u   selfu   iu   rawdatau   gtpos(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   parse_html_declaration  s    	 u!   HTMLParser.parse_html_declarationi   c             C   s[   |  j  } | j d | d  } | d k r/ d S| rS |  j | | d |   n  | d S(   Nu   >i   i   ii(   u   rawdatau   findu   handle_comment(   u   selfu   iu   reportu   rawdatau   pos(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   parse_bogus_comment)  s    	u   HTMLParser.parse_bogus_commentc             C   s`   |  j  } t j | | d  } | s) d S| j   } |  j | | d |   | j   } | S(   Ni   i   i(   u   rawdatau   picloseu   searchu   startu	   handle_piu   end(   u   selfu   iu   rawdatau   matchu   j(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   parse_pi5  s    	u   HTMLParser.parse_pic             C   s  d  |  _ |  j |  } | d k  r( | S|  j } | | |  |  _ g  } |  j rl t j | | d  } n t j | | d  } | j   } | j	 d  j
   |  _ } x'| | k  r|  j r t j | |  } n t j | |  } | s Pn  | j	 d d d  \ }	 }
 } |
 s d  } ns | d  d  d k oK| d d   k n s| d  d  d k o{| d d   k n r| d d  } n  | r|  j |  } n  | j |	 j
   | f  | j   } q W| | |  j   } | d k r|  j   \ } } d	 |  j k rO| |  j j d	  } t |  j  |  j j d	  } n | t |  j  } |  j r|  j d
 | | |  d  d  f  n  |  j | | |   | S| j d  r|  j | |  n/ |  j | |  | |  j k r|  j |  n  | S(   Ni    i   i   i   u   'u   "u   >u   />u   
u    junk characters in start tag: %ri   iii(   u   >u   />(   u   Noneu   _HTMLParser__starttag_textu   check_for_whole_start_tagu   rawdatau   strictu   tagfindu   matchu   tagfind_tolerantu   endu   groupu   loweru   lasttagu   attrfindu   attrfind_tolerantu   unescapeu   appendu   stripu   getposu   countu   lenu   rfindu   erroru   handle_datau   endswithu   handle_startendtagu   handle_starttagu   CDATA_CONTENT_ELEMENTSu   set_cdata_mode(   u   selfu   iu   endposu   rawdatau   attrsu   matchu   ku   tagu   mu   attrnameu   restu	   attrvalueu   endu   linenou   offset(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   parse_starttagA  s^    					00		"u   HTMLParser.parse_starttagc             C   sk  |  j  } |  j r' t j | |  } n t j | |  } | r[| j   } | | | d  } | d k rs | d S| d k r | j d |  r | d S| j d |  r d S|  j r |  j | | d  |  j d  n  | | k r | S| d Sn  | d k rd S| d k rd S|  j r@|  j | |  |  j d	  n  | | k rP| S| d Sn  t	 d
   d  S(   Ni   u   >u   /u   />i   u   malformed empty start tagu    u6   abcdefghijklmnopqrstuvwxyz=/ABCDEFGHIJKLMNOPQRSTUVWXYZu   malformed start tagu   we should not get here!iii(
   u   rawdatau   strictu   locatestarttagendu   matchu   locatestarttagend_tolerantu   endu
   startswithu	   updateposu   erroru   AssertionError(   u   selfu   iu   rawdatau   mu   ju   next(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   check_for_whole_start_tag}  s>    				u$   HTMLParser.check_for_whole_start_tagc             C   s  |  j  } t j | | d  } | s) d S| j   } t j | |  } | s1|  j d  k	 rw |  j | | |   | S|  j	 r |  j
 d | | |  f  n  t j | | d  } | s | | | d  d k r | d S|  j |  Sn  | j d  j   } | j d | j    } |  j |  | d S| j d  j   } |  j d  k	 r| |  j k r|  j | | |   | Sn  |  j | j    |  j   | S(   Ni   u   bad end tag: %ri   i   u   </>u   >i(   u   rawdatau	   endendtagu   searchu   endu
   endtagfindu   matchu
   cdata_elemu   Noneu   handle_datau   strictu   erroru   tagfind_tolerantu   parse_bogus_commentu   groupu   loweru   findu   handle_endtagu   clear_cdata_mode(   u   selfu   iu   rawdatau   matchu   gtposu	   namematchu   tagnameu   elem(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   parse_endtag  s:    		!
u   HTMLParser.parse_endtagc             C   s!   |  j  | |  |  j |  d  S(   N(   u   handle_starttagu   handle_endtag(   u   selfu   tagu   attrs(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   handle_startendtag  s    u   HTMLParser.handle_startendtagc             C   s   d  S(   N(    (   u   selfu   tagu   attrs(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   handle_starttag  s    u   HTMLParser.handle_starttagc             C   s   d  S(   N(    (   u   selfu   tag(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   handle_endtag  s    u   HTMLParser.handle_endtagc             C   s   d  S(   N(    (   u   selfu   name(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   handle_charref  s    u   HTMLParser.handle_charrefc             C   s   d  S(   N(    (   u   selfu   name(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   handle_entityref  s    u   HTMLParser.handle_entityrefc             C   s   d  S(   N(    (   u   selfu   data(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   handle_data  s    u   HTMLParser.handle_datac             C   s   d  S(   N(    (   u   selfu   data(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   handle_comment  s    u   HTMLParser.handle_commentc             C   s   d  S(   N(    (   u   selfu   decl(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   handle_decl  s    u   HTMLParser.handle_declc             C   s   d  S(   N(    (   u   selfu   data(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu	   handle_pi  s    u   HTMLParser.handle_pic             C   s$   |  j  r  |  j d | f  n  d  S(   Nu   unknown declaration: %r(   u   strictu   error(   u   selfu   data(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   unknown_decl  s    	u   HTMLParser.unknown_declc             C   s8   d | k r | Sd d   } t  j d | | d t  j S(   Nu   &c             S   sB  |  j    d }  yx |  d d k r |  d d   }  |  d d k rh t |  d d   j d  d  } n t |  j d   } t |  SWn t k
 r d |  SYn Xd d	 l m } |  | k r | |  S|  j d  r d
 |  Sx[ t d t	 |    D]< } |  d  |  | k r | |  d  |  |  | d   Sq Wd
 |  Sd  S(   Ni    u   #i   u   xu   Xu   ;i   u   &#(   u   html5u   &i   (   u   xu   X(
   u   groupsu   intu   rstripu   chru
   ValueErroru   html.entitiesu   html5u   endswithu   rangeu   len(   u   su   cu   html5u   x(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   replaceEntities  s&    %$u,   HTMLParser.unescape.<locals>.replaceEntitiesu&   &(#?[xX]?(?:[0-9a-fA-F]+;|\w{1,32};?))u   flags(   u   reu   subu   ASCII(   u   selfu   su   replaceEntities(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   unescape  s
    	u   HTMLParser.unescapeN(   u   scriptu   styleF("   u   __name__u
   __module__u   __qualname__u   __doc__u   CDATA_CONTENT_ELEMENTSu   Falseu   __init__u   resetu   feedu   closeu   erroru   Noneu   _HTMLParser__starttag_textu   get_starttag_textu   set_cdata_modeu   clear_cdata_modeu   goaheadu   parse_html_declarationu   parse_bogus_commentu   parse_piu   parse_starttagu   check_for_whole_start_tagu   parse_endtagu   handle_startendtagu   handle_starttagu   handle_endtagu   handle_charrefu   handle_entityrefu   handle_datau   handle_commentu   handle_declu	   handle_piu   unknown_declu   unescape(   u
   __locals__(    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu
   HTMLParser_   s:   	i<+*u
   HTMLParser(   u   __doc__u   _markupbaseu   reu   warningsu   compileu   interesting_normalu
   incompleteu	   entityrefu   charrefu   starttagopenu   picloseu   commentcloseu   tagfindu   tagfind_tolerantu   attrfindu   attrfind_tolerantu   VERBOSEu   locatestarttagendu   locatestarttagend_tolerantu	   endendtagu
   endtagfindu	   Exceptionu   HTMLParseErroru
   ParserBaseu
   HTMLParser(    (    (    u0   /opt/alt/python33/lib64/python3.3/html/parser.pyu   <module>   s0   
		