
    Ph;                     6   d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlZd dl	m
Z
mZ d dlmZ d dlmZ d dlZd dlmZmZmZmZmZmZmZmZmZmZ 	  ej:                  d      d	   Zed
   d   dk(  ZejB                  ejD                  ejF                  ejH                  ejJ                  ejL                  ejN                  ejP                  ejR                  ejT                  ejV                  ejX                  ejZ                  ej\                  ej^                  ej`                  ejb                  gZ2ejf                  ji                         Z5ejl                  ji                         Z7 e8       dgZ9ejt                  ejv                  ejx                  ejz                  ej|                  ej~                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  gZG G d d      ZHd ZIej                  j                   edd       e
 eeG       ej                   ej                         d       ej                   ej                         d            d                      ZNej                  j                   e
 eeG       ej                          ej                               d               ZOej                  j                  dej                  ej                  g      d        ZS G d d      ZT G d d      ZUd ZVd ZW G d  d!      ZX G d" d#      ZY G d$ d%      ZZ G d& d'      Z[es
 G d( d)      Z\ G d* d+      Z] G d, d-      Z^ G d. d/      Z_ G d0 d1      Z` G d2 d3      Za G d4 d5      Zbe j                  d6        Zd e
 ee9       eeG       ee2            d7        Ze e
 ee9       eeG       ee2            d8        Zf e
 eeG       ee2       ee2            d9        Zgej                  j                  d:eG      ej                  j                  d;dd<g      d=               Zhej                  j                  d:eG      ej                  j                  d;dd<g      d>               Ziej                  j                  d?ej                  d@         ej                  j                  dAdB dC dD gg dEF      dG               Zkej                  j                  d?ej                  dH         ej                  j                  dAdI dJ dK  ej                  dL ej                  j                  dMN      O      gg dPF      dQ               Znej                  j                  d?ej                  dR         dS        Zoej                  j                  d?ej                  d@         ej                  j                  dAdT dU gdVdWgF      dX               ZpdYdZejt                  d[fd\d]ejv                  d[fd^d^ejx                  d[fd_d_ejz                  d[fdZdYej~                  d[fd]d\ej|                  d[fd`daej                  dfdbdcej                  dfdddeej                  dfdfdgej                  dfdhdiej                  dfdjdkej                  dfdldmej                  dfgZqej                  j                  g dneq      ej                  j                  doej                  ej                  ej\                  g      dp               Zsdq Ztej                  j                  g dneq      ej                  j                  dreuevewej                  g       ej                         ds                      Zyy# e $ r dZY "w xY w)t    N)_pep440)givensettings)sampled_from)numpy)
assert_assert_equalassert_raisesassert_almost_equalassert_array_equalIS_PYPYsuppress_warnings_gen_alignment_dataassert_warns_SUPPORTS_SVEdicts)mode	Compilerscnamezclang-clFc                   $    e Zd Zd Zd Zd Zd Zy)	TestTypesc                 T    t         D ]  } |d      }t        |dk(  d|d|       ! y )N   error with : got )typesr   )selfatypeas      kC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\numpy/core/tests/test_scalarmath.py
test_typeszTestTypes.test_types.   s(    EaAAFua@A     c                    t        t              D ]  \  }} |d      }t        j                  dg|      }t        t              D ]  \  }} |d      }t        j                  dg|      }||z   }	||z   }
t	        |	j
                  |
j
                  d|t        j
                  |      j                  |t        j
                  |      j                  fz           y )N   dtyper   z$error with types (%d/'%c' + %d/'%c'))	enumerater   nparrayr	   r'   char)r   kr   a_scalara_arraylbtypeb_scalarb_arrayc_scalarc_arrays              r!   test_type_addzTestTypes.test_type_add3   s    !%(HAuQxHhhs%0G%e,5 8((A3e4#h.!G+ X^^W]]A 4 4a%9M9MNOP - )r#   c                     t        t              D ]3  \  }}t        j                  g d|      } |g d      }t	        ||       5 y )Nr      r%   )r(   r   r)   r*   r	   )r   r,   r   r    bs        r!   test_type_createzTestTypes.test_type_createG   s9    !%(HAuE*Ai AA )r#   c                 P    t        d      D ]  }t        j                  dd        y )Ni@ r   )ranger)   add)r   is     r!   	test_leakzTestTypes.test_leakM   s     vAFF1aL r#   N)__name__
__module____qualname__r"   r5   r:   r?    r#   r!   r   r   -   s    B
P(r#   r   c           	      &   |d   }|d   }t        |t        j                        sJ t        |t        j                        sJ |j                  j                  dk(  s|j                  j                  dk(  rt
        j                  t
        j                  t
        j                  t
        j                  h}| |v r?t        j                  |      st        j                  |      rt        j                  d       | t
        j                  k(  r'|j                         dv rt        j                  d       t!        j"                         5  t        j$                  d      5  t!        j&                  dt(               	  | ||      } | ||      }t+        ||d	
       d d d        d d d        y # t,        $ rG}t        j.                  t1        |            5   | ||       d d d        n# 1 sw Y   nxY wY d }~\d }~ww xY w# 1 sw Y   exY w# 1 sw Y   y xY w)NrC   r   z3complex comp ufuncs use sort-order, scalars do not.)r         ?r   r8   z.array**2 can have incorrect/weird result dtypeignoreallerrorT)strict)
isinstancer)   genericr'   kindoperatorgegtleltisnanpytestxfailpowitemskipwarningscatch_warningserrstatesimplefilterDeprecationWarningr   	Exceptionraisestype)	oparr1arr2scalar1scalar2comp_opsres
scalar_reses	            r!   check_ufunc_scalar_equivalencerk   T   ss   2hG2hGgrzz***grzz***zz#C!7KKhkk8;;G>rxx0BHHW4ELLNO	X\\diik-?? 	DE 
	 	 	"BKKH$=g'9:	=T4.C
 GW-Jz3t< %>	"	"
  	%tAw'7G$ (''	% %>$=	"	"sf   HG;7	F( G;H(	G81G3
G"		G3"G+'G3.G;3G88G;;H	 HHi'  i  )max_examplesdeadlinerC   )r'   shapec                     t        | ||       y)z
    This is a thorough test attempting to cover important promotion paths
    and ensuring that arrays and scalars stay as aligned as possible.
    However, if it creates troubles, it should maybe just be removed.
    N)rk   )rb   rc   rd   s      r!   #test_array_scalar_ufunc_equivalencerp   r   s     #2tT2r#   c                 z    t        j                  d|      }t        j                  d|      }t        | ||       y )Nr8   r&   r%   )r)   r*   rk   )rb   dt1dt2rc   rd   s        r!   test_array_scalar_ufunc_dtypesrt      s0     88AS!D88AS!D"2tT2r#   fscalarc                 |   t        j                  d      } | d      }t        j                  ||      }||z  j                  |k(  sJ ||z  j                  |k(  sJ ||z  j                  t        j                  d      k(  sJ t        j                  d      |z  j                  t        j                  d      k(  sJ y )Nr   float64float32)r)   int8result_typer'   int16)ru   r>   fexpecteds       r!    test_int_float_promotion_truedivr~      s     	
A
A~~a#HE==H$$$E==H$$$E==BHHY////HHQK!O""bhhy&9999r#   c                   X    e Zd Zej                  j                  ed      d        Zd Zy)TestBaseMathzgh-22982reasonc           	         t         j                  dft         j                  dft         j                  dffD ]"  \  }}t	        |d|      D ]
  \  }}}}t        j
                  |      }t        j
                  |      |d<   t        j                  |      |d<   t        t        j                  ||      ||       t        t        j                  |d      |dz   |       t        t        j                  d|      ||       t        j                  |||	       t        |||       |dxx   t        j                  |j                  |
      dz   z  cc<   t        t        j                  |      t        j                  ||      |       |t         j                  k7  r5t        t        j                  |      t        j                  d|      |       t        j
                  |      |d<   t        j                  |d|	       t        ||dz   |       t        j
                  |      |d<   t        j                  d||	       t        ||dz   |        % y )N      binary)r'   ra   max_size.err_msgr8   r   outr&   )r)   rx   rw   int32r   	ones_like
zeros_liker   r=   arangesizesquaremultiply
reciprocaldivide)r   dtszr   inp1inp2msgexp1s           r!   test_blockedzTestBaseMath.test_blocked   s    

B'"**a288R.IFB(;"AIEG)I )I$T4 ||D)LL.S	MM$/S	#BFF4$6cJ#BFF4OTAXsK#BFF1dOT3GtTs+#Cs;S	RYYtyy;a??	#BIIdO$&KKd$;cK >'d(;(*		!T(:SJ LL.S	tQC(#C3?LL.S	q$C(#C3?5)I Jr#   c                    t        j                  dt         j                        dd j                  t         j                        }t        j                  dt         j                        dd j                  t         j                        }t        ||z   |dz         t        j                  |||       t        j                  t        j                  |      ||       t        j                  |t        j                  |      |       t        j                  t        j                  |      |       t        j                  |t        j                  |             y )N   r&      r8   r   )r)   zerosry   viewrw   r   r=   r   )r   dos      r!   test_lower_alignzTestBaseMath.test_lower_align   s     HHV277+Ab166rzzBHHV277+Ab166rzzBAE1q5)
q!
r||Aq)
q",,q/q)
r||A"
q",,q/"r#   N)	r@   rA   rB   rU   markrV   r   r   r   rC   r#   r!   r   r      s0    [[}Z8@ 9@@
#r#   r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)	TestPowerc                     t         j                  t         j                  t         j                  fD ]$  } |d      }|dz  }t	        |dk(  d|d|       & y )Nr%   r   Q   r   r   )r)   ry   r{   float16r   r   tr    r9   s       r!   test_small_typeszTestPower.test_small_types   sD    ''288RZZ0A!AQAAG1=> 1r#   c                 V   t         j                  t         j                  t         j                  t         j                  t         j
                  fD ]Y  } |d      }|dz  }d|d|}t        j                  |t         j                        rt        |dk(  |       Lt        |d|       [ y )N3   r   r   r   i:g r   )
r)   r   int64rx   rw   
longdouble
issubdtypeintegerr   r   )r   r   r    r9   r   s        r!   test_large_typeszTestPower.test_large_types   st    ((BHHbjj"**bmmLA"AQA-.2C}}Q

+Wc*#Aw< Mr#   c                 j   dD cg c]  }t        j                  d|      d    }}dD cg c]  }t        j                  d|      d    }}t        j                  ||      D ]  \  }}|j                  t         j
                  k7  r!t        t        t        j                  ||       Dt        j                  ||      }t        |j                  j                  t         j                  u        t        |d        dD cg c]  }t        j                  d|      d    }}t        j                  ||      D ]  \  }}|j                  t         j
                  k7  r!t        t        t        j                  ||       Dt        j                  ||      }t        |j                  j                  t         j                  u        t        |d        dD cg c]  }t        j                  d|      d    }}t        j                  ||      D ]  \  }}|j                  t         j
                  k7  r!t        t        t        j                  ||       Dt        j                  ||      }t        |j                  j                  t         j                  u        t        |d	        y c c}w c c}w c c}w c c}w )
NbhilqrE   rC   
bhilqBHILQr         ?      r8   rF   )r)   r*   	itertoolsproductr'   uint64r
   
ValueErrorrO   rW   r   ra   rw   r   )r   r   expbasei1i2rh   s          r!   'test_integers_to_negative_integer_powerz1TestPower.test_integers_to_negative_integer_power   s    /66grxxB#g6 /;;lB#l;''c2FBxx299$j(,,B?ll2r*		"**45#C, 3 077wR $w7''c2FBxx299$j(,,B?ll2r*		"**45#C- 3 /;;lB#l;''c2FBxx299$j(,,B?ll2r*		"**45#C, 31 7 < 8 <s    J! J&> J+ J0c           
      "   t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  t         j                  t         j                  g	}|D ]  }|D ]z  } |d      } |d      }||z  }d|d|d|dd}t        j                  t        j                  |      t         j                        rt        |dk(  |       mt        |d|       |  y )	Nr%   r8   r    and z:got z, expected 	   r   )r)   ry   r{   r   rx   rw   r   r   r   r'   r   r   r   )r   typelistt1t2r    r9   resultr   s           r!   test_mixed_typeszTestPower.test_mixed_types   s    GGRXXrzzJJ

BGGHHbhh2 BqEqEA13RD==&!12::>FaK-'3?  r#   c           
      T   d}d}d}t        |||      }t        j                  t        j                  t        j                  fD ]c  }t        t        t        j                    ||      ||       t        t        t        j                   t        j                   ||            ||       e y )N   r   
   )	rW   r)   r   rx   	complex64r
   	TypeErrorrO   r*   )r   r    r9   r   r}   r   s         r!   test_modular_powerzTestPower.test_modular_power  ss    q!Q<((BJJ5A)X\\1Q4A>)X\\288AaD>1aH 6r#   N)r@   rA   rB   r   r   r   r   r   rC   r#   r!   r   r      s    ?="-H@ 	Ir#   r   c                     | |z  | |z  fS NrC   )xys     r!   floordiv_and_modr     s    FAE?r#   c                 0    | t         j                  d   v ryy)NUnsignedInteger)r   r   rE   )r)   	typecodes)r   s    r!   _signsr     s    	R\\+,,r#   c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestModulusc           	      d   t         j                  d   t         j                  d   z   }t        t        fD ]  }t	        j
                  ||      D ]  \  }}t	        j
                  t        |      t        |            D ]  \  }}d}||j                  ||||fz  }t        j                  |dz  |      d   }	t        j                  |dz  |      d   }
 ||	|
      \  }}t        ||
z  |z   |	|       |d	k(  rt        |
|cxk  xr d
k  nc |       t        |
|cxkD  xr d
k\  nc |          y )N
AllIntegerFloat*op: %s, dt1: %s, dt2: %s, sg1: %s, sg2: %sG   r&   rC      r   rE   r   )r)   r   r   divmodr   r   r   r@   r*   r	   r   r   r   rb   rr   rs   sg1sg2fmtr   r    r9   divrems                r!   test_modulus_basiczTestModulus.test_modulus_basic'  s
   \\,'",,w*??#V,B%--b"5S ) 1 1&+vc{ KHCFCc3S AACRs3B7ARs3B7A!!QxHC Qa=byC1c2C1c2 !L 6 -r#   c                 ^   t        t        dd            }t        t        dd            }|dgz   |z   }||z   }t        t        j                  ||            }t        d |D              }t	        j
                  |t              j                  \  }}t	        j
                  |t              j                  \  }	}
t	        j                  |	dk(  |dk  |dk  z  z  d|	      }	t	        j                  |
dk(  |dk  z  d|
      }
t        t        fD ]  }t        j                  d	   D ]  }d
|j                  d|}|j                  |      }|j                  |      }t        t        ||      D cg c]  \  }} |||       c}} \  }}t!        ||	|       t!        ||
|         y c c}}w )Nir   r      c              3   ,   K   | ]  }t        |   y wr   )r   ).0r   s     r!   	<genexpr>z7TestModulus.test_float_modulus_exact.<locals>.<genexpr>?  s     +s!61:ss   r&                  r   zop: z	, dtype: r   )listr<   r   r   r)   r*   intTfloatwherer   r   r   r@   astypezipr	   )r   nlstplstdividenddivisorargtgtr    r9   tgtdivtgtremrb   r   r   fafba_b_r   r   s                       r!   test_float_modulus_exactz$TestModulus.test_float_modulus_exact7  sv    E$N#E!SM"1#:$+9$$Xw78+s++xx3'))1 #U3556S=a!eA->?vN6S=QU3T6B#V,Bll7+-/[["=XXb\XXb\3r2; G;RB; GHSS&#6S&#6 , - !Hs   -F)c           	         t         j                  d   }t        t        fD ]  }t	        j
                  ||      D ]  \  }}t	        j
                  dd      D ]  \  }}d}||j                  ||||fz  }t        j                  |dz  dz  |      d   }	t        j                  |dz  |      d   }
 ||	|
      \  }}t        ||
z  |z   |	|       |d	k(  rt        |
|cxk  xr d
k  nc |       t        |
|cxkD  xr d
k\  nc |          y )Nr   r   r   N   g+i)+p>r&   rC   r   rE   r   )
r)   r   r   r   r   r   r@   r*   r	   r   r   s                r!   test_float_modulus_roundoffz'TestModulus.test_float_modulus_roundoffR  s    \\'"#V,B%--b"5S ) 1 1(H EHCFCc3S AACRC8<AT5b9A!!QxHC Qa=byC1c2C1c2 !F 6 -r#   c                    t         j                  d   D ]  }t        j                  d|      }t        j                  t        j                  d|      |       }t	        j
                  ||      }t        ||k  d|z         t	        j
                  | |       }t        || k\  d|z          t               5 }|j                  t        d       |j                  t        d       |j                  t        d       |j                  t        d	       |j                  t        d
       t         j                  d   D ]~  }t        j                  d|      }t        j                  d|      }t        j                  t         j                  |      }t        j                  t         j                  |      }	t	        j
                  ||      }t        t        j                  |      d|z         t	        j
                  ||	      }t        t        j                  |      d|z         t	        j
                  ||      }t        t        j                  |      d|z         t        t        fD ]L  }
 |
||      \  }}t        t        j                  |            xr t        t        j                  |             N  	 d d d        y # 1 sw Y   y xY w)Nr   r   r&   r   zdt: %sz&invalid value encountered in remainderz'divide by zero encountered in remainderz*divide by zero encountered in floor_dividez$divide by zero encountered in divmodz#invalid value encountered in divmod)r)   r   r*   	nextafterrO   modr   r   filterRuntimeWarninginfnanrT   r   r   isinf)r   r   r9   r    r   supfonefzerfinffnanrb   r   r  s                r!   test_float_modulus_corner_casesz+TestModulus.test_float_modulus_corner_casesd  s   ,,w'BB'ARXXc4qb9A,,q!$CC1Hhm,,,rA2&CCA2Ix"}- (  CJJ~'OPJJ~'PQJJ~'STJJ~'MNJJ~'LMll7+xx2.xx2.xxb1xxb1ll4.x"}5 ll4.x"}5ll4.x"}5+V4B!$~HCBHHSM*Ewrxx}/E 5 , !  s   9HKKc                    t        j                  ddgt         j                        }t        j                  ddgt         j                        }t	        j
                  t        d      5  ||z  }d d d        y # 1 sw Y   y xY w)Nr   r8   z,Cannot cast ufunc 'floor_divide' output frommatch)r)   r*   r   r   rU   r`   r   )r   r    r9   s      r!   test_inplace_floordiv_handlingz*TestModulus.test_inplace_floordiv_handling  sb     HHaVRXX&HHaVRYY']]9EG!GAG G Gs   (A77B N)r@   rA   rB   r   r  r  r  r  rC   r#   r!   r   r   %  s    3 763$!FFr#   r   c                       e Zd Zd Zd Zd Zy)TestComplexDivisionc                    t        j                  d      5  t         j                  t         j                  fD ]  } |d      } |d      }t	        t        j
                  ||z                |t        t         j                  t         j                              }t	        t        j
                  ||z                |t        t         j                  t         j                              }t	        t        j
                  ||z                |t        t         j                  t         j                              }t	        t        j
                  ||z                |t        t         j                  t         j                              }t	        t        j                  ||z                |d      }t	        t        j                  ||z                	 d d d        y # 1 sw Y   y xY w)NrG   rH   r   r   )
