U ��.e��@sZddlmZmZmZzddlmZWn ek rDddlmZYnXGdd�de�ZdS)�)�absolute_import�division�unicode_literals)�Mappingcs:eZdZdZd �fdd� Zdd�Zdd�Zd d �Z�ZS) �TriezAbstract base class for triesNcs0tt|���}�dkrt|�S�fdd�|D�S)Ncsh|]}|���r|�qS�)� startswith)�.0�x��prefixr�D/usr/lib/python3.8/site-packages/pip/_vendor/html5lib/_trie/_base.py� s zTrie.keys..)�superr�keys�set)�selfr r�� __class__r r r sz Trie.keyscCs"|��D]}|�|�rdSqdS)NTF)rr)rr �keyrrr �has_keys_with_prefixs  zTrie.has_keys_with_prefixcCsT||kr |Stdt|�d�D](}|d| �|kr|d| �Sqt|��dS)N�)�range�len�KeyError)rr �irrr �longest_prefixs zTrie.longest_prefixcCs|�|�}|||fS)N)r)rr Zlprefixrrr �longest_prefix_item&s zTrie.longest_prefix_item)N) �__name__� __module__� __qualname__�__doc__rrrr� __classcell__rrrr r s   rN) Z __future__rrrZcollections.abcr� ImportError� collectionsrrrrr �s