
    1;ji                     D   d Z ddlZddlZddlZddlmZ ddlmZm	Z	 ddl
mZ ddlmZmZmZm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 ej                            d          xZZ eeej                  Zej         fdz  Z!d Z"d Z#d Z$d Z%d Z&dHdZ'dHdZ(d Z)d Z* eeg d          Z+ eeg d          Z, eeg d          Z- eeg d          Z. eej/                   eej                   d                         Z0 eej1        ej                   d             Z2 eej3        ej                   d             Z4 ee5ej                   d             Z6d Z7 eej8        ge!R   eej9        ge!R  d                          Z: eej;        ge!R   eej<        ge!R  d!                         Z=d" Z> eej?        ej         ej@                   eejA        ej         ej@                   eej?        ej         ejB                   eejA        ej         ejB                  d#                                                 ZC eej?        ej@        ej                    eejA        ej@        ej                    eej?        ejB        ej                    eejA        ejB        ej                   d$                                                 ZD eejE        ej         ej@                   eejF        ej         ej@                   eejG        ej         ej@                   eejH        ej         ej@                   eejE        ej         ejB                   eejF        ej         ejB                   eejG        ej         ejB                   eejH        ej         ejB                  d%                                                                                                 ZI eejE        ge!R   eejF        ge!R  d&                         ZJ eejG        ge!R  d'             ZKd( ZLd) ZMd* ZN eMd+e	jO                  ZP eMd,e	jQ                  ZR eNd-          ZS eNd.          ZT eNd/          ZU eNd0          ZVejW        ePfejX        eRfejY        eSfejZ        eTfej[        eUfej\        eVffD ]\  Z]Z^  ee]ge!R  e^           d1 Z_d2 Z`d3 Zad4 Zbd5 Zc ecd6          Zd ecd7          Ze eej8        ej/        ej                    eej9        ej/        ej                   d8                         Zf eej8        ej         ej/                   eej9        ej         ej/                  d9                         Zg eej;        ej/        ej                    eej<        ej/        ej                   d:                         Zh eej;        ej/        ej/                  d;             Zid< Zj ejd+          Zk ejd,          Zl ejd-          Zm ejd.          Zn ejd/          Zo ejd0          ZpejW        ekfejX        elfejY        emfejZ        enfej[        eofej\        epffD ] \  ZqZ^  eeqgej/        gdz  R  e^           !d= Zr erd>          Zs erd?          Ztd@ Zu eud>          Zv eud?          ZwdA Zx exd>          Zy exd?          ZzdB Z{ e{d>          Z| e{d?          Z}dC Z~ eej        ej/                   eej        ej                   dD                         Z eej/        ej@                   eej         ej@                  dE                         Z eej         dF           eej/        dF          dG                         Z  eej        ej/        ej/                  ev             eej        ej         ej                   ev             eej        ej/        ej/                  es             eej        ej         ej                   es           dS )Iz4
Implementation of operations on numpy timedelta64.
    N)Constant)typescgutils)create_constant_array)lower_builtinlower_constantimpl_ret_untracked
lower_cast)npdatetime_helpersnumpy_supportnpyfuncs)overload_method)	IS_32BITS)LoweringError@      c                 T    |                      |t          t          |                    S )z2
    Multiply *val* by the constant *factor*.
    )mulr   TIMEDELTA64buildervalfactors      M/root/voice-cloning/.venv/lib/python3.11/site-packages/numba/np/npdatetime.pyscale_by_constantr      s"     ;;sH[&99:::    c                 T    |                      |t          t          |                    S )z0
    Divide *val* by the constant *factor*.
    )sdivr   r   r   s      r   unscale_by_constantr   "   s"     <<Xk6::;;;r   c                 T    |                      |t          t          |                    S )z(
    Add constant *const* to *val*.
    )addr   r   )r   r   consts      r   add_constantr#   )   s"     ;;sH[%88999r   c                     t          j        |j        |j                  }|!d|j         d|j         }t          |          t	          |||          S )zk
    Scale the timedelta64 *val* from *srcty* to *destty*
    (both numba.types.NPTimedelta instances)
    Nz cannot convert timedelta64 from  to )r   get_timedelta_conversion_factorunitr   r   )contextr   r   srctydesttyr   msgs          r   scale_timedeltar,   0   s]    
  ?