r)   r\   r   
complex128r   r  complexr  r  rT   r   s       r!   test_zero_divisionz&TestComplexDivision.test_zero_division  s(   [[X&llBMM2cFcF1&gbffbff-.1&gbffbff-.1&gbffbff-.1&gbffbff-.1&bE1& 3 '&&s   F>GG(c                    t        j                  d      5  t         j                  t         j                  fD ]}  }d}|D ]t  }|d   }|d   }|d   } |t	        |d   |d                |t	        |d   |d               z  }t        |j                  |d          t        |j                  |d          v  	 d d d        y # 1 sw Y   y xY w)NrG   rH   ))r   r   r   r   r   r   r"  r"  r   r   )r"  r   r   r   r   )r"  r   r   r   r   )r#  r"  r*  r%  )r'  r"  r&  )r)  r"  r$  r   r   r8   )r)   r\   r   r  r  r	   realimagr   r   datacasesnr   exr   s           r!   test_signed_zerosz%TestComplexDivision.test_signed_zeros  s    [[X&llBMM2	 "EaAaAqBwqtQqT23a!ad8K6LLF !be4 be4 " 3 '&&s   B!CCc                    t        j                  d      5  t         j                  t         j                  fD ]  }t	               }|j                  d       |j                  d       |D ]t  }|d   }|d   }|d   } |t        |d   |d                |t        |d   |d               z  }t        |j                  |d          t        |j                  |d          v  	 d d d        y # 1 sw Y   y xY w)NrG   rH   )       @r   r4  r(  )r   r5  r6  r(  r   r   r8   )
r)   r\   r   r  r   appendr  r	   r+  r,  r-  s           r!   test_branchesz!TestComplexDivision.test_branches  s    [[X&llBMM2 v BC BC!EaAaAqBwqtQqT23a!ad8K6LLF !be4 be4 "! 3 '&&s   CC,,C5N)r@   rA   rB   r   r2  r8  rC   r#   r!   r  r    s    '"525r#   r  c                      e Zd Zd Zd Zd Zd Zej                  j                  e
 d      d        Zej                  j                   ej                  ej                         ej                  ej                        k(  d      ej                  j                   ej"                         j%                  d	      d
      d               Zd Zd Zd Zy)TestConversionc           	         g d}g d}d t         j                  t         j                  fD ]<  }t        j                  ||      }t	        |D cg c]  }t        |       c}|       > t        j                  |d d t         j                        }t	        |D cg c]  }t        |       c}|d d        y c c}w c c}w )N)g    .Ag   mBg NgmCg    .g   mg Ngm)i@B l    J)l     NZoil J)l  NZor&   r%   )r)   rw   r   r*   r	   r   r   )r   r/   lir   r    _ms         r!   test_int_from_longz!TestConversion.test_int_from_long  s    1>

