
    biJ                     *   d 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
ZddlmZ ddlmZ ddlmZmZ ddlmZ ddlmZ ddlmZ ddlmZmZmZmZmZm Z  d	Z!e d
edediZ"ee egZ#eev re#ee!gz  Z#de"e<   de"e!<   eev re#jI                  e       de"e<    ejJ                  g d      jL                  Z'd Z(d Z) ejT                  e+      Z,g ejZ                  dddgddggg eddgddgg      fd dddgddggg eddgddgg      fd dddgddggg eddgddgg      fd dddgddggg eddgddgg      fd dddgddggg eddgddgg      fej\                  dddgddggg eddg      fej\                  dddgg eddgddgg      fej^                  dddgddggg eej`                  dgej`                  dz  d ej`                  z  gg      fd! dddgdd"ggg eej`                  dej`                  dz  z  gdej`                  dz  z  d"ej`                  d"z  z  gg      fejb                  dd"d#gd$dggg ed%dgd&dgg      fd' dd"d#gd$dggg ed%d(gd)dgg      fejd                  dddgdd$ggg edd"gd*d%gg      fd+ dddgdd$ggg edd"gd*d%gg      fejf                   e4       ej`                  dg edg      fejf                   e4       ej`                  ej`                  g edg      fejf                  dej`                  dgdg eddg      fejj                   e4       ej`                  dg eej`                  g      fejj                   e4       ej`                  ej`                  g edg      fejj                  dej`                  dgdg eej`                  dg      fd, d- ejJ                  dd.gd&d/gg      g e ejl                   ejJ                  ddgdd$gg       ejJ                  dd.gd&d/gg                  fd0 d1 ejJ                  dd.gd&d/gg      g e ejl                   ejJ                  ddgdd$gdd.gg       ejJ                  dd.gd&d/gg                  fd2 d1 ejJ                  dd.gd&d/gd3d4gg      g e ejl                   ejJ                  ddgdd$gg       ejJ                  dd.gd&d/gd3d4gg                  fd5 d- ejJ                  dd.gd&d/gg      g e ejl                   ejJ                  dd.gd&d/gg       ejJ                  ddgdd$gg                  fd6 d1 ejJ                  dd.gd&d/gg      g e ejl                   ejJ                  dd.gd&d/gg       ejJ                  ddgdd$gdd.gg                  fd7 d1 ejJ                  dd.gd&d/gd3d4gg      g e ejl                   ejJ                  dd.gd&d/gd3d4gg       ejJ                  ddgdd$gg                  fejn                   e4       ddgddggg edg      fejn                   e4       g d8g d9g d:gg edg      fejn                   e4       dd&gd&dggg ed;g      fd<  e4       g d=g d>g d?gg ed@g      fejp                   e4       dd&gddggg edAg      fe(dBg dCg dDgg edEgdFgg      fe)dGg dCg dDgg eg dH      fejr                  d ejt                  d       ejt                  d&      gd ejt                  dI      ggg e ejt                  d.       ejt                  d/      g ejt                  d       ejt                  dJ      gg      fejv                   e4       g d=g dKg dLg d:gg edMg      fejv                   e4       g d=g dNg dOg dPgg edQg      fejv                   e4       g d=g dRgg dNg dOg dPgg edSg      fejx                  dddgddgdddgg eddg      fejx                  dddgddggddd$gddggg edd$gddgg      fejz                   e4       ddgddggg edg      fejz                   e4       ddTgg edg      fdU dBddgddggg edgdgg      fdV dddgddggg eddg      fdW  e4       e'g edg      fdX  e4       ddgddYggg edZg      fd[  e4       e'g edg      fd\  e4       ddgddYggg ed&g      fd]  e4       e'g edg      fd^  e4       ddgddYggg ed.g      fd_  e4       ddgddggg edg      fd`  e4       g dag dbg dcgg eddg      fde  e4       g dag dbgg edfg      fdg  e4       g dhg edig      fdj  e4       g dhg edkg      fdl  e4       ddgdd$gdd.ggg edmg      fdn  e4       g d=g dRgg edmg      fdo  e4       dd$gdd.ggg ed4g      fej|                   e4       g d=g edpg      fdq  e4       g drg edsg      fdt  e4       g drg edug      fdv dddgdd$ggg e ej~                  d      dwg      jL                  fdx dddgd$dggg e ej~                  dy       ej~                  dz      g      fd{  e4       g drg edg      fd|  e4       g drg ed}g      fd~  e4       g drg edg      fd  e4       g d=g dRgg edg      fej                   e4       d/g ed/g      fej                  dddgg eddg      fej                  dddgg eddg      fd  e4       dg edg      fd  e4       dg edg      fd  e4       dg edg      fd  e4       dg edg      fd  e4       dg edg      fd  e4       dg edg      fej                   e4       g dg dgdg edg      fej                   e4       e'dg edg      fd  e4       ddgddggg edg      fd  e4       g dag dbg dcgg edg      fd dddgddggg edd$gd3dgg      fej                  dddgddggg edd$gd3dgg      fej                   e4       ddgddggg edg      fd dddgddggg eddg      fd dddgddggg eddg      fd dddgddggg edd$gd3dgg      fd  e4       g dg edig      fd  e4       g dag dbg dcgg edg      fej                   e4       ddgddYggg edg      fej                   e4       g dag dbg dcgg edmg      fej                   e4       ddgddggg edYg      fej                   e4       g dg edg      fej                   e4       g dg edg      fej                   e4       ddgddggg e ej~                  d      g      fej                   e4       ddgddggd.dgdYdggd/dgdd3ggg e ej                  g d      g      fej                   e4       g dag dbg dcgg ed$ ej~                  d4      z  g      fej                  dGg dag dbg dcgg eg d      fd dg dag dbg dcgg ed$dg      fd dg dag dbgg ed$dgd&d/gg      fd dg dag dbgg eg d      fd dg dag edd$g      fd dGg dag eg d      fd dg dag edd$g      fd dGg dag eg d      fZJg ej                  ddej`                  gej`                  dz  d ej`                  z  ggg edej`                   gdej`                  dz  z  d ej`                  z  gg      fej                   e4       g dg dg dg dgg edg      fej                   e4       d$dgg edg      fej                   e4       d
d&gg edg      fej                   e4       dd&gg edmg      fej                   e4       dd4gg e ej~                  d4      g      fd  e4       dd4gg e ej~                  d4      g      fd  e4       g dg edg      fej                   e4       g d=g edg      fej                   e4       g dg edg      fej                   e4       g dg edg      fd dGg d=g eg d=      fej                  dg d=g eddg      fej                   e4       ddgg edg      fd  e4       g d=g edg      fej                  dGg dg eg d      fd dg dg eddg      fdń dB ejJ                  ddgddgg      g ed&gd$gg      fdƄ d ejJ                  ddgddgg      g eddgg      fdȄ  e4       g dɢg edg      fd˄  e4       g dɢg edg      fd̈́  e4       g dɢg edg      fdτ  e4       g dɢg edg      fej                   e4       ddgddggg edg      fej                   e4       dd&gd&dggg edg      fd҄  e4       g d=g d>g d?gg edg      fejt                  ddej`                  gej`                  dz  d ej`                  z  ggg eddgddgg      fej                  ddej`                  dz
  gej`                  dz  dz
  d ej`                  z  dz
  ggg eddgddgg      fej                  dddgddgdddgg eddg      fej                  dddgddggddd$gddggg eddgddgg      fej                   e4       ddgddggg edg      fej                   e4       ddTgg edTg      fdԄ  e4       dg edg      fdք dddgg e ej                   ejJ                  ddg      dث            fdل dddgd$d&ggg e ej                   ejJ                  ddgd$d&gg      jL                  d۫            fej~                  ddd$gddggg eddgd$dgg      fdބ  e4       g dߢg ed$g      fd  e4       g dg dbg dcgg ed$g      fd ddd$gddggg eddgd$dgg      fZUdeVfdZWddeVddfdZXd ZYeJD  cg c]  } | ej                  f c} ZJeUD  cg c]  } | ej                  f c} ZUe	j                  j                  deJeUz         dd       Z^yc c} w c c} w )a,  