FK! !F~NNNNNC   Wc6222r   c                     t          j        |j        |j                  }|t          |||          |fS t          j        |j        |j                  }||t          |||          fS t	          d|d|          )ze
    Scale either *left* or *right* to the other's unit, in order to have
    homogeneous units.
    Nzcannot normalize z and )r   r&   r'   r   RuntimeError)r(   r   leftrightlefttyrighttyr   s          r   normalize_timedeltasr3   >   s    
  ?W\# #F $77>>?fk# #F&wv>>>>
,vvvwwG
H
HHr   retc                 t    t          j        | t          |          }|                     t          |           |S )zM
    Allocate a NaT-initialized datetime64 (or timedelta64) result slot.
    name)r   alloca_oncer   storeNATr   r7   r4   s      r   alloc_timedelta_resultr<   O   s4     
g{
>
>
>CMM#sJr   c                 n    t          j        | t          j                            d          |          }|S )z8
    Allocate an uninitialized boolean result slot.
       r6   )r   r8   llvmliteirIntTyper;   s      r   alloc_boolean_resultrB   X   s0     
gx{':':1'='=D
I
I
ICJr   c                 :    |                      d|t                    S )z?
    Return a predicate which is true if *val* is not NaT.
    !=)icmp_unsignedr:   )r   r   s     r   
is_not_natrF   `   s       sC000r   c                     t          |          dk    sJ t          | |d                   }|dd         D ]&}|                     |t          | |                    }'|S )zH
    Return a predicate which is true if all of *vals* are not NaT.
    r>   r   N)lenrF   and_)r   valspredr   s       r   are_not_natrL   g   se     t99>>>>gtAw''DABBx < <||D*Wc":":;;Kr   )      rM      rM   rO   rM   rM   rO   rM   rO   rM   )rM      rM   rO   rM   rO   rM   rM   rO   rM   rO   rM   )r   rM   ;   Z   x               i  i0  iN  )r   rM   <   [   y               i  i1  iO  c                 Z    t          |                    t          j                            S N)
DATETIME64astypenpint64)r(   r   typyvals       r   datetime_constantrg      s      ell28,,---r   c                 @    |d         }t          | ||j        |          S Nr   )r	   return_typer(   r   sigargsress        r   timedelta_pos_implro      s!    
q'CgwEEEr   c                 f    |                     |d                   }t          | ||j        |          S ri   )negr	   rj   rk   s        r   timedelta_neg_implrr      s-    
++d1g

CgwEEEr   c                    |\  }t          |          }|                    t          j        ||                    5 \  }}|5  |                    |                    |          |           d d d            n# 1 swxY w Y   |5  |                    ||           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                    |          }t          | ||j        |          S r`   )	r<   if_elser   is_scalar_negr9   rq   loadr	   rj   )	r(   r   rl   rm   r   r4   then	otherwisern   s	            r   timedelta_abs_implry      s   DC
 
)
)C	.w<<	=	= $AR$	 	1 	1MM'++c**C000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	$ 	$MM#s###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$$ $ $ $ $ $ $ $ $ $ $ $ $ $ $
 ,,s

CgwEEEsY   B?*A8,B?8A<	<B??A<	 B?B(B?(B,	,B?/B,	0B??CCc           
         |\  }t          |          }t          t          d          }|                    |                    d||                    5 \  }}|5  |                    t          t          d          |           ddd           n# 1 swxY w Y   |5  |                    |                    d||                    5 \  }	}
|	5  |                    t          t          d          |           ddd           n# 1 swxY w Y   |
5  |                    t          t          d          |           ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   |                    |          }t          | ||j	        |          S )z
    np.sign(timedelta64)
    r   >r>   N==)