BHH-A!$AA.Ab#b'A.3 . HHQrU")),*"c"g*BrF3 / +s   B8
B=c                 6   dD ]  }t        j                  t              5  t        j                  t        j
                  |      j                  dz   |      }d d d        t        j
                  |      j                  }t        |k(          t        j                  d   D ]c  }t        j                  t        j
                  |      j                  |      }t        j
                  |      j                  }t        ||k(         e t        j                  d   D ]p  }t        j                  |      j                  t        j
                  |      j                        }t        j
                  |      j                  }t        ||k(         r y # 1 sw Y   9xY w)NbBhHr   r&   r   )rU   warnsr^   r)   r*   iinfomaxminr   r   r'   ra   )r   coderh   r   s       r!   test_iinfo_long_valuesz%TestConversion.test_iinfo_long_values  s   D01hhrxx~11A5TB 2((4.$$CC3J	  LL.D((288D>--T:C((4.$$CC3J /
 LL.D((4.%%bhhtn&8&89C((4.$$CC3J / 21s   8FF	c                     d }t         j                  t         j                  t         j                  t         j                  fD ]  }t        t        ||        y )Nc                 T     | t        j                  |       j                  dz          y Nr   )r)   rB  rC  r&   s    r!   overflow_error_funczDTestConversion.test_int_raise_behaviour.<locals>.overflow_error_func  s    "((5/%%)*r#   )r)   int_uintlonglong	ulonglongr
   OverflowError)r   rJ  rE  s      r!   test_int_raise_behaviourz'TestConversion.test_int_raise_behaviour  s:    	+ WWbggr{{BLLAD-)<dC Br#   c                    t        j                  t         j                        }t        t        t
        |       t               5 }|j                  t         j                         t        j                  t         j                        }t        t        t
        |       t        t        |j                        d       d d d        y # 1 sw Y   y xY wrI  )r)   r   r  r
   rO  r   r   recordComplexWarningclongdoubler	   lenlogr   r   r  s      r!   !test_int_from_infinite_longdoublez0TestConversion.test_int_from_infinite_longdouble  sv    MM"&&!mS!, CJJr(()rvv&A-a0SWWq)	 !  s   A7CCzTest is PyPy only (gh-9972)r   c                    t        j                  t         j                        }t        t        |j
                         t               5 }|j                  t         j                         t        j                  t         j                        }t        t        |j
                         t        t        |j                        d       d d d        y # 1 sw Y   y xY wrI  )r)   r   r  r
   rO  __int__r   rR  rS  rT  r	   rU  rV  rW  s      r!   )test_int_from_infinite_longdouble___int__z8TestConversion.test_int_from_infinite_longdouble___int__  sz    MM"&&!mQYY/ CJJr(()rvv&A-3SWWq)	 !  s   A<CCzlong double is same as doubleppczIBM double doublec                    t        j                  t         j                        j                  dz
  }dt        j                  d      |z  z  }dd|z  z  }t        |t         j                  k7         t        t        |      |       y )Nr   i	  r8   )	r)   finfodoublemaxexpr   r   r  r	   r   )r   r   huge_ldhuge_is       r!   test_int_from_huge_longdoublez,TestConversion.test_int_from_huge_longdouble  sf     hhryy!((1,R]]1-44AH$266!"S\6*r#   c                     t        j                  d      }t        t        |      d       t        j                  d      }t        t        |      d       y )N      ?r   g      %i)r)   r   r	   r   )r   r   s     r!   test_int_from_longdoublez'TestConversion.test_int_from_longdouble  s:    MM#SVQMM% SVS!r#   c           
         t         j                  d   D ]  }t        dt        j                  d|      d   kD  d|d       t        dt        j                  d|      d   k   d|d       t         j                  d   D ]  }t        t        j                  d|      d   t        j                  d|      d   kD  d|d|d       t        t        j                  d|      d   t        j                  d|      d   k   d|d|d         d	D ]_  }t        d
