
    -i                        S SK r S SKrS SKJr  S SKJr  S SKrS SKJr  S SK	J
r
  S SKJrJrJr  S SKJrJrJrJrJrJrJrJrJr  \R2                  R4                  r\R2                  R6                  r/ SQr " S	 S
5      r " S S5      r " S S5      r " S S5      r \" SSS9 " S S5      5       r! " S S5      r" " S S5      r#/ SQr$/ SQr%\" SSS9\" SSS9 " S S5      5       5       r&\" / S Q5      \" / S!Q5      \" / S"Q5      \" / S#Q5      \" / S Q5      S\" / S"Q5      S\" / S$Q5      \" / S%Q5      SSS&.r'S' r( " S( S)5      r) " S* S+5      r* " S, S-5      r+ " S. S/5      r, " S0 S15      r- " S2 S35      r. " S4 S55      r/ " S6 S75      r0 " S8 S95      r1 " S: S;5      r2 " S< S=5      r30 S>\" / S?Q5      _S@\" / SAQ5      _SB\" / SCQ5      _SD\" / SEQ5      _SF\" / SGQ5      _SH\" / SIQ5      _SJ\" / SKQ5      _SL\" / SMQ5      _SN\" / SOQ5      _SP/ SQQ_SR/ SSQ_ST/ SUQ_SV/ SWQ_SX/ SYQ_SZ/ S[Q_S\/ S]Q_S^/ S_Q_/ S`Q/ SaQSb.Er4 " Sc Sd5      r5/ SeQ/ SfQ/SgSh/4/ SiQ/ SjQ/ SkQ// SlQ4/ SmQ/ SnQ/ SoQ/ SpQ/ SqQ// SrQ4/ SsQ/ StQ/ SuQ/ SvQ// SwQ4Sx.r6\" SySzS{9 " S| S}5      5       r7 " S~ S5      r8 " S S5      r9\" SSS9S 5       r:S r;/ SQr<\R2                  R{                  S\<5      S 5       r>S r?g)    N)array)suppress_warnings)raises)fft)windows
get_windowresample)	xp_assert_closexp_assert_equalarray_namespaceis_torchis_jaxis_cupyassert_array_almost_equalSCIPY_DEVICEis_numpy))boxcar )triangr   )parzenr   )bohmanr   )blackmanr   )nuttallr   )blackmanharrisr   )flattopr   )bartlettr   )barthannr   )hammingr   )kaiser   )dpss)   )gaussian      ?)general_gaussian)      ?r#   )chebwinr    )cosiner   )hannr   )exponentialr   )taylorr   )tukeyr%   )lanczosr   c                       \ rS rSrS rSrg)TestBartHann.   c                 ^   [        [        R                  " SSUS9UR                  / SQUR                  S9SSS9  [        [        R                  " SUS	9UR                  / S
QUR                  S9SSS9  [        [        R                  " SSUS	9UR                  / SQUR                  S9SSS9  g )N   Tsymxp)r   gA,q?	5xB$?r8   gA,q?r   dtypeV瞯<rtolatol   r7   )r   HzG?\(\?      ?rB   rA   r   F)r   rA   rB   rC   rB   rA   )r
   r   r   asarrayfloat64selfr7   s     R/var/www/html/venv/lib/python3.13/site-packages/scipy/signal/tests/test_windows.py
test_basicTestBartHann.test_basic0   s    ((<

 $DKM:: # W"	0 	((r2

#F)+ # 5"	0 	((Eb9

#C2::
V"	0    r   N__name__
__module____qualname____firstlineno__rI   __static_attributes__r   rK   rH   r1   r1   .   s    0rK   r1   c                       \ rS rSrS rSrg)TestBartlett>   c                 \   [        [        R                  " SUS9UR                  / SQUR                  S95        [        [        R                  " SUS9UR                  / SQUR                  S95        [        [        R                  " SSUS9UR                  / SQUR                  S95        g )	Nr4   r@   )r   皙?皙?rW   rV   r   r9   r?   )r   UUUUUU?UUUUUU?rC   rY   rX   r   F)r   rX   rY   rC   rY   rX   )r
   r   r   rD   rE   rF   s     rH   rI   TestBartlett.test_basic@   s    ((r2

#=RZZ
P	R((r2

#B"**
U	W((Eb9

#?rzz
R	TrK   r   NrL   r   rK   rH   rS   rS   >   s    TrK   rS   c                       \ rS rSrS rSrg)TestBlackmanI   c                    [        [        R                  " SSUS9UR                  / SQUR                  S9SS9  [        [        R                  " SSUS9UR                  / S	QUR                  S9S
S9  [        [        R                  " SUS9UR                  / SQUR                  S9SS9  [        [        R                  " SSUS9UR                  / SQUR                  S9SS9  g )Nr4   Fr5   )r   p=
ף?)\(?rC   r`   r_   r9   +=r>   r?   )r   Fi'?b@c?Zgs?re   rd   rc   :0yE>r@   )r   쳩ֲ?,,?rh   rg   r   T)r   r_   r`   rC   r`   r_   r   )r
   r   r   rD   rE   rF   s     rH   rI   TestBlackman.test_basicK   s    (("=

#C2::
V"	$ 	(("=

 $M +-** # 6 "	# 	((r2

 $O*,** # 6 #		$
 	((DR8

#F jj # *05	7rK   r   NrL   r   rK   rH   r\   r\   I   s    7rK   r\   c                       \ rS rSrS rSrg)TestBlackmanHarris_   c                    [        [        R                  " SSUS9UR                  / SQUR                  S95        [        [        R                  " SSUS9UR                  / SQUR                  S95        [        [        R                  " SUS9UR                  / S	QUR                  S95        [        [        R                  " SS
US9UR                  / SQUR                  S95        g )Nr4   Fr@   )iUMu?0_^}?縯猨?rC   rp   ro   r9   r?   r5   )rn   gjP?g'm$M?gu?gu?g*m$M?gjP?)rn   ^?gU׈g?gU׈g?rq   rn   T)rn   ro   rp   rC   rp   ro   rn   )r
   r   r   rD   rE   rF   s     rH   rI   TestBlackmanHarris.test_basica   s    ..q%B?

 $=DFJJ # P	Q 	..qeC

 $M +-** # 6	7
 	..qR8

 $U*,** # 6	7 	..qdrB

 $7>@jj # J	KrK   r   NrL   r   rK   rH   rk   rk   _   s    KrK   rk   	jax.numpyitem assignmentreasonc                   8    \ rS rSrS rS r\" SS9S 5       rSrg)	
TestTaylors   c           	      d   [        [        R                  " SSSUS9UR                  S/UR                  S95        [        [        R                  " SSSUS9UR                  / SQUR                  S95        [        [        R                  " S	SSUS9UR                  / S
QUR                  S95        g)zTests windows of small length that are normalized to 1. See the
documentation for the Taylor window for more information on
normalization.
r!   r#      r@   rC   r9      )%6'HA?)T
?rC   r~   r}   r4   )δX?繡1E?PD3m?r   r   r   Nr
   r   r-   rD   rE   rF   s     rH   test_normalizedTestTaylor.test_normalizedv   s    
 	q!RB7

C5


;	=NN1a+JJLZZ  )	

 	NN1a+JJ  ZZ  !	
rK   c           
          [        [        R                  " SSSSUS9UR                  / SQUR                  S95        [        [        R                  " SSSSUS9UR                  / S	QUR                  S95        g
)zTest windows of small length that are not normalized to 1. See
the documentation for the Taylor window for more information on
normalization.
r|   r#   r{   Fnormr7   )	P ?sCp?g)8ux?r   r   r9   r4   ))S~?rC   kt#?r   rC   r   Nr   rF   s     rH   test_non_normalizedTestTaylor.test_non_normalized   sx    
 	NN1a%B7JJ ZZ  !	
 	NN1a%B7JJ ZZ  !	
rK   T)cpu_onlyc           	         SnSn[         R                  " USSSSUS9n[        XC5      n[        R                  " U5      nS[        R
                  " [        R                  " U[        R                  " U5      -  5      5      -  n[        R                  " [        R                  " U5      S:  5      n[        R                  " XxU*  5      n	S	[        R                  " US
:*  5      -  U-  U-  n
S	[        R                  " US:*  5      -  U-  U-  n[        R                  " U	SSS9(       d   e[        R                  " U
SSS9(       d   e[        R                  " USSS9(       d   eg)a  This test ensures the correctness of the implemented Taylor
Windowing function. A Taylor Window of 1024 points is created, its FFT
is taken, and the Peak Sidelobe Level (PSLL) and 3dB and 18dB bandwidth
are found and checked.

A publication from Sandia National Laboratories was used as reference
for the correctness values [1]_.

References
-----
.. [1] Armin Doerry, "Catalog of Window Taper Functions for
       Sidelobe Control", 2017.
       https://www.researchgate.net/profile/Armin_Doerry/publication/316281181_Catalog_of_Window_Taper_Functions_for_Sidelobe_Control/links/58f92cb2a6fdccb121c9d54d/Catalog-of-Window-Taper-Functions-for-Sidelobe-Control.pdf
i   i      #   F)nbarsllr   r6   r7      r   r#   gX$g_2gAfAr!   )abs_tolgLJ?皙?gZӼ@N)r   r-   r   nprD   log10absmaxargmaxdiffmathisclose)rG   r7   M_winN_fftwff_npspec
first_zeroPSLLBW_3dBBW_18dBs               rH   test_correctnessTestTaylor.test_correctness   s      NN5qbu%BOMzz!}BHHRVVD266$<$7899YYrwwt}q01
vvdzk23299T%8899EAEIBIId&99::UBUJ||D(A666||FFC888||GVS999rK   r   N)	rM   rN   rO   rP   r   r   skip_xp_backendsr   rQ   r   rK   rH   rx   rx   s   s%    
(
$ t$#: %#:rK   rx   c                       \ rS rSrS rSrg)
TestBohman   c                 ^   [        [        R                  " SUS9UR                  / SQUR                  S95        [        [        R                  " SSUS9UR                  / SQUR                  S95        [        [        R                  " SS	US9UR                  / S
QUR                  S95        g )Nr4   r@   )r   g$I ?6 D?r   g I ?r   r9   r?   Tr5   )r   PG?4}|?rC   6}|?r   r   F)r   r   r   rC   r   r   )r
   r   r   rD   rE   rF   s     rH   rI   TestBohman.test_basic   s    qR0

 $O*,** # 6	7 	qdr:

 $O*,** # 6	7 	q%B7

 $L*,** # 6	7rK   r   NrL   r   rK   rH   r   r      s    7rK   r   c                       \ rS rSrS rSrg)
TestBoxcar   c                 \   [        [        R                  " SUS9UR                  / SQUR                  S95        [        [        R                  " SUS9UR                  / SQUR                  S95        [        [        R                  " SSUS9UR                  / SQUR                  S95        g )Nr4   r@   rC   r!   r!   r!   r!   r!   r9   r?   rC   r!   r!   r!   r!   r!   r!   F)r
   r   r   rD   rE   rF   s     rH   rI   TestBoxcar.test_basic   s    qR0

#7rzz
J	LqR0

#:"**
M	Oq%B7

#7rzz
J	LrK   r   NrL   r   rK   rH   r   r      s    LrK   r   )5CV?CԳ ?Q&E?:*?;Bu?9#?=[?Z
G?ٵݒ?Lg?(+ ?T=? zR&5?scH?u?]/M`?xC8???9?mo?[?T:?sK!q?/M.?×?)s?rC   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   )6?2?w.v?f*#?灖`?d${!??M?ut\?Ljh?xak?WY?qj?<)[?@ի?MEs?甽/?{l?[^6?:Ug$?: U\?I.!v?Clp?gF?稦$p?VLy?.?rC   rC   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   
dask.arraydata-dependent output shapesc                   2    \ rS rSrS rS rS rS rS rSr	g)	TestChebWini  c           
         [        5        nUR                  [        S5        [        [        R
                  " SSUS9UR                  / SQUR                  S9SS9  [        [        R
                  " S	SUS9UR                  / S
QUR                  S95        [        [        R
                  " SSUS9UR                  / SQUR                  S95        [        [        R
                  " S	SUS9UR                  / SQUR                  S95        [        [        R
                  " SSSUS9UR                  / SQUR                  S95        S S S 5        g ! , (       d  f       g = f)NThis window is not suitabler4   d   r@   )}	ɺ?L >?rC   rC   r   r   r9   rf   rb   r?   )S?D1mPC?%5R?rC   r   r   r   
   )rC   TEm?	-o?r   r   rC   )rC   F3?NO?	r]?r   r   rC   F)rC   r   r   r  r   r   )r   filterUserWarningr
   r   r)   rD   rE   )rG   r7   sups      rH   rI   TestChebWin.test_basic  sD    CJJ{$ABGOOAsr:JJ (P /1jj ' : "& GOOAsr:JJ (P /1jj ' :;
 GOOArb9JJ (U.0jj ' :; GOOArb9JJ (AHJ

 ' TU GOOAr5R@JJ (<CE:: ' OP- !  s   D9E
Ec                     [        5        nUR                  [        S5        [        R                  " SSUS9nS S S 5        [        WUR                  [        5      SS9  g ! , (       d  f       N-= f)Nr   5   atr7   r   decimal)r   r  r  r   r)   r   rD   cheb_odd_true)rG   r7   r  cheb_odds       rH   test_cheb_odd_high_attenuation*TestChebWin.test_cheb_odd_high_attenuation"  sP     CJJ{$ABrcb9H ! 	"(BJJ},EqQ !    -A
A-c                     [        5        nUR                  [        S5        [        R                  " SSUS9nS S S 5        [        WUR                  [        5      SS9  g ! , (       d  f       N-= f)Nr   6   (   r	  r   r  )r   r  r  r   r)   r   rD   cheb_even_true)rG   r7   r  	cheb_evens       rH   test_cheb_even_high_attenuation+TestChebWin.test_cheb_even_high_attenuation(  sQ     CJJ{$ABrb9I ! 	")RZZ-GQRS ! r  c                     UR                  / SQUR                  S9n[        5        nUR                  [        S5        [
        R                  " SSUS9nS S S 5        [        WUSS9  g ! , (       d  f       N= f)	N)rC   m?燿&k?gc[?r  r  rC   r9   r   r?   r   r	  r   r  rD   rE   r   r  r  r   r)   r   )rG   r7   cheb_odd_low_at_truer  r  s        rH   test_cheb_odd_low_attenuation)TestChebWin.test_cheb_odd_low_attenuation.  sk    !zz +5<>JJ  *  H  CJJ{$ABqRB7H ! 	"(,@!L !    -A((
A6c                     UR                  / SQUR                  S9n[        5        nUR                  [        S5        [
        R                  " SSUS9nS S S 5        [        WUSS9  g ! , (       d  f       N= f)	N)rC   R?N(D!T?#R?r$  r#  r"  rC   r9   r      ir	  r   r  r  )rG   r7   cheb_even_low_at_truer  r  s        rH   test_cheb_even_low_attenuation*TestChebWin.test_cheb_even_low_attenuation7  sl     "

 ,@GIzz !+ !S  CJJ{$ABcb9I ! 	")-BAN ! r   r   N)
rM   rN   rO   rP   rI   r  r  r  r'  rQ   r   rK   rH   r   r     s     P8RTMOrK   r   )|dy?vS?{?rC   r*  )1B?%?r,  r+  )́R?8,6V?rC   r.  )\Kr?
oh?r0  r/  )r)  r*  rC   r*  r)  )r-  r.  rC   r.  r-  ))r   N皙?F)r   Nr1  T)r   NrC   F)r   NrC   T)r   r#   r1  F)r   r#   r1  T)r   r#   rC   F)r   r#   rC   T)r|   Nr1  T)r|   NrC   T)r|   r#   r1  T)r|   r#   rC   Tc                     [         R                  5        H[  u  pUc$  [        [        [        R
                  /UQ7SU 06  M,  [        R
                  " USU 06n[        X0R                  U5      SS9  M]     g )Nr7   ra   r=   )exponential_dataitemsassert_raises
ValueErrorr   r,   r
   rD   )r7   kvwins       rH   test_exponentialr;  ^  s]     &&(9*g&9&9EAE"E%%q0R0CCAU; )rK   c                       \ rS rSrS rSrg)TestFlatTopig  c                    [        [        R                  " SSUS9UR                  / SQUR                  S95        [        [        R                  " SSUS9UR                  / SQUR                  S95        [        [        R                  " SUS9UR                  / S	QUR                  S95        [        [        R                  " SS
US9UR                  / SQUR                  S95        g )Nr4   Fr5   )bF;s*?dR	p^?rC   rA  r@  r9   r?   )r?  `p|ܢ?J?rD  rC  rB  r@   )r?  <#U_&k?rF  rE  r?  T)r?  r@  rA  rC   rA  r@  r?  )r
   r   r   rD   rE   rF   s     rH   rI   TestFlatTop.test_basici  s    u<

 $?FHjj # R	S 	u<

 $: BD # M	N
 	b1

 $G +-** # 6	7
 	4B7

 $M+-:: # 7	8rK   r   NrL   r   rK   rH   r=  r=  g  s    8rK   r=  c                       \ rS rSrS rSrg)TestGaussiani}  c           	         [        [        R                  " SSUS9UR                  / SQUR                  S95        [        [        R                  " SSUS9UR                  / SQUR                  S95        [        [        R                  " SS	US9UR                  / S
QUR                  S95        [        [        R                  " SS	SUS9UR                  / SQUR                  S95        g )Nr4   rC   r@   )|~?w$?"$j=?rM  rL  rK  r9   r?   g333333?)rK  
"?;eܜ?rC   rO  rN  rK     )r0  ?yLE?rC   rR  rQ  r0  F)r0  rQ  rR  rC   rR  rQ  )r
   r   r$   rD   rE   rF   s     rH   rI   TestGaussian.test_basic  s    ((CB7

 $M +-** # 6	7
 	((CB7

 $M +-** # 6	7
 	((A"5

 $L +-** # 6	7
 	((Au<

 $8?Azz # K	LrK   r   NrL   r   rK   rH   rI  rI  }  s    LrK   rI  c                       \ rS rSrS rSrg)TestGeneralCosinei  c                 :   UR                  / SQ5      n[        [        R                  " SU5      UR                  / SQUR                  S95        UR                  / SQ5      n[        [        R                  " SUSS9UR                  / SQUR                  S95        g )	Nr&   333333?r1  r|   )rV   rX  r!   rX  rV   r9   r   F)r6   rV   rX  r!   rX  )rD   r
   r   general_cosinerE   )rG   r7   as      rH   rI   TestGeneralCosine.test_basic  s|    JJ'..q!4

#:"**
M	O JJ'..q!?

#5RZZ
H	JrK   r   NrL   r   rK   rH   rU  rU    s    JrK   rU  c                       \ rS rSrS rSrg)TestGeneralHammingi  c           	      d   [        [        R                  " SSUS9UR                  / SQUR                  S95        [        [        R                  " SSSUS9UR                  / S	QUR                  S95        [        [        R                  " S
SSUS9UR                  / SQUR                  S95        g )Nr|   ffffff?r@   rV   r`  rC   r`  rV   r9         ?Fr5   )r&   y&"?x?rd  rc  r4   T)r&   rc  rd  rd  rc  r&   )r
   r   general_hammingrD   rE   rF   s     rH   rI   TestGeneralHamming.test_basic  s    //32>

#<BJJ
O	Q//4UrJ

 $@GIzz # S	T 	//4TbI

 $ELNJJ # X	YrK   r   NrL   r   rK   rH   r^  r^    s    YrK   r^  c                       \ rS rSrS rSrg)TestHammingi  c                    [        [        R                  " SSUS9UR                  / SQUR                  S95        [        [        R                  " SSUS9UR                  / SQUR                  S95        [        [        R                  " SUS9UR                  / S	QUR                  S95        [        [        R                  " SS
US9UR                  / SQUR                  S95        g )Nr4   Fr@   ){Gz?ףp=
?p=
ף?rC   rl  rk  r9   r?   r5   )rj  CW4?	/5?4Cъ?ro  rn  rm  )rj  6 iv?P0?rq  rp  rj  T)rj  rk  rl  rC   rl  rk  rj  )r
   r   r   rD   rE   rF   s     rH   rI   TestHamming.test_basic  s    5R8

#F)+ # 5	6 	u<

 $L +-** # 6	7
 	b1

 $R*,** # 6	7 	t;

#L)+ # 5	6rK   r   NrL   r   rK   rH   rh  rh    s    6rK   rh  c                       \ rS rSrS rSrg)TestHanni  c                    [        [        R                  " SSUS9UR                  / SQUR                  S9SSS9  [        [        R                  " SSUS9UR                  / S	QUR                  S9SSS9  [        [        R                  " SS
US9UR                  / SQUR                  S9SSS9  [        [        R                  " SUS9UR                  / SQUR                  S9SSS9  g )Nr4   Fr5   )r         ?rb  rC   rb  rv  r9   r;   r<   r?   )r   \$:?H`r?8T^j?ry  rx  rw  Tr@   r   Xhd?Tͻ?r|  r{  r   r   rv  rb  rC   rb  rv  r   )r
   r   r+   rD   rE   rF   s     rH   rI   TestHann.test_basic  s    QEb9

#C2::
V"	0 	QEb9

 $L +-** # 6 #	0 	Q4

 $O*,** # 6 #		0
 	Q2.

#F jj # *"	0rK   r   NrL   r   rK   rH   rt  rt    s    0rK   rt  c                       \ rS rSrS rSrg)
TestKaiseri  c           	      J   [        [        R                  " SSUS9UR                  / SQUR                  S95        [        [        R                  " SSUS9UR                  / SQUR                  S95        [        [        R                  " SSUS9UR                  / S	QUR                  S95        [        [        R                  " SSUS9UR                  / S
QUR                  S95        [        [        R                  " SSSUS9UR                  / SQUR                  S95        g )Nr4   r&   r@   )l?<3N?i>%?r  r  r  r9   r?   )r  	$?6?rC   r  r  r  g@)§Aը?O F?$?r  r  r  )r  *'?=a?rC   r  r  r  F)r  r  r  rC   r  r  )r
   r   r   rD   rE   rF   s     rH   rI   TestKaiser.test_basic  s   q#"5

 $L +-** # 6	7
 	q#"5

 $L +-** # 6	7
 	q#"5

 $L +-** # 6	7
 	q#"5

 $L +-** # 6	7
 	q#u<

 $8?Azz # K	LrK   r   NrL   r   rK   rH   r  r    s    LrK   r  c                        \ rS rSrS rS rSrg)TestKaiserBesselDerivedi  c                 X   [         R                  " SSUS9n[        X!R                  / 5      5        Sn[         R                  " USUS9n[         R                  " SUSUS9n[        X$5        US US-   S-  X#* S-  S  S-  -   n[        XQR                  UR                  UR                  S	95        [         R                  " S[        R                  S-  US9S S
 nUR                  U5      [        R                  " S5      -  S-  n[        XV5        [        [         R                  " S[        R                  S-  US9S S UR                  SS/UR                  S	95        [        [         R                  " S[        R                  S-  US9S S UR                  / SQUR                  S	95        g )Nr&         @betar7   r   )zkaiser bessel derivedr  Ffftbinsr7   r#   r9   r!   g       @r   gU?gU3|\?r4   rP  )gHZ1?gKf?g"iF5?)r   kaiser_bessel_derivedr   rD   r   r
   onesshaper:   r   pi	ones_liker   sqrtrE   )rG   r7   r   Mw2actualdesireds          rH   rI   "TestKaiserBesselDerived.test_basic  s   ))#CB?::b>*))!#"= > !5R9 7AFq1R1WX;!#33FLL IJ ..qruuqyRH!L,,v&15;(55abeeaiBOPRQRS

NN#C2::
V	X 	55abeeaiBOPRQRS

#S)+ # 5	6rK   c                    SnSn[        [        US9   [        R                  " US-   SUS9  S S S 5        Sn[        [        US9   [        R                  " US-   SSUS	9  S S S 5        g ! , (       d  f       NB= f! , (       d  f       g = f)
Nr   zHKaiser-Bessel Derived windows are only defined for even number of pointsmatchr!   r  r  zCKaiser-Bessel Derived windows are only defined for symmetric shapesF)r  r6   r7   )r6  r7  r   r  )rG   r7   r  msgs       rH   test_exceptions'TestKaiserBesselDerived.test_exceptions  sv    ":S1))!a%bR@ 2":S1))!a%beK 21 21 21s   A)A:)
A7:
Br   N)rM   rN   rO   rP   rI   r  rQ   r   rK   rH   r  r    s    6>LrK   r  c                       \ rS rSrS rSrg)TestNuttalli&  c                    [        [        R                  " SSUS9UR                  / SQUR                  S95        [        [        R                  " SSUS9UR                  / SQUR                  S95        [        [        R                  " SUS9UR                  / S	QUR                  S95        [        [        R                  " SS
US9UR                  / SQUR                  S95        g )Nr4   Fr5   )A"7?v;O<g?$2bUs?rC   r  r  r9   r?   )r  gx&yxXW?g??絑?r  g??g&yxXW?r@   )r  gEJ?g=`T?g>`T?gEJ?r  T)r  r  r  rC   r  r  r  )r
   r   r   rD   rE   rF   s     rH   rI   TestNuttall.test_basic(  s    u<

 $/68jj # B	C 	u<

 $L +-**	 # 6	7 	b1

 $CJL** # V	W 	4B7

 $ELNJJ # X	YrK   r   NrL   r   rK   rH   r  r  &  s    YrK   r  c                       \ rS rSrS rSrg)
TestParzeni;  c                 ^   [        [        R                  " SUS9UR                  / SQUR                  S95        [        [        R                  " SSUS9UR                  / SQUR                  S95        [        [        R                  " SS	US9UR                  / S
QUR                  S95        g )Nr4   r@   )e/?rv  88?r  rv  r  r9   r?   Tr5   )%OZQ%w?2|&?݁?rC   r  r  r  F)r  r  r  rC   r  r  )r
   r   r   rD   rE   rF   s     rH   rI   TestParzen.test_basic=  s    qR0

 $T*,** # 6	7 	qdr:

 $M +-** # 6	7
 	q%B7

 $8?Azz # K	LrK   r   NrL   r   rK   rH   r  r  ;  s    LrK   r  c                       \ rS rSrS rSrg)
TestTriangiM  c                 ^   [        [        R                  " SSUS9UR                  / SQUR                  S95        [        [        R                  " SUS9UR                  / SQUR                  S95        [        [        R                  " SSUS	9UR                  / S
QUR                  S95        g )Nr4   Tr@   )UUUUUU?r&   竪?r  r&   r  r9   r?   )rv  r&   rb  r!   rb  r&   rv  Fr5   )rv  r&   rb  r!   rb  r&   )r
   r   r   rD   rE   rF   s     rH   rI   TestTriang.test_basicO  s    q$26

#A
T	VqR0

#DBJJ
W	Yqe;

#?rzz
R	TrK   r   NrL   r   rK   rH   r  r  M  s    TrK   r  )r   r&   T)        rC   rC   r  )r   ?T)r  ?r  r  )r   rC   T)r  rb  rb  r  )r   r&   F)r  rC   rC   rC   )r   r  F)r  rnOC?rC   r  )r   rC   F)r  r&   rC   r&   )r|   r  T)rC   rC   rC   rC   rC   )r|   rW   T)r  Yx?rC   r  r  )r|   rC   T)r  r&   rC   r&   r  )r4   r   r   )r?   r   r   )r4   rv  )r  r!   r!   r!   r!   r   )r?   rv  )r  r!   r!   r!   r!   r!   r   r4   )r   r|  rC   rC   gRͻ?r   )r?   )r   rb  rC   rC   rC   rb  r   r4   rb  )r   gxų	&?rC   rC   gvų	&?r   r?   rb  )r   g#}`yq?)!?rC   r  g#}`yq?r   rz  r}  )r4   r!   )r?   r!   c                        \ rS rSrS rS rSrg)	TestTukeyiv  c                 4   [         R                  5        H  u  p#Uc$  [        [        [        R
                  /UQ7SU06  M,  [        U5      (       a  US;   a  SSS.nOSSS.n[        R
                  " USU06n[        XQR                  U5      4SS0UD6  M     g )	Nr7   )r  r  r  r  g+i)+`>rf   r<   r;   check_dtypeF)	
tukey_datar5  r6  r7  r   r.   r   r
   rD   )rG   r7   r8  r9  	atol_rtolr:  s         rH   rI   TestTukey.test_basicx  s    $$&DAyj'--C!CCB<<A)J$J*.!=Y*/!@YmmQ.2.ZZ] @,1@5>@ 'rK   c                     [         R                  " SSUS9n[         R                  " SUS9n[        X#5        [         R                  " SSUS9n[         R                  " SUS9n[        XE5        g )Nr   r   r@   r!   )r   r.   r   r
   r+   )rG   r7   tuk0box0tuk1han1s         rH   test_extremesTestTukey.test_extremes  sV    }}S!+~~cb)#}}S!+||CB'#rK   r   N)rM   rN   rO   rP   rI   r  rQ   r   rK   rH   r  r  v  s    @$rK   r  )IP?;]L?r  r  )g/vI<t?gE@?gE@̿g/vI<tgV?g$aȲ`?)ыBA?gnjk?r  )g>ef?r  g>ef)	#n?gLor  )gm/ ?g96+?g雦br?)g w?V?g>J#?g;Wi?g֙}I#?gr?V?)g:7A!(?cHX?r  cHXS[@!(ܿ)qh4?T1a~²?gEܿr  r  )r  r  r  gS[@!(?r  )gu+t?X>߿g36?r  g;St?)gML?gh5"z?g\v4?gPa?gd?)dsk8Si?p&p?5Bu?OL{?08À?w-<?kF?^R?kPz?1?Y^Q?X9?dkѐ^ś?3aJ?)IQ?-?ѫ"?給.?~9P?~n[?8Wϭ?	%fҳ?!KI?PJd?/ĳ?$~s	?pkuP?%ꙷ?