r<   r   r   rt   icmp_signedr9   rE   rv   r	   rj   )r(   r   rl   rm   r   r4   zerogt_zerole_zeroeq_zerolt_zerorn   s               r   timedelta_sign_implr      sg    DC
 
)
)CK##D	,,S#t<< 
 
 
B0w 	9 	9MM(;22C888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	B 	B!6!6tS$!G!G # # B&8w A AMM(;":":C@@@A A A A A A A A A A A A A A A B BMM(;";";SAAAB B B B B B B B B B B B B B B	B B B B B B B B B B B B B B B	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B	
B 
B 
B 
B 
B 
B 
B 
B 
B 
B 
B 
B 
B 
B 
B ,,s

CgwEEEs   F*BFB	FB	F+E4E*D	7EDE
DE*E	:EE

EE
EE4E!!E4$E!%E4(F4E8	8F;E8	<FFFc                    |\  }}|j         \  }}t          |          }t          j        |t	          |||g                    5  t          | ||||j                  }t          | ||||j                  }|                    |                    ||          |           d d d            n# 1 swxY w Y   |	                    |          }	t          | ||j        |	          S r`   )rm   r<   r   	if_likelyrL   r,   rj   r9   r!   rv   r	   
r(   r   rl   rm   vavbtatbr4   rn   s
             r   timedelta_add_implr          HRxHR
 
)
)C		7K"b$B$B	C	C 0 0Wgr2sGGWgr2sGGgkk"b))3///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ,,s

CgwEEE   AB++B/2B/c                    |\  }}|j         \  }}t          |          }t          j        |t	          |||g                    5  t          | ||||j                  }t          | ||||j                  }|                    |                    ||          |           d d d            n# 1 swxY w Y   |	                    |          }	t          | ||j        |	          S r`   )rm   r<   r   r   rL   r,   rj   r9   subrv   r	   r   s
             r   timedelta_sub_implr      r   r   c                    t          |          }t          j        |t          ||                    5  t	          |t
          j                  rC|                    ||j                  }|	                    ||          }t          | ||          }n|                    ||          }t          | ||||          }|                    ||           d d d            n# 1 swxY w Y   |                    |          S r`   )r<   r   r   rF   
isinstancer   Floatsitofptypefmul_cast_to_timedeltar   r,   r9   rv   )	r(   r   td_argtd_type
number_argnumber_typerj   r4   r   s	            r   _timedelta_times_numberr      s"   
 
)
)C		7Jw$?$?	@	@ 
  
 k5;// 	2..99C,,sJ//C$Wgs;;CC++fj11C gwWkJJc3
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  <<s   BCC #C c           	          t          | ||d         |j        d         |d         |j        d         |j                  }t          | ||j        |          S )Nr   r>   r   rm   rj   r	   rk   s        r   timedelta_times_numberr      Q    
 "'7"&q'38A;Q!"%/3 3C gwEEEr   c           	          t          | ||d         |j        d         |d         |j        d         |j                  }t          | ||j        |          S Nr>   r   r   rk   s        r   number_times_timedeltar      r   r   c           	         |\  }}|j         d         }t          |          }|                    t          ||          |                    t          j        ||                              }t          j        ||          5  t          |t          j
                  rC|                    ||j                  }	|                    |	|          }	t          | ||	          }	n|                    ||          }	t!          | ||	|j         d         |j                  }	|                    |	|           d d d            n# 1 swxY w Y   |                    |          }
t)          | ||j        |
          S r   )rm   r<   rI   rF   not_r   is_scalar_zero_or_nanr   r   r   r   r   r   fdivr   r   r,   rj   r9   rv   r	   )r(   r   rl   rm   r   r   r   r4   okr   rn   s              r   timedelta_over_numberr      s    FJ(1+K
 
)
)C	j&11ll7#@*#U#UVV
X 
XB		7B	'	'    k5;// 	3..99C,,sJ//C$Wgs;;CC,,vz22C gw!hqk3?< <c3                              ,,s