t        j                  d|      d   k  d|d       t        d
t        j                  d|      d   kD   d|d       t        d
t        j                  d|      d   k7  d|d       dD ]  }t        t        j                  d|      d   t        j                  d
|      d   kD  d|d|d       t        t        j                  d|      d   t        j                  d
|      d   k   d|d|d       t        t        j                  d|      d   t        j                  d
|      d   k7  d|d|d        b dt         j                  d   z   D ]s  }t        dt        j                  d
|      d   kD  d|d       t        dt        j                  d
|      d   k   d|d       t        d
t        j                  d
|      d   k(  d|d       dt         j                  d   z   D ]  }t        t        j                  d|      d   t        j                  d
|      d   kD  d|d|d       t        t        j                  d|      d   t        j                  d
|      d   k   d|d|d       t        t        j                  d
|      d   t        j                  d
|      d   k(  d|d|d        v y )Nr   r   r   r&   rC   ztype z failedr   BHILQPrE   bhilqpbhlqpr   )r)   r   r   r*   )r   rr   rs   s      r!   &test_numpy_scalar_relational_operatorsz5TestConversion.test_numpy_scalar_relational_operators$  sO   <<-CA#.r224MNBHHQc22666C8QR||L1#.r2RXXas5KB5OO36<>BHHQc226!39OPR9SSS36<> 2	 . CB!3/335NORXXas3B777S9RSB"((1C044#6OP  #.r2RXXb5LR5PP36<>BHHQc226"C9PQS9TTT36<>#.r2bhhr6Mb6QQ36<>    R\\'22CA3/335NOBHHRs3B777S9RSB"((2S1"5537PQg!66#.r2RXXb5LR5PP36<>BHHQc226"C9PQS9TTT36<>3/3rxx#7Nr7RR36<> 7 3r#   c                    t        j                  d      5 }t        j                  ddt               t	        t        j                  d      d k(          t	        t        j                  d      d k(          t	        t        j                  d      d k(          t	        t        j                  d      d k7         t	        t        j                  d      d k7         t	        t        j                  d      d k7         d d d        t	        t              dk(         t	        t        j                  t        j                  d      d              y # 1 sw Y   SxY w)	NT)rR  always r   testNaTr   )rZ   r[   filterwarningsFutureWarningr   r)   rx   str_
datetime64rU  equal)r   ws     r!   test_scalar_comparison_to_nonez-TestConversion.test_scalar_comparison_to_noneM  s     $$D1Q##Hb-@

