ÿØÿà 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
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     
abc           @` s   d  d l  m Z m Z m Z d  d l m Z d  d l m Z m Z d  d l	 Z	 d d l
 m Z d d l
 m Z d d	 l m Z d d
 l m Z d   Z e e  Z d S(   i    (   t   absolute_importt   divisiont   unicode_literals(   t   MutableMapping(   t   minidomt   NodeNi   (   t   basei   (   t	   constants(   t
   namespaces(   t   moduleFactoryFactoryc         ` sv     d t  f d     Y  d t j f    f d     Y d t j f     f d     Y} d    t   S(   Nt   AttrListc           B` sP   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         S` s   | |  _  d  S(   N(   t   element(   t   selfR   (    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt   __init__   s    c         S` s   t  |  j j j    S(   N(   t   iterR   t
   attributest   keys(   R   (    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt   __iter__   s    c         S` sJ   t  | t  r t  n. |  j j j |  } | | _ | |  j j | <d  S(   N(   t
   isinstancet   tuplet   NotImplementedErrorR   t   ownerDocumentt   createAttributet   valueR   (   R   t   nameR   t   attr(    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt   __setitem__   s
    		c         S` s   t  |  j j  S(   N(   t   lenR   R   (   R   (    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt   __len__    s    c         S` s   t  |  j j j    S(   N(   t   listR   R   t   items(   R   (    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR   #   s    c         S` s   t  |  j j j    S(   N(   R   R   R   t   values(   R   (    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR   &   s    c         S` s-   t  | t  r t  n |  j j | j Sd  S(   N(   R   R   R   R   R   R   (   R   R   (    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt   __getitem__)   s    	c         S` s)   t  | t  r t  n |  j j | =d  S(   N(   R   R   R   R   R   (   R   R   (    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt   __delitem__/   s    	(
   t   __name__t
   __module__R   R   R   R   R   R   R    R!   (    (    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR
      s   							t   NodeBuilderc           ` s   e  Z d    Z e d    Z d   Z d d  Z d   Z d   Z	 d   Z
   f d   Z d   Z e e e  Z  f d	   Z d
   Z d   Z e e  Z RS(   c         S` s#   t  j j |  | j  | |  _ d  S(   N(   R   R   R   t   nodeNameR   (   R   R   (    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR   6   s    c         S` s"   t  |  j d  r |  j j p! d  S(   Nu   namespaceURI(   t   hasattrR   t   namespaceURIt   None(   R   (    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt   <lambda>:   s   c         S` s    |  | _  |  j j | j  d  S(   N(   t   parentR   t   appendChild(   R   t   node(    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR+   =   s    	c         S` sH   |  j  j j |  } | r4 |  j  j | | j   n |  j  j |  d  S(   N(   R   R   t   createTextNodet   insertBeforeR+   (   R   t   dataR.   t   text(    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt
   insertTextA   s    c         S` s&   |  j  j | j  | j   |  | _ d  S(   N(   R   R.   R*   (   R   R,   t   refNode(    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR.   H   s    c         S` s8   | j  j |  j  k r+ |  j  j | j   n  d  | _ d  S(   N(   R   t
   parentNodet   removeChildR(   R*   (   R   R,   (    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR4   L   s    c         S` sO   x? |  j  j   rA |  j  j } |  j  j |  | j  j |  q Wg  |  _ d  S(   N(   R   t   hasChildNodest
   firstChildR4   R+   t
   childNodes(   R   t	   newParentt   child(    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt   reparentChildrenQ   s
    c         ` s     |  j   S(   N(   R   (   R   (   R
   (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt   getAttributesX   s    c         S` s   | r x t  | j    D]~ \ } } t | t  r | d d  k	 r] | d d | d } n
 | d } |  j j | d | |  q |  j j | |  q Wn  d  S(   Ni    u   :i   i   (   R   R   R   R   R(   R   t   setAttributeNSt   setAttribute(   R   R   R   R   t   qualifiedName(    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt   setAttributes[   s    

	c         ` s     |  j  j t   S(   N(   R   t	   cloneNodet   False(   R   (   R$   (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR@   j   s    c         S` s   |  j  j   S(   N(   R   R5   (   R   (    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt
   hasContentm   s    c         S` s4   |  j  d  k r  t d |  j f S|  j  |  j f Sd  S(   Nu   html(   t	   namespaceR(   R   R   (   R   (    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt   getNameTuplep   s    N(   R"   R#   R   t   propertyRC   R+   R(   R1   R.   R4   R:   R;   R?   R   R@   RB   RD   t	   nameTuple(    (   R
   R$   (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR$   5   s   								t   TreeBuilderc           ` s   e  Z   f d    Z    f d   Z d
  f d  Z  f d   Z  f d   Z d   Z  f d   Z	 d   Z
 d   Z d
 d	  Z  Z d
 Z RS(   c         ` s+     j    j d  d  d   |  _ t j |   S(   N(   t   getDOMImplementationt   createDocumentR(   t   domt   weakreft   proxy(   R   (   t   Dom(    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt   documentClassy   s    c         ` st   | d } | d } | d }   j    } | j | | |  } |  j j  |     t k rp |  j | _ n  d  S(   Nu   nameu   publicIdu   systemId(   RH   t   createDocumentTypet   documentR+   R   RJ   R   (   R   t   tokenR   t   publicIdt   systemIdt   domimplt   doctype(   RM   R$   (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt   insertDoctype}   s    


c         ` sO   | d  k r0 |  j d  k r0 |  j j |  } n |  j j | |  }   |  S(   N(   R(   t   defaultNamespaceRJ   t   createElementt   createElementNS(   R   R   RC   R,   (   R$   (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt   elementClass   s    c         ` s     |  j  j |   S(   N(   RJ   t   createComment(   R   R/   (   R$   (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt   commentClass   s    c         ` s     |  j  j    S(   N(   RJ   t   createDocumentFragment(   R   (   R$   (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt   fragmentClass   s    c         S` s   |  j  j | j  d  S(   N(   RJ   R+   R   (   R   R,   (    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR+      s    c         ` s
     |  S(   N(    (   R   R   (   t   testSerializer(    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR_      s    c         S` s   |  j  S(   N(   RJ   (   R   (    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt   getDocument   s    c         S` s   t  j j |   j S(   N(   R   RG   t   getFragmentR   (   R   (    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyRa      s    c         S` s   | } | |  k r+ t  j j |  | |  nw t |  j d  r t j |  j j k r t |  j j  |  j _ |  j j j	 t j  q n  |  j j
 |  j j |   d  S(   Nu   _child_node_types(   R   RG   R1   R&   RJ   R   t	   TEXT_NODEt   _child_node_typesR   t   appendR+   R-   (   R   R/   R*   (    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR1      s    N(   R"   R#   RN   RV   R(   RZ   R\   R^   R+   R_   R`   Ra   R1   t   implementationR   (    (   RM   t   DomImplementationR$   R_   (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyRG   x   s   			c         ` s?   |  j    g    d    f d    |  d  d j    S(   Ni    c         ` s  |  j  t j k r |  j r |  j s- |  j rr |  j p9 d } |  j pH d }   j d d | |  j | | f  q   j d d | |  j f  q  j d d | f  n|  j  t j k r   j d  n|  j  t j k r   j d  n|  j  t j	 k r%  j d d | |  j
 f  nu|  j  t j k rX  j d	 d | |  j
 f  nBt |  d
  r|  j d  k	 rd t j |  j |  j f } n	 |  j }   j d d | | f  |  j   rg  } x t t |  j   D]r } |  j j |  } | j } | j } | j }	 |	 r8d t j |	 | j f } n	 | j } | j | | f  qWx? t |  D]. \ } }   j d d | d | | f  qeWn  | d 7} x |  j D] }
  |
 |  qWd  S(   Nu    u   |%s<!DOCTYPE %s "%s" "%s">u    u   |%s<!DOCTYPE %s>u   |%s<!DOCTYPE >u	   #documentu   #document-fragmentu   |%s<!-- %s -->u   |%s"%s"u   namespaceURIu   %s %su   |%s<%s>u
   |%s%s="%s"i   (   t   nodeTypeR   t   DOCUMENT_TYPE_NODER   RR   RS   Rd   t   DOCUMENT_NODEt   DOCUMENT_FRAGMENT_NODEt   COMMENT_NODEt	   nodeValueRb   R&   R'   R(   R   t   prefixesR%   t   hasAttributest   rangeR   R   t   itemR   t	   localNamet   sortedR7   (   R   t   indentRR   RS   R   R   t   iR   R   t   nsR9   (   t   rvt   serializeElement(    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyRw      sN    		!!!					)
u   
(   t	   normalizet   join(   R   (    (   Rv   Rw   sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR_      s
    
.(   R   R   R   RG   t   locals(   Rf   RG   (    (   R
   RM   Rf   R$   R_   sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt   getDomBuilder   s    $"C(:	6(   t
   __future__R    R   R   t   collectionsR   t   xml.domR   R   RK   t    R   R   R   t   _utilsR	   R{   t   getDomModule(    (    (    sI   /usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt   <module>   s   	