CgwEEEs   B-D::D>D>c           	         |\  }}|j         \  }}t          |||g          }|                     |j                  }	t	          j        ||	d          }
|                    t          |	t          d                    |
           t	          j	        ||          5  t          | |||||          \  }}|                    ||	          }|                    ||	          }|                    |                    ||          |
           d d d            n# 1 swxY w Y   |                    |
          }t          | ||j        |          S )Nr4   r6   nan)rm   rL   get_value_typerj   r   r8   r9   r   floatr   r3   r   r   rv   r	   )r(   r   rl   rm   r   r   r   r   not_nanll_ret_typer4   rn   s               r   timedelta_over_timedeltar     so    HRxHR'B8,,G((99K

g{
?
?
?CMM(;e55s;;;		7G	,	, 1 1%gwBBGGB^^B,,^^B,,gll2r**C000	1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 ,,s

CgwEEEs   A.DDDc                    |\  }}|j         \  }}|                     |j                  }t          |||g          }	t	          j        ||d          }
t          |d          }t          |d          }|                    ||
           t	          j        ||	          5  t          | |||||          \  }}|
                    |                    d||                    }t	          j        ||          5  |                    d||          }|                    ||                    d||                    }|                    |          5 \  }}|5  |                    |          5 \  }}|5  |                    ||          }|                    ||          }|                    ||
           d d d            n# 1 swxY w Y   |5  |                    ||          }|                    ||          }|                    ||
           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |5  |                    ||          }|                    ||
           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                    |
          }t%          | ||j        |          S )Nr4   r6   r   r>   r|   <)rm   r   rj   rL   r   r8   r   r9   r   r3   r   r~   or_rt   r   r   r!   rv   r	   )r(   r   rl   rm   r   r   r   r   r   r   r4   r   onedenom_okvanegrq   rw   rx   negthennegotherwisetopdivrn   s                          r   timedelta_floor_div_timedeltar   +  s   HRxHR((99K'B8,,G

g{
?
?
?CK##D
;
"
"CMM$		7G	,	, , ,%gwBBGGB<< 3 3D"d C CDDw11 	, 	,''R66E++eW%8%8b$%G%GHHC%% ,):$	 	4 	4 // 43JG\$ 4 4")++b#"6"6C"),,sB"7"7C#MM#s3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 * 4 4")++b#"6"6C"),,sB"7"7C#MM#s3334 4 4 4 4 4 4 4 4 4 4 4 4 4 44 4 4 4 4 4 4 4 4 4 4 4 4 4 4	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4  , ,!,,r2..CMM#s+++, , , , , , , , , , , , , , ,, , , , , , , , , , , , , , ,		, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,	, , , , , , , , , , , , , , ,, ,,s

CgwEEEs  AK5AJ<J%I	)H1/AF>2H1>GH1GH1AHH1HH1!H"H1%I	1H55I	8H59I	<J%IJ%IJ%-J	J%JJ%JJ%J<%J))J<,J)-J<0K<K 	 KK 	KKKc           
         |\  }}|j         \  }}t          |||g          }|                     |j                  }	t	          |          }
|                    t          |
           t          |	d          }t          j	        ||          5  t          | |||||          \  }}|                    |                    d||                    }t          j	        ||          5  |                    d||          }|                    d||          }|                    ||          }|                    |                    ||          |                    d||                    }|                    |          5 \  }}|5  |                    ||
           d d d            n# 1 swxY w Y   |5  |                    |                    ||          |
           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                    |
          }t'          | ||j        |          S )Nr   r|   r{   )rm   rL   r   rj   r<   r9   r:   r   r   r   r3   r   r~   sremr   rI   rt   r!   rv   r	   )r(   r   rl   rm   r   r   r   r   r   r   r4   r   r   vaposvbposremcondrw   rx   rn   s                       r   timedelta_mod_timedeltar   N  sw    HRxHR'B8,,G((99K
 
)
)CMM#sK##D		7G	,	, = =%gwBBGGB<< 3 3D"d C CDDw11 	= 	=''R66E''R66E,,r2&&C;;w||E599&224dCCE ED&& =*;4 , ,MM#s+++, , , , , , , , , , , , , , , = =MM'++c2"6"6<<<= = = = = = = = = = = = = = == = = = = = = = = = = = = = =	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=	= = = = = = = = = = = = = = =" ,,s

CgwEEEs   AH-"BH;G?F$	G?$F((G?+F(,G?1+G(	G?(G,,G?/G,0G?3H?HHHH
H-H	H-H	H--H14H1c                       fd}|S )Nc           
         |\  }}|j         \  }}t          |          }|                    t          |||g                    5 \  }	}
|	5  	 t	          | |||||          \  }}|                    |                    ||          |           n&# t          $ r |                    |           Y nw xY wd d d            n# 1 swxY w Y   |
5  dk    r!|                    t          j	        |           n |                    t          j
        |           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                    |          }t          | ||j        |          S NrD   )rm   rB   rt   rL   r3   r9   rE   r.   r   true_bit	false_bitrv   r	   rj   )r(   r   rl   rm   r   r   r   r   r4   rw   rx   norm_anorm_brn   default_valuell_ops                 r   implz/_create_timedelta_comparison_impl.<locals>.implt  sR   R8R"7++__[2r(;;<< 	:@Qy U UU%9"b"b&: &:NFF MM'"7"7vv"N"NPSTTTT	 $ 6 6 6MM-555556	U U U U U U U U U U U U U U U  : : D==MM'"2C8888MM'"3S999: : : : : : : : : : : : : : :	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:" ll3!'7COSIIIs   D:CB$,C B30C2B33C6D:C	D:	C	
D:AD#D:#D'	'D:*D'	+D::D>D> )r   r   r   s   `` r   !_create_timedelta_comparison_implr   s  s/    J J J J J J0 Kr   c                       fd}|S )Nc           
      D   |\  }}|j         \  }}t          |          }|                    t          |||g                    5 \  }	}