1--.4//0e,445BJJqMT)*BGGFOt+,BMM%(D01 2 	A!
 	u-t45! 21s   C%EEN)r@   rA   rB   r>  rF  rP  rX  rU   r   skipifr   r[  r)   r^  r_  r   platformmachine
startswithrc  rf  rk  rw  rC   r#   r!   r:  r:    s    4 "D* [[G,IJ* K* [[+xrxx/FF>  @[[(((*55e<2  4+4@+"'>R6r#   r:  c                       e Zd Zd Zd Zy)TestReprc                 ,   t        j                  |      }|j                  |j                  z   }|j                  }t        j                  |      j
                  dz  }dD ]  }t        j                  dg|z  t         j                        }|dk(  r|dz  }d|dz  z
  }	d|	z  ||<   n&|dk(  r|dz  }d|dz  z
  }	d|	z  ||<   nt        d	      |j                  |      d   }
t        |
      } |t        |            }|dk(  r|
d
k  rt        |
|        y )N   )small denorm
small normr   r&   r  r   r   r  hmmg0.++)r)   r^  nexpnmantr'   itemsizer*   uint8r   r   reprevalr	   )r   r   r^  last_fraction_bit_idxlast_exponent_bit_idxstorage_byteswhichconstrbytebytebitvalval_reprval2s                r!   _test_type_reprzTestRepr._test_type_reprm  s    %

U[[ 8 %

,,Q.3EXXtf]2"((CF&,12Q67 G|t,&,12Q67 G|t ''++a.#CCyHT(^$DAI#,S$'# 4r#   c                 p    t         j                  t         j                  fD ]  }| j                  |        y r   )r)   rx   rw   r  )r   r   s     r!   test_float_reprzTestRepr.test_float_repr  s)     **bjj)A  # *r#   N)r@   rA   rB   r  r  rC   r#   r!   r}  r}  l  s    (2$r#   r}  c                       e Zd Zd Zd Zy)
TestSizeOfc                     t         D ]5  } |d      }t        t        j                  |      |j                  kD         7 y )Nr   )r   r   sys	getsizeofnbytes)r   ra   r   s      r!   test_equal_nbyteszTestSizeOf.test_equal_nbytes  s/    Ga(18834 r#   c                 b    t        j                         }t        t        |j                  d       y )Nr    )r)   rx   r
   r   
__sizeof__)r   r   s     r!   
test_errorzTestSizeOf.test_error  s    

A)Q\\37r#   N)r@   rA   rB   r  r  rC   r#   r!   r  r    s    	5
	8r#   r  c                       e Zd Zd Zd Zy)TestMultiplyc           
         t        t        j                  d         }dh}t        t        j                  d         |z
  |z
  }|dhz  }t        t        fD ]n  } |g d      }|D ]\  }t        j
                  |      j                  d      }t        ||z  |t        |      z         t        ||z  t        |      |z         ^ |D ]  }t        j
                  |      j                         }t        t        t        t        j                  ||      |t        |      z         t        t        t        t        j                  ||      t        |      |z          |D ]e  }t        j
                  |      j                         }t        t        t        j                  ||       t        t        t        j                  ||       g q y )Nr   ?AllVr7   r8   )setr)   r   r   tupler'   ra   r	   r   r   r^   rO   mulr
   r   )r   accepted_typesdeprecated_typesforbidden_typesseq_typeseq
