Ρς
θRc           @` s,  d  d k  l Z l Z l Z d  d k l Z d  d k Z e i Z y d  d k l	 Z	 Wn e
 j
 o n Xd d k l Z l Z l Z d d k l Z l Z l Z d d k l Z d  d	 k l Z d
 i e  Z y d  d k l Z l Z Wn e
 j
 o d Z nXd Z h  Z e d  d j Z xΗ e e i    D]³ \ Z  Z! e o e e!  d j p e o e e!  d j o q9n e! d j o^ e e!  d j o e i" e!  Z! n e# e!  Z! e! e j p e  i$   o e  e e! <qμq9q9Wd   Z% e e e%  [ d e& f d     YZ' d   Z( d S(   i    (   t   absolute_importt   divisiont   unicode_literals(   t	   text_typeN(   t   reducei   (   t   voidElementst   booleanAttributest   spaceCharacters(   t   rcdataElementst   entitiest   xmlEntities(   t   utils(   t   escapeu    (   t   register_errort   xmlcharrefreplace_errorsu   strictu   htmlentityreplaceu   τΏΏi   u   &c   
   	   C` s  t  |  t t f  oeg  } g  } t } xΈ t |  i |  i |  i ! D] \ } } | o t } qE n | |  i } t i	 |  i | t
 |  i | d g  ! o' t i |  i | | d ! } t } n t |  } | i |  qE Wx~ | D]v } t i |  }	 |	 o? | i d  | i |	  |	 i d  p | i d  q`qκ | i d t |  d  qκ Wd i |  |  i f St |   Sd  S(   Ni   u   &u   ;u   &#x%s;u    (   t
   isinstancet   UnicodeEncodeErrort   UnicodeTranslateErrort   Falset	   enumeratet   objectt   startt   endR   t   isSurrogatePairt   mint   surrogatePairToCodepointt   Truet   ordt   appendt   encode_entity_mapt   gett   endswitht   hext   joinR   (
   t   exct   rest
   codepointst   skipt   it   ct   indext	   codepointt   cpt   e(    (    si   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/html5lib/serializer/htmlserializer.pyt   htmlentityreplace_errors*   s4     -
 t   HTMLSerializerc           B` s   e  Z e Z d  Z e Z e Z e Z e Z	 e Z
 e Z e Z e Z e Z e Z e Z d Z d   Z d   Z d   Z d d  Z d d  Z d d  Z RS(   u   "u   quote_attr_valuesu
   quote_charu   use_best_quote_charu   minimize_boolean_attributesu   use_trailing_solidusu   space_before_trailing_solidusu   omit_optional_tagsu   strip_whitespaceu   inject_meta_charsetu   escape_lt_in_attrsu   escape_rcdatau   resolve_entitiesu   sanitizec      	   K` si   d | j o t  |  _ n x6 |  i D]+ } t |  | | i | t |  |    q$ Wg  |  _ t  |  _ d S(   u  Initialize HTMLSerializer.

        Keyword options (default given first unless specified) include:

        inject_meta_charset=True|False
          Whether it insert a meta element to define the character set of the
          document.
        quote_attr_values=True|False
          Whether to quote attribute values that don't require quoting
          per HTML5 parsing rules.
        quote_char=u'"'|u"'"
          Use given quote character for attribute quoting. Default is to
          use double quote unless attribute value contains a double quote,
          in which case single quotes are used instead.
        escape_lt_in_attrs=False|True
          Whether to escape < in attribute values.
        escape_rcdata=False|True
          Whether to escape characters that need to be escaped within normal
          elements within rcdata elements such as style.
        resolve_entities=True|False
          Whether to resolve named character entities that appear in the
          source tree. The XML predefined entities &lt; &gt; &amp; &quot; &apos;
          are unaffected by this setting.
        strip_whitespace=False|True
          Whether to remove semantically meaningless whitespace. (This
          compresses all whitespace to a single space except within pre.)
        minimize_boolean_attributes=True|False
          Shortens boolean attributes to give just the attribute value,
          for example <input disabled="disabled"> becomes <input disabled>.
        use_trailing_solidus=False|True
          Includes a close-tag slash at the end of the start tag of void
          elements (empty elements whose end tag is forbidden). E.g. <hr/>.
        space_before_trailing_solidus=True|False
          Places a space immediately before the closing slash in a tag
          using a trailing solidus. E.g. <hr />. Requires use_trailing_solidus.
        sanitize=False|True
          Strip all unsafe or unknown constructs from output.
          See `html5lib user documentation`_
        omit_optional_tags=True|False
          Omit start/end tags that are optional.

        .. _html5lib user documentation: http://code.google.com/p/html5lib/wiki/UserDocumentation
        u
   quote_charN(   R   t   use_best_quote_chart   optionst   setattrR   t   getattrt   errorst   strict(   t   selft   kwargst   attr(    (    si   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/html5lib/serializer/htmlserializer.pyt   __init__i   s    ,
 )	c         C` s=   t  | t  p t  |  i o | i |  i t  S| Sd  S(   N(   R   R   t   AssertionErrort   encodingt   encodet   unicode_encode_errors(   R4   t   string(    (    si   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/html5lib/serializer/htmlserializer.pyR:      s    
c         C` s=   t  | t  p t  |  i o | i |  i d  S| Sd  S(   Nu   strict(   R   R   R8   R9   R:   (   R4   R<   (    (    si   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/html5lib/serializer/htmlserializer.pyt   encodeStrict£   s    
c         #` sm  | |  _  t } g  |  _ | o- |  i o# d d k l } | | |  } n |  i o  d d k l } | |  } n |  i o  d d k	 l } | |  } n |  i
 o  d d k l } | |  } n x| D]} | d } | d j oι d | d } | d o | d | d 7} n | d	 o | d
 7} n | d	 oz | d	 i d  d j o; | d	 i d  d j o |  i t d   n d } n d } | d | | d	 | f 7} n | d 7} |  i |  VqΡ | d1 j o~ | d j p | oN | o1 | d i d  d j o |  i t d   n |  i | d  Vqe|  i t | d   VqΡ | d2 j o| d }	 |  i d |	  V|	 t j o |  i o
 t } n | o |  i t d   n xε| d i   D]Σ\ \ }
 } } | } |   |  i d  V|  i |  V|  i p8 | t i |	 t    j or| t i d t    j oV|  i d  V|  i p   o
 t } n  t   f d   t d t  }   i d d     |  i o   i d! d"    n | oΒ |  i } |  i  oL d   j o d   j o
 d } q:d   j o d   j o
 d } q:n | d j o   i d d#    n   i d d$    |  i |  V|  i    V|  i |  Vq―|  i    VqάqάW|	 t! j o8 |  i" o. |  i# o |  i d%  Vqψ|  i d&  Vn |  i d  VqΡ | d' j oU | d }	 |	 t j o
 t } n | o |  i t d   n |  i d( |	  VqΡ | d) j oQ | d } | i d*  d j o |  i t d+   n |  i d, | d  VqΡ | d- j o} | d }	 |	 d. } | t$ j o |  i t d/ |	   n |  i% o | t& j o t$ | } n d0 |	 } |  i |  VqΡ |  i | d  qΡ Wd  S(3   Ni   (   t   Filteru   typeu   Doctypeu   <!DOCTYPE %su   nameu   publicIdu    PUBLIC "%s"u   systemIdu    SYSTEMu   "i    u   'uA   System identifer contains both single and double quote charactersu    %s%s%su   >u
   Charactersu   SpaceCharactersu   datau   </u   Unexpected </ in CDATAu   StartTagu   EmptyTagu   <%su+   Unexpected child element of a CDATA elementu    u    u   =c         ` s   |  p
 |   j S(    (    (   t   xt   y(   t   v(    si   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/html5lib/serializer/htmlserializer.pyt   <lambda>ξ   s    u   >"'=u   &u   &amp;u   <u   &lt;u   &#39;u   &quot;u    /u   /u   EndTagu   </%s>u   Commentu   --u   Comment contains --u	   <!--%s-->u   Entityu   ;u   Entity %s not recognizedu   &%s;(   u
   Charactersu   SpaceCharacters(   u   StartTagu   EmptyTag('   R9   R   R2   t   inject_meta_charsett   filters.inject_meta_charsetR>   t   strip_whitespacet   filters.whitespacet   sanitizet   filters.sanitizert   omit_optional_tagst   filters.optionaltagst   findt   serializeErrort   _R=   R:   R   R   t   escape_rcdataR   t   itemst   minimize_boolean_attributesR   R   t   tuplet   quote_attr_valuesR   R   t   replacet   escape_lt_in_attrst
   quote_charR.   R   t   use_trailing_solidust   space_before_trailing_solidusR	   t   resolve_entitiesR
   (   R4   t
   treewalkerR9   t   in_cdataR>   t   tokent   typet   doctypeRU   t   namet   attr_namespacet	   attr_namet
   attr_valuet   kt
   quote_attrt   datat   key(    (   RA   si   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/html5lib/serializer/htmlserializer.pyt	   serializeͺ   sΠ    		


 


!

 

	








c         C` sG   | o  d i  t |  i | |    Sd i  t |  i |    Sd  S(   Nt    u    (   R!   t   listRf   (   R4   RY   R9   (    (    si   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/html5lib/serializer/htmlserializer.pyt   render&  s     u   XXX ERROR MESSAGE NEEDEDc         C` s(   |  i  i |  |  i o
 t  n d  S(   N(   R2   R   R3   t   SerializeError(   R4   Rd   (    (    si   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/html5lib/serializer/htmlserializer.pyRL   ,  s    
(   u   quote_attr_valuesu
   quote_charu   use_best_quote_charu   minimize_boolean_attributesu   use_trailing_solidusu   space_before_trailing_solidusu   omit_optional_tagsu   strip_whitespaceu   inject_meta_charsetu   escape_lt_in_attrsu   escape_rcdatau   resolve_entitiesu   sanitizeN(   t   __name__t
   __module__R   RR   RU   R   R.   RI   RP   RV   RW   RT   RN   RX   RC   RE   RG   R/   R7   R:   R=   t   NoneRf   Ri   RL   (    (    (    si   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/html5lib/serializer/htmlserializer.pyR-   L   s0       	3		|c         C` s   d S(   u   Error in serialized treeN(    (   t	   Exception(    (    si   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/html5lib/serializer/htmlserializer.pyRj   3  s    ()   t
   __future__R    R   R   t   pip.vendor.sixR   t   gettextRM   t	   functoolsR   t   ImportErrort	   constantsR   R   R   R   R	   R
   Rg   R   t   xml.sax.saxutilsR   R!   t   codecsR   R   R;   R   t   lent   is_ucs4Rh   RO   Rb   RA   R   R   t   islowerR,   R   R-   Rj   (    (    (    si   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vendor/html5lib/serializer/htmlserializer.pyt   <module>   sF   	 	η