
    =6hj                         d Z ddlZddlmZmZ dee   deedf   fdZded	edefd
Zdedeeef   fdZdedeedf   de	fdZ
y)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                    t        |       }g }d}t        t        |            D ]V  }|dz   t        |      k  r||   ||dz      dz
  k(  r&||dz   |dz    }|j                  t	        |d   |d   dz                |}X t        |      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         S/var/www/panel.atabookie.online/venv/lib/python3.12/site-packages/idna/intranges.pyintranges_from_listr      s     -KFJ3{#$ q53{##1~QU!3a!77#JNQU;mM!$4mB6G!6KLM
 =    startendc                     | dz  |z  S )N     )r   r   s     r   r   r   "   s    RK3r   rc                     | dz	  | dz  fS )Nr   l    r   )r   s    r   _decode_ranger   &   s    GqM*++r   int_r   c                     t        | d      }t        j                  ||      }|dkD  r!t        ||dz
           \  }}|| cxk  r|k  ry |t	        |      k  rt        ||         \  }}|| k(  ryy)z=Determine if `int_` falls into one of the ranges in `ranges`.r   r	   TF)r   bisectbisect_leftr   r   )r    r   tuple_posleftright_s          r   intranges_containr)   *   s    4#F


VV
,C Qw#F37O4e4%   S[s,a4<r   )__doc__r"   typingr   r   intr   r   r   boolr)   r   r   r   <module>r.      s     tCy U38_ , 3 3 ,S ,U38_ ,C sCx T r   