numpy_typer>   s           r!   test_seq_repeatzTestMultiply.test_seq_repeat  sk   
 R\\,785U#$~58HH 	C5 uH9%C,
HHZ(--a0S1WcCFl3QWc!fsl3 -
 /
HHZ(--/ !3X\\3J#a&L"  !3X\\1cJFSL" / .
HHZ(--/isA>iq#> .! &r#   c                 D    G d d      } |t        j                  d            t        t        j                  d            fD ]  }t        |t        j                  d      z  t        j
                  dd             t        t        j                  d      |z  t        j
                  dd             t        |t        j                  d      z  t        j
                  dd             t        t        j                  d      |z  t        j
                  dd              y )Nc                       e Zd Zd Zd Zy)CTestMultiply.test_no_seq_repeat_basic_array_like.<locals>.ArrayLikec                     || _         y r   arr)r   r  s     r!   __init__zLTestMultiply.test_no_seq_repeat_basic_array_like.<locals>.ArrayLike.__init__  s	    r#   c                     | j                   S r   r  )r   s    r!   	__array__zMTestMultiply.test_no_seq_repeat_basic_array_like.<locals>.ArrayLike.__array__  s    xxr#   N)r@   rA   rB   r  r  rC   r#   r!   	ArrayLiker    s     r#   r  r%   g      @)r)   ones
memoryviewr   rx   fullrK  )r   r  arr_likes      r!   #test_no_seq_repeat_basic_array_likez0TestMultiply.test_no_seq_repeat_basic_array_like  s    	  	  #2771:.
2771:0FGHx"**R.8"''!R.Irzz"~8"''!R.Ix"''!*4bggamDrwwqzH4bggamD	 Hr#   N)r@   rA   rB   r  r  rC   r#   r!   r  r    s    ?@Er#   r  c                       e Zd Zd Zd Zy)TestNegativec                     t        j                  dt         j                        d   }t        t        t
        j                  |       y NrC   r&   )r)   r  bool_r
   r   rO   negr   r    s     r!   test_exceptionszTestNegative.test_exceptions  s+    GGBbhh'+iq1r#   c                 4   t         j                  d   t         j                  d   z   }t               5 }|j                  t               |D ]  }t        j
                  d|      d   }|t         j                  d   v rdt        j                  |      j                  } |t        j                  |      j                        }t        t        j                  |      |       t        t        j                  |      |z   d        	 d d d        y # 1 sw Y   y xY w)Nr   AllFloatrC   r&   r   r   )r)   r   r   r  r  r  r'   ra   rB  rC  r	   rO   r  )r   r   r  r   r    strC  s          r!   test_resultzTestNegative.test_result  s    \*R\\*-EE CJJ~&GGBb)"-&788"**BRXXb\--.C a#6 a1!4a8  !  s   CDDNr@   rA   rB   r  r  rC   r#   r!   r  r    s    29r#   r  c                       e Zd Zd Zd Zy)TestSubtractc                     t        j                  dt         j                        d   }t        t        t
        j                  ||       y r  )r)   r  r  r
   r   rO   subr  s     r!   r  zTestSubtract.test_exceptions  s-    GGBbhh'+iq!4r#   c                 >   t         j                  d   t         j                  d   z   }t               5 }|j                  t               |D ]<  }t        j
                  d|      d   }t        t        j                  ||      d       > 	 d d d        y # 1 sw Y   y xY w)Nr   r  rC   r&   r   )	r)   r   r   r  r  r  r	   rO   r  )r   r   r  r   r    s        r!   r  zTestSubtract.test_result  sr    \*R\\*-EE CJJ~&GGBb)"-X\\!Q/3  !  s   ABBNr  rC   r#   r!   r  r    s    54r#   r  c                       e Zd Zd Zej
                  j                  deez         d        Z	ej
                  j                  deez         d        Z
y)TestAbsc                     |d      }t         ||      d        |d      } ||      }t        |d        |d      } ||      }t        |d        |t        j                  |      j                        }t         ||      |j                         t               5 }|j                  t                |t        j                  |      j                        }t         ||      |j                         d d d         |t        j                  |      j                        }t         ||      |j                          y # 1 sw Y   LxY w)Ng      re  r   r   )
r	   r)   r^  rC  r+  r   r  UserWarningtinyrD  )r   absfunc
test_dtyper   rh   r  s         r!   _test_abs_funczTestAbs._test_abs_func  s    tWQZ%sOajS#tajS#rxx
+//0WQZ( CJJ{#288J/445AQVV, !
 rxx
+//0WQZ!&&) ! s   AE  E	r'   c                 F   t         j                  dk(  rx|t        j                  k(  ret	        j
                  t        j                         j                  d      d         t	        j                  d      k  rt        j                  d       | j                  t        |       y Ncygwin-r   z3.3.0z4absl is computed in double precision on cygwin < 3.3r   r  ry  r)   rT  r   parsereleasesplitVersionrU   rV   r  absr   r'   s     r!   test_builtin_abszTestAbs.test_builtin_abs  st     (Ubnn-DMM("2"2"4":":3"?"BCoog./ LLM 	C'r#   c                 Z   t         j                  dk(  rx|t        j                  k(  ret	        j
                  t        j                         j                  d      d         t	        j                  d      k  rt        j                  d       | j                  t        j                  |       y r  r  r  s     r!   test_numpy_abszTestAbs.test_numpy_abs  sx     (Ubnn-DMM("2"2"4":":3"?"BCoog./ LLM 	BFFE*r#   N)r@   rA   rB   r  rU   r   parametrizefloating_typescomplex_floating_typesr  r  rC   r#   r!   r  r    s_    *, [[Wn7M&MN( O( [[Wn7M&MN+ O+r#   r  c                       e Zd Zej                  j                  dej                  d         ej                  j                  dej                  ej                  gddg      d               Zy)	TestBitShifts	type_coder   rb   z>>z<<idsc                 L   t         r+|dv r'|t        j                  u rt        j                  d       t        j                  |      }|j                  dz  }dD ]  }||dz   fD ]  }t        j                  |      j                  |      d   }|j                  |      } |||      }	|dk  r|t        j                  u rt        |	d       nt        |	d       t        j                  |gd	z  |
      }
t        j                  |gd	z  |
      } ||