|	5  t	          | |||||          \  }}|                    |                    ||          |           d d d            n# 1 swxY w Y   |
5  |                    t          j        |           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |	                    |          }t          | ||j        |          S r`   )rm   rB   rt   rL   r3   r9   r~   r   r   rv   r	   rj   )r(   r   rl   rm   r   r   r   r   r4   rw   rx   r   r   rn   r   s                 r   r   z-_create_timedelta_ordering_impl.<locals>.impl  s   R8R"7++__[2r(;;<< 	6@Qy O O!5Wb"b""6 "6g11%HH#NNNO O O O O O O O O O O O O O O  6 6g/5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 ll3!'7COSIIIs[   C+ABC+B	C+!B	"C+'!CC+C	C+C	C++C/2C/r   r   r   s   ` r   _create_timedelta_ordering_implr     s(    J J J J J Kr   r|   rD   r   <=r{   >=c           
         |                      |t          t          d                    }t          j        | |                     |t          t          d                              }t          j        | |                     |t          t          d                              }t          j        | |                     |t          t          d                              }|                     ||                     ||                    S )z_
    Return a predicate indicating whether *year_val* (offset by 1970) is a
    leap year.
    i     d     )	r!   r   ra   r   is_nullrI   is_not_nullr   r   )r   year_valactual_yearmultiple_of_4not_multiple_of_100multiple_of_400s         r   is_leap_yearr     s    
 ++hT(B(BCCKOk8J+B+BCCE EM!-k8J+D+DEEG Gok8J+D+DEEG GO<<$7IIK K Kr   c           
      .   t          j        | t                    }t          | |d          }|                     t          j        | |                    5 \  }}|5  t          | |d          }|                     |t          | |d                    }t          | |d          }| 	                    |t          | |d                    }t          | |d          }	|                     |t          | |	d                    }| 
                    ||           ddd           n# 1 swxY w Y   |5  t          | |d	          }
|                     |t          | |
d                    }t          | |
d
          }| 	                    |t          | |d                    }|                     |t          | |d                    }| 
                    ||           ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   |                     |          S )zg
    Given a year *year_val* (offset to 1970), return the number of days
    since the 1970 epoch.
    im  r>      D   r   i,  r   Ni)r   r8   r   r   rt   