Copyright 2013 Steven Diamond

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
    N)SolverError)Constant	Parameter)Variable)Problem)INSTALLED_SOLVERS)CLARABELCVXOPTMOSEKOSQPROBUST_KKTSOLVERSCSrobust_cvxoptg{Gz?gHz>皙?gư>)g         c                 2    t        j                  | dd      S Nr   T)axiskeepdimscplog_sum_expxs    Z/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/cvxpy/tests/test_constant_atoms.pylog_sum_exp_axis_0r   8   s    "..T"JJ    c                 0    t        j                  | d      S N   r   r   r   s    r   log_sum_exp_axis_1r#   9   s    "..";;r   )r   r   r   r!         c                 0    t        j                  | d      S r    r   cumsumr   s    r   <lambda>r+   C       ryy# r   c                 0    t        j                  | d      S Nr   r"   r)   r   s    r   r+   r+   E   r,   r   r   c                 0    t        j                  | d      S r    r   cummaxr   s    r   r+   r+   G   r,   r   c                 0    t        j                  | d      S r/   r1   r   s    r   r+   r+   I   r,   r   )r   g      ?c                 R    t        j                  t        j                  |             S )N)r   xexpposr   s    r   r+   r+   O   s    rwwrvvay! r         ?g               ?   c                 .    t        j                  | d      S )N      @)r   huberr   s    r   r+   r+   S       rxx3 r   g      @g     +@gUUUUUU?c                 $    | t        d      z   dz  S Nr   r4   r   r   s    r   r+   r+   W   s    HQK"$ r   c                 `    t        j                  t        j                  ddgddgg      |       S Nr!   r   r'   r9   r   kronnparrayr   s    r   r+   r+   `   '    rwwrxx!Q!Q 0115 r   )r9   r9         c                 f    t        j                  t        j                  ddgddgddgg      |       S Nr!   r   r'   r9   r&   rJ   rE   r   s    r   r+   r+   c   s-    rwwrxx!Q!Q!Q 891= r   )rJ   r9   c                 `    t        j                  t        j                  ddgddgg      |       S rD   rE   r   s    r   r+   r+   f   rI   r   	   
   c                 `    t        j                  | t        j                  ddgddgg            S rD   rE   r   s    r   r+   r+   k   '    rwwq"((QFQF#345 r   c           	      f    t        j                  | t        j                  ddgddgddgg            S rM   rE   r   s    r   r+   r+   n   s-    rwwq"((QFQFQF#;<= r   c                 `    t        j                  | t        j                  ddgddgg            S rD   rE   r   s    r   r+   r+   q   rR   r   )r   r   r   )r   r'   r   )r   r   r!   gXXp?"@c                 .    t        j                  | d      S Nr   )r   lambda_sum_largestr   s    r   r+   r+   w   s    r$$Q* r   )r!   r   r'   )r   r9   r&   )r'   r&   rJ   gwn'@g	[ւ@)r!   r   )r&   r;   r!   )r   r%   rJ   gz}5@g p,A@)r'   )gXc@g @g'`@g333333?g?)r!   r   r   )r   r!   r      )C   N   Z   )rZ   ^   l   )r[   r]      gЈ?)r9   r&   rJ   gfxp?c                 2    t        j                  | dd      S r   r   maxr   s    r   r+   r+      s    rvvaa$/ r   c                 0    t        j                  | d      S r    ra   r   s    r   r+   r+          rvvaa  r   c                 .    t        j                  | d      S rV   r   normr   s    r   r+   r+          rwwq!} r   c                 .    t        j                  | d      S )Nfrorf   r   s    r   r+   r+          rwwq%  r   gѭ@c                 .    t        j                  | d      S Nr!   rf   r   s    r   r+   r+      rh   r   c                 .    t        j                  | d      S rn   rf   r   s    r   r+   r+      rh   r   c                 .    t        j                  | d      S Ninfrf   r   s    r   r+   r+      rk   r   c                 .    t        j                  | d      S rq   rf   r   s    r   r+   r+      rk   r   c                 .    t        j                  | d      S Nnucrf   r   s    r   r+   r+      rk   r   c                 .    t        j                  | d      S ru   rf   r   s    r   r+   r+      rk   r   r'   r9   r&   rJ   r;   rK   )rO   rP      g;	Z,7@c                 .    t        j                  | d      S ru   rf   r   s    r   r+   r+      rk   r   ge5<-@c                 T    t        j                  t        j                  |       d      S Nr'   )r   sum_largestabsr   s    r   r+   r+      s    r~~bffQi+ r   )r!   r   r'   rl   r$      c                 ~    t        j                  t        j                  |       t        j                  g d            S )N)r   r!   r   )r   dotsortr   rG   rH   r   s    r   r+   r+      s"    rzz"&&)RXXk%:; r   g,@c                 0    t        j                  | dd      S rn   r   
mixed_normr   s    r   r+   r+          r}}Q1% r      c                 0    t        j                  | dd      S rn   r   r   s    r   r+   r+      r   r   c                 0    t        j                  | dd      S )Nr!   rr   r   r   s    r   r+   r+      s    r}}Q5) r   gI?h@c                 .    t        j                  | d      S rn   r   pnormr   s    r   r+   r+          rxx1~ r   )皙?r   r%   gffffff@c                 .    t        j                  | d      S rV   r   r   s    r   r+   r+      r   r   g"1,(@c                 2    t        j                  | dd      S )Nr   r   r"   r   r   s    r   r+   r+          rxx11% r   g      @c                 2    t        j                  | dd      S )Nr   r!   r"   r   r   s    r   r+   r+      r   r         c                 .    t        j                  | d      S rq   r   r   s    r   r+   r+          rxx5! r   c                 .    t        j                  | d      S r}   r   r   s    r   r+   r+      r   r   giW
@c                 .    t        j                  | d      S )Ngffffff@r   r   s    r   r+   r+      r?   r   g}lp@c                 .    t        j                  | d      S )N333333?r   r   s    r   r+   r+      r?   r   gާ)/@c                 .    t        j                  | d      S rn   r   powerr   s    r   r+   r+      r   r   g@c                 .    t        j                  | d      S rV   r   r   s    r   r+   r+      r   r   gQK@c                 .    t        j                  | d      S Nr4   r   r   s    r   r+   r+          rxx2 r   g7`c.?c                 .    t        j                  | d      S )Ngffffffr   r   s    r   r+   r+      r?   r   gG)b?c                 .    t        j                  | d      S )Ngq=
ףpr   r   s    r   r+   r+      r   r   gyj(+\?c                 .    t        j                  | d      S )Ngq=
ףp?r   r   s    r   r+   r+          rxx4  r   g@7~-@)r4   r   r   g      "@      @c                 .    t        j                  | d      S rV   rf   r   s    r   r+   r+      rh   r   c                 .    t        j                  | d      S rV   rf   r   s    r   r+   r+      rh   r   gc9Y^6@c                 0    t        j                  | dd      S )Nr   r'   )r   scalener   s    r   r+   r+      s    rzz!Q" r         c                 0    t        j                  | d      S r/   r   sumr   s    r   r+   r+      rd   r   c                 0    t        j                  | d      S r    r   r   s    r   r+   r+      rd   r   c                 $    | t        d      z   dz  S )Nr   r   rB   r   s    r   r+   r+      s    HQK!# r   c                 .    t        j                  | d      S r}   r   r~   r   s    r   r+   r+          r~~a# r   )r!   r   r'   r9   r&   c                 .    t        j                  | d      S r}   r   r   s    r   r+   r+      r   r      )r!   r4   r   5   )r;   r4   r-   r   r_   r;   )rJ   rO   rP   c                     | ddgddgf   S )Nr!   r   r    r   s    r   r+   r+      s    q!Q!Q  r   rz   c                     | ddg   S )Nr!   r   r   r   s    r   r+   r+      s    q!Qy r   c                 ^    | t        j                  g dg dg      j                  dz  dk(     S )Nrx   ry   r   r   )rG   rH   Tr   s    r   r+   r+      s)    q9i0133a71<= r   )rJ   r9   rK   c                     | ddd   S )Nr   r   r4   r   r   s    r   r+   r+          q1Ry r   c                     | dd d   S )Nr   r4   r   r   s    r   r+   r+          qBx r   )r&   r9   r'   c                     | ddd   S )Nr'   r   r4   r   r   s    r   r+   r+      r   r   c                     | dd d   S )Nr'   r4   r   r   s    r   r+   r+      r   r   )   rK   r&   r   )rK      r   r9   )r&   r   r&   r   )r   r9   r   r9   gtP<8@gUۇ??   c                 2    t        j                  | ddg      S rn   r   geo_meanr   s    r   r+   r+      s    r{{1q!f% r   c                 2    t        j                  | g d      S )N)g?g?g@r   r   s    r   r+   r+      s    r{{1m, r   )r8   g?r   g_2$@g/袋.?)r=   r=   r=   r=   r=   )g:0yE>r!   r   c                 .    t        j                  | d      S )Nr   r   diffr   s    r   r+   r+     rh   r   r   gffffff@r   c                 .    t        j                  | d      S rV   r   r   s    r   r+   r+   	  rh   r   )g @r!   r   g)gg      @gffffffc                 .    t        j                  | d      S rV   r   r   s    r   r+   r+     rh   r   gffffff@g333333 c                 2    t        j                  | dd      S )Nr!   r   r"   r   r   s    r   r+   r+         rwwq!!$ r   c                 2    t        j                  | dd      S r    r   r   s    r   r+   r+     r   r   )r   r!   c                 .    t        j                  | d      S )Nr8   r   r   s    r   r+   r+     r   r   )r   r   r   gI/@c                 .    t        j                  | d      S )Ngٿr   r   s    r   r+   r+     r?   r   gǗɛ?c                 .    t        j                  | d      S r   r   r   s    r   r+   r+     r   r   g0p?c                 .    t        j                  | d      S )Ngffffffr   r   s    r   r+   r+     r   r   gBAH?g~?c                 .    t        j                  | d      S rV   )r   lambda_sum_smallestr   s    r   r+   r+     s    r%%a+ r   ggoֿc                     | dz  S )Nr:   r   r   s    r   r+   r+   #  
    q$w r   gDSo?c                     | dz  S )N{Gz?r   r   s    r   r+   r+   $  r   r   g333333@r   c                     | dz  S )N?r   r   s    r   r+   r+   %  s
    q#v r   g@r   r   g;f?c                 .    t        j                  | d      S r}   r   sum_smallestr   s    r   r+   r+   )      rq!$ r   )r4   r   r'   r9   r&   c                 .    t        j                  | d      S )Nr9   r   r   s    r   r+   r+   *  r   r   )r%   rl   r&   c                 $    | t        d      z   dz  S )Nr   r8   rB   r   s    r   r+   r+   ,  s    HQK#% r   returnc                     t        | j                  j                  d         }t        |   D ]  }||v s y 	 |t        k(  rt
        }| j                  |       y# t        $ r Y yt        $ r  w xY w)z&Can the solver solve the problem?
    r   F)solverT)	str	objectiveargsKNOWN_SOLVER_ERRORSROBUST_CVXOPTr
   _construct_chainr   	Exception)probsolver_nameatom_strbad_atom_names       r   check_solverr   1  s     4>>&&q)*H,[9 H$
-' K[1  s   !A 	A/%
A/verbosec                    |j                         sJ t        |       |r6t        |j                         t        |j                         t        d|       t	        ||      rt
        |   }	 |t        k(  r|j                  t        |t              }n|j                  ||      }|rt        |       t        |       | ||z
  dt        j                  |      z   z  cxk  r|k  sJ  J y y # t        $ r}| |ft        v rY d }~y |d }~ww xY w)Nr   )r   r   	kktsolver)r   r   r!   )is_dcpprintr   constraintsr   SOLVER_TO_TOLr   solver
   r   r   r   rG   r   )atomproblemobj_valr   r   	toleranceresultes           r   run_atomr  F  s   >>	'Ng g!!"hGV$!&)			& fg1A ' C !fgF &M'N