|      }t        ||	         y)z@Shifts where the shift amount is the width of the type or wider )r/   LzFailing on clang-cl buildsr  )r   r   rC   r   rE       r&   N)USING_CLANG_CLrO   lshiftrU   rV   r)   r'   r  r*   r   ra   rshiftr	   )r   r  rb   r   nbitsr  shiftval_scl	shift_sclres_sclval_arr	shift_arrres_arrs                r!   test_shift_all_bitsz!TestBitShifts.test_shift_all_bits#  s     Z'hoo%LL56XXi aC+((3-..r226GGEN	Wi0Q;2#8 "- !, ((G9R<r:HHeWRZr:	Wi0Wg. , r#   N)r@   rA   rB   rU   r   r  r)   r   rO   r  r  r  rC   r#   r!   r  r  !  sc    [[[",,|*DE[[T	(//*t  >/> F/r#   r  c                   &   e Zd Zej                  j                  dej                  d         d        Zej                  j                  dej                  d         d        Z	ej                  j                  dej                  d         d        Z
y)	TestHashr  r   c                     t        j                  |      j                  }t        d      D ]!  }t	        |      t	         ||            k(  r!J  y )Nr   )r)   r'   ra   r<   hash)r   r  scalarr>   s       r!   test_integer_hasheszTestHash.test_integer_hashesD  s>    )$))sA7d6!9o--- r#   r  c                 N   t        j                  |      j                  }t         j                  t         j                  ddfD ]Z  } ||      }|j                  j
                  dk(  rt        |      }nt        |      }||k(  sJ t        |      t        |      k(  rZJ  t        t        t         j                              t        t        t         j                              k7  rBt         |t         j                              t         |t         j                              k7  sJ y y )Nr%   g      @r   )
r)   r'   ra   pir  rN   r  r   r  r  r   r  r  r  	numpy_vals        r!   test_float_and_complex_hashesz&TestHash.test_float_and_complex_hashesJ  s    )$))EE2661b)CsI##s*i(I&)###9Y/// * bff$uRVV}"55rvv'4rvv+???? 6r#   Complexc                     t        j                  |      j                  }t         j                  dz   t         j                  dz
  ddfD ],  } ||      }t        t        |            t        |      k(  r,J  y )N              ?y              @y      @      ?)r)   r'   ra   r  r  r  r  r  s        r!   test_complex_hasheszTestHash.test_complex_hashes[  s`     )$))EE"HbffRiU3CsI	*+tI>>> 4r#   N)r@   rA   rB   rU   r   r  r)   r   r  r	  r  rC   r#   r!   r   r   C  s    [[[",,|*DE. F.
 [[[",,z*BC@ D@  [[[",,y*AB? C?r#   r   c              #      K   t        j                         }	 t        j                  |        d  t        j                  |       y # t        j                  |       w xY wwr   )r  getrecursionlimitsetrecursionlimit)r0  r   s     r!   recursionlimitr  d  sF     A!a a a s   A!A A!AA!c                     	 t        d      5   ||  |d             d d d        y # 1 sw Y   y xY w# t        $ r Y y w xY wN   r   r  r   r   rb   type_s      r!   test_operator_object_leftr  n  s9    C q%(O !       2 &2 /2 2 	>>c                     	 t        d      5   | |d      |        d d d        y # 1 sw Y   y xY w# t        $ r Y y w xY wr  r  r  s      r!   test_operator_object_rightr  y  s9    C uQxO !   r  c                 N    	  |  |d       |d             y # t         $ r Y y w xY wrI  )r   )rb   type1type2s      r!   test_operator_scalarsr    s+    
58U1X s    	$$rb   r  l            c                     	  | t        j                  d      |       	  | |t        j                  d             y # t        $ r Y )w xY w# t        $ r Y y w xY wNr%   )r)   r   r   rb   r  s     r!   test_longdouble_inf_loopr#    sY    
2==S!
3a !        < A 	AA	AAc                     	  | t        j                  d      |       	  | |t        j                  d             y # t        $ r Y )w xY w# t        $ r Y y w xY wr!  )r)   rT  r   r   r"  s     r!   test_clongdouble_inf_loopr&    sY    
2>>!c"
3a !    r$  r'   r   	operationc                     ||z   S r   rC   rD  rC  s     r!   <lambda>r*        sr#   c                     | |z
  S r   rC   r)  s     r!   r*  r*    r+  r#   c                     ||z  S r   rC   r)  s     r!   r*  r*    r+  r#   )+r  *r  c                 H   t        j                  |       j                  } |t        j                  |       j                        } |t        j                  |       j
                        }t        j                  t        d      5   |||       d d d        y # 1 sw Y   y xY w)Noverflow encounteredr  )	r)   r'   ra   rB  rD  rC  rU   rA  r  )r'   r'  r  rD  rC  s        r!   &test_scalar_integer_operation_overflowr2    sm     
%		B
RXXe_  
!C
RXXe_  
!C	n,B	C#s 
D	C	Cs   
BB!Integerc                     |  S r   rC   rD  neg_1s     r!   r*  r*    s    C4r#   c                     t        |       S r   )r  r5  s     r!   r*  r*    s    3s8r#   c                     | |z  S r   rC   r5  s     r!   r*  r*    s    3;r#   c                     | |z  S r   rC   r5  s     r!   r*  r*    s    ur#   zbroken on some platformsr   )marks)r  r  r/  //c                    t        j                  |       j                  } |t        j                  |       j                        } |d      }t        j                  t        d      5   |||       d d d        y # 1 sw Y   y xY w)NrE   r1  r  )r)   r'   ra   rB  rD  rU   rA  r  )r'   r'  r  rD  r6  s        r!   #test_scalar_signed_integer_overflowr=    s^     
%		B
RXXe_  
!CrFE	n,B	C#u 
D	C	Cs   (
A;;Br   c                     t        j                  |       j                  d      }t        j                  t
        d      5  |  d d d        t        j                  |       j                  d      }|  y # 1 sw Y   1xY w)Nr  r1  r  r   r)   r'   ra   rU   rA  r  )r'   r  zeros      r!   %test_scalar_unsigned_integer_overflowrA    s]    
