£Á°è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>
U
    .e                     @   sL   d dl mZmZmZ d dlmZ d dlmZ ddlm	Z
 G dd de
Z	dS )	    )absolute_importdivisionunicode_literals)	text_type)bisect_left   )Triec                   @   sF   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   sJ   t dd | D std|| _t| | _d| _dt|f| _d S )Nc                 s   s   | ]}t |tV  qd S N)
isinstancer   ).0x r   A/usr/lib/python3.8/site-packages/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 r	   r   r   keyr   r   r   __contains__   s    zTrie.__contains__c                 C   s
   t | jS r	   )r   r   r   r   r   r   __len__   s    zTrie.__len__c                 C   s
   t | jS r	   )iterr   r!   r   r   r   __iter__   s    zTrie.__iter__c                 C   s
   | j | S r	   r   r   r   r   r   __getitem__   s    zTrie.__getitem__Nc                 C   s   |d ks|dks| j s t| j S || jrL| j\}}t| j ||| }}nt| j | }}t }|t| j krt|S | j | |r|| j |  |d7 }qt|| _||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   sd   || j krdS || jr6| j\}}t| j|||}nt| j|}|t| jkrTdS | 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)N)
__name__
__module____qualname__r   r    r"   r$   r%   r   r.   r   r   r   r   r   	   s   	
r   N)Z
__future__r   r   r   Zpip._vendor.sixr   Zbisectr   Z_baser   ZABCTrier   r   r   r   <module>   s   