is_neg_intr#   r!   r   r   r9   rv   )r   r   r4   daysif_negif_pos	from_1968p_days	from_1900	from_1600	from_1972n_days	from_2000s                r   year_to_daysr     s    
g{
3
3CWh44D	+GX>>	?	? '' 	' 	' %Wh::I[[!4Wi!K!KM MF %Wi<<I[[!4Wi!M!MO OF %Wi==I[[!4Wi!M!MO OFMM&#&&&%	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'&  	' 	'
 %Wh;;I[[!4Wi!K!KM MF %Wi==I[[!4Wi!M!MO OF [[!4Wi!M!MO OFMM&#&&&%	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'+'' '' '' '' '' '' '' '' '' '' '' '' '' '' ''P <<s\   G7B9DG7D#	#G7&D#	'G7,B(G G7 G$	$G7'G$	(G77G;>G;c                    t           j        |         }t           j        |         }|dk     s|dk    r||fS |dk    r|}t          | |          }nt          j        | dt
                    }t          j        | dt                    }	t          j        | t                    }
t          j	        | |d          \  }}| 
                    t          | |                    5 \  }}|5  |                     t          j        | |d|d                    }|                     ||
           d d d            n# 1 swxY w Y   |5  |                     t          j        | |	d|d                    }|                     ||
           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          | |          }|                     ||                     |
                    }|dk    rt          j	        | |d          \  }}|d	fS |d
fS )Nr   r   leap_year_months_accnormal_year_months_acc   T)inbounds   WD)r   DATETIME_UNITSr   r   global_constantr   r   r8   r   divmod_by_constantrt   r   rv   gepr9   r!   )r   dt_valsrc_unit	dest_unitdest_unit_codesrc_unit_coder   days_val
leap_arraynormal_arrayr   yearmonthrw   rx   addendweeks_s                     r   reduce_datetime_for_unitr    s   '6yAN&5h?M]a//x22 ,W6L-AC C
.w8P/EG G "7K88 0&"EEe __\'48899 	,=NdI , , gk':23UT'K 'K 'K L Lfd+++, , , , , , , , , , , , , , ,  , , gk'<23UT'K 'K 'K L Lfd+++, , , , , , , , , , , , , , ,	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,  ..;;xd););<<-gxCCqcz}s\   F#!AD0$F#0D4	4F#7D4	8F#=AF F#F	F#F	F##F'*F'c                     t          | |||          \  }}t          j        ||          }|t          d|d|          t	          | ||          S )zC
    Convert datetime *dt_val* from *src_unit* to *dest_unit*.
    Nzcannot convert datetime64 from r%   )r  r   r&   r   r   )r   r   r   r   dt_unit	dt_factors         r   convert_datetime_for_arithr  )  ss    
 /9. .OFG #B7IVVIm*2((II? @ @ 	@Wfi888r   c                       fd}|S )Nc                    t          |          }t          j        |t          |||g                    5  t	          ||||          }t          j        ||          }t          |||          } t          |
          ||          }	|	                    |	|           d d d            n# 1 swxY w Y   |
                    |          S r`   )r<   r   r   rL   r  r   r&   r   getattrr9   rv   )r(   r   dt_argr  r   td_unitret_unitr4   	td_factorret_val
ll_op_names             r   r   z'_datetime_timedelta_arith.<locals>.impl:  s   $W--wGff=M(N(NOO 	( 	(/07C CF*J# #I&w	BBF2ggz2266BBGMM'3'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( ||C   s   A)B++B/2B/r   )r  r   s   ` r   _datetime_timedelta_arithr  9  s#    ! ! ! ! ! Kr   r!   r   c           	          |\  }}|j         \  }}t          | |||j        ||j        |j        j                  }t	          | ||j        |          S r`   rm   _datetime_plus_timedeltar'   rj   r	   	r(   r   rl   rm   r  r   dt_typer   rn   s	            r   datetime_plus_timedeltar  O  Z     NFFxGW
"7G#)7<#)7<#&?#79 9C gwEEEr   c           	          |\  }}|j         \  }}t          | |||j        ||j        |j        j                  }t	          | ||j        |          S r`   r  )	r(   r   rl   rm   r   r  r   r  rn   s	            r   timedelta_plus_datetimer"  [  r   r   c           	          |\  }}|j         \  }}t          | |||j        ||j        |j        j                  }t	          | ||j        |          S r`   )rm   _datetime_minus_timedeltar'   rj   r	   r  s	            r   datetime_minus_timedeltar%  i  sZ     NFFxGW
#GW$*GL$*GL$'O$8: :C gwEEEr   c                    |\  }}|j         \  }}|j        }|j        }	|j        j        }
t          |          }t	          j        |t          |||g                    5  t          ||||
          }t          |||	|
          }|                    ||          }|	                    ||           d d d            n# 1 swxY w Y   |
                    |          }t          | ||j        |          S r`   )rm   r'   rj   r<   r   r   rL   r  r   r9   rv   r	   )r(   r   rl   rm   r   r   r   r   unit_aunit_br  r4   r  rn   s                 r   datetime_minus_datetimer)  w  s'   FBXFBWFWF#H
 
)
)C		7K"b$B$B	C	C $ $'VXFF'VXFF++b"%%gs###	$ $ $ $ $ $ $ $ $ $ $ $ $ $ $
 ,,s