?q*?%wo?Zo??矐Ӄ?磓B@%?g3?/ߗ#@?0?@?=?.F!?it3?:.?X.?GkNVs?玃"Hk? 'F?精`?iGU?#!5#?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  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  )dgUw|?gTP?gj?gwĢ?gDъO?g_{?g< ?gȁk?gꬃt?g(P;?gHñ?gBKXP?g.mˏ޴?g nik?g"=?gOu?g{?ggU?g/u?gN׏$s?g ]?gГE?goY*?gܛ?gbu?g`?gɪJS?ga`gT*r?g.{?gYn?g.|TK?g紸?gzþ?gfU?g,?gԙ=?gg'?gws䕽?g?g[\	?g#k	?g%*?gLw<w?g,h-A?g[::<?g199l?g.4䓦%?gG/?gƢhlO?g[$v?g[$vgƢhlOgG/g.4䓦%g199lg[::<񍭿g,h-AgLw<wg%*浿g#k	g[\	g㻿gws䕽gg'gԙ=g,gfUgzþg紸¿g.|TK¿gYn¿g.{¿ga`gT*r¿gɪJS¿g`¿gbugܛgoY*gГEg ]gN׏$sg/uggUg{캿gOug"=g nikg.mˏ޴gBKXPgHñg(P;gꬃtgȁkg< g_{gDъOgwĢgjgTPgUw|)d|W◰?煢	͓??
8ρ?\i?ٮ32A?!;f?+?3sXL2??J?5QG?Ao?W? }2?␉k?IǇ?F6?f?ch'?%"a?h/K?:?>}?DC1?XB?QST`?s\NK?
3?<s?o?@1O?5M?#$7?,9ṗ?C)?W]{?#Ys臈En꛿x;i6
v^
m-b3[Ehp[6a0_:WR~戺0ъҺrB  rA  r@  r?  r>  r=  r<  r;  r:  r9  r8  r7  r6  r5  r4  r3  r2  r1  r0  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  )dgI!w.?gMu?g%Pld?g3z?g>?gd?g!DKy?g+o ?gYh{b?g{^y?gSh1?gy%@?g|hzj??gP\D?gz	?gVx<҅?g?gq&?gb˱?g8|p?g_cH?g6K	?gwp΍?g"Q	q?g@m8Migǐ3g7/`_qgS!g8QJg68gu\qg/Z~ܳgpQZgCg3`g7<w䷿ggp鷿g<Wulg~`gTg#qvg,]Bigw|gvľg3gagLHgU,gvA]PvgvA]Pv?gU,?gLH?ga?g3?gvľ?gw|?g,]Bi?g#qv?gT?g~`?g<Wul?gp?g?g7<w?g3`?gC?gpQZ?g/Z~ܳ?gu\q?g68?g8QJ?gS!?g7/`_q?gǐ3?g@m8Mi?g"Q	qgwp΍g6K	g_cHg8|pgb˱gq&ggVx<҅gz	gP\Dg|hzj?gy%@¿gSh1ÿg{^yÿgYh{bĿg+o Ŀg!DKyſgdſg>ſg3zĿg%PldĿgMuÿgI!w.ÿ)g?g"?gy?'?g `?))r   r   r#   )rP  gffffff?rP  )r|   r(   r|   )r   r#   r   Tz#banded linear algebra is numpy-onlynp_onlyrv   c                   D    \ rS rSrS rS rS rS r\" SS9S 5       r	S	r
g
)TestDPSSi  c           	          [         R                  5        H;  u  p#[        R                  " USUS.6u  pE[	        XCS   SUS9  [	        XSS   SSUS9  M=     g )	NTreturn_ratiosr7   r   gHz>)r>   err_msgr!   gh㈵>)r=   r>   rJ  )	dpss_datar5  r   r"   r
   )rG   r7   r8  r9  r:  ratioss         rH   rI   TestDPSS.test_basic  sK    OO%DA!,,"EKCC1D!<FaDt$J &rK   c                    [        SS5       H  n[        R                  " X"S-  US9nUS-  n[        [        R
                  " US5      R                  5       UU S9  [        R                  " X"S-  SUS	9nUS:  a9  [        [        R
                  " US5      R                  5       UU S9  [        X5S
S9  [        R                  " X"S-  SUS	9nUS:X  a  SOSn[        [        R
                  " US5      R                  5       UU S9  M     g )Nr!      g @r@   r#   rC   )rJ  	subsampler   gQ?r3  r   )ranger   r"   r   r   r   sumr
   )rG   r7   r  r:  expectedwin_subwin_2s          rH   
test_unityTestDPSS.test_unity  s    q"A,,qc'b1C1uHBJJsB/335x$'5+ ll1#gKBGG1u

7B 7 ; ; =x(/y348LLG!;EFqHBJJub1557$)7-! rK   c                 B   [         R                  " SSSSUS9S   n[        X!R                  U5      5        [         R                  " SSSSUS9S   n[        X!R                  U5      5        [         R                  " SSSSUS9S   n[        X!R                  U5      5        g )	N   r4   r   TrH  r!   r?   r%  )r   r"   r
   r  )rG   r7   lams      rH   r  TestDPSS.test_extremes  s    ll2q!4B?B\\#./ll2q!4B?B\\#./ll2q!4B?B\\#./rK   c                    [        [        [        R                  SSS5        [        [        [        R                  SSS5        [        [        [        R                  SSS5        [        [        [        R                  SSS5        [        [        [        R                  SSS5        [        [        [        R                  SSS5        [        [        [        R                  SSS5        g )	Nr   r(   皙?rP  r   r!   )r6  r7  r   r"   	TypeErrorrF   s     rH   test_degenerateTestDPSS.test_degenerate  s    j',,3;j',,3;iq#s;j',,3:j',,2q9j',,1a8j',,Aq9rK   T)rD  c           	         [         R                  " SS5      n[        US/5        [         R                  " SSSS9u  p#[        US/5        US:X  d   e[         R                  " SSSSS9u  p#[        US/5        [        U[        R
                  5      (       d   e[        US/5        [        [        [         R                  SSSUS	9  [        [        [         R                  SSS
US	9  [        [        [         R                  SSSUS	9  [        [        [         R                  SSSUS	9  [        [        [         R                  SSSUS	9  [        [        [         R                  SSSUS	9  [        [        [         R                  SSSUS	9  g )Nr!   rC   T)rI  r   )KmaxrI  r(   r]  r@   r^  r_  rP  r   )	r   r"   r   
isinstancer   ndarrayr6  r7  r`  )rG   r7   r   ratios       rH   test_degenerate_signle_samples'TestDPSS.test_degenerate_signle_samples  s+    LLBB4 <<2T:B4 {{<<2ATBB4 %,,,,t$j',,3rBj',,3rBiq#srBj',,3bAj',,2qR@j',,1aB?j',,AqR@rK   r   N)rM   rN   rO   rP   rI   rV  r  ra  r   rh  rQ   r   rK   rH   rF  rF    s2    K-*0: d#A $ArK   rF  c                        \ rS rSrS rS rSrg)TestLanczosi  c                 X   [        [        R                  " SSUS9UR                  / SQUR                  S9SS9  [        [        R                  " SUS9UR                  / S	QUR                  S9SS9  [        [        R                  " S
SUS9UR                  / SQUR                  S9SS9  g )Nr4   Fr5   r  qϾv?;Fv?rC   ro  rn  r9   &.>rb   r@   r  uH%?;9?rs  rr  r  r?   T)r  rn  ro  rC   ro  rn  r  )r
   r   r/   rD   rE   rF   s     rH   rI   TestLanczos.test_basic  s     	u<

 $18:

 # D "		#
 	b1

 $5<>JJ # H "		#
 	t;

 $5<>JJ # H "		#rK   c                     S HU  n[         R                  " USUS9R                  S   U:X  d   e[         R                  " USUS9R                  S   U:X  a  MU   e   g )N)r   r      Fr5   r   T)r   r/   r  )rG   r7   ns      rH   test_array_sizeTestLanczos.test_array_size   sX    A??1%B7==a@AEEE??1$26<<Q?1DDD rK   r   N)rM   rN   rO   rP   rI   rx  rQ   r   rK   rH   rk  rk    s    #2ErK   rk  c                       \ rS rSrS r\" SSS9\" SSS9S 5       5       r\" SSS9\" SSS9S	 5       5       r\" S
SS9S 5       rS r	S r
\" S
SS9S 5       rS rS rS rS rSrg)TestGetWindowi  c                     [         R                  " SSUS9n[        X!R                  U5      5        [         R                  " SSUS9n[        X!R                  U5      5        g )Nr      r@   )r      )r   r   r   r  )rG   r7   r   s      rH   test_boxcarTestGetWindow.test_boxcar  sL    x3<<?+ {B26<<?+rK   rs   rt   ru   r   r   c                     [        5        nUR                  [        S5        [        R                  " SSSUS9nS S S 5        [        WUR                  [        UR                  S9SS9  g ! , (       d  f       N6= f)	Nr   )r)   r  r  Fr  r9   r   r  )	r   r  r  r   r   r   rD   r  rE   rG   r7   r  r   s       rH   test_cheb_oddTestGetWindow.test_cheb_odd  sb      CJJ{$AB""#3R2NA ! 	"rzz-rzzz:A	
 ! s   .A))
A7c                     [        5        nUR                  [        S5        [        R                  " SSSUS9nS S S 5        [        WUR                  [        5      SS9  g ! , (       d  f       N-= f)Nr   )r)   r  r  Fr  r   r  )r   r  r  r   r   r   rD   r  r  s       rH   test_cheb_evenTestGetWindow.test_cheb_even  sV      CJJ{$AB""?B"MA ! 	"!RZZ%?K ! s   .A  
A.Tzeigh_tridiagonal is CPU-only)r   rv   c                 r    [         R                  " SSSUS9n[         R                  " SSUS9n[        X#SS9  g )	N)r"   rP  @   Fr  rP  r@   r   r  )r   r   r"   r   rG   r7   win1win2s       rH   	test_dpssTestGetWindow.test_dpss"  s4    !!+r5RH||Bb)!$a8rK   c                 t    [         R                  " SSUS9n[         R                  " SSSUS9n[        X#5        g )Ng@r  r@   F)r   r   r   r
   r  s       rH   test_kaiser_floatTestGetWindow.test_kaiser_float(  s2    !!#rb1~~b#u4#rK   c                     [        [        [        R                  [	        S5      SUS9  [        [        [        R                  SSUS9  g )Nr+   r%  r@   brokenr   )r6  r7  r   r   setrF   s     rH   test_invalid_inputs!TestGetWindow.test_invalid_inputs-  s4    j'"4"4c&k1L 	j'"4"4hbIrK   z#TODO: make resample array API readyrC  c                     SnUR                  S5      n[        R                  " SUS-  US9n[        [        SS9   [        U[        U5      U-  US9  S S S 5        g ! , (       d  f       g = f)N   )r   g       @r#   r@   z^window.shape=r  )window)aranger   r   r6  r7  r	   len)rG   r7   osfactorsigr:  s        rH   test_array_as_window"TestGetWindow.test_array_as_window4  sZ     iin  (a-BG:-=>S#c(X-c: ?>>s   A
A*c           	         [        [        SUR                  / SQ5      4S5      UR                  / SQUR                  S95        [        [        SUR                  / SQ5      4SSS9UR                  / SQUR                  S95        [        R
                  " [        5         [        S/ SQ4SUS	9  S S S 5        g ! , (       d  f       g = f)
NrZ  rW  r   rY  r9   F)r  )rV   皙?r  rV   r@   )r
   r   rD   rE   pytestr   r7  rF   s     rH   test_general_cosine!TestGetWindow.test_general_cosine>  s    
$4bjj6Q#RTUV

#5RZZ
H	J
$4bjj6Q#RTU+02

#9
L	N ]]:&(/:A"E '&&s    B99
Cc           	          [        [        SSUS9UR                  / SQUR                  S95        [        [        SSSUS9UR                  / SQUR                  S95        g )	N)re  r`  r|   r@   )rV   жn?男*?r  r  r9   Fr  ra  r
   r   rD   rE   rF   s     rH   test_general_hamming"TestGetWindow.test_general_hammingH  s`    
#;Q2F

#T)+ # 5	6 	
#;QRTU

#<BJJ
O	QrK   c           	          [        [        SSUS9UR                  / SQUR                  S9SS9  [        [        SSSUS	9UR                  / S
QUR                  S9SS9  [        [        SSUS9[        SSUS95        g )Nr/   r4   r@   rm  r9   rp  rb   Fr  rq  sincr  rF   s     rH   test_lanczosTestGetWindow.test_lanczosO  s    
9aB7

 $18:

 # DJN	P 	
9a2F

 $5<>JJ # HNR	T 	
9aB7"614	6rK   c                     [        SS5      n[        U[        R                  5      (       d   e[        SSUS9n[	        U5      (       d"  [        U[        R                  5      (       a   eg g )Nr/   r4   r@   )r   re  r   rf  r   )rG   r7   r:  s      rH   test_xp_defaultTestGetWindow.test_xp_defaultY  s[    A&#rzz****A"-||!#rzz22222 rK   r   N)rM   rN   rO   rP   r  r   r  r  r  r  r  xfail_xp_backendsr  r  r  r  r  rQ   r   rK   rH   r{  r{    s    , k*;<l+IJ
 K =
 k*;<l+IJL K =L t,JK9 L9
$
J t,QR; S;FQ63rK   r{  z(https://github.com/dask/dask/issues/2620c           
      D	   [          GH  u  p[        [        U5      n[        U 5      (       a  US;   a  [        R
                  " SU< S3S9  US;   aR  [        U 5      (       a  [        R
                  " SS9  [        U 5      (       a  [        S:w  a  [        R
                  " SS9  [        5        nUR                  [        S	5        U" S
/UQ7SU S.6nU" S/UQ7SU S.6n[        US S U5        U" S/UQ7SU S.6nU" S
/UQ7SU S.6n[        US S U5        U" S/UQ7SU S.6R                  S   S:X  d   eU" S/UQ7SU S.6R                  S   S:X  d   eU" S/UQ7SU S.6R                  S   S:X  d   eU" S/UQ7SU S.6R                  S   S:X  d   e[        [        US/UQ7SU 06  [        [        US/UQ7SU 06  [!        U" S/UQ7SU S.6U R#                  / U R$                  S95        [!        U" S/UQ7SU S.6U R#                  / U R$                  S95        [!        U" S/UQ7SU S.6U R#                  S/U R$                  S95        [!        U" S/UQ7SU S.6U R#                  S/U R$                  S95        U" S/UQ7SU S.6R&                  U R$                  :X  d   eU" S/UQ7SU S.6R&                  U R$                  :X  d   eU" S/UQ7SU S.6R&                  U R$                  :X  d   eU" S/UQ7SU S.6R&                  U R$                  :X  d   eU" S/UQ7SU S.6R&                  U R$                  :X  d   eU" S/UQ7SU S.6R&                  U R$                  :X  d   eU R)                  U" S/UQ7SU S.6S:  5      (       d   eU R)                  U" S/UQ7SU S.6S:  5      (       d   eU R)                  U" S/UQ7SU S.6S:  5      (       d   eU R)                  U" S/UQ7SU S.6S:  5      (       d   e[+        U" S/UQ7SU S.65      nU R-                  U5      n[        XpR/                  U5      SS9  [+        U" S/UQ7SU S.65      nU R-                  U5      n[        XpR/                  U5      SS9  S S S 5        GM     g ! , (       d  f       GM  = f)N)r-   r)   zwindow_name = : item assignmentru   )r"   z'dpss window is not implemented for cupycpuz)needs eight_tridiagonal which is CPU onlyr   r%  Tr5   r?   Fr]  	   r4   r   g      @r7   ir9   r!   rC   r   g)\(?ra   rb   rv  )window_funcsgetattrr   r   r  skipr   r   r   r   r  r  r
   r  r6  r7  r   rD   rE   r:   allr   imag
zeros_like)r7   window_nameparamsr  r  w1r  ress           rH   test_windowfunc_basicsr  c  s   +|+."::+)>>KK.+!11BCD("r{{#LM|| 5#NO CJJ{$AB4F44B5F5"5BBsGR(4F44B5F5"5BBsGR( !6f6$26<<Q?1DDD!7f7%B7==a@AEEE!6f6$26<<Q?1DDD!7f7%B7==a@AEEE *fcBFBrB*fbA6AbA F1?v?4B?JJrJ<>F1@v@5R@JJrJ<>F1?v?4B?JJt2::J>@F1@v@5R@JJt2::J>@ !6f6$26<<

JJJ!7f7%B7==KKK!6f6$26<<

JJJ!7f7%B7==KKK!6f6$26<<

JJJ!7f7%B7==KKK 66&>f>$2>EFFFF66&?f?%B?$FGGGG66&=V="=DEEEE66&>V>2>EFFFF fR;&;e;<C''#,CCs!3%@fR;&;e;<C''#,CCs!3%@i !   , ! s   .OR
R	c           	      @    S H  n[        [        [        USU S9  M     g )N)r   ksrr  kbdr$   gaussgsszgeneral gaussianr'   zgeneral gaussgeneral_gaussggsdssr"   zgeneral cosinerZ  r)   chebzgeneral hammingre  r?   r@   )r6  r7  r   )r7   winstrs     rH   test_needs_paramsr    s      	j*faB?rK   )r   r   r   r   r   r   r*   r   r   r   r   r-   r,   poissonr.   tuktriangler/   r  r  c                     [        U 5      (       a  US;   a  [        R                  " U S3S9  [        USU S9nUR                  S   S:X  d   eg )N)r-   r  ru   r?   r@   r   )r   r  r  r   r  )r7   r  r:  s      rH   test_not_needs_paramsr    sJ    bzzf
*fX%678
VQ2
&C99Q<1rK   c           	         [         R                  4 H  nU" SU S9n[        U5      R                  nU R	                  U R                  X#" U5      -
  5      5      n[        X@R                  S5      SSS9  U" SU S9nU R	                  U R                  X#" U5      -
  5      5      n[        X@R                  S5      SSS9  M     g )Ni   r@   r  F)r  check_0di  )r   r/   r   flipr   r   r   rD   )r7   r:  r   r  errors        rH   test_symmetricr    s     q!&&rvva$q'k*+zz#EER rvva$q'k*+zz#EER !rK   )@r   numpyr   r   numpy.testingr   r  r   r6  	scipy.fftr   scipy.signalr   r   r	   scipy._lib._array_apir
   r   r   r   r   r   r   r   r   markr   r  r  r1   rS   r\   rk   rx   r   r   r  r  r   r4  r;  r=  rI  rU  r^  rh  rt  r  r  r  r  r  r  r  rK  rF  rk  r{  r  r  _winstrparametrizer  r  r   rK   rH   <module>r     s      +  *  6 6  
 ;;// KK11 40 0 T T7 7,K K( +&78L: L: 9L:^7 7"L L0( +&78,'EF:O :O G 9:O~ 	 ( 	)   !J K  "7 8 !K L 	 A 	B 4 5 A 	B   !J K3 :<8 8,L L0	J 	J
Y 
Y6 6(0 0.L L:-L -L`Y Y*L L$	T 	TE./E 5 6 E01	
 U/0 U 6 7 U/0 E34 E : ; E34   #  "!" %#$ 	
B%& 	
+'( F)*  :+.$/3
:$ $@ HI  A  DO  Q\  C]  ^:<\  _G  H  Jq  rV  YU  WY  [V  Xa  b  dk  l |  ~J(  L(D<  F<`P  aP  cPWQ  XQ	 $'LMDA DA NDANE EBZ3 Z3z ,'QR?A S?AD@, 7+ ,SrK   