File: D:/Python311/Lib/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-311.pyc
�
�mij � � � d Z ddlZddlmZmZ dee deedf fd�Zded edefd
�Zdedeeef fd�Zd
edeedf de fd�Z
dS )a
Given a list of integers, made up of (hopefully) a small number of long runs
of consecutive integers, compute a representation of the form
((start1, end1), (start2, end2) ...). Then answer the question "was x present
in the original list?" in time O(log(# runs)).
� N)�List�Tuple�list_�return.c �j � t | � � }g }d}t t |� � � � D ]u}|dz t |� � k r|| ||dz dz
k r�1||dz |dz � }|� t |d |d dz � � � � |}�vt |� � S )a Represent a list of integers as a sequence of ranges:
((start_0, end_0), (start_1, end_1), ...), such that the original
integers are exactly those x such that start_i <= x < end_i for some i.
Ranges are encoded as single integers (start << 32 | end), not as tuples.
���� r )�sorted�range�len�append�
_encode_range�tuple)r �sorted_list�ranges�
last_write�i�
current_ranges �<D:\Python311\Lib\site-packages\pip/_vendor/idna/intranges.py�intranges_from_listr s� � � ��-�-�K�
�F��J�
�3�{�#�#�
$�
$� � ���q�5�3�{�#�#�#� ��1�~��Q��U�!3�a�!7�7�
��#�J��N�Q��U�$:�;�
��
�
�m�M�!�$4�m�B�6G�!�6K�L�L�M�M�M��
�
���=�=�� �start�endc � � | dz |z S )N� � )r r s r r r "