§
    ¤”jã  ã                   óZ   — 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e
¦  «        Z	dS )	é    )Úabsolute_importÚdivisionÚunicode_literals)Ú	text_type)Úbisect_lefté   )ÚTriec                   ó:   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd	d„Zd„ Z	dS )
r	   c                 ó  — t          d„ |                     ¦   «         D ¦   «         ¦  «        st          d¦  «        ‚|| _        t	          |                     ¦   «         ¦  «        | _        d| _        dt          |¦  «        f| _        d S )Nc              3   ó@   K  — | ]}t          |t          ¦  «        V — Œd S ©N)Ú
isinstancer   )Ú.0Úxs     ú`/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/html5lib/_trie/py.pyú	<genexpr>z Trie.__init__.<locals>.<genexpr>   s,   è è € ÐAÐA°•:˜a¥Ñ+Ô+ÐAÐAÐAÐAÐAÐAó    zAll keys must be stringsÚ r   )	ÚallÚkeysÚ	TypeErrorÚ_dataÚsortedÚ_keysÚ	_cachestrÚlenÚ_cachepoints)ÚselfÚdatas     r   Ú__init__zTrie.__init__
   su   € ÝÐAÐA°T·Y²Y±[´[ÐAÑAÔAÑAÔAð 	8ÝÐ6Ñ7Ô7Ð7àˆŒ
Ý˜DŸIšI™KœKÑ(Ô(ˆŒ
ØˆŒØ¥ D¡	¤	˜NˆÔÐÐr   c                 ó   — || j         v S r   ©r   ©r   Úkeys     r   Ú__contains__zTrie.__contains__   s   € Ø�d”jÐ Ð r   c                 ó*   — t          | j        ¦  «        S r   )r   r   ©r   s    r   Ú__len__zTrie.__len__   s   € Ý�4”:‰ŒÐr   c                 ó*   — t          | j        ¦  «        S r   )Úiterr   r'   s    r   Ú__iter__zTrie.__iter__   s   € Ý�D”JÑÔÐr   c                 ó   — | j         |         S r   r"   r#   s     r   Ú__getitem__zTrie.__getitem__   s   € ØŒz˜#ŒÐr   Nc                 ó0  — |�|dk    s| j         st          | j         ¦  «        S |                     | j        ¦  «        r$| j        \  }}t          | j         |||¦  «        x}}nt          | j         |¦  «        x}}t          ¦   «         }|t          | j         ¦  «        k    r|S | j         |                              |¦  «        rE|                     | j         |         ¦  «         |dz  }| j         |                              |¦  «        °E|| _        ||f| _        |S )Nr   r   )r   ÚsetÚ
startswithr   r   r   r   Úadd)r   ÚprefixÚloÚhiÚstartÚir   s          r   r   z	Trie.keys   s  € Øˆ>˜V rš\˜\°´˜\Ý�t”z‘?”?Ð"à×Ò˜Tœ^Ñ,Ô,ð 	8ØÔ&‰FˆB�Ý# D¤J°¸¸BÑ?Ô?Ð?ˆE�A�Aå# D¤J°Ñ7Ô7Ð7ˆE�Aå‰uŒuˆØ•C˜œ
‘O”OÒ#Ð#ØˆKàŒj˜Œm×&Ò& vÑ.Ô.ð 	Ø�HŠH�T”Z ”]Ñ#Ô#Ð#Ø�‰FˆAð Œj˜Œm×&Ò& vÑ.Ô.ð 	ð  ˆŒØ" A˜JˆÔàˆr   c                 ó.  — || j         v rdS |                     | j        ¦  «        r"| j        \  }}t	          | j        |||¦  «        }nt	          | j        |¦  «        }|t          | j        ¦  «        k    rdS | j        |                              |¦  «        S )NTF)r   r0   r   r   r   r   r   )r   r2   r3   r4   r6   s        r   Úhas_keys_with_prefixzTrie.has_keys_with_prefix6   s’   € Ø�T”ZÐÐØ�4à×Ò˜Tœ^Ñ,Ô,ð 	0ØÔ&‰FˆB�Ý˜DœJ¨°°BÑ7Ô7ˆAˆAå˜DœJ¨Ñ/Ô/ˆAà•�D”J‘”ÒÐØ�5àŒz˜!Œ}×'Ò'¨Ñ/Ô/Ð/r   r   )
Ú__name__Ú
__module__Ú__qualname__r    r%   r(   r+   r-   r   r8   © r   r   r	   r	   	   s‚   € € € € € ð+ð +ð +ð!ð !ð !ðð ð ð ð  ð  ðð ð ðð ð ð ð.0ð 0ð 0ð 0ð 0r   r	   N)Ú
__future__r   r   r   Úsixr   Úbisectr   Ú_baser	   ÚABCTrier<   r   r   ú<module>rB      s�   ðØ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð à "Ð "Ð "Ð "Ð "Ð "ð:0ð :0ð :0ð :0ð :0ˆ7ñ :0ô :0ð :0ð :0ð :0r   