CgwEEEs   AB;;B?B?c                       fd}|S )Nc                    |\  }}|j         \  }}|j        }|j        }	t          j        ||	          }
t	          |          }|                    t          |||g                    5 \  }}|5  t          ||||
          }t          |||	|
          }|                    ||          }|	                    ||           d d d            n# 1 swxY w Y   |5  dk    rt          j        }nt          j        }|	                    ||           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                    |          }t          | ||j        |          S r   )rm   r'   r   get_best_unitrB   rt   rL   r  r~   r9   r   r   r   rv   r	   rj   )r(   r   rl   rm   r   r   r   r   r'  r(  r  r4   rw   rx   r   r   r  rn   r   s                     r   r   z._create_datetime_comparison_impl.<locals>.impl  s&   BB%3FFCC"7++__[2r(;;<< 	,@Qy , ,3R3 33R3 3!--eVVDDgs+++, , , , , , , , , , , , , , ,  , ,D==%.GG%/Ggs+++, , , , , , , , , , , , , , ,	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, ll3!'7COSIIIs[   (D2.AC D2C	D2C	D26DD2D	D2"D	#D22D69D6r   r   s   ` r    _create_datetime_comparison_implr-    s(    J J J J J0 Kr   c                       fd}|S )Nc                 @   |\  }}t          ||          }t          ||          }|                    d||          }|                    |||          }	
r||}}|                    ||	|          }	|                    ||	|          }	t          | ||j        |	          S Nr   rF   r~   selectr	   rj   r(   r   rl   rm   in1in2in1_not_natin2_not_nat
in1_ge_in2rn   NAT_DOMINATESs             r   datetime_max_implz1_gen_datetime_max_impl.<locals>.datetime_max_impl       S #.. #..((sC88
nnZc22 	 CCnn[#s33nn[#s33!'7COSIIIr   r   )r9  r:  s   ` r   _gen_datetime_max_implr<    )    J J J J J r   TFc                       fd}|S )Nc                 @   |\  }}t          ||          }t          ||          }|                    d||          }|                    |||          }	
r||}}|                    ||	|          }	|                    ||	|          }	t          | ||j        |	          S Nr   r1  r(   r   rl   rm   r4  r5  r6  r7  
in1_le_in2rn   r9  s             r   datetime_min_implz1_gen_datetime_min_impl.<locals>.datetime_min_impl  r;  r   r   )r9  rC  s   ` r   _gen_datetime_min_implrD    r=  r   c                       fd}|S )Nc                 @   |\  }}t          ||          }t          ||          }|                    d||          }|                    |||          }	
r||}}|                    ||	|          }	|                    ||	|          }	t          | ||j        |	          S r0  r1  r3  s             r   timedelta_max_implz3_gen_timedelta_max_impl.<locals>.timedelta_max_impl  r;  r   r   )r9  rG  s   ` r   _gen_timedelta_max_implrH    )    J J J J J r   c                       fd}|S )Nc                 @   |\  }}t          ||          }t          ||          }|                    d||          }|                    |||          }	
r||}}|                    ||	|          }	|                    ||	|          }	t          | ||j        |	          S r@  r1  rA  s             r   timedelta_min_implz3_gen_timedelta_min_impl.<locals>.timedelta_min_impl  r;  r   r   )r9  rL  s   ` r   _gen_timedelta_min_implrM    rI  r   c                    |                     t                    }|                    d||          }|                    |          5 \  }}|5  |                    t
          |           d d d            n# 1 swxY w Y   |5  |                    |                    |t                    |           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                    |          S )Nuno)allocar   fcmp_unorderedrt   r9   r:   fptosirv   )r(   r   r   temp
val_is_nanrw   elss          r   r   r     s   >>+&&D''sC88J		$	$ B )# 	% 	% MM#t$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%  	B 	BMM'..k::DAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	BB B B B B B B B B B B B B B B <<sZ   CA5)C5A9	9C<A9	=C0B>2C>C	CC	CCCc                 0    t          j        | |||          S r`   )r   np_datetime_isnat_impl)r(   r   rl   rm   s       r   _np_isnat_implrX    s     *7GS$GGGr   c                 R    |j         dk    rd| d| d| d}t          |          |S )Nr   zCannot cast r%   z as z is not 64 bits wide.)bitwidth
ValueError)r(   r   fromtytotyr   r+   s         r   _cast_npdatetime_int64r^  !  sB     }NVNNNN4NNNooJr   __hash__c                     t           j        dk    r0t          | t          j                  r| j        st          d          t          rd }nd }|S )N)r   r   zCan't hash generic timedelta64c                 .   t          j        |           } | dk     rt          j        |           }nKt          j        |           dz  dz	  }t          j        |           dz  }t          j        |d|z  z             }|dk    rt          j        d          }|S )Nil            l    iCB r}   r   )rc   rd   int32)xyhilos       r   r   z ol_hash_npdatetime.<locals>.impl2  s    A9}}HQKKhqkk$662=hqkk$66HR7b.011BwwHRLLHr   c                     t          j        |           dk    rt          j        d          S t          j        |           S )Nr}   r   )rc   rd   )rd  s    r   r   z ol_hash_npdatetime.<locals>.impl>  s1    x{{b  x||#8A;;r   )r   numpy_versionr   r   NPTimedeltar'   r[  r   )rd  r   s     r   ol_hash_npdatetimerk  *  sr     "f,,E-.. -78v -9::: 
	 
	 
	 
		 	 	 Kr   )r4   )__doc__numpyrc   operatorllvmlite.irr?   r   
numba.corer   r   numba.core.cgutilsr   numba.core.imputilsr   r   r	   r
   numba.npr   r   r   numba.extendingr   numba.core.configr   numba.core.errorsr   r@   rA   ra   r   r:   rj  TIMEDELTA_BINOP_SIGr   r   r#   r,   r3   r<   rB   rF   rL   normal_year_monthsleap_year_monthsr   r   
NPDatetimerg   posro   rq   rr   absry   r   r!   iaddr   r   isubr   r   r   Integerimulr   r   r   truedivitruedivfloordiv	ifloordivr   r   r   r   r   r   r   timedelta_eq_timedelta_implr   timedelta_ne_timedelta_impltimedelta_lt_timedelta_impltimedelta_le_timedelta_impltimedelta_gt_timedelta_impltimedelta_ge_timedelta_impleqneltlegtgeop_funcr   r   r  r  r  r  r$  r  r"  r%  r)  r-  datetime_eq_datetime_impldatetime_ne_datetime_impldatetime_lt_datetime_impldatetime_le_datetime_impldatetime_gt_datetime_impldatetime_ge_datetime_implopr<  datetime_maximum_impldatetime_fmax_implrD  datetime_minimum_impldatetime_fmin_implrH  timedelta_maximum_impltimedelta_fmax_implrM  timedelta_minimum_impltimedelta_fmin_implr   isnatrX  r^  rk  datetime_minimumdatetime_maximumr   r   r   <module>r     s                         % % % % % % % % 4 4 4 4 4 4A A A A A A A A A A A A @ @ @ @ @ @ @ @ @ @ + + + + + + ' ' ' ' ' ' + + + + + + $;..r22 2
[h{.233(*Q. ; ; ;< < <: : :3 3 3I I I"      1 1 1   +*4446 6  )(4446 6  /.;;;= =  -,;;;= = 
  !!!"". . #" "!. x|U.//F F 0/F
 x|U.//F F 0/F
 sE%&&	F 	F '&	FF F F, x|21222x}32333	F 	F 43 32	F x|21222x}32333	F 	F 43 32	F  " x|U.>>x}e/??x|U.<<x}e/==F F >= =< @? ?>F x|U]E,=>>x}emU->??x|U[%*;<<x}ek5+<==F F >= =< @? ?>F x!2EMBBx %"3U]CCx %"3U]CCx!5#4emDDx!2EK@@x %"3U[AAx %"3U[AAx!5#4ekBBF F CB BA BA A@ ED DC DC CBF. x6"5666x 7#6777F F 87 76F  x 7#6777 F  F 87 FD F  F  FJ  8  & @?'
  ??'
  ==cBB ==dCC ==cBB ==dCC ; ;<; ;<;!<=; ;<;!<=; ;<> 3 3IC -MM#,+,,,T2222
K K K 3 3 3l* * *Z9 9 9     54U;; 55e<< 
 x|U-u/@AAx}e.0ABBF F CB BAF x|U.0@AAx}e/1ABBF F CB BAF x|U-u/@AAx}e.0ABBF F CB BAF x|U-u/?@@F F A@F$  8 =<TBB <<TBB <<SAA <<TBB <<SAA <<TBB +89+89+89+89+89+89; 3 3HB -MM",()!+,,,T2222  $ /.t44 ++E22   $ /.t44 ++E22   $ 1066 --e44   $ 1066 --e44    rx)**rx*++H H ,+ +*H Eem,,Eu}--  .- -, "J//!:..  /. 0/2 W 153CUEU V VWl m m m X 153DeFW X XYn o o o V 153CUEU V VWl m m m X 153DeFW X XYn o o o o or   