((5/

q
!C	n,B	C	 
D 88E?"D	E	 
D	Cs    A44A=c                     | |z  S r   rC   r  r@  s     r!   r*  r*    s    #+r#   c                     | |z  S r   rC   rC  s     r!   r*  r*    s    #*r#   r;  %c                     t        j                  |       j                  } |d      } |d      }t        j                  t
        d      5   |||       d d d        y # 1 sw Y   y xY w)Nd   r   zdivide by zeror  r?  )r'   r'  r  r  r@  s        r!   'test_scalar_integer_operation_divbyzerorH    sN    
 
%		B
S'Ca5D	n,<	=#t 
>	=	=s   
AA'__lt____gt__T__le____ge____eq____ne____floordiv____rfloordiv____truediv____rtruediv____add____radd____mod____rmod____mul____rmul____pow____rpow____sub____rsub__)__op____rop__rb   cmpsctypec                     G d d|       } G d d|       }fd}fd}t        d| f||i      }	 | |d       |d	            }
t        |
      | k(  st        |
      t        j                  k(  sJ  | |d       |d	             |dd	      k(  sJ  | |	d       |d	            k(  sJ  | |d       |	d	             |dd	      k(  sJ y
)a  
    This test covers scalar subclass deferral.  Note that this is exceedingly
    complicated, especially since it tends to fall back to the array paths and
    these additionally add the "array priority" mechanism.

    The behaviour was modified subtly in 1.22 (to make it closer to how Python
    scalars work).  Due to its complexity and the fact that subclassing NumPy
    scalars is probably a bad idea to begin with.  There is probably room
    for adjustments here.
    c                       e Zd Zy)+test_subclass_deferral.<locals>.myf_simple1Nr@   rA   rB   rC   r#   r!   myf_simple1rc        r#   re  c                       e Zd Zy)+test_subclass_deferral.<locals>.myf_simple2Nrd  rC   r#   r!   myf_simple2rh    rf  r#   ri  c                     S r   rC   r   otherr]  s     r!   op_funcz'test_subclass_deferral.<locals>.op_func      r#   c                     S r   rC   r   rl  r^  s     r!   rop_funcz(test_subclass_deferral.<locals>.rop_func      r#   myf_opr   r8   N)ra   r)   r  )r`  r]  r^  rb   r_  re  ri  rm  rq  rs  rh   s    ``        r!   test_subclass_deferralrt    s    f f  (VI('KLF [^[^
,C9$s)rxx"777k!nk!n-Aq999 fQiQ(F222k!nfQi(Bq!H444r#   c                  V    t        j                  d      } | dz   dk(  sJ d| z   dk(  sJ y )Nr   r  y      ?      ?)r)   r   )r   s    r!   test_longdouble_complexrv    s2     	aAr6T>>6T>>r#   subtypec           
      R   fd}fd}t        d| f||dd i      } | |d      t        j                  d            k(  sJ  |t        j                  d       |d            k(  sJ |t        j                  t        j
                  hv r
| t        k(  ry k(  ry t        d| f|i      } | |d      t        j                  d            } | | d      t        j                  d            }	||	k(  sJ t        |      t        |	      k(  sJ  |t        j                  d       |d            } |t        j                  d       | d            }	||	k(  sJ t        |      t        |	      k(  sJ  | |d      t        j                  d            } | | d      t        j                  d            }	||	k(  sJ t        |      t        |	      k(  sJ  |t        j                  d       |d            } |t        j                  d       | d            }	||	k(  sJ y )Nc                     S r   rC   rk  s     r!   rm  z)test_pyscalar_subclasses.<locals>.op_func$  rn  r#   c                     S r   rC   rp  s     r!   rq  z*test_pyscalar_subclasses.<locals>.rop_func'  rr  r#   myt__array_ufunc__r   r8   )
ra   r)   rw   rO   r  floordivr  r   rx   r   )
rw  r]  r^  rb   r_  rm  rq  r{  rh   r}   s
    ``       r!   test_pyscalar_subclassesr~     s    uwj(4EtLNC c!fbjjm$...bjjmSV$///	hllH--..7g3E& uwj7H"5
6C SVRZZ]
#C'!*bjjm,H(??9X&&&
RZZ]CF
#C"**Q-,H(??9X&&& SVR]]1%
&C'!*bmmA./H(??9X&&&
RZZ]CF
#C"--"GAJ/H(??r#   )z
contextlibr  rZ   r   rO   ry  numpy._utilsr   rU   
hypothesisr   r   hypothesis.strategiesr   hypothesis.extrar   hynpr)   numpy.testingr   r	   r
   r   r   r   r   r   r   r   show_config	COMPILERSr  r   r  r  ubyteshortushortintcuintcrK  rL  rM  rN  singler_  r   csinglecdoublerT  r   floating__subclasses__r  complexfloatingr  objectobjecty_thingsrS   rR   eqnerP   rQ   r=   r}  r  r  rW   r  truediv reasonable_operators_for_scalarsr   rk   r   slowarraysscalar_dtypesrp   rt   r  r   rx   r~   r   r   r   r   r   r  r:  r}  r  r  r  r  r  r  r   contextmanagerr  r  r  r  r#  r&  r   r2  paramrY   r=  rA  rH  ops_with_namesrw   rt  rv  r   r   r  _no_nep50_warningr~  rC   r#   r!   <module>r     sw    
        & . *   G,[9Is^F+z9N 
277BHHbhh		277BHH	"''2;;	BIIr}}bjj	R^^	%
 ++-++::< (D! KKhkk8;;KKx00(,,LL(,,h.>.>$  $ $N=< 	ut,|45t{{+++-R8t{{+++-R8:3: - 
3 |45t/T//1333 3 RZZ$<=
: >
:,# ,#^NI NIbj jZE5 E5PF6 F6d$ $B 	8 	80E 0Ef9 9$4 41+ 1+f/ /D? ?B ! ! |N#45E |N#45E |45EE ?@u.	 / A	 ?@u.	 / A	 ",,|"<="""'$ *9  :	: >
 ",,y"9:#&4++""*D"E	G	'H &  '' ; ",,/@"AB
 C
 ",,|"<=%$'(.2C[  :: > xd+xd+xd+xd+xd+xd+_h&7&7?NH$4$4e<
HLL%0
HLL%0
HLL%0
HLL%0
HLL%0$ ;^LBJJ

BMM#JK!5 L M!5H ;^LUC"**$EF)  G M)Y   Ns   !^ ^^