£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>

Re                 @   sf   d  d l  m Z m Z m Z d  d l m Z d  d l m Z d d l m	 Z
 Gd d   d e
  Z	 d S)	    )absolute_importdivisionunicode_literals)	text_type)bisect_left   )Triec               @   sg   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 d
   Z d d d  Z d d   Z	 d S)r   c             C   sn   t  d d   | j   D  s. t d   n  | |  _ t | j    |  _ d |  _ d t |  f |  _ d  S)Nc             s   s   |  ] } t  | t  Vq d  S)N)
isinstancer   ).0x r   7/tmp/pip-ztkk0jow-build/pip/_vendor/html5lib/trie/py.py	<genexpr>   s    z Trie.__init__.<locals>.<genexpr>zAll keys must be strings r   )	allkeys	TypeError_datasorted_keys	_cachestrlen_cachepoints)selfdatar   r   r   __init__
   s    		zTrie.__init__c             C   s   | |  j  k S)N)r   )r   keyr   r   r   __contains__   s    zTrie.__contains__c             C   s   t  |  j  S)N)r   r   )r   r   r   r   __len__   s    zTrie.__len__c             C   s   t  |  j  S)N)iterr   )r   r   r   r   __iter__   s    zTrie.__iter__c             C   s   |  j  | S)N)r   )r   r   r   r   r   __getitem__   s    zTrie.__getitem__Nc             C   s   | d  k s" | d k s" |  j  r/ t |  j   S| j |  j  ro |  j \ } } t |  j  | | |  } } n t |  j  |  } } t   } | t |  j   k r | Sx8 |  j  | j |  r | j |  j  |  | d 7} q W| |  _ | | f |  _ | S)Nr   r   )r   set
startswithr   r   r   r   add)r   prefixlohistartir   r   r   r   r      s    "		z	Trie.keysc             C   s   | |  j  k r d S| j |  j  rO |  j \ } } t |  j | | |  } n t |  j |  } | t |  j  k rz d S|  j | j |  S)NTF)r   r#   r   r   r   r   r   )r   r%   r&   r'   r)   r   r   r   has_keys_with_prefix6   s    zTrie.has_keys_with_prefix)
__name__
__module____qualname__r   r   r   r    r!   r   r*   r   r   r   r   r   	   s   	r   N)
__future__r   r   r   Zpip._vendor.sixr   bisectr   _baser   ABCTrier   r   r   r   <module>   s   