
    xKg)                        d dl Zd dlmZ d dlmZ d dlmZmZ ed        Z	ed        Z
ed        Zed        Zed	        Zed
        Zed        Zd Zd Z eej$                        d        Z eej(                        d        Z eej,                        d        Z eej.                        d        Z eej0                        d        Zd Z eej4                        d        Z eej6                        d        Zy)    N)types)TypingError)overloadregister_jitablec                 X    | |   }||kD  r|dz
  dz	  }| |   }||k  r|| |<   |}	 || |<   y N    heapstartposposnewitem	parentposparents         W/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/cpython/heapq.py	_siftdownr      sM    3iG
.1WN	iVDICDI    c                     t        |       }|}| |   }d|z  dz   }||k  r/|dz   }||k  r| |   | |   k  s|}| |   | |<   |}d|z  dz   }||k  r/|| |<   t        | ||       y N   r	   )lenr   r   r   endposr   r   childposrightposs          r   _siftupr      s    YFH3iG3w{H
V
a<fT(^d8n%DHNS	s7Q; V
 DIdHc"r   c                 X    | |   }||kD  r|dz
  dz	  }| |   }||k  r|| |<   |}	 || |<   y r   r
   r   s         r   _siftdown_maxr   0   sM    3iG
.1WN	iGDICDIr   c                     t        |       }|}| |   }d|z  dz   }||k  r/|dz   }||k  r| |   | |   k  s|}| |   | |<   |}d|z  dz   }||k  r/|| |<   t        | ||       y r   )r   r   r   s          r   _siftup_maxr!   ?   s    YFH3iG3w{H
V
a<fT(^d8n%DHNS	s7Q; V
 DI$#&r   c                 "    t        | dz
  dd      S )Nr	   )range)xs    r   reversed_ranger&   T   s     QBr   c                 X    t        |       }t        |dz        D ]  }t        | |        y Nr   )r   r&   r!   r%   nis      r   _heapify_maxr,   Z   s(    AAAF#Aq $r   c                 2    | d   }|| d<   t        | d       |S Nr   )r!   r   item
returnitems      r   _heapreplace_maxr2   b   s$    aJDGar   c                     t        | t        j                  t        j                  f      st	        d      | j
                  }t        |t        j                        rd}t	        |      y )Nzheap argument must be a listz>'<' not supported between instances of 'complex' and 'complex')
isinstancer   ListListTyper   dtypeComplex)r   dtmsgs      r   assert_heap_typer;   j   sS    dUZZ89899	B"emm$,# %r   c                 8    | j                   |k(  st        d      y )Nz'heap type must be the same as item type)r7   r   r   r0   s     r   *assert_item_type_consistent_with_heap_typer>   u   s    ::CDD r   c                 "    t        |        d }|S )Nc                 X    t        |       }t        |dz        D ]  }t        | |        y r(   )r   r&   r   r)   s      r   hq_heapify_implz#hq_heapify.<locals>.hq_heapify_impl~   s'    FQ'AAqM (r   r;   )r%   rA   s     r   
hq_heapifyrC   z   s    Q
 r   c                 "    t        |        d }|S )Nc                 Z    | j                         }| r| d   }|| d<   t        | d       |S |S r.   )popr   )r   lasteltr1   s      r   hq_heappop_implz#hq_heappop.<locals>.hq_heappop_impl   s7    ((*aJDGD!r   rB   )r   rH   s     r   
hq_heappoprI      s    T r   c                 :    t        |        t        | |       d }|S )Nc                 X    | j                  |       t        | dt        |       dz
         y Nr   r	   )appendr   r   r=   s     r   hq_heappush_implz"heappush.<locals>.hq_heappush_impl   s"    D$3t9q=)r   r;   r>   )r   r0   rN   s      r   heappushrP      s!    T.tT:* r   c                 :    t        |        t        | |       d }|S )Nc                 2    | d   }|| d<   t        | d       |S r.   r   r/   s      r   hq_heapreplacez#heapreplace.<locals>.hq_heapreplace   s$    !W
Qar   rO   )r   r0   rT   s      r   heapreplacerU      s!    T.tT: r   c                 :    t        |        t        | |       d }|S )Nc                 H    | r| d   |k  r| d   |c}| d<   t        | d       |S r.   rS   r=   s     r   hq_heappushpop_implz(heappushpop.<locals>.hq_heappushpop_impl   s1    DGdN GTMD$q'D!r   rO   )r   r0   rX   s      r   heappushpoprY      s!    T.tT: r   c                     t        | t        j                  t        j                  f      st	        d      t        |t        j
                  t        j                  t        j                  f      st	        d      y )Nz%First argument 'n' must be an integerz+Second argument 'iterable' must be iterable)r4   r   IntegerBooleanr   SequenceArrayr6   )r*   iterables     r   check_input_typesr`      sV    a%--78ABB henn MNGHH Or   c                 $    t        | |       d }|S )Nc                    | dk(  rt        d      D cg c]  }|d   	 c}S | dk(  rt        |      }|gS t        |      }| |k\  rt        |      d |  S t	        |      }t        t        |       |      D cg c]	  \  }}||f }}}t        |       |d   d   }	| }
|D ]#  }||	k  s	t        |||
f       |d   \  }	}|
dz  }
% |j                          |D 
cg c]  \  }}
|	 c}
}S c c}w c c}}w c c}
}w rL   )	r$   minr   sortediterzipr,   r2   sortr*   r_   _outsizeitr+   elemresulttoporder_orders               r   hq_nsmallest_implz$nsmallest.<locals>.hq_nsmallest_impl   s   6).q2AHQK22!Vh-C5L8}9(#BQ''(^+.uQx+<=+<44)+<=VQilDcz $7$QiV
	 
 	*01&$&11- 3 > 2s   C)6C.C4r`   )r*   r_   rr   s      r   	nsmallestrt      s    a"26 r   c                 $    t        | |       d }|S )Nc                 4   | dk(  rt        d      D cg c]  }|d   	 c}S | dk(  rt        |      }|gS t        |      }| |k\  rt        |      d d d   d |  S t	        |      }t        t        d|  d      |      D cg c]	  \  }}||f }}}t        j                  |       |d   d   }	|  }
|D ]-  }|	|k  s	t        j                  |||
f       |d   \  }	}|
dz  }
/ |j                  d       |D 
cg c]  \  }}
|	 c}
}S c c}w c c}}w c c}
}w )Nr   r	   r#   T)reverse)
r$   maxr   rd   re   rf   hqheapifyrU   rg   rh   s               r   hq_nlargest_implz"nlargest.<locals>.hq_nlargest_impl   s3   6).q2AHQK22!Vh-C5L8}9(#DbD)"1--(^+.uQB/?+DE+D44)+DE


6QilDTzve}5$QiV
	 
 	D!*01&$&11- 3 F 2s   D	?D9Drs   )r*   r_   r{   s      r   nlargestr|      s    a"26 r   )heapqry   
numba.corer   numba.core.errorsr   numba.core.extendingr   r   r   r   r   r!   r&   r,   r2   r;   r>   rz   rC   heappoprI   rP   rU   rY   r`   rt   r|   r
   r   r   <module>r      s|     ) ;   # #(   ' '(    
    E
 
"**  
"**  
"++  
"..
 
 
"..
 
I 
",, B 
"++ r   