v/Aw4GHUIUVUVU# %  	f~!44G	s   ,9C, ,	D5
DDDc                     t        |       dk(  rdgS t        |       dk(  rt        | d         S t        j                  t        | d         t        | d               S )zGet indices for dimension.
    r   r!   )lenrange	itertoolsproduct)sizes    r   get_indicesr  a  sR     4yA~s
	TaT!W~  tAwtAw@@r   zatom_info, objective_typec           
         | \  }}}}t        |      D ]  }t        D ]  }||   j                  }|D 	cg c]  }	t        |	       }
}	t	        |      dk7  r | ||
 |         }n | ||
       }t        |      }t        ||||       g }g }t        |      D ]I  \  }}|j                  t        t        j                  |                   |j                  |d   |k(         K t	        |      dk7  r | || |         }n | ||       }t        ||      }t        ||||       g }|D ]V  }|j                  t        t        j                  |                   t        j                  j                  |      |d   _        X t	        |      dk7  r | || |         }n | ||       }t        |t        |      ||         y c c}	w rA   )r  SOLVERS_TO_TRYvaluer   r  r   r  	enumerateappendr   intfshaper   DEFAULT_INTFconst_to_matrix)	atom_infoobjective_typer   r  r   r   indexerr   prob_valarg
const_argsr   r   	variablesr   idxexpr
parameterss                     r   test_constant_atomsr  p  s    !*D$gt$ "A$ !	AFw'--H378C(3-8J84yA~*4+<W+EF	*4+<=	i(GT7Hf5 IK&t_ :	T  $**T*:!;<""9R=D#89: 4yA~*4+;G+DE	*4+;<	i5GT7Hf5 J O!!)DJJt,<"=>'+'8'8'H'H'N
2$O 4yA~*4+<W+EF	*4+<=	T79-x@C!	A"A 9s   G	)F)r   N)___doc__collectionsr  mathnumpyrG   numpy.linalglinalgLApytestcvxpyr   cvxpy.interface	interfacer  cvxpy.errorr   cvxpy.expressions.constantsr   r   cvxpy.expressions.variabler   cvxpy.problems.problemr    cvxpy.reductions.solvers.definesr   cvxpy.settingsr	   r
   r   r   r   r   r   r   r
  r  rH   r   v_npr   r#   defaultdictlistr   r   diagexpr   r>   inv_poskl_divtuplerel_entrrF   
lambda_maxr   logisticlogmatrix_fracmaximumrb   r   sqrtr7   negquad_over_linsquarer   sum_squarestracetvrg   	upper_triatoms_minimizeentrlog_detr   harmonic_meanr   
lambda_minlog1pminimumminr   atoms_maximizeboolr   r  r  MinimizeMaximizemarkparametrizer  )as   0r   <module>rS     sd            # ; / * > O Od4t C&	v}--N M&#'M-  	% M%rxx
 K ;
 .k--d3 pVVVAwQ()1v1v!p $VAwQ.@-AAwQ !#p
 $VAwQ.@-ABx"b"#%p $VAwQ.@-AAwQ !#p $VAwQ.@-AAwQ !#p WWdr1gAw'((B7*;<p WWfAwiB7QF*;!<=p VVV1v2w'({TVVQYdff5679p "6aVaW,=+>DFFAI&TVVQYdffbj8H(IJKMp" XXv#tq!f-.ay1a&!"$#p&  C;A*?)@d|eQZ()+'p* ZZAq6Aq6*+7|gw/013+p. %fAA/?.@7|gw/013/p2 YY$&&!hsm43p4 YY$&&$&&)8QC=95p6 YY{A&!Q(897p8 [[%'DFFA;$&&(:;9p: [[%'DFFDFF+Xqc];;p< [[$$&&!a((DFFA;*?@=p@ 6vbhhAA !gbgghbhhAA/0("((QFQF;K2LMNPApF >vbhhAA !gbgghbhhAAA78("((QFQPQFCS:TUVXGpL 6vbhhAAB()*gbgghbhhAA/0("((QFQFQPRG;T2UVWYMpV 6vbhhAA !gbgghbhhAA/0("((QFQF;K2LMNPWp\ >vbhhAA !gbgghbhhAA/0("((QFQFQPQF;S2TUVX]pb 6vbhhAAB()*gbgghbhhAAB898288aVaQRVDT;UVWYcph ]]EG1v1v./1#?ipj ]]EGy)Y?@(A3-Pkpl ]]EG1v2w/0(J<2HImpn +EG)Y'((K=*ACopr ^^UWAB018\N3KLspt *:,)E FHupx *)K LNyp| [[&
$((1+xtxx{	#
XTXXc]		 
$((1+xtxx{	#
$((1+xtxx}	%	'(	)}pJ ^^UWy ) ) ) +, .6rd^=KpR ^^UWy , - . 01 3;<O;P2QSSpZ ^^UW	 ) + , - . 01 3;N;K2L	N[pd ZZQ"a!b!W5xA7GHepf ZZB7RG,a1a&2q'1BC1v1v!gpj VVUWQ"a)*HaSM:kpl VVUWCyk8RD>2mpn 0
AwQ8aS1#J/1opr !$2q'B7);(<hAw>OPspt egvx}=upv !%'b!Wq"g,>+?zlwpz egvx}={p| eg"a1b'(:';qc]}p@ !%'D68QC=AApB !%'b!Wq"g,>+?qc]CpF !%'aVaV,<+=x}MGpH !%'Y	;,O+P!"#%IpL !%'Y	,B+C!"#%MpP ,UW7H6I8U^T_K`aQpR <UWGXFY{mSpV &uw1a&1a&1a&1I0Jrd^WpZ &uw)Y1G0Hrd^[pb *57q!fq!f5E4Frd^cph XXuwX/A.B%CDipj uw#Hkpl uwBTAU8VWmpn &t	1v1v9499Q<"45779opr &t	1v1v9499R=)$))B-"@ACspv "57\NHaSMJwpx uwBTAU8VWypz  <.(DVCW:XY{p|  )x);(<=?}pB VVUWqc8QC=)CpD VVTRG9h1v./EpF VVTRG9h1v./GpL uw$0@AMpN uw:L9M0NOOpP $;M:N1OPQpR  4&(<O;P2QRSpT "57TFH>Q=R4STUpV !%'D68=O<P3QRWpZ uw+{!;Q ?7)ATU[p\ uwq	8SE?;]p^ eg!Q!Q(8'98QC=I_p` eg)[)*H6H5I,JLapd #Fr1gAw-?,@(RQRGVWYZU[K\B]^epf YY2q'B7+,hQ!Q7H.IJgph VVUWQ"a)*HbTN;ipj !$2q'B7);(<hBx>PQkpl !$2q'B7);(<hAw>OPmpn $VAwQ.@-A8bRSWWXZ[V\L]C^_opp $UW.?9+AVWqpr $UW)[)*Hk],CEspv ^^UWQ!R12HbTNCwpx XXuw)Y<=x?UVypz XXuw2q'B7+,hx.@A{p| UUEGj\8QC=1}p~ UUEGj\8QC=1p@ UUEGAwQ()8YTYYr]O+DEApB UUEGAwQ(Aq6B7*;q!fr1g=NOwrww-./02CpF UUEGy)[9:Ha)$))TV-FWEX<YZGpH \\49i=>@TUIpL !$)[)*HaW,=?MpP &Iy#9":Hq!fqRSfEU<VWQpR >tyR[F\E]iSpV $Xq!f-=>WpX 	{HY,?@YpZ $Xq!f-=>[p\ 	{HY,?@]pf;WWfDFFdffaitvv%>?@DFF7|b46619ncDFFl;<=?; ZZ   !3 45	7; [[%'QF8Xqc]3; [[%'T1I;2D1E(FG; [[%'RG9htn5; [[%'QG9h			"&?@; &uw!R	8YTYYr]O;TU; -eg_h 1235; uwX7I6J-KL;  uw!5 6#H!;" uw!>#;& dYK)1DE';( WWdYK1a&!12);* WWegc
|Xse_5+;, eg	{HaSMB-;. WWd'((3D*EF/;0 d%7$8(C;:OP1;2 %fxrxx"bAq68J/K.LsQCj3;6 %fxrxx"bAq68J/K.L2wi7;< ,CTBU9VW=;>  <.(M?:ST?;@ ,?BS9TUA;B !%'L>8^DT;UVC;F ]]EG1v1v./1#?G;H ]]EG1v2w/0(K=2IJI;J ,UW)Y'((K=*ACK;N VVV466{TVVQYdff$=>?Aq6TUWYSZJ[A\]O;P XXv!TVVaZ&&!)a-tvv)9:< =>FAQRTVPWGX>Y[Q;T ZZQ"a!aV4hAw6GHU;V ZZB7RH-q6B7+-.6Q"b7J.KMW;\ VVUWQ"a)*HbTN;];^ VVUWCyk8SE?3_;` $:,)?@a;b c{mXhbhhxrxxs?TVZ6[-\]c;d v$"#Q!)  *+3HBHHXRXXc{HI1vGO >PPQPQSV5X ,YZe;j WWfAQ()86G5KaQRV4T+UVk;l %eg0@/A8ZLCYZm;n %egI{+,h7G.HJo;r &v	1vAw(%6$:QF#CDFs;|t *Wd Wt W6A -;;q1bkk";,:;q1bkk"; 4n~6UV&A W&A <;s   SAT